From e3cf6e8aea160745568488cecb686a1f43d40c69 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Fri, 24 Dec 2021 01:41:01 -0500 Subject: [PATCH 001/659] GameINI: Disable XFB to Texture Only with Resident Evil 0 --- Data/Sys/GameSettings/GBZ.ini | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Data/Sys/GameSettings/GBZ.ini diff --git a/Data/Sys/GameSettings/GBZ.ini b/Data/Sys/GameSettings/GBZ.ini new file mode 100644 index 0000000000..7e37713ff9 --- /dev/null +++ b/Data/Sys/GameSettings/GBZ.ini @@ -0,0 +1,5 @@ +# GBZE08, GBZP08, GBZJ08 - Resident Evil 0 + +[Video_Hacks] +# Fixes purple screens when transitioning between menus. +XFBToTextureEnable = False From 3367e5e0267f17e02b57ec5c55526ad561d7b11d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 25 Apr 2020 00:26:51 +0200 Subject: [PATCH 002/659] DolphinQt: Fix the panic alert deadlock, GPU thread edition The fix in ef77872 worked for panic alerts from the CPU thread, but there were still problems with panic alerts from the GPU thread in dual core mode. This change attempts to fix those. --- Source/Core/Core/Core.cpp | 22 ++++++++++++++-------- Source/Core/Core/Core.h | 2 ++ Source/Core/DolphinQt/Host.cpp | 23 +++++++++++++++++++++-- Source/Core/DolphinQt/Main.cpp | 25 ++++++++++++++++++------- Source/Core/DolphinQt/RenderWidget.cpp | 8 ++++---- 5 files changed, 59 insertions(+), 21 deletions(-) diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index 1687c9900f..de3ac7f009 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -127,6 +127,7 @@ static std::queue s_host_jobs_queue; static Common::Event s_cpu_thread_job_finished; static thread_local bool tls_is_cpu_thread = false; +static thread_local bool tls_is_gpu_thread = false; static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi); @@ -203,14 +204,7 @@ bool IsCPUThread() bool IsGPUThread() { - if (Core::System::GetInstance().IsDualCoreMode()) - { - return (s_emu_thread.joinable() && (s_emu_thread.get_id() == std::this_thread::get_id())); - } - else - { - return IsCPUThread(); - } + return tls_is_gpu_thread; } bool WantsDeterminism() @@ -313,6 +307,16 @@ void UndeclareAsCPUThread() tls_is_cpu_thread = false; } +void DeclareAsGPUThread() +{ + tls_is_gpu_thread = true; +} + +void UndeclareAsGPUThread() +{ + tls_is_gpu_thread = false; +} + // For the CPU Thread only. static void CPUSetInitialExecutionState(bool force_paused = false) { @@ -459,6 +463,8 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi Common::SetCurrentThreadName("Emuthread - Starting"); + DeclareAsGPUThread(); + // For a time this acts as the CPU thread... DeclareAsCPUThread(); s_frame_step = false; diff --git a/Source/Core/Core/Core.h b/Source/Core/Core/Core.h index 52042b6409..1e6e240682 100644 --- a/Source/Core/Core/Core.h +++ b/Source/Core/Core/Core.h @@ -98,6 +98,8 @@ void Shutdown(); void DeclareAsCPUThread(); void UndeclareAsCPUThread(); +void DeclareAsGPUThread(); +void UndeclareAsGPUThread(); std::string StopMessage(bool main_thread, std::string_view message); diff --git a/Source/Core/DolphinQt/Host.cpp b/Source/Core/DolphinQt/Host.cpp index bc9d6103b3..9690c1bc5b 100644 --- a/Source/Core/DolphinQt/Host.cpp +++ b/Source/Core/DolphinQt/Host.cpp @@ -3,6 +3,8 @@ #include "DolphinQt/Host.h" +#include + #include #include #include @@ -85,6 +87,19 @@ void Host::SetMainWindowHandle(void* handle) m_main_window_handle = handle; } +static void RunWithGPUThreadInactive(std::function f) +{ + // If we are the GPU thread in dual core mode, we cannot safely call + // RunAsCPUThread, since RunAsCPUThread will need to pause the GPU thread + // and the GPU thread is waiting for us to finish. Fortunately, if we know + // that the GPU thread is waiting for us, we can just run f directly. + + if (Core::IsGPUThread()) + f(); + else + Core::RunAsCPUThread(std::move(f)); +} + bool Host::GetRenderFocus() { #ifdef _WIN32 @@ -107,10 +122,12 @@ void Host::SetRenderFocus(bool focus) { m_render_focus = focus; if (g_renderer && m_render_fullscreen && g_ActiveConfig.ExclusiveFullscreenEnabled()) - Core::RunAsCPUThread([focus] { + { + RunWithGPUThreadInactive([focus] { if (!Config::Get(Config::MAIN_RENDER_TO_MAIN)) g_renderer->SetFullscreen(focus); }); + } } void Host::SetRenderFullFocus(bool focus) @@ -138,7 +155,9 @@ void Host::SetRenderFullscreen(bool fullscreen) if (g_renderer && g_renderer->IsFullscreen() != fullscreen && g_ActiveConfig.ExclusiveFullscreenEnabled()) - Core::RunAsCPUThread([fullscreen] { g_renderer->SetFullscreen(fullscreen); }); + { + RunWithGPUThreadInactive([fullscreen] { g_renderer->SetFullscreen(fullscreen); }); + } } void Host::ResizeSurface(int new_width, int new_height) diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp index 507765a143..8ffd52dbe5 100644 --- a/Source/Core/DolphinQt/Main.cpp +++ b/Source/Core/DolphinQt/Main.cpp @@ -41,20 +41,31 @@ static bool QtMsgAlertHandler(const char* caption, const char* text, bool yes_no Common::MsgType style) { const bool called_from_cpu_thread = Core::IsCPUThread(); + const bool called_from_gpu_thread = Core::IsGPUThread(); std::optional r = RunOnObject(QApplication::instance(), [&] { - Common::ScopeGuard scope_guard(&Core::UndeclareAsCPUThread); + Common::ScopeGuard cpu_scope_guard(&Core::UndeclareAsCPUThread); + Common::ScopeGuard gpu_scope_guard(&Core::UndeclareAsGPUThread); + + if (!called_from_cpu_thread) + cpu_scope_guard.Dismiss(); + if (!called_from_gpu_thread) + gpu_scope_guard.Dismiss(); + if (called_from_cpu_thread) { - // Temporarily declare this as the CPU thread to avoid getting a deadlock if any DolphinQt - // code calls RunAsCPUThread while the CPU thread is blocked on this function returning. - // Notably, if the panic alert steals focus from RenderWidget, Host::SetRenderFocus gets - // called, which can attempt to use RunAsCPUThread to get us out of exclusive fullscreen. + // If the panic alert that we are about to create steals the focus from RenderWidget, + // Host::SetRenderFocus gets called, which can attempt to use RunAsCPUThread to get us out + // of exclusive fullscreen. If we don't declare ourselves as the CPU thread, RunAsCPUThread + // calls PauseAndLock, which causes a deadlock if the CPU thread is waiting on us returning. Core::DeclareAsCPUThread(); } - else + if (called_from_gpu_thread) { - scope_guard.Dismiss(); + // We also need to avoid getting a deadlock when the GPU thread is waiting on us returning. + // Declaring ourselves as the GPU thread does not alter the behavior of RunAsCPUThread or + // PauseAndLock, but it does make Host::SetRenderFocus not call RunAsCPUThread. + Core::DeclareAsGPUThread(); } ModalMessageBox message_box(QApplication::activeWindow(), Qt::ApplicationModal); diff --git a/Source/Core/DolphinQt/RenderWidget.cpp b/Source/Core/DolphinQt/RenderWidget.cpp index 2430b7a415..6c34f7ebc6 100644 --- a/Source/Core/DolphinQt/RenderWidget.cpp +++ b/Source/Core/DolphinQt/RenderWidget.cpp @@ -421,10 +421,10 @@ bool RenderWidget::event(QEvent* event) if (Config::Get(Config::MAIN_PAUSE_ON_FOCUS_LOST) && Core::GetState() == Core::State::Running) { - // If we are declared as the CPU thread, it means that the real CPU thread is waiting - // for us to finish showing a panic alert (with that panic alert likely being the cause - // of this event), so trying to pause the real CPU thread would cause a deadlock - if (!Core::IsCPUThread()) + // If we are declared as the CPU or GPU thread, it means that the real CPU or GPU thread + // is waiting for us to finish showing a panic alert (with that panic alert likely being + // the cause of this event), so trying to pause the core would cause a deadlock + if (!Core::IsCPUThread() && !Core::IsGPUThread()) Core::SetState(Core::State::Paused); } From d445d2ad36223dfec0c432aa10bbbf5504c036c6 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 25 Apr 2020 10:35:14 +0200 Subject: [PATCH 003/659] DolphinQt: Improve the earlier panic alert deadlock fix If the purpose of calling SetFullscreen using RunAsCPUThread is to make sure that the GPU thread is paused, the fix in ef77872 is faulty when dual core is used and a panic alert comes from the CPU thread. This change re-adds synchronization for that case. --- Source/Core/DolphinQt/Host.cpp | 34 ++++++++++++++++++++++++++++++---- Source/Core/DolphinQt/Main.cpp | 16 +++++----------- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/Source/Core/DolphinQt/Host.cpp b/Source/Core/DolphinQt/Host.cpp index 9690c1bc5b..876ab25123 100644 --- a/Source/Core/DolphinQt/Host.cpp +++ b/Source/Core/DolphinQt/Host.cpp @@ -36,6 +36,7 @@ #include "UICommon/DiscordPresence.h" +#include "VideoCommon/Fifo.cpp" #include "VideoCommon/RenderBase.h" #include "VideoCommon/VideoConfig.h" @@ -89,15 +90,40 @@ void Host::SetMainWindowHandle(void* handle) static void RunWithGPUThreadInactive(std::function f) { - // If we are the GPU thread in dual core mode, we cannot safely call - // RunAsCPUThread, since RunAsCPUThread will need to pause the GPU thread - // and the GPU thread is waiting for us to finish. Fortunately, if we know - // that the GPU thread is waiting for us, we can just run f directly. + // Potentially any thread which shows panic alerts can be blocked on this returning. + // This means that, in order to avoid deadlocks, we need to be careful with how we + // synchronize with other threads. Note that the panic alert handler temporarily declares + // us as the CPU and/or GPU thread if the panic alert was requested by that thread. + + // TODO: What about the unlikely case where the GPU thread calls the panic alert handler + // while the panic alert handler is processing a panic alert from the CPU thread? if (Core::IsGPUThread()) + { + // If we are the GPU thread, we can't call Core::PauseAndLock without getting a deadlock, + // since it would try to pause the GPU thread while that thread is waiting for us. + // However, since we know that the GPU thread is inactive, we can just run f directly. + f(); + } + else if (Core::IsCPUThread()) + { + // If we are the CPU thread in dual core mode, we can't call Core::PauseAndLock, for the + // same reason as above. Instead, we use Fifo::PauseAndLock to pause the GPU thread only. + // (Note that this case cannot be reached in single core mode, because in single core mode, + // the CPU and GPU threads are the same thread, and we already checked for the GPU thread.) + + const bool was_running = Core::GetState() == Core::State::Running; + Fifo::PauseAndLock(true, was_running); + f(); + Fifo::PauseAndLock(false, was_running); + } else + { + // If we reach here, we can call Core::PauseAndLock (which we do using RunAsCPUThread). + Core::RunAsCPUThread(std::move(f)); + } } bool Host::GetRenderFocus() diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp index 8ffd52dbe5..6d12a0ec5a 100644 --- a/Source/Core/DolphinQt/Main.cpp +++ b/Source/Core/DolphinQt/Main.cpp @@ -44,6 +44,11 @@ static bool QtMsgAlertHandler(const char* caption, const char* text, bool yes_no const bool called_from_gpu_thread = Core::IsGPUThread(); std::optional r = RunOnObject(QApplication::instance(), [&] { + // If we were called from the CPU/GPU thread, set us as the CPU/GPU thread. + // This information is used in order to avoid deadlocks when calling e.g. + // Host::SetRenderFocus or Core::RunAsCPUThread. (Host::SetRenderFocus + // can get called automatically when a dialog steals the focus.) + Common::ScopeGuard cpu_scope_guard(&Core::UndeclareAsCPUThread); Common::ScopeGuard gpu_scope_guard(&Core::UndeclareAsGPUThread); @@ -53,20 +58,9 @@ static bool QtMsgAlertHandler(const char* caption, const char* text, bool yes_no gpu_scope_guard.Dismiss(); if (called_from_cpu_thread) - { - // If the panic alert that we are about to create steals the focus from RenderWidget, - // Host::SetRenderFocus gets called, which can attempt to use RunAsCPUThread to get us out - // of exclusive fullscreen. If we don't declare ourselves as the CPU thread, RunAsCPUThread - // calls PauseAndLock, which causes a deadlock if the CPU thread is waiting on us returning. Core::DeclareAsCPUThread(); - } if (called_from_gpu_thread) - { - // We also need to avoid getting a deadlock when the GPU thread is waiting on us returning. - // Declaring ourselves as the GPU thread does not alter the behavior of RunAsCPUThread or - // PauseAndLock, but it does make Host::SetRenderFocus not call RunAsCPUThread. Core::DeclareAsGPUThread(); - } ModalMessageBox message_box(QApplication::activeWindow(), Qt::ApplicationModal); message_box.setWindowTitle(QString::fromUtf8(caption)); From edec1d5e3a13330ccf7f38fc75fdc51897232f34 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 16 Jan 2022 18:50:53 -0800 Subject: [PATCH 004/659] Work around false SLOTS defined but not used warning on GCC See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80351 --- Source/Core/Core/HW/EXI/EXI.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/HW/EXI/EXI.h b/Source/Core/Core/HW/EXI/EXI.h index f466b0428b..01661a0920 100644 --- a/Source/Core/Core/HW/EXI/EXI.h +++ b/Source/Core/Core/HW/EXI/EXI.h @@ -37,10 +37,12 @@ enum class Slot : int B, SP1, }; -static constexpr auto SLOTS = {Slot::A, Slot::B, Slot::SP1}; -static constexpr auto MAX_SLOT = Slot::SP1; -static constexpr auto MEMCARD_SLOTS = {Slot::A, Slot::B}; -static constexpr auto MAX_MEMCARD_SLOT = Slot::B; +// Note: using auto here results in a false warning on GCC +// See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80351 +constexpr std::initializer_list SLOTS = {Slot::A, Slot::B, Slot::SP1}; +constexpr auto MAX_SLOT = Slot::SP1; +constexpr std::initializer_list MEMCARD_SLOTS = {Slot::A, Slot::B}; +constexpr auto MAX_MEMCARD_SLOT = Slot::B; constexpr bool IsMemcardSlot(Slot slot) { return slot == Slot::A || slot == Slot::B; From c1df874057cec072ee36dd02add70c463d23dea8 Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Thu, 3 Feb 2022 12:42:07 +1100 Subject: [PATCH 005/659] Rewrite readme --- Readme.md | 179 +++++++++++++++++++++++++++--------------------------- 1 file changed, 88 insertions(+), 91 deletions(-) diff --git a/Readme.md b/Readme.md index 80f0f1424f..0f7818e76e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,6 @@ # Dolphin - A GameCube and Wii Emulator -[Homepage](https://dolphin-emu.org/) | [Project Site](https://github.com/dolphin-emu/dolphin) | [Buildbot](https://dolphin.ci) | [Forums](https://forums.dolphin-emu.org/) | [Wiki](https://wiki.dolphin-emu.org/) | [Issue Tracker](https://bugs.dolphin-emu.org/projects/emulator/issues) | [Coding Style](https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md) | [Transifex Page](https://www.transifex.com/projects/p/dolphin-emu/) +[Homepage](https://dolphin-emu.org/) | [Project Site](https://github.com/dolphin-emu/dolphin) | [Buildbot](https://dolphin.ci) | [Forums](https://forums.dolphin-emu.org) | [Wiki](https://wiki.dolphin-emu.org) | [Github Wiki](https://github.com/dolphin-emu/dolphin/wiki) | [Issue Tracker](https://bugs.dolphin-emu.org/projects/emulator/issues) | [Coding Style](https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md) | [Transifex Page](https://www.transifex.com/projects/p/dolphin-emu) Dolphin is an emulator for running GameCube and Wii games on Windows, Linux, macOS, and recent Android devices. It's licensed under the terms @@ -51,11 +51,6 @@ git submodule update --init The "Release" solution configuration includes performance optimizations for the best user experience but complicates debugging Dolphin. The "Debug" solution configuration is significantly slower, more verbose and less permissive but makes debugging Dolphin easier. -An installer can be created by using the `Installer.nsi` script in the -Installer directory. This will require the Nullsoft Scriptable Install System -(NSIS) to be installed. Creating an installer is not necessary to run Dolphin -since the Binary directory contains a working Dolphin distribution. - ## Building for Linux and macOS Dolphin requires [CMake](https://cmake.org/) for systems other than Windows. Many libraries are @@ -75,7 +70,7 @@ A binary supporting a single architecture can be built using the following steps 1. `mkdir build` 2. `cd build` 3. `cmake ..` -4. `make` +4. `make -j$(sysctl -n hw.logicalcpu)` An application bundle will be created in `./Binaries`. @@ -98,7 +93,7 @@ To install to your system. 1. `mkdir build` 2. `cd build` 3. `cmake ..` -4. `make` +4. `make -j $(nproc)` 5. `sudo make install` ### Linux Local Build Steps: @@ -108,7 +103,7 @@ Useful for development as root access is not required. 1. `mkdir Build` 2. `cd Build` 3. `cmake .. -DLINUX_LOCAL_DEV=true` -4. `make` +4. `make -j $(nproc)` 5. `ln -s ../../Data/Sys Binaries/` ### Linux Portable Build Steps: @@ -119,7 +114,7 @@ Or useful for having multiple distinct Dolphin setups for testing/development/TA 1. `mkdir Build` 2. `cd Build` 3. `cmake .. -DLINUX_LOCAL_DEV=true` -4. `make` +4. `make -j $(nproc)` 5. `cp -r ../Data/Sys/ Binaries/` 6. `touch Binaries/portable.txt` @@ -141,28 +136,44 @@ automatically while building the Java code. ## Uninstalling -When Dolphin has been installed with the NSIS installer, you can uninstall -Dolphin like any other Windows application. +On Windows, simply remove the extracted directory, unless it was installed with the NSIS installer, +in which case you can uninstall Dolphin like any other Windows application. Linux users can run `cat install_manifest.txt | xargs -d '\n' rm` as root from the build directory to uninstall Dolphin from their system. macOS users can simply delete Dolphin.app to uninstall it. -Additionally, you'll want to remove the global user directory (see below to -see where it's stored) if you don't plan to reinstall Dolphin. +Additionally, you'll want to remove the global user directory if you don't plan on reinstalling Dolphin. ## Command Line Usage -`Usage: Dolphin [-h] [-d] [-l] [-e ] [-b] [-v ] [-a ]` +```Usage: Dolphin.exe [options]... [FILE]... -* -h, --help Show this help message -* -d, --debugger Show the debugger pane and additional View menu options -* -l, --logger Open the logger -* -e, --exec= Load the specified file (DOL,ELF,WAD,GCM,ISO) -* -b, --batch Exit Dolphin with emulator -* -v, --video_backend= Specify a video backend -* -a, --audio_emulation= Low level (LLE) or high level (HLE) audio +Options: + --version show program's version number and exit + -h, --help show this help message and exit + -u USER, --user=USER User folder path + -m MOVIE, --movie=MOVIE + Play a movie file + -e , --exec= + Load the specified file + -n <16-character ASCII title ID>, --nand_title=<16-character ASCII title ID> + Launch a NAND title + -C .
.=, --config=.
.= + Set a configuration option + -s , --save_state= + Load the initial save state + -d, --debugger Show the debugger pane and additional View menu options + -l, --logger Open the logger + -b, --batch Run Dolphin without the user interface (Requires + --exec or --nand-title) + -c, --confirm Set Confirm on Stop + -v VIDEO_BACKEND, --video_backend=VIDEO_BACKEND + Specify a video backend + -a AUDIO_EMULATION, --audio_emulation=AUDIO_EMULATION + Choose audio emulation from [HLE|LLE] +``` Available DSP emulation engines are HLE (High Level Emulation) and LLE (Low Level Emulation). HLE is faster but less accurate whereas @@ -174,79 +185,65 @@ There's also "Null", which will not render anything, and "Software Renderer", which uses the CPU for rendering and is intended for debugging purposes only. -## Sys Files +## DolphinTool Usage +``` +usage: dolphin-tool COMMAND -h -* `wiitdb.txt`: Wii title database from [GameTDB](https://www.gametdb.com/) -* `totaldb.dsy`: Database of symbols (for devs only) -* `GC/font_western.bin`: font dumps -* `GC/font_japanese.bin`: font dumps -* `GC/dsp_coef.bin`: DSP dumps -* `GC/dsp_rom.bin`: DSP dumps -* `Wii/clientca.pem`: Wii network certificate -* `Wii/clientcakey.pem`: Wii network certificate key -* `Wii/rootca.pem`: Wii network certificate issuer / CA +commands supported: [convert, verify, header] +``` -The DSP dumps included with Dolphin have been written from scratch and do not -contain any copyrighted material. They should work for most purposes, however -some games implement copy protection by checksumming the dumps. You will need -to dump the DSP files from a console and replace the default dumps if you want -to fix those issues. +```Usage: convert [options]... [FILE]... -Wii network certificates must be extracted from a Wii IOS. A guide for that can be found [here](https://wiki.dolphin-emu.org/index.php?title=Wii_Network_Guide). +Options: + -h, --help show this help message and exit + -u USER, --user=USER User folder path, required for temporary processing + files.Will be automatically created if this option is + not set. + -i FILE, --input=FILE + Path to disc image FILE. + -o FILE, --output=FILE + Path to the destination FILE. + -f FORMAT, --format=FORMAT + Container format to use. Default is RVZ. [iso|gcz|wia|rvz] + -s, --scrub Scrub junk data as part of conversion. + -b BLOCK_SIZE, --block_size=BLOCK_SIZE + Block size for GCZ/WIA/RVZ formats, as an integer. + Suggested value for RVZ: 131072 (128 KiB) + -c COMPRESSION, --compression=COMPRESSION + Compression method to use when converting to WIA/RVZ. + Suggested value for RVZ: zstd [none|zstd|bzip|lzma|lzma2] + -l COMPRESSION_LEVEL, --compression_level=COMPRESSION_LEVEL + Level of compression for the selected method. Ignored + if 'none'. Suggested value for zstd: 5 +``` -## Folder Structure +``` +Usage: verify [options]... -These folders are installed read-only and should not be changed: +Options: + -h, --help show this help message and exit + -u USER, --user=USER User folder path, required for temporary processing + files.Will be automatically created if this option is + not set. + -i FILE, --input=FILE + Path to disc image FILE. + -a ALGORITHM, --algorithm=ALGORITHM + Optional. Compute and print the digest using the + selected algorithm, then exit. [crc32|md5|sha1] +``` -* `GameSettings`: per-game default settings database -* `GC`: DSP and font dumps -* `Shaders`: post-processing shaders -* `Themes`: icon themes for GUI -* `Resources`: icons that are theme-agnostic -* `Wii`: default Wii NAND contents +``` +Usage: header [options]... -## Packaging and udev - -The Data folder contains a udev rule file for the official GameCube controller -adapter and the Mayflash DolphinBar. Package maintainers can use that file in their packages for Dolphin. -Users compiling Dolphin on Linux can also just copy the file to their udev -rules folder. - -## User Folder Structure - -A number of user writeable directories are created for caching purposes or for -allowing the user to edit their contents. On macOS and Linux these folders are -stored in `~/Library/Application Support/Dolphin/` and `~/.dolphin-emu` -respectively, but can be overwritten by setting the environment variable -`DOLPHIN_EMU_USERPATH`. On Windows the user directory is stored in the `My Documents` -folder by default, but there are various way to override this behavior: - -* Creating a file called `portable.txt` next to the Dolphin executable will - store the user directory in a local directory called "User" next to the - Dolphin executable. -* If the registry string value `LocalUserConfig` exists in - `HKEY_CURRENT_USER/Software/Dolphin Emulator` and has the value **1**, - Dolphin will always start in portable mode. -* If the registry string value `UserConfigPath` exists in - `HKEY_CURRENT_USER/Software/Dolphin Emulator`, the user folders will be - stored in the directory given by that string. The other two methods will be - prioritized over this setting. - -List of user folders: - -* `Cache`: used to cache the ISO list -* `Config`: configuration files -* `Dump`: anything dumped from Dolphin -* `GameConfig`: additional settings to be applied per-game -* `GC`: memory cards and system BIOS -* `Load`: custom textures -* `Logs`: logs, if enabled -* `ScreenShots`: screenshots taken via Dolphin -* `StateSaves`: save states -* `Wii`: Wii NAND contents - -## Custom Textures - -Custom textures have to be placed in the user directory under -`Load/Textures/[GameID]/`. You can find the Game ID by right-clicking a game -in the ISO list and selecting "ISO Properties". +Options: + -h, --help show this help message and exit + -i FILE, --input=FILE + Path to disc image FILE. + -b, --block_size Optional. Print the block size of GCZ/WIA/RVZ formats, +then exit. + -c, --compression Optional. Print the compression method of GCZ/WIA/RVZ + formats, then exit. + -l, --compression_level + Optional. Print the level of compression for WIA/RVZ + formats, then exit. +``` From e4552c17c8ab48d3af9998cc0b9663daf6248ee2 Mon Sep 17 00:00:00 2001 From: xxkfqz Date: Sat, 23 Apr 2022 13:55:22 +0500 Subject: [PATCH 006/659] Change required libfmt version from 8.0 to 8.x --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2d62498a1..e0bc248e00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -574,7 +574,7 @@ if (_M_X86) endif() add_subdirectory(Externals/cpp-optparse) -find_package(fmt 8.0) +find_package(fmt 8) if(fmt_FOUND) message(STATUS "Using shared fmt ${fmt_VERSION}") else() From 9b7c5a44581065890771dd917c7722224c65068e Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 24 Apr 2022 14:50:53 -0400 Subject: [PATCH 007/659] Android: Modernize theming system themes.xml now contains a collection of colors, attributes, and styles. No visuals have changed, but this will allow for a more flexible theming system in the future for custom day/night/etc themes. This also removes a bunch of redundant code that can now be written as global styles and inherited themes. --- .../Android/app/src/main/AndroidManifest.xml | 18 ++-- .../activities/EmulationActivity.java | 18 ++-- .../activities/UserDataActivity.java | 4 +- .../dolphinemu/dialogs/AlertMessage.java | 3 +- .../dolphinemu/dialogs/GameDetailsDialog.java | 3 +- .../dialogs/GamePropertiesDialog.java | 5 +- .../cheats/ui/CheatDetailsFragment.java | 2 +- .../features/cheats/ui/CheatsActivity.java | 8 +- .../settings/ui/SettingsActivity.java | 2 +- .../features/settings/ui/SettingsAdapter.java | 14 ++- .../ui/viewholder/RunRunnableViewHolder.java | 2 +- .../ui/viewholder/SettingViewHolder.java | 2 +- ...nlineUpdateRegionSelectDialogFragment.java | 2 +- .../SystemMenuNotInstalledDialogFragment.java | 2 +- .../ui/SystemUpdateResultFragment.java | 2 +- .../dolphinemu/fragments/ConvertFragment.java | 4 +- .../dolphinemu/ui/main/MainPresenter.java | 6 +- .../dolphinemu/utils/Analytics.java | 2 +- .../dolphinemu/utils/FileBrowserHelper.java | 2 +- .../dolphinemu/utils/ThreadUtil.java | 4 +- .../main/res/layout/fragment_ingame_menu.xml | 3 +- .../app/src/main/res/values/styles.xml | 89 +------------------ .../app/src/main/res/values/themes.xml | 68 ++++++++++++++ 23 files changed, 120 insertions(+), 145 deletions(-) create mode 100644 Source/Android/app/src/main/res/values/themes.xml diff --git a/Source/Android/app/src/main/AndroidManifest.xml b/Source/Android/app/src/main/AndroidManifest.xml index 35fd924eea..78bd53c35f 100644 --- a/Source/Android/app/src/main/AndroidManifest.xml +++ b/Source/Android/app/src/main/AndroidManifest.xml @@ -49,7 +49,7 @@ + android:theme="@style/Theme.Dolphin.Main"> @@ -62,7 +62,7 @@ + android:theme="@style/Theme.Dolphin.TV"> @@ -76,26 +76,26 @@ android:name=".features.settings.ui.SettingsActivity" android:exported="false" android:configChanges="orientation|screenSize" - android:theme="@style/DolphinSettingsBase" + android:theme="@style/Theme.Dolphin.Settings" android:label="@string/settings"/> + android:theme="@style/Theme.Dolphin.FilePicker"> @@ -119,18 +119,18 @@ + android:theme="@style/Theme.Dolphin.Main" /> + android:theme="@style/Theme.Dolphin.Settings" /> + android:theme="@style/Theme.Dolphin.Main" /> SettingsActivity.launch(activity, MenuTag.CONFIG_PATHS)); @@ -807,7 +807,7 @@ public final class EmulationActivity extends AppCompatActivity private void toggleControls() { - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_toggle_controls); if (!NativeLibrary.IsEmulatingWii() || mPreferences.getInt("wiiController", 3) == 0) { @@ -869,7 +869,7 @@ public final class EmulationActivity extends AppCompatActivity public void chooseDoubleTapButton() { - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); int currentController = mPreferences.getInt("wiiController", InputOverlay.OVERLAY_WIIMOTE_NUNCHUK); @@ -955,7 +955,7 @@ public final class EmulationActivity extends AppCompatActivity }); valueOpacity.setText(seekbarOpacity.getProgress() + "%"); - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_control_adjustments); builder.setView(view); builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> @@ -977,7 +977,7 @@ public final class EmulationActivity extends AppCompatActivity private void chooseController() { final SharedPreferences.Editor editor = mPreferences.edit(); - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_choose_controller); builder.setSingleChoiceItems(R.array.controllersEntries, mPreferences.getInt("wiiController", 3), @@ -999,7 +999,7 @@ public final class EmulationActivity extends AppCompatActivity private void showMotionControlsOptions() { - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_motion_controls); builder.setSingleChoiceItems(R.array.motionControlsEntries, IntSetting.MAIN_MOTION_CONTROLS.getInt(mSettings), @@ -1019,7 +1019,7 @@ public final class EmulationActivity extends AppCompatActivity private void setIRMode() { - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_ir_mode); builder.setSingleChoiceItems(R.array.irModeEntries, IntSetting.MAIN_IR_MODE.getInt(mSettings), @@ -1129,7 +1129,7 @@ public final class EmulationActivity extends AppCompatActivity } }); - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(getString(R.string.emulation_ir_sensitivity)); builder.setView(view); builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> @@ -1162,7 +1162,7 @@ public final class EmulationActivity extends AppCompatActivity private void resetOverlay() { - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setTitle(getString(R.string.emulation_touch_overlay_reset)) .setPositiveButton(R.string.yes, (dialogInterface, i) -> mEmulationFragment.resetInputOverlay()) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.java index 3471ef4fa5..0ab446a67d 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.java @@ -100,7 +100,7 @@ public class UserDataActivity extends AppCompatActivity { Uri uri = data.getData(); - AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.user_data_import_warning); builder.setNegativeButton(R.string.no, (dialog, i) -> dialog.dismiss()); @@ -148,7 +148,7 @@ public class UserDataActivity extends AppCompatActivity { // Activity not found. Perhaps it was removed by the OEM, or by some new Android version // that didn't exist at the time of writing. Not much we can do other than tell the user - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setMessage(R.string.user_data_open_system_file_manager_failed) .setPositiveButton(R.string.ok, null) .show(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java index 870d244033..529f9fb700 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java @@ -47,8 +47,7 @@ public final class AlertMessage extends DialogFragment boolean isWarning = requireArguments().getBoolean(ARG_IS_WARNING); setCancelable(false); - AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity, - R.style.DolphinDialogBase) + AlertDialog.Builder builder = new AlertDialog.Builder(emulationActivity) .setTitle(title) .setMessage(message); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java index 4b49d76083..2b1bf87bee 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java @@ -38,8 +38,7 @@ public final class GameDetailsDialog extends DialogFragment { GameFile gameFile = GameFileCacheManager.addOrGet(getArguments().getString(ARG_GAME_PATH)); - AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(), - R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity()); ViewGroup contents = (ViewGroup) getActivity().getLayoutInflater() .inflate(R.layout.dialog_game_details, null); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java index 00d98643b8..0c9b16cb01 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java @@ -117,8 +117,7 @@ public class GamePropertiesDialog extends DialogFragment itemsBuilder.add(R.string.properties_clear_game_settings, (dialog, i) -> clearGameSettingsWithConfirmation(gameId)); - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); itemsBuilder.applyToBuilder(builder); builder.setTitle(requireContext() .getString(R.string.preferences_game_properties_with_game_id, gameId)); @@ -127,7 +126,7 @@ public class GamePropertiesDialog extends DialogFragment private void clearGameSettingsWithConfirmation(String gameId) { - new AlertDialog.Builder(requireContext(), R.style.DolphinDialogBase) + new AlertDialog.Builder(requireContext()) .setTitle(R.string.properties_clear_game_settings) .setMessage(R.string.properties_clear_game_settings_confirmation) .setPositiveButton(R.string.yes, (dialog, i) -> clearGameSettings(gameId)) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java index de147c35b7..e5a027f64b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java @@ -89,7 +89,7 @@ public class CheatDetailsFragment extends Fragment private void onDeleteClicked(View view) { AlertDialog.Builder builder = - new AlertDialog.Builder(requireContext(), R.style.DolphinDialogBase); + new AlertDialog.Builder(requireContext()); builder.setMessage(getString(R.string.cheats_delete_confirmation, mCheat.getName())); builder.setPositiveButton(R.string.yes, (dialog, i) -> mViewModel.deleteSelectedCheat()); builder.setNegativeButton(R.string.no, null); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsActivity.java index 238a764f3b..b3bb5cb0cd 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsActivity.java @@ -191,7 +191,7 @@ public class CheatsActivity extends AppCompatActivity public void downloadGeckoCodes() { - AlertDialog progressDialog = new AlertDialog.Builder(this, R.style.DolphinDialogBase).create(); + AlertDialog progressDialog = new AlertDialog.Builder(this).create(); progressDialog.setTitle(R.string.cheats_downloading); progressDialog.setCancelable(false); progressDialog.show(); @@ -206,14 +206,14 @@ public class CheatsActivity extends AppCompatActivity if (codes == null) { - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setMessage(getString(R.string.cheats_download_failed)) .setPositiveButton(R.string.ok, null) .show(); } else if (codes.length == 0) { - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setMessage(getString(R.string.cheats_download_empty)) .setPositiveButton(R.string.ok, null) .show(); @@ -223,7 +223,7 @@ public class CheatsActivity extends AppCompatActivity int cheatsAdded = mViewModel.addDownloadedGeckoCodes(codes); String message = getString(R.string.cheats_download_succeeded, codes.length, cheatsAdded); - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setMessage(message) .setPositiveButton(R.string.ok, null) .show(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java index 3cc3e2f910..baaf955e96 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java @@ -228,7 +228,7 @@ public final class SettingsActivity extends AppCompatActivity implements Setting @Override public void showGameIniJunkDeletionQuestion() { - new AlertDialog.Builder(this, R.style.DolphinDialogBase) + new AlertDialog.Builder(this) .setTitle(getString(R.string.game_ini_junk_title)) .setMessage(getString(R.string.game_ini_junk_question)) .setPositiveButton(R.string.yes, (dialogInterface, i) -> mPresenter.clearSettings()) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java index a26be57754..8e5649b23c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java @@ -195,8 +195,7 @@ public final class SettingsAdapter extends RecyclerView.Adapter dialog.dismiss()); builder.show(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RunRunnableViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RunRunnableViewHolder.java index 2d55f66c6b..cecc88fd21 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RunRunnableViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RunRunnableViewHolder.java @@ -54,7 +54,7 @@ public final class RunRunnableViewHolder extends SettingViewHolder if (alertTextID > 0) { - AlertDialog.Builder builder = new AlertDialog.Builder(mContext, R.style.DolphinDialogBase) + AlertDialog.Builder builder = new AlertDialog.Builder(mContext) .setTitle(mItem.getName()) .setMessage(alertTextID); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java index 3abbedbdaf..41a7e94abd 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java @@ -96,7 +96,7 @@ public abstract class SettingViewHolder extends RecyclerView.ViewHolder Context context = clicked.getContext(); - AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.DolphinDialogBase) + AlertDialog.Builder builder = new AlertDialog.Builder(context) .setMessage(R.string.setting_clear_confirm); builder diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/OnlineUpdateRegionSelectDialogFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/OnlineUpdateRegionSelectDialogFragment.java index dddcd204f8..d5bc94b11c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/OnlineUpdateRegionSelectDialogFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/OnlineUpdateRegionSelectDialogFragment.java @@ -23,7 +23,7 @@ public class OnlineUpdateRegionSelectDialogFragment extends DialogFragment R.string.japan), getString(R.string.korea), getString(R.string.united_states)}; int checkedItem = -1; - return new AlertDialog.Builder(requireContext(), R.style.DolphinDialogBase) + return new AlertDialog.Builder(requireContext()) .setTitle(R.string.region_select_title) .setSingleChoiceItems(items, checkedItem, (dialog, which) -> { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemMenuNotInstalledDialogFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemMenuNotInstalledDialogFragment.java index 02f73f1045..9acf238042 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemMenuNotInstalledDialogFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemMenuNotInstalledDialogFragment.java @@ -16,7 +16,7 @@ public class SystemMenuNotInstalledDialogFragment extends DialogFragment @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - return new AlertDialog.Builder(requireContext(), R.style.DolphinDialogBase) + return new AlertDialog.Builder(requireContext()) .setTitle(R.string.system_menu_not_installed_title) .setMessage(R.string.system_menu_not_installed_message) .setPositiveButton(R.string.yes, (dialog, which) -> diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateResultFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateResultFragment.java index 298b4ac0ed..292aadbd7e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateResultFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateResultFragment.java @@ -88,7 +88,7 @@ public class SystemUpdateResultFragment extends DialogFragment throw new IllegalStateException("Unexpected value: " + mResult); } - return new AlertDialog.Builder(requireContext(), R.style.DolphinDialogBase) + return new AlertDialog.Builder(requireContext()) .setTitle(title) .setMessage(message) .setPositiveButton(R.string.ok, (dialog, which) -> diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/ConvertFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/ConvertFragment.java index 180e100c42..dbae87c437 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/ConvertFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/ConvertFragment.java @@ -361,7 +361,7 @@ public class ConvertFragment extends Fragment implements View.OnClickListener return () -> { Context context = requireContext(); - AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setMessage(warning_text) .setPositiveButton(R.string.yes, (dialog, i) -> action.run()) .setNegativeButton(R.string.no, null); @@ -459,7 +459,7 @@ public class ConvertFragment extends Fragment implements View.OnClickListener { progressDialog.dismiss(); - AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(context); if (success) { builder.setMessage(R.string.convert_success_message) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java index 52423c3da4..ca57cde56f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java @@ -165,7 +165,7 @@ public final class MainPresenter if (Arrays.stream(childNames).noneMatch((name) -> FileBrowserHelper.GAME_EXTENSIONS.contains( FileBrowserHelper.getExtension(name, false)))) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity, R.style.DolphinDialogBase); + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setMessage(mActivity.getString(R.string.wrong_file_extension_in_directory, FileBrowserHelper.setToSortedDelimitedString(FileBrowserHelper.GAME_EXTENSIONS))); builder.setPositiveButton(R.string.ok, null); @@ -204,7 +204,7 @@ public final class MainPresenter mActivity.runOnUiThread(() -> { AlertDialog.Builder builder = - new AlertDialog.Builder(mActivity, R.style.DolphinDialogBase); + new AlertDialog.Builder(mActivity); builder.setMessage(R.string.wii_save_exists); builder.setCancelable(false); builder.setPositiveButton(R.string.yes, (dialog, i) -> canOverwriteFuture.complete(true)); @@ -250,7 +250,7 @@ public final class MainPresenter public void importNANDBin(String path) { AlertDialog.Builder builder = - new AlertDialog.Builder(mActivity, R.style.DolphinDialogBase); + new AlertDialog.Builder(mActivity); builder.setMessage(R.string.nand_import_warning); builder.setNegativeButton(R.string.no, (dialog, i) -> dialog.dismiss()); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java index 05cd91e707..b5c5548ca3 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java @@ -36,7 +36,7 @@ public class Analytics private static void showMessage(Context context) { - new AlertDialog.Builder(context, R.style.DolphinDialogBase) + new AlertDialog.Builder(context) .setTitle(context.getString(R.string.analytics)) .setMessage(context.getString(R.string.analytics_desc)) .setPositiveButton(R.string.yes, (dialogInterface, i) -> diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java index 848b5c4970..388ed98b69 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java @@ -118,7 +118,7 @@ public final class FileBrowserHelper setToSortedDelimitedString(validExtensions)); } - new AlertDialog.Builder(context, R.style.DolphinDialogBase) + new AlertDialog.Builder(context) .setMessage(message) .setPositiveButton(R.string.yes, (dialogInterface, i) -> runnable.run()) .setNegativeButton(R.string.no, null) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ThreadUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ThreadUtil.java index 1c2a3faa53..8c2dcb7673 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ThreadUtil.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/ThreadUtil.java @@ -27,7 +27,7 @@ public class ThreadUtil @Nullable DialogInterface.OnDismissListener onResultDismiss) { Resources resources = activity.getResources(); - AlertDialog progressDialog = new AlertDialog.Builder(activity, R.style.DolphinDialogBase) + AlertDialog progressDialog = new AlertDialog.Builder(activity) .create(); progressDialog.setTitle(progressTitle); if (progressMessage != 0) @@ -45,7 +45,7 @@ public class ThreadUtil if (result != null) { AlertDialog.Builder builder = - new AlertDialog.Builder(activity, R.style.DolphinDialogBase); + new AlertDialog.Builder(activity); builder.setMessage(result); builder.setPositiveButton(R.string.ok, (dialog, i) -> dialog.dismiss()); builder.setOnDismissListener(onResultDismiss); diff --git a/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml b/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml index 898adf6179..71dd4b6ad8 100644 --- a/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml +++ b/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml @@ -27,8 +27,7 @@ android:layout_height="0dp" android:layout_weight="1" android:scrollbarSize="8dp" - android:fadeScrollbars="false" - android:theme="@style/InGameScrollView"> + android:fadeScrollbars="false"> - - - - - - - - - - @@ -53,26 +12,7 @@ false - - - - - + - - - - - - diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000000..110242a302 --- /dev/null +++ b/Source/Android/app/src/main/res/values/themes.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + From 95175bbb96d3d8379ec4b7a727f17b40f618b86e Mon Sep 17 00:00:00 2001 From: TryTwo Date: Fri, 29 Apr 2022 08:19:03 -0700 Subject: [PATCH 008/659] Debugger RegisterWidget: Add context options to change entire column's display type. --- .../Core/DolphinQt/Debugger/RegisterColumn.h | 4 +- .../DolphinQt/Debugger/RegisterWidget.cpp | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/RegisterColumn.h b/Source/Core/DolphinQt/Debugger/RegisterColumn.h index f95a0bafcd..9547becce2 100644 --- a/Source/Core/DolphinQt/Debugger/RegisterColumn.h +++ b/Source/Core/DolphinQt/Debugger/RegisterColumn.h @@ -35,9 +35,9 @@ enum class RegisterType pt_hashmask // ??? }; -enum class RegisterDisplay +enum class RegisterDisplay : int { - Hex, + Hex = 0, SInt32, UInt32, Float, diff --git a/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp b/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp index e0538825c2..0d53155519 100644 --- a/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp @@ -149,6 +149,21 @@ void RegisterWidget::ShowContextMenu() // i18n: A double precision floating point number auto* view_double = menu->addAction(tr("Double")); + menu->addSeparator(); + + auto* view_hex_column = menu->addAction(tr("All Hexadecimal")); + view_hex_column->setData(static_cast(RegisterDisplay::Hex)); + auto* view_int_column = menu->addAction(tr("All Signed Integer")); + view_int_column->setData(static_cast(RegisterDisplay::SInt32)); + auto* view_uint_column = menu->addAction(tr("All Unsigned Integer")); + view_uint_column->setData(static_cast(RegisterDisplay::UInt32)); + // i18n: A floating point number + auto* view_float_column = menu->addAction(tr("All Float")); + view_float_column->setData(static_cast(RegisterDisplay::Float)); + // i18n: A double precision floating point number + auto* view_double_column = menu->addAction(tr("All Double")); + view_double_column->setData(static_cast(RegisterDisplay::Double)); + for (auto* action : {view_hex, view_int, view_uint, view_float, view_double}) { action->setCheckable(true); @@ -156,6 +171,12 @@ void RegisterWidget::ShowContextMenu() action->setActionGroup(group); } + for (auto* action : {view_hex_column, view_int_column, view_uint_column, view_float_column, + view_double_column}) + { + action->setVisible(false); + } + switch (display) { case RegisterDisplay::Hex: @@ -182,10 +203,16 @@ void RegisterWidget::ShowContextMenu() view_int->setVisible(true); view_uint->setVisible(true); view_float->setVisible(true); + view_hex_column->setVisible(true); + view_int_column->setVisible(true); + view_uint_column->setVisible(true); + view_float_column->setVisible(true); break; case RegisterType::fpr: view_hex->setVisible(true); view_double->setVisible(true); + view_hex_column->setVisible(true); + view_double_column->setVisible(true); break; default: break; @@ -221,6 +248,19 @@ void RegisterWidget::ShowContextMenu() m_updating = false; }); + for (auto* action : {view_hex_column, view_int_column, view_uint_column, view_float_column, + view_double_column}) + { + connect(action, &QAction::triggered, [this, action] { + auto col = m_table->currentItem()->column(); + for (int i = 0; i < 32; i++) + { + auto* update_item = static_cast(m_table->item(i, col)); + update_item->SetDisplay(static_cast(action->data().toInt())); + } + }); + } + menu->addSeparator(); } From 8447c903789ab69548b4ac95ef2f156100071a2d Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Mon, 2 May 2022 13:43:58 +1000 Subject: [PATCH 009/659] Update pugixml to v1.12.1 --- Externals/pugixml/pugiconfig.hpp | 15 +- Externals/pugixml/pugixml.cpp | 975 +++++++++++++++++++++---------- Externals/pugixml/pugixml.hpp | 119 +++- 3 files changed, 782 insertions(+), 327 deletions(-) diff --git a/Externals/pugixml/pugiconfig.hpp b/Externals/pugixml/pugiconfig.hpp index 549024086a..0713b0efbb 100644 --- a/Externals/pugixml/pugiconfig.hpp +++ b/Externals/pugixml/pugiconfig.hpp @@ -1,8 +1,8 @@ /** - * pugixml parser - version 1.8 + * pugixml parser - version 1.12 * -------------------------------------------------------- - * Copyright (C) 2006-2017, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) - * Report bugs and download new versions at http://pugixml.org/ + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ * * This library is distributed under the MIT License. See notice at the end * of this file. @@ -27,7 +27,7 @@ // #define PUGIXML_NO_STL // Uncomment this to disable exceptions -#define PUGIXML_NO_EXCEPTIONS +// #define PUGIXML_NO_EXCEPTIONS // Set this to control attributes for public classes/functions, i.e.: // #define PUGIXML_API __declspec(dllexport) // to export all public symbols from DLL @@ -40,16 +40,19 @@ // #define PUGIXML_MEMORY_OUTPUT_STACK 10240 // #define PUGIXML_MEMORY_XPATH_PAGE_SIZE 4096 +// Tune this constant to adjust max nesting for XPath queries +// #define PUGIXML_XPATH_DEPTH_LIMIT 1024 + // Uncomment this to switch to header-only version // #define PUGIXML_HEADER_ONLY // Uncomment this to enable long long support -#define PUGIXML_HAS_LONG_LONG +// #define PUGIXML_HAS_LONG_LONG #endif /** - * Copyright (c) 2006-2017 Arseny Kapoulkine + * Copyright (c) 2006-2022 Arseny Kapoulkine * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation diff --git a/Externals/pugixml/pugixml.cpp b/Externals/pugixml/pugixml.cpp index 56d7c754c4..60b55da3ab 100644 --- a/Externals/pugixml/pugixml.cpp +++ b/Externals/pugixml/pugixml.cpp @@ -1,8 +1,8 @@ /** - * pugixml parser - version 1.8 + * pugixml parser - version 1.12 * -------------------------------------------------------- - * Copyright (C) 2006-2017, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) - * Report bugs and download new versions at http://pugixml.org/ + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ * * This library is distributed under the MIT License. See notice at the end * of this file. @@ -48,6 +48,11 @@ # pragma warning(disable: 4996) // this function or variable may be unsafe #endif +#if defined(_MSC_VER) && defined(__c2__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated" // this function or variable may be unsafe +#endif + #ifdef __INTEL_COMPILER # pragma warning(disable: 177) // function was declared but never referenced # pragma warning(disable: 279) // controlling expression is constant @@ -71,6 +76,10 @@ # pragma diag_suppress=237 // controlling expression is constant #endif +#ifdef __TI_COMPILER_VERSION__ +# pragma diag_suppress 179 // function was declared but never referenced +#endif + // Inlining controls #if defined(_MSC_VER) && _MSC_VER >= 1300 # define PUGI__NO_INLINE __declspec(noinline) @@ -81,7 +90,7 @@ #endif // Branch weight controls -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(__c2__) # define PUGI__UNLIKELY(cond) __builtin_expect(cond, 0) #else # define PUGI__UNLIKELY(cond) (cond) @@ -97,8 +106,8 @@ # define PUGI__DMC_VOLATILE #endif -// Integer sanitizer workaround -#ifdef __has_attribute +// Integer sanitizer workaround; we only apply this for clang since gcc8 has no_sanitize but not unsigned-integer-overflow and produces "attribute directive ignored" warnings +#if defined(__clang__) && defined(__has_attribute) # if __has_attribute(no_sanitize) # define PUGI__UNSIGNED_OVERFLOW __attribute__((no_sanitize("unsigned-integer-overflow"))) # else @@ -115,18 +124,30 @@ using std::memmove; using std::memset; #endif -// Some MinGW versions have headers that erroneously omit LLONG_MIN/LLONG_MAX/ULLONG_MAX definitions in strict ANSI mode -#if defined(PUGIXML_HAS_LONG_LONG) && defined(__MINGW32__) && defined(__STRICT_ANSI__) && !defined(LLONG_MAX) && !defined(LLONG_MIN) && !defined(ULLONG_MAX) -# define LLONG_MAX 9223372036854775807LL -# define LLONG_MIN (-LLONG_MAX-1) -# define ULLONG_MAX (2ULL*LLONG_MAX+1) +// Some MinGW/GCC versions have headers that erroneously omit LLONG_MIN/LLONG_MAX/ULLONG_MAX definitions from limits.h in some configurations +#if defined(PUGIXML_HAS_LONG_LONG) && defined(__GNUC__) && !defined(LLONG_MAX) && !defined(LLONG_MIN) && !defined(ULLONG_MAX) +# define LLONG_MIN (-LLONG_MAX - 1LL) +# define LLONG_MAX __LONG_LONG_MAX__ +# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) #endif // In some environments MSVC is a compiler but the CRT lacks certain MSVC-specific features -#if defined(_MSC_VER) && !defined(__S3E__) +#if defined(_MSC_VER) && !defined(__S3E__) && !defined(_WIN32_WCE) # define PUGI__MSVC_CRT_VERSION _MSC_VER +#elif defined(_WIN32_WCE) +# define PUGI__MSVC_CRT_VERSION 1310 // MSVC7.1 #endif +// Not all platforms have snprintf; we define a wrapper that uses snprintf if possible. This only works with buffers with a known size. +#if __cplusplus >= 201103 +# define PUGI__SNPRINTF(buf, ...) snprintf(buf, sizeof(buf), __VA_ARGS__) +#elif defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 +# define PUGI__SNPRINTF(buf, ...) _snprintf_s(buf, _countof(buf), _TRUNCATE, __VA_ARGS__) +#else +# define PUGI__SNPRINTF sprintf +#endif + +// We put implementation details into an anonymous namespace in source mode, but have to keep it in non-anonymous namespace in header-only mode to prevent binary bloat. #ifdef PUGIXML_HEADER_ONLY # define PUGI__NS_BEGIN namespace pugi { namespace impl { # define PUGI__NS_END } } @@ -312,10 +333,10 @@ PUGI__NS_BEGIN item->value = value; } - bool reserve() + bool reserve(size_t extra = 16) { - if (_count + 16 >= _capacity - _capacity / 4) - return rehash(); + if (_count + extra >= _capacity - _capacity / 4) + return rehash(_count + extra); return true; } @@ -332,7 +353,7 @@ PUGI__NS_BEGIN size_t _count; - bool rehash(); + bool rehash(size_t count); item_t* get_item(const void* key) { @@ -353,13 +374,13 @@ PUGI__NS_BEGIN bucket = (bucket + probe + 1) & hashmod; } - assert(false && "Hash table is full"); + assert(false && "Hash table is full"); // unreachable return 0; } static PUGI__UNSIGNED_OVERFLOW unsigned int hash(const void* key) { - unsigned int h = static_cast(reinterpret_cast(key)); + unsigned int h = static_cast(reinterpret_cast(key) & 0xffffffff); // MurmurHash3 32-bit finalizer h ^= h >> 16; @@ -372,16 +393,20 @@ PUGI__NS_BEGIN } }; - PUGI__FN_NO_INLINE bool compact_hash_table::rehash() + PUGI__FN_NO_INLINE bool compact_hash_table::rehash(size_t count) { + size_t capacity = 32; + while (count >= capacity - capacity / 4) + capacity *= 2; + compact_hash_table rt; - rt._capacity = (_capacity == 0) ? 32 : _capacity * 2; - rt._items = static_cast(xml_memory::allocate(sizeof(item_t) * rt._capacity)); + rt._capacity = capacity; + rt._items = static_cast(xml_memory::allocate(sizeof(item_t) * capacity)); if (!rt._items) return false; - memset(rt._items, 0, sizeof(item_t) * rt._capacity); + memset(rt._items, 0, sizeof(item_t) * capacity); for (size_t i = 0; i < _capacity; ++i) if (_items[i].key) @@ -390,7 +415,7 @@ PUGI__NS_BEGIN if (_items) xml_memory::deallocate(_items); - _capacity = rt._capacity; + _capacity = capacity; _items = rt._items; assert(_count == rt._count); @@ -503,7 +528,8 @@ PUGI__NS_BEGIN xml_memory_page* page = xml_memory_page::construct(memory); assert(page); - page->allocator = _root->allocator; + assert(this == _root->allocator); + page->allocator = this; return page; } @@ -829,7 +855,7 @@ PUGI__NS_BEGIN { uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); - return reinterpret_cast(base + ((_data - 1 + start) << compact_alignment_log2)); + return reinterpret_cast(base + (_data - 1 + start) * compact_alignment); } else return compact_get_value(this); @@ -907,7 +933,7 @@ PUGI__NS_BEGIN { uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); - return reinterpret_cast(base + ((_data - 1 - 65533) << compact_alignment_log2)); + return reinterpret_cast(base + (_data - 1 - 65533) * compact_alignment); } else if (_data == 65534) return static_cast(compact_get_page(this, header_offset)->compact_shared_parent); @@ -1838,7 +1864,7 @@ PUGI__NS_BEGIN enum chartypex_t { ctx_special_pcdata = 1, // Any symbol >= 0 and < 32 (except \t, \r, \n), &, <, > - ctx_special_attr = 2, // Any symbol >= 0 and < 32 (except \t), &, <, >, " + ctx_special_attr = 2, // Any symbol >= 0 and < 32, &, <, ", ' ctx_start_symbol = 4, // Any symbol > 127, a-z, A-Z, _ ctx_digit = 8, // 0-9 ctx_symbol = 16 // Any symbol > 127, a-z, A-Z, 0-9, _, -, . @@ -1846,10 +1872,10 @@ PUGI__NS_BEGIN static const unsigned char chartypex_table[256] = { - 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 2, 3, 3, 2, 3, 3, // 0-15 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, // 0-15 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 16-31 - 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 16, 16, 0, // 32-47 - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 3, 0, 3, 0, // 48-63 + 0, 0, 2, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 16, 16, 0, // 32-47 + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 3, 0, 1, 0, // 48-63 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 64-79 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 20, // 80-95 @@ -2144,7 +2170,7 @@ PUGI__NS_BEGIN if (encoding == encoding_latin1) return convert_buffer_generic(out_buffer, out_length, contents, size, latin1_decoder()); - assert(false && "Invalid encoding"); + assert(false && "Invalid encoding"); // unreachable return false; } #else @@ -2249,7 +2275,7 @@ PUGI__NS_BEGIN if (encoding == encoding_latin1) return convert_buffer_latin1(out_buffer, out_length, contents, size, is_mutable); - assert(false && "Invalid encoding"); + assert(false && "Invalid encoding"); // unreachable return false; } #endif @@ -2686,7 +2712,7 @@ PUGI__NS_BEGIN { PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_trim_pcdata == 0x0800); - switch (((optmask >> 4) & 3) | ((optmask >> 9) & 4)) // get bitmask for flags (eol escapes trim) + switch (((optmask >> 4) & 3) | ((optmask >> 9) & 4)) // get bitmask for flags (trim eol escapes); this simultaneously checks 3 options from assertion above { case 0: return strconv_pcdata_impl::parse; case 1: return strconv_pcdata_impl::parse; @@ -2696,7 +2722,7 @@ PUGI__NS_BEGIN case 5: return strconv_pcdata_impl::parse; case 6: return strconv_pcdata_impl::parse; case 7: return strconv_pcdata_impl::parse; - default: assert(false); return 0; // should not get here + default: assert(false); return 0; // unreachable } } @@ -2855,7 +2881,7 @@ PUGI__NS_BEGIN { PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x40 && parse_wnorm_attribute == 0x80); - switch ((optmask >> 4) & 15) // get bitmask for flags (wconv wnorm eol escapes) + switch ((optmask >> 4) & 15) // get bitmask for flags (wnorm wconv eol escapes); this simultaneously checks 4 options from assertion above { case 0: return strconv_attribute_impl::parse_simple; case 1: return strconv_attribute_impl::parse_simple; @@ -2873,7 +2899,7 @@ PUGI__NS_BEGIN case 13: return strconv_attribute_impl::parse_wnorm; case 14: return strconv_attribute_impl::parse_wnorm; case 15: return strconv_attribute_impl::parse_wnorm; - default: assert(false); return 0; // should not get here + default: assert(false); return 0; // unreachable } } @@ -3622,7 +3648,7 @@ PUGI__NS_BEGIN if (encoding == encoding_latin1) return convert_buffer_output_generic(r_u8, data, length, wchar_decoder(), latin1_writer()); - assert(false && "Invalid encoding"); + assert(false && "Invalid encoding"); // unreachable return 0; } #else @@ -3661,7 +3687,7 @@ PUGI__NS_BEGIN if (encoding == encoding_latin1) return convert_buffer_output_generic(r_u8, data, length, utf8_decoder(), latin1_writer()); - assert(false && "Invalid encoding"); + assert(false && "Invalid encoding"); // unreachable return 0; } #endif @@ -3880,7 +3906,7 @@ PUGI__NS_BEGIN xml_encoding encoding; }; - PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const char_t* s, chartypex_t type) + PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const char_t* s, chartypex_t type, unsigned int flags) { while (*s) { @@ -3907,7 +3933,17 @@ PUGI__NS_BEGIN ++s; break; case '"': - writer.write('&', 'q', 'u', 'o', 't', ';'); + if (flags & format_attribute_single_quote) + writer.write('"'); + else + writer.write('&', 'q', 'u', 'o', 't', ';'); + ++s; + break; + case '\'': + if (flags & format_attribute_single_quote) + writer.write('&', 'a', 'p', 'o', 's', ';'); + else + writer.write('\''); ++s; break; default: // s is not a usual symbol @@ -3915,7 +3951,8 @@ PUGI__NS_BEGIN unsigned int ch = static_cast(*s++); assert(ch < 32); - writer.write('&', '#', static_cast((ch / 10) + '0'), static_cast((ch % 10) + '0'), ';'); + if (!(flags & format_skip_control_chars)) + writer.write('&', '#', static_cast((ch / 10) + '0'), static_cast((ch % 10) + '0'), ';'); } } } @@ -3926,7 +3963,7 @@ PUGI__NS_BEGIN if (flags & format_no_escapes) writer.write_string(s); else - text_output_escaped(writer, s, type); + text_output_escaped(writer, s, type, flags); } PUGI__FN void text_output_cdata(xml_buffered_writer& writer, const char_t* s) @@ -4040,6 +4077,7 @@ PUGI__NS_BEGIN PUGI__FN void node_output_attributes(xml_buffered_writer& writer, xml_node_struct* node, const char_t* indent, size_t indent_length, unsigned int flags, unsigned int depth) { const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t enquotation_char = (flags & format_attribute_single_quote) ? '\'' : '"'; for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) { @@ -4055,12 +4093,12 @@ PUGI__NS_BEGIN } writer.write_string(a->name ? a->name + 0 : default_name); - writer.write('=', '"'); + writer.write('=', enquotation_char); if (a->value) text_output(writer, a->value, ctx_special_attr, flags); - writer.write('"'); + writer.write(enquotation_char); } } @@ -4188,7 +4226,7 @@ PUGI__NS_BEGIN break; default: - assert(false && "Invalid node type"); + assert(false && "Invalid node type"); // unreachable } } @@ -4400,6 +4438,10 @@ PUGI__NS_BEGIN while (sit && sit != sn) { + // loop invariant: dit is inside the subtree rooted at dn + assert(dit); + + // when a tree is copied into one of the descendants, we need to skip that subtree to avoid an infinite loop if (sit != dn) { xml_node_struct* copy = append_new_node(dit, alloc, PUGI__NODETYPE(sit)); @@ -4428,9 +4470,14 @@ PUGI__NS_BEGIN sit = sit->parent; dit = dit->parent; + + // loop invariant: dit is inside the subtree rooted at dn while sit is inside sn + assert(sit == sn || dit); } while (sit != sn); } + + assert(!sit || dit == dn->parent); } PUGI__FN void node_copy_attribute(xml_attribute_struct* da, xml_attribute_struct* sa) @@ -4629,19 +4676,19 @@ PUGI__NS_BEGIN } template - PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, float value) + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, float value, int precision) { char buf[128]; - sprintf(buf, "%.9g", value); + PUGI__SNPRINTF(buf, "%.*g", precision, double(value)); return set_value_ascii(dest, header, header_mask, buf); } template - PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, double value) + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, double value, int precision) { char buf[128]; - sprintf(buf, "%.17g", value); + PUGI__SNPRINTF(buf, "%.*g", precision, value); return set_value_ascii(dest, header, header_mask, buf); } @@ -4664,6 +4711,7 @@ PUGI__NS_BEGIN char_t* buffer = 0; size_t length = 0; + // coverity[var_deref_model] if (!impl::convert_buffer(buffer, length, buffer_encoding, contents, size, is_mutable)) return impl::make_parse_result(status_out_of_memory); // delete original buffer if we performed a conversion @@ -4687,7 +4735,7 @@ PUGI__NS_BEGIN // we need to get length of entire file to load it in memory; the only (relatively) sane way to do it is via seek/tell trick PUGI__FN xml_parse_status get_file_size(FILE* file, size_t& out_result) { - #if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) + #if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 // there are 64-bit versions of fseek/ftell, let's use them typedef __int64 length_type; @@ -4936,7 +4984,12 @@ PUGI__NS_BEGIN #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR))) PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) { +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + FILE* file = 0; + return _wfopen_s(&file, path, mode) == 0 ? file : 0; +#else return _wfopen(path, mode); +#endif } #else PUGI__FN char* convert_path_heap(const wchar_t* str) @@ -4980,6 +5033,16 @@ PUGI__NS_BEGIN } #endif + PUGI__FN FILE* open_file(const char* path, const char* mode) + { +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + FILE* file = 0; + return fopen_s(&file, path, mode) == 0 ? file : 0; +#else + return fopen(path, mode); +#endif + } + PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const char_t* indent, unsigned int flags, xml_encoding encoding) { if (!file) return false; @@ -5305,14 +5368,28 @@ namespace pugi { if (!_attr) return false; - return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, default_double_precision); + } + + PUGI__FN bool xml_attribute::set_value(double rhs, int precision) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, precision); } PUGI__FN bool xml_attribute::set_value(float rhs) { if (!_attr) return false; - return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, default_float_precision); + } + + PUGI__FN bool xml_attribute::set_value(float rhs, int precision) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, precision); } PUGI__FN bool xml_attribute::set_value(bool rhs) @@ -6022,6 +6099,27 @@ namespace pugi return true; } + PUGI__FN bool xml_node::remove_attributes() + { + if (!_root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + for (xml_attribute_struct* attr = _root->first_attribute; attr; ) + { + xml_attribute_struct* next = attr->next_attribute; + + impl::destroy_attribute(attr, alloc); + + attr = next; + } + + _root->first_attribute = 0; + + return true; + } + PUGI__FN bool xml_node::remove_child(const char_t* name_) { return remove_child(child(name_)); @@ -6040,6 +6138,27 @@ namespace pugi return true; } + PUGI__FN bool xml_node::remove_children() + { + if (!_root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + for (xml_node_struct* cur = _root->first_child; cur; ) + { + xml_node_struct* next = cur->next_sibling; + + impl::destroy_node(cur, alloc); + + cur = next; + } + + _root->first_child = 0; + + return true; + } + PUGI__FN xml_parse_result xml_node::append_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) { // append_buffer is only valid for elements/documents @@ -6053,11 +6172,17 @@ namespace pugi // get extra buffer element (we'll store the document fragment buffer there so that we can deallocate it later) impl::xml_memory_page* page = 0; - impl::xml_extra_buffer* extra = static_cast(doc->allocate_memory(sizeof(impl::xml_extra_buffer), page)); + impl::xml_extra_buffer* extra = static_cast(doc->allocate_memory(sizeof(impl::xml_extra_buffer) + sizeof(void*), page)); (void)page; if (!extra) return impl::make_parse_result(status_out_of_memory); + #ifdef PUGIXML_COMPACT + // align the memory block to a pointer boundary; this is required for compact mode where memory allocations are only 4b aligned + // note that this requires up to sizeof(void*)-1 additional memory, which the allocation above takes into account + extra = reinterpret_cast((reinterpret_cast(extra) + (sizeof(void*) - 1)) & ~(sizeof(void*) - 1)); + #endif + // add extra buffer to the list extra->buffer = 0; extra->next = doc->extra_buffers; @@ -6134,16 +6259,9 @@ namespace pugi PUGI__FN xml_node xml_node::first_element_by_path(const char_t* path_, char_t delimiter) const { - xml_node found = *this; // Current search context. + xml_node context = path_[0] == delimiter ? root() : *this; - if (!_root || !path_[0]) return found; - - if (path_[0] == delimiter) - { - // Absolute path; e.g. '/foo/bar' - found = found.root(); - ++path_; - } + if (!context._root) return xml_node(); const char_t* path_segment = path_; @@ -6153,19 +6271,19 @@ namespace pugi while (*path_segment_end && *path_segment_end != delimiter) ++path_segment_end; - if (path_segment == path_segment_end) return found; + if (path_segment == path_segment_end) return context; const char_t* next_segment = path_segment_end; while (*next_segment == delimiter) ++next_segment; if (*path_segment == '.' && path_segment + 1 == path_segment_end) - return found.first_element_by_path(next_segment, delimiter); + return context.first_element_by_path(next_segment, delimiter); else if (*path_segment == '.' && *(path_segment+1) == '.' && path_segment + 2 == path_segment_end) - return found.parent().first_element_by_path(next_segment, delimiter); + return context.parent().first_element_by_path(next_segment, delimiter); else { - for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling) + for (xml_node_struct* j = context._root->first_child; j; j = j->next_sibling) { if (j->name && impl::strequalrange(j->name, path_segment, static_cast(path_segment_end - path_segment))) { @@ -6183,10 +6301,10 @@ namespace pugi { walker._depth = -1; - xml_node arg_begin = *this; + xml_node arg_begin(_root); if (!walker.begin(arg_begin)) return false; - xml_node cur = first_child(); + xml_node_struct* cur = _root ? _root->first_child + 0 : 0; if (cur) { @@ -6194,36 +6312,35 @@ namespace pugi do { - xml_node arg_for_each = cur; + xml_node arg_for_each(cur); if (!walker.for_each(arg_for_each)) return false; - if (cur.first_child()) + if (cur->first_child) { ++walker._depth; - cur = cur.first_child(); + cur = cur->first_child; } - else if (cur.next_sibling()) - cur = cur.next_sibling(); + else if (cur->next_sibling) + cur = cur->next_sibling; else { - // Borland C++ workaround - while (!cur.next_sibling() && cur != *this && !cur.parent().empty()) + while (!cur->next_sibling && cur != _root && cur->parent) { --walker._depth; - cur = cur.parent(); + cur = cur->parent; } - if (cur != *this) - cur = cur.next_sibling(); + if (cur != _root) + cur = cur->next_sibling; } } - while (cur && cur != *this); + while (cur && cur != _root); } assert(walker._depth == -1); - xml_node arg_end = *this; + xml_node arg_end(_root); return walker.end(arg_end); } @@ -6290,7 +6407,7 @@ namespace pugi return _root->value && (_root->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0 ? _root->value - doc.buffer : -1; default: - assert(false && "Invalid node type"); + assert(false && "Invalid node type"); // unreachable return -1; } } @@ -6461,14 +6578,28 @@ namespace pugi { xml_node_struct* dn = _data_new(); - return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, default_float_precision) : false; + } + + PUGI__FN bool xml_text::set(float rhs, int precision) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, precision) : false; } PUGI__FN bool xml_text::set(double rhs) { xml_node_struct* dn = _data_new(); - return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, default_double_precision) : false; + } + + PUGI__FN bool xml_text::set(double rhs, int precision) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, precision) : false; } PUGI__FN bool xml_text::set(bool rhs) @@ -6607,7 +6738,7 @@ namespace pugi return const_cast(&_wrap); // BCC5 workaround } - PUGI__FN const xml_node_iterator& xml_node_iterator::operator++() + PUGI__FN xml_node_iterator& xml_node_iterator::operator++() { assert(_wrap._root); _wrap._root = _wrap._root->next_sibling; @@ -6621,7 +6752,7 @@ namespace pugi return temp; } - PUGI__FN const xml_node_iterator& xml_node_iterator::operator--() + PUGI__FN xml_node_iterator& xml_node_iterator::operator--() { _wrap = _wrap._root ? _wrap.previous_sibling() : _parent.last_child(); return *this; @@ -6668,7 +6799,7 @@ namespace pugi return const_cast(&_wrap); // BCC5 workaround } - PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator++() + PUGI__FN xml_attribute_iterator& xml_attribute_iterator::operator++() { assert(_wrap._attr); _wrap._attr = _wrap._attr->next_attribute; @@ -6682,7 +6813,7 @@ namespace pugi return temp; } - PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator--() + PUGI__FN xml_attribute_iterator& xml_attribute_iterator::operator--() { _wrap = _wrap._attr ? _wrap.previous_attribute() : _parent.last_attribute(); return *this; @@ -6729,7 +6860,7 @@ namespace pugi return const_cast(&_wrap); // BCC5 workaround } - PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator++() + PUGI__FN xml_named_node_iterator& xml_named_node_iterator::operator++() { assert(_wrap._root); _wrap = _wrap.next_sibling(_name); @@ -6743,7 +6874,7 @@ namespace pugi return temp; } - PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator--() + PUGI__FN xml_named_node_iterator& xml_named_node_iterator::operator--() { if (_wrap._root) _wrap = _wrap.previous_sibling(_name); @@ -6815,6 +6946,25 @@ namespace pugi _destroy(); } +#ifdef PUGIXML_HAS_MOVE + PUGI__FN xml_document::xml_document(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT: _buffer(0) + { + _create(); + _move(rhs); + } + + PUGI__FN xml_document& xml_document::operator=(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT + { + if (this == &rhs) return *this; + + _destroy(); + _create(); + _move(rhs); + + return *this; + } +#endif + PUGI__FN void xml_document::reset() { _destroy(); @@ -6825,8 +6975,7 @@ namespace pugi { reset(); - for (xml_node cur = proto.first_child(); cur; cur = cur.next_sibling()) - append_copy(cur); + impl::node_copy_tree(_root, proto._root); } PUGI__FN void xml_document::_create() @@ -6834,7 +6983,8 @@ namespace pugi assert(!_root); #ifdef PUGIXML_COMPACT - const size_t page_offset = sizeof(uint32_t); + // space for page marker for the first page (uint32_t), rounded up to pointer size; assumes pointers are at least 32-bit + const size_t page_offset = sizeof(void*); #else const size_t page_offset = 0; #endif @@ -6910,6 +7060,117 @@ namespace pugi _root = 0; } +#ifdef PUGIXML_HAS_MOVE + PUGI__FN void xml_document::_move(xml_document& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT + { + impl::xml_document_struct* doc = static_cast(_root); + impl::xml_document_struct* other = static_cast(rhs._root); + + // save first child pointer for later; this needs hash access + xml_node_struct* other_first_child = other->first_child; + + #ifdef PUGIXML_COMPACT + // reserve space for the hash table up front; this is the only operation that can fail + // if it does, we have no choice but to throw (if we have exceptions) + if (other_first_child) + { + size_t other_children = 0; + for (xml_node_struct* node = other_first_child; node; node = node->next_sibling) + other_children++; + + // in compact mode, each pointer assignment could result in a hash table request + // during move, we have to relocate document first_child and parents of all children + // normally there's just one child and its parent has a pointerless encoding but + // we assume the worst here + if (!other->_hash->reserve(other_children + 1)) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif + } + } + #endif + + // move allocation state + // note that other->_root may point to the embedded document page, in which case we should keep original (empty) state + if (other->_root != PUGI__GETPAGE(other)) + { + doc->_root = other->_root; + doc->_busy_size = other->_busy_size; + } + + // move buffer state + doc->buffer = other->buffer; + doc->extra_buffers = other->extra_buffers; + _buffer = rhs._buffer; + + #ifdef PUGIXML_COMPACT + // move compact hash; note that the hash table can have pointers to other but they will be "inactive", similarly to nodes removed with remove_child + doc->hash = other->hash; + doc->_hash = &doc->hash; + + // make sure we don't access other hash up until the end when we reinitialize other document + other->_hash = 0; + #endif + + // move page structure + impl::xml_memory_page* doc_page = PUGI__GETPAGE(doc); + assert(doc_page && !doc_page->prev && !doc_page->next); + + impl::xml_memory_page* other_page = PUGI__GETPAGE(other); + assert(other_page && !other_page->prev); + + // relink pages since root page is embedded into xml_document + if (impl::xml_memory_page* page = other_page->next) + { + assert(page->prev == other_page); + + page->prev = doc_page; + + doc_page->next = page; + other_page->next = 0; + } + + // make sure pages point to the correct document state + for (impl::xml_memory_page* page = doc_page->next; page; page = page->next) + { + assert(page->allocator == other); + + page->allocator = doc; + + #ifdef PUGIXML_COMPACT + // this automatically migrates most children between documents and prevents ->parent assignment from allocating + if (page->compact_shared_parent == other) + page->compact_shared_parent = doc; + #endif + } + + // move tree structure + assert(!doc->first_child); + + doc->first_child = other_first_child; + + for (xml_node_struct* node = other_first_child; node; node = node->next_sibling) + { + #ifdef PUGIXML_COMPACT + // most children will have migrated when we reassigned compact_shared_parent + assert(node->parent == other || node->parent == doc); + + node->parent = doc; + #else + assert(node->parent == other); + node->parent = doc; + #endif + } + + // reset other document + new (other) impl::xml_document_struct(PUGI__GETPAGE(other)); + rhs._buffer = 0; + } +#endif + #ifndef PUGIXML_NO_STL PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options, xml_encoding encoding) { @@ -6948,7 +7209,7 @@ namespace pugi reset(); using impl::auto_deleter; // MSVC7 workaround - auto_deleter file(fopen(path_, "rb"), impl::close_file); + auto_deleter file(impl::open_file(path_, "rb"), impl::close_file); return impl::load_file_impl(static_cast(_root), file.data, options, encoding, &_buffer); } @@ -7031,7 +7292,7 @@ namespace pugi PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const { using impl::auto_deleter; // MSVC7 workaround - auto_deleter file(fopen(path_, (flags & format_save_file_text) ? "w" : "wb"), impl::close_file); + auto_deleter file(impl::open_file(path_, (flags & format_save_file_text) ? "w" : "wb"), impl::close_file); return impl::save_file_impl(*this, file.data, indent, flags, encoding); } @@ -7175,14 +7436,14 @@ PUGI__NS_BEGIN } }; - template void swap(T& lhs, T& rhs) + template inline void swap(T& lhs, T& rhs) { T temp = lhs; lhs = rhs; rhs = temp; } - template I min_element(I begin, I end, const Pred& pred) + template PUGI__FN I min_element(I begin, I end, const Pred& pred) { I result = begin; @@ -7193,17 +7454,20 @@ PUGI__NS_BEGIN return result; } - template void reverse(I begin, I end) + template PUGI__FN void reverse(I begin, I end) { - while (end - begin > 1) swap(*begin++, *--end); + while (end - begin > 1) + swap(*begin++, *--end); } - template I unique(I begin, I end) + template PUGI__FN I unique(I begin, I end) { // fast skip head - while (end - begin > 1 && *begin != *(begin + 1)) begin++; + while (end - begin > 1 && *begin != *(begin + 1)) + begin++; - if (begin == end) return begin; + if (begin == end) + return begin; // last written element I write = begin++; @@ -7221,7 +7485,7 @@ PUGI__NS_BEGIN return write + 1; } - template void insertion_sort(T* begin, T* end, const Pred& pred) + template PUGI__FN void insertion_sort(T* begin, T* end, const Pred& pred) { if (begin == end) return; @@ -7243,16 +7507,19 @@ PUGI__NS_BEGIN } } - template I median3(I first, I middle, I last, const Pred& pred) + template inline I median3(I first, I middle, I last, const Pred& pred) { - if (pred(*middle, *first)) swap(middle, first); - if (pred(*last, *middle)) swap(last, middle); - if (pred(*middle, *first)) swap(middle, first); + if (pred(*middle, *first)) + swap(middle, first); + if (pred(*last, *middle)) + swap(last, middle); + if (pred(*middle, *first)) + swap(middle, first); return middle; } - template void partition(T* begin, T* end, T pivot, const Pred& pred, T** out_eqbeg, T** out_eqend) + template PUGI__FN void partition3(T* begin, T* end, T pivot, const Pred& pred, T** out_eqbeg, T** out_eqend) { // invariant: array is split into 4 groups: = < ? > (each variable denotes the boundary between the groups) T* eq = begin; @@ -7279,7 +7546,7 @@ PUGI__NS_BEGIN *out_eqend = gt; } - template void sort(I begin, I end, const Pred& pred) + template PUGI__FN void sort(I begin, I end, const Pred& pred) { // sort large chunks while (end - begin > 16) @@ -7290,7 +7557,7 @@ PUGI__NS_BEGIN // partition in three chunks (< = >) I eqbeg, eqend; - partition(begin, end, *median, pred, &eqbeg, &eqend); + partition3(begin, end, *median, pred, &eqbeg, &eqend); // loop on larger half if (eqbeg - begin > end - eqend) @@ -7308,6 +7575,41 @@ PUGI__NS_BEGIN // insertion sort small chunk insertion_sort(begin, end, pred); } + + PUGI__FN bool hash_insert(const void** table, size_t size, const void* key) + { + assert(key); + + unsigned int h = static_cast(reinterpret_cast(key)); + + // MurmurHash3 32-bit finalizer + h ^= h >> 16; + h *= 0x85ebca6bu; + h ^= h >> 13; + h *= 0xc2b2ae35u; + h ^= h >> 16; + + size_t hashmod = size - 1; + size_t bucket = h & hashmod; + + for (size_t probe = 0; probe <= hashmod; ++probe) + { + if (table[bucket] == 0) + { + table[bucket] = key; + return true; + } + + if (table[bucket] == key) + return false; + + // hash collision, quadratic probing + bucket = (bucket + probe + 1) & hashmod; + } + + assert(false && "Hash table is full"); // unreachable + return false; + } PUGI__NS_END // Allocator used for AST and evaluation stacks @@ -7897,15 +8199,6 @@ PUGI__NS_BEGIN } }; - struct duplicate_comparator - { - bool operator()(const xpath_node& lhs, const xpath_node& rhs) const - { - if (lhs.attribute()) return rhs.attribute() ? lhs.attribute() < rhs.attribute() : true; - else return rhs.attribute() ? false : lhs.node() < rhs.node(); - } - }; - PUGI__FN double gen_nan() { #if defined(__STDC_IEC_559__) || ((FLT_RADIX - 0 == 2) && (FLT_MAX_EXP - 0 == 128) && (FLT_MANT_DIG - 0 == 24)) @@ -7913,7 +8206,7 @@ PUGI__NS_BEGIN typedef uint32_t UI; // BCC5 workaround union { float f; UI i; } u; u.i = 0x7fc00000; - return u.f; + return double(u.f); #else // fallback const volatile double zero = 0.0; @@ -7979,12 +8272,12 @@ PUGI__NS_BEGIN } // gets mantissa digits in the form of 0.xxxxx with 0. implied and the exponent -#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) - PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + PUGI__FN void convert_number_to_mantissa_exponent(double value, char (&buffer)[32], char** out_mantissa, int* out_exponent) { // get base values int sign, exponent; - _ecvt_s(buffer, buffer_size, value, DBL_DIG + 1, &exponent, &sign); + _ecvt_s(buffer, sizeof(buffer), value, DBL_DIG + 1, &exponent, &sign); // truncate redundant zeros truncate_zeros(buffer, buffer + strlen(buffer)); @@ -7994,12 +8287,10 @@ PUGI__NS_BEGIN *out_exponent = exponent; } #else - PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) + PUGI__FN void convert_number_to_mantissa_exponent(double value, char (&buffer)[32], char** out_mantissa, int* out_exponent) { // get a scientific notation value with IEEE DBL_DIG decimals - sprintf(buffer, "%.*e", DBL_DIG, value); - assert(strlen(buffer) < buffer_size); - (void)!buffer_size; + PUGI__SNPRINTF(buffer, "%.*e", DBL_DIG, value); // get the exponent (possibly negative) char* exponent_string = strchr(buffer, 'e'); @@ -8036,7 +8327,7 @@ PUGI__NS_BEGIN char* mantissa; int exponent; - convert_number_to_mantissa_exponent(value, mantissa_buffer, sizeof(mantissa_buffer), &mantissa, &exponent); + convert_number_to_mantissa_exponent(value, mantissa_buffer, &mantissa, &exponent); // allocate a buffer of suitable length for the number size_t result_size = strlen(mantissa_buffer) + (exponent > 0 ? exponent : -exponent) + 4; @@ -8498,7 +8789,7 @@ PUGI__NS_BEGIN break; default: - assert(false && "Invalid variable type"); + assert(false && "Invalid variable type"); // unreachable } } @@ -8519,7 +8810,7 @@ PUGI__NS_BEGIN return lhs->set(static_cast(rhs)->value); default: - assert(false && "Invalid variable type"); + assert(false && "Invalid variable type"); // unreachable return false; } } @@ -8606,7 +8897,7 @@ PUGI__NS_BEGIN return *min_element(begin, end, document_order_comparator()); default: - assert(false && "Invalid node set type"); + assert(false && "Invalid node set type"); // unreachable return xpath_node(); } } @@ -8695,12 +8986,42 @@ PUGI__NS_BEGIN _end = pos; } - void remove_duplicates() + void remove_duplicates(xpath_allocator* alloc) { - if (_type == xpath_node_set::type_unsorted) - sort(_begin, _end, duplicate_comparator()); + if (_type == xpath_node_set::type_unsorted && _end - _begin > 2) + { + xpath_allocator_capture cr(alloc); - _end = unique(_begin, _end); + size_t size_ = static_cast(_end - _begin); + + size_t hash_size = 1; + while (hash_size < size_ + size_ / 2) hash_size *= 2; + + const void** hash_data = static_cast(alloc->allocate(hash_size * sizeof(void**))); + if (!hash_data) return; + + memset(hash_data, 0, hash_size * sizeof(const void**)); + + xpath_node* write = _begin; + + for (xpath_node* it = _begin; it != _end; ++it) + { + const void* attr = it->attribute().internal_object(); + const void* node = it->node().internal_object(); + const void* key = attr ? attr : node; + + if (key && hash_insert(hash_data, hash_size, key)) + { + *write++ = *it; + } + } + + _end = write; + } + else + { + _end = unique(_begin, _end); + } } xpath_node_set::type_t type() const @@ -9336,7 +9657,7 @@ PUGI__NS_BEGIN } } - assert(false && "Wrong types"); + assert(false && "Wrong types"); // unreachable return false; } @@ -9411,7 +9732,7 @@ PUGI__NS_BEGIN } else { - assert(false && "Wrong types"); + assert(false && "Wrong types"); // unreachable return false; } } @@ -9457,7 +9778,7 @@ PUGI__NS_BEGIN { xpath_context c(*it, i, size); - if (expr->eval_number(c, stack) == i) + if (expr->eval_number(c, stack) == static_cast(i)) { *last++ = *it; @@ -9481,11 +9802,11 @@ PUGI__NS_BEGIN double er = expr->eval_number(c, stack); - if (er >= 1.0 && er <= size) + if (er >= 1.0 && er <= static_cast(size)) { size_t eri = static_cast(er); - if (er == eri) + if (er == static_cast(eri)) { xpath_node r = last[eri - 1]; @@ -9629,7 +9950,7 @@ PUGI__NS_BEGIN break; default: - assert(false && "Unknown axis"); + assert(false && "Unknown axis"); // unreachable } return false; @@ -9824,7 +10145,7 @@ PUGI__NS_BEGIN } default: - assert(false && "Unimplemented axis"); + assert(false && "Unimplemented axis"); // unreachable } } @@ -9905,7 +10226,7 @@ PUGI__NS_BEGIN } default: - assert(false && "Unimplemented axis"); + assert(false && "Unimplemented axis"); // unreachable } } @@ -9929,6 +10250,7 @@ PUGI__NS_BEGIN bool once = (axis == axis_attribute && _test == nodetest_name) || (!_right && eval_once(axis_type, eval)) || + // coverity[mixed_enums] (_right && !_right->_next && _right->_test == predicate_constant_one); xpath_node_set_raw ns; @@ -9961,7 +10283,7 @@ PUGI__NS_BEGIN // child, attribute and self axes always generate unique set of nodes // for other axis, if the set stayed sorted, it stayed unique because the traversal algorithms do not visit the same node twice if (axis != axis_child && axis != axis_attribute && axis != axis_self && ns.type() == xpath_node_set::type_unsorted) - ns.remove_duplicates(); + ns.remove_duplicates(stack.temp); return ns; } @@ -10121,35 +10443,38 @@ PUGI__NS_BEGIN if (_rettype == xpath_type_boolean) return _data.variable->get_boolean(); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; } - // fallthrough default: - { - switch (_rettype) - { - case xpath_type_number: - return convert_number_to_boolean(eval_number(c, stack)); - - case xpath_type_string: - { - xpath_allocator_capture cr(stack.result); - - return !eval_string(c, stack).empty(); - } - - case xpath_type_node_set: - { - xpath_allocator_capture cr(stack.result); - - return !eval_node_set(c, stack, nodeset_eval_any).empty(); - } - - default: - assert(false && "Wrong expression for return type boolean"); - return false; - } + ; } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_number: + return convert_number_to_boolean(eval_number(c, stack)); + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return !eval_string(c, stack).empty(); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return !eval_node_set(c, stack, nodeset_eval_any).empty(); + } + + default: + assert(false && "Wrong expression for return type boolean"); // unreachable + return false; } } @@ -10256,36 +10581,38 @@ PUGI__NS_BEGIN if (_rettype == xpath_type_number) return _data.variable->get_number(); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; } - // fallthrough default: - { - switch (_rettype) - { - case xpath_type_boolean: - return eval_boolean(c, stack) ? 1 : 0; - - case xpath_type_string: - { - xpath_allocator_capture cr(stack.result); - - return convert_string_to_number(eval_string(c, stack).c_str()); - } - - case xpath_type_node_set: - { - xpath_allocator_capture cr(stack.result); - - return convert_string_to_number(eval_string(c, stack).c_str()); - } - - default: - assert(false && "Wrong expression for return type number"); - return 0; - } - + ; } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_boolean: + return eval_boolean(c, stack) ? 1 : 0; + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + default: + assert(false && "Wrong expression for return type number"); // unreachable + return 0; } } @@ -10299,16 +10626,9 @@ PUGI__NS_BEGIN size_t count = 1; for (xpath_ast_node* nc = _right; nc; nc = nc->_next) count++; - // gather all strings - xpath_string static_buffer[4]; - xpath_string* buffer = static_buffer; - - // allocate on-heap for large concats - if (count > sizeof(static_buffer) / sizeof(static_buffer[0])) - { - buffer = static_cast(stack.temp->allocate(count * sizeof(xpath_string))); - if (!buffer) return xpath_string(); - } + // allocate a buffer for temporary string objects + xpath_string* buffer = static_cast(stack.temp->allocate(count * sizeof(xpath_string))); + if (!buffer) return xpath_string(); // evaluate all strings to temporary stack xpath_stack swapped_stack = {stack.temp, stack.result}; @@ -10449,7 +10769,7 @@ PUGI__NS_BEGIN double first = round_nearest(_right->eval_number(c, stack)); if (is_nan(first)) return xpath_string(); // NaN - else if (first >= s_length + 1) return xpath_string(); + else if (first >= static_cast(s_length + 1)) return xpath_string(); size_t pos = first < 1 ? 1 : static_cast(first); assert(1 <= pos && pos <= s_length + 1); @@ -10473,12 +10793,12 @@ PUGI__NS_BEGIN double last = first + round_nearest(_right->_next->eval_number(c, stack)); if (is_nan(first) || is_nan(last)) return xpath_string(); - else if (first >= s_length + 1) return xpath_string(); + else if (first >= static_cast(s_length + 1)) return xpath_string(); else if (first >= last) return xpath_string(); else if (last < 1) return xpath_string(); size_t pos = first < 1 ? 1 : static_cast(first); - size_t end = last >= s_length + 1 ? s_length + 1 : static_cast(last); + size_t end = last >= static_cast(s_length + 1) ? s_length + 1 : static_cast(last); assert(1 <= pos && pos <= end && end <= s_length + 1); const char_t* rbegin = s.c_str() + (pos - 1); @@ -10547,34 +10867,37 @@ PUGI__NS_BEGIN if (_rettype == xpath_type_string) return xpath_string::from_const(_data.variable->get_string()); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; } - // fallthrough default: - { - switch (_rettype) - { - case xpath_type_boolean: - return xpath_string::from_const(eval_boolean(c, stack) ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); - - case xpath_type_number: - return convert_number_to_string(eval_number(c, stack), stack.result); - - case xpath_type_node_set: - { - xpath_allocator_capture cr(stack.temp); - - xpath_stack swapped_stack = {stack.temp, stack.result}; - - xpath_node_set_raw ns = eval_node_set(c, swapped_stack, nodeset_eval_first); - return ns.empty() ? xpath_string() : string_value(ns.first(), stack.result); - } - - default: - assert(false && "Wrong expression for return type string"); - return xpath_string(); - } + ; } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_boolean: + return xpath_string::from_const(eval_boolean(c, stack) ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); + + case xpath_type_number: + return convert_number_to_string(eval_number(c, stack), stack.result); + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ns = eval_node_set(c, swapped_stack, nodeset_eval_first); + return ns.empty() ? xpath_string() : string_value(ns.first(), stack.result); + } + + default: + assert(false && "Wrong expression for return type string"); // unreachable + return xpath_string(); } } @@ -10588,16 +10911,16 @@ PUGI__NS_BEGIN xpath_stack swapped_stack = {stack.temp, stack.result}; - xpath_node_set_raw ls = _left->eval_node_set(c, swapped_stack, eval); - xpath_node_set_raw rs = _right->eval_node_set(c, stack, eval); + xpath_node_set_raw ls = _left->eval_node_set(c, stack, eval); + xpath_node_set_raw rs = _right->eval_node_set(c, swapped_stack, eval); // we can optimize merging two sorted sets, but this is a very rare operation, so don't bother - rs.set_type(xpath_node_set::type_unsorted); + ls.set_type(xpath_node_set::type_unsorted); - rs.append(ls.begin(), ls.end(), stack.result); - rs.remove_duplicates(); + ls.append(rs.begin(), rs.end(), stack.result); + ls.remove_duplicates(stack.temp); - return rs; + return ls; } case ast_filter: @@ -10662,7 +10985,7 @@ PUGI__NS_BEGIN return step_do(c, stack, eval, axis_to_type()); default: - assert(false && "Unknown axis"); + assert(false && "Unknown axis"); // unreachable return xpath_node_set_raw(); } } @@ -10696,13 +11019,18 @@ PUGI__NS_BEGIN return ns; } + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; } - // fallthrough default: - assert(false && "Wrong expression for return type node set"); - return xpath_node_set_raw(); + ; } + + // none of the ast types that return the value directly matched, but conversions to node set are invalid + assert(false && "Wrong expression for return type node set"); // unreachable + return xpath_node_set_raw(); } void optimize(xpath_allocator* alloc) @@ -10716,6 +11044,7 @@ PUGI__NS_BEGIN if (_next) _next->optimize(alloc); + // coverity[var_deref_model] optimize_self(alloc); } @@ -10724,13 +11053,14 @@ PUGI__NS_BEGIN // Rewrite [position()=expr] with [expr] // Note that this step has to go before classification to recognize [position()=1] if ((_type == ast_filter || _type == ast_predicate) && + _right && // workaround for clang static analyzer (_right is never null for ast_filter/ast_predicate) _right->_type == ast_op_equal && _right->_left->_type == ast_func_position && _right->_right->_rettype == xpath_type_number) { _right = _right->_right; } // Classify filter/predicate ops to perform various optimizations during evaluation - if (_type == ast_filter || _type == ast_predicate) + if ((_type == ast_filter || _type == ast_predicate) && _right) // workaround for clang static analyzer (_right is never null for ast_filter/ast_predicate) { assert(_test == predicate_default); @@ -10746,8 +11076,8 @@ PUGI__NS_BEGIN // The former is a full form of //foo, the latter is much faster since it executes the node test immediately // Do a similar kind of rewrite for self/descendant/descendant-or-self axes // Note that we only rewrite positionally invariant steps (//foo[1] != /descendant::foo[1]) - if (_type == ast_step && (_axis == axis_child || _axis == axis_self || _axis == axis_descendant || _axis == axis_descendant_or_self) && _left && - _left->_type == ast_step && _left->_axis == axis_descendant_or_self && _left->_test == nodetest_type_node && !_left->_right && + if (_type == ast_step && (_axis == axis_child || _axis == axis_self || _axis == axis_descendant || _axis == axis_descendant_or_self) && + _left && _left->_type == ast_step && _left->_axis == axis_descendant_or_self && _left->_test == nodetest_type_node && !_left->_right && is_posinv_step()) { if (_axis == axis_child || _axis == axis_descendant) @@ -10759,7 +11089,9 @@ PUGI__NS_BEGIN } // Use optimized lookup table implementation for translate() with constant arguments - if (_type == ast_func_translate && _right->_type == ast_string_constant && _right->_next->_type == ast_string_constant) + if (_type == ast_func_translate && + _right && // workaround for clang static analyzer (_right is never null for ast_func_translate) + _right->_type == ast_string_constant && _right->_next->_type == ast_string_constant) { unsigned char* table = translate_table_generate(alloc, _right->_data.string, _right->_next->_data.string); @@ -10772,6 +11104,8 @@ PUGI__NS_BEGIN // Use optimized path for @attr = 'value' or @attr = $value if (_type == ast_op_equal && + _left && _right && // workaround for clang static analyzer and Coverity (_left and _right are never null for ast_op_equal) + // coverity[mixed_enums] _left->_type == ast_step && _left->_axis == axis_attribute && _left->_test == nodetest_name && !_left->_left && !_left->_right && (_right->_type == ast_string_constant || (_right->_type == ast_variable && _right->_rettype == xpath_type_string))) { @@ -10831,6 +11165,14 @@ PUGI__NS_BEGIN } }; + static const size_t xpath_ast_depth_limit = + #ifdef PUGIXML_XPATH_DEPTH_LIMIT + PUGIXML_XPATH_DEPTH_LIMIT + #else + 1024 + #endif + ; + struct xpath_parser { xpath_allocator* _alloc; @@ -10843,6 +11185,8 @@ PUGI__NS_BEGIN char_t _scratch[32]; + size_t _depth; + xpath_ast_node* error(const char* message) { _result->error = message; @@ -10859,6 +11203,11 @@ PUGI__NS_BEGIN return 0; } + xpath_ast_node* error_rec() + { + return error("Exceeded maximum allowed query depth"); + } + void* alloc_node() { return _alloc->allocate(sizeof(xpath_ast_node)); @@ -11214,6 +11563,8 @@ PUGI__NS_BEGIN return error("Unrecognized function call"); _lexer.next(); + size_t old_depth = _depth; + while (_lexer.current() != lex_close_brace) { if (argc > 0) @@ -11223,6 +11574,9 @@ PUGI__NS_BEGIN _lexer.next(); } + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + xpath_ast_node* n = parse_expression(); if (!n) return 0; @@ -11235,6 +11589,8 @@ PUGI__NS_BEGIN _lexer.next(); + _depth = old_depth; + return parse_function(function, argc, args); } @@ -11251,10 +11607,15 @@ PUGI__NS_BEGIN xpath_ast_node* n = parse_primary_expression(); if (!n) return 0; + size_t old_depth = _depth; + while (_lexer.current() == lex_open_square_brace) { _lexer.next(); + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + if (n->rettype() != xpath_type_node_set) return error("Predicate has to be applied to node set"); @@ -11270,6 +11631,8 @@ PUGI__NS_BEGIN _lexer.next(); } + _depth = old_depth; + return n; } @@ -11421,12 +11784,17 @@ PUGI__NS_BEGIN xpath_ast_node* n = alloc_node(ast_step, set, axis, nt_type, nt_name_copy); if (!n) return 0; + size_t old_depth = _depth; + xpath_ast_node* last = 0; while (_lexer.current() == lex_open_square_brace) { _lexer.next(); + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + xpath_ast_node* expr = parse_expression(); if (!expr) return 0; @@ -11443,6 +11811,8 @@ PUGI__NS_BEGIN last = pred; } + _depth = old_depth; + return n; } @@ -11452,6 +11822,8 @@ PUGI__NS_BEGIN xpath_ast_node* n = parse_step(set); if (!n) return 0; + size_t old_depth = _depth; + while (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) { lexeme_t l = _lexer.current(); @@ -11461,12 +11833,19 @@ PUGI__NS_BEGIN { n = alloc_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); if (!n) return 0; + + ++_depth; } + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + n = parse_step(n); if (!n) return 0; } + _depth = old_depth; + return n; } @@ -11652,6 +12031,9 @@ PUGI__NS_BEGIN { _lexer.next(); + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + xpath_ast_node* rhs = parse_path_or_unary_expression(); if (!rhs) return 0; @@ -11697,13 +12079,22 @@ PUGI__NS_BEGIN // | MultiplicativeExpr 'mod' UnaryExpr xpath_ast_node* parse_expression(int limit = 0) { + size_t old_depth = _depth; + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + xpath_ast_node* n = parse_path_or_unary_expression(); if (!n) return 0; - return parse_expression_rec(n, limit); + n = parse_expression_rec(n, limit); + + _depth = old_depth; + + return n; } - xpath_parser(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result): _alloc(alloc), _lexer(query), _query(query), _variables(variables), _result(result) + xpath_parser(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result): _alloc(alloc), _lexer(query), _query(query), _variables(variables), _result(result), _depth(0) { } @@ -11712,6 +12103,8 @@ PUGI__NS_BEGIN xpath_ast_node* n = parse_expression(); if (!n) return 0; + assert(_depth == 0); + // check if there are unparsed tokens left if (_lexer.current() != lex_eof) return error("Incorrect query"); @@ -11866,74 +12259,61 @@ namespace pugi size_t size_ = static_cast(end_ - begin_); - if (size_ <= 1) + // use internal buffer for 0 or 1 elements, heap buffer otherwise + xpath_node* storage = (size_ <= 1) ? _storage : static_cast(impl::xml_memory::allocate(size_ * sizeof(xpath_node))); + + if (!storage) { - // deallocate old buffer - if (_begin != &_storage) impl::xml_memory::deallocate(_begin); - - // use internal buffer - if (begin_ != end_) _storage = *begin_; - - _begin = &_storage; - _end = &_storage + size_; - _type = type_; + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif } - else - { - // make heap copy - xpath_node* storage = static_cast(impl::xml_memory::allocate(size_ * sizeof(xpath_node))); - if (!storage) - { - #ifdef PUGIXML_NO_EXCEPTIONS - return; - #else - throw std::bad_alloc(); - #endif - } + // deallocate old buffer + if (_begin != _storage) + impl::xml_memory::deallocate(_begin); + // size check is necessary because for begin_ = end_ = nullptr, memcpy is UB + if (size_) memcpy(storage, begin_, size_ * sizeof(xpath_node)); - // deallocate old buffer - if (_begin != &_storage) impl::xml_memory::deallocate(_begin); - - // finalize - _begin = storage; - _end = storage + size_; - _type = type_; - } + _begin = storage; + _end = storage + size_; + _type = type_; } #ifdef PUGIXML_HAS_MOVE - PUGI__FN void xpath_node_set::_move(xpath_node_set& rhs) + PUGI__FN void xpath_node_set::_move(xpath_node_set& rhs) PUGIXML_NOEXCEPT { _type = rhs._type; - _storage = rhs._storage; - _begin = (rhs._begin == &rhs._storage) ? &_storage : rhs._begin; + _storage[0] = rhs._storage[0]; + _begin = (rhs._begin == rhs._storage) ? _storage : rhs._begin; _end = _begin + (rhs._end - rhs._begin); rhs._type = type_unsorted; - rhs._begin = &rhs._storage; - rhs._end = rhs._begin; + rhs._begin = rhs._storage; + rhs._end = rhs._storage; } #endif - PUGI__FN xpath_node_set::xpath_node_set(): _type(type_unsorted), _begin(&_storage), _end(&_storage) + PUGI__FN xpath_node_set::xpath_node_set(): _type(type_unsorted), _begin(_storage), _end(_storage) { } - PUGI__FN xpath_node_set::xpath_node_set(const_iterator begin_, const_iterator end_, type_t type_): _type(type_unsorted), _begin(&_storage), _end(&_storage) + PUGI__FN xpath_node_set::xpath_node_set(const_iterator begin_, const_iterator end_, type_t type_): _type(type_unsorted), _begin(_storage), _end(_storage) { _assign(begin_, end_, type_); } PUGI__FN xpath_node_set::~xpath_node_set() { - if (_begin != &_storage) + if (_begin != _storage) impl::xml_memory::deallocate(_begin); } - PUGI__FN xpath_node_set::xpath_node_set(const xpath_node_set& ns): _type(type_unsorted), _begin(&_storage), _end(&_storage) + PUGI__FN xpath_node_set::xpath_node_set(const xpath_node_set& ns): _type(type_unsorted), _begin(_storage), _end(_storage) { _assign(ns._begin, ns._end, ns._type); } @@ -11948,16 +12328,16 @@ namespace pugi } #ifdef PUGIXML_HAS_MOVE - PUGI__FN xpath_node_set::xpath_node_set(xpath_node_set&& rhs): _type(type_unsorted), _begin(&_storage), _end(&_storage) + PUGI__FN xpath_node_set::xpath_node_set(xpath_node_set&& rhs) PUGIXML_NOEXCEPT: _type(type_unsorted), _begin(_storage), _end(_storage) { _move(rhs); } - PUGI__FN xpath_node_set& xpath_node_set::operator=(xpath_node_set&& rhs) + PUGI__FN xpath_node_set& xpath_node_set::operator=(xpath_node_set&& rhs) PUGIXML_NOEXCEPT { if (this == &rhs) return *this; - if (_begin != &_storage) + if (_begin != _storage) impl::xml_memory::deallocate(_begin); _move(rhs); @@ -12042,7 +12422,7 @@ namespace pugi return static_cast(this)->name; default: - assert(false && "Invalid variable type"); + assert(false && "Invalid variable type"); // unreachable return 0; } } @@ -12148,7 +12528,7 @@ namespace pugi } #ifdef PUGIXML_HAS_MOVE - PUGI__FN xpath_variable_set::xpath_variable_set(xpath_variable_set&& rhs) + PUGI__FN xpath_variable_set::xpath_variable_set(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT { for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) { @@ -12157,7 +12537,7 @@ namespace pugi } } - PUGI__FN xpath_variable_set& xpath_variable_set::operator=(xpath_variable_set&& rhs) + PUGI__FN xpath_variable_set& xpath_variable_set::operator=(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT { for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) { @@ -12351,7 +12731,7 @@ namespace pugi } #ifdef PUGIXML_HAS_MOVE - PUGI__FN xpath_query::xpath_query(xpath_query&& rhs) + PUGI__FN xpath_query::xpath_query(xpath_query&& rhs) PUGIXML_NOEXCEPT { _impl = rhs._impl; _result = rhs._result; @@ -12359,7 +12739,7 @@ namespace pugi rhs._result = xpath_parse_result(); } - PUGI__FN xpath_query& xpath_query::operator=(xpath_query&& rhs) + PUGI__FN xpath_query& xpath_query::operator=(xpath_query&& rhs) PUGIXML_NOEXCEPT { if (this == &rhs) return *this; @@ -12586,6 +12966,10 @@ namespace pugi # pragma warning(pop) #endif +#if defined(_MSC_VER) && defined(__c2__) +# pragma clang diagnostic pop +#endif + // Undefine all local macros (makes sure we're not leaking macros in header-only mode) #undef PUGI__NO_INLINE #undef PUGI__UNLIKELY @@ -12593,6 +12977,7 @@ namespace pugi #undef PUGI__DMC_VOLATILE #undef PUGI__UNSIGNED_OVERFLOW #undef PUGI__MSVC_CRT_VERSION +#undef PUGI__SNPRINTF #undef PUGI__NS_BEGIN #undef PUGI__NS_END #undef PUGI__FN @@ -12619,7 +13004,7 @@ namespace pugi #endif /** - * Copyright (c) 2006-2017 Arseny Kapoulkine + * Copyright (c) 2006-2022 Arseny Kapoulkine * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation diff --git a/Externals/pugixml/pugixml.hpp b/Externals/pugixml/pugixml.hpp index 4d76bfa265..579f143990 100644 --- a/Externals/pugixml/pugixml.hpp +++ b/Externals/pugixml/pugixml.hpp @@ -1,8 +1,8 @@ /** - * pugixml parser - version 1.8 + * pugixml parser - version 1.12 * -------------------------------------------------------- - * Copyright (C) 2006-2017, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) - * Report bugs and download new versions at http://pugixml.org/ + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ * * This library is distributed under the MIT License. See notice at the end * of this file. @@ -11,9 +11,10 @@ * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) */ +// Define version macro; evaluates to major * 1000 + minor * 10 + patch so that it's safe to use in less-than comparisons +// Note: pugixml used major * 100 + minor * 10 + patch format up until 1.9 (which had version identifier 190); starting from pugixml 1.10, the minor version number is two digits #ifndef PUGIXML_VERSION -// Define version macro; evaluates to major * 100 + minor so that it's safe to use in less-than comparisons -# define PUGIXML_VERSION 180 +# define PUGIXML_VERSION 1120 // 1.12 #endif // Include user configuration file (this can define various configuration macros) @@ -81,15 +82,44 @@ # endif #endif +// If C++ is 2011 or higher, add 'noexcept' specifiers +#ifndef PUGIXML_NOEXCEPT +# if __cplusplus >= 201103 +# define PUGIXML_NOEXCEPT noexcept +# elif defined(_MSC_VER) && _MSC_VER >= 1900 +# define PUGIXML_NOEXCEPT noexcept +# else +# define PUGIXML_NOEXCEPT +# endif +#endif + +// Some functions can not be noexcept in compact mode +#ifdef PUGIXML_COMPACT +# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT +#else +# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT PUGIXML_NOEXCEPT +#endif + // If C++ is 2011 or higher, add 'override' qualifiers #ifndef PUGIXML_OVERRIDE # if __cplusplus >= 201103 # define PUGIXML_OVERRIDE override +# elif defined(_MSC_VER) && _MSC_VER >= 1700 +# define PUGIXML_OVERRIDE override # else # define PUGIXML_OVERRIDE # endif #endif +// If C++ is 2011 or higher, use 'nullptr' +#ifndef PUGIXML_NULL +# if __cplusplus >= 201103 +# define PUGIXML_NULL nullptr +# else +# define PUGIXML_NULL 0 +# endif +#endif + // Character interface macros #ifdef PUGIXML_WCHAR_MODE # define PUGIXML_TEXT(t) L ## t @@ -232,10 +262,19 @@ namespace pugi // Don't output empty element tags, instead writing an explicit start and end tag even if there are no children. This flag is off by default. const unsigned int format_no_empty_element_tags = 0x80; + // Skip characters belonging to range [0; 32) instead of "&#xNN;" encoding. This flag is off by default. + const unsigned int format_skip_control_chars = 0x100; + + // Use single quotes ' instead of double quotes " for enclosing attribute values. This flag is off by default. + const unsigned int format_attribute_single_quote = 0x200; + // The default set of formatting flags. // Nodes are indented depending on their depth in DOM tree, a default declaration is output if document has none. const unsigned int format_default = format_indent; + const int default_double_precision = 17; + const int default_float_precision = 9; + // Forward declarations struct xml_attribute_struct; struct xml_node_struct; @@ -273,6 +312,8 @@ namespace pugi It begin() const { return _begin; } It end() const { return _end; } + bool empty() const { return _begin == _end; } + private: It _begin, _end; }; @@ -383,7 +424,9 @@ namespace pugi bool set_value(long rhs); bool set_value(unsigned long rhs); bool set_value(double rhs); + bool set_value(double rhs, int precision); bool set_value(float rhs); + bool set_value(float rhs, int precision); bool set_value(bool rhs); #ifdef PUGIXML_HAS_LONG_LONG @@ -549,10 +592,16 @@ namespace pugi bool remove_attribute(const xml_attribute& a); bool remove_attribute(const char_t* name); + // Remove all attributes + bool remove_attributes(); + // Remove specified child bool remove_child(const xml_node& n); bool remove_child(const char_t* name); + // Remove all children + bool remove_children(); + // Parses buffer as an XML document fragment and appends all nodes as children of the current node. // Copies/converts the buffer, so it may be deleted or changed after the function returns. // Note: append_buffer allocates memory that has the lifetime of the owning document; removing the appended nodes does not immediately reclaim that memory. @@ -623,16 +672,16 @@ namespace pugi #ifndef PUGIXML_NO_XPATH // Select single node by evaluating XPath query. Returns first node from the resulting node set. - xpath_node select_node(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node select_node(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; xpath_node select_node(const xpath_query& query) const; // Select node set by evaluating XPath query - xpath_node_set select_nodes(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node_set select_nodes(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; xpath_node_set select_nodes(const xpath_query& query) const; // (deprecated: use select_node instead) Select single node by evaluating XPath query. - xpath_node select_single_node(const char_t* query, xpath_variable_set* variables = 0) const; - xpath_node select_single_node(const xpath_query& query) const; + PUGIXML_DEPRECATED xpath_node select_single_node(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; + PUGIXML_DEPRECATED xpath_node select_single_node(const xpath_query& query) const; #endif @@ -734,7 +783,9 @@ namespace pugi bool set(long rhs); bool set(unsigned long rhs); bool set(double rhs); + bool set(double rhs, int precision); bool set(float rhs); + bool set(float rhs, int precision); bool set(bool rhs); #ifdef PUGIXML_HAS_LONG_LONG @@ -802,10 +853,10 @@ namespace pugi xml_node& operator*() const; xml_node* operator->() const; - const xml_node_iterator& operator++(); + xml_node_iterator& operator++(); xml_node_iterator operator++(int); - const xml_node_iterator& operator--(); + xml_node_iterator& operator--(); xml_node_iterator operator--(int); }; @@ -844,10 +895,10 @@ namespace pugi xml_attribute& operator*() const; xml_attribute* operator->() const; - const xml_attribute_iterator& operator++(); + xml_attribute_iterator& operator++(); xml_attribute_iterator operator++(int); - const xml_attribute_iterator& operator--(); + xml_attribute_iterator& operator--(); xml_attribute_iterator operator--(int); }; @@ -880,10 +931,10 @@ namespace pugi xml_node& operator*() const; xml_node* operator->() const; - const xml_named_node_iterator& operator++(); + xml_named_node_iterator& operator++(); xml_named_node_iterator operator++(int); - const xml_named_node_iterator& operator--(); + xml_named_node_iterator& operator--(); xml_named_node_iterator operator--(int); private: @@ -983,6 +1034,7 @@ namespace pugi void _create(); void _destroy(); + void _move(xml_document& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; public: // Default constructor, makes empty document @@ -991,6 +1043,12 @@ namespace pugi // Destructor, invalidates all node/attribute handles to this document ~xml_document(); + #ifdef PUGIXML_HAS_MOVE + // Move semantics support + xml_document(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; + xml_document& operator=(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; + #endif + // Removes all nodes, leaving the empty document void reset(); @@ -1004,7 +1062,7 @@ namespace pugi #endif // (deprecated: use load_string instead) Load document from zero-terminated string. No encoding conversions are applied. - xml_parse_result load(const char_t* contents, unsigned int options = parse_default); + PUGIXML_DEPRECATED xml_parse_result load(const char_t* contents, unsigned int options = parse_default); // Load document from zero-terminated string. No encoding conversions are applied. xml_parse_result load_string(const char_t* contents, unsigned int options = parse_default); @@ -1131,8 +1189,8 @@ namespace pugi #ifdef PUGIXML_HAS_MOVE // Move semantics support - xpath_variable_set(xpath_variable_set&& rhs); - xpath_variable_set& operator=(xpath_variable_set&& rhs); + xpath_variable_set(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT; + xpath_variable_set& operator=(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT; #endif // Add a new variable or get the existing one, if the types match @@ -1165,7 +1223,7 @@ namespace pugi public: // Construct a compiled object from XPath expression. // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on compilation errors. - explicit xpath_query(const char_t* query, xpath_variable_set* variables = 0); + explicit xpath_query(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL); // Constructor xpath_query(); @@ -1175,8 +1233,8 @@ namespace pugi #ifdef PUGIXML_HAS_MOVE // Move semantics support - xpath_query(xpath_query&& rhs); - xpath_query& operator=(xpath_query&& rhs); + xpath_query(xpath_query&& rhs) PUGIXML_NOEXCEPT; + xpath_query& operator=(xpath_query&& rhs) PUGIXML_NOEXCEPT; #endif // Get query expression return type @@ -1224,6 +1282,12 @@ namespace pugi }; #ifndef PUGIXML_NO_EXCEPTIONS + #if defined(_MSC_VER) + // C4275 can be ignored in Visual C++ if you are deriving + // from a type in the Standard C++ Library + #pragma warning(push) + #pragma warning(disable: 4275) + #endif // XPath exception class class PUGIXML_CLASS xpath_exception: public std::exception { @@ -1240,6 +1304,9 @@ namespace pugi // Get parse result const xpath_parse_result& result() const; }; + #if defined(_MSC_VER) + #pragma warning(pop) + #endif #endif // XPath node class (either xml_node or xml_attribute) @@ -1316,8 +1383,8 @@ namespace pugi #ifdef PUGIXML_HAS_MOVE // Move semantics support - xpath_node_set(xpath_node_set&& rhs); - xpath_node_set& operator=(xpath_node_set&& rhs); + xpath_node_set(xpath_node_set&& rhs) PUGIXML_NOEXCEPT; + xpath_node_set& operator=(xpath_node_set&& rhs) PUGIXML_NOEXCEPT; #endif // Get collection type @@ -1345,13 +1412,13 @@ namespace pugi private: type_t _type; - xpath_node _storage; + xpath_node _storage[1]; xpath_node* _begin; xpath_node* _end; void _assign(const_iterator begin, const_iterator end, type_t type); - void _move(xpath_node_set& rhs); + void _move(xpath_node_set& rhs) PUGIXML_NOEXCEPT; }; #endif @@ -1409,7 +1476,7 @@ namespace std #endif /** - * Copyright (c) 2006-2017 Arseny Kapoulkine + * Copyright (c) 2006-2022 Arseny Kapoulkine * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation From 68b260746bbbef24c81b269000d6c196281fcc2e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 2 May 2022 08:38:25 +0200 Subject: [PATCH 010/659] Externals/pugixml: Configure new version for use in Dolphin. --- Externals/pugixml/pugiconfig.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals/pugixml/pugiconfig.hpp b/Externals/pugixml/pugiconfig.hpp index 0713b0efbb..ee7345aab4 100644 --- a/Externals/pugixml/pugiconfig.hpp +++ b/Externals/pugixml/pugiconfig.hpp @@ -27,7 +27,7 @@ // #define PUGIXML_NO_STL // Uncomment this to disable exceptions -// #define PUGIXML_NO_EXCEPTIONS +#define PUGIXML_NO_EXCEPTIONS // Set this to control attributes for public classes/functions, i.e.: // #define PUGIXML_API __declspec(dllexport) // to export all public symbols from DLL @@ -47,7 +47,7 @@ // #define PUGIXML_HEADER_ONLY // Uncomment this to enable long long support -// #define PUGIXML_HAS_LONG_LONG +#define PUGIXML_HAS_LONG_LONG #endif From 004e8a80b2cd577f0dd6b7b998d11181798c69da Mon Sep 17 00:00:00 2001 From: spycrab Date: Sun, 25 Apr 2021 02:18:28 +0200 Subject: [PATCH 011/659] Add support for building against Qt 6 --- BuildMacOSUniversalBinary.py | 2 +- CMakeSettings.json | 16 +- Externals/Qt | 2 +- Source/Core/DolphinQt/CMakeLists.txt | 49 ++- .../DolphinQt/CheatSearchFactoryWidget.cpp | 2 +- .../Config/CommonControllersWidget.cpp | 2 +- .../Config/GamecubeControllersWidget.cpp | 2 +- .../Config/ToolTipControls/ToolTipWidget.h | 4 + .../Config/WiimoteControllersWidget.cpp | 4 +- Source/Core/DolphinQt/DolphinQt.vcxproj | 18 +- Source/Core/DolphinQt/GBAWidget.cpp | 8 +- Source/Core/DolphinQt/GameList/GameList.cpp | 4 +- Source/Core/DolphinQt/Main.cpp | 9 +- Source/Core/DolphinQt/MainWindow.cpp | 4 +- Source/Core/DolphinQt/MenuBar.cpp | 2 +- .../QtUtils/ParallelProgressDialog.h | 5 + Source/Core/DolphinQt/RenderWidget.cpp | 4 +- Source/Core/DolphinQt/TAS/IRWidget.cpp | 4 +- Source/Core/DolphinQt/TAS/StickWidget.cpp | 4 +- Source/Core/DolphinQt/TAS/TASInputWindow.cpp | 6 +- .../Core/DolphinQt/TAS/WiiTASInputWindow.cpp | 4 +- Source/Core/DolphinQt/qt6.natvis | 406 ++++++++++++++++++ Source/VSProps/QtCompile.props | 66 +-- Source/VSProps/qtmoc.props | 2 +- 24 files changed, 545 insertions(+), 84 deletions(-) create mode 100644 Source/Core/DolphinQt/qt6.natvis diff --git a/BuildMacOSUniversalBinary.py b/BuildMacOSUniversalBinary.py index 5f9b45744c..0e01057b27 100755 --- a/BuildMacOSUniversalBinary.py +++ b/BuildMacOSUniversalBinary.py @@ -261,7 +261,7 @@ def build(config): os.mkdir(arch) env = os.environ.copy() - env["Qt5_DIR"] = config[arch+"_qt5_path"] + env["QT_DIR"] = config[arch+"_qt5_path"] env["CMAKE_OSX_ARCHITECTURES"] = arch env["CMAKE_PREFIX_PATH"] = config[arch+"_cmake_prefix"] diff --git a/CMakeSettings.json b/CMakeSettings.json index c571312285..94812b270f 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -10,8 +10,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "Qt5_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt5.15.0\\msvc2019_64\\lib\\cmake\\Qt5" + "name": "QT_DIR", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64\\lib\\cmake\\Qt6" } ] }, @@ -25,8 +25,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "Qt5_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt5.15.0\\msvc2019_64\\lib\\cmake\\Qt5" + "name": "QT_DIR", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64\\lib\\cmake\\Qt6" } ] }, @@ -40,8 +40,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "Qt5_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt5.15.0\\msvc2019_arm64\\lib\\cmake\\Qt5" + "name": "QT_DIR", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64\\lib\\cmake\\Qt6" }, { "name": "CMAKE_SYSTEM_NAME", @@ -63,8 +63,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "Qt5_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt5.15.0\\msvc2019_arm64\\lib\\cmake\\Qt5" + "name": "QT_DIR", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64\\lib\\cmake\\Qt6" }, { "name": "CMAKE_SYSTEM_NAME", diff --git a/Externals/Qt b/Externals/Qt index 5ab31b5fdf..9498dbe942 160000 --- a/Externals/Qt +++ b/Externals/Qt @@ -1 +1 @@ -Subproject commit 5ab31b5fdf1cdc59b9e8c82a0f7c12d5fe878cd8 +Subproject commit 9498dbe9421a80da674212fee0bf745883464992 diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index e08af734cc..000e5767a4 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -1,18 +1,29 @@ -if (NOT Qt5_DIR AND MSVC) +if(POLICY CMP0084) + # Disable trying to search for Qt3/4 if what we actually want is not found + cmake_policy(SET CMP0084 NEW) +endif() + +if (NOT QT_DIR AND MSVC) if(_M_ARM_64) - set(Qt5_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt5.15.0/msvc2019_arm64/lib/cmake/Qt5") + set(QT_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.3.0/ARM64/lib/cmake/Qt6") else() - set(Qt5_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt5.15.0/msvc2019_64/lib/cmake/Qt5") + set(QT_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.3.0/x64/lib/cmake/Qt6") endif() endif() -find_package(Qt5 5.9 REQUIRED COMPONENTS Gui Widgets) - -set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES "") -message(STATUS "Found Qt version ${Qt5Core_VERSION}") - set(CMAKE_AUTOMOC ON) +# For some reason the method in Qt6 documentation is not working (at least on ubuntu jammy) +# When Qt5 and Qt6 are given in same NAMES entry, only Qt5 is ever found. +find_package(QT NAMES Qt6 COMPONENTS Core Gui Widgets) +if(NOT QT_DIR) + find_package(QT NAMES Qt5 COMPONENTS Core Gui Widgets) +endif() +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets) +message(STATUS "Found Qt version ${QT_VERSION}") + +set_property(TARGET Qt${QT_VERSION_MAJOR}::Core PROPERTY INTERFACE_COMPILE_FEATURES "") + add_executable(dolphin-emu AboutDialog.cpp AboutDialog.h @@ -351,13 +362,13 @@ PRIVATE target_include_directories(dolphin-emu PRIVATE ${CMAKE_CURRENT_BINARY_DIR} - ${Qt5Gui_PRIVATE_INCLUDE_DIRS} + ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS} ) target_link_libraries(dolphin-emu PRIVATE core - Qt5::Widgets + Qt${QT_VERSION_MAJOR}::Widgets uicommon imgui ) @@ -377,9 +388,9 @@ if (MSVC) set(qtGui "") set(qtGuiPriv "") set(qtWidgetsPriv "") - list(TRANSFORM Qt5Gui_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtGui) - list(TRANSFORM Qt5Gui_PRIVATE_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtGuiPriv) - list(TRANSFORM Qt5Widgets_PRIVATE_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtWidgetsPriv) + list(TRANSFORM Qt6Gui_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtGui) + list(TRANSFORM Qt6Gui_PRIVATE_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtGuiPriv) + list(TRANSFORM Qt6Widgets_PRIVATE_INCLUDE_DIRS PREPEND "/external:I" OUTPUT_VARIABLE qtWidgetsPriv) target_compile_options(dolphin-emu PRIVATE "${qtGui}") target_compile_options(dolphin-emu PRIVATE "${qtGuiPriv}") target_compile_options(dolphin-emu PRIVATE "${qtWidgets}") @@ -415,7 +426,7 @@ if(WIN32) ) # Delegate to Qt's official deployment binary on Windows to copy over the necessary Qt-specific libraries, etc. - get_target_property(MOC_EXECUTABLE_LOCATION Qt5::moc IMPORTED_LOCATION) + get_target_property(MOC_EXECUTABLE_LOCATION Qt${QT_VERSION_MAJOR}::moc IMPORTED_LOCATION) get_filename_component(QT_BINARY_DIRECTORY "${MOC_EXECUTABLE_LOCATION}" DIRECTORY) find_program(WINDEPLOYQT_EXE windeployqt HINTS "${QT_BINARY_DIRECTORY}") @@ -520,12 +531,18 @@ if(APPLE) target_sources(dolphin-emu PRIVATE "${CMAKE_SOURCE_DIR}/Data/Dolphin.icns") set_source_files_properties("${CMAKE_SOURCE_DIR}/Data/Dolphin.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + # Plugins have to be manually included with Qt 6 + if (QT_VERSION_MAJOR EQUAL 6) + find_package(Qt6QMacStylePlugin REQUIRED PATHS ${Qt6Widgets_DIR}) + find_package(Qt6QCocoaIntegrationPlugin REQUIRED PATHS ${Qt6Gui_DIR}) + endif() + # Copy Qt plugins into the bundle - get_target_property(qtcocoa_location Qt5::QCocoaIntegrationPlugin LOCATION) + get_target_property(qtcocoa_location Qt${QT_VERSION_MAJOR}::QCocoaIntegrationPlugin LOCATION) target_sources(dolphin-emu PRIVATE "${qtcocoa_location}") set_source_files_properties("${qtcocoa_location}" PROPERTIES MACOSX_PACKAGE_LOCATION MacOS/platforms) - get_target_property(qtmacstyle_location Qt5::QMacStylePlugin LOCATION) + get_target_property(qtmacstyle_location Qt${QT_VERSION_MAJOR}::QMacStylePlugin LOCATION) target_sources(dolphin-emu PRIVATE "${qtmacstyle_location}") set_source_files_properties("${qtmacstyle_location}" PROPERTIES MACOSX_PACKAGE_LOCATION MacOS/styles) diff --git a/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp b/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp index 4b62a9f6a6..637d00ef67 100644 --- a/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp +++ b/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp @@ -55,7 +55,7 @@ void CheatSearchFactoryWidget::CreateWidgets() label_standard_address_space->setWordWrap(true); auto* custom_address_space_layout = new QVBoxLayout(); - custom_address_space_layout->setMargin(6); + custom_address_space_layout->setContentsMargins(6, 6, 6, 6); auto* custom_address_space_button_group = new QButtonGroup(this); m_custom_virtual_address_space = new QRadioButton(tr("Use virtual addresses when possible")); m_custom_virtual_address_space->setChecked(true); diff --git a/Source/Core/DolphinQt/Config/CommonControllersWidget.cpp b/Source/Core/DolphinQt/Config/CommonControllersWidget.cpp index 245fca6d83..0f43658ae3 100644 --- a/Source/Core/DolphinQt/Config/CommonControllersWidget.cpp +++ b/Source/Core/DolphinQt/Config/CommonControllersWidget.cpp @@ -36,7 +36,7 @@ void CommonControllersWidget::CreateLayout() m_common_box->setLayout(m_common_layout); auto* layout = new QVBoxLayout; - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setAlignment(Qt::AlignTop); layout->addWidget(m_common_box); setLayout(layout); diff --git a/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp b/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp index a4ce7b4bab..3b18baf1e9 100644 --- a/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp +++ b/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp @@ -92,7 +92,7 @@ void GamecubeControllersWidget::CreateLayout() m_gc_box->setLayout(m_gc_layout); auto* layout = new QVBoxLayout; - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setAlignment(Qt::AlignTop); layout->addWidget(m_gc_box); setLayout(layout); diff --git a/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h b/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h index fee62da77f..127a708aa6 100644 --- a/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h +++ b/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h @@ -22,7 +22,11 @@ public: void SetDescription(QString description) { m_description = std::move(description); } private: +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void enterEvent(QEvent* event) override +#else + void enterEvent(QEnterEvent* event) override +#endif { if (m_timer_id) return; diff --git a/Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp b/Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp index 37fff86807..392af928d8 100644 --- a/Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp +++ b/Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp @@ -74,7 +74,7 @@ static int GetLayoutHorizontalSpacing(const QGridLayout* layout) float pixel_ratio = QGuiApplication::primaryScreen()->devicePixelRatio(); #ifdef __APPLE__ // TODO is this still required? - hspacing = pixel_ratio * style->pixelMetric(QStyle::PM_DefaultLayoutSpacing); + hspacing = pixel_ratio * style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); if (hspacing >= 0) return hspacing; #endif @@ -145,7 +145,7 @@ void WiimoteControllersWidget::CreateLayout() m_wiimote_layout->addWidget(m_wiimote_refresh, continuous_scanning_row, 3); auto* layout = new QVBoxLayout; - layout->setMargin(0); + layout->setContentsMargins(0, 0, 0, 0); layout->setAlignment(Qt::AlignTop); layout->addWidget(m_wiimote_box); setLayout(layout); diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index abd204ca29..da9e6096b0 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -13,14 +13,11 @@ - - - 5054;%(DisableSpecificWarnings) $(ProjectDir)Config\Graphics;%(AdditionalIncludeDirectories) $(ProjectDir)Config;%(AdditionalIncludeDirectories) $(ProjectDir)Config\ControllerInterface;%(AdditionalIncludeDirectories) @@ -33,6 +30,8 @@ $(ProjectDir)Settings;%(AdditionalIncludeDirectories) $(ProjectDir)TAS;%(AdditionalIncludeDirectories) $(ProjectDir)VideoInterface;%(AdditionalIncludeDirectories) + + false DolphinQt.manifest;%(AdditionalManifestFiles) @@ -379,6 +378,9 @@ + + + {D79392F7-06D6-4B4B-A39F-4D587C215D3A} @@ -389,6 +391,16 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5} + + + {76563A7F-1011-4EAD-B667-7BB18D09568E} + false + true + true + diff --git a/Source/Core/DolphinQt/GBAWidget.cpp b/Source/Core/DolphinQt/GBAWidget.cpp index db05c04367..2fd36ac070 100644 --- a/Source/Core/DolphinQt/GBAWidget.cpp +++ b/Source/Core/DolphinQt/GBAWidget.cpp @@ -510,7 +510,13 @@ void GBAWidget::mouseMoveEvent(QMouseEvent* event) { if (!m_moving) return; - move(event->globalPos() - m_move_pos - (geometry().topLeft() - pos())); + auto event_pos = +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + event->globalPosition().toPoint(); +#else + event->globalPos(); +#endif + move(event_pos - m_move_pos - (geometry().topLeft() - pos())); } void GBAWidget::paintEvent(QPaintEvent* event) diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index cc5b1ebb43..5583497435 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -108,14 +108,14 @@ GameList::GameList(QWidget* parent) : QStackedWidget(parent), m_model(this) // conceptually as 'control plus' (which is then interpreted as an appropriate zooming action) // instead of the technically correct 'control equal'. Qt doesn't account for this convention so // an alternate shortcut is needed to avoid counterintuitive behavior. - const auto* zoom_in_alternate = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Equal), this); + const auto* zoom_in_alternate = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Equal), this); connect(zoom_in_alternate, &QShortcut::activated, this, &GameList::ZoomIn); // The above correction introduces a different inconsistency: now zooming in can be done using // conceptual 'control plus' or 'control shift plus', while zooming out can only be done using // 'control minus'. Adding an alternate shortcut representing 'control shift minus' restores // consistency. - const auto* zoom_out_alternate = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Underscore), this); + const auto* zoom_out_alternate = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Underscore), this); connect(zoom_out_alternate, &QShortcut::activated, this, &GameList::ZoomOut); connect(&Settings::Instance(), &Settings::MetadataRefreshCompleted, this, diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp index 88f716b5a6..defffa5e42 100644 --- a/Source/Core/DolphinQt/Main.cpp +++ b/Source/Core/DolphinQt/Main.cpp @@ -132,8 +132,15 @@ int main(int argc, char* argv[]) const optparse::Values& options = CommandLineParse::ParseArguments(parser.get(), argc, argv); const std::vector args = parser->args(); + // setHighDpiScaleFactorRoundingPolicy was added in 5.14, but default behavior changed in 6.0 +#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) + // Set to the previous default behavior + QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Round); +#else QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); +#endif + QCoreApplication::setOrganizationName(QStringLiteral("Dolphin Emulator")); QCoreApplication::setOrganizationDomain(QStringLiteral("dolphin-emu.org")); QCoreApplication::setApplicationName(QStringLiteral("dolphin-emu")); @@ -144,7 +151,7 @@ int main(int argc, char* argv[]) QApplication app(argc, argv); #endif -#ifdef _WIN32 +#if defined(_WIN32) && (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) // On Windows, Qt 5's default system font (MS Shell Dlg 2) is outdated. // Interestingly, the QMenu font is correct and comes from lfMenuFont // (Segoe UI on English computers). diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 3be8f9d6a0..5099ffa0e2 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -825,7 +825,7 @@ void MainWindow::TogglePause() void MainWindow::OnStopComplete() { m_stop_requested = false; - HideRenderWidget(true, m_exit_requested); + HideRenderWidget(!m_exit_requested, m_exit_requested); #ifdef USE_DISCORD_PRESENCE if (!m_netplay_dialog->isVisible()) Discord::UpdateDiscordPresence(); @@ -834,7 +834,7 @@ void MainWindow::OnStopComplete() SetFullScreenResolution(false); if (m_exit_requested || Settings::Instance().IsBatchModeEnabled()) - QGuiApplication::instance()->quit(); + QGuiApplication::exit(0); // If the current emulation prevented the booting of another, do that now if (m_pending_boot != nullptr) diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index a353cb5734..1ace1276b8 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -218,7 +218,7 @@ void MenuBar::AddFileMenu() file_menu->addSeparator(); m_exit_action = file_menu->addAction(tr("E&xit"), this, &MenuBar::Exit); - m_exit_action->setShortcuts({QKeySequence::Quit, QKeySequence(Qt::ALT + Qt::Key_F4)}); + m_exit_action->setShortcuts({QKeySequence::Quit, QKeySequence(Qt::ALT | Qt::Key_F4)}); } void MenuBar::AddToolsMenu() diff --git a/Source/Core/DolphinQt/QtUtils/ParallelProgressDialog.h b/Source/Core/DolphinQt/QtUtils/ParallelProgressDialog.h index a784685d9a..4335ec4b9f 100644 --- a/Source/Core/DolphinQt/QtUtils/ParallelProgressDialog.h +++ b/Source/Core/DolphinQt/QtUtils/ParallelProgressDialog.h @@ -16,6 +16,11 @@ class ParallelProgressDialog final : public QObject Q_OBJECT public: + ParallelProgressDialog(const ParallelProgressDialog&) = delete; + ParallelProgressDialog& operator=(const ParallelProgressDialog&) = delete; + ParallelProgressDialog(ParallelProgressDialog&&) = delete; + ParallelProgressDialog& operator=(ParallelProgressDialog&&) = delete; + // Only use this from the main thread template ParallelProgressDialog(Args&&... args) : m_dialog{std::forward(args)...} diff --git a/Source/Core/DolphinQt/RenderWidget.cpp b/Source/Core/DolphinQt/RenderWidget.cpp index 2430b7a415..013f4dce00 100644 --- a/Source/Core/DolphinQt/RenderWidget.cpp +++ b/Source/Core/DolphinQt/RenderWidget.cpp @@ -502,8 +502,8 @@ void RenderWidget::PassEventToImGui(const QEvent* event) // coordinates (as if the screen was standard dpi). We need to update the mouse position in // native coordinates, as the UI (and game) is rendered at native resolution. const float scale = devicePixelRatio(); - ImGui::GetIO().MousePos.x = static_cast(event)->x() * scale; - ImGui::GetIO().MousePos.y = static_cast(event)->y() * scale; + ImGui::GetIO().MousePos.x = static_cast(event)->pos().x() * scale; + ImGui::GetIO().MousePos.y = static_cast(event)->pos().y() * scale; } break; diff --git a/Source/Core/DolphinQt/TAS/IRWidget.cpp b/Source/Core/DolphinQt/TAS/IRWidget.cpp index c1587cfd0e..992c10c90e 100644 --- a/Source/Core/DolphinQt/TAS/IRWidget.cpp +++ b/Source/Core/DolphinQt/TAS/IRWidget.cpp @@ -87,8 +87,8 @@ void IRWidget::handleMouseEvent(QMouseEvent* event) else { // convert from widget space to value space - int new_x = ir_max_x - (event->x() * ir_max_x) / width(); - int new_y = (event->y() * ir_max_y) / height(); + int new_x = ir_max_x - (event->pos().x() * ir_max_x) / width(); + int new_y = (event->pos().y() * ir_max_y) / height(); m_x = std::max(0, std::min(static_cast(ir_max_x), new_x)); m_y = std::max(0, std::min(static_cast(ir_max_y), new_y)); diff --git a/Source/Core/DolphinQt/TAS/StickWidget.cpp b/Source/Core/DolphinQt/TAS/StickWidget.cpp index 26f806971a..7a8842477a 100644 --- a/Source/Core/DolphinQt/TAS/StickWidget.cpp +++ b/Source/Core/DolphinQt/TAS/StickWidget.cpp @@ -90,8 +90,8 @@ void StickWidget::handleMouseEvent(QMouseEvent* event) else { // convert from widget space to value space - int new_x = (event->x() * m_max_x) / width(); - int new_y = m_max_y - (event->y() * m_max_y) / height(); + int new_x = (event->pos().x() * m_max_x) / width(); + int new_y = m_max_y - (event->pos().y() * m_max_y) / height(); m_x = std::max(0, std::min(static_cast(m_max_x), new_x)); m_y = std::max(0, std::min(static_cast(m_max_y), new_y)); diff --git a/Source/Core/DolphinQt/TAS/TASInputWindow.cpp b/Source/Core/DolphinQt/TAS/TASInputWindow.cpp index fbcdcd4fe8..771b1402fc 100644 --- a/Source/Core/DolphinQt/TAS/TASInputWindow.cpp +++ b/Source/Core/DolphinQt/TAS/TASInputWindow.cpp @@ -72,8 +72,8 @@ QGroupBox* TASInputWindow::CreateStickInputs(QString name, QSpinBox*& x_value, Q u16 max_x, u16 max_y, Qt::Key x_shortcut_key, Qt::Key y_shortcut_key) { - const QKeySequence x_shortcut_key_sequence = QKeySequence(Qt::ALT + x_shortcut_key); - const QKeySequence y_shortcut_key_sequence = QKeySequence(Qt::ALT + y_shortcut_key); + const QKeySequence x_shortcut_key_sequence = QKeySequence(Qt::ALT | x_shortcut_key); + const QKeySequence y_shortcut_key_sequence = QKeySequence(Qt::ALT | y_shortcut_key); auto* box = new QGroupBox(QStringLiteral("%1 (%2/%3)") @@ -119,7 +119,7 @@ QBoxLayout* TASInputWindow::CreateSliderValuePairLayout(QString name, QSpinBox*& int default_, u16 max, Qt::Key shortcut_key, QWidget* shortcut_widget, bool invert) { - const QKeySequence shortcut_key_sequence = QKeySequence(Qt::ALT + shortcut_key); + const QKeySequence shortcut_key_sequence = QKeySequence(Qt::ALT | shortcut_key); auto* label = new QLabel(QStringLiteral("%1 (%2)").arg( name, shortcut_key_sequence.toString(QKeySequence::NativeText))); diff --git a/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp b/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp index cad896bab0..1b379c739f 100644 --- a/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp +++ b/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp @@ -40,8 +40,8 @@ using namespace WiimoteCommon; WiiTASInputWindow::WiiTASInputWindow(QWidget* parent, int num) : TASInputWindow(parent), m_num(num) { - const QKeySequence ir_x_shortcut_key_sequence = QKeySequence(Qt::ALT + Qt::Key_F); - const QKeySequence ir_y_shortcut_key_sequence = QKeySequence(Qt::ALT + Qt::Key_G); + const QKeySequence ir_x_shortcut_key_sequence = QKeySequence(Qt::ALT | Qt::Key_F); + const QKeySequence ir_y_shortcut_key_sequence = QKeySequence(Qt::ALT | Qt::Key_G); m_ir_box = new QGroupBox(QStringLiteral("%1 (%2/%3)") .arg(tr("IR"), diff --git a/Source/Core/DolphinQt/qt6.natvis b/Source/Core/DolphinQt/qt6.natvis new file mode 100644 index 0000000000..e3470e347a --- /dev/null +++ b/Source/Core/DolphinQt/qt6.natvis @@ -0,0 +1,406 @@ + + + + + + + {val} + + val + + + + + {_q_value} + + _q_value + + + + + + + empty + {_q_value} + + *value() + + + + + + {{ x = {xp}, y = {yp} }} + + xp + yp + + + + + {{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }} + + x1 + y1 + x2 - x1 + 1 + y2 - y1 + 1 + + + + + {{ x = {xp}, y = {yp}, width = {w}, height = {h} }} + + xp + yp + w + h + + + + + + {{ width = {wd}, height = {ht} }} + + wd + ht + + + + + + {{ start point = {pt1}, end point = {pt2} }} + + + {pt1} + + pt1 + + + + {pt2} + + pt2 + + + + + + + + {{ size={d->size} }} + + d->ref.atomic._q_value + + d->size + (QPoint*)((reinterpret_cast<char*>(d)) + d->offset) + + + + + + {{ size={d->size} }} + + + d->size > 0 + && ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).xp + == (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).xp) + && ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).yp + == (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).yp) + + d->ref.atomic._q_value + + d->size + (QPointF*)((reinterpret_cast<char*>(d)) + d->offset) + + + + + + {{ x = {xp}, y = {yp} }} + + xp + yp + + + + + {{ x = {xp}, y = {yp}, z = {zp} }} + + xp + yp + zp + + + + + {{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }} + + xp + yp + zp + wp + + + + + + {{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }} + + + _m11 + _m12 + _m21 + _m22 + _dx + _dy + + + + + + {{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }} + + + m[0][0] + m[1][0] + m[2][0] + m[3][0] + m[0][1] + m[1][1] + m[2][1] + m[3][1] + m[0][2] + m[1][2] + m[2][2] + m[3][2] + m[0][3] + m[1][3] + m[2][3] + m[3][3] + + + + + + {{ horizontal = {static_cast<Policy>(bits.horPolicy)}, vertical = {static_cast<Policy>(bits.verPolicy)}, type = {ControlType(1 << bits.ctype)} }} + + + + QSizePolicy::Policy::{static_cast<Policy>(bits.verPolicy)} + + + QSizePolicy::Policy::{static_cast<Policy>(bits.horPolicy)} + + + QSizePolicy::ControlType::{ControlType(1 << bits.ctype)} + + + + Qt::Vertical (2) + + + Qt::Horizontal (1) + + + static_cast<int>(bits.verStretch) + static_cast<int>(bits.horStretch) + bits.hfw == 1 + bits.wfh == 1 + + + + + {ucs,c} + ucs,c + + ucs > 0xff ? '\0' : char(ucs),c + ucs,c + + + + + "{(reinterpret_cast<unsigned short*>(d.ptr)),sub}" + (reinterpret_cast<unsigned short*>(d.ptr)),sub + + d.size + + d.size + d.ptr + + + + + + {m_string,[m_size]} u"" + {m_string->d.ptr+m_position,[m_size]} + "" + m_string,[m_position+m_size] + + m_position + m_size + + m_size + m_string->d.ptr+m_position + + + + + + {m_data,[m_size]} + m_data,[m_size] + + m_size + + m_size + m_data + + + + + + "{((reinterpret_cast<char*>(d.ptr))),sb}" + ((reinterpret_cast<char*>(d.ptr))),sb + + d.size + + d.size + d.ptr + + + + + + + + + + + + + + + + + + + + {scheme()}://{host()}{path()} + {path()} + + scheme() + username() + password() + host() + path() + query() + fragment() + + + + + {{ julian day = {jd} }} + + + + + + + + {{ millisecond = {mds} }} + {{ milliseconds = {mds} }} + + hour(), d + hour(), d + minute(), d + minute(), d + second(), d + second(), d + millisecond(), d + millisecond(), d + + + + + ({first}, {second}) + + first + second + + + + + + {{ size={d.size} }} + + + d.size + reinterpret_cast<$T1*>(d.ptr) + + + + + + {{ size={s} }} + + a + + s + ptr + + + + + + + {{ size={d.d->m._Mypair._Myval2._Myval2._Mysize} }} + + d.d->m + + + + + + {{ size = {d->size} }} + + d->ref.atomic._q_value + + + + diff --git a/Source/VSProps/QtCompile.props b/Source/VSProps/QtCompile.props index 119a8101ac..c159b823e2 100644 --- a/Source/VSProps/QtCompile.props +++ b/Source/VSProps/QtCompile.props @@ -1,9 +1,9 @@ - $(ExternalsDir)Qt\Qt5.15.0\msvc2019_64\ - $(ExternalsDir)Qt\Qt5.15.0\msvc2019_arm64\ - $(QTDIRDefault) + $(ExternalsDir)Qt\Qt6.3.0\ + $(ExternalsQtDir)$(Platform)\ + $(QtTargetDirDefault) $(QTDIR)\ false true @@ -13,6 +13,7 @@ $(QTDIR)plugins\ $(IntDir) d + $(ExternalsQtDir)x64\ $(QtDebugSuffix) QtPlugins @@ -25,16 +26,15 @@ $(QtIncludeDir)QtCore;%(AdditionalIncludeDirectories) $(QtIncludeDir)QtGui;%(AdditionalIncludeDirectories) $(QtIncludeDir)QtWidgets;%(AdditionalIncludeDirectories) - $(QtIncludeDir)QtANGLE;%(AdditionalIncludeDirectories) - false + As of Qt6.3, Qt needs user code deriving from certain Qt types to have RTTI (AS WELL AS MOC, UGH). + Do NOT enable in dolphin outside of Qt-dependant code. + --> + true $(QtLibDir);%(AdditionalLibraryDirectories) - Qt5Core$(QtLibSuffix).lib;Qt5Gui$(QtLibSuffix).lib;Qt5Widgets$(QtLibSuffix).lib;%(AdditionalDependencies) + Qt6Core$(QtLibSuffix).lib;Qt6Gui$(QtLibSuffix).lib;Qt6Widgets$(QtLibSuffix).lib;%(AdditionalDependencies) Windows + $(QtToolOutDir)moc_68\moc_%(Filename).cpp @@ -72,34 +78,32 @@ - - - - - - - - - - - + + + + + + + + $(BinaryOutputDir)qt.conf - + Inputs="@(QtDllsSrc);@(QtPluginsSrc)" + Outputs="@(QtDllsDst);@(QtPluginsDst)"> diff --git a/Source/VSProps/qtmoc.props b/Source/VSProps/qtmoc.props index 9203740ccb..18832a6e93 100644 --- a/Source/VSProps/qtmoc.props +++ b/Source/VSProps/qtmoc.props @@ -50,7 +50,7 @@ moc %(Identity) $(QTDIR) + >$(QtHostToolsDir) $(QtInstallDir) From 8fec3224fca9f334b7c52f84eeb7e26c64c925c8 Mon Sep 17 00:00:00 2001 From: Minty-Meeo <45425365+Minty-Meeo@users.noreply.github.com> Date: Tue, 3 May 2022 21:20:00 -0500 Subject: [PATCH 012/659] Index SymbolDB when generated from address Otherwise every function will be the same color in the code view widget. --- Source/Core/Core/PowerPC/PPCAnalyst.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/Core/PowerPC/PPCAnalyst.cpp b/Source/Core/Core/PowerPC/PPCAnalyst.cpp index be5fb04e92..95553c9c27 100644 --- a/Source/Core/Core/PowerPC/PPCAnalyst.cpp +++ b/Source/Core/Core/PowerPC/PPCAnalyst.cpp @@ -367,6 +367,7 @@ void FindFunctions(u32 startAddr, u32 endAddr, PPCSymbolDB* func_db) // Step 2: func_db->FillInCallers(); + func_db->Index(); int numLeafs = 0, numNice = 0, numUnNice = 0; int numTimer = 0, numRFI = 0, numStraightLeaf = 0; From c04835243ff9d21001dde43851e79038976da49d Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Thu, 5 May 2022 18:31:50 -0400 Subject: [PATCH 013/659] Replace deprecated method calls --- .../settings/ui/viewholder/CheckBoxSettingViewHolder.java | 2 +- .../features/settings/ui/viewholder/FilePickerViewHolder.java | 2 +- .../settings/ui/viewholder/InputBindingSettingViewHolder.java | 2 +- .../settings/ui/viewholder/RumbleBindingViewHolder.java | 2 +- .../features/settings/ui/viewholder/SettingViewHolder.java | 2 +- .../features/settings/ui/viewholder/SingleChoiceViewHolder.java | 2 +- .../features/settings/ui/viewholder/SliderViewHolder.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/CheckBoxSettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/CheckBoxSettingViewHolder.java index b4e9b15ea8..11fe903421 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/CheckBoxSettingViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/CheckBoxSettingViewHolder.java @@ -59,7 +59,7 @@ public final class CheckBoxSettingViewHolder extends SettingViewHolder mCheckbox.toggle(); - getAdapter().onBooleanClick(mItem, getAdapterPosition(), mCheckbox.isChecked()); + getAdapter().onBooleanClick(mItem, getBindingAdapterPosition(), mCheckbox.isChecked()); setStyle(mTextSettingName, mItem); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/FilePickerViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/FilePickerViewHolder.java index e2717a63cd..f0bad3389c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/FilePickerViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/FilePickerViewHolder.java @@ -90,7 +90,7 @@ public final class FilePickerViewHolder extends SettingViewHolder return; } - int position = getAdapterPosition(); + int position = getBindingAdapterPosition(); if (mFilePicker.getRequestType() == MainPresenter.REQUEST_DIRECTORY) { getAdapter().onFilePickerDirectoryClick(mItem, position); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputBindingSettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputBindingSettingViewHolder.java index d8d9aac0b7..1e2f287cb5 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputBindingSettingViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputBindingSettingViewHolder.java @@ -61,7 +61,7 @@ public final class InputBindingSettingViewHolder extends SettingViewHolder return; } - getAdapter().onInputBindingClick(mItem, getAdapterPosition()); + getAdapter().onInputBindingClick(mItem, getBindingAdapterPosition()); setStyle(mTextSettingName, mItem); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RumbleBindingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RumbleBindingViewHolder.java index 1409dfe4b4..4ffc43f44d 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RumbleBindingViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/RumbleBindingViewHolder.java @@ -61,7 +61,7 @@ public class RumbleBindingViewHolder extends SettingViewHolder return; } - getAdapter().onInputBindingClick(mItem, getAdapterPosition()); + getAdapter().onInputBindingClick(mItem, getBindingAdapterPosition()); setStyle(mTextSettingName, mItem); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java index 3abbedbdaf..69c88a7497 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SettingViewHolder.java @@ -102,7 +102,7 @@ public abstract class SettingViewHolder extends RecyclerView.ViewHolder builder .setPositiveButton(R.string.ok, (dialog, whichButton) -> { - getAdapter().clearSetting(item, getAdapterPosition()); + getAdapter().clearSetting(item, getBindingAdapterPosition()); bind(item); Toast.makeText(context, R.string.setting_cleared, Toast.LENGTH_SHORT).show(); dialog.dismiss(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java index ea3084af84..56c2c520a2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SingleChoiceViewHolder.java @@ -98,7 +98,7 @@ public final class SingleChoiceViewHolder extends SettingViewHolder return; } - int position = getAdapterPosition(); + int position = getBindingAdapterPosition(); if (mItem instanceof SingleChoiceSetting) { getAdapter().onSingleChoiceClick((SingleChoiceSetting) mItem, position); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java index fa4f701cd5..a5f7778f2a 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.java @@ -67,7 +67,7 @@ public final class SliderViewHolder extends SettingViewHolder return; } - getAdapter().onSliderClick(mItem, getAdapterPosition()); + getAdapter().onSliderClick(mItem, getBindingAdapterPosition()); setStyle(mTextSettingName, mItem); } From 83858e68d4549ec7524128fda89d2ec6c38b697d Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 7 May 2022 12:52:44 +0100 Subject: [PATCH 014/659] AX: clarify main LRS channel names (NFC) --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 62 +++++++++---------- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 6 +- Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h | 24 +++---- Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h | 13 ++-- Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp | 35 ++++++----- 5 files changed, 71 insertions(+), 69 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index d9619a0408..95a12765b2 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -362,7 +362,7 @@ void AXUCode::SetupProcessing(u32 init_addr) init_data[i] = HLEMemory_Read_U16(init_addr + 2 * i); // List of all buffers we have to initialize - int* buffers[] = {m_samples_left, m_samples_right, m_samples_surround, + int* buffers[] = {m_samples_main_left, m_samples_main_right, m_samples_main_surround, m_samples_auxA_left, m_samples_auxA_right, m_samples_auxA_surround, m_samples_auxB_left, m_samples_auxB_right, m_samples_auxB_surround}; @@ -391,7 +391,7 @@ void AXUCode::SetupProcessing(u32 init_addr) void AXUCode::DownloadAndMixWithVolume(u32 addr, u16 vol_main, u16 vol_auxa, u16 vol_auxb) { - int* buffers_main[3] = {m_samples_left, m_samples_right, m_samples_surround}; + int* buffers_main[3] = {m_samples_main_left, m_samples_main_right, m_samples_main_surround}; int* buffers_auxa[3] = {m_samples_auxA_left, m_samples_auxA_right, m_samples_auxA_surround}; int* buffers_auxb[3] = {m_samples_auxB_left, m_samples_auxB_right, m_samples_auxB_surround}; int** buffers[3] = {buffers_main, buffers_auxa, buffers_auxb}; @@ -424,9 +424,9 @@ void AXUCode::ProcessPBList(u32 pb_addr) while (pb_addr) { - AXBuffers buffers = {{m_samples_left, m_samples_right, m_samples_surround, m_samples_auxA_left, - m_samples_auxA_right, m_samples_auxA_surround, m_samples_auxB_left, - m_samples_auxB_right, m_samples_auxB_surround}}; + AXBuffers buffers = {{m_samples_main_left, m_samples_main_right, m_samples_main_surround, + m_samples_auxA_left, m_samples_auxA_right, m_samples_auxA_surround, + m_samples_auxB_left, m_samples_auxB_right, m_samples_auxB_surround}}; ReadPB(pb_addr, pb, m_crc); @@ -481,11 +481,11 @@ void AXUCode::MixAUXSamples(int aux_id, u32 write_addr, u32 read_addr) // Then, we read the new temp from the CPU and add to our current // temp. int* ptr = (int*)HLEMemory_Get_Pointer(read_addr); - for (auto& sample : m_samples_left) + for (auto& sample : m_samples_main_left) sample += (int)Common::swap32(*ptr++); - for (auto& sample : m_samples_right) + for (auto& sample : m_samples_main_right) sample += (int)Common::swap32(*ptr++); - for (auto& sample : m_samples_surround) + for (auto& sample : m_samples_main_surround) sample += (int)Common::swap32(*ptr++); } @@ -495,9 +495,9 @@ void AXUCode::UploadLRS(u32 dst_addr) for (u32 i = 0; i < 5 * 32; ++i) { - buffers[0][i] = Common::swap32(m_samples_left[i]); - buffers[1][i] = Common::swap32(m_samples_right[i]); - buffers[2][i] = Common::swap32(m_samples_surround[i]); + buffers[0][i] = Common::swap32(m_samples_main_left[i]); + buffers[1][i] = Common::swap32(m_samples_main_right[i]); + buffers[2][i] = Common::swap32(m_samples_main_surround[i]); } memcpy(HLEMemory_Get_Pointer(dst_addr), buffers, sizeof(buffers)); } @@ -508,9 +508,9 @@ void AXUCode::SetMainLR(u32 src_addr) for (u32 i = 0; i < 5 * 32; ++i) { int samp = (int)Common::swap32(*ptr++); - m_samples_left[i] = samp; - m_samples_right[i] = samp; - m_samples_surround[i] = 0; + m_samples_main_left[i] = samp; + m_samples_main_right[i] = samp; + m_samples_main_surround[i] = 0; } } @@ -520,8 +520,8 @@ void AXUCode::RunCompressor(u16 threshold, u16 release_frames, u32 table_addr, u bool triggered = false; for (u32 i = 0; i < 32 * millis; ++i) { - if (std::abs(m_samples_left[i]) > int(threshold) || - std::abs(m_samples_right[i]) > int(threshold)) + if (std::abs(m_samples_main_left[i]) > int(threshold) || + std::abs(m_samples_main_right[i]) > int(threshold)) { triggered = true; break; @@ -555,8 +555,8 @@ void AXUCode::RunCompressor(u16 threshold, u16 release_frames, u32 table_addr, u for (u32 i = 0; i < 32 * millis; ++i) { u16 coef = Common::swap16(*ramp++); - m_samples_left[i] = (s64(m_samples_left[i]) * coef) >> 15; - m_samples_right[i] = (s64(m_samples_right[i]) * coef) >> 15; + m_samples_main_left[i] = (s64(m_samples_main_left[i]) * coef) >> 15; + m_samples_main_right[i] = (s64(m_samples_main_right[i]) * coef) >> 15; } } @@ -565,7 +565,7 @@ void AXUCode::OutputSamples(u32 lr_addr, u32 surround_addr) int surround_buffer[5 * 32]; for (u32 i = 0; i < 5 * 32; ++i) - surround_buffer[i] = Common::swap32(m_samples_surround[i]); + surround_buffer[i] = Common::swap32(m_samples_main_surround[i]); memcpy(HLEMemory_Get_Pointer(surround_addr), surround_buffer, sizeof(surround_buffer)); // 32 samples per ms, 5 ms, 2 channels @@ -574,8 +574,8 @@ void AXUCode::OutputSamples(u32 lr_addr, u32 surround_addr) // Output samples clamped to 16 bits and interlaced RLRLRLRLRL... for (u32 i = 0; i < 5 * 32; ++i) { - int left = std::clamp(m_samples_left[i], -32767, 32767); - int right = std::clamp(m_samples_right[i], -32767, 32767); + int left = std::clamp(m_samples_main_left[i], -32767, 32767); + int right = std::clamp(m_samples_main_right[i], -32767, 32767); buffer[2 * i + 0] = Common::swap16(right); buffer[2 * i + 1] = Common::swap16(left); @@ -599,13 +599,13 @@ void AXUCode::MixAUXBLR(u32 ul_addr, u32 dl_addr) { int samp = Common::swap32(*ptr++); m_samples_auxB_left[i] = samp; - m_samples_left[i] += samp; + m_samples_main_left[i] += samp; } for (u32 i = 0; i < 5 * 32; ++i) { int samp = Common::swap32(*ptr++); m_samples_auxB_right[i] = samp; - m_samples_right[i] += samp; + m_samples_main_right[i] += samp; } } @@ -615,9 +615,9 @@ void AXUCode::SetOppositeLR(u32 src_addr) for (u32 i = 0; i < 5 * 32; ++i) { int inp = Common::swap32(*ptr++); - m_samples_left[i] = -inp; - m_samples_right[i] = inp; - m_samples_surround[i] = 0; + m_samples_main_left[i] = -inp; + m_samples_main_right[i] = inp; + m_samples_main_surround[i] = 0; } } @@ -646,8 +646,8 @@ void AXUCode::SendAUXAndMix(u32 main_auxa_up, u32 auxb_s_up, u32 main_l_dl, u32 // Download buffers and addresses const std::array dl_buffers{ - m_samples_left, - m_samples_right, + m_samples_main_left, + m_samples_main_right, m_samples_auxB_left, m_samples_auxB_right, }; @@ -745,9 +745,9 @@ void AXUCode::DoAXState(PointerWrap& p) p.Do(m_cmdlist); p.Do(m_cmdlist_size); - p.Do(m_samples_left); - p.Do(m_samples_right); - p.Do(m_samples_surround); + p.Do(m_samples_main_left); + p.Do(m_samples_main_right); + p.Do(m_samples_main_surround); p.Do(m_samples_auxA_left); p.Do(m_samples_auxA_right); p.Do(m_samples_auxA_surround); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index a9ddab8e08..9e37b39035 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -82,9 +82,9 @@ protected: }; // 32 * 5 because 32 samples per millisecond, for max 5 milliseconds. - int m_samples_left[32 * 5]{}; - int m_samples_right[32 * 5]{}; - int m_samples_surround[32 * 5]{}; + int m_samples_main_left[32 * 5]{}; + int m_samples_main_right[32 * 5]{}; + int m_samples_main_surround[32 * 5]{}; int m_samples_auxA_left[32 * 5]{}; int m_samples_auxA_right[32 * 5]{}; int m_samples_auxA_surround[32 * 5]{}; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h index bbb8e67770..9ea3184053 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h @@ -9,10 +9,10 @@ namespace DSP::HLE { struct PBMixer { - u16 left; - u16 left_delta; - u16 right; - u16 right_delta; + u16 main_left; + u16 main_left_delta; + u16 main_right; + u16 main_right_delta; u16 auxA_left; u16 auxA_left_delta; @@ -26,8 +26,8 @@ struct PBMixer u16 auxB_surround; u16 auxB_surround_delta; - u16 surround; - u16 surround_delta; + u16 main_surround; + u16 main_surround_delta; u16 auxA_surround; u16 auxA_surround_delta; }; @@ -35,10 +35,10 @@ struct PBMixer struct PBMixerWii { // volume mixing values in .15, 0x8000 = ca. 1.0 - u16 left; - u16 left_delta; - u16 right; - u16 right_delta; + u16 main_left; + u16 main_left_delta; + u16 main_right; + u16 main_right_delta; u16 auxA_left; u16 auxA_left_delta; @@ -57,8 +57,8 @@ struct PBMixerWii u16 auxC_right; u16 auxC_right_delta; - u16 surround; - u16 surround_delta; + u16 main_surround; + u16 main_surround_delta; u16 auxA_surround; u16 auxA_surround_delta; u16 auxB_surround; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h index f40f17cb6d..298adc440e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h @@ -51,9 +51,9 @@ union AXBuffers { struct { - int* left; - int* right; - int* surround; + int* main_left; + int* main_right; + int* main_surround; int* auxA_left; int* auxA_right; @@ -429,11 +429,12 @@ void ProcessVoice(PB_TYPE& pb, const AXBuffers& buffers, u16 count, AXMixControl #define RAMP_ON(C) (0 != (mctrl & MIX_##C##_RAMP)) if (MIX_ON(L)) - MixAdd(buffers.left, samples, count, &pb.mixer.left, &pb.dpop.left, RAMP_ON(L)); + MixAdd(buffers.main_left, samples, count, &pb.mixer.main_left, &pb.dpop.left, RAMP_ON(L)); if (MIX_ON(R)) - MixAdd(buffers.right, samples, count, &pb.mixer.right, &pb.dpop.right, RAMP_ON(R)); + MixAdd(buffers.main_right, samples, count, &pb.mixer.main_right, &pb.dpop.right, RAMP_ON(R)); if (MIX_ON(S)) - MixAdd(buffers.surround, samples, count, &pb.mixer.surround, &pb.dpop.surround, RAMP_ON(S)); + MixAdd(buffers.main_surround, samples, count, &pb.mixer.main_surround, &pb.dpop.surround, + RAMP_ON(S)); if (MIX_ON(AUXA_L)) MixAdd(buffers.auxA_left, samples, count, &pb.mixer.auxA_left, &pb.dpop.auxA_left, diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index a960f5c6c7..e7a50c52cf 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -265,7 +265,7 @@ void AXWiiUCode::SetupProcessing(u32 init_addr) int* ptr; u32 samples; } buffers[] = { - {m_samples_left, 32}, {m_samples_right, 32}, {m_samples_surround, 32}, + {m_samples_main_left, 32}, {m_samples_main_right, 32}, {m_samples_main_surround, 32}, {m_samples_auxA_left, 32}, {m_samples_auxA_right, 32}, {m_samples_auxA_surround, 32}, {m_samples_auxB_left, 32}, {m_samples_auxB_right, 32}, {m_samples_auxB_surround, 32}, {m_samples_auxC_left, 32}, {m_samples_auxC_right, 32}, {m_samples_auxC_surround, 32}, @@ -306,8 +306,8 @@ void AXWiiUCode::AddToLR(u32 val_addr, bool neg) if (neg) val = -val; - m_samples_left[i] += val; - m_samples_right[i] += val; + m_samples_main_left[i] += val; + m_samples_main_right[i] += val; } } @@ -317,12 +317,12 @@ void AXWiiUCode::AddSubToLR(u32 val_addr) for (int i = 0; i < 32 * 3; ++i) { int val = (int)Common::swap32(*ptr++); - m_samples_left[i] += val; + m_samples_main_left[i] += val; } for (int i = 0; i < 32 * 3; ++i) { int val = (int)Common::swap32(*ptr++); - m_samples_right[i] -= val; + m_samples_main_right[i] -= val; } } @@ -453,7 +453,7 @@ void AXWiiUCode::ProcessPBList(u32 pb_addr) while (pb_addr) { - AXBuffers buffers = {{m_samples_left, m_samples_right, m_samples_surround, + AXBuffers buffers = {{m_samples_main_left, m_samples_main_right, m_samples_main_surround, m_samples_auxA_left, m_samples_auxA_right, m_samples_auxA_surround, m_samples_auxB_left, m_samples_auxB_right, m_samples_auxB_surround, m_samples_auxC_left, m_samples_auxC_right, m_samples_auxC_surround, @@ -498,9 +498,9 @@ void AXWiiUCode::MixAUXSamples(int aux_id, u32 write_addr, u32 read_addr, u16 vo m_last_aux_volumes[aux_id] = volume; std::array main_buffers{ - m_samples_left, - m_samples_right, - m_samples_surround, + m_samples_main_left, + m_samples_main_right, + m_samples_main_surround, }; std::array buffers{}; @@ -578,7 +578,8 @@ void AXWiiUCode::UploadAUXMixLRSC(int aux_id, u32* addresses, u16 volume) GenerateVolumeRamp(volume_ramp, m_last_aux_volumes[aux_id], volume, 96); m_last_aux_volumes[aux_id] = volume; - int* mix_dest[4] = {m_samples_left, m_samples_right, m_samples_surround, m_samples_auxC_left}; + int* mix_dest[4] = {m_samples_main_left, m_samples_main_right, m_samples_main_surround, + m_samples_auxC_left}; for (u32 mix_i = 0; mix_i < 4; ++mix_i) { int* dl_ptr = (int*)HLEMemory_Get_Pointer(addresses[2 + mix_i]); @@ -603,7 +604,7 @@ void AXWiiUCode::OutputSamples(u32 lr_addr, u32 surround_addr, u16 volume, bool std::array upload_buffer{}; for (size_t i = 0; i < upload_buffer.size(); ++i) - upload_buffer[i] = Common::swap32(m_samples_surround[i]); + upload_buffer[i] = Common::swap32(m_samples_main_surround[i]); memcpy(HLEMemory_Get_Pointer(surround_addr), upload_buffer.data(), sizeof(upload_buffer)); if (upload_auxc) @@ -617,22 +618,22 @@ void AXWiiUCode::OutputSamples(u32 lr_addr, u32 surround_addr, u16 volume, bool // Clamp internal buffers to 16 bits. for (size_t i = 0; i < volume_ramp.size(); ++i) { - int left = m_samples_left[i]; - int right = m_samples_right[i]; + int left = m_samples_main_left[i]; + int right = m_samples_main_right[i]; // Apply global volume. Cast to s64 to avoid overflow. left = ((s64)left * volume_ramp[i]) >> 15; right = ((s64)right * volume_ramp[i]) >> 15; - m_samples_left[i] = std::clamp(left, -32767, 32767); - m_samples_right[i] = std::clamp(right, -32767, 32767); + m_samples_main_left[i] = std::clamp(left, -32767, 32767); + m_samples_main_right[i] = std::clamp(right, -32767, 32767); } std::array buffer; for (size_t i = 0; i < 3 * 32; ++i) { - buffer[2 * i] = Common::swap16(m_samples_right[i]); - buffer[2 * i + 1] = Common::swap16(m_samples_left[i]); + buffer[2 * i] = Common::swap16(m_samples_main_right[i]); + buffer[2 * i + 1] = Common::swap16(m_samples_main_left[i]); } memcpy(HLEMemory_Get_Pointer(lr_addr), buffer.data(), sizeof(buffer)); From f65b7066f51c7f86eed70122b12cedeebd5fa8b5 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 7 May 2022 12:57:14 +0100 Subject: [PATCH 015/659] AX: put each volume and its ramp delta into a dedicated struct (NFC) --- Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h | 96 ++++++------------- Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h | 10 +- 2 files changed, 32 insertions(+), 74 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h index 9ea3184053..74f1338dec 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h @@ -7,87 +7,45 @@ namespace DSP::HLE { +struct VolumeData +{ + u16 volume; + u16 volume_delta; +}; + struct PBMixer { - u16 main_left; - u16 main_left_delta; - u16 main_right; - u16 main_right_delta; - - u16 auxA_left; - u16 auxA_left_delta; - u16 auxA_right; - u16 auxA_right_delta; - - u16 auxB_left; - u16 auxB_left_delta; - u16 auxB_right; - u16 auxB_right_delta; - - u16 auxB_surround; - u16 auxB_surround_delta; - u16 main_surround; - u16 main_surround_delta; - u16 auxA_surround; - u16 auxA_surround_delta; + VolumeData main_left, main_right; + VolumeData auxA_left, auxA_right; + VolumeData auxB_left, auxB_right; + // This somewhat strange-looking order of surround channels + // allows the ucode to use the 2-channel IROM function mix_two_add() + // when mixing (auxb_s and main_s) or (main_s and auxa_s). + VolumeData auxB_surround; + VolumeData main_surround; + VolumeData auxA_surround; }; struct PBMixerWii { - // volume mixing values in .15, 0x8000 = ca. 1.0 - u16 main_left; - u16 main_left_delta; - u16 main_right; - u16 main_right_delta; - - u16 auxA_left; - u16 auxA_left_delta; - u16 auxA_right; - u16 auxA_right_delta; - - u16 auxB_left; - u16 auxB_left_delta; - u16 auxB_right; - u16 auxB_right_delta; - + VolumeData main_left, main_right; + VolumeData auxA_left, auxA_right; + VolumeData auxB_left, auxB_right; // Note: the following elements usage changes a little in DPL2 mode // TODO: implement and comment it in the mixer - u16 auxC_left; - u16 auxC_left_delta; - u16 auxC_right; - u16 auxC_right_delta; - - u16 main_surround; - u16 main_surround_delta; - u16 auxA_surround; - u16 auxA_surround_delta; - u16 auxB_surround; - u16 auxB_surround_delta; - u16 auxC_surround; - u16 auxC_surround_delta; + VolumeData auxC_left, auxC_right; + VolumeData main_surround; + VolumeData auxA_surround; + VolumeData auxB_surround; + VolumeData auxC_surround; }; struct PBMixerWM { - u16 main0; - u16 main0_delta; - u16 aux0; - u16 aux0_delta; - - u16 main1; - u16 main1_delta; - u16 aux1; - u16 aux1_delta; - - u16 main2; - u16 main2_delta; - u16 aux2; - u16 aux2_delta; - - u16 main3; - u16 main3_delta; - u16 aux3; - u16 aux3_delta; + VolumeData main0, aux0; + VolumeData main1, aux1; + VolumeData main2, aux2; + VolumeData main3, aux3; }; struct PBInitialTimeDelay diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h index 298adc440e..a5fa30f165 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h @@ -361,10 +361,10 @@ void GetInputSamples(PB_TYPE& pb, s16* samples, u16 count, const s16* coeffs) } // Add samples to an output buffer, with optional volume ramping. -void MixAdd(int* out, const s16* input, u32 count, u16* pvol, s16* dpop, bool ramp) +void MixAdd(int* out, const s16* input, u32 count, VolumeData* vd, s16* dpop, bool ramp) { - u16& volume = pvol[0]; - u16 volume_delta = pvol[1]; + u16& volume = vd->volume; + u16 volume_delta = vd->volume_delta; // If volume ramping is disabled, set volume_delta to 0. That way, the // mixing loop can avoid testing if volume ramping is enabled at each step, @@ -411,8 +411,8 @@ void ProcessVoice(PB_TYPE& pb, const AXBuffers& buffers, u16 count, AXMixControl // Apply a global volume ramp using the volume envelope parameters. for (u32 i = 0; i < count; ++i) { - samples[i] = std::clamp(((s32)samples[i] * pb.vol_env.cur_volume) >> 15, -32767, - 32767); // -32768 ? + const s32 sample = ((s32)samples[i] * pb.vol_env.cur_volume) >> 15; + samples[i] = std::clamp(sample, -32767, 32767); // -32768 ? pb.vol_env.cur_volume += pb.vol_env.cur_volume_delta; } From 16eb188f1d0fb276ae40946154a74ecb952a550c Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 7 May 2022 12:37:05 +0200 Subject: [PATCH 016/659] JitArm64: Implement low DCBZ hack JitArm64 port of 76228fa. --- .../PowerPC/JitArm64/JitArm64_LoadStore.cpp | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp index 99253b18f3..2781ba3f65 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp @@ -6,6 +6,7 @@ #include "Common/Arm64Emitter.h" #include "Common/BitSet.h" #include "Common/CommonTypes.h" +#include "Common/ScopeGuard.h" #include "Core/ConfigManager.h" #include "Core/Core.h" @@ -770,7 +771,22 @@ void JitArm64::dcbz(UGeckoInstruction inst) gpr.Lock(ARM64Reg::W0, ARM64Reg::W30); - ARM64Reg addr_reg = ARM64Reg::W0; + Common::ScopeGuard register_guard([&] { gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); }); + + constexpr ARM64Reg addr_reg = ARM64Reg::W0; + constexpr ARM64Reg temp_reg = ARM64Reg::W30; + + // HACK: Don't clear any memory in the [0x8000'0000, 0x8000'8000) region. + FixupBranch end_dcbz_hack; + bool using_dcbz_hack = false; + const auto emit_low_dcbz_hack = [&](ARM64Reg reg) { + if (m_low_dcbz_hack) + { + CMPI2R(reg, 0x8000'8000, temp_reg); + end_dcbz_hack = B(CCFlags::CC_LT); + using_dcbz_hack = true; + } + }; if (a) { @@ -781,6 +797,8 @@ void JitArm64::dcbz(UGeckoInstruction inst) { // full imm_addr u32 imm_addr = gpr.GetImm(b) + gpr.GetImm(a); + if (m_low_dcbz_hack && imm_addr >= 0x8000'0000 && imm_addr < 0x8000'8000) + return; MOVI2R(addr_reg, imm_addr & ~31); } else if (is_imm_a || is_imm_b) @@ -789,12 +807,14 @@ void JitArm64::dcbz(UGeckoInstruction inst) ARM64Reg base = is_imm_a ? gpr.R(b) : gpr.R(a); u32 imm_offset = is_imm_a ? gpr.GetImm(a) : gpr.GetImm(b); ADDI2R(addr_reg, base, imm_offset, addr_reg); + emit_low_dcbz_hack(addr_reg); AND(addr_reg, addr_reg, LogicalImm(~31, 32)); } else { // Both are registers ADD(addr_reg, gpr.R(a), gpr.R(b)); + emit_low_dcbz_hack(addr_reg); AND(addr_reg, addr_reg, LogicalImm(~31, 32)); } } @@ -804,10 +824,13 @@ void JitArm64::dcbz(UGeckoInstruction inst) if (gpr.IsImm(b)) { u32 imm_addr = gpr.GetImm(b); + if (m_low_dcbz_hack && imm_addr >= 0x8000'0000 && imm_addr < 0x8000'8000) + return; MOVI2R(addr_reg, imm_addr & ~31); } else { + emit_low_dcbz_hack(gpr.R(b)); AND(addr_reg, gpr.R(b), LogicalImm(~31, 32)); } } @@ -819,7 +842,8 @@ void JitArm64::dcbz(UGeckoInstruction inst) EmitBackpatchRoutine(BackPatchInfo::FLAG_ZERO_256, jo.fastmem, jo.fastmem, ARM64Reg::W0, EncodeRegTo64(addr_reg), gprs_to_push, fprs_to_push); - gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); + if (using_dcbz_hack) + SetJumpTarget(end_dcbz_hack); } void JitArm64::eieio(UGeckoInstruction inst) From 3b3c60dc4cf8d2fa158accc2c401007439991224 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 7 May 2022 14:21:30 +0200 Subject: [PATCH 017/659] PowerPC: Check page crossing for non-translated reads This fixes a problem where Dolphin could crash if a non-translated read crossed the end of a physical memory region. The same change was applied to WriteToHardware in ecbce0a. --- Source/Core/Core/PowerPC/MMU.cpp | 40 +++++++++++--------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index 869a7a8648..aac5f35054 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -173,6 +173,20 @@ static void GenerateDSIException(u32 effective_address, bool write); template static T ReadFromHardware(u32 em_address) { + const u32 em_address_start_page = em_address & ~(HW_PAGE_SIZE - 1); + const u32 em_address_end_page = (em_address + sizeof(T) - 1) & ~(HW_PAGE_SIZE - 1); + if (em_address_start_page != em_address_end_page) + { + // This could be unaligned down to the byte level... hopefully this is rare, so doing it this + // way isn't too terrible. + // TODO: floats on non-word-aligned boundaries should technically cause alignment exceptions. + // Note that "word" means 32-bit, so paired singles or doubles might still be 32-bit aligned! + u64 var = 0; + for (u32 i = 0; i < sizeof(T); ++i) + var = (var << 8) | ReadFromHardware(em_address + i); + return static_cast(var); + } + if (!never_translate && MSR.DR) { auto translated_addr = TranslateAddress(em_address); @@ -182,35 +196,9 @@ static T ReadFromHardware(u32 em_address) GenerateDSIException(em_address, false); return 0; } - if ((em_address & (HW_PAGE_SIZE - 1)) > HW_PAGE_SIZE - sizeof(T)) - { - // This could be unaligned down to the byte level... hopefully this is rare, so doing it this - // way isn't too terrible. - // TODO: floats on non-word-aligned boundaries should technically cause alignment exceptions. - // Note that "word" means 32-bit, so paired singles or doubles might still be 32-bit aligned! - u32 em_address_next_page = (em_address + sizeof(T) - 1) & ~(HW_PAGE_SIZE - 1); - auto addr_next_page = TranslateAddress(em_address_next_page); - if (!addr_next_page.Success()) - { - if (flag == XCheckTLBFlag::Read) - GenerateDSIException(em_address_next_page, false); - return 0; - } - T var = 0; - u32 addr_translated = translated_addr.address; - for (u32 addr = em_address; addr < em_address + sizeof(T); addr++, addr_translated++) - { - if (addr == em_address_next_page) - addr_translated = addr_next_page.address; - var = (var << 8) | ReadFromHardware(addr_translated); - } - return var; - } em_address = translated_addr.address; } - // TODO: Make sure these are safe for unaligned addresses. - if (Memory::m_pRAM && (em_address & 0xF8000000) == 0x00000000) { // Handle RAM; the masking intentionally discards bits (essentially creating From ed40b439605d0fc509f61f89271a70bc233ad96b Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 7 May 2022 14:32:45 +0200 Subject: [PATCH 018/659] PowerPC: Reorder code in ReadFromHardware This refactorization is done just to match the order that I made WriteToHardware use in 543ed8a. For WriteToHardware, it's important that things like MMIO and gather pipe are handled before we reach a special piece of code that only should get triggered for writes that hit memory directly, but for ReadFromHardware we don't have any code like that. --- Source/Core/Core/PowerPC/MMU.cpp | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index aac5f35054..ab460f1674 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -199,11 +199,27 @@ static T ReadFromHardware(u32 em_address) em_address = translated_addr.address; } + if (flag == XCheckTLBFlag::Read && (em_address & 0xF8000000) == 0x08000000) + { + if (em_address < 0x0c000000) + return EFB_Read(em_address); + else + return static_cast(Memory::mmio_mapping->Read>(em_address)); + } + + // Locked L1 technically doesn't have a fixed address, but games all use 0xE0000000. + if (Memory::m_pL1Cache && (em_address >> 28) == 0xE && + (em_address < (0xE0000000 + Memory::GetL1CacheSize()))) + { + T value; + std::memcpy(&value, &Memory::m_pL1Cache[em_address & 0x0FFFFFFF], sizeof(T)); + return bswap(value); + } + if (Memory::m_pRAM && (em_address & 0xF8000000) == 0x00000000) { // Handle RAM; the masking intentionally discards bits (essentially creating // mirrors of memory). - // TODO: Only the first GetRamSizeReal() is supposed to be backed by actual memory. T value; std::memcpy(&value, &Memory::m_pRAM[em_address & Memory::GetRamMask()], sizeof(T)); return bswap(value); @@ -217,14 +233,6 @@ static T ReadFromHardware(u32 em_address) return bswap(value); } - // Locked L1 technically doesn't have a fixed address, but games all use 0xE0000000. - if (Memory::m_pL1Cache && (em_address >> 28) == 0xE && - (em_address < (0xE0000000 + Memory::GetL1CacheSize()))) - { - T value; - std::memcpy(&value, &Memory::m_pL1Cache[em_address & 0x0FFFFFFF], sizeof(T)); - return bswap(value); - } // In Fake-VMEM mode, we need to map the memory somewhere into // physical memory for BAT translation to work; we currently use // [0x7E000000, 0x80000000). @@ -235,14 +243,6 @@ static T ReadFromHardware(u32 em_address) return bswap(value); } - if (flag == XCheckTLBFlag::Read && (em_address & 0xF8000000) == 0x08000000) - { - if (em_address < 0x0c000000) - return EFB_Read(em_address); - else - return (T)Memory::mmio_mapping->Read::type>(em_address); - } - PanicAlertFmt("Unable to resolve read address {:x} PC {:x}", em_address, PC); return 0; } From 048469f7c2c8548ccec3685ba08883835b22da9f Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 7 May 2022 16:08:30 +0100 Subject: [PATCH 019/659] AX: fix missing ramp of main surround channel --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 95a12765b2..77a3587ef1 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -307,6 +307,8 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) if (mixer_control & 0x0008) { ret |= MIX_L_RAMP | MIX_R_RAMP; + if (ret & MIX_S) + ret |= MIX_S_RAMP; if (ret & MIX_AUXA_L) ret |= MIX_AUXA_L_RAMP | MIX_AUXA_R_RAMP; if (ret & MIX_AUXB_L) From e6e283a11c3f692bc0206d8ae0ecfe09778c86b0 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 7 May 2022 14:44:49 +0100 Subject: [PATCH 020/659] AX: rename main depop fields and mixer flags --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 27 ++++--------- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 36 +++++++++-------- Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h | 12 +++--- Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h | 40 +++++++++++++++---- Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp | 10 ++--- 5 files changed, 72 insertions(+), 53 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 77a3587ef1..43551712f8 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -291,44 +291,33 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) // TODO: find other UCode versions with different mixer_control values if (m_crc == 0x4e8a8b21) { - ret |= MIX_L | MIX_R; + ret |= MIX_MAIN_L | MIX_MAIN_R; if (mixer_control & 0x0001) ret |= MIX_AUXA_L | MIX_AUXA_R; if (mixer_control & 0x0002) ret |= MIX_AUXB_L | MIX_AUXB_R; if (mixer_control & 0x0004) { - ret |= MIX_S; + ret |= MIX_MAIN_S; if (ret & MIX_AUXA_L) ret |= MIX_AUXA_S; if (ret & MIX_AUXB_L) ret |= MIX_AUXB_S; } if (mixer_control & 0x0008) - { - ret |= MIX_L_RAMP | MIX_R_RAMP; - if (ret & MIX_S) - ret |= MIX_S_RAMP; - if (ret & MIX_AUXA_L) - ret |= MIX_AUXA_L_RAMP | MIX_AUXA_R_RAMP; - if (ret & MIX_AUXB_L) - ret |= MIX_AUXB_L_RAMP | MIX_AUXB_R_RAMP; - if (ret & MIX_AUXA_S) - ret |= MIX_AUXA_S_RAMP; - if (ret & MIX_AUXB_S) - ret |= MIX_AUXB_S_RAMP; - } + ret |= MIX_ALL_RAMPS; } else { + // newer GameCube ucodes if (mixer_control & 0x0001) - ret |= MIX_L; + ret |= MIX_MAIN_L; if (mixer_control & 0x0002) - ret |= MIX_R; + ret |= MIX_MAIN_R; if (mixer_control & 0x0004) - ret |= MIX_S; + ret |= MIX_MAIN_S; if (mixer_control & 0x0008) - ret |= MIX_L_RAMP | MIX_R_RAMP | MIX_S_RAMP; + ret |= MIX_MAIN_L_RAMP | MIX_MAIN_R_RAMP | MIX_MAIN_S_RAMP; if (mixer_control & 0x0010) ret |= MIX_AUXA_L; if (mixer_control & 0x0020) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index 9e37b39035..1405379cd0 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -28,33 +28,37 @@ class DSPHLE; // mixer_control value to an AXMixControl bitfield. enum AXMixControl { - MIX_L = 0x000001, - MIX_L_RAMP = 0x000002, - MIX_R = 0x000004, - MIX_R_RAMP = 0x000008, - MIX_S = 0x000010, - MIX_S_RAMP = 0x000020, + // clang-format off + MIX_MAIN_L = 0x000001, + MIX_MAIN_L_RAMP = 0x000002, + MIX_MAIN_R = 0x000004, + MIX_MAIN_R_RAMP = 0x000008, + MIX_MAIN_S = 0x000010, + MIX_MAIN_S_RAMP = 0x000020, - MIX_AUXA_L = 0x000040, + MIX_AUXA_L = 0x000040, MIX_AUXA_L_RAMP = 0x000080, - MIX_AUXA_R = 0x000100, + MIX_AUXA_R = 0x000100, MIX_AUXA_R_RAMP = 0x000200, - MIX_AUXA_S = 0x000400, + MIX_AUXA_S = 0x000400, MIX_AUXA_S_RAMP = 0x000800, - MIX_AUXB_L = 0x001000, + MIX_AUXB_L = 0x001000, MIX_AUXB_L_RAMP = 0x002000, - MIX_AUXB_R = 0x004000, + MIX_AUXB_R = 0x004000, MIX_AUXB_R_RAMP = 0x008000, - MIX_AUXB_S = 0x010000, + MIX_AUXB_S = 0x010000, MIX_AUXB_S_RAMP = 0x020000, - MIX_AUXC_L = 0x040000, + MIX_AUXC_L = 0x040000, MIX_AUXC_L_RAMP = 0x080000, - MIX_AUXC_R = 0x100000, + MIX_AUXC_R = 0x100000, MIX_AUXC_R_RAMP = 0x200000, - MIX_AUXC_S = 0x400000, - MIX_AUXC_S_RAMP = 0x800000 + MIX_AUXC_S = 0x400000, + MIX_AUXC_S_RAMP = 0x800000, + + MIX_ALL_RAMPS = 0xAAAAAA, + // clang-format on }; class AXUCode : public UCodeInterface diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h index 74f1338dec..e34ffcc323 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXStructs.h @@ -75,32 +75,32 @@ struct PBUpdates // and ramped down on a per-sample basis to provide a gentle "roll off." struct PBDpop { - s16 left; + s16 main_left; s16 auxA_left; s16 auxB_left; - s16 right; + s16 main_right; s16 auxA_right; s16 auxB_right; - s16 surround; + s16 main_surround; s16 auxA_surround; s16 auxB_surround; }; struct PBDpopWii { - s16 left; + s16 main_left; s16 auxA_left; s16 auxB_left; s16 auxC_left; - s16 right; + s16 main_right; s16 auxA_right; s16 auxB_right; s16 auxC_right; - s16 surround; + s16 main_surround; s16 auxA_surround; s16 auxB_surround; s16 auxC_surround; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h index a5fa30f165..2ff03c347d 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h @@ -428,44 +428,70 @@ void ProcessVoice(PB_TYPE& pb, const AXBuffers& buffers, u16 count, AXMixControl #define MIX_ON(C) (0 != (mctrl & MIX_##C)) #define RAMP_ON(C) (0 != (mctrl & MIX_##C##_RAMP)) - if (MIX_ON(L)) - MixAdd(buffers.main_left, samples, count, &pb.mixer.main_left, &pb.dpop.left, RAMP_ON(L)); - if (MIX_ON(R)) - MixAdd(buffers.main_right, samples, count, &pb.mixer.main_right, &pb.dpop.right, RAMP_ON(R)); - if (MIX_ON(S)) - MixAdd(buffers.main_surround, samples, count, &pb.mixer.main_surround, &pb.dpop.surround, - RAMP_ON(S)); + if (MIX_ON(MAIN_L)) + { + MixAdd(buffers.main_left, samples, count, &pb.mixer.main_left, &pb.dpop.main_left, + RAMP_ON(MAIN_L)); + } + if (MIX_ON(MAIN_R)) + { + MixAdd(buffers.main_right, samples, count, &pb.mixer.main_right, &pb.dpop.main_right, + RAMP_ON(MAIN_R)); + } + if (MIX_ON(MAIN_S)) + { + MixAdd(buffers.main_surround, samples, count, &pb.mixer.main_surround, &pb.dpop.main_surround, + RAMP_ON(MAIN_S)); + } if (MIX_ON(AUXA_L)) + { MixAdd(buffers.auxA_left, samples, count, &pb.mixer.auxA_left, &pb.dpop.auxA_left, RAMP_ON(AUXA_L)); + } if (MIX_ON(AUXA_R)) + { MixAdd(buffers.auxA_right, samples, count, &pb.mixer.auxA_right, &pb.dpop.auxA_right, RAMP_ON(AUXA_R)); + } if (MIX_ON(AUXA_S)) + { MixAdd(buffers.auxA_surround, samples, count, &pb.mixer.auxA_surround, &pb.dpop.auxA_surround, RAMP_ON(AUXA_S)); + } if (MIX_ON(AUXB_L)) + { MixAdd(buffers.auxB_left, samples, count, &pb.mixer.auxB_left, &pb.dpop.auxB_left, RAMP_ON(AUXB_L)); + } if (MIX_ON(AUXB_R)) + { MixAdd(buffers.auxB_right, samples, count, &pb.mixer.auxB_right, &pb.dpop.auxB_right, RAMP_ON(AUXB_R)); + } if (MIX_ON(AUXB_S)) + { MixAdd(buffers.auxB_surround, samples, count, &pb.mixer.auxB_surround, &pb.dpop.auxB_surround, RAMP_ON(AUXB_S)); + } #ifdef AX_WII if (MIX_ON(AUXC_L)) + { MixAdd(buffers.auxC_left, samples, count, &pb.mixer.auxC_left, &pb.dpop.auxC_left, RAMP_ON(AUXC_L)); + } if (MIX_ON(AUXC_R)) + { MixAdd(buffers.auxC_right, samples, count, &pb.mixer.auxC_right, &pb.dpop.auxC_right, RAMP_ON(AUXC_R)); + } if (MIX_ON(AUXC_S)) + { MixAdd(buffers.auxC_surround, samples, count, &pb.mixer.auxC_surround, &pb.dpop.auxC_surround, RAMP_ON(AUXC_S)); + } #endif #undef MIX_ON diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index e7a50c52cf..96a84aa7e3 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -331,15 +331,15 @@ AXMixControl AXWiiUCode::ConvertMixerControl(u32 mixer_control) u32 ret = 0; if (mixer_control & 0x00000001) - ret |= MIX_L; + ret |= MIX_MAIN_L; if (mixer_control & 0x00000002) - ret |= MIX_R; + ret |= MIX_MAIN_R; if (mixer_control & 0x00000004) - ret |= MIX_L_RAMP | MIX_R_RAMP; + ret |= MIX_MAIN_L_RAMP | MIX_MAIN_R_RAMP; if (mixer_control & 0x00000008) - ret |= MIX_S; + ret |= MIX_MAIN_S; if (mixer_control & 0x00000010) - ret |= MIX_S_RAMP; + ret |= MIX_MAIN_S_RAMP; if (mixer_control & 0x00010000) ret |= MIX_AUXA_L; if (mixer_control & 0x00020000) From b6b70304829c16fad7b2e48c42d0110d732404dd Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 7 May 2022 19:37:44 +0200 Subject: [PATCH 021/659] PowerPC: Add HW_PAGE_MASK constant --- Source/Core/Core/PowerPC/MMU.cpp | 8 ++++---- Source/Core/Core/PowerPC/MMU.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index ab460f1674..6c0867deb6 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -173,8 +173,8 @@ static void GenerateDSIException(u32 effective_address, bool write); template static T ReadFromHardware(u32 em_address) { - const u32 em_address_start_page = em_address & ~(HW_PAGE_SIZE - 1); - const u32 em_address_end_page = (em_address + sizeof(T) - 1) & ~(HW_PAGE_SIZE - 1); + const u32 em_address_start_page = em_address & ~HW_PAGE_MASK; + const u32 em_address_end_page = (em_address + sizeof(T) - 1) & ~HW_PAGE_MASK; if (em_address_start_page != em_address_end_page) { // This could be unaligned down to the byte level... hopefully this is rare, so doing it this @@ -252,8 +252,8 @@ static void WriteToHardware(u32 em_address, const u32 data, const u32 size) { DEBUG_ASSERT(size <= 4); - const u32 em_address_start_page = em_address & ~(HW_PAGE_SIZE - 1); - const u32 em_address_end_page = (em_address + size - 1) & ~(HW_PAGE_SIZE - 1); + const u32 em_address_start_page = em_address & ~HW_PAGE_MASK; + const u32 em_address_end_page = (em_address + size - 1) & ~HW_PAGE_MASK; if (em_address_start_page != em_address_end_page) { // The write crosses a page boundary. Break it up into two writes. diff --git a/Source/Core/Core/PowerPC/MMU.h b/Source/Core/Core/PowerPC/MMU.h index afe36a9875..726e861f62 100644 --- a/Source/Core/Core/PowerPC/MMU.h +++ b/Source/Core/Core/PowerPC/MMU.h @@ -215,6 +215,7 @@ inline bool TranslateBatAddess(const BatTable& bat_table, u32* address, bool* wi } constexpr size_t HW_PAGE_SIZE = 4096; +constexpr size_t HW_PAGE_MASK = HW_PAGE_SIZE - 1; constexpr u32 HW_PAGE_INDEX_SHIFT = 12; constexpr u32 HW_PAGE_INDEX_MASK = 0x3f; From 1e033a4f73e8d413cf88dc576db81e357978e32a Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 8 May 2022 00:48:30 -0700 Subject: [PATCH 022/659] Qt: hide balloon tooltip when parent gets hidden fixes balloon remaining onscreen when parent gets hidden via escape key for example. --- .../Config/ToolTipControls/ToolTipWidget.h | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h b/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h index 127a708aa6..bd4b0fb6a2 100644 --- a/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h +++ b/Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h @@ -33,15 +33,8 @@ private: m_timer_id = this->startTimer(TOOLTIP_DELAY); } - void leaveEvent(QEvent* event) override - { - if (m_timer_id) - { - this->killTimer(*m_timer_id); - m_timer_id.reset(); - } - BalloonTip::HideBalloon(); - } + void leaveEvent(QEvent* event) override { KillAndHide(); } + void hideEvent(QHideEvent* event) override { KillAndHide(); } void timerEvent(QTimerEvent* event) override { @@ -54,6 +47,16 @@ private: virtual QPoint GetToolTipPosition() const = 0; + void KillAndHide() + { + if (m_timer_id) + { + this->killTimer(*m_timer_id); + m_timer_id.reset(); + } + BalloonTip::HideBalloon(); + } + std::optional m_timer_id; QString m_title; QString m_description; From 1d224d1da52952f921fd90ec546db2c53fa1b8d3 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 19 Apr 2022 00:39:37 +0200 Subject: [PATCH 023/659] Qt/GameCubePane: Don't trigger config change events when populating GUI. --- .../Core/DolphinQt/Settings/GameCubePane.cpp | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp index 294f711e54..208535b8ae 100644 --- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp +++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp @@ -37,6 +37,7 @@ #include "DolphinQt/QtUtils/DolphinFileDialog.h" #include "DolphinQt/QtUtils/ModalMessageBox.h" #include "DolphinQt/QtUtils/NonDefaultQPushButton.h" +#include "DolphinQt/QtUtils/SignalBlocking.h" #include "DolphinQt/Settings.h" #include "DolphinQt/Settings/BroadbandAdapterSettingsDialog.h" @@ -438,9 +439,9 @@ void GameCubePane::BrowseGBASaves() void GameCubePane::LoadSettings() { // IPL Settings - m_skip_main_menu->setChecked(Config::Get(Config::MAIN_SKIP_IPL)); - m_language_combo->setCurrentIndex( - m_language_combo->findData(Config::Get(Config::MAIN_GC_LANGUAGE))); + SignalBlocking(m_skip_main_menu)->setChecked(Config::Get(Config::MAIN_SKIP_IPL)); + SignalBlocking(m_language_combo) + ->setCurrentIndex(m_language_combo->findData(Config::Get(Config::MAIN_GC_LANGUAGE))); bool have_menu = false; @@ -461,22 +462,26 @@ void GameCubePane::LoadSettings() // Device Settings for (ExpansionInterface::Slot slot : ExpansionInterface::SLOTS) { - QSignalBlocker blocker(m_slot_combos[slot]); const ExpansionInterface::EXIDeviceType exi_device = Config::Get(Config::GetInfoForEXIDevice(slot)); - m_slot_combos[slot]->setCurrentIndex( - m_slot_combos[slot]->findData(static_cast(exi_device))); + SignalBlocking(m_slot_combos[slot]) + ->setCurrentIndex(m_slot_combos[slot]->findData(static_cast(exi_device))); UpdateButton(slot); } #ifdef HAS_LIBMGBA // GBA Settings - m_gba_threads->setChecked(Config::Get(Config::MAIN_GBA_THREADS)); - m_gba_bios_edit->setText(QString::fromStdString(File::GetUserPath(F_GBABIOS_IDX))); - m_gba_save_rom_path->setChecked(Config::Get(Config::MAIN_GBA_SAVES_IN_ROM_PATH)); - m_gba_saves_edit->setText(QString::fromStdString(File::GetUserPath(D_GBASAVES_IDX))); + SignalBlocking(m_gba_threads)->setChecked(Config::Get(Config::MAIN_GBA_THREADS)); + SignalBlocking(m_gba_bios_edit) + ->setText(QString::fromStdString(File::GetUserPath(F_GBABIOS_IDX))); + SignalBlocking(m_gba_save_rom_path)->setChecked(Config::Get(Config::MAIN_GBA_SAVES_IN_ROM_PATH)); + SignalBlocking(m_gba_saves_edit) + ->setText(QString::fromStdString(File::GetUserPath(D_GBASAVES_IDX))); for (size_t i = 0; i < m_gba_rom_edits.size(); ++i) - m_gba_rom_edits[i]->setText(QString::fromStdString(Config::Get(Config::MAIN_GBA_ROM_PATHS[i]))); + { + SignalBlocking(m_gba_rom_edits[i]) + ->setText(QString::fromStdString(Config::Get(Config::MAIN_GBA_ROM_PATHS[i]))); + } #endif } From e2dee9c3f807bb98b54e9558a219bd4e0ae596c4 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 19 Apr 2022 00:25:35 +0200 Subject: [PATCH 024/659] Qt/InterfacePane: Don't trigger config change events when populating GUI. --- .../Core/DolphinQt/Settings/InterfacePane.cpp | 59 +++++++++++-------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/InterfacePane.cpp b/Source/Core/DolphinQt/Settings/InterfacePane.cpp index db95fb308c..d96adcf8b4 100644 --- a/Source/Core/DolphinQt/Settings/InterfacePane.cpp +++ b/Source/Core/DolphinQt/Settings/InterfacePane.cpp @@ -23,6 +23,7 @@ #include "Core/Config/UISettings.h" #include "DolphinQt/QtUtils/ModalMessageBox.h" +#include "DolphinQt/QtUtils/SignalBlocking.h" #include "DolphinQt/Settings.h" #include "UICommon/GameFile.h" @@ -237,21 +238,24 @@ void InterfacePane::ConnectLayout() void InterfacePane::LoadConfig() { - m_checkbox_use_builtin_title_database->setChecked( - Config::Get(Config::MAIN_USE_BUILT_IN_TITLE_DATABASE)); - m_checkbox_show_debugging_ui->setChecked(Settings::Instance().IsDebugModeEnabled()); - m_combobox_language->setCurrentIndex(m_combobox_language->findData( - QString::fromStdString(Config::Get(Config::MAIN_INTERFACE_LANGUAGE)))); - m_combobox_theme->setCurrentIndex( - m_combobox_theme->findText(QString::fromStdString(Config::Get(Config::MAIN_THEME_NAME)))); + SignalBlocking(m_checkbox_use_builtin_title_database) + ->setChecked(Config::Get(Config::MAIN_USE_BUILT_IN_TITLE_DATABASE)); + SignalBlocking(m_checkbox_show_debugging_ui) + ->setChecked(Settings::Instance().IsDebugModeEnabled()); + SignalBlocking(m_combobox_language) + ->setCurrentIndex(m_combobox_language->findData( + QString::fromStdString(Config::Get(Config::MAIN_INTERFACE_LANGUAGE)))); + SignalBlocking(m_combobox_theme) + ->setCurrentIndex( + m_combobox_theme->findText(QString::fromStdString(Config::Get(Config::MAIN_THEME_NAME)))); const QString userstyle = Settings::Instance().GetCurrentUserStyle(); const int index = m_combobox_userstyle->findData(QFileInfo(userstyle).fileName()); if (index > 0) - m_combobox_userstyle->setCurrentIndex(index); + SignalBlocking(m_combobox_userstyle)->setCurrentIndex(index); - m_checkbox_use_userstyle->setChecked(Settings::Instance().AreUserStylesEnabled()); + SignalBlocking(m_checkbox_use_userstyle)->setChecked(Settings::Instance().AreUserStylesEnabled()); const bool visible = m_checkbox_use_userstyle->isChecked(); @@ -259,23 +263,28 @@ void InterfacePane::LoadConfig() m_label_userstyle->setVisible(visible); // Render Window Options - m_checkbox_top_window->setChecked(Settings::Instance().IsKeepWindowOnTopEnabled()); - m_checkbox_confirm_on_stop->setChecked(Config::Get(Config::MAIN_CONFIRM_ON_STOP)); - m_checkbox_use_panic_handlers->setChecked(Config::Get(Config::MAIN_USE_PANIC_HANDLERS)); - m_checkbox_enable_osd->setChecked(Config::Get(Config::MAIN_OSD_MESSAGES)); - m_checkbox_show_active_title->setChecked(Config::Get(Config::MAIN_SHOW_ACTIVE_TITLE)); - m_checkbox_pause_on_focus_lost->setChecked(Config::Get(Config::MAIN_PAUSE_ON_FOCUS_LOST)); - m_checkbox_use_covers->setChecked(Config::Get(Config::MAIN_USE_GAME_COVERS)); - m_checkbox_focused_hotkeys->setChecked(Config::Get(Config::MAIN_FOCUSED_HOTKEYS)); - m_radio_cursor_visible_movement->setChecked(Settings::Instance().GetCursorVisibility() == - Config::ShowCursor::OnMovement); - m_radio_cursor_visible_always->setChecked(Settings::Instance().GetCursorVisibility() == - Config::ShowCursor::Constantly); - m_radio_cursor_visible_never->setChecked(Settings::Instance().GetCursorVisibility() == - Config::ShowCursor::Never); + SignalBlocking(m_checkbox_top_window) + ->setChecked(Settings::Instance().IsKeepWindowOnTopEnabled()); + SignalBlocking(m_checkbox_confirm_on_stop)->setChecked(Config::Get(Config::MAIN_CONFIRM_ON_STOP)); + SignalBlocking(m_checkbox_use_panic_handlers) + ->setChecked(Config::Get(Config::MAIN_USE_PANIC_HANDLERS)); + SignalBlocking(m_checkbox_enable_osd)->setChecked(Config::Get(Config::MAIN_OSD_MESSAGES)); + SignalBlocking(m_checkbox_show_active_title) + ->setChecked(Config::Get(Config::MAIN_SHOW_ACTIVE_TITLE)); + SignalBlocking(m_checkbox_pause_on_focus_lost) + ->setChecked(Config::Get(Config::MAIN_PAUSE_ON_FOCUS_LOST)); + SignalBlocking(m_checkbox_use_covers)->setChecked(Config::Get(Config::MAIN_USE_GAME_COVERS)); + SignalBlocking(m_checkbox_focused_hotkeys)->setChecked(Config::Get(Config::MAIN_FOCUSED_HOTKEYS)); + SignalBlocking(m_radio_cursor_visible_movement) + ->setChecked(Settings::Instance().GetCursorVisibility() == Config::ShowCursor::OnMovement); + SignalBlocking(m_radio_cursor_visible_always) + ->setChecked(Settings::Instance().GetCursorVisibility() == Config::ShowCursor::Constantly); + SignalBlocking(m_radio_cursor_visible_never) + ->setChecked(Settings::Instance().GetCursorVisibility() == Config::ShowCursor::Never); - m_checkbox_lock_mouse->setChecked(Settings::Instance().GetLockCursor()); - m_checkbox_disable_screensaver->setChecked(Config::Get(Config::MAIN_DISABLE_SCREENSAVER)); + SignalBlocking(m_checkbox_lock_mouse)->setChecked(Settings::Instance().GetLockCursor()); + SignalBlocking(m_checkbox_disable_screensaver) + ->setChecked(Config::Get(Config::MAIN_DISABLE_SCREENSAVER)); } void InterfacePane::OnSaveConfig() From 02ef946e8112d00bbe626bd90d25db6ae1e6d568 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 18 Apr 2022 03:10:12 +0200 Subject: [PATCH 025/659] HW/Memmap: Refuse to load savestate if memory settings are different. --- Source/Core/Core/HW/Memmap.cpp | 51 +++++++++++++++++++++++++++++----- Source/Core/Core/State.cpp | 2 +- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/HW/Memmap.cpp b/Source/Core/Core/HW/Memmap.cpp index 8a2d4897e3..8f98ffd7b5 100644 --- a/Source/Core/Core/HW/Memmap.cpp +++ b/Source/Core/Core/HW/Memmap.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include "Common/ChunkFile.h" #include "Common/CommonTypes.h" @@ -21,6 +22,7 @@ #include "Common/Swap.h" #include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" +#include "Core/Core.h" #include "Core/HW/AudioInterface.h" #include "Core/HW/DSP.h" #include "Core/HW/DVD/DVDInterface.h" @@ -394,15 +396,50 @@ void UpdateLogicalMemory(const PowerPC::BatTable& dbat_table) void DoState(PointerWrap& p) { - bool wii = SConfig::GetInstance().bWii; - p.DoArray(m_pRAM, GetRamSize()); - p.DoArray(m_pL1Cache, GetL1CacheSize()); + const u32 current_ram_size = GetRamSize(); + const u32 current_l1_cache_size = GetL1CacheSize(); + const bool current_have_fake_vmem = !!m_pFakeVMEM; + const u32 current_fake_vmem_size = current_have_fake_vmem ? GetFakeVMemSize() : 0; + const bool current_have_exram = !!m_pEXRAM; + const u32 current_exram_size = current_have_exram ? GetExRamSize() : 0; + + u32 state_ram_size = current_ram_size; + u32 state_l1_cache_size = current_l1_cache_size; + bool state_have_fake_vmem = current_have_fake_vmem; + u32 state_fake_vmem_size = current_fake_vmem_size; + bool state_have_exram = current_have_exram; + u32 state_exram_size = current_exram_size; + + p.Do(state_ram_size); + p.Do(state_l1_cache_size); + p.Do(state_have_fake_vmem); + p.Do(state_fake_vmem_size); + p.Do(state_have_exram); + p.Do(state_exram_size); + + // If we're loading a savestate and any of the above differs between the savestate and the current + // state, cancel the load. This is technically possible to support but would require a bunch of + // reinitialization of things that depend on these. + if (std::tie(state_ram_size, state_l1_cache_size, state_have_fake_vmem, state_fake_vmem_size, + state_have_exram, state_exram_size) != + std::tie(current_ram_size, current_l1_cache_size, current_have_fake_vmem, + current_fake_vmem_size, current_have_exram, current_exram_size)) + { + Core::DisplayMessage("State is incompatible with current memory settings (MMU and/or memory " + "overrides). Aborting load state.", + 3000); + p.SetMode(PointerWrap::MODE_VERIFY); + return; + } + + p.DoArray(m_pRAM, current_ram_size); + p.DoArray(m_pL1Cache, current_l1_cache_size); p.DoMarker("Memory RAM"); - if (m_pFakeVMEM) - p.DoArray(m_pFakeVMEM, GetFakeVMemSize()); + if (current_have_fake_vmem) + p.DoArray(m_pFakeVMEM, current_fake_vmem_size); p.DoMarker("Memory FakeVMEM"); - if (wii) - p.DoArray(m_pEXRAM, GetExRamSize()); + if (current_have_exram) + p.DoArray(m_pEXRAM, current_exram_size); p.DoMarker("Memory EXRAM"); } diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 71e8642f06..35887bcd48 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 139; // Last changed in PR 8350 +constexpr u32 STATE_VERSION = 140; // Last changed in PR 10591 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 0e1e2323ea9bbe84c1be084fe4c5554c89ef93c6 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 26 Apr 2022 10:52:13 +0200 Subject: [PATCH 026/659] Qt/MemoryViewWidget: Keyboard navigation should observe the number of bytes per row instead of assuming 16. --- Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index cbd45c94a7..eabec94872 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -471,19 +471,19 @@ void MemoryViewWidget::keyPressEvent(QKeyEvent* event) switch (event->key()) { case Qt::Key_Up: - m_address -= 16; + m_address -= m_bytes_per_row; Update(); return; case Qt::Key_Down: - m_address += 16; + m_address += m_bytes_per_row; Update(); return; case Qt::Key_PageUp: - m_address -= rowCount() * 16; + m_address -= rowCount() * m_bytes_per_row; Update(); return; case Qt::Key_PageDown: - m_address += rowCount() * 16; + m_address += rowCount() * m_bytes_per_row; Update(); return; default: From 4e153212a06ad5583ed1724ca25346640f6199f4 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 25 Apr 2022 07:03:26 +0200 Subject: [PATCH 027/659] Qt/MemoryViewWidget: Convert into QWidget that has the table as a member. --- .../DolphinQt/Debugger/MemoryViewWidget.cpp | 226 ++++++++++-------- .../DolphinQt/Debugger/MemoryViewWidget.h | 14 +- 2 files changed, 130 insertions(+), 110 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index eabec94872..19b29c3fea 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -5,10 +5,12 @@ #include #include +#include #include #include #include #include +#include #include #include @@ -32,20 +34,95 @@ constexpr auto USER_ROLE_IS_ROW_BREAKPOINT_CELL = Qt::UserRole; constexpr auto USER_ROLE_CELL_ADDRESS = Qt::UserRole + 1; constexpr auto USER_ROLE_HAS_VALUE = Qt::UserRole + 2; -MemoryViewWidget::MemoryViewWidget(QWidget* parent) : QTableWidget(parent) +class MemoryViewTable final : public QTableWidget { - horizontalHeader()->hide(); - verticalHeader()->hide(); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setShowGrid(false); +public: + explicit MemoryViewTable(MemoryViewWidget* parent) : QTableWidget(parent), m_view(parent) + { + horizontalHeader()->hide(); + verticalHeader()->hide(); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setShowGrid(false); + setContextMenuPolicy(Qt::CustomContextMenu); - setContextMenuPolicy(Qt::CustomContextMenu); + connect(this, &MemoryViewTable::customContextMenuRequested, m_view, + &MemoryViewWidget::OnContextMenu); + } + + void resizeEvent(QResizeEvent*) override { m_view->Update(); } + + void keyPressEvent(QKeyEvent* event) override + { + switch (event->key()) + { + case Qt::Key_Up: + m_view->m_address -= m_view->m_bytes_per_row; + m_view->Update(); + return; + case Qt::Key_Down: + m_view->m_address += m_view->m_bytes_per_row; + m_view->Update(); + return; + case Qt::Key_PageUp: + m_view->m_address -= this->rowCount() * m_view->m_bytes_per_row; + m_view->Update(); + return; + case Qt::Key_PageDown: + m_view->m_address += this->rowCount() * m_view->m_bytes_per_row; + m_view->Update(); + return; + default: + QWidget::keyPressEvent(event); + break; + } + } + + void wheelEvent(QWheelEvent* event) override + { + auto delta = + -static_cast(std::round((event->angleDelta().y() / (SCROLL_FRACTION_DEGREES * 8)))); + + if (delta == 0) + return; + + m_view->m_address += delta * m_view->m_bytes_per_row; + m_view->Update(); + } + + void mousePressEvent(QMouseEvent* event) override + { + if (event->button() != Qt::LeftButton) + return; + + auto* item = this->itemAt(event->pos()); + if (!item) + return; + + const u32 address = item->data(USER_ROLE_CELL_ADDRESS).toUInt(); + if (item->data(USER_ROLE_IS_ROW_BREAKPOINT_CELL).toBool()) + m_view->ToggleBreakpoint(address, true); + else + m_view->SetAddress(address); + m_view->Update(); + } + +private: + MemoryViewWidget* m_view; +}; + +MemoryViewWidget::MemoryViewWidget(QWidget* parent) : QWidget(parent) +{ + auto* layout = new QHBoxLayout(); + layout->setContentsMargins(0, 0, 0, 0); + + m_table = new MemoryViewTable(this); + layout->addWidget(m_table); + + this->setLayout(layout); connect(&Settings::Instance(), &Settings::DebugFontChanged, this, &MemoryViewWidget::UpdateFont); connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this] { Update(); }); connect(Host::GetInstance(), &Host::UpdateDisasmDialog, this, &MemoryViewWidget::Update); - connect(this, &MemoryViewWidget::customContextMenuRequested, this, - &MemoryViewWidget::OnContextMenu); connect(&Settings::Instance(), &Settings::ThemeChanged, this, &MemoryViewWidget::Update); // Also calls update. @@ -64,7 +141,7 @@ void MemoryViewWidget::UpdateFont() #else m_font_width = fm.width(QLatin1Char('0')); #endif - setFont(Settings::Instance().GetDebugFont()); + m_table->setFont(Settings::Instance().GetDebugFont()); Update(); } @@ -129,7 +206,7 @@ constexpr int GetCharacterCount(MemoryViewWidget::Type type) void MemoryViewWidget::Update() { - clearSelection(); + m_table->clearSelection(); u32 address = m_address; address = Common::AlignDown(address, m_alignment); @@ -137,28 +214,29 @@ void MemoryViewWidget::Update() const int data_columns = m_bytes_per_row / GetTypeSize(m_type); if (m_dual_view) - setColumnCount(2 + 2 * data_columns); + m_table->setColumnCount(2 + 2 * data_columns); else - setColumnCount(2 + data_columns); + m_table->setColumnCount(2 + data_columns); - if (rowCount() == 0) - setRowCount(1); + if (m_table->rowCount() == 0) + m_table->setRowCount(1); // This sets all row heights and determines horizontal ascii spacing. - verticalHeader()->setDefaultSectionSize(m_font_vspace - 1); - verticalHeader()->setMinimumSectionSize(m_font_vspace - 1); - horizontalHeader()->setMinimumSectionSize(m_font_width * 2); + m_table->verticalHeader()->setDefaultSectionSize(m_font_vspace - 1); + m_table->verticalHeader()->setMinimumSectionSize(m_font_vspace - 1); + m_table->horizontalHeader()->setMinimumSectionSize(m_font_width * 2); const AddressSpace::Accessors* accessors = AddressSpace::GetAccessors(m_address_space); // Calculate (roughly) how many rows will fit in our table - int rows = std::round((height() / static_cast(rowHeight(0))) - 0.25); + const int rows = + std::round((m_table->height() / static_cast(m_table->rowHeight(0))) - 0.25); - setRowCount(rows); + m_table->setRowCount(rows); for (int i = 0; i < rows; i++) { - u32 row_address = address - ((rowCount() / 2) * m_bytes_per_row) + i * m_bytes_per_row; + u32 row_address = address - ((m_table->rowCount() / 2) * m_bytes_per_row) + i * m_bytes_per_row; auto* bp_item = new QTableWidgetItem; bp_item->setFlags(Qt::ItemIsEnabled); @@ -166,7 +244,7 @@ void MemoryViewWidget::Update() bp_item->setData(USER_ROLE_CELL_ADDRESS, row_address); bp_item->setData(USER_ROLE_HAS_VALUE, false); - setItem(i, 0, bp_item); + m_table->setItem(i, 0, bp_item); auto* row_item = new QTableWidgetItem(QStringLiteral("%1").arg(row_address, 8, 16, QLatin1Char('0'))); @@ -176,14 +254,14 @@ void MemoryViewWidget::Update() row_item->setData(USER_ROLE_CELL_ADDRESS, row_address); row_item->setData(USER_ROLE_HAS_VALUE, false); - setItem(i, 1, row_item); + m_table->setItem(i, 1, row_item); if (row_address == address) row_item->setSelected(true); if (Core::GetState() != Core::State::Paused || !accessors->IsValidAddress(row_address)) { - for (int c = 2; c < columnCount(); c++) + for (int c = 2; c < m_table->columnCount(); c++) { auto* item = new QTableWidgetItem(QStringLiteral("-")); item->setFlags(Qt::ItemIsEnabled); @@ -191,7 +269,7 @@ void MemoryViewWidget::Update() item->setData(USER_ROLE_CELL_ADDRESS, row_address); item->setData(USER_ROLE_HAS_VALUE, false); - setItem(i, c, item); + m_table->setItem(i, c, item); } continue; @@ -217,11 +295,11 @@ void MemoryViewWidget::Update() // Update column width for (int i = starting_column; i < starting_column + column_count - 1; i++) - setColumnWidth(i, m_font_width * GetCharacterCount(left_type)); + m_table->setColumnWidth(i, m_font_width * GetCharacterCount(left_type)); // Extra spacing between dual views. - setColumnWidth(starting_column + column_count - 1, - m_font_width * (GetCharacterCount(left_type) + 2)); + m_table->setColumnWidth(starting_column + column_count - 1, + m_font_width * (GetCharacterCount(left_type) + 2)); starting_column += column_count; } @@ -229,12 +307,13 @@ void MemoryViewWidget::Update() UpdateColumns(m_type, starting_column); UpdateBreakpointTags(); - setColumnWidth(0, rowHeight(0)); + m_table->setColumnWidth(0, m_table->rowHeight(0)); - for (int i = starting_column; i <= columnCount(); i++) - setColumnWidth(i, m_font_width * GetCharacterCount(m_type)); + for (int i = starting_column; i <= m_table->columnCount(); i++) + m_table->setColumnWidth(i, m_font_width * GetCharacterCount(m_type)); - viewport()->update(); + m_table->viewport()->update(); + m_table->update(); update(); } @@ -253,9 +332,9 @@ void MemoryViewWidget::UpdateColumns(Type type, int first_column) text_alignment = Qt::AlignRight; } - for (int i = 0; i < rowCount(); i++) + for (int i = 0; i < m_table->rowCount(); i++) { - u32 row_address = item(i, 1)->data(USER_ROLE_CELL_ADDRESS).toUInt(); + u32 row_address = m_table->item(i, 1)->data(USER_ROLE_CELL_ADDRESS).toUInt(); if (!accessors->IsValidAddress(row_address)) continue; @@ -268,7 +347,7 @@ void MemoryViewWidget::UpdateColumns(Type type, int first_column) const u32 cell_address = row_address + c * GetTypeSize(type); - setItem(i, first_column + c, cell_item); + m_table->setItem(i, first_column + c, cell_item); if (accessors->IsValidAddress(cell_address)) { @@ -377,14 +456,14 @@ void MemoryViewWidget::UpdateBreakpointTags() if (Core::GetState() != Core::State::Paused) return; - for (int i = 0; i < rowCount(); i++) + for (int i = 0; i < m_table->rowCount(); i++) { bool row_breakpoint = false; - for (int c = 2; c < columnCount(); c++) + for (int c = 2; c < m_table->columnCount(); c++) { // Pull address from cell itself, helpful for dual column view. - auto cell = item(i, c); + auto cell = m_table->item(i, c); u32 address = cell->data(USER_ROLE_CELL_ADDRESS).toUInt(); if (address == 0) @@ -405,9 +484,10 @@ void MemoryViewWidget::UpdateBreakpointTags() if (row_breakpoint) { - item(i, 0)->setData(Qt::DecorationRole, - Resources::GetScaledThemeIcon("debugger_breakpoint") - .pixmap(QSize(rowHeight(0) - 3, rowHeight(0) - 3))); + m_table->item(i, 0)->setData( + Qt::DecorationRole, + Resources::GetScaledThemeIcon("debugger_breakpoint") + .pixmap(QSize(m_table->rowHeight(0) - 3, m_table->rowHeight(0) - 3))); } } } @@ -427,8 +507,8 @@ AddressSpace::Type MemoryViewWidget::GetAddressSpace() const { return m_address_space; } -void MemoryViewWidget::SetDisplay(Type type, int bytes_per_row, int alignment, bool dual_view) +void MemoryViewWidget::SetDisplay(Type type, int bytes_per_row, int alignment, bool dual_view) { m_type = type; m_bytes_per_row = bytes_per_row; @@ -461,37 +541,6 @@ void MemoryViewWidget::SetBPLoggingEnabled(bool enabled) m_do_log = enabled; } -void MemoryViewWidget::resizeEvent(QResizeEvent*) -{ - Update(); -} - -void MemoryViewWidget::keyPressEvent(QKeyEvent* event) -{ - switch (event->key()) - { - case Qt::Key_Up: - m_address -= m_bytes_per_row; - Update(); - return; - case Qt::Key_Down: - m_address += m_bytes_per_row; - Update(); - return; - case Qt::Key_PageUp: - m_address -= rowCount() * m_bytes_per_row; - Update(); - return; - case Qt::Key_PageDown: - m_address += rowCount() * m_bytes_per_row; - Update(); - return; - default: - QWidget::keyPressEvent(event); - break; - } -} - void MemoryViewWidget::ToggleBreakpoint(u32 addr, bool row) { if (m_address_space != AddressSpace::Type::Effective) @@ -535,35 +584,6 @@ void MemoryViewWidget::ToggleBreakpoint(u32 addr, bool row) Update(); } -void MemoryViewWidget::wheelEvent(QWheelEvent* event) -{ - auto delta = - -static_cast(std::round((event->angleDelta().y() / (SCROLL_FRACTION_DEGREES * 8)))); - - if (delta == 0) - return; - - m_address += delta * 16; - Update(); -} - -void MemoryViewWidget::mousePressEvent(QMouseEvent* event) -{ - if (event->button() != Qt::LeftButton) - return; - - auto* item = itemAt(event->pos()); - if (!item) - return; - - const u32 address = item->data(USER_ROLE_CELL_ADDRESS).toUInt(); - if (item->data(USER_ROLE_IS_ROW_BREAKPOINT_CELL).toBool()) - ToggleBreakpoint(address, true); - else - SetAddress(address); - Update(); -} - void MemoryViewWidget::OnCopyAddress(u32 addr) { QApplication::clipboard()->setText(QStringLiteral("%1").arg(addr, 8, 16, QLatin1Char('0'))); @@ -582,7 +602,7 @@ void MemoryViewWidget::OnCopyHex(u32 addr) void MemoryViewWidget::OnContextMenu(const QPoint& pos) { - auto* item_selected = itemAt(pos); + auto* item_selected = m_table->itemAt(pos); // We don't have a meaningful context menu to show for when the user right-clicks either free // space in the table or the row breakpoint cell. @@ -604,7 +624,7 @@ void MemoryViewWidget::OnContextMenu(const QPoint& pos) auto* copy_value = menu->addAction(tr("Copy Value"), this, [this, &pos] { // Re-fetch the item in case the underlying table has refreshed since the menu was opened. - auto* item = itemAt(pos); + auto* item = m_table->itemAt(pos); if (item && item->data(USER_ROLE_HAS_VALUE).toBool()) QApplication::clipboard()->setText(item->text()); }); diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h index 2da49eff4d..3dc0635448 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h @@ -3,7 +3,7 @@ #pragma once -#include +#include #include "Common/CommonTypes.h" @@ -14,7 +14,9 @@ namespace AddressSpace enum class Type; } -class MemoryViewWidget : public QTableWidget +class MemoryViewTable; + +class MemoryViewWidget final : public QWidget { Q_OBJECT public: @@ -56,11 +58,6 @@ public: void SetBPLoggingEnabled(bool enabled); - void resizeEvent(QResizeEvent*) override; - void keyPressEvent(QKeyEvent* event) override; - void mousePressEvent(QMouseEvent* event) override; - void wheelEvent(QWheelEvent* event) override; - signals: void BreakpointsChanged(); void ShowCode(u32 address); @@ -73,6 +70,7 @@ private: void UpdateBreakpointTags(); void UpdateColumns(Type type, int first_column); + MemoryViewTable* m_table; AddressSpace::Type m_address_space{}; Type m_type = Type::Hex32; BPType m_bp_type = BPType::ReadWrite; @@ -83,4 +81,6 @@ private: int m_bytes_per_row = 16; int m_alignment = 16; bool m_dual_view = false; + + friend class MemoryViewTable; }; From 88dd9e57f3d438c61dbe95daf5a5e5436b0d3251 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 26 Apr 2022 02:13:18 +0200 Subject: [PATCH 028/659] Qt/MemoryViewWidget: Add a custom scrollbar. --- .../DolphinQt/Debugger/MemoryViewWidget.cpp | 56 +++++++++++++++++++ .../DolphinQt/Debugger/MemoryViewWidget.h | 4 ++ 2 files changed, 60 insertions(+) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index 19b29c3fea..9563338f57 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -34,6 +34,13 @@ constexpr auto USER_ROLE_IS_ROW_BREAKPOINT_CELL = Qt::UserRole; constexpr auto USER_ROLE_CELL_ADDRESS = Qt::UserRole + 1; constexpr auto USER_ROLE_HAS_VALUE = Qt::UserRole + 2; +// Numbers for the scrollbar. These affect how much big the draggable part of the scrollbar is, how +// smooth it scrolls, and how much memory it traverses while dragging. +constexpr int SCROLLBAR_MINIMUM = 0; +constexpr int SCROLLBAR_PAGESTEP = 250; +constexpr int SCROLLBAR_MAXIMUM = 20000; +constexpr int SCROLLBAR_CENTER = SCROLLBAR_MAXIMUM / 2; + class MemoryViewTable final : public QTableWidget { public: @@ -118,6 +125,19 @@ MemoryViewWidget::MemoryViewWidget(QWidget* parent) : QWidget(parent) m_table = new MemoryViewTable(this); layout->addWidget(m_table); + // Since the Memory View is infinitely long -- it wraps around -- we can't use a normal scroll + // bar, so this initializes a custom one that is always centered but otherwise still behaves more + // or less like a regular scrollbar. + m_scrollbar = new QScrollBar(this); + m_scrollbar->setRange(SCROLLBAR_MINIMUM, SCROLLBAR_MAXIMUM); + m_scrollbar->setPageStep(SCROLLBAR_PAGESTEP); + m_scrollbar->setValue(SCROLLBAR_CENTER); + connect(m_scrollbar, &QScrollBar::actionTriggered, this, + &MemoryViewWidget::ScrollbarActionTriggered); + connect(m_scrollbar, &QScrollBar::sliderReleased, this, + &MemoryViewWidget::ScrollbarSliderReleased); + layout->addWidget(m_scrollbar); + this->setLayout(layout); connect(&Settings::Instance(), &Settings::DebugFontChanged, this, &MemoryViewWidget::UpdateFont); @@ -645,3 +665,39 @@ void MemoryViewWidget::OnContextMenu(const QPoint& pos) menu->exec(QCursor::pos()); } + +void MemoryViewWidget::ScrollbarActionTriggered(int action) +{ + const int difference = m_scrollbar->sliderPosition() - m_scrollbar->value(); + if (difference == 0) + return; + + if (m_scrollbar->isSliderDown()) + { + // User is currently dragging the scrollbar. + // Adjust the memory view by the exact drag difference. + SetAddress(m_address + difference * m_bytes_per_row); + } + else + { + if (std::abs(difference) == 1) + { + // User clicked the arrows at the top or bottom, go up/down one row. + SetAddress(m_address + difference * m_bytes_per_row); + } + else + { + // User clicked the free part of the scrollbar, go up/down one page. + SetAddress(m_address + (difference < 0 ? -1 : 1) * m_bytes_per_row * m_table->rowCount()); + } + + // Manually reset the draggable part of the bar back to the center. + m_scrollbar->setSliderPosition(SCROLLBAR_CENTER); + } +} + +void MemoryViewWidget::ScrollbarSliderReleased() +{ + // Reset the draggable part of the bar back to the center. + m_scrollbar->setValue(SCROLLBAR_CENTER); +} diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h index 3dc0635448..45266aad39 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h @@ -8,6 +8,7 @@ #include "Common/CommonTypes.h" class QPoint; +class QScrollBar; namespace AddressSpace { @@ -69,8 +70,11 @@ private: void OnCopyHex(u32 addr); void UpdateBreakpointTags(); void UpdateColumns(Type type, int first_column); + void ScrollbarActionTriggered(int action); + void ScrollbarSliderReleased(); MemoryViewTable* m_table; + QScrollBar* m_scrollbar; AddressSpace::Type m_address_space{}; Type m_type = Type::Hex32; BPType m_bp_type = BPType::ReadWrite; From 7f94e62dd56a114f46be5dee4d4f7448de2f1873 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 26 Apr 2022 02:43:01 +0200 Subject: [PATCH 029/659] Qt/MemoryViewWidget: Remove the behavior that clicking anywhere in the table centers the table on that row. --- .../Core/DolphinQt/Debugger/MemoryViewWidget.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index 9563338f57..c0733f4b86 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -51,6 +51,7 @@ public: setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setShowGrid(false); setContextMenuPolicy(Qt::CustomContextMenu); + setSelectionMode(SingleSelection); connect(this, &MemoryViewTable::customContextMenuRequested, m_view, &MemoryViewWidget::OnContextMenu); @@ -105,12 +106,16 @@ public: if (!item) return; - const u32 address = item->data(USER_ROLE_CELL_ADDRESS).toUInt(); if (item->data(USER_ROLE_IS_ROW_BREAKPOINT_CELL).toBool()) + { + const u32 address = item->data(USER_ROLE_CELL_ADDRESS).toUInt(); m_view->ToggleBreakpoint(address, true); + m_view->Update(); + } else - m_view->SetAddress(address); - m_view->Update(); + { + QTableWidget::mousePressEvent(event); + } } private: @@ -284,7 +289,7 @@ void MemoryViewWidget::Update() for (int c = 2; c < m_table->columnCount(); c++) { auto* item = new QTableWidgetItem(QStringLiteral("-")); - item->setFlags(Qt::ItemIsEnabled); + item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); item->setData(USER_ROLE_CELL_ADDRESS, row_address); item->setData(USER_ROLE_HAS_VALUE, false); @@ -378,7 +383,6 @@ void MemoryViewWidget::UpdateColumns(Type type, int first_column) } else { - cell_item->setFlags({}); cell_item->setText(QStringLiteral("-")); cell_item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); cell_item->setData(USER_ROLE_CELL_ADDRESS, cell_address); From 5d459380d1e89dd0c4a9a87f189fb0b02736833a Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 9 May 2022 01:45:42 -0700 Subject: [PATCH 030/659] qt/win: remove hack for tab bar scroll buttons --- Source/Core/DolphinQt/Settings.cpp | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index 1efe4c4e42..3c5de2c1e4 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -155,22 +155,6 @@ void Settings::SetCurrentUserStyle(const QString& stylesheet_name) .arg(border_color.rgba(), 0, 16); stylesheet_contents.append(QStringLiteral("%1").arg(tooltip_stylesheet)); } -#ifdef _WIN32 - // MSVC has a bug causing QTabBar scroll buttons to be partially transparent when they inherit any - // stylesheet (see https://bugreports.qt.io/browse/QTBUG-74187) which is triggered when setting - // qApp's stylesheet below. Setting the scroll buttons' color directly fixes the problem. - - // Create a temporary QToolButton that's a child of a QTabBar in case that has different styling - // than a plain QToolButton. - const auto tab_bar = std::make_unique(); - auto* const tool_button = new QToolButton(tab_bar.get()); - - const QRgb background_color = tool_button->palette().color(QPalette::Button).rgba(); - - const std::string style_var = - fmt::format("QTabBar QToolButton {{ background-color: #{:08x}; }}", background_color); - stylesheet_contents.append(QString::fromStdString(style_var)); -#endif qApp->setStyleSheet(stylesheet_contents); From 61a144ba06b4163712663b4d4908a5eb408bdefd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 9 May 2022 13:12:57 -0700 Subject: [PATCH 031/659] Show a panic alert if movie is missing its starting savestate --- Source/Core/Core/Movie.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp index 17d33d2238..938a17f2eb 100644 --- a/Source/Core/Core/Movie.cpp +++ b/Source/Core/Core/Movie.cpp @@ -985,7 +985,16 @@ bool PlayInput(const std::string& movie_path, std::optional* savest { const std::string savestate_path_temp = movie_path + ".sav"; if (File::Exists(savestate_path_temp)) + { *savestate_path = savestate_path_temp; + } + else + { + PanicAlertFmtT("Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " + "The movie will likely not sync!", + movie_path, savestate_path_temp); + } + s_bRecordingFromSaveState = true; Movie::LoadInput(movie_path); } From 6b74907f9dc884290c041c7bac325043b76d62a9 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Mon, 9 May 2022 23:00:33 -0400 Subject: [PATCH 032/659] Upgrade gradle to 7.2.0 --- Source/Android/app/build.gradle | 1 + Source/Android/app/src/main/AndroidManifest.xml | 3 +-- Source/Android/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index e2675fcc5a..2db245cfee 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -73,6 +73,7 @@ android { version "3.18.1" } } + namespace 'org.dolphinemu.dolphinemu' defaultConfig { externalNativeBuild { diff --git a/Source/Android/app/src/main/AndroidManifest.xml b/Source/Android/app/src/main/AndroidManifest.xml index 78bd53c35f..fa52877c87 100644 --- a/Source/Android/app/src/main/AndroidManifest.xml +++ b/Source/Android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + Date: Tue, 10 May 2022 12:35:37 +0200 Subject: [PATCH 033/659] Qt/MemoryViewWidget: Fix resizing. --- Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index c0733f4b86..025582a5f8 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -57,7 +57,11 @@ public: &MemoryViewWidget::OnContextMenu); } - void resizeEvent(QResizeEvent*) override { m_view->Update(); } + void resizeEvent(QResizeEvent* event) override + { + QTableWidget::resizeEvent(event); + m_view->Update(); + } void keyPressEvent(QKeyEvent* event) override { From e03ee66ab5472bc5c5aa8c36f32932d2ac190ce9 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Tue, 10 May 2022 13:56:13 -0400 Subject: [PATCH 034/659] Upgrade dependencies --- Source/Android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index 2db245cfee..8f61a3feec 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 32 - ndkVersion "23.0.7599858" + ndkVersion "23.1.7779620" compileOptions { // Flag to enable support for the new language APIs @@ -100,7 +100,7 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-viewmodel:2.4.1' implementation 'androidx.fragment:fragment:1.4.1' implementation 'androidx.slidingpanelayout:slidingpanelayout:1.2.0' - implementation 'com.google.android.material:material:1.5.0' + implementation 'com.google.android.material:material:1.6.0' // Android TV UI libraries. implementation 'androidx.leanback:leanback:1.0.0' From abc848b88c8555494e7570804a6d1d43e3cd3a73 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 16:11:54 -0700 Subject: [PATCH 035/659] msvc: bump min version to vs 17.2 --- Source/PCH/pch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/PCH/pch.h b/Source/PCH/pch.h index 7996c611d4..10efeec5e0 100644 --- a/Source/PCH/pch.h +++ b/Source/PCH/pch.h @@ -6,7 +6,7 @@ #define STRINGIFY_HELPER(x) #x #define STRINGIFY(x) STRINGIFY_HELPER(x) -#if defined _MSC_FULL_VER && _MSC_FULL_VER < 193030705 +#if defined _MSC_FULL_VER && _MSC_FULL_VER < 193231328 #pragma message("Current _MSC_FULL_VER: " STRINGIFY(_MSC_FULL_VER)) #error Please update your build environment to the latest Visual Studio 2022! #endif From 5bcc11a3039a1717f05be38c81516c7c6caf5689 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 16:12:29 -0700 Subject: [PATCH 036/659] fmt: update to f63afd161fb27132d394d0664ef7eb8ff38b8422 --- Externals/fmt/CMakeLists.txt | 28 +- Externals/fmt/ChangeLog.rst | 2 +- Externals/fmt/README.rst | 13 +- Externals/fmt/include/fmt/args.h | 8 +- Externals/fmt/include/fmt/chrono.h | 76 +- Externals/fmt/include/fmt/color.h | 164 +- Externals/fmt/include/fmt/compile.h | 78 +- Externals/fmt/include/fmt/core.h | 328 ++-- Externals/fmt/include/fmt/format-inl.h | 1989 ++++++++++----------- Externals/fmt/include/fmt/format.h | 902 +++++++--- Externals/fmt/include/fmt/os.h | 98 +- Externals/fmt/include/fmt/ostream.h | 90 +- Externals/fmt/include/fmt/ranges.h | 411 ++--- Externals/fmt/include/fmt/xchar.h | 26 +- Externals/fmt/src/format.cc | 27 +- Externals/fmt/src/os.cc | 29 +- Externals/fmt/support/bazel/.bazelversion | 2 +- Externals/fmt/support/cmake/cxx14.cmake | 48 +- Externals/fmt/support/printable.py | 2 +- 19 files changed, 2228 insertions(+), 2093 deletions(-) diff --git a/Externals/fmt/CMakeLists.txt b/Externals/fmt/CMakeLists.txt index 3bf80f8022..1d07bb4adf 100755 --- a/Externals/fmt/CMakeLists.txt +++ b/Externals/fmt/CMakeLists.txt @@ -125,7 +125,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/support/cmake") include(cxx14) -include(CheckCXXCompilerFlag) include(JoinPaths) list(FIND CMAKE_CXX_COMPILE_FEATURES "cxx_variadic_templates" index) @@ -209,18 +208,6 @@ if (FMT_MASTER_PROJECT AND CMAKE_GENERATOR MATCHES "Visual Studio") ${CMAKE_MAKE_PROGRAM} -p:FrameworkPathOverride=\"${netfxpath}\" %*") endif () -set(strtod_l_headers stdlib.h) -if (APPLE) - set(strtod_l_headers ${strtod_l_headers} xlocale.h) -endif () - -include(CheckSymbolExists) -if (WIN32) - check_symbol_exists(_strtod_l "${strtod_l_headers}" HAVE_STRTOD_L) -else () - check_symbol_exists(strtod_l "${strtod_l_headers}" HAVE_STRTOD_L) -endif () - function(add_headers VAR) set(headers ${${VAR}}) foreach (header ${ARGN}) @@ -244,17 +231,6 @@ endif () add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} README.rst ChangeLog.rst) add_library(fmt::fmt ALIAS fmt) -if (HAVE_STRTOD_L) - target_compile_definitions(fmt PUBLIC FMT_LOCALE) -endif () - -if (MINGW) - check_cxx_compiler_flag("-Wa,-mbig-obj" FMT_HAS_MBIG_OBJ) - if (${FMT_HAS_MBIG_OBJ}) - target_compile_options(fmt PUBLIC "-Wa,-mbig-obj") - endif() -endif () - if (FMT_WERROR) target_compile_options(fmt PRIVATE ${WERROR_FLAG}) endif () @@ -275,6 +251,7 @@ set(FMT_DEBUG_POSTFIX d CACHE STRING "Debug library postfix.") set_target_properties(fmt PROPERTIES VERSION ${FMT_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR} + PUBLIC_HEADER "${FMT_HEADERS}" DEBUG_POSTFIX "${FMT_DEBUG_POSTFIX}") # Set FMT_LIB_NAME for pkg-config fmt.pc. We cannot use the OUTPUT_NAME target @@ -352,6 +329,8 @@ if (FMT_INSTALL) install(TARGETS ${INSTALL_TARGETS} EXPORT ${targets_export_name} LIBRARY DESTINATION ${FMT_LIB_DIR} ARCHIVE DESTINATION ${FMT_LIB_DIR} + PUBLIC_HEADER DESTINATION "${FMT_INC_DIR}/fmt" + FRAMEWORK DESTINATION "." RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) # Use a namespace because CMake provides better diagnostics for namespaced @@ -368,7 +347,6 @@ if (FMT_INSTALL) install(FILES $ DESTINATION ${FMT_LIB_DIR} OPTIONAL) - install(FILES ${FMT_HEADERS} DESTINATION "${FMT_INC_DIR}/fmt") install(FILES "${pkgconfig}" DESTINATION "${FMT_PKGCONFIG_DIR}") endif () diff --git a/Externals/fmt/ChangeLog.rst b/Externals/fmt/ChangeLog.rst index 18b84c7df7..653002b9ba 100755 --- a/Externals/fmt/ChangeLog.rst +++ b/Externals/fmt/ChangeLog.rst @@ -6,7 +6,7 @@ `#2696 `_). Thanks `@saraedum (Julian Rüth) `_. -* Fixed chorno formatting on big endian systems +* Fixed chrono formatting on big endian systems (`#2698 `_, `#2699 `_). Thanks `@phprus (Vladislav Shchapov) `_ and diff --git a/Externals/fmt/README.rst b/Externals/fmt/README.rst index 394f28d97b..feb4ab5e7d 100755 --- a/Externals/fmt/README.rst +++ b/Externals/fmt/README.rst @@ -1,5 +1,7 @@ -{fmt} -===== +.. image:: https://user-images.githubusercontent.com/ + 576385/156254208-f5b743a9-88cf-439d-b0c0-923d53e8d551.png + :width: 25% + :alt: {fmt} .. image:: https://github.com/fmtlib/fmt/workflows/linux/badge.svg :target: https://github.com/fmtlib/fmt/actions?query=workflow%3Alinux @@ -26,9 +28,8 @@ **{fmt}** is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. -If you like this project, please consider donating to the BYSOL -Foundation that helps victims of political repressions in Belarus: -https://bysol.org/en/bs/general/. +If you like this project, please consider donating to one of the funds that +help victims of the war in Ukraine: https://www.stopputin.net/. `Documentation `__ @@ -123,7 +124,7 @@ Output:: Default format: 42s 100ms strftime-like format: 03:15:30 -**Print a container** (`run `_) +**Print a container** (`run `_) .. code:: c++ diff --git a/Externals/fmt/include/fmt/args.h b/Externals/fmt/include/fmt/args.h index 9a8e4ed2ce..a3966d1407 100644 --- a/Externals/fmt/include/fmt/args.h +++ b/Externals/fmt/include/fmt/args.h @@ -95,10 +95,10 @@ class dynamic_format_arg_store }; template - using stored_type = conditional_t::value && - !has_formatter::value && - !detail::is_reference_wrapper::value, - std::basic_string, T>; + using stored_type = conditional_t< + std::is_convertible>::value && + !detail::is_reference_wrapper::value, + std::basic_string, T>; // Storage of basic_format_arg must be contiguous. std::vector> data_; diff --git a/Externals/fmt/include/fmt/chrono.h b/Externals/fmt/include/fmt/chrono.h index 682efd8d21..7872fb4bde 100755 --- a/Externals/fmt/include/fmt/chrono.h +++ b/Externals/fmt/include/fmt/chrono.h @@ -10,6 +10,8 @@ #include #include +#include // std::isfinite +#include // std::memcpy #include #include #include @@ -321,14 +323,13 @@ constexpr const size_t codecvt_result::max_size; template void write_codecvt(codecvt_result& out, string_view in_buf, const std::locale& loc) { - using codecvt = std::codecvt; #if FMT_CLANG_VERSION # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wdeprecated" - auto& f = std::use_facet(loc); + auto& f = std::use_facet>(loc); # pragma clang diagnostic pop #else - auto& f = std::use_facet(loc); + auto& f = std::use_facet>(loc); #endif auto mb = std::mbstate_t(); const char* from_next = nullptr; @@ -562,10 +563,10 @@ inline void write_digit2_separated(char* buf, unsigned a, unsigned b, constexpr const size_t len = 8; if (const_check(is_big_endian())) { char tmp[len]; - memcpy(tmp, &digits, len); + std::memcpy(tmp, &digits, len); std::reverse_copy(tmp, tmp + len, buf); } else { - memcpy(buf, &digits, len); + std::memcpy(buf, &digits, len); } } @@ -1214,7 +1215,7 @@ template class tm_writer { char buf[10]; size_t offset = 0; if (year >= 0 && year < 10000) { - copy2(buf, digits2(to_unsigned(year / 100))); + copy2(buf, digits2(static_cast(year / 100))); } else { offset = 4; write_year_extended(year); @@ -1387,15 +1388,6 @@ struct chrono_format_checker : null_chrono_spec_handler { FMT_CONSTEXPR void on_duration_unit() {} }; -template ::value)> -inline bool isnan(T) { - return false; -} -template ::value)> -inline bool isnan(T value) { - return std::isnan(value); -} - template ::value)> inline bool isfinite(T) { return true; @@ -1470,14 +1462,23 @@ inline std::chrono::duration get_milliseconds( #endif } -// Returns the number of fractional digits in the range [0, 18] according to the +// Counts the number of fractional digits in the range [0, 18] according to the // C++20 spec. If more than 18 fractional digits are required then returns 6 for // microseconds precision. -constexpr int count_fractional_digits(long long num, long long den, int n = 0) { - return num % den == 0 - ? n - : (n > 18 ? 6 : count_fractional_digits(num * 10, den, n + 1)); -} +template ::max() / 10)> +struct count_fractional_digits { + static constexpr int value = + Num % Den == 0 ? N : count_fractional_digits::value; +}; + +// Base case that doesn't instantiate any more templates +// in order to avoid overflow. +template +struct count_fractional_digits { + static constexpr int value = (Num % Den == 0) ? N : 6; +}; constexpr long long pow10(std::uint32_t n) { return n == 0 ? 1 : 10 * pow10(n - 1); @@ -1663,9 +1664,11 @@ struct chrono_formatter { out = format_decimal(out, n, num_digits).end; } - template void write_fractional_seconds(Duration d) { + template void write_fractional_seconds(Duration d) { + FMT_ASSERT(!std::is_floating_point::value, ""); constexpr auto num_fractional_digits = - count_fractional_digits(Duration::period::num, Duration::period::den); + count_fractional_digits::value; using subsecond_precision = std::chrono::duration< typename std::common_type::value) { *out++ = '.'; - // Don't convert long double to integer seconds to avoid overflow. - using sec = conditional_t< - std::is_same::value, - std::chrono::duration, std::chrono::seconds>; - auto fractional = detail::abs(d) - std::chrono::duration_cast(d); - const auto subseconds = + auto fractional = + detail::abs(d) - std::chrono::duration_cast(d); + auto subseconds = std::chrono::treat_as_floating_point< typename subsecond_precision::rep>::value ? fractional.count() @@ -1770,8 +1770,22 @@ struct chrono_formatter { if (handle_nan_inf()) return; if (ns == numeric_system::standard) { - write(second(), 2); - write_fractional_seconds(std::chrono::duration{val}); + if (std::is_floating_point::value) { + constexpr auto num_fractional_digits = + count_fractional_digits::value; + auto buf = memory_buffer(); + format_to(std::back_inserter(buf), runtime("{:.{}f}"), + std::fmod(val * static_cast(Period::num) / + static_cast(Period::den), + 60), + num_fractional_digits); + if (negative) *out++ = '-'; + if (buf.size() < 2 || buf[1] == '.') *out++ = '0'; + out = std::copy(buf.begin(), buf.end(), out); + } else { + write(second(), 2); + write_fractional_seconds(std::chrono::duration(val)); + } return; } auto time = tm(); diff --git a/Externals/fmt/include/fmt/color.h b/Externals/fmt/include/fmt/color.h index dfbe482938..762809ca71 100755 --- a/Externals/fmt/include/fmt/color.h +++ b/Externals/fmt/include/fmt/color.h @@ -214,17 +214,16 @@ FMT_BEGIN_DETAIL_NAMESPACE // color is a struct of either a rgb color or a terminal color. struct color_type { - FMT_CONSTEXPR color_type() FMT_NOEXCEPT : is_rgb(), value{} {} - FMT_CONSTEXPR color_type(color rgb_color) FMT_NOEXCEPT : is_rgb(true), - value{} { + FMT_CONSTEXPR color_type() noexcept : is_rgb(), value{} {} + FMT_CONSTEXPR color_type(color rgb_color) noexcept : is_rgb(true), value{} { value.rgb_color = static_cast(rgb_color); } - FMT_CONSTEXPR color_type(rgb rgb_color) FMT_NOEXCEPT : is_rgb(true), value{} { + FMT_CONSTEXPR color_type(rgb rgb_color) noexcept : is_rgb(true), value{} { value.rgb_color = (static_cast(rgb_color.r) << 16) | (static_cast(rgb_color.g) << 8) | rgb_color.b; } - FMT_CONSTEXPR color_type(terminal_color term_color) FMT_NOEXCEPT : is_rgb(), - value{} { + FMT_CONSTEXPR color_type(terminal_color term_color) noexcept + : is_rgb(), value{} { value.term_color = static_cast(term_color); } bool is_rgb; @@ -239,10 +238,8 @@ FMT_END_DETAIL_NAMESPACE /** A text style consisting of foreground and background colors and emphasis. */ class text_style { public: - FMT_CONSTEXPR text_style(emphasis em = emphasis()) FMT_NOEXCEPT - : set_foreground_color(), - set_background_color(), - ems(em) {} + FMT_CONSTEXPR text_style(emphasis em = emphasis()) noexcept + : set_foreground_color(), set_background_color(), ems(em) {} FMT_CONSTEXPR text_style& operator|=(const text_style& rhs) { if (!set_foreground_color) { @@ -283,34 +280,32 @@ class text_style { return lhs.and_assign(rhs); } - FMT_CONSTEXPR bool has_foreground() const FMT_NOEXCEPT { + FMT_CONSTEXPR bool has_foreground() const noexcept { return set_foreground_color; } - FMT_CONSTEXPR bool has_background() const FMT_NOEXCEPT { + FMT_CONSTEXPR bool has_background() const noexcept { return set_background_color; } - FMT_CONSTEXPR bool has_emphasis() const FMT_NOEXCEPT { + FMT_CONSTEXPR bool has_emphasis() const noexcept { return static_cast(ems) != 0; } - FMT_CONSTEXPR detail::color_type get_foreground() const FMT_NOEXCEPT { + FMT_CONSTEXPR detail::color_type get_foreground() const noexcept { FMT_ASSERT(has_foreground(), "no foreground specified for this style"); return foreground_color; } - FMT_CONSTEXPR detail::color_type get_background() const FMT_NOEXCEPT { + FMT_CONSTEXPR detail::color_type get_background() const noexcept { FMT_ASSERT(has_background(), "no background specified for this style"); return background_color; } - FMT_CONSTEXPR emphasis get_emphasis() const FMT_NOEXCEPT { + FMT_CONSTEXPR emphasis get_emphasis() const noexcept { FMT_ASSERT(has_emphasis(), "no emphasis specified for this style"); return ems; } private: FMT_CONSTEXPR text_style(bool is_foreground, - detail::color_type text_color) FMT_NOEXCEPT - : set_foreground_color(), - set_background_color(), - ems() { + detail::color_type text_color) noexcept + : set_foreground_color(), set_background_color(), ems() { if (is_foreground) { foreground_color = text_color; set_foreground_color = true; @@ -345,11 +340,11 @@ class text_style { return *this; } - friend FMT_CONSTEXPR_DECL text_style fg(detail::color_type foreground) - FMT_NOEXCEPT; + friend FMT_CONSTEXPR_DECL text_style + fg(detail::color_type foreground) noexcept; - friend FMT_CONSTEXPR_DECL text_style bg(detail::color_type background) - FMT_NOEXCEPT; + friend FMT_CONSTEXPR_DECL text_style + bg(detail::color_type background) noexcept; detail::color_type foreground_color; detail::color_type background_color; @@ -359,17 +354,16 @@ class text_style { }; /** Creates a text style from the foreground (text) color. */ -FMT_CONSTEXPR inline text_style fg(detail::color_type foreground) FMT_NOEXCEPT { +FMT_CONSTEXPR inline text_style fg(detail::color_type foreground) noexcept { return text_style(true, foreground); } /** Creates a text style from the background color. */ -FMT_CONSTEXPR inline text_style bg(detail::color_type background) FMT_NOEXCEPT { +FMT_CONSTEXPR inline text_style bg(detail::color_type background) noexcept { return text_style(false, background); } -FMT_CONSTEXPR inline text_style operator|(emphasis lhs, - emphasis rhs) FMT_NOEXCEPT { +FMT_CONSTEXPR inline text_style operator|(emphasis lhs, emphasis rhs) noexcept { return text_style(lhs) | rhs; } @@ -377,7 +371,7 @@ FMT_BEGIN_DETAIL_NAMESPACE template struct ansi_color_escape { FMT_CONSTEXPR ansi_color_escape(detail::color_type text_color, - const char* esc) FMT_NOEXCEPT { + const char* esc) noexcept { // If we have a terminal color, we need to output another escape code // sequence. if (!text_color.is_rgb) { @@ -412,7 +406,7 @@ template struct ansi_color_escape { to_esc(color.b, buffer + 15, 'm'); buffer[19] = static_cast(0); } - FMT_CONSTEXPR ansi_color_escape(emphasis em) FMT_NOEXCEPT { + FMT_CONSTEXPR ansi_color_escape(emphasis em) noexcept { uint8_t em_codes[num_emphases] = {}; if (has_emphasis(em, emphasis::bold)) em_codes[0] = 1; if (has_emphasis(em, emphasis::faint)) em_codes[1] = 2; @@ -433,10 +427,10 @@ template struct ansi_color_escape { } buffer[index++] = static_cast(0); } - FMT_CONSTEXPR operator const Char*() const FMT_NOEXCEPT { return buffer; } + FMT_CONSTEXPR operator const Char*() const noexcept { return buffer; } - FMT_CONSTEXPR const Char* begin() const FMT_NOEXCEPT { return buffer; } - FMT_CONSTEXPR_CHAR_TRAITS const Char* end() const FMT_NOEXCEPT { + FMT_CONSTEXPR const Char* begin() const noexcept { return buffer; } + FMT_CONSTEXPR_CHAR_TRAITS const Char* end() const noexcept { return buffer + std::char_traits::length(buffer); } @@ -445,59 +439,64 @@ template struct ansi_color_escape { Char buffer[7u + 3u * num_emphases + 1u]; static FMT_CONSTEXPR void to_esc(uint8_t c, Char* out, - char delimiter) FMT_NOEXCEPT { + char delimiter) noexcept { out[0] = static_cast('0' + c / 100); out[1] = static_cast('0' + c / 10 % 10); out[2] = static_cast('0' + c % 10); out[3] = static_cast(delimiter); } - static FMT_CONSTEXPR bool has_emphasis(emphasis em, - emphasis mask) FMT_NOEXCEPT { + static FMT_CONSTEXPR bool has_emphasis(emphasis em, emphasis mask) noexcept { return static_cast(em) & static_cast(mask); } }; template FMT_CONSTEXPR ansi_color_escape make_foreground_color( - detail::color_type foreground) FMT_NOEXCEPT { + detail::color_type foreground) noexcept { return ansi_color_escape(foreground, "\x1b[38;2;"); } template FMT_CONSTEXPR ansi_color_escape make_background_color( - detail::color_type background) FMT_NOEXCEPT { + detail::color_type background) noexcept { return ansi_color_escape(background, "\x1b[48;2;"); } template -FMT_CONSTEXPR ansi_color_escape make_emphasis(emphasis em) FMT_NOEXCEPT { +FMT_CONSTEXPR ansi_color_escape make_emphasis(emphasis em) noexcept { return ansi_color_escape(em); } -template -inline void fputs(const Char* chars, FILE* stream) FMT_NOEXCEPT { - std::fputs(chars, stream); +template inline void fputs(const Char* chars, FILE* stream) { + int result = std::fputs(chars, stream); + if (result < 0) + FMT_THROW(system_error(errno, FMT_STRING("cannot write to file"))); } -template <> -inline void fputs(const wchar_t* chars, FILE* stream) FMT_NOEXCEPT { - std::fputws(chars, stream); +template <> inline void fputs(const wchar_t* chars, FILE* stream) { + int result = std::fputws(chars, stream); + if (result < 0) + FMT_THROW(system_error(errno, FMT_STRING("cannot write to file"))); } -template inline void reset_color(FILE* stream) FMT_NOEXCEPT { +template inline void reset_color(FILE* stream) { fputs("\x1b[0m", stream); } -template <> inline void reset_color(FILE* stream) FMT_NOEXCEPT { +template <> inline void reset_color(FILE* stream) { fputs(L"\x1b[0m", stream); } -template -inline void reset_color(buffer& buffer) FMT_NOEXCEPT { +template inline void reset_color(buffer& buffer) { auto reset_color = string_view("\x1b[0m"); buffer.append(reset_color.begin(), reset_color.end()); } +template struct styled_arg { + const T& value; + text_style style; +}; + template void vformat_to(buffer& buf, const text_style& ts, basic_string_view format_str, @@ -529,8 +528,12 @@ void vprint(std::FILE* f, const text_style& ts, const S& format, basic_format_args>> args) { basic_memory_buffer buf; detail::vformat_to(buf, ts, to_string_view(format), args); - buf.push_back(Char(0)); - detail::fputs(buf.data(), f); + if (detail::is_utf8()) { + detail::print(f, basic_string_view(buf.begin(), buf.size())); + } else { + buf.push_back(Char(0)); + detail::fputs(buf.data(), f); + } } /** @@ -549,7 +552,7 @@ template (format_str, args...)); + fmt::make_format_args>>(args...)); } /** @@ -594,7 +597,7 @@ template > inline std::basic_string format(const text_style& ts, const S& format_str, const Args&... args) { return fmt::vformat(ts, to_string_view(format_str), - fmt::make_args_checked(format_str, args...)); + fmt::make_format_args>(args...)); } /** @@ -629,7 +632,60 @@ inline auto format_to(OutputIt out, const text_style& ts, const S& format_str, Args&&... args) -> typename std::enable_if::type { return vformat_to(out, ts, to_string_view(format_str), - fmt::make_args_checked(format_str, args...)); + fmt::make_format_args>>(args...)); +} + +template +struct formatter, Char> : formatter { + template + auto format(const detail::styled_arg& arg, FormatContext& ctx) const + -> decltype(ctx.out()) { + const auto& ts = arg.style; + const auto& value = arg.value; + auto out = ctx.out(); + + bool has_style = false; + if (ts.has_emphasis()) { + has_style = true; + auto emphasis = detail::make_emphasis(ts.get_emphasis()); + out = std::copy(emphasis.begin(), emphasis.end(), out); + } + if (ts.has_foreground()) { + has_style = true; + auto foreground = + detail::make_foreground_color(ts.get_foreground()); + out = std::copy(foreground.begin(), foreground.end(), out); + } + if (ts.has_background()) { + has_style = true; + auto background = + detail::make_background_color(ts.get_background()); + out = std::copy(background.begin(), background.end(), out); + } + out = formatter::format(value, ctx); + if (has_style) { + auto reset_color = string_view("\x1b[0m"); + out = std::copy(reset_color.begin(), reset_color.end(), out); + } + return out; + } +}; + +/** + \rst + Returns an argument that will be formatted using ANSI escape sequences, + to be used in a formatting function. + + **Example**:: + + fmt::print("Elapsed time: {s:.2f} seconds", + fmt::styled(1.23, fmt::fg(fmt::color::green) | fmt::bg(fmt::color::blue))); + \endrst + */ +template +FMT_CONSTEXPR auto styled(const T& value, text_style ts) + -> detail::styled_arg> { + return detail::styled_arg>{value, ts}; } FMT_MODULE_EXPORT_END diff --git a/Externals/fmt/include/fmt/compile.h b/Externals/fmt/include/fmt/compile.h index 1dba3ddb52..296ef42c69 100644 --- a/Externals/fmt/include/fmt/compile.h +++ b/Externals/fmt/include/fmt/compile.h @@ -13,45 +13,6 @@ FMT_BEGIN_NAMESPACE namespace detail { -// An output iterator that counts the number of objects written to it and -// discards them. -class counting_iterator { - private: - size_t count_; - - public: - using iterator_category = std::output_iterator_tag; - using difference_type = std::ptrdiff_t; - using pointer = void; - using reference = void; - using _Unchecked_type = counting_iterator; // Mark iterator as checked. - - struct value_type { - template void operator=(const T&) {} - }; - - counting_iterator() : count_(0) {} - - size_t count() const { return count_; } - - counting_iterator& operator++() { - ++count_; - return *this; - } - counting_iterator operator++(int) { - auto it = *this; - ++*this; - return it; - } - - friend counting_iterator operator+(counting_iterator it, difference_type n) { - it.count_ += static_cast(n); - return it; - } - - value_type operator*() const { return {}; } -}; - template inline counting_iterator copy_str(InputIt begin, InputIt end, counting_iterator it) { @@ -75,8 +36,7 @@ template class truncating_iterator_base { using difference_type = std::ptrdiff_t; using pointer = void; using reference = void; - using _Unchecked_type = - truncating_iterator_base; // Mark iterator as checked. + FMT_UNCHECKED_ITERATOR(truncating_iterator_base); OutputIt base() const { return out_; } size_t count() const { return count_; } @@ -168,7 +128,7 @@ template Str> struct udl_compiled_string : compiled_string { using char_type = Char; - constexpr operator basic_string_view() const { + explicit constexpr operator basic_string_view() const { return {Str.data, N - 1}; } }; @@ -573,10 +533,11 @@ FMT_INLINE std::basic_string format(const S&, constexpr auto compiled = detail::compile(S()); if constexpr (std::is_same, detail::unknown_format>()) { - return format(static_cast>(S()), - std::forward(args)...); + return fmt::format( + static_cast>(S()), + std::forward(args)...); } else { - return format(compiled, std::forward(args)...); + return fmt::format(compiled, std::forward(args)...); } } @@ -586,11 +547,11 @@ FMT_CONSTEXPR OutputIt format_to(OutputIt out, const S&, Args&&... args) { constexpr auto compiled = detail::compile(S()); if constexpr (std::is_same, detail::unknown_format>()) { - return format_to(out, - static_cast>(S()), - std::forward(args)...); + return fmt::format_to( + out, static_cast>(S()), + std::forward(args)...); } else { - return format_to(out, compiled, std::forward(args)...); + return fmt::format_to(out, compiled, std::forward(args)...); } } #endif @@ -599,22 +560,23 @@ template ::value)> format_to_n_result format_to_n(OutputIt out, size_t n, const S& format_str, Args&&... args) { - auto it = format_to(detail::truncating_iterator(out, n), format_str, - std::forward(args)...); + auto it = fmt::format_to(detail::truncating_iterator(out, n), + format_str, std::forward(args)...); return {it.base(), it.count()}; } template ::value)> size_t formatted_size(const S& format_str, const Args&... args) { - return format_to(detail::counting_iterator(), format_str, args...).count(); + return fmt::format_to(detail::counting_iterator(), format_str, args...) + .count(); } template ::value)> void print(std::FILE* f, const S& format_str, const Args&... args) { memory_buffer buffer; - format_to(std::back_inserter(buffer), format_str, args...); + fmt::format_to(std::back_inserter(buffer), format_str, args...); detail::print(f, {buffer.data(), buffer.size()}); } @@ -626,12 +588,10 @@ void print(const S& format_str, const Args&... args) { #if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS inline namespace literals { -template -constexpr detail::udl_compiled_string< - remove_cvref_t, - sizeof(Str.data) / sizeof(decltype(Str.data[0])), Str> -operator""_cf() { - return {}; +template constexpr auto operator""_cf() { + using char_t = remove_cvref_t; + return detail::udl_compiled_string(); } } // namespace literals #endif diff --git a/Externals/fmt/include/fmt/core.h b/Externals/fmt/include/fmt/core.h index 92a7aa1df6..8dea0508a2 100755 --- a/Externals/fmt/include/fmt/core.h +++ b/Externals/fmt/include/fmt/core.h @@ -10,14 +10,14 @@ #include // std::byte #include // std::FILE -#include +#include // std::strlen #include #include #include #include // The fmt library version in the form major * 10000 + minor * 100 + patch. -#define FMT_VERSION 80101 +#define FMT_VERSION 80102 #if defined(__clang__) && !defined(__ibmxl__) # define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) @@ -49,6 +49,13 @@ # define FMT_ICC_VERSION 0 #endif +#ifdef __NVCOMPILER +# define FMT_NVCOMPILER_VERSION \ + (__NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__) +#else +# define FMT_NVCOMPILER_VERSION 0 +#endif + #ifdef __NVCC__ # define FMT_NVCC __NVCC__ #else @@ -145,28 +152,6 @@ # endif #endif -// Define FMT_USE_NOEXCEPT to make fmt use noexcept (C++11 feature). -#ifndef FMT_USE_NOEXCEPT -# define FMT_USE_NOEXCEPT 0 -#endif - -#if FMT_USE_NOEXCEPT || FMT_HAS_FEATURE(cxx_noexcept) || \ - FMT_GCC_VERSION >= 408 || FMT_MSC_VER >= 1900 -# define FMT_DETECTED_NOEXCEPT noexcept -# define FMT_HAS_CXX11_NOEXCEPT 1 -#else -# define FMT_DETECTED_NOEXCEPT throw() -# define FMT_HAS_CXX11_NOEXCEPT 0 -#endif - -#ifndef FMT_NOEXCEPT -# if FMT_EXCEPTIONS || FMT_HAS_CXX11_NOEXCEPT -# define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT -# else -# define FMT_NOEXCEPT -# endif -#endif - // [[noreturn]] is disabled on MSVC and NVCC because of bogus unreachable code // warnings. #if FMT_EXCEPTIONS && FMT_HAS_CPP_ATTRIBUTE(noreturn) && !FMT_MSC_VER && \ @@ -233,6 +218,13 @@ # endif #endif +#ifdef _MSC_VER +# define FMT_UNCHECKED_ITERATOR(It) \ + using _Unchecked_type = It // Mark iterator as checked. +#else +# define FMT_UNCHECKED_ITERATOR(It) using DummyTypeName = It +#endif + #ifndef FMT_BEGIN_NAMESPACE # define FMT_BEGIN_NAMESPACE \ namespace fmt { \ @@ -309,7 +301,7 @@ // Enable minimal optimizations for more compact code in debug mode. FMT_GCC_PRAGMA("GCC push_options") -#ifndef __OPTIMIZE__ +#if !defined(__OPTIMIZE__) && !FMT_NVCOMPILER_VERSION FMT_GCC_PRAGMA("GCC optimize(\"Og\")") #endif @@ -330,6 +322,8 @@ template using remove_cvref_t = typename std::remove_cv>::type; template struct type_identity { using type = T; }; template using type_identity_t = typename type_identity::type; +template +using underlying_t = typename std::underlying_type::type; struct monostate { constexpr monostate() {} @@ -351,8 +345,8 @@ FMT_BEGIN_DETAIL_NAMESPACE // (void)var does not work on many Intel compilers. template FMT_CONSTEXPR void ignore_unused(const T&...) {} -constexpr FMT_INLINE auto is_constant_evaluated(bool default_value = false) - FMT_NOEXCEPT -> bool { +constexpr FMT_INLINE auto is_constant_evaluated( + bool default_value = false) noexcept -> bool { #ifdef __cpp_lib_is_constant_evaluated ignore_unused(default_value); return std::is_constant_evaluated(); @@ -382,12 +376,6 @@ FMT_NORETURN FMT_API void assert_fail(const char* file, int line, # endif #endif -#ifdef __cpp_lib_byte -using byte = std::byte; -#else -enum class byte : unsigned char {}; -#endif - #if defined(FMT_USE_STRING_VIEW) template using std_string_view = std::basic_string_view; #elif defined(FMT_USE_EXPERIMENTAL_STRING_VIEW) @@ -402,8 +390,8 @@ template struct std_string_view {}; #elif defined(__SIZEOF_INT128__) && !FMT_NVCC && \ !(FMT_CLANG_VERSION && FMT_MSC_VER) # define FMT_USE_INT128 1 -using int128_t = __int128_t; -using uint128_t = __uint128_t; +using int128_opt = __int128_t; // An optional native 128-bit integer. +using uint128_opt = __uint128_t; template inline auto convert_for_visit(T value) -> T { return value; } @@ -411,12 +399,10 @@ template inline auto convert_for_visit(T value) -> T { # define FMT_USE_INT128 0 #endif #if !FMT_USE_INT128 -enum class int128_t {}; -enum class uint128_t {}; +enum class int128_opt {}; +enum class uint128_opt {}; // Reduce template instantiations. -template inline auto convert_for_visit(T) -> monostate { - return {}; -} +template auto convert_for_visit(T) -> monostate { return {}; } #endif // Casts a nonnegative integer to unsigned. @@ -454,12 +440,11 @@ template class basic_string_view { using value_type = Char; using iterator = const Char*; - constexpr basic_string_view() FMT_NOEXCEPT : data_(nullptr), size_(0) {} + constexpr basic_string_view() noexcept : data_(nullptr), size_(0) {} /** Constructs a string reference object from a C string and a size. */ - constexpr basic_string_view(const Char* s, size_t count) FMT_NOEXCEPT - : data_(s), - size_(count) {} + constexpr basic_string_view(const Char* s, size_t count) noexcept + : data_(s), size_(count) {} /** \rst @@ -479,29 +464,28 @@ template class basic_string_view { /** Constructs a string reference from a ``std::basic_string`` object. */ template FMT_CONSTEXPR basic_string_view( - const std::basic_string& s) FMT_NOEXCEPT - : data_(s.data()), - size_(s.size()) {} + const std::basic_string& s) noexcept + : data_(s.data()), size_(s.size()) {} template >::value)> - FMT_CONSTEXPR basic_string_view(S s) FMT_NOEXCEPT : data_(s.data()), - size_(s.size()) {} + FMT_CONSTEXPR basic_string_view(S s) noexcept + : data_(s.data()), size_(s.size()) {} /** Returns a pointer to the string data. */ - constexpr auto data() const FMT_NOEXCEPT -> const Char* { return data_; } + constexpr auto data() const noexcept -> const Char* { return data_; } /** Returns the string size. */ - constexpr auto size() const FMT_NOEXCEPT -> size_t { return size_; } + constexpr auto size() const noexcept -> size_t { return size_; } - constexpr auto begin() const FMT_NOEXCEPT -> iterator { return data_; } - constexpr auto end() const FMT_NOEXCEPT -> iterator { return data_ + size_; } + constexpr auto begin() const noexcept -> iterator { return data_; } + constexpr auto end() const noexcept -> iterator { return data_ + size_; } - constexpr auto operator[](size_t pos) const FMT_NOEXCEPT -> const Char& { + constexpr auto operator[](size_t pos) const noexcept -> const Char& { return data_[pos]; } - FMT_CONSTEXPR void remove_prefix(size_t n) FMT_NOEXCEPT { + FMT_CONSTEXPR void remove_prefix(size_t n) noexcept { data_ += n; size_ -= n; } @@ -648,16 +632,14 @@ class basic_format_parse_context : private ErrorHandler { Returns an iterator to the beginning of the format string range being parsed. */ - constexpr auto begin() const FMT_NOEXCEPT -> iterator { + constexpr auto begin() const noexcept -> iterator { return format_str_.begin(); } /** Returns an iterator past the end of the format string range being parsed. */ - constexpr auto end() const FMT_NOEXCEPT -> iterator { - return format_str_.end(); - } + constexpr auto end() const noexcept -> iterator { return format_str_.end(); } /** Advances the begin iterator to ``it``. */ FMT_CONSTEXPR void advance_to(iterator it) { @@ -784,18 +766,16 @@ template class buffer { protected: // Don't initialize ptr_ since it is not accessed to save a few cycles. FMT_MSC_WARNING(suppress : 26495) - buffer(size_t sz) FMT_NOEXCEPT : size_(sz), capacity_(sz) {} + buffer(size_t sz) noexcept : size_(sz), capacity_(sz) {} - FMT_CONSTEXPR20 buffer(T* p = nullptr, size_t sz = 0, - size_t cap = 0) FMT_NOEXCEPT : ptr_(p), - size_(sz), - capacity_(cap) {} + FMT_CONSTEXPR20 buffer(T* p = nullptr, size_t sz = 0, size_t cap = 0) noexcept + : ptr_(p), size_(sz), capacity_(cap) {} FMT_CONSTEXPR20 ~buffer() = default; buffer(buffer&&) = default; /** Sets the buffer data and capacity. */ - FMT_CONSTEXPR void set(T* buf_data, size_t buf_capacity) FMT_NOEXCEPT { + FMT_CONSTEXPR void set(T* buf_data, size_t buf_capacity) noexcept { ptr_ = buf_data; capacity_ = buf_capacity; } @@ -810,23 +790,23 @@ template class buffer { buffer(const buffer&) = delete; void operator=(const buffer&) = delete; - auto begin() FMT_NOEXCEPT -> T* { return ptr_; } - auto end() FMT_NOEXCEPT -> T* { return ptr_ + size_; } + auto begin() noexcept -> T* { return ptr_; } + auto end() noexcept -> T* { return ptr_ + size_; } - auto begin() const FMT_NOEXCEPT -> const T* { return ptr_; } - auto end() const FMT_NOEXCEPT -> const T* { return ptr_ + size_; } + auto begin() const noexcept -> const T* { return ptr_; } + auto end() const noexcept -> const T* { return ptr_ + size_; } /** Returns the size of this buffer. */ - constexpr auto size() const FMT_NOEXCEPT -> size_t { return size_; } + constexpr auto size() const noexcept -> size_t { return size_; } /** Returns the capacity of this buffer. */ - constexpr auto capacity() const FMT_NOEXCEPT -> size_t { return capacity_; } + constexpr auto capacity() const noexcept -> size_t { return capacity_; } /** Returns a pointer to the buffer data. */ - FMT_CONSTEXPR auto data() FMT_NOEXCEPT -> T* { return ptr_; } + FMT_CONSTEXPR auto data() noexcept -> T* { return ptr_; } /** Returns a pointer to the buffer data. */ - FMT_CONSTEXPR auto data() const FMT_NOEXCEPT -> const T* { return ptr_; } + FMT_CONSTEXPR auto data() const noexcept -> const T* { return ptr_; } /** Clears this buffer. */ void clear() { size_ = 0; } @@ -1044,7 +1024,11 @@ struct fallback_formatter { // Specifies if T has an enabled fallback_formatter specialization. template using has_fallback_formatter = +#ifdef FMT_DEPRECATED_OSTREAM std::is_constructible>; +#else + std::false_type; +#endif struct view {}; @@ -1164,8 +1148,8 @@ FMT_TYPE_CONSTANT(int, int_type); FMT_TYPE_CONSTANT(unsigned, uint_type); FMT_TYPE_CONSTANT(long long, long_long_type); FMT_TYPE_CONSTANT(unsigned long long, ulong_long_type); -FMT_TYPE_CONSTANT(int128_t, int128_type); -FMT_TYPE_CONSTANT(uint128_t, uint128_type); +FMT_TYPE_CONSTANT(int128_opt, int128_type); +FMT_TYPE_CONSTANT(uint128_opt, uint128_type); FMT_TYPE_CONSTANT(bool, bool_type); FMT_TYPE_CONSTANT(Char, char_type); FMT_TYPE_CONSTANT(float, float_type); @@ -1215,8 +1199,8 @@ template class value { unsigned uint_value; long long long_long_value; unsigned long long ulong_long_value; - int128_t int128_value; - uint128_t uint128_value; + int128_opt int128_value; + uint128_opt uint128_value; bool bool_value; char_type char_value; float float_value; @@ -1233,8 +1217,8 @@ template class value { constexpr FMT_INLINE value(unsigned val) : uint_value(val) {} constexpr FMT_INLINE value(long long val) : long_long_value(val) {} constexpr FMT_INLINE value(unsigned long long val) : ulong_long_value(val) {} - FMT_INLINE value(int128_t val) : int128_value(val) {} - FMT_INLINE value(uint128_t val) : uint128_value(val) {} + FMT_INLINE value(int128_opt val) : int128_value(val) {} + FMT_INLINE value(uint128_opt val) : uint128_value(val) {} constexpr FMT_INLINE value(float val) : float_value(val) {} constexpr FMT_INLINE value(double val) : double_value(val) {} FMT_INLINE value(long double val) : long_double_value(val) {} @@ -1284,7 +1268,7 @@ template class value { }; template -FMT_CONSTEXPR auto make_arg(const T& value) -> basic_format_arg; +FMT_CONSTEXPR auto make_arg(T&& value) -> basic_format_arg; // To minimize the number of types we need to deal with, long is translated // either to int or to long long depending on its size. @@ -1292,6 +1276,21 @@ enum { long_short = sizeof(long) == sizeof(int) }; using long_type = conditional_t; using ulong_type = conditional_t; +#ifdef __cpp_lib_byte +inline auto format_as(std::byte b) -> unsigned char { + return static_cast(b); +} +#endif + +template struct has_format_as { + template ::value&& std::is_integral::value)> + static auto check(U*) -> std::true_type; + static auto check(...) -> std::false_type; + + enum { value = decltype(check(static_cast(nullptr)))::value }; +}; + // Maps formatting arguments to core types. // arg_mapper reports errors by returning unformattable instead of using // static_assert because it's used in the is_formattable trait. @@ -1317,8 +1316,12 @@ template struct arg_mapper { -> unsigned long long { return val; } - FMT_CONSTEXPR FMT_INLINE auto map(int128_t val) -> int128_t { return val; } - FMT_CONSTEXPR FMT_INLINE auto map(uint128_t val) -> uint128_t { return val; } + FMT_CONSTEXPR FMT_INLINE auto map(int128_opt val) -> int128_opt { + return val; + } + FMT_CONSTEXPR FMT_INLINE auto map(uint128_opt val) -> uint128_opt { + return val; + } FMT_CONSTEXPR FMT_INLINE auto map(bool val) -> bool { return val; } template ::value || @@ -1365,20 +1368,19 @@ template struct arg_mapper { } template , T>::value && + std::is_convertible>::value && !is_string::value && !has_formatter::value && !has_fallback_formatter::value)> FMT_CONSTEXPR FMT_INLINE auto map(const T& val) -> basic_string_view { return basic_string_view(val); } - template < - typename T, - FMT_ENABLE_IF( - std::is_constructible, T>::value && - !std::is_constructible, T>::value && - !is_string::value && !has_formatter::value && - !has_fallback_formatter::value)> + template >::value && + !std::is_convertible>::value && + !is_string::value && !has_formatter::value && + !has_fallback_formatter::value)> FMT_CONSTEXPR FMT_INLINE auto map(const T& val) -> basic_string_view { return std_string_view(val); @@ -1417,10 +1419,11 @@ template struct arg_mapper { template < typename T, FMT_ENABLE_IF( - std::is_member_pointer::value || + std::is_pointer::value || std::is_member_pointer::value || std::is_function::type>::value || (std::is_convertible::value && - !std::is_convertible::value))> + !std::is_convertible::value && + !has_formatter::value))> FMT_CONSTEXPR auto map(const T&) -> unformattable_pointer { return {}; } @@ -1438,12 +1441,15 @@ template struct arg_mapper { !has_fallback_formatter::value)> FMT_CONSTEXPR FMT_INLINE auto map(const T& val) -> decltype(std::declval().map( - static_cast::type>(val))) { - return map(static_cast::type>(val)); + static_cast>(val))) { + return map(static_cast>(val)); } - FMT_CONSTEXPR FMT_INLINE auto map(detail::byte val) -> unsigned { - return map(static_cast(val)); + template ::value && + !has_formatter::value)> + FMT_CONSTEXPR FMT_INLINE auto map(const T& val) + -> decltype(std::declval().map(format_as(T()))) { + return map(format_as(val)); } template > @@ -1452,8 +1458,9 @@ template struct arg_mapper { !std::is_const>::value || has_fallback_formatter::value> {}; -#if FMT_MSC_VER != 0 && FMT_MSC_VER < 1910 - // Workaround a bug in MSVC. +#if (FMT_MSC_VER != 0 && FMT_MSC_VER < 1910) || FMT_ICC_VERSION != 0 || \ + FMT_NVCC != 0 + // Workaround a bug in MSVC and Intel (Issue 2746). template FMT_CONSTEXPR FMT_INLINE auto do_map(T&& val) -> T& { return val; } @@ -1471,6 +1478,8 @@ template struct arg_mapper { template , FMT_ENABLE_IF(!is_string::value && !is_char::value && !std::is_array::value && + !std::is_pointer::value && + !has_format_as::value && (has_formatter::value || has_fallback_formatter::value))> FMT_CONSTEXPR FMT_INLINE auto map(T&& val) @@ -1513,12 +1522,12 @@ class appender : public std::back_insert_iterator> { public: using std::back_insert_iterator>::back_insert_iterator; - appender(base it) FMT_NOEXCEPT : base(it) {} - using _Unchecked_type = appender; // Mark iterator as checked. + appender(base it) noexcept : base(it) {} + FMT_UNCHECKED_ITERATOR(appender); - auto operator++() FMT_NOEXCEPT -> appender& { return *this; } + auto operator++() noexcept -> appender& { return *this; } - auto operator++(int) FMT_NOEXCEPT -> appender { return *this; } + auto operator++(int) noexcept -> appender { return *this; } }; // A formatting argument. It is a trivially copyable/constructible type to @@ -1529,7 +1538,7 @@ template class basic_format_arg { detail::type type_; template - friend FMT_CONSTEXPR auto detail::make_arg(const T& value) + friend FMT_CONSTEXPR auto detail::make_arg(T&& value) -> basic_format_arg; template @@ -1564,7 +1573,7 @@ template class basic_format_arg { constexpr basic_format_arg() : type_(detail::type::none_type) {} - constexpr explicit operator bool() const FMT_NOEXCEPT { + constexpr explicit operator bool() const noexcept { return type_ != detail::type::none_type; } @@ -1674,7 +1683,7 @@ class locale_ref { constexpr locale_ref() : locale_(nullptr) {} template explicit locale_ref(const Locale& loc); - explicit operator bool() const FMT_NOEXCEPT { return locale_ != nullptr; } + explicit operator bool() const noexcept { return locale_ != nullptr; } template auto get() const -> Locale; }; @@ -1690,19 +1699,7 @@ constexpr auto encode_types() -> unsigned long long { } template -FMT_CONSTEXPR auto make_arg(const T& value) -> basic_format_arg { - basic_format_arg arg; - arg.type_ = mapped_type_constant::value; - arg.value_ = arg_mapper().map(value); - return arg; -} - -// The type template parameter is there to avoid an ODR violation when using -// a fallback formatter in one translation unit and an implicit conversion in -// another (not recommended). -template -FMT_CONSTEXPR FMT_INLINE auto make_arg(T&& val) -> value { +FMT_CONSTEXPR FMT_INLINE auto make_value(T&& val) -> value { const auto& arg = arg_mapper().map(std::forward(val)); constexpr bool formattable_char = @@ -1731,9 +1728,26 @@ FMT_CONSTEXPR FMT_INLINE auto make_arg(T&& val) -> value { return {arg}; } +template +FMT_CONSTEXPR auto make_arg(T&& value) -> basic_format_arg { + basic_format_arg arg; + arg.type_ = mapped_type_constant::value; + arg.value_ = make_value(value); + return arg; +} + +// The type template parameter is there to avoid an ODR violation when using +// a fallback formatter in one translation unit and an implicit conversion in +// another (not recommended). +template +FMT_CONSTEXPR FMT_INLINE auto make_arg(T&& val) -> value { + return make_value(val); +} + template -inline auto make_arg(const T& value) -> basic_format_arg { +FMT_CONSTEXPR inline auto make_arg(T&& value) -> basic_format_arg { return make_arg(value); } FMT_END_DETAIL_NAMESPACE @@ -2015,14 +2029,23 @@ template class basic_format_args { // between clang and gcc on ARM (#1919). using format_args = basic_format_args; -// We cannot use enum classes as bit fields because of a gcc bug +// We cannot use enum classes as bit fields because of a gcc bug, +// so we put them in namespaces instead. // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414. +// Additionally, if an underlying type is specified, older gcc incorrectly warns +// that the type is too small for all the enum values. +// Both these bugs are fixed as of gcc 9.3. +#if FMT_GCC_VERSION && FMT_GCC_VERSION < 903 +# define FMT_ENUM_UNDERLYING_TYPE(type) +#else +# define FMT_ENUM_UNDERLYING_TYPE(type) : type +#endif namespace align { -enum type { none, left, right, center, numeric }; +enum type FMT_ENUM_UNDERLYING_TYPE(unsigned char) { none, left, right, center, numeric }; } using align_t = align::type; namespace sign { -enum type { none, minus, plus, space }; +enum type FMT_ENUM_UNDERLYING_TYPE(unsigned char) { none, minus, plus, space }; } using sign_t = sign::type; @@ -2072,7 +2095,8 @@ enum class presentation_type : unsigned char { general_upper, // 'G' chr, // 'c' string, // 's' - pointer // 'p' + pointer, // 'p' + debug // '?' }; // Format specifiers for built-in and string types. @@ -2231,13 +2255,12 @@ template constexpr bool is_ascii_letter(Char c) { // Converts a character to ASCII. Returns a number > 127 on conversion failure. template ::value)> -constexpr auto to_ascii(Char value) -> Char { - return value; +constexpr auto to_ascii(Char c) -> Char { + return c; } template ::value)> -constexpr auto to_ascii(Char value) -> - typename std::underlying_type::type { - return value; +constexpr auto to_ascii(Char c) -> underlying_t { + return c; } template @@ -2302,7 +2325,7 @@ FMT_CONSTEXPR auto parse_align(const Char* begin, const Char* end, FMT_ASSERT(begin != end, ""); auto align = align::none; auto p = begin + code_point_length(begin); - if (p >= end) p = begin; + if (end - p <= 0) p = begin; for (;;) { switch (to_ascii(*p)) { case '<': @@ -2488,6 +2511,8 @@ FMT_CONSTEXPR auto parse_presentation_type(Char type) -> presentation_type { return presentation_type::string; case 'p': return presentation_type::pointer; + case '?': + return presentation_type::debug; default: return presentation_type::none; } @@ -2661,17 +2686,27 @@ FMT_CONSTEXPR FMT_INLINE void parse_format_string( } } +template ::value> struct strip_named_arg { + using type = T; +}; + +template struct strip_named_arg { + using type = remove_cvref_t; +}; + template FMT_CONSTEXPR auto parse_format_specs(ParseContext& ctx) -> decltype(ctx.begin()) { using char_type = typename ParseContext::char_type; using context = buffer_context; + using stripped_type = typename strip_named_arg::type; using mapped_type = conditional_t< mapped_type_constant::value != type::custom_type, - decltype(arg_mapper().map(std::declval())), T>; + decltype(arg_mapper().map(std::declval())), + stripped_type>; auto f = conditional_t::value, formatter, - fallback_formatter>(); + fallback_formatter>(); return f.parse(ctx); } @@ -2717,7 +2752,8 @@ template FMT_CONSTEXPR auto check_char_specs(const basic_format_specs& specs, ErrorHandler&& eh = {}) -> bool { if (specs.type != presentation_type::none && - specs.type != presentation_type::chr) { + specs.type != presentation_type::chr && + specs.type != presentation_type::debug) { check_int_type_spec(specs.type, eh); return false; } @@ -2741,7 +2777,6 @@ struct float_specs { bool upper : 1; bool locale : 1; bool binary32 : 1; - bool fallback : 1; bool showpoint : 1; }; @@ -2801,7 +2836,8 @@ FMT_CONSTEXPR auto check_cstring_type_spec(presentation_type type, template FMT_CONSTEXPR void check_string_type_spec(presentation_type type, ErrorHandler&& eh = {}) { - if (type != presentation_type::none && type != presentation_type::string) + if (type != presentation_type::none && type != presentation_type::string && + type != presentation_type::debug) eh.on_error("invalid type specifier"); } @@ -2835,7 +2871,8 @@ template class specs_checker : public Handler { FMT_CONSTEXPR void on_sign(sign_t s) { require_numeric_argument(); if (is_integral_type(arg_type_) && arg_type_ != type::int_type && - arg_type_ != type::long_long_type && arg_type_ != type::char_type) { + arg_type_ != type::long_long_type && arg_type_ != type::int128_type && + arg_type_ != type::char_type) { this->on_error("format specifier requires signed argument"); } Handler::on_sign(s); @@ -3043,6 +3080,27 @@ struct formatter decltype(ctx.out()); }; +#define FMT_FORMAT_AS(Type, Base) \ + template \ + struct formatter : formatter { \ + template \ + auto format(Type const& val, FormatContext& ctx) const \ + -> decltype(ctx.out()) { \ + return formatter::format(static_cast(val), ctx); \ + } \ + } + +FMT_FORMAT_AS(signed char, int); +FMT_FORMAT_AS(unsigned char, unsigned); +FMT_FORMAT_AS(short, int); +FMT_FORMAT_AS(unsigned short, unsigned); +FMT_FORMAT_AS(long, long long); +FMT_FORMAT_AS(unsigned long, unsigned long long); +FMT_FORMAT_AS(Char*, const Char*); +FMT_FORMAT_AS(std::basic_string, basic_string_view); +FMT_FORMAT_AS(std::nullptr_t, const void*); +FMT_FORMAT_AS(detail::std_string_view, basic_string_view); + template struct basic_runtime { basic_string_view str; }; /** A compile-time format string. */ diff --git a/Externals/fmt/include/fmt/format-inl.h b/Externals/fmt/include/fmt/format-inl.h index 2c51c50aeb..feb7815d65 100755 --- a/Externals/fmt/include/fmt/format-inl.h +++ b/Externals/fmt/include/fmt/format-inl.h @@ -44,21 +44,8 @@ FMT_FUNC void throw_format_error(const char* message) { FMT_THROW(format_error(message)); } -#ifndef _MSC_VER -# define FMT_SNPRINTF snprintf -#else // _MSC_VER -inline int fmt_snprintf(char* buffer, size_t size, const char* format, ...) { - va_list args; - va_start(args, format); - int result = vsnprintf_s(buffer, size, _TRUNCATE, format, args); - va_end(args); - return result; -} -# define FMT_SNPRINTF fmt_snprintf -#endif // _MSC_VER - FMT_FUNC void format_error_code(detail::buffer& out, int error_code, - string_view message) FMT_NOEXCEPT { + string_view message) noexcept { // Report error code making sure that the output fits into // inline_buffer_size to avoid dynamic memory allocation and potential // bad_alloc. @@ -81,7 +68,7 @@ FMT_FUNC void format_error_code(detail::buffer& out, int error_code, } FMT_FUNC void report_error(format_func func, int error_code, - const char* message) FMT_NOEXCEPT { + const char* message) noexcept { memory_buffer full_message; func(full_message, error_code, message); // Don't use fwrite_fully because the latter may throw. @@ -130,7 +117,7 @@ template FMT_FUNC Char decimal_point_impl(locale_ref) { } // namespace detail #if !FMT_MSC_VER -FMT_API FMT_FUNC format_error::~format_error() FMT_NOEXCEPT = default; +FMT_API FMT_FUNC format_error::~format_error() noexcept = default; #endif FMT_FUNC std::system_error vsystem_error(int error_code, string_view format_str, @@ -141,17 +128,6 @@ FMT_FUNC std::system_error vsystem_error(int error_code, string_view format_str, namespace detail { -template <> FMT_FUNC int count_digits<4>(detail::fallback_uintptr n) { - // fallback_uintptr is always stored in little endian. - int i = static_cast(sizeof(void*)) - 1; - while (i > 0 && n.value[i] == 0) --i; - auto char_digits = std::numeric_limits::digits / 4; - return i >= 0 ? i * char_digits + count_digits<4, unsigned>(n.value[i]) : 1; -} - -// log10(2) = 0x0.4d104d427de7fbcc... -static constexpr uint64_t log10_2_significand = 0x4d104d427de7fbcc; - template struct basic_impl_data { // Normalized 64-bit significands of pow(10, k), for k = -348, -340, ..., 340. // These are generated by support/compute-powers.py. @@ -226,68 +202,55 @@ template struct bits { static_cast(sizeof(T) * std::numeric_limits::digits); }; -// Returns the number of significand bits in Float excluding the implicit bit. -template constexpr int num_significand_bits() { - // Subtract 1 to account for an implicit most significant bit in the - // normalized form. - return std::numeric_limits::digits - 1; -} - -// A floating-point number f * pow(2, e). -struct fp { - uint64_t f; +// A floating-point number f * pow(2, e) where F is an unsigned type. +template struct basic_fp { + F f; int e; - static constexpr const int num_significand_bits = bits::value; + static constexpr const int num_significand_bits = bits::value; - constexpr fp() : f(0), e(0) {} - constexpr fp(uint64_t f_val, int e_val) : f(f_val), e(e_val) {} + constexpr basic_fp() : f(0), e(0) {} + constexpr basic_fp(uint64_t f_val, int e_val) : f(f_val), e(e_val) {} - // Constructs fp from an IEEE754 floating-point number. It is a template to - // prevent compile errors on systems where n is not IEEE754. - template explicit FMT_CONSTEXPR fp(Float n) { assign(n); } + // Constructs fp from an IEEE754 floating-point number. + template FMT_CONSTEXPR basic_fp(Float n) { assign(n); } - template - using is_supported = bool_constant; - - // Assigns d to this and return true iff predecessor is closer than successor. - template ::value)> - FMT_CONSTEXPR bool assign(Float n) { - // Assume float is in the format [sign][exponent][significand]. - const int num_float_significand_bits = + // Assigns n to this and return true iff predecessor is closer than successor. + template FMT_CONSTEXPR auto assign(Float n) -> bool { + static_assert((std::numeric_limits::is_iec559 && + std::numeric_limits::digits <= 113) || + is_float128::value, + "unsupported FP"); + // Assume Float is in the format [sign][exponent][significand]. + using carrier_uint = typename dragonbox::float_info::carrier_uint; + const auto num_float_significand_bits = detail::num_significand_bits(); - const uint64_t implicit_bit = 1ULL << num_float_significand_bits; - const uint64_t significand_mask = implicit_bit - 1; - constexpr bool is_double = sizeof(Float) == sizeof(uint64_t); - auto u = bit_cast>(n); - f = u & significand_mask; - const uint64_t exponent_mask = (~0ULL >> 1) & ~significand_mask; - int biased_e = - static_cast((u & exponent_mask) >> num_float_significand_bits); + const auto implicit_bit = carrier_uint(1) << num_float_significand_bits; + const auto significand_mask = implicit_bit - 1; + auto u = bit_cast(n); + f = static_cast(u & significand_mask); + auto biased_e = static_cast((u & exponent_mask()) >> + num_float_significand_bits); // The predecessor is closer if n is a normalized power of 2 (f == 0) other // than the smallest normalized number (biased_e > 1). - bool is_predecessor_closer = f == 0 && biased_e > 1; - if (biased_e != 0) - f += implicit_bit; - else + auto is_predecessor_closer = f == 0 && biased_e > 1; + if (biased_e == 0) biased_e = 1; // Subnormals use biased exponent 1 (min exponent). - const int exponent_bias = std::numeric_limits::max_exponent - 1; - e = biased_e - exponent_bias - num_float_significand_bits; + else if (has_implicit_bit()) + f += static_cast(implicit_bit); + e = biased_e - exponent_bias() - num_float_significand_bits; + if (!has_implicit_bit()) ++e; return is_predecessor_closer; } - - template ::value)> - bool assign(Float) { - FMT_ASSERT(false, ""); - return false; - } }; +using fp = basic_fp; + // Normalizes the value converted from double and multiplied by (1 << SHIFT). -template FMT_CONSTEXPR fp normalize(fp value) { +template +FMT_CONSTEXPR basic_fp normalize(basic_fp value) { // Handle subnormals. - const uint64_t implicit_bit = 1ULL << num_significand_bits(); + const auto implicit_bit = F(1) << num_significand_bits(); const auto shifted_implicit_bit = implicit_bit << SHIFT; while ((value.f & shifted_implicit_bit) == 0) { value.f <<= 1; @@ -301,7 +264,9 @@ template FMT_CONSTEXPR fp normalize(fp value) { return value; } -inline bool operator==(fp x, fp y) { return x.f == y.f && x.e == y.e; } +template inline bool operator==(basic_fp x, basic_fp y) { + return x.f == y.f && x.e == y.e; +} // Computes lhs * rhs / pow(2, 64) rounded to nearest with half-up tie breaking. FMT_CONSTEXPR inline uint64_t multiply(uint64_t lhs, uint64_t rhs) { @@ -330,7 +295,8 @@ FMT_CONSTEXPR inline fp operator*(fp x, fp y) { FMT_CONSTEXPR inline fp get_cached_power(int min_exponent, int& pow10_exponent) { const int shift = 32; - const auto significand = static_cast(log10_2_significand); + // log10(2) = 0x0.4d104d427de7fbcc... + const int64_t significand = 0x4d104d427de7fbcc; int index = static_cast( ((min_exponent + fp::num_significand_bits - 1) * (significand >> shift) + ((int64_t(1) << shift) - 1)) // ceil @@ -346,29 +312,6 @@ FMT_CONSTEXPR inline fp get_cached_power(int min_exponent, impl_data::pow10_exponents[index]}; } -// A simple accumulator to hold the sums of terms in bigint::square if uint128_t -// is not available. -struct accumulator { - uint64_t lower; - uint64_t upper; - - constexpr accumulator() : lower(0), upper(0) {} - constexpr explicit operator uint32_t() const { - return static_cast(lower); - } - - FMT_CONSTEXPR void operator+=(uint64_t n) { - lower += n; - if (lower < n) ++upper; - } - FMT_CONSTEXPR void operator>>=(int shift) { - FMT_ASSERT(shift == 32, ""); - (void)shift; - lower = (upper << 32) | (lower >> 32); - upper >>= 32; - } -}; - class bigint { private: // A bigint is stored as an array of bigits (big digits), with bigit at index @@ -425,29 +368,42 @@ class bigint { if (carry != 0) bigits_.push_back(carry); } - FMT_CONSTEXPR20 void multiply(uint64_t value) { - const bigit mask = ~bigit(0); - const double_bigit lower = value & mask; - const double_bigit upper = value >> bigit_bits; - double_bigit carry = 0; + template ::value || + std::is_same::value)> + FMT_CONSTEXPR20 void multiply(UInt value) { + using half_uint = + conditional_t::value, uint64_t, uint32_t>; + const int shift = num_bits() - bigit_bits; + const UInt lower = static_cast(value); + const UInt upper = value >> num_bits(); + UInt carry = 0; for (size_t i = 0, n = bigits_.size(); i < n; ++i) { - double_bigit result = bigits_[i] * lower + (carry & mask); - carry = - bigits_[i] * upper + (result >> bigit_bits) + (carry >> bigit_bits); + UInt result = lower * bigits_[i] + static_cast(carry); + carry = (upper * bigits_[i] << shift) + (result >> bigit_bits) + + (carry >> bigit_bits); bigits_[i] = static_cast(result); } while (carry != 0) { - bigits_.push_back(carry & mask); + bigits_.push_back(static_cast(carry)); carry >>= bigit_bits; } } + template ::value || + std::is_same::value)> + FMT_CONSTEXPR20 void assign(UInt n) { + size_t num_bigits = 0; + do { + bigits_[num_bigits++] = static_cast(n); + n >>= bigit_bits; + } while (n != 0); + bigits_.resize(num_bigits); + exp_ = 0; + } + public: FMT_CONSTEXPR20 bigint() : exp_(0) {} explicit bigint(uint64_t n) { assign(n); } - FMT_CONSTEXPR20 ~bigint() { - FMT_ASSERT(bigits_.capacity() <= bigits_capacity, ""); - } bigint(const bigint&) = delete; void operator=(const bigint&) = delete; @@ -460,14 +416,9 @@ class bigint { exp_ = other.exp_; } - FMT_CONSTEXPR20 void assign(uint64_t n) { - size_t num_bigits = 0; - do { - bigits_[num_bigits++] = n & ~bigit(0); - n >>= bigit_bits; - } while (n != 0); - bigits_.resize(num_bigits); - exp_ = 0; + template FMT_CONSTEXPR20 void operator=(Int n) { + FMT_ASSERT(n > 0, ""); + assign(uint64_or_128_t(n)); } FMT_CONSTEXPR20 int num_bigits() const { @@ -538,14 +489,14 @@ class bigint { // Assigns pow(10, exp) to this bigint. FMT_CONSTEXPR20 void assign_pow10(int exp) { FMT_ASSERT(exp >= 0, ""); - if (exp == 0) return assign(1); + if (exp == 0) return *this = 1; // Find the top bit. int bitmask = 1; while (exp >= bitmask) bitmask <<= 1; bitmask >>= 1; // pow(10, exp) = pow(5, exp) * pow(2, exp). First compute pow(5, exp) by // repeated squaring and multiplication. - assign(5); + *this = 5; bitmask >>= 1; while (bitmask != 0) { square(); @@ -560,8 +511,7 @@ class bigint { int num_result_bigits = 2 * num_bigits; basic_memory_buffer n(std::move(bigits_)); bigits_.resize(to_unsigned(num_result_bigits)); - using accumulator_t = conditional_t; - auto sum = accumulator_t(); + auto sum = uint128_t(); for (int bigit_index = 0; bigit_index < num_bigits; ++bigit_index) { // Compute bigit at position bigit_index of the result by adding // cross-product terms n[i] * n[j] such that i + j == bigit_index. @@ -685,6 +635,14 @@ struct gen_digits_handler { } }; +inline FMT_CONSTEXPR20 void adjust_precision(int& precision, int exp10) { + // Adjust fixed precision by exponent because it is relative to decimal + // point. + if (exp10 > 0 && precision > max_value() - exp10) + FMT_THROW(format_error("number is too big")); + precision += exp10; +} + // Generates output using the Grisu digit-gen algorithm. // error: the size of the region (lower, upper) outside of which numbers // definitely do not round to value (Delta in Grisu3). @@ -702,14 +660,7 @@ FMT_INLINE FMT_CONSTEXPR20 digits::result grisu_gen_digits( exp = count_digits(integral); // kappa in Grisu. // Non-fixed formats require at least one digit and no precision adjustment. if (handler.fixed) { - // Adjust fixed precision by exponent because it is relative to decimal - // point. - int precision_offset = exp + handler.exp10; - if (precision_offset > 0 && - handler.precision > max_value() - precision_offset) { - FMT_THROW(format_error("number is too big")); - } - handler.precision += precision_offset; + adjust_precision(handler.precision, exp + handler.exp10); // Check if precision is satisfied just by leading zeros, e.g. // format("{:.2f}", 0.001) gives "0.00" without generating any digits. if (handler.precision <= 0) { @@ -785,66 +736,53 @@ FMT_INLINE FMT_CONSTEXPR20 digits::result grisu_gen_digits( } } -// A 128-bit integer type used internally, -struct uint128_wrapper { - uint128_wrapper() = default; - -#if FMT_USE_INT128 - uint128_t internal_; - - constexpr uint128_wrapper(uint64_t high, uint64_t low) FMT_NOEXCEPT - : internal_{static_cast(low) | - (static_cast(high) << 64)} {} - - constexpr uint128_wrapper(uint128_t u) : internal_{u} {} - - constexpr uint64_t high() const FMT_NOEXCEPT { - return uint64_t(internal_ >> 64); - } - constexpr uint64_t low() const FMT_NOEXCEPT { return uint64_t(internal_); } - - uint128_wrapper& operator+=(uint64_t n) FMT_NOEXCEPT { - internal_ += n; +inline FMT_CONSTEXPR20 uint128_fallback& uint128_fallback::operator+=( + uint64_t n) noexcept { + if (is_constant_evaluated()) { + lo_ += n; + hi_ += (lo_ < n ? 1 : 0); return *this; } -#else - uint64_t high_; - uint64_t low_; - - constexpr uint128_wrapper(uint64_t high, uint64_t low) FMT_NOEXCEPT - : high_{high}, - low_{low} {} - - constexpr uint64_t high() const FMT_NOEXCEPT { return high_; } - constexpr uint64_t low() const FMT_NOEXCEPT { return low_; } - - uint128_wrapper& operator+=(uint64_t n) FMT_NOEXCEPT { -# if defined(_MSC_VER) && defined(_M_X64) - unsigned char carry = _addcarry_u64(0, low_, n, &low_); - _addcarry_u64(carry, high_, 0, &high_); - return *this; -# else - uint64_t sum = low_ + n; - high_ += (sum < low_ ? 1 : 0); - low_ = sum; - return *this; -# endif - } -#endif -}; - -// Implementation of Dragonbox algorithm: https://github.com/jk-jeon/dragonbox. -namespace dragonbox { -// Computes 128-bit result of multiplication of two 64-bit unsigned integers. -inline uint128_wrapper umul128(uint64_t x, uint64_t y) FMT_NOEXCEPT { -#if FMT_USE_INT128 - return static_cast(x) * static_cast(y); +#if FMT_HAS_BUILTIN(__builtin_addcll) + unsigned long long carry; + lo_ = __builtin_addcll(lo_, n, 0, &carry); + hi_ += carry; +#elif FMT_HAS_BUILTIN(__builtin_ia32_addcarryx_u64) + unsigned long long result; + auto carry = __builtin_ia32_addcarryx_u64(0, lo_, n, &result); + lo_ = result; + hi_ += carry; #elif defined(_MSC_VER) && defined(_M_X64) - uint128_wrapper result; - result.low_ = _umul128(x, y, &result.high_); + auto carry = _addcarry_u64(0, lo_, n, &lo_); + _addcarry_u64(carry, hi_, 0, &hi_); +#else + lo_ += n; + hi_ += (lo_ < n ? 1 : 0); +#endif + return *this; +} + +// Compilers should be able to optimize this into the ror instruction. +FMT_CONSTEXPR inline uint32_t rotr(uint32_t n, uint32_t r) noexcept { + r &= 31; + return (n >> r) | (n << (32 - r)); +} +FMT_CONSTEXPR inline uint64_t rotr(uint64_t n, uint32_t r) noexcept { + r &= 63; + return (n >> r) | (n << (64 - r)); +} + +// Computes 128-bit result of multiplication of two 64-bit unsigned integers. +inline uint128_fallback umul128(uint64_t x, uint64_t y) noexcept { +#if FMT_USE_INT128 + auto p = static_cast(x) * static_cast(y); + return {static_cast(p >> 64), static_cast(p)}; +#elif defined(_MSC_VER) && defined(_M_X64) + auto result = uint128_fallback(); + result.lo_ = _umul128(x, y, &result.hi_); return result; #else - const uint64_t mask = (uint64_t(1) << 32) - uint64_t(1); + const uint64_t mask = static_cast(max_value()); uint64_t a = x >> 32; uint64_t b = x & mask; @@ -863,10 +801,12 @@ inline uint128_wrapper umul128(uint64_t x, uint64_t y) FMT_NOEXCEPT { #endif } +// Implementation of Dragonbox algorithm: https://github.com/jk-jeon/dragonbox. +namespace dragonbox { // Computes upper 64 bits of multiplication of two 64-bit unsigned integers. -inline uint64_t umul128_upper64(uint64_t x, uint64_t y) FMT_NOEXCEPT { +inline uint64_t umul128_upper64(uint64_t x, uint64_t y) noexcept { #if FMT_USE_INT128 - auto p = static_cast(x) * static_cast(y); + auto p = static_cast(x) * static_cast(y); return static_cast(p >> 64); #elif defined(_MSC_VER) && defined(_M_X64) return __umulh(x, y); @@ -875,170 +815,105 @@ inline uint64_t umul128_upper64(uint64_t x, uint64_t y) FMT_NOEXCEPT { #endif } -// Computes upper 64 bits of multiplication of a 64-bit unsigned integer and a +// Computes upper 128 bits of multiplication of a 64-bit unsigned integer and a // 128-bit unsigned integer. -inline uint64_t umul192_upper64(uint64_t x, uint128_wrapper y) FMT_NOEXCEPT { - uint128_wrapper g0 = umul128(x, y.high()); - g0 += umul128_upper64(x, y.low()); - return g0.high(); +inline uint128_fallback umul192_upper128(uint64_t x, + uint128_fallback y) noexcept { + uint128_fallback r = umul128(x, y.high()); + r += umul128_upper64(x, y.low()); + return r; } -// Computes upper 32 bits of multiplication of a 32-bit unsigned integer and a +// Computes upper 64 bits of multiplication of a 32-bit unsigned integer and a // 64-bit unsigned integer. -inline uint32_t umul96_upper32(uint32_t x, uint64_t y) FMT_NOEXCEPT { - return static_cast(umul128_upper64(x, y)); +inline uint64_t umul96_upper64(uint32_t x, uint64_t y) noexcept { + return umul128_upper64(static_cast(x) << 32, y); } -// Computes middle 64 bits of multiplication of a 64-bit unsigned integer and a +// Computes lower 128 bits of multiplication of a 64-bit unsigned integer and a // 128-bit unsigned integer. -inline uint64_t umul192_middle64(uint64_t x, uint128_wrapper y) FMT_NOEXCEPT { - uint64_t g01 = x * y.high(); - uint64_t g10 = umul128_upper64(x, y.low()); - return g01 + g10; +inline uint128_fallback umul192_lower128(uint64_t x, + uint128_fallback y) noexcept { + uint64_t high = x * y.high(); + uint128_fallback high_low = umul128(x, y.low()); + return {high + high_low.high(), high_low.low()}; } // Computes lower 64 bits of multiplication of a 32-bit unsigned integer and a // 64-bit unsigned integer. -inline uint64_t umul96_lower64(uint32_t x, uint64_t y) FMT_NOEXCEPT { +inline uint64_t umul96_lower64(uint32_t x, uint64_t y) noexcept { return x * y; } -// Computes floor(log10(pow(2, e))) for e in [-1700, 1700] using the method from -// https://fmt.dev/papers/Grisu-Exact.pdf#page=5, section 3.4. -inline int floor_log10_pow2(int e) FMT_NOEXCEPT { - FMT_ASSERT(e <= 1700 && e >= -1700, "too large exponent"); - const int shift = 22; - return (e * static_cast(log10_2_significand >> (64 - shift))) >> shift; +// Computes floor(log10(pow(2, e))) for e in [-2620, 2620] using the method from +// https://fmt.dev/papers/Dragonbox.pdf#page=28, section 6.1. +inline int floor_log10_pow2(int e) noexcept { + FMT_ASSERT(e <= 2620 && e >= -2620, "too large exponent"); + static_assert((-1 >> 1) == -1, "right shift is not arithmetic"); + return (e * 315653) >> 20; } // Various fast log computations. -inline int floor_log2_pow10(int e) FMT_NOEXCEPT { +inline int floor_log2_pow10(int e) noexcept { FMT_ASSERT(e <= 1233 && e >= -1233, "too large exponent"); - const uint64_t log2_10_integer_part = 3; - const uint64_t log2_10_fractional_digits = 0x5269e12f346e2bf9; - const int shift_amount = 19; - return (e * static_cast( - (log2_10_integer_part << shift_amount) | - (log2_10_fractional_digits >> (64 - shift_amount)))) >> - shift_amount; + return (e * 1741647) >> 19; } -inline int floor_log10_pow2_minus_log10_4_over_3(int e) FMT_NOEXCEPT { - FMT_ASSERT(e <= 1700 && e >= -1700, "too large exponent"); - const uint64_t log10_4_over_3_fractional_digits = 0x1ffbfc2bbc780375; - const int shift_amount = 22; - return (e * static_cast(log10_2_significand >> (64 - shift_amount)) - - static_cast(log10_4_over_3_fractional_digits >> - (64 - shift_amount))) >> - shift_amount; +inline int floor_log10_pow2_minus_log10_4_over_3(int e) noexcept { + FMT_ASSERT(e <= 2936 && e >= -2985, "too large exponent"); + return (e * 631305 - 261663) >> 21; } -// Returns true iff x is divisible by pow(2, exp). -inline bool divisible_by_power_of_2(uint32_t x, int exp) FMT_NOEXCEPT { - FMT_ASSERT(exp >= 1, ""); - FMT_ASSERT(x != 0, ""); -#ifdef FMT_BUILTIN_CTZ - return FMT_BUILTIN_CTZ(x) >= exp; -#else - return exp < num_bits() && x == ((x >> exp) << exp); -#endif -} -inline bool divisible_by_power_of_2(uint64_t x, int exp) FMT_NOEXCEPT { - FMT_ASSERT(exp >= 1, ""); - FMT_ASSERT(x != 0, ""); -#ifdef FMT_BUILTIN_CTZLL - return FMT_BUILTIN_CTZLL(x) >= exp; -#else - return exp < num_bits() && x == ((x >> exp) << exp); -#endif -} +static constexpr struct { + uint32_t divisor; + int shift_amount; +} div_small_pow10_infos[] = {{10, 16}, {100, 16}}; -// Table entry type for divisibility test. -template struct divtest_table_entry { - T mod_inv; - T max_quotient; -}; - -// Returns true iff x is divisible by pow(5, exp). -inline bool divisible_by_power_of_5(uint32_t x, int exp) FMT_NOEXCEPT { - FMT_ASSERT(exp <= 10, "too large exponent"); - static constexpr const divtest_table_entry divtest_table[] = { - {0x00000001, 0xffffffff}, {0xcccccccd, 0x33333333}, - {0xc28f5c29, 0x0a3d70a3}, {0x26e978d5, 0x020c49ba}, - {0x3afb7e91, 0x0068db8b}, {0x0bcbe61d, 0x0014f8b5}, - {0x68c26139, 0x000431bd}, {0xae8d46a5, 0x0000d6bf}, - {0x22e90e21, 0x00002af3}, {0x3a2e9c6d, 0x00000897}, - {0x3ed61f49, 0x000001b7}}; - return x * divtest_table[exp].mod_inv <= divtest_table[exp].max_quotient; -} -inline bool divisible_by_power_of_5(uint64_t x, int exp) FMT_NOEXCEPT { - FMT_ASSERT(exp <= 23, "too large exponent"); - static constexpr const divtest_table_entry divtest_table[] = { - {0x0000000000000001, 0xffffffffffffffff}, - {0xcccccccccccccccd, 0x3333333333333333}, - {0x8f5c28f5c28f5c29, 0x0a3d70a3d70a3d70}, - {0x1cac083126e978d5, 0x020c49ba5e353f7c}, - {0xd288ce703afb7e91, 0x0068db8bac710cb2}, - {0x5d4e8fb00bcbe61d, 0x0014f8b588e368f0}, - {0x790fb65668c26139, 0x000431bde82d7b63}, - {0xe5032477ae8d46a5, 0x0000d6bf94d5e57a}, - {0xc767074b22e90e21, 0x00002af31dc46118}, - {0x8e47ce423a2e9c6d, 0x0000089705f4136b}, - {0x4fa7f60d3ed61f49, 0x000001b7cdfd9d7b}, - {0x0fee64690c913975, 0x00000057f5ff85e5}, - {0x3662e0e1cf503eb1, 0x000000119799812d}, - {0xa47a2cf9f6433fbd, 0x0000000384b84d09}, - {0x54186f653140a659, 0x00000000b424dc35}, - {0x7738164770402145, 0x0000000024075f3d}, - {0xe4a4d1417cd9a041, 0x000000000734aca5}, - {0xc75429d9e5c5200d, 0x000000000170ef54}, - {0xc1773b91fac10669, 0x000000000049c977}, - {0x26b172506559ce15, 0x00000000000ec1e4}, - {0xd489e3a9addec2d1, 0x000000000002f394}, - {0x90e860bb892c8d5d, 0x000000000000971d}, - {0x502e79bf1b6f4f79, 0x0000000000001e39}, - {0xdcd618596be30fe5, 0x000000000000060b}}; - return x * divtest_table[exp].mod_inv <= divtest_table[exp].max_quotient; -} - -// Replaces n by floor(n / pow(5, N)) returning true if and only if n is -// divisible by pow(5, N). -// Precondition: n <= 2 * pow(5, N + 1). +// Replaces n by floor(n / pow(10, N)) returning true if and only if n is +// divisible by pow(10, N). +// Precondition: n <= pow(10, N + 1). template -bool check_divisibility_and_divide_by_pow5(uint32_t& n) FMT_NOEXCEPT { - static constexpr struct { - uint32_t magic_number; - int bits_for_comparison; - uint32_t threshold; - int shift_amount; - } infos[] = {{0xcccd, 16, 0x3333, 18}, {0xa429, 8, 0x0a, 20}}; - constexpr auto info = infos[N - 1]; - n *= info.magic_number; - const uint32_t comparison_mask = (1u << info.bits_for_comparison) - 1; - bool result = (n & comparison_mask) <= info.threshold; +bool check_divisibility_and_divide_by_pow10(uint32_t& n) noexcept { + // The numbers below are chosen such that: + // 1. floor(n/d) = floor(nm / 2^k) where d=10 or d=100, + // 2. nm mod 2^k < m if and only if n is divisible by d, + // where m is magic_number, k is shift_amount + // and d is divisor. + // + // Item 1 is a common technique of replacing division by a constant with + // multiplication, see e.g. "Division by Invariant Integers Using + // Multiplication" by Granlund and Montgomery (1994). magic_number (m) is set + // to ceil(2^k/d) for large enough k. + // The idea for item 2 originates from Schubfach. + constexpr auto info = div_small_pow10_infos[N - 1]; + FMT_ASSERT(n <= info.divisor * 10, "n is too large"); + constexpr uint32_t magic_number = + (1u << info.shift_amount) / info.divisor + 1; + n *= magic_number; + const uint32_t comparison_mask = (1u << info.shift_amount) - 1; + bool result = (n & comparison_mask) < magic_number; n >>= info.shift_amount; return result; } // Computes floor(n / pow(10, N)) for small n and N. // Precondition: n <= pow(10, N + 1). -template uint32_t small_division_by_pow10(uint32_t n) FMT_NOEXCEPT { - static constexpr struct { - uint32_t magic_number; - int shift_amount; - uint32_t divisor_times_10; - } infos[] = {{0xcccd, 19, 100}, {0xa3d8, 22, 1000}}; - constexpr auto info = infos[N - 1]; - FMT_ASSERT(n <= info.divisor_times_10, "n is too large"); - return n * info.magic_number >> info.shift_amount; +template uint32_t small_division_by_pow10(uint32_t n) noexcept { + constexpr auto info = div_small_pow10_infos[N - 1]; + FMT_ASSERT(n <= info.divisor * 10, "n is too large"); + constexpr uint32_t magic_number = + (1u << info.shift_amount) / info.divisor + 1; + return (n * magic_number) >> info.shift_amount; } // Computes floor(n / 10^(kappa + 1)) (float) -inline uint32_t divide_by_10_to_kappa_plus_1(uint32_t n) FMT_NOEXCEPT { - return n / float_info::big_divisor; +inline uint32_t divide_by_10_to_kappa_plus_1(uint32_t n) noexcept { + // 1374389535 = ceil(2^37/100) + return static_cast((static_cast(n) * 1374389535) >> 37); } // Computes floor(n / 10^(kappa + 1)) (double) -inline uint64_t divide_by_10_to_kappa_plus_1(uint64_t n) FMT_NOEXCEPT { - return umul128_upper64(n, 0x83126e978d4fdf3c) >> 9; +inline uint64_t divide_by_10_to_kappa_plus_1(uint64_t n) noexcept { + // 2361183241434822607 = ceil(2^(64+7)/1000) + return umul128_upper64(n, 2361183241434822607ull) >> 7; } // Various subroutines using pow10 cache @@ -1048,7 +923,7 @@ template <> struct cache_accessor { using carrier_uint = float_info::carrier_uint; using cache_entry_type = uint64_t; - static uint64_t get_cached_power(int k) FMT_NOEXCEPT { + static uint64_t get_cached_power(int k) noexcept { FMT_ASSERT(k >= float_info::min_k && k <= float_info::max_k, "k is out of range"); static constexpr const uint64_t pow10_significands[] = { @@ -1071,54 +946,65 @@ template <> struct cache_accessor { 0xb1a2bc2ec5000000, 0xde0b6b3a76400000, 0x8ac7230489e80000, 0xad78ebc5ac620000, 0xd8d726b7177a8000, 0x878678326eac9000, 0xa968163f0a57b400, 0xd3c21bcecceda100, 0x84595161401484a0, - 0xa56fa5b99019a5c8, 0xcecb8f27f4200f3a, 0x813f3978f8940984, - 0xa18f07d736b90be5, 0xc9f2c9cd04674ede, 0xfc6f7c4045812296, - 0x9dc5ada82b70b59d, 0xc5371912364ce305, 0xf684df56c3e01bc6, - 0x9a130b963a6c115c, 0xc097ce7bc90715b3, 0xf0bdc21abb48db20, - 0x96769950b50d88f4, 0xbc143fa4e250eb31, 0xeb194f8e1ae525fd, - 0x92efd1b8d0cf37be, 0xb7abc627050305ad, 0xe596b7b0c643c719, - 0x8f7e32ce7bea5c6f, 0xb35dbf821ae4f38b, 0xe0352f62a19e306e}; + 0xa56fa5b99019a5c8, 0xcecb8f27f4200f3a, 0x813f3978f8940985, + 0xa18f07d736b90be6, 0xc9f2c9cd04674edf, 0xfc6f7c4045812297, + 0x9dc5ada82b70b59e, 0xc5371912364ce306, 0xf684df56c3e01bc7, + 0x9a130b963a6c115d, 0xc097ce7bc90715b4, 0xf0bdc21abb48db21, + 0x96769950b50d88f5, 0xbc143fa4e250eb32, 0xeb194f8e1ae525fe, + 0x92efd1b8d0cf37bf, 0xb7abc627050305ae, 0xe596b7b0c643c71a, + 0x8f7e32ce7bea5c70, 0xb35dbf821ae4f38c, 0xe0352f62a19e306f}; return pow10_significands[k - float_info::min_k]; } - static carrier_uint compute_mul(carrier_uint u, - const cache_entry_type& cache) FMT_NOEXCEPT { - return umul96_upper32(u, cache); + struct compute_mul_result { + carrier_uint result; + bool is_integer; + }; + struct compute_mul_parity_result { + bool parity; + bool is_integer; + }; + + static compute_mul_result compute_mul( + carrier_uint u, const cache_entry_type& cache) noexcept { + auto r = umul96_upper64(u, cache); + return {static_cast(r >> 32), + static_cast(r) == 0}; } static uint32_t compute_delta(const cache_entry_type& cache, - int beta_minus_1) FMT_NOEXCEPT { - return static_cast(cache >> (64 - 1 - beta_minus_1)); + int beta) noexcept { + return static_cast(cache >> (64 - 1 - beta)); } - static bool compute_mul_parity(carrier_uint two_f, - const cache_entry_type& cache, - int beta_minus_1) FMT_NOEXCEPT { - FMT_ASSERT(beta_minus_1 >= 1, ""); - FMT_ASSERT(beta_minus_1 < 64, ""); + static compute_mul_parity_result compute_mul_parity( + carrier_uint two_f, const cache_entry_type& cache, int beta) noexcept { + FMT_ASSERT(beta >= 1, ""); + FMT_ASSERT(beta < 64, ""); - return ((umul96_lower64(two_f, cache) >> (64 - beta_minus_1)) & 1) != 0; + auto r = umul96_lower64(two_f, cache); + return {((r >> (64 - beta)) & 1) != 0, + static_cast(r >> (32 - beta)) == 0}; } static carrier_uint compute_left_endpoint_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + const cache_entry_type& cache, int beta) noexcept { return static_cast( - (cache - (cache >> (float_info::significand_bits + 2))) >> - (64 - float_info::significand_bits - 1 - beta_minus_1)); + (cache - (cache >> (num_significand_bits() + 2))) >> + (64 - num_significand_bits() - 1 - beta)); } static carrier_uint compute_right_endpoint_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + const cache_entry_type& cache, int beta) noexcept { return static_cast( - (cache + (cache >> (float_info::significand_bits + 1))) >> - (64 - float_info::significand_bits - 1 - beta_minus_1)); + (cache + (cache >> (num_significand_bits() + 1))) >> + (64 - num_significand_bits() - 1 - beta)); } static carrier_uint compute_round_up_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + const cache_entry_type& cache, int beta) noexcept { return (static_cast( - cache >> - (64 - float_info::significand_bits - 2 - beta_minus_1)) + + cache >> (64 - num_significand_bits() - 2 - beta)) + 1) / 2; } @@ -1126,13 +1012,13 @@ template <> struct cache_accessor { template <> struct cache_accessor { using carrier_uint = float_info::carrier_uint; - using cache_entry_type = uint128_wrapper; + using cache_entry_type = uint128_fallback; - static uint128_wrapper get_cached_power(int k) FMT_NOEXCEPT { + static uint128_fallback get_cached_power(int k) noexcept { FMT_ASSERT(k >= float_info::min_k && k <= float_info::max_k, "k is out of range"); - static constexpr const uint128_wrapper pow10_significands[] = { + static constexpr const uint128_fallback pow10_significands[] = { #if FMT_USE_FULL_CACHE_DRAGONBOX {0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7b}, {0x9faacf3df73609b1, 0x77b191618c54e9ad}, @@ -1482,278 +1368,278 @@ template <> struct cache_accessor { {0x85a36366eb71f041, 0x47a6da2b7f864750}, {0xa70c3c40a64e6c51, 0x999090b65f67d924}, {0xd0cf4b50cfe20765, 0xfff4b4e3f741cf6d}, - {0x82818f1281ed449f, 0xbff8f10e7a8921a4}, - {0xa321f2d7226895c7, 0xaff72d52192b6a0d}, - {0xcbea6f8ceb02bb39, 0x9bf4f8a69f764490}, - {0xfee50b7025c36a08, 0x02f236d04753d5b4}, - {0x9f4f2726179a2245, 0x01d762422c946590}, - {0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef5}, - {0xf8ebad2b84e0d58b, 0xd2e0898765a7deb2}, - {0x9b934c3b330c8577, 0x63cc55f49f88eb2f}, - {0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fb}, - {0xf316271c7fc3908a, 0x8bef464e3945ef7a}, - {0x97edd871cfda3a56, 0x97758bf0e3cbb5ac}, - {0xbde94e8e43d0c8ec, 0x3d52eeed1cbea317}, - {0xed63a231d4c4fb27, 0x4ca7aaa863ee4bdd}, - {0x945e455f24fb1cf8, 0x8fe8caa93e74ef6a}, - {0xb975d6b6ee39e436, 0xb3e2fd538e122b44}, - {0xe7d34c64a9c85d44, 0x60dbbca87196b616}, - {0x90e40fbeea1d3a4a, 0xbc8955e946fe31cd}, - {0xb51d13aea4a488dd, 0x6babab6398bdbe41}, - {0xe264589a4dcdab14, 0xc696963c7eed2dd1}, - {0x8d7eb76070a08aec, 0xfc1e1de5cf543ca2}, - {0xb0de65388cc8ada8, 0x3b25a55f43294bcb}, - {0xdd15fe86affad912, 0x49ef0eb713f39ebe}, - {0x8a2dbf142dfcc7ab, 0x6e3569326c784337}, - {0xacb92ed9397bf996, 0x49c2c37f07965404}, - {0xd7e77a8f87daf7fb, 0xdc33745ec97be906}, - {0x86f0ac99b4e8dafd, 0x69a028bb3ded71a3}, - {0xa8acd7c0222311bc, 0xc40832ea0d68ce0c}, - {0xd2d80db02aabd62b, 0xf50a3fa490c30190}, - {0x83c7088e1aab65db, 0x792667c6da79e0fa}, - {0xa4b8cab1a1563f52, 0x577001b891185938}, - {0xcde6fd5e09abcf26, 0xed4c0226b55e6f86}, - {0x80b05e5ac60b6178, 0x544f8158315b05b4}, - {0xa0dc75f1778e39d6, 0x696361ae3db1c721}, - {0xc913936dd571c84c, 0x03bc3a19cd1e38e9}, - {0xfb5878494ace3a5f, 0x04ab48a04065c723}, - {0x9d174b2dcec0e47b, 0x62eb0d64283f9c76}, - {0xc45d1df942711d9a, 0x3ba5d0bd324f8394}, - {0xf5746577930d6500, 0xca8f44ec7ee36479}, - {0x9968bf6abbe85f20, 0x7e998b13cf4e1ecb}, - {0xbfc2ef456ae276e8, 0x9e3fedd8c321a67e}, - {0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101e}, - {0x95d04aee3b80ece5, 0xbba1f1d158724a12}, - {0xbb445da9ca61281f, 0x2a8a6e45ae8edc97}, - {0xea1575143cf97226, 0xf52d09d71a3293bd}, - {0x924d692ca61be758, 0x593c2626705f9c56}, - {0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836c}, - {0xe498f455c38b997a, 0x0b6dfb9c0f956447}, - {0x8edf98b59a373fec, 0x4724bd4189bd5eac}, - {0xb2977ee300c50fe7, 0x58edec91ec2cb657}, - {0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ed}, - {0x8b865b215899f46c, 0xbd79e0d20082ee74}, - {0xae67f1e9aec07187, 0xecd8590680a3aa11}, - {0xda01ee641a708de9, 0xe80e6f4820cc9495}, - {0x884134fe908658b2, 0x3109058d147fdcdd}, - {0xaa51823e34a7eede, 0xbd4b46f0599fd415}, - {0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91a}, - {0x850fadc09923329e, 0x03e2cf6bc604ddb0}, - {0xa6539930bf6bff45, 0x84db8346b786151c}, - {0xcfe87f7cef46ff16, 0xe612641865679a63}, - {0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07e}, - {0xa26da3999aef7749, 0xe3be5e330f38f09d}, - {0xcb090c8001ab551c, 0x5cadf5bfd3072cc5}, - {0xfdcb4fa002162a63, 0x73d9732fc7c8f7f6}, - {0x9e9f11c4014dda7e, 0x2867e7fddcdd9afa}, - {0xc646d63501a1511d, 0xb281e1fd541501b8}, - {0xf7d88bc24209a565, 0x1f225a7ca91a4226}, - {0x9ae757596946075f, 0x3375788de9b06958}, - {0xc1a12d2fc3978937, 0x0052d6b1641c83ae}, - {0xf209787bb47d6b84, 0xc0678c5dbd23a49a}, - {0x9745eb4d50ce6332, 0xf840b7ba963646e0}, - {0xbd176620a501fbff, 0xb650e5a93bc3d898}, - {0xec5d3fa8ce427aff, 0xa3e51f138ab4cebe}, - {0x93ba47c980e98cdf, 0xc66f336c36b10137}, - {0xb8a8d9bbe123f017, 0xb80b0047445d4184}, - {0xe6d3102ad96cec1d, 0xa60dc059157491e5}, - {0x9043ea1ac7e41392, 0x87c89837ad68db2f}, - {0xb454e4a179dd1877, 0x29babe4598c311fb}, - {0xe16a1dc9d8545e94, 0xf4296dd6fef3d67a}, - {0x8ce2529e2734bb1d, 0x1899e4a65f58660c}, - {0xb01ae745b101e9e4, 0x5ec05dcff72e7f8f}, - {0xdc21a1171d42645d, 0x76707543f4fa1f73}, - {0x899504ae72497eba, 0x6a06494a791c53a8}, - {0xabfa45da0edbde69, 0x0487db9d17636892}, - {0xd6f8d7509292d603, 0x45a9d2845d3c42b6}, - {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b2}, - {0xa7f26836f282b732, 0x8e6cac7768d7141e}, - {0xd1ef0244af2364ff, 0x3207d795430cd926}, - {0x8335616aed761f1f, 0x7f44e6bd49e807b8}, - {0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a6}, - {0xcd036837130890a1, 0x36dba887c37a8c0f}, - {0x802221226be55a64, 0xc2494954da2c9789}, - {0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6c}, - {0xc83553c5c8965d3d, 0x6f92829494e5acc7}, - {0xfa42a8b73abbf48c, 0xcb772339ba1f17f9}, - {0x9c69a97284b578d7, 0xff2a760414536efb}, - {0xc38413cf25e2d70d, 0xfef5138519684aba}, - {0xf46518c2ef5b8cd1, 0x7eb258665fc25d69}, - {0x98bf2f79d5993802, 0xef2f773ffbd97a61}, - {0xbeeefb584aff8603, 0xaafb550ffacfd8fa}, - {0xeeaaba2e5dbf6784, 0x95ba2a53f983cf38}, - {0x952ab45cfa97a0b2, 0xdd945a747bf26183}, - {0xba756174393d88df, 0x94f971119aeef9e4}, - {0xe912b9d1478ceb17, 0x7a37cd5601aab85d}, - {0x91abb422ccb812ee, 0xac62e055c10ab33a}, - {0xb616a12b7fe617aa, 0x577b986b314d6009}, - {0xe39c49765fdf9d94, 0xed5a7e85fda0b80b}, - {0x8e41ade9fbebc27d, 0x14588f13be847307}, - {0xb1d219647ae6b31c, 0x596eb2d8ae258fc8}, - {0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bb}, - {0x8aec23d680043bee, 0x25de7bb9480d5854}, - {0xada72ccc20054ae9, 0xaf561aa79a10ae6a}, - {0xd910f7ff28069da4, 0x1b2ba1518094da04}, - {0x87aa9aff79042286, 0x90fb44d2f05d0842}, - {0xa99541bf57452b28, 0x353a1607ac744a53}, - {0xd3fa922f2d1675f2, 0x42889b8997915ce8}, - {0x847c9b5d7c2e09b7, 0x69956135febada11}, - {0xa59bc234db398c25, 0x43fab9837e699095}, - {0xcf02b2c21207ef2e, 0x94f967e45e03f4bb}, - {0x8161afb94b44f57d, 0x1d1be0eebac278f5}, - {0xa1ba1ba79e1632dc, 0x6462d92a69731732}, - {0xca28a291859bbf93, 0x7d7b8f7503cfdcfe}, - {0xfcb2cb35e702af78, 0x5cda735244c3d43e}, - {0x9defbf01b061adab, 0x3a0888136afa64a7}, - {0xc56baec21c7a1916, 0x088aaa1845b8fdd0}, - {0xf6c69a72a3989f5b, 0x8aad549e57273d45}, - {0x9a3c2087a63f6399, 0x36ac54e2f678864b}, - {0xc0cb28a98fcf3c7f, 0x84576a1bb416a7dd}, - {0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d5}, - {0x969eb7c47859e743, 0x9f644ae5a4b1b325}, - {0xbc4665b596706114, 0x873d5d9f0dde1fee}, - {0xeb57ff22fc0c7959, 0xa90cb506d155a7ea}, - {0x9316ff75dd87cbd8, 0x09a7f12442d588f2}, - {0xb7dcbf5354e9bece, 0x0c11ed6d538aeb2f}, - {0xe5d3ef282a242e81, 0x8f1668c8a86da5fa}, - {0x8fa475791a569d10, 0xf96e017d694487bc}, - {0xb38d92d760ec4455, 0x37c981dcc395a9ac}, - {0xe070f78d3927556a, 0x85bbe253f47b1417}, - {0x8c469ab843b89562, 0x93956d7478ccec8e}, - {0xaf58416654a6babb, 0x387ac8d1970027b2}, - {0xdb2e51bfe9d0696a, 0x06997b05fcc0319e}, - {0x88fcf317f22241e2, 0x441fece3bdf81f03}, - {0xab3c2fddeeaad25a, 0xd527e81cad7626c3}, - {0xd60b3bd56a5586f1, 0x8a71e223d8d3b074}, - {0x85c7056562757456, 0xf6872d5667844e49}, - {0xa738c6bebb12d16c, 0xb428f8ac016561db}, - {0xd106f86e69d785c7, 0xe13336d701beba52}, - {0x82a45b450226b39c, 0xecc0024661173473}, - {0xa34d721642b06084, 0x27f002d7f95d0190}, - {0xcc20ce9bd35c78a5, 0x31ec038df7b441f4}, - {0xff290242c83396ce, 0x7e67047175a15271}, - {0x9f79a169bd203e41, 0x0f0062c6e984d386}, - {0xc75809c42c684dd1, 0x52c07b78a3e60868}, - {0xf92e0c3537826145, 0xa7709a56ccdf8a82}, - {0x9bbcc7a142b17ccb, 0x88a66076400bb691}, - {0xc2abf989935ddbfe, 0x6acff893d00ea435}, - {0xf356f7ebf83552fe, 0x0583f6b8c4124d43}, - {0x98165af37b2153de, 0xc3727a337a8b704a}, - {0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5c}, - {0xeda2ee1c7064130c, 0x1162def06f79df73}, - {0x9485d4d1c63e8be7, 0x8addcb5645ac2ba8}, - {0xb9a74a0637ce2ee1, 0x6d953e2bd7173692}, - {0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0437}, - {0x910ab1d4db9914a0, 0x1d9c9892400a22a2}, - {0xb54d5e4a127f59c8, 0x2503beb6d00cab4b}, - {0xe2a0b5dc971f303a, 0x2e44ae64840fd61d}, - {0x8da471a9de737e24, 0x5ceaecfed289e5d2}, - {0xb10d8e1456105dad, 0x7425a83e872c5f47}, - {0xdd50f1996b947518, 0xd12f124e28f77719}, - {0x8a5296ffe33cc92f, 0x82bd6b70d99aaa6f}, - {0xace73cbfdc0bfb7b, 0x636cc64d1001550b}, - {0xd8210befd30efa5a, 0x3c47f7e05401aa4e}, - {0x8714a775e3e95c78, 0x65acfaec34810a71}, - {0xa8d9d1535ce3b396, 0x7f1839a741a14d0d}, - {0xd31045a8341ca07c, 0x1ede48111209a050}, - {0x83ea2b892091e44d, 0x934aed0aab460432}, - {0xa4e4b66b68b65d60, 0xf81da84d5617853f}, - {0xce1de40642e3f4b9, 0x36251260ab9d668e}, - {0x80d2ae83e9ce78f3, 0xc1d72b7c6b426019}, - {0xa1075a24e4421730, 0xb24cf65b8612f81f}, - {0xc94930ae1d529cfc, 0xdee033f26797b627}, - {0xfb9b7cd9a4a7443c, 0x169840ef017da3b1}, - {0x9d412e0806e88aa5, 0x8e1f289560ee864e}, - {0xc491798a08a2ad4e, 0xf1a6f2bab92a27e2}, - {0xf5b5d7ec8acb58a2, 0xae10af696774b1db}, - {0x9991a6f3d6bf1765, 0xacca6da1e0a8ef29}, - {0xbff610b0cc6edd3f, 0x17fd090a58d32af3}, - {0xeff394dcff8a948e, 0xddfc4b4cef07f5b0}, - {0x95f83d0a1fb69cd9, 0x4abdaf101564f98e}, - {0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f1}, - {0xea53df5fd18d5513, 0x84c86189216dc5ed}, - {0x92746b9be2f8552c, 0x32fd3cf5b4e49bb4}, - {0xb7118682dbb66a77, 0x3fbc8c33221dc2a1}, - {0xe4d5e82392a40515, 0x0fabaf3feaa5334a}, - {0x8f05b1163ba6832d, 0x29cb4d87f2a7400e}, - {0xb2c71d5bca9023f8, 0x743e20e9ef511012}, - {0xdf78e4b2bd342cf6, 0x914da9246b255416}, - {0x8bab8eefb6409c1a, 0x1ad089b6c2f7548e}, - {0xae9672aba3d0c320, 0xa184ac2473b529b1}, - {0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741e}, - {0x8865899617fb1871, 0x7e2fa67c7a658892}, - {0xaa7eebfb9df9de8d, 0xddbb901b98feeab7}, - {0xd51ea6fa85785631, 0x552a74227f3ea565}, - {0x8533285c936b35de, 0xd53a88958f87275f}, - {0xa67ff273b8460356, 0x8a892abaf368f137}, - {0xd01fef10a657842c, 0x2d2b7569b0432d85}, - {0x8213f56a67f6b29b, 0x9c3b29620e29fc73}, - {0xa298f2c501f45f42, 0x8349f3ba91b47b8f}, - {0xcb3f2f7642717713, 0x241c70a936219a73}, - {0xfe0efb53d30dd4d7, 0xed238cd383aa0110}, - {0x9ec95d1463e8a506, 0xf4363804324a40aa}, - {0xc67bb4597ce2ce48, 0xb143c6053edcd0d5}, - {0xf81aa16fdc1b81da, 0xdd94b7868e94050a}, - {0x9b10a4e5e9913128, 0xca7cf2b4191c8326}, - {0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f0}, - {0xf24a01a73cf2dccf, 0xbc633b39673c8cec}, - {0x976e41088617ca01, 0xd5be0503e085d813}, - {0xbd49d14aa79dbc82, 0x4b2d8644d8a74e18}, - {0xec9c459d51852ba2, 0xddf8e7d60ed1219e}, - {0x93e1ab8252f33b45, 0xcabb90e5c942b503}, - {0xb8da1662e7b00a17, 0x3d6a751f3b936243}, - {0xe7109bfba19c0c9d, 0x0cc512670a783ad4}, - {0x906a617d450187e2, 0x27fb2b80668b24c5}, - {0xb484f9dc9641e9da, 0xb1f9f660802dedf6}, - {0xe1a63853bbd26451, 0x5e7873f8a0396973}, - {0x8d07e33455637eb2, 0xdb0b487b6423e1e8}, - {0xb049dc016abc5e5f, 0x91ce1a9a3d2cda62}, - {0xdc5c5301c56b75f7, 0x7641a140cc7810fb}, - {0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9d}, - {0xac2820d9623bf429, 0x546345fa9fbdcd44}, - {0xd732290fbacaf133, 0xa97c177947ad4095}, - {0x867f59a9d4bed6c0, 0x49ed8eabcccc485d}, - {0xa81f301449ee8c70, 0x5c68f256bfff5a74}, - {0xd226fc195c6a2f8c, 0x73832eec6fff3111}, - {0x83585d8fd9c25db7, 0xc831fd53c5ff7eab}, - {0xa42e74f3d032f525, 0xba3e7ca8b77f5e55}, - {0xcd3a1230c43fb26f, 0x28ce1bd2e55f35eb}, - {0x80444b5e7aa7cf85, 0x7980d163cf5b81b3}, - {0xa0555e361951c366, 0xd7e105bcc332621f}, - {0xc86ab5c39fa63440, 0x8dd9472bf3fefaa7}, - {0xfa856334878fc150, 0xb14f98f6f0feb951}, - {0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d3}, - {0xc3b8358109e84f07, 0x0a862f80ec4700c8}, - {0xf4a642e14c6262c8, 0xcd27bb612758c0fa}, - {0x98e7e9cccfbd7dbd, 0x8038d51cb897789c}, - {0xbf21e44003acdd2c, 0xe0470a63e6bd56c3}, - {0xeeea5d5004981478, 0x1858ccfce06cac74}, - {0x95527a5202df0ccb, 0x0f37801e0c43ebc8}, - {0xbaa718e68396cffd, 0xd30560258f54e6ba}, - {0xe950df20247c83fd, 0x47c6b82ef32a2069}, - {0x91d28b7416cdd27e, 0x4cdc331d57fa5441}, - {0xb6472e511c81471d, 0xe0133fe4adf8e952}, - {0xe3d8f9e563a198e5, 0x58180fddd97723a6}, - {0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648}, - {0xb201833b35d63f73, 0x2cd2cc6551e513da}, - {0xde81e40a034bcf4f, 0xf8077f7ea65e58d1}, - {0x8b112e86420f6191, 0xfb04afaf27faf782}, - {0xadd57a27d29339f6, 0x79c5db9af1f9b563}, - {0xd94ad8b1c7380874, 0x18375281ae7822bc}, - {0x87cec76f1c830548, 0x8f2293910d0b15b5}, - {0xa9c2794ae3a3c69a, 0xb2eb3875504ddb22}, - {0xd433179d9c8cb841, 0x5fa60692a46151eb}, - {0x849feec281d7f328, 0xdbc7c41ba6bcd333}, - {0xa5c7ea73224deff3, 0x12b9b522906c0800}, - {0xcf39e50feae16bef, 0xd768226b34870a00}, - {0x81842f29f2cce375, 0xe6a1158300d46640}, - {0xa1e53af46f801c53, 0x60495ae3c1097fd0}, - {0xca5e89b18b602368, 0x385bb19cb14bdfc4}, - {0xfcf62c1dee382c42, 0x46729e03dd9ed7b5}, - {0x9e19db92b4e31ba9, 0x6c07a2c26a8346d1}, - {0xc5a05277621be293, 0xc7098b7305241885}, + {0x82818f1281ed449f, 0xbff8f10e7a8921a5}, + {0xa321f2d7226895c7, 0xaff72d52192b6a0e}, + {0xcbea6f8ceb02bb39, 0x9bf4f8a69f764491}, + {0xfee50b7025c36a08, 0x02f236d04753d5b5}, + {0x9f4f2726179a2245, 0x01d762422c946591}, + {0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef6}, + {0xf8ebad2b84e0d58b, 0xd2e0898765a7deb3}, + {0x9b934c3b330c8577, 0x63cc55f49f88eb30}, + {0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fc}, + {0xf316271c7fc3908a, 0x8bef464e3945ef7b}, + {0x97edd871cfda3a56, 0x97758bf0e3cbb5ad}, + {0xbde94e8e43d0c8ec, 0x3d52eeed1cbea318}, + {0xed63a231d4c4fb27, 0x4ca7aaa863ee4bde}, + {0x945e455f24fb1cf8, 0x8fe8caa93e74ef6b}, + {0xb975d6b6ee39e436, 0xb3e2fd538e122b45}, + {0xe7d34c64a9c85d44, 0x60dbbca87196b617}, + {0x90e40fbeea1d3a4a, 0xbc8955e946fe31ce}, + {0xb51d13aea4a488dd, 0x6babab6398bdbe42}, + {0xe264589a4dcdab14, 0xc696963c7eed2dd2}, + {0x8d7eb76070a08aec, 0xfc1e1de5cf543ca3}, + {0xb0de65388cc8ada8, 0x3b25a55f43294bcc}, + {0xdd15fe86affad912, 0x49ef0eb713f39ebf}, + {0x8a2dbf142dfcc7ab, 0x6e3569326c784338}, + {0xacb92ed9397bf996, 0x49c2c37f07965405}, + {0xd7e77a8f87daf7fb, 0xdc33745ec97be907}, + {0x86f0ac99b4e8dafd, 0x69a028bb3ded71a4}, + {0xa8acd7c0222311bc, 0xc40832ea0d68ce0d}, + {0xd2d80db02aabd62b, 0xf50a3fa490c30191}, + {0x83c7088e1aab65db, 0x792667c6da79e0fb}, + {0xa4b8cab1a1563f52, 0x577001b891185939}, + {0xcde6fd5e09abcf26, 0xed4c0226b55e6f87}, + {0x80b05e5ac60b6178, 0x544f8158315b05b5}, + {0xa0dc75f1778e39d6, 0x696361ae3db1c722}, + {0xc913936dd571c84c, 0x03bc3a19cd1e38ea}, + {0xfb5878494ace3a5f, 0x04ab48a04065c724}, + {0x9d174b2dcec0e47b, 0x62eb0d64283f9c77}, + {0xc45d1df942711d9a, 0x3ba5d0bd324f8395}, + {0xf5746577930d6500, 0xca8f44ec7ee3647a}, + {0x9968bf6abbe85f20, 0x7e998b13cf4e1ecc}, + {0xbfc2ef456ae276e8, 0x9e3fedd8c321a67f}, + {0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101f}, + {0x95d04aee3b80ece5, 0xbba1f1d158724a13}, + {0xbb445da9ca61281f, 0x2a8a6e45ae8edc98}, + {0xea1575143cf97226, 0xf52d09d71a3293be}, + {0x924d692ca61be758, 0x593c2626705f9c57}, + {0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836d}, + {0xe498f455c38b997a, 0x0b6dfb9c0f956448}, + {0x8edf98b59a373fec, 0x4724bd4189bd5ead}, + {0xb2977ee300c50fe7, 0x58edec91ec2cb658}, + {0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ee}, + {0x8b865b215899f46c, 0xbd79e0d20082ee75}, + {0xae67f1e9aec07187, 0xecd8590680a3aa12}, + {0xda01ee641a708de9, 0xe80e6f4820cc9496}, + {0x884134fe908658b2, 0x3109058d147fdcde}, + {0xaa51823e34a7eede, 0xbd4b46f0599fd416}, + {0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91b}, + {0x850fadc09923329e, 0x03e2cf6bc604ddb1}, + {0xa6539930bf6bff45, 0x84db8346b786151d}, + {0xcfe87f7cef46ff16, 0xe612641865679a64}, + {0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07f}, + {0xa26da3999aef7749, 0xe3be5e330f38f09e}, + {0xcb090c8001ab551c, 0x5cadf5bfd3072cc6}, + {0xfdcb4fa002162a63, 0x73d9732fc7c8f7f7}, + {0x9e9f11c4014dda7e, 0x2867e7fddcdd9afb}, + {0xc646d63501a1511d, 0xb281e1fd541501b9}, + {0xf7d88bc24209a565, 0x1f225a7ca91a4227}, + {0x9ae757596946075f, 0x3375788de9b06959}, + {0xc1a12d2fc3978937, 0x0052d6b1641c83af}, + {0xf209787bb47d6b84, 0xc0678c5dbd23a49b}, + {0x9745eb4d50ce6332, 0xf840b7ba963646e1}, + {0xbd176620a501fbff, 0xb650e5a93bc3d899}, + {0xec5d3fa8ce427aff, 0xa3e51f138ab4cebf}, + {0x93ba47c980e98cdf, 0xc66f336c36b10138}, + {0xb8a8d9bbe123f017, 0xb80b0047445d4185}, + {0xe6d3102ad96cec1d, 0xa60dc059157491e6}, + {0x9043ea1ac7e41392, 0x87c89837ad68db30}, + {0xb454e4a179dd1877, 0x29babe4598c311fc}, + {0xe16a1dc9d8545e94, 0xf4296dd6fef3d67b}, + {0x8ce2529e2734bb1d, 0x1899e4a65f58660d}, + {0xb01ae745b101e9e4, 0x5ec05dcff72e7f90}, + {0xdc21a1171d42645d, 0x76707543f4fa1f74}, + {0x899504ae72497eba, 0x6a06494a791c53a9}, + {0xabfa45da0edbde69, 0x0487db9d17636893}, + {0xd6f8d7509292d603, 0x45a9d2845d3c42b7}, + {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b3}, + {0xa7f26836f282b732, 0x8e6cac7768d7141f}, + {0xd1ef0244af2364ff, 0x3207d795430cd927}, + {0x8335616aed761f1f, 0x7f44e6bd49e807b9}, + {0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a7}, + {0xcd036837130890a1, 0x36dba887c37a8c10}, + {0x802221226be55a64, 0xc2494954da2c978a}, + {0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6d}, + {0xc83553c5c8965d3d, 0x6f92829494e5acc8}, + {0xfa42a8b73abbf48c, 0xcb772339ba1f17fa}, + {0x9c69a97284b578d7, 0xff2a760414536efc}, + {0xc38413cf25e2d70d, 0xfef5138519684abb}, + {0xf46518c2ef5b8cd1, 0x7eb258665fc25d6a}, + {0x98bf2f79d5993802, 0xef2f773ffbd97a62}, + {0xbeeefb584aff8603, 0xaafb550ffacfd8fb}, + {0xeeaaba2e5dbf6784, 0x95ba2a53f983cf39}, + {0x952ab45cfa97a0b2, 0xdd945a747bf26184}, + {0xba756174393d88df, 0x94f971119aeef9e5}, + {0xe912b9d1478ceb17, 0x7a37cd5601aab85e}, + {0x91abb422ccb812ee, 0xac62e055c10ab33b}, + {0xb616a12b7fe617aa, 0x577b986b314d600a}, + {0xe39c49765fdf9d94, 0xed5a7e85fda0b80c}, + {0x8e41ade9fbebc27d, 0x14588f13be847308}, + {0xb1d219647ae6b31c, 0x596eb2d8ae258fc9}, + {0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bc}, + {0x8aec23d680043bee, 0x25de7bb9480d5855}, + {0xada72ccc20054ae9, 0xaf561aa79a10ae6b}, + {0xd910f7ff28069da4, 0x1b2ba1518094da05}, + {0x87aa9aff79042286, 0x90fb44d2f05d0843}, + {0xa99541bf57452b28, 0x353a1607ac744a54}, + {0xd3fa922f2d1675f2, 0x42889b8997915ce9}, + {0x847c9b5d7c2e09b7, 0x69956135febada12}, + {0xa59bc234db398c25, 0x43fab9837e699096}, + {0xcf02b2c21207ef2e, 0x94f967e45e03f4bc}, + {0x8161afb94b44f57d, 0x1d1be0eebac278f6}, + {0xa1ba1ba79e1632dc, 0x6462d92a69731733}, + {0xca28a291859bbf93, 0x7d7b8f7503cfdcff}, + {0xfcb2cb35e702af78, 0x5cda735244c3d43f}, + {0x9defbf01b061adab, 0x3a0888136afa64a8}, + {0xc56baec21c7a1916, 0x088aaa1845b8fdd1}, + {0xf6c69a72a3989f5b, 0x8aad549e57273d46}, + {0x9a3c2087a63f6399, 0x36ac54e2f678864c}, + {0xc0cb28a98fcf3c7f, 0x84576a1bb416a7de}, + {0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d6}, + {0x969eb7c47859e743, 0x9f644ae5a4b1b326}, + {0xbc4665b596706114, 0x873d5d9f0dde1fef}, + {0xeb57ff22fc0c7959, 0xa90cb506d155a7eb}, + {0x9316ff75dd87cbd8, 0x09a7f12442d588f3}, + {0xb7dcbf5354e9bece, 0x0c11ed6d538aeb30}, + {0xe5d3ef282a242e81, 0x8f1668c8a86da5fb}, + {0x8fa475791a569d10, 0xf96e017d694487bd}, + {0xb38d92d760ec4455, 0x37c981dcc395a9ad}, + {0xe070f78d3927556a, 0x85bbe253f47b1418}, + {0x8c469ab843b89562, 0x93956d7478ccec8f}, + {0xaf58416654a6babb, 0x387ac8d1970027b3}, + {0xdb2e51bfe9d0696a, 0x06997b05fcc0319f}, + {0x88fcf317f22241e2, 0x441fece3bdf81f04}, + {0xab3c2fddeeaad25a, 0xd527e81cad7626c4}, + {0xd60b3bd56a5586f1, 0x8a71e223d8d3b075}, + {0x85c7056562757456, 0xf6872d5667844e4a}, + {0xa738c6bebb12d16c, 0xb428f8ac016561dc}, + {0xd106f86e69d785c7, 0xe13336d701beba53}, + {0x82a45b450226b39c, 0xecc0024661173474}, + {0xa34d721642b06084, 0x27f002d7f95d0191}, + {0xcc20ce9bd35c78a5, 0x31ec038df7b441f5}, + {0xff290242c83396ce, 0x7e67047175a15272}, + {0x9f79a169bd203e41, 0x0f0062c6e984d387}, + {0xc75809c42c684dd1, 0x52c07b78a3e60869}, + {0xf92e0c3537826145, 0xa7709a56ccdf8a83}, + {0x9bbcc7a142b17ccb, 0x88a66076400bb692}, + {0xc2abf989935ddbfe, 0x6acff893d00ea436}, + {0xf356f7ebf83552fe, 0x0583f6b8c4124d44}, + {0x98165af37b2153de, 0xc3727a337a8b704b}, + {0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5d}, + {0xeda2ee1c7064130c, 0x1162def06f79df74}, + {0x9485d4d1c63e8be7, 0x8addcb5645ac2ba9}, + {0xb9a74a0637ce2ee1, 0x6d953e2bd7173693}, + {0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0438}, + {0x910ab1d4db9914a0, 0x1d9c9892400a22a3}, + {0xb54d5e4a127f59c8, 0x2503beb6d00cab4c}, + {0xe2a0b5dc971f303a, 0x2e44ae64840fd61e}, + {0x8da471a9de737e24, 0x5ceaecfed289e5d3}, + {0xb10d8e1456105dad, 0x7425a83e872c5f48}, + {0xdd50f1996b947518, 0xd12f124e28f7771a}, + {0x8a5296ffe33cc92f, 0x82bd6b70d99aaa70}, + {0xace73cbfdc0bfb7b, 0x636cc64d1001550c}, + {0xd8210befd30efa5a, 0x3c47f7e05401aa4f}, + {0x8714a775e3e95c78, 0x65acfaec34810a72}, + {0xa8d9d1535ce3b396, 0x7f1839a741a14d0e}, + {0xd31045a8341ca07c, 0x1ede48111209a051}, + {0x83ea2b892091e44d, 0x934aed0aab460433}, + {0xa4e4b66b68b65d60, 0xf81da84d56178540}, + {0xce1de40642e3f4b9, 0x36251260ab9d668f}, + {0x80d2ae83e9ce78f3, 0xc1d72b7c6b42601a}, + {0xa1075a24e4421730, 0xb24cf65b8612f820}, + {0xc94930ae1d529cfc, 0xdee033f26797b628}, + {0xfb9b7cd9a4a7443c, 0x169840ef017da3b2}, + {0x9d412e0806e88aa5, 0x8e1f289560ee864f}, + {0xc491798a08a2ad4e, 0xf1a6f2bab92a27e3}, + {0xf5b5d7ec8acb58a2, 0xae10af696774b1dc}, + {0x9991a6f3d6bf1765, 0xacca6da1e0a8ef2a}, + {0xbff610b0cc6edd3f, 0x17fd090a58d32af4}, + {0xeff394dcff8a948e, 0xddfc4b4cef07f5b1}, + {0x95f83d0a1fb69cd9, 0x4abdaf101564f98f}, + {0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f2}, + {0xea53df5fd18d5513, 0x84c86189216dc5ee}, + {0x92746b9be2f8552c, 0x32fd3cf5b4e49bb5}, + {0xb7118682dbb66a77, 0x3fbc8c33221dc2a2}, + {0xe4d5e82392a40515, 0x0fabaf3feaa5334b}, + {0x8f05b1163ba6832d, 0x29cb4d87f2a7400f}, + {0xb2c71d5bca9023f8, 0x743e20e9ef511013}, + {0xdf78e4b2bd342cf6, 0x914da9246b255417}, + {0x8bab8eefb6409c1a, 0x1ad089b6c2f7548f}, + {0xae9672aba3d0c320, 0xa184ac2473b529b2}, + {0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741f}, + {0x8865899617fb1871, 0x7e2fa67c7a658893}, + {0xaa7eebfb9df9de8d, 0xddbb901b98feeab8}, + {0xd51ea6fa85785631, 0x552a74227f3ea566}, + {0x8533285c936b35de, 0xd53a88958f872760}, + {0xa67ff273b8460356, 0x8a892abaf368f138}, + {0xd01fef10a657842c, 0x2d2b7569b0432d86}, + {0x8213f56a67f6b29b, 0x9c3b29620e29fc74}, + {0xa298f2c501f45f42, 0x8349f3ba91b47b90}, + {0xcb3f2f7642717713, 0x241c70a936219a74}, + {0xfe0efb53d30dd4d7, 0xed238cd383aa0111}, + {0x9ec95d1463e8a506, 0xf4363804324a40ab}, + {0xc67bb4597ce2ce48, 0xb143c6053edcd0d6}, + {0xf81aa16fdc1b81da, 0xdd94b7868e94050b}, + {0x9b10a4e5e9913128, 0xca7cf2b4191c8327}, + {0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f1}, + {0xf24a01a73cf2dccf, 0xbc633b39673c8ced}, + {0x976e41088617ca01, 0xd5be0503e085d814}, + {0xbd49d14aa79dbc82, 0x4b2d8644d8a74e19}, + {0xec9c459d51852ba2, 0xddf8e7d60ed1219f}, + {0x93e1ab8252f33b45, 0xcabb90e5c942b504}, + {0xb8da1662e7b00a17, 0x3d6a751f3b936244}, + {0xe7109bfba19c0c9d, 0x0cc512670a783ad5}, + {0x906a617d450187e2, 0x27fb2b80668b24c6}, + {0xb484f9dc9641e9da, 0xb1f9f660802dedf7}, + {0xe1a63853bbd26451, 0x5e7873f8a0396974}, + {0x8d07e33455637eb2, 0xdb0b487b6423e1e9}, + {0xb049dc016abc5e5f, 0x91ce1a9a3d2cda63}, + {0xdc5c5301c56b75f7, 0x7641a140cc7810fc}, + {0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9e}, + {0xac2820d9623bf429, 0x546345fa9fbdcd45}, + {0xd732290fbacaf133, 0xa97c177947ad4096}, + {0x867f59a9d4bed6c0, 0x49ed8eabcccc485e}, + {0xa81f301449ee8c70, 0x5c68f256bfff5a75}, + {0xd226fc195c6a2f8c, 0x73832eec6fff3112}, + {0x83585d8fd9c25db7, 0xc831fd53c5ff7eac}, + {0xa42e74f3d032f525, 0xba3e7ca8b77f5e56}, + {0xcd3a1230c43fb26f, 0x28ce1bd2e55f35ec}, + {0x80444b5e7aa7cf85, 0x7980d163cf5b81b4}, + {0xa0555e361951c366, 0xd7e105bcc3326220}, + {0xc86ab5c39fa63440, 0x8dd9472bf3fefaa8}, + {0xfa856334878fc150, 0xb14f98f6f0feb952}, + {0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d4}, + {0xc3b8358109e84f07, 0x0a862f80ec4700c9}, + {0xf4a642e14c6262c8, 0xcd27bb612758c0fb}, + {0x98e7e9cccfbd7dbd, 0x8038d51cb897789d}, + {0xbf21e44003acdd2c, 0xe0470a63e6bd56c4}, + {0xeeea5d5004981478, 0x1858ccfce06cac75}, + {0x95527a5202df0ccb, 0x0f37801e0c43ebc9}, + {0xbaa718e68396cffd, 0xd30560258f54e6bb}, + {0xe950df20247c83fd, 0x47c6b82ef32a206a}, + {0x91d28b7416cdd27e, 0x4cdc331d57fa5442}, + {0xb6472e511c81471d, 0xe0133fe4adf8e953}, + {0xe3d8f9e563a198e5, 0x58180fddd97723a7}, + {0x8e679c2f5e44ff8f, 0x570f09eaa7ea7649}, + {0xb201833b35d63f73, 0x2cd2cc6551e513db}, + {0xde81e40a034bcf4f, 0xf8077f7ea65e58d2}, + {0x8b112e86420f6191, 0xfb04afaf27faf783}, + {0xadd57a27d29339f6, 0x79c5db9af1f9b564}, + {0xd94ad8b1c7380874, 0x18375281ae7822bd}, + {0x87cec76f1c830548, 0x8f2293910d0b15b6}, + {0xa9c2794ae3a3c69a, 0xb2eb3875504ddb23}, + {0xd433179d9c8cb841, 0x5fa60692a46151ec}, + {0x849feec281d7f328, 0xdbc7c41ba6bcd334}, + {0xa5c7ea73224deff3, 0x12b9b522906c0801}, + {0xcf39e50feae16bef, 0xd768226b34870a01}, + {0x81842f29f2cce375, 0xe6a1158300d46641}, + {0xa1e53af46f801c53, 0x60495ae3c1097fd1}, + {0xca5e89b18b602368, 0x385bb19cb14bdfc5}, + {0xfcf62c1dee382c42, 0x46729e03dd9ed7b6}, + {0x9e19db92b4e31ba9, 0x6c07a2c26a8346d2}, + {0xc5a05277621be293, 0xc7098b7305241886}, { 0xf70867153aa2db38, - 0xb8cbee4fc66d1ea7 } + 0xb8cbee4fc66d1ea8 } #else {0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7b}, {0xce5d73ff402d98e3, 0xfb0a3d212dc81290}, @@ -1768,17 +1654,17 @@ template <> struct cache_accessor { {0xf1c90080baf72cb1, 0x5324c68b12dd6339}, {0xc350000000000000, 0x0000000000000000}, {0x9dc5ada82b70b59d, 0xf020000000000000}, - {0xfee50b7025c36a08, 0x02f236d04753d5b4}, - {0xcde6fd5e09abcf26, 0xed4c0226b55e6f86}, - {0xa6539930bf6bff45, 0x84db8346b786151c}, - {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b2}, - {0xd910f7ff28069da4, 0x1b2ba1518094da04}, - {0xaf58416654a6babb, 0x387ac8d1970027b2}, - {0x8da471a9de737e24, 0x5ceaecfed289e5d2}, - {0xe4d5e82392a40515, 0x0fabaf3feaa5334a}, - {0xb8da1662e7b00a17, 0x3d6a751f3b936243}, + {0xfee50b7025c36a08, 0x02f236d04753d5b5}, + {0xcde6fd5e09abcf26, 0xed4c0226b55e6f87}, + {0xa6539930bf6bff45, 0x84db8346b786151d}, + {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b3}, + {0xd910f7ff28069da4, 0x1b2ba1518094da05}, + {0xaf58416654a6babb, 0x387ac8d1970027b3}, + {0x8da471a9de737e24, 0x5ceaecfed289e5d3}, + {0xe4d5e82392a40515, 0x0fabaf3feaa5334b}, + {0xb8da1662e7b00a17, 0x3d6a751f3b936244}, { 0x95527a5202df0ccb, - 0x0f37801e0c43ebc8 } + 0x0f37801e0c43ebc9 } #endif }; @@ -1796,15 +1682,6 @@ template <> struct cache_accessor { 0x0001b1ae4d6e2ef5, 0x000878678326eac9, 0x002a5a058fc295ed, 0x00d3c21bcecceda1, 0x0422ca8b0a00a425, 0x14adf4b7320334b9}; - static constexpr const uint32_t pow10_recovery_errors[] = { - 0x50001400, 0x54044100, 0x54014555, 0x55954415, 0x54115555, 0x00000001, - 0x50000000, 0x00104000, 0x54010004, 0x05004001, 0x55555544, 0x41545555, - 0x54040551, 0x15445545, 0x51555514, 0x10000015, 0x00101100, 0x01100015, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04450514, 0x45414110, - 0x55555145, 0x50544050, 0x15040155, 0x11054140, 0x50111514, 0x11451454, - 0x00400541, 0x00000000, 0x55555450, 0x10056551, 0x10054011, 0x55551014, - 0x69514555, 0x05151109, 0x00155555}; - static const int compression_ratio = 27; // Compute base index. @@ -1813,7 +1690,7 @@ template <> struct cache_accessor { int offset = k - kb; // Get base cache. - uint128_wrapper base_cache = pow10_significands[cache_index]; + uint128_fallback base_cache = pow10_significands[cache_index]; if (offset == 0) return base_cache; // Compute the required amount of bit-shift. @@ -1822,9 +1699,8 @@ template <> struct cache_accessor { // Try to recover the real cache. uint64_t pow5 = powers_of_5_64[offset]; - uint128_wrapper recovered_cache = umul128(base_cache.high(), pow5); - uint128_wrapper middle_low = - umul128(base_cache.low() - (kb < 0 ? 1u : 0u), pow5); + uint128_fallback recovered_cache = umul128(base_cache.high(), pow5); + uint128_fallback middle_low = umul128(base_cache.low(), pow5); recovered_cache += middle_low.high(); @@ -1832,60 +1708,60 @@ template <> struct cache_accessor { uint64_t middle_to_low = recovered_cache.low() << (64 - alpha); recovered_cache = - uint128_wrapper{(recovered_cache.low() >> alpha) | high_to_middle, - ((middle_low.low() >> alpha) | middle_to_low)}; - - if (kb < 0) recovered_cache += 1; - - // Get error. - int error_idx = (k - float_info::min_k) / 16; - uint32_t error = (pow10_recovery_errors[error_idx] >> - ((k - float_info::min_k) % 16) * 2) & - 0x3; - - // Add the error back. - FMT_ASSERT(recovered_cache.low() + error >= recovered_cache.low(), ""); - return {recovered_cache.high(), recovered_cache.low() + error}; + uint128_fallback{(recovered_cache.low() >> alpha) | high_to_middle, + ((middle_low.low() >> alpha) | middle_to_low)}; + FMT_ASSERT(recovered_cache.low() + 1 != 0, ""); + return {recovered_cache.high(), recovered_cache.low() + 1}; #endif } - static carrier_uint compute_mul(carrier_uint u, - const cache_entry_type& cache) FMT_NOEXCEPT { - return umul192_upper64(u, cache); + struct compute_mul_result { + carrier_uint result; + bool is_integer; + }; + struct compute_mul_parity_result { + bool parity; + bool is_integer; + }; + + static compute_mul_result compute_mul( + carrier_uint u, const cache_entry_type& cache) noexcept { + auto r = umul192_upper128(u, cache); + return {r.high(), r.low() == 0}; } static uint32_t compute_delta(cache_entry_type const& cache, - int beta_minus_1) FMT_NOEXCEPT { - return static_cast(cache.high() >> (64 - 1 - beta_minus_1)); + int beta) noexcept { + return static_cast(cache.high() >> (64 - 1 - beta)); } - static bool compute_mul_parity(carrier_uint two_f, - const cache_entry_type& cache, - int beta_minus_1) FMT_NOEXCEPT { - FMT_ASSERT(beta_minus_1 >= 1, ""); - FMT_ASSERT(beta_minus_1 < 64, ""); + static compute_mul_parity_result compute_mul_parity( + carrier_uint two_f, const cache_entry_type& cache, int beta) noexcept { + FMT_ASSERT(beta >= 1, ""); + FMT_ASSERT(beta < 64, ""); - return ((umul192_middle64(two_f, cache) >> (64 - beta_minus_1)) & 1) != 0; + auto r = umul192_lower128(two_f, cache); + return {((r.high() >> (64 - beta)) & 1) != 0, + ((r.high() << beta) | (r.low() >> (64 - beta))) == 0}; } static carrier_uint compute_left_endpoint_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + const cache_entry_type& cache, int beta) noexcept { return (cache.high() - - (cache.high() >> (float_info::significand_bits + 2))) >> - (64 - float_info::significand_bits - 1 - beta_minus_1); + (cache.high() >> (num_significand_bits() + 2))) >> + (64 - num_significand_bits() - 1 - beta); } static carrier_uint compute_right_endpoint_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + const cache_entry_type& cache, int beta) noexcept { return (cache.high() + - (cache.high() >> (float_info::significand_bits + 1))) >> - (64 - float_info::significand_bits - 1 - beta_minus_1); + (cache.high() >> (num_significand_bits() + 1))) >> + (64 - num_significand_bits() - 1 - beta); } static carrier_uint compute_round_up_for_shorter_interval_case( - const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { - return ((cache.high() >> - (64 - float_info::significand_bits - 2 - beta_minus_1)) + + const cache_entry_type& cache, int beta) noexcept { + return ((cache.high() >> (64 - num_significand_bits() - 2 - beta)) + 1) / 2; } @@ -1893,166 +1769,104 @@ template <> struct cache_accessor { // Various integer checks template -bool is_left_endpoint_integer_shorter_interval(int exponent) FMT_NOEXCEPT { - return exponent >= - float_info< - T>::case_shorter_interval_left_endpoint_lower_threshold && - exponent <= - float_info::case_shorter_interval_left_endpoint_upper_threshold; -} -template -bool is_endpoint_integer(typename float_info::carrier_uint two_f, - int exponent, int minus_k) FMT_NOEXCEPT { - if (exponent < float_info::case_fc_pm_half_lower_threshold) return false; - // For k >= 0. - if (exponent <= float_info::case_fc_pm_half_upper_threshold) return true; - // For k < 0. - if (exponent > float_info::divisibility_check_by_5_threshold) return false; - return divisible_by_power_of_5(two_f, minus_k); -} - -template -bool is_center_integer(typename float_info::carrier_uint two_f, int exponent, - int minus_k) FMT_NOEXCEPT { - // Exponent for 5 is negative. - if (exponent > float_info::divisibility_check_by_5_threshold) return false; - if (exponent > float_info::case_fc_upper_threshold) - return divisible_by_power_of_5(two_f, minus_k); - // Both exponents are nonnegative. - if (exponent >= float_info::case_fc_lower_threshold) return true; - // Exponent for 2 is negative. - return divisible_by_power_of_2(two_f, minus_k - exponent + 1); +bool is_left_endpoint_integer_shorter_interval(int exponent) noexcept { + const int case_shorter_interval_left_endpoint_lower_threshold = 2; + const int case_shorter_interval_left_endpoint_upper_threshold = 3; + return exponent >= case_shorter_interval_left_endpoint_lower_threshold && + exponent <= case_shorter_interval_left_endpoint_upper_threshold; } // Remove trailing zeros from n and return the number of zeros removed (float) -FMT_INLINE int remove_trailing_zeros(uint32_t& n) FMT_NOEXCEPT { -#ifdef FMT_BUILTIN_CTZ - int t = FMT_BUILTIN_CTZ(n); -#else - int t = ctz(n); -#endif - if (t > float_info::max_trailing_zeros) - t = float_info::max_trailing_zeros; - - const uint32_t mod_inv1 = 0xcccccccd; - const uint32_t max_quotient1 = 0x33333333; - const uint32_t mod_inv2 = 0xc28f5c29; - const uint32_t max_quotient2 = 0x0a3d70a3; +FMT_INLINE int remove_trailing_zeros(uint32_t& n) noexcept { + FMT_ASSERT(n != 0, ""); + const uint32_t mod_inv_5 = 0xcccccccd; + const uint32_t mod_inv_25 = mod_inv_5 * mod_inv_5; int s = 0; - for (; s < t - 1; s += 2) { - if (n * mod_inv2 > max_quotient2) break; - n *= mod_inv2; + while (true) { + auto q = rotr(n * mod_inv_25, 2); + if (q > max_value() / 100) break; + n = q; + s += 2; } - if (s < t && n * mod_inv1 <= max_quotient1) { - n *= mod_inv1; - ++s; + auto q = rotr(n * mod_inv_5, 1); + if (q <= max_value() / 10) { + n = q; + s |= 1; } - n >>= s; + return s; } // Removes trailing zeros and returns the number of zeros removed (double) -FMT_INLINE int remove_trailing_zeros(uint64_t& n) FMT_NOEXCEPT { -#ifdef FMT_BUILTIN_CTZLL - int t = FMT_BUILTIN_CTZLL(n); -#else - int t = ctzll(n); -#endif - if (t > float_info::max_trailing_zeros) - t = float_info::max_trailing_zeros; - // Divide by 10^8 and reduce to 32-bits - // Since ret_value.significand <= (2^64 - 1) / 1000 < 10^17, - // both of the quotient and the r should fit in 32-bits +FMT_INLINE int remove_trailing_zeros(uint64_t& n) noexcept { + FMT_ASSERT(n != 0, ""); - const uint32_t mod_inv1 = 0xcccccccd; - const uint32_t max_quotient1 = 0x33333333; - const uint64_t mod_inv8 = 0xc767074b22e90e21; - const uint64_t max_quotient8 = 0x00002af31dc46118; + // This magic number is ceil(2^90 / 10^8). + constexpr uint64_t magic_number = 12379400392853802749ull; + auto nm = umul128(n, magic_number); - // If the number is divisible by 1'0000'0000, work with the quotient - if (t >= 8) { - auto quotient_candidate = n * mod_inv8; + // Is n is divisible by 10^8? + if ((nm.high() & ((1ull << (90 - 64)) - 1)) == 0 && nm.low() < magic_number) { + // If yes, work with the quotient. + auto n32 = static_cast(nm.high() >> (90 - 64)); - if (quotient_candidate <= max_quotient8) { - auto quotient = static_cast(quotient_candidate >> 8); + const uint32_t mod_inv_5 = 0xcccccccd; + const uint32_t mod_inv_25 = mod_inv_5 * mod_inv_5; - int s = 8; - for (; s < t; ++s) { - if (quotient * mod_inv1 > max_quotient1) break; - quotient *= mod_inv1; - } - quotient >>= (s - 8); - n = quotient; - return s; + int s = 8; + while (true) { + auto q = rotr(n32 * mod_inv_25, 2); + if (q > max_value() / 100) break; + n32 = q; + s += 2; } + auto q = rotr(n32 * mod_inv_5, 1); + if (q <= max_value() / 10) { + n32 = q; + s |= 1; + } + + n = n32; + return s; } - // Otherwise, work with the remainder - auto quotient = static_cast(n / 100000000); - auto remainder = static_cast(n - 100000000 * quotient); + // If n is not divisible by 10^8, work with n itself. + const uint64_t mod_inv_5 = 0xcccccccccccccccd; + const uint64_t mod_inv_25 = mod_inv_5 * mod_inv_5; - if (t == 0 || remainder * mod_inv1 > max_quotient1) { - return 0; + int s = 0; + while (true) { + auto q = rotr(n * mod_inv_25, 2); + if (q > max_value() / 100) break; + n = q; + s += 2; } - remainder *= mod_inv1; - - if (t == 1 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 1) + quotient * 10000000ull; - return 1; + auto q = rotr(n * mod_inv_5, 1); + if (q <= max_value() / 10) { + n = q; + s |= 1; } - remainder *= mod_inv1; - if (t == 2 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 2) + quotient * 1000000ull; - return 2; - } - remainder *= mod_inv1; - - if (t == 3 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 3) + quotient * 100000ull; - return 3; - } - remainder *= mod_inv1; - - if (t == 4 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 4) + quotient * 10000ull; - return 4; - } - remainder *= mod_inv1; - - if (t == 5 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 5) + quotient * 1000ull; - return 5; - } - remainder *= mod_inv1; - - if (t == 6 || remainder * mod_inv1 > max_quotient1) { - n = (remainder >> 6) + quotient * 100ull; - return 6; - } - remainder *= mod_inv1; - - n = (remainder >> 7) + quotient * 10ull; - return 7; + return s; } // The main algorithm for shorter interval case template -FMT_INLINE decimal_fp shorter_interval_case(int exponent) FMT_NOEXCEPT { +FMT_INLINE decimal_fp shorter_interval_case(int exponent) noexcept { decimal_fp ret_value; // Compute k and beta const int minus_k = floor_log10_pow2_minus_log10_4_over_3(exponent); - const int beta_minus_1 = exponent + floor_log2_pow10(-minus_k); + const int beta = exponent + floor_log2_pow10(-minus_k); // Compute xi and zi using cache_entry_type = typename cache_accessor::cache_entry_type; const cache_entry_type cache = cache_accessor::get_cached_power(-minus_k); auto xi = cache_accessor::compute_left_endpoint_for_shorter_interval_case( - cache, beta_minus_1); + cache, beta); auto zi = cache_accessor::compute_right_endpoint_for_shorter_interval_case( - cache, beta_minus_1); + cache, beta); // If the left endpoint is not an integer, increase it if (!is_left_endpoint_integer_shorter_interval(exponent)) ++xi; @@ -2069,8 +1883,8 @@ FMT_INLINE decimal_fp shorter_interval_case(int exponent) FMT_NOEXCEPT { // Otherwise, compute the round-up of y ret_value.significand = - cache_accessor::compute_round_up_for_shorter_interval_case( - cache, beta_minus_1); + cache_accessor::compute_round_up_for_shorter_interval_case(cache, + beta); ret_value.exponent = minus_k; // When tie occurs, choose one of them according to the rule @@ -2085,7 +1899,7 @@ FMT_INLINE decimal_fp shorter_interval_case(int exponent) FMT_NOEXCEPT { return ret_value; } -template decimal_fp to_decimal(T x) FMT_NOEXCEPT { +template decimal_fp to_decimal(T x) noexcept { // Step 1: integer promotion & Schubfach multiplier calculation. using carrier_uint = typename float_info::carrier_uint; @@ -2094,23 +1908,25 @@ template decimal_fp to_decimal(T x) FMT_NOEXCEPT { // Extract significand bits and exponent bits. const carrier_uint significand_mask = - (static_cast(1) << float_info::significand_bits) - 1; + (static_cast(1) << num_significand_bits()) - 1; carrier_uint significand = (br & significand_mask); - int exponent = static_cast((br & exponent_mask()) >> - float_info::significand_bits); + int exponent = + static_cast((br & exponent_mask()) >> num_significand_bits()); if (exponent != 0) { // Check if normal. - exponent += float_info::exponent_bias - float_info::significand_bits; + exponent -= exponent_bias() + num_significand_bits(); // Shorter interval case; proceed like Schubfach. + // In fact, when exponent == 1 and significand == 0, the interval is + // regular. However, it can be shown that the end-results are anyway same. if (significand == 0) return shorter_interval_case(exponent); - significand |= - (static_cast(1) << float_info::significand_bits); + significand |= (static_cast(1) << num_significand_bits()); } else { // Subnormal case; the interval is always regular. if (significand == 0) return {0, 0}; - exponent = float_info::min_exponent - float_info::significand_bits; + exponent = + std::numeric_limits::min_exponent - num_significand_bits() - 1; } const bool include_left_endpoint = (significand % 2 == 0); @@ -2119,112 +1935,123 @@ template decimal_fp to_decimal(T x) FMT_NOEXCEPT { // Compute k and beta. const int minus_k = floor_log10_pow2(exponent) - float_info::kappa; const cache_entry_type cache = cache_accessor::get_cached_power(-minus_k); - const int beta_minus_1 = exponent + floor_log2_pow10(-minus_k); + const int beta = exponent + floor_log2_pow10(-minus_k); - // Compute zi and deltai + // Compute zi and deltai. // 10^kappa <= deltai < 10^(kappa + 1) - const uint32_t deltai = cache_accessor::compute_delta(cache, beta_minus_1); + const uint32_t deltai = cache_accessor::compute_delta(cache, beta); const carrier_uint two_fc = significand << 1; - const carrier_uint two_fr = two_fc | 1; - const carrier_uint zi = - cache_accessor::compute_mul(two_fr << beta_minus_1, cache); - // Step 2: Try larger divisor; remove trailing zeros if necessary + // For the case of binary32, the result of integer check is not correct for + // 29711844 * 2^-82 + // = 6.1442653300000000008655037797566933477355632930994033813476... * 10^-18 + // and 29711844 * 2^-81 + // = 1.2288530660000000001731007559513386695471126586198806762695... * 10^-17, + // and they are the unique counterexamples. However, since 29711844 is even, + // this does not cause any problem for the endpoints calculations; it can only + // cause a problem when we need to perform integer check for the center. + // Fortunately, with these inputs, that branch is never executed, so we are + // fine. + const typename cache_accessor::compute_mul_result z_mul = + cache_accessor::compute_mul((two_fc | 1) << beta, cache); + + // Step 2: Try larger divisor; remove trailing zeros if necessary. // Using an upper bound on zi, we might be able to optimize the division - // better than the compiler; we are computing zi / big_divisor here + // better than the compiler; we are computing zi / big_divisor here. decimal_fp ret_value; - ret_value.significand = divide_by_10_to_kappa_plus_1(zi); - uint32_t r = static_cast(zi - float_info::big_divisor * - ret_value.significand); + ret_value.significand = divide_by_10_to_kappa_plus_1(z_mul.result); + uint32_t r = static_cast(z_mul.result - float_info::big_divisor * + ret_value.significand); - if (r > deltai) { - goto small_divisor_case_label; - } else if (r < deltai) { - // Exclude the right endpoint if necessary - if (r == 0 && !include_right_endpoint && - is_endpoint_integer(two_fr, exponent, minus_k)) { + if (r < deltai) { + // Exclude the right endpoint if necessary. + if (r == 0 && z_mul.is_integer && !include_right_endpoint) { --ret_value.significand; r = float_info::big_divisor; goto small_divisor_case_label; } + } else if (r > deltai) { + goto small_divisor_case_label; } else { - // r == deltai; compare fractional parts - // Check conditions in the order different from the paper - // to take advantage of short-circuiting + // r == deltai; compare fractional parts. const carrier_uint two_fl = two_fc - 1; - if ((!include_left_endpoint || - !is_endpoint_integer(two_fl, exponent, minus_k)) && - !cache_accessor::compute_mul_parity(two_fl, cache, beta_minus_1)) { - goto small_divisor_case_label; + + if (!include_left_endpoint || + exponent < float_info::case_fc_pm_half_lower_threshold || + exponent > float_info::divisibility_check_by_5_threshold) { + // If the left endpoint is not included, the condition for + // success is z^(f) < delta^(f) (odd parity). + // Otherwise, the inequalities on exponent ensure that + // x is not an integer, so if z^(f) >= delta^(f) (even parity), we in fact + // have strict inequality. + if (!cache_accessor::compute_mul_parity(two_fl, cache, beta).parity) { + goto small_divisor_case_label; + } + } else { + const typename cache_accessor::compute_mul_parity_result x_mul = + cache_accessor::compute_mul_parity(two_fl, cache, beta); + if (!x_mul.parity && !x_mul.is_integer) { + goto small_divisor_case_label; + } } } ret_value.exponent = minus_k + float_info::kappa + 1; - // We may need to remove trailing zeros + // We may need to remove trailing zeros. ret_value.exponent += remove_trailing_zeros(ret_value.significand); return ret_value; - // Step 3: Find the significand with the smaller divisor + // Step 3: Find the significand with the smaller divisor. small_divisor_case_label: ret_value.significand *= 10; ret_value.exponent = minus_k + float_info::kappa; - const uint32_t mask = (1u << float_info::kappa) - 1; - auto dist = r - (deltai / 2) + (float_info::small_divisor / 2); + uint32_t dist = r - (deltai / 2) + (float_info::small_divisor / 2); + const bool approx_y_parity = + ((dist ^ (float_info::small_divisor / 2)) & 1) != 0; - // Is dist divisible by 2^kappa? - if ((dist & mask) == 0) { - const bool approx_y_parity = - ((dist ^ (float_info::small_divisor / 2)) & 1) != 0; - dist >>= float_info::kappa; + // Is dist divisible by 10^kappa? + const bool divisible_by_small_divisor = + check_divisibility_and_divide_by_pow10::kappa>(dist); - // Is dist divisible by 5^kappa? - if (check_divisibility_and_divide_by_pow5::kappa>(dist)) { - ret_value.significand += dist; + // Add dist / 10^kappa to the significand. + ret_value.significand += dist; - // Check z^(f) >= epsilon^(f) - // We have either yi == zi - epsiloni or yi == (zi - epsiloni) - 1, - // where yi == zi - epsiloni if and only if z^(f) >= epsilon^(f) - // Since there are only 2 possibilities, we only need to care about the - // parity. Also, zi and r should have the same parity since the divisor - // is an even number - if (cache_accessor::compute_mul_parity(two_fc, cache, beta_minus_1) != - approx_y_parity) { - --ret_value.significand; - } else { - // If z^(f) >= epsilon^(f), we might have a tie - // when z^(f) == epsilon^(f), or equivalently, when y is an integer - if (is_center_integer(two_fc, exponent, minus_k)) { - ret_value.significand = ret_value.significand % 2 == 0 - ? ret_value.significand - : ret_value.significand - 1; - } - } - } - // Is dist not divisible by 5^kappa? - else { - ret_value.significand += dist; - } - } - // Is dist not divisible by 2^kappa? - else { - // Since we know dist is small, we might be able to optimize the division - // better than the compiler; we are computing dist / small_divisor here - ret_value.significand += - small_division_by_pow10::kappa>(dist); - } + if (!divisible_by_small_divisor) return ret_value; + + // Check z^(f) >= epsilon^(f). + // We have either yi == zi - epsiloni or yi == (zi - epsiloni) - 1, + // where yi == zi - epsiloni if and only if z^(f) >= epsilon^(f). + // Since there are only 2 possibilities, we only need to care about the + // parity. Also, zi and r should have the same parity since the divisor + // is an even number. + const auto y_mul = cache_accessor::compute_mul_parity(two_fc, cache, beta); + + // If z^(f) >= epsilon^(f), we might have a tie when z^(f) == epsilon^(f), + // or equivalently, when y is an integer. + if (y_mul.parity != approx_y_parity) + --ret_value.significand; + else if (y_mul.is_integer && ret_value.significand % 2 != 0) + --ret_value.significand; return ret_value; } } // namespace dragonbox +// format_dragon flags. +enum dragon { + predecessor_closer = 1, + fixup = 2, // Run fixup to correct exp10 which can be off by one. + fixed = 4, +}; + // Formats a floating-point number using a variation of the Fixed-Precision // Positive Floating-Point Printout ((FPP)^2) algorithm by Steele & White: // https://fmt.dev/papers/p372-steele.pdf. -FMT_CONSTEXPR20 inline void format_dragon(fp value, bool is_predecessor_closer, - int num_digits, buffer& buf, - int& exp10) { +FMT_CONSTEXPR20 inline void format_dragon(basic_fp value, + unsigned flags, int num_digits, + buffer& buf, int& exp10) { bigint numerator; // 2 * R in (FPP)^2. bigint denominator; // 2 * S in (FPP)^2. // lower and upper are differences between value and corresponding boundaries. @@ -2234,15 +2061,15 @@ FMT_CONSTEXPR20 inline void format_dragon(fp value, bool is_predecessor_closer, // Shift numerator and denominator by an extra bit or two (if lower boundary // is closer) to make lower and upper integers. This eliminates multiplication // by 2 during later computations. + bool is_predecessor_closer = (flags & dragon::predecessor_closer) != 0; int shift = is_predecessor_closer ? 2 : 1; - uint64_t significand = value.f << shift; if (value.e >= 0) { - numerator.assign(significand); - numerator <<= value.e; - lower.assign(1); + numerator = value.f; + numerator <<= value.e + shift; + lower = 1; lower <<= value.e; - if (shift != 1) { - upper_store.assign(1); + if (is_predecessor_closer) { + upper_store = 1; upper_store <<= value.e + 1; upper = &upper_store; } @@ -2251,29 +2078,42 @@ FMT_CONSTEXPR20 inline void format_dragon(fp value, bool is_predecessor_closer, } else if (exp10 < 0) { numerator.assign_pow10(-exp10); lower.assign(numerator); - if (shift != 1) { + if (is_predecessor_closer) { upper_store.assign(numerator); upper_store <<= 1; upper = &upper_store; } - numerator *= significand; - denominator.assign(1); + numerator *= value.f; + numerator <<= shift; + denominator = 1; denominator <<= shift - value.e; } else { - numerator.assign(significand); + numerator = value.f; + numerator <<= shift; denominator.assign_pow10(exp10); denominator <<= shift - value.e; - lower.assign(1); - if (shift != 1) { - upper_store.assign(1ULL << 1); + lower = 1; + if (is_predecessor_closer) { + upper_store = 1ULL << 1; upper = &upper_store; } } + bool even = (value.f & 1) == 0; + if (!upper) upper = &lower; + if ((flags & dragon::fixup) != 0) { + if (add_compare(numerator, *upper, denominator) + even <= 0) { + --exp10; + numerator *= 10; + if (num_digits < 0) { + lower *= 10; + if (upper != &lower) *upper *= 10; + } + } + if ((flags & dragon::fixed) != 0) adjust_precision(num_digits, exp10 + 1); + } // Invariant: value == (numerator / denominator) * pow(10, exp10). if (num_digits < 0) { // Generate the shortest representation. - if (!upper) upper = &lower; - bool even = (value.f & 1) == 0; num_digits = 0; char* data = buf.data(); for (;;) { @@ -2336,6 +2176,17 @@ FMT_CONSTEXPR20 inline void format_dragon(fp value, bool is_predecessor_closer, buf[num_digits - 1] = static_cast('0' + digit); } +#ifdef _MSC_VER +FMT_FUNC auto fmt_snprintf(char* buf, size_t size, const char* fmt, ...) + -> int { + auto args = va_list(); + va_start(args, fmt); + int result = vsnprintf_s(buf, size, _TRUNCATE, fmt, args); + va_end(args); + return result; +} +#endif + template FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, float_specs specs, @@ -2343,6 +2194,7 @@ FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, // float is passed as double to reduce the number of instantiations. static_assert(!std::is_same::value, ""); FMT_ASSERT(value >= 0, "value is negative"); + auto converted_value = convert_float(value); const bool fixed = specs.format == float_format::fixed; if (value <= 0) { // <= instead of == to silence a warning. @@ -2355,9 +2207,21 @@ FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, return -precision; } - if (specs.fallback) return snprintf_float(value, precision, specs, buf); - - if (!is_constant_evaluated() && precision < 0) { + int exp = 0; + bool use_dragon = true; + unsigned dragon_flags = 0; + if (!is_fast_float()) { + const auto inv_log2_10 = 0.3010299956639812; // 1 / log2(10) + using info = dragonbox::float_info; + const auto f = basic_fp(converted_value); + // Compute exp, an approximate power of 10, such that + // 10^(exp - 1) <= value < 10^exp or 10^exp <= value < 10^(exp + 1). + // This is based on log10(value) == log2(value) / log2(10) and approximation + // of log2(value) by e + num_fraction_bits idea from double-conversion. + exp = static_cast( + std::ceil((f.e + count_digits<1>(f.f) - 1) * inv_log2_10 - 1e-10)); + dragon_flags = dragon::fixup; + } else if (!is_constant_evaluated() && precision < 0) { // Use Dragonbox for the shortest format. if (specs.binary32) { auto dec = dragonbox::to_decimal(static_cast(value)); @@ -2367,16 +2231,12 @@ FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, auto dec = dragonbox::to_decimal(static_cast(value)); write(buffer_appender(buf), dec.significand); return dec.exponent; - } - - int exp = 0; - bool use_dragon = true; - if (is_fast_float()) { + } else { // Use Grisu + Dragon4 for the given precision: // https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf. const int min_exp = -60; // alpha in Grisu. int cached_exp10 = 0; // K in Grisu. - fp normalized = normalize(fp(value)); + fp normalized = normalize(fp(converted_value)); const auto cached_pow = get_cached_power( min_exp - (normalized.e + fp::num_significand_bits), cached_exp10); normalized = normalized * cached_pow; @@ -2392,14 +2252,17 @@ FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, } } if (use_dragon) { - auto f = fp(); - bool is_predecessor_closer = - specs.binary32 ? f.assign(static_cast(value)) : f.assign(value); + auto f = basic_fp(); + bool is_predecessor_closer = specs.binary32 + ? f.assign(static_cast(value)) + : f.assign(converted_value); + if (is_predecessor_closer) dragon_flags |= dragon::predecessor_closer; + if (fixed) dragon_flags |= dragon::fixed; // Limit precision to the maximum possible number of significant digits in // an IEEE754 double because we don't need to generate zeros. const int max_double_digits = 767; if (precision > max_double_digits) precision = max_double_digits; - format_dragon(f, is_predecessor_closer, precision, buf, exp); + format_dragon(f, dragon_flags, precision, buf, exp); } if (!fixed && !specs.showpoint) { // Remove trailing zeros. @@ -2412,120 +2275,17 @@ FMT_HEADER_ONLY_CONSTEXPR20 int format_float(Float value, int precision, } return exp; } - -template -int snprintf_float(T value, int precision, float_specs specs, - buffer& buf) { - // Buffer capacity must be non-zero, otherwise MSVC's vsnprintf_s will fail. - FMT_ASSERT(buf.capacity() > buf.size(), "empty buffer"); - static_assert(!std::is_same::value, ""); - - // Subtract 1 to account for the difference in precision since we use %e for - // both general and exponent format. - if (specs.format == float_format::general || - specs.format == float_format::exp) - precision = (precision >= 0 ? precision : 6) - 1; - - // Build the format string. - enum { max_format_size = 7 }; // The longest format is "%#.*Le". - char format[max_format_size]; - char* format_ptr = format; - *format_ptr++ = '%'; - if (specs.showpoint && specs.format == float_format::hex) *format_ptr++ = '#'; - if (precision >= 0) { - *format_ptr++ = '.'; - *format_ptr++ = '*'; - } - if (std::is_same()) *format_ptr++ = 'L'; - *format_ptr++ = specs.format != float_format::hex - ? (specs.format == float_format::fixed ? 'f' : 'e') - : (specs.upper ? 'A' : 'a'); - *format_ptr = '\0'; - - // Format using snprintf. - auto offset = buf.size(); - for (;;) { - auto begin = buf.data() + offset; - auto capacity = buf.capacity() - offset; -#ifdef FMT_FUZZ - if (precision > 100000) - throw std::runtime_error( - "fuzz mode - avoid large allocation inside snprintf"); -#endif - // Suppress the warning about a nonliteral format string. - // Cannot use auto because of a bug in MinGW (#1532). - int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; - int result = precision >= 0 - ? snprintf_ptr(begin, capacity, format, precision, value) - : snprintf_ptr(begin, capacity, format, value); - if (result < 0) { - // The buffer will grow exponentially. - buf.try_reserve(buf.capacity() + 1); - continue; - } - auto size = to_unsigned(result); - // Size equal to capacity means that the last character was truncated. - if (size >= capacity) { - buf.try_reserve(size + offset + 1); // Add 1 for the terminating '\0'. - continue; - } - auto is_digit = [](char c) { return c >= '0' && c <= '9'; }; - if (specs.format == float_format::fixed) { - if (precision == 0) { - buf.try_resize(size); - return 0; - } - // Find and remove the decimal point. - auto end = begin + size, p = end; - do { - --p; - } while (is_digit(*p)); - int fraction_size = static_cast(end - p - 1); - std::memmove(p, p + 1, to_unsigned(fraction_size)); - buf.try_resize(size - 1); - return -fraction_size; - } - if (specs.format == float_format::hex) { - buf.try_resize(size + offset); - return 0; - } - // Find and parse the exponent. - auto end = begin + size, exp_pos = end; - do { - --exp_pos; - } while (*exp_pos != 'e'); - char sign = exp_pos[1]; - FMT_ASSERT(sign == '+' || sign == '-', ""); - int exp = 0; - auto p = exp_pos + 2; // Skip 'e' and sign. - do { - FMT_ASSERT(is_digit(*p), ""); - exp = exp * 10 + (*p++ - '0'); - } while (p != end); - if (sign == '-') exp = -exp; - int fraction_size = 0; - if (exp_pos != begin + 1) { - // Remove trailing zeros. - auto fraction_end = exp_pos - 1; - while (*fraction_end == '0') --fraction_end; - // Move the fractional part left to get rid of the decimal point. - fraction_size = static_cast(fraction_end - begin - 1); - std::memmove(begin + 1, begin + 2, to_unsigned(fraction_size)); - } - buf.try_resize(to_unsigned(fraction_size) + offset + 1); - return exp - fraction_size; - } -} } // namespace detail template <> struct formatter { - FMT_CONSTEXPR format_parse_context::iterator parse( - format_parse_context& ctx) { + FMT_CONSTEXPR auto parse(format_parse_context& ctx) + -> format_parse_context::iterator { return ctx.begin(); } - format_context::iterator format(const detail::bigint& n, - format_context& ctx) { + template + auto format(const detail::bigint& n, FormatContext& ctx) const -> + typename FormatContext::iterator { auto out = ctx.out(); bool first = true; for (auto i = n.bigits_.size(); i > 0; --i) { @@ -2560,7 +2320,7 @@ FMT_FUNC detail::utf8_to_utf16::utf8_to_utf16(string_view s) { } FMT_FUNC void format_system_error(detail::buffer& out, int error_code, - const char* message) FMT_NOEXCEPT { + const char* message) noexcept { FMT_TRY { auto ec = std::error_code(error_code, std::generic_category()); write(std::back_inserter(out), std::system_error(ec, message).what()); @@ -2571,7 +2331,7 @@ FMT_FUNC void format_system_error(detail::buffer& out, int error_code, } FMT_FUNC void report_system_error(int error_code, - const char* message) FMT_NOEXCEPT { + const char* message) noexcept { report_error(format_system_error, error_code, message); } @@ -2638,6 +2398,197 @@ FMT_FUNC void vprint(string_view format_str, format_args args) { vprint(stdout, format_str, args); } +namespace detail { + +struct singleton { + unsigned char upper; + unsigned char lower_count; +}; + +inline auto is_printable(uint16_t x, const singleton* singletons, + size_t singletons_size, + const unsigned char* singleton_lowers, + const unsigned char* normal, size_t normal_size) + -> bool { + auto upper = x >> 8; + auto lower_start = 0; + for (size_t i = 0; i < singletons_size; ++i) { + auto s = singletons[i]; + auto lower_end = lower_start + s.lower_count; + if (upper < s.upper) break; + if (upper == s.upper) { + for (auto j = lower_start; j < lower_end; ++j) { + if (singleton_lowers[j] == (x & 0xff)) return false; + } + } + lower_start = lower_end; + } + + auto xsigned = static_cast(x); + auto current = true; + for (size_t i = 0; i < normal_size; ++i) { + auto v = static_cast(normal[i]); + auto len = (v & 0x80) != 0 ? (v & 0x7f) << 8 | normal[++i] : v; + xsigned -= len; + if (xsigned < 0) break; + current = !current; + } + return current; +} + +// This code is generated by support/printable.py. +FMT_FUNC auto is_printable(uint32_t cp) -> bool { + static constexpr singleton singletons0[] = { + {0x00, 1}, {0x03, 5}, {0x05, 6}, {0x06, 3}, {0x07, 6}, {0x08, 8}, + {0x09, 17}, {0x0a, 28}, {0x0b, 25}, {0x0c, 20}, {0x0d, 16}, {0x0e, 13}, + {0x0f, 4}, {0x10, 3}, {0x12, 18}, {0x13, 9}, {0x16, 1}, {0x17, 5}, + {0x18, 2}, {0x19, 3}, {0x1a, 7}, {0x1c, 2}, {0x1d, 1}, {0x1f, 22}, + {0x20, 3}, {0x2b, 3}, {0x2c, 2}, {0x2d, 11}, {0x2e, 1}, {0x30, 3}, + {0x31, 2}, {0x32, 1}, {0xa7, 2}, {0xa9, 2}, {0xaa, 4}, {0xab, 8}, + {0xfa, 2}, {0xfb, 5}, {0xfd, 4}, {0xfe, 3}, {0xff, 9}, + }; + static constexpr unsigned char singletons0_lower[] = { + 0xad, 0x78, 0x79, 0x8b, 0x8d, 0xa2, 0x30, 0x57, 0x58, 0x8b, 0x8c, 0x90, + 0x1c, 0x1d, 0xdd, 0x0e, 0x0f, 0x4b, 0x4c, 0xfb, 0xfc, 0x2e, 0x2f, 0x3f, + 0x5c, 0x5d, 0x5f, 0xb5, 0xe2, 0x84, 0x8d, 0x8e, 0x91, 0x92, 0xa9, 0xb1, + 0xba, 0xbb, 0xc5, 0xc6, 0xc9, 0xca, 0xde, 0xe4, 0xe5, 0xff, 0x00, 0x04, + 0x11, 0x12, 0x29, 0x31, 0x34, 0x37, 0x3a, 0x3b, 0x3d, 0x49, 0x4a, 0x5d, + 0x84, 0x8e, 0x92, 0xa9, 0xb1, 0xb4, 0xba, 0xbb, 0xc6, 0xca, 0xce, 0xcf, + 0xe4, 0xe5, 0x00, 0x04, 0x0d, 0x0e, 0x11, 0x12, 0x29, 0x31, 0x34, 0x3a, + 0x3b, 0x45, 0x46, 0x49, 0x4a, 0x5e, 0x64, 0x65, 0x84, 0x91, 0x9b, 0x9d, + 0xc9, 0xce, 0xcf, 0x0d, 0x11, 0x29, 0x45, 0x49, 0x57, 0x64, 0x65, 0x8d, + 0x91, 0xa9, 0xb4, 0xba, 0xbb, 0xc5, 0xc9, 0xdf, 0xe4, 0xe5, 0xf0, 0x0d, + 0x11, 0x45, 0x49, 0x64, 0x65, 0x80, 0x84, 0xb2, 0xbc, 0xbe, 0xbf, 0xd5, + 0xd7, 0xf0, 0xf1, 0x83, 0x85, 0x8b, 0xa4, 0xa6, 0xbe, 0xbf, 0xc5, 0xc7, + 0xce, 0xcf, 0xda, 0xdb, 0x48, 0x98, 0xbd, 0xcd, 0xc6, 0xce, 0xcf, 0x49, + 0x4e, 0x4f, 0x57, 0x59, 0x5e, 0x5f, 0x89, 0x8e, 0x8f, 0xb1, 0xb6, 0xb7, + 0xbf, 0xc1, 0xc6, 0xc7, 0xd7, 0x11, 0x16, 0x17, 0x5b, 0x5c, 0xf6, 0xf7, + 0xfe, 0xff, 0x80, 0x0d, 0x6d, 0x71, 0xde, 0xdf, 0x0e, 0x0f, 0x1f, 0x6e, + 0x6f, 0x1c, 0x1d, 0x5f, 0x7d, 0x7e, 0xae, 0xaf, 0xbb, 0xbc, 0xfa, 0x16, + 0x17, 0x1e, 0x1f, 0x46, 0x47, 0x4e, 0x4f, 0x58, 0x5a, 0x5c, 0x5e, 0x7e, + 0x7f, 0xb5, 0xc5, 0xd4, 0xd5, 0xdc, 0xf0, 0xf1, 0xf5, 0x72, 0x73, 0x8f, + 0x74, 0x75, 0x96, 0x2f, 0x5f, 0x26, 0x2e, 0x2f, 0xa7, 0xaf, 0xb7, 0xbf, + 0xc7, 0xcf, 0xd7, 0xdf, 0x9a, 0x40, 0x97, 0x98, 0x30, 0x8f, 0x1f, 0xc0, + 0xc1, 0xce, 0xff, 0x4e, 0x4f, 0x5a, 0x5b, 0x07, 0x08, 0x0f, 0x10, 0x27, + 0x2f, 0xee, 0xef, 0x6e, 0x6f, 0x37, 0x3d, 0x3f, 0x42, 0x45, 0x90, 0x91, + 0xfe, 0xff, 0x53, 0x67, 0x75, 0xc8, 0xc9, 0xd0, 0xd1, 0xd8, 0xd9, 0xe7, + 0xfe, 0xff, + }; + static constexpr singleton singletons1[] = { + {0x00, 6}, {0x01, 1}, {0x03, 1}, {0x04, 2}, {0x08, 8}, {0x09, 2}, + {0x0a, 5}, {0x0b, 2}, {0x0e, 4}, {0x10, 1}, {0x11, 2}, {0x12, 5}, + {0x13, 17}, {0x14, 1}, {0x15, 2}, {0x17, 2}, {0x19, 13}, {0x1c, 5}, + {0x1d, 8}, {0x24, 1}, {0x6a, 3}, {0x6b, 2}, {0xbc, 2}, {0xd1, 2}, + {0xd4, 12}, {0xd5, 9}, {0xd6, 2}, {0xd7, 2}, {0xda, 1}, {0xe0, 5}, + {0xe1, 2}, {0xe8, 2}, {0xee, 32}, {0xf0, 4}, {0xf8, 2}, {0xf9, 2}, + {0xfa, 2}, {0xfb, 1}, + }; + static constexpr unsigned char singletons1_lower[] = { + 0x0c, 0x27, 0x3b, 0x3e, 0x4e, 0x4f, 0x8f, 0x9e, 0x9e, 0x9f, 0x06, 0x07, + 0x09, 0x36, 0x3d, 0x3e, 0x56, 0xf3, 0xd0, 0xd1, 0x04, 0x14, 0x18, 0x36, + 0x37, 0x56, 0x57, 0x7f, 0xaa, 0xae, 0xaf, 0xbd, 0x35, 0xe0, 0x12, 0x87, + 0x89, 0x8e, 0x9e, 0x04, 0x0d, 0x0e, 0x11, 0x12, 0x29, 0x31, 0x34, 0x3a, + 0x45, 0x46, 0x49, 0x4a, 0x4e, 0x4f, 0x64, 0x65, 0x5c, 0xb6, 0xb7, 0x1b, + 0x1c, 0x07, 0x08, 0x0a, 0x0b, 0x14, 0x17, 0x36, 0x39, 0x3a, 0xa8, 0xa9, + 0xd8, 0xd9, 0x09, 0x37, 0x90, 0x91, 0xa8, 0x07, 0x0a, 0x3b, 0x3e, 0x66, + 0x69, 0x8f, 0x92, 0x6f, 0x5f, 0xee, 0xef, 0x5a, 0x62, 0x9a, 0x9b, 0x27, + 0x28, 0x55, 0x9d, 0xa0, 0xa1, 0xa3, 0xa4, 0xa7, 0xa8, 0xad, 0xba, 0xbc, + 0xc4, 0x06, 0x0b, 0x0c, 0x15, 0x1d, 0x3a, 0x3f, 0x45, 0x51, 0xa6, 0xa7, + 0xcc, 0xcd, 0xa0, 0x07, 0x19, 0x1a, 0x22, 0x25, 0x3e, 0x3f, 0xc5, 0xc6, + 0x04, 0x20, 0x23, 0x25, 0x26, 0x28, 0x33, 0x38, 0x3a, 0x48, 0x4a, 0x4c, + 0x50, 0x53, 0x55, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x63, 0x65, 0x66, + 0x6b, 0x73, 0x78, 0x7d, 0x7f, 0x8a, 0xa4, 0xaa, 0xaf, 0xb0, 0xc0, 0xd0, + 0xae, 0xaf, 0x79, 0xcc, 0x6e, 0x6f, 0x93, + }; + static constexpr unsigned char normal0[] = { + 0x00, 0x20, 0x5f, 0x22, 0x82, 0xdf, 0x04, 0x82, 0x44, 0x08, 0x1b, 0x04, + 0x06, 0x11, 0x81, 0xac, 0x0e, 0x80, 0xab, 0x35, 0x28, 0x0b, 0x80, 0xe0, + 0x03, 0x19, 0x08, 0x01, 0x04, 0x2f, 0x04, 0x34, 0x04, 0x07, 0x03, 0x01, + 0x07, 0x06, 0x07, 0x11, 0x0a, 0x50, 0x0f, 0x12, 0x07, 0x55, 0x07, 0x03, + 0x04, 0x1c, 0x0a, 0x09, 0x03, 0x08, 0x03, 0x07, 0x03, 0x02, 0x03, 0x03, + 0x03, 0x0c, 0x04, 0x05, 0x03, 0x0b, 0x06, 0x01, 0x0e, 0x15, 0x05, 0x3a, + 0x03, 0x11, 0x07, 0x06, 0x05, 0x10, 0x07, 0x57, 0x07, 0x02, 0x07, 0x15, + 0x0d, 0x50, 0x04, 0x43, 0x03, 0x2d, 0x03, 0x01, 0x04, 0x11, 0x06, 0x0f, + 0x0c, 0x3a, 0x04, 0x1d, 0x25, 0x5f, 0x20, 0x6d, 0x04, 0x6a, 0x25, 0x80, + 0xc8, 0x05, 0x82, 0xb0, 0x03, 0x1a, 0x06, 0x82, 0xfd, 0x03, 0x59, 0x07, + 0x15, 0x0b, 0x17, 0x09, 0x14, 0x0c, 0x14, 0x0c, 0x6a, 0x06, 0x0a, 0x06, + 0x1a, 0x06, 0x59, 0x07, 0x2b, 0x05, 0x46, 0x0a, 0x2c, 0x04, 0x0c, 0x04, + 0x01, 0x03, 0x31, 0x0b, 0x2c, 0x04, 0x1a, 0x06, 0x0b, 0x03, 0x80, 0xac, + 0x06, 0x0a, 0x06, 0x21, 0x3f, 0x4c, 0x04, 0x2d, 0x03, 0x74, 0x08, 0x3c, + 0x03, 0x0f, 0x03, 0x3c, 0x07, 0x38, 0x08, 0x2b, 0x05, 0x82, 0xff, 0x11, + 0x18, 0x08, 0x2f, 0x11, 0x2d, 0x03, 0x20, 0x10, 0x21, 0x0f, 0x80, 0x8c, + 0x04, 0x82, 0x97, 0x19, 0x0b, 0x15, 0x88, 0x94, 0x05, 0x2f, 0x05, 0x3b, + 0x07, 0x02, 0x0e, 0x18, 0x09, 0x80, 0xb3, 0x2d, 0x74, 0x0c, 0x80, 0xd6, + 0x1a, 0x0c, 0x05, 0x80, 0xff, 0x05, 0x80, 0xdf, 0x0c, 0xee, 0x0d, 0x03, + 0x84, 0x8d, 0x03, 0x37, 0x09, 0x81, 0x5c, 0x14, 0x80, 0xb8, 0x08, 0x80, + 0xcb, 0x2a, 0x38, 0x03, 0x0a, 0x06, 0x38, 0x08, 0x46, 0x08, 0x0c, 0x06, + 0x74, 0x0b, 0x1e, 0x03, 0x5a, 0x04, 0x59, 0x09, 0x80, 0x83, 0x18, 0x1c, + 0x0a, 0x16, 0x09, 0x4c, 0x04, 0x80, 0x8a, 0x06, 0xab, 0xa4, 0x0c, 0x17, + 0x04, 0x31, 0xa1, 0x04, 0x81, 0xda, 0x26, 0x07, 0x0c, 0x05, 0x05, 0x80, + 0xa5, 0x11, 0x81, 0x6d, 0x10, 0x78, 0x28, 0x2a, 0x06, 0x4c, 0x04, 0x80, + 0x8d, 0x04, 0x80, 0xbe, 0x03, 0x1b, 0x03, 0x0f, 0x0d, + }; + static constexpr unsigned char normal1[] = { + 0x5e, 0x22, 0x7b, 0x05, 0x03, 0x04, 0x2d, 0x03, 0x66, 0x03, 0x01, 0x2f, + 0x2e, 0x80, 0x82, 0x1d, 0x03, 0x31, 0x0f, 0x1c, 0x04, 0x24, 0x09, 0x1e, + 0x05, 0x2b, 0x05, 0x44, 0x04, 0x0e, 0x2a, 0x80, 0xaa, 0x06, 0x24, 0x04, + 0x24, 0x04, 0x28, 0x08, 0x34, 0x0b, 0x01, 0x80, 0x90, 0x81, 0x37, 0x09, + 0x16, 0x0a, 0x08, 0x80, 0x98, 0x39, 0x03, 0x63, 0x08, 0x09, 0x30, 0x16, + 0x05, 0x21, 0x03, 0x1b, 0x05, 0x01, 0x40, 0x38, 0x04, 0x4b, 0x05, 0x2f, + 0x04, 0x0a, 0x07, 0x09, 0x07, 0x40, 0x20, 0x27, 0x04, 0x0c, 0x09, 0x36, + 0x03, 0x3a, 0x05, 0x1a, 0x07, 0x04, 0x0c, 0x07, 0x50, 0x49, 0x37, 0x33, + 0x0d, 0x33, 0x07, 0x2e, 0x08, 0x0a, 0x81, 0x26, 0x52, 0x4e, 0x28, 0x08, + 0x2a, 0x56, 0x1c, 0x14, 0x17, 0x09, 0x4e, 0x04, 0x1e, 0x0f, 0x43, 0x0e, + 0x19, 0x07, 0x0a, 0x06, 0x48, 0x08, 0x27, 0x09, 0x75, 0x0b, 0x3f, 0x41, + 0x2a, 0x06, 0x3b, 0x05, 0x0a, 0x06, 0x51, 0x06, 0x01, 0x05, 0x10, 0x03, + 0x05, 0x80, 0x8b, 0x62, 0x1e, 0x48, 0x08, 0x0a, 0x80, 0xa6, 0x5e, 0x22, + 0x45, 0x0b, 0x0a, 0x06, 0x0d, 0x13, 0x39, 0x07, 0x0a, 0x36, 0x2c, 0x04, + 0x10, 0x80, 0xc0, 0x3c, 0x64, 0x53, 0x0c, 0x48, 0x09, 0x0a, 0x46, 0x45, + 0x1b, 0x48, 0x08, 0x53, 0x1d, 0x39, 0x81, 0x07, 0x46, 0x0a, 0x1d, 0x03, + 0x47, 0x49, 0x37, 0x03, 0x0e, 0x08, 0x0a, 0x06, 0x39, 0x07, 0x0a, 0x81, + 0x36, 0x19, 0x80, 0xb7, 0x01, 0x0f, 0x32, 0x0d, 0x83, 0x9b, 0x66, 0x75, + 0x0b, 0x80, 0xc4, 0x8a, 0xbc, 0x84, 0x2f, 0x8f, 0xd1, 0x82, 0x47, 0xa1, + 0xb9, 0x82, 0x39, 0x07, 0x2a, 0x04, 0x02, 0x60, 0x26, 0x0a, 0x46, 0x0a, + 0x28, 0x05, 0x13, 0x82, 0xb0, 0x5b, 0x65, 0x4b, 0x04, 0x39, 0x07, 0x11, + 0x40, 0x05, 0x0b, 0x02, 0x0e, 0x97, 0xf8, 0x08, 0x84, 0xd6, 0x2a, 0x09, + 0xa2, 0xf7, 0x81, 0x1f, 0x31, 0x03, 0x11, 0x04, 0x08, 0x81, 0x8c, 0x89, + 0x04, 0x6b, 0x05, 0x0d, 0x03, 0x09, 0x07, 0x10, 0x93, 0x60, 0x80, 0xf6, + 0x0a, 0x73, 0x08, 0x6e, 0x17, 0x46, 0x80, 0x9a, 0x14, 0x0c, 0x57, 0x09, + 0x19, 0x80, 0x87, 0x81, 0x47, 0x03, 0x85, 0x42, 0x0f, 0x15, 0x85, 0x50, + 0x2b, 0x80, 0xd5, 0x2d, 0x03, 0x1a, 0x04, 0x02, 0x81, 0x70, 0x3a, 0x05, + 0x01, 0x85, 0x00, 0x80, 0xd7, 0x29, 0x4c, 0x04, 0x0a, 0x04, 0x02, 0x83, + 0x11, 0x44, 0x4c, 0x3d, 0x80, 0xc2, 0x3c, 0x06, 0x01, 0x04, 0x55, 0x05, + 0x1b, 0x34, 0x02, 0x81, 0x0e, 0x2c, 0x04, 0x64, 0x0c, 0x56, 0x0a, 0x80, + 0xae, 0x38, 0x1d, 0x0d, 0x2c, 0x04, 0x09, 0x07, 0x02, 0x0e, 0x06, 0x80, + 0x9a, 0x83, 0xd8, 0x08, 0x0d, 0x03, 0x0d, 0x03, 0x74, 0x0c, 0x59, 0x07, + 0x0c, 0x14, 0x0c, 0x04, 0x38, 0x08, 0x0a, 0x06, 0x28, 0x08, 0x22, 0x4e, + 0x81, 0x54, 0x0c, 0x15, 0x03, 0x03, 0x05, 0x07, 0x09, 0x19, 0x07, 0x07, + 0x09, 0x03, 0x0d, 0x07, 0x29, 0x80, 0xcb, 0x25, 0x0a, 0x84, 0x06, + }; + auto lower = static_cast(cp); + if (cp < 0x10000) { + return is_printable(lower, singletons0, + sizeof(singletons0) / sizeof(*singletons0), + singletons0_lower, normal0, sizeof(normal0)); + } + if (cp < 0x20000) { + return is_printable(lower, singletons1, + sizeof(singletons1) / sizeof(*singletons1), + singletons1_lower, normal1, sizeof(normal1)); + } + if (0x2a6de <= cp && cp < 0x2a700) return false; + if (0x2b735 <= cp && cp < 0x2b740) return false; + if (0x2b81e <= cp && cp < 0x2b820) return false; + if (0x2cea2 <= cp && cp < 0x2ceb0) return false; + if (0x2ebe1 <= cp && cp < 0x2f800) return false; + if (0x2fa1e <= cp && cp < 0x30000) return false; + if (0x3134b <= cp && cp < 0xe0100) return false; + if (0xe01f0 <= cp && cp < 0x110000) return false; + return cp < 0x110000; +} + +} // namespace detail + FMT_END_NAMESPACE #endif // FMT_FORMAT_INL_H_ diff --git a/Externals/fmt/include/fmt/format.h b/Externals/fmt/include/fmt/format.h index ee69651ca5..d35207c8e2 100755 --- a/Externals/fmt/include/fmt/format.h +++ b/Externals/fmt/include/fmt/format.h @@ -1,33 +1,33 @@ /* - Formatting library for C++ + Formatting library for C++ - Copyright (c) 2012 - present, Victor Zverovich + Copyright (c) 2012 - present, Victor Zverovich - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - --- Optional exception to the license --- + --- Optional exception to the license --- - As an exception, if, as a result of your compiling your source code, portions - of this Software are embedded into a machine-executable object form of such - source code, you may redistribute such embedded portions in such object form - without including the above copyright and permission notices. + As an exception, if, as a result of your compiling your source code, portions + of this Software are embedded into a machine-executable object form of such + source code, you may redistribute such embedded portions in such object form + without including the above copyright and permission notices. */ #ifndef FMT_FORMAT_H_ @@ -35,11 +35,11 @@ #include // std::signbit #include // uint32_t +#include // std::memcpy #include // std::numeric_limits #include // std::uninitialized_copy #include // std::runtime_error #include // std::system_error -#include // std::swap #ifdef __cpp_lib_bit_cast # include // std::bitcast @@ -158,10 +158,12 @@ FMT_END_NAMESPACE // __builtin_ctz is broken in Intel Compiler Classic on Windows: // https://github.com/fmtlib/fmt/issues/2510. #ifndef __ICL -# if FMT_HAS_BUILTIN(__builtin_ctz) || FMT_GCC_VERSION || FMT_ICC_VERSION +# if FMT_HAS_BUILTIN(__builtin_ctz) || FMT_GCC_VERSION || FMT_ICC_VERSION || \ + FMT_NVCOMPILER_VERSION # define FMT_BUILTIN_CTZ(n) __builtin_ctz(n) # endif -# if FMT_HAS_BUILTIN(__builtin_ctzll) || FMT_GCC_VERSION || FMT_ICC_VERSION +# if FMT_HAS_BUILTIN(__builtin_ctzll) || FMT_GCC_VERSION || \ + FMT_ICC_VERSION || FMT_NVCOMPILER_VERSION # define FMT_BUILTIN_CTZLL(n) __builtin_ctzll(n) # endif #endif @@ -252,6 +254,13 @@ FMT_END_NAMESPACE FMT_BEGIN_NAMESPACE namespace detail { +FMT_CONSTEXPR inline void abort_fuzzing_if(bool condition) { + ignore_unused(condition); +#ifdef FMT_FUZZ + if (condition) throw std::runtime_error("fuzzing limit reached"); +#endif +} + template class formatbuf : public Streambuf { private: using char_type = typename Streambuf::char_type; @@ -284,9 +293,8 @@ template class formatbuf : public Streambuf { }; // Implementation of std::bit_cast for pre-C++20. -template +template FMT_CONSTEXPR20 auto bit_cast(const From& from) -> To { - static_assert(sizeof(To) == sizeof(From), "size mismatch"); #ifdef __cpp_lib_bit_cast if (is_constant_evaluated()) return std::bit_cast(from); #endif @@ -310,29 +318,91 @@ inline auto is_big_endian() -> bool { #endif } -// A fallback implementation of uintptr_t for systems that lack it. -struct fallback_uintptr { - unsigned char value[sizeof(void*)]; +class uint128_fallback { + private: + uint64_t lo_, hi_; - fallback_uintptr() = default; - explicit fallback_uintptr(const void* p) { - *this = bit_cast(p); - if (const_check(is_big_endian())) { - for (size_t i = 0, j = sizeof(void*) - 1; i < j; ++i, --j) - std::swap(value[i], value[j]); - } + friend uint128_fallback umul128(uint64_t x, uint64_t y) noexcept; + + public: + constexpr uint128_fallback(uint64_t hi, uint64_t lo) : lo_(lo), hi_(hi) {} + constexpr uint128_fallback(uint64_t value = 0) : lo_(value), hi_(0) {} + + constexpr uint64_t high() const noexcept { return hi_; } + constexpr uint64_t low() const noexcept { return lo_; } + + template ::value)> + constexpr explicit operator T() const { + return static_cast(lo_); } + + friend constexpr auto operator==(const uint128_fallback& lhs, + const uint128_fallback& rhs) -> bool { + return lhs.hi_ == rhs.hi_ && lhs.lo_ == rhs.lo_; + } + friend constexpr auto operator!=(const uint128_fallback& lhs, + const uint128_fallback& rhs) -> bool { + return !(lhs == rhs); + } + friend constexpr auto operator>(const uint128_fallback& lhs, + const uint128_fallback& rhs) -> bool { + return lhs.hi_ != rhs.hi_ ? lhs.hi_ > rhs.hi_ : lhs.lo_ > rhs.lo_; + } + friend constexpr auto operator|(const uint128_fallback& lhs, + const uint128_fallback& rhs) + -> uint128_fallback { + return {lhs.hi_ | rhs.hi_, lhs.lo_ | rhs.lo_}; + } + friend constexpr auto operator&(const uint128_fallback& lhs, + const uint128_fallback& rhs) + -> uint128_fallback { + return {lhs.hi_ & rhs.hi_, lhs.lo_ & rhs.lo_}; + } + friend auto operator+(const uint128_fallback& lhs, + const uint128_fallback& rhs) -> uint128_fallback { + auto result = uint128_fallback(lhs); + result += rhs; + return result; + } + friend auto operator*(const uint128_fallback& lhs, uint32_t rhs) + -> uint128_fallback { + FMT_ASSERT(lhs.hi_ == 0, ""); + uint64_t hi = (lhs.lo_ >> 32) * rhs; + uint64_t lo = (lhs.lo_ & ~uint32_t()) * rhs; + uint64_t new_lo = (hi << 32) + lo; + return {(hi >> 32) + (new_lo < lo ? 1 : 0), new_lo}; + } + friend auto operator-(const uint128_fallback& lhs, uint64_t rhs) + -> uint128_fallback { + return {lhs.hi_ - (lhs.lo_ < rhs ? 1 : 0), lhs.lo_ - rhs}; + } + FMT_CONSTEXPR auto operator>>(int shift) const -> uint128_fallback { + if (shift == 64) return {0, hi_}; + return {hi_ >> shift, (hi_ << (64 - shift)) | (lo_ >> shift)}; + } + FMT_CONSTEXPR auto operator<<(int shift) const -> uint128_fallback { + if (shift == 64) return {lo_, 0}; + return {hi_ << shift | (lo_ >> (64 - shift)), (lo_ << shift)}; + } + FMT_CONSTEXPR auto operator>>=(int shift) -> uint128_fallback& { + return *this = *this >> shift; + } + FMT_CONSTEXPR void operator+=(uint128_fallback n) { + uint64_t new_lo = lo_ + n.lo_; + uint64_t new_hi = hi_ + n.hi_ + (new_lo < lo_ ? 1 : 0); + FMT_ASSERT(new_hi >= hi_, ""); + lo_ = new_lo; + hi_ = new_hi; + } + FMT_CONSTEXPR20 uint128_fallback& operator+=(uint64_t n) noexcept; }; + +using uint128_t = conditional_t; + #ifdef UINTPTR_MAX using uintptr_t = ::uintptr_t; -inline auto to_uintptr(const void* p) -> uintptr_t { - return bit_cast(p); -} #else -using uintptr_t = fallback_uintptr; -inline auto to_uintptr(const void* p) -> fallback_uintptr { - return fallback_uintptr(p); -} +using uintptr_t = uint128_t; #endif // Returns the largest possible value for type T. Same as @@ -344,16 +414,31 @@ template constexpr auto num_bits() -> int { return std::numeric_limits::digits; } // std::numeric_limits::digits may return 0 for 128-bit ints. -template <> constexpr auto num_bits() -> int { return 128; } +template <> constexpr auto num_bits() -> int { return 128; } template <> constexpr auto num_bits() -> int { return 128; } -template <> constexpr auto num_bits() -> int { - return static_cast(sizeof(void*) * - std::numeric_limits::digits); + +// A heterogeneous bit_cast used for converting 96-bit long double to uint128_t +// and 128-bit pointers to uint128_fallback. +template sizeof(From))> +inline auto bit_cast(const From& from) -> To { + constexpr auto size = static_cast(sizeof(From) / sizeof(unsigned)); + struct data_t { + unsigned value[static_cast(size)]; + } data = bit_cast(from); + auto result = To(); + if (const_check(is_big_endian())) { + for (int i = 0; i < size; ++i) + result = (result << num_bits()) | data.value[i]; + } else { + for (int i = size - 1; i >= 0; --i) + result = (result << num_bits()) | data.value[i]; + } + return result; } FMT_INLINE void assume(bool condition) { (void)condition; -#if FMT_HAS_BUILTIN(__builtin_assume) +#if FMT_HAS_BUILTIN(__builtin_assume) && !FMT_ICC_VERSION __builtin_assume(condition); #endif } @@ -616,6 +701,24 @@ inline auto code_point_index(basic_string_view s, size_t n) return s.size(); } +#ifndef FMT_USE_FLOAT128 +# ifdef __SIZEOF_FLOAT128__ +# define FMT_USE_FLOAT128 1 +# else +# define FMT_USE_FLOAT128 0 +# endif +#endif +#if FMT_USE_FLOAT128 +using float128 = __float128; +#else +using float128 = void; +#endif +template using is_float128 = std::is_same; + +template +using is_floating_point = + bool_constant::value || is_float128::value>; + template ::value> struct is_fast_float : bool_constant::is_iec559 && sizeof(T) <= sizeof(double)> {}; @@ -698,9 +801,7 @@ class basic_memory_buffer final : public detail::buffer { const Allocator& alloc = Allocator()) : alloc_(alloc) { this->set(store_, SIZE); - if (detail::is_constant_evaluated()) { - detail::fill_n(store_, SIZE, T{}); - } + if (detail::is_constant_evaluated()) detail::fill_n(store_, SIZE, T()); } FMT_CONSTEXPR20 ~basic_memory_buffer() { deallocate(); } @@ -712,18 +813,14 @@ class basic_memory_buffer final : public detail::buffer { size_t size = other.size(), capacity = other.capacity(); if (data == other.store_) { this->set(store_, capacity); - if (detail::is_constant_evaluated()) { - detail::copy_str(other.store_, other.store_ + size, - detail::make_checked(store_, capacity)); - } else { - std::uninitialized_copy(other.store_, other.store_ + size, - detail::make_checked(store_, capacity)); - } + detail::copy_str(other.store_, other.store_ + size, + detail::make_checked(store_, capacity)); } else { this->set(data, capacity); // Set pointer to the inline array so that delete is not called // when deallocating. other.set(other.store_, 0); + other.clear(); } this->resize(size); } @@ -735,8 +832,7 @@ class basic_memory_buffer final : public detail::buffer { of the other object to it. \endrst */ - FMT_CONSTEXPR20 basic_memory_buffer(basic_memory_buffer&& other) - FMT_NOEXCEPT { + FMT_CONSTEXPR20 basic_memory_buffer(basic_memory_buffer&& other) noexcept { move(other); } @@ -745,8 +841,7 @@ class basic_memory_buffer final : public detail::buffer { Moves the content of the other ``basic_memory_buffer`` object to this one. \endrst */ - auto operator=(basic_memory_buffer&& other) FMT_NOEXCEPT - -> basic_memory_buffer& { + auto operator=(basic_memory_buffer&& other) noexcept -> basic_memory_buffer& { FMT_ASSERT(this != &other, ""); deallocate(); move(other); @@ -776,9 +871,7 @@ class basic_memory_buffer final : public detail::buffer { template FMT_CONSTEXPR20 void basic_memory_buffer::grow( size_t size) { -#ifdef FMT_FUZZ - if (size > 5000) throw std::runtime_error("fuzz mode - won't grow that much"); -#endif + detail::abort_fuzzing_if(size > 5000); const size_t max_size = std::allocator_traits::max_size(alloc_); size_t old_capacity = this->capacity(); size_t new_capacity = old_capacity + old_capacity / 2; @@ -820,7 +913,7 @@ class FMT_API format_error : public std::runtime_error { format_error& operator=(const format_error&) = default; format_error(format_error&&) = default; format_error& operator=(format_error&&) = default; - ~format_error() FMT_NOEXCEPT override FMT_MSC_DEFAULT; + ~format_error() noexcept override FMT_MSC_DEFAULT; }; /** @@ -832,8 +925,8 @@ class FMT_API format_error : public std::runtime_error { \endrst */ template > -FMT_INLINE auto make_args_checked(const S& fmt, - const remove_reference_t&... args) +FMT_DEPRECATED FMT_INLINE auto make_args_checked( + const S& fmt, const remove_reference_t&... args) -> format_arg_store, remove_reference_t...> { static_assert( detail::count<( @@ -844,7 +937,6 @@ FMT_INLINE auto make_args_checked(const S& fmt, return {args...}; } -// compile-time support namespace detail_exported { #if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS template struct fixed_string { @@ -852,7 +944,7 @@ template struct fixed_string { detail::copy_str(static_cast(str), str + N, data); } - Char data[N]{}; + Char data[N] = {}; }; #endif @@ -874,30 +966,30 @@ constexpr auto compile_string_to_view(detail::std_string_view s) FMT_BEGIN_DETAIL_NAMESPACE template struct is_integral : std::is_integral {}; -template <> struct is_integral : std::true_type {}; +template <> struct is_integral : std::true_type {}; template <> struct is_integral : std::true_type {}; template using is_signed = std::integral_constant::is_signed || - std::is_same::value>; + std::is_same::value>; // Returns true if value is negative, false otherwise. // Same as `value < 0` but doesn't produce warnings if T is an unsigned type. template ::value)> -FMT_CONSTEXPR auto is_negative(T value) -> bool { +constexpr auto is_negative(T value) -> bool { return value < 0; } template ::value)> -FMT_CONSTEXPR auto is_negative(T) -> bool { +constexpr auto is_negative(T) -> bool { return false; } -template ::value)> -FMT_CONSTEXPR auto is_supported_floating_point(T) -> uint16_t { - return (std::is_same::value && FMT_USE_FLOAT) || - (std::is_same::value && FMT_USE_DOUBLE) || - (std::is_same::value && FMT_USE_LONG_DOUBLE); +template constexpr auto is_supported_floating_point(T) -> bool { + return (std::is_same() && FMT_USE_FLOAT) || + (std::is_same() && FMT_USE_DOUBLE) || + (std::is_same() && FMT_USE_LONG_DOUBLE) || + is_float128(); } // Smallest of uint32_t, uint64_t, uint128_t that is large enough to @@ -948,7 +1040,7 @@ template FMT_CONSTEXPR auto count_digits_fallback(T n) -> int { } } #if FMT_USE_INT128 -FMT_CONSTEXPR inline auto count_digits(uint128_t n) -> int { +FMT_CONSTEXPR inline auto count_digits(uint128_opt n) -> int { return count_digits_fallback(n); } #endif @@ -989,7 +1081,7 @@ FMT_CONSTEXPR20 inline auto count_digits(uint64_t n) -> int { template FMT_CONSTEXPR auto count_digits(UInt n) -> int { #ifdef FMT_BUILTIN_CLZ - if (num_bits() == 32) + if (!is_constant_evaluated() && num_bits() == 32) return (FMT_BUILTIN_CLZ(static_cast(n) | 1) ^ 31) / BITS + 1; #endif // Lambda avoids unreachable code warnings from NVHPC. @@ -1002,8 +1094,6 @@ FMT_CONSTEXPR auto count_digits(UInt n) -> int { }(n); } -template <> auto count_digits<4>(detail::fallback_uintptr n) -> int; - #ifdef FMT_BUILTIN_CLZ // It is a separate function rather than a part of count_digits to workaround // the lack of static constexpr in constexpr functions. @@ -1039,15 +1129,11 @@ FMT_CONSTEXPR20 inline auto count_digits(uint32_t n) -> int { return count_digits_fallback(n); } -template constexpr auto digits10() FMT_NOEXCEPT -> int { +template constexpr auto digits10() noexcept -> int { return std::numeric_limits::digits10; } -template <> constexpr auto digits10() FMT_NOEXCEPT -> int { - return 38; -} -template <> constexpr auto digits10() FMT_NOEXCEPT -> int { - return 38; -} +template <> constexpr auto digits10() noexcept -> int { return 38; } +template <> constexpr auto digits10() noexcept -> int { return 38; } template struct thousands_sep_result { std::string grouping; @@ -1142,35 +1228,13 @@ FMT_CONSTEXPR auto format_uint(Char* buffer, UInt value, int num_digits, Char* end = buffer; do { const char* digits = upper ? "0123456789ABCDEF" : "0123456789abcdef"; - unsigned digit = (value & ((1 << BASE_BITS) - 1)); + unsigned digit = static_cast(value & ((1 << BASE_BITS) - 1)); *--buffer = static_cast(BASE_BITS < 4 ? static_cast('0' + digit) : digits[digit]); } while ((value >>= BASE_BITS) != 0); return end; } -template -auto format_uint(Char* buffer, detail::fallback_uintptr n, int num_digits, - bool = false) -> Char* { - auto char_digits = std::numeric_limits::digits / 4; - int start = (num_digits + char_digits - 1) / char_digits - 1; - if (int start_digits = num_digits % char_digits) { - unsigned value = n.value[start--]; - buffer = format_uint(buffer, value, start_digits); - } - for (; start >= 0; --start) { - unsigned value = n.value[start]; - buffer += char_digits; - auto p = buffer; - for (int i = 0; i < char_digits; ++i) { - unsigned digit = (value & ((1 << BASE_BITS) - 1)); - *--p = static_cast("0123456789abcdef"[digit]); - value >>= BASE_BITS; - } - } - return buffer; -} - template inline auto format_uint(It out, UInt value, int num_digits, bool upper = false) -> It { @@ -1200,58 +1264,50 @@ class utf8_to_utf16 { namespace dragonbox { // Type-specific information that Dragonbox uses. -template struct float_info; +template struct float_info; template <> struct float_info { using carrier_uint = uint32_t; - static const int significand_bits = 23; static const int exponent_bits = 8; - static const int min_exponent = -126; - static const int max_exponent = 127; - static const int exponent_bias = -127; - static const int decimal_digits = 9; static const int kappa = 1; static const int big_divisor = 100; static const int small_divisor = 10; static const int min_k = -31; static const int max_k = 46; - static const int cache_bits = 64; static const int divisibility_check_by_5_threshold = 39; static const int case_fc_pm_half_lower_threshold = -1; - static const int case_fc_pm_half_upper_threshold = 6; - static const int case_fc_lower_threshold = -2; - static const int case_fc_upper_threshold = 6; - static const int case_shorter_interval_left_endpoint_lower_threshold = 2; - static const int case_shorter_interval_left_endpoint_upper_threshold = 3; static const int shorter_interval_tie_lower_threshold = -35; static const int shorter_interval_tie_upper_threshold = -35; - static const int max_trailing_zeros = 7; }; template <> struct float_info { using carrier_uint = uint64_t; - static const int significand_bits = 52; static const int exponent_bits = 11; - static const int min_exponent = -1022; - static const int max_exponent = 1023; - static const int exponent_bias = -1023; - static const int decimal_digits = 17; static const int kappa = 2; static const int big_divisor = 1000; static const int small_divisor = 100; static const int min_k = -292; static const int max_k = 326; - static const int cache_bits = 128; static const int divisibility_check_by_5_threshold = 86; static const int case_fc_pm_half_lower_threshold = -2; - static const int case_fc_pm_half_upper_threshold = 9; - static const int case_fc_lower_threshold = -4; - static const int case_fc_upper_threshold = 9; - static const int case_shorter_interval_left_endpoint_lower_threshold = 2; - static const int case_shorter_interval_left_endpoint_upper_threshold = 3; static const int shorter_interval_tie_lower_threshold = -77; static const int shorter_interval_tie_upper_threshold = -77; - static const int max_trailing_zeros = 16; +}; + +// An 80- or 128-bit floating point number. +template +struct float_info::digits == 64 || + std::numeric_limits::digits == 113 || + is_float128::value>> { + using carrier_uint = detail::uint128_t; + static const int exponent_bits = 15; +}; + +// A double-double floating point number. +template +struct float_info::digits >= 106 && + !std::numeric_limits::is_iec559>> { + using carrier_uint = detail::uint128_t; }; template struct decimal_fp { @@ -1260,16 +1316,35 @@ template struct decimal_fp { int exponent; }; -template -FMT_API auto to_decimal(T x) FMT_NOEXCEPT -> decimal_fp; +template FMT_API auto to_decimal(T x) noexcept -> decimal_fp; } // namespace dragonbox -template +// Returns true iff Float has the implicit bit which is not stored. +template constexpr bool has_implicit_bit() { + // An 80-bit FP number has a 64-bit significand an no implicit bit. + return std::numeric_limits::digits != 64; +} + +// Returns the number of significand bits stored in Float. The implicit bit is +// not counted since it is not stored. +template constexpr int num_significand_bits() { + // std::numeric_limits may not support __float128. + return is_float128() ? 112 + : (std::numeric_limits::digits - + (has_implicit_bit() ? 1 : 0)); +} + +template constexpr auto exponent_mask() -> - typename dragonbox::float_info::carrier_uint { - using uint = typename dragonbox::float_info::carrier_uint; - return ((uint(1) << dragonbox::float_info::exponent_bits) - 1) - << dragonbox::float_info::significand_bits; + typename dragonbox::float_info::carrier_uint { + using uint = typename dragonbox::float_info::carrier_uint; + return ((uint(1) << dragonbox::float_info::exponent_bits) - 1) + << num_significand_bits(); +} +template constexpr auto exponent_bias() -> int { + // std::numeric_limits may not support __float128. + return is_float128() ? 16383 + : std::numeric_limits::max_exponent - 1; } // Writes the exponent exp in the form "[+-]d{2,3}" to buffer. @@ -1299,16 +1374,122 @@ FMT_HEADER_ONLY_CONSTEXPR20 auto format_float(T value, int precision, float_specs specs, buffer& buf) -> int; +#ifndef _MSC_VER +# define FMT_SNPRINTF snprintf +#else +FMT_API auto fmt_snprintf(char* buf, size_t size, const char* fmt, ...) -> int; +# define FMT_SNPRINTF fmt_snprintf +#endif // _MSC_VER + // Formats a floating-point number with snprintf. template auto snprintf_float(T value, int precision, float_specs specs, - buffer& buf) -> int; + buffer& buf) -> int { + // Buffer capacity must be non-zero, otherwise MSVC's vsnprintf_s will fail. + FMT_ASSERT(buf.capacity() > buf.size(), "empty buffer"); + static_assert(!std::is_same::value, ""); -template constexpr auto promote_float(T value) -> T { - return value; + // Subtract 1 to account for the difference in precision since we use %e for + // both general and exponent format. + if (specs.format == float_format::general || + specs.format == float_format::exp) { + precision = (precision >= 0 ? precision : 6) - 1; + } + + // Build the format string. + char format[7]; // The longest format is "%#.*Le". + char* format_ptr = format; + *format_ptr++ = '%'; + if (specs.showpoint && specs.format == float_format::hex) *format_ptr++ = '#'; + if (precision >= 0) { + *format_ptr++ = '.'; + *format_ptr++ = '*'; + } + if (std::is_same()) *format_ptr++ = 'L'; + *format_ptr++ = specs.format != float_format::hex + ? (specs.format == float_format::fixed ? 'f' : 'e') + : (specs.upper ? 'A' : 'a'); + *format_ptr = '\0'; + + // Format using snprintf. + auto offset = buf.size(); + for (;;) { + auto begin = buf.data() + offset; + auto capacity = buf.capacity() - offset; + abort_fuzzing_if(precision > 100000); + // Suppress the warning about a nonliteral format string. + // Cannot use auto because of a bug in MinGW (#1532). + int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; + int result = precision >= 0 + ? snprintf_ptr(begin, capacity, format, precision, value) + : snprintf_ptr(begin, capacity, format, value); + if (result < 0) { + // The buffer will grow exponentially. + buf.try_reserve(buf.capacity() + 1); + continue; + } + auto size = to_unsigned(result); + // Size equal to capacity means that the last character was truncated. + if (size >= capacity) { + buf.try_reserve(size + offset + 1); // Add 1 for the terminating '\0'. + continue; + } + auto is_digit = [](char c) { return c >= '0' && c <= '9'; }; + if (specs.format == float_format::fixed) { + if (precision == 0) { + buf.try_resize(size); + return 0; + } + // Find and remove the decimal point. + auto end = begin + size, p = end; + do { + --p; + } while (is_digit(*p)); + int fraction_size = static_cast(end - p - 1); + std::memmove(p, p + 1, to_unsigned(fraction_size)); + buf.try_resize(size - 1); + return -fraction_size; + } + if (specs.format == float_format::hex) { + buf.try_resize(size + offset); + return 0; + } + // Find and parse the exponent. + auto end = begin + size, exp_pos = end; + do { + --exp_pos; + } while (*exp_pos != 'e'); + char sign = exp_pos[1]; + FMT_ASSERT(sign == '+' || sign == '-', ""); + int exp = 0; + auto p = exp_pos + 2; // Skip 'e' and sign. + do { + FMT_ASSERT(is_digit(*p), ""); + exp = exp * 10 + (*p++ - '0'); + } while (p != end); + if (sign == '-') exp = -exp; + int fraction_size = 0; + if (exp_pos != begin + 1) { + // Remove trailing zeros. + auto fraction_end = exp_pos - 1; + while (*fraction_end == '0') --fraction_end; + // Move the fractional part left to get rid of the decimal point. + fraction_size = static_cast(fraction_end - begin - 1); + std::memmove(begin + 1, begin + 2, to_unsigned(fraction_size)); + } + buf.try_resize(to_unsigned(fraction_size) + offset + 1); + return exp - fraction_size; + } } -constexpr auto promote_float(float value) -> double { - return static_cast(value); + +template +using convert_float_result = + conditional_t::value || sizeof(T) == sizeof(double), + double, T>; + +template +constexpr auto convert_float(T value) -> convert_float_result { + return static_cast>(value); } template @@ -1377,11 +1558,173 @@ auto write_ptr(OutputIt out, UIntPtr value, : base_iterator(out, write(reserve(out, size))); } +// Returns true iff the code point cp is printable. +FMT_API auto is_printable(uint32_t cp) -> bool; + +inline auto needs_escape(uint32_t cp) -> bool { + return cp < 0x20 || cp == 0x7f || cp == '"' || cp == '\\' || + !is_printable(cp); +} + +template struct find_escape_result { + const Char* begin; + const Char* end; + uint32_t cp; +}; + +template +using make_unsigned_char = + typename conditional_t::value, + std::make_unsigned, + type_identity>::type; + +template +auto find_escape(const Char* begin, const Char* end) + -> find_escape_result { + for (; begin != end; ++begin) { + uint32_t cp = static_cast>(*begin); + if (sizeof(Char) == 1 && cp >= 0x80) continue; + if (needs_escape(cp)) return {begin, begin + 1, cp}; + } + return {begin, nullptr, 0}; +} + +inline auto find_escape(const char* begin, const char* end) + -> find_escape_result { + if (!is_utf8()) return find_escape(begin, end); + auto result = find_escape_result{end, nullptr, 0}; + for_each_codepoint(string_view(begin, to_unsigned(end - begin)), + [&](uint32_t cp, string_view sv) { + if (needs_escape(cp)) { + result = {sv.begin(), sv.end(), cp}; + return false; + } + return true; + }); + return result; +} + +#define FMT_STRING_IMPL(s, base, explicit) \ + [] { \ + /* Use the hidden visibility as a workaround for a GCC bug (#1973). */ \ + /* Use a macro-like name to avoid shadowing warnings. */ \ + struct FMT_GCC_VISIBILITY_HIDDEN FMT_COMPILE_STRING : base { \ + using char_type = fmt::remove_cvref_t; \ + FMT_MAYBE_UNUSED FMT_CONSTEXPR explicit \ + operator fmt::basic_string_view() const { \ + return fmt::detail_exported::compile_string_to_view(s); \ + } \ + }; \ + return FMT_COMPILE_STRING(); \ + }() + +/** + \rst + Constructs a compile-time format string from a string literal *s*. + + **Example**:: + + // A compile-time error because 'd' is an invalid specifier for strings. + std::string s = fmt::format(FMT_STRING("{:d}"), "foo"); + \endrst + */ +#define FMT_STRING(s) FMT_STRING_IMPL(s, fmt::compile_string, ) + +template +auto write_escaped_string(OutputIt out, basic_string_view str) + -> OutputIt { + return copy_str(str.data(), str.data() + str.size(), out); +} + +template +auto write_escaped_cp(OutputIt out, const find_escape_result& escape) + -> OutputIt { + auto c = static_cast(escape.cp); + switch (escape.cp) { + case '\n': + *out++ = '\\'; + c = 'n'; + break; + case '\r': + *out++ = '\\'; + c = 'r'; + break; + case '\t': + *out++ = '\\'; + c = 't'; + break; + case '"': + FMT_FALLTHROUGH; + case '\'': + FMT_FALLTHROUGH; + case '\\': + *out++ = '\\'; + break; + default: + if (is_utf8()) { + if (escape.cp < 0x100) { + return format_to(out, FMT_STRING("\\x{:02x}"), escape.cp); + } + if (escape.cp < 0x10000) { + return format_to(out, FMT_STRING("\\u{:04x}"), escape.cp); + } + if (escape.cp < 0x110000) { + return format_to(out, FMT_STRING("\\U{:08x}"), escape.cp); + } + } + for (char escape_char : basic_string_view( + escape.begin, to_unsigned(escape.end - escape.begin))) { + out = format_to(out, FMT_STRING("\\x{:02x}"), + static_cast>(escape_char)); + } + return out; + } + *out++ = c; + return out; +} + +template +auto write_escaped_string(OutputIt out, basic_string_view str) + -> OutputIt { + *out++ = '"'; + auto begin = str.begin(), end = str.end(); + do { + auto escape = find_escape(begin, end); + out = copy_str(begin, escape.begin, out); + begin = escape.end; + if (!begin) break; + out = write_escaped_cp(out, escape); + } while (begin != end); + *out++ = '"'; + return out; +} + +template +auto write_escaped_char(OutputIt out, Char v) -> OutputIt { + *out++ = v; + return out; +} + +template +auto write_escaped_char(OutputIt out, char v) -> OutputIt { + *out++ = '\''; + if ((needs_escape(static_cast(v)) && v != '"') || v == '\'') { + out = write_escaped_cp( + out, find_escape_result{&v, &v + 1, static_cast(v)}); + } else { + *out++ = v; + } + *out++ = '\''; + return out; +} + template FMT_CONSTEXPR auto write_char(OutputIt out, Char value, const basic_format_specs& specs) -> OutputIt { + bool is_debug = specs.type == presentation_type::debug; return write_padded(out, specs, 1, [=](reserve_iterator it) { + if (is_debug) return write_escaped_char(it, value); *it++ = value; return it; }); @@ -1647,6 +1990,45 @@ FMT_CONSTEXPR FMT_INLINE auto write(OutputIt out, T value, return write_int(out, make_write_int_arg(value, specs.sign), specs, loc); } +// An output iterator that counts the number of objects written to it and +// discards them. +class counting_iterator { + private: + size_t count_; + + public: + using iterator_category = std::output_iterator_tag; + using difference_type = std::ptrdiff_t; + using pointer = void; + using reference = void; + FMT_UNCHECKED_ITERATOR(counting_iterator); + + struct value_type { + template void operator=(const T&) {} + }; + + counting_iterator() : count_(0) {} + + size_t count() const { return count_; } + + counting_iterator& operator++() { + ++count_; + return *this; + } + counting_iterator operator++(int) { + auto it = *this; + ++*this; + return it; + } + + friend counting_iterator operator+(counting_iterator it, difference_type n) { + it.count_ += static_cast(n); + return it; + } + + value_type operator*() const { return {}; } +}; + template FMT_CONSTEXPR auto write(OutputIt out, basic_string_view s, const basic_format_specs& specs) -> OutputIt { @@ -1654,10 +2036,17 @@ FMT_CONSTEXPR auto write(OutputIt out, basic_string_view s, auto size = s.size(); if (specs.precision >= 0 && to_unsigned(specs.precision) < size) size = code_point_index(s, to_unsigned(specs.precision)); - auto width = - specs.width != 0 ? compute_width(basic_string_view(data, size)) : 0; + bool is_debug = specs.type == presentation_type::debug; + size_t width = 0; + if (specs.width != 0) { + if (is_debug) + width = write_escaped_string(counting_iterator{}, s).count(); + else + width = compute_width(basic_string_view(data, size)); + } return write_padded(out, specs, size, width, [=](reserve_iterator it) { + if (is_debug) return write_escaped_string(it, s); return copy_str(data, data + size, it); }); } @@ -1675,15 +2064,15 @@ FMT_CONSTEXPR auto write(OutputIt out, const Char* s, -> OutputIt { return check_cstring_type_spec(specs.type) ? write(out, basic_string_view(s), specs, {}) - : write_ptr(out, to_uintptr(s), &specs); + : write_ptr(out, bit_cast(s), &specs); } template -FMT_CONSTEXPR20 auto write_nonfinite(OutputIt out, bool isinf, +FMT_CONSTEXPR20 auto write_nonfinite(OutputIt out, bool isnan, basic_format_specs specs, const float_specs& fspecs) -> OutputIt { auto str = - isinf ? (fspecs.upper ? "INF" : "inf") : (fspecs.upper ? "NAN" : "nan"); + isnan ? (fspecs.upper ? "NAN" : "nan") : (fspecs.upper ? "INF" : "inf"); constexpr size_t str_size = 3; auto sign = fspecs.sign; auto size = str_size + (sign ? 1 : 0); @@ -1747,7 +2136,7 @@ inline auto write_significand(Char* out, UInt significand, int significand_size, int floating_size = significand_size - integral_size; for (int i = floating_size / 2; i > 0; --i) { out -= 2; - copy2(out, digits2(significand % 100)); + copy2(out, digits2(static_cast(significand % 100))); significand /= 100; } if (floating_size % 2 != 0) { @@ -1860,16 +2249,14 @@ FMT_CONSTEXPR20 auto do_write_float(OutputIt out, const DecimalFP& fp, // 1234e5 -> 123400000[.0+] size += to_unsigned(fp.exponent); int num_zeros = fspecs.precision - exp; -#ifdef FMT_FUZZ - if (num_zeros > 5000) - throw std::runtime_error("fuzz mode - avoiding excessive cpu use"); -#endif + abort_fuzzing_if(num_zeros > 5000); if (fspecs.showpoint) { + ++size; if (num_zeros <= 0 && fspecs.format != float_format::fixed) num_zeros = 1; - if (num_zeros > 0) size += to_unsigned(num_zeros) + 1; + if (num_zeros > 0) size += to_unsigned(num_zeros); } auto grouping = Grouping(loc, fspecs.locale); - size += to_unsigned(grouping.count_separators(significand_size)); + size += to_unsigned(grouping.count_separators(exp)); return write_padded(out, specs, size, [&](iterator it) { if (sign) *it++ = detail::sign(sign); it = write_significand(it, significand, significand_size, @@ -1937,50 +2324,43 @@ FMT_CONSTEXPR20 auto write_float(OutputIt out, const DecimalFP& fp, } } -template ::value)> -FMT_CONSTEXPR20 bool isinf(T value) { - if (is_constant_evaluated()) { -#if defined(__cpp_if_constexpr) - if constexpr (std::numeric_limits::is_iec559) { - auto bits = detail::bit_cast(static_cast(value)); - constexpr auto significand_bits = - dragonbox::float_info::significand_bits; - return (bits & exponent_mask()) && - !(bits & ((uint64_t(1) << significand_bits) - 1)); - } -#endif - } - return std::isinf(value); +template constexpr bool isnan(T value) { + return !(value >= value); // std::isnan doesn't support __float128. } -template ::value)> +template +struct has_isfinite : std::false_type {}; + +template +struct has_isfinite> + : std::true_type {}; + +template ::value&& + has_isfinite::value)> FMT_CONSTEXPR20 bool isfinite(T value) { - if (is_constant_evaluated()) { -#if defined(__cpp_if_constexpr) - if constexpr (std::numeric_limits::is_iec559) { - auto bits = detail::bit_cast(static_cast(value)); - return (bits & exponent_mask()) != exponent_mask(); - } -#endif - } + if (is_constant_evaluated()) return !isnan(value - value); return std::isfinite(value); } +template ::value)> +constexpr bool isfinite(T value) { + return value - value == 0; // std::isfinite doesn't support __float128. +} -template ::value)> +template ::value)> FMT_INLINE FMT_CONSTEXPR bool signbit(T value) { if (is_constant_evaluated()) { #ifdef __cpp_if_constexpr if constexpr (std::numeric_limits::is_iec559) { auto bits = detail::bit_cast(static_cast(value)); - return (bits & (uint64_t(1) << (num_bits() - 1))) != 0; + return (bits >> (num_bits() - 1)) != 0; } #endif } - return std::signbit(value); + return std::signbit(static_cast(value)); } template ::value)> + FMT_ENABLE_IF(is_floating_point::value)> FMT_CONSTEXPR20 auto write(OutputIt out, T value, basic_format_specs specs, locale_ref loc = {}) -> OutputIt { @@ -1995,7 +2375,7 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value, } if (!detail::isfinite(value)) - return write_nonfinite(out, detail::isinf(value), specs, fspecs); + return write_nonfinite(out, detail::isnan(value), specs, fspecs); if (specs.align == align::numeric && fspecs.sign) { auto it = reserve(out, 1); @@ -2008,7 +2388,7 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value, memory_buffer buffer; if (fspecs.format == float_format::hex) { if (fspecs.sign) buffer.push_back(detail::sign(fspecs.sign)); - snprintf_float(promote_float(value), specs.precision, fspecs, buffer); + snprintf_float(convert_float(value), specs.precision, fspecs, buffer); return write_bytes(out, {buffer.data(), buffer.size()}, specs); } @@ -2020,10 +2400,11 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value, throw_format_error("number is too big"); else ++precision; + } else if (fspecs.format != float_format::fixed && precision == 0) { + precision = 1; } if (const_check(std::is_same())) fspecs.binary32 = true; - if (!is_fast_float()) fspecs.fallback = true; - int exp = format_float(promote_float(value), precision, fspecs, buffer); + int exp = format_float(convert_float(value), precision, fspecs, buffer); fspecs.precision = precision; auto fp = big_decimal_fp{buffer.data(), static_cast(buffer.size()), exp}; return write_float(out, fp, specs, fspecs, loc); @@ -2032,16 +2413,10 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value, template ::value)> FMT_CONSTEXPR20 auto write(OutputIt out, T value) -> OutputIt { - if (is_constant_evaluated()) { + if (is_constant_evaluated()) return write(out, value, basic_format_specs()); - } - if (const_check(!is_supported_floating_point(value))) return out; - using floaty = conditional_t::value, double, T>; - using uint = typename dragonbox::float_info::carrier_uint; - auto bits = bit_cast(value); - auto fspecs = float_specs(); if (detail::signbit(value)) { fspecs.sign = sign::minus; @@ -2049,16 +2424,18 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value) -> OutputIt { } constexpr auto specs = basic_format_specs(); + using floaty = conditional_t::value, double, T>; + using uint = typename dragonbox::float_info::carrier_uint; uint mask = exponent_mask(); - if ((bits & mask) == mask) - return write_nonfinite(out, std::isinf(value), specs, fspecs); + if ((bit_cast(value) & mask) == mask) + return write_nonfinite(out, std::isnan(value), specs, fspecs); auto dec = dragonbox::to_decimal(static_cast(value)); return write_float(out, dec, specs, fspecs, {}); } template ::value && + FMT_ENABLE_IF(is_floating_point::value && !is_fast_float::value)> inline auto write(OutputIt out, T value) -> OutputIt { return write(out, value, basic_format_specs()); @@ -2116,8 +2493,7 @@ template < type::custom_type, FMT_ENABLE_IF(check)> FMT_CONSTEXPR auto write(OutputIt out, T value) -> OutputIt { - return write( - out, static_cast::type>(value)); + return write(out, static_cast>(value)); } template & specs = {}, locale_ref = {}) -> OutputIt { check_pointer_type_spec(specs.type, error_handler()); - return write_ptr(out, to_uintptr(value), &specs); + return write_ptr(out, bit_cast(value), &specs); } // A write overload that handles implicit conversions. @@ -2163,7 +2539,7 @@ template > FMT_CONSTEXPR auto write(OutputIt out, const T& value) -> enable_if_t< std::is_class::value && !is_string::value && - !std::is_same::value && + !is_floating_point::value && !std::is_same::value && !std::is_same().map(value))>::value, OutputIt> { @@ -2356,39 +2732,13 @@ FMT_CONSTEXPR void handle_dynamic_spec(int& value, } } -#define FMT_STRING_IMPL(s, base, explicit) \ - [] { \ - /* Use the hidden visibility as a workaround for a GCC bug (#1973). */ \ - /* Use a macro-like name to avoid shadowing warnings. */ \ - struct FMT_GCC_VISIBILITY_HIDDEN FMT_COMPILE_STRING : base { \ - using char_type = fmt::remove_cvref_t; \ - FMT_MAYBE_UNUSED FMT_CONSTEXPR explicit \ - operator fmt::basic_string_view() const { \ - return fmt::detail_exported::compile_string_to_view(s); \ - } \ - }; \ - return FMT_COMPILE_STRING(); \ - }() - -/** - \rst - Constructs a compile-time format string from a string literal *s*. - - **Example**:: - - // A compile-time error because 'd' is an invalid specifier for strings. - std::string s = fmt::format(FMT_STRING("{:d}"), "foo"); - \endrst - */ -#define FMT_STRING(s) FMT_STRING_IMPL(s, fmt::compile_string, ) - #if FMT_USE_USER_DEFINED_LITERALS template struct udl_formatter { basic_string_view str; template auto operator()(T&&... args) const -> std::basic_string { - return vformat(str, fmt::make_args_checked(str, args...)); + return vformat(str, fmt::make_format_args>(args...)); } }; @@ -2441,10 +2791,10 @@ auto vformat(const Locale& loc, basic_string_view format_str, using format_func = void (*)(detail::buffer&, int, const char*); FMT_API void format_error_code(buffer& out, int error_code, - string_view message) FMT_NOEXCEPT; + string_view message) noexcept; FMT_API void report_error(format_func func, int error_code, - const char* message) FMT_NOEXCEPT; + const char* message) noexcept; FMT_END_DETAIL_NAMESPACE FMT_API auto vsystem_error(int error_code, string_view format_str, @@ -2490,12 +2840,11 @@ auto system_error(int error_code, format_string fmt, T&&... args) \endrst */ FMT_API void format_system_error(detail::buffer& out, int error_code, - const char* message) FMT_NOEXCEPT; + const char* message) noexcept; // Reports a system error without throwing an exception. // Can be used to report errors from destructors. -FMT_API void report_system_error(int error_code, - const char* message) FMT_NOEXCEPT; +FMT_API void report_system_error(int error_code, const char* message) noexcept; /** Fast integer formatter. */ class format_int { @@ -2577,28 +2926,6 @@ formatter(ctx.out(), val, specs_, ctx.locale()); } -#define FMT_FORMAT_AS(Type, Base) \ - template \ - struct formatter : formatter { \ - template \ - auto format(Type const& val, FormatContext& ctx) const \ - -> decltype(ctx.out()) { \ - return formatter::format(static_cast(val), ctx); \ - } \ - } - -FMT_FORMAT_AS(signed char, int); -FMT_FORMAT_AS(unsigned char, unsigned); -FMT_FORMAT_AS(short, int); -FMT_FORMAT_AS(unsigned short, unsigned); -FMT_FORMAT_AS(long, long long); -FMT_FORMAT_AS(unsigned long, unsigned long long); -FMT_FORMAT_AS(Char*, const Char*); -FMT_FORMAT_AS(std::basic_string, basic_string_view); -FMT_FORMAT_AS(std::nullptr_t, const void*); -FMT_FORMAT_AS(detail::byte, unsigned char); -FMT_FORMAT_AS(detail::std_string_view, basic_string_view); - template struct formatter : formatter { template @@ -2688,6 +3015,28 @@ template auto ptr(const std::shared_ptr& p) -> const void* { return p.get(); } +/** + \rst + Converts ``e`` to the underlying type. + + **Example**:: + + enum class color { red, green, blue }; + auto s = fmt::format("{}", fmt::underlying(color::red)); + \endrst + */ +template +constexpr auto underlying(Enum e) noexcept -> underlying_t { + return static_cast>(e); +} + +namespace enums { +template ::value)> +constexpr auto format_as(Enum e) noexcept -> underlying_t { + return static_cast>(e); +} +} // namespace enums + class bytes { private: string_view data_; @@ -2818,8 +3167,8 @@ struct formatter, Char> { } template - auto format(const join_view& value, FormatContext& ctx) - -> decltype(ctx.out()) { + auto format(const join_view& value, + FormatContext& ctx) const -> decltype(ctx.out()) { auto it = value.begin; auto out = ctx.out(); if (it != value.end) { @@ -2936,9 +3285,10 @@ void vformat_to( basic_format_parse_context parse_context; buffer_context context; - format_handler(buffer_appender out, basic_string_view str, - basic_format_args> args, locale_ref loc) - : parse_context(str), context(out, args, loc) {} + format_handler(buffer_appender p_out, basic_string_view str, + basic_format_args> p_args, + locale_ref p_loc) + : parse_context(str), context(p_out, p_args, p_loc) {} void on_text(const Char* begin, const Char* end) { auto text = basic_string_view(begin, to_unsigned(end - begin)); @@ -3001,14 +3351,6 @@ extern template auto format_float(double value, int precision, extern template auto format_float(long double value, int precision, float_specs specs, buffer& buf) -> int; -void snprintf_float(float, int, float_specs, buffer&) = delete; -extern template auto snprintf_float(double value, int precision, - float_specs specs, - buffer& buf) -> int; -extern template auto snprintf_float(long double value, - int precision, - float_specs specs, - buffer& buf) -> int; #endif // FMT_HEADER_ONLY FMT_END_DETAIL_NAMESPACE @@ -3026,11 +3368,9 @@ inline namespace literals { \endrst */ # if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS -template -constexpr auto operator""_a() - -> detail::udl_arg, - sizeof(Str.data) / sizeof(decltype(Str.data[0])), Str> { - return {}; +template constexpr auto operator""_a() { + using char_t = remove_cvref_t; + return detail::udl_arg(); } # else constexpr auto operator"" _a(const char* s, size_t) -> detail::udl_arg { diff --git a/Externals/fmt/include/fmt/os.h b/Externals/fmt/include/fmt/os.h index b64f8bbfa5..d7ba5f4c6e 100644 --- a/Externals/fmt/include/fmt/os.h +++ b/Externals/fmt/include/fmt/os.h @@ -9,10 +9,8 @@ #define FMT_OS_H_ #include -#include // locale_t #include #include -#include // strtod_l #include // std::system_error #if defined __APPLE__ || defined(__FreeBSD__) @@ -141,7 +139,7 @@ template struct formatter { }; #ifdef _WIN32 -FMT_API const std::error_category& system_category() FMT_NOEXCEPT; +FMT_API const std::error_category& system_category() noexcept; FMT_BEGIN_DETAIL_NAMESPACE // A converter from UTF-16 to UTF-8. @@ -165,7 +163,7 @@ class utf16_to_utf8 { }; FMT_API void format_windows_error(buffer& out, int error_code, - const char* message) FMT_NOEXCEPT; + const char* message) noexcept; FMT_END_DETAIL_NAMESPACE FMT_API std::system_error vwindows_error(int error_code, string_view format_str, @@ -207,10 +205,9 @@ std::system_error windows_error(int error_code, string_view message, // Reports a Windows error without throwing an exception. // Can be used to report errors from destructors. -FMT_API void report_windows_error(int error_code, - const char* message) FMT_NOEXCEPT; +FMT_API void report_windows_error(int error_code, const char* message) noexcept; #else -inline const std::error_category& system_category() FMT_NOEXCEPT { +inline const std::error_category& system_category() noexcept { return std::system_category(); } #endif // _WIN32 @@ -237,13 +234,13 @@ class buffered_file { void operator=(const buffered_file&) = delete; // Constructs a buffered_file object which doesn't represent any file. - buffered_file() FMT_NOEXCEPT : file_(nullptr) {} + buffered_file() noexcept : file_(nullptr) {} // Destroys the object closing the file it represents if any. - FMT_API ~buffered_file() FMT_NOEXCEPT; + FMT_API ~buffered_file() noexcept; public: - buffered_file(buffered_file&& other) FMT_NOEXCEPT : file_(other.file_) { + buffered_file(buffered_file&& other) noexcept : file_(other.file_) { other.file_ = nullptr; } @@ -261,10 +258,11 @@ class buffered_file { FMT_API void close(); // Returns the pointer to a FILE object representing this file. - FILE* get() const FMT_NOEXCEPT { return file_; } + FILE* get() const noexcept { return file_; } // We place parentheses around fileno to workaround a bug in some versions // of MinGW that define fileno as a macro. + // DEPRECATED! Rename to descriptor to avoid issues with macros. FMT_API int(fileno)() const; void vprint(string_view format_str, format_args args) { @@ -279,12 +277,12 @@ class buffered_file { #if FMT_USE_FCNTL // A file. Closed file is represented by a file object with descriptor -1. -// Methods that are not declared with FMT_NOEXCEPT may throw +// Methods that are not declared with noexcept may throw // fmt::system_error in case of failure. Note that some errors such as // closing the file multiple times will cause a crash on Windows rather // than an exception. You can get standard behavior by overriding the // invalid parameter handler with _set_invalid_parameter_handler. -class file { +class FMT_API file { private: int fd_; // File descriptor. @@ -303,16 +301,16 @@ class file { }; // Constructs a file object which doesn't represent any file. - file() FMT_NOEXCEPT : fd_(-1) {} + file() noexcept : fd_(-1) {} // Opens a file and constructs a file object representing this file. - FMT_API file(cstring_view path, int oflag); + file(cstring_view path, int oflag); public: file(const file&) = delete; void operator=(const file&) = delete; - file(file&& other) FMT_NOEXCEPT : fd_(other.fd_) { other.fd_ = -1; } + file(file&& other) noexcept : fd_(other.fd_) { other.fd_ = -1; } // Move assignment is not noexcept because close may throw. file& operator=(file&& other) { @@ -323,43 +321,43 @@ class file { } // Destroys the object closing the file it represents if any. - FMT_API ~file() FMT_NOEXCEPT; + ~file() noexcept; // Returns the file descriptor. - int descriptor() const FMT_NOEXCEPT { return fd_; } + int descriptor() const noexcept { return fd_; } // Closes the file. - FMT_API void close(); + void close(); // Returns the file size. The size has signed type for consistency with // stat::st_size. - FMT_API long long size() const; + long long size() const; // Attempts to read count bytes from the file into the specified buffer. - FMT_API size_t read(void* buffer, size_t count); + size_t read(void* buffer, size_t count); // Attempts to write count bytes from the specified buffer to the file. - FMT_API size_t write(const void* buffer, size_t count); + size_t write(const void* buffer, size_t count); // Duplicates a file descriptor with the dup function and returns // the duplicate as a file object. - FMT_API static file dup(int fd); + static file dup(int fd); // Makes fd be the copy of this file descriptor, closing fd first if // necessary. - FMT_API void dup2(int fd); + void dup2(int fd); // Makes fd be the copy of this file descriptor, closing fd first if // necessary. - FMT_API void dup2(int fd, std::error_code& ec) FMT_NOEXCEPT; + void dup2(int fd, std::error_code& ec) noexcept; // Creates a pipe setting up read_end and write_end file objects for reading // and writing respectively. - FMT_API static void pipe(file& read_end, file& write_end); + static void pipe(file& read_end, file& write_end); // Creates a buffered_file object associated with this file and detaches // this file object from the file. - FMT_API buffered_file fdopen(const char* mode); + buffered_file fdopen(const char* mode); }; // Returns the memory page size. @@ -462,7 +460,7 @@ class FMT_API ostream final : private detail::buffer { * ````: Flags passed to `open `_ - (``file::WRONLY | file::CREATE`` by default) + (``file::WRONLY | file::CREATE | file::TRUNC`` by default) * ``buffer_size=``: Output buffer size **Example**:: @@ -477,50 +475,6 @@ inline ostream output_file(cstring_view path, T... params) { } #endif // FMT_USE_FCNTL -#ifdef FMT_LOCALE -// A "C" numeric locale. -class locale { - private: -# ifdef _WIN32 - using locale_t = _locale_t; - - static void freelocale(locale_t loc) { _free_locale(loc); } - - static double strtod_l(const char* nptr, char** endptr, _locale_t loc) { - return _strtod_l(nptr, endptr, loc); - } -# endif - - locale_t locale_; - - public: - using type = locale_t; - locale(const locale&) = delete; - void operator=(const locale&) = delete; - - locale() { -# ifndef _WIN32 - locale_ = FMT_SYSTEM(newlocale(LC_NUMERIC_MASK, "C", nullptr)); -# else - locale_ = _create_locale(LC_NUMERIC, "C"); -# endif - if (!locale_) FMT_THROW(system_error(errno, "cannot create locale")); - } - ~locale() { freelocale(locale_); } - - type get() const { return locale_; } - - // Converts string to floating-point number and advances str past the end - // of the parsed input. - FMT_DEPRECATED double strtod(const char*& str) const { - char* end = nullptr; - double result = strtod_l(str, &end, locale_); - str = end; - return result; - } -}; -using Locale FMT_DEPRECATED_ALIAS = locale; -#endif // FMT_LOCALE FMT_MODULE_EXPORT_END FMT_END_NAMESPACE diff --git a/Externals/fmt/include/fmt/ostream.h b/Externals/fmt/include/fmt/ostream.h index 3d716ece84..e228cfc6f9 100755 --- a/Externals/fmt/include/fmt/ostream.h +++ b/Externals/fmt/include/fmt/ostream.h @@ -8,6 +8,7 @@ #ifndef FMT_OSTREAM_H_ #define FMT_OSTREAM_H_ +#include #include #include "format.h" @@ -45,15 +46,57 @@ struct is_streamable< enable_if_t< std::is_arithmetic::value || std::is_array::value || std::is_pointer::value || std::is_same::value || - std::is_same>::value || + std::is_convertible>::value || std::is_same>::value || (std::is_convertible::value && !std::is_enum::value)>> : std::false_type {}; +template FILE* get_file(std::basic_filebuf&) { + return nullptr; +} + +struct dummy_filebuf { + FILE* _Myfile; +}; +template struct ms_filebuf { + using type = dummy_filebuf; +}; +template struct ms_filebuf { + using type = T; +}; +using filebuf_type = ms_filebuf::type; + +FILE* get_file(filebuf_type& buf); + +// Generate a unique explicit instantion in every translation unit using a tag +// type in an anonymous namespace. +namespace { +struct filebuf_access_tag {}; +} // namespace +template +class filebuf_access { + friend FILE* get_file(filebuf_type& buf) { return buf.*file; } +}; +template class filebuf_access; + +inline bool write(std::filebuf& buf, fmt::string_view data) { + print(get_file(buf), data); + return true; +} +inline bool write(std::wfilebuf&, fmt::basic_string_view) { + return false; +} + // Write the content of buf to os. // It is a separate function rather than a part of vprint to simplify testing. template void write_buffer(std::basic_ostream& os, buffer& buf) { + if (const_check(FMT_MSC_VER)) { + auto filebuf = dynamic_cast*>(os.rdbuf()); + if (filebuf && write(*filebuf, {buf.data(), buf.size()})) return; + } const Char* buf_data = buf.data(); using unsigned_streamsize = std::make_unsigned::type; unsigned_streamsize size = buf.size(); @@ -76,27 +119,34 @@ void format_value(buffer& buf, const T& value, #endif output << value; output.exceptions(std::ios_base::failbit | std::ios_base::badbit); - buf.try_resize(buf.size()); } +} // namespace detail // Formats an object of type T that has an overloaded ostream operator<<. -template -struct fallback_formatter::value>> - : private formatter, Char> { - using formatter, Char>::parse; - - template - auto format(const T& value, basic_format_context& ctx) +template +struct basic_ostream_formatter : formatter, Char> { + template + auto format(const T& value, basic_format_context& ctx) const -> OutputIt { auto buffer = basic_memory_buffer(); format_value(buffer, value, ctx.locale()); return formatter, Char>::format( {buffer.data(), buffer.size()}, ctx); } +}; +using ostream_formatter = basic_ostream_formatter; + +namespace detail { + +// Formats an object of type T that has an overloaded ostream operator<<. +template +struct fallback_formatter::value>> + : basic_ostream_formatter { + using basic_ostream_formatter::format; // DEPRECATED! template - auto format(const T& value, basic_printf_context& ctx) + auto format(const T& value, basic_printf_context& ctx) const -> OutputIt { auto buffer = basic_memory_buffer(); format_value(buffer, value, ctx.locale()); @@ -107,7 +157,8 @@ struct fallback_formatter::value>> FMT_MODULE_EXPORT template -void vprint(std::basic_ostream& os, basic_string_view format_str, +void vprint(std::basic_ostream& os, + basic_string_view> format_str, basic_format_args>> args) { auto buffer = basic_memory_buffer(); detail::vformat_to(buffer, format_str, args); @@ -124,12 +175,19 @@ void vprint(std::basic_ostream& os, basic_string_view format_str, \endrst */ FMT_MODULE_EXPORT -template ::value, char_t>> -void print(std::basic_ostream& os, const S& format_str, Args&&... args) { - vprint(os, to_string_view(format_str), - fmt::make_args_checked(format_str, args...)); +template +void print(std::ostream& os, format_string fmt, T&&... args) { + vprint(os, fmt, fmt::make_format_args(args...)); } + +FMT_MODULE_EXPORT +template +void print(std::wostream& os, + basic_format_string...> fmt, + Args&&... args) { + vprint(os, fmt, fmt::make_format_args>(args...)); +} + FMT_END_NAMESPACE #endif // FMT_OSTREAM_H_ diff --git a/Externals/fmt/include/fmt/ranges.h b/Externals/fmt/include/fmt/ranges.h index eb9fb8a92d..edff8f96f7 100755 --- a/Externals/fmt/include/fmt/ranges.h +++ b/Externals/fmt/include/fmt/ranges.h @@ -203,7 +203,7 @@ using make_index_sequence = make_integer_sequence; #endif template -void for_each(index_sequence, Tuple&& tup, F&& f) FMT_NOEXCEPT { +void for_each(index_sequence, Tuple&& tup, F&& f) noexcept { using std::get; // using free function get(T) now. const int _[] = {0, ((void)f(get(tup)), 0)...}; @@ -221,9 +221,28 @@ template void for_each(Tuple&& tup, F&& f) { for_each(indexes, std::forward(tup), std::forward(f)); } +#if FMT_MSC_VER +// Older MSVC doesn't get the reference type correctly for arrays. +template struct range_reference_type_impl { + using type = decltype(*detail::range_begin(std::declval())); +}; + +template struct range_reference_type_impl { + using type = T&; +}; + +template +using range_reference_type = typename range_reference_type_impl::type; +#else template -using value_type = - remove_cvref_t()))>; +using range_reference_type = + decltype(*detail::range_begin(std::declval())); +#endif + +// We don't use the Range's value_type for anything, but we do need the Range's +// reference type, with cv-ref stripped. +template +using uncvref_type = remove_cvref_t>; template OutputIt write_delimiter(OutputIt out) { *out++ = ','; @@ -231,286 +250,9 @@ template OutputIt write_delimiter(OutputIt out) { return out; } -struct singleton { - unsigned char upper; - unsigned char lower_count; -}; - -inline auto is_printable(uint16_t x, const singleton* singletons, - size_t singletons_size, - const unsigned char* singleton_lowers, - const unsigned char* normal, size_t normal_size) - -> bool { - auto upper = x >> 8; - auto lower_start = 0; - for (size_t i = 0; i < singletons_size; ++i) { - auto s = singletons[i]; - auto lower_end = lower_start + s.lower_count; - if (upper < s.upper) break; - if (upper == s.upper) { - for (auto j = lower_start; j < lower_end; ++j) { - if (singleton_lowers[j] == (x & 0xff)) return false; - } - } - lower_start = lower_end; - } - - auto xsigned = static_cast(x); - auto current = true; - for (size_t i = 0; i < normal_size; ++i) { - auto v = static_cast(normal[i]); - auto len = (v & 0x80) != 0 ? (v & 0x7f) << 8 | normal[++i] : v; - xsigned -= len; - if (xsigned < 0) break; - current = !current; - } - return current; -} - -// Returns true iff the code point cp is printable. -// This code is generated by support/printable.py. -inline auto is_printable(uint32_t cp) -> bool { - static constexpr singleton singletons0[] = { - {0x00, 1}, {0x03, 5}, {0x05, 6}, {0x06, 3}, {0x07, 6}, {0x08, 8}, - {0x09, 17}, {0x0a, 28}, {0x0b, 25}, {0x0c, 20}, {0x0d, 16}, {0x0e, 13}, - {0x0f, 4}, {0x10, 3}, {0x12, 18}, {0x13, 9}, {0x16, 1}, {0x17, 5}, - {0x18, 2}, {0x19, 3}, {0x1a, 7}, {0x1c, 2}, {0x1d, 1}, {0x1f, 22}, - {0x20, 3}, {0x2b, 3}, {0x2c, 2}, {0x2d, 11}, {0x2e, 1}, {0x30, 3}, - {0x31, 2}, {0x32, 1}, {0xa7, 2}, {0xa9, 2}, {0xaa, 4}, {0xab, 8}, - {0xfa, 2}, {0xfb, 5}, {0xfd, 4}, {0xfe, 3}, {0xff, 9}, - }; - static constexpr unsigned char singletons0_lower[] = { - 0xad, 0x78, 0x79, 0x8b, 0x8d, 0xa2, 0x30, 0x57, 0x58, 0x8b, 0x8c, 0x90, - 0x1c, 0x1d, 0xdd, 0x0e, 0x0f, 0x4b, 0x4c, 0xfb, 0xfc, 0x2e, 0x2f, 0x3f, - 0x5c, 0x5d, 0x5f, 0xb5, 0xe2, 0x84, 0x8d, 0x8e, 0x91, 0x92, 0xa9, 0xb1, - 0xba, 0xbb, 0xc5, 0xc6, 0xc9, 0xca, 0xde, 0xe4, 0xe5, 0xff, 0x00, 0x04, - 0x11, 0x12, 0x29, 0x31, 0x34, 0x37, 0x3a, 0x3b, 0x3d, 0x49, 0x4a, 0x5d, - 0x84, 0x8e, 0x92, 0xa9, 0xb1, 0xb4, 0xba, 0xbb, 0xc6, 0xca, 0xce, 0xcf, - 0xe4, 0xe5, 0x00, 0x04, 0x0d, 0x0e, 0x11, 0x12, 0x29, 0x31, 0x34, 0x3a, - 0x3b, 0x45, 0x46, 0x49, 0x4a, 0x5e, 0x64, 0x65, 0x84, 0x91, 0x9b, 0x9d, - 0xc9, 0xce, 0xcf, 0x0d, 0x11, 0x29, 0x45, 0x49, 0x57, 0x64, 0x65, 0x8d, - 0x91, 0xa9, 0xb4, 0xba, 0xbb, 0xc5, 0xc9, 0xdf, 0xe4, 0xe5, 0xf0, 0x0d, - 0x11, 0x45, 0x49, 0x64, 0x65, 0x80, 0x84, 0xb2, 0xbc, 0xbe, 0xbf, 0xd5, - 0xd7, 0xf0, 0xf1, 0x83, 0x85, 0x8b, 0xa4, 0xa6, 0xbe, 0xbf, 0xc5, 0xc7, - 0xce, 0xcf, 0xda, 0xdb, 0x48, 0x98, 0xbd, 0xcd, 0xc6, 0xce, 0xcf, 0x49, - 0x4e, 0x4f, 0x57, 0x59, 0x5e, 0x5f, 0x89, 0x8e, 0x8f, 0xb1, 0xb6, 0xb7, - 0xbf, 0xc1, 0xc6, 0xc7, 0xd7, 0x11, 0x16, 0x17, 0x5b, 0x5c, 0xf6, 0xf7, - 0xfe, 0xff, 0x80, 0x0d, 0x6d, 0x71, 0xde, 0xdf, 0x0e, 0x0f, 0x1f, 0x6e, - 0x6f, 0x1c, 0x1d, 0x5f, 0x7d, 0x7e, 0xae, 0xaf, 0xbb, 0xbc, 0xfa, 0x16, - 0x17, 0x1e, 0x1f, 0x46, 0x47, 0x4e, 0x4f, 0x58, 0x5a, 0x5c, 0x5e, 0x7e, - 0x7f, 0xb5, 0xc5, 0xd4, 0xd5, 0xdc, 0xf0, 0xf1, 0xf5, 0x72, 0x73, 0x8f, - 0x74, 0x75, 0x96, 0x2f, 0x5f, 0x26, 0x2e, 0x2f, 0xa7, 0xaf, 0xb7, 0xbf, - 0xc7, 0xcf, 0xd7, 0xdf, 0x9a, 0x40, 0x97, 0x98, 0x30, 0x8f, 0x1f, 0xc0, - 0xc1, 0xce, 0xff, 0x4e, 0x4f, 0x5a, 0x5b, 0x07, 0x08, 0x0f, 0x10, 0x27, - 0x2f, 0xee, 0xef, 0x6e, 0x6f, 0x37, 0x3d, 0x3f, 0x42, 0x45, 0x90, 0x91, - 0xfe, 0xff, 0x53, 0x67, 0x75, 0xc8, 0xc9, 0xd0, 0xd1, 0xd8, 0xd9, 0xe7, - 0xfe, 0xff, - }; - static constexpr singleton singletons1[] = { - {0x00, 6}, {0x01, 1}, {0x03, 1}, {0x04, 2}, {0x08, 8}, {0x09, 2}, - {0x0a, 5}, {0x0b, 2}, {0x0e, 4}, {0x10, 1}, {0x11, 2}, {0x12, 5}, - {0x13, 17}, {0x14, 1}, {0x15, 2}, {0x17, 2}, {0x19, 13}, {0x1c, 5}, - {0x1d, 8}, {0x24, 1}, {0x6a, 3}, {0x6b, 2}, {0xbc, 2}, {0xd1, 2}, - {0xd4, 12}, {0xd5, 9}, {0xd6, 2}, {0xd7, 2}, {0xda, 1}, {0xe0, 5}, - {0xe1, 2}, {0xe8, 2}, {0xee, 32}, {0xf0, 4}, {0xf8, 2}, {0xf9, 2}, - {0xfa, 2}, {0xfb, 1}, - }; - static constexpr unsigned char singletons1_lower[] = { - 0x0c, 0x27, 0x3b, 0x3e, 0x4e, 0x4f, 0x8f, 0x9e, 0x9e, 0x9f, 0x06, 0x07, - 0x09, 0x36, 0x3d, 0x3e, 0x56, 0xf3, 0xd0, 0xd1, 0x04, 0x14, 0x18, 0x36, - 0x37, 0x56, 0x57, 0x7f, 0xaa, 0xae, 0xaf, 0xbd, 0x35, 0xe0, 0x12, 0x87, - 0x89, 0x8e, 0x9e, 0x04, 0x0d, 0x0e, 0x11, 0x12, 0x29, 0x31, 0x34, 0x3a, - 0x45, 0x46, 0x49, 0x4a, 0x4e, 0x4f, 0x64, 0x65, 0x5c, 0xb6, 0xb7, 0x1b, - 0x1c, 0x07, 0x08, 0x0a, 0x0b, 0x14, 0x17, 0x36, 0x39, 0x3a, 0xa8, 0xa9, - 0xd8, 0xd9, 0x09, 0x37, 0x90, 0x91, 0xa8, 0x07, 0x0a, 0x3b, 0x3e, 0x66, - 0x69, 0x8f, 0x92, 0x6f, 0x5f, 0xee, 0xef, 0x5a, 0x62, 0x9a, 0x9b, 0x27, - 0x28, 0x55, 0x9d, 0xa0, 0xa1, 0xa3, 0xa4, 0xa7, 0xa8, 0xad, 0xba, 0xbc, - 0xc4, 0x06, 0x0b, 0x0c, 0x15, 0x1d, 0x3a, 0x3f, 0x45, 0x51, 0xa6, 0xa7, - 0xcc, 0xcd, 0xa0, 0x07, 0x19, 0x1a, 0x22, 0x25, 0x3e, 0x3f, 0xc5, 0xc6, - 0x04, 0x20, 0x23, 0x25, 0x26, 0x28, 0x33, 0x38, 0x3a, 0x48, 0x4a, 0x4c, - 0x50, 0x53, 0x55, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x63, 0x65, 0x66, - 0x6b, 0x73, 0x78, 0x7d, 0x7f, 0x8a, 0xa4, 0xaa, 0xaf, 0xb0, 0xc0, 0xd0, - 0xae, 0xaf, 0x79, 0xcc, 0x6e, 0x6f, 0x93, - }; - static constexpr unsigned char normal0[] = { - 0x00, 0x20, 0x5f, 0x22, 0x82, 0xdf, 0x04, 0x82, 0x44, 0x08, 0x1b, 0x04, - 0x06, 0x11, 0x81, 0xac, 0x0e, 0x80, 0xab, 0x35, 0x28, 0x0b, 0x80, 0xe0, - 0x03, 0x19, 0x08, 0x01, 0x04, 0x2f, 0x04, 0x34, 0x04, 0x07, 0x03, 0x01, - 0x07, 0x06, 0x07, 0x11, 0x0a, 0x50, 0x0f, 0x12, 0x07, 0x55, 0x07, 0x03, - 0x04, 0x1c, 0x0a, 0x09, 0x03, 0x08, 0x03, 0x07, 0x03, 0x02, 0x03, 0x03, - 0x03, 0x0c, 0x04, 0x05, 0x03, 0x0b, 0x06, 0x01, 0x0e, 0x15, 0x05, 0x3a, - 0x03, 0x11, 0x07, 0x06, 0x05, 0x10, 0x07, 0x57, 0x07, 0x02, 0x07, 0x15, - 0x0d, 0x50, 0x04, 0x43, 0x03, 0x2d, 0x03, 0x01, 0x04, 0x11, 0x06, 0x0f, - 0x0c, 0x3a, 0x04, 0x1d, 0x25, 0x5f, 0x20, 0x6d, 0x04, 0x6a, 0x25, 0x80, - 0xc8, 0x05, 0x82, 0xb0, 0x03, 0x1a, 0x06, 0x82, 0xfd, 0x03, 0x59, 0x07, - 0x15, 0x0b, 0x17, 0x09, 0x14, 0x0c, 0x14, 0x0c, 0x6a, 0x06, 0x0a, 0x06, - 0x1a, 0x06, 0x59, 0x07, 0x2b, 0x05, 0x46, 0x0a, 0x2c, 0x04, 0x0c, 0x04, - 0x01, 0x03, 0x31, 0x0b, 0x2c, 0x04, 0x1a, 0x06, 0x0b, 0x03, 0x80, 0xac, - 0x06, 0x0a, 0x06, 0x21, 0x3f, 0x4c, 0x04, 0x2d, 0x03, 0x74, 0x08, 0x3c, - 0x03, 0x0f, 0x03, 0x3c, 0x07, 0x38, 0x08, 0x2b, 0x05, 0x82, 0xff, 0x11, - 0x18, 0x08, 0x2f, 0x11, 0x2d, 0x03, 0x20, 0x10, 0x21, 0x0f, 0x80, 0x8c, - 0x04, 0x82, 0x97, 0x19, 0x0b, 0x15, 0x88, 0x94, 0x05, 0x2f, 0x05, 0x3b, - 0x07, 0x02, 0x0e, 0x18, 0x09, 0x80, 0xb3, 0x2d, 0x74, 0x0c, 0x80, 0xd6, - 0x1a, 0x0c, 0x05, 0x80, 0xff, 0x05, 0x80, 0xdf, 0x0c, 0xee, 0x0d, 0x03, - 0x84, 0x8d, 0x03, 0x37, 0x09, 0x81, 0x5c, 0x14, 0x80, 0xb8, 0x08, 0x80, - 0xcb, 0x2a, 0x38, 0x03, 0x0a, 0x06, 0x38, 0x08, 0x46, 0x08, 0x0c, 0x06, - 0x74, 0x0b, 0x1e, 0x03, 0x5a, 0x04, 0x59, 0x09, 0x80, 0x83, 0x18, 0x1c, - 0x0a, 0x16, 0x09, 0x4c, 0x04, 0x80, 0x8a, 0x06, 0xab, 0xa4, 0x0c, 0x17, - 0x04, 0x31, 0xa1, 0x04, 0x81, 0xda, 0x26, 0x07, 0x0c, 0x05, 0x05, 0x80, - 0xa5, 0x11, 0x81, 0x6d, 0x10, 0x78, 0x28, 0x2a, 0x06, 0x4c, 0x04, 0x80, - 0x8d, 0x04, 0x80, 0xbe, 0x03, 0x1b, 0x03, 0x0f, 0x0d, - }; - static constexpr unsigned char normal1[] = { - 0x5e, 0x22, 0x7b, 0x05, 0x03, 0x04, 0x2d, 0x03, 0x66, 0x03, 0x01, 0x2f, - 0x2e, 0x80, 0x82, 0x1d, 0x03, 0x31, 0x0f, 0x1c, 0x04, 0x24, 0x09, 0x1e, - 0x05, 0x2b, 0x05, 0x44, 0x04, 0x0e, 0x2a, 0x80, 0xaa, 0x06, 0x24, 0x04, - 0x24, 0x04, 0x28, 0x08, 0x34, 0x0b, 0x01, 0x80, 0x90, 0x81, 0x37, 0x09, - 0x16, 0x0a, 0x08, 0x80, 0x98, 0x39, 0x03, 0x63, 0x08, 0x09, 0x30, 0x16, - 0x05, 0x21, 0x03, 0x1b, 0x05, 0x01, 0x40, 0x38, 0x04, 0x4b, 0x05, 0x2f, - 0x04, 0x0a, 0x07, 0x09, 0x07, 0x40, 0x20, 0x27, 0x04, 0x0c, 0x09, 0x36, - 0x03, 0x3a, 0x05, 0x1a, 0x07, 0x04, 0x0c, 0x07, 0x50, 0x49, 0x37, 0x33, - 0x0d, 0x33, 0x07, 0x2e, 0x08, 0x0a, 0x81, 0x26, 0x52, 0x4e, 0x28, 0x08, - 0x2a, 0x56, 0x1c, 0x14, 0x17, 0x09, 0x4e, 0x04, 0x1e, 0x0f, 0x43, 0x0e, - 0x19, 0x07, 0x0a, 0x06, 0x48, 0x08, 0x27, 0x09, 0x75, 0x0b, 0x3f, 0x41, - 0x2a, 0x06, 0x3b, 0x05, 0x0a, 0x06, 0x51, 0x06, 0x01, 0x05, 0x10, 0x03, - 0x05, 0x80, 0x8b, 0x62, 0x1e, 0x48, 0x08, 0x0a, 0x80, 0xa6, 0x5e, 0x22, - 0x45, 0x0b, 0x0a, 0x06, 0x0d, 0x13, 0x39, 0x07, 0x0a, 0x36, 0x2c, 0x04, - 0x10, 0x80, 0xc0, 0x3c, 0x64, 0x53, 0x0c, 0x48, 0x09, 0x0a, 0x46, 0x45, - 0x1b, 0x48, 0x08, 0x53, 0x1d, 0x39, 0x81, 0x07, 0x46, 0x0a, 0x1d, 0x03, - 0x47, 0x49, 0x37, 0x03, 0x0e, 0x08, 0x0a, 0x06, 0x39, 0x07, 0x0a, 0x81, - 0x36, 0x19, 0x80, 0xb7, 0x01, 0x0f, 0x32, 0x0d, 0x83, 0x9b, 0x66, 0x75, - 0x0b, 0x80, 0xc4, 0x8a, 0xbc, 0x84, 0x2f, 0x8f, 0xd1, 0x82, 0x47, 0xa1, - 0xb9, 0x82, 0x39, 0x07, 0x2a, 0x04, 0x02, 0x60, 0x26, 0x0a, 0x46, 0x0a, - 0x28, 0x05, 0x13, 0x82, 0xb0, 0x5b, 0x65, 0x4b, 0x04, 0x39, 0x07, 0x11, - 0x40, 0x05, 0x0b, 0x02, 0x0e, 0x97, 0xf8, 0x08, 0x84, 0xd6, 0x2a, 0x09, - 0xa2, 0xf7, 0x81, 0x1f, 0x31, 0x03, 0x11, 0x04, 0x08, 0x81, 0x8c, 0x89, - 0x04, 0x6b, 0x05, 0x0d, 0x03, 0x09, 0x07, 0x10, 0x93, 0x60, 0x80, 0xf6, - 0x0a, 0x73, 0x08, 0x6e, 0x17, 0x46, 0x80, 0x9a, 0x14, 0x0c, 0x57, 0x09, - 0x19, 0x80, 0x87, 0x81, 0x47, 0x03, 0x85, 0x42, 0x0f, 0x15, 0x85, 0x50, - 0x2b, 0x80, 0xd5, 0x2d, 0x03, 0x1a, 0x04, 0x02, 0x81, 0x70, 0x3a, 0x05, - 0x01, 0x85, 0x00, 0x80, 0xd7, 0x29, 0x4c, 0x04, 0x0a, 0x04, 0x02, 0x83, - 0x11, 0x44, 0x4c, 0x3d, 0x80, 0xc2, 0x3c, 0x06, 0x01, 0x04, 0x55, 0x05, - 0x1b, 0x34, 0x02, 0x81, 0x0e, 0x2c, 0x04, 0x64, 0x0c, 0x56, 0x0a, 0x80, - 0xae, 0x38, 0x1d, 0x0d, 0x2c, 0x04, 0x09, 0x07, 0x02, 0x0e, 0x06, 0x80, - 0x9a, 0x83, 0xd8, 0x08, 0x0d, 0x03, 0x0d, 0x03, 0x74, 0x0c, 0x59, 0x07, - 0x0c, 0x14, 0x0c, 0x04, 0x38, 0x08, 0x0a, 0x06, 0x28, 0x08, 0x22, 0x4e, - 0x81, 0x54, 0x0c, 0x15, 0x03, 0x03, 0x05, 0x07, 0x09, 0x19, 0x07, 0x07, - 0x09, 0x03, 0x0d, 0x07, 0x29, 0x80, 0xcb, 0x25, 0x0a, 0x84, 0x06, - }; - auto lower = static_cast(cp); - if (cp < 0x10000) { - return is_printable(lower, singletons0, - sizeof(singletons0) / sizeof(*singletons0), - singletons0_lower, normal0, sizeof(normal0)); - } - if (cp < 0x20000) { - return is_printable(lower, singletons1, - sizeof(singletons1) / sizeof(*singletons1), - singletons1_lower, normal1, sizeof(normal1)); - } - if (0x2a6de <= cp && cp < 0x2a700) return false; - if (0x2b735 <= cp && cp < 0x2b740) return false; - if (0x2b81e <= cp && cp < 0x2b820) return false; - if (0x2cea2 <= cp && cp < 0x2ceb0) return false; - if (0x2ebe1 <= cp && cp < 0x2f800) return false; - if (0x2fa1e <= cp && cp < 0x30000) return false; - if (0x3134b <= cp && cp < 0xe0100) return false; - if (0xe01f0 <= cp && cp < 0x110000) return false; - return cp < 0x110000; -} - -inline auto needs_escape(uint32_t cp) -> bool { - return cp < 0x20 || cp == 0x7f || cp == '"' || cp == '\\' || - !is_printable(cp); -} - -template struct find_escape_result { - const Char* begin; - const Char* end; - uint32_t cp; -}; - -template -auto find_escape(const Char* begin, const Char* end) - -> find_escape_result { - for (; begin != end; ++begin) { - auto cp = static_cast::type>(*begin); - if (sizeof(Char) == 1 && cp >= 0x80) continue; - if (needs_escape(cp)) return {begin, begin + 1, cp}; - } - return {begin, nullptr, 0}; -} - -inline auto find_escape(const char* begin, const char* end) - -> find_escape_result { - if (!is_utf8()) return find_escape(begin, end); - auto result = find_escape_result{end, nullptr, 0}; - for_each_codepoint(string_view(begin, to_unsigned(end - begin)), - [&](uint32_t cp, string_view sv) { - if (needs_escape(cp)) { - result = {sv.begin(), sv.end(), cp}; - return false; - } - return true; - }); - return result; -} - template auto write_range_entry(OutputIt out, basic_string_view str) -> OutputIt { - *out++ = '"'; - auto begin = str.begin(), end = str.end(); - do { - auto escape = find_escape(begin, end); - out = copy_str(begin, escape.begin, out); - begin = escape.end; - if (!begin) break; - auto c = static_cast(escape.cp); - switch (escape.cp) { - case '\n': - *out++ = '\\'; - c = 'n'; - break; - case '\r': - *out++ = '\\'; - c = 'r'; - break; - case '\t': - *out++ = '\\'; - c = 't'; - break; - case '"': - FMT_FALLTHROUGH; - case '\\': - *out++ = '\\'; - break; - default: - if (is_utf8()) { - if (escape.cp < 0x100) { - out = format_to(out, "\\x{:02x}", escape.cp); - continue; - } - if (escape.cp < 0x10000) { - out = format_to(out, "\\u{:04x}", escape.cp); - continue; - } - if (escape.cp < 0x110000) { - out = format_to(out, "\\U{:08x}", escape.cp); - continue; - } - } - for (Char escape_char : basic_string_view( - escape.begin, to_unsigned(escape.end - escape.begin))) { - out = format_to( - out, "\\x{:02x}", - static_cast::type>(escape_char)); - } - continue; - } - *out++ = c; - } while (begin != end); - *out++ = '"'; - return out; + return write_escaped_string(out, str); } template OutputIt { template ::value)> OutputIt write_range_entry(OutputIt out, const Arg v) { - *out++ = '\''; - *out++ = v; - *out++ = '\''; - return out; + return write_escaped_char(out, v); } template < @@ -565,7 +304,8 @@ struct formatter::value>> { } template - auto format(const TupleT& values, FormatContext& ctx) -> decltype(ctx.out()) { + auto format(const TupleT& values, FormatContext& ctx) const + -> decltype(ctx.out()) { auto out = ctx.out(); *out++ = '('; detail::for_each(values, format_each{0, out}); @@ -582,43 +322,96 @@ template struct is_range { !std::is_constructible, T>::value; }; -template +namespace detail { +template struct range_mapper { + using mapper = arg_mapper; + + template , Context>::value)> + static auto map(T&& value) -> T&& { + return static_cast(value); + } + template , Context>::value)> + static auto map(T&& value) + -> decltype(mapper().map(static_cast(value))) { + return mapper().map(static_cast(value)); + } +}; + +template +using range_formatter_type = conditional_t< + is_formattable::value, + formatter>{}.map( + std::declval()))>, + Char>, + fallback_formatter>; + +template +using maybe_const_range = + conditional_t::value, const R, R>; +} // namespace detail + +template struct formatter< - T, Char, + R, Char, enable_if_t< - fmt::is_range::value + fmt::is_range::value // Workaround a bug in MSVC 2019 and earlier. #if !FMT_MSC_VER - && (is_formattable, Char>::value || - detail::has_fallback_formatter, Char>::value) + && + (is_formattable>, + Char>::value || + detail::has_fallback_formatter< + detail::uncvref_type>, Char>::value) #endif >> { + + using range_type = detail::maybe_const_range; + using formatter_type = + detail::range_formatter_type>; + formatter_type underlying_; + bool custom_specs_ = false; + template FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) { - return ctx.begin(); + auto it = ctx.begin(); + auto end = ctx.end(); + if (it == end || *it == '}') return it; + + if (*it != ':') + FMT_THROW(format_error("no top-level range formatters supported")); + + custom_specs_ = true; + ++it; + ctx.advance_to(it); + return underlying_.parse(ctx); } - template < - typename FormatContext, typename U, - FMT_ENABLE_IF( - std::is_same::value, - const T, T>>::value)> - auto format(U& range, FormatContext& ctx) -> decltype(ctx.out()) { + template + auto format(range_type& range, FormatContext& ctx) const + -> decltype(ctx.out()) { #ifdef FMT_DEPRECATED_BRACED_RANGES Char prefix = '{'; Char postfix = '}'; #else - Char prefix = detail::is_set::value ? '{' : '['; - Char postfix = detail::is_set::value ? '}' : ']'; + Char prefix = detail::is_set::value ? '{' : '['; + Char postfix = detail::is_set::value ? '}' : ']'; #endif + detail::range_mapper> mapper; auto out = ctx.out(); *out++ = prefix; int i = 0; - auto it = std::begin(range); - auto end = std::end(range); + auto it = detail::range_begin(range); + auto end = detail::range_end(range); for (; it != end; ++it) { if (i > 0) out = detail::write_delimiter(out); - out = detail::write_range_entry(out, *it); + if (custom_specs_) { + ctx.advance_to(out); + out = underlying_.format(mapper.map(*it), ctx); + } else { + out = detail::write_range_entry(out, *it); + } ++i; } *out++ = postfix; @@ -629,14 +422,14 @@ struct formatter< template struct formatter< T, Char, - enable_if_t< - detail::is_map::value + enable_if_t::value // Workaround a bug in MSVC 2019 and earlier. #if !FMT_MSC_VER - && (is_formattable, Char>::value || - detail::has_fallback_formatter, Char>::value) + && (is_formattable, Char>::value || + detail::has_fallback_formatter, + Char>::value) #endif - >> { + >> { template FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) { return ctx.begin(); @@ -647,7 +440,7 @@ struct formatter< FMT_ENABLE_IF( std::is_same::value, const T, T>>::value)> - auto format(U& map, FormatContext& ctx) -> decltype(ctx.out()) { + auto format(U& map, FormatContext& ctx) const -> decltype(ctx.out()) { auto out = ctx.out(); *out++ = '{'; int i = 0; diff --git a/Externals/fmt/include/fmt/xchar.h b/Externals/fmt/include/fmt/xchar.h index 55825077f8..9b57815d08 100644 --- a/Externals/fmt/include/fmt/xchar.h +++ b/Externals/fmt/include/fmt/xchar.h @@ -92,8 +92,8 @@ auto vformat(basic_string_view format_str, template , FMT_ENABLE_IF(!std::is_same::value)> auto format(const S& format_str, Args&&... args) -> std::basic_string { - const auto& vargs = fmt::make_args_checked(format_str, args...); - return vformat(to_string_view(format_str), vargs); + return vformat(to_string_view(format_str), + fmt::make_format_args>(args...)); } template , @@ -113,7 +113,7 @@ template std::basic_string { return detail::vformat(loc, to_string_view(format_str), - fmt::make_args_checked(format_str, args...)); + fmt::make_format_args>(args...)); } template , @@ -132,8 +132,8 @@ template ::value&& detail::is_exotic_char::value)> inline auto format_to(OutputIt out, const S& fmt, Args&&... args) -> OutputIt { - const auto& vargs = fmt::make_args_checked(fmt, args...); - return vformat_to(out, to_string_view(fmt), vargs); + return vformat_to(out, to_string_view(fmt), + fmt::make_format_args>(args...)); } template & buf, const S& format_str, Args&&... args) -> typename buffer_context::iterator { - const auto& vargs = fmt::make_args_checked(format_str, args...); - detail::vformat_to(buf, to_string_view(format_str), vargs, {}); + detail::vformat_to(buf, to_string_view(format_str), + fmt::make_format_args>(args...), {}); return detail::buffer_appender(buf); } @@ -167,8 +167,8 @@ template < inline auto format_to(OutputIt out, const Locale& loc, const S& format_str, Args&&... args) -> typename std::enable_if::type { - const auto& vargs = fmt::make_args_checked(format_str, args...); - return vformat_to(out, loc, to_string_view(format_str), vargs); + return vformat_to(out, loc, to_string_view(format_str), + fmt::make_format_args>(args...)); } template ::value)> inline auto format_to_n(OutputIt out, size_t n, const S& fmt, const Args&... args) -> format_to_n_result { - const auto& vargs = fmt::make_args_checked(fmt, args...); - return vformat_to_n(out, n, to_string_view(fmt), vargs); + return vformat_to_n(out, n, to_string_view(fmt), + fmt::make_format_args>(args...)); } template , FMT_ENABLE_IF(detail::is_exotic_char::value)> inline auto formatted_size(const S& fmt, Args&&... args) -> size_t { detail::counting_buffer buf; - const auto& vargs = fmt::make_args_checked(fmt, args...); - detail::vformat_to(buf, to_string_view(fmt), vargs); + detail::vformat_to(buf, to_string_view(fmt), + fmt::make_format_args>(args...)); return buf.count(); } diff --git a/Externals/fmt/src/format.cc b/Externals/fmt/src/format.cc index ecb8cc79a6..70206cf496 100755 --- a/Externals/fmt/src/format.cc +++ b/Externals/fmt/src/format.cc @@ -56,24 +56,10 @@ constexpr const char basic_data::right_padding_shifts[]; template constexpr const unsigned basic_data::prefixes[]; #endif -template -int format_float(char* buf, std::size_t size, const char* format, int precision, - T value) { -#ifdef FMT_FUZZ - if (precision > 100000) - throw std::runtime_error( - "fuzz mode - avoid large allocation inside snprintf"); -#endif - // Suppress the warning about nonliteral format string. - int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; - return precision < 0 ? snprintf_ptr(buf, size, format, value) - : snprintf_ptr(buf, size, format, precision, value); -} - -template FMT_API dragonbox::decimal_fp dragonbox::to_decimal(float x) - FMT_NOEXCEPT; -template FMT_API dragonbox::decimal_fp dragonbox::to_decimal(double x) - FMT_NOEXCEPT; +template FMT_API dragonbox::decimal_fp dragonbox::to_decimal( + float x) noexcept; +template FMT_API dragonbox::decimal_fp dragonbox::to_decimal( + double x) noexcept; } // namespace detail // Workaround a bug in MSVC2013 that prevents instantiation of format_float. @@ -100,11 +86,6 @@ template FMT_API void detail::vformat_to( detail::buffer&, string_view, basic_format_args, detail::locale_ref); -template FMT_API int detail::snprintf_float(double, int, detail::float_specs, - detail::buffer&); -template FMT_API int detail::snprintf_float(long double, int, - detail::float_specs, - detail::buffer&); template FMT_API int detail::format_float(double, int, detail::float_specs, detail::buffer&); template FMT_API int detail::format_float(long double, int, detail::float_specs, diff --git a/Externals/fmt/src/os.cc b/Externals/fmt/src/os.cc index 04b4dc5060..faa84c4948 100644 --- a/Externals/fmt/src/os.cc +++ b/Externals/fmt/src/os.cc @@ -35,9 +35,15 @@ # ifndef S_IRGRP # define S_IRGRP 0 # endif +# ifndef S_IWGRP +# define S_IWGRP 0 +# endif # ifndef S_IROTH # define S_IROTH 0 # endif +# ifndef S_IWOTH +# define S_IWOTH 0 +# endif # endif // _WIN32 #endif // FMT_USE_FCNTL @@ -107,7 +113,7 @@ class system_message { unsigned long result_; wchar_t* message_; - static bool is_whitespace(wchar_t c) FMT_NOEXCEPT { + static bool is_whitespace(wchar_t c) noexcept { return c == L' ' || c == L'\n' || c == L'\r' || c == L'\t' || c == L'\0'; } @@ -126,15 +132,15 @@ class system_message { } } ~system_message() { LocalFree(message_); } - explicit operator bool() const FMT_NOEXCEPT { return result_ != 0; } - operator basic_string_view() const FMT_NOEXCEPT { + explicit operator bool() const noexcept { return result_ != 0; } + operator basic_string_view() const noexcept { return basic_string_view(message_, result_); } }; class utf8_system_category final : public std::error_category { public: - const char* name() const FMT_NOEXCEPT override { return "system"; } + const char* name() const noexcept override { return "system"; } std::string message(int error_code) const override { system_message msg(error_code); if (msg) { @@ -149,7 +155,7 @@ class utf8_system_category final : public std::error_category { } // namespace detail -FMT_API const std::error_category& system_category() FMT_NOEXCEPT { +FMT_API const std::error_category& system_category() noexcept { static const detail::utf8_system_category category; return category; } @@ -161,7 +167,7 @@ std::system_error vwindows_error(int err_code, string_view format_str, } void detail::format_windows_error(detail::buffer& out, int error_code, - const char* message) FMT_NOEXCEPT { + const char* message) noexcept { FMT_TRY { system_message msg(error_code); if (msg) { @@ -176,12 +182,12 @@ void detail::format_windows_error(detail::buffer& out, int error_code, format_error_code(out, error_code, message); } -void report_windows_error(int error_code, const char* message) FMT_NOEXCEPT { +void report_windows_error(int error_code, const char* message) noexcept { report_error(detail::format_windows_error, error_code, message); } #endif // _WIN32 -buffered_file::~buffered_file() FMT_NOEXCEPT { +buffered_file::~buffered_file() noexcept { if (file_ && FMT_SYSTEM(fclose(file_)) != 0) report_system_error(errno, "cannot close file"); } @@ -214,7 +220,8 @@ file::file(cstring_view path, int oflag) { # ifdef _WIN32 using mode_t = int; # endif - mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; + constexpr mode_t mode = + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; # if defined(_WIN32) && !defined(__MINGW32__) fd_ = -1; FMT_POSIX_CALL(sopen_s(&fd_, path.c_str(), oflag, _SH_DENYNO, mode)); @@ -225,7 +232,7 @@ file::file(cstring_view path, int oflag) { FMT_THROW(system_error(errno, "cannot open file {}", path.c_str())); } -file::~file() FMT_NOEXCEPT { +file::~file() noexcept { // Don't retry close in case of EINTR! // See http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html if (fd_ != -1 && FMT_POSIX_CALL(close(fd_)) != 0) @@ -299,7 +306,7 @@ void file::dup2(int fd) { } } -void file::dup2(int fd, std::error_code& ec) FMT_NOEXCEPT { +void file::dup2(int fd, std::error_code& ec) noexcept { int result = 0; FMT_RETRY(result, FMT_POSIX_CALL(dup2(fd_, fd))); if (result == -1) ec = std::error_code(errno, std::generic_category()); diff --git a/Externals/fmt/support/bazel/.bazelversion b/Externals/fmt/support/bazel/.bazelversion index fae6e3d04b..0062ac9718 100644 --- a/Externals/fmt/support/bazel/.bazelversion +++ b/Externals/fmt/support/bazel/.bazelversion @@ -1 +1 @@ -4.2.1 +5.0.0 diff --git a/Externals/fmt/support/cmake/cxx14.cmake b/Externals/fmt/support/cmake/cxx14.cmake index 16ff57541b..deb1e26fb7 100755 --- a/Externals/fmt/support/cmake/cxx14.cmake +++ b/Externals/fmt/support/cmake/cxx14.cmake @@ -1,7 +1,11 @@ # C++14 feature support detection -include(CheckCXXSourceCompiles) include(CheckCXXCompilerFlag) +function (fmt_check_cxx_compiler_flag flag result) + if (NOT MSVC) + check_cxx_compiler_flag("${flag}" ${result}) + endif () +endfunction () if (NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 11) @@ -9,35 +13,38 @@ endif() message(STATUS "CXX_STANDARD: ${CMAKE_CXX_STANDARD}") if (CMAKE_CXX_STANDARD EQUAL 20) - check_cxx_compiler_flag(-std=c++20 has_std_20_flag) - check_cxx_compiler_flag(-std=c++2a has_std_2a_flag) + fmt_check_cxx_compiler_flag(-std=c++20 has_std_20_flag) + fmt_check_cxx_compiler_flag(-std=c++2a has_std_2a_flag) if (has_std_20_flag) set(CXX_STANDARD_FLAG -std=c++20) elseif (has_std_2a_flag) set(CXX_STANDARD_FLAG -std=c++2a) endif () + elseif (CMAKE_CXX_STANDARD EQUAL 17) - check_cxx_compiler_flag(-std=c++17 has_std_17_flag) - check_cxx_compiler_flag(-std=c++1z has_std_1z_flag) + fmt_check_cxx_compiler_flag(-std=c++17 has_std_17_flag) + fmt_check_cxx_compiler_flag(-std=c++1z has_std_1z_flag) if (has_std_17_flag) set(CXX_STANDARD_FLAG -std=c++17) elseif (has_std_1z_flag) set(CXX_STANDARD_FLAG -std=c++1z) endif () + elseif (CMAKE_CXX_STANDARD EQUAL 14) - check_cxx_compiler_flag(-std=c++14 has_std_14_flag) - check_cxx_compiler_flag(-std=c++1y has_std_1y_flag) + fmt_check_cxx_compiler_flag(-std=c++14 has_std_14_flag) + fmt_check_cxx_compiler_flag(-std=c++1y has_std_1y_flag) if (has_std_14_flag) set(CXX_STANDARD_FLAG -std=c++14) elseif (has_std_1y_flag) set(CXX_STANDARD_FLAG -std=c++1y) endif () + elseif (CMAKE_CXX_STANDARD EQUAL 11) - check_cxx_compiler_flag(-std=c++11 has_std_11_flag) - check_cxx_compiler_flag(-std=c++0x has_std_0x_flag) + fmt_check_cxx_compiler_flag(-std=c++11 has_std_11_flag) + fmt_check_cxx_compiler_flag(-std=c++0x has_std_0x_flag) if (has_std_11_flag) set(CXX_STANDARD_FLAG -std=c++11) @@ -45,26 +52,3 @@ elseif (CMAKE_CXX_STANDARD EQUAL 11) set(CXX_STANDARD_FLAG -std=c++0x) endif () endif () - -set(CMAKE_REQUIRED_FLAGS ${CXX_STANDARD_FLAG}) - -# Check if user-defined literals are available -check_cxx_source_compiles(" - void operator\"\" _udl(long double); - int main() {}" - SUPPORTS_USER_DEFINED_LITERALS) -if (NOT SUPPORTS_USER_DEFINED_LITERALS) - set (SUPPORTS_USER_DEFINED_LITERALS OFF) -endif () - -# Check if is available -set(CMAKE_REQUIRED_FLAGS -std=c++1z) -check_cxx_source_compiles(" - #include - int main() {}" - FMT_HAS_VARIANT) -if (NOT FMT_HAS_VARIANT) - set (FMT_HAS_VARIANT OFF) -endif () - -set(CMAKE_REQUIRED_FLAGS ) diff --git a/Externals/fmt/support/printable.py b/Externals/fmt/support/printable.py index 7d23d3bb76..8fa86b3001 100644 --- a/Externals/fmt/support/printable.py +++ b/Externals/fmt/support/printable.py @@ -171,7 +171,7 @@ def main(): normal1 = compress_normal(normal1) print("""\ -inline auto is_printable(uint32_t cp) -> bool {\ +FMT_FUNC auto is_printable(uint32_t cp) -> bool {\ """) print_singletons(singletons0u, singletons0l, 'singletons0', 'singletons0_lower') print_singletons(singletons1u, singletons1l, 'singletons1', 'singletons1_lower') From 357dc72f97d812bf5d393d5f7216af8aa2d2c95a Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 16:37:51 -0700 Subject: [PATCH 037/659] fmt: fix 'unused variable' warnings --- Externals/fmt/include/fmt/core.h | 8 ++++---- Externals/fmt/include/fmt/format.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Externals/fmt/include/fmt/core.h b/Externals/fmt/include/fmt/core.h index 8dea0508a2..3905a00197 100755 --- a/Externals/fmt/include/fmt/core.h +++ b/Externals/fmt/include/fmt/core.h @@ -1702,11 +1702,11 @@ template FMT_CONSTEXPR FMT_INLINE auto make_value(T&& val) -> value { const auto& arg = arg_mapper().map(std::forward(val)); - constexpr bool formattable_char = + [[maybe_unused]] constexpr bool formattable_char = !std::is_same::value; static_assert(formattable_char, "Mixing character types is disallowed."); - constexpr bool formattable_const = + [[maybe_unused]] constexpr bool formattable_const = !std::is_same::value; static_assert(formattable_const, "Cannot format a const argument."); @@ -1714,12 +1714,12 @@ FMT_CONSTEXPR FMT_INLINE auto make_value(T&& val) -> value { // a pointer cast it to "void *" or "const void *". In particular, this // forbids formatting of "[const] volatile char *" which is printed as bool // by iostreams. - constexpr bool formattable_pointer = + [[maybe_unused]] constexpr bool formattable_pointer = !std::is_same::value; static_assert(formattable_pointer, "Formatting of non-void pointers is disallowed."); - constexpr bool formattable = + [[maybe_unused]] constexpr bool formattable = !std::is_same::value; static_assert( formattable, diff --git a/Externals/fmt/include/fmt/format.h b/Externals/fmt/include/fmt/format.h index d35207c8e2..5f8c783bbe 100755 --- a/Externals/fmt/include/fmt/format.h +++ b/Externals/fmt/include/fmt/format.h @@ -2198,7 +2198,7 @@ FMT_CONSTEXPR20 auto do_write_float(OutputIt out, const DecimalFP& fp, -> OutputIt { auto significand = fp.significand; int significand_size = get_significand_size(fp); - constexpr Char zero = static_cast('0'); + static constexpr Char zero = static_cast('0'); auto sign = fspecs.sign; size_t size = to_unsigned(significand_size) + (sign ? 1 : 0); using iterator = reserve_iterator; From 56626f73bf1f5d160aff866f6dd51cd1f3dad87f Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 16:38:21 -0700 Subject: [PATCH 038/659] fmt: fix 'ambigous overload' error --- Source/Core/VideoCommon/BPMemory.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h index 4729e06be5..28155a2cd6 100644 --- a/Source/Core/VideoCommon/BPMemory.h +++ b/Source/Core/VideoCommon/BPMemory.h @@ -1231,10 +1231,10 @@ struct fmt::formatter template auto format(const ScissorPos& pos, FormatContext& ctx) { - return format_to(ctx.out(), - "X: {} (raw: {})\n" - "Y: {} (raw: {})", - pos.x - 342, pos.x_full, pos.y - 342, pos.y_full); + return fmt::format_to(ctx.out(), + "X: {} (raw: {})\n" + "Y: {} (raw: {})", + pos.x - 342, pos.x_full, pos.y - 342, pos.y_full); } }; @@ -1257,10 +1257,10 @@ struct fmt::formatter template auto format(const ScissorOffset& off, FormatContext& ctx) { - return format_to(ctx.out(), - "X: {} (raw: {})\n" - "Y: {} (raw: {})", - (off.x << 1) - 342, off.x_full, (off.y << 1) - 342, off.y_full); + return fmt::format_to(ctx.out(), + "X: {} (raw: {})\n" + "Y: {} (raw: {})", + (off.x << 1) - 342, off.x_full, (off.y << 1) - 342, off.y_full); } }; From fa17153ebc83cbc0ae7a1d7430d9509db0c6e0d6 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 16:39:12 -0700 Subject: [PATCH 039/659] fmt: use make_format_args instead of make_args_checked make_args_checked is deprecated see https://github.com/fmtlib/fmt/pull/2760 and the linked comment --- Source/Core/Common/Logging/Log.h | 3 +-- Source/Core/Common/MsgHandler.h | 9 ++------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/Source/Core/Common/Logging/Log.h b/Source/Core/Common/Logging/Log.h index 092a9b4dc6..98d420bda2 100644 --- a/Source/Core/Common/Logging/Log.h +++ b/Source/Core/Common/Logging/Log.h @@ -94,8 +94,7 @@ void GenericLogFmt(LogLevel level, LogType type, const char* file, int line, con static_assert(NumFields == sizeof...(args), "Unexpected number of replacement fields in format string; did you pass too few or " "too many arguments?"); - GenericLogFmtImpl(level, type, file, line, format, - fmt::make_args_checked(format, args...)); + GenericLogFmtImpl(level, type, file, line, format, fmt::make_format_args(args...)); } void GenericLog(LogLevel level, LogType type, const char* file, int line, const char* fmt, ...) diff --git a/Source/Core/Common/MsgHandler.h b/Source/Core/Common/MsgHandler.h index 0e2de793a1..750da515b0 100644 --- a/Source/Core/Common/MsgHandler.h +++ b/Source/Core/Common/MsgHandler.h @@ -43,7 +43,7 @@ bool MsgAlertFmt(bool yes_no, MsgType style, Common::Log::LogType log_type, cons "too many arguments?"); static_assert(fmt::is_compile_string::value); return MsgAlertFmtImpl(yes_no, style, log_type, file, line, format, - fmt::make_args_checked(format, args...)); + fmt::make_format_args(args...)); } template @@ -57,12 +57,7 @@ bool MsgAlertFmtT(bool yes_no, MsgType style, Common::Log::LogType log_type, con "Unexpected number of replacement fields in format string; did you pass too few or " "too many arguments?"); static_assert(fmt::is_compile_string::value); - // It's only possible for us to compile-time check the English-language string. - // make_args_checked uses static_asserts to verify that a string is formattable with the given - // arguments. But it can't do that if the string varies at runtime, so we can't check - // translations. Still, verifying that the English string is correct will help ensure that - // translations use valid strings. - auto arg_list = fmt::make_args_checked(format, args...); + auto arg_list = fmt::make_format_args(args...); return MsgAlertFmtImpl(yes_no, style, log_type, file, line, translated_format, arg_list); } From 7b8e6c5b3643bb3ec09de3be5598d5e35caa3986 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 10 May 2022 21:17:10 -0700 Subject: [PATCH 040/659] fmt: do not define uint type in global namespace --- Externals/fmt/include/fmt/format.h | 10 +++++----- Source/Core/DolphinQt/DolphinQt.vcxproj | 2 -- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Externals/fmt/include/fmt/format.h b/Externals/fmt/include/fmt/format.h index 5f8c783bbe..31a2e7af85 100755 --- a/Externals/fmt/include/fmt/format.h +++ b/Externals/fmt/include/fmt/format.h @@ -1337,8 +1337,8 @@ template constexpr int num_significand_bits() { template constexpr auto exponent_mask() -> typename dragonbox::float_info::carrier_uint { - using uint = typename dragonbox::float_info::carrier_uint; - return ((uint(1) << dragonbox::float_info::exponent_bits) - 1) + using fmt_uint = typename dragonbox::float_info::carrier_uint; + return ((fmt_uint(1) << dragonbox::float_info::exponent_bits) - 1) << num_significand_bits(); } template constexpr auto exponent_bias() -> int { @@ -2425,9 +2425,9 @@ FMT_CONSTEXPR20 auto write(OutputIt out, T value) -> OutputIt { constexpr auto specs = basic_format_specs(); using floaty = conditional_t::value, double, T>; - using uint = typename dragonbox::float_info::carrier_uint; - uint mask = exponent_mask(); - if ((bit_cast(value) & mask) == mask) + using fmt_uint = typename dragonbox::float_info::carrier_uint; + fmt_uint mask = exponent_mask(); + if ((bit_cast(value) & mask) == mask) return write_nonfinite(out, std::isnan(value), specs, fspecs); auto dec = dragonbox::to_decimal(static_cast(value)); diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index da9e6096b0..4991ec9e54 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -30,8 +30,6 @@ $(ProjectDir)Settings;%(AdditionalIncludeDirectories) $(ProjectDir)TAS;%(AdditionalIncludeDirectories) $(ProjectDir)VideoInterface;%(AdditionalIncludeDirectories) - - false DolphinQt.manifest;%(AdditionalManifestFiles) From 8438e647f294fd9858da287a99baad9152515dba Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Wed, 11 May 2022 23:31:35 +0100 Subject: [PATCH 041/659] AXWii: handle mixer control more precisely On GameCube, a ramp bit has no effect if its corresponding channel is inactive. On Wii however, enabling just the ramp implicitly also enables the channel. AXSetVoiceMix() never does that, so this commit should have no impact on games unless they fiddle with the mixer control value directly. --- Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index 96a84aa7e3..161d86234c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -335,41 +335,41 @@ AXMixControl AXWiiUCode::ConvertMixerControl(u32 mixer_control) if (mixer_control & 0x00000002) ret |= MIX_MAIN_R; if (mixer_control & 0x00000004) - ret |= MIX_MAIN_L_RAMP | MIX_MAIN_R_RAMP; + ret |= MIX_MAIN_L | MIX_MAIN_R | MIX_MAIN_L_RAMP | MIX_MAIN_R_RAMP; if (mixer_control & 0x00000008) ret |= MIX_MAIN_S; if (mixer_control & 0x00000010) - ret |= MIX_MAIN_S_RAMP; + ret |= MIX_MAIN_S | MIX_MAIN_S_RAMP; if (mixer_control & 0x00010000) ret |= MIX_AUXA_L; if (mixer_control & 0x00020000) ret |= MIX_AUXA_R; if (mixer_control & 0x00040000) - ret |= MIX_AUXA_L_RAMP | MIX_AUXA_R_RAMP; + ret |= MIX_AUXA_L | MIX_AUXA_R | MIX_AUXA_L_RAMP | MIX_AUXA_R_RAMP; if (mixer_control & 0x00080000) ret |= MIX_AUXA_S; if (mixer_control & 0x00100000) - ret |= MIX_AUXA_S_RAMP; + ret |= MIX_AUXA_S | MIX_AUXA_S_RAMP; if (mixer_control & 0x00200000) ret |= MIX_AUXB_L; if (mixer_control & 0x00400000) ret |= MIX_AUXB_R; if (mixer_control & 0x00800000) - ret |= MIX_AUXB_L_RAMP | MIX_AUXB_R_RAMP; + ret |= MIX_AUXB_L | MIX_AUXB_R | MIX_AUXB_L_RAMP | MIX_AUXB_R_RAMP; if (mixer_control & 0x01000000) ret |= MIX_AUXB_S; if (mixer_control & 0x02000000) - ret |= MIX_AUXB_S_RAMP; + ret |= MIX_AUXB_S | MIX_AUXB_S_RAMP; if (mixer_control & 0x04000000) ret |= MIX_AUXC_L; if (mixer_control & 0x08000000) ret |= MIX_AUXC_R; if (mixer_control & 0x10000000) - ret |= MIX_AUXC_L_RAMP | MIX_AUXC_R_RAMP; + ret |= MIX_AUXC_L | MIX_AUXC_R | MIX_AUXC_L_RAMP | MIX_AUXC_R_RAMP; if (mixer_control & 0x20000000) ret |= MIX_AUXC_S; if (mixer_control & 0x40000000) - ret |= MIX_AUXC_S_RAMP; + ret |= MIX_AUXC_S | MIX_AUXC_S_RAMP; return (AXMixControl)ret; } From 855dbf88cac56541162ed038127276f7177bec59 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Fri, 13 May 2022 00:16:37 +0100 Subject: [PATCH 042/659] AX: handle DPL2 mixer control in old GameCube titles This fixes the audio test in Rogue Squadron 2 (issue 12902). --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 39 +++++++++++++++++------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 43551712f8..93cd3e5d63 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -291,18 +291,31 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) // TODO: find other UCode versions with different mixer_control values if (m_crc == 0x4e8a8b21) { - ret |= MIX_MAIN_L | MIX_MAIN_R; - if (mixer_control & 0x0001) - ret |= MIX_AUXA_L | MIX_AUXA_R; - if (mixer_control & 0x0002) - ret |= MIX_AUXB_L | MIX_AUXB_R; - if (mixer_control & 0x0004) + if (mixer_control & 0x0010) { - ret |= MIX_MAIN_S; - if (ret & MIX_AUXA_L) - ret |= MIX_AUXA_S; - if (ret & MIX_AUXB_L) - ret |= MIX_AUXB_S; + // DPL2 mixing + ret |= MIX_MAIN_L | MIX_MAIN_R; + if ((mixer_control & 0x0006) == 0) + ret |= MIX_AUXB_L | MIX_AUXB_R; + if ((mixer_control & 0x0007) == 1) + ret |= MIX_AUXA_L | MIX_AUXA_R | MIX_AUXA_S; + } + else + { + // non-DPL2 mixing + ret |= MIX_MAIN_L | MIX_MAIN_R; + if (mixer_control & 0x0001) + ret |= MIX_AUXA_L | MIX_AUXA_R; + if (mixer_control & 0x0002) + ret |= MIX_AUXB_L | MIX_AUXB_R; + if (mixer_control & 0x0004) + { + ret |= MIX_MAIN_S; + if (ret & MIX_AUXA_L) + ret |= MIX_AUXA_S; + if (ret & MIX_AUXB_L) + ret |= MIX_AUXB_S; + } } if (mixer_control & 0x0008) ret |= MIX_ALL_RAMPS; @@ -318,6 +331,7 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) ret |= MIX_MAIN_S; if (mixer_control & 0x0008) ret |= MIX_MAIN_L_RAMP | MIX_MAIN_R_RAMP | MIX_MAIN_S_RAMP; + if (mixer_control & 0x0010) ret |= MIX_AUXA_L; if (mixer_control & 0x0020) @@ -328,6 +342,7 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) ret |= MIX_AUXA_S; if (mixer_control & 0x0100) ret |= MIX_AUXA_S_RAMP; + if (mixer_control & 0x0200) ret |= MIX_AUXB_L; if (mixer_control & 0x0400) @@ -340,6 +355,8 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) ret |= MIX_AUXB_S_RAMP; // TODO: 0x4000 is used for Dolby Pro 2 sound mixing + // It selects the input surround channel for all AUXB mixing channels. + // This will only matter once we have ITD support. } return (AXMixControl)ret; From 8b1be98a964754bf5728650ffd7e3a8bde1c260b Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Thu, 12 May 2022 23:04:33 -0400 Subject: [PATCH 043/659] BuildMacOSUniversalBinary: Place the Qt path on CMAKE_PREFIX_PATH --- BuildMacOSUniversalBinary.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/BuildMacOSUniversalBinary.py b/BuildMacOSUniversalBinary.py index 0e01057b27..2425b5bea9 100755 --- a/BuildMacOSUniversalBinary.py +++ b/BuildMacOSUniversalBinary.py @@ -260,10 +260,12 @@ def build(config): if not os.path.exists(arch): os.mkdir(arch) + # Place Qt on the prefix path. + prefix_path = config[arch+"_qt5_path"]+';'+config[arch+"_cmake_prefix"] + env = os.environ.copy() - env["QT_DIR"] = config[arch+"_qt5_path"] env["CMAKE_OSX_ARCHITECTURES"] = arch - env["CMAKE_PREFIX_PATH"] = config[arch+"_cmake_prefix"] + env["CMAKE_PREFIX_PATH"] = prefix_path # Add the other architecture's prefix path to the ignore path so that # CMake doesn't try to pick up the wrong architecture's libraries when @@ -281,7 +283,7 @@ def build(config): # System name needs to be specified for CMake to use # the specified CMAKE_SYSTEM_PROCESSOR "-DCMAKE_SYSTEM_NAME=Darwin", - "-DCMAKE_PREFIX_PATH="+config[arch+"_cmake_prefix"], + "-DCMAKE_PREFIX_PATH="+prefix_path, "-DCMAKE_SYSTEM_PROCESSOR="+arch, "-DCMAKE_IGNORE_PATH="+ignore_path, "-DCMAKE_OSX_DEPLOYMENT_TARGET=" From b8cca8f598b81c9c6976785cc1b81b55f08893ca Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 15 Feb 2022 21:05:48 -0800 Subject: [PATCH 044/659] ProcessorInterface: Implement PI_FIFO_RESET Fixes unknown opcodes 0x0f and 0xff when resetting titles, e.g. https://bugs.dolphin-emu.org/issues/12492 --- Source/Core/Core/HW/ProcessorInterface.cpp | 6 +++++- Source/Core/Core/HW/ProcessorInterface.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/ProcessorInterface.cpp b/Source/Core/Core/HW/ProcessorInterface.cpp index 1e49f6e2dc..795a169205 100644 --- a/Source/Core/Core/HW/ProcessorInterface.cpp +++ b/Source/Core/Core/HW/ProcessorInterface.cpp @@ -18,6 +18,7 @@ #include "Core/IOS/IOS.h" #include "Core/IOS/STM/STM.h" #include "Core/PowerPC/PowerPC.h" +#include "VideoCommon/Fifo.h" namespace ProcessorInterface { @@ -111,7 +112,10 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) mmio->Register(base | PI_FIFO_RESET, MMIO::InvalidRead(), MMIO::ComplexWrite([](u32, u32 val) { - WARN_LOG_FMT(PROCESSORINTERFACE, "Fifo reset ({:08x})", val); + // Used by GXAbortFrame + INFO_LOG_FMT(PROCESSORINTERFACE, "Wrote PI_FIFO_RESET: {:08x}", val); + if ((val & 1) != 0) + Fifo::ResetVideoBuffer(); })); mmio->Register(base | PI_RESET_CODE, MMIO::ComplexRead([](u32) { diff --git a/Source/Core/Core/HW/ProcessorInterface.h b/Source/Core/Core/HW/ProcessorInterface.h index 7b536244e3..0403b6d0a3 100644 --- a/Source/Core/Core/HW/ProcessorInterface.h +++ b/Source/Core/Core/HW/ProcessorInterface.h @@ -46,7 +46,7 @@ enum PI_FIFO_BASE = 0x0C, PI_FIFO_END = 0x10, PI_FIFO_WPTR = 0x14, - PI_FIFO_RESET = 0x18, // ??? - GXAbortFrame writes to it + PI_FIFO_RESET = 0x18, // Used by GXAbortFrame PI_RESET_CODE = 0x24, PI_FLIPPER_REV = 0x2C, PI_FLIPPER_UNK = 0x30 // BS1 writes 0x0245248A to it - prolly some bootstrap thing From ac7aeeece605e6174ba8ec4a2c1fb1b1d662e09a Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 14 May 2022 20:06:59 +0100 Subject: [PATCH 045/659] AX: refactor buffer initialization --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 43 ++++++--------------- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 28 ++++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp | 39 ++----------------- 3 files changed, 44 insertions(+), 66 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 93cd3e5d63..f1f716390a 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -364,37 +364,18 @@ AXMixControl AXUCode::ConvertMixerControl(u32 mixer_control) void AXUCode::SetupProcessing(u32 init_addr) { - u16 init_data[0x20]; - - for (u32 i = 0; i < 0x20; ++i) - init_data[i] = HLEMemory_Read_U16(init_addr + 2 * i); - - // List of all buffers we have to initialize - int* buffers[] = {m_samples_main_left, m_samples_main_right, m_samples_main_surround, - m_samples_auxA_left, m_samples_auxA_right, m_samples_auxA_surround, - m_samples_auxB_left, m_samples_auxB_right, m_samples_auxB_surround}; - - u32 init_idx = 0; - for (auto& buffer : buffers) - { - s32 init_val = (s32)((init_data[init_idx] << 16) | init_data[init_idx + 1]); - s16 delta = (s16)init_data[init_idx + 2]; - - init_idx += 3; - - if (!init_val) - { - memset(buffer, 0, 5 * 32 * sizeof(int)); - } - else - { - for (u32 j = 0; j < 32 * 5; ++j) - { - buffer[j] = init_val; - init_val += delta; - } - } - } + const std::array buffers = {{ + {m_samples_main_left, 32}, + {m_samples_main_right, 32}, + {m_samples_main_surround, 32}, + {m_samples_auxA_left, 32}, + {m_samples_auxA_right, 32}, + {m_samples_auxA_surround, 32}, + {m_samples_auxB_left, 32}, + {m_samples_auxB_right, 32}, + {m_samples_auxB_surround, 32}, + }}; + InitMixingBuffers<5 /*ms*/>(init_addr, buffers); } void AXUCode::DownloadAndMixWithVolume(u32 addr, u16 vol_main, u16 vol_auxa, u16 vol_auxb) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index 1405379cd0..52adc73b63 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -18,6 +18,7 @@ #include "Common/CommonTypes.h" #include "Common/Swap.h" #include "Core/HW/DSPHLE/UCodes/UCodes.h" +#include "Core/HW/Memmap.h" namespace DSP::HLE { @@ -141,6 +142,33 @@ protected: virtual void HandleCommandList(); void SignalWorkEnd(); + struct BufferDesc + { + int* ptr; + int samples_per_milli; + }; + + template + void InitMixingBuffers(u32 init_addr, const std::array& buffers) + { + std::array init_array; + Memory::CopyFromEmuSwapped(init_array.data(), init_addr, sizeof(init_array)); + for (size_t i = 0; i < BufCount; ++i) + { + const BufferDesc& buf = buffers[i]; + s32 value = s32((u32(init_array[3 * i]) << 16) | init_array[3 * i + 1]); + s16 delta = init_array[3 * i + 2]; + if (value == 0) + { + memset(buf.ptr, 0, Millis * buf.samples_per_milli * sizeof(int)); + } + else + { + for (int j = 0; j < Millis * buf.samples_per_milli; ++j) + buf.ptr[j] = value + j * delta; + } + } + } void SetupProcessing(u32 init_addr); void DownloadAndMixWithVolume(u32 addr, u16 vol_main, u16 vol_auxa, u16 vol_auxb); void ProcessPBList(u32 pb_addr); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index 161d86234c..e1a7530c35 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -253,18 +253,7 @@ void AXWiiUCode::HandleCommandList() void AXWiiUCode::SetupProcessing(u32 init_addr) { - // TODO: should be easily factorizable with AX - s16 init_data[60]; - - for (u32 i = 0; i < 60; ++i) - init_data[i] = HLEMemory_Read_U16(init_addr + 2 * i); - - // List of all buffers we have to initialize - struct - { - int* ptr; - u32 samples; - } buffers[] = { + const std::array buffers = {{ {m_samples_main_left, 32}, {m_samples_main_right, 32}, {m_samples_main_surround, 32}, {m_samples_auxA_left, 32}, {m_samples_auxA_right, 32}, {m_samples_auxA_surround, 32}, {m_samples_auxB_left, 32}, {m_samples_auxB_right, 32}, {m_samples_auxB_surround, 32}, @@ -272,29 +261,9 @@ void AXWiiUCode::SetupProcessing(u32 init_addr) {m_samples_wm0, 6}, {m_samples_aux0, 6}, {m_samples_wm1, 6}, {m_samples_aux1, 6}, {m_samples_wm2, 6}, {m_samples_aux2, 6}, - {m_samples_wm3, 6}, {m_samples_aux3, 6}}; - - u32 init_idx = 0; - for (auto& buffer : buffers) - { - s32 init_val = (s32)((init_data[init_idx] << 16) | init_data[init_idx + 1]); - s16 delta = (s16)init_data[init_idx + 2]; - - init_idx += 3; - - if (!init_val) - { - memset(buffer.ptr, 0, 3 * buffer.samples * sizeof(int)); - } - else - { - for (u32 j = 0; j < 3 * buffer.samples; ++j) - { - buffer.ptr[j] = init_val; - init_val += delta; - } - } - } + {m_samples_wm3, 6}, {m_samples_aux3, 6}, + }}; + InitMixingBuffers<3 /*ms*/>(init_addr, buffers); } void AXWiiUCode::AddToLR(u32 val_addr, bool neg) From 534d92d2c5493350709eb752e311414a9f624914 Mon Sep 17 00:00:00 2001 From: xperia64 Date: Sat, 14 May 2022 23:12:53 -0400 Subject: [PATCH 046/659] Add tested bootloading transfer size --- .../DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 582f1e96fa..0dc521322c 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -432,7 +432,7 @@ It is possible to both read and write to DMEM, but coefficient data cannot be wr \section{Initialization} -The DSP is initialized before it is used. This is done by copying a small program to physical address \Address{0x01000000} (virtual \Address{0x81000000}) in GameCube/Wii main memory, and then writing to \Register{DSP\_CONTROL\_STATUS} at \texttt{0xCC00500A} with the 11th and 0th bits set (SDK titles write \Value{0x08ad}). The 11th bit being set appears to cause data from \Address{0x01000000} to be DMAd to the start of IMEM; at least 128 bytes of data (64 DSP words) are transferred. (None of this has been extensively hardware tested, and is instead based on libogc's \Code{\_\_dsp\_bootstrap}.) +The DSP is initialized before it is used. This is done by copying a small program to physical address \Address{0x01000000} (virtual \Address{0x81000000}) in GameCube/Wii main memory, and then writing to \Register{DSP\_CONTROL\_STATUS} at \texttt{0xCC00500A} with the 11th and 0th bits set (SDK titles write \Value{0x08ad}). The 11th bit being set appears to cause data from \Address{0x01000000} to be DMAd to the start of IMEM; a basic hardware test (sending increasingly larger payloads until they fail) indicates 1024 bytes of data (512 DSP words) are transferred. (None of this has been extensively hardware tested, and is instead based on libogc's \Code{\_\_dsp\_bootstrap}.) The program that SDK titles send does the following: \begin{enumerate} From 9224c099d41929905dd100a44bed1b100f9aec6c Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 15 May 2022 17:31:49 -0400 Subject: [PATCH 047/659] Fix game card in landscape --- .../Android/app/src/main/res/layout/card_game.xml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Source/Android/app/src/main/res/layout/card_game.xml b/Source/Android/app/src/main/res/layout/card_game.xml index fe807f2af1..7bead263f4 100644 --- a/Source/Android/app/src/main/res/layout/card_game.xml +++ b/Source/Android/app/src/main/res/layout/card_game.xml @@ -12,24 +12,20 @@ android:paddingStart="4dp" android:paddingTop="8dp" android:paddingEnd="4dp" - android:transitionName="card_game" - tools:layout_width="160dp"> + android:transitionName="card_game"> + app:cardCornerRadius="4dp"> + android:layout_weight="1"/> Date: Mon, 16 May 2022 16:28:18 -0700 Subject: [PATCH 048/659] Treat changing the graphics adapter the same as changing the backend This results in the list of available antialiasing modes being updated; before, it would only show the modes available for the adapter that was selected when the graphics window was opened (or the backend was last changed). The list of available modes is updated by `GraphicsWindow::OnBackendChanged`'s call to `VideoBackendBase::PopulateBackendInfoFromUI`, and then `EnhancementsWidget::LoadSettings` updates the UI. Both of these are connected to the `GraphicsWindow::BackendChanged` signal. --- Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp index 8baa89db01..0353a69eea 100644 --- a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp @@ -142,9 +142,10 @@ void GeneralWidget::ConnectWidgets() // Video Backend connect(m_backend_combo, qOverload(&QComboBox::currentIndexChanged), this, &GeneralWidget::SaveSettings); - connect(m_adapter_combo, qOverload(&QComboBox::currentIndexChanged), this, [](int index) { + connect(m_adapter_combo, qOverload(&QComboBox::currentIndexChanged), this, [&](int index) { g_Config.iAdapter = index; Config::SetBaseOrCurrent(Config::GFX_ADAPTER, index); + emit BackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND))); }); } From 3949698acf4637412c4b52fac07bc1c9b32665c5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 16 May 2022 16:59:23 -0700 Subject: [PATCH 049/659] Verify graphics config validity after populating the backend info ... and refresh the config before populating the backend info, as the config (specifically iAdapter) needs to be set to correctly populate the backend info. Before, the list of valid antialiasing modes was always determined from the first adapter on the list on startup, regardless of the adapter the user selected. --- Source/Core/VideoCommon/VideoBackendBase.cpp | 7 ++++--- Source/Core/VideoCommon/VideoConfig.cpp | 9 ++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 78e4c7c15d..7136545c25 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -272,11 +272,12 @@ void VideoBackendBase::ActivateBackend(const std::string& name) void VideoBackendBase::PopulateBackendInfo() { - // We refresh the config after initializing the backend info, as system-specific settings - // such as anti-aliasing, or the selected adapter may be invalid, and should be checked. + g_Config.Refresh(); ActivateBackend(Config::Get(Config::MAIN_GFX_BACKEND)); g_video_backend->InitBackendInfo(); - g_Config.Refresh(); + // We validate the config after initializing the backend info, as system-specific settings + // such as anti-aliasing, or the selected adapter may be invalid, and should be checked. + g_Config.VerifyValidity(); } void VideoBackendBase::PopulateBackendInfoFromUI() diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 6d8cd7ff29..58893c9267 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -44,7 +44,12 @@ void VideoConfig::Refresh() // invalid values. Instead, pause emulation first, which will flush the video thread, // update the config and correct it, then resume emulation, after which the video // thread will detect the config has changed and act accordingly. - Config::AddConfigChangedCallback([]() { Core::RunAsCPUThread([]() { g_Config.Refresh(); }); }); + Config::AddConfigChangedCallback([]() { + Core::RunAsCPUThread([]() { + g_Config.Refresh(); + g_Config.VerifyValidity(); + }); + }); s_has_registered_callback = true; } @@ -140,8 +145,6 @@ void VideoConfig::Refresh() bFastTextureSampling = Config::Get(Config::GFX_HACK_FAST_TEXTURE_SAMPLING); bPerfQueriesEnable = Config::Get(Config::GFX_PERF_QUERIES_ENABLE); - - VerifyValidity(); } void VideoConfig::VerifyValidity() From 899be2efe854d20cbe6c50354dd0ed011ca3ae3c Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 17 May 2022 02:42:02 -0700 Subject: [PATCH 050/659] readme: make VS min version match the source --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 80f0f1424f..d802dc9b4a 100644 --- a/Readme.md +++ b/Readme.md @@ -39,7 +39,7 @@ Dolphin can only be installed on devices that satisfy the above requirements. At ## Building for Windows Use the solution file `Source/dolphin-emu.sln` to build Dolphin on Windows. -Visual Studio 2022 17.0 or later is a hard requirement. Other compilers might be +Visual Studio 2022 17.2 or later is a hard requirement. Other compilers might be able to build Dolphin on Windows but have not been tested and are not recommended to be used. Git and Windows 11 SDK must be installed when building. From a55192c020aa746d5fd2dfb87fc6582b2ec714dd Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 17 May 2022 02:42:31 -0700 Subject: [PATCH 051/659] readme: increment min windows version to 10 --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index d802dc9b4a..d0a4bdc724 100644 --- a/Readme.md +++ b/Readme.md @@ -13,7 +13,7 @@ Please read the [FAQ](https://dolphin-emu.org/docs/faq/) before using Dolphin. ### Desktop * OS - * Windows (7 SP1 or higher). + * Windows (10 or higher). * Linux. * macOS (10.13 High Sierra or higher). * Unix-like systems other than Linux are not officially supported but might work. From 736466a5d91c77cdcd3966e48b071c4f52658159 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 17 May 2022 11:27:49 -0700 Subject: [PATCH 052/659] XFMemory: Rename hostinfo to invtxspec --- Source/Core/VideoCommon/XFMemory.h | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Source/Core/VideoCommon/XFMemory.h b/Source/Core/VideoCommon/XFMemory.h index 836f221e47..23c4088f05 100644 --- a/Source/Core/VideoCommon/XFMemory.h +++ b/Source/Core/VideoCommon/XFMemory.h @@ -416,23 +416,23 @@ struct Projection struct XFMemory { - float posMatrices[256]; // 0x0000 - 0x00ff - u32 unk0[768]; // 0x0100 - 0x03ff - float normalMatrices[96]; // 0x0400 - 0x045f - u32 unk1[160]; // 0x0460 - 0x04ff - float postMatrices[256]; // 0x0500 - 0x05ff - Light lights[8]; // 0x0600 - 0x067f - u32 unk2[2432]; // 0x0680 - 0x0fff - u32 error; // 0x1000 - u32 diag; // 0x1001 - u32 state0; // 0x1002 - u32 state1; // 0x1003 - u32 xfClock; // 0x1004 - ClipDisable clipDisable; // 0x1005 - u32 perf0; // 0x1006 - u32 perf1; // 0x1007 - INVTXSPEC hostinfo; // 0x1008 number of textures,colors,normals from vertex input - NumColorChannel numChan; // 0x1009 + float posMatrices[256]; // 0x0000 - 0x00ff + u32 unk0[768]; // 0x0100 - 0x03ff + float normalMatrices[96]; // 0x0400 - 0x045f + u32 unk1[160]; // 0x0460 - 0x04ff + float postMatrices[256]; // 0x0500 - 0x05ff + Light lights[8]; // 0x0600 - 0x067f + u32 unk2[2432]; // 0x0680 - 0x0fff + u32 error; // 0x1000 + u32 diag; // 0x1001 + u32 state0; // 0x1002 + u32 state1; // 0x1003 + u32 xfClock; // 0x1004 + ClipDisable clipDisable; // 0x1005 + u32 perf0; // 0x1006 + u32 perf1; // 0x1007 + INVTXSPEC invtxspec; // 0x1008 + NumColorChannel numChan; // 0x1009 u32 ambColor[NUM_XF_COLOR_CHANNELS]; // 0x100a, 0x100b u32 matColor[NUM_XF_COLOR_CHANNELS]; // 0x100c, 0x100d LitChannel color[NUM_XF_COLOR_CHANNELS]; // 0x100e, 0x100f From 46bcdc4372209f343ff28994770c0666a0d6c3ac Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 17 May 2022 11:54:24 -0700 Subject: [PATCH 053/659] Rename CP and XF normal component count enums and update their descriptions --- Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp | 3 +- Source/Core/VideoCommon/CPMemory.h | 11 ++-- Source/Core/VideoCommon/VertexLoader.cpp | 2 +- Source/Core/VideoCommon/VertexLoaderARM64.cpp | 2 +- Source/Core/VideoCommon/VertexLoaderBase.cpp | 2 +- Source/Core/VideoCommon/VertexLoaderX64.cpp | 2 +- .../Core/VideoCommon/VertexLoader_Normal.cpp | 66 +++++++++---------- Source/Core/VideoCommon/XFMemory.h | 8 +-- .../VideoCommon/VertexLoaderTest.cpp | 2 +- 9 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp b/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp index 4deb2df6ff..586982e0e4 100644 --- a/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp +++ b/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp @@ -677,10 +677,9 @@ public: } process_component(vtx_desc.low.Position, vtx_attr.g0.PosFormat, vtx_attr.g0.PosElements == CoordComponentCount::XY ? 2 : 3); - // TODO: Is this calculation correct? const u32 normal_component_count = vtx_desc.low.Normal == VertexComponentFormat::Direct ? 3 : 1; - const u32 normal_elements = vtx_attr.g0.NormalElements == NormalComponentCount::NBT ? 3 : 1; + const u32 normal_elements = vtx_attr.g0.NormalElements == NormalComponentCount::NTB ? 3 : 1; process_component(vtx_desc.low.Normal, vtx_attr.g0.NormalFormat, normal_component_count * normal_elements, vtx_attr.g0.NormalIndex3 ? normal_elements : 1); diff --git a/Source/Core/VideoCommon/CPMemory.h b/Source/Core/VideoCommon/CPMemory.h index 167f667c42..7ce56c05cd 100644 --- a/Source/Core/VideoCommon/CPMemory.h +++ b/Source/Core/VideoCommon/CPMemory.h @@ -162,12 +162,12 @@ struct fmt::formatter : EnumFormatter -struct fmt::formatter : EnumFormatter +struct fmt::formatter : EnumFormatter { - constexpr formatter() : EnumFormatter({"1 (n)", "3 (n, b, t)"}) {} + constexpr formatter() : EnumFormatter({"1 (normal)", "3 (normal, tangent, binormal)"}) {} }; enum class ColorComponentCount @@ -348,8 +348,9 @@ struct fmt::formatter { static constexpr std::array byte_dequant = { "shift does not apply to u8/s8 components", "shift applies to u8/s8 components"}; - static constexpr std::array normalindex3 = {"single index per normal", - "triple-index per nine-normal"}; + static constexpr std::array normalindex3 = { + "single index shared by normal, tangent, and binormal", + "three indices, one each for normal, tangent, and binormal"}; return fmt::format_to(ctx.out(), "Position elements: {}\n" diff --git a/Source/Core/VideoCommon/VertexLoader.cpp b/Source/Core/VideoCommon/VertexLoader.cpp index 751778dd24..8176027b45 100644 --- a/Source/Core/VideoCommon/VertexLoader.cpp +++ b/Source/Core/VideoCommon/VertexLoader.cpp @@ -129,7 +129,7 @@ void VertexLoader::CompileVertexTranslator() } WriteCall(pFunc); - for (int i = 0; i < (m_VtxAttr.g0.NormalElements == NormalComponentCount::NBT ? 3 : 1); i++) + for (int i = 0; i < (m_VtxAttr.g0.NormalElements == NormalComponentCount::NTB ? 3 : 1); i++) { m_native_vtx_decl.normals[i].components = 3; m_native_vtx_decl.normals[i].enable = true; diff --git a/Source/Core/VideoCommon/VertexLoaderARM64.cpp b/Source/Core/VideoCommon/VertexLoaderARM64.cpp index eff8a29993..9388c21a7b 100644 --- a/Source/Core/VideoCommon/VertexLoaderARM64.cpp +++ b/Source/Core/VideoCommon/VertexLoaderARM64.cpp @@ -472,7 +472,7 @@ void VertexLoaderARM64::GenerateVertexLoader() { static const u8 map[8] = {7, 6, 15, 14}; const u8 scaling_exponent = map[u32(m_VtxAttr.g0.NormalFormat.Value())]; - const int limit = m_VtxAttr.g0.NormalElements == NormalComponentCount::NBT ? 3 : 1; + const int limit = m_VtxAttr.g0.NormalElements == NormalComponentCount::NTB ? 3 : 1; s32 offset = -1; for (int i = 0; i < limit; i++) diff --git a/Source/Core/VideoCommon/VertexLoaderBase.cpp b/Source/Core/VideoCommon/VertexLoaderBase.cpp index 2b6c3cdd21..678246783d 100644 --- a/Source/Core/VideoCommon/VertexLoaderBase.cpp +++ b/Source/Core/VideoCommon/VertexLoaderBase.cpp @@ -152,7 +152,7 @@ u32 VertexLoaderBase::GetVertexComponents(const TVtxDesc& vtx_desc, const VAT& v if (vtx_desc.low.Normal != VertexComponentFormat::NotPresent) { components |= VB_HAS_NORMAL; - if (vtx_attr.g0.NormalElements == NormalComponentCount::NBT) + if (vtx_attr.g0.NormalElements == NormalComponentCount::NTB) components |= VB_HAS_TANGENT | VB_HAS_BINORMAL; } for (u32 i = 0; i < vtx_desc.low.Color.Size(); i++) diff --git a/Source/Core/VideoCommon/VertexLoaderX64.cpp b/Source/Core/VideoCommon/VertexLoaderX64.cpp index aebba7680d..63752429aa 100644 --- a/Source/Core/VideoCommon/VertexLoaderX64.cpp +++ b/Source/Core/VideoCommon/VertexLoaderX64.cpp @@ -461,7 +461,7 @@ void VertexLoaderX64::GenerateVertexLoader() { static const u8 map[8] = {7, 6, 15, 14}; const u8 scaling_exponent = map[u32(m_VtxAttr.g0.NormalFormat.Value())]; - const int limit = m_VtxAttr.g0.NormalElements == NormalComponentCount::NBT ? 3 : 1; + const int limit = m_VtxAttr.g0.NormalElements == NormalComponentCount::NTB ? 3 : 1; for (int i = 0; i < limit; i++) { diff --git a/Source/Core/VideoCommon/VertexLoader_Normal.cpp b/Source/Core/VideoCommon/VertexLoader_Normal.cpp index db955639d7..6813e4128c 100644 --- a/Source/Core/VideoCommon/VertexLoader_Normal.cpp +++ b/Source/Core/VideoCommon/VertexLoader_Normal.cpp @@ -123,7 +123,7 @@ struct Set using Common::EnumMap; using Formats = EnumMap; -using Elements = EnumMap; +using Elements = EnumMap; using Indices = std::array; using Types = EnumMap; @@ -140,11 +140,11 @@ constexpr Types InitializeTable() table[VCF::Direct][false][NCC::N][FMT::UShort] = Normal_Direct(); table[VCF::Direct][false][NCC::N][FMT::Short] = Normal_Direct(); table[VCF::Direct][false][NCC::N][FMT::Float] = Normal_Direct(); - table[VCF::Direct][false][NCC::NBT][FMT::UByte] = Normal_Direct(); - table[VCF::Direct][false][NCC::NBT][FMT::Byte] = Normal_Direct(); - table[VCF::Direct][false][NCC::NBT][FMT::UShort] = Normal_Direct(); - table[VCF::Direct][false][NCC::NBT][FMT::Short] = Normal_Direct(); - table[VCF::Direct][false][NCC::NBT][FMT::Float] = Normal_Direct(); + table[VCF::Direct][false][NCC::NTB][FMT::UByte] = Normal_Direct(); + table[VCF::Direct][false][NCC::NTB][FMT::Byte] = Normal_Direct(); + table[VCF::Direct][false][NCC::NTB][FMT::UShort] = Normal_Direct(); + table[VCF::Direct][false][NCC::NTB][FMT::Short] = Normal_Direct(); + table[VCF::Direct][false][NCC::NTB][FMT::Float] = Normal_Direct(); // Same as above, since there are no indices table[VCF::Direct][true][NCC::N][FMT::UByte] = Normal_Direct(); @@ -152,57 +152,57 @@ constexpr Types InitializeTable() table[VCF::Direct][true][NCC::N][FMT::UShort] = Normal_Direct(); table[VCF::Direct][true][NCC::N][FMT::Short] = Normal_Direct(); table[VCF::Direct][true][NCC::N][FMT::Float] = Normal_Direct(); - table[VCF::Direct][true][NCC::NBT][FMT::UByte] = Normal_Direct(); - table[VCF::Direct][true][NCC::NBT][FMT::Byte] = Normal_Direct(); - table[VCF::Direct][true][NCC::NBT][FMT::UShort] = Normal_Direct(); - table[VCF::Direct][true][NCC::NBT][FMT::Short] = Normal_Direct(); - table[VCF::Direct][true][NCC::NBT][FMT::Float] = Normal_Direct(); + table[VCF::Direct][true][NCC::NTB][FMT::UByte] = Normal_Direct(); + table[VCF::Direct][true][NCC::NTB][FMT::Byte] = Normal_Direct(); + table[VCF::Direct][true][NCC::NTB][FMT::UShort] = Normal_Direct(); + table[VCF::Direct][true][NCC::NTB][FMT::Short] = Normal_Direct(); + table[VCF::Direct][true][NCC::NTB][FMT::Float] = Normal_Direct(); table[VCF::Index8][false][NCC::N][FMT::UByte] = Normal_Index(); table[VCF::Index8][false][NCC::N][FMT::Byte] = Normal_Index(); table[VCF::Index8][false][NCC::N][FMT::UShort] = Normal_Index(); table[VCF::Index8][false][NCC::N][FMT::Short] = Normal_Index(); table[VCF::Index8][false][NCC::N][FMT::Float] = Normal_Index(); - table[VCF::Index8][false][NCC::NBT][FMT::UByte] = Normal_Index(); - table[VCF::Index8][false][NCC::NBT][FMT::Byte] = Normal_Index(); - table[VCF::Index8][false][NCC::NBT][FMT::UShort] = Normal_Index(); - table[VCF::Index8][false][NCC::NBT][FMT::Short] = Normal_Index(); - table[VCF::Index8][false][NCC::NBT][FMT::Float] = Normal_Index(); + table[VCF::Index8][false][NCC::NTB][FMT::UByte] = Normal_Index(); + table[VCF::Index8][false][NCC::NTB][FMT::Byte] = Normal_Index(); + table[VCF::Index8][false][NCC::NTB][FMT::UShort] = Normal_Index(); + table[VCF::Index8][false][NCC::NTB][FMT::Short] = Normal_Index(); + table[VCF::Index8][false][NCC::NTB][FMT::Float] = Normal_Index(); - // Same for NormalComponentCount::N; differs for NBT + // Same for NormalComponentCount::N; differs for NTB table[VCF::Index8][true][NCC::N][FMT::UByte] = Normal_Index(); table[VCF::Index8][true][NCC::N][FMT::Byte] = Normal_Index(); table[VCF::Index8][true][NCC::N][FMT::UShort] = Normal_Index(); table[VCF::Index8][true][NCC::N][FMT::Short] = Normal_Index(); table[VCF::Index8][true][NCC::N][FMT::Float] = Normal_Index(); - table[VCF::Index8][true][NCC::NBT][FMT::UByte] = Normal_Index_Indices3(); - table[VCF::Index8][true][NCC::NBT][FMT::Byte] = Normal_Index_Indices3(); - table[VCF::Index8][true][NCC::NBT][FMT::UShort] = Normal_Index_Indices3(); - table[VCF::Index8][true][NCC::NBT][FMT::Short] = Normal_Index_Indices3(); - table[VCF::Index8][true][NCC::NBT][FMT::Float] = Normal_Index_Indices3(); + table[VCF::Index8][true][NCC::NTB][FMT::UByte] = Normal_Index_Indices3(); + table[VCF::Index8][true][NCC::NTB][FMT::Byte] = Normal_Index_Indices3(); + table[VCF::Index8][true][NCC::NTB][FMT::UShort] = Normal_Index_Indices3(); + table[VCF::Index8][true][NCC::NTB][FMT::Short] = Normal_Index_Indices3(); + table[VCF::Index8][true][NCC::NTB][FMT::Float] = Normal_Index_Indices3(); table[VCF::Index16][false][NCC::N][FMT::UByte] = Normal_Index(); table[VCF::Index16][false][NCC::N][FMT::Byte] = Normal_Index(); table[VCF::Index16][false][NCC::N][FMT::UShort] = Normal_Index(); table[VCF::Index16][false][NCC::N][FMT::Short] = Normal_Index(); table[VCF::Index16][false][NCC::N][FMT::Float] = Normal_Index(); - table[VCF::Index16][false][NCC::NBT][FMT::UByte] = Normal_Index(); - table[VCF::Index16][false][NCC::NBT][FMT::Byte] = Normal_Index(); - table[VCF::Index16][false][NCC::NBT][FMT::UShort] = Normal_Index(); - table[VCF::Index16][false][NCC::NBT][FMT::Short] = Normal_Index(); - table[VCF::Index16][false][NCC::NBT][FMT::Float] = Normal_Index(); + table[VCF::Index16][false][NCC::NTB][FMT::UByte] = Normal_Index(); + table[VCF::Index16][false][NCC::NTB][FMT::Byte] = Normal_Index(); + table[VCF::Index16][false][NCC::NTB][FMT::UShort] = Normal_Index(); + table[VCF::Index16][false][NCC::NTB][FMT::Short] = Normal_Index(); + table[VCF::Index16][false][NCC::NTB][FMT::Float] = Normal_Index(); - // Same for NormalComponentCount::N; differs for NBT + // Same for NormalComponentCount::N; differs for NTB table[VCF::Index16][true][NCC::N][FMT::UByte] = Normal_Index(); table[VCF::Index16][true][NCC::N][FMT::Byte] = Normal_Index(); table[VCF::Index16][true][NCC::N][FMT::UShort] = Normal_Index(); table[VCF::Index16][true][NCC::N][FMT::Short] = Normal_Index(); table[VCF::Index16][true][NCC::N][FMT::Float] = Normal_Index(); - table[VCF::Index16][true][NCC::NBT][FMT::UByte] = Normal_Index_Indices3(); - table[VCF::Index16][true][NCC::NBT][FMT::Byte] = Normal_Index_Indices3(); - table[VCF::Index16][true][NCC::NBT][FMT::UShort] = Normal_Index_Indices3(); - table[VCF::Index16][true][NCC::NBT][FMT::Short] = Normal_Index_Indices3(); - table[VCF::Index16][true][NCC::NBT][FMT::Float] = Normal_Index_Indices3(); + table[VCF::Index16][true][NCC::NTB][FMT::UByte] = Normal_Index_Indices3(); + table[VCF::Index16][true][NCC::NTB][FMT::Byte] = Normal_Index_Indices3(); + table[VCF::Index16][true][NCC::NTB][FMT::UShort] = Normal_Index_Indices3(); + table[VCF::Index16][true][NCC::NTB][FMT::Short] = Normal_Index_Indices3(); + table[VCF::Index16][true][NCC::NTB][FMT::Float] = Normal_Index_Indices3(); return table; } diff --git a/Source/Core/VideoCommon/XFMemory.h b/Source/Core/VideoCommon/XFMemory.h index 23c4088f05..aa8a28a608 100644 --- a/Source/Core/VideoCommon/XFMemory.h +++ b/Source/Core/VideoCommon/XFMemory.h @@ -44,13 +44,13 @@ struct fmt::formatter : EnumFormatter enum class NormalCount : u32 { None = 0, - Normals = 1, - NormalsBinormals = 2 + Normal = 1, + NormalTangentBinormal = 2 }; template <> -struct fmt::formatter : EnumFormatter +struct fmt::formatter : EnumFormatter { - constexpr formatter() : EnumFormatter({"None", "Normals only", "Normals and binormals"}) {} + constexpr formatter() : EnumFormatter({"None", "Normal only", "Normal, tangent, and binormal"}) {} }; // Texture generation type diff --git a/Source/UnitTests/VideoCommon/VertexLoaderTest.cpp b/Source/UnitTests/VideoCommon/VertexLoaderTest.cpp index e72fe28c29..b12dad1661 100644 --- a/Source/UnitTests/VideoCommon/VertexLoaderTest.cpp +++ b/Source/UnitTests/VideoCommon/VertexLoaderTest.cpp @@ -330,7 +330,7 @@ TEST_F(VertexLoaderTest, LargeFloatVertexSpeed) m_vtx_attr.g0.PosElements = CoordComponentCount::XYZ; m_vtx_attr.g0.PosFormat = ComponentFormat::Float; - m_vtx_attr.g0.NormalElements = NormalComponentCount::NBT; + m_vtx_attr.g0.NormalElements = NormalComponentCount::NTB; m_vtx_attr.g0.NormalFormat = ComponentFormat::Float; m_vtx_attr.g0.Color0Elements = ColorComponentCount::RGBA; m_vtx_attr.g0.Color0Comp = ColorFormat::RGBA8888; From 38a75f6a49706840edf7a6f5b94e224468ebbabd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 17 May 2022 13:42:31 -0700 Subject: [PATCH 054/659] Show a panic alert if the CP vertex config doesn't match the XF vertex config This probably isn't triggered by real games, but it's possible to accidentally do it with libogc (which results in freezes on real hardware). --- Source/Core/Core/DolphinAnalytics.cpp | 5 +- Source/Core/Core/DolphinAnalytics.h | 7 ++ .../Core/VideoCommon/VertexLoaderManager.cpp | 76 +++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp index 5b67fd2c04..ab5ea2c772 100644 --- a/Source/Core/Core/DolphinAnalytics.cpp +++ b/Source/Core/Core/DolphinAnalytics.cpp @@ -136,7 +136,7 @@ void DolphinAnalytics::ReportGameStart() } // Keep in sync with enum class GameQuirk definition. -constexpr std::array GAME_QUIRKS_NAMES{ +constexpr std::array GAME_QUIRKS_NAMES{ "icache-matters", "directly-reads-wiimote-input", "uses-DVDLowStopLaser", @@ -161,6 +161,9 @@ constexpr std::array GAME_QUIRKS_NAMES{ "sets-xf-clipdisable-bit-0", "sets-xf-clipdisable-bit-1", "sets-xf-clipdisable-bit-2", + "mismatched-gpu-colors-between-cp-and-xf", + "mismatched-gpu-normals-between-cp-and-xf", + "mismatched-gpu-tex-coords-between-cp-and-xf", }; static_assert(GAME_QUIRKS_NAMES.size() == static_cast(GameQuirk::COUNT), "Game quirks names and enum definition are out of sync."); diff --git a/Source/Core/Core/DolphinAnalytics.h b/Source/Core/Core/DolphinAnalytics.h index 2d61adae82..6e8acb8a8f 100644 --- a/Source/Core/Core/DolphinAnalytics.h +++ b/Source/Core/Core/DolphinAnalytics.h @@ -81,6 +81,13 @@ enum class GameQuirk SETS_XF_CLIPDISABLE_BIT_1, SETS_XF_CLIPDISABLE_BIT_2, + // Similar to the XF-BP mismatch, CP and XF might be configured with different vertex formats. + // Real hardware seems to hang in this case, so games probably don't do this, but it would + // be good to know if anything does it. + MISMATCHED_GPU_COLORS_BETWEEN_CP_AND_XF, + MISMATCHED_GPU_NORMALS_BETWEEN_CP_AND_XF, + MISMATCHED_GPU_TEX_COORDS_BETWEEN_CP_AND_XF, + COUNT, }; diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index 7710b7cc20..eea5183a81 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -16,6 +16,7 @@ #include "Common/EnumMap.h" #include "Common/Logging/Log.h" +#include "Core/DolphinAnalytics.h" #include "Core/HW/Memmap.h" #include "VideoCommon/BPMemory.h" @@ -28,6 +29,7 @@ #include "VideoCommon/VertexLoaderBase.h" #include "VideoCommon/VertexManagerBase.h" #include "VideoCommon/VertexShaderManager.h" +#include "VideoCommon/XFMemory.h" namespace VertexLoaderManager { @@ -249,6 +251,78 @@ static VertexLoaderBase* RefreshLoader(int vtx_attr_group, bool preprocess = fal return loader; } +static void CheckCPConfiguration(int vtx_attr_group) +{ + // Validate that the XF input configuration matches the CP configuration + u32 num_cp_colors = std::count_if( + g_main_cp_state.vtx_desc.low.Color.begin(), g_main_cp_state.vtx_desc.low.Color.end(), + [](auto format) { return format != VertexComponentFormat::NotPresent; }); + u32 num_cp_tex_coords = std::count_if( + g_main_cp_state.vtx_desc.high.TexCoord.begin(), g_main_cp_state.vtx_desc.high.TexCoord.end(), + [](auto format) { return format != VertexComponentFormat::NotPresent; }); + + u32 num_cp_normals; + if (g_main_cp_state.vtx_desc.low.Normal == VertexComponentFormat::NotPresent) + num_cp_normals = 0; + else if (g_main_cp_state.vtx_attr[vtx_attr_group].g0.NormalElements == NormalComponentCount::NTB) + num_cp_normals = 3; + else + num_cp_normals = 1; + + std::optional num_xf_normals; + switch (xfmem.invtxspec.numnormals) + { + case NormalCount::None: + num_xf_normals = 0; + break; + case NormalCount::Normal: + num_xf_normals = 1; + break; + case NormalCount::NormalTangentBinormal: + num_xf_normals = 3; + break; + default: + PanicAlertFmt("xfmem.invtxspec.numnormals is invalid: {}", xfmem.invtxspec.numnormals); + break; + } + + if (num_cp_colors != xfmem.invtxspec.numcolors || num_cp_normals != num_xf_normals || + num_cp_tex_coords != xfmem.invtxspec.numtextures) + { + PanicAlertFmt("Mismatched configuration between CP and XF stages - {}/{} colors, {}/{} " + "normals, {}/{} texture coordinates. Please report on the issue tracker.\n\n" + "VCD: {:08x} {:08x}\nVAT {}: {:08x} {:08x} {:08x}\nXF vertex spec: {:08x}", + num_cp_colors, xfmem.invtxspec.numcolors, num_cp_normals, + num_xf_normals.has_value() ? fmt::to_string(num_xf_normals.value()) : "invalid", + num_cp_tex_coords, xfmem.invtxspec.numtextures, g_main_cp_state.vtx_desc.low.Hex, + g_main_cp_state.vtx_desc.high.Hex, vtx_attr_group, + g_main_cp_state.vtx_attr[vtx_attr_group].g0.Hex, + g_main_cp_state.vtx_attr[vtx_attr_group].g1.Hex, + g_main_cp_state.vtx_attr[vtx_attr_group].g2.Hex, xfmem.invtxspec.hex); + + // Analytics reporting so we can discover which games have this problem, that way when we + // eventually simulate the behavior we have test cases for it. + if (num_cp_colors != xfmem.invtxspec.numcolors) + { + DolphinAnalytics::Instance().ReportGameQuirk( + GameQuirk::MISMATCHED_GPU_COLORS_BETWEEN_CP_AND_XF); + } + if (num_cp_normals != num_xf_normals) + { + DolphinAnalytics::Instance().ReportGameQuirk( + GameQuirk::MISMATCHED_GPU_NORMALS_BETWEEN_CP_AND_XF); + } + if (num_cp_tex_coords != xfmem.invtxspec.numtextures) + { + DolphinAnalytics::Instance().ReportGameQuirk( + GameQuirk::MISMATCHED_GPU_TEX_COORDS_BETWEEN_CP_AND_XF); + } + + // Don't bail out, though; we can still render something successfully + // (real hardware seems to hang in this case, though) + } +} + int RunVertices(int vtx_attr_group, OpcodeDecoder::Primitive primitive, int count, DataReader src, bool is_preprocess) { @@ -265,6 +339,8 @@ int RunVertices(int vtx_attr_group, OpcodeDecoder::Primitive primitive, int coun if (is_preprocess) return size; + CheckCPConfiguration(vtx_attr_group); + // If the native vertex format changed, force a flush. if (loader->m_native_vertex_format != s_current_vtx_fmt || loader->m_native_components != g_current_components) From 8df55b492c52401f88393295479d6fbeba92ad9b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 17 May 2022 13:58:54 -0700 Subject: [PATCH 055/659] Show a panic alert if the CP matrix indices don't match the XF matrix indices This almost certainly never happens, but if it does we want to know. --- Source/Core/Core/DolphinAnalytics.cpp | 3 ++- Source/Core/Core/DolphinAnalytics.h | 4 ++++ .../Core/VideoBackends/Software/SWVertexLoader.cpp | 14 -------------- Source/Core/VideoCommon/VertexLoaderManager.cpp | 12 ++++++++++++ 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp index ab5ea2c772..42eb7febe1 100644 --- a/Source/Core/Core/DolphinAnalytics.cpp +++ b/Source/Core/Core/DolphinAnalytics.cpp @@ -136,7 +136,7 @@ void DolphinAnalytics::ReportGameStart() } // Keep in sync with enum class GameQuirk definition. -constexpr std::array GAME_QUIRKS_NAMES{ +constexpr std::array GAME_QUIRKS_NAMES{ "icache-matters", "directly-reads-wiimote-input", "uses-DVDLowStopLaser", @@ -164,6 +164,7 @@ constexpr std::array GAME_QUIRKS_NAMES{ "mismatched-gpu-colors-between-cp-and-xf", "mismatched-gpu-normals-between-cp-and-xf", "mismatched-gpu-tex-coords-between-cp-and-xf", + "mismatched-gpu-matrix-indices-between-cp-and-xf", }; static_assert(GAME_QUIRKS_NAMES.size() == static_cast(GameQuirk::COUNT), "Game quirks names and enum definition are out of sync."); diff --git a/Source/Core/Core/DolphinAnalytics.h b/Source/Core/Core/DolphinAnalytics.h index 6e8acb8a8f..c708ad3a13 100644 --- a/Source/Core/Core/DolphinAnalytics.h +++ b/Source/Core/Core/DolphinAnalytics.h @@ -87,6 +87,10 @@ enum class GameQuirk MISMATCHED_GPU_COLORS_BETWEEN_CP_AND_XF, MISMATCHED_GPU_NORMALS_BETWEEN_CP_AND_XF, MISMATCHED_GPU_TEX_COORDS_BETWEEN_CP_AND_XF, + // Both CP and XF have normally-identical matrix index information. We currently always + // use the CP one in the hardware renderers and the XF one in the software renderer, + // but testing is needed to find out which of these is actually used for what. + MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF, COUNT, }; diff --git a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp index 4b9825132e..aaf91d9891 100644 --- a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp +++ b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp @@ -106,20 +106,6 @@ void SWVertexLoader::DrawCurrentBatch(u32 base_index, u32 num_indices, u32 base_ void SWVertexLoader::SetFormat() { - // matrix index from xf regs or cp memory? - if (xfmem.MatrixIndexA.PosNormalMtxIdx != g_main_cp_state.matrix_index_a.PosNormalMtxIdx || - xfmem.MatrixIndexA.Tex0MtxIdx != g_main_cp_state.matrix_index_a.Tex0MtxIdx || - xfmem.MatrixIndexA.Tex1MtxIdx != g_main_cp_state.matrix_index_a.Tex1MtxIdx || - xfmem.MatrixIndexA.Tex2MtxIdx != g_main_cp_state.matrix_index_a.Tex2MtxIdx || - xfmem.MatrixIndexA.Tex3MtxIdx != g_main_cp_state.matrix_index_a.Tex3MtxIdx || - xfmem.MatrixIndexB.Tex4MtxIdx != g_main_cp_state.matrix_index_b.Tex4MtxIdx || - xfmem.MatrixIndexB.Tex5MtxIdx != g_main_cp_state.matrix_index_b.Tex5MtxIdx || - xfmem.MatrixIndexB.Tex6MtxIdx != g_main_cp_state.matrix_index_b.Tex6MtxIdx || - xfmem.MatrixIndexB.Tex7MtxIdx != g_main_cp_state.matrix_index_b.Tex7MtxIdx) - { - ERROR_LOG_FMT(VIDEO, "Matrix indices don't match"); - } - m_vertex.posMtx = xfmem.MatrixIndexA.PosNormalMtxIdx; m_vertex.texMtx[0] = xfmem.MatrixIndexA.Tex0MtxIdx; m_vertex.texMtx[1] = xfmem.MatrixIndexA.Tex1MtxIdx; diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index eea5183a81..f3fc4d9e7e 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -321,6 +321,18 @@ static void CheckCPConfiguration(int vtx_attr_group) // Don't bail out, though; we can still render something successfully // (real hardware seems to hang in this case, though) } + + if (g_main_cp_state.matrix_index_a.Hex != xfmem.MatrixIndexA.Hex || + g_main_cp_state.matrix_index_b.Hex != xfmem.MatrixIndexB.Hex) + { + PanicAlertFmt("Mismatched matrix index configuration between CP and XF stages - " + "index A: {:08x}/{:08x}, index B {:08x}/{:08x}. " + "Please report on the issue tracker.", + g_main_cp_state.matrix_index_a.Hex, xfmem.MatrixIndexA.Hex, + g_main_cp_state.matrix_index_b.Hex, xfmem.MatrixIndexB.Hex); + DolphinAnalytics::Instance().ReportGameQuirk( + GameQuirk::MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF); + } } int RunVertices(int vtx_attr_group, OpcodeDecoder::Primitive primitive, int count, DataReader src, From 185188c009ed5ee60b6ab0e36059d63edb9b859f Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 18 May 2022 13:48:31 -0400 Subject: [PATCH 056/659] DolphinQt: Add com.apple.security.cs.allow-dyld-environment-variables to entitlements --- Source/Core/DolphinQt/DolphinEmu.entitlements | 3 +++ Source/Core/DolphinQt/DolphinEmuDebug.entitlements | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Source/Core/DolphinQt/DolphinEmu.entitlements b/Source/Core/DolphinQt/DolphinEmu.entitlements index 50c57c58c1..f7cafadc62 100644 --- a/Source/Core/DolphinQt/DolphinEmu.entitlements +++ b/Source/Core/DolphinQt/DolphinEmu.entitlements @@ -13,5 +13,8 @@ com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + diff --git a/Source/Core/DolphinQt/DolphinEmuDebug.entitlements b/Source/Core/DolphinQt/DolphinEmuDebug.entitlements index 6445fa77b9..597315d760 100644 --- a/Source/Core/DolphinQt/DolphinEmuDebug.entitlements +++ b/Source/Core/DolphinQt/DolphinEmuDebug.entitlements @@ -13,6 +13,9 @@ com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + com.apple.security.get-task-allow From a86fb9b4758e893b3ca121cabb8f066e27f06c1c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 11:33:29 -0700 Subject: [PATCH 057/659] Core/WGInput: Use fmt logging and include HRESULT in messages --- .../ControllerInterface/WGInput/WGInput.cpp | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp index 46beb409cd..b934e86e71 100644 --- a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp +++ b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp @@ -13,6 +13,7 @@ #include #include "Common/DynamicLibrary.h" +#include "Common/HRWrap.h" #include "Common/Logging/Log.h" #include "Common/StringUtil.h" #include "InputCommon/ControllerInterface/ControllerInterface.h" @@ -481,8 +482,8 @@ private: if (!waveform_name.data()) { - WARN_LOG(CONTROLLERINTERFACE, "WGInput: Unknown haptics feedback waveform: %d.", - waveform); + WARN_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Unknown haptics feedback waveform: 0x{:04x}.", + waveform); continue; } @@ -502,23 +503,31 @@ private: const auto switch_count = UINT32(m_switches.size()); const auto axis_count = UINT32(m_axes.size()); UINT64 timestamp = 0; - if (FAILED(m_raw_controller->GetCurrentReading(button_count, m_buttons.data(), switch_count, - m_switches.data(), axis_count, m_axes.data(), - ×tamp))) + const HRESULT raw_result = m_raw_controller->GetCurrentReading( + button_count, m_buttons.data(), switch_count, m_switches.data(), axis_count, m_axes.data(), + ×tamp); + if (FAILED(raw_result)) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: IRawGameController::GetCurrentReading failed."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, + "WGInput: IRawGameController::GetCurrentReading failed: {}", + Common::HRWrap(raw_result)); } // IGamepad: - if (m_gamepad && FAILED(m_gamepad->GetCurrentReading(&m_gamepad_reading))) + if (m_gamepad) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: IGamepad::GetCurrentReading failed."); + const HRESULT gamepad_result = m_gamepad->GetCurrentReading(&m_gamepad_reading); + if (FAILED(gamepad_result)) + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: IGamepad::GetCurrentReading failed: {}", + Common::HRWrap(gamepad_result)); + } } // IGameControllerBatteryInfo: if (m_controller_battery && !UpdateBatteryLevel()) { - DEBUG_LOG(CONTROLLERINTERFACE, "WGInput: UpdateBatteryLevel failed."); + DEBUG_LOG_FMT(CONTROLLERINTERFACE, "WGInput: UpdateBatteryLevel failed."); } } @@ -648,7 +657,7 @@ void Init() if (!LoadFunctionPointers()) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: System lacks support, skipping init."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: System lacks support, skipping init."); return; } @@ -666,7 +675,7 @@ void Init() break; default: - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: RoInitialize failed."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: RoInitialize failed: {}", Common::HRWrap(hr)); break; } } @@ -712,43 +721,49 @@ void PopulateDevices() HSTRING_HEADER header_raw_game_controller; HSTRING hstr_raw_game_controller; - if (FAILED(WindowsCreateStringReferenceAutoSizeWrapper(L"Windows.Gaming.Input.RawGameController", - &header_raw_game_controller, - &hstr_raw_game_controller))) + HRESULT hr; + if (FAILED(hr = WindowsCreateStringReferenceAutoSizeWrapper( + L"Windows.Gaming.Input.RawGameController", &header_raw_game_controller, + &hstr_raw_game_controller))) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: Failed to create string reference."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Failed to create string reference: {}", + Common::HRWrap(hr)); return; } HSTRING_HEADER header_gamepad; HSTRING hstr_gamepad; - if (FAILED(WindowsCreateStringReferenceAutoSizeWrapper(L"Windows.Gaming.Input.Gamepad", - &header_gamepad, &hstr_gamepad))) + if (FAILED(hr = WindowsCreateStringReferenceAutoSizeWrapper(L"Windows.Gaming.Input.Gamepad", + &header_gamepad, &hstr_gamepad))) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: Failed to create string reference."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Failed to create string reference: {}", + Common::HRWrap(hr)); return; } ComPtr raw_stats; - if (FAILED(g_RoGetActivationFactory_address( - hstr_raw_game_controller, __uuidof(WGI::IRawGameControllerStatics), &raw_stats))) + if (FAILED(hr = g_RoGetActivationFactory_address( + hstr_raw_game_controller, __uuidof(WGI::IRawGameControllerStatics), &raw_stats))) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: Failed to get IRawGameControllerStatics."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Failed to get IRawGameControllerStatics: {}", + Common::HRWrap(hr)); return; } ComPtr gamepad_stats; - if (FAILED(g_RoGetActivationFactory_address(hstr_gamepad, __uuidof(WGI::IGamepadStatics2), - &gamepad_stats))) + if (FAILED(hr = g_RoGetActivationFactory_address(hstr_gamepad, __uuidof(WGI::IGamepadStatics2), + &gamepad_stats))) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: Failed to get IGamepadStatics2."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Failed to get IGamepadStatics2: {}", + Common::HRWrap(hr)); return; } IVectorView* raw_controllers; - if (FAILED(raw_stats->get_RawGameControllers(&raw_controllers))) + if (FAILED(hr = raw_stats->get_RawGameControllers(&raw_controllers))) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: get_RawGameControllers failed."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: get_RawGameControllers failed: {}", + Common::HRWrap(hr)); return; } @@ -763,10 +778,10 @@ void PopulateDevices() // Attempt to get the controller's name. WGI::IRawGameController2* rgc2 = nullptr; - if (SUCCEEDED(raw_controller->QueryInterface(&rgc2)) && rgc2) + if (SUCCEEDED(hr = raw_controller->QueryInterface(&rgc2)) && rgc2) { HSTRING hstr = {}; - if (SUCCEEDED(rgc2->get_DisplayName(&hstr)) && hstr) + if (SUCCEEDED(hr = rgc2->get_DisplayName(&hstr)) && hstr) { device_name = StripSpaces(WStringToUTF8(g_WindowsGetStringRawBuffer_address(hstr, nullptr))); @@ -775,7 +790,8 @@ void PopulateDevices() if (device_name.empty()) { - ERROR_LOG(CONTROLLERINTERFACE, "WGInput: Failed to get device name."); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "WGInput: Failed to get device name: {}", + Common::HRWrap(hr)); // Set a default name if we couldn't query the name or it was empty. device_name = "Device"; } From 6ffd938f98781b6bd2ddec0af4a514abc6d2cab7 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Thu, 19 May 2022 12:17:46 -0700 Subject: [PATCH 058/659] UnitTests: Skip PageFaultTest if exception handlers are not supported Page faults should only occur on architectures that support exception handlers, so skip the test on other architectures to avoid spurious test failures. --- Source/Core/Core/MemTools.cpp | 22 ++++++++++++++++++++++ Source/Core/Core/MemTools.h | 1 + Source/UnitTests/Core/PageFaultTest.cpp | 5 +++++ 3 files changed, 28 insertions(+) diff --git a/Source/Core/Core/MemTools.cpp b/Source/Core/Core/MemTools.cpp index c427c8ba7e..c9109bfd1f 100644 --- a/Source/Core/Core/MemTools.cpp +++ b/Source/Core/Core/MemTools.cpp @@ -113,6 +113,11 @@ void UninstallExceptionHandler() s_veh_handle = nullptr; } +bool IsExceptionHandlerSupported() +{ + return true; +} + #elif defined(__APPLE__) && !defined(USE_SIGACTION_ON_APPLE) static void CheckKR(const char* name, kern_return_t kr) @@ -245,6 +250,11 @@ void UninstallExceptionHandler() { } +bool IsExceptionHandlerSupported() +{ + return true; +} + #elif defined(_POSIX_VERSION) && !defined(_M_GENERIC) static struct sigaction old_sa_segv; @@ -353,15 +363,27 @@ void UninstallExceptionHandler() sigaction(SIGBUS, &old_sa_bus, nullptr); #endif } + +bool IsExceptionHandlerSupported() +{ + return true; +} + #else // _M_GENERIC or unsupported platform void InstallExceptionHandler() { } + void UninstallExceptionHandler() { } +bool IsExceptionHandlerSupported() +{ + return false; +} + #endif } // namespace EMM diff --git a/Source/Core/Core/MemTools.h b/Source/Core/Core/MemTools.h index 65c06e7023..e71f2bb2f9 100644 --- a/Source/Core/Core/MemTools.h +++ b/Source/Core/Core/MemTools.h @@ -7,4 +7,5 @@ namespace EMM { void InstallExceptionHandler(); void UninstallExceptionHandler(); +bool IsExceptionHandlerSupported(); } // namespace EMM diff --git a/Source/UnitTests/Core/PageFaultTest.cpp b/Source/UnitTests/Core/PageFaultTest.cpp index 841ba54609..e340ca7646 100644 --- a/Source/UnitTests/Core/PageFaultTest.cpp +++ b/Source/UnitTests/Core/PageFaultTest.cpp @@ -61,6 +61,11 @@ static void ASAN_DISABLE perform_invalid_access(void* data) TEST(PageFault, PageFault) { + if (!EMM::IsExceptionHandlerSupported()) + { + // TODO: Use GTEST_SKIP() instead when GTest is updated to 1.10+ + return; + } EMM::InstallExceptionHandler(); void* data = Common::AllocateMemoryPages(PAGE_GRAN); EXPECT_NE(data, nullptr); From 0faf0b80ad705ed5556c264db330f8de6988a1e8 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 12:41:45 -0700 Subject: [PATCH 059/659] TAPServer_Apple: Use fmt logging --- .../Core/Core/HW/EXI/BBA/TAPServer_Apple.cpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Source/Core/Core/HW/EXI/BBA/TAPServer_Apple.cpp b/Source/Core/Core/HW/EXI/BBA/TAPServer_Apple.cpp index ad87b5ee84..77a8f74a9c 100644 --- a/Source/Core/Core/HW/EXI/BBA/TAPServer_Apple.cpp +++ b/Source/Core/Core/HW/EXI/BBA/TAPServer_Apple.cpp @@ -8,6 +8,7 @@ #include #include +#include "Common/CommonFuncs.h" #include "Common/Logging/Log.h" #include "Common/StringUtil.h" #include "Core/HW/EXI/EXI_Device.h" @@ -29,7 +30,7 @@ bool CEXIETHERNET::TAPServerNetworkInterface::Activate() sockaddr_un sun = {}; if (sizeof(socket_path) > sizeof(sun.sun_path)) { - ERROR_LOG(SP1, "Socket path is too long, unable to init BBA"); + ERROR_LOG_FMT(SP1, "Socket path is too long, unable to init BBA"); return false; } sun.sun_family = AF_UNIX; @@ -38,19 +39,19 @@ bool CEXIETHERNET::TAPServerNetworkInterface::Activate() fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd == -1) { - ERROR_LOG(SP1, "Couldn't create socket, unable to init BBA"); + ERROR_LOG_FMT(SP1, "Couldn't create socket, unable to init BBA"); return false; } if (connect(fd, reinterpret_cast(&sun), sizeof(sun)) == -1) { - ERROR_LOG(SP1, "Couldn't connect socket (%d), unable to init BBA", errno); + ERROR_LOG_FMT(SP1, "Couldn't connect socket ({}), unable to init BBA", LastStrerrorString()); close(fd); fd = -1; return false; } - INFO_LOG(SP1, "BBA initialized.\n"); + INFO_LOG_FMT(SP1, "BBA initialized."); return RecvInit(); } @@ -58,20 +59,20 @@ bool CEXIETHERNET::TAPServerNetworkInterface::SendFrame(const u8* frame, u32 siz { { const std::string s = ArrayToString(frame, size, 0x10); - INFO_LOG(SP1, "SendFrame %x\n%s\n", size, s.c_str()); + INFO_LOG_FMT(SP1, "SendFrame {}\n{}", size, s); } auto size16 = u16(size); if (write(fd, &size16, 2) != 2) { - ERROR_LOG(SP1, "SendFrame(): could not write size field\n"); + ERROR_LOG_FMT(SP1, "SendFrame(): could not write size field"); return false; } int written_bytes = write(fd, frame, size); if (u32(written_bytes) != size) { - ERROR_LOG(SP1, "SendFrame(): expected to write %d bytes, instead wrote %d", size, - written_bytes); + ERROR_LOG_FMT(SP1, "SendFrame(): expected to write {} bytes, instead wrote {}", size, + written_bytes); return false; } else @@ -98,19 +99,19 @@ void CEXIETHERNET::TAPServerNetworkInterface::ReadThreadHandler() u16 size; if (read(fd, &size, 2) != 2) { - ERROR_LOG(SP1, "Failed to read size field from BBA, err=%d", errno); + ERROR_LOG_FMT(SP1, "Failed to read size field from BBA: {}", LastStrerrorString()); } else { int read_bytes = read(fd, m_eth_ref->mRecvBuffer.get(), size); if (read_bytes < 0) { - ERROR_LOG(SP1, "Failed to read packet data from BBA, err=%d", errno); + ERROR_LOG_FMT(SP1, "Failed to read packet data from BBA: {}", LastStrerrorString()); } else if (readEnabled.IsSet()) { std::string data_string = ArrayToString(m_eth_ref->mRecvBuffer.get(), read_bytes, 0x10); - INFO_LOG(SP1, "Read data: %s", data_string.c_str()); + INFO_LOG_FMT(SP1, "Read data: {}", data_string); m_eth_ref->mRecvBufferLength = read_bytes; m_eth_ref->RecvHandlePacket(); } From 642a1c1348bd85802f9f945598fb83fd43cbbd9a Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 11:40:46 -0700 Subject: [PATCH 060/659] MainWindow: Replace WARN_LOG with WARN_LOG_FMT --- Source/Core/DolphinQt/MainWindow.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 5099ffa0e2..4cd1ca0d1a 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -325,9 +325,9 @@ void MainWindow::InitControllers() if (!g_controller_interface.HasDefaultDevice()) { // Note that the CI default device could be still temporarily removed at any time - WARN_LOG(CONTROLLERINTERFACE, - "No default device has been added in time. EmulatedController(s) defaulting adds" - " input mappings made for a specific default device depending on the platform"); + WARN_LOG_FMT(CONTROLLERINTERFACE, + "No default device has been added in time. EmulatedController(s) defaulting adds" + " input mappings made for a specific default device depending on the platform"); } GCAdapter::Init(); Pad::Initialize(); From 2f5e69a94e523b5380e20e8b592406c2e48f4ba6 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 12:11:07 -0700 Subject: [PATCH 061/659] JitArm64: Replace WARN_LOG with WARN_LOG_FMT --- Source/Core/Core/PowerPC/JitArm64/Jit.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index 3be81d2c71..6f8aeaceec 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -709,7 +709,7 @@ void JitArm64::Jit(u32 em_address, bool clear_cache_and_retry_on_failure) { // Code generation failed due to not enough free space in either the near or far code regions. // Clear the entire JIT cache and retry. - WARN_LOG(POWERPC, "flushing code caches, please report if this happens a lot"); + WARN_LOG_FMT(POWERPC, "flushing code caches, please report if this happens a lot"); ClearCache(); Jit(em_address, false); return; @@ -728,7 +728,7 @@ bool JitArm64::SetEmitterStateToFreeCodeRegion() auto free_near = m_free_ranges_near.by_size_begin(); if (free_near == m_free_ranges_near.by_size_end()) { - WARN_LOG(POWERPC, "Failed to find free memory region in near code region."); + WARN_LOG_FMT(POWERPC, "Failed to find free memory region in near code region."); return false; } SetCodePtr(free_near.from(), free_near.to()); @@ -736,7 +736,7 @@ bool JitArm64::SetEmitterStateToFreeCodeRegion() auto free_far = m_free_ranges_far.by_size_begin(); if (free_far == m_free_ranges_far.by_size_end()) { - WARN_LOG(POWERPC, "Failed to find free memory region in far code region."); + WARN_LOG_FMT(POWERPC, "Failed to find free memory region in far code region."); return false; } m_far_code.SetCodePtr(free_far.from(), free_far.to()); @@ -995,9 +995,9 @@ bool JitArm64::DoJit(u32 em_address, JitBlock* b, u32 nextPC) if (HasWriteFailed() || m_far_code.HasWriteFailed()) { if (HasWriteFailed()) - WARN_LOG(POWERPC, "JIT ran out of space in near code region during code generation."); + WARN_LOG_FMT(POWERPC, "JIT ran out of space in near code region during code generation."); if (m_far_code.HasWriteFailed()) - WARN_LOG(POWERPC, "JIT ran out of space in far code region during code generation."); + WARN_LOG_FMT(POWERPC, "JIT ran out of space in far code region during code generation."); return false; } From 35cb5c8f7580c3ca805134b013846357aa33dbf5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 12:24:35 -0700 Subject: [PATCH 062/659] EXI_DeviceEthernet: Replace INFO_LOG with INFO_LOG_FMT --- Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp index e6c95391a9..2151b8f013 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp @@ -50,7 +50,7 @@ CEXIETHERNET::CEXIETHERNET(BBADeviceType type) #if defined(__APPLE__) case BBADeviceType::TAPSERVER: m_network_interface = std::make_unique(this); - INFO_LOG(SP1, "Created tapserver physical network interface."); + INFO_LOG_FMT(SP1, "Created tapserver physical network interface."); break; #endif case BBADeviceType::XLINK: From 0637c17b599b26ee39164ac4144e1714eecaa574 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 11:55:27 -0700 Subject: [PATCH 063/659] VideoCommon/FrameDump: printf-format messages before logging them --- Source/Core/VideoCommon/FrameDump.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/FrameDump.cpp b/Source/Core/VideoCommon/FrameDump.cpp index 6ae6c21c37..92296e8794 100644 --- a/Source/Core/VideoCommon/FrameDump.cpp +++ b/Source/Core/VideoCommon/FrameDump.cpp @@ -28,7 +28,9 @@ extern "C" { #include "Common/ChunkFile.h" #include "Common/FileUtil.h" #include "Common/Logging/Log.h" +#include "Common/Logging/LogManager.h" #include "Common/MsgHandler.h" +#include "Common/StringUtil.h" #include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" @@ -95,7 +97,17 @@ void InitAVCodec() // keep libav debug messages visible in release build of dolphin log_level = Common::Log::LogLevel::LINFO; - GENERIC_LOG_V(Common::Log::LogType::FRAMEDUMP, log_level, fmt, vl); + // Don't perform this formatting if the log level is disabled + auto* log_manager = Common::Log::LogManager::GetInstance(); + if (log_manager != nullptr && + log_manager->IsEnabled(Common::Log::LogType::FRAMEDUMP, log_level)) + { + constexpr size_t MAX_MSGLEN = 1024; + char message[MAX_MSGLEN]; + CharArrayFromFormatV(message, MAX_MSGLEN, fmt, vl); + + GENERIC_LOG_FMT(Common::Log::LogType::FRAMEDUMP, log_level, "{}", message); + } }); // TODO: We never call avformat_network_deinit. From 5f9212dd8479887da15659c7f277839d6115a46d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 11:59:54 -0700 Subject: [PATCH 064/659] Common/LogManager: Remove old printf-style logging functions --- Source/Core/Common/Logging/Log.h | 50 ----------------------- Source/Core/Common/Logging/LogManager.cpp | 34 --------------- 2 files changed, 84 deletions(-) diff --git a/Source/Core/Common/Logging/Log.h b/Source/Core/Common/Logging/Log.h index 98d420bda2..5a0d2c6e24 100644 --- a/Source/Core/Common/Logging/Log.h +++ b/Source/Core/Common/Logging/Log.h @@ -96,58 +96,8 @@ void GenericLogFmt(LogLevel level, LogType type, const char* file, int line, con "too many arguments?"); GenericLogFmtImpl(level, type, file, line, format, fmt::make_format_args(args...)); } - -void GenericLog(LogLevel level, LogType type, const char* file, int line, const char* fmt, ...) -#ifdef __GNUC__ - __attribute__((format(printf, 5, 6))) -#endif - ; - -void GenericLogV(LogLevel level, LogType type, const char* file, int line, const char* fmt, - va_list args); } // namespace Common::Log -// Let the compiler optimize this out -#define GENERIC_LOG(t, v, ...) \ - do \ - { \ - if (v <= Common::Log::MAX_LOGLEVEL) \ - Common::Log::GenericLog(v, t, __FILE__, __LINE__, __VA_ARGS__); \ - } while (0) - -#define ERROR_LOG(t, ...) \ - do \ - { \ - GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LERROR, __VA_ARGS__); \ - } while (0) -#define WARN_LOG(t, ...) \ - do \ - { \ - GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LWARNING, __VA_ARGS__); \ - } while (0) -#define NOTICE_LOG(t, ...) \ - do \ - { \ - GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LNOTICE, __VA_ARGS__); \ - } while (0) -#define INFO_LOG(t, ...) \ - do \ - { \ - GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LINFO, __VA_ARGS__); \ - } while (0) -#define DEBUG_LOG(t, ...) \ - do \ - { \ - GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LDEBUG, __VA_ARGS__); \ - } while (0) - -#define GENERIC_LOG_V(t, v, fmt, args) \ - do \ - { \ - if (v <= Common::Log::MAX_LOGLEVEL) \ - Common::Log::GenericLogV(v, t, __FILE__, __LINE__, fmt, args); \ - } while (0) - // fmtlib capable API #define GENERIC_LOG_FMT(t, v, format, ...) \ diff --git a/Source/Core/Common/Logging/LogManager.cpp b/Source/Core/Common/Logging/LogManager.cpp index bed3a183e4..ab795d372a 100644 --- a/Source/Core/Common/Logging/LogManager.cpp +++ b/Source/Core/Common/Logging/LogManager.cpp @@ -62,40 +62,6 @@ private: bool m_enable; }; -void GenericLog(LogLevel level, LogType type, const char* file, int line, const char* fmt, ...) -{ - auto* instance = LogManager::GetInstance(); - if (instance == nullptr) - return; - - if (!instance->IsEnabled(type, level)) - return; - - va_list args; - va_start(args, fmt); - char message[MAX_MSGLEN]; - CharArrayFromFormatV(message, MAX_MSGLEN, fmt, args); - va_end(args); - - instance->Log(level, type, file, line, message); -} - -void GenericLogV(LogLevel level, LogType type, const char* file, int line, const char* fmt, - va_list args) -{ - auto* instance = LogManager::GetInstance(); - if (instance == nullptr) - return; - - if (!instance->IsEnabled(type, level)) - return; - - char message[MAX_MSGLEN]; - CharArrayFromFormatV(message, MAX_MSGLEN, fmt, args); - - instance->Log(level, type, file, line, message); -} - void GenericLogFmtImpl(LogLevel level, LogType type, const char* file, int line, fmt::string_view format, const fmt::format_args& args) { From 151119cece42f2a98f70993df678b3e48405799d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 19 May 2022 16:36:39 -0700 Subject: [PATCH 065/659] DSPInterpreter: Fix typo in isOverflow comment --- Source/Core/Core/DSP/Interpreter/DSPIntCCUtil.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntCCUtil.h b/Source/Core/Core/DSP/Interpreter/DSPIntCCUtil.h index 3e970cc2ac..20b47edb5e 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntCCUtil.h +++ b/Source/Core/Core/DSP/Interpreter/DSPIntCCUtil.h @@ -23,7 +23,7 @@ constexpr bool isCarrySubtract(u64 val, u64 result) constexpr bool isOverflow(s64 val1, s64 val2, s64 res) { - // val1 > 0 and val1 > 0 yet res < 0, or val1 < 0 and val2 < 0 yet res > 0. + // val1 > 0 and val2 > 0 yet res < 0, or val1 < 0 and val2 < 0 yet res > 0. return ((val1 ^ res) & (val2 ^ res)) < 0; } From b396afd1a387dffbb0d5a8a5606907a1bc3bf136 Mon Sep 17 00:00:00 2001 From: JMC47 Date: Fri, 20 May 2022 02:19:22 -0400 Subject: [PATCH 066/659] INI: add RealWiiRemoteRepeatReports False to Order Up! --- Data/Sys/GameSettings/ROX.ini | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Data/Sys/GameSettings/ROX.ini diff --git a/Data/Sys/GameSettings/ROX.ini b/Data/Sys/GameSettings/ROX.ini new file mode 100644 index 0000000000..43b714d973 --- /dev/null +++ b/Data/Sys/GameSettings/ROX.ini @@ -0,0 +1,14 @@ +# ROXP7J, ROXX7J, ROXE20 - Order Up! + +[Core] +# Values set here will override the main Dolphin settings. +RealWiiRemoteRepeatReports = False + +[OnLoad] +# Add memory patches to be loaded once on boot here. + +[OnFrame] +# Add memory patches to be applied every frame here. + +[ActionReplay] +# Add action replay cheats here. From 863cb591fe6c3064da1a4d8e392f49dc724b67e8 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 20 May 2022 18:48:22 -0700 Subject: [PATCH 067/659] MainSettings: Make MAIN_CUSTOM_RTC_VALUE default value less magical --- Source/Core/Core/Config/MainSettings.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index 4b4b91f43e..2d04ae0727 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -200,8 +200,10 @@ GPUDeterminismMode GetGPUDeterminismMode() const Info MAIN_PERF_MAP_DIR{{System::Main, "Core", "PerfMapDir"}, ""}; const Info MAIN_CUSTOM_RTC_ENABLE{{System::Main, "Core", "EnableCustomRTC"}, false}; -// Default to seconds between 1.1.1970 and 1.1.2000 -const Info MAIN_CUSTOM_RTC_VALUE{{System::Main, "Core", "CustomRTCValue"}, 946684800}; +// Measured in seconds since the unix epoch (1.1.1970). Default is 1.1.2000; there are 7 leap years +// between those dates. +const Info MAIN_CUSTOM_RTC_VALUE{{System::Main, "Core", "CustomRTCValue"}, + (30 * 365 + 7) * 24 * 60 * 60}; const Info MAIN_FALLBACK_REGION{{System::Main, "Core", "FallbackRegion"}, GetDefaultRegion()}; const Info MAIN_AUTO_DISC_CHANGE{{System::Main, "Core", "AutoDiscChange"}, false}; From c06f81b1ff0346f077159ac425e3bfb86366e0dd Mon Sep 17 00:00:00 2001 From: nolrinale Date: Wed, 18 May 2022 20:35:34 +0200 Subject: [PATCH 068/659] GameSettings: Adjusted graphic settings for PSO EP1&2 and PSO EP3, fixes missing texts. --- Data/Sys/GameSettings/GPO.ini | 2 +- Data/Sys/GameSettings/GPS.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/Sys/GameSettings/GPO.ini b/Data/Sys/GameSettings/GPO.ini index 7dc01bed5f..e7d71c1197 100644 --- a/Data/Sys/GameSettings/GPO.ini +++ b/Data/Sys/GameSettings/GPO.ini @@ -13,5 +13,5 @@ # Add action replay cheats here. [Video_Settings] -SafeTextureCacheColorSamples = 512 +SafeTextureCacheColorSamples = 2048 diff --git a/Data/Sys/GameSettings/GPS.ini b/Data/Sys/GameSettings/GPS.ini index b1772b551f..9b89e96b6f 100644 --- a/Data/Sys/GameSettings/GPS.ini +++ b/Data/Sys/GameSettings/GPS.ini @@ -13,7 +13,7 @@ # Add action replay cheats here. [Video_Settings] -SafeTextureCacheColorSamples = 512 +SafeTextureCacheColorSamples = 2048 [Video_Hacks] ImmediateXFBEnable = False From d7da4aca19e4b1a1a2fba622c3eee7c7a1f7dcb0 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 21 May 2022 16:44:40 +0100 Subject: [PATCH 069/659] DSPHLE: handle crc of Pikmin 1 GC US Demo The DSP code only has minor differences to the final release. --- Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 1 + Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 3c31d61ffa..97a33a1f8b 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -261,6 +261,7 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) case 0x6ba3b3ea: // GC IPL - PAL case 0x24b22038: // GC IPL - NTSC case 0x2fcdf1ec: // Zelda FSA - US + case 0xdf059f68: // Pikmin 1 GC - US Demo case 0x4be6a5cb: // Pikmin 1 GC - US case 0x267fd05a: // Pikmin 1 GC - PAL case 0x42f64ac4: // Luigi's Mansion - US diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index f7b51e9bf0..7cfab59596 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -77,6 +77,8 @@ static const std::map UCODE_FLAGS = { WEIRD_CMD_0C}, // GameCube IPL/BIOS, PAL. {0x6BA3B3EA, LIGHT_PROTOCOL | FOUR_MIXING_DESTS | NO_CMD_0D}, + // Pikmin 1 GC NTSC Demo. + {0xDF059F68, LIGHT_PROTOCOL | NO_CMD_0D | SUPPORTS_GBA_CRYPTO}, // Pikmin 1 GC NTSC. // Animal Crossing. {0x4BE6A5CB, LIGHT_PROTOCOL | NO_CMD_0D | SUPPORTS_GBA_CRYPTO}, From f0454ab2fa381b65fe1e15d3ae97b87a3d0421d5 Mon Sep 17 00:00:00 2001 From: Sage King Date: Sat, 21 May 2022 14:08:49 -0600 Subject: [PATCH 070/659] Added double click to add expressions when mapping --- Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp b/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp index 50492e0767..e6f5f208b3 100644 --- a/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp @@ -427,6 +427,7 @@ void IOWindow::Update() void IOWindow::ConnectWidgets() { connect(m_select_button, &QPushButton::clicked, [this] { AppendSelectedOption(); }); + connect(m_option_list, &QTableWidget::cellDoubleClicked, [this] { AppendSelectedOption(); }); connect(&Settings::Instance(), &Settings::ReleaseDevices, this, &IOWindow::ReleaseDevices); connect(&Settings::Instance(), &Settings::DevicesChanged, this, &IOWindow::UpdateDeviceList); From d2df9afda263acf37e07137f1d364737c97799c6 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 27 Apr 2022 18:10:04 +1200 Subject: [PATCH 071/659] cmake: Fix libusb on windows --- Externals/libusb/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Externals/libusb/CMakeLists.txt b/Externals/libusb/CMakeLists.txt index a3c5e73e4f..cd3e2e943f 100644 --- a/Externals/libusb/CMakeLists.txt +++ b/Externals/libusb/CMakeLists.txt @@ -26,6 +26,7 @@ if(WIN32 OR CYGWIN) libusb/libusb/os/windows_common.c libusb/libusb/os/windows_usbdk.c libusb/libusb/os/windows_winusb.c + libusb/libusb/os/events_windows.c ) set(PLATFORM_WINDOWS TRUE) elseif(APPLE) From 54d89b955acea8080924c7f59fbd8310896b283e Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 27 Apr 2022 18:11:50 +1200 Subject: [PATCH 072/659] cmake: add missing FFmpeg dependency on windows --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e0bc248e00..337877cb38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -502,6 +502,12 @@ if(ENCODE_FRAMEDUMPS) endif() message(STATUS "libav/ffmpeg found, enabling AVI frame dumps") add_definitions(-DHAVE_FFMPEG) + if(WIN32) + # Our prebuilt binaries depend on Bcrypt + set_property(TARGET FFmpeg::avutil APPEND PROPERTY + INTERFACE_LINK_LIBRARIES "Bcrypt.lib" + ) + endif() else() message(STATUS "libav/ffmpeg not found, disabling AVI frame dumps") endif() From 987f2700832de979cc767cbe9846fd6984392d05 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 27 Apr 2022 18:22:02 +1200 Subject: [PATCH 073/659] cmake: fix buggy target sources on windows I have no idea why cmake supports PUBLIC on target_sources, but it does. It causes all targets that depend on this target to try and include the files in their sources. Except it doesn't take paths into account, so it breaks. Mabye it would work if you used an abolute source? But I'm not sure there is a sane usecase. --- Source/Core/Common/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 3ede46e870..e7cc3d88d8 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -287,7 +287,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") endif() if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_sources(common PUBLIC HRWrap.h HRWrap.cpp) + target_sources(common PRIVATE HRWrap.h HRWrap.cpp) endif() if(USE_UPNP) From 2348017ee8ad11e7d12795f11353e989b25c1cb0 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 27 Apr 2022 18:31:27 +1200 Subject: [PATCH 074/659] cmake: ignore external warnings in MSVC Since we also treat all warnings as errors, we need to ignore these to successfully build. --- Source/CMakeLists.txt | 6 +++++- Source/Core/DolphinQt/CMakeLists.txt | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 9aa5ff1bdc..d68acaca4f 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -67,7 +67,11 @@ if (MSVC) # All files are encoded as UTF-8 add_compile_options(/utf-8) - # Use PCH + # Ignore warnings in external headers + add_compile_options(/external:anglebrackets) + add_compile_options(/external:W0) + add_compile_options(/external:templates-) + add_subdirectory(PCH) add_definitions(/I${PCH_DIRECTORY}) add_definitions(/Yu${PCH_PATH}) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 000e5767a4..7f65c62179 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -382,9 +382,6 @@ if (WIN32) endif() if (MSVC) - # Don't propogate warnings in qt headers to Dolphin - target_compile_options(dolphin-emu PRIVATE /experimental:external) - target_compile_options(dolphin-emu PRIVATE /external:W0) set(qtGui "") set(qtGuiPriv "") set(qtWidgetsPriv "") From 0909e0011748dcb47503a5a4e25c609aa11ceae8 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 27 Apr 2022 18:57:13 +1200 Subject: [PATCH 075/659] cmake: fix MSVC PCH support I'm not sure if the previous implementation ever worked. --- Externals/imgui/CMakeLists.txt | 1 - Source/CMakeLists.txt | 3 +-- Source/Core/Common/CMakeLists.txt | 11 +++++++++++ Source/PCH/CMakeLists.txt | 24 +++++++++++++++++++++--- Source/PCH/nopch/pch.h | 4 ++++ 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 Source/PCH/nopch/pch.h diff --git a/Externals/imgui/CMakeLists.txt b/Externals/imgui/CMakeLists.txt index b3d48432a1..2b805f7725 100644 --- a/Externals/imgui/CMakeLists.txt +++ b/Externals/imgui/CMakeLists.txt @@ -14,6 +14,5 @@ target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries(imgui PRIVATE - common fmt::fmt ) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index d68acaca4f..3017a2abd8 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -72,9 +72,8 @@ if (MSVC) add_compile_options(/external:W0) add_compile_options(/external:templates-) + # Compile PCH add_subdirectory(PCH) - add_definitions(/I${PCH_DIRECTORY}) - add_definitions(/Yu${PCH_PATH}) # Don't include timestamps in binaries add_link_options(/Brepro) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index e7cc3d88d8..984a143ce9 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -308,3 +308,14 @@ if(UNIX) elseif(WIN32) target_link_libraries(common PRIVATE "-INCLUDE:enableCompatPatches") endif() + +if(MSVC) + # Add precompiled header + # it will propergate down to everything that depends on common + target_link_libraries(common PUBLIC pch) + + # We need to disable PCH for this one file, because it's C and our PCH is C++ + set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/ImageC.c + PROPERTIES COMPILE_FLAGS "/Y- /I${CMAKE_SOURCE_DIR}/Source/PCH/nopch") +endif() diff --git a/Source/PCH/CMakeLists.txt b/Source/PCH/CMakeLists.txt index 7346b24dff..aeddfa52f5 100644 --- a/Source/PCH/CMakeLists.txt +++ b/Source/PCH/CMakeLists.txt @@ -1,6 +1,24 @@ +# The PCH that dolphin uses for MSVC is non-standard; +# Instead of having one PCH per module, dolphin has one PCH shared between all modules. +# So we need to implement PCH manually, rather than using the PCH support built into cmake + add_library(pch pch.h pch.cpp) -set(PCH_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) -set(PCH_NAME ${PCH.pch}) -target_compile_options(pch PUBLIC /Ycpch.h /Fp${PCH_DIRECTORY}/${PCH_NAME}) + +# pch.cpp should be compiled with the /Yc command, which creates the precompiled header +target_compile_options(pch PRIVATE /Yc"pch.h" /Fo$) + +# /Fp sets the location of the PCH. By forcing it to a fixed location, all modules +# will share this one PCH +target_compile_options(pch PUBLIC /Fp$) + +# Sharing a PCH breaks pdb files. So we use the /Z7 option to inline the pdb into +# the binary. That also requires us to disable minimal rebuilds. +target_compile_options(pch PUBLIC /Z7 /Gm-) + +# targets which include pch need these compile options +# /Yu - Use precompiled header named "pch.h" +# /FI - Force include "pch.h" at top of every source file +target_compile_options(pch INTERFACE /Yu"pch.h" /FI"pch.h") + # fmt/format.h is included in the PCH target_link_libraries(pch PUBLIC fmt::fmt) diff --git a/Source/PCH/nopch/pch.h b/Source/PCH/nopch/pch.h new file mode 100644 index 0000000000..6b7c4c5b31 --- /dev/null +++ b/Source/PCH/nopch/pch.h @@ -0,0 +1,4 @@ +// dummy include to help with disabling pch for a single file +// cmake doesn't provide a clean way to disable MSVC's force include option + +// So we can just point it at an empty file instead. From 89fda54820744848d19686b21221a86f6917e24b Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Thu, 28 Apr 2022 17:15:30 +1200 Subject: [PATCH 076/659] cmake: fix ninja/msvc builds If you don't set this policy, then cmake doesn't even try to select a runtime library --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 337877cb38..148872fc82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,9 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14.0" CACHE STRING "") set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake") +# Required for cmake to select the correct runtime library in MSVC builds. +cmake_policy(SET CMP0091 NEW) + project(dolphin-emu) # Name of the Dolphin distributor. If you redistribute Dolphin builds (forks, From 876f6651b45e7c4e014571ce1c4d53f70ac68813 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Thu, 28 Apr 2022 17:18:07 +1200 Subject: [PATCH 077/659] cmake: fix PCH to work with msvc/ninja Ninja puts way more effort into compiling targets in parallel, and ignores dependenceis until link time. So we need to jump though hoops to force ninja to compile pch.cpp before any targets which depend on the PCH. --- Source/Core/Common/CMakeLists.txt | 2 +- Source/PCH/CMakeLists.txt | 37 +++++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 984a143ce9..287680aeea 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -312,7 +312,7 @@ endif() if(MSVC) # Add precompiled header # it will propergate down to everything that depends on common - target_link_libraries(common PUBLIC pch) + target_link_libraries(common PUBLIC use_pch) # We need to disable PCH for this one file, because it's C and our PCH is C++ set_source_files_properties( diff --git a/Source/PCH/CMakeLists.txt b/Source/PCH/CMakeLists.txt index aeddfa52f5..2ee6adaa12 100644 --- a/Source/PCH/CMakeLists.txt +++ b/Source/PCH/CMakeLists.txt @@ -2,23 +2,42 @@ # Instead of having one PCH per module, dolphin has one PCH shared between all modules. # So we need to implement PCH manually, rather than using the PCH support built into cmake -add_library(pch pch.h pch.cpp) +add_library(build_pch pch.h pch.cpp) + +# fmt/format.h is included in the PCH +target_link_libraries(build_pch PUBLIC fmt::fmt) # pch.cpp should be compiled with the /Yc command, which creates the precompiled header -target_compile_options(pch PRIVATE /Yc"pch.h" /Fo$) +target_compile_options(build_pch PRIVATE /Ycpch.h) # /Fp sets the location of the PCH. By forcing it to a fixed location, all modules -# will share this one PCH -target_compile_options(pch PUBLIC /Fp$) +# will share this one PCH. We give it a fixed name so we can depend on it later +target_compile_options(build_pch PUBLIC /Fp$/dolphin.pch ) # Sharing a PCH breaks pdb files. So we use the /Z7 option to inline the pdb into # the binary. That also requires us to disable minimal rebuilds. -target_compile_options(pch PUBLIC /Z7 /Gm-) +target_compile_options(build_pch PUBLIC /Z7 /Gm-) -# targets which include pch need these compile options +# To get this working with ninja, we need to tell it that compiling pch.cpp generates an extra output +set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/pch.cpp PROPERTIES + OBJECT_OUTPUTS $/dolphin.pch +) + +# and then create a custom target that depends on the pch output +# so that ninja won't start building anything that depends on this +# target before the pch is built +add_custom_target(force_build_pch + DEPENDS $/dolphin.pch +) + +# linking against this interface libary will cause targets to enable PCH +add_library(use_pch INTERFACE) +target_link_libraries(use_pch INTERFACE build_pch) + +# targets which use the pch need these compile options # /Yu - Use precompiled header named "pch.h" # /FI - Force include "pch.h" at top of every source file -target_compile_options(pch INTERFACE /Yu"pch.h" /FI"pch.h") +target_compile_options(use_pch INTERFACE /Yupch.h /FIpch.h) -# fmt/format.h is included in the PCH -target_link_libraries(pch PUBLIC fmt::fmt) +# For ninja, we need to depend on force_build_pch +add_dependencies(use_pch force_build_pch) From 4db181636804603153ab372247d9a6ff377e8d52 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Fri, 29 Apr 2022 05:20:16 +1200 Subject: [PATCH 078/659] cmake: Require cmake 3.15 for MSVC We need these policies, but we kind of want to avoid requiring cmake 3.15 for all platforms --- CMakeLists.txt | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 148872fc82..23bab93618 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,15 +9,19 @@ cmake_minimum_required(VERSION 3.10) # MacOS prior to 10.14 did not support aligned alloc which is used to implement # std::unique_ptr in the arm64 C++ standard library. x86_64 builds can override # this to 10.13.0 using -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13.0" without issue. -# This is done in the universal binary building script to build a binary that +# This is done in the universal binary building script to build a binary that # runs on 10.13 on x86_64 computers, while still containing an arm64 slice. set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14.0" CACHE STRING "") set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake") -# Required for cmake to select the correct runtime library in MSVC builds. -cmake_policy(SET CMP0091 NEW) +# Optionally enable these polcies so older versions of cmake don't break. +# we only need them for MSVC +if(POLICY CMP0091) + cmake_policy(SET CMP0091 NEW) # MSVC runtime library flags are selected by an abstraction. + cmake_policy(SET CMP0092 NEW) # MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. +endif() project(dolphin-emu) @@ -81,7 +85,7 @@ endif() if(APPLE) option(MACOS_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF) - option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF) + option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF) # Enable adhoc code signing by default (otherwise makefile builds on ARM will not work) option(MACOS_CODE_SIGNING "Enable codesigning" ON) set(MACOS_CODE_SIGNING_IDENTITY "-" CACHE STRING "The identity used for codesigning.") @@ -247,7 +251,14 @@ elseif(CMAKE_GENERATOR MATCHES "Visual Studio") add_compile_options("/MP") endif() -if(CMAKE_C_COMPILER_ID MATCHES "MSVC") +if(MSVC) + if(POLICY CMP0091) + # cmake is a weird language. You can't do if(not POLICY) + else() + # We really kind of want this policy + message(FATAL_ERROR "please update cmake to at least 3.15") + endif() + check_and_add_flag(EXCEPTIONS /EHsc) dolphin_compile_definitions(_DEBUG DEBUG_ONLY) @@ -497,7 +508,7 @@ if(ENCODE_FRAMEDUMPS) endif() find_package(FFmpeg COMPONENTS avcodec avformat avutil swresample swscale) if(FFmpeg_FOUND) - if(APPLE) + if(APPLE) find_library(COREMEDIA_LIBRARY CoreMedia) find_library(VIDEOTOOLBOX_LIBRARY VideoToolbox) find_library(COREVIDEO_LIBRARY CoreVideo) From 96e2f1f95e7fdcd1fcb1577fe0b4f3124069a7ac Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 20 May 2022 17:13:41 +0200 Subject: [PATCH 079/659] Externals: Update prebuilt Qt submodule to include mkspecs -- the CMake build process wants them. --- Externals/Qt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals/Qt b/Externals/Qt index 9498dbe942..376baafde6 160000 --- a/Externals/Qt +++ b/Externals/Qt @@ -1 +1 @@ -Subproject commit 9498dbe9421a80da674212fee0bf745883464992 +Subproject commit 376baafde6cce2f8892c34c17ed397afa6c46d08 From dbee810a04ab6ed207af4038202ee05a1a8b900c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 20 May 2022 17:14:05 +0200 Subject: [PATCH 080/659] cmake: Fixes for Qt6 on Windows. --- CMakeSettings.json | 16 ++++++++-------- Source/Core/DolphinQt/CMakeLists.txt | 9 ++++++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeSettings.json b/CMakeSettings.json index 94812b270f..491c378ec8 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -10,8 +10,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "QT_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64\\lib\\cmake\\Qt6" + "name": "CMAKE_PREFIX_PATH", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64" } ] }, @@ -25,8 +25,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "QT_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64\\lib\\cmake\\Qt6" + "name": "CMAKE_PREFIX_PATH", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\x64" } ] }, @@ -40,8 +40,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "QT_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64\\lib\\cmake\\Qt6" + "name": "CMAKE_PREFIX_PATH", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64" }, { "name": "CMAKE_SYSTEM_NAME", @@ -63,8 +63,8 @@ "cmakeCommandArgs": "", "variables": [ { - "name": "QT_DIR", - "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64\\lib\\cmake\\Qt6" + "name": "CMAKE_PREFIX_PATH", + "value": "${workspaceRoot}\\Externals\\Qt\\Qt6.3.0\\ARM64" }, { "name": "CMAKE_SYSTEM_NAME", diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 7f65c62179..d594b323fb 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -427,6 +427,13 @@ if(WIN32) get_filename_component(QT_BINARY_DIRECTORY "${MOC_EXECUTABLE_LOCATION}" DIRECTORY) find_program(WINDEPLOYQT_EXE windeployqt HINTS "${QT_BINARY_DIRECTORY}") + if ("${QT_VERSION_MAJOR}" LESS 6) + set(NO_ANGLE_PARAM "--no-angle") + else() + # parameter no longer exists in Qt6 + set(NO_ANGLE_PARAM "") + endif() + # Note: We set the PATH for the duration of this command so that the # deployment application is able to locate the Qt libraries to copy. # if the necessary paths aren't already set beforehand. @@ -449,7 +456,7 @@ if(WIN32) --no-translations --no-compiler-runtime --no-system-d3d-compiler - --no-angle + "${NO_ANGLE_PARAM}" --no-opengl-sw "$" ) From 89fadd26a6ad01bd4ded9eea986283a67321ef80 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 21 May 2022 03:31:41 +0200 Subject: [PATCH 081/659] cmake: Use C++latest everywhere on MSVC. --- CMakeLists.txt | 8 ++++++++ Externals/FreeSurround/CMakeLists.txt | 8 +++++--- Externals/WIL/tests/cpplatest/CMakeLists.txt | 4 +++- Externals/cubeb/CMakeLists.txt | 9 ++++++--- Externals/discord-rpc/src/CMakeLists.txt | 4 +++- Externals/imgui/CMakeLists.txt | 8 +++++--- Source/CMakeLists.txt | 9 +++------ 7 files changed, 33 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23bab93618..7cd79ca081 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,14 @@ endif() project(dolphin-emu) +if (MSVC) + set(CMAKE_C_STANDARD 99) + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest") + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) +endif() + # Name of the Dolphin distributor. If you redistribute Dolphin builds (forks, # unofficial builds) please consider identifying your distribution with a # unique name here. diff --git a/Externals/FreeSurround/CMakeLists.txt b/Externals/FreeSurround/CMakeLists.txt index 6d488f155e..9a17fff2fd 100644 --- a/Externals/FreeSurround/CMakeLists.txt +++ b/Externals/FreeSurround/CMakeLists.txt @@ -1,6 +1,8 @@ -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) +if (NOT MSVC) + set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) +endif() set(SRCS source/ChannelMaps.cpp diff --git a/Externals/WIL/tests/cpplatest/CMakeLists.txt b/Externals/WIL/tests/cpplatest/CMakeLists.txt index 22e45cc940..7255c97ef3 100644 --- a/Externals/WIL/tests/cpplatest/CMakeLists.txt +++ b/Externals/WIL/tests/cpplatest/CMakeLists.txt @@ -1,7 +1,9 @@ # Compilers often don't use the latest C++ standard as the default. Periodically update this value (possibly conditioned # on compiler) as new standards are ratified/support is available -set(CMAKE_CXX_STANDARD 17) +if (NOT MSVC) + set(CMAKE_CXX_STANDARD 17) +endif() project(witest.cpplatest) add_executable(witest.cpplatest) diff --git a/Externals/cubeb/CMakeLists.txt b/Externals/cubeb/CMakeLists.txt index 3604041d7d..65fda6c181 100644 --- a/Externals/cubeb/CMakeLists.txt +++ b/Externals/cubeb/CMakeLists.txt @@ -15,9 +15,12 @@ endif() if(POLICY CMP0063) cmake_policy(SET CMP0063 NEW) endif() -set(CMAKE_C_STANDARD 99) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if (NOT MSVC) + set(CMAKE_C_STANDARD 99) + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +endif() if(NOT COMMAND add_sanitizers) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/sanitizers-cmake/cmake") diff --git a/Externals/discord-rpc/src/CMakeLists.txt b/Externals/discord-rpc/src/CMakeLists.txt index 8e20faac86..c49b26faf6 100644 --- a/Externals/discord-rpc/src/CMakeLists.txt +++ b/Externals/discord-rpc/src/CMakeLists.txt @@ -4,7 +4,9 @@ option(ENABLE_IO_THREAD "Start up a separate I/O thread, otherwise I'd need to c option(USE_STATIC_CRT "Use /MT[d] for dynamic library" OFF) option(WARNINGS_AS_ERRORS "When enabled, compiles with `-Werror` (on *nix platforms)." OFF) -set(CMAKE_CXX_STANDARD 14) +if (NOT MSVC) + set(CMAKE_CXX_STANDARD 14) +endif() set(BASE_RPC_SRC ${PROJECT_SOURCE_DIR}/include/discord_rpc.h diff --git a/Externals/imgui/CMakeLists.txt b/Externals/imgui/CMakeLists.txt index 2b805f7725..3b6be85f50 100644 --- a/Externals/imgui/CMakeLists.txt +++ b/Externals/imgui/CMakeLists.txt @@ -1,6 +1,8 @@ -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) +if (NOT MSVC) + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) +endif() set(SRCS imgui.cpp diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 3017a2abd8..9815023369 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -18,15 +18,12 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows") add_definitions(-D_SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING) endif() -if (MSVC) - set(CMAKE_CXX_STANDARD 20) - set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest") -else() +if (NOT MSVC) set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) endif() -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if (MSVC) From 9908219dc6b489e7ae85ee5247359072140dd68c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 21 May 2022 04:37:28 +0200 Subject: [PATCH 082/659] cmake: Add a few missing settings from the Visual Studio project files on MSVC. --- CMakeLists.txt | 54 ++++++++++++++++++++++++++-- Source/CMakeLists.txt | 45 ----------------------- Source/Core/DolphinQt/CMakeLists.txt | 7 ++++ 3 files changed, 59 insertions(+), 47 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7cd79ca081..886c6513e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -270,12 +270,59 @@ if(MSVC) check_and_add_flag(EXCEPTIONS /EHsc) dolphin_compile_definitions(_DEBUG DEBUG_ONLY) + # Disable RTTI + # Unfortunately /GR is in the default compile flags for MSVC so we have to find and replace it. + foreach (flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE " /GR " " /GR- " ${flag} "${${flag}}") + endforeach() + + # Set warning level 4 (the highest) + add_compile_options(/W4) + + # Treat all warnings as errors + add_compile_options(/WX) + + # Disable some warnings + add_compile_options( + /wd4201 # nonstandard extension used : nameless struct/union + /wd4127 # conditional expression is constant + /wd4100 # 'identifier' : unreferenced formal parameter + /wd4200 # InputCommon fix temp. + /wd4244 # 'conversion' conversion from 'type1' to 'type2', possible loss of data + /wd4121 # 'symbol' : alignment of a member was sensitive to packing + /wd4324 # Padding was added at the end of a structure because you specified a __declspec(align) value. + /wd4714 # function 'function' marked as __forceinline not inlined + /wd4351 # new behavior: elements of array 'array' will be default initialized + # TODO: Enable this warning once possible + /wd4245 # conversion from 'type1' to 'type2', signed/unsigned mismatch + # Currently jits use some annoying code patterns which makes this common + ) + + # Additional warnings + add_compile_options( + /w44263 # Non-virtual member function hides base class virtual function + /w44265 # Class has virtual functions, but destructor is not virtual + /w44946 # Reinterpret cast between related types + ) + + # All files are encoded as UTF-8 + add_compile_options(/utf-8) + + # Ignore warnings in external headers + add_compile_options(/external:anglebrackets) + add_compile_options(/external:W0) + add_compile_options(/external:templates-) + + # Request deterministic builds + add_compile_options(/experimental:deterministic) + add_link_options(/experimental:deterministic) + # Enable function-level linking add_compile_options(/Gy) # Generate intrinsic functions add_compile_options(/Oi) - # Disable buffer security check - add_compile_options(/GS-) + # Enable buffer security check on Debug, disable otherwise + add_compile_options($,/GS,/GS->) # Enforce C++ standard conforming conversion rules to catch possible bugs add_compile_options(/permissive-) # Remove unreferenced inline functions/data to reduce link time and catch bugs @@ -294,6 +341,9 @@ if(MSVC) /wd5105 # macro expansion producing 'defined' has undefined behavior ) + # Use 'precise' floating point model + add_compile_options(/fp:precise) + string(APPEND CMAKE_EXE_LINKER_FLAGS " /NXCOMPAT") # Generate debug data string(APPEND CMAKE_EXE_LINKER_FLAGS " /DEBUG") diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 9815023369..c9d2edb516 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -27,53 +27,8 @@ endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if (MSVC) - # TODO: Use https://cmake.org/cmake/help/latest/policy/CMP0092.html instead (once we can require CMake >= 3.15) - # Taken from http://www.cmake.org/Wiki/CMake_FAQ#Dynamic_Replace. - foreach(flag_var - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - MAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - # Replaces /W3 with /W4 in defaults (add_compile_options would cause very annoying warnings here) - string(REPLACE "/W3" "/W4" ${flag_var} "${${flag_var}}") - endforeach() - - # Disable some warnings - add_compile_options( - /wd4201 # nonstandard extension used : nameless struct/union - /wd4127 # conditional expression is constant - /wd4100 # 'identifier' : unreferenced formal parameter - /wd4200 # InputCommon fix temp. - /wd4244 # 'conversion' conversion from 'type1' to 'type2', possible loss of data - /wd4121 # 'symbol' : alignment of a member was sensitive to packing - /wd4324 # Padding was added at the end of a structure because you specified a __declspec(align) value. - /wd4714 # function 'function' marked as __forceinline not inlined - /wd4351 # new behavior: elements of array 'array' will be default initialized - # TODO: Enable this warning once possible - /wd4245 # conversion from 'type1' to 'type2', signed/unsigned mismatch - # Currently jits use some annoying code patterns which makes this common - ) - - # Additional warnings - add_compile_options( - /w44263 # Non-virtual member function hides base class virtual function - /w44265 # Class has virtual functions, but destructor is not virtual - ) - - # Treat all warnings as errors - add_compile_options(/WX) - - # All files are encoded as UTF-8 - add_compile_options(/utf-8) - - # Ignore warnings in external headers - add_compile_options(/external:anglebrackets) - add_compile_options(/external:W0) - add_compile_options(/external:templates-) - # Compile PCH add_subdirectory(PCH) - - # Don't include timestamps in binaries - add_link_options(/Brepro) else() check_and_add_flag(HAVE_WALL -Wall) # TODO: would like these but they produce overwhelming amounts of warnings diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index d594b323fb..3398bb2695 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -391,6 +391,13 @@ if (MSVC) target_compile_options(dolphin-emu PRIVATE "${qtGui}") target_compile_options(dolphin-emu PRIVATE "${qtGuiPriv}") target_compile_options(dolphin-emu PRIVATE "${qtWidgets}") + + if ("${QT_VERSION_MAJOR}" GREATER_EQUAL 6) + # Qt6 requires RTTI + foreach (flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE " /GR- " " /GR " ${flag} "${${flag}}") + endforeach() + endif() endif() if(WIN32) From 7f2ea688d2b6881a071d3db86efb8825fafd3014 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 21 May 2022 04:40:13 +0200 Subject: [PATCH 083/659] cmake: On MSVC, set c++latest by requesting a C++23 feature set. --- CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 886c6513e5..0bbb6d3b69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,10 +27,8 @@ project(dolphin-emu) if (MSVC) set(CMAKE_C_STANDARD 99) - set(CMAKE_CXX_STANDARD 20) - set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest") + set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS OFF) endif() # Name of the Dolphin distributor. If you redistribute Dolphin builds (forks, From a5e85627b04ed8d05ccccfaf0aac5f83ec6ace0c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 21 May 2022 14:26:39 +0200 Subject: [PATCH 084/659] cmake: Use Policy CMP0117 for more sensible RTTI flag configuration on MSVC. --- CMake/RemoveCompileFlag.cmake | 16 +++++++++++++ CMakeLists.txt | 34 +++++++++++++--------------- Source/Core/DolphinQt/CMakeLists.txt | 5 ++-- 3 files changed, 34 insertions(+), 21 deletions(-) create mode 100644 CMake/RemoveCompileFlag.cmake diff --git a/CMake/RemoveCompileFlag.cmake b/CMake/RemoveCompileFlag.cmake new file mode 100644 index 0000000000..1bb9c167be --- /dev/null +++ b/CMake/RemoveCompileFlag.cmake @@ -0,0 +1,16 @@ +# from https://stackoverflow.com/a/49216539 +# The linked answer does some weird preconfiguring by manually splitting the CMAKE_CXX_FLAGS variable and applying it to a target, +# but as far as I can tell none of that is necessary, this works just fine as-is. + +# +# Removes the specified compile flag from the specified target. +# _target - The target to remove the compile flag from +# _flag - The compile flag to remove +# +macro(remove_cxx_flag_from_target _target _flag) + get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS) + if(_target_cxx_flags) + list(REMOVE_ITEM _target_cxx_flags ${_flag}) + set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${_target_cxx_flags}") + endif() +endmacro() diff --git a/CMakeLists.txt b/CMakeLists.txt index 0bbb6d3b69..2428a093b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,14 @@ # cmake_minimum_required(VERSION 3.10) +# Weird chicken-and-egg problem: We can't check the compiler before the project() call, but we have to set the policies before it. +# So we do this in two steps: Set the policies if they exist, then error out afterwards if we end up being MSVC and they don't exist. +if (POLICY CMP0117) + cmake_policy(SET CMP0091 NEW) # MSVC runtime library flags are selected by an abstraction. + cmake_policy(SET CMP0092 NEW) # MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. + cmake_policy(SET CMP0117 NEW) # MSVC RTTI flag will not be added by default. +endif() + # Minimum OS X version. # This is inserted into the Info.plist as well. @@ -16,16 +24,15 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14.0" CACHE STRING "") set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake") -# Optionally enable these polcies so older versions of cmake don't break. -# we only need them for MSVC -if(POLICY CMP0091) - cmake_policy(SET CMP0091 NEW) # MSVC runtime library flags are selected by an abstraction. - cmake_policy(SET CMP0092 NEW) # MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. -endif() - project(dolphin-emu) if (MSVC) + if (POLICY CMP0117) + # cmake is a weird language. You can't do if(not POLICY) + else() + message(FATAL_ERROR "Please update to CMake 3.20 or higher.") + endif() + set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -121,6 +128,7 @@ include(CheckAndAddFlag) include(CheckCCompilerFlag) include(CheckVendoringApproved) include(DolphinCompileDefinitions) +include(RemoveCompileFlag) # Enable folders for IDE set_property(GLOBAL PROPERTY USE_FOLDERS ON) @@ -258,21 +266,11 @@ elseif(CMAKE_GENERATOR MATCHES "Visual Studio") endif() if(MSVC) - if(POLICY CMP0091) - # cmake is a weird language. You can't do if(not POLICY) - else() - # We really kind of want this policy - message(FATAL_ERROR "please update cmake to at least 3.15") - endif() - check_and_add_flag(EXCEPTIONS /EHsc) dolphin_compile_definitions(_DEBUG DEBUG_ONLY) # Disable RTTI - # Unfortunately /GR is in the default compile flags for MSVC so we have to find and replace it. - foreach (flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - string(REGEX REPLACE " /GR " " /GR- " ${flag} "${${flag}}") - endforeach() + add_compile_options(/GR-) # Set warning level 4 (the highest) add_compile_options(/W4) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 3398bb2695..3e19006952 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -394,9 +394,8 @@ if (MSVC) if ("${QT_VERSION_MAJOR}" GREATER_EQUAL 6) # Qt6 requires RTTI - foreach (flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - string(REGEX REPLACE " /GR- " " /GR " ${flag} "${${flag}}") - endforeach() + remove_cxx_flag_from_target(dolphin-emu "/GR-") + target_compile_options(dolphin-emu PRIVATE "/GR") endif() endif() From 6ea7af13e87bcde9301507de5ca071d4532a6d8d Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 21 May 2022 15:09:05 +0200 Subject: [PATCH 085/659] cmake: Disable warnings for most externals on MSVC, like we do in the VS project files. --- CMake/DolphinDisableWarningsMSVC.cmake | 18 ++++++++++++++++++ CMakeLists.txt | 1 + Externals/Bochs_disasm/CMakeLists.txt | 1 + Externals/FreeSurround/CMakeLists.txt | 1 + Externals/LZO/CMakeLists.txt | 1 + Externals/SFML/CMakeLists.txt | 2 ++ Externals/bzip2/CMakeLists.txt | 1 + Externals/cpp-optparse/CMakeLists.txt | 1 + Externals/cubeb/CMakeLists.txt | 2 ++ Externals/curl/lib/CMakeLists.txt | 1 + Externals/discord-rpc/src/CMakeLists.txt | 1 + Externals/ed25519/CMakeLists.txt | 1 + Externals/enet/CMakeLists.txt | 1 + Externals/fmt/CMakeLists.txt | 1 + Externals/glslang/CMakeLists.txt | 1 + Externals/hidapi/CMakeLists.txt | 1 + Externals/imgui/CMakeLists.txt | 1 + Externals/libiconv-1.14/CMakeLists.txt | 1 + Externals/liblzma/CMakeLists.txt | 1 + Externals/libpng/CMakeLists.txt | 2 ++ Externals/libusb/CMakeLists.txt | 2 ++ Externals/mGBA/CMakeLists.txt | 1 + Externals/mbedtls/library/CMakeLists.txt | 6 ++++++ Externals/miniupnpc/CMakeLists.txt | 1 + Externals/minizip/CMakeLists.txt | 1 + Externals/pugixml/CMakeLists.txt | 1 + Externals/soundtouch/CMakeLists.txt | 1 + Externals/xxhash/CMakeLists.txt | 1 + Externals/zlib/CMakeLists.txt | 1 + Externals/zstd/CMakeLists.txt | 1 + 30 files changed, 56 insertions(+) create mode 100644 CMake/DolphinDisableWarningsMSVC.cmake diff --git a/CMake/DolphinDisableWarningsMSVC.cmake b/CMake/DolphinDisableWarningsMSVC.cmake new file mode 100644 index 0000000000..43823a0ea4 --- /dev/null +++ b/CMake/DolphinDisableWarningsMSVC.cmake @@ -0,0 +1,18 @@ +include(RemoveCompileFlag) + +macro(dolphin_disable_warnings_msvc _target) + if (MSVC) + get_target_property(_target_cxx_flags ${_target} COMPILE_OPTIONS) + if (_target_cxx_flags) + set(new_flags "") + foreach(flag IN LISTS _target_cxx_flags) + # all warning flags start with "/W" or "/w" or "-W" or "-w" + if (NOT "${flag}" MATCHES "^[-/][Ww]") + list(APPEND new_flags "${flag}") + endif() + endforeach() + set_target_properties(${_target} PROPERTIES COMPILE_OPTIONS "${new_flags}") + endif() + target_compile_options(${_target} PRIVATE "/W0") + endif() +endmacro() diff --git a/CMakeLists.txt b/CMakeLists.txt index 2428a093b1..1085d51c92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,7 @@ include(CheckAndAddFlag) include(CheckCCompilerFlag) include(CheckVendoringApproved) include(DolphinCompileDefinitions) +include(DolphinDisableWarningsMSVC) include(RemoveCompileFlag) # Enable folders for IDE diff --git a/Externals/Bochs_disasm/CMakeLists.txt b/Externals/Bochs_disasm/CMakeLists.txt index 84326842cb..2a643113e3 100644 --- a/Externals/Bochs_disasm/CMakeLists.txt +++ b/Externals/Bochs_disasm/CMakeLists.txt @@ -4,6 +4,7 @@ add_library(bdisasm STATIC resolve.cc syntax.cc ) +dolphin_disable_warnings_msvc(bdisasm) if (WIN32) target_sources(bdisasm diff --git a/Externals/FreeSurround/CMakeLists.txt b/Externals/FreeSurround/CMakeLists.txt index 9a17fff2fd..d7f8bc3ea2 100644 --- a/Externals/FreeSurround/CMakeLists.txt +++ b/Externals/FreeSurround/CMakeLists.txt @@ -12,5 +12,6 @@ set(SRCS ) add_library(FreeSurround STATIC ${SRCS}) +dolphin_disable_warnings_msvc(FreeSurround) target_include_directories(FreeSurround PUBLIC include) target_compile_options(FreeSurround PRIVATE -w) diff --git a/Externals/LZO/CMakeLists.txt b/Externals/LZO/CMakeLists.txt index 48d1af1b1e..3bb91ee5c5 100644 --- a/Externals/LZO/CMakeLists.txt +++ b/Externals/LZO/CMakeLists.txt @@ -1,6 +1,7 @@ add_library(lzo2 STATIC minilzo.c ) +dolphin_disable_warnings_msvc(lzo2) target_include_directories(lzo2 PUBLIC diff --git a/Externals/SFML/CMakeLists.txt b/Externals/SFML/CMakeLists.txt index 0e82eae1ec..aac2192cad 100644 --- a/Externals/SFML/CMakeLists.txt +++ b/Externals/SFML/CMakeLists.txt @@ -25,3 +25,5 @@ set(SRC_SYSTEM add_library(sfml-network ${SRC_NETWORK}) add_library(sfml-system ${SRC_SYSTEM}) +dolphin_disable_warnings_msvc(sfml-network) +dolphin_disable_warnings_msvc(sfml-system) diff --git a/Externals/bzip2/CMakeLists.txt b/Externals/bzip2/CMakeLists.txt index 32ad4882d3..f19d532e1b 100644 --- a/Externals/bzip2/CMakeLists.txt +++ b/Externals/bzip2/CMakeLists.txt @@ -70,6 +70,7 @@ set(BZIP2_SRCS add_library(bzip2 STATIC ${BZIP2_SRCS} ${BZIP2_PUBLIC_HDRS} ${BZIP2_PRIVATE_HDRS}) add_library(BZip2::BZip2 ALIAS bzip2) +dolphin_disable_warnings_msvc(bzip2) target_include_directories(bzip2 PUBLIC diff --git a/Externals/cpp-optparse/CMakeLists.txt b/Externals/cpp-optparse/CMakeLists.txt index f5d05fa2f3..0f92f22bfd 100644 --- a/Externals/cpp-optparse/CMakeLists.txt +++ b/Externals/cpp-optparse/CMakeLists.txt @@ -3,4 +3,5 @@ check_and_add_flag(CXX11 -std=c++11) set(SRCS OptionParser.cpp OptionParser.h) add_library(cpp-optparse STATIC ${SRCS}) +dolphin_disable_warnings_msvc(cpp-optparse) target_include_directories(cpp-optparse PUBLIC .) diff --git a/Externals/cubeb/CMakeLists.txt b/Externals/cubeb/CMakeLists.txt index 65fda6c181..7cd84dee8b 100644 --- a/Externals/cubeb/CMakeLists.txt +++ b/Externals/cubeb/CMakeLists.txt @@ -48,6 +48,7 @@ add_library(cubeb src/cubeb_log.cpp src/cubeb_strings.c $) +dolphin_disable_warnings_msvc(cubeb) target_include_directories(cubeb PUBLIC $ $ ) @@ -100,6 +101,7 @@ install( add_library(speex OBJECT src/speex/resample.c) +dolphin_disable_warnings_msvc(speex) set_target_properties(speex PROPERTIES POSITION_INDEPENDENT_CODE TRUE) target_compile_definitions(speex PRIVATE OUTSIDE_SPEEX) target_compile_definitions(speex PRIVATE FLOATING_POINT) diff --git a/Externals/curl/lib/CMakeLists.txt b/Externals/curl/lib/CMakeLists.txt index a4be4013ef..d2900d22d0 100644 --- a/Externals/curl/lib/CMakeLists.txt +++ b/Externals/curl/lib/CMakeLists.txt @@ -12,6 +12,7 @@ add_library( STATIC ${SRCS} ) +dolphin_disable_warnings_msvc(curl) target_link_libraries(curl ${MBEDTLS_LIBRARIES} z) target_compile_definitions(curl PUBLIC CURL_STATICLIB PRIVATE CURL_DISABLE_LDAP) diff --git a/Externals/discord-rpc/src/CMakeLists.txt b/Externals/discord-rpc/src/CMakeLists.txt index c49b26faf6..e3296173e0 100644 --- a/Externals/discord-rpc/src/CMakeLists.txt +++ b/Externals/discord-rpc/src/CMakeLists.txt @@ -31,6 +31,7 @@ if(WIN32) add_definitions(-DDISCORD_WINDOWS) set(BASE_RPC_SRC ${BASE_RPC_SRC} connection_win.cpp discord_register_win.cpp) add_library(discord-rpc ${BASE_RPC_SRC}) + dolphin_disable_warnings_msvc(discord-rpc) if (MSVC) if(USE_STATIC_CRT) foreach(CompilerFlag diff --git a/Externals/ed25519/CMakeLists.txt b/Externals/ed25519/CMakeLists.txt index a3a68d536f..1e0080b12b 100644 --- a/Externals/ed25519/CMakeLists.txt +++ b/Externals/ed25519/CMakeLists.txt @@ -11,3 +11,4 @@ add_library(ed25519 sc.c sha512.c verify.c) +dolphin_disable_warnings_msvc(ed25519) diff --git a/Externals/enet/CMakeLists.txt b/Externals/enet/CMakeLists.txt index f364ff7f5b..7f9a2473df 100644 --- a/Externals/enet/CMakeLists.txt +++ b/Externals/enet/CMakeLists.txt @@ -72,6 +72,7 @@ add_library(enet STATIC unix.c win32.c ) +dolphin_disable_warnings_msvc(enet) if(HAIKU) target_link_libraries(enet network) endif(HAIKU) diff --git a/Externals/fmt/CMakeLists.txt b/Externals/fmt/CMakeLists.txt index 1d07bb4adf..f6d8bd50db 100755 --- a/Externals/fmt/CMakeLists.txt +++ b/Externals/fmt/CMakeLists.txt @@ -229,6 +229,7 @@ else() endif () add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} README.rst ChangeLog.rst) +dolphin_disable_warnings_msvc(fmt) add_library(fmt::fmt ALIAS fmt) if (FMT_WERROR) diff --git a/Externals/glslang/CMakeLists.txt b/Externals/glslang/CMakeLists.txt index e6d171d8d8..df5dfa0408 100644 --- a/Externals/glslang/CMakeLists.txt +++ b/Externals/glslang/CMakeLists.txt @@ -73,6 +73,7 @@ endif() endif() add_library(glslang STATIC ${SRCS}) +dolphin_disable_warnings_msvc(glslang) target_include_directories(glslang PRIVATE diff --git a/Externals/hidapi/CMakeLists.txt b/Externals/hidapi/CMakeLists.txt index 42b16d9f01..1cf77404f0 100644 --- a/Externals/hidapi/CMakeLists.txt +++ b/Externals/hidapi/CMakeLists.txt @@ -1,6 +1,7 @@ project(hidapi) add_library(hidapi STATIC hidapi/hidapi.h) +dolphin_disable_warnings_msvc(hidapi) target_include_directories(hidapi PUBLIC hidapi) if(APPLE) diff --git a/Externals/imgui/CMakeLists.txt b/Externals/imgui/CMakeLists.txt index 3b6be85f50..16e5ee486f 100644 --- a/Externals/imgui/CMakeLists.txt +++ b/Externals/imgui/CMakeLists.txt @@ -12,6 +12,7 @@ set(SRCS ) add_library(imgui STATIC ${SRCS}) +dolphin_disable_warnings_msvc(imgui) target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries(imgui diff --git a/Externals/libiconv-1.14/CMakeLists.txt b/Externals/libiconv-1.14/CMakeLists.txt index 9a0660b254..571a6f791c 100644 --- a/Externals/libiconv-1.14/CMakeLists.txt +++ b/Externals/libiconv-1.14/CMakeLists.txt @@ -7,3 +7,4 @@ set(SRCS lib/iconv.c ) add_library(iconv STATIC ${SRCS}) +dolphin_disable_warnings_msvc(iconv) diff --git a/Externals/liblzma/CMakeLists.txt b/Externals/liblzma/CMakeLists.txt index 11d6c77035..dd979c5b68 100644 --- a/Externals/liblzma/CMakeLists.txt +++ b/Externals/liblzma/CMakeLists.txt @@ -207,6 +207,7 @@ set(LZMA_SRCS add_library(lzma STATIC ${LZMA_SRCS} ${LZMA_PUBLIC_HDRS}) add_library(LibLZMA::LibLZMA ALIAS lzma) +dolphin_disable_warnings_msvc(lzma) target_compile_definitions(lzma PUBLIC LZMA_API_STATIC) diff --git a/Externals/libpng/CMakeLists.txt b/Externals/libpng/CMakeLists.txt index d0da8580a6..dabe91af1d 100644 --- a/Externals/libpng/CMakeLists.txt +++ b/Externals/libpng/CMakeLists.txt @@ -39,6 +39,8 @@ add_library(png STATIC pngwutil.c ) +dolphin_disable_warnings_msvc(png) + option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations for libpng" OFF) if(PNG_HARDWARE_OPTIMIZATIONS) diff --git a/Externals/libusb/CMakeLists.txt b/Externals/libusb/CMakeLists.txt index cd3e2e943f..f3bed0d1f0 100644 --- a/Externals/libusb/CMakeLists.txt +++ b/Externals/libusb/CMakeLists.txt @@ -6,6 +6,8 @@ add_library(usb STATIC EXCLUDE_FROM_ALL libusb/libusb/strerror.c libusb/libusb/sync.c ) +dolphin_disable_warnings_msvc(usb) + set_target_properties(usb PROPERTIES VERSION 1.0.26) if(WIN32) target_include_directories(usb BEFORE PUBLIC libusb/libusb PRIVATE libusb/msvc) diff --git a/Externals/mGBA/CMakeLists.txt b/Externals/mGBA/CMakeLists.txt index 4a87c7b58c..edeea5438a 100644 --- a/Externals/mGBA/CMakeLists.txt +++ b/Externals/mGBA/CMakeLists.txt @@ -1,6 +1,7 @@ set(LIBMGBA_ONLY ON) set(USE_LZMA ON) add_subdirectory(mgba EXCLUDE_FROM_ALL) +dolphin_disable_warnings_msvc(mgba) if(NOT MSVC) target_compile_options(mgba PRIVATE -Wno-unused-parameter -Wno-unused-result -Wno-unused-variable) diff --git a/Externals/mbedtls/library/CMakeLists.txt b/Externals/mbedtls/library/CMakeLists.txt index 0a600674db..ba0b337ea1 100644 --- a/Externals/mbedtls/library/CMakeLists.txt +++ b/Externals/mbedtls/library/CMakeLists.txt @@ -189,28 +189,34 @@ endif() if(USE_STATIC_MBEDTLS_LIBRARY) add_library(${mbedcrypto_static_target} STATIC ${src_crypto}) + dolphin_disable_warnings_msvc(${mbedcrypto_static_target}) set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto) target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs}) add_library(${mbedx509_static_target} STATIC ${src_x509}) + dolphin_disable_warnings_msvc(${mbedx509_static_target}) set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509) target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target}) add_library(${mbedtls_static_target} STATIC ${src_tls}) + dolphin_disable_warnings_msvc(${mbedtls_static_target}) set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target}) endif(USE_STATIC_MBEDTLS_LIBRARY) if(USE_SHARED_MBEDTLS_LIBRARY) add_library(${mbedcrypto_target} SHARED ${src_crypto}) + dolphin_disable_warnings_msvc(${mbedcrypto_target}) set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 2.28.0 SOVERSION 7) target_link_libraries(${mbedcrypto_target} PUBLIC ${libs}) add_library(${mbedx509_target} SHARED ${src_x509}) + dolphin_disable_warnings_msvc(${mbedx509_target}) set_target_properties(${mbedx509_target} PROPERTIES VERSION 2.28.0 SOVERSION 1) target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) add_library(${mbedtls_target} SHARED ${src_tls}) + dolphin_disable_warnings_msvc(${mbedtls_target}) set_target_properties(${mbedtls_target} PROPERTIES VERSION 2.28.0 SOVERSION 14) target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) endif(USE_SHARED_MBEDTLS_LIBRARY) diff --git a/Externals/miniupnpc/CMakeLists.txt b/Externals/miniupnpc/CMakeLists.txt index f5d3f2e3ad..602de41c55 100644 --- a/Externals/miniupnpc/CMakeLists.txt +++ b/Externals/miniupnpc/CMakeLists.txt @@ -33,6 +33,7 @@ set(SRCS src/igd_desc_parse.c src/receivedata.c) add_library(miniupnpc STATIC ${SRCS}) +dolphin_disable_warnings_msvc(miniupnpc) target_include_directories(miniupnpc PUBLIC src) add_library(Miniupnpc::miniupnpc ALIAS miniupnpc) diff --git a/Externals/minizip/CMakeLists.txt b/Externals/minizip/CMakeLists.txt index b28e136681..4068cd85bc 100644 --- a/Externals/minizip/CMakeLists.txt +++ b/Externals/minizip/CMakeLists.txt @@ -26,6 +26,7 @@ add_library(minizip STATIC unzip.h zip.h ) +dolphin_disable_warnings_msvc(minizip) if (UNIX) target_sources(minizip PRIVATE diff --git a/Externals/pugixml/CMakeLists.txt b/Externals/pugixml/CMakeLists.txt index 30f06ae21d..11c0990658 100644 --- a/Externals/pugixml/CMakeLists.txt +++ b/Externals/pugixml/CMakeLists.txt @@ -35,6 +35,7 @@ if(BUILD_SHARED_LIBS) else() add_library(pugixml STATIC ${SOURCES}) endif() +dolphin_disable_warnings_msvc(pugixml) set_target_properties(pugixml PROPERTIES VERSION 1.8 SOVERSION 1) get_target_property(PUGIXML_VERSION_STRING pugixml VERSION) diff --git a/Externals/soundtouch/CMakeLists.txt b/Externals/soundtouch/CMakeLists.txt index 74acedfb4f..eefc3a8bba 100644 --- a/Externals/soundtouch/CMakeLists.txt +++ b/Externals/soundtouch/CMakeLists.txt @@ -16,4 +16,5 @@ set(SRCS ) add_library(SoundTouch STATIC ${SRCS}) +dolphin_disable_warnings_msvc(SoundTouch) add_definitions(-w) diff --git a/Externals/xxhash/CMakeLists.txt b/Externals/xxhash/CMakeLists.txt index 8218f801d8..1a3d637387 100644 --- a/Externals/xxhash/CMakeLists.txt +++ b/Externals/xxhash/CMakeLists.txt @@ -1,6 +1,7 @@ project(xxhash C) add_library(xxhash STATIC xxhash.c) +dolphin_disable_warnings_msvc(xxhash) target_include_directories(xxhash PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/Externals/zlib/CMakeLists.txt b/Externals/zlib/CMakeLists.txt index 6f865141a5..da707ea76d 100644 --- a/Externals/zlib/CMakeLists.txt +++ b/Externals/zlib/CMakeLists.txt @@ -86,6 +86,7 @@ set(ZLIB_SRCS ) add_library(z STATIC ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +dolphin_disable_warnings_msvc(z) add_library(ZLIB::ZLIB ALIAS z) target_include_directories(z diff --git a/Externals/zstd/CMakeLists.txt b/Externals/zstd/CMakeLists.txt index 7d9cb1baaf..77932c74e7 100644 --- a/Externals/zstd/CMakeLists.txt +++ b/Externals/zstd/CMakeLists.txt @@ -115,6 +115,7 @@ set(ZSTD_SRCS ) add_library(zstd STATIC ${ZSTD_SRCS} ${ZSTD_PUBLIC_HDRS} ${ZSTD_PRIVATE_HDRS}) +dolphin_disable_warnings_msvc(zstd) add_library(zstd::zstd ALIAS zstd) target_include_directories(zstd From 580c721c8252a6c6657e68f67bfe2cd37b9ba61b Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 22 May 2022 01:19:44 +0200 Subject: [PATCH 086/659] cmake: Don't use PCH with Qt6. --- Source/Core/AudioCommon/CMakeLists.txt | 5 +++++ Source/Core/Common/CMakeLists.txt | 3 +-- Source/Core/Core/CMakeLists.txt | 5 +++++ Source/Core/DiscIO/CMakeLists.txt | 5 +++++ Source/Core/DolphinNoGUI/CMakeLists.txt | 5 +++++ Source/Core/DolphinQt/CMakeLists.txt | 3 +++ Source/Core/DolphinTool/CMakeLists.txt | 5 +++++ Source/Core/InputCommon/CMakeLists.txt | 5 +++++ Source/Core/UICommon/CMakeLists.txt | 5 +++++ Source/Core/UpdaterCommon/CMakeLists.txt | 7 ++++++- Source/Core/VideoBackends/D3D/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/D3D12/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/D3DCommon/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/Null/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/OGL/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/Software/CMakeLists.txt | 5 +++++ Source/Core/VideoBackends/Vulkan/CMakeLists.txt | 5 +++++ Source/Core/VideoCommon/CMakeLists.txt | 5 +++++ Source/Core/WinUpdater/CMakeLists.txt | 5 +++++ 19 files changed, 90 insertions(+), 3 deletions(-) diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index dfa20f6194..b3a9c57b42 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -83,3 +83,8 @@ PRIVATE cubeb SoundTouch FreeSurround) + +if(MSVC) + # Add precompiled header + target_link_libraries(audiocommon PRIVATE use_pch) +endif() diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 287680aeea..52448c9ea9 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -311,8 +311,7 @@ endif() if(MSVC) # Add precompiled header - # it will propergate down to everything that depends on common - target_link_libraries(common PUBLIC use_pch) + target_link_libraries(common PRIVATE use_pch) # We need to disable PCH for this one file, because it's C and our PCH is C++ set_source_files_properties( diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 4063e01562..e9ac274a06 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -702,3 +702,8 @@ if(UNIX) MemoryWatcher.h ) endif() + +if(MSVC) + # Add precompiled header + target_link_libraries(core PRIVATE use_pch) +endif() diff --git a/Source/Core/DiscIO/CMakeLists.txt b/Source/Core/DiscIO/CMakeLists.txt index e9627d0156..68028dbcfc 100644 --- a/Source/Core/DiscIO/CMakeLists.txt +++ b/Source/Core/DiscIO/CMakeLists.txt @@ -77,3 +77,8 @@ PRIVATE pugixml ZLIB::ZLIB ) + +if(MSVC) + # Add precompiled header + target_link_libraries(discio PRIVATE use_pch) +endif() diff --git a/Source/Core/DolphinNoGUI/CMakeLists.txt b/Source/Core/DolphinNoGUI/CMakeLists.txt index 3943582ad2..f21955d809 100644 --- a/Source/Core/DolphinNoGUI/CMakeLists.txt +++ b/Source/Core/DolphinNoGUI/CMakeLists.txt @@ -26,6 +26,11 @@ PRIVATE cpp-optparse ) +if(MSVC) + # Add precompiled header + target_link_libraries(dolphin-nogui PRIVATE use_pch) +endif() + if(USE_DISCORD_PRESENCE) target_compile_definitions(dolphin-nogui PRIVATE -DUSE_DISCORD_PRESENCE) endif() diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 3e19006952..4867d30e9d 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -396,6 +396,9 @@ if (MSVC) # Qt6 requires RTTI remove_cxx_flag_from_target(dolphin-emu "/GR-") target_compile_options(dolphin-emu PRIVATE "/GR") + else() + # Add precompiled header + target_link_libraries(audiocommon PRIVATE use_pch) endif() endif() diff --git a/Source/Core/DolphinTool/CMakeLists.txt b/Source/Core/DolphinTool/CMakeLists.txt index cba3b0218a..5e545225ec 100644 --- a/Source/Core/DolphinTool/CMakeLists.txt +++ b/Source/Core/DolphinTool/CMakeLists.txt @@ -19,5 +19,10 @@ PRIVATE cpp-optparse ) +if(MSVC) + # Add precompiled header + target_link_libraries(dolphin-tool PRIVATE use_pch) +endif() + set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} dolphin-tool) install(TARGETS dolphin-tool RUNTIME DESTINATION ${bindir}) diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index 4f9510d7a5..910d64d8d4 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -205,3 +205,8 @@ if(ENABLE_SDL) message(STATUS "SDL NOT found, disabling SDL input") endif() endif() + +if(MSVC) + # Add precompiled header + target_link_libraries(inputcommon PRIVATE use_pch) +endif() diff --git a/Source/Core/UICommon/CMakeLists.txt b/Source/Core/UICommon/CMakeLists.txt index 73cce4941c..2b7d5bd2a6 100644 --- a/Source/Core/UICommon/CMakeLists.txt +++ b/Source/Core/UICommon/CMakeLists.txt @@ -68,3 +68,8 @@ if(USE_DISCORD_PRESENCE) target_compile_definitions(uicommon PRIVATE -DUSE_DISCORD_PRESENCE) target_link_libraries(uicommon PRIVATE discord-rpc) endif() + +if(MSVC) + # Add precompiled header + target_link_libraries(uicommon PRIVATE use_pch) +endif() diff --git a/Source/Core/UpdaterCommon/CMakeLists.txt b/Source/Core/UpdaterCommon/CMakeLists.txt index e32907da71..c026cd577d 100644 --- a/Source/Core/UpdaterCommon/CMakeLists.txt +++ b/Source/Core/UpdaterCommon/CMakeLists.txt @@ -10,4 +10,9 @@ target_link_libraries(updatercommon PRIVATE ZLIB::ZLIB ed25519 cpp-optparse -) \ No newline at end of file +) + +if(MSVC) + # Add precompiled header + target_link_libraries(updatercommon PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/D3D/CMakeLists.txt b/Source/Core/VideoBackends/D3D/CMakeLists.txt index b8ebb509b9..f296040526 100644 --- a/Source/Core/VideoBackends/D3D/CMakeLists.txt +++ b/Source/Core/VideoBackends/D3D/CMakeLists.txt @@ -29,3 +29,8 @@ PUBLIC videocommon videod3dcommon ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videod3d PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/D3D12/CMakeLists.txt b/Source/Core/VideoBackends/D3D12/CMakeLists.txt index 5b440775c0..16f458e2e9 100644 --- a/Source/Core/VideoBackends/D3D12/CMakeLists.txt +++ b/Source/Core/VideoBackends/D3D12/CMakeLists.txt @@ -35,3 +35,8 @@ PUBLIC videocommon videod3dcommon ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videod3d12 PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt index c3eb521252..e4e586e47a 100644 --- a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt +++ b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt @@ -12,3 +12,8 @@ PUBLIC common videocommon ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videod3dcommon PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/Null/CMakeLists.txt b/Source/Core/VideoBackends/Null/CMakeLists.txt index 24ff04aaf0..e95877323f 100644 --- a/Source/Core/VideoBackends/Null/CMakeLists.txt +++ b/Source/Core/VideoBackends/Null/CMakeLists.txt @@ -17,3 +17,8 @@ PUBLIC common videocommon ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videonull PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/OGL/CMakeLists.txt b/Source/Core/VideoBackends/OGL/CMakeLists.txt index 8b4b27a571..9a9d9caf2d 100644 --- a/Source/Core/VideoBackends/OGL/CMakeLists.txt +++ b/Source/Core/VideoBackends/OGL/CMakeLists.txt @@ -33,3 +33,8 @@ PUBLIC PRIVATE ${X11_LIBRARIES} ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videoogl PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/Software/CMakeLists.txt b/Source/Core/VideoBackends/Software/CMakeLists.txt index 983cd3df3f..752fac48cc 100644 --- a/Source/Core/VideoBackends/Software/CMakeLists.txt +++ b/Source/Core/VideoBackends/Software/CMakeLists.txt @@ -41,3 +41,8 @@ PUBLIC common videocommon ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videosoftware PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoBackends/Vulkan/CMakeLists.txt b/Source/Core/VideoBackends/Vulkan/CMakeLists.txt index 74127f3aba..110733e613 100644 --- a/Source/Core/VideoBackends/Vulkan/CMakeLists.txt +++ b/Source/Core/VideoBackends/Vulkan/CMakeLists.txt @@ -62,3 +62,8 @@ SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV ${CMAKE_SOURCE_DIR}/Externals/glslang ) + +if(MSVC) + # Add precompiled header + target_link_libraries(videovulkan PRIVATE use_pch) +endif() diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index 3504bc63d1..ec8f89c829 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -180,3 +180,8 @@ if(FFmpeg_FOUND) ) endif() endif() + +if(MSVC) + # Add precompiled header + target_link_libraries(videocommon PRIVATE use_pch) +endif() diff --git a/Source/Core/WinUpdater/CMakeLists.txt b/Source/Core/WinUpdater/CMakeLists.txt index d31ef9bacb..a57d039209 100644 --- a/Source/Core/WinUpdater/CMakeLists.txt +++ b/Source/Core/WinUpdater/CMakeLists.txt @@ -12,3 +12,8 @@ target_link_libraries(winupdater PRIVATE ) set_target_properties(winupdater PROPERTIES OUTPUT_NAME "Updater") + +if(MSVC) + # Add precompiled header + target_link_libraries(winupdater PRIVATE use_pch) +endif() From 6a26b0ce8aa8ac96f9b593848c42b93fd982e91d Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sun, 5 Aug 2018 02:03:12 -0700 Subject: [PATCH 087/659] HW: Initial HSP implementation with ARAM expansion --- Source/Core/Common/Logging/Log.h | 1 + Source/Core/Common/Logging/LogManager.cpp | 1 + Source/Core/Core/CMakeLists.txt | 8 +++ Source/Core/Core/Config/MainSettings.cpp | 4 ++ Source/Core/Core/Config/MainSettings.h | 7 ++ Source/Core/Core/HW/DSP.cpp | 22 +++--- Source/Core/Core/HW/HSP/HSP.cpp | 68 +++++++++++++++++++ Source/Core/Core/HW/HSP/HSP.h | 28 ++++++++ Source/Core/Core/HW/HSP/HSP_Device.cpp | 38 +++++++++++ Source/Core/Core/HW/HSP/HSP_Device.h | 40 +++++++++++ .../Core/HW/HSP/HSP_DeviceARAMExpansion.cpp | 48 +++++++++++++ .../Core/HW/HSP/HSP_DeviceARAMExpansion.h | 26 +++++++ Source/Core/Core/HW/HSP/HSP_DeviceNull.cpp | 25 +++++++ Source/Core/Core/HW/HSP/HSP_DeviceNull.h | 19 ++++++ Source/Core/Core/HW/HW.cpp | 7 +- Source/Core/Core/State.cpp | 2 +- Source/Core/DolphinLib.props | 8 +++ 17 files changed, 340 insertions(+), 12 deletions(-) create mode 100644 Source/Core/Core/HW/HSP/HSP.cpp create mode 100644 Source/Core/Core/HW/HSP/HSP.h create mode 100644 Source/Core/Core/HW/HSP/HSP_Device.cpp create mode 100644 Source/Core/Core/HW/HSP/HSP_Device.h create mode 100644 Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp create mode 100644 Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.h create mode 100644 Source/Core/Core/HW/HSP/HSP_DeviceNull.cpp create mode 100644 Source/Core/Core/HW/HSP/HSP_DeviceNull.h diff --git a/Source/Core/Common/Logging/Log.h b/Source/Core/Common/Logging/Log.h index 5a0d2c6e24..86a705e1ea 100644 --- a/Source/Core/Common/Logging/Log.h +++ b/Source/Core/Common/Logging/Log.h @@ -34,6 +34,7 @@ enum class LogType : int GDB_STUB, GPFIFO, HOST_GPU, + HSP, IOS, IOS_DI, IOS_ES, diff --git a/Source/Core/Common/Logging/LogManager.cpp b/Source/Core/Common/Logging/LogManager.cpp index ab795d372a..04078fc06c 100644 --- a/Source/Core/Common/Logging/LogManager.cpp +++ b/Source/Core/Common/Logging/LogManager.cpp @@ -119,6 +119,7 @@ LogManager::LogManager() m_log[LogType::GDB_STUB] = {"GDB_STUB", "GDB Stub"}; m_log[LogType::GPFIFO] = {"GP", "GatherPipe FIFO"}; m_log[LogType::HOST_GPU] = {"Host GPU", "Host GPU"}; + m_log[LogType::HSP] = {"HSP", "High-Speed Port (HSP)"}; m_log[LogType::IOS] = {"IOS", "IOS"}; m_log[LogType::IOS_DI] = {"IOS_DI", "IOS - Drive Interface"}; m_log[LogType::IOS_ES] = {"IOS_ES", "IOS - ETicket Services"}; diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 4063e01562..5f81f3036c 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -220,6 +220,14 @@ add_library(core HW/GCPadEmu.h HW/GPFifo.cpp HW/GPFifo.h + HW/HSP/HSP.cpp + HW/HSP/HSP.h + HW/HSP/HSP_Device.cpp + HW/HSP/HSP_Device.h + HW/HSP/HSP_DeviceARAMExpansion.cpp + HW/HSP/HSP_DeviceARAMExpansion.h + HW/HSP/HSP_DeviceNull.cpp + HW/HSP/HSP_DeviceNull.h HW/HW.cpp HW/HW.h HW/Memmap.cpp diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index 4b4b91f43e..0c749345c7 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -19,6 +19,7 @@ #include "Core/Config/DefaultLocale.h" #include "Core/HW/EXI/EXI.h" #include "Core/HW/EXI/EXI_Device.h" +#include "Core/HW/HSP/HSP_Device.h" #include "Core/HW/Memmap.h" #include "Core/HW/SI/SI_Device.h" #include "Core/PowerPC/PowerPC.h" @@ -179,6 +180,9 @@ const Info MAIN_MEM1_SIZE{{System::Main, "Core", "MEM1Size"}, Memory::MEM1_ const Info MAIN_MEM2_SIZE{{System::Main, "Core", "MEM2Size"}, Memory::MEM2_SIZE_RETAIL}; const Info MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"}, VideoBackendBase::GetDefaultBackendName()}; +const Info MAIN_HSP_DEVICE{{System::Main, "Core", "HSPDevice"}, + HSP::HSPDeviceType::None}; +const Info MAIN_ARAM_EXPANSION_SIZE{{System::Main, "Core", "ARAMExpansionSize"}, 0x400000}; const Info MAIN_GPU_DETERMINISM_MODE{{System::Main, "Core", "GPUDeterminismMode"}, "auto"}; diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index 63b89cbadb..4ed43a79da 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -42,6 +42,11 @@ namespace SerialInterface enum SIDevices : int; } +namespace HSP +{ +enum class HSPDeviceType : int; +} + namespace Config { // Main.Core @@ -110,6 +115,8 @@ extern const Info MAIN_MEM1_SIZE; extern const Info MAIN_MEM2_SIZE; // Should really be part of System::GFX, but again, we're stuck with past mistakes. extern const Info MAIN_GFX_BACKEND; +extern const Info MAIN_HSP_DEVICE; +extern const Info MAIN_ARAM_EXPANSION_SIZE; enum class GPUDeterminismMode { diff --git a/Source/Core/Core/HW/DSP.cpp b/Source/Core/Core/HW/DSP.cpp index e2801339e8..5edc5314a5 100644 --- a/Source/Core/Core/HW/DSP.cpp +++ b/Source/Core/Core/HW/DSP.cpp @@ -33,6 +33,7 @@ #include "Core/CoreTiming.h" #include "Core/DSPEmulator.h" +#include "Core/HW/HSP/HSP.h" #include "Core/HW/MMIO.h" #include "Core/HW/Memmap.h" #include "Core/HW/ProcessorInterface.h" @@ -543,13 +544,11 @@ static void Do_ARAM_DMA() s_arDMA.Cnt.count -= 8; } } - else + else if (!s_ARAM.wii_mode) { - // Assuming no external ARAM installed; returns zeros on out of bounds reads (verified on real - // HW) while (s_arDMA.Cnt.count) { - Memory::Write_U64(0, s_arDMA.MMAddr); + Memory::Write_U64(HSP::Read(s_arDMA.ARAddr), s_arDMA.MMAddr); s_arDMA.MMAddr += 8; s_arDMA.ARAddr += 8; s_arDMA.Cnt.count -= 8; @@ -596,13 +595,16 @@ static void Do_ARAM_DMA() s_arDMA.Cnt.count -= 8; } } - else + else if (!s_ARAM.wii_mode) { - // Assuming no external ARAM installed; writes nothing to ARAM when out of bounds (verified on - // real HW) - s_arDMA.MMAddr += s_arDMA.Cnt.count; - s_arDMA.ARAddr += s_arDMA.Cnt.count; - s_arDMA.Cnt.count = 0; + while (s_arDMA.Cnt.count) + { + HSP::Write(s_arDMA.ARAddr, Memory::Read_U64(s_arDMA.MMAddr)); + + s_arDMA.MMAddr += 8; + s_arDMA.ARAddr += 8; + s_arDMA.Cnt.count -= 8; + } } } } diff --git a/Source/Core/Core/HW/HSP/HSP.cpp b/Source/Core/Core/HW/HSP/HSP.cpp new file mode 100644 index 0000000000..562ff662a3 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP.cpp @@ -0,0 +1,68 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "Core/HW/HSP/HSP.h" + +#include + +#include "Common/ChunkFile.h" +#include "Core/Config/MainSettings.h" +#include "Core/HW/HSP/HSP_Device.h" + +namespace HSP +{ +static std::unique_ptr s_device; + +void Init() +{ + AddDevice(Config::Get(Config::MAIN_HSP_DEVICE)); +} + +void Shutdown() +{ + RemoveDevice(); +} + +u64 Read(u32 address) +{ + DEBUG_LOG_FMT(HSP, "HSP read from 0x{:08x}", address); + if (s_device) + return s_device->Read(address); + return 0; +} + +void Write(u32 address, u64 value) +{ + DEBUG_LOG_FMT(HSP, "HSP write to 0x{:08x}: 0x{:016x}", address, value); + if (s_device) + s_device->Write(address, value); +} + +void DoState(PointerWrap& p) +{ + HSPDeviceType type = s_device->GetDeviceType(); + p.Do(type); + + // If the type doesn't match, switch to the right device type + if (type != s_device->GetDeviceType()) + AddDevice(type); + + s_device->DoState(p); +} + +void AddDevice(std::unique_ptr device) +{ + // Set the new one + s_device = std::move(device); +} + +void AddDevice(const HSPDeviceType device) +{ + AddDevice(HSPDevice_Create(device)); +} + +void RemoveDevice() +{ + s_device.reset(); +} +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP.h b/Source/Core/Core/HW/HSP/HSP.h new file mode 100644 index 0000000000..1e8f4f772d --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP.h @@ -0,0 +1,28 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "Common/CommonTypes.h" + +class PointerWrap; + +namespace HSP +{ +class IHSPDevice; +enum class HSPDeviceType : int; + +void Init(); +void Shutdown(); + +u64 Read(u32 address); +void Write(u32 address, u64 value); + +void DoState(PointerWrap& p); + +void RemoveDevice(); +void AddDevice(std::unique_ptr device); +void AddDevice(HSPDeviceType device); +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_Device.cpp b/Source/Core/Core/HW/HSP/HSP_Device.cpp new file mode 100644 index 0000000000..069fca3753 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_Device.cpp @@ -0,0 +1,38 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "Core/HW/HSP/HSP_Device.h" + +#include + +#include "Core/HW/HSP/HSP_DeviceARAMExpansion.h" +#include "Core/HW/HSP/HSP_DeviceNull.h" + +namespace HSP +{ +IHSPDevice::IHSPDevice(HSPDeviceType device_type) : m_device_type(device_type) +{ +} + +HSPDeviceType IHSPDevice::GetDeviceType() const +{ + return m_device_type; +} + +void IHSPDevice::DoState(PointerWrap& p) +{ +} + +// F A C T O R Y +std::unique_ptr HSPDevice_Create(const HSPDeviceType device) +{ + switch (device) + { + case HSPDeviceType::ARAMExpansion: + return std::make_unique(device); + case HSPDeviceType::None: + default: + return std::make_unique(device); + } +} +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_Device.h b/Source/Core/Core/HW/HSP/HSP_Device.h new file mode 100644 index 0000000000..b9caa21df8 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_Device.h @@ -0,0 +1,40 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "Common/CommonTypes.h" + +class PointerWrap; + +namespace HSP +{ +enum class HSPDeviceType : int +{ + None, + ARAMExpansion, +}; + +class IHSPDevice +{ +public: + explicit IHSPDevice(HSPDeviceType device_type); + virtual ~IHSPDevice() = default; + + HSPDeviceType GetDeviceType() const; + + virtual void Write(u32 address, u64 value) = 0; + virtual u64 Read(u32 address) = 0; + + // Savestate support + virtual void DoState(PointerWrap& p); + +protected: + HSPDeviceType m_device_type; +}; + +std::unique_ptr HSPDevice_Create(HSPDeviceType device); + +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp new file mode 100644 index 0000000000..18d6244c30 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp @@ -0,0 +1,48 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "Core/HW/HSP/HSP_DeviceARAMExpansion.h" + +#include + +#include "Common/ChunkFile.h" +#include "Common/MathUtil.h" +#include "Common/MemoryUtil.h" +#include "Common/Swap.h" + +#include "Core/Config/MainSettings.h" + +namespace HSP +{ +CHSPDevice_ARAMExpansion::CHSPDevice_ARAMExpansion(HSPDeviceType device) : IHSPDevice(device) +{ + m_size = MathUtil::NextPowerOf2(Config::Get(Config::MAIN_ARAM_EXPANSION_SIZE)); + m_mask = m_size - 1; + m_ptr = static_cast(Common::AllocateMemoryPages(m_size)); +} + +CHSPDevice_ARAMExpansion::~CHSPDevice_ARAMExpansion() +{ + Common::FreeMemoryPages(m_ptr, m_size); + m_ptr = nullptr; +} + +u64 CHSPDevice_ARAMExpansion::Read(u32 address) +{ + u64 value; + std::memcpy(&value, &m_ptr[address & m_mask], sizeof(value)); + return Common::swap64(value); +} + +void CHSPDevice_ARAMExpansion::Write(u32 address, u64 value) +{ + value = Common::swap64(value); + std::memcpy(&value, &m_ptr[address & m_mask], sizeof(value)); +} + +void CHSPDevice_ARAMExpansion::DoState(PointerWrap& p) +{ + p.DoArray(m_ptr, m_size); +} + +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.h b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.h new file mode 100644 index 0000000000..8efa766286 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.h @@ -0,0 +1,26 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "Core/HW/HSP/HSP_Device.h" + +namespace HSP +{ +class CHSPDevice_ARAMExpansion : public IHSPDevice +{ +public: + explicit CHSPDevice_ARAMExpansion(HSPDeviceType device); + ~CHSPDevice_ARAMExpansion() override; + + void Write(u32 address, u64 value) override; + u64 Read(u32 address) override; + + void DoState(PointerWrap&) override; + +private: + u32 m_size; + u32 m_mask; + u8* m_ptr = nullptr; +}; +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceNull.cpp b/Source/Core/Core/HW/HSP/HSP_DeviceNull.cpp new file mode 100644 index 0000000000..669f857124 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_DeviceNull.cpp @@ -0,0 +1,25 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "Core/HW/HSP/HSP_DeviceNull.h" + +#include + +#include "Core/HW/HSP/HSP.h" + +namespace HSP +{ +CHSPDevice_Null::CHSPDevice_Null(HSPDeviceType device) : IHSPDevice(device) +{ +} + +u64 CHSPDevice_Null::Read(u32 address) +{ + return 0; +} + +void CHSPDevice_Null::Write(u32 address, u64 value) +{ +} + +} // namespace HSP diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceNull.h b/Source/Core/Core/HW/HSP/HSP_DeviceNull.h new file mode 100644 index 0000000000..afadddd475 --- /dev/null +++ b/Source/Core/Core/HW/HSP/HSP_DeviceNull.h @@ -0,0 +1,19 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "Common/CommonTypes.h" +#include "Core/HW/HSP/HSP_Device.h" + +namespace HSP +{ +class CHSPDevice_Null : public IHSPDevice +{ +public: + explicit CHSPDevice_Null(HSPDeviceType device); + + void Write(u32 address, u64 value) override; + u64 Read(u32 address) override; +}; +} // namespace HSP diff --git a/Source/Core/Core/HW/HW.cpp b/Source/Core/Core/HW/HW.cpp index b927e65d29..9b9251c201 100644 --- a/Source/Core/Core/HW/HW.cpp +++ b/Source/Core/Core/HW/HW.cpp @@ -17,6 +17,7 @@ #include "Core/HW/DVD/DVDInterface.h" #include "Core/HW/EXI/EXI.h" #include "Core/HW/GPFifo.h" +#include "Core/HW/HSP/HSP.h" #include "Core/HW/Memmap.h" #include "Core/HW/ProcessorInterface.h" #include "Core/HW/SI/SI.h" @@ -41,7 +42,8 @@ void Init() SerialInterface::Init(); ProcessorInterface::Init(); ExpansionInterface::Init(); // Needs to be initialized before Memory - Memory::Init(); // Needs to be initialized before AddressSpace + HSP::Init(); + Memory::Init(); // Needs to be initialized before AddressSpace AddressSpace::Init(); DSP::Init(Config::Get(Config::MAIN_DSP_HLE)); DVDInterface::Init(); @@ -68,6 +70,7 @@ void Shutdown() DSP::Shutdown(); AddressSpace::Shutdown(); Memory::Shutdown(); + HSP::Shutdown(); ExpansionInterface::Shutdown(); SerialInterface::Shutdown(); AudioInterface::Shutdown(); @@ -96,6 +99,8 @@ void DoState(PointerWrap& p) p.DoMarker("ExpansionInterface"); AudioInterface::DoState(p); p.DoMarker("AudioInterface"); + HSP::DoState(p); + p.DoMarker("HSP"); if (SConfig::GetInstance().bWii) { diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 35887bcd48..4b79a76d71 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 140; // Last changed in PR 10591 +constexpr u32 STATE_VERSION = 141; // Last changed in PR 8067 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index d4cdb0af4b..ea6c9705dc 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -279,6 +279,10 @@ + + + + @@ -873,6 +877,10 @@ + + + + From 2d50ba0ca27c42485e1cc8934cb9b65ea4f3f829 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 20 May 2022 13:20:09 -0700 Subject: [PATCH 088/659] GameList: Have home/end keys move to first/last row --- Source/Core/DolphinQt/GameList/GameList.cpp | 24 ++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index 5583497435..78c8f7c3d3 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -70,6 +70,28 @@ #include "UICommon/GameFile.h" +namespace +{ +class GameListTableView : public QTableView +{ +public: + explicit GameListTableView(QWidget* parent = nullptr) : QTableView(parent) {} + +protected: + QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override + { + // QTableView::moveCursor handles home by moving to the first column and end by moving to the + // last column, unless control is held in which case it ALSO moves to the first/last row. + // Columns are irrelevant for the game list, so treat the home/end press as if control were + // held. + if (cursorAction == CursorAction::MoveHome || cursorAction == CursorAction::MoveEnd) + return QTableView::moveCursor(cursorAction, modifiers | Qt::ControlModifier); + else + return QTableView::moveCursor(cursorAction, modifiers); + } +}; +} // namespace + GameList::GameList(QWidget* parent) : QStackedWidget(parent), m_model(this) { m_list_proxy = new ListProxyModel(this); @@ -129,7 +151,7 @@ void GameList::PurgeCache() void GameList::MakeListView() { - m_list = new QTableView(this); + m_list = new GameListTableView(this); m_list->setModel(m_list_proxy); m_list->setTabKeyNavigation(false); From 8d0f52032b572bcd63e6da14d3d3ee571c88d08a Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 15 May 2022 23:22:08 +0200 Subject: [PATCH 089/659] IOS/DI: Fake the error 001 read when running DirectoryBlobs or Riivolution-patched games. --- Source/Core/Core/Config/SessionSettings.cpp | 2 ++ Source/Core/Core/Config/SessionSettings.h | 1 + Source/Core/Core/HW/DVD/DVDInterface.cpp | 25 ++++++++++++++ Source/Core/Core/HW/DVD/DVDInterface.h | 4 +++ Source/Core/Core/IOS/DI/DI.cpp | 36 +++++++++++++++++---- 5 files changed, 61 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/Config/SessionSettings.cpp b/Source/Core/Core/Config/SessionSettings.cpp index b2b08677b8..7ccd387360 100644 --- a/Source/Core/Core/Config/SessionSettings.cpp +++ b/Source/Core/Core/Config/SessionSettings.cpp @@ -15,4 +15,6 @@ const Info SESSION_GCI_FOLDER_CURRENT_GAME_ONLY{ {System::Session, "Core", "GCIFolderCurrentGameOnly"}, false}; const Info SESSION_CODE_SYNC_OVERRIDE{{System::Session, "Core", "CheatSyncOverride"}, false}; const Info SESSION_SAVE_DATA_WRITABLE{{System::Session, "Core", "SaveDataWritable"}, true}; +const Info SESSION_SHOULD_FAKE_ERROR_001{{System::Session, "Core", "ShouldFakeError001"}, + false}; } // namespace Config diff --git a/Source/Core/Core/Config/SessionSettings.h b/Source/Core/Core/Config/SessionSettings.h index 835a3b86a7..a81235c22d 100644 --- a/Source/Core/Core/Config/SessionSettings.h +++ b/Source/Core/Core/Config/SessionSettings.h @@ -13,4 +13,5 @@ extern const Info SESSION_LOAD_IPL_DUMP; extern const Info SESSION_GCI_FOLDER_CURRENT_GAME_ONLY; extern const Info SESSION_CODE_SYNC_OVERRIDE; extern const Info SESSION_SAVE_DATA_WRITABLE; +extern const Info SESSION_SHOULD_FAKE_ERROR_001; } // namespace Config diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 338a3b009c..bbd1d27e3e 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -19,6 +19,7 @@ #include "Common/Logging/Log.h" #include "Core/Config/MainSettings.h" +#include "Core/Config/SessionSettings.h" #include "Core/CoreTiming.h" #include "Core/DolphinAnalytics.h" #include "Core/HW/AudioInterface.h" @@ -462,6 +463,14 @@ void SetDisc(std::unique_ptr disc, WARN_LOG_FMT(DVDINTERFACE, "Unknown disc size, guessing {0} bytes", s_disc_end_offset); const DiscIO::BlobReader& blob = disc->GetBlobReader(); + + // DirectoryBlobs (including Riivolution-patched discs) may end up larger than a real physical + // Wii disc, which triggers Error #001. In those cases we manually make the check succeed to + // avoid problems. + const bool should_fake_error_001 = + SConfig::GetInstance().bWii && blob.GetBlobType() == DiscIO::BlobType::DIRECTORY; + Config::SetCurrent(Config::SESSION_SHOULD_FAKE_ERROR_001, should_fake_error_001); + if (!blob.HasFastRandomAccessInBlock() && blob.GetBlockSize() > 0x200000) { OSD::AddMessage("You are running a disc image with a very large block size.", 60000); @@ -1263,6 +1272,22 @@ void PerformDecryptingRead(u32 position, u32 length, u32 output_address, } } +void ForceOutOfBoundsRead(ReplyType reply_type) +{ + INFO_LOG_FMT(DVDINTERFACE, "Forcing an out-of-bounds disc read."); + + if (s_drive_state == DriveState::ReadyNoReadsMade) + SetDriveState(DriveState::Ready); + + SetDriveError(DriveError::BlockOOB); + + // TODO: Needs testing to determine if MINIMUM_COMMAND_LATENCY_US is accurate for this + const DIInterruptType interrupt_type = DIInterruptType::DEINT; + CoreTiming::ScheduleEvent( + MINIMUM_COMMAND_LATENCY_US * (SystemTimers::GetTicksPerSecond() / 1000000), + s_finish_executing_command, PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); +} + void AudioBufferConfig(bool enable_dtk, u8 dtk_buffer_length) { s_enable_dtk = enable_dtk; diff --git a/Source/Core/Core/HW/DVD/DVDInterface.h b/Source/Core/Core/HW/DVD/DVDInterface.h index b7cc321e8b..80dbbc5f1b 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.h +++ b/Source/Core/Core/HW/DVD/DVDInterface.h @@ -134,6 +134,10 @@ bool UpdateRunningGameMetadata(std::optional title_id = {}); void ExecuteCommand(ReplyType reply_type); void PerformDecryptingRead(u32 position, u32 length, u32 output_address, const DiscIO::Partition& partition, ReplyType reply_type); + +// For circumventing Error #001 in DirectoryBlobs, which may have data in the offsets being checked. +void ForceOutOfBoundsRead(ReplyType reply_type); + // Exposed for use by emulated BS2; does not perform any checks on drive state void AudioBufferConfig(bool enable_dtk, u8 dtk_buffer_length); diff --git a/Source/Core/Core/IOS/DI/DI.cpp b/Source/Core/Core/IOS/DI/DI.cpp index a04d18726a..532aea061e 100644 --- a/Source/Core/Core/IOS/DI/DI.cpp +++ b/Source/Core/Core/IOS/DI/DI.cpp @@ -11,6 +11,7 @@ #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Common/MsgHandler.h" +#include "Core/Config/SessionSettings.h" #include "Core/CoreTiming.h" #include "Core/DolphinAnalytics.h" #include "Core/HW/DVD/DVDInterface.h" @@ -132,6 +133,16 @@ std::optional DIDevice::WriteIfFits(const IOCtlRequest& requ } } +namespace +{ +struct DiscRange +{ + u32 start; + u32 end; + bool is_error_001_range; +}; +} // namespace + std::optional DIDevice::StartIOCtl(const IOCtlRequest& request) { if (request.buffer_in_size != 0x20) @@ -315,20 +326,31 @@ std::optional DIDevice::StartIOCtl(const IOCtlRequest& reque // (start, end) as 32-bit offsets // Older IOS versions only accept the first range. Later versions added the extra ranges to // check how the drive responds to out of bounds reads (an error 001 check). - constexpr std::array, 3> valid_ranges = { - std::make_pair(0, 0x14000), // "System area" - std::make_pair(0x460A0000, 0x460A0008), - std::make_pair(0x7ED40000, 0x7ED40008), + constexpr std::array valid_ranges = { + DiscRange{0, 0x14000, false}, // "System area" + DiscRange{0x460A0000, 0x460A0008, true}, + DiscRange{0x7ED40000, 0x7ED40008, true}, }; for (auto range : valid_ranges) { - if (range.first <= position && position <= range.second && range.first <= end && - end <= range.second) + if (range.start <= position && position <= range.end && range.start <= end && + end <= range.end) { DICMDBUF0 = 0xA8000000; DICMDBUF1 = position; DICMDBUF2 = length; - return StartDMATransfer(length, request); + if (range.is_error_001_range && Config::Get(Config::SESSION_SHOULD_FAKE_ERROR_001)) + { + DIMAR = request.buffer_out; + m_last_length = length; + DILENGTH = length; + DVDInterface::ForceOutOfBoundsRead(DVDInterface::ReplyType::IOS); + return {}; + } + else + { + return StartDMATransfer(length, request); + } } } WARN_LOG_FMT(IOS_DI, "DVDLowUnencryptedRead: trying to read from an illegal region!"); From 0531e51e391d3b6348e48448b499b74e564d0334 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sat, 21 May 2022 22:59:04 -0700 Subject: [PATCH 090/659] docs/DSP: Fix "ILLR" typo in Instruction Memory section --- .../GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 0dc521322c..1b8186bdfc 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -46,7 +46,7 @@ % Document front page material \title{\textbf{\Huge GameCube DSP User's Manual}} \author{Reverse-engineered and documented by Duddie \\ \href{mailto:duddie@walla.com}{duddie@walla.com}} -\date{\today\\v0.1.0} +\date{\today\\v0.1.2} % Title formatting commands \newcommand{\OpcodeTitle}[1]{\subsection{#1}\label{instruction:#1}} @@ -258,6 +258,8 @@ The purpose of this documentation is purely academic and it aims at understandin 0.0.6 & 2018.04.13 & BhaaL & Updated register tables, fixed opcode operations \\ \hline 0.0.7 & Mid 2020 & Tilka & Fixed typos and register names, and improved readability. \\ \hline 0.1.0 & 2021.08.21 & Pokechu22 & Added missing instructions, improved documentation of hardware registers, documented additional behaviors, and improved formatting. \\ \hline +0.1.1 & 2022.05.14 & xperia64 & Added tested DSP bootloading transfer size \\ \hline +0.1.2 & 2022.05.21 & Pokechu22 & Fixed ``ILLR'' typo in Instruction Memory section \\ \hline \end{tabular} \end{table} @@ -397,7 +399,7 @@ Instruction Memory (IMEM) is divided into instruction RAM (IRAM) and instruction Exception vectors are located at the top of the RAM and occupy the first 16 words, with 2 words available for each exception (enough for a \Opcode{JMP} instruction for each exception). -There are no DSP instructions that write to IMEM; however, the \texttt{ILLR} family of instructions can read from it. This is sometimes used for jump tables or indexing into a list of pointers (which may point into either IMEM or DMEM). +There are no DSP instructions that write to IMEM; however, the \Opcode{ILRR} family of instructions can read from it. This is sometimes used for jump tables or indexing into a list of pointers (which may point into either IMEM or DMEM). \begin{table}[htb] \centering From 1c4a5d9fc917f6c864ca06aa2f61361a082cf68e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sat, 21 May 2022 18:10:28 -0700 Subject: [PATCH 091/659] GameList: Work around Qt bug regarding clicking in the background not setting the position used by page down/end --- Source/Core/DolphinQt/GameList/GameList.cpp | 29 ++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index 78c8f7c3d3..03bc60e7b2 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -166,12 +166,6 @@ void GameList::MakeListView() // Have 1 pixel of padding above and below the 32 pixel banners. m_list->verticalHeader()->setDefaultSectionSize(32 + 2); - connect(m_list, &QTableView::customContextMenuRequested, this, &GameList::ShowContextMenu); - connect(m_list->selectionModel(), &QItemSelectionModel::selectionChanged, - [this](const QItemSelection&, const QItemSelection&) { - emit SelectionChanged(GetSelectedGame()); - }); - QHeaderView* hor_header = m_list->horizontalHeader(); hor_header->restoreState( @@ -230,6 +224,20 @@ void GameList::MakeListView() hor_header->setSectionsMovable(true); hor_header->setHighlightSections(false); + + // Work around a Qt bug where clicking in the background (below the last game) as the first + // action and then pressing a key (e.g. page down or end) selects the first entry in the list + // instead of performing that key's action. This workaround does not work if there are no games + // when the view first appears, but then games are added (e.g. due to no game folders being + // present, and then the user adding one), but that is an infrequent situation. + m_list->selectRow(0); + m_list->clearSelection(); + + connect(m_list, &QTableView::customContextMenuRequested, this, &GameList::ShowContextMenu); + connect(m_list->selectionModel(), &QItemSelectionModel::selectionChanged, + [this](const QItemSelection&, const QItemSelection&) { + emit SelectionChanged(GetSelectedGame()); + }); } GameList::~GameList() @@ -323,6 +331,15 @@ void GameList::MakeGridView() m_grid->setUniformItemSizes(true); m_grid->setContextMenuPolicy(Qt::CustomContextMenu); m_grid->setFrameStyle(QFrame::NoFrame); + + // Work around a Qt bug where clicking in the background (below the last game) as the first action + // and then pressing a key (e.g. page down or end) selects the first entry in the list instead of + // performing that key's action. This workaround does not work if there are no games when the + // view first appears, but then games are added (e.g. due to no game folders being present, + // and then the user adding one), but that is an infrequent situation. + m_grid->setCurrentIndex(m_grid->indexAt(QPoint(0, 0))); + m_grid->clearSelection(); + connect(m_grid, &QTableView::customContextMenuRequested, this, &GameList::ShowContextMenu); connect(m_grid->selectionModel(), &QItemSelectionModel::selectionChanged, [this](const QItemSelection&, const QItemSelection&) { From f68c3b758ebb9cb5ea2463aa195e345341db7221 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 23 May 2022 02:01:59 +0200 Subject: [PATCH 092/659] Common/Network: Use std::array in IPv4Header. --- Source/Core/Common/Network.cpp | 4 ++-- Source/Core/Common/Network.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index e2fdc3d2d6..2c548347a3 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -102,8 +102,8 @@ IPv4Header::IPv4Header(u16 data_size, u8 ip_proto, const sockaddr_in& from, cons flags_fragment_offset = htons(0x4000); ttl = 0x40; protocol = ip_proto; - std::memcpy(&source_addr, &from.sin_addr, IPV4_ADDR_LEN); - std::memcpy(&destination_addr, &to.sin_addr, IPV4_ADDR_LEN); + std::memcpy(source_addr.data(), &from.sin_addr, IPV4_ADDR_LEN); + std::memcpy(destination_addr.data(), &to.sin_addr, IPV4_ADDR_LEN); header_checksum = htons(ComputeNetworkChecksum(this, Size())); } diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index cd4e27ddc9..a1fcc9ea42 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -58,8 +58,8 @@ struct IPv4Header u8 ttl = 0; u8 protocol = 0; u16 header_checksum = 0; - u8 source_addr[IPV4_ADDR_LEN]{}; - u8 destination_addr[IPV4_ADDR_LEN]{}; + std::array source_addr{}; + std::array destination_addr{}; }; static_assert(sizeof(IPv4Header) == IPv4Header::SIZE); From b18fd3d3ce9d4de87635eb998da02467a1dca67c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 24 May 2022 02:53:03 +0200 Subject: [PATCH 093/659] Core/State: Make memory layout of StateHeader more explicit. --- Source/Core/Core/State.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Source/Core/Core/State.h b/Source/Core/Core/State.h index 03b548df29..0746fe332d 100644 --- a/Source/Core/Core/State.h +++ b/Source/Core/Core/State.h @@ -5,6 +5,7 @@ #pragma once +#include #include #include #include @@ -19,9 +20,15 @@ static const u32 NUM_STATES = 10; struct StateHeader { char gameID[6]; + u16 reserved1; u32 size; + u32 reserved2; double time; }; +constexpr size_t STATE_HEADER_SIZE = sizeof(StateHeader); +static_assert(STATE_HEADER_SIZE == 24); +static_assert(offsetof(StateHeader, size) == 8); +static_assert(offsetof(StateHeader, time) == 16); void Init(); From c34a738b4c7d12d8d72a343ee3c1c46073dd7e38 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 11:33:59 -0700 Subject: [PATCH 094/659] DSPSpy: Add missing jumps to end_of_test Without this, execution continues beyond the end of the function, into the great unknown (probably eventually falling into either code left from a previous test, or the start of the DSP ROM). end_of_test is just an infinite loop to stop executing until the DSP is reset. --- Source/DSPSpy/tests/arith_test.ds | 3 +++ Source/DSPSpy/tests/ld_test.ds | 4 ++-- Source/DSPSpy/tests/neg_test.ds | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/DSPSpy/tests/arith_test.ds b/Source/DSPSpy/tests/arith_test.ds index 96884c6bbc..f93f428b06 100644 --- a/Source/DSPSpy/tests/arith_test.ds +++ b/Source/DSPSpy/tests/arith_test.ds @@ -138,3 +138,6 @@ sub $acc1, $acc0 set16 call send_back ; 20 + +; We're done, DO NOT DELETE THIS LINE +jmp end_of_test diff --git a/Source/DSPSpy/tests/ld_test.ds b/Source/DSPSpy/tests/ld_test.ds index 045680c877..4857b61d3e 100644 --- a/Source/DSPSpy/tests/ld_test.ds +++ b/Source/DSPSpy/tests/ld_test.ds @@ -244,5 +244,5 @@ lri $AX1.L, #0x13 nx'ldnm : $AX0.L, $AX1.L, @$AR0 call send_back ; 20 - - +; We're done, DO NOT DELETE THIS LINE +jmp end_of_test diff --git a/Source/DSPSpy/tests/neg_test.ds b/Source/DSPSpy/tests/neg_test.ds index 57c1610511..63f535bb6a 100644 --- a/Source/DSPSpy/tests/neg_test.ds +++ b/Source/DSPSpy/tests/neg_test.ds @@ -114,4 +114,5 @@ neg $ACC0 set40 call send_back ; 18 - +; We're done, DO NOT DELETE THIS LINE +jmp end_of_test From e7f6e19c615146ef44f1598c5b8f071b7a23786e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 13:49:31 -0700 Subject: [PATCH 095/659] DSPAssembler: Slightly improve readability of AssemblePass This should result in no behavior differences. --- Source/Core/Core/DSP/DSPAssembler.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/DSP/DSPAssembler.cpp b/Source/Core/Core/DSP/DSPAssembler.cpp index 2e6f29939e..48165eb83f 100644 --- a/Source/Core/Core/DSP/DSPAssembler.cpp +++ b/Source/Core/Core/DSP/DSPAssembler.cpp @@ -751,7 +751,7 @@ void DSPAssembler::InitPass(int pass) bool DSPAssembler::AssemblePass(const std::string& text, int pass) { - int disable_text = 0; // modified by Hermes + bool disable_text = false; // modified by Hermes std::istringstream fsrc(text); @@ -781,10 +781,10 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) // modified by Hermes : added // and /* */ for long commentaries if (c == '/') { - if (i < 1023) + if (i + 1 < LINEBUF_SIZE) { if (line[i + 1] == '/') - c = 0x00; + c = '\0'; else if (line[i + 1] == '*') { // toggle comment mode. @@ -794,28 +794,28 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) } else if (c == '*') { - if (i < 1023 && line[i + 1] == '/' && disable_text) + if (i + 1 < LINEBUF_SIZE && line[i + 1] == '/' && disable_text) { - disable_text = 0; - c = 32; - line[i + 1] = 32; + disable_text = false; + c = ' '; + line[i + 1] = ' '; } } // turn text into spaces if disable_text is on (in a comment). - if (disable_text && ((unsigned char)c) > 32) - c = 32; + if (disable_text && ((unsigned char)c) > ' ') + c = ' '; - if (c == 0x0a || c == 0x0d || c == ';') - c = 0x00; - if (c == 0x09) // tabs to spaces + if (c == '\r' || c == '\n' || c == ';') + c = '\0'; + if (c == '\t') // tabs to spaces c = ' '; if (c == '"') upper = !upper; if (upper && c >= 'a' && c <= 'z') // convert to uppercase c = c - 'a' + 'A'; line[i] = c; - if (c == 0) + if (c == '\0') break; // modified by Hermes } char* ptr = line; From 8b52c7315bb75c7268dfa1d23ab50266cb2cd673 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 16:04:57 -0700 Subject: [PATCH 096/659] DSP: Fix assembling x8/x9/xA/xB conditions The assembler upper-cases the mnemonic internally, so it never would match the lower-case x. --- Source/Core/Core/DSP/DSPTables.cpp | 56 +++++++++++++++--------------- Source/DSPSpy/tests/cond_test.ds | 8 ++--- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Source/Core/Core/DSP/DSPTables.cpp b/Source/Core/Core/DSP/DSPTables.cpp index 7f1ab00a6b..9ec8aba5bc 100644 --- a/Source/Core/Core/DSP/DSPTables.cpp +++ b/Source/Core/Core/DSP/DSPTables.cpp @@ -39,10 +39,10 @@ const std::array s_opcodes = {"RETZ", 0x02d5, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if zero {"RETNC", 0x02d6, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if not carry {"RETC", 0x02d7, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if carry - {"RETx8", 0x02d8, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO - {"RETx9", 0x02d9, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO - {"RETxA", 0x02da, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO - {"RETxB", 0x02db, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO + {"RETX8", 0x02d8, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO + {"RETX9", 0x02d9, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO + {"RETXA", 0x02da, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO + {"RETXB", 0x02db, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if TODO {"RETLNZ", 0x02dc, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if logic not zero {"RETLZ", 0x02dd, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if logic zero {"RETO", 0x02de, 0xffff, 1, 0, {}, false, true, false, true, false}, // return if overflow @@ -56,10 +56,10 @@ const std::array s_opcodes = {"RTIZ", 0x02f5, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if zero {"RTINC", 0x02f6, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if not carry {"RTIC", 0x02f7, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if carry - {"RTIx8", 0x02f8, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO - {"RTIx9", 0x02f9, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO - {"RTIxA", 0x02fa, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO - {"RTIxB", 0x02fb, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO + {"RTIX8", 0x02f8, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO + {"RTIX9", 0x02f9, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO + {"RTIXA", 0x02fa, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO + {"RTIXB", 0x02fb, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if TODO {"RTILNZ", 0x02fc, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if logic not zero {"RTILZ", 0x02fd, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if logic zero {"RTIO", 0x02fe, 0xffff, 1, 0, {}, false, true, false, true, false}, // return from interrupt if overflow @@ -73,10 +73,10 @@ const std::array s_opcodes = {"CALLZ", 0x02b5, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if zero {"CALLNC", 0x02b6, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if not carry {"CALLC", 0x02b7, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if carry - {"CALLx8", 0x02b8, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO - {"CALLx9", 0x02b9, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO - {"CALLxA", 0x02ba, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO - {"CALLxB", 0x02bb, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO + {"CALLX8", 0x02b8, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO + {"CALLX9", 0x02b9, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO + {"CALLXA", 0x02ba, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO + {"CALLXB", 0x02bb, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if TODO {"CALLLNZ", 0x02bc, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if logic not zero {"CALLLZ", 0x02bd, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if logic zero {"CALLO", 0x02be, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // call if overflow @@ -90,10 +90,10 @@ const std::array s_opcodes = {"IFZ", 0x0275, 0xffff, 1, 0, {}, false, true, false, true, false}, // if zero {"IFNC", 0x0276, 0xffff, 1, 0, {}, false, true, false, true, false}, // if not carry {"IFC", 0x0277, 0xffff, 1, 0, {}, false, true, false, true, false}, // if carry - {"IFx8", 0x0278, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO - {"IFx9", 0x0279, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO - {"IFxA", 0x027a, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO - {"IFxB", 0x027b, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO + {"IFX8", 0x0278, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO + {"IFX9", 0x0279, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO + {"IFXA", 0x027a, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO + {"IFXB", 0x027b, 0xffff, 1, 0, {}, false, true, false, true, false}, // if TODO {"IFLNZ", 0x027c, 0xffff, 1, 0, {}, false, true, false, true, false}, // if logic not zero {"IFLZ", 0x027d, 0xffff, 1, 0, {}, false, true, false, true, false}, // if logic zero {"IFO", 0x027e, 0xffff, 1, 0, {}, false, true, false, true, false}, // if overflow @@ -107,10 +107,10 @@ const std::array s_opcodes = {"JZ", 0x0295, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if zero {"JNC", 0x0296, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if not carry {"JC", 0x0297, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if carry - {"JMPx8", 0x0298, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO - {"JMPx9", 0x0299, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO - {"JMPxA", 0x029a, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO - {"JMPxB", 0x029b, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO + {"JMPX8", 0x0298, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO + {"JMPX9", 0x0299, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO + {"JMPXA", 0x029a, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO + {"JMPXB", 0x029b, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if TODO {"JLNZ", 0x029c, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if logic not zero {"JLZ", 0x029d, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if logic zero {"JO", 0x029e, 0xffff, 2, 1, {{P_ADDR_I, 2, 1, 0, 0xffff}}, false, true, false, true, false}, // jump if overflow @@ -124,10 +124,10 @@ const std::array s_opcodes = {"JRZ", 0x1705, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if zero {"JRNC", 0x1706, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if not carry {"JRC", 0x1707, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if carry - {"JMPRx8", 0x1708, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO - {"JMPRx9", 0x1709, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO - {"JMPRxA", 0x170a, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO - {"JMPRxB", 0x170b, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO + {"JMPRX8", 0x1708, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO + {"JMPRX9", 0x1709, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO + {"JMPRXA", 0x170a, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO + {"JMPRXB", 0x170b, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if TODO {"JRLNZ", 0x170c, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if logic not zero {"JRLZ", 0x170d, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if logic zero {"JRO", 0x170e, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, false, false}, // jump to $R if overflow @@ -141,10 +141,10 @@ const std::array s_opcodes = {"CALLRZ", 0x1715, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if zero {"CALLRNC", 0x1716, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if not carry {"CALLRC", 0x1717, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if carry - {"CALLRx8", 0x1718, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO - {"CALLRx9", 0x1719, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO - {"CALLRxA", 0x171a, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO - {"CALLRxB", 0x171b, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO + {"CALLRX8", 0x1718, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO + {"CALLRX9", 0x1719, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO + {"CALLRXA", 0x171a, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO + {"CALLRXB", 0x171b, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if TODO {"CALLRLNZ", 0x171c, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if logic not zero {"CALLRLZ", 0x171d, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if logic zero {"CALLRO", 0x171e, 0xff1f, 1, 1, {{P_REG, 1, 0, 5, 0x00e0}}, false, true, false, true, false}, // call $R if overflow diff --git a/Source/DSPSpy/tests/cond_test.ds b/Source/DSPSpy/tests/cond_test.ds index 151f3e3a9a..411fc73c76 100644 --- a/Source/DSPSpy/tests/cond_test.ds +++ b/Source/DSPSpy/tests/cond_test.ds @@ -213,19 +213,19 @@ test_cond: ADDARN $AR0, $IX0 LRI $IX0, #0x0100 - CW 0x0278 ; IFx8 + IFx8 ADDARN $AR0, $IX0 LRI $IX0, #0x0200 - CW 0x0279 ; IFx9 + IFx9 ADDARN $AR0, $IX0 LRI $IX0, #0x0400 - CW 0x027A ; IFxA + IFxA ADDARN $AR0, $IX0 LRI $IX0, #0x0800 - CW 0x027B ; IFxB + IFxB ADDARN $AR0, $IX0 LRI $IX0, #0x1000 From b06d38389bddf9fc5962aecbe1b31292a71b80a5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 16:51:46 -0700 Subject: [PATCH 097/659] DSP: Remove some magic numbers for register IDs --- Source/Core/Core/DSP/DSPAssembler.cpp | 30 +++++------ Source/Core/Core/DSP/DSPCore.h | 16 ++++-- Source/Core/Core/DSP/DSPTables.cpp | 74 +++++++++++++-------------- Source/Core/Core/DSP/DSPTables.h | 31 +++++------ 4 files changed, 80 insertions(+), 71 deletions(-) diff --git a/Source/Core/Core/DSP/DSPAssembler.cpp b/Source/Core/Core/DSP/DSPAssembler.cpp index 48165eb83f..67077f8675 100644 --- a/Source/Core/Core/DSP/DSPAssembler.cpp +++ b/Source/Core/Core/DSP/DSPAssembler.cpp @@ -22,6 +22,7 @@ #include "Common/FileUtil.h" #include "Common/StringUtil.h" +#include "Core/DSP/DSPCore.h" #include "Core/DSP/DSPDisassembler.h" #include "Core/DSP/DSPTables.h" @@ -483,17 +484,15 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t if ((opc->params[i].type & P_REG) && (par[i].type & P_REG)) { - // Just a temp. Should be replaced with more purposeful vars. - int value; - // modified by Hermes: test the register range - switch ((unsigned)opc->params[i].type) + switch (opc->params[i].type) { case P_REG18: case P_REG19: case P_REG1A: case P_REG1C: - value = (opc->params[i].type >> 8) & 31; + { + int value = (opc->params[i].type >> 8) & 0x1f; if ((int)par[i].val < value || (int)par[i].val > value + get_mask_shifted_down(opc->params[i].mask)) { @@ -504,8 +503,9 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t ShowError(AssemblerError::InvalidRegister); } break; + } case P_PRG: - if ((int)par[i].val < 0 || (int)par[i].val > 0x3) + if ((int)par[i].val < DSP_REG_AR0 || (int)par[i].val > DSP_REG_AR3) { if (type == OpcodeType::Extension) fprintf(stderr, "(ext) "); @@ -515,12 +515,12 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t } break; case P_ACC: - if ((int)par[i].val < 0x20 || (int)par[i].val > 0x21) + if ((int)par[i].val < DSP_REG_ACC0_FULL || (int)par[i].val > DSP_REG_ACC1_FULL) { if (type == OpcodeType::Extension) fprintf(stderr, "(ext) "); - if (par[i].val >= 0x1e && par[i].val <= 0x1f) + if (par[i].val >= DSP_REG_ACM0 && par[i].val <= DSP_REG_ACM1) { fprintf(stderr, "%i : %s ", m_code_line, m_cur_line.c_str()); fprintf(stderr, @@ -529,7 +529,7 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t (par[i].val & 1), (par[i].val & 1), m_code_line, current_param, static_cast(type)); } - else if (par[i].val >= 0x1c && par[i].val <= 0x1d) + else if (par[i].val >= DSP_REG_ACL0 && par[i].val <= DSP_REG_ACL1) { fprintf( stderr, @@ -543,19 +543,19 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t } break; case P_ACCM: - if ((int)par[i].val < 0x1e || (int)par[i].val > 0x1f) + if ((int)par[i].val < DSP_REG_ACM0 || (int)par[i].val > DSP_REG_ACM1) { if (type == OpcodeType::Extension) fprintf(stderr, "(ext) "); - if (par[i].val >= 0x1c && par[i].val <= 0x1d) + if (par[i].val >= DSP_REG_ACL0 && par[i].val <= DSP_REG_ACL1) { fprintf( stderr, "WARNING: $ACL%d register used instead of $ACM%d register Line: %d Param: %zu\n", (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); } - else if (par[i].val >= 0x20 && par[i].val <= 0x21) + else if (par[i].val >= DSP_REG_ACC0_FULL && par[i].val <= DSP_REG_ACC1_FULL) { fprintf( stderr, @@ -570,12 +570,12 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t break; case P_ACCL: - if ((int)par[i].val < 0x1c || (int)par[i].val > 0x1d) + if ((int)par[i].val < DSP_REG_ACL0 || (int)par[i].val > DSP_REG_ACL1) { if (type == OpcodeType::Extension) fprintf(stderr, "(ext) "); - if (par[i].val >= 0x1e && par[i].val <= 0x1f) + if (par[i].val >= DSP_REG_ACM0 && par[i].val <= DSP_REG_ACM1) { fprintf(stderr, "%s ", m_cur_line.c_str()); fprintf( @@ -583,7 +583,7 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t "WARNING: $ACM%d register used instead of $ACL%d register Line: %d Param: %zu\n", (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); } - else if (par[i].val >= 0x20 && par[i].val <= 0x21) + else if (par[i].val >= DSP_REG_ACC0_FULL && par[i].val <= DSP_REG_ACC1_FULL) { fprintf(stderr, "%s ", m_cur_line.c_str()); fprintf( diff --git a/Source/Core/Core/DSP/DSPCore.h b/Source/Core/Core/DSP/DSPCore.h index c61ac3940e..4c293fecf7 100644 --- a/Source/Core/Core/DSP/DSPCore.h +++ b/Source/Core/Core/DSP/DSPCore.h @@ -122,15 +122,23 @@ enum : int DSP_REG_AXH1 = 0x1b, // Accumulator (global) - DSP_REG_ACC0 = 0x1c, - DSP_REG_ACC1 = 0x1d, - DSP_REG_ACL0 = 0x1c, // Low accumulator DSP_REG_ACL1 = 0x1d, DSP_REG_ACM0 = 0x1e, // Mid accumulator DSP_REG_ACM1 = 0x1f, DSP_REG_ACH0 = 0x10, // Sign extended 8 bit register 0 - DSP_REG_ACH1 = 0x11 // Sign extended 8 bit register 1 + DSP_REG_ACH1 = 0x11, // Sign extended 8 bit register 1 +}; + +enum : int +{ + // Magic values used by DSPTables.h + // These do not correspond to real registers like above, but instead combined versions of the + // registers. + DSP_REG_ACC0_FULL = 0x20, + DSP_REG_ACC1_FULL = 0x21, + DSP_REG_AX0_FULL = 0x22, + DSP_REG_AX1_FULL = 0x23, }; // Hardware registers address diff --git a/Source/Core/Core/DSP/DSPTables.cpp b/Source/Core/Core/DSP/DSPTables.cpp index 9ec8aba5bc..5b93beea8e 100644 --- a/Source/Core/Core/DSP/DSPTables.cpp +++ b/Source/Core/Core/DSP/DSPTables.cpp @@ -13,7 +13,7 @@ #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" -#include "Core/DSP/Interpreter/DSPIntTables.h" +#include "Core/DSP/DSPCore.h" namespace DSP { @@ -451,44 +451,44 @@ const std::array pdlabels = const std::array regnames = {{ - {0x00, "AR0", "Addr Reg 00",}, - {0x01, "AR1", "Addr Reg 01",}, - {0x02, "AR2", "Addr Reg 02",}, - {0x03, "AR3", "Addr Reg 03",}, - {0x04, "IX0", "Index Reg 0",}, - {0x05, "IX1", "Index Reg 1",}, - {0x06, "IX2", "Index Reg 2",}, - {0x07, "IX3", "Index Reg 3",}, - {0x08, "WR0", "Wrapping Register 0",}, - {0x09, "WR1", "Wrapping Register 1",}, - {0x0a, "WR2", "Wrapping Register 2",}, - {0x0b, "WR3", "Wrapping Register 3",}, - {0x0c, "ST0", "Call stack",}, - {0x0d, "ST1", "Data stack",}, - {0x0e, "ST2", "Loop addr stack",}, - {0x0f, "ST3", "Loop counter stack",}, - {0x10, "AC0.H", "Accu High 0",}, - {0x11, "AC1.H", "Accu High 1",}, - {0x12, "CR", "Config Register",}, - {0x13, "SR", "Special Register",}, - {0x14, "PROD.L", "Prod L",}, - {0x15, "PROD.M1", "Prod M1",}, - {0x16, "PROD.H", "Prod H",}, - {0x17, "PROD.M2", "Prod M2",}, - {0x18, "AX0.L", "Extra Accu L 0",}, - {0x19, "AX1.L", "Extra Accu L 1",}, - {0x1a, "AX0.H", "Extra Accu H 0",}, - {0x1b, "AX1.H", "Extra Accu H 1",}, - {0x1c, "AC0.L", "Accu Low 0",}, - {0x1d, "AC1.L", "Accu Low 1",}, - {0x1e, "AC0.M", "Accu Mid 0",}, - {0x1f, "AC1.M", "Accu Mid 1",}, + {DSP_REG_AR0, "AR0", "Addr Reg 00",}, + {DSP_REG_AR1, "AR1", "Addr Reg 01",}, + {DSP_REG_AR2, "AR2", "Addr Reg 02",}, + {DSP_REG_AR3, "AR3", "Addr Reg 03",}, + {DSP_REG_IX0, "IX0", "Index Reg 0",}, + {DSP_REG_IX1, "IX1", "Index Reg 1",}, + {DSP_REG_IX2, "IX2", "Index Reg 2",}, + {DSP_REG_IX3, "IX3", "Index Reg 3",}, + {DSP_REG_WR0, "WR0", "Wrapping Register 0",}, + {DSP_REG_WR1, "WR1", "Wrapping Register 1",}, + {DSP_REG_WR2, "WR2", "Wrapping Register 2",}, + {DSP_REG_WR3, "WR3", "Wrapping Register 3",}, + {DSP_REG_ST0, "ST0", "Call stack",}, + {DSP_REG_ST1, "ST1", "Data stack",}, + {DSP_REG_ST2, "ST2", "Loop addr stack",}, + {DSP_REG_ST3, "ST3", "Loop counter stack",}, + {DSP_REG_ACH0, "AC0.H", "Accu High 0",}, + {DSP_REG_ACH1, "AC1.H", "Accu High 1",}, + {DSP_REG_CR, "CR", "Config Register",}, + {DSP_REG_SR, "SR", "Special Register",}, + {DSP_REG_PRODL, "PROD.L", "Prod L",}, + {DSP_REG_PRODM, "PROD.M1", "Prod M1",}, + {DSP_REG_PRODH, "PROD.H", "Prod H",}, + {DSP_REG_PRODM2, "PROD.M2", "Prod M2",}, + {DSP_REG_AXL0, "AX0.L", "Extra Accu L 0",}, + {DSP_REG_AXL1, "AX1.L", "Extra Accu L 1",}, + {DSP_REG_AXH0, "AX0.H", "Extra Accu H 0",}, + {DSP_REG_AXH1, "AX1.H", "Extra Accu H 1",}, + {DSP_REG_ACL0, "AC0.L", "Accu Low 0",}, + {DSP_REG_ACL1, "AC1.L", "Accu Low 1",}, + {DSP_REG_ACM0, "AC0.M", "Accu Mid 0",}, + {DSP_REG_ACM1, "AC1.M", "Accu Mid 1",}, // To resolve combined register names. - {0x20, "ACC0", "Accu Full 0",}, - {0x21, "ACC1", "Accu Full 1",}, - {0x22, "AX0", "Extra Accu 0",}, - {0x23, "AX1", "Extra Accu 1",}, + {DSP_REG_ACC0_FULL, "ACC0", "Accu Full 0",}, + {DSP_REG_ACC1_FULL, "ACC1", "Accu Full 1",}, + {DSP_REG_AX0_FULL, "AX0", "Extra Accu 0",}, + {DSP_REG_AX1_FULL, "AX1", "Extra Accu 1",}, }}; // clang-format on diff --git a/Source/Core/Core/DSP/DSPTables.h b/Source/Core/Core/DSP/DSPTables.h index 2dead9094e..e2a90d8e7f 100644 --- a/Source/Core/Core/DSP/DSPTables.h +++ b/Source/Core/Core/DSP/DSPTables.h @@ -11,6 +11,7 @@ #include #include "Core/DSP/DSPCommon.h" +#include "Core/DSP/DSPCore.h" namespace DSP { @@ -31,23 +32,23 @@ enum partype_t P_ADDR_I = 0x0005, P_ADDR_D = 0x0006, P_REG = 0x8000, - P_REG04 = P_REG | 0x0400, // IX - P_REG08 = P_REG | 0x0800, - P_REG18 = P_REG | 0x1800, - P_REGM18 = P_REG | 0x1810, // used in multiply instructions - P_REG19 = P_REG | 0x1900, - P_REGM19 = P_REG | 0x1910, // used in multiply instructions - P_REG1A = P_REG | 0x1a80, + P_REG04 = P_REG | DSP_REG_IX0 << 8, + P_REG08 = P_REG | DSP_REG_WR0 << 8, + P_REG18 = P_REG | DSP_REG_AXL0 << 8, + P_REGM18 = P_REG | DSP_REG_AXL0 << 8 | 0x10, // used in multiply instructions + P_REG19 = P_REG | DSP_REG_AXL1 << 8, + P_REGM19 = P_REG | DSP_REG_AXL1 << 8 | 0x10, // used in multiply instructions + P_REG1A = P_REG | DSP_REG_AXH0 << 8 | 0x80, // P_ACC = P_REG | 0x1c10, // used for global accum (gcdsptool's value) - P_ACCL = P_REG | 0x1c00, // used for low part of accum - P_REG1C = P_REG | 0x1c10, // gcdsptool calls this P_ACCLM - P_ACCM = P_REG | 0x1e00, // used for mid part of accum + P_ACCL = P_REG | DSP_REG_ACL0 << 8, // used for low part of accum + P_REG1C = P_REG | DSP_REG_ACL0 << 8 | 0x10, // gcdsptool calls this P_ACCLM + P_ACCM = P_REG | DSP_REG_ACM0 << 8, // used for mid part of accum // The following are not in gcdsptool - P_ACCM_D = P_REG | 0x1e80, - P_ACC = P_REG | 0x2000, // used for full accum. - P_ACCH = P_REG | 0x1000, // used for high part of accum - P_ACC_D = P_REG | 0x2080, - P_AX = P_REG | 0x2200, + P_ACCM_D = P_REG | DSP_REG_ACM0 << 8 | 0x80, + P_ACC = P_REG | DSP_REG_ACC0_FULL << 8, // used for full accum. + P_ACCH = P_REG | DSP_REG_ACH0 << 8, // used for high part of accum + P_ACC_D = P_REG | DSP_REG_ACC0_FULL << 8 | 0x80, + P_AX = P_REG | DSP_REG_AX0_FULL << 8, P_REGS_MASK = 0x03f80, // gcdsptool's value = 0x01f80 P_REF = P_REG | 0x4000, P_PRG = P_REF | P_REG, From db3d457e5f4b37b9271407db920362e5d37d9a94 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 17:04:27 -0700 Subject: [PATCH 098/659] DSPDisassembler: Remove redundant definition of CW CW is used as a fallback to write a full instruction as hex, but we already declare it in DSPTables.h for the assembler. --- Source/Core/Core/DSP/DSPDisassembler.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/Core/Core/DSP/DSPDisassembler.cpp b/Source/Core/Core/DSP/DSPDisassembler.cpp index ea78d237a6..01817c0780 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.cpp +++ b/Source/Core/Core/DSP/DSPDisassembler.cpp @@ -152,10 +152,8 @@ bool DSPDisassembler::DisassembleOpcode(const u16* binbuf, u16* pc, std::string& // Find main opcode const DSPOPCTemplate* opc = FindOpInfoByOpcode(op1); - const DSPOPCTemplate fake_op = {"CW", 0x0000, 0x0000, 1, 1, {{P_VAL, 2, 0, 0, 0xffff}}, - false, false, false, false, false}; if (!opc) - opc = &fake_op; + opc = &cw; bool is_extended = false; bool is_only_7_bit_ext = false; From bd3173e344912d0b2031c46407e2f18cf6a059fd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 23 May 2022 14:10:49 -0700 Subject: [PATCH 099/659] DSPAssembler: Rework errors and warnings Among other things, this trims trailing newline characters. Before (on windows) the \r would corrupt the output and make them very hard to understand (as the error message would be drawn over the code line, but part of the code line would peek out from behind it). --- Source/Core/Core/DSP/DSPAssembler.cpp | 248 ++++++++++++++------------ Source/Core/Core/DSP/DSPAssembler.h | 26 ++- Source/Core/Core/DSP/DSPCodeUtil.cpp | 8 +- 3 files changed, 156 insertions(+), 126 deletions(-) diff --git a/Source/Core/Core/DSP/DSPAssembler.cpp b/Source/Core/Core/DSP/DSPAssembler.cpp index 67077f8675..ed181b7a3c 100644 --- a/Source/Core/Core/DSP/DSPAssembler.cpp +++ b/Source/Core/Core/DSP/DSPAssembler.cpp @@ -26,6 +26,42 @@ #include "Core/DSP/DSPDisassembler.h" #include "Core/DSP/DSPTables.h" +template <> +struct fmt::formatter +{ + constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); } + template + auto format(const DSP::DSPAssembler::LocationContext& loc, FormatContext& ctx) const + { + // Trim trailing newlines + // TODO: Ideally, we shouldn't be getting any newlines at all here, but + // DSPTool uses File::ReadFileToString, which opens the file in binary mode, + // so we get \r endings on Windows. This leads to bad results when printing the string. + std::string trimmed_line = loc.line_text; + // while (trimmed_line.ends_with('\r') || trimmed_line.ends_with('\n')) + while (!trimmed_line.empty() && (trimmed_line.back() == '\r' || trimmed_line.back() == '\n')) + trimmed_line.pop_back(); + + auto out = fmt::format_to(ctx.out(), "At line {}", loc.line_num); + + if (loc.included_file_path.has_value()) + out = fmt::format_to(out, " of included file {}", loc.included_file_path.value()); + + if (loc.opcode_type.has_value()) + { + if (loc.opcode_type.value() == DSP::DSPAssembler::OpcodeType::Primary) + out = fmt::format_to(out, ", main opcode"); + else if (loc.opcode_type.value() == DSP::DSPAssembler::OpcodeType::Extension) + out = fmt::format_to(out, ", extension opcode"); + + if (loc.opcode_param_number.has_value()) + out = fmt::format_to(out, " parameter {}", loc.opcode_param_number.value()); + } + + return fmt::format_to(out, ":\n{}", trimmed_line); + } +}; + namespace DSP { static const char* err_string[] = {"", @@ -88,31 +124,39 @@ bool DSPAssembler::Assemble(const std::string& text, std::vector& code, return true; } -void DSPAssembler::ShowError(AssemblerError err_code, const char* extra_info) +void DSPAssembler::ShowError(AssemblerError err_code) { if (!m_settings.force) m_failed = true; - std::string error = fmt::format("{} : {} ", m_code_line, m_cur_line); - if (!extra_info) - extra_info = "-"; - - const char* const error_string = err_string[static_cast(err_code)]; - - if (m_current_param == 0) - { - error += fmt::format("ERROR: {} Line: {} : {}\n", error_string, m_code_line, extra_info); - } - else - { - error += fmt::format("ERROR: {} Line: {} Param: {} : {}\n", error_string, m_code_line, - m_current_param, extra_info); - } - - m_last_error_str = std::move(error); + m_last_error_str = + fmt::format("{}\nERROR: {}\n\n", m_location, err_string[static_cast(err_code)]); + fmt::print(stderr, "{}", m_last_error_str); m_last_error = err_code; } +template +void DSPAssembler::ShowError(AssemblerError err_code, fmt::format_string format, + Args&&... args) +{ + if (!m_settings.force) + m_failed = true; + + const auto msg = fmt::format(format, std::forward(args)...); + + m_last_error_str = fmt::format("{}\nERROR: {}: {}\n\n", m_location, + err_string[static_cast(err_code)], msg); + fmt::print(stderr, "{}", m_last_error_str); + m_last_error = err_code; +} + +template +void DSPAssembler::ShowWarning(fmt::format_string format, Args&&... args) +{ + const auto msg = fmt::format(format, std::forward(args)...); + fmt::print(stderr, "{}\nWARNING: {}\n\n", m_location, msg); +} + static char* skip_spaces(char* ptr) { while (*ptr == ' ') @@ -147,7 +191,7 @@ s32 DSPAssembler::ParseValue(const char* str) if (ptr[i] >= '0' && ptr[i] <= '9') val += ptr[i] - '0'; else - ShowError(AssemblerError::IncorrectDecimal, str); + ShowError(AssemblerError::IncorrectDecimal, "{}", str); } } else @@ -165,7 +209,7 @@ s32 DSPAssembler::ParseValue(const char* str) else if (ptr[i] >= '0' && ptr[i] <= '9') val += (ptr[i] - '0'); else - ShowError(AssemblerError::IncorrectHex, str); + ShowError(AssemblerError::IncorrectHex, "{}", str); } break; case '\'': // binary @@ -175,7 +219,7 @@ s32 DSPAssembler::ParseValue(const char* str) if (ptr[i] >= '0' && ptr[i] <= '1') val += ptr[i] - '0'; else - ShowError(AssemblerError::IncorrectBinary, str); + ShowError(AssemblerError::IncorrectBinary, "{}", str); } break; default: @@ -196,7 +240,7 @@ s32 DSPAssembler::ParseValue(const char* str) if (ptr[i] >= '0' && ptr[i] <= '9') val += ptr[i] - '0'; else - ShowError(AssemblerError::IncorrectDecimal, str); + ShowError(AssemblerError::IncorrectDecimal, "{}", str); } } else // Everything else is a label. @@ -206,7 +250,7 @@ s32 DSPAssembler::ParseValue(const char* str) return *value; if (m_cur_pass == 2) - ShowError(AssemblerError::UnknownLabel, str); + ShowError(AssemblerError::UnknownLabel, "{}", str); } } if (negative) @@ -332,10 +376,10 @@ u32 DSPAssembler::ParseExpression(const char* ptr) val = ParseExpression(d_buffer) - ParseExpression(pbuf + 1); if (val < 0) { + ShowWarning("Number Underflow: {}", val); val = 0x10000 + (val & 0xffff); // ATTENTION: avoid a terrible bug!!! number cannot write with '-' in sprintf - fprintf(stderr, "WARNING: Number Underflow at Line: %d \n", m_code_line); } sprintf(d_buffer, "%d", val); } @@ -472,7 +516,7 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t { for (size_t i = 0; i < count; i++) { - const size_t current_param = i + 1; // just for display. + m_location.opcode_param_number = i + 1; if (opc->params[i].type != par[i].type || (par[i].type & P_REG)) { if (par[i].type == P_VAL && @@ -496,10 +540,6 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t if ((int)par[i].val < value || (int)par[i].val > value + get_mask_shifted_down(opc->params[i].mask)) { - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); - - fprintf(stderr, "%s (param %zu)", m_cur_line.c_str(), current_param); ShowError(AssemblerError::InvalidRegister); } break; @@ -507,34 +547,19 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t case P_PRG: if ((int)par[i].val < DSP_REG_AR0 || (int)par[i].val > DSP_REG_AR3) { - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); - - fprintf(stderr, "%s (param %zu)", m_cur_line.c_str(), current_param); ShowError(AssemblerError::InvalidRegister); } break; case P_ACC: if ((int)par[i].val < DSP_REG_ACC0_FULL || (int)par[i].val > DSP_REG_ACC1_FULL) { - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); - if (par[i].val >= DSP_REG_ACM0 && par[i].val <= DSP_REG_ACM1) { - fprintf(stderr, "%i : %s ", m_code_line, m_cur_line.c_str()); - fprintf(stderr, - "WARNING: $ACM%d register used instead of $ACC%d register Line: %d " - "Param: %zu Ext: %d\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param, - static_cast(type)); + ShowWarning("$ACM{0} register used instead of $ACC{0} register", (par[i].val & 1)); } else if (par[i].val >= DSP_REG_ACL0 && par[i].val <= DSP_REG_ACL1) { - fprintf( - stderr, - "WARNING: $ACL%d register used instead of $ACC%d register Line: %d Param: %zu\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); + ShowWarning("$ACL{0} register used instead of $ACC{0} register", (par[i].val & 1)); } else { @@ -545,22 +570,13 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t case P_ACCM: if ((int)par[i].val < DSP_REG_ACM0 || (int)par[i].val > DSP_REG_ACM1) { - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); - if (par[i].val >= DSP_REG_ACL0 && par[i].val <= DSP_REG_ACL1) { - fprintf( - stderr, - "WARNING: $ACL%d register used instead of $ACM%d register Line: %d Param: %zu\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); + ShowWarning("$ACL{0} register used instead of $ACCM{0} register", (par[i].val & 1)); } else if (par[i].val >= DSP_REG_ACC0_FULL && par[i].val <= DSP_REG_ACC1_FULL) { - fprintf( - stderr, - "WARNING: $ACC%d register used instead of $ACM%d register Line: %d Param: %zu\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); + ShowWarning("$ACC{0} register used instead of $ACM{0} register", (par[i].val & 1)); } else { @@ -572,24 +588,13 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t case P_ACCL: if ((int)par[i].val < DSP_REG_ACL0 || (int)par[i].val > DSP_REG_ACL1) { - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); - if (par[i].val >= DSP_REG_ACM0 && par[i].val <= DSP_REG_ACM1) { - fprintf(stderr, "%s ", m_cur_line.c_str()); - fprintf( - stderr, - "WARNING: $ACM%d register used instead of $ACL%d register Line: %d Param: %zu\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); + ShowWarning("$ACM{0} register used instead of $ACL{0} register", (par[i].val & 1)); } else if (par[i].val >= DSP_REG_ACC0_FULL && par[i].val <= DSP_REG_ACC1_FULL) { - fprintf(stderr, "%s ", m_cur_line.c_str()); - fprintf( - stderr, - "WARNING: $ACC%d register used instead of $ACL%d register Line: %d Param: %zu\n", - (par[i].val & 1), (par[i].val & 1), m_code_line, current_param); + ShowWarning("$ACC{0} register used instead of $ACL{0} register", (par[i].val & 1)); } else { @@ -604,23 +609,15 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t switch (par[i].type & (P_REG | 7)) { case P_REG: - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); ShowError(AssemblerError::ExpectedParamReg); break; case P_MEM: - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); ShowError(AssemblerError::ExpectedParamMem); break; case P_VAL: - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); ShowError(AssemblerError::ExpectedParamVal); break; case P_IMM: - if (type == OpcodeType::Extension) - fprintf(stderr, "(ext) "); ShowError(AssemblerError::ExpectedParamImm); break; } @@ -634,40 +631,49 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t unsigned int valueu = 0xffff & ~(value >> 1); if ((int)par[i].val < 0) { - if (value == 7) // value 7 por sbclr/sbset + if (value == 7) // value 7 for sbclr/sbset { - fprintf(stderr, "Value must be from 0x0 to 0x%x\n", value); - ShowError(AssemblerError::NumberOutOfRange); + ShowError(AssemblerError::NumberOutOfRange, "Value must be from 0x0 to {:#x}, was {:#x}", + value, (int)par[i].val); } else if (opc->params[i].type == P_MEM) { if (value < 256) - fprintf(stderr, "Address value must be from 0x%x to 0x%x\n", valueu, (value >> 1)); + { + ShowError(AssemblerError::NumberOutOfRange, + "Address value must be from {:#x} to {:#x}, was {:#x}", valueu, (value >> 1), + (int)par[i].val); + } else - fprintf(stderr, "Address value must be from 0x0 to 0x%x\n", value); - - ShowError(AssemblerError::NumberOutOfRange); + { + ShowError(AssemblerError::NumberOutOfRange, + "Address value must be from 0x0 to {:#x}, was {:#x}", value, (int)par[i].val); + } } else if ((int)par[i].val < -((value >> 1) + 1)) { if (value < 128) - fprintf(stderr, "Value must be from -0x%x to 0x%x, is %i\n", (value >> 1) + 1, - value >> 1, par[i].val); + { + ShowError(AssemblerError::NumberOutOfRange, + "Value must be from {:#x} to {:#x}, was {:#x}", -((value >> 1) + 1), + value >> 1, (int)par[i].val); + } else - fprintf(stderr, "Value must be from -0x%x to 0x%x or 0x0 to 0x%x, is %i\n", - (value >> 1) + 1, value >> 1, value, par[i].val); - - ShowError(AssemblerError::NumberOutOfRange); + { + ShowError(AssemblerError::NumberOutOfRange, + "Value must be from {:#x} to {:#x} or 0x0 to {:#x}, was {:#x}", + -((value >> 1) + 1), value >> 1, value, (int)par[i].val); + } } } else { - if (value == 7) // value 7 por sbclr/sbset + if (value == 7) // value 7 for sbclr/sbset { if (par[i].val > (unsigned)value) { - fprintf(stderr, "Value must be from 0x%x to 0x%x, is %i\n", valueu, value, par[i].val); - ShowError(AssemblerError::NumberOutOfRange); + ShowError(AssemblerError::NumberOutOfRange, + "Value must be from {:#x} to {:#x}, was {:#x}\n", valueu, value, par[i].val); } } else if (opc->params[i].type == P_MEM) @@ -678,11 +684,17 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t (par[i].val < valueu || par[i].val > (unsigned)0xffff)) { if (value < 256) - fprintf(stderr, "Address value must be from 0x%x to 0x%x, is %04x\n", valueu, value, - par[i].val); + { + ShowError(AssemblerError::NumberOutOfRange, + "Address value must be from {:#x} to {:#x}, was {:04x}\n", valueu, value, + par[i].val); + } else - fprintf(stderr, "Address value must be minor of 0x%x\n", value + 1); - ShowError(AssemblerError::NumberOutOfRange); + { + ShowError(AssemblerError::NumberOutOfRange, + "Address value must be less than {:#x}, was {:04x}\n", value + 1, + par[i].val); + } } } else @@ -692,18 +704,23 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t if (par[i].val > (unsigned)value) { if (value < 64) - fprintf(stderr, "Value must be from -0x%x to 0x%x, is %i\n", (value + 1), value, - par[i].val); + { + ShowError(AssemblerError::NumberOutOfRange, + "Value must be from {:#x} to {:#x}, was {:#x}\n", -(value + 1), value, + par[i].val); + } else - fprintf(stderr, "Value must be minor of 0x%x, is %i\n", value + 1, par[i].val); - ShowError(AssemblerError::NumberOutOfRange); + { + ShowError(AssemblerError::NumberOutOfRange, + "Value must be less than {:#x}, was {:#x}\n", value + 1, par[i].val); + } } } } continue; } } - m_current_param = 0; + m_location.opcode_param_number = std::nullopt; return true; } @@ -755,7 +772,7 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) std::istringstream fsrc(text); - m_code_line = 0; + m_location.line_num = 0; m_cur_pass = pass; #define LINEBUF_SIZE 1024 @@ -767,8 +784,8 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) if (fsrc.fail()) break; - m_cur_line = line; - m_code_line++; + m_location.line_text = line; + m_location.line_num++; param_t params[10] = {{0, P_NONE, nullptr}}; param_t params_ext[10] = {{0, P_NONE, nullptr}}; @@ -905,23 +922,22 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) { if (params[0].type == P_STR) { - std::string include_file_path; - const u32 this_code_line = m_code_line; + const auto old_location = m_location; if (m_include_dir.empty()) { - include_file_path = params[0].str; + m_location.included_file_path = params[0].str; } else { - include_file_path = m_include_dir + '/' + params[0].str; + m_location.included_file_path = m_include_dir + '/' + params[0].str; } std::string included_text; - File::ReadFileToString(include_file_path, included_text); + File::ReadFileToString(m_location.included_file_path.value(), included_text); AssemblePass(included_text, pass); - m_code_line = this_code_line; + m_location = old_location; } else { @@ -959,9 +975,8 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) { if (m_cur_addr > params[0].val) { - const std::string msg = fmt::format("WARNPC at 0x{:04x}, expected 0x{:04x} or less", - m_cur_addr, params[0].val); - ShowError(AssemblerError::PCOutOfRange, msg.c_str()); + ShowError(AssemblerError::PCOutOfRange, "WARNPC at 0x{:04x}, expected 0x{:04x} or less", + m_cur_addr, params[0].val); } } else @@ -987,6 +1002,7 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) continue; } + m_location.opcode_type = OpcodeType::Primary; const DSPOPCTemplate* opc = FindOpcode(opcode, params_count, OpcodeType::Primary); if (!opc) opc = &cw; @@ -997,6 +1013,7 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) const DSPOPCTemplate* opc_ext = nullptr; // Check for opcode extensions. + m_location.opcode_type = OpcodeType::Extension; if (opc->extended) { if (opcode_ext) @@ -1016,6 +1033,7 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass) if (params_count_ext) ShowError(AssemblerError::ExtensionParamsOnNonExtendableOpcode); } + m_location.opcode_type = std::nullopt; if (pass == 2) { diff --git a/Source/Core/Core/DSP/DSPAssembler.h b/Source/Core/Core/DSP/DSPAssembler.h index 4c1cdbcd94..29ccaeb557 100644 --- a/Source/Core/Core/DSP/DSPAssembler.h +++ b/Source/Core/Core/DSP/DSPAssembler.h @@ -6,9 +6,13 @@ #include #include +#include #include +#include #include +#include + #include "Common/CommonTypes.h" #include "Core/DSP/DSPDisassembler.h" @@ -85,6 +89,17 @@ private: Extension }; + struct LocationContext + { + u32 line_num = 0; + std::string line_text; + std::optional opcode_type; + std::optional opcode_param_number; + std::optional included_file_path; + }; + + friend struct ::fmt::formatter; + // Utility functions s32 ParseValue(const char* str); u32 ParseExpression(const char* ptr); @@ -94,7 +109,11 @@ private: void InitPass(int pass); bool AssemblePass(const std::string& text, int pass); - void ShowError(AssemblerError err_code, const char* extra_info = nullptr); + void ShowError(AssemblerError err_code); + template + void ShowError(AssemblerError err_code, fmt::format_string format, Args&&... args); + template + void ShowWarning(fmt::format_string format, Args&&... args); char* FindBrackets(char* src, char* dst); const DSPOPCTemplate* FindOpcode(std::string name, size_t par_count, OpcodeType type); @@ -104,7 +123,6 @@ private: std::vector m_output_buffer; std::string m_include_dir; - std::string m_cur_line; u32 m_cur_addr = 0; int m_total_size = 0; @@ -112,7 +130,6 @@ private: LabelMap m_labels; - u32 m_code_line = 0; bool m_failed = false; std::string m_last_error_str; AssemblerError m_last_error = AssemblerError::OK; @@ -122,7 +139,8 @@ private: segment_t m_cur_segment = SEGMENT_CODE; u32 m_segment_addr[SEGMENT_MAX] = {}; - int m_current_param = 0; const AssemblerSettings m_settings; + + LocationContext m_location; }; } // namespace DSP diff --git a/Source/Core/Core/DSP/DSPCodeUtil.cpp b/Source/Core/Core/DSP/DSPCodeUtil.cpp index 98e8c44d59..9a33edc9ba 100644 --- a/Source/Core/Core/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/DSP/DSPCodeUtil.cpp @@ -35,13 +35,7 @@ bool Assemble(const std::string& text, std::vector& code, bool force) // TODO: fix the terrible api of the assembler. DSPAssembler assembler(settings); - if (!assembler.Assemble(text, code)) - { - std::cerr << assembler.GetErrorString() << std::endl; - return false; - } - - return true; + return assembler.Assemble(text, code); } bool Disassemble(const std::vector& code, bool line_numbers, std::string& text) From de3b817767865ead656621cff8edd9132e135815 Mon Sep 17 00:00:00 2001 From: nolrinale Date: Tue, 24 May 2022 12:04:24 +0200 Subject: [PATCH 100/659] GameDB: Enabled Single Core Mode for PSO EP1&2 and EP3 improving online stability --- Data/Sys/GameSettings/GPO.ini | 1 + Data/Sys/GameSettings/GPS.ini | 1 + 2 files changed, 2 insertions(+) diff --git a/Data/Sys/GameSettings/GPO.ini b/Data/Sys/GameSettings/GPO.ini index e7d71c1197..dfd0b58cd3 100644 --- a/Data/Sys/GameSettings/GPO.ini +++ b/Data/Sys/GameSettings/GPO.ini @@ -2,6 +2,7 @@ [Core] # Values set here will override the main Dolphin settings. +CPUThread = False [OnLoad] # Add memory patches to be loaded once on boot here. diff --git a/Data/Sys/GameSettings/GPS.ini b/Data/Sys/GameSettings/GPS.ini index 9b89e96b6f..77feb1691d 100644 --- a/Data/Sys/GameSettings/GPS.ini +++ b/Data/Sys/GameSettings/GPS.ini @@ -2,6 +2,7 @@ [Core] # Values set here will override the main Dolphin settings. +CPUThread = False [OnLoad] # Add memory patches to be loaded once on boot here. From ea9b0bff08dab1df92c9aca2da3e748942d85955 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 24 May 2022 14:43:46 -0700 Subject: [PATCH 101/659] NetPlay: Delete NetPlayClient::GetPlayerList It's been unused since DolphinWX was removed in 44b22c90df9c05d18a34667dc41e8d05af24683f. Prior to that, it was used in Source/Core/DolphinWX/NetPlay/NetWindow.cpp. But the new equivalent in Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp uses NetPlayClient::GetPlayers instead. Stringifying (or creating a table, as is done now) should be done by the UI in any case. --- Source/Core/Core/NetPlayClient.cpp | 43 ------------------------------ Source/Core/Core/NetPlayClient.h | 1 - 2 files changed, 44 deletions(-) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index 75f02fa7f8..20c05ce4cc 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -1587,49 +1587,6 @@ void NetPlayClient::ThreadFunc() return; } -// called from ---GUI--- thread -void NetPlayClient::GetPlayerList(std::string& list, std::vector& pid_list) -{ - std::lock_guard lkp(m_crit.players); - - std::ostringstream ss; - - for (const auto& entry : m_players) - { - const Player& player = entry.second; - ss << player.name << "[" << static_cast(player.pid) << "] : " << player.revision << " | " - << GetPlayerMappingString(player.pid, m_pad_map, m_gba_config, m_wiimote_map) << " |\n"; - - ss << "Ping: " << player.ping << "ms\n"; - ss << "Status: "; - - switch (player.game_status) - { - case SyncIdentifierComparison::SameGame: - ss << "ready"; - break; - - case SyncIdentifierComparison::DifferentVersion: - ss << "wrong game version"; - break; - - case SyncIdentifierComparison::DifferentGame: - ss << "game missing"; - break; - - default: - ss << "unknown"; - break; - } - - ss << "\n\n"; - - pid_list.push_back(player.pid); - } - - list = ss.str(); -} - // called from ---GUI--- thread std::vector NetPlayClient::GetPlayers() { diff --git a/Source/Core/Core/NetPlayClient.h b/Source/Core/Core/NetPlayClient.h index 684d1a2616..dc96ac388b 100644 --- a/Source/Core/Core/NetPlayClient.h +++ b/Source/Core/Core/NetPlayClient.h @@ -111,7 +111,6 @@ public: const std::string& name, const NetTraversalConfig& traversal_config); ~NetPlayClient(); - void GetPlayerList(std::string& list, std::vector& pid_list); std::vector GetPlayers(); const NetSettings& GetNetSettings() const; From 2341ff00ab3484360de03e5dc1c43dbe522f361f Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 20 May 2022 22:25:33 -0700 Subject: [PATCH 102/659] NetPlay: Make messages about non-matching games clearer --- Source/Core/Core/SyncIdentifier.h | 7 ++- .../Core/DolphinQt/NetPlay/NetPlayDialog.cpp | 33 ++++++++--- Source/Core/UICommon/GameFile.cpp | 58 ++++++++++++++----- 3 files changed, 73 insertions(+), 25 deletions(-) diff --git a/Source/Core/Core/SyncIdentifier.h b/Source/Core/Core/SyncIdentifier.h index 7175f073c4..a144eb58e1 100644 --- a/Source/Core/Core/SyncIdentifier.h +++ b/Source/Core/Core/SyncIdentifier.h @@ -34,10 +34,15 @@ struct SyncIdentifier bool operator!=(const SyncIdentifier& s) const { return !operator==(s); } }; +// The order of entries in this enum matters, as the lowest value is +// treated as the "best" available option. enum class SyncIdentifierComparison { SameGame, - DifferentVersion, + DifferentHash, + DifferentDiscNumber, + DifferentRevision, + DifferentRegion, DifferentGame, Unknown, }; diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index 02f7497b82..4a297acea3 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -611,25 +611,42 @@ void NetPlayDialog::UpdateGUI() {tr("Player"), tr("Game Status"), tr("Ping"), tr("Mapping"), tr("Revision")}); m_players_list->setRowCount(m_player_count); - static const std::map player_status{ - {NetPlay::SyncIdentifierComparison::SameGame, tr("OK")}, - {NetPlay::SyncIdentifierComparison::DifferentVersion, tr("Wrong Version")}, - {NetPlay::SyncIdentifierComparison::DifferentGame, tr("Not Found")}, - }; + static const std::map> + player_status{ + {NetPlay::SyncIdentifierComparison::SameGame, {tr("OK"), tr("OK")}}, + {NetPlay::SyncIdentifierComparison::DifferentHash, + {tr("Wrong hash"), + tr("Game file has a different hash; right-click it, select Properties, switch to the " + "Verify tab, and select Verify Integrity to check the hash")}}, + {NetPlay::SyncIdentifierComparison::DifferentDiscNumber, + {tr("Wrong disc number"), tr("Game has a different disc number")}}, + {NetPlay::SyncIdentifierComparison::DifferentRevision, + {tr("Wrong revision"), tr("Game has a different revision")}}, + {NetPlay::SyncIdentifierComparison::DifferentRegion, + {tr("Wrong region"), tr("Game region does not match")}}, + {NetPlay::SyncIdentifierComparison::DifferentGame, + {tr("Not found"), tr("No matching game was found")}}, + }; for (int i = 0; i < m_player_count; i++) { const auto* p = players[i]; auto* name_item = new QTableWidgetItem(QString::fromStdString(p->name)); - auto* status_item = new QTableWidgetItem(player_status.count(p->game_status) ? - player_status.at(p->game_status) : - QStringLiteral("?")); + name_item->setToolTip(name_item->text()); + const auto& status_info = player_status.count(p->game_status) ? + player_status.at(p->game_status) : + std::make_pair(QStringLiteral("?"), QStringLiteral("?")); + auto* status_item = new QTableWidgetItem(status_info.first); + status_item->setToolTip(status_info.second); auto* ping_item = new QTableWidgetItem(QStringLiteral("%1 ms").arg(p->ping)); + ping_item->setToolTip(ping_item->text()); auto* mapping_item = new QTableWidgetItem(QString::fromStdString(NetPlay::GetPlayerMappingString( p->pid, client->GetPadMapping(), client->GetGBAConfig(), client->GetWiimoteMapping()))); + mapping_item->setToolTip(mapping_item->text()); auto* revision_item = new QTableWidgetItem(QString::fromStdString(p->revision)); + revision_item->setToolTip(revision_item->text()); for (auto* item : {name_item, status_item, ping_item, mapping_item, revision_item}) { diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index d87fb9d168..96628af087 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -720,31 +720,57 @@ GameFile::CompareSyncIdentifier(const NetPlay::SyncIdentifier& sync_identifier) if ((is_elf_or_dol ? m_file_size : 0) != sync_identifier.dol_elf_size) return NetPlay::SyncIdentifierComparison::DifferentGame; - const auto trim = [](const std::string& str, size_t n) { - return std::string_view(str.data(), std::min(n, str.size())); - }; - - if (trim(m_game_id, 3) != trim(sync_identifier.game_id, 3)) + if (m_is_datel_disc != sync_identifier.is_datel) return NetPlay::SyncIdentifierComparison::DifferentGame; - if (m_disc_number != sync_identifier.disc_number || m_is_datel_disc != sync_identifier.is_datel) + if (m_game_id.size() != sync_identifier.game_id.size()) return NetPlay::SyncIdentifierComparison::DifferentGame; - const NetPlay::SyncIdentifierComparison mismatch_result = - is_elf_or_dol || m_is_datel_disc ? NetPlay::SyncIdentifierComparison::DifferentGame : - NetPlay::SyncIdentifierComparison::DifferentVersion; - - if (m_game_id != sync_identifier.game_id) + if (!is_elf_or_dol && !m_is_datel_disc && m_game_id.size() >= 4 && m_game_id.size() <= 6) { - const bool game_id_is_title_id = m_game_id.size() > 6 || sync_identifier.game_id.size() > 6; - return game_id_is_title_id ? NetPlay::SyncIdentifierComparison::DifferentGame : mismatch_result; + // This is a game ID, following specific rules which we can use to give clearer information to + // the user. + + // If the first 3 characters don't match, then these are probably different games. + // (There are exceptions; in particular Japanese-region games sometimes use a different ID; + // for instance, GOYE69, GOYP69, and GGIJ13 are used by GoldenEye: Rogue Agent.) + if (std::string_view(&m_game_id[0], 3) != std::string_view(&sync_identifier.game_id[0], 3)) + return NetPlay::SyncIdentifierComparison::DifferentGame; + + // If the first 3 characters match but the region doesn't match, reject it as such. + if (m_game_id[3] != sync_identifier.game_id[3]) + return NetPlay::SyncIdentifierComparison::DifferentRegion; + + // If the maker code is present, and doesn't match between the two but the main ID does, + // these might be different revisions of the same game (e.g. a rerelease with a different + // publisher), which we should treat as a different revision. + if (std::string_view(&m_game_id[4]) != std::string_view(&sync_identifier.game_id[4])) + return NetPlay::SyncIdentifierComparison::DifferentRevision; + } + else + { + // Numeric title ID or another generated ID that does not follow the rules above + if (m_game_id != sync_identifier.game_id) + return NetPlay::SyncIdentifierComparison::DifferentGame; } if (m_revision != sync_identifier.revision) - return mismatch_result; + return NetPlay::SyncIdentifierComparison::DifferentRevision; - return GetSyncHash() == sync_identifier.sync_hash ? NetPlay::SyncIdentifierComparison::SameGame : - mismatch_result; + if (m_disc_number != sync_identifier.disc_number) + return NetPlay::SyncIdentifierComparison::DifferentDiscNumber; + + if (GetSyncHash() != sync_identifier.sync_hash) + { + // Most Datel titles re-use the same game ID (GNHE5d, with that lowercase D, or DTLX01). + // So if the hash differs, then it's probably a different game even if the game ID matches. + if (m_is_datel_disc) + return NetPlay::SyncIdentifierComparison::DifferentGame; + else + return NetPlay::SyncIdentifierComparison::DifferentHash; + } + + return NetPlay::SyncIdentifierComparison::SameGame; } std::string GameFile::GetWiiFSPath() const From f6b9acccfc66794cfc718355e777aa34914e881c Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Tue, 17 May 2022 22:29:05 -0700 Subject: [PATCH 103/659] Common: Refactor PointerWrap --- Source/Core/Common/ChunkFile.h | 51 ++++++++++--------- Source/Core/Core/CoreTiming.cpp | 6 +-- Source/Core/Core/DSP/DSPCore.cpp | 2 +- Source/Core/Core/HW/DSPHLE/DSPHLE.cpp | 4 +- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 5 +- Source/Core/Core/HW/DSPLLE/DSPLLE.cpp | 4 +- Source/Core/Core/HW/GBACore.cpp | 13 +++-- Source/Core/Core/HW/Memmap.cpp | 2 +- Source/Core/Core/HW/Wiimote.cpp | 2 +- .../Core/HW/WiimoteEmu/EmuSubroutines.cpp | 2 +- .../HW/WiimoteEmu/Extension/Extension.cpp | 2 +- Source/Core/Core/IOS/FS/HostBackend/FS.cpp | 2 +- Source/Core/Core/IOS/IOS.cpp | 2 +- Source/Core/Core/IOS/Network/Socket.cpp | 3 +- Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp | 2 +- Source/Core/Core/IOS/USB/Bluetooth/BTEmu.cpp | 4 +- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 14 ++--- Source/Core/Core/IOS/USB/Bluetooth/BTStub.cpp | 2 +- Source/Core/Core/IOS/USB/Host.cpp | 2 +- Source/Core/Core/IOS/USB/OH0/OH0.cpp | 2 +- Source/Core/Core/PowerPC/JitInterface.cpp | 2 +- Source/Core/Core/PowerPC/PowerPC.cpp | 2 +- Source/Core/Core/State.cpp | 26 +++++----- Source/Core/UICommon/GameFileCache.cpp | 14 ++--- Source/Core/VideoCommon/BoundingBox.cpp | 2 +- Source/Core/VideoCommon/CPMemory.cpp | 2 +- Source/Core/VideoCommon/Fifo.cpp | 2 +- Source/Core/VideoCommon/FrameDump.cpp | 2 +- .../Core/VideoCommon/FramebufferManager.cpp | 2 +- Source/Core/VideoCommon/FreeLookCamera.cpp | 6 +-- .../VideoCommon/GeometryShaderManager.cpp | 2 +- .../Core/VideoCommon/PixelShaderManager.cpp | 2 +- Source/Core/VideoCommon/RenderBase.cpp | 2 +- Source/Core/VideoCommon/TextureCacheBase.cpp | 10 ++-- Source/Core/VideoCommon/VertexManagerBase.cpp | 2 +- .../Core/VideoCommon/VertexShaderManager.cpp | 2 +- Source/Core/VideoCommon/VideoState.cpp | 6 +-- 38 files changed, 108 insertions(+), 106 deletions(-) diff --git a/Source/Core/Common/ChunkFile.h b/Source/Core/Common/ChunkFile.h index 9fd785459e..919d0defa6 100644 --- a/Source/Core/Common/ChunkFile.h +++ b/Source/Core/Common/ChunkFile.h @@ -40,32 +40,37 @@ class PointerWrap public: enum Mode { - MODE_READ = 1, // load - MODE_WRITE, // save - MODE_MEASURE, // calculate size - MODE_VERIFY, // compare + MODE_READ, + MODE_WRITE, + MODE_MEASURE, + MODE_VERIFY, }; private: u8** m_ptr_current; u8* m_ptr_end; - Mode mode; + Mode m_mode; public: - PointerWrap(u8** ptr, size_t size, Mode mode_) - : m_ptr_current(ptr), m_ptr_end(*ptr + size), mode(mode_) + PointerWrap(u8** ptr, size_t size, Mode mode) + : m_ptr_current(ptr), m_ptr_end(*ptr + size), m_mode(mode) { } - void SetMode(Mode mode_) { mode = mode_; } - Mode GetMode() const { return mode; } + void SetMeasureMode() { m_mode = Mode::MODE_MEASURE; } + void SetVerifyMode() { m_mode = Mode::MODE_VERIFY; } + bool IsReadMode() const { return m_mode == Mode::MODE_READ; } + bool IsWriteMode() const { return m_mode == Mode::MODE_WRITE; } + bool IsMeasureMode() const { return m_mode == Mode::MODE_MEASURE; } + bool IsVerifyMode() const { return m_mode == Mode::MODE_VERIFY; } + template void Do(std::map& x) { u32 count = (u32)x.size(); Do(count); - switch (mode) + switch (m_mode) { case MODE_READ: for (x.clear(); count != 0; --count) @@ -95,7 +100,7 @@ public: u32 count = (u32)x.size(); Do(count); - switch (mode) + switch (m_mode) { case MODE_READ: for (x.clear(); count != 0; --count) @@ -154,7 +159,7 @@ public: bool present = x.has_value(); Do(present); - switch (mode) + switch (m_mode) { case MODE_READ: if (present) @@ -216,10 +221,10 @@ public: Do(count); u8* current = *m_ptr_current; *m_ptr_current += count; - if (mode != MODE_MEASURE && *m_ptr_current > m_ptr_end) + if (!IsMeasureMode() && *m_ptr_current > m_ptr_end) { // trying to read/write past the end of the buffer, prevent this - mode = MODE_MEASURE; + SetMeasureMode(); } return current; } @@ -228,7 +233,7 @@ public: { bool s = flag.IsSet(); Do(s); - if (mode == MODE_READ) + if (IsReadMode()) flag.Set(s); } @@ -237,7 +242,7 @@ public: { T temp = atomic.load(std::memory_order_relaxed); Do(temp); - if (mode == MODE_READ) + if (IsReadMode()) atomic.store(temp, std::memory_order_relaxed); } @@ -267,7 +272,7 @@ public: Do(stable); - if (mode == MODE_READ) + if (IsReadMode()) x = stable != 0; } @@ -278,7 +283,7 @@ public: // much range ptrdiff_t offset = x - base; Do(offset); - if (mode == MODE_READ) + if (IsReadMode()) { x = base + offset; } @@ -289,13 +294,13 @@ public: u32 cookie = arbitraryNumber; Do(cookie); - if (mode == PointerWrap::MODE_READ && cookie != arbitraryNumber) + if (IsReadMode() && cookie != arbitraryNumber) { PanicAlertFmtT( "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:#x}). Aborting " "savestate load...", prevName, cookie, cookie, arbitraryNumber, arbitraryNumber); - mode = PointerWrap::MODE_MEASURE; + SetMeasureMode(); } } @@ -330,13 +335,13 @@ private: DOLPHIN_FORCE_INLINE void DoVoid(void* data, u32 size) { - if (mode != MODE_MEASURE && (*m_ptr_current + size) > m_ptr_end) + if (!IsMeasureMode() && (*m_ptr_current + size) > m_ptr_end) { // trying to read/write past the end of the buffer, prevent this - mode = MODE_MEASURE; + SetMeasureMode(); } - switch (mode) + switch (m_mode) { case MODE_READ: memcpy(data, *m_ptr_current, size); diff --git a/Source/Core/Core/CoreTiming.cpp b/Source/Core/Core/CoreTiming.cpp index 8f07510588..74247e442c 100644 --- a/Source/Core/Core/CoreTiming.cpp +++ b/Source/Core/Core/CoreTiming.cpp @@ -192,11 +192,11 @@ void DoState(PointerWrap& p) // order (or at all) every time. // so, we savestate the event's type's name, and derive ev.type from that when loading. std::string name; - if (pw.GetMode() != PointerWrap::MODE_READ) + if (!pw.IsReadMode()) name = *ev.type->name; pw.Do(name); - if (pw.GetMode() == PointerWrap::MODE_READ) + if (pw.IsReadMode()) { auto itr = s_event_types.find(name); if (itr != s_event_types.end()) @@ -217,7 +217,7 @@ void DoState(PointerWrap& p) // When loading from a save state, we must assume the Event order is random and meaningless. // The exact layout of the heap in memory is implementation defined, therefore it is platform // and library version specific. - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) std::make_heap(s_event_queue.begin(), s_event_queue.end(), std::greater()); } diff --git a/Source/Core/Core/DSP/DSPCore.cpp b/Source/Core/Core/DSP/DSPCore.cpp index acef7e507a..e20d570fcc 100644 --- a/Source/Core/Core/DSP/DSPCore.cpp +++ b/Source/Core/Core/DSP/DSPCore.cpp @@ -398,7 +398,7 @@ void SDSP::DoState(PointerWrap& p) Common::WriteProtectMemory(iram, DSP_IRAM_BYTE_SIZE, false); // TODO: This uses the wrong endianness (producing bad disassembly) // and a bogus byte count (producing bad hashes) - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) Host::CodeLoaded(m_dsp_core, reinterpret_cast(iram), DSP_IRAM_BYTE_SIZE); p.DoArray(dram, DSP_DRAM_SIZE); } diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp index 10ab940314..1176568d7b 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp @@ -95,11 +95,11 @@ void DSPHLE::DoState(PointerWrap& p) { bool is_hle = true; p.Do(is_hle); - if (!is_hle && p.GetMode() == PointerWrap::MODE_READ) + if (!is_hle && p.IsReadMode()) { Core::DisplayMessage("State is incompatible with current DSP engine. Aborting load state.", 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index bede5130c3..ce6b8f8a1a 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -91,7 +91,7 @@ void CMailHandler::Halt(bool _Halt) void CMailHandler::DoState(PointerWrap& p) { - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { Clear(); int sz = 0; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index f1f716390a..ee64a96659 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -747,15 +747,14 @@ void AXUCode::DoAXState(PointerWrap& p) auto old_checksum = m_coeffs_checksum; p.Do(m_coeffs_checksum); - if (p.GetMode() == PointerWrap::MODE_READ && m_coeffs_checksum && - old_checksum != m_coeffs_checksum) + if (p.IsReadMode() && m_coeffs_checksum && old_checksum != m_coeffs_checksum) { if (!LoadResamplingCoefficients(true, *m_coeffs_checksum)) { Core::DisplayMessage("Could not find the DSP polyphase resampling coefficients used by the " "savestate. Aborting load state.", 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } } diff --git a/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp index ebe529bfe7..c555ff4b9a 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp @@ -42,11 +42,11 @@ void DSPLLE::DoState(PointerWrap& p) { bool is_hle = false; p.Do(is_hle); - if (is_hle && p.GetMode() == PointerWrap::MODE_READ) + if (is_hle && p.IsReadMode()) { Core::DisplayMessage("State is incompatible with current DSP engine. Aborting load state.", 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } m_dsp_core.DoState(p); diff --git a/Source/Core/Core/HW/GBACore.cpp b/Source/Core/Core/HW/GBACore.cpp index 13eb74b720..f755345807 100644 --- a/Source/Core/Core/HW/GBACore.cpp +++ b/Source/Core/Core/HW/GBACore.cpp @@ -651,7 +651,7 @@ void Core::DoState(PointerWrap& p) { ::Core::DisplayMessage(fmt::format("GBA{} core not started. Aborting.", m_device_number + 1), 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } @@ -662,14 +662,13 @@ void Core::DoState(PointerWrap& p) auto old_title = m_game_title; p.Do(m_game_title); - if (p.GetMode() == PointerWrap::MODE_READ && - (has_rom != !m_rom_path.empty() || - (has_rom && (old_hash != m_rom_hash || old_title != m_game_title)))) + if (p.IsReadMode() && (has_rom != !m_rom_path.empty() || + (has_rom && (old_hash != m_rom_hash || old_title != m_game_title)))) { ::Core::DisplayMessage( fmt::format("Incompatible ROM state in GBA{}. Aborting load state.", m_device_number + 1), 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } @@ -684,14 +683,14 @@ void Core::DoState(PointerWrap& p) std::vector core_state; core_state.resize(m_core->stateSize(m_core)); - if (p.GetMode() == PointerWrap::MODE_WRITE || p.GetMode() == PointerWrap::MODE_VERIFY) + if (p.IsWriteMode() || p.IsVerifyMode()) { m_core->saveState(m_core, core_state.data()); } p.Do(core_state); - if (p.GetMode() == PointerWrap::MODE_READ && m_core->stateSize(m_core) == core_state.size()) + if (p.IsReadMode() && m_core->stateSize(m_core) == core_state.size()) { m_core->loadState(m_core, core_state.data()); if (auto host = m_host.lock()) diff --git a/Source/Core/Core/HW/Memmap.cpp b/Source/Core/Core/HW/Memmap.cpp index 8f98ffd7b5..4f2aaa1a5d 100644 --- a/Source/Core/Core/HW/Memmap.cpp +++ b/Source/Core/Core/HW/Memmap.cpp @@ -428,7 +428,7 @@ void DoState(PointerWrap& p) Core::DisplayMessage("State is incompatible with current memory settings (MMU and/or memory " "overrides). Aborting load state.", 3000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } diff --git a/Source/Core/Core/HW/Wiimote.cpp b/Source/Core/Core/HW/Wiimote.cpp index 675e533346..476a265f76 100644 --- a/Source/Core/Core/HW/Wiimote.cpp +++ b/Source/Core/Core/HW/Wiimote.cpp @@ -226,7 +226,7 @@ void DoState(PointerWrap& p) static_cast(s_config.GetController(i))->DoState(p); } - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // If using a real wiimote or the save-state source does not match the current source, // then force a reconnection on load. diff --git a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp index 8f0cce590f..4d1d84da9d 100644 --- a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp @@ -559,7 +559,7 @@ void Wiimote::DoState(PointerWrap& p) m_speaker_logic.DoState(p); m_camera_logic.DoState(p); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) m_camera_logic.SetEnabled(m_status.ir); p.Do(m_is_motion_plus_attached); diff --git a/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp b/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp index 80b547ef7f..aa9d419977 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp @@ -136,7 +136,7 @@ void EncryptedExtension::DoState(PointerWrap& p) { p.Do(m_reg); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // No need to sync the key when we can just regenerate it. m_is_key_dirty = true; diff --git a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp index 2e2fee3f87..ef1e983b2a 100644 --- a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp +++ b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp @@ -260,7 +260,7 @@ void HostFileSystem::DoState(PointerWrap& p) // handle /tmp std::string Path = BuildFilename("/tmp").host_path; - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { File::DeleteDirRecursively(Path); File::CreateDir(Path); diff --git a/Source/Core/Core/IOS/IOS.cpp b/Source/Core/Core/IOS/IOS.cpp index 364e647839..42fb3632d3 100644 --- a/Source/Core/Core/IOS/IOS.cpp +++ b/Source/Core/Core/IOS/IOS.cpp @@ -807,7 +807,7 @@ void Kernel::DoState(PointerWrap& p) for (const auto& entry : m_device_map) entry.second->DoState(p); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { for (u32 i = 0; i < IPC_MAX_FDS; i++) { diff --git a/Source/Core/Core/IOS/Network/Socket.cpp b/Source/Core/Core/IOS/Network/Socket.cpp index 20220c2968..9537c8cdff 100644 --- a/Source/Core/Core/IOS/Network/Socket.cpp +++ b/Source/Core/Core/IOS/Network/Socket.cpp @@ -994,8 +994,7 @@ void WiiSockMan::Convert(sockaddr_in const& from, WiiSockAddrIn& to, s32 addrlen void WiiSockMan::DoState(PointerWrap& p) { - bool saving = p.GetMode() == PointerWrap::Mode::MODE_WRITE || - p.GetMode() == PointerWrap::Mode::MODE_MEASURE; + bool saving = p.IsWriteMode() || p.IsMeasureMode(); auto size = pending_polls.size(); p.Do(size); if (!saving) diff --git a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp index 8cb17f3267..d12121ce8b 100644 --- a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp +++ b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp @@ -57,7 +57,7 @@ void SDIOSlot0Device::RefreshConfig() void SDIOSlot0Device::DoState(PointerWrap& p) { DoStateShared(p); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { OpenInternal(); } diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTEmu.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTEmu.cpp index 44b317c806..5994c9640a 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTEmu.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTEmu.cpp @@ -90,10 +90,10 @@ void BluetoothEmuDevice::DoState(PointerWrap& p) { bool passthrough_bluetooth = false; p.Do(passthrough_bluetooth); - if (passthrough_bluetooth && p.GetMode() == PointerWrap::MODE_READ) + if (passthrough_bluetooth && p.IsReadMode()) { Core::DisplayMessage("State needs Bluetooth passthrough to be enabled. Aborting load.", 4000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index d4bb7041b3..12def23084 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -268,28 +268,28 @@ void BluetoothRealDevice::DoState(PointerWrap& p) { bool passthrough_bluetooth = true; p.Do(passthrough_bluetooth); - if (!passthrough_bluetooth && p.GetMode() == PointerWrap::MODE_READ) + if (!passthrough_bluetooth && p.IsReadMode()) { Core::DisplayMessage("State needs Bluetooth passthrough to be disabled. Aborting load.", 4000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); return; } // Prevent the transfer callbacks from messing with m_current_transfers after we have started // writing a savestate. We cannot use a scoped lock here because DoState is called twice and // we would lose the lock between the two calls. - if (p.GetMode() == PointerWrap::MODE_MEASURE || p.GetMode() == PointerWrap::MODE_VERIFY) + if (p.IsMeasureMode() || p.IsVerifyMode()) m_transfers_mutex.lock(); std::vector addresses_to_discard; - if (p.GetMode() != PointerWrap::MODE_READ) + if (!p.IsReadMode()) { // Save addresses of transfer commands to discard on savestate load. for (const auto& transfer : m_current_transfers) addresses_to_discard.push_back(transfer.second.command->ios_request.address); } p.Do(addresses_to_discard); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // On load, discard any pending transfer to make sure the emulated software is not stuck // waiting for the previous request to complete. This is usually not an issue as long as @@ -305,7 +305,7 @@ void BluetoothRealDevice::DoState(PointerWrap& p) OSD::Duration::NORMAL); } - if (!s_has_shown_savestate_warning && p.GetMode() == PointerWrap::MODE_WRITE) + if (!s_has_shown_savestate_warning && p.IsWriteMode()) { OSD::AddMessage("Savestates may not work with Bluetooth passthrough in all cases.\n" "They will only work if no remote is connected when restoring the state,\n" @@ -315,7 +315,7 @@ void BluetoothRealDevice::DoState(PointerWrap& p) } // We have finished the savestate now, so the transfers mutex can be unlocked. - if (p.GetMode() == PointerWrap::MODE_WRITE) + if (p.IsWriteMode()) m_transfers_mutex.unlock(); } diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTStub.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTStub.cpp index 70a98d782b..5eb0be05ce 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTStub.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTStub.cpp @@ -19,6 +19,6 @@ std::optional BluetoothStubDevice::Open(const OpenRequest& request) void BluetoothStubDevice::DoState(PointerWrap& p) { Core::DisplayMessage("The current IPC_HLE_Device_usb is a stub. Aborting load.", 4000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); } } // namespace IOS::HLE diff --git a/Source/Core/Core/IOS/USB/Host.cpp b/Source/Core/Core/IOS/USB/Host.cpp index 42442ddea5..0fdaafb611 100644 --- a/Source/Core/Core/IOS/USB/Host.cpp +++ b/Source/Core/Core/IOS/USB/Host.cpp @@ -55,7 +55,7 @@ void USBHost::UpdateWantDeterminism(const bool new_want_determinism) void USBHost::DoState(PointerWrap& p) { - if (IsOpened() && p.GetMode() == PointerWrap::MODE_READ) + if (IsOpened() && p.IsReadMode()) { // After a state has loaded, there may be insertion hooks for devices that were // already plugged in, and which need to be triggered. diff --git a/Source/Core/Core/IOS/USB/OH0/OH0.cpp b/Source/Core/Core/IOS/USB/OH0/OH0.cpp index 7fc3702e96..cfda8b6cf8 100644 --- a/Source/Core/Core/IOS/USB/OH0/OH0.cpp +++ b/Source/Core/Core/IOS/USB/OH0/OH0.cpp @@ -75,7 +75,7 @@ std::optional OH0::IOCtlV(const IOCtlVRequest& request) void OH0::DoState(PointerWrap& p) { - if (p.GetMode() == PointerWrap::MODE_READ && !m_devices.empty()) + if (p.IsReadMode() && !m_devices.empty()) { Core::DisplayMessage("It is suggested that you unplug and replug all connected USB devices.", 5000); diff --git a/Source/Core/Core/PowerPC/JitInterface.cpp b/Source/Core/Core/PowerPC/JitInterface.cpp index e39efd143b..8e31441b4f 100644 --- a/Source/Core/Core/PowerPC/JitInterface.cpp +++ b/Source/Core/Core/PowerPC/JitInterface.cpp @@ -47,7 +47,7 @@ void SetJit(JitBase* jit) } void DoState(PointerWrap& p) { - if (g_jit && p.GetMode() == PointerWrap::MODE_READ) + if (g_jit && p.IsReadMode()) g_jit->ClearCache(); } CPUCoreBase* InitJitCore(PowerPC::CPUCore core) diff --git a/Source/Core/Core/PowerPC/PowerPC.cpp b/Source/Core/Core/PowerPC/PowerPC.cpp index e45706f199..c01bc580e8 100644 --- a/Source/Core/Core/PowerPC/PowerPC.cpp +++ b/Source/Core/Core/PowerPC/PowerPC.cpp @@ -132,7 +132,7 @@ void DoState(PointerWrap& p) ppcState.iCache.DoState(p); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { RoundingModeUpdated(); IBATUpdated(); diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 4b79a76d71..cce9b631a8 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -156,7 +156,7 @@ static void DoState(PointerWrap& p) "This savestate was created using an incompatible version of Dolphin" : "This savestate was created using the incompatible version " + version_created_by; Core::DisplayMessage(message, OSD::Duration::NORMAL); - p.SetMode(PointerWrap::MODE_MEASURE); + p.SetMeasureMode(); return; } @@ -168,7 +168,7 @@ static void DoState(PointerWrap& p) OSD::AddMessage(fmt::format("Cannot load a savestate created under {} mode in {} mode", is_wii ? "Wii" : "GC", is_wii_currently ? "Wii" : "GC"), OSD::Duration::NORMAL, OSD::Color::RED); - p.SetMode(PointerWrap::MODE_MEASURE); + p.SetMeasureMode(); return; } @@ -186,7 +186,7 @@ static void DoState(PointerWrap& p) Memory::GetExRamSizeReal(), Memory::GetExRamSizeReal() / 0x100000U, state_mem1_size, state_mem1_size / 0x100000U, state_mem2_size, state_mem2_size / 0x100000U)); - p.SetMode(PointerWrap::MODE_MEASURE); + p.SetMeasureMode(); return; } @@ -226,7 +226,7 @@ void LoadFromBuffer(std::vector& buffer) Core::RunOnCPUThread( [&] { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); DoState(p); }, true); @@ -237,14 +237,14 @@ void SaveToBuffer(std::vector& buffer) Core::RunOnCPUThread( [&] { u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); DoState(p_measure); const size_t buffer_size = reinterpret_cast(ptr); buffer.resize(buffer_size); ptr = buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); DoState(p); }, true); @@ -412,22 +412,22 @@ void SaveAs(const std::string& filename, bool wait) [&] { // Measure the size of the buffer. u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); DoState(p_measure); const size_t buffer_size = reinterpret_cast(ptr); // Then actually do the write. - PointerWrap::Mode p_mode; + bool is_write_mode; { std::lock_guard lk(g_cs_current_buffer); g_current_buffer.resize(buffer_size); ptr = g_current_buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); DoState(p); - p_mode = p.GetMode(); + is_write_mode = p.IsWriteMode(); } - if (p_mode == PointerWrap::MODE_WRITE) + if (is_write_mode) { Core::DisplayMessage("Saving State...", 1000); @@ -591,10 +591,10 @@ void LoadAs(const std::string& filename) if (!buffer.empty()) { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); DoState(p); loaded = true; - loadedSuccessfully = (p.GetMode() == PointerWrap::MODE_READ); + loadedSuccessfully = p.IsReadMode(); } } diff --git a/Source/Core/UICommon/GameFileCache.cpp b/Source/Core/UICommon/GameFileCache.cpp index a41c07553c..4b04142dd8 100644 --- a/Source/Core/UICommon/GameFileCache.cpp +++ b/Source/Core/UICommon/GameFileCache.cpp @@ -230,14 +230,14 @@ bool GameFileCache::SyncCacheFile(bool save) { // Measure the size of the buffer. u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); DoState(&p_measure); const size_t buffer_size = reinterpret_cast(ptr); // Then actually do the write. std::vector buffer(buffer_size); ptr = buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); DoState(&p, buffer_size); if (f.WriteBytes(buffer.data(), buffer.size())) success = true; @@ -248,9 +248,9 @@ bool GameFileCache::SyncCacheFile(bool save) if (!buffer.empty() && f.ReadBytes(buffer.data(), buffer.size())) { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); DoState(&p, buffer.size()); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) success = true; } } @@ -271,16 +271,16 @@ void GameFileCache::DoState(PointerWrap* p, u64 size) u64 expected_size; } header = {CACHE_REVISION, size}; p->Do(header); - if (p->GetMode() == PointerWrap::MODE_READ) + if (p->IsReadMode()) { if (header.revision != CACHE_REVISION || header.expected_size != size) { - p->SetMode(PointerWrap::MODE_MEASURE); + p->SetMeasureMode(); return; } } p->DoEachElement(m_cached_files, [](PointerWrap& state, std::shared_ptr& elem) { - if (state.GetMode() == PointerWrap::MODE_READ) + if (state.IsReadMode()) elem = std::make_shared(); elem->DoState(state); }); diff --git a/Source/Core/VideoCommon/BoundingBox.cpp b/Source/Core/VideoCommon/BoundingBox.cpp index 33cffef469..f5ecc8478b 100644 --- a/Source/Core/VideoCommon/BoundingBox.cpp +++ b/Source/Core/VideoCommon/BoundingBox.cpp @@ -104,7 +104,7 @@ void BoundingBox::DoState(PointerWrap& p) // We handle saving the backend values specially rather than using Readback() and Flush() so that // we don't mess up the current cache state std::vector backend_values(NUM_BBOX_VALUES); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { p.Do(backend_values); diff --git a/Source/Core/VideoCommon/CPMemory.cpp b/Source/Core/VideoCommon/CPMemory.cpp index 3a2ee54bc6..401c37bc00 100644 --- a/Source/Core/VideoCommon/CPMemory.cpp +++ b/Source/Core/VideoCommon/CPMemory.cpp @@ -26,7 +26,7 @@ void DoCPState(PointerWrap& p) p.Do(g_main_cp_state.vtx_desc); p.DoArray(g_main_cp_state.vtx_attr); p.DoMarker("CP Memory"); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { CopyPreprocessCPStateFromMain(); VertexLoaderManager::g_bases_dirty = true; diff --git a/Source/Core/VideoCommon/Fifo.cpp b/Source/Core/VideoCommon/Fifo.cpp index 18ef1b432f..5b31589e82 100644 --- a/Source/Core/VideoCommon/Fifo.cpp +++ b/Source/Core/VideoCommon/Fifo.cpp @@ -94,7 +94,7 @@ void DoState(PointerWrap& p) p.DoPointer(write_ptr, s_video_buffer); s_video_buffer_write_ptr = write_ptr; p.DoPointer(s_video_buffer_read_ptr, s_video_buffer); - if (p.GetMode() == PointerWrap::MODE_READ && s_use_deterministic_gpu_thread) + if (p.IsReadMode() && s_use_deterministic_gpu_thread) { // We're good and paused, right? s_video_buffer_seen_ptr = s_video_buffer_pp_read_ptr = s_video_buffer_read_ptr; diff --git a/Source/Core/VideoCommon/FrameDump.cpp b/Source/Core/VideoCommon/FrameDump.cpp index 92296e8794..55e0e3daa6 100644 --- a/Source/Core/VideoCommon/FrameDump.cpp +++ b/Source/Core/VideoCommon/FrameDump.cpp @@ -482,7 +482,7 @@ void FrameDump::CloseVideoFile() void FrameDump::DoState(PointerWrap& p) { - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) ++m_savestate_index; } diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp index c6cb2fd29e..d4fdfd0ff2 100644 --- a/Source/Core/VideoCommon/FramebufferManager.cpp +++ b/Source/Core/VideoCommon/FramebufferManager.cpp @@ -910,7 +910,7 @@ void FramebufferManager::DoState(PointerWrap& p) if (!save_efb_state) return; - if (p.GetMode() == PointerWrap::MODE_WRITE || p.GetMode() == PointerWrap::MODE_MEASURE) + if (p.IsWriteMode() || p.IsMeasureMode()) DoSaveState(p); else DoLoadState(p); diff --git a/Source/Core/VideoCommon/FreeLookCamera.cpp b/Source/Core/VideoCommon/FreeLookCamera.cpp index 34677acbb8..2bc7d11bb9 100644 --- a/Source/Core/VideoCommon/FreeLookCamera.cpp +++ b/Source/Core/VideoCommon/FreeLookCamera.cpp @@ -298,7 +298,7 @@ Common::Vec2 FreeLookCamera::GetFieldOfViewMultiplier() const void FreeLookCamera::DoState(PointerWrap& p) { - if (p.GetMode() == PointerWrap::MODE_WRITE || p.GetMode() == PointerWrap::MODE_MEASURE) + if (p.IsWriteMode() || p.IsMeasureMode()) { p.Do(m_current_type); if (m_camera_controller) @@ -314,7 +314,7 @@ void FreeLookCamera::DoState(PointerWrap& p) { m_camera_controller->DoState(p); } - else if (p.GetMode() == PointerWrap::MODE_READ) + else if (p.IsReadMode()) { const std::string old_type_name = old_type ? to_string(*old_type) : ""; const std::string loaded_type_name = m_current_type ? to_string(*m_current_type) : ""; @@ -323,7 +323,7 @@ void FreeLookCamera::DoState(PointerWrap& p) "'{}'. Aborting load state", old_type_name, loaded_type_name); Core::DisplayMessage(message, 5000); - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); } } } diff --git a/Source/Core/VideoCommon/GeometryShaderManager.cpp b/Source/Core/VideoCommon/GeometryShaderManager.cpp index f488ed7343..f71a687ce8 100644 --- a/Source/Core/VideoCommon/GeometryShaderManager.cpp +++ b/Source/Core/VideoCommon/GeometryShaderManager.cpp @@ -111,7 +111,7 @@ void GeometryShaderManager::DoState(PointerWrap& p) p.Do(constants); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // Fixup the current state from global GPU state // NOTE: This requires that all GPU memory has been loaded already. diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 675bcceca5..4e6ce9ff6f 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -542,7 +542,7 @@ void PixelShaderManager::DoState(PointerWrap& p) p.Do(constants); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // Fixup the current state from global GPU state // NOTE: This requires that all GPU memory has been loaded already. diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index d895d648ed..dbad9711f1 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -1810,7 +1810,7 @@ void Renderer::DoState(PointerWrap& p) m_bounding_box->DoState(p); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // Force the next xfb to be displayed. m_last_xfb_id = std::numeric_limits::max(); diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 406a7bef21..dc08fd90bc 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -432,7 +432,7 @@ void TextureCacheBase::SerializeTexture(AbstractTexture* tex, const TextureConfi PointerWrap& p) { // If we're in measure mode, skip the actual readback to save some time. - const bool skip_readback = p.GetMode() == PointerWrap::MODE_MEASURE; + const bool skip_readback = p.IsMeasureMode(); p.DoPOD(config); if (skip_readback || CheckReadbackTexture(config.width, config.height, config.format)) @@ -459,7 +459,7 @@ void TextureCacheBase::SerializeTexture(AbstractTexture* tex, const TextureConfi // needing to allocate/free an extra buffer. u8* texture_data = p.DoExternal(total_size); - if (!skip_readback && p.GetMode() == PointerWrap::MODE_MEASURE) + if (!skip_readback && p.IsMeasureMode()) { ERROR_LOG_FMT(VIDEO, "Couldn't acquire {} bytes for serializing texture.", total_size); return; @@ -502,7 +502,7 @@ std::optional TextureCacheBase::DeserializeTextu u32 total_size = 0; u8* texture_data = p.DoExternal(total_size); - if (p.GetMode() != PointerWrap::MODE_READ || total_size == 0) + if (!p.IsReadMode() || total_size == 0) return std::nullopt; auto tex = AllocateTexture(config); @@ -542,7 +542,7 @@ void TextureCacheBase::DoState(PointerWrap& p) p.Do(last_entry_id); - if (p.GetMode() == PointerWrap::MODE_WRITE || p.GetMode() == PointerWrap::MODE_MEASURE) + if (p.IsWriteMode() || p.IsMeasureMode()) DoSaveState(p); else DoLoadState(p); @@ -673,7 +673,7 @@ void TextureCacheBase::DoLoadState(PointerWrap& p) // Only clear out state when actually restoring/loading. // Since we throw away entries when not in loading mode now, we don't need to check // before inserting entries into the cache, as GetEntry will always return null. - const bool commit_state = p.GetMode() == PointerWrap::MODE_READ; + const bool commit_state = p.IsReadMode(); if (commit_state) Invalidate(); diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index bb23a468ea..72f02927b5 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -519,7 +519,7 @@ void VertexManagerBase::Flush() void VertexManagerBase::DoState(PointerWrap& p) { - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // Flush old vertex data before loading state. Flush(); diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index 2b5fc68185..6a7636d587 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -635,7 +635,7 @@ void VertexShaderManager::DoState(PointerWrap& p) p.Do(constants); - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { Dirty(); } diff --git a/Source/Core/VideoCommon/VideoState.cpp b/Source/Core/VideoCommon/VideoState.cpp index c348649da5..538c3d0904 100644 --- a/Source/Core/VideoCommon/VideoState.cpp +++ b/Source/Core/VideoCommon/VideoState.cpp @@ -27,10 +27,10 @@ void VideoCommon_DoState(PointerWrap& p) bool software = false; p.Do(software); - if (p.GetMode() == PointerWrap::MODE_READ && software == true) + if (p.IsReadMode() && software == true) { // change mode to abort load of incompatible save state. - p.SetMode(PointerWrap::MODE_VERIFY); + p.SetVerifyMode(); } // BP Memory @@ -86,7 +86,7 @@ void VideoCommon_DoState(PointerWrap& p) p.DoMarker("Renderer"); // Refresh state. - if (p.GetMode() == PointerWrap::MODE_READ) + if (p.IsReadMode()) { // Inform backend of new state from registers. BPReload(); From c8e20c569b7deae97b411a6eea5c846f342bbf17 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Sat, 21 May 2022 21:18:27 -0700 Subject: [PATCH 104/659] Convert PointerWrap::Mode to enum class --- Source/Core/Common/ChunkFile.h | 54 +++++++++++++------------- Source/Core/Core/PowerPC/PowerPC.cpp | 2 +- Source/Core/Core/State.cpp | 12 +++--- Source/Core/UICommon/GameFileCache.cpp | 6 +-- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Source/Core/Common/ChunkFile.h b/Source/Core/Common/ChunkFile.h index 919d0defa6..5a9cf1823e 100644 --- a/Source/Core/Common/ChunkFile.h +++ b/Source/Core/Common/ChunkFile.h @@ -38,12 +38,12 @@ class PointerWrap { public: - enum Mode + enum class Mode { - MODE_READ, - MODE_WRITE, - MODE_MEASURE, - MODE_VERIFY, + Read, + Write, + Measure, + Verify, }; private: @@ -57,12 +57,12 @@ public: { } - void SetMeasureMode() { m_mode = Mode::MODE_MEASURE; } - void SetVerifyMode() { m_mode = Mode::MODE_VERIFY; } - bool IsReadMode() const { return m_mode == Mode::MODE_READ; } - bool IsWriteMode() const { return m_mode == Mode::MODE_WRITE; } - bool IsMeasureMode() const { return m_mode == Mode::MODE_MEASURE; } - bool IsVerifyMode() const { return m_mode == Mode::MODE_VERIFY; } + void SetMeasureMode() { m_mode = Mode::Measure; } + void SetVerifyMode() { m_mode = Mode::Verify; } + bool IsReadMode() const { return m_mode == Mode::Read; } + bool IsWriteMode() const { return m_mode == Mode::Write; } + bool IsMeasureMode() const { return m_mode == Mode::Measure; } + bool IsVerifyMode() const { return m_mode == Mode::Verify; } template void Do(std::map& x) @@ -72,7 +72,7 @@ public: switch (m_mode) { - case MODE_READ: + case Mode::Read: for (x.clear(); count != 0; --count) { std::pair pair; @@ -82,9 +82,9 @@ public: } break; - case MODE_WRITE: - case MODE_MEASURE: - case MODE_VERIFY: + case Mode::Write: + case Mode::Measure: + case Mode::Verify: for (auto& elem : x) { Do(elem.first); @@ -102,7 +102,7 @@ public: switch (m_mode) { - case MODE_READ: + case Mode::Read: for (x.clear(); count != 0; --count) { V value; @@ -111,9 +111,9 @@ public: } break; - case MODE_WRITE: - case MODE_MEASURE: - case MODE_VERIFY: + case Mode::Write: + case Mode::Measure: + case Mode::Verify: for (const V& val : x) { Do(val); @@ -161,7 +161,7 @@ public: switch (m_mode) { - case MODE_READ: + case Mode::Read: if (present) { x = std::make_optional(); @@ -173,9 +173,9 @@ public: } break; - case MODE_WRITE: - case MODE_MEASURE: - case MODE_VERIFY: + case Mode::Write: + case Mode::Measure: + case Mode::Verify: if (present) Do(x.value()); @@ -343,18 +343,18 @@ private: switch (m_mode) { - case MODE_READ: + case Mode::Read: memcpy(data, *m_ptr_current, size); break; - case MODE_WRITE: + case Mode::Write: memcpy(*m_ptr_current, data, size); break; - case MODE_MEASURE: + case Mode::Measure: break; - case MODE_VERIFY: + case Mode::Verify: DEBUG_ASSERT_MSG(COMMON, !memcmp(data, *m_ptr_current, size), "Savestate verification failure: buf {} != {} (size {}).\n", fmt::ptr(data), fmt::ptr(*m_ptr_current), size); diff --git a/Source/Core/Core/PowerPC/PowerPC.cpp b/Source/Core/Core/PowerPC/PowerPC.cpp index c01bc580e8..aa6f7fbe11 100644 --- a/Source/Core/Core/PowerPC/PowerPC.cpp +++ b/Source/Core/Core/PowerPC/PowerPC.cpp @@ -100,7 +100,7 @@ std::ostream& operator<<(std::ostream& os, CPUCore core) void DoState(PointerWrap& p) { // some of this code has been disabled, because - // it changes registers even in MODE_MEASURE (which is suspicious and seems like it could cause + // it changes registers even in Mode::Measure (which is suspicious and seems like it could cause // desyncs) // and because the values it's changing have been added to CoreTiming::DoState, so it might // conflict to mess with them here. diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index cce9b631a8..9387adf72c 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -226,7 +226,7 @@ void LoadFromBuffer(std::vector& buffer) Core::RunOnCPUThread( [&] { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::Read); DoState(p); }, true); @@ -237,14 +237,14 @@ void SaveToBuffer(std::vector& buffer) Core::RunOnCPUThread( [&] { u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::Measure); DoState(p_measure); const size_t buffer_size = reinterpret_cast(ptr); buffer.resize(buffer_size); ptr = buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::Write); DoState(p); }, true); @@ -412,7 +412,7 @@ void SaveAs(const std::string& filename, bool wait) [&] { // Measure the size of the buffer. u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::Measure); DoState(p_measure); const size_t buffer_size = reinterpret_cast(ptr); @@ -422,7 +422,7 @@ void SaveAs(const std::string& filename, bool wait) std::lock_guard lk(g_cs_current_buffer); g_current_buffer.resize(buffer_size); ptr = g_current_buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::Write); DoState(p); is_write_mode = p.IsWriteMode(); } @@ -591,7 +591,7 @@ void LoadAs(const std::string& filename) if (!buffer.empty()) { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::Read); DoState(p); loaded = true; loadedSuccessfully = p.IsReadMode(); diff --git a/Source/Core/UICommon/GameFileCache.cpp b/Source/Core/UICommon/GameFileCache.cpp index 4b04142dd8..dbb349dad9 100644 --- a/Source/Core/UICommon/GameFileCache.cpp +++ b/Source/Core/UICommon/GameFileCache.cpp @@ -230,14 +230,14 @@ bool GameFileCache::SyncCacheFile(bool save) { // Measure the size of the buffer. u8* ptr = nullptr; - PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::MODE_MEASURE); + PointerWrap p_measure(&ptr, 0, PointerWrap::Mode::Measure); DoState(&p_measure); const size_t buffer_size = reinterpret_cast(ptr); // Then actually do the write. std::vector buffer(buffer_size); ptr = buffer.data(); - PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::MODE_WRITE); + PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::Write); DoState(&p, buffer_size); if (f.WriteBytes(buffer.data(), buffer.size())) success = true; @@ -248,7 +248,7 @@ bool GameFileCache::SyncCacheFile(bool save) if (!buffer.empty() && f.ReadBytes(buffer.data(), buffer.size())) { u8* ptr = buffer.data(); - PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::MODE_READ); + PointerWrap p(&ptr, buffer.size(), PointerWrap::Mode::Read); DoState(&p, buffer.size()); if (p.IsReadMode()) success = true; From 059cd5f6e111a52d3ba798bd7ebbb9c74e01fa01 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Mon, 9 May 2022 17:01:14 -0700 Subject: [PATCH 105/659] Windows: Remove unused Qt 5 code and references --- Source/Core/DolphinQt/Main.cpp | 9 --------- Source/Core/DolphinQt/Settings.cpp | 3 +-- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp index 2f2b89e5e4..bd17fe5890 100644 --- a/Source/Core/DolphinQt/Main.cpp +++ b/Source/Core/DolphinQt/Main.cpp @@ -156,15 +156,6 @@ int main(int argc, char* argv[]) QApplication app(argc, argv); #endif -#if defined(_WIN32) && (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) - // On Windows, Qt 5's default system font (MS Shell Dlg 2) is outdated. - // Interestingly, the QMenu font is correct and comes from lfMenuFont - // (Segoe UI on English computers). - // So use it for the entire application. - // This code will become unnecessary and obsolete once we switch to Qt 6. - QApplication::setFont(QApplication::font("QMenu")); -#endif - #ifdef _WIN32 FreeConsole(); #endif diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index 3c5de2c1e4..0ecee648d8 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -119,8 +119,7 @@ QString Settings::GetCurrentUserStyle() const return QFileInfo(GetQSettings().value(QStringLiteral("userstyle/path")).toString()).fileName(); } -// Calling this before the main window has been created breaks the style of some widgets on -// Windows 10/Qt 5.15.0. But only if we set a stylesheet that isn't an empty string. +// Calling this before the main window has been created breaks the style of some widgets. void Settings::SetCurrentUserStyle(const QString& stylesheet_name) { QString stylesheet_contents; From 87e56267ac8e751d0f0082ad8d3be11decbf2bee Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 26 May 2022 18:32:39 -0700 Subject: [PATCH 106/659] Add more line-ending commits to .git-blame-ignore-revs --- .git-blame-ignore-revs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 4ec35a92a6..6ecb32482f 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -16,11 +16,28 @@ ebb48d019eec1c29a37a406e2db16d7565367faa # SVN line-ending conversion 30c883bcfc65761dc9fb61fea16a25fb61a7e220 +3b36e0657140a8f54729f55f94ad108547362ed5 +473cd01181be6c8160ce477f25ca6bd39f8cc083 +49cfded60bb5b444d1828190eacc52bbb49a9cb8 4a0c8fc0c9b6666e7933683260e2befbc81917ff 4b5b9ad05c10d95c9af43502ecc6877d6e680c4d +4b68a543ba30ec18e79c93b742bc6f110ccd4561 +4f889ca1a3cb66ff78f11aa6864edf8ce51b8c93 +578c402d2ce5e6a7b6e42a4c7449d9aeac61e5e2 +5e81298ef0147bf36c4aaafa35accc2700777bd3 +7efbc879e544cba7f205b3eeaeff050f46fd9607 +7f4ebed1ddb7ca9aaa49172946fc1f7dc2dc3c75 +8151b21ec75107b73a5863177f29d6f69b7174fc 8fca9a8e8d547653581ecb4aac12a09a4311eba3 +901fe7c00fec5e2aaf55d184edbcb6d092345d52 +90bac5731cc4b15f40be9cf3a51a2c88ca6b53bf +9146b9b261c34f476c9f83934e6da6a463ad51c7 a41c1b2d0a9fab51f8a75ccdb7dba0890f766820 -49cfded60bb5b444d1828190eacc52bbb49a9cb8 +a524cecfabbd4e321485e0cbac9325efde2123ef +ab76cbf2fcf31b059edf10c220800150313ddf18 +bbb98d8e2e8259213cc231041eba922471555eb9 +e6fe5ec42f025a710918c1aaf8643da36a13bb3e +fc1c7c31a08d55be4c756a1ed599d6afeedd9a11 # Trailing whitespace c579637eafb9e9eb7f83711569254bd8da6d09d2 From d307c34af122a551ced73ffc73b75ac233cd0c8c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 27 May 2022 18:18:07 -0700 Subject: [PATCH 107/659] DSP LLE: Rename CMPAR to CMPAXH --- Source/Core/Core/DSP/DSPTables.cpp | 2 +- Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp | 6 +++--- Source/Core/Core/DSP/Interpreter/DSPIntTables.cpp | 2 +- Source/Core/Core/DSP/Interpreter/DSPInterpreter.h | 2 +- Source/Core/Core/DSP/Jit/x64/DSPEmitter.h | 2 +- Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp | 6 +++--- Source/Core/Core/DSP/Jit/x64/DSPJitTables.cpp | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Source/Core/Core/DSP/DSPTables.cpp b/Source/Core/Core/DSP/DSPTables.cpp index 7f1ab00a6b..af357e6a25 100644 --- a/Source/Core/Core/DSP/DSPTables.cpp +++ b/Source/Core/Core/DSP/DSPTables.cpp @@ -284,7 +284,7 @@ const std::array s_opcodes = //c-d {"MULC", 0xc000, 0xe700, 1, 2, {{P_ACCM, 1, 0, 12, 0x1000}, {P_REG1A, 1, 0, 11, 0x0800}}, true, false, false, false, true}, // $prod = $acS.m * $axS.h - {"CMPAR", 0xc100, 0xe700, 1, 2, {{P_ACC, 1, 0, 11, 0x0800}, {P_REG1A, 1, 0, 12, 0x1000}}, true, false, false, false, true}, // FLAGS($acS - axR.h) + {"CMPAXH", 0xc100, 0xe700, 1, 2, {{P_ACC, 1, 0, 11, 0x0800}, {P_REG1A, 1, 0, 12, 0x1000}}, true, false, false, false, true}, // FLAGS($acS - axR.h) {"MULCMVZ", 0xc200, 0xe600, 1, 3, {{P_ACCM, 1, 0, 12, 0x1000}, {P_REG1A, 1, 0, 11, 0x0800}, {P_ACC, 1, 0, 8, 0x0100}}, true, false, false, false, true}, // $acR.hm, $acR.l, $prod = $prod.hm, 0, $acS.m * $axS.h {"MULCAC", 0xc400, 0xe600, 1, 3, {{P_ACCM, 1, 0, 12, 0x1000}, {P_REG1A, 1, 0, 11, 0x0800}, {P_ACC, 1, 0, 8, 0x0100}}, true, false, false, false, true}, // $acR, $prod = $acR + $prod, $acS.m * $axS.h {"MULCMV", 0xc600, 0xe600, 1, 3, {{P_ACCM, 1, 0, 12, 0x1000}, {P_REG1A, 1, 0, 11, 0x0800}, {P_ACC, 1, 0, 8, 0x0100}}, true, false, false, false, true}, // $acR, $prod = $prod, $acS.m * $axS.h diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp index 9a6e1335ef..e88fe6ac4a 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp @@ -124,12 +124,12 @@ void Interpreter::cmp(const UDSPInstruction) ZeroWriteBackLog(); } -// CMPAR $acS axR.h +// CMPAXH $acS, $axR.h // 110r s001 xxxx xxxx -// Compares accumulator $acS with accumulator $axR.h. +// Compares accumulator $acS with high part of secondary accumulator $axR.h. // // flags out: x-xx xxxx -void Interpreter::cmpar(const UDSPInstruction opc) +void Interpreter::cmpaxh(const UDSPInstruction opc) { const u8 rreg = (opc >> 12) & 0x1; const u8 sreg = (opc >> 11) & 0x1; diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntTables.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntTables.cpp index eefe8d2fd7..619f5d4164 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntTables.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntTables.cpp @@ -178,7 +178,7 @@ constexpr std::array s_opcodes // C-D {0xc000, 0xe700, &Interpreter::mulc}, - {0xc100, 0xe700, &Interpreter::cmpar}, + {0xc100, 0xe700, &Interpreter::cmpaxh}, {0xc200, 0xe600, &Interpreter::mulcmvz}, {0xc400, 0xe600, &Interpreter::mulcac}, {0xc600, 0xe600, &Interpreter::mulcmv}, diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h index 422c9a5f45..6d9e3e2709 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h @@ -70,7 +70,7 @@ public: void clrl(UDSPInstruction opc); void clrp(UDSPInstruction opc); void cmp(UDSPInstruction opc); - void cmpar(UDSPInstruction opc); + void cmpaxh(UDSPInstruction opc); void cmpi(UDSPInstruction opc); void cmpis(UDSPInstruction opc); void dar(UDSPInstruction opc); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h index 05d52abe51..f64e211e00 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h @@ -115,7 +115,7 @@ public: void tst(UDSPInstruction opc); void tstaxh(UDSPInstruction opc); void cmp(UDSPInstruction opc); - void cmpar(UDSPInstruction opc); + void cmpaxh(UDSPInstruction opc); void cmpi(UDSPInstruction opc); void cmpis(UDSPInstruction opc); void xorr(UDSPInstruction opc); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp index 864c488d81..716781750e 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp @@ -188,12 +188,12 @@ void DSPEmitter::cmp(const UDSPInstruction opc) } } -// CMPAR $acS axR.h +// CMPAXH $acS, $axR.h // 110r s001 xxxx xxxx -// Compares accumulator $acS with accumulator $axR.h. +// Compares accumulator $acS with high part of secondary accumulator $axR.h. // // flags out: x-xx xxxx -void DSPEmitter::cmpar(const UDSPInstruction opc) +void DSPEmitter::cmpaxh(const UDSPInstruction opc) { if (FlagsNeeded()) { diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitTables.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitTables.cpp index 87f446f82d..9c38c2e97f 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitTables.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitTables.cpp @@ -178,7 +178,7 @@ const std::array s_opcodes = // C-D {0xc000, 0xe700, &DSPEmitter::mulc}, - {0xc100, 0xe700, &DSPEmitter::cmpar}, + {0xc100, 0xe700, &DSPEmitter::cmpaxh}, {0xc200, 0xe600, &DSPEmitter::mulcmvz}, {0xc400, 0xe600, &DSPEmitter::mulcac}, {0xc600, 0xe600, &DSPEmitter::mulcmv}, From 8d880cd86ea68f12a41c4c7405ef67a824dcfcdf Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 27 May 2022 15:16:15 -0700 Subject: [PATCH 108/659] DSPSpy: Add CMPAXH test --- Source/DSPSpy/tests/cmpaxh_test.ds | 332 +++++++++++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 Source/DSPSpy/tests/cmpaxh_test.ds diff --git a/Source/DSPSpy/tests/cmpaxh_test.ds b/Source/DSPSpy/tests/cmpaxh_test.ds new file mode 100644 index 0000000000..0cfbed4010 --- /dev/null +++ b/Source/DSPSpy/tests/cmpaxh_test.ds @@ -0,0 +1,332 @@ +incdir "tests" +include "dsp_base.inc" + +input_ax: +; [0] - 0x0000'0000 - 0 +CW 0 +CW 0 +; [1] - 0x0000'0001 - 1 in $ax0.l +CW 0 +CW 1 +; [2] - 0x0000'ffff - -1 in $ax0.l +CW 0 +CW 0xffff +; [3] - 0x0001'0000 - 1 in $ax0.h +CW 1 +CW 0 +; [4] - 0x7fff'0000 - INT_MAX in $ax0.h +CW 0x7fff +CW 0 +; [5] - 0x8000'0000 - INT_MIN in $ax0.h +CW 0x8000 +CW 0 +; [6] - 0xffff'0000 - -1 in $ax0.h +CW 0xffff +CW 0 +input_ax_end: + +input_acc: +; [0] - 0x00'0000'0000 - 0 +CW 0 +CW 0 +CW 0 +; [1] - 0x00'0000'0001 - 1 in $ac0.l +CW 0 +CW 0 +CW 1 +; [2] - 0x00'0000'ffff - -1 in $ac0.l +CW 0 +CW 0 +CW 1 +; [3] - 0x00'0001'0000 - 1 in $ac0.m +CW 0 +CW 1 +CW 0 +; [4] - 0x00'7fff'0000 - INT_MAX in $ac0.m +CW 0 +CW 0x7fff +CW 0 +; [5] - 0x00'8000'0000 - INT_MIN in $ac0.m, but not sign extended +CW 0 +CW 0x8000 +CW 0 +; [6] - 0x00'ffff'0000 - -1 in $ac0.m, but not sign extended +CW 0 +CW 0xffff +CW 0 +; [7] - 0x01'0000'0000 - 1 in $ac0.l +CW 1 +CW 0 +CW 0 +; [8] - 0x7f'ffff'0000 - true INT_MAX +CW 0x7f +CW 0xffff +CW 0 +; [9] - 0x80'0000'0000 - true INT_MIN +CW 0x80 +CW 0 +CW 0 +; [10] - 0xff'8000'0000 - INT_MIN in $ac0.m, sign-extended +CW 0xff +CW 0x8000 +CW 0 +; [11] - 0xff'ffff'0000 - -1 +CW 0xff +CW 0xffff +CW 0 +input_acc_end: + +/* Python script to generate the following result tables from a DSP dump: +import struct +def gen_tables(name, num_ax, num_acc): + with open(name, "rb") as fin: + data = fin.read() + reg_values = list(struct.iter_unpack(">" + "H"*0x20, data)) + # Initial register values (there is no corresponding send_back call for these), then our two + # default value checks, then the TSTAXH test, then the CMPAXH test, then the test results + assert len(reg_values) == 1 + 2 + num_ax + num_ax * num_acc + 1 + print("result_table_tstaxh:") + for ax in range(num_ax): + # SR is register 0x13 + print("CW {:#04x}".format(reg_values[3 + ax][0x13])) + print("result_table_tstaxh_end:") + print() + print("result_table_cmpaxh:") + for ax in range(num_ax): + print("; ax [{}]".format(ax)) + for acc in range(num_acc): + print("CW {:#04x}".format(reg_values[3 + num_ax + ax * num_acc + acc][0x13])) + print("result_table_cmpaxh_end:") + +gen_tables("dsp_dump0.bin", 7, 12) +*/ + +result_table_tstaxh: +CW 0x22a4 +CW 0x22a4 +CW 0x22a4 +CW 0x22a0 +CW 0x2280 +CW 0x2288 +CW 0x22a8 +result_table_tstaxh_end: + +result_table_cmpaxh: +; ax [0] +CW 0x22a5 +CW 0x22a1 +CW 0x22a1 +CW 0x22a1 +CW 0x2281 +CW 0x2291 +CW 0x22b1 +CW 0x22b1 +CW 0x22b1 +CW 0x22b9 +CW 0x2289 +CW 0x22a9 +; ax [1] +CW 0x22a5 +CW 0x22a1 +CW 0x22a1 +CW 0x22a1 +CW 0x2281 +CW 0x2291 +CW 0x22b1 +CW 0x22b1 +CW 0x22b1 +CW 0x22b9 +CW 0x2289 +CW 0x22a9 +; ax [2] +CW 0x22a5 +CW 0x22a1 +CW 0x22a1 +CW 0x22a1 +CW 0x2281 +CW 0x2291 +CW 0x22b1 +CW 0x22b1 +CW 0x22b1 +CW 0x22b9 +CW 0x2289 +CW 0x22a9 +; ax [3] +CW 0x22a8 +CW 0x22a8 +CW 0x22a8 +CW 0x22a5 +CW 0x2281 +CW 0x2281 +CW 0x22b1 +CW 0x22b1 +CW 0x22b1 +CW 0x22b3 +CW 0x2299 +CW 0x22a9 +; ax [4] +CW 0x2288 +CW 0x2288 +CW 0x2288 +CW 0x2288 +CW 0x22a5 +CW 0x22a1 +CW 0x2291 +CW 0x2291 +CW 0x2291 +CW 0x2293 +CW 0x22b9 +CW 0x2289 +; ax [5] +CW 0x2290 +CW 0x2290 +CW 0x2290 +CW 0x2290 +CW 0x22b0 +CW 0x22b0 +CW 0x2290 +CW 0x2290 +CW 0x229a +CW 0x2298 +CW 0x22a5 +CW 0x2281 +; ax [6] +CW 0x22a0 +CW 0x22a0 +CW 0x22a0 +CW 0x22a0 +CW 0x2290 +CW 0x2290 +CW 0x22b0 +CW 0x22b0 +CW 0x22ba +CW 0x22b8 +CW 0x2288 +CW 0x22a5 +result_table_cmpaxh_end: + +test_main: + ; Perform one test using the default values + ; ($acc0 is 14 0009 0007 and $ax0 is 8000 0003, but this can be changed in the DSPSpy UI) + ; Also, as a sanity check, record the computed sizes of the result tables + LRI $ar0, #input_ax + LRI $ix0, #(input_ax_end - input_ax) + LRI $ar1, #input_acc + LRI $ix1, #(input_acc_end - input_acc) + LRI $ar2, #result_table_tstaxh + LRI $ix2, #(input_ax_end - input_ax)/2 + LRI $ar3, #result_table_cmpaxh + LRI $ix3, #((input_ax_end - input_ax)/2)*((input_acc_end - input_acc)/3) + ; Set the sticky overflow bit just so that we get consistent $sr values + ; before and after an overflow occurs + SBSET #1 + CMPAXH $acc0, $ax0.h + CALL send_back ; Expected $sr: 2290 + ; $ar0 should match $ix0, etc + ADDARN $ar0, $ix0 + LRI $ix0, #input_ax_end + ADDARN $ar1, $ix1 + LRI $ix1, #input_acc_end + ADDARN $ar2, $ix2 + LRI $ix2, #result_table_tstaxh_end + ADDARN $ar3, $ix3 + LRI $ix3, #result_table_cmpaxh_end + TSTAXH $ax0.h + CALL send_back ; Expected $sr: 2288 + + CLR $acc0 + CLR $acc1 + LRI $ax0.h, #0 + LRI $ax0.l, #0 + LRI $ax1.h, #0 + LRI $ax1.l, #0 + + ; Check TSTAXH... + LRI $ar0, #input_ax + LRI $ar2, #result_table_tstaxh + + ; for (int ctr = input_ax.size(); ctr > 0; ctr--) { + BLOOPI #(input_ax_end - input_ax)/2, check_tstaxh_last_ins + ; Note: if DSPSpy supported populating DMEM as well as IMEM, then there are several + ; instructions that could make this faster and cleaner... but it doesn't currently, + ; so we're stuck with ILRRI. + + ; Load the test value into $ax0.h/$ax0.l via $ac0.m + ILRRI $ac0.m, $ar0 ; $ac0.m = IMEM[$ar0++] + MRR $ax0.h, $ac0.m + ILRRI $ac0.m, $ar0 + MRR $ax0.l, $ac0.m + ; Load the expected value into $ac1.m + ILRRI $ac1.m, $ar2 ; $ac1.m = IMEM[$ar2++] + ; Reduce noise in the results + LRI $ac0.m, #0 + + ; Do the test + TSTAXH $ax0.h + CALL send_back + + ; Check if $sr matches the value we expected. If there is any difference, + ; note it via a nonzero $ax1.l. (send_back saves the value of $sr) + MRR $ac0.m, $sr + CMP + IFNZ + LRIS $ax1.l, #1 +check_tstaxh_last_ins: + NOP + ; } + + ; Check CMPAXH... + CLR $acc0 + CLR $acc1 + LRI $ar0, #input_ax + LRI $ar3, #result_table_cmpaxh + + ; for (int ctr_ax = input_ax.size(); ctr_ax > 0; ctr_ax--) { + BLOOPI #(input_ax_end - input_ax)/2, check_cmpaxh_last_ins_outer + ; Load the test value into $ax0.h/$ax0.l via $ac1.m + ILRRI $ac1.m, $ar0 + MRR $ax0.h, $ac1.m + ILRRI $ac1.m, $ar0 + MRR $ax0.l, $ac1.m + + LRI $ar1, #input_acc + + ; for (int ctr_acc = input_acc.size(); ctr_acc > 0; ctr_acc--) { + BLOOPI #(input_acc_end - input_acc)/3, check_cmpaxh_last_ins_inner + + ; Load the test value into $ac0.h/$ac0.m/$ac0.l via $ac1.m + ILRRI $ac1.m, $ar1 + MRR $ac0.h, $ac1.m + ILRRI $ac0.m, $ar1 ; we can load it directly here + ILRRI $ac1.m, $ar1 + MRR $ac0.l, $ac1.m + + ; Load the expected value into $ac1.m + ILRRI $ac1.m, $ar3 + + ; Do the test + CMPAXH $acc0, $ax0.h + CALL send_back + + ; Check if $sr matches the value we expected. If there is any difference, + ; note it via a nonzero $ax1.h. (send_back saves the value of $sr) + ; We can overwrite $ac0.m here because we load it on the next iteration. + MRR $ac0.m, $sr + LRIS $ac0.l, #0 + LRI $ac0.h, #0 + CMP + IFNZ + LRIS $ax1.h, #1 +check_cmpaxh_last_ins_inner: + NOP + ; } +check_cmpaxh_last_ins_outer: + NOP + ; } + + ; We're done testing. In the final send_back call, if $ax1.l or $ax1.h + ; is nonzero, the test failed. + CALL send_back + + ; We're done, DO NOT DELETE THIS LINE + JMP end_of_test From ce4aba7d5efb472abbb1402d7dfd5299e004e3a2 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 16:47:08 -0700 Subject: [PATCH 109/659] docs/DSP: Rename CMPAR to CMPAXH --- .../GameCube_DSP_Users_Manual.tex | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 1b8186bdfc..c49b10d37f 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -46,7 +46,7 @@ % Document front page material \title{\textbf{\Huge GameCube DSP User's Manual}} \author{Reverse-engineered and documented by Duddie \\ \href{mailto:duddie@walla.com}{duddie@walla.com}} -\date{\today\\v0.1.2} +\date{\today\\v0.1.3} % Title formatting commands \newcommand{\OpcodeTitle}[1]{\subsection{#1}\label{instruction:#1}} @@ -260,6 +260,7 @@ The purpose of this documentation is purely academic and it aims at understandin 0.1.0 & 2021.08.21 & Pokechu22 & Added missing instructions, improved documentation of hardware registers, documented additional behaviors, and improved formatting. \\ \hline 0.1.1 & 2022.05.14 & xperia64 & Added tested DSP bootloading transfer size \\ \hline 0.1.2 & 2022.05.21 & Pokechu22 & Fixed ``ILLR'' typo in Instruction Memory section \\ \hline +0.1.3 & 2022.05.27 & Pokechu22 & Renamed \texttt{CMPAR} instruction to \texttt{CMPAXH} \\ \hline \end{tabular} \end{table} @@ -1929,17 +1930,17 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \DSPOpcodeFlags{X}{-}{X}{X}{X}{X}{X}{X} \end{DSPOpcode} -\begin{DSPOpcode}{CMPAR} +\begin{DSPOpcode}{CMPAXH} \begin{DSPOpcodeBytefield}{16} \monobitbox{4}{110r} & \monobitbox{4}{s001} & \monobitbox{4}{xxxx} & \monobitbox{4}{xxxx} \end{DSPOpcodeBytefield} \begin{DSPOpcodeFormat} - CMPAR $acS $axR.h + CMPAXH $acS, $axR.h \end{DSPOpcodeFormat} \begin{DSPOpcodeDescription} - \item Compares accumulator \Register{\$acS} with accumulator \Register{\$axR.h}. + \item Compares accumulator \Register{\$acS} with high part of secondary accumulator \Register{\$axR.h}. \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -5065,7 +5066,7 @@ Instruction & Opcode & Page \\ \hline \OpcodeRow{101s t11r xxxx xxxx}{MULXMV} \OpcodeRowSkip \OpcodeRow{110s t000 xxxx xxxx}{MULC} -\OpcodeRow{110r s001 xxxx xxxx}{CMPAR} +\OpcodeRow{110r s001 xxxx xxxx}{CMPAXH} \OpcodeRow{110s t01r xxxx xxxx}{MULCMVZ} \OpcodeRow{110s t10r xxxx xxxx}{MULCAC} \OpcodeRow{110s t11r xxxx xxxx}{MULCMV} From ead78cc7e61db15cd15842ca4679814406ec26f7 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 28 May 2022 22:36:16 -0700 Subject: [PATCH 110/659] android: update constraintlayout to 2.1.4 --- Source/Android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index 8f61a3feec..b19c3cec62 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -96,7 +96,7 @@ dependencies { implementation 'androidx.exifinterface:exifinterface:1.3.3' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.lifecycle:lifecycle-viewmodel:2.4.1' implementation 'androidx.fragment:fragment:1.4.1' implementation 'androidx.slidingpanelayout:slidingpanelayout:1.2.0' From 863f14a6f780667060172575dcb0b0f3ce2aab21 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 28 May 2022 22:36:53 -0700 Subject: [PATCH 111/659] android: update gradle to 7.4.2 --- Source/Android/gradle/wrapper/gradle-wrapper.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/gradle/wrapper/gradle-wrapper.properties b/Source/Android/gradle/wrapper/gradle-wrapper.properties index 5bb17d745c..8ea2e2b87c 100644 --- a/Source/Android/gradle/wrapper/gradle-wrapper.properties +++ b/Source/Android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jan 05 13:37:44 EST 2022 +#Sat May 28 22:34:03 PDT 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 5f3112653d9fa8d17cba98c411fc7a33e9b56483 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 29 May 2022 01:10:18 -0700 Subject: [PATCH 112/659] android: downgrade AGP to 7.0.4 workaround for https://issuetracker.google.com/issues/232060576 --- Source/Android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Android/build.gradle b/Source/Android/build.gradle index 793ef605a7..ac31f01cf5 100644 --- a/Source/Android/build.gradle +++ b/Source/Android/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.0' + classpath 'com.android.tools.build:gradle:7.0.4' } } From abb7b35011a9000aba093fff8f23193a7c8e7bde Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Thu, 19 May 2022 00:25:02 -0400 Subject: [PATCH 113/659] CMakeLists: Add option to produce a Steam build --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1085d51c92..f3b6140158 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,6 +71,7 @@ option(ENABLE_VULKAN "Enables vulkan video backend" ON) option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence, show the current game on Discord" ON) option(USE_MGBA "Enables GBA controllers emulation using libmgba" ON) option(ENABLE_AUTOUPDATE "Enables support for automatic updates" ON) +option(STEAM "Creates a build for Steam" ON) # Maintainers: if you consider blanket disabling this for your users, please # consider the following points: @@ -937,6 +938,10 @@ else() message(STATUS "libsystemd not found, disabling traversal server watchdog support") endif() +if(STEAM) + add_definitions(-DSTEAM) +endif() + if (WIN32) include_directories(Externals/WIL/include) include_directories(Externals/OpenAL/include) From 52d7a6f56a904a0bada2aa338f79f18d8284a47c Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Fri, 18 Feb 2022 13:50:27 -0500 Subject: [PATCH 114/659] CMakeLists: Enable LINUX_LOCAL_DEV on Steam builds for Linux The Sys folder should be included along with the executable. --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f3b6140158..3a22ed7534 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -428,8 +428,10 @@ if(ENABLE_LTO) endif() endif() -if(UNIX AND LINUX_LOCAL_DEV) - add_definitions(-DLINUX_LOCAL_DEV) +if(UNIX) + if(LINUX_LOCAL_DEV OR (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND STEAM)) + add_definitions(-DLINUX_LOCAL_DEV) + endif() endif() # BSDs put packages in /usr/local instead of /usr, so we need to From e679502a5d947e99f606fb8389fbb806b347f05a Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Fri, 18 Feb 2022 13:56:42 -0500 Subject: [PATCH 115/659] GLX: Guard against redefinition of PFNGLXSWAPINTERVALEXTPROC This type is already declared in glxext.h in the Steam Runtime. --- Source/Core/Common/GL/GLInterface/GLX.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Core/Common/GL/GLInterface/GLX.cpp b/Source/Core/Common/GL/GLInterface/GLX.cpp index 930994a992..b04296d096 100644 --- a/Source/Core/Common/GL/GLInterface/GLX.cpp +++ b/Source/Core/Common/GL/GLInterface/GLX.cpp @@ -13,7 +13,11 @@ typedef GLXContext (*PFNGLXCREATECONTEXTATTRIBSPROC)(Display*, GLXFBConfig, GLXContext, Bool, const int*); + +#ifndef GLX_EXT_swap_control typedef void (*PFNGLXSWAPINTERVALEXTPROC)(Display*, GLXDrawable, int); +#endif + typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int); static PFNGLXCREATECONTEXTATTRIBSPROC glXCreateContextAttribs = nullptr; From 6b05f5cca8a84937fb647875c99c34448c235933 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 20 Feb 2022 03:09:53 -0500 Subject: [PATCH 116/659] DolphinQt: Set the executable's rpath to a lib directory in $ORIGIN on Steam builds for Linux We will store our Qt shared libraries here. --- Source/Core/DolphinQt/CMakeLists.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 4867d30e9d..79e7105db6 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -606,6 +606,22 @@ else() install(TARGETS dolphin-emu RUNTIME DESTINATION ${bindir}) endif() +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND STEAM) + # Set that we want ORIGIN in FLAGS. + # We also want RPATH, not RUNPATH, so disable the new tags. + target_link_options(dolphin-emu + PRIVATE + LINKER:-z,origin + LINKER:--disable-new-dtags + ) + + # For Steam Runtime builds, our Qt shared libraries will be in a "lib" folder. + set_target_properties(dolphin-emu PROPERTIES + BUILD_WITH_INSTALL_RPATH true + INSTALL_RPATH "\$ORIGIN/lib" + ) +endif() + if(USE_MGBA) target_sources(dolphin-emu PRIVATE GBAHost.cpp From 77fb5fa7dcdd9b3bb1da82c2e5b40cdf05638de3 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 20 Feb 2022 18:24:35 -0500 Subject: [PATCH 117/659] DolphinQt: Copy all Qt libraries into Binaries output folder on Steam builds for Linux --- Source/Core/DolphinQt/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 79e7105db6..25b2452aa2 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -620,6 +620,12 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND STEAM) BUILD_WITH_INSTALL_RPATH true INSTALL_RPATH "\$ORIGIN/lib" ) + + add_custom_command(TARGET dolphin-emu POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib" + COMMAND cp -P "${QT_DIR}/../../*.so*" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${QT_DIR}/../../../plugins/platforms" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/platforms" + ) endif() if(USE_MGBA) From 5c4122ec2a0b66b9a717b7be7512504064f566e5 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 20 Feb 2022 18:29:40 -0500 Subject: [PATCH 118/659] DolphinQt: Copy Sys into Binaries output folder on Steam builds for Linux --- Source/Core/DolphinQt/CMakeLists.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 25b2452aa2..6d7a95e524 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -626,6 +626,19 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND STEAM) COMMAND cp -P "${QT_DIR}/../../*.so*" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib" COMMAND ${CMAKE_COMMAND} -E copy_directory "${QT_DIR}/../../../plugins/platforms" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/platforms" ) + + # Mark all data files as resources + set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/Data/Sys") + file(GLOB_RECURSE resources RELATIVE "${CMAKE_SOURCE_DIR}/Data" "${CMAKE_SOURCE_DIR}/Data/Sys/*") + foreach(res ${resources}) + target_sources(dolphin-emu PRIVATE "${CMAKE_SOURCE_DIR}/Data/${res}") + source_group("Resources" FILES "${CMAKE_SOURCE_DIR}/Data/${res}") + endforeach() + + # Copy Sys folder + add_custom_command(TARGET dolphin-emu POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/Data/Sys" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Sys" + ) endif() if(USE_MGBA) From 09875c640331bab3d4b36b84ecb8d5bcdccc54f9 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 20 Feb 2022 22:28:37 -0500 Subject: [PATCH 119/659] DolphinQt: Copy qt.conf into Binaries output folder on Steam builds for Linux --- Source/Core/DolphinQt/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 6d7a95e524..6b24b3e68a 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -627,6 +627,12 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND STEAM) COMMAND ${CMAKE_COMMAND} -E copy_directory "${QT_DIR}/../../../plugins/platforms" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/platforms" ) + # Copy qt.conf + target_sources(dolphin-emu PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/qt.conf") + add_custom_command(TARGET dolphin-emu POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qt.conf" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf" + ) + # Mark all data files as resources set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/Data/Sys") file(GLOB_RECURSE resources RELATIVE "${CMAKE_SOURCE_DIR}/Data" "${CMAKE_SOURCE_DIR}/Data/Sys/*") From df22439826997b29e7ec587c13c4beb0862bce58 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 15 May 2022 04:02:01 -0400 Subject: [PATCH 120/659] FS: Reshuffle Rename to fix steamrt unit test failure --- Source/Core/Core/IOS/FS/HostBackend/FS.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp index ef1e983b2a..27daeeafb1 100644 --- a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp +++ b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp @@ -552,16 +552,20 @@ ResultCode HostFileSystem::Rename(Uid uid, Gid gid, const std::string& old_path, } } - // Finally, remove the child from the old parent and move it to the new parent. FstEntry* new_entry = GetFstEntryForPath(new_path); + new_entry->name = split_new_path.file_name; + + // Finally, remove the child from the old parent and move it to the new parent. const auto it = std::find_if(old_parent->children.begin(), old_parent->children.end(), GetNamePredicate(split_old_path.file_name)); if (it != old_parent->children.end()) { - *new_entry = *it; + new_entry->data = it->data; + new_entry->children = it->children; + old_parent->children.erase(it); } - new_entry->name = split_new_path.file_name; + SaveFst(); return ResultCode::Success; From 2648837d8c173c23af515f5804ca2db9b20950a9 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 22 May 2022 01:19:44 -0400 Subject: [PATCH 121/659] CMakeLists: Add flag to disable usage of shared libpng --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a22ed7534..bf5c46b436 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,7 @@ if(NOT ANDROID) endif() option(USE_SHARED_ENET "Use shared libenet if found rather than Dolphin's soon-to-compatibly-diverge version" OFF) +option(USE_SHARED_LIBPNG "Use shared libpng if found" ON) option(USE_UPNP "Enables UPnP port mapping support" ON) option(ENABLE_NOGUI "Enable NoGUI frontend" ON) option(ENABLE_QT "Enable Qt (Default)" ON) @@ -413,6 +414,9 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") find_library(IOB_LIBRARY IOBluetooth) find_library(IOK_LIBRARY IOKit) find_library(OPENGL_LIBRARY OpenGL) + + # We don't want to use shared libpng. + set(USE_SHARED_LIBPNG OFF) endif() if(ENABLE_LTO) @@ -786,7 +790,7 @@ else() set(LZO lzo2) endif() -if(NOT APPLE) +if(USE_SHARED_LIBPNG) check_lib(PNG libpng png png.h QUIET) endif() if (PNG_FOUND) From 83aabbbece91312c38cc94030818bb9734f6b394 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 14:32:14 -0700 Subject: [PATCH 122/659] docs/DSP: Clarify LRS note $acS.h was a typo, which has been replaced with $acD.h. --- .../DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index c49b10d37f..b625c884fa 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -2588,7 +2588,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeOperation} \begin{DSPOpcodeNote} - \item \Opcode{LRS} can use \Register{\$axD} and cannot use \Register{\$acS.h}, while \Opcode{SRS} and \Opcode{SRSH} only work on \Register{\$acS}. + \item \Opcode{LRS} can use \Register{\$axD}, but cannot use \Register{\$acD.h}, while \Opcode{SRS} and \Opcode{SRSH} only work on \Register{\$acS}. \end{DSPOpcodeNote} \DSPOpcodeFlagsUnchanged From bb01ba60d6121b58d84a2ae5af3b04df94137e86 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 15:33:16 -0700 Subject: [PATCH 123/659] docs/DSP: Fix typo in 'NOP comment --- .../DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index b625c884fa..8ed85c004b 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -4767,7 +4767,7 @@ Extended opcodes do not modify the program counter (\Register{\$pc} register). \end{DSPOpcodeDescription} \begin{DSPOpcodeNote} - \item Generally written as by not including any extension operation, such as writing \texttt{INC \$ac0} instead of writing \texttt{INC'NOP \$ac0}. + \item Generally written by not including any extension operation, such as writing \texttt{INC \$ac0} instead of writing \texttt{INC'NOP \$ac0}. \end{DSPOpcodeNote} \end{DSPOpcode} From b349254ff4c10b5a6d7d1052c5bc5bb8bbecd239 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 16:42:20 -0700 Subject: [PATCH 124/659] docs/DSP: Document the behavior when main and extended opcodes both write to the same register (the write backlog) For more information, ApplyWriteBackLog, WriteToBackLog, and ZeroWriteBackLog were added in b787f5f8f7709cff763c2f3a13b90455a0c8ee18 and the explanatory comment was added in fd40513fed84e41e4b4b65cb4f98295223bcbd9b, although it did not mention the specific instructions that could trigger this edge case. The statements about which registers can be written by main opcodes and extension opcodes are based on my own checking of all instructions in the manual. --- .../Core/DSP/Interpreter/DSPInterpreter.cpp | 28 ++++++++++++++++--- .../Core/DSP/Interpreter/DSPInterpreter.h | 5 ---- .../GameCube_DSP_Users_Manual.tex | 7 +++++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp index 8ca18e2a36..c4cc0e5601 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp @@ -16,8 +16,23 @@ namespace DSP::Interpreter { -// Not needed for game ucodes (it slows down interpreter + easier to compare int VS -// dspjit64 without it) +// Correctly handle instructions such as `INC'L $ac0 : $ac0.l, @$ar0` (encoded as 0x7660) where both +// the main opcode and the extension opcode modify the same register. See the "Extended opcodes" +// section in the manual for more details. No official uCode writes to the same register twice like +// this, so we don't emulate it by default (and also don't support it in the recompiler). +// +// Dolphin only supports this behavior in the interpreter when PRECISE_BACKLOG is defined. +// In ExecuteInstruction, if an extended opcode is in use, the extended opcode's behavior is +// executed first, followed by the main opcode's behavior. The extended opcode does not directly +// write to registers, but instead records the writes into a backlog (WriteToBackLog). The main +// opcode calls ZeroWriteBackLog after it is done reading the register values; this directly +// writes zero to all registers that have pending writes in the backlog. The main opcode then is +// free to write directly to registers it changes. Afterwards, ApplyWriteBackLog bitwise-ors the +// value of the register and the value in the backlog; if the main opcode didn't write to the +// register then ZeroWriteBackLog means that the pending value is being or'd with zero, so it's +// used without changes. When PRECISE_BACKLOG is not defined, ZeroWriteBackLog does nothing and +// ApplyWriteBackLog overwrites the register value with the value from the backlog (so writes from +// extended opcodes "win" over the main opcode). //#define PRECISE_BACKLOG Interpreter::Interpreter(DSPCore& dsp) : m_dsp_core{dsp} @@ -809,7 +824,7 @@ void Interpreter::ConditionalExtendAccum(int reg) void Interpreter::ApplyWriteBackLog() { // Always make sure to have an extra entry at the end w/ -1 to avoid - // infinitive loops + // infinite loops for (int i = 0; m_write_back_log_idx[i] != -1; i++) { u16 value = m_write_back_log[i]; @@ -823,6 +838,11 @@ void Interpreter::ApplyWriteBackLog() } } +// The ext ops are calculated in parallel with the actual op. That means that +// both the main op and the ext op see the same register state as input. The +// output is simple as long as the main and ext ops don't change the same +// register. If they do the output is the bitwise OR of the result of both the +// main and ext ops. void Interpreter::WriteToBackLog(int i, int idx, u16 value) { m_write_back_log[i] = value; @@ -840,7 +860,7 @@ void Interpreter::ZeroWriteBackLog() { #ifdef PRECISE_BACKLOG // always make sure to have an extra entry at the end w/ -1 to avoid - // infinitive loops + // infinite loops for (int i = 0; m_write_back_log_idx[i] != -1; i++) { OpWriteRegister(m_write_back_log_idx[i], 0); diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h index 6d9e3e2709..e7cd266680 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h @@ -235,11 +235,6 @@ private: void ConditionalExtendAccum(int reg); - // The ext ops are calculated in parallel with the actual op. That means that - // both the main op and the ext op see the same register state as input. The - // output is simple as long as the main and ext ops don't change the same - // register. If they do the output is the bitwise OR of the result of both the - // main and ext ops. void WriteToBackLog(int i, int idx, u16 value); void ZeroWriteBackLog(); void ZeroWriteBackLogPreserveAcc(u8 acc); diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 8ed85c004b..87c61b167a 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -4339,9 +4339,16 @@ Extended opcodes do not exist on their own. These opcodes can only be attached t Specifically, opcodes where the first nybble is 0, 1, or 2 cannot be extended. Opcodes where the first nybble is 4 or higher can be extended, using the 8 lower bits. Opcodes where the first nybble is 3 can also be extended, but the main opcode is 9 bits and the extension opcode is 7 bits. For these instructions, the extension opcode is treated as if the first bit were 0 (i.e. \texttt{0xxxxxxx}). +(\Opcode{NX} has no behavior of its own, so it can be used to get an extended opcode's behavior on its own.) Extended opcodes do not modify the program counter (\Register{\$pc} register). +Extended opcodes are run \textit{in parallel} with the main opcode; they see the same register state as the input. (For instance, \texttt{\Opcode{MOVR}\Opcode{'MV} \Register{\$ac1}, \Register{\$ax0.l} : \Register{\$ax0.l}, \Register{\$ac1.m}} (encoded as \Value{0x6113}) \textit{swaps} the values of \Register{\$ac1.m} and \Register{\$ax0.l} (and also extends the new value of \Register{\$ac1.m} into \Register{\$ac1.l} and \Register{\$ac1.h}).) + +Since they are executed in parallel, the main and extension opcodes could theoretically write to the same registers. All opcodes that support extension only modify a main accumulator \Register{\$acD}, as well as \Register{\$prod}, \Register{\$sr}, and/or \Register{\$pc}, while the extension opcodes themselves generally only modify an additional accumulator \Register{\$axD} and addressing registers \Register{\$arS}. The exception is \Opcode{'L} and \Opcode{'LN}, which has the option of writing to \Register{\$acD}. Thus, \texttt{\Opcode{INC}\Opcode{'L} \Register{\$ac0} : \Register{\$ac0.l}, @\Register{\$ar0}} (encoded as \Value{0x7660}) increments \Register{\$ac0} (and thus \Register{\$ac0.l}), but also sets \Register{\$ac0.l} to the value in data memory at address \Register{\$ar0} and increments \Register{\$ar0}. + +When the main and extension opcodes write to the same register, the register is set to the two values bitwise-or'd together. For the above example, \Register{\$ar0.l} would be set to \InlineExpression{(\Register{\$ar0.l} + 1) | MEM[\Register{\$ar0}]}. \textbf{Note that no official uCode writes to the same register twice like this.} + \pagebreak{} \section{Alphabetical list of extended opcodes} From 4dc7208195f679a54066b2ad1adfaa3398aea494 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 17:15:49 -0700 Subject: [PATCH 125/659] docs/DSP: Fix typo with arithmetic instructions that take a 16-bit immediate These instructions used an 'r' in their bit list, but a 'd' in the operands. --- .../Core/DSP/Interpreter/DSPIntArithmetic.cpp | 16 +++++----- .../Core/DSP/Jit/x64/DSPJitArithmetic.cpp | 16 +++++----- .../GameCube_DSP_Users_Manual.tex | 30 +++++++++---------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp index e88fe6ac4a..90199d74d9 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp @@ -45,7 +45,7 @@ void Interpreter::clrl(const UDSPInstruction opc) //---- // ANDCF $acD.m, #I -// 0000 001r 1100 0000 +// 0000 001d 1100 0000 // iiii iiii iiii iiii // Set logic zero (LZ) flag in status register $sr if result of logic AND of // accumulator mid part $acD.m with immediate value I is equal to I. @@ -61,7 +61,7 @@ void Interpreter::andcf(const UDSPInstruction opc) } // ANDF $acD.m, #I -// 0000 001r 1010 0000 +// 0000 001d 1010 0000 // iiii iiii iiii iiii // Set logic zero (LZ) flag in status register $sr if result of logical AND // operation of accumulator mid part $acD.m with immediate value I is equal @@ -144,7 +144,7 @@ void Interpreter::cmpaxh(const UDSPInstruction opc) } // CMPI $amD, #I -// 0000 001r 1000 0000 +// 0000 001d 1000 0000 // iiii iiii iiii iiii // Compares mid accumulator $acD.hm ($amD) with sign extended immediate value I. // Although flags are being set regarding whole accumulator register. @@ -320,7 +320,7 @@ void Interpreter::notc(const UDSPInstruction opc) } // XORI $acD.m, #I -// 0000 001r 0010 0000 +// 0000 001d 0010 0000 // iiii iiii iiii iiii // Logic exclusive or (XOR) of accumulator mid part $acD.m with // immediate value I. @@ -337,7 +337,7 @@ void Interpreter::xori(const UDSPInstruction opc) } // ANDI $acD.m, #I -// 0000 001r 0100 0000 +// 0000 001d 0100 0000 // iiii iiii iiii iiii // Logic AND of accumulator mid part $acD.m with immediate value I. // @@ -354,7 +354,7 @@ void Interpreter::andi(const UDSPInstruction opc) } // ORI $acD.m, #I -// 0000 001r 0110 0000 +// 0000 001d 0110 0000 // iiii iiii iiii iiii // Logic OR of accumulator mid part $acD.m with immediate value I. // @@ -489,8 +489,8 @@ void Interpreter::addaxl(const UDSPInstruction opc) UpdateSR64Add(acc, acx, GetLongAcc(dreg)); } -// ADDI $amR, #I -// 0000 001r 0000 0000 +// ADDI $amD, #I +// 0000 001d 0000 0000 // iiii iiii iiii iiii // Adds immediate (16-bit sign extended) to mid accumulator $acD.hm. // diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp index 716781750e..37e8a4385e 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp @@ -53,7 +53,7 @@ void DSPEmitter::clrl(const UDSPInstruction opc) //---- // ANDCF $acD.m, #I -// 0000 001r 1100 0000 +// 0000 001d 1100 0000 // iiii iiii iiii iiii // Set logic zero (LZ) flag in status register $sr if result of logic AND of // accumulator mid part $acD.m with immediate value I is equal to I. @@ -88,7 +88,7 @@ void DSPEmitter::andcf(const UDSPInstruction opc) } // ANDF $acD.m, #I -// 0000 001r 1010 0000 +// 0000 001d 1010 0000 // iiii iiii iiii iiii // Set logic zero (LZ) flag in status register $sr if result of logical AND // operation of accumulator mid part $acD.m with immediate value I is equal @@ -221,7 +221,7 @@ void DSPEmitter::cmpaxh(const UDSPInstruction opc) } // CMPI $amD, #I -// 0000 001r 1000 0000 +// 0000 001d 1000 0000 // iiii iiii iiii iiii // Compares mid accumulator $acD.hm ($amD) with sign extended immediate value I. // Although flags are being set regarding whole accumulator register. @@ -458,7 +458,7 @@ void DSPEmitter::notc(const UDSPInstruction opc) } // XORI $acD.m, #I -// 0000 001r 0010 0000 +// 0000 001d 0010 0000 // iiii iiii iiii iiii // Logic exclusive or (XOR) of accumulator mid part $acD.m with // immediate value I. @@ -482,7 +482,7 @@ void DSPEmitter::xori(const UDSPInstruction opc) } // ANDI $acD.m, #I -// 0000 001r 0100 0000 +// 0000 001d 0100 0000 // iiii iiii iiii iiii // Logic AND of accumulator mid part $acD.m with immediate value I. // @@ -505,7 +505,7 @@ void DSPEmitter::andi(const UDSPInstruction opc) } // ORI $acD.m, #I -// 0000 001r 0110 0000 +// 0000 001d 0110 0000 // iiii iiii iiii iiii // Logic OR of accumulator mid part $acD.m with immediate value I. // @@ -686,8 +686,8 @@ void DSPEmitter::addaxl(const UDSPInstruction opc) } } -// ADDI $amR, #I -// 0000 001r 0000 0000 +// ADDI $amD, #I +// 0000 001d 0000 0000 // iiii iiii iiii iiii // Adds immediate (16-bit sign extended) to mid accumulator $acD.hm. // diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 87c61b167a..97d4da1aea 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -1217,12 +1217,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{ADDI} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{0000} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{0000} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} \begin{DSPOpcodeFormat} - ADDI $amR, #I + ADDI $amD, #I \end{DSPOpcodeFormat} \begin{DSPOpcodeDescription} @@ -1356,7 +1356,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{ANDCF} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{1100} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{1100} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -1384,7 +1384,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{ANDF} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{1010} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{1010} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -1412,7 +1412,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{ANDI} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{0100} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{0100} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -1953,7 +1953,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{CMPI} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{1000} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{1000} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -3629,7 +3629,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{ORI} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{0110} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{0110} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -4286,7 +4286,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcode}{XORI} \begin{DSPOpcodeBytefield}{16} - \monobitbox{4}{0000} & \monobitbox{4}{001r} & \monobitbox{4}{0010} & \monobitbox{4}{0000} \\ + \monobitbox{4}{0000} & \monobitbox{4}{001d} & \monobitbox{4}{0010} & \monobitbox{4}{0000} \\ \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} & \monobitbox{4}{iiii} \end{DSPOpcodeBytefield} @@ -4960,13 +4960,13 @@ Instruction & Opcode & Page \\ \hline \OpcodeRow{0000 0010 1101 cccc}{RETcc} \OpcodeRow{0000 0010 1111 cccc}{RTIcc} \OpcodeRowSkip -\OpcodeRow{0000 001r 0000 0000 iiii iiii iiii iiii}{ADDI} -\OpcodeRow{0000 001r 0010 0000 iiii iiii iiii iiii}{XORI} -\OpcodeRow{0000 001r 0100 0000 iiii iiii iiii iiii}{ANDI} -\OpcodeRow{0000 001r 0110 0000 iiii iiii iiii iiii}{ORI} -\OpcodeRow{0000 001r 1000 0000 iiii iiii iiii iiii}{CMPI} -\OpcodeRow{0000 001r 1010 0000 iiii iiii iiii iiii}{ANDF} -\OpcodeRow{0000 001r 1100 0000 iiii iiii iiii iiii}{ANDCF} +\OpcodeRow{0000 001d 0000 0000 iiii iiii iiii iiii}{ADDI} +\OpcodeRow{0000 001d 0010 0000 iiii iiii iiii iiii}{XORI} +\OpcodeRow{0000 001d 0100 0000 iiii iiii iiii iiii}{ANDI} +\OpcodeRow{0000 001d 0110 0000 iiii iiii iiii iiii}{ORI} +\OpcodeRow{0000 001d 1000 0000 iiii iiii iiii iiii}{CMPI} +\OpcodeRow{0000 001d 1010 0000 iiii iiii iiii iiii}{ANDF} +\OpcodeRow{0000 001d 1100 0000 iiii iiii iiii iiii}{ANDCF} \OpcodeRowSkip \OpcodeRow{0000 0010 1100 1010}{LSRN} \OpcodeRow{0000 0010 1100 1011}{ASRN} From baf2c710ffbee24413315afe70651c170b645bf7 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 17:16:22 -0700 Subject: [PATCH 126/659] DSP: Fix typo with TST --- Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp | 2 +- Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp index 90199d74d9..5ada6bb669 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp @@ -81,7 +81,7 @@ void Interpreter::andf(const UDSPInstruction opc) // TST // 1011 r001 xxxx xxxx -// Test accumulator %acR. +// Test accumulator $acR. // // flags out: --xx xx00 void Interpreter::tst(const UDSPInstruction opc) diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp index 37e8a4385e..a0185f73a2 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp @@ -126,7 +126,7 @@ void DSPEmitter::andf(const UDSPInstruction opc) // TST // 1011 r001 xxxx xxxx -// Test accumulator %acR. +// Test accumulator $acR. // // flags out: --xx xx00 void DSPEmitter::tst(const UDSPInstruction opc) From 7c63bd189375bba24f5af7703ee765fc7fc88708 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 17:33:12 -0700 Subject: [PATCH 127/659] docs/DSP: Fix inconsistency with ADDI and CMPI We don't have anything called $amD, though we do have $acsD. However, these instructions affect flags based on the whole accumulator, so it's better to just use $acD. --- .../Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp | 13 +++++++------ Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp | 11 ++++++----- .../GameCube_DSP_Users_Manual.tex | 8 ++++---- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp index 5ada6bb669..0a9485b0ab 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntArithmetic.cpp @@ -143,11 +143,12 @@ void Interpreter::cmpaxh(const UDSPInstruction opc) ZeroWriteBackLog(); } -// CMPI $amD, #I +// CMPI $acD, #I // 0000 001d 1000 0000 // iiii iiii iiii iiii -// Compares mid accumulator $acD.hm ($amD) with sign extended immediate value I. -// Although flags are being set regarding whole accumulator register. +// Compares accumulator with immediate. Comparison is executed +// by subtracting the immediate (16-bit sign extended) from mid accumulator +// $acD.hm and computing flags based on whole accumulator $acD. // // flags out: x-xx xxxx void Interpreter::cmpi(const UDSPInstruction opc) @@ -166,8 +167,8 @@ void Interpreter::cmpi(const UDSPInstruction opc) // CMPIS $acD, #I // 0000 011d iiii iiii -// Compares accumulator with short immediate. Comaprison is executed -// by subtracting short immediate (8bit sign extended) from mid accumulator +// Compares accumulator with short immediate. Comparison is executed +// by subtracting the short immediate (8-bit sign extended) from mid accumulator // $acD.hm and computing flags based on whole accumulator $acD. // // flags out: x-xx xxxx @@ -489,7 +490,7 @@ void Interpreter::addaxl(const UDSPInstruction opc) UpdateSR64Add(acc, acx, GetLongAcc(dreg)); } -// ADDI $amD, #I +// ADDI $acD, #I // 0000 001d 0000 0000 // iiii iiii iiii iiii // Adds immediate (16-bit sign extended) to mid accumulator $acD.hm. diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp index a0185f73a2..e2627f0e85 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp @@ -220,11 +220,12 @@ void DSPEmitter::cmpaxh(const UDSPInstruction opc) } } -// CMPI $amD, #I +// CMPI $acD, #I // 0000 001d 1000 0000 // iiii iiii iiii iiii -// Compares mid accumulator $acD.hm ($amD) with sign extended immediate value I. -// Although flags are being set regarding whole accumulator register. +// Compares accumulator with immediate. Comparison is executed +// by subtracting the immediate (16-bit sign extended) from mid accumulator +// $acD.hm and computing flags based on whole accumulator $acD. // // flags out: x-xx xxxx void DSPEmitter::cmpi(const UDSPInstruction opc) @@ -257,7 +258,7 @@ void DSPEmitter::cmpi(const UDSPInstruction opc) // CMPIS $acD, #I // 0000 011d iiii iiii // Compares accumulator with short immediate. Comparison is executed -// by subtracting short immediate (8bit sign extended) from mid accumulator +// by subtracting the short immediate (8-bit sign extended) from mid accumulator // $acD.hm and computing flags based on whole accumulator $acD. // // flags out: x-xx xxxx @@ -686,7 +687,7 @@ void DSPEmitter::addaxl(const UDSPInstruction opc) } } -// ADDI $amD, #I +// ADDI $acD, #I // 0000 001d 0000 0000 // iiii iiii iiii iiii // Adds immediate (16-bit sign extended) to mid accumulator $acD.hm. diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 97d4da1aea..5218829044 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -1222,7 +1222,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeBytefield} \begin{DSPOpcodeFormat} - ADDI $amD, #I + ADDI $acD, #I \end{DSPOpcodeFormat} \begin{DSPOpcodeDescription} @@ -1958,12 +1958,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeBytefield} \begin{DSPOpcodeFormat} - CMPI $amD, #I + CMPI $acD, #I \end{DSPOpcodeFormat} \begin{DSPOpcodeDescription} - \item Compares mid accumulator \Register{\$acD.hm} (\Register{\$amD}) with sign-extended immediate value \Value{I}. - However, flags are set with regards to the whole accumulator register. + \item Compares accumulator with immediate. Comparison is performed by subtracting the immediate (16-bit sign-extended) + from mid accumulator \Register{\$acD.hm} and computing flags based on whole accumulator \Register{\$acD}. \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} From f88b7ab6b389878bfc1c3a023c99f534fa5fae21 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 30 May 2022 18:31:38 -0700 Subject: [PATCH 128/659] DSP LLE JIT: Fix Update_SR_Register16_OverS32 There were 3 bugs here: - The input register for the full register wasn't actually being used; it was read into RCX but RCX wasn't used by Update_SR_Register16_OverS32 (except as a scratch register). The way the DSP LLE recompiler uses registers is in general confusing, so this commit changes a few uses to have a variable for the register being used, to make code a bit more readable. (Default parameter values were also removed so that they needed to be explicitly specified). - Update_SR_Register16 was doing a 64-bit test, when it should have been doing a 16-bit test. For the most part this doesn't matter due to sign-extension, but it does come up with e.g. `ORI` or `ANDI`. - Update_SR_Register16_OverS32 did the over s32 check, and then called Update_SR_Register16. Update_SR_Register16 masks $sr with ~SR_CMP_MASK, clearing the over s32 bit. Now the over s32 check is performed after calling Update_SR_Register16 (without masking a second time). No official uCode cares about the over s32 bit. --- Source/Core/Core/DSP/Jit/x64/DSPEmitter.h | 4 +- .../Core/DSP/Jit/x64/DSPJitArithmetic.cpp | 124 ++++++++++-------- Source/Core/Core/DSP/Jit/x64/DSPJitCCUtil.cpp | 25 ++-- 3 files changed, 86 insertions(+), 67 deletions(-) diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h index f64e211e00..21fab446e1 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h @@ -257,8 +257,8 @@ private: { UpdateSR64AddSub(val1, val2, result, scratch, true); } - void Update_SR_Register16(Gen::X64Reg val = Gen::EAX); - void Update_SR_Register16_OverS32(Gen::X64Reg val = Gen::EAX); + void Update_SR_Register16(Gen::X64Reg val); + void Update_SR_Register16_OverS32(Gen::X64Reg val, Gen::X64Reg full_val, Gen::X64Reg scratch); // Register helpers void setCompileSR(u16 bit); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp index 716781750e..7958787f94 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitArithmetic.cpp @@ -152,9 +152,9 @@ void DSPEmitter::tstaxh(const UDSPInstruction opc) { u8 reg = (opc >> 8) & 0x1; // s16 val = dsp_get_ax_h(reg); - get_ax_h(reg); + get_ax_h(reg, EAX); // Update_SR_Register16(val); - Update_SR_Register16(); + Update_SR_Register16(EAX); } } @@ -301,16 +301,18 @@ void DSPEmitter::xorr(const UDSPInstruction opc) u8 dreg = (opc >> 8) & 0x1; u8 sreg = (opc >> 9) & 0x1; // u16 accm = g_dsp.r.acm[dreg] ^ g_dsp.r.axh[sreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_ax_h(sreg, RDX); - XOR(64, R(RAX), R(RDX)); + XOR(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -326,16 +328,18 @@ void DSPEmitter::andr(const UDSPInstruction opc) u8 dreg = (opc >> 8) & 0x1; u8 sreg = (opc >> 9) & 0x1; // u16 accm = g_dsp.r.acm[dreg] & g_dsp.r.axh[sreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_ax_h(sreg, RDX); - AND(64, R(RAX), R(RDX)); + AND(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -351,16 +355,18 @@ void DSPEmitter::orr(const UDSPInstruction opc) u8 dreg = (opc >> 8) & 0x1; u8 sreg = (opc >> 9) & 0x1; // u16 accm = g_dsp.r.acm[dreg] | g_dsp.r.axh[sreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_ax_h(sreg, RDX); - OR(64, R(RAX), R(RDX)); + OR(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -375,16 +381,18 @@ void DSPEmitter::andc(const UDSPInstruction opc) { u8 dreg = (opc >> 8) & 0x1; // u16 accm = g_dsp.r.acm[dreg] & g_dsp.r.acm[1 - dreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_acc_m(1 - dreg, RDX); - AND(64, R(RAX), R(RDX)); + AND(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -399,16 +407,18 @@ void DSPEmitter::orc(const UDSPInstruction opc) { u8 dreg = (opc >> 8) & 0x1; // u16 accm = g_dsp.r.acm[dreg] | g_dsp.r.acm[1 - dreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_acc_m(1 - dreg, RDX); - OR(64, R(RAX), R(RDX)); + OR(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -422,16 +432,18 @@ void DSPEmitter::xorc(const UDSPInstruction opc) { u8 dreg = (opc >> 8) & 0x1; // u16 accm = g_dsp.r.acm[dreg] ^ g_dsp.r.acm[1 - dreg]; - get_acc_m(dreg, RAX); + X64Reg accm = RAX; + get_acc_m(dreg, accm); get_acc_m(1 - dreg, RDX); - XOR(64, R(RAX), R(RDX)); + XOR(64, R(accm), R(RDX)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -445,15 +457,17 @@ void DSPEmitter::notc(const UDSPInstruction opc) { u8 dreg = (opc >> 8) & 0x1; // u16 accm = g_dsp.r.acm[dreg] ^ 0xffff; - get_acc_m(dreg, RAX); - NOT(16, R(AX)); + X64Reg accm = RAX; + get_acc_m(dreg, accm); + NOT(16, R(accm)); // g_dsp.r.acm[dreg] = accm; - set_acc_m(dreg); + set_acc_m(dreg, R(accm)); // Update_SR_Register16((s16)accm, false, false, isOverS32(dsp_get_long_acc(dreg))); if (FlagsNeeded()) { - get_long_acc(dreg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(dreg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -470,14 +484,16 @@ void DSPEmitter::xori(const UDSPInstruction opc) // u16 imm = dsp_fetch_code(); const u16 imm = m_dsp_core.DSPState().ReadIMEM(m_compile_pc + 1); // g_dsp.r.acm[reg] ^= imm; - get_acc_m(reg, RAX); - XOR(16, R(RAX), Imm16(imm)); - set_acc_m(reg); + X64Reg accm = RAX; + get_acc_m(reg, accm); + XOR(16, R(accm), Imm16(imm)); + set_acc_m(reg, R(accm)); // Update_SR_Register16((s16)g_dsp.r.acm[reg], false, false, isOverS32(dsp_get_long_acc(reg))); if (FlagsNeeded()) { - get_long_acc(reg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(reg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -493,14 +509,16 @@ void DSPEmitter::andi(const UDSPInstruction opc) // u16 imm = dsp_fetch_code(); const u16 imm = m_dsp_core.DSPState().ReadIMEM(m_compile_pc + 1); // g_dsp.r.acm[reg] &= imm; - get_acc_m(reg, RAX); - AND(16, R(RAX), Imm16(imm)); - set_acc_m(reg); + X64Reg accm = RAX; + get_acc_m(reg, accm); + AND(16, R(accm), Imm16(imm)); + set_acc_m(reg, R(accm)); // Update_SR_Register16((s16)g_dsp.r.acm[reg], false, false, isOverS32(dsp_get_long_acc(reg))); if (FlagsNeeded()) { - get_long_acc(reg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(reg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } @@ -516,14 +534,16 @@ void DSPEmitter::ori(const UDSPInstruction opc) // u16 imm = dsp_fetch_code(); const u16 imm = m_dsp_core.DSPState().ReadIMEM(m_compile_pc + 1); // g_dsp.r.acm[reg] |= imm; - get_acc_m(reg, RAX); - OR(16, R(RAX), Imm16(imm)); - set_acc_m(reg); + X64Reg accm = RAX; + get_acc_m(reg, accm); + OR(16, R(accm), Imm16(imm)); + set_acc_m(reg, R(accm)); // Update_SR_Register16((s16)g_dsp.r.acm[reg], false, false, isOverS32(dsp_get_long_acc(reg))); if (FlagsNeeded()) { - get_long_acc(reg, RCX); - Update_SR_Register16_OverS32(); + X64Reg acc_full = RCX; + get_long_acc(reg, acc_full); + Update_SR_Register16_OverS32(accm, acc_full, RDX); } } diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitCCUtil.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitCCUtil.cpp index 30cd5d8497..3fd5a70646 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitCCUtil.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitCCUtil.cpp @@ -114,7 +114,7 @@ void DSPEmitter::UpdateSR64AddSub(Gen::X64Reg val1, Gen::X64Reg val2, Gen::X64Re Update_SR_Register(result, scratch); } -// In: RAX: s64 _Value +// In: RAX: s16 _Value (middle) void DSPEmitter::Update_SR_Register16(X64Reg val) { const OpArg sr_reg = m_gpr.GetReg(DSP_REG_SR); @@ -122,7 +122,7 @@ void DSPEmitter::Update_SR_Register16(X64Reg val) // // 0x04 // if (_Value == 0) g_dsp.r[DSP_REG_SR] |= SR_ARITH_ZERO; - TEST(64, R(val), R(val)); + TEST(16, R(val), R(val)); FixupBranch notZero = J_CC(CC_NZ); OR(16, sr_reg, Imm16(SR_ARITH_ZERO | SR_TOP2BITS)); FixupBranch end = J(); @@ -149,26 +149,25 @@ void DSPEmitter::Update_SR_Register16(X64Reg val) m_gpr.PutReg(DSP_REG_SR); } -// In: RAX: s64 _Value -// Clobbers RCX -void DSPEmitter::Update_SR_Register16_OverS32(Gen::X64Reg val) +// In: RAX: s16 _Value (middle) +// In: RDX: s64 _FullValue +// Clobbers scratch +void DSPEmitter::Update_SR_Register16_OverS32(Gen::X64Reg val, Gen::X64Reg full_val, + Gen::X64Reg scratch) { + Update_SR_Register16(val); + const OpArg sr_reg = m_gpr.GetReg(DSP_REG_SR); - AND(16, sr_reg, Imm16(~SR_CMP_MASK)); // // 0x10 - // if (_Value != (s32)_Value) g_dsp.r[DSP_REG_SR] |= SR_OVER_S32; - MOVSX(64, 32, RCX, R(val)); - CMP(64, R(RCX), R(val)); + // if (_FullValue != (s32)_FullValue) g_dsp.r[DSP_REG_SR] |= SR_OVER_S32; + MOVSX(64, 32, scratch, R(full_val)); + CMP(64, R(scratch), R(full_val)); FixupBranch noOverS32 = J_CC(CC_E); OR(16, sr_reg, Imm16(SR_OVER_S32)); SetJumpTarget(noOverS32); m_gpr.PutReg(DSP_REG_SR); - // // 0x20 - Checks if top bits of m are equal - // if ((((u16)_Value >> 14) == 0) || (((u16)_Value >> 14) == 3)) - // AND(32, R(val), Imm32(0xc0000000)); - Update_SR_Register16(val); } } // namespace DSP::JIT::x64 From 4d563ce4d15d4cf67e00549d320f5350f7494e93 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Tue, 31 May 2022 16:14:59 -0700 Subject: [PATCH 129/659] Android: Ensure File::s_android_sys_directory is set only once --- Source/Core/Common/FileUtil.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index a218f6cb8e..8e42e0f42e 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -921,6 +921,8 @@ std::string GetSysDirectory() void SetSysDirectory(const std::string& path) { INFO_LOG_FMT(COMMON, "Setting Sys directory to {}", path); + ASSERT_MSG(COMMON, s_android_sys_directory.empty(), "Sys directory already set to {}", + s_android_sys_directory); s_android_sys_directory = path; } #endif From c2be78079c96440edf672c1bce9ebfafcb4ec283 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 27 May 2022 14:25:43 -0700 Subject: [PATCH 130/659] FileUtil: Remove GetSysDirectory log spam Create and log path the first time GetSysDirectory is called, then just return the path on future calls. --- Source/Core/Common/FileUtil.cpp | 10 ++++++++-- Source/Core/Common/FileUtil.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 8e42e0f42e..5707507a42 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -885,7 +885,7 @@ std::string GetExeDirectory() #endif } -std::string GetSysDirectory() +static std::string CreateSysDirectoryPath() { std::string sysDir; @@ -913,10 +913,16 @@ std::string GetSysDirectory() #endif sysDir += DIR_SEP; - INFO_LOG_FMT(COMMON, "GetSysDirectory: Setting to {}:", sysDir); + INFO_LOG_FMT(COMMON, "CreateSysDirectoryPath: Setting to {}", sysDir); return sysDir; } +const std::string& GetSysDirectory() +{ + static const std::string sys_directory = CreateSysDirectoryPath(); + return sys_directory; +} + #ifdef ANDROID void SetSysDirectory(const std::string& path) { diff --git a/Source/Core/Common/FileUtil.h b/Source/Core/Common/FileUtil.h index 0542cb3402..2672e237de 100644 --- a/Source/Core/Common/FileUtil.h +++ b/Source/Core/Common/FileUtil.h @@ -215,7 +215,7 @@ void SetUserPath(unsigned int dir_index, std::string path); std::string GetThemeDir(const std::string& theme_name); // Returns the path to where the sys file are -std::string GetSysDirectory(); +const std::string& GetSysDirectory(); #ifdef ANDROID void SetSysDirectory(const std::string& path); From e0c9ae16b97a32ef4b778729200e4a9e552ce665 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 27 May 2022 23:49:28 -0700 Subject: [PATCH 131/659] FileUtil: Refactor CreateSysDirectoryPath() --- Source/Core/Common/FileUtil.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 5707507a42..522d3028fa 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -887,8 +887,6 @@ std::string GetExeDirectory() static std::string CreateSysDirectoryPath() { - std::string sysDir; - #if defined(_WIN32) || defined(LINUX_LOCAL_DEV) #define SYSDATA_DIR "Sys" #elif defined __APPLE__ @@ -902,19 +900,18 @@ static std::string CreateSysDirectoryPath() #endif #if defined(__APPLE__) - sysDir = GetBundleDirectory() + DIR_SEP + SYSDATA_DIR; + const std::string sys_directory = GetBundleDirectory() + DIR_SEP SYSDATA_DIR DIR_SEP; #elif defined(_WIN32) || defined(LINUX_LOCAL_DEV) - sysDir = GetExeDirectory() + DIR_SEP + SYSDATA_DIR; + const std::string sys_directory = GetExeDirectory() + DIR_SEP SYSDATA_DIR DIR_SEP; #elif defined ANDROID - sysDir = s_android_sys_directory; - ASSERT_MSG(COMMON, !sysDir.empty(), "Sys directory has not been set"); + const std::string sys_directory = s_android_sys_directory + DIR_SEP; + ASSERT_MSG(COMMON, !s_android_sys_directory.empty(), "Sys directory has not been set"); #else - sysDir = SYSDATA_DIR; + const std::string sys_directory = SYSDATA_DIR DIR_SEP; #endif - sysDir += DIR_SEP; - INFO_LOG_FMT(COMMON, "CreateSysDirectoryPath: Setting to {}", sysDir); - return sysDir; + INFO_LOG_FMT(COMMON, "CreateSysDirectoryPath: Setting to {}", sys_directory); + return sys_directory; } const std::string& GetSysDirectory() From 0dd181f46137985142319582da671b0436524599 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 30 May 2022 12:42:34 -0700 Subject: [PATCH 132/659] docs/DSP: Add missing dollar signs in shift instruction operation sections --- .../GameCube_DSP_Users_Manual.tex | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index 5218829044..a0c1753728 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -1519,12 +1519,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (ac1.m & 64) - IF (ac1.m & 63) != 0 - $ac0 >>= (64 - (ac1.m & 63)) + IF ($ac1.m & 64) + IF ($ac1.m & 63) != 0 + $ac0 >>= (64 - ($ac1.m & 63)) ENDIF ELSE - $ac0 <<= ac1.m + $ac0 <<= $ac1.m ENDIF FLAGS($ac0) $pc++ @@ -1547,12 +1547,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (ac(1-D).m & 64) - IF (ac(1-D).m & 63) != 0 - $acD >>= (64 - (ac(1-D).m & 63)) + IF ($ac(1-D).m & 64) + IF ($ac(1-D).m & 63) != 0 + $acD >>= (64 - ($ac(1-D).m & 63)) ENDIF ELSE - $acD <<= ac(1-D).m + $acD <<= $ac(1-D).m ENDIF FLAGS($acD) $pc++ @@ -1579,12 +1579,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (axS.h & 64) - IF (axS.h & 63) != 0 - $acD >>= (64 - (axS.h & 63)) + IF ($axS.h & 64) + IF ($axS.h & 63) != 0 + $acD >>= (64 - ($axS.h & 63)) ENDIF ELSE - $acD <<= axS.h + $acD <<= $axS.h ENDIF FLAGS($acD) $pc++ @@ -2676,12 +2676,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (ac1.m & 64) - IF (ac1.m & 63) != 0 - $ac0 >>= (64 - (ac1.m & 63)) + IF ($ac1.m & 64) + IF ($ac1.m & 63) != 0 + $ac0 >>= (64 - ($ac1.m & 63)) ENDIF ELSE - $ac0 <<= ac1.m + $ac0 <<= $ac1.m ENDIF FLAGS($ac0) $pc++ @@ -2704,12 +2704,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (ac(1-D).m & 64) - IF (ac(1-D).m & 63) != 0 - $acD >>= (64 - (ac(1-D).m & 63)) + IF ($ac(1-D).m & 64) + IF ($ac(1-D).m & 63) != 0 + $acD >>= (64 - ($ac(1-D).m & 63)) ENDIF ELSE - $acD <<= ac(1-D).m + $acD <<= $ac(1-D).m ENDIF FLAGS($acD) $pc++ @@ -2736,12 +2736,12 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} - IF (axS.h & 64) - IF (axS.h & 63) != 0 - $acD >>= (64 - (axS.h & 63)) + IF ($axS.h & 64) + IF ($axS.h & 63) != 0 + $acD >>= (64 - ($axS.h & 63)) ENDIF ELSE - $acD <<= axS.h + $acD <<= $axS.h ENDIF FLAGS($acD) $pc++ From f9c6eb7b9856239e8b62023de570187d304836de Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Tue, 31 May 2022 20:17:01 -0500 Subject: [PATCH 133/659] InputCommon/ControllerEmu: Use more locks Loading configs while another thread is messing with stuff just doesn't feel like a good idea Hopefully fixes Wiimote Scanning Thread crashes on startup --- Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp index 9cd7ced6f9..7aec56115c 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp @@ -40,6 +40,8 @@ std::unique_lock EmulatedController::GetStateLock() void EmulatedController::UpdateReferences(const ControllerInterface& devi) { + const auto lock = GetStateLock(); + m_default_device_is_connected = devi.HasConnectedDevice(m_default_device); ciface::ExpressionParser::ControlEnvironment env(devi, GetDefaultDevice(), m_expression_vars); @@ -138,6 +140,7 @@ void EmulatedController::SetDefaultDevice(ciface::Core::DeviceQualifier devq) void EmulatedController::LoadConfig(IniFile::Section* sec, const std::string& base) { + const auto lock = GetStateLock(); std::string defdev = GetDefaultDevice().ToString(); if (base.empty()) { @@ -151,6 +154,7 @@ void EmulatedController::LoadConfig(IniFile::Section* sec, const std::string& ba void EmulatedController::SaveConfig(IniFile::Section* sec, const std::string& base) { + const auto lock = GetStateLock(); const std::string defdev = GetDefaultDevice().ToString(); if (base.empty()) sec->Set(/*std::string(" ") +*/ base + "Device", defdev, ""); @@ -161,6 +165,7 @@ void EmulatedController::SaveConfig(IniFile::Section* sec, const std::string& ba void EmulatedController::LoadDefaults(const ControllerInterface& ciface) { + const auto lock = GetStateLock(); // load an empty inifile section, clears everything IniFile::Section sec; LoadConfig(&sec); From 177dae6a1aafdbe3d0cba01cb7f8c4e1001a584e Mon Sep 17 00:00:00 2001 From: TryTwo Date: Fri, 27 May 2022 17:34:47 -0700 Subject: [PATCH 134/659] Add options for BreakpointWidget, WatchWidget, and CheatSearches to send address to Memory Widget --- Source/Core/DolphinQt/CheatSearchWidget.cpp | 4 ++++ Source/Core/DolphinQt/CheatSearchWidget.h | 1 + Source/Core/DolphinQt/CheatsManager.cpp | 1 + Source/Core/DolphinQt/CheatsManager.h | 1 + Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp | 4 +++- Source/Core/DolphinQt/Debugger/BreakpointWidget.h | 3 ++- Source/Core/DolphinQt/Debugger/WatchWidget.cpp | 6 ++++++ Source/Core/DolphinQt/Debugger/WatchWidget.h | 3 ++- Source/Core/DolphinQt/MainWindow.cpp | 6 +++++- 9 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Source/Core/DolphinQt/CheatSearchWidget.cpp b/Source/Core/DolphinQt/CheatSearchWidget.cpp index e07a5c4ecb..33594f7d1d 100644 --- a/Source/Core/DolphinQt/CheatSearchWidget.cpp +++ b/Source/Core/DolphinQt/CheatSearchWidget.cpp @@ -448,8 +448,12 @@ void CheatSearchWidget::OnAddressTableContextMenu() if (m_address_table->selectedItems().isEmpty()) return; + auto* item = m_address_table->selectedItems()[0]; + const u32 address = item->data(ADDRESS_TABLE_ADDRESS_ROLE).toUInt(); + QMenu* menu = new QMenu(this); + menu->addAction(tr("Show in memory"), [this, address] { emit ShowMemory(address); }); menu->addAction(tr("Generate Action Replay Code"), this, &CheatSearchWidget::GenerateARCode); menu->exec(QCursor::pos()); diff --git a/Source/Core/DolphinQt/CheatSearchWidget.h b/Source/Core/DolphinQt/CheatSearchWidget.h index 9fa1581247..88aeeb9fcb 100644 --- a/Source/Core/DolphinQt/CheatSearchWidget.h +++ b/Source/Core/DolphinQt/CheatSearchWidget.h @@ -41,6 +41,7 @@ public: signals: void ActionReplayCodeGenerated(const ActionReplay::ARCode& ar_code); + void ShowMemory(const u32 address); private: void CreateWidgets(); diff --git a/Source/Core/DolphinQt/CheatsManager.cpp b/Source/Core/DolphinQt/CheatsManager.cpp index babea143ee..f4b7154b6f 100644 --- a/Source/Core/DolphinQt/CheatsManager.cpp +++ b/Source/Core/DolphinQt/CheatsManager.cpp @@ -122,6 +122,7 @@ void CheatsManager::OnNewSessionCreated(const Cheats::CheatSearchSessionBase& se if (m_ar_code) m_ar_code->AddCode(ar_code); }); + w->connect(w, &CheatSearchWidget::ShowMemory, [this](u32 address) { emit ShowMemory(address); }); m_tab_widget->setCurrentIndex(tab_index); } diff --git a/Source/Core/DolphinQt/CheatsManager.h b/Source/Core/DolphinQt/CheatsManager.h index 450e004fe9..8cd478e81c 100644 --- a/Source/Core/DolphinQt/CheatsManager.h +++ b/Source/Core/DolphinQt/CheatsManager.h @@ -35,6 +35,7 @@ public: signals: void OpenGeneralSettings(); + void ShowMemory(u32 address); private: void CreateWidgets(); diff --git a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp index 258a155f01..c8d98aabae 100644 --- a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp @@ -18,6 +18,7 @@ #include "Core/PowerPC/PPCSymbolDB.h" #include "Core/PowerPC/PowerPC.h" +#include "DolphinQt/Debugger/MemoryWidget.h" #include "DolphinQt/Debugger/NewBreakpointDialog.h" #include "DolphinQt/Resources.h" #include "DolphinQt/Settings.h" @@ -355,13 +356,13 @@ void BreakpointWidget::OnContextMenu() if (bp_iter == inst_breakpoints.end()) return; + menu->addAction(tr("Show in Code"), [this, bp_address] { emit ShowCode(bp_address); }); menu->addAction(bp_iter->is_enabled ? tr("Disable") : tr("Enable"), [this, &bp_address]() { PowerPC::breakpoints.ToggleBreakPoint(bp_address); emit BreakpointsChanged(); Update(); }); - menu->addAction(tr("Go to"), [this, bp_address] { emit SelectedBreakpoint(bp_address); }); } else { @@ -372,6 +373,7 @@ void BreakpointWidget::OnContextMenu() if (mb_iter == memory_breakpoints.end()) return; + menu->addAction(tr("Show in Memory"), [this, bp_address] { emit ShowMemory(bp_address); }); menu->addAction(mb_iter->is_enabled ? tr("Disable") : tr("Enable"), [this, &bp_address]() { PowerPC::memchecks.ToggleBreakPoint(bp_address); diff --git a/Source/Core/DolphinQt/Debugger/BreakpointWidget.h b/Source/Core/DolphinQt/Debugger/BreakpointWidget.h index 9555d7450e..782f20c1ff 100644 --- a/Source/Core/DolphinQt/Debugger/BreakpointWidget.h +++ b/Source/Core/DolphinQt/Debugger/BreakpointWidget.h @@ -31,7 +31,8 @@ public: signals: void BreakpointsChanged(); - void SelectedBreakpoint(u32 address); + void ShowCode(u32 address); + void ShowMemory(u32 address); protected: void closeEvent(QCloseEvent*) override; diff --git a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp index 870c3c3665..e0573f39d4 100644 --- a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp @@ -310,6 +310,7 @@ void WatchWidget::ShowContextMenu() if (row >= 0) { + menu->addAction(tr("Show in Memory"), this, [this, row] { ShowInMemory(row); }); // i18n: This kind of "watch" is used for watching emulated memory. // It's not related to timekeeping devices. menu->addAction(tr("&Delete Watch"), this, [this, row] { DeleteWatch(row); }); @@ -395,6 +396,11 @@ void WatchWidget::AddWatchBreakpoint(int row) emit RequestMemoryBreakpoint(PowerPC::debug_interface.GetWatch(row).address); } +void WatchWidget::ShowInMemory(int row) +{ + emit ShowMemory(PowerPC::debug_interface.GetWatch(row).address); +} + void WatchWidget::AddWatch(QString name, u32 addr) { PowerPC::debug_interface.SetWatch(addr, name.toStdString()); diff --git a/Source/Core/DolphinQt/Debugger/WatchWidget.h b/Source/Core/DolphinQt/Debugger/WatchWidget.h index 82875a8d11..6529bba4d3 100644 --- a/Source/Core/DolphinQt/Debugger/WatchWidget.h +++ b/Source/Core/DolphinQt/Debugger/WatchWidget.h @@ -24,6 +24,7 @@ public: void AddWatch(QString name, u32 addr); signals: void RequestMemoryBreakpoint(u32 addr); + void ShowMemory(u32 addr); protected: void closeEvent(QCloseEvent*) override; @@ -47,7 +48,7 @@ private: void OnItemChanged(QTableWidgetItem* item); void DeleteWatch(int row); void AddWatchBreakpoint(int row); - + void ShowInMemory(int row); void UpdateIcons(); QAction* m_new; diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 4cd1ca0d1a..361a182819 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -455,6 +455,7 @@ void MainWindow::CreateComponents() }; connect(m_watch_widget, &WatchWidget::RequestMemoryBreakpoint, request_memory_breakpoint); + connect(m_watch_widget, &WatchWidget::ShowMemory, m_memory_widget, &MemoryWidget::SetAddress); connect(m_register_widget, &RegisterWidget::RequestMemoryBreakpoint, request_memory_breakpoint); connect(m_register_widget, &RegisterWidget::RequestWatch, request_watch); connect(m_register_widget, &RegisterWidget::RequestViewInMemory, request_view_in_memory); @@ -480,10 +481,13 @@ void MainWindow::CreateComponents() &CodeWidget::Update); connect(m_breakpoint_widget, &BreakpointWidget::BreakpointsChanged, m_memory_widget, &MemoryWidget::Update); - connect(m_breakpoint_widget, &BreakpointWidget::SelectedBreakpoint, [this](u32 address) { + connect(m_breakpoint_widget, &BreakpointWidget::ShowCode, [this](u32 address) { if (Core::GetState() == Core::State::Paused) m_code_widget->SetAddress(address, CodeViewWidget::SetAddressUpdate::WithDetailedUpdate); }); + connect(m_breakpoint_widget, &BreakpointWidget::ShowMemory, m_memory_widget, + &MemoryWidget::SetAddress); + connect(m_cheats_manager, &CheatsManager::ShowMemory, m_memory_widget, &MemoryWidget::SetAddress); } void MainWindow::ConnectMenuBar() From db8bd8a726673e8627652d5679e43a012d8f21ad Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 22:46:12 -0400 Subject: [PATCH 135/659] BuildMacOSUniversalBinary: Bump minimum macOS to 10.14 --- BuildMacOSUniversalBinary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BuildMacOSUniversalBinary.py b/BuildMacOSUniversalBinary.py index 2425b5bea9..8632995407 100755 --- a/BuildMacOSUniversalBinary.py +++ b/BuildMacOSUniversalBinary.py @@ -64,7 +64,7 @@ DEFAULT_CONFIG = { # Minimum macOS version for each architecture slice "arm64_mac_os_deployment_target": "11.0.0", - "x86_64_mac_os_deployment_target": "10.13.0", + "x86_64_mac_os_deployment_target": "10.14.0", # CMake Generator to use for building "generator": "Unix Makefiles", From 77d0170285f6336a8dbb4daae2fb12f944a870b9 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 22:49:45 -0400 Subject: [PATCH 136/659] CMakeLists: Remove comment pertaining to macOS versions prior to 10.14 --- CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1085d51c92..df7c1b8823 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,13 +13,6 @@ endif() # Minimum OS X version. # This is inserted into the Info.plist as well. - -# MacOS prior to 10.14 did not support aligned alloc which is used to implement -# std::unique_ptr in the arm64 C++ standard library. x86_64 builds can override -# this to 10.13.0 using -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13.0" without issue. -# This is done in the universal binary building script to build a binary that -# runs on 10.13 on x86_64 computers, while still containing an arm64 slice. - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14.0" CACHE STRING "") set(CMAKE_USER_MAKE_RULES_OVERRIDE "CMake/FlagsOverride.cmake") From 6e2febd4045c368e9f4c8dd5f751b1d6c6af14ec Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 22:49:56 -0400 Subject: [PATCH 137/659] VideoBackendBase: Remove __builtin_available for macOS 10.14 --- Source/Core/VideoCommon/VideoBackendBase.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 7136545c25..3a2eafd025 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -215,10 +215,7 @@ const std::vector>& VideoBackendBase::GetAvail std::vector> backends; // OGL > D3D11 > D3D12 > Vulkan > SW > Null - // - // On macOS Mojave and newer, we prefer Vulkan over OGL due to outdated drivers. - // However, on macOS High Sierra and older, we still prefer OGL due to its older Metal version - // missing several features required by the Vulkan backend. + // On macOS, we prefer Vulkan over OpenGL due to OpenGL support being deprecated by Apple. #ifdef HAS_OPENGL backends.push_back(std::make_unique()); #endif @@ -228,17 +225,11 @@ const std::vector>& VideoBackendBase::GetAvail #endif #ifdef HAS_VULKAN #ifdef __APPLE__ - // If we can run the Vulkan backend, emplace it at the beginning of the vector so - // it takes precedence over OpenGL. - if (__builtin_available(macOS 10.14, *)) - { - backends.emplace(backends.begin(), std::make_unique()); - } - else + // Emplace the Vulkan backend at the beginning so it takes precedence over OpenGL. + backends.emplace(backends.begin(), std::make_unique()); +#else + backends.push_back(std::make_unique()); #endif - { - backends.push_back(std::make_unique()); - } #endif #ifdef HAS_OPENGL backends.push_back(std::make_unique()); From 1cb3058abe827470a0aba458cc6c3cb0cc884763 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 22:51:10 -0400 Subject: [PATCH 138/659] MemoryUtil: Remove __builtin_available for macOS 10.14 --- Source/Core/Common/MemoryUtil.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Source/Core/Common/MemoryUtil.cpp b/Source/Core/Common/MemoryUtil.cpp index 858135bc0e..f94af85822 100644 --- a/Source/Core/Common/MemoryUtil.cpp +++ b/Source/Core/Common/MemoryUtil.cpp @@ -41,11 +41,7 @@ void* AllocateExecutableMemory(size_t size) #else int map_flags = MAP_ANON | MAP_PRIVATE; #if defined(__APPLE__) - // This check is in place to prepare for x86_64 MAP_JIT support. While MAP_JIT did exist - // prior to 10.14, it had restrictions on the number of JIT allocations that were removed - // in 10.14. - if (__builtin_available(macOS 10.14, *)) - map_flags |= MAP_JIT; + map_flags |= MAP_JIT; #endif void* ptr = mmap(nullptr, size, PROT_READ | PROT_WRITE | PROT_EXEC, map_flags, -1, 0); if (ptr == MAP_FAILED) From 803a0de5a44faba987556d9f5f11e19f7cc004a9 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 22:52:13 -0400 Subject: [PATCH 139/659] VKMain: Remove check for macOS 10.14 --- Source/Core/VideoBackends/Vulkan/VKMain.cpp | 35 --------------------- 1 file changed, 35 deletions(-) diff --git a/Source/Core/VideoBackends/Vulkan/VKMain.cpp b/Source/Core/VideoBackends/Vulkan/VKMain.cpp index 56cf93a376..bc76aa5610 100644 --- a/Source/Core/VideoBackends/Vulkan/VKMain.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKMain.cpp @@ -280,30 +280,6 @@ void VideoBackend::Shutdown() UnloadVulkanLibrary(); } -#if defined(VK_USE_PLATFORM_METAL_EXT) -static bool IsRunningOnMojaveOrHigher() -{ - // id processInfo = [NSProcessInfo processInfo] - id processInfo = reinterpret_cast(objc_msgSend)( - objc_getClass("NSProcessInfo"), sel_getUid("processInfo")); - if (!processInfo) - return false; - - struct OSVersion // NSOperatingSystemVersion - { - size_t major_version; // NSInteger majorVersion - size_t minor_version; // NSInteger minorVersion - size_t patch_version; // NSInteger patchVersion - }; - - // const bool meets_requirement = [processInfo isOperatingSystemAtLeastVersion:required_version]; - constexpr OSVersion required_version = {10, 14, 0}; - const bool meets_requirement = reinterpret_cast(objc_msgSend)( - processInfo, sel_getUid("isOperatingSystemAtLeastVersion:"), required_version); - return meets_requirement; -} -#endif - void VideoBackend::PrepareWindow(WindowSystemInfo& wsi) { #if defined(VK_USE_PLATFORM_METAL_EXT) @@ -345,17 +321,6 @@ void VideoBackend::PrepareWindow(WindowSystemInfo& wsi) // Store the layer pointer, that way MoltenVK doesn't call [NSView layer] outside the main thread. wsi.render_surface = layer; - - // The Metal version included with MacOS 10.13 and below does not support several features we - // require. Furthermore, the drivers seem to choke on our shaders (mainly Intel). So, we warn - // the user that this is an unsupported configuration, but permit them to continue. - if (!IsRunningOnMojaveOrHigher()) - { - PanicAlertFmtT( - "You are attempting to use the Vulkan (Metal) backend on an unsupported operating system. " - "For all functionality to be enabled, you must use macOS 10.14 (Mojave) or newer. Please " - "do not report any issues encountered unless they also occur on 10.14+."); - } #endif } } // namespace Vulkan From cb7e82760156da33f2f54fd3dbd9ae76c1fc55e3 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 1 Jun 2022 23:22:19 -0400 Subject: [PATCH 140/659] README: Update minimum macOS version --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index d0a4bdc724..875df7de6e 100644 --- a/Readme.md +++ b/Readme.md @@ -15,7 +15,7 @@ Please read the [FAQ](https://dolphin-emu.org/docs/faq/) before using Dolphin. * OS * Windows (10 or higher). * Linux. - * macOS (10.13 High Sierra or higher). + * macOS (10.14 Mojave or higher). * Unix-like systems other than Linux are not officially supported but might work. * Processor * A CPU with SSE2 support. From 00a5f99b6bb4ecc6823037c4dbeab80398ab5c34 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 21:42:33 -0700 Subject: [PATCH 141/659] DSPSpy: Fix incomplete result dumps The current code expects new mail almost immediately after the last map was sent for it to be saved properly. However, I have a test program that ends up looping for 32768 iterations before it sends more mail; this resulted in an incomplete result dump. I've changed it to wait a frame between checking for mail, which solves that issue. This does slow down dumping, but the end speed matches the speed at which the UI updates the registers so this isn't a big deal (the UI waits a frame between mail normally). (Theoretically, it could take even longer for dumping to finish, so this is not a perfect solution. However, for tests that take that long to run, it would be better to save the existing results instead of re-running the test and saving that; that'd be something to do with later improvements.) --- Source/DSPSpy/main_spy.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/DSPSpy/main_spy.cpp b/Source/DSPSpy/main_spy.cpp index 57cbb625a3..89cf2d3ed7 100644 --- a/Source/DSPSpy/main_spy.cpp +++ b/Source/DSPSpy/main_spy.cpp @@ -474,11 +474,13 @@ void dump_all_ucodes(bool fastmode) real_dsp.Reset(); - VIDEO_WaitVSync(); // Loop over handling mail until we've stopped stepping // dsp_steps-3 compensates for mails to setup the ucode for (int steps_cache = dsp_steps - 3; steps_cache <= dsp_steps; steps_cache++) + { + VIDEO_WaitVSync(); handle_dsp_mail(); + } VIDEO_WaitVSync(); sprintf(filename, "sd:/dsp_dump_all.bin"); From bc206b7a27efc9a6dd4b23bfd546630fac386285 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 19:07:02 -0700 Subject: [PATCH 142/659] DSP LLE Interpreter: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m --- Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp index 8b2aca8c8b..2555243d2d 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp @@ -179,7 +179,11 @@ void Interpreter::loop(const UDSPInstruction opc) { auto& state = m_dsp_core.DSPState(); const u16 reg = opc & 0x1f; - const u16 cnt = OpReadRegister(reg); + u16 cnt; + if (reg >= DSP_REG_ACM0) + cnt = OpReadRegisterAndSaturate(reg - DSP_REG_ACM0); + else + cnt = OpReadRegister(reg); const u16 loop_pc = state.pc; if (cnt != 0) @@ -233,7 +237,11 @@ void Interpreter::bloop(const UDSPInstruction opc) { auto& state = m_dsp_core.DSPState(); const u16 reg = opc & 0x1f; - const u16 cnt = OpReadRegister(reg); + u16 cnt; + if (reg >= DSP_REG_ACM0) + cnt = OpReadRegisterAndSaturate(reg - DSP_REG_ACM0); + else + cnt = OpReadRegister(reg); const u16 loop_pc = state.FetchInstruction(); if (cnt != 0) From e7f78379ec995df2edb53596ee4f3b55fd9ecbdd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 19:12:21 -0700 Subject: [PATCH 143/659] DSP LLE Recompiler: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m --- Source/Core/Core/DSP/Jit/x64/DSPEmitter.h | 2 -- Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp | 6 ++-- Source/Core/Core/DSP/Jit/x64/DSPJitUtil.cpp | 29 ------------------- 3 files changed, 2 insertions(+), 35 deletions(-) diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h index f64e211e00..123c5e9372 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h @@ -286,8 +286,6 @@ private: void dsp_op_write_reg_imm(int reg, u16 val); void dsp_conditional_extend_accum(int reg); void dsp_conditional_extend_accum_imm(int reg, u16 val); - void dsp_op_read_reg_dont_saturate(int reg, Gen::X64Reg host_dreg, - RegisterExtension extend = RegisterExtension::None); void dsp_op_read_reg(int reg, Gen::X64Reg host_dreg, RegisterExtension extend = RegisterExtension::None); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp index 12e70e4663..79e2da9a91 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp @@ -358,8 +358,7 @@ void DSPEmitter::loop(const UDSPInstruction opc) { u16 reg = opc & 0x1f; // u16 cnt = g_dsp.r[reg]; - // todo: check if we can use normal variant here - dsp_op_read_reg_dont_saturate(reg, RDX, RegisterExtension::Zero); + dsp_op_read_reg(reg, RDX, RegisterExtension::Zero); u16 loop_pc = m_compile_pc + 1; TEST(16, R(EDX), R(EDX)); @@ -429,8 +428,7 @@ void DSPEmitter::bloop(const UDSPInstruction opc) { const u16 reg = opc & 0x1f; // u16 cnt = g_dsp.r[reg]; - // todo: check if we can use normal variant here - dsp_op_read_reg_dont_saturate(reg, RDX, RegisterExtension::Zero); + dsp_op_read_reg(reg, RDX, RegisterExtension::Zero); const u16 loop_pc = m_dsp_core.DSPState().ReadIMEM(m_compile_pc + 1); TEST(16, R(EDX), R(EDX)); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitUtil.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitUtil.cpp index 67c66e06c3..bdddff746d 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitUtil.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitUtil.cpp @@ -196,35 +196,6 @@ void DSPEmitter::dsp_conditional_extend_accum_imm(int reg, u16 val) } } -void DSPEmitter::dsp_op_read_reg_dont_saturate(int reg, Gen::X64Reg host_dreg, - RegisterExtension extend) -{ - switch (reg & 0x1f) - { - case DSP_REG_ST0: - case DSP_REG_ST1: - case DSP_REG_ST2: - case DSP_REG_ST3: - dsp_reg_load_stack(static_cast(reg - DSP_REG_ST0), host_dreg); - switch (extend) - { - case RegisterExtension::Sign: - MOVSX(64, 16, host_dreg, R(host_dreg)); - break; - case RegisterExtension::Zero: - MOVZX(64, 16, host_dreg, R(host_dreg)); - break; - case RegisterExtension::None: - default: - break; - } - return; - default: - m_gpr.ReadReg(reg, host_dreg, extend); - return; - } -} - void DSPEmitter::dsp_op_read_reg(int reg, Gen::X64Reg host_dreg, RegisterExtension extend) { switch (reg & 0x1f) From 928f745e363d1dd403f300da43113f130279ddd0 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 19:31:10 -0700 Subject: [PATCH 144/659] DSP LLE Interpreter: Fix typo in 'LS This was introduced in fc1db5eaa0b6caf2797d6250fa7a7bce1cfe4dbe. --- Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp index c271c28f33..e300fc5641 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp @@ -168,7 +168,7 @@ void Interpreter::ln(const UDSPInstruction opc) } } -// LS $axD.D, $acS.m108 +// LS $axD.D, $acS.m // xxxx xxxx 10dd 000s // Load register $axD.D with value from memory pointed by register // $ar0. Store value from register $acS.m to memory location pointed by From 4bc42ded80728f32aabcac2fb0411e96ea9991e4 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 19:42:05 -0700 Subject: [PATCH 145/659] DSP LLE Interpreter: Remove OpReadRegisterAndSaturate Instead, saturate in OpReadRegister, as all uses of OpReadRegisterAndSaturate called OpReadRegister for other registers (and there isn't anything that writes to $ac0.m or $ac1.m without saturation). --- .../Core/DSP/Interpreter/DSPIntBranch.cpp | 12 +--- .../Core/DSP/Interpreter/DSPIntExtOps.cpp | 69 +++++-------------- .../Core/DSP/Interpreter/DSPIntLoadStore.cpp | 30 ++------ .../Core/Core/DSP/Interpreter/DSPIntMisc.cpp | 5 +- .../Core/DSP/Interpreter/DSPInterpreter.cpp | 38 +++++----- .../Core/DSP/Interpreter/DSPInterpreter.h | 1 - 6 files changed, 46 insertions(+), 109 deletions(-) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp index 2555243d2d..8b2aca8c8b 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp @@ -179,11 +179,7 @@ void Interpreter::loop(const UDSPInstruction opc) { auto& state = m_dsp_core.DSPState(); const u16 reg = opc & 0x1f; - u16 cnt; - if (reg >= DSP_REG_ACM0) - cnt = OpReadRegisterAndSaturate(reg - DSP_REG_ACM0); - else - cnt = OpReadRegister(reg); + const u16 cnt = OpReadRegister(reg); const u16 loop_pc = state.pc; if (cnt != 0) @@ -237,11 +233,7 @@ void Interpreter::bloop(const UDSPInstruction opc) { auto& state = m_dsp_core.DSPState(); const u16 reg = opc & 0x1f; - u16 cnt; - if (reg >= DSP_REG_ACM0) - cnt = OpReadRegisterAndSaturate(reg - DSP_REG_ACM0); - else - cnt = OpReadRegister(reg); + const u16 cnt = OpReadRegister(reg); const u16 loop_pc = state.FetchInstruction(); if (cnt != 0) diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp index e300fc5641..a2e1af2b9f 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntExtOps.cpp @@ -55,19 +55,8 @@ void Interpreter::mv(const UDSPInstruction opc) { const u8 sreg = (opc & 0x3) + DSP_REG_ACL0; const u8 dreg = ((opc >> 2) & 0x3); - auto& state = m_dsp_core.DSPState(); - switch (sreg) - { - case DSP_REG_ACL0: - case DSP_REG_ACL1: - WriteToBackLog(0, dreg + DSP_REG_AXL0, state.r.ac[sreg - DSP_REG_ACL0].l); - break; - case DSP_REG_ACM0: - case DSP_REG_ACM1: - WriteToBackLog(0, dreg + DSP_REG_AXL0, OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - break; - } + WriteToBackLog(0, dreg + DSP_REG_AXL0, OpReadRegister(sreg)); } // S @$arD, $acS.S @@ -80,17 +69,7 @@ void Interpreter::s(const UDSPInstruction opc) const u8 sreg = ((opc >> 3) & 0x3) + DSP_REG_ACL0; auto& state = m_dsp_core.DSPState(); - switch (sreg) - { - case DSP_REG_ACL0: - case DSP_REG_ACL1: - state.WriteDMEM(state.r.ar[dreg], state.r.ac[sreg - DSP_REG_ACL0].l); - break; - case DSP_REG_ACM0: - case DSP_REG_ACM1: - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - break; - } + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); WriteToBackLog(0, dreg, IncrementAddressRegister(dreg)); } @@ -104,17 +83,7 @@ void Interpreter::sn(const UDSPInstruction opc) const u8 sreg = ((opc >> 3) & 0x3) + DSP_REG_ACL0; auto& state = m_dsp_core.DSPState(); - switch (sreg) - { - case DSP_REG_ACL0: - case DSP_REG_ACL1: - state.WriteDMEM(state.r.ar[dreg], state.r.ac[sreg - DSP_REG_ACL0].l); - break; - case DSP_REG_ACM0: - case DSP_REG_ACM1: - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - break; - } + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); WriteToBackLog(0, dreg, IncreaseAddressRegister(dreg, static_cast(state.r.ix[dreg]))); } @@ -175,11 +144,11 @@ void Interpreter::ln(const UDSPInstruction opc) // register $ar3. Increment both $ar0 and $ar3. void Interpreter::ls(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[3], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[3], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[0])); WriteToBackLog(1, DSP_REG_AR3, IncrementAddressRegister(DSP_REG_AR3)); @@ -194,11 +163,11 @@ void Interpreter::ls(const UDSPInstruction opc) // register $ar0 and increment $ar3. void Interpreter::lsn(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[3], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[3], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[0])); WriteToBackLog(1, DSP_REG_AR3, IncrementAddressRegister(DSP_REG_AR3)); @@ -214,11 +183,11 @@ void Interpreter::lsn(const UDSPInstruction opc) // register $ar3 and increment $ar0. void Interpreter::lsm(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[3], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[3], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[0])); WriteToBackLog(1, DSP_REG_AR3, @@ -235,11 +204,11 @@ void Interpreter::lsm(const UDSPInstruction opc) // register $ar3. void Interpreter::lsnm(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[3], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[3], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[0])); WriteToBackLog(1, DSP_REG_AR3, @@ -255,11 +224,11 @@ void Interpreter::lsnm(const UDSPInstruction opc) // $ar3. Increment both $ar0 and $ar3. void Interpreter::sl(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[0], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[0], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[3])); WriteToBackLog(1, DSP_REG_AR3, IncrementAddressRegister(DSP_REG_AR3)); @@ -274,11 +243,11 @@ void Interpreter::sl(const UDSPInstruction opc) // and increment $ar3. void Interpreter::sln(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[0], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[0], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[3])); WriteToBackLog(1, DSP_REG_AR3, IncrementAddressRegister(DSP_REG_AR3)); @@ -294,11 +263,11 @@ void Interpreter::sln(const UDSPInstruction opc) // and increment $ar0. void Interpreter::slm(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[0], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[0], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[3])); WriteToBackLog(1, DSP_REG_AR3, @@ -314,11 +283,11 @@ void Interpreter::slm(const UDSPInstruction opc) // and add corresponding indexing register $ix3 to addressing register $ar3. void Interpreter::slnm(const UDSPInstruction opc) { - const u8 sreg = opc & 0x1; + const u8 sreg = (opc & 0x1) + DSP_REG_ACM0; const u8 dreg = ((opc >> 4) & 0x3) + DSP_REG_AXL0; auto& state = m_dsp_core.DSPState(); - state.WriteDMEM(state.r.ar[0], OpReadRegisterAndSaturate(sreg)); + state.WriteDMEM(state.r.ar[0], OpReadRegister(sreg)); WriteToBackLog(0, dreg, state.ReadDMEM(state.r.ar[3])); WriteToBackLog(1, DSP_REG_AR3, diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntLoadStore.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntLoadStore.cpp index 17973a9a1e..89bfa92b1d 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntLoadStore.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntLoadStore.cpp @@ -34,10 +34,7 @@ void Interpreter::srs(const UDSPInstruction opc) const auto reg = static_cast(((opc >> 8) & 0x3) + DSP_REG_ACL0); const auto addr = static_cast((state.r.cr << 8) | (opc & 0xFF)); - if (reg >= DSP_REG_ACM0) - state.WriteDMEM(addr, OpReadRegisterAndSaturate(reg - DSP_REG_ACM0)); - else - state.WriteDMEM(addr, OpReadRegister(reg)); + state.WriteDMEM(addr, OpReadRegister(reg)); } // LRS $(0x18+D), @M @@ -80,10 +77,7 @@ void Interpreter::sr(const UDSPInstruction opc) const u8 reg = opc & 0x1F; const u16 addr = state.FetchInstruction(); - if (reg >= DSP_REG_ACM0) - state.WriteDMEM(addr, OpReadRegisterAndSaturate(reg - DSP_REG_ACM0)); - else - state.WriteDMEM(addr, OpReadRegister(reg)); + state.WriteDMEM(addr, OpReadRegister(reg)); } // SI @M, #I @@ -172,10 +166,7 @@ void Interpreter::srr(const UDSPInstruction opc) const u8 sreg = opc & 0x1f; auto& state = m_dsp_core.DSPState(); - if (sreg >= DSP_REG_ACM0) - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - else - state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); } // SRRD @$arD, $S @@ -188,10 +179,7 @@ void Interpreter::srrd(const UDSPInstruction opc) const u8 sreg = opc & 0x1f; auto& state = m_dsp_core.DSPState(); - if (sreg >= DSP_REG_ACM0) - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - else - state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); state.r.ar[dreg] = DecrementAddressRegister(dreg); } @@ -206,10 +194,7 @@ void Interpreter::srri(const UDSPInstruction opc) const u8 sreg = opc & 0x1f; auto& state = m_dsp_core.DSPState(); - if (sreg >= DSP_REG_ACM0) - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - else - state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); state.r.ar[dreg] = IncrementAddressRegister(dreg); } @@ -224,10 +209,7 @@ void Interpreter::srrn(const UDSPInstruction opc) const u8 sreg = opc & 0x1f; auto& state = m_dsp_core.DSPState(); - if (sreg >= DSP_REG_ACM0) - state.WriteDMEM(state.r.ar[dreg], OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - else - state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); + state.WriteDMEM(state.r.ar[dreg], OpReadRegister(sreg)); state.r.ar[dreg] = IncreaseAddressRegister(dreg, static_cast(state.r.ix[dreg])); } diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntMisc.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntMisc.cpp index 7b1971adf4..4c3af7ec85 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntMisc.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntMisc.cpp @@ -19,10 +19,7 @@ void Interpreter::mrr(const UDSPInstruction opc) const u8 sreg = opc & 0x1f; const u8 dreg = (opc >> 5) & 0x1f; - if (sreg >= DSP_REG_ACM0) - OpWriteRegister(dreg, OpReadRegisterAndSaturate(sreg - DSP_REG_ACM0)); - else - OpWriteRegister(dreg, OpReadRegister(sreg)); + OpWriteRegister(dreg, OpReadRegister(sreg)); ConditionalExtendAccum(dreg); } diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp index 8ca18e2a36..bbac271e85 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp @@ -685,33 +685,31 @@ u16 Interpreter::OpReadRegister(int reg_) return state.r.ac[reg - DSP_REG_ACL0].l; case DSP_REG_ACM0: case DSP_REG_ACM1: + { + // Saturate reads from $ac0.m or $ac1.m if that mode is enabled. + if (IsSRFlagSet(SR_40_MODE_BIT)) + { + const s64 acc = GetLongAcc(reg - DSP_REG_ACM0); + + if (acc != static_cast(acc)) + { + if (acc > 0) + return 0x7fff; + else + return 0x8000; + } + + return state.r.ac[reg - DSP_REG_ACM0].m; + } + return state.r.ac[reg - DSP_REG_ACM0].m; + } default: ASSERT_MSG(DSPLLE, 0, "cannot happen"); return 0; } } -u16 Interpreter::OpReadRegisterAndSaturate(int reg) const -{ - if (IsSRFlagSet(SR_40_MODE_BIT)) - { - const s64 acc = GetLongAcc(reg); - - if (acc != static_cast(acc)) - { - if (acc > 0) - return 0x7fff; - else - return 0x8000; - } - - return m_dsp_core.DSPState().r.ac[reg].m; - } - - return m_dsp_core.DSPState().r.ac[reg].m; -} - void Interpreter::OpWriteRegister(int reg_, u16 val) { const int reg = reg_ & 0x1f; diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h index 6d9e3e2709..53295b425a 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h @@ -230,7 +230,6 @@ private: void UpdateSRLogicZero(bool value); u16 OpReadRegister(int reg_); - u16 OpReadRegisterAndSaturate(int reg) const; void OpWriteRegister(int reg_, u16 val); void ConditionalExtendAccum(int reg); From d297ab18e667bcab45a327b262308b4d61882aeb Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 1 Jun 2022 22:22:04 -0700 Subject: [PATCH 146/659] docs/DSP: Add notes highlighting the difference between 'LS and 'SL --- .../GameCube_DSP_Users_Manual.tex | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index a0c1753728..f7ab05677f 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -4670,6 +4670,10 @@ When the main and extension opcodes write to the same register, the register is $ar0++ $ar3++ \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'SL} in that \Register{\$(0x18+D)} is associated with \Register{\$ar0} instead of \Register{\$ar3} and \Register{\$acS.m} is associated with \Register{\$ar3} instead of \Register{\$ar0}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'LSM} @@ -4693,6 +4697,10 @@ When the main and extension opcodes write to the same register, the register is $ar0++ $ar3 += $ix3 \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'SLM} in that \Register{\$(0x18+D)} is associated with \Register{\$ar0} instead of \Register{\$ar3} and \Register{\$acS.m} is associated with \Register{\$ar3} instead of \Register{\$ar0}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'LSNM} @@ -4717,6 +4725,10 @@ When the main and extension opcodes write to the same register, the register is $ar0 += $ix0 $ar3 += $ix3 \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'SLNM} in that \Register{\$(0x18+D)} is associated with \Register{\$ar0} instead of \Register{\$ar3} and \Register{\$acS.m} is associated with \Register{\$ar3} instead of \Register{\$ar0}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'LSN} @@ -4740,6 +4752,10 @@ When the main and extension opcodes write to the same register, the register is $ar0 += $ix0 $ar3++ \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'SLN} in that \Register{\$(0x18+D)} is associated with \Register{\$ar0} instead of \Register{\$ar3} and \Register{\$acS.m} is associated with \Register{\$ar3} instead of \Register{\$ar0}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'MV} @@ -4837,6 +4853,10 @@ When the main and extension opcodes write to the same register, the register is $ar0++ $ar3++ \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'LS} in that \Register{\$(0x18+D)} is associated with \Register{\$ar3} instead of \Register{\$ar0} and \Register{\$acS.m} is associated with \Register{\$ar0} instead of \Register{\$ar3}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'SLM} @@ -4860,6 +4880,10 @@ When the main and extension opcodes write to the same register, the register is $ar0++ $ar3 += $ix3 \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'LSM} in that \Register{\$(0x18+D)} is associated with \Register{\$ar3} instead of \Register{\$ar0} and \Register{\$acS.m} is associated with \Register{\$ar0} instead of \Register{\$ar3}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'SLNM} @@ -4884,6 +4908,10 @@ When the main and extension opcodes write to the same register, the register is $ar0 += $ix0 $ar3 += $ix3 \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'LSNM} in that \Register{\$(0x18+D)} is associated with \Register{\$ar3} instead of \Register{\$ar0} and \Register{\$acS.m} is associated with \Register{\$ar0} instead of \Register{\$ar3}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'SLN} @@ -4907,6 +4935,10 @@ When the main and extension opcodes write to the same register, the register is $ar0 += $ix0 $ar3++ \end{DSPOpcodeOperation} + + \begin{DSPOpcodeNote} + \item Differs from \Opcode{'LSN} in that \Register{\$(0x18+D)} is associated with \Register{\$ar3} instead of \Register{\$ar0} and \Register{\$acS.m} is associated with \Register{\$ar0} instead of \Register{\$ar3}. In both cases, \Register{\$(0x18+D)} is loaded and \Register{\$acS.m} is stored. + \end{DSPOpcodeNote} \end{DSPOpcode} \begin{DSPOpcode}{'SN} From 12d34eec9b3c4de21849424cc11d7589a803b40e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 25 May 2022 18:47:49 -0700 Subject: [PATCH 147/659] DSPSpy: Add 40-bit mode tests --- Source/DSPSpy/tests/40bit_ins_test.ds | 202 ++++++++++++++++++++++++++ Source/DSPSpy/tests/40bit_test.ds | 164 +++++++++++++++++++++ 2 files changed, 366 insertions(+) create mode 100644 Source/DSPSpy/tests/40bit_ins_test.ds create mode 100644 Source/DSPSpy/tests/40bit_test.ds diff --git a/Source/DSPSpy/tests/40bit_ins_test.ds b/Source/DSPSpy/tests/40bit_ins_test.ds new file mode 100644 index 0000000000..9ed8ad5dbe --- /dev/null +++ b/Source/DSPSpy/tests/40bit_ins_test.ds @@ -0,0 +1,202 @@ +; This test covers the behavior of 40-bit mode with various instructions. +incdir "tests" +include "dsp_base.inc" + +positive_value: EQU #0x1234 +negative_value: EQU #0x9876 + +negative_imem_value_addr: +CW negative_value + +; DSPSpy doesn't pre-populating DMEM currently, so instead use these addresses to store values. +positive_dmem_value_addr: EQU #0x100 +negative_dmem_value_addr: EQU #0x101 +readback_dmem_addr: EQU #0x102 + +test_main: + LRI $ar0, #positive_dmem_value_addr + LRI $ar1, #negative_dmem_value_addr + LRI $ar2, #negative_imem_value_addr + LRI $ar3, #readback_dmem_addr + LRI $ix0, #0 + LRI $ix1, #0 + LRI $ix2, #0 + LRI $ix3, #0 + + LRI $ax0.h, #positive_value + LRI $ax1.h, #negative_value + + SR @positive_dmem_value_addr, $ax0.h + SR @negative_dmem_value_addr, $ax1.h + + LRI $cr, #(positive_dmem_value_addr / 256) + + SET40 + ; Instructions that perform sign-extension + ; $acc0 should alternate between being positive and negative here + ; (though none of these instructions update $sr) + + ; [1] ILRR (also ILRRD/ILRRI/ILRRN, not covered) + ILRR $ac0.m, @$ar2 ; - + CALL send_back + ; [2] LR + LR $ac0.m, @positive_dmem_value_addr ; + + CALL send_back + ; [3] LRI + LRI $ac0.m, #negative_value ; - + CALL send_back + ; [4] LRIS + LRIS $ac0.m, #42 ; + + CALL send_back + ; [5] LRR (also LRRD/LRRI/LRRN) + LRR $ac0.m, @$ar1 ; - + CALL send_back + ; [6] LRS + LRS $ac0.m, @(positive_dmem_value_addr & 0xff) ; + + CALL send_back + ; [7] MRR + MRR $ac0.m, $ax1.h ; - + CALL send_back + ; [8] 'LN (and 'L, but 'LN lets us set $ix0 to not increment $ar0) + NX'LN : $ac0.m, @$ar0 ; + + CALL send_back + + ; Instructions that experience saturation + ; $ax1.l should alternate between 0x8000 and 0x7fff. + LRI $ac0.m, #0x4231 + LRI $ac0.h, #0x12 ; positive + LRI $ac1.m, #0x2816 + LRI $ac1.h, #0x99 ; negative + ; [9] MRR (again) + MRR $ax1.l, $ac1.m ; - + CALL send_back + ; [10] SR + SR @readback_dmem_addr, $ac0.m + LR $ax1.l, @readback_dmem_addr ; + + CALL send_back + ; [11] SRRN (also SRR/SRRD/SRRI) + SRRN @$ar3, $ac1.m + LR $ax1.l, @readback_dmem_addr ; - + CALL send_back + ; [12] SRS + SRS @(readback_dmem_addr & 0xff), $ac0.m + LR $ax1.l, @readback_dmem_addr ; + + CALL send_back + ; [13] 'LSNM (also 'LS/'LSM/'LSN) - the $ax0.l read is not relevant + NX'LSNM : $ax0.l, $ac1.m + LR $ax1.l, @readback_dmem_addr ; - + CALL send_back + ; [14] 'MV + NX'MV : $ax1.l, $ac0.m ; + + CALL send_back + ; [15] 'SLNM (also 'SL/'SLM/'SLN) - the $ax0.l read is not relevant + ; Note that 'SL stores to @$ar0, while 'LS stores to @$ar3 + LRI $ar0, #readback_dmem_addr + NX'SLNM : $ac1.m, $ax0.l + LR $ax1.l, @readback_dmem_addr ; - + CALL send_back + LRI $ar0, #positive_dmem_value_addr + ; [16] 'SN (also 'S) + NX'SN : @$ar3, $ac0.m + LR $ax1.l, @readback_dmem_addr ; + + CALL send_back + + ; Instructions that are not affected + ; [17] ADDI + ADDI $ac0.m, #8 + CALL send_back + ; [18] ADDIS + ADDIS $ac0.m, #-8 + CALL send_back + ; [19] ANDC + ANDC $ac1.m, $ac0.m + CALL send_back + ; [20] ANDI + ANDI $ac0.m, #0x6666 + CALL send_back + ; [21] ANDR + ANDR $ac0.m, $ax0.h + CALL send_back + ; [22] ORC + ORC $ac0.m, $ac1.m + CALL send_back + ; [23] ORI + ORI $ac0.m, #0xfeed + CALL send_back + ; [24] ORR + ORR $ac1.m, $ax0.h + CALL send_back + ; [25] NOT + NOT $ac1.m + CALL send_back + ; [26] XORC + XORC $ac0.m, $ac1.m + CALL send_back + ; [27] XORI + XORI $ac0.m, #0x5555 + CALL send_back + ; [28] XORR + XORR $ac1.m, $ax1.h + CALL send_back + + ; [29] MOVR always sign extends... + MOVR $acc1, $ax0.h + CALL send_back + ; [30] ... even in SET16 mode + SET16 + MOVR $acc1, $ax1.h + CALL send_back + SET40 + + ; Shift instructions - do these see saturated $ac1.m? + LRI $ac0.m, #positive_value + LRI $ac1.m, #2 + LRI $ac1.h, #1 + ; [31] - for diffs only + CALL send_back + ; [32] + LSRNR $acc0, $ac1.m + CALL send_back + ; [33] Shifts $acc0 by $ac1.m (in the other direction) + LSRN + CALL send_back + + ; Does LOOP experience saturation? + CLR $acc0 + LRI $ac1.m, #0x1234 + LRI $ac1.h, #1 + ; [34] - for diffs only + CALL send_back + ; [35] LOOP + LOOP $ac1.m + INC $acc0 + CALL send_back + LRI $ac1.h, #0x99 + ; [36] BLOOP + BLOOP $ac1.m, bloop_last_ins + INCM $ac0.m +bloop_last_ins: + NOP + CALL send_back + + ; For the sake of clarity, the same LOOP/BLOOP calls in SET16 mode don't have saturation: + SET16 + CLR $acc0 + LRI $ac1.m, #0x1234 + LRI $ac1.h, #1 + ; [37] - for diffs only + CALL send_back + ; [38] LOOP + LOOP $ac1.m + INC $acc0 + CALL send_back + LRI $ac1.h, #0x99 + ; [39] BLOOP + BLOOP $ac1.m, bloop2_last_ins + INCM $ac0.m +bloop2_last_ins: + NOP + CALL send_back + + ; We're done, DO NOT DELETE THIS LINE + JMP end_of_test diff --git a/Source/DSPSpy/tests/40bit_test.ds b/Source/DSPSpy/tests/40bit_test.ds new file mode 100644 index 0000000000..a2f2b24a5f --- /dev/null +++ b/Source/DSPSpy/tests/40bit_test.ds @@ -0,0 +1,164 @@ +; This test covers the behavior of 40-bit mode for a variety of values. +; It takes a while to run completely (~5 minutes), but progress is indicated via mail shown at the +; top of the screen in DSPSpy. The value will go from 80000000 to 8041ffff. +incdir "tests" +include "dsp_base.inc" + + + +test_main: + LRI $ar0, #0 + LRI $ar1, #0 + LRI $ar2, #0 + LRI $ar3, #0 + LRI $ix0, #0 + LRI $ix1, #0 + LRI $ix2, #0 + LRI $ix3, #0 + + ; Test with $ac0.l from 0xfff0 to 0x0010 + LRI $ac0.l, #0xfff0 +BLOOPI #0x21, first_loop_last_ins + CALL test_saturation + IAR $ar0 +first_loop_last_ins: + INC $acc0 + + ; Test with $ac0.l from 0x7ff0 to 0x8010 + LRI $ac0.l, #0xfff0 +BLOOPI #0x21, second_loop_last_ins + CALL test_saturation + IAR $ar0 +second_loop_last_ins: + INC $acc0 + + ; We're done. Report the test results. + ; $ix1 should be 0, or else saturation occurred on $ac0.l or $ac0.h. + ; $ix2 should be 0, or else sign-extension occurred on $ac0.l or $ac0.h. + ; $ix3 should be 0, or else we incorrectly predicted saturation on $ac0.m. + ; $ar1/$ar2/$ar3 records the number of times it happened + CALL send_back + + ; We're done, DO NOT DELETE THIS LINE + JMP end_of_test + + + +test_saturation: + ; We start with $ac0.h at -0x80 since we can use the overflow flag to check when wrapping around + ; occurs; starting at 0 and ending when it wraps back to 0 doesn't work since we can't check the + ; zero flag since $ac0.l may be nonzero ($ac0.l is used as an input to this subroutine) + LRI $ac0.m, #0 + LRI $ac0.h, #-0x80 + +loop_start: + ; Compare the value of $ac0.m when in SET16 mode and in SET40 mode + SET40 + ; Reading $ac0.m in SET40 mode results in saturation if $ac0.h doesn't match the sign-extension + ; of $ac0.h. Also, storing to $ac1.m in SET40 mode clears $ac1.l and sets $ac1.h to the + ; sign-extension of $ac1.m, and $ac1.l. + MRR $ac1.m, $ac0.m + SET16 + ; Attempt to compute the saturated value of $ac1.m in $ax1.h, + ; using what we know of $acc0. + TST'MV $acc0 : $ax1.h, $ac0.m + JL negative_acc0 + ; $acc0 is nonnegative. + JMPx8 check_saturated_ax1h ; If the above s32 bit is not set, we don't need to saturate + ; If the above s32 bit _is_ set, then saturate $ax1.h. + LRI $ax1.h, #0x7fff + JMP check_saturated_ax1h + +negative_acc0: + JMPx8 check_saturated_ax1h ; If the above s32 bit is not set, we don't need to saturate + LRI $ax1.h, #0x8000 + ; Fall through to check_saturated_ax1h + +check_saturated_ax1h: + ; $acc1 has the value of $ac0.m in SET40 mode. + ; And, $ax1.h has what we computed that value should be, and CMPAXH always sign-extends $ax1.h + ; (and ignores $ax1.l), so we can compare using it directly. + CMPAXH $acc1, $ax1.h + JZ check_read_low + ; Our prediction was wrong (shouldn't happen) + LRI $ix3, #1 + IAR $ar3 + TST $acc0 + CALL send_back + ; Fall through to check_read_low + +check_read_low: + SET40 + MRR $ac1.m, $ac0.l + SET16 + MRR $ax1.h, $ac0.l + CMPAXH $acc1, $ax1.h + JZ check_read_high + ; Reading $ac0.l gave different results in SET40 and SET16 modes (shouldn't happen) + LRI $ix1, #1 + IAR $ar1 + TST $acc0 + CALL send_back + ; Fall through to check_read_high + +check_read_high: + SET40 + MRR $ac1.m, $ac0.h + SET16 + MRR $ax1.h, $ac0.h + CMPAXH $acc1, $ax1.h + JZ check_write_low + ; Reading $ac0.h gave different results in SET40 and SET16 modes (shouldn't happen) + LRI $ix1, #1 + IAR $ar1 + TST $acc0 + CALL send_back + ; Fall through to check_write_low + +check_write_low: + MOV $acc1, $acc0 + SET40 + MRR $ac1.l, $ac0.l + SET16 + CMP + JZ check_write_high + ; Writing to $ac1.l caused $acc1 to not match $acc0 (shouldn't happen) + LRI $ix2, #1 + IAR $ar2 + CALL send_back + ; Fall through to check_write_high + +check_write_high: + MOV $acc1, $acc0 + SET40 + MRR $ac1.h, $ac0.h + SET16 + CMP + JZ increment_loop + ; Writing to $ac1.h caused $acc1 to not match $acc0 (shouldn't happen) + LRI $ix2, #1 + IAR $ar2 + CALL send_back + ; Fall through to increment_loop + +increment_loop: + INCM $ac0.m + ; If incrementing results in overflowing, then we're done. + RETO + + ; If ($ac0.m & 0x00ff) != 0, continue the loop without sending mail. + ANDF $ac0.m, #0x00ff + JLNZ loop_start + ; Otherwise, send mail to report the progress. (This shows at the top of the screen in DSPSpy, + ; but otherwise isn't handled in any meaningful way.) + MOV $acc1, $acc0 + LSR $acc1, #-8 + ; Compensate for starting at INT_MIN (0x80'0000'0000) and ending at INT_MAX (0x7f'0000'0000) + ; instead of going from 0 (0x00'0000'0000) to -1 (0xff'ffff'ffff) + XORI $ac1.m, #0x8000 + + SR @DMBH, $ar0 + SR @DMBL, $ac1.m + SI @DIRQ, #0x0001 + ; We don't wait for the mail to be read, because we don't care about the response. + JMP loop_start From 24a339f4377a01ab7070a563fbe735e6ac6174c8 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 18:16:31 -0700 Subject: [PATCH 148/659] docs/DSP: Explain 16-bit and 40-bit modes --- .../GameCube_DSP_Users_Manual.tex | 84 ++++++++++++++----- 1 file changed, 63 insertions(+), 21 deletions(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index f7ab05677f..e82e25aecc 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -505,7 +505,7 @@ The high parts of the 40-bit accumulators (\Register{acX.h}) are sign-extended 8 and the upper 8 bits read the same as the 7th bit. For instance, \Value{0x007F} reads back as \Value{0x007F}, but \Value{0x0080} reads back as \Value{0xFF80}. -\textbf{Accumulators \Register{\$acX}:} +\subsection{Accumulators \Register{\$acX}} 40-bit accumulator \Register{\$acX} (\Register{\$acX.hml}) consists of registers: @@ -513,7 +513,7 @@ back as \Value{0xFF80}. $acX = $acX.h << 32 | $acX.m << 16 | $acX.l \end{lstlisting} -\textbf{Short accumulators \Register{\$acs.X}:} +\subsection{Short accumulators \Register{\$acsX}} 24-bit accumulator \Register{\$acsX} (\Register{\$acX.hm}) consists of the upper 24 bits of accumulator \Register{\$acX}. @@ -521,12 +521,30 @@ $acX = $acX.h << 32 | $acX.m << 16 | $acX.l $acsX = $acX.h << 16 | $acX.m \end{lstlisting} -\textbf{Additional accumulators \Register{\$axX}:} +\subsection{Additional accumulators \Register{\$axX}} + +32-bit accumulators \Register{\$axX} (\Register{\$axX.hl}) consist of registers: \begin{lstlisting}[language=C++] $axX = $axX.h << 16 | $axX.l \end{lstlisting} +\subsection{16-bit and 40-bit modes}\label{subsec:SET40} + +Depending on the value of \RegisterField{\$sr.SXM} (bit 14), loading to \Register{\$acX.m} may also update \Register{\$acX.h} and \Register{\$acX.l}, and stores from \Register{\$acX.m} may experience saturation based on \Register{\$acX.h}. Regardless of the value of \RegisterField{\$sr.SXM}, arithmetic operations such as \Opcode{ADDI}, \Opcode{INCM}, \Opcode{MOVR}, and \Opcode{LSRN} will still affect the entire accumulator. + +If \RegisterField{\$sr.SXM} is set to 0, then 16-bit mode (\Opcode{SET16}) is in use. Loads to \Register{\$acX.m} will only change \Register{\$acX.m}, and storing \Register{\$acX.m} will use the value directly contained in \Register{\$acX.m}; the same applies to loads to and stores from \Register{\$acX.h} or \Register{\$acX.l} or any other register. + +If \RegisterField{\$sr.SXM} is set to 1, then 40-bit mode (\Opcode{SET40}) is in use. Loads to \Register{\$acX.m} will set \Register{\$acX.l} to 0 and will sign-extend into \Register{\$acX.h} (setting it to \Value{0xFF} if the sign bit is set (\InlineExpression{\$acX.m \& 0x8000 != 0}), and to 0 otherwise). This means that in 40-bit mode, loads to \Register{\$acX.m} are effectively loads to the whole accumulator \Register{\$acX}. Loads to \Register{\$acX.h} and \Register{\$acX.l} do not have this special behavior; they only modify the specified register (as in 16-bit mode). + +Additionally, if \RegisterField{\$sr.SXM} is set to 1, then moving or storing from \Register{\$acX.m} may instead result in \Value{0x7fff} or \Value{0x8000} being used. This happens if \Register{\$acX.hml} is not the same as sign-extending \Register{\$acX.ml}; \Value{0x7fff} is used if \Register{\$acX} is positive and \Value{0x8000} is used if \Register{\$acX} is negative. + +The conditions for this saturation are the same as the conditions for \RegisterField{\$sr.AS} (bit 4, above s32) to be set when flags are updated. (This does not mean that the saturation happens if and only if \RegisterField{\$sr.AS} is set, as the flags might have been set after an operation on a different register.) + +The following instructions perform sign-extension when writing to \Register{\$acX.m}: \Opcode{ILRR}, \Opcode{ILRRD}, \Opcode{ILRRI}, and \Opcode{ILRRN}; \Opcode{LR}; \Opcode{LRI}; \Opcode{LRIS}; \Opcode{LRR}, \Opcode{LRRD}, \Opcode{LRRI}, and \Opcode{LRRN}; \Opcode{LRS}; \Opcode{MRR}; and \Opcode{'L} and \Opcode{'LN}. + +The following instructions experience saturation when reading from \Register{\$acX.m}: \Opcode{BLOOP}; \Opcode{LOOP}; \Opcode{MRR}; \Opcode{SR}; \Opcode{SRR}, \Opcode{SRRD}, \Opcode{SRRI}, and \Opcode{SRRN}; \Opcode{SRS}; \Opcode{'LS}, \Opcode{'LSM}, \Opcode{'LSM}, and \Opcode{'LSNM}; \Opcode{'MV}; \Opcode{'SL}, \Opcode{'SLM}, \Opcode{'SLN}, and \Opcode{'SLNM}; and \Opcode{'S} and \Opcode{'SN}. + \pagebreak{} \section{Stacks} @@ -569,8 +587,8 @@ Furthermore, it also contains control bits to configure the flow of certain oper \begin{tabular}{|l|l|l|} \hline \textbf{Bit} & \textbf{Name} & \textbf{Comment} \\ \hline -\texttt{15} & \texttt{SU} & Operands are signed (1 = unsigned) \\ \hline -\texttt{14} & \texttt{SXM} & Sign extension mode (0 = \texttt{set16}, 1 = \texttt{set40}) \\ \hline +\texttt{15} & \texttt{SU} & Multiplication operands are signed (1 = unsigned) \\ \hline +\texttt{14} & \texttt{SXM} & Sign extension mode (1 = 40-bit, see \nameref{subsec:SET40}) \\ \hline \texttt{13} & \texttt{AM} & Product multiply result by 2 (when \texttt{AM = 0}) \\ \hline \texttt{12} & & \\ \hline \texttt{11} & \texttt{EIE} & External interrupt enable \\ \hline @@ -1634,6 +1652,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \Register{\$R} reaches zero. Block ends at specified address \Address{addrA} inclusive. i.e. opcode at \Address{addrA} is the last opcode included in loop. Counter is pushed on loop stack \Register{\$st3}, end of block address is pushed on loop stack \Register{\$st2} and the repeat address is pushed on call stack \Register{\$st0}. Up to 4 nested loops are allowed. + \item When using \Register{\$ac0.m} or \Register{\$ac1.m} as the initial counter value, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2138,6 +2157,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from instruction memory pointed by addressing register \Register{\$arS} to mid accumulator register \Register{\$acD.m}. + \item Optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2160,6 +2180,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from instruction memory pointed by addressing register \Register{\$arS} to mid accumulator register \Register{\$acD.m}. Decrement addressing register \Register{\$arS}. + \item Optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2183,6 +2204,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from instruction memory pointed by addressing register \Register{\$arS} to mid accumulator register \Register{\$acD.m}. Increment addressing register \Register{\$arS}. + \item Optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2207,6 +2229,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \item Move value from instruction memory pointed by addressing register \Register{\$arS} to mid accumulator register \Register{\$acD.m}. Add corresponding indexing register \Register{\$ixS} to addressing register \Register{\$arS}. + \item Optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2367,6 +2390,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \item Repeatedly execute the following opcode until the counter specified by the value from register \Register{\$R} reaches zero. Each execution decrements the counter. Register \Register{\$R} remains unchanged. If register \Register{\$R} is set to zero at the beginning of loop then the looped instruction will not get executed. + \item When using \Register{\$ac0.m} or \Register{\$ac1.m} as the initial counter value, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2418,7 +2442,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by address \Address{M} to register \Register{\$D}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2441,7 +2465,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Load immediate value \Value{I} to register \Register{\$D}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2463,7 +2487,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Load immediate value \Value{I} (8-bit sign-extended) to accumulator register \Register{\$(0x18+D)}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2485,7 +2509,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by addressing register \Register{\$arS} to register \Register{\$D}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2508,7 +2532,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by addressing register \Register{\$arS} to register \Register{\$D}. Decrements register \Register{\$arS}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2532,7 +2556,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by addressing register \Register{\$arS} to register \Register{\$D}. Increments register \Register{\$arS}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2556,7 +2580,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by addressing register \Register{\$arS} to register \Register{\$D}. Add indexing register \Register{\$ixS} to register \Register{\$arS}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -2579,7 +2603,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from data memory pointed by address \Address{(\$cr << 8) | M} to register \Register{\$(0x18+D)}. - Perform an additional operation depending on destination register. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -3049,7 +3073,8 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Move value from register \Register{\$S} to register \Register{\$D}. - Perform an additional operation depending on destination register. + \item When moving to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). + \item When moving from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -3861,6 +3886,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeSeeAlso} \item \Opcode{SET40} + \item \nameref{subsec:SET40} \end{DSPOpcodeSeeAlso} \DSPOpcodeFlagsUnchanged @@ -3886,6 +3912,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeSeeAlso} \item \Opcode{SET16} + \item \nameref{subsec:SET40} \end{DSPOpcodeSeeAlso} \DSPOpcodeFlagsUnchanged @@ -3929,7 +3956,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from register \Register{\$S} to a memory pointed by address \Address{M}. - Perform an additional operation depending on destination register. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -3951,7 +3978,8 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from source register \Register{\$S} to a memory location pointed by addressing - register \Register{\$arD}. Perform an additional operation depending on source register. + register \Register{\$arD}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -3973,7 +4001,8 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from source register \Register{\$S} to a memory location pointed by addressing - register \Register{\$arD}. Decrement register \Register{\$arD}. Perform an additional operation depending on source register. + register \Register{\$arD}. Decrement register \Register{\$arD}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -3996,7 +4025,8 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from source register \Register{\$S} to a memory location pointed by addressing - register \Register{\$arD}. Increment register \Register{\$arD}. Perform an additional operation depending on source register. + register \Register{\$arD}. Increment register \Register{\$arD}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4020,7 +4050,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from source register \Register{\$S} to a memory location pointed by addressing register \Register{\$arD}. Add indexing register \Register{\$ixD} to register \Register{\$arD}. - Perform an additional operation depending on source register. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4043,7 +4073,7 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from register \Register{\$(0x1C+S)} to a memory pointed by address \Address{(\$cr << 8) | M}. - Perform an additional operation depending on destination register. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4070,7 +4100,6 @@ A ``-'' indicates that the flag retains its previous value, a ``0'' indicates th \begin{DSPOpcodeDescription} \item Store value from register \Register{\$acS.h} to a memory pointed by address \Address{(\$cr << 8) | M}. - Perform an additional operation depending on destination register. \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4403,6 +4432,7 @@ When the main and extension opcodes write to the same register, the register is \begin{DSPOpcodeDescription} \item Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$arS}. Post increment register \Register{\$arS}. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4423,6 +4453,7 @@ When the main and extension opcodes write to the same register, the register is \begin{DSPOpcodeDescription} \item Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$arS}. Add indexing register \Register{\$ixS} to register \Register{\$arS}. + \item When loading to \Register{\$ac0.m} or \Register{\$ac1.m}, optionally perform sign extension depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4662,6 +4693,7 @@ When the main and extension opcodes write to the same register, the register is \item Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar0}. Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar3}. Increment both \Register{\$ar0} and \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4689,6 +4721,7 @@ When the main and extension opcodes write to the same register, the register is \item Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar0}. Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix3} to addressing register \Register{\$ar3} and increment \Register{\$ar0}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4717,6 +4750,7 @@ When the main and extension opcodes write to the same register, the register is Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix0} to addressing register \Register{\$ar0} and add corresponding indexing register \Register{\$ix3} to addressing register \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4744,6 +4778,7 @@ When the main and extension opcodes write to the same register, the register is \item Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar0}. Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix0} to addressing register \Register{\$ar0} and increment \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4769,6 +4804,7 @@ When the main and extension opcodes write to the same register, the register is \begin{DSPOpcodeDescription} \item Move value of register \Register{\$(0x1c+S)} to the register \Register{\$(0x18+D)}. + \item When moving from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4824,6 +4860,7 @@ When the main and extension opcodes write to the same register, the register is \begin{DSPOpcodeDescription} \item Store value of register \Register{\$(0x1c+S)} in the memory pointed by register \Register{\$arD}. Post increment register \Register{\$arD}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4845,6 +4882,7 @@ When the main and extension opcodes write to the same register, the register is \item Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar0}. Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar3}. Increment both \Register{\$ar0} and \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4872,6 +4910,7 @@ When the main and extension opcodes write to the same register, the register is \item Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar0}. Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix3} to addressing register \Register{\$ar3} and increment \Register{\$ar0}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4900,6 +4939,7 @@ When the main and extension opcodes write to the same register, the register is Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix0} to addressing register \Register{\$ar0} and add corresponding indexing register \Register{\$ix3} to addressing register \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4927,6 +4967,7 @@ When the main and extension opcodes write to the same register, the register is \item Store value from register \Register{\$acS.m} to memory location pointed by register \Register{\$ar0}. Load register \Register{\$(0x18+D)} with value from memory pointed by register \Register{\$ar3}. Add corresponding indexing register \Register{\$ix0} to addressing register \Register{\$ar0} and increment \Register{\$ar3}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} @@ -4953,6 +4994,7 @@ When the main and extension opcodes write to the same register, the register is \begin{DSPOpcodeDescription} \item Store value of register \Register{\$(0x1c+S)} in the memory pointed by register \Register{\$arD}. Add indexing register \Register{\$ixD} to register \Register{\$arD}. + \item When storing from \Register{\$ac0.m} or \Register{\$ac1.m}, optionally apply saturation depending on the value of \RegisterField{\$sr.SXM} (see \nameref{subsec:SET40}). \end{DSPOpcodeDescription} \begin{DSPOpcodeOperation} From f47dfc3dba8d4f50aac9d198074ab86523489106 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 22 May 2022 21:03:01 -0700 Subject: [PATCH 149/659] docs/DSP: Update version and history The GFDL requires the history section to be updated. --- .../GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex index e82e25aecc..fc352182f5 100644 --- a/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex +++ b/docs/DSP/GameCube_DSP_Users_Manual/GameCube_DSP_Users_Manual.tex @@ -46,7 +46,7 @@ % Document front page material \title{\textbf{\Huge GameCube DSP User's Manual}} \author{Reverse-engineered and documented by Duddie \\ \href{mailto:duddie@walla.com}{duddie@walla.com}} -\date{\today\\v0.1.3} +\date{\today\\v0.1.4} % Title formatting commands \newcommand{\OpcodeTitle}[1]{\subsection{#1}\label{instruction:#1}} @@ -261,6 +261,7 @@ The purpose of this documentation is purely academic and it aims at understandin 0.1.1 & 2022.05.14 & xperia64 & Added tested DSP bootloading transfer size \\ \hline 0.1.2 & 2022.05.21 & Pokechu22 & Fixed ``ILLR'' typo in Instruction Memory section \\ \hline 0.1.3 & 2022.05.27 & Pokechu22 & Renamed \texttt{CMPAR} instruction to \texttt{CMPAXH} \\ \hline +0.1.4 & 2022.06.02 & Pokechu22 & Fixed typos; added sections on 16-bit and 40-bit modes and on main and extended opcode writing to the same register. \\ \hline \end{tabular} \end{table} From 7ce1a5717ab4009be4a916d0e22f696a81e16790 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Thu, 3 Feb 2022 13:16:16 -0500 Subject: [PATCH 150/659] UICommon: Add support for portable.txt on macOS --- Source/Core/UICommon/UICommon.cpp | 71 +++++++++++++++++-------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index cb857fd3c7..b239f4c164 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -296,17 +296,7 @@ void SetUserDirectory(std::string custom_path) home = ""; std::string home_path = std::string(home) + DIR_SEP; -#if defined(__APPLE__) || defined(ANDROID) - if (env_path) - { - user_path = env_path; - } - else - { - user_path = home_path + DOLPHIN_DATA_DIR DIR_SEP; - } -#else - // We are on a non-Apple and non-Android POSIX system, there are 4 cases: + // On a non-Apple and non-Android POSIX system, there are 4 cases: // 1. GetExeDirectory()/portable.txt exists // -> Use GetExeDirectory()/User // 2. $DOLPHIN_EMU_USERPATH is set @@ -316,7 +306,15 @@ void SetUserDirectory(std::string custom_path) // 4. Default // -> Use XDG basedir, see // http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html - user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP; + // + // On macOS: + // 1. GetExeDirectory()/portable.txt exists + // -> Use GetExeDirectory()/User + // 2. $DOLPHIN_EMU_USERPATH is set + // -> Use $DOLPHIN_EMU_USERPATH + // 3. Default + // + // On Android, custom_path is set, so this code path is never reached. std::string exe_path = File::GetExeDirectory(); if (File::Exists(exe_path + DIR_SEP "portable.txt")) { @@ -326,29 +324,40 @@ void SetUserDirectory(std::string custom_path) { user_path = env_path; } - else if (!File::Exists(user_path)) +#if defined(__APPLE__) || defined(ANDROID) + else { - const char* data_home = getenv("XDG_DATA_HOME"); - std::string data_path = - std::string(data_home && data_home[0] == '/' ? data_home : - (home_path + ".local" DIR_SEP "share")) + - DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; + user_path = home_path + DOLPHIN_DATA_DIR DIR_SEP; + } +#else + else + { + user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP; - const char* config_home = getenv("XDG_CONFIG_HOME"); - std::string config_path = - std::string(config_home && config_home[0] == '/' ? config_home : - (home_path + ".config")) + - DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; + if (!File::Exists(user_path)) + { + const char* data_home = getenv("XDG_DATA_HOME"); + std::string data_path = + std::string(data_home && data_home[0] == '/' ? data_home : + (home_path + ".local" DIR_SEP "share")) + + DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; - const char* cache_home = getenv("XDG_CACHE_HOME"); - std::string cache_path = - std::string(cache_home && cache_home[0] == '/' ? cache_home : (home_path + ".cache")) + - DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; + const char* config_home = getenv("XDG_CONFIG_HOME"); + std::string config_path = + std::string(config_home && config_home[0] == '/' ? config_home : + (home_path + ".config")) + + DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; - File::SetUserPath(D_USER_IDX, data_path); - File::SetUserPath(D_CONFIG_IDX, config_path); - File::SetUserPath(D_CACHE_IDX, cache_path); - return; + const char* cache_home = getenv("XDG_CACHE_HOME"); + std::string cache_path = + std::string(cache_home && cache_home[0] == '/' ? cache_home : (home_path + ".cache")) + + DIR_SEP DOLPHIN_DATA_DIR DIR_SEP; + + File::SetUserPath(D_USER_IDX, data_path); + File::SetUserPath(D_CONFIG_IDX, config_path); + File::SetUserPath(D_CACHE_IDX, cache_path); + return; + } } #endif } From a720e8509bfaa075705e7248c39eefbba17df3d9 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 2 Jun 2022 15:52:53 -0700 Subject: [PATCH 151/659] msvc: update min version to VS 17.2.3 --- Readme.md | 2 +- Source/PCH/pch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index d0a4bdc724..9bca20f9d8 100644 --- a/Readme.md +++ b/Readme.md @@ -39,7 +39,7 @@ Dolphin can only be installed on devices that satisfy the above requirements. At ## Building for Windows Use the solution file `Source/dolphin-emu.sln` to build Dolphin on Windows. -Visual Studio 2022 17.2 or later is a hard requirement. Other compilers might be +Visual Studio 2022 17.2.3 or later is a hard requirement. Other compilers might be able to build Dolphin on Windows but have not been tested and are not recommended to be used. Git and Windows 11 SDK must be installed when building. diff --git a/Source/PCH/pch.h b/Source/PCH/pch.h index 10efeec5e0..e1448056d7 100644 --- a/Source/PCH/pch.h +++ b/Source/PCH/pch.h @@ -6,7 +6,7 @@ #define STRINGIFY_HELPER(x) #x #define STRINGIFY(x) STRINGIFY_HELPER(x) -#if defined _MSC_FULL_VER && _MSC_FULL_VER < 193231328 +#if defined _MSC_FULL_VER && _MSC_FULL_VER < 193231329 #pragma message("Current _MSC_FULL_VER: " STRINGIFY(_MSC_FULL_VER)) #error Please update your build environment to the latest Visual Studio 2022! #endif From b07d6116d9b7cb5b4da07d6ce904557e620e6ca3 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 2 Jun 2022 15:53:29 -0700 Subject: [PATCH 152/659] update min windows sdk to 10.0.22621 --- Source/PCH/pch.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/PCH/pch.h b/Source/PCH/pch.h index e1448056d7..b935c1528b 100644 --- a/Source/PCH/pch.h +++ b/Source/PCH/pch.h @@ -12,9 +12,9 @@ #endif #include -#ifndef NTDDI_WIN10_CO +#ifndef NTDDI_WIN10_NI #pragma message("Current WDK_NTDDI_VERSION: " STRINGIFY(WDK_NTDDI_VERSION)) -#error Windows 10.0.22000 SDK or later is required +#error Windows 10.0.22621 SDK or later is required #endif #undef STRINGIFY From f11b6bbdda9c8cfe0e227bb91b9d201daead39f3 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 2 Jun 2022 15:56:01 -0700 Subject: [PATCH 153/659] cmake/win: don't set _WIN32_WINNT --- Source/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index c9d2edb516..cca7a20f2a 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -8,7 +8,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows") add_definitions(-DUNICODE) add_definitions(-D_UNICODE) add_definitions(-DWIN32_LEAN_AND_MEAN) - add_definitions(-D_WIN32_WINNT=0x0602) add_definitions(-D_SCL_SECURE_NO_WARNINGS) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) From dd6592698e1c2934ad6d67756d25aac5e2df96ef Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 19 Apr 2022 14:41:13 -0700 Subject: [PATCH 154/659] GCAdapter: Merge GCAdapter.cpp and GCAdapter_Android.cpp This is mostly a brainless merge, #ifdef-ing anything that doesn't match between the two while preserving common logic. I didn't rename any variables (although similar ones do exist), but I did change one log that was ERROR on android and NOTICE elsewhere to just always be NOTICE. Further merging will follow. --- Source/Core/InputCommon/CMakeLists.txt | 10 +- Source/Core/InputCommon/GCAdapter.cpp | 302 ++++++++++++- Source/Core/InputCommon/GCAdapter_Android.cpp | 420 ------------------ 3 files changed, 292 insertions(+), 440 deletions(-) delete mode 100644 Source/Core/InputCommon/GCAdapter_Android.cpp diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index 910d64d8d4..06f959a91a 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -1,6 +1,8 @@ add_library(inputcommon DynamicInputTextureManager.cpp DynamicInputTextureManager.h + GCAdapter.cpp + GCAdapter.h ImageOperations.cpp ImageOperations.h InputConfig.cpp @@ -143,13 +145,7 @@ elseif(ANDROID) ) endif() -if(ANDROID) - target_sources(inputcommon PRIVATE GCAdapter_Android.cpp) -else() - target_sources(inputcommon PRIVATE - GCAdapter.cpp - GCAdapter.h - ) +if(NOT ANDROID) target_link_libraries(inputcommon PUBLIC ${LIBUSB_LIBRARIES}) endif() diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index f567335223..86a595aaf4 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -1,30 +1,49 @@ // Copyright 2014 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include "InputCommon/GCAdapter.h" + +#ifndef ANDROID +#define GCADAPTER_USE_LIBUSB_IMPLEMENTATION true +#define GCADAPTER_USE_ANDROID_IMPLEMENTATION false +#else +#define GCADAPTER_USE_LIBUSB_IMPLEMENTATION false +#define GCADAPTER_USE_ANDROID_IMPLEMENTATION true +#endif + #include #include -#include #include #include +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION +#include +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +#include +#endif + #include "Common/Event.h" #include "Common/Flag.h" #include "Common/Logging/Log.h" -#include "Common/ScopeGuard.h" #include "Common/Thread.h" #include "Core/Config/MainSettings.h" -#include "Core/ConfigManager.h" #include "Core/Core.h" #include "Core/CoreTiming.h" #include "Core/HW/SI/SI.h" #include "Core/HW/SI/SI_Device.h" #include "Core/HW/SystemTimers.h" -#include "Core/LibusbUtils.h" -#include "Core/NetPlayProto.h" - -#include "InputCommon/GCAdapter.h" #include "InputCommon/GCPadStatus.h" +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION +#include "Common/ScopeGuard.h" +#include "Core/ConfigManager.h" +#include "Core/LibusbUtils.h" +#include "Core/NetPlayProto.h" +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +#include "jni/AndroidCommon/IDCache.h" +#endif + +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION #if defined(LIBUSB_API_VERSION) #define LIBUSB_API_VERSION_EXIST 1 #else @@ -33,15 +52,19 @@ #define LIBUSB_API_VERSION_ATLEAST(v) (LIBUSB_API_VERSION_EXIST && LIBUSB_API_VERSION >= (v)) #define LIBUSB_API_HAS_HOTPLUG LIBUSB_API_VERSION_ATLEAST(0x01000102) +#endif namespace GCAdapter { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static bool CheckDeviceAccess(libusb_device* device); static void AddGCAdapter(libusb_device* device); static void ResetRumbleLockNeeded(); +#endif static void Reset(); static void Setup(); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION enum { NO_ADAPTER_DETECTED = 0, @@ -51,11 +74,20 @@ enum // Current adapter status: detected/not detected/in error (holds the error code) static std::atomic s_status = NO_ADAPTER_DETECTED; static libusb_device_handle* s_handle = nullptr; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +// Java classes +static jclass s_adapter_class; + +static bool s_detected = false; +static int s_fd = 0; +#endif + static std::array s_controller_type = { ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE}; static std::array s_controller_rumble{}; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::mutex s_mutex; static u8 s_controller_payload[37]; static u8 s_controller_payload_swap[37]; @@ -70,8 +102,29 @@ static Common::Flag s_adapter_thread_running; static Common::Event s_rumble_data_available; static std::mutex s_init_mutex; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +// Input handling +static std::mutex s_read_mutex; +static std::array s_controller_payload; +static int s_controller_payload_size = {0}; + +// Output handling +static std::mutex s_write_mutex; +static u8 s_controller_write_payload[5]; +static std::atomic s_controller_write_payload_size{0}; + +// Adapter running thread +static std::thread s_read_adapter_thread; +static Common::Flag s_read_adapter_thread_running; + +static Common::Flag s_write_adapter_thread_running; +static Common::Event s_write_happened; +#endif + static std::thread s_adapter_detect_thread; static Common::Flag s_adapter_detect_thread_running; + +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static Common::Event s_hotplug_event; static std::function s_detect_callback; @@ -89,18 +142,22 @@ static std::unique_ptr s_libusb_context; static u8 s_endpoint_in = 0; static u8 s_endpoint_out = 0; +#endif static u64 s_last_init = 0; static std::optional s_config_callback_id = std::nullopt; static std::array s_config_si_device_type{}; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::array s_config_rumble_enabled{}; +#endif static void Read() { Common::SetCurrentThreadName("GCAdapter Read Thread"); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int payload_size = 0; while (s_adapter_thread_running.IsSet()) { @@ -118,12 +175,73 @@ static void Read() Common::YieldCPU(); } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread started"); + + bool first_read = true; + JNIEnv* env = IDCache::GetEnvForThread(); + + jfieldID payload_field = env->GetStaticFieldID(s_adapter_class, "controller_payload", "[B"); + jobject payload_object = env->GetStaticObjectField(s_adapter_class, payload_field); + auto* java_controller_payload = reinterpret_cast(&payload_object); + + // Get function pointers + jmethodID getfd_func = env->GetStaticMethodID(s_adapter_class, "GetFD", "()I"); + jmethodID input_func = env->GetStaticMethodID(s_adapter_class, "Input", "()I"); + jmethodID openadapter_func = env->GetStaticMethodID(s_adapter_class, "OpenAdapter", "()Z"); + + bool connected = env->CallStaticBooleanMethod(s_adapter_class, openadapter_func); + + if (connected) + { + s_write_adapter_thread_running.Set(true); + std::thread write_adapter_thread(Write); + + // Reset rumble once on initial reading + ResetRumble(); + + while (s_read_adapter_thread_running.IsSet()) + { + int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); + + jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); + { + std::lock_guard lk(s_read_mutex); + std::copy(java_data, java_data + s_controller_payload.size(), s_controller_payload.begin()); + s_controller_payload_size = read_size; + } + env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); + + if (first_read) + { + first_read = false; + s_fd = env->CallStaticIntMethod(s_adapter_class, getfd_func); + } + + Common::YieldCPU(); + } + + // Terminate the write thread on leaving + if (s_write_adapter_thread_running.TestAndClear()) + { + s_controller_write_payload_size.store(0); + s_write_happened.Set(); // Kick the waiting event + write_adapter_thread.join(); + } + } + + s_fd = 0; + s_detected = false; + + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread stopped"); +#endif } static void Write() { Common::SetCurrentThreadName("GCAdapter Write Thread"); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int size = 0; while (true) @@ -146,8 +264,44 @@ static void Write() ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb write failed: err={}", libusb_error_name(err)); } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread started"); + + JNIEnv* env = IDCache::GetEnvForThread(); + jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I"); + + while (s_write_adapter_thread_running.IsSet()) + { + s_write_happened.Wait(); + int write_size = s_controller_write_payload_size.load(); + if (write_size) + { + jbyteArray jrumble_array = env->NewByteArray(5); + jbyte* jrumble = env->GetByteArrayElements(jrumble_array, nullptr); + + { + std::lock_guard lk(s_write_mutex); + memcpy(jrumble, s_controller_write_payload, write_size); + } + + env->ReleaseByteArrayElements(jrumble_array, jrumble, 0); + int size = env->CallStaticIntMethod(s_adapter_class, output_func, jrumble_array); + // Netplay sends invalid data which results in size = 0x00. Ignore it. + if (size != write_size && size != 0x00) + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, "error writing rumble (size: {})", size); + Reset(); + } + } + + Common::YieldCPU(); + } + + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread stopped"); +#endif } +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION #if LIBUSB_API_HAS_HOTPLUG static int HotplugCallback(libusb_context* ctx, libusb_device* dev, libusb_hotplug_event event, void* user_data) @@ -173,12 +327,14 @@ static int HotplugCallback(libusb_context* ctx, libusb_device* dev, libusb_hotpl return 0; } #endif +#endif static void ScanThreadFunc() { Common::SetCurrentThreadName("GC Adapter Scanning Thread"); NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter scanning thread started"); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION #if LIBUSB_API_HAS_HOTPLUG #ifndef __FreeBSD__ s_libusb_hotplug_enabled = libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG) != 0; @@ -210,12 +366,28 @@ static void ScanThreadFunc() else Common::SleepCurrentThread(500); } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + JNIEnv* env = IDCache::GetEnvForThread(); + + jmethodID queryadapter_func = env->GetStaticMethodID(s_adapter_class, "QueryAdapter", "()Z"); + + while (s_adapter_detect_thread_running.IsSet()) + { + if (!s_detected && UseAdapter() && + env->CallStaticBooleanMethod(s_adapter_class, queryadapter_func)) + Setup(); + Common::SleepCurrentThread(1000); + } +#endif + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter scanning thread stopped"); } -void SetAdapterCallback(std::function func) +void SetAdapterCallback(std::function func) { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_detect_callback = func; +#endif } static void RefreshConfig() @@ -223,16 +395,23 @@ static void RefreshConfig() for (int i = 0; i < SerialInterface::MAX_SI_CHANNELS; ++i) { s_config_si_device_type[i] = Config::Get(Config::GetInfoForSIDevice(i)); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_config_rumble_enabled[i] = Config::Get(Config::GetInfoForAdapterRumble(i)); +#endif } } void Init() { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION if (s_handle != nullptr) return; s_libusb_context = std::make_unique(); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + if (s_fd) + return; +#endif if (Core::GetState() != Core::State::Uninitialized && Core::GetState() != Core::State::Starting) { @@ -242,7 +421,14 @@ void Init() s_last_init = CoreTiming::GetTicks(); } +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_status = NO_ADAPTER_DETECTED; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + JNIEnv* env = IDCache::GetEnvForThread(); + + jclass adapter_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Java_GCAdapter"); + s_adapter_class = reinterpret_cast(env->NewGlobalRef(adapter_class)); +#endif if (!s_config_callback_id) s_config_callback_id = Config::AddConfigChangedCallback(RefreshConfig); @@ -256,8 +442,10 @@ void StartScanThread() { if (s_adapter_detect_thread_running.IsSet()) return; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION if (!s_libusb_context->IsValid()) return; +#endif s_adapter_detect_thread_running.Set(true); s_adapter_detect_thread = std::thread(ScanThreadFunc); } @@ -266,13 +454,16 @@ void StopScanThread() { if (s_adapter_detect_thread_running.TestAndClear()) { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_hotplug_event.Set(); +#endif s_adapter_detect_thread.join(); } } static void Setup() { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int prev_status = s_status; // Reset the error status in case the adapter gets unplugged @@ -294,8 +485,20 @@ static void Setup() if (s_status != ADAPTER_DETECTED && prev_status != s_status && s_detect_callback != nullptr) s_detect_callback(); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + s_fd = 0; + s_detected = true; + + // Make sure the thread isn't in the middle of shutting down while starting a new one + if (s_read_adapter_thread_running.TestAndClear()) + s_read_adapter_thread.join(); + + s_read_adapter_thread_running.Set(true); + s_read_adapter_thread = std::thread(Read); +#endif } +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static bool CheckDeviceAccess(libusb_device* device) { libusb_device_descriptor desc; @@ -414,18 +617,23 @@ static void AddGCAdapter(libusb_device* device) s_detect_callback(); ResetRumbleLockNeeded(); } +#endif void Shutdown() { StopScanThread(); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION #if LIBUSB_API_HAS_HOTPLUG if (s_libusb_context->IsValid() && s_libusb_hotplug_enabled) libusb_hotplug_deregister_callback(*s_libusb_context, s_hotplug_handle); +#endif #endif Reset(); - s_libusb_context.reset(); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + s_libusb_context.reset(); s_status = NO_ADAPTER_DETECTED; +#endif if (s_config_callback_id) { @@ -436,6 +644,7 @@ void Shutdown() static void Reset() { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION std::unique_lock lock(s_init_mutex, std::defer_lock); if (!lock.try_lock()) return; @@ -448,9 +657,17 @@ static void Reset() s_adapter_input_thread.join(); s_adapter_output_thread.join(); } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + if (!s_detected) + return; + + if (s_read_adapter_thread_running.TestAndClear()) + s_read_adapter_thread.join(); +#endif s_controller_type.fill(ControllerTypes::CONTROLLER_NONE); +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_status = NO_ADAPTER_DETECTED; if (s_handle) @@ -461,6 +678,11 @@ static void Reset() } if (s_detect_callback != nullptr) s_detect_callback(); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + s_detected = false; + s_fd = 0; +#endif + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter detached"); } @@ -469,26 +691,42 @@ GCPadStatus Input(int chan) if (!UseAdapter()) return {}; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION if (s_handle == nullptr || s_status != ADAPTER_DETECTED) return {}; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + if (!s_detected || !s_fd) + return {}; +#endif int payload_size = 0; u8 controller_payload_copy[37]; { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION std::lock_guard lk(s_mutex); std::copy(std::begin(s_controller_payload), std::end(s_controller_payload), std::begin(controller_payload_copy)); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + std::lock_guard lk(s_read_mutex); + controller_payload_copy = s_controller_payload; +#endif payload_size = s_controller_payload_size; } GCPadStatus pad = {}; - if (payload_size != sizeof(controller_payload_copy) || - controller_payload_copy[0] != LIBUSB_DT_HID) + if (payload_size != sizeof(controller_payload_copy) +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + || controller_payload_copy[0] != LIBUSB_DT_HID +#endif + ) { // This can occur for a few frames on initialization. ERROR_LOG_FMT(CONTROLLERINTERFACE, "error reading payload (size: {}, type: {:02x})", payload_size, controller_payload_copy[0]); +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION + Reset(); +#endif } else { @@ -546,7 +784,10 @@ GCPadStatus Input(int chan) pad.triggerLeft = controller_payload_copy[1 + (9 * chan) + 7]; pad.triggerRight = controller_payload_copy[1 + (9 * chan) + 8]; } - else if (!Core::WantsDeterminism()) + else +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + if (!Core::WantsDeterminism()) +#endif { // This is a hack to prevent a desync due to SI devices // being different and returning different values. @@ -578,12 +819,23 @@ bool UseAdapter() void ResetRumble() { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION std::unique_lock lock(s_init_mutex, std::defer_lock); if (!lock.try_lock()) return; ResetRumbleLockNeeded(); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + unsigned char rumble[5] = {0x11, 0, 0, 0, 0}; + { + std::lock_guard lk(s_write_mutex); + memcpy(s_controller_write_payload, rumble, 5); + s_controller_write_payload_size.store(5); + } + s_write_happened.Set(); +#endif } +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION // Needs to be called when s_init_mutex is locked in order to avoid // being called while the libusb state is being reset static void ResetRumbleLockNeeded() @@ -603,23 +855,44 @@ static void ResetRumbleLockNeeded() INFO_LOG_FMT(CONTROLLERINTERFACE, "Rumble state reset"); } +#endif void Output(int chan, u8 rumble_command) { - if (s_handle == nullptr || !UseAdapter() || !s_config_rumble_enabled[chan]) + if (!UseAdapter()) return; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + if (s_handle == nullptr || !s_config_rumble_enabled[chan]) + return; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + if (!s_detected || !s_fd) + return; +#endif + // Skip over rumble commands if it has not changed or the controller is wireless if (rumble_command != s_controller_rumble[chan] && s_controller_type[chan] != ControllerTypes::CONTROLLER_WIRELESS) { s_controller_rumble[chan] = rumble_command; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_rumble_data_available.Set(); +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + unsigned char rumble[5] = {0x11, s_controller_rumble[0], s_controller_rumble[1], + s_controller_rumble[2], s_controller_rumble[3]}; + { + std::lock_guard lk(s_write_mutex); + memcpy(s_controller_write_payload, rumble, 5); + s_controller_write_payload_size.store(5); + } + s_write_happened.Set(); +#endif } } bool IsDetected(const char** error_message) { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION if (s_status >= 0) { if (error_message) @@ -632,6 +905,9 @@ bool IsDetected(const char** error_message) *error_message = libusb_strerror(static_cast(s_status.load())); return false; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + return s_detected; +#endif } } // namespace GCAdapter diff --git a/Source/Core/InputCommon/GCAdapter_Android.cpp b/Source/Core/InputCommon/GCAdapter_Android.cpp deleted file mode 100644 index 499a9ece30..0000000000 --- a/Source/Core/InputCommon/GCAdapter_Android.cpp +++ /dev/null @@ -1,420 +0,0 @@ -// Copyright 2014 Dolphin Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "InputCommon/GCAdapter.h" - -#include -#include -#include -#include - -#include "Common/Event.h" -#include "Common/Flag.h" -#include "Common/Logging/Log.h" -#include "Common/Thread.h" -#include "Core/Config/MainSettings.h" -#include "Core/Core.h" -#include "Core/CoreTiming.h" -#include "Core/HW/SI/SI.h" -#include "Core/HW/SI/SI_Device.h" -#include "Core/HW/SystemTimers.h" - -#include "InputCommon/GCPadStatus.h" - -#include "jni/AndroidCommon/IDCache.h" - -namespace GCAdapter -{ -static void Setup(); -static void Reset(); - -// Java classes -static jclass s_adapter_class; - -static bool s_detected = false; -static int s_fd = 0; -static std::array s_controller_type = { - ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, - ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE}; -static u8 s_controller_rumble[4]; - -// Input handling -static std::mutex s_read_mutex; -static std::array s_controller_payload; -static int s_controller_payload_size{0}; - -// Output handling -static std::mutex s_write_mutex; -static u8 s_controller_write_payload[5]; -static std::atomic s_controller_write_payload_size{0}; - -// Adapter running thread -static std::thread s_read_adapter_thread; -static Common::Flag s_read_adapter_thread_running; - -static Common::Flag s_write_adapter_thread_running; -static Common::Event s_write_happened; - -// Adapter scanning thread -static std::thread s_adapter_detect_thread; -static Common::Flag s_adapter_detect_thread_running; - -static u64 s_last_init = 0; - -static std::optional s_config_callback_id = std::nullopt; -static std::array - s_config_si_device_type{}; - -static void RefreshConfig() -{ - for (int i = 0; i < SerialInterface::MAX_SI_CHANNELS; ++i) - s_config_si_device_type[i] = Config::Get(Config::GetInfoForSIDevice(i)); -} - -static void ScanThreadFunc() -{ - Common::SetCurrentThreadName("GC Adapter Scanning Thread"); - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter scanning thread started"); - - JNIEnv* env = IDCache::GetEnvForThread(); - - jmethodID queryadapter_func = env->GetStaticMethodID(s_adapter_class, "QueryAdapter", "()Z"); - - while (s_adapter_detect_thread_running.IsSet()) - { - if (!s_detected && UseAdapter() && - env->CallStaticBooleanMethod(s_adapter_class, queryadapter_func)) - Setup(); - Common::SleepCurrentThread(1000); - } - - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter scanning thread stopped"); -} - -static void Write() -{ - Common::SetCurrentThreadName("GC Adapter Write Thread"); - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread started"); - - JNIEnv* env = IDCache::GetEnvForThread(); - jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I"); - - while (s_write_adapter_thread_running.IsSet()) - { - s_write_happened.Wait(); - int write_size = s_controller_write_payload_size.load(); - if (write_size) - { - jbyteArray jrumble_array = env->NewByteArray(5); - jbyte* jrumble = env->GetByteArrayElements(jrumble_array, nullptr); - - { - std::lock_guard lk(s_write_mutex); - memcpy(jrumble, s_controller_write_payload, write_size); - } - - env->ReleaseByteArrayElements(jrumble_array, jrumble, 0); - int size = env->CallStaticIntMethod(s_adapter_class, output_func, jrumble_array); - // Netplay sends invalid data which results in size = 0x00. Ignore it. - if (size != write_size && size != 0x00) - { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "error writing rumble (size: {})", size); - Reset(); - } - } - - Common::YieldCPU(); - } - - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread stopped"); -} - -static void Read() -{ - Common::SetCurrentThreadName("GC Adapter Read Thread"); - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread started"); - - bool first_read = true; - JNIEnv* env = IDCache::GetEnvForThread(); - - jfieldID payload_field = env->GetStaticFieldID(s_adapter_class, "controller_payload", "[B"); - jobject payload_object = env->GetStaticObjectField(s_adapter_class, payload_field); - auto* java_controller_payload = reinterpret_cast(&payload_object); - - // Get function pointers - jmethodID getfd_func = env->GetStaticMethodID(s_adapter_class, "GetFD", "()I"); - jmethodID input_func = env->GetStaticMethodID(s_adapter_class, "Input", "()I"); - jmethodID openadapter_func = env->GetStaticMethodID(s_adapter_class, "OpenAdapter", "()Z"); - - bool connected = env->CallStaticBooleanMethod(s_adapter_class, openadapter_func); - - if (connected) - { - s_write_adapter_thread_running.Set(true); - std::thread write_adapter_thread(Write); - - // Reset rumble once on initial reading - ResetRumble(); - - while (s_read_adapter_thread_running.IsSet()) - { - int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); - - jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); - { - std::lock_guard lk(s_read_mutex); - std::copy(java_data, java_data + s_controller_payload.size(), s_controller_payload.begin()); - s_controller_payload_size = read_size; - } - env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); - - if (first_read) - { - first_read = false; - s_fd = env->CallStaticIntMethod(s_adapter_class, getfd_func); - } - - Common::YieldCPU(); - } - - // Terminate the write thread on leaving - if (s_write_adapter_thread_running.TestAndClear()) - { - s_controller_write_payload_size.store(0); - s_write_happened.Set(); // Kick the waiting event - write_adapter_thread.join(); - } - } - - s_fd = 0; - s_detected = false; - - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread stopped"); -} - -void Init() -{ - if (s_fd) - return; - - if (Core::GetState() != Core::State::Uninitialized && Core::GetState() != Core::State::Starting) - { - if ((CoreTiming::GetTicks() - s_last_init) < SystemTimers::GetTicksPerSecond()) - return; - - s_last_init = CoreTiming::GetTicks(); - } - - JNIEnv* env = IDCache::GetEnvForThread(); - - jclass adapter_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Java_GCAdapter"); - s_adapter_class = reinterpret_cast(env->NewGlobalRef(adapter_class)); - - if (!s_config_callback_id) - s_config_callback_id = Config::AddConfigChangedCallback(RefreshConfig); - RefreshConfig(); - - if (UseAdapter()) - StartScanThread(); -} - -static void Setup() -{ - s_fd = 0; - s_detected = true; - - // Make sure the thread isn't in the middle of shutting down while starting a new one - if (s_read_adapter_thread_running.TestAndClear()) - s_read_adapter_thread.join(); - - s_read_adapter_thread_running.Set(true); - s_read_adapter_thread = std::thread(Read); -} - -static void Reset() -{ - if (!s_detected) - return; - - if (s_read_adapter_thread_running.TestAndClear()) - s_read_adapter_thread.join(); - - s_controller_type.fill(ControllerTypes::CONTROLLER_NONE); - - s_detected = false; - s_fd = 0; - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter detached"); -} - -void Shutdown() -{ - StopScanThread(); - Reset(); - - if (s_config_callback_id) - { - Config::RemoveConfigChangedCallback(*s_config_callback_id); - s_config_callback_id = std::nullopt; - } -} - -void StartScanThread() -{ - if (s_adapter_detect_thread_running.IsSet()) - return; - - s_adapter_detect_thread_running.Set(true); - s_adapter_detect_thread = std::thread(ScanThreadFunc); -} - -void StopScanThread() -{ - if (s_adapter_detect_thread_running.TestAndClear()) - s_adapter_detect_thread.join(); -} - -GCPadStatus Input(int chan) -{ - if (!UseAdapter() || !s_detected || !s_fd) - return {}; - - int payload_size = 0; - std::array controller_payload_copy{}; - - { - std::lock_guard lk(s_read_mutex); - controller_payload_copy = s_controller_payload; - payload_size = s_controller_payload_size; - } - - GCPadStatus pad = {}; - if (payload_size != controller_payload_copy.size()) - { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "error reading payload (size: {}, type: {:02x})", - payload_size, controller_payload_copy[0]); - Reset(); - } - else - { - bool get_origin = false; - u8 type = controller_payload_copy[1 + (9 * chan)] >> 4; - if (type != ControllerTypes::CONTROLLER_NONE && - s_controller_type[chan] == ControllerTypes::CONTROLLER_NONE) - { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "New device connected to Port {} of Type: {:02x}", - chan + 1, controller_payload_copy[1 + (9 * chan)]); - get_origin = true; - } - - s_controller_type[chan] = type; - - if (s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE) - { - u8 b1 = controller_payload_copy[1 + (9 * chan) + 1]; - u8 b2 = controller_payload_copy[1 + (9 * chan) + 2]; - - if (b1 & (1 << 0)) - pad.button |= PAD_BUTTON_A; - if (b1 & (1 << 1)) - pad.button |= PAD_BUTTON_B; - if (b1 & (1 << 2)) - pad.button |= PAD_BUTTON_X; - if (b1 & (1 << 3)) - pad.button |= PAD_BUTTON_Y; - - if (b1 & (1 << 4)) - pad.button |= PAD_BUTTON_LEFT; - if (b1 & (1 << 5)) - pad.button |= PAD_BUTTON_RIGHT; - if (b1 & (1 << 6)) - pad.button |= PAD_BUTTON_DOWN; - if (b1 & (1 << 7)) - pad.button |= PAD_BUTTON_UP; - - if (b2 & (1 << 0)) - pad.button |= PAD_BUTTON_START; - if (b2 & (1 << 1)) - pad.button |= PAD_TRIGGER_Z; - if (b2 & (1 << 2)) - pad.button |= PAD_TRIGGER_R; - if (b2 & (1 << 3)) - pad.button |= PAD_TRIGGER_L; - - if (get_origin) - pad.button |= PAD_GET_ORIGIN; - - pad.stickX = controller_payload_copy[1 + (9 * chan) + 3]; - pad.stickY = controller_payload_copy[1 + (9 * chan) + 4]; - pad.substickX = controller_payload_copy[1 + (9 * chan) + 5]; - pad.substickY = controller_payload_copy[1 + (9 * chan) + 6]; - pad.triggerLeft = controller_payload_copy[1 + (9 * chan) + 7]; - pad.triggerRight = controller_payload_copy[1 + (9 * chan) + 8]; - } - else - { - pad.button = PAD_ERR_STATUS; - } - } - - return pad; -} - -void Output(int chan, u8 rumble_command) -{ - if (!UseAdapter() || !s_detected || !s_fd) - return; - - // Skip over rumble commands if it has not changed or the controller is wireless - if (rumble_command != s_controller_rumble[chan] && - s_controller_type[chan] != ControllerTypes::CONTROLLER_WIRELESS) - { - s_controller_rumble[chan] = rumble_command; - unsigned char rumble[5] = {0x11, s_controller_rumble[0], s_controller_rumble[1], - s_controller_rumble[2], s_controller_rumble[3]}; - { - std::lock_guard lk(s_write_mutex); - memcpy(s_controller_write_payload, rumble, 5); - s_controller_write_payload_size.store(5); - } - s_write_happened.Set(); - } -} - -bool IsDetected(const char** error_message) -{ - return s_detected; -} -bool DeviceConnected(int chan) -{ - return s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE; -} - -void ResetDeviceType(int chan) -{ - s_controller_type[chan] = ControllerTypes::CONTROLLER_NONE; -} - -bool UseAdapter() -{ - const auto& si_devices = s_config_si_device_type; - return std::any_of(std::begin(si_devices), std::end(si_devices), [](const auto device_type) { - return device_type == SerialInterface::SIDEVICE_WIIU_ADAPTER; - }); -} - -void ResetRumble() -{ - unsigned char rumble[5] = {0x11, 0, 0, 0, 0}; - { - std::lock_guard lk(s_write_mutex); - memcpy(s_controller_write_payload, rumble, 5); - s_controller_write_payload_size.store(5); - } - s_write_happened.Set(); -} - -void SetAdapterCallback(std::function func) -{ -} - -} // end of namespace GCAdapter From 36d4ee0939765cda58cbe1e11b986f2465ad80d7 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 19 Apr 2022 14:24:06 -0700 Subject: [PATCH 155/659] GCAdapter: Use std::array for controller read and write payloads --- Source/Core/InputCommon/GCAdapter.cpp | 67 +++++++++++++++------------ 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 86a595aaf4..84381195fa 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -87,10 +87,14 @@ static std::array s_controller_type = { ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE}; static std::array s_controller_rumble{}; +constexpr size_t CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE = 37; +constexpr size_t CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE = 1; +constexpr size_t CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE = 5; + #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::mutex s_mutex; -static u8 s_controller_payload[37]; -static u8 s_controller_payload_swap[37]; +static std::array s_controller_payload; +static std::array s_controller_payload_swap; // Only access with s_mutex held! static int s_controller_payload_size = {0}; @@ -105,12 +109,12 @@ static std::mutex s_init_mutex; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION // Input handling static std::mutex s_read_mutex; -static std::array s_controller_payload; +static std::array s_controller_payload; static int s_controller_payload_size = {0}; // Output handling static std::mutex s_write_mutex; -static u8 s_controller_write_payload[5]; +static std::array s_controller_write_payload; static std::atomic s_controller_write_payload_size{0}; // Adapter running thread @@ -161,8 +165,8 @@ static void Read() int payload_size = 0; while (s_adapter_thread_running.IsSet()) { - int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap, - sizeof(s_controller_payload_swap), &payload_size, 16); + int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); if (err) ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", libusb_error_name(err)); @@ -207,7 +211,8 @@ static void Read() jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); { std::lock_guard lk(s_read_mutex); - std::copy(java_data, java_data + s_controller_payload.size(), s_controller_payload.begin()); + std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, + s_controller_payload.begin()); s_controller_payload_size = read_size; } env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); @@ -251,15 +256,15 @@ static void Write() if (!s_adapter_thread_running.IsSet()) return; - u8 payload[5] = { + std::array payload = { 0x11, s_controller_rumble[0], s_controller_rumble[1], s_controller_rumble[2], s_controller_rumble[3], }; - const int err = - libusb_interrupt_transfer(s_handle, s_endpoint_out, payload, sizeof(payload), &size, 16); + const int err = libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), + CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE, &size, 16); if (err != 0) ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb write failed: err={}", libusb_error_name(err)); @@ -276,12 +281,12 @@ static void Write() int write_size = s_controller_write_payload_size.load(); if (write_size) { - jbyteArray jrumble_array = env->NewByteArray(5); + jbyteArray jrumble_array = env->NewByteArray(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); jbyte* jrumble = env->GetByteArrayElements(jrumble_array, nullptr); { std::lock_guard lk(s_write_mutex); - memcpy(jrumble, s_controller_write_payload, write_size); + memcpy(jrumble, s_controller_write_payload.data(), write_size); } env->ReleaseByteArrayElements(jrumble_array, jrumble, 0); @@ -604,9 +609,10 @@ static void AddGCAdapter(libusb_device* device) } } - int tmp = 0; - unsigned char payload = 0x13; - libusb_interrupt_transfer(s_handle, s_endpoint_out, &payload, sizeof(payload), &tmp, 16); + int size = 0; + std::array payload = {0x13}; + libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), + CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE, &size, 16); s_adapter_thread_running.Set(true); s_adapter_input_thread = std::thread(Read); @@ -700,22 +706,20 @@ GCPadStatus Input(int chan) #endif int payload_size = 0; - u8 controller_payload_copy[37]; + std::array controller_payload_copy{}; { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION std::lock_guard lk(s_mutex); - std::copy(std::begin(s_controller_payload), std::end(s_controller_payload), - std::begin(controller_payload_copy)); #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION std::lock_guard lk(s_read_mutex); - controller_payload_copy = s_controller_payload; #endif + controller_payload_copy = s_controller_payload; payload_size = s_controller_payload_size; } GCPadStatus pad = {}; - if (payload_size != sizeof(controller_payload_copy) + if (payload_size != CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION || controller_payload_copy[0] != LIBUSB_DT_HID #endif @@ -825,11 +829,11 @@ void ResetRumble() return; ResetRumbleLockNeeded(); #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - unsigned char rumble[5] = {0x11, 0, 0, 0, 0}; + std::array rumble = {0x11, 0, 0, 0, 0}; { std::lock_guard lk(s_write_mutex); - memcpy(s_controller_write_payload, rumble, 5); - s_controller_write_payload_size.store(5); + s_controller_write_payload = rumble; + s_controller_write_payload_size.store(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); } s_write_happened.Set(); #endif @@ -847,11 +851,13 @@ static void ResetRumbleLockNeeded() std::fill(std::begin(s_controller_rumble), std::end(s_controller_rumble), 0); - unsigned char rumble[5] = {0x11, s_controller_rumble[0], s_controller_rumble[1], - s_controller_rumble[2], s_controller_rumble[3]}; + std::array rumble = { + 0x11, s_controller_rumble[0], s_controller_rumble[1], s_controller_rumble[2], + s_controller_rumble[3]}; int size = 0; - libusb_interrupt_transfer(s_handle, s_endpoint_out, rumble, sizeof(rumble), &size, 16); + libusb_interrupt_transfer(s_handle, s_endpoint_out, rumble.data(), + CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE, &size, 16); INFO_LOG_FMT(CONTROLLERINTERFACE, "Rumble state reset"); } @@ -878,12 +884,13 @@ void Output(int chan, u8 rumble_command) #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_rumble_data_available.Set(); #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - unsigned char rumble[5] = {0x11, s_controller_rumble[0], s_controller_rumble[1], - s_controller_rumble[2], s_controller_rumble[3]}; + std::array rumble = { + 0x11, s_controller_rumble[0], s_controller_rumble[1], s_controller_rumble[2], + s_controller_rumble[3]}; { std::lock_guard lk(s_write_mutex); - memcpy(s_controller_write_payload, rumble, 5); - s_controller_write_payload_size.store(5); + s_controller_write_payload = rumble; + s_controller_write_payload_size.store(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); } s_write_happened.Set(); #endif From 682d86f4daaba99294f17d1534f3f98fd9bc2f25 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 19 Apr 2022 14:57:08 -0700 Subject: [PATCH 156/659] GCAdapter: Fix rumble enabled config on Android I believe the setting already existed in the UI; it just wasn't implemented in GCAdapter_Android.cpp. --- Source/Core/InputCommon/GCAdapter.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 84381195fa..d13f743817 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -153,9 +153,7 @@ static u64 s_last_init = 0; static std::optional s_config_callback_id = std::nullopt; static std::array s_config_si_device_type{}; -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::array s_config_rumble_enabled{}; -#endif static void Read() { @@ -400,9 +398,7 @@ static void RefreshConfig() for (int i = 0; i < SerialInterface::MAX_SI_CHANNELS; ++i) { s_config_si_device_type[i] = Config::Get(Config::GetInfoForSIDevice(i)); -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_config_rumble_enabled[i] = Config::Get(Config::GetInfoForAdapterRumble(i)); -#endif } } @@ -865,11 +861,11 @@ static void ResetRumbleLockNeeded() void Output(int chan, u8 rumble_command) { - if (!UseAdapter()) + if (!UseAdapter() || !s_config_rumble_enabled[chan]) return; #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - if (s_handle == nullptr || !s_config_rumble_enabled[chan]) + if (s_handle == nullptr) return; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION if (!s_detected || !s_fd) From 55922e6d17442723e57f7435b758c5450aa12f11 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 19 Apr 2022 15:21:23 -0700 Subject: [PATCH 157/659] GCAdapter: Convert ControllerType to an enum class --- Source/Core/InputCommon/GCAdapter.cpp | 30 ++++++++++++++++----------- Source/Core/InputCommon/GCAdapter.h | 6 ------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index d13f743817..25e14a7e5d 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -82,9 +82,15 @@ static bool s_detected = false; static int s_fd = 0; #endif -static std::array s_controller_type = { - ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, - ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE}; +enum class ControllerType : u8 +{ + None = 0, + Wired = 1, + Wireless = 2, +}; + +static std::array s_controller_type = { + ControllerType::None, ControllerType::None, ControllerType::None, ControllerType::None}; static std::array s_controller_rumble{}; constexpr size_t CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE = 37; @@ -471,7 +477,7 @@ static void Setup() if (s_status < 0) s_status = NO_ADAPTER_DETECTED; - s_controller_type.fill(ControllerTypes::CONTROLLER_NONE); + s_controller_type.fill(ControllerType::None); s_controller_rumble.fill(0); s_libusb_context->GetDeviceList([](libusb_device* device) { @@ -667,7 +673,7 @@ static void Reset() s_read_adapter_thread.join(); #endif - s_controller_type.fill(ControllerTypes::CONTROLLER_NONE); + s_controller_type.fill(ControllerType::None); #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_status = NO_ADAPTER_DETECTED; @@ -731,9 +737,9 @@ GCPadStatus Input(int chan) else { bool get_origin = false; - u8 type = controller_payload_copy[1 + (9 * chan)] >> 4; - if (type != ControllerTypes::CONTROLLER_NONE && - s_controller_type[chan] == ControllerTypes::CONTROLLER_NONE) + // TODO: What do the other bits here indicate? Does casting to an enum like this make sense? + const auto type = static_cast(controller_payload_copy[1 + (9 * chan)] >> 4); + if (type != ControllerType::None && s_controller_type[chan] == ControllerType::None) { NOTICE_LOG_FMT(CONTROLLERINTERFACE, "New device connected to Port {} of Type: {:02x}", chan + 1, controller_payload_copy[1 + (9 * chan)]); @@ -742,7 +748,7 @@ GCPadStatus Input(int chan) s_controller_type[chan] = type; - if (s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE) + if (s_controller_type[chan] != ControllerType::None) { u8 b1 = controller_payload_copy[1 + (9 * chan) + 1]; u8 b2 = controller_payload_copy[1 + (9 * chan) + 2]; @@ -801,12 +807,12 @@ GCPadStatus Input(int chan) bool DeviceConnected(int chan) { - return s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE; + return s_controller_type[chan] != ControllerType::None; } void ResetDeviceType(int chan) { - s_controller_type[chan] = ControllerTypes::CONTROLLER_NONE; + s_controller_type[chan] = ControllerType::None; } bool UseAdapter() @@ -874,7 +880,7 @@ void Output(int chan, u8 rumble_command) // Skip over rumble commands if it has not changed or the controller is wireless if (rumble_command != s_controller_rumble[chan] && - s_controller_type[chan] != ControllerTypes::CONTROLLER_WIRELESS) + s_controller_type[chan] != ControllerType::Wireless) { s_controller_rumble[chan] = rumble_command; #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION diff --git a/Source/Core/InputCommon/GCAdapter.h b/Source/Core/InputCommon/GCAdapter.h index 67c3f7b1cd..25b114a365 100644 --- a/Source/Core/InputCommon/GCAdapter.h +++ b/Source/Core/InputCommon/GCAdapter.h @@ -11,12 +11,6 @@ struct GCPadStatus; namespace GCAdapter { -enum ControllerTypes -{ - CONTROLLER_NONE = 0, - CONTROLLER_WIRED = 1, - CONTROLLER_WIRELESS = 2 -}; void Init(); void ResetRumble(); void Shutdown(); From 3ae775e5745ba847b2195022ebc107004c871dc7 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 19 Apr 2022 15:23:06 -0700 Subject: [PATCH 158/659] GCAdapter: Use determinism hack on Android This hack was added in 8f0cbefbe57762de92284ef151e984f52ec8d7e6, and the part of it in SI_DeviceGCAdapter is present on Android already, so I don't see any reason why this part doesn't apply to Android. --- Source/Core/InputCommon/GCAdapter.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 25e14a7e5d..6242ce3155 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -790,10 +790,7 @@ GCPadStatus Input(int chan) pad.triggerLeft = controller_payload_copy[1 + (9 * chan) + 7]; pad.triggerRight = controller_payload_copy[1 + (9 * chan) + 8]; } - else -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - if (!Core::WantsDeterminism()) -#endif + else if (!Core::WantsDeterminism()) { // This is a hack to prevent a desync due to SI devices // being different and returning different values. From 279888da8c3f827c718fe9d9421e00f08dc2440c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Apr 2022 15:31:40 -0700 Subject: [PATCH 159/659] GCAdapter: Remove unused includes --- Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp | 1 - Source/Core/InputCommon/GCAdapter.cpp | 2 -- 2 files changed, 3 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp b/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp index e57cdd0c0b..f36375025d 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceGCAdapter.cpp @@ -8,7 +8,6 @@ #include "Common/CommonTypes.h" #include "Common/Swap.h" #include "Core/Config/MainSettings.h" -#include "Core/ConfigManager.h" #include "Core/Core.h" #include "Core/HW/GCPad.h" #include "Core/NetPlayProto.h" diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 6242ce3155..5ac8907d57 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -36,9 +36,7 @@ #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION #include "Common/ScopeGuard.h" -#include "Core/ConfigManager.h" #include "Core/LibusbUtils.h" -#include "Core/NetPlayProto.h" #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION #include "jni/AndroidCommon/IDCache.h" #endif From 27947046af4a1c234a63d8636637f8bb74372860 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Apr 2022 17:21:05 -0700 Subject: [PATCH 160/659] GCAdapter: Harmonize read/write thread variable names --- Source/Core/InputCommon/GCAdapter.cpp | 56 ++++++++++++--------------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 5ac8907d57..07b89ff619 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -95,38 +95,32 @@ constexpr size_t CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE = 37; constexpr size_t CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE = 1; constexpr size_t CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE = 5; -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION -static std::mutex s_mutex; static std::array s_controller_payload; +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::array s_controller_payload_swap; +#endif // Only access with s_mutex held! static int s_controller_payload_size = {0}; -static std::thread s_adapter_input_thread; -static std::thread s_adapter_output_thread; -static Common::Flag s_adapter_thread_running; - -static Common::Event s_rumble_data_available; - -static std::mutex s_init_mutex; -#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION -// Input handling -static std::mutex s_read_mutex; -static std::array s_controller_payload; -static int s_controller_payload_size = {0}; - -// Output handling -static std::mutex s_write_mutex; +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION static std::array s_controller_write_payload; static std::atomic s_controller_write_payload_size{0}; +#endif -// Adapter running thread static std::thread s_read_adapter_thread; -static Common::Flag s_read_adapter_thread_running; - -static Common::Flag s_write_adapter_thread_running; +static std::thread s_write_adapter_thread; static Common::Event s_write_happened; + +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION +static std::mutex s_mutex; +static std::mutex s_init_mutex; +static Common::Flag s_adapter_thread_running; +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +static std::mutex s_read_mutex; +static std::mutex s_write_mutex; +static Common::Flag s_read_adapter_thread_running; +static Common::Flag s_write_adapter_thread_running; #endif static std::thread s_adapter_detect_thread; @@ -201,7 +195,7 @@ static void Read() if (connected) { s_write_adapter_thread_running.Set(true); - std::thread write_adapter_thread(Write); + s_write_adapter_thread = std::thread(Write); // Reset rumble once on initial reading ResetRumble(); @@ -253,7 +247,7 @@ static void Write() while (true) { - s_rumble_data_available.Wait(); + s_write_happened.Wait(); if (!s_adapter_thread_running.IsSet()) return; @@ -615,8 +609,8 @@ static void AddGCAdapter(libusb_device* device) CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE, &size, 16); s_adapter_thread_running.Set(true); - s_adapter_input_thread = std::thread(Read); - s_adapter_output_thread = std::thread(Write); + s_read_adapter_thread = std::thread(Read); + s_write_adapter_thread = std::thread(Write); s_status = ADAPTER_DETECTED; if (s_detect_callback != nullptr) @@ -659,9 +653,9 @@ static void Reset() if (s_adapter_thread_running.TestAndClear()) { - s_rumble_data_available.Set(); - s_adapter_input_thread.join(); - s_adapter_output_thread.join(); + s_write_happened.Set(); + s_read_adapter_thread.join(); + s_write_adapter_thread.join(); } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION if (!s_detected) @@ -878,9 +872,7 @@ void Output(int chan, u8 rumble_command) s_controller_type[chan] != ControllerType::Wireless) { s_controller_rumble[chan] = rumble_command; -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - s_rumble_data_available.Set(); -#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION std::array rumble = { 0x11, s_controller_rumble[0], s_controller_rumble[1], s_controller_rumble[2], s_controller_rumble[3]}; @@ -889,8 +881,8 @@ void Output(int chan, u8 rumble_command) s_controller_write_payload = rumble; s_controller_write_payload_size.store(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); } - s_write_happened.Set(); #endif + s_write_happened.Set(); } } From 749a4ad1ef785eb82e42cf083b6cd2511f40001c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Apr 2022 18:42:47 -0700 Subject: [PATCH 161/659] GCAdapter: Remove check on write size on android It was removed for non-android in 56239d1ae139998a7cde17ff02f0526ffb17f5ef, and android already uses a separate thread, so presumably this isn't needed anymore. --- Source/Core/InputCommon/GCAdapter.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 07b89ff619..0f52305816 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -286,13 +286,7 @@ static void Write() } env->ReleaseByteArrayElements(jrumble_array, jrumble, 0); - int size = env->CallStaticIntMethod(s_adapter_class, output_func, jrumble_array); - // Netplay sends invalid data which results in size = 0x00. Ignore it. - if (size != write_size && size != 0x00) - { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "error writing rumble (size: {})", size); - Reset(); - } + env->CallStaticIntMethod(s_adapter_class, output_func, jrumble_array); } Common::YieldCPU(); From 0fa92694d120e2a68666c597cf40fc94ca3d4b23 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Apr 2022 18:52:04 -0700 Subject: [PATCH 162/659] GCAdapter: Exit early if the adapter fails to open on Android This is only so that indentation is consistent with the non-android code. --- Source/Core/InputCommon/GCAdapter.cpp | 66 +++++++++++++++------------ 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 0f52305816..1a0844c42e 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -192,43 +192,49 @@ static void Read() bool connected = env->CallStaticBooleanMethod(s_adapter_class, openadapter_func); - if (connected) + if (!connected) { - s_write_adapter_thread_running.Set(true); - s_write_adapter_thread = std::thread(Write); + s_fd = 0; + s_detected = false; - // Reset rumble once on initial reading - ResetRumble(); + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter failed to open!"); + return; + } - while (s_read_adapter_thread_running.IsSet()) + s_write_adapter_thread_running.Set(true); + s_write_adapter_thread = std::thread(Write); + + // Reset rumble once on initial reading + ResetRumble(); + + while (s_read_adapter_thread_running.IsSet()) + { + int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); + + jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); { - int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); + std::lock_guard lk(s_read_mutex); + std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, + s_controller_payload.begin()); + s_controller_payload_size = read_size; + } + env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); - jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); - { - std::lock_guard lk(s_read_mutex); - std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, - s_controller_payload.begin()); - s_controller_payload_size = read_size; - } - env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); - - if (first_read) - { - first_read = false; - s_fd = env->CallStaticIntMethod(s_adapter_class, getfd_func); - } - - Common::YieldCPU(); + if (first_read) + { + first_read = false; + s_fd = env->CallStaticIntMethod(s_adapter_class, getfd_func); } - // Terminate the write thread on leaving - if (s_write_adapter_thread_running.TestAndClear()) - { - s_controller_write_payload_size.store(0); - s_write_happened.Set(); // Kick the waiting event - write_adapter_thread.join(); - } + Common::YieldCPU(); + } + + // Terminate the write thread on leaving + if (s_write_adapter_thread_running.TestAndClear()) + { + s_controller_write_payload_size.store(0); + s_write_happened.Set(); // Kick the waiting event + write_adapter_thread.join(); } s_fd = 0; From 9ec65baf46cc1c0707b1fedf01196423e9fb9b08 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Apr 2022 21:36:07 -0700 Subject: [PATCH 163/659] GCAdapter: Have the read thread control the write thread This was done for Android in 6cc40b12357ae339abcb44517810af304bab77ea. --- Source/Core/InputCommon/GCAdapter.cpp | 106 +++++++++++--------------- 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 1a0844c42e..832315160a 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -61,6 +61,8 @@ static void ResetRumbleLockNeeded(); #endif static void Reset(); static void Setup(); +static void Read(); +static void Write(); #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION enum @@ -103,24 +105,21 @@ static std::array s_controller_payloa // Only access with s_mutex held! static int s_controller_payload_size = {0}; -#if GCADAPTER_USE_ANDROID_IMPLEMENTATION static std::array s_controller_write_payload; static std::atomic s_controller_write_payload_size{0}; -#endif static std::thread s_read_adapter_thread; +static Common::Flag s_read_adapter_thread_running; static std::thread s_write_adapter_thread; +static Common::Flag s_write_adapter_thread_running; static Common::Event s_write_happened; #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::mutex s_mutex; static std::mutex s_init_mutex; -static Common::Flag s_adapter_thread_running; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION static std::mutex s_read_mutex; static std::mutex s_write_mutex; -static Common::Flag s_read_adapter_thread_running; -static Common::Flag s_write_adapter_thread_running; #endif static std::thread s_adapter_detect_thread; @@ -156,28 +155,11 @@ static std::array s_config_rumble_enable static void Read() { Common::SetCurrentThreadName("GCAdapter Read Thread"); + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GCAdapter read thread started"); #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int payload_size = 0; - while (s_adapter_thread_running.IsSet()) - { - int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), - CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); - if (err) - ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", - libusb_error_name(err)); - - { - std::lock_guard lk(s_mutex); - std::swap(s_controller_payload_swap, s_controller_payload); - s_controller_payload_size = payload_size; - } - - Common::YieldCPU(); - } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread started"); - bool first_read = true; JNIEnv* env = IDCache::GetEnvForThread(); @@ -200,6 +182,7 @@ static void Read() NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter failed to open!"); return; } +#endif s_write_adapter_thread_running.Set(true); s_write_adapter_thread = std::thread(Write); @@ -209,6 +192,19 @@ static void Read() while (s_read_adapter_thread_running.IsSet()) { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); + if (err) + ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", + libusb_error_name(err)); + + { + std::lock_guard lk(s_mutex); + std::swap(s_controller_payload_swap, s_controller_payload); + s_controller_payload_size = payload_size; + } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); @@ -225,6 +221,7 @@ static void Read() first_read = false; s_fd = env->CallStaticIntMethod(s_adapter_class, getfd_func); } +#endif Common::YieldCPU(); } @@ -234,55 +231,45 @@ static void Read() { s_controller_write_payload_size.store(0); s_write_happened.Set(); // Kick the waiting event - write_adapter_thread.join(); + s_write_adapter_thread.join(); } +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION s_fd = 0; s_detected = false; - - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter read thread stopped"); #endif + + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GCAdapter read thread stopped"); } static void Write() { Common::SetCurrentThreadName("GCAdapter Write Thread"); + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GCAdapter write thread started"); #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int size = 0; - - while (true) - { - s_write_happened.Wait(); - - if (!s_adapter_thread_running.IsSet()) - return; - - std::array payload = { - 0x11, - s_controller_rumble[0], - s_controller_rumble[1], - s_controller_rumble[2], - s_controller_rumble[3], - }; - const int err = libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), - CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE, &size, 16); - if (err != 0) - ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb write failed: err={}", - libusb_error_name(err)); - } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread started"); - JNIEnv* env = IDCache::GetEnvForThread(); jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I"); +#endif while (s_write_adapter_thread_running.IsSet()) { s_write_happened.Wait(); + int write_size = s_controller_write_payload_size.load(); if (write_size) { +#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + const int err = libusb_interrupt_transfer( + s_handle, s_endpoint_out, s_controller_write_payload.data(), write_size, &size, 16); + if (err != 0) + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb write failed: err={}", + libusb_error_name(err)); + } +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION jbyteArray jrumble_array = env->NewByteArray(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); jbyte* jrumble = env->GetByteArrayElements(jrumble_array, nullptr); @@ -293,13 +280,13 @@ static void Write() env->ReleaseByteArrayElements(jrumble_array, jrumble, 0); env->CallStaticIntMethod(s_adapter_class, output_func, jrumble_array); +#endif } Common::YieldCPU(); } - NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GC Adapter write thread stopped"); -#endif + NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GCAdapter write thread stopped"); } #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION @@ -608,9 +595,8 @@ static void AddGCAdapter(libusb_device* device) libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE, &size, 16); - s_adapter_thread_running.Set(true); + s_read_adapter_thread_running.Set(true); s_read_adapter_thread = std::thread(Read); - s_write_adapter_thread = std::thread(Write); s_status = ADAPTER_DETECTED; if (s_detect_callback != nullptr) @@ -650,20 +636,14 @@ static void Reset() return; if (s_status != ADAPTER_DETECTED) return; - - if (s_adapter_thread_running.TestAndClear()) - { - s_write_happened.Set(); - s_read_adapter_thread.join(); - s_write_adapter_thread.join(); - } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION if (!s_detected) return; +#endif if (s_read_adapter_thread_running.TestAndClear()) s_read_adapter_thread.join(); -#endif + // The read thread will close the write thread s_controller_type.fill(ControllerType::None); @@ -872,16 +852,16 @@ void Output(int chan, u8 rumble_command) s_controller_type[chan] != ControllerType::Wireless) { s_controller_rumble[chan] = rumble_command; -#if GCADAPTER_USE_ANDROID_IMPLEMENTATION std::array rumble = { 0x11, s_controller_rumble[0], s_controller_rumble[1], s_controller_rumble[2], s_controller_rumble[3]}; { +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION std::lock_guard lk(s_write_mutex); +#endif s_controller_write_payload = rumble; s_controller_write_payload_size.store(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); } -#endif s_write_happened.Set(); } } From cd9edeacda9bc816fdd29859b76da7d2fa6d7bd0 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 21 Apr 2022 12:03:58 -0700 Subject: [PATCH 164/659] GCAdapter: Merge Read logic --- Source/Core/InputCommon/GCAdapter.cpp | 34 +++++++++------------------ 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 832315160a..4376e0d3a9 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -98,9 +98,7 @@ constexpr size_t CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE = 1; constexpr size_t CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE = 5; static std::array s_controller_payload; -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION static std::array s_controller_payload_swap; -#endif // Only access with s_mutex held! static int s_controller_payload_size = {0}; @@ -114,11 +112,10 @@ static std::thread s_write_adapter_thread; static Common::Flag s_write_adapter_thread_running; static Common::Event s_write_happened; +static std::mutex s_read_mutex; #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION -static std::mutex s_mutex; static std::mutex s_init_mutex; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION -static std::mutex s_read_mutex; static std::mutex s_write_mutex; #endif @@ -157,9 +154,7 @@ static void Read() Common::SetCurrentThreadName("GCAdapter Read Thread"); NOTICE_LOG_FMT(CONTROLLERINTERFACE, "GCAdapter read thread started"); -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - int payload_size = 0; -#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION bool first_read = true; JNIEnv* env = IDCache::GetEnvForThread(); @@ -193,27 +188,24 @@ static void Read() while (s_read_adapter_thread_running.IsSet()) { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION + int payload_size = 0; int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); if (err) ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", libusb_error_name(err)); - +#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION + int payload_size = env->CallStaticIntMethod(s_adapter_class, input_func); + jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); + std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, + s_controller_payload_swap.begin()); +#endif { - std::lock_guard lk(s_mutex); + std::lock_guard lk(s_read_mutex); std::swap(s_controller_payload_swap, s_controller_payload); s_controller_payload_size = payload_size; } -#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - int read_size = env->CallStaticIntMethod(s_adapter_class, input_func); - - jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); - { - std::lock_guard lk(s_read_mutex); - std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, - s_controller_payload.begin()); - s_controller_payload_size = read_size; - } +#if GCADAPTER_USE_ANDROID_IMPLEMENTATION env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); if (first_read) @@ -683,11 +675,7 @@ GCPadStatus Input(int chan) std::array controller_payload_copy{}; { -#if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - std::lock_guard lk(s_mutex); -#elif GCADAPTER_USE_ANDROID_IMPLEMENTATION std::lock_guard lk(s_read_mutex); -#endif controller_payload_copy = s_controller_payload; payload_size = s_controller_payload_size; } From 0d8772ccbe13781d742a1251112823d4c0644ec0 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 2 Jun 2022 13:19:32 -0700 Subject: [PATCH 165/659] GCAdapter: Make local variables const where possible --- Source/Core/InputCommon/GCAdapter.cpp | 48 ++++++++++++++------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 4376e0d3a9..7c8a89c533 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -156,18 +156,18 @@ static void Read() #if GCADAPTER_USE_ANDROID_IMPLEMENTATION bool first_read = true; - JNIEnv* env = IDCache::GetEnvForThread(); + JNIEnv* const env = IDCache::GetEnvForThread(); - jfieldID payload_field = env->GetStaticFieldID(s_adapter_class, "controller_payload", "[B"); + const jfieldID payload_field = env->GetStaticFieldID(s_adapter_class, "controller_payload", "[B"); jobject payload_object = env->GetStaticObjectField(s_adapter_class, payload_field); - auto* java_controller_payload = reinterpret_cast(&payload_object); + auto* const java_controller_payload = reinterpret_cast(&payload_object); // Get function pointers - jmethodID getfd_func = env->GetStaticMethodID(s_adapter_class, "GetFD", "()I"); - jmethodID input_func = env->GetStaticMethodID(s_adapter_class, "Input", "()I"); - jmethodID openadapter_func = env->GetStaticMethodID(s_adapter_class, "OpenAdapter", "()Z"); + const jmethodID getfd_func = env->GetStaticMethodID(s_adapter_class, "GetFD", "()I"); + const jmethodID input_func = env->GetStaticMethodID(s_adapter_class, "Input", "()I"); + const jmethodID openadapter_func = env->GetStaticMethodID(s_adapter_class, "OpenAdapter", "()Z"); - bool connected = env->CallStaticBooleanMethod(s_adapter_class, openadapter_func); + const bool connected = env->CallStaticBooleanMethod(s_adapter_class, openadapter_func); if (!connected) { @@ -189,14 +189,15 @@ static void Read() { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int payload_size = 0; - int err = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), - CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); + const int err = + libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); if (err) ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", libusb_error_name(err)); #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - int payload_size = env->CallStaticIntMethod(s_adapter_class, input_func); - jbyte* java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); + const int payload_size = env->CallStaticIntMethod(s_adapter_class, input_func); + jbyte* const java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); std::copy(java_data, java_data + CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, s_controller_payload_swap.begin()); #endif @@ -242,15 +243,15 @@ static void Write() #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int size = 0; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - JNIEnv* env = IDCache::GetEnvForThread(); - jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I"); + JNIEnv* const env = IDCache::GetEnvForThread(); + const jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I"); #endif while (s_write_adapter_thread_running.IsSet()) { s_write_happened.Wait(); - int write_size = s_controller_write_payload_size.load(); + const int write_size = s_controller_write_payload_size.load(); if (write_size) { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION @@ -262,8 +263,8 @@ static void Write() libusb_error_name(err)); } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - jbyteArray jrumble_array = env->NewByteArray(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); - jbyte* jrumble = env->GetByteArrayElements(jrumble_array, nullptr); + const jbyteArray jrumble_array = env->NewByteArray(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); + jbyte* const jrumble = env->GetByteArrayElements(jrumble_array, nullptr); { std::lock_guard lk(s_write_mutex); @@ -347,9 +348,10 @@ static void ScanThreadFunc() Common::SleepCurrentThread(500); } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - JNIEnv* env = IDCache::GetEnvForThread(); + JNIEnv* const env = IDCache::GetEnvForThread(); - jmethodID queryadapter_func = env->GetStaticMethodID(s_adapter_class, "QueryAdapter", "()Z"); + const jmethodID queryadapter_func = + env->GetStaticMethodID(s_adapter_class, "QueryAdapter", "()Z"); while (s_adapter_detect_thread_running.IsSet()) { @@ -402,9 +404,9 @@ void Init() #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION s_status = NO_ADAPTER_DETECTED; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION - JNIEnv* env = IDCache::GetEnvForThread(); + JNIEnv* const env = IDCache::GetEnvForThread(); - jclass adapter_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Java_GCAdapter"); + const jclass adapter_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Java_GCAdapter"); s_adapter_class = reinterpret_cast(env->NewGlobalRef(adapter_class)); #endif @@ -442,7 +444,7 @@ void StopScanThread() static void Setup() { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - int prev_status = s_status; + const int prev_status = s_status; // Reset the error status in case the adapter gets unplugged if (s_status < 0) @@ -710,8 +712,8 @@ GCPadStatus Input(int chan) if (s_controller_type[chan] != ControllerType::None) { - u8 b1 = controller_payload_copy[1 + (9 * chan) + 1]; - u8 b2 = controller_payload_copy[1 + (9 * chan) + 2]; + const u8 b1 = controller_payload_copy[1 + (9 * chan) + 1]; + const u8 b2 = controller_payload_copy[1 + (9 * chan) + 2]; if (b1 & (1 << 0)) pad.button |= PAD_BUTTON_A; From 457fcbaf5e565ba851cbc91202b18d2319fb837c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 2 Jun 2022 13:32:30 -0700 Subject: [PATCH 166/659] LibusbUtils: Create ErrorWrap --- Source/Core/Core/LibusbUtils.cpp | 20 +++++++++++++++++++- Source/Core/Core/LibusbUtils.h | 25 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/LibusbUtils.cpp b/Source/Core/Core/LibusbUtils.cpp index 8ab2f40a55..dadad60a2d 100644 --- a/Source/Core/Core/LibusbUtils.cpp +++ b/Source/Core/Core/LibusbUtils.cpp @@ -23,7 +23,7 @@ public: Impl() { const int ret = libusb_init(&m_context); - ASSERT_MSG(IOS_USB, ret == LIBUSB_SUCCESS, "Failed to init libusb: {}", libusb_error_name(ret)); + ASSERT_MSG(IOS_USB, ret == LIBUSB_SUCCESS, "Failed to init libusb: {}", ErrorWrap(ret)); if (ret != LIBUSB_SUCCESS) return; @@ -118,4 +118,22 @@ ConfigDescriptor MakeConfigDescriptor(libusb_device* device, u8 config_num) #endif return {nullptr, [](auto) {}}; } + +const char* ErrorWrap::GetName() const +{ +#if defined(__LIBUSB__) + return libusb_error_name(m_error); +#else + return "__LIBUSB__ not defined"; +#endif +} + +const char* ErrorWrap::GetStrError() const +{ +#if defined(__LIBUSB__) + return libusb_strerror(static_cast(m_error)); +#else + return "__LIBUSB__ not defined"; +#endif +} } // namespace LibusbUtils diff --git a/Source/Core/Core/LibusbUtils.h b/Source/Core/Core/LibusbUtils.h index 3e15ed0155..aaa77de74b 100644 --- a/Source/Core/Core/LibusbUtils.h +++ b/Source/Core/Core/LibusbUtils.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include @@ -39,4 +40,28 @@ private: using ConfigDescriptor = UniquePtr; ConfigDescriptor MakeConfigDescriptor(libusb_device* device, u8 config_num = 0); + +// Wrapper for libusb_error to be used with fmt. Note that we can't create a fmt::formatter +// directly for libusb_error as it is a plain enum and most libusb functions actually return an +// int instead of a libusb_error. +struct ErrorWrap +{ + constexpr explicit ErrorWrap(int error) : m_error(error) {} + const int m_error; + + const char* GetStrError() const; + const char* GetName() const; +}; } // namespace LibusbUtils + +template <> +struct fmt::formatter +{ + constexpr auto parse(fmt::format_parse_context& ctx) { return ctx.begin(); } + template + auto format(const LibusbUtils::ErrorWrap& wrap, FormatContext& ctx) const + { + return fmt::format_to(ctx.out(), "{} ({}: {})", wrap.GetStrError(), wrap.m_error, + wrap.GetName()); + } +}; From 6823b4d7a05b305f06a92144180a63c626a865ab Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 2 Jun 2022 13:56:17 -0700 Subject: [PATCH 167/659] GCAdapter: Use LibusbUtils::ErrorWrap in log messages --- Source/Core/InputCommon/GCAdapter.cpp | 120 +++++++++++++++++--------- 1 file changed, 81 insertions(+), 39 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 7c8a89c533..cf1b103f2f 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -189,12 +189,14 @@ static void Read() { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION int payload_size = 0; - const int err = + const int error = libusb_interrupt_transfer(s_handle, s_endpoint_in, s_controller_payload_swap.data(), CONTROLER_INPUT_PAYLOAD_EXPECTED_SIZE, &payload_size, 16); - if (err) - ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb read failed: err={}", - libusb_error_name(err)); + if (error != LIBUSB_SUCCESS) + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, "Read: libusb_interrupt_transfer failed: {}", + LibusbUtils::ErrorWrap(error)); + } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION const int payload_size = env->CallStaticIntMethod(s_adapter_class, input_func); jbyte* const java_data = env->GetByteArrayElements(*java_controller_payload, nullptr); @@ -255,12 +257,12 @@ static void Write() if (write_size) { #if GCADAPTER_USE_LIBUSB_IMPLEMENTATION - const int err = libusb_interrupt_transfer( + const int error = libusb_interrupt_transfer( s_handle, s_endpoint_out, s_controller_write_payload.data(), write_size, &size, 16); - if (err != 0) + if (error != LIBUSB_SUCCESS) { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "adapter libusb write failed: err={}", - libusb_error_name(err)); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "Write: libusb_interrupt_transfer failed: {}", + LibusbUtils::ErrorWrap(error)); } #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION const jbyteArray jrumble_array = env->NewByteArray(CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE); @@ -322,15 +324,22 @@ static void ScanThreadFunc() #endif if (s_libusb_hotplug_enabled) { - if (libusb_hotplug_register_callback( - *s_libusb_context, - (libusb_hotplug_event)(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | - LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT), - LIBUSB_HOTPLUG_ENUMERATE, 0x057e, 0x0337, LIBUSB_HOTPLUG_MATCH_ANY, HotplugCallback, - nullptr, &s_hotplug_handle) != LIBUSB_SUCCESS) - s_libusb_hotplug_enabled = false; - if (s_libusb_hotplug_enabled) + const int error = libusb_hotplug_register_callback( + *s_libusb_context, + (libusb_hotplug_event)(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | + LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT), + LIBUSB_HOTPLUG_ENUMERATE, 0x057e, 0x0337, LIBUSB_HOTPLUG_MATCH_ANY, HotplugCallback, + nullptr, &s_hotplug_handle); + if (error == LIBUSB_SUCCESS) + { NOTICE_LOG_FMT(CONTROLLERINTERFACE, "Using libUSB hotplug detection"); + } + else + { + s_libusb_hotplug_enabled = false; + ERROR_LOG_FMT(CONTROLLERINTERFACE, "Failed to add libUSB hotplug detection callback: {}", + LibusbUtils::ErrorWrap(error)); + } } #endif @@ -483,10 +492,11 @@ static bool CheckDeviceAccess(libusb_device* device) { libusb_device_descriptor desc; int ret = libusb_get_device_descriptor(device, &desc); - if (ret != 0) + if (ret != LIBUSB_SUCCESS) { // could not acquire the descriptor, no point in trying to use it. - ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_get_device_descriptor failed with error: {}", ret); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_get_device_descriptor failed: {}", + LibusbUtils::ErrorWrap(ret)); return false; } @@ -505,23 +515,23 @@ static bool CheckDeviceAccess(libusb_device* device) const u8 bus = libusb_get_bus_number(device); const u8 port = libusb_get_device_address(device); ret = libusb_open(device, &s_handle); - if (ret == LIBUSB_ERROR_ACCESS) + if (ret != LIBUSB_SUCCESS) { - ERROR_LOG_FMT( - CONTROLLERINTERFACE, - "Dolphin does not have access to this device: Bus {:03d} Device {:03d}: ID {:04X}:{:04X}.", - bus, port, desc.idVendor, desc.idProduct); - return false; - } - if (ret != 0) - { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_open failed to open device with error = {}", ret); + if (ret == LIBUSB_ERROR_ACCESS) + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, + "Dolphin does not have access to this device: Bus {:03d} Device {:03d}: ID " + "{:04X}:{:04X}.", + bus, port, desc.idVendor, desc.idProduct); + } + ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_open failed to open device: {}", + LibusbUtils::ErrorWrap(ret)); return false; } bool detach_failed = false; ret = libusb_kernel_driver_active(s_handle, 0); - if (ret == 1) + if (ret == 1) // 1: kernel driver is active { // On macos detaching would fail without root or entitlement. // We assume user is using GCAdapterDriver and therefor don't want to detach anything @@ -530,14 +540,26 @@ static bool CheckDeviceAccess(libusb_device* device) detach_failed = ret < 0 && ret != LIBUSB_ERROR_NOT_FOUND && ret != LIBUSB_ERROR_NOT_SUPPORTED; #endif if (detach_failed) - ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_detach_kernel_driver failed with error: {}", ret); + { + ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_detach_kernel_driver failed: {}", + LibusbUtils::ErrorWrap(ret)); + } + } + else if (ret != 0) // 0: kernel driver is not active, but otherwise no error. + { + // Neither 0 nor 1 means an error occured. + ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_kernel_driver_active failed: {}", + LibusbUtils::ErrorWrap(ret)); } // This call makes Nyko-brand (and perhaps other) adapters work. // However it returns LIBUSB_ERROR_PIPE with Mayflash adapters. const int transfer = libusb_control_transfer(s_handle, 0x21, 11, 0x0001, 0, nullptr, 0, 1000); if (transfer < 0) - WARN_LOG_FMT(CONTROLLERINTERFACE, "libusb_control_transfer failed with error: {}", transfer); + { + WARN_LOG_FMT(CONTROLLERINTERFACE, "libusb_control_transfer failed: {}", + LibusbUtils::ErrorWrap(transfer)); + } // this split is needed so that we don't avoid claiming the interface when // detaching the kernel driver is successful @@ -549,9 +571,10 @@ static bool CheckDeviceAccess(libusb_device* device) } ret = libusb_claim_interface(s_handle, 0); - if (ret != 0) + if (ret != LIBUSB_SUCCESS) { - ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_claim_interface failed with error: {}", ret); + ERROR_LOG_FMT(CONTROLLERINTERFACE, "libusb_claim_interface failed: {}", + LibusbUtils::ErrorWrap(ret)); libusb_close(s_handle); s_handle = nullptr; return false; @@ -566,7 +589,11 @@ static bool CheckDeviceAccess(libusb_device* device) static void AddGCAdapter(libusb_device* device) { libusb_config_descriptor* config = nullptr; - libusb_get_config_descriptor(device, 0, &config); + if (const int error = libusb_get_config_descriptor(device, 0, &config); error != LIBUSB_SUCCESS) + { + WARN_LOG_FMT(CONTROLLERINTERFACE, "libusb_get_config_descriptor failed: {}", + LibusbUtils::ErrorWrap(error)); + } for (u8 ic = 0; ic < config->bNumInterfaces; ic++) { const libusb_interface* interfaceContainer = &config->interface[ic]; @@ -586,8 +613,13 @@ static void AddGCAdapter(libusb_device* device) int size = 0; std::array payload = {0x13}; - libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), - CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE, &size, 16); + const int error = libusb_interrupt_transfer(s_handle, s_endpoint_out, payload.data(), + CONTROLER_OUTPUT_INIT_PAYLOAD_SIZE, &size, 16); + if (error != LIBUSB_SUCCESS) + { + WARN_LOG_FMT(CONTROLLERINTERFACE, "AddGCAdapter: libusb_interrupt_transfer failed: {}", + LibusbUtils::ErrorWrap(error)); + } s_read_adapter_thread_running.Set(true); s_read_adapter_thread = std::thread(Read); @@ -646,7 +678,12 @@ static void Reset() if (s_handle) { - libusb_release_interface(s_handle, 0); + const int error = libusb_release_interface(s_handle, 0); + if (error != LIBUSB_SUCCESS) + { + WARN_LOG_FMT(CONTROLLERINTERFACE, "libusb_release_interface failed: {}", + LibusbUtils::ErrorWrap(error)); + } libusb_close(s_handle); s_handle = nullptr; } @@ -817,8 +854,13 @@ static void ResetRumbleLockNeeded() s_controller_rumble[3]}; int size = 0; - libusb_interrupt_transfer(s_handle, s_endpoint_out, rumble.data(), - CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE, &size, 16); + const int error = libusb_interrupt_transfer(s_handle, s_endpoint_out, rumble.data(), + CONTROLER_OUTPUT_RUMBLE_PAYLOAD_SIZE, &size, 16); + if (error != LIBUSB_SUCCESS) + { + WARN_LOG_FMT(CONTROLLERINTERFACE, "ResetRumbleLockNeeded: libusb_interrupt_transfer failed: {}", + LibusbUtils::ErrorWrap(error)); + } INFO_LOG_FMT(CONTROLLERINTERFACE, "Rumble state reset"); } From 27dd2c4aa4dcb63c6fa91e384e1bc82787497234 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 2 Jun 2022 23:32:21 -0700 Subject: [PATCH 168/659] qt: unregister Settings' DevicesChanged callback during shutdown fixes a crash on close --- Source/Core/DolphinQt/MainWindow.cpp | 2 ++ Source/Core/DolphinQt/Settings.cpp | 7 ++++++- Source/Core/DolphinQt/Settings.h | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 361a182819..d2dea76787 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -360,6 +360,8 @@ void MainWindow::ShutdownControllers() { m_hotkey_scheduler->Stop(); + Settings::Instance().UnregisterDevicesChangedCallback(); + Pad::Shutdown(); Pad::ShutdownGBA(); Keyboard::Shutdown(); diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index 0ecee648d8..e08e32c0ad 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -69,7 +69,7 @@ Settings::Settings() } }); - g_controller_interface.RegisterDevicesChangedCallback([this] { + m_hotplug_callback_handle = g_controller_interface.RegisterDevicesChangedCallback([this] { if (Host::GetInstance()->IsHostThread()) { emit DevicesChanged(); @@ -90,6 +90,11 @@ Settings::Settings() Settings::~Settings() = default; +void Settings::UnregisterDevicesChangedCallback() +{ + g_controller_interface.UnregisterDevicesChangedCallback(m_hotplug_callback_handle); +} + Settings& Settings::Instance() { static Settings settings; diff --git a/Source/Core/DolphinQt/Settings.h b/Source/Core/DolphinQt/Settings.h index 1471daddec..335cef9a76 100644 --- a/Source/Core/DolphinQt/Settings.h +++ b/Source/Core/DolphinQt/Settings.h @@ -12,6 +12,7 @@ #include "Core/Config/MainSettings.h" #include "DiscIO/Enums.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" namespace Core { @@ -44,6 +45,8 @@ public: ~Settings(); + void UnregisterDevicesChangedCallback(); + static Settings& Instance(); static QSettings& GetQSettings(); @@ -199,10 +202,12 @@ signals: void USBKeyboardConnectionChanged(bool connected); private: + Settings(); + bool m_batch = false; std::shared_ptr m_client; std::shared_ptr m_server; - Settings(); + ControllerInterface::HotplugCallbackHandle m_hotplug_callback_handle; }; Q_DECLARE_METATYPE(Core::State); From b16711f2aff6386a31cd37c074e772deb644faab Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 2 Jun 2022 23:58:13 -0700 Subject: [PATCH 169/659] qt: fix wiipane usb list layout --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 16f8ae3457..f6eea20dff 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -159,18 +159,23 @@ void WiiPane::CreateMisc() void WiiPane::CreateWhitelistedUSBPassthroughDevices() { - auto* whitelisted_usb_passthrough_devices_group = - new QGroupBox(tr("Whitelisted USB Passthrough Devices")); - auto* whitelist_layout = new QGridLayout(); m_whitelist_usb_list = new QListWidget(); - whitelist_layout->addWidget(m_whitelist_usb_list, 0, 0, 1, -1); - whitelist_layout->setColumnStretch(0, 1); m_whitelist_usb_add_button = new NonDefaultQPushButton(tr("Add...")); m_whitelist_usb_remove_button = new NonDefaultQPushButton(tr("Remove")); - whitelist_layout->addWidget(m_whitelist_usb_add_button, 1, 1); - whitelist_layout->addWidget(m_whitelist_usb_remove_button, 1, 2); - whitelist_layout->addWidget(m_whitelist_usb_list, 0, 0); - whitelisted_usb_passthrough_devices_group->setLayout(whitelist_layout); + + QHBoxLayout* hlayout = new QHBoxLayout; + hlayout->addStretch(); + hlayout->addWidget(m_whitelist_usb_add_button); + hlayout->addWidget(m_whitelist_usb_remove_button); + + QVBoxLayout* vlayout = new QVBoxLayout; + vlayout->addWidget(m_whitelist_usb_list); + vlayout->addLayout(hlayout); + + auto* whitelisted_usb_passthrough_devices_group = + new QGroupBox(tr("Whitelisted USB Passthrough Devices")); + whitelisted_usb_passthrough_devices_group->setLayout(vlayout); + m_main_layout->addWidget(whitelisted_usb_passthrough_devices_group); } From 978f4cb9473bfe6571a3a81d841e105c73994ecb Mon Sep 17 00:00:00 2001 From: Sage King Date: Sat, 21 May 2022 14:49:30 -0600 Subject: [PATCH 170/659] Added help information to Contributing.md --- Contributing.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Contributing.md b/Contributing.md index 5d0542cb3f..f861eed47a 100644 --- a/Contributing.md +++ b/Contributing.md @@ -8,6 +8,7 @@ If you make any contributions to Dolphin after December 1st, 2014, you are agree - [C++ coding style and formatting](#cpp-coding-style-and-formatting) - [C++ code-specific guidelines](#cpp-code-specific-guidelines) - [Android and Java](#android-and-java) +- [Help](#help) # Introduction @@ -25,7 +26,6 @@ Following this guide and formatting your code as detailed will likely get your p This project uses clang-format (stable branch) to check for common style issues. In case of conflicts between this guide and clang-format rules, the latter should be followed instead of this guide. - ## Checking and fixing formatting issues Windows users need to be careful about line endings. Windows users should configure git to checkout UNIX-style line endings to keep clang-format simple. @@ -275,3 +275,6 @@ Summary: # Android and Java The Android project is currently written in Java. If you are using Android Studio to contribute, you can import the project's code style from `code-style-java.jar`, located in `[Dolphin Root]/Source/Android`. Please organize imports before committing. + +# Help +If you have any questions about Dolphin's development or would like some help, Dolphin developers use `#dolphin-emu @ irc.libera.chat` to communicate. If you are new to IRC, [Libera.Chat has resources to get started chatting with IRC.](https://libera.chat/) From 2999cca41bf8ccb9442c37ef073b12aed4d99316 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 3 Jun 2022 20:56:06 -0700 Subject: [PATCH 171/659] UnitTests: Fix -Wrange-loop-construct warnings Don't use reference variable bound to a temporary value --- Source/UnitTests/Core/IOS/FS/FileSystemTest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/UnitTests/Core/IOS/FS/FileSystemTest.cpp b/Source/UnitTests/Core/IOS/FS/FileSystemTest.cpp index 15d3544f1d..5442a66eab 100644 --- a/Source/UnitTests/Core/IOS/FS/FileSystemTest.cpp +++ b/Source/UnitTests/Core/IOS/FS/FileSystemTest.cpp @@ -93,7 +93,7 @@ TEST(FileSystem, PathSplitting) TEST_F(FileSystemTest, EssentialDirectories) { - for (const std::string& path : + for (const std::string path : {"/sys", "/ticket", "/title", "/shared1", "/shared2", "/tmp", "/import", "/meta"}) { EXPECT_TRUE(m_fs->ReadDirectory(Uid{0}, Gid{0}, path).Succeeded()) << path; @@ -457,7 +457,7 @@ TEST_F(FileSystemTest, CreateFullPath) ASSERT_EQ(m_fs->CreateFullPath(Uid{0}, Gid{0}, "/tmp/a/b/c/d", 0, modes), ResultCode::Success); // Parent directories should be created by CreateFullPath. - for (const std::string& path : {"/tmp", "/tmp/a", "/tmp/a/b", "/tmp/a/b/c"}) + for (const std::string path : {"/tmp", "/tmp/a", "/tmp/a/b", "/tmp/a/b/c"}) EXPECT_TRUE(m_fs->ReadDirectory(Uid{0}, Gid{0}, path).Succeeded()); // If parent directories already exist, the call should still succeed. From 92af703f2914fbdee14ee7b78e624a82de1145e7 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 3 Jun 2022 22:18:54 -0700 Subject: [PATCH 172/659] DSPAssembler: Fix -Wswitch warning --- Source/Core/Core/DSP/DSPAssembler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/DSPAssembler.cpp b/Source/Core/Core/DSP/DSPAssembler.cpp index ed181b7a3c..fccbfd84d6 100644 --- a/Source/Core/Core/DSP/DSPAssembler.cpp +++ b/Source/Core/Core/DSP/DSPAssembler.cpp @@ -584,7 +584,6 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t } } break; - case P_ACCL: if ((int)par[i].val < DSP_REG_ACL0 || (int)par[i].val > DSP_REG_ACL1) { @@ -602,6 +601,8 @@ bool DSPAssembler::VerifyParams(const DSPOPCTemplate* opc, param_t* par, size_t } } break; + default: + break; } continue; } From 2081e2f2a19e8216c5292c30083a20b38236e8bc Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 11 Apr 2022 06:08:19 +0200 Subject: [PATCH 173/659] Config: Move ToGameCubeRegion(), GetDirectoryForRegion(), and GetBootROMPath() to new config system namespace. --- Source/Core/Core/Boot/Boot.cpp | 6 +- Source/Core/Core/Config/MainSettings.cpp | 48 +++++++++++++++ Source/Core/Core/Config/MainSettings.h | 7 +++ Source/Core/Core/ConfigManager.cpp | 58 +------------------ Source/Core/Core/ConfigManager.h | 6 -- Source/Core/Core/HW/EXI/EXI.cpp | 2 +- .../Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp | 6 +- Source/Core/Core/NetPlayServer.cpp | 6 +- Source/Core/DolphinQt/GameList/GameList.cpp | 2 +- Source/Core/DolphinQt/MenuBar.cpp | 9 +-- 10 files changed, 72 insertions(+), 78 deletions(-) diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index 0ad7f6ec12..4e2844c95b 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -311,8 +311,8 @@ std::unique_ptr BootParameters::GenerateFromFile(std::vector>& devices) { Config::SetBase(Config::MAIN_USB_PASSTHROUGH_DEVICES, SaveUSBWhitelistToString(devices)); } + +// The reason we need this function is because some memory card code +// expects to get a non-NTSC-K region even if we're emulating an NTSC-K Wii. +DiscIO::Region ToGameCubeRegion(DiscIO::Region region) +{ + if (region != DiscIO::Region::NTSC_K) + return region; + + // GameCube has no NTSC-K region. No choice of replacement value is completely + // non-arbitrary, but let's go with NTSC-J since Korean GameCubes are NTSC-J. + return DiscIO::Region::NTSC_J; +} + +const char* GetDirectoryForRegion(DiscIO::Region region) +{ + if (region == DiscIO::Region::Unknown) + region = ToGameCubeRegion(Config::Get(Config::MAIN_FALLBACK_REGION)); + + switch (region) + { + case DiscIO::Region::NTSC_J: + return JAP_DIR; + + case DiscIO::Region::NTSC_U: + return USA_DIR; + + case DiscIO::Region::PAL: + return EUR_DIR; + + case DiscIO::Region::NTSC_K: + ASSERT_MSG(BOOT, false, "NTSC-K is not a valid GameCube region"); + return JAP_DIR; // See ToGameCubeRegion + + default: + ASSERT_MSG(BOOT, false, "Default case should not be reached"); + return EUR_DIR; + } +} + +std::string GetBootROMPath(const std::string& region_directory) +{ + const std::string path = + File::GetUserPath(D_GCUSER_IDX) + DIR_SEP + region_directory + DIR_SEP GC_IPL; + if (!File::Exists(path)) + return File::GetSysDirectory() + GC_SYS_DIR + DIR_SEP + region_directory + DIR_SEP GC_IPL; + return path; +} } // namespace Config diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index 4ed43a79da..413f595dd4 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -331,4 +331,11 @@ extern const Info MAIN_USB_PASSTHROUGH_DEVICES; std::set> GetUSBDeviceWhitelist(); void SetUSBDeviceWhitelist(const std::set>& devices); +// GameCube path utility functions + +// Replaces NTSC-K with some other region, and doesn't replace non-NTSC-K regions +DiscIO::Region ToGameCubeRegion(DiscIO::Region region); +// The region argument must be valid for GameCube (i.e. must not be NTSC-K) +const char* GetDirectoryForRegion(DiscIO::Region region); +std::string GetBootROMPath(const std::string& region_directory); } // namespace Config diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp index 2d90207601..497d938f76 100644 --- a/Source/Core/Core/ConfigManager.cpp +++ b/Source/Core/Core/ConfigManager.cpp @@ -220,53 +220,6 @@ std::string SConfig::MakeGameID(std::string_view file_name) return "ID-" + std::string(file_name.substr(0, lastdot)); } -// The reason we need this function is because some memory card code -// expects to get a non-NTSC-K region even if we're emulating an NTSC-K Wii. -DiscIO::Region SConfig::ToGameCubeRegion(DiscIO::Region region) -{ - if (region != DiscIO::Region::NTSC_K) - return region; - - // GameCube has no NTSC-K region. No choice of replacement value is completely - // non-arbitrary, but let's go with NTSC-J since Korean GameCubes are NTSC-J. - return DiscIO::Region::NTSC_J; -} - -const char* SConfig::GetDirectoryForRegion(DiscIO::Region region) -{ - if (region == DiscIO::Region::Unknown) - region = ToGameCubeRegion(GetFallbackRegion()); - - switch (region) - { - case DiscIO::Region::NTSC_J: - return JAP_DIR; - - case DiscIO::Region::NTSC_U: - return USA_DIR; - - case DiscIO::Region::PAL: - return EUR_DIR; - - case DiscIO::Region::NTSC_K: - ASSERT_MSG(BOOT, false, "NTSC-K is not a valid GameCube region"); - return JAP_DIR; // See ToGameCubeRegion - - default: - ASSERT_MSG(BOOT, false, "Default case should not be reached"); - return EUR_DIR; - } -} - -std::string SConfig::GetBootROMPath(const std::string& region_directory) const -{ - const std::string path = - File::GetUserPath(D_GCUSER_IDX) + DIR_SEP + region_directory + DIR_SEP GC_IPL; - if (!File::Exists(path)) - return File::GetSysDirectory() + GC_SYS_DIR + DIR_SEP + region_directory + DIR_SEP GC_IPL; - return path; -} - struct SetGameMetadata { SetGameMetadata(SConfig* config_, DiscIO::Region* region_) : config(config_), region(region_) {} @@ -375,21 +328,16 @@ bool SConfig::SetPathsAndGameMetadata(const BootParameters& boot) return false; if (m_region == DiscIO::Region::Unknown) - m_region = GetFallbackRegion(); + m_region = Config::Get(Config::MAIN_FALLBACK_REGION); // Set up paths - const std::string region_dir = GetDirectoryForRegion(ToGameCubeRegion(m_region)); + const std::string region_dir = Config::GetDirectoryForRegion(Config::ToGameCubeRegion(m_region)); m_strSRAM = File::GetUserPath(F_GCSRAM_IDX); - m_strBootROM = GetBootROMPath(region_dir); + m_strBootROM = Config::GetBootROMPath(region_dir); return true; } -DiscIO::Region SConfig::GetFallbackRegion() -{ - return Config::Get(Config::MAIN_FALLBACK_REGION); -} - DiscIO::Language SConfig::GetCurrentLanguage(bool wii) const { DiscIO::Language language; diff --git a/Source/Core/Core/ConfigManager.h b/Source/Core/Core/ConfigManager.h index bb0b165249..6a6045c0f8 100644 --- a/Source/Core/Core/ConfigManager.h +++ b/Source/Core/Core/ConfigManager.h @@ -72,13 +72,7 @@ struct SConfig void LoadDefaults(); static std::string MakeGameID(std::string_view file_name); - // Replaces NTSC-K with some other region, and doesn't replace non-NTSC-K regions - static DiscIO::Region ToGameCubeRegion(DiscIO::Region region); - // The region argument must be valid for GameCube (i.e. must not be NTSC-K) - static const char* GetDirectoryForRegion(DiscIO::Region region); - std::string GetBootROMPath(const std::string& region_directory) const; bool SetPathsAndGameMetadata(const BootParameters& boot); - static DiscIO::Region GetFallbackRegion(); DiscIO::Language GetCurrentLanguage(bool wii) const; DiscIO::Language GetLanguageAdjustedForRegion(bool wii, DiscIO::Region region) const; diff --git a/Source/Core/Core/HW/EXI/EXI.cpp b/Source/Core/Core/HW/EXI/EXI.cpp index eb1d99e81e..c480e09235 100644 --- a/Source/Core/Core/HW/EXI/EXI.cpp +++ b/Source/Core/Core/HW/EXI/EXI.cpp @@ -117,7 +117,7 @@ void Init() if (size_override >= 0 && size_override <= 4) size_mbits = Memcard::MBIT_SIZE_MEMORY_CARD_59 << size_override; const bool shift_jis = - SConfig::ToGameCubeRegion(SConfig::GetInstance().m_region) == DiscIO::Region::NTSC_J; + Config::ToGameCubeRegion(SConfig::GetInstance().m_region) == DiscIO::Region::NTSC_J; const CardFlashId& flash_id = g_SRAM.settings_ex.flash_id[Memcard::SLOT_A]; const u32 rtc_bias = g_SRAM.settings.rtc_bias; const u32 sram_language = static_cast(g_SRAM.settings.language); diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp index c7538ceae2..2baf002ca1 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp @@ -162,8 +162,8 @@ CEXIMemoryCard::GetGCIFolderPath(Slot card_slot, AllowMovieFolder allow_movie_fo if (use_movie_folder) path += "Movie" DIR_SEP; - const DiscIO::Region region = SConfig::ToGameCubeRegion(SConfig::GetInstance().m_region); - path = path + SConfig::GetDirectoryForRegion(region) + DIR_SEP + + const DiscIO::Region region = Config::ToGameCubeRegion(SConfig::GetInstance().m_region); + path = path + Config::GetDirectoryForRegion(region) + DIR_SEP + fmt::format("Card {}", s_card_short_names[card_slot]); return {std::move(path), !use_movie_folder}; } @@ -227,7 +227,7 @@ void CEXIMemoryCard::SetupRawMemcard(u16 size_mb) } const std::string region_dir = - SConfig::GetDirectoryForRegion(SConfig::ToGameCubeRegion(SConfig::GetInstance().m_region)); + Config::GetDirectoryForRegion(Config::ToGameCubeRegion(SConfig::GetInstance().m_region)); MemoryCard::CheckPath(filename, region_dir, m_card_slot); if (size_mb < Memcard::MBIT_SIZE_MEMORY_CARD_2043) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 30a0311910..cc1d9e6280 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -1470,8 +1470,8 @@ bool NetPlayServer::StartGame() const sf::Uint64 initial_rtc = GetInitialNetPlayRTC(); - const std::string region = SConfig::GetDirectoryForRegion( - SConfig::ToGameCubeRegion(m_dialog->FindGameFile(m_selected_game_identifier)->GetRegion())); + const std::string region = Config::GetDirectoryForRegion( + Config::ToGameCubeRegion(m_dialog->FindGameFile(m_selected_game_identifier)->GetRegion())); // sync GC SRAM with clients if (!g_SRAM_netplay_initialized) @@ -1666,7 +1666,7 @@ bool NetPlayServer::SyncSaveData() return true; const std::string region = - SConfig::GetDirectoryForRegion(SConfig::ToGameCubeRegion(game->GetRegion())); + Config::GetDirectoryForRegion(Config::ToGameCubeRegion(game->GetRegion())); for (ExpansionInterface::Slot slot : ExpansionInterface::MEMCARD_SLOTS) { diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index 03bc60e7b2..bebb6d81bf 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -713,7 +713,7 @@ void GameList::OpenGCSaveFolder() case ExpansionInterface::EXIDeviceType::MemoryCardFolder: { std::string path = StringFromFormat("%s/%s/%s", File::GetUserPath(D_GCUSER_IDX).c_str(), - SConfig::GetDirectoryForRegion(game->GetRegion()), + Config::GetDirectoryForRegion(game->GetRegion()), slot == Slot::A ? "Card A" : "Card B"); std::string override_path = Config::Get(Config::GetInfoForGCIPathOverride(slot)); diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 1ace1276b8..a5b0adca99 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -1001,12 +1001,9 @@ void MenuBar::UpdateToolsMenu(bool emulation_started) { m_boot_sysmenu->setEnabled(!emulation_started); m_perform_online_update_menu->setEnabled(!emulation_started); - m_ntscj_ipl->setEnabled(!emulation_started && - File::Exists(SConfig::GetInstance().GetBootROMPath(JAP_DIR))); - m_ntscu_ipl->setEnabled(!emulation_started && - File::Exists(SConfig::GetInstance().GetBootROMPath(USA_DIR))); - m_pal_ipl->setEnabled(!emulation_started && - File::Exists(SConfig::GetInstance().GetBootROMPath(EUR_DIR))); + m_ntscj_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(JAP_DIR))); + m_ntscu_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(USA_DIR))); + m_pal_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(EUR_DIR))); m_import_backup->setEnabled(!emulation_started); m_check_nand->setEnabled(!emulation_started); From b1d1f2aa06f4bf7d0a7f5a151c285a0fea0db965 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 16 Apr 2022 02:01:24 +0200 Subject: [PATCH 174/659] Common/StringUtil: Add convenience function for converting paths to use forward slashes on Windows. --- Source/Core/Common/StringUtil.cpp | 17 +++++++++++++++++ Source/Core/Common/StringUtil.h | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index a752ab0e10..c498e261fd 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -335,6 +335,23 @@ bool SplitPath(std::string_view full_path, std::string* path, std::string* filen return true; } +void UnifyPathSeparators(std::string& path) +{ +#ifdef _WIN32 + for (char& c : path) + { + if (c == '\\') + c = '/'; + } +#endif +} + +std::string WithUnifiedPathSeparators(std::string path) +{ + UnifyPathSeparators(path); + return path; +} + std::string PathToFileName(std::string_view path) { std::string file_name, extension; diff --git a/Source/Core/Common/StringUtil.h b/Source/Core/Common/StringUtil.h index 56fa756a46..5db7cbfa37 100644 --- a/Source/Core/Common/StringUtil.h +++ b/Source/Core/Common/StringUtil.h @@ -157,9 +157,17 @@ std::vector SplitString(const std::string& str, char delim); std::string JoinStrings(const std::vector& strings, const std::string& delimiter); // "C:/Windows/winhelp.exe" to "C:/Windows/", "winhelp", ".exe" +// This requires forward slashes to be used for the path separators, even on Windows. bool SplitPath(std::string_view full_path, std::string* path, std::string* filename, std::string* extension); +// Converts the path separators of a path into forward slashes on Windows, which is assumed to be +// true for paths at various places in the codebase. +void UnifyPathSeparators(std::string& path); +std::string WithUnifiedPathSeparators(std::string path); + +// Extracts just the filename (including extension) from a full path. +// This requires forward slashes to be used for the path separators, even on Windows. std::string PathToFileName(std::string_view path); bool StringBeginsWith(std::string_view str, std::string_view begin); From deb9964333065ade4fc5461edbb078d31c39ba21 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Tue, 18 Jan 2022 23:48:39 +0100 Subject: [PATCH 175/659] Core: Unify handling of raw memory card path. --- Source/Core/Core/Config/MainSettings.cpp | 47 ++++++++++++++++++ Source/Core/Core/Config/MainSettings.h | 4 ++ .../Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp | 16 ++---- .../Core/HW/GCMemcard/GCMemcardDirectory.cpp | 5 +- .../Core/HW/GCMemcard/GCMemcardDirectory.h | 4 +- .../Core/Core/HW/GCMemcard/GCMemcardRaw.cpp | 49 ------------------- Source/Core/Core/HW/GCMemcard/GCMemcardRaw.h | 2 - Source/Core/Core/Movie.cpp | 12 +++-- Source/Core/Core/NetPlayServer.cpp | 19 +++---- 9 files changed, 76 insertions(+), 82 deletions(-) diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index 9ec9555021..d7d146e3e2 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -20,6 +20,7 @@ #include "Core/Config/DefaultLocale.h" #include "Core/HW/EXI/EXI.h" #include "Core/HW/EXI/EXI_Device.h" +#include "Core/HW/GCMemcard/GCMemcard.h" #include "Core/HW/HSP/HSP_Device.h" #include "Core/HW/Memmap.h" #include "Core/HW/SI/SI_Device.h" @@ -571,4 +572,50 @@ std::string GetBootROMPath(const std::string& region_directory) return File::GetSysDirectory() + GC_SYS_DIR + DIR_SEP + region_directory + DIR_SEP GC_IPL; return path; } + +std::string GetMemcardPath(ExpansionInterface::Slot slot, DiscIO::Region region, u16 size_mb) +{ + return GetMemcardPath(Config::Get(GetInfoForMemcardPath(slot)), slot, region, size_mb); +} + +std::string GetMemcardPath(std::string configured_filename, ExpansionInterface::Slot slot, + DiscIO::Region region, u16 size_mb) +{ + const std::string region_dir = Config::GetDirectoryForRegion(Config::ToGameCubeRegion(region)); + const std::string blocks_string = size_mb < Memcard::MBIT_SIZE_MEMORY_CARD_2043 ? + fmt::format(".{}", Memcard::MbitToFreeBlocks(size_mb)) : + ""; + + if (configured_filename.empty()) + { + // Use default memcard path if there is no user defined one. + const bool is_slot_a = slot == ExpansionInterface::Slot::A; + return fmt::format("{}{}.{}{}.raw", File::GetUserPath(D_GCUSER_IDX), + is_slot_a ? GC_MEMCARDA : GC_MEMCARDB, region_dir, blocks_string); + } + + // Custom path is expected to be stored in the form of + // "/path/to/file.{region_code}.raw" + // with an arbitrary but supported region code. + // Try to extract and replace that region code. + // If there's no region code just insert one before the extension. + + std::string dir; + std::string name; + std::string ext; + UnifyPathSeparators(configured_filename); + SplitPath(configured_filename, &dir, &name, &ext); + + constexpr std::string_view us_region = "." USA_DIR; + constexpr std::string_view jp_region = "." JAP_DIR; + constexpr std::string_view eu_region = "." EUR_DIR; + if (StringEndsWith(name, us_region)) + name = name.substr(0, name.size() - us_region.size()); + else if (StringEndsWith(name, jp_region)) + name = name.substr(0, name.size() - jp_region.size()); + else if (StringEndsWith(name, eu_region)) + name = name.substr(0, name.size() - eu_region.size()); + + return fmt::format("{}{}.{}{}{}", dir, name, region_dir, blocks_string, ext); +} } // namespace Config diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index 413f595dd4..e1b538f2b6 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -338,4 +338,8 @@ DiscIO::Region ToGameCubeRegion(DiscIO::Region region); // The region argument must be valid for GameCube (i.e. must not be NTSC-K) const char* GetDirectoryForRegion(DiscIO::Region region); std::string GetBootROMPath(const std::string& region_directory); +std::string GetMemcardPath(ExpansionInterface::Slot slot, DiscIO::Region region, + u16 size_mb = 0x80); +std::string GetMemcardPath(std::string configured_filename, ExpansionInterface::Slot slot, + DiscIO::Region region, u16 size_mb = 0x80); } // namespace Config diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp index 2baf002ca1..83263ed04d 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp @@ -188,7 +188,7 @@ void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) if (!file_info.Exists()) { if (migrate) // first use of memcard folder, migrate automatically - MigrateFromMemcardFile(dir_path + DIR_SEP, m_card_slot); + MigrateFromMemcardFile(dir_path + DIR_SEP, m_card_slot, SConfig::GetInstance().m_region); else File::CreateFullPath(dir_path + DIR_SEP); } @@ -198,7 +198,7 @@ void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) { PanicAlertFmtT("{0} was not a directory, moved to *.original", dir_path); if (migrate) - MigrateFromMemcardFile(dir_path + DIR_SEP, m_card_slot); + MigrateFromMemcardFile(dir_path + DIR_SEP, m_card_slot, SConfig::GetInstance().m_region); else File::CreateFullPath(dir_path + DIR_SEP); } @@ -218,22 +218,16 @@ void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) void CEXIMemoryCard::SetupRawMemcard(u16 size_mb) { - std::string filename = Config::Get(Config::GetInfoForMemcardPath(m_card_slot)); + std::string filename; if (Movie::IsPlayingInput() && Movie::IsConfigSaved() && Movie::IsUsingMemcard(m_card_slot) && Movie::IsStartingFromClearSave()) { filename = File::GetUserPath(D_GCUSER_IDX) + fmt::format("Movie{}.raw", s_card_short_names[m_card_slot]); } - - const std::string region_dir = - Config::GetDirectoryForRegion(Config::ToGameCubeRegion(SConfig::GetInstance().m_region)); - MemoryCard::CheckPath(filename, region_dir, m_card_slot); - - if (size_mb < Memcard::MBIT_SIZE_MEMORY_CARD_2043) + else { - filename.insert(filename.find_last_of('.'), - fmt::format(".{}", Memcard::MbitToFreeBlocks(size_mb))); + filename = Config::GetMemcardPath(m_card_slot, SConfig::GetInstance().m_region, size_mb); } m_memory_card = std::make_unique(filename, m_card_slot, size_mb); diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp index b65d7f0d03..f5a46046c0 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp +++ b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp @@ -705,10 +705,11 @@ void GCMemcardDirectory::DoState(PointerWrap& p) } } -void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot) +void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot, + DiscIO::Region region) { File::CreateFullPath(directory_name); - std::string ini_memcard = Config::Get(Config::GetInfoForMemcardPath(card_slot)); + const std::string ini_memcard = Config::GetMemcardPath(card_slot, region); if (File::Exists(ini_memcard)) { auto [error_code, memcard] = Memcard::GCMemcard::Open(ini_memcard.c_str()); diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h index fa9ae44110..5b02700a61 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h +++ b/Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.h @@ -12,10 +12,12 @@ #include "Core/HW/GCMemcard/GCIFile.h" #include "Core/HW/GCMemcard/GCMemcard.h" #include "Core/HW/GCMemcard/GCMemcardBase.h" +#include "DiscIO/Enums.h" // Uncomment this to write the system data of the memorycard from directory to disc //#define _WRITE_MC_HEADER 1 -void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot); +void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot, + DiscIO::Region region); class GCMemcardDirectory : public MemoryCardBase { diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp index 923f88bc69..23bca41df1 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp +++ b/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp @@ -90,55 +90,6 @@ MemoryCard::~MemoryCard() } } -void MemoryCard::CheckPath(std::string& memcardPath, const std::string& gameRegion, - ExpansionInterface::Slot card_slot) -{ - bool is_slot_a = card_slot == ExpansionInterface::Slot::A; - std::string ext("." + gameRegion + ".raw"); - if (memcardPath.empty()) - { - // Use default memcard path if there is no user defined name - std::string defaultFilename = is_slot_a ? GC_MEMCARDA : GC_MEMCARDB; - memcardPath = File::GetUserPath(D_GCUSER_IDX) + defaultFilename + ext; - } - else - { - std::string filename = memcardPath; - std::string region = filename.substr(filename.size() - 7, 3); - bool hasregion = false; - hasregion |= region.compare(USA_DIR) == 0; - hasregion |= region.compare(JAP_DIR) == 0; - hasregion |= region.compare(EUR_DIR) == 0; - if (!hasregion) - { - // filename doesn't have region in the extension - if (File::Exists(filename)) - { - // If the old file exists we are polite and ask if we should copy it - std::string oldFilename = filename; - filename.replace(filename.size() - 4, 4, ext); - if (PanicYesNoFmtT("Memory Card filename in Slot {0} is incorrect\n" - "Region not specified\n\n" - "Slot {1} path was changed to\n" - "{2}\n" - "Would you like to copy the old file to this new location?\n", - is_slot_a ? 'A' : 'B', is_slot_a ? 'A' : 'B', filename)) - { - if (!File::Copy(oldFilename, filename)) - PanicAlertFmtT("Copy failed"); - } - } - memcardPath = filename; // Always correct the path! - } - else if (region.compare(gameRegion) != 0) - { - // filename has region, but it's not == gameRegion - // Just set the correct filename, the EXI Device will create it if it doesn't exist - memcardPath = filename.replace(filename.size() - ext.size(), ext.size(), ext); - } - } -} - void MemoryCard::FlushThread() { if (!Config::Get(Config::SESSION_SAVE_DATA_WRITABLE)) diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.h b/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.h index b8486c13a3..c6c85313e8 100644 --- a/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.h +++ b/Source/Core/Core/HW/GCMemcard/GCMemcardRaw.h @@ -20,8 +20,6 @@ public: MemoryCard(const std::string& filename, ExpansionInterface::Slot card_slot, u16 size_mbits = Memcard::MBIT_SIZE_MEMORY_CARD_2043); ~MemoryCard(); - static void CheckPath(std::string& memcardPath, const std::string& gameRegion, - ExpansionInterface::Slot slot); void FlushThread(); void MakeDirty(); diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp index 938a17f2eb..f988fc7e65 100644 --- a/Source/Core/Core/Movie.cpp +++ b/Source/Core/Core/Movie.cpp @@ -1479,6 +1479,9 @@ void GetSettings() } else { + const auto raw_memcard_exists = [](ExpansionInterface::Slot card_slot) { + return File::Exists(Config::GetMemcardPath(card_slot, SConfig::GetInstance().m_region)); + }; const auto gci_folder_has_saves = [](ExpansionInterface::Slot card_slot) { const auto [path, migrate] = ExpansionInterface::CEXIMemoryCard::GetGCIFolderPath( card_slot, ExpansionInterface::AllowMovieFolder::No); @@ -1486,11 +1489,10 @@ void GetSettings() return number_of_saves > 0; }; - s_bClearSave = - !(slot_a_has_raw_memcard && File::Exists(Config::Get(Config::MAIN_MEMCARD_A_PATH))) && - !(slot_b_has_raw_memcard && File::Exists(Config::Get(Config::MAIN_MEMCARD_B_PATH))) && - !(slot_a_has_gci_folder && gci_folder_has_saves(ExpansionInterface::Slot::A)) && - !(slot_b_has_gci_folder && gci_folder_has_saves(ExpansionInterface::Slot::B)); + s_bClearSave = !(slot_a_has_raw_memcard && raw_memcard_exists(ExpansionInterface::Slot::A)) && + !(slot_b_has_raw_memcard && raw_memcard_exists(ExpansionInterface::Slot::B)) && + !(slot_a_has_gci_folder && gci_folder_has_saves(ExpansionInterface::Slot::A)) && + !(slot_b_has_gci_folder && gci_folder_has_saves(ExpansionInterface::Slot::B)); } s_memcards |= (slot_a_has_raw_memcard || slot_a_has_gci_folder) << 0; s_memcards |= (slot_b_has_raw_memcard || slot_b_has_gci_folder) << 1; diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index cc1d9e6280..0ed2290b0d 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -1665,8 +1665,8 @@ bool NetPlayServer::SyncSaveData() if (save_count == 0) return true; - const std::string region = - Config::GetDirectoryForRegion(Config::ToGameCubeRegion(game->GetRegion())); + const auto game_region = game->GetRegion(); + const std::string region = Config::GetDirectoryForRegion(Config::ToGameCubeRegion(game_region)); for (ExpansionInterface::Slot slot : ExpansionInterface::MEMCARD_SLOTS) { @@ -1674,17 +1674,12 @@ bool NetPlayServer::SyncSaveData() if (m_settings.m_EXIDevice[slot] == ExpansionInterface::EXIDeviceType::MemoryCard) { - std::string path = Config::Get(Config::GetInfoForMemcardPath(slot)); - - MemoryCard::CheckPath(path, region, slot); - const int size_override = m_settings.m_MemcardSizeOverride; - if (size_override >= 0 && size_override <= 4) - { - path.insert(path.find_last_of('.'), - fmt::format(".{}", Memcard::MbitToFreeBlocks(Memcard::MBIT_SIZE_MEMORY_CARD_59 - << size_override))); - } + const u16 card_size_mbits = + size_override >= 0 && size_override <= 4 ? + static_cast(Memcard::MBIT_SIZE_MEMORY_CARD_59 << size_override) : + Memcard::MBIT_SIZE_MEMORY_CARD_2043; + const std::string path = Config::GetMemcardPath(slot, game_region, card_size_mbits); sf::Packet pac; pac << MessageID::SyncSaveData; From 4fd18cf2074da4babd340a306eb66eb762312182 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 19 Jan 2022 00:40:48 +0100 Subject: [PATCH 176/659] DolphinQt: Unify handling of raw memory card path. --- Source/Core/DolphinQt/GCMemcardManager.cpp | 3 +- Source/Core/DolphinQt/GameList/GameList.cpp | 2 +- .../Core/DolphinQt/Settings/GameCubePane.cpp | 101 +++++++++++------- 3 files changed, 65 insertions(+), 41 deletions(-) diff --git a/Source/Core/DolphinQt/GCMemcardManager.cpp b/Source/Core/DolphinQt/GCMemcardManager.cpp index 83a6b231c3..ebfb919777 100644 --- a/Source/Core/DolphinQt/GCMemcardManager.cpp +++ b/Source/Core/DolphinQt/GCMemcardManager.cpp @@ -228,7 +228,8 @@ void GCMemcardManager::LoadDefaultMemcards() continue; } - const QString path = QString::fromStdString(Config::Get(Config::GetInfoForMemcardPath(slot))); + const QString path = QString::fromStdString( + Config::GetMemcardPath(slot, Config::Get(Config::MAIN_FALLBACK_REGION))); SetSlotFile(slot, path); } } diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index bebb6d81bf..b2fdb46df2 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -734,7 +734,7 @@ void GameList::OpenGCSaveFolder() } case ExpansionInterface::EXIDeviceType::MemoryCard: { - std::string memcard_path = Config::Get(Config::GetInfoForMemcardPath(slot)); + const std::string memcard_path = Config::GetMemcardPath(slot, game->GetRegion()); std::string memcard_dir; diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp index 208535b8ae..82aea64a23 100644 --- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp +++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp @@ -303,66 +303,89 @@ void GameCubePane::BrowseMemcard(ExpansionInterface::Slot slot) { ASSERT(ExpansionInterface::IsMemcardSlot(slot)); - QString filename = DolphinFileDialog::getSaveFileName( - this, tr("Choose a file to open"), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)), + const QString filename = DolphinFileDialog::getSaveFileName( + this, tr("Choose a file to open or create"), + QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)), tr("GameCube Memory Cards (*.raw *.gcp)"), 0, QFileDialog::DontConfirmOverwrite); if (filename.isEmpty()) return; - QString path_abs = QFileInfo(filename).absoluteFilePath(); + const std::string raw_path = + WithUnifiedPathSeparators(QFileInfo(filename).absoluteFilePath().toStdString()); - // Memcard validity checks - if (File::Exists(filename.toStdString())) + // Figure out if the user selected a card that has a valid region specifier in the filename. + const std::string jp_path = Config::GetMemcardPath(raw_path, slot, DiscIO::Region::NTSC_J); + const std::string us_path = Config::GetMemcardPath(raw_path, slot, DiscIO::Region::NTSC_U); + const std::string eu_path = Config::GetMemcardPath(raw_path, slot, DiscIO::Region::PAL); + const bool raw_path_valid = raw_path == jp_path || raw_path == us_path || raw_path == eu_path; + + if (!raw_path_valid) { - auto [error_code, mc] = Memcard::GCMemcard::Open(filename.toStdString()); - - if (error_code.HasCriticalErrors() || !mc || !mc->IsValid()) - { - ModalMessageBox::critical( - this, tr("Error"), - tr("The file\n%1\nis either corrupted or not a GameCube memory card file.\n%2") - .arg(filename) - .arg(GCMemcardManager::GetErrorMessagesForErrorCode(error_code))); - return; - } + // TODO: We could try to autodetect the card region here and offer automatic renaming. + ModalMessageBox::critical(this, tr("Error"), + tr("The filename %1 does not conform to Dolphin's region code format " + "for memory cards. Please rename this file to either %2, %3, or " + "%4, matching the region of the save files that are on it.") + .arg(QString::fromStdString(PathToFileName(raw_path))) + .arg(QString::fromStdString(PathToFileName(us_path))) + .arg(QString::fromStdString(PathToFileName(eu_path))) + .arg(QString::fromStdString(PathToFileName(jp_path)))); + return; } - for (ExpansionInterface::Slot other_slot : ExpansionInterface::MEMCARD_SLOTS) + // Memcard validity checks + for (const std::string& path : {jp_path, us_path, eu_path}) { - if (other_slot == slot) - continue; - - bool other_slot_memcard = m_slot_combos[other_slot]->currentData().toInt() == - static_cast(ExpansionInterface::EXIDeviceType::MemoryCard); - if (other_slot_memcard) + if (File::Exists(path)) { - QString path_other = - QFileInfo(QString::fromStdString(Config::Get(Config::GetInfoForMemcardPath(other_slot)))) - .absoluteFilePath(); + auto [error_code, mc] = Memcard::GCMemcard::Open(path); - if (path_abs == path_other) + if (error_code.HasCriticalErrors() || !mc || !mc->IsValid()) { ModalMessageBox::critical( this, tr("Error"), - tr("The same file can't be used in multiple slots; it is already used by %1.") - .arg(QString::fromStdString(fmt::to_string(other_slot)))); + tr("The file\n%1\nis either corrupted or not a GameCube memory card file.\n%2") + .arg(QString::fromStdString(path)) + .arg(GCMemcardManager::GetErrorMessagesForErrorCode(error_code))); return; } } } - QString path_old = - QFileInfo(QString::fromStdString(Config::Get(Config::GetInfoForMemcardPath(slot)))) - .absoluteFilePath(); - - Config::SetBase(Config::GetInfoForMemcardPath(slot), path_abs.toStdString()); - - if (Core::IsRunning() && path_abs != path_old) + // Check if the other slot has the same memory card configured and refuse to use this card if so. + // The EU path is compared here, but it doesn't actually matter which one we compare since they + // follow a known pattern, so if the EU path matches the other match too and vice-versa. + for (ExpansionInterface::Slot other_slot : ExpansionInterface::MEMCARD_SLOTS) { - // ChangeDevice unplugs the device for 1 second, which means that games should notice that - // the path has changed and thus the memory card contents have changed - ExpansionInterface::ChangeDevice(slot, ExpansionInterface::EXIDeviceType::MemoryCard); + if (other_slot == slot) + continue; + + const std::string other_eu_path = Config::GetMemcardPath(other_slot, DiscIO::Region::PAL); + if (eu_path == other_eu_path) + { + ModalMessageBox::critical( + this, tr("Error"), + tr("The same file can't be used in multiple slots; it is already used by %1.") + .arg(QString::fromStdString(fmt::to_string(other_slot)))); + return; + } + } + + Config::SetBase(Config::GetInfoForMemcardPath(slot), raw_path); + + if (Core::IsRunning()) + { + // If emulation is running and the new card is different from the old one, notify the system to + // eject the old and insert the new card. + // TODO: This should probably done by a config change callback instead. + const std::string old_eu_path = Config::GetMemcardPath(slot, DiscIO::Region::PAL); + if (eu_path != old_eu_path) + { + // ChangeDevice unplugs the device for 1 second, which means that games should notice that + // the path has changed and thus the memory card contents have changed + ExpansionInterface::ChangeDevice(slot, ExpansionInterface::EXIDeviceType::MemoryCard); + } } } From d03b2774030d96e491f182de82fc33dea650a735 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 5 Jun 2022 19:33:28 -0700 Subject: [PATCH 177/659] DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF --- Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp | 4 +- Source/DSPSpy/tests/loop_counter_test.ds | 64 +++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 Source/DSPSpy/tests/loop_counter_test.ds diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp index 79e2da9a91..7ba437484b 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp @@ -322,14 +322,14 @@ void DSPEmitter::HandleLoop() MOVZX(32, 16, ECX, M_SDSP_r_st(3)); TEST(32, R(RCX), R(RCX)); - FixupBranch rLoopCntG = J_CC(CC_LE, true); + FixupBranch rLoopCntG = J_CC(CC_E, true); CMP(16, R(RAX), Imm16(m_compile_pc - 1)); FixupBranch rLoopAddrG = J_CC(CC_NE, true); SUB(16, M_SDSP_r_st(3), Imm16(1)); CMP(16, M_SDSP_r_st(3), Imm16(0)); - FixupBranch loadStack = J_CC(CC_LE, true); + FixupBranch loadStack = J_CC(CC_E, true); MOVZX(32, 16, ECX, M_SDSP_r_st(0)); MOV(16, M_SDSP_pc(), R(RCX)); FixupBranch loopUpdated = J(true); diff --git a/Source/DSPSpy/tests/loop_counter_test.ds b/Source/DSPSpy/tests/loop_counter_test.ds new file mode 100644 index 0000000000..51f06c0e09 --- /dev/null +++ b/Source/DSPSpy/tests/loop_counter_test.ds @@ -0,0 +1,64 @@ +; This test checks how LOOP and BLOOP handle their arguments by running loops with the count +; ranging from 0 to 0xffff. The current counter is shown via mail at the top of the screen. +; This test gets slower as the counter gets larger (it runs in O(n^2)). +incdir "tests" +include "dsp_base.inc" + +test_main: + CLR $acc0 + LRI $ar0, #0 + LRI $ix0, #0 + LRI $ar1, #0 + LRI $ix1, #0 + +main_loop: + CLR $acc1 + ; Incrementing $acc1 $ac0.l times sets $acc1 to 1 * $ac0.l, which is just $ac0.l + LOOP $ac0.l + INC $acc1 + ; We are now done looping. Check that the results match what we want... + CMP + JZ check_bloop + ; Did not match. + IAR $ar0 + LRI $ix0, #1 + CALL send_back + +check_bloop: + CLR $acc1 + ; Same deal as above. Here we only have one instruction that is repeated via BLOOP. + BLOOP $ac0.l, last_bloop_ins + ; TODO: This NOP is needed for things to behave properly; if the last_bloop_ins label + ; is immediately after the BLOOP instruction things break on real hardware. + ; There's no reason to do this normally though since the LOOP instruction does the same thing + ; without needing to provide a label. But it's worth checking eventually (along with how these + ; instructions behave when a 2-word long instruction is at the end). + NOP +last_bloop_ins: + INC $acc1 + ; We are now done looping. Check that the results match what we want... + CMP + JZ advance_main_loop + ; Did not match. + IAR $ar1 + LRI $ix1, #1 + CALL send_back + +advance_main_loop: + ; Report progress as mail + SI @DMBH, #0 + SR @DMBL, $ac0.l + SI @DIRQ, #0x0001 + + ; Move on to the next value. + ; CMPIS (and CMPI) check the middle of the accumulator, so CMPIS $acc0, #1 + ; checks if the full accumulator is 0x10000 - which is our end point. + INC $acc0 + CMPIS $ac0.m, #1 + JNZ main_loop + + ; Done with the test. $ar0, $ix0, $ar1, and $ix1 should all be 0. + CALL send_back + + ; We're done, DO NOT DELETE THIS LINE + JMP end_of_test From 79a7bf02eb934dcf924d9f5cde55ba17d41643bf Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sat, 28 May 2022 23:19:55 +0100 Subject: [PATCH 178/659] CMake: rename minizip to minizip-ng minizip-ng is the new name used by the upstream project as well as all distros other than Fedora (but it looks like it will be renamed there). --- CMakeLists.txt | 2 +- Externals/minizip/CMakeLists.txt | 2 +- Source/Core/Common/CMakeLists.txt | 2 +- Source/Core/Common/MinizipUtil.h | 2 +- Source/Core/DiscIO/CMakeLists.txt | 2 +- Source/Core/DiscIO/VolumeVerifier.cpp | 2 +- Source/Core/UICommon/CMakeLists.txt | 2 +- Source/Core/UICommon/ResourcePack/ResourcePack.cpp | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index df7c1b8823..a75b52109e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -753,7 +753,7 @@ else() add_subdirectory(Externals/zlib) endif() -pkg_check_modules(MINIZIP minizip>=2.0.0) +pkg_check_modules(MINIZIP minizip-ng>=3.0.0) if(MINIZIP_FOUND) message(STATUS "Using shared minizip") include_directories(${MINIZIP_INCLUDE_DIRS}) diff --git a/Externals/minizip/CMakeLists.txt b/Externals/minizip/CMakeLists.txt index 4068cd85bc..c3d7c5512e 100644 --- a/Externals/minizip/CMakeLists.txt +++ b/Externals/minizip/CMakeLists.txt @@ -67,4 +67,4 @@ endif() target_link_libraries(minizip PUBLIC ZLIB::ZLIB) -add_library(MiniZip::minizip ALIAS minizip) +add_library(minizip-ng ALIAS minizip) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 52448c9ea9..729d62c441 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -140,7 +140,7 @@ PUBLIC enet fmt::fmt ${MBEDTLS_LIBRARIES} - minizip + minizip-ng PRIVATE ${CURL_LIBRARIES} diff --git a/Source/Core/Common/MinizipUtil.h b/Source/Core/Common/MinizipUtil.h index d06b3f4f5d..6057632ddd 100644 --- a/Source/Core/Common/MinizipUtil.h +++ b/Source/Core/Common/MinizipUtil.h @@ -5,7 +5,7 @@ #include -#include +#include #include "Common/CommonTypes.h" #include "Common/ScopeGuard.h" diff --git a/Source/Core/DiscIO/CMakeLists.txt b/Source/Core/DiscIO/CMakeLists.txt index 68028dbcfc..ec1562325a 100644 --- a/Source/Core/DiscIO/CMakeLists.txt +++ b/Source/Core/DiscIO/CMakeLists.txt @@ -73,7 +73,7 @@ PUBLIC PRIVATE fmt::fmt - minizip + minizip-ng pugixml ZLIB::ZLIB ) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 05070e3878..84ab51ef13 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -14,8 +14,8 @@ #include #include +#include #include -#include #include "Common/Align.h" #include "Common/Assert.h" diff --git a/Source/Core/UICommon/CMakeLists.txt b/Source/Core/UICommon/CMakeLists.txt index 2b7d5bd2a6..f2ffbd0821 100644 --- a/Source/Core/UICommon/CMakeLists.txt +++ b/Source/Core/UICommon/CMakeLists.txt @@ -31,7 +31,7 @@ target_link_libraries(uicommon PUBLIC common cpp-optparse - minizip + minizip-ng pugixml PRIVATE diff --git a/Source/Core/UICommon/ResourcePack/ResourcePack.cpp b/Source/Core/UICommon/ResourcePack/ResourcePack.cpp index 98f0cd2e2d..585559029d 100644 --- a/Source/Core/UICommon/ResourcePack/ResourcePack.cpp +++ b/Source/Core/UICommon/ResourcePack/ResourcePack.cpp @@ -5,7 +5,7 @@ #include -#include +#include #include "Common/CommonPaths.h" #include "Common/FileSearch.h" From dd0485389e0f1d18a2df858a6bd549007612a492 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 6 Jun 2022 21:57:21 +0200 Subject: [PATCH 179/659] AndroidManifest.xml: Re-add package="org.dolphinemu.dolphinemu" Without this, debug builds of Dolphin fail to launch. The OS tries to locate org.dolphinemu.dolphinemu.debug.DolphinApplication but fails to find it because its actual name is org.dolphinemu.dolphinemu.DolphinApplication. Partially reverts 6b74907f9dc884290c041c7bac325043b76d62a9. --- Source/Android/app/src/main/AndroidManifest.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Android/app/src/main/AndroidManifest.xml b/Source/Android/app/src/main/AndroidManifest.xml index fa52877c87..78bd53c35f 100644 --- a/Source/Android/app/src/main/AndroidManifest.xml +++ b/Source/Android/app/src/main/AndroidManifest.xml @@ -1,4 +1,5 @@ - + Date: Wed, 8 Jun 2022 02:33:06 -0400 Subject: [PATCH 180/659] MoltenVK: Update to version 1.1.10 --- Externals/MoltenVK/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals/MoltenVK/CMakeLists.txt b/Externals/MoltenVK/CMakeLists.txt index c7e7182476..5bed8ec03f 100644 --- a/Externals/MoltenVK/CMakeLists.txt +++ b/Externals/MoltenVK/CMakeLists.txt @@ -1,6 +1,6 @@ include(ExternalProject) -set(MOLTENVK_VERSION "v1.1.9") +set(MOLTENVK_VERSION "v1.1.10") ExternalProject_Add(MoltenVK GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git From f1b7d9365c5bdf420d20a9ce660f068ffc0a9782 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Wed, 8 Jun 2022 16:44:14 +0200 Subject: [PATCH 181/659] cmake: steam runtime builds should be opt-in, not opt-out --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ed9a414e0..d42b3eb6cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,7 @@ option(ENABLE_VULKAN "Enables vulkan video backend" ON) option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence, show the current game on Discord" ON) option(USE_MGBA "Enables GBA controllers emulation using libmgba" ON) option(ENABLE_AUTOUPDATE "Enables support for automatic updates" ON) -option(STEAM "Creates a build for Steam" ON) +option(STEAM "Creates a build for Steam" OFF) # Maintainers: if you consider blanket disabling this for your users, please # consider the following points: From 41ce3a83d5dc9934cb74a82cc2c3340d2c4036c0 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Thu, 26 May 2022 16:38:14 +0400 Subject: [PATCH 182/659] Socket: Refactor WiiSockMan::Convert --- Source/Core/Core/IOS/Network/Socket.cpp | 52 +++++++++++++------------ Source/Core/Core/IOS/Network/Socket.h | 5 ++- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/Source/Core/Core/IOS/Network/Socket.cpp b/Source/Core/Core/IOS/Network/Socket.cpp index 9537c8cdff..ec0ae1641c 100644 --- a/Source/Core/Core/IOS/Network/Socket.cpp +++ b/Source/Core/Core/IOS/Network/Socket.cpp @@ -16,6 +16,7 @@ #include #endif +#include "Common/BitUtils.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" #include "Core/Config/MainSettings.h" @@ -278,8 +279,8 @@ void WiiSocket::Update(bool read, bool write, bool except) case IOCTL_SO_BIND: { sockaddr_in local_name; - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(ioctl.buffer_in + 8); - WiiSockMan::Convert(*wii_name, local_name); + const u8* addr = Memory::GetPointer(ioctl.buffer_in + 8); + WiiSockMan::ToNativeAddrIn(addr, &local_name); int ret = bind(fd, (sockaddr*)&local_name, sizeof(local_name)); ReturnValue = WiiSockMan::GetNetErrorCode(ret, "SO_BIND", false); @@ -291,8 +292,8 @@ void WiiSocket::Update(bool read, bool write, bool except) case IOCTL_SO_CONNECT: { sockaddr_in local_name; - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(ioctl.buffer_in + 8); - WiiSockMan::Convert(*wii_name, local_name); + const u8* addr = Memory::GetPointer(ioctl.buffer_in + 8); + WiiSockMan::ToNativeAddrIn(addr, &local_name); int ret = connect(fd, (sockaddr*)&local_name, sizeof(local_name)); ReturnValue = WiiSockMan::GetNetErrorCode(ret, "SO_CONNECT", false); @@ -307,13 +308,13 @@ void WiiSocket::Update(bool read, bool write, bool except) if (ioctl.buffer_out_size > 0) { sockaddr_in local_name; - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(ioctl.buffer_out); - WiiSockMan::Convert(*wii_name, local_name); + u8* addr = Memory::GetPointer(ioctl.buffer_out); + WiiSockMan::ToNativeAddrIn(addr, &local_name); socklen_t addrlen = sizeof(sockaddr_in); ret = static_cast(accept(fd, (sockaddr*)&local_name, &addrlen)); - WiiSockMan::Convert(local_name, *wii_name, addrlen); + WiiSockMan::ToWiiAddrIn(local_name, addr, addrlen); } else { @@ -564,8 +565,8 @@ void WiiSocket::Update(bool read, bool write, bool except) sockaddr_in local_name = {0}; if (has_destaddr) { - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(BufferIn2 + 0x0C); - WiiSockMan::Convert(*wii_name, local_name); + const u8* addr = Memory::GetPointer(BufferIn2 + 0x0C); + WiiSockMan::ToNativeAddrIn(addr, &local_name); } auto* to = has_destaddr ? reinterpret_cast(&local_name) : nullptr; @@ -597,8 +598,8 @@ void WiiSocket::Update(bool read, bool write, bool except) if (BufferOutSize2 != 0) { - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(BufferOut2); - WiiSockMan::Convert(*wii_name, local_name); + const u8* addr = Memory::GetPointer(BufferOut2); + WiiSockMan::ToNativeAddrIn(addr, &local_name); } // Act as non blocking when SO_MSG_NONBLOCK is specified @@ -634,8 +635,8 @@ void WiiSocket::Update(bool read, bool write, bool except) if (BufferOutSize2 != 0) { - WiiSockAddrIn* wii_name = (WiiSockAddrIn*)Memory::GetPointer(BufferOut2); - WiiSockMan::Convert(local_name, *wii_name, addrlen); + u8* addr = Memory::GetPointer(BufferOut2); + WiiSockMan::ToWiiAddrIn(local_name, addr, addrlen); } break; } @@ -937,11 +938,12 @@ void WiiSockMan::UpdatePollCommands() pending_polls.end()); } -void WiiSockMan::Convert(WiiSockAddrIn const& from, sockaddr_in& to) +void WiiSockMan::ToNativeAddrIn(const u8* addr, sockaddr_in* to) { - to.sin_addr.s_addr = from.addr.addr; - to.sin_family = from.family; - to.sin_port = from.port; + const WiiSockAddrIn from = Common::BitCastPtr(addr); + to->sin_addr.s_addr = from.addr.addr; + to->sin_family = from.family; + to->sin_port = from.port; } s32 WiiSockMan::ConvertEvents(s32 events, ConvertDirection dir) @@ -981,15 +983,15 @@ s32 WiiSockMan::ConvertEvents(s32 events, ConvertDirection dir) return converted_events; } -void WiiSockMan::Convert(sockaddr_in const& from, WiiSockAddrIn& to, s32 addrlen) +void WiiSockMan::ToWiiAddrIn(const sockaddr_in& from, u8* to, socklen_t addrlen) { - to.addr.addr = from.sin_addr.s_addr; - to.family = from.sin_family & 0xFF; - to.port = from.sin_port; - if (addrlen < 0 || addrlen > static_cast(sizeof(WiiSockAddrIn))) - to.len = sizeof(WiiSockAddrIn); - else - to.len = addrlen; + to[offsetof(WiiSockAddrIn, len)] = + u8(addrlen > sizeof(WiiSockAddrIn) ? sizeof(WiiSockAddrIn) : addrlen); + to[offsetof(WiiSockAddrIn, family)] = u8(from.sin_family & 0xFF); + const u16& from_port = from.sin_port; + memcpy(to + offsetof(WiiSockAddrIn, port), &from_port, sizeof(from_port)); + const u32& from_addr = from.sin_addr.s_addr; + memcpy(to + offsetof(WiiSockAddrIn, addr.addr), &from_addr, sizeof(from_addr)); } void WiiSockMan::DoState(PointerWrap& p) diff --git a/Source/Core/Core/IOS/Network/Socket.h b/Source/Core/Core/IOS/Network/Socket.h index f9555da9e7..8f6e02a8bb 100644 --- a/Source/Core/Core/IOS/Network/Socket.h +++ b/Source/Core/Core/IOS/Network/Socket.h @@ -248,8 +248,9 @@ public: return instance; // Instantiated on first use. } void Update(); - static void Convert(WiiSockAddrIn const& from, sockaddr_in& to); - static void Convert(sockaddr_in const& from, WiiSockAddrIn& to, s32 addrlen = -1); + static void ToNativeAddrIn(const u8* from, sockaddr_in* to); + static void ToWiiAddrIn(const sockaddr_in& from, u8* to, + socklen_t addrlen = sizeof(WiiSockAddrIn)); static s32 ConvertEvents(s32 events, ConvertDirection dir); void DoState(PointerWrap& p); From cbadc6e81a9c36508223e6213faa0d603d038ddf Mon Sep 17 00:00:00 2001 From: Sepalani Date: Thu, 26 May 2022 16:50:53 +0400 Subject: [PATCH 183/659] NetworkCaptureLogger: Move ErrorState struct to Common/Network --- Source/Core/Common/Network.cpp | 18 ++++++++++++++ Source/Core/Common/Network.h | 10 ++++++++ Source/Core/Core/NetworkCaptureLogger.cpp | 29 +++-------------------- Source/Core/Core/NetworkCaptureLogger.h | 9 ------- 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 2c548347a3..faa2a33c05 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -186,4 +186,22 @@ u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value) checksum = (checksum >> 16) + (checksum & 0xFFFF); return ~static_cast(checksum); } + +NetworkErrorState SaveNetworkErrorState() +{ + return { + errno, +#ifdef _WIN32 + WSAGetLastError(), +#endif + }; +} + +void RestoreNetworkErrorState(const NetworkErrorState& state) +{ + errno = state.error; +#ifdef _WIN32 + WSASetLastError(state.wsa_error); +#endif +} } // namespace Common diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index a1fcc9ea42..0b56e09d34 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -99,8 +99,18 @@ struct UDPHeader }; static_assert(sizeof(UDPHeader) == UDPHeader::SIZE); +struct NetworkErrorState +{ + int error; +#ifdef _WIN32 + int wsa_error; +#endif +}; + MACAddress GenerateMacAddress(MACConsumer type); std::string MacAddressToString(const MACAddress& mac); std::optional StringToMacAddress(std::string_view mac_string); u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value = 0); +NetworkErrorState SaveNetworkErrorState(); +void RestoreNetworkErrorState(const NetworkErrorState& state); } // namespace Common diff --git a/Source/Core/Core/NetworkCaptureLogger.cpp b/Source/Core/Core/NetworkCaptureLogger.cpp index 2e4242fd88..064b5ed25b 100644 --- a/Source/Core/Core/NetworkCaptureLogger.cpp +++ b/Source/Core/Core/NetworkCaptureLogger.cpp @@ -15,6 +15,7 @@ #include "Common/IOFile.h" #include "Common/Network.h" #include "Common/PcapFile.h" +#include "Common/ScopeGuard.h" #include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" @@ -90,24 +91,6 @@ void PCAPSSLCaptureLogger::OnNewSocket(s32 socket) m_write_sequence_number[socket] = 0; } -PCAPSSLCaptureLogger::ErrorState PCAPSSLCaptureLogger::SaveState() const -{ - return { - errno, -#ifdef _WIN32 - WSAGetLastError(), -#endif - }; -} - -void PCAPSSLCaptureLogger::RestoreState(const PCAPSSLCaptureLogger::ErrorState& state) const -{ - errno = state.error; -#ifdef _WIN32 - WSASetLastError(state.wsa_error); -#endif -} - void PCAPSSLCaptureLogger::LogSSLRead(const void* data, std::size_t length, s32 socket) { if (!Config::Get(Config::MAIN_NETWORK_SSL_DUMP_READ)) @@ -135,7 +118,8 @@ void PCAPSSLCaptureLogger::LogWrite(const void* data, std::size_t length, s32 so void PCAPSSLCaptureLogger::Log(LogType log_type, const void* data, std::size_t length, s32 socket, sockaddr* other) { - const auto state = SaveState(); + const auto state = Common::SaveNetworkErrorState(); + Common::ScopeGuard guard([&state] { Common::RestoreNetworkErrorState(state); }); sockaddr_in sock; sockaddr_in peer; sockaddr_in* from; @@ -144,16 +128,10 @@ void PCAPSSLCaptureLogger::Log(LogType log_type, const void* data, std::size_t l socklen_t peer_len = sizeof(sock); if (getsockname(socket, reinterpret_cast(&sock), &sock_len) != 0) - { - RestoreState(state); return; - } if (other == nullptr && getpeername(socket, reinterpret_cast(&peer), &peer_len) != 0) - { - RestoreState(state); return; - } if (log_type == LogType::Read) { @@ -168,7 +146,6 @@ void PCAPSSLCaptureLogger::Log(LogType log_type, const void* data, std::size_t l LogIPv4(log_type, reinterpret_cast(data), static_cast(length), socket, *from, *to); - RestoreState(state); } void PCAPSSLCaptureLogger::LogIPv4(LogType log_type, const u8* data, u16 length, s32 socket, diff --git a/Source/Core/Core/NetworkCaptureLogger.h b/Source/Core/Core/NetworkCaptureLogger.h index 032fde267c..d5067252d4 100644 --- a/Source/Core/Core/NetworkCaptureLogger.h +++ b/Source/Core/Core/NetworkCaptureLogger.h @@ -99,15 +99,6 @@ private: Read, Write, }; - struct ErrorState - { - int error; -#ifdef _WIN32 - int wsa_error; -#endif - }; - ErrorState SaveState() const; - void RestoreState(const ErrorState& state) const; void Log(LogType log_type, const void* data, std::size_t length, s32 socket, sockaddr* other); void LogIPv4(LogType log_type, const u8* data, u16 length, s32 socket, const sockaddr_in& from, From c53a4c8c1a23a8e8bc164030fd6ea705b8ffa3dd Mon Sep 17 00:00:00 2001 From: Sepalani Date: Fri, 27 May 2022 01:57:00 +0400 Subject: [PATCH 184/659] Socket: Keep track of the socket connection progress Workaround for mbedtls handshake issues with partially connected sockets --- Source/Core/Core/IOS/Network/Socket.cpp | 118 ++++++++++++++++++++++++ Source/Core/Core/IOS/Network/Socket.h | 11 +++ 2 files changed, 129 insertions(+) diff --git a/Source/Core/Core/IOS/Network/Socket.cpp b/Source/Core/Core/IOS/Network/Socket.cpp index ec0ae1641c..29af6231d0 100644 --- a/Source/Core/Core/IOS/Network/Socket.cpp +++ b/Source/Core/Core/IOS/Network/Socket.cpp @@ -19,6 +19,8 @@ #include "Common/BitUtils.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" +#include "Common/Network.h" +#include "Common/ScopeGuard.h" #include "Core/Config/MainSettings.h" #include "Core/Core.h" #include "Core/IOS/Device.h" @@ -225,6 +227,7 @@ s32 WiiSocket::CloseFd() GetIOS()->EnqueueIPCReply(it->request, -SO_ENOTCONN); it = pending_sockops.erase(it); } + connecting_state = ConnectingState::None; return ReturnValue; } @@ -297,6 +300,7 @@ void WiiSocket::Update(bool read, bool write, bool except) int ret = connect(fd, (sockaddr*)&local_name, sizeof(local_name)); ReturnValue = WiiSockMan::GetNetErrorCode(ret, "SO_CONNECT", false); + UpdateConnectingState(ReturnValue); INFO_LOG_FMT(IOS_NET, "IOCTL_SO_CONNECT ({:08x}, {}:{}) = {}", wii_fd, inet_ntoa(local_name.sin_addr), Common::swap16(local_name.sin_port), ret); @@ -342,10 +346,12 @@ void WiiSocket::Update(bool read, bool write, bool except) { ReturnValue = -SO_ENETUNREACH; ResetTimeout(); + connecting_state = ConnectingState::Error; } break; case -SO_EISCONN: ReturnValue = SO_SUCCESS; + connecting_state = ConnectingState::Connected; [[fallthrough]]; default: ResetTimeout(); @@ -393,6 +399,24 @@ void WiiSocket::Update(bool read, bool write, bool except) { case IOCTLV_NET_SSL_DOHANDSHAKE: { + // The Wii allows a socket with an in-progress connection to + // perform the SSL handshake. MbedTLS doesn't support it so + // we have to check it manually. + connecting_state = GetConnectingState(); + if (connecting_state == ConnectingState::Connecting) + { + WriteReturnValue(SSL_ERR_RAGAIN, BufferIn); + ReturnValue = SSL_ERR_RAGAIN; + break; + } + else if (connecting_state == ConnectingState::None || + connecting_state == ConnectingState::Error) + { + WriteReturnValue(SSL_ERR_SYSCALL, BufferIn); + ReturnValue = SSL_ERR_SYSCALL; + break; + } + mbedtls_ssl_context* ctx = &NetSSLDevice::_SSL[sslID].ctx; const int ret = mbedtls_ssl_handshake(ctx); if (ret != 0) @@ -673,6 +697,100 @@ void WiiSocket::Update(bool read, bool write, bool except) } } +void WiiSocket::UpdateConnectingState(s32 connect_rv) +{ + if (connect_rv == -SO_EAGAIN || connect_rv == -SO_EALREADY || connect_rv == -SO_EINPROGRESS) + { + connecting_state = ConnectingState::Connecting; + } + else if (connect_rv >= 0) + { + connecting_state = ConnectingState::Connected; + } + else + { + connecting_state = ConnectingState::Error; + } +} + +WiiSocket::ConnectingState WiiSocket::GetConnectingState() const +{ + const auto state = Common::SaveNetworkErrorState(); + Common::ScopeGuard guard([&state] { Common::RestoreNetworkErrorState(state); }); + +#ifdef _WIN32 + constexpr int (*get_errno)() = &WSAGetLastError; +#else + constexpr int (*get_errno)() = []() { return errno; }; +#endif + + switch (connecting_state) + { + case ConnectingState::Error: + case ConnectingState::Connected: + case ConnectingState::None: + break; + case ConnectingState::Connecting: + { + const s32 nfds = fd + 1; + fd_set read_fds; + fd_set write_fds; + fd_set except_fds; + struct timeval t = {0, 0}; + FD_ZERO(&read_fds); + FD_ZERO(&write_fds); + FD_ZERO(&except_fds); + FD_SET(fd, &write_fds); + FD_SET(fd, &except_fds); + + auto& sm = WiiSockMan::GetInstance(); + if (select(nfds, &read_fds, &write_fds, &except_fds, &t) < 0) + { + const s32 error = get_errno(); + ERROR_LOG_FMT(IOS_SSL, "Failed to get socket (fd={}) connection state (err={}): {}", wii_fd, + error, sm.DecodeError(error)); + return ConnectingState::Error; + } + + if (FD_ISSET(fd, &write_fds) == 0 && FD_ISSET(fd, &except_fds) == 0) + break; + + s32 error = 0; + socklen_t len = sizeof(error); + if (getsockopt(fd, SOL_SOCKET, SO_ERROR, reinterpret_cast(&error), &len) != 0) + { + error = get_errno(); + ERROR_LOG_FMT(IOS_SSL, "Failed to get socket (fd={}) error state (err={}): {}", wii_fd, error, + sm.DecodeError(error)); + return ConnectingState::Error; + } + + if (error != 0) + { + ERROR_LOG_FMT(IOS_SSL, "Non-blocking connect (fd={}) failed (err={}): {}", wii_fd, error, + sm.DecodeError(error)); + return ConnectingState::Error; + } + + // Get peername to ensure the socket is connected + sockaddr_in peer; + socklen_t peer_len = sizeof(peer); + if (getpeername(fd, reinterpret_cast(&peer), &peer_len) != 0) + { + error = get_errno(); + ERROR_LOG_FMT(IOS_SSL, "Non-blocking connect (fd={}) failed to get peername (err={}): {}", + wii_fd, error, sm.DecodeError(error)); + return ConnectingState::Error; + } + + INFO_LOG_FMT(IOS_SSL, "Non-blocking connect (fd={}) succeeded", wii_fd); + return ConnectingState::Connected; + } + } + + return connecting_state; +} + const WiiSocket::Timeout& WiiSocket::GetTimeout() { if (!timeout.has_value()) diff --git a/Source/Core/Core/IOS/Network/Socket.h b/Source/Core/Core/IOS/Network/Socket.h index 8f6e02a8bb..9e2509fcc0 100644 --- a/Source/Core/Core/IOS/Network/Socket.h +++ b/Source/Core/Core/IOS/Network/Socket.h @@ -199,6 +199,14 @@ private: void Abort(s32 value); }; + enum class ConnectingState + { + None, + Connecting, + Connected, + Error + }; + friend class WiiSockMan; void SetFd(s32 s); void SetWiiFd(s32 s); @@ -212,11 +220,14 @@ private: void DoSock(Request request, NET_IOCTL type); void DoSock(Request request, SSL_IOCTL type); void Update(bool read, bool write, bool except); + void UpdateConnectingState(s32 connect_rv); + ConnectingState GetConnectingState() const; bool IsValid() const { return fd >= 0; } s32 fd = -1; s32 wii_fd = -1; bool nonBlock = false; + ConnectingState connecting_state = ConnectingState::None; std::list pending_sockops; std::optional timeout; From d7135daff5d3c6aab91b4600875d234dff367f82 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Fri, 27 May 2022 14:07:59 +0400 Subject: [PATCH 185/659] Socket: Fix some errors related to non-blocking connect --- Source/Core/Core/IOS/Network/Socket.cpp | 32 +++++++++++++++++++++++++ Source/Core/Core/IOS/Network/Socket.h | 1 + 2 files changed, 33 insertions(+) diff --git a/Source/Core/Core/IOS/Network/Socket.cpp b/Source/Core/Core/IOS/Network/Socket.cpp index 29af6231d0..dcccf5977f 100644 --- a/Source/Core/Core/IOS/Network/Socket.cpp +++ b/Source/Core/Core/IOS/Network/Socket.cpp @@ -575,6 +575,16 @@ void WiiSocket::Update(bool read, bool write, bool except) { case IOCTLV_SO_SENDTO: { + // The Wii allows a socket with a connection in progress to use + // sendto(). This might not be supported by the operating system. + // We have to enforce it manually. + connecting_state = GetConnectingState(); + if (nonBlock && IsTCP() && connecting_state == ConnectingState::Connecting) + { + ReturnValue = -SO_EAGAIN; + break; + } + u32 flags = Memory::Read_U32(BufferIn2 + 0x04); u32 has_destaddr = Memory::Read_U32(BufferIn2 + 0x08); @@ -612,6 +622,16 @@ void WiiSocket::Update(bool read, bool write, bool except) } case IOCTLV_SO_RECVFROM: { + // The Wii allows a socket with a connection in progress to use + // recvfrom(). This might not be supported by the operating system. + // We have to enforce it manually. + connecting_state = GetConnectingState(); + if (nonBlock && IsTCP() && connecting_state == ConnectingState::Connecting) + { + ReturnValue = -SO_EAGAIN; + break; + } + u32 flags = Memory::Read_U32(BufferIn + 0x04); // Not a string, Windows requires a char* for recvfrom char* data = (char*)Memory::GetPointer(BufferOut); @@ -791,6 +811,18 @@ WiiSocket::ConnectingState WiiSocket::GetConnectingState() const return connecting_state; } +bool WiiSocket::IsTCP() const +{ + const auto state = Common::SaveNetworkErrorState(); + Common::ScopeGuard guard([&state] { Common::RestoreNetworkErrorState(state); }); + + int socket_type; + socklen_t option_length = sizeof(socket_type); + return getsockopt(fd, SOL_SOCKET, SO_TYPE, reinterpret_cast(&socket_type), + &option_length) == 0 && + socket_type == SOCK_STREAM; +} + const WiiSocket::Timeout& WiiSocket::GetTimeout() { if (!timeout.has_value()) diff --git a/Source/Core/Core/IOS/Network/Socket.h b/Source/Core/Core/IOS/Network/Socket.h index 9e2509fcc0..143391cd89 100644 --- a/Source/Core/Core/IOS/Network/Socket.h +++ b/Source/Core/Core/IOS/Network/Socket.h @@ -223,6 +223,7 @@ private: void UpdateConnectingState(s32 connect_rv); ConnectingState GetConnectingState() const; bool IsValid() const { return fd >= 0; } + bool IsTCP() const; s32 fd = -1; s32 wii_fd = -1; From 91a7c4bdf2633029ecde85718501b6c7a7d95e9d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 11:58:08 -0700 Subject: [PATCH 186/659] LibusbUtils: Log warnings when libusb_set_option or libusb_handle_events_timeout_completed fail --- Source/Core/Core/LibusbUtils.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/LibusbUtils.cpp b/Source/Core/Core/LibusbUtils.cpp index dadad60a2d..b905219207 100644 --- a/Source/Core/Core/LibusbUtils.cpp +++ b/Source/Core/Core/LibusbUtils.cpp @@ -28,7 +28,9 @@ public: return; #ifdef _WIN32 - libusb_set_option(m_context, LIBUSB_OPTION_USE_USBDK); + const int usbdk_ret = libusb_set_option(m_context, LIBUSB_OPTION_USE_USBDK); + if (usbdk_ret != LIBUSB_SUCCESS && usbdk_ret != LIBUSB_ERROR_NOT_FOUND) + WARN_LOG_FMT(IOS_USB, "Failed to set LIBUSB_OPTION_USE_USBDK: {}", ErrorWrap(usbdk_ret)); #endif m_event_thread_running.Set(); m_event_thread = std::thread(&Impl::EventThread, this); @@ -71,7 +73,11 @@ private: Common::SetCurrentThreadName("libusb thread"); timeval tv{5, 0}; while (m_event_thread_running.IsSet()) - libusb_handle_events_timeout_completed(m_context, &tv, nullptr); + { + const int ret = libusb_handle_events_timeout_completed(m_context, &tv, nullptr); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_USB, "libusb_handle_events_timeout_completed failed: {}", ErrorWrap(ret)); + } } libusb_context* m_context = nullptr; From 15cbb5c8f9ec1e64a137f93b032e8b5dc629817f Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 12:17:37 -0700 Subject: [PATCH 187/659] Log warnings when LibusbUtils::GetDeviceList fails --- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 7 ++++++- Source/Core/Core/IOS/USB/Host.cpp | 4 +++- Source/Core/Core/LibusbUtils.cpp | 16 ++++++++-------- Source/Core/Core/LibusbUtils.h | 2 +- Source/Core/InputCommon/GCAdapter.cpp | 4 +++- Source/Core/UICommon/USBUtils.cpp | 5 ++++- 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index 12def23084..8619d8766e 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -84,7 +84,7 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) return IPCReply(IPC_EACCES); m_last_open_error.clear(); - m_context.GetDeviceList([this](libusb_device* device) { + const int ret = m_context.GetDeviceList([this](libusb_device* device) { libusb_device_descriptor device_descriptor; libusb_get_device_descriptor(device, &device_descriptor); auto config_descriptor = LibusbUtils::MakeConfigDescriptor(device); @@ -116,6 +116,11 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) } return true; }); + if (ret != LIBUSB_SUCCESS) + { + m_last_open_error = + Common::FmtFormatT("GetDeviceList failed: {0}", LibusbUtils::ErrorWrap(ret)); + } if (m_handle == nullptr) { diff --git a/Source/Core/Core/IOS/USB/Host.cpp b/Source/Core/Core/IOS/USB/Host.cpp index 0fdaafb611..132f8e5247 100644 --- a/Source/Core/Core/IOS/USB/Host.cpp +++ b/Source/Core/Core/IOS/USB/Host.cpp @@ -121,7 +121,7 @@ bool USBHost::AddNewDevices(std::set& new_devices, DeviceChangeHooks& hooks if (m_context.IsValid()) { - m_context.GetDeviceList([&](libusb_device* device) { + const int ret = m_context.GetDeviceList([&](libusb_device* device) { libusb_device_descriptor descriptor; libusb_get_device_descriptor(device, &descriptor); if (whitelist.count({descriptor.idVendor, descriptor.idProduct}) == 0) @@ -137,6 +137,8 @@ bool USBHost::AddNewDevices(std::set& new_devices, DeviceChangeHooks& hooks hooks.emplace(GetDeviceById(id), ChangeEvent::Inserted); return true; }); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_USB, "GetDeviceList failed: {}", LibusbUtils::ErrorWrap(ret)); } #endif return true; diff --git a/Source/Core/Core/LibusbUtils.cpp b/Source/Core/Core/LibusbUtils.cpp index b905219207..f716cc4884 100644 --- a/Source/Core/Core/LibusbUtils.cpp +++ b/Source/Core/Core/LibusbUtils.cpp @@ -47,16 +47,16 @@ public: libusb_exit(m_context); } - libusb_context* GetContext() { return m_context; } + libusb_context* GetContext() const { return m_context; } - bool GetDeviceList(GetDeviceListCallback callback) + int GetDeviceList(GetDeviceListCallback callback) const { std::lock_guard lock{m_device_list_mutex}; libusb_device** list; ssize_t count = libusb_get_device_list(m_context, &list); if (count < 0) - return false; + return static_cast(count); for (ssize_t i = 0; i < count; ++i) { @@ -64,7 +64,7 @@ public: break; } libusb_free_device_list(list, 1); - return true; + return LIBUSB_SUCCESS; } private: @@ -81,7 +81,7 @@ private: } libusb_context* m_context = nullptr; - std::mutex m_device_list_mutex; + mutable std::mutex m_device_list_mutex; Common::Flag m_event_thread_running; std::thread m_event_thread; }; @@ -89,8 +89,8 @@ private: class Context::Impl { public: - libusb_context* GetContext() { return nullptr; } - bool GetDeviceList(GetDeviceListCallback callback) { return false; } + libusb_context* GetContext() const { return nullptr; } + int GetDeviceList(GetDeviceListCallback callback) const { return -1; } }; #endif @@ -110,7 +110,7 @@ bool Context::IsValid() const return m_impl->GetContext() != nullptr; } -bool Context::GetDeviceList(GetDeviceListCallback callback) +int Context::GetDeviceList(GetDeviceListCallback callback) const { return m_impl->GetDeviceList(std::move(callback)); } diff --git a/Source/Core/Core/LibusbUtils.h b/Source/Core/Core/LibusbUtils.h index aaa77de74b..4fe3c0289f 100644 --- a/Source/Core/Core/LibusbUtils.h +++ b/Source/Core/Core/LibusbUtils.h @@ -31,7 +31,7 @@ public: bool IsValid() const; // Only valid if the context is valid. - bool GetDeviceList(GetDeviceListCallback callback); + int GetDeviceList(GetDeviceListCallback callback) const; private: class Impl; diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index cf1b103f2f..993e032bf3 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -462,7 +462,7 @@ static void Setup() s_controller_type.fill(ControllerType::None); s_controller_rumble.fill(0); - s_libusb_context->GetDeviceList([](libusb_device* device) { + const int ret = s_libusb_context->GetDeviceList([](libusb_device* device) { if (CheckDeviceAccess(device)) { // Only connect to a single adapter in case the user has multiple connected @@ -471,6 +471,8 @@ static void Setup() } return true; }); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(CONTROLLERINTERFACE, "Failed to get device list: {}", LibusbUtils::ErrorWrap(ret)); if (s_status != ADAPTER_DETECTED && prev_status != s_status && s_detect_callback != nullptr) s_detect_callback(); diff --git a/Source/Core/UICommon/USBUtils.cpp b/Source/Core/UICommon/USBUtils.cpp index b33dc740e0..2264afe82c 100644 --- a/Source/Core/UICommon/USBUtils.cpp +++ b/Source/Core/UICommon/USBUtils.cpp @@ -11,6 +11,7 @@ #endif #include "Common/CommonTypes.h" +#include "Common/Logging/Log.h" #include "Core/LibusbUtils.h" // Because opening and getting the device name from devices is slow, especially on Windows @@ -45,13 +46,15 @@ std::map, std::string> GetInsertedDevices() if (!context.IsValid()) return devices; - context.GetDeviceList([&](libusb_device* device) { + const int ret = context.GetDeviceList([&](libusb_device* device) { libusb_device_descriptor descr; libusb_get_device_descriptor(device, &descr); const std::pair vid_pid{descr.idVendor, descr.idProduct}; devices[vid_pid] = GetDeviceName(vid_pid); return true; }); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(COMMON, "GetDeviceList failed: {}", LibusbUtils::ErrorWrap(ret)); #endif return devices; From eeab51e3a42e74a5f0f6c2211cbff6247a78e4bc Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 12:29:16 -0700 Subject: [PATCH 188/659] Log warnings when LibusbUtils::MakeConfigDescriptor fails --- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 9 +++++---- Source/Core/Core/IOS/USB/LibusbDevice.cpp | 10 +++++++++- Source/Core/Core/LibusbUtils.cpp | 11 +++++++---- Source/Core/Core/LibusbUtils.h | 3 ++- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index 8619d8766e..234c1ecc13 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -87,11 +87,12 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) const int ret = m_context.GetDeviceList([this](libusb_device* device) { libusb_device_descriptor device_descriptor; libusb_get_device_descriptor(device, &device_descriptor); - auto config_descriptor = LibusbUtils::MakeConfigDescriptor(device); - if (!config_descriptor) + auto [ret, config_descriptor] = LibusbUtils::MakeConfigDescriptor(device); + if (ret != LIBUSB_SUCCESS || !config_descriptor) { - ERROR_LOG_FMT(IOS_WIIMOTE, "Failed to get config descriptor for device {:04x}:{:04x}", - device_descriptor.idVendor, device_descriptor.idProduct); + ERROR_LOG_FMT(IOS_WIIMOTE, "Failed to get config descriptor for device {:04x}:{:04x}: {}", + device_descriptor.idVendor, device_descriptor.idProduct, + LibusbUtils::ErrorWrap(ret)); return true; } diff --git a/Source/Core/Core/IOS/USB/LibusbDevice.cpp b/Source/Core/Core/IOS/USB/LibusbDevice.cpp index 5d90585083..f46268a80b 100644 --- a/Source/Core/Core/IOS/USB/LibusbDevice.cpp +++ b/Source/Core/Core/IOS/USB/LibusbDevice.cpp @@ -36,7 +36,15 @@ LibusbDevice::LibusbDevice(Kernel& ios, libusb_device* device, static_cast(libusb_get_device_address(device))); for (u8 i = 0; i < descriptor.bNumConfigurations; ++i) - m_config_descriptors.emplace_back(LibusbUtils::MakeConfigDescriptor(m_device, i)); + { + auto [ret, config_descriptor] = LibusbUtils::MakeConfigDescriptor(m_device, i); + if (ret != LIBUSB_SUCCESS || !config_descriptor) + { + WARN_LOG_FMT(IOS_USB, "Failed to make config descriptor {} for {:04x}:{:04x}: {}", i, m_vid, + m_pid, LibusbUtils::ErrorWrap(ret)); + } + m_config_descriptors.emplace_back(std::move(config_descriptor)); + } } LibusbDevice::~LibusbDevice() diff --git a/Source/Core/Core/LibusbUtils.cpp b/Source/Core/Core/LibusbUtils.cpp index f716cc4884..1b1852dddd 100644 --- a/Source/Core/Core/LibusbUtils.cpp +++ b/Source/Core/Core/LibusbUtils.cpp @@ -115,14 +115,17 @@ int Context::GetDeviceList(GetDeviceListCallback callback) const return m_impl->GetDeviceList(std::move(callback)); } -ConfigDescriptor MakeConfigDescriptor(libusb_device* device, u8 config_num) +std::pair MakeConfigDescriptor(libusb_device* device, u8 config_num) { #if defined(__LIBUSB__) libusb_config_descriptor* descriptor = nullptr; - if (libusb_get_config_descriptor(device, config_num, &descriptor) == LIBUSB_SUCCESS) - return {descriptor, libusb_free_config_descriptor}; + const int ret = libusb_get_config_descriptor(device, config_num, &descriptor); + if (ret == LIBUSB_SUCCESS) + return {ret, ConfigDescriptor{descriptor, libusb_free_config_descriptor}}; +#else + const int ret = -1; #endif - return {nullptr, [](auto) {}}; + return {ret, ConfigDescriptor{nullptr, [](auto) {}}}; } const char* ErrorWrap::GetName() const diff --git a/Source/Core/Core/LibusbUtils.h b/Source/Core/Core/LibusbUtils.h index 4fe3c0289f..89fba398dd 100644 --- a/Source/Core/Core/LibusbUtils.h +++ b/Source/Core/Core/LibusbUtils.h @@ -6,6 +6,7 @@ #include #include #include +#include #include "Common/CommonTypes.h" @@ -39,7 +40,7 @@ private: }; using ConfigDescriptor = UniquePtr; -ConfigDescriptor MakeConfigDescriptor(libusb_device* device, u8 config_num = 0); +std::pair MakeConfigDescriptor(libusb_device* device, u8 config_num = 0); // Wrapper for libusb_error to be used with fmt. Note that we can't create a fmt::formatter // directly for libusb_error as it is a plain enum and most libusb functions actually return an From 5d301cc20639b13899a008799974f3fdabf48c42 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 12:46:53 -0700 Subject: [PATCH 189/659] BTReal: Log warnings when libusb calls fail --- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 77 +++++++++++++------ 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index 234c1ecc13..12941782a8 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -71,7 +71,9 @@ BluetoothRealDevice::~BluetoothRealDevice() { SendHCIResetCommand(); WaitForHCICommandComplete(HCI_CMD_RESET); - libusb_release_interface(m_handle, 0); + const int ret = libusb_release_interface(m_handle, 0); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_release_interface failed: {}", LibusbUtils::ErrorWrap(ret)); libusb_close(m_handle); libusb_unref_device(m_device); } @@ -101,12 +103,22 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) if (IsBluetoothDevice(descriptor) && IsWantedDevice(device_descriptor) && OpenDevice(device)) { unsigned char manufacturer[50] = {}, product[50] = {}, serial_number[50] = {}; - libusb_get_string_descriptor_ascii(m_handle, device_descriptor.iManufacturer, manufacturer, - sizeof(manufacturer)); - libusb_get_string_descriptor_ascii(m_handle, device_descriptor.iProduct, product, - sizeof(product)); - libusb_get_string_descriptor_ascii(m_handle, device_descriptor.iSerialNumber, serial_number, - sizeof(serial_number)); + const int manufacturer_ret = libusb_get_string_descriptor_ascii( + m_handle, device_descriptor.iManufacturer, manufacturer, sizeof(manufacturer)); + const int product_ret = libusb_get_string_descriptor_ascii( + m_handle, device_descriptor.iProduct, product, sizeof(product)); + const int serial_ret = libusb_get_string_descriptor_ascii( + m_handle, device_descriptor.iSerialNumber, serial_number, sizeof(serial_number)); + if (manufacturer_ret < LIBUSB_SUCCESS || product_ret < LIBUSB_SUCCESS || + serial_ret < LIBUSB_SUCCESS) + { + ERROR_LOG_FMT(IOS_WIIMOTE, + "Failed to get descriptor for device {:04x}:{:04x} (rev {:x}): {}/{}/{}", + device_descriptor.idVendor, device_descriptor.idProduct, + device_descriptor.bcdDevice, LibusbUtils::ErrorWrap(manufacturer_ret), + LibusbUtils::ErrorWrap(product_ret), LibusbUtils::ErrorWrap(serial_ret)); + return true; + } NOTICE_LOG_FMT(IOS_WIIMOTE, "Using device {:04x}:{:04x} (rev {:x}) for Bluetooth: {} {} {}", device_descriptor.idVendor, device_descriptor.idProduct, device_descriptor.bcdDevice, reinterpret_cast(manufacturer), @@ -150,7 +162,9 @@ std::optional BluetoothRealDevice::Close(u32 fd) { if (m_handle) { - libusb_release_interface(m_handle, 0); + const int ret = libusb_release_interface(m_handle, 0); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_release_interface failed: {}", LibusbUtils::ErrorWrap(ret)); libusb_close(m_handle); libusb_unref_device(m_device); m_handle = nullptr; @@ -211,7 +225,9 @@ std::optional BluetoothRealDevice::IOCtlV(const IOCtlVRequest& request }; PendingTransfer pending_transfer{std::move(cmd), std::move(buffer)}; m_current_transfers.emplace(transfer, std::move(pending_transfer)); - libusb_submit_transfer(transfer); + const int ret = libusb_submit_transfer(transfer); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_submit_transfer failed: {}", LibusbUtils::ErrorWrap(ret)); break; } // ACL data (incoming or outgoing) and incoming HCI events (respectively) @@ -261,7 +277,9 @@ std::optional BluetoothRealDevice::IOCtlV(const IOCtlVRequest& request transfer->user_data = this; PendingTransfer pending_transfer{std::move(cmd), std::move(buffer)}; m_current_transfers.emplace(transfer, std::move(pending_transfer)); - libusb_submit_transfer(transfer); + const int ret = libusb_submit_transfer(transfer); + if (ret != LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_submit_transfer failed: {}", LibusbUtils::ErrorWrap(ret)); break; } } @@ -363,7 +381,7 @@ void BluetoothRealDevice::WaitForHCICommandComplete(const u16 opcode) { const int ret = libusb_interrupt_transfer(m_handle, HCI_EVENT, buffer.data(), static_cast(buffer.size()), &actual_length, 20); - if (ret != 0 || actual_length < static_cast(sizeof(packet))) + if (ret != LIBUSB_SUCCESS || actual_length < static_cast(sizeof(packet))) continue; std::memcpy(&packet, buffer.data(), sizeof(packet)); if (packet.EventType == HCI_EVENT_COMMAND_COMPL && packet.Opcode == opcode) @@ -376,8 +394,12 @@ void BluetoothRealDevice::SendHCIResetCommand() u8 packet[3] = {}; const u16 payload[] = {HCI_CMD_RESET}; memcpy(packet, payload, sizeof(payload)); - libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, packet, sizeof(packet), TIMEOUT); - INFO_LOG_FMT(IOS_WIIMOTE, "Sent a reset command to adapter"); + const int ret = + libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, packet, sizeof(packet), TIMEOUT); + if (ret < LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_control_transfer failed: {}", LibusbUtils::ErrorWrap(ret)); + else + INFO_LOG_FMT(IOS_WIIMOTE, "Sent a reset command to adapter"); } void BluetoothRealDevice::SendHCIDeleteLinkKeyCommand() @@ -393,8 +415,11 @@ void BluetoothRealDevice::SendHCIDeleteLinkKeyCommand() payload.command.bdaddr = {}; payload.command.delete_all = true; - libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, reinterpret_cast(&payload), - static_cast(sizeof(payload)), TIMEOUT); + const int ret = + libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, reinterpret_cast(&payload), + static_cast(sizeof(payload)), TIMEOUT); + if (ret < LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_control_transfer failed: {}", LibusbUtils::ErrorWrap(ret)); } bool BluetoothRealDevice::SendHCIStoreLinkKeyCommand() @@ -431,8 +456,10 @@ bool BluetoothRealDevice::SendHCIStoreLinkKeyCommand() iterator += entry.second.size(); } - libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, packet.data(), - static_cast(packet.size()), TIMEOUT); + const int ret = libusb_control_transfer(m_handle, REQUEST_TYPE, 0, 0, 0, packet.data(), + static_cast(packet.size()), TIMEOUT); + if (ret < LIBUSB_SUCCESS) + WARN_LOG_FMT(IOS_WIIMOTE, "libusb_control_transfer failed: {}", LibusbUtils::ErrorWrap(ret)); return true; } @@ -572,10 +599,10 @@ bool BluetoothRealDevice::OpenDevice(libusb_device* device) { m_device = libusb_ref_device(device); const int ret = libusb_open(m_device, &m_handle); - if (ret != 0) + if (ret != LIBUSB_SUCCESS) { m_last_open_error = - Common::FmtFormatT("Failed to open Bluetooth device: {0}", libusb_error_name(ret)); + Common::FmtFormatT("Failed to open Bluetooth device: {0}", LibusbUtils::ErrorWrap(ret)); return false; } @@ -583,20 +610,22 @@ bool BluetoothRealDevice::OpenDevice(libusb_device* device) // https://lists.freebsd.org/pipermail/freebsd-usb/2016-March/014161.html #ifndef __FreeBSD__ int result = libusb_set_auto_detach_kernel_driver(m_handle, 1); - if (result != 0) + if (result != LIBUSB_SUCCESS) { result = libusb_detach_kernel_driver(m_handle, INTERFACE); - if (result < 0 && result != LIBUSB_ERROR_NOT_FOUND && result != LIBUSB_ERROR_NOT_SUPPORTED) + if (result != LIBUSB_SUCCESS && result != LIBUSB_ERROR_NOT_FOUND && + result != LIBUSB_ERROR_NOT_SUPPORTED) { m_last_open_error = Common::FmtFormatT( - "Failed to detach kernel driver for BT passthrough: {0}", libusb_error_name(result)); + "Failed to detach kernel driver for BT passthrough: {0}", LibusbUtils::ErrorWrap(result)); return false; } } #endif - if (libusb_claim_interface(m_handle, INTERFACE) < 0) + if (const int result2 = libusb_claim_interface(m_handle, INTERFACE); result2 != LIBUSB_SUCCESS) { - m_last_open_error = Common::GetStringT("Failed to claim interface for BT passthrough"); + m_last_open_error = Common::FmtFormatT("Failed to claim interface for BT passthrough: {0}", + LibusbUtils::ErrorWrap(result2)); return false; } From 83afaba785af8685756685472885c440897a2066 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 13:08:46 -0700 Subject: [PATCH 190/659] IOS/USB: Use LibusbUtils::ErrorWrap and LIBUSB_SUCCESS --- Source/Core/Core/IOS/USB/LibusbDevice.cpp | 33 ++++++++++++----------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Source/Core/Core/IOS/USB/LibusbDevice.cpp b/Source/Core/Core/IOS/USB/LibusbDevice.cpp index f46268a80b..e909169bf1 100644 --- a/Source/Core/Core/IOS/USB/LibusbDevice.cpp +++ b/Source/Core/Core/IOS/USB/LibusbDevice.cpp @@ -141,15 +141,15 @@ bool LibusbDevice::Attach() { NOTICE_LOG_FMT(IOS_USB, "[{:04x}:{:04x}] Opening device", m_vid, m_pid); const int ret = libusb_open(m_device, &m_handle); - if (ret != 0) + if (ret != LIBUSB_SUCCESS) { ERROR_LOG_FMT(IOS_USB, "[{:04x}:{:04x}] Failed to open: {}", m_vid, m_pid, - libusb_error_name(ret)); + LibusbUtils::ErrorWrap(ret)); m_handle = nullptr; return false; } } - if (ClaimAllInterfaces(DEFAULT_CONFIG_NUM) < 0) + if (ClaimAllInterfaces(DEFAULT_CONFIG_NUM) < LIBUSB_SUCCESS) return false; m_device_attached = true; return true; @@ -161,7 +161,7 @@ bool LibusbDevice::AttachAndChangeInterface(const u8 interface) return false; if (interface != m_active_interface) - return ChangeInterface(interface) == 0; + return ChangeInterface(interface) == LIBUSB_SUCCESS; return true; } @@ -182,7 +182,7 @@ int LibusbDevice::ChangeInterface(const u8 interface) INFO_LOG_FMT(IOS_USB, "[{:04x}:{:04x} {}] Changing interface to {}", m_vid, m_pid, m_active_interface, interface); m_active_interface = interface; - return 0; + return LIBUSB_SUCCESS; } int LibusbDevice::SetAltSetting(const u8 alt_setting) @@ -216,15 +216,15 @@ int LibusbDevice::SubmitTransfer(std::unique_ptr cmd) if (static_cast(cmd->index) != m_active_interface) { const int ret = ChangeInterface(static_cast(cmd->index)); - if (ret < 0) + if (ret < LIBUSB_SUCCESS) { ERROR_LOG_FMT(IOS_USB, "[{:04x}:{:04x} {}] Failed to change interface to {}: {}", m_vid, - m_pid, m_active_interface, cmd->index, libusb_error_name(ret)); + m_pid, m_active_interface, cmd->index, LibusbUtils::ErrorWrap(ret)); return ret; } } const int ret = SetAltSetting(static_cast(cmd->value)); - if (ret == 0) + if (ret == LIBUSB_SUCCESS) m_ios.EnqueueIPCReply(cmd->ios_request, cmd->length); return ret; } @@ -234,7 +234,7 @@ int LibusbDevice::SubmitTransfer(std::unique_ptr cmd) m_vid, m_pid, m_active_interface, cmd->index, cmd->value); ReleaseAllInterfacesForCurrentConfig(); const int ret = libusb_set_configuration(m_handle, cmd->value); - if (ret == 0) + if (ret == LIBUSB_SUCCESS) { ClaimAllInterfaces(cmd->value); m_ios.EnqueueIPCReply(cmd->ios_request, cmd->length); @@ -376,7 +376,7 @@ void LibusbDevice::TransferEndpoint::HandleTransfer(libusb_transfer* transfer, const std::unique_ptr buffer(transfer->buffer); const auto& cmd = *iterator->second.get(); const auto* device = static_cast(transfer->user_data); - s32 return_value = 0; + s32 return_value = LIBUSB_SUCCESS; switch (transfer->status) { case LIBUSB_TRANSFER_COMPLETED: @@ -425,7 +425,7 @@ static int DoForEachInterface(const Configs& configs, u8 config_num, Function ac for (u8 i = 0; i < configs[config_num]->bNumInterfaces; ++i) { ret = action(i); - if (ret < 0) + if (ret < LIBUSB_SUCCESS) break; } return ret; @@ -435,15 +435,16 @@ int LibusbDevice::ClaimAllInterfaces(u8 config_num) const { const int ret = DoForEachInterface(m_config_descriptors, config_num, [this](u8 i) { const int ret2 = libusb_detach_kernel_driver(m_handle, i); - if (ret2 < 0 && ret2 != LIBUSB_ERROR_NOT_FOUND && ret2 != LIBUSB_ERROR_NOT_SUPPORTED) + if (ret2 < LIBUSB_SUCCESS && ret2 != LIBUSB_ERROR_NOT_FOUND && + ret2 != LIBUSB_ERROR_NOT_SUPPORTED) { ERROR_LOG_FMT(IOS_USB, "[{:04x}:{:04x}] Failed to detach kernel driver: {}", m_vid, m_pid, - libusb_error_name(ret2)); + LibusbUtils::ErrorWrap(ret2)); return ret2; } return libusb_claim_interface(m_handle, i); }); - if (ret < 0) + if (ret < LIBUSB_SUCCESS) { ERROR_LOG_FMT(IOS_USB, "[{:04x}:{:04x}] Failed to claim all interfaces (configuration {})", m_vid, m_pid, config_num); @@ -456,7 +457,7 @@ int LibusbDevice::ReleaseAllInterfaces(u8 config_num) const const int ret = DoForEachInterface(m_config_descriptors, config_num, [this](u8 i) { return libusb_release_interface(m_handle, i); }); - if (ret < 0 && ret != LIBUSB_ERROR_NO_DEVICE && ret != LIBUSB_ERROR_NOT_FOUND) + if (ret < LIBUSB_SUCCESS && ret != LIBUSB_ERROR_NO_DEVICE && ret != LIBUSB_ERROR_NOT_FOUND) { ERROR_LOG_FMT(IOS_USB, "[{:04x}:{:04x}] Failed to release all interfaces (configuration {})", m_vid, m_pid, config_num); @@ -468,7 +469,7 @@ int LibusbDevice::ReleaseAllInterfacesForCurrentConfig() const { int config_num; const int get_config_ret = libusb_get_configuration(m_handle, &config_num); - if (get_config_ret < 0) + if (get_config_ret < LIBUSB_SUCCESS) return get_config_ret; return ReleaseAllInterfaces(config_num); } From 27772e01d9e263e172daf7adb379621b0499fcf9 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 15:27:55 -0700 Subject: [PATCH 191/659] GCAdapter: Compare with LIBUSB_SUCCESS instead of 0 --- Source/Core/InputCommon/GCAdapter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 993e032bf3..345559c7ac 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -71,7 +71,7 @@ enum ADAPTER_DETECTED = 1, }; -// Current adapter status: detected/not detected/in error (holds the error code) +// Current adapter status: detected/not detected/in error (libusb error codes are negative) static std::atomic s_status = NO_ADAPTER_DETECTED; static libusb_device_handle* s_handle = nullptr; #elif GCADAPTER_USE_ANDROID_IMPLEMENTATION @@ -539,7 +539,8 @@ static bool CheckDeviceAccess(libusb_device* device) // We assume user is using GCAdapterDriver and therefor don't want to detach anything #if !defined(__APPLE__) ret = libusb_detach_kernel_driver(s_handle, 0); - detach_failed = ret < 0 && ret != LIBUSB_ERROR_NOT_FOUND && ret != LIBUSB_ERROR_NOT_SUPPORTED; + detach_failed = + ret < LIBUSB_SUCCESS && ret != LIBUSB_ERROR_NOT_FOUND && ret != LIBUSB_ERROR_NOT_SUPPORTED; #endif if (detach_failed) { @@ -557,7 +558,7 @@ static bool CheckDeviceAccess(libusb_device* device) // This call makes Nyko-brand (and perhaps other) adapters work. // However it returns LIBUSB_ERROR_PIPE with Mayflash adapters. const int transfer = libusb_control_transfer(s_handle, 0x21, 11, 0x0001, 0, nullptr, 0, 1000); - if (transfer < 0) + if (transfer < LIBUSB_SUCCESS) { WARN_LOG_FMT(CONTROLLERINTERFACE, "libusb_control_transfer failed: {}", LibusbUtils::ErrorWrap(transfer)); From a93babb1b3260b0f3b1ff7fae408338544ad2c37 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 8 Jun 2022 20:43:45 -0700 Subject: [PATCH 192/659] lint: use git.exe if the source resides on v9fs speedup for running script under wsl2 when sources are mounted from host --- Tools/lint.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Tools/lint.sh b/Tools/lint.sh index 51ea86d595..0f6f37f859 100755 --- a/Tools/lint.sh +++ b/Tools/lint.sh @@ -4,7 +4,14 @@ set -euo pipefail -if ! [ -x "$(command -v git)" ]; then +# use Windows' git when working under path mounted from host on wsl2 +# inspired by https://markentier.tech/posts/2020/10/faster-git-under-wsl2/#solution +GIT=git +if [ "$(stat --file-system --format=%T `pwd -P`)" == "v9fs" ]; then + GIT=git.exe +fi + +if ! [ -x "$(command -v $GIT)" ]; then echo >&2 "error: git is not installed" exit 1 fi @@ -55,7 +62,7 @@ if [ $FORCE -eq 0 ]; then fi did_java_setup=0 -JAVA_CODESTYLE_FILE="./$(git rev-parse --show-cdup)/Source/Android/code-style-java.xml" +JAVA_CODESTYLE_FILE="./$($GIT rev-parse --show-cdup)/Source/Android/code-style-java.xml" java_temp_dir="" function java_setup() { @@ -77,13 +84,13 @@ fail=0 COMMIT=${1:---cached} # Get modified files (must be on own line for exit-code handling) -modified_files=$(git diff --name-only --diff-filter=ACMRTUXB $COMMIT) +modified_files=$($GIT diff --name-only --diff-filter=ACMRTUXB $COMMIT) function java_check() { "${ANDROID_STUDIO_ROOT}/bin/format.sh" -s "${JAVA_CODESTYLE_FILE}" -R "${java_temp_dir}" >/dev/null # ignore 'added'/'deleted' files, we copied only files of interest to the tmpdir - d=$(git diff --diff-filter=ad . "${java_temp_dir}" || true) + d=$($GIT diff --diff-filter=ad . "${java_temp_dir}" || true) if ! [ -z "${d}" ]; then echo "!!! Java code is not compliant to coding style, here is the fix:" echo "${d}" From a59a3631c8bf2a096fdbd8125fce8eaa1749c91f Mon Sep 17 00:00:00 2001 From: JMC47 Date: Thu, 9 Jun 2022 01:01:11 -0400 Subject: [PATCH 193/659] Add F-Zero AX Gecko Codes to F-Zero GX --- Data/Sys/GameSettings/GFZE01.ini | 86 ++++++++++++++++++++++++++++++++ Data/Sys/GameSettings/GFZJ01.ini | 47 +++++++++++++++++ Data/Sys/GameSettings/GFZP01.ini | 86 ++++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+) diff --git a/Data/Sys/GameSettings/GFZE01.ini b/Data/Sys/GameSettings/GFZE01.ini index 603900eb67..2164aa6938 100644 --- a/Data/Sys/GameSettings/GFZE01.ini +++ b/Data/Sys/GameSettings/GFZE01.ini @@ -31,3 +31,89 @@ $All Vehicles Unlocked 420030C8 0002FFFF 420030C8 0003FFFF 840030C8 FFDC6F00 + +[Gecko] +$Activate AX Mode (Version 8) [Ralf] +06003F30 00000284 +818D831C 280C0000 +41820274 3C6C000B +3863FADC 3883000C +38A0000C 4BFFF5F5 +3CAC0019 8085D550 +64844001 9085D550 +3CAC0018 BBC30040 +BFC511DC 3C6C0010 +A0032A86 280000A4 +4082000C 380000A2 +B0032A86 380000C0 +98035D26 A0A32A7E +3C006000 280500AD +4082000C 3C8C0033 +9004DE1C 28050010 +408200CC 3C630022 +90037B90 3C630003 +3800002A B003C754 +3800002C B003C758 +38000029 B003C778 +3800002B B003C77C +3C6C0034 3C006000 +9003CE94 3C803C00 +60803FA0 9003D000 +60803FCC 9003D008 +3C809001 608000D0 +9003D004 608000D4 +9003D00C 3C004800 +6000010C 9003D010 +3C003CE0 60004323 +9003D024 3C0090E1 +600000C8 9003D054 +3C003800 6000007F +9003D11C 38003F40 +B003D122 3C009061 +600000EC 9003D124 +3C804BFF 6080FEEC +9003D128 6080F9E8 +9003D478 380000D7 +98035817 3800002C +9803582B 280500AC +40820054 3C8C0032 +3C003C60 60008000 +90046E44 3C003863 +60003F1E 90046E48 +3C003806 60000001 +90046E54 3C007000 +6000FFFE 90046E5C +3C0080ED 60008A9C +90044A64 3C8C0033 +3C00809F 600032C0 +9004B5D0 280500B0 +40820010 3C8C0033 +80044E04 900D8A9C +2805009C 40820038 +3C6C0032 38000002 +98034FBB 9803509B +980351A7 980352DB +980353B3 3800000E +98034FFB 980350DF +980351E7 9803531B +980353F7 3C8C000C +38845404 38640028 +38A00018 4BFFF415 +38000001 980C0133 +3C6CFFF8 3C003800 +6000000D 9003FB50 +3C808000 80043F24 +28000000 4082001C +3C00000B 6000002E +90043F20 3C000039 +6000001D 90043F24 +3C6C0007 A0043F20 +B0030CEE A0043F22 +B0030CF6 A0043F24 +B0030CFE 38003860 +B0030D04 A0043F26 +B0030D06 3C6C0009 +3C004E80 60000020 +90037428 80010014 +48016DF4 00000000 +0401AFA0 4BFE8F90 diff --git a/Data/Sys/GameSettings/GFZJ01.ini b/Data/Sys/GameSettings/GFZJ01.ini index 8a94057d4f..84e1e2f9e6 100644 --- a/Data/Sys/GameSettings/GFZJ01.ini +++ b/Data/Sys/GameSettings/GFZJ01.ini @@ -15,3 +15,50 @@ $Make Save Copyable 04C31104 981C0034 04C31108 38000000 04C3110C 4B400410 + +[Gecko] +$ F-Zero AX (Version 4) [Ralf, Nekokabu] +04004930 818D833C +04004934 280C0000 +04004938 4182009C +0400493C 3CAC0019 +04004940 80859ea8 +04004944 64844001 +04004948 90859ea8 +0400494C 3C6C000B +04004950 3863DDBc +04004954 3883000C +04004958 38A0000C +0400495C 4BFFEBE5 +04004960 3C6C0010 +04004964 A003F3FE +04004968 280000A4 +0400496C 4082000C +04004970 380000A2 +04004974 B003F3FE +04004978 380000C0 +0400497C 9803269E +04004980 3C8C000C +04004984 388435E4 +04004988 38640028 +0400498C 38A00018 +04004990 4BFFEBB1 +04004994 80640044 +04004998 28030000 +0400499C 41820018 +040049A0 80830038 +040049A4 28043720 +040049A8 4082000C +040049AC 38800000 +040049B0 9083002C +040049B4 3800FFFF +040049B8 3C6C0018 +040049BC 9003DB34 +040049C0 9003DB34 +040049C4 3C6CFFF8 +040049C8 3C003800 +040049CC 6000000D +040049D0 90030eb4 +040049D4 7FE3FB78 +040049D8 480165C0 +0401AF94 4BFE999C diff --git a/Data/Sys/GameSettings/GFZP01.ini b/Data/Sys/GameSettings/GFZP01.ini index 47197de8d2..e1616666bf 100644 --- a/Data/Sys/GameSettings/GFZP01.ini +++ b/Data/Sys/GameSettings/GFZP01.ini @@ -15,3 +15,89 @@ $Make Save Copyable 04C31104 981C0034 04C31108 38000000 04C3110C 4B400410 + +[Gecko] +$F-Zero AX (Version 8) [Ralf] +06003F30 00000288 +818D8364 280C0000 +41820278 3C6C000B +38630640 3883000C +38A0000C 4BFFF5F5 +3CAC0019 80857E44 +64844001 90857E44 +BBC30040 BFC5BAD0 +3C6C0011 A003C662 +280000A4 4082000C +380000A2 B003C662 +380000C0 9803F91A +A0A3C65A 3C006000 +280500AE 4082000C +3C8C002F 90042A10 +28050010 408200C8 +3C63001E 9003C784 +3C630002 3800002A +B0031848 3800002C +B003184C 38000029 +B003186C 3800002B +B0031870 3C6C0030 +3C006000 90031AA8 +3C003C00 60003FA0 +90031C14 3C009001 +600000D0 90031C18 +3C003C00 60003FCC +90031C1C 3C009001 +600000D4 90031C20 +3C004800 6000010C +90031C24 3C003CE0 +60004323 90031C38 +3C0090E1 600000C8 +90031C68 3C003800 +6000007F 90031D30 +38003F40 B0031D36 +3C009061 600000EC +90031D38 3C004BFF +6000FEEC 90031D3C +3C004BFF 6000F9E8 +9003208C 280500AD +40820050 3C8C002F +3C003C60 60008000 +9004BA38 3C003863 +60003F1E 9004BA3C +3C003806 60000001 +9004BA48 3C007000 +6000FFFE 9004BA50 +3C0080ED 60008B1C +90049658 3C00809F +600032C0 900401C4 +280500B1 40820010 +3C8C0030 800499F8 +900D8B1C 2805009C +40820040 3C6C002F +38000002 98039C97 +98039DCF 98039F9F +9803A12B 9803A21B +9803A8EF 3800000E +98039CD7 98039E13 +98039FDF 9803A16B +9803A25F 9803A933 +3C8C000C 38846B80 +38640028 38A00018 +4BFFF419 38000001 +980C0133 38000000 +900D8338 3C6CFFF8 +3C003800 6000000D +9003F958 3C808000 +80043F24 28000000 +4082001C 3C00000B +6000002E 90043F20 +3C000039 6000001D +90043F24 3C6C0007 +A0043F20 B0030E42 +A0043F22 B0030E4A +A0043F24 B0030E52 +38003860 B0030E58 +A0043F26 B0030E5A +3C6C0009 3C004E80 +60000020 90037ACC +80010014 48017750 +0401B900 4BFE8630 From 27ed2a99a0699f0b6e4ebcfbc315caa5a7cd9096 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 6 Jun 2022 19:11:02 +0200 Subject: [PATCH 194/659] JitArm64: Refactor EmitBackpatchRoutine parameters, part 1 --- Source/Core/Core/PowerPC/JitArm64/Jit.h | 35 +++++++-- .../PowerPC/JitArm64/JitArm64_BackPatch.cpp | 8 +- .../PowerPC/JitArm64/JitArm64_LoadStore.cpp | 23 +++--- .../JitArm64/JitArm64_LoadStoreFloating.cpp | 14 ++-- .../JitArm64/JitArm64_LoadStorePaired.cpp | 4 +- Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp | 76 +++++++++---------- 6 files changed, 93 insertions(+), 67 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index e979e3a0cc..e89c2b1a9b 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -215,10 +215,28 @@ protected: // Dump a memory range of code void DumpCode(const u8* start, const u8* end); + // This enum is used for selecting an implementation of EmitBackpatchRoutine. + // + // The below descriptions of each enum entry apply when jo.fastmem_arena is true. + // If jo.fastmem_arena is false, the slow C++ code is always called instead. + enum class MemAccessMode + { + // Always calls the slow C++ code. For performance reasons, should generally only be used if + // the guest address is known in advance and IsOptimizableRAMAddress returns false for it. + AlwaysSafe, + // Only emits fast access code. Must only be used if the guest address is known in advance + // and IsOptimizableRAMAddress returns true for it, otherwise Dolphin will likely crash! + AlwaysUnsafe, + // Best in most cases. Tries to run fast access code, and if that fails, uses backpatching to + // replace the code with a call to the slow C++ code. + Auto, + }; + // This is the core routine for accessing emulated memory, with support for - // many different kinds of loads and stores as well as fastmem backpatching. + // many different kinds of loads and stores as well as fastmem/backpatching. // // Registers used: + // // addr scratch // Store: X1 X0 // Load: X0 @@ -226,15 +244,18 @@ protected: // Store float: X1 Q0 // Load float: X0 // - // If fastmem && !do_farcode, the addr argument can be any register. + // If using MemAccessMode::AlwaysUnsafe, the addr argument can be any register. // Otherwise it must be the register listed in the table above. // // Additional scratch registers are used in the following situations: - // fastmem && do_farcode && emitting_routine: X2 - // fastmem && do_farcode && emitting_routine && (flags & BackPatchInfo::FLAG_STORE): X0 - // fastmem && do_farcode && emitting_routine && !(flags & BackPatchInfo::FLAG_STORE): X3 - // !fastmem || do_farcode: X30 (plus lots more unless you set gprs_to_push and fprs_to_push) - void EmitBackpatchRoutine(u32 flags, bool fastmem, bool do_farcode, Arm64Gen::ARM64Reg RS, + // + // mode == Auto && emitting_routine: X2 + // mode == Auto && emitting_routine && (flags & BackPatchInfo::FLAG_STORE): X0 + // mode == Auto && emitting_routine && !(flags & BackPatchInfo::FLAG_STORE): X3 + // + // mode != AlwaysUnsafe || !jo.fastmem_arena: + // X30 (plus most other registers, unless marked in gprs_to_push and fprs_to_push) + void EmitBackpatchRoutine(u32 flags, MemAccessMode mode, Arm64Gen::ARM64Reg RS, Arm64Gen::ARM64Reg addr, BitSet32 gprs_to_push = BitSet32(0), BitSet32 fprs_to_push = BitSet32(0), bool emitting_routine = false); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index 5c68e12338..591ad2a897 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -54,12 +54,16 @@ void JitArm64::DoBacktrace(uintptr_t access_address, SContext* ctx) ERROR_LOG_FMT(DYNA_REC, "Full block: {}", pc_memory); } -void JitArm64::EmitBackpatchRoutine(u32 flags, bool fastmem, bool do_farcode, ARM64Reg RS, - ARM64Reg addr, BitSet32 gprs_to_push, BitSet32 fprs_to_push, +void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, ARM64Reg addr, + BitSet32 gprs_to_push, BitSet32 fprs_to_push, bool emitting_routine) { const u32 access_size = BackPatchInfo::GetFlagSize(flags); + const bool fastmem = jo.fastmem_arena && mode != MemAccessMode::AlwaysSafe; + const bool do_farcode = jo.fastmem_arena && (mode == MemAccessMode::Auto || + mode == MemAccessMode::AutoWithoutBackpatch); + bool in_far_code = false; const u8* fastmem_start = GetCodePtr(); std::optional slowmem_fixup; diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp index 2781ba3f65..0adfcae6f3 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp @@ -129,10 +129,11 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o if (is_immediate) mmio_address = PowerPC::IsOptimizableMMIOAccess(imm_addr, access_size); - if (jo.fastmem_arena && is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) + if (is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, true, false, dest_reg, XA, BitSet32(0), BitSet32(0)); + EmitBackpatchRoutine(flags, MemAccessMode::AlwaysUnsafe, dest_reg, XA, regs_in_use, + fprs_in_use); } else if (mmio_address) { @@ -142,7 +143,7 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o else { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, dest_reg, XA, regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, dest_reg, XA, regs_in_use, fprs_in_use); } gpr.BindToRegister(dest, false, true); @@ -290,10 +291,10 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s js.fifoBytesSinceCheck += accessSize >> 3; } - else if (jo.fastmem_arena && is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) + else if (is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, true, false, RS, XA, BitSet32(0), BitSet32(0)); + EmitBackpatchRoutine(flags, MemAccessMode::AlwaysUnsafe, RS, XA, regs_in_use, fprs_in_use); } else if (mmio_address) { @@ -303,7 +304,7 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s else { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, RS, XA, regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, RS, XA, regs_in_use, fprs_in_use); } if (update && !early_update) @@ -526,8 +527,8 @@ void JitArm64::lmw(UGeckoInstruction inst) if (!jo.memcheck) regs_in_use[DecodeReg(dest_reg)] = 0; - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, dest_reg, EncodeRegTo64(addr_reg), - regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, dest_reg, EncodeRegTo64(addr_reg), regs_in_use, + fprs_in_use); gpr.BindToRegister(i, false, true); ASSERT(dest_reg == gpr.R(i)); @@ -574,8 +575,8 @@ void JitArm64::stmw(UGeckoInstruction inst) if (i == 31) regs_in_use[DecodeReg(addr_reg)] = 0; - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, src_reg, EncodeRegTo64(addr_reg), - regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, src_reg, EncodeRegTo64(addr_reg), regs_in_use, + fprs_in_use); if (i != 31) ADD(addr_reg, addr_reg, 4); @@ -839,7 +840,7 @@ void JitArm64::dcbz(UGeckoInstruction inst) BitSet32 fprs_to_push = fpr.GetCallerSavedUsed(); gprs_to_push[DecodeReg(ARM64Reg::W0)] = 0; - EmitBackpatchRoutine(BackPatchInfo::FLAG_ZERO_256, jo.fastmem, jo.fastmem, ARM64Reg::W0, + EmitBackpatchRoutine(BackPatchInfo::FLAG_ZERO_256, MemAccessMode::Auto, ARM64Reg::W0, EncodeRegTo64(addr_reg), gprs_to_push, fprs_to_push); if (using_dcbz_hack) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp index 9a0326e27b..8845b25fa4 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp @@ -170,13 +170,13 @@ void JitArm64::lfXX(UGeckoInstruction inst) if (!jo.memcheck) fprs_in_use[DecodeReg(VD)] = 0; - if (jo.fastmem_arena && is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) + if (is_immediate && PowerPC::IsOptimizableRAMAddress(imm_addr)) { - EmitBackpatchRoutine(flags, true, false, VD, XA, BitSet32(0), BitSet32(0)); + EmitBackpatchRoutine(flags, MemAccessMode::AlwaysUnsafe, VD, XA, regs_in_use, fprs_in_use); } else { - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, VD, XA, regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, VD, XA, regs_in_use, fprs_in_use); } const ARM64Reg VD_again = fpr.RW(inst.FD, type, true); @@ -389,21 +389,21 @@ void JitArm64::stfXX(UGeckoInstruction inst) STR(IndexType::Unsigned, ARM64Reg::X0, PPC_REG, PPCSTATE_OFF(gather_pipe_ptr)); js.fifoBytesSinceCheck += accessSize >> 3; } - else if (jo.fastmem_arena && PowerPC::IsOptimizableRAMAddress(imm_addr)) + else if (PowerPC::IsOptimizableRAMAddress(imm_addr)) { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, true, false, V0, XA, BitSet32(0), BitSet32(0)); + EmitBackpatchRoutine(flags, MemAccessMode::AlwaysUnsafe, V0, XA, regs_in_use, fprs_in_use); } else { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, false, false, V0, XA, regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::AlwaysSafe, V0, XA, regs_in_use, fprs_in_use); } } else { set_addr_reg_if_needed(); - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, V0, XA, regs_in_use, fprs_in_use); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, V0, XA, regs_in_use, fprs_in_use); } if (update && !early_update) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index 4fa015dcd4..0960bcf236 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -90,7 +90,7 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) if (!w) flags |= BackPatchInfo::FLAG_PAIR; - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, VS, EncodeRegTo64(addr_reg), gprs_in_use, + EmitBackpatchRoutine(flags, MemAccessMode::Auto, VS, EncodeRegTo64(addr_reg), gprs_in_use, fprs_in_use); } else @@ -234,7 +234,7 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) if (!w) flags |= BackPatchInfo::FLAG_PAIR; - EmitBackpatchRoutine(flags, jo.fastmem, jo.fastmem, VS, EncodeRegTo64(addr_reg), gprs_in_use, + EmitBackpatchRoutine(flags, MemAccessMode::Auto, VS, EncodeRegTo64(addr_reg), gprs_in_use, fprs_in_use); } else diff --git a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp index 1b93a275c6..a506ce02e1 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp @@ -510,7 +510,7 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_32; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push & ~BitSet32{1}, fprs_to_push, true); RET(ARM64Reg::X30); @@ -520,8 +520,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.UXTL(8, ARM64Reg::D0, ARM64Reg::D0); float_emit.UXTL(16, ARM64Reg::D0, ARM64Reg::D0); @@ -538,8 +538,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.SXTL(8, ARM64Reg::D0, ARM64Reg::D0); float_emit.SXTL(16, ARM64Reg::D0, ARM64Reg::D0); @@ -556,8 +556,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.UXTL(16, ARM64Reg::D0, ARM64Reg::D0); float_emit.UCVTF(32, ARM64Reg::D0, ARM64Reg::D0); @@ -573,8 +573,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.SXTL(16, ARM64Reg::D0, ARM64Reg::D0); float_emit.SCVTF(32, ARM64Reg::D0, ARM64Reg::D0); @@ -591,7 +591,7 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_32; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push & ~BitSet32{1}, fprs_to_push, true); RET(ARM64Reg::X30); @@ -601,8 +601,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.UXTL(8, ARM64Reg::D0, ARM64Reg::D0); float_emit.UXTL(16, ARM64Reg::D0, ARM64Reg::D0); @@ -619,8 +619,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.SXTL(8, ARM64Reg::D0, ARM64Reg::D0); float_emit.SXTL(16, ARM64Reg::D0, ARM64Reg::D0); @@ -637,8 +637,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.UXTL(16, ARM64Reg::D0, ARM64Reg::D0); float_emit.UCVTF(32, ARM64Reg::D0, ARM64Reg::D0); @@ -654,8 +654,8 @@ void JitArm64::GenerateQuantizedLoads() constexpr u32 flags = BackPatchInfo::FLAG_LOAD | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); float_emit.SXTL(16, ARM64Reg::D0, ARM64Reg::D0); float_emit.SCVTF(32, ARM64Reg::D0, ARM64Reg::D0); @@ -718,8 +718,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_32; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -737,8 +737,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -756,8 +756,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -774,8 +774,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -792,8 +792,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_PAIR | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -803,8 +803,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_32; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -822,8 +822,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -841,8 +841,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_8; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -859,8 +859,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } @@ -877,8 +877,8 @@ void JitArm64::GenerateQuantizedStores() constexpr u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_16; - EmitBackpatchRoutine(flags, jo.fastmem_arena, jo.fastmem_arena, ARM64Reg::D0, addr_reg, - gprs_to_push, fprs_to_push, true); + EmitBackpatchRoutine(flags, MemAccessMode::Auto, ARM64Reg::D0, addr_reg, gprs_to_push, + fprs_to_push, true); RET(ARM64Reg::X30); } From 63283dcc72be41f69f042e28351dcf9c4efc4129 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 6 Jun 2022 19:17:36 +0200 Subject: [PATCH 195/659] JitArm64: Refactor EmitBackpatchRoutine parameters, part 2 --- .../Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index 591ad2a897..e5ce801175 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -60,17 +60,16 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, { const u32 access_size = BackPatchInfo::GetFlagSize(flags); - const bool fastmem = jo.fastmem_arena && mode != MemAccessMode::AlwaysSafe; - const bool do_farcode = jo.fastmem_arena && (mode == MemAccessMode::Auto || - mode == MemAccessMode::AutoWithoutBackpatch); + const bool emit_fastmem = jo.fastmem_arena && mode != MemAccessMode::AlwaysSafe; + const bool emit_slowmem = !jo.fastmem_arena || mode != MemAccessMode::AlwaysUnsafe; bool in_far_code = false; const u8* fastmem_start = GetCodePtr(); std::optional slowmem_fixup; - if (fastmem) + if (emit_fastmem) { - if (do_farcode && emitting_routine) + if (emit_slowmem && emitting_routine) { const ARM64Reg temp1 = flags & BackPatchInfo::FLAG_STORE ? ARM64Reg::W0 : ARM64Reg::W3; const ARM64Reg temp2 = ARM64Reg::W2; @@ -126,11 +125,11 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, } const u8* fastmem_end = GetCodePtr(); - if (!fastmem || do_farcode) + if (emit_slowmem) { const bool memcheck = jo.memcheck && !emitting_routine; - if (fastmem && do_farcode) + if (emit_fastmem) { in_far_code = true; SwitchToFarCode(); From bcc64a05b36e085ae6afedbd97d0d61427c2a44e Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 6 Jun 2022 15:39:41 +0200 Subject: [PATCH 196/659] Memmap: Remove outdated comments for 32-bit --- Source/Core/Core/HW/Memmap.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/HW/Memmap.h b/Source/Core/Core/HW/Memmap.h index 14ed19291f..5a15a1e343 100644 --- a/Source/Core/Core/HW/Memmap.h +++ b/Source/Core/Core/HW/Memmap.h @@ -21,16 +21,13 @@ class Mapping; namespace Memory { // Base is a pointer to the base of the memory map. Yes, some MMU tricks -// are used to set up a full GC or Wii memory map in process memory. on -// 32-bit, you have to mask your offsets with 0x3FFFFFFF. This means that -// some things are mirrored too many times, but eh... it works. - +// are used to set up a full GC or Wii memory map in process memory. // In 64-bit, this might point to "high memory" (above the 32-bit limit), // so be sure to load it into a 64-bit register. extern u8* physical_base; extern u8* logical_base; -// These are guaranteed to point to "low memory" addresses (sub-32-bit). +// The actual memory used for backing the memory map. extern u8* m_pRAM; extern u8* m_pEXRAM; extern u8* m_pL1Cache; From e4f7994cf98df9c8033d7fddeb9ad1419d0db024 Mon Sep 17 00:00:00 2001 From: JMC47 Date: Thu, 9 Jun 2022 16:30:13 -0400 Subject: [PATCH 197/659] Add Medium Texture Cache to RKA INI Ultimate Shooting Collection needs Medium Texture Cache for some text to render correctly. --- Data/Sys/GameSettings/RKA.ini | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Data/Sys/GameSettings/RKA.ini b/Data/Sys/GameSettings/RKA.ini index bbbb2a36d2..b157616dfd 100644 --- a/Data/Sys/GameSettings/RKA.ini +++ b/Data/Sys/GameSettings/RKA.ini @@ -1,4 +1,18 @@ # RKAE6K, RKAJMS, RKAK8M, RKAP6K - Ultimate Shooting Collection +[Core] +# Values set here will override the main Dolphin settings. + +[OnLoad] +# Add memory patches to be loaded once on boot here. + +[OnFrame] +# Add memory patches to be applied every frame here. + +[ActionReplay] +# Add action replay cheats here. + [Video_Settings] SuggestedAspectRatio = 2 +SafeTextureCacheColorSamples = 512 + From dcad3ec892f02a703eb732c5679125291e7f0033 Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 10 Nov 2019 21:52:52 +0100 Subject: [PATCH 198/659] Allow to interrupt shader precompilation by stopping emulation --- .../Core/VideoCommon/AsyncShaderCompiler.cpp | 20 +++++++++---------- Source/Core/VideoCommon/AsyncShaderCompiler.h | 6 ++---- Source/Core/VideoCommon/ShaderCache.cpp | 7 +++++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Source/Core/VideoCommon/AsyncShaderCompiler.cpp b/Source/Core/VideoCommon/AsyncShaderCompiler.cpp index 7e13168f69..7e6f960d7f 100644 --- a/Source/Core/VideoCommon/AsyncShaderCompiler.cpp +++ b/Source/Core/VideoCommon/AsyncShaderCompiler.cpp @@ -9,6 +9,8 @@ #include "Common/Logging/Log.h" #include "Common/Thread.h" +#include "Core/Core.h" + namespace VideoCommon { AsyncShaderCompiler::AsyncShaderCompiler() @@ -65,17 +67,11 @@ bool AsyncShaderCompiler::HasCompletedWork() return !m_completed_work.empty(); } -void AsyncShaderCompiler::WaitUntilCompletion() -{ - while (HasPendingWork()) - std::this_thread::sleep_for(std::chrono::milliseconds(1)); -} - -void AsyncShaderCompiler::WaitUntilCompletion( +bool AsyncShaderCompiler::WaitUntilCompletion( const std::function& progress_callback) { if (!HasPendingWork()) - return; + return true; // Wait a second before opening a progress dialog. // This way, if the operation completes quickly, we don't annoy the user. @@ -85,11 +81,11 @@ void AsyncShaderCompiler::WaitUntilCompletion( { std::this_thread::sleep_for(std::chrono::milliseconds(CHECK_INTERVAL)); if (!HasPendingWork()) - return; + return true; } // Grab the number of pending items. We use this to work out how many are left. - size_t total_items = 0; + size_t total_items; { // Safe to hold both locks here, since nowhere else does. std::lock_guard pending_guard(m_pending_work_lock); @@ -100,6 +96,9 @@ void AsyncShaderCompiler::WaitUntilCompletion( // Update progress while the compiles complete. for (;;) { + if (Core::GetState() == Core::State::Stopping) + return false; + size_t remaining_items; { std::lock_guard pending_guard(m_pending_work_lock); @@ -111,6 +110,7 @@ void AsyncShaderCompiler::WaitUntilCompletion( progress_callback(total_items - remaining_items, total_items); std::this_thread::sleep_for(CHECK_INTERVAL); } + return true; } bool AsyncShaderCompiler::StartWorkerThreads(u32 num_worker_threads) diff --git a/Source/Core/VideoCommon/AsyncShaderCompiler.h b/Source/Core/VideoCommon/AsyncShaderCompiler.h index 15f46f1a0a..8773891d61 100644 --- a/Source/Core/VideoCommon/AsyncShaderCompiler.h +++ b/Source/Core/VideoCommon/AsyncShaderCompiler.h @@ -49,11 +49,9 @@ public: bool HasPendingWork(); bool HasCompletedWork(); - // Simpler version without progress updates. - void WaitUntilCompletion(); - // Calls progress_callback periodically, with completed_items, and total_items. - void WaitUntilCompletion(const std::function& progress_callback); + // Returns false if interrupted. + bool WaitUntilCompletion(const std::function& progress_callback); // Needed because of calling virtual methods in shutdown procedure. bool StartWorkerThreads(u32 num_worker_threads); diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 984793d9d8..b5d848238a 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -157,9 +157,12 @@ const AbstractPipeline* ShaderCache::GetUberPipelineForUid(const GXUberPipelineU void ShaderCache::WaitForAsyncCompiler() { - while (m_async_shader_compiler->HasPendingWork() || m_async_shader_compiler->HasCompletedWork()) + bool running = true; + + while (running && + (m_async_shader_compiler->HasPendingWork() || m_async_shader_compiler->HasCompletedWork())) { - m_async_shader_compiler->WaitUntilCompletion([](size_t completed, size_t total) { + running = m_async_shader_compiler->WaitUntilCompletion([](size_t completed, size_t total) { g_renderer->BeginUIFrame(); const float center_x = ImGui::GetIO().DisplaySize.x * 0.5f; From 7faf5ea170f23de3b4a7b9362926490c5b7a97bc Mon Sep 17 00:00:00 2001 From: Silent Date: Sun, 10 Nov 2019 22:33:33 +0100 Subject: [PATCH 199/659] Clear the UI after async shader compilation --- Source/Core/VideoCommon/ShaderCache.cpp | 53 ++++++++++++++----------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index b5d848238a..35ce392be2 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -159,35 +159,42 @@ void ShaderCache::WaitForAsyncCompiler() { bool running = true; + constexpr auto update_ui_progress = [](size_t completed, size_t total) { + g_renderer->BeginUIFrame(); + + const float center_x = ImGui::GetIO().DisplaySize.x * 0.5f; + const float center_y = ImGui::GetIO().DisplaySize.y * 0.5f; + const float scale = ImGui::GetIO().DisplayFramebufferScale.x; + + ImGui::SetNextWindowSize(ImVec2(400.0f * scale, 50.0f * scale), ImGuiCond_Always); + ImGui::SetNextWindowPos(ImVec2(center_x, center_y), ImGuiCond_Always, ImVec2(0.5f, 0.5f)); + if (ImGui::Begin(Common::GetStringT("Compiling Shaders").c_str(), nullptr, + ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoInputs | + ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings | + ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoNav | + ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoFocusOnAppearing)) + { + ImGui::Text("Compiling shaders: %zu/%zu", completed, total); + ImGui::ProgressBar(static_cast(completed) / + static_cast(std::max(total, static_cast(1))), + ImVec2(-1.0f, 0.0f), ""); + } + ImGui::End(); + + g_renderer->EndUIFrame(); + }; + while (running && (m_async_shader_compiler->HasPendingWork() || m_async_shader_compiler->HasCompletedWork())) { - running = m_async_shader_compiler->WaitUntilCompletion([](size_t completed, size_t total) { - g_renderer->BeginUIFrame(); + running = m_async_shader_compiler->WaitUntilCompletion(update_ui_progress); - const float center_x = ImGui::GetIO().DisplaySize.x * 0.5f; - const float center_y = ImGui::GetIO().DisplaySize.y * 0.5f; - const float scale = ImGui::GetIO().DisplayFramebufferScale.x; - - ImGui::SetNextWindowSize(ImVec2(400.0f * scale, 50.0f * scale), ImGuiCond_Always); - ImGui::SetNextWindowPos(ImVec2(center_x, center_y), ImGuiCond_Always, ImVec2(0.5f, 0.5f)); - if (ImGui::Begin(Common::GetStringT("Compiling Shaders").c_str(), nullptr, - ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoInputs | - ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings | - ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoNav | - ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoFocusOnAppearing)) - { - ImGui::Text("Compiling shaders: %zu/%zu", completed, total); - ImGui::ProgressBar(static_cast(completed) / - static_cast(std::max(total, static_cast(1))), - ImVec2(-1.0f, 0.0f), ""); - } - ImGui::End(); - - g_renderer->EndUIFrame(); - }); m_async_shader_compiler->RetrieveWorkItems(); } + + // Just render nothing to clear the screen + g_renderer->BeginUIFrame(); + g_renderer->EndUIFrame(); } template From 1db46fbd8ba34c6a99f3385d0896bccc17e5fc8e Mon Sep 17 00:00:00 2001 From: JMC47 Date: Fri, 10 Jun 2022 19:47:33 -0400 Subject: [PATCH 200/659] Disable icache emulation for Monster House This game has stale icache values in the logs during certain loadscreens, and after disabling them I was able to play through the entire game, with one crash that may have been related to savestates and memory cards since during that loadscreen it said the memory card did not match. This does cause invalid reads to be spit out during parts of the game, but you can safely skip them. Enabling MMU seems to surpress the invalid reads without side-effects, but the aforementioned memcard/savestate crash was with MMU on. --- Data/Sys/GameSettings/GK5.ini | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Data/Sys/GameSettings/GK5.ini b/Data/Sys/GameSettings/GK5.ini index 9f0146d1f8..fd3e8e2a16 100644 --- a/Data/Sys/GameSettings/GK5.ini +++ b/Data/Sys/GameSettings/GK5.ini @@ -1,7 +1,11 @@ # GK5E78, GK5X78 - Monster House [Core] -# Values set here will override the main Dolphin settings. +# Monster House has stale icache values. Disabling the icache causes "Invalid Read" errors +# occasionally, but the game can be played from start to finish. +DisableICache = True +# In order to prevent the invalid read messages, we can enable MMU emulation. +MMU = True [OnLoad] # Add memory patches to be loaded once on boot here. From ad892176d0a401ceb851f8fe49de21d6c44b3c67 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Fri, 10 Jun 2022 21:27:10 -0700 Subject: [PATCH 201/659] have audio dumps apply volume (fixes cases of audio dumps being "too loud" and in game audio controls having no effect) --- Source/Core/AudioCommon/Mixer.cpp | 21 +++++++++++++++++---- Source/Core/AudioCommon/Mixer.h | 1 + Source/Core/AudioCommon/WaveFile.cpp | 7 ++++++- Source/Core/AudioCommon/WaveFile.h | 3 ++- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index f6bebb60cc..e0b7f28768 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -256,17 +256,25 @@ void Mixer::MixerFifo::PushSamples(const short* samples, unsigned int num_sample void Mixer::PushSamples(const short* samples, unsigned int num_samples) { m_dma_mixer.PushSamples(samples, num_samples); - int sample_rate = m_dma_mixer.GetInputSampleRate(); if (m_log_dsp_audio) - m_wave_writer_dsp.AddStereoSamplesBE(samples, num_samples, sample_rate); + { + int sample_rate = m_dma_mixer.GetInputSampleRate(); + auto volume = m_dma_mixer.GetVolume(); + m_wave_writer_dsp.AddStereoSamplesBE(samples, num_samples, sample_rate, volume.first, + volume.second); + } } void Mixer::PushStreamingSamples(const short* samples, unsigned int num_samples) { m_streaming_mixer.PushSamples(samples, num_samples); - int sample_rate = m_streaming_mixer.GetInputSampleRate(); if (m_log_dtk_audio) - m_wave_writer_dtk.AddStereoSamplesBE(samples, num_samples, sample_rate); + { + int sample_rate = m_streaming_mixer.GetInputSampleRate(); + auto volume = m_streaming_mixer.GetVolume(); + m_wave_writer_dtk.AddStereoSamplesBE(samples, num_samples, sample_rate, volume.first, + volume.second); + } } void Mixer::PushWiimoteSpeakerSamples(const short* samples, unsigned int num_samples, @@ -427,6 +435,11 @@ void Mixer::MixerFifo::SetVolume(unsigned int lvolume, unsigned int rvolume) m_RVolume.store(rvolume + (rvolume >> 7)); } +std::pair Mixer::MixerFifo::GetVolume() const +{ + return std::make_pair(m_LVolume.load(), m_RVolume.load()); +} + unsigned int Mixer::MixerFifo::AvailableSamples() const { unsigned int samples_in_fifo = ((m_indexW.load() - m_indexR.load()) & INDEX_MASK) / 2; diff --git a/Source/Core/AudioCommon/Mixer.h b/Source/Core/AudioCommon/Mixer.h index 0cf25810fb..f58c25f98a 100644 --- a/Source/Core/AudioCommon/Mixer.h +++ b/Source/Core/AudioCommon/Mixer.h @@ -74,6 +74,7 @@ private: void SetInputSampleRate(unsigned int rate); unsigned int GetInputSampleRate() const; void SetVolume(unsigned int lvolume, unsigned int rvolume); + std::pair GetVolume() const; unsigned int AvailableSamples() const; private: diff --git a/Source/Core/AudioCommon/WaveFile.cpp b/Source/Core/AudioCommon/WaveFile.cpp index edc870bef7..befcf6bfbd 100644 --- a/Source/Core/AudioCommon/WaveFile.cpp +++ b/Source/Core/AudioCommon/WaveFile.cpp @@ -114,7 +114,8 @@ void WaveFileWriter::Write4(const char* ptr) file.WriteBytes(ptr, 4); } -void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate) +void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate, + int l_volume, int r_volume) { if (!file) ERROR_LOG_FMT(AUDIO, "WaveFileWriter - file not open."); @@ -141,6 +142,10 @@ void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, int // Flip the audio channels from RL to LR conv_buffer[2 * i] = Common::swap16((u16)sample_data[2 * i + 1]); conv_buffer[2 * i + 1] = Common::swap16((u16)sample_data[2 * i]); + + // Apply volume (volume ranges from 0 to 256) + conv_buffer[2 * i] = conv_buffer[2 * i] * l_volume / 256; + conv_buffer[2 * i + 1] = conv_buffer[2 * i + 1] * r_volume / 256; } if (sample_rate != current_sample_rate) diff --git a/Source/Core/AudioCommon/WaveFile.h b/Source/Core/AudioCommon/WaveFile.h index 91aa60aede..e95ed8eb73 100644 --- a/Source/Core/AudioCommon/WaveFile.h +++ b/Source/Core/AudioCommon/WaveFile.h @@ -34,7 +34,8 @@ public: void Stop(); void SetSkipSilence(bool skip) { skip_silence = skip; } - void AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate); // big endian + void AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate, int l_volume, + int r_volume); // big endian u32 GetAudioSize() const { return audio_size; } private: From e4614067b358b973008bb51cc3d05b8e2c42d999 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 30 May 2022 19:46:18 -0500 Subject: [PATCH 202/659] CMake: Respect SKIP_POSTPROCESS_BUNDLE --- Source/Core/DolphinQt/CMakeLists.txt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 4867d30e9d..37915aa5b0 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -578,14 +578,16 @@ if(APPLE) set_source_files_properties("${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks GENERATED ON) endif() - # Update library references to make the bundle portable - include(DolphinPostprocessBundle) - dolphin_postprocess_bundle(dolphin-emu) - # Fix rpath - add_custom_command(TARGET dolphin-emu - POST_BUILD COMMAND - ${CMAKE_INSTALL_NAME_TOOL} -add_rpath "@executable_path/../Frameworks/" - $) + if(NOT SKIP_POSTPROCESS_BUNDLE) + # Update library references to make the bundle portable + include(DolphinPostprocessBundle) + dolphin_postprocess_bundle(dolphin-emu) + # Fix rpath + add_custom_command(TARGET dolphin-emu + POST_BUILD COMMAND + ${CMAKE_INSTALL_NAME_TOOL} -add_rpath "@executable_path/../Frameworks/" + $) + endif() if(MACOS_CODE_SIGNING) # Code sign make file builds From 26fc167a443da189ded511279588a93843d26e83 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Tue, 31 May 2022 04:41:35 -0500 Subject: [PATCH 203/659] DiscIO: Fix creation of rvz with > 2mb chunk size --- Source/Core/DiscIO/WIABlob.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Source/Core/DiscIO/WIABlob.cpp b/Source/Core/DiscIO/WIABlob.cpp index 8ef5a3f6b0..d11374e507 100644 --- a/Source/Core/DiscIO/WIABlob.cpp +++ b/Source/Core/DiscIO/WIABlob.cpp @@ -1142,8 +1142,8 @@ static bool AllSame(const u8* begin, const u8* end) template static void RVZPack(const u8* in, OutputParametersEntry* out, u64 bytes_per_chunk, size_t chunks, - u64 total_size, u64 data_offset, u64 in_offset, bool multipart, - bool allow_junk_reuse, bool compression, const FileSystem* file_system) + u64 total_size, u64 data_offset, bool multipart, bool allow_junk_reuse, + bool compression, const FileSystem* file_system) { using Seed = std::array; struct JunkInfo @@ -1162,7 +1162,7 @@ static void RVZPack(const u8* in, OutputParametersEntry* out, u64 bytes_per_chun { // Skip the 0 to 32 zero bytes that typically come after a file size_t zeroes = 0; - while (position + zeroes < total_size && in[in_offset + position + zeroes] == 0) + while (position + zeroes < total_size && in[position + zeroes] == 0) ++zeroes; // If there are very many zero bytes (perhaps the PRNG junk data has been scrubbed?) @@ -1182,7 +1182,7 @@ static void RVZPack(const u8* in, OutputParametersEntry* out, u64 bytes_per_chun Seed seed; const size_t bytes_reconstructed = LaggedFibonacciGenerator::GetSeed( - in + in_offset + position, bytes_to_read, data_offset_mod, seed.data()); + in + position, bytes_to_read, data_offset_mod, seed.data()); if (bytes_reconstructed > 0) junk_info.emplace(position + bytes_reconstructed, JunkInfo{position, seed}); @@ -1248,7 +1248,7 @@ static void RVZPack(const u8* in, OutputParametersEntry* out, u64 bytes_per_chun if (next_junk_start == end_offset) { // Storing this chunk without RVZ packing would be inefficient, so store it without - PushBack(&entry.main_data, in + in_offset + current_offset, in + in_offset + end_offset); + PushBack(&entry.main_data, in + current_offset, in + end_offset); break; } @@ -1258,7 +1258,7 @@ static void RVZPack(const u8* in, OutputParametersEntry* out, u64 bytes_per_chun const u64 non_junk_bytes = next_junk_start - current_offset; if (non_junk_bytes > 0) { - const u8* ptr = in + in_offset + current_offset; + const u8* ptr = in + current_offset; PushBack(&entry.main_data, Common::swap32(static_cast(non_junk_bytes))); PushBack(&entry.main_data, ptr, ptr + non_junk_bytes); @@ -1284,8 +1284,7 @@ template static void RVZPack(const u8* in, OutputParametersEntry* out, u64 size, u64 data_offset, bool allow_junk_reuse, bool compression, const FileSystem* file_system) { - RVZPack(in, out, size, 1, size, data_offset, 0, false, allow_junk_reuse, compression, - file_system); + RVZPack(in, out, size, 1, size, data_offset, false, allow_junk_reuse, compression, file_system); } template @@ -1473,8 +1472,8 @@ WIARVZFileReader::ProcessAndCompress(CompressThreadState* state, CompressPa const u64 data_offset = parameters.data_offset + write_offset_of_group; RVZPack(state->decryption_buffer[0].data(), output_entries.data() + first_chunk, - bytes_per_chunk, chunks, total_size, data_offset, write_offset_of_group, - groups > 1, allow_junk_reuse, compression, file_system); + bytes_per_chunk, chunks, total_size, data_offset, groups > 1, allow_junk_reuse, + compression, file_system); } else { From 7cf5547b9745e80ad8a0bae1e9379eb3c53e0265 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 30 May 2022 20:01:24 -0500 Subject: [PATCH 204/659] CMake: Make bundled MoltenVK optional Adds ~20s to incremental build time in Xcode projects --- CMakeLists.txt | 3 ++- Source/Core/DolphinQt/CMakeLists.txt | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1085d51c92..e14e80d3dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,7 @@ if(APPLE) option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF) # Enable adhoc code signing by default (otherwise makefile builds on ARM will not work) option(MACOS_CODE_SIGNING "Enable codesigning" ON) + option(USE_BUNDLED_MOLTENVK "Build MoltenVK from Externals with Dolphin-specific patches" ON) set(MACOS_CODE_SIGNING_IDENTITY "-" CACHE STRING "The identity used for codesigning.") set(MACOS_CODE_SIGNING_IDENTITY_UPDATER "-" CACHE STRING "The identity used for codesigning, for the updater.") endif() @@ -663,7 +664,7 @@ add_subdirectory(Externals/glslang) if(ENABLE_VULKAN) add_definitions(-DHAS_VULKAN) - if(APPLE) + if(APPLE AND USE_BUNDLED_MOLTENVK) add_subdirectory(Externals/MoltenVK) endif() endif() diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 37915aa5b0..fb9ee8d46b 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -572,10 +572,19 @@ if(APPLE) # Copy MoltenVK into the bundle if(ENABLE_VULKAN) - add_dependencies(dolphin-emu MoltenVK) - ExternalProject_Get_Property(MoltenVK SOURCE_DIR) - target_sources(dolphin-emu PRIVATE "${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib") - set_source_files_properties("${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks GENERATED ON) + if(USE_BUNDLED_MOLTENVK) + add_dependencies(dolphin-emu MoltenVK) + ExternalProject_Get_Property(MoltenVK SOURCE_DIR) + target_sources(dolphin-emu PRIVATE "${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib") + set_source_files_properties("${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks GENERATED ON) + else() + find_file(MOLTENVK_DYLIB NAMES libMoltenVK.dylib PATH_SUFFIXES lib) + if(NOT MOLTENVK_DYLIB) + message(FATAL_ERROR "Couldn't find libMoltenVK.dylib. Enable USE_BUNDLED_MOLTENVK?") + endif() + target_sources(dolphin-emu PRIVATE ${MOLTENVK_DYLIB}) + set_source_files_properties(${MOLTENVK_DYLIB} PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks) + endif() endif() if(NOT SKIP_POSTPROCESS_BUNDLE) From 3e5f1a4f9941587bf6319d8d77e4508a7d4fd394 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sun, 12 Jun 2022 00:19:09 -0400 Subject: [PATCH 205/659] MemTools: Always provide a valid pointer in send_msg for mach_msg_overwrite This cannot be nullptr in macOS Ventura and iOS 16. --- Source/Core/Core/MemTools.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/Core/Core/MemTools.cpp b/Source/Core/Core/MemTools.cpp index c9109bfd1f..0011fd3bce 100644 --- a/Source/Core/Core/MemTools.cpp +++ b/Source/Core/Core/MemTools.cpp @@ -157,7 +157,6 @@ static void ExceptionThread(mach_port_t port) #pragma pack() memset(&msg_in, 0xee, sizeof(msg_in)); memset(&msg_out, 0xee, sizeof(msg_out)); - mach_msg_header_t* send_msg = nullptr; mach_msg_size_t send_size = 0; mach_msg_option_t option = MACH_RCV_MSG; while (true) @@ -167,7 +166,7 @@ static void ExceptionThread(mach_port_t port) // thread_set_exception_ports, or MACH_NOTIFY_NO_SENDERS due to // mach_port_request_notification. CheckKR("mach_msg_overwrite", - mach_msg_overwrite(send_msg, option, send_size, sizeof(msg_in), port, + mach_msg_overwrite(&msg_out.Head, option, send_size, sizeof(msg_in), port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL, &msg_in.Head, 0)); if (msg_in.Head.msgh_id == MACH_NOTIFY_NO_SENDERS) @@ -216,7 +215,6 @@ static void ExceptionThread(mach_port_t port) msg_out.Head.msgh_size = offsetof(__typeof__(msg_out), new_state) + msg_out.new_stateCnt * sizeof(natural_t); - send_msg = &msg_out.Head; send_size = msg_out.Head.msgh_size; option |= MACH_SEND_MSG; } From 3dce1df00e3bf28707270c7d0c58fd1b6cabe3be Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 11 Jun 2022 15:49:08 +0200 Subject: [PATCH 206/659] JitArm64: Implement "soft MMU" This is used when fastmem isn't available. Instead of always falling back to the C++ code in MMU.cpp, the JIT translates addresses on its own by looking them up in a table that Dolphin constructs. This is slower than fastmem, but faster than the old non-fastmem code. This is primarily useful for iOS, since that's the only major platform nowadays where you can't reliably get fastmem. I think it would make sense to merge this feature to master despite this, since there's nothing actually iOS-specific about the feature. It would be of use for me when I have to disable fastmem to stop Android Studio from constantly breaking on segfaults, for instance. Co-authored-by: OatmealDome --- Source/Core/Core/HW/Memmap.cpp | 50 ++++++++++++++----- Source/Core/Core/HW/Memmap.h | 5 ++ Source/Core/Core/PowerPC/JitArm64/Jit.h | 18 +++---- .../PowerPC/JitArm64/JitArm64_BackPatch.cpp | 50 +++++++++++++------ .../PowerPC/JitArm64/JitArm64_RegCache.cpp | 2 +- Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp | 8 +-- Source/Core/Core/PowerPC/MMU.h | 3 +- 7 files changed, 94 insertions(+), 42 deletions(-) diff --git a/Source/Core/Core/HW/Memmap.cpp b/Source/Core/Core/HW/Memmap.cpp index 4f2aaa1a5d..f61e974bf3 100644 --- a/Source/Core/Core/HW/Memmap.cpp +++ b/Source/Core/Core/HW/Memmap.cpp @@ -47,6 +47,8 @@ namespace Memory // Store the MemArena here u8* physical_base = nullptr; u8* logical_base = nullptr; +u8* physical_page_mappings_base = nullptr; +u8* logical_page_mappings_base = nullptr; static bool is_fastmem_arena_initialized = false; // The MemArena class @@ -223,6 +225,9 @@ static std::array s_physical_regions; static std::vector logical_mapped_entries; +static std::array s_physical_page_mappings; +static std::array s_logical_page_mappings; + void Init() { const auto get_mem1_size = [] { @@ -280,6 +285,8 @@ void Init() } g_arena.GrabSHMSegment(mem_size); + s_physical_page_mappings.fill(nullptr); + // Create an anonymous view of the physical memory for (const PhysicalMemoryRegion& region : s_physical_regions) { @@ -295,8 +302,17 @@ void Init() region.physical_address, region.size); exit(0); } + + for (u32 i = 0; i < region.size; i += PowerPC::BAT_PAGE_SIZE) + { + const size_t index = (i + region.physical_address) >> PowerPC::BAT_INDEX_SHIFT; + s_physical_page_mappings[index] = *region.out_pointer + i; + } } + physical_page_mappings_base = reinterpret_cast(s_physical_page_mappings.data()); + logical_page_mappings_base = reinterpret_cast(s_logical_page_mappings.data()); + InitMMIO(wii); Clear(); @@ -347,14 +363,14 @@ bool InitFastmemArena() void UpdateLogicalMemory(const PowerPC::BatTable& dbat_table) { - if (!is_fastmem_arena_initialized) - return; - for (auto& entry : logical_mapped_entries) { g_arena.UnmapFromMemoryRegion(entry.mapped_pointer, entry.mapped_size); } logical_mapped_entries.clear(); + + s_logical_page_mappings.fill(nullptr); + for (u32 i = 0; i < dbat_table.size(); ++i) { if (dbat_table[i] & PowerPC::BAT_PHYSICAL_BIT) @@ -375,19 +391,27 @@ void UpdateLogicalMemory(const PowerPC::BatTable& dbat_table) if (intersection_start < intersection_end) { // Found an overlapping region; map it. - u32 position = physical_region.shm_position + intersection_start - mapping_address; - u8* base = logical_base + logical_address + intersection_start - translated_address; - u32 mapped_size = intersection_end - intersection_start; - void* mapped_pointer = g_arena.MapInMemoryRegion(position, mapped_size, base); - if (!mapped_pointer) + if (is_fastmem_arena_initialized) { - PanicAlertFmt("Memory::UpdateLogicalMemory(): Failed to map memory region at 0x{:08X} " - "(size 0x{:08X}) into logical fastmem region at 0x{:08X}.", - intersection_start, mapped_size, logical_address); - exit(0); + u32 position = physical_region.shm_position + intersection_start - mapping_address; + u8* base = logical_base + logical_address + intersection_start - translated_address; + u32 mapped_size = intersection_end - intersection_start; + + void* mapped_pointer = g_arena.MapInMemoryRegion(position, mapped_size, base); + if (!mapped_pointer) + { + PanicAlertFmt( + "Memory::UpdateLogicalMemory(): Failed to map memory region at 0x{:08X} " + "(size 0x{:08X}) into logical fastmem region at 0x{:08X}.", + intersection_start, mapped_size, logical_address); + exit(0); + } + logical_mapped_entries.push_back({mapped_pointer, mapped_size}); } - logical_mapped_entries.push_back({mapped_pointer, mapped_size}); + + s_logical_page_mappings[i] = + *physical_region.out_pointer + intersection_start - mapping_address; } } } diff --git a/Source/Core/Core/HW/Memmap.h b/Source/Core/Core/HW/Memmap.h index 5a15a1e343..32065f2053 100644 --- a/Source/Core/Core/HW/Memmap.h +++ b/Source/Core/Core/HW/Memmap.h @@ -27,6 +27,11 @@ namespace Memory extern u8* physical_base; extern u8* logical_base; +// This page table is used for a "soft MMU" implementation when +// setting up the full memory map in process memory isn't possible. +extern u8* physical_page_mappings_base; +extern u8* logical_page_mappings_base; + // The actual memory used for backing the memory map. extern u8* m_pRAM; extern u8* m_pEXRAM; diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index e89c2b1a9b..454b4f68a7 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -216,9 +216,6 @@ protected: void DumpCode(const u8* start, const u8* end); // This enum is used for selecting an implementation of EmitBackpatchRoutine. - // - // The below descriptions of each enum entry apply when jo.fastmem_arena is true. - // If jo.fastmem_arena is false, the slow C++ code is always called instead. enum class MemAccessMode { // Always calls the slow C++ code. For performance reasons, should generally only be used if @@ -227,8 +224,10 @@ protected: // Only emits fast access code. Must only be used if the guest address is known in advance // and IsOptimizableRAMAddress returns true for it, otherwise Dolphin will likely crash! AlwaysUnsafe, - // Best in most cases. Tries to run fast access code, and if that fails, uses backpatching to - // replace the code with a call to the slow C++ code. + // Best in most cases. If backpatching is possible (!emitting_routine && jo.fastmem_arena): + // Tries to run fast access code, and if that fails, uses backpatching to replace the code + // with a call to the slow C++ code. Otherwise: Checks whether the fast access code will work, + // then branches to either the fast access code or the slow C++ code. Auto, }; @@ -249,11 +248,12 @@ protected: // // Additional scratch registers are used in the following situations: // - // mode == Auto && emitting_routine: X2 - // mode == Auto && emitting_routine && (flags & BackPatchInfo::FLAG_STORE): X0 - // mode == Auto && emitting_routine && !(flags & BackPatchInfo::FLAG_STORE): X3 + // emitting_routine && (mode == Auto || (mode != AlwaysSafe && !jo.fastmem_arena)): X2 + // emitting_routine && mode == Auto && (flags & BackPatchInfo::FLAG_STORE): X0 + // emitting_routine && mode == Auto && !(flags & BackPatchInfo::FLAG_STORE): X3 + // !emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X30 // - // mode != AlwaysUnsafe || !jo.fastmem_arena: + // mode != AlwaysUnsafe: // X30 (plus most other registers, unless marked in gprs_to_push and fprs_to_push) void EmitBackpatchRoutine(u32 flags, MemAccessMode mode, Arm64Gen::ARM64Reg RS, Arm64Gen::ARM64Reg addr, BitSet32 gprs_to_push = BitSet32(0), diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index e5ce801175..80bacaed6a 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -60,8 +60,8 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, { const u32 access_size = BackPatchInfo::GetFlagSize(flags); - const bool emit_fastmem = jo.fastmem_arena && mode != MemAccessMode::AlwaysSafe; - const bool emit_slowmem = !jo.fastmem_arena || mode != MemAccessMode::AlwaysUnsafe; + const bool emit_fastmem = mode != MemAccessMode::AlwaysSafe; + const bool emit_slowmem = mode != MemAccessMode::AlwaysUnsafe; bool in_far_code = false; const u8* fastmem_start = GetCodePtr(); @@ -69,7 +69,29 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, if (emit_fastmem) { - if (emit_slowmem && emitting_routine) + ARM64Reg memory_base = MEM_REG; + ARM64Reg memory_offset = addr; + + if (!jo.fastmem_arena) + { + const ARM64Reg temp = emitting_routine ? ARM64Reg::W2 : ARM64Reg::W30; + + memory_base = EncodeRegTo64(temp); + memory_offset = ARM64Reg::W8; // TODO + + LSR(temp, addr, PowerPC::BAT_INDEX_SHIFT); + LDR(memory_base, MEM_REG, ArithOption(temp, true)); + + if (emit_slowmem) + { + FixupBranch pass = CBNZ(memory_base); + slowmem_fixup = B(); + SetJumpTarget(pass); + } + + AND(memory_offset, addr, LogicalImm(PowerPC::BAT_PAGE_SIZE - 1, 64)); + } + else if (emit_slowmem && emitting_routine) { const ARM64Reg temp1 = flags & BackPatchInfo::FLAG_STORE ? ARM64Reg::W0 : ARM64Reg::W3; const ARM64Reg temp2 = ARM64Reg::W2; @@ -82,11 +104,11 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, ARM64Reg temp = ARM64Reg::D0; temp = ByteswapBeforeStore(this, &m_float_emit, temp, EncodeRegToDouble(RS), flags, true); - m_float_emit.STR(access_size, temp, MEM_REG, addr); + m_float_emit.STR(access_size, temp, memory_base, memory_offset); } else if ((flags & BackPatchInfo::FLAG_LOAD) && (flags & BackPatchInfo::FLAG_FLOAT)) { - m_float_emit.LDR(access_size, EncodeRegToDouble(RS), MEM_REG, addr); + m_float_emit.LDR(access_size, EncodeRegToDouble(RS), memory_base, memory_offset); ByteswapAfterLoad(this, &m_float_emit, EncodeRegToDouble(RS), EncodeRegToDouble(RS), flags, true, false); @@ -97,28 +119,28 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, temp = ByteswapBeforeStore(this, &m_float_emit, temp, RS, flags, true); if (flags & BackPatchInfo::FLAG_SIZE_32) - STR(temp, MEM_REG, addr); + STR(temp, memory_base, memory_offset); else if (flags & BackPatchInfo::FLAG_SIZE_16) - STRH(temp, MEM_REG, addr); + STRH(temp, memory_base, memory_offset); else - STRB(temp, MEM_REG, addr); + STRB(temp, memory_base, memory_offset); } else if (flags & BackPatchInfo::FLAG_ZERO_256) { // This literally only stores 32bytes of zeros to the target address ARM64Reg temp = ARM64Reg::X30; - ADD(temp, addr, MEM_REG); + ADD(temp, memory_base, memory_offset); STP(IndexType::Signed, ARM64Reg::ZR, ARM64Reg::ZR, temp, 0); STP(IndexType::Signed, ARM64Reg::ZR, ARM64Reg::ZR, temp, 16); } else { if (flags & BackPatchInfo::FLAG_SIZE_32) - LDR(RS, MEM_REG, addr); + LDR(RS, memory_base, memory_offset); else if (flags & BackPatchInfo::FLAG_SIZE_16) - LDRH(RS, MEM_REG, addr); + LDRH(RS, memory_base, memory_offset); else if (flags & BackPatchInfo::FLAG_SIZE_8) - LDRB(RS, MEM_REG, addr); + LDRB(RS, memory_base, memory_offset); ByteswapAfterLoad(this, &m_float_emit, RS, RS, flags, true, false); } @@ -134,7 +156,7 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, in_far_code = true; SwitchToFarCode(); - if (!emitting_routine) + if (jo.fastmem_arena && !emitting_routine) { FastmemArea* fastmem_area = &m_fault_to_handler[fastmem_end]; fastmem_area->fastmem_code = fastmem_start; @@ -264,7 +286,7 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, if (in_far_code) { - if (emitting_routine) + if (slowmem_fixup) { FixupBranch done = B(); SwitchToNearCode(); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp index 7a077f6ce2..af0fc0386b 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp @@ -393,7 +393,7 @@ void Arm64GPRCache::GetAllocationOrder() ARM64Reg::W11, ARM64Reg::W10, ARM64Reg::W9, - ARM64Reg::W8, + // ARM64Reg::W8, ARM64Reg::W7, ARM64Reg::W6, ARM64Reg::W5, diff --git a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp index a506ce02e1..e50ec27929 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp @@ -93,10 +93,10 @@ void JitArm64::GenerateAsm() // set the mem_base based on MSR flags LDR(IndexType::Unsigned, ARM64Reg::W28, PPC_REG, PPCSTATE_OFF(msr)); FixupBranch physmem = TBNZ(ARM64Reg::W28, 31 - 27); - MOVP2R(MEM_REG, Memory::physical_base); + MOVP2R(MEM_REG, jo.fastmem_arena ? Memory::physical_base : Memory::physical_page_mappings_base); FixupBranch membaseend = B(); SetJumpTarget(physmem); - MOVP2R(MEM_REG, Memory::logical_base); + MOVP2R(MEM_REG, jo.fastmem_arena ? Memory::logical_base : Memory::logical_page_mappings_base); SetJumpTarget(membaseend); // iCache[(address >> 2) & iCache_Mask]; @@ -141,10 +141,10 @@ void JitArm64::GenerateAsm() // set the mem_base based on MSR flags and jump to next block. LDR(IndexType::Unsigned, ARM64Reg::W28, PPC_REG, PPCSTATE_OFF(msr)); FixupBranch physmem = TBNZ(ARM64Reg::W28, 31 - 27); - MOVP2R(MEM_REG, Memory::physical_base); + MOVP2R(MEM_REG, jo.fastmem_arena ? Memory::physical_base : Memory::physical_page_mappings_base); BR(ARM64Reg::X0); SetJumpTarget(physmem); - MOVP2R(MEM_REG, Memory::logical_base); + MOVP2R(MEM_REG, jo.fastmem_arena ? Memory::logical_base : Memory::logical_page_mappings_base); BR(ARM64Reg::X0); // Call JIT diff --git a/Source/Core/Core/PowerPC/MMU.h b/Source/Core/Core/PowerPC/MMU.h index 726e861f62..6eda9a22b7 100644 --- a/Source/Core/Core/PowerPC/MMU.h +++ b/Source/Core/Core/PowerPC/MMU.h @@ -197,11 +197,12 @@ TranslateResult JitCache_TranslateAddress(u32 address); constexpr int BAT_INDEX_SHIFT = 17; constexpr u32 BAT_PAGE_SIZE = 1 << BAT_INDEX_SHIFT; +constexpr u32 BAT_PAGE_COUNT = 1 << (32 - BAT_INDEX_SHIFT); constexpr u32 BAT_MAPPED_BIT = 0x1; constexpr u32 BAT_PHYSICAL_BIT = 0x2; constexpr u32 BAT_WI_BIT = 0x4; constexpr u32 BAT_RESULT_MASK = UINT32_C(~0x7); -using BatTable = std::array; // 128 KB +using BatTable = std::array; // 128 KB extern BatTable ibat_table; extern BatTable dbat_table; inline bool TranslateBatAddess(const BatTable& bat_table, u32* address, bool* wi) From 3de49dee78be9d12b9caf7cd20a39613dcc35125 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 12 Jun 2022 10:38:48 +0200 Subject: [PATCH 207/659] JitArm64: Properly reserve scratch register for soft MMU Cleans up a hack from the previous commit. --- Source/Core/Core/PowerPC/JitArm64/Jit.h | 10 +++--- .../PowerPC/JitArm64/JitArm64_BackPatch.cpp | 4 +-- .../PowerPC/JitArm64/JitArm64_LoadStore.cpp | 34 ++++++++++++++++++- .../JitArm64/JitArm64_LoadStoreFloating.cpp | 12 +++++++ .../JitArm64/JitArm64_LoadStorePaired.cpp | 23 ++++++++++--- .../PowerPC/JitArm64/JitArm64_RegCache.cpp | 2 +- Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp | 3 ++ 7 files changed, 76 insertions(+), 12 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index 454b4f68a7..5a7d84b151 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -248,10 +248,12 @@ protected: // // Additional scratch registers are used in the following situations: // - // emitting_routine && (mode == Auto || (mode != AlwaysSafe && !jo.fastmem_arena)): X2 - // emitting_routine && mode == Auto && (flags & BackPatchInfo::FLAG_STORE): X0 - // emitting_routine && mode == Auto && !(flags & BackPatchInfo::FLAG_STORE): X3 - // !emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X30 + // emitting_routine && mode == Auto: X2 + // emitting_routine && mode == Auto && (flags & BackPatchInfo::FLAG_STORE): X0 + // emitting_routine && mode == Auto && !(flags & BackPatchInfo::FLAG_STORE): X3 + // emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X3 + // mode != AlwaysSafe && !jo.fastmem_arena: X2 + // !emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X30 // // mode != AlwaysUnsafe: // X30 (plus most other registers, unless marked in gprs_to_push and fprs_to_push) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index 80bacaed6a..c3d2889c94 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -74,10 +74,10 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, MemAccessMode mode, ARM64Reg RS, if (!jo.fastmem_arena) { - const ARM64Reg temp = emitting_routine ? ARM64Reg::W2 : ARM64Reg::W30; + const ARM64Reg temp = emitting_routine ? ARM64Reg::W3 : ARM64Reg::W30; memory_base = EncodeRegTo64(temp); - memory_offset = ARM64Reg::W8; // TODO + memory_offset = ARM64Reg::W2; LSR(temp, addr, PowerPC::BAT_INDEX_SHIFT); LDR(memory_base, MEM_REG, ArithOption(temp, true)); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp index 0adfcae6f3..be39929f21 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStore.cpp @@ -27,6 +27,8 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o { // We want to make sure to not get LR as a temp register gpr.Lock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); gpr.BindToRegister(dest, dest == (u32)addr || dest == (u32)offsetReg, false); ARM64Reg dest_reg = gpr.R(dest); @@ -121,6 +123,8 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o BitSet32 fprs_in_use = fpr.GetCallerSavedUsed(); if (!update || early_update) regs_in_use[DecodeReg(ARM64Reg::W0)] = 0; + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; if (!jo.memcheck) regs_in_use[DecodeReg(dest_reg)] = 0; @@ -157,6 +161,8 @@ void JitArm64::SafeLoadToReg(u32 dest, s32 addr, s32 offsetReg, u32 flags, s32 o } gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s32 offset, @@ -164,6 +170,8 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s { // We want to make sure to not get LR as a temp register gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); ARM64Reg RS = gpr.R(value); @@ -259,6 +267,8 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s regs_in_use[DecodeReg(ARM64Reg::W0)] = 0; if (!update || early_update) regs_in_use[DecodeReg(ARM64Reg::W1)] = 0; + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; u32 access_size = BackPatchInfo::GetFlagSize(flags); u32 mmio_address = 0; @@ -315,6 +325,8 @@ void JitArm64::SafeStoreFromReg(s32 dest, u32 value, s32 regOffset, u32 flags, s } gpr.Unlock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } FixupBranch JitArm64::BATAddressLookup(ARM64Reg addr_out, ARM64Reg addr_in, ARM64Reg tmp, @@ -497,6 +509,8 @@ void JitArm64::lmw(UGeckoInstruction inst) s32 offset = inst.SIMM_16; gpr.Lock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); // MMU games make use of a >= d despite this being invalid according to the PEM. // Because of this, make sure to not re-read rA after starting doing the loads. @@ -522,6 +536,8 @@ void JitArm64::lmw(UGeckoInstruction inst) BitSet32 regs_in_use = gpr.GetCallerSavedUsed(); BitSet32 fprs_in_use = fpr.GetCallerSavedUsed(); + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; if (i == 31) regs_in_use[DecodeReg(addr_reg)] = 0; if (!jo.memcheck) @@ -538,6 +554,8 @@ void JitArm64::lmw(UGeckoInstruction inst) } gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } void JitArm64::stmw(UGeckoInstruction inst) @@ -549,6 +567,8 @@ void JitArm64::stmw(UGeckoInstruction inst) s32 offset = inst.SIMM_16; gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); ARM64Reg addr_reg = ARM64Reg::W1; if (a) @@ -572,6 +592,8 @@ void JitArm64::stmw(UGeckoInstruction inst) BitSet32 regs_in_use = gpr.GetCallerSavedUsed(); BitSet32 fprs_in_use = fpr.GetCallerSavedUsed(); regs_in_use[DecodeReg(ARM64Reg::W0)] = 0; + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; if (i == 31) regs_in_use[DecodeReg(addr_reg)] = 0; @@ -583,6 +605,8 @@ void JitArm64::stmw(UGeckoInstruction inst) } gpr.Unlock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } void JitArm64::dcbx(UGeckoInstruction inst) @@ -771,8 +795,14 @@ void JitArm64::dcbz(UGeckoInstruction inst) int a = inst.RA, b = inst.RB; gpr.Lock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); - Common::ScopeGuard register_guard([&] { gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); }); + Common::ScopeGuard register_guard([&] { + gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); + }); constexpr ARM64Reg addr_reg = ARM64Reg::W0; constexpr ARM64Reg temp_reg = ARM64Reg::W30; @@ -839,6 +869,8 @@ void JitArm64::dcbz(UGeckoInstruction inst) BitSet32 gprs_to_push = gpr.GetCallerSavedUsed(); BitSet32 fprs_to_push = fpr.GetCallerSavedUsed(); gprs_to_push[DecodeReg(ARM64Reg::W0)] = 0; + if (!jo.fastmem_arena) + gprs_to_push[DecodeReg(ARM64Reg::W2)] = 0; EmitBackpatchRoutine(BackPatchInfo::FLAG_ZERO_256, MemAccessMode::Auto, ARM64Reg::W0, EncodeRegTo64(addr_reg), gprs_to_push, fprs_to_push); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp index 8845b25fa4..281593d4a7 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp @@ -79,6 +79,8 @@ void JitArm64::lfXX(UGeckoInstruction inst) gpr.Lock(ARM64Reg::W0, ARM64Reg::W30); fpr.Lock(ARM64Reg::Q0); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); const ARM64Reg VD = fpr.RW(inst.FD, type, false); ARM64Reg addr_reg = ARM64Reg::W0; @@ -166,6 +168,8 @@ void JitArm64::lfXX(UGeckoInstruction inst) BitSet32 fprs_in_use = fpr.GetCallerSavedUsed(); if (!update || early_update) regs_in_use[DecodeReg(ARM64Reg::W0)] = 0; + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; fprs_in_use[DecodeReg(ARM64Reg::Q0)] = 0; if (!jo.memcheck) fprs_in_use[DecodeReg(VD)] = 0; @@ -190,6 +194,8 @@ void JitArm64::lfXX(UGeckoInstruction inst) gpr.Unlock(ARM64Reg::W0, ARM64Reg::W30); fpr.Unlock(ARM64Reg::Q0); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } void JitArm64::stfXX(UGeckoInstruction inst) @@ -273,6 +279,8 @@ void JitArm64::stfXX(UGeckoInstruction inst) } gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); + if (!jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); ARM64Reg addr_reg = ARM64Reg::W1; @@ -364,6 +372,8 @@ void JitArm64::stfXX(UGeckoInstruction inst) regs_in_use[DecodeReg(ARM64Reg::W0)] = 0; if (!update || early_update) regs_in_use[DecodeReg(ARM64Reg::W1)] = 0; + if (!jo.fastmem_arena) + regs_in_use[DecodeReg(ARM64Reg::W2)] = 0; fprs_in_use[DecodeReg(ARM64Reg::Q0)] = 0; if (is_immediate) @@ -418,4 +428,6 @@ void JitArm64::stfXX(UGeckoInstruction inst) gpr.Unlock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); fpr.Unlock(ARM64Reg::Q0); + if (!jo.fastmem_arena) + gpr.Unlock(ARM64Reg::W2); } diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index 0960bcf236..c7c5dcb0f9 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -44,6 +44,10 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) gpr.Lock(ARM64Reg::W1, ARM64Reg::W2, ARM64Reg::W3); fpr.Lock(ARM64Reg::Q1); } + else if (!jo.fastmem_arena) + { + gpr.Lock(ARM64Reg::W2); + } constexpr ARM64Reg addr_reg = ARM64Reg::W0; constexpr ARM64Reg scale_reg = ARM64Reg::W1; @@ -82,6 +86,8 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) // Wipe the registers we are using as temporaries if (!update || early_update) gprs_in_use[DecodeReg(ARM64Reg::W0)] = false; + if (!jo.fastmem_arena) + gprs_in_use[DecodeReg(ARM64Reg::W2)] = false; fprs_in_use[DecodeReg(ARM64Reg::Q0)] = false; if (!jo.memcheck) fprs_in_use[DecodeReg(VS)] = 0; @@ -130,6 +136,10 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) gpr.Unlock(ARM64Reg::W1, ARM64Reg::W2, ARM64Reg::W3); fpr.Unlock(ARM64Reg::Q1); } + else if (!jo.fastmem_arena) + { + gpr.Unlock(ARM64Reg::W2); + } } void JitArm64::psq_stXX(UGeckoInstruction inst) @@ -189,8 +199,10 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) } gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); - if (!js.assumeNoPairedQuantize) + if (!js.assumeNoPairedQuantize || !jo.fastmem_arena) gpr.Lock(ARM64Reg::W2); + if (!js.assumeNoPairedQuantize && !jo.fastmem_arena) + gpr.Lock(ARM64Reg::W3); constexpr ARM64Reg scale_reg = ARM64Reg::W0; constexpr ARM64Reg addr_reg = ARM64Reg::W1; @@ -229,6 +241,8 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) gprs_in_use[DecodeReg(ARM64Reg::W0)] = false; if (!update || early_update) gprs_in_use[DecodeReg(ARM64Reg::W1)] = false; + if (!jo.fastmem_arena) + gprs_in_use[DecodeReg(ARM64Reg::W2)] = false; u32 flags = BackPatchInfo::FLAG_STORE | BackPatchInfo::FLAG_FLOAT | BackPatchInfo::FLAG_SIZE_32; if (!w) @@ -261,9 +275,10 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) gpr.Unlock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); fpr.Unlock(ARM64Reg::Q0); + if (!js.assumeNoPairedQuantize || !jo.fastmem_arena) + gpr.Lock(ARM64Reg::W2); + if (!js.assumeNoPairedQuantize && !jo.fastmem_arena) + gpr.Lock(ARM64Reg::W3); if (!js.assumeNoPairedQuantize) - { - gpr.Unlock(ARM64Reg::W2); fpr.Unlock(ARM64Reg::Q1); - } } diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp index af0fc0386b..7a077f6ce2 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp @@ -393,7 +393,7 @@ void Arm64GPRCache::GetAllocationOrder() ARM64Reg::W11, ARM64Reg::W10, ARM64Reg::W9, - // ARM64Reg::W8, + ARM64Reg::W8, ARM64Reg::W7, ARM64Reg::W6, ARM64Reg::W5, diff --git a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp index e50ec27929..b48ffef90c 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp @@ -699,6 +699,7 @@ void JitArm64::GenerateQuantizedStores() // X0 is the scale // X1 is the address // X2 is a temporary + // X3 is a temporary if jo.fastmem_arena is false (used in EmitBackpatchRoutine) // X30 is LR // Q0 is the register // Q1 is a temporary @@ -707,6 +708,8 @@ void JitArm64::GenerateQuantizedStores() BitSet32 gprs_to_push = CALLER_SAVED_GPRS & ~BitSet32{0, 2}; if (!jo.memcheck) gprs_to_push &= ~BitSet32{1}; + if (!jo.fastmem_arena) + gprs_to_push &= ~BitSet32{3}; BitSet32 fprs_to_push = BitSet32(0xFFFFFFFF) & ~BitSet32{0, 1}; ARM64FloatEmitter float_emit(this); From 75e897c40edad489da1f378d79b0c7f2eb39e154 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 12 Jun 2022 10:51:21 +0200 Subject: [PATCH 208/659] JitArm64: Fix a minor mistake in the EmitBackpatchRoutine comment X30 is used in fewer situations than the comment was claiming. (I think that when I wrote the comment I was counting the use of X30 as a temp variable in the slowmem code as clobbering X30, but that happens after pushing X30, so it doesn't actually get clobbered.) --- Source/Core/Core/PowerPC/JitArm64/Jit.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index 5a7d84b151..ad21fe1988 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -243,7 +243,7 @@ protected: // Store float: X1 Q0 // Load float: X0 // - // If using MemAccessMode::AlwaysUnsafe, the addr argument can be any register. + // If mode == AlwaysUnsafe, the addr argument can be any register. // Otherwise it must be the register listed in the table above. // // Additional scratch registers are used in the following situations: @@ -254,9 +254,10 @@ protected: // emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X3 // mode != AlwaysSafe && !jo.fastmem_arena: X2 // !emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X30 + // !emitting_routine && mode == Auto && jo.fastmem_arena: X30 // - // mode != AlwaysUnsafe: - // X30 (plus most other registers, unless marked in gprs_to_push and fprs_to_push) + // Furthermore, any callee-saved register which isn't marked in gprs_to_push/fprs_to_push + // may be clobbered if mode != AlwaysUnsafe. void EmitBackpatchRoutine(u32 flags, MemAccessMode mode, Arm64Gen::ARM64Reg RS, Arm64Gen::ARM64Reg addr, BitSet32 gprs_to_push = BitSet32(0), BitSet32 fprs_to_push = BitSet32(0), bool emitting_routine = false); From 62ec19c1ba005df4ad90610e60875a1bb1b1cc98 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 12 Jun 2022 10:52:33 +0200 Subject: [PATCH 209/659] JitArm64: Remove redundant line in the EmitBackpatchRoutine comment All stores clobber X0, so that stores clobber X0 when emitting_routine is true is nothing special. --- Source/Core/Core/PowerPC/JitArm64/Jit.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index ad21fe1988..75565b771d 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -249,7 +249,6 @@ protected: // Additional scratch registers are used in the following situations: // // emitting_routine && mode == Auto: X2 - // emitting_routine && mode == Auto && (flags & BackPatchInfo::FLAG_STORE): X0 // emitting_routine && mode == Auto && !(flags & BackPatchInfo::FLAG_STORE): X3 // emitting_routine && mode != AlwaysSafe && !jo.fastmem_arena: X3 // mode != AlwaysSafe && !jo.fastmem_arena: X2 From 59dfc43949d37446889126761be76b26d59a174c Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Thu, 9 Jun 2022 22:53:47 +0100 Subject: [PATCH 210/659] Common: replace std::aligned_storage_t with alignas C++23 deprecates std::aligned_storage_t while alignas works since C++11. This fixes issue 12925. --- Source/Core/Common/BitUtils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/BitUtils.h b/Source/Core/Common/BitUtils.h index 09ab4bd78c..1934809e21 100644 --- a/Source/Core/Common/BitUtils.h +++ b/Source/Core/Common/BitUtils.h @@ -201,7 +201,7 @@ inline To BitCast(const From& source) noexcept static_assert(std::is_trivially_copyable(), "BitCast destination type must be trivially copyable."); - std::aligned_storage_t storage; + alignas(To) std::byte storage[sizeof(To)]; std::memcpy(&storage, &source, sizeof(storage)); return reinterpret_cast(storage); } From 1fc86cacd7733a0f194f517ed17094abbaa7e240 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 11 Feb 2020 16:24:31 -0600 Subject: [PATCH 211/659] WiimoteEmu: Expose IMU pointing accelerometer weight setting. --- Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp | 4 ++-- .../ControllerEmu/ControlGroup/IMUCursor.cpp | 15 +++++++++++++++ .../ControllerEmu/ControlGroup/IMUCursor.h | 3 +++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp b/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp index f4c31ec7a8..4b4109a119 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp @@ -320,10 +320,10 @@ void EmulateIMUCursor(IMUCursorState* state, ControllerEmu::IMUCursor* imu_ir_gr state->rotation = gyro_rotation * state->rotation; // If we have some non-zero accel data use it to adjust gyro drift. - constexpr auto ACCEL_WEIGHT = 0.02f; + const auto accel_weight = imu_ir_group->GetAccelWeight(); auto const accel = imu_accelerometer_group->GetState().value_or(Common::Vec3{}); if (accel.LengthSquared()) - state->rotation = ComplementaryFilter(state->rotation, accel, ACCEL_WEIGHT); + state->rotation = ComplementaryFilter(state->rotation, accel, accel_weight); // Clamp yaw within configured bounds. const auto yaw = GetYaw(state->rotation); diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp index 5ddbe05073..d7ff228a19 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp @@ -38,6 +38,16 @@ IMUCursor::IMUCursor(std::string name_, std::string ui_name_) // i18n: Refers to emulated wii remote movements. _trans("Clamping of rotation about the yaw axis.")}, 25, 0, 360); + + AddSetting(&m_accel_weight_setting, + {// i18n: Percentage value of accelerometer data (complementary filter coefficient). + _trans("Accelerometer Influence"), + // i18n: The symbol/abbreviation for percent. + _trans("%"), + // i18n: Refers to a setting controling the influence of accelerometer data. + _trans("Influence of accelerometer data on pitch and roll. Higher values will reduce " + "drift at the cost of noise. Consider values between 1% and 3%.")}, + 2, 0, 100); } ControlState IMUCursor::GetTotalYaw() const @@ -45,4 +55,9 @@ ControlState IMUCursor::GetTotalYaw() const return m_yaw_setting.GetValue() * MathUtil::TAU / 360; } +ControlState IMUCursor::GetAccelWeight() const +{ + return m_accel_weight_setting.GetValue() / 100; +} + } // namespace ControllerEmu diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.h index c599d05021..dac1479bc6 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.h +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.h @@ -19,7 +19,10 @@ public: // Yaw movement in radians. ControlState GetTotalYaw() const; + ControlState GetAccelWeight() const; + private: SettingValue m_yaw_setting; + SettingValue m_accel_weight_setting; }; } // namespace ControllerEmu From db6e928c8d4dab785cb7ea2c04e8f03325badc8d Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 12 Jun 2022 21:43:00 -0500 Subject: [PATCH 212/659] VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders --- Source/Core/VideoBackends/Vulkan/VulkanContext.cpp | 4 ++++ Source/Core/VideoCommon/DriverDetails.cpp | 2 ++ Source/Core/VideoCommon/DriverDetails.h | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp index 0a82d6451f..1dc02e689a 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp +++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp @@ -377,6 +377,10 @@ void VulkanContext::PopulateBackendInfoFeatures(VideoConfig* config, VkPhysicalD // We will use shader blending, so disable hardware dual source blending. config->backend_info.bSupportsDualSourceBlend = false; } + + // Dynamic sampler indexing locks up Intel GPUs on MoltenVK/Metal + if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING)) + config->backend_info.bSupportsDynamicSamplerIndexing = false; } void VulkanContext::PopulateBackendInfoMultisampleModes( diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index 6d7749c949..35e0808469 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -142,6 +142,8 @@ constexpr BugInfo m_known_bugs[] = { -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_APPLE, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_DISCARD_WITH_EARLY_Z, -1.0, -1.0, true}, + {API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN, + BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, -1.0, -1.0, true}, }; static std::map m_bugs; diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 70c39450c9..80159495ee 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -328,6 +328,12 @@ enum Bug // Started version: -1 // Ended version: -1 BUG_BROKEN_DISCARD_WITH_EARLY_Z, + + // BUG: Using dynamic sampler indexing locks up the GPU + // Affected devices: Intel (macOS Metal) + // Started version: -1 + // Ended version: -1 + BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, }; // Initializes our internal vendor, device family, and driver version From 25929789c1e80d7a22d6acdb14082bc44e4fb0e9 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 12 Jun 2022 21:31:16 -0500 Subject: [PATCH 213/659] VideoCommon: Don't pass State by inout Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`. Not all Metal backends handle this mess well. In particular, it causes register spills on Intel, losing about 5% in performance. --- Source/Core/VideoCommon/UberShaderPixel.cpp | 23 +++++++-------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 161f40146a..29d52655b2 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -502,14 +502,6 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, "\n" "int4 getTevReg(in State s, uint index) {{\n"); WriteSwitch(out, api_type, "index", tev_regs_lookup_table, 2, false); - out.Write("}}\n" - "\n" - "void setRegColor(inout State s, uint index, int3 color) {{\n"); - WriteSwitch(out, api_type, "index", tev_c_set_table, 2, true); - out.Write("}}\n" - "\n" - "void setRegAlpha(inout State s, uint index, int alpha) {{\n"); - WriteSwitch(out, api_type, "index", tev_a_set_table, 2, true); out.Write("}}\n" "\n"); @@ -861,9 +853,9 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " else\n" " color = clamp(color, -1024, 1023);\n" "\n" - " // Write result to the correct input register of the next stage\n" - " setRegColor(s, color_dest, color);\n" - "\n"); + " // Write result to the correct input register of the next stage\n"); + WriteSwitch(out, api_type, "color_dest", tev_c_set_table, 6, true); + out.Write("\n"); // Alpha combiner out.Write(" // Alpha Combiner\n"); @@ -927,11 +919,10 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " else\n" " alpha = clamp(alpha, -1024, 1023);\n" "\n" - " // Write result to the correct input register of the next stage\n" - " setRegAlpha(s, alpha_dest, alpha);\n" - " }}\n"); - - out.Write(" }} // Main TEV loop\n" + " // Write result to the correct input register of the next stage\n"); + WriteSwitch(out, api_type, "alpha_dest", tev_a_set_table, 6, true); + out.Write(" }}\n" + " }} // Main TEV loop\n" "\n"); // Select the output color and alpha registers from the last stage. From 2193c8964ecb9750f445ef3f523896ea6cf175f4 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 16:23:44 -0700 Subject: [PATCH 214/659] DSPTool: Remove moved files from VS project file These were moved into UnitTests in #5449. --- Source/DSPTool/DSPTool.vcxproj | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Source/DSPTool/DSPTool.vcxproj b/Source/DSPTool/DSPTool.vcxproj index 846377f990..20401a4ddb 100644 --- a/Source/DSPTool/DSPTool.vcxproj +++ b/Source/DSPTool/DSPTool.vcxproj @@ -21,12 +21,6 @@ Console - - - - - - From 3cb0976367205aff969a6eda1c3b601e40c7f24e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:03:19 -0700 Subject: [PATCH 215/659] UnitTests: Use hermes.s as part of an actual test Before, the file just existed as the source code for HermesBinary.cpp, but we can test that things assemble correctly too (compare DSPTestBinary.cpp and DSPTestText.cpp). A bit of jank is needed due to MSVC limitations (see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2026?view=msvc-170). --- Source/UnitTests/Core/CMakeLists.txt | 1 + Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 15 ++++++--------- .../Core/DSP/{hermes.s => HermesText.cpp} | 10 ++++++++-- Source/UnitTests/Core/DSP/HermesText.h | 8 ++++++++ Source/UnitTests/UnitTests.vcxproj | 2 ++ 5 files changed, 25 insertions(+), 11 deletions(-) rename Source/UnitTests/Core/DSP/{hermes.s => HermesText.cpp} (97%) create mode 100644 Source/UnitTests/Core/DSP/HermesText.h diff --git a/Source/UnitTests/Core/CMakeLists.txt b/Source/UnitTests/Core/CMakeLists.txt index 134f7da78b..1e24489239 100644 --- a/Source/UnitTests/Core/CMakeLists.txt +++ b/Source/UnitTests/Core/CMakeLists.txt @@ -8,6 +8,7 @@ add_dolphin_test(DSPAssemblyTest DSP/DSPTestBinary.cpp DSP/DSPTestText.cpp DSP/HermesBinary.cpp + DSP/HermesText.cpp ) add_dolphin_test(ESFormatsTest IOS/ES/FormatsTest.cpp) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index dd3c96e194..ecd543d168 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -8,6 +8,7 @@ #include "DSPTestBinary.h" #include "DSPTestText.h" #include "HermesBinary.h" +#include "HermesText.h" #include @@ -129,6 +130,11 @@ TEST(DSPAssembly, ExtendedInstructions) " ADDAXL'MV $ACC1, $AX1.L : $AX1.H, $AC1.M\n")); } +TEST(DSPAssembly, HermesText) +{ + ASSERT_TRUE(SuperTrip(s_hermes_text)); +} + TEST(DSPAssembly, HermesBinary) { ASSERT_TRUE(RoundTrip(s_hermes_bin)); @@ -143,12 +149,3 @@ TEST(DSPAssembly, DSPTestBinary) { ASSERT_TRUE(RoundTrip(s_dsp_test_bin)); } - -/* - -if (File::ReadFileToString("C:/devkitPro/examples/wii/asndlib/dsptest/dsp_test.ds", &dsp_test)) - SuperTrip(dsp_test.c_str()); - -//.File::ReadFileToString("C:/devkitPro/trunk/libogc/libasnd/dsp_mixer/dsp_mixer.s", &dsp_test); -// This is CLOSE to working. Sorry about the local path btw. This is preliminary code. -*/ diff --git a/Source/UnitTests/Core/DSP/hermes.s b/Source/UnitTests/Core/DSP/HermesText.cpp similarity index 97% rename from Source/UnitTests/Core/DSP/hermes.s rename to Source/UnitTests/Core/DSP/HermesText.cpp index d5418a578a..1b643a0c9b 100644 --- a/Source/UnitTests/Core/DSP/hermes.s +++ b/Source/UnitTests/Core/DSP/HermesText.cpp @@ -9,7 +9,9 @@ SPDX-License-Identifier: BSD-3-Clause */ +#include "HermesText.h" +const char s_hermes_text[21370] = R"( /********************************/ /** REGISTER NAMES **/ /********************************/ @@ -542,7 +544,11 @@ no_delay: ///////////////////////////////////// // end of delay time section ///////////////////////////////////// - +)" // Work around C2026 on MSVC, which allows at most 16380 single-byte characters in a single + // non-concatenated string literal (but you can concatenate multiple shorter string literals to + // produce a longer string just fine). (This comment is not part of the actual test program, + // and instead there is a single blank line at this location.) + R"( /* bucle de generacion de samples */ @@ -1077,4 +1083,4 @@ polla_loca: clr $ACC0 jmp recv_cmd - +)"; diff --git a/Source/UnitTests/Core/DSP/HermesText.h b/Source/UnitTests/Core/DSP/HermesText.h new file mode 100644 index 0000000000..99c16686e2 --- /dev/null +++ b/Source/UnitTests/Core/DSP/HermesText.h @@ -0,0 +1,8 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +extern const char s_hermes_text[21370]; diff --git a/Source/UnitTests/UnitTests.vcxproj b/Source/UnitTests/UnitTests.vcxproj index b13cab4d0d..da461087e9 100644 --- a/Source/UnitTests/UnitTests.vcxproj +++ b/Source/UnitTests/UnitTests.vcxproj @@ -28,6 +28,7 @@ + @@ -60,6 +61,7 @@ + From dd66dac5c166e2e4fb9195a914f10cdd2f9eb3c4 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:05:24 -0700 Subject: [PATCH 216/659] UnitTests: Fix typo in DSPAssemblyTest --- Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index ecd543d168..fabdc73c3c 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -12,7 +12,7 @@ #include -static bool RoundTrippableDissassemble(const std::vector& code, std::string& text) +static bool RoundTrippableDisassemble(const std::vector& code, std::string& text) { DSP::AssemblerSettings settings; settings.ext_separator = '\''; @@ -32,7 +32,7 @@ static bool RoundTrip(const std::vector& code1) { std::vector code2; std::string text; - if (!RoundTrippableDissassemble(code1, text)) + if (!RoundTrippableDisassemble(code1, text)) { printf("RoundTrip: Disassembly failed.\n"); return false; @@ -63,7 +63,7 @@ static bool SuperTrip(const char* asm_code) } printf("First assembly: %i words\n", (int)code1.size()); - if (!RoundTrippableDissassemble(code1, text)) + if (!RoundTrippableDisassemble(code1, text)) { printf("SuperTrip: Disassembly failed\n"); return false; From 8fac249581c3d344dd956a536d4b109ab587faa4 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:20:13 -0700 Subject: [PATCH 217/659] UnitTests: Use fmt::print in PageFaultTest --- Source/UnitTests/Core/PageFaultTest.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Source/UnitTests/Core/PageFaultTest.cpp b/Source/UnitTests/Core/PageFaultTest.cpp index e340ca7646..e873a28e73 100644 --- a/Source/UnitTests/Core/PageFaultTest.cpp +++ b/Source/UnitTests/Core/PageFaultTest.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include +#include #include "Common/CommonTypes.h" #include "Common/Timer.h" @@ -79,16 +80,19 @@ TEST(PageFault, PageFault) perform_invalid_access(data); auto end = std::chrono::high_resolution_clock::now(); -#define AS_NS(diff) \ - ((unsigned long long)std::chrono::duration_cast(diff).count()) + auto difference_in_nanoseconds = [](auto start, auto end) { + return std::chrono::duration_cast(end - start).count(); + }; EMM::UninstallExceptionHandler(); JitInterface::SetJit(nullptr); - printf("page fault timing:\n"); - printf("start->HandleFault %llu ns\n", AS_NS(pfjit.m_pre_unprotect_time - start)); - printf("UnWriteProtectMemory %llu ns\n", - AS_NS(pfjit.m_post_unprotect_time - pfjit.m_pre_unprotect_time)); - printf("HandleFault->end %llu ns\n", AS_NS(end - pfjit.m_post_unprotect_time)); - printf("total %llu ns\n", AS_NS(end - start)); + fmt::print("page fault timing:\n"); + fmt::print("start->HandleFault {} ns\n", + difference_in_nanoseconds(start, pfjit.m_pre_unprotect_time)); + fmt::print("UnWriteProtectMemory {} ns\n", + difference_in_nanoseconds(pfjit.m_pre_unprotect_time, pfjit.m_post_unprotect_time)); + fmt::print("HandleFault->end {} ns\n", + difference_in_nanoseconds(pfjit.m_post_unprotect_time, end)); + fmt::print("total {} ns\n", difference_in_nanoseconds(start, end)); } From d8803a129849f087e670a4f29892e769190f6b77 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:23:23 -0700 Subject: [PATCH 218/659] UnitTests: Use fmt::print in DSPAssemblyTest --- Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index fabdc73c3c..c9d21bb9a0 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -1,6 +1,8 @@ // Copyright 2017 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include + #include "Common/FileUtil.h" #include "Core/DSP/DSPCodeUtil.h" #include "Core/DSP/DSPDisassembler.h" @@ -34,18 +36,18 @@ static bool RoundTrip(const std::vector& code1) std::string text; if (!RoundTrippableDisassemble(code1, text)) { - printf("RoundTrip: Disassembly failed.\n"); + fmt::print("RoundTrip: Disassembly failed.\n"); return false; } if (!DSP::Assemble(text, code2)) { - printf("RoundTrip: Assembly failed.\n"); + fmt::print("RoundTrip: Assembly failed.\n"); return false; } if (!DSP::Compare(code1, code2)) { DSP::Disassemble(code1, true, text); - printf("%s", text.c_str()); + fmt::print("{}", text); } return true; } @@ -58,25 +60,25 @@ static bool SuperTrip(const char* asm_code) std::string text; if (!DSP::Assemble(asm_code, code1)) { - printf("SuperTrip: First assembly failed\n"); + fmt::print("SuperTrip: First assembly failed\n"); return false; } - printf("First assembly: %i words\n", (int)code1.size()); + fmt::print("First assembly: {} words\n", code1.size()); if (!RoundTrippableDisassemble(code1, text)) { - printf("SuperTrip: Disassembly failed\n"); + fmt::print("SuperTrip: Disassembly failed\n"); return false; } else { - printf("Disassembly:\n"); - printf("%s", text.c_str()); + fmt::print("Disassembly:\n"); + fmt::print("{}", text); } if (!DSP::Assemble(text, code2)) { - printf("SuperTrip: Second assembly failed\n"); + fmt::print("SuperTrip: Second assembly failed\n"); return false; } return true; From 693a29f8ceeb1166658d9c0752b6e84660077374 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:55:43 -0700 Subject: [PATCH 219/659] DSPCodeUtil: Use fmt::print instead of logging in DSP::Compare --- Source/Core/Core/DSP/DSPCodeUtil.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/DSP/DSPCodeUtil.cpp b/Source/Core/Core/DSP/DSPCodeUtil.cpp index 9a33edc9ba..f7d358e710 100644 --- a/Source/Core/Core/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/DSP/DSPCodeUtil.cpp @@ -57,10 +57,12 @@ bool Disassemble(const std::vector& code, bool line_numbers, std::string& t return success; } +// NOTE: This code is called from DSPTool and UnitTests, which do not use the logging system. +// Thus, fmt::print is used instead of the log system. bool Compare(const std::vector& code1, const std::vector& code2) { if (code1.size() != code2.size()) - WARN_LOG_FMT(AUDIO, "Size difference! 1={} 2={}\n", code1.size(), code2.size()); + fmt::print("Size difference! 1={} 2={}\n", code1.size(), code2.size()); u32 count_equal = 0; const u16 min_size = static_cast(std::min(code1.size(), code2.size())); @@ -79,23 +81,23 @@ bool Compare(const std::vector& code1, const std::vector& code2) disassembler.DisassembleOpcode(&code1[0], &pc, line1); pc = i; disassembler.DisassembleOpcode(&code2[0], &pc, line2); - WARN_LOG_FMT(AUDIO, "!! {:04x} : {:04x} vs {:04x} - {} vs {}\n", i, code1[i], code2[i], - line1, line2); + fmt::print("!! {:04x} : {:04x} vs {:04x} - {} vs {}\n", i, code1[i], code2[i], line1, + line2); } } if (code2.size() != code1.size()) { - DEBUG_LOG_FMT(AUDIO, "Extra code words:\n"); + fmt::print("Extra code words:\n"); const std::vector& longest = code1.size() > code2.size() ? code1 : code2; for (u16 i = min_size; i < longest.size(); i++) { u16 pc = i; std::string line; disassembler.DisassembleOpcode(&longest[0], &pc, line); - DEBUG_LOG_FMT(AUDIO, "!! {}\n", line); + fmt::print("!! {}\n", line); } } - DEBUG_LOG_FMT(AUDIO, "Equal instruction words: {} / {}\n", count_equal, min_size); + fmt::print("Equal instruction words: {} / {}\n", count_equal, min_size); return code1.size() == code2.size() && code1.size() == count_equal; } From dc353ed84d780c0a7bd2c6d98e893a6db304933e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 17:56:49 -0700 Subject: [PATCH 220/659] DSPTool: Exit with status 1 if binary comparison fails --- Source/DSPTool/DSPTool.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Source/DSPTool/DSPTool.cpp b/Source/DSPTool/DSPTool.cpp index 3c4b350479..41299771ce 100644 --- a/Source/DSPTool/DSPTool.cpp +++ b/Source/DSPTool/DSPTool.cpp @@ -128,7 +128,7 @@ static std::string CodesToHeader(const std::vector>& codes, return header; } -static void PerformBinaryComparison(const std::string& lhs, const std::string& rhs) +static bool PerformBinaryComparison(const std::string& lhs, const std::string& rhs) { std::string binary_code; @@ -138,7 +138,7 @@ static void PerformBinaryComparison(const std::string& lhs, const std::string& r File::ReadFileToString(rhs, binary_code); const std::vector code2 = DSP::BinaryStringBEToCode(binary_code); - DSP::Compare(code1, code2); + return DSP::Compare(code1, code2); } static void PrintResults(const std::string& input_name, const std::string& output_name, @@ -482,8 +482,7 @@ int main(int argc, const char* argv[]) if (compare) { - PerformBinaryComparison(input_name, output_name); - return 0; + return PerformBinaryComparison(input_name, output_name) ? 0 : 1; } if (print_results) From cad9801ded56ecee0922ebb8d304cacb6c69541d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 18:34:17 -0700 Subject: [PATCH 221/659] DSPDisassembler: Fix out-of-bounds read when the last word is an instruction with a large immediate For instance, ending with 0x009e (which you can do with CW 0x009e) indicates a LRI $ac0.m instruction, but there is no immediate value to load, so before whatever garbage in memory existed after the end of the file was used. The bounds-checking also previously assumed that IRAM or IROM was being used, both of which were exactly 0x1000 long. --- Source/Core/Core/DSP/DSPCodeUtil.cpp | 6 ++--- Source/Core/Core/DSP/DSPDisassembler.cpp | 31 ++++++++++++++++++----- Source/Core/Core/DSP/DSPDisassembler.h | 6 +++-- Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp | 4 ++- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/DSP/DSPCodeUtil.cpp b/Source/Core/Core/DSP/DSPCodeUtil.cpp index f7d358e710..b825c15776 100644 --- a/Source/Core/Core/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/DSP/DSPCodeUtil.cpp @@ -78,9 +78,9 @@ bool Compare(const std::vector& code1, const std::vector& code2) { std::string line1, line2; u16 pc = i; - disassembler.DisassembleOpcode(&code1[0], &pc, line1); + disassembler.DisassembleOpcode(code1, &pc, line1); pc = i; - disassembler.DisassembleOpcode(&code2[0], &pc, line2); + disassembler.DisassembleOpcode(code2, &pc, line2); fmt::print("!! {:04x} : {:04x} vs {:04x} - {} vs {}\n", i, code1[i], code2[i], line1, line2); } @@ -93,7 +93,7 @@ bool Compare(const std::vector& code1, const std::vector& code2) { u16 pc = i; std::string line; - disassembler.DisassembleOpcode(&longest[0], &pc, line); + disassembler.DisassembleOpcode(longest, &pc, line); fmt::print("!! {}\n", line); } } diff --git a/Source/Core/Core/DSP/DSPDisassembler.cpp b/Source/Core/Core/DSP/DSPDisassembler.cpp index 01817c0780..91f9b8f593 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.cpp +++ b/Source/Core/Core/DSP/DSPDisassembler.cpp @@ -33,9 +33,10 @@ bool DSPDisassembler::Disassemble(const std::vector& code, std::string& tex for (u16 pc = 0; pc < code.size();) { - if (!DisassembleOpcode(code.data(), &pc, text)) - return false; + bool failed = !DisassembleOpcode(code, &pc, text); text.append("\n"); + if (failed) + return false; } return true; } @@ -139,16 +140,23 @@ std::string DSPDisassembler::DisassembleParameters(const DSPOPCTemplate& opc, u1 return buf; } -bool DSPDisassembler::DisassembleOpcode(const u16* binbuf, u16* pc, std::string& dest) +bool DSPDisassembler::DisassembleOpcode(const std::vector& code, u16* pc, std::string& dest) { - if ((*pc & 0x7fff) >= 0x1000) + return DisassembleOpcode(code.data(), code.size(), pc, dest); +} + +bool DSPDisassembler::DisassembleOpcode(const u16* binbuf, size_t binbuf_size, u16* pc, + std::string& dest) +{ + const u16 wrapped_pc = (*pc & 0x7fff); + if (wrapped_pc >= binbuf_size) { ++pc; dest.append("; outside memory"); return false; } - const u16 op1 = binbuf[*pc & 0x0fff]; + const u16 op1 = binbuf[wrapped_pc]; // Find main opcode const DSPOPCTemplate* opc = FindOpInfoByOpcode(op1); @@ -179,14 +187,23 @@ bool DSPDisassembler::DisassembleOpcode(const u16* binbuf, u16* pc, std::string& // printing if (settings_.show_pc) - dest += fmt::format("{:04x} ", *pc); + dest += fmt::format("{:04x} ", wrapped_pc); u16 op2; // Size 2 - the op has a large immediate. if (opc->size == 2) { - op2 = binbuf[(*pc + 1) & 0x0fff]; + if (wrapped_pc + 1 >= binbuf_size) + { + if (settings_.show_hex) + dest += fmt::format("{:04x} ???? ", op1); + dest += fmt::format("; Insufficient data for large immediate"); + *pc += opc->size; + return false; + } + + op2 = binbuf[wrapped_pc + 1]; if (settings_.show_hex) dest += fmt::format("{:04x} {:04x} ", op1, op2); } diff --git a/Source/Core/Core/DSP/DSPDisassembler.h b/Source/Core/Core/DSP/DSPDisassembler.h index 37a556050c..294cc8df52 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.h +++ b/Source/Core/Core/DSP/DSPDisassembler.h @@ -34,8 +34,10 @@ public: bool Disassemble(const std::vector& code, std::string& text); - // Warning - this one is trickier to use right. - bool DisassembleOpcode(const u16* binbuf, u16* pc, std::string& dest); + // Disassembles the given opcode at pc and increases pc by the opcode's size. + // The PC is wrapped such that 0x0000 and 0x8000 both point to the start of the buffer. + bool DisassembleOpcode(const std::vector& code, u16* pc, std::string& dest); + bool DisassembleOpcode(const u16* binbuf, size_t binbuf_size, u16* pc, std::string& dest); private: std::string DisassembleParameters(const DSPOPCTemplate& opc, u16 op1, u16 op2); diff --git a/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp b/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp index ab1ff3ce0b..8f190f1ebe 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp +++ b/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp @@ -77,13 +77,15 @@ void AutoDisassembly(const SDSP& dsp, u16 start_addr, u16 end_addr) u16 addr = start_addr; const u16* ptr = (start_addr >> 15) != 0 ? dsp.irom : dsp.iram; + constexpr size_t size = DSP_IROM_SIZE; + static_assert(size == DSP_IRAM_SIZE); while (addr < end_addr) { line_to_addr[line_counter] = addr; addr_to_line[addr] = line_counter; std::string buf; - if (!disasm.DisassembleOpcode(ptr, &addr, buf)) + if (!disasm.DisassembleOpcode(ptr, size, &addr, buf)) { ERROR_LOG_FMT(DSPLLE, "disasm failed at {:04x}", addr); break; From 087d89225c351bd45c8ccd4550e9dc4861f6312d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 18:49:59 -0700 Subject: [PATCH 222/659] DSPCodeUtil: Give better output when comparing instructions with large immediates --- Source/Core/Core/DSP/DSPCodeUtil.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Source/Core/Core/DSP/DSPCodeUtil.cpp b/Source/Core/Core/DSP/DSPCodeUtil.cpp index b825c15776..d196a5a5b5 100644 --- a/Source/Core/Core/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/DSP/DSPCodeUtil.cpp @@ -83,6 +83,27 @@ bool Compare(const std::vector& code1, const std::vector& code2) disassembler.DisassembleOpcode(code2, &pc, line2); fmt::print("!! {:04x} : {:04x} vs {:04x} - {} vs {}\n", i, code1[i], code2[i], line1, line2); + + // Also do a comparison one word back if the previous word corresponded to an instruction with + // a large immediate. (Compare operates on individual words, so both the main word and the + // immediate following it are compared separately; we don't use DisassembleOpcode's ability to + // increment pc by 2 for two-word instructions because code1 may have a 1-word instruction + // where code2 has a 2-word instruction.) + if (i >= 1 && code1[i - 1] == code2[i - 1]) + { + const DSPOPCTemplate* opc = FindOpInfoByOpcode(code1[i - 1]); + if (opc != nullptr && opc->size == 2) + { + line1.clear(); + line2.clear(); + pc = i - 1; + disassembler.DisassembleOpcode(code1, &pc, line1); + pc = i - 1; + disassembler.DisassembleOpcode(code2, &pc, line2); + fmt::print(" (or {:04x} : {:04x} {:04x} vs {:04x} {:04x} - {} vs {})\n", i - 1, + code1[i - 1], code1[i], code2[i - 1], code2[i], line1, line2); + } + } } } if (code2.size() != code1.size()) From 2d774010c3db58af0601684dcb0e348cf3f638e5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 18:50:42 -0700 Subject: [PATCH 223/659] DSPCodeUtil: Include the PC and hex in the "Extra code words" section It's included in the section before, so it's helpful to supply here too. --- Source/Core/Core/DSP/DSPCodeUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/DSPCodeUtil.cpp b/Source/Core/Core/DSP/DSPCodeUtil.cpp index d196a5a5b5..074dd86c3a 100644 --- a/Source/Core/Core/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/DSP/DSPCodeUtil.cpp @@ -115,7 +115,7 @@ bool Compare(const std::vector& code1, const std::vector& code2) u16 pc = i; std::string line; disassembler.DisassembleOpcode(longest, &pc, line); - fmt::print("!! {}\n", line); + fmt::print("!! {:04x} : {:04x} - {}\n", i, longest[i], line); } } fmt::print("Equal instruction words: {} / {}\n", count_equal, min_size); From 6a2ec825a225d07208d61aeeaf62c3c5525745f0 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 19:00:15 -0700 Subject: [PATCH 224/659] UnitTests: Fail DSPAssemblyTest if the assembled code doesn't match the expected result This reveals that both HermesText and HermesBinary fail. HermesBinary would have failed on master, too, if this had been implemented. --- Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index c9d21bb9a0..17e4d70b3d 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -46,8 +46,8 @@ static bool RoundTrip(const std::vector& code1) } if (!DSP::Compare(code1, code2)) { - DSP::Disassemble(code1, true, text); - fmt::print("{}", text); + fmt::print("RoundTrip: Assembled code does not match input code\n"); + return false; } return true; } @@ -81,6 +81,12 @@ static bool SuperTrip(const char* asm_code) fmt::print("SuperTrip: Second assembly failed\n"); return false; } + + if (!DSP::Compare(code1, code2)) + { + fmt::print("SuperTrip: Assembled code does not match between passes\n"); + return false; + } return true; } From 41939eeaf9850f8c0859292720ed3d8101e0e70c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 19:24:37 -0700 Subject: [PATCH 225/659] DSPDisassembler: Fix disassembly of LSR and ASR Before, both 1441 and 147f would disassemble as `lsr $acc0, #1`, when the second should be `lsr $acc0, #-1`, and both 14c1 and 14ff would be `asr $acc0, #1` when the second should be `asr $acc0, #-1`. I'm not entirely sure whether the minus signs actually make sense here, but this change is consistent with the assembler so that's an improvement at least. devkitPro previously changed the formatting to not require negative signs for lsr and asr; this is probably something we should do in the future: https://github.com/devkitPro/gamecube-tools/commit/8a65c85c9b4748ed3dab3c0c85aeb0df95d58cfb This fixes the HermesText and HermesBinary tests (HermesText already wrote `lsr $ACC0, #-5`, so this is consistent with what it used before.) --- Source/Core/Core/DSP/DSPDisassembler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/DSPDisassembler.cpp b/Source/Core/Core/DSP/DSPDisassembler.cpp index 91f9b8f593..6e833cdf16 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.cpp +++ b/Source/Core/Core/DSP/DSPDisassembler.cpp @@ -108,7 +108,7 @@ std::string DSPDisassembler::DisassembleParameters(const DSPOPCTemplate& opc, u1 { // Left and right shifts function essentially as a single shift by a 7-bit signed value, // but are split into two intructions for clarity. - buf += fmt::format("#{}", (val & 0x20) != 0 ? (64 - val) : val); + buf += fmt::format("#{}", (val & 0x20) != 0 ? (int(val) - 64) : int(val)); } else { From d52528a6f0f3c06d38d31447bf861d8773f9bb1b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 19:52:40 -0700 Subject: [PATCH 226/659] UnitTests: Add tests for assembling DSP code to expected binary We already have the data for this, so this seems like a useful thing to do. However, neither of the new tests currently pass... --- Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index 17e4d70b3d..8f99fd83d3 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -90,6 +90,29 @@ static bool SuperTrip(const char* asm_code) return true; } +// Assembles asm_code, and verifies that it matches code1. +static bool AssembleAndCompare(const char* asm_code, const std::vector& code1) +{ + std::vector code2; + if (!DSP::Assemble(asm_code, code2)) + { + fmt::print("AssembleAndCompare: Assembly failed\n"); + return false; + } + + fmt::print("AssembleAndCompare: Produced {} words; padding to {} words\n", code2.size(), + code1.size()); + while (code2.size() < code1.size()) + code2.push_back(0); + + if (!DSP::Compare(code1, code2)) + { + fmt::print("AssembleAndCompare: Assembled code does not match expected code\n"); + return false; + } + return true; +} + // Let's start out easy - a trivial instruction.. TEST(DSPAssembly, TrivialInstruction) { @@ -148,6 +171,11 @@ TEST(DSPAssembly, HermesBinary) ASSERT_TRUE(RoundTrip(s_hermes_bin)); } +TEST(DSPAssembly, HermesAssemble) +{ + ASSERT_TRUE(AssembleAndCompare(s_hermes_text, s_hermes_bin)); +} + TEST(DSPAssembly, DSPTestText) { ASSERT_TRUE(SuperTrip(s_dsp_test_text)); @@ -157,3 +185,8 @@ TEST(DSPAssembly, DSPTestBinary) { ASSERT_TRUE(RoundTrip(s_dsp_test_bin)); } + +TEST(DSPAssembly, DSPTestAssemble) +{ + ASSERT_TRUE(AssembleAndCompare(s_dsp_test_text, s_dsp_test_bin)); +} From 36769017c0417138b77e2a4012dffd6add7cc2cd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 21:46:03 -0700 Subject: [PATCH 227/659] UnitTests: Update DSP test text for old renames This change makes assembling DSPTestText match DSPTestBinary, though HermesText doesn't yet match HermesBinary. The test data was originally added on April 18, 2009 in e7e4ef4481d1c5dcce6463414d815843ae15b8e2. Then, set16 and set40 were swapped on April 22, 2009 89178f411cf1e8ef61b005197545618e53a0d4e8, which updated the DSPSpy version of dsp_code, but not the version in DSPTool used for testing. So, when the test was made, the assembled data matched the text, but a few days after it no longer did. Similarly, on Jul 7, 2009 in 1654c582ab9a6323a31802c4b241c0cffc9d3bca the conditional instructions were adjusted, and 0x1706 was changed from JRL to JRNC and 0x0297 was changed from JGE to JC. For what it's worth, devkitPro made the same changes on May 31, 2010 in https://github.com/devkitPro/gamecube-tools/commit/8a65c85c9b4748ed3dab3c0c85aeb0df95d58cfb and updated their version of the asnd ucode (which is this ucode) on June 11, 2011 in https://github.com/devkitpro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 (though this update also includes other feature changes). Note that at the time, they didn't reassemble the ucode unless they made changes to it; the assembled was stored in the repo until https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93. This fixes the following failures with Hermes: !! 0015 : 8e00 vs 8f00 - set16 vs set40 !! 016f : 8e00 vs 8f00 - set16 vs set40 and with Hermes: !! 0014 : 8e00 vs 8f00 - set16 vs set40 !! 0063 : 8e00 vs 8f00 - set16 vs set40 !! 019b : 1706 vs 1701 - jrnc $AR0 vs jrl $AR0 !! 01bf : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc !! 01d2 : 0297 vs 0290 - jc 0x01dc vs jge 0x01dc Hermes has the remaining failures: !! 027b : 03c0 vs 03a0 - andcf $AC1.M, #0x8000 vs andf $AC1.M, #0x8000 !! 027d : 029d vs 0294 - jlz 0x027a vs jnz 0x027a --- Source/UnitTests/Core/DSP/DSPTestText.cpp | 6 +++--- Source/UnitTests/Core/DSP/HermesText.cpp | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/UnitTests/Core/DSP/DSPTestText.cpp b/Source/UnitTests/Core/DSP/DSPTestText.cpp index 2e1f60a450..bc02ef1ba2 100644 --- a/Source/UnitTests/Core/DSP/DSPTestText.cpp +++ b/Source/UnitTests/Core/DSP/DSPTestText.cpp @@ -89,7 +89,7 @@ MEM_LO: equ 0x0f7F CW 0x1305 CW 0x1306 - s40 + s16 lri $r12, #0x00ff main: @@ -469,7 +469,7 @@ irq4: jmp irq irq5: ; jmp finale - s40 + s16 mrr $r0d, $r1c mrr $r0d, $r1e clr $acc0 @@ -609,7 +609,7 @@ dma_copy: ret -send_back_16: +send_back_40: cw 0x8e00 call send_back diff --git a/Source/UnitTests/Core/DSP/HermesText.cpp b/Source/UnitTests/Core/DSP/HermesText.cpp index 1b643a0c9b..fd59677d35 100644 --- a/Source/UnitTests/Core/DSP/HermesText.cpp +++ b/Source/UnitTests/Core/DSP/HermesText.cpp @@ -175,7 +175,7 @@ MEM_SND: equ data_end ; it need 2048 words (4096 bytes) lri $CONFIG, #0xff lri $SR,#0 - s40 + s16 clr15 m0 @@ -256,7 +256,7 @@ sys_command: jmp recv_cmd run_nexttask: - s40 + s16 call wait_for_cpu_mail lrs $29,@CMBL call wait_for_cpu_mail @@ -661,7 +661,7 @@ left_skip2: cmp - jrl $AR0 //get_sample or get_sample2 method + jrnc $AR0 //get_sample or get_sample2 method sr @COUNTERH_SMP, $ACH1 sr @COUNTERL_SMP, $ACM1 @@ -717,7 +717,7 @@ get_sample2: // slow method // if addr>addr end get a new buffer (if you uses double buffer) - jge get_new_buffer + jc get_new_buffer // load samples from dma, return $ar2 with the addr to get the samples and return using $ar0 to the routine to process 8-16bits Mono/Stereo @@ -747,7 +747,7 @@ get_sample: // fast method // compares if the current address is >= end address to change the buffer or stops cmp - jge get_new_buffer + jc get_new_buffer // load the new sample from the buffer From 75ff89e8c7ff2befd77d512818d70aa032d73db6 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 23:07:14 -0700 Subject: [PATCH 228/659] UnitTests: Edit wait_for_dsp_mail in HermesText to match HermesBinary I don't know what happened here, unfortunately. The version of dsp_mixer.s added to libogc on Nov 14, 2008 in https://github.com/devkitPro/libogc/commit/c76d8b851fafc11b0a5debc0b40842929d5a5825 uses andcf and jlz here, and the version we have matches the one from Feb 5, 2009 in https://github.com/devkitPro/libogc/commit/ae5c3a5fb5aa4ccf1e1374b6e4f6be1aac118693 exactly (prior to the fixes in my previous commit). I can't see any reason why wait_for_dsp_mail would be changed like this. ANDCF and ANDF were previously swapped and JNE/JEQ/JZR/JNZ became JNZ/JZ/JLNZ/JLZ on Apr 3, 2009 in 7c4e6542533f7cef929ce86117b156c714820618, corresponding to a change Hermes made on Nov 10, 2008 in https://github.com/devkitPro/gamecube-tools/commit/2cea6d99ad518c963e24c3e28834473ff5312e69. But these predate the test being added. The only other information I can find is that ASNDLIB 1.0 released on November 11, 2008, at https://web.archive.org/web/20120326145022/http://www.entuwii.net/foro/viewtopic.php?f=6&t=87 (but there aren't any surviving links from there). --- Source/UnitTests/Core/DSP/HermesText.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/UnitTests/Core/DSP/HermesText.cpp b/Source/UnitTests/Core/DSP/HermesText.cpp index fd59677d35..f7f83a9737 100644 --- a/Source/UnitTests/Core/DSP/HermesText.cpp +++ b/Source/UnitTests/Core/DSP/HermesText.cpp @@ -967,8 +967,8 @@ wait_dma: wait_for_dsp_mail: lrs $ACM1, @DMBH - andf $ACM1, #0x8000 - jnz wait_for_dsp_mail + andcf $ACM1, #0x8000 + jlz wait_for_dsp_mail ret wait_for_cpu_mail: From 5ea3efaedf0e319c6f4011970911a20246c8927b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 13 Jun 2022 23:27:31 -0700 Subject: [PATCH 229/659] UnitTests: Fix license for HermesBinary.cpp This is an assembled version of HermesText.cpp, so the same license applies to it. --- Source/UnitTests/Core/DSP/HermesBinary.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/UnitTests/Core/DSP/HermesBinary.cpp b/Source/UnitTests/Core/DSP/HermesBinary.cpp index 299f50e16c..a7f485d0a0 100644 --- a/Source/UnitTests/Core/DSP/HermesBinary.cpp +++ b/Source/UnitTests/Core/DSP/HermesBinary.cpp @@ -1,5 +1,13 @@ -// Copyright 2017 Dolphin Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later +/* DSP_MIXER -> PCM VOICE SOFTWARE PROCESSOR (8-16 Bits Mono/Stereo Voices) + +// Thanks to Duddie for you hard work and documentation + +Copyright (c) 2008 Hermes +All rights reserved. + +SPDX-License-Identifier: BSD-3-Clause + +*/ #include "HermesBinary.h" From dec48ed7de1e9710dc2aad5690e3a32b8ee8ed13 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 14 Jun 2022 13:07:14 -0700 Subject: [PATCH 230/659] UnitTests: Remove unused include from DSPAssemblyTest --- Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp index 8f99fd83d3..44e4cde30e 100644 --- a/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp +++ b/Source/UnitTests/Core/DSP/DSPAssemblyTest.cpp @@ -3,7 +3,6 @@ #include -#include "Common/FileUtil.h" #include "Core/DSP/DSPCodeUtil.h" #include "Core/DSP/DSPDisassembler.h" From 994210e3692ae67d8d9c9deaa3d417eda06da1a4 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 30 May 2022 19:46:05 -0500 Subject: [PATCH 231/659] InputCommon: SDL 2.0.22 init crash workaround See https://github.com/libsdl-org/SDL/pull/5598 --- Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 15da51562d..a2e6893801 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -83,6 +83,11 @@ void Init() ERROR_LOG_FMT(CONTROLLERINTERFACE, "SDL failed to initialize"); return; #else +#if defined(__APPLE__) && !SDL_VERSION_ATLEAST(2, 0, 24) + // Bug in SDL 2.0.22 requires the first init to be done on the main thread to avoid crashing + SDL_InitSubSystem(SDL_INIT_JOYSTICK); + SDL_QuitSubSystem(SDL_INIT_JOYSTICK); +#endif s_hotplug_thread = std::thread([] { Common::ScopeGuard quit_guard([] { // TODO: there seems to be some sort of memory leak with SDL, quit isn't freeing everything up From 3fe1a1a3d77bd4f3f15bd84cf76d164029b2ad31 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sat, 4 Jun 2022 22:37:06 -0500 Subject: [PATCH 232/659] VideoCommon: Don't add garbage to shader uids in debug builds There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero --- Source/Core/VideoCommon/ShaderGenCommon.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/VideoCommon/ShaderGenCommon.h b/Source/Core/VideoCommon/ShaderGenCommon.h index c9f0246318..88fb5c7353 100644 --- a/Source/Core/VideoCommon/ShaderGenCommon.h +++ b/Source/Core/VideoCommon/ShaderGenCommon.h @@ -71,6 +71,8 @@ public: static_assert(std::is_trivially_copyable_v, "uid_data must be a trivially copyable type"); + ShaderUid() { memset(GetUidData(), 0, GetUidDataSize()); } + bool operator==(const ShaderUid& obj) const { return memcmp(GetUidData(), obj.GetUidData(), GetUidDataSize()) == 0; From ac3920a0da590b5925c0dedde7372f8998223f7e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 15 Jun 2022 10:42:14 +0200 Subject: [PATCH 233/659] Qt/GameCubePane: Fix swapping memory cards mid-emulation. --- Source/Core/DolphinQt/Settings/GameCubePane.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp index 82aea64a23..94591c7721 100644 --- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp +++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp @@ -372,6 +372,7 @@ void GameCubePane::BrowseMemcard(ExpansionInterface::Slot slot) } } + const std::string old_eu_path = Config::GetMemcardPath(slot, DiscIO::Region::PAL); Config::SetBase(Config::GetInfoForMemcardPath(slot), raw_path); if (Core::IsRunning()) @@ -379,7 +380,6 @@ void GameCubePane::BrowseMemcard(ExpansionInterface::Slot slot) // If emulation is running and the new card is different from the old one, notify the system to // eject the old and insert the new card. // TODO: This should probably done by a config change callback instead. - const std::string old_eu_path = Config::GetMemcardPath(slot, DiscIO::Region::PAL); if (eu_path != old_eu_path) { // ChangeDevice unplugs the device for 1 second, which means that games should notice that From 23c1721fbd317a31046affcf362848bc191f4711 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sat, 11 Jun 2022 02:51:24 -0500 Subject: [PATCH 234/659] VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders --- Source/Core/VideoCommon/ShaderCache.cpp | 18 ++++++++----- Source/Core/VideoCommon/ShaderCache.h | 3 ++- Source/Core/VideoCommon/TextureCacheBase.cpp | 3 ++- .../VideoCommon/TextureConversionShader.cpp | 27 +++++++++++-------- .../VideoCommon/TextureConversionShader.h | 3 ++- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 984793d9d8..38ac252832 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -1339,10 +1339,12 @@ const AbstractPipeline* ShaderCache::GetTextureReinterpretPipeline(TextureFormat return iiter.first->second.get(); } -const AbstractShader* ShaderCache::GetTextureDecodingShader(TextureFormat format, - TLUTFormat palette_format) +const AbstractShader* +ShaderCache::GetTextureDecodingShader(TextureFormat format, + std::optional palette_format) { - const auto key = std::make_pair(static_cast(format), static_cast(palette_format)); + const auto key = std::make_pair(static_cast(format), + static_cast(palette_format.value_or(TLUTFormat::IA8))); auto iter = m_texture_decoding_shaders.find(key); if (iter != m_texture_decoding_shaders.end()) return iter->second.get(); @@ -1355,9 +1357,13 @@ const AbstractShader* ShaderCache::GetTextureDecodingShader(TextureFormat format return nullptr; } - std::unique_ptr shader = g_renderer->CreateShaderFromSource( - ShaderStage::Compute, shader_source, - fmt::format("Texture decoding compute shader: {}, {}", format, palette_format)); + std::string name = + palette_format.has_value() ? + fmt::format("Texture decoding compute shader: {}", format) : + fmt::format("Texture decoding compute shader: {}, {}", format, *palette_format); + + std::unique_ptr shader = + g_renderer->CreateShaderFromSource(ShaderStage::Compute, shader_source, name); if (!shader) { m_texture_decoding_shaders.emplace(key, nullptr); diff --git a/Source/Core/VideoCommon/ShaderCache.h b/Source/Core/VideoCommon/ShaderCache.h index c1b8f55b55..ee59fe9ae7 100644 --- a/Source/Core/VideoCommon/ShaderCache.h +++ b/Source/Core/VideoCommon/ShaderCache.h @@ -110,7 +110,8 @@ public: TextureFormat to_format); // Texture decoding compute shaders - const AbstractShader* GetTextureDecodingShader(TextureFormat format, TLUTFormat palette_format); + const AbstractShader* GetTextureDecodingShader(TextureFormat format, + std::optional palette_format); private: static constexpr size_t NUM_PALETTE_CONVERSION_SHADERS = 3; diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index dc08fd90bc..0ed5ffe014 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -2809,7 +2809,8 @@ bool TextureCacheBase::DecodeTextureOnGPU(TCacheEntry* entry, u32 dst_level, con if (!info) return false; - const AbstractShader* shader = g_shader_cache->GetTextureDecodingShader(format, palette_format); + const AbstractShader* shader = g_shader_cache->GetTextureDecodingShader( + format, info->palette_size != 0 ? std::make_optional(palette_format) : std::nullopt); if (!shader) return false; diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 1b9183846f..19f2a384f0 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -950,6 +950,7 @@ uint GetTiledTexelOffset(uint2 block_size, uint2 coords) return buffer_pos; } +#if defined(HAS_PALETTE) uint4 GetPaletteColor(uint index) { // Fetch and swap BE to LE. @@ -994,6 +995,7 @@ float4 GetPaletteColorNormalized(uint index) uint4 color = GetPaletteColor(index); return float4(color) / 255.0; } +#endif // defined(HAS_PALETTE) )"; @@ -1385,7 +1387,7 @@ std::pair GetDispatchCount(const DecodingShaderInfo* info, u32 width, (height + (info->group_size_y - 1)) / info->group_size_y}; } -std::string GenerateDecodingShader(TextureFormat format, TLUTFormat palette_format, +std::string GenerateDecodingShader(TextureFormat format, std::optional palette_format, APIType api_type) { const DecodingShaderInfo* info = GetDecodingShaderInfo(format); @@ -1393,17 +1395,20 @@ std::string GenerateDecodingShader(TextureFormat format, TLUTFormat palette_form return ""; std::ostringstream ss; - switch (palette_format) + if (palette_format.has_value()) { - case TLUTFormat::IA8: - ss << "#define PALETTE_FORMAT_IA8 1\n"; - break; - case TLUTFormat::RGB565: - ss << "#define PALETTE_FORMAT_RGB565 1\n"; - break; - case TLUTFormat::RGB5A3: - ss << "#define PALETTE_FORMAT_RGB5A3 1\n"; - break; + switch (*palette_format) + { + case TLUTFormat::IA8: + ss << "#define PALETTE_FORMAT_IA8 1\n"; + break; + case TLUTFormat::RGB565: + ss << "#define PALETTE_FORMAT_RGB565 1\n"; + break; + case TLUTFormat::RGB5A3: + ss << "#define PALETTE_FORMAT_RGB5A3 1\n"; + break; + } } ss << decoding_shader_header; diff --git a/Source/Core/VideoCommon/TextureConversionShader.h b/Source/Core/VideoCommon/TextureConversionShader.h index 31230da9ac..49dded02ae 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.h +++ b/Source/Core/VideoCommon/TextureConversionShader.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include @@ -41,7 +42,7 @@ const DecodingShaderInfo* GetDecodingShaderInfo(TextureFormat format); std::pair GetDispatchCount(const DecodingShaderInfo* info, u32 width, u32 height); // Returns the GLSL string containing the texture decoding shader for the specified format. -std::string GenerateDecodingShader(TextureFormat format, TLUTFormat palette_format, +std::string GenerateDecodingShader(TextureFormat format, std::optional palette_format, APIType api_type); // Returns the GLSL string containing the palette conversion shader for the specified format. From c7892d7371b465472f1d8d7d2e50452b77c534a4 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 13 Jun 2022 03:59:32 -0500 Subject: [PATCH 235/659] VideoCommon: Name ubershaders --- Source/Core/VideoCommon/ShaderCache.cpp | 6 ++++-- Source/Core/VideoCommon/UberShaderPixel.cpp | 3 +-- Source/Core/VideoCommon/UberShaderPixel.h | 14 ++++++++++++++ Source/Core/VideoCommon/UberShaderVertex.cpp | 2 +- Source/Core/VideoCommon/UberShaderVertex.h | 11 +++++++++++ 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 38ac252832..3c9e4e6ae8 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -430,7 +430,8 @@ ShaderCache::CompileVertexUberShader(const UberShader::VertexShaderUid& uid) con { const ShaderCode source_code = UberShader::GenVertexShader(m_api_type, m_host_config, uid.GetUidData()); - return g_renderer->CreateShaderFromSource(ShaderStage::Vertex, source_code.GetBuffer()); + return g_renderer->CreateShaderFromSource(ShaderStage::Vertex, source_code.GetBuffer(), + fmt::to_string(*uid.GetUidData())); } std::unique_ptr ShaderCache::CompilePixelShader(const PixelShaderUid& uid) const @@ -445,7 +446,8 @@ ShaderCache::CompilePixelUberShader(const UberShader::PixelShaderUid& uid) const { const ShaderCode source_code = UberShader::GenPixelShader(m_api_type, m_host_config, uid.GetUidData()); - return g_renderer->CreateShaderFromSource(ShaderStage::Pixel, source_code.GetBuffer()); + return g_renderer->CreateShaderFromSource(ShaderStage::Pixel, source_code.GetBuffer(), + fmt::to_string(*uid.GetUidData())); } const AbstractShader* ShaderCache::InsertVertexShader(const VertexShaderUid& uid, diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 161f40146a..a96b15c83d 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -66,8 +66,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, const u32 numTexgen = uid_data->num_texgens; ShaderCode out; - out.Write("// Pixel UberShader for {} texgens{}{}\n", numTexgen, - early_depth ? ", early-depth" : "", per_pixel_depth ? ", per-pixel depth" : ""); + out.Write("// {}\n", *uid_data); WriteBitfieldExtractHeader(out, api_type, host_config); WritePixelShaderCommonHeader(out, api_type, host_config, bounding_box); if (per_pixel_lighting) diff --git a/Source/Core/VideoCommon/UberShaderPixel.h b/Source/Core/VideoCommon/UberShaderPixel.h index 2ae7811050..9b2be898a2 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.h +++ b/Source/Core/VideoCommon/UberShaderPixel.h @@ -34,3 +34,17 @@ void EnumeratePixelShaderUids(const std::function& void ClearUnusedPixelShaderUidBits(APIType api_type, const ShaderHostConfig& host_config, PixelShaderUid* uid); } // namespace UberShader + +template <> +struct fmt::formatter +{ + constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); } + template + auto format(const UberShader::pixel_ubershader_uid_data& uid, FormatContext& ctx) const + { + return fmt::format_to(ctx.out(), "Pixel UberShader for {} texgens{}{}{}", uid.num_texgens, + uid.early_depth ? ", early-depth" : "", + uid.per_pixel_depth ? ", per-pixel depth" : "", + uid.uint_output ? ", uint output" : ""); + } +}; diff --git a/Source/Core/VideoCommon/UberShaderVertex.cpp b/Source/Core/VideoCommon/UberShaderVertex.cpp index 40b4cd65e5..3f05400a46 100644 --- a/Source/Core/VideoCommon/UberShaderVertex.cpp +++ b/Source/Core/VideoCommon/UberShaderVertex.cpp @@ -34,7 +34,7 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config const u32 num_texgen = uid_data->num_texgens; ShaderCode out; - out.Write("// Vertex UberShader\n\n"); + out.Write("// {}\n\n", *uid_data); out.Write("{}", s_lighting_struct); // uniforms diff --git a/Source/Core/VideoCommon/UberShaderVertex.h b/Source/Core/VideoCommon/UberShaderVertex.h index e20760e491..d9db7004be 100644 --- a/Source/Core/VideoCommon/UberShaderVertex.h +++ b/Source/Core/VideoCommon/UberShaderVertex.h @@ -25,3 +25,14 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config const vertex_ubershader_uid_data* uid_data); void EnumerateVertexShaderUids(const std::function& callback); } // namespace UberShader + +template <> +struct fmt::formatter +{ + constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); } + template + auto format(const UberShader::vertex_ubershader_uid_data& uid, FormatContext& ctx) const + { + return fmt::format_to(ctx.out(), "Vertex UberShader for {} texgens", uid.num_texgens); + } +}; From 3ceda1df8cacb550fd92711ac0ac81e0bd1f7890 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 7 Jun 2022 20:45:52 -0700 Subject: [PATCH 236/659] DSPLLE: Rename cr to control_reg Before, there were two distinct fields called cr and r.cr, which is needlessly confusing (see the comment in DSPCore.h). --- Source/Core/Core/DSP/DSPCore.cpp | 6 ++--- Source/Core/Core/DSP/DSPCore.h | 4 ++-- .../Core/DSP/Interpreter/DSPIntBranch.cpp | 2 +- .../Core/DSP/Interpreter/DSPInterpreter.cpp | 22 +++++++++---------- .../Core/DSP/Interpreter/DSPInterpreter.h | 4 ++-- Source/Core/Core/DSP/Jit/x64/DSPEmitter.cpp | 6 ++--- Source/Core/Core/DSP/Jit/x64/DSPEmitter.h | 2 +- Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp | 2 +- Source/Core/Core/HW/DSPLLE/DSPLLE.cpp | 4 ++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Source/Core/Core/DSP/DSPCore.cpp b/Source/Core/Core/DSP/DSPCore.cpp index e20d570fcc..9d30ea0812 100644 --- a/Source/Core/Core/DSP/DSPCore.cpp +++ b/Source/Core/Core/DSP/DSPCore.cpp @@ -161,7 +161,7 @@ bool SDSP::Initialize(const DSPInitOptions& opts) r.sr |= SR_INT_ENABLE; r.sr |= SR_EXT_INT_ENABLE; - cr = CR_INIT | CR_HALT; + control_reg = CR_INIT | CR_HALT; InitializeIFX(); // Mostly keep IRAM write protected. We unprotect only when DMA-ing // in new ucodes. @@ -210,7 +210,7 @@ void SDSP::CheckExternalInterrupt() // Signal the SPU about new mail SetException(ExceptionType::ExternalInterrupt); - cr &= ~CR_EXTERNAL_INT; + control_reg &= ~CR_EXTERNAL_INT; } void SDSP::CheckExceptions() @@ -378,7 +378,7 @@ void SDSP::DoState(PointerWrap& p) { p.Do(r); p.Do(pc); - p.Do(cr); + p.Do(control_reg); p.Do(reg_stack_ptrs); p.Do(exceptions); p.Do(external_interrupt_waiting); diff --git a/Source/Core/Core/DSP/DSPCore.h b/Source/Core/Core/DSP/DSPCore.h index 4c293fecf7..ac105922c3 100644 --- a/Source/Core/Core/DSP/DSPCore.h +++ b/Source/Core/Core/DSP/DSPCore.h @@ -419,11 +419,11 @@ struct SDSP DSP_Regs r{}; u16 pc = 0; - // This is NOT the same cr as r.cr. + // This is NOT the same as r.cr. // This register is shared with the main emulation, see DSP.cpp // The engine has control over 0x0C07 of this reg. // Bits are defined in a struct in DSP.cpp. - u16 cr = 0; + u16 control_reg = 0; u8 reg_stack_ptrs[4]{}; u8 exceptions = 0; // pending exceptions diff --git a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp index 8b2aca8c8b..79df56479e 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPIntBranch.cpp @@ -127,7 +127,7 @@ void Interpreter::rti(const UDSPInstruction opc) void Interpreter::halt(const UDSPInstruction) { auto& state = m_dsp_core.DSPState(); - state.cr |= CR_HALT; + state.control_reg |= CR_HALT; state.pc--; } diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp index a2332320c8..b8478eb87a 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp @@ -81,7 +81,7 @@ int Interpreter::RunCyclesThread(int cycles) while (true) { - if ((state.cr & CR_HALT) != 0) + if ((state.control_reg & CR_HALT) != 0) return 0; if (state.external_interrupt_waiting.exchange(false, std::memory_order_acquire)) @@ -104,7 +104,7 @@ int Interpreter::RunCyclesDebug(int cycles) // First, let's run a few cycles with no idle skipping so that things can progress a bit. for (int i = 0; i < 8; i++) { - if ((state.cr & CR_HALT) != 0) + if ((state.control_reg & CR_HALT) != 0) return 0; if (m_dsp_core.BreakPoints().IsAddressBreakPoint(state.pc)) @@ -124,7 +124,7 @@ int Interpreter::RunCyclesDebug(int cycles) // idle loops. for (int i = 0; i < 8; i++) { - if ((state.cr & CR_HALT) != 0) + if ((state.control_reg & CR_HALT) != 0) return 0; if (m_dsp_core.BreakPoints().IsAddressBreakPoint(state.pc)) @@ -169,7 +169,7 @@ int Interpreter::RunCycles(int cycles) // progress a bit. for (int i = 0; i < 8; i++) { - if ((state.cr & CR_HALT) != 0) + if ((state.control_reg & CR_HALT) != 0) return 0; Step(); @@ -185,7 +185,7 @@ int Interpreter::RunCycles(int cycles) // idle loops. for (int i = 0; i < 8; i++) { - if ((state.cr & CR_HALT) != 0) + if ((state.control_reg & CR_HALT) != 0) return 0; if (state.GetAnalyzer().IsIdleSkip(state.pc)) @@ -212,7 +212,7 @@ int Interpreter::RunCycles(int cycles) } // NOTE: These have nothing to do with SDSP::r::cr! -void Interpreter::WriteCR(u16 val) +void Interpreter::WriteControlRegister(u16 val) { // reset if ((val & CR_RESET) != 0) @@ -232,23 +232,23 @@ void Interpreter::WriteCR(u16 val) } // update cr - m_dsp_core.DSPState().cr = val; + m_dsp_core.DSPState().control_reg = val; } -u16 Interpreter::ReadCR() +u16 Interpreter::ReadControlRegister() { auto& state = m_dsp_core.DSPState(); if ((state.pc & 0x8000) != 0) { - state.cr |= CR_INIT; + state.control_reg |= CR_INIT; } else { - state.cr &= ~CR_INIT; + state.control_reg &= ~CR_INIT; } - return state.cr; + return state.control_reg; } void Interpreter::SetSRFlag(u16 flag) diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h index c6be4516b7..9fb5a9dd89 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.h @@ -32,8 +32,8 @@ public: int RunCycles(int cycles); int RunCyclesDebug(int cycles); - void WriteCR(u16 val); - u16 ReadCR(); + void WriteControlRegister(u16 val); + u16 ReadControlRegister(); void SetSRFlag(u16 flag); bool IsSRFlagSet(u16 flag) const; diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.cpp b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.cpp index 4960c4c992..a8c5041dc8 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.cpp @@ -443,7 +443,7 @@ void DSPEmitter::CompileDispatcher() } // Check for DSP halt - TEST(8, M_SDSP_cr(), Imm8(CR_HALT)); + TEST(8, M_SDSP_control_reg(), Imm8(CR_HALT)); FixupBranch _halt = J_CC(CC_NE); // Execute block. Cycles executed returned in EAX. @@ -484,9 +484,9 @@ Gen::OpArg DSPEmitter::M_SDSP_exceptions() return MDisp(R15, static_cast(offsetof(SDSP, exceptions))); } -Gen::OpArg DSPEmitter::M_SDSP_cr() +Gen::OpArg DSPEmitter::M_SDSP_control_reg() { - return MDisp(R15, static_cast(offsetof(SDSP, cr))); + return MDisp(R15, static_cast(offsetof(SDSP, control_reg))); } Gen::OpArg DSPEmitter::M_SDSP_external_interrupt_waiting() diff --git a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h index 77f5eccb62..840c77cff8 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h +++ b/Source/Core/Core/DSP/Jit/x64/DSPEmitter.h @@ -292,7 +292,7 @@ private: // SDSP memory offset helpers Gen::OpArg M_SDSP_pc(); Gen::OpArg M_SDSP_exceptions(); - Gen::OpArg M_SDSP_cr(); + Gen::OpArg M_SDSP_control_reg(); Gen::OpArg M_SDSP_external_interrupt_waiting(); Gen::OpArg M_SDSP_r_st(size_t index); Gen::OpArg M_SDSP_reg_stack_ptrs(size_t index); diff --git a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp index 79e2da9a91..9a5bedb4f7 100644 --- a/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp +++ b/Source/Core/Core/DSP/Jit/x64/DSPJitBranch.cpp @@ -304,7 +304,7 @@ void DSPEmitter::rti(const UDSPInstruction opc) // Stops execution of DSP code. Sets bit DSP_CR_HALT in register DREG_CR. void DSPEmitter::halt(const UDSPInstruction) { - OR(16, M_SDSP_cr(), Imm16(CR_HALT)); + OR(16, M_SDSP_control_reg(), Imm16(CR_HALT)); // g_dsp.pc = dsp_reg_load_stack(StackRegister::Call); dsp_reg_load_stack(StackRegister::Call); MOV(16, M_SDSP_pc(), R(DX)); diff --git a/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp index c555ff4b9a..5f66cbd5d2 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/HW/DSPLLE/DSPLLE.cpp @@ -183,7 +183,7 @@ void DSPLLE::Shutdown() u16 DSPLLE::DSP_WriteControlRegister(u16 value) { - m_dsp_core.GetInterpreter().WriteCR(value); + m_dsp_core.GetInterpreter().WriteControlRegister(value); if ((value & CR_EXTERNAL_INT) != 0) { @@ -207,7 +207,7 @@ u16 DSPLLE::DSP_WriteControlRegister(u16 value) u16 DSPLLE::DSP_ReadControlRegister() { - return m_dsp_core.GetInterpreter().ReadCR(); + return m_dsp_core.GetInterpreter().ReadControlRegister(); } u16 DSPLLE::DSP_ReadMailBoxHigh(bool cpu_mailbox) From c38c2b1aaa6560147f94354d48640dea5e5439b5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 15:55:36 -0700 Subject: [PATCH 237/659] DSPLLE: Fix debug logging in ReadMailboxLow The # option means that 0x is prepended already, so the old code resulted in 0x0xDEADBEEF instead of the intended 0xDEADBEEF. WriteMailboxLow was already correct. --- Source/Core/Core/DSP/DSPHWInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/DSPHWInterface.cpp b/Source/Core/Core/DSP/DSPHWInterface.cpp index 7cdd4d0a98..c2b0a50a28 100644 --- a/Source/Core/Core/DSP/DSPHWInterface.cpp +++ b/Source/Core/Core/DSP/DSPHWInterface.cpp @@ -48,7 +48,7 @@ u16 SDSP::ReadMailboxLow(Mailbox mailbox) #if defined(_DEBUG) || defined(DEBUGFAST) const char* const type = mailbox == Mailbox::DSP ? "DSP" : "CPU"; - DEBUG_LOG_FMT(DSP_MAIL, "{}(RM) B:{} M:0x{:#010x} (pc={:#06x})", type, static_cast(mailbox), + DEBUG_LOG_FMT(DSP_MAIL, "{}(RM) B:{} M:{:#010x} (pc={:#06x})", type, static_cast(mailbox), PeekMailbox(mailbox), pc); #endif From 072913bbade6c9ec841c1b349d6d719f0832a16a Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 7 Jun 2022 21:49:09 -0700 Subject: [PATCH 238/659] DSPLLE: More accurately handle initialization behavior --- Source/Core/Core/DSP/DSPCore.cpp | 1 + Source/Core/Core/DSP/DSPCore.h | 4 +- Source/Core/Core/DSP/DSPHWInterface.cpp | 12 ---- .../Core/DSP/Interpreter/DSPInterpreter.cpp | 55 ++++++++++++++----- Source/Core/Core/HW/DSP.cpp | 2 +- Source/Core/Core/State.cpp | 2 +- 6 files changed, 44 insertions(+), 32 deletions(-) diff --git a/Source/Core/Core/DSP/DSPCore.cpp b/Source/Core/Core/DSP/DSPCore.cpp index 9d30ea0812..dadc8effa6 100644 --- a/Source/Core/Core/DSP/DSPCore.cpp +++ b/Source/Core/Core/DSP/DSPCore.cpp @@ -379,6 +379,7 @@ void SDSP::DoState(PointerWrap& p) p.Do(r); p.Do(pc); p.Do(control_reg); + p.Do(control_reg_init_code_clear_time); p.Do(reg_stack_ptrs); p.Do(exceptions); p.Do(external_interrupt_waiting); diff --git a/Source/Core/Core/DSP/DSPCore.h b/Source/Core/Core/DSP/DSPCore.h index ac105922c3..a12f49270d 100644 --- a/Source/Core/Core/DSP/DSPCore.h +++ b/Source/Core/Core/DSP/DSPCore.h @@ -424,6 +424,7 @@ struct SDSP // The engine has control over 0x0C07 of this reg. // Bits are defined in a struct in DSP.cpp. u16 control_reg = 0; + u64 control_reg_init_code_clear_time = 0; u8 reg_stack_ptrs[4]{}; u8 exceptions = 0; // pending exceptions @@ -577,9 +578,6 @@ public: Interpreter::Interpreter& GetInterpreter() { return *m_dsp_interpreter; } const Interpreter::Interpreter& GetInterpreter() const { return *m_dsp_interpreter; } - bool GetInitHax() const { return m_init_hax; } - void SetInitHax(bool value) { m_init_hax = value; } - private: SDSP m_dsp; DSPBreakpoints m_dsp_breakpoints; diff --git a/Source/Core/Core/DSP/DSPHWInterface.cpp b/Source/Core/Core/DSP/DSPHWInterface.cpp index c2b0a50a28..736055b2ca 100644 --- a/Source/Core/Core/DSP/DSPHWInterface.cpp +++ b/Source/Core/Core/DSP/DSPHWInterface.cpp @@ -39,13 +39,6 @@ u16 SDSP::ReadMailboxLow(Mailbox mailbox) const u32 value = GetMailbox(mailbox).load(std::memory_order_acquire); GetMailbox(mailbox).store(value & ~0x80000000, std::memory_order_release); - if (m_dsp_core.GetInitHax() && mailbox == Mailbox::DSP) - { - m_dsp_core.SetInitHax(false); - m_dsp_core.Reset(); - return 0x4348; - } - #if defined(_DEBUG) || defined(DEBUGFAST) const char* const type = mailbox == Mailbox::DSP ? "DSP" : "CPU"; DEBUG_LOG_FMT(DSP_MAIL, "{}(RM) B:{} M:{:#010x} (pc={:#06x})", type, static_cast(mailbox), @@ -57,11 +50,6 @@ u16 SDSP::ReadMailboxLow(Mailbox mailbox) u16 SDSP::ReadMailboxHigh(Mailbox mailbox) { - if (m_dsp_core.GetInitHax() && mailbox == Mailbox::DSP) - { - return 0x8054; - } - // TODO: mask away the top bit? return static_cast(PeekMailbox(mailbox) >> 16); } diff --git a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp index b8478eb87a..dfc351a18a 100644 --- a/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp +++ b/Source/Core/Core/DSP/Interpreter/DSPInterpreter.cpp @@ -7,12 +7,17 @@ #include "Common/Assert.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" +#include "Common/MemoryUtil.h" +#include "Core/CoreTiming.h" #include "Core/DSP/DSPAnalyzer.h" #include "Core/DSP/DSPCore.h" +#include "Core/DSP/DSPHost.h" #include "Core/DSP/DSPTables.h" #include "Core/DSP/Interpreter/DSPIntCCUtil.h" #include "Core/DSP/Interpreter/DSPIntTables.h" +#include "Core/HW/Memmap.h" +#include "Core/HW/SystemTimers.h" namespace DSP::Interpreter { @@ -214,6 +219,17 @@ int Interpreter::RunCycles(int cycles) // NOTE: These have nothing to do with SDSP::r::cr! void Interpreter::WriteControlRegister(u16 val) { + auto& state = m_dsp_core.DSPState(); + + if ((state.control_reg & CR_HALT) != (val & CR_HALT)) + { + // This bit is handled by Interpreter::RunCycles and DSPEmitter::CompileDispatcher + INFO_LOG_FMT(DSPLLE, "DSP_CONTROL halt bit changed: {:04x} -> {:04x}, PC {:04x}", + state.control_reg, val, state.pc); + } + + // The CR_EXTERNAL_INT bit is handled by DSPLLE::DSP_WriteControlRegister + // reset if ((val & CR_RESET) != 0) { @@ -221,33 +237,42 @@ void Interpreter::WriteControlRegister(u16 val) m_dsp_core.Reset(); val &= ~CR_RESET; } - // init - else if (val == CR_HALT) + // init - unclear if writing CR_INIT_CODE does something. Clearing CR_INIT immediately sets + // CR_INIT_CODE, which gets unset a bit later... + if (((state.control_reg & CR_INIT) != 0) && ((val & CR_INIT) == 0)) { - // HAX! - // OSInitAudioSystem ucode should send this mail - not DSP core itself INFO_LOG_FMT(DSPLLE, "DSP_CONTROL INIT"); - m_dsp_core.SetInitHax(true); - val |= CR_INIT; + // Copy 1024(?) bytes of uCode from main memory 0x81000000 (or is it ARAM 00000000?) + // to IMEM 0000 and jump to that code + // TODO: Determine exactly how this initialization works + state.pc = 0; + + Common::UnWriteProtectMemory(state.iram, DSP_IRAM_BYTE_SIZE, false); + Host::DMAToDSP(state.iram, 0x81000000, 0x1000); + Common::WriteProtectMemory(state.iram, DSP_IRAM_BYTE_SIZE, false); + + Host::CodeLoaded(m_dsp_core, 0x81000000, 0x1000); + + val &= ~CR_INIT; + val |= CR_INIT_CODE; + // Number obtained from real hardware on a Wii, but it's not perfectly consistent + state.control_reg_init_code_clear_time = SystemTimers::GetFakeTimeBase() + 130; } // update cr - m_dsp_core.DSPState().control_reg = val; + state.control_reg = val; } u16 Interpreter::ReadControlRegister() { auto& state = m_dsp_core.DSPState(); - - if ((state.pc & 0x8000) != 0) + if ((state.control_reg & CR_INIT_CODE) != 0) { - state.control_reg |= CR_INIT; + if (SystemTimers::GetFakeTimeBase() >= state.control_reg_init_code_clear_time) + state.control_reg &= ~CR_INIT_CODE; + else + CoreTiming::ForceExceptionCheck(50); // Keep checking } - else - { - state.control_reg &= ~CR_INIT; - } - return state.control_reg; } diff --git a/Source/Core/Core/HW/DSP.cpp b/Source/Core/Core/HW/DSP.cpp index 5edc5314a5..1858aa5ce2 100644 --- a/Source/Core/Core/HW/DSP.cpp +++ b/Source/Core/Core/HW/DSP.cpp @@ -330,6 +330,7 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) s_dspState.DSPReset = tmpControl.DSPReset; s_dspState.DSPAssertInt = tmpControl.DSPAssertInt; s_dspState.DSPHalt = tmpControl.DSPHalt; + s_dspState.DSPInitCode = tmpControl.DSPInitCode; s_dspState.DSPInit = tmpControl.DSPInit; // Interrupt (mask) @@ -346,7 +347,6 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) s_dspState.DSP = 0; // unknown - s_dspState.DSPInitCode = tmpControl.DSPInitCode; s_dspState.pad = tmpControl.pad; if (s_dspState.pad != 0) { diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 9387adf72c..76349ba4d2 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 141; // Last changed in PR 8067 +constexpr u32 STATE_VERSION = 142; // Last changed in PR 10732 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 053b3e725b87b6fa880d9f33ab38f33b4a5c4c0e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 14:02:14 -0700 Subject: [PATCH 239/659] DSPHLE: More accurately handle initialization behavior This improves timing, but does not fix Datel titles. --- Source/Core/Core/HW/DSPHLE/DSPHLE.cpp | 32 ++++++++++++++++++++++++--- Source/Core/Core/HW/DSPHLE/DSPHLE.h | 1 + 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp index 1176568d7b..c686930383 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp @@ -7,6 +7,7 @@ #include "Common/CommonTypes.h" #include "Common/MsgHandler.h" #include "Core/Core.h" +#include "Core/CoreTiming.h" #include "Core/HW/DSPHLE/UCodes/UCodes.h" #include "Core/HW/SystemTimers.h" @@ -104,6 +105,7 @@ void DSPHLE::DoState(PointerWrap& p) } p.DoPOD(m_dsp_control); + p.Do(m_control_reg_init_code_clear_time); p.DoPOD(m_dsp_state); int ucode_crc = UCodeInterface::GetCRC(m_ucode.get()); @@ -190,16 +192,33 @@ u16 DSPHLE::DSP_WriteControlRegister(u16 value) { DSP::UDSPControl temp(value); + if (m_dsp_control.DSPHalt != temp.DSPHalt) + { + INFO_LOG_FMT(DSPHLE, "DSP_CONTROL halt bit changed: {:04x} -> {:04x}", m_dsp_control.Hex, + value); + } + if (temp.DSPReset) { SetUCode(UCODE_ROM); temp.DSPReset = 0; } - if (temp.DSPInit == 0) + + // init - unclear if writing DSPInitCode does something. Clearing DSPInit immediately sets + // DSPInitCode, which gets unset a bit later... + if ((m_dsp_control.DSPInit != 0) && (temp.DSPInit == 0)) { - // copy 128 byte from ARAM 0x000000 to IMEM + // Copy 1024(?) bytes of uCode from main memory 0x81000000 (or is it ARAM 00000000?) + // to IMEM 0000 and jump to that code + // TODO: Determine exactly how this initialization works + // We could hash the input data, but this is only used for initialization purposes on licensed + // games and by devkitpro, so there's no real point in doing so. + // Datel has similar logic to retail games, but they clear bit 0x80 (DSP) instead of bit 0x800 + // (DSPInit) so they end up not using the init uCode. SetUCode(UCODE_INIT_AUDIO_SYSTEM); - temp.DSPInitCode = 0; + temp.DSPInitCode = 1; + // Number obtained from real hardware on a Wii, but it's not perfectly consistent + m_control_reg_init_code_clear_time = SystemTimers::GetFakeTimeBase() + 130; } m_dsp_control.Hex = temp.Hex; @@ -208,6 +227,13 @@ u16 DSPHLE::DSP_WriteControlRegister(u16 value) u16 DSPHLE::DSP_ReadControlRegister() { + if (m_dsp_control.DSPInitCode != 0) + { + if (SystemTimers::GetFakeTimeBase() >= m_control_reg_init_code_clear_time) + m_dsp_control.DSPInitCode = 0; + else + CoreTiming::ForceExceptionCheck(50); // Keep checking + } return m_dsp_control.Hex; } diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.h b/Source/Core/Core/HW/DSPHLE/DSPHLE.h index af684655d9..997529c64e 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.h +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.h @@ -65,6 +65,7 @@ private: std::unique_ptr m_last_ucode; DSP::UDSPControl m_dsp_control; + u64 m_control_reg_init_code_clear_time = 0; CMailHandler m_mail_handler; }; } // namespace DSP::HLE From 896d5454f09ce8240e3b4a11d010b2bcf44ebf8d Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 16 Jun 2022 14:55:51 -0700 Subject: [PATCH 240/659] updater: use new platform id for win-arm64 --- Source/Core/UICommon/AutoUpdate.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/UICommon/AutoUpdate.cpp b/Source/Core/UICommon/AutoUpdate.cpp index d02c2356b3..de8d426c7f 100644 --- a/Source/Core/UICommon/AutoUpdate.cpp +++ b/Source/Core/UICommon/AutoUpdate.cpp @@ -128,22 +128,22 @@ std::string GenerateChangelog(const picojson::array& versions) bool AutoUpdateChecker::SystemSupportsAutoUpdates() { -#if defined AUTOUPDATE -#if defined _WIN32 || defined __APPLE__ +#if defined(AUTOUPDATE) && (defined(_WIN32) || defined(__APPLE__)) return true; #else return false; #endif -#else - return false; -#endif } static std::string GetPlatformID() { -#if defined _WIN32 +#if defined(_WIN32) +#if defined(_M_ARM_64) + return "win-arm64"; +#else return "win"; -#elif defined __APPLE__ +#endif +#elif defined(__APPLE__) #if defined(MACOS_UNIVERSAL_BUILD) return "macos-universal"; #else From 26529a31ab97f2743fe1a7c52969079d7764bc6d Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Thu, 16 Jun 2022 17:26:30 -0500 Subject: [PATCH 241/659] VideoCommon: Fix SSBO layout and remove associated "bug" --- .../VideoBackends/OGL/ProgramShaderCache.cpp | 4 ++-- .../VideoBackends/Vulkan/ShaderCompiler.cpp | 2 +- Source/Core/VideoCommon/DriverDetails.cpp | 2 -- Source/Core/VideoCommon/DriverDetails.h | 8 -------- Source/Core/VideoCommon/PixelShaderGen.cpp | 19 +++---------------- 5 files changed, 6 insertions(+), 29 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp index 817f894296..8f550da1a0 100644 --- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp +++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp @@ -790,7 +790,7 @@ void ProgramShaderCache::CreateHeader() "#define UBO_BINDING(packing, x) layout(packing, binding = x)\n" "#define SAMPLER_BINDING(x) layout(binding = x)\n" "#define TEXEL_BUFFER_BINDING(x) layout(binding = x)\n" - "#define SSBO_BINDING(x) layout(binding = x)\n" + "#define SSBO_BINDING(x) layout(std430, binding = x)\n" "#define IMAGE_BINDING(format, x) layout(format, binding = x)\n" : "#define ATTRIBUTE_LOCATION(x)\n" "#define FRAGMENT_OUTPUT_LOCATION(x)\n" @@ -798,7 +798,7 @@ void ProgramShaderCache::CreateHeader() "#define UBO_BINDING(packing, x) layout(packing)\n" "#define SAMPLER_BINDING(x)\n" "#define TEXEL_BUFFER_BINDING(x)\n" - "#define SSBO_BINDING(x)\n" + "#define SSBO_BINDING(x) layout(std430)\n" "#define IMAGE_BINDING(format, x) layout(format)\n", // Input/output blocks are matched by name during program linking "#define VARYING_LOCATION(x)\n", diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index b8f0a236b1..c9adcc1bf7 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -49,7 +49,7 @@ static const char SHADER_HEADER[] = R"( #define UBO_BINDING(packing, x) layout(packing, set = 0, binding = (x - 1)) #define SAMPLER_BINDING(x) layout(set = 1, binding = x) #define TEXEL_BUFFER_BINDING(x) layout(set = 1, binding = (x + 8)) - #define SSBO_BINDING(x) layout(set = 2, binding = x) + #define SSBO_BINDING(x) layout(std430, set = 2, binding = x) #define INPUT_ATTACHMENT_BINDING(x, y, z) layout(set = x, binding = y, input_attachment_index = z) #define VARYING_LOCATION(x) layout(location = x) #define FORCE_EARLY_Z layout(early_fragment_tests) in diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index 6d7749c949..b532bf785d 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -128,8 +128,6 @@ constexpr BugInfo m_known_bugs[] = { -1.0, -1.0, true}, {API_VULKAN, OS_ALL, VENDOR_ARM, DRIVER_ARM, Family::UNKNOWN, BUG_BROKEN_VECTOR_BITWISE_AND, -1.0, -1.0, true}, - {API_OPENGL, OS_WINDOWS, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN, BUG_BROKEN_SSBO_FIELD_ATOMICS, - -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_ATI, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_INVOCATION_ID, -1.0, -1.0, true}, {API_OPENGL, OS_ANDROID, VENDOR_ALL, DRIVER_ALL, Family::UNKNOWN, diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 70c39450c9..e75c4f7926 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -302,14 +302,6 @@ enum Bug // Ended version: -1 BUG_BROKEN_VECTOR_BITWISE_AND, - // BUG: Atomic writes to different fields or array elements of an SSBO have no effect, only - // writing to the first field/element works. This causes bounding box emulation to give garbage - // values under OpenGL. - // Affected devices: AMD (Windows) - // Started version: -1 - // Ended version: -1 - BUG_BROKEN_SSBO_FIELD_ATOMICS, - // BUG: Accessing gl_SubgroupInvocationID causes the Metal shader compiler to crash. // Affected devices: AMD (macOS) // Started version: -1 diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 4a9e9105a8..950763f5d8 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -464,22 +464,9 @@ void WritePixelShaderCommonHeader(ShaderCode& out, APIType api_type, } else { - out.Write("SSBO_BINDING(0) buffer BBox {{\n"); - - if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_SSBO_FIELD_ATOMICS)) - { - // AMD drivers on Windows seemingly ignore atomic writes to fields or array elements of an - // SSBO other than the first one, but using an int4 seems to work fine - out.Write(" int4 bbox_data;\n"); - } - else - { - // The Metal shader compiler fails to compile the atomic instructions when operating on - // individual components of a vector - out.Write(" int bbox_data[4];\n"); - } - - out.Write("}};"); + out.Write("SSBO_BINDING(0) buffer BBox {{\n" + " int bbox_data[4];\n" + "}};"); } out.Write(R"( From efbf5a450b5655ff0b3e366ebd4f5e10c0065127 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 18 Mar 2022 06:47:01 +0100 Subject: [PATCH 242/659] ResourcePack: Avoid crashes on invalid packs during Init(). --- Source/Core/UICommon/ResourcePack/Manager.cpp | 53 +++++++++++-------- Source/Core/UICommon/ResourcePack/Manager.h | 2 +- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Source/Core/UICommon/ResourcePack/Manager.cpp b/Source/Core/UICommon/ResourcePack/Manager.cpp index f83a15dd8a..2d1cf128ec 100644 --- a/Source/Core/UICommon/ResourcePack/Manager.cpp +++ b/Source/Core/UICommon/ResourcePack/Manager.cpp @@ -31,35 +31,45 @@ IniFile GetPackConfig() bool Init() { packs.clear(); - auto pack_list = Common::DoFileSearch({File::GetUserPath(D_RESOURCEPACK_IDX)}, {".zip"}); - - bool error = false; + const std::vector pack_list = + Common::DoFileSearch({File::GetUserPath(D_RESOURCEPACK_IDX)}, {".zip"}); IniFile file = GetPackConfig(); auto* order = file.GetOrCreateSection("Order"); - std::sort(pack_list.begin(), pack_list.end(), [order](std::string& a, std::string& b) { - std::string order_a = a, order_b = b; - - order->Get(ResourcePack(a).GetManifest()->GetID(), &order_a); - order->Get(ResourcePack(b).GetManifest()->GetID(), &order_b); - - return order_a < order_b; - }); - - for (size_t i = 0; i < pack_list.size(); i++) + struct OrderHelper { - const auto& path = pack_list[i]; + size_t pack_list_index; + std::string manifest_id; + }; - if (!Add(path)) + std::vector pack_list_order; + pack_list_order.reserve(pack_list.size()); + for (size_t i = 0; i < pack_list.size(); ++i) + { + const ResourcePack pack(pack_list[i]); + std::string manifest_id = pack.IsValid() ? pack.GetManifest()->GetID() : pack_list[i]; + pack_list_order.emplace_back(OrderHelper{i, std::move(manifest_id)}); + } + + std::sort( + pack_list_order.begin(), pack_list_order.end(), + [](const OrderHelper& a, const OrderHelper& b) { return a.manifest_id < b.manifest_id; }); + + bool error = false; + for (size_t i = 0; i < pack_list_order.size(); ++i) + { + const auto& path = pack_list[pack_list_order[i].pack_list_index]; + + const ResourcePack* const pack = Add(path); + if (pack == nullptr) { error = true; continue; } - if (i < packs.size()) - order->Set(packs[i].GetManifest()->GetID(), static_cast(i)); + order->Set(pack->GetManifest()->GetID(), static_cast(i)); } file.Save(packs_path); @@ -103,7 +113,7 @@ std::vector GetHigherPriorityPacks(ResourcePack& pack) return list; } -bool Add(const std::string& path, int offset) +ResourcePack* Add(const std::string& path, int offset) { if (offset == -1) offset = static_cast(packs.size()); @@ -111,7 +121,7 @@ bool Add(const std::string& path, int offset) ResourcePack pack(path); if (!pack.IsValid()) - return false; + return nullptr; IniFile file = GetPackConfig(); @@ -124,9 +134,8 @@ bool Add(const std::string& path, int offset) file.Save(packs_path); - packs.insert(packs.begin() + offset, std::move(pack)); - - return true; + auto it = packs.insert(packs.begin() + offset, std::move(pack)); + return &*it; } bool Remove(ResourcePack& pack) diff --git a/Source/Core/UICommon/ResourcePack/Manager.h b/Source/Core/UICommon/ResourcePack/Manager.h index e31e780b52..da81c7d40b 100644 --- a/Source/Core/UICommon/ResourcePack/Manager.h +++ b/Source/Core/UICommon/ResourcePack/Manager.h @@ -12,7 +12,7 @@ namespace ResourcePack { bool Init(); -bool Add(const std::string& path, int offset = -1); +ResourcePack* Add(const std::string& path, int offset = -1); bool Remove(ResourcePack& pack); void SetInstalled(const ResourcePack& pack, bool installed); bool IsInstalled(const ResourcePack& pack); From f79ac768d802f2127022f7a7f8956ee03183229b Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Fri, 17 Jun 2022 20:04:21 -0500 Subject: [PATCH 243/659] VideoCommon:ShaderCache: Add const to some local variables --- Source/Core/VideoCommon/ShaderCache.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 3c9e4e6ae8..81aa4cd8a6 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -1347,11 +1347,11 @@ ShaderCache::GetTextureDecodingShader(TextureFormat format, { const auto key = std::make_pair(static_cast(format), static_cast(palette_format.value_or(TLUTFormat::IA8))); - auto iter = m_texture_decoding_shaders.find(key); + const auto iter = m_texture_decoding_shaders.find(key); if (iter != m_texture_decoding_shaders.end()) return iter->second.get(); - std::string shader_source = + const std::string shader_source = TextureConversionShaderTiled::GenerateDecodingShader(format, palette_format, APIType::OpenGL); if (shader_source.empty()) { @@ -1359,7 +1359,7 @@ ShaderCache::GetTextureDecodingShader(TextureFormat format, return nullptr; } - std::string name = + const std::string name = palette_format.has_value() ? fmt::format("Texture decoding compute shader: {}", format) : fmt::format("Texture decoding compute shader: {}, {}", format, *palette_format); @@ -1372,7 +1372,7 @@ ShaderCache::GetTextureDecodingShader(TextureFormat format, return nullptr; } - auto iiter = m_texture_decoding_shaders.emplace(key, std::move(shader)); + const auto iiter = m_texture_decoding_shaders.emplace(key, std::move(shader)); return iiter.first->second.get(); } } // namespace VideoCommon From 2b2b8e932dda70681534d9f539c7738539b8f501 Mon Sep 17 00:00:00 2001 From: Braxton Anderson Date: Fri, 17 Jun 2022 20:11:53 -0600 Subject: [PATCH 244/659] Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounter --- Source/Core/VideoCommon/FPSCounter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/FPSCounter.cpp b/Source/Core/VideoCommon/FPSCounter.cpp index 4d71a7c462..459856d1ef 100644 --- a/Source/Core/VideoCommon/FPSCounter.cpp +++ b/Source/Core/VideoCommon/FPSCounter.cpp @@ -12,7 +12,7 @@ #include "Core/Core.h" #include "VideoCommon/VideoConfig.h" -static constexpr u64 FPS_REFRESH_INTERVAL = 250000; +static constexpr u64 FPS_REFRESH_INTERVAL_US = 250000; FPSCounter::FPSCounter() { @@ -54,7 +54,7 @@ void FPSCounter::Update() m_time_since_update += diff; m_last_time = time; - if (m_time_since_update >= FPS_REFRESH_INTERVAL) + if (m_time_since_update >= FPS_REFRESH_INTERVAL_US) { m_fps = m_frame_counter / (m_time_since_update / 1000000.0); m_frame_counter = 0; From c317f7fd2292c9a3e887c9c31b8ef0d1a8938692 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 19 Jun 2022 10:46:41 -0700 Subject: [PATCH 245/659] DSPLLE: Don't log when DIRQ is set to 0 No interrupt is generated in this case. The homebrew liband uCode writes zero fairly frequently, so logging it results in spam. --- Source/Core/Core/DSP/DSPHWInterface.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/DSP/DSPHWInterface.cpp b/Source/Core/Core/DSP/DSPHWInterface.cpp index 7cdd4d0a98..1f22ed7661 100644 --- a/Source/Core/Core/DSP/DSPHWInterface.cpp +++ b/Source/Core/Core/DSP/DSPHWInterface.cpp @@ -96,9 +96,15 @@ void SDSP::WriteIFX(u32 address, u16 value) { case DSP_DIRQ: if ((value & 1) != 0) + { Host::InterruptRequest(); - else + } + else if (value != 0) + { + // The homebrew libasnd uCode frequently writes 0 to DIRQ with a comment + // saying "clear the interrupt" - we don't need to log in this case. WARN_LOG_FMT(DSPLLE, "Unknown Interrupt Request pc={:#06x} ({:#06x})", pc, value); + } break; case DSP_DMBH: From fafc78b9b5c666fca2877cf5a3cd0a89ebf311d8 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 20 Jun 2022 17:41:41 +0200 Subject: [PATCH 246/659] Re-run code formatting after update to Android Studio 2022.2 Android Studio 2022.2 "Chipmunk" changes the code formatting rules a little. Let's apply the new formatting in this PR so that the lint bot doesn't take it out on innocent PRs. --- .../activities/EmulationActivity.java | 25 ++++++++++--------- .../dolphinemu/dialogs/AlertMessage.java | 10 ++++---- .../features/settings/ui/SettingsAdapter.java | 4 +-- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index a387cf60be..c320106f2f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -94,18 +94,19 @@ public final class EmulationActivity extends AppCompatActivity public static final String EXTRA_MENU_TOAST_SHOWN = "MenuToastShown"; @Retention(SOURCE) - @IntDef({MENU_ACTION_EDIT_CONTROLS_PLACEMENT, MENU_ACTION_TOGGLE_CONTROLS, MENU_ACTION_ADJUST_SCALE, - MENU_ACTION_CHOOSE_CONTROLLER, MENU_ACTION_REFRESH_WIIMOTES, MENU_ACTION_TAKE_SCREENSHOT, - MENU_ACTION_QUICK_SAVE, MENU_ACTION_QUICK_LOAD, MENU_ACTION_SAVE_ROOT, - MENU_ACTION_LOAD_ROOT, MENU_ACTION_SAVE_SLOT1, MENU_ACTION_SAVE_SLOT2, - MENU_ACTION_SAVE_SLOT3, MENU_ACTION_SAVE_SLOT4, MENU_ACTION_SAVE_SLOT5, - MENU_ACTION_SAVE_SLOT6, MENU_ACTION_LOAD_SLOT1, MENU_ACTION_LOAD_SLOT2, - MENU_ACTION_LOAD_SLOT3, MENU_ACTION_LOAD_SLOT4, MENU_ACTION_LOAD_SLOT5, - MENU_ACTION_LOAD_SLOT6, MENU_ACTION_EXIT, MENU_ACTION_CHANGE_DISC, - MENU_ACTION_RESET_OVERLAY, MENU_SET_IR_RECENTER, MENU_SET_IR_MODE, - MENU_SET_IR_SENSITIVITY, MENU_ACTION_CHOOSE_DOUBLETAP, MENU_ACTION_MOTION_CONTROLS, - MENU_ACTION_PAUSE_EMULATION, MENU_ACTION_UNPAUSE_EMULATION, MENU_ACTION_OVERLAY_CONTROLS, - MENU_ACTION_SETTINGS}) + @IntDef( + {MENU_ACTION_EDIT_CONTROLS_PLACEMENT, MENU_ACTION_TOGGLE_CONTROLS, MENU_ACTION_ADJUST_SCALE, + MENU_ACTION_CHOOSE_CONTROLLER, MENU_ACTION_REFRESH_WIIMOTES, MENU_ACTION_TAKE_SCREENSHOT, + MENU_ACTION_QUICK_SAVE, MENU_ACTION_QUICK_LOAD, MENU_ACTION_SAVE_ROOT, + MENU_ACTION_LOAD_ROOT, MENU_ACTION_SAVE_SLOT1, MENU_ACTION_SAVE_SLOT2, + MENU_ACTION_SAVE_SLOT3, MENU_ACTION_SAVE_SLOT4, MENU_ACTION_SAVE_SLOT5, + MENU_ACTION_SAVE_SLOT6, MENU_ACTION_LOAD_SLOT1, MENU_ACTION_LOAD_SLOT2, + MENU_ACTION_LOAD_SLOT3, MENU_ACTION_LOAD_SLOT4, MENU_ACTION_LOAD_SLOT5, + MENU_ACTION_LOAD_SLOT6, MENU_ACTION_EXIT, MENU_ACTION_CHANGE_DISC, + MENU_ACTION_RESET_OVERLAY, MENU_SET_IR_RECENTER, MENU_SET_IR_MODE, + MENU_SET_IR_SENSITIVITY, MENU_ACTION_CHOOSE_DOUBLETAP, MENU_ACTION_MOTION_CONTROLS, + MENU_ACTION_PAUSE_EMULATION, MENU_ACTION_UNPAUSE_EMULATION, MENU_ACTION_OVERLAY_CONTROLS, + MENU_ACTION_SETTINGS}) public @interface MenuAction { } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java index 529f9fb700..b8ba6fcbb2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AlertMessage.java @@ -64,11 +64,11 @@ public final class AlertMessage extends DialogFragment else { builder.setPositiveButton(android.R.string.yes, (dialog, which) -> - { - sAlertResult = true; - dialog.dismiss(); - NativeLibrary.NotifyAlertMessageLock(); - }) + { + sAlertResult = true; + dialog.dismiss(); + NativeLibrary.NotifyAlertMessageLock(); + }) .setNegativeButton(android.R.string.no, (dialog, which) -> { sAlertResult = false; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java index 8e5649b23c..3f8499a4ef 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java @@ -277,8 +277,8 @@ public final class SettingsAdapter extends RecyclerView.Adapter Date: Mon, 20 Jun 2022 18:53:23 -0700 Subject: [PATCH 247/659] Qt/MemoryViewWidget: Don't elide text Before, the Hex 32 display would get truncated on Linux. --- Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index 025582a5f8..7e87d9720b 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -254,6 +254,7 @@ void MemoryViewWidget::Update() m_table->verticalHeader()->setDefaultSectionSize(m_font_vspace - 1); m_table->verticalHeader()->setMinimumSectionSize(m_font_vspace - 1); m_table->horizontalHeader()->setMinimumSectionSize(m_font_width * 2); + m_table->setTextElideMode(Qt::TextElideMode::ElideNone); const AddressSpace::Accessors* accessors = AddressSpace::GetAccessors(m_address_space); From 57750f3d8f21dc240b9ba48ba55a66f108305a5d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Tue, 21 Jun 2022 21:51:57 +0200 Subject: [PATCH 248/659] Translation resources sync with Transifex --- Languages/po/ar.po | 1148 ++++++++++++++++-------------- Languages/po/ca.po | 1140 ++++++++++++++++-------------- Languages/po/cs.po | 1140 ++++++++++++++++-------------- Languages/po/da.po | 1140 ++++++++++++++++-------------- Languages/po/de.po | 1154 +++++++++++++++--------------- Languages/po/dolphin-emu.pot | 1140 ++++++++++++++++-------------- Languages/po/el.po | 1140 ++++++++++++++++-------------- Languages/po/en.po | 1140 ++++++++++++++++-------------- Languages/po/es.po | 1163 +++++++++++++++--------------- Languages/po/fa.po | 1140 ++++++++++++++++-------------- Languages/po/fr.po | 1194 ++++++++++++++++--------------- Languages/po/hr.po | 1140 ++++++++++++++++-------------- Languages/po/hu.po | 1140 ++++++++++++++++-------------- Languages/po/it.po | 1159 +++++++++++++++--------------- Languages/po/ja.po | 1145 ++++++++++++++++-------------- Languages/po/ko.po | 1290 ++++++++++++++++++---------------- Languages/po/ms.po | 1142 ++++++++++++++++-------------- Languages/po/nb.po | 1144 ++++++++++++++++-------------- Languages/po/nl.po | 1175 ++++++++++++++++--------------- Languages/po/pl.po | 1140 ++++++++++++++++-------------- Languages/po/pt.po | 1143 ++++++++++++++++-------------- Languages/po/pt_BR.po | 1187 ++++++++++++++++--------------- Languages/po/ro.po | 1140 ++++++++++++++++-------------- Languages/po/ru.po | 1154 +++++++++++++++--------------- Languages/po/sr.po | 1140 ++++++++++++++++-------------- Languages/po/sv.po | 1154 +++++++++++++++--------------- Languages/po/tr.po | 1173 ++++++++++++++++--------------- Languages/po/zh_CN.po | 1189 ++++++++++++++++--------------- Languages/po/zh_TW.po | 1140 ++++++++++++++++-------------- 29 files changed, 17669 insertions(+), 15865 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index 387495b7c3..71baa518b9 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -46,7 +46,7 @@ msgstr "" "لان هذا العنوان ليس لوحدات التحكم وي التجزئة ، دولفين لا يمكن التحقق من انه " "لم يتم العبث بها." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -191,19 +191,19 @@ msgstr "" "%2 موضوع(s)\n" "%3 الإطار الحالي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 قد انضم" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 لقد غادر" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 القرص غير صالح" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 is now golfing" @@ -240,7 +240,7 @@ msgstr "%1% (السرعة القياسية)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -303,7 +303,7 @@ msgstr "&4x" msgid "&About" msgstr "&حول" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&إضافة نقطة توقف الذاكرة" @@ -395,7 +395,7 @@ msgstr "&حذف" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&حذف المشاهدة" @@ -493,7 +493,7 @@ msgstr "&مزج الإطارات" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&اللغة" @@ -550,7 +550,7 @@ msgstr "&إيقاف مؤقت" msgid "&Play" msgstr "&تشغيل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&خصائص" @@ -600,7 +600,7 @@ msgstr "&حد السرعة" msgid "&Stop" msgstr "&إيقاف " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&المظهر" @@ -630,7 +630,7 @@ msgstr "&مشاهدة" msgid "&Website" msgstr "&الموقع" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&معلومات عن اللعبة" @@ -638,15 +638,15 @@ msgstr "&معلومات عن اللعبة" msgid "&Yes" msgstr "&نعم" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' لم يتم العثور على أي أسماء رموز تم إنشاؤها" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' لم يتم العثور على المسح بحثًا عن الوظائف الشائعة بدلاً من ذلك" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(لا شيء)" @@ -683,9 +683,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -875,7 +875,7 @@ msgstr "< أقل-من" msgid "" msgstr "<لا شيء>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<لغة النظام>" @@ -892,8 +892,8 @@ msgstr "" msgid "> Greater-than" msgstr "> أكثر-من" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "جلسة لعب الشبكة جارية بالفعل!" @@ -914,15 +914,15 @@ msgstr "" " wad سيؤدي تثبيت \n" "هذا إلى استبداله بشكل لا رجعة فيه. استمر ؟" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "القرص بالفعل على وشك أن يتم إدراجه." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "لا يمكن تحميل حالة الحفظ دون تحديد لعبة لتشغيلها" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1071,7 +1071,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "تفعيل المحادثة في اللعب عبر الشبكة" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "نشط" @@ -1083,7 +1083,7 @@ msgstr "قائمة انتظار مؤشر الترابط النشط" msgid "Active threads" msgstr "المواضيع النشطة" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "محول" @@ -1113,8 +1113,8 @@ msgstr "DSU إضافة خادم جديد" msgid "Add New USB Device" msgstr "إضافة جهاز يو إس بي جديد" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "إضافة اختصار إلى سطح المكتب" @@ -1141,18 +1141,18 @@ msgstr "إضافة نقطة توقف للذاكرة" msgid "Add to &watch" msgstr "اضف إليه &تنبية" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "إضافة للمشاهدة" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "أضف" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1244,10 +1244,15 @@ msgstr "أفريقيا" msgid "Aligned to data type length" msgstr "محاذاة لطول نوع البيانات" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1255,20 +1260,37 @@ msgid "All Files" msgstr "كل الملفات" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "(*) كل الملفات" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "GC/Wii جميع ملفات" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "جميع حالات الحفظ (*.sav *.s##);; كل الملفات (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "جميع أدوات التحكم" @@ -1289,7 +1311,7 @@ msgstr "حفظ جميع اللاعبين متزامنة." msgid "Allow Mismatched Region Settings" msgstr "السماح بإعدادات المنطقة الغير متطابقة" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "السماح بالإبلاغ عن إحصائيات الاستخدام" @@ -1311,7 +1333,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "مصادر الإدخال البديلة" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "دائما" @@ -1367,7 +1389,7 @@ msgstr "التنعيم" msgid "Any Region" msgstr "أي منطقة" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "إلحاق التوقيع ل" @@ -1393,7 +1415,7 @@ msgstr "تاريخ الإصدار" msgid "Apply" msgstr "تطبيق" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "تطبيق ملف التوقيع" @@ -1405,7 +1427,7 @@ msgstr "Arbitrary Mipmap Detection" msgid "Are you sure that you want to delete '%1'?" msgstr "هل أنت متأكد من أنك تريد حذفها '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "هل أنت متأكد من أنك تريد حذف هذا الملف؟" @@ -1421,7 +1443,7 @@ msgstr "هل أنت متأكد من أنك تريد إنهاء اللعب عبر msgid "Are you sure?" msgstr "هل أنت واثق؟" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "تناسب الأبعاد" @@ -1438,7 +1460,7 @@ msgstr "تعيين منافذ وحدة التحكم" msgid "Assign Controllers" msgstr "تعيين وحدات تحكم" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "اثنان على الأقل من ملفات الحفظ المحددة لهما نفس اسم الملف الداخلي" @@ -1503,11 +1525,11 @@ msgstr "ضبط حجم الإطار تلقائيا" msgid "Auto-Hide" msgstr "إخفاء تلقائي" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "RSO الكشف التلقائي عن وحدات" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1534,7 +1556,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1546,7 +1568,7 @@ msgstr "BP تسجل" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "الخلفية" @@ -1599,7 +1621,7 @@ msgstr "تم توفير إزاحة غير صالحة" msgid "Bad value provided." msgstr "قيمة غير صالحة المقدمة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1634,7 +1656,7 @@ msgstr "الإعدادات الأساسية" msgid "Bass" msgstr "صوت عميق" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "لا يمكن استخدام وضع الدُفعات دون تحديد لعبة لإطلاقها" @@ -1666,7 +1688,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "(kbps) معدل البت" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1710,11 +1732,11 @@ msgstr "" msgid "Boot to Pause" msgstr "التمهيد لإيقاف مؤقت" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup file (*.bin);;All Files (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii keys file (*.bin);;All Files (*)" @@ -1722,7 +1744,7 @@ msgstr "BootMii keys file (*.bin);;All Files (*)" msgid "Borderless Fullscreen" msgstr "ملء الشاشة بلا حدود" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "اسفل" @@ -1749,7 +1771,7 @@ msgstr "توقف" msgid "Breakpoint encountered! Step out aborted." msgstr "تمت مصادفة نقطة توقف! إلغاء للخروج" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "نقاط التوقف" @@ -1783,12 +1805,12 @@ msgstr "مستعرض جلسات اللعب عبر الشبكة" msgid "Buffer Size:" msgstr "حجم المخزن المؤقت" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "تم تغيير حجم المخزن المؤقت إلى %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "المخزن المؤقت" @@ -1903,7 +1925,7 @@ msgstr "كاميرا 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1911,14 +1933,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} لا يمكن العثور على ريموت وي من خلال مقبض الاتصال" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "لا يمكن بدء جلسة اللعب عبر الشبكة بينما لا تزال اللعبة قيد التشغيل! " #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1947,7 +1969,7 @@ msgstr "لا يمكن مقارنة القيمة الأخيرة في البحث msgid "Cannot find the GC IPL." msgstr "Cannot find the GC IPL." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1973,7 +1995,7 @@ msgstr "مركز" msgid "Center and Calibrate" msgstr "المركز و المعايرة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "تغيير &القرص" @@ -1989,7 +2011,7 @@ msgstr "تغيير القرص" msgid "Change Discs Automatically" msgstr "تغيير الأقراص تلقائيا" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "{0} قم بتغيير القرص إلى" @@ -2041,7 +2063,7 @@ msgstr "التحقق من وجود تغييرات قائمة الألعاب في msgid "Check for updates" msgstr "تحقق من وجود تحديثات" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2057,16 +2079,19 @@ msgstr "اختباري" msgid "China" msgstr "الصين" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "اختيار ملف لفتح" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "اختيار ملف الإدخال ذي الأولوية" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "اختر ملف الإدخال الثانوي" @@ -2091,7 +2116,7 @@ msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "مسح" @@ -2144,7 +2169,7 @@ msgstr "تم تنفيذ التعليمات البرمجية" msgid "Code:" msgstr "رمز" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "الرموز الواردة!" @@ -2169,7 +2194,7 @@ msgstr "تجميع التظليل قبل البدء" msgid "Compiling Shaders" msgstr "تجميع التظليل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2221,23 +2246,23 @@ msgstr "تكوين الإخراج" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "تأكيد " -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "تأكيد تغيير الخلفية" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "تأكيد على التوقف" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2292,7 +2317,7 @@ msgstr "الاتصال بالإنترنت وإجراء تحديث للنظام msgid "Connected" msgstr "متصل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "الاتصال" @@ -2411,11 +2436,11 @@ msgstr "التقارب" msgid "Convert" msgstr "تحويل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "تحويل الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "تحويل الملفات المحددة..." @@ -2447,9 +2472,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "نسخ" @@ -2461,19 +2486,19 @@ msgstr "نسخ &الوظيفة" msgid "Copy &hex" msgstr "Copy &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "نسخ العنوان" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "فشل النسخ" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copy Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2481,19 +2506,15 @@ msgstr "" msgid "Copy code &line" msgstr "Copy code &line" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "فشل النسخ" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "A نسخ إلى" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "B نسخ إلى" @@ -2537,7 +2558,7 @@ msgstr "" "تعذر تنزيل معلومات التحديث من نينتندو. يرجى التحقق من اتصالك بالإنترنت " "والمحاولة مرة أخرى." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2547,7 +2568,7 @@ msgstr "" "\n" "سيتم إيقاف وحدة التحكم التي تمت محاكاتها الآن." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2599,7 +2620,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "{0} تعذر التعرف على الملف" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2611,15 +2632,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "تعذر البحث عن الخادم المركزي" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "لا يمكن فتح الملف" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "لا يمكن قراءة الملف" @@ -2676,7 +2697,7 @@ msgstr "الإبهات المتداخل" msgid "Current Region" msgstr "المنطقة الحالية" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "القيمة الحالية" @@ -2784,24 +2805,24 @@ msgstr "نقل البيانات" msgid "Data Type" msgstr "نوع البيانات" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "البيانات في منطقة الملف التي يجب أن تكون غير مستخدمة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "البيانات بتنسيق غير معروف أو تالفة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" "عدم تناسق البيانات في بطاقة ذاكرة جيم كيوب ، مما يؤدي إلى إلغاء الإجراء" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "البيانات المتلقية!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2903,21 +2924,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "حذف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "حذف الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "حذف الملفات المحددة" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "'{0}' احذف الملف الموجود" @@ -2933,10 +2954,10 @@ msgstr "نسبة العمق" msgid "Depth:" msgstr "العمق" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2956,7 +2977,7 @@ msgstr "منفصل" msgid "Detect" msgstr "كشف" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2977,7 +2998,7 @@ msgstr "أداة" msgid "Device PID (e.g., 0305)" msgstr "Device PID (e.g., 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "إعدادات الجهاز" @@ -3030,8 +3051,8 @@ msgstr "" msgid "Dis&connected" msgstr "غير متصل" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "تعطيل" @@ -3124,25 +3145,25 @@ msgstr "مسافة" msgid "Distance of travel from neutral position." msgstr "Distance of travel from neutral position." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "هل تسمح لشركة دولفين بالإبلاغ عن معلومات لمطوري دولفين؟" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "هل تريد إضافة \"%1\" إلى قائمة مسارات الألعاب؟" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "هل تريد مسح قائمه أسماء الرموز ؟" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "هل تريد إيقاف المحاكاة الحالية؟" @@ -3159,9 +3180,9 @@ msgstr "Dolphin FIFO Log (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin Map File (*.map)" @@ -3173,8 +3194,8 @@ msgstr "CSV توقيع دولفين ملف" msgid "Dolphin Signature File" msgstr "دولفين توقيع الملف" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Movies (*.dtm)" @@ -3189,7 +3210,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3209,7 +3230,7 @@ msgstr "فشل دولفين في إكمال الإجراء المطلوب." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "محاكي دولفين مفتوح المصدر لجهاز جيم كيوب و وي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "دولفين قديم جدا لجتياز الخادم " @@ -3276,7 +3297,7 @@ msgstr "تحميل الرموز" msgid "Download Codes from the WiiRD Database" msgstr "WiiRD تحميل رموز من قاعدة بيانات" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "للإستخدام في وضع الشبكة GameTDB.com تحميل أغلفة الألعاب من" @@ -3456,7 +3477,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "الهولندية" @@ -3533,7 +3554,7 @@ msgstr "(EFB) مخزن مؤقت للإطار المضمن" msgid "Empty" msgstr "فارغة" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "المحاكي قيد التشغيل بالفعل" @@ -3568,8 +3589,8 @@ msgstr "يجب البدء في المحاكاة للتسجيل." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "تمكين" @@ -3619,7 +3640,7 @@ msgid "Enable Progressive Scan" msgstr "تمكين المسح التدريجي" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "تمكين الهزاز" @@ -3734,7 +3755,7 @@ msgstr "" msgid "Encoding" msgstr "الترميز" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3751,7 +3772,7 @@ msgid "Enet Didn't Initialize" msgstr "لم يتم تهيئة الشبكة" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "الإنجليزية" @@ -3784,7 +3805,7 @@ msgstr "أدخل عنوان الماك ادرس لمحول البرودباند msgid "Enter password" msgstr "أدخل كلمة المرور" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Enter the RSO module address:" @@ -3796,7 +3817,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3815,46 +3836,47 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "خطأ" @@ -3875,11 +3897,11 @@ msgstr "خطأ في الحصول على قائمة الجلسة: 1%" msgid "Error occurred while loading some texture packs" msgstr "حدث خطأ أثناء تحميل بعض حزم النسيج" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "خطأ معالجة الرموز" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "خطأ في معالجة البيانات." @@ -3899,7 +3921,7 @@ msgstr "حدث خطا اثناء مزامنة حفظ البيانات!" msgid "Error writing file: {0}" msgstr "{0} خطأ في كتابة الملف" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4051,10 +4073,10 @@ msgstr "تجريبي" msgid "Export All Wii Saves" msgstr "تصدير جميع حفظ وي" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "فشل التصدير" @@ -4066,19 +4088,19 @@ msgstr "تصدير تسجيل" msgid "Export Recording..." msgstr "تصدير تسجيل" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "تصدير حفظ الملف" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "تصدير حفظ الملفات" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "تصدير حفظ وي" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "تصدير حفظ وي" @@ -4090,7 +4112,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4164,7 +4186,7 @@ msgstr "FIFO Player" msgid "Failed loading XML." msgstr "XML فشل تحميل" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4176,19 +4198,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "فشل في إضافة هذه الجلسة إلى فهرس اللعب عبر الشبكة: 1%" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Redump.org فشل الاتصال بـ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "%1 فشل الاتصال بالخادم" @@ -4219,11 +4241,11 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "فشل حذف بطاقة الذاكرة في لعب عبر الشبكة تحقق من أذونات الكتابة الخاصة بك." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "فشل حذف الملف المحدد." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4239,16 +4261,16 @@ msgstr "فشل تفريغ٪ 1: لا يمكن فتح الملف" msgid "Failed to dump %1: Failed to write to file" msgstr "فشل تفريغ٪ 1: فشل في الكتابة إلى الملف" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "فشل تصدير ملفات الحفظ التالية:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "NAND فشل استخراج شهادات من" @@ -4274,31 +4296,31 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "D3D فشل في العثور على واحد أو أكثر من رموز" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "\"%1\" فشل الاستيراد" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "فشل استيراد ملف الحفظ. الرجاء تشغيل اللعبة مرة واحدة ، ثم المحاولة مرة أخرى" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" "فشل استيراد ملف الحفظ. يبدو أن الملف المحدد تالف أو أنه ليس حفظ وي صالحًا" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "فشل في التهيئة الأساسية" @@ -4318,12 +4340,12 @@ msgstr "فشل في تهيئة فئات العارض" msgid "Failed to install pack: %1" msgstr "%1 :فشل تثبيت الحزمة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "NAND فشل تثبيت هذا العنوان على" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4331,8 +4353,8 @@ msgstr "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Failed to load RSO module at %1" @@ -4344,7 +4366,7 @@ msgstr "d3d11.dll فشل تحميل" msgid "Failed to load dxgi.dll" msgstr "dxgi.dll فشل تحميل" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Failed to load map file '%1'" @@ -4358,13 +4380,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' فشل في الفتح" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "{0} فشل في فتح جهاز بلوتوث" @@ -4388,11 +4410,11 @@ msgstr "" "فشل في فتح ملف في محرر خارجي\n" "تأكد من وجود تطبيق معين لفتح الملفات" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "فشل فتح ملف" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "فشل في فتح الخادم" @@ -4401,7 +4423,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "\"%1\" فشل في فتح ملف الإدخال" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4421,25 +4443,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "DFF فشل في قراءة ملف" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "فشلت القراءة من الملف" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "\"{0}\" فشلت القراءة من ملف الإدخال" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "{0} فشلت القراءة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "فشل إزالة الملف" @@ -4453,7 +4475,7 @@ msgstr "" "\n" "هل تريد تحويلها دون إزالة البيانات غير المرغوب فيها؟" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "NAND فشل في إزالة هذا العنوان من" @@ -4475,19 +4497,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Failed to save FIFO log." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Failed to save code map to path '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Failed to save signature file '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Failed to save symbol map to path '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Failed to save to signature file '%1'" @@ -4511,9 +4533,9 @@ msgstr "فشل في كتابة حفظ وي." msgid "Failed to write config file!" msgstr "فشل في كتابه ملف التكوين" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "فشل في كتابة بطاقة الذاكرة المعدلة إلى القرص" @@ -4521,12 +4543,12 @@ msgstr "فشل في كتابة بطاقة الذاكرة المعدلة إلى msgid "Failed to write redirected save." msgstr "فشل في كتابة إعادة توجيه الحفظ" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "فشل في كتابة ملف الحفظ على القرص" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4534,10 +4556,10 @@ msgstr "" "فشل كتابة ملف الإخراج \"{0}\".\n" "تأكد من أن لديك مساحة كافية متوفرة على محرك الأقراص الهدف." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "فشل" @@ -4562,7 +4584,7 @@ msgstr "سريع" msgid "Fast Depth Calculation" msgstr "سرعة حساب العمق" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4577,7 +4599,7 @@ msgstr "مجال الرؤية" msgid "File Details" msgstr "تفاصيل الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4591,19 +4613,19 @@ msgstr "تنسيق الملف" msgid "File Info" msgstr "معلومات الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "اسم الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "مسار الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "حجم الملف" @@ -4630,11 +4652,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "لا يتوافق حجم الملف مع أي حجم معروف لبطاقة ذاكرة جيم كيوب" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "حجم الملف في عدم تطابق حجم البطاقة الفعلي." @@ -4686,7 +4708,7 @@ msgstr "أول شخص " msgid "Fix Checksums" msgstr "إصلاح المجاميع الاختبارية" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "فشل إصلاح المجموع الاختباري" @@ -4696,7 +4718,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "الأعلام" @@ -4835,11 +4857,11 @@ msgstr "إطارات للتسجيل" msgid "France" msgstr "فرنسا" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "%1 الكتل الحرة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "%1 ملفات حرة" @@ -4881,7 +4903,7 @@ msgid "Freelook Toggle" msgstr "نظرة حرة" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "الفرنسية" @@ -4910,7 +4932,7 @@ msgstr "من" msgid "FullScr" msgstr "شاشة كاملة" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "وظيفة" @@ -4942,7 +4964,7 @@ msgstr "جيم بوي أدفانس" msgid "GBA Port %1" msgstr "%1 جيم بوي أدفانس منفذ" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "إعدادات جيم بوي أدفانس" @@ -4954,11 +4976,11 @@ msgstr "صوت جيم بوي أدفانس" msgid "GBA Window Size" msgstr "حجم النافذة جيم بوي أدفانس" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -5061,11 +5083,11 @@ msgstr "اللعبة" msgid "Game Boy Advance" msgstr "جيم بوي أدفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "(*.gba) جيم بوي ادفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5087,7 +5109,7 @@ msgstr "تفاصيل اللعبة" msgid "Game Folders" msgstr "مجلدات الألعاب" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "معرف اللعبة" @@ -5101,11 +5123,25 @@ msgstr "معرف اللعبة" msgid "Game Status" msgstr "حالة اللعبة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "تغيرت اللعبة إلى \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "لعبة تستخدم بالفعل!" @@ -5114,6 +5150,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "إعدادات خاصه باللعبة" @@ -5154,12 +5194,12 @@ msgstr "لوحة مفاتيح جيم كيوب في منفذ %1" msgid "GameCube Memory Card Manager" msgstr "مدير بطاقة الذاكرة جيم كيوب" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "بطاقة الذاكرة جيم كيوب" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "بطاقات ذاكرة جيم كيوب (*.raw *.gcp)" @@ -5192,7 +5232,7 @@ msgstr "عام" msgid "General and Options" msgstr "العامة و الخيارات" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Generate Action Replay Code" @@ -5200,16 +5240,16 @@ msgstr "Generate Action Replay Code" msgid "Generate a New Statistics Identity" msgstr "إنشاء هوية جديد للحصائيات " -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "أسماء الرموز التي تم إنشاؤها من '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "الألمانية" @@ -5218,14 +5258,14 @@ msgstr "الألمانية" msgid "Germany" msgstr "ألمانيا" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "غيغابايت" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "الانتقال إلى" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golf وضع" @@ -5397,15 +5437,15 @@ msgstr "" "مناسب للألعاب غير الرسمية مع أكثر من 3 لاعبين ، وربما على اتصالات غير مستقرة " "أو عالية وقت الإستجابة." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "تم تعطيل سلطة إدخال المضيف" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "تمكين سلطة إدخال المضيف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "استضافة لعب عبر الشبكة" @@ -5423,7 +5463,7 @@ msgstr "إعدادات مفاتيح الاختصار" msgid "Hotkeys" msgstr "مفاتيح الاختصار" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "تتطلب مفاتيح الاختصار التركيز على النافذة" @@ -5468,7 +5508,7 @@ msgstr "" msgid "IP Address:" msgstr "IP عنوان " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "إعدادات" @@ -5477,7 +5517,7 @@ msgid "IR" msgstr "الأشعة تحت الحمراء" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "حساسية الأشعة تحت الحمراء" @@ -5531,7 +5571,7 @@ msgstr "" msgid "Identity Generation" msgstr "إنشاء هوية " -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5582,7 +5622,7 @@ msgstr "تجاهل" msgid "Ignore Format Changes" msgstr "تجاهل تنسيق التغييرات " -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "تجاهل" @@ -5619,14 +5659,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "النسخة الاحتياطية BootMii NAND استيراد" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "فشل الاستيراد" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5634,11 +5674,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "استيراد حفظ وي" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr " NAND استيراد النسخ الاحتياطي" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5712,21 +5752,21 @@ msgid "Info" msgstr "معلومات" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "المعلومات" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "منع شاشة التوقف أثناء المحاكاة" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "إدخال" @@ -5771,7 +5811,7 @@ msgstr "تثبيت التحديث" msgid "Install WAD..." msgstr "WAD تثبيت" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "NAND تثبيت على" @@ -5787,7 +5827,7 @@ msgstr "تعليمات" msgid "Instruction Breakpoint" msgstr "نقطة توقف التعليمات" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "التعليمات" @@ -5834,7 +5874,7 @@ msgstr "الدقة الداخلية" msgid "Internal Resolution:" msgstr "الدقة الداخلية" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5846,7 +5886,7 @@ msgstr "Interpreter (بطيء)" msgid "Interpreter Core" msgstr "Interpreter Core" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "تعبير غير صالح" @@ -5863,7 +5903,7 @@ msgstr "حزمة غير صالحة 1% مقدمة :2%" msgid "Invalid Player ID" msgstr "معرف لاعب غير صالح" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Invalid RSO module address: %1" @@ -5871,7 +5911,7 @@ msgstr "Invalid RSO module address: %1" msgid "Invalid callstack" msgstr "مكدس استدعاء غير صالح" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "المجموع الاختباري غير صالح." @@ -5879,7 +5919,7 @@ msgstr "المجموع الاختباري غير صالح." msgid "Invalid game." msgstr "لعبة غير صالحة" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "المضيف غير صالح" @@ -5888,7 +5928,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "إدخال غير صالح للحقل \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "إدخال غير صالح المقدمة" @@ -5920,7 +5960,7 @@ msgstr "سلسلة البحث غير صالحة ( لا يمكن تحويل إل msgid "Invalid search string (only even string lengths supported)" msgstr "سلسلة البحث غير صالحة ( فقط حتى أطوال سلسلة مدعومة)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "معرف عنوان غير صالح." @@ -5929,7 +5969,7 @@ msgid "Invalid watch address: %1" msgstr "%1 عنوان الساعة غير صالح" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "الإيطالية" @@ -6033,7 +6073,7 @@ msgstr "اليابانية" msgid "Japanese (Shift-JIS)" msgstr "(Shift-JIS) اليابانية" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "الاحتفاظ بالإطار في الأعلى" @@ -6101,7 +6141,7 @@ msgstr "LR حفظ" msgid "Label" msgstr "ضع الكلمة المناسبة" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "آخر قيمة" @@ -6205,7 +6245,7 @@ msgstr "الاستماع" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "تحميل" @@ -6340,7 +6380,7 @@ msgstr "تحميل الحالة من فتحة" msgid "Load Wii Save" msgstr "تحميل حفظ وي" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "%1 تحميل قائمة نظام وي" @@ -6352,8 +6392,8 @@ msgstr "التحميل من الفتحة المحددة" msgid "Load from Slot %1 - %2" msgstr "تحميل من الفتحة %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Load map file" @@ -6361,7 +6401,7 @@ msgstr "Load map file" msgid "Load..." msgstr "تحميل" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "الرموز المحملة من '%1'" @@ -6376,7 +6416,7 @@ msgstr "" msgid "Local" msgstr "محلي" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "قفل مؤشر الماوس" @@ -6405,7 +6445,7 @@ msgstr "نوع السجل" msgid "Logger Outputs" msgstr "مسجل المخرجات" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6416,7 +6456,7 @@ msgstr "" msgid "Loop" msgstr "التكرار الحلقي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "فقد الاتصال بالخادم" @@ -6445,7 +6485,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "ملفات MadCatz Gameshark" @@ -6453,7 +6493,7 @@ msgstr "ملفات MadCatz Gameshark" msgid "Main Stick" msgstr "العصا الرئيسية" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6492,11 +6532,11 @@ msgstr "" msgid "Match Found" msgstr "وجد تطابق" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "المخزن المؤقت الأقصى" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "%1 تم تغيير حجم المخزن المؤقت الأقصى إلى" @@ -6530,16 +6570,6 @@ msgstr "بطاقة الذاكرة" msgid "Memory Card Manager" msgstr "مدير بطاقة الذاكرة" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "تجاوز الذاكرة" @@ -6548,19 +6578,19 @@ msgstr "تجاوز الذاكرة" msgid "Memory breakpoint options" msgstr "خيارات نقطة توقف الذاكرة" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6590,17 +6620,17 @@ msgstr "متنوعة" msgid "Misc Settings" msgstr "إعدادات متنوعة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" " \n" "عدم التطابق بين عدد الكتل الحرة في الرأس والكتل غير المستخدمة فعليًا." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "عدم تطابق بين هياكل البيانات الداخلية." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6623,8 +6653,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "%1 تم العثور على وحدات" @@ -6653,20 +6683,20 @@ msgstr "محاكاة الحركة" msgid "Motor" msgstr "محرك" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "رؤية مؤشر الماوس" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "يختفي مؤشر الماوس بعد الخمول ويظهر عند حركة مؤشر الماوس" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "سيكون مؤشر الماوس مرئيًا دائمًا" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "لن يكون مؤشر الماوس مرئيًا أبدًا أثناء تشغيل اللعبة" @@ -6680,14 +6710,20 @@ msgstr "نقل" msgid "Movie" msgstr "فيلم" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "لا للكل" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND تحقق" @@ -6718,11 +6754,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "الاسم" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "الاسم لعلامة جديدة:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "اسم العلامة المراد إزالتها:" @@ -6743,8 +6779,8 @@ msgstr "الاسم" msgid "Native (640x528)" msgstr "Native (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6764,11 +6800,11 @@ msgstr "اعدادات لعب عبر الشبكة" msgid "Netherlands" msgstr "هولندا" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay has desynced in NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Netplay has desynced. There is no way to recover from this." @@ -6781,7 +6817,7 @@ msgstr "شبكة الاتصال" msgid "Network dump format:" msgstr "تنسيق تفريغ الشبكة" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "أبدا" @@ -6789,7 +6825,7 @@ msgstr "أبدا" msgid "Never Auto-Update" msgstr "عدم التحديث التلقائي" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "جديد" @@ -6802,7 +6838,7 @@ msgstr "نقطة توقف جديدة" msgid "New Search" msgstr "بحث جديد" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "علامة جديدة" @@ -6814,7 +6850,7 @@ msgstr "تم إنشاء هوية جديدة ." msgid "New instruction:" msgstr "تعليمات جديدة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "علامة جديدة" @@ -6871,13 +6907,13 @@ msgstr "لا تطابق" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "لا يوجد وصف متاح" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "لا اخطاء" @@ -6897,10 +6933,14 @@ msgstr "لا توجد لعبة قيد التشغيل" msgid "No game running." msgstr "لا توجد لعبة قيد التشغيل" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "لم يتم اكتشاف أية مشكلات." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6931,7 +6971,7 @@ msgstr "'{0}' لم يتم العثور على ملفات تعريف لإعداد msgid "No recording loaded." msgstr "لم يتم تحميل التسجيل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "لم يتم العثور على حفظ البيانات" @@ -6951,10 +6991,6 @@ msgstr "لا شيء" msgid "North America" msgstr "أمريكا الشمالية" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "لم يتم العثور" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "غير مجموعة" @@ -6963,7 +6999,7 @@ msgstr "غير مجموعة" msgid "Not all players have the game. Do you really want to start?" msgstr "ليس كل اللاعبين لديهم اللعبة. هل تريد حقا أن تبدأ؟" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6971,7 +7007,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6979,6 +7015,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7031,7 +7071,7 @@ msgstr " توجه نونشوك " msgid "Nunchuk Stick" msgstr "عصا نونشوك" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7062,7 +7102,7 @@ msgstr "" msgid "On" msgstr "تمكين" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "عند الحركة" @@ -7070,7 +7110,7 @@ msgstr "عند الحركة" msgid "Online &Documentation" msgstr "وثائق على الانترنت" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7078,7 +7118,7 @@ msgstr "" "إلحاق رموز فقط بالبادية:\n" "(فارغ لكل الرموز)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7091,7 +7131,7 @@ msgstr "" msgid "Open" msgstr "فتح" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "فتح موقع الملف" @@ -7103,7 +7143,7 @@ msgstr "فتح" msgid "Open FIFO log" msgstr "FIFO فتح سجل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "فتح مجلد حفظ جيم كيوب" @@ -7111,7 +7151,7 @@ msgstr "فتح مجلد حفظ جيم كيوب" msgid "Open Riivolution XML..." msgstr "Riivolution XML فتح" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "فتح مجلد حفظ وي" @@ -7299,7 +7339,7 @@ msgstr "إيقاف مؤقت" msgid "Pause at End of Movie" msgstr "وقفة في نهاية الفيلم" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "توقف عند فقدان التركيز" @@ -7326,7 +7366,7 @@ msgstr "لكل بكسل إضاءة" msgid "Perform Online System Update" msgstr "تحديث النظام عبر الإنترنت" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "تحديث النظام" @@ -7344,7 +7384,7 @@ msgstr "مساحة العنوان الفعلي" msgid "PiB" msgstr "بيتابايت" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "debug اختر خط" @@ -7360,7 +7400,7 @@ msgstr "Pitch Down" msgid "Pitch Up" msgstr "Pitch Up" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "المنصة" @@ -7406,7 +7446,7 @@ msgstr "مؤشر" msgid "Port %1" msgstr "منفذ %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7415,7 +7455,7 @@ msgstr "" msgid "Port:" msgstr "منفذ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "تم اكتشاف مزامنة محتملة: %1 قد تمت مزامنتها في الإطار %2" @@ -7435,15 +7475,15 @@ msgstr "التكوين بعد تظليل" msgid "Prefetch Custom Textures" msgstr "جلب النسيج المخصص المسبق " -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7468,7 +7508,7 @@ msgstr "اضغط على زر المزامنة" msgid "Pressure" msgstr "الضغط" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7555,7 +7595,7 @@ msgstr "عامة" msgid "Purge Game List Cache" msgstr "أزالة ذاكره التخزين المؤقت لقائمة الألعاب" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7583,8 +7623,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "مشكلة" @@ -7612,7 +7652,7 @@ msgstr "جاهز" msgid "RSO Modules" msgstr "RSO Modules" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO الكشف التلقائي" @@ -7757,12 +7797,12 @@ msgstr "فشل التحديث. الرجاء تشغيل اللعبة قليلاً msgid "Refreshed current values." msgstr "تحديث القيم الحالية" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "تحديث..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7792,12 +7832,12 @@ msgstr "ذكرني لاحقا" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "إزالة" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "فشل الإزالة" @@ -7805,11 +7845,11 @@ msgstr "فشل الإزالة" msgid "Remove Junk Data (Irreversible):" msgstr "إزالة البيانات غير المرغوب فيها (لا رجعة فيها)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "إزالة العلامة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "إزالة العلامة" @@ -7828,7 +7868,7 @@ msgstr "" msgid "Rename symbol" msgstr "إعادة تسمية الرمز" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "نافذة التقديم" @@ -7907,7 +7947,7 @@ msgstr "أدارة حزمة الموارد" msgid "Resource Pack Path:" msgstr "مسار حزمة الموارد" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "مطلوب إعادة تشغيل" @@ -7919,7 +7959,7 @@ msgstr "استعادة الضبط الافتراضي" msgid "Restore instruction" msgstr "استعادة التعليمات" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "إعادة المحاولة" @@ -8019,7 +8059,7 @@ msgstr "هزاز" msgid "Run &To Here" msgstr "Run &To Here" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "تشغيل جيم بوي أدفانس في خيوط مخصصة" @@ -8051,7 +8091,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8080,7 +8120,7 @@ msgstr "آمنة" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8090,9 +8130,9 @@ msgstr "حفظ" msgid "Save All" msgstr "حفظ الكل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "حفظ التصدير" @@ -8113,11 +8153,11 @@ msgstr "حفظ اللعبة" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "حفظ الاستيراد" @@ -8129,7 +8169,7 @@ msgstr "حفظ الحالة القديمة" msgid "Save Preset" msgstr "حفظ الإعداد المسبق" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "حفظ ملف التسجيل باسم" @@ -8215,11 +8255,11 @@ msgstr "حفظ كإعداد مسبق" msgid "Save as..." msgstr "حفظ بأسم" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "حفظ ملف الإخراج المجمع بأسم" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8229,15 +8269,15 @@ msgstr "" "النظر في النسخ الاحتياطي للبيانات الحالية قبل الكتابة.\n" "الكتابة الآن؟" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "احفظ في نفس الدليل مثل ملف القرص" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Save map file" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "احفظ ملف التوقيع" @@ -8257,11 +8297,11 @@ msgstr "حفظ" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "لا يمكن إعادة تعيين اقتران ريموت وي المحفوظة إلا عند تشغيل لعبة وي." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "حفظ" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8314,7 +8354,7 @@ msgstr "ابحث عن تعليمات" msgid "Search games..." msgstr "بحث عن الالعاب" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "تعليمات البحث" @@ -8346,20 +8386,20 @@ msgstr "حدد" msgid "Select Dump Path" msgstr "تحديد مسار التفريغ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "حدد تصدير الدليل" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "حدد جيم بوي أدفانس BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "حدد قرص جيم بوي أدفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "حدد مسار الحفظ جيم بوي أدفانس" @@ -8439,7 +8479,7 @@ msgstr "WFS حدد مسار" msgid "Select Wii NAND Root" msgstr "NAND حدد جذر وي " -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "اختر دليل" @@ -8447,9 +8487,9 @@ msgstr "اختر دليل" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "حدد ملف" @@ -8469,7 +8509,7 @@ msgstr "" msgid "Select a game" msgstr "اختر لعبة" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "NAND حدد عنوانًا لتثبيته إلى" @@ -8477,11 +8517,11 @@ msgstr "NAND حدد عنوانًا لتثبيته إلى" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "RSO حدد عنوان وحدة" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "حدد ملف التسجيل للتشغيل" @@ -8489,12 +8529,12 @@ msgstr "حدد ملف التسجيل للتشغيل" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "(OTP/SEEPROM dump) حدد ملف المفاتيح" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "حدد حفظ الملف" @@ -8516,9 +8556,9 @@ msgstr "اختيار الملف التحكم الشخصي غير موجود " #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "اللعبة المختارة غير موجودة في قائمة الألعاب!" @@ -8530,13 +8570,13 @@ msgstr "مؤشر ترابط محدد" msgid "Selected thread context" msgstr "سياق الموضوع المحدد" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8563,7 +8603,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8572,7 +8612,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8586,7 +8626,7 @@ msgstr "" msgid "Send" msgstr "إرسال" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "موضع الاستشعار" @@ -8606,7 +8646,7 @@ msgstr "IP عنوان" msgid "Server Port" msgstr "منفذ الخادم" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "الخادم رفض محاولة الاجتياز" @@ -8627,15 +8667,15 @@ msgstr "تعيين الكمبيوتر" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "تعيين القرص افتراضي " -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "اضبط ملف بطاقة الذاكرة على الفتحة A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "اضبط ملف بطاقة الذاكرة على الفتحة B" @@ -8722,7 +8762,7 @@ msgstr "السجل" msgid "Show &Toolbar" msgstr "شريط الأدوات" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "إظهار العنوان النشط في عنوان الإطار" @@ -8738,7 +8778,7 @@ msgstr "أستراليا" msgid "Show Current Game on Discord" msgstr "عرض اللعبة الحالية على الخلاف" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "عرض تصحيح واجهة المستخدم" @@ -8810,7 +8850,7 @@ msgstr "في اللعب عبر الشبكة Ping عرض الـ" msgid "Show Netherlands" msgstr "هولندا" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "عرض الرسائل التي تظهر على الشاشة " @@ -8880,10 +8920,23 @@ msgstr "العالم" msgid "Show in &memory" msgstr "تظهر في الذاكرة" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "إظهار في الرموز" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "إظهار في مستعرض الخادم" @@ -8898,20 +8951,20 @@ msgid "" "this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9000,7 +9053,7 @@ msgstr "تخطي الرسم" msgid "Skip EFB Access from CPU" msgstr "من المعالج EFB تخطي الوصول " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "تخطي القائمة الرئيسية" @@ -9026,7 +9079,7 @@ msgstr "شريط التمرير" msgid "Slot A" msgstr "A فتحة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "A فتحة" @@ -9034,7 +9087,7 @@ msgstr "A فتحة" msgid "Slot B" msgstr "B فتحة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "B فتحة" @@ -9090,7 +9143,7 @@ msgid "Spain" msgstr "اسبانيا" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "الأسبانية" @@ -9099,7 +9152,7 @@ msgstr "الأسبانية" msgid "Speaker Pan" msgstr "مكبر الصوت" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "مستوى الصوت" @@ -9181,11 +9234,11 @@ msgstr "بدء بملء الشاشة" msgid "Start with Riivolution Patches" msgstr "Riivolution بدء مع تصحيحات" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Riivolution بدء مع تصحيحات" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "بدأت اللعبة" @@ -9348,10 +9401,10 @@ msgstr "مرقم" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "ناجح" @@ -9369,16 +9422,16 @@ msgstr "تم تحويل%n صورة القرص (اقراص) بنجاح" msgid "Successfully deleted '%1'." msgstr "'%1'. تم الحذف بنجاح" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "تم تصدير ملفات الحفظ بنجاح" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "تم استخراج الشهادات بنجاح من NAND" @@ -9390,16 +9443,16 @@ msgstr "تم استخراج الملف بنجاح." msgid "Successfully extracted system data." msgstr "استخرجت بنجاح بيانات النظام." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "تم استيراد ملف الحفظ بنجاح" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "تم بنجاح تثبيت هذا العنوان على NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "تمت إزالة هذا العنوان بنجاح من NAND." @@ -9407,7 +9460,7 @@ msgstr "تمت إزالة هذا العنوان بنجاح من NAND." msgid "Support" msgstr "الدعم" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "تنسيقات الملفات المدعومة" @@ -9440,11 +9493,11 @@ msgstr "" msgid "Swing" msgstr "تمايل" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "A التبديل إلى" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "B التبديل إلى" @@ -9523,7 +9576,7 @@ msgstr "جارٍ مزامنة الرموز" msgid "Synchronizing save data..." msgstr "جارٍ مزامنة حفظ البيانات" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "لغة النظام" @@ -9538,8 +9591,8 @@ msgstr "الإدخال" msgid "TAS Tools" msgstr "TAS أدوات" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9608,7 +9661,7 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "أقسام نادرة مفقودة." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9616,7 +9669,7 @@ msgstr "" "NAND لا يمكن إصلاح\n" "يوصى بعمل نسخة احتياطية من بياناتك الحالية والبدء من جديد" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND تم اصلاح" @@ -9665,11 +9718,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "(at {0:#x} - {1:#x}) تعذر قراءة القرص" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "تعذر العثور على القرص الذي كان على وشك أن يتم إدراجه" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9703,11 +9756,11 @@ msgstr "The entered PID is invalid." msgid "The entered VID is invalid." msgstr "The entered VID is invalid." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "يحتوي التعبير على خطأ في بناء الجملة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9737,6 +9790,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "نظام الملفات غير صالح أو لا يمكن قراءته." @@ -9840,7 +9900,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "The resulting decrypted AR code doesn't contain any lines." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9879,7 +9939,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "\"%1\" تحتوي بطاقة الذاكرة الهدف بالفعل على ملف" @@ -9935,7 +9995,7 @@ msgstr "هناك الكثير من الأقسام في جدول القسم ال msgid "There is nothing to undo!" msgstr "لا يوجد شيء للتراجع !" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "حدثت مشكلة أثناء إضافة اختصار إلى سطح المكتب" @@ -9978,11 +10038,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "جهاز يو إس بي مدرج بالفعل في القائمة المسموح لها" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "غير قابل للتمهيد WAD" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "غير صالح WAD" @@ -9995,7 +10055,7 @@ msgstr "" "Replay itself." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "هذا لا يمكن التراجع عنه" @@ -10115,7 +10175,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "يجب عدم استخدام هذا البرنامج لتشغيل الألعاب التي لا تملكها قانونيًا." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "لا يمكن تشغيل هذا العنوان." @@ -10128,7 +10188,7 @@ msgstr "تم تعيين هذا العنوان لاستخدام نظام تشغي msgid "This title is set to use an invalid common key." msgstr "تم تعيين هذا العنوان لاستخدام مفتاح عام غير صالح" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10136,7 +10196,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10201,7 +10261,7 @@ msgstr "إمالة" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "الفترة الزمنية للإدخال المستقر لتشغيل المعايرة. (صفر لتعطيل)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10243,7 +10303,7 @@ msgid "Toggle Aspect Ratio" msgstr "تبديل تناسب الأبعاد" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "تبديل نقطة التوقف" @@ -10303,7 +10363,7 @@ msgstr "Tokenizing فشل" msgid "Toolbar" msgstr "شريط الأدوات" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "اعلى" @@ -10355,8 +10415,8 @@ msgstr "لمس" msgid "Traditional Chinese" msgstr "الصينية التقليدية" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "خطأ الاجتياز" @@ -10364,7 +10424,7 @@ msgstr "خطأ الاجتياز" msgid "Traversal Server" msgstr "اجتياز الخادم" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "انتهت مهلة خادم الاجتياز للاتصال بالمضيف" @@ -10390,7 +10450,7 @@ msgid "Triggers" msgstr "أزرار الكتف" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10424,14 +10484,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB خطأ في القائمة البيضاء لـ " -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10439,7 +10499,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10448,7 +10508,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "RSO تعذر الكشف التلقائي عن وحدة" @@ -10508,11 +10568,11 @@ msgstr "التراجع عن حفظ الحالة" msgid "Uninstall" msgstr "إلغاء التثبيت" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "NAND إلغاء التثبيت من" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10532,11 +10592,11 @@ msgstr "امريكا" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "غير معروف" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10580,11 +10640,11 @@ msgstr "قرص غير معروف" msgid "Unknown error occurred." msgstr "حدث خطأ غير معروف" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "{0:x} خطأ غير معروف" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "خطأ غير معروف" @@ -10640,8 +10700,8 @@ msgstr "عدد صحيح غير موقعة" msgid "Up" msgstr "فوق" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "التحديث" @@ -10703,11 +10763,11 @@ msgstr "ريموت وي وضع عمودي" msgid "Usage Statistics Reporting Settings" msgstr "إعدادات تقارير إحصائيات الاستخدام " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "استخدم قاعدة بيانات مدمجة لأسماء الألعاب" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "استخدم نمط المستخدم المخصص" @@ -10719,7 +10779,7 @@ msgstr "Use Lossless Codec (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "(EuRGB60) PAL60 استخدام وضع " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Use Panic Handlers" @@ -10780,11 +10840,11 @@ msgstr "" msgid "User Config" msgstr "تكوين المستخدم" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "واجهة المستخدم" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "نمط المستخدم" @@ -10807,14 +10867,14 @@ msgid "" "checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11058,7 +11118,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "تحذير" @@ -11077,28 +11137,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11153,7 +11213,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "الاجهزة المسموح لها المرور خلال منفذ يو إس بي " @@ -11199,7 +11259,7 @@ msgstr "أزرار ريموت وي" msgid "Wii Remote Orientation" msgstr "اتجاه ريموت وي" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "إعدادات ريموت وي" @@ -11227,7 +11287,7 @@ msgstr "وي و ريموت وي" msgid "Wii data is not public yet" msgstr "بيانات وي ليست عامة بعد" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "ملفات حفظ وي (*.bin);;كل الملفات (*)" @@ -11235,7 +11295,7 @@ msgstr "ملفات حفظ وي (*.bin);;كل الملفات (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools Signature MEGA File" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11294,9 +11354,21 @@ msgstr "Write to Log and Break" msgid "Write to Window" msgstr "الكتابة إلى النافذة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "إصدار خاطئ" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11362,18 +11434,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "تقوم بتشغيل أحدث إصدار متوفر على مسار التحديث هذا" @@ -11415,7 +11475,7 @@ msgstr "يجب تقديم اسم لجلستك!" msgid "You must provide a region for your session!" msgstr "يجب عليك توفير منطقة لجلستك!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "يجب إعادة تشغيل دولفين حتى يسري التغيير." @@ -11485,12 +11545,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll تعذر تحميل" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "إفتراضي" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "غير متصل" @@ -11551,13 +11611,13 @@ msgstr "" msgid "none" msgstr "لا شيء" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "إيقاف" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "على" @@ -11594,7 +11654,7 @@ msgstr "غير محاذي" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -11619,7 +11679,7 @@ msgstr "" "تحقق من أذونات الكتابة أو نقل الملف خارج دولفين" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 576aac07fe..743a9db456 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -41,7 +41,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -170,19 +170,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 s'ha unit" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 s'ha marxat" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 esta jugant al golf" @@ -219,7 +219,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -282,7 +282,7 @@ msgstr "" msgid "&About" msgstr "&Sobre" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -376,7 +376,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -474,7 +474,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Idioma:" @@ -531,7 +531,7 @@ msgstr "&Pausa" msgid "&Play" msgstr "&Executar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Propietats" @@ -581,7 +581,7 @@ msgstr "" msgid "&Stop" msgstr "&Aturar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -611,7 +611,7 @@ msgstr "&Veure" msgid "&Website" msgstr "&Pàgina web" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -619,15 +619,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Sí" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -664,9 +664,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -856,7 +856,7 @@ msgstr "< Menys que" msgid "" msgstr " " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr " " @@ -871,8 +871,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Més gran que" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Ja hi ha una sessió NetPlay en curs!" @@ -886,15 +886,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1029,7 +1029,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1041,7 +1041,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adaptador" @@ -1071,8 +1071,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1099,18 +1099,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Afegir..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1189,10 +1189,15 @@ msgstr "Àfrica" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1200,20 +1205,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Tots els fitxers (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Tots els dispositius" @@ -1234,7 +1256,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1256,7 +1278,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1312,7 +1334,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1338,7 +1360,7 @@ msgstr "Data Apploader:" msgid "Apply" msgstr "Aplicar" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1350,7 +1372,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1366,7 +1388,7 @@ msgstr "" msgid "Are you sure?" msgstr "Estàs segur?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Relació d'aspecte" @@ -1383,7 +1405,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1444,11 +1466,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1475,7 +1497,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1487,7 +1509,7 @@ msgstr "Registre BP" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1540,7 +1562,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1575,7 +1597,7 @@ msgstr "Configuració bàsica" msgid "Bass" msgstr "Baix" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1607,7 +1629,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1649,11 +1671,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1661,7 +1683,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Abaix" @@ -1688,7 +1710,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1722,12 +1744,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1842,7 +1864,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1850,14 +1872,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1884,7 +1906,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1910,7 +1932,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Canviar &Disc" @@ -1926,7 +1948,7 @@ msgstr "Canviar Disc" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1978,7 +2000,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1992,16 +2014,19 @@ msgstr "" msgid "China" msgstr "Xina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Trieu un arxiu per obrir" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2026,7 +2051,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Esborrar" @@ -2079,7 +2104,7 @@ msgstr "" msgid "Code:" msgstr "Codi:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2104,7 +2129,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2156,23 +2181,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmar a l'aturar" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2227,7 +2252,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2335,11 +2360,11 @@ msgstr "Convergència:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2365,9 +2390,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Copiar" @@ -2379,19 +2404,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2399,19 +2424,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Copia fallada" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2451,14 +2472,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2502,7 +2523,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2514,15 +2535,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2576,7 +2597,7 @@ msgstr "Atenuar" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2679,23 +2700,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2797,21 +2818,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Eliminar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2827,10 +2848,10 @@ msgstr "" msgid "Depth:" msgstr "Profunditat:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2850,7 +2871,7 @@ msgstr "" msgid "Detect" msgstr "Detectar" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2871,7 +2892,7 @@ msgstr "Dispositiu" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Configuració del dispositiu" @@ -2918,8 +2939,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3012,25 +3033,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Voleu aturar l'emulació actual?" @@ -3047,9 +3068,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3061,8 +3082,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin Pel·lícules TAS (*.dtm)" @@ -3077,7 +3098,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3095,7 +3116,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3160,7 +3181,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3340,7 +3361,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holandès" @@ -3413,7 +3434,7 @@ msgstr "" msgid "Empty" msgstr "Buit" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "El fil de l'emulador ja s'està executant" @@ -3445,8 +3466,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3496,7 +3517,7 @@ msgid "Enable Progressive Scan" msgstr "Habilitar Exploració &Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3608,7 +3629,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3621,7 +3642,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Anglès" @@ -3654,7 +3675,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3666,7 +3687,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3685,46 +3706,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -3747,11 +3769,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3771,7 +3793,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3919,10 +3941,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Exportar totes les partides guardades de Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3934,19 +3956,19 @@ msgstr "Exportar gravació" msgid "Export Recording..." msgstr "Exportar gravació..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3958,7 +3980,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4032,7 +4054,7 @@ msgstr "Jugador FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4042,19 +4064,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4084,11 +4106,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4104,16 +4126,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4136,29 +4158,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4178,19 +4200,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4202,7 +4224,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4216,13 +4238,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4244,11 +4266,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4257,7 +4279,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4277,25 +4299,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4306,7 +4328,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4326,19 +4348,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4362,9 +4384,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4372,21 +4394,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4411,7 +4433,7 @@ msgstr "Ràpid" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4426,7 +4448,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4440,19 +4462,19 @@ msgstr "" msgid "File Info" msgstr "informació del fitxer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nom de l'arxiu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Mida del fitxer" @@ -4479,11 +4501,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4533,7 +4555,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Arregla les sumes de comprovació" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4543,7 +4565,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4681,11 +4703,11 @@ msgstr "" msgid "France" msgstr "França" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4723,7 +4745,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francès" @@ -4752,7 +4774,7 @@ msgstr "" msgid "FullScr" msgstr "Pantalla completa" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4784,7 +4806,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4796,11 +4818,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4903,11 +4925,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4929,7 +4951,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID del joc" @@ -4943,11 +4965,25 @@ msgstr "ID del joc:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "El joc encara està en marxa!" @@ -4956,6 +4992,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Configuració específica de joc" @@ -4996,12 +5036,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5034,7 +5074,7 @@ msgstr "General" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5042,16 +5082,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Alemany" @@ -5060,12 +5100,12 @@ msgstr "Alemany" msgid "Germany" msgstr "Alemanya" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5235,15 +5275,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5261,7 +5301,7 @@ msgstr "" msgid "Hotkeys" msgstr "Tecles d'accés ràpid" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5306,7 +5346,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Configuració de IPL" @@ -5315,7 +5355,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilitat d'IR:" @@ -5352,7 +5392,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5395,7 +5435,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignora els canvis de format" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5432,14 +5472,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5447,11 +5487,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5523,21 +5563,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informació" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Entrada" @@ -5582,7 +5622,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5598,7 +5638,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5645,7 +5685,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Resolució Interna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5657,7 +5697,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5674,7 +5714,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5682,7 +5722,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5690,7 +5730,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5699,7 +5739,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5732,7 +5772,7 @@ msgid "Invalid search string (only even string lengths supported)" msgstr "" "Cadena de cerca invàlida (només es soporten longituds de la cadena parelles)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5741,7 +5781,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italià" @@ -5845,7 +5885,7 @@ msgstr "Japonès" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5913,7 +5953,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6011,7 +6051,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Carregar" @@ -6146,7 +6186,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6158,8 +6198,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6167,7 +6207,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6182,7 +6222,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6211,7 +6251,7 @@ msgstr "Tipus de registre" msgid "Logger Outputs" msgstr "Sortides del registrador" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6222,7 +6262,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6251,7 +6291,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6259,7 +6299,7 @@ msgstr "" msgid "Main Stick" msgstr "Palanca principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6298,11 +6338,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6336,16 +6376,6 @@ msgstr "Targeta de memòria" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6354,19 +6384,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6392,15 +6422,15 @@ msgstr "Miscel·làni" msgid "Misc Settings" msgstr "Configuracions Miscel·lànies" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6423,8 +6453,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6453,20 +6483,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6480,14 +6510,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6518,11 +6554,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6543,8 +6579,8 @@ msgstr "Nom:" msgid "Native (640x528)" msgstr "Natiu (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6564,11 +6600,11 @@ msgstr "" msgid "Netherlands" msgstr "Països Baixos" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6581,7 +6617,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6589,7 +6625,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6602,7 +6638,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6614,7 +6650,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6671,13 +6707,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "No hi ha descripció disponible" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6697,10 +6733,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6728,7 +6768,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6748,10 +6788,6 @@ msgstr "Cap" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Sense establir" @@ -6760,7 +6796,7 @@ msgstr "Sense establir" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6768,7 +6804,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6776,6 +6812,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6828,7 +6868,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6859,7 +6899,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6867,13 +6907,13 @@ msgstr "" msgid "Online &Documentation" msgstr "&Documentació en línia" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6884,7 +6924,7 @@ msgstr "" msgid "Open" msgstr "Obrir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6896,7 +6936,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6904,7 +6944,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7092,7 +7132,7 @@ msgstr "Pausa" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7119,7 +7159,7 @@ msgstr "Il·luminació per píxel" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7137,7 +7177,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7153,7 +7193,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7199,7 +7239,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7208,7 +7248,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7228,15 +7268,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7259,7 +7299,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7340,7 +7380,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7366,8 +7406,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pregunta" @@ -7395,7 +7435,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7540,12 +7580,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7575,12 +7615,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Eliminar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7588,11 +7628,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7608,7 +7648,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7687,7 +7727,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7699,7 +7739,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Tornar a intentar" @@ -7799,7 +7839,7 @@ msgstr "Vibració" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7831,7 +7871,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7860,7 +7900,7 @@ msgstr "Segur" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7870,9 +7910,9 @@ msgstr "Desar" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7893,11 +7933,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7909,7 +7949,7 @@ msgstr "Desar l'Estat Més Antic" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7995,26 +8035,26 @@ msgstr "" msgid "Save as..." msgstr "Desar com..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8034,11 +8074,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8091,7 +8131,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8123,20 +8163,20 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8216,7 +8256,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8224,9 +8264,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8246,7 +8286,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8254,11 +8294,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8266,12 +8306,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccioni el fitxer de partida guardada" @@ -8293,9 +8333,9 @@ msgstr "El perfil del controlador seleccionat no existeix" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8307,13 +8347,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8340,7 +8380,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8349,7 +8389,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8363,7 +8403,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Posició Barra de Sensors" @@ -8383,7 +8423,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8404,15 +8444,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8492,7 +8532,7 @@ msgstr "Mostrar &Registre" msgid "Show &Toolbar" msgstr "Mostrar Barra d'&Eines" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8508,7 +8548,7 @@ msgstr "Mostrar Austràlia" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8580,7 +8620,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8650,10 +8690,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8668,20 +8721,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8768,7 +8821,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Salta l'accés d'EFB des de la CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8794,7 +8847,7 @@ msgstr "" msgid "Slot A" msgstr "Ranura A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8802,7 +8855,7 @@ msgstr "" msgid "Slot B" msgstr "Ranura B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8854,7 +8907,7 @@ msgid "Spain" msgstr "Espanya" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Espanyol" @@ -8863,7 +8916,7 @@ msgstr "Espanyol" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volum de l'altaveu:" @@ -8945,11 +8998,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9112,10 +9165,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9133,16 +9186,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9154,16 +9207,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9171,7 +9224,7 @@ msgstr "" msgid "Support" msgstr "Suport" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9204,11 +9257,11 @@ msgstr "" msgid "Swing" msgstr "Swing" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9285,7 +9338,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Idioma del sistema:" @@ -9300,8 +9353,8 @@ msgstr "Entrada TAS" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9370,13 +9423,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9422,11 +9475,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9456,11 +9509,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9484,6 +9537,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9580,7 +9640,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "El codi AR desxifrat resultant no conté cap línia." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9614,7 +9674,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9669,7 +9729,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9705,11 +9765,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9722,7 +9782,7 @@ msgstr "" "modifiquen el mateix Action Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9819,7 +9879,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9832,7 +9892,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9840,7 +9900,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9900,7 +9960,7 @@ msgstr "Inclinació" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9942,7 +10002,7 @@ msgid "Toggle Aspect Ratio" msgstr "Commutar Relació d'Aspecte" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -10002,7 +10062,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Superior" @@ -10054,8 +10114,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Xinès Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10063,7 +10123,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10087,7 +10147,7 @@ msgid "Triggers" msgstr "Gatells" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10121,14 +10181,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10136,7 +10196,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10145,7 +10205,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10197,11 +10257,11 @@ msgstr "Desfer Estat Guardat" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10218,11 +10278,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Desconegut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10266,11 +10326,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10326,8 +10386,8 @@ msgstr "" msgid "Up" msgstr "Amunt" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Actualitzar" @@ -10387,11 +10447,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10403,7 +10463,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Utilitzar Gestors de Pànic" @@ -10463,11 +10523,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10490,14 +10550,14 @@ msgid "" "checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10728,7 +10788,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Advertència" @@ -10745,28 +10805,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10821,7 +10881,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10867,7 +10927,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10895,7 +10955,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10903,7 +10963,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10960,8 +11020,20 @@ msgstr "" msgid "Write to Window" msgstr "Escriu a Finestra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11028,14 +11100,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11073,7 +11137,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Ha de reiniciar Dolphin perquè el canvi faci efecte." @@ -11143,12 +11207,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11209,13 +11273,13 @@ msgstr "" msgid "none" msgstr "cap" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11252,7 +11316,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11275,7 +11339,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 6da87b6646..8257aedf8b 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -36,7 +36,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +165,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +214,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +277,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +369,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +524,7 @@ msgstr "&Pauza" msgid "&Play" msgstr "&Přehrát" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Vlastnosti" @@ -574,7 +574,7 @@ msgstr "" msgid "&Stop" msgstr "Za&stavit" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +604,7 @@ msgstr "&Sledování" msgid "&Website" msgstr "&Internetová stránka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -612,15 +612,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +657,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +849,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +864,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +879,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1064,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1092,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Přidat..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1182,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1198,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1249,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1271,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1327,7 @@ msgstr "Vyhlazení okrajů" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1353,7 @@ msgstr "Datum zavaděče aplikace:" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1365,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1381,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1398,7 @@ msgstr "Přidělit porty ovladače" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1459,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1490,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1502,7 @@ msgstr "Registr BP" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1555,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1590,7 @@ msgstr "Základní nastavení" msgid "Bass" msgstr "Basy" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1622,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1664,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1676,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Celá obrazovka bez okrajů" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Dole" @@ -1681,7 +1703,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1737,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Vyrovnávací paměť:" @@ -1835,7 +1857,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1865,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1899,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1925,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Vyměnit &disk" @@ -1919,7 +1941,7 @@ msgstr "Vyměnit Disk" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1993,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2007,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Zvolte soubor k otevření" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Vyčistit" @@ -2072,7 +2097,7 @@ msgstr "" msgid "Code:" msgstr "Kód:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2122,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2174,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Při zastavení Potvrdit" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2245,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2353,11 @@ msgstr "Sblížení:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2383,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopírovat" @@ -2372,19 +2397,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2417,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopírování selhalo" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2465,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2516,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2528,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2590,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2693,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2811,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Smazat" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2841,10 @@ msgstr "" msgid "Depth:" msgstr "Hloubka:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2864,7 @@ msgstr "" msgid "Detect" msgstr "Zjistit" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2885,7 @@ msgstr "Zařízení" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Nastavení Zařízení" @@ -2911,8 +2932,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3026,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Chcete současnou emulaci zastavit?" @@ -3040,9 +3061,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3075,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Doplhin Filmy TAS (*.dtm)" @@ -3070,7 +3091,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3109,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3174,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3354,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Nizozemština" @@ -3406,7 +3427,7 @@ msgstr "Vestavěná vyrovnávací paměť snímků (EFB)" msgid "Empty" msgstr "Prázdné" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Vlákno Emulace již běží" @@ -3438,8 +3459,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3510,7 @@ msgid "Enable Progressive Scan" msgstr "Povolit Progresivní Skenování" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3605,7 +3626,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3618,7 +3639,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet nebyl uaveden" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Angličtina" @@ -3651,7 +3672,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3663,7 +3684,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3682,46 +3703,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Chyba" @@ -3743,11 +3765,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3767,7 +3789,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3915,10 +3937,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Exportovat všechny uložené hry Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3930,19 +3952,19 @@ msgstr "Exportovat Nahrávku" msgid "Export Recording..." msgstr "Exportovat Nahrávku..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3954,7 +3976,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4028,7 +4050,7 @@ msgstr "Přehrávač FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4038,19 +4060,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4080,11 +4102,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4100,16 +4122,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4132,29 +4154,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4174,19 +4196,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4198,7 +4220,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4212,13 +4234,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4240,11 +4262,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4253,7 +4275,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4273,25 +4295,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4302,7 +4324,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4322,19 +4344,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4358,9 +4380,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4368,21 +4390,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4407,7 +4429,7 @@ msgstr "Rychlá" msgid "Fast Depth Calculation" msgstr "Rychlý výpočet hloubky" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4422,7 +4444,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4436,19 +4458,19 @@ msgstr "" msgid "File Info" msgstr "Informace o souboru" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Název souboru" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Velikost souboru" @@ -4475,11 +4497,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4529,7 +4551,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Spravit Kontrolní Součty" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4539,7 +4561,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4677,11 +4699,11 @@ msgstr "" msgid "France" msgstr "Francie" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4719,7 +4741,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francouzština" @@ -4748,7 +4770,7 @@ msgstr "" msgid "FullScr" msgstr "CelObr" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4780,7 +4802,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4792,11 +4814,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4899,11 +4921,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartridže Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4925,7 +4947,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID hry" @@ -4939,11 +4961,25 @@ msgstr "ID Hry:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Hra už běží!" @@ -4952,6 +4988,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Nastavení Konkrétní Hry" @@ -4992,12 +5032,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5030,7 +5070,7 @@ msgstr "Obecné" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5038,16 +5078,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Vytvořit novou identitu pro statistiky" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Němčina" @@ -5056,12 +5096,12 @@ msgstr "Němčina" msgid "Germany" msgstr "Německo" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5231,15 +5271,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5257,7 +5297,7 @@ msgstr "" msgid "Hotkeys" msgstr "Klávesové zkratky" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5302,7 +5342,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Nastavení IPL" @@ -5311,7 +5351,7 @@ msgid "IR" msgstr "Infrč." #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Citlivost Infračer.:" @@ -5348,7 +5388,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5391,7 +5431,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignorovat Změny Formátu" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5428,14 +5468,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5443,11 +5483,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5519,21 +5559,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informace" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Vstup" @@ -5578,7 +5618,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5594,7 +5634,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5641,7 +5681,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Vnitřní Rozlišení:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5653,7 +5693,7 @@ msgstr "Převaděč (nejpomalejší)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5670,7 +5710,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5678,7 +5718,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5686,7 +5726,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Neplatný hostitel" @@ -5695,7 +5735,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5727,7 +5767,7 @@ msgstr "Neplatný řetězec hledání (nelze převést na číslo)" msgid "Invalid search string (only even string lengths supported)" msgstr "Neplatný řetězec hledání (jsou podporovány pouze sudé délky řetězce)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5736,7 +5776,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italština" @@ -5840,7 +5880,7 @@ msgstr "Japonština" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Okno vždy navrchu" @@ -5908,7 +5948,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6006,7 +6046,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Nahrát" @@ -6141,7 +6181,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6153,8 +6193,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6162,7 +6202,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6177,7 +6217,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6206,7 +6246,7 @@ msgstr "Typy Záznamu" msgid "Logger Outputs" msgstr "Výstup Zapisovače" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6217,7 +6257,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6246,7 +6286,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6254,7 +6294,7 @@ msgstr "" msgid "Main Stick" msgstr "Hlavní páčka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6293,11 +6333,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6331,16 +6371,6 @@ msgstr "Paměťová karta" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6349,19 +6379,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6387,15 +6417,15 @@ msgstr "Ostatní" msgid "Misc Settings" msgstr "Ostatní Nastavení" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6418,8 +6448,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6448,20 +6478,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6475,14 +6505,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6513,11 +6549,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6538,8 +6574,8 @@ msgstr "Jméno:" msgid "Native (640x528)" msgstr "Původní (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6559,11 +6595,11 @@ msgstr "" msgid "Netherlands" msgstr "Nizozemí" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "V Netplay došlo ke ztrátě synchronizace. Není znám žádný způsob, jak toto " @@ -6578,7 +6614,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6586,7 +6622,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6599,7 +6635,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6611,7 +6647,7 @@ msgstr "Nová identita vytvořena." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6668,13 +6704,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Žádný popis není dostupný" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6694,10 +6730,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6725,7 +6765,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6746,10 +6786,6 @@ msgstr "Žádné" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nenastaven" @@ -6758,7 +6794,7 @@ msgstr "Nenastaven" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6766,7 +6802,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6774,6 +6810,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6826,7 +6866,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6857,7 +6897,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6865,13 +6905,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Online &dokumentace" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6882,7 +6922,7 @@ msgstr "" msgid "Open" msgstr "Otevřít" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6894,7 +6934,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6902,7 +6942,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7090,7 +7130,7 @@ msgstr "Pozastavit" msgid "Pause at End of Movie" msgstr "Pozastavit na konci videa" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7117,7 +7157,7 @@ msgstr "Osvětlení Podle Pixelu" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7135,7 +7175,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7151,7 +7191,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platforma" @@ -7197,7 +7237,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7206,7 +7246,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7226,15 +7266,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Předzískat vlastní textury" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7257,7 +7297,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7338,7 +7378,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7364,8 +7404,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Otázka" @@ -7393,7 +7433,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7538,12 +7578,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7573,12 +7613,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Odstranit" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7586,11 +7626,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7606,7 +7646,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7685,7 +7725,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7697,7 +7737,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Zkusit znovu" @@ -7797,7 +7837,7 @@ msgstr "Vibrace" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7829,7 +7869,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7858,7 +7898,7 @@ msgstr "Bezpečná" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7868,9 +7908,9 @@ msgstr "Uložit" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7891,11 +7931,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7907,7 +7947,7 @@ msgstr "Načíst nejstarší stav" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7993,26 +8033,26 @@ msgstr "" msgid "Save as..." msgstr "Uložit jako" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8032,11 +8072,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8089,7 +8129,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8121,20 +8161,20 @@ msgstr "Vybrat" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8214,7 +8254,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8222,9 +8262,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8244,7 +8284,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8252,11 +8292,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8264,12 +8304,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vyberte soubor s uloženou hrou" @@ -8291,9 +8331,9 @@ msgstr "Vybraný profil ovladače neexistuje" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8305,13 +8345,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8338,7 +8378,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8347,7 +8387,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8361,7 +8401,7 @@ msgstr "" msgid "Send" msgstr "Poslat" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Umístění Senzorové Tyče:" @@ -8381,7 +8421,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Server zamítl pokus o průchod" @@ -8402,15 +8442,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8492,7 +8532,7 @@ msgstr "Zobrazit Záznam" msgid "Show &Toolbar" msgstr "Zobrazit Panel Nás&trojů" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8508,7 +8548,7 @@ msgstr "Zobrazit Autrálii" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8580,7 +8620,7 @@ msgstr "" msgid "Show Netherlands" msgstr "Zobrazit Nizozemí" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8650,10 +8690,23 @@ msgstr "Zobrazit svět" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8668,20 +8721,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8768,7 +8821,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Přeskočit EFB Přístup z Procesoru" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8794,7 +8847,7 @@ msgstr "" msgid "Slot A" msgstr "Pozice A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8802,7 +8855,7 @@ msgstr "" msgid "Slot B" msgstr "Pozice B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8854,7 +8907,7 @@ msgid "Spain" msgstr "Španělsko" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Španělština" @@ -8863,7 +8916,7 @@ msgstr "Španělština" msgid "Speaker Pan" msgstr "Posun reproduktoru" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Hlasitost Reproduktoru:" @@ -8945,11 +8998,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9112,10 +9165,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9133,16 +9186,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9154,16 +9207,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9171,7 +9224,7 @@ msgstr "" msgid "Support" msgstr "Podpora" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9204,11 +9257,11 @@ msgstr "" msgid "Swing" msgstr "Švihnutí" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9285,7 +9338,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Jazyk Systému:" @@ -9300,8 +9353,8 @@ msgstr "TAS Vstup" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9370,13 +9423,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9422,11 +9475,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9456,11 +9509,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9484,6 +9537,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9580,7 +9640,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Výsledný rozšifrovaný kód AR neobsahuje žádné řádky." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9614,7 +9674,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9669,7 +9729,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Není co vrátit zpět!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9705,11 +9765,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9722,7 +9782,7 @@ msgstr "" "Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9819,7 +9879,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9832,7 +9892,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9840,7 +9900,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9901,7 +9961,7 @@ msgstr "Naklánění" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9943,7 +10003,7 @@ msgid "Toggle Aspect Ratio" msgstr "Přepínat poměr stran" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -10003,7 +10063,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Nahoře" @@ -10055,8 +10115,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Tradiční Čínština" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10064,7 +10124,7 @@ msgstr "" msgid "Traversal Server" msgstr "Server pro průchod" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Při připojování průchozího serveru k hostiteli vršek časový limit." @@ -10088,7 +10148,7 @@ msgid "Triggers" msgstr "Spínače" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10122,14 +10182,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10137,7 +10197,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10146,7 +10206,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10198,11 +10258,11 @@ msgstr "Vrátit zpět Uložení Stavu" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10219,11 +10279,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Neznámé" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10267,11 +10327,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10327,8 +10387,8 @@ msgstr "" msgid "Up" msgstr "Nahoru" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Aktualizovat" @@ -10388,11 +10448,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Nastavení hlášení statistik o užívání" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10404,7 +10464,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Použít režim PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Použít Obslužné Rutiny Paniky" @@ -10464,11 +10524,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10491,14 +10551,14 @@ msgid "" "checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10729,7 +10789,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Varování" @@ -10746,28 +10806,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10822,7 +10882,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10868,7 +10928,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10896,7 +10956,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10904,7 +10964,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10961,8 +11021,20 @@ msgstr "" msgid "Write to Window" msgstr "Zapsat do Okna" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11029,14 +11101,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11074,7 +11138,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Pro uplatnění změn musíte Dolphin restartovat." @@ -11144,12 +11208,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11210,13 +11274,13 @@ msgstr "" msgid "none" msgstr "žádné" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11253,7 +11317,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11276,7 +11340,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/da.po b/Languages/po/da.po index 28eadffa0f..1376df9d92 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -50,7 +50,7 @@ msgstr "" "Da titlen ikke er fremstillet til solgte Wii-konsoller, kan Dolphin ikke " "verificere, om der er pillet ved den." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -190,19 +190,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -239,7 +239,7 @@ msgstr "%1% (Normal hastighed)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -302,7 +302,7 @@ msgstr "" msgid "&About" msgstr "&Om" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Tilføj Hukommelsesbreakpoint" @@ -394,7 +394,7 @@ msgstr "&Slet" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -492,7 +492,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Sprog:" @@ -549,7 +549,7 @@ msgstr "&Pause" msgid "&Play" msgstr "&Afspil" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Indstillinger" @@ -599,7 +599,7 @@ msgstr "&Hastighedsgrænse:" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -629,7 +629,7 @@ msgstr "&Betragt" msgid "&Website" msgstr "&Website" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -637,15 +637,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Ingen)" @@ -682,9 +682,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -874,7 +874,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -889,8 +889,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -904,15 +904,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "En disk er allerede ved at blive sat ind" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1061,7 +1061,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktiv" @@ -1073,7 +1073,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1103,8 +1103,8 @@ msgstr "" msgid "Add New USB Device" msgstr "Leg til ny USB enhed" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1131,18 +1131,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Tilføj..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1221,10 +1221,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1232,20 +1237,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle gemte tilstande (*.sav *.s##);; All Files (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Alle enheder" @@ -1266,7 +1288,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1288,7 +1310,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1344,7 +1366,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "Alle regioner" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1370,7 +1392,7 @@ msgstr "Apploader Dato:" msgid "Apply" msgstr "Anvend" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1382,7 +1404,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Er du sikker på, at du vil slette '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Er du sikker på, at du vil slette denne fil?" @@ -1398,7 +1420,7 @@ msgstr "Er du sikker på, at du vil afslutte NetPlay?" msgid "Are you sure?" msgstr "Er du sikker?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1415,7 +1437,7 @@ msgstr "Tildel Kontrollerporte" msgid "Assign Controllers" msgstr "Tildel kontrollere" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1476,11 +1498,11 @@ msgstr "" msgid "Auto-Hide" msgstr "Auto-skjul" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1507,7 +1529,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1519,7 +1541,7 @@ msgstr "BP register" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1572,7 +1594,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1607,7 +1629,7 @@ msgstr "Basisindstillinger" msgid "Bass" msgstr "Bas" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Batchtilstand kan ikke anvendes uden valg af spil." @@ -1639,7 +1661,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1683,11 +1705,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup-fil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1695,7 +1717,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Kantløs Fuldskærm" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Bund" @@ -1722,7 +1744,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1756,12 +1778,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Bufferstørrelse:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Bufferstørrelse ændret til %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1876,7 +1898,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1884,14 +1906,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1918,7 +1940,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1944,7 +1966,7 @@ msgstr "Center" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Skift &Disk" @@ -1960,7 +1982,7 @@ msgstr "Skift Disk" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -2012,7 +2034,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2026,16 +2048,19 @@ msgstr "Tjeksum" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Angiv en fil at åbne" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2060,7 +2085,7 @@ msgstr "Klassisk kontroller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Ryd" @@ -2113,7 +2138,7 @@ msgstr "" msgid "Code:" msgstr "Kode:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Koder modtaget!" @@ -2138,7 +2163,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "Kompilerer shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2190,23 +2215,23 @@ msgstr "Konfigurer output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekræft" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Bekræft ved Stop" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2261,7 +2286,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2371,11 +2396,11 @@ msgstr "Konvergens:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2401,9 +2426,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopiér" @@ -2415,19 +2440,19 @@ msgstr "Kopiér &funktion" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Kopier adresse" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Kopiér Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2435,19 +2460,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiering mislykkedes" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Kopiér til A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Kopiér til B" @@ -2487,14 +2508,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2540,7 +2561,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2552,15 +2573,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Kan ikke slå den centrale server op" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2617,7 +2638,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2720,23 +2741,23 @@ msgstr "" msgid "Data Type" msgstr "Datatype" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Data modtaget!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2838,21 +2859,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Slet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Slet fil..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Slet valgte filer..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2868,10 +2889,10 @@ msgstr "" msgid "Depth:" msgstr "Dybde:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2891,7 +2912,7 @@ msgstr "" msgid "Detect" msgstr "Opfang" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2912,7 +2933,7 @@ msgstr "Enhed" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Enhedsindstillinger" @@ -2959,8 +2980,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3053,25 +3074,25 @@ msgstr "Afstand" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Ønsker du at stoppe den igangværende emulation?" @@ -3088,9 +3109,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3102,8 +3123,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-film (*.dtm)" @@ -3118,7 +3139,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3136,7 +3157,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin er en gratis og åben source GameCube- og Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel til en gennemløbsserver" @@ -3201,7 +3222,7 @@ msgstr "Download koder" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3381,7 +3402,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Hollandsk" @@ -3454,7 +3475,7 @@ msgstr "Indlejret framebuffer (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emulatortråd kører i forvejen" @@ -3486,8 +3507,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3537,7 +3558,7 @@ msgid "Enable Progressive Scan" msgstr "Aktivér Progressiv Skanning" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Aktivér vibration" @@ -3656,7 +3677,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3669,7 +3690,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet blev ikke initialiseret" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engelsk" @@ -3702,7 +3723,7 @@ msgstr "" msgid "Enter password" msgstr "Indtast kodeord" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3714,7 +3735,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3733,46 +3754,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fejl" @@ -3795,11 +3817,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3819,7 +3841,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3967,10 +3989,10 @@ msgstr "Eksperimentel" msgid "Export All Wii Saves" msgstr "Eksporter alle Wii-saves" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3982,19 +4004,19 @@ msgstr "Eksporter optagelse" msgid "Export Recording..." msgstr "Eksporter optagelse..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -4006,7 +4028,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4080,7 +4102,7 @@ msgstr "FIFO-afspiller" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4090,19 +4112,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4132,11 +4154,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4152,16 +4174,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4184,29 +4206,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4226,19 +4248,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4250,7 +4272,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4264,13 +4286,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4292,11 +4314,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4305,7 +4327,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4325,25 +4347,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4354,7 +4376,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4374,19 +4396,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4410,9 +4432,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4420,21 +4442,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4459,7 +4481,7 @@ msgstr "Hurtig" msgid "Fast Depth Calculation" msgstr "Hurtig udregning af dybte" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4474,7 +4496,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4488,19 +4510,19 @@ msgstr "" msgid "File Info" msgstr "Filinfo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnavn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstørrelse" @@ -4527,11 +4549,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4581,7 +4603,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Ret tjeksumme" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4591,7 +4613,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flag" @@ -4729,11 +4751,11 @@ msgstr "" msgid "France" msgstr "Frankrig" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4771,7 +4793,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Fransk" @@ -4800,7 +4822,7 @@ msgstr "Fra:" msgid "FullScr" msgstr "Fuld skærm" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funktion" @@ -4832,7 +4854,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4844,11 +4866,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4951,11 +4973,11 @@ msgstr "Spil" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-kassetter (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4977,7 +4999,7 @@ msgstr "" msgid "Game Folders" msgstr "Spilmapper" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spil-id" @@ -4991,11 +5013,25 @@ msgstr "Spil-id:" msgid "Game Status" msgstr "Spilstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Spillet kører allerede!" @@ -5004,6 +5040,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Specifikke spilindstillinger" @@ -5044,12 +5084,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "GameCube hukommelseskortstyring" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5082,7 +5122,7 @@ msgstr "Generelt" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5090,16 +5130,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Generer en ny identitet til statistik" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Tysk" @@ -5108,14 +5148,14 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "" @@ -5283,15 +5323,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Vært inputautoritet aktiveret" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5309,7 +5349,7 @@ msgstr "Genvejstastindstillinger" msgid "Hotkeys" msgstr "Genvejstaster" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Genvejstaster forudsætter vinduefokus" @@ -5354,7 +5394,7 @@ msgstr "" msgid "IP Address:" msgstr "IP-adresse:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL-indstillinger" @@ -5363,7 +5403,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR-sensitivitet:" @@ -5400,7 +5440,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5451,7 +5491,7 @@ msgstr "Ignorere" msgid "Ignore Format Changes" msgstr "Ignorer skift af formater" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5488,14 +5528,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5503,11 +5543,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importerer NAND-backup" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5579,21 +5619,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Information" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Input" @@ -5638,7 +5678,7 @@ msgstr "Installer opdatering" msgid "Install WAD..." msgstr "Installere WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installer til NAND" @@ -5654,7 +5694,7 @@ msgstr "Instruktion" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instruktion:" @@ -5701,7 +5741,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Intern opløsning:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5713,7 +5753,7 @@ msgstr "Interpreter (langsomst)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5730,7 +5770,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5738,7 +5778,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5746,7 +5786,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Forkert vært" @@ -5755,7 +5795,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5787,7 +5827,7 @@ msgstr "Forkert søgetekst (kunne ikke konvertere til tal)" msgid "Invalid search string (only even string lengths supported)" msgstr "Forkert søgetekst (kun lige længder er understøttet)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5796,7 +5836,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiensk" @@ -5900,7 +5940,7 @@ msgstr "Japansk" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Hold vinduet øverst" @@ -5968,7 +6008,7 @@ msgstr "" msgid "Label" msgstr "Mærkat" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6066,7 +6106,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Indlæs" @@ -6201,7 +6241,7 @@ msgstr "Indlæs tilstand fra plads" msgid "Load Wii Save" msgstr "Last Wii-save" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6213,8 +6253,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "Indlæs fra plads %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6222,7 +6262,7 @@ msgstr "" msgid "Load..." msgstr "Indlæs..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6237,7 +6277,7 @@ msgstr "" msgid "Local" msgstr "Lokal" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6266,7 +6306,7 @@ msgstr "Log typer" msgid "Logger Outputs" msgstr "Logger-outputs" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6277,7 +6317,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6306,7 +6346,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6314,7 +6354,7 @@ msgstr "" msgid "Main Stick" msgstr "Primært stik" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6353,11 +6393,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6391,16 +6431,6 @@ msgstr "Hukommelseskort" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6409,19 +6439,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "Hukommelsesbreakpointindstillinger" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "Hukommelseskort: ClearBlock kaldt med ugyldig adresse ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6447,17 +6477,17 @@ msgstr "Diverse" msgid "Misc Settings" msgstr "Diverse indstillinger" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Misforhold mellem antal ubrugte blokke fra header og faktisk antal ubrugte " "blokke." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6480,8 +6510,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6510,20 +6540,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6537,14 +6567,20 @@ msgstr "" msgid "Movie" msgstr "Video" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND tjek" @@ -6575,11 +6611,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Navn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6600,8 +6636,8 @@ msgstr "Navn:" msgid "Native (640x528)" msgstr "Oprindelig (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6621,11 +6657,11 @@ msgstr "" msgid "Netherlands" msgstr "Holland" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Netplay ude af sync. Denne situation kan ikke afhjælpes." @@ -6638,7 +6674,7 @@ msgstr "Netværk " msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6646,7 +6682,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Ny" @@ -6659,7 +6695,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6671,7 +6707,7 @@ msgstr "Ny identitet genereret." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6728,13 +6764,13 @@ msgstr "Ingen træf" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Ingen beskrivelse tilgængelig" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6754,10 +6790,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6785,7 +6825,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6807,10 +6847,6 @@ msgstr "Ingen" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Ikke fundet" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Ikke sat" @@ -6819,7 +6855,7 @@ msgstr "Ikke sat" msgid "Not all players have the game. Do you really want to start?" msgstr "Det er ikke alle spillere, der har dette spil. Vil du virkelig starte?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6827,7 +6863,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6835,6 +6871,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6887,7 +6927,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6918,7 +6958,7 @@ msgstr "" msgid "On" msgstr "På" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6926,13 +6966,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Online&dokumentation" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6943,7 +6983,7 @@ msgstr "" msgid "Open" msgstr "Åbn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6955,7 +6995,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6963,7 +7003,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7151,7 +7191,7 @@ msgstr "Pause" msgid "Pause at End of Movie" msgstr "Pause ved slutning på film" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7178,7 +7218,7 @@ msgstr "Per-pixel belysning" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7196,7 +7236,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7212,7 +7252,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7258,7 +7298,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7267,7 +7307,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7287,15 +7327,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Indlæs først tilpassede teksturer" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7318,7 +7358,7 @@ msgstr "Tryk på Sync-knap" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7399,7 +7439,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7425,8 +7465,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Spørgsmål" @@ -7454,7 +7494,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7599,12 +7639,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Genindlæser..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7634,12 +7674,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Fjern" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7647,11 +7687,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7667,7 +7707,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7746,7 +7786,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Genstart nødvendig" @@ -7758,7 +7798,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Prøv igen" @@ -7858,7 +7898,7 @@ msgstr "Vibration" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7890,7 +7930,7 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -7919,7 +7959,7 @@ msgstr "Sikker" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7929,9 +7969,9 @@ msgstr "Gem" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7952,11 +7992,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7968,7 +8008,7 @@ msgstr "Gem ældste tilstand" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8054,26 +8094,26 @@ msgstr "" msgid "Save as..." msgstr "Gem som..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8093,11 +8133,11 @@ msgstr "Gem..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8150,7 +8190,7 @@ msgstr "" msgid "Search games..." msgstr "Søg spil..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Søg instruktion" @@ -8182,20 +8222,20 @@ msgstr "Vælg" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8275,7 +8315,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Vælg Wii NAND-rod" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Vælg en mappe" @@ -8283,9 +8323,9 @@ msgstr "Vælg en mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Vælg en fil" @@ -8305,7 +8345,7 @@ msgstr "" msgid "Select a game" msgstr "Vælg et spil" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8313,11 +8353,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8325,12 +8365,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vælg savefilen" @@ -8352,9 +8392,9 @@ msgstr "Valgte kontrollerprofil eksisterer ikke" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8366,13 +8406,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8399,7 +8439,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8408,7 +8448,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8422,7 +8462,7 @@ msgstr "" msgid "Send" msgstr "Send" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Sensorbarens position:" @@ -8442,7 +8482,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Serveren nægtede forsøget på traversal" @@ -8463,15 +8503,15 @@ msgstr "Indstil PC" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8554,7 +8594,7 @@ msgstr "Vis &log" msgid "Show &Toolbar" msgstr "Vis &værktøjslinje" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8570,7 +8610,7 @@ msgstr "Vis Australien" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Vis debuggingskærmflade" @@ -8642,7 +8682,7 @@ msgstr "Vis NetPlay ping" msgid "Show Netherlands" msgstr "Vis Holland" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8712,10 +8752,23 @@ msgstr "Vis verden" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8730,20 +8783,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8830,7 +8883,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Spring EFB-adgang fra CPU over" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8856,7 +8909,7 @@ msgstr "" msgid "Slot A" msgstr "Plads A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Plads A:" @@ -8864,7 +8917,7 @@ msgstr "Plads A:" msgid "Slot B" msgstr "Plads B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Plads B:" @@ -8916,7 +8969,7 @@ msgid "Spain" msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spansk" @@ -8925,7 +8978,7 @@ msgstr "Spansk" msgid "Speaker Pan" msgstr "Højttalerpanorering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Lydstyrke for højtaler" @@ -9007,11 +9060,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9174,10 +9227,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Succes" @@ -9195,16 +9248,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9216,16 +9269,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9233,7 +9286,7 @@ msgstr "" msgid "Support" msgstr "Support" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9266,11 +9319,11 @@ msgstr "" msgid "Swing" msgstr "Sving" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Byt til A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Byt til B" @@ -9347,7 +9400,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Systemsprog:" @@ -9362,8 +9415,8 @@ msgstr "TAS-input" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9432,13 +9485,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9484,11 +9537,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken, der var ved at blive sat ind, kunne ikke ses" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9518,11 +9571,11 @@ msgstr "Indtastet PID er ugyldig" msgid "The entered VID is invalid." msgstr "Indtastet VID er ugyldig" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9546,6 +9599,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9642,7 +9702,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den resulterende dekrypterede AR-kode indeholder ikke nogen linjer." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9676,7 +9736,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9731,7 +9791,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Der er intet af fortryde!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9767,11 +9827,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9784,7 +9844,7 @@ msgstr "" "Action Replay'en." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Kan ikke gøres om!" @@ -9885,7 +9945,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9898,7 +9958,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9906,7 +9966,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9966,7 +10026,7 @@ msgstr "Tilt" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10008,7 +10068,7 @@ msgid "Toggle Aspect Ratio" msgstr "Skift forholdstal" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -10068,7 +10128,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Top" @@ -10120,8 +10180,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Traditionel kinesisk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10129,7 +10189,7 @@ msgstr "" msgid "Traversal Server" msgstr "Traversal-server" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Traversal-server fik timeout ved forbindelse til vært" @@ -10153,7 +10213,7 @@ msgid "Triggers" msgstr "Triggers" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10187,14 +10247,14 @@ msgstr "USB-Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10202,7 +10262,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10211,7 +10271,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10272,11 +10332,11 @@ msgstr "Fortræd lagring af tilstand" msgid "Uninstall" msgstr "Afinstaller" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Afinstaller fra NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10293,11 +10353,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Ukendt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10341,11 +10401,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10401,8 +10461,8 @@ msgstr "" msgid "Up" msgstr "Op" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Opdater" @@ -10462,11 +10522,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Indstillinger for brugsstatistik" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Anvend tilpasset brugerlayout" @@ -10478,7 +10538,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Brug PAL60-tilstand (EURGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Brug panikhåndtering" @@ -10538,11 +10598,11 @@ msgstr "" msgid "User Config" msgstr "Brugerindstillinger" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Brugergrænseflade" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10565,14 +10625,14 @@ msgid "" "checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10803,7 +10863,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Advarsel" @@ -10822,28 +10882,28 @@ msgstr "" "Advarsel: Antal blokke markeret af BAT ({0}) passer ikke med indlæst " "filheader ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10898,7 +10958,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10944,7 +11004,7 @@ msgstr "Wii Remote-knapper" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii Remote-indstillinger" @@ -10972,7 +11032,7 @@ msgstr "Wii og Wii Remote" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10980,7 +11040,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11039,8 +11099,20 @@ msgstr "" msgid "Write to Window" msgstr "Skriv til vindue" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11107,14 +11179,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11152,7 +11216,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" "Du bliver nødt til at genstarte Dolhin før end at ændringen træder i kraft." @@ -11223,12 +11287,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11289,13 +11353,13 @@ msgstr "" msgid "none" msgstr "ingen" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11332,7 +11396,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11355,7 +11419,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} af {1} blokke. Komprimeringsforhold {2}%" diff --git a/Languages/po/de.po b/Languages/po/de.po index da4574acf2..9e04836c6c 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -68,7 +68,7 @@ msgstr "" "Da dieser Titel nicht für Retail-Wii-Konsolen bestimmt ist, kann Dolphin " "nicht nachweisen, dass er nicht modifiziert wurde." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -214,19 +214,19 @@ msgstr "" "%2 Objekt(e)\n" "Derzeitiger Frame: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 ist beigetreten" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 ist gegangen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 golft jetzt" @@ -263,7 +263,7 @@ msgstr "%1% (Normale Geschwindigkeit)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -326,7 +326,7 @@ msgstr "" msgid "&About" msgstr "&Über" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Speicherhaltepunkt hinzufügen" @@ -418,7 +418,7 @@ msgstr "&Löschen" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Überwachung löschen" @@ -516,7 +516,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Sprache:" @@ -573,7 +573,7 @@ msgstr "Pau&se" msgid "&Play" msgstr "&Start" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Eigenschaften" @@ -623,7 +623,7 @@ msgstr "&Geschwindigkeitsbegrenzung:" msgid "&Stop" msgstr "Sto&pp" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Design:" @@ -653,7 +653,7 @@ msgstr "&Überwachungsfenster" msgid "&Website" msgstr "&Webseite" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -661,17 +661,17 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Ja" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "Konnte '%1' nicht finden, es wurden keine Symbolnamen generiert" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" "'%1' konnte nicht gefunden werden, es wird stattdessen nach gemeinsamen " "Funktionen gescannt" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Keine)" @@ -708,9 +708,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -900,7 +900,7 @@ msgstr "< Kleiner als" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -918,8 +918,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Größer als" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Eine NetPlay-Sitzung läuft bereits!" @@ -939,17 +939,17 @@ msgstr "" "\n" "Die Installation dieses WAD wird es unwiderruflich ersetzen. Fortsetzen?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Eine Disc wird momentan bereits eingelesen." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Ein Spielstand kann nicht geladen werden, wenn kein zu startendes Spiel " "angegeben wurde." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1118,7 +1118,7 @@ msgstr "Action Replay: Normal Code {0}: Ungültiger Subtype {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "NetPlay Chat aktivieren" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktiv" @@ -1130,7 +1130,7 @@ msgstr "Aktive Thread-Warteschlange" msgid "Active threads" msgstr "Aktive Threads" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Grafikkarte" @@ -1160,8 +1160,8 @@ msgstr "Neuen DSU-Server hinzufügen" msgid "Add New USB Device" msgstr "Neues USB-Gerät hinzufügen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1188,18 +1188,18 @@ msgstr "Speicherhaltepunkt hinzufügen" msgid "Add to &watch" msgstr "Zur Über&wachung hinzufügen" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Zur Überwachung hinzufügen" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Hinzufügen..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1299,10 +1299,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1310,20 +1315,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Alle Dateien (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Speicherstände (*.sav *.s##);; Alle Dateien (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Alle Geräte" @@ -1344,7 +1366,7 @@ msgstr "Alle Spielstände der Spieler synchronisiert." msgid "Allow Mismatched Region Settings" msgstr "Nicht übereinstimmende Regionseinstellungen zulassen" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Berichterstattung für Nutzungsdaten erlauben" @@ -1368,7 +1390,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Alternative Eingabequellen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1425,7 +1447,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "Beliebige Region" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Signatur anfügen an" @@ -1453,7 +1475,7 @@ msgstr "Apploader Datum:" msgid "Apply" msgstr "Übernehmen" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Signaturdatei anwenden" @@ -1465,7 +1487,7 @@ msgstr "Willkürliche Mipmaps erkennen" msgid "Are you sure that you want to delete '%1'?" msgstr "Möchtest du '%1' wirklich löschen? " -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Möchtest du diese Datei wirklich löschen? " @@ -1481,7 +1503,7 @@ msgstr "Bist du dir sicher, dass du NetPlay beenden möchtest?" msgid "Are you sure?" msgstr "Bist du dir sicher?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Seitenverhältnis" @@ -1498,7 +1520,7 @@ msgstr "Controller-Ports zuweisen" msgid "Assign Controllers" msgstr "Controller zuweisen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1563,11 +1585,11 @@ msgstr "Fenstergröße automatisch anpassen" msgid "Auto-Hide" msgstr "Automatisch verbergen" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "RSO-Module automatisch erkennen?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1599,7 +1621,7 @@ msgstr "" "Nintendo GameCube MAC-Adresse verwendet werden. Generiere eine neue MAC-" "Adresse beginnend mit 00:09:bf oder 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1611,7 +1633,7 @@ msgstr "BP-Register" msgid "Back Chain" msgstr "Rückwärtskette" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Backend" @@ -1664,7 +1686,7 @@ msgstr "" msgid "Bad value provided." msgstr "Unzulässigen Wert angegeben." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1699,7 +1721,7 @@ msgstr "Grundeinstellungen" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" "Der Batchmodus kann nicht verwendet werden, ween kein zu startendes Spiel " @@ -1733,7 +1755,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "Bitrate (kbit/s):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1777,11 +1799,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausieren nach Boot" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-Sicherungsdatei (*.bin);;Alle Dateien (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii Schlüsseldatei (*.bin);;Alle Dateien (*)" @@ -1789,7 +1811,7 @@ msgstr "BootMii Schlüsseldatei (*.bin);;Alle Dateien (*)" msgid "Borderless Fullscreen" msgstr "Randloses Vollbild" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Unten" @@ -1816,7 +1838,7 @@ msgstr "Haltepunkt" msgid "Breakpoint encountered! Step out aborted." msgstr "Haltepunkt gefunden! Schritt heraus abgebrochen." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Haltepunkte" @@ -1850,12 +1872,12 @@ msgstr "&NetPlay-Sitzungen durchsuchen...." msgid "Buffer Size:" msgstr "Puffergröße:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Puffergröße auf %1 geändert" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Puffer:" @@ -1981,7 +2003,7 @@ msgstr "Kamera 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Sichtfeld der Kamera (beeinflusst die Empfindlichkeit des Zeigens)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1989,14 +2011,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kann Wiimote bei Verbindungs-Handle {0:02x} nicht finden" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Du kannst keine NetPlay-Session starten, während ein Spiel noch läuft!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2026,7 +2048,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Kann die GC IPL nicht finden." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -2053,7 +2075,7 @@ msgstr "Mitte" msgid "Center and Calibrate" msgstr "Zentrieren und Kalibrieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Disc &wechseln" @@ -2069,7 +2091,7 @@ msgstr "Disc wechseln" msgid "Change Discs Automatically" msgstr "Discs automatisch wechseln" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Wechsle die Disc zu {0}" @@ -2132,7 +2154,7 @@ msgstr "Veränderungen der Spieleliste im Hintergrund prüfen" msgid "Check for updates" msgstr "Auf Updates prüfen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2148,16 +2170,19 @@ msgstr "Prüfsumme" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Datei zum Öffnen auswählen" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Vorrangige Eingabedatei auswählen" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Sekundäre Eingabedatei auswählen" @@ -2182,7 +2207,7 @@ msgstr "Klassischer Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Leeren" @@ -2235,7 +2260,7 @@ msgstr "" msgid "Code:" msgstr "Code:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Codes empfangen!" @@ -2260,7 +2285,7 @@ msgstr "Shader vor dem Start kompilieren" msgid "Compiling Shaders" msgstr "Kompiliere Shader" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2312,23 +2337,23 @@ msgstr "Ausgabe konfigurieren" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bestätigen" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Ändern des Backends bestätigen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Beim Beenden bestätigen" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2384,7 +2409,7 @@ msgstr "" msgid "Connected" msgstr "Verbunden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2510,11 +2535,11 @@ msgstr "Konvergenz:" msgid "Convert" msgstr "Konvertieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Datei konvertieren..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Ausgewählte Dateien konvertieren..." @@ -2543,9 +2568,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopieren" @@ -2557,19 +2582,19 @@ msgstr "&Funktion kopieren" msgid "Copy &hex" msgstr "&Hex kopieren" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Adresse kopieren" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Hex kopieren" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2577,19 +2602,15 @@ msgstr "" msgid "Copy code &line" msgstr "Codezei&le kopieren" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopieren fehlgeschlagen" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Nach A kopieren" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Nach B kopieren" @@ -2633,7 +2654,7 @@ msgstr "" "Konnte keine Aktualisierungsinformationen von Nintendo heruntergeladen. " "Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2644,7 +2665,7 @@ msgstr "" "\n" "Die emulierte Konsole wird jetzt angehalten." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2706,7 +2727,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Konnte Datei {0} nicht erkennen" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2726,15 +2747,15 @@ msgstr "" "Wenn ja, dann musst du möglicherweise deinen Speicherort für die " "Speicherkarte in den Optionen neu angeben." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Konnte den zentralen Server nicht ermitteln" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Konnte Datei nicht öffnen." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Konnte Datei nicht lesen." @@ -2791,7 +2812,7 @@ msgstr "Überblendung" msgid "Current Region" msgstr "Aktuelle Region" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2898,23 +2919,23 @@ msgstr "Datentransfer" msgid "Data Type" msgstr "Datentyp" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Daten im Bereich der Datei, die nicht verwendet werden sollten." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Daten empfangen!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -3022,21 +3043,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Entfernen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Datei löschen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Ausgewählte Dateien löschen..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Vorhandende Datei '{0}' löschen?" @@ -3052,10 +3073,10 @@ msgstr "Tiefe in Prozent:" msgid "Depth:" msgstr "Tiefe:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3075,7 +3096,7 @@ msgstr "Gelöst" msgid "Detect" msgstr "Erkenne" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -3096,7 +3117,7 @@ msgstr "Gerät" msgid "Device PID (e.g., 0305)" msgstr "Geräte PID (z.b., 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Geräteeinstellungen" @@ -3149,8 +3170,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3261,25 +3282,25 @@ msgstr "Distanz" msgid "Distance of travel from neutral position." msgstr "Weite der Bewegung von der neutralen Position." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Dolphin autorisieren, Informationen an das Entwicklerteam zu senden?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Möchtest du \"%1\" zur Liste der Spielverzeichnisse hinzufügen?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Möchtest du die Liste der Symbolnamen löschen?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Laufende Emulation stoppen?" @@ -3296,9 +3317,9 @@ msgstr "Dolphin FIFO-Log (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin-Kartendatei (*.map)" @@ -3310,8 +3331,8 @@ msgstr "Dolphin-Signatur-CSV-Datei" msgid "Dolphin Signature File" msgstr "Dolphin-Signaturdatei" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-Filme (*.dtm)" @@ -3326,7 +3347,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3346,7 +3367,7 @@ msgstr "Dolphin konnte die gewünschte Aktion nicht ausführen." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin ist ein freier und quelloffener Gamecube- und Wii-Emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin ist zu alt für den Übergangsserver" @@ -3415,7 +3436,7 @@ msgstr "Codes herunterladen" msgid "Download Codes from the WiiRD Database" msgstr "Codes von der WiiRD-Datenbank herunterladen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Spiele-Covers von GameTDB.com für die Tabellenansicht herunterladen" @@ -3604,7 +3625,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Freigabedauer der Turbo-Taste (Frames):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holländisch" @@ -3684,7 +3705,7 @@ msgstr "Eingebetteter Bildspeicher (EFB)" msgid "Empty" msgstr "Leer" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emu-Thread läuft bereits." @@ -3719,8 +3740,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktivieren" @@ -3770,7 +3791,7 @@ msgid "Enable Progressive Scan" msgstr "Progressiven Scan aktivieren" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Rumble aktivieren" @@ -3911,7 +3932,7 @@ msgstr "" msgid "Encoding" msgstr "Kodierung" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3924,7 +3945,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet konnte nicht initialisiert werden" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Englisch" @@ -3957,7 +3978,7 @@ msgstr "Neue Breitband-Adapter MAC-Adresse eingeben:" msgid "Enter password" msgstr "Passwort eingeben" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Geben Sie die RSO-Moduladresse ein:" @@ -3969,7 +3990,7 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3988,46 +4009,47 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fehler" @@ -4050,11 +4072,11 @@ msgstr "Fehler beim Abrufen der Sitzungsliste: %1" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Fehler beim Verarbeiten der Codes." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Fehler beim Verarbeiten der Daten." @@ -4074,7 +4096,7 @@ msgstr "Fehler beim Synchronisieren der Spielstände!" msgid "Error writing file: {0}" msgstr "Fehler beim Schreiben der Datei: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4231,10 +4253,10 @@ msgstr "Experimentell" msgid "Export All Wii Saves" msgstr "Alle Wii-Spielstände exportieren" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -4246,19 +4268,19 @@ msgstr "Aufnahme exportieren" msgid "Export Recording..." msgstr "Aufnahme exportieren..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Spielstanddatei exportieren" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Wii-Spielstand exportieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Wii-Spielstände exportieren" @@ -4270,7 +4292,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4344,7 +4366,7 @@ msgstr "FIFO-Player" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4356,19 +4378,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Konnte diese Sitzung nicht zum NetPlay Index hinzufügen: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Konnte nicht an Signaturdatei '%1' anfügen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Fehler beim Einfordern der Schnittstelle für BT-Durchleitung" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Konnte nicht mit Redump.org verbinden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Konnte nicht mit Server %1 verbinden" @@ -4400,11 +4422,11 @@ msgstr "" "Konnte NetPlay-Speicherkarte nicht löschen. Überprüfe deine " "Schreibberechtigungen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Konnte die ausgewählte Datei nicht löschen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Fehler beim Lösen des Kernel-Treibers für BT-Durchleitung: {0}" @@ -4420,16 +4442,16 @@ msgstr "Konnte %1 nicht dumpen: Fehler beim Öffnen der Datei" msgid "Failed to dump %1: Failed to write to file" msgstr "Konnte %1 nicht dumpen: Fehler beim Schreiben in Datei" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Konnte folgende Spielstände nicht exportieren:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Konnte Zertifikate aus NAND nicht extrahieren" @@ -4455,18 +4477,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Ein oder mehrere D3D-Symbole konnten nicht gefunden werden" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Konnte \"%1\" nicht importieren." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Konnte Spielstand nicht importieren. Bitte starte das Spiel einmal und " "versuche es danach erneut." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4474,7 +4496,7 @@ msgstr "" "Konnte Spielstand nicht importieren. Die gegebene Datei scheint beschädigt " "zu sein oder ist kein gültiger Wii-Spielstand." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4485,7 +4507,7 @@ msgstr "" "dein NAND zu reparieren (Extras -> NAND verwalten -> NAND prüfen...) und " "versuche anschließend, den Spielstand erneut zu importieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Konnte Kern nicht initiieren" @@ -4505,12 +4527,12 @@ msgstr "Renderer-Klassen konnten nicht initialisiert werden" msgid "Failed to install pack: %1" msgstr "Konnte Paket: %1 nicht installieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Konnte diesen Titel nicht in den NAND installieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4518,8 +4540,8 @@ msgstr "" "Fehler beim Lauschen auf Port %1. Wird eine andere Instanz des NetPlay-" "Servers ausgeführt?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Konnte RSO-Modul an %1 nicht laden" @@ -4531,7 +4553,7 @@ msgstr "Fehler beim Laden der Datei d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Fehler beim Laden der Datei dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Konnte Kartendatei '%1' nicht laden" @@ -4547,13 +4569,13 @@ msgstr "" "Konnte {0} nicht laden. Wenn du Windows 7 verwendest, versuche das " "Updatepaket KB4019990 zu installieren." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Konnte '&1' nicht öffnen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Konnte Bluetooth-Gerät nicht öffnen: {0}" @@ -4579,11 +4601,11 @@ msgstr "" "Stellen Sie sicher, dass eine Anwendung zum Öffnen von INI-Dateien " "zugewiesen ist." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Konnte Server nicht öffnen" @@ -4592,7 +4614,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Konnte Eingabedatei \"%1\" nicht öffnen." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4615,25 +4637,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Konnte nicht aus der Eingabedatei \"{0}\" lesen." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Konnte {0} nicht lesen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4647,7 +4669,7 @@ msgstr "" "\n" "Möchtest du sie konvertieren, ohne Junk-Daten zu entfernen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Dieser Titel konnte nicht aus dem NAND entfernt werden." @@ -4671,19 +4693,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Konnte FIFO-Log nicht speichern." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Konnte Codekarte nicht in Pfad '%1' speichern" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Konnte Signaturdatei '%1' nicht speichern" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Konnte Symbolkarte nicht in Pfad '%1' speichern" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Konnte nicht an Signaturdatei '%1' speichern." @@ -4707,9 +4729,9 @@ msgstr "Konnte Wii-Spielstand nicht schreiben." msgid "Failed to write config file!" msgstr "Konnte Einstellungsdatei nicht schreiben!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4717,12 +4739,12 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4730,10 +4752,10 @@ msgstr "" "Schreiben in Ausgabedatei \"{0}\" fehlgeschlagen.\n" "Überprüfe ob ausreichend Speicherplatz auf dem Ziellaufwerk vorhanden ist." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Fehler" @@ -4758,7 +4780,7 @@ msgstr "Schnell" msgid "Fast Depth Calculation" msgstr "Schnelle Tiefenberechnung" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4775,7 +4797,7 @@ msgstr "Sichtfeld" msgid "File Details" msgstr "Dateidetails" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4789,19 +4811,19 @@ msgstr "Dateiformat:" msgid "File Info" msgstr "Datei-Informationen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Dateiname" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Dateipfad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dateigröße" @@ -4830,12 +4852,12 @@ msgstr "" "Vorgegebene Dateien in der M3U-Datei \"{0}\" wurden nicht gefunden:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "Die Dateigröße entspricht keiner bekannten GameCube-Speicherkartengröße." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "Dateigröße im Header stimmt nicht mit der tatsächlichen Kartengröße überein." @@ -4892,7 +4914,7 @@ msgstr "First-Person" msgid "Fix Checksums" msgstr "Prüfsummen korrigieren" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4902,7 +4924,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Bitschalter" @@ -5053,11 +5075,11 @@ msgstr "Bilder zum Aufzeichnen:" msgid "France" msgstr "Frankreich" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -5099,7 +5121,7 @@ msgid "Freelook Toggle" msgstr "Freies Umsehen umschalten" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Französisch" @@ -5128,7 +5150,7 @@ msgstr "Von:" msgid "FullScr" msgstr "Vollbild" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funktion" @@ -5160,7 +5182,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -5172,11 +5194,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -5296,11 +5318,11 @@ msgstr "Spiel" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Module (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5322,7 +5344,7 @@ msgstr "Spieldetails" msgid "Game Folders" msgstr "Spiele-Ordner" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spielkennung" @@ -5336,11 +5358,25 @@ msgstr "Spielkennung:" msgid "Game Status" msgstr "Spielstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Spiel auf \"%1\" geändert" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Spiel läuft bereits!" @@ -5351,6 +5387,10 @@ msgstr "" "Spielstand mit dem Spielstand eines anderen Spiels überschrieben. " "Datenkorruption voraus {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Spielspezifische Einstellungen" @@ -5391,12 +5431,12 @@ msgstr "GameCube-Tastatur an Port %1" msgid "GameCube Memory Card Manager" msgstr "GameCube Speicherkartenverwaltung" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Memory Cards (*.raw *.gcp)" @@ -5429,7 +5469,7 @@ msgstr "Allgemein" msgid "General and Options" msgstr "Allgemeines und Optionen" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "ActionReplay-Code generieren" @@ -5437,16 +5477,16 @@ msgstr "ActionReplay-Code generieren" msgid "Generate a New Statistics Identity" msgstr "Neue Statistikidentität erzeugen" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Generierte Symbolnamen von '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Deutsch" @@ -5455,14 +5495,14 @@ msgstr "Deutsch" msgid "Germany" msgstr "Deutschland" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golf-Modus" @@ -5640,15 +5680,15 @@ msgstr "" "Geeignet für Gelegenheitsspiele mit 3+ Spielern, möglicherweise bei " "instabilen Verbindungen oder Verbindungen mit hoher Latenz." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Host-Eingabeautorität deaktiviert" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Host-Eingabeautorität aktiviert" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Mit NetPlay ausrichten" @@ -5666,7 +5706,7 @@ msgstr "Tastenkürzel-Einstellungen" msgid "Hotkeys" msgstr "Tastenkürzel" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Tastaturkürzel benötigen Fensterfokus" @@ -5717,7 +5757,7 @@ msgstr "" msgid "IP Address:" msgstr "IP-Adresse:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL-Einstellungen" @@ -5726,7 +5766,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR-Empfindlichkeit:" @@ -5783,7 +5823,7 @@ msgstr "" msgid "Identity Generation" msgstr "Indentitätserzeugung" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5836,7 +5876,7 @@ msgstr "Ignorieren" msgid "Ignore Format Changes" msgstr "Formatänderungen ignorieren" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "In dieser Sitzung ignorieren" @@ -5887,14 +5927,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "BootMii-NAND-Sicherung importieren..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5902,11 +5942,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii-Spielstand importieren..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "NAND-Sicherung wird importiert" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5985,21 +6025,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Information" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Bildschirmschoner während der Emulation sperren" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Eingabe" @@ -6044,7 +6084,7 @@ msgstr "Update installieren" msgid "Install WAD..." msgstr "WAD installieren..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "In NAND installieren" @@ -6060,7 +6100,7 @@ msgstr "Anweisung" msgid "Instruction Breakpoint" msgstr "Anweisungshaltepunkt" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Anweisung:" @@ -6109,7 +6149,7 @@ msgstr "Interne Auflösung" msgid "Internal Resolution:" msgstr "Interne Auflösung:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -6121,7 +6161,7 @@ msgstr "Interpreter (am langsamsten)" msgid "Interpreter Core" msgstr "Interpreterkern" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Ungültiger Ausdruck." @@ -6138,7 +6178,7 @@ msgstr "Ungültiges Paket %1 angegeben: &2" msgid "Invalid Player ID" msgstr "Ungültige Spieler-ID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Ungültige RSO-Moduladresse: %1" @@ -6146,7 +6186,7 @@ msgstr "Ungültige RSO-Moduladresse: %1" msgid "Invalid callstack" msgstr "Ungültiger Aufrufstapel" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Ungültige Prüfsummen." @@ -6154,7 +6194,7 @@ msgstr "Ungültige Prüfsummen." msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Ungültiger Host" @@ -6163,7 +6203,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Ungültige Eingabe für das Feld \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Ungültige Eingabe eingegeben" @@ -6195,7 +6235,7 @@ msgstr "Ungültiger Suchbegriff (konnte nicht zu Zahl konvertieren)" msgid "Invalid search string (only even string lengths supported)" msgstr "Ungültiger Suchbegriff (nur gerade Zeichenlängen werden unterstützt)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Ungültige Titelkennung" @@ -6204,7 +6244,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italienisch" @@ -6311,7 +6351,7 @@ msgstr "Japanisch" msgid "Japanese (Shift-JIS)" msgstr "Japanisch (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Fenster immer im Vordergrund" @@ -6379,7 +6419,7 @@ msgstr "LR-Sicherung" msgid "Label" msgstr "Bezeichnung" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6483,7 +6523,7 @@ msgstr "Lauscht" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Laden" @@ -6618,7 +6658,7 @@ msgstr "Spielstand von Slot laden" msgid "Load Wii Save" msgstr "Wii-Spielstand laden" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Wii-Systemmenü laden %1" @@ -6630,8 +6670,8 @@ msgstr "Spielstand vom ausgewählten Slot laden" msgid "Load from Slot %1 - %2" msgstr "Lade von Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Kartendatei laden" @@ -6639,7 +6679,7 @@ msgstr "Kartendatei laden" msgid "Load..." msgstr "Laden..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Geladene Symbole von '%1'" @@ -6657,7 +6697,7 @@ msgstr "" msgid "Local" msgstr "Lokal" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6686,7 +6726,7 @@ msgstr "Log-Typen" msgid "Logger Outputs" msgstr "Logger-Ausgabe" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6697,7 +6737,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Die Verbindung zum NetPlay-Server wurde getrennt..." @@ -6726,7 +6766,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6734,7 +6774,7 @@ msgstr "" msgid "Main Stick" msgstr "Main Stick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6777,11 +6817,11 @@ msgstr "" msgid "Match Found" msgstr "Übereinstimmung gefunden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Maximaler Puffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Maximale Puffergröße auf %1 geändert" @@ -6815,22 +6855,6 @@ msgstr "Speicherkarte" msgid "Memory Card Manager" msgstr "Speicherkartenverwaltung" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Der Speicherkarten-Dateiname in Slot {0} ist ungültig.\n" -"Region ist nicht festgelegt.\n" -"\n" -"Slot {1} Pfad wurde geändert zu:\n" -"{2}\n" -"Soll die alte Datei zum neuen Speicherort kopiert werden?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Speicherüberschreibung" @@ -6839,21 +6863,21 @@ msgstr "Speicherüberschreibung" msgid "Memory breakpoint options" msgstr "Speicherhaltepunktoptionen" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock auf ungültiger Adresse aufgerufen ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" "MemoryCard: Lesevorgang mit ungültiger Quelladresse aufgerufen ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Schreibvorgang mit ungültiger Zieladresse aufgerufen ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6883,17 +6907,17 @@ msgstr "Sonstiges" msgid "Misc Settings" msgstr "Sonstige Einstellungen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Nichtübereinstimmung zwischen der Anzahl der freien Blöcke im Header und den " "tatsächlich nicht verwendeten Blöcken." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Nichtübereinstimmung zwischen internen Datenstrukturen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6919,8 +6943,8 @@ msgstr "" "

Benötigt in den meisten Fällen einen Reset der Emulation." "

Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6949,20 +6973,20 @@ msgstr "Bewegungssimulation" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6976,14 +7000,20 @@ msgstr "Bewegen" msgid "Movie" msgstr "Film" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND-Prüfung" @@ -7014,11 +7044,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Name" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Name für ein neues Tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Name des Tag, das entfernt werden soll:" @@ -7039,8 +7069,8 @@ msgstr "Name:" msgid "Native (640x528)" msgstr "Nativ (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -7060,11 +7090,11 @@ msgstr "NetPlay-Einrichtung" msgid "Netherlands" msgstr "Niederlande" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "NetPlay wurde desynchronisiert in NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "Netplay ist desynchronisiert. Es gibt keine Möglichkeit dies zu beheben." @@ -7078,7 +7108,7 @@ msgstr "Netzwerk" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -7086,7 +7116,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "Niemals automatisch updaten" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Neu" @@ -7099,7 +7129,7 @@ msgstr "Neuer Haltepunkt" msgid "New Search" msgstr "Neue Suche" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Neues Tag..." @@ -7111,7 +7141,7 @@ msgstr "Neue identität erzeugt." msgid "New instruction:" msgstr "Neue Anweisung:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Neues Tag" @@ -7168,13 +7198,13 @@ msgstr "Keine Übereinstimmung" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Keine Beschreibung vorhanden" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Keine Fehler." @@ -7194,10 +7224,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Es wurden keine Probleme festgestellt." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Keine Pfade in der M3U-Datei \"{0}\" gefunden." @@ -7229,7 +7263,7 @@ msgstr "Keine Profile für Spieleinstellung '{0}' gefunden" msgid "No recording loaded." msgstr "Keine Aufnahme geladen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Keine gespeicherten Daten gefunden." @@ -7251,10 +7285,6 @@ msgstr "Keine" msgid "North America" msgstr "Nordamerika" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Nicht gefunden" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nicht Festgelegt" @@ -7263,7 +7293,7 @@ msgstr "Nicht Festgelegt" msgid "Not all players have the game. Do you really want to start?" msgstr "Nicht alle Spieler besitzen das Spiel. Möchten Sie trotzdem starten?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7271,7 +7301,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7279,6 +7309,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7331,7 +7365,7 @@ msgstr "Nunchuck-Ausrichtung" msgid "Nunchuk Stick" msgstr "Nunchuck-Stick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7362,7 +7396,7 @@ msgstr "" msgid "On" msgstr "Ein" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -7370,7 +7404,7 @@ msgstr "" msgid "Online &Documentation" msgstr "Online-&Dokumentation" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7378,7 +7412,7 @@ msgstr "" "Nur Symbole anhängen mit dem Präfix:\n" "(Leer für alle Symbole)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7391,7 +7425,7 @@ msgstr "" msgid "Open" msgstr "Öffnen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Über&geordneten Ordner öffnen" @@ -7403,7 +7437,7 @@ msgstr "Verzeichnis öffnen..." msgid "Open FIFO log" msgstr "FIFO-Log öffnen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "GameCube-&Spielstand-Ordner öffnen" @@ -7411,7 +7445,7 @@ msgstr "GameCube-&Spielstand-Ordner öffnen" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Wii-&Spielstand-Ordner öffnen" @@ -7599,7 +7633,7 @@ msgstr "Pause" msgid "Pause at End of Movie" msgstr "Pause am Filmende" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pausieren wenn der Fokus verloren wird" @@ -7626,7 +7660,7 @@ msgstr "Per-Pixel Lighting" msgid "Perform Online System Update" msgstr "Online-Systemaktualisierung durchführen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Systemaktualisierung durchführen" @@ -7644,7 +7678,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Wähle eine Debug-Schriftart" @@ -7660,7 +7694,7 @@ msgstr "Nicken abwärts" msgid "Pitch Up" msgstr "Nicken aufwärts" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7706,7 +7740,7 @@ msgstr "Zeige" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7715,7 +7749,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Mögliche Desynchronisation erkannt: %1 wurde wahrscheinlich auf Frame %2 " @@ -7737,15 +7771,15 @@ msgstr "Shader-Konfiguration nach der Verarbeitung" msgid "Prefetch Custom Textures" msgstr "Benutzerdefinierte Texturen vorladen" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Vorzeitiges Filmende in PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Vorzeitiges Filmende in PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Vorzeitiges Filmende in PlayWiimote. {0} > {1}" @@ -7770,7 +7804,7 @@ msgstr "Sync-Taste drücken" msgid "Pressure" msgstr "Druck" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7862,7 +7896,7 @@ msgstr "Öffentlich" msgid "Purge Game List Cache" msgstr "Spielelisten Cache leeren" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7888,8 +7922,8 @@ msgstr "Qualität des DPLII-Decoders. Audiolatenz steigt mit Qualität." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Frage" @@ -7917,7 +7951,7 @@ msgstr "BEREIT" msgid "RSO Modules" msgstr "RSO-Module" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Automatische RSO-Erkennung" @@ -8068,12 +8102,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Aktualisiere..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8103,12 +8137,12 @@ msgstr "Erinnere mich später" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Entfernen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -8116,11 +8150,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "Junk-Daten entfernen (unwiederruflich):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Tag entfernen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Tag entfernen" @@ -8139,7 +8173,7 @@ msgstr "" msgid "Rename symbol" msgstr "Symbol umbenennen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Renderfenster" @@ -8220,7 +8254,7 @@ msgstr "Ressourcenpaketverwaltung" msgid "Resource Pack Path:" msgstr "Ressourcenpaket-Pfad:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Neustart erforderlich" @@ -8232,7 +8266,7 @@ msgstr "Standard wiederherstellen" msgid "Restore instruction" msgstr "Anweisung wiederherstellen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Erneut versuchen" @@ -8332,7 +8366,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Bis &hier ausführen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -8364,7 +8398,7 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8393,7 +8427,7 @@ msgstr "Sicher" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8403,9 +8437,9 @@ msgstr "Speichern" msgid "Save All" msgstr "Alle speichern" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Export speichern" @@ -8426,11 +8460,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Import speichern" @@ -8442,7 +8476,7 @@ msgstr "Ältesten Spielstand überschreiben" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8528,11 +8562,11 @@ msgstr "" msgid "Save as..." msgstr "Speichern unter..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Kombinierte Ausgabedatei speichern als" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8542,15 +8576,15 @@ msgstr "" "eine Sicherung der aktuellen Spielstände zu erstellen.\n" "Jetzt überschreiben?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Kartendatei speichern" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Signaturdatei speichern" @@ -8572,11 +8606,11 @@ msgstr "" "Gespeicherte Wiimote-Kopplungen können nur zurückgesetzt werden, wenn ein " "Wii-Spiel läuft." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "Spielstandfilm {0} ist fehlerhaft, breche die Filmaufnahme ab..." @@ -8629,7 +8663,7 @@ msgstr "Suche nach einer Anweisung" msgid "Search games..." msgstr "Suche Spiele..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Suchanweisung" @@ -8662,20 +8696,20 @@ msgstr "Auswählen" msgid "Select Dump Path" msgstr "Dump-Pfad auswählen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Export-Verzeichnis auswählen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8755,7 +8789,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Wii-NAND-Root auswählen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Verzeichnis auswählen" @@ -8763,9 +8797,9 @@ msgstr "Verzeichnis auswählen" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Datei auswählen" @@ -8785,7 +8819,7 @@ msgstr "" msgid "Select a game" msgstr "Spiel auswählen" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Wähle einen Titel zum Installieren in den NAND aus." @@ -8793,11 +8827,11 @@ msgstr "Wähle einen Titel zum Installieren in den NAND aus." msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Wählen Sie die RSO-Moduladresse aus:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8805,12 +8839,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Wähle die Schlüsseldateien (OTP/SEEPROM Dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wii-Spielstand auswählen" @@ -8832,9 +8866,9 @@ msgstr "Ausgewähltes Controller-Profil existiert nicht" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Das gewählte Spiel existiert nicht in der Spieleliste!" @@ -8846,13 +8880,13 @@ msgstr "Ausgewählter Thread-Aufrufstapel" msgid "Selected thread context" msgstr "Ausgewählter Thread-Kontext" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8896,7 +8930,7 @@ msgstr "" "zu testen und den zu wählen, der weniger Probleme verursacht." "

Im Zweifel OpenGL auswählen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8912,7 +8946,7 @@ msgstr "" "strecken.

Im Zweifel Automatisch auswählen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8926,7 +8960,7 @@ msgstr "" msgid "Send" msgstr "Senden" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Position der Sensorleiste:" @@ -8948,7 +8982,7 @@ msgstr "Server-IP-Adresse" msgid "Server Port" msgstr "Server-Port" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Server hat Übergangsversuch abgelehnt." @@ -8969,15 +9003,15 @@ msgstr "PC zuweisen" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Als &Standard-ISO festlegen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Lege eine Speicherkarten-Datei für Slot A fest" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Lege eine Speicherkarten-Datei für Slot B fest" @@ -9062,7 +9096,7 @@ msgstr "&Log anzeigen" msgid "Show &Toolbar" msgstr "&Werkzeugleiste anzeigen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Aktiven Titel in Fenstertitel anzeigen" @@ -9078,7 +9112,7 @@ msgstr "Australien anzeigen" msgid "Show Current Game on Discord" msgstr "Zeige momentanes Spiel auf Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Zeige Debugging UI" @@ -9150,7 +9184,7 @@ msgstr "NetPlay-Ping anzeigen" msgid "Show Netherlands" msgstr "Niederlande anzeigen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Bildschirmnachrichten zeigen" @@ -9220,10 +9254,23 @@ msgstr "Welt anzeigen" msgid "Show in &memory" msgstr "Im &Speicher anzeigen" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Im Code anzeigen" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Im Server-Browser anzeigen" @@ -9240,7 +9287,7 @@ msgstr "" "Zeigt verschiedene Rendering-Statistiken an.

Im " "Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9249,7 +9296,7 @@ msgstr "" "Desynchronisierungswarnungen an.

Im Zweifel " "deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Im Zweifel " "deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9352,7 +9399,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "EFB-Zugang von CPU überspringen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Hauptmenü überspringen" @@ -9383,7 +9430,7 @@ msgstr "Schieberleiste" msgid "Slot A" msgstr "Slot A:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A:" @@ -9391,7 +9438,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B:" @@ -9447,7 +9494,7 @@ msgid "Spain" msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spanisch" @@ -9456,7 +9503,7 @@ msgstr "Spanisch" msgid "Speaker Pan" msgstr "Lautsprecherregler" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Lautsprecher-Lautstärke" @@ -9538,11 +9585,11 @@ msgstr "Im Vollbildmodus starten" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Spiel gestartet" @@ -9715,10 +9762,10 @@ msgstr "Eingabestift" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Erfolg" @@ -9736,16 +9783,16 @@ msgstr "%n Abbild(er) erfolgreich konvertiert." msgid "Successfully deleted '%1'." msgstr "'%1' wurde erfolgreich gelöscht." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Spielstände wurden erfolgreich exportiert" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Zertifikate aus NAND erfolgreich extrahiert" @@ -9757,16 +9804,16 @@ msgstr "Datei erfolgreich extrahiert." msgid "Successfully extracted system data." msgstr "Systemdaten erfolgreich extrahiert." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Spielstand wurde erfolgreich importiert." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Der Titel wurde erfolgreich in den NAND installiert." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Der Titel wurde erfolgreich aus dem NAND gelöscht." @@ -9774,7 +9821,7 @@ msgstr "Der Titel wurde erfolgreich aus dem NAND gelöscht." msgid "Support" msgstr "Unterstützung" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9810,11 +9857,11 @@ msgstr "" msgid "Swing" msgstr "Schwingen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Zu A wechseln" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Zu B wechseln" @@ -9893,7 +9940,7 @@ msgstr "Gecko-Codes synchronisieren..." msgid "Synchronizing save data..." msgstr "Synchronisiere Spielstände..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Systemsprache:" @@ -9908,8 +9955,8 @@ msgstr "TAS-Eingabe" msgid "TAS Tools" msgstr "TAS-Werkzeuge" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9980,7 +10027,7 @@ msgstr "Die IPL-Datei ist kein bekannter guter Dump. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "Die Partitionen der Meisterstücke fehlen." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9988,7 +10035,7 @@ msgstr "" "Das NAND konnte nicht repariert werden. Es wird empfohlen, deine aktuellen " "Daten zu sichern und mit einem frischen NAND neu anzufangen." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "Das NAND wurde repariert." @@ -10041,11 +10088,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Die Disc konnte nicht gelesen werden (bei {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Die Disc, die eingelesen werden sollte, konnte nicht gefunden werden." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10079,11 +10126,11 @@ msgstr "Die eingegebene PID ist ungültig." msgid "The entered VID is invalid." msgstr "Die eingegebene VID ist ungültig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "Der Ausdruck enthält einen Syntaxfehler." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10117,6 +10164,13 @@ msgstr "" "Die Datei {0} wurde bereits geöffnet, der Header für die Datei wird nicht " "geschrieben." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Das Dateisystem ist ungültig oder konnte nicht gelesen werden." @@ -10231,7 +10285,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Der resultierende entschlüsselte AR-Code enthält keine Zeilen." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10272,7 +10326,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "Die ausgewählte Datei \"{0}\" existiert nicht" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -10330,7 +10384,7 @@ msgstr "Es gibt zu viele Partitionen in der ersten Partitionstabelle." msgid "There is nothing to undo!" msgstr "Es gibt nichts zum rückgängig machen!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -10375,11 +10429,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Dieses USB-Gerät ist bereits freigegeben." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Dieses WAD ist nicht bootfähig." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Dieses WAD ist nicht gültig." @@ -10392,7 +10446,7 @@ msgstr "" "selbst verändern können." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Dies kann nicht ruckgängig gemacht werden!" @@ -10520,7 +10574,7 @@ msgstr "" "Dieses Programm sollte nicht verwendet werden, um Spiele zu spielen, die Sie " "nicht legal besitzen." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Dieser Titel kann nicht gebootet werden." @@ -10533,7 +10587,7 @@ msgstr "Dieser Titel wird ein ungültiges IOS verwenden." msgid "This title is set to use an invalid common key." msgstr "Dieser Titel wird einen ungültigen gemeinsamen Schlüssel verwenden." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10545,7 +10599,7 @@ msgstr "" "\n" "DSPHLE: Unbekannter ucode (CRC = {0:08x}) - erzwinge AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10620,7 +10674,7 @@ msgstr "" "Zeitraum der stabilen Eingabe zum Auslösen der Kalibrierung. (Null zum " "Deaktivieren)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10662,7 +10716,7 @@ msgid "Toggle Aspect Ratio" msgstr "Seitenverhältnis umschalten" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Haltepunkt umschalten" @@ -10722,7 +10776,7 @@ msgstr "Tokenisierung fehlgeschlagen." msgid "Toolbar" msgstr "Werkzeugleiste" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Oben" @@ -10774,8 +10828,8 @@ msgstr "Touch" msgid "Traditional Chinese" msgstr "Chinesisch (Traditionell)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Übergangsfehler" @@ -10783,7 +10837,7 @@ msgstr "Übergangsfehler" msgid "Traversal Server" msgstr "Übergangsserver" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Zeitüberschreitung bei der Verbindung vom Übergangsserver zum Host." @@ -10809,7 +10863,7 @@ msgid "Triggers" msgstr "Schultertasten" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10843,7 +10897,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB-Whitelist-Fehler" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10854,7 +10908,7 @@ msgstr "" "Low-End-Hardware.

Im Zweifel diesen Modus wählen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10862,7 +10916,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10876,7 +10930,7 @@ msgstr "" "Kompilierung beseitigt, während die Leistung nur minimal beeinflusst wird. " "Die Ergebnisse hängen jedoch vom Verhalten des Grafiktreibers ab." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Konnte RSO-Module nicht automatisch erkennen" @@ -10935,11 +10989,11 @@ msgstr "Spielstand Speichern rückgängig machen" msgid "Uninstall" msgstr "Deinstallieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Aus NAND deinstallieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10959,11 +11013,11 @@ msgstr "Vereinigte Staaten" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Unbekannt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Unbekannter DVD-Befehl {0:08x} - fataler Fehler" @@ -11011,11 +11065,11 @@ msgstr "Unbekannte Disc" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Unbekannter Fehler {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -11073,8 +11127,8 @@ msgstr "Unsigniertes Integer" msgid "Up" msgstr "Hoch" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Update" @@ -11136,11 +11190,11 @@ msgstr "Wiimote aufrecht" msgid "Usage Statistics Reporting Settings" msgstr "Einstellungen zur Berichterstattung von Nutzungsdaten" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Eingebaute Datenbank von Spielnamen verwenden" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Benutzerdefiniertes Design verwenden" @@ -11152,7 +11206,7 @@ msgstr "Benutze verlustfreien Codec (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60-Modus (EuRGB60) verwenden" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Warnmeldungen anzeigen" @@ -11214,11 +11268,11 @@ msgstr "" msgid "User Config" msgstr "Benutzereinstellungen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Benutzeroberfläche" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Benutzerdefiniertes Design:" @@ -11245,7 +11299,7 @@ msgstr "" "GPU einen ordentlichen Geschwindigkeitsvorteil bringen." "

Im Zweifel aktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11255,7 +11309,7 @@ msgstr "" "stattdessen ein Renderfenster erstellt.

Im Zweifel " "deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11523,7 +11577,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Warnungen" @@ -11544,7 +11598,7 @@ msgstr "" "Warnung: Anzahl der von der BAT ({0}) angegebenen Blöcke stimmt nicht mit " "der aus dem geladenen Dateiheader ({1}) überein" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11555,7 +11609,7 @@ msgstr "" "Fortfahren einen anderen Spielstand laden, oder diesen Spielstand, wenn der " "Nur-Lese-Modus ausgeschaltet ist." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11565,7 +11619,7 @@ msgstr "" "Frame im Spielstand endet (Byte {0} < {1}) (Frame {2} < {3}). Du solltest " "vor dem Fortfahren einen anderen Spielstand laden." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11576,7 +11630,7 @@ msgstr "" "laden, oder diesen Spielstand, wenn der Nur-Lese-Modus ausgeschaltet ist. " "Andernfalls könnte eine Desynchronisierung auftreten." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11656,7 +11710,7 @@ msgstr "" "\"Willkürliche Mipmaps erkennen\" in \"Verbesserungen\" aktiviert ist." "

Im Zweifel aktiviert lassen." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Freigegebene USB-Durchleitungsgeräte" @@ -11702,7 +11756,7 @@ msgstr "Wiimote-Tasten" msgid "Wii Remote Orientation" msgstr "Wiimote-Ausrichtung" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wiimote-Einstellungen" @@ -11730,7 +11784,7 @@ msgstr "Wii und Wiimote" msgid "Wii data is not public yet" msgstr "Wii-Daten sind noch nicht öffentlich" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii-Spielstände (*.bin);;Alle Dateien (*)" @@ -11738,7 +11792,7 @@ msgstr "Wii-Spielstände (*.bin);;Alle Dateien (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools MEGA-Signaturdatei" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11795,9 +11849,21 @@ msgstr "Schreibe ins Log und brich ab" msgid "Write to Window" msgstr "In Fenster ausgeben" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Falsche Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11879,18 +11945,6 @@ msgstr "" "\n" "Bist du sicher, dass du trotzdem fortfahren willst?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Du versuchst, das Vulkan (Metal) Backend auf einem nicht unterstützten " -"Betriebssystem zu verwenden. Damit alle Funktionen aktiviert werden, musst " -"du macOS 10.14 (Mojave) oder neuer verwenden. Bitte melde keine " -"aufgetretenen Probleme, es sei denn, sie treten auch ab 10.14 auf." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "Du führst die neueste verfügbare Version auf dieser Update-Spur aus." @@ -11932,7 +11986,7 @@ msgstr "Sie müssen einen Namen für Ihre Sitzung angeben!" msgid "You must provide a region for your session!" msgstr "Sie müssen eine Region für Ihre Sitzung angeben!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Sie müssen Dolphin neu starten, damit die Änderungen wirksam werden." @@ -12002,12 +12056,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll konnte nicht geladen werden." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "getrennt" @@ -12068,13 +12122,13 @@ msgstr "" msgid "none" msgstr "kein" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "am" @@ -12111,7 +12165,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "{0} (Meisterstück)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12139,7 +12193,7 @@ msgstr "" "von Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} von {1} Blöcken. Komprimierungsrate {2}%" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index 73ee65c55b..a9a2cf7a95 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,7 +33,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -162,19 +162,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -211,7 +211,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -274,7 +274,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -366,7 +366,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -464,7 +464,7 @@ msgstr "" msgid "&JIT" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -521,7 +521,7 @@ msgstr "" msgid "&Play" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "" @@ -571,7 +571,7 @@ msgstr "" msgid "&Stop" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -601,7 +601,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "" @@ -609,15 +609,15 @@ msgstr "" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -654,9 +654,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -846,7 +846,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -861,8 +861,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -876,15 +876,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1019,7 +1019,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1031,7 +1031,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1061,8 +1061,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1089,18 +1089,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1179,10 +1179,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1190,20 +1195,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1224,7 +1246,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1246,7 +1268,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1302,7 +1324,7 @@ msgstr "" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1328,7 +1350,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1340,7 +1362,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1356,7 +1378,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1373,7 +1395,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1434,11 +1456,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1465,7 +1487,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1477,7 +1499,7 @@ msgstr "" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1530,7 +1552,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1565,7 +1587,7 @@ msgstr "" msgid "Bass" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1597,7 +1619,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1639,11 +1661,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1651,7 +1673,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "" @@ -1678,7 +1700,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1712,12 +1734,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "" @@ -1832,7 +1854,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1840,14 +1862,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1874,7 +1896,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1900,7 +1922,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1916,7 +1938,7 @@ msgstr "" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1968,7 +1990,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1982,16 +2004,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2016,7 +2041,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "" @@ -2069,7 +2094,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2094,7 +2119,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2146,23 +2171,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2217,7 +2242,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2325,11 +2350,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2355,9 +2380,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2369,19 +2394,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2389,19 +2414,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2441,14 +2462,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2492,7 +2513,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2504,15 +2525,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2566,7 +2587,7 @@ msgstr "" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2669,23 +2690,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2787,21 +2808,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2817,10 +2838,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2840,7 +2861,7 @@ msgstr "" msgid "Detect" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2861,7 +2882,7 @@ msgstr "" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "" @@ -2908,8 +2929,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3002,25 +3023,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3037,9 +3058,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3051,8 +3072,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3067,7 +3088,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3085,7 +3106,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3150,7 +3171,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3330,7 +3351,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "" @@ -3403,7 +3424,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "" @@ -3435,8 +3456,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3486,7 +3507,7 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3596,7 +3617,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3609,7 +3630,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "" @@ -3642,7 +3663,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3654,7 +3675,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3673,46 +3694,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "" @@ -3733,11 +3755,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3757,7 +3779,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3905,10 +3927,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3920,19 +3942,19 @@ msgstr "" msgid "Export Recording..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3944,7 +3966,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4018,7 +4040,7 @@ msgstr "" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4028,19 +4050,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4070,11 +4092,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4090,16 +4112,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4122,29 +4144,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4164,19 +4186,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4188,7 +4210,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4202,13 +4224,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4230,11 +4252,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4243,7 +4265,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4263,25 +4285,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4292,7 +4314,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4312,19 +4334,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4348,9 +4370,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4358,21 +4380,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4397,7 +4419,7 @@ msgstr "" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4412,7 +4434,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4426,19 +4448,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4465,11 +4487,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4519,7 +4541,7 @@ msgstr "" msgid "Fix Checksums" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4529,7 +4551,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4667,11 +4689,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4709,7 +4731,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "" @@ -4738,7 +4760,7 @@ msgstr "" msgid "FullScr" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4770,7 +4792,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4782,11 +4804,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4889,11 +4911,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4915,7 +4937,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4929,11 +4951,25 @@ msgstr "" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "" @@ -4942,6 +4978,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "" @@ -4982,12 +5022,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5020,7 +5060,7 @@ msgstr "" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5028,16 +5068,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "" @@ -5046,12 +5086,12 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5221,15 +5261,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5247,7 +5287,7 @@ msgstr "" msgid "Hotkeys" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5292,7 +5332,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "" @@ -5301,7 +5341,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "" @@ -5338,7 +5378,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5381,7 +5421,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5418,14 +5458,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5433,11 +5473,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5509,21 +5549,21 @@ msgid "Info" msgstr "" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "" @@ -5568,7 +5608,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5584,7 +5624,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5631,7 +5671,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5643,7 +5683,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5660,7 +5700,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5668,7 +5708,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5676,7 +5716,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5685,7 +5725,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5717,7 +5757,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5726,7 +5766,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "" @@ -5830,7 +5870,7 @@ msgstr "" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5898,7 +5938,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -5993,7 +6033,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "" @@ -6128,7 +6168,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6140,8 +6180,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6149,7 +6189,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6164,7 +6204,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6193,7 +6233,7 @@ msgstr "" msgid "Logger Outputs" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6204,7 +6244,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6233,7 +6273,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6241,7 +6281,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6280,11 +6320,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6318,16 +6358,6 @@ msgstr "" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6336,19 +6366,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6374,15 +6404,15 @@ msgstr "" msgid "Misc Settings" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6405,8 +6435,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6435,20 +6465,20 @@ msgstr "" msgid "Motor" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6462,14 +6492,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6500,11 +6536,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6525,8 +6561,8 @@ msgstr "" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6546,11 +6582,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6563,7 +6599,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6571,7 +6607,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6584,7 +6620,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6596,7 +6632,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6653,13 +6689,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6679,10 +6715,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6710,7 +6750,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6730,10 +6770,6 @@ msgstr "" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "" @@ -6742,7 +6778,7 @@ msgstr "" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6750,7 +6786,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6758,6 +6794,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6810,7 +6850,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6841,7 +6881,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6849,13 +6889,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6866,7 +6906,7 @@ msgstr "" msgid "Open" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6878,7 +6918,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6886,7 +6926,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7074,7 +7114,7 @@ msgstr "" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7101,7 +7141,7 @@ msgstr "" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7119,7 +7159,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7135,7 +7175,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7181,7 +7221,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7190,7 +7230,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7210,15 +7250,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7241,7 +7281,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7322,7 +7362,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7348,8 +7388,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "" @@ -7377,7 +7417,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7522,12 +7562,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7557,12 +7597,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7570,11 +7610,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7590,7 +7630,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7669,7 +7709,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7681,7 +7721,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7781,7 +7821,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7813,7 +7853,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7842,7 +7882,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7852,9 +7892,9 @@ msgstr "" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7875,11 +7915,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7891,7 +7931,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7977,26 +8017,26 @@ msgstr "" msgid "Save as..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8016,11 +8056,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8073,7 +8113,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8105,20 +8145,20 @@ msgstr "" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8198,7 +8238,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8206,9 +8246,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8228,7 +8268,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8236,11 +8276,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8248,12 +8288,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8275,9 +8315,9 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8289,13 +8329,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8322,7 +8362,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8331,7 +8371,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8345,7 +8385,7 @@ msgstr "" msgid "Send" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "" @@ -8365,7 +8405,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8386,15 +8426,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8474,7 +8514,7 @@ msgstr "" msgid "Show &Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8490,7 +8530,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8562,7 +8602,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8632,10 +8672,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8650,20 +8703,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8750,7 +8803,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8776,7 +8829,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8784,7 +8837,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8836,7 +8889,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "" @@ -8845,7 +8898,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "" @@ -8927,11 +8980,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9094,10 +9147,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9115,16 +9168,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9136,16 +9189,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9153,7 +9206,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9186,11 +9239,11 @@ msgstr "" msgid "Swing" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9267,7 +9320,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "" @@ -9282,8 +9335,8 @@ msgstr "" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9352,13 +9405,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9404,11 +9457,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9438,11 +9491,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9466,6 +9519,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9562,7 +9622,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9596,7 +9656,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9651,7 +9711,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9685,11 +9745,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9700,7 +9760,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9797,7 +9857,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9810,7 +9870,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9818,7 +9878,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9878,7 +9938,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9920,7 +9980,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9980,7 +10040,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "" @@ -10032,8 +10092,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10041,7 +10101,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10065,7 +10125,7 @@ msgid "Triggers" msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10099,14 +10159,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10114,7 +10174,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10123,7 +10183,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10175,11 +10235,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10196,11 +10256,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10244,11 +10304,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10304,8 +10364,8 @@ msgstr "" msgid "Up" msgstr "" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "" @@ -10365,11 +10425,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10381,7 +10441,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "" @@ -10441,11 +10501,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10468,14 +10528,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10706,7 +10766,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "" @@ -10723,28 +10783,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10799,7 +10859,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10845,7 +10905,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10873,7 +10933,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10881,7 +10941,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10938,8 +10998,20 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11006,14 +11078,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11051,7 +11115,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" @@ -11121,12 +11185,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11187,13 +11251,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11230,7 +11294,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11253,7 +11317,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/el.po b/Languages/po/el.po index 2553f21365..69ecd22c86 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -39,7 +39,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -168,19 +168,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 έχει φύγει" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -217,7 +217,7 @@ msgstr "%1% (Κανονική Ταχύτητα)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -280,7 +280,7 @@ msgstr "&4x" msgid "&About" msgstr "&Περί" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -372,7 +372,7 @@ msgstr "&Διαγραφή" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -470,7 +470,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Γλώσσα:" @@ -527,7 +527,7 @@ msgstr "&Παύση" msgid "&Play" msgstr "&Αναπαραγωγή" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Ιδιότητες" @@ -577,7 +577,7 @@ msgstr "&Όριο Ταχύτητας:" msgid "&Stop" msgstr "&Διακοπή" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Θέμα:" @@ -607,7 +607,7 @@ msgstr "" msgid "&Website" msgstr "&Ιστοσελίδα" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -615,15 +615,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Ναι" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -660,9 +660,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -852,7 +852,7 @@ msgstr "< Λιγότερο-από" msgid "" msgstr "<Τίποτα>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<Γλώσσα Συστήματος>" @@ -870,8 +870,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Περισσότερο-από" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -885,15 +885,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1028,7 +1028,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1040,7 +1040,7 @@ msgstr "" msgid "Active threads" msgstr "Ενεργά νήματα" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1070,8 +1070,8 @@ msgstr "" msgid "Add New USB Device" msgstr "Προσθήκη Νέας USB Συσκευής" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1098,18 +1098,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Προσθήκη..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1188,10 +1188,15 @@ msgstr "Αφρική" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1199,20 +1204,37 @@ msgid "All Files" msgstr "Όλα τα Αρχεία" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Όλα τα Αρχεία (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Όλα τα GC/Wii αρχεία" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Όλες οι συσκευές" @@ -1233,7 +1255,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "Να Επιτρέπονται Ασύμφωνες Ρυθμίσεις Περιοχών" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Άδεια Μετάδοσης Στατιστικών Χρήσης " @@ -1255,7 +1277,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Πάντοτε" @@ -1311,7 +1333,7 @@ msgstr "Εξομάλυνση Ορίων:" msgid "Any Region" msgstr "Οποιαδήποτε Περιοχή" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1337,7 +1359,7 @@ msgstr "Apploader Ημερομηνία:" msgid "Apply" msgstr "Εφαρμογή" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1349,7 +1371,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε το '%1';" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο;" @@ -1365,7 +1387,7 @@ msgstr "Είστε σίγουροι ότι θέλετε να εγκαταλεί msgid "Are you sure?" msgstr "Είστε σίγουροι;" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Αναλογία Οθόνης" @@ -1382,7 +1404,7 @@ msgstr "Ορισμός Θυρών Χειριστηρίων" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1443,11 +1465,11 @@ msgstr "Αυτόματη Προσαρμογή Μεγέθους Παραθύρο msgid "Auto-Hide" msgstr "Αυτόματη Απόκρυψη" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1474,7 +1496,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1486,7 +1508,7 @@ msgstr "BP Καταχωρητές" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1539,7 +1561,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1574,7 +1596,7 @@ msgstr "Βασικές Ρυθμίσεις" msgid "Bass" msgstr "Μπάσο" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1606,7 +1628,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1648,11 +1670,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1660,7 +1682,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Πλήρης Οθόνη Χωρίς Περιθώρια " -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Βάση" @@ -1687,7 +1709,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1721,12 +1743,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Μέγεθος Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1841,7 +1863,7 @@ msgstr "Κάμερα 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1849,14 +1871,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1883,7 +1905,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Δεν μπορεί να βρεθεί το GC IPL." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1909,7 +1931,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Αλλαγή &Δίσκου" @@ -1925,7 +1947,7 @@ msgstr "Αλλαγή Δίσκου" msgid "Change Discs Automatically" msgstr "Αυτόματη Αλλαγή Δίσκων" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1977,7 +1999,7 @@ msgstr "Έλεγχος Αλλαγών στην Λίστα Παιχνιδιών msgid "Check for updates" msgstr "Έλεγχος για ενημερώσεις" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1991,16 +2013,19 @@ msgstr "" msgid "China" msgstr "Κίνα" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Επιλέξτε ένα αρχείο για άνοιγμα" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2025,7 +2050,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Καθάρισ." @@ -2078,7 +2103,7 @@ msgstr "" msgid "Code:" msgstr "Κωδικός:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2103,7 +2128,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2155,23 +2180,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Επιβεβαίωση" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Επιβεβαίωση αλλαγής backend " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Επιβεβαίωση Διακοπής" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2226,7 +2251,7 @@ msgstr "Σύνδεση στο Internet και εκτέλεση ενημέρωσ msgid "Connected" msgstr "Συνδεδεμένο" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2334,11 +2359,11 @@ msgstr "Σύγκλιση:" msgid "Convert" msgstr "Μετατροπή" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Μετατροπή Αρχείου..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Μετατροπή Επιλεγμένων Αρχείων..." @@ -2366,9 +2391,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Αντιγραφή" @@ -2380,19 +2405,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2400,19 +2425,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Η αντιγραφή απέτυχε" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2452,14 +2473,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2503,7 +2524,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2515,15 +2536,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Αδυναμία ανοίγματος του αρχείου." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Αδυναμία ανάγνωσης αρχείου." @@ -2577,7 +2598,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "Τρέχουσα Περιοχή" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2680,23 +2701,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2798,21 +2819,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Διαγραφή" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Διαγραφή Αρχείου..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Διαγραφή Επιλεγμένων Αρχείων..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2828,10 +2849,10 @@ msgstr "" msgid "Depth:" msgstr "Βάθος:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2851,7 +2872,7 @@ msgstr "" msgid "Detect" msgstr "Ανίχνευση" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2872,7 +2893,7 @@ msgstr "Συσκευή" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Ρυθμίσεις Συσκευής" @@ -2920,8 +2941,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3014,27 +3035,27 @@ msgstr "Απόσταση" msgid "Distance of travel from neutral position." msgstr "Απόσταση μετακίνησης από ουδέτερη θέση." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Εξουσιοδοτείτε το Dolphin να αναφέρει πληροφορίες στους προγραμματιστές του " "Dolphin;" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Θέλετε να σταματήσετε την τρέχουσα εξομοίωση;" @@ -3051,9 +3072,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3065,8 +3086,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Ταινίες (*.dtm)" @@ -3081,7 +3102,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3101,7 +3122,7 @@ msgstr "" "Το Dolphin είναι ένας ελεύθερος και ανοικτού κώδικα εξομοιωτής για GameCube " "και Wii." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3166,7 +3187,7 @@ msgstr "Λήψη Κωδικών" msgid "Download Codes from the WiiRD Database" msgstr "Λήψη Κωδικών από την WiiRD Database" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" "Λήψη Εξώφυλλων Παιχνιδιών από GameTDB.com για Χρήση σε Προβολή Πλέγματος" @@ -3347,7 +3368,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Ολλανδικά" @@ -3420,7 +3441,7 @@ msgstr "" msgid "Empty" msgstr "Κενή" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Το νήμα εξομοίωσης εκτελείται ήδη" @@ -3452,8 +3473,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Ενεργοποίηση" @@ -3503,7 +3524,7 @@ msgid "Enable Progressive Scan" msgstr "Ενεργοποίηση Προοδευτικής Σάρωσης" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Ενεργοποίηση Δόνησης" @@ -3620,7 +3641,7 @@ msgstr "" msgid "Encoding" msgstr "Κωδικοποίηση" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3633,7 +3654,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Αγγλικά" @@ -3666,7 +3687,7 @@ msgstr "" msgid "Enter password" msgstr "Εισαγωγή κωδικού" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3678,7 +3699,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3697,46 +3718,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Σφάλμα" @@ -3759,11 +3781,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3783,7 +3805,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3931,10 +3953,10 @@ msgstr "Πειραματικός" msgid "Export All Wii Saves" msgstr "Εξαγωγή Όλων Των Αποθηκεύσεων Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Η Εξαγωγή Απέτυχε" @@ -3946,19 +3968,19 @@ msgstr "Εξαγωγή Εγγραφής" msgid "Export Recording..." msgstr "Εξαγωγή Εγγραφής..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3970,7 +3992,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4044,7 +4066,7 @@ msgstr "Αναπαραγωγή FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4054,19 +4076,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4096,11 +4118,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4116,16 +4138,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4148,29 +4170,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4190,19 +4212,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4214,7 +4236,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4228,13 +4250,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4256,11 +4278,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4269,7 +4291,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4289,25 +4311,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4318,7 +4340,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4338,19 +4360,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4374,9 +4396,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4384,21 +4406,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Αποτυχία" @@ -4423,7 +4445,7 @@ msgstr "Γρήγορη" msgid "Fast Depth Calculation" msgstr "Γρήγορος Υπολογισμός Βάθους" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4438,7 +4460,7 @@ msgstr "" msgid "File Details" msgstr "Πληροφορίες Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4452,19 +4474,19 @@ msgstr "" msgid "File Info" msgstr "Πληροφορίες Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Όνομα Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Διαδρομή Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Μέγεθος Αρχείου" @@ -4491,11 +4513,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4545,7 +4567,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Επιδιόρθωση Checksum" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4555,7 +4577,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4693,11 +4715,11 @@ msgstr "Καρέ για Εγγραφή:" msgid "France" msgstr "Γαλλία" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4735,7 +4757,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Γαλλικά" @@ -4764,7 +4786,7 @@ msgstr "Από:" msgid "FullScr" msgstr "Πλήρης Οθόνη" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4796,7 +4818,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4808,11 +4830,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4915,11 +4937,11 @@ msgstr "Παιχνίδι" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Carts (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4941,7 +4963,7 @@ msgstr "" msgid "Game Folders" msgstr "Φάκελοι Παιχνιδιών" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Παιχνιδιού" @@ -4955,11 +4977,25 @@ msgstr "ID Παιχνιδιού:" msgid "Game Status" msgstr "Κατάσταση Παιχνιδιού" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Το παιχνίδι εκτελείται ήδη!" @@ -4968,6 +5004,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Ρυθμίσεις Συγκεκριμένου Παιχνιδιού" @@ -5008,12 +5048,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5046,7 +5086,7 @@ msgstr "Γενικά" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5054,16 +5094,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Γερμανικά" @@ -5072,12 +5112,12 @@ msgstr "Γερμανικά" msgid "Germany" msgstr "Γερμανία" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5247,15 +5287,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5273,7 +5313,7 @@ msgstr "" msgid "Hotkeys" msgstr "Πλήκτρα Συντόμευσης" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Τα Πλήκτρα Συντόμευσης Απαιτούν Εστίαση Παραθύρου" @@ -5318,7 +5358,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Ρυθμίσεις IPL" @@ -5327,7 +5367,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Ευαισθησία IR:" @@ -5364,7 +5404,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5407,7 +5447,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Αγνόηση Αλλαγών Format" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5444,14 +5484,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5459,11 +5499,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5535,21 +5575,21 @@ msgid "Info" msgstr "Πληροφορίες" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Πληροφορίες" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Είσοδος" @@ -5594,7 +5634,7 @@ msgstr "Εγκατάσταση Ενημέρωσης" msgid "Install WAD..." msgstr "Εγκατάσταση WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Εγκατάσταση στην NAND" @@ -5610,7 +5650,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5657,7 +5697,7 @@ msgstr "Εσωτερική Ανάλυση" msgid "Internal Resolution:" msgstr "Εσωτερική Ανάλυση:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5669,7 +5709,7 @@ msgstr "Interpreter (πιο αργή απ' όλες)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5686,7 +5726,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5694,7 +5734,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5702,7 +5742,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Μη έγκυρος host" @@ -5711,7 +5751,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5743,7 +5783,7 @@ msgstr "Μη έγκυρο string αναζήτησης (δεν μπορεί να msgid "Invalid search string (only even string lengths supported)" msgstr "Μη έγκυρο string αναζήτησης (μόνο ζυγά μήκη string υποστηρίζονται)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5752,7 +5792,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Ιταλικά" @@ -5856,7 +5896,7 @@ msgstr "Ιαπωνικά" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Διατήρηση Παραθύρου στην Κορυφή" @@ -5924,7 +5964,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6022,7 +6062,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Φόρτωσ." @@ -6157,7 +6197,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6169,8 +6209,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6178,7 +6218,7 @@ msgstr "" msgid "Load..." msgstr "Φόρτωση..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6193,7 +6233,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6222,7 +6262,7 @@ msgstr "Τύποι Καταγραφής" msgid "Logger Outputs" msgstr "Έξοδοι Καταγραφής" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6233,7 +6273,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6262,7 +6302,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6270,7 +6310,7 @@ msgstr "" msgid "Main Stick" msgstr "Κύριο Stick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6309,11 +6349,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6349,16 +6389,6 @@ msgstr "Κάρτα Μνήμης" msgid "Memory Card Manager" msgstr "Διαχειριστής Καρτών Μνήμης" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Παράκαμψη Μνήμης" @@ -6367,19 +6397,19 @@ msgstr "Παράκαμψη Μνήμης" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6405,15 +6435,15 @@ msgstr "Διάφορα" msgid "Misc Settings" msgstr "Διάφορες Ρυθμίσεις" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6436,8 +6466,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6466,20 +6496,20 @@ msgstr "" msgid "Motor" msgstr "Μοτέρ" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6493,14 +6523,20 @@ msgstr "" msgid "Movie" msgstr "Ταινία" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Έλεγχος NAND " @@ -6531,11 +6567,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Όνομα" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6556,8 +6592,8 @@ msgstr "Όνομα:" msgid "Native (640x528)" msgstr "Αρχική (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6577,11 +6613,11 @@ msgstr "" msgid "Netherlands" msgstr "Ολλανδία" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "Το NetPlay έχει αποσυγχρονιστεί. Δεν υπάρχει κανένας τρόπος για να " @@ -6596,7 +6632,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6604,7 +6640,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6617,7 +6653,7 @@ msgstr "" msgid "New Search" msgstr "Νέα Αναζήτηση" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Νέα Ετικέτα..." @@ -6629,7 +6665,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6686,13 +6722,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Μη διαθέσιμη περιγραφή" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Κανένα σφάλμα." @@ -6712,10 +6748,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Δεν εντοπίστηκαν προβλήματα." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6743,7 +6783,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Δεν βρέθηκαν δεδομένα αποθήκευσης." @@ -6763,10 +6803,6 @@ msgstr "Καμία" msgid "North America" msgstr "Βόρεια Αμερική" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Δεν Βρέθηκε" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Μη Ορισμένο" @@ -6775,7 +6811,7 @@ msgstr "Μη Ορισμένο" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6783,7 +6819,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6791,6 +6827,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6843,7 +6883,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6874,7 +6914,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6882,13 +6922,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Online &Εγχειρίδια " -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6899,7 +6939,7 @@ msgstr "" msgid "Open" msgstr "Άνοιγμα" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Άνοιγμα &Περιεχόμενου Φακέλου" @@ -6911,7 +6951,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Άνοιγμα GameCube &Φακέλου Αποθήκευσης" @@ -6919,7 +6959,7 @@ msgstr "Άνοιγμα GameCube &Φακέλου Αποθήκευσης" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Άνοιγμα Wii &Φακέλου Αποθήκευσης" @@ -7107,7 +7147,7 @@ msgstr "Παύση" msgid "Pause at End of Movie" msgstr "Παύση στο Τέλος της Ταινίας" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Παύση στην Απώλεια Εστίασης Παραθύρου" @@ -7134,7 +7174,7 @@ msgstr "Φωτισμός ανά Pixel" msgid "Perform Online System Update" msgstr "Εκτελέστε Διαδικτυακή Ενημέρωση Συστήματος" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Εκτέλεση Ενημέρωσης Συστήματος" @@ -7152,7 +7192,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7168,7 +7208,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Πλατφόρμα" @@ -7214,7 +7254,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7223,7 +7263,7 @@ msgstr "" msgid "Port:" msgstr "Θύρα:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7243,15 +7283,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Προφόρτωση Τροποποιημένων Υφών" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7274,7 +7314,7 @@ msgstr "" msgid "Pressure" msgstr "Πίεση" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7355,7 +7395,7 @@ msgstr "Δημόσιος" msgid "Purge Game List Cache" msgstr "Εκκαθάριση Μνήμης Cache Λίστας Παιχνιδιών " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7381,8 +7421,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Ερώτηση" @@ -7410,7 +7450,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7555,12 +7595,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Ανανέωση..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7590,12 +7630,12 @@ msgstr "Υπενθύμιση Αργότερα" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Αφαίρεση" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7603,11 +7643,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Αφαίρεση Ετικέτας..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7623,7 +7663,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7702,7 +7742,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Απαιτείται Επανεκκίνηση" @@ -7714,7 +7754,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Επανάληψη" @@ -7814,7 +7854,7 @@ msgstr "Δόνηση" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7846,7 +7886,7 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -7875,7 +7915,7 @@ msgstr "Ασφαλής" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7885,9 +7925,9 @@ msgstr "Αποθήκ." msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7908,11 +7948,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7924,7 +7964,7 @@ msgstr "Αποθήκευση Παλαιότερου Σημείου" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8010,26 +8050,26 @@ msgstr "" msgid "Save as..." msgstr "Αποθήκευση ως..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8049,11 +8089,11 @@ msgstr "Αποθήκευση..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8106,7 +8146,7 @@ msgstr "" msgid "Search games..." msgstr "Αναζήτηση παιχνιδιών..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8138,20 +8178,20 @@ msgstr "Επιλογή" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8231,7 +8271,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Επιλέξτε ένα Φάκελο" @@ -8239,9 +8279,9 @@ msgstr "Επιλέξτε ένα Φάκελο" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Επιλέξτε ένα Αρχείο" @@ -8261,7 +8301,7 @@ msgstr "" msgid "Select a game" msgstr "Επιλέξτε ένα παιχνίδι" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Επιλέξτε ένα αρχείο για εγκατάσταση στην NAND" @@ -8269,11 +8309,11 @@ msgstr "Επιλέξτε ένα αρχείο για εγκατάσταση στ msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8281,12 +8321,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Επιλέξτε αρχείο αποθήκευσης" @@ -8308,9 +8348,9 @@ msgstr "Το επιλεγμένο προφίλ χειρισμού δεν υπά #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8322,13 +8362,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8355,7 +8395,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8364,7 +8404,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8378,7 +8418,7 @@ msgstr "" msgid "Send" msgstr "Αποστολή" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Θέση Sensor Bar:" @@ -8398,7 +8438,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8419,15 +8459,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Ορισμός ως &Προεπιλεγμένου ISO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8510,7 +8550,7 @@ msgstr "Εμφάνιση Παραθύρου Κατα&γραφής " msgid "Show &Toolbar" msgstr "Εμφάνιση Γραμμής &Εργαλείων" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Εμφάνιση Ενεργού Τίτλου στον Τίτλο Παραθύρου" @@ -8526,7 +8566,7 @@ msgstr "Εμφάνιση Αυστραλίας" msgid "Show Current Game on Discord" msgstr "Εμφάνιση Τρέχοντος Παιχνιδιού σε Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Εμφάνιση Διεπαφής Αποσφαλμάτωσης" @@ -8598,7 +8638,7 @@ msgstr "Εμφάνιση NetPlay Ping" msgid "Show Netherlands" msgstr "Εμφάνιση Ολλανδίας" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Εμφάνιση Μηνυμάτων στην Οθόνη " @@ -8668,10 +8708,23 @@ msgstr "Εμφάνιση Κόσμου" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8686,20 +8739,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8786,7 +8839,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Παράλειψη EFB Πρόσβασης από τη CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Παράλειψη Κύριου Μενού" @@ -8812,7 +8865,7 @@ msgstr "" msgid "Slot A" msgstr "Θέση Α" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Θέση Α:" @@ -8820,7 +8873,7 @@ msgstr "Θέση Α:" msgid "Slot B" msgstr "Θέση Β" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Θέση Β:" @@ -8872,7 +8925,7 @@ msgid "Spain" msgstr "Ισπανία" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Ισπανικά" @@ -8881,7 +8934,7 @@ msgstr "Ισπανικά" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Ένταση Ηχείου:" @@ -8963,11 +9016,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Εκκίνηση παιχνιδιού" @@ -9130,10 +9183,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Επιτυχία" @@ -9151,16 +9204,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "Επιτυχής διαγραφή '%1'." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9172,16 +9225,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9189,7 +9242,7 @@ msgstr "" msgid "Support" msgstr "Υποστήριξη" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9222,11 +9275,11 @@ msgstr "" msgid "Swing" msgstr "Swing" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9303,7 +9356,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Γλώσσα Συστήματος:" @@ -9318,8 +9371,8 @@ msgstr "TAS Είσοδος" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9388,13 +9441,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9440,11 +9493,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9474,11 +9527,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9502,6 +9555,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9599,7 +9659,7 @@ msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" "Το αποτέλεσμα αποκρυπτογράφησης του κωδικού AR δεν περιέχει καθόλου γραμμές." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9633,7 +9693,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9688,7 +9748,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Δεν υπάρχει τίποτα προς αναίρεση!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9725,11 +9785,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9742,7 +9802,7 @@ msgstr "" "ίδιο το Action Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9841,7 +9901,7 @@ msgstr "" "Αυτό το λογισμικό δεν πρέπει να χρησιμοποιείται για το παίξιμο παιχνιδιών " "που δεν κατέχονται νόμιμα." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9854,7 +9914,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9862,7 +9922,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9922,7 +9982,7 @@ msgstr "Πλάγιασμα" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9964,7 +10024,7 @@ msgid "Toggle Aspect Ratio" msgstr "Εναλλαγή Αναλογίας Οθόνης" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -10024,7 +10084,7 @@ msgstr "" msgid "Toolbar" msgstr "Γραμμή εργαλείων" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Κορυφή" @@ -10076,8 +10136,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Κινέζικα Παραδοσιακά " -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10085,7 +10145,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10109,7 +10169,7 @@ msgid "Triggers" msgstr "Σκανδάλες" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10143,14 +10203,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10158,7 +10218,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10167,7 +10227,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10219,11 +10279,11 @@ msgstr "Αναίρεση Αποθήκευσης Σημείου Αποθ. " msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10240,11 +10300,11 @@ msgstr "Ηνωμένες Πολιτείες" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Άγνωστο" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10288,11 +10348,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10348,8 +10408,8 @@ msgstr "" msgid "Up" msgstr "Πάνω" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Ενημέρωση" @@ -10411,11 +10471,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Χρήση Ενσωματωμένης Βάσης Δεδομένων για Ονόματα Παιχνιδιών" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10427,7 +10487,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Χρήση Λειτουργίας PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Χρήση Οθονών Πανικού" @@ -10487,11 +10547,11 @@ msgstr "" msgid "User Config" msgstr "Ρυθμίσεις Χρήστη" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Διεπαφή Χρήστη" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10514,14 +10574,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10752,7 +10812,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Προειδοποίηση" @@ -10769,28 +10829,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10845,7 +10905,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10891,7 +10951,7 @@ msgstr "Wii Remote Κουμπιά" msgid "Wii Remote Orientation" msgstr "Wii Remote Προσανατολισμός" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii Remote Ρυθμίσεις" @@ -10919,7 +10979,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10927,7 +10987,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10984,8 +11044,20 @@ msgstr "" msgid "Write to Window" msgstr "Εγγραφή στο Παράθυρο" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11052,14 +11124,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11097,7 +11161,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" "Πρέπει να κάνετε επανεκκίνηση του Dolphin για να έχει επίπτωση αυτή η αλλαγή." @@ -11168,12 +11232,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll δεν μπόρεσε να φορτώσει." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "αποσύνδεση" @@ -11234,13 +11298,13 @@ msgstr "" msgid "none" msgstr "κανένα" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11277,7 +11341,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11300,7 +11364,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/en.po b/Languages/po/en.po index f9ee3dfff1..3888e67d69 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -32,7 +32,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -161,19 +161,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -273,7 +273,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -365,7 +365,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -463,7 +463,7 @@ msgstr "" msgid "&JIT" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -520,7 +520,7 @@ msgstr "" msgid "&Play" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "" @@ -570,7 +570,7 @@ msgstr "" msgid "&Stop" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -600,7 +600,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "" @@ -608,15 +608,15 @@ msgstr "" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -653,9 +653,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -845,7 +845,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -860,8 +860,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -875,15 +875,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1018,7 +1018,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1030,7 +1030,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1060,8 +1060,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1088,18 +1088,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1178,10 +1178,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1189,20 +1194,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1223,7 +1245,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1245,7 +1267,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1301,7 +1323,7 @@ msgstr "" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1327,7 +1349,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1339,7 +1361,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1355,7 +1377,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1372,7 +1394,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1433,11 +1455,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1464,7 +1486,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1476,7 +1498,7 @@ msgstr "" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1529,7 +1551,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1564,7 +1586,7 @@ msgstr "" msgid "Bass" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1596,7 +1618,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1638,11 +1660,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1650,7 +1672,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "" @@ -1677,7 +1699,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1711,12 +1733,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "" @@ -1831,7 +1853,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1839,14 +1861,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1873,7 +1895,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1899,7 +1921,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1915,7 +1937,7 @@ msgstr "" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1967,7 +1989,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1981,16 +2003,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2015,7 +2040,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "" @@ -2068,7 +2093,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2093,7 +2118,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2145,23 +2170,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2216,7 +2241,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2324,11 +2349,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2354,9 +2379,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2368,19 +2393,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2388,19 +2413,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2440,14 +2461,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2491,7 +2512,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2503,15 +2524,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2565,7 +2586,7 @@ msgstr "" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2668,23 +2689,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2786,21 +2807,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2816,10 +2837,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2839,7 +2860,7 @@ msgstr "" msgid "Detect" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2860,7 +2881,7 @@ msgstr "" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "" @@ -2907,8 +2928,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3001,25 +3022,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3036,9 +3057,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3050,8 +3071,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3066,7 +3087,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3084,7 +3105,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3149,7 +3170,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3329,7 +3350,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "" @@ -3402,7 +3423,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "" @@ -3434,8 +3455,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3485,7 +3506,7 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3595,7 +3616,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3608,7 +3629,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "" @@ -3641,7 +3662,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3653,7 +3674,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3672,46 +3693,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "" @@ -3732,11 +3754,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3756,7 +3778,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3904,10 +3926,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3919,19 +3941,19 @@ msgstr "" msgid "Export Recording..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3943,7 +3965,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4017,7 +4039,7 @@ msgstr "" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4027,19 +4049,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4069,11 +4091,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4089,16 +4111,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4121,29 +4143,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4163,19 +4185,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4187,7 +4209,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4201,13 +4223,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4229,11 +4251,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4242,7 +4264,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4262,25 +4284,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4291,7 +4313,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4311,19 +4333,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4347,9 +4369,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4357,21 +4379,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4396,7 +4418,7 @@ msgstr "" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4411,7 +4433,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4425,19 +4447,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4464,11 +4486,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4518,7 +4540,7 @@ msgstr "" msgid "Fix Checksums" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4528,7 +4550,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4666,11 +4688,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4708,7 +4730,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "" @@ -4737,7 +4759,7 @@ msgstr "" msgid "FullScr" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4769,7 +4791,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4781,11 +4803,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4888,11 +4910,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4914,7 +4936,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4928,11 +4950,25 @@ msgstr "" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "" @@ -4941,6 +4977,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "" @@ -4981,12 +5021,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5019,7 +5059,7 @@ msgstr "" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5027,16 +5067,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "" @@ -5045,12 +5085,12 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5220,15 +5260,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5246,7 +5286,7 @@ msgstr "" msgid "Hotkeys" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5291,7 +5331,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "" @@ -5300,7 +5340,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "" @@ -5337,7 +5377,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5380,7 +5420,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5417,14 +5457,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5432,11 +5472,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5508,21 +5548,21 @@ msgid "Info" msgstr "" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "" @@ -5567,7 +5607,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5583,7 +5623,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5630,7 +5670,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5642,7 +5682,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5659,7 +5699,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5667,7 +5707,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5675,7 +5715,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5684,7 +5724,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5716,7 +5756,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5725,7 +5765,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "" @@ -5829,7 +5869,7 @@ msgstr "" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5897,7 +5937,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -5992,7 +6032,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "" @@ -6127,7 +6167,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6139,8 +6179,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6148,7 +6188,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6163,7 +6203,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6192,7 +6232,7 @@ msgstr "" msgid "Logger Outputs" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6203,7 +6243,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6232,7 +6272,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6240,7 +6280,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6279,11 +6319,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6317,16 +6357,6 @@ msgstr "" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6335,19 +6365,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6373,15 +6403,15 @@ msgstr "" msgid "Misc Settings" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6404,8 +6434,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6434,20 +6464,20 @@ msgstr "" msgid "Motor" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6461,14 +6491,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6499,11 +6535,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6524,8 +6560,8 @@ msgstr "" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6545,11 +6581,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6562,7 +6598,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6570,7 +6606,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6583,7 +6619,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6595,7 +6631,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6652,13 +6688,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6678,10 +6714,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6709,7 +6749,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6729,10 +6769,6 @@ msgstr "" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "" @@ -6741,7 +6777,7 @@ msgstr "" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6749,7 +6785,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6757,6 +6793,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6809,7 +6849,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6840,7 +6880,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6848,13 +6888,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6865,7 +6905,7 @@ msgstr "" msgid "Open" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6877,7 +6917,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6885,7 +6925,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7073,7 +7113,7 @@ msgstr "" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7100,7 +7140,7 @@ msgstr "" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7118,7 +7158,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7134,7 +7174,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7180,7 +7220,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7189,7 +7229,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7209,15 +7249,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7240,7 +7280,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7321,7 +7361,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7347,8 +7387,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "" @@ -7376,7 +7416,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7521,12 +7561,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7556,12 +7596,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7569,11 +7609,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7589,7 +7629,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7668,7 +7708,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7680,7 +7720,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7780,7 +7820,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7812,7 +7852,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7841,7 +7881,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7851,9 +7891,9 @@ msgstr "" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7874,11 +7914,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7890,7 +7930,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7976,26 +8016,26 @@ msgstr "" msgid "Save as..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8015,11 +8055,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8072,7 +8112,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8104,20 +8144,20 @@ msgstr "" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8197,7 +8237,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8205,9 +8245,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8227,7 +8267,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8235,11 +8275,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8247,12 +8287,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8274,9 +8314,9 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8288,13 +8328,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8321,7 +8361,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8330,7 +8370,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8344,7 +8384,7 @@ msgstr "" msgid "Send" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "" @@ -8364,7 +8404,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8385,15 +8425,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8473,7 +8513,7 @@ msgstr "" msgid "Show &Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8489,7 +8529,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8561,7 +8601,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8631,10 +8671,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8649,20 +8702,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8749,7 +8802,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8775,7 +8828,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8783,7 +8836,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8835,7 +8888,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "" @@ -8844,7 +8897,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "" @@ -8926,11 +8979,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9093,10 +9146,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9114,16 +9167,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9135,16 +9188,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9152,7 +9205,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9185,11 +9238,11 @@ msgstr "" msgid "Swing" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9266,7 +9319,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "" @@ -9281,8 +9334,8 @@ msgstr "" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9351,13 +9404,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9403,11 +9456,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9437,11 +9490,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9465,6 +9518,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9561,7 +9621,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9595,7 +9655,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9650,7 +9710,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9684,11 +9744,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9699,7 +9759,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9796,7 +9856,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9809,7 +9869,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9817,7 +9877,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9877,7 +9937,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9919,7 +9979,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9979,7 +10039,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "" @@ -10031,8 +10091,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10040,7 +10100,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10064,7 +10124,7 @@ msgid "Triggers" msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10098,14 +10158,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10113,7 +10173,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10122,7 +10182,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10174,11 +10234,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10195,11 +10255,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10243,11 +10303,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10303,8 +10363,8 @@ msgstr "" msgid "Up" msgstr "" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "" @@ -10364,11 +10424,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10380,7 +10440,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "" @@ -10440,11 +10500,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10467,14 +10527,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10705,7 +10765,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "" @@ -10722,28 +10782,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10798,7 +10858,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10844,7 +10904,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10872,7 +10932,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10880,7 +10940,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10937,8 +10997,20 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11005,14 +11077,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11050,7 +11114,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" @@ -11120,12 +11184,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11186,13 +11250,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11229,7 +11293,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11252,7 +11316,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/es.po b/Languages/po/es.po index cfd0a36743..d3d766ced1 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" @@ -40,7 +40,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " +"1 : 2;\n" #: Source/Core/DiscIO/VolumeVerifier.cpp:1402 msgid "" @@ -67,7 +68,7 @@ msgstr "" "manipulados porque no está hecho para consolas Wii de cara al público. Es " "para consolas de desarrollo." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -212,19 +213,19 @@ msgstr "" "%2 objetos\n" "Fotograma actual: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 se ha unido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 se ha salido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 no es una ROM válida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 ahora está jugando al golf" @@ -261,7 +262,7 @@ msgstr "%1% (velocidad normal)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -324,7 +325,7 @@ msgstr "&4x" msgid "&About" msgstr "&Acerca de" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Añadir punto de interrupción en memoria" @@ -416,7 +417,7 @@ msgstr "&Borrar" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "Borrar variables &vigiladas" @@ -514,7 +515,7 @@ msgstr "&Fusión de fotogramas" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Idioma:" @@ -571,7 +572,7 @@ msgstr "&Pausa" msgid "&Play" msgstr "&Jugar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Propiedades" @@ -621,7 +622,7 @@ msgstr "&Límite de velocidad:" msgid "&Stop" msgstr "&Detener" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema visual:" @@ -651,7 +652,7 @@ msgstr "&Vigilar" msgid "&Website" msgstr "&Página web" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -659,15 +660,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Sí" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "No se encontró «%1», no se han generado nombres de símbolos" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "No se encontró «%1», probando con la búsqueda de funciones comunes" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Ninguno)" @@ -704,9 +705,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -896,7 +897,7 @@ msgstr "< Menor que" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -914,8 +915,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Mayor que" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Ya hay una sesión de juego en red en marcha." @@ -935,17 +936,17 @@ msgstr "" "\n" "Instalar este WAD lo reemplazará de forma irreversible. ¿Quieres continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Ya hay un disco en proceso de inserción." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Un estado de guardado no puede ser cargado sin especificar el juego a " "ejecutar." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1113,7 +1114,7 @@ msgstr "Action Replay: Código Normal {0}: Subtipo incorrecto {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "Activar el chat del juego en red" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Activo" @@ -1125,7 +1126,7 @@ msgstr "Cola de hilos activos" msgid "Active threads" msgstr "Hilos activos" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adaptador" @@ -1155,8 +1156,8 @@ msgstr "Añadir nuevo servidor DSU" msgid "Add New USB Device" msgstr "Añadir dispositivo USB" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Añadir acceso directo al escritorio" @@ -1183,18 +1184,18 @@ msgstr "Añadir punto de interrupción de memoria" msgid "Add to &watch" msgstr "Añadir a &variables vigiladas" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Añadir a variables vigiladas" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Añadir..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1295,10 +1296,15 @@ msgstr "África" msgid "Aligned to data type length" msgstr "Alineación a la longitud del tipo de datos" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1306,20 +1312,37 @@ msgid "All Files" msgstr "Todos los archivos" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Todos los archivos (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos los archivos GC/Wii" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos los estados guardados (*.sav *.s##);; Todos los archivos (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Todos los dispositivos" @@ -1340,7 +1363,7 @@ msgstr "Todos las partidas guardadas de los jugadores sincronizados." msgid "Allow Mismatched Region Settings" msgstr "Permitir configuración de región independiente" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Permitir informes de estadísticas de uso" @@ -1364,7 +1387,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Fuentes de entrada alternativas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Siempre" @@ -1420,7 +1443,7 @@ msgstr "Suavizado de bordes:" msgid "Any Region" msgstr "Cualquier región" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Añadir firma a" @@ -1449,7 +1472,7 @@ msgstr "Fecha del «apploader»:" msgid "Apply" msgstr "Aplicar" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Aplicar archivo de firma" @@ -1461,7 +1484,7 @@ msgstr "Detección arbitraria de mipmaps" msgid "Are you sure that you want to delete '%1'?" msgstr "¿Seguro que quieres borrar «%1»?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "¿Seguro que quieres borrar este archivo?" @@ -1477,7 +1500,7 @@ msgstr "¿Seguro que quieres salir del juego en red?" msgid "Are you sure?" msgstr "¿Seguro que quieres continuar?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Relación de aspecto" @@ -1494,7 +1517,7 @@ msgstr "Asignar números de puerto para mandos" msgid "Assign Controllers" msgstr "Asignar mandos" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1561,11 +1584,11 @@ msgstr "Autoajustar tamaño de ventana" msgid "Auto-Hide" msgstr "Ocultar automáticamente" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "¿Autodetectar módulos RSO?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1598,7 +1621,7 @@ msgstr "" "Se debe usar una dirección MAC válida. Genera una nueva empezando con 00:09:" "bf o 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1610,7 +1633,7 @@ msgstr "Registro BP" msgid "Back Chain" msgstr "Secuencia regresiva" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Motor" @@ -1663,7 +1686,7 @@ msgstr "Ajuste proporcionado incorrecto." msgid "Bad value provided." msgstr "El valor elegido no es correcto." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1698,7 +1721,7 @@ msgstr "Ajustes básicos" msgid "Bass" msgstr "Bajo" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Modo Lote no puede ser usado sin especificar un juego para ejecutar." @@ -1730,7 +1753,7 @@ msgstr "SSL binario (escribir)" msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1774,11 +1797,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Arrancar pausado" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Archivo de respaldo BootMii NAND (*.bin);;Todos los archivos (*) " -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Archivo de claves BootMii (*.bin);;Todos los archivos (*)" @@ -1786,7 +1809,7 @@ msgstr "Archivo de claves BootMii (*.bin);;Todos los archivos (*)" msgid "Borderless Fullscreen" msgstr "Pantalla completa sin bordes" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Inferior" @@ -1814,7 +1837,7 @@ msgid "Breakpoint encountered! Step out aborted." msgstr "" "Se ha encontrado un punto de interrupción. Salto de instrucciones cancelado." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Puntos de interrupción" @@ -1848,12 +1871,12 @@ msgstr "Buscar sesiones de juego en red..." msgid "Buffer Size:" msgstr "Tamaño de búfer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "El tamaño del búfer ha cambiado a %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Búfer:" @@ -1979,7 +2002,7 @@ msgstr "Cámara 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Campo de visión de la cámara (afecta a la sensibilidad del apuntado)" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" "Solo se puede generar un código AR para aquellos valores que se encuentren " @@ -1991,14 +2014,14 @@ msgstr "" "No se puede encontrar ningún mando de Wii con el identificador de conexión " "{0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "No puedes empezar el juego en red con un juego en ejecución." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2026,7 +2049,7 @@ msgstr "No se puede comparar con el último valor en la primera búsqueda." msgid "Cannot find the GC IPL." msgstr "No se puede encontrar el IPL de GC" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "No se puede generar el código AR para esta dirección." @@ -2052,7 +2075,7 @@ msgstr "Centrar" msgid "Center and Calibrate" msgstr "Centrar y calibrar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Cambiar &disco" @@ -2068,7 +2091,7 @@ msgstr "Cambiar disco" msgid "Change Discs Automatically" msgstr "Cambiar discos automáticamente" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Cambiar al disco {0}" @@ -2130,7 +2153,7 @@ msgstr "Comprobar en segundo plano si hay cambios en la lista de juegos" msgid "Check for updates" msgstr "Buscar actualizaciones" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2146,16 +2169,19 @@ msgstr "Suma de verificación" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Escoge un archivo para abrir" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Escoger archivo de entrada principal" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Escoger archivo de entrada secundario" @@ -2180,7 +2206,7 @@ msgstr "Mando clásico" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Borrar" @@ -2233,7 +2259,7 @@ msgstr "El código ha sido ejecutado" msgid "Code:" msgstr "Código:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "¡Códigos recibidos!" @@ -2258,7 +2284,7 @@ msgstr "Compilar sombreadores antes de jugar" msgid "Compiling Shaders" msgstr "Compilación de sombreadores" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2310,23 +2336,23 @@ msgstr "Configurar salida" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmar" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Confirmar cambio de motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmar detención" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2382,7 +2408,7 @@ msgstr "" msgid "Connected" msgstr "Conectado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Conectando" @@ -2509,11 +2535,11 @@ msgstr "Convergencia:" msgid "Convert" msgstr "Convertir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Convertir archivo..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Convertir archivos seleccionados..." @@ -2544,9 +2570,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Copiar" @@ -2558,41 +2584,37 @@ msgstr "Copiar &función" msgid "Copy &hex" msgstr "Copiar código &hexadecimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Copiar dirección" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Se produjo un fallo al copiar" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copiar en hexadecimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Copiar valor" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "Copiar código de &línea" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Se produjo un fallo al copiar" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "Copiar dirección ob&jetivo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Copiar a A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" -msgstr "Copia a B" +msgstr "Copiar a B" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:208 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:83 @@ -2634,7 +2656,7 @@ msgstr "" "No se han podido descargar la información de actualización de Nintendo, " "comprueba tu conexión a Internet y prueba otra vez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2645,7 +2667,7 @@ msgstr "" "\n" "La consola emulada se detendrá ahora." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2706,7 +2728,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "No se puede reconocer el archivo {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2726,15 +2748,15 @@ msgstr "" "Si es así, entonces es posible que tengas que volver a especificar la " "ubicación de la tarjeta de memoria en las opciones." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "No se pudo encontrar el servidor central" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "No se pudo abrir el archivo." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "No se pudo leer el archivo." @@ -2797,7 +2819,7 @@ msgstr "Deslizador del mezclador" msgid "Current Region" msgstr "Región actual" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Valor actual" @@ -2906,23 +2928,23 @@ msgstr "Transferencia de datos" msgid "Data Type" msgstr "Tipo de datos" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Datos en área de archivo que deberian ser sin uso" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Los datos están en un formato no reconocido o está corruptos" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Inconsistencia de datos en GCMemcardManager, cancelando acción." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "¡Datos recibidos!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Archivos Datel MaxDrive/Pro" @@ -3030,21 +3052,21 @@ msgstr "" "desactivada.
" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Borrar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Borrar archivo..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Borrar archivos seleccionados..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "¿Borrar el archivo «{0}»?" @@ -3060,10 +3082,10 @@ msgstr "Porcentaje de profundidad:" msgid "Depth:" msgstr "Profundidad:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3083,7 +3105,7 @@ msgstr "Separado" msgid "Detect" msgstr "Detectar" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Detección de módulos RSO" @@ -3104,7 +3126,7 @@ msgstr "Dispositivo" msgid "Device PID (e.g., 0305)" msgstr "PID del dispositivo (por ejemplo: 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Ajustes de dispositivos" @@ -3157,8 +3179,8 @@ msgstr "" msgid "Dis&connected" msgstr "Des&conectado" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Desactivar" @@ -3269,26 +3291,26 @@ msgstr "Distancia" msgid "Distance of travel from neutral position." msgstr "Distancia de desplazamiento desde la posición neutral." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "¿Nos permites compartir estadísticas con los desarrolladores de Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "¿Quieres añadir «%1» a la lista de carpetas de juegos?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "¿Seguro que quieres borrar la lista de nombres simbólicos?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "¿Quieres borrar el(los) %n archivo(s) de guardado elegido(s)?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "¿Quieres detener la emulación?" @@ -3305,9 +3327,9 @@ msgstr "Registro FIFO de Dolphin (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Preajuste de modificación de juego para Dolphin" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Archivo de mapa de Dolphin (*.map)" @@ -3319,8 +3341,8 @@ msgstr "Archivo de firma CSV de Dolphin" msgid "Dolphin Signature File" msgstr "Archivo de firma de Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Grabación TAS de Dolphin (*.dtm)" @@ -3344,7 +3366,7 @@ msgstr "" "\n" "¿Quieres continuar de todos modos?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3364,7 +3386,7 @@ msgstr "Dolphin no ha podido completar la acción solicitada." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin es un emulador de GameCube y Wii de código abierto." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" "La versión de Dolphin es demasiado antigua para utilizar el servidor de paso" @@ -3434,7 +3456,7 @@ msgstr "Descargar códigos" msgid "Download Codes from the WiiRD Database" msgstr "Descargar códigos desde la base de datos de WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Descargar las carátulas de GameTDB.com para el modo cuadrícula" @@ -3633,7 +3655,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Duración de liberación del botón turbo (fotogramas)" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holandés" @@ -3714,7 +3736,7 @@ msgstr "Búfer de imagen integrado (EFB)" msgid "Empty" msgstr "Vacía" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "El hilo de emulación ya está ejecutándose" @@ -3749,8 +3771,8 @@ msgstr "Es necesario empezar la emulación para poder grabar." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Habilitar" @@ -3800,7 +3822,7 @@ msgid "Enable Progressive Scan" msgstr "Activar escaneo progresivo" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Activar vibración" @@ -3957,7 +3979,7 @@ msgstr "" msgid "Encoding" msgstr "Codificando..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3975,7 +3997,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet no se inició" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Inglés" @@ -4010,7 +4032,7 @@ msgstr "Ingrese la nueva dirección MAC del adaptador de banda ancha:" msgid "Enter password" msgstr "Introduce la contraseña" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Escribe la dirección del módulo RSO:" @@ -4022,7 +4044,7 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4041,46 +4063,47 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -4103,11 +4126,11 @@ msgstr "Error al obtener la lista de sesiones: %1" msgid "Error occurred while loading some texture packs" msgstr "Error al cargar algunos packs de texturas" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Error al procesar los códigos." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Error en el procesamiento de datos." @@ -4127,7 +4150,7 @@ msgstr "¡Error al sincronizar los datos guardados!" msgid "Error writing file: {0}" msgstr "Error escribiendo el archivo: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4300,10 +4323,10 @@ msgstr "Experimental" msgid "Export All Wii Saves" msgstr "Exportar todas las partidas guardadas de Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Hubo un fallo al exportar" @@ -4315,19 +4338,19 @@ msgstr "Exportar grabación" msgid "Export Recording..." msgstr "Exportar grabación..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Exportar partida guardada" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Exportar archivos de guardado" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Exportar guardado de Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Exportar guardados de Wii" @@ -4339,7 +4362,7 @@ msgstr "Exportar como .&gcs..." msgid "Export as .&sav..." msgstr "Exportar como .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4413,7 +4436,7 @@ msgstr "Reproductor FIFO" msgid "Failed loading XML." msgstr "No se ha podido cargar el archivo XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4425,19 +4448,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "No se ha podido añadir esta sesión al índice de juego en red: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "No se ha podido añadir al archivo de firma «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "No se ha podido controlar la interfaz para el acceso directo a BT" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "No se ha podido conectar con redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "No se ha podido conectar al servidor: %1" @@ -4471,11 +4494,11 @@ msgstr "" "No se ha podido borrar la tarjeta de memoria del juego en red. Comprueba tus " "permisos de escritura." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "No se ha podido borrar el archivo seleccionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "No se ha podido desvincular el controlador del kernel para ejecutar el " @@ -4494,16 +4517,16 @@ msgid "Failed to dump %1: Failed to write to file" msgstr "" "No se ha podido volcar %1: no se han podido escribir los datos en el archivo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "No se ha(n) podido exportar %n de %1 archivo(s) de guardado." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "No se ha podido exportar los siguientes archivos de guardado:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "No se ha podido extraer los certificados de la NAND." @@ -4529,18 +4552,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "No se ha podido encontrar uno o más símbolos D3D" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "No se ha podido importar «%1»." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "No se ha podido importar el archivo de guardado. Por favor, lanza el juego " "otra vez, e inténtalo de nuevo." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4548,7 +4571,7 @@ msgstr "" "No se ha podido importar el archivo de guardado. El archivo parece estar " "corrupto o no es un archivo válido de Wii." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4559,7 +4582,7 @@ msgstr "" "contiene. Prueba a reparar tu NAND (Herramientas -> Administrar NAND -> " "Comprobar NAND...) y a importar los datos de guardado otra vez." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "No se ha podido iniciar el núcleo" @@ -4582,12 +4605,12 @@ msgstr "No se han podido iniciar las clases de renderizado" msgid "Failed to install pack: %1" msgstr "No se ha podido instalar el paquete: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "No se ha podido instalar el juego en la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4595,8 +4618,8 @@ msgstr "" "No se ha podido recibir conexiones en el puerto %1. ¿Hay otra instancia del " "servidor de juego en red funcionando?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "No se ha podido cargar el módulo RSO en %1" @@ -4608,7 +4631,7 @@ msgstr "No se ha podido cargar d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "No se ha podido cargar dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "No se ha podido cargar el archivo de mapa «%1»" @@ -4624,13 +4647,13 @@ msgstr "" "No se ha podido cargar {0}. Si utilizas Windows 7, prueba a instalar el " "paquete de actualización KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "No se ha podido abrir «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "No se ha podido abrir el dispositivo Bluetooth: {0}" @@ -4655,11 +4678,11 @@ msgstr "" "No se ha podido abrir el archivo en el editor externo.\n" "Asegúrate de que haya una aplicación asignada para abrir archivos INI." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "No se ha podido abrir el archivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "No se ha podido contactar con el servidor" @@ -4668,7 +4691,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "No se ha podido abrir el archivo de entrada \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4692,26 +4715,26 @@ msgstr "" msgid "Failed to read DFF file." msgstr "No se ha podido leer el archivo DFF." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "No se ha podido leer desde el archivo." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "No se ha podido leer el archivo de entrada «{0}»." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" "No se han podido leer los archivos seleccionados de la tarjeta de memoria." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "No se ha podido leer {0}." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "No se ha podido eliminar el archivo" @@ -4725,7 +4748,7 @@ msgstr "" "\n" "¿Quieres convertirlo sin eliminarlos?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "No se ha podido desinstalar el juego de la NAND." @@ -4751,19 +4774,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "No se ha podido guardar el registro FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "No se ha podido guardar el mapa de código en la ruta '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "No se ha podido guardar el archivo de firma '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "No se ha podido guardar el mapa de símbolos en la ruta '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "No se ha podido guardar en el archivo de firma '%1'" @@ -4787,9 +4810,9 @@ msgstr "No se ha podido escribir el guardado de Wii." msgid "Failed to write config file!" msgstr "¡No se ha podido escribir el archivo de configuración!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "No se ha podido escribir la tarjeta de memoria modificada en el disco." @@ -4797,12 +4820,12 @@ msgstr "No se ha podido escribir la tarjeta de memoria modificada en el disco." msgid "Failed to write redirected save." msgstr "No se ha podido escribir la partida guardada redirigida." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "No se ha podido escribir el guardado en el disco" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4810,10 +4833,10 @@ msgstr "" "No se ha podido escribir el archivo de salida «{0}».\n" "Comprueba que tienes espacio suficiente disponible en la unidad de destino." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Fallido" @@ -4838,7 +4861,7 @@ msgstr "Rápida" msgid "Fast Depth Calculation" msgstr "Cálculo de profundidad rápido" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4855,7 +4878,7 @@ msgstr "Campo visual" msgid "File Details" msgstr "Detalles del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4869,19 +4892,19 @@ msgstr "Formato del archivo:" msgid "File Info" msgstr "Información del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nombre del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Ruta del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Tamaño del archivo" @@ -4910,13 +4933,13 @@ msgstr "" "Archivos especificados en el archivo M3U «{0}» no fueron encontrados:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "El tamaño del archivo no coincide con ningún tamaño conocido de tarjetas de " "memoria de GameCube." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "El tamaño del archivo en el encabezado no coincide con el tamaño de la " @@ -4975,7 +4998,7 @@ msgstr "Primera persona" msgid "Fix Checksums" msgstr "Reparar sumas de verificación" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Error al reparar las sumas de verificación" @@ -4985,7 +5008,7 @@ msgstr "Alineación fija" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Indicadores" @@ -5143,11 +5166,11 @@ msgstr "Fotogramas a grabar:" msgid "France" msgstr "Francia" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Bloques libres: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Archivos libres: %1" @@ -5189,7 +5212,7 @@ msgid "Freelook Toggle" msgstr "Interruptor de cámara libre" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francés" @@ -5218,7 +5241,7 @@ msgstr "Desde:" msgid "FullScr" msgstr "Pant. completa" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Función" @@ -5250,7 +5273,7 @@ msgstr "Núcleo de GBA" msgid "GBA Port %1" msgstr "Puerto %1 GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "Ajustes de GBA" @@ -5262,11 +5285,11 @@ msgstr "Volumen de GBA" msgid "GBA Window Size" msgstr "Tamaño de la ventana de GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "ROM GBA%1 cambiada a \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "ROM GBA%1 desactivada" @@ -5399,11 +5422,11 @@ msgstr "Juego" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartuchos de Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5427,7 +5450,7 @@ msgstr "Detalles del juego:" msgid "Game Folders" msgstr "Carpetas de juego" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Id. de juego" @@ -5441,11 +5464,25 @@ msgstr "Id. de juego:" msgid "Game Status" msgstr "Estado del juego" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Juego cambiado a «%1»" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "¡El juego ya está ejecutándose!" @@ -5456,6 +5493,10 @@ msgstr "" "El juego se sobrescribió con los datos de guardado de otro juego. Corrupción " "de datos inminente {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Ajustes específicos del juego " @@ -5496,12 +5537,12 @@ msgstr "Configuración del teclado GameCube en el puerto %1" msgid "GameCube Memory Card Manager" msgstr "Administrar tarjetas de memoria de GameCube" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "Tarjetas de memoria de GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Tarjetas de memoria de GameCube (*.raw *.gcp)" @@ -5534,7 +5575,7 @@ msgstr "General" msgid "General and Options" msgstr "Ajustes generales" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Generar código «ActionReplay»" @@ -5542,16 +5583,16 @@ msgstr "Generar código «ActionReplay»" msgid "Generate a New Statistics Identity" msgstr "Generar un nuevo identificador para estadísticas" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Se ha generado el código AR." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Nombres de símbolos generados desde «%1»" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Alemán" @@ -5560,14 +5601,14 @@ msgstr "Alemán" msgid "Germany" msgstr "Alemania" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Ir a" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Modo golf" @@ -5745,15 +5786,15 @@ msgstr "" "Adecuado para juegos casuales con más de 3 jugadores, posiblemente en " "conexiones inestables o de alta latencia." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Autorización de entrada del host deshabilitada" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Autorización de entrada del host activada" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Anfitrión con juego en red" @@ -5771,7 +5812,7 @@ msgstr "Ajustes de atajos" msgid "Hotkeys" msgstr "Atajos del teclado" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" "Reconocer los atajos de teclado solo cuando la ventana esté en primer plano" @@ -5823,7 +5864,7 @@ msgstr "" msgid "IP Address:" msgstr "Dirección IP:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Ajustes del IPL" @@ -5832,7 +5873,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilidad IR:" @@ -5888,7 +5929,7 @@ msgstr "" msgid "Identity Generation" msgstr "Generación de identidad" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5952,7 +5993,7 @@ msgstr "Ignorar" msgid "Ignore Format Changes" msgstr "Ignorar cambios de formato" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignorar por esta vez" @@ -6004,14 +6045,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importar copia BootMii NAND de respaldo..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Se produjo un fallo al importar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importar archivo(s) de guardado" @@ -6019,11 +6060,11 @@ msgstr "Importar archivo(s) de guardado" msgid "Import Wii Save..." msgstr "Importar partidas guardadas de Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Se está importando la copia de respaldo NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6102,21 +6143,21 @@ msgid "Info" msgstr "Información" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Información" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Desactivar salvapantallas durante la emulación" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Entrada" @@ -6161,7 +6202,7 @@ msgstr "Instalar actualización" msgid "Install WAD..." msgstr "Instalar WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Instalar en la NAND" @@ -6177,7 +6218,7 @@ msgstr "Instrucción" msgid "Instruction Breakpoint" msgstr "Punto de interrupción de instrucción" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instrucción:" @@ -6226,7 +6267,7 @@ msgstr "Resolución interna" msgid "Internal Resolution:" msgstr "Resolución interna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Error interno al generar el código AR." @@ -6238,7 +6279,7 @@ msgstr "Intérprete (muy lento)" msgid "Interpreter Core" msgstr "Intérprete de núcleo" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Expresión incorrecta." @@ -6255,7 +6296,7 @@ msgstr "Paquete %1 no válido proporcionado: %2" msgid "Invalid Player ID" msgstr "Id. de jugador incorrecto" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Dirección de módulo RSO incorrecta: %1" @@ -6263,7 +6304,7 @@ msgstr "Dirección de módulo RSO incorrecta: %1" msgid "Invalid callstack" msgstr "La pila de llamadas («callstack») no es válida" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Sumas de verificación incorrectas." @@ -6271,7 +6312,7 @@ msgstr "Sumas de verificación incorrectas." msgid "Invalid game." msgstr "El juego no es válido." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Host no válido" @@ -6280,7 +6321,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Los datos introducidos en «%1» no son válidos" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Los datos introducidos no son válidos" @@ -6313,7 +6354,7 @@ msgid "Invalid search string (only even string lengths supported)" msgstr "" "La cadena de búsqueda no es válida (solo se permiten tamaños de texto pares)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "ID. de juego incorrecto." @@ -6322,7 +6363,7 @@ msgid "Invalid watch address: %1" msgstr "Dirección inválida: 1%" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiano" @@ -6429,7 +6470,7 @@ msgstr "Japonés" msgid "Japanese (Shift-JIS)" msgstr "Japonés (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Mantener siempre en primer plano" @@ -6497,7 +6538,7 @@ msgstr "Guardar LR" msgid "Label" msgstr "Etiqueta" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Último valor" @@ -6601,7 +6642,7 @@ msgstr "Escuchando" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Cargar" @@ -6736,7 +6777,7 @@ msgstr "Cargar estado desde una ranura" msgid "Load Wii Save" msgstr "Cargar partida de Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Cargar menú del sistema Wii %1" @@ -6748,8 +6789,8 @@ msgstr "Cargar desde la ranura seleccionada" msgid "Load from Slot %1 - %2" msgstr "Cargar desde la ranura %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Cargar archivo de mapa" @@ -6757,7 +6798,7 @@ msgstr "Cargar archivo de mapa" msgid "Load..." msgstr "Cargar..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Símbolos cargados desde «%1»" @@ -6776,7 +6817,7 @@ msgstr "" msgid "Local" msgstr "Local" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Bloquear cursor del ratón" @@ -6805,7 +6846,7 @@ msgstr "Tipos de registro" msgid "Logger Outputs" msgstr "Salida de registro" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6820,7 +6861,7 @@ msgstr "" msgid "Loop" msgstr "Bucle" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Se ha perdido la conexión con el servidor de juego en red..." @@ -6849,7 +6890,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "TERMINANDO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "Archivos Gameshark de MadCatz" @@ -6857,7 +6898,7 @@ msgstr "Archivos Gameshark de MadCatz" msgid "Main Stick" msgstr "Palanca principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6901,11 +6942,11 @@ msgstr "Enmascarar ROM" msgid "Match Found" msgstr "Se han encontrado coincidencias" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Búfer máximo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "El tamaño máximo del búfer ha cambiado a %1" @@ -6939,23 +6980,6 @@ msgstr "Tarjeta de memoria" msgid "Memory Card Manager" msgstr "Administrador de tarjetas de memoria" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"El nombre del archivo de la tarjeta de memoria en la ranura {0} es " -"incorrecto\n" -"No se ha especificado ninguna región.\n" -"\n" -"La ruta de la ranura {1} se ha cambiado a\n" -"{2}\n" -"¿Quieres copiar el viejo archivo a esta nueva dirección?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Control manual de la memoria" @@ -6964,19 +6988,19 @@ msgstr "Control manual de la memoria" msgid "Memory breakpoint options" msgstr "Opciones de punto de interrupción en memoria" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: Borrado de bloque en dirección incorrecta ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: Lectura en dirección de destino incorrecta ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Escritura en dirección de destino incorrecta ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7005,17 +7029,17 @@ msgstr "Varios" msgid "Misc Settings" msgstr "Otros ajustes" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Discrepancia entre el conteo de bloques libres en encabezado y los bloques " "actualmente no usados." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "No coinciden las estructuras de datos internas." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7049,8 +7073,8 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Módulos encontrados: %1" @@ -7079,22 +7103,22 @@ msgstr "Simulación de movimiento" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Visibilidad del cursor del ratón" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" "El cursor del ratón se ocultará al estar inactivo y volverá a aparecer " "cuando se mueva." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "El cursor del ratón será visible en todo momento." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "El cursor del ratón no se mostrará mientras se esté ejecutando un juego." @@ -7109,14 +7133,20 @@ msgstr "Mover" msgid "Movie" msgstr "Grabación" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&o a todo" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Verificar NAND" @@ -7147,11 +7177,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nombre" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Nombre para una nueva etiqueta:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Nombre de la etiqueta a eliminar:" @@ -7172,8 +7202,8 @@ msgstr "Nombre:" msgid "Native (640x528)" msgstr "Nativa (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Archivo GCI nativo" @@ -7193,11 +7223,11 @@ msgstr "Configuración de juego en red" msgid "Netherlands" msgstr "Países Bajos" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "El juego en red se ha desincronizado en «NetPlay_GetButtonPress()»" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Juego en red desincronizado. No hay forma de recuperarlo." @@ -7210,7 +7240,7 @@ msgstr "Red" msgid "Network dump format:" msgstr "Formato del volcado de red:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Nunca" @@ -7218,7 +7248,7 @@ msgstr "Nunca" msgid "Never Auto-Update" msgstr "Sin actualizaciones automáticas" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Nuevo" @@ -7231,7 +7261,7 @@ msgstr "Añadir punto de interrupción" msgid "New Search" msgstr "Nueva búsqueda" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Nueva etiqueta..." @@ -7243,7 +7273,7 @@ msgstr "Se ha generado un identificador nuevo." msgid "New instruction:" msgstr "Nueva instrucción:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Nueva etiqueta" @@ -7300,13 +7330,13 @@ msgstr "Sin coincidencias" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Sin descripción" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Sin errores" @@ -7326,10 +7356,14 @@ msgstr "No hay ningún juego en ejecución." msgid "No game running." msgstr "No hay ningún juego en ejecución." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "No se ha detectado ningún problema." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "No se encontraron rutas en el archivo M3U «{0}»" @@ -7361,7 +7395,7 @@ msgstr "No se han encontrado perfiles para la configuración del juego «{0}»" msgid "No recording loaded." msgstr "No hay grabación cargada." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "No se encontraron datos de guardado." @@ -7383,10 +7417,6 @@ msgstr "Ninguno" msgid "North America" msgstr "Norteamérica" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "No se ha encontrado" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "No definido" @@ -7395,7 +7425,7 @@ msgstr "No definido" msgid "Not all players have the game. Do you really want to start?" msgstr "Algunos jugadores no tienen el juego. ¿Seguro que quieres continuar?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7405,7 +7435,7 @@ msgstr "" "No hay suficientes bloques libres en la tarjeta de memoria elegida. Se " "requiere(n) al menos %n bloque(s) libre(s)." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7415,6 +7445,10 @@ msgstr "" "No hay suficientes archivos libres en la tarjeta de memoria elegida. Se " "requiere(n) al menos %n archivo(s) libre(s)." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7469,7 +7503,7 @@ msgstr "Orientación del Nunchuk" msgid "Nunchuk Stick" msgstr "Palanca del Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7500,7 +7534,7 @@ msgstr "Ajuste" msgid "On" msgstr "Encendido" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Al moverlo" @@ -7508,7 +7542,7 @@ msgstr "Al moverlo" msgid "Online &Documentation" msgstr "&Documentación en línea" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7516,7 +7550,7 @@ msgstr "" "Solo añadir símbolos con prefijo:\n" "(Dejar en blanco para añadir todos los símbolos)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7529,7 +7563,7 @@ msgstr "" msgid "Open" msgstr "Abrir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Abrir &carpeta contenedora" @@ -7541,7 +7575,7 @@ msgstr "Abrir directorio..." msgid "Open FIFO log" msgstr "Abrir registro FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Abrir Carpeta de &Guardado de GameCube" @@ -7549,7 +7583,7 @@ msgstr "Abrir Carpeta de &Guardado de GameCube" msgid "Open Riivolution XML..." msgstr "Abrir XML de Riivolution..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Abrir Carpeta de &Guardado de Wii" @@ -7737,7 +7771,7 @@ msgstr "Pausa" msgid "Pause at End of Movie" msgstr "Pausar al terminar la grabación" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pausar al pasar a segundo plano" @@ -7764,7 +7798,7 @@ msgstr "Iluminación por píxel" msgid "Perform Online System Update" msgstr "Actualizar la consola por Internet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Actualizar la consola" @@ -7782,7 +7816,7 @@ msgstr "Espacio de la dirección física" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Elige una tipografía de depuración" @@ -7798,7 +7832,7 @@ msgstr "Cabeceo hacia arriba" msgid "Pitch Up" msgstr "Cabeceo hacia abajo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7846,7 +7880,7 @@ msgstr "Puntero" msgid "Port %1" msgstr "Puerto %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "ROM del puerto %1:" @@ -7855,7 +7889,7 @@ msgstr "ROM del puerto %1:" msgid "Port:" msgstr "Puerto:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Posible desincronización: podemos haber perdido a %1 en el fotograma %2" @@ -7876,15 +7910,15 @@ msgstr "Configuración del sombreador de posprocesado" msgid "Prefetch Custom Textures" msgstr "Precargar texturas personalizadas" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Final prematuro de la grabación en PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Final prematuro de la grabación en PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Final prematuro de la grabación en PlayWiimote. {0} > {1} " @@ -7909,7 +7943,7 @@ msgstr "Pulsa el botón de sincronización" msgid "Pressure" msgstr "Presión" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -8001,7 +8035,7 @@ msgstr "Público" msgid "Purge Game List Cache" msgstr "Vaciar la caché de la lista de juegos" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Debes guardar tus ROMs del IPL en User/GC/." @@ -8028,8 +8062,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pregunta" @@ -8057,7 +8091,7 @@ msgstr "Listo" msgid "RSO Modules" msgstr "Módulos RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Autodetección RSO" @@ -8211,12 +8245,12 @@ msgstr "" msgid "Refreshed current values." msgstr "Se han actualizado los valores actuales." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Actualizando..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8246,12 +8280,12 @@ msgstr "Recordar más tarde" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Eliminar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Eliminación fallida" @@ -8259,11 +8293,11 @@ msgstr "Eliminación fallida" msgid "Remove Junk Data (Irreversible):" msgstr "Eliminar datos basura (irreversible):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Eliminar etiqueta..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Eliminar etiqueta" @@ -8282,7 +8316,7 @@ msgstr "" msgid "Rename symbol" msgstr "Renombrar símbolo" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Ventana de renderización" @@ -8365,7 +8399,7 @@ msgstr "Administrador de paquetes de recursos" msgid "Resource Pack Path:" msgstr "Ruta de paquetes de recursos:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Es necesario reiniciar." @@ -8377,7 +8411,7 @@ msgstr "Restaurar valores predeterminados" msgid "Restore instruction" msgstr "Restaurar instrucción" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Reintentar" @@ -8483,7 +8517,7 @@ msgstr "Vibración" msgid "Run &To Here" msgstr "Ejecutar has&ta aquí" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Ejecutar los núcleos de GBA en hilos dedicados" @@ -8515,7 +8549,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8544,7 +8578,7 @@ msgstr "Segura" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8554,9 +8588,9 @@ msgstr "Guardar" msgid "Save All" msgstr "Guardar todo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportar guardado" @@ -8577,11 +8611,11 @@ msgstr "Guardado de juego" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Archivos de guardado de juegos (*.sav);; Todos los archivos (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Importar guardado" @@ -8593,7 +8627,7 @@ msgstr "Guardar el estado más antiguo" msgid "Save Preset" msgstr "Guardar preajuste" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Guardar archivo de grabación como" @@ -8679,11 +8713,11 @@ msgstr "Guardar como preajuste..." msgid "Save as..." msgstr "Guardar como..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Guardar archivo de salida combinado como" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8694,15 +8728,15 @@ msgstr "" "de sobrescribirlos.\n" "¿Sobreescribir ahora?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Guardar en el mismo directorio que la ROM" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Guardar archivo de mapa" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Guardar archivo de firmas" @@ -8724,11 +8758,11 @@ msgstr "" "Solo se pueden reemparejar los mandos de Wii en mitad de una partida con un " "juego para Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Guardados:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "El estado de la grabación {0} está dañado, deteniendo la grabación..." @@ -8783,7 +8817,7 @@ msgstr "Buscar una instrucción" msgid "Search games..." msgstr "Buscar juegos..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Búsqueda de instrucciones" @@ -8817,20 +8851,20 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "Seleccionar ruta de volcado" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Elige un directorio de exportación" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Elige la BIOS de GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Elige la ROM de GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Elige la ruta de los guardados de GBA" @@ -8910,7 +8944,7 @@ msgstr "Elige ruta WFS" msgid "Select Wii NAND Root" msgstr "Elige la carpeta raíz de la NAND de Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Elige un directorio" @@ -8918,9 +8952,9 @@ msgstr "Elige un directorio" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Elige un archivo" @@ -8940,7 +8974,7 @@ msgstr "Elige un archivo" msgid "Select a game" msgstr "Elige un juego" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Elige un juego para instalar en la NAND" @@ -8948,11 +8982,11 @@ msgstr "Elige un juego para instalar en la NAND" msgid "Select e-Reader Cards" msgstr "Elegir tarjetas e-Reader" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Elige la dirección del módulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Elige el archivo de grabación a reproducir" @@ -8960,12 +8994,12 @@ msgstr "Elige el archivo de grabación a reproducir" msgid "Select the Virtual SD Card Root" msgstr "Elige la carpeta raíz de la tarjeta SD virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Elige el archivo de claves (volcado OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecciona el archivo de guardado" @@ -8987,9 +9021,9 @@ msgstr "El perfil del mando seleccionado no existe" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "¡El juego seleccionado no existe en la lista de juegos!" @@ -9001,7 +9035,7 @@ msgstr "Pila de llamadas del hilo seleccionado" msgid "Selected thread context" msgstr "Contexto del hilo seleccionado" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -9010,7 +9044,7 @@ msgstr "" "

%1 no soporta esta característica." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -9056,7 +9090,7 @@ msgstr "" "

Si tienes dudas, selecciona OpenGL. " -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -9071,7 +9105,7 @@ msgstr "" "imagen al tamaño de la ventana.

Si tienes dudas, " "selecciona Automática." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -9093,7 +9127,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Posición de la barra sensora:" @@ -9117,7 +9151,7 @@ msgstr "Dirección IP del servidor" msgid "Server Port" msgstr "Puerto del servidor" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "El servidor de paso rechazó el intento de conexión" @@ -9138,15 +9172,15 @@ msgstr "Establecer PC" msgid "Set Value From File" msgstr "Establecer valor a partir de archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Establecer como ISO pred&eterminado" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Elige el archivo de la ranura A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Elige el archivo de la ranura B" @@ -9236,7 +9270,7 @@ msgstr "Mostrar ®istro" msgid "Show &Toolbar" msgstr "Mostrar barra de herramien&tas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Mostrar nombre del juego actual en el título de la ventana" @@ -9252,7 +9286,7 @@ msgstr "Australianos" msgid "Show Current Game on Discord" msgstr "Mostrar el juego actual en Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Ver opciones de depuración" @@ -9324,7 +9358,7 @@ msgstr "Mostrar latencia de juego en red" msgid "Show Netherlands" msgstr "Holandeses" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Mostrar mensajes en pantalla" @@ -9394,10 +9428,23 @@ msgstr "Mostrar juegos internacionales" msgid "Show in &memory" msgstr "Mostrar en &memoria" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Mostrar en código" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Mostrar en el navegador del servidor" @@ -9415,7 +9462,7 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9424,7 +9471,7 @@ msgstr "" "durante una partida de juego en red.

Si tienes " "dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Si tienes dudas, deja esta " "opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9529,7 +9576,7 @@ msgstr "Omitir dibujado" msgid "Skip EFB Access from CPU" msgstr "Omitir el acceso al EFB desde la CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Omitir menú principal" @@ -9561,7 +9608,7 @@ msgstr "Barra de desplazamiento" msgid "Slot A" msgstr "Ranura A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Ranura A:" @@ -9569,7 +9616,7 @@ msgstr "Ranura A:" msgid "Slot B" msgstr "Ranura B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Ranura B:" @@ -9625,7 +9672,7 @@ msgid "Spain" msgstr "España" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Español" @@ -9634,7 +9681,7 @@ msgstr "Español" msgid "Speaker Pan" msgstr "Altavoz estéreo" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volumen del altavoz:" @@ -9727,11 +9774,11 @@ msgstr "Empezar en pantalla completa" msgid "Start with Riivolution Patches" msgstr "Comenzar con parches de Riivolution" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Comenzar con parches de Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Juego en ejecución" @@ -9905,10 +9952,10 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Todo correcto" @@ -9926,16 +9973,16 @@ msgstr "Convertidas %n imágene(s)." msgid "Successfully deleted '%1'." msgstr "«%1» se ha borrado correctamente." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportados satisfactoriamente %n de %1 archivo(s) de guardado." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Las partidas guardadas se han exportado correctamente." -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Se han extraído satisfactoriamente los certificados de la NAND" @@ -9947,16 +9994,16 @@ msgstr "El archivo se ha extraído correctamente." msgid "Successfully extracted system data." msgstr "Los datos del sistema se han extraído correctamente." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Archivo de guardado importado correctamente." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "El juego se ha instalado correctamente en la NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Se ha desinstalado el juego de la NAND. " @@ -9964,7 +10011,7 @@ msgstr "Se ha desinstalado el juego de la NAND. " msgid "Support" msgstr "Ayuda" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Formatos de archivo soportados" @@ -10000,11 +10047,11 @@ msgstr "" msgid "Swing" msgstr "Oscilación" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Cambiar a A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Cambiar a B" @@ -10089,7 +10136,7 @@ msgstr "Sincronizando códigos Gecko..." msgid "Synchronizing save data..." msgstr "Sincronizando datos guardados..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Idioma del sistema:" @@ -10104,8 +10151,8 @@ msgstr "Entrada TAS" msgid "TAS Tools" msgstr "Herramientas TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10176,7 +10223,7 @@ msgstr "El archivo IPL no es un volcado correcto conocido. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "Faltan las particiones de los Clásicos" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10184,7 +10231,7 @@ msgstr "" "No se ha podido reparar la NAND. Recomendamos que vuelvas a volcar los datos " "de la consola original y pruebes otra vez desde cero." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND arreglada sin problemas." @@ -10243,11 +10290,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "No se pudo leer el disco (en {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "No se encontró el disco que se iba a insertar." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10281,11 +10328,11 @@ msgstr "El PID que has puesto no es correcto." msgid "The entered VID is invalid." msgstr "El VID que has puesto no es correcto." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "La expresión contiene un error de sintaxis" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10318,6 +10365,13 @@ msgid "The file {0} was already open, the file header will not be written." msgstr "" "El archivo {0} ya estaba abierto, la cabecera de archivo no será escrita." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "El sistema de archivo es incorrecto o no pudo ser leído." @@ -10438,7 +10492,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "El código AR descifrado que se ha obtenido no contiene ninguna línea." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10481,7 +10535,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "El archivo especificado «{0}» no existe" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "La tarjeta de memoria elegida ya contiene un archivo \"%1\"." @@ -10539,7 +10593,7 @@ msgstr "Hay demasiadas particiones en la primera tabla de particiones." msgid "There is nothing to undo!" msgstr "¡No hay nada que deshacer!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "Ha habido un problema al añadir el acceso directo al escritorio" @@ -10582,11 +10636,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Este dispositivo USB ya está en la lista." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "No se puede arrancar desde este WAD." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Este WAD no es correcto." @@ -10599,7 +10653,7 @@ msgstr "" "Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "No puede deshacerse." @@ -10728,7 +10782,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "No debes utilizarlo con juegos que no poseas legalmente." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Este juego no se puede arrancar." @@ -10741,7 +10795,7 @@ msgstr "Este título está configurado para utilizar un IOS no válido." msgid "This title is set to use an invalid common key." msgstr "Este título está configurado para utilizar una clave común no válida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10753,7 +10807,7 @@ msgstr "" "\n" "DSPHLE: ucode desconcocido (CRC = {0:08x}) - forzando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10829,7 +10883,7 @@ msgstr "" "Período de tiempo de entrada estable para activar la calibración. (cero para " "desactivar)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10871,7 +10925,7 @@ msgid "Toggle Aspect Ratio" msgstr "Alternar relación de aspecto" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Alternar punto de interrupción" @@ -10931,7 +10985,7 @@ msgstr "La tokenización falló." msgid "Toolbar" msgstr "Barra de herramientas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Superior" @@ -10983,8 +11037,8 @@ msgstr "Tocar" msgid "Traditional Chinese" msgstr "Chino tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Error del servidor de paso" @@ -10992,7 +11046,7 @@ msgstr "Error del servidor de paso" msgid "Traversal Server" msgstr "Servidor de paso" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" "Se agotó el tiempo para que el servidor de paso se conecte con el anfitrión " @@ -11020,7 +11074,7 @@ msgid "Triggers" msgstr "Gatillos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -11054,7 +11108,7 @@ msgstr "USB de Gecko" msgid "USB Whitelist Error" msgstr "Error en la lista de dispositivos USB permitidos" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -11065,7 +11119,7 @@ msgstr "" "equipos de gama baja.

Si tienes dudas, selecciona " "este modo." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -11078,7 +11132,7 @@ msgstr "" "imagen con los ubershaders híbridos y tengas una tarjeta gráfica muy potente." "
" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -11092,7 +11146,7 @@ msgstr "" "afectando mínimamente al rendimiento, pero los resultados dependerán del " "controlador de vídeo." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "No se puede detectar el módulo RSO" @@ -11152,11 +11206,11 @@ msgstr "Deshacer estado guardado" msgid "Uninstall" msgstr "Desinstalar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Desinstalar de la NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11175,11 +11229,11 @@ msgstr "Estados Unidos" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Desconocido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconocido de DVD {0:08x} - error fatal" @@ -11227,11 +11281,11 @@ msgstr "Disco desconocido" msgid "Unknown error occurred." msgstr "Se ha producido un error desconocido." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Error desconocido {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Error desconocido." @@ -11288,8 +11342,8 @@ msgstr "Entero sin signo" msgid "Up" msgstr "Arriba" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Actualizar" @@ -11351,11 +11405,11 @@ msgstr "Mando de Wii en vertical" msgid "Usage Statistics Reporting Settings" msgstr "Ajustes de envío de estadísticas de uso" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Utilizar base de datos interna de nombres de juegos" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Usar estilo personalizado por el usuario" @@ -11367,7 +11421,7 @@ msgstr "Usar códec sin pérdida (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usar modo PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Notificar de errores y advertencias" @@ -11463,11 +11517,11 @@ msgstr "" msgid "User Config" msgstr "Configuración del usuario" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Interfaz de usuario" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Estilo de usuario:" @@ -11499,7 +11553,7 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11510,7 +11564,7 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
Si no es así y tienes dudas, deja esta opción " "desactivada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11780,7 +11834,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Advertencia" @@ -11802,7 +11856,7 @@ msgstr "" "Advertencia: el número de bloques indicados por el BAT ({0}) no coincide con " "el del encabezado de archivo cargado ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11813,7 +11867,7 @@ msgstr "" "cargar otra partida antes de continuar o cargar esta sin el modo de solo " "lectura activo." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11823,7 +11877,7 @@ msgstr "" "del fotograma actual de la partida. (byte {0} < {1}) (fotograma {2} > {3}). " "Deberías cargar otra partida guardada antes de continuar." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11834,7 +11888,7 @@ msgstr "" "o cargar esta partida en el modo de solo lectura. De lo contrario, es muy " "probable que se desincronice." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11917,7 +11971,7 @@ msgstr "" "arbitrarios.
Si tienes dudas, deja esta opción activada." "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivos USB permitidos para acceso directo a Bluetooth" @@ -11963,7 +12017,7 @@ msgstr "Botones del mando de Wii" msgid "Wii Remote Orientation" msgstr "Orientación del mando de Wii" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Ajustes del mando de Wii" @@ -11991,7 +12045,7 @@ msgstr "Wii y su mando" msgid "Wii data is not public yet" msgstr "Los datos de Wii todavía no son públicos" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Archivos de guardado de Wii (*.bin);;Todos los archivos (*)" @@ -11999,7 +12053,7 @@ msgstr "Archivos de guardado de Wii (*.bin);;Todos los archivos (*)" msgid "WiiTools Signature MEGA File" msgstr "Archivo de firmas MEGA de WiiTools" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -12059,9 +12113,21 @@ msgstr "Escribir en registro y pausar" msgid "Write to Window" msgstr "Escribir en la ventana" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Versión incorrecta" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12143,19 +12209,6 @@ msgstr "" "\n" "¿Seguro que quieres continuar?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Estás tratando de usar el motor Vulkan (Metal) en un sistema operativo no " -"compatible. Tienes que utilizar la versión de macOS 10.14 (Mojave) o " -"superior para poder activar todas sus prestaciones. Por favor, no informes " -"de ningún problema que encuentres a no menos que también aparezcan en las " -"versiones 10.14 o posteriores." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "No hay actualizaciones disponibles en el canal elegido" @@ -12207,7 +12260,7 @@ msgstr "¡Debe proporcionar un nombre para su sesión!" msgid "You must provide a region for your session!" msgstr "¡Debes proporcionar una región para tu sesión!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Debes reiniciar Dolphin para que el cambio tenga efecto." @@ -12285,12 +12338,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll podría no haberse cargado." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "defecto" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "desconectado" @@ -12353,13 +12406,13 @@ msgstr "" msgid "none" msgstr "nada" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "no" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "sí" @@ -12396,7 +12449,7 @@ msgstr "sin alinear" msgid "{0} (Masterpiece)" msgstr "{0} (Clásico)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12423,7 +12476,7 @@ msgstr "" "Comprueba tus permisos de escritura o lleva el archivo fuera de Dolphin." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0}bloques de {1}. Ratio de compresión {2}%" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index 4b6572a402..7c707a4368 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -36,7 +36,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +165,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +214,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +277,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +369,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&JIT" msgstr "&جیت" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +524,7 @@ msgstr "مکث" msgid "&Play" msgstr "&شروع بازی" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "خواص" @@ -574,7 +574,7 @@ msgstr "" msgid "&Stop" msgstr "&توقف" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +604,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&ویکی" @@ -612,15 +612,15 @@ msgstr "&ویکی" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +657,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +849,7 @@ msgstr "" msgid "" msgstr "<هیچ>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +864,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +879,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1064,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1092,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "اضافه کردن..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1182,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1198,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1249,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1271,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1327,7 @@ msgstr "آنتی آلیاسینگ:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1353,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1365,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1381,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1398,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1459,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1490,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1502,7 @@ msgstr "ثبت اشاره گر پایه" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1555,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1590,7 @@ msgstr "تنظیمات بنیانی" msgid "Bass" msgstr "بم" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1622,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1664,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1676,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "پائین" @@ -1681,7 +1703,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1737,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "حافظه موقت:" @@ -1835,7 +1857,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1865,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1899,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1925,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1919,7 +1941,7 @@ msgstr "تعویض دیسک" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1993,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2007,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "انتخاب فایل برای باز کردن" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "پاک کردن" @@ -2072,7 +2097,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2122,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2174,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "تائید برای توقف" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2245,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2353,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2383,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2372,19 +2397,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2417,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "کپی با شکست مواجه شد" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2465,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2516,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2528,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2590,7 @@ msgstr "ضرب دری" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2693,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2811,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "حذف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2841,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2864,7 @@ msgstr "" msgid "Detect" msgstr "شناسایی" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2885,7 @@ msgstr "دستگاه" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "تنظیمات دستگاه" @@ -2911,8 +2932,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3026,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "آیا می خواهید برابرسازی فعلی را متوقف کنید؟" @@ -3040,9 +3061,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3075,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "فیلم های تاس دلفین (*.dtm)" @@ -3070,7 +3091,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3109,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3174,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3354,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "هلندی" @@ -3406,7 +3427,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "ریسمان شبیه ساز قبلا اجرا شده است" @@ -3438,8 +3459,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3510,7 @@ msgid "Enable Progressive Scan" msgstr "فعال کردن پويش تصاعدی (Progressive Scan)" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3601,7 +3622,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3614,7 +3635,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "انگلیسی" @@ -3647,7 +3668,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3659,7 +3680,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3678,46 +3699,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "خطا" @@ -3739,11 +3761,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3763,7 +3785,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3911,10 +3933,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3926,19 +3948,19 @@ msgstr "صادر کردن ضبط" msgid "Export Recording..." msgstr "صادر کردن ضبط..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3950,7 +3972,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4024,7 +4046,7 @@ msgstr "پخش کننده فیفو" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4034,19 +4056,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4076,11 +4098,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4096,16 +4118,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4128,29 +4150,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4170,19 +4192,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4194,7 +4216,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4208,13 +4230,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4236,11 +4258,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4249,7 +4271,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4269,25 +4291,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4298,7 +4320,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4318,19 +4340,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4354,9 +4376,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4364,21 +4386,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4403,7 +4425,7 @@ msgstr "سریع" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4418,7 +4440,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4432,19 +4454,19 @@ msgstr "" msgid "File Info" msgstr "مشخصات فایل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4471,11 +4493,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4525,7 +4547,7 @@ msgstr "" msgid "Fix Checksums" msgstr "درست کردن چک سام ها" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4535,7 +4557,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4673,11 +4695,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4715,7 +4737,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "فرانسوی" @@ -4744,7 +4766,7 @@ msgstr "" msgid "FullScr" msgstr "تمام صفحه" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4776,7 +4798,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4788,11 +4810,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4895,11 +4917,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4921,7 +4943,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4935,11 +4957,25 @@ msgstr "آی دی بازی:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "بازی قبلا اجرا شده است!" @@ -4948,6 +4984,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "تنظیمات مشخصات بازی" @@ -4988,12 +5028,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5026,7 +5066,7 @@ msgstr "کلی" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5034,16 +5074,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "آلمانی" @@ -5052,12 +5092,12 @@ msgstr "آلمانی" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5227,15 +5267,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5253,7 +5293,7 @@ msgstr "" msgid "Hotkeys" msgstr "شرت کاتها" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5298,7 +5338,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "تنظیمات آی پی ال" @@ -5307,7 +5347,7 @@ msgid "IR" msgstr "فروسرخ" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "میزان حساسیت فروسرخ" @@ -5344,7 +5384,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5387,7 +5427,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "تغییرات قالب بندی نادیده گرفته شود" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5424,14 +5464,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5439,11 +5479,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5515,21 +5555,21 @@ msgid "Info" msgstr "مشخصات" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "مشخصات" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "ورودی" @@ -5574,7 +5614,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5590,7 +5630,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5637,7 +5677,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "وضوح داخلی:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5649,7 +5689,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5666,7 +5706,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5674,7 +5714,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5682,7 +5722,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5691,7 +5731,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5723,7 +5763,7 @@ msgstr "رشته جستجوی نامعتبر (قادر به تبدیل به عد msgid "Invalid search string (only even string lengths supported)" msgstr "رشته جستجوی نامعتبر (فقط رشته های با طول زوج پشتیبانی می شود)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5732,7 +5772,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "ایتالیایی" @@ -5836,7 +5876,7 @@ msgstr "ژاپنی" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5904,7 +5944,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6002,7 +6042,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "بارگذاری" @@ -6137,7 +6177,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6149,8 +6189,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6158,7 +6198,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6173,7 +6213,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6202,7 +6242,7 @@ msgstr "انواع ثبت وقایع" msgid "Logger Outputs" msgstr "خروجی های واقعه نگار" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6213,7 +6253,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6242,7 +6282,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6250,7 +6290,7 @@ msgstr "" msgid "Main Stick" msgstr "استیک اصلی" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6289,11 +6329,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6327,16 +6367,6 @@ msgstr "کارت حافظه" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6345,19 +6375,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6383,15 +6413,15 @@ msgstr "متفرقه" msgid "Misc Settings" msgstr "تنظیمات متفرقه" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6414,8 +6444,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6444,20 +6474,20 @@ msgstr "" msgid "Motor" msgstr "موتور" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6471,14 +6501,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6509,11 +6545,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6534,8 +6570,8 @@ msgstr "اسم:" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6555,11 +6591,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6572,7 +6608,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6580,7 +6616,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6593,7 +6629,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6605,7 +6641,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6662,13 +6698,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "تشریحی دردسترس نیست" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6688,10 +6724,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6719,7 +6759,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6739,10 +6779,6 @@ msgstr "هیچ" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "ست نشده است" @@ -6751,7 +6787,7 @@ msgstr "ست نشده است" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6759,7 +6795,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6767,6 +6803,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6819,7 +6859,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6850,7 +6890,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6858,13 +6898,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6875,7 +6915,7 @@ msgstr "" msgid "Open" msgstr "گشودن" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6887,7 +6927,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6895,7 +6935,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7083,7 +7123,7 @@ msgstr "مکث" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7110,7 +7150,7 @@ msgstr "نورپردازی به ازای هر پیکسل" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7128,7 +7168,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7144,7 +7184,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7190,7 +7230,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7199,7 +7239,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7219,15 +7259,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7250,7 +7290,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7331,7 +7371,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7357,8 +7397,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "سوال" @@ -7386,7 +7426,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7531,12 +7571,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7566,12 +7606,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "پاک کردن" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7579,11 +7619,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7599,7 +7639,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7678,7 +7718,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7690,7 +7730,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7790,7 +7830,7 @@ msgstr "شوک" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7822,7 +7862,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7851,7 +7891,7 @@ msgstr "بی خطر" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7861,9 +7901,9 @@ msgstr "ذخیره" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7884,11 +7924,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7900,7 +7940,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7986,26 +8026,26 @@ msgstr "" msgid "Save as..." msgstr "ذخیره بعنوان..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8025,11 +8065,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8082,7 +8122,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8114,20 +8154,20 @@ msgstr "انتخاب" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8207,7 +8247,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8215,9 +8255,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8237,7 +8277,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8245,11 +8285,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8257,12 +8297,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "انتخاب فایل ذخیره" @@ -8284,9 +8324,9 @@ msgstr "پروفایل انتخاب شده وجود ندارد" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8298,13 +8338,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8331,7 +8371,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8340,7 +8380,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8354,7 +8394,7 @@ msgstr "" msgid "Send" msgstr "فرستادن" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "موقعیت سنسور بار:" @@ -8374,7 +8414,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8395,15 +8435,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8483,7 +8523,7 @@ msgstr "نمایش &ثبت وقایع" msgid "Show &Toolbar" msgstr "نمایش نوار &ابزار" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8499,7 +8539,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8571,7 +8611,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8641,10 +8681,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8659,20 +8712,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8759,7 +8812,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "از قلم انداختن دسترسی ای اف بی از پردازنده" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8785,7 +8838,7 @@ msgstr "" msgid "Slot A" msgstr "شکاف ای" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8793,7 +8846,7 @@ msgstr "" msgid "Slot B" msgstr "شکاف بی" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8845,7 +8898,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "اسپانیایی" @@ -8854,7 +8907,7 @@ msgstr "اسپانیایی" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "حجم صدای اسپیکر:" @@ -8936,11 +8989,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9103,10 +9156,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9124,16 +9177,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9145,16 +9198,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9162,7 +9215,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9195,11 +9248,11 @@ msgstr "" msgid "Swing" msgstr "نوسان" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9276,7 +9329,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "زبان سیستم:" @@ -9291,8 +9344,8 @@ msgstr "ورودی تاس" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9361,13 +9414,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9413,11 +9466,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9447,11 +9500,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9475,6 +9528,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9571,7 +9631,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "نتیجه کد رمزگشایی شده اکشن ریپلی شامل هیچ خطی نیست." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9605,7 +9665,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9660,7 +9720,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9696,11 +9756,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9713,7 +9773,7 @@ msgstr "" "پشتیبانی نمی کند." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9810,7 +9870,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9823,7 +9883,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9831,7 +9891,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9891,7 +9951,7 @@ msgstr "لرزیدن" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9933,7 +9993,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9993,7 +10053,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "بالا" @@ -10045,8 +10105,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "چینی سنتی" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10054,7 +10114,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10078,7 +10138,7 @@ msgid "Triggers" msgstr "دکمه ها" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10112,14 +10172,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10127,7 +10187,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10136,7 +10196,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10188,11 +10248,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10209,11 +10269,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "ناشناخته" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10257,11 +10317,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10317,8 +10377,8 @@ msgstr "" msgid "Up" msgstr "بالا" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "به روز کردن" @@ -10378,11 +10438,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10394,7 +10454,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "استفاده از دستگذار پنیک" @@ -10454,11 +10514,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10481,14 +10541,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10719,7 +10779,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "اخطار" @@ -10736,28 +10796,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10812,7 +10872,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10858,7 +10918,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10886,7 +10946,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10894,7 +10954,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10951,8 +11011,20 @@ msgstr "" msgid "Write to Window" msgstr "نوشتن در پنجره" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11019,14 +11091,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11064,7 +11128,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "برای اعمال تغییرات شما باید دلفین را از نو اجرا کنید." @@ -11134,12 +11198,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11200,13 +11264,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11243,7 +11307,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11266,7 +11330,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index e8609e8811..3ca917161f 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -25,7 +25,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" #: Source/Core/DiscIO/VolumeVerifier.cpp:1402 msgid "" @@ -51,7 +52,7 @@ msgstr "" "Comme ce titre n'est pas conçu pour les consoles Wii commercialisées, " "Dolphin ne peut pas vérifier qu'il n'a pas été modifié." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -198,19 +199,19 @@ msgstr "" "%2 objet(s)\n" "Image actuelle : %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 s'est connecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 s'est déconnecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 n'est pas une ROM valide" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 est en mode golf" @@ -247,7 +248,7 @@ msgstr "%1% (Vitesse normale)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1 : %2" @@ -310,7 +311,7 @@ msgstr "&4x" msgid "&About" msgstr "&À propos" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&&Ajouter un point d'arrêt mémoire" @@ -402,7 +403,7 @@ msgstr "&Supprimer..." #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Effacer la surveillance" @@ -500,7 +501,7 @@ msgstr "Fusion &inter-images" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Langue :" @@ -557,7 +558,7 @@ msgstr "&Pause" msgid "&Play" msgstr "&Démarrer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Propriétés" @@ -607,7 +608,7 @@ msgstr "&Limite de vitesse :" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Thème :" @@ -637,7 +638,7 @@ msgstr "&Regarder" msgid "&Website" msgstr "Site &web" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -645,15 +646,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Oui" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' introuvable, aucun nom de symbole généré" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' introuvable, recherche de fonctions communes à la place" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Aucun)" @@ -690,9 +691,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -706,7 +707,7 @@ msgstr "128 Mbit (2043 blocs)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "16 Bytes" -msgstr "" +msgstr "16 octets" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:28 msgid "16 Mbit (251 blocks)" @@ -794,7 +795,7 @@ msgstr "3x la réso. native (1920x1584) pour 1080p" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 msgid "4 Bytes" -msgstr "" +msgstr "4 octets" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:26 msgid "4 Mbit (59 blocks)" @@ -846,7 +847,7 @@ msgstr "7x la réso. native (4480x3696)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 msgid "8 Bytes" -msgstr "" +msgstr "8 octets" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:27 msgid "8 Mbit (123 blocks)" @@ -882,7 +883,7 @@ msgstr "< Inférieur à" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -900,8 +901,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Supérieur à" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Une session NetPlay est en cours !" @@ -922,17 +923,17 @@ msgstr "" "Installer cette WAD va remplacer celle de la NAND de manière irréversible. " "Continuer ?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Un disque est déjà sur le point d'être inséré." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Une sauvegarde d'état ne peut être chargée sans avoir spécifié quel jeu " "démarrer." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1104,7 +1105,7 @@ msgstr "Action Replay : Code Normal {0} : Sous-type non valide {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "Activer le Chat NetPlay" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Actif" @@ -1116,7 +1117,7 @@ msgstr "File d'attente de threads actifs" msgid "Active threads" msgstr "Threads actifs" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adaptateur" @@ -1146,8 +1147,8 @@ msgstr "Ajouter un nouveau serveur DSU" msgid "Add New USB Device" msgstr "Ajouter un nouveau périphérique USB" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Ajouter un raccourci sur le Bureau" @@ -1174,18 +1175,18 @@ msgstr "Ajouter un point d'arrêt mémoire" msgid "Add to &watch" msgstr "Ajouter à la surveillance" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Ajouter pour observation" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Ajouter..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1282,10 +1283,15 @@ msgstr "Afrique" msgid "Aligned to data type length" msgstr "Aligné sur le type de longueur de données" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1293,27 +1299,44 @@ msgid "All Files" msgstr "Tous les fichiers" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Tous les fichiers (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tous les fichiers GC/Wii" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tous les états sauvegardés (*.sav *.s##);; Tous les fichiers (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Tous les appareils" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 msgid "All files (*)" -msgstr "" +msgstr "Tous les fichiers (*)" #: Source/Core/Core/NetPlayServer.cpp:1170 msgid "All players' codes synchronized." @@ -1327,7 +1350,7 @@ msgstr "Les sauvegardes de tous les joueurs ont été synchronisées." msgid "Allow Mismatched Region Settings" msgstr "Autoriser des réglages pour région différente" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Autoriser l'envoi des statistiques d'utilisation" @@ -1351,7 +1374,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Sources alternatives d'entrées" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Toujours" @@ -1407,7 +1430,7 @@ msgstr "Anti-Aliasing :" msgid "Any Region" msgstr "Toutes régions" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Ajouter la signature à" @@ -1436,7 +1459,7 @@ msgstr "Date de l'Apploader :" msgid "Apply" msgstr "Appliquer" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Appliquer un fichier de signature" @@ -1448,7 +1471,7 @@ msgstr "Détection de mipmap arbitraire" msgid "Are you sure that you want to delete '%1'?" msgstr "Êtes-vous sûr de vouloir supprimer \"%1\" ?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Êtes-vous sûr de vouloir supprimer ce fichier ?" @@ -1464,7 +1487,7 @@ msgstr "Êtes-vous sûr de vouloir quitter NetPlay ?" msgid "Are you sure?" msgstr "Êtes-vous sûr ?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Format d'écran" @@ -1481,7 +1504,7 @@ msgstr "Attribuer les ports des manettes" msgid "Assign Controllers" msgstr "Attribuer des manettes" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1548,11 +1571,11 @@ msgstr "Ajuster auto. la taille de la fenêtre" msgid "Auto-Hide" msgstr "Cacher automatiquement" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Détecter automatiquement les modules RSO ?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1585,7 +1608,7 @@ msgstr "" "GameCube valide doit être utilisée. Générez une nouvelle adresse MAC " "commençant par 00:09:bf ou 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS :" @@ -1597,7 +1620,7 @@ msgstr "Registres BP" msgid "Back Chain" msgstr "Back Chain" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Moteur" @@ -1650,7 +1673,7 @@ msgstr "Mauvais offset fourni." msgid "Bad value provided." msgstr "Mauvaise valeur fournie." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1685,7 +1708,7 @@ msgstr "Paramètres de base" msgid "Bass" msgstr "Basse" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Vous devez spécifier un jeu à lancer pour utiliser le mode batch." @@ -1717,7 +1740,7 @@ msgstr "Binaire SSL (écriture)" msgid "Bitrate (kbps):" msgstr "Bitrate (kbps) :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1761,12 +1784,12 @@ msgstr "" msgid "Boot to Pause" msgstr "Démarrer sur Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" "Fichier de sauvegarde BootMii de la NAND (*.bin);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fichier de clés BootMii (*.bin);;Tous les fichiers (*)" @@ -1774,7 +1797,7 @@ msgstr "Fichier de clés BootMii (*.bin);;Tous les fichiers (*)" msgid "Borderless Fullscreen" msgstr "Plein écran sans bords" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Bas" @@ -1801,7 +1824,7 @@ msgstr "Point d'arrêt" msgid "Breakpoint encountered! Step out aborted." msgstr "Point d'arrêt rencontré ! Sortie abandonnée." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Points d'arrêt" @@ -1835,12 +1858,12 @@ msgstr "Parcourir les sessions &NetPlay..." msgid "Buffer Size:" msgstr "Taille du tampon :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Taille de buffer changée à %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer :" @@ -1969,7 +1992,7 @@ msgstr "" "Champ de vue de la caméra (agit sur la sensibilité du pointeur de la " "Wiimote)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" "Peut générer un code AR pour les valeurs dans la mémoire virtuelle " @@ -1979,8 +2002,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossible de trouver la Wiimote par la gestion de connexion {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Impossible de démarrer une session NetPlay pendant qu'un jeu est en cours " @@ -1988,7 +2011,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2020,7 +2043,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Impossible de trouver l'IPL de GC" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "Impossible de générer un code AR pour cette adresse." @@ -2046,7 +2069,7 @@ msgstr "Centre" msgid "Center and Calibrate" msgstr "Centrer et étalonner" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "&Changer de disque" @@ -2062,7 +2085,7 @@ msgstr "Changer de disque" msgid "Change Discs Automatically" msgstr "Changer automatiquement les disques" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Changer le disque par {0}" @@ -2125,7 +2148,7 @@ msgstr "Rechercher en arrière-plan les changements dans la liste des jeux" msgid "Check for updates" msgstr "Rechercher des mises à jour" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2141,16 +2164,19 @@ msgstr "Somme de contrôle" msgid "China" msgstr "Chine" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Choisir un fichier à ouvrir" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Choisir le fichier d'entrée prioritaire." -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Choisir le fichier d'entrée secondaire." @@ -2175,7 +2201,7 @@ msgstr "Manette classique" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Effacer" @@ -2228,7 +2254,7 @@ msgstr "Le code a été exécuté" msgid "Code:" msgstr "Code :" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Codes reçus !" @@ -2253,7 +2279,7 @@ msgstr "Compiler les Shaders avant le démarrage" msgid "Compiling Shaders" msgstr "Compilation des Shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2305,23 +2331,23 @@ msgstr "Configurer la sortie" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmer" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Confirmez le changement de moteur" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmer l'arrêt de l'émulation" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2376,7 +2402,7 @@ msgstr "Se connecter à Internet et rechercher une mise à jour ?" msgid "Connected" msgstr "Connecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Connexion en cours" @@ -2504,11 +2530,11 @@ msgstr "Convergence :" msgid "Convert" msgstr "Convertir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Convertir le fichier..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Convertir les fichiers sélectionnés..." @@ -2539,9 +2565,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Copier" @@ -2553,39 +2579,35 @@ msgstr "Copier la &fonction" msgid "Copy &hex" msgstr "Copier l'&hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Copier l'adresse" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Échec de la copie" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copier l'Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Copier la valeur" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "Copier la &ligne de code" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Échec de la copie" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "Copier l'adresse &cible" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Copier vers A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Copier vers B" @@ -2629,7 +2651,7 @@ msgstr "" "Impossible de télécharger les informations de mise à jour de Nintendo. " "Vérifiez votre connexion à Internet puis réessayez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2639,7 +2661,7 @@ msgstr "" "\n" "La console émulée va maintenant s'arrêter." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2700,7 +2722,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Fichier {0} non reconnu" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2720,15 +2742,15 @@ msgstr "" "Dans ce cas, vous devez à nouveau spécifier l'emplacement du fichier de " "sauvegarde dans les options." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Impossible de trouver le serveur central" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Impossible d'ouvrir le fichier." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Impossible de lire le fichier." @@ -2791,7 +2813,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "Région actuelle" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Valeur actuelle" @@ -2901,23 +2923,23 @@ msgstr "Transfert de données" msgid "Data Type" msgstr "Type de données" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Il y a des données dans une zone du fichier qui devrait être vierge." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Données dans un format non reconnu ou corrompues." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Incohérence de données dans GCMemcardManager, abandon de l'action." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Données reçues !" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Fichiers Datel MaxDrive/Pro" @@ -3025,21 +3047,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Supprimer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Supprimer le fichier..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Supprimer les fichiers sélectionnées..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Supprimer le fichier '{0}' ?" @@ -3055,10 +3077,10 @@ msgstr "Pourcentage de la profondeur :" msgid "Depth:" msgstr "Profondeur :" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3078,7 +3100,7 @@ msgstr "Détaché" msgid "Detect" msgstr "Détecter" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Détection des modules RSO" @@ -3099,7 +3121,7 @@ msgstr "Appareil" msgid "Device PID (e.g., 0305)" msgstr "PID de l'appareil (ex : 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Paramètres de la console émulée" @@ -3153,8 +3175,8 @@ msgstr "" msgid "Dis&connected" msgstr "Dé&connecté" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Désactiver" @@ -3236,7 +3258,7 @@ msgstr "Fermer" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 msgid "Display Type" -msgstr "" +msgstr "Type d'affichage" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:231 msgid "Display values in Hex" @@ -3266,25 +3288,25 @@ msgstr "Distance" msgid "Distance of travel from neutral position." msgstr "Distance parcourue depuis la position neutre." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Autorisez-vous Dolphin à envoyer des informations à ses développeurs ?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Voulez-vous ajouter \"%1\" à la liste des dossiers de jeux ?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Voulez-vous effacer la liste des noms de symboles ?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Voulez-vous supprimer %n fichier(s) de sauvegarde sélectionné(s) ?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Voulez-vous arrêter l'émulation en cours ?" @@ -3301,9 +3323,9 @@ msgstr "Journal FIFO de Dolphin (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Préréglage de mod de jeu pour Dolphin" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Fichier de carte pour Dolphin (*.map)" @@ -3315,8 +3337,8 @@ msgstr "Fichier CSV de signature de Dolphin" msgid "Dolphin Signature File" msgstr "Fichier de signature de Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Films TAS Dolphin (*.dtm)" @@ -3339,7 +3361,7 @@ msgstr "" "\n" "Souhaitez-vous tout de même continuer ?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3359,7 +3381,7 @@ msgstr "Dolphin n'a pas pu exécuter l'action demandée." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin est un émulateur de GameCube et Wii, libre et open-source." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin est trop ancien pour le serveur traversal" @@ -3428,7 +3450,7 @@ msgstr "Télécharger des codes" msgid "Download Codes from the WiiRD Database" msgstr "Télécharger des codes de WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" "Télécharger les jaquettes des jeux depuis GameTDB.com pour l'affichage en " @@ -3463,7 +3485,7 @@ msgstr "Double cœur (Dual Core)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 msgid "Dual View" -msgstr "" +msgstr "Affichage double" #: Source/Core/Core/HW/EXI/EXI_Device.h:85 msgid "Dummy" @@ -3471,7 +3493,7 @@ msgstr "Factice" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 msgid "Dump" -msgstr "" +msgstr "Dumper" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &ARAM" @@ -3629,7 +3651,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Durée de relâchement du bouton Turbo (en images) :" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Néerlandais" @@ -3710,7 +3732,7 @@ msgstr "Buffer d'image embarqué (Embedded Frame Buffer - EFB)" msgid "Empty" msgstr "Vide" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Thread d'émulation déjà en cours d'exécution" @@ -3745,8 +3767,8 @@ msgstr "L'émulation doit être démarrée pour pouvoir enregistrer." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Activer" @@ -3796,7 +3818,7 @@ msgid "Enable Progressive Scan" msgstr "Activer le balayage progressif" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Activer le vibreur" @@ -3951,7 +3973,7 @@ msgstr "" msgid "Encoding" msgstr "Encodage" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3969,7 +3991,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet ne s'est pas initialisé" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Anglais" @@ -4002,7 +4024,7 @@ msgstr "Entrez la nouvelle adresse MAC de l'adaptateur réseau :" msgid "Enter password" msgstr "Entrez le mot de passe" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Entrer l'adresse du module RSO :" @@ -4014,7 +4036,7 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4033,46 +4055,47 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erreur" @@ -4096,11 +4119,11 @@ msgid "Error occurred while loading some texture packs" msgstr "" "Une erreur est survenue lors de l'ouverture de certains packs de texture" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Erreur lors du traitement des codes." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Erreur lors du traitement des données." @@ -4120,7 +4143,7 @@ msgstr "Erreur lors de la synchronisation des données !" msgid "Error writing file: {0}" msgstr "Erreur d'écriture du fichier : {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4295,10 +4318,10 @@ msgstr "Expérimental" msgid "Export All Wii Saves" msgstr "Exporter toutes les sauvegardes Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "L'exportation a échoué" @@ -4310,19 +4333,19 @@ msgstr "Exporter l'enregistrement..." msgid "Export Recording..." msgstr "Exporter l'enregistrement..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Exporter le fichier de sauvegarde" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Exporter les fichiers de sauvegarde" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Exporter la sauvegarde Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Exporter les sauvegardes Wii" @@ -4334,7 +4357,7 @@ msgstr "Exporter comme .&gcs..." msgid "Export as .&sav..." msgstr "Exporter comme .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4408,7 +4431,7 @@ msgstr "Lecteur FIFO" msgid "Failed loading XML." msgstr "Impossible de lire le XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4420,19 +4443,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Impossible d'ajouter cette session à l'index NetPlay : %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Impossible d'ajouter cela au fichier de signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Impossible de demander l'interface pour passer outre le Bluetooth" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Impossible de se connecter à Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Impossible de se connecter au serveur : %1" @@ -4466,11 +4489,11 @@ msgstr "" "Impossible de créer la carte mémoire pour NetPlay. Vérifier vos permissions " "en écriture." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Impossible de supprimer le fichier sélectionné." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossible de détacher le driver du Kernel pour l'adaptateur BT : {0}" @@ -4486,16 +4509,16 @@ msgstr "Impossible de dumper %1 : impossible d'ouvrir le fichier" msgid "Failed to dump %1: Failed to write to file" msgstr "Impossible de dumper %1 : impossible d'écrire vers le fichier" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Échec de l'exportation de %n sur %1 fichier(s) de sauvegarde." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Échec de l'exportation des fichiers de sauvegarde suivants :" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Impossible d'extraire les certificats depuis la NAND" @@ -4521,18 +4544,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Impossible de trouver un ou plusieurs symboles D3D" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Impossible d'importer \"%1\"." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Impossible d'importer le fichier de sauvegarde. Veuillez démarrer le jeu une " "fois, puis réessayez." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4540,7 +4563,7 @@ msgstr "" "Impossible d'importer le fichier de sauvegarde. Le fichier indiqué semble " "corrompu ou n'est pas une sauvegarde valide de Wii." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4551,7 +4574,7 @@ msgstr "" "Essayez de réparer votre NAND (Outils -> Gestion de NAND -> Vérifier la " "NAND...), et importez à nouveau la sauvegarde." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Impossible d'initialiser la base" @@ -4574,12 +4597,12 @@ msgstr "Impossible d'initialiser les classes du moteur de rendu" msgid "Failed to install pack: %1" msgstr "Impossible d'installer le pack %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Impossible d'installer ce titre dans la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4587,8 +4610,8 @@ msgstr "" "Impossible d'écouter le port %1. Est-ce qu'une autre instance de serveur " "Netplay est en exécution ?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Impossible de charger le module RSO à %1" @@ -4600,7 +4623,7 @@ msgstr "Impossible de charger d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Impossible de charger dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Impossible d'ouvrir le fichier de carte '%1'" @@ -4616,13 +4639,13 @@ msgstr "" "Impossible de charger {0}. Si vous utilisez Windows 7, essayez d'installer " "la mise à jour KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Impossible d'ouvrir \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossible d'utiliser l'appareil Bluetooth : {0}" @@ -4647,11 +4670,11 @@ msgstr "" "Impossible d'ouvrir le fichier dans un éditeur externe.\n" "Vérifiez qu'une application est définie pour ouvrir les fichiers INI." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Impossible d'ouvrir le fichier." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Impossible d'accéder au serveur" @@ -4660,7 +4683,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Impossible d'ouvrir le fichier source \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4683,27 +4706,27 @@ msgstr "Impossible d'analyser la valeur donnée dans le type de données cible." msgid "Failed to read DFF file." msgstr "Impossible de lire le fichier DFF." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Impossible de lire le fichier." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Impossible de lire depuis le fichier source \"{0}\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" "Impossible de lire le(s) fichier(s) de sauvegarde sélectionné(s) depuis la " "carte mémoire." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Impossible de lire {0}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Impossible de supprimer le fichier" @@ -4717,7 +4740,7 @@ msgstr "" "\n" "Voulez-vous le convertir sans supprimer les données inutiles ?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Impossible de supprimer ce titre de la NAND." @@ -4743,19 +4766,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Echec de l'enregistrement du journal FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Impossible de sauvegarder la carte du code vers le dossier '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Impossible de sauvegarder le fichier de signature '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Impossible de sauvegarder la carte des symboles vers le dossier '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Impossible de sauvegarder vers le fichier de signature '%1'" @@ -4779,9 +4802,9 @@ msgstr "Impossible d'écrire la sauvegarde Wii." msgid "Failed to write config file!" msgstr "Impossible d'écrire le fichier de configuration !" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Impossible d'écrire la carte mémoire modifiée sur le disque." @@ -4789,12 +4812,12 @@ msgstr "Impossible d'écrire la carte mémoire modifiée sur le disque." msgid "Failed to write redirected save." msgstr "Impossible d'écrire la sauvegarde redirigée." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Impossible d'écrire le fichier de sauvegarde sur le disque." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4802,10 +4825,10 @@ msgstr "" "Impossible d'écrire le fichier de sortie \"{0}\".\n" "Vérifiez que vous avez d'espace libre sur le lecteur de destination." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Échec" @@ -4830,7 +4853,7 @@ msgstr "Rapide" msgid "Fast Depth Calculation" msgstr "Calcul rapide de la profondeur" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4847,7 +4870,7 @@ msgstr "Champ de vision" msgid "File Details" msgstr "Détails du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4861,19 +4884,19 @@ msgstr "Format du fichier :" msgid "File Info" msgstr "Infos du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nom du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Chemin du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Taille du fichier" @@ -4902,13 +4925,13 @@ msgstr "" "Les fichiers spécifiés dans le fichier M3U \"{0}\" n'ont pas été trouvés :\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "La taille du fichier ne correspond à aucune taille connue de carte mémoire " "de GameCube." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "La taille indiquée dans l'entête ne correspond pas à celle de la carte." @@ -4966,17 +4989,17 @@ msgstr "Vue à la première personne" msgid "Fix Checksums" msgstr "Corriger les sommes de contrôle" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Échec de la correction des sommes de contrôle" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 msgid "Fixed Alignment" -msgstr "" +msgstr "Alignement fixé" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Drapeaux" @@ -5132,11 +5155,11 @@ msgstr "Images à enregistrer :" msgid "France" msgstr "France" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "%1 blocs libres" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "%1 fichiers libres" @@ -5178,7 +5201,7 @@ msgid "Freelook Toggle" msgstr "Activer la vue libre" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Français" @@ -5207,7 +5230,7 @@ msgstr "De :" msgid "FullScr" msgstr "Plein écran" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Fonction" @@ -5239,7 +5262,7 @@ msgstr "Cœur GBA" msgid "GBA Port %1" msgstr "Port GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "Réglages GBA" @@ -5251,11 +5274,11 @@ msgstr "Volume GBA" msgid "GBA Window Size" msgstr "Taille de la fenêtre GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM changée en \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM désactivée" @@ -5389,11 +5412,11 @@ msgstr "Jeu" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartes Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5417,7 +5440,7 @@ msgstr "Détails du jeu" msgid "Game Folders" msgstr "Dossier de jeux" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID du jeu" @@ -5431,11 +5454,25 @@ msgstr "Identifiant du jeu :" msgid "Game Status" msgstr "Etat du jeu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Jeu changé en \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Le jeu est déjà en cours d'émulation !" @@ -5446,6 +5483,10 @@ msgstr "" "Leu jeu a écrasé la sauvegarde d'un autre jeu, corruption de données " "probable. {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Paramètres spécifiques au jeu" @@ -5486,12 +5527,12 @@ msgstr "Clavier pour GameCube sur le Port %1" msgid "GameCube Memory Card Manager" msgstr "Gestionnaire de cartes mémoires de GameCube" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "Cartes mémoire de GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Cartes mémoire de GameCube (*.raw *.gcp)" @@ -5524,7 +5565,7 @@ msgstr "Général" msgid "General and Options" msgstr "Général et Options" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Générer un code Action Replay" @@ -5532,16 +5573,16 @@ msgstr "Générer un code Action Replay" msgid "Generate a New Statistics Identity" msgstr "Générer une nouvelle identité pour les statistiques" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Code AR généré." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Nom des symboles générés à partir de '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Allemand" @@ -5550,14 +5591,14 @@ msgstr "Allemand" msgid "Germany" msgstr "Allemagne" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "Gio" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Aller à" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Mode Golf" @@ -5641,15 +5682,15 @@ msgstr "Hex" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 msgid "Hex 16" -msgstr "" +msgstr "Hex 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 32" -msgstr "" +msgstr "Hex 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 msgid "Hex 8" -msgstr "" +msgstr "Hex 8" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 msgid "Hex Byte String" @@ -5735,15 +5776,15 @@ msgstr "" "Convient pour des jeux casual de 3 joueurs et plus, peut-être sur des " "connexions instables ou avec une forte latence." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Autorité de l'hôte sur les entrées désactivée" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Autorité de l'hôte sur les entrées activée" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Hôte avec Netplay" @@ -5761,7 +5802,7 @@ msgstr "Paramètres des Raccouris clavier" msgid "Hotkeys" msgstr "Raccourcis clavier" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Les touches de raccourci requièrent que la fenêtre soit sélectionnée" @@ -5812,7 +5853,7 @@ msgstr "" msgid "IP Address:" msgstr "Adresse IP :" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Paramètres IPL" @@ -5821,7 +5862,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilité de l'IR :" @@ -5878,7 +5919,7 @@ msgstr "" msgid "Identity Generation" msgstr "Génération d'une identité" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5944,7 +5985,7 @@ msgstr "Ignorer" msgid "Ignore Format Changes" msgstr "Ignorer les changements de formats" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignorer pour cette session" @@ -5997,14 +6038,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importer une sauvegarde BootMii de la NAND..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "L'importation a échoué" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importer le(s) fichier(s) de sauvegarde" @@ -6012,11 +6053,11 @@ msgstr "Importer le(s) fichier(s) de sauvegarde" msgid "Import Wii Save..." msgstr "Importer une sauvegarde Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importation de la sauvegarde de la NAND..." -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6096,21 +6137,21 @@ msgid "Info" msgstr "Information" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Information" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Désactiver l'écran de veille pendant l'émulation" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Entrée" @@ -6155,7 +6196,7 @@ msgstr "Installer la mise à jour" msgid "Install WAD..." msgstr "Installer un WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installer dans la NAND" @@ -6171,7 +6212,7 @@ msgstr "Instruction" msgid "Instruction Breakpoint" msgstr "Point d'arrêt instruction" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instruction :" @@ -6220,7 +6261,7 @@ msgstr "Résolution interne" msgid "Internal Resolution:" msgstr "Résolution interne :" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Erreur interne lors de la génération du code AR." @@ -6232,7 +6273,7 @@ msgstr "Interpréteur (TRÈS lent)" msgid "Interpreter Core" msgstr "Interpreter Core" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Expression non valide." @@ -6249,7 +6290,7 @@ msgstr "Pack %1 non valide indiqué : %2" msgid "Invalid Player ID" msgstr "ID joueur non valide" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Adresse du module RSO non valide : %1" @@ -6257,7 +6298,7 @@ msgstr "Adresse du module RSO non valide : %1" msgid "Invalid callstack" msgstr "Pile d'exécution non valide" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Sommes de contrôle non valides." @@ -6265,7 +6306,7 @@ msgstr "Sommes de contrôle non valides." msgid "Invalid game." msgstr "Jeu non valide." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Hôte non valide" @@ -6274,7 +6315,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Entrée non valide pour le champ \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Entrée indiquée non valide" @@ -6308,7 +6349,7 @@ msgstr "" "Texte de recherche non valide (seules les longueurs de chaînes de caractères " "sont prises en charge)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "ID du titre non valide." @@ -6317,7 +6358,7 @@ msgid "Invalid watch address: %1" msgstr "Adresse à surveiller non valide : %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italien" @@ -6424,7 +6465,7 @@ msgstr "Japonais" msgid "Japanese (Shift-JIS)" msgstr "Japonais (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Toujours au premier plan" @@ -6492,7 +6533,7 @@ msgstr "Sauvegarde LR" msgid "Label" msgstr "Étiquette" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Dernière valeur" @@ -6596,7 +6637,7 @@ msgstr "Écoute" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Charger" @@ -6731,7 +6772,7 @@ msgstr "Charger un état depuis un slot" msgid "Load Wii Save" msgstr "Charger une sauvegarde Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Charger le Menu Système Wii %1" @@ -6743,8 +6784,8 @@ msgstr "Charger depuis l'emplacement sélectionné" msgid "Load from Slot %1 - %2" msgstr "Chargement depuis le Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Charger un fichier de carte" @@ -6752,7 +6793,7 @@ msgstr "Charger un fichier de carte" msgid "Load..." msgstr "Charger..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Symboles chargés à partir de '%1'" @@ -6771,7 +6812,7 @@ msgstr "" msgid "Local" msgstr "Local" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Verrouiller le curseur de la souris" @@ -6800,7 +6841,7 @@ msgstr "Types de journaux" msgid "Logger Outputs" msgstr "Sorties des journalisations" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6815,7 +6856,7 @@ msgstr "" msgid "Loop" msgstr "Boucle" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Connexion au serveur NetPlay perdue !" @@ -6844,7 +6885,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "Fichiers MadCatz Gameshark" @@ -6852,7 +6893,7 @@ msgstr "Fichiers MadCatz Gameshark" msgid "Main Stick" msgstr "Stick principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6896,11 +6937,11 @@ msgstr "ROM masque" msgid "Match Found" msgstr "Correspondance trouvée" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Tampon maxi :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Taille maximum du tampon changée à %1" @@ -6934,22 +6975,6 @@ msgstr "Carte mémoire" msgid "Memory Card Manager" msgstr "Gestionnaire de cartes mémoires" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Le nom de fichier de la Carte mémoire dans le slot {0} n'est pas correct\n" -"Région non spécifiée\n" -"\n" -"Le chemin du Slot {1} a été changé pour\n" -"{2}\n" -"Voulez-vous copier l'ancien fichier vers ce nouvel endroit ?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Modification de la mémoire" @@ -6958,23 +6983,23 @@ msgstr "Modification de la mémoire" msgid "Memory breakpoint options" msgstr "Options pour le point d'arrêt en mémoire" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock a été appelé avec la mauvaise adresse ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" "MemoryCard : la lecture a été appelée avec la mauvaise adresse source ({0:" "#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard : l'écriture a été appelée avec une mauvaise adresse de " "destination ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7004,17 +7029,17 @@ msgstr "Divers" msgid "Misc Settings" msgstr "Paramètres divers" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Il y a une différence entre le nombre de blocs libres indiqué en entête et " "ceux réellement inutilisés." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Non concordance entre les structures de données internes." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7048,8 +7073,8 @@ msgstr "" "effet.

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Modules trouvés : %1" @@ -7078,22 +7103,22 @@ msgstr "Simulation des mouvements" msgid "Motor" msgstr "Vibreur" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Visibilité du curseur de la souris" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" "Le curseur de la souris est masqué lorsqu'inactif, et réapparaît lors d'un " "mouvent de la souris." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "Le curseur de la souris sera toujours visible." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "Le curseur de la souris ne sera jamais visible lorsqu'un jeu sera en cours." @@ -7108,14 +7133,20 @@ msgstr "Déplacement" msgid "Movie" msgstr "Film" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "Non à &tout" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Vérification de la NAND" @@ -7146,11 +7177,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nom" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Nom du nouveau tag :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Nom du tag à retirer :" @@ -7171,8 +7202,8 @@ msgstr "Nom :" msgid "Native (640x528)" msgstr "Résolution native (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Fichier GCI natif" @@ -7192,11 +7223,11 @@ msgstr "Configuration de NetPlay" msgid "Netherlands" msgstr "Pays-bas" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay s'est désynchronisé dans NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "NetPlay est désynchronisé. Il n'y a aucun moyen d'y remédier." @@ -7209,7 +7240,7 @@ msgstr "Réseau" msgid "Network dump format:" msgstr "Format d'enregistrement du réseau :" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Jamais" @@ -7217,7 +7248,7 @@ msgstr "Jamais" msgid "Never Auto-Update" msgstr "Ne jamais mettre à jour" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Nouveau" @@ -7230,7 +7261,7 @@ msgstr "Nouveau point d'arrêt" msgid "New Search" msgstr "Nouvelle recherche" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Nouveau tag..." @@ -7242,7 +7273,7 @@ msgstr "Nouvelle identité générée." msgid "New instruction:" msgstr "Nouvelle instruction :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Nouveau tag" @@ -7280,7 +7311,7 @@ msgstr "Aucun adaptateur détecté" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "No Alignment" -msgstr "" +msgstr "Aucun alignement" #: Source/Core/Core/Config/MainSettings.h:16 msgid "No Audio Output" @@ -7299,13 +7330,13 @@ msgstr "Aucune correspondance trouvée" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Aucune description disponible" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Pas d'erreur." @@ -7325,10 +7356,14 @@ msgstr "Aucun jeu en fonctionnement." msgid "No game running." msgstr "Aucun jeu en fonctionnement." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Aucun souci n'a été détecté" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Aucun chemin trouvé dans le fichier M3U \"{0}\"" @@ -7360,7 +7395,7 @@ msgstr "Aucun profil trouvé pour les réglages du jeu '{0}'" msgid "No recording loaded." msgstr "Aucun enregistrement chargé." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Aucune donnée de sauvegarde trouvée" @@ -7382,10 +7417,6 @@ msgstr "Aucune" msgid "North America" msgstr "Amérique du Nord" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Introuvable" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Non défini" @@ -7395,7 +7426,7 @@ msgid "Not all players have the game. Do you really want to start?" msgstr "" "Tous les joueurs ne possèdent pas ce jeu. Voulez-vous quand même démarrer ?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7405,7 +7436,7 @@ msgstr "" "Pas assez de blocs libres sur la carte mémoire cible. Au moins %n bloc(s) " "libre(s) requis." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7415,6 +7446,10 @@ msgstr "" "Pas assez de fichiers libres sur la carte mémoire cible. Au moins %n " "fichier(s) libre(s) requis." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7469,7 +7504,7 @@ msgstr "Orientation du Nunchuck" msgid "Nunchuk Stick" msgstr "Stick du Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7500,7 +7535,7 @@ msgstr "Offset" msgid "On" msgstr "Marche" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Si mouvement" @@ -7508,7 +7543,7 @@ msgstr "Si mouvement" msgid "Online &Documentation" msgstr "&Documentation en ligne" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7516,7 +7551,7 @@ msgstr "" "Uniquement ajouter les symboles avec le préfixe :\n" "(Vide pour tous les symboles) " -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7529,7 +7564,7 @@ msgstr "" msgid "Open" msgstr "Ouvrir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Ouvrir l'emplacement du fichier" @@ -7541,7 +7576,7 @@ msgstr "Ouvrir le dossier..." msgid "Open FIFO log" msgstr "Charger le journal FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Ouvrir le dossier des &sauvegardes GameCube" @@ -7549,7 +7584,7 @@ msgstr "Ouvrir le dossier des &sauvegardes GameCube" msgid "Open Riivolution XML..." msgstr "Ouvrir un XML Riivolution..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Ouvrir le dossier de &sauvegarde Wii" @@ -7737,7 +7772,7 @@ msgstr "Pause" msgid "Pause at End of Movie" msgstr "Pause à la fin du Film" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pause lorsque la fenêtre n'est plus sélectionnée" @@ -7764,7 +7799,7 @@ msgstr "Eclairage par pixel" msgid "Perform Online System Update" msgstr "Effectuer une mise à jour en ligne" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Exécuter une mise à jour du Système" @@ -7782,7 +7817,7 @@ msgstr "Espace d'adresse physique" msgid "PiB" msgstr "Pio" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Choisissez une police pour le débogage" @@ -7798,7 +7833,7 @@ msgstr "Baisser" msgid "Pitch Up" msgstr "Monter" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plateforme" @@ -7846,7 +7881,7 @@ msgstr "Pointer" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "ROM sur Port %1 :" @@ -7855,7 +7890,7 @@ msgstr "ROM sur Port %1 :" msgid "Port:" msgstr "Port :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Possible désynchronisation détectée : %1 peut s'être désynchronisé à l'image " @@ -7877,15 +7912,15 @@ msgstr "Configuration du post-traitement des Shaders" msgid "Prefetch Custom Textures" msgstr "Précharger textures personnalisées" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Fin de film prématurée dans PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Fin de film prématurée dans PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Fin de film prématurée dans PlayWiimote. {0} > {1}" @@ -7910,7 +7945,7 @@ msgstr "Appuyer sur le bouton Sync" msgid "Pressure" msgstr "Pression" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -8002,7 +8037,7 @@ msgstr "Publique" msgid "Purge Game List Cache" msgstr "Purger le cache de la liste de jeu" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Placez les ROM d'IPL dans User/GC/." @@ -8030,8 +8065,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Question" @@ -8059,7 +8094,7 @@ msgstr "PRÊT" msgid "RSO Modules" msgstr "Modules RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Détection automatique du RSO" @@ -8213,12 +8248,12 @@ msgstr "" msgid "Refreshed current values." msgstr "Valeurs actuelles actualisées." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Actualisation..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8248,12 +8283,12 @@ msgstr "Me rappeler plus tard" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Retirer" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "La suppression a échoué" @@ -8261,11 +8296,11 @@ msgstr "La suppression a échoué" msgid "Remove Junk Data (Irreversible):" msgstr "Retirer les données inutiles (irréversible) :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Supprimer le tag..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Supprimer le tag" @@ -8284,7 +8319,7 @@ msgstr "" msgid "Rename symbol" msgstr "Renommer le symbole" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Fenêtre de rendu" @@ -8365,7 +8400,7 @@ msgstr "Gestionnaire de Packs de Ressources" msgid "Resource Pack Path:" msgstr "Dossier du Pack de Ressources :" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Redémarrage requis" @@ -8377,7 +8412,7 @@ msgstr "Restaurer les valeurs par défaut" msgid "Restore instruction" msgstr "Restaurer l'instruction" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Réessayer" @@ -8482,7 +8517,7 @@ msgstr "Vibreur" msgid "Run &To Here" msgstr "Exécu&ter jusqu'ici" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Exécuter les cœurs de GBA sur des threads dédiés" @@ -8514,7 +8549,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1 :" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1 :" @@ -8543,7 +8578,7 @@ msgstr "Sûr " #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8553,9 +8588,9 @@ msgstr "Sauver" msgid "Save All" msgstr "Tout enregistrer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportation de la sauvegarde" @@ -8576,11 +8611,11 @@ msgstr "Sauvegarde du jeu" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Fichiers de sauvegarde de jeu (*.sav);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Importation de la sauvegarde" @@ -8592,7 +8627,7 @@ msgstr "Sauvegarder l'ancien état" msgid "Save Preset" msgstr "Enregistrer le préréglage" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Sauvegarder le fichier d'enregistrement sous" @@ -8678,11 +8713,11 @@ msgstr "Enregistrer sous le préréglage..." msgid "Save as..." msgstr "Enregistrer sous..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Sauvegarder le fichier de sortie combinée sous" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8692,15 +8727,15 @@ msgstr "" "sauvegarde avant de les écraser.\n" "Écraser maintenant ?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Placer la sauvegarde dans le même dossier que la ROM" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Sauvegarder le fichier de carte" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Sauvegarder le fichier de signature" @@ -8722,11 +8757,11 @@ msgstr "" "La réinitialisation des sauvegardes du jumelage des Wiimotes ne peut être " "fait que lorsqu'un jeu est en cours d'émulation." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Sauvegardes :" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" "Le film de sauvegarde d'état {0} est corrompu, arrêt de l'enregistrement du " @@ -8783,7 +8818,7 @@ msgstr "Rechercher une instruction" msgid "Search games..." msgstr "Rechercher des jeux..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Rechercher une instruction" @@ -8816,20 +8851,20 @@ msgstr "Sélectionner" msgid "Select Dump Path" msgstr "Sélectionner le dossier pour le dump :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Sélectionner le dossier d'exportation" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Sélectionner le BIOS de la GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Sélectionner la ROM GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Sélectionner le dossier des sauvegardes GBA" @@ -8909,7 +8944,7 @@ msgstr "Sélectionner le chemin de WFS" msgid "Select Wii NAND Root" msgstr "Sélectionner le dossier racine de la NAND Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Sélectionner un dossier" @@ -8917,9 +8952,9 @@ msgstr "Sélectionner un dossier" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Sélectionner un fichier" @@ -8933,13 +8968,13 @@ msgstr "Sélectionner une image de carte SD" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 msgid "Select a file" -msgstr "" +msgstr "Sélectionner un fichier" #: Source/Core/DolphinQt/NetPlay/GameListDialog.cpp:18 msgid "Select a game" msgstr "Sélectionner un jeu" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Sélectionner un titre à installer dans la NAND" @@ -8947,11 +8982,11 @@ msgstr "Sélectionner un titre à installer dans la NAND" msgid "Select e-Reader Cards" msgstr "Sélectionner les cartes e-Reader" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Sélectionner l'adresse du module RSO :" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Sélectionnez le fichier d'enregistrement à lire" @@ -8959,12 +8994,12 @@ msgstr "Sélectionnez le fichier d'enregistrement à lire" msgid "Select the Virtual SD Card Root" msgstr "Sélectionner le dossier racine de la carte SD virtuelle" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Sélectionner le fichier des clés (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Sélectionner le fichier à enregistrer" @@ -8986,9 +9021,9 @@ msgstr "Le profil de contrôleur sélectionné n'existe pas" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Le jeu sélectionné ne figure pas dans la liste des jeux !" @@ -9000,7 +9035,7 @@ msgstr "Pile d'appels du thread sélectionné" msgid "Selected thread context" msgstr "Contexte du thread sélectionné" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -9008,7 +9043,7 @@ msgstr "" "Sélectionne l'adaptateur matériel à utiliser.

%1 " "ne prend pas en charge cette fonctionnalité." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -9053,7 +9088,7 @@ msgstr "" "

Dans le doute, sélectionnez OpenGL." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -9067,7 +9102,7 @@ msgstr "" "4/3.
Étirer à la fenêtre : Adapter l'image à la taille de la fenêtre." "

Dans le doute, choisissez Auto." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -9088,7 +9123,7 @@ msgstr "" msgid "Send" msgstr "Envoyer" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Position de la Sensor Bar :" @@ -9112,7 +9147,7 @@ msgstr "Adresse IP du serveur" msgid "Server Port" msgstr "Port du serveur" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Le serveur a rejeté la tentative traversal" @@ -9131,17 +9166,17 @@ msgstr "Définir PC" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Set Value From File" -msgstr "" +msgstr "Définir la valeur à partir du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Définir comme l'ISO par &défaut" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Sélectionner un fichier de carte mémoire pour le Slot A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Sélectionner un fichier de carte mémoire pour le Slot B" @@ -9232,7 +9267,7 @@ msgstr "Afficher le &journal" msgid "Show &Toolbar" msgstr "Afficher la barre d'&outils" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Affiche le titre en cours dans le nom de la fenêtre" @@ -9248,7 +9283,7 @@ msgstr "Afficher Australie" msgid "Show Current Game on Discord" msgstr "Afficher le jeu en cours sur Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Afficher l'interface de débogage" @@ -9320,7 +9355,7 @@ msgstr "Afficher le ping du NetPlay" msgid "Show Netherlands" msgstr "Afficher Pays-bas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Afficher les messages informatifs" @@ -9390,10 +9425,23 @@ msgstr "Afficher Monde" msgid "Show in &memory" msgstr "Afficher dans la &mémoire" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Afficher dans le &code" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Afficher dans le navigateur de serveurs" @@ -9410,7 +9458,7 @@ msgstr "" "Affiche diverses statistiques de rendu.

Dans le " "doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9420,7 +9468,7 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9524,7 +9572,7 @@ msgstr "Saute le dessin" msgid "Skip EFB Access from CPU" msgstr "Ignorer l'accès à l'EFB depuis le CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Passer le Menu Principal" @@ -9557,7 +9605,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A :" @@ -9565,7 +9613,7 @@ msgstr "Slot A :" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B :" @@ -9622,7 +9670,7 @@ msgid "Spain" msgstr "Espagne" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Espagnol" @@ -9631,7 +9679,7 @@ msgstr "Espagnol" msgid "Speaker Pan" msgstr "Volume du haut-parleur" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volume du haut-parleur :" @@ -9724,11 +9772,11 @@ msgstr "Démarrer en Plein écran" msgid "Start with Riivolution Patches" msgstr "Démarrer avec les patchs Riivolution" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Démarrer avec les patchs Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Jeu démarré" @@ -9901,10 +9949,10 @@ msgstr "Style" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Succès !" @@ -9922,16 +9970,16 @@ msgstr "%n image(s) convertie(s) avec succès." msgid "Successfully deleted '%1'." msgstr "Suppression réussie de \"%1\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportation avec succès de %n sur %1 fichier(s) de sauvegarde." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Fichiers de sauvegarde exportés avec succès." -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Certificats extraits avec succès depuis la NAND" @@ -9943,16 +9991,16 @@ msgstr "Fichier extrait avec succès." msgid "Successfully extracted system data." msgstr "Extraction avec succès des données du système." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Fichier de sauvegarde importé avec succès." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Ce titre a été installé avec succès dans la NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Ce titre a été supprimé avec succès de la NAND." @@ -9960,7 +10008,7 @@ msgstr "Ce titre a été supprimé avec succès de la NAND." msgid "Support" msgstr "Aide" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Formats de fichiers pris en charge" @@ -9997,11 +10045,11 @@ msgstr "" msgid "Swing" msgstr "Balancement" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Basculer vers A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Basculer vers B" @@ -10085,7 +10133,7 @@ msgstr "Synchronisation des codes Gecko..." msgid "Synchronizing save data..." msgstr "Synchronisation des données de sauvegarde..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Langue du système :" @@ -10100,8 +10148,8 @@ msgstr "Entrée TAS" msgid "TAS Tools" msgstr "Outils TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10172,7 +10220,7 @@ msgstr "Le fichier IPL n'est pas connu comme un dump correct. (CRC32 : {0:x})" msgid "The Masterpiece partitions are missing." msgstr "La partition des Chefs-d'œuvre est manquante." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10180,7 +10228,7 @@ msgstr "" "Impossible de réparer la NAND. Il est recommandé de sauvegarder vos données " "actuelles et de recommencer avec une nouvelle NAND." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "La NAND a été réparée." @@ -10239,11 +10287,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Le disque ne peut être lu (à {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Le disque qui allait être inséré n'a pas été trouvé." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10275,11 +10323,11 @@ msgstr "Le PID entré n'est pas valide." msgid "The entered VID is invalid." msgstr "Le VID entré n'est pas valide." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "L'expression contient une erreur de syntaxe." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10311,6 +10359,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Le fichier {0} était déjà ouvert, son entête n'a pas pu être écrite." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Le système de fichiers n'est pas valide ou ne peut être lu." @@ -10429,7 +10484,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Le code AR décrypté ne contient aucune ligne." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10470,7 +10525,7 @@ msgstr "L'index de la clé commune spécifiée est {0} au lieu de {1}." msgid "The specified file \"{0}\" does not exist" msgstr "Le fichier spécifié \"{0}\" n'existe pas" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "La carte mémoire cible contient déjà un fichier nommé \"%1\"." @@ -10528,7 +10583,7 @@ msgstr "Il y a trop de partitions dans la première table de partitions." msgid "There is nothing to undo!" msgstr "Il n'y a rien à annuler !" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "Il y a eu un problème lors de l'ajout du raccourci sur le Bureau" @@ -10571,11 +10626,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Ce périphérique USB est déjà sur liste blanche." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Ce WAD n'est pas bootable" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Ce WAD n'est pas valide." @@ -10588,7 +10643,7 @@ msgstr "" "l'Action Replay lui-même." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Ceci est irréversible !" @@ -10717,7 +10772,7 @@ msgstr "" "Ce logiciel ne doit pas être utilisé pour jouer à des jeux que vous ne " "possédez pas légalement." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Ce titre ne peut pas être démarré." @@ -10730,7 +10785,7 @@ msgstr "Ce titre est réglé pour utiliser un IOS qui n'est pas valide." msgid "This title is set to use an invalid common key." msgstr "Ce titre est réglé pour utiliser une clé partagée non valide." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10742,7 +10797,7 @@ msgstr "" "\n" "DSPHLE : ucode inconnu (CRC = {0:08x}) - forçage de AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10819,7 +10874,7 @@ msgstr "" "Durée pendant laquelle la manette est stable pour activer l'étalonnage (zéro " "pour désactiver)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10861,7 +10916,7 @@ msgid "Toggle Aspect Ratio" msgstr "Activer le ratio hauteur/largeur" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Activer Point d'arrêt" @@ -10921,7 +10976,7 @@ msgstr "Échec du jetonnage." msgid "Toolbar" msgstr "Barre d'outils" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Haut" @@ -10973,8 +11028,8 @@ msgstr "Toucher" msgid "Traditional Chinese" msgstr "Chinois traditionnel" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Erreur de Traversal" @@ -10982,7 +11037,7 @@ msgstr "Erreur de Traversal" msgid "Traversal Server" msgstr "Traversal Server" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Le serveur traveral n'a pas répondu lors de la connexion à l'hôte" @@ -11008,7 +11063,7 @@ msgid "Triggers" msgstr "Déclencheurs" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -11016,7 +11071,7 @@ msgstr "Type" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 msgid "Type-based Alignment" -msgstr "" +msgstr "Alignement basé sur Type" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:48 msgid "Typical GameCube/Wii Address Space" @@ -11042,7 +11097,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "Erreur dans la liste blanche des USB" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -11054,7 +11109,7 @@ msgstr "" "

Dans le doute, sélectionnez ce mode." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -11067,7 +11122,7 @@ msgstr "" "saccades avec les Ubershaders hybrides et que vous avez un GPU puissant." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -11082,13 +11137,13 @@ msgstr "" "impact minimal sur les performances, mais cela dépend du comportement du " "driver de la carte graphique." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Impossible de détecter automatiquement le module RSO" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 msgid "Unable to open file." -msgstr "" +msgstr "Impossible d'ouvrir le fichier." #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:150 msgid "" @@ -11116,7 +11171,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 msgid "Unable to read file." -msgstr "" +msgstr "Impossible de lire le fichier." #: Source/Core/DiscIO/NANDImporter.cpp:268 msgid "Unable to write to file {0}" @@ -11142,11 +11197,11 @@ msgstr "Annuler la sauvegarde de l'état" msgid "Uninstall" msgstr "Désinstaller" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Désinstaller de la NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11165,11 +11220,11 @@ msgstr "États-Unis" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Inconnu" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Commande DVD inconnue {0:08x} - erreur fatale" @@ -11217,11 +11272,11 @@ msgstr "Disque inconnu" msgid "Unknown error occurred." msgstr "Une erreur inconnue est survenue." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Erreur inconnue {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Erreur inconnue." @@ -11278,8 +11333,8 @@ msgstr "Entier non signé" msgid "Up" msgstr "Haut" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Mettre à jour" @@ -11341,11 +11396,11 @@ msgstr "Wiimote debout" msgid "Usage Statistics Reporting Settings" msgstr "Paramètres de l'envoi des données statistiques" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Utiliser la base de données interne des noms de jeux" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Utiliser un style personnalisé par l'utilisateur" @@ -11357,7 +11412,7 @@ msgstr "Utiliser un codec sans perte (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Utiliser le mode PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Utiliser les gestionnaires de panique" @@ -11455,11 +11510,11 @@ msgstr "" msgid "User Config" msgstr "Configuration personnalisée" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Interface utilisateur" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Style utilisateur :" @@ -11491,7 +11546,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11502,7 +11557,7 @@ msgstr "" "créée.

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
Dans le cas " "contraire et dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11771,7 +11826,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Avertissement" @@ -11793,7 +11848,7 @@ msgstr "" "Attention, le nombre de blocs indiqués par le BAT ({0}) ne correspond pas à " "l'entête de fichier chargée ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11804,7 +11859,7 @@ msgstr "" "autre sauvegarde avant de continuer, ou charger cette sauvegarde en " "désactivant le mode Lecture seule." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11814,7 +11869,7 @@ msgstr "" "actuelle dans la sauvegarde (octet {0} < {1}) (image {2} < {3}). Vous " "devriez charger une autre sauvegarde avant de continuer." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11825,7 +11880,7 @@ msgstr "" "ou charger cet état en désactivant le mode Lecture seule. Dans le cas " "contraire, il y aura probablement une désynchronisation." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11907,7 +11962,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Périphériques USB autorisés pour une connexion directe à la Wii émulée" @@ -11953,7 +12008,7 @@ msgstr "Boutons de la Wiimote" msgid "Wii Remote Orientation" msgstr "Orientation de la Wiimote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Paramètres de la Wiimote" @@ -11981,7 +12036,7 @@ msgstr "Wii et Wiimote" msgid "Wii data is not public yet" msgstr "Données Wii pas encore publiques" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Fichiers de sauvegarde de Wii (*.bin);;Tous les fichiers (*)" @@ -11989,7 +12044,7 @@ msgstr "Fichiers de sauvegarde de Wii (*.bin);;Tous les fichiers (*)" msgid "WiiTools Signature MEGA File" msgstr "Fichier MEGA de signature de WiiTools" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -12048,9 +12103,21 @@ msgstr "Ecrire dans le journal, puis pause" msgid "Write to Window" msgstr "Écrire dans la fenêtre" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Mauvaise version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12133,19 +12200,6 @@ msgstr "" "\n" "Êtes-vous sûr de vouloir continuer ?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Vous essayez d'utiliser le moteur Vulkan (Metal) sur un système " -"d'exploitation qui ne le prend pas en charge. Pour que toutes les options " -"soient disponibles, vous devez utiliser macOS 10.14 (Mojave) ou plus récent. " -"Veuillez ne pas nous envoyer de rapport d'erreur sauf si elles se produisent " -"également sur 10.14 et plus." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "Vous utilisez la dernière version disponible pour cette branche." @@ -12199,7 +12253,7 @@ msgstr "Vous devez entrer un nom pour votre session !" msgid "You must provide a region for your session!" msgstr "Vous devez entrer une région pour votre session !" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Vous devez redémarrer Dolphin pour que ce changement prenne effet." @@ -12277,12 +12331,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "Impossible de charger d3d12.dll" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "par défaut" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "déconnecté" @@ -12345,13 +12399,13 @@ msgstr "" msgid "none" msgstr "Aucun" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "Désactivé" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "à" @@ -12388,7 +12442,7 @@ msgstr "non aligné" msgid "{0} (Masterpiece)" msgstr "{0} (Chefs-d'œuvre)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12413,7 +12467,7 @@ msgstr "" "Vérifiez vos droits d'écriture ou déplacez le fichier hors de Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocs sur {1}. Ratio de compression : {2}%" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index 084907b6ff..bced173e15 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -36,7 +36,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +165,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +214,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +277,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +369,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +524,7 @@ msgstr "&Pauza" msgid "&Play" msgstr "&Pokreni igru" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Svojstva" @@ -574,7 +574,7 @@ msgstr "" msgid "&Stop" msgstr "&Zaustavi igru" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +604,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -612,15 +612,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +657,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +849,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +864,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +879,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1064,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1092,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Dodaj..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1182,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1198,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1249,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1271,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1327,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1353,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1365,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1381,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1398,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1459,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1490,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1502,7 @@ msgstr "BP registar" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1555,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1590,7 @@ msgstr "Osnovne postavke" msgid "Bass" msgstr "Bas" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1622,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1664,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1676,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Dno" @@ -1681,7 +1703,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1737,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Međuspremnik:" @@ -1835,7 +1857,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1865,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1899,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1925,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1919,7 +1941,7 @@ msgstr "Promjeni disk" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1993,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2007,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Odaberite datoteku za otvaranje" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Očisti" @@ -2072,7 +2097,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2122,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2174,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Potvrdite zaustavljanje igre" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2245,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2353,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2383,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2372,19 +2397,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2417,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiranje nije uspjelo" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2465,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2516,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2528,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2590,7 @@ msgstr "Prijelaz" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2693,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2811,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Obriši" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2841,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2864,7 @@ msgstr "" msgid "Detect" msgstr "Otkrij" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2885,7 @@ msgstr "Uređaj" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Postavke Uređaja" @@ -2911,8 +2932,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3026,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Želite li zaustaviti emulaciju?" @@ -3040,9 +3061,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3075,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Filmovi (*.dtm)" @@ -3070,7 +3091,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3109,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3174,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3354,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Nizozemski" @@ -3406,7 +3427,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emu Thread je već pokrenut" @@ -3438,8 +3459,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3510,7 @@ msgid "Enable Progressive Scan" msgstr "Omogućite Progresivno Skeniranje" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3601,7 +3622,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3614,7 +3635,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engleski" @@ -3647,7 +3668,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3659,7 +3680,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3678,46 +3699,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Pogreška" @@ -3739,11 +3761,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3763,7 +3785,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3911,10 +3933,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3926,19 +3948,19 @@ msgstr "Izvedi Snimku Videa" msgid "Export Recording..." msgstr "Izvedi Snimku Videa..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3950,7 +3972,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4024,7 +4046,7 @@ msgstr "FIFO Pokretač Datoteka" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4034,19 +4056,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4076,11 +4098,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4096,16 +4118,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4128,29 +4150,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4170,19 +4192,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4194,7 +4216,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4208,13 +4230,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4236,11 +4258,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4249,7 +4271,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4269,25 +4291,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4298,7 +4320,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4318,19 +4340,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4354,9 +4376,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4364,21 +4386,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4403,7 +4425,7 @@ msgstr "Brzo" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4418,7 +4440,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4432,19 +4454,19 @@ msgstr "" msgid "File Info" msgstr "Informacije o Datoteci" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4471,11 +4493,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4525,7 +4547,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Popravi Checksum" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4535,7 +4557,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4673,11 +4695,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4715,7 +4737,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francuski" @@ -4744,7 +4766,7 @@ msgstr "" msgid "FullScr" msgstr "CijeliZaslon" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4776,7 +4798,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4788,11 +4810,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4895,11 +4917,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4921,7 +4943,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4935,11 +4957,25 @@ msgstr "Identifikacija Igre:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Igra je već pokrenuta!" @@ -4948,6 +4984,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Specifične postavke za igru" @@ -4988,12 +5028,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5026,7 +5066,7 @@ msgstr "Opće" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5034,16 +5074,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Njemački" @@ -5052,12 +5092,12 @@ msgstr "Njemački" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5227,15 +5267,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5253,7 +5293,7 @@ msgstr "" msgid "Hotkeys" msgstr "Brze Tipke" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5298,7 +5338,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL Postavke" @@ -5307,7 +5347,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR Osjetljivost:" @@ -5344,7 +5384,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5387,7 +5427,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignoriraj Promjene Formata" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5424,14 +5464,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5439,11 +5479,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5515,21 +5555,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informacije" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Unos" @@ -5574,7 +5614,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5590,7 +5630,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5637,7 +5677,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Interna Rezolucija:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5649,7 +5689,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5666,7 +5706,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5674,7 +5714,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5682,7 +5722,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5691,7 +5731,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5723,7 +5763,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5732,7 +5772,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Talijanski" @@ -5836,7 +5876,7 @@ msgstr "Japanski" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5904,7 +5944,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6002,7 +6042,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Učitaj" @@ -6137,7 +6177,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6149,8 +6189,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6158,7 +6198,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6173,7 +6213,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6202,7 +6242,7 @@ msgstr "Tipovi Zapisa" msgid "Logger Outputs" msgstr "Ispisi Bilježenja" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6213,7 +6253,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6242,7 +6282,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6250,7 +6290,7 @@ msgstr "" msgid "Main Stick" msgstr "Glavna Gljiva" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6289,11 +6329,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6327,16 +6367,6 @@ msgstr "Memorijska Kartica" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6345,19 +6375,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6383,15 +6413,15 @@ msgstr "Razno" msgid "Misc Settings" msgstr "Razne Postavke" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6414,8 +6444,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6444,20 +6474,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6471,14 +6501,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6509,11 +6545,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6534,8 +6570,8 @@ msgstr "Ime:" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6555,11 +6591,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6572,7 +6608,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6580,7 +6616,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6593,7 +6629,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6605,7 +6641,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6662,13 +6698,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Opis nije dostupan" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6688,10 +6724,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6719,7 +6759,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6739,10 +6779,6 @@ msgstr "Ništa" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nije Postavljeno" @@ -6751,7 +6787,7 @@ msgstr "Nije Postavljeno" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6759,7 +6795,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6767,6 +6803,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6819,7 +6859,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6850,7 +6890,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6858,13 +6898,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6875,7 +6915,7 @@ msgstr "" msgid "Open" msgstr "Otvori" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6887,7 +6927,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6895,7 +6935,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7083,7 +7123,7 @@ msgstr "Pauza" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7110,7 +7150,7 @@ msgstr "Osvjetljenje po pikselu" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7128,7 +7168,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7144,7 +7184,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7190,7 +7230,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7199,7 +7239,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7219,15 +7259,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7250,7 +7290,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7331,7 +7371,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7357,8 +7397,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pitanje" @@ -7386,7 +7426,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7531,12 +7571,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7566,12 +7606,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Ukloni" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7579,11 +7619,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7599,7 +7639,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7678,7 +7718,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7690,7 +7730,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7790,7 +7830,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7822,7 +7862,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7851,7 +7891,7 @@ msgstr "Sigurno" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7861,9 +7901,9 @@ msgstr "Snimi" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7884,11 +7924,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7900,7 +7940,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7986,26 +8026,26 @@ msgstr "" msgid "Save as..." msgstr "Snimi kao..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8025,11 +8065,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8082,7 +8122,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8114,20 +8154,20 @@ msgstr "Odaberi" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8207,7 +8247,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8215,9 +8255,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8237,7 +8277,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8245,11 +8285,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8257,12 +8297,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Odaberite snimak igre" @@ -8284,9 +8324,9 @@ msgstr "Odabrani profil kontrolera ne postoji." #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8298,13 +8338,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8331,7 +8371,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8340,7 +8380,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8354,7 +8394,7 @@ msgstr "" msgid "Send" msgstr "Poslati" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Pozicija Senzora:" @@ -8374,7 +8414,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8395,15 +8435,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8483,7 +8523,7 @@ msgstr "Pokaži &Zapis" msgid "Show &Toolbar" msgstr "Pokaži &Alatnu Traku" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8499,7 +8539,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8571,7 +8611,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8641,10 +8681,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8659,20 +8712,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8759,7 +8812,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Ignoriraj EFB zahtjev procesora" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8785,7 +8838,7 @@ msgstr "" msgid "Slot A" msgstr "Utor A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8793,7 +8846,7 @@ msgstr "" msgid "Slot B" msgstr "Utor B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8845,7 +8898,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Španjolski" @@ -8854,7 +8907,7 @@ msgstr "Španjolski" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Glasnoća Zvučnika:" @@ -8936,11 +8989,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9103,10 +9156,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9124,16 +9177,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9145,16 +9198,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9162,7 +9215,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9195,11 +9248,11 @@ msgstr "" msgid "Swing" msgstr "Zamah" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9276,7 +9329,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Jezik Sustava:" @@ -9291,8 +9344,8 @@ msgstr "TAS Unos" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9361,13 +9414,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9413,11 +9466,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9447,11 +9500,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9475,6 +9528,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9571,7 +9631,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Rezultirajući de-šifrirani AR kod ne sadrži niti jedan redak." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9605,7 +9665,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9660,7 +9720,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9694,11 +9754,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9709,7 +9769,7 @@ msgid "" msgstr "AR simulator ne podržava kodove koje utječu na njega samog." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9806,7 +9866,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9819,7 +9879,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9827,7 +9887,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9887,7 +9947,7 @@ msgstr "Nagib" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9929,7 +9989,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9989,7 +10049,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Vrh" @@ -10041,8 +10101,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Tradicionalni Kineski" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10050,7 +10110,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10074,7 +10134,7 @@ msgid "Triggers" msgstr "Okidači" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10108,14 +10168,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10123,7 +10183,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10132,7 +10192,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10184,11 +10244,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10205,11 +10265,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Nepoznato" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10253,11 +10313,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10313,8 +10373,8 @@ msgstr "" msgid "Up" msgstr "Gore" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Ažuriraj" @@ -10374,11 +10434,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10390,7 +10450,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Koristi Rješavanje Panike" @@ -10450,11 +10510,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10477,14 +10537,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10715,7 +10775,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Upozorenje" @@ -10732,28 +10792,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10808,7 +10868,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10854,7 +10914,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10882,7 +10942,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10890,7 +10950,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10947,8 +11007,20 @@ msgstr "" msgid "Write to Window" msgstr "Pisati na Prozor" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11015,14 +11087,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11060,7 +11124,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Morate ponovno pokrenuti Dolphin da bi promjene imale efekta." @@ -11130,12 +11194,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11196,13 +11260,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11239,7 +11303,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11262,7 +11326,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index b3d757a3f7..a036c4719f 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -37,7 +37,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -166,19 +166,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -215,7 +215,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -278,7 +278,7 @@ msgstr "" msgid "&About" msgstr "&Névjegy" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -370,7 +370,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -468,7 +468,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -525,7 +525,7 @@ msgstr "&Szünet" msgid "&Play" msgstr "&Indítás" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Tulajdonságok" @@ -575,7 +575,7 @@ msgstr "" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -605,7 +605,7 @@ msgstr "&Figyelés" msgid "&Website" msgstr "&Weboldal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -613,15 +613,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -658,9 +658,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -850,7 +850,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -865,8 +865,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -880,15 +880,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Egy lemez már behelyezés alatt." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1023,7 +1023,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1035,7 +1035,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1065,8 +1065,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1093,18 +1093,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Hozzáadás" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1183,10 +1183,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1194,20 +1199,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1228,7 +1250,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1250,7 +1272,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1306,7 +1328,7 @@ msgstr "Élsimítás:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1332,7 +1354,7 @@ msgstr "Betöltőprogram dátuma:" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1344,7 +1366,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1360,7 +1382,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1377,7 +1399,7 @@ msgstr "Vezérlő portjainak társítása" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1438,11 +1460,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1469,7 +1491,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1481,7 +1503,7 @@ msgstr "BP regiszter " msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1534,7 +1556,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1569,7 +1591,7 @@ msgstr "Alapok beállítása" msgid "Bass" msgstr "Basszus" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1601,7 +1623,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1643,11 +1665,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1655,7 +1677,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Szegély nélküli teljes képernyő" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Lent" @@ -1682,7 +1704,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1716,12 +1738,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Puffer:" @@ -1836,7 +1858,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1844,14 +1866,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1879,7 +1901,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1905,7 +1927,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Lemez&váltás" @@ -1921,7 +1943,7 @@ msgstr "Lemezváltás" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1973,7 +1995,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1987,16 +2009,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Válassz megnyitandó fájlt" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2021,7 +2046,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Törlés" @@ -2074,7 +2099,7 @@ msgstr "" msgid "Code:" msgstr "Kód:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2099,7 +2124,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2151,23 +2176,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Megerősítés leállításkor" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2222,7 +2247,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2330,11 +2355,11 @@ msgstr "Konvergencia:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2360,9 +2385,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Másolás" @@ -2374,19 +2399,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2394,19 +2419,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Sikertelen másolás" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2446,14 +2467,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2497,7 +2518,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2509,15 +2530,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "A központi szerver nem található" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2571,7 +2592,7 @@ msgstr "Átúsztatás" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2674,23 +2695,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2792,21 +2813,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Törlés" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2822,10 +2843,10 @@ msgstr "" msgid "Depth:" msgstr "Mélység:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2845,7 +2866,7 @@ msgstr "" msgid "Detect" msgstr "Észlelés" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2866,7 +2887,7 @@ msgstr "Eszköz" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Eszköz beállítások" @@ -2913,8 +2934,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3007,25 +3028,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Biztos leállítod az aktuális emulációt?" @@ -3042,9 +3063,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3056,8 +3077,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS videók (*.dtm)" @@ -3072,7 +3093,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3090,7 +3111,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "A Dolphin túl régi az átjárási szerverhez" @@ -3155,7 +3176,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3335,7 +3356,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holland" @@ -3408,7 +3429,7 @@ msgstr "Beágyazott képkocka puffer (EFB)" msgid "Empty" msgstr "Üres" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Az emulációs szál már fut" @@ -3440,8 +3461,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3491,7 +3512,7 @@ msgid "Enable Progressive Scan" msgstr "Progresszív pásztázás használata" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3607,7 +3628,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3620,7 +3641,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet nincs inicializálva" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Angol" @@ -3653,7 +3674,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3665,7 +3686,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3684,46 +3705,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Hiba" @@ -3746,11 +3768,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3770,7 +3792,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3918,10 +3940,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Minden Wii mentés exportálása" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3933,19 +3955,19 @@ msgstr "Felvétel exportálása" msgid "Export Recording..." msgstr "Felvétel exportálása..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3957,7 +3979,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4031,7 +4053,7 @@ msgstr "FIFO lejátszó" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4041,19 +4063,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4083,11 +4105,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4103,16 +4125,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4135,29 +4157,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4177,19 +4199,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4201,7 +4223,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4215,13 +4237,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4243,11 +4265,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4256,7 +4278,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4276,25 +4298,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4305,7 +4327,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4325,19 +4347,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4361,9 +4383,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4371,21 +4393,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4410,7 +4432,7 @@ msgstr "Gyors" msgid "Fast Depth Calculation" msgstr "Gyors mélységszámolás" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4425,7 +4447,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4439,19 +4461,19 @@ msgstr "" msgid "File Info" msgstr "Fájl információ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Fájlnév" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Fájlméret" @@ -4478,11 +4500,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4532,7 +4554,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Ellenőrzőösszeg javítása" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4542,7 +4564,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4680,11 +4702,11 @@ msgstr "" msgid "France" msgstr "Francia" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4722,7 +4744,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francia" @@ -4751,7 +4773,7 @@ msgstr "" msgid "FullScr" msgstr "Teljes képernyő" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4783,7 +4805,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4795,11 +4817,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4902,11 +4924,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance kártyák (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4928,7 +4950,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Játék azonosító" @@ -4942,11 +4964,25 @@ msgstr "Játék azonosító:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "A játék már fut!" @@ -4955,6 +4991,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Játékfüggő beállítások" @@ -4995,12 +5035,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5033,7 +5073,7 @@ msgstr "Általános" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5041,16 +5081,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Új statisztikai azonosító generálása" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Német" @@ -5059,12 +5099,12 @@ msgstr "Német" msgid "Germany" msgstr "Németország" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5234,15 +5274,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5260,7 +5300,7 @@ msgstr "" msgid "Hotkeys" msgstr "Gyorsbillentyűk" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5305,7 +5345,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL beállítások" @@ -5314,7 +5354,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR érzékenysége:" @@ -5351,7 +5391,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5394,7 +5434,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Formátumváltozások kihagyása" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5431,14 +5471,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5446,11 +5486,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii mentés importálása..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5522,21 +5562,21 @@ msgid "Info" msgstr "Infó" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Információk" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Bemenet" @@ -5581,7 +5621,7 @@ msgstr "" msgid "Install WAD..." msgstr "WAD telepítése..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5597,7 +5637,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5644,7 +5684,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Belső felbontás:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5656,7 +5696,7 @@ msgstr "Értelmező (leglassabb)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5673,7 +5713,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5681,7 +5721,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5689,7 +5729,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Érvénytelen gazda" @@ -5698,7 +5738,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5731,7 +5771,7 @@ msgid "Invalid search string (only even string lengths supported)" msgstr "" "Érvénytelen keresési karakterlánc (csak azonos karakterlánchossz támogatott)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5740,7 +5780,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Olasz" @@ -5844,7 +5884,7 @@ msgstr "Japán" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Ablak mindig felül" @@ -5912,7 +5952,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6010,7 +6050,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Betöltés" @@ -6145,7 +6185,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6157,8 +6197,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6166,7 +6206,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6181,7 +6221,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6210,7 +6250,7 @@ msgstr "Naplótípus" msgid "Logger Outputs" msgstr "Napló kimenetek" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6221,7 +6261,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6250,7 +6290,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6258,7 +6298,7 @@ msgstr "" msgid "Main Stick" msgstr "Főkar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6297,11 +6337,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6335,16 +6375,6 @@ msgstr "Memóriakártya" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6353,19 +6383,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6391,15 +6421,15 @@ msgstr "Egyebek" msgid "Misc Settings" msgstr "Egyéb beállítások" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6422,8 +6452,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6452,20 +6482,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6479,14 +6509,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6517,11 +6553,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6542,8 +6578,8 @@ msgstr "Név:" msgid "Native (640x528)" msgstr "Natív (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6563,11 +6599,11 @@ msgstr "" msgid "Netherlands" msgstr "Hollandia" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Netplay szinkront veszített. Innen már nem lehet visszaállni." @@ -6580,7 +6616,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6588,7 +6624,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6601,7 +6637,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6613,7 +6649,7 @@ msgstr "Új azonosító generálva." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6670,13 +6706,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Nincs elérhető leírás" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6696,10 +6732,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6727,7 +6767,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6749,10 +6789,6 @@ msgstr "Nincs" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nincs megadva" @@ -6761,7 +6797,7 @@ msgstr "Nincs megadva" msgid "Not all players have the game. Do you really want to start?" msgstr "Nem minden játékos rendelkezik a játékkal. Biztos elindítod?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6769,7 +6805,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6777,6 +6813,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6829,7 +6869,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6860,7 +6900,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6868,13 +6908,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Online &dokumentáció" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6885,7 +6925,7 @@ msgstr "" msgid "Open" msgstr "Megnyitás" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6897,7 +6937,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6905,7 +6945,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7093,7 +7133,7 @@ msgstr "Szünet" msgid "Pause at End of Movie" msgstr "Szünet a videó végén" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7120,7 +7160,7 @@ msgstr "Képpont alapú megvilágítás" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7138,7 +7178,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7154,7 +7194,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7200,7 +7240,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7209,7 +7249,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7229,15 +7269,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Egyedi textúrák előzetes lehívása" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7260,7 +7300,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7341,7 +7381,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7367,8 +7407,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Kérdés" @@ -7396,7 +7436,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7541,12 +7581,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7576,12 +7616,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Törlés" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7589,11 +7629,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7609,7 +7649,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7688,7 +7728,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7700,7 +7740,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Újra" @@ -7800,7 +7840,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7832,7 +7872,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7861,7 +7901,7 @@ msgstr "Biztonságos" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7871,9 +7911,9 @@ msgstr "Mentés" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7894,11 +7934,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7910,7 +7950,7 @@ msgstr "Legrégebbi állapot mentése" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7996,26 +8036,26 @@ msgstr "" msgid "Save as..." msgstr "Mentés másként..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8035,11 +8075,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8092,7 +8132,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8124,20 +8164,20 @@ msgstr "Kiválaszt" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8217,7 +8257,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8225,9 +8265,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8247,7 +8287,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8255,11 +8295,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8267,12 +8307,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Válassz mentési fájlt" @@ -8294,9 +8334,9 @@ msgstr "A megadott vezérlő profil nem létezik" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8308,13 +8348,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8341,7 +8381,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8350,7 +8390,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8364,7 +8404,7 @@ msgstr "" msgid "Send" msgstr "Küldés" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Érzékelősáv helyzete:" @@ -8384,7 +8424,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "A szerver elutasította az átjárási kérelmet" @@ -8405,15 +8445,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8496,7 +8536,7 @@ msgstr "Nap&ló megjelenítése" msgid "Show &Toolbar" msgstr "Eszközt&ár megjelenítése" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8512,7 +8552,7 @@ msgstr "Ausztrália megjelenítése" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8584,7 +8624,7 @@ msgstr "NetPlay ping mgejelenítése" msgid "Show Netherlands" msgstr "Hollandia megjelenítése" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8654,10 +8694,23 @@ msgstr "Világ megjelenítése" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8672,20 +8725,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8772,7 +8825,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Az EFB processzor hozzáférésének átugrása" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8798,7 +8851,7 @@ msgstr "" msgid "Slot A" msgstr "Foglalat A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8806,7 +8859,7 @@ msgstr "" msgid "Slot B" msgstr "Foglalat B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8858,7 +8911,7 @@ msgid "Spain" msgstr "Spanyolország" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spanyol" @@ -8867,7 +8920,7 @@ msgstr "Spanyol" msgid "Speaker Pan" msgstr "Hangszóró pásztázás" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Hangszóró hangerő:" @@ -8949,11 +9002,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9116,10 +9169,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9137,16 +9190,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9158,16 +9211,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9175,7 +9228,7 @@ msgstr "" msgid "Support" msgstr "Támogatás" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9208,11 +9261,11 @@ msgstr "" msgid "Swing" msgstr "Lengetés" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9289,7 +9342,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Rendszer nyelve:" @@ -9304,8 +9357,8 @@ msgstr "TAS bemenet" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9374,13 +9427,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9426,11 +9479,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "A behelyezni próbált lemez nem található." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9460,11 +9513,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9488,6 +9541,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9584,7 +9644,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "A kapott dekódolt AR kód nem tartalmaz sorokat." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9618,7 +9678,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9673,7 +9733,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Nincs mit visszavonni!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9709,11 +9769,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9726,7 +9786,7 @@ msgstr "" "Action Replayt módosítják." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9823,7 +9883,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9836,7 +9896,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9844,7 +9904,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9908,7 +9968,7 @@ msgstr "Billenés" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9950,7 +10010,7 @@ msgid "Toggle Aspect Ratio" msgstr "Képarány kapcsoló" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -10010,7 +10070,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Fent" @@ -10062,8 +10122,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Hagyományos kínai" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10071,7 +10131,7 @@ msgstr "" msgid "Traversal Server" msgstr "Átjárási szerver" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Időtúllépés az átjárási szerver és a gazda csatlakozásakor" @@ -10095,7 +10155,7 @@ msgid "Triggers" msgstr "Ravaszok" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10129,14 +10189,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10144,7 +10204,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10153,7 +10213,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10205,11 +10265,11 @@ msgstr "Állapot mentésének visszavonása" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10226,11 +10286,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Ismeretlen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10274,11 +10334,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10334,8 +10394,8 @@ msgstr "" msgid "Up" msgstr "Fel" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Frissítés" @@ -10395,11 +10455,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Használati statisztika-jelentés beállítások" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10411,7 +10471,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 mód használata (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Hibakezelők használata" @@ -10472,11 +10532,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10499,14 +10559,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10737,7 +10797,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Figyelem" @@ -10754,28 +10814,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10830,7 +10890,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10876,7 +10936,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10904,7 +10964,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10912,7 +10972,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10969,8 +11029,20 @@ msgstr "" msgid "Write to Window" msgstr "Ablakba írás" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11037,14 +11109,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11082,7 +11146,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" "Újra kell indítanod a Dolphin emulátort a változtatások érvényesítéséhez." @@ -11153,12 +11217,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11219,13 +11283,13 @@ msgstr "" msgid "none" msgstr "nincs" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11262,7 +11326,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11285,7 +11349,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/it.po b/Languages/po/it.po index f7865efd99..d2e5865420 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -18,7 +18,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " +"1 : 2;\n" #: Source/Core/DiscIO/VolumeVerifier.cpp:1402 msgid "" @@ -44,7 +45,7 @@ msgstr "" "Poiché questo titolo non è per le console Wii originali, Dolphin non è in " "grado di verificarne la consistenza." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -189,19 +190,19 @@ msgstr "" "%2 oggetti\n" "Frame Corrente: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 è entrato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 è uscito" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 non è una ROM valida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 è in modalità golf" @@ -238,7 +239,7 @@ msgstr "%1% (Velocità Normale)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -301,7 +302,7 @@ msgstr "&4x" msgid "&About" msgstr "&A proposito di..." -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Aggiungi Punto di Interruzione dei Dati" @@ -393,7 +394,7 @@ msgstr "&Elimina" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Elimina Espressione di Controllo" @@ -491,7 +492,7 @@ msgstr "&Blending Interframe" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Lingua:" @@ -548,7 +549,7 @@ msgstr "&Pausa" msgid "&Play" msgstr "&Gioca" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Proprietà" @@ -598,7 +599,7 @@ msgstr "&Limite Velocità" msgid "&Stop" msgstr "&Arresta" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -628,7 +629,7 @@ msgstr "(&W) Espressione di controllo" msgid "&Website" msgstr "&Website" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -636,15 +637,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Sì" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' non trovato, non sono stati generati nomi dei simboli" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' non trovato, ora cercherò nomi di funzioni comuni" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Nulla)" @@ -681,9 +682,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -873,7 +874,7 @@ msgstr "< Minore-di" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -891,8 +892,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Maggiore-di" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Una sessione NetPlay è già in corso!" @@ -913,16 +914,16 @@ msgstr "" "Non sarà possibile ripristinare la versione precedente dopo l'installazione " "del WAD. Continuare?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Un disco è già in inserimento." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Uno stato salvato non può essere caricato senza indicare quale gioco avviare." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1093,7 +1094,7 @@ msgstr "Action Replay: Normal Code {0}: Sottotipo {1:08x} ({2}) non valido" msgid "Activate NetPlay Chat" msgstr "Attiva Chat NetPlay" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Attivo" @@ -1105,7 +1106,7 @@ msgstr "Cosa thread attivo" msgid "Active threads" msgstr "Thread attivi" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adattatore" @@ -1135,8 +1136,8 @@ msgstr "Aggiungi Nuovo Server DSU" msgid "Add New USB Device" msgstr "Aggiungi un nuovo Dispositivo USB" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Aggiungi Collegamento su Desktop" @@ -1163,18 +1164,18 @@ msgstr "Aggiungi punto di interruzione dei dati" msgid "Add to &watch" msgstr "Aggiungi &espressione di controllo" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Aggiungi espressione di controllo" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Aggiungi..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1274,10 +1275,15 @@ msgstr "Africa" msgid "Aligned to data type length" msgstr "Allineato alla dimensione del tipo di dato" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1285,20 +1291,37 @@ msgid "All Files" msgstr "Tutti i File" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Tutti i File (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tutti i file GC/Wii" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tutti i Salvataggi di Stati di Gioco (*.sav *.s##);; Tutti i File (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Tutti i dispositivi" @@ -1319,7 +1342,7 @@ msgstr "Tutti i salvataggi dei giocatori sono sincronizzati." msgid "Allow Mismatched Region Settings" msgstr "Permetti Impostazioni Regione Discordanti" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Permetti Report Statistiche d'Uso" @@ -1343,7 +1366,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Sorgenti di Input Alternative" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Sempre" @@ -1399,7 +1422,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "Qualunque Regione" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Accoda signature a" @@ -1427,7 +1450,7 @@ msgstr "Data dell'Apploader" msgid "Apply" msgstr "Applica" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Applica file di signature" @@ -1439,7 +1462,7 @@ msgstr "Mipmap Detection Arbitraria" msgid "Are you sure that you want to delete '%1'?" msgstr "Sei sicuro di voler eliminare '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Sei sicuro di voler eliminare questo file?" @@ -1455,7 +1478,7 @@ msgstr "Sei sicuro di voler chiudere NetPlay?" msgid "Are you sure?" msgstr "Sei sicuro?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Rapporto d'aspetto" @@ -1472,7 +1495,7 @@ msgstr "Assegna Porte Controller" msgid "Assign Controllers" msgstr "Assegna Controller" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1538,11 +1561,11 @@ msgstr "Ridimensiona Automaticamente la Finestra" msgid "Auto-Hide" msgstr "Nascondi Automaticamente" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Individua automaticamente i moduli RSO?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1575,7 +1598,7 @@ msgstr "" "un indirizzo MAC Nintendo GameCube valido. Genera un nuovo indirizzo MAC che " "cominci con 00:09:bf oppure 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1587,7 +1610,7 @@ msgstr "Registro BP" msgid "Back Chain" msgstr "Back Chain" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Motore" @@ -1640,7 +1663,7 @@ msgstr "Offset non valido." msgid "Bad value provided." msgstr "Valore non valido." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1675,7 +1698,7 @@ msgstr "Impostazioni di Base" msgid "Bass" msgstr "Basso" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" "La modalità batch non può essere usata senza indicare che gioco avviare." @@ -1708,7 +1731,7 @@ msgstr "Binary SSL (scrittura)" msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1752,11 +1775,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Avvia in Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "File di backup NAND BootMII (*.bin);;Tutti i File (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "File chiavi BootMii (*.bin);;Tutti i File (*)" @@ -1764,7 +1787,7 @@ msgstr "File chiavi BootMii (*.bin);;Tutti i File (*)" msgid "Borderless Fullscreen" msgstr "Schermo Intero senza bordi" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Sotto" @@ -1792,7 +1815,7 @@ msgid "Breakpoint encountered! Step out aborted." msgstr "" "Raggiunto punto di interruzione! Comando di uscita dall'istruzione annullato." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Punti di interruzione" @@ -1826,12 +1849,12 @@ msgstr "Sfoglia Sessioni %NetPlay..." msgid "Buffer Size:" msgstr "Dimensione Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Dimensione del buffer cambiata a %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1960,7 +1983,7 @@ msgstr "" "Campo di visione della telecamera (influisce sulla sensibilità del " "puntamento)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "È possibile generare codici AR solo per valori nella memoria virtuale" @@ -1968,15 +1991,15 @@ msgstr "È possibile generare codici AR solo per valori nella memoria virtuale" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossibile trovare Wii Remote con handle di connessione {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Non è possibile avviare una sessione NetPlay se un gioco è in esecuzione!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2005,7 +2028,7 @@ msgstr "Non è possibile confrontare con l'ultimo valore della prima ricerca." msgid "Cannot find the GC IPL." msgstr "Impossibile trovare l'IPL GC" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "Non è possibile generare un codice AR per questo indirizzo." @@ -2031,7 +2054,7 @@ msgstr "Centro" msgid "Center and Calibrate" msgstr "Centra e Calibra" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Cambia &Disco" @@ -2047,7 +2070,7 @@ msgstr "Cambia Disco" msgid "Change Discs Automatically" msgstr "Cambia Automaticamente Disco" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Inserire il disco {0}" @@ -2108,7 +2131,7 @@ msgstr "Controlla cambiamenti nella Lista dei Giochi in Background" msgid "Check for updates" msgstr "Controlla la presenza di aggiornamenti" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2124,16 +2147,19 @@ msgstr "Checksum" msgid "China" msgstr "Cina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Scegli un file da aprire" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Scegli file di input prioritario" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Scegli file di input secondario" @@ -2158,7 +2184,7 @@ msgstr "Controller Classico" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Pulisci" @@ -2211,7 +2237,7 @@ msgstr "Il codice è stato eseguito" msgid "Code:" msgstr "Codice:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Codici ricevuti!" @@ -2236,7 +2262,7 @@ msgstr "Compila gli Shader Prima dell'Avvio" msgid "Compiling Shaders" msgstr "Compilazione degli Shader" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2288,23 +2314,23 @@ msgstr "Configura Output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Conferma" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Conferma cambio backend" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Arresto su Conferma" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2359,7 +2385,7 @@ msgstr "Connettersi a internet per avviare l'aggiornamento online di sistema?" msgid "Connected" msgstr "Connesso" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Connessione" @@ -2485,11 +2511,11 @@ msgstr "Convergenza:" msgid "Convert" msgstr "Converti" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converti File..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converti i File Selezionati..." @@ -2520,9 +2546,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Copia" @@ -2534,39 +2560,35 @@ msgstr "Copia &funzione" msgid "Copy &hex" msgstr "Copia &esadecimale" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Copia Indirizzo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Copia non Riuscita" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copia Esadecimale" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Copia Valore" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "(&l) Copia riga di codice" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Copia non riuscita" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "Copia indirizzo tar&get" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Copia su A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Copia su B" @@ -2610,7 +2632,7 @@ msgstr "" "Impossibile recuperare informazioni sull'aggiornamento da Nintendo. " "Controlla la connettività, quindi riprova." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2621,7 +2643,7 @@ msgstr "" "\n" "La console emulata terminerà." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2682,7 +2704,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Impossibile riconoscere il file {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2702,15 +2724,15 @@ msgstr "" "Se è così, allora potresti dover reimpostare la posizione della memory card " "nelle opzioni." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Impossibile raggiungere il server centrale" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Impossibile aprire il file." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Impossibile leggere il file." @@ -2772,7 +2794,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "Regione Corrente" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Valore Attuale" @@ -2882,23 +2904,23 @@ msgstr "Trasferimento Dati" msgid "Data Type" msgstr "Tipo Dati" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Dati nell'area del file che dovrebbero rimanere inutilizzati." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Dati in un formato non riconosciuto o corrotti." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Inconsistenza nei dati in GCMemcardManager, azione annullata." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Dati ricevuti!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "File Datel MaxDrive/Pro" @@ -3006,21 +3028,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Elimina" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Elimina File..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Elimina i File Selezionati..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Eliminare il file esistente '{0}'?" @@ -3036,10 +3058,10 @@ msgstr "Percentuale Profondità:" msgid "Depth:" msgstr "Profondità:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3059,7 +3081,7 @@ msgstr "Scollegato" msgid "Detect" msgstr "Rileva" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Individuazione Moduli RSO" @@ -3080,7 +3102,7 @@ msgstr "Periferica" msgid "Device PID (e.g., 0305)" msgstr "Device PID (es. 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Impostazioni Periferica" @@ -3134,8 +3156,8 @@ msgstr "" msgid "Dis&connected" msgstr "Dis&connesso" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Disabilita" @@ -3245,25 +3267,25 @@ msgstr "Distanza" msgid "Distance of travel from neutral position." msgstr "Distanza di movimento dalla posizione neutrale." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Autorizzi Dolphin a inviare informazioni agli sviluppatori di Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vuoi aggiungere \"%1\" alla lista dei Percorsi di Gioco?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Vuoi cancellare la lista dei nomi dei simboli?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Vuoi eliminare i %n file di salvataggio selezionati?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Vuoi interrompere l'emulazione in corso?" @@ -3280,9 +3302,9 @@ msgstr "Log FIFO Dolphin (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Preset Dolphin Game Mod" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "File Mappa Dolphin (*.map)" @@ -3294,8 +3316,8 @@ msgstr "File Signature CSV Dolphin" msgid "Dolphin Signature File" msgstr "File Signature Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Filmati TAS Dolphin (*.dtm)" @@ -3318,7 +3340,7 @@ msgstr "" "\n" "Vuoi continuare lo stesso?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3338,7 +3360,7 @@ msgstr "Dolphin non è riuscito a completare l'azione richiesta." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin è un emulatore di GameCube e Wii gratuito e open-source." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin è troppo vecchio per il server traversal" @@ -3407,7 +3429,7 @@ msgstr "Scarica Codici" msgid "Download Codes from the WiiRD Database" msgstr "Scarica Codici dal Database WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Scarica le Copertine dei Giochi da GameTDB.com per la Modalità Griglia" @@ -3606,7 +3628,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Durata Rilascio Pulsante Turbo (in frame):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Olandese" @@ -3687,7 +3709,7 @@ msgstr "Embedded Frame Buffer (EFB)" msgid "Empty" msgstr "Vuoto" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Thread dell'Emulatore già in esecuzione" @@ -3722,8 +3744,8 @@ msgstr "L'emulazione deve essere iniziata per poter registrare" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Attiva" @@ -3773,7 +3795,7 @@ msgid "Enable Progressive Scan" msgstr "Abilita Scansione Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Abilita Vibrazione" @@ -3922,7 +3944,7 @@ msgstr "" msgid "Encoding" msgstr "Codifica" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3940,7 +3962,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet non è stato inizializzato" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Inglese" @@ -3975,7 +3997,7 @@ msgstr "Inserisci il nuovo indirizzo MAC dell'Adattatore Broadband:" msgid "Enter password" msgstr "Inserisci la password" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Inserisci l'indirizzo del modulo RSO:" @@ -3987,7 +4009,7 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4006,46 +4028,47 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Errore" @@ -4068,11 +4091,11 @@ msgstr "Errore durante l'ottenimento della lista delle sessioni: %1" msgid "Error occurred while loading some texture packs" msgstr "Si è verificato un errore durante il caricamento dei texture pack" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Errore processando i codici." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Errore processando i dati." @@ -4092,7 +4115,7 @@ msgstr "Errore sincronizzando i dati di salvataggio!" msgid "Error writing file: {0}" msgstr "Errore durante la scrittura del file: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4264,10 +4287,10 @@ msgstr "Sperimentale" msgid "Export All Wii Saves" msgstr "Esporta tutti i Salvataggi Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Esportazione non Riuscita" @@ -4279,19 +4302,19 @@ msgstr "Esporta Registrazione" msgid "Export Recording..." msgstr "Esporta Registrazione..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Esporta File di Salvataggio" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Esporta File di Salvataggio" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Esporta Salvataggio Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Esporta Salvataggi Wii" @@ -4303,7 +4326,7 @@ msgstr "Esporta come .&gcs..." msgid "Export as .&sav..." msgstr "Esporta come .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4377,7 +4400,7 @@ msgstr "Lettore FIFO" msgid "Failed loading XML." msgstr "Impossibile caricare l'XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4389,19 +4412,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Fallito l'inserimento di questa sessione all'indice NetPlay: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Impossibile aggiungere il file di signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Impossibile richiedere l'interfaccia per il ponte BT" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Impossibile connettersi a Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Impossibile connettersi al server: %1" @@ -4435,11 +4458,11 @@ msgstr "" "Impossibile eliminare la memory card NetPlay. Controlla di avere i corretti " "permessi di scrittura." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Fallita la rimozione del file selezionato." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossibile disconnettere il driver kernel per il ponte BT: {0}" @@ -4455,16 +4478,16 @@ msgstr "Fallito il dump %1: Impossibile aprire il file" msgid "Failed to dump %1: Failed to write to file" msgstr "Fallito il dump %1: Impossibile scrivere il file" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Fallita l'esportazione di %n su %1 file di salvataggio." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Fallita l'esportazione dei seguenti file di salvataggio:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Fallita estrazione dei certificati dalla NAND" @@ -4490,18 +4513,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Impossibile trovare uno o più simboli D3D" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Importazione di \"%1\" non riuscita." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Fallita l'importazione del salvataggio. Avvia il gioco una volta, poi " "riprova." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4509,7 +4532,7 @@ msgstr "" "Fallita l'importazione del salvataggio. Il file sembra corrotto o non è un " "file di salvataggio Wii valido." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4520,7 +4543,7 @@ msgstr "" "ripararla (Strumenti -> Gestisci NAND -> Controlla NAND...), quindi importa " "di nuovo il salvataggio." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Inizializzazione fallita" @@ -4543,12 +4566,12 @@ msgstr "Impossibile inizializzare le classi del renderer" msgid "Failed to install pack: %1" msgstr "Fallita installazione del pack: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Fallita installazione del titolo nella NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4556,8 +4579,8 @@ msgstr "" "Fallito l'ascolto sulla porta %1. C'è già un'altra istanza di un server " "NetPlay in esecuzione?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Fallito caricamento del modulo RSO a %1" @@ -4569,7 +4592,7 @@ msgstr "Caricamento d3d11.dll non riuscito" msgid "Failed to load dxgi.dll" msgstr "Caricamento dxgi.dll non riuscito" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Fallita l'apertura del file mappa '%1'" @@ -4585,13 +4608,13 @@ msgstr "" "Impossibile caricare {0}. Se stai utilizzando Windows 7, prova a installare " "l'aggiornamento KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Fallita l'apertura di '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossibile aprire il dispositivo Bluetooth: {0}" @@ -4617,11 +4640,11 @@ msgstr "" "Impossibile aprire il file con un editor esterno.\n" "Assicurati di avere un'applicazione di default per l'apertura dei file INI." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Impossibile aprire il file." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Impossibile avviare il server" @@ -4630,7 +4653,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Fallita l'apertura del file di input \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4653,26 +4676,26 @@ msgstr "Non è stato possibile convertire il valore in input nel tipo indicato." msgid "Failed to read DFF file." msgstr "Lettura del file DFF non riuscita." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Accesso non riuscito al file." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Fallita la lettura dal file di input \"{0}\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" "Impossibile leggere i file di salvataggio selezionati dalla memory card." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Fallita lettura di {0}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Rimozione del file non riuscita." @@ -4686,7 +4709,7 @@ msgstr "" "\n" "Vuoi convertirlo senza la loro rimozione?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Fallita rimozione del titolo dalla NAND" @@ -4712,19 +4735,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Fallito il salvataggio del log FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Impossibile salvare la mappa del codice nel percorso '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Impossibile salvare il file di signature '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Impossibile salvare la mappa dei simboli nel percorso '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Impossibile salvare nel file di signature '%1'" @@ -4748,9 +4771,9 @@ msgstr "Fallita scrittura del salvataggio Wii." msgid "Failed to write config file!" msgstr "Fallita la scrittura del file di configurazione!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Impossibile scrivere la memory card modificata sul disco." @@ -4758,12 +4781,12 @@ msgstr "Impossibile scrivere la memory card modificata sul disco." msgid "Failed to write redirected save." msgstr "Fallita scrittura del salvataggio redirezionato." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Impossibile scrivere il salvataggio su disco." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4771,10 +4794,10 @@ msgstr "" "Fallita la scrittura del file di output \"{0}\".\n" "Controlla di avere abbastanza spazio sul dispositivo di destinazione." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Errore" @@ -4799,7 +4822,7 @@ msgstr "Rapida" msgid "Fast Depth Calculation" msgstr "Calcolo Rapido della Profondità" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4816,7 +4839,7 @@ msgstr "Campo Visivo" msgid "File Details" msgstr "Dettagli del File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4830,19 +4853,19 @@ msgstr "Formato del File:" msgid "File Info" msgstr "Info File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nome File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Percorso:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dimensioni del File" @@ -4871,12 +4894,12 @@ msgstr "" "I file specificati nel flie M3U \"{0}\" non esistono:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "Le dimensioni non corrispondono a nessuna Memory Card GameCube conosciuta." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "La dimensione nell'intestazione non corrisponde alla dimensione effettiva " @@ -4935,7 +4958,7 @@ msgstr "Prima Persona" msgid "Fix Checksums" msgstr "Ripara Checksum" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Ripara Checksum Falliti" @@ -4945,7 +4968,7 @@ msgstr "Allineamento Fisso" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flag" @@ -5100,11 +5123,11 @@ msgstr "Fotogrammi da Registrare:" msgid "France" msgstr "Francia" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Blocchi Liberi: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Blocchi Liberi: %1" @@ -5146,7 +5169,7 @@ msgid "Freelook Toggle" msgstr "Abilita/Disabilita Camera Libera" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francese" @@ -5175,7 +5198,7 @@ msgstr "Da:" msgid "FullScr" msgstr "Schermo Intero" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funzione" @@ -5207,7 +5230,7 @@ msgstr "Core GBA" msgid "GBA Port %1" msgstr "Porta GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "Impostazioni GBA" @@ -5219,11 +5242,11 @@ msgstr "Volume GBA" msgid "GBA Window Size" msgstr "Dimensioni Finestra GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "Cambiata ROM GBA%1 in \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "ROM GBA%1 disabilitata" @@ -5353,11 +5376,11 @@ msgstr "Gioco" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Schede di gioco Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5381,7 +5404,7 @@ msgstr "Dettagli del Gioco" msgid "Game Folders" msgstr "Cartelle di Gioco" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Gioco" @@ -5395,11 +5418,25 @@ msgstr "ID Gioco:" msgid "Game Status" msgstr "Stato del Gioco" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Cambiato gioco in \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Il Gioco è già in esecuzione!" @@ -5410,6 +5447,10 @@ msgstr "" "Gioco sovrascritto con un altro salvataggio. Corruzione in posizione {0:#x}, " "{1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Impostazioni Specifiche del Gioco" @@ -5450,12 +5491,12 @@ msgstr "Tastiera GameCube su Porta %1" msgid "GameCube Memory Card Manager" msgstr "GameCube Memory Card Manager" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "Memory Card GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Memory Card (*.raw *.gcp)" @@ -5488,7 +5529,7 @@ msgstr "Generale" msgid "General and Options" msgstr "Generale e Opzioni" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Genera Codice Action Replay" @@ -5496,16 +5537,16 @@ msgstr "Genera Codice Action Replay" msgid "Generate a New Statistics Identity" msgstr "Genera una nuova Identità Statistiche" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Codice AR generato." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Generati nomi dei simboli da '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Tedesco" @@ -5514,14 +5555,14 @@ msgstr "Tedesco" msgid "Germany" msgstr "Germania" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Vai a" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Modalità Golf" @@ -5698,15 +5739,15 @@ msgstr "" "Adatto a giochi casual con più di 3 giocatori, ma potenzialmente instabile " "su connessioni ad alta latenza." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Autorità input host disattivata" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Autorità input host attivata" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Host con NetPlay" @@ -5724,7 +5765,7 @@ msgstr "Impostazioni Tasti di Scelta Rapida" msgid "Hotkeys" msgstr "Tasti di Scelta Rapida" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "I tasti rapidi richiedono il focus" @@ -5775,7 +5816,7 @@ msgstr "" msgid "IP Address:" msgstr "Indirizzo IP:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Impostazioni IPL" @@ -5784,7 +5825,7 @@ msgid "IR" msgstr "Puntamento IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilità IR:" @@ -5840,7 +5881,7 @@ msgstr "" msgid "Identity Generation" msgstr "Generazione Identità" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5904,7 +5945,7 @@ msgstr "Ignora" msgid "Ignore Format Changes" msgstr "Ignora Cambiamenti di Formato" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignora per questa sessione" @@ -5956,14 +5997,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importa Backup NAND BootMII..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Importazione non Riuscita" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importa File di Salvataggio" @@ -5971,11 +6012,11 @@ msgstr "Importa File di Salvataggio" msgid "Import Wii Save..." msgstr "Importa Salvataggio Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importazione di backup NAND in corso" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6054,21 +6095,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informazioni" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Disabilita lo Screensaver durante l'Emulazione" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Input" @@ -6113,7 +6154,7 @@ msgstr "Installa Aggiornamento" msgid "Install WAD..." msgstr "Installa WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installa su NAND" @@ -6129,7 +6170,7 @@ msgstr "Istruzione" msgid "Instruction Breakpoint" msgstr "Punto di Interruzione" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Istruzione:" @@ -6178,7 +6219,7 @@ msgstr "Risoluzione Interna" msgid "Internal Resolution:" msgstr "Risoluzione Interna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Errore interno durante la generazione del codice AR." @@ -6190,7 +6231,7 @@ msgstr "Interpreter (il più lento)" msgid "Interpreter Core" msgstr "Interpreter Core" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Espressione non Valida" @@ -6207,7 +6248,7 @@ msgstr "Pack non valido %1 fornito: %2" msgid "Invalid Player ID" msgstr "ID Giocatore non valido" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Indirizzo del modulo RSO non valido: %1" @@ -6215,7 +6256,7 @@ msgstr "Indirizzo del modulo RSO non valido: %1" msgid "Invalid callstack" msgstr "Stack di chiamate non valido" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Checksum invalidi." @@ -6223,7 +6264,7 @@ msgstr "Checksum invalidi." msgid "Invalid game." msgstr "Gioco non valido." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Host non valido" @@ -6232,7 +6273,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Input non valido nel campo \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Input non valido" @@ -6266,7 +6307,7 @@ msgstr "" "Stringa di ricerca non valida (solo stringhe di lunghezza pari sono " "supportate)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Title ID non valido." @@ -6275,7 +6316,7 @@ msgid "Invalid watch address: %1" msgstr "Indirizzo di controllo non valido: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiano" @@ -6382,7 +6423,7 @@ msgstr "Giapponese" msgid "Japanese (Shift-JIS)" msgstr "Giapponese (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Finestra sempre in cima" @@ -6450,7 +6491,7 @@ msgstr "Salva LR" msgid "Label" msgstr "Etichetta" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Ultimo Valore" @@ -6554,7 +6595,7 @@ msgstr "Ascolto" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Carica" @@ -6689,7 +6730,7 @@ msgstr "Carica Stato da Slot" msgid "Load Wii Save" msgstr "Carica Salvataggio Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Carica Menu di Sistema Wii %1" @@ -6701,8 +6742,8 @@ msgstr "Carica dallo Slot Selezionato" msgid "Load from Slot %1 - %2" msgstr "Carica da Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Carica mappa" @@ -6710,7 +6751,7 @@ msgstr "Carica mappa" msgid "Load..." msgstr "Carica..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Caricati simboli da '%1'" @@ -6728,7 +6769,7 @@ msgstr "" msgid "Local" msgstr "Locale" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Blocca il Cursore del Mouse" @@ -6757,7 +6798,7 @@ msgstr "Tipi di Log" msgid "Logger Outputs" msgstr "Destinazione Logger" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6772,7 +6813,7 @@ msgstr "" msgid "Loop" msgstr "Loop" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Persa la connessione al server NetPlay..." @@ -6801,7 +6842,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "File Gameshark MadCatz" @@ -6809,7 +6850,7 @@ msgstr "File Gameshark MadCatz" msgid "Main Stick" msgstr "Levetta Principale" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6853,11 +6894,11 @@ msgstr "Maschera ROM" msgid "Match Found" msgstr "Trovata Corrispondenza" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Buffer Massimo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Dimensione massima del buffer cambiata a %1" @@ -6892,22 +6933,6 @@ msgstr "Memory Card" msgid "Memory Card Manager" msgstr "Memory Card Manager" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Il Nome file della Memory Card nell'Ingresso {0} non è corretto\n" -"Regionalità non specificata\n" -"\n" -"Il percorso dell'Ingresso {1} è stato cambiato in\n" -"{2}\n" -"Si desidera copiare il precedente file in questa nuova locazione?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Override Memoria" @@ -6916,20 +6941,20 @@ msgstr "Override Memoria" msgid "Memory breakpoint options" msgstr "Opzioni punti di interruzione" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock chiamato su indirizzo non valido ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: Read chiamata su indirizzo d'origine non valido ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Write chiamata su indirizzo di destinazione non valido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6959,17 +6984,17 @@ msgstr "Varie" msgid "Misc Settings" msgstr "Impostazioni Varie" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Discordanza tra il conto dei blocchi liberi nell'intestazione e i blocchi " "effettivamente liberi." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Discordanza tra le strutture dati interne." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7003,8 +7028,8 @@ msgstr "" "

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Moduli trovati: %1" @@ -7033,22 +7058,22 @@ msgstr "Simulazione di Movimento" msgid "Motor" msgstr "Motore" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Visibilità Puntatore Mouse" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" "Il puntatore del mouse scompare dopo un periodo di inattività, e riappare al " "muoversi del mouse." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "Il puntatore sarà sempre visibile." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "Il puntatore del mouse non sarà mai visibile durante l'esecuzione di un " @@ -7064,14 +7089,20 @@ msgstr "Muovi" msgid "Movie" msgstr "Filmato" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&o a Tutto" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Controllo NAND" @@ -7102,11 +7133,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nome" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Nome del nuovo tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Nome del tag da rimuovere:" @@ -7127,8 +7158,8 @@ msgstr "Nome:" msgid "Native (640x528)" msgstr "Nativo (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "File GCI Nativo" @@ -7148,11 +7179,11 @@ msgstr "Impostazioni NetPlay" msgid "Netherlands" msgstr "Olanda" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay desincronizzato su NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "Il NetPlay è stato desincronizzato. Non è possibile ripristinare la " @@ -7167,7 +7198,7 @@ msgstr "Network" msgid "Network dump format:" msgstr "Formato dump network:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Mai" @@ -7175,7 +7206,7 @@ msgstr "Mai" msgid "Never Auto-Update" msgstr "Disabilita Aggiornamento Automatico" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Nuovo" @@ -7188,7 +7219,7 @@ msgstr "Nuovo Punto di Interruzione" msgid "New Search" msgstr "Nuova Ricerca" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Nuovo Tag..." @@ -7200,7 +7231,7 @@ msgstr "Generata Nuova Identità" msgid "New instruction:" msgstr "Nuova istruzione:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Nuovo Tag" @@ -7257,13 +7288,13 @@ msgstr "Nessuna Corrispondenza" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Non è disponibile una descrizione" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Nessun errore." @@ -7283,10 +7314,14 @@ msgstr "Nessun gioco è in esecuzione." msgid "No game running." msgstr "Nessun gioco in esecuzione." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Non sono stati rilevati problemi." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Non sono stati trovati percorsi nel file M3U \"{0}\"" @@ -7318,7 +7353,7 @@ msgstr "Nessun profilo trovato per l'impostazione di gioco '{0}'" msgid "No recording loaded." msgstr "Nessuna registrazione caricata." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Non sono stati trovati dati di salvataggio." @@ -7341,10 +7376,6 @@ msgstr "Nessuno" msgid "North America" msgstr "Nord America" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Non Trovato" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Non Impostato" @@ -7353,7 +7384,7 @@ msgstr "Non Impostato" msgid "Not all players have the game. Do you really want to start?" msgstr "Non tutti i giocatori hanno il gioco. Vuoi davvero continuare?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7363,7 +7394,7 @@ msgstr "" "Non ci sono abbastanza blocchi liberi nella memory card di destinazione. Ne " "sono necessari almeno %n." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7373,6 +7404,10 @@ msgstr "" "Non ci sono abbastanza file liberi nella memory card di destinazione. Ne " "sono necessari almeno %n." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7427,7 +7462,7 @@ msgstr "Orientamento Nunchuk" msgid "Nunchuk Stick" msgstr "Levetta Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7458,7 +7493,7 @@ msgstr "Offset" msgid "On" msgstr "On" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Al Movimento" @@ -7466,7 +7501,7 @@ msgstr "Al Movimento" msgid "Online &Documentation" msgstr "&Documentazione Online" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7474,7 +7509,7 @@ msgstr "" "Inserisci solo simboli con prefisso:\n" "(Vuoto per tutti i simboli)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7487,7 +7522,7 @@ msgstr "" msgid "Open" msgstr "Apri" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Apri &Percorso File" @@ -7499,7 +7534,7 @@ msgstr "Apri Directory..." msgid "Open FIFO log" msgstr "Apri log FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Apri Cartella dei &Salvataggi GameCube" @@ -7507,7 +7542,7 @@ msgstr "Apri Cartella dei &Salvataggi GameCube" msgid "Open Riivolution XML..." msgstr "Apri Riivolution XML..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Apri Cartella dei &Salvataggi Wii" @@ -7695,7 +7730,7 @@ msgstr "Pausa" msgid "Pause at End of Movie" msgstr "Pausa al Termine del Filmato" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pausa in Secondo Piano" @@ -7722,7 +7757,7 @@ msgstr "Illuminazione Per-Pixel" msgid "Perform Online System Update" msgstr "Avviare Aggiornamento di Sistema Online" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Avvia l'Aggiornamento di Sistema" @@ -7740,7 +7775,7 @@ msgstr "Spazio dell'indirizzo fisico" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Scegli un font di debug" @@ -7756,7 +7791,7 @@ msgstr "Inclinazione in Basso" msgid "Pitch Up" msgstr "Inclinazione in Alto" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Piattaforma" @@ -7803,7 +7838,7 @@ msgstr "Puntamento" msgid "Port %1" msgstr "Porta %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "ROM Porta %1:" @@ -7812,7 +7847,7 @@ msgstr "ROM Porta %1:" msgid "Port:" msgstr "Porta:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "Rilevato possibile desync: %1 potrebbe aver desyncato al frame %2" @@ -7832,15 +7867,15 @@ msgstr "Configura Shader di Post-Processing" msgid "Prefetch Custom Textures" msgstr "Precarica Texture Personalizzate" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Termine prematuro del filmato in PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Termine prematuro del filmato in PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Termine prematuro del filmato in PlayWiimote. {0} > {1}" @@ -7865,7 +7900,7 @@ msgstr "Premi il Pulsante Sync" msgid "Pressure" msgstr "Pressione" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7957,7 +7992,7 @@ msgstr "Pubblica" msgid "Purge Game List Cache" msgstr "Pulisci Cache Lista Giochi" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Posiziona le ROM IPL in User/GC/." @@ -7983,8 +8018,8 @@ msgstr "Qualità del decoder DPLII. La latenza audio aumenta con la qualità." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Conferma" @@ -8012,7 +8047,7 @@ msgstr "PRONTO" msgid "RSO Modules" msgstr "Moduli RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Auto-rilevamento RSO" @@ -8163,12 +8198,12 @@ msgstr "Aggiornamento fallito. Esegui il gioco per un po', quindi riprova." msgid "Refreshed current values." msgstr "Valori Attuali Aggiornati." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Aggiornamento..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8198,12 +8233,12 @@ msgstr "Ricorda Più Tardi" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Rimuovi" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Rimozione non Riuscita" @@ -8211,11 +8246,11 @@ msgstr "Rimozione non Riuscita" msgid "Remove Junk Data (Irreversible):" msgstr "Rimuovi Dati Inutilizzati (Irreversibile)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Rimuovi Tag..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Rimuovi tag" @@ -8234,7 +8269,7 @@ msgstr "" msgid "Rename symbol" msgstr "Rinomina simbolo" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Finestra di Render" @@ -8315,7 +8350,7 @@ msgstr "Resource Pack Manager" msgid "Resource Pack Path:" msgstr "Percorso Resource Pack:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Riavvio Necessario" @@ -8327,7 +8362,7 @@ msgstr "Ripristina Predefiniti" msgid "Restore instruction" msgstr "Ripristina istruzione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Riprova" @@ -8432,7 +8467,7 @@ msgstr "Vibrazione" msgid "Run &To Here" msgstr "(&T) Esegui Fino al Cursore" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Avvia i Core GBA in Thread Dedicati" @@ -8464,7 +8499,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8493,7 +8528,7 @@ msgstr "Sicura" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8503,9 +8538,9 @@ msgstr "Salva" msgid "Save All" msgstr "Salva Tutto" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Esporta Salvataggio" @@ -8526,11 +8561,11 @@ msgstr "Salvataggio di Gioco" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "File di Salvataggio di Gioco (*.sav);;Tutti i File (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Importa Salvataggio" @@ -8542,7 +8577,7 @@ msgstr "Salva sul più vecchio Stato di Gioco" msgid "Save Preset" msgstr "Salva Preset" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Salva File Registrazione Come" @@ -8628,11 +8663,11 @@ msgstr "Salva come Preset..." msgid "Save as..." msgstr "Salva come..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Salva file combinato in output come" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8642,15 +8677,15 @@ msgstr "" "conviene fare un backup dei dati attuali prima di sovrascriverli.\n" "Vuoi proseguire?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Salva nella Stessa Directory della ROM" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Salva file mappa" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Salva file di signature" @@ -8672,11 +8707,11 @@ msgstr "" "Gli abbinamenti salvati con i Wii Remote possono essere resettati soltanto " "durante l'esecuzione di un gioco Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Salvataggi:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "Il salvataggio del filmato {0} è corrotto, arresto registrazione..." @@ -8731,7 +8766,7 @@ msgstr "Cerca un'Istruzione" msgid "Search games..." msgstr "Cerca giochi..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Ricerca istruzione" @@ -8764,20 +8799,20 @@ msgstr "Seleziona" msgid "Select Dump Path" msgstr "Seleziona Percorso Dump" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Seleziona Directory di Estrazione" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Seleziona BIOS GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Seleziona ROM GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Seleziona Percorso dei Salvataggi GBA" @@ -8857,7 +8892,7 @@ msgstr "Seleziona Percorso WFS" msgid "Select Wii NAND Root" msgstr "Seleziona Root NAND Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Seleziona una Directory" @@ -8865,9 +8900,9 @@ msgstr "Seleziona una Directory" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Seleziona un File" @@ -8887,7 +8922,7 @@ msgstr "Seleziona un file" msgid "Select a game" msgstr "Seleziona un gioco" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Seleziona un titolo da installare su NAND" @@ -8895,11 +8930,11 @@ msgstr "Seleziona un titolo da installare su NAND" msgid "Select e-Reader Cards" msgstr "Seleziona Carte e-Reader" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Scegli l'indirizzo del modulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Seleziona la Registrazione da Eseguire" @@ -8907,12 +8942,12 @@ msgstr "Seleziona la Registrazione da Eseguire" msgid "Select the Virtual SD Card Root" msgstr "Seleziona la directory principale per la Scheda SD Virtuale" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Seleziona il file contenente le chiavi (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleziona il file di salvataggio" @@ -8934,9 +8969,9 @@ msgstr "Il profilo controller selezionato non esiste" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Il gioco selezionato non esiste nella lista dei giochi!" @@ -8948,7 +8983,7 @@ msgstr "Callstack thread selezionato" msgid "Selected thread context" msgstr "Contesto thread selezionato" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8956,7 +8991,7 @@ msgstr "" "Seleziona un adattatore hardware da utilizzare.

%1 " "Non supporta questa feature." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -9000,7 +9035,7 @@ msgstr "" "maggiormente ai tuoi bisogni.

Nel dubbio, seleziona " "OpenGL." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -9015,7 +9050,7 @@ msgstr "" "Finestra: Allarga l'immagine perché si adatti alle dimensioni della finestra." "

Nel dubbio, seleziona Auto." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -9036,7 +9071,7 @@ msgstr "" msgid "Send" msgstr "Invia" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Posizione della Sensor Bar: " @@ -9060,7 +9095,7 @@ msgstr "Indirizzo IP del Server" msgid "Server Port" msgstr "Porta del Server" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" "Il server ha rifiutato il tentativo di connessione in modalità traversal" @@ -9082,15 +9117,15 @@ msgstr "Imposta PC" msgid "Set Value From File" msgstr "Imposta Valore Da File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Imposta come ISO &Predefinita" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Seleziona file per la memory card dello Slot A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Seleziona file per la memory card dello Slot B" @@ -9179,7 +9214,7 @@ msgstr "Mostra Finestra di &Log" msgid "Show &Toolbar" msgstr "Mostra Barra degli St&rumenti" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Mostra Gioco Corrente nella Barra del Titolo" @@ -9195,7 +9230,7 @@ msgstr "Mostra Australia" msgid "Show Current Game on Discord" msgstr "Mostra Gioco Corrente su Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Mostra UI Debugging" @@ -9267,7 +9302,7 @@ msgstr "Mostra Ping NetPlay" msgid "Show Netherlands" msgstr "Mostra Olanda" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Mostra Messaggi su Schermo" @@ -9337,10 +9372,23 @@ msgstr "Mostra Mondo" msgid "Show in &memory" msgstr "Mostra in &memoria" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Mostra nel codice" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Mostra nel server browser" @@ -9357,7 +9405,7 @@ msgstr "" "Mostra diverse informazioni di rendering.

Nel " "dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9366,7 +9414,7 @@ msgstr "" "una partita NetPlay.

Nel dubbio, lascia " "deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Nel dubbio, lascia " "deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9470,7 +9518,7 @@ msgstr "Salta Disegno" msgid "Skip EFB Access from CPU" msgstr "Salta Accesso della CPU all'EFB" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Salta Main Menu" @@ -9501,7 +9549,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Ingresso A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A:" @@ -9509,7 +9557,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Ingresso B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B:" @@ -9565,7 +9613,7 @@ msgid "Spain" msgstr "Spagna" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spagnolo" @@ -9574,7 +9622,7 @@ msgstr "Spagnolo" msgid "Speaker Pan" msgstr "Panning Altoparlante" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volume Altoparlante:" @@ -9665,11 +9713,11 @@ msgstr "Avvia a Schermo Intero." msgid "Start with Riivolution Patches" msgstr "Avvia con le Patch Riivolution" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Avvia con le Patch Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Gioco avviato" @@ -9842,10 +9890,10 @@ msgstr "Stilo" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Completato" @@ -9863,16 +9911,16 @@ msgstr "Convertiti con successo %n immagini." msgid "Successfully deleted '%1'." msgstr "'%1' eliminato con successo." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Esportati con successo %n file di salvataggio su %1." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "File di salvataggio esportati con successo" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "I certificati sono stati estratti con successo dalla NAND" @@ -9884,16 +9932,16 @@ msgstr "File estratto con successo." msgid "Successfully extracted system data." msgstr "Dati di sistema estratti con successo." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Salvataggio importato con successo." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Il titolo è stato installato con successo su NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Il titolo è stato rimosso con successo dalla NAND." @@ -9901,7 +9949,7 @@ msgstr "Il titolo è stato rimosso con successo dalla NAND." msgid "Support" msgstr "Supporto" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Formato file supportati" @@ -9937,11 +9985,11 @@ msgstr "" msgid "Swing" msgstr "Ruota/Oscilla" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Scambia ad A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Scambia a B" @@ -10025,7 +10073,7 @@ msgstr "Sincronizzazione codici Gecko..." msgid "Synchronizing save data..." msgstr "Sincronizzazione dei dati di salvataggio in corso..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Lingua di Sistema:" @@ -10040,8 +10088,8 @@ msgstr "TAS Input" msgid "TAS Tools" msgstr "Strumenti TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10112,7 +10160,7 @@ msgstr "Il file IPL non è un dump conosciuto ben formato. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "Le partizioni Capolavori sono assenti." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10120,7 +10168,7 @@ msgstr "" "Non è stato possibile riparare la NAND. Si consiglia di fare un backup dei " "dati attualmente presenti e ricominciare con una NAND pulita." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "La NAND è stata riparata." @@ -10178,11 +10226,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Impossibile leggere il disco (a {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Impossibile trovare il disco che stava per essere inserito." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10216,11 +10264,11 @@ msgstr "Il PID inserito non è valido." msgid "The entered VID is invalid." msgstr "Il VID inserito non è valido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "L'espressione contiene un errore di sintassi." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10252,6 +10300,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Il file {0} è già stato aperto, l'intestazione non verrà scritta." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Il filesystem non è valido o è illeggibile." @@ -10369,7 +10424,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Il codice AR decriptato risultante non contiene alcuna riga." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "Lo stesso file non può essere usato su più slot; è già usato da %1." @@ -10408,7 +10463,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "il file specificato \"{0}\" non esiste" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "La memory card di destinazione contiene già un file \"%1\"." @@ -10467,7 +10522,7 @@ msgstr "Ci sono troppe partizioni nella prima tabella delle partizioni." msgid "There is nothing to undo!" msgstr "Non c'è nulla da annullare!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "Non è stato possibile creare un collegamento sul desktop." @@ -10510,11 +10565,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Questo dispositivo USB è già stato accettato." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Questo WAD non è avviabile." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Questo WAD non è valido." @@ -10526,7 +10581,7 @@ msgstr "" "Questo simulatore di action replay non supporta codici automodificanti." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Impossibile annullare l'operazione!" @@ -10654,7 +10709,7 @@ msgstr "" "Questo software non dovrebbe essere utilizzato per la riproduzione di giochi " "di cui non sei legalmente in possesso." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Impossibile avviare questo titolo." @@ -10667,7 +10722,7 @@ msgstr "Questo titolo è impostato per utilizzare un IOS non valido." msgid "This title is set to use an invalid common key." msgstr "Questo titolo è impostato per utilizzare una common key non valida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10679,7 +10734,7 @@ msgstr "" "\n" "DSPHLE: Ucode sconosciuto (CRC = {0:08x}) - AX forzato" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10755,7 +10810,7 @@ msgstr "" "Tempo di input stabile richiesto per iniziare la calibrazione. (zero per " "disabilitare)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10797,7 +10852,7 @@ msgid "Toggle Aspect Ratio" msgstr "Attiva/Disattiva Aspetto" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Imposta/rimuovi Punto di Interruzione" @@ -10857,7 +10912,7 @@ msgstr "Tokenizzazione fallita." msgid "Toolbar" msgstr "Barra degli Strumenti" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Sopra" @@ -10909,8 +10964,8 @@ msgstr "Tocco" msgid "Traditional Chinese" msgstr "Cinese Tradizionale" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Errore Traversal" @@ -10918,7 +10973,7 @@ msgstr "Errore Traversal" msgid "Traversal Server" msgstr "Traversal Server" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" "Il traversal server è andato in time out durante la connessione con l'host." @@ -10945,7 +11000,7 @@ msgid "Triggers" msgstr "Grilletti" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10979,7 +11034,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "Errore USB Whitelist" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10991,7 +11046,7 @@ msgstr "" "

Nel dubbio, seleziona questa modalità." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -11003,7 +11058,7 @@ msgstr "" "

Non usarlo a meno che non riscontri rallentamenti " "con Ubershader Ibridi e hai una GPU molto potente." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -11017,7 +11072,7 @@ msgstr "" "durante la compilazione degli shader con un minore impatto sulle " "performance, ma il risultato dipende dai driver della scheda grafica." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Impossibile individuare automaticamente il modulo RSO" @@ -11077,11 +11132,11 @@ msgstr "Annulla Salvataggio dello Stato di Gioco" msgid "Uninstall" msgstr "Disinstalla" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Disinstalla dalla NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11101,11 +11156,11 @@ msgstr "Stati Uniti" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Sconosciuto" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando DVD {0:08x} sconosciuto - errore fatale" @@ -11153,11 +11208,11 @@ msgstr "Disco sconosciuto" msgid "Unknown error occurred." msgstr "Si è verificato un errore sconosciuto." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Errore sconosciuto {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Errore sconosciuto." @@ -11215,8 +11270,8 @@ msgstr "Unsigned Integer" msgid "Up" msgstr "Su" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Aggiorna" @@ -11278,11 +11333,11 @@ msgstr "Wii Remote in posizione verticale" msgid "Usage Statistics Reporting Settings" msgstr "Impostazioni Report Statistiche d'Uso" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Usa Database Interno per i Nomi dei Giochi" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Usa Stile Utente Personalizzato" @@ -11294,7 +11349,7 @@ msgstr "Usa Codec Lossless (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usa Modalità PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Avvisi di Errore" @@ -11389,11 +11444,11 @@ msgstr "" msgid "User Config" msgstr "Configurazione Utente" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Interfaccia Utente" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Stile Utente:" @@ -11423,7 +11478,7 @@ msgstr "" "di velocità a seconda del gioco e/o della tua GPU." "

Nel dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11434,7 +11489,7 @@ msgstr "" "

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
Altrimenti, nel dubbio, lascia disattivato." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11699,7 +11754,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Attenzione" @@ -11720,7 +11775,7 @@ msgstr "" "Attenzione: Il numero di blocchi indcati dal BAT ({0}) non coincide con il " "file di intestazione caricato ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11731,7 +11786,7 @@ msgstr "" "salvataggio prima di continuare, o caricare questo stesso stato con modalità " "sola-lettura off." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11741,7 +11796,7 @@ msgstr "" "l'attuale frame nel salvataggio (byte {0} < {1}) (frame {2} < {3}). Dovresti " "caricare un altro salvataggio prima di andare oltre." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11752,7 +11807,7 @@ msgstr "" "caricare questo stato in modalità sola-lettura off. Altrimenti probabilmente " "riscontrerai una desincronizzazione." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11832,7 +11887,7 @@ msgstr "" "Detection Arbitraria' è abilitato in Miglioramenti." "

Nel dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivi USB Ponte Accettati" @@ -11878,7 +11933,7 @@ msgstr "Pulsanti Wii Remote" msgid "Wii Remote Orientation" msgstr "Orientamento Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Impostazioni Wii Remote" @@ -11906,7 +11961,7 @@ msgstr "Wii e Wii Remote" msgid "Wii data is not public yet" msgstr "Dati Wii non ancora pubblici" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "File di salvataggio Wii (*.bin);;Tutti i File (*)" @@ -11914,7 +11969,7 @@ msgstr "File di salvataggio Wii (*.bin);;Tutti i File (*)" msgid "WiiTools Signature MEGA File" msgstr "File WIITools Signature MEGA" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11973,9 +12028,21 @@ msgstr "Scrivi su Log e Interrompi" msgid "Write to Window" msgstr "Scrivi in Finestra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Versione Errata" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12057,18 +12124,6 @@ msgstr "" "\n" "Sei sicuro di voler continuare lo stesso?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Stai tentando di usare il backend Vulkan (Metal) su un sistema operativo non " -"supportato. Per abilitare tutte le funzionalità, devi usare un macOS 10.14 " -"(Mojave) o successivo. Per favore non riferire alcun problema che potresti " -"riscontrare a meno che non accada anche con versione 10.14 o successiva." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -12121,7 +12176,7 @@ msgstr "Devi inserire un nome per la tua sessione!" msgid "You must provide a region for your session!" msgstr "Devi indicare una regione per la tua sessione!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "È necessario riavviare Dolphin affinché le modifiche abbiano effetto." @@ -12199,12 +12254,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "Impossibile caricare d3d12.dll." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "default" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "disconnesso" @@ -12267,13 +12322,13 @@ msgstr "" msgid "none" msgstr "inattivo" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "off" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "su" @@ -12310,7 +12365,7 @@ msgstr "disallineato" msgid "{0} (Masterpiece)" msgstr "{0} (Capolavori)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12338,7 +12393,7 @@ msgstr "" "fuori di Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocchi su {1}. Rapporto di compressione {2}%" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index fde9a7b3d2..7df646b96a 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2021\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -53,7 +53,7 @@ msgstr "" "このタイトルは販売物ではないため、Dolphinはゲームデータが改竄されていないこと" "を証明できません。" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -199,19 +199,19 @@ msgstr "" "%2 オブジェクト\n" "現在のフレーム: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 が入室しました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 が退室しました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 がゴルフ中" @@ -248,7 +248,7 @@ msgstr "%1% (標準)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -311,7 +311,7 @@ msgstr "&4x" msgid "&About" msgstr "Dolphinについて(&A)" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Add Memory Breakpoint" @@ -403,7 +403,7 @@ msgstr "削除(&D)" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Delete Watch" @@ -501,7 +501,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "UIの言語(&L):" @@ -558,7 +558,7 @@ msgstr "一時停止(&P)" msgid "&Play" msgstr "開始(&P)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "プロパティ(&P)" @@ -608,7 +608,7 @@ msgstr "速度制限(&S):" msgid "&Stop" msgstr "停止(&S)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "テーマ(&T):" @@ -638,7 +638,7 @@ msgstr "&Watch" msgid "&Website" msgstr "公式Webサイト(&W)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "公式Wiki(英語)で動作状況を確認(&W)" @@ -646,15 +646,15 @@ msgstr "公式Wiki(英語)で動作状況を確認(&W)" msgid "&Yes" msgstr "はい(&Y)" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' not found, no symbol names generated" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' not found, scanning for common functions instead" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "なし" @@ -691,9 +691,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -883,7 +883,7 @@ msgstr "< Less-than(より小さい)" msgid "" msgstr "なし" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<システムの言語>" @@ -900,8 +900,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Greater-than(より大きい)" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "ネットプレイのセッションは既に進行中です!" @@ -921,15 +921,15 @@ msgstr "" "\n" "このWADのバージョンで上書きしますか?元に戻すことはできません!" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "ディスクは既に挿入されています。" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "起動するタイトルを指定せずにステートセーブをロードすることはできません" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1092,7 +1092,7 @@ msgstr "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "ネットプレイ:チャットをアクティブ" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Active" @@ -1104,7 +1104,7 @@ msgstr "Active thread queue" msgid "Active threads" msgstr "Active threads" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "ビデオカード" @@ -1134,8 +1134,8 @@ msgstr "DSU Serverの追加" msgid "Add New USB Device" msgstr "USBデバイスを追加" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "ショートカットをデスクトップに追加" @@ -1162,18 +1162,18 @@ msgstr "Add memory breakpoint" msgid "Add to &watch" msgstr "Add to &watch" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Add to watch" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "追加" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1273,10 +1273,15 @@ msgstr "アフリカ" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1284,20 +1289,37 @@ msgid "All Files" msgstr "すべてのファイル" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "すべてのファイル (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "全てのステートセーブファイル (*.sav *.s##);; 全てのファイル (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "すべてのデバイス" @@ -1318,7 +1340,7 @@ msgstr "すべてのプレイヤーのセーブデータは同期されました msgid "Allow Mismatched Region Settings" msgstr "コンソール上の言語設定の不一致を許可" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "利用統計レポートを許可" @@ -1342,7 +1364,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "外部入力設定" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1398,7 +1420,7 @@ msgstr "アンチエイリアス:" msgid "Any Region" msgstr "すべて" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Append signature to" @@ -1427,7 +1449,7 @@ msgstr "Apploaderの日付" msgid "Apply" msgstr "適用" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Apply signature file" @@ -1439,7 +1461,7 @@ msgstr "Arbitrary Mipmap Detection" msgid "Are you sure that you want to delete '%1'?" msgstr "次のプロファイルを削除しますか? '%1'" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "このタイトルの実体ファイルを削除しますか?" @@ -1455,7 +1477,7 @@ msgstr "ネットプレイを終了しますか?" msgid "Are you sure?" msgstr "本当によろしいですか?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "アスペクト比" @@ -1472,7 +1494,7 @@ msgstr "コントローラ割り当て設定" msgid "Assign Controllers" msgstr "コントローラ割り当て設定" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1539,11 +1561,11 @@ msgstr "ウィンドウサイズを自動調整" msgid "Auto-Hide" msgstr "未操作時に隠す" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Auto-detect RSO modules?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1573,7 +1595,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1585,7 +1607,7 @@ msgstr "BP register " msgid "Back Chain" msgstr "Back Chain" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "ビデオAPI" @@ -1638,7 +1660,7 @@ msgstr "Bad offset provided." msgid "Bad value provided." msgstr "Bad value provided." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1673,7 +1695,7 @@ msgstr "基本設定" msgid "Bass" msgstr "バスドラム" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "バッチモードの使用にはタイトルの指定が必須です" @@ -1705,7 +1727,7 @@ msgstr "Binary SSL (write)" msgid "Bitrate (kbps):" msgstr "ビットレート (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1750,11 +1772,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Boot to Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND バックアップファイル (*.bin);;すべてのファイル (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii キー ファイル (*.bin);;すべてのファイル (*)" @@ -1762,7 +1784,7 @@ msgstr "BootMii キー ファイル (*.bin);;すべてのファイル (*)" msgid "Borderless Fullscreen" msgstr "ボーダレス フルスクリーン" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "下" @@ -1789,7 +1811,7 @@ msgstr "Breakpoint" msgid "Breakpoint encountered! Step out aborted." msgstr "Breakpoint encountered! Step out aborted." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Breakpoints" @@ -1823,12 +1845,12 @@ msgstr "ネットプレイセッションブラウザ(&N)" msgid "Buffer Size:" msgstr "バッファサイズ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "バッファサイズが変更されました: %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "バッファ:" @@ -1951,7 +1973,7 @@ msgstr "カメラ 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1959,14 +1981,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "ゲーム実行中はネットプレイセッションを開始できません!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1994,7 +2016,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "GC IPLが見つかりません" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -2020,7 +2042,7 @@ msgstr "面" msgid "Center and Calibrate" msgstr "センタリングとキャリブレーション" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "ディスクの入れ替え(&D)" @@ -2036,7 +2058,7 @@ msgstr "ディスクの入れ替え" msgid "Change Discs Automatically" msgstr "ディスク交換を自動化" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "次のディスクに変更:{0}" @@ -2093,7 +2115,7 @@ msgstr "ゲームリストの状態を監視" msgid "Check for updates" msgstr "最新版の入手先:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2108,16 +2130,19 @@ msgstr "チェックサム" msgid "China" msgstr "中国" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "メモリーカードを選択" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Choose priority input file" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Choose secondary input file" @@ -2142,7 +2167,7 @@ msgstr "クラシックコントローラ" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "全消去" @@ -2195,7 +2220,7 @@ msgstr "" msgid "Code:" msgstr "コード:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "コードを受け取りました!" @@ -2220,7 +2245,7 @@ msgstr "ゲーム開始前にシェーダをコンパイルする" msgid "Compiling Shaders" msgstr "シェーダをコンパイル中..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2272,23 +2297,23 @@ msgstr "出力設定" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "確認" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "ビデオAPI変更の確認" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "動作停止時に確認" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2343,7 +2368,7 @@ msgstr "インターネットに接続してWiiのシステム更新を行いま msgid "Connected" msgstr "Connected" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2463,11 +2488,11 @@ msgstr "収束点 (Convergence):" msgid "Convert" msgstr "ファイル形式の変換" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "このタイトルを変換..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "選択中のタイトルを変換..." @@ -2497,9 +2522,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "コピー" @@ -2511,19 +2536,19 @@ msgstr "Copy &function" msgid "Copy &hex" msgstr "Copy &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Copy Address" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copy Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2531,19 +2556,15 @@ msgstr "" msgid "Copy code &line" msgstr "Copy code &line" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "コピーに失敗" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Aへコピー" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Bへコピー" @@ -2587,14 +2608,14 @@ msgstr "" "更新情報のダウンロードに失敗。インターネット接続設定を確認してから改めて試し" "てください" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2642,7 +2663,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2654,15 +2675,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Couldn't look up central server" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2719,7 +2740,7 @@ msgstr "クロスフェーダー" msgid "Current Region" msgstr "現在の地域" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2826,23 +2847,23 @@ msgstr "データ転送" msgid "Data Type" msgstr "Data Type" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Data in area of file that should be unused." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Data in unrecognized format or corrupted." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "データが受信されました!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 形式" @@ -2944,21 +2965,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "削除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "このタイトルの実体を削除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "選択中のタイトルの実体を削除" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "既存のファイル '{0}' を削除しますか?" @@ -2974,10 +2995,10 @@ msgstr "深度 比率変更:" msgid "Depth:" msgstr "深度 (Depth):" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2997,7 +3018,7 @@ msgstr "Detached" msgid "Detect" msgstr "検出" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Detecting RSO Modules" @@ -3018,7 +3039,7 @@ msgstr "デバイス" msgid "Device PID (e.g., 0305)" msgstr "デバイス PID (例:0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "デバイス設定" @@ -3071,8 +3092,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Disable" @@ -3179,25 +3200,25 @@ msgstr "距離" msgid "Distance of travel from neutral position." msgstr "振りの強さをニュートラルポジションからの距離で指定" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Dolphinの開発者への情報提供にご協力いただけますか?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "\"%1\" をゲームパスリストに追加しますか?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Do you want to clear the list of symbol names?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "選択中の %n 個のセーブファイルを削除しますか?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "動作中のゲームを停止しますか?" @@ -3214,9 +3235,9 @@ msgstr "Dolphin FIFO ログファイル (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin Map File (*.map)" @@ -3228,8 +3249,8 @@ msgstr "Dolphin Signature CSV File" msgid "Dolphin Signature File" msgstr "Dolphin Signature File" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS ムービー (*.dtm)" @@ -3244,7 +3265,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3264,7 +3285,7 @@ msgstr "要求された操作を完了することができませんでした。 msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin is a free and open-source GameCube and Wii emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphinのバージョンが古すぎます" @@ -3331,7 +3352,7 @@ msgstr "Webからコードを入手" msgid "Download Codes from the WiiRD Database" msgstr "Webからコードを入手 (WiiRD Database)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "グリッド表示でパッケージ画像を使用 ( GameTDB.comより取得 )" @@ -3523,7 +3544,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "オランダ語" @@ -3601,7 +3622,7 @@ msgstr "Embedded Frame Buffer (内蔵フレームバッファ)" msgid "Empty" msgstr "空き" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "エミュレーションスレッドはすでに稼働中です" @@ -3636,8 +3657,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "有効" @@ -3687,7 +3708,7 @@ msgid "Enable Progressive Scan" msgstr "プログレッシブ表示を有効化" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "振動を有効にする" @@ -3826,7 +3847,7 @@ msgstr "" msgid "Encoding" msgstr "エンコード" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3843,7 +3864,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet Didn't Initialize" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "英語" @@ -3876,7 +3897,7 @@ msgstr "ブロードバンドアダプタのMACアドレスを入力" msgid "Enter password" msgstr "ここにパスワードを入力" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Enter the RSO module address:" @@ -3888,7 +3909,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3907,46 +3928,47 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "エラー" @@ -3968,11 +3990,11 @@ msgstr "セッションリストの取得エラー: %1" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "データ処理中にエラーが発生しました" @@ -3992,7 +4014,7 @@ msgstr "セーブデータ同期中にエラー発生!" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4144,10 +4166,10 @@ msgstr "実験的" msgid "Export All Wii Saves" msgstr "全てのWiiセーブデータをエクスポート" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "エクスポート失敗" @@ -4159,19 +4181,19 @@ msgstr "録画ファイルのエクスポート" msgid "Export Recording..." msgstr "録画ファイルのエクスポート" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "セーブファイルをエクスポート" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "複数のセーブファイルをエクスポート" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "セーブデータをエクスポート" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -4183,7 +4205,7 @@ msgstr "GCS形式でエクスポート..." msgid "Export as .&sav..." msgstr "SAV形式でエクスポート..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4257,7 +4279,7 @@ msgstr "FIFO プレーヤー" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4269,19 +4291,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Redump.org に接続できませんでした" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "サーバー %1 に接続できませんでした" @@ -4312,11 +4334,11 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "ネットプレイ メモリカードの削除に失敗しました。書き込み権限を確認してください" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "選択したファイルの削除に失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4332,16 +4354,16 @@ msgstr "Failed to dump %1: Can't open file" msgid "Failed to dump %1: Failed to write to file" msgstr "Failed to dump %1: Failed to write to file" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "次のセーブファイルをエクスポートできませんでした:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "証明書ファイルの取り出しに失敗" @@ -4364,29 +4386,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Failed to find one or more D3D symbols" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "\"%1\" をインポートできませんでした" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Failed to init core" @@ -4406,12 +4428,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "リソースパック %1 をインストールできませんでした" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "タイトルのインストールに失敗" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4419,8 +4441,8 @@ msgstr "" "ポート番号 %1 で待ち受けできませんでした。別のネットプレイサーバーが実行中に" "なっていませんか?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Failed to load RSO module at %1" @@ -4432,7 +4454,7 @@ msgstr "Failed to load d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Failed to load dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Failed to load map file '%1'" @@ -4446,13 +4468,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' のオープンに失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4476,11 +4498,11 @@ msgstr "" "外部エディタでファイルを開くことができませんでした\n" "INIファイルに関連付けされているソフトを確認してください" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "ファイルを" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "サーバーを開けませんでした" @@ -4489,7 +4511,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4509,25 +4531,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4538,7 +4560,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "タイトルの消去に失敗" @@ -4562,19 +4584,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "FIFOログの保存に失敗しました" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Failed to save code map to path '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Failed to save signature file '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Failed to save symbol map to path '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Failed to save to signature file '%1'" @@ -4598,9 +4620,9 @@ msgstr "Wii セーブデータの書き込みに失敗しました" msgid "Failed to write config file!" msgstr "設定ファイルの書き込みに失敗!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4608,21 +4630,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "セーブファイルのディスクへの書き込みに失敗" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "失敗" @@ -4647,7 +4669,7 @@ msgstr "Fast" msgid "Fast Depth Calculation" msgstr "Fast Depth Calculation" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4662,7 +4684,7 @@ msgstr "視野角(Field of View)" msgid "File Details" msgstr "ファイル情報" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4676,19 +4698,19 @@ msgstr "ファイル形式:" msgid "File Info" msgstr "ファイル情報" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "ファイル名" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "ファイルサイズ" @@ -4715,12 +4737,12 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "ファイルサイズがどの種類のゲームキューブメモリカードにも適合しなかったため" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "Filesize in header mismatches actual card size." @@ -4776,7 +4798,7 @@ msgstr "First Person" msgid "Fix Checksums" msgstr "チェックサムを修正" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "チェックサムの修正に失敗" @@ -4786,7 +4808,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flags" @@ -4934,11 +4956,11 @@ msgstr "記録するフレーム数" msgid "France" msgstr "フランス" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "空きブロック数:%1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "追加可能なファイル数:%1" @@ -4980,7 +5002,7 @@ msgid "Freelook Toggle" msgstr "フリールック 切替" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "フランス語" @@ -5009,7 +5031,7 @@ msgstr "開始" msgid "FullScr" msgstr "全画面" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Function" @@ -5041,7 +5063,7 @@ msgstr "GBA コア" msgid "GBA Port %1" msgstr "GBAポート %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "GBA設定" @@ -5053,11 +5075,11 @@ msgstr "GBA 音量" msgid "GBA Window Size" msgstr "GBA 画面サイズ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBAのROMを %1 から \"%2\" へ変更" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBAのROM %1 を無効化" @@ -5177,11 +5199,11 @@ msgstr "タイトル" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "ゲームボーイアドバンスROMファイル (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5205,7 +5227,7 @@ msgstr "ゲーム情報" msgid "Game Folders" msgstr "ゲームファイルのあるフォルダ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ゲームID" @@ -5219,11 +5241,25 @@ msgstr "ゲームID" msgid "Game Status" msgstr "状態" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "次のゲームに変更 \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "すでに起動しています!" @@ -5232,6 +5268,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "固有設定" @@ -5272,12 +5312,12 @@ msgstr "ゲームキューブ キーボード設定 - ポート %1" msgid "GameCube Memory Card Manager" msgstr "ゲームキューブ メモリーカードマネージャ" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "ゲームキューブ メモリーカードファイル" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "ゲームキューブ メモリーカードファイル (*.raw *.gcp)" @@ -5310,7 +5350,7 @@ msgstr "一般" msgid "General and Options" msgstr "全般" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "アクションリプレイコードを生成" @@ -5318,16 +5358,16 @@ msgstr "アクションリプレイコードを生成" msgid "Generate a New Statistics Identity" msgstr "新しい統計IDを作成する" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Generated symbol names from '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "ドイツ語" @@ -5336,14 +5376,14 @@ msgstr "ドイツ語" msgid "Germany" msgstr "ドイツ" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Go to" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golf Mode" @@ -5519,15 +5559,15 @@ msgstr "" "す\n" "3人以上の環境で、通信が不安定な場合やレイテンシが大きい場合に効果的です" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Host Input Authority が無効になりました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Host Input Authority が有効になりました" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "ネットプレイを開始(ホスト)" @@ -5545,7 +5585,7 @@ msgstr "ホットキーのカスタマイズ" msgid "Hotkeys" msgstr "ホットキー" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "フォーカスがあるときのみホットキーを動作させる" @@ -5590,7 +5630,7 @@ msgstr "" msgid "IP Address:" msgstr "IPアドレス:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL設定" @@ -5599,7 +5639,7 @@ msgid "IR" msgstr "ポインタ" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Wiiリモコンの感度" @@ -5656,7 +5696,7 @@ msgstr "" msgid "Identity Generation" msgstr "IDの作成" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5708,7 +5748,7 @@ msgstr "無視" msgid "Ignore Format Changes" msgstr "Ignore Format Changes" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "このセッションでは無視" @@ -5758,14 +5798,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "BootMii NAND バックアップをインポート" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "インポートに失敗" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "セーブファイルのインポート" @@ -5773,11 +5813,11 @@ msgstr "セーブファイルのインポート" msgid "Import Wii Save..." msgstr "Wii セーブデータのインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "NAND バックアップをインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5855,21 +5895,21 @@ msgid "Info" msgstr "情報" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "情報" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "エミュレーション中はスクリーンセーバーを起動させない" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "入力" @@ -5914,7 +5954,7 @@ msgstr "自動更新" msgid "Install WAD..." msgstr "WiiメニューにWADファイルを追加" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "NANDへインストール" @@ -5930,7 +5970,7 @@ msgstr "Instruction" msgid "Instruction Breakpoint" msgstr "Instruction Breakpoint" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instruction:" @@ -5979,7 +6019,7 @@ msgstr "レンダリング解像度" msgid "Internal Resolution:" msgstr "レンダリング解像度の変更:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5991,7 +6031,7 @@ msgstr "Interpreter (非常に低速)" msgid "Interpreter Core" msgstr "Interpreter Core" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -6008,7 +6048,7 @@ msgstr "無効なリソースパック %1 が与えられました:%2" msgid "Invalid Player ID" msgstr "無効なプレイヤーID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Invalid RSO module address: %1" @@ -6016,7 +6056,7 @@ msgstr "Invalid RSO module address: %1" msgid "Invalid callstack" msgstr "Invalid callstack" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -6024,7 +6064,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "このホストコードは無効です" @@ -6033,7 +6073,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Invalid input for the field \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Invalid input provided" @@ -6065,7 +6105,7 @@ msgstr "無効な検索文字列。 数値に検索文字列を変換できま msgid "Invalid search string (only even string lengths supported)" msgstr "無効な検索文字列。偶数の長さの検索文字列のみがサポートされています。" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "無効なタイトルID" @@ -6074,7 +6114,7 @@ msgid "Invalid watch address: %1" msgstr "Invalid watch address: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "イタリア語" @@ -6181,7 +6221,7 @@ msgstr "日本語" msgid "Japanese (Shift-JIS)" msgstr "日本用 (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "最前面に表示" @@ -6249,7 +6289,7 @@ msgstr "LR Save" msgid "Label" msgstr "Label" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6353,7 +6393,7 @@ msgstr "Listening" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "読込" @@ -6488,7 +6528,7 @@ msgstr "次のスロットからロード" msgid "Load Wii Save" msgstr "Wiiのセーブデータを読込む" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Wiiメニューを起動 %1" @@ -6500,8 +6540,8 @@ msgstr "選択したスロットから読込" msgid "Load from Slot %1 - %2" msgstr "スロット %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Load map file" @@ -6509,7 +6549,7 @@ msgstr "Load map file" msgid "Load..." msgstr "読込" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Loaded symbols from '%1'" @@ -6528,7 +6568,7 @@ msgstr "" msgid "Local" msgstr "IPアドレスと使用ポート番号" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "マウスカーソルをロック" @@ -6557,7 +6597,7 @@ msgstr "表示するログ情報" msgid "Logger Outputs" msgstr "ログ出力先" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6572,7 +6612,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "ネットプレイサーバーへの接続が失われました..." @@ -6601,7 +6641,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "MadCatz Gameshark 形式" @@ -6609,7 +6649,7 @@ msgstr "MadCatz Gameshark 形式" msgid "Main Stick" msgstr "コントロールスティック" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6652,11 +6692,11 @@ msgstr "" msgid "Match Found" msgstr "Match Found" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "最大バッファサイズ:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "最大バッファサイズが変更されました: %1" @@ -6692,16 +6732,6 @@ msgstr "メモリーカード" msgid "Memory Card Manager" msgstr "GCメモリーカードマネージャ" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Memory Override" @@ -6710,19 +6740,19 @@ msgstr "Memory Override" msgid "Memory breakpoint options" msgstr "Memory breakpoint options" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6754,16 +6784,16 @@ msgstr "その他" msgid "Misc Settings" msgstr "その他の設定" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Mismatch between free block count in header and actually unused blocks." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Mismatch between internal data structures." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6789,8 +6819,8 @@ msgstr "" "機能を使用するにはゲームの再起動が必要です。

よく分" "からなければ、チェックを入れないでください。" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Modules found: %1" @@ -6819,20 +6849,20 @@ msgstr "モーション" msgid "Motor" msgstr "モーター" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6846,14 +6876,20 @@ msgstr "移動" msgid "Movie" msgstr "記録" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND 整合性チェック" @@ -6884,11 +6920,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "名前" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "新しいタグに名前を付ける:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "削除するタグ名を入力" @@ -6909,8 +6945,8 @@ msgstr "名前" msgid "Native (640x528)" msgstr "Native (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "ネイティブGCI 形式" @@ -6930,11 +6966,11 @@ msgstr "ネットプレイ《セットアップ》" msgid "Netherlands" msgstr "オランダ" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay has desynced in NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "ネットプレイはdesyncしました。これを回復する方法はありません。" @@ -6947,7 +6983,7 @@ msgstr "ネットワーク関係" msgid "Network dump format:" msgstr "Network dump format:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6955,7 +6991,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "自動更新を止める" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "New" @@ -6968,7 +7004,7 @@ msgstr "New Breakpoint" msgid "New Search" msgstr "新しい検索" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "新しいタグ" @@ -6980,7 +7016,7 @@ msgstr "新しいIDが作成されました。" msgid "New instruction:" msgstr "New instruction:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "新しいタグ" @@ -7037,13 +7073,13 @@ msgstr "No Match" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "説明なし" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -7063,10 +7099,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "問題は見つかりませんでした" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -7097,7 +7137,7 @@ msgstr "" msgid "No recording loaded." msgstr "記録ファイルが読み込まれていません" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "セーブデータが見つかりませんでした" @@ -7119,10 +7159,6 @@ msgstr "なし" msgid "North America" msgstr "北アメリカ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "未定義" @@ -7131,7 +7167,7 @@ msgstr "未定義" msgid "Not all players have the game. Do you really want to start?" msgstr "このタイトルを持っていないプレイヤーがいます。続けますか?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7141,7 +7177,7 @@ msgstr "" "インポート先のメモリーカードの空きブロック数が不足しています。最低でも %n ブ" "ロックの空きが必要です" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7151,6 +7187,10 @@ msgstr "" "インポート先のメモリーカードの追加可能ファイル数が不足しています。最低でも " "%n ファイルの空きが必要です" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7203,7 +7243,7 @@ msgstr "ヌンチャク モーションセンサー" msgid "Nunchuk Stick" msgstr "ヌンチャクスティック" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7234,7 +7274,7 @@ msgstr "Offset" msgid "On" msgstr "有効" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -7242,7 +7282,7 @@ msgstr "" msgid "Online &Documentation" msgstr "オンラインガイドを表示(&D)" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7250,7 +7290,7 @@ msgstr "" "Only append symbols with prefix:\n" "(Blank for all symbols)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7263,7 +7303,7 @@ msgstr "" msgid "Open" msgstr "開く" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "実体ファイルのあるフォルダを開く(&C)" @@ -7275,7 +7315,7 @@ msgstr "フォルダを開く..." msgid "Open FIFO log" msgstr "FIFOログファイルを選択" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "セーブデータのあるフォルダを開く(&S)" @@ -7283,7 +7323,7 @@ msgstr "セーブデータのあるフォルダを開く(&S)" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "セーブデータのあるフォルダを開く(&S)" @@ -7471,7 +7511,7 @@ msgstr "一時停止" msgid "Pause at End of Movie" msgstr "再生終了時に一時停止" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "フォーカスが外れたら一時停止" @@ -7498,7 +7538,7 @@ msgstr "Per-Pixel Lighting" msgid "Perform Online System Update" msgstr "Wii システムアップデート" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Wii システムアップデート" @@ -7516,7 +7556,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Pick a debug font" @@ -7532,7 +7572,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "機種" @@ -7578,7 +7618,7 @@ msgstr "ポインタ" msgid "Port %1" msgstr "ポート %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "Port %1 のROM:" @@ -7587,7 +7627,7 @@ msgstr "Port %1 のROM:" msgid "Port:" msgstr "ポート:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7607,15 +7647,15 @@ msgstr "ポストプロセスシェーダーの設定" msgid "Prefetch Custom Textures" msgstr "カスタムテクスチャの事前読込" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7640,7 +7680,7 @@ msgstr "Syncボタン 押下" msgid "Pressure" msgstr "筆圧" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7729,7 +7769,7 @@ msgstr "誰でも" msgid "Purge Game List Cache" msgstr "ゲームリストのキャッシュを消去" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7757,8 +7797,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "確認" @@ -7786,7 +7826,7 @@ msgstr "READY" msgid "RSO Modules" msgstr "RSO Modules" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO auto-detection" @@ -7937,12 +7977,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "セッションリストを更新中..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7972,12 +8012,12 @@ msgstr "また今度" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "削除" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7985,11 +8025,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "不要データを消去 (不可逆処理):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "タグの削除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "タグを削除" @@ -8009,7 +8049,7 @@ msgstr "" msgid "Rename symbol" msgstr "Rename symbol" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "ゲームウィンドウの設定" @@ -8090,7 +8130,7 @@ msgstr "リソースパックマネージャ" msgid "Resource Pack Path:" msgstr "リソースパックの場所" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "再起動が必要" @@ -8102,7 +8142,7 @@ msgstr "" msgid "Restore instruction" msgstr "Restore instruction" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "再試行" @@ -8202,7 +8242,7 @@ msgstr "振動" msgid "Run &To Here" msgstr "Run &To Here" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Run GBA Cores in Dedicated Threads" @@ -8234,7 +8274,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "シリアルポート1" @@ -8263,7 +8303,7 @@ msgstr "Safe" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8273,9 +8313,9 @@ msgstr "保存" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8296,11 +8336,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -8312,7 +8352,7 @@ msgstr "最古のステートに上書き保存" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8398,11 +8438,11 @@ msgstr "" msgid "Save as..." msgstr "ファイルとして保存" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Save combined output file as" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8412,15 +8452,15 @@ msgstr "" "在のセーブデータのバックアップを行って下さい。\n" "セーブデータの上書きを続行しますか?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "ROMと同じフォルダにセーブファイルを保存する" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Save map file" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Save signature file" @@ -8440,11 +8480,11 @@ msgstr "保存" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "ペアリングの初期化はWiiのゲームを実行中にのみ行なえます" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "セーブ保存先" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8497,7 +8537,7 @@ msgstr "Search for an Instruction" msgid "Search games..." msgstr "ゲームタイトルを検索" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Search instruction" @@ -8529,20 +8569,20 @@ msgstr "選択" msgid "Select Dump Path" msgstr "ダンプ先を選択" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "エクスポート先フォルダを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "GBAのBIOSファイルを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "GBAのROMファイルを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "GBAセーブファイルの保存先を選択" @@ -8622,7 +8662,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Wii NANDルート" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "フォルダを選択" @@ -8630,9 +8670,9 @@ msgstr "フォルダを選択" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "ファイルを選択" @@ -8652,7 +8692,7 @@ msgstr "" msgid "Select a game" msgstr "タイトルを選択" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "NANDにインストールするタイトルを選択" @@ -8660,11 +8700,11 @@ msgstr "NANDにインストールするタイトルを選択" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Select the RSO module address:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8672,12 +8712,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "キーファイル (OTP/SEEPROM ダンプ)を選択" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "セーブファイルを選択" @@ -8699,9 +8739,9 @@ msgstr "選択されたプロファイルは存在しません" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "選択されたゲームがゲームリストに存在しません!" @@ -8713,7 +8753,7 @@ msgstr "Selected thread callstack" msgid "Selected thread context" msgstr "Selected thread context" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8721,7 +8761,7 @@ msgstr "" "描画に使用するビデオカードを選択します。

%1 はこの機" "能をサポートしません。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8763,7 +8803,7 @@ msgstr "" "す。両方試して上手く動作する方を選びましょう。

よく" "分からなければ、【OpenGL】を選択してください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8778,7 +8818,7 @@ msgstr "" "

よく分からなければ、【自動】を選択してください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8798,7 +8838,7 @@ msgstr "" msgid "Send" msgstr "送信" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "センサーバーの位置" @@ -8818,7 +8858,7 @@ msgstr "サーバーのIPアドレス" msgid "Server Port" msgstr "サーバーのポート" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "サーバーが中継処理を拒否しました" @@ -8839,15 +8879,15 @@ msgstr "Set PC" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Wiiメニュー(ディスクチャンネル)に表示(&D)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "スロットAに読み込むメモリーカードファイルを選択" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "スロットBに読み込むメモリーカードファイルを選択" @@ -8930,7 +8970,7 @@ msgstr "ログを表示(&L)" msgid "Show &Toolbar" msgstr "ツールバー(&T)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "タイトルバーに起動中のゲーム名を表示" @@ -8946,7 +8986,7 @@ msgstr "オーストラリア" msgid "Show Current Game on Discord" msgstr "Discordにプレイ中のゲームを表示" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "デバッグモード" @@ -9018,7 +9058,7 @@ msgstr "ネットプレイ:Ping表示" msgid "Show Netherlands" msgstr "オランダ" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "オンスクリーンメッセージを表示" @@ -9088,10 +9128,23 @@ msgstr "地域なし" msgid "Show in &memory" msgstr "Show in &memory" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Show in code" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "セッションブラウザに表示" @@ -9108,7 +9161,7 @@ msgstr "" "Show various rendering statistics.

If unsure, leave " "this unchecked." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9117,7 +9170,7 @@ msgstr "" "画面に表示します。

よく分からなければ、チェックを入" "れないでください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
よく分からなければ、チェックを入れない" "でください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9221,7 +9274,7 @@ msgstr "Skip Drawing" msgid "Skip EFB Access from CPU" msgstr "Skip EFB Access from CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "メインメニューをスキップ" @@ -9252,7 +9305,7 @@ msgstr "" msgid "Slot A" msgstr "スロットA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "スロットA" @@ -9260,7 +9313,7 @@ msgstr "スロットA" msgid "Slot B" msgstr "スロットB" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "スロットB" @@ -9316,7 +9369,7 @@ msgid "Spain" msgstr "スペイン" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "スペイン語" @@ -9325,7 +9378,7 @@ msgstr "スペイン語" msgid "Speaker Pan" msgstr "スピーカー パン調整" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "リモコンスピーカー音量" @@ -9407,11 +9460,11 @@ msgstr "フルスクリーンで開始" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "ゲームを開始" @@ -9584,10 +9637,10 @@ msgstr "スタイラス" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "完了" @@ -9605,16 +9658,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr " '%1' の削除に成功しました" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "セーブファイルのエクスポートに成功しました" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "証明書ファイルの取り出しに成功しました" @@ -9626,16 +9679,16 @@ msgstr "ファイルの取り出しに成功しました" msgid "Successfully extracted system data." msgstr "システムデータの取り出しに成功しました" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "タイトルのインストールに成功しました" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "タイトルの消去に成功しました" @@ -9643,7 +9696,7 @@ msgstr "タイトルの消去に成功しました" msgid "Support" msgstr "サポート" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "サポートしているすべての形式" @@ -9679,11 +9732,11 @@ msgstr "" msgid "Swing" msgstr "動き" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "スロットAを操作" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "スロットBを操作" @@ -9762,7 +9815,7 @@ msgstr "Geckoコードの同期中..." msgid "Synchronizing save data..." msgstr "セーブデータの同期中..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "システムの言語:" @@ -9777,8 +9830,8 @@ msgstr "TAS Input" msgid "TAS Tools" msgstr "TAS関係" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9847,7 +9900,7 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "The Masterpiece partitions are missing." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9855,7 +9908,7 @@ msgstr "" "NANDを修復できませんでした。現在のデータをバックアップして、NANDのダンプから" "やり直すことをオススメします" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NANDの修復に成功しました" @@ -9903,11 +9956,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "The disc could not be read (at {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9941,11 +9994,11 @@ msgstr "入力されたデバイス PIDは無効です。" msgid "The entered VID is invalid." msgstr "入力されたデバイス VIDは無効です。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9969,6 +10022,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "The filesystem is invalid or could not be read." @@ -10069,7 +10129,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "復号化しましたが、このコードにはひとつも行が含まれていません。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10106,7 +10166,7 @@ msgstr "The specified common key index is {0} but should be {1}." msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" "インポート先のメモリーカードには既にこのファイルのデータが存在します%n\"%1\"" @@ -10164,7 +10224,7 @@ msgstr "There are too many partitions in the first partition table." msgid "There is nothing to undo!" msgstr "取り消すものがありません!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -10203,11 +10263,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "このデバイスは既に登録済みです。" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "このWADファイルは起動できません。" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "このWADは無効です" @@ -10220,7 +10280,7 @@ msgstr "" "コードはサポートしていません。" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "元に戻すことはできません!" @@ -10328,7 +10388,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "このタイトルは起動できません" @@ -10341,7 +10401,7 @@ msgstr "This title is set to use an invalid IOS." msgid "This title is set to use an invalid common key." msgstr "This title is set to use an invalid common key." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10353,7 +10413,7 @@ msgstr "" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10417,7 +10477,7 @@ msgstr "傾き" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10459,7 +10519,7 @@ msgid "Toggle Aspect Ratio" msgstr "アスペクト比 設定切替" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Toggle Breakpoint" @@ -10519,7 +10579,7 @@ msgstr "" msgid "Toolbar" msgstr "ツールバー" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "上" @@ -10571,8 +10631,8 @@ msgstr "タッチボード" msgid "Traditional Chinese" msgstr "繁体字中国語" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10580,7 +10640,7 @@ msgstr "" msgid "Traversal Server" msgstr "中継サーバー (Traversal)" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "中継サーバーからホストへの接続がタイムアウト" @@ -10604,7 +10664,7 @@ msgid "Triggers" msgstr "トリガー" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10638,7 +10698,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10649,7 +10709,7 @@ msgstr "" "

よく分からなければ、これを選択してください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10661,7 +10721,7 @@ msgstr "" "で、Hybrid Ubershaders では問題がある場合にしかオススメできません。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10674,7 +10734,7 @@ msgstr "" "パフォーマンスへの影響を最小限に抑えつつカクつきが解消されるはずですが、実際" "どのような結果になるかは使用中のビデオドライバに依存します。" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Unable to auto-detect RSO module" @@ -10734,11 +10794,11 @@ msgstr "直前のステートセーブの取消" msgid "Uninstall" msgstr "アンインストール" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "NANDからアンインストール" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10756,11 +10816,11 @@ msgstr "米国" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "フィルタ無し" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10804,11 +10864,11 @@ msgstr "Unknown disc" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Unknown error." @@ -10864,8 +10924,8 @@ msgstr "Unsigned Integer" msgid "Up" msgstr "上" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "再取得" @@ -10927,11 +10987,11 @@ msgstr "直立状態(Upright)で使用" msgid "Usage Statistics Reporting Settings" msgstr "統計レポートの設定" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "ゲーム名の表記に内蔵リストを使用" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "カスタムテーマを使用 (Custom User Style)" @@ -10943,7 +11003,7 @@ msgstr "Use Lossless Codec (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 (EuRGB60) モードを使用" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "パニックハンドラを使用" @@ -11004,11 +11064,11 @@ msgstr "" msgid "User Config" msgstr "ユーザー設定" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Dolphinの表示に関する設定" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "カスタムテーマ:" @@ -11035,7 +11095,7 @@ msgstr "" "場合もあります。

よく分からなければ、チェックを外さ" "ないでください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11045,7 +11105,7 @@ msgstr "" "画面でのエミュレーションとなります。

よく分からなけ" "れば、チェックを入れないでください。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
よく分からなければ、チェックを入れないでく" "ださい。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11292,7 +11352,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "警告" @@ -11309,28 +11369,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11385,7 +11445,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "常にパススルーを行うUSBデバイスリスト" @@ -11431,7 +11491,7 @@ msgstr "Wiiリモコン ボタン" msgid "Wii Remote Orientation" msgstr "Wiiリモコン モーションセンサー" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wiiリモコンの設定" @@ -11459,7 +11519,7 @@ msgstr "WiiとWiiリモコン" msgid "Wii data is not public yet" msgstr "Wii data is not public yet" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii セーブファイル (*.bin);;すべてのファイル (*)" @@ -11467,7 +11527,7 @@ msgstr "Wii セーブファイル (*.bin);;すべてのファイル (*)" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11526,8 +11586,20 @@ msgstr "Write to Log and Break" msgid "Write to Window" msgstr "ウィンドウに出力" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11594,17 +11666,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Vulkan (Metal) API をサポートしていないOSで有効にしようとしています。\n" -"すべての機能を有効化するには macOS 10.14 (Mojave) 以降のOSが必要です。\n" -"これより前のOSで問題が発生してもバグ報告はしないでください。" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "最新バージョンを使用しているようです" @@ -11645,7 +11706,7 @@ msgstr "セッションに名前を付けてください!" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "この変更を適用するにはDolphinを再起動してください" @@ -11715,12 +11776,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll could not be loaded." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "既定" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11783,13 +11844,13 @@ msgstr "" msgid "none" msgstr "なし" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "off" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "on" @@ -11826,7 +11887,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11849,7 +11910,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index 684e508ae3..c37f170ca5 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -46,7 +46,7 @@ msgstr "" "이 타이틀은 리테일 Wii 콘솔을 위한 것이 아니여서, 돌핀은 그것이 조작되었는지 " "검증할 수 없습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -191,19 +191,19 @@ msgstr "" "%2 오브젝트(들)\n" "현재 프레임: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 가 참가했습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 가 떠났습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 는 적합한 롬이 아닙니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 은 지금 골프중입니다" @@ -240,7 +240,7 @@ msgstr "%1% (보통 속도)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -303,7 +303,7 @@ msgstr "&4x" msgid "&About" msgstr "돌핀 정보(&A)" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "메모리 중단점 추가 (&A)" @@ -395,7 +395,7 @@ msgstr "삭제 (&)" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "관찰 삭제 (&D)" @@ -455,7 +455,7 @@ msgstr "GitHub 저장소(&G)" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:442 msgid "&Go to start of function" -msgstr "" +msgstr "함수의 시작으로 가기(&G)" #: Source/Core/DolphinQt/MenuBar.cpp:523 msgid "&Graphics Settings" @@ -493,7 +493,7 @@ msgstr "프레임간 혼합(&I)" msgid "&JIT" msgstr "JIT(&J)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "언어(&L):" @@ -550,7 +550,7 @@ msgstr "일시정지(&P)" msgid "&Play" msgstr "실행(&P)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "속성(&P)" @@ -600,7 +600,7 @@ msgstr "속도 제한(&S):" msgid "&Stop" msgstr "중지(&S)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "테마(&T):" @@ -630,7 +630,7 @@ msgstr "관찰(&W)" msgid "&Website" msgstr "웹사이트(&W)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "위키(&W)" @@ -638,15 +638,15 @@ msgstr "위키(&W)" msgid "&Yes" msgstr "예(&Y)" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' 이 발견되지 않았습니다, 생성된 부호 이름이 없습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' 이 발견되지 않았습니다, 공통 함수들을 대신 스캔합니다" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(없음)" @@ -683,9 +683,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -699,7 +699,7 @@ msgstr "128 Mbit (2043 블락)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "16 Bytes" -msgstr "" +msgstr "16 바이트" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:28 msgid "16 Mbit (251 blocks)" @@ -787,7 +787,7 @@ msgstr "3x 원본 (1920x1584) 1080p용" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 msgid "4 Bytes" -msgstr "" +msgstr "4 바이트" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:26 msgid "4 Mbit (59 blocks)" @@ -839,7 +839,7 @@ msgstr "7x 원본 (4480x3696)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 msgid "8 Bytes" -msgstr "" +msgstr "8 바이트" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:27 msgid "8 Mbit (123 blocks)" @@ -875,7 +875,7 @@ msgstr "< 보다-적은" msgid "" msgstr "<없음>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<시스템 언어>" @@ -893,8 +893,8 @@ msgstr "" msgid "> Greater-than" msgstr "> 보다-큰" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "넷플레이 세션이 이미 진행 중입니다!" @@ -914,15 +914,15 @@ msgstr "" "\n" "이 WAD 를 설치하면 되돌릴 수 없게 바꾸게 됩니다. 계속합니까?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "디스크가 이미 삽입되려는 중입니다." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "저장 상태는 시작할 게임 명시 없이는 로드될 수 없습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1087,7 +1087,7 @@ msgstr "액션 리플레이: 일반 코드 0: 올바르지 않은 하위 분류 msgid "Activate NetPlay Chat" msgstr "넷플레이 채팅 활성" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "액티브" @@ -1099,7 +1099,7 @@ msgstr "활성 쓰레드 큐" msgid "Active threads" msgstr "활성 쓰레드" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "어댑터" @@ -1129,8 +1129,8 @@ msgstr "새로운 DSU 서버 추가" msgid "Add New USB Device" msgstr "새로운 USB 장치 추가" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "데스크탑에 바로가기 추가" @@ -1157,18 +1157,18 @@ msgstr "메모리 중단점 추가" msgid "Add to &watch" msgstr "관찰에 추가 (&w)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "관찰에 추가" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "추가..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1265,10 +1265,15 @@ msgstr "아프리카" msgid "Aligned to data type length" msgstr "데이터 타입 길이로 정렬됨" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1276,27 +1281,44 @@ msgid "All Files" msgstr "모든 파일" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "모든 파일 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "모든 GC/Wii 파일들" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "모든 저장 상태 (*.sav *.s##);; 모든 파일 (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "모든 장치" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 msgid "All files (*)" -msgstr "" +msgstr "모든 파일 (*)" #: Source/Core/Core/NetPlayServer.cpp:1170 msgid "All players' codes synchronized." @@ -1310,7 +1332,7 @@ msgstr "모든 플레이어의 저장이 동기화되었습니다." msgid "Allow Mismatched Region Settings" msgstr "맞지 않는 지역 설정 허락" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "사용 통계 보고 허용" @@ -1334,7 +1356,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "대체 입력 소스" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "항상" @@ -1390,7 +1412,7 @@ msgstr "안티-앨리어싱:" msgid "Any Region" msgstr "아무 지역" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "서명 덧붙이기" @@ -1418,7 +1440,7 @@ msgstr "앱로더 날짜:" msgid "Apply" msgstr "적용" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "서명 파일 적용" @@ -1430,7 +1452,7 @@ msgstr "독단적 밉맵 감지" msgid "Are you sure that you want to delete '%1'?" msgstr "'%1' 를 정말로 지우고 싶습니까?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "이 파일을 정말로 삭제하시겠습니까?" @@ -1446,7 +1468,7 @@ msgstr "정말로 넷플레이를 종료하고 싶습니까?" msgid "Are you sure?" msgstr "확신합니까?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "종횡비" @@ -1463,7 +1485,7 @@ msgstr "컨트롤러 포트 할당" msgid "Assign Controllers" msgstr "컨트롤러 할당" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "선택된 저장 파일중에 적어도 2개가 같은 내부 파일명입니다." @@ -1528,11 +1550,11 @@ msgstr "창 크기 자동 조정" msgid "Auto-Hide" msgstr "자동-숨기기" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "RSO 모듈을 자동-감지할까요?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1564,7 +1586,7 @@ msgstr "" "가 사용되어야만 합니다. 00:09:bf 나 00:17:ab 로 시작하는 새로운 MAC 주소를 생" "성하세요." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "바이오스:" @@ -1576,7 +1598,7 @@ msgstr "BP 레지스터" msgid "Back Chain" msgstr "백 체인" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "백엔드" @@ -1607,7 +1629,7 @@ msgstr "뒤로" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 msgid "Bad Value Given" -msgstr "" +msgstr "안 좋은 값이 주어짐" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 @@ -1629,7 +1651,7 @@ msgstr "안 좋은 오프셋이 제공되었습니다." msgid "Bad value provided." msgstr "안 좋은 값이 제공되었습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1664,7 +1686,7 @@ msgstr "기본 설정" msgid "Bass" msgstr "베이스" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "배치 모드는 시작할 게임 명시 없이는 사용될 수 없습니다." @@ -1696,7 +1718,7 @@ msgstr "바이너리 SSL (쓰기)" msgid "Bitrate (kbps):" msgstr "비트레이트 (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1740,11 +1762,11 @@ msgstr "" msgid "Boot to Pause" msgstr "부팅하고 멈추기" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 백업 파일 (*.bin);;모든 파일 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 키 파일 (*.bin);;모든 파일 (*)" @@ -1752,7 +1774,7 @@ msgstr "BootMii 키 파일 (*.bin);;모든 파일 (*)" msgid "Borderless Fullscreen" msgstr "틀 없는 전체화면" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "아래" @@ -1779,7 +1801,7 @@ msgstr "중단점" msgid "Breakpoint encountered! Step out aborted." msgstr "중단점을 만났습니다! 스텝 나가기가 중단되었습니다." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "중단점" @@ -1813,12 +1835,12 @@ msgstr "넷플레이 세션들 둘러보기...(&N)" msgid "Buffer Size:" msgstr "버퍼 크기:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "버퍼 크기가 %1 로 변경되었습니다" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "버퍼:" @@ -1943,7 +1965,7 @@ msgstr "카메라 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "카메라 시야 ( 포인팅 민감도에 영향을 줍니다)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "가상 메모리 값용 AR 코드만 생성할 수 있습니다." @@ -1951,14 +1973,14 @@ msgstr "가상 메모리 값용 AR 코드만 생성할 수 있습니다." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} 연결 핸들로 Wii 리모트를 찾을 수 없음" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "게임이 여전히 구동되는 동안에 넷플레이 세션을 시작할 수 없습니다!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1985,7 +2007,7 @@ msgstr "첫 검색의 마지막 값과 비교할 수 없습니다." msgid "Cannot find the GC IPL." msgstr "GC IPL 을 찾을 수 없습니다." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "이 주소에 대한 AR 코드를 생성할 수 없습니다." @@ -2011,7 +2033,7 @@ msgstr "중앙" msgid "Center and Calibrate" msgstr "중앙과 측정" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "디스크 변경(&D)" @@ -2027,7 +2049,7 @@ msgstr "디스크 변경" msgid "Change Discs Automatically" msgstr "디스크 자동 교환" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "{0} 로 디스크를 변경합니다." @@ -2087,7 +2109,7 @@ msgstr "게임 목록 변경을 백그라운드로 체크" msgid "Check for updates" msgstr "업데이트 확인" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2103,16 +2125,19 @@ msgstr "체크섬" msgid "China" msgstr "중국" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "열 파일 선택하기" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "우선 입력 파일 선택" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "차선 입력 파일 선택" @@ -2137,7 +2162,7 @@ msgstr "클래식 컨트롤러" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "지움" @@ -2171,26 +2196,26 @@ msgstr "코드" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:168 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:178 msgid "Code Diff Tool" -msgstr "" +msgstr "코드 차이 도구" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:401 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:420 msgid "Code Diff Tool Help" -msgstr "" +msgstr "코드 차이 도구 도움말" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:52 msgid "Code did not get executed" -msgstr "" +msgstr "코드가 실행되어지지 않았습니다" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:53 msgid "Code has been executed" -msgstr "" +msgstr "코드가 실행되었습니다" #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:93 msgid "Code:" msgstr "코드:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "코드들을 받았습니다!" @@ -2215,7 +2240,7 @@ msgstr "시작하기 전에 쉐이더들 컴파일" msgid "Compiling Shaders" msgstr "쉐이더들 컴파일하기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2267,23 +2292,23 @@ msgstr "출력 설정" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "확정" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "백엔드 변경 확정" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "멈출 때 확인" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2338,7 +2363,7 @@ msgstr "인터넷에 연결하여 온라인 시스템 업데이트를 하시겠 msgid "Connected" msgstr "연결되었습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "연결중" @@ -2461,11 +2486,11 @@ msgstr "수렴:" msgid "Convert" msgstr "변환" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "파일 변환..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "선택된 파일 변환..." @@ -2495,9 +2520,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "복사" @@ -2509,39 +2534,35 @@ msgstr "함수 복사 (&f)" msgid "Copy &hex" msgstr "헥스 복사 (&h)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "주소 복사" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "복사가 실패했습니다" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "헥스 복사" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "값 복사" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "코드 줄 복사 (&l)" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "복사에 실패했습니다." - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" -msgstr "" +msgstr "대상 주소 복사(&g)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "A로 복사" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "B로 복사" @@ -2585,7 +2606,7 @@ msgstr "" "닌텐도로부터 업데이트 정보를 다운로드할 수 없었습니다. 인터넷 연결을 확인하시" "고 다시 시도하세요." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2595,7 +2616,7 @@ msgstr "" "\n" "에뮬된 콘솔이 지금 멈출 것입니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2655,7 +2676,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "{0} 파일을 인식할 수 없습니다." -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2673,15 +2694,15 @@ msgstr "" "에뮬레이터 디렉토리를 이동한 후에 이 메시지를 받고 있나요?\n" "그렇다면, 옵션에서 메모리카드 위치를 재지정해야 합니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "중앙 서버를 찾을 수 없습니다" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "파일을 열 수 없습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "파일을 읽을 수 없습니다." @@ -2742,7 +2763,7 @@ msgstr "크로스페이드" msgid "Current Region" msgstr "현재 지역" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "현재 값" @@ -2849,23 +2870,23 @@ msgstr "데이터 전송" msgid "Data Type" msgstr "데이터 타입" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "사용되면 안되는 파일의 구역에 있는 데이터" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "데이터가 인식불가 형식이거나 오염되었습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "GC메모리메니저에서 데이터 비일관성, 액션을 중단함." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "데이터를 받았습니다!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 파일" @@ -2972,21 +2993,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "삭제" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "파일 삭제..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "선택된 파일들 삭제..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "존재하는 파일 '{0}' 를 삭제합니까?" @@ -3002,10 +3023,10 @@ msgstr "깊이 퍼센트:" msgid "Depth:" msgstr "깊이:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3025,7 +3046,7 @@ msgstr "떨어진" msgid "Detect" msgstr "감지" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "RSO 모듈 감지하기" @@ -3046,7 +3067,7 @@ msgstr "장치" msgid "Device PID (e.g., 0305)" msgstr "장치 PID (예, 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "장치 설정" @@ -3065,7 +3086,7 @@ msgstr "%1 을 적합한 Riivolution XML 파일로 인식하지 못했습니다. #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:99 msgid "Diff" -msgstr "" +msgstr "차이" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Dims the screen after five minutes of inactivity." @@ -3099,8 +3120,8 @@ msgstr "" msgid "Dis&connected" msgstr "연결 끊어진(&c)" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "비활성화" @@ -3180,7 +3201,7 @@ msgstr "폐기" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 msgid "Display Type" -msgstr "" +msgstr "디스플레이 타입" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:231 msgid "Display values in Hex" @@ -3209,25 +3230,25 @@ msgstr "거리" msgid "Distance of travel from neutral position." msgstr "중립 위치에서 이동 거리" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "돌핀이 정보를 돌핀 개발자들에게 보고하도록 허가하시겠습니까?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "\"%1\" 를 게임 경로들의 목록에 추가하고 싶습니까?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "부호 이름 목록을 청소할까요?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "선택된 저장 파일 %n 을 삭제하고 싶습니까?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "에뮬레이션을 중단하고 싶습니까?" @@ -3244,9 +3265,9 @@ msgstr "돌핀 FIFO 로그 (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "돌핀 게임 모드 프리셋" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "돌핀 맵 파일 (*.map)" @@ -3258,8 +3279,8 @@ msgstr "돌핀 서명 CSV 파일" msgid "Dolphin Signature File" msgstr "돌핀 서명 파일" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "돌핀 TAS 무비 (*.dtm)" @@ -3281,7 +3302,7 @@ msgstr "" "\n" "아무튼 계속 하고 싶습니까?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3301,7 +3322,7 @@ msgstr "돌핀이 요청된 액션 완수에 실패했습니다." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "돌핀은 무료이고 오픈-소스 게임큐브 및 Wii 에뮬레이터입니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "횡단 서버에 비해 돌핀이 너무 구 버전입니다." @@ -3369,7 +3390,7 @@ msgstr "코드 다운로드" msgid "Download Codes from the WiiRD Database" msgstr "WiiRD 데이터베이스에서 코드를 다운로드" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "GameTDB.com 에서 그리드 모드에 사용할 게임커버를 다운로드" @@ -3402,7 +3423,7 @@ msgstr "듀얼 코어" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 msgid "Dual View" -msgstr "" +msgstr "듀얼 뷰" #: Source/Core/Core/HW/EXI/EXI_Device.h:85 msgid "Dummy" @@ -3410,7 +3431,7 @@ msgstr "더미" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 msgid "Dump" -msgstr "" +msgstr "덤프" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &ARAM" @@ -3565,7 +3586,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "터보 버튼 떼기의 기간 (프레임)" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "네덜란드어" @@ -3644,7 +3665,7 @@ msgstr "내장형 프레임 버퍼 (EFB)" msgid "Empty" msgstr "비어있음" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "에뮬 쓰레드가 이미 구동중임" @@ -3673,14 +3694,14 @@ msgstr "에뮬레이션 속도" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:169 msgid "Emulation must be started to record." -msgstr "" +msgstr "녹화하려면 에뮬레이션이 시작되어야 합니다" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "활성" @@ -3730,7 +3751,7 @@ msgid "Enable Progressive Scan" msgstr "프로그레시브 스캔 활성화" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "진동 활성화" @@ -3874,7 +3895,7 @@ msgstr "" msgid "Encoding" msgstr "인코딩" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3891,7 +3912,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet이 초기화되지 않았습니다." #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "영어" @@ -3924,7 +3945,7 @@ msgstr "새로운 광대역 어댑터 맥 어드레스 입력:" msgid "Enter password" msgstr "패스워드 입력" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "RSO 모듈 주소를 입력:" @@ -3936,7 +3957,7 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3955,46 +3976,47 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "오류" @@ -4016,11 +4038,11 @@ msgstr "에러가 있는 세션 목록: %1" msgid "Error occurred while loading some texture packs" msgstr "일부 텍스처 팩을 로딩하는 중에 에러가 발생했습니다" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "코드들 처리 에러." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "데이터 처리 에러." @@ -4040,7 +4062,7 @@ msgstr "저장 데이터 동기화 에러!" msgid "Error writing file: {0}" msgstr "파일 쓰기 에러: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4132,15 +4154,29 @@ msgid "" "\n" "Right click -> 'Set blr' will place a blr at the top of the symbol.\n" msgstr "" +"예:\n" +"HP 가 수정되었을 때 구동되는 함수를 찾고 싶다.\n" +"1. 녹화를 시작하고 HP 가 수정되지 않은 상태로 게임을 플레이, 그런 후 '코드가 " +"실행되어지지 않았습니다'를 누른다.\n" +"2. 즉시 HP 얻기/잃기 후에 '코드가 실행되었습니다'를 누릅니다.\n" +"3. 결과를 좁히려면 1 또는 2를 반복합니다.\n" +"포함 (코드가 실행되었습니다) 은 원하는 것에 짧은 녹화 포커싱을 해야합니다.\n" +"\n" +"'코드가 실행되었습니다' 를 두번 누르면 두 녹화에서 구동되었던 함수들만 유지합" +"니다. 히트는 마지막 녹화의 히트 수를 반영하도록 업데이트됩니다. 총 히트는 해" +"당 목록들이 리셋으로 클리어될 때까지 함수가 실행되어진 총 수를 반영할 것입니" +"다.\n" +"\n" +"우 클릭 -> 'blr 설정' 은 blr 을 그 부호의 맨 위에 위치시킬 것입니다.\n" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:134 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:390 msgid "Excluded: %1" -msgstr "" +msgstr "제외됨: %1" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:68 msgid "Excluded: 0" -msgstr "" +msgstr "제외됨: 0" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:116 msgid "Exclusive Ubershaders" @@ -4194,10 +4230,10 @@ msgstr "실험적" msgid "Export All Wii Saves" msgstr "모든 Wii 저장을 내보내기" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "내보내기를 실패했습니다" @@ -4209,19 +4245,19 @@ msgstr "입력 기록 내보내기" msgid "Export Recording..." msgstr "입력 기록 내보내기..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "저장 파일 내보내기" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "저장 파일들 내보내기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Wii 저장 내보내기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Wii 저장들 내보내기" @@ -4233,7 +4269,7 @@ msgstr ".gcs 로 내보내기... (&g)" msgid "Export as .&sav..." msgstr ".sav 로 내보내기... (&s)" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4307,7 +4343,7 @@ msgstr "FIFO 플레이어" msgid "Failed loading XML." msgstr "XML 로딩에 실패했습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4319,19 +4355,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "넷플레이 목록 : %1 에 이 세션을 추가하는데에 실패했습니다" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "서명 파일 '%1' 에 덧붙이기에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "블투 패스쓰루용 인터페이스 요청에 실패했습니다" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Redump.org 연결에 실패했습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "서버 연결에 실패했습니다: %1" @@ -4361,11 +4397,11 @@ msgstr "넷플레이 GBA{0} 저장 파일 삭제에 실패했습니다. 쓰기 msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "넷플레이 메모리 카드를 삭제에 실패했습니다. 쓰기 권한을 검증하세요." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "선택된 파일 삭제에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "블투 패스쓰루용 커널 드라이버를 분리하는데에 실패했습니다: {0}" @@ -4381,16 +4417,16 @@ msgstr "덤프에 실패했습니다 %1: 파일을 열 수 없습니다" msgid "Failed to dump %1: Failed to write to file" msgstr "덤프에 실패했습니다 %1: 파일에 쓰기를 실패했습니다" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "%1 저장 파일(들)로부터 %n 를 내보내기에 실패했습니다 ." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "다음 저장 파일들을 내보내기에 실패했습니다:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "NAND 에서 증명서 추출에 실패했습니다" @@ -4416,18 +4452,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "하나 이상의 D3D 부호 찾기에 실패했습니다" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "\"%1\" 가져오기에 실패했습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "저장 파일을 가져오기에 실패했습니다. 해당 게임을 한번 띄워주세요, 그리고 다" "시 시도하세요." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4435,7 +4471,7 @@ msgstr "" "저장 파일 가져오기에 실패했습니다. 주어진 파일은 오염되었거나 적합한 Wii 저장" "이 아닙니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4445,7 +4481,7 @@ msgstr "" "것이 그 안에 파일들에 액세스를 막고 있습니다. NAND (도구 -> NAND 관리 -> " "NAND 체크...) 를 고쳐 보세요, 그런 후 저장을 다시 가져오세요." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "코어 인식에 실패했습니다" @@ -4468,12 +4504,12 @@ msgstr "렌더러 클래스 초기화에 실패했습니다" msgid "Failed to install pack: %1" msgstr "팩 설치에 실패했습니다: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "NAND 에 이 타이틀 설치에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4481,8 +4517,8 @@ msgstr "" "포트 %1 듣기에 실패했습니다. 구동 중인 다른 넷플레이 서버 인스턴스가 있습니" "까?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "%1 에서 RSO 모듈 로드에 실패했습니다" @@ -4494,7 +4530,7 @@ msgstr "d3d11.dll 로드에 실패했습니다" msgid "Failed to load dxgi.dll" msgstr "dxgi.dll 로드에 실패했습니다" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "맵 파일 '%1' 을 로드에 실패했습니다." @@ -4510,13 +4546,13 @@ msgstr "" "{0} 로드에 실패했습니다. 윈도우 7을 사용중이면, KB4019990 업데이트 패키지를 " "설치해보세요." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' 를 열기에 실패했습니다" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "블루투스 장치 열기에 실패했습니다: {0}" @@ -4540,11 +4576,11 @@ msgstr "" "외부 에디터로 파일 열기에 실패했습니다.\n" "INI 파일들을 여는데 할당된 애플러케이션이 있는지 확인하세요." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "파일 열기에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "서버 열기에 실패했습니다" @@ -4553,7 +4589,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "입력 파일 \"%1\" 열기에 실패했습니다." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4576,25 +4612,25 @@ msgstr "주어진 값을 대상 데어터 타입으로 파싱하는데에 실패 msgid "Failed to read DFF file." msgstr "DFF 파일 읽기에 실패했습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "파일에서 읽기에 실패했습니다." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "입력 파일 \"{0}\" 로 부터 읽기에 실패했습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "메모리 카드에서 선택된 저장파일(들)을 읽기에 실패했습니다." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "{0} 을 읽을 수 없습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "파일 삭제에 실패했습니다." @@ -4608,7 +4644,7 @@ msgstr "" "\n" "정크 데이터 제거 없이 변환 하시겠습니까?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "NAND 에서 이 타이틀 제거에 실패했습니다." @@ -4629,19 +4665,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "FIFO 로그 저장에 실패했습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "경로 '%1' 에 코드 맵 저장을 실패했습니다" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "서명 파일 '%1' 을 저장에 실패했습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "경로 '%1' 에 심볼 맵 저장을 실패했습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "서명 파일 '%1' 에 저장에 실패했습니다." @@ -4665,9 +4701,9 @@ msgstr "Wii 저장 쓰기에 실패했습니다." msgid "Failed to write config file!" msgstr "환경 파일 쓰기에 실패했습니다!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "수정된 메모리 카드를 디스크에 쓰기를 실패했습니다." @@ -4675,12 +4711,12 @@ msgstr "수정된 메모리 카드를 디스크에 쓰기를 실패했습니다. msgid "Failed to write redirected save." msgstr "리다이렉트된 저장 쓰기에 실패했습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "저장파일을 디스크에 쓰기를 실패했습니다. " #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4688,10 +4724,10 @@ msgstr "" "출력 파일 \"{0}\" 를 쓰지 못했습니다.\n" "타겟 드라이브에 충분한 여유 공간이 있는지 확인하세요." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "실패" @@ -4716,7 +4752,7 @@ msgstr "빠름" msgid "Fast Depth Calculation" msgstr "빠른 깊이 계산" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4733,7 +4769,7 @@ msgstr "시야" msgid "File Details" msgstr "파일 세부사항" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4747,19 +4783,19 @@ msgstr "파일 형식:" msgid "File Info" msgstr "파일 정보" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "파일 이름" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "파일 경로" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "파일 크기" @@ -4788,11 +4824,11 @@ msgstr "" "M3U 파일 \"{0}\" 에 기술된 파일들은 발견되지 않음:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "파일크기가 어떤 알려진 게임큐브 메모리 카트 크기와도 맞지 않습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "헤더안 파일크기가 실제 카드 크기와 맞지 않습니다." @@ -4848,17 +4884,17 @@ msgstr "일인칭" msgid "Fix Checksums" msgstr "체크섬을 고치기" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "실패한 체크섬 고치기" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 msgid "Fixed Alignment" -msgstr "" +msgstr "고정된 정돈" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "플래그" @@ -5010,11 +5046,11 @@ msgstr "녹화할 프레임:" msgid "France" msgstr "프랑스" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "빈 블록: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "빈 파일: %1" @@ -5055,7 +5091,7 @@ msgid "Freelook Toggle" msgstr "자유로운 보기 토글" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "프랑스어" @@ -5084,7 +5120,7 @@ msgstr "에서:" msgid "FullScr" msgstr "전체화면" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "함수" @@ -5116,7 +5152,7 @@ msgstr "GBA 코어" msgid "GBA Port %1" msgstr "GBA 포트 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "GBA 설정" @@ -5128,11 +5164,11 @@ msgstr "GBA 볼륨" msgid "GBA Window Size" msgstr "GBA 창 크기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 롬이 \"%2\" 로 변경되었습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBA%1 롬이 비활성화되었습니다" @@ -5261,11 +5297,11 @@ msgstr "게임" msgid "Game Boy Advance" msgstr "게임 보이 어드밴스" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "게임 보이 어드밴스 카트리지 (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5289,7 +5325,7 @@ msgstr "게임 세부사항" msgid "Game Folders" msgstr "게임 폴더들" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "게임 ID" @@ -5303,11 +5339,25 @@ msgstr "게임 ID:" msgid "Game Status" msgstr "게임 상태" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "게임이 \"%1\" 로 변경되었습니다" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "게임이 이미 구동중입니다!" @@ -5317,6 +5367,10 @@ msgid "" msgstr "" "게임이 다른 게임 저장과 함께 덮어썼습니다. {0:#x}, {1:#x} 앞쪽에 데이터 오염" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "게임-상세 설정" @@ -5357,12 +5411,12 @@ msgstr "포트 %1 에 겜임큐브 키보드" msgid "GameCube Memory Card Manager" msgstr "게임큐브 메모리 카드 매니저" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "게임큐브 메모리 카드" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "게임큐브 메모리 카드 (*.raw *.gcp)" @@ -5395,7 +5449,7 @@ msgstr "일반" msgid "General and Options" msgstr "일반 옵션" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "액션 리플레이 코드 생성" @@ -5403,16 +5457,16 @@ msgstr "액션 리플레이 코드 생성" msgid "Generate a New Statistics Identity" msgstr "새로운 통계 식별자 생성" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "AR 코드를 생성했습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "'%1' 에서 부호 이름들을 생성했습니다" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "독일어" @@ -5421,14 +5475,14 @@ msgstr "독일어" msgid "Germany" msgstr "독일" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "고 투" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "골프 모드" @@ -5507,23 +5561,23 @@ msgstr "도움" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 msgid "Hex" -msgstr "" +msgstr "헥스" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 msgid "Hex 16" -msgstr "" +msgstr "헥스 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 32" -msgstr "" +msgstr "헥스 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 msgid "Hex 8" -msgstr "" +msgstr "헥스 8" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 msgid "Hex Byte String" -msgstr "" +msgstr "헥스 바이트 스트링" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:144 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:155 @@ -5568,7 +5622,7 @@ msgstr "치기 힘" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 msgid "Hits" -msgstr "" +msgstr "히트" #. i18n: FOV stands for "Field of view". #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:223 @@ -5604,15 +5658,15 @@ msgstr "" "3+ 플레이어들과 함께하는 캐주얼 게임에 알맞음, 아마도 불안정하거나 높은 지연 " "연결상에서." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "호스트 입력 권한 꺼짐" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "호스트 입력 권한 켜짐" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "넷플레이로 호스트" @@ -5630,7 +5684,7 @@ msgstr "단축키 설정" msgid "Hotkeys" msgstr "단축키" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "핫키들은 윈도우 포커스가 필요함" @@ -5681,7 +5735,7 @@ msgstr "" msgid "IP Address:" msgstr "IP 주소:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL 설정" @@ -5690,7 +5744,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR 감도:" @@ -5744,7 +5798,7 @@ msgstr "" msgid "Identity Generation" msgstr "식별자 생성" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5805,7 +5859,7 @@ msgstr "무시" msgid "Ignore Format Changes" msgstr "포맷 변경들을 무시" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "이 세션을 무시" @@ -5854,14 +5908,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "BootMii NAND 백업 가져오기..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "가져오기를 실패했습니다" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "저장 파일(들)을 가져오기" @@ -5869,11 +5923,11 @@ msgstr "저장 파일(들)을 가져오기" msgid "Import Wii Save..." msgstr "Wii 저장 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "NAND 백업 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5889,11 +5943,11 @@ msgstr "인-게임?" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:135 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:391 msgid "Included: %1" -msgstr "" +msgstr "포함됨: %1" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:69 msgid "Included: 0" -msgstr "" +msgstr "포함됨: 0" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:273 msgid "" @@ -5951,21 +6005,21 @@ msgid "Info" msgstr "정보" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "정보" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "에뮬하는 동안 화면보호기를 감춥니다" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "입력" @@ -5991,7 +6045,7 @@ msgstr "SD 카드 삽입" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 msgid "Inspected" -msgstr "" +msgstr "조사됨" #: Source/Core/DolphinQt/ResourcePackManager.cpp:39 #: Source/Core/DolphinQt/ResourcePackManager.cpp:319 @@ -6010,7 +6064,7 @@ msgstr "업데이트 설치" msgid "Install WAD..." msgstr "WAD 설치..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "NAND 에 설치" @@ -6026,7 +6080,7 @@ msgstr "명령" msgid "Instruction Breakpoint" msgstr "명령 중단점" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "명령:" @@ -6075,7 +6129,7 @@ msgstr "내부 해상도" msgid "Internal Resolution:" msgstr "내부 해상도:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "AR 코드를 생성하는 동안 내부 에러." @@ -6087,7 +6141,7 @@ msgstr "인터프리터 (가장 느림)" msgid "Interpreter Core" msgstr "인터프리터 코어" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "부적합 표현." @@ -6104,7 +6158,7 @@ msgstr "부적합한 %1 이 제공됨: %2" msgid "Invalid Player ID" msgstr "부적합한 플레이어 아이디" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "부적합 RSO 모듈 주소: %1" @@ -6112,7 +6166,7 @@ msgstr "부적합 RSO 모듈 주소: %1" msgid "Invalid callstack" msgstr "부적합한 스텍호출" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "부적합 체크섬" @@ -6120,7 +6174,7 @@ msgstr "부적합 체크섬" msgid "Invalid game." msgstr "부적합한 게임." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "부적합 호스트" @@ -6129,7 +6183,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "필드 \"%1\" 에 부적합한 입력" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "부적합한 입력이 제공됨" @@ -6161,7 +6215,7 @@ msgstr "부적합한 찾기 스트링 (숫자로 변환될 수 없었습니다)" msgid "Invalid search string (only even string lengths supported)" msgstr "부적합한 찾기 스트링 (짝수 길이 스트링만 지원됩니다)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "부적합한 타이틀 ID." @@ -6170,7 +6224,7 @@ msgid "Invalid watch address: %1" msgstr "부적합한 관찰 주소: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "이탈리아어" @@ -6276,7 +6330,7 @@ msgstr "일본어" msgid "Japanese (Shift-JIS)" msgstr "일본어 (쉬프트-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "창을 맨위로 유지" @@ -6344,7 +6398,7 @@ msgstr "LR 세이브" msgid "Label" msgstr "레이블" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "마지막 값" @@ -6448,7 +6502,7 @@ msgstr "듣기" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "로드" @@ -6583,7 +6637,7 @@ msgstr "슬롯에서 상태 로드" msgid "Load Wii Save" msgstr "Wii 저장 로드" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Wii 시스템 메뉴 %1 로드" @@ -6595,8 +6649,8 @@ msgstr "선택된 슬롯에서 로드" msgid "Load from Slot %1 - %2" msgstr "슬롯 %1 - %2 로부터 로드" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "맵 파일 로드" @@ -6604,7 +6658,7 @@ msgstr "맵 파일 로드" msgid "Load..." msgstr "로드..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "'%1' 에서 부호들이 로드되었습니다" @@ -6622,7 +6676,7 @@ msgstr "" msgid "Local" msgstr "지역" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "마우스 커서 가두기" @@ -6651,7 +6705,7 @@ msgstr "로그 타입" msgid "Logger Outputs" msgstr "로거 출력" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6665,7 +6719,7 @@ msgstr "" msgid "Loop" msgstr "루프" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "넷플레이 서버 연결을 잃었습니다..." @@ -6694,7 +6748,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "빈사" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "MadCatz Gameshark 파일" @@ -6702,7 +6756,7 @@ msgstr "MadCatz Gameshark 파일" msgid "Main Stick" msgstr "메인 스틱" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6745,11 +6799,11 @@ msgstr "마스크 롬" msgid "Match Found" msgstr "일치 발견" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "최대 버퍼:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "최대 버퍼 크기가 %1 로 변경되었습니다" @@ -6783,23 +6837,6 @@ msgstr "메모리 카드" msgid "Memory Card Manager" msgstr "메모리 카드 관리자" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"슬롯 {0} 안에 메모리 카드 파일이름이 올바르지 않습니다\n" -"지역이 기술되지 않습니다\n" -"\n" -"{2} 로\n" -"슬롯 {1} 경로가 바뀌였습니다\n" -"\n" -"오래된 파일을 이 새로운 위치로 복사하고 싶습니까?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "메모리 오버라이드" @@ -6808,19 +6845,19 @@ msgstr "메모리 오버라이드" msgid "Memory breakpoint options" msgstr "메모리 중단점 옵션" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "메모리카드: 부적합한 주소 ({0:#x}) 상에서 호출된 클리어블록" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "메모리카드: 부적합 소스 주소로 호출된 읽기 ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "메모리카드: 부적합 목적지 주소로 호출된 쓰기 ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6849,15 +6886,15 @@ msgstr "기타" msgid "Misc Settings" msgstr "기타 설정" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "헤더안 빈 블락 숫자와 실제 사용되지 않은 블락수가 맞지 않습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "내부 데이터 구조들끼리 맞지 않습니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6890,8 +6927,8 @@ msgstr "" "션 리셋이 필요할 수도 있습니다.

잘 모르겠으면, 체크 " "해제해 두세요." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "발견된 모듈: %1" @@ -6920,20 +6957,20 @@ msgstr "모션 시뮬레이션" msgid "Motor" msgstr "모터" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "마우스 커서 가시성" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "비활동 후에 마우스 커서를 숨기고 마우스 커서가 움직이면 돌아갑니다." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "마우스 커서는 항상 보일 것입니다." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "마우스 커서는 게임이 구동되는 동안에 절대로 보이지 않을 것입니다." @@ -6947,14 +6984,20 @@ msgstr "이동" msgid "Movie" msgstr "무비" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "모두 아니오(&o)" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND 체크" @@ -6985,11 +7028,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "이름" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "새로운 태그 이름:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "제거할 태그의 이름:" @@ -7010,8 +7053,8 @@ msgstr "이름:" msgid "Native (640x528)" msgstr "원본 (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "원본 GCI 파일" @@ -7031,11 +7074,11 @@ msgstr "넷플레이 설정" msgid "Netherlands" msgstr "네덜란드" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "넷플레이가 NetPlay_GetButtonPress() 에서 비동기화되었습니다" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "넷플레이가 갈렸습니다. 이것으로부터 복구할 방법이 없습니다." @@ -7048,7 +7091,7 @@ msgstr "네트워크" msgid "Network dump format:" msgstr "네트워크 덤프 포멧:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "절대 아니" @@ -7056,7 +7099,7 @@ msgstr "절대 아니" msgid "Never Auto-Update" msgstr "자동-업데이트 절대 안함" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "새로운" @@ -7069,7 +7112,7 @@ msgstr "새로운 중단점" msgid "New Search" msgstr "새로운 찾기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "새로운 태그..." @@ -7081,7 +7124,7 @@ msgstr "새로운 식별자가 생성되었습니다." msgid "New instruction:" msgstr "새로운 명령:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "새로운 태그" @@ -7119,7 +7162,7 @@ msgstr "감지된 어댑터가 없습니다" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "No Alignment" -msgstr "" +msgstr "정돈 없음" #: Source/Core/Core/Config/MainSettings.h:16 msgid "No Audio Output" @@ -7138,13 +7181,13 @@ msgstr "일치 없음" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "적합한 상세 설명 없음" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "에러가 없습니다." @@ -7164,17 +7207,21 @@ msgstr "구동중인 게임이 없습니다." msgid "No game running." msgstr "구동중인 게임이 없습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "이슈가 감지되지 않았습니다." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "M3U 파일 \"{0}\" 에 경로가 없습니다" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:387 msgid "No possible functions left. Reset." -msgstr "" +msgstr "가능한 함수가 없습니다. 리셋합니다." #: Source/Core/DiscIO/VolumeVerifier.cpp:1379 msgid "No problems were found." @@ -7198,7 +7245,7 @@ msgstr "게임 설정 '{0}' 에 대한 프로파일이 없음" msgid "No recording loaded." msgstr "로드된 녹화가 없습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "발견된 저장 데이터가 없습니다." @@ -7219,10 +7266,6 @@ msgstr "없음" msgid "North America" msgstr "북 아메리카" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "발견되지 않음" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "설정 안됨" @@ -7232,7 +7275,7 @@ msgid "Not all players have the game. Do you really want to start?" msgstr "" "모든 플레이어가 그 게임을 가지고 있지는 않습니다. 정말 시작하고 싶습니까?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7242,7 +7285,7 @@ msgstr "" "해당 메모리 카드상에 빈 블록들이 충분하지 않습니다. 적어도 %n 빈 블록(들)이 " "요구됩니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7252,6 +7295,10 @@ msgstr "" "해당 메모리 카드상에 빈 파일들이 충분하지 않습니다. 적어도 %n 빈 파일(들)이 " "요구됩니다." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7304,7 +7351,7 @@ msgstr "눈챠쿠 방향" msgid "Nunchuk Stick" msgstr "눈챠쿠 스틱" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7335,7 +7382,7 @@ msgstr "오프셋" msgid "On" msgstr "켜기" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "움직일 때" @@ -7343,7 +7390,7 @@ msgstr "움직일 때" msgid "Online &Documentation" msgstr "온라인 문서(&D)" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7351,7 +7398,7 @@ msgstr "" "접두사를 가진 부호들만 덧붙입니다:\n" "(모든 부호들은 빈칸)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7364,7 +7411,7 @@ msgstr "" msgid "Open" msgstr "열기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "담고 있는 폴더 열기(&C)" @@ -7376,7 +7423,7 @@ msgstr "디렉토리 열기..." msgid "Open FIFO log" msgstr "FIFO 로그 열기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "게임큐브 저장 폴더 열기(&S)" @@ -7384,7 +7431,7 @@ msgstr "게임큐브 저장 폴더 열기(&S)" msgid "Open Riivolution XML..." msgstr "Riivolution XML 열기..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Wii 저장 폴더 열기(&S)" @@ -7572,7 +7619,7 @@ msgstr "일시정지" msgid "Pause at End of Movie" msgstr "무비의 끝에서 일시정지" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "초점 잃을 때 일시정지" @@ -7599,7 +7646,7 @@ msgstr "픽셀단위 광원" msgid "Perform Online System Update" msgstr "온라인 시스템 업데이트 하기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "시스텝 업데이트 하기" @@ -7617,7 +7664,7 @@ msgstr "물리적 주소 공간" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "디버그 폰트 고르기" @@ -7633,7 +7680,7 @@ msgstr "피치 내리기" msgid "Pitch Up" msgstr "피치 올리기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "플랫폼" @@ -7679,7 +7726,7 @@ msgstr "포인트" msgid "Port %1" msgstr "포트 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "포트 %1 롬:" @@ -7688,7 +7735,7 @@ msgstr "포트 %1 롬:" msgid "Port:" msgstr "포트:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "가능한 비동기 감지됨: %1 가 프레임 %2 에서 비동기화된 듯 합니다" @@ -7708,15 +7755,15 @@ msgstr "후-처리 쉐이더 환경설정" msgid "Prefetch Custom Textures" msgstr "커스텀 텍스처 프리패치" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "PlayController에 무비 마무리가 미완성되었습니다. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "PlayWiimote에 무비 마무리가 미완성되었습니다. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "PlayWiimote에 무비 마무리가 미완성되었습니다. {0} > {1}" @@ -7741,7 +7788,7 @@ msgstr "동기화 버튼을 누르세요" msgid "Pressure" msgstr "압력" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7832,7 +7879,7 @@ msgstr "공공" msgid "Purge Game List Cache" msgstr "게임 목록 캐시 제거" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "IPL 롬을 in User/GC/ 에 두세요." @@ -7858,8 +7905,8 @@ msgstr "DPLII 디코더의 품질. 오디오 지연이 품질로 증가합니다 #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "질문" @@ -7887,7 +7934,7 @@ msgstr "준비" msgid "RSO Modules" msgstr "RSO 모듈" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO 자동-감지" @@ -8038,12 +8085,12 @@ msgstr "새로하기를 실패했습니다. 게임을 잠시 구동하신 후에 msgid "Refreshed current values." msgstr "현재 값들을 새로했습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "새로고침..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8073,12 +8120,12 @@ msgstr "나중에 다시 알려주기" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "제거" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "실패들 삭제" @@ -8086,11 +8133,11 @@ msgstr "실패들 삭제" msgid "Remove Junk Data (Irreversible):" msgstr "정크 데이터 제거 (되돌릴 수 없음):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "태그 제거..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "태그 제거" @@ -8109,7 +8156,7 @@ msgstr "" msgid "Rename symbol" msgstr "부호 이름 바꾸기" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "렌더 창" @@ -8148,7 +8195,7 @@ msgstr "리셋" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" -msgstr "" +msgstr "모두 리셋" #: Source/Core/DolphinQt/MenuBar.cpp:547 msgid "Reset Ignore Panic Handler" @@ -8190,7 +8237,7 @@ msgstr "리소스 팩 매니저" msgid "Resource Pack Path:" msgstr "리소스 팩 경로:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "재시작이 요구됩니다" @@ -8202,7 +8249,7 @@ msgstr "기본값 복원" msgid "Restore instruction" msgstr "명령 복구" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "재시도" @@ -8290,6 +8337,10 @@ msgid "" "used.

If unsure, leave this unchecked." msgstr "" +"2D 버텍스들을 전체 픽셀들로 반올림하고 뷰포트 크기를 전체 수로 반올림합니다." +"

더 높은 내부 해상도일 때 일부 게임에서 생기는 그래픽 문제를 해결합니" +"다.

잘 모르겠으면, 체크 해제해 두세요." #: Source/Core/Core/HW/GCPadEmu.cpp:79 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:254 @@ -8302,7 +8353,7 @@ msgstr "진동" msgid "Run &To Here" msgstr "여기까지 실행 (&T)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "GBA 코어들을 전용 쓰레드로 구동합니다" @@ -8334,7 +8385,7 @@ msgstr "선택" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8363,7 +8414,7 @@ msgstr "안전" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8373,9 +8424,9 @@ msgstr "저장" msgid "Save All" msgstr "모두 저장" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "저장 내보내기" @@ -8396,11 +8447,11 @@ msgstr "게임 저장" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "게임 저장 파일들 (*.sav);;모든 파일들 (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "저장 가져오기" @@ -8412,7 +8463,7 @@ msgstr "가장 오래된 상태 저장" msgid "Save Preset" msgstr "프리셋 저장" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "녹화 파일을 다른 이름으로 저장" @@ -8498,11 +8549,11 @@ msgstr "프리셋 다른 이름으로 저장..." msgid "Save as..." msgstr "다른 이름으로 저장..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "합쳐진 출력 파일 다른 이름으로 저장" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8512,15 +8563,15 @@ msgstr "" "이터 백업을 고려하세요.\n" "지금 덮어쓰시겠습니까?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "롬과 같은 디렉토리에 저장" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "맵 파일 저장" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "서명 파일 저장" @@ -8540,11 +8591,11 @@ msgstr "저장..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "저장된 Wii 리모트 페어링은 게임이 구동 중일 때만 재설정될 수 있습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "저장들:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "상태저장 무비 {0} 가 손상되었습니다, 무비 기록 중지 중..." @@ -8599,7 +8650,7 @@ msgstr "명령에 대한 찾기" msgid "Search games..." msgstr "게임들 검색..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "명령 찾기" @@ -8631,20 +8682,20 @@ msgstr "선택" msgid "Select Dump Path" msgstr "덤프 경로 선택" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "내보내기 디렉토리 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "GBA 바이오스 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "GBA 롬 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "GBA 저장 경로 선택" @@ -8724,7 +8775,7 @@ msgstr "WFS 경로 선택" msgid "Select Wii NAND Root" msgstr "Wii NAND 루트 선택" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "디렉토리 선택" @@ -8732,9 +8783,9 @@ msgstr "디렉토리 선택" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "파일 선택" @@ -8748,13 +8799,13 @@ msgstr "SD 카드 이미지 선택" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 msgid "Select a file" -msgstr "" +msgstr "파일 선택" #: Source/Core/DolphinQt/NetPlay/GameListDialog.cpp:18 msgid "Select a game" msgstr "게임 선택" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "NAND 에 설치할 타이틀 선택" @@ -8762,11 +8813,11 @@ msgstr "NAND 에 설치할 타이틀 선택" msgid "Select e-Reader Cards" msgstr "e-Reader 카드 선택" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "RSO 모듈 주소 선택:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "플레이할 녹화 파일 선택" @@ -8774,12 +8825,12 @@ msgstr "플레이할 녹화 파일 선택" msgid "Select the Virtual SD Card Root" msgstr "가상 SD 카드 루트 선택" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "키 파일 선택 (OTP/SEEPROM 덤프)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "저장 파일을 선택" @@ -8801,9 +8852,9 @@ msgstr "선택된 컨트롤러 프로파일이 존재하지 않습니다" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "선택된 게임은 게임 목록에 존재하지 않습니다!" @@ -8815,7 +8866,7 @@ msgstr "선택된 쓰레드 콜스택" msgid "Selected thread context" msgstr "선택된 쓰레드 맥락" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8823,7 +8874,7 @@ msgstr "" "사용할 하드웨어 어댑터를 선택하세요.

%1 는 이 기능" "을 지원하지 않습니다." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8865,7 +8916,7 @@ msgstr "" "제가 더 적게 있는 것을 고르세요.

잘 모르겠으면, " "OpenGL을 선택하세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8879,7 +8930,7 @@ msgstr "" "니다.

잘 모르겠으면, 자동을 선택하세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8899,7 +8950,7 @@ msgstr "" msgid "Send" msgstr "보내기" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "센서 바 위치:" @@ -8922,7 +8973,7 @@ msgstr "서버 IP 주소" msgid "Server Port" msgstr "서버 포트" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "서버가 횡단 시도를 거절했습니다" @@ -8932,7 +8983,7 @@ msgstr "값 설정(&V)" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:443 msgid "Set &blr" -msgstr "" +msgstr "blr 설정(&b)" #. i18n: Here, PC is an acronym for program counter, not personal computer. #: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 @@ -8941,17 +8992,17 @@ msgstr "PC 설정" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Set Value From File" -msgstr "" +msgstr "파일로 부터 값을 설정" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "기본 ISO로 설정(&D)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "슬롯 A 용 메모리 카드 파일 설정" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "슬롯 B 용 메모리 카드 파일 설정" @@ -9040,7 +9091,7 @@ msgstr "로그 보기(&L)" msgid "Show &Toolbar" msgstr "툴바 표시(&T)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "창 제목에 활성 타이틀 보여주기" @@ -9056,7 +9107,7 @@ msgstr "오스트레일리아" msgid "Show Current Game on Discord" msgstr "디스코드에 현재 게임을 보여주기" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "UI 디버깅 표시" @@ -9128,7 +9179,7 @@ msgstr "넷플레이 핑 보기" msgid "Show Netherlands" msgstr "네덜란드" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "온-스크린 메시지 보여주기" @@ -9198,17 +9249,30 @@ msgstr "세계" msgid "Show in &memory" msgstr "메모리로 보기 (&m)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "코드로 보기" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "서버 브라우저에서 보기" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:543 msgid "Show target in memor&y" -msgstr "" +msgstr "메모리에서 대상을 보여주기(&y)" #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:165 msgid "" @@ -9218,7 +9282,7 @@ msgstr "" "다양한 렌더링 통계를 보여줍니다.

잘 모르겠으면, 체" "크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9227,7 +9291,7 @@ msgstr "" "

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9277,21 +9341,21 @@ msgstr "서명 데이터베이스" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Signed 16" -msgstr "" +msgstr "부호화 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 32" -msgstr "" +msgstr "부호화 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" -msgstr "" +msgstr "부호화 8" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:145 msgid "Signed Integer" -msgstr "부호 정수" +msgstr "부호화 정수" #: Source/Core/DiscIO/Enums.cpp:98 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 @@ -9331,7 +9395,7 @@ msgstr "그리기 스킵" msgid "Skip EFB Access from CPU" msgstr "CPU로부터 EFB 엑세스 스킵" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "메인 메뉴 스킵" @@ -9362,7 +9426,7 @@ msgstr "슬라이더 바" msgid "Slot A" msgstr "슬롯 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "슬롯 A:" @@ -9370,7 +9434,7 @@ msgstr "슬롯 A:" msgid "Slot B" msgstr "슬롯 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "슬롯 B:" @@ -9426,7 +9490,7 @@ msgid "Spain" msgstr "스페인" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "스페인어" @@ -9435,7 +9499,7 @@ msgstr "스페인어" msgid "Speaker Pan" msgstr "스피커 팬" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "스피커 볼륨:" @@ -9524,11 +9588,11 @@ msgstr "전체화면으로 시작" msgid "Start with Riivolution Patches" msgstr "Riivolution 패치들로 시작" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Riivolution 패치들로 시작..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "시작된 게임" @@ -9628,7 +9692,7 @@ msgstr "입력 재생/기록 중지" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:192 msgid "Stop Recording" -msgstr "" +msgstr "녹화 중지" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 msgid "Stopped game" @@ -9699,10 +9763,10 @@ msgstr "스타일러스" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "성공" @@ -9720,16 +9784,16 @@ msgstr "%n 이미지를 성공적으로 변환했습니다." msgid "Successfully deleted '%1'." msgstr "'%1' 를 성공적으로 삭제했습니다." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "%1 저장 파일(들)로부터 %n 를 성공적으로 내보냈습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "저장 파일들을 성공적으로 내보냈습니다" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "NAND 에서 증명서를 성공적으로 추출했습니다" @@ -9741,16 +9805,16 @@ msgstr "성공적으로 파일 압축을 풀었습니다." msgid "Successfully extracted system data." msgstr "성공적으로 시스템 데이터 압축을 풀었습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "저장 파일을 성공적으로 내보냈습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "NAND 에 이 타이틀을 성공적으로 설치했습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "NAND 에서 이 타이틀을 성공적으로 제거했습니다." @@ -9758,7 +9822,7 @@ msgstr "NAND 에서 이 타이틀을 성공적으로 제거했습니다." msgid "Support" msgstr "지원" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "지원하는 파일 포멧" @@ -9794,11 +9858,11 @@ msgstr "" msgid "Swing" msgstr "스윙" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "A로 스위치" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "B로 스위치" @@ -9822,6 +9886,11 @@ msgid "" "Symbols -> Generate Symbols From ->\n" "\tAddress | Signature Database | RSO Modules" msgstr "" +"부호 맵이 발견되지 않았습니다.\n" +"\n" +"존재하지 않는다면, 메뉴 바에서 생성할 수 있습니다:\n" +"부호 -> 로 부터 부호 생성 ->\n" +"\t주소 | 서명 데이터베이스 | RSO 모듈" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:736 msgid "Symbol name:" @@ -9877,7 +9946,7 @@ msgstr "Gecko 코드들을 동기화합니다..." msgid "Synchronizing save data..." msgstr "저장 데이터를 동기화합니다..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "시스템 언어:" @@ -9892,8 +9961,8 @@ msgstr "TAS 입력" msgid "TAS Tools" msgstr "TAS 도구" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9963,7 +10032,7 @@ msgstr "IPL 파일이 알려진 좋은 덤프가 아닙니다. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "명작 파티션들이 빠져있습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9971,7 +10040,7 @@ msgstr "" "NAND 는 고쳐질 수 없었습니다. 현재 데이터 백업이 권장됩니다 그리고 생생한 " "NAND 로 다시 시작하세요." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND 가 고쳐졌습니다." @@ -10027,11 +10096,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "디스크가 읽혀질 수 없었습니다 (위치 {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "삽입되려 했던 디스크를 찾을 수 없습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10065,11 +10134,11 @@ msgstr "입력된 PID 가 부적합합니다." msgid "The entered VID is invalid." msgstr "입력된 VID 가 부적합합니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "표현식에 문법 에러가 있습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10101,6 +10170,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "{0} 파일이 이미 열려 있습니다, 파일 헤더는 기록되지 않을 것입니다." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "파일시스템이 부적합하거나 읽혀질 수 없습니다." @@ -10213,7 +10289,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "해독된 AR 코드 결과가 없습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10253,7 +10329,7 @@ msgstr "명시된 공통 키 인덱스는 {0} 입니다 하지만 {1} 이어야 msgid "The specified file \"{0}\" does not exist" msgstr "기술된 \"{0}\" 파일은 존재하지 않습니다" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "대상 메모리 카드가 이미 파일 \"%1\" 을 가지고 있습니다." @@ -10310,7 +10386,7 @@ msgstr "첫 파티션 테이블에 너무 많은 파티션들이 있습니다." msgid "There is nothing to undo!" msgstr "되돌릴 것이 없습니다!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "데스크탑에 바로가기 추가하기에 문제가 있었습니다" @@ -10352,11 +10428,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "이 USB 장치는 이미 와이트리스트되어 있습니다." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "이 WAD 는 부팅이 가능하지 않습니다." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "이 WAD 는 적합하지 않습니다." @@ -10369,7 +10445,7 @@ msgstr "" "습니다." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "이것은 되돌릴 수 없습니다!" @@ -10492,7 +10568,7 @@ msgid "This software should not be used to play games you do not legally own." msgstr "" "이 소프트웨어는 합법적 소유가 아닌 게임을 플레이하기 위해 쓰여서는 안됩니다." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "이 타이틀은 부팅될 수 없습니다." @@ -10505,7 +10581,7 @@ msgstr "이 타이틀은 부적합 IOS 를 사용하도록 설정되어 있습 msgid "This title is set to use an invalid common key." msgstr "이 타이틀은 부적합 공유 키를 사용하도록 설정되어 있습니다." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10517,7 +10593,7 @@ msgstr "" "\n" "DSPHLE: 알려지지 않은 ucode (CRC = {0:08x}) - 강제 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10587,7 +10663,7 @@ msgstr "기울기" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "측정을 작동시키기 위한 안정적 입력 기간. (제로는 비활성)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10629,7 +10705,7 @@ msgid "Toggle Aspect Ratio" msgstr "종횡비 토글" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "중단점 토글" @@ -10689,7 +10765,7 @@ msgstr "토큰화를 실패했습니다." msgid "Toolbar" msgstr "툴바" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "위" @@ -10701,7 +10777,7 @@ msgstr "위 아래로" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 msgid "Total Hits" -msgstr "" +msgstr "총 히트" #. i18n: Refers to an amount of rotational movement about the "pitch" axis. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp:55 @@ -10741,8 +10817,8 @@ msgstr "터치" msgid "Traditional Chinese" msgstr "전통 중국어" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "횡단 에러" @@ -10750,7 +10826,7 @@ msgstr "횡단 에러" msgid "Traversal Server" msgstr "횡단 서버" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "횡단 서버가 호스트에 연결중 시간이 초과되었습니다." @@ -10776,7 +10852,7 @@ msgid "Triggers" msgstr "트리거" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10784,7 +10860,7 @@ msgstr "타입" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 msgid "Type-based Alignment" -msgstr "" +msgstr "타입-기반 정돈" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:48 msgid "Typical GameCube/Wii Address Space" @@ -10810,7 +10886,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB 와이트리스트 에러" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10821,7 +10897,7 @@ msgstr "" "

모르겠으면, 이 모드를 선택하세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10833,7 +10909,7 @@ msgstr "" "로 버벅임을 겪었고 매우 강력한 GPU를 가지고 있지 않다면 이것을 사용하지 마세" "요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10846,13 +10922,13 @@ msgstr "" "의 경우 미약한 성능 타격을 얻는 반면 쉐이더 컴파일 버벅임을 완전제거합니다, " "하지만 결과는 비디오 드라이버 행동에 달려있습니다." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "RSO 모듈을 자동-감지할 수 없습니다" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 msgid "Unable to open file." -msgstr "" +msgstr "파일 열기가 불가능합니다." #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:150 msgid "" @@ -10880,7 +10956,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 msgid "Unable to read file." -msgstr "" +msgstr "파일 읽기가 불가능합니다." #: Source/Core/DiscIO/NANDImporter.cpp:268 msgid "Unable to write to file {0}" @@ -10906,11 +10982,11 @@ msgstr "상태 저장 되돌리기" msgid "Uninstall" msgstr "언인스톨" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "NAND 에서 언인스톨" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10929,11 +11005,11 @@ msgstr "미국" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "알려지지 않음" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "알려지지 않은 DVD 명령 {0:08x} - 치명적 오류" @@ -10981,11 +11057,11 @@ msgstr "알려지지 않은 디스크" msgid "Unknown error occurred." msgstr "알려지지 않은 에러가 발생했습니다." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "알려지지 않은 오류 {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "알려지지 않은 오류." @@ -11017,17 +11093,17 @@ msgstr "풀기" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Unsigned 16" -msgstr "" +msgstr "비부호화 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 32" -msgstr "" +msgstr "비부호화 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" -msgstr "" +msgstr "비부호화 8" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:146 msgid "Unsigned Integer" @@ -11042,8 +11118,8 @@ msgstr "부호 없는 정수" msgid "Up" msgstr "위쪽" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "업데이트" @@ -11105,11 +11181,11 @@ msgstr "Wii 리모트 똑바로" msgid "Usage Statistics Reporting Settings" msgstr "사용 통계 보고 설정" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "내장된 데이터 베이스의 게임 이름 사용" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "맞춤형 사용자 스타일 사용" @@ -11121,7 +11197,7 @@ msgstr "비손실 코덱 (FFV1) 사용" msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 모드 (EuRGB60) 사용" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "패닉 핸들러 사용" @@ -11186,16 +11262,33 @@ msgid "" "You can continue to use 'Code did not get executed'/'Code has been executed' " "to narrow down the results." msgstr "" +"언제 구동되고 있어야할지에 기반으로 함수를 찾을 때 사용됩니다.\n" +"치트 엔진 Ultimap 과 비슷합니다.\n" +"부호 맵은 사용하기 전에 로딩되어 있어야 합니다.\n" +"포함/제외 목록은 에뮬레이션 끝/재시작 상태에서 지속될 것입니다.\n" +"이들 목록은 돌핀 닫기에서 지속되지 않을 것입니다.\n" +"\n" +"'녹화 시작': 어떤 함수가 구동되는지 추적 유지합니다.\n" +"'녹화 중지': 해당 목록의 변경 없이 현재 녹화를 지웁니다.\n" +"'코드가 실행되어지지 않았습니다': 녹화 중에 클릭, 제외 목록에 녹화된 함수들" +"이 추가될 것입니다.\n" +"'코드가 실행되었습니다': 녹화 중에 클릭, 포함 목록에 함수들이 추가될 것입니" +"다, 그런 후 녹화 목록을 리셋합니다.\n" +"\n" +"제외와 포함 둘다 일단 사용한 후에, 제외 목록은 포함 목록에서 빠질 것이고 남" +"은 포함들은 표시될 것입니다.\n" +"해당 결과를 좁히기 위해 '코드가 실행되어지지 않았습니다'/'코드가 실행되엇습니" +"다' 를 계속 사용할 수 있습니다." #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:178 msgid "User Config" msgstr "사용자 환경" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "사용자 인터페이스" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "사용자 스타일:" @@ -11225,7 +11318,7 @@ msgstr "" "져올 수 있습니다.

모르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11235,7 +11328,7 @@ msgstr "" "입니다.

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
그렇지 않고, 잘 모르겠으" "면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11491,7 +11584,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "경고" @@ -11512,7 +11605,7 @@ msgstr "" "경고: BAT ({0}) 에 의해 나타난 블록수가 파일 헤더 ({1}) 의 수와 일치하지 않습" "니다" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11522,7 +11615,7 @@ msgstr "" "(입력 {2} > {3}). 계속하기전에 다른 저장을 로드해야합니다, 그렇지 않으면 읽" "기-전용 모드가 꺼진 상태로 이것을 로드합니다." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11531,7 +11624,7 @@ msgstr "" "경고: 저장 (바이트 {0} < {1}) (프레임 {2} < {3})에서 현재 프레임 전에 무비가 " "끝나는 저장을 로드했습니다. 계속하기 전에 다른 저장을 로드해야합니다." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11541,7 +11634,7 @@ msgstr "" "전에 다른 저장을 로드해야 합니다, 혹은 읽기-전용 모드를 끄고 로드하세요. 그렇" "지 않으면 아마도 싱크 문제가 생길겁니다." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11620,7 +11713,7 @@ msgstr "" "를 포함합니다.

잘 모르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "와이트리스트된 USB 패스쓰루 장치들" @@ -11666,7 +11759,7 @@ msgstr "Wii 리모트 버튼" msgid "Wii Remote Orientation" msgstr "Wii 리모트 방향" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii 리모트 설정" @@ -11694,7 +11787,7 @@ msgstr "Wii 와 Wii 리모트" msgid "Wii data is not public yet" msgstr "Wii 데이터는 아직 공개가 아닙니다" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii 저장 파일 (*.bin);;모든 파일 (*)" @@ -11702,7 +11795,7 @@ msgstr "Wii 저장 파일 (*.bin);;모든 파일 (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools 서명 MEGA 파일" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11761,9 +11854,21 @@ msgstr "로그에 쓰고 중단" msgid "Write to Window" msgstr "창에 쓰기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "잘못된 버전" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11843,17 +11948,6 @@ msgstr "" "\n" "어째든 계속하고 싶다고 확신합니까?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"당신은 지원대지 않는 운영 체제상에서 Vulkan (Metal) 백엔드를 시도하고 있습니" -"다. 모든 기능이 활성화 되려면, macOS 10.14 (Mojave) 이상을 사용해야만 합니" -"다. 10.14+ 에서도 발생하는 것이 아니라면 어느 이슈도 리포트하지 말아주세요." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11904,7 +11998,7 @@ msgstr "당신의 세션을 위한 이름을 제공해야만 합니다!" msgid "You must provide a region for your session!" msgstr "당신의 세션을 위한 지역을 제공해야만 합니다!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "변경이 적용되려면 돌핀을 재시작 해야 합니다." @@ -11982,12 +12076,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll 는 로드될 수 없었습니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "기본값" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "연결이 끊겼습니다" @@ -12050,13 +12144,13 @@ msgstr "" msgid "none" msgstr "없음" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "끄기" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "켜기" @@ -12093,7 +12187,7 @@ msgstr "정렬되지 않음" msgid "{0} (Masterpiece)" msgstr "{0} (명작)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12119,7 +12213,7 @@ msgstr "" "쓰기 권한을 검사하거나 파일을 돌핀 밖으로 옮기세요." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{1} 블락들의 {0}. 압축 비율 {2}%" diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 2e1ad6a483..81719c692a 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -35,7 +35,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -180,19 +180,19 @@ msgstr "" "%2 objek(s)\n" "Bingkai Semasa: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -229,7 +229,7 @@ msgstr "%1% (Kelajuan Biasa)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -292,7 +292,7 @@ msgstr "" msgid "&About" msgstr "Perih&al" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Tambah Titik Henti Ingatan" @@ -384,7 +384,7 @@ msgstr "Pa&dam" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "Pa&dam Pantauan" @@ -482,7 +482,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Bahasa:" @@ -539,7 +539,7 @@ msgstr "&Jeda" msgid "&Play" msgstr "&Main" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "Si&fat" @@ -589,7 +589,7 @@ msgstr "&Had Kelajuan:" msgid "&Stop" msgstr "&Henti" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -619,7 +619,7 @@ msgstr "&Tonton" msgid "&Website" msgstr "&Laman Sesawang" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -627,15 +627,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' tidak ditemui, tiada nama simbol dijana" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' tidak ditemui, mengimbas fungsi umum sebagai ganti" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -672,9 +672,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -864,7 +864,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -879,8 +879,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Satu Sesi NetPlay sedang berlangsung!" @@ -894,15 +894,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Cakera A sedia dimasukkan." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktif" @@ -1051,7 +1051,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1081,8 +1081,8 @@ msgstr "" msgid "Add New USB Device" msgstr "Tambah Peranti USB Baharu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1109,18 +1109,18 @@ msgstr "" msgid "Add to &watch" msgstr "Tambah untuk &dipantau" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Tambah..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1209,10 +1209,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1220,20 +1225,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Semua Keadaan Simpan (*.sav *.s##);; Semua Fail (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1254,7 +1276,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1276,7 +1298,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1332,7 +1354,7 @@ msgstr "Anti-Alias:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1358,7 +1380,7 @@ msgstr "Tarikh Pemuatapl:" msgid "Apply" msgstr "Laksana" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1370,7 +1392,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Anda pasti mahu memadam '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Anda pasti ingin memadam fail ini?" @@ -1386,7 +1408,7 @@ msgstr "Anda pasti ingin keluar dari NetPlay?" msgid "Are you sure?" msgstr "Anda pasti?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1403,7 +1425,7 @@ msgstr "Umpuk Port Kawalan" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1464,11 +1486,11 @@ msgstr "Auto-Laras Saiz Tetingkap" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1495,7 +1517,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1507,7 +1529,7 @@ msgstr "Daftar BP" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1560,7 +1582,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1595,7 +1617,7 @@ msgstr "Tetapan Asas" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1627,7 +1649,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1671,11 +1693,11 @@ msgstr "" msgid "Boot to Pause" msgstr "But untuk Dijeda" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Fail sandar NAND BootMii (*.bin);;Semua Fail (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fail kunci BootMii (*.bin);;Semua Fail (*)" @@ -1683,7 +1705,7 @@ msgstr "Fail kunci BootMii (*.bin);;Semua Fail (*)" msgid "Borderless Fullscreen" msgstr "Skrin Penuh Tanpa Sempadan" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Bawah" @@ -1710,7 +1732,7 @@ msgstr "Titik Henti" msgid "Breakpoint encountered! Step out aborted." msgstr "Titik henti dihadapi! Langkah keluar dihenti paksa." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Titik Henti" @@ -1744,12 +1766,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Saiz Penimbal:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Saiz penimbal berubah ke %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Penimbal:" @@ -1864,7 +1886,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1872,14 +1894,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Tidak dapat memulakan Sesi NetPlay ketika permainan masih berlangsung!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1907,7 +1929,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Tidak dapat cari IPL GC." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1933,7 +1955,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Ubah &Cakera" @@ -1949,7 +1971,7 @@ msgstr "Ubah Cakera" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -2001,7 +2023,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2017,16 +2039,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Pilih satu fail untuk dibuka" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2051,7 +2076,7 @@ msgstr "Pengawal Klasik" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Kosongkan" @@ -2104,7 +2129,7 @@ msgstr "" msgid "Code:" msgstr "Kod:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2129,7 +2154,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2181,23 +2206,23 @@ msgstr "Konfigur Output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Sahkan" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Sahkan bil Berhenti" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2252,7 +2277,7 @@ msgstr "Sambung ke Internet dan lakukan kemaskini sistem atas-talian?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2360,11 +2385,11 @@ msgstr "Ketumpuan:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2390,9 +2415,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Salin" @@ -2404,19 +2429,19 @@ msgstr "Salin &fungsi" msgid "Copy &hex" msgstr "Salin &heks" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2424,19 +2449,15 @@ msgstr "" msgid "Copy code &line" msgstr "Salin &baris kod" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Salin gagal" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2480,14 +2501,14 @@ msgstr "" "Tidak dapat memuat turun maklumat dari Nintendo. Sila periksa sambungan " "Internet anda dan cuba lagi." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2535,7 +2556,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2547,15 +2568,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Tidak dapat cari pelayan pusat" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2609,7 +2630,7 @@ msgstr "Resap Silang" msgid "Current Region" msgstr "Wilayah Semasa" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2712,23 +2733,23 @@ msgstr "" msgid "Data Type" msgstr "Jenis Data" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2830,21 +2851,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Padam" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Padam Fail..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2860,10 +2881,10 @@ msgstr "Peratus Kedalaman:" msgid "Depth:" msgstr "Kedalaman:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2883,7 +2904,7 @@ msgstr "" msgid "Detect" msgstr "Kesan" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2904,7 +2925,7 @@ msgstr "Peranti" msgid "Device PID (e.g., 0305)" msgstr "PID Peranti (iaitu, 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Tetapan Peranti" @@ -2951,8 +2972,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3045,26 +3066,26 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Adakah anda izinkan Dolphin melaporkan maklumat kepada pembangun Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Anda mahu tambah \"%1\" ke dalam senarai Laluan Permainan?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Anda mahu kosongkan senarai nama simbol?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Anda hendak hentikan emulasi semasa?" @@ -3081,9 +3102,9 @@ msgstr "Log FIFO Dolphin (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Fail Peta Dolphin (*.map)" @@ -3095,8 +3116,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Cereka TAS Dolphin (*.dtm)" @@ -3111,7 +3132,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3131,7 +3152,7 @@ msgstr "Dolphin gagal menyelesaikan tindakan yang dipinta." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin ialah emulator GameCube dan Wii bebas dan bersumber-terbuka." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin terlalu tua untuk pelayan traversal" @@ -3196,7 +3217,7 @@ msgstr "Muat Turun Kod" msgid "Download Codes from the WiiRD Database" msgstr "Muat turun Kod dar Pangkalan Data WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3376,7 +3397,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Bahasa Belanda" @@ -3449,7 +3470,7 @@ msgstr "Penimbal Bingkai Terbenam (EFB)" msgid "Empty" msgstr "Kosong" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Bebenang Emu sudah berjalan" @@ -3481,8 +3502,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3532,7 +3553,7 @@ msgid "Enable Progressive Scan" msgstr "Benarkan Imbas Progresif" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Benarkan Rumble" @@ -3650,7 +3671,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3663,7 +3684,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet Tidak Diawalkan" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Bahasa Inggeris" @@ -3696,7 +3717,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Masukkan alamat modul RSO:" @@ -3708,7 +3729,7 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3727,46 +3748,47 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Ralat" @@ -3787,11 +3809,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3811,7 +3833,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3963,10 +3985,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Eskport Semua Simpan Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3978,19 +4000,19 @@ msgstr "Eksport Rakaman" msgid "Export Recording..." msgstr "Eksport Rakaman..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Eksport Fail Simpan" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -4002,7 +4024,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4076,7 +4098,7 @@ msgstr "Pemain FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4086,19 +4108,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Gagal menuntut antaramuka untuk passthrough BT" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4128,11 +4150,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Gagal memadam fail terpilih." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4148,16 +4170,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Gagal mengekstrak sijil dari NAND" @@ -4180,29 +4202,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Gagal ke teras init" @@ -4222,12 +4244,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Gagal memasang tajuk ini ke NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4235,8 +4257,8 @@ msgstr "" "Gagal mendengar pada port %1. Adakah kejadian lain pelayan NetPlay masih " "berjalan?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Gagal memuatkan modul RSO pada %1" @@ -4248,7 +4270,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4262,13 +4284,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Gagal membuka '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4290,11 +4312,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Gagal membuka pelayan" @@ -4303,7 +4325,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4323,25 +4345,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4352,7 +4374,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Gagal membuang tajuk ini dari NAND." @@ -4372,19 +4394,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Gagal menyimpan log FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4408,9 +4430,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4418,21 +4440,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4457,7 +4479,7 @@ msgstr "Pantas" msgid "Fast Depth Calculation" msgstr "Pengiraan Kedalaman Pantas" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4472,7 +4494,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4486,19 +4508,19 @@ msgstr "" msgid "File Info" msgstr "Maklumat Fail" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nama Fail" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Saiz Fail" @@ -4525,11 +4547,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4581,7 +4603,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Baiki Hasil Tambah Semak" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4591,7 +4613,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Bendera" @@ -4729,11 +4751,11 @@ msgstr "Bingkai untuk Dirakam:" msgid "France" msgstr "Perancis" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4771,7 +4793,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Perancis" @@ -4800,7 +4822,7 @@ msgstr "Dari:" msgid "FullScr" msgstr "SkrPenuh" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Fungsi" @@ -4832,7 +4854,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4844,11 +4866,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4951,11 +4973,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartu Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4977,7 +4999,7 @@ msgstr "" msgid "Game Folders" msgstr "Folder Permainan" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Permainan" @@ -4991,11 +5013,25 @@ msgstr "ID Permainan:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Permainan bertukar ke \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Permainan sudah berjalan!" @@ -5004,6 +5040,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Tetapan Khusus-Permainan" @@ -5044,12 +5084,12 @@ msgstr "Papan Kekunci GameCube pada Port %1" msgid "GameCube Memory Card Manager" msgstr "Pengurus Kad Ingatan GameCube" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Kad Ingatan GameCube (*.raw *.gcp)" @@ -5082,7 +5122,7 @@ msgstr "Am" msgid "General and Options" msgstr "Am dan Pilihan" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5090,16 +5130,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Jana satu Identiti Statistik Baharu" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Nama simbol terjana dari '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Jerman" @@ -5108,14 +5148,14 @@ msgstr "Jerman" msgid "Germany" msgstr "Jerman" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "" @@ -5283,15 +5323,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Hos dengan NetPlay" @@ -5309,7 +5349,7 @@ msgstr "Tetapan Kekunci Panas" msgid "Hotkeys" msgstr "Kekunci Panas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5354,7 +5394,7 @@ msgstr "" msgid "IP Address:" msgstr "Alamat IP:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Tetapan IPL" @@ -5363,7 +5403,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Kepekaan IR:" @@ -5400,7 +5440,7 @@ msgstr "" msgid "Identity Generation" msgstr "Penjanaan Identiti" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5453,7 +5493,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Abai Perubahan Format" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5490,14 +5530,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Import Sandar NAND BootMii..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5505,11 +5545,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Import Simpan Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Mengimport sandar NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5583,21 +5623,21 @@ msgid "Info" msgstr "Maklumat" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Maklumat" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Input" @@ -5642,7 +5682,7 @@ msgstr "" msgid "Install WAD..." msgstr "Pasang WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Pasang ke NAND" @@ -5658,7 +5698,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "Titik Henti Arahan" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5705,7 +5745,7 @@ msgstr "Resolusi Dalaman" msgid "Internal Resolution:" msgstr "Resolusi Dalaman:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5717,7 +5757,7 @@ msgstr "Pentafsir (paling perlahan)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5734,7 +5774,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "ID Pemain Tidak Sah" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Alamat modul RSO tidak sah: %1" @@ -5742,7 +5782,7 @@ msgstr "Alamat modul RSO tidak sah: %1" msgid "Invalid callstack" msgstr "Tindanan panggilan tidak sah" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5750,7 +5790,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Hos tidak sah" @@ -5759,7 +5799,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Input tidak sah untuk medan \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Input tidak sah disediakan" @@ -5791,7 +5831,7 @@ msgstr "Parameter gelintar tidak sah (tidak dapat tukar ke nombor)" msgid "Invalid search string (only even string lengths supported)" msgstr "Parameter gelintar tidak sah (hanya panjang rentetan disokong)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "ID tajuk tidak sah." @@ -5800,7 +5840,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Itali" @@ -5904,7 +5944,7 @@ msgstr "Jepun" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Kekalkan Tetingkap berada Diatas" @@ -5972,7 +6012,7 @@ msgstr "" msgid "Label" msgstr "Label" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6070,7 +6110,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Muat" @@ -6205,7 +6245,7 @@ msgstr "Muat Keadaan dari Slot" msgid "Load Wii Save" msgstr "Muat Simpan Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Muat Menu Sistem Wii %1" @@ -6217,8 +6257,8 @@ msgstr "Muat dari Slot Terpilih" msgid "Load from Slot %1 - %2" msgstr "Muat dari Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Muat fail peta" @@ -6226,7 +6266,7 @@ msgstr "Muat fail peta" msgid "Load..." msgstr "Muat..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Simbol dimuatkan dari '%1'" @@ -6241,7 +6281,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6270,7 +6310,7 @@ msgstr "Log Jenis" msgid "Logger Outputs" msgstr "Output Pengelog" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6281,7 +6321,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Sambung dengan pelayan NetPlay terputus..." @@ -6310,7 +6350,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6318,7 +6358,7 @@ msgstr "" msgid "Main Stick" msgstr "Bidak Utama" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6357,11 +6397,11 @@ msgstr "" msgid "Match Found" msgstr "Padanan Ditemui" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6395,16 +6435,6 @@ msgstr "Kad Ingatan" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6413,19 +6443,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "Pilihan titik henti ingatan" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6455,15 +6485,15 @@ msgstr "Pelbagai" msgid "Misc Settings" msgstr "Tetapan Pelbagai" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6486,8 +6516,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6516,20 +6546,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6543,14 +6573,20 @@ msgstr "" msgid "Movie" msgstr "Cereka" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Semak NAND" @@ -6581,11 +6617,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6606,8 +6642,8 @@ msgstr "Nama:" msgid "Native (640x528)" msgstr "Natif (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6627,11 +6663,11 @@ msgstr "" msgid "Netherlands" msgstr "Belanda" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay telah dinyahsegerak dalam NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Netplay telah dinyahsegerakkan. Tiada lagi cara untuk memulihkannya." @@ -6644,7 +6680,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6652,7 +6688,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Baharu" @@ -6665,7 +6701,7 @@ msgstr "Titik Henti Baharu" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6677,7 +6713,7 @@ msgstr "Identiti baharu dijanakan." msgid "New instruction:" msgstr "Arahan baharu:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6734,13 +6770,13 @@ msgstr "Tiada Padanan" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Tiada keterangan tersedia" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6760,10 +6796,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Tiada isu dikesan." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6791,7 +6831,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6813,10 +6853,6 @@ msgstr "Tiada" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Tidak Ditetapkan" @@ -6825,7 +6861,7 @@ msgstr "Tidak Ditetapkan" msgid "Not all players have the game. Do you really want to start?" msgstr "Bukan semua pemain memilik permainan. Anda pasti mahu mulakannya?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6833,7 +6869,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6841,6 +6877,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6893,7 +6933,7 @@ msgstr "Orientasi Nunchuk" msgid "Nunchuk Stick" msgstr "Bidak Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6924,7 +6964,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6932,13 +6972,13 @@ msgstr "" msgid "Online &Documentation" msgstr "&Dokumentasi Atas Talian" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6951,7 +6991,7 @@ msgstr "" msgid "Open" msgstr "Buka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6963,7 +7003,7 @@ msgstr "" msgid "Open FIFO log" msgstr "Buka log FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6971,7 +7011,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7159,7 +7199,7 @@ msgstr "Jeda" msgid "Pause at End of Movie" msgstr "Jeda Dipenghujung Cereka" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Jeda jika Hilang Fokus" @@ -7186,7 +7226,7 @@ msgstr "Pencahayaan Per-Piksel" msgid "Perform Online System Update" msgstr "Lakukan Kemaskini Sistem Atas-Talian" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Lakukan Kemaskini Sistem" @@ -7204,7 +7244,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Ambil satu fon nyahpepijat" @@ -7220,7 +7260,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7266,7 +7306,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7275,7 +7315,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Nyahsegerak berkemungkinan dikesan: %1 mungkin telah dinyahsegerak pada " @@ -7297,15 +7337,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Dapatkan Tekstur Suai" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7330,7 +7370,7 @@ msgstr "Tekan Butang Segerak" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7411,7 +7451,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7437,8 +7477,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Soalan" @@ -7466,7 +7506,7 @@ msgstr "" msgid "RSO Modules" msgstr "Modul RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7611,12 +7651,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7646,12 +7686,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Buang" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7659,11 +7699,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7679,7 +7719,7 @@ msgstr "" msgid "Rename symbol" msgstr "Nama semula simbol" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7758,7 +7798,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Mula Semula Diperlukan" @@ -7770,7 +7810,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Cuba Lagi" @@ -7870,7 +7910,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "&Jalankan Di Sini" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7902,7 +7942,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -7931,7 +7971,7 @@ msgstr "Selamat" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7941,9 +7981,9 @@ msgstr "Simpan" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7964,11 +8004,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7980,7 +8020,7 @@ msgstr "Simpan Keadaan Terlama" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8066,26 +8106,26 @@ msgstr "" msgid "Save as..." msgstr "Simpan sebagai..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Simpan fail peta" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Simpan fail tandatangan" @@ -8107,11 +8147,11 @@ msgstr "" "Perpasangan Wii Remote tersimpan hanya boleh ditetapkan semula bila " "permainan Wii berjalan." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8164,7 +8204,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8196,20 +8236,20 @@ msgstr "Pilih" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8289,7 +8329,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Pilih Root NAND Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Pilih satu Direktori" @@ -8297,9 +8337,9 @@ msgstr "Pilih satu Direktori" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Pilih satu Fail" @@ -8319,7 +8359,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Pilih satu tajuk untuk dipasang ke dalam NAND" @@ -8327,11 +8367,11 @@ msgstr "Pilih satu tajuk untuk dipasang ke dalam NAND" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8339,12 +8379,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Pilih fail kunci (longgok OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Pilih fail simpan" @@ -8366,9 +8406,9 @@ msgstr "Profil pengawal terpilih tidak wujud" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8380,13 +8420,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8413,7 +8453,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8422,7 +8462,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8436,7 +8476,7 @@ msgstr "" msgid "Send" msgstr "Hantar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Kedudukan Palang Penderia:" @@ -8456,7 +8496,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Pelayan menolak percubaan travesal" @@ -8477,15 +8517,15 @@ msgstr "Tetapkan PC" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Tetapkan fail kad ingatan untuk Slot A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Tetapkan fail kad ingatan untuk Slot B" @@ -8568,7 +8608,7 @@ msgstr "Tunjuk &Log" msgid "Show &Toolbar" msgstr "Tunjuk Palang Ala&t" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Tunjuk Tajuk Aktif dalam Tajuk Tetingkap" @@ -8584,7 +8624,7 @@ msgstr "Tunjuk Australia" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Tunjuk UI Penyahpepijatan" @@ -8656,7 +8696,7 @@ msgstr "Tunjuk Ping NetPlay" msgid "Show Netherlands" msgstr "Tunjuk Belanda" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8726,10 +8766,23 @@ msgstr "Tunjuk Dunia" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8744,20 +8797,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8846,7 +8899,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Langkau Capaian EFB dari CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Langkau Menu Utama" @@ -8872,7 +8925,7 @@ msgstr "Palang Pelungsur" msgid "Slot A" msgstr "SLot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A:" @@ -8880,7 +8933,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B:" @@ -8932,7 +8985,7 @@ msgid "Spain" msgstr "Sepanyol" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Sepanyol" @@ -8941,7 +8994,7 @@ msgstr "Sepanyol" msgid "Speaker Pan" msgstr "Lata Pembesar Suara" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volum Pembesar Suara:" @@ -9023,11 +9076,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Permainan bermula" @@ -9190,10 +9243,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Berjaya" @@ -9211,16 +9264,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "Berjaya memadam '%1'." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Berjaya mengimport fail simpan" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Berjaya mengekstrak sijil dari NAND" @@ -9232,16 +9285,16 @@ msgstr "Berjaya mengekstrak fail." msgid "Successfully extracted system data." msgstr "Berjaya mengekstrak data sistem." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Berjaya memasang tajuk ini ke NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Berjaya membuang tajuk ini dari NAND." @@ -9249,7 +9302,7 @@ msgstr "Berjaya membuang tajuk ini dari NAND." msgid "Support" msgstr "Sokongan" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9282,11 +9335,11 @@ msgstr "" msgid "Swing" msgstr "Ayun" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9363,7 +9416,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Bahasa Sistem:" @@ -9378,8 +9431,8 @@ msgstr "Input TAS" msgid "TAS Tools" msgstr "Alatan TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9448,7 +9501,7 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9456,7 +9509,7 @@ msgstr "" "NAND tidak dapat dibaiki. Adalah disarankan menyandar data semasa anda dan " "mula kembali dengan NAND yang baharu." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND telah dibaiki." @@ -9502,11 +9555,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Cakera yang hendak dimasukkan tidak ditemui." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9540,11 +9593,11 @@ msgstr "PID yang dimasukkan tidak sah." msgid "The entered VID is invalid." msgstr "VID yang dimasukkan tidak sah." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9568,6 +9621,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9668,7 +9728,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Kod AR dinyahsulit yang terhasil tidak mengandungi sebarang baris." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9702,7 +9762,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9759,7 +9819,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Tiada apa hendak dibuat asal!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9799,11 +9859,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Peranti USB sudah berada dalam senarai putih." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "WAD ini tidak boleh dibutkan." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "WAD ini tidak sah." @@ -9816,7 +9876,7 @@ msgstr "" "sendiri mengubahsuai." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Ia tidak boleh dikembalikan!" @@ -9918,7 +9978,7 @@ msgstr "" "Perisian ini tidak seharusnya digunakan untuk main permainan bukan milik " "anda secara sah." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Tajuk ini tidak boleh dibutkan." @@ -9931,7 +9991,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9939,7 +9999,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10002,7 +10062,7 @@ msgstr "Condong" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10044,7 +10104,7 @@ msgid "Toggle Aspect Ratio" msgstr "Togol Nisbah Bidang" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Togol Titik Henti" @@ -10104,7 +10164,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Atas" @@ -10156,8 +10216,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Cina Tradisional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Ralat Traversal" @@ -10165,7 +10225,7 @@ msgstr "Ralat Traversal" msgid "Traversal Server" msgstr "Pelayan Traversal" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Pelayan travesal tamat masa ketika menyambung ke hos" @@ -10189,7 +10249,7 @@ msgid "Triggers" msgstr "Pemicu" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10223,14 +10283,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10238,7 +10298,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10247,7 +10307,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10303,11 +10363,11 @@ msgstr "Buat Asal Keadaan Simpan" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Nyahpasang dari NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10326,11 +10386,11 @@ msgstr "Amerika Syarikat" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Tidak diketahui" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10374,11 +10434,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10434,8 +10494,8 @@ msgstr "Integer Tidak Bertanda" msgid "Up" msgstr "Naik" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Kemaskini" @@ -10497,11 +10557,11 @@ msgstr "Wii Remote Tegak" msgid "Usage Statistics Reporting Settings" msgstr "Tetapan Pelaporan Statistik Penggunaan" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Guna Pangkalan Data Terbina-Dalam Nama Permainan" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10513,7 +10573,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Guna Mod PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Guna Pengendali Panik" @@ -10575,11 +10635,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Antaramuka Pengguna" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10602,14 +10662,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10840,7 +10900,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Amaran" @@ -10857,28 +10917,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10933,7 +10993,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Peranti Menerusi USB Senarai Putih" @@ -10979,7 +11039,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Tetapan Kawalan Jauh Wii" @@ -11007,7 +11067,7 @@ msgstr "Wii dan Wii Remote" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Fail simpan Wii (*.bin);;Semua Fail (*)" @@ -11015,7 +11075,7 @@ msgstr "Fail simpan Wii (*.bin);;Semua Fail (*)" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11072,8 +11132,20 @@ msgstr "Tulis ke Log dan Henti" msgid "Write to Window" msgstr "Tulis ke Tetingkap" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11140,14 +11212,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11189,7 +11253,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Anda mesti mulakan semula Dolphin supaya perubahan berkesan." @@ -11259,12 +11323,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11325,13 +11389,13 @@ msgstr "" msgid "none" msgstr "tiada" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "hidup" @@ -11368,7 +11432,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11391,7 +11455,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index 4c0624e888..1162edb737 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -54,7 +54,7 @@ msgstr "" "Fordi denne tittelen ikke er for kommersielle Wii-konsoller, kan ikke " "Dolphin verifisere at den ikke har blitt tuklet med." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -199,19 +199,19 @@ msgstr "" "%2 objekt(er)\n" "Nåværende bilderute: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 ble med" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 har forlatt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 golfer nå" @@ -248,7 +248,7 @@ msgstr "%1% (Normal hastighet)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -311,7 +311,7 @@ msgstr "" msgid "&About" msgstr "&Om" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Legg til minnestoppunkt" @@ -403,7 +403,7 @@ msgstr "&Slett" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Slett Overvåker" @@ -501,7 +501,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Språk:" @@ -558,7 +558,7 @@ msgstr "&Pause" msgid "&Play" msgstr "&Spill" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Egenskaper" @@ -608,7 +608,7 @@ msgstr "&Fartsgrense:" msgid "&Stop" msgstr "S&topp" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Drakt:" @@ -638,7 +638,7 @@ msgstr "&Se" msgid "&Website" msgstr "&Nettside" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -646,15 +646,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' ikke funnet, ingen symbolnavn generert" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' ikke funnet, scanner for vanlige funksjoner istedet" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Ingen)" @@ -691,9 +691,9 @@ msgid "--> %1" msgstr "→ %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "…" @@ -883,7 +883,7 @@ msgstr "< Mindre enn" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -901,8 +901,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Større enn" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "En NetPlay-økt finnes allerede!" @@ -916,15 +916,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "En plate er i ferd med å bli satt inn." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1072,7 +1072,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "Aktiver NetPlay-chat" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktiv" @@ -1084,7 +1084,7 @@ msgstr "" msgid "Active threads" msgstr "Aktive tråder" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1114,8 +1114,8 @@ msgstr "Legg til en ny DSU-tjener" msgid "Add New USB Device" msgstr "Legg til ny USB-enhet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1142,18 +1142,18 @@ msgstr "" msgid "Add to &watch" msgstr "Legg til i &overvåkingslisten" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Legg til…" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1241,10 +1241,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1252,20 +1257,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle lagringsstadier (*.sav *.s##);; Alle filer (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Alle enheter" @@ -1286,7 +1308,7 @@ msgstr "Alle spilleres lagringsfiler er synkronisert." msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Tillat rapportering av brukerstatistikk" @@ -1308,7 +1330,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Alternative inndatakilder" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1364,7 +1386,7 @@ msgstr "Kantutjevning:" msgid "Any Region" msgstr "Alle regioner" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Legg signatur til" @@ -1390,7 +1412,7 @@ msgstr "Programinnlaster-dato:" msgid "Apply" msgstr "Bruk" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Bruk signaturfil" @@ -1402,7 +1424,7 @@ msgstr "Arbitrær Mipmap Oppdagelse" msgid "Are you sure that you want to delete '%1'?" msgstr "Er du sikker på at du vil slette \"%1\"?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Er du sikker på at du vil slette denne filen?" @@ -1418,7 +1440,7 @@ msgstr "Er du sikker på at du vil avslutte NetPlay?" msgid "Are you sure?" msgstr "Er du sikker?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1435,7 +1457,7 @@ msgstr "Velg kontrollerporter" msgid "Assign Controllers" msgstr "Tildel kontrollere" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1500,11 +1522,11 @@ msgstr "Automatisk justering av vindusstørrelse" msgid "Auto-Hide" msgstr "Gjem automatisk" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Vil du auto-oppdage RSO-moduler?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1531,7 +1553,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1543,7 +1565,7 @@ msgstr "BP-register " msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1596,7 +1618,7 @@ msgstr "" msgid "Bad value provided." msgstr "Dårlig verdi angitt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1631,7 +1653,7 @@ msgstr "Grunnleggende innstillinger" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1663,7 +1685,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "Bitfrekvens (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1707,11 +1729,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Start opp i pausemodus" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND sikkerhetskopifil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii nøkkelfil (*.bin);;Alle filer (*)" @@ -1719,7 +1741,7 @@ msgstr "BootMii nøkkelfil (*.bin);;Alle filer (*)" msgid "Borderless Fullscreen" msgstr "Rammefri fullskjermsvisning" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Nede" @@ -1746,7 +1768,7 @@ msgstr "Stoppunkt" msgid "Breakpoint encountered! Step out aborted." msgstr "Stoppunkt nådd! Utstepping avbrutt." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Stoppunkter" @@ -1780,12 +1802,12 @@ msgstr "Utforsk &NetPlay-sesjoner..." msgid "Buffer Size:" msgstr "Hurtiglagerstørrelse:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Bufferstørrelse endret til %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Mellomlager:" @@ -1900,7 +1922,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1908,14 +1930,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan ikke starte en NetPlay-økt mens et spill er aktivt!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1943,7 +1965,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Finner ikke GC IPL." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1969,7 +1991,7 @@ msgstr "I midten" msgid "Center and Calibrate" msgstr "Sentrer og kalibrer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Endre &disk" @@ -1985,7 +2007,7 @@ msgstr "Endre disk" msgid "Change Discs Automatically" msgstr "Endre disk automatisk" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -2038,7 +2060,7 @@ msgstr "Sjekk for endringer i spillisten i bakgrunnen" msgid "Check for updates" msgstr "Se etter oppdateringer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2054,16 +2076,19 @@ msgstr "Sjekksum" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Velg en fil å åpne" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Velg prioritetsinputfil" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Velg andre input fil" @@ -2088,7 +2113,7 @@ msgstr "Klassisk kontroller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Nullstill" @@ -2141,7 +2166,7 @@ msgstr "" msgid "Code:" msgstr "Kode:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Koder mottatt!" @@ -2166,7 +2191,7 @@ msgstr "Kompiler shadere før start" msgid "Compiling Shaders" msgstr "Komplierer skygger" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2218,23 +2243,23 @@ msgstr "Sett opp utdata" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekreft" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Bekreft endring av backend" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Bekreft ved stans" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2289,7 +2314,7 @@ msgstr "Koble til Internett og utfør nettbasert systemoppdatering?" msgid "Connected" msgstr "Tilkoblet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2403,11 +2428,11 @@ msgstr "Konvergens:" msgid "Convert" msgstr "Konverter" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Konverter fil …" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Konverter de valgte filene …" @@ -2433,9 +2458,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopier" @@ -2447,19 +2472,19 @@ msgstr "Kopier &funksjon" msgid "Copy &hex" msgstr "Kopier &heksadesimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Kopier adresse" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Kopier heksadesimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2467,19 +2492,15 @@ msgstr "" msgid "Copy code &line" msgstr "Kopier kode&linje" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiering mislyktes" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Kopier til A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Kopier til B" @@ -2523,14 +2544,14 @@ msgstr "" "Kunne ikke laste ned oppdateringsinformasjon fra Nintendo. Sjekk din " "internettilknytning å prøv igjen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2578,7 +2599,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2590,15 +2611,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Kunne ikke finne sentral tjener" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Kunne ikke åpne fil." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Kunne ikke lese fil." @@ -2652,7 +2673,7 @@ msgstr "Kryssutfasing" msgid "Current Region" msgstr "Nåværende region" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2755,23 +2776,23 @@ msgstr "Dataoverføring" msgid "Data Type" msgstr "Datatype" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Data mottatt!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2873,21 +2894,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Slett" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Slett fil…" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Slett valgte filer..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2903,10 +2924,10 @@ msgstr "Dybdeprosent:" msgid "Depth:" msgstr "Dybde:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2926,7 +2947,7 @@ msgstr "Frakoblet" msgid "Detect" msgstr "Finn automatisk" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2947,7 +2968,7 @@ msgstr "Enhet" msgid "Device PID (e.g., 0305)" msgstr "Enhets-PID (f.eks. 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Enhetsinnstillinger" @@ -2994,8 +3015,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3088,25 +3109,25 @@ msgstr "Avstand" msgid "Distance of travel from neutral position." msgstr "Reiseavstand fra nøytral posisjon." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Tillater du at Dolphin samler inn informasjon til Dolphins utviklere?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vil du legge til «%1» i listen over spillfilbaner?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Vil du tømme listen over symbolnavn?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Vil du stoppe pågående emulering?" @@ -3123,9 +3144,9 @@ msgstr "Dolphin FIFO-Logg (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin Map Fil (*.map)" @@ -3137,8 +3158,8 @@ msgstr "Dolphin-signatur-CSV-fil" msgid "Dolphin Signature File" msgstr "Dolphin-signaturfil" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-Filmer (*.dtm)" @@ -3153,7 +3174,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3173,7 +3194,7 @@ msgstr "Dolphin kunne ikke fullføre den forespurte handligen." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin er en fri og åpen kildekode-basert GameCube og Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel for traverseringsserveren" @@ -3240,7 +3261,7 @@ msgstr "Last ned koder" msgid "Download Codes from the WiiRD Database" msgstr "Last ned koder fra WiiRD-databasen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Last ned spillcovere fra GameTDB.com for bruk i portrettmodus" @@ -3420,7 +3441,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Nederlandsk" @@ -3493,7 +3514,7 @@ msgstr "Eksternt bildemellomlager (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emulator-CPU-tråden kjører allerede" @@ -3525,8 +3546,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktiver" @@ -3576,7 +3597,7 @@ msgid "Enable Progressive Scan" msgstr "Aktiver progressiv skanning" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Aktiver vibrering" @@ -3694,7 +3715,7 @@ msgstr "" msgid "Encoding" msgstr "Tegnkoding" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3707,7 +3728,7 @@ msgid "Enet Didn't Initialize" msgstr "Enhet ble ikke igangsatt" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engelsk" @@ -3740,7 +3761,7 @@ msgstr "Skriv inn en ny Bredbåndsadapter MAC-adresse:" msgid "Enter password" msgstr "Oppgi passord" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Skriv inn RSO-moduladresse:" @@ -3752,7 +3773,7 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3771,46 +3792,47 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Feil" @@ -3832,11 +3854,11 @@ msgstr "Feil ved henting av sesjonsliste: %1" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Feil ved synkronisering av juksekoder." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Feil ved bearbeidelse av data." @@ -3856,7 +3878,7 @@ msgstr "Feil ved synkronisering av lagringsdata!" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4008,10 +4030,10 @@ msgstr "Eksperimentell" msgid "Export All Wii Saves" msgstr "Eksporter alle Wii-lagringsfiler" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -4023,19 +4045,19 @@ msgstr "Eksporter opptak" msgid "Export Recording..." msgstr "Eksporter opptak…" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Eksporter lagringsfil" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Eksporter Wii-lagrefil" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Eksporter Wii-lagrefiler" @@ -4047,7 +4069,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4121,7 +4143,7 @@ msgstr "FIFO-spiller" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4133,19 +4155,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Kunne ikke legge til denne sesjonen i NetPlay-indeksen: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Kunne ikke legge til på signaturfil '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Kunne ikke gjøre krav på grensesnitt for BT-gjennompass" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Kunne ikke koble til server: %1" @@ -4175,11 +4197,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "Kunne ikke slette NetPlay-minnekort. Verifiser dine skrivetillatelser." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Klarte ikke å slette valgt fil." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4195,16 +4217,16 @@ msgstr "Kunne ikke dumpe %1: Kan ikke åpne fil" msgid "Failed to dump %1: Failed to write to file" msgstr "Kunne ikke dumpe %1: Kan ikke skrive til fil" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Kunne ikke eksportere følgende lagringsfiler:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Klarte ikke å pakke ut sertifikater fra NAND" @@ -4227,29 +4249,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Kunne ikke finne en eller flere D3D-symboler" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Kunne ikke importere \"%1\"." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Klarte ikke å igangsette kjerne" @@ -4269,12 +4291,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "Kunne ikke installere pakke: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Klarte ikke å installere denne tittelen til NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4282,8 +4304,8 @@ msgstr "" "Klarte ikke å lytte til port %1. Kjøres det en annen instans av NetPlay-" "tjeneren?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Kunne ikke laste RSO-modul ved %1" @@ -4295,7 +4317,7 @@ msgstr "Kunne ikke laste d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Kunne ikke laste dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Kunne ikke laste map-fil '%1'" @@ -4309,13 +4331,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Klarte ikke å åpne \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4339,11 +4361,11 @@ msgstr "" "Kunne ikke åpne ekstern editor.\n" "Pass på at det er en applikasjon valgt til å åpne INI-filer." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Klarte ikke å åpne tjener" @@ -4352,7 +4374,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Mislyktes i å åpne inndatafilen «%1»." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4372,25 +4394,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4401,7 +4423,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Kunne ikke fjerne denne tittelen fra NAND." @@ -4424,19 +4446,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Lagring av FIFO-logg mislyktes." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Kunne ikke lagre kodemapping til sti '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Kunne ikke lagre signaturfil '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Kunne ikke lagre symbolkart til sti '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Kunne ikke lagre til signaturfil '%1'" @@ -4460,9 +4482,9 @@ msgstr "Skriving til Wii-lagringsfil mislyktes." msgid "Failed to write config file!" msgstr "Kunne ikke skrive til konfigurasjonsfilen!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4470,21 +4492,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Feil" @@ -4509,7 +4531,7 @@ msgstr "Rask" msgid "Fast Depth Calculation" msgstr "Rask dybdekalkulering" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4524,7 +4546,7 @@ msgstr "" msgid "File Details" msgstr "Fildetaljer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4538,19 +4560,19 @@ msgstr "Filformat:" msgid "File Info" msgstr "Fil-informasjon" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnavn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Filbane" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstørrelse" @@ -4577,12 +4599,12 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "Filstørrelsen samsvarer ikke med noen kjente Gamecube-minnekortstørrelser." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4634,7 +4656,7 @@ msgstr "Førsteperson" msgid "Fix Checksums" msgstr "Fiks sjekksummer" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4644,7 +4666,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flagg" @@ -4784,11 +4806,11 @@ msgstr "Bilder å ta opp:" msgid "France" msgstr "Frankrike" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4826,7 +4848,7 @@ msgid "Freelook Toggle" msgstr "Frisikts-veksling" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Fransk" @@ -4855,7 +4877,7 @@ msgstr "Fra:" msgid "FullScr" msgstr "Fullskjerm" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funksjon" @@ -4887,7 +4909,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4899,11 +4921,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -5006,11 +5028,11 @@ msgstr "Spill" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-disker (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5032,7 +5054,7 @@ msgstr "Spilldetaljer" msgid "Game Folders" msgstr "Spillmapper" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spill-ID" @@ -5046,11 +5068,25 @@ msgstr "Spill-ID:" msgid "Game Status" msgstr "Spillstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Spill endret til \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Spillet kjører allerede!" @@ -5059,6 +5095,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Spill-spesifikke innstillinger" @@ -5099,12 +5139,12 @@ msgstr "GameCube-tastatur i port %1" msgid "GameCube Memory Card Manager" msgstr "GameCube-minnekortbehandler" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube-minnekort (*.raw *.gcp)" @@ -5137,7 +5177,7 @@ msgstr "Generelt" msgid "General and Options" msgstr "Generelt og innstillinger" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Generer Action Replay-kode" @@ -5145,16 +5185,16 @@ msgstr "Generer Action Replay-kode" msgid "Generate a New Statistics Identity" msgstr "Opprett en ny statistikk-identitet" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Genererte symbolnavn fra '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Tysk" @@ -5163,14 +5203,14 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golfmodus" @@ -5338,15 +5378,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Vertsinndataautoritet deaktivert" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Vertsinndataautoritet aktivert" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Vær vertskap med NetPlay" @@ -5364,7 +5404,7 @@ msgstr "Tastesnarveis-innstillinger" msgid "Hotkeys" msgstr "Hurtigtaster" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5409,7 +5449,7 @@ msgstr "" msgid "IP Address:" msgstr "IP-adresse:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Innstillinger for IPL" @@ -5418,7 +5458,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR-sensitivitet:" @@ -5455,7 +5495,7 @@ msgstr "" msgid "Identity Generation" msgstr "Identitetsgenerering" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5507,7 +5547,7 @@ msgstr "Ignorer" msgid "Ignore Format Changes" msgstr "Ignorer formatendringer" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignorer for denne sesjonen" @@ -5544,14 +5584,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importer BootMii NAND sikkerhetskopi..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5559,11 +5599,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-lagringsfil …" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importing NAND sikkerhetskopi" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5637,21 +5677,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informasjon" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Inngang" @@ -5696,7 +5736,7 @@ msgstr "Installer oppdatering" msgid "Install WAD..." msgstr "Installer WAD…" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installer til NAND" @@ -5712,7 +5752,7 @@ msgstr "Instruksjon" msgid "Instruction Breakpoint" msgstr "Instruksjonsstoppunkt" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instruksjon:" @@ -5759,7 +5799,7 @@ msgstr "Intern oppløsning" msgid "Internal Resolution:" msgstr "Intern bildeoppløsning:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5771,7 +5811,7 @@ msgstr "Fortolker (tregest)" msgid "Interpreter Core" msgstr "Fortolkerkjerne" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5788,7 +5828,7 @@ msgstr "Ugyldig Pakke %1 oppgitt: %2" msgid "Invalid Player ID" msgstr "Ugyldig spiller-ID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Ugyldig RSO-moduladresse: %1" @@ -5796,7 +5836,7 @@ msgstr "Ugyldig RSO-moduladresse: %1" msgid "Invalid callstack" msgstr "Ugyldig kallstakk" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Ugyldige sjekksummer." @@ -5804,7 +5844,7 @@ msgstr "Ugyldige sjekksummer." msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Ugyldig vert" @@ -5813,7 +5853,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Ugyldig inndata for feltet \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Ugyldig inndata oppgitt" @@ -5845,7 +5885,7 @@ msgstr "Ugyldig søkestring (kunne ikke konverte til tall)" msgid "Invalid search string (only even string lengths supported)" msgstr "Ugyldig søkestreng (bare strenger av partallslengde støttes)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Ugyldig tittel-ID." @@ -5854,7 +5894,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiensk" @@ -5958,7 +5998,7 @@ msgstr "Japansk" msgid "Japanese (Shift-JIS)" msgstr "Japansk (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Behold vindu øverst" @@ -6026,7 +6066,7 @@ msgstr "" msgid "Label" msgstr "Etikett" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6128,7 +6168,7 @@ msgstr "Lytter" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Last" @@ -6263,7 +6303,7 @@ msgstr "Last inn tilstand fra kortplass" msgid "Load Wii Save" msgstr "Last inn Wii-lagringsfil" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Last inn Wii-systemmeny %1" @@ -6275,8 +6315,8 @@ msgstr "Last fra valgt kortplass" msgid "Load from Slot %1 - %2" msgstr "Last inn fra kortplass %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Last kartfil" @@ -6284,7 +6324,7 @@ msgstr "Last kartfil" msgid "Load..." msgstr "Last..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Lastet symboler fra '%1'" @@ -6299,7 +6339,7 @@ msgstr "" msgid "Local" msgstr "Lokal" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6328,7 +6368,7 @@ msgstr "Loggtyper" msgid "Logger Outputs" msgstr "Logger utdata" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6339,7 +6379,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Mistet tilkobling til NetPlay-tjener…" @@ -6368,7 +6408,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6376,7 +6416,7 @@ msgstr "" msgid "Main Stick" msgstr "Hoved-joystick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6415,11 +6455,11 @@ msgstr "" msgid "Match Found" msgstr "Treff funnet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Maksimal Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Maksimum bufferstørrelse endret til %1" @@ -6453,16 +6493,6 @@ msgstr "Minnekort" msgid "Memory Card Manager" msgstr "Minnekortbehandler" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Minneoverstyring" @@ -6471,19 +6501,19 @@ msgstr "Minneoverstyring" msgid "Memory breakpoint options" msgstr "Minne-stoppunktinnstillinger" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6513,15 +6543,15 @@ msgstr "Diverse" msgid "Misc Settings" msgstr "Diverse innstillinger" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6544,8 +6574,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6574,20 +6604,20 @@ msgstr "Bevegelsessimulering" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6601,14 +6631,20 @@ msgstr "" msgid "Movie" msgstr "Film" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND-sjekk" @@ -6639,11 +6675,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Navn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Navn for en ny merkelapp:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Navn for tagg til å fjerne:" @@ -6664,8 +6700,8 @@ msgstr "Navn:" msgid "Native (640x528)" msgstr "Opprinnelig størrelse (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6685,11 +6721,11 @@ msgstr "NetPlay-innstillinger" msgid "Netherlands" msgstr "Nederland" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "NetPlay har desynkronisert i NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "NetPlay har desynkronisert. Det er ikke mulig å hente seg inn igjen fra " @@ -6704,7 +6740,7 @@ msgstr "Nettverk" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6712,7 +6748,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "Aldri autooppdater" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Nye" @@ -6725,7 +6761,7 @@ msgstr "Nytt stoppunkt" msgid "New Search" msgstr "Nytt søk" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Ny merkelapp..." @@ -6737,7 +6773,7 @@ msgstr "Ny identietet opprettet." msgid "New instruction:" msgstr "Ny instruksjon:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Ny etikett" @@ -6794,13 +6830,13 @@ msgstr "Ingen treff" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Ingen beskrivelse tilgjengelig" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Ingen feil." @@ -6820,10 +6856,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Ingen feil har blitt oppdaget." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6854,7 +6894,7 @@ msgstr "" msgid "No recording loaded." msgstr "Ingen opptak lastet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Ingen lagringsfiler funnet." @@ -6876,10 +6916,6 @@ msgstr "Ingen" msgid "North America" msgstr "Nord-Amerika" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Ikke funnet" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Ikke satt" @@ -6888,7 +6924,7 @@ msgstr "Ikke satt" msgid "Not all players have the game. Do you really want to start?" msgstr "Ikke alle spillere har spillet. Vil du virkelig starte?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6896,7 +6932,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6904,6 +6940,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6956,7 +6996,7 @@ msgstr "Nunchuk-orientering" msgid "Nunchuk Stick" msgstr "Nunchuck-Joystick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6987,7 +7027,7 @@ msgstr "" msgid "On" msgstr "På" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6995,7 +7035,7 @@ msgstr "" msgid "Online &Documentation" msgstr "Nettbasert &dokumentasjon" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7003,7 +7043,7 @@ msgstr "" "Legg til kun symboler med prefiks:\n" "(Blank for alle symboler)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7016,7 +7056,7 @@ msgstr "" msgid "Open" msgstr "Åpne" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Åpne &inneholdende mappe" @@ -7028,7 +7068,7 @@ msgstr "Åpne mappe..." msgid "Open FIFO log" msgstr "Åpne FIFO-logg" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Åpne GameCube &Lagringsmappe" @@ -7036,7 +7076,7 @@ msgstr "Åpne GameCube &Lagringsmappe" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Åpne Wii &lagringsmappe" @@ -7225,7 +7265,7 @@ msgstr "Pause" msgid "Pause at End of Movie" msgstr "Pause på slutten av filmen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pause ved tapt fokus" @@ -7252,7 +7292,7 @@ msgstr "Belysning per piksel" msgid "Perform Online System Update" msgstr "Utfør pålogget systemoppdatering" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Utfør systemoppdatering" @@ -7270,7 +7310,7 @@ msgstr "" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Velg en debug-font" @@ -7286,7 +7326,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7332,7 +7372,7 @@ msgstr "Punkt" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7341,7 +7381,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Potensiell desynkronisering oppdaget: %1 kan ha desynkroniser i bilde %2" @@ -7362,15 +7402,15 @@ msgstr "Oppsett av Etterbehandlings-skyggelegging" msgid "Prefetch Custom Textures" msgstr "Forhåndsinnlasting av egendefinerte teksturer" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7395,7 +7435,7 @@ msgstr "Trykk Synkroniseringsknapp" msgid "Pressure" msgstr "Trykk" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7482,7 +7522,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "Tøm spillistehurtiglager" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7508,8 +7548,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Spørsmål" @@ -7537,7 +7577,7 @@ msgstr "KLAR" msgid "RSO Modules" msgstr "RSO-moduler" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO-autooppdaging" @@ -7682,12 +7722,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Gjennoppfrisker..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7717,12 +7757,12 @@ msgstr "Minn Meg Senere" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Fjern" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7730,11 +7770,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Fjern merkelapp..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Fjern merkelapp" @@ -7750,7 +7790,7 @@ msgstr "" msgid "Rename symbol" msgstr "&Gi symbol nytt navn" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Renderingsvindu" @@ -7829,7 +7869,7 @@ msgstr "Ressurspakkebehandler" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Omstart påkrevd" @@ -7841,7 +7881,7 @@ msgstr "" msgid "Restore instruction" msgstr "Tilbakestill instruksjon" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Forsøk igjen" @@ -7941,7 +7981,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Kjør &Til Hit" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7973,7 +8013,7 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8002,7 +8042,7 @@ msgstr "Sikker" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8012,9 +8052,9 @@ msgstr "Lagre" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Lagringsfil Eksport" @@ -8035,11 +8075,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Lagre import" @@ -8051,7 +8091,7 @@ msgstr "Lagre eldste hurtiglagring" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8137,11 +8177,11 @@ msgstr "" msgid "Save as..." msgstr "Lagre som …" -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Lagre kombinert utdatafil som" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8151,15 +8191,15 @@ msgstr "" "sikkerhetskopiere nåværende data før du overskriver.\n" "Overskriv nå?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Lagre kartfil" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Lagre signaturfil" @@ -8180,11 +8220,11 @@ msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" "Lagret Wii-kontroll parring kan ikke tilbakestilles når et Wii-spill kjører." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8237,7 +8277,7 @@ msgstr "Søk etter en instruks" msgid "Search games..." msgstr "Søk spill..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Søk instruksjon" @@ -8270,20 +8310,20 @@ msgstr "Velg" msgid "Select Dump Path" msgstr "Velg dumpens filbane" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Velg eksportmappe" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8363,7 +8403,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Velg Wii NAND-Rot" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Velg mappe" @@ -8371,9 +8411,9 @@ msgstr "Velg mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Velg en fil" @@ -8393,7 +8433,7 @@ msgstr "" msgid "Select a game" msgstr "Velg et spill" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Velg en tittel å installere til NAND" @@ -8401,11 +8441,11 @@ msgstr "Velg en tittel å installere til NAND" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Velg RSO-moduladressen:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8413,12 +8453,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Velg nøkkelfil (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Velg lagringsfil" @@ -8440,9 +8480,9 @@ msgstr "Valgt kontrolprofil finnes ikke" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Valgt spill eksisterer ikke i spillisten!" @@ -8454,13 +8494,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8487,7 +8527,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8496,7 +8536,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8510,7 +8550,7 @@ msgstr "" msgid "Send" msgstr "Send" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Sensorbjelkeposisjon:" @@ -8530,7 +8570,7 @@ msgstr "IP-adresse for server" msgid "Server Port" msgstr "Serverport" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Tjeneren avslo traverseringsforsøk" @@ -8551,15 +8591,15 @@ msgstr "Sett programteller" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Sett som &forvalgt ISO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Angi minnekortfil for inngang A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Angi minnekortfil for inngang B" @@ -8644,7 +8684,7 @@ msgstr "Vis &logg" msgid "Show &Toolbar" msgstr "Vis &verktøylinje" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Vis aktiv tittel i vindustittel" @@ -8660,7 +8700,7 @@ msgstr "Vis Australia" msgid "Show Current Game on Discord" msgstr "Vis nåværende spill på Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Vis utviklingsgrensesnitt" @@ -8732,7 +8772,7 @@ msgstr "Vis NetPlay-ping" msgid "Show Netherlands" msgstr "Vis Nederland" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Vis Skjerm-meldinger" @@ -8802,10 +8842,23 @@ msgstr "Vis verden" msgid "Show in &memory" msgstr "Vis i &minne" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Vis i kode" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Vis i vertsliste" @@ -8820,20 +8873,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8922,7 +8975,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Dropp EFB Access fra CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Hopp over hovedmeny" @@ -8948,7 +9001,7 @@ msgstr "Glidebryter" msgid "Slot A" msgstr "Kortplass A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Kortplass A:" @@ -8956,7 +9009,7 @@ msgstr "Kortplass A:" msgid "Slot B" msgstr "Kortplass B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Kortplass B:" @@ -9010,7 +9063,7 @@ msgid "Spain" msgstr "Spania" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spansk" @@ -9019,7 +9072,7 @@ msgstr "Spansk" msgid "Speaker Pan" msgstr "Høytaler-lydforskyvelse" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Lydstyrke:" @@ -9101,11 +9154,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Startet spill" @@ -9268,10 +9321,10 @@ msgstr "Penn" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Vellykket" @@ -9289,16 +9342,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "Slettet '%1'." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Eksportering av lagringsfiler var vellykket" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Ekstrahering av sertifikat fra NAND vellykket" @@ -9310,16 +9363,16 @@ msgstr "Ekstrahering av fil vellykket." msgid "Successfully extracted system data." msgstr "Ekstrahering av systemdata vellykket." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Installering av tittelen til NAND var vellykket." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Fjerning av tittelen fra NAND var vellykket." @@ -9327,7 +9380,7 @@ msgstr "Fjerning av tittelen fra NAND var vellykket." msgid "Support" msgstr "Støtte" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9360,11 +9413,11 @@ msgstr "" msgid "Swing" msgstr "Sving" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Bytt til A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Bytt til B" @@ -9443,7 +9496,7 @@ msgstr "Synkroniserer Gecko-koder..." msgid "Synchronizing save data..." msgstr "Synkroniserer lagringsdata..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Systemspråk:" @@ -9458,8 +9511,8 @@ msgstr "TAS-inndata" msgid "TAS Tools" msgstr "TAS-verktøy" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9528,7 +9581,7 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "Mesterverk-partisjonene mangler." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -9536,7 +9589,7 @@ msgstr "" "NAND kunne ikke repareres. Det er anbefalt å sikkerhetskopiere dine " "nåværende data for deretter å starte med en blank NAND." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND er blitt reparert." @@ -9582,11 +9635,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken som skulle settes inn ble ikke funnet." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9620,11 +9673,11 @@ msgstr "Innskrevet PID er ugyldig." msgid "The entered VID is invalid." msgstr "Innskrevet VID er ugyldig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "RegEx-uttrykket inneholder en syntaksfeil." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9650,6 +9703,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet er ugyldig eller kunne ikke leses." @@ -9755,7 +9815,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den dekrypterte AR-koden inneholder ingen linjer." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9793,7 +9853,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9852,7 +9912,7 @@ msgstr "Det er for mange partisjoner i den første partisjonstabellen." msgid "There is nothing to undo!" msgstr "Det er ingenting å angre!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9894,11 +9954,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "USB-enheten er allerede hvitelistet." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Denne WAD kan ikke startes." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Denne WAD er ikke gyldig." @@ -9911,7 +9971,7 @@ msgstr "" "Action Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Dette kan ikke omgjøres!" @@ -10032,7 +10092,7 @@ msgstr "" "Denne programvaren bør ikke benyttes til å kjøre spill du ikke eier selv " "lovlig." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Denne tittelen kan ikke startes." @@ -10045,7 +10105,7 @@ msgstr "Tittelen er satt til en ugyldig IOS." msgid "This title is set to use an invalid common key." msgstr "Tittelen er satt til å bruke en ugyldig fellesnøkkel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10053,7 +10113,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10117,7 +10177,7 @@ msgstr "Vend" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10159,7 +10219,7 @@ msgid "Toggle Aspect Ratio" msgstr "Skift bildestørrelse" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Slå av/på stoppunkt" @@ -10219,7 +10279,7 @@ msgstr "" msgid "Toolbar" msgstr "Verktøylinje" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Oppe" @@ -10271,8 +10331,8 @@ msgstr "Berør" msgid "Traditional Chinese" msgstr "Tradisjonell kinesisk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Traverseringsfeil" @@ -10280,7 +10340,7 @@ msgstr "Traverseringsfeil" msgid "Traversal Server" msgstr "Traverserings-tjener" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Tidsavbrudd for traverseringstjener under tilkobling til vert" @@ -10306,7 +10366,7 @@ msgid "Triggers" msgstr "Triggere" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10340,14 +10400,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB hviteliste-feil" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10355,7 +10415,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10364,7 +10424,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10424,11 +10484,11 @@ msgstr "Angre hurtiglagring" msgid "Uninstall" msgstr "Avinstaller" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Avinstaller fra NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10447,11 +10507,11 @@ msgstr "USA" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Ukjent" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10495,11 +10555,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10555,8 +10615,8 @@ msgstr "Usignert heltall" msgid "Up" msgstr "Opp" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Oppdater" @@ -10618,11 +10678,11 @@ msgstr "Oppreist Wii-kontroll" msgid "Usage Statistics Reporting Settings" msgstr "Innstillinger for rapportering av bruksstatistikk" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Bruk den innebygde databasen over spillnavn" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Bruk egendefinert brukerstil" @@ -10634,7 +10694,7 @@ msgstr "Bruk tapsfri kodek (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Bruk PAL60-modus (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Bruk panikkadvarslere" @@ -10694,11 +10754,11 @@ msgstr "" msgid "User Config" msgstr "Brukeroppsett" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Brukergrensesnitt" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Brukertema:" @@ -10721,14 +10781,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10959,7 +11019,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Advarsel" @@ -10978,28 +11038,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11054,7 +11114,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Hvitelistede USB-gjennomstrømmingsenheter" @@ -11100,7 +11160,7 @@ msgstr "Wii-kontrollerknapper" msgid "Wii Remote Orientation" msgstr "Wii-kontrollerorientering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Innstillinger for Wii Remote" @@ -11128,7 +11188,7 @@ msgstr "Wii og Wii-kontroll" msgid "Wii data is not public yet" msgstr "Wii-data er ikke offentlige enda" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii-lagringsfiler (*.bin);;Alle filer (*)" @@ -11136,7 +11196,7 @@ msgstr "Wii-lagringsfiler (*.bin);;Alle filer (*)" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11193,9 +11253,21 @@ msgstr "Skriv til logg og stop" msgid "Write to Window" msgstr "Skriv til vindu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Feil versjon" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11261,14 +11333,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11312,7 +11376,7 @@ msgstr "Du må angi et navn for din økt!" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Du må restarte Dolphin for at endringen skal tre i kraft." @@ -11382,12 +11446,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll kunne ikke lastes." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "frakoblet" @@ -11448,13 +11512,13 @@ msgstr "" msgid "none" msgstr "ingen" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "på" @@ -11491,7 +11555,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11514,7 +11578,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index a49fad36d0..8f55ca7960 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -10,6 +10,7 @@ # Sintendo , 2015-2016 # Garteal , 2013-2014,2016-2017 # Jos van Mourik, 2018-2019,2021 +# Lena Wildervanck , 2022 # MADCreations , 2011 # Marinus Schot , 2013 # Martin Dierikx, 2022 @@ -19,14 +20,14 @@ # Mourits Pvllen , 2014 # Pierre Bourdon , 2014 # Simon Mariën, 2022 -# Tijmen Wildervanck , 2015-2016 -# Tijmen Wildervanck , 2016,2020 +# Lena Wildervanck , 2015-2016 +# Lena Wildervanck , 2016,2020 # Wafoe Wafoe, 2021 msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mike van der Kuijl , 2020-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -46,7 +47,7 @@ msgid "" msgstr "" "\n" "\n" -"Omdat GameCube schijfafbeeldingen weinig verificatiedata bevatten kunnen er " +"Omdat GameCube-schijfafbeeldingen weinig verificatiedata bevatten kunnen er " "problemen zijn die Dolphin niet kan detecteren." #: Source/Core/DiscIO/VolumeVerifier.cpp:1408 @@ -61,7 +62,7 @@ msgstr "" "Omdat deze titel niet voor retail Wii consoles is kan Dolphin het niet " "verifiëren." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -206,19 +207,19 @@ msgstr "" "%2 object(en)\n" "Huidige Frame: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 doet nu mee" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 is vertrokken" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 is geen geldige ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 is nu aan het golfen" @@ -255,7 +256,7 @@ msgstr "%1% (Normale Snelheid)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -319,7 +320,7 @@ msgstr "&4x" msgid "&About" msgstr "&Over" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Voeg Geheugen Breakpoint Toe" @@ -411,7 +412,7 @@ msgstr "&Verwijderen" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Verwijder Watchvenster" @@ -509,7 +510,7 @@ msgstr "&Interframe Menging" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Taal:" @@ -566,7 +567,7 @@ msgstr "&Pauze" msgid "&Play" msgstr "&Speel" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Eigenschappen" @@ -616,7 +617,7 @@ msgstr "&Snelheidslimiet:" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Thema:" @@ -646,7 +647,7 @@ msgstr "&Watchvenster" msgid "&Website" msgstr "&Website" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -654,15 +655,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Ja" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' niet gevonden, geen symboolnamen gegenereerd" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' niet gevonden, in plaats daarvan zoeken naar algemene functies" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Geen)" @@ -699,9 +700,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -891,7 +892,7 @@ msgstr "< Minder dan" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -909,8 +910,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Meer dan" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Er is al een NetPlay sesie bezig!" @@ -930,16 +931,16 @@ msgstr "" "\n" "Het installeren van deze WAD zal het onherstelbaar vervangen. Doorgaan?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Er ligt al een schijf in de lade." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Een save state kan niet worden gebruikt zonder een spel te specificeren. " -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1108,7 +1109,7 @@ msgstr "Action Replay: Normal Code {1}: Onjuist Subtype {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "Activeer NetPlay Chat" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Actief" @@ -1120,7 +1121,7 @@ msgstr "Actieve thread wachtrij" msgid "Active threads" msgstr "Actieve threads" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adapter" @@ -1150,8 +1151,8 @@ msgstr "Voeg Nieuwe DSU Server toe" msgid "Add New USB Device" msgstr "Nieuw USB Apparaat Toevoegen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Voeg Snelkoppeling toe aan Bureaublad" @@ -1178,18 +1179,18 @@ msgstr "Plaats geheugen breakpoint" msgid "Add to &watch" msgstr "Toevoegen aan &watchvenster" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Voeg toe aan watch" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Toevoegen..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1208,7 +1209,7 @@ msgstr "Adres" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 msgid "Address Space" -msgstr "Adres Ruimte" +msgstr "Adresruimte" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:119 msgid "Address space by CPU state" @@ -1287,10 +1288,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "Uitgelijnd naar data type lengte" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1298,20 +1304,37 @@ msgid "All Files" msgstr "Alle Bestanden" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Alle Bestanden (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alle GC/Wii bestanden" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Save States (*.sav *.s##);; Alle Bestanden (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Alle apparaten" @@ -1332,7 +1355,7 @@ msgstr "Saves van alle spelers gesynchroniseerd." msgid "Allow Mismatched Region Settings" msgstr "Sta Niet-Overeenkomende-Regio Instellingen toe" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Gebruiksstatistiekrapportage Toestaan" @@ -1356,7 +1379,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Alternatieve invoerbronnen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Altijd" @@ -1412,7 +1435,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "Elke Regio" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Handtekening toevoegen aan" @@ -1440,7 +1463,7 @@ msgstr "Apploader Datum:" msgid "Apply" msgstr "Toepassen" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Handtekeningsbestand toepassen..." @@ -1452,7 +1475,7 @@ msgstr "Arbitraire Mipmapdetectie" msgid "Are you sure that you want to delete '%1'?" msgstr "Weet u zeker dat u '%1' wilt verwijderen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Weet u zeker dat u dit bestand wilt verwijderen?" @@ -1468,7 +1491,7 @@ msgstr "Weet u zeker dat u NetPlay wilt afsluiten?" msgid "Are you sure?" msgstr "Weet u het zeker?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Beeldverhouding" @@ -1485,7 +1508,7 @@ msgstr "Controllerpoorten Toewijzen" msgid "Assign Controllers" msgstr "Controllers Toewijzen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1552,11 +1575,11 @@ msgstr "Pas Venstergrootte Automatisch aan" msgid "Auto-Hide" msgstr "Automatisch Verbergen" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Auto-detect RSO module?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1588,7 +1611,7 @@ msgstr "" "MAC adres moet worden gebruikt. Genereer een MAC adres dat start met 00:09:" "bf of 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1600,7 +1623,7 @@ msgstr "BP register " msgid "Back Chain" msgstr "Back Chain" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Backend" @@ -1653,7 +1676,7 @@ msgstr "Slechte offset gegeven." msgid "Bad value provided." msgstr "Verkeerde waarde opgegeven." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1688,7 +1711,7 @@ msgstr "Basis Instellingen" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Batch modus kan niet worden gebruikt zonder een spel te specificeren. " @@ -1720,7 +1743,7 @@ msgstr "Binaire SSL (schrijf)" msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1764,11 +1787,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Opstarten naar Pauze" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup bestanden (*.bin);;Alle bestanden (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii sleutelbestand (*.bin);;Alle Bestanden (*)" @@ -1776,7 +1799,7 @@ msgstr "BootMii sleutelbestand (*.bin);;Alle Bestanden (*)" msgid "Borderless Fullscreen" msgstr "Randloos Fullscreen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Beneden" @@ -1803,7 +1826,7 @@ msgstr "Breakpoint" msgid "Breakpoint encountered! Step out aborted." msgstr "Breekpunt tegengekomen! Uitstappen afgebroken." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Breekpunten" @@ -1837,12 +1860,12 @@ msgstr "Blader &NetPlay Sessies...." msgid "Buffer Size:" msgstr "Buffergrootte:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Buffergrootte gewijzigd naar %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1969,7 +1992,7 @@ msgstr "Camera 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Camera gezichtsveld (beïnvloedt gevoeligheid van het wijzen)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "Kan alleen AR code genereren voor waarden in virtueel geheugen." @@ -1977,14 +2000,14 @@ msgstr "Kan alleen AR code genereren voor waarden in virtueel geheugen." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan Wii-afstandsbediening niet vinden via verbindingshendel {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan geen NetPlay-sessie starten als spel nog draait!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2013,7 +2036,7 @@ msgstr "Kan niet vergelijken met de laatste waarde bij de eerste zoekactie." msgid "Cannot find the GC IPL." msgstr "Kan de GC IPL niet vinden." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "Kan geen AR code genereren voor dit adres." @@ -2039,7 +2062,7 @@ msgstr "Middelpunt" msgid "Center and Calibrate" msgstr "Centreer en Kalibreer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Schijf &Veranderen" @@ -2055,7 +2078,7 @@ msgstr "Schijf Veranderen" msgid "Change Discs Automatically" msgstr "Verwisselen Schijfen Automatisch" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Verander de schijf naar {0}" @@ -2118,7 +2141,7 @@ msgstr "Controleer op de achtergrond op spellijstwijzigingen" msgid "Check for updates" msgstr "Controleer op updates" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2134,16 +2157,19 @@ msgstr "Controlesom" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Kies een bestand om te openen" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Kies een invoerbestand met prioriteit" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Kies een secundair invoerbestand" @@ -2168,7 +2194,7 @@ msgstr "Klassieke Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Legen" @@ -2221,7 +2247,7 @@ msgstr "Code is uitgevoerd" msgid "Code:" msgstr "Code:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Codes ontvangen!" @@ -2246,7 +2272,7 @@ msgstr "Compileer Shaders Voor Starten" msgid "Compiling Shaders" msgstr "Shaders Compileren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2298,23 +2324,23 @@ msgstr "Configureer Uitvoer" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bevestigen" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Bevestig backend verandering" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Bevestiging bij Stop" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2369,7 +2395,7 @@ msgstr "Verbinding maken met internet en een online systeemupdate uitvoeren?" msgid "Connected" msgstr "Verbonden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Verbinden" @@ -2494,11 +2520,11 @@ msgstr "Convergentie:" msgid "Convert" msgstr "Converteer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converteer Bestand..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converteer Geselecteerde Bestanden..." @@ -2529,9 +2555,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopieer" @@ -2543,39 +2569,35 @@ msgstr "Kopieer &functie" msgid "Copy &hex" msgstr "Kopieer &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Kopieer Adres" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Kopie mislukt" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Kopieer Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Kopieer Waarde" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "Kopieer code &lijn" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiëren mislukt" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "Kopieer &doeladres" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Kopiëren naar A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Kopiëren naar B" @@ -2619,7 +2641,7 @@ msgstr "" "Kon geen updateinformatie van Nintendo downloaden. Controleer uw " "internetverbinding en probeer het opnieuw." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2629,7 +2651,7 @@ msgstr "" "\n" "De geëmuleerde console stopt nu." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2689,7 +2711,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Kon het bestand {0} niet herkennen" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2709,15 +2731,15 @@ msgstr "" "In dat geval moet u uw geheugenkaartlocatie opnieuw aangeven in de " "configuratie." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Kon de centrale server niet vinden" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Kon bestand niet openen." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Kon bestand niet lezen." @@ -2779,7 +2801,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "Huidige Regio" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Huidige Waarde" @@ -2889,23 +2911,23 @@ msgstr "Data Overdracht" msgid "Data Type" msgstr "Data Type" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Data in bestandsgedeelte dat ongebruikt zou moeten zijn." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Data in onherkenbaar formaat of corrupt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Data inconsistent in GCMemcardManager, actie afbreken." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Data ontvangen!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro bestanden" @@ -3013,21 +3035,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Verwijder" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Verwijder Bestand..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Verwijder Geselecteerde Bestanden..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Verwijder het bestaande bestand '{0}'?" @@ -3043,10 +3065,10 @@ msgstr "Dieptepercentage:" msgid "Depth:" msgstr "Diepte:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3066,7 +3088,7 @@ msgstr "Ontkoppeld" msgid "Detect" msgstr "Detecteer" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "RSO Module Detecteren" @@ -3087,7 +3109,7 @@ msgstr "Apparaat" msgid "Device PID (e.g., 0305)" msgstr "Apparaat PID (bijv., 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Apparaatinstellingen" @@ -3140,8 +3162,8 @@ msgstr "" msgid "Dis&connected" msgstr "&Verbinding Verbroken" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Uitschakelen" @@ -3251,27 +3273,27 @@ msgstr "Afstand" msgid "Distance of travel from neutral position." msgstr "Reisafstand vanaf neutrale positie." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Machtigt u Dolphin om informatie te rapporteren aan de ontwikkelaars van " "Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Wilt u \"%1\" toevoegen aan de lijst met Spelpaden?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Wilt u de lijst met symboolnamen wissen?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Wilt u de %n geselecteerde save bestand(en) verwijderen?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Wilt u de emulatie stoppen?" @@ -3288,9 +3310,9 @@ msgstr "Dolphin FIFO Log (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Dolphin Spel Modificatie Voorinstelling " -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin Mapbestand (*.map)" @@ -3302,8 +3324,8 @@ msgstr "Dolphin Signatuur CSV Bestand" msgid "Dolphin Signature File" msgstr "Dolphin Signatuur Bestand" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Opname (*.dtm)" @@ -3327,7 +3349,7 @@ msgstr "" "\n" "Wilt u toch doorgaan?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3347,7 +3369,7 @@ msgstr "Dolphin kon de gevraagde actie niet voltooien." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin is een vrije en open-source GameCub- en Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin is te oud voor de traversal server" @@ -3416,7 +3438,7 @@ msgstr "Download Codes" msgid "Download Codes from the WiiRD Database" msgstr "Download Codes van de WiiRD-Database" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Download Game Covers van GameTDB.com voor gebruik in Grid-modus" @@ -3611,7 +3633,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Duur van Tubo-knop los Laten (frames):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Nederlands" @@ -3691,7 +3713,7 @@ msgstr "Embedded Frame Buffer (EFB)" msgid "Empty" msgstr "Leeg" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emu Thread draait al" @@ -3726,8 +3748,8 @@ msgstr "Emulatie moet gestart zijn om op te nemen." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Inschakelen" @@ -3777,7 +3799,7 @@ msgid "Enable Progressive Scan" msgstr "Activeer Progressieve Scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Activeer Trillen" @@ -3929,7 +3951,7 @@ msgstr "" msgid "Encoding" msgstr "Encoding" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3946,7 +3968,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet niet geïnitialiseerd" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engels" @@ -3979,7 +4001,7 @@ msgstr "Voer een nieuw MAC-adres voor de breedbandadapter in:" msgid "Enter password" msgstr "Voer wachtwoord in" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Voer adres van de RSO-module in:" @@ -3991,7 +4013,7 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4010,46 +4032,47 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error (Fout)" @@ -4072,11 +4095,11 @@ msgstr "Fout in het verkrijgen van sessie lijst: %1" msgid "Error occurred while loading some texture packs" msgstr "Fout opgetreden bij het laden van sommige texture packs" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Fout bij verwerking van codes." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Fout bij het verwerken van gegevens." @@ -4096,7 +4119,7 @@ msgstr "Fout bij synchroniseren van save data!" msgid "Error writing file: {0}" msgstr "Fout bij het schrijven van bestand: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4191,19 +4214,21 @@ msgid "" "Right click -> 'Set blr' will place a blr at the top of the symbol.\n" msgstr "" "Voorbeeld:\n" -"U wilt een functie vinden die wordt uitgevoerd wanneer HP verandert.\n" +"U wilt een functie vinden die uitgevoerd wordt wanneer HP verandert.\n" "1. Start de opname en speel het spel zonder HP te laten veranderen, druk dan " "op 'Code is niet uitgevoerd'.\n" "2. Krijg/verlies onmiddellijk HP en druk op 'Code is uitgevoerd'.\n" "3. Herhaal 1 of 2 om de hoeveelheid resultaten te verminderen.\n" +"\"Code has been executed\" zouden korte opnames moeten bevatten die focussen " +"op wat je wilt.\n" "\n" "Twee keer op 'Code is uitgevoerd' drukken zal alleen de functies behouden " -"die voor beide opnames zijn uitgevoerd. Hits zal het aantal hits van de " -"laatste opname weergeven. Het totaal aantal hits zal het totaal aantal keren " +"die voor beide opnames zijn uitgevoerd. 'Hits' zal het aantal hits van de " +"laatste opname weergeven. 'Totale hits' zal het totaal aantal keren " "weergeven dat een functie is uitgevoerd totdat de lijsten worden gewist met " "Reset.\n" "\n" -"Rechts klik -> 'Zet blr' zal een blr bovenaan het symbool plaatsen.\n" +"Rechts klik -> 'Stel blr in' zal een blr bovenaan het symbool plaatsen.\n" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:134 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:390 @@ -4266,10 +4291,10 @@ msgstr "Experimenteel" msgid "Export All Wii Saves" msgstr "Exporteer alle Wii Saves" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Exporteren Mislukt" @@ -4281,19 +4306,19 @@ msgstr "Exporteer Opname" msgid "Export Recording..." msgstr "Exporteer Opname..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Exporteer Save Bestand" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Exporteer Save Bestanden" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Exporteer Wii Save" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Exporteer Wii Saves" @@ -4305,7 +4330,7 @@ msgstr "Exporteer als .&gcs..." msgid "Export as .&sav..." msgstr "Exporteer als .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4379,7 +4404,7 @@ msgstr "FIFO Speler" msgid "Failed loading XML." msgstr "XML laden mislukt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4392,19 +4417,19 @@ msgid "Failed to add this session to the NetPlay index: %1" msgstr "" "Het is niet gelukt om deze sessie aan de NetPlay index toe te voegen: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Verbinden met Redump.org mislukt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Kon geen verbinding maken met server: %1" @@ -4437,11 +4462,11 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "Kon de NetPlay-geheugenkaart niet verwijderen. Controleer uw schrijfrechten." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Kon het geselecteerde bestand niet verwijderen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Kon kernel driver voor BT passthrough niet ontkoppelen: {0}" @@ -4457,16 +4482,16 @@ msgstr "Kon %1 niet dumpen: Kon het bestand niet openen" msgid "Failed to dump %1: Failed to write to file" msgstr "Kon %1 niet dumpen: Kon niet naar het bestand schrijven" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Exporteren van %n van de %1 save bestand(en) is mislukt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Kon de volgende save bestanden niet exporteren:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Kon geen certificaten uitpakken van NAND" @@ -4492,18 +4517,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Kon één of meerdere D3D symbolen niet vinden" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Kon \"%1\" niet importeren." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Save bestand importeren mislukt. Start het spel eerst en probeer het dan " "opnieuw." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4511,7 +4536,7 @@ msgstr "" "Save bestand importeren mislukt. Het bestand lijkt beschadigd te zijn of is " "geen geldige Wii-save." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4521,7 +4546,7 @@ msgstr "" "verhindert de toegang tot bestanden erin. Probeer uw NAND te repareren " "(Tools -> Beheer NAND -> Controleer NAND...) en importeer de save opnieuw." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Kon core niet initiëren" @@ -4544,12 +4569,12 @@ msgstr "Initialiseren renderer classes mislukt" msgid "Failed to install pack: %1" msgstr "Het is niet gelukt om het pakket te installeren: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Kon deze titel niet installeren op de NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4557,8 +4582,8 @@ msgstr "" "Luisteren naar poort %1 mislukt. Is er nog een exemplaar van de NetPlay-" "server actief?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Kon RSO-module op %1 niet laden" @@ -4570,7 +4595,7 @@ msgstr "Kon d3d11.dll niet laden" msgid "Failed to load dxgi.dll" msgstr "Kon dxgi.dll niet laden" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Kon mapbestand'%1' niet laden" @@ -4586,13 +4611,13 @@ msgstr "" "Laden van {0} mislukt. Als u Windows 7 gebruikt, probeer dan het KB4019990 " "update pakket te installeren." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Kon '%1' niet openen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Kon Bluetooth-apparaat niet openen: {0}" @@ -4616,11 +4641,11 @@ msgstr "" "Openen van bestand in externe editor mislukt.\n" "Zorg ervoor dat er een toepassing is toegewezen om INI-bestanden te openen." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Openen bestand mislukt." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Kon server niet openen" @@ -4629,7 +4654,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Kan het invoerbestand \"% 1\" niet openen." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4652,25 +4677,25 @@ msgstr "Kan de gegeven waarde niet verwerken tot het beoogde data type." msgid "Failed to read DFF file." msgstr "Lezen DFF bestand mislukt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Lezen bestand mislukt." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Lezen van het invoerbestand \"{0}\" is mislukt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "Lezen van geselecteerde save bestand(en) van geheugenkaart mislukt." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Lezen van {0} is mislukt" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Verwijderen bestand mislukt." @@ -4684,7 +4709,7 @@ msgstr "" "\n" "Wilt u het converteren zonder deze ongewenste gegevens te verwijderen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Kon deze titel niet van de NAND verwijderen." @@ -4704,19 +4729,19 @@ msgstr "Kon NetPlay omleid map niet resetten. Controleer uw schrijfrechten." msgid "Failed to save FIFO log." msgstr "Kon FIFO log niet opslaan." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Kon code map niet opslaan naar pad '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Kon handtekeningbestand '%1' niet opslaan" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Kon symbool map niet opslaan naar pad '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Kon niet opslaan naar handtekeningsbestand '%1'" @@ -4740,9 +4765,9 @@ msgstr "Kon Wii-save niet schrijven." msgid "Failed to write config file!" msgstr "Kon configuratiebestand niet schrijven!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Schrijven van gewijzigde geheugenkaart naar schijf mislukt." @@ -4750,12 +4775,12 @@ msgstr "Schrijven van gewijzigde geheugenkaart naar schijf mislukt." msgid "Failed to write redirected save." msgstr "Schrijven van omgeleide save mislukt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Schrijven van save bestand naar schijf mislukt." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4763,10 +4788,10 @@ msgstr "" "Schrijven naar uitvoerbestand \"{0}\" is mislukt.\n" "Controleer of u voldoende ruimte beschikbaar heeft op de doelschijf." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Gefaald" @@ -4791,7 +4816,7 @@ msgstr "Snel" msgid "Fast Depth Calculation" msgstr "Snelle Diepteberekening" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4808,7 +4833,7 @@ msgstr "Gezichtsveld" msgid "File Details" msgstr "Bestand Details" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4822,19 +4847,19 @@ msgstr "Bestandsformaat:" msgid "File Info" msgstr "Bestandsinfo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Bestandsnaam" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Bestandspad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Bestandsgrootte" @@ -4863,13 +4888,13 @@ msgstr "" "Bestanden gespecificeerd in het M3U-bestand \"{0}\" werden niet gevonden:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "Bestandsgrootte komt niet overeen met een bekende GameCube geheugenkaart " "grootte." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "Bestandsgrootte in header komt niet overeen met de werkelijke kaartgrootte." @@ -4926,7 +4951,7 @@ msgstr "First Person" msgid "Fix Checksums" msgstr "Herstel Controlesommen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Herstel Controlesom Mislukt" @@ -4936,7 +4961,7 @@ msgstr "Vaste Uitlijning" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flags" @@ -5092,11 +5117,11 @@ msgstr "Frames om Op te Nemen:" msgid "France" msgstr "Frankrijk" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Vrije Blokken: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Vrije Bestanden: %1" @@ -5138,7 +5163,7 @@ msgid "Freelook Toggle" msgstr "Vrije-Kijk Schakelaar" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Frans" @@ -5167,7 +5192,7 @@ msgstr "Van:" msgid "FullScr" msgstr "Volledig Scherm" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Functie" @@ -5199,7 +5224,7 @@ msgstr "GBA Kern" msgid "GBA Port %1" msgstr "GBA Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "GBA Instellingen" @@ -5211,11 +5236,11 @@ msgstr "GBA Volume" msgid "GBA Window Size" msgstr "GBA Venster Grootte" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM verandert naar \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM uitgeschakeld" @@ -5345,11 +5370,11 @@ msgstr "Spel" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Carts (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5373,7 +5398,7 @@ msgstr "Spel Details" msgid "Game Folders" msgstr "Spelmappen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spel ID" @@ -5387,11 +5412,25 @@ msgstr "Spel ID:" msgid "Game Status" msgstr "Spelstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Spel gewijzigd naar \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Het spel draait al!" @@ -5400,6 +5439,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "Spel overschreven door een andere save. Data corruptie {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Spelspecifieke Instellingen" @@ -5440,12 +5483,12 @@ msgstr "GameCube Toetsenbord op Poort %1" msgid "GameCube Memory Card Manager" msgstr "GameCube Geheugenkaart Beheer" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "GameCube Geheugenkaart" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Geheugenkaarten (*.raw *.gcp)" @@ -5478,7 +5521,7 @@ msgstr "Algemeen" msgid "General and Options" msgstr "Algemeen en Opties" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Genereer Action Replay Code" @@ -5486,16 +5529,16 @@ msgstr "Genereer Action Replay Code" msgid "Generate a New Statistics Identity" msgstr "Genereer een nieuwe statistieken identiteit" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Gegenereerde AR code." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Gegenereerde symboolnamen van '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Duits" @@ -5504,14 +5547,14 @@ msgstr "Duits" msgid "Germany" msgstr "Duitsland" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Ga naar" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golf Modus" @@ -5689,15 +5732,15 @@ msgstr "" "maar de latentie voor anderen groter wordt. Geschikt voor casual spellen met " "3+ spelers, mogelijk op onstabiele of hoge latency-verbindingen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Host Invoer Autoriteit Uitgeschakeld" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Host Invoer Autoriteit Ingeschakeld" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Host met NetPlay" @@ -5715,7 +5758,7 @@ msgstr "Sneltoets Instellingen" msgid "Hotkeys" msgstr "Sneltoetsen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Sneltoetsen Vereisen Venster Focus" @@ -5766,7 +5809,7 @@ msgstr "" msgid "IP Address:" msgstr "IP Adres:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL Instellingen" @@ -5775,7 +5818,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR Gevoeligheid:" @@ -5830,7 +5873,7 @@ msgstr "" msgid "Identity Generation" msgstr "Genereer Identiteit" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5895,7 +5938,7 @@ msgstr "Negeren" msgid "Ignore Format Changes" msgstr "Negeer Formaat Veranderingen" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Negeer voor deze sessie" @@ -5945,14 +5988,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importeer BootMii NAND Backup..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Importeren Mislukt" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importeer Save Bestand(en)" @@ -5960,11 +6003,11 @@ msgstr "Importeer Save Bestand(en)" msgid "Import Wii Save..." msgstr "Importeer Wii Save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "NAND backup Importeren" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6043,21 +6086,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informatie" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Blokkeer Screensaver Tijdens Emulatie" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Invoer" @@ -6102,7 +6145,7 @@ msgstr "Installeer Update" msgid "Install WAD..." msgstr "Installeer WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installeren op de NAND" @@ -6118,7 +6161,7 @@ msgstr "Instructie" msgid "Instruction Breakpoint" msgstr "Instructie Breakpoint" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instructie:" @@ -6167,7 +6210,7 @@ msgstr "Interne Resolutie" msgid "Internal Resolution:" msgstr "Interne Resolutie:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Interne fout bij het genereren van AR code." @@ -6179,7 +6222,7 @@ msgstr "Interpreter (traagst)" msgid "Interpreter Core" msgstr "Interpreter Core" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Ongeldige Uitdrukking." @@ -6196,7 +6239,7 @@ msgstr "Ongeldige Pakket %1 ingevoerd: %2" msgid "Invalid Player ID" msgstr "Ongeldige Speler-ID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Ongeldig RSO-moduleadres: %1" @@ -6204,7 +6247,7 @@ msgstr "Ongeldig RSO-moduleadres: %1" msgid "Invalid callstack" msgstr "Ongeldige callstack" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Invalide controlesom." @@ -6212,7 +6255,7 @@ msgstr "Invalide controlesom." msgid "Invalid game." msgstr "Ongeldig spel." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Ongeldige host" @@ -6221,7 +6264,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Ongeldige invoer voor het veld \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Ongeldige invoer opgegeven" @@ -6254,7 +6297,7 @@ msgid "Invalid search string (only even string lengths supported)" msgstr "" "Ongeldige zoekopdracht (alleen gelijke string lengtes zijn ondersteund)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Ongeldige titel-ID." @@ -6263,7 +6306,7 @@ msgid "Invalid watch address: %1" msgstr "Ongeldig watch adres: 1%" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiaans" @@ -6370,7 +6413,7 @@ msgstr "Japans" msgid "Japanese (Shift-JIS)" msgstr "Japans (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Houd Venster Bovenop" @@ -6438,7 +6481,7 @@ msgstr "LR Save" msgid "Label" msgstr "Label" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Laatste Waarde" @@ -6542,7 +6585,7 @@ msgstr "Luisteren" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Laad" @@ -6677,7 +6720,7 @@ msgstr "Laad State van Slot" msgid "Load Wii Save" msgstr "Laad Wii Save" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Laad Wii Hoofdmenu %1" @@ -6689,8 +6732,8 @@ msgstr "Laden van Geselecteerde Slot" msgid "Load from Slot %1 - %2" msgstr "Laad van Slot Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Laad mapbestand" @@ -6698,7 +6741,7 @@ msgstr "Laad mapbestand" msgid "Load..." msgstr "Laden..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Symbolen geladen van '%1'" @@ -6716,7 +6759,7 @@ msgstr "" msgid "Local" msgstr "Lokaal" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Vergrendel Muiscursor" @@ -6745,7 +6788,7 @@ msgstr "Log Types" msgid "Logger Outputs" msgstr "Logger Uitvoer" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6759,7 +6802,7 @@ msgstr "" msgid "Loop" msgstr "Loop" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Verbinding met NetPlay-server verloren..." @@ -6788,7 +6831,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "MadCatz Gameshark bestanden" @@ -6796,7 +6839,7 @@ msgstr "MadCatz Gameshark bestanden" msgid "Main Stick" msgstr "Hoofd Knuppel" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6839,11 +6882,11 @@ msgstr "Mask ROM" msgid "Match Found" msgstr "Overeenkomst Gevonden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Max Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Max buffergrootte gewijzigd naar %1" @@ -6877,22 +6920,6 @@ msgstr "Geheugenkaart" msgid "Memory Card Manager" msgstr "Geheugenkaart Beheer" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Geheugenkaart bestandsnaam in Slot {0} is incorrect\n" -"De regio is niet aangegeven\n" -"\n" -"De bestandslocatie van slot {1} is veranderd naar\n" -"{2}\n" -"Wilt u de oude bestanden naar de nieuwe locatie kopiëren?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Geheugen Overschrijven" @@ -6901,19 +6928,19 @@ msgstr "Geheugen Overschrijven" msgid "Memory breakpoint options" msgstr "Geheugen breakpoint opties" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock opgeroepen op ongeldige adres ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: Read opgeroepen met onjuiste bron adres ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write opgeroepen met ongeldige bestemming adres ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6943,17 +6970,17 @@ msgstr "Overig" msgid "Misc Settings" msgstr "Overige Instellingen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Verschil tussen het aantal vrije blokken in de header en de werkelijke " "ongebruikte blokken." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Verschil tussen interne data structuren." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6986,8 +7013,8 @@ msgstr "" "

Vereist in de meeste gevallen een emulatie reset." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Module gevonden: %1" @@ -7016,22 +7043,22 @@ msgstr "Bewegings-simulatie" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Muis Cursor Zichtbaarheid" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" "Muis Cursor wordt verborgen na inactiviteit en komt terug zodra de Muis " "Cursor wordt bewogen." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "Muis Cursor is altijd zichtbaar." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "Muis Cursor zal onzichtbaar zijn terwijl een spel draait." @@ -7045,14 +7072,20 @@ msgstr "Verplaats" msgid "Movie" msgstr "Opname" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&ee op Alles" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND Check" @@ -7083,11 +7116,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Naam" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Naam voor deze nieuwe tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Naam van de te verwijderen tag:" @@ -7108,8 +7141,8 @@ msgstr "Naam:" msgid "Native (640x528)" msgstr "Native (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Native GCI bestand" @@ -7129,11 +7162,11 @@ msgstr "Netplay Instellingen" msgid "Netherlands" msgstr "Nederland" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay heeft zich desynced in NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "NetPlay is niet meer gesynchroniseerd. Er is geen manier om dit te " @@ -7148,7 +7181,7 @@ msgstr "Netwerk" msgid "Network dump format:" msgstr "Netwerk dump formaat:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Nooit" @@ -7156,7 +7189,7 @@ msgstr "Nooit" msgid "Never Auto-Update" msgstr "Nooit Automatisch Bijwerken" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Nieuw" @@ -7169,7 +7202,7 @@ msgstr "Nieuwe Breakpoint" msgid "New Search" msgstr "Nieuwe Zoekopdracht" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Nieuwe Tag..." @@ -7181,7 +7214,7 @@ msgstr "Nieuwe identiteit gegenereerd." msgid "New instruction:" msgstr "Nieuwe instructie:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Nieuwe tag" @@ -7238,13 +7271,13 @@ msgstr "Geen Overeenkomst" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Geen omschrijving beschikbaar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Geen fouten." @@ -7264,10 +7297,14 @@ msgstr "Er draait geen spel." msgid "No game running." msgstr "Er draait geen spel." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Er zijn geen problemen gedetecteerd." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Geen mappen gevonden in het M3U-bestand \"{0}\"" @@ -7298,7 +7335,7 @@ msgstr "Geen profielen gevonden voor de spel-instelling '{0}'" msgid "No recording loaded." msgstr "Geen opname geladen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Geen save data gevonden." @@ -7320,10 +7357,6 @@ msgstr "Geen" msgid "North America" msgstr "Noord-Amerika" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Niet Gevonden" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Niet ingesteld" @@ -7332,7 +7365,7 @@ msgstr "Niet ingesteld" msgid "Not all players have the game. Do you really want to start?" msgstr "Niet alle spelers hebben het spel. Weet u zeker dat u wilt doorgaan?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7342,7 +7375,7 @@ msgstr "" "Niet genoeg vrije blokken op de doelgeheugenkaart. Ten minste %n vrij(e) " "blok(ken) vereist." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7352,6 +7385,10 @@ msgstr "" "Niet genoeg vrije bestanden op de doelgeheugenkaart. Ten minste %n vrije " "bestand(en) vereist." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7406,7 +7443,7 @@ msgstr "Nunchuck Oriëntatie" msgid "Nunchuk Stick" msgstr "Nunchuck Stick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7437,7 +7474,7 @@ msgstr "Offset" msgid "On" msgstr "Aan" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Op Beweging" @@ -7445,7 +7482,7 @@ msgstr "Op Beweging" msgid "Online &Documentation" msgstr "Online &Documentatie" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7453,7 +7490,7 @@ msgstr "" "Alleen symbolen toevoegen die beginnen met:\n" "(Leeg voor alle symbolen)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7466,7 +7503,7 @@ msgstr "" msgid "Open" msgstr "Open" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Open &Bijbehorende Map" @@ -7478,7 +7515,7 @@ msgstr "Map Openen..." msgid "Open FIFO log" msgstr "FIFO log Openen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Open GameCube &Save Map" @@ -7486,7 +7523,7 @@ msgstr "Open GameCube &Save Map" msgid "Open Riivolution XML..." msgstr "Open Riivolution XML..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Open Wii &Save Map" @@ -7674,7 +7711,7 @@ msgstr "Pauze" msgid "Pause at End of Movie" msgstr "Pauzeer aan het Einde van de Opname" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pauzeer bij Verliezen van Focus" @@ -7701,7 +7738,7 @@ msgstr "Per-Pixel Belichting" msgid "Perform Online System Update" msgstr "Voer Online Systeemupdate Uit" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Voer Systeemupdate Uit" @@ -7719,7 +7756,7 @@ msgstr "Fysieke adresruimte" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Kies een debug-lettertype" @@ -7735,7 +7772,7 @@ msgstr "Stamp Omlaag" msgid "Pitch Up" msgstr "Stamp Omhoog" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7783,7 +7820,7 @@ msgstr "Wijzen" msgid "Port %1" msgstr "Poort %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "Port %1 ROM:" @@ -7792,7 +7829,7 @@ msgstr "Port %1 ROM:" msgid "Port:" msgstr "Poort:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Mogelijke desync gedetecteerd: %1 heeft mogelijk sync verloren in frame %2" @@ -7813,15 +7850,15 @@ msgstr "Post-Processing Shader Configuratie" msgid "Prefetch Custom Textures" msgstr "Prefetch Aangepaste Textures" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Vroegtijdig opname einde in PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Vroegtijdig opname einde in PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Vroegtijdig opname einde in PlayWiimote. {0} > {1}" @@ -7846,7 +7883,7 @@ msgstr "Druk Op Sync Knop" msgid "Pressure" msgstr "Druk" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7938,7 +7975,7 @@ msgstr "Openbaar" msgid "Purge Game List Cache" msgstr "Wis Spellijst Cache" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Zet IPL ROMs in Gebruiker/GC/." @@ -7965,8 +8002,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Vraag" @@ -7994,7 +8031,7 @@ msgstr "GEREED" msgid "RSO Modules" msgstr "RSO Modules" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO autodetectie" @@ -8147,12 +8184,12 @@ msgstr "" msgid "Refreshed current values." msgstr "Huidige waarden ververst." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Verversen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8182,12 +8219,12 @@ msgstr "Herinner Me Later" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Verwijder" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Verwijderen Mislukt" @@ -8195,11 +8232,11 @@ msgstr "Verwijderen Mislukt" msgid "Remove Junk Data (Irreversible):" msgstr "Verwijder Junk Data (Onomkeerbaar):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Tag Verwijderen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Tag verwijderen" @@ -8218,7 +8255,7 @@ msgstr "" msgid "Rename symbol" msgstr "Hernoem symbool" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Render Scherm" @@ -8299,7 +8336,7 @@ msgstr "Resourcepakketbeheer" msgid "Resource Pack Path:" msgstr "Resourcepakket Pad:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Herstarten Vereist" @@ -8311,7 +8348,7 @@ msgstr "Herstel Standaardinstellingen" msgid "Restore instruction" msgstr "Herstel instructie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Opnieuw" @@ -8416,7 +8453,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Loop &Tot Hier" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Voer GBA Emulatie uit in Specifieke threads" @@ -8448,7 +8485,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8477,7 +8514,7 @@ msgstr "Veilig" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8487,9 +8524,9 @@ msgstr "Opslaan" msgid "Save All" msgstr "Sla Alles op" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Export Opslaan" @@ -8510,11 +8547,11 @@ msgstr "Spel Opslag" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Spel Save Bestanden (*.sav);;All Files (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Import Opslaan" @@ -8526,7 +8563,7 @@ msgstr "Sla Oudste State op" msgid "Save Preset" msgstr "Voorinstelling opslaan" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Sla Opnamebestand op Als" @@ -8612,11 +8649,11 @@ msgstr "Opslaan als voorinstelling..." msgid "Save as..." msgstr "Opslaan als..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Gecombineerde uitvoerbestand opslaan als" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8626,15 +8663,15 @@ msgstr "" "maken van de huidige data voordat u het overschrijft.\n" "Nu overschrijven?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Save in de Zelfde Map als de ROM" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Sla mapbestand op" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Sla handtekeningbestand op" @@ -8656,11 +8693,11 @@ msgstr "" "Opgeslagen Wii-afstandsbediening koppelingen kunnen alleen gerest worden " "wanneer er een Wii spel draait." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Saves:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "Savestate opname {0} is corrupt, opname wordt gestopt..." @@ -8715,7 +8752,7 @@ msgstr "Zoek naar Instructie" msgid "Search games..." msgstr "Zoek Spellen..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Zoek instructie" @@ -8747,20 +8784,20 @@ msgstr "Selecteer" msgid "Select Dump Path" msgstr "Selecteer Dump Pad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Selecteer Export Map" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Selecteer GBA BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Selecteer GBA ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Selecteer GBA Saves Pad" @@ -8840,7 +8877,7 @@ msgstr "Selecteer WFS Pad" msgid "Select Wii NAND Root" msgstr "Selecteer Wii NAND Basismap" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Selecteer een Map" @@ -8848,9 +8885,9 @@ msgstr "Selecteer een Map" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Selecteer een Bestand" @@ -8870,7 +8907,7 @@ msgstr "Selecteer een bestand" msgid "Select a game" msgstr "Selecteer een Spel" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Selecteer een titel om te installeren op de NAND" @@ -8878,11 +8915,11 @@ msgstr "Selecteer een titel om te installeren op de NAND" msgid "Select e-Reader Cards" msgstr "Selecteer e-Reader Kaarten" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Selecteer het RSO module adres:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Selecteer Opnamebestand om Af te Spelen" @@ -8890,12 +8927,12 @@ msgstr "Selecteer Opnamebestand om Af te Spelen" msgid "Select the Virtual SD Card Root" msgstr "Selecteer de Virtuele SD Kaart Root" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecteer het sleutelbestand (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecteer het save bestand" @@ -8917,9 +8954,9 @@ msgstr "Geselecteerde controller profiel bestaat niet" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Het geselecteerde spel bestaat niet in de spellijst!" @@ -8931,7 +8968,7 @@ msgstr "Geselecteerde thread callstack" msgid "Selected thread context" msgstr "Geselecteerde thread context" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8939,7 +8976,7 @@ msgstr "" "Selecteert een hardware-adapter om te gebruiken.

" "%1 ondersteunt deze functie niet.
" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8982,7 +9019,7 @@ msgstr "" "proberen en te kijken welke het beste werkt.

In " "geval van twijfel \"OpenGL\" selecteren." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8997,7 +9034,7 @@ msgstr "" "uit naar venstergrootte.

In geval van twijfel \"Auto" "\" selecteren." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -9018,7 +9055,7 @@ msgstr "" msgid "Send" msgstr "Verzend" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Sensor Bar Positie:" @@ -9043,7 +9080,7 @@ msgstr "Server IP-adres" msgid "Server Port" msgstr "Server Poort" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Server heeft traversal poging geweigerd" @@ -9064,15 +9101,15 @@ msgstr "Stel PC In" msgid "Set Value From File" msgstr "Stel Waarde in Vanuit Bestand" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Stel in als &Standaard ISO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Stel geheugenkaartbestand in voor Slot A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Stel geheugenkaartbestand in voor Slot B" @@ -9162,7 +9199,7 @@ msgstr "Toon &Log" msgid "Show &Toolbar" msgstr "Toon &Toolbar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Toon Actieve Titel in Venstertitel" @@ -9178,7 +9215,7 @@ msgstr "Toon Australië" msgid "Show Current Game on Discord" msgstr "Toon Huidig Spel op Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Toon Debugging UI" @@ -9250,7 +9287,7 @@ msgstr "Toon NetPlay Ping" msgid "Show Netherlands" msgstr "Toon Nederland" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Toon On-Screen Berichtgevingen" @@ -9320,10 +9357,23 @@ msgstr "Toon Wereld" msgid "Show in &memory" msgstr "In &geheugen weergeven" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "In code tonen" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Weergeef in server browser" @@ -9340,7 +9390,7 @@ msgstr "" "Toont diverse rendering statistieken.

In geval van " "twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9349,7 +9399,7 @@ msgstr "" "tijdens NetPlay.

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
In geval van twijfel leeg " "laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9452,7 +9502,7 @@ msgstr "Tekenen Overslaan" msgid "Skip EFB Access from CPU" msgstr "Sla EFB toegang van de CPU over" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Hoofdmenu Overslaan" @@ -9483,7 +9533,7 @@ msgstr "Schuifbalk" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A:" @@ -9491,7 +9541,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B:" @@ -9547,7 +9597,7 @@ msgid "Spain" msgstr "Spanje" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spaans" @@ -9556,7 +9606,7 @@ msgstr "Spaans" msgid "Speaker Pan" msgstr "Speaker Pan" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Speaker Volume:" @@ -9648,11 +9698,11 @@ msgstr "Start in Fullscreen" msgid "Start with Riivolution Patches" msgstr "Start met Riivolution Patches" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Start met Riivolution Patches..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Gestart spel" @@ -9825,10 +9875,10 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Geslaagd" @@ -9846,16 +9896,16 @@ msgstr "Succesvol %n afbeelding(en) geconverteerd." msgid "Successfully deleted '%1'." msgstr "'%1' is succesvol verwijderd." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exporteren van %n van de %1 save bestand(en) gelukt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Save bestanden succesvol geëxporteerd" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Certificaten succesvol uitgepakt van NAND" @@ -9867,16 +9917,16 @@ msgstr "Bestand succesvol uitgepakt." msgid "Successfully extracted system data." msgstr "Systeemdata succesvol uitgepakt." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Save bestand succesvol geïmporteerd." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Titel succesvol geïnstalleerd op de NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Titel succesvol verwijderd van de NAND." @@ -9884,7 +9934,7 @@ msgstr "Titel succesvol verwijderd van de NAND." msgid "Support" msgstr "Ondersteuning" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Ondersteunde bestandsformaten" @@ -9920,11 +9970,11 @@ msgstr "" msgid "Swing" msgstr "Zwaaien" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Overschakelen naar A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Overschakelen naar B" @@ -10008,7 +10058,7 @@ msgstr "Gecko Codes aan het Synchroniseren..." msgid "Synchronizing save data..." msgstr "Synchroniseren van save data..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Systeemtaal:" @@ -10023,8 +10073,8 @@ msgstr "TAS Invoer" msgid "TAS Tools" msgstr "TAS-Tools" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10095,7 +10145,7 @@ msgstr "Het IPL bestand is geen bekende goede dump. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "De Masterpiece partities ontbreken." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10103,7 +10153,7 @@ msgstr "" "De NAND kon niet worden gerepareerd. Het wordt aanbevolen om een back-up te " "maken van uw huidige gegevens en opnieuw te beginnen met een nieuwe NAND." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "De NAND is gerepareerd." @@ -10160,13 +10210,13 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Schijf kan niet worden gelezen (op {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" "De schijf die op het punt stond geplaatst te worden, kon niet worden " "gevonden." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10200,11 +10250,11 @@ msgstr "De ingevoerde PID is ongeldig." msgid "The entered VID is invalid." msgstr "De ingevoerde VID is ongeldig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "De uitdrukken bevat een syntax error." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10238,6 +10288,13 @@ msgstr "" "Het bestand {0} is al geopend. De bestandsheader zal niet worden " "weggeschreven." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Het bestandssysteem is ongeldig of kon niet gelezen worden." @@ -10356,7 +10413,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "De gedecodeerde AR code bevat geen regels." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10398,7 +10455,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "Het opgegeven bestand \"{0}\" bestaat niet" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "De doelgeheugenkaart bevat al een bestand \"% 1\"." @@ -10455,7 +10512,7 @@ msgstr "Er zijn te veel partities in de eerste partitietabel." msgid "There is nothing to undo!" msgstr "Er is niks om ongedaan te maken!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" "Er is een probleem opgetreden bij het toevoegen van een snelkoppeling aan " @@ -10499,11 +10556,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Dit USB apparaat staat al op de witte lijst." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Deze WAD is niet opstartbaar." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Deze WAD is niet geldig." @@ -10516,7 +10573,7 @@ msgstr "" "zelf aanpassen." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Dit kan niet ongedaan gemaakt worden!" @@ -10644,7 +10701,7 @@ msgstr "" "Deze software moet niet worden gebruikt om spellen te spelen die u niet " "legaal bezit." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Deze titel kan niet worden opgestart." @@ -10657,7 +10714,7 @@ msgstr "Dit spel gebruikt een ongeldige IOS." msgid "This title is set to use an invalid common key." msgstr "Dit spel gebruikt een ongeldige gedeelde sleutel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10669,7 +10726,7 @@ msgstr "" "\n" "DSPHLE: Onbekende ucode (CRC = {0:08x}) - AX wordt geforceerd." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10745,7 +10802,7 @@ msgstr "" "Tijdsperiode van stabiele invoer om kalibratie te activeren. (nul om uit te " "schakelen)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10787,7 +10844,7 @@ msgid "Toggle Aspect Ratio" msgstr "Schakel Beeldverhouding Om" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Schakel Breakpoint Om" @@ -10847,7 +10904,7 @@ msgstr "Tokeniseren is mislukt." msgid "Toolbar" msgstr "Toolbar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Boven" @@ -10899,8 +10956,8 @@ msgstr "Aanraking" msgid "Traditional Chinese" msgstr "Chinees (Traditioneel)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Traversalfout" @@ -10908,7 +10965,7 @@ msgstr "Traversalfout" msgid "Traversal Server" msgstr "Traversal Server" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Traversal server time-out tijdens het verbinden met de host" @@ -10934,7 +10991,7 @@ msgid "Triggers" msgstr "Trekkers" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10968,7 +11025,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB Witte Lijst Fout" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10979,7 +11036,7 @@ msgstr "" "low-end hardware.

In geval van twijfel deze modus " "selecteren." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10991,7 +11048,7 @@ msgstr "" "

Alleen aanbevolen als u stotteringen ondervindt " "met Hybride Ubershaders en u een krachtige GPU heeft." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -11005,7 +11062,7 @@ msgstr "" "het shadercompilatie met minimale impact op de prestaties, maar de " "resultaten zijn afhankelijk van het gedrag van video-stuurprogramma's." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Kan RSO-module niet automatisch detecteren" @@ -11066,11 +11123,11 @@ msgstr "Save State Ongedaan Maken" msgid "Uninstall" msgstr "Deïnstalleren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Deïnstalleren van de NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11090,11 +11147,11 @@ msgstr "Verenigde Staten" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Onbekend" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Onbekend DVD commando {0:08x} - fatale fout" @@ -11142,11 +11199,11 @@ msgstr "Onbekende disc" msgid "Unknown error occurred." msgstr "Onbekende fout opgetreden." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Onbekende fout {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Onbekende fout." @@ -11204,8 +11261,8 @@ msgstr "Unsigned Integer" msgid "Up" msgstr "Omhoog" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Update" @@ -11267,11 +11324,11 @@ msgstr "Wii-afstandsbediening Rechtop" msgid "Usage Statistics Reporting Settings" msgstr "Gebruiksstatistieken Rapportageinstellingen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Gebruik Ingebouwde Database met Spelnamen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Gebruik Aangepaste Gebruikersstijl" @@ -11283,7 +11340,7 @@ msgstr "Gebruik Lossless Codec (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Gebruik PAL60 Modus (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Gebruik Panic Handlers" @@ -11375,11 +11432,11 @@ msgstr "" msgid "User Config" msgstr "Gebruikersconfiguratie" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Gebruikersinterface" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Gebruikersstijl:" @@ -11410,7 +11467,7 @@ msgstr "" "

In geval van twijfel geselecteerd laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11420,7 +11477,7 @@ msgstr "" "zal er een render venster worden aangemaakt.

In " "geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
In " "geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11681,7 +11738,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Waarschuwing" @@ -11703,7 +11760,7 @@ msgstr "" "Waarschuwing: Het aantal blokken aangegeven door BAT ({0}) komt niet overeen " "met de geladen bestandsheader ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11713,7 +11770,7 @@ msgstr "" "opname bevindt. (byte {0} > {1}) (input {2} > {3}). U moet een andere save " "laden voordat u verdergaat, of deze state laden in alleen-lezen modus." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11723,7 +11780,7 @@ msgstr "" "het huidige beeld in de save (byte {0} < {1}) (frame {2} < {3}). U moet een " "andere save laden voordat u verder gaat." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11734,7 +11791,7 @@ msgstr "" "of deze staat laden met alleen-lezen uitgeschakeld. Anders zullen er " "waarschijnlijk synchronisatieproblemen optreden. " -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11814,7 +11871,7 @@ msgstr "" "Mipmapdetectie' is ingeschakeld in Verbeteringen." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Witte lijst van USB Passthrough Apparaten" @@ -11860,7 +11917,7 @@ msgstr "Wii-afstandbedieningsknoppen" msgid "Wii Remote Orientation" msgstr "Wii-afstandsbediening Oriëntatie" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii-afstandsbediening Instellingen" @@ -11888,7 +11945,7 @@ msgstr "Wii en Wii-afstandsbediening" msgid "Wii data is not public yet" msgstr "Wii data is nog niet publiek" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii save bestanden (*.bin);;All Files (*)" @@ -11896,7 +11953,7 @@ msgstr "Wii save bestanden (*.bin);;All Files (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools Signatuur MEGA Bestand" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11955,9 +12012,21 @@ msgstr "Schrijf naar Log en Breek af" msgid "Write to Window" msgstr "Schrijf naar Venster" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Verkeerde Versie" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12038,18 +12107,6 @@ msgstr "" "\n" "Weet u zeker dat je toch wilt doorgaan?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"U probeert de Vulkan (metal) backend op een niet ondersteund " -"besturingssysteem te gebruiken. Als u alle functionaliteit wilt gebruruiken, " -"moet u macOS 10.14 (Mojave) of nieuwer gebruiken. Meld de problemen die u " -"tegenkomt niet, tenzij ze ook op 10.14+ voorkomen." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "U gebruikt de nieuwste versie die beschikbaar is op deze update-track." @@ -12102,7 +12159,7 @@ msgstr "U moet een naam voor uw sessie opgeven!" msgid "You must provide a region for your session!" msgstr "U moet een regio voor uw sessie opgeven!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "U moet Dolphin herstarten voordat deze optie effect zal hebben." @@ -12180,12 +12237,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll kan niet worden geladen." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "standaard" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "verbinding verbroken" @@ -12248,13 +12305,13 @@ msgstr "" msgid "none" msgstr "geen" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "uit" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "aan" @@ -12291,7 +12348,7 @@ msgstr "niet-uitgelijnd" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12318,7 +12375,7 @@ msgstr "" "buiten Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} van {1} blokken. Compressieverhouding {2}%" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index e07b033555..789ce2e41f 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -59,7 +59,7 @@ msgstr "" "Ponieważ ten tytuł nie jest przeznaczony na detaliczne wersje Wii, Dolphin " "nie może zweryfikować, czy był on manipulowany." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -201,19 +201,19 @@ msgstr "" "%2 obiekt(ów)\n" "Aktualna klatka: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 dołączył(a)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 wyszedł" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -250,7 +250,7 @@ msgstr "%1% (Normalna szybkość)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -313,7 +313,7 @@ msgstr "&4x" msgid "&About" msgstr "&O programie" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Dodaj punkt przerwania pamięci" @@ -405,7 +405,7 @@ msgstr "&Usuń" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Usuń obejrzenie" @@ -503,7 +503,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Język:" @@ -560,7 +560,7 @@ msgstr "W&strzymaj" msgid "&Play" msgstr "&Graj" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Właściwości" @@ -610,7 +610,7 @@ msgstr "Limit &szybkości:" msgid "&Stop" msgstr "&Zatrzymaj" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Motyw:" @@ -640,7 +640,7 @@ msgstr "&Obejrz" msgid "&Website" msgstr "&Strona internetowa" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "Wi&ki" @@ -648,15 +648,15 @@ msgstr "Wi&ki" msgid "&Yes" msgstr "&Tak" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Brak)" @@ -693,9 +693,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -885,7 +885,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -900,8 +900,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Sesja NetPlay jest już rozpoczęta!" @@ -915,15 +915,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Dysk już jest gotowy do włożenia." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1060,7 +1060,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1072,7 +1072,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1102,8 +1102,8 @@ msgstr "" msgid "Add New USB Device" msgstr "Dodaj nowe urządzenie USB" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1130,18 +1130,18 @@ msgstr "" msgid "Add to &watch" msgstr "Dodaj do &oglądania" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Dodaj..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1231,10 +1231,15 @@ msgstr "Afryka" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1242,20 +1247,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Wszystkie stany zapisu (*.sav *.s##);; wszystkie pliki (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1276,7 +1298,7 @@ msgstr "Zapisy wszystkich graczy zsynchronizowane." msgid "Allow Mismatched Region Settings" msgstr "Zezwalaj na niedopasowane ustawienia regionalne" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1298,7 +1320,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1354,7 +1376,7 @@ msgstr "Antyaliasing:" msgid "Any Region" msgstr "Jakikolwiek region" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1380,7 +1402,7 @@ msgstr "Data Apploadera:" msgid "Apply" msgstr "Zastosuj" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1392,7 +1414,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Czy jesteś pewien, że chcesz usunąć '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Czy jesteś pewien, że chcesz usunąć ten plik?" @@ -1408,7 +1430,7 @@ msgstr "Czy jesteś pewien, że chcesz zamknąć NetPlay?" msgid "Are you sure?" msgstr "Czy jesteś pewien?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1425,7 +1447,7 @@ msgstr "Przypisz porty kontrolerów" msgid "Assign Controllers" msgstr "Przypisz kontrolery" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1486,11 +1508,11 @@ msgstr "Automatycznie dopasuj rozmiar okna" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1517,7 +1539,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1529,7 +1551,7 @@ msgstr "Rejestr BP" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1582,7 +1604,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1617,7 +1639,7 @@ msgstr "Ustawienia podstawowe" msgid "Bass" msgstr "Bas" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1649,7 +1671,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1691,11 +1713,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1703,7 +1725,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Pełny ekran bez ramek" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Dół" @@ -1730,7 +1752,7 @@ msgstr "Punkt przerwania" msgid "Breakpoint encountered! Step out aborted." msgstr "Napotkano punkt przerwania! Wyjście anulowane." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Punkty przerwania" @@ -1764,12 +1786,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Rozmiar bufora:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Rozmiar bufora zmieniono na %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Bufor:" @@ -1884,7 +1906,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1892,15 +1914,15 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Nie można uruchomić Sesji NetPlay, podczas gdy gra wciąż jest uruchomiona!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1927,7 +1949,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1953,7 +1975,7 @@ msgstr "Środek" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Zmień &dysk" @@ -1969,7 +1991,7 @@ msgstr "Zmień dysk" msgid "Change Discs Automatically" msgstr "Zmieniaj dyski automatycznie" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -2023,7 +2045,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2037,16 +2059,19 @@ msgstr "" msgid "China" msgstr "Chiny" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Wybierz plik do otwarcia" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2071,7 +2096,7 @@ msgstr "Kontroler Klasyczny" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Wyczyść" @@ -2124,7 +2149,7 @@ msgstr "" msgid "Code:" msgstr "Kod:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2149,7 +2174,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2201,23 +2226,23 @@ msgstr "Skonfiguruj wyjście" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Potwierdź" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Potwierdź przy zatrzymaniu" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2272,7 +2297,7 @@ msgstr "Połączyć z Internetem i przeprowadzić aktualizację systemu?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2380,11 +2405,11 @@ msgstr "Konwergencja:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2410,9 +2435,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopiuj" @@ -2424,19 +2449,19 @@ msgstr "Kopiuj &funkcję" msgid "Copy &hex" msgstr "Kopiuj &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2444,19 +2469,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiowanie nie powiodło się" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2500,14 +2521,14 @@ msgstr "" "Nie można było pobrać informacji o aktualizacji od Nintendo. Proszę sprawdź " "połączenie Internetowe i spróbuj ponownie." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2551,7 +2572,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2563,15 +2584,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2625,7 +2646,7 @@ msgstr "Suwak" msgid "Current Region" msgstr "Aktualny region" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2728,23 +2749,23 @@ msgstr "" msgid "Data Type" msgstr "Typ danych" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2846,21 +2867,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Usuń" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Usuń plik..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,10 +2897,10 @@ msgstr "" msgid "Depth:" msgstr "Głębia:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2899,7 +2920,7 @@ msgstr "" msgid "Detect" msgstr "Wykryj" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2920,7 +2941,7 @@ msgstr "Urządzenie" msgid "Device PID (e.g., 0305)" msgstr "PID urządzenia (np. 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Ustawienia urządzenia" @@ -2967,8 +2988,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3061,26 +3082,26 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Czy zezwalasz programowi Dolphin na wysyłanie informacji do jego producentów?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Czy chcesz wyczyścić listę nazw symboli?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Zatrzymać aktualną emulację?" @@ -3097,9 +3118,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3111,8 +3132,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Filmy TAS (*.dtm)" @@ -3127,7 +3148,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3147,7 +3168,7 @@ msgstr "Nie udało się wykonać wymaganego zadania." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin jest wolnym i otwartoźródłowym emulatorem GameCube'a oraz Wii." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3212,7 +3233,7 @@ msgstr "Pobierz kody" msgid "Download Codes from the WiiRD Database" msgstr "Pobierz kody z bazy danych WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3392,7 +3413,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holenderski" @@ -3465,7 +3486,7 @@ msgstr "Wbudowany bufor klatki (Embedded Frame Buffer - EFB)" msgid "Empty" msgstr "Pusty" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Wątek emulacji jest już uruchomiony" @@ -3497,8 +3518,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3548,7 +3569,7 @@ msgid "Enable Progressive Scan" msgstr "Włącz skanowanie progresywne" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3666,7 +3687,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3679,7 +3700,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet nie zainicjował się" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Angielski" @@ -3712,7 +3733,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3724,7 +3745,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3743,46 +3764,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Błąd" @@ -3804,11 +3826,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3828,7 +3850,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3980,10 +4002,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Eksportuj wszystkie zapisy Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3995,19 +4017,19 @@ msgstr "Eksportuj nagranie" msgid "Export Recording..." msgstr "Eksportuj nagranie..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -4019,7 +4041,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4093,7 +4115,7 @@ msgstr "Odtwarzacz FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4103,19 +4125,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4145,11 +4167,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Nie udało się usunąć wybranego pliku." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4165,16 +4187,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4197,29 +4219,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4239,12 +4261,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4252,8 +4274,8 @@ msgstr "" "Nasłuch na porcie %1 zakończony niepowodzeniem. Czy jest uruchomiony jakiś " "inny serwer NetPlay?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4265,7 +4287,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4279,13 +4301,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Nie udało się otworzyć '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4307,11 +4329,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4320,7 +4342,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4340,25 +4362,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4369,7 +4391,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4389,19 +4411,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Nie udało się zapisać log FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4425,9 +4447,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "Nie udało się zapisać pliku konfiguracyjnego!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4435,21 +4457,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4474,7 +4496,7 @@ msgstr "Szybki" msgid "Fast Depth Calculation" msgstr "Szybkie obliczanie głębi" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4489,7 +4511,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4503,19 +4525,19 @@ msgstr "" msgid "File Info" msgstr "Informacje o pliku" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nazwa pliku" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Rozmiar pliku" @@ -4542,11 +4564,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4596,7 +4618,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Napraw sumy kontrolne" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4606,7 +4628,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flagi" @@ -4744,11 +4766,11 @@ msgstr "" msgid "France" msgstr "Francja" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4786,7 +4808,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francuski" @@ -4815,7 +4837,7 @@ msgstr "" msgid "FullScr" msgstr "Pełny ekran" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funkcja" @@ -4847,7 +4869,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4859,11 +4881,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4966,11 +4988,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartridże GBA (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4992,7 +5014,7 @@ msgstr "" msgid "Game Folders" msgstr "Foldery gry" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID gry" @@ -5006,11 +5028,25 @@ msgstr "ID gry:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Zmieniono grę na \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Gra jest już uruchomiona!" @@ -5019,6 +5055,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Specyficzne ustawienia gry" @@ -5059,12 +5099,12 @@ msgstr "Klawiatura GameCube w porcie %1" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5097,7 +5137,7 @@ msgstr "Główne" msgid "General and Options" msgstr "Ogóły i opcje" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5105,16 +5145,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Generuj nową tożsamość" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Niemiecki" @@ -5123,12 +5163,12 @@ msgstr "Niemiecki" msgid "Germany" msgstr "Niemcy" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5298,15 +5338,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5324,7 +5364,7 @@ msgstr "Ustawienia skrótów klawiaturowych" msgid "Hotkeys" msgstr "Skróty klawiaturowe" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5369,7 +5409,7 @@ msgstr "" msgid "IP Address:" msgstr "Adres IP:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Ustawienia IPL" @@ -5378,7 +5418,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Czułość IR" @@ -5415,7 +5455,7 @@ msgstr "" msgid "Identity Generation" msgstr "Generacja tożsamości" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5467,7 +5507,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignoruj zmiany formatu" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5504,14 +5544,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5519,11 +5559,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importuj zapis Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5595,21 +5635,21 @@ msgid "Info" msgstr "Informacje" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informacja" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Wejście" @@ -5654,7 +5694,7 @@ msgstr "" msgid "Install WAD..." msgstr "Zainstaluj WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5670,7 +5710,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5717,7 +5757,7 @@ msgstr "Rozdzielczość wewnętrzna" msgid "Internal Resolution:" msgstr "Rozdzielczość wewnętrzna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5729,7 +5769,7 @@ msgstr "Interpreter (najwolniejszy)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5746,7 +5786,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5754,7 +5794,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5762,7 +5802,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5771,7 +5811,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5805,7 +5845,7 @@ msgstr "" "Niewłaściwy łańcuch przeszukiwania (wspierane są tylko równe długości " "łańcucha)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5814,7 +5854,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Włoski" @@ -5918,7 +5958,7 @@ msgstr "Japoński" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Trzymaj okno zawsze na wierzchu" @@ -5986,7 +6026,7 @@ msgstr "" msgid "Label" msgstr "Etykieta" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6084,7 +6124,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Wczytaj" @@ -6219,7 +6259,7 @@ msgstr "Wczytaj stan ze slotu" msgid "Load Wii Save" msgstr "Wczytaj zapis Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6231,8 +6271,8 @@ msgstr "Wczytaj z wybranego slotu" msgid "Load from Slot %1 - %2" msgstr "Wczytaj ze slotu Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Wczytaj plik map" @@ -6240,7 +6280,7 @@ msgstr "Wczytaj plik map" msgid "Load..." msgstr "Wczytaj..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6255,7 +6295,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6284,7 +6324,7 @@ msgstr "Typy logów" msgid "Logger Outputs" msgstr "Logger Outputs" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6295,7 +6335,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6324,7 +6364,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6332,7 +6372,7 @@ msgstr "" msgid "Main Stick" msgstr "Główna gałka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6371,11 +6411,11 @@ msgstr "" msgid "Match Found" msgstr "Trafienie znalezione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6409,16 +6449,6 @@ msgstr "Karta pamięci" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6427,19 +6457,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6465,15 +6495,15 @@ msgstr "Różne" msgid "Misc Settings" msgstr "Ustawienia różne" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6496,8 +6526,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6526,20 +6556,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6553,14 +6583,20 @@ msgstr "" msgid "Movie" msgstr "Film" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6591,11 +6627,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6616,8 +6652,8 @@ msgstr "Nazwa:" msgid "Native (640x528)" msgstr "Natywna (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6637,11 +6673,11 @@ msgstr "" msgid "Netherlands" msgstr "Holandia" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "NetPlay zdesynchronizował się. Nie ma sposobu na powrócenie z tego." @@ -6654,7 +6690,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6662,7 +6698,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6675,7 +6711,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6687,7 +6723,7 @@ msgstr "Nowa tożsamość została wygenerowana." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6744,13 +6780,13 @@ msgstr "Brak trafień" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Brak opisu" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6770,10 +6806,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Nie wykryto żadnych problemów" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6801,7 +6841,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6821,10 +6861,6 @@ msgstr "Brak" msgid "North America" msgstr "Ameryka Północna" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nieokreślona" @@ -6833,7 +6869,7 @@ msgstr "Nieokreślona" msgid "Not all players have the game. Do you really want to start?" msgstr "Nie wszyscy gracze mają tę grę. Czy na pewno chcesz rozpocząć?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6841,7 +6877,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6849,6 +6885,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6901,7 +6941,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6932,7 +6972,7 @@ msgstr "" msgid "On" msgstr "Włączone" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6940,13 +6980,13 @@ msgstr "" msgid "Online &Documentation" msgstr "&Dokumentacja online" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6959,7 +6999,7 @@ msgstr "" msgid "Open" msgstr "Otwórz" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6971,7 +7011,7 @@ msgstr "" msgid "Open FIFO log" msgstr "Otwórz log FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6979,7 +7019,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7167,7 +7207,7 @@ msgstr "Wstrzymaj" msgid "Pause at End of Movie" msgstr "Wstrzymaj na końcu filmu" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Wstrzymaj gdy okno nieaktywne" @@ -7194,7 +7234,7 @@ msgstr "Oświetlenie na piksel" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7212,7 +7252,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7228,7 +7268,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platforma" @@ -7274,7 +7314,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7283,7 +7323,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7303,15 +7343,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "Wstępnie pobieraj dostosowane tekstury" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7336,7 +7376,7 @@ msgstr "Naciśnij przycisk Sync" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7417,7 +7457,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7443,8 +7483,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pytanie" @@ -7472,7 +7512,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7617,12 +7657,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7652,12 +7692,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Usuń" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7665,11 +7705,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7685,7 +7725,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7764,7 +7804,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Wymagane ponowne uruchomienie" @@ -7776,7 +7816,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Ponów" @@ -7876,7 +7916,7 @@ msgstr "Wibracje" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7908,7 +7948,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7937,7 +7977,7 @@ msgstr "Bezpieczny" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7947,9 +7987,9 @@ msgstr "Zapisz" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7970,11 +8010,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7986,7 +8026,7 @@ msgstr "Zapisz najstarszy stan" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8072,26 +8112,26 @@ msgstr "" msgid "Save as..." msgstr "Zapisz jako..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8111,11 +8151,11 @@ msgstr "Zapisz..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8168,7 +8208,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8200,20 +8240,20 @@ msgstr "Wybierz" msgid "Select Dump Path" msgstr "Wybierz ścieżkę zrzutu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8293,7 +8333,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Wybierz ścieżkę" @@ -8301,9 +8341,9 @@ msgstr "Wybierz ścieżkę" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Wybierz plik" @@ -8323,7 +8363,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8331,11 +8371,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8343,12 +8383,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wybierz plik do zapisu" @@ -8370,9 +8410,9 @@ msgstr "Wybrany profil kontrolera nie istnieje" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8384,13 +8424,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8417,7 +8457,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8426,7 +8466,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8440,7 +8480,7 @@ msgstr "" msgid "Send" msgstr "Wyślij" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Pozycja Sensor Baru:" @@ -8460,7 +8500,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8481,15 +8521,15 @@ msgstr "Ustaw PC" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8574,7 +8614,7 @@ msgstr "Pokaż &log" msgid "Show &Toolbar" msgstr "Pokaż pasek &narzędzi" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Pokazuj aktywny tytuł w tytule okna" @@ -8590,7 +8630,7 @@ msgstr "Pokaż Australię" msgid "Show Current Game on Discord" msgstr "Pokazuj aktualną grę w programie Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8662,7 +8702,7 @@ msgstr "Pokazuj ping NetPlay" msgid "Show Netherlands" msgstr "Pokaż Holandię" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8732,10 +8772,23 @@ msgstr "Pokaż świat" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8750,20 +8803,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8850,7 +8903,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Pomijaj dostęp EFB z CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Pomijaj menu główne" @@ -8876,7 +8929,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8884,7 +8937,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8938,7 +8991,7 @@ msgid "Spain" msgstr "Hiszpania" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Hiszpański" @@ -8947,7 +9000,7 @@ msgstr "Hiszpański" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Poziom głośnika:" @@ -9029,11 +9082,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9196,10 +9249,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Powodzenie" @@ -9217,16 +9270,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "Pomyślnie usunięto '%1'." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Pliki zapisów zostały pomyślnie wyeksportowane" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Certyfikaty z NAND zostały pomyślnie wyodrębnione" @@ -9238,16 +9291,16 @@ msgstr "Plik został pomyślnie wyodrębniony." msgid "Successfully extracted system data." msgstr "Dane systemowe zostały pomyślnie wyodrębnione." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Ten tytuł został pomyślnie zainstalowany do NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Usunięcie tego tytułu z NAND zakończono pomyślnie." @@ -9255,7 +9308,7 @@ msgstr "Usunięcie tego tytułu z NAND zakończono pomyślnie." msgid "Support" msgstr "Wsparcie" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9288,11 +9341,11 @@ msgstr "" msgid "Swing" msgstr "Zamach" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9369,7 +9422,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Język systemu:" @@ -9384,8 +9437,8 @@ msgstr "Wejście TAS" msgid "TAS Tools" msgstr "Narzędzia TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9454,13 +9507,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND został naprawiony." @@ -9506,11 +9559,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Dysk, który miał być włożony nie mógł zostać odnaleziony." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9540,11 +9593,11 @@ msgstr "Wprowadzony PID jest nieprawidłowy." msgid "The entered VID is invalid." msgstr "Wprowadzony VID jest nieprawidłowy." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9568,6 +9621,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9664,7 +9724,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Wynikowy odszyfrowany kod AR nie zawiera żadnych linii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9698,7 +9758,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9753,7 +9813,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Nie ma nic do cofnięcia!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9789,11 +9849,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "To urządzenie USB jest już na białej liście." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9806,7 +9866,7 @@ msgstr "" "Replay sam w sobie." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "To nie może być cofnięte!" @@ -9909,7 +9969,7 @@ msgstr "" "To oprogramowanie nie powinno być używane do grania w tytuły, których nie " "posiadasz." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9922,7 +9982,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9930,7 +9990,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9993,7 +10053,7 @@ msgstr "Przechylenie" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10035,7 +10095,7 @@ msgid "Toggle Aspect Ratio" msgstr "Przełącz proporcje obrazu" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Przełącz punkt przerwania" @@ -10095,7 +10155,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Góra" @@ -10147,8 +10207,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chiński tradycyjny" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10156,7 +10216,7 @@ msgstr "" msgid "Traversal Server" msgstr "Serwer przejściowy" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10180,7 +10240,7 @@ msgid "Triggers" msgstr "Spusty" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10214,14 +10274,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10229,7 +10289,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10238,7 +10298,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10290,11 +10350,11 @@ msgstr "Cofnij zapisywanie stanu" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Odinstaluj z NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10311,11 +10371,11 @@ msgstr "Stany Zjednoczone" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Nieznany" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10359,11 +10419,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10419,8 +10479,8 @@ msgstr "" msgid "Up" msgstr "Góra" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Aktualizuj" @@ -10480,11 +10540,11 @@ msgstr "Wiilot trzymany pionowo" msgid "Usage Statistics Reporting Settings" msgstr "Ustawienia raportowania statystyk użytkowania" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Użyj wbudowanej bazy danych nazw gier" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Używaj dostosowanego stylu użytkownika" @@ -10496,7 +10556,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Użyj trybu PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Użyj Panic Handlers" @@ -10556,11 +10616,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Interfejs użytkownika" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10583,14 +10643,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10821,7 +10881,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Ostrzeżenie" @@ -10838,28 +10898,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10914,7 +10974,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Zezwolone urządzenia przejściowe USB" @@ -10960,7 +11020,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Ustawienia Wii Pilota" @@ -10988,7 +11048,7 @@ msgstr "Wii i Wiilot" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Pliki zapisu Wii (*.bin);Wszystkie pliki (*)" @@ -10996,7 +11056,7 @@ msgstr "Pliki zapisu Wii (*.bin);Wszystkie pliki (*)" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11053,8 +11113,20 @@ msgstr "" msgid "Write to Window" msgstr "Wpisz do okna" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11121,14 +11193,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11166,7 +11230,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Musisz ponownie uruchomić program Dolphin, aby zastosować zmianę." @@ -11236,12 +11300,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11302,13 +11366,13 @@ msgstr "" msgid "none" msgstr "żadna" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11345,7 +11409,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11368,7 +11432,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 948d15a1e1..3189a5ac4d 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -18,7 +18,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" #: Source/Core/DiscIO/VolumeVerifier.cpp:1402 msgid "" @@ -36,7 +37,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +166,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +215,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +278,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +370,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +468,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +525,7 @@ msgstr "&Pausa" msgid "&Play" msgstr "&Começar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Propriedades" @@ -574,7 +575,7 @@ msgstr "" msgid "&Stop" msgstr "&Parar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +605,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -612,15 +613,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +658,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +850,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +865,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +880,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1023,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1035,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1065,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1093,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Adicionar..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1183,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1199,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1250,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1272,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1328,7 @@ msgstr "Anti-Serrilhamento" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1354,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1366,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1382,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1399,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1460,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1491,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1503,7 @@ msgstr "" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1556,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1591,7 @@ msgstr "Definições Básicas" msgid "Bass" msgstr "Baixo" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1623,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1665,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1677,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Inferior" @@ -1681,7 +1704,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1738,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1835,7 +1858,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1866,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1900,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1926,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1919,7 +1942,7 @@ msgstr "Mudar Disco" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1994,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2008,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Escolha um ficheiro para abrir" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2045,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Limpar" @@ -2072,7 +2098,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2123,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2175,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmar Ao Parar" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2246,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2354,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2384,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2372,19 +2398,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2418,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Cópia Falhou" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2466,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2517,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2529,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2591,7 @@ msgstr "Desvanecimento cruzado" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2694,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2812,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Apagar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2842,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2865,7 @@ msgstr "" msgid "Detect" msgstr "Detectar" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2886,7 @@ msgstr "Dispositivo" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Definições de Dispositivo" @@ -2911,8 +2933,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3027,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Deseja parar a emulação actual?" @@ -3040,9 +3062,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3076,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS filmes (*.dtm)" @@ -3070,7 +3092,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3110,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3175,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3355,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holandês" @@ -3406,7 +3428,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Thread de Emulador já em execução" @@ -3438,8 +3460,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3511,7 @@ msgid "Enable Progressive Scan" msgstr "Activar Progressive Scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3601,7 +3623,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3614,7 +3636,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Inglês" @@ -3647,7 +3669,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3659,7 +3681,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3678,46 +3700,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erro" @@ -3740,11 +3763,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3764,7 +3787,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3912,10 +3935,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Exportar Todos os Jogos Guardados Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3927,19 +3950,19 @@ msgstr "Exportar Gravação" msgid "Export Recording..." msgstr "Exportar Gravação..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3951,7 +3974,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4025,7 +4048,7 @@ msgstr "Reprodutor FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4035,19 +4058,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4077,11 +4100,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4097,16 +4120,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4129,29 +4152,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4171,19 +4194,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4195,7 +4218,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4209,13 +4232,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4237,11 +4260,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4250,7 +4273,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4270,25 +4293,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4299,7 +4322,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4319,19 +4342,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4355,9 +4378,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4365,21 +4388,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4404,7 +4427,7 @@ msgstr "Rápido" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4419,7 +4442,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4433,19 +4456,19 @@ msgstr "" msgid "File Info" msgstr "Informação de Ficheiro" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4472,11 +4495,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4526,7 +4549,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Corrigir Checksums" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4536,7 +4559,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4674,11 +4697,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4716,7 +4739,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francês" @@ -4745,7 +4768,7 @@ msgstr "" msgid "FullScr" msgstr "Ecrã Inteiro" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4777,7 +4800,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4789,11 +4812,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4896,11 +4919,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4922,7 +4945,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4936,11 +4959,25 @@ msgstr "ID do Jogo:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "O jogo já está a correr!" @@ -4949,6 +4986,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Definições específicas por jogo" @@ -4989,12 +5030,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5027,7 +5068,7 @@ msgstr "Geral" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5035,16 +5076,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Alemão" @@ -5053,12 +5094,12 @@ msgstr "Alemão" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5228,15 +5269,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5254,7 +5295,7 @@ msgstr "" msgid "Hotkeys" msgstr "Teclas de Atalho" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5299,7 +5340,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Definições IPL" @@ -5308,7 +5349,7 @@ msgid "IR" msgstr "IV" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilidade de Infra Vermelhos" @@ -5345,7 +5386,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5388,7 +5429,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignorar Mudanças de Formato" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5425,14 +5466,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5440,11 +5481,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5516,21 +5557,21 @@ msgid "Info" msgstr "Informação" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informação" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Entrada" @@ -5575,7 +5616,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5591,7 +5632,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5638,7 +5679,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Resolução Interna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5650,7 +5691,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5667,7 +5708,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5675,7 +5716,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5683,7 +5724,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5692,7 +5733,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5724,7 +5765,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5733,7 +5774,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiano" @@ -5837,7 +5878,7 @@ msgstr "Japonês" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5905,7 +5946,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6003,7 +6044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Carregar" @@ -6138,7 +6179,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6150,8 +6191,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6159,7 +6200,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6174,7 +6215,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6203,7 +6244,7 @@ msgstr "Tipos de Relatório" msgid "Logger Outputs" msgstr "Saídas de Gerador de Relatórios" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6214,7 +6255,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6243,7 +6284,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6251,7 +6292,7 @@ msgstr "" msgid "Main Stick" msgstr "Stick Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6290,11 +6331,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6328,16 +6369,6 @@ msgstr "Cartão de memória" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6346,19 +6377,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6384,15 +6415,15 @@ msgstr "Diversos" msgid "Misc Settings" msgstr "Configurações Diversas" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6415,8 +6446,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6445,20 +6476,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6472,14 +6503,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6510,11 +6547,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6535,8 +6572,8 @@ msgstr "Nome:" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6556,11 +6593,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6573,7 +6610,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6581,7 +6618,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6594,7 +6631,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6606,7 +6643,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6663,13 +6700,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Nenhuma descrição disponível" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6689,10 +6726,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6720,7 +6761,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6740,10 +6781,6 @@ msgstr "Nenhum" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Não definido" @@ -6752,7 +6789,7 @@ msgstr "Não definido" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6760,7 +6797,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6768,6 +6805,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6820,7 +6861,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6851,7 +6892,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6859,13 +6900,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Online e documentação" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6876,7 +6917,7 @@ msgstr "" msgid "Open" msgstr "Abrir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6888,7 +6929,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6896,7 +6937,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7084,7 +7125,7 @@ msgstr "Pausa" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7111,7 +7152,7 @@ msgstr "Iluminação por Pixel" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7129,7 +7170,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7145,7 +7186,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7191,7 +7232,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7200,7 +7241,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7220,15 +7261,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7251,7 +7292,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7332,7 +7373,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7358,8 +7399,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Questão" @@ -7387,7 +7428,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7532,12 +7573,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7567,12 +7608,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Remover" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7580,11 +7621,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7600,7 +7641,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7679,7 +7720,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7691,7 +7732,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7791,7 +7832,7 @@ msgstr "Vibração" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7823,7 +7864,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7852,7 +7893,7 @@ msgstr "Seguro" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7862,9 +7903,9 @@ msgstr "Guardar" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7885,11 +7926,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7901,7 +7942,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7987,26 +8028,26 @@ msgstr "" msgid "Save as..." msgstr "Guardar como..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8026,11 +8067,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8083,7 +8124,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8115,20 +8156,20 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8208,7 +8249,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8216,9 +8257,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8238,7 +8279,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8246,11 +8287,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8258,12 +8299,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccione o ficheiro de jogo guardado" @@ -8285,9 +8326,9 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8299,13 +8340,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8332,7 +8373,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8341,7 +8382,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8355,7 +8396,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Posição da Barra de Sensor:" @@ -8375,7 +8416,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8396,15 +8437,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8484,7 +8525,7 @@ msgstr "Mostrar &Relatório" msgid "Show &Toolbar" msgstr "Mostrar Barra de Ferramen&tas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8500,7 +8541,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8572,7 +8613,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8642,10 +8683,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8660,20 +8714,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8760,7 +8814,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Ignorar o acesso do EFB a partir do CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8786,7 +8840,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8794,7 +8848,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8846,7 +8900,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Espanhol" @@ -8855,7 +8909,7 @@ msgstr "Espanhol" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volume do Altifalante:" @@ -8937,11 +8991,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9104,10 +9158,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9125,16 +9179,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9146,16 +9200,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9163,7 +9217,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9196,11 +9250,11 @@ msgstr "" msgid "Swing" msgstr "Balanço" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9277,7 +9331,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Idioma do sistema:" @@ -9292,8 +9346,8 @@ msgstr "Entrada TAS" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9362,13 +9416,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9414,11 +9468,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9448,11 +9502,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9476,6 +9530,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9572,7 +9633,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "O resultado do código AR desencriptado não contém quaisquer linhas." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9606,7 +9667,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9661,7 +9722,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9697,11 +9758,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9714,7 +9775,7 @@ msgstr "" "Action Replay" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9811,7 +9872,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9824,7 +9885,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9832,7 +9893,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9892,7 +9953,7 @@ msgstr "Tilt" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9934,7 +9995,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9994,7 +10055,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Topo" @@ -10046,8 +10107,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chinês Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10055,7 +10116,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10079,7 +10140,7 @@ msgid "Triggers" msgstr "Gatilhos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10113,14 +10174,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10128,7 +10189,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10137,7 +10198,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10189,11 +10250,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10210,11 +10271,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10258,11 +10319,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10318,8 +10379,8 @@ msgstr "" msgid "Up" msgstr "Cima" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Actualizar" @@ -10379,11 +10440,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10395,7 +10456,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Usar Manipuladores de Pânico" @@ -10455,11 +10516,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10482,14 +10543,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10720,7 +10781,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Aviso" @@ -10737,28 +10798,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10813,7 +10874,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10859,7 +10920,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10887,7 +10948,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10895,7 +10956,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10952,8 +11013,20 @@ msgstr "" msgid "Write to Window" msgstr "Escrever para a Janela" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11020,14 +11093,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11065,7 +11130,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Tem que reiniciar o Dolphin para que as alterações sejam efectuadas" @@ -11135,12 +11200,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11201,13 +11266,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11244,7 +11309,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11267,7 +11332,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 080f0c2269..7f289fa811 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,16 +46,17 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Runo , 2013\n" +"Last-Translator: Mateus B. Cassiano , 2017,2021-2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" "emu/language/pt_BR/)\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" #: Source/Core/DiscIO/VolumeVerifier.cpp:1402 msgid "" @@ -81,7 +82,7 @@ msgstr "" "Como esse software do Wii não é destinado a consoles vendidos no varejo, o " "Dolphin não pode verificar se ele não foi adulterado." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -226,19 +227,19 @@ msgstr "" "%2 objeto(s)\n" "Quadro Atual: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 entrou" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 saiu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 não é uma ROM válida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 assumiu controle do golfe" @@ -275,7 +276,7 @@ msgstr "%1% (Velocidade Normal)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -338,7 +339,7 @@ msgstr "&4x" msgid "&About" msgstr "&Sobre" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Adicionar Ponto de Interrupção" @@ -430,7 +431,7 @@ msgstr "E&xcluir" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Apagar Observação" @@ -528,7 +529,7 @@ msgstr "&Mistura do Interframe" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Idioma:" @@ -585,7 +586,7 @@ msgstr "P&ausar" msgid "&Play" msgstr "Inici&ar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Propriedades" @@ -635,7 +636,7 @@ msgstr "&Limite de Velocidade:" msgid "&Stop" msgstr "&Parar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -665,7 +666,7 @@ msgstr "A&ssistir" msgid "&Website" msgstr "&Website" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -673,15 +674,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Sim" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1\" não foi encontrado, nenhum nome de símbolo foi gerado" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' não foi encontrado, ao invés disto escaneando por funções comuns" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Nenhum)" @@ -718,9 +719,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -910,7 +911,7 @@ msgstr "< Menor que" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -928,8 +929,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Maior que" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Uma sessão do NetPlay já está em progresso!" @@ -949,17 +950,17 @@ msgstr "" "\n" "Instalar este WAD substituirá permanentemente a versão anterior. Continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Um disco já está prestes a ser inserido." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Não é possível carregar um estado salvo sem especificar um jogo para " "executar." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1129,7 +1130,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "Ativar Chat do NetPlay" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Ativo" @@ -1141,7 +1142,7 @@ msgstr "Fila do thread ativo" msgid "Active threads" msgstr "Threads ativos" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adaptador" @@ -1171,8 +1172,8 @@ msgstr "Adicionar Novo Servidor DSU" msgid "Add New USB Device" msgstr "Adicionar Novo Dispositivo USB" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Criar Atalho na Área de Trabalho" @@ -1199,18 +1200,18 @@ msgstr "Adicionar ponto de interrupção da memória" msgid "Add to &watch" msgstr "Adicionar a &observação" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Adicionar a observação" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Adicionar..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1309,10 +1310,15 @@ msgstr "África" msgid "Aligned to data type length" msgstr "Alinhado ao comprimento do tipo de dados" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1320,20 +1326,37 @@ msgid "All Files" msgstr "Todos os arquivos" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Todos os arquivos (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos os arquivos do GC/Wii" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos os Estados Salvos (*.sav *.s##);;Todos os arquivos (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Todos os dispositivos" @@ -1354,7 +1377,7 @@ msgstr "Todos os saves dos jogadores sincronizados." msgid "Allow Mismatched Region Settings" msgstr "Permitir Configurações de Região Incompatíveis" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Permitir Envio de Estatísticas de Uso" @@ -1378,7 +1401,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Fontes de Entrada Adicionais" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Sempre" @@ -1434,7 +1457,7 @@ msgstr "Anti-Aliasing:" msgid "Any Region" msgstr "Qualquer Região" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Anexar assinatura a" @@ -1462,7 +1485,7 @@ msgstr "Data do Apploader:" msgid "Apply" msgstr "Aplicar" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Aplicar arquivo de assinatura" @@ -1474,7 +1497,7 @@ msgstr "Detecção de Mipmaps Arbitrários" msgid "Are you sure that you want to delete '%1'?" msgstr "Tem certeza de que deseja excluir o perfil \"%1\"?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Tem certeza de que deseja excluir este arquivo?" @@ -1490,7 +1513,7 @@ msgstr "Você tem certeza que você quer sair do NetPlay?" msgid "Are you sure?" msgstr "Tem certeza?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Proporção de Tela" @@ -1507,7 +1530,7 @@ msgstr "Definir Porta dos Controles" msgid "Assign Controllers" msgstr "Designar Controles" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1574,11 +1597,11 @@ msgstr "Auto-Ajustar o Tamanho da Janela" msgid "Auto-Hide" msgstr "Ocultar Automaticamente" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Auto-detectar os módulos do RSO?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1611,7 +1634,7 @@ msgstr "" "válido do Nintendo GameCube deve ser usado. Gere um novo endereço MAC " "iniciando com 00:09:bf ou 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1623,7 +1646,7 @@ msgstr "Registrador BP" msgid "Back Chain" msgstr "Cadeia Traseira" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Backend" @@ -1676,7 +1699,7 @@ msgstr "Deslocamento ruim fornecido." msgid "Bad value provided." msgstr "Valor ruim fornecido." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1711,7 +1734,7 @@ msgstr "Configurações Básicas" msgid "Bass" msgstr "Baixo" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" "O modo linha de comando não pode ser usado sem especificar um jogo para " @@ -1745,7 +1768,7 @@ msgstr "SSL Binário (gravação)" msgid "Bitrate (kbps):" msgstr "Taxa de Bits (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1790,11 +1813,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Do Início até a Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Arquivo de backup da NAND do BootMii (*.bin);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Arquivo de chaves do BootMii (*.bin);;Todos os arquivos (*)" @@ -1802,7 +1825,7 @@ msgstr "Arquivo de chaves do BootMii (*.bin);;Todos os arquivos (*)" msgid "Borderless Fullscreen" msgstr "Tela Cheia Sem Bordas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Embaixo" @@ -1829,7 +1852,7 @@ msgstr "Pontos de Interrupção" msgid "Breakpoint encountered! Step out aborted." msgstr "Ponto de interrupção encontrado! Saída abortada." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Pontos de Interrupção" @@ -1863,12 +1886,12 @@ msgstr "Navegar pelas &Sessões do NetPlay..." msgid "Buffer Size:" msgstr "Tamanho do Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Tamanho do buffer alterado para %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffer:" @@ -1995,7 +2018,7 @@ msgstr "Câmera 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Campo de visão da câmera (afeta a sensibilidade da pontaria)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "Só é possível gerar códigos AR para valores na memória virtual." @@ -2004,8 +2027,8 @@ msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" "Não foi possível encontrar o Wii Remote pelo identificador de conexão {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Não é possível iniciar uma sessão do NetPlay enquanto um jogo está em " @@ -2013,7 +2036,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2042,7 +2065,7 @@ msgstr "Não consegue comparar com o último valor na primeira busca." msgid "Cannot find the GC IPL." msgstr "Não foi possível encontrar o IPL do GameCube." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "Não é possível gerar um código AR para este endereço." @@ -2069,7 +2092,7 @@ msgstr "Centro" msgid "Center and Calibrate" msgstr "Centralizar e Calibrar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Trocar &Disco" @@ -2085,7 +2108,7 @@ msgstr "Trocar Disco" msgid "Change Discs Automatically" msgstr "Trocar Discos Automaticamente" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Trocar o disco para {0}" @@ -2146,7 +2169,7 @@ msgstr "Monitorar Alterações na Lista de Jogos em Segundo Plano" msgid "Check for updates" msgstr "Verificar atualizações" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2162,16 +2185,19 @@ msgstr "Checksum" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Abrir" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Escolha a prioridade do arquivo de entrada dos dados" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Escolha o arquivo secundário de entrada dos dados" @@ -2196,7 +2222,7 @@ msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Limpar" @@ -2239,7 +2265,7 @@ msgstr "Ajuda da Ferramenta de Diferenciação do Código" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:52 msgid "Code did not get executed" -msgstr "O código não foi executado." +msgstr "O código não foi executado" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:53 msgid "Code has been executed" @@ -2249,7 +2275,7 @@ msgstr "O código foi executado" msgid "Code:" msgstr "Código:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Códigos recebidos!" @@ -2274,7 +2300,7 @@ msgstr "Compilar Shaders Antes de Iniciar" msgid "Compiling Shaders" msgstr "Compilando Shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2326,23 +2352,23 @@ msgstr "Configurar a Saída dos Dados" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmar" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Confirmar mudança de backend" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmar ao Parar" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2397,7 +2423,7 @@ msgstr "Conectar a internet e realizar uma atualização online do sistema?" msgid "Connected" msgstr "Conectado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Conectando" @@ -2523,11 +2549,11 @@ msgstr "Convergência:" msgid "Convert" msgstr "Converter" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converter Arquivo..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converter Arquivos Selecionados..." @@ -2558,9 +2584,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Copiar" @@ -2572,39 +2598,35 @@ msgstr "Copiar &função" msgid "Copy &hex" msgstr "Copiar &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Copiar Endereço" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Falha ao Copiar" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Copiar Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Valor da Cópia" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "Copiar linha de &código" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Falha ao copiar" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "Copiar o end&ereço do alvo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Copiar para A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Copiar para B" @@ -2648,7 +2670,7 @@ msgstr "" "Não foi possível baixar as informações de atualização dos servidores da " "Nintendo. Por favor, verifique sua conexão com a Internet e tente novamente." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2659,7 +2681,7 @@ msgstr "" "\n" "A emulação do console será interrompida." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2723,7 +2745,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Não foi possível reconhecer o arquivo {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2743,15 +2765,15 @@ msgstr "" "Se sim, então você pode precisar reespecificar o local do seu arquivo de " "Memory Card nas configurações." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Não foi possível encontrar o servidor central" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Não foi possível abrir o arquivo." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Não foi possível ler o arquivo." @@ -2814,7 +2836,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "Região Atual" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Valor atual" @@ -2923,23 +2945,23 @@ msgstr "Sincronizando Dados" msgid "Data Type" msgstr "Tipo dos Dados" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Os dados na área do arquivo que não deveriam ser usados." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Dados em formato não reconhecido ou corrompido." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Inconsistência dos dados no GCMemcardManager, abortando ação." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Dados recebidos!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Arquivos do Datel MaxDrive/Pro" @@ -3047,21 +3069,21 @@ msgstr "" "desativada.
" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Excluir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Excluir Arquivo..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Excluir Arquivos Selecionados..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Excluir o arquivo existente '{0}'?" @@ -3077,10 +3099,10 @@ msgstr "Porcentagem da Profundidade:" msgid "Depth:" msgstr "Profundidade:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3100,7 +3122,7 @@ msgstr "Separado" msgid "Detect" msgstr "Detectar" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Detectando os Módulos do RSO" @@ -3121,7 +3143,7 @@ msgstr "Dispositivo" msgid "Device PID (e.g., 0305)" msgstr "PID do Dispositivo (ex.: 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Configurações do Dispositivo" @@ -3177,8 +3199,8 @@ msgstr "" msgid "Dis&connected" msgstr "Des&conectado" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Desativar" @@ -3289,27 +3311,27 @@ msgstr "Distância" msgid "Distance of travel from neutral position." msgstr "Distância de viagem da posição neutra." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Você autoriza o Dolphin a reportar informações pros desenvolvedores do " "Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Você quer adicionar '%1' a lista de caminhos dos jogos?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Você quer limpar a lista dos nomes do símbolos?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Você quer apagar o(s) %n arquivo(s) do(s) save(s) selecionado(s)?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Deseja parar a emulação atual?" @@ -3326,9 +3348,9 @@ msgstr "Registro do FIFO no Dolphin (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Pré-definição do Mod do Jogo no Dolphin" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Arquivo do Mapa do Dolphin (*.map)" @@ -3340,8 +3362,8 @@ msgstr "Arquivo CSV de Assinatura do Dolphin" msgid "Dolphin Signature File" msgstr "Arquivo de Assinatura do Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Gravações TAS do Dolphin (*.dtm)" @@ -3364,7 +3386,7 @@ msgstr "" "\n" "Deseja continuar assim mesmo?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3385,7 +3407,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "O Dolphin é um emulador de GameCube e Wii grátis e de código fonte aberto." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Versão do Dolphin é muito antiga para o servidor traversal" @@ -3454,7 +3476,7 @@ msgstr "Baixar Códigos" msgid "Download Codes from the WiiRD Database" msgstr "Baixar Códigos da Base de Dados do WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Mostrar Capas de Jogos Baixadas do GameTDB.com no Modo Grade" @@ -3654,7 +3676,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Duração do Soltar do Botão Turbo (frames):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Holandês" @@ -3735,7 +3757,7 @@ msgstr "Frame Buffer Embutido (EFB)" msgid "Empty" msgstr "Vazio" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Thread de Emulação já está em execução" @@ -3770,8 +3792,8 @@ msgstr "A emulação deve ser iniciada pra gravar." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Ativar" @@ -3821,7 +3843,7 @@ msgid "Enable Progressive Scan" msgstr "Ativar Varredura Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Ativar Vibração" @@ -3954,10 +3976,10 @@ msgid "" "enables debug symbols for the compiled shaders.

If " "unsure, leave this unchecked." msgstr "" -"Ativa a validação das chamadas da API feitas pelo backend de vídeo a qual " -"pode ajudar no debug de problemas gráficos. Nos backends do D3D e do Vulkan " -"isto também ativa os símbolos do debug pros shaders compilados." -"

Se não tiver certeza deixe isto desmarcado.
Nos backends Vulkan e " +"Direct3D, isso também gera símbolos de depuração para os shaders compilados." +"

Na dúvida, mantenha essa opção desativada." #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 @@ -3973,7 +3995,7 @@ msgstr "" msgid "Encoding" msgstr "Codificação" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3990,7 +4012,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet Não Inicializou" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Inglês" @@ -4023,7 +4045,7 @@ msgstr "Informe o endereço MAC do Adaptador de Banda Larga:" msgid "Enter password" msgstr "Inserir senha" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Insira o endereço do módulo do RSO:" @@ -4035,7 +4057,7 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4054,46 +4076,47 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erro" @@ -4114,11 +4137,11 @@ msgstr "Erro ao obter a lista da sessão: %1" msgid "Error occurred while loading some texture packs" msgstr "Um erro ocorreu enquanto carregava alguns pacotes de texturas" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Erro ao processar os códigos." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Erro ao processar os dados." @@ -4138,7 +4161,7 @@ msgstr "Erro ao sincronizar os dados do save!" msgid "Error writing file: {0}" msgstr "Erro ao gravar o arquivo: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4309,10 +4332,10 @@ msgstr "Experimental" msgid "Export All Wii Saves" msgstr "Exportar Todos os Dados Salvos do Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Falha ao Exportar" @@ -4324,19 +4347,19 @@ msgstr "Exportar Gravação" msgid "Export Recording..." msgstr "Exportar Gravação..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Exportar Arquivo de Jogo Salvo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Exportar Arquivos de Jogos Salvos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Exportar Dados Salvos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Exportar Dados Salvos" @@ -4348,7 +4371,7 @@ msgstr "Exportar como .&gcs..." msgid "Export as .&sav..." msgstr "Exportar como .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4422,7 +4445,7 @@ msgstr "FIFO Player" msgid "Failed loading XML." msgstr "Falha ao carregar o XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4434,20 +4457,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Falha ao adicionar essa sessão ao indexador do NetPlay: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Falhou em anexar ao arquivo de assinatura '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -"Falha ao solicitar acesso à interface para o redirecionamento Bluetooth" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Falha na conexão com Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Falha na conexão com o servidor: %1" @@ -4481,11 +4503,11 @@ msgstr "" "Falha ao excluir Memory Card do NetPlay. Verifique suas permissões de " "gravação." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Falha ao excluir o arquivo selecionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "Falha ao descarregar o driver do kernel para o redirecionamento Bluetooth: " @@ -4503,16 +4525,16 @@ msgstr "Falha no despejo de %1: Não foi possível abrir o arquivo" msgid "Failed to dump %1: Failed to write to file" msgstr "Falha no despejo de %1: Falha ao escrever no arquivo" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Falha ao exportar %n de %1 arquivo(s) de jogo(s) salvo(s)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Falha ao exportar os seguintes dados salvos:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Falha ao extrair os certificados da NAND" @@ -4538,18 +4560,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Falha ao localizar um ou mais símbolos do Direct3D" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Falha ao importar \"%1\"." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Falha ao importar o arquivo de dados salvos. Por favor, inicie o jogo " "correspondente pelo menos uma vez, depois tente novamente." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4557,7 +4579,7 @@ msgstr "" "Falha ao importar o arquivo de dados salvos. O arquivo fornecido pode estar " "corrompido ou não contém dados salvos válidos do Wii." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4568,7 +4590,7 @@ msgstr "" "NAND (Ferramentas -> Gerenciar NAND -> Verificar NAND...) , então importe os " "dados salvos novamente." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Falha ao inicializar o núcleo" @@ -4591,12 +4613,12 @@ msgstr "Falha ao inicializar as classes do renderizador" msgid "Failed to install pack: %1" msgstr "Falha ao instalar pacote: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Falha ao instalar esse software na NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4604,8 +4626,8 @@ msgstr "" "Falha ao acessar a porta %1. Existe outra instância do servidor NetPlay em " "execução?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Falhou em carregar o módulo do RSO no %1" @@ -4617,7 +4639,7 @@ msgstr "Falha ao carregar d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Falha ao carregar dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Falhou em carregar o arquivo do mapa '%1'" @@ -4633,13 +4655,13 @@ msgstr "" "Falha ao carregar {0}. Se você estiver usando o Windows 7, tente instalar o " "pacote de atualização KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Falha ao abrir '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Falha ao acessar o dispositivo Bluetooth: {0}" @@ -4664,11 +4686,11 @@ msgstr "" "Falha ao abrir arquivo em um editor externo.\n" "Verifique se há um aplicativo registrado para abrir arquivos INI." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Falha ao abrir o arquivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Falha ao abrir o servidor" @@ -4677,7 +4699,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Falha ao abrir o arquivo de entrada \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4700,27 +4722,27 @@ msgstr "Falhou em analisar o valor dado no tipo de dado alvo." msgid "Failed to read DFF file." msgstr "Falha na leitura do arquivo DFF." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Falha ao ler do arquivo." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Falha na leitura do arquivo de entrada \"{0}\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" "Falha ao ler o(s) arquivo(s) de jogo(s) salvo(s) selecionado(s) do Memory " "Card." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Falha ao ler {0}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Falha ao excluir arquivo." @@ -4734,7 +4756,7 @@ msgstr "" "\n" "Deseja convertê-lo sem remover os dados não utilizados?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Falha ao remover esse software da NAND." @@ -4760,19 +4782,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Falha ao salvar o log FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Falhou em salvar o mapa dos códigos no caminho '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Falhou em salvar o arquivo da assinatura '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Falhou em salvar o mapa dos símbolos no caminho '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Falhou em salvar o arquivo da assinatura '%1'" @@ -4796,9 +4818,9 @@ msgstr "Falha ao salvar dados salvos do Wii." msgid "Failed to write config file!" msgstr "Falha ao salvar o arquivo de configuração!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Falha ao salvar o Memory Card modificado no disco." @@ -4806,12 +4828,12 @@ msgstr "Falha ao salvar o Memory Card modificado no disco." msgid "Failed to write redirected save." msgstr "Falha ao gravar os dados salvos redirecionados." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Falha ao salvar arquivo de jogo salvo no disco." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4819,10 +4841,10 @@ msgstr "" "Falha ao salvar o arquivo de saída \"{0}\".\n" "Verifique se você tem espaço livre suficiente na unidade de destino." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Falha" @@ -4847,7 +4869,7 @@ msgstr "Rápido" msgid "Fast Depth Calculation" msgstr "Cálculo Rápido de Profundidade" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4864,7 +4886,7 @@ msgstr "Campo de Visualização" msgid "File Details" msgstr "Detalhes do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4878,19 +4900,19 @@ msgstr "Formato do Arquivo:" msgid "File Info" msgstr "Informações do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nome do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Local" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Tamanho" @@ -4919,13 +4941,13 @@ msgstr "" "Os arquivos especificados no arquivo M3U \"{0}\" não foram encontrados:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "O tamanho do arquivo não combina com qualquer tamanho conhecido do Memory " "Card do GameCube." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" "O tamanho de arquivo no cabeçalho não corresponde com o tamanho real do " @@ -4984,7 +5006,7 @@ msgstr "Primeira Pessoa" msgid "Fix Checksums" msgstr "Corrigir checksums" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Falhou em Consertar os Checksums" @@ -4994,7 +5016,7 @@ msgstr "Alinhamento Fixo" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Bandeiras" @@ -5151,11 +5173,11 @@ msgstr "Quadros a Gravar:" msgid "France" msgstr "França" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Blocos Livres: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Arquivos Livres: %1" @@ -5197,7 +5219,7 @@ msgid "Freelook Toggle" msgstr "Ativar/Desativar Olhar Livre" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Francês" @@ -5226,7 +5248,7 @@ msgstr "De:" msgid "FullScr" msgstr "Tela Cheia" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Função" @@ -5258,7 +5280,7 @@ msgstr "Núcleo do GBA" msgid "GBA Port %1" msgstr "Porta do GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "Configurações do GBA" @@ -5270,11 +5292,11 @@ msgstr "Volume do GBA" msgid "GBA Window Size" msgstr "Tamanho da Janela do GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "ROM do GBA%1 alterada para \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "ROM desativada do GBA%1" @@ -5319,7 +5341,7 @@ msgstr "" #: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." -msgstr "O GL_MAX_TEXTURE_SIZE é {0} - deve ser pelo menos 1024." +msgstr "GL_MAX_TEXTURE_SIZE é {0} - deve ser pelo menos 1024." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:69 msgid "GPU Texture Decoding" @@ -5405,11 +5427,11 @@ msgstr "Jogo" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartuchos do Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5433,7 +5455,7 @@ msgstr "Detalhes do Jogo" msgid "Game Folders" msgstr "Pastas de Jogos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID do Jogo" @@ -5447,11 +5469,25 @@ msgstr "ID do Jogo:" msgid "Game Status" msgstr "Status do Jogo" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Jogo alterado para \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "O jogo já está rodando!" @@ -5462,6 +5498,10 @@ msgstr "" "O jogo sobrescreveu com outro save de jogo. Corrupção de dados adiante {0:" "#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Configurações Específicas do Jogo" @@ -5502,12 +5542,12 @@ msgstr "Teclado de GameCube na Porta %1" msgid "GameCube Memory Card Manager" msgstr "Gerenciador de Memory Cards do GameCube" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "Memory Cards do GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Memory Cards do GameCube (*.raw *.gcp)" @@ -5540,7 +5580,7 @@ msgstr "Geral" msgid "General and Options" msgstr "Geral e Opções" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Gerar Código do Action Replay" @@ -5548,16 +5588,16 @@ msgstr "Gerar Código do Action Replay" msgid "Generate a New Statistics Identity" msgstr "Gerar uma Nova ID de Estatísticas " -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Gerar Código do AR." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Nomes dos símbolos gerados do '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Alemão" @@ -5566,14 +5606,14 @@ msgstr "Alemão" msgid "Germany" msgstr "Alemanha" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Ir para" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Modo Golfe" @@ -5708,7 +5748,7 @@ msgstr "Muito Alto" #. i18n: Refers to how hard emulated drum pads are struck. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:65 msgid "Hit Strength" -msgstr "Força do Golpe" +msgstr "Força da Batida" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 @@ -5751,15 +5791,15 @@ msgstr "" "Adequado para jogos casuais com mais de 3 jogadores, possivelmente em " "conexões instáveis ou de alta latência." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Host autoritário desativado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Host autoritário ativado" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Hospedar no NetPlay" @@ -5777,7 +5817,7 @@ msgstr "Configurações das Teclas de Atalho" msgid "Hotkeys" msgstr "Teclas de Atalho" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Desativar Teclas de Atalho em Segundo Plano" @@ -5793,7 +5833,7 @@ msgstr "Hz" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:50 msgid "I am aware of the risks and want to continue" -msgstr "Eu estou ciente dos riscos e quero continuar" +msgstr "Estou ciente dos riscos e quero continuar" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 @@ -5828,7 +5868,7 @@ msgstr "" msgid "IP Address:" msgstr "Endereço IP:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Configurações do IPL" @@ -5837,7 +5877,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilidade do Ponteiro:" @@ -5894,7 +5934,7 @@ msgstr "" msgid "Identity Generation" msgstr "ID de Estatísticas" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5959,7 +5999,7 @@ msgstr "Ignorar" msgid "Ignore Format Changes" msgstr "Ignorar Mudanças de Formato" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignorar nesta sessão" @@ -6011,14 +6051,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importar Backup da NAND do BootMii..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Falha ao Importar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importar Arquivo(s) do(s) Save(s)" @@ -6026,11 +6066,11 @@ msgstr "Importar Arquivo(s) do(s) Save(s)" msgid "Import Wii Save..." msgstr "Importar Dados Salvos do Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importando backup da NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6109,21 +6149,21 @@ msgid "Info" msgstr "Informações" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informação" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Desativar Proteção de Tela Durante a Emulação" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Entrada de Dados" @@ -6168,7 +6208,7 @@ msgstr "Instalar Atualização" msgid "Install WAD..." msgstr "Instalar WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Instalar na NAND" @@ -6184,7 +6224,7 @@ msgstr "Instrução" msgid "Instruction Breakpoint" msgstr "Ponto de Interrupção da Instrução" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instrução:" @@ -6233,7 +6273,7 @@ msgstr "Resolução Interna" msgid "Internal Resolution:" msgstr "Resolução Interna:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Erro interno enquanto gera o código AR." @@ -6245,9 +6285,9 @@ msgstr "Interpretador (muito lento)" msgid "Interpreter Core" msgstr "Núcleo do Interpretador" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." -msgstr "Expressão Inválida." +msgstr "Expressão Inválida" #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:166 msgid "Invalid Mixed Code" @@ -6262,7 +6302,7 @@ msgstr "O pacote %1 fornecido é inválido: %2" msgid "Invalid Player ID" msgstr "ID de Jogador Inválida" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Endereço do módulo do RSO inválido: %1" @@ -6270,7 +6310,7 @@ msgstr "Endereço do módulo do RSO inválido: %1" msgid "Invalid callstack" msgstr "Callstack inválido" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Checksum inválido." @@ -6278,7 +6318,7 @@ msgstr "Checksum inválido." msgid "Invalid game." msgstr "Jogo inválido." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Host inválido" @@ -6287,7 +6327,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Entrada inválida para o campo \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Entrada de dados inválida fornecida" @@ -6321,7 +6361,7 @@ msgstr "" "String de pesquisa inválida (apenas comprimentos correspondentes de string " "são suportados)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "ID do título inválida." @@ -6330,7 +6370,7 @@ msgid "Invalid watch address: %1" msgstr "Endereço da observação inválido: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiano" @@ -6437,7 +6477,7 @@ msgstr "Japonês" msgid "Japanese (Shift-JIS)" msgstr "Japonesa (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Manter Janela no Topo" @@ -6505,7 +6545,7 @@ msgstr "Save do LR" msgid "Label" msgstr "Rótulo" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Último Valor" @@ -6609,7 +6649,7 @@ msgstr "Escutando" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Carregar" @@ -6744,7 +6784,7 @@ msgstr "Carregar do Slot" msgid "Load Wii Save" msgstr "Carregar o Save do Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Carregar Wii System Menu %1" @@ -6756,8 +6796,8 @@ msgstr "Carregar do Slot Selecionado" msgid "Load from Slot %1 - %2" msgstr "Slot %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Carregar o arquivo do mapa" @@ -6765,7 +6805,7 @@ msgstr "Carregar o arquivo do mapa" msgid "Load..." msgstr "Carregar..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Símbolos carregados do '%1'" @@ -6784,7 +6824,7 @@ msgstr "" msgid "Local" msgstr "IP Local" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Travar Cursor do Mouse" @@ -6813,7 +6853,7 @@ msgstr "Tipos de Log" msgid "Logger Outputs" msgstr "Saída de Dados" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6828,7 +6868,7 @@ msgstr "" msgid "Loop" msgstr "Reprodução contínua" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Perdeu a conexão com o servidor do NetPlay..." @@ -6857,7 +6897,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "MORIBUNDO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "Arquivos de GameShark da Mad Catz" @@ -6865,7 +6905,7 @@ msgstr "Arquivos de GameShark da Mad Catz" msgid "Main Stick" msgstr "Eixo Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6909,11 +6949,11 @@ msgstr "Mask ROM" msgid "Match Found" msgstr "Combinação Achada" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Buffer Máximo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Tamanho máximo do buffer alterado para %1" @@ -6947,22 +6987,6 @@ msgstr "Memory Card" msgid "Memory Card Manager" msgstr "Gerenciador de Memory Cards" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"O nome do arquivo do Memory Card no Slot {0} está incorreto\n" -"Região não especificada\n" -"\n" -"O caminho do Slot {1} foi alterado para\n" -"{2}\n" -"Você gostaria de copiar o arquivo antigo para este novo local?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Alocação de Memória" @@ -6971,19 +6995,19 @@ msgstr "Alocação de Memória" msgid "Memory breakpoint options" msgstr "Opções do ponto de interrupção da memória" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: O ClearBlock chamou um endereço inválido ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: Leitura chamada com endereço inválido da fonte ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Gravação chamada com endereço de destino inválido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7013,17 +7037,17 @@ msgstr "Diversos" msgid "Misc Settings" msgstr "Configurações Diversas" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Há uma discrepância entre o número de blocos livres no cabeçalho e o número " "real de blocos livres." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Incompatibilidade entre as estruturas internas dos dados." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7057,8 +7081,8 @@ msgstr "" "efeito.

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Módulos achados: %1" @@ -7087,22 +7111,22 @@ msgstr "Simulação de Movimentos" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Visibilidade do Cursor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" "Oculta o cursor do mouse após um período de inatividade e reexibe ao ser " "movido." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "Exibe permanentemente o cursor do mouse." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "Oculta permanentemente o cursor do mouse enquanto um jogo estiver em " @@ -7118,14 +7142,20 @@ msgstr "Mover" msgid "Movie" msgstr "Gravação" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "Não para T&odos" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Verificação da NAND" @@ -7156,11 +7186,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nome" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Nome da nova etiqueta:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Nome da etiqueta a remover:" @@ -7181,8 +7211,8 @@ msgstr "Nome:" msgid "Native (640x528)" msgstr "Nativa (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Arquivo GCI Nativo" @@ -7202,11 +7232,11 @@ msgstr "Configuração do NetPlay" msgid "Netherlands" msgstr "Holanda" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "O NetPlay dessincronizou em NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "O Netplay perdeu a sincronia. Não é possível se recuperar desse erro." @@ -7219,7 +7249,7 @@ msgstr "Rede" msgid "Network dump format:" msgstr "Formato do despejo de rede:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Nunca" @@ -7227,7 +7257,7 @@ msgstr "Nunca" msgid "Never Auto-Update" msgstr "Desativar Atualizações" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Novo" @@ -7240,7 +7270,7 @@ msgstr "Novo Ponto de Interrupção" msgid "New Search" msgstr "Nova Pesquisa" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Nova Etiqueta..." @@ -7252,7 +7282,7 @@ msgstr "Uma nova ID foi gerada." msgid "New instruction:" msgstr "Nova instrução:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Nova etiqueta" @@ -7309,13 +7339,13 @@ msgstr "Sem Combinação" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Nenhuma descrição disponível" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Não há erros." @@ -7335,10 +7365,14 @@ msgstr "Nenhum jogo está em execução." msgid "No game running." msgstr "Nenhum jogo em execução" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Não foram detectados problemas." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Nenhum caminho encontrado no arquivo M3U \"{0}\"" @@ -7369,7 +7403,7 @@ msgstr "Nenhum perfil encontrado pra configuração do jogo '{0}'" msgid "No recording loaded." msgstr "Nenhuma gravação carregada." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Não foram achados dados dos saves." @@ -7391,10 +7425,6 @@ msgstr "Nenhum" msgid "North America" msgstr "América do Norte" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Não Encontrado" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Desconhecido" @@ -7403,7 +7433,7 @@ msgstr "Desconhecido" msgid "Not all players have the game. Do you really want to start?" msgstr "Nem todos os jogadores possuem o jogo. Iniciar assim mesmo?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7413,7 +7443,7 @@ msgstr "" "Não há blocos livres o bastante no memory card alvo. Pelo menos %n bloco(s) " "livre(s) requerido(s)." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7423,6 +7453,10 @@ msgstr "" "Não há arquivos livres o bastante no memory card alvo. Pelo menos %n " "arquivo(s) livre(s) requerido(s)." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7477,7 +7511,7 @@ msgstr "Orientação do Nunchuk" msgid "Nunchuk Stick" msgstr "Eixo do Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7508,7 +7542,7 @@ msgstr "Deslocamento" msgid "On" msgstr "Ligado" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Ao Mover" @@ -7516,7 +7550,7 @@ msgstr "Ao Mover" msgid "Online &Documentation" msgstr "&Documentação Online" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7524,7 +7558,7 @@ msgstr "" "Só anexar símbolos com o prefixo:\n" "(Em branco pra todos os símbolos)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7537,7 +7571,7 @@ msgstr "" msgid "Open" msgstr "Abrir" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Abrir &Local do Arquivo" @@ -7549,7 +7583,7 @@ msgstr "Abrir Diretório..." msgid "Open FIFO log" msgstr "Abrir log do FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Abrir a Pasta dos &Saves do GameCube" @@ -7557,7 +7591,7 @@ msgstr "Abrir a Pasta dos &Saves do GameCube" msgid "Open Riivolution XML..." msgstr "Abrir XML do Riivolution..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Abrir a Pasta dos &Saves do Wii" @@ -7745,7 +7779,7 @@ msgstr "Pausar" msgid "Pause at End of Movie" msgstr "&Pausar no Fim do Replay" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pausar ao Perder Foco" @@ -7772,7 +7806,7 @@ msgstr "Iluminação Por Pixel" msgid "Perform Online System Update" msgstr "Executar Atualização do Sistema Online" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Executar Atualização do Sistema" @@ -7788,9 +7822,9 @@ msgstr "Espaço do endereço físico" #: Source/Core/UICommon/UICommon.cpp:421 msgid "PiB" -msgstr "PiBs" +msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Escolha uma fonte de debug" @@ -7806,7 +7840,7 @@ msgstr "Pra baixo" msgid "Pitch Up" msgstr "Pra cima" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7854,7 +7888,7 @@ msgstr "Apontar" msgid "Port %1" msgstr "Porta %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "ROM da Porta %1:" @@ -7863,7 +7897,7 @@ msgstr "ROM da Porta %1:" msgid "Port:" msgstr "Porta:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Possível dessincronia detectada: %1 poderia ter dessincronizado no frame %2" @@ -7884,15 +7918,15 @@ msgstr "Configurações do Shader de Pós-Processamento" msgid "Prefetch Custom Textures" msgstr "Pré-carregar Texturas Personalizadas" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Fim prematuro da gravação no PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Fim prematuro do filme no PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Fim prematuro da gravação no PlayWiimote. {0} > {1}" @@ -7917,7 +7951,7 @@ msgstr "Sincronizar (Redirecionamento Bluetooth)" msgid "Pressure" msgstr "Pressão" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -8009,7 +8043,7 @@ msgstr "Público" msgid "Purge Game List Cache" msgstr "Limpar Cache da Lista de Jogos" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Coloque as ROMs do IPL na pasta User/GC//." @@ -8037,8 +8071,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pergunta" @@ -8066,7 +8100,7 @@ msgstr "PRONTO" msgid "RSO Modules" msgstr "Módulos do RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Auto-detecção do RSO" @@ -8219,12 +8253,12 @@ msgstr "" msgid "Refreshed current values." msgstr "Valores atuais atualizados." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Atualizando..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8254,12 +8288,12 @@ msgstr "Me Lembrar Mais Tarde" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Remover" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Falha ao Remover" @@ -8267,11 +8301,11 @@ msgstr "Falha ao Remover" msgid "Remove Junk Data (Irreversible):" msgstr "Remover Dados Não Utilizados (Irreversível):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Remover Etiqueta..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Remover etiqueta" @@ -8290,7 +8324,7 @@ msgstr "" msgid "Rename symbol" msgstr "Renomear Símbolo" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Janela de Renderização" @@ -8371,7 +8405,7 @@ msgstr "Gerenciador de Pacotes de Recursos" msgid "Resource Pack Path:" msgstr "Pacotes de Recursos:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Reinicialização Necessária" @@ -8383,7 +8417,7 @@ msgstr "Restaurar Padrões" msgid "Restore instruction" msgstr "Restaurar instrução" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Repetir" @@ -8488,7 +8522,7 @@ msgstr "Vibração" msgid "Run &To Here" msgstr "Correr &Até Aqui" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Executar Instâncias do GBA em Processos Dedicados" @@ -8520,7 +8554,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8549,7 +8583,7 @@ msgstr "Seguro" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8559,9 +8593,9 @@ msgstr "Salvar" msgid "Save All" msgstr "Salvar Todos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportar Dados Salvos" @@ -8582,11 +8616,11 @@ msgstr "Jogo Salvo" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Arquivo de jogo salvo (*.sav);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Importar Dados Salvos" @@ -8598,7 +8632,7 @@ msgstr "Salvar Estado Mais Antigo" msgid "Save Preset" msgstr "Salvar Predefinição" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Salvar o Arquivo da Gravação Como" @@ -8684,11 +8718,11 @@ msgstr "Salvar como Predefinição..." msgid "Save as..." msgstr "Salvar como..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Salvar o arquivo de saída combinada dos dados como" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8698,15 +8732,15 @@ msgstr "" "dos dados atuais antes de substituí-los.\n" "Substituir os dados existentes?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Salvar na Mesma Pasta da ROM" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Salvar o arquivo do mapa" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Salvar o arquivo de assinatura" @@ -8728,11 +8762,11 @@ msgstr "" "O pareamento dos Wii Remotes salvos só pode ser redefinido durante a " "execução de um jogo do Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Dados Salvos:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "O estado salvo da gravação {0} está corrompido, parando a gravação..." @@ -8787,7 +8821,7 @@ msgstr "Procurar uma Instrução" msgid "Search games..." msgstr "Pesquisar jogos..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Procurar instrução" @@ -8821,20 +8855,20 @@ msgstr "Selecionar" msgid "Select Dump Path" msgstr "Selecione o Caminho do Dump" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Selecione o Diretório de Exportação" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Selecionar a BIOS do GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Selecionar a ROM do GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Selecione o Caminho dos Saves do GBA" @@ -8914,7 +8948,7 @@ msgstr "Selecione o Caminho do WFS" msgid "Select Wii NAND Root" msgstr "Selecione a Raiz NAND do Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Selecione um Diretório" @@ -8922,9 +8956,9 @@ msgstr "Selecione um Diretório" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Selecione um Arquivo" @@ -8944,7 +8978,7 @@ msgstr "Selecione um arquivo" msgid "Select a game" msgstr "Selecione um jogo" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Selecione um título pra instalar no NAND" @@ -8952,11 +8986,11 @@ msgstr "Selecione um título pra instalar no NAND" msgid "Select e-Reader Cards" msgstr "Selecione os Cartões do e-Reader" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Selecione o endereço do módulo do RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Selecione o Arquivo da Gravação a Executar" @@ -8964,12 +8998,12 @@ msgstr "Selecione o Arquivo da Gravação a Executar" msgid "Select the Virtual SD Card Root" msgstr "Selecione a Raiz do Cartão SD Virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecione o arquivo das chaves (dump do OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Importar" @@ -8991,9 +9025,9 @@ msgstr "O perfil de controle selecionado não existe" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "O jogo selecionado não existe na lista de jogos!" @@ -9005,7 +9039,7 @@ msgstr "Thread do callstack selecionado" msgid "Selected thread context" msgstr "Contexto do thread selecionado" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -9013,7 +9047,7 @@ msgstr "" "Seleciona o adaptador de vídeo a ser utilizado.

O " "backend %1 não é compatível com esse recurso." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -9058,7 +9092,7 @@ msgstr "" "é recomendado testar cada um e selecionar o backend menos problemático." "

Na dúvida, selecione \"OpenGL\"." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -9074,7 +9108,7 @@ msgstr "" "da janela de renderização.

Na dúvida, selecione " "\"Automática\"." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -9094,7 +9128,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Posição da Sensor Bar:" @@ -9118,7 +9152,7 @@ msgstr "Endereço IP do Servidor" msgid "Server Port" msgstr "Porta do Servidor" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "O servidor rejeitou a tentativa traversal" @@ -9139,15 +9173,15 @@ msgstr "Definir PC" msgid "Set Value From File" msgstr "Definir o Valor do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Definir como &ISO padrão" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Definir arquivo do memory card pro Slot A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Definir arquivo do memory card pro Slot B" @@ -9236,7 +9270,7 @@ msgstr "Mostrar &Log" msgid "Show &Toolbar" msgstr "Mostrar Barra de &Ferramentas" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Mostrar Software em Execução no Título da Janela" @@ -9252,7 +9286,7 @@ msgstr "Austrália" msgid "Show Current Game on Discord" msgstr "Mostrar Jogo em Execução no Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Mostrar Interface de Depuração" @@ -9282,7 +9316,7 @@ msgstr "Alemanha" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 msgid "Show Golf Mode Overlay" -msgstr "Mostrar a Sobreposição do Modo Golfe" +msgstr "Mostrar Sobreposição do Modo Golfe" #: Source/Core/DolphinQt/MenuBar.cpp:781 msgid "Show Input Display" @@ -9324,7 +9358,7 @@ msgstr "Mostrar Ping do NetPlay" msgid "Show Netherlands" msgstr "Holanda" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Mostrar Mensagens na Tela" @@ -9394,10 +9428,23 @@ msgstr "Global" msgid "Show in &memory" msgstr "Mostrar na &memória" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Mostrar no código" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Mostrar no navegador do servidor" @@ -9414,7 +9461,7 @@ msgstr "" "Mostra várias estatísticas de renderização.

Na " "dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9423,7 +9470,7 @@ msgstr "" "enquanto joga no NetPlay.

Na dúvida, mantenha essa " "opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Na dúvida, mantenha essa " "opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9527,7 +9574,7 @@ msgstr "Ignorar Desenho" msgid "Skip EFB Access from CPU" msgstr "Ignorar Acesso EFB da CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Ignorar Menu Principal" @@ -9558,7 +9605,7 @@ msgstr "Barra do Slider" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Slot A:" @@ -9566,7 +9613,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Slot B:" @@ -9622,7 +9669,7 @@ msgid "Spain" msgstr "Espanha" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Espanhol" @@ -9631,7 +9678,7 @@ msgstr "Espanhol" msgid "Speaker Pan" msgstr "Balanço do Speaker" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volume do Auto-Falante:" @@ -9723,11 +9770,11 @@ msgstr "Iniciar em Tela Cheia" msgid "Start with Riivolution Patches" msgstr "Iniciar com Patches do Riivolution" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Iniciar com Patches do Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Jogo iniciado" @@ -9900,10 +9947,10 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Sucesso" @@ -9921,16 +9968,16 @@ msgstr "%n imagem(ns) convertida(s) com sucesso." msgid "Successfully deleted '%1'." msgstr "Perfil \"%1\" excluído com sucesso." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportou com sucesso %n de %1 arquivo(s) do(s) save(s)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Arquivos dos saves exportados com sucesso" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Certificados da NAND extraídos com sucesso" @@ -9942,16 +9989,16 @@ msgstr "Arquivo extraído com sucesso." msgid "Successfully extracted system data." msgstr "Dados extraídos do sistema com sucesso." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Arquivo de dados salvos importado com sucesso." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Software instalado na NAND com sucesso." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Software removido da NAND com sucesso." @@ -9959,7 +10006,7 @@ msgstr "Software removido da NAND com sucesso." msgid "Support" msgstr "Suporte" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Formatos de arquivo suportados" @@ -9995,11 +10042,11 @@ msgstr "" msgid "Swing" msgstr "Balançar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Alternar para A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Alternar para B" @@ -10083,7 +10130,7 @@ msgstr "Sincronizando códigos Gecko..." msgid "Synchronizing save data..." msgstr "Sincronizando os dados dos saves..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Idioma do Sistema:" @@ -10098,8 +10145,8 @@ msgstr "Entrada de Dados TAS" msgid "TAS Tools" msgstr "Ferramentas de TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10170,7 +10217,7 @@ msgstr "O arquivo IPL não é um bom dump conhecido. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "As partições das Masterpieces estão ausentes." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10178,7 +10225,7 @@ msgstr "" "A NAND não pôde ser reparada. É recomendável fazer backup dos dados salvos " "atuais e recomeçar do zero com uma NAND limpa." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "A NAND foi reparada." @@ -10237,11 +10284,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "O disco não pôde ser lido (em {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "O disco que estava prestes a ser inserido não foi encontrado." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10275,11 +10322,11 @@ msgstr "O PID inserido não é válido." msgid "The entered VID is invalid." msgstr "O VID inserido não é válido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "A expressão contém um erro de sintaxe." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10312,6 +10359,13 @@ msgid "The file {0} was already open, the file header will not be written." msgstr "" "O arquivo {0} já estava aberto, o cabeçalho do arquivo não será gravado." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "O sistema de arquivos é inválido ou não pôde ser lido." @@ -10430,7 +10484,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "O código AR descriptografado não contém nenhuma linha." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10470,7 +10524,7 @@ msgstr "O índice de chave comum especificado é {0}, mas deveria ser {1}." msgid "The specified file \"{0}\" does not exist" msgstr "O arquivo especificado \"{0}\" não existe" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "O memory card alvo já contém um arquivo: \"%1\"." @@ -10527,7 +10581,7 @@ msgstr "Existem muitas partições na primeira tabela de partições." msgid "There is nothing to undo!" msgstr "Nào há nada para desfazer!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "Houve um problema ao adicionar um atalho na área de trabalho" @@ -10569,11 +10623,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "O dispositivo USB informado já está na lista de redirecionamento." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Este WAD não é bootável." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Este WAD não é váldo." @@ -10586,7 +10640,7 @@ msgstr "" "Action Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Isto não pode ser desfeito!" @@ -10717,7 +10771,7 @@ msgstr "" "Este software não deve ser usado pra jogar jogos que você não possui " "legalmente." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Este título não pode ser iniciado." @@ -10730,7 +10784,7 @@ msgstr "Esse software está configurado para utilizar um IOS inválido." msgid "This title is set to use an invalid common key." msgstr "Esse software está configurado para utilizar uma chave comum inválida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10742,7 +10796,7 @@ msgstr "" "\n" "DSPHLE: Ucode desconhecido (CRC = {0:08x}) - forçando o AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10818,7 +10872,7 @@ msgstr "" "Período de tempo da entrada de dados estável pra engatilhar a calibração. " "(zero pra desativar)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10860,7 +10914,7 @@ msgid "Toggle Aspect Ratio" msgstr "Alternar Proporção de Tela" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Ativar/Desativar Pontos de Interrupção" @@ -10920,7 +10974,7 @@ msgstr "Falhou em tokenizing." msgid "Toolbar" msgstr "Barra de Ferramentas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Em cima" @@ -10972,16 +11026,16 @@ msgstr "Toque" msgid "Traditional Chinese" msgstr "Chinês Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" -msgstr "Erro da Travessia" +msgstr "Erro Traversal" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:190 msgid "Traversal Server" msgstr "Servidor Traversal" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Servidor traversal não respondeu enquanto conectava-se ao host." @@ -11007,7 +11061,7 @@ msgid "Triggers" msgstr "Gatilhos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -11041,7 +11095,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "Erro no Redirecionamento USB" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -11052,7 +11106,7 @@ msgstr "" "hardware de entrada.

Na dúvida, selecione esse modo." "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -11065,7 +11119,7 @@ msgstr "" "notado engasgos com os Ubershaders Híbridos e possua uma GPU " "consideravelmente potente.
" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -11079,7 +11133,7 @@ msgstr "" "compilação de shaders com um impacto mínimo no desempenho, mas os resultados " "dependem do comportamento do driver de vídeo." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Incapaz de auto-detectar o módulo do RSO" @@ -11140,11 +11194,11 @@ msgstr "Desfazer Estado Salvo" msgid "Uninstall" msgstr "Desinstalar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Desinstalar da NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11163,11 +11217,11 @@ msgstr "Estados Unidos" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconhecido do DVD {0:08x} - erro fatal" @@ -11185,7 +11239,7 @@ msgstr "" #: Source/Core/Core/NetPlayClient.cpp:1006 msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" -msgstr "Mensagem desconhecida do SYNC_GECKO_DATA recebida com a id: {0}" +msgstr "Mensagem SYNC_SAVE_DATA desconhecida recebida com ID: {0}" #: Source/Core/Core/NetPlayServer.cpp:1148 msgid "" @@ -11215,11 +11269,11 @@ msgstr "Disco desconhecido" msgid "Unknown error occurred." msgstr "Um erro desconhecido ocorreu." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Erro desconhecido {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Erro desconhecido." @@ -11276,8 +11330,8 @@ msgstr "Inteiro Não Assinada" msgid "Up" msgstr "Para cima" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Atualizar" @@ -11339,11 +11393,11 @@ msgstr "Wii Remote na Vertical" msgid "Usage Statistics Reporting Settings" msgstr "Configurações de Estatísticas de Uso" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Usar Nomes de Jogos da Base de Dados Embutida" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Usar Estilo de Usuário Personalizado" @@ -11355,7 +11409,7 @@ msgstr "Usar Codec Sem Perdas (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usar Modo PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Usar Gerenciadores de Pânico" @@ -11449,11 +11503,11 @@ msgstr "" msgid "User Config" msgstr "Configuração do Usuário" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Interface do Usuário" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Estilo de Usuário:" @@ -11484,7 +11538,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11494,7 +11548,7 @@ msgstr "" "separada será criada para a renderização.

Na " "dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
Caso " "contrário, na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11756,7 +11810,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Aviso" @@ -11778,7 +11832,7 @@ msgstr "" "AVISO: O número de blocos indicados pelo BAT ({0}) não corresponde com o " "cabeçalho do arquivo carregado ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11788,7 +11842,7 @@ msgstr "" "{1}) (entrada dos dados {2} > {3}). Você deveria carregar outro save antes " "de continuar ou carregar este state com o modo somente-leitura desligado." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11798,7 +11852,7 @@ msgstr "" "atual no estado (byte {0} < {1}) (quadro {2} < {3}). Você deve carregar " "outro estado salvo antes de continuar." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11809,7 +11863,7 @@ msgstr "" "com o modo somente-leitura desligado. De outro modo você provavelmente terá " "uma dessincronização." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11891,7 +11945,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivos Permitidos no Redirecionamento USB" @@ -11937,7 +11991,7 @@ msgstr "Botões do Wii Remote" msgid "Wii Remote Orientation" msgstr "Orientação do Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Configurações do Wii Remote" @@ -11965,7 +12019,7 @@ msgstr "Wii e Wii Remote" msgid "Wii data is not public yet" msgstr "Dados do Wii ainda não são públicos" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Arquivo de dados salvos do Wii (*.bin);;Todos os arquivos (*)" @@ -11973,7 +12027,7 @@ msgstr "Arquivo de dados salvos do Wii (*.bin);;Todos os arquivos (*)" msgid "WiiTools Signature MEGA File" msgstr "MEGA Arquivo de Assinatura do WiiTools" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -12033,9 +12087,21 @@ msgstr "Gravar no Log e Dividir" msgid "Write to Window" msgstr "Gravar na Janela" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Versão Incorreta" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12118,19 +12184,6 @@ msgstr "" "\n" "Tem certeza de que deseja continuar assim mesmo?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Você está tentando usar o backend Vulkan (Metal) em um sistema operacional " -"não suportado. Para que todas as funcionalidades sejam ativadas, você deve " -"usar o macOS 10.14 (Mojave) ou mais recente. Por favor, não reporte " -"quaisquer problemas encontrados, a menos que eles também ocorram no macOS " -"10.14+." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -12186,7 +12239,7 @@ msgstr "Você deve fornecer um nome para sua sessão!" msgid "You must provide a region for your session!" msgstr "Você deve fornecer uma região para sua sessão!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Você precisa reiniciar o Dolphin para que as alterações tenham efeito." @@ -12264,12 +12317,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll não pôde ser carregado." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "padrão" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "desconectado" @@ -12332,13 +12385,13 @@ msgstr "" msgid "none" msgstr "Nenhum" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "desligado" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "ligado" @@ -12375,7 +12428,7 @@ msgstr "desalinhado" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12400,7 +12453,7 @@ msgstr "" " Verifique suas permissões de gravação ou mova o arquivo pra fora do Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} de {1} blocos. Taxa de compressão: {2}%" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index 0d4b76064b..b76b516b1b 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -36,7 +36,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +165,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +214,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +277,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +369,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +524,7 @@ msgstr "&Pauză" msgid "&Play" msgstr "&Redare" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Proprietăți" @@ -574,7 +574,7 @@ msgstr "" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +604,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -612,15 +612,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +657,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +849,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +864,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +879,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1064,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1092,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Adaugă..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1182,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1198,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1249,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1271,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1327,7 @@ msgstr "Antialias:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1353,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1365,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1381,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1398,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1459,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1490,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1502,7 @@ msgstr "Înregistrare BP" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1555,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1590,7 @@ msgstr "Configurări Principale" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1622,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1664,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1676,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Jos" @@ -1681,7 +1703,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1737,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Tampon:" @@ -1835,7 +1857,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1865,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1899,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1925,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1919,7 +1941,7 @@ msgstr "Schimbă Discul" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1993,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2007,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Alege un fișier pentru a-l deschide" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Curăță" @@ -2072,7 +2097,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2122,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2174,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Confirmă la Oprire" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2245,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2353,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2383,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2372,19 +2397,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2417,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Copiere eșuată" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2465,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2516,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2528,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2590,7 @@ msgstr "Estompare Intercalată" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2693,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2811,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Șterge" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2841,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2864,7 @@ msgstr "" msgid "Detect" msgstr "Detectare" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2885,7 @@ msgstr "Dispozitiv" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Configurări Dispozitiv" @@ -2911,8 +2932,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3026,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Vrei să oprești emularea curentă?" @@ -3040,9 +3061,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3075,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr " Filme TAS Dolphin (*.dtm)" @@ -3070,7 +3091,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3109,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3174,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3354,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Olandeză" @@ -3406,7 +3427,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Firul Emu rulează deja" @@ -3438,8 +3459,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3510,7 @@ msgid "Enable Progressive Scan" msgstr "Activare Scanare Progresivă" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3601,7 +3622,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3614,7 +3635,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engleză" @@ -3647,7 +3668,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3659,7 +3680,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3678,46 +3699,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Eroare" @@ -3740,11 +3762,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3764,7 +3786,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3912,10 +3934,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Exportă Toate Salvările Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3927,19 +3949,19 @@ msgstr "Export Înregistrare" msgid "Export Recording..." msgstr "Export Înregistrare..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3951,7 +3973,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4025,7 +4047,7 @@ msgstr "Jucător FIFO" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4035,19 +4057,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4077,11 +4099,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4097,16 +4119,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4129,29 +4151,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4171,19 +4193,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4195,7 +4217,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4209,13 +4231,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4237,11 +4259,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4250,7 +4272,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4270,25 +4292,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4299,7 +4321,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4319,19 +4341,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4355,9 +4377,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4365,21 +4387,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4404,7 +4426,7 @@ msgstr "Rapid" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4419,7 +4441,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4433,19 +4455,19 @@ msgstr "" msgid "File Info" msgstr "Info Fişier " -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4472,11 +4494,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4526,7 +4548,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Remediere Sume de verificare" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4536,7 +4558,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4674,11 +4696,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4716,7 +4738,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Franceză" @@ -4745,7 +4767,7 @@ msgstr "" msgid "FullScr" msgstr "EcrComplet" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4777,7 +4799,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4789,11 +4811,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4896,11 +4918,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4922,7 +4944,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4936,11 +4958,25 @@ msgstr "ID Joc:" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Jocul rulează deja!" @@ -4949,6 +4985,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Configurări Specifice-Jocului" @@ -4989,12 +5029,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5027,7 +5067,7 @@ msgstr "General" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5035,16 +5075,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Germană" @@ -5053,12 +5093,12 @@ msgstr "Germană" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5228,15 +5268,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5254,7 +5294,7 @@ msgstr "" msgid "Hotkeys" msgstr "Taste rapide" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5299,7 +5339,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Configurări IPL" @@ -5308,7 +5348,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Sensibilitate IR:" @@ -5345,7 +5385,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5388,7 +5428,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "Ignoră Modificările de Format" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5425,14 +5465,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5440,11 +5480,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5516,21 +5556,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informații" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Intrare" @@ -5575,7 +5615,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5591,7 +5631,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5638,7 +5678,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "Rezoluția Internă:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5650,7 +5690,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5667,7 +5707,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5675,7 +5715,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5683,7 +5723,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5692,7 +5732,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5726,7 +5766,7 @@ msgstr "" "Expresie de căutare invalidă (numai lungimile de siruri de caractere sunt " "suportate)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5735,7 +5775,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italiană" @@ -5839,7 +5879,7 @@ msgstr "Japoneză" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5907,7 +5947,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6005,7 +6045,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Încarcă" @@ -6140,7 +6180,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6152,8 +6192,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6161,7 +6201,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6176,7 +6216,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6205,7 +6245,7 @@ msgstr "Tipuri jurnal" msgid "Logger Outputs" msgstr "Jurnale Generate" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6216,7 +6256,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6245,7 +6285,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6253,7 +6293,7 @@ msgstr "" msgid "Main Stick" msgstr "Stick Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6292,11 +6332,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6330,16 +6370,6 @@ msgstr "Card de memorie" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6348,19 +6378,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6386,15 +6416,15 @@ msgstr "Diverse" msgid "Misc Settings" msgstr "Configurări Diverse" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6417,8 +6447,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6447,20 +6477,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6474,14 +6504,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6512,11 +6548,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6537,8 +6573,8 @@ msgstr "Nume:" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6558,11 +6594,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6575,7 +6611,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6583,7 +6619,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6596,7 +6632,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6608,7 +6644,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6665,13 +6701,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Nu există o descriere disponibilă" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6691,10 +6727,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6722,7 +6762,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6742,10 +6782,6 @@ msgstr "Nimic" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Nestabilit" @@ -6754,7 +6790,7 @@ msgstr "Nestabilit" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6762,7 +6798,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6770,6 +6806,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6822,7 +6862,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6853,7 +6893,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6861,13 +6901,13 @@ msgstr "" msgid "Online &Documentation" msgstr "&Documentație Online" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6878,7 +6918,7 @@ msgstr "" msgid "Open" msgstr "Deschide" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6890,7 +6930,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6898,7 +6938,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7086,7 +7126,7 @@ msgstr "Pauză" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7113,7 +7153,7 @@ msgstr "Iluminare Per-Pixel" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7131,7 +7171,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7147,7 +7187,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7193,7 +7233,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7202,7 +7242,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7222,15 +7262,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7253,7 +7293,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7334,7 +7374,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7360,8 +7400,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Întrebare" @@ -7389,7 +7429,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7534,12 +7574,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7569,12 +7609,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Elimină" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7582,11 +7622,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7602,7 +7642,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7681,7 +7721,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7693,7 +7733,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7793,7 +7833,7 @@ msgstr "Vibrație" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7825,7 +7865,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7854,7 +7894,7 @@ msgstr "Sigur" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7864,9 +7904,9 @@ msgstr "Salvare" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7887,11 +7927,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7903,7 +7943,7 @@ msgstr "Salvează cel mai Vechi Status" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7989,26 +8029,26 @@ msgstr "" msgid "Save as..." msgstr "Salvează ca..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8028,11 +8068,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8085,7 +8125,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8117,20 +8157,20 @@ msgstr "Selectează" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8210,7 +8250,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8218,9 +8258,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8240,7 +8280,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8248,11 +8288,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8260,12 +8300,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selectează fișierul salvat" @@ -8287,9 +8327,9 @@ msgstr "Profilul controlerului selectat, nu există" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8301,13 +8341,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8334,7 +8374,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8343,7 +8383,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8357,7 +8397,7 @@ msgstr "" msgid "Send" msgstr "Trimite" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Poziția barei de senzor:" @@ -8377,7 +8417,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8398,15 +8438,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8486,7 +8526,7 @@ msgstr "Afișare &Jurnal" msgid "Show &Toolbar" msgstr "Afișare &Bară de Instrumente" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8502,7 +8542,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8574,7 +8614,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8644,10 +8684,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8662,20 +8715,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8762,7 +8815,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "Omite Acces EFB de la CPU" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8788,7 +8841,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8796,7 +8849,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8848,7 +8901,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spaniolă" @@ -8857,7 +8910,7 @@ msgstr "Spaniolă" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Volum Difuzor:" @@ -8939,11 +8992,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9106,10 +9159,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9127,16 +9180,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9148,16 +9201,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9165,7 +9218,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9198,11 +9251,11 @@ msgstr "" msgid "Swing" msgstr "Balans" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Limbă Sistem" @@ -9294,8 +9347,8 @@ msgstr "Intrare TAS" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9364,13 +9417,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9416,11 +9469,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9450,11 +9503,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9478,6 +9531,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9574,7 +9634,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Rezultatul codului AR decriptat nu conține nici o linie." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9608,7 +9668,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9663,7 +9723,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9699,11 +9759,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9716,7 +9776,7 @@ msgstr "" "Redarea Acțiunii." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9813,7 +9873,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9826,7 +9886,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9834,7 +9894,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9894,7 +9954,7 @@ msgstr "Înclinare:" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9936,7 +9996,7 @@ msgid "Toggle Aspect Ratio" msgstr "Comută Raportul de Aspect" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9996,7 +10056,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Sus" @@ -10048,8 +10108,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chineză tradițională" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10057,7 +10117,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10081,7 +10141,7 @@ msgid "Triggers" msgstr "Declanșatori" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10115,14 +10175,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10130,7 +10190,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10139,7 +10199,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10191,11 +10251,11 @@ msgstr "Anulare Status Salvare" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10212,11 +10272,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Necunoscut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10260,11 +10320,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10320,8 +10380,8 @@ msgstr "" msgid "Up" msgstr "Sus" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Actualizare" @@ -10381,11 +10441,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10397,7 +10457,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Utilizează Asistenți de Panică" @@ -10457,11 +10517,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10484,14 +10544,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10722,7 +10782,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Atenție" @@ -10739,28 +10799,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10815,7 +10875,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10861,7 +10921,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10889,7 +10949,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10897,7 +10957,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10954,8 +11014,20 @@ msgstr "" msgid "Write to Window" msgstr "Scrie în Fereastră" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11022,14 +11094,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11067,7 +11131,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Trebuie să repornești Dolphin pentru ca modificările să aibă efect." @@ -11137,12 +11201,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11203,13 +11267,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11246,7 +11310,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11269,7 +11333,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index c3248be16a..831e1ae35c 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -56,7 +56,7 @@ msgstr "" "Dolphin не может убедиться, что с продуктом всё в порядке, т.к. он не " "предназначен для розничных консолей Wii." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -202,19 +202,19 @@ msgstr "" "%2 объект(ов)\n" "Текущий кадр: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 присоединился" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 вышел" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 — не корректный образ игры" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 теперь играет в гольф" @@ -251,7 +251,7 @@ msgstr "%1% (обычная скорость)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -314,7 +314,7 @@ msgstr "&4x" msgid "&About" msgstr "&Об эмуляторе" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Добавить точку останова в памяти" @@ -406,7 +406,7 @@ msgstr "&Удалить" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Удалить из наблюдения" @@ -504,7 +504,7 @@ msgstr "&Межкадровый блендинг" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Язык:" @@ -561,7 +561,7 @@ msgstr "&Пауза" msgid "&Play" msgstr "&Запустить" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Свойства" @@ -611,7 +611,7 @@ msgstr "&Ограничение скорости:" msgid "&Stop" msgstr "&Остановить" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Тема:" @@ -641,7 +641,7 @@ msgstr "&Наблюдение" msgid "&Website" msgstr "&Сайт" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Вики" @@ -649,15 +649,15 @@ msgstr "&Вики" msgid "&Yes" msgstr "&Да" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' не найден, имена символов не созданы" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' не найден, ищем на замену распространенные функции" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Отсутствует)" @@ -694,9 +694,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -886,7 +886,7 @@ msgstr "< Меньше чем" msgid "" msgstr "<Ничего>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<Системный язык>" @@ -904,8 +904,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Больше чем" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "Сессия сетевой игры уже создана!" @@ -925,15 +925,15 @@ msgstr "" "\n" "После установки этого WAD вернуть прежнюю версию не получится. Продолжить?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Диск уже должен быть вставлен." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "Чтобы загрузить быстрое сохранение, нужно указать игру." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1097,7 +1097,7 @@ msgstr "Action Replay: нормальный код {0}: неверный под msgid "Activate NetPlay Chat" msgstr "Активировать чат сетевой игры" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Активна" @@ -1109,7 +1109,7 @@ msgstr "Активная очередь потоков" msgid "Active threads" msgstr "Активные потоки" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Адаптер" @@ -1139,8 +1139,8 @@ msgstr "Добавить новый сервер DSU" msgid "Add New USB Device" msgstr "Добавление нового USB-устройства" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Добавить ярлык на рабочий стол" @@ -1167,18 +1167,18 @@ msgstr "Добавить точку останова в памяти" msgid "Add to &watch" msgstr "Добавить в &наблюдение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Добавить..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1276,10 +1276,15 @@ msgstr "Африка" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1287,20 +1292,37 @@ msgid "All Files" msgstr "Все файлы" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Все файлы (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Все файлы GC/Wii" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Файлы быстрых сохранений (*.sav, *.s##);; Все файлы (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Все устройства" @@ -1321,7 +1343,7 @@ msgstr "Сохранения всех игроков синхронизиров msgid "Allow Mismatched Region Settings" msgstr "Разрешить несовпадение настроек региона" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Разрешить отправку статистики об использовании" @@ -1345,7 +1367,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Другие источники ввода" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Всегда" @@ -1401,7 +1423,7 @@ msgstr "Сглаживание:" msgid "Any Region" msgstr "Любой регион" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Добавить сигнатуру к" @@ -1429,7 +1451,7 @@ msgstr "Дата загрузчика:" msgid "Apply" msgstr "Применить" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Применить файл с сигнатурами" @@ -1441,7 +1463,7 @@ msgstr "Обнаружение произвольных MIP-текстур" msgid "Are you sure that you want to delete '%1'?" msgstr "Вы действительно хотите удалить '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Вы действительно хотите удалить этот файл?" @@ -1457,7 +1479,7 @@ msgstr "Вы уверены, что хотите выйти из сетевой msgid "Are you sure?" msgstr "Вы уверены?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Соотношение сторон" @@ -1474,7 +1496,7 @@ msgstr "Назначить порты контроллеров" msgid "Assign Controllers" msgstr "Назначить контроллеры" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1541,11 +1563,11 @@ msgstr "Автонастройка размера окна" msgid "Auto-Hide" msgstr "Автоскрытие" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Обнаруживать RSO автоматически?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1578,7 +1600,7 @@ msgstr "" "действительный MAC-адрес Nintendo GameCube. Сгенерируйте новый MAC-адрес, " "начиная с 00:09:bf или 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1590,7 +1612,7 @@ msgstr "Регистр в ТО " msgid "Back Chain" msgstr "Цепочка возврата" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Бэкенд" @@ -1643,7 +1665,7 @@ msgstr "Указано неверное смещение." msgid "Bad value provided." msgstr "Указано некорректное значение." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1678,7 +1700,7 @@ msgstr "Основные настройки" msgid "Bass" msgstr "Басы" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Пакетный режим не может использоваться без указания запускаемой игры." @@ -1710,7 +1732,7 @@ msgstr "Бинарный SSL (запись)" msgid "Bitrate (kbps):" msgstr "Битрейт (кбит/с):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1754,11 +1776,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Пауза после запуска" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Файл бэкапа NAND BootMii (*.bin);;Все файлы (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Файл с ключами BootMii (*.bin);;Все файлы (*)" @@ -1766,7 +1788,7 @@ msgstr "Файл с ключами BootMii (*.bin);;Все файлы (*)" msgid "Borderless Fullscreen" msgstr "Полноэкранный режим без рамок" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "снизу" @@ -1793,7 +1815,7 @@ msgstr "Точка останова" msgid "Breakpoint encountered! Step out aborted." msgstr "Попадание в точку останова! Шаг с выходом отменён." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Точки останова" @@ -1827,12 +1849,12 @@ msgstr "Просмотр &сессий сетевой игры..." msgid "Buffer Size:" msgstr "Размер буфера:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Размер буфера изменён на %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Буфер:" @@ -1958,7 +1980,7 @@ msgstr "Камера 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Поле зрения камеры (влияет на точность наведения)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1966,14 +1988,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Не удаётся найти Wii Remote по дескриптору {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Невозможно создать сессию сетевой игры, пока игра всё ещё запущена!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2002,7 +2024,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Не удалось найти IPL GC." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -2028,7 +2050,7 @@ msgstr "Центр" msgid "Center and Calibrate" msgstr "Центрировать и откалибровать" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Сменить &диск" @@ -2044,7 +2066,7 @@ msgstr "Сменить диск" msgid "Change Discs Automatically" msgstr "Автоматически сменять диски" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Сменить диск на {0}" @@ -2106,7 +2128,7 @@ msgstr "Автоматически проверять список игр на msgid "Check for updates" msgstr "Проверить обновления" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,16 +2144,19 @@ msgstr "Контр. сумма" msgid "China" msgstr "Китай" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Выберите открываемый файл" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Выберите основной входной файл" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Выберите вторичный входной файл" @@ -2156,7 +2181,7 @@ msgstr "Контроллер Classic" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Очистить" @@ -2209,7 +2234,7 @@ msgstr "" msgid "Code:" msgstr "Код:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Коды получены!" @@ -2234,7 +2259,7 @@ msgstr "Компилировать шейдеры перед запуском" msgid "Compiling Shaders" msgstr "Компиляция шейдеров" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2286,23 +2311,23 @@ msgstr "Настройка вывода" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Подтвердить" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Подтвердите смену бэкенда" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Подтверждать остановку" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2357,7 +2382,7 @@ msgstr "Подключиться к интернету и выполнить о msgid "Connected" msgstr "Подключен" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2482,11 +2507,11 @@ msgstr "Сведение:" msgid "Convert" msgstr "Конвертация" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Конвертировать файл..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Конвертировать выбранные файлы..." @@ -2517,9 +2542,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Копировать" @@ -2531,19 +2556,19 @@ msgstr "Скопировать &функцию" msgid "Copy &hex" msgstr "Скопировать &hex-значение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Скопировать адрес" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Копирование не удалось" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Скопировать hex-значение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2551,19 +2576,15 @@ msgstr "" msgid "Copy code &line" msgstr "Скопировать код &строки" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Копирование не удалось" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Скопировать на A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Скопировать на B" @@ -2607,7 +2628,7 @@ msgstr "" "Не удалось загрузить информацию об обновлениях от Nintendo. Проверьте " "подключение к интернету и повторите попытку." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2617,7 +2638,7 @@ msgstr "" "\n" "Эмулируемая консоль будет остановлена." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2677,7 +2698,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Не удалось распознать файл {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2697,15 +2718,15 @@ msgstr "" "папку, то, возможно, потребуется заново указать расположение вашей карты " "памяти в настройках." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Не удалось обнаружить центральный сервер" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Не удалось открыть файл." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Не удалось прочесть файл." @@ -2767,7 +2788,7 @@ msgstr "Кроссфейдер" msgid "Current Region" msgstr "Текущий регион" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Тек. значение" @@ -2876,23 +2897,23 @@ msgstr "Перенос данных" msgid "Data Type" msgstr "Тип данных" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Данные в области файла, которые не должны использоваться." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Данные находятся в нераспознанном формате или повреждены." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Неконсистентность данных в GCMemcardManager, отмена действия." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Данные получены!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Файлы Datel MaxDrive/Pro" @@ -3000,21 +3021,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Удалить" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Удалить файл..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Удалить выбранные файлы..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Удалить существующий файл '{0}'?" @@ -3030,10 +3051,10 @@ msgstr "Процент глубины:" msgid "Depth:" msgstr "Глубина:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3053,7 +3074,7 @@ msgstr "Отсоединён" msgid "Detect" msgstr "Считать" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Обнаружение модулей RSO" @@ -3074,7 +3095,7 @@ msgstr "Устройство" msgid "Device PID (e.g., 0305)" msgstr "PID устройства (напр., 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Настройки устройства" @@ -3128,8 +3149,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Отключить" @@ -3240,25 +3261,25 @@ msgstr "Расстояние" msgid "Distance of travel from neutral position." msgstr "Проходимое расстояние из исходной позиции." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Вы разрешаете отправку данной информации разработчикам Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Вы хотите добавить \"%1\" в список путей к играм?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Вы хотите очистить список имён символов?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Вы хотите удалить выбранные файлы сохранений (%n шт.)?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Вы хотите остановить текущую эмуляцию?" @@ -3275,9 +3296,9 @@ msgstr "Лог Dolphin FIFO (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Файл карты Dolphin (*.map)" @@ -3289,8 +3310,8 @@ msgstr "CSV-файл с сигнатурами Dolphin" msgid "Dolphin Signature File" msgstr "Файл с сигнатурами Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "TAS-ролики (*.dtm)" @@ -3305,7 +3326,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3326,7 +3347,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "Dolphin – бесплатный эмулятор GameCube и Wii с открытым исходным кодом." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Слишком старая версия Dolphin для подключения к промежуточному серверу" @@ -3395,7 +3416,7 @@ msgstr "Скачать коды" msgid "Download Codes from the WiiRD Database" msgstr "Скачать коды из базы данных WiiRD" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Загружать обложки игр с GameTDB.com для показа в виде сетки" @@ -3593,7 +3614,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Длительность отпускания турбо-кнопки (в кадрах):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Голландский" @@ -3673,7 +3694,7 @@ msgstr "Встроенный буфер кадров (EFB)" msgid "Empty" msgstr "Пусто" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Процесс эмулятора уже запущен" @@ -3708,8 +3729,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Включить" @@ -3759,7 +3780,7 @@ msgid "Enable Progressive Scan" msgstr "Включить прогрессивную развёртку" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Включить вибрацию" @@ -3912,7 +3933,7 @@ msgstr "" msgid "Encoding" msgstr "Кодировка" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3929,7 +3950,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet не был инициализирован" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Английский" @@ -3962,7 +3983,7 @@ msgstr "Введите новый MAC-адрес широкополосного msgid "Enter password" msgstr "Введите пароль" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Введите адрес модуля RSO:" @@ -3974,7 +3995,7 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3993,46 +4014,47 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Ошибка" @@ -4054,11 +4076,11 @@ msgstr "Ошибка при получении списка сессий: %1" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Ошибка обработки кодов." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Ошибка обработки данных." @@ -4078,7 +4100,7 @@ msgstr "Ошибка синхронизации сохранений!" msgid "Error writing file: {0}" msgstr "Ошибка записи в файл: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4232,10 +4254,10 @@ msgstr "Экспериментальные" msgid "Export All Wii Saves" msgstr "Экспортировать все сохранения Wii" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Не удалось экспортировать" @@ -4247,19 +4269,19 @@ msgstr "Экспорт записи" msgid "Export Recording..." msgstr "Экспорт записи..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Экспортировать файл сохранения" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Экспорт файлов сохранений" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Экспортировать сохранение Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Экспортировать сохранения Wii" @@ -4271,7 +4293,7 @@ msgstr "Экспорт в .&gcs..." msgid "Export as .&sav..." msgstr "Экспорт в .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4345,7 +4367,7 @@ msgstr "Проигрыватель FIFO" msgid "Failed loading XML." msgstr "Не удалось загрузить XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4357,19 +4379,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Не удалось добавить сессию в индекс сетевой игры: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Не удалось добавить данные в файл с сигнатурами '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Не удалось запросить интерфейс для проброса BT" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Не удалось подключиться к Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Не удалось подключиться к серверу: %1" @@ -4401,11 +4423,11 @@ msgstr "" "Не удалось удалить карту памяти сетевой игры. Проверьте, что у вас есть " "права на запись." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Не удалось удалить выбранный файл." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Не удалось отключить драйвер ядра для проброса BT: {0}" @@ -4421,16 +4443,16 @@ msgstr "Не удалось сдампить %1: невозможно откры msgid "Failed to dump %1: Failed to write to file" msgstr "Не удалось сдампить %1: ошибка записи в файл" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Не удалось экспортировать %n из %1 сохранений." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Не удалось экспортировать следующие файлы сохранений:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Не удалось извлечь сертификаты из NAND" @@ -4456,18 +4478,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Не удалось найти один или более символ D3D" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Не удалось импортировать \"%1\"." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Не удалось импортировать файл сохранения. Пожалуйста, запустите игру, а " "потом попробуйте ещё раз." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4475,7 +4497,7 @@ msgstr "" "Не удалось импортировать файл сохранения. Похоже, что данный файл повреждён " "или не является корректным сохранением Wii." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4486,7 +4508,7 @@ msgstr "" "ваш NAND (Инструменты -> Управлять NAND -> Проверить NAND...), затем " "импортируйте файл сохранения ещё раз." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Не удалось инициализировать ядро" @@ -4506,12 +4528,12 @@ msgstr "Не удалось инициализировать классы рен msgid "Failed to install pack: %1" msgstr "Не удалось установить набор: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Не удалось установить этот продукт в NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4519,8 +4541,8 @@ msgstr "" "Не удалось инициализировать прослушивание порта %1. У вас запущен ещё один " "сервер сетевой игры?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Не удалось загрузить модуль RSO на %1" @@ -4532,7 +4554,7 @@ msgstr "Не удалось загрузить d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Не удалось загрузить dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Не удалось загрузить файл с картой '%1'" @@ -4548,13 +4570,13 @@ msgstr "" "Не удалось загрузить {0}. Если вы пользуетесь Windows 7, попробуйте " "установить пакет обновления KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Не удалось открыть '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Не удалось открыть Bluetooth-устройство: {0}" @@ -4580,11 +4602,11 @@ msgstr "" "Убедитесь, что у вас есть приложение, на которое назначено открытие INI-" "файлов." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Не удалось открыть файл." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Не удалось открыть сервер" @@ -4593,7 +4615,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Не удалось открыть входной файл \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4616,25 +4638,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "Не удалось прочесть DFF-файл." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Не удалось прочитать данные из файла." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Не удалось прочесть входной файл \"{0}\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "Не удалось прочитать выбранные файлы сохранений с карты памяти." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Не удалось прочесть {0}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Не удалось удалить файл." @@ -4648,7 +4670,7 @@ msgstr "" "\n" "Вы хотите продолжить конвертацию без удаления мусорных данных?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Не удалось удалить этот продукт из NAND." @@ -4672,19 +4694,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Не удалось сохранить лог FIFO." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Не удалось сохранить карту кода по пути '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Не удалось сохранить файл сигнатуры '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Не удалось сохранить карту символов по пути '%1'" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Не удалось сохранить файл с сигнатурами '%1'" @@ -4708,9 +4730,9 @@ msgstr "Не удалось записать сохранение Wii." msgid "Failed to write config file!" msgstr "Не удалось записать файл с конфигурацией!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Не удалось записать изменённую карту памяти на диск." @@ -4718,12 +4740,12 @@ msgstr "Не удалось записать изменённую карту п msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Не удалось записать файл сохранения на диск." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4731,10 +4753,10 @@ msgstr "" "Не удалось записать выходной файл \"{0}\".\n" "Проверьте, достаточно ли у вас свободного места на выбранном диске." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Ошибка" @@ -4759,7 +4781,7 @@ msgstr "Быстрое" msgid "Fast Depth Calculation" msgstr "Быстрое вычисление глубины" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4776,7 +4798,7 @@ msgstr "Поле зрения" msgid "File Details" msgstr "Информация о файле" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4790,19 +4812,19 @@ msgstr "Формат файла:" msgid "File Info" msgstr "Информация о файле" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Имя файла" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Путь к файлу" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Размер файла" @@ -4831,13 +4853,13 @@ msgstr "" "Не найдены следующие файлы, указанные в M3U-файле \"{0}\":\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" "Размер файла не совпадает с размером ни одной известной карты памяти " "GameCube." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "Размер файла в заголовке не совпадает с настоящим размером карты." @@ -4893,7 +4915,7 @@ msgstr "От первого лица" msgid "Fix Checksums" msgstr "Исправить контр. суммы" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Не удалось исправить контрольные суммы" @@ -4903,7 +4925,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Флаги" @@ -5055,11 +5077,11 @@ msgstr "Кадров для записи:" msgid "France" msgstr "Франция" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Свободных блоков: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Свободных файлов: %1" @@ -5101,7 +5123,7 @@ msgid "Freelook Toggle" msgstr "Вкл./выкл. свободный обзор" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Французский" @@ -5130,7 +5152,7 @@ msgstr "От:" msgid "FullScr" msgstr "Во весь экран" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Функция" @@ -5162,7 +5184,7 @@ msgstr "Ядро GBA" msgid "GBA Port %1" msgstr "Порт GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "Настройки GBA" @@ -5174,11 +5196,11 @@ msgstr "Громкость GBA" msgid "GBA Window Size" msgstr "Размер окна GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -5299,11 +5321,11 @@ msgstr "Игра" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Картриджи от Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5327,7 +5349,7 @@ msgstr "Информация об игре" msgid "Game Folders" msgstr "Папки с играми" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID игры" @@ -5341,11 +5363,25 @@ msgstr "ID игры:" msgid "Game Status" msgstr "Статус игры" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Игра изменена на \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Игра уже запущена!" @@ -5356,6 +5392,10 @@ msgstr "" "Игра перезаписана сохранениями других игр. Повреждение данных после {0:#x}, " "{1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Настройки конкретной игры" @@ -5396,12 +5436,12 @@ msgstr "Клавиатура GameCube на порту %1" msgid "GameCube Memory Card Manager" msgstr "Менеджер карт памяти GameCube" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "Карты памяти GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Карты памяти GameCube (*.raw *.gcp)" @@ -5434,7 +5474,7 @@ msgstr "Общие" msgid "General and Options" msgstr "Общее и настройки" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Создать код Action Replay" @@ -5442,16 +5482,16 @@ msgstr "Создать код Action Replay" msgid "Generate a New Statistics Identity" msgstr "Сгенерировать новый ID сбора статистики" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Созданы имена символов из '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Немецкий" @@ -5460,14 +5500,14 @@ msgstr "Немецкий" msgid "Germany" msgstr "Германия" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "ГиБ" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Перейти к" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Режим гольфа" @@ -5646,15 +5686,15 @@ msgstr "" "Подходит для казуальных игр с 3 и более игроками, возможно, при нестабильных " "соединениях или соединениях с высокой задержкой." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Хост не управляет вводом" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Хост управляет вводом" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Создать сетевую игру" @@ -5672,7 +5712,7 @@ msgstr "Горячие клавиши" msgid "Hotkeys" msgstr "Горячие клавиши" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Для горячих клавиш требуется окно в фокусе" @@ -5723,7 +5763,7 @@ msgstr "" msgid "IP Address:" msgstr "IP-адрес:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "Настройки IPL" @@ -5732,7 +5772,7 @@ msgid "IR" msgstr "ИК" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Чувствительность ИК:" @@ -5788,7 +5828,7 @@ msgstr "" msgid "Identity Generation" msgstr "Генерация ID" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5843,7 +5883,7 @@ msgstr "Игнорировать" msgid "Ignore Format Changes" msgstr "Игнорировать изменение формата" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Игнорировать для данной сессии" @@ -5894,14 +5934,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Импортировать бэкап BootMii NAND..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Не удалось импортировать" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Импорт файлов сохранений" @@ -5909,11 +5949,11 @@ msgstr "Импорт файлов сохранений" msgid "Import Wii Save..." msgstr "Импортировать сохранение Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Импортирование бэкапа NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5992,21 +6032,21 @@ msgid "Info" msgstr "Информация" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Информация" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Запретить скринсейвер во время эмуляции" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Ввод" @@ -6051,7 +6091,7 @@ msgstr "Установить обновление" msgid "Install WAD..." msgstr "Установить WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Установить в NAND" @@ -6067,7 +6107,7 @@ msgstr "Инструкция" msgid "Instruction Breakpoint" msgstr "Точка останова инструкции" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Инструкция:" @@ -6116,7 +6156,7 @@ msgstr "Внутреннее разрешение" msgid "Internal Resolution:" msgstr "Внутреннее разрешение:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -6128,7 +6168,7 @@ msgstr "Интерпретатор (самый медленный)" msgid "Interpreter Core" msgstr "Ядро интерпретатора" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Некорректное выражение." @@ -6145,7 +6185,7 @@ msgstr "Некорректный набор %1 указан: %2" msgid "Invalid Player ID" msgstr "Некорректный ID игрока" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Некорректный адрес модуля RSO: %1" @@ -6153,7 +6193,7 @@ msgstr "Некорректный адрес модуля RSO: %1" msgid "Invalid callstack" msgstr "Некорректный стэк вызовов" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Некорректные контрольные суммы." @@ -6161,7 +6201,7 @@ msgstr "Некорректные контрольные суммы." msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Неверный хост-сервер" @@ -6170,7 +6210,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Неверные входные данные для поля \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Неверные входные данные" @@ -6202,7 +6242,7 @@ msgstr "Неверная строка поиска (невозможно кон msgid "Invalid search string (only even string lengths supported)" msgstr "Неверная строка поиска (поддерживаются только строки чётной длины)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Неверный ID продукта." @@ -6211,7 +6251,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Итальянский" @@ -6318,7 +6358,7 @@ msgstr "Японский" msgid "Japanese (Shift-JIS)" msgstr "Японская (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Держать окно поверх остальных" @@ -6386,7 +6426,7 @@ msgstr "Сохр. LR" msgid "Label" msgstr "Название" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Посл. значение" @@ -6490,7 +6530,7 @@ msgstr "Прослушивание" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Загр." @@ -6625,7 +6665,7 @@ msgstr "Быстрая загрузка из слота" msgid "Load Wii Save" msgstr "Загружать сохранения Wii" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Загрузить системное меню Wii %1" @@ -6637,8 +6677,8 @@ msgstr "Загрузить из выбранного слота" msgid "Load from Slot %1 - %2" msgstr "Быстрая загрузка из слота %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Загрузить файл с картой" @@ -6646,7 +6686,7 @@ msgstr "Загрузить файл с картой" msgid "Load..." msgstr "Загрузить..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Загружены символы из '%1'" @@ -6664,7 +6704,7 @@ msgstr "" msgid "Local" msgstr "Локальный адрес" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Захватывать курсор мыши" @@ -6693,7 +6733,7 @@ msgstr "Типы записей" msgid "Logger Outputs" msgstr "Вывод логов" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6708,7 +6748,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Соединение с сервером сетевой игры потеряно..." @@ -6737,7 +6777,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "УМИРАЕТ" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "Файлы Gameshark MadCatz" @@ -6745,7 +6785,7 @@ msgstr "Файлы Gameshark MadCatz" msgid "Main Stick" msgstr "Основной стик" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6789,11 +6829,11 @@ msgstr "" msgid "Match Found" msgstr "Найдено совпадение" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Максимальный буфер:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Максимальный размер буфера изменён на %1" @@ -6827,22 +6867,6 @@ msgstr "Карта памяти" msgid "Memory Card Manager" msgstr "Менеджер карт памяти" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Неверное имя файла карты памяти в слоте {0}\n" -"Регион не указан\n" -"\n" -"Путь к слоту {1} был изменен на\n" -"{2}\n" -"Скопировать старый файл в это новое место?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Переопределение памяти" @@ -6851,19 +6875,19 @@ msgstr "Переопределение памяти" msgid "Memory breakpoint options" msgstr "Опции точек останова в памяти" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: вызван ClearBlock некорректного участка памяти ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: вызвано чтение некорректного участка памяти ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: вызвана запись в некорректный участок памяти ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6892,17 +6916,17 @@ msgstr "Разное" msgid "Misc Settings" msgstr "Разное" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Расхождение между количеством свободных блоков в заголовке и количеством " "неиспользованных блоков." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "Расхождение во внутренних структурах данных." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6936,8 +6960,8 @@ msgstr "" "

Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Найдено модулей: %1" @@ -6966,20 +6990,20 @@ msgstr "Симуляция движения" msgid "Motor" msgstr "Мотор" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6993,14 +7017,20 @@ msgstr "Перемещение" msgid "Movie" msgstr "Ролик" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "&Нет для всех" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "Проверка NAND" @@ -7031,11 +7061,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Имя" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Название новой метки:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Название удаляемой метки:" @@ -7056,8 +7086,8 @@ msgstr "Имя:" msgid "Native (640x528)" msgstr "Родное (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Стандартный файл GCI" @@ -7077,11 +7107,11 @@ msgstr "Настройка сетевой игры" msgid "Netherlands" msgstr "Нидерландский" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Рассинхронизация сетевой игры в NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" "Произошла рассинхронизация при сетевой игре. Из этого состояния возобновить " @@ -7096,7 +7126,7 @@ msgstr "Сеть" msgid "Network dump format:" msgstr "Формат дампа сети:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Никогда" @@ -7104,7 +7134,7 @@ msgstr "Никогда" msgid "Never Auto-Update" msgstr "Запретить автообновление" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Новая" @@ -7117,7 +7147,7 @@ msgstr "Новая точка останова" msgid "New Search" msgstr "Новый поиск" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Новая метка..." @@ -7129,7 +7159,7 @@ msgstr "Новый ID сгенерирован." msgid "New instruction:" msgstr "Новая инструкция:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Новая метка" @@ -7186,13 +7216,13 @@ msgstr "Нет совпадений" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Нет описания" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Ошибок нет." @@ -7212,10 +7242,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Проблем не обнаружено." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "В файле M3U \"{0}\" не найдены пути" @@ -7247,7 +7281,7 @@ msgstr "Профили для игровой настройки '{0}' не на msgid "No recording loaded." msgstr "Запись не загружена." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Данные сохранений не найдены." @@ -7269,10 +7303,6 @@ msgstr "Отсутствует" msgid "North America" msgstr "Северная Америка" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Не найдено" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Не установлено" @@ -7281,7 +7311,7 @@ msgstr "Не установлено" msgid "Not all players have the game. Do you really want to start?" msgstr "Не у всех игроков есть игра. Вы действительно хотите начать?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7291,7 +7321,7 @@ msgstr "" "Недостаточно свободных блоков на выбранной карте памяти. Требуется свободных " "блоков: не менее %n." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7301,6 +7331,10 @@ msgstr "" "Недостаточно свободных файлов на выбранной карте памяти. Требуется свободных " "файлов: не менее %n." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7355,7 +7389,7 @@ msgstr "Ориентация нунчака" msgid "Nunchuk Stick" msgstr "Стик нунчака" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7386,7 +7420,7 @@ msgstr "Смещение" msgid "On" msgstr "Вкл" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -7394,7 +7428,7 @@ msgstr "" msgid "Online &Documentation" msgstr "Онлайн-&документация" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7402,7 +7436,7 @@ msgstr "" "Добавлять только символы с префиксом:\n" "(Пусто - все символы)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7415,7 +7449,7 @@ msgstr "" msgid "Open" msgstr "Открыть" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Открыть &папку с образом" @@ -7427,7 +7461,7 @@ msgstr "Открыть папку..." msgid "Open FIFO log" msgstr "Открыть лог FIFO" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Открыть папку с &сохранениями GameCube" @@ -7435,7 +7469,7 @@ msgstr "Открыть папку с &сохранениями GameCube" msgid "Open Riivolution XML..." msgstr "Открыть XML Riivolution..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Открыть папку с &сохранениями Wii" @@ -7623,7 +7657,7 @@ msgstr "Пауза" msgid "Pause at End of Movie" msgstr "Пауза в конце ролика" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Пауза при потере фокуса" @@ -7650,7 +7684,7 @@ msgstr "Попискельное освещение" msgid "Perform Online System Update" msgstr "Обновить систему через интернет" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Выполнить обновление системы" @@ -7668,7 +7702,7 @@ msgstr "" msgid "PiB" msgstr "ПиБ" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Выбрать шрифт для отладки" @@ -7684,7 +7718,7 @@ msgstr "Тангаж вниз" msgid "Pitch Up" msgstr "Тангаж вверх" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Платформа" @@ -7730,7 +7764,7 @@ msgstr "Направление" msgid "Port %1" msgstr "Порт %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7739,7 +7773,7 @@ msgstr "" msgid "Port:" msgstr "Порт:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Обнаружена возможная рассинхронизация: %1, вероятно, рассинхронизовался на " @@ -7761,15 +7795,15 @@ msgstr "Конфигурация шейдеров пост-обработки" msgid "Prefetch Custom Textures" msgstr "Предзагружать свои текстуры" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Преждевременный конец ролика в PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Преждевременный конец ролика в PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Преждевременный конец ролика в PlayWiimote. {0} > {1}" @@ -7794,7 +7828,7 @@ msgstr "Кнопка синхронизации" msgid "Pressure" msgstr "Давление" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7886,7 +7920,7 @@ msgstr "Открытые" msgid "Purge Game List Cache" msgstr "Очистить кэш списка игр" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7913,8 +7947,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Вопрос" @@ -7942,7 +7976,7 @@ msgstr "ГОТОВ" msgid "RSO Modules" msgstr "Модули RSO" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "Автообнаружение RSO" @@ -8096,12 +8130,12 @@ msgstr "" msgid "Refreshed current values." msgstr "Текущие значения обновлены." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Обновление..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8131,12 +8165,12 @@ msgstr "Напомнить позже" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Удалить" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Не удалось удалить" @@ -8144,11 +8178,11 @@ msgstr "Не удалось удалить" msgid "Remove Junk Data (Irreversible):" msgstr "Удалить мусорные данные (безвозвратно):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Удалить метку..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Удалить метку" @@ -8167,7 +8201,7 @@ msgstr "" msgid "Rename symbol" msgstr "Переименовать символ" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Окно отрисовки" @@ -8248,7 +8282,7 @@ msgstr "Менеджер наборов ресурсов" msgid "Resource Pack Path:" msgstr "Путь к наборам ресурсов:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Требуется перезапуск" @@ -8260,7 +8294,7 @@ msgstr "По умолчанию" msgid "Restore instruction" msgstr "Восстановить инструкцию" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Повтор" @@ -8360,7 +8394,7 @@ msgstr "Вибрация" msgid "Run &To Here" msgstr "Запуск &до сюда" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Запускать ядра GBA в выделенных потоках" @@ -8392,7 +8426,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8421,7 +8455,7 @@ msgstr "Безопасное" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8431,9 +8465,9 @@ msgstr "Сохр." msgid "Save All" msgstr "Сохранить все" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Экспортировать сохранение" @@ -8454,11 +8488,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Импортировать сохранение" @@ -8470,7 +8504,7 @@ msgstr "Сохранить самое старое сохранение" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8556,11 +8590,11 @@ msgstr "" msgid "Save as..." msgstr "Сохранить как..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Сохранить объединённый файл как" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8571,15 +8605,15 @@ msgstr "" "перезаписаны.\n" "Перезаписать сейчас?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Сохранение в той же папке, где и образ" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Сохранить файл с картой" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Сохранить файл сигнатуры" @@ -8601,11 +8635,11 @@ msgstr "" "Сохранённые сопряжения Wii Remote могут быть сброшены только при запущенной " "игре для Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Сохранения:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "Быстрое сохранение ролика {0} повреждено, остановка записи ролика..." @@ -8660,7 +8694,7 @@ msgstr "Найти инструкцию" msgid "Search games..." msgstr "Искать игры..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Поиск инструкции" @@ -8694,20 +8728,20 @@ msgstr "Выбрать" msgid "Select Dump Path" msgstr "Выберите путь к дампам" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Выберите папку для экспорта" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Выбрать BIOS GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Выбрать образ игры GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Выберите путь к файлам сохранений GBA" @@ -8787,7 +8821,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Выберите корень NAND Wii" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Выберите папку" @@ -8795,9 +8829,9 @@ msgstr "Выберите папку" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Выберите файл" @@ -8817,7 +8851,7 @@ msgstr "" msgid "Select a game" msgstr "Выберите игру" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Выберите продукт для установки в NAND" @@ -8825,11 +8859,11 @@ msgstr "Выберите продукт для установки в NAND" msgid "Select e-Reader Cards" msgstr "Выбрать e-карточки" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Выберите адрес модуля RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8837,12 +8871,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Выберите файл с ключами (дамп OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Выберите файл сохранения" @@ -8864,9 +8898,9 @@ msgstr "Выбранный профиль контроллера не сущес #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Выбранной игры нету в списке игр!" @@ -8878,7 +8912,7 @@ msgstr "Выбранный стэк вызовов потока" msgid "Selected thread context" msgstr "Выбранный контекст потока" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8886,7 +8920,7 @@ msgstr "" "Выбирает используемый аппаратный адаптер.

%1 не " "поддерживает эту возможность." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8929,7 +8963,7 @@ msgstr "" "и выбрать тот, с которым меньше проблем.

Если не " "уверены – выберите OpenGL." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8944,7 +8978,7 @@ msgstr "" "размеру окна.

Если не уверены – выберите " "Автоматически." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8965,7 +8999,7 @@ msgstr "" msgid "Send" msgstr "Отправить" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Месторасположение сенсора:" @@ -8989,7 +9023,7 @@ msgstr "IP-адрес сервера" msgid "Server Port" msgstr "Порт сервера" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Сервер отверг попытку обхода" @@ -9010,15 +9044,15 @@ msgstr "Изменить СК" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Сделать &образом по умолчанию" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Назначить файл карты памяти для слота A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Назначить файл карты памяти для слота B" @@ -9103,7 +9137,7 @@ msgstr "Показать &лог" msgid "Show &Toolbar" msgstr "Отображать панель &инструментов" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Показывать название запущенной игры в заголовке окна" @@ -9119,7 +9153,7 @@ msgstr "Австралия" msgid "Show Current Game on Discord" msgstr "Показывать текущую игру в Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Показывать интерфейс отладки" @@ -9191,7 +9225,7 @@ msgstr "Показывать пинг в сетевой игре" msgid "Show Netherlands" msgstr "Голландия" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Показывать наэкранные сообщения" @@ -9261,10 +9295,23 @@ msgstr "Мир" msgid "Show in &memory" msgstr "Показать в &памяти" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Показать в коде" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Показывать в списке серверов" @@ -9281,7 +9328,7 @@ msgstr "" "Показывает различные статистики отрисовки.

Если не " "уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9290,7 +9337,7 @@ msgstr "" "рассинхроне в сетевой игре.

Если не уверены – " "оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9394,7 +9441,7 @@ msgstr "Пропуск отрисовки" msgid "Skip EFB Access from CPU" msgstr "Пропустить доступ к EFB из ЦП" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Пропускать главное меню" @@ -9426,7 +9473,7 @@ msgstr "Ползунок" msgid "Slot A" msgstr "Слот A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Слот A:" @@ -9434,7 +9481,7 @@ msgstr "Слот A:" msgid "Slot B" msgstr "Слот B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Слот B:" @@ -9490,7 +9537,7 @@ msgid "Spain" msgstr "Испания" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Испанский" @@ -9499,7 +9546,7 @@ msgstr "Испанский" msgid "Speaker Pan" msgstr "Баланс звука" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Громкость динамика:" @@ -9581,11 +9628,11 @@ msgstr "Запускать во весь экран" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Игра начата" @@ -9758,10 +9805,10 @@ msgstr "Стилус" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Успешно" @@ -9779,16 +9826,16 @@ msgstr "Успешно сконвертировано образов: %n." msgid "Successfully deleted '%1'." msgstr "'%1' успешно удалён." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Файлы сохранений (%n из %1 шт.) успешно экспортированы." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Файлы сохранений успешно экспортированы" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Сертификаты успешно извлечены из NAND" @@ -9800,16 +9847,16 @@ msgstr "Файл успешно извлечён." msgid "Successfully extracted system data." msgstr "Системные данные успешно извлечены." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Файл сохранения успешно импортирован." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Данный продукт успешно установлен в NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Данный продукт успешно удалён из NAND." @@ -9817,7 +9864,7 @@ msgstr "Данный продукт успешно удалён из NAND." msgid "Support" msgstr "Поддержка" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Поддерживаемые форматы файлов" @@ -9854,11 +9901,11 @@ msgstr "" msgid "Swing" msgstr "Взмах" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Переключиться на A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Переключиться на B" @@ -9937,7 +9984,7 @@ msgstr "Синхронизация Gecko-кодов..." msgid "Synchronizing save data..." msgstr "Синхронизация сохранений..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Язык системы:" @@ -9952,8 +9999,8 @@ msgstr "Ввод TAS" msgid "TAS Tools" msgstr "Управление TAS" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10024,7 +10071,7 @@ msgstr "IPL-файла нет в списке известных коррект msgid "The Masterpiece partitions are missing." msgstr "Отсутствуют разделы Masterpiece." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10032,7 +10079,7 @@ msgstr "" "Не получается исправить NAND. Рекомендуется создать резервную копию текущих " "данных и поставить NAND с нуля." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND успешно исправлен." @@ -10083,11 +10130,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Не удалось прочесть диск (в диапазоне {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Ожидаемый диск не был найден." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10121,11 +10168,11 @@ msgstr "Введён неверный PID." msgid "The entered VID is invalid." msgstr "Введён неверный VID." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "В выражении содержится синтаксическая ошибка." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10157,6 +10204,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Файл {0} уже открыт, нельзя записать заголовок." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Файловая система некорректна или не может быть прочитана." @@ -10265,7 +10319,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Полученный расшифрованный AR-код не содержит строк." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10304,7 +10358,7 @@ msgstr "Указанный общий ключевой индекс: {0}, а д msgid "The specified file \"{0}\" does not exist" msgstr "Указанный файл \"{0}\" не существует" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "Выбранная карта памяти уже содержит файл \"%1\"." @@ -10362,7 +10416,7 @@ msgstr "В первой таблице разделов содержится с msgid "There is nothing to undo!" msgstr "Нет действий для отмены!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "При добавлении ярлыка на рабочий стол произошла ошибка" @@ -10404,11 +10458,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Это USB-устройства уже в белом списке." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Этот WAD не является загрузочным." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Этот WAD не является корректным." @@ -10421,7 +10475,7 @@ msgstr "" "Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Это нельзя отменить!" @@ -10549,7 +10603,7 @@ msgstr "" "Это ПО не должно использоваться для воспроизведения игр, которыми вы не " "владеете." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Этот продукт нельзя загрузить." @@ -10562,7 +10616,7 @@ msgstr "Этот продукт настроен на использование msgid "This title is set to use an invalid common key." msgstr "Этот продукт настроен на использование некорректного общего ключа." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10574,7 +10628,7 @@ msgstr "" "\n" "DSPHLE: Неизвестный ucode (CRC = {0:08x}) - принудительное AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10648,7 +10702,7 @@ msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" "Период времени стабильного ввода для запуска калибровки. (ноль - отключить)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10690,7 +10744,7 @@ msgid "Toggle Aspect Ratio" msgstr "Изменить соотношение сторон" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Точка останова" @@ -10750,7 +10804,7 @@ msgstr "Ошибка токенизации." msgid "Toolbar" msgstr "Панель инструментов" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "сверху" @@ -10802,8 +10856,8 @@ msgstr "Тач-панель" msgid "Traditional Chinese" msgstr "Традиц. китайский" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Ошибка промежуточного сервера" @@ -10811,7 +10865,7 @@ msgstr "Ошибка промежуточного сервера" msgid "Traversal Server" msgstr "Промежуточный сервер" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Истекло время ожидания подключения обходного сервера к хосту" @@ -10837,7 +10891,7 @@ msgid "Triggers" msgstr "Рычажки" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10871,7 +10925,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "Ошибка белого списка USB" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10882,7 +10936,7 @@ msgstr "" "слабого оборудования.

Если не уверены – выберите " "этот режим." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10895,7 +10949,7 @@ msgstr "" "вас не бывает подтормаживаний или же у вас слабый ГП — не пользуйтесь этим " "режимом.
" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10909,7 +10963,7 @@ msgstr "" "подтормаживания при компиляции шейдеров с минимальным влиянием на " "производительность, но конечный результат зависит от поведения драйвера ГП." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Не удалось автоматически обнаружить модуль RSO" @@ -10969,11 +11023,11 @@ msgstr "Отменить быстрое сохранение" msgid "Uninstall" msgstr "Деактивировать" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Удалить из NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10992,11 +11046,11 @@ msgstr "США" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Неизвестно" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Неизвестная команда DVD {0:08x} - критическая ошибка" @@ -11044,11 +11098,11 @@ msgstr "Неизвестный диск" msgid "Unknown error occurred." msgstr "Произошла неизвестная ошибка." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Неизвестная ошибка {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Неизвестная ошибка." @@ -11104,8 +11158,8 @@ msgstr "Беззнаковое целое" msgid "Up" msgstr "Вверх" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Обновление" @@ -11167,11 +11221,11 @@ msgstr "Wii Remote вертикально" msgid "Usage Statistics Reporting Settings" msgstr "Настройки отправки статистики об использовании" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Использовать встроенную базу названий игр" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Использовать свой стиль" @@ -11183,7 +11237,7 @@ msgstr "Использовать кодек без потерь (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Режим PAL60 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Использовать обработчики ошибок" @@ -11245,11 +11299,11 @@ msgstr "" msgid "User Config" msgstr "Пользовательская конфигурация" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Интерфейс пользователя" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Свой стиль:" @@ -11276,7 +11330,7 @@ msgstr "" "зависимости от игры и/или ГП.

Если не уверены – " "оставьте включенным." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11286,7 +11340,7 @@ msgstr "" "этого будет создано отдельное окно вывода.

Если не " "уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
В противном случае, " "если не уверены – оставьте выключенной." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11547,7 +11601,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Предупреждение" @@ -11569,7 +11623,7 @@ msgstr "" "Предупреждение: количество блоков, указанное в BAT ({0}), не совпадает с " "указанным в заголовке загруженного файла ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11579,7 +11633,7 @@ msgstr "" "ролика. (байт {0} > {1}) (ввод {2} > {3}). Перед продолжением загрузите " "другое сохранение или загрузите это сохранение с правами на запись." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11589,7 +11643,7 @@ msgstr "" "текущим кадром в сохранении (байт {0} < {1}) (кадр {2} < {3}). Перед " "продолжением загрузите другое сохранение." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11599,7 +11653,7 @@ msgstr "" "({1:#x}). Перед продолжением загрузите другое сохранение или загрузите это " "сохранение с правами на запись. Иначе весьма вероятна рассинхронизация." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11680,7 +11734,7 @@ msgstr "" "

Если не уверены – оставьте включенным." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Белый список пробрасываемых USB-устройств" @@ -11726,7 +11780,7 @@ msgstr "Кнопки Wii Remote" msgid "Wii Remote Orientation" msgstr "Ориентация Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Настройки контроллера Wii" @@ -11754,7 +11808,7 @@ msgstr "Wii и Wii Remote" msgid "Wii data is not public yet" msgstr "Данные Wii ещё не опубликованы" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Файлы сохранений Wii (*.bin);;Все файлы (*)" @@ -11762,7 +11816,7 @@ msgstr "Файлы сохранений Wii (*.bin);;Все файлы (*)" msgid "WiiTools Signature MEGA File" msgstr "MEGA-файл с сигнатурами WiiTools" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11819,9 +11873,21 @@ msgstr "Записать в лог и остановиться" msgid "Write to Window" msgstr "Записать в окно" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Неправильная версия" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11902,18 +11968,6 @@ msgstr "" "\n" "Вы уверены, что хотите продолжить?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Вы пытаетесь использовать бэкенд Vulkan (Metal) на неподдерживаемой " -"операционной системе. Чтобы включить весь функционал, вы должны использовать " -"macOS версии 10.14 (Mojave) и новее. Пожалуйста, сообщайте только о тех " -"проблемах, которые также возникают в версиях 10.14+." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11957,7 +12011,7 @@ msgstr "Вы должны ввести имя вашей сессии!" msgid "You must provide a region for your session!" msgstr "Вы должны указать регион для вашей сессии!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Необходимо перезапустить Dolphin, чтобы изменения вступили в силу." @@ -12027,12 +12081,12 @@ msgstr "см" msgid "d3d12.dll could not be loaded." msgstr "не удалось загрузить d3d12.dll." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "по умолчанию" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "не подключено" @@ -12095,13 +12149,13 @@ msgstr "" msgid "none" msgstr "отсутствует" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "выкл." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "на" @@ -12138,7 +12192,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12164,7 +12218,7 @@ msgstr "" "папку" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} из {1} блоков. Процент сжатия: {2}%" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index b110b66807..6472d3b642 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -36,7 +36,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -165,19 +165,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -214,7 +214,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -277,7 +277,7 @@ msgstr "" msgid "&About" msgstr "" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -369,7 +369,7 @@ msgstr "" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "" @@ -524,7 +524,7 @@ msgstr "&Pauza" msgid "&Play" msgstr "&Pokreni" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Pribor/Opcije" @@ -574,7 +574,7 @@ msgstr "" msgid "&Stop" msgstr "&Stop" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "" @@ -604,7 +604,7 @@ msgstr "" msgid "&Website" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "" @@ -612,15 +612,15 @@ msgstr "" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "" @@ -657,9 +657,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -849,7 +849,7 @@ msgstr "" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -864,8 +864,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -879,15 +879,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1022,7 +1022,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1064,8 +1064,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1092,18 +1092,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Dodaj..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1182,10 +1182,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1193,20 +1198,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1227,7 +1249,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1249,7 +1271,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1305,7 +1327,7 @@ msgstr "" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1331,7 +1353,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1343,7 +1365,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1359,7 +1381,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1376,7 +1398,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1437,11 +1459,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1468,7 +1490,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1480,7 +1502,7 @@ msgstr "" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1533,7 +1555,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1568,7 +1590,7 @@ msgstr "Osnovne opcije" msgid "Bass" msgstr "Bas" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1600,7 +1622,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1642,11 +1664,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1654,7 +1676,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Donji deo/dno" @@ -1681,7 +1703,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1715,12 +1737,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "" @@ -1835,7 +1857,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1843,14 +1865,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1877,7 +1899,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1903,7 +1925,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "" @@ -1919,7 +1941,7 @@ msgstr "Promeni Disk" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1971,7 +1993,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1985,16 +2007,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Biraj fajl da otvoris " -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2019,7 +2044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Ocisti" @@ -2072,7 +2097,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2097,7 +2122,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2149,23 +2174,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2220,7 +2245,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2328,11 +2353,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2358,9 +2383,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "" @@ -2372,19 +2397,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2392,19 +2417,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiranje neuspesno " - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2444,14 +2465,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2495,7 +2516,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2507,15 +2528,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2569,7 +2590,7 @@ msgstr "" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2672,23 +2693,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2790,21 +2811,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Obrisi" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2820,10 +2841,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2843,7 +2864,7 @@ msgstr "" msgid "Detect" msgstr "Detekuj" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2864,7 +2885,7 @@ msgstr "Uredjaj " msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Opcije Uredjaja " @@ -2911,8 +2932,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3005,25 +3026,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3040,9 +3061,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3054,8 +3075,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3070,7 +3091,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3088,7 +3109,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3153,7 +3174,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3333,7 +3354,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "" @@ -3406,7 +3427,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "" @@ -3438,8 +3459,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3489,7 +3510,7 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3599,7 +3620,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3612,7 +3633,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "" @@ -3645,7 +3666,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3657,7 +3678,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3676,46 +3697,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -3736,11 +3758,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3760,7 +3782,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3908,10 +3930,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3923,19 +3945,19 @@ msgstr "" msgid "Export Recording..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3947,7 +3969,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4021,7 +4043,7 @@ msgstr "" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4031,19 +4053,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4073,11 +4095,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4093,16 +4115,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4125,29 +4147,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4167,19 +4189,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4191,7 +4213,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4205,13 +4227,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4233,11 +4255,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4246,7 +4268,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4266,25 +4288,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4295,7 +4317,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4315,19 +4337,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4351,9 +4373,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4361,21 +4383,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4400,7 +4422,7 @@ msgstr "Brzo " msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4415,7 +4437,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4429,19 +4451,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4468,11 +4490,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4522,7 +4544,7 @@ msgstr "" msgid "Fix Checksums" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4532,7 +4554,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4670,11 +4692,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4712,7 +4734,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "" @@ -4741,7 +4763,7 @@ msgstr "" msgid "FullScr" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4773,7 +4795,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4785,11 +4807,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4892,11 +4914,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4918,7 +4940,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -4932,11 +4954,25 @@ msgstr "" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Igra je vec pokrenuta!" @@ -4945,6 +4981,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "" @@ -4985,12 +5025,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5023,7 +5063,7 @@ msgstr "" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5031,16 +5071,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Nemacki " @@ -5049,12 +5089,12 @@ msgstr "Nemacki " msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5224,15 +5264,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5250,7 +5290,7 @@ msgstr "" msgid "Hotkeys" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5295,7 +5335,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "" @@ -5304,7 +5344,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "" @@ -5341,7 +5381,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5384,7 +5424,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5421,14 +5461,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5436,11 +5476,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5512,21 +5552,21 @@ msgid "Info" msgstr "Info " #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Informacija " -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "" @@ -5571,7 +5611,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5587,7 +5627,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5634,7 +5674,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5646,7 +5686,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5663,7 +5703,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5671,7 +5711,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5679,7 +5719,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5688,7 +5728,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5720,7 +5760,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5729,7 +5769,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italianski " @@ -5833,7 +5873,7 @@ msgstr "Japanski " msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5901,7 +5941,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -5996,7 +6036,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Ucitaj " @@ -6131,7 +6171,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6143,8 +6183,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6152,7 +6192,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6167,7 +6207,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6196,7 +6236,7 @@ msgstr "" msgid "Logger Outputs" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6207,7 +6247,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6236,7 +6276,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6244,7 +6284,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6283,11 +6323,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6321,16 +6361,6 @@ msgstr "" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6339,19 +6369,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6377,15 +6407,15 @@ msgstr "" msgid "Misc Settings" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6408,8 +6438,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6438,20 +6468,20 @@ msgstr "" msgid "Motor" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6465,14 +6495,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6503,11 +6539,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6528,8 +6564,8 @@ msgstr "" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6549,11 +6585,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6566,7 +6602,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6574,7 +6610,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6587,7 +6623,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6599,7 +6635,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6656,13 +6692,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6682,10 +6718,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6713,7 +6753,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6733,10 +6773,6 @@ msgstr "" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "" @@ -6745,7 +6781,7 @@ msgstr "" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6753,7 +6789,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6761,6 +6797,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6813,7 +6853,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6844,7 +6884,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6852,13 +6892,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6869,7 +6909,7 @@ msgstr "" msgid "Open" msgstr "Otvori " -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6881,7 +6921,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6889,7 +6929,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7077,7 +7117,7 @@ msgstr "Pauza " msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7104,7 +7144,7 @@ msgstr "" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7122,7 +7162,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7138,7 +7178,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7184,7 +7224,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7193,7 +7233,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7213,15 +7253,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7244,7 +7284,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7325,7 +7365,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7351,8 +7391,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Pitanje " @@ -7380,7 +7420,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7525,12 +7565,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7560,12 +7600,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7573,11 +7613,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7593,7 +7633,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7672,7 +7712,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7684,7 +7724,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7784,7 +7824,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7816,7 +7856,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7845,7 +7885,7 @@ msgstr "Siguran " #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7855,9 +7895,9 @@ msgstr "Snimaj" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7878,11 +7918,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7894,7 +7934,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7980,26 +8020,26 @@ msgstr "" msgid "Save as..." msgstr "Snimaj kao..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8019,11 +8059,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8076,7 +8116,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8108,20 +8148,20 @@ msgstr "Izaberi " msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8201,7 +8241,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8209,9 +8249,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8231,7 +8271,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8239,11 +8279,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8251,12 +8291,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Izaberi \"snimani fajl/the save state\"" @@ -8278,9 +8318,9 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8292,13 +8332,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8325,7 +8365,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8334,7 +8374,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8348,7 +8388,7 @@ msgstr "" msgid "Send" msgstr "Isprati" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "" @@ -8368,7 +8408,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8389,15 +8429,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8477,7 +8517,7 @@ msgstr "" msgid "Show &Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8493,7 +8533,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8565,7 +8605,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8635,10 +8675,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8653,20 +8706,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8753,7 +8806,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8779,7 +8832,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8787,7 +8840,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8839,7 +8892,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "" @@ -8848,7 +8901,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "" @@ -8930,11 +8983,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9097,10 +9150,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9118,16 +9171,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9139,16 +9192,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9156,7 +9209,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9189,11 +9242,11 @@ msgstr "" msgid "Swing" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9270,7 +9323,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "" @@ -9285,8 +9338,8 @@ msgstr "" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9355,13 +9408,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9407,11 +9460,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9441,11 +9494,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9469,6 +9522,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9565,7 +9625,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9599,7 +9659,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9654,7 +9714,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9688,11 +9748,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9703,7 +9763,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9800,7 +9860,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9813,7 +9873,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9821,7 +9881,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9881,7 +9941,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9923,7 +9983,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9983,7 +10043,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "" @@ -10035,8 +10095,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10044,7 +10104,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10068,7 +10128,7 @@ msgid "Triggers" msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10102,14 +10162,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10117,7 +10177,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10126,7 +10186,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10178,11 +10238,11 @@ msgstr "" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10199,11 +10259,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Nepoznat/o" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10247,11 +10307,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10307,8 +10367,8 @@ msgstr "" msgid "Up" msgstr "" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Updejt " @@ -10368,11 +10428,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10384,7 +10444,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "" @@ -10444,11 +10504,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10471,14 +10531,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10709,7 +10769,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Upozorenje " @@ -10726,28 +10786,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10802,7 +10862,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10848,7 +10908,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10876,7 +10936,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10884,7 +10944,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10941,8 +11001,20 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11009,14 +11081,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11054,7 +11118,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "" @@ -11124,12 +11188,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11190,13 +11254,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11233,7 +11297,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11256,7 +11320,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index f31d20f309..cb72f2167a 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -50,7 +50,7 @@ msgstr "" "På grund av att detta är en utvecklarversion av en titel kan Dolphin inte " "verifiera att den inte har mixtrats med." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -195,19 +195,19 @@ msgstr "" "%2 objekt\n" "Nuvarande bildruta: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 har gått med" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 har gått ut" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 är inte en giltig ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 golfar nu" @@ -244,7 +244,7 @@ msgstr "%1% (normal hastighet)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -307,7 +307,7 @@ msgstr "&4x" msgid "&About" msgstr "&Om" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Lägg till minnesbrytpunkt" @@ -399,7 +399,7 @@ msgstr "&Radera" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "&Ta bort bevakning" @@ -497,7 +497,7 @@ msgstr "Tidsut&jämning" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Språk:" @@ -554,7 +554,7 @@ msgstr "&Pausa" msgid "&Play" msgstr "&Spela" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Egenskaper" @@ -604,7 +604,7 @@ msgstr "&Hastighetsbegränsning:" msgid "&Stop" msgstr "S&toppa" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -634,7 +634,7 @@ msgstr "&Bevakning" msgid "&Website" msgstr "&Webbplats" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -642,15 +642,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Ja" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "'%1' hittades inte, inga symbolnamn genererade" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "'%1' hittades inte, skannar efter vanliga funktioner istället" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Ingen)" @@ -687,9 +687,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -879,7 +879,7 @@ msgstr "< Mindre än" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -897,8 +897,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Större än" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "En nätspelssession pågår redan!" @@ -919,15 +919,15 @@ msgstr "" "Om du installerar denna WAD kommer titeln skrivas över. Detta går inte att " "ångra. Vill du fortsätta?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "En skiva håller redan på att sättas in." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "En snabbsparning kan inte laddas utan att ange ett spel att starta." -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1094,7 +1094,7 @@ msgstr "Action Replay: Normalkod {0}: Ogiltig undertyp {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "Aktivera nätspelschatt" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktiv" @@ -1106,7 +1106,7 @@ msgstr "Aktiv trådkö" msgid "Active threads" msgstr "Aktiva trådar" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "Adapter" @@ -1136,8 +1136,8 @@ msgstr "Lägg till ny DSU-server" msgid "Add New USB Device" msgstr "Lägg till ny USB-enhet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "Skapa genväg på skrivbordet" @@ -1164,18 +1164,18 @@ msgstr "Lägg till minnesbrytpunkt" msgid "Add to &watch" msgstr "Lägg till &bevakning" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "Lägg till bevakning" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Lägg till..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1273,10 +1273,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "Justerat till datatypens längd" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1284,20 +1289,37 @@ msgid "All Files" msgstr "Alla filer" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Alla filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alla GC/Wii-filer" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alla snabbsparningar (*.sav *.s##);; Alla filer (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Alla enheter" @@ -1318,7 +1340,7 @@ msgstr "Alla spelares sparfiler har synkroniserats." msgid "Allow Mismatched Region Settings" msgstr "Tillåt regionsinställningar som inte matchar" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Tillåt rapportering av användningsstatistik" @@ -1342,7 +1364,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Alternativa inmatningskällor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "Alltid" @@ -1398,7 +1420,7 @@ msgstr "Kantutjämning:" msgid "Any Region" msgstr "Valfri region" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "Lägg till signatur i" @@ -1426,7 +1448,7 @@ msgstr "Apploader-datum:" msgid "Apply" msgstr "Verkställ" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "Applicera signaturfil" @@ -1438,7 +1460,7 @@ msgstr "Upptäck godtyckliga mipmaps" msgid "Are you sure that you want to delete '%1'?" msgstr "Vill du verkligen radera '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "Vill du verkligen radera den här filen?" @@ -1454,7 +1476,7 @@ msgstr "Är du säker på att du vill avsluta nätspelssessionen?" msgid "Are you sure?" msgstr "Är du säker?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "Bildförhållande" @@ -1471,7 +1493,7 @@ msgstr "Tilldela kontrolluttag" msgid "Assign Controllers" msgstr "Tilldela kontroller" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "Åtminstone två av de markerade sparfilerna har samma interna filnamn." @@ -1537,11 +1559,11 @@ msgstr "Autojustera fönsterstorlek" msgid "Auto-Hide" msgstr "Dölj automatiskt" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "Upptäck RSO-moduler automatiskt?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1574,7 +1596,7 @@ msgstr "" "MAC-adress måste användas. Generera en ny MAC-adress som börjar med 00:09:bf " "eller 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1586,7 +1608,7 @@ msgstr "BP-register" msgid "Back Chain" msgstr "Bakåtkedja" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "Backend" @@ -1639,7 +1661,7 @@ msgstr "Dålig förskjutning angavs." msgid "Bad value provided." msgstr "Ogiltigt värde angivet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1674,7 +1696,7 @@ msgstr "Grundläggande inställningar" msgid "Bass" msgstr "Bas" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "Batchläget kan inte användas utan att ange ett spel att starta." @@ -1706,7 +1728,7 @@ msgstr "Binär SSL (skriv)" msgid "Bitrate (kbps):" msgstr "Bithastighet (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1750,11 +1772,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausa vid start" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-kopia (*bin);;Alla filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii-nyckelfil (*bin);;Alla filer (*)" @@ -1762,7 +1784,7 @@ msgstr "BootMii-nyckelfil (*bin);;Alla filer (*)" msgid "Borderless Fullscreen" msgstr "Kantlös helskärm" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Under" @@ -1789,7 +1811,7 @@ msgstr "Brytpunkt" msgid "Breakpoint encountered! Step out aborted." msgstr "Brytpunkt påträffades! Urstegning avbruten." -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "Brytpunkter" @@ -1823,12 +1845,12 @@ msgstr "Bläddra bland &nätspelssessioner..." msgid "Buffer Size:" msgstr "Buffertstorlek:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "Buffertstorleken ändrades till %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Buffert:" @@ -1955,7 +1977,7 @@ msgstr "Kamera 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "Kamerans synfält (påverkar pekarens känslighet)." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "Det går bara att generera AR-koder för värden i virtuellt minne." @@ -1963,15 +1985,15 @@ msgstr "Det går bara att generera AR-koder för värden i virtuellt minne." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan inte hitta Wii-fjärrkontrollen med anslutnings-handle {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Det går inte att starta en nätspelssession medan ett spel fortfarande körs!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -2003,7 +2025,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "Kan inte hitta GC-IPL-filen." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "Det går inte att generera en AR-kod för den här adressen." @@ -2029,7 +2051,7 @@ msgstr "Center" msgid "Center and Calibrate" msgstr "Centrera och kalibrera" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "Byt &skiva" @@ -2045,7 +2067,7 @@ msgstr "Byt skiva" msgid "Change Discs Automatically" msgstr "Byt skivor automatiskt" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "Byt skiva till {0}" @@ -2105,7 +2127,7 @@ msgstr "Leta efter ändringar i spellistan i bakgrunden" msgid "Check for updates" msgstr "Leta efter uppdateringar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2121,16 +2143,19 @@ msgstr "Kontrollsumma" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Välj en fil att öppna" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "Välj primär indatafil" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "Välj sekundär indatafil" @@ -2155,7 +2180,7 @@ msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Rensa" @@ -2208,7 +2233,7 @@ msgstr "" msgid "Code:" msgstr "Kod:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "Koder mottagna!" @@ -2233,7 +2258,7 @@ msgstr "Kompilera shaders före start" msgid "Compiling Shaders" msgstr "Kompilerar shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2285,23 +2310,23 @@ msgstr "Konfigurera utmatning" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekräfta" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "Bekräfta byte av backend" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Bekräfta vid stopp" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2356,7 +2381,7 @@ msgstr "Vill du ansluta till internet och uppdatera Wii-systemmjukvaran?" msgid "Connected" msgstr "Ansluten" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "Ansluter" @@ -2482,11 +2507,11 @@ msgstr "Konvergens:" msgid "Convert" msgstr "Konvertera" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Konvertera fil..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Konvertera valda filer..." @@ -2517,9 +2542,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopiera" @@ -2531,19 +2556,19 @@ msgstr "Kopiera &funktion" msgid "Copy &hex" msgstr "Kopiera &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "Kopiera adress" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "Kopiering misslyckades" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "Kopiera hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2551,19 +2576,15 @@ msgstr "" msgid "Copy code &line" msgstr "Kopiera kod&rad" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopiering misslyckades" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "Kopiera till A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "Kopiera till B" @@ -2607,7 +2628,7 @@ msgstr "" "Kunde inte ladda ner uppdateringsinformation från Nintendo. Kontrollera " "internetanslutningen och försök igen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2618,7 +2639,7 @@ msgstr "" "\n" "Emuleringen kommer nu avslutas." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2679,7 +2700,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "Kunde inte känna igen filen {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2699,15 +2720,15 @@ msgstr "" "I så fall kan du behöva ställa in dina minneskortsplatser i inställningarna " "igen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "Kunde inte slå upp centralserver" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "Kunde inte öppna filen." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "Kunde inte läsa in filen." @@ -2770,7 +2791,7 @@ msgstr "Överbländning" msgid "Current Region" msgstr "Nuvarande region" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "Nuvarande värde" @@ -2877,23 +2898,23 @@ msgstr "Dataöverföring" msgid "Data Type" msgstr "Datatyp" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Det finns data i ett område av filen som borde vara oanvänt." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "Data i okänt format eller trasig." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "Datainkonsekvens i GCMemcardManager, avbryter åtgärd." -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "Data mottagen!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro-filer" @@ -3001,21 +3022,21 @@ msgstr "" "dolphin_emphasis>" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Radera" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "Radera fil..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "Radera valda filer..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Radera den existerande filen '{0}'?" @@ -3031,10 +3052,10 @@ msgstr "Djupandel:" msgid "Depth:" msgstr "Djup:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3054,7 +3075,7 @@ msgstr "Frikopplad" msgid "Detect" msgstr "Sök" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "Upptäcker RSO-moduler" @@ -3075,7 +3096,7 @@ msgstr "Enhet" msgid "Device PID (e.g., 0305)" msgstr "Enhetens PID (t.ex. 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Enhetsinställningar" @@ -3128,8 +3149,8 @@ msgstr "" msgid "Dis&connected" msgstr "&Frånkopplad" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "Avaktivera" @@ -3238,26 +3259,26 @@ msgstr "Avstånd" msgid "Distance of travel from neutral position." msgstr "Förflyttningsavstånd från neutral position." -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Godkänner du att Dolphin rapporterar information till Dolphins utvecklare?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vill du lägga till \"%1\" i listan av spelsökvägar?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "Vill du tömma symbolnamnlistan?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Vill du radera denna/dessa %n markerade sparfil(er)?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Vill du stoppa den aktuella emuleringen?" @@ -3274,9 +3295,9 @@ msgstr "Dolphin-FIFO-logg (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Förinställd Dolphin-spelmod" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin-map-fil (*.map)" @@ -3288,8 +3309,8 @@ msgstr "Dolphin-signatur-CSV-fil" msgid "Dolphin Signature File" msgstr "Dolphin-signaturfil" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin-TAS-filmer (*.dtm)" @@ -3312,7 +3333,7 @@ msgstr "" "\n" "Vill du fortsätta ändå?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3333,7 +3354,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "Dolphin är en GameCube- och Wii-emulator som är open source och fri mjukvara." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin är för gammal för traverseringsservern" @@ -3401,7 +3422,7 @@ msgstr "Ladda ner koder" msgid "Download Codes from the WiiRD Database" msgstr "Ladda ner koder från WiiRD-databasen" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "Ladda ned spelomslag från GameTDB.com att använda i rutnätsläget" @@ -3599,7 +3620,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "Varaktighet för turboknappsläppning (bildrutor):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Nederländska" @@ -3680,7 +3701,7 @@ msgstr "Inbäddad bildrutebuffert (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emuleringstråd körs redan" @@ -3715,8 +3736,8 @@ msgstr "Emulering måste ha startats för att spela in." #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktivera" @@ -3766,7 +3787,7 @@ msgid "Enable Progressive Scan" msgstr "Aktivera Progressive scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "Vibration" @@ -3915,7 +3936,7 @@ msgstr "" msgid "Encoding" msgstr "Teckenkodning" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3932,7 +3953,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet initialiserades inte" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "Engelska" @@ -3965,7 +3986,7 @@ msgstr "Ange ny MAC-adress för bredbandsadaptern:" msgid "Enter password" msgstr "Ange lösenord" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Ange RSO-moduladressen:" @@ -3977,7 +3998,7 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3996,46 +4017,47 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fel" @@ -4058,11 +4080,11 @@ msgstr "Ett fel uppstod när sessionslistan skulle hämtas: %1" msgid "Error occurred while loading some texture packs" msgstr "Ett fel uppstod när vissa texturpaket laddades" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "Fel uppstod när koder behandlades." -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "Fel uppstod när data behandlades." @@ -4082,7 +4104,7 @@ msgstr "Fel uppstod när spardata synkroniserades!" msgid "Error writing file: {0}" msgstr "Fel uppstod när fil skrevs: {0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4236,10 +4258,10 @@ msgstr "Experimentell" msgid "Export All Wii Saves" msgstr "Exportera alla Wii-sparningar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "Exportering misslyckades" @@ -4251,19 +4273,19 @@ msgstr "Exportera inspelning" msgid "Export Recording..." msgstr "Exportera inspelning..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "Exportera sparfil" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "Exportera sparfiler" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "Exportera Wii-sparning" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "Exportera Wii-sparningar" @@ -4275,7 +4297,7 @@ msgstr "Exportera som .&gcs..." msgid "Export as .&sav..." msgstr "Exportera som .&sav..." -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4349,7 +4371,7 @@ msgstr "FIFO-spelare" msgid "Failed loading XML." msgstr "Misslyckades att ladda XML." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4361,19 +4383,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "Misslyckades att lägga till denna session i nätspelsindex: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "Misslyckades att lägga till i signaturfilen \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "Kunde inte ta gränssnitt för BT-genomsläpp" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "Misslyckades att ansluta till Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "Misslyckades att ansluta till server: %1" @@ -4407,11 +4429,11 @@ msgstr "" "Misslyckades att radera minneskort för nätspel. Bekräfta dina " "skrivbehörigheter." -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "Misslyckades att radera den valda filen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Misslyckades att koppla loss kärnans drivrutin för BT-genomsläpp: {0}" @@ -4427,16 +4449,16 @@ msgstr "Misslyckades att dumpa %1: Kan inte öppna filen" msgid "Failed to dump %1: Failed to write to file" msgstr "Misslyckades att dumpa %1: Kunde inte skriva till filen" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Misslyckades med att exportera %n av %1 sparfil(er)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "Misslyckades att exportera följande sparfiler:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "Misslyckades att extrahera certifikat från NAND-minnet" @@ -4462,18 +4484,18 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "Misslyckades att hitta en eller flera D3D-symboler" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "Misslyckades att importera \"%1\"." -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" "Misslyckades att importera sparfil. Starta spelet en gång och prova sedan " "igen." -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." @@ -4481,7 +4503,7 @@ msgstr "" "Misslyckades att importera sparfil. Den givna filen verkar vara skadad eller " "är inte en giltig Wii-sparfil." -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4492,7 +4514,7 @@ msgstr "" "minnet (Verktyg -> Hantera NAND -> Kontrollera NAND-minne...) och importera " "sedan sparfilen igen." -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "Misslyckades att initialisera kärnan" @@ -4515,19 +4537,19 @@ msgstr "Misslyckades att initialisera renderarklasser" msgid "Failed to install pack: %1" msgstr "Misslyckades att installera paket: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Misslyckades att installera denna titel till NAND-minnet." -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "Misslyckades att lyssna på port %1. Körs nätspelsservern redan?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "Misslyckades att ladda RSO-model vid %1" @@ -4539,7 +4561,7 @@ msgstr "Misslyckades att ladda d3d11.dll" msgid "Failed to load dxgi.dll" msgstr "Misslyckades att ladda dxgi.dll" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "Misslyckades att läsa map-filen \"%1\"" @@ -4555,13 +4577,13 @@ msgstr "" "Misslyckades att läsa in {0}. Om du använder Windows 7, prova att installera " "uppdateringspaketet KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Misslyckades att öppna '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "Misslyckades att öppna Bluetooth-enhet: {0}" @@ -4585,11 +4607,11 @@ msgstr "" "Misslyckades att öppna filen i en extern editor.\n" "Se till att det finns en applikation inställd för att öppna INI-filer." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "Kunde inte öppna fil." -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "Misslyckades att öppna servern" @@ -4598,7 +4620,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Misslyckades att öppna indatafilen \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4621,25 +4643,25 @@ msgstr "Misslyckades att tolka angivet värde som måldatatypen." msgid "Failed to read DFF file." msgstr "Misslyckades att läsa DFF-fil." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "Kunde inte läsa från fil." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "Misslyckades att läsa från indatafilen \"{0}\"." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "Kunde inte läsa vald(a) sparfil(er) från minneskort." -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "Misslyckades att läsa {0}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "Kunde inte ta bort fil." @@ -4653,7 +4675,7 @@ msgstr "" "\n" "Vill du konvertera den utan att ta bort skräpdata?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "Kunde inte ta bort denna titel från NAND-minnet." @@ -4679,19 +4701,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "Misslyckades att spara FIFO-logg." -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "Misslyckades att spara kod-map till sökvägen \"%1\"" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "Misslyckades att spara signaturfilen \"%1\"" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "Misslyckades att spara symbol-map till sökvägen \"%1\"" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "Misslyckades att spara till signaturfilen \"%1\"" @@ -4715,9 +4737,9 @@ msgstr "Misslyckades att skriva Wii-sparning." msgid "Failed to write config file!" msgstr "Kunde inte skriva inställningsfil!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "Kunde inte skriva ändrat minneskort till disk." @@ -4725,12 +4747,12 @@ msgstr "Kunde inte skriva ändrat minneskort till disk." msgid "Failed to write redirected save." msgstr "Misslyckades att skriva omdirigerad sparning." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "Kunde inte skriva sparfil till disk." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4738,10 +4760,10 @@ msgstr "" "Misslyckades att skriva till utdatafilen \"{0}\".\n" "Kontrollera att det finns tillräckligt med utrymme på målenheten." -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Misslyckades" @@ -4766,7 +4788,7 @@ msgstr "Snabb" msgid "Fast Depth Calculation" msgstr "Snabb djupberäkning" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4783,7 +4805,7 @@ msgstr "Synfält" msgid "File Details" msgstr "Fildetaljer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4797,19 +4819,19 @@ msgstr "Filformat:" msgid "File Info" msgstr "Filinformation" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnamn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Sökväg" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstorlek" @@ -4838,11 +4860,11 @@ msgstr "" "Filer angivna i M3U-filen \"{0}\" hittades inte:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "Filstorleken matchar inte någon känd storlek för GameCube-minneskort." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "Filstorleken i headern matchar inte minneskortets faktiska storlek." @@ -4898,7 +4920,7 @@ msgstr "Första person" msgid "Fix Checksums" msgstr "Fixa kontrollsummor" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "Kunde inte laga kontrollsummor" @@ -4908,7 +4930,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Flaggor" @@ -5060,11 +5082,11 @@ msgstr "Bildrutor att spela in:" msgid "France" msgstr "Frankrike" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "Lediga block: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "Lediga filer: %1" @@ -5106,7 +5128,7 @@ msgid "Freelook Toggle" msgstr "Fri kamera - Slå på/av" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Franska" @@ -5135,7 +5157,7 @@ msgstr "Från:" msgid "FullScr" msgstr "Helskärm" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Funktion" @@ -5167,7 +5189,7 @@ msgstr "GBA-kärna" msgid "GBA Port %1" msgstr "GBA i uttag %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "GBA-inställningar" @@ -5179,11 +5201,11 @@ msgstr "GBA-volym" msgid "GBA Window Size" msgstr "GBA-fönsterstorlek" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1:s ROM ändrad till \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBA%1:s ROM borttagen" @@ -5313,11 +5335,11 @@ msgstr "Spel" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-kassetter (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5341,7 +5363,7 @@ msgstr "Speldetaljer" msgid "Game Folders" msgstr "Spelmappar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spel-ID" @@ -5355,11 +5377,25 @@ msgstr "Spel-ID:" msgid "Game Status" msgstr "Spelstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "Bytte spel till \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Spelet körs redan!" @@ -5370,6 +5406,10 @@ msgstr "" "Spelet skrevs över med ett annat spels sparfil. Data kommer antagligen bli " "korrupt {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Spelspecifika inställningar" @@ -5410,12 +5450,12 @@ msgstr "GameCube-tangentbord i uttag %1" msgid "GameCube Memory Card Manager" msgstr "GameCube-minneskorthanterare" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "GameCude-minneskort" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube-minneskort (*.raw *.gcp)" @@ -5448,7 +5488,7 @@ msgstr "Allmänt" msgid "General and Options" msgstr "Allmänt och alternativ" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "Generera Action Replay-kod" @@ -5456,16 +5496,16 @@ msgstr "Generera Action Replay-kod" msgid "Generate a New Statistics Identity" msgstr "Generera en ny statistikidentitet" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "Genererade AR-kod." -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "Genererade symbolnamn från '%1'" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Tyska" @@ -5474,14 +5514,14 @@ msgstr "Tyska" msgid "Germany" msgstr "Tyskland" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "Gå till" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "Golfläge" @@ -5659,15 +5699,15 @@ msgstr "" "Lämplig för casual spel med 3+ spelare, eventuellt på instabila eller höga " "latensanslutningar." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "Värdauktoritet för indata avstängt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "Värdauktoritet för indata påslaget" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "Starta nätspel som värd" @@ -5685,7 +5725,7 @@ msgstr "Kortkommandoinställningar" msgid "Hotkeys" msgstr "Kortkommandon" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Snabbtangenter kräver fönsterfokus" @@ -5736,7 +5776,7 @@ msgstr "" msgid "IP Address:" msgstr "IP-adress:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL-inställningar" @@ -5745,7 +5785,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR-känslighet:" @@ -5800,7 +5840,7 @@ msgstr "" msgid "Identity Generation" msgstr "Identitetsgenerering" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5866,7 +5906,7 @@ msgstr "Ignorera" msgid "Ignore Format Changes" msgstr "Ignorera formatändringar" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "Ignorera för den här sessionen" @@ -5918,14 +5958,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "Importera BootMii-NAND-kopia..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "Importering misslyckades" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "Importera sparfil(er)" @@ -5933,11 +5973,11 @@ msgstr "Importera sparfil(er)" msgid "Import Wii Save..." msgstr "Importera Wii-sparning…" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "Importerar NAND-kopia" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -6016,21 +6056,21 @@ msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Information" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "Blockera skärmsläckare under emulering" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Indata" @@ -6075,7 +6115,7 @@ msgstr "Installera uppdatering" msgid "Install WAD..." msgstr "Installera WAD…" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "Installera till NAND-minnet" @@ -6091,7 +6131,7 @@ msgstr "Instruktion" msgid "Instruction Breakpoint" msgstr "Instruktionsbrytpunkt" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "Instruktion:" @@ -6140,7 +6180,7 @@ msgstr "Intern upplösning" msgid "Internal Resolution:" msgstr "Intern upplösning:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "Ett internt fel uppstod när AR-kod skulle genereras." @@ -6152,7 +6192,7 @@ msgstr "Interpreterare (långsammast)" msgid "Interpreter Core" msgstr "Interpreterarkärna" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "Ogiltigt uttryck." @@ -6169,7 +6209,7 @@ msgstr "Ogiltigt paket %1: %2" msgid "Invalid Player ID" msgstr "Ogiltigt spelar-ID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "Ogiltig RSO-moduladress: %1" @@ -6177,7 +6217,7 @@ msgstr "Ogiltig RSO-moduladress: %1" msgid "Invalid callstack" msgstr "Ogiltig callstack" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "Ogiltiga kontrollsummor." @@ -6185,7 +6225,7 @@ msgstr "Ogiltiga kontrollsummor." msgid "Invalid game." msgstr "Ogiltigt spel." -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Ogiltig värd" @@ -6194,7 +6234,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "Ogiltig indata för fältet \"%1\"" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "Ogiltig indata" @@ -6226,7 +6266,7 @@ msgstr "Ogiltig söksträng (kunde inte konvertera till siffror)" msgid "Invalid search string (only even string lengths supported)" msgstr "Ogiltig söksträng (endast jämna stränglängder stöds)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "Ogiltigt titel-ID." @@ -6235,7 +6275,7 @@ msgid "Invalid watch address: %1" msgstr "Ogiltig bevakningsadress: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italienska" @@ -6342,7 +6382,7 @@ msgstr "Japanska" msgid "Japanese (Shift-JIS)" msgstr "Japansk (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Visa alltid fönster överst" @@ -6410,7 +6450,7 @@ msgstr "LR Save" msgid "Label" msgstr "Etikett" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "Föregående värde" @@ -6514,7 +6554,7 @@ msgstr "Lyssnar" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Läs in" @@ -6649,7 +6689,7 @@ msgstr "Läs in snabbsparning från plats" msgid "Load Wii Save" msgstr "Ladda Wii-spardata" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Starta Wii-systemmeny %1" @@ -6661,8 +6701,8 @@ msgstr "Ladda från vald plats" msgid "Load from Slot %1 - %2" msgstr "Läs in från plats %1 - %2" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "Ladda map-fil" @@ -6670,7 +6710,7 @@ msgstr "Ladda map-fil" msgid "Load..." msgstr "Ladda..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "Laddade symboler från '%1'" @@ -6688,7 +6728,7 @@ msgstr "" msgid "Local" msgstr "Lokalt" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "Lås muspekare" @@ -6717,7 +6757,7 @@ msgstr "Loggtyper" msgid "Logger Outputs" msgstr "Loggningsutdata" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6732,7 +6772,7 @@ msgstr "" msgid "Loop" msgstr "Slinga" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "Tappade anslutningen till nätspelsservern..." @@ -6761,7 +6801,7 @@ msgstr "MHE" msgid "MORIBUND" msgstr "MORIBUND" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "MadCatz Gameshark-filer" @@ -6769,7 +6809,7 @@ msgstr "MadCatz Gameshark-filer" msgid "Main Stick" msgstr "Huvudspak" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6813,11 +6853,11 @@ msgstr "Mask-ROM" msgid "Match Found" msgstr "Sökträff hittades" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "Maxbuffert:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "Buffertstorleken ändrades till %1" @@ -6851,22 +6891,6 @@ msgstr "Minneskort" msgid "Memory Card Manager" msgstr "Minneskorthanterare" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"Minneskortets filnamn i plats {0} är ogiltigt\n" -"Regionen är inte specificerad\n" -"\n" -"Sökvägen för plats {1} ändrades till\n" -"{2}\n" -"Vill du kopiera den gamla filen till denna nya plats?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "Minnesåsidosättning" @@ -6875,19 +6899,19 @@ msgstr "Minnesåsidosättning" msgid "Memory breakpoint options" msgstr "Minnesbrytpunktsalternativ" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock anropades med ogiltig adress ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: Read anropades med ogiltig källadress ({0:#x})" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write anropades med ogiltig destinationsadress ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6917,16 +6941,16 @@ msgstr "Övrigt" msgid "Misc Settings" msgstr "Övriga inställningar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" "Antalet fria block i headern matchar inte det faktiska antalet fria block." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "De interna datastrukturerna matchar inte." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6960,8 +6984,8 @@ msgstr "" "

Om du är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "Moduler hittade: %1" @@ -6990,20 +7014,20 @@ msgstr "Rörelsesimulering" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "Muspekarsynlighet" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "Muspekaren döljs efter inaktivitet och återvänder när du rör på musen." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "Muspekaren syns alltid." -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "Muspekaren syns aldrig medan ett spel körs." @@ -7017,14 +7041,20 @@ msgstr "Flytta" msgid "Movie" msgstr "Inspelning" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&ej till alla" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND-minneskontroll" @@ -7055,11 +7085,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Namn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "Namn för ny etikett:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "Namn på etiketten att ta bort:" @@ -7080,8 +7110,8 @@ msgstr "Namn:" msgid "Native (640x528)" msgstr "Ursprunglig (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "Vanlig GCI-fil" @@ -7101,11 +7131,11 @@ msgstr "Nätspelsinställningar" msgid "Netherlands" msgstr "Nederländerna" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Nätspel har desynkroniserats i NetPlay_GetButtonPress()" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Nätspelet har desynkroniserats. Det går inte att göra något åt detta." @@ -7118,7 +7148,7 @@ msgstr "Nätverk" msgid "Network dump format:" msgstr "Format för nätverksdumpning:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "Aldrig" @@ -7126,7 +7156,7 @@ msgstr "Aldrig" msgid "Never Auto-Update" msgstr "Uppdatera aldrig automatiskt" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Ny" @@ -7139,7 +7169,7 @@ msgstr "Ny brytpunkt" msgid "New Search" msgstr "Ny sökning" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Ny etikett..." @@ -7151,7 +7181,7 @@ msgstr "En ny identitet har genererats." msgid "New instruction:" msgstr "Ny instruktion:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Ny etikett" @@ -7208,13 +7238,13 @@ msgstr "Ingen sökträff" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Ingen beskrivning tillgänglig" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "Inga fel." @@ -7234,10 +7264,14 @@ msgstr "Inget spel körs." msgid "No game running." msgstr "Inget spel körs." -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "Inga problem upptäcktes." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "Inga sökvägar hittades i M3U-filen \"{0}\"" @@ -7268,7 +7302,7 @@ msgstr "Inga profiler hittades för spelinställningen \"{0}\"" msgid "No recording loaded." msgstr "Ingen inspelning laddad." -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "Ingen spardata hittades." @@ -7290,10 +7324,6 @@ msgstr "Ingen" msgid "North America" msgstr "Nordamerika" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "Hittades inte" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Inte angiven" @@ -7302,7 +7332,7 @@ msgstr "Inte angiven" msgid "Not all players have the game. Do you really want to start?" msgstr "Vissa spelare har inte detta spel. Vill du verkligen starta?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7311,7 +7341,7 @@ msgid "" msgstr "" "För få lediga block på destinationsminneskortet. Minst %n lediga block krävs." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7321,6 +7351,10 @@ msgstr "" "För få lediga filer på destinationsminneskortet. Minst %n ledig(a) fil(er) " "krävs." +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7375,7 +7409,7 @@ msgstr "Nunchuk-orientering" msgid "Nunchuk Stick" msgstr "Nunchuk-spak" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7406,7 +7440,7 @@ msgstr "Förskjutning" msgid "On" msgstr "På" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "Vid rörelse" @@ -7414,7 +7448,7 @@ msgstr "Vid rörelse" msgid "Online &Documentation" msgstr "&Dokumentation online " -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7422,7 +7456,7 @@ msgstr "" "Lägg endast till symboler med prefix:\n" "(Lämna tomt för att exportera alla symboler)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7435,7 +7469,7 @@ msgstr "" msgid "Open" msgstr "Öppna" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "Öppna &innehållande mapp" @@ -7447,7 +7481,7 @@ msgstr "Öppna mapp..." msgid "Open FIFO log" msgstr "Öppna FIFO-logg" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "Öppna &sparningsmappen för GameCube" @@ -7455,7 +7489,7 @@ msgstr "Öppna &sparningsmappen för GameCube" msgid "Open Riivolution XML..." msgstr "Öppna Riivolution-XML..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "Öppna &sparningsmappen för Wii" @@ -7643,7 +7677,7 @@ msgstr "Pausa" msgid "Pause at End of Movie" msgstr "Pausa vid slutet av inspelningar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "Pausa när fokus förloras" @@ -7670,7 +7704,7 @@ msgstr "Ljus per bildpunkt" msgid "Perform Online System Update" msgstr "Uppdatera systemmjukvaran via internet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "Uppdatera systemmjukvaran" @@ -7688,7 +7722,7 @@ msgstr "Fysiskt adressutrymme" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "Välj ett teckensnitt för felsökning" @@ -7704,7 +7738,7 @@ msgstr "Luta nedåt" msgid "Pitch Up" msgstr "Luta uppåt" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7752,7 +7786,7 @@ msgstr "Pekning" msgid "Port %1" msgstr "Uttag %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "ROM i uttag %1:" @@ -7761,7 +7795,7 @@ msgstr "ROM i uttag %1:" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Möjlig desynkronisation upptäcktes: %1 kan ha desynkroniserat under bildruta " @@ -7783,15 +7817,15 @@ msgstr "Efterbehandlingsshaderkonfiguration" msgid "Prefetch Custom Textures" msgstr "Läs in anpassade texturer i förhand" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "Tidigt inspelningsslut i PlayController. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "Tidigt inspelningsslut i PlayWiimote. {0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Tidigt inspelningsslut i PlayWiimote. {0} > {1}" @@ -7816,7 +7850,7 @@ msgstr "Synkknapptryckning" msgid "Pressure" msgstr "Tryck" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7908,7 +7942,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "Töm cache för spellista" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "Lägg IPL-ROM-filer i User/GC/." @@ -7935,8 +7969,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Fråga" @@ -7964,7 +7998,7 @@ msgstr "KLAR" msgid "RSO Modules" msgstr "RSO-moduler" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO auto-upptäckt" @@ -8115,12 +8149,12 @@ msgstr "Uppdatering misslyckades. Kör spelet ett kort tag och prova igen." msgid "Refreshed current values." msgstr "Uppdaterade nuvarande värden." -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "Uppdaterar..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8150,12 +8184,12 @@ msgstr "Påminn mig senare" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Ta bort" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "Borttagning misslyckades" @@ -8163,11 +8197,11 @@ msgstr "Borttagning misslyckades" msgid "Remove Junk Data (Irreversible):" msgstr "Ta bort skräpdata (kan ej återställas):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "Ta bort etikett..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "Ta bort etikett" @@ -8186,7 +8220,7 @@ msgstr "" msgid "Rename symbol" msgstr "Byt namn på symbol" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "Renderingsfönster" @@ -8267,7 +8301,7 @@ msgstr "Resurspaketshanterare" msgid "Resource Pack Path:" msgstr "Resurspaketssökväg:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Omstart krävs" @@ -8279,7 +8313,7 @@ msgstr "Återställ förval" msgid "Restore instruction" msgstr "Återställ instruktion" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Försök igen" @@ -8379,7 +8413,7 @@ msgstr "Vibration" msgid "Run &To Here" msgstr "Kör &hit" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "Kör GBA-kärnor i dedikerade trådar" @@ -8411,7 +8445,7 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8440,7 +8474,7 @@ msgstr "Säker" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8450,9 +8484,9 @@ msgstr "Spara" msgid "Save All" msgstr "Spara alla" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Sparfilsexportering" @@ -8473,11 +8507,11 @@ msgstr "Sparfil" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Sparfiler (*.sav);;Alla filer (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "Sparfilsimportering" @@ -8489,7 +8523,7 @@ msgstr "Spara äldsta snabbsparning" msgid "Save Preset" msgstr "Spara förinställningar" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "Spara inspelning som" @@ -8575,11 +8609,11 @@ msgstr "Spara som förinställningar..." msgid "Save as..." msgstr "Spara som..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "Spara kombinerad utdatafil som" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8589,15 +8623,15 @@ msgstr "" "en säkerhetskopia på de nuvarande sparfilerna före du skriver över.\n" "Vill du skriva över nu?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "Spara i samma katalog som ROM-filen" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "Spara map-fil" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "Spara signaturfil" @@ -8619,11 +8653,11 @@ msgstr "" "Sparade Wii-fjärrkontrollparningar kan bara nollställas när ett Wii-spel " "körs." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "Sparfiler:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "Snabbsparningsinspelningen {0} är korrupt. Inspelningen stoppas..." @@ -8678,7 +8712,7 @@ msgstr "Sök efter en instruktion" msgid "Search games..." msgstr "Sök efter spel..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "Sök efter en instruktion" @@ -8710,20 +8744,20 @@ msgstr "Välj" msgid "Select Dump Path" msgstr "Välj dump-sökväg:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Välj exporteringskatalog" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "Välj GBA-BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "Välj GBA-ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "Välj GBA-sparfilssökväg" @@ -8803,7 +8837,7 @@ msgstr "Välj WFS-sökväg" msgid "Select Wii NAND Root" msgstr "Välj Wii-NAND-rot" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Välj en mapp" @@ -8811,9 +8845,9 @@ msgstr "Välj en mapp" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Välj en fil" @@ -8833,7 +8867,7 @@ msgstr "Välj en fil" msgid "Select a game" msgstr "Välj ett spel" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "Välj en titel att installera till NAND-minnet" @@ -8841,11 +8875,11 @@ msgstr "Välj en titel att installera till NAND-minnet" msgid "Select e-Reader Cards" msgstr "Välj e-Readerkort" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "Välj RSO-modulens adress:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "Välj inspelning att spela upp" @@ -8853,12 +8887,12 @@ msgstr "Välj inspelning att spela upp" msgid "Select the Virtual SD Card Root" msgstr "Välj rot för virtuellt SD-kort" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Välj nyckelfil (OTP/SEEPROM-kopia)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Välj sparningsfilen" @@ -8880,9 +8914,9 @@ msgstr "Den valda kontrollprofilen finns inte" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "Det valda spelet finns inte i spellistan!" @@ -8894,7 +8928,7 @@ msgstr "Markerad tråds anropsstack" msgid "Selected thread context" msgstr "Markerad tråds kontext" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8902,7 +8936,7 @@ msgstr "" "Väljer en hårdvaruadapter att använda.

%1 stöder " "inte den här funktionen." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8945,7 +8979,7 @@ msgstr "" "och ta den som har minst problem.

Om du är osäker " "kan du välja OpenGL." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8960,7 +8994,7 @@ msgstr "" "

Om du är osäker kan du välja Auto." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8982,7 +9016,7 @@ msgstr "" msgid "Send" msgstr "Skicka" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Position för Sensor Bar:" @@ -9006,7 +9040,7 @@ msgstr "Serverns IP-adress" msgid "Server Port" msgstr "Serverns port" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "Servern avvisade traverseringsförsök" @@ -9027,15 +9061,15 @@ msgstr "Sätt PC" msgid "Set Value From File" msgstr "Sätt värde från fil" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "Ange som &standard-ISO" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "Välj minneskortsfil för plats A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "Välj minneskortsfil för plats B" @@ -9124,7 +9158,7 @@ msgstr "Visa &logg" msgid "Show &Toolbar" msgstr "Visa &verktygsfält" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Visa aktiv titel i fönstertitel" @@ -9140,7 +9174,7 @@ msgstr "Visa Australien" msgid "Show Current Game on Discord" msgstr "Visa nuvarande spel på Discord" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "Visa felsökningsgränssnitt" @@ -9212,7 +9246,7 @@ msgstr "Visa nätspelsping" msgid "Show Netherlands" msgstr "Visa Nederländerna" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "Visa meddelanden på skärmen" @@ -9282,10 +9316,23 @@ msgstr "Visa världen" msgid "Show in &memory" msgstr "Visa i &minne" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "Visa i kod" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "Visa i serverlistan" @@ -9302,7 +9349,7 @@ msgstr "" "Visar diverse renderingsstatistik.

Om du är osäker " "kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9311,7 +9358,7 @@ msgstr "" "under nätspel.

Om du är osäker kan du lämna detta " "omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
Om du är osäker kan du lämna " "detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9414,7 +9461,7 @@ msgstr "Hoppa över att rita" msgid "Skip EFB Access from CPU" msgstr "Hoppa över tillgång till EFB från processorn" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Hoppa över huvudmeny" @@ -9446,7 +9493,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Plats A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Plats A:" @@ -9454,7 +9501,7 @@ msgstr "Plats A:" msgid "Slot B" msgstr "Plats B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Plats B:" @@ -9510,7 +9557,7 @@ msgid "Spain" msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spanska" @@ -9519,7 +9566,7 @@ msgstr "Spanska" msgid "Speaker Pan" msgstr "Högtalarpanorering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Högtalarvolym:" @@ -9610,11 +9657,11 @@ msgstr "Starta i helskärm" msgid "Start with Riivolution Patches" msgstr "Starta med Riivolution-moddar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "Starta med Riivolution-moddar..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "Startade spelet" @@ -9787,10 +9834,10 @@ msgstr "Penna" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "Klar" @@ -9808,16 +9855,16 @@ msgstr "%n skivavbildning(ar) har konverterats." msgid "Successfully deleted '%1'." msgstr "Borttagningen av '%1' lyckades." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exporterade %n av %1 sparfil(er)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "Exporteringen av sparfiler lyckades" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "Certifikaten har extraherats från NAND-minnet" @@ -9829,16 +9876,16 @@ msgstr "Extraheringen av filen lyckades." msgid "Successfully extracted system data." msgstr "Extraheringen av systemdata lyckades." -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "Importeringen av sparfilen lyckades." -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Titeln har installerats i NAND-minnet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "Titeln har tagits bort från NAND-minnet." @@ -9846,7 +9893,7 @@ msgstr "Titeln har tagits bort från NAND-minnet." msgid "Support" msgstr "Support" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "Filformat som stöds" @@ -9882,11 +9929,11 @@ msgstr "" msgid "Swing" msgstr "Svängning " -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "Byt till A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "Byt till B" @@ -9966,7 +10013,7 @@ msgstr "Synkroniserar Gecko-koder..." msgid "Synchronizing save data..." msgstr "Synkroniserar spardata..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Systemspråk:" @@ -9981,8 +10028,8 @@ msgstr "TAS-inmatning" msgid "TAS Tools" msgstr "TAS-verktyg" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10053,7 +10100,7 @@ msgstr "IPL-filen är inte en känd korrekt version. (CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "Masterpiecepartitionerna saknas." -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." @@ -10062,7 +10109,7 @@ msgstr "" "säkerhetskopia av ditt nuvarande NAND-minne och sedan börjar om med ett " "nyskapat NAND-minne." -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND-minnet har reparerats." @@ -10117,11 +10164,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Skivan kunde inte läsas (vid {0:#} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Skivan som skulle sättas in hittades inte." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -10155,11 +10202,11 @@ msgstr "Det angivna PID:t är ogiltigt." msgid "The entered VID is invalid." msgstr "Det angivna VID:t är ogiltigt." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "Uttrycket innehåller ett syntaxfel." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -10191,6 +10238,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Filen {0} var redan öppen. Filheadern kommer inte att skrivas." +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet är ogiltigt eller kunde inte läsas." @@ -10306,7 +10360,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den resulterande dekrypterade AR-koden innehåller inga rader." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "Samma fil för inte användas på flera platser; den används redan av %1." @@ -10346,7 +10400,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "Den angivna filen \"{0}\" finns inte" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "Destinationsminneskortet innehåller redan en fil med namnet \"%1\"." @@ -10405,7 +10459,7 @@ msgstr "Det finns för många partitioner i den första partitionstabellen." msgid "There is nothing to undo!" msgstr "Det finns inget att ångra!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "Ett problem uppstod med att skapa en genväg på skrivbordet" @@ -10447,11 +10501,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Den här enheten används redan med USB-genomsläppning." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Denna WAD går inte att starta." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "Denna WAD är inte giltig." @@ -10464,7 +10518,7 @@ msgstr "" "Replay." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "Det går inte att ångra detta!" @@ -10594,7 +10648,7 @@ msgid "This software should not be used to play games you do not legally own." msgstr "" "Denna mjukvara bör inte användas för att spela spel som du inte äger lagligt." -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "Denna titel kan inte startas." @@ -10607,7 +10661,7 @@ msgstr "Denna titel är inställd på att använda ett ogiltigt IOS." msgid "This title is set to use an invalid common key." msgstr "Denna titel är inställd på att använda en ogiltig gemensam nyckel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10619,7 +10673,7 @@ msgstr "" "\n" "DSPHLE: Okänd µcode (CRC = {0:08x}) - AX kommer användas." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10695,7 +10749,7 @@ msgstr "" "Hur lång tid indatan ska vara stabil för att kalibrering ska ske. (noll för " "att stänga av)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10737,7 +10791,7 @@ msgid "Toggle Aspect Ratio" msgstr "Växla bildförhållande" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Slå på/av brytpunkt" @@ -10797,7 +10851,7 @@ msgstr "Tokenisering misslyckades." msgid "Toolbar" msgstr "Verktygsfält" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Ovan" @@ -10849,8 +10903,8 @@ msgstr "Beröring" msgid "Traditional Chinese" msgstr "Traditionell kinesiska" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "Traverseringsfel" @@ -10858,7 +10912,7 @@ msgstr "Traverseringsfel" msgid "Traversal Server" msgstr "Traverseringsserver" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Traverseringsserver gjorde en timeout vid anslutning till värden" @@ -10884,7 +10938,7 @@ msgid "Triggers" msgstr "Avtryckare" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10918,7 +10972,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "Ogiltig USB-enhet" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10929,7 +10983,7 @@ msgstr "" "kraftfull hårdvara.

Om du är osäker, välj det här " "läget." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10941,7 +10995,7 @@ msgstr "" "om du upplever pauser med hybridübershaders och du har en väldigt kraftfull " "grafikprocessor.
" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10955,7 +11009,7 @@ msgstr "" "prestandapåverkan, men resultaten varierar beroende på grafikdrivrutinernas " "beteende." -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "Kunde inte upptäcka RSO-modul automatiskt" @@ -11015,11 +11069,11 @@ msgstr "Ångra snabbsparning" msgid "Uninstall" msgstr "Avinstallera" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "Avinstallera från NAND-minnet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11039,11 +11093,11 @@ msgstr "USA" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Okänd" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Okänt DVD-kommando {0:08x} - katastrofalt fel" @@ -11091,11 +11145,11 @@ msgstr "Okänd skiva" msgid "Unknown error occurred." msgstr "Okänt fel inträffade." -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "Okänt fel {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "Okänt fel." @@ -11153,8 +11207,8 @@ msgstr "Unsigned int" msgid "Up" msgstr "Upp" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Uppdatera" @@ -11216,11 +11270,11 @@ msgstr "Stående Wii-fjärrkontroll" msgid "Usage Statistics Reporting Settings" msgstr "Statistikrapporteringsinställningar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Använd inbyggd databas för spelnamn" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "Använd anpassad användarstil" @@ -11232,7 +11286,7 @@ msgstr "Använd förlustfritt kodek (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "Använd PAL60-läge (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Använd panikhanterare" @@ -11306,11 +11360,11 @@ msgstr "" msgid "User Config" msgstr "Användarinställningar" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Användargränssnitt" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Användarstil:" @@ -11340,7 +11394,7 @@ msgstr "" "grafikprocessor.

Om du är osäker kan du lämna detta " "markerat." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11350,7 +11404,7 @@ msgstr "" "ett renderingsfönster att skapas istället.

Om du är " "osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
I övriga fall kan du lämna detta " "omarkerat om du är osäker." -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11609,7 +11663,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Varning" @@ -11630,7 +11684,7 @@ msgstr "" "Varning: Antalet block indikerade i BAT ({0}) matchar inte den laddade " "filheadern ({1})" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11641,7 +11695,7 @@ msgstr "" "sparning innan du fortsätter, eller läsa in denna snabbsparning med " "skrivskyddat läge inaktiverat." -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11652,7 +11706,7 @@ msgstr "" "{1}) (bildruta {2} < {3}). Du bör läsa in en annan sparning innan du " "fortsätter." -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11663,7 +11717,7 @@ msgstr "" "in denna snabbsparning med skrivskyddat läge inaktiverat. Annars kan du få " "en desynkronisering." -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11744,7 +11798,7 @@ msgstr "" "

Om du är osäker kan du lämna detta markerat." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Enheter som används med USB-genomsläppning" @@ -11790,7 +11844,7 @@ msgstr "Wii-fjärrkontrollknappar" msgid "Wii Remote Orientation" msgstr "Wii-fjärrkontrollorientering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii-fjärrkontrollinställningar" @@ -11818,7 +11872,7 @@ msgstr "Wii och Wii-fjärrkontroller" msgid "Wii data is not public yet" msgstr "Wii-data är inte offentlig än" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii-sparfiler (*.bin);;Alla filer (*)" @@ -11826,7 +11880,7 @@ msgstr "Wii-sparfiler (*.bin);;Alla filer (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools-signaturmegafil" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11885,9 +11939,21 @@ msgstr "Skriv till logg och bryt" msgid "Write to Window" msgstr "Skriv till fönster" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "Fel version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11970,18 +12036,6 @@ msgstr "" "\n" "Är du säker på att du vill fortsätta ändå?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"Du försöker använda Vulkan (Metal)-backenden på ett operativsystem där det " -"inte stöds. För att all funktionalitet ska vara tillgänglig måste du använda " -"macOS 10.14 (Mojave) eller nyare. Rapportera inte några problem som " -"förekommer om de inte också förekommer på 10.14+." - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -12033,7 +12087,7 @@ msgstr "Du måste ange ett namn för din session!" msgid "You must provide a region for your session!" msgstr "Du måste ange en region för din session!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Du måste starta om Dolphin för att ändringarna ska börja gälla." @@ -12111,12 +12165,12 @@ msgstr "cm" msgid "d3d12.dll could not be loaded." msgstr "d3d12.dll kunde inte läsas in." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "förval" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "frånkopplad" @@ -12179,13 +12233,13 @@ msgstr "" msgid "none" msgstr "ingen" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "av" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "på" @@ -12222,7 +12276,7 @@ msgstr "ej justerat" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12249,7 +12303,7 @@ msgstr "" "Kontrollera skrivrättigheterna eller flytta filen utanför Dolphin." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} av {1} block. Komprimeringsgrad {2}%" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 088c947fda..22ff03a512 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -9,6 +9,7 @@ # Erdoğan Şahin, 2016-2017 # Erdoğan Şahin, 2017 # Erdoğan Şahin, 2016 +# i286, 2022 # Mustafa Can , 2013-2016 # nlgzrgn , 2011 # Serdar Sağlam , 2020 @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Serdar Sağlam , 2020\n" +"Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" "language/tr/)\n" "Language: tr\n" @@ -51,7 +52,7 @@ msgstr "" "Bu başlık perakende Wii konsolları için olmadığından, Dolphin üzerinde " "oynanmadığını doğrulayamaz." -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -190,19 +191,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" -msgstr "" +msgstr "%1 katıldı" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" -msgstr "" +msgstr "%1 geçerli bir ROM değil" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -239,7 +240,7 @@ msgstr "%1% (Normal Hız)" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -264,7 +265,7 @@ msgstr "%1x Doğal (%2x%3)" #, c-format msgctxt "" msgid "%n address(es) could not be accessed in emulated memory." -msgstr "" +msgstr "%n adresleri emüle edilen bellekte erişilemedi." #: Source/Core/DolphinQt/CheatSearchWidget.cpp:301 #, c-format @@ -302,7 +303,7 @@ msgstr "" msgid "&About" msgstr "&Hakkında" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "&Bellek Kesme Noktası Ekle" @@ -337,7 +338,7 @@ msgstr "&Yedek DVD Diskinden Önyükleme Başlat" #: Source/Core/DolphinQt/GBAWidget.cpp:437 msgid "&Borderless Window" -msgstr "" +msgstr "&Çerçevesiz pencere" #: Source/Core/DolphinQt/MenuBar.cpp:465 msgid "&Breakpoints" @@ -394,7 +395,7 @@ msgstr "&Sil" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "" @@ -470,7 +471,7 @@ msgstr "&Kısayol Ayarları" #: Source/Core/DolphinQt/GBAWidget.cpp:406 msgid "&Import Save Game..." -msgstr "" +msgstr "&İçeri oyun kaydı aktar" #: Source/Core/DolphinQt/GBAWidget.cpp:414 msgid "&Import State..." @@ -478,7 +479,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:126 msgid "&Import..." -msgstr "" +msgstr "&İçeri aktar" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:560 msgid "&Insert blr" @@ -492,7 +493,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "&Dil:" @@ -549,7 +550,7 @@ msgstr "&Duraklat" msgid "&Play" msgstr "&Oynat" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "&Özellikler" @@ -599,7 +600,7 @@ msgstr "&Hız Limiti:" msgid "&Stop" msgstr "&Durdur" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "&Tema:" @@ -629,7 +630,7 @@ msgstr "&İzle" msgid "&Website" msgstr "&Website" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -637,15 +638,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "&Evet" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(Yok)" @@ -682,9 +683,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -874,7 +875,7 @@ msgstr "< Daha az" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -884,15 +885,18 @@ msgid "" "download. You are running %2.
Would you like to update?

Release " "Notes:

" msgstr "" +"

Yeni bir Dolphin sürümü mevcut!

Dolphin %1 indirmeye açık. Şu anda " +"%2 sürümü bulunuyor.
Yükseltmek ister misiniz?

Bu güncelemeyle " +"birlikte gelen yenilikler:

" #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" -msgstr "" +msgstr "Şu anda zaten bir NetPlay oturumu çalışmakta!" #: Source/Core/Core/WiiUtils.cpp:171 msgid "" @@ -903,16 +907,23 @@ msgid "" "\n" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" +"Bu başlığın farklı bir sürümü zaten NAND üzerinde mevcut!\n" +"\n" +"Mevcut sürüm: {0}\n" +"WAD sürümü: {1}\n" +"\n" +"Bu WAD'ı yüklemek geri dönülemeyecek şekilde eskisinin yerini alacaktır. " +"Devam edilsin mi?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "Zaten bir diskin yerleştirilme işlemi sürüyor." -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1049,7 +1060,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "Aktif" @@ -1061,7 +1072,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1091,10 +1102,10 @@ msgstr "" msgid "Add New USB Device" msgstr "Yeni USB Aygıtı Ekle" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" -msgstr "" +msgstr "Masaüstüne kısayol oluştur" #: Source/Core/Core/HotkeyManager.cpp:76 msgid "Add a Breakpoint" @@ -1119,18 +1130,18 @@ msgstr "" msgid "Add to &watch" msgstr "Ekle &izlemeye" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "Ekle..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1209,10 +1220,15 @@ msgstr "Afrika" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1220,20 +1236,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "Tüm Dosyalar (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "Tüm cihazlar" @@ -1254,7 +1287,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "Uyumsuz Bölge Ayarlarına İzin Ver" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "Kullanım İstatistikleri Raporlamasına İzin Ver" @@ -1276,7 +1309,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "Alternatif Giriş Kaynakları" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1332,7 +1365,7 @@ msgstr "Kenar Yumuşatma:" msgid "Any Region" msgstr "Herhangi Bir Bölge" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1358,7 +1391,7 @@ msgstr "Apploader Tarihi:" msgid "Apply" msgstr "Uygula" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1370,7 +1403,7 @@ msgstr "Küçük Haritaları algıla" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1386,7 +1419,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1403,7 +1436,7 @@ msgstr "Denetleyici Noktalarını Ata" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1464,11 +1497,11 @@ msgstr "Pencere Boyutunu Otomatik Ayarla" msgid "Auto-Hide" msgstr "Otomatik Gizle" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1495,7 +1528,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1507,7 +1540,7 @@ msgstr "BP kaydı " msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1560,7 +1593,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1595,7 +1628,7 @@ msgstr "Temel Ayarlar" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1605,7 +1638,7 @@ msgstr "Batarya" #: Source/Core/DolphinQt/Settings/GeneralPane.cpp:195 msgid "Beta (once a month)" -msgstr "" +msgstr "Beta (ayda bir kere)" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:37 msgid "BetterJoy, DS4Windows, etc" @@ -1627,7 +1660,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1671,11 +1704,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1683,7 +1716,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Çerçevesiz Tam Ekran" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "Alt" @@ -1710,7 +1743,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1744,12 +1777,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Arabellek Boyutu:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "Arabellek:" @@ -1864,7 +1897,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1872,14 +1905,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1907,7 +1940,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "GC IPL bulunamadı." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1933,7 +1966,7 @@ msgstr "Merkez" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "&Diski Değiştir" @@ -1949,7 +1982,7 @@ msgstr "Diski Değiştir" msgid "Change Discs Automatically" msgstr "Diskleri Otomatik Değiştir" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -2001,7 +2034,7 @@ msgstr "" msgid "Check for updates" msgstr "Güncellemeleri kontrol et" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2015,16 +2048,19 @@ msgstr "" msgid "China" msgstr "Çin" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "Açmak için bir dosya seçin" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2049,7 +2085,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "Temizle" @@ -2102,7 +2138,7 @@ msgstr "" msgid "Code:" msgstr "Code:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2127,7 +2163,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2179,23 +2215,23 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "Durdurmayı Onayla" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2252,7 +2288,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2360,11 +2396,11 @@ msgstr "Yakınsama:" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2390,9 +2426,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "Kopyala" @@ -2404,19 +2440,19 @@ msgstr "Kopyala &Fonksiyon" msgid "Copy &hex" msgstr "Kopyala &Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2424,19 +2460,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "Kopyalama başarısız" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2480,14 +2512,14 @@ msgstr "" "Nintendo platformundan güncelleme bilgileri indirilemedi. Lütfen internet " "bağlantınızı kontrol edin ve tekrar deneyin." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2535,7 +2567,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2547,15 +2579,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2609,7 +2641,7 @@ msgstr "Geçişli" msgid "Current Region" msgstr "Mevcut Bölge" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2712,23 +2744,23 @@ msgstr "Veri Aktarımı" msgid "Data Type" msgstr "Veri Tipi" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "Kullanılmaması gereken dosya alanındaki veriler." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2830,21 +2862,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "Sil" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2860,10 +2892,10 @@ msgstr "" msgid "Depth:" msgstr "Derinlik:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2883,7 +2915,7 @@ msgstr "" msgid "Detect" msgstr "Belirle" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2904,7 +2936,7 @@ msgstr "Cihaz" msgid "Device PID (e.g., 0305)" msgstr "Cihaz PID (örn. 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "Cihaz Ayarları" @@ -2951,8 +2983,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3045,25 +3077,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "Emülasyonu durdurmak istiyor musunuz?" @@ -3080,9 +3112,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin Harita Dosyası (*.map)" @@ -3094,8 +3126,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Filmleri (*.dtm)" @@ -3110,7 +3142,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3130,7 +3162,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin geçiş sunucusu için çok eski" @@ -3195,7 +3227,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3375,7 +3407,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Flemenkçe" @@ -3448,7 +3480,7 @@ msgstr "Yerleşik Çerçeve Arabellği (EFB)" msgid "Empty" msgstr "Boş" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "Emülasyon işlemi zaten çalışıyor" @@ -3480,8 +3512,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3531,7 +3563,7 @@ msgid "Enable Progressive Scan" msgstr "Progresif Taramaya İzin Ver" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3649,7 +3681,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3662,7 +3694,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "İngilizce" @@ -3695,7 +3727,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "RSO modül adresini girin:" @@ -3707,7 +3739,7 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3726,46 +3758,47 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Hata" @@ -3786,11 +3819,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3810,7 +3843,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3958,10 +3991,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "Tüm Wii Kayıtlarını Ver" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3973,19 +4006,19 @@ msgstr "Çekimi Ver" msgid "Export Recording..." msgstr "Çekimi Ver..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3997,7 +4030,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4071,7 +4104,7 @@ msgstr "FIFO Oynatıcısı" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4081,19 +4114,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "BT geçişi için arayüz talebi başarısız oldu" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4123,11 +4156,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4143,16 +4176,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4175,29 +4208,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4217,19 +4250,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4241,7 +4274,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4255,13 +4288,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4283,11 +4316,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4296,7 +4329,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4316,25 +4349,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4345,7 +4378,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4365,19 +4398,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4401,9 +4434,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4411,21 +4444,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4450,7 +4483,7 @@ msgstr "Hızlı" msgid "Fast Depth Calculation" msgstr "Hızlı Derinlik Hesaplaması" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4465,7 +4498,7 @@ msgstr "" msgid "File Details" msgstr "Dosya Ayrıntıları" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4479,19 +4512,19 @@ msgstr "Dosya Biçimi:" msgid "File Info" msgstr "Dosya Bilgisi" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Dosya Adı" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Dosya Yolu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dosya Boyutu" @@ -4518,11 +4551,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4572,7 +4605,7 @@ msgstr "" msgid "Fix Checksums" msgstr "Sağlamayı Düzelt" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4582,7 +4615,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "Bayraklar" @@ -4720,11 +4753,11 @@ msgstr "" msgid "France" msgstr "Fransa" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4762,7 +4795,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "Fransızca" @@ -4791,7 +4824,7 @@ msgstr "" msgid "FullScr" msgstr "Tam Ekran" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "Fonksiyon" @@ -4823,7 +4856,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4835,11 +4868,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4942,11 +4975,11 @@ msgstr "Oyun" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Kartuşu (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4968,7 +5001,7 @@ msgstr "Oyun Ayrıntıları" msgid "Game Folders" msgstr "Oyun Klasörleri" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Oyun ID'si" @@ -4982,11 +5015,25 @@ msgstr "Oyun ID'si:" msgid "Game Status" msgstr "Oyun Durumları" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "Oyun zaten çalışıyor!" @@ -4995,6 +5042,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "Oyuna Özel Ayarlar" @@ -5035,12 +5086,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5073,7 +5124,7 @@ msgstr "Genel" msgid "General and Options" msgstr "Genel ve Seçenekler" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5081,16 +5132,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "Yeni bir İstatistik Kimliği Oluşturun" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "Almanca" @@ -5099,12 +5150,12 @@ msgstr "Almanca" msgid "Germany" msgstr "Almanya" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5274,15 +5325,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5300,7 +5351,7 @@ msgstr "Kısayol Tuşu Ayarları" msgid "Hotkeys" msgstr "Kısayol Tuşları" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "Kısayol Tuşları Pencere Odağı Gerektirir" @@ -5345,7 +5396,7 @@ msgstr "" msgid "IP Address:" msgstr "IP Adresi:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL Ayarları" @@ -5354,7 +5405,7 @@ msgid "IR" msgstr "Kızılötesi" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "Kızılötesi Hassasiyeti:" @@ -5391,7 +5442,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5434,7 +5485,7 @@ msgstr "Yoksay" msgid "Ignore Format Changes" msgstr "Birim Değişimini Yoksay" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5471,14 +5522,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5486,11 +5537,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii Kayıtlarını Al..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5562,21 +5613,21 @@ msgid "Info" msgstr "Bilgi" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "Bilgilendirme" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "Giriş" @@ -5621,7 +5672,7 @@ msgstr "Güncellemeyi Kur" msgid "Install WAD..." msgstr "WAD Kur..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5637,7 +5688,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5684,7 +5735,7 @@ msgstr "Dahili Çözünürlük" msgid "Internal Resolution:" msgstr "Dahili Çözünürlük:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5696,7 +5747,7 @@ msgstr "Yorumlayıcı (çok yavaş)" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5713,7 +5764,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5721,7 +5772,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5729,7 +5780,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "Geçersiz host" @@ -5738,7 +5789,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5770,7 +5821,7 @@ msgstr "Geçersiz arama dizesi (sayıya dönüştürülemedi)" msgid "Invalid search string (only even string lengths supported)" msgstr "Geçersiz arama dizesi (sadece düz dize uzunluğu destekleniyor)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5779,7 +5830,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "İtalyanca" @@ -5883,7 +5934,7 @@ msgstr "Japonca" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "Pencereyi Önde Tut" @@ -5951,7 +6002,7 @@ msgstr "" msgid "Label" msgstr "Etiket" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6049,7 +6100,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "Yükle" @@ -6184,7 +6235,7 @@ msgstr "Yuvadan Durum Yükle" msgid "Load Wii Save" msgstr "Wii Kaydını Yükle" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "Wii Sistem Menüsünü Yükle %1" @@ -6196,8 +6247,8 @@ msgstr "Seçili Yuvadan Yükle" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6205,7 +6256,7 @@ msgstr "" msgid "Load..." msgstr "Yükle..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6220,7 +6271,7 @@ msgstr "" msgid "Local" msgstr "Yerel" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6249,7 +6300,7 @@ msgstr "Geçmiş Türü" msgid "Logger Outputs" msgstr "Geçmiş Çıkışı" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6260,7 +6311,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6289,7 +6340,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6297,7 +6348,7 @@ msgstr "" msgid "Main Stick" msgstr "Ana Çubuk" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6336,11 +6387,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6374,16 +6425,6 @@ msgstr "Hafıza Kartı" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6392,19 +6433,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6430,15 +6471,15 @@ msgstr "Çeşitli" msgid "Misc Settings" msgstr "Çeşitli Ayarlar" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6461,8 +6502,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6491,20 +6532,20 @@ msgstr "" msgid "Motor" msgstr "Motor" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6518,14 +6559,20 @@ msgstr "" msgid "Movie" msgstr "Film" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6556,11 +6603,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6581,8 +6628,8 @@ msgstr "İsim:" msgid "Native (640x528)" msgstr "Orijinal (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6602,11 +6649,11 @@ msgstr "" msgid "Netherlands" msgstr "Hollanda" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "Netplay desenkronize oldu. Bundan kurtulmanın bir yolu yok." @@ -6619,7 +6666,7 @@ msgstr "Ağ" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6627,7 +6674,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "Yeni" @@ -6640,7 +6687,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "Yeni Etiket..." @@ -6652,7 +6699,7 @@ msgstr "Yeni kimlik oluşturuldu." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "Yeni etiket" @@ -6709,13 +6756,13 @@ msgstr "Eşleşme Yok" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "Açıklama yok" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6735,10 +6782,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6766,7 +6817,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6786,10 +6837,6 @@ msgstr "Hiçbiri" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "Ayarlanmamış" @@ -6798,7 +6845,7 @@ msgstr "Ayarlanmamış" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6806,7 +6853,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6814,6 +6861,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6866,7 +6917,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6897,7 +6948,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6905,13 +6956,13 @@ msgstr "" msgid "Online &Documentation" msgstr "Çevrimiçi &Belgeler" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6922,7 +6973,7 @@ msgstr "" msgid "Open" msgstr "Aç" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6934,7 +6985,7 @@ msgstr "Dizin Aç..." msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6942,7 +6993,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7130,7 +7181,7 @@ msgstr "Duraklat" msgid "Pause at End of Movie" msgstr "Filmin Sonunda Duraklat" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7157,7 +7208,7 @@ msgstr "Piksel Aydınlatması" msgid "Perform Online System Update" msgstr "İnternet Üzerinden Sistem Güncellemesi Yap" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7175,7 +7226,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7191,7 +7242,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7237,7 +7288,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7246,7 +7297,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7266,15 +7317,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7299,7 +7350,7 @@ msgstr "Sync düğmesine basın" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7380,7 +7431,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7406,8 +7457,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "Soru" @@ -7435,7 +7486,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7580,12 +7631,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7615,12 +7666,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "Kaldır" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7628,11 +7679,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7648,7 +7699,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7727,7 +7778,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "Yeniden Başlatma Gerekli" @@ -7739,7 +7790,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Tekrar Dene" @@ -7839,7 +7890,7 @@ msgstr "Gümbürtü" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7871,7 +7922,7 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7900,7 +7951,7 @@ msgstr "Güvenli" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7910,9 +7961,9 @@ msgstr "Kaydet" msgid "Save All" msgstr "Tümünü Kaydet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7933,11 +7984,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7949,7 +8000,7 @@ msgstr "En Eski Durumu kaydet" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -8035,26 +8086,26 @@ msgstr "" msgid "Save as..." msgstr "Farklı kaydet..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8076,11 +8127,11 @@ msgstr "" "Kaydedilmiş Wii Remote eşleştirmeleri, yalnızca bir Wii oyunu açıkken " "sıfırlanabilir." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8133,7 +8184,7 @@ msgstr "Bir talimat ara" msgid "Search games..." msgstr "Oyun ara..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8165,20 +8216,20 @@ msgstr "Seç" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8258,7 +8309,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "Wii NAND Kök Seç" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "Bir Dizin Seç" @@ -8266,9 +8317,9 @@ msgstr "Bir Dizin Seç" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "Bir Dosya Seç" @@ -8288,7 +8339,7 @@ msgstr "" msgid "Select a game" msgstr "Bir oyun seç" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8296,11 +8347,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8308,12 +8359,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Kayıt dosyasını seçin" @@ -8335,9 +8386,9 @@ msgstr "Seçilmiş kontrolcü profili yok" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8349,13 +8400,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8382,7 +8433,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8391,7 +8442,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8405,7 +8456,7 @@ msgstr "" msgid "Send" msgstr "Gönder" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "Sensör Çubuğu Konumu:" @@ -8425,7 +8476,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8446,15 +8497,15 @@ msgstr "PC'yi Ayarla" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8537,7 +8588,7 @@ msgstr "&Günlüğü Göster" msgid "Show &Toolbar" msgstr "Araç Çubuğunu Gös&ter" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "Etkin Başlığı Pencere Başlığında Göster" @@ -8553,7 +8604,7 @@ msgstr "Avusturalya'yı Göster" msgid "Show Current Game on Discord" msgstr "Discord'da Mevcut Oyunu Göster" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8625,7 +8676,7 @@ msgstr "NetPlay Ping'ini Göster" msgid "Show Netherlands" msgstr "Hollanda'yı Göster" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8695,10 +8746,23 @@ msgstr "Dünyayı Göster" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8713,20 +8777,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8815,7 +8879,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "CPU'dan EFB'ye erişimi atla" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "Ana Menü'yü Atla" @@ -8841,7 +8905,7 @@ msgstr "Kaydırma Çubuğu" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "Yuva A:" @@ -8849,7 +8913,7 @@ msgstr "Yuva A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "Yuva B:" @@ -8901,7 +8965,7 @@ msgid "Spain" msgstr "İspanya" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "İspanyolca" @@ -8910,7 +8974,7 @@ msgstr "İspanyolca" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "Hoparlör Ses Seviyesi:" @@ -8992,11 +9056,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9159,10 +9223,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9180,16 +9244,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9201,16 +9265,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9218,7 +9282,7 @@ msgstr "" msgid "Support" msgstr "Destek" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9251,11 +9315,11 @@ msgstr "" msgid "Swing" msgstr "Hareket" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9332,7 +9396,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "Sistem Dili:" @@ -9347,8 +9411,8 @@ msgstr "TAS Girişi" msgid "TAS Tools" msgstr "TAS Araçları" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9417,13 +9481,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9469,11 +9533,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "Takılacak olan disk bulunamadı." -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9503,11 +9567,11 @@ msgstr "Girilen PID geçersiz." msgid "The entered VID is invalid." msgstr "Girilen VID geçersiz." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9531,6 +9595,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9627,7 +9698,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Ortaya çıkan şifresi çözülmüş AR kodu herhangi bir satır içermiyor." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9661,7 +9732,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9718,7 +9789,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "Geri alacak hiçbirşey yok!" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9758,11 +9829,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "Bu USB aygıtı zaten beyaz listeye eklenmiş." -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "Bu WAD önyüklenebilir değil." -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9774,7 +9845,7 @@ msgstr "" "Bu Action Replay simülatörü, kodların kendisini düzenlemesini desteklemiyor." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9874,7 +9945,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9887,7 +9958,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9895,7 +9966,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9956,7 +10027,7 @@ msgstr "Eğim" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9998,7 +10069,7 @@ msgid "Toggle Aspect Ratio" msgstr "En-boy Oranını Aç/Kapat" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "Kesim Noktasını Aç/Kapat" @@ -10058,7 +10129,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "Üst" @@ -10110,8 +10181,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Geleneksel Çince" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10119,7 +10190,7 @@ msgstr "" msgid "Traversal Server" msgstr "Geçiş Sunucusu" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "Geçiş sunucusunun ana bilgisayar bağlantısı zaman aşımına uğradı" @@ -10143,7 +10214,7 @@ msgid "Triggers" msgstr "Tetikler" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10177,14 +10248,14 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10192,7 +10263,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10201,7 +10272,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10253,11 +10324,11 @@ msgstr "Durum Kaydetmeyi Geri Al" msgid "Uninstall" msgstr "Kaldır" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "NAND'dan kaldır" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10276,11 +10347,11 @@ msgstr "ABD" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "Bilinmeyen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10324,11 +10395,11 @@ msgstr "Bilinmeyen disk" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10384,8 +10455,8 @@ msgstr "" msgid "Up" msgstr "Yukarı" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "Güncelle" @@ -10445,11 +10516,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "İstatistik Raporlama Ayarları" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10461,7 +10532,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 Modunu Kullan (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "Önemli Hataları Bildir" @@ -10522,11 +10593,11 @@ msgstr "" msgid "User Config" msgstr "Kullanıcı Yapılandırması" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "Kullanıcı Arayüzü" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "Kullanıcı Stili:" @@ -10549,14 +10620,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10789,7 +10860,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "Uyarı" @@ -10806,28 +10877,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10882,7 +10953,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "Beyaz Listeye Alınmış USB Geçiş Aygıtları" @@ -10928,7 +10999,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii Remote Ayarları" @@ -10956,7 +11027,7 @@ msgstr "Wii ve Wii Remote" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10964,7 +11035,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11021,8 +11092,20 @@ msgstr "" msgid "Write to Window" msgstr "Pencereye Yaz" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11089,14 +11172,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11138,7 +11213,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "Değişikliğin etkili olması için Dolphin'i yeniden başlatmalısınız." @@ -11208,12 +11283,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11274,13 +11349,13 @@ msgstr "" msgid "none" msgstr "hiçbiri" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11317,7 +11392,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11340,7 +11415,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index dad96acd58..853cd3d5d7 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -54,7 +54,7 @@ msgstr "" "\n" "由于此游戏不适用于 Wii 零售版主机,因此 Dolphin 无法验证其是否未被篡改。" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -198,19 +198,19 @@ msgstr "" "%2 对象\n" "当前帧: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "%1 已加入" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "%1 已离开" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "%1 不是有效的 ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "%1 控制中" @@ -247,7 +247,7 @@ msgstr "%1%(正常速度)" msgid "%1, %2, %3, %4" msgstr "%1, %2, %3, %4" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "%1: %2" @@ -310,7 +310,7 @@ msgstr "&4x" msgid "&About" msgstr "关于(&A)" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "添加内存断点(&A)" @@ -402,7 +402,7 @@ msgstr "删除(&D)" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "删除监视(&D)" @@ -500,7 +500,7 @@ msgstr "帧间混合(&I)" msgid "&JIT" msgstr "即时编译器(&J)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "语言(&L):" @@ -557,7 +557,7 @@ msgstr "暂停游戏(&P)" msgid "&Play" msgstr "开始游戏(&P)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "属性(&P)" @@ -607,7 +607,7 @@ msgstr "速度限制(&S):" msgid "&Stop" msgstr "停止游戏(&S)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "主题(&T):" @@ -637,7 +637,7 @@ msgstr "监视(&W)" msgid "&Website" msgstr "网站(&W)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "百科(&W)" @@ -645,15 +645,15 @@ msgstr "百科(&W)" msgid "&Yes" msgstr "是(&Y)" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "找不到 '%1',未生成符号名" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "找不到 '%1',改为扫描常用函数" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(无)" @@ -690,9 +690,9 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "..." @@ -706,7 +706,7 @@ msgstr "128 Mbit (2043 区块)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "16 Bytes" -msgstr "" +msgstr "16 字节" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:28 msgid "16 Mbit (251 blocks)" @@ -794,7 +794,7 @@ msgstr "3x 原生 (1920x1584) 适合 1080p" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 msgid "4 Bytes" -msgstr "" +msgstr "4 字节" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:26 msgid "4 Mbit (59 blocks)" @@ -846,7 +846,7 @@ msgstr "7x 原生 (4480x3696)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 msgid "8 Bytes" -msgstr "" +msgstr "8 字节" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:27 msgid "8 Mbit (123 blocks)" @@ -882,7 +882,7 @@ msgstr "< 小于" msgid "" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "<系统语言>" @@ -899,8 +899,8 @@ msgstr "" msgid "> Greater-than" msgstr "> 大于" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "已经有一个联机会话正在进行!" @@ -920,15 +920,15 @@ msgstr "" "\n" "安装此 WAD 替换是不可逆转的。是否继续?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "光盘已可插入。" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "载入保存状态必须指定要启动的游戏" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1087,7 +1087,7 @@ msgstr "Action Replay: 正常代码 {0}: 无效子类型 {1:08x} ({2})" msgid "Activate NetPlay Chat" msgstr "激活联机聊天" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "激活" @@ -1099,7 +1099,7 @@ msgstr "活动线程队列" msgid "Active threads" msgstr "活动线程" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "适配器" @@ -1129,8 +1129,8 @@ msgstr "添加新的 DSU 服务器" msgid "Add New USB Device" msgstr "添加新的 USB 设备" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "添加快捷方式到桌面" @@ -1157,18 +1157,18 @@ msgstr "添加内存断点" msgid "Add to &watch" msgstr "添加到监视(&W)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "添加到监视" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "添加..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1261,10 +1261,15 @@ msgstr "非洲" msgid "Aligned to data type length" msgstr "与数据类型长度对齐" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1272,27 +1277,44 @@ msgid "All Files" msgstr "所有文件" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "所有文件 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "所有 GC/Wii 文件" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "所有状态存档 (*.sav *.s##);; 所有文件 (*)" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "所有设备" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 msgid "All files (*)" -msgstr "" +msgstr "所有文件 (*)" #: Source/Core/Core/NetPlayServer.cpp:1170 msgid "All players' codes synchronized." @@ -1306,7 +1328,7 @@ msgstr "所有玩家存档已同步。" msgid "Allow Mismatched Region Settings" msgstr "允许不匹配的区域设置" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "允许使用情况统计报告" @@ -1330,7 +1352,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "其他输入源" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "总是" @@ -1386,7 +1408,7 @@ msgstr "抗锯齿:" msgid "Any Region" msgstr "任意区域" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "附加签名到" @@ -1414,7 +1436,7 @@ msgstr "应用载入器时间:" msgid "Apply" msgstr "应用" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "应用签名文件" @@ -1426,7 +1448,7 @@ msgstr "特殊多级纹理检测" msgid "Are you sure that you want to delete '%1'?" msgstr "确定要删除 '%1' 吗?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "确定要删除该文件吗?" @@ -1442,7 +1464,7 @@ msgstr "确定要退出联机吗?" msgid "Are you sure?" msgstr "确定?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "长宽比" @@ -1459,7 +1481,7 @@ msgstr "指定控制器端口" msgid "Assign Controllers" msgstr "指定控制器" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "至少有两个选定的存档文件具有相同的内部文件名。" @@ -1523,11 +1545,11 @@ msgstr "自动调整窗口大小" msgid "Auto-Hide" msgstr "自动隐藏" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "自动检测 RSO 模块?" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1558,7 +1580,7 @@ msgstr "" "BBA MAC 地址 {0} 对于 XLink Kai 无效。必须使用有效的任天堂 GameCube MAC 地" "址。 生成一个以 00:09:bf 或 00:17:ab 开头的新 MAC 地址。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "BIOS:" @@ -1570,7 +1592,7 @@ msgstr "BP 寄存器" msgid "Back Chain" msgstr "后链" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "后端" @@ -1623,7 +1645,7 @@ msgstr "提交的偏移量不正确。" msgid "Bad value provided." msgstr "值格式不正确。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1658,7 +1680,7 @@ msgstr "基本设置" msgid "Bass" msgstr "低音" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "使用批处理模式必须指定要启动的游戏" @@ -1690,7 +1712,7 @@ msgstr "二进制 SSL (写入)" msgid "Bitrate (kbps):" msgstr "比特率 (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1733,11 +1755,11 @@ msgstr "" msgid "Boot to Pause" msgstr "引导后暂停" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 备份文件 (*.bin);; 所有文件 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 密钥文件 (*.bin);; 所有文件 (*)" @@ -1745,7 +1767,7 @@ msgstr "BootMii 密钥文件 (*.bin);; 所有文件 (*)" msgid "Borderless Fullscreen" msgstr "无边框全屏" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "底部" @@ -1772,7 +1794,7 @@ msgstr "断点" msgid "Breakpoint encountered! Step out aborted." msgstr "遇到断点!跳出已中止。" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "断点" @@ -1806,12 +1828,12 @@ msgstr "浏览联机会话...(&N)" msgid "Buffer Size:" msgstr "缓冲区大小:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "缓冲区大小更改为 %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "缓冲区:" @@ -1934,7 +1956,7 @@ msgstr "镜头 1" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "镜头视野(影响指向的灵敏度)。" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "只能为虚拟内存中的数值生成 AR 代码。" @@ -1942,14 +1964,14 @@ msgstr "只能为虚拟内存中的数值生成 AR 代码。" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "不能按照连接句柄 {0:02x} 找到 Wii 遥控器" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "游戏运行时无法启动联机会话!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1976,7 +1998,7 @@ msgstr "无法与首次搜索的上个值进行比较。" msgid "Cannot find the GC IPL." msgstr "找不到 GC IPL。" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "无法为此地址生成 AR 代码。" @@ -2002,7 +2024,7 @@ msgstr "中心" msgid "Center and Calibrate" msgstr "中心和校准" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "切换光盘(&D)" @@ -2018,7 +2040,7 @@ msgstr "切换光盘" msgid "Change Discs Automatically" msgstr "自动切换光盘" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "切换光盘至 {0}" @@ -2075,7 +2097,7 @@ msgstr "在后台检查游戏列表变更" msgid "Check for updates" msgstr "检查更新" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2089,16 +2111,19 @@ msgstr "校验" msgid "China" msgstr "中国" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "选择要打开的文件" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "选择优先输入文件" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "选择次要输入文件" @@ -2123,7 +2148,7 @@ msgstr "传统控制器" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "清除" @@ -2176,7 +2201,7 @@ msgstr "代码已执行" msgid "Code:" msgstr "代码:" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "代码已接收!" @@ -2201,7 +2226,7 @@ msgstr "在开始前编译着色器" msgid "Compiling Shaders" msgstr "正在编译着色器" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2253,23 +2278,23 @@ msgstr "配置输出" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "确定" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "确认改变后端" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "停止游戏时确认" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2324,7 +2349,7 @@ msgstr "是否连接到互联网并执行在线系统更新?" msgid "Connected" msgstr "已连接" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "正在连接" @@ -2440,11 +2465,11 @@ msgstr "会聚:" msgid "Convert" msgstr "转换" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "转换文件..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "转换所选文件..." @@ -2474,9 +2499,9 @@ msgstr "" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "复制" @@ -2488,39 +2513,35 @@ msgstr "复制函数(&F)" msgid "Copy &hex" msgstr "复制十六进制(&H)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "复制地址" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "复制失败" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "复制十六进制" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "复制数值" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" msgstr "复制代码行(&L)" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "复制失败" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "复制目标地址(&G)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "复制到 A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "复制到 B" @@ -2560,7 +2581,7 @@ msgid "" "Internet connection and try again." msgstr "无法从任天堂下载更新信息。请检查你的互联网连接然后重试。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2570,7 +2591,7 @@ msgstr "" "\n" "模拟主机即将停止运行。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2627,7 +2648,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "无法识别文件 {0}" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2645,15 +2666,15 @@ msgstr "" "您是否是在移动模拟器目录后收到这个消息?\n" "如果是这样,您可能需要在选项中重新指定您的存储卡位置。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "无法查找中心服务器" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "无法打开文件。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "无法读取文件。" @@ -2712,7 +2733,7 @@ msgstr "混音" msgid "Current Region" msgstr "当前区域" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "当前值" @@ -2818,23 +2839,23 @@ msgstr "数据传输" msgid "Data Type" msgstr "数据类型" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "文件中本应未被使用的区域存在数据。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "数据格式无法识别或损坏。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "GC 存储卡管理器中的数据不一致,正在中止操作。" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "数据已接收!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 文件" @@ -2939,21 +2960,21 @@ msgstr "" "

如果不确定,请不要勾选此项。" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "删除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "删除文件..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "删除所选文件..." #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "删除已经存在的文件 ‘{0}’ 吗?" @@ -2969,10 +2990,10 @@ msgstr "深度百分比:" msgid "Depth:" msgstr "深度:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2992,7 +3013,7 @@ msgstr "分离的" msgid "Detect" msgstr "检测" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "正在检测 RSO 模块" @@ -3013,7 +3034,7 @@ msgstr "设备" msgid "Device PID (e.g., 0305)" msgstr "设备 PID (例如: 0305)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "设备设置" @@ -3064,8 +3085,8 @@ msgstr "" msgid "Dis&connected" msgstr "断开连接(&C)" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "禁用" @@ -3141,7 +3162,7 @@ msgstr "丢弃" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 msgid "Display Type" -msgstr "" +msgstr "显示类型" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:231 msgid "Display values in Hex" @@ -3168,25 +3189,25 @@ msgstr "距离" msgid "Distance of travel from neutral position." msgstr "从中间位置移动的距离。" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "是否授权 Dolphin 向开发者报告信息?" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "是否要添加 \"%1\" 到游戏路径列表?" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "你是否要清除符号名称列表?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "是否要删除 %n 已选定的存档文件?" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "您确定是否停止当前模拟?" @@ -3203,9 +3224,9 @@ msgstr "Dolphin FIFO 日志 (*.dff)" msgid "Dolphin Game Mod Preset" msgstr "Dolphin 游戏模组预设" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "Dolphin 映射文件 (*.map)" @@ -3217,8 +3238,8 @@ msgstr "Dolphin 签名 CSV 文件" msgid "Dolphin Signature File" msgstr "Dolphin 签名文件" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS 电影 (*.dtm)" @@ -3240,7 +3261,7 @@ msgstr "" "\n" "无论如何还是要继续吗?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3260,7 +3281,7 @@ msgstr "Dolphin 未能完成请求的操作。" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin 是一个免费开源的 GameCube/Wii 模拟器。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "Dolphin 版本太旧,穿透服务器不支持" @@ -3325,7 +3346,7 @@ msgstr "下载代码" msgid "Download Codes from the WiiRD Database" msgstr "从 WiiRD 数据库中下载代码" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "从 GameTDB.com 下载游戏封面以便在网格模式下使用" @@ -3358,7 +3379,7 @@ msgstr "双核" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 msgid "Dual View" -msgstr "" +msgstr "双视图" #: Source/Core/Core/HW/EXI/EXI_Device.h:85 msgid "Dummy" @@ -3366,7 +3387,7 @@ msgstr "虚设" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 msgid "Dump" -msgstr "" +msgstr "转储" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &ARAM" @@ -3519,7 +3540,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "连发按键的松开持续时间(帧):" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "荷兰语" @@ -3596,7 +3617,7 @@ msgstr "内置帧缓冲 (EFB)" msgid "Empty" msgstr "空" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "模拟线程已经在运行" @@ -3631,8 +3652,8 @@ msgstr "必须要开始模拟才能录制。" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "启用" @@ -3682,7 +3703,7 @@ msgid "Enable Progressive Scan" msgstr "启用逐行扫描" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "启用震动" @@ -3815,7 +3836,7 @@ msgstr "" msgid "Encoding" msgstr "编码" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3832,7 +3853,7 @@ msgid "Enet Didn't Initialize" msgstr "Enet 没有初始化" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "英语" @@ -3865,7 +3886,7 @@ msgstr "输入新宽带适配器 MAC 地址:" msgid "Enter password" msgstr "输入密码" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "请输入 RSO 模块地址:" @@ -3877,7 +3898,7 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3896,46 +3917,47 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "错误" @@ -3956,11 +3978,11 @@ msgstr "获取会话列表时出错: %1" msgid "Error occurred while loading some texture packs" msgstr "加载一些纹理包时发生错误" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "处理代码时出错。" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "处理数据时出错。" @@ -3980,7 +4002,7 @@ msgstr "同步存档数据时出错!" msgid "Error writing file: {0}" msgstr "写入文件时出错:{0}" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -4146,10 +4168,10 @@ msgstr "实验性" msgid "Export All Wii Saves" msgstr "导出所有 Wii 存档" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "导出失败" @@ -4161,19 +4183,19 @@ msgstr "导出录制" msgid "Export Recording..." msgstr "导出录制..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "导出存档文件" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "导出存档文件" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "导出 Wii 存档" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "导出 Wii 存档" @@ -4185,7 +4207,7 @@ msgstr "导出为 .gcs...(&G)" msgid "Export as .&sav..." msgstr "导出为 .sav...(&S)" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4259,7 +4281,7 @@ msgstr "FIFO 回放器" msgid "Failed loading XML." msgstr "加载 XML 文件失败。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4271,19 +4293,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "无法将此会话添加到联机索引: %1" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "附加到签名文件 '%1' 失败" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" -msgstr "索取蓝牙直通接口失败" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" +msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "连接 Redump.org 失败" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "连接服务器失败: %1" @@ -4313,11 +4335,11 @@ msgstr "删除联机 GBA{0} 存档文件失败。请验证你的写入权限。" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "删除联机存储卡失败。请验证你的写入权限。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "无法删除所选文件。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "分离蓝牙直通内核驱动失败: {0}" @@ -4333,16 +4355,16 @@ msgstr "转储 %1 失败:无法打开文件" msgid "Failed to dump %1: Failed to write to file" msgstr "转储 %1 失败:无法写入文件" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "在 %1 个存档文件中 %n 个导出失败。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "导出以下存档文件失败:" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "从 NAND 中提取证书失败" @@ -4368,22 +4390,22 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "无法找到一个或多个 D3D 符号" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "导入 \"%1\" 失败。" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "导入存档文件失败。请运行一次游戏,然后重试。" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "导入存档文件失败。给定的文件似乎已损坏或不是有效的 Wii 存档。" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " @@ -4392,7 +4414,7 @@ msgstr "" "导入存档文件失败。您的 NAND 可能已损坏,或某些因素阻止访问里面的文件。请尝试" "修复 NAND(工具 -> 管理 NAND -> 校验 NAND...),然后再次导入存档。" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "初始化核心失败" @@ -4415,19 +4437,19 @@ msgstr "初始化渲染器类失败" msgid "Failed to install pack: %1" msgstr "安装包失败: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "无法将该游戏安装到 NAND。" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "监听端口 %1 失败。是否有另一个联机服务器的实例正在运行?" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "无法在 %1 处加载 RSO 模块" @@ -4439,7 +4461,7 @@ msgstr "载入 d3d11.dll 失败" msgid "Failed to load dxgi.dll" msgstr "载入 dxgi.dll 失败" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "载入映射文件 '%1' 失败" @@ -4453,13 +4475,13 @@ msgid "" "update package." msgstr "加载 {0} 失败。如果你使用的是 Windows 7,请尝试安装 KB4019990 更新包。" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "无法打开 '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "打开蓝牙设备失败: {0} " @@ -4483,11 +4505,11 @@ msgstr "" "无法在外部编辑器中打开文件。\n" "请确保已关联了应用程序来打开 INI 文件。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "打开文件失败。" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "打开服务器失败" @@ -4496,7 +4518,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "打开输入文件 \"%1\" 失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4518,25 +4540,25 @@ msgstr "将给定值解析为目标数据类型失败。" msgid "Failed to read DFF file." msgstr "读取 DFF 文件失败。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "从文件读取失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "从输入文件 “{0}” 读取失败。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "从存储卡读取所选的存档文件失败。" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "读取 {0} 失败" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "移除文件失败。" @@ -4550,7 +4572,7 @@ msgstr "" "\n" "是否要在不移除垃圾数据的情况下进行转换?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "将该游戏从 NAND 中移除失败。" @@ -4570,19 +4592,19 @@ msgstr "重置联机重定向文件夹失败。请验证你的写入权限。" msgid "Failed to save FIFO log." msgstr "保存 FIFO 日志失败。" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "保存代码映射到路径 '%1' 失败" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "保存签名文件 '%1' 失败" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "保存符号映射到路径 '%1' 失败" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "保存到签名文件 '%1' 失败" @@ -4606,9 +4628,9 @@ msgstr "写入 Wii 存档失败。" msgid "Failed to write config file!" msgstr "写入配置文件失败!" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "修改过的存储卡写入磁盘失败。" @@ -4616,12 +4638,12 @@ msgstr "修改过的存储卡写入磁盘失败。" msgid "Failed to write redirected save." msgstr "写入重定向存档失败。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "存档文件写入磁盘失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -4629,10 +4651,10 @@ msgstr "" "无法写入输出文件 “{0}”。\n" "请检查目标驱动器是否有足够多的可用空间。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "失败" @@ -4657,7 +4679,7 @@ msgstr "快速" msgid "Fast Depth Calculation" msgstr "快速深度计算" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4673,7 +4695,7 @@ msgstr "视野" msgid "File Details" msgstr "文件详细信息" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4687,19 +4709,19 @@ msgstr "文件格式:" msgid "File Info" msgstr "文件信息" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "文件名" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "文件路径" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "文件大小" @@ -4728,11 +4750,11 @@ msgstr "" "找不到 M3U 文件 “{0}” 中指定的下列文件:\n" "{1}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "文件大小与任何已知的 GameCube 存储卡大小都不匹配。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "标头中的文件大小与实际卡大小不匹配。" @@ -4787,17 +4809,17 @@ msgstr "第一人称" msgid "Fix Checksums" msgstr "修正校验和" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "修正校验和失败" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 msgid "Fixed Alignment" -msgstr "" +msgstr "固定对齐" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "标记" @@ -4946,11 +4968,11 @@ msgstr "录制帧数:" msgid "France" msgstr "法国" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "空闲区块数: %1" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "空闲文件数: %1" @@ -4991,7 +5013,7 @@ msgid "Freelook Toggle" msgstr "自由视点切换" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "法语" @@ -5020,7 +5042,7 @@ msgstr "从:" msgid "FullScr" msgstr "全屏" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "函数" @@ -5052,7 +5074,7 @@ msgstr "GBA 核心" msgid "GBA Port %1" msgstr "GBA 端口 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "GBA 设置" @@ -5064,11 +5086,11 @@ msgstr "GBA 音量" msgid "GBA Window Size" msgstr "GBA 窗口大小" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM 更改为 \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM 已禁用" @@ -5197,11 +5219,11 @@ msgstr "游戏" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "GBA 游戏卡带 (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5225,7 +5247,7 @@ msgstr "游戏详细信息" msgid "Game Folders" msgstr "游戏文件夹" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "游戏 ID" @@ -5239,11 +5261,25 @@ msgstr "游戏 ID:" msgid "Game Status" msgstr "游戏状态" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "游戏更改为 \"%1\"" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "游戏已经运行!" @@ -5252,6 +5288,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "游戏覆盖了其他的游戏存档,将会破坏数据 {0:#x}, {1:#x}" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "特定游戏设置" @@ -5292,12 +5332,12 @@ msgstr "端口 %1 的 GameCube 键盘" msgid "GameCube Memory Card Manager" msgstr "GameCube 存储卡管理器" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "GameCube 存储卡" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube 存储卡 (*.raw *.gcp)" @@ -5330,7 +5370,7 @@ msgstr "常规" msgid "General and Options" msgstr "常规和选项" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "生成 Action Replay 代码" @@ -5338,16 +5378,16 @@ msgstr "生成 Action Replay 代码" msgid "Generate a New Statistics Identity" msgstr "生成一个新的统计标识" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "已生成 AR 代码。" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "从 '%1' 中生成符号名" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "德语" @@ -5356,14 +5396,14 @@ msgstr "德语" msgid "Germany" msgstr "德国" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" +msgstr "" + #: Source/Core/UICommon/UICommon.cpp:420 msgid "GiB" msgstr "GiB" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" -msgstr "转到" - #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 msgid "Golf Mode" msgstr "高尔夫模式" @@ -5445,15 +5485,15 @@ msgstr "十六进制" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 msgid "Hex 16" -msgstr "" +msgstr "十六进制 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 32" -msgstr "" +msgstr "十六进制 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 msgid "Hex 8" -msgstr "" +msgstr "十六进制 8" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 msgid "Hex Byte String" @@ -5537,15 +5577,15 @@ msgstr "" "增加其他人的延迟。\n" "适合 3 人以上的休闲游戏,在连接不稳定或高延迟下或许也能运作。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "主机输入优先权已禁用" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "主机输入优先权已启用" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "建主机联网" @@ -5563,7 +5603,7 @@ msgstr "热键设置" msgid "Hotkeys" msgstr "热键" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "热键需要窗口是活动状态" @@ -5612,7 +5652,7 @@ msgstr "" msgid "IP Address:" msgstr "IP 地址 :" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL 设置" @@ -5621,7 +5661,7 @@ msgid "IR" msgstr "红外线" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "红外灵敏度:" @@ -5671,7 +5711,7 @@ msgstr "" msgid "Identity Generation" msgstr "身份标识生成" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5730,7 +5770,7 @@ msgstr "忽略" msgid "Ignore Format Changes" msgstr "忽略格式变化" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "本次会话期间忽略" @@ -5777,14 +5817,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "导入 BootMii NAND 备份..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "导入失败" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "导入存档文件" @@ -5792,11 +5832,11 @@ msgstr "导入存档文件" msgid "Import Wii Save..." msgstr "导入 Wii 存档..." -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "正在导入 NAND 备份" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5873,21 +5913,21 @@ msgid "Info" msgstr "信息" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "信息" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "在模拟过程中禁止屏幕保护程序" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "输入" @@ -5932,7 +5972,7 @@ msgstr "安装更新" msgid "Install WAD..." msgstr "安装 WAD..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "安装至 NAND" @@ -5948,7 +5988,7 @@ msgstr "指令" msgid "Instruction Breakpoint" msgstr "指令断点" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "指令:" @@ -5997,7 +6037,7 @@ msgstr "内部分辨率" msgid "Internal Resolution:" msgstr "内部分辨率:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "生成 AR 代码时出现内部错误。" @@ -6009,7 +6049,7 @@ msgstr "解释器(最慢)" msgid "Interpreter Core" msgstr "解释器核心" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "无效表达式。" @@ -6026,7 +6066,7 @@ msgstr "包 %1 无效: %2" msgid "Invalid Player ID" msgstr "无效玩家 ID" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "无效 RSO 模块地址: %1" @@ -6034,7 +6074,7 @@ msgstr "无效 RSO 模块地址: %1" msgid "Invalid callstack" msgstr "无效调用堆栈" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "无效校验和。" @@ -6042,7 +6082,7 @@ msgstr "无效校验和。" msgid "Invalid game." msgstr "无效游戏。" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "无效主机" @@ -6051,7 +6091,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "字段 \"%1\" 的输入无效" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "提供的输入无效" @@ -6083,7 +6123,7 @@ msgstr "无效的搜索字符串(无法转换成数字)" msgid "Invalid search string (only even string lengths supported)" msgstr "无效的搜索字符串(仅支持相等长度的字符串)" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "无效游戏 ID" @@ -6092,7 +6132,7 @@ msgid "Invalid watch address: %1" msgstr "无效监视地址: %1" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "意大利语" @@ -6198,7 +6238,7 @@ msgstr "日语" msgid "Japanese (Shift-JIS)" msgstr "日本 (Shift-JIS)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "窗口置顶" @@ -6266,7 +6306,7 @@ msgstr "LR 保存" msgid "Label" msgstr "标签" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "上个值" @@ -6370,7 +6410,7 @@ msgstr "正在监听" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "载入" @@ -6505,7 +6545,7 @@ msgstr "从插槽中载入状态" msgid "Load Wii Save" msgstr "载入 Wii 存档" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "加载 Wii 系统菜单 %1" @@ -6517,8 +6557,8 @@ msgstr "从选择的插槽中加载" msgid "Load from Slot %1 - %2" msgstr "从插槽 %1 - %2 载入" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "载入映射文件" @@ -6526,7 +6566,7 @@ msgstr "载入映射文件" msgid "Load..." msgstr "载入..." -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "已从 '%1' 中加载符号" @@ -6544,7 +6584,7 @@ msgstr "" msgid "Local" msgstr "本地" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "锁定鼠标光标" @@ -6573,7 +6613,7 @@ msgstr "日志类型" msgid "Logger Outputs" msgstr "日志输出" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6587,7 +6627,7 @@ msgstr "" msgid "Loop" msgstr "循环" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "丢失联机服务器连接..." @@ -6616,7 +6656,7 @@ msgstr "MMU" msgid "MORIBUND" msgstr "即将结束" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "MadCatz Gameshark 文件" @@ -6624,7 +6664,7 @@ msgstr "MadCatz Gameshark 文件" msgid "Main Stick" msgstr "主摇杆" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6666,11 +6706,11 @@ msgstr "伪装 ROM" msgid "Match Found" msgstr "找到匹配" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "最大缓冲区:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "最大缓冲区大小更改为 %1" @@ -6704,22 +6744,6 @@ msgstr "存储卡" msgid "Memory Card Manager" msgstr "存储卡管理器" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" -"插槽 {0} 中的存储卡文件名不正确\n" -"没有指定区域\n" -"\n" -"插槽 {1} 路径被修改成\n" -"{2}\n" -"你想复制旧文件到这个新位置吗?\n" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "内存覆盖" @@ -6728,19 +6752,19 @@ msgstr "内存覆盖" msgid "Memory breakpoint options" msgstr "内存断点选项" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "MemoryCard: ClearBlock 在无效地址 ({0:#x}) 中调用" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "MemoryCard: 在无效源地址 ({0:#x}) 中读取调用" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: 在无效目标地址 ({0:#x}) 中写入调用" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6768,15 +6792,15 @@ msgstr "其它" msgid "Misc Settings" msgstr "其它设置" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "标头中的空闲区块数与实际未使用的区块不匹配。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "内部数据结构不匹配。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6808,8 +6832,8 @@ msgstr "" "修改纹理以显示以其编码格式。

可能需要重置模拟才能生效。" "

如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "已找到模块: %1" @@ -6838,20 +6862,20 @@ msgstr "体感模拟" msgid "Motor" msgstr "马达" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "鼠标光标可见" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "鼠标光标在不活动后隐藏并在光标移动时可见。" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "鼠标光标将始终可见。" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "游戏运行时鼠标光标将一直不可见。" @@ -6865,14 +6889,20 @@ msgstr "移动" msgid "Movie" msgstr "影片" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "全部选否(&O)" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "NAND 校验" @@ -6903,11 +6933,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "名称" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "命名一个新标签:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "要移除的标签名:" @@ -6928,8 +6958,8 @@ msgstr "名称:" msgid "Native (640x528)" msgstr "原生 (640x528)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "内部 GCI 文件" @@ -6949,11 +6979,11 @@ msgstr "联机设定" msgid "Netherlands" msgstr "荷兰" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "联机在 NetPlay_GetButtonPress() 中不同步" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "联机发生不同步,已无法恢复。" @@ -6966,7 +6996,7 @@ msgstr "网络" msgid "Network dump format:" msgstr "网络转储格式:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "从不" @@ -6974,7 +7004,7 @@ msgstr "从不" msgid "Never Auto-Update" msgstr "不要自动更新" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "新" @@ -6987,7 +7017,7 @@ msgstr "新断点" msgid "New Search" msgstr "新建搜索" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "新标签..." @@ -6999,7 +7029,7 @@ msgstr "已生成新的标识。" msgid "New instruction:" msgstr "新指令:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "新标签" @@ -7037,7 +7067,7 @@ msgstr "未检测到适配器" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "No Alignment" -msgstr "" +msgstr "未对齐" #: Source/Core/Core/Config/MainSettings.h:16 msgid "No Audio Output" @@ -7056,13 +7086,13 @@ msgstr "无匹配" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "没有可用的说明" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "没有错误。" @@ -7082,10 +7112,14 @@ msgstr "没有游戏在运行。" msgid "No game running." msgstr "没有游戏运行。" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "没有发现问题。" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "在 M3U 文件 “{0}” 中找不到路径" @@ -7115,7 +7149,7 @@ msgstr "没有找到游戏设置 ‘{0}’ 的预设" msgid "No recording loaded." msgstr "没有录制被载入。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "没有找到存档数据。" @@ -7135,10 +7169,6 @@ msgstr "无" msgid "North America" msgstr "北美" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "未找到" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "未设置" @@ -7147,7 +7177,7 @@ msgstr "未设置" msgid "Not all players have the game. Do you really want to start?" msgstr "并不是所有玩家都有该游戏。你真的要开始吗?" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -7155,7 +7185,7 @@ msgid "" "required." msgstr "目标存储卡上没有足够的空闲区块。至少需要 %n 个区块。 " -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -7163,6 +7193,10 @@ msgid "" "required." msgstr "目标存储卡上没有足够的空闲文件数。至少需要 %n 个文件数。 " +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -7215,7 +7249,7 @@ msgstr "双节棍控制器方向" msgid "Nunchuk Stick" msgstr "双节棍控制器" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7246,7 +7280,7 @@ msgstr "偏移量" msgid "On" msgstr "开" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "活动时" @@ -7254,7 +7288,7 @@ msgstr "活动时" msgid "Online &Documentation" msgstr "在线文档(&D)" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" @@ -7262,7 +7296,7 @@ msgstr "" "仅附加有此前缀的符号:\n" "(留空表示全部)" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -7275,7 +7309,7 @@ msgstr "" msgid "Open" msgstr "打开" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "打开所在目录(&C)" @@ -7287,7 +7321,7 @@ msgstr "打开目录..." msgid "Open FIFO log" msgstr "打开 FIFO 日志" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "打开 GameCube 存档目录(&S)" @@ -7295,7 +7329,7 @@ msgstr "打开 GameCube 存档目录(&S)" msgid "Open Riivolution XML..." msgstr "打开 Riivolutione XML..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "打开 Wii 存档目录(&S)" @@ -7483,7 +7517,7 @@ msgstr "暂停" msgid "Pause at End of Movie" msgstr "在影片末尾暂停" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "窗口非活动时暂停" @@ -7510,7 +7544,7 @@ msgstr "逐像素光照" msgid "Perform Online System Update" msgstr "执行在线系统更新" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "执行系统更新" @@ -7528,7 +7562,7 @@ msgstr "物理地址空间" msgid "PiB" msgstr "PiB" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "选择调试字体" @@ -7544,7 +7578,7 @@ msgstr "下俯" msgid "Pitch Up" msgstr "上仰" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "平台" @@ -7590,7 +7624,7 @@ msgstr "指向" msgid "Port %1" msgstr "端口 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "端口 %1 ROM:" @@ -7599,7 +7633,7 @@ msgstr "端口 %1 ROM:" msgid "Port:" msgstr "端口 :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "检测到可能的非同步异常: %1 或许已在帧 %2 处不同步 " @@ -7619,15 +7653,15 @@ msgstr "后处理着色器配置" msgid "Prefetch Custom Textures" msgstr "预读取自定义纹理" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "在 PlayController 中提前结束影片。{0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "在 PlayWiimote 中提前结束影片。{0} + {1} > {2}" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "在PlayWiimote 中提前结束影片。{0} > {1}" @@ -7652,7 +7686,7 @@ msgstr "按下同步按钮" msgid "Pressure" msgstr "压感" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7736,7 +7770,7 @@ msgstr "公开" msgid "Purge Game List Cache" msgstr "清除游戏列表缓存" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "将 IPL ROM 放至 User/GC/。" @@ -7762,8 +7796,8 @@ msgstr "DPLII 解码器的质量。质量越高音频延迟越大。" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "询问" @@ -7791,7 +7825,7 @@ msgstr "就绪" msgid "RSO Modules" msgstr "RSO 模块" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "RSO 自动检测" @@ -7940,12 +7974,12 @@ msgstr "刷新失败。请运行一会儿游戏,然后重试。" msgid "Refreshed current values." msgstr "已刷新当前值。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "正在刷新..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7975,12 +8009,12 @@ msgstr "以后提醒我" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "移除" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "移除失败" @@ -7988,11 +8022,11 @@ msgstr "移除失败" msgid "Remove Junk Data (Irreversible):" msgstr "移除垃圾数据(不可逆):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "移除标签..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "移除标签" @@ -8010,7 +8044,7 @@ msgstr "" msgid "Rename symbol" msgstr "重命名符号" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "渲染窗口" @@ -8091,7 +8125,7 @@ msgstr "资源包管理器" msgid "Resource Pack Path:" msgstr "资源包路径:" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "需要重启" @@ -8103,7 +8137,7 @@ msgstr "恢复默认值" msgid "Restore instruction" msgstr "恢复指令" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "重试" @@ -8206,7 +8240,7 @@ msgstr "震动" msgid "Run &To Here" msgstr "运行到此处(&T)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "在独占线程中运行 GBA 内核" @@ -8238,7 +8272,7 @@ msgstr "选择" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "SP1:" @@ -8267,7 +8301,7 @@ msgstr "安全" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -8277,9 +8311,9 @@ msgstr "保存" msgid "Save All" msgstr "保存全部" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "存档导出" @@ -8300,11 +8334,11 @@ msgstr "游戏存档" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "游戏存档文件 (*.sav);;所有文件 (*)" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "存档导入" @@ -8316,7 +8350,7 @@ msgstr "保存到最早状态存档" msgid "Save Preset" msgstr "保存预设" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "录制文件另存为" @@ -8402,11 +8436,11 @@ msgstr "另存为预设..." msgid "Save as..." msgstr "另存为..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "将组合输出文件另存为" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" @@ -8415,15 +8449,15 @@ msgstr "" "此游戏的存档数据已存在于 NAND 中。 建议在覆盖之前备份当前数据。\n" "是否现在覆盖? " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "保存在与 ROM 相同的目录中" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "保存映射文件" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "保存签名文件" @@ -8443,11 +8477,11 @@ msgstr "保存..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "只有在 Wii 游戏运行时保存的 Wii 遥控器配对才能重置。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "存档:" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "即时存档影片 {0} 被破坏,影片录制停止……" @@ -8500,7 +8534,7 @@ msgstr "搜索一个指令" msgid "Search games..." msgstr "搜索游戏..." -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "搜索指令" @@ -8532,20 +8566,20 @@ msgstr "选择" msgid "Select Dump Path" msgstr "选择转储路径" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "选择导出目录" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "选择 GBA BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "选择 GBA ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "选择 GBA 存档路径" @@ -8625,7 +8659,7 @@ msgstr "选择 WFS 路径" msgid "Select Wii NAND Root" msgstr "选择 Wii NAND 根目录" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "选择目录" @@ -8633,9 +8667,9 @@ msgstr "选择目录" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "选择文件" @@ -8649,13 +8683,13 @@ msgstr "选择 SD 卡镜像" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 msgid "Select a file" -msgstr "" +msgstr "选择文件" #: Source/Core/DolphinQt/NetPlay/GameListDialog.cpp:18 msgid "Select a game" msgstr "选择游戏" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "选择要安装到 NAND 的软件" @@ -8663,11 +8697,11 @@ msgstr "选择要安装到 NAND 的软件" msgid "Select e-Reader Cards" msgstr "选择 e-Reader 卡" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "选择 RSO 模块地址:" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "选择要播放的录制文件" @@ -8675,12 +8709,12 @@ msgstr "选择要播放的录制文件" msgid "Select the Virtual SD Card Root" msgstr "选择虚拟 SD 卡根目录" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "选择密钥文件 (OTP/SEEPROM 转储)" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "选择一个存档文件" @@ -8702,9 +8736,9 @@ msgstr "所选控制器预设不存在" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "所选游戏在游戏列表中不存在!" @@ -8716,7 +8750,7 @@ msgstr "选定的线程调用栈" msgid "Selected thread context" msgstr "选定的线程上下文" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." @@ -8724,7 +8758,7 @@ msgstr "" "选择要使用的硬件适配器。

%1 不支持此功能。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8762,7 +8796,7 @@ msgstr "" "者分别尝试一下,然后选择问题较少的一个。

如果不确" "定,请选择“OpenGL”。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8775,7 +8809,7 @@ msgstr "" "
“拉伸到窗口”:将图像拉伸至窗口大小。

如果不确" "定,请选择“自动”。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8793,7 +8827,7 @@ msgstr "" msgid "Send" msgstr "发送" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "感应条位置:" @@ -8816,7 +8850,7 @@ msgstr "服务器 IP 地址" msgid "Server Port" msgstr "服务器端口" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "穿透尝试被服务器拒绝" @@ -8835,17 +8869,17 @@ msgstr "设置 PC" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Set Value From File" -msgstr "" +msgstr "从文件中设置数值" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "设置为默认镜像(&D)" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "给插槽 A 设置存储卡文件" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "给插槽 B 设置存储卡文件" @@ -8931,7 +8965,7 @@ msgstr "显示日志(&L)" msgid "Show &Toolbar" msgstr "显示工具栏(&T)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "在标题栏显示当前游戏名" @@ -8947,7 +8981,7 @@ msgstr "显示澳大利亚" msgid "Show Current Game on Discord" msgstr "在 Discord 软件中显示当前游戏" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "显示调试界面" @@ -9019,7 +9053,7 @@ msgstr "显示联机延迟" msgid "Show Netherlands" msgstr "显示荷兰" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "显示屏显消息" @@ -9089,10 +9123,23 @@ msgstr "显示全球" msgid "Show in &memory" msgstr "在内存中显示(&M)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "在代码中显示" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "在服务器浏览器中显示" @@ -9109,7 +9156,7 @@ msgstr "" "显示各种渲染统计数据。

如果不确定,请不要勾选此项。" "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." @@ -9117,7 +9164,7 @@ msgstr "" "在联机游戏时显示聊天消息、缓冲变化和未同步警告。

如" "果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked.
如果不确定,请不" "要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -9217,7 +9264,7 @@ msgstr "跳过绘制" msgid "Skip EFB Access from CPU" msgstr "跳过 CPU 对 EFB 访问" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "跳过主菜单" @@ -9247,7 +9294,7 @@ msgstr "滑品板" msgid "Slot A" msgstr "插槽 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "插槽 A:" @@ -9255,7 +9302,7 @@ msgstr "插槽 A:" msgid "Slot B" msgstr "插槽 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "插槽 B:" @@ -9309,7 +9356,7 @@ msgid "Spain" msgstr "西班牙" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "西班牙语" @@ -9318,7 +9365,7 @@ msgstr "西班牙语" msgid "Speaker Pan" msgstr "扬声器声像" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "扬声器音量:" @@ -9406,11 +9453,11 @@ msgstr "以全屏启动" msgid "Start with Riivolution Patches" msgstr "启动时附加 Riivolution 补丁" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "启动时附加 Riivolution 补丁..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "游戏已启动" @@ -9579,10 +9626,10 @@ msgstr "手写笔" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "成功" @@ -9600,16 +9647,16 @@ msgstr "成功转换 %n 个镜像。" msgid "Successfully deleted '%1'." msgstr "成功删除 '%1'。" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "在 %1 个存档文件中 %n 个导出成功。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "成功导出存档文件" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "已成功从 NAND 中提取证书" @@ -9621,16 +9668,16 @@ msgstr "提取文件成功。" msgid "Successfully extracted system data." msgstr "提取系统数据成功。" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "导入存档文件成功。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "成功将此软件安装到 NAND。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "成功将此软件从 NAND 中移除。" @@ -9638,7 +9685,7 @@ msgstr "成功将此软件从 NAND 中移除。" msgid "Support" msgstr "支持" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "支持的文件格式" @@ -9673,11 +9720,11 @@ msgstr "" msgid "Swing" msgstr "挥舞" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "转换到 A" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "转换到 B" @@ -9760,7 +9807,7 @@ msgstr "正在同步 Gecko 代码..." msgid "Synchronizing save data..." msgstr "正在同步存档数据..." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "系统语言:" @@ -9775,8 +9822,8 @@ msgstr "TAS 输入" msgid "TAS Tools" msgstr "TAS 工具" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9845,13 +9892,13 @@ msgstr "此 IPL 文件不是已知的正确转储。(CRC32: {0:x})" msgid "The Masterpiece partitions are missing." msgstr "缺少杰作分区。" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "该 NAND 无法修复。建议备份您当前的数据并使用新的 NAND 启动。" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "NAND 已修复。" @@ -9903,11 +9950,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "无法读取此光盘 (at {0:#x} - {1:#x})。" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "无法找到已可插入的光盘。" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9940,11 +9987,11 @@ msgstr "输入的 PID 无效。" msgid "The entered VID is invalid." msgstr "输入的 VID 无效。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "此表达式含有语法错误。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9974,6 +10021,13 @@ msgstr "文件 {0} 无法以写入形式打开。请检查该文件是否已经 msgid "The file {0} was already open, the file header will not be written." msgstr "文件 {0} 已经打开,文件头不会被写入。" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "文件系统无效或无法读取。" @@ -10082,7 +10136,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "产生的已解密 AR 代码不包含任何行。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "同一文件不能在多个插槽中使用;其已被 %1 占用。" @@ -10119,7 +10173,7 @@ msgstr "指定的公用密钥索引是 {0} ,但应该为 {1} 。" msgid "The specified file \"{0}\" does not exist" msgstr "指定的文件 “{0}” 不存在" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "目标存储卡已包含文件 “%1”。" @@ -10174,7 +10228,7 @@ msgstr "第一个分区表中的分区太多。" msgid "There is nothing to undo!" msgstr "没有需要撤销的操作。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "向桌面添加快捷方式时出现问题" @@ -10214,11 +10268,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "此 USB 设备已列入白名单。" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "无法启动该 WAD" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "此 WAD 无效。" @@ -10229,7 +10283,7 @@ msgid "" msgstr "此Action Replay模拟器不支持修改Action Replay本身的代码。" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "不能被撤销!" @@ -10343,7 +10397,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "该软件不能用于运行你非法持有的游戏。" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "无法启动该软件。" @@ -10356,7 +10410,7 @@ msgstr "此游戏设置为使用无效的 IOS。" msgid "This title is set to use an invalid common key." msgstr "此游戏设置为使用无效的公用密钥。" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10367,7 +10421,7 @@ msgstr "" "\n" "DSP HLE: 未知 Ucode (CRC = {0:08x}) - 强制 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10433,7 +10487,7 @@ msgstr "倾斜" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "触发校准的稳定输入时间段。(0 为禁用)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10475,7 +10529,7 @@ msgid "Toggle Aspect Ratio" msgstr "切换长宽比" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "切换断点" @@ -10535,7 +10589,7 @@ msgstr "标记化失败。" msgid "Toolbar" msgstr "工具栏" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "顶部" @@ -10587,8 +10641,8 @@ msgstr "接触" msgid "Traditional Chinese" msgstr "繁体中文" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "穿透错误" @@ -10596,7 +10650,7 @@ msgstr "穿透错误" msgid "Traversal Server" msgstr "穿透服务器" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "穿透服务器与主机连接超时" @@ -10620,7 +10674,7 @@ msgid "Triggers" msgstr "扳机" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10628,7 +10682,7 @@ msgstr "类型" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 msgid "Type-based Alignment" -msgstr "" +msgstr "基于类型对齐" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:48 msgid "Typical GameCube/Wii Address Space" @@ -10654,7 +10708,7 @@ msgstr "USB Gecko" msgid "USB Whitelist Error" msgstr "USB 白名单错误" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " @@ -10664,7 +10718,7 @@ msgstr "" "低端硬件。

如果不确定,请选择此模式。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10675,7 +10729,7 @@ msgstr "" "

除非使用混合超着色器遇到卡顿并且拥有非常强大的 " "GPU,否则不要使用此选项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10687,13 +10741,13 @@ msgstr "" "

在理想情况下将在消除着色器编译卡顿的同时尽可能减小性能影响,但效果因" "视频驱动的行为而异。" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "无法自动检测 RSO 模块" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 msgid "Unable to open file." -msgstr "" +msgstr "无法打开文件。" #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:150 msgid "" @@ -10720,7 +10774,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 msgid "Unable to read file." -msgstr "" +msgstr "无法读取文件。" #: Source/Core/DiscIO/NANDImporter.cpp:268 msgid "Unable to write to file {0}" @@ -10746,11 +10800,11 @@ msgstr "撤销保存状态" msgid "Uninstall" msgstr "卸载" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "从 NAND 中卸载" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10769,11 +10823,11 @@ msgstr "美国" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "未知 DVD 命令 {0:08x} - 致命错误" @@ -10817,11 +10871,11 @@ msgstr "未知光盘" msgid "Unknown error occurred." msgstr "发生未知错误。" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "未知错误 {0:x}" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "未知错误。" @@ -10877,8 +10931,8 @@ msgstr "无符号整数" msgid "Up" msgstr "上" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "更新" @@ -10940,11 +10994,11 @@ msgstr "竖握 Wii 遥控器" msgid "Usage Statistics Reporting Settings" msgstr "使用情况统计报告设置" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "使用内建数据库游戏名称" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "使用自定义用户风格" @@ -10956,7 +11010,7 @@ msgstr "使用无损编解码器 (FFV1)" msgid "Use PAL60 Mode (EuRGB60)" msgstr "使用 PAL60 模式 (EuRGB60)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "使用警告程序" @@ -11035,11 +11089,11 @@ msgstr "" msgid "User Config" msgstr "用户配置" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "用户界面" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "用户风格:" @@ -11068,7 +11122,7 @@ msgstr "" "的提速,取决于游戏和/或 GPU。

如果不确定,请勾选此" "项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " @@ -11077,7 +11131,7 @@ msgstr "" "使用整个屏幕进行渲染。

如果禁用,则会创建一个渲染窗口。" "

如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked.
其他情况下,如果不确" "定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -11324,7 +11378,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "警告" @@ -11343,7 +11397,7 @@ msgid "" "the loaded file header ({1})" msgstr "警告:BAT 所标示的区块数 ({0}) 与已载入文件头中的 ({1}) 不匹配" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " @@ -11352,7 +11406,7 @@ msgstr "" "警告:您读取的存档在当前影片结束之后。(字节 {0} > {1}) (输入 {2} > {3}) 。您" "需要读取另一个存档方可继续,或关闭只读模式再读取此状态存档。" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " @@ -11361,7 +11415,7 @@ msgstr "" "警告:您读取的存档影片已结束在存档的当前帧之前 (字节 {0} < {1}) (帧 {2} < " "{3})。您需要读取另一个存档方可继续。" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" @@ -11370,7 +11424,7 @@ msgstr "" "警告:您读取的存档在 {0} ({1:#x}) 字节处与影片不匹配。您需要读取另一个存档方" "可继续,或关闭只读模式再读取此状态存档。否则将可能发生不同步。" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -11445,7 +11499,7 @@ msgstr "" "强选项卡中启用了“特殊多级纹理检测”,则特殊多级纹理也会被转储。" "

如果不确定,请勾选此项。" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "USB 直通设备白名单" @@ -11491,7 +11545,7 @@ msgstr "Wii 遥控器按键" msgid "Wii Remote Orientation" msgstr "Wii 遥控器方向" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "Wii 遥控器设置" @@ -11519,7 +11573,7 @@ msgstr "Wii 和 Wii 遥控器" msgid "Wii data is not public yet" msgstr "Wii 数据尚未公开" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "Wii 存档文件 (*.bin);; 所有文件 (*)" @@ -11527,7 +11581,7 @@ msgstr "Wii 存档文件 (*.bin);; 所有文件 (*)" msgid "WiiTools Signature MEGA File" msgstr "WiiTools 签名 MEGA 文件" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -11584,9 +11638,21 @@ msgstr "写入到日志并中断" msgid "Write to Window" msgstr "写入到窗口" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" -msgstr "错误版本" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" +msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11663,17 +11729,6 @@ msgstr "" "\n" "您确定要继续吗?" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" -"您试图在不受支持的操作系统上使用 Vulkan (Metal) 后端。要启用所有特性,您必须" -"使用 macOS 10.14 (Mojave) 或更高版本。请不要报告遇到的任何问题,除非在 " -"10.14+ 上也出现了。" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "您正在运行此更新通道上提供的最新版本。" @@ -11722,7 +11777,7 @@ msgstr "你必须为会话提供一个名称!" msgid "You must provide a region for your session!" msgstr "你必须为会话提供一个区域!" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "您必须重新启动 Dolphin 以使改动生效。" @@ -11799,12 +11854,12 @@ msgstr "厘米" msgid "d3d12.dll could not be loaded." msgstr "无法加载 d3d12.dll。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "默认" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "连接已断开" @@ -11867,13 +11922,13 @@ msgstr "" msgid "none" msgstr "无" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "关" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "开" @@ -11910,7 +11965,7 @@ msgstr "未对齐" msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -11935,7 +11990,7 @@ msgstr "" "请验证你的写入权限或者将文件移动至 Dolphin 之外" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "区块 {0} ,共 {1} 。压缩率 {2}%" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index e62d57a49a..83fafe60e6 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-30 23:46+0200\n" +"POT-Creation-Date: 2022-06-21 21:51+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -41,7 +41,7 @@ msgid "" "that it hasn't been tampered with." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1164 +#: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" "\n" "\n" @@ -170,19 +170,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:871 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:876 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:998 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 msgid "%1 is now golfing" msgstr "" @@ -219,7 +219,7 @@ msgstr "" msgid "%1, %2, %3, %4" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:604 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:605 msgid "%1: %2" msgstr "" @@ -282,7 +282,7 @@ msgstr "" msgid "&About" msgstr "關於(&A)" -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:317 msgid "&Add Memory Breakpoint" msgstr "" @@ -374,7 +374,7 @@ msgstr "刪除 (&D)" #. i18n: This kind of "watch" is used for watching emulated memory. #. It's not related to timekeeping devices. -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:315 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:316 msgid "&Delete Watch" msgstr "刪除監視 (&D)" @@ -472,7 +472,7 @@ msgstr "" msgid "&JIT" msgstr "&JIT" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:112 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:113 msgid "&Language:" msgstr "語言 (&L)" @@ -529,7 +529,7 @@ msgstr "暫停(&P)" msgid "&Play" msgstr "執行(&P)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:357 +#: Source/Core/DolphinQt/GameList/GameList.cpp:396 msgid "&Properties" msgstr "屬性(&P)" @@ -579,7 +579,7 @@ msgstr "限制速度 (&S)" msgid "&Stop" msgstr "停止(&S)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:116 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:117 msgid "&Theme:" msgstr "主題 (&T)" @@ -609,7 +609,7 @@ msgstr "" msgid "&Website" msgstr "網站(&W)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:360 +#: Source/Core/DolphinQt/GameList/GameList.cpp:399 msgid "&Wiki" msgstr "&Wiki" @@ -617,15 +617,15 @@ msgstr "&Wiki" msgid "&Yes" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1266 +#: Source/Core/DolphinQt/MenuBar.cpp:1263 msgid "'%1' not found, no symbol names generated" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1472 +#: Source/Core/DolphinQt/MenuBar.cpp:1469 msgid "'%1' not found, scanning for common functions instead" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:134 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" msgstr "(無)" @@ -662,9 +662,9 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:675 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:98 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." msgstr "" @@ -854,7 +854,7 @@ msgstr "" msgid "" msgstr "<無>" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:68 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:69 msgid "" msgstr "" @@ -869,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -884,15 +884,15 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:546 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 msgid "A disc is already about to be inserted." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:221 +#: Source/Core/DolphinQt/Main.cpp:224 msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:894 +#: Source/Core/DolphinQt/MainWindow.cpp:900 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1027,7 +1027,7 @@ msgstr "" msgid "Activate NetPlay Chat" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Active" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Active threads" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:273 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:274 msgid "Adapter" msgstr "" @@ -1069,8 +1069,8 @@ msgstr "" msgid "Add New USB Device" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:441 -#: Source/Core/DolphinQt/GameList/GameList.cpp:444 +#: Source/Core/DolphinQt/GameList/GameList.cpp:480 +#: Source/Core/DolphinQt/GameList/GameList.cpp:483 msgid "Add Shortcut to Desktop" msgstr "" @@ -1097,18 +1097,18 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:619 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 #: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 msgid "Add..." msgstr "新增..." -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:77 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:132 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:362 @@ -1187,10 +1187,15 @@ msgstr "" msgid "Aligned to data type length" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:438 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:589 -#: Source/Core/DolphinQt/MainWindow.cpp:742 +#. i18n: A double precision floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 +msgid "All Double" +msgstr "" + +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:439 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:590 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1198,20 +1203,37 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:401 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 msgid "All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:741 +#. i18n: A floating point number +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 +msgid "All Float" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:747 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1310 -#: Source/Core/DolphinQt/MainWindow.cpp:1318 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 +msgid "All Hexadecimal" +msgstr "" + +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 +msgid "All Signed Integer" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 +msgid "All Unsigned Integer" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" msgstr "" @@ -1232,7 +1254,7 @@ msgstr "" msgid "Allow Mismatched Region Settings" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:254 +#: Source/Core/DolphinQt/Main.cpp:257 msgid "Allow Usage Statistics Reporting" msgstr "" @@ -1254,7 +1276,7 @@ msgstr "" msgid "Alternate Input Sources" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" msgstr "" @@ -1310,7 +1332,7 @@ msgstr "邊緣抗鋸齒:" msgid "Any Region" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1611 +#: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" msgstr "" @@ -1336,7 +1358,7 @@ msgstr "" msgid "Apply" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1634 +#: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" msgstr "" @@ -1348,7 +1370,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:772 +#: Source/Core/DolphinQt/GameList/GameList.cpp:811 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1364,7 +1386,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:275 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:276 msgid "Aspect Ratio" msgstr "" @@ -1381,7 +1403,7 @@ msgstr "" msgid "Assign Controllers" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:534 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:535 msgid "" "At least two of the selected save files have the same internal filename." msgstr "" @@ -1442,11 +1464,11 @@ msgstr "" msgid "Auto-Hide" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "Auto-detect RSO modules?" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:211 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." "

If unsure, leave this unchecked." @@ -1473,7 +1495,7 @@ msgid "" "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:151 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 msgid "BIOS:" msgstr "" @@ -1485,7 +1507,7 @@ msgstr "" msgid "Back Chain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:270 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:271 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:181 msgid "Backend" msgstr "" @@ -1538,7 +1560,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:935 +#: Source/Core/DolphinQt/GameList/GameList.cpp:974 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1573,7 +1595,7 @@ msgstr "基本設定" msgid "Bass" msgstr "Bass" -#: Source/Core/DolphinQt/Main.cpp:228 +#: Source/Core/DolphinQt/Main.cpp:231 msgid "Batch mode cannot be used without specifying a game to launch." msgstr "" @@ -1605,7 +1627,7 @@ msgstr "" msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:945 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1647,11 +1669,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1648 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1659,7 +1681,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "無框全螢幕" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 msgid "Bottom" msgstr "下方" @@ -1686,7 +1708,7 @@ msgstr "" msgid "Breakpoint encountered! Step out aborted." msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:37 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:38 msgid "Breakpoints" msgstr "" @@ -1720,12 +1742,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:886 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Buffer:" msgstr "緩衝:" @@ -1840,7 +1862,7 @@ msgstr "" msgid "Camera field of view (affects sensitivity of pointing)." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:496 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:500 msgid "Can only generate AR code for values in virtual memory." msgstr "" @@ -1848,14 +1870,14 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1418 -#: Source/Core/DolphinQt/MainWindow.cpp:1485 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/MenuBar.cpp:1306 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 #: qtbase/src/gui/kernel/qplatformtheme.cpp:732 @@ -1882,7 +1904,7 @@ msgstr "" msgid "Cannot find the GC IPL." msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:499 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:503 msgid "Cannot generate AR code for this address." msgstr "" @@ -1908,7 +1930,7 @@ msgstr "" msgid "Center and Calibrate" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:377 +#: Source/Core/DolphinQt/GameList/GameList.cpp:416 msgid "Change &Disc" msgstr "更換光碟(&D)" @@ -1924,7 +1946,7 @@ msgstr "更換光碟" msgid "Change Discs Automatically" msgstr "" -#: Source/Core/Core/Movie.cpp:1259 +#: Source/Core/Core/Movie.cpp:1268 msgid "Change the disc to {0}" msgstr "" @@ -1976,7 +1998,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:797 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -1990,16 +2012,19 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:306 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:373 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 msgid "Choose a file to open" msgstr "選擇一個要開啟的檔案" -#: Source/Core/DolphinQt/MenuBar.cpp:1652 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +msgid "Choose a file to open or create" +msgstr "" + +#: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1657 +#: Source/Core/DolphinQt/MenuBar.cpp:1654 msgid "Choose secondary input file" msgstr "" @@ -2024,7 +2049,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 msgid "Clear" msgstr "清除" @@ -2077,7 +2102,7 @@ msgstr "" msgid "Code:" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1820 +#: Source/Core/Core/NetPlayClient.cpp:1777 msgid "Codes received!" msgstr "" @@ -2102,7 +2127,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:946 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2154,23 +2179,23 @@ msgstr "設定輸出" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:588 -#: Source/Core/DolphinQt/GameList/GameList.cpp:771 -#: Source/Core/DolphinQt/MainWindow.cpp:893 -#: Source/Core/DolphinQt/MainWindow.cpp:1614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:627 +#: Source/Core/DolphinQt/GameList/GameList.cpp:810 +#: Source/Core/DolphinQt/MainWindow.cpp:899 +#: Source/Core/DolphinQt/MainWindow.cpp:1620 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "確認" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:172 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:173 msgid "Confirm backend change" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 msgid "Confirm on Stop" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1231 +#: Source/Core/DolphinQt/MenuBar.cpp:1228 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" @@ -2225,7 +2250,7 @@ msgstr "連接至網路並執行線上的系統更新?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:673 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 msgid "Connecting" msgstr "" @@ -2333,11 +2358,11 @@ msgstr "" msgid "Convert" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:375 +#: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:339 +#: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2363,9 +2388,9 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:665 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:721 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 msgid "Copy" msgstr "複製" @@ -2377,19 +2402,19 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:597 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 msgid "Copy Address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:639 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:599 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:605 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" msgstr "" @@ -2397,19 +2422,15 @@ msgstr "" msgid "Copy code &line" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:128 -msgid "Copy failed" -msgstr "複製失敗" - #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to B" msgstr "" @@ -2449,14 +2470,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:125 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:131 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2500,7 +2521,7 @@ msgstr "" msgid "Could not recognize file {0}" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:186 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:137 msgid "" "Could not write memory card file {0}.\n" "\n" @@ -2512,15 +2533,15 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 msgid "Couldn't look up central server" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:826 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:827 msgid "Couldn't open file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:829 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:830 msgid "Couldn't read file." msgstr "" @@ -2574,7 +2595,7 @@ msgstr "Crossfade" msgid "Current Region" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Current Value" msgstr "" @@ -2677,23 +2698,23 @@ msgstr "" msgid "Data Type" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:847 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:864 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1778 +#: Source/Core/Core/NetPlayClient.cpp:1735 msgid "Data received!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:401 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:402 msgid "Datel MaxDrive/Pro files" msgstr "" @@ -2795,21 +2816,21 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:116 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:108 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:89 msgid "Delete" msgstr "刪除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:439 +#: Source/Core/DolphinQt/GameList/GameList.cpp:478 msgid "Delete File..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:350 +#: Source/Core/DolphinQt/GameList/GameList.cpp:389 msgid "Delete Selected Files..." msgstr "" #: Source/Core/AudioCommon/WaveFile.cpp:35 -#: Source/Core/VideoCommon/FrameDump.cpp:125 +#: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2825,10 +2846,10 @@ msgstr "" msgid "Depth:" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:937 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2848,7 +2869,7 @@ msgstr "" msgid "Detect" msgstr "檢測" -#: Source/Core/DolphinQt/MenuBar.cpp:1307 +#: Source/Core/DolphinQt/MenuBar.cpp:1304 msgid "Detecting RSO Modules" msgstr "" @@ -2869,7 +2890,7 @@ msgstr "裝置" msgid "Device PID (e.g., 0305)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:90 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:91 msgid "Device Settings" msgstr "裝置設定" @@ -2916,8 +2937,8 @@ msgstr "" msgid "Dis&connected" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Disable" msgstr "" @@ -3010,25 +3031,25 @@ msgstr "" msgid "Distance of travel from neutral position." msgstr "" -#: Source/Core/DolphinQt/Main.cpp:256 +#: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1615 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1232 +#: Source/Core/DolphinQt/MenuBar.cpp:1229 msgid "Do you want to clear the list of symbol names?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:657 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:658 #, c-format msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:897 +#: Source/Core/DolphinQt/MainWindow.cpp:903 msgid "Do you want to stop the current emulation?" msgstr "您要停止目前的模擬嗎?" @@ -3045,9 +3066,9 @@ msgstr "" msgid "Dolphin Game Mod Preset" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1502 -#: Source/Core/DolphinQt/MenuBar.cpp:1518 -#: Source/Core/DolphinQt/MenuBar.cpp:1536 +#: Source/Core/DolphinQt/MenuBar.cpp:1499 +#: Source/Core/DolphinQt/MenuBar.cpp:1515 +#: Source/Core/DolphinQt/MenuBar.cpp:1533 msgid "Dolphin Map File (*.map)" msgstr "" @@ -3059,8 +3080,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS 影片 (*.dtm)" @@ -3075,7 +3096,7 @@ msgid "" "Do you want to continue anyway?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:246 +#: Source/Core/DolphinQt/GameList/GameList.cpp:276 msgid "" "Dolphin could not find any GameCube/Wii ISOs or WADs.\n" "Double-click here to set a games directory..." @@ -3093,7 +3114,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:957 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3158,7 +3179,7 @@ msgstr "" msgid "Download Codes from the WiiRD Database" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:146 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 msgid "Download Game Covers from GameTDB.com for Use in Grid Mode" msgstr "" @@ -3338,7 +3359,7 @@ msgid "Duration of Turbo Button Release (frames):" msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 msgid "Dutch" msgstr "Dutch" @@ -3411,7 +3432,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:229 +#: Source/Core/Core/Core.cpp:223 msgid "Emu Thread already running" msgstr "模擬器線程已經執行中" @@ -3443,8 +3464,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:358 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:375 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" @@ -3494,7 +3515,7 @@ msgid "Enable Progressive Scan" msgstr "開啟逐行掃瞄" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:183 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "Enable Rumble" msgstr "" @@ -3604,7 +3625,7 @@ msgstr "" msgid "Encoding" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:615 msgid "" "Encountered the following errors while opening save files:\n" "%1\n" @@ -3617,7 +3638,7 @@ msgid "Enet Didn't Initialize" msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 msgid "English" msgstr "English" @@ -3650,7 +3671,7 @@ msgstr "" msgid "Enter password" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1281 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3662,7 +3683,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3681,46 +3702,47 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:345 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:375 -#: Source/Core/DolphinQt/Main.cpp:204 Source/Core/DolphinQt/Main.cpp:220 -#: Source/Core/DolphinQt/Main.cpp:227 Source/Core/DolphinQt/MainWindow.cpp:273 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:376 +#: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 +#: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1071 -#: Source/Core/DolphinQt/MainWindow.cpp:1417 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1484 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 -#: Source/Core/DolphinQt/MenuBar.cpp:1195 -#: Source/Core/DolphinQt/MenuBar.cpp:1265 -#: Source/Core/DolphinQt/MenuBar.cpp:1288 -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1331 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 -#: Source/Core/DolphinQt/MenuBar.cpp:1555 -#: Source/Core/DolphinQt/MenuBar.cpp:1564 -#: Source/Core/DolphinQt/MenuBar.cpp:1576 -#: Source/Core/DolphinQt/MenuBar.cpp:1598 -#: Source/Core/DolphinQt/MenuBar.cpp:1624 -#: Source/Core/DolphinQt/MenuBar.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1423 +#: Source/Core/DolphinQt/MainWindow.cpp:1430 +#: Source/Core/DolphinQt/MainWindow.cpp:1490 +#: Source/Core/DolphinQt/MainWindow.cpp:1497 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 +#: Source/Core/DolphinQt/MenuBar.cpp:1262 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 +#: Source/Core/DolphinQt/MenuBar.cpp:1552 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 +#: Source/Core/DolphinQt/MenuBar.cpp:1573 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 +#: Source/Core/DolphinQt/MenuBar.cpp:1621 +#: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:698 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:941 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1059 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1069 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:322 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:346 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "錯誤" @@ -3741,11 +3763,11 @@ msgstr "" msgid "Error occurred while loading some texture packs" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1807 +#: Source/Core/Core/NetPlayClient.cpp:1764 msgid "Error processing codes." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1779 +#: Source/Core/Core/NetPlayClient.cpp:1736 msgid "Error processing data." msgstr "" @@ -3765,7 +3787,7 @@ msgstr "" msgid "Error writing file: {0}" msgstr "" -#: Source/Core/Common/ChunkFile.h:295 +#: Source/Core/Common/ChunkFile.h:300 msgid "" "Error: After \"{0}\", found {1} ({2:#x}) instead of save marker {3} ({4:" "#x}). Aborting savestate load..." @@ -3913,10 +3935,10 @@ msgstr "" msgid "Export All Wii Saves" msgstr "匯出全部 Wii 存檔" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:421 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:491 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:498 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:492 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" msgstr "" @@ -3928,19 +3950,19 @@ msgstr "匯出錄像" msgid "Export Recording..." msgstr "匯出錄像..." -#: Source/Core/DolphinQt/GCMemcardManager.cpp:436 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:437 msgid "Export Save File" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:453 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:454 msgid "Export Save Files" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:428 +#: Source/Core/DolphinQt/GameList/GameList.cpp:467 msgid "Export Wii Save" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:346 +#: Source/Core/DolphinQt/GameList/GameList.cpp:385 msgid "Export Wii Saves" msgstr "" @@ -3952,7 +3974,7 @@ msgstr "" msgid "Export as .&sav..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1119 +#: Source/Core/DolphinQt/MenuBar.cpp:1116 #, c-format msgctxt "" msgid "Exported %n save(s)" @@ -4026,7 +4048,7 @@ msgstr "" msgid "Failed loading XML." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:346 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:347 msgid "" "Failed opening memory card:\n" "%1" @@ -4036,19 +4058,19 @@ msgstr "" msgid "Failed to add this session to the NetPlay index: %1" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1625 +#: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:593 -msgid "Failed to claim interface for BT passthrough" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:942 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 msgid "Failed to connect to server: %1" msgstr "" @@ -4078,11 +4100,11 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:796 +#: Source/Core/DolphinQt/GameList/GameList.cpp:835 msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:586 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4098,16 +4120,16 @@ msgstr "" msgid "Failed to dump %1: Failed to write to file" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:487 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:488 msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:532 +#: Source/Core/DolphinQt/GameList/GameList.cpp:571 msgid "Failed to export the following save files:" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1195 +#: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" msgstr "" @@ -4130,29 +4152,29 @@ msgstr "" msgid "Failed to find one or more D3D symbols" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:565 msgid "Failed to import \"%1\"." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1095 +#: Source/Core/DolphinQt/MenuBar.cpp:1092 msgid "" "Failed to import save file. Please launch the game once, then try again." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1089 +#: Source/Core/DolphinQt/MenuBar.cpp:1086 msgid "" "Failed to import save file. The given file appears to be corrupted or is not " "a valid Wii save." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1102 +#: Source/Core/DolphinQt/MenuBar.cpp:1099 msgid "" "Failed to import save file. Your NAND may be corrupt, or something is " "preventing access to files within it. Try repairing your NAND (Tools -> " "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1071 +#: Source/Core/DolphinQt/MainWindow.cpp:1077 msgid "Failed to init core" msgstr "" @@ -4172,19 +4194,19 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1517 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1300 -#: Source/Core/DolphinQt/MenuBar.cpp:1352 +#: Source/Core/DolphinQt/MenuBar.cpp:1297 +#: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" msgstr "" @@ -4196,7 +4218,7 @@ msgstr "" msgid "Failed to load dxgi.dll" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1564 +#: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" msgstr "" @@ -4210,13 +4232,13 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:571 -#: Source/Core/DolphinQt/MainWindow.cpp:1593 +#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/MainWindow.cpp:1599 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:572 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4238,11 +4260,11 @@ msgid "" "Make sure there's an application assigned to open INI files." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:860 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:861 msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1516 +#: Source/Core/DolphinQt/MainWindow.cpp:1522 msgid "Failed to open server" msgstr "" @@ -4251,7 +4273,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2045 +#: Source/Core/DiscIO/WIABlob.cpp:2044 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4271,25 +4293,25 @@ msgstr "" msgid "Failed to read DFF file." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:862 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:863 msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2060 +#: Source/Core/DiscIO/WIABlob.cpp:2059 msgid "Failed to read from the input file \"{0}\"." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:422 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:640 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:423 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:641 msgid "Failed to read selected savefile(s) from memory card." msgstr "" -#: Source/Core/Core/Movie.cpp:1015 +#: Source/Core/Core/Movie.cpp:1024 msgid "Failed to read {0}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 msgid "Failed to remove file." msgstr "" @@ -4300,7 +4322,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:603 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4320,19 +4342,19 @@ msgstr "" msgid "Failed to save FIFO log." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1556 +#: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1598 +#: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1577 +#: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1675 +#: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" msgstr "" @@ -4356,9 +4378,9 @@ msgstr "" msgid "Failed to write config file!" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:573 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:676 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:691 msgid "Failed to write modified memory card to disk." msgstr "" @@ -4366,21 +4388,21 @@ msgstr "" msgid "Failed to write redirected save." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:446 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:447 msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2064 +#: Source/Core/DiscIO/WIABlob.cpp:2063 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/GameList/GameList.cpp:795 -#: Source/Core/DolphinQt/MenuBar.cpp:1060 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4405,7 +4427,7 @@ msgstr "快速" msgid "Fast Depth Calculation" msgstr "" -#: Source/Core/Core/Movie.cpp:1292 +#: Source/Core/Core/Movie.cpp:1301 msgid "" "Fatal desync. Aborting playback. (Error in PlayWiimote: {0} != {1}, byte " "{2}.){3}" @@ -4420,7 +4442,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:944 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4434,19 +4456,19 @@ msgstr "" msgid "File Info" msgstr "檔案資訊" -#: Source/Core/DolphinQt/GameList/GameList.cpp:939 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "檔案名稱" -#: Source/Core/DolphinQt/GameList/GameList.cpp:940 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:943 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "檔案大小" @@ -4473,11 +4495,11 @@ msgid "" "{1}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:832 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:833 msgid "Filesize does not match any known GameCube Memory Card size." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:835 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:836 msgid "Filesize in header mismatches actual card size." msgstr "" @@ -4527,7 +4549,7 @@ msgstr "" msgid "Fix Checksums" msgstr "修正校驗" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:689 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" msgstr "" @@ -4537,7 +4559,7 @@ msgstr "" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:85 msgid "Flags" msgstr "" @@ -4675,11 +4697,11 @@ msgstr "" msgid "France" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:310 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 msgid "Free Blocks: %1" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:311 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:312 msgid "Free Files: %1" msgstr "" @@ -4717,7 +4739,7 @@ msgid "Freelook Toggle" msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 msgid "French" msgstr "French" @@ -4746,7 +4768,7 @@ msgstr "" msgid "FullScr" msgstr "全螢幕" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 msgid "Function" msgstr "" @@ -4778,7 +4800,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:140 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 msgid "GBA Settings" msgstr "" @@ -4790,11 +4812,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:793 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:798 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" msgstr "" @@ -4897,11 +4919,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:374 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:540 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4923,7 +4945,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:941 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "遊戲 ID" @@ -4937,11 +4959,25 @@ msgstr "遊戲 ID :" msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:785 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1712 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +msgid "" +"Game file has a different hash; right-click it, select Properties, switch to " +"the Verify tab, and select Verify Integrity to check the hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Game has a different disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Game has a different revision" +msgstr "" + +#: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" msgstr "遊戲正在執行!" @@ -4950,6 +4986,10 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Game region does not match" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" msgstr "遊戲規格設定" @@ -4990,12 +5030,12 @@ msgstr "" msgid "GameCube Memory Card Manager" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:361 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:362 msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5028,7 +5068,7 @@ msgstr "一般" msgid "General and Options" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:453 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" msgstr "" @@ -5036,16 +5076,16 @@ msgstr "" msgid "Generate a New Statistics Identity" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:489 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1259 +#: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:82 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "German" msgstr "German" @@ -5054,12 +5094,12 @@ msgstr "German" msgid "Germany" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 -msgid "GiB" +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:364 -msgid "Go to" +#: Source/Core/UICommon/UICommon.cpp:420 +msgid "GiB" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:171 @@ -5229,15 +5269,15 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:895 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:477 +#: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" msgstr "" @@ -5255,7 +5295,7 @@ msgstr "" msgid "Hotkeys" msgstr "快捷鍵" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 msgid "Hotkeys Require Window Focus" msgstr "" @@ -5300,7 +5340,7 @@ msgstr "" msgid "IP Address:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:65 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:66 msgid "IPL Settings" msgstr "IPL 設定" @@ -5309,7 +5349,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 msgid "IR Sensitivity:" msgstr "IR 靈敏度:" @@ -5346,7 +5386,7 @@ msgstr "" msgid "Identity Generation" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:258 +#: Source/Core/DolphinQt/Main.cpp:261 msgid "" "If authorized, Dolphin can collect data on its performance, feature usage, " "and configuration, as well as data on your system's hardware and operating " @@ -5389,7 +5429,7 @@ msgstr "" msgid "Ignore Format Changes" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:66 +#: Source/Core/DolphinQt/Main.cpp:71 msgid "Ignore for this session" msgstr "" @@ -5426,14 +5466,14 @@ msgstr "" msgid "Import BootMii NAND Backup..." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:549 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:563 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:571 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:613 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:550 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:564 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:572 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:585 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" msgstr "" @@ -5441,11 +5481,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1657 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1667 +#: Source/Core/DolphinQt/MainWindow.cpp:1673 #, c-format msgid "" "Importing NAND backup\n" @@ -5517,21 +5557,21 @@ msgid "Info" msgstr "訊息" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 -#: Source/Core/DolphinQt/MenuBar.cpp:1258 -#: Source/Core/DolphinQt/MenuBar.cpp:1482 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/MenuBar.cpp:1255 +#: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" msgstr "訊息" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:149 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:150 msgid "Inhibit Screensaver During Emulation" msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:254 -#: Source/Core/DolphinQt/MenuBar.cpp:1281 -#: Source/Core/DolphinQt/MenuBar.cpp:1337 -#: Source/Core/DolphinQt/MenuBar.cpp:1583 -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1278 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "Input" msgstr "輸入" @@ -5576,7 +5616,7 @@ msgstr "" msgid "Install WAD..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:400 +#: Source/Core/DolphinQt/GameList/GameList.cpp:439 msgid "Install to the NAND" msgstr "" @@ -5592,7 +5632,7 @@ msgstr "" msgid "Instruction Breakpoint" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Instruction:" msgstr "" @@ -5639,7 +5679,7 @@ msgstr "" msgid "Internal Resolution:" msgstr "内部解析度:" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:502 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:506 msgid "Internal error while generating AR code." msgstr "" @@ -5651,7 +5691,7 @@ msgstr "" msgid "Interpreter Core" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:687 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:688 msgid "Invalid Expression." msgstr "" @@ -5668,7 +5708,7 @@ msgstr "" msgid "Invalid Player ID" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1288 +#: Source/Core/DolphinQt/MenuBar.cpp:1285 msgid "Invalid RSO module address: %1" msgstr "" @@ -5676,7 +5716,7 @@ msgstr "" msgid "Invalid callstack" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:838 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:839 msgid "Invalid checksums." msgstr "" @@ -5684,7 +5724,7 @@ msgstr "" msgid "Invalid game." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1938 +#: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" msgstr "" @@ -5693,7 +5733,7 @@ msgid "Invalid input for the field \"%1\"" msgstr "" #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:377 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 msgid "Invalid input provided" msgstr "" @@ -5725,7 +5765,7 @@ msgstr "" msgid "Invalid search string (only even string lengths supported)" msgstr "" -#: Source/Core/DolphinQt/Main.cpp:204 +#: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." msgstr "" @@ -5734,7 +5774,7 @@ msgid "Invalid watch address: %1" msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "Italian" msgstr "Italian" @@ -5838,7 +5878,7 @@ msgstr "Japanese" msgid "Japanese (Shift-JIS)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:166 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:167 msgid "Keep Window on Top" msgstr "" @@ -5906,7 +5946,7 @@ msgstr "" msgid "Label" msgstr "" -#: Source/Core/DolphinQt/CheatSearchWidget.cpp:515 +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 msgid "Last Value" msgstr "" @@ -6004,7 +6044,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:114 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:110 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:91 msgid "Load" msgstr "讀取" @@ -6139,7 +6179,7 @@ msgstr "" msgid "Load Wii Save" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1022 +#: Source/Core/DolphinQt/MenuBar.cpp:1019 msgid "Load Wii System Menu %1" msgstr "" @@ -6151,8 +6191,8 @@ msgstr "" msgid "Load from Slot %1 - %2" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1501 -#: Source/Core/DolphinQt/MenuBar.cpp:1517 +#: Source/Core/DolphinQt/MenuBar.cpp:1498 +#: Source/Core/DolphinQt/MenuBar.cpp:1514 msgid "Load map file" msgstr "" @@ -6160,7 +6200,7 @@ msgstr "" msgid "Load..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1483 +#: Source/Core/DolphinQt/MenuBar.cpp:1480 msgid "Loaded symbols from '%1'" msgstr "" @@ -6175,7 +6215,7 @@ msgstr "" msgid "Local" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:190 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 msgid "Lock Mouse Cursor" msgstr "" @@ -6204,7 +6244,7 @@ msgstr "記錄類型" msgid "Logger Outputs" msgstr "記錄輸出" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:236 msgid "" "Logs the render time of every frame to User/Logs/render_time.txt.

Use " "this feature to measure Dolphin's performance.

If " @@ -6215,7 +6255,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6244,7 +6284,7 @@ msgstr "" msgid "MORIBUND" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:399 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" msgstr "" @@ -6252,7 +6292,7 @@ msgstr "" msgid "Main Stick" msgstr "主搖桿" -#: Source/Core/DolphinQt/GameList/GameList.cpp:938 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6291,11 +6331,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:917 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:885 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 msgid "Max buffer size changed to %1" msgstr "" @@ -6329,16 +6369,6 @@ msgstr "記憶卡" msgid "Memory Card Manager" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:120 -msgid "" -"Memory Card filename in Slot {0} is incorrect\n" -"Region not specified\n" -"\n" -"Slot {1} path was changed to\n" -"{2}\n" -"Would you like to copy the old file to this new location?\n" -msgstr "" - #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:101 msgid "Memory Override" msgstr "" @@ -6347,19 +6377,19 @@ msgstr "" msgid "Memory breakpoint options" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:251 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:202 msgid "MemoryCard: ClearBlock called on invalid address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:222 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:173 msgid "MemoryCard: Read called with invalid source address ({0:#x})" msgstr "" -#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:234 +#: Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp:185 msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1638 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6385,15 +6415,15 @@ msgstr "雜項" msgid "Misc Settings" msgstr "其它設定" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:841 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:842 msgid "Mismatch between free block count in header and actually unused blocks." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:844 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:845 msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1061 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6416,8 +6446,8 @@ msgid "" "unchecked." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1306 -#: Source/Core/DolphinQt/MenuBar.cpp:1450 +#: Source/Core/DolphinQt/MenuBar.cpp:1303 +#: Source/Core/DolphinQt/MenuBar.cpp:1447 msgid "Modules found: %1" msgstr "" @@ -6446,20 +6476,20 @@ msgstr "" msgid "Motor" msgstr "馬達" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:173 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:179 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:182 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." msgstr "" @@ -6473,14 +6503,20 @@ msgstr "" msgid "Movie" msgstr "" +#: Source/Core/Core/Movie.cpp:993 +msgid "" +"Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " +"The movie will likely not sync!" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 -#: Source/Core/DolphinQt/MenuBar.cpp:1172 -#: Source/Core/DolphinQt/MenuBar.cpp:1177 -#: Source/Core/DolphinQt/MenuBar.cpp:1181 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 +#: Source/Core/DolphinQt/MenuBar.cpp:1169 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 +#: Source/Core/DolphinQt/MenuBar.cpp:1178 msgid "NAND Check" msgstr "" @@ -6511,11 +6547,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Name of the tag to remove:" msgstr "" @@ -6536,8 +6572,8 @@ msgstr "名稱:" msgid "Native (640x528)" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:397 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:404 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:398 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:405 msgid "Native GCI File" msgstr "" @@ -6557,11 +6593,11 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2774 +#: Source/Core/Core/NetPlayClient.cpp:2731 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2156 +#: Source/Core/Core/NetPlayClient.cpp:2113 msgid "Netplay has desynced. There is no way to recover from this." msgstr "" @@ -6574,7 +6610,7 @@ msgstr "" msgid "Network dump format:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" msgstr "" @@ -6582,7 +6618,7 @@ msgstr "" msgid "Never Auto-Update" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:107 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:88 msgid "New" msgstr "" @@ -6595,7 +6631,7 @@ msgstr "" msgid "New Search" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:472 +#: Source/Core/DolphinQt/GameList/GameList.cpp:511 msgid "New Tag..." msgstr "" @@ -6607,7 +6643,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1057 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 msgid "New tag" msgstr "" @@ -6664,13 +6700,13 @@ msgstr "" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:537 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:554 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:569 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:722 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:725 -#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:728 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:721 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:724 +#: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:727 msgid "No description available" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:850 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:851 msgid "No errors." msgstr "" @@ -6690,10 +6726,14 @@ msgstr "" msgid "No game running." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1128 +#: Source/Core/DolphinQt/MenuBar.cpp:1125 msgid "No issues have been detected." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "No matching game was found" +msgstr "" + #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" msgstr "" @@ -6721,7 +6761,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:717 +#: Source/Core/DolphinQt/GameList/GameList.cpp:756 msgid "No save data found." msgstr "" @@ -6741,10 +6781,6 @@ msgstr "無" msgid "North America" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 -msgid "Not Found" -msgstr "" - #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:95 msgid "Not Set" msgstr "未設定" @@ -6753,7 +6789,7 @@ msgstr "未設定" msgid "Not all players have the game. Do you really want to start?" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:527 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:528 #, c-format msgctxt "" msgid "" @@ -6761,7 +6797,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:520 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:521 #, c-format msgctxt "" msgid "" @@ -6769,6 +6805,10 @@ msgid "" "required." msgstr "" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +msgid "Not found" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" "Note: motion input may require configuring alternate input sources before " @@ -6821,7 +6861,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:615 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -6852,7 +6892,7 @@ msgstr "" msgid "On" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:177 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" msgstr "" @@ -6860,13 +6900,13 @@ msgstr "" msgid "Online &Documentation" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1608 +#: Source/Core/DolphinQt/MenuBar.cpp:1605 msgid "" "Only append symbols with prefix:\n" "(Blank for all symbols)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1583 +#: Source/Core/DolphinQt/MenuBar.cpp:1580 msgid "" "Only export symbols with prefix:\n" "(Blank for all symbols)" @@ -6877,7 +6917,7 @@ msgstr "" msgid "Open" msgstr "開啟" -#: Source/Core/DolphinQt/GameList/GameList.cpp:438 +#: Source/Core/DolphinQt/GameList/GameList.cpp:477 msgid "Open &Containing Folder" msgstr "" @@ -6889,7 +6929,7 @@ msgstr "" msgid "Open FIFO log" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:434 +#: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" msgstr "" @@ -6897,7 +6937,7 @@ msgstr "" msgid "Open Riivolution XML..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:427 +#: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" msgstr "" @@ -7085,7 +7125,7 @@ msgstr "暫停" msgid "Pause at End of Movie" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:172 msgid "Pause on Focus Loss" msgstr "" @@ -7112,7 +7152,7 @@ msgstr "" msgid "Perform Online System Update" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:388 +#: Source/Core/DolphinQt/GameList/GameList.cpp:427 msgid "Perform System Update" msgstr "" @@ -7130,7 +7170,7 @@ msgstr "" msgid "PiB" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1223 +#: Source/Core/DolphinQt/MenuBar.cpp:1220 msgid "Pick a debug font" msgstr "" @@ -7146,7 +7186,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:934 +#: Source/Core/DolphinQt/GameList/GameList.cpp:973 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7192,7 +7232,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:160 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 msgid "Port %1 ROM:" msgstr "" @@ -7201,7 +7241,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:928 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7221,15 +7261,15 @@ msgstr "" msgid "Prefetch Custom Textures" msgstr "" -#: Source/Core/Core/Movie.cpp:1194 +#: Source/Core/Core/Movie.cpp:1203 msgid "Premature movie end in PlayController. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1306 +#: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" msgstr "" -#: Source/Core/Core/Movie.cpp:1280 +#: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" @@ -7252,7 +7292,7 @@ msgstr "" msgid "Pressure" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:258 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:259 msgid "" "Prevents shader compilation stuttering by not rendering waiting objects. Can " "work in scenarios where Ubershaders doesn't, at the cost of introducing " @@ -7333,7 +7373,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:459 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7359,8 +7399,8 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:659 -#: Source/Core/DolphinQt/MainWindow.cpp:1637 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:660 +#: Source/Core/DolphinQt/MainWindow.cpp:1643 msgid "Question" msgstr "問題" @@ -7388,7 +7428,7 @@ msgstr "" msgid "RSO Modules" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1276 +#: Source/Core/DolphinQt/MenuBar.cpp:1273 msgid "RSO auto-detection" msgstr "" @@ -7533,12 +7573,12 @@ msgstr "" msgid "Refreshed current values." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:245 +#: Source/Core/DolphinQt/GameList/GameList.cpp:275 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:198 msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:942 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7568,12 +7608,12 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 #: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:169 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 msgid "Remove" msgstr "移除" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:667 -#: Source/Core/DolphinQt/GCMemcardManager.cpp:674 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:668 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" msgstr "" @@ -7581,11 +7621,11 @@ msgstr "" msgid "Remove Junk Data (Irreversible):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:473 +#: Source/Core/DolphinQt/GameList/GameList.cpp:512 msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1069 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 msgid "Remove tag" msgstr "" @@ -7601,7 +7641,7 @@ msgstr "" msgid "Rename symbol" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:161 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:162 msgid "Render Window" msgstr "" @@ -7680,7 +7720,7 @@ msgstr "" msgid "Resource Pack Path:" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:309 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:318 msgid "Restart Required" msgstr "" @@ -7692,7 +7732,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:699 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7792,7 +7832,7 @@ msgstr "震動" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:145 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7824,7 +7864,7 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:134 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 msgid "SP1:" msgstr "" @@ -7853,7 +7893,7 @@ msgstr "安全" #: Source/Core/DolphinQt/Config/Mapping/HotkeyStates.cpp:21 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:115 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:111 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:112 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:92 #: qtbase/src/gui/kernel/qplatformtheme.cpp:710 msgid "Save" @@ -7863,9 +7903,9 @@ msgstr "儲存" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:531 -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 -#: Source/Core/DolphinQt/MenuBar.cpp:1118 +#: Source/Core/DolphinQt/GameList/GameList.cpp:570 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7886,11 +7926,11 @@ msgstr "" msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1076 +#: Source/Core/DolphinQt/MenuBar.cpp:1073 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 #: Source/Core/DolphinQt/MenuBar.cpp:1085 -#: Source/Core/DolphinQt/MenuBar.cpp:1088 -#: Source/Core/DolphinQt/MenuBar.cpp:1094 -#: Source/Core/DolphinQt/MenuBar.cpp:1101 +#: Source/Core/DolphinQt/MenuBar.cpp:1091 +#: Source/Core/DolphinQt/MenuBar.cpp:1098 msgid "Save Import" msgstr "" @@ -7902,7 +7942,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1766 +#: Source/Core/DolphinQt/MainWindow.cpp:1772 msgid "Save Recording File As" msgstr "" @@ -7988,26 +8028,26 @@ msgstr "" msgid "Save as..." msgstr "另存為..." -#: Source/Core/DolphinQt/MenuBar.cpp:1662 +#: Source/Core/DolphinQt/MenuBar.cpp:1659 msgid "Save combined output file as" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1077 +#: Source/Core/DolphinQt/MenuBar.cpp:1074 msgid "" "Save data for this title already exists in the NAND. Consider backing up the " "current data before overwriting.\n" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:166 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1534 +#: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1586 +#: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" msgstr "" @@ -8027,11 +8067,11 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:172 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 msgid "Saves:" msgstr "" -#: Source/Core/Core/Movie.cpp:1024 +#: Source/Core/Core/Movie.cpp:1033 msgid "Savestate movie {0} is corrupted, movie recording stopping..." msgstr "" @@ -8084,7 +8124,7 @@ msgstr "" msgid "Search games..." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1701 +#: Source/Core/DolphinQt/MenuBar.cpp:1698 msgid "Search instruction" msgstr "" @@ -8116,20 +8156,20 @@ msgstr "選擇" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:511 -#: Source/Core/DolphinQt/MenuBar.cpp:1112 +#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:400 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:534 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:429 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 msgid "Select GBA Saves Path" msgstr "" @@ -8209,7 +8249,7 @@ msgstr "" msgid "Select Wii NAND Root" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:258 +#: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" msgstr "" @@ -8217,9 +8257,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:737 -#: Source/Core/DolphinQt/MainWindow.cpp:1309 -#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:743 +#: Source/Core/DolphinQt/MainWindow.cpp:1315 +#: Source/Core/DolphinQt/MainWindow.cpp:1323 msgid "Select a File" msgstr "" @@ -8239,7 +8279,7 @@ msgstr "" msgid "Select a game" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1047 +#: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" msgstr "" @@ -8247,11 +8287,11 @@ msgstr "" msgid "Select e-Reader Cards" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1337 +#: Source/Core/DolphinQt/MenuBar.cpp:1334 msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1695 +#: Source/Core/DolphinQt/MainWindow.cpp:1701 msgid "Select the Recording File to Play" msgstr "" @@ -8259,12 +8299,12 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1679 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1647 -#: Source/Core/DolphinQt/MenuBar.cpp:1067 +#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "選擇存檔" @@ -8286,9 +8326,9 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1282 #: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1907 +#: Source/Core/Core/NetPlayServer.cpp:1902 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:849 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8300,13 +8340,13 @@ msgstr "" msgid "Selected thread context" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:327 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:328 msgid "" "Selects a hardware adapter to use.

%1 doesn't " "support this feature." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:324 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:325 msgid "" "Selects a hardware adapter to use.

If unsure, " "select the first one." @@ -8333,7 +8373,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:218 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:219 msgid "" "Selects which aspect ratio to use when rendering.

Auto: Uses the " "native aspect ratio
Force 16:9: Mimics an analog TV with a widescreen " @@ -8342,7 +8382,7 @@ msgid "" "

If unsure, select Auto." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:200 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:201 msgid "" "Selects which graphics API to use internally.

The software renderer " "is extremely slow and only useful for debugging, so any of the other " @@ -8356,7 +8396,7 @@ msgstr "" msgid "Send" msgstr "傳送" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:185 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 msgid "Sensor Bar Position:" msgstr "傳感器位置:" @@ -8376,7 +8416,7 @@ msgstr "" msgid "Server Port" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1935 +#: Source/Core/Core/NetPlayClient.cpp:1892 msgid "Server rejected traversal attempt" msgstr "" @@ -8397,15 +8437,15 @@ msgstr "" msgid "Set Value From File" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:372 +#: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:357 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 msgid "Set memory card file for Slot A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:358 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:359 msgid "Set memory card file for Slot B" msgstr "" @@ -8485,7 +8525,7 @@ msgstr "顯示日誌視窗(&L)" msgid "Show &Toolbar" msgstr "顯示工具列(&T)" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:171 msgid "Show Active Title in Window Title" msgstr "" @@ -8501,7 +8541,7 @@ msgstr "" msgid "Show Current Game on Discord" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:147 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:148 msgid "Show Debugging UI" msgstr "" @@ -8573,7 +8613,7 @@ msgstr "" msgid "Show Netherlands" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:170 msgid "Show On-Screen Display Messages" msgstr "" @@ -8643,10 +8683,23 @@ msgstr "" msgid "Show in &memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:615 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 +msgid "Show in Code" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 +msgid "Show in Memory" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" msgstr "" +#: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 +msgid "Show in memory" +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" msgstr "" @@ -8661,20 +8714,20 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:240 msgid "" "Shows chat messages, buffer changes, and desync alerts while playing NetPlay." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:228 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:229 msgid "" "Shows the number of frames rendered per second as a measure of emulation " "speed.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:232 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:233 msgid "" "Shows the player's maximum ping while playing on NetPlay." "

If unsure, leave this unchecked." @@ -8761,7 +8814,7 @@ msgstr "" msgid "Skip EFB Access from CPU" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:69 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:70 msgid "Skip Main Menu" msgstr "" @@ -8787,7 +8840,7 @@ msgstr "" msgid "Slot A" msgstr "插槽 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:128 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 msgid "Slot A:" msgstr "" @@ -8795,7 +8848,7 @@ msgstr "" msgid "Slot B" msgstr "插槽 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:131 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 msgid "Slot B:" msgstr "" @@ -8847,7 +8900,7 @@ msgid "Spain" msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "Spanish" msgstr "Spanish" @@ -8856,7 +8909,7 @@ msgstr "Spanish" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:199 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 msgid "Speaker Volume:" msgstr "揚聲器音量:" @@ -8938,11 +8991,11 @@ msgstr "" msgid "Start with Riivolution Patches" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:367 +#: Source/Core/DolphinQt/GameList/GameList.cpp:406 msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:830 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 msgid "Started game" msgstr "" @@ -9105,10 +9158,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:573 -#: Source/Core/DolphinQt/GameList/GameList.cpp:601 -#: Source/Core/DolphinQt/MenuBar.cpp:1055 -#: Source/Core/DolphinQt/MenuBar.cpp:1190 +#: Source/Core/DolphinQt/GameList/GameList.cpp:612 +#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/MenuBar.cpp:1052 +#: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" msgstr "" @@ -9126,16 +9179,16 @@ msgstr "" msgid "Successfully deleted '%1'." msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:495 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:536 +#: Source/Core/DolphinQt/GameList/GameList.cpp:575 msgid "Successfully exported save files" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1191 +#: Source/Core/DolphinQt/MenuBar.cpp:1188 msgid "Successfully extracted certificates from NAND" msgstr "" @@ -9147,16 +9200,16 @@ msgstr "" msgid "Successfully extracted system data." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1085 +#: Source/Core/DolphinQt/MenuBar.cpp:1082 msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:574 -#: Source/Core/DolphinQt/MenuBar.cpp:1056 +#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:602 +#: Source/Core/DolphinQt/GameList/GameList.cpp:641 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9164,7 +9217,7 @@ msgstr "" msgid "Support" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:587 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:588 msgid "Supported file formats" msgstr "" @@ -9197,11 +9250,11 @@ msgstr "" msgid "Swing" msgstr "揮舞" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to A" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:241 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:242 msgid "Switch to B" msgstr "" @@ -9278,7 +9331,7 @@ msgstr "" msgid "Synchronizing save data..." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:79 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "System Language:" msgstr "系統語系:" @@ -9293,8 +9346,8 @@ msgstr "" msgid "TAS Tools" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:452 -#: Source/Core/DolphinQt/GameList/GameList.cpp:947 +#: Source/Core/DolphinQt/GameList/GameList.cpp:491 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9363,13 +9416,13 @@ msgstr "" msgid "The Masterpiece partitions are missing." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1182 +#: Source/Core/DolphinQt/MenuBar.cpp:1179 msgid "" "The NAND could not be repaired. It is recommended to back up your current " "data and start over with a fresh NAND." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1177 +#: Source/Core/DolphinQt/MenuBar.cpp:1174 msgid "The NAND has been repaired." msgstr "" @@ -9415,11 +9468,11 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:514 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 msgid "The disc that was about to be inserted couldn't be found." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1132 +#: Source/Core/DolphinQt/MenuBar.cpp:1129 msgid "" "The emulated NAND is damaged. System titles such as the Wii Menu and the Wii " "Shop Channel may not work correctly.\n" @@ -9449,11 +9502,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:517 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:323 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 msgid "" "The file\n" "%1\n" @@ -9477,6 +9530,13 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +msgid "" +"The filename %1 does not conform to Dolphin's region code format for memory " +"cards. Please rename this file to either %2, %3, or %4, matching the region " +"of the save files that are on it." +msgstr "" + #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "" @@ -9573,7 +9633,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9607,7 +9667,7 @@ msgstr "" msgid "The specified file \"{0}\" does not exist" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:542 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." msgstr "" @@ -9662,7 +9722,7 @@ msgstr "" msgid "There is nothing to undo!" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:445 +#: Source/Core/DolphinQt/GameList/GameList.cpp:484 msgid "There was an issue adding a shortcut to the desktop" msgstr "" @@ -9698,11 +9758,11 @@ msgstr "" msgid "This USB device is already whitelisted." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:314 +#: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:309 +#: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." msgstr "" @@ -9713,7 +9773,7 @@ msgid "" msgstr "Action replay 模擬器不支援被 Action Replay 自身修改的代碼。" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:773 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 msgid "This cannot be undone!" msgstr "" @@ -9810,7 +9870,7 @@ msgstr "" msgid "This software should not be used to play games you do not legally own." msgstr "" -#: Source/Core/Core/ConfigManager.cpp:332 +#: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." msgstr "" @@ -9823,7 +9883,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9831,7 +9891,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:288 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9891,7 +9951,7 @@ msgstr "傾斜" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:936 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -9933,7 +9993,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:624 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 msgid "Toggle Breakpoint" msgstr "" @@ -9993,7 +10053,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:187 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 msgid "Top" msgstr "上方" @@ -10045,8 +10105,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Traditional Chinese" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:956 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 msgid "Traversal Error" msgstr "" @@ -10054,7 +10114,7 @@ msgstr "" msgid "Traversal Server" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1932 +#: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" @@ -10078,7 +10138,7 @@ msgid "Triggers" msgstr "扳機" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:162 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 msgid "Type" @@ -10112,14 +10172,14 @@ msgstr "" msgid "USB Whitelist Error" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:243 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:244 msgid "" "Ubershaders are never used. Stuttering will occur during shader compilation, " "but GPU demands are low.

Recommended for low-end hardware. " "

If unsure, select this mode." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:248 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:249 msgid "" "Ubershaders will always be used. Provides a near stutter-free experience at " "the cost of very high GPU performance requirements." @@ -10127,7 +10187,7 @@ msgid "" "with Hybrid Ubershaders and have a very powerful GPU.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:253 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:254 msgid "" "Ubershaders will be used to prevent stuttering during shader compilation, " "but specialized shaders will be used when they will not cause stuttering." @@ -10136,7 +10196,7 @@ msgid "" "behavior." msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1331 +#: Source/Core/DolphinQt/MenuBar.cpp:1328 msgid "Unable to auto-detect RSO module" msgstr "" @@ -10188,11 +10248,11 @@ msgstr "取消儲存進度" msgid "Uninstall" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:401 +#: Source/Core/DolphinQt/GameList/GameList.cpp:440 msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:589 +#: Source/Core/DolphinQt/GameList/GameList.cpp:628 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10209,11 +10269,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1230 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10257,11 +10317,11 @@ msgstr "" msgid "Unknown error occurred." msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:1941 +#: Source/Core/Core/NetPlayClient.cpp:1898 msgid "Unknown error {0:x}" msgstr "" -#: Source/Core/DolphinQt/GCMemcardManager.cpp:866 +#: Source/Core/DolphinQt/GCMemcardManager.cpp:867 msgid "Unknown error." msgstr "" @@ -10317,8 +10377,8 @@ msgstr "" msgid "Up" msgstr "上" -#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:227 -#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:324 +#: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:267 +#: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:325 #: Source/Core/DolphinQt/MenuBar.cpp:567 msgid "Update" msgstr "更新" @@ -10378,11 +10438,11 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:143 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:145 msgid "Use Custom User Style" msgstr "" @@ -10394,7 +10454,7 @@ msgstr "" msgid "Use PAL60 Mode (EuRGB60)" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:168 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:169 msgid "Use Panic Handlers" msgstr "顯示錯誤提示" @@ -10454,11 +10514,11 @@ msgstr "" msgid "User Config" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:100 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:101 msgid "User Interface" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:129 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:130 msgid "User Style:" msgstr "" @@ -10481,14 +10541,14 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:207 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:208 msgid "" "Uses the entire screen for rendering.

If disabled, a render window " "will be created instead.

If unsure, leave this " "unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:214 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:215 msgid "" "Uses the main Dolphin window for rendering rather than a separate render " "window.

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:223 +#: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:224 msgid "" "Waits for vertical blanks in order to prevent tearing.

Decreases " "performance if emulation speed is below 100%.

If " @@ -10719,7 +10779,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:47 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 -#: Source/Core/DolphinQt/MenuBar.cpp:1471 +#: Source/Core/DolphinQt/MenuBar.cpp:1468 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 msgid "Warning" msgstr "警告" @@ -10736,28 +10796,28 @@ msgid "" "the loaded file header ({1})" msgstr "" -#: Source/Core/Core/Movie.cpp:1073 +#: Source/Core/Core/Movie.cpp:1082 msgid "" "Warning: You loaded a save that's after the end of the current movie. (byte " "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -#: Source/Core/Core/Movie.cpp:1048 +#: Source/Core/Core/Movie.cpp:1057 msgid "" "Warning: You loaded a save whose movie ends before the current frame in the " "save (byte {0} < {1}) (frame {2} < {3}). You should load another save before " "continuing." msgstr "" -#: Source/Core/Core/Movie.cpp:1098 +#: Source/Core/Core/Movie.cpp:1107 msgid "" "Warning: You loaded a save whose movie mismatches on byte {0} ({1:#x}). You " "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -#: Source/Core/Core/Movie.cpp:1114 +#: Source/Core/Core/Movie.cpp:1123 msgid "" "Warning: You loaded a save whose movie mismatches on frame {0}. You should " "load another save before continuing, or load this state with read-only mode " @@ -10812,7 +10872,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10858,7 +10918,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:179 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 msgid "Wii Remote Settings" msgstr "" @@ -10886,7 +10946,7 @@ msgstr "" msgid "Wii data is not public yet" msgstr "" -#: Source/Core/DolphinQt/MenuBar.cpp:1068 +#: Source/Core/DolphinQt/MenuBar.cpp:1065 msgid "Wii save files (*.bin);;All Files (*)" msgstr "" @@ -10894,7 +10954,7 @@ msgstr "" msgid "WiiTools Signature MEGA File" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:191 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:192 msgid "" "Will lock the Mouse Cursor to the Render Widget as long as it has focus. You " "can set a hotkey to unlock it." @@ -10951,8 +11011,20 @@ msgstr "" msgid "Write to Window" msgstr "寫入至視窗" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 -msgid "Wrong Version" +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +msgid "Wrong disc number" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +msgid "Wrong hash" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +msgid "Wrong region" +msgstr "" + +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +msgid "Wrong revision" msgstr "" #. i18n: Refers to a 3D axis (used when mapping motion controls) @@ -11019,14 +11091,6 @@ msgid "" "Are you sure you want to continue anyway?" msgstr "" -#: Source/Core/VideoBackends/Vulkan/VKMain.cpp:355 -msgid "" -"You are attempting to use the Vulkan (Metal) backend on an unsupported " -"operating system. For all functionality to be enabled, you must use macOS " -"10.14 (Mojave) or newer. Please do not report any issues encountered unless " -"they also occur on 10.14+." -msgstr "" - #: Source/Core/DolphinQt/MenuBar.cpp:568 msgid "You are running the latest version available on this update track." msgstr "" @@ -11064,7 +11128,7 @@ msgstr "" msgid "You must provide a region for your session!" msgstr "" -#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:310 +#: Source/Core/DolphinQt/Settings/InterfacePane.cpp:319 msgid "You must restart Dolphin in order for the change to take effect." msgstr "You must restart Dolphin in order for the change to take effect." @@ -11134,12 +11198,12 @@ msgstr "" msgid "d3d12.dll could not be loaded." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:615 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:635 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:616 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:636 msgid "default" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:637 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:638 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:375 msgid "disconnected" msgstr "" @@ -11200,13 +11264,13 @@ msgstr "" msgid "none" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "off" msgstr "" -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:178 -#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:213 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:179 +#: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:214 msgid "on" msgstr "" @@ -11243,7 +11307,7 @@ msgstr "" msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:800 +#: Source/Core/UICommon/GameFile.cpp:826 msgid "{0} (NKit)" msgstr "" @@ -11266,7 +11330,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1703 +#: Source/Core/DiscIO/WIABlob.cpp:1702 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" From b39a11e23b60a3ed5960b09982f0db5df9a9be5b Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 21 Jun 2022 13:35:14 -0700 Subject: [PATCH 249/659] msbuild: add pch for dolphinqt since this now includes Qt headers it's better than only using the vanilla DolphinLib one alone (previous behavior before Qt6) --- Source/Core/DolphinQt/DolphinQt.vcxproj | 17 +++++++++++++---- Source/Core/DolphinQt/pch_qt.cpp | 1 + Source/Core/DolphinQt/pch_qt.h | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 Source/Core/DolphinQt/pch_qt.cpp create mode 100644 Source/Core/DolphinQt/pch_qt.h diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index 4991ec9e54..e6df0c3122 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -30,6 +30,12 @@ $(ProjectDir)Settings;%(AdditionalIncludeDirectories) $(ProjectDir)TAS;%(AdditionalIncludeDirectories) $(ProjectDir)VideoInterface;%(AdditionalIncludeDirectories) + + + $(SourceDir)PCH;%(AdditionalIncludeDirectories) + Use + pch_qt.h + pch_qt.h
DolphinQt.manifest;%(AdditionalManifestFiles) @@ -52,10 +58,10 @@ - + @@ -83,8 +89,8 @@ - + @@ -155,6 +161,9 @@ + + Create + @@ -390,8 +399,8 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5} {76563A7F-1011-4EAD-B667-7BB18D09568E} diff --git a/Source/Core/DolphinQt/pch_qt.cpp b/Source/Core/DolphinQt/pch_qt.cpp new file mode 100644 index 0000000000..7ca10757a2 --- /dev/null +++ b/Source/Core/DolphinQt/pch_qt.cpp @@ -0,0 +1 @@ +#include "pch_qt.h" diff --git a/Source/Core/DolphinQt/pch_qt.h b/Source/Core/DolphinQt/pch_qt.h new file mode 100644 index 0000000000..649a467e3e --- /dev/null +++ b/Source/Core/DolphinQt/pch_qt.h @@ -0,0 +1,14 @@ +#pragma once + +#include "pch.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include From 0dfd9d4b43b5b4670b9a45594df692332a66a4b4 Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Wed, 22 Jun 2022 08:57:32 +1000 Subject: [PATCH 250/659] Replace Cpp11 (A Deprecated alias for Latest) in .clang-format --- Source/.clang-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/.clang-format b/Source/.clang-format index 06a5f10067..2262cdaa26 100644 --- a/Source/.clang-format +++ b/Source/.clang-format @@ -78,7 +78,7 @@ SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInParentheses: false SpacesInSquareBrackets: false -Standard: Cpp11 +Standard: Latest TabWidth: 2 UseTab: Never --- From a2530e3b9300e5fc4492ff0e961c7a89d296d27d Mon Sep 17 00:00:00 2001 From: Spotlight Date: Tue, 21 Jun 2022 21:44:16 -0500 Subject: [PATCH 251/659] IOS: Use first available IPv4 nameserver --- Source/Core/Core/IOS/Network/IP/Top.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/IOS/Network/IP/Top.cpp b/Source/Core/Core/IOS/Network/IP/Top.cpp index 3f94fe737c..05a3600cbd 100644 --- a/Source/Core/Core/IOS/Network/IP/Top.cpp +++ b/Source/Core/Core/IOS/Network/IP/Top.cpp @@ -868,9 +868,22 @@ IPCReply NetIPTopDevice::HandleGetInterfaceOptRequest(const IOCtlVRequest& reque if (!Core::WantsDeterminism()) { if (res_init() == 0) - address = ntohl(_res.nsaddr_list[0].sin_addr.s_addr); + { + for (int i = 0; i < _res.nscount; i++) + { + // Find the first available IPv4 nameserver. + sockaddr_in current = _res.nsaddr_list[i]; + if (current.sin_family == AF_INET) + { + address = ntohl(_res.nsaddr_list[i].sin_addr.s_addr); + break; + } + } + } else + { WARN_LOG_FMT(IOS_NET, "Call to res_init failed"); + } } #endif if (address == 0) From 430c58cf27a4e27a28ccd36b2d4399168718cd30 Mon Sep 17 00:00:00 2001 From: Spotlight Date: Tue, 21 Jun 2022 21:46:26 -0500 Subject: [PATCH 252/659] IOS: Use host nameserver on more BSDs --- Source/Core/Core/CMakeLists.txt | 1 + Source/Core/Core/IOS/Network/IP/Top.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 6dc3041eed..f958f7dd70 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -605,6 +605,7 @@ if (APPLE) ${CORESERV_LIBRARY} ${IOB_LIBRARY} ${IOK_LIBRARY} + resolv ) elseif (ANDROID) target_link_libraries(core diff --git a/Source/Core/Core/IOS/Network/IP/Top.cpp b/Source/Core/Core/IOS/Network/IP/Top.cpp index 05a3600cbd..74b4a02428 100644 --- a/Source/Core/Core/IOS/Network/IP/Top.cpp +++ b/Source/Core/Core/IOS/Network/IP/Top.cpp @@ -864,7 +864,8 @@ IPCReply NetIPTopDevice::HandleGetInterfaceOptRequest(const IOCtlVRequest& reque FREE(AdapterAddresses); } } -#elif defined(__linux__) && !defined(__ANDROID__) +#elif (defined(__linux__) && !defined(ANDROID)) || defined(__APPLE__) || defined(__FreeBSD__) || \ + defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) if (!Core::WantsDeterminism()) { if (res_init() == 0) From b063f15dccf030e9b4fdeac189f779181d25db9c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 20:22:20 -0700 Subject: [PATCH 253/659] DSPHLE: Replace CMailHandler::IsEmpty with CMailHandler::HasPending --- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 4 ++-- Source/Core/Core/HW/DSPHLE/MailHandler.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp | 4 ++-- Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index ce6b8f8a1a..46019abc6f 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -75,9 +75,9 @@ void CMailHandler::Clear() m_Mails.pop(); } -bool CMailHandler::IsEmpty() const +bool CMailHandler::HasPending() const { - return m_Mails.empty(); + return !m_Mails.empty(); } void CMailHandler::Halt(bool _Halt) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h index e5afbc9869..773cf042bb 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.h +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h @@ -23,7 +23,7 @@ public: void Clear(); void Halt(bool _Halt); void DoState(PointerWrap& p); - bool IsEmpty() const; + bool HasPending() const; u16 ReadDSPMailboxHigh(); u16 ReadDSPMailboxLow(); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp index bf8da5db10..23ee74bec8 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp @@ -28,8 +28,8 @@ void CARDUCode::Initialize() void CARDUCode::Update() { - // check if we have to sent something - if (!m_mail_handler.IsEmpty()) + // check if we have something to send + if (m_mail_handler.HasPending()) { DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); } diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index 6704a489ec..49816fe6fd 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -85,8 +85,8 @@ void GBAUCode::Initialize() void GBAUCode::Update() { - // check if we have to send something - if (!m_mail_handler.IsEmpty()) + // check if we have something to send + if (m_mail_handler.HasPending()) { DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); } From 567f9bede4db4298c709c5234bfa103c2a3fd279 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 19:59:27 -0700 Subject: [PATCH 254/659] DSPHLE: Remove unneeded calls to m_mail_handler.Clear() It's cleared whenever the uCode changes, so there's no reason to clear it in a destructor or during initialization. I've also renamed it to ClearPending. --- Source/Core/Core/HW/DSPHLE/DSPHLE.cpp | 4 ++-- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 7 +++---- Source/Core/Core/HW/DSPHLE/MailHandler.h | 6 +++++- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 1 - Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp | 1 - Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 1 - Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp | 1 - Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 1 - 8 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp index c686930383..9e17a78ecc 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp @@ -67,7 +67,7 @@ void DSPHLE::SendMailToDSP(u32 mail) void DSPHLE::SetUCode(u32 crc) { - m_mail_handler.Clear(); + m_mail_handler.ClearPending(); m_ucode = UCodeFactory(crc, this, m_wii); m_ucode->Initialize(); } @@ -77,7 +77,7 @@ void DSPHLE::SetUCode(u32 crc) // Even callers are deleted. void DSPHLE::SwapUCode(u32 crc) { - m_mail_handler.Clear(); + m_mail_handler.ClearPending(); if (m_last_ucode && UCodeInterface::GetCRC(m_last_ucode.get()) == crc) { diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index 46019abc6f..b1d0377ec2 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -19,7 +19,6 @@ CMailHandler::CMailHandler() CMailHandler::~CMailHandler() { - Clear(); } void CMailHandler::PushMail(u32 mail, bool interrupt, int cycles_into_future) @@ -69,7 +68,7 @@ u16 CMailHandler::ReadDSPMailboxLow() return 0x00; } -void CMailHandler::Clear() +void CMailHandler::ClearPending() { while (!m_Mails.empty()) m_Mails.pop(); @@ -84,7 +83,7 @@ void CMailHandler::Halt(bool _Halt) { if (_Halt) { - Clear(); + ClearPending(); PushMail(0x80544348); } } @@ -93,7 +92,7 @@ void CMailHandler::DoState(PointerWrap& p) { if (p.IsReadMode()) { - Clear(); + ClearPending(); int sz = 0; p.Do(sz); for (int i = 0; i < sz; i++) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h index 773cf042bb..411d169545 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.h +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h @@ -20,11 +20,15 @@ public: // TODO: figure out correct timing for interrupts rather than defaulting to "immediately." void PushMail(u32 mail, bool interrupt = false, int cycles_into_future = 0); - void Clear(); void Halt(bool _Halt); void DoState(PointerWrap& p); bool HasPending() const; + // Clear any pending mail from the current uCode. This is called by DSPHLE::SetUCode and + // DSPHLE::SwapUCode. Since pending mail is an abstraction for DSPHLE and not something that + // actually exists on real hardware, HLE implementations do not need to call this directly. + void ClearPending(); + u16 ReadDSPMailboxHigh(); u16 ReadDSPMailboxLow(); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index ee64a96659..45d9848b8c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -34,7 +34,6 @@ AXUCode::AXUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) AXUCode::~AXUCode() { - m_mail_handler.Clear(); } void AXUCode::Initialize() diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp index 23ee74bec8..ac14bd26be 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp @@ -18,7 +18,6 @@ CARDUCode::CARDUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) CARDUCode::~CARDUCode() { - m_mail_handler.Clear(); } void CARDUCode::Initialize() diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index 49816fe6fd..b22e594719 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -75,7 +75,6 @@ GBAUCode::GBAUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) GBAUCode::~GBAUCode() { - m_mail_handler.Clear(); } void GBAUCode::Initialize() diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp index e41a5b19c0..00e4989afe 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp @@ -34,7 +34,6 @@ ROMUCode::~ROMUCode() void ROMUCode::Initialize() { - m_mail_handler.Clear(); m_mail_handler.PushMail(0x8071FEED); } diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index 7cfab59596..5c07a31ea4 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -130,7 +130,6 @@ ZeldaUCode::ZeldaUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) ZeldaUCode::~ZeldaUCode() { - m_mail_handler.Clear(); } void ZeldaUCode::Initialize() From 0fec8ffb3c9c71a9daaf83e5c3f8b3f7ba394583 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 19 Jun 2022 12:19:09 -0700 Subject: [PATCH 255/659] DSPHLE: Remove empty destructors Most of these were made unnecessary by the previous commit. --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/CARD.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/GBA.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/INIT.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/ROM.h | 1 - Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 4 ---- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h | 1 - 14 files changed, 35 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 45d9848b8c..c53d7a8e8e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -32,10 +32,6 @@ AXUCode::AXUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) INFO_LOG_FMT(DSPHLE, "Instantiating AXUCode: crc={:08x}", crc); } -AXUCode::~AXUCode() -{ -} - void AXUCode::Initialize() { m_mail_handler.PushMail(DSP_INIT, true); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index 52adc73b63..9f69fa3195 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -66,7 +66,6 @@ class AXUCode : public UCodeInterface { public: AXUCode(DSPHLE* dsphle, u32 crc); - ~AXUCode() override; void Initialize() override; void HandleMail(u32 mail) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index e1a7530c35..1c4709af16 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -30,10 +30,6 @@ AXWiiUCode::AXWiiUCode(DSPHLE* dsphle, u32 crc) : AXUCode(dsphle, crc), m_last_m m_old_axwii = (crc == 0xfa450138) || (crc == 0x7699af32); } -AXWiiUCode::~AXWiiUCode() -{ -} - void AXWiiUCode::HandleCommandList() { // Temp variables for addresses computation diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h index 7d1baf871d..27d79ba1ae 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h @@ -15,7 +15,6 @@ class AXWiiUCode : public AXUCode { public: AXWiiUCode(DSPHLE* dsphle, u32 crc); - ~AXWiiUCode() override; void DoState(PointerWrap& p) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp index ac14bd26be..4ad47757f8 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp @@ -16,10 +16,6 @@ CARDUCode::CARDUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) INFO_LOG_FMT(DSPHLE, "CARDUCode - initialized"); } -CARDUCode::~CARDUCode() -{ -} - void CARDUCode::Initialize() { m_mail_handler.PushMail(DSP_INIT); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h index 99dcd2f231..55b1e7f95d 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h @@ -14,7 +14,6 @@ class CARDUCode : public UCodeInterface { public: CARDUCode(DSPHLE* dsphle, u32 crc); - ~CARDUCode() override; void Initialize() override; void HandleMail(u32 mail) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index b22e594719..bccd7fe6ef 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -73,10 +73,6 @@ GBAUCode::GBAUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) { } -GBAUCode::~GBAUCode() -{ -} - void GBAUCode::Initialize() { m_mail_handler.PushMail(DSP_INIT); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h index 89c9ac4af8..22083d127d 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h @@ -18,7 +18,6 @@ void ProcessGBACrypto(u32 address); struct GBAUCode : public UCodeInterface { GBAUCode(DSPHLE* dsphle, u32 crc); - ~GBAUCode() override; void Initialize() override; void HandleMail(u32 mail) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp index 6df84313f1..7869460bc1 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp @@ -16,10 +16,6 @@ INITUCode::INITUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) INFO_LOG_FMT(DSPHLE, "INITUCode - initialized"); } -INITUCode::~INITUCode() -{ -} - void INITUCode::Initialize() { m_mail_handler.PushMail(0x80544348); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h index 9b286065c2..53cbe01428 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h @@ -14,7 +14,6 @@ class INITUCode : public UCodeInterface { public: INITUCode(DSPHLE* dsphle, u32 crc); - ~INITUCode() override; void Initialize() override; void HandleMail(u32 mail) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp index 00e4989afe..cd5e72a009 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp @@ -28,10 +28,6 @@ ROMUCode::ROMUCode(DSPHLE* dsphle, u32 crc) INFO_LOG_FMT(DSPHLE, "UCode_Rom - initialized"); } -ROMUCode::~ROMUCode() -{ -} - void ROMUCode::Initialize() { m_mail_handler.PushMail(0x8071FEED); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h index bf43d34f71..431c9ed052 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h @@ -14,7 +14,6 @@ class ROMUCode : public UCodeInterface { public: ROMUCode(DSPHLE* dsphle, u32 crc); - ~ROMUCode() override; void Initialize() override; void HandleMail(u32 mail) override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index 5c07a31ea4..16c5a20cda 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -128,10 +128,6 @@ ZeldaUCode::ZeldaUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) INFO_LOG_FMT(DSPHLE, "Zelda UCode loaded, crc={:08x}, flags={:08x}", crc, m_flags); } -ZeldaUCode::~ZeldaUCode() -{ -} - void ZeldaUCode::Initialize() { if (m_flags & LIGHT_PROTOCOL) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h index 941f140dea..6051faf853 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h @@ -191,7 +191,6 @@ class ZeldaUCode : public UCodeInterface { public: ZeldaUCode(DSPHLE* dsphle, u32 crc); - ~ZeldaUCode() override; void Initialize() override; void HandleMail(u32 mail) override; From bdbb23fa1a3052337af2106a3dc8715a8cde8bd2 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 8 Jun 2022 20:08:40 -0700 Subject: [PATCH 256/659] DSPHLE: Rename CMailHandler::m_Mails to m_pending_mails --- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 70 +++++----------------- Source/Core/Core/HW/DSPHLE/MailHandler.h | 8 ++- 2 files changed, 19 insertions(+), 59 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index b1d0377ec2..87e8d957c2 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -3,8 +3,6 @@ #include "Core/HW/DSPHLE/MailHandler.h" -#include - #include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" @@ -25,25 +23,25 @@ void CMailHandler::PushMail(u32 mail, bool interrupt, int cycles_into_future) { if (interrupt) { - if (m_Mails.empty()) + if (m_pending_mails.empty()) { DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP, cycles_into_future); } else { - m_Mails.front().second = true; + m_pending_mails.front().second = true; } } - m_Mails.emplace(mail, false); + m_pending_mails.emplace_back(mail, false); DEBUG_LOG_FMT(DSP_MAIL, "DSP writes {:#010x}", mail); } u16 CMailHandler::ReadDSPMailboxHigh() { - // check if we have a mail for the core - if (!m_Mails.empty()) + // check if we have a mail for the CPU core + if (!m_pending_mails.empty()) { - u16 result = (m_Mails.front().first >> 16) & 0xFFFF; + u16 result = (m_pending_mails.front().first >> 16) & 0xFFFF; return result; } return 0x00; @@ -51,12 +49,12 @@ u16 CMailHandler::ReadDSPMailboxHigh() u16 CMailHandler::ReadDSPMailboxLow() { - // check if we have a mail for the core - if (!m_Mails.empty()) + // check if we have a mail for the CPU core + if (!m_pending_mails.empty()) { - u16 result = m_Mails.front().first & 0xFFFF; - bool generate_interrupt = m_Mails.front().second; - m_Mails.pop(); + u16 result = m_pending_mails.front().first & 0xFFFF; + const bool generate_interrupt = m_pending_mails.front().second; + m_pending_mails.pop_front(); if (generate_interrupt) { @@ -70,13 +68,12 @@ u16 CMailHandler::ReadDSPMailboxLow() void CMailHandler::ClearPending() { - while (!m_Mails.empty()) - m_Mails.pop(); + m_pending_mails.clear(); } bool CMailHandler::HasPending() const { - return !m_Mails.empty(); + return !m_pending_mails.empty(); } void CMailHandler::Halt(bool _Halt) @@ -90,45 +87,6 @@ void CMailHandler::Halt(bool _Halt) void CMailHandler::DoState(PointerWrap& p) { - if (p.IsReadMode()) - { - ClearPending(); - int sz = 0; - p.Do(sz); - for (int i = 0; i < sz; i++) - { - u32 mail = 0; - bool interrupt = false; - p.Do(mail); - p.Do(interrupt); - m_Mails.emplace(mail, interrupt); - } - } - else // WRITE and MEASURE - { - std::queue> temp; - int sz = (int)m_Mails.size(); - p.Do(sz); - for (int i = 0; i < sz; i++) - { - u32 value = m_Mails.front().first; - bool interrupt = m_Mails.front().second; - m_Mails.pop(); - p.Do(value); - p.Do(interrupt); - temp.emplace(value, interrupt); - } - if (!m_Mails.empty()) - PanicAlertFmt("CMailHandler::DoState - WTF?"); - - // Restore queue. - for (int i = 0; i < sz; i++) - { - u32 value = temp.front().first; - bool interrupt = temp.front().second; - temp.pop(); - m_Mails.emplace(value, interrupt); - } - } + p.Do(m_pending_mails); } } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h index 411d169545..0bc1227ede 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.h +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h @@ -3,7 +3,7 @@ #pragma once -#include +#include #include #include "Common/CommonTypes.h" @@ -33,7 +33,9 @@ public: u16 ReadDSPMailboxLow(); private: - // mail handler - std::queue> m_Mails; + // The actual DSP only has a single pair of mail registers, and doesn't keep track of pending + // mails. But for HLE, it's a lot easier to write all the mails that will be read ahead of time, + // and then give them to the CPU in the requested order. + std::deque> m_pending_mails; }; } // namespace DSP::HLE From 3aeafcc70b4358d0a9736d5c654fd8b9e30e4ead Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 16 Jun 2022 14:51:59 -0700 Subject: [PATCH 257/659] DSPHLE: Return last mail with top bit cleared if there is no new mail This is an accuracy improvement, though I don't think it matters for anything in practice. --- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 17 ++++++++++------- Source/Core/Core/HW/DSPHLE/MailHandler.h | 5 +++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index 87e8d957c2..fc5b22b778 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -41,10 +41,9 @@ u16 CMailHandler::ReadDSPMailboxHigh() // check if we have a mail for the CPU core if (!m_pending_mails.empty()) { - u16 result = (m_pending_mails.front().first >> 16) & 0xFFFF; - return result; + m_last_mail = m_pending_mails.front().first; } - return 0x00; + return u16(m_last_mail >> 0x10); } u16 CMailHandler::ReadDSPMailboxLow() @@ -52,18 +51,22 @@ u16 CMailHandler::ReadDSPMailboxLow() // check if we have a mail for the CPU core if (!m_pending_mails.empty()) { - u16 result = m_pending_mails.front().first & 0xFFFF; + m_last_mail = m_pending_mails.front().first; const bool generate_interrupt = m_pending_mails.front().second; + m_pending_mails.pop_front(); if (generate_interrupt) { DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); } - - return result; } - return 0x00; + // Clear the top bit of the high mail word after the mail has been read. + // The remaining bits read back the same as the previous mail, until new mail sent. + // (The CPU reads the high word first, and then the low word; since this function returns the low + // word, this means that the next read of the high word will have the top bit cleared.) + m_last_mail &= ~0x8000'0000; + return u16(m_last_mail & 0xffff); } void CMailHandler::ClearPending() diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h index 0bc1227ede..c036a9f72d 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.h +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h @@ -27,6 +27,8 @@ public: // Clear any pending mail from the current uCode. This is called by DSPHLE::SetUCode and // DSPHLE::SwapUCode. Since pending mail is an abstraction for DSPHLE and not something that // actually exists on real hardware, HLE implementations do not need to call this directly. + // Note that this function does not reset m_last_mail, which will continue to read the same value + // until the new uCode sends mail. void ClearPending(); u16 ReadDSPMailboxHigh(); @@ -37,5 +39,8 @@ private: // mails. But for HLE, it's a lot easier to write all the mails that will be read ahead of time, // and then give them to the CPU in the requested order. std::deque> m_pending_mails; + // If no pending mail exists, the last mail that was read is returned, + // but with the top bit (0x80000000) cleared. + u32 m_last_mail = 0; }; } // namespace DSP::HLE From a72fa4b9ccabf5113a903f880e7df64e9dffc467 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 16 Jun 2022 15:40:41 -0700 Subject: [PATCH 258/659] DSPHLE: Don't generate new mail if the DSP is halted This fixes booting Datel titles with DSPHLE (see https://bugs.dolphin-emu.org/issues/12943). Datel messed up their DSP initialization code, so it only works by receiving a mail later on, but if halting isn't implemented then it receives the mail too early and hangs. --- Source/Core/Core/HW/DSPHLE/DSPHLE.cpp | 1 + Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 12 ++++-------- Source/Core/Core/HW/DSPHLE/MailHandler.h | 4 +++- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp index 9e17a78ecc..b8d3b8e5a2 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp @@ -196,6 +196,7 @@ u16 DSPHLE::DSP_WriteControlRegister(u16 value) { INFO_LOG_FMT(DSPHLE, "DSP_CONTROL halt bit changed: {:04x} -> {:04x}", m_dsp_control.Hex, value); + m_mail_handler.SetHalted(temp.DSPHalt); } if (temp.DSPReset) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index fc5b22b778..f297b6f53c 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -39,7 +39,7 @@ void CMailHandler::PushMail(u32 mail, bool interrupt, int cycles_into_future) u16 CMailHandler::ReadDSPMailboxHigh() { // check if we have a mail for the CPU core - if (!m_pending_mails.empty()) + if (!m_halted && !m_pending_mails.empty()) { m_last_mail = m_pending_mails.front().first; } @@ -49,7 +49,7 @@ u16 CMailHandler::ReadDSPMailboxHigh() u16 CMailHandler::ReadDSPMailboxLow() { // check if we have a mail for the CPU core - if (!m_pending_mails.empty()) + if (!m_halted && !m_pending_mails.empty()) { m_last_mail = m_pending_mails.front().first; const bool generate_interrupt = m_pending_mails.front().second; @@ -79,13 +79,9 @@ bool CMailHandler::HasPending() const return !m_pending_mails.empty(); } -void CMailHandler::Halt(bool _Halt) +void CMailHandler::SetHalted(bool halt) { - if (_Halt) - { - ClearPending(); - PushMail(0x80544348); - } + m_halted = halt; } void CMailHandler::DoState(PointerWrap& p) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h index c036a9f72d..ee38bcde53 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.h +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h @@ -20,7 +20,7 @@ public: // TODO: figure out correct timing for interrupts rather than defaulting to "immediately." void PushMail(u32 mail, bool interrupt = false, int cycles_into_future = 0); - void Halt(bool _Halt); + void SetHalted(bool halt); void DoState(PointerWrap& p); bool HasPending() const; @@ -42,5 +42,7 @@ private: // If no pending mail exists, the last mail that was read is returned, // but with the top bit (0x80000000) cleared. u32 m_last_mail = 0; + // When halted, the DSP itself is not running, but the last mail can be read. + bool m_halted = false; }; } // namespace DSP::HLE From 29ddd0e6f05d0489a0e92e0014d2db10dfcd4095 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 16 Jun 2022 00:02:39 -0700 Subject: [PATCH 259/659] windows: detect and warn if running x64 dolphin on arm64 --- Source/Core/Common/x64CPUDetect.cpp | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Source/Core/Common/x64CPUDetect.cpp b/Source/Core/Common/x64CPUDetect.cpp index 644d485ed8..5f90246302 100644 --- a/Source/Core/Common/x64CPUDetect.cpp +++ b/Source/Core/Common/x64CPUDetect.cpp @@ -3,12 +3,17 @@ #include "Common/CPUDetect.h" +#ifdef _WIN32 +#include +#endif + #include #include #include #include "Common/CommonTypes.h" #include "Common/Intrinsics.h" +#include "Common/MsgHandler.h" #ifndef _WIN32 @@ -48,6 +53,29 @@ static u64 xgetbv(u32 index) } constexpr u32 XCR_XFEATURE_ENABLED_MASK = _XCR_XFEATURE_ENABLED_MASK; +static void WarnIfRunningUnderEmulation() +{ + // Starting with win11, arm64 windows can run x64 processes under emulation. + // This detects such a scenario and informs the user they probably want to run a native build. + PROCESS_MACHINE_INFORMATION info{}; + if (!GetProcessInformation(GetCurrentProcess(), ProcessMachineTypeInfo, &info, sizeof(info))) + { + // Possibly we are running on version of windows which doesn't support ProcessMachineTypeInfo. + return; + } + if (info.MachineAttributes & MACHINE_ATTRIBUTES::KernelEnabled) + { + // KernelEnabled will be set if process arch matches the kernel arch - how we want people to run + // dolphin. + return; + } + + // The process is not native; could use IsWow64Process2 to get native machine type, but for now + // we can assume it is arm64. + PanicAlertFmtT("This build of Dolphin is not natively compiled for your CPU.\n" + "Please run the ARM64 build of Dolphin for a better experience."); +} + #else static u64 xgetbv(u32 index) @@ -69,6 +97,10 @@ CPUInfo::CPUInfo() // Detects the various CPU features void CPUInfo::Detect() { +#ifdef _WIN32 + WarnIfRunningUnderEmulation(); +#endif + #ifdef _M_X86_64 Mode64bit = true; OS64bit = true; From f3c8e7566621cd58faa158840a21099c7641bfe5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 14 Jun 2022 18:52:04 -0700 Subject: [PATCH 260/659] DSPHLE: Move CDD1 constants to UCodes.h These are used by *all* uCodes, though not all uCodes support MAIL_RESUME or MAIL_CONTINUE. --- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 14 ++---- Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 8 ++-- Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h | 53 +++++++++++++++++---- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 16 ++++--- 4 files changed, 60 insertions(+), 31 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index 52adc73b63..4755002521 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -74,17 +74,9 @@ public: void DoState(PointerWrap& p) override; protected: - enum MailType - { - MAIL_RESUME = 0xCDD10000, - MAIL_NEW_UCODE = 0xCDD10001, - MAIL_RESET = 0xCDD10002, - MAIL_CONTINUE = 0xCDD10003, - - // CPU sends 0xBABE0000 | cmdlist_size to the DSP - MAIL_CMDLIST = 0xBABE0000, - MAIL_CMDLIST_MASK = 0xFFFF0000 - }; + // CPU sends 0xBABE0000 | cmdlist_size to the DSP + static constexpr u32 MAIL_CMDLIST = 0xBABE0000; + static constexpr u32 MAIL_CMDLIST_MASK = 0xFFFF0000; // 32 * 5 because 32 samples per millisecond, for max 5 milliseconds. int m_samples_main_left[32 * 5]{}; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index 6704a489ec..b734d16d4c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -114,14 +114,14 @@ void GBAUCode::HandleMail(u32 mail) calc_done = true; m_mail_handler.PushMail(DSP_DONE); } - else if ((mail >> 16 == 0xcdd1) && calc_done) + else if (((mail & TASK_MAIL_MASK) == TASK_MAIL_TO_DSP) && calc_done) { - switch (mail & 0xffff) + switch (mail) { - case 1: + case MAIL_NEW_UCODE: m_upload_setup_in_progress = true; break; - case 2: + case MAIL_RESET: m_dsphle->SetUCode(UCODE_ROM); break; default: diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h index 0ca71dea01..408c1e1239 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h @@ -61,15 +61,50 @@ protected: CMailHandler& m_mail_handler; - enum EDSP_Codes : u32 - { - DSP_INIT = 0xDCD10000, - DSP_RESUME = 0xDCD10001, - DSP_YIELD = 0xDCD10002, - DSP_DONE = 0xDCD10003, - DSP_SYNC = 0xDCD10004, - DSP_FRAME_END = 0xDCD10005, - }; + static constexpr u32 TASK_MAIL_MASK = 0xFFFF'0000; + // Task-management mails, used for uCode switching. The DSP sends mail with 0xDCD1 in the high + // word to the CPU to report its status. The CPU reacts in different ways for different mails. + // Also, Zelda uCode titles use a slightly different handler compared to AX uCode titles. Libogc's + // mail handler is based on the AX one. + static constexpr u32 TASK_MAIL_TO_CPU = 0xDCD1'0000; + // Triggers a callback. No response is sent. + static constexpr u32 DSP_INIT = TASK_MAIL_TO_CPU | 0x0000; + // Triggers a callback. No response is sent. + static constexpr u32 DSP_RESUME = TASK_MAIL_TO_CPU | 0x0001; + // If the current task is canceled by the CPU, the CPU processes this mail as if it were DSP_DONE + // instead. Otherwise, it is handled differently for Zelda uCode games and AX games. + // On Zelda uCode, the CPU will always respond with MAIL_NEW_UCODE. + // On AX uCode, the CPU will respond with MAIL_NEW_UCODE if it has a new task, and otherwise + // will use MAIL_CONTINUE. + static constexpr u32 DSP_YIELD = TASK_MAIL_TO_CPU | 0x0002; + // Triggers a callback. The response is handled differently for Zelda uCode games and AX games. + // On Zelda uCode, the CPU will always respond with MAIL_NEW_UCODE. + // On AX uCode, the CPU will respond with MAIL_NEW_UCODE if there is a new task, and otherwise + // will use MAIL_RESET if the finished task was the only task. + static constexpr u32 DSP_DONE = TASK_MAIL_TO_CPU | 0x0003; + // Triggers a callback. No response is sent. + static constexpr u32 DSP_SYNC = TASK_MAIL_TO_CPU | 0x0004; + // Used by Zelda uCode only. Zelda uCode titles (or at least Super Mario Sunshine and Super Mario + // Galaxy) will log "Audio Yield Start", send MAIL_NEW_UCODE, and then log "Audio Yield Finish" if + // they have a task to execute (e.g. the card uCode), and otherwise will send MAIL_CONTINUE. + static constexpr u32 DSP_FRAME_END = TASK_MAIL_TO_CPU | 0x0005; + + // The CPU will send a mail prefixed with 0xCDD1 in the high word in response. + static constexpr u32 TASK_MAIL_TO_DSP = 0xCDD1'0000; + // On AX, this sends DSP_RESUME and then returns to normal execution. On Zelda, this immediately + // HALTs. Other uCodes (e.g. Card, GBA) do not implement (and instead ignore) this mail. + // This mail does not seem to be sent in practice. + static constexpr u32 MAIL_RESUME = TASK_MAIL_TO_DSP | 0x0000; + // Starts populating info for a new uCode (see PrepareBootUCode and m_upload_setup_in_progress). + // The current uCode's state can optionally be saved, although the Card and GBA uCode do not + // support this (as there is no reason to reload their old state). + static constexpr u32 MAIL_NEW_UCODE = TASK_MAIL_TO_DSP | 0x0001; + // Immediately switches to ROM uCode. Implemented by the Zelda uCode, but the Zelda uCode task + // handler doesn't seem to send it. + static constexpr u32 MAIL_RESET = TASK_MAIL_TO_DSP | 0x0002; + // Jumps back to the main loop. Not implemented by all uCode (in particular Card and GBA which do + // not have a main loop). + static constexpr u32 MAIL_CONTINUE = TASK_MAIL_TO_DSP | 0x0003; // UCode is forwarding mails to PrepareBootUCode // UCode only needs to set this to true, UCodeInterface will set to false when done! diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index 7cfab59596..a3bf46fb9f 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -201,14 +201,16 @@ void ZeldaUCode::HandleMailDefault(u32 mail) case MailState::WAITING: if (mail & 0x80000000) { - if ((mail >> 16) != 0xCDD1) + if ((mail & TASK_MAIL_MASK) != TASK_MAIL_TO_DSP) { - PanicAlertFmt("Rendering end mail without prefix CDD1: {:08x}", mail); + WARN_LOG_FMT(DSPHLE, "Received rendering end mail without prefix CDD1: {:08x}", mail); + mail = TASK_MAIL_TO_DSP | (mail & ~TASK_MAIL_MASK); + // The actual uCode does not check for the CDD1 prefix. } - switch (mail & 0xFFFF) + switch (mail) { - case 1: + case MAIL_NEW_UCODE: m_cmd_can_execute = true; RunPendingCommands(); NOTICE_LOG_FMT(DSPHLE, "UCode being replaced."); @@ -216,13 +218,13 @@ void ZeldaUCode::HandleMailDefault(u32 mail) SetMailState(MailState::WAITING); break; - case 2: + case MAIL_RESET: NOTICE_LOG_FMT(DSPHLE, "UCode being rebooted to ROM."); SetMailState(MailState::HALTED); m_dsphle->SetUCode(UCODE_ROM); break; - case 3: + case MAIL_CONTINUE: m_cmd_can_execute = true; RunPendingCommands(); break; @@ -230,7 +232,7 @@ void ZeldaUCode::HandleMailDefault(u32 mail) default: NOTICE_LOG_FMT(DSPHLE, "Unknown end rendering action. Halting."); [[fallthrough]]; - case 0: + case MAIL_RESUME: NOTICE_LOG_FMT(DSPHLE, "UCode asked to halt. Stopping any processing."); SetMailState(MailState::HALTED); break; From 7f5e9c3349946c97a388d03106930bc43e372b89 Mon Sep 17 00:00:00 2001 From: maxdunbar <48608399+maxdunbar@users.noreply.github.com> Date: Thu, 23 Jun 2022 10:41:19 -0700 Subject: [PATCH 261/659] Readme: Referencing the wiki when building for linux When building dolphin, the wiki has lots of helpful information for dependencies. I am proposing to add a direct link to that page on the wiki under the building for linux section on the README --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 11b092fa35..a8543799f1 100644 --- a/Readme.md +++ b/Readme.md @@ -61,7 +61,7 @@ since the Binary directory contains a working Dolphin distribution. Dolphin requires [CMake](https://cmake.org/) for systems other than Windows. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any -missing packages yourself. +missing packages yourself. You may refer to the [Wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux) for more information. Make sure to pull submodules before building: ```sh From 8a144a735f4116650f59e6931fed86c1c00fa03c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 14 Jun 2022 16:25:37 -0700 Subject: [PATCH 262/659] DSPHLE: Add HLE version of libasnd ucode --- Source/Core/Core/CMakeLists.txt | 2 + Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 568 +++++++++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h | 113 ++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 8 + Source/Core/DolphinLib.props | 2 + 5 files changed, 693 insertions(+) create mode 100644 Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp create mode 100644 Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index f958f7dd70..8a4db4c961 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -142,6 +142,8 @@ add_library(core HW/DSPHLE/DSPHLE.h HW/DSPHLE/MailHandler.cpp HW/DSPHLE/MailHandler.h + HW/DSPHLE/UCodes/ASnd.cpp + HW/DSPHLE/UCodes/ASnd.h HW/DSPHLE/UCodes/AX.cpp HW/DSPHLE/UCodes/AX.h HW/DSPHLE/UCodes/AXStructs.h diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp new file mode 100644 index 0000000000..44fd55b00a --- /dev/null +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -0,0 +1,568 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +// High-level emulation for the libasnd ucode, used by older homebrew +// libasnd is copyright 2008 Hermes and released under the BSD-3-Clause license + +#include "Core/HW/DSPHLE/UCodes/ASnd.h" + +#include + +#include "Common/ChunkFile.h" +#include "Common/Logging/Log.h" +#include "Common/Swap.h" +#include "Core/HW/DSP.h" +#include "Core/HW/DSPHLE/DSPHLE.h" +#include "Core/HW/DSPHLE/MailHandler.h" +#include "Core/HW/DSPHLE/UCodes/UCodes.h" + +namespace DSP::HLE +{ +// "fill the internal sample buffer and process the voice internally" +constexpr u32 MAIL_INPUT_SAMPLES = 0x0111; +// "get samples from the external buffer to the internal buffer and process the voice mixing the +// samples internally" (not used) +constexpr u32 MAIL_INPUT_SAMPLES_2 = 0x0112; +// "get the address of the voice datas buffer (CHANNEL DATAS)" (actually sets it) +constexpr u32 MAIL_SET_VOICE_DATA_BUFFER = 0x0123; +// "process the voice mixing the samples internally" +constexpr u32 MAIL_INPUT_NEXT_SAMPLES = 0x0222; +// "send the samples for the internal buffer to the external buffer" +constexpr u32 MAIN_SEND_SAMPLES = 0x0666; +// "special: to dump the IROM Datas (remember disable others functions from the interrupt vector to +// use) (CMBH+0x8000) countain the address of IROM" (not used) +constexpr u32 MAIL_ROM_DUMP_WORD = 0x0777; +// "Used for test" (not used) +constexpr u32 MAIL_TEST = 0x0888; +constexpr u32 MAIL_TERMINATE = 0x0999; + +// Note that there are additional flags used on the powerpc side (UPDATEADD, UPDATE, and VOLUPDATE) +// that are not relevant to the DSP side. +// The old flags are used in the 2008 and 2009 versions, while the new ones are used in the 2011 and +// 2020 versions. +constexpr u32 OLD_FLAGS_VOICE_PAUSE = 1 << 5; +constexpr u32 OLD_FLAGS_VOICE_LOOP = 1 << 2; +constexpr u32 OLD_FLAGS_SAMPLE_FORMAT_MASK = 3; + +constexpr u32 NEW_FLAGS_VOICE_PAUSE = 1 << 9; +constexpr u32 NEW_FLAGS_VOICE_LOOP = 1 << 8; +constexpr u32 NEW_FLAGS_SAMPLE_FORMAT_MASK = 7; +// Used on the PowerPC side as an enabled flag (if 0, then the voice isn't active). +// Used on the DSP side as the step in bytes after each read. +constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_MASK = 0xffff0000; +constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_SHIFT = 16; + +// November 14, 2008 version (padded to 0x05a0 bytes) - initial release +// https://github.com/devkitPro/libogc/compare/c76d8b851fafc11b0a5debc0b40842929d5a5825~...353a44f038e75e5982eb550173ec8127ab35e3e3 +constexpr u32 HASH_2008 = 0x8d69a19b; +// February 5, 2009 version (0x05ac bytes) - added MAIL_TERMINATE +// https://github.com/devkitPro/libogc/compare/1925217ffb4c97cbee5cf21fa3c0231029b340e2~...3b1f018dbe372859a43bff8560e2525f6efa4433 +constexpr u32 HASH_2009 = 0xcc2fd441; +// June 11, 2011 version (padded to 0x0620 bytes) - added new sample formats, which shifted flags +// Note that the source include in the repo does not match the compiled binary exactly; the compiled +// version differs by using asl instead of lsl, $acc1 instead of $acc0, and $ac0.l instead of $ac0.m +// in various locations, as well as having the "jmp out_samp" line uncommented in stereo_16bits_le. +// None of these result in a behavior difference, from the source, though. +// Note that gcdsptool was also updated, which results in some differences in the source that don't +// actually correspond to different instructions (e.g. s40 was renamed to s16) +// https://github.com/devkitPro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 +constexpr u32 HASH_2011 = 0xa81582e2; +// June 12, 2020 version (0x0606 bytes) - libogc switched to compiling the ucode at build time +// instead of including a pre-compiled version in the repo, so this now corresponds to the code +// provided in the repo. There appear to be no behavior differences from the 2011 version. +// https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93 +constexpr u32 HASH_2020 = 0xdbbeeb61; + +constexpr u32 SAMPLE_RATE = 48000; + +ASndUCode::ASndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) +{ +} + +void ASndUCode::Initialize() +{ + m_mail_handler.PushMail(DSP_INIT); +} + +void ASndUCode::Update() +{ + // This is dubious in general, since we set the interrupt parameter on m_mail_handler.PushMail + if (!m_mail_handler.IsEmpty()) + { + DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + } +} + +void ASndUCode::HandleMail(u32 mail) +{ + if (m_upload_setup_in_progress) + { + PrepareBootUCode(mail); + } + else if (m_next_command_is_voice_addr) + { + m_voice_addr = mail; + INFO_LOG_FMT(DSPHLE, "ASndUCode - Voice data is at {:08x}", mail); + m_next_command_is_voice_addr = false; + // No mail is sent in response + } + else if ((mail & TASK_MAIL_MASK) == TASK_MAIL_TO_DSP) + { + switch (mail) + { + case MAIL_NEW_UCODE: + m_upload_setup_in_progress = true; + break; + case MAIL_RESET: + m_dsphle->SetUCode(UCODE_ROM); + break; + default: + WARN_LOG_FMT(DSPHLE, "ASndUCode - unknown 0xcdd1 command: {:08x}", mail); + break; + } + // No mail is sent in response to any of these + } + else + { + // The ucode only checks the lower word (as long as the upper word is not 0xCDD1). + switch (mail & 0xffff) + { + case MAIL_INPUT_SAMPLES: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_INPUT_SAMPLES: {:08x}", mail); + // input_samples + DMAInVoiceData(); + // loop_get1 + m_output_buffer.fill(0); + DoMixing(DSP_SYNC); + // Mail is handled by DoMixing() + break; + case MAIL_INPUT_SAMPLES_2: + WARN_LOG_FMT(DSPHLE, "ASndUCode - MAIL_INPUT_SAMPLES_2: {:08x} - not normally used", mail); + // input_samples2 + DMAInVoiceData(); // first do_dma call + // second do_dma call + for (u32 i = 0; i < NUM_OUTPUT_SAMPLES * 2; i++) + { + m_output_buffer[i] = HLEMemory_Read_U16(m_current_voice.out_buf + i * sizeof(u16)); + } + DoMixing(DSP_SYNC); + // Mail is handled by DoMixing() + break; + case MAIL_SET_VOICE_DATA_BUFFER: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_SET_VOICE_DATA_BUFFER: {:08x}", mail); + m_next_command_is_voice_addr = true; + // No mail is sent in response + break; + case MAIL_INPUT_NEXT_SAMPLES: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_INPUT_NEXT_SAMPLES: {:08x}", mail); + // input_next_samples + DMAInVoiceData(); + // called via fallthrough + DoMixing(DSP_SYNC); + // Mail is handled by DoMixing() + break; + case MAIN_SEND_SAMPLES: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIN_SEND_SAMPLES: {:08x}", mail); + for (u32 i = 0; i < NUM_OUTPUT_SAMPLES * 2; i++) + { + HLEMemory_Write_U16(m_current_voice.out_buf + i * sizeof(u16), m_output_buffer[i]); + } + m_mail_handler.PushMail(DSP_SYNC, true); + break; + case MAIL_ROM_DUMP_WORD: + WARN_LOG_FMT(DSPHLE, "ASndUCode - MAIL_ROM_DUMP_WORD: {:08x} - not normally used", mail); + // Reads instruction at 0x8000 | (mail >> 16), and sends it back in DMBL. DMBH is 0. + m_mail_handler.PushMail(0x0000'0000, false); // DIRQ is not set + break; + case MAIL_TEST: + WARN_LOG_FMT(DSPHLE, "ASndUCode - MAIL_TEST: {:08x} - not normally used", mail); + // Runs `lri $ac0.m, #0x0` and `andf $ac0.m, #0x1` + // and then sends $sr in DMBH and $ac0.m in DMBL + // The exact value of $sr will vary, but this isn't used by anything in practice. + m_mail_handler.PushMail(0x2264'0000, false); // DIRQ is not set + break; + case MAIL_TERMINATE: + if (m_crc != HASH_2008) + { + INFO_LOG_FMT(DSPHLE, "ASndUCode - MAIL_TERMINATE: {:08x}", mail); + // This doesn't actually change the state of the system. + m_mail_handler.PushMail(DSP_DONE, true); + } + else + { + WARN_LOG_FMT(DSPHLE, "ASndUCode - MAIL_TERMINATE is not supported in this version: {:08x}", + mail); + m_mail_handler.PushMail(DSP_SYNC, true); + } + break; + default: + WARN_LOG_FMT(DSPHLE, "ASndUCode - unknown command: {:08x}", mail); + m_mail_handler.PushMail(DSP_SYNC, true); + break; + } + } +} + +void ASndUCode::DMAInVoiceData() +{ + m_current_voice.out_buf = HLEMemory_Read_U32(m_voice_addr); + m_current_voice.delay_samples = HLEMemory_Read_U32(m_voice_addr + 4); + u32 new_flags = HLEMemory_Read_U32(m_voice_addr + 8); + if (m_current_voice.flags != new_flags) + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - flags: {:08x}", new_flags); + m_current_voice.flags = new_flags; + m_current_voice.start_addr = HLEMemory_Read_U32(m_voice_addr + 12); + m_current_voice.end_addr = HLEMemory_Read_U32(m_voice_addr + 16); + m_current_voice.freq = HLEMemory_Read_U32(m_voice_addr + 20); + m_current_voice.left = HLEMemory_Read_U16(m_voice_addr + 24); + m_current_voice.right = HLEMemory_Read_U16(m_voice_addr + 26); + m_current_voice.counter = HLEMemory_Read_U32(m_voice_addr + 28); + m_current_voice.volume_l = HLEMemory_Read_U16(m_voice_addr + 32); + m_current_voice.volume_r = HLEMemory_Read_U16(m_voice_addr + 34); + m_current_voice.start_addr2 = HLEMemory_Read_U32(m_voice_addr + 36); + m_current_voice.end_addr2 = HLEMemory_Read_U32(m_voice_addr + 40); + m_current_voice.volume2_l = HLEMemory_Read_U16(m_voice_addr + 44); + m_current_voice.volume2_r = HLEMemory_Read_U16(m_voice_addr + 46); + m_current_voice.backup_addr = HLEMemory_Read_U32(m_voice_addr + 48); + m_current_voice.tick_counter = HLEMemory_Read_U32(m_voice_addr + 52); + m_current_voice.cb = HLEMemory_Read_U32(m_voice_addr + 56); + m_current_voice._pad = HLEMemory_Read_U32(m_voice_addr + 60); +} + +void ASndUCode::DMAOutVoiceData() +{ + HLEMemory_Write_U32(m_voice_addr, m_current_voice.out_buf); + HLEMemory_Write_U32(m_voice_addr + 4, m_current_voice.delay_samples); + HLEMemory_Write_U32(m_voice_addr + 8, m_current_voice.flags); + HLEMemory_Write_U32(m_voice_addr + 12, m_current_voice.start_addr); + HLEMemory_Write_U32(m_voice_addr + 16, m_current_voice.end_addr); + HLEMemory_Write_U32(m_voice_addr + 20, m_current_voice.freq); + HLEMemory_Write_U16(m_voice_addr + 24, m_current_voice.left); + HLEMemory_Write_U16(m_voice_addr + 26, m_current_voice.right); + HLEMemory_Write_U32(m_voice_addr + 28, m_current_voice.counter); + HLEMemory_Write_U16(m_voice_addr + 32, m_current_voice.volume_l); + HLEMemory_Write_U16(m_voice_addr + 34, m_current_voice.volume_r); + HLEMemory_Write_U32(m_voice_addr + 36, m_current_voice.start_addr2); + HLEMemory_Write_U32(m_voice_addr + 40, m_current_voice.end_addr2); + HLEMemory_Write_U16(m_voice_addr + 44, m_current_voice.volume2_l); + HLEMemory_Write_U16(m_voice_addr + 46, m_current_voice.volume2_r); + HLEMemory_Write_U32(m_voice_addr + 48, m_current_voice.backup_addr); + HLEMemory_Write_U32(m_voice_addr + 52, m_current_voice.tick_counter); + HLEMemory_Write_U32(m_voice_addr + 56, m_current_voice.cb); + HLEMemory_Write_U32(m_voice_addr + 60, m_current_voice._pad); +} + +void ASndUCode::DoMixing(u32 return_mail) +{ + // Note: return_mail is set to DSP_SYNC by all callers, but then changed here... to DSP_SYNC. + // This doesn't really make sense, but I'm keeping that behavior in case it helps with porting + // older versions. + + // start_main + + const u32 sample_format_mask = (m_crc == HASH_2011 || m_crc == HASH_2020) ? + NEW_FLAGS_SAMPLE_FORMAT_MASK : + OLD_FLAGS_SAMPLE_FORMAT_MASK; + const u32 sample_format = m_current_voice.flags & sample_format_mask; + const u32 sample_format_step = + (m_current_voice.flags & FLAGS_SAMPLE_FORMAT_BYTES_MASK) >> FLAGS_SAMPLE_FORMAT_BYTES_SHIFT; + + // sample_selector jump table + static constexpr std::array (ASndUCode::*)() const, 8> sample_selector{ + &ASndUCode::ReadSampleMono8Bits, &ASndUCode::ReadSampleMono16Bits, + &ASndUCode::ReadSampleStereo8Bits, &ASndUCode::ReadSampleStereo16Bits, + &ASndUCode::ReadSampleMono8BitsUnsigned, &ASndUCode::ReadSampleMono16BitsLittleEndian, + &ASndUCode::ReadSampleStereo8BitsUnsigned, &ASndUCode::ReadSampleStereo16BitsLittleEndian, + }; + const auto sample_function = sample_selector[sample_format]; + + const u32 pause_mask = + (m_crc == HASH_2011 || m_crc == HASH_2020) ? NEW_FLAGS_VOICE_PAUSE : OLD_FLAGS_VOICE_PAUSE; + + if ((m_current_voice.flags & pause_mask) == 0) + { + if (m_current_voice.start_addr == 0) + { + // "set return as "change of buffer"" + // (which doesn't make sense, since we're changing the return value to what it already was) + return_mail = DSP_SYNC; + ChangeBuffer(); + if (m_current_voice.start_addr == 0) + { + // Jump to save_datas_end, but since we write to start_addr directly in ChangeBuffer and + // can't have changed prev_r or prev_l here, there's nothing that needs to be saved. + // Thus, we can jump to end_main instead. This is still pretty ugly, but I don't think + // there's any way to tidy it further without making the structure much more convoluted. + goto end_main; + } + } + // do_not_change1 + + u32 buffer_offset = 0; + // "delay time section" + u16 remaining_samples = NUM_OUTPUT_SAMPLES; + + // Note: We don't handle masking/sign extension from use of $ac0.h and $ac1.h, as this isn't + // something that should happen if the PowerPC code is using the library normally. + // This applies throughout. + if (m_current_voice.delay_samples != 0) + { + m_current_voice.right = 0; + m_current_voice.left = 0; + u16 remaining_samples_delay = remaining_samples; + // l_delay + while (true) + { + buffer_offset += 2; + remaining_samples_delay--; + if (remaining_samples_delay == 0) + { + // exit_delay1 + remaining_samples = 0; + break; + } + m_current_voice.delay_samples--; + if (m_current_voice.delay_samples == 0) + { + // exit_delay2 + // commented with "load remanent samples to be processed in AXL0", + // but they use "MRR $AX0.L, $AC1.L" when the remaining samples are in $AC1.M. + remaining_samples = 0; + break; + } + } + } + // no_delay + // "bucle de generacion de samples", i.e. sample generation loop + DMAInSampleData(); + // "loops for samples to be processed", corresponding to BLOOP $ax0.l, loop_end + while (remaining_samples > 0) + { + remaining_samples--; + // "Mix right sample section" + s32 sample_r = static_cast(m_output_buffer[buffer_offset]); + sample_r += m_current_voice.right; + sample_r = std::clamp(sample_r, -32768, 32767); + m_output_buffer[buffer_offset++] = sample_r; + // "Mix left sample section" + s32 sample_l = static_cast(m_output_buffer[buffer_offset]); + sample_l += m_current_voice.left; + sample_l = std::clamp(sample_l, -32768, 32767); + m_output_buffer[buffer_offset++] = sample_l; + // "adds the counter with the voice frequency and test if it >=48000 to get the next sample" + m_current_voice.counter += m_current_voice.freq; + if (m_current_voice.counter >= SAMPLE_RATE) + { + if (m_current_voice.freq <= SAMPLE_RATE) + { + // get_sample: "fast method" + m_current_voice.counter -= SAMPLE_RATE; + m_current_voice.start_addr += sample_format_step; + } + else + { + // get_sample2: "slow method" + while (m_current_voice.counter >= SAMPLE_RATE) + { + m_current_voice.counter -= SAMPLE_RATE; + m_current_voice.start_addr += sample_format_step; + if ((m_current_voice.start_addr & INPUT_SAMPLE_BUFFER_BYTE_MASK) == 0) + { + DMAInSampleData(); + } + } + } + + if (m_current_voice.start_addr >= m_current_voice.end_addr) + { + // get_new_buffer (the comparison/jump is performed separately in get_sample and + // get_sample2, but the same comparison is done for both) + return_mail = DSP_SYNC; + ChangeBuffer(); + if (m_current_voice.start_addr == 0) + { + // zero_samples + // This directly jumps to out_samp as well, bypassing the code below. + // Fortunately we can replicate this behavior with `continue`, and don't need to handle + // the multiplication logic in out_samp since the samples are zero. + m_current_voice.right = 0; + m_current_voice.left = 0; + continue; + } + DMAInSampleData(); + } + // jump_load_smp_addr + const u16 input_sample_offset = + (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + if (input_sample_offset == 0) + { + // jump_load_smp_dma + DMAInSampleDataAssumeAligned(); + } + // Both paths jmpr $AR3, which is an index into sample_selector + + const auto [new_r, new_l] = (this->*sample_function)(); + // out_samp: "multiply sample x volume" - left is put in $ax0.h, right is put in $ax1.h + + // All functions jumped to from sample_selector jump or fall through here (zero_samples also + // jumps here, but is handled separately above for structural reasons) + const s32 temp_l = static_cast(new_l) * m_current_voice.volume_l; + m_current_voice.left = static_cast(temp_l >> 8); + const s32 temp_r = static_cast(new_r) * m_current_voice.volume_r; + m_current_voice.right = static_cast(temp_r >> 8); + } + // loop_end, remember that the labeled instruction is the last instruction in the loop + // so jumping to the NOP here causes the loop to repeat (and decrement its counter) + } + // end_process (not actually jumped to) + if (m_current_voice.start_addr == 0) + { + return_mail = DSP_SYNC; + ChangeBuffer(); + } + // save_datas_end (we mutate m_current_voice.start_addr, left, and right in place, + // so nothing needs to happen here here) + } +end_main: // end_main + DMAOutVoiceData(); + + m_mail_handler.PushMail(return_mail, true); +} + +void ASndUCode::ChangeBuffer() +{ + // change_buffer + m_current_voice.volume_l = m_current_voice.volume2_l; + m_current_voice.volume_r = m_current_voice.volume2_r; + m_current_voice.end_addr = m_current_voice.end_addr2; + m_current_voice.start_addr = m_current_voice.start_addr2; + m_current_voice.backup_addr = m_current_voice.start_addr2; + + const u32 loop_mask = + (m_crc == HASH_2011 || m_crc == HASH_2020) ? NEW_FLAGS_VOICE_LOOP : OLD_FLAGS_VOICE_LOOP; + + if ((m_current_voice.flags & loop_mask) == 0) + { + m_current_voice.start_addr2 = 0; + m_current_voice.end_addr2 = 0; + } +} + +void ASndUCode::DMAInSampleData() +{ + // load_smp_addr_align + // This is its own function, and it contains its own copy of the DMA logic. + // The only difference is that this one forces the address to be aligned, while when + // jump_load_smp_dma is used, the address is expected to already be aligned. + const u32 addr = m_current_voice.start_addr & ~INPUT_SAMPLE_BUFFER_BYTE_MASK; + for (u16 i = 0; i < INPUT_SAMPLE_BUFFER_SIZE_WORDS; i++) + { + m_input_sample_buffer[i] = HLEMemory_Read_U16(addr + i * sizeof(u16)); + } +} + +void ASndUCode::DMAInSampleDataAssumeAligned() +{ + // jump_load_smp_dma + // This is technically not a function, but instead is directly jumped to and then jumps to $ar3 + // (which is set to an address from sample_selector). We can just treat it as a function though. + const u32 addr = m_current_voice.start_addr; + for (u16 i = 0; i < INPUT_SAMPLE_BUFFER_SIZE_WORDS; i++) + { + m_input_sample_buffer[i] = HLEMemory_Read_U16(addr + i * sizeof(u16)); + } +} + +std::pair ASndUCode::ReadSampleMono8Bits() const +{ + // mono_8bits + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + s16 result = m_input_sample_buffer[index]; + if ((m_current_voice.start_addr & 1) == 0) + result >>= 8; + result <<= 8; + return {result, result}; +} + +std::pair ASndUCode::ReadSampleStereo8Bits() const +{ + // stereo_8bits + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + const u16 sample = m_input_sample_buffer[index]; + const s16 right = sample & 0xff00; + const s16 left = sample << 8; + return {right, left}; +} +std::pair ASndUCode::ReadSampleMono16Bits() const +{ + // mono_16bits + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + const s16 result = m_input_sample_buffer[index]; + return {result, result}; +} + +std::pair ASndUCode::ReadSampleStereo16Bits() const +{ + // stereo_16bits + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + const s16 right = m_input_sample_buffer[index]; + // Note that 1 is added to index after the masking - meaning that theoretically an out-of-bounds + // index 0x10 can be read (but the buffer is oversized both here and in the actual uCode, so the + // data at the out-of-bounds index will instead be 0). + const s16 left = m_input_sample_buffer[index + 1]; + return {right, left}; +} + +std::pair ASndUCode::ReadSampleMono8BitsUnsigned() const +{ + // mono_8bits_unsigned + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + s16 result = m_input_sample_buffer[index]; + if ((m_current_voice.start_addr & 1) == 0) + result >>= 8; + result <<= 8; + result ^= 0x8000; // Flip the sign bit - effectively adding 0x8000 + return {result, result}; +} + +std::pair ASndUCode::ReadSampleMono16BitsLittleEndian() const +{ + // mono_16bits_le + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + // Actual implementation is u32 result_l = result | result << 16; result = result_l >> 8; + const s16 result = Common::swap16(m_input_sample_buffer[index]); + return {result, result}; +} + +std::pair ASndUCode::ReadSampleStereo8BitsUnsigned() const +{ + // stereo_8bits_unsigned + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + u16 sample = m_input_sample_buffer[index] ^ 0x8080; + const s16 right = sample & 0xff00; + const s16 left = sample << 8; + return {right, left}; +} + +std::pair ASndUCode::ReadSampleStereo16BitsLittleEndian() const +{ + // stereo_16bits_le + const u32 index = (m_current_voice.start_addr >> 1) & INPUT_SAMPLE_BUFFER_WORD_MASK; + const s16 right = Common::swap16(m_input_sample_buffer[index]); + // Note that 1 is added to index after the masking - meaning that theoretically an out-of-bounds + // index 0x10 can be read (but the buffer is oversized both here and in the actual uCode, so the + // data at the out-of-bounds index will instead be 0). + const s16 left = Common::swap16(m_input_sample_buffer[index + 1]); + return {right, left}; +} + +void ASndUCode::DoState(PointerWrap& p) +{ + DoStateShared(p); + p.Do(m_next_command_is_voice_addr); + p.Do(m_voice_addr); + p.Do(m_current_voice); + p.Do(m_input_sample_buffer); + p.Do(m_output_buffer); +} +} // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h new file mode 100644 index 0000000000..b30bf32ec8 --- /dev/null +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h @@ -0,0 +1,113 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include "Common/CommonTypes.h" +#include "Core/HW/DSPHLE/UCodes/UCodes.h" + +namespace DSP::HLE +{ +class DSPHLE; + +class ASndUCode final : public UCodeInterface +{ +public: + ASndUCode(DSPHLE* dsphle, u32 crc); + + void Initialize() override; + void HandleMail(u32 mail) override; + void Update() override; + void DoState(PointerWrap& p) override; + +private: + void DMAInVoiceData(); + void DMAOutVoiceData(); + void DMAInSampleData(); + void DMAInSampleDataAssumeAligned(); + void ChangeBuffer(); + void DoMixing(u32 return_mail); + + std::pair ReadSampleMono8Bits() const; + std::pair ReadSampleStereo8Bits() const; + std::pair ReadSampleMono16Bits() const; + std::pair ReadSampleStereo16Bits() const; + std::pair ReadSampleMono8BitsUnsigned() const; + std::pair ReadSampleMono16BitsLittleEndian() const; + std::pair ReadSampleStereo8BitsUnsigned() const; + std::pair ReadSampleStereo16BitsLittleEndian() const; + + // Copied from libasnd/asndlib.c's t_sound_data + struct VoiceData + { + // output buffer 4096 bytes aligned to 32 + u32 out_buf; + // samples per delay to start (48000 == 1sec) + u32 delay_samples; + // 2008/2009 versions: (step<<16) | (loop<<2) | (type & 3) used in DSP side + // 2011/2020 versions: (step<<16) | (statuses<<8) | (type & 7) used in DSP side + u32 flags; + // internal addr counter + u32 start_addr; + // end voice physical pointer (bytes without alignament, but remember it reads in blocks of 32 + // bytes (use padding to the end)) + u32 end_addr; + // freq operation + u32 freq; + // internally used to store de last sample played + s16 left, right; + // internally used to convert freq to 48000Hz samples + u32 counter; + // volume (from 0 to 256) + u16 volume_l, volume_r; + // initial voice2 physical pointer (bytes aligned 32 bytes) (to do a ring) + u32 start_addr2; + // end voice2 physical pointer (bytes without alignament, but remember it reads in blocks of 32 + // bytes (use padding to the end)) + u32 end_addr2; + // volume (from 0 to 256) for voice 2 + u16 volume2_l, volume2_r; + // initial voice physical pointer backup (bytes aligned to 32 bytes): It is used for test + // pointers purpose + u32 backup_addr; + // voice tick counter - not used by DSP code + u32 tick_counter; + // callback - not used by DSP code + u32 cb; + u32 _pad; + }; + static_assert(sizeof(VoiceData) == sizeof(u16) * 0x20); + + bool m_next_command_is_voice_addr = false; + u32 m_voice_addr = 0; + + VoiceData m_current_voice{}; + + // Number of bytes in the input sample buffer. + static constexpr u32 INPUT_SAMPLE_BUFFER_SIZE_BYTES = 0x20; + // Mask used for addresses for the sample buffer - note that the sample buffer is also assumed to + // be 0x20-aligned in main memory. + static constexpr u32 INPUT_SAMPLE_BUFFER_BYTE_MASK = INPUT_SAMPLE_BUFFER_SIZE_BYTES - 1; + // The DSP itself operates on 16-bit words instead of individual bytes, meaning the size is 0x10. + static constexpr u32 INPUT_SAMPLE_BUFFER_SIZE_WORDS = INPUT_SAMPLE_BUFFER_SIZE_BYTES / 2; + // ... and thus uses a different mask of 0x0f. + static constexpr u32 INPUT_SAMPLE_BUFFER_WORD_MASK = INPUT_SAMPLE_BUFFER_SIZE_WORDS - 1; + // Lastly, the uCode actually allocates 0x20 words, not 0x10 words, for the sample buffer, + // but only the first 0x10 words are used except for an edge-case where they mask with 0xf and + // then add 1 in ReadSampleStereo16Bits and ReadSampleStereo16BitsLittleEndian - this results in + // index 0x10 possibly being read, which is otherwise unused (but this probably doesn't happen in + // practice, as it would require the buffer address starting at 2 instead of 0). We use the same + // oversized buffer to accurately emulate this behavior without actually reading invalid memory. + static constexpr u32 INPUT_SAMPLE_BUFFER_SIZE_WORDS_ACTUAL = INPUT_SAMPLE_BUFFER_SIZE_WORDS * 2; + + std::array m_input_sample_buffer{}; + + // Number of 16-bit stereo samples in the output buffer + static constexpr u32 NUM_OUTPUT_SAMPLES = 1024; + + std::array m_output_buffer{}; +}; +} // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 97a33a1f8b..892c67dad7 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -20,6 +20,7 @@ #include "Core/ConfigManager.h" #include "Core/DSP/DSPCodeUtil.h" #include "Core/HW/DSPHLE/DSPHLE.h" +#include "Core/HW/DSPHLE/UCodes/ASnd.h" #include "Core/HW/DSPHLE/UCodes/AX.h" #include "Core/HW/DSPHLE/UCodes/AXWii.h" #include "Core/HW/DSPHLE/UCodes/CARD.h" @@ -282,6 +283,13 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) INFO_LOG_FMT(DSPHLE, "CRC {:08x}: Wii - AXWii chosen", crc); return std::make_unique(dsphle, crc); + case 0x8d69a19b: + case 0xcc2fd441: + case 0xa81582e2: + case 0xdbbeeb61: + INFO_LOG_FMT(DSPHLE, "CRC {:08x}: ASnd chosen (Homebrew)", crc); + return std::make_unique(dsphle, crc); + default: if (wii) { diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index ea6c9705dc..c1635eb6fb 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -236,6 +236,7 @@ + @@ -836,6 +837,7 @@ + From 5d2290ba3cd078fa9b709ac3dd67121696c10a81 Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Fri, 24 Jun 2022 14:57:03 +1000 Subject: [PATCH 263/659] Removed unused variable MAX_MSGLEN in LogManager.cpp --- Source/Core/Common/Logging/LogManager.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Source/Core/Common/Logging/LogManager.cpp b/Source/Core/Common/Logging/LogManager.cpp index 04078fc06c..2fa86a11b2 100644 --- a/Source/Core/Common/Logging/LogManager.cpp +++ b/Source/Core/Common/Logging/LogManager.cpp @@ -23,8 +23,6 @@ namespace Common::Log { -constexpr size_t MAX_MSGLEN = 1024; - const Config::Info LOGGER_WRITE_TO_FILE{{Config::System::Logger, "Options", "WriteToFile"}, false}; const Config::Info LOGGER_WRITE_TO_CONSOLE{ From 1c90d836a5e8507773d37a7e0071aec3851c32ab Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sun, 1 May 2022 22:11:22 -0500 Subject: [PATCH 264/659] Externals: add spirv-cross using upstream commit 50b4d5389b6a06f86fb63a2848e1a7da6d9755ca Co-authored-by: tellowkrinkle --- .gitmodules | 5 +++ CMakeLists.txt | 1 + Externals/ExternalsReferenceAll.props | 3 ++ Externals/spirv_cross/CMakeLists.txt | 52 ++++++++++++++++++++++ Externals/spirv_cross/SPIRV-Cross | 1 + Externals/spirv_cross/spirv_cross.vcxproj | 53 +++++++++++++++++++++++ Source/VSProps/Base.props | 2 + Source/dolphin-emu.sln | 11 +++++ 8 files changed, 128 insertions(+) create mode 100644 Externals/spirv_cross/CMakeLists.txt create mode 160000 Externals/spirv_cross/SPIRV-Cross create mode 100644 Externals/spirv_cross/spirv_cross.vcxproj diff --git a/.gitmodules b/.gitmodules index 696e6e3d7e..01e2ced8b6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -18,3 +18,8 @@ url = https://github.com/libusb/libusb.git branch = master shallow = true +[submodule "Externals/spirv_cross/SPIRV-Cross"] + path = Externals/spirv_cross/SPIRV-Cross + url = https://github.com/KhronosGroup/SPIRV-Cross.git + branch = master + shallow = true diff --git a/CMakeLists.txt b/CMakeLists.txt index bf47e74185..ae835b0f39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -660,6 +660,7 @@ else() endif() add_subdirectory(Externals/imgui) add_subdirectory(Externals/glslang) +add_subdirectory(Externals/spirv_cross) if(ENABLE_VULKAN) add_definitions(-DHAS_VULKAN) diff --git a/Externals/ExternalsReferenceAll.props b/Externals/ExternalsReferenceAll.props index b74dc4d421..f3a19282e4 100644 --- a/Externals/ExternalsReferenceAll.props +++ b/Externals/ExternalsReferenceAll.props @@ -82,6 +82,9 @@ {ec082900-b4d8-42e9-9663-77f02f6936ae} + + {3d780617-ec8c-4721-b9fd-dfc9bb658c7c} + {677ea016-1182-440c-9345-dc88d1e98c0c} diff --git a/Externals/spirv_cross/CMakeLists.txt b/Externals/spirv_cross/CMakeLists.txt new file mode 100644 index 0000000000..522f8b5073 --- /dev/null +++ b/Externals/spirv_cross/CMakeLists.txt @@ -0,0 +1,52 @@ +set(SRCS + SPIRV-Cross/GLSL.std.450.h + SPIRV-Cross/spirv.h + SPIRV-Cross/spirv.hpp + SPIRV-Cross/spirv_cfg.cpp + SPIRV-Cross/spirv_cfg.hpp + SPIRV-Cross/spirv_common.hpp + SPIRV-Cross/spirv_cpp.cpp + SPIRV-Cross/spirv_cpp.hpp + SPIRV-Cross/spirv_cross.cpp + SPIRV-Cross/spirv_cross.hpp + SPIRV-Cross/spirv_cross_c.cpp + SPIRV-Cross/spirv_cross_c.h + SPIRV-Cross/spirv_cross_containers.hpp + SPIRV-Cross/spirv_cross_error_handling.hpp + SPIRV-Cross/spirv_cross_parsed_ir.cpp + SPIRV-Cross/spirv_cross_parsed_ir.hpp + SPIRV-Cross/spirv_cross_util.cpp + SPIRV-Cross/spirv_cross_util.hpp + SPIRV-Cross/spirv_glsl.cpp + SPIRV-Cross/spirv_glsl.hpp + SPIRV-Cross/spirv_hlsl.cpp + SPIRV-Cross/spirv_hlsl.hpp + SPIRV-Cross/spirv_msl.cpp + SPIRV-Cross/spirv_msl.hpp + SPIRV-Cross/spirv_parser.cpp + SPIRV-Cross/spirv_parser.hpp + SPIRV-Cross/spirv_reflect.cpp + SPIRV-Cross/spirv_reflect.hpp +) + +if(NOT MSVC) +# spirv_cross requires C++11 at a minimum to compile. +add_compile_options(-std=c++11) + +# Silence some warnings that occur frequently to reduce noise in build logs. +add_compile_options(-Wno-shadow) +add_compile_options(-Wno-reorder) +add_compile_options(-Wno-sign-compare) +add_compile_options(-Wno-parentheses) +add_compile_options(-Wno-unused-variable) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + add_compile_options(-Wno-unused-but-set-variable) +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + add_compile_options(-Wno-missing-variable-declarations) +endif() +endif() + +add_library(spirv_cross STATIC ${SRCS}) + +target_compile_definitions(spirv_cross PUBLIC SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS) +target_include_directories(spirv_cross PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross/include ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross) diff --git a/Externals/spirv_cross/SPIRV-Cross b/Externals/spirv_cross/SPIRV-Cross new file mode 160000 index 0000000000..50b4d5389b --- /dev/null +++ b/Externals/spirv_cross/SPIRV-Cross @@ -0,0 +1 @@ +Subproject commit 50b4d5389b6a06f86fb63a2848e1a7da6d9755ca diff --git a/Externals/spirv_cross/spirv_cross.vcxproj b/Externals/spirv_cross/spirv_cross.vcxproj new file mode 100644 index 0000000000..de93abda1b --- /dev/null +++ b/Externals/spirv_cross/spirv_cross.vcxproj @@ -0,0 +1,53 @@ + + + + + + {3d780617-ec8c-4721-b9fd-dfc9bb658c7c} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index aadace92ee..49f546d39f 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -38,6 +38,7 @@ $(ExternalsDir)fmt\include;%(AdditionalIncludeDirectories) $(ExternalsDir)GL;%(AdditionalIncludeDirectories) $(ExternalsDir)glslang;$(ExternalsDir)glslang\StandAlone;$(ExternalsDir)glslang\glslang\Public;$(ExternalsDir)glslang\SPIRV;%(AdditionalIncludeDirectories) + $(ExternalsDir)spirv_cross\SPIRV-Cross;%(AdditionalIncludeDirectories) $(ExternalsDir)imgui;%(AdditionalIncludeDirectories) $(ExternalsDir)liblzma\api;%(AdditionalIncludeDirectories) $(ExternalsDir)libpng;%(AdditionalIncludeDirectories) @@ -89,6 +90,7 @@ HAS_VULKAN;%(PreprocessorDefinitions) HAS_LIBMGBA;%(PreprocessorDefinitions) AUTOUPDATE=1;%(PreprocessorDefinitions) + SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS;%(PreprocessorDefinitions) diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index 853465535f..89df520d9b 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -79,6 +79,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mgba", "..\Externals\mGBA\m EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "..\Externals\fmt\fmt.vcxproj", "{4BC5A148-0AB3-440F-A980-A29B4B999190}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv_cross", "..\Externals\spirv_cross\spirv_cross.vcxproj", "{3d780617-ec8c-4721-b9fd-dfc9bb658c7c}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -379,6 +381,14 @@ Global {4BC5A148-0AB3-440F-A980-A29B4B999190}.Release|ARM64.Build.0 = Release|ARM64 {4BC5A148-0AB3-440F-A980-A29B4B999190}.Release|x64.ActiveCfg = Release|x64 {4BC5A148-0AB3-440F-A980-A29B4B999190}.Release|x64.Build.0 = Release|x64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Debug|ARM64.Build.0 = Debug|ARM64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Debug|x64.ActiveCfg = Debug|x64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Debug|x64.Build.0 = Debug|x64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|ARM64.ActiveCfg = Release|ARM64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|ARM64.Build.0 = Release|ARM64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|x64.ActiveCfg = Release|x64 + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -411,6 +421,7 @@ Global {1BEA10F3-80CE-4BC4-9331-5769372CDF99} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {864C4C8E-296D-3DBC-AD83-F1D5CB6E8EC6} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {4BC5A148-0AB3-440F-A980-A29B4B999190} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} + {3D780617-EC8C-4721-B9FD-DFC9BB658C7C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {64B0A343-3B94-4522-9C24-6937FE5EFB22} From 3790c99a7d1f6377166049c61bbe03f93e2c3a60 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 4 May 2022 00:40:59 -0500 Subject: [PATCH 265/659] VideoCommon: add common spirv helper functions Co-authored-by: tellowkrinkle --- Source/Core/DolphinLib.props | 2 + Source/Core/VideoCommon/CMakeLists.txt | 13 ++ Source/Core/VideoCommon/Spirv.cpp | 203 +++++++++++++++++++++++++ Source/Core/VideoCommon/Spirv.h | 30 ++++ 4 files changed, 248 insertions(+) create mode 100644 Source/Core/VideoCommon/Spirv.cpp create mode 100644 Source/Core/VideoCommon/Spirv.h diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index ea6c9705dc..8fcfad4353 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -650,6 +650,7 @@ + @@ -1224,6 +1225,7 @@ + diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index ec8f89c829..9751df621c 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -74,6 +74,8 @@ add_library(videocommon ShaderCache.h ShaderGenCommon.cpp ShaderGenCommon.h + Spirv.cpp + Spirv.h Statistics.cpp Statistics.h TextureCacheBase.cpp @@ -139,6 +141,7 @@ PRIVATE png xxhash imgui + glslang ) if(_M_X86) @@ -181,6 +184,16 @@ if(FFmpeg_FOUND) endif() endif() +# Silence warnings on glslang by flagging it as a system include +target_include_directories(videocommon +SYSTEM PUBLIC + ${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public +SYSTEM PRIVATE + ${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone + ${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV + ${CMAKE_SOURCE_DIR}/Externals/glslang +) + if(MSVC) # Add precompiled header target_link_libraries(videocommon PRIVATE use_pch) diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp new file mode 100644 index 0000000000..9819811367 --- /dev/null +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -0,0 +1,203 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/Spirv.h" + +// glslang includes +#include "GlslangToSpv.h" +#include "ResourceLimits.h" +#include "ShaderLang.h" +#include "disassemble.h" + +#include "Common/FileUtil.h" +#include "Common/Logging/Log.h" +#include "Common/MsgHandler.h" +#include "Common/StringUtil.h" +#include "Common/Version.h" + +#include "VideoCommon/VideoBackendBase.h" +#include "VideoCommon/VideoConfig.h" + +namespace +{ +bool InitializeGlslang() +{ + static bool glslang_initialized = false; + if (glslang_initialized) + return true; + + if (!glslang::InitializeProcess()) + { + PanicAlertFmt("Failed to initialize glslang shader compiler"); + return false; + } + + std::atexit([]() { glslang::FinalizeProcess(); }); + + glslang_initialized = true; + return true; +} + +const TBuiltInResource* GetCompilerResourceLimits() +{ + return &glslang::DefaultTBuiltInResource; +} + +std::optional +CompileShaderToSPV(EShLanguage stage, + std::optional language_version, + const char* stage_filename, std::string_view source) +{ + if (!InitializeGlslang()) + return std::nullopt; + + std::unique_ptr shader = std::make_unique(stage); + std::unique_ptr program; + glslang::TShader::ForbidIncluder includer; + EProfile profile = ECoreProfile; + EShMessages messages = static_cast(EShMsgDefault | EShMsgSpvRules); + int default_version = 450; + + const char* pass_source_code = source.data(); + int pass_source_code_length = static_cast(source.size()); + + if (language_version) + shader->setEnvTarget(glslang::EShTargetSpv, *language_version); + + shader->setStringsWithLengths(&pass_source_code, &pass_source_code_length, 1); + + auto DumpBadShader = [&](const char* msg) { + static int counter = 0; + std::string filename = VideoBackendBase::BadShaderFilename(stage_filename, counter++); + std::ofstream stream; + File::OpenFStream(stream, filename, std::ios_base::out); + if (stream.good()) + { + stream << source << std::endl; + stream << msg << std::endl; + stream << "Shader Info Log:" << std::endl; + stream << shader->getInfoLog() << std::endl; + stream << shader->getInfoDebugLog() << std::endl; + if (program) + { + stream << "Program Info Log:" << std::endl; + stream << program->getInfoLog() << std::endl; + stream << program->getInfoDebugLog() << std::endl; + } + } + + stream << "\n"; + stream << "Dolphin Version: " + Common::GetScmRevStr() + "\n"; + stream << "Video Backend: " + g_video_backend->GetDisplayName(); + stream.close(); + + PanicAlertFmt("{} (written to {})\nDebug info:\n{}", msg, filename, shader->getInfoLog()); + }; + + if (!shader->parse(GetCompilerResourceLimits(), default_version, profile, false, true, messages, + includer)) + { + DumpBadShader("Failed to parse shader"); + return std::nullopt; + } + + // Even though there's only a single shader, we still need to link it to generate SPV + program = std::make_unique(); + program->addShader(shader.get()); + if (!program->link(messages)) + { + DumpBadShader("Failed to link program"); + return std::nullopt; + } + + glslang::TIntermediate* intermediate = program->getIntermediate(stage); + if (!intermediate) + { + DumpBadShader("Failed to generate SPIR-V"); + return std::nullopt; + } + + SPIRV::CodeVector out_code; + spv::SpvBuildLogger logger; + glslang::SpvOptions options; + + if (g_ActiveConfig.bEnableValidationLayer) + { + // Attach the source code to the SPIR-V for tools like RenderDoc. + intermediate->addSourceText(pass_source_code, pass_source_code_length); + + options.generateDebugInfo = true; + options.disableOptimizer = true; + options.optimizeSize = false; + options.disassemble = false; + options.validate = true; + } + + glslang::GlslangToSpv(*intermediate, out_code, &logger, &options); + + // Write out messages + // Temporary: skip if it contains "Warning, version 450 is not yet complete; most version-specific + // features are present, but some are missing." + if (strlen(shader->getInfoLog()) > 108) + WARN_LOG_FMT(VIDEO, "Shader info log: {}", shader->getInfoLog()); + if (strlen(shader->getInfoDebugLog()) > 0) + WARN_LOG_FMT(VIDEO, "Shader debug info log: {}", shader->getInfoDebugLog()); + if (strlen(program->getInfoLog()) > 25) + WARN_LOG_FMT(VIDEO, "Program info log: {}", program->getInfoLog()); + if (strlen(program->getInfoDebugLog()) > 0) + WARN_LOG_FMT(VIDEO, "Program debug info log: {}", program->getInfoDebugLog()); + const std::string spv_messages = logger.getAllMessages(); + if (!spv_messages.empty()) + WARN_LOG_FMT(VIDEO, "SPIR-V conversion messages: {}", spv_messages); + + // Dump source code of shaders out to file if enabled. + if (g_ActiveConfig.iLog & CONF_SAVESHADERS) + { + static int counter = 0; + std::string filename = StringFromFormat("%s%s_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), + stage_filename, counter++); + + std::ofstream stream; + File::OpenFStream(stream, filename, std::ios_base::out); + if (stream.good()) + { + stream << source << std::endl; + stream << "Shader Info Log:" << std::endl; + stream << shader->getInfoLog() << std::endl; + stream << shader->getInfoDebugLog() << std::endl; + stream << "Program Info Log:" << std::endl; + stream << program->getInfoLog() << std::endl; + stream << program->getInfoDebugLog() << std::endl; + stream << "SPIR-V conversion messages: " << std::endl; + stream << spv_messages; + stream << "SPIR-V:" << std::endl; + spv::Disassemble(stream, out_code); + } + } + + return out_code; +} +} // namespace + +namespace SPIRV +{ +std::optional CompileVertexShader(std::string_view source_code) +{ + return CompileShaderToSPV(EShLangVertex, std::nullopt, "vs", source_code); +} + +std::optional CompileGeometryShader(std::string_view source_code) +{ + return CompileShaderToSPV(EShLangGeometry, std::nullopt, "gs", source_code); +} + +std::optional CompileFragmentShader(std::string_view source_code) +{ + return CompileShaderToSPV(EShLangFragment, std::nullopt, "ps", source_code); +} + +std::optional CompileComputeShader(std::string_view source_code) +{ + return CompileShaderToSPV(EShLangCompute, std::nullopt, "cs", source_code); +} +} // namespace SPIRV diff --git a/Source/Core/VideoCommon/Spirv.h b/Source/Core/VideoCommon/Spirv.h new file mode 100644 index 0000000000..81d1917eeb --- /dev/null +++ b/Source/Core/VideoCommon/Spirv.h @@ -0,0 +1,30 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include + +#include "Common/CommonTypes.h" + +namespace SPIRV +{ +// SPIR-V compiled code type +using CodeType = u32; +using CodeVector = std::vector; + +// Compile a vertex shader to SPIR-V. +std::optional CompileVertexShader(std::string_view source_code); + +// Compile a geometry shader to SPIR-V. +std::optional CompileGeometryShader(std::string_view source_code); + +// Compile a fragment shader to SPIR-V. +std::optional CompileFragmentShader(std::string_view source_code); + +// Compile a compute shader to SPIR-V. +std::optional CompileComputeShader(std::string_view source_code); +} // namespace SPIRV From 5dd2704416385946fbdd80b38c01b0f9d7735648 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 4 May 2022 00:41:34 -0500 Subject: [PATCH 266/659] D3D / VideoCommon: generate HLSL from SPIRV --- .../D3D/D3DNativeVertexFormat.cpp | 17 +- Source/Core/VideoBackends/D3D/D3DState.cpp | 1 + .../VideoBackends/D3D12/D3D12Renderer.cpp | 2 + .../Core/VideoBackends/D3D12/DX12Context.cpp | 4 +- Source/Core/VideoBackends/D3D12/DX12Context.h | 1 + .../VideoBackends/D3D12/DX12VertexFormat.cpp | 11 +- .../VideoBackends/D3DCommon/CMakeLists.txt | 1 + .../Core/VideoBackends/D3DCommon/Shader.cpp | 154 ++++++- .../Core/VideoCommon/FramebufferShaderGen.cpp | 120 +----- Source/Core/VideoCommon/GeometryShaderGen.cpp | 11 +- Source/Core/VideoCommon/PixelShaderGen.cpp | 401 ++++++------------ Source/Core/VideoCommon/PostProcessing.cpp | 86 +--- Source/Core/VideoCommon/ShaderGenCommon.cpp | 113 +++-- Source/Core/VideoCommon/ShaderGenCommon.h | 67 +-- .../VideoCommon/TextureConversionShader.cpp | 161 ++----- .../VideoCommon/TextureConverterShaderGen.cpp | 95 ++--- Source/Core/VideoCommon/UberShaderCommon.cpp | 3 +- Source/Core/VideoCommon/UberShaderPixel.cpp | 270 +++++------- Source/Core/VideoCommon/UberShaderVertex.cpp | 174 ++++---- Source/Core/VideoCommon/VertexShaderGen.cpp | 209 ++++----- 20 files changed, 780 insertions(+), 1121 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/D3DNativeVertexFormat.cpp b/Source/Core/VideoBackends/D3D/D3DNativeVertexFormat.cpp index b4da7fc354..08ed40353c 100644 --- a/Source/Core/VideoBackends/D3D/D3DNativeVertexFormat.cpp +++ b/Source/Core/VideoBackends/D3D/D3DNativeVertexFormat.cpp @@ -106,7 +106,8 @@ D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& vtx_decl) const AttributeFormat* format = &vtx_decl.position; if (format->enable) { - m_elems[m_num_elems].SemanticName = "POSITION"; + m_elems[m_num_elems].SemanticName = "TEXCOORD"; + m_elems[m_num_elems].SemanticIndex = SHADER_POSITION_ATTRIB; m_elems[m_num_elems].AlignedByteOffset = format->offset; m_elems[m_num_elems].Format = VarToD3D(format->type, format->components, format->integer); m_elems[m_num_elems].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; @@ -115,12 +116,11 @@ D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& vtx_decl) for (int i = 0; i < 3; i++) { - static constexpr std::array NAMES = {"NORMAL", "TANGENT", "BINORMAL"}; format = &vtx_decl.normals[i]; if (format->enable) { - m_elems[m_num_elems].SemanticName = NAMES[i]; - m_elems[m_num_elems].SemanticIndex = 0; + m_elems[m_num_elems].SemanticName = "TEXCOORD"; + m_elems[m_num_elems].SemanticIndex = SHADER_NORMAL_ATTRIB + i; m_elems[m_num_elems].AlignedByteOffset = format->offset; m_elems[m_num_elems].Format = VarToD3D(format->type, format->components, format->integer); m_elems[m_num_elems].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; @@ -133,8 +133,8 @@ D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& vtx_decl) format = &vtx_decl.colors[i]; if (format->enable) { - m_elems[m_num_elems].SemanticName = "COLOR"; - m_elems[m_num_elems].SemanticIndex = i; + m_elems[m_num_elems].SemanticName = "TEXCOORD"; + m_elems[m_num_elems].SemanticIndex = SHADER_COLOR0_ATTRIB + i; m_elems[m_num_elems].AlignedByteOffset = format->offset; m_elems[m_num_elems].Format = VarToD3D(format->type, format->components, format->integer); m_elems[m_num_elems].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; @@ -148,7 +148,7 @@ D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& vtx_decl) if (format->enable) { m_elems[m_num_elems].SemanticName = "TEXCOORD"; - m_elems[m_num_elems].SemanticIndex = i; + m_elems[m_num_elems].SemanticIndex = SHADER_TEXTURE0_ATTRIB + i; m_elems[m_num_elems].AlignedByteOffset = format->offset; m_elems[m_num_elems].Format = VarToD3D(format->type, format->components, format->integer); m_elems[m_num_elems].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; @@ -159,7 +159,8 @@ D3DVertexFormat::D3DVertexFormat(const PortableVertexDeclaration& vtx_decl) format = &vtx_decl.posmtx; if (format->enable) { - m_elems[m_num_elems].SemanticName = "BLENDINDICES"; + m_elems[m_num_elems].SemanticName = "TEXCOORD"; + m_elems[m_num_elems].SemanticIndex = SHADER_POSMTX_ATTRIB; m_elems[m_num_elems].AlignedByteOffset = format->offset; m_elems[m_num_elems].Format = VarToD3D(format->type, format->components, format->integer); m_elems[m_num_elems].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; diff --git a/Source/Core/VideoBackends/D3D/D3DState.cpp b/Source/Core/VideoBackends/D3D/D3DState.cpp index 9a568ae6e4..5712f6fd3c 100644 --- a/Source/Core/VideoBackends/D3D/D3DState.cpp +++ b/Source/Core/VideoBackends/D3D/D3DState.cpp @@ -76,6 +76,7 @@ void StateManager::Apply() if (m_current.vertexConstants != m_pending.vertexConstants) { D3D::context->VSSetConstantBuffers(0, 1, &m_pending.vertexConstants); + D3D::context->VSSetConstantBuffers(1, 1, &m_pending.vertexConstants); m_current.vertexConstants = m_pending.vertexConstants; } diff --git a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp index ece8f14d88..d4eb207a45 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp +++ b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp @@ -578,6 +578,8 @@ bool Renderer::ApplyState() { cmdlist->SetGraphicsRootConstantBufferView(ROOT_PARAMETER_VS_CBV, m_state.constant_buffers[1]); + cmdlist->SetGraphicsRootConstantBufferView(ROOT_PARAMETER_VS_CBV2, + m_state.constant_buffers[1]); if (g_ActiveConfig.bEnablePixelLighting) { diff --git a/Source/Core/VideoBackends/D3D12/DX12Context.cpp b/Source/Core/VideoBackends/D3D12/DX12Context.cpp index cc6fb72adc..e3ff8a7417 100644 --- a/Source/Core/VideoBackends/D3D12/DX12Context.cpp +++ b/Source/Core/VideoBackends/D3D12/DX12Context.cpp @@ -323,7 +323,7 @@ bool DXContext::CreateRootSignatures() bool DXContext::CreateGXRootSignature() { // GX: - // - 3 constant buffers (bindings 0-2), 0/1 visible in PS, 1 visible in VS, 2 visible in GS. + // - 3 constant buffers (bindings 0-2), 0/1 visible in PS, 2 visible in VS, 1 visible in GS. // - 8 textures (visible in PS). // - 8 samplers (visible in PS). // - 1 UAV (visible in PS). @@ -341,6 +341,8 @@ bool DXContext::CreateGXRootSignature() param_count++; SetRootParamCBV(¶ms[param_count], 0, D3D12_SHADER_VISIBILITY_VERTEX); param_count++; + SetRootParamCBV(¶ms[param_count], 1, D3D12_SHADER_VISIBILITY_VERTEX); + param_count++; SetRootParamCBV(¶ms[param_count], 0, D3D12_SHADER_VISIBILITY_GEOMETRY); param_count++; diff --git a/Source/Core/VideoBackends/D3D12/DX12Context.h b/Source/Core/VideoBackends/D3D12/DX12Context.h index 4c5464a123..d1c5b38798 100644 --- a/Source/Core/VideoBackends/D3D12/DX12Context.h +++ b/Source/Core/VideoBackends/D3D12/DX12Context.h @@ -25,6 +25,7 @@ enum ROOT_PARAMETER ROOT_PARAMETER_PS_SRV, ROOT_PARAMETER_PS_SAMPLERS, ROOT_PARAMETER_VS_CBV, + ROOT_PARAMETER_VS_CBV2, ROOT_PARAMETER_GS_CBV, ROOT_PARAMETER_PS_UAV_OR_CBV2, ROOT_PARAMETER_PS_CBV2, // ROOT_PARAMETER_PS_UAV_OR_CBV2 if bbox is not enabled diff --git a/Source/Core/VideoBackends/D3D12/DX12VertexFormat.cpp b/Source/Core/VideoBackends/D3D12/DX12VertexFormat.cpp index 2d1a3028e0..77082c091a 100644 --- a/Source/Core/VideoBackends/D3D12/DX12VertexFormat.cpp +++ b/Source/Core/VideoBackends/D3D12/DX12VertexFormat.cpp @@ -83,7 +83,7 @@ void DXVertexFormat::MapAttributes() if (m_decl.position.enable) { AddAttribute( - "POSITION", 0, 0, + "TEXCOORD", SHADER_POSITION_ATTRIB, 0, VarToDXGIFormat(m_decl.position.type, m_decl.position.components, m_decl.position.integer), m_decl.position.offset); } @@ -92,8 +92,7 @@ void DXVertexFormat::MapAttributes() { if (m_decl.normals[i].enable) { - static constexpr std::array NAMES = {"NORMAL", "TANGENT", "BINORMAL"}; - AddAttribute(NAMES[i], 0, 0, + AddAttribute("TEXCOORD", SHADER_NORMAL_ATTRIB + i, 0, VarToDXGIFormat(m_decl.normals[i].type, m_decl.normals[i].components, m_decl.normals[i].integer), m_decl.normals[i].offset); @@ -104,7 +103,7 @@ void DXVertexFormat::MapAttributes() { if (m_decl.colors[i].enable) { - AddAttribute("COLOR", i, 0, + AddAttribute("TEXCOORD", SHADER_COLOR0_ATTRIB + i, 0, VarToDXGIFormat(m_decl.colors[i].type, m_decl.colors[i].components, m_decl.colors[i].integer), m_decl.colors[i].offset); @@ -115,7 +114,7 @@ void DXVertexFormat::MapAttributes() { if (m_decl.texcoords[i].enable) { - AddAttribute("TEXCOORD", i, 0, + AddAttribute("TEXCOORD", SHADER_TEXTURE0_ATTRIB + i, 0, VarToDXGIFormat(m_decl.texcoords[i].type, m_decl.texcoords[i].components, m_decl.texcoords[i].integer), m_decl.texcoords[i].offset); @@ -125,7 +124,7 @@ void DXVertexFormat::MapAttributes() if (m_decl.posmtx.enable) { AddAttribute( - "BLENDINDICES", 0, 0, + "TEXCOORD", SHADER_POSMTX_ATTRIB, 0, VarToDXGIFormat(m_decl.posmtx.type, m_decl.posmtx.components, m_decl.posmtx.integer), m_decl.posmtx.offset); } diff --git a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt index e4e586e47a..90464c72e7 100644 --- a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt +++ b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt @@ -11,6 +11,7 @@ target_link_libraries(videod3dcommon PUBLIC common videocommon + spirv_cross ) if(MSVC) diff --git a/Source/Core/VideoBackends/D3DCommon/Shader.cpp b/Source/Core/VideoBackends/D3DCommon/Shader.cpp index 0d7c84b8e0..236efb77e7 100644 --- a/Source/Core/VideoBackends/D3DCommon/Shader.cpp +++ b/Source/Core/VideoBackends/D3DCommon/Shader.cpp @@ -4,7 +4,13 @@ #include "VideoBackends/D3DCommon/Shader.h" #include +#include +#include + +#include #include +#include "disassemble.h" +#include "spirv_hlsl.hpp" #include "Common/Assert.h" #include "Common/FileUtil.h" @@ -14,9 +20,141 @@ #include "Common/StringUtil.h" #include "Common/Version.h" +#include "VideoCommon/Spirv.h" #include "VideoCommon/VideoBackendBase.h" #include "VideoCommon/VideoConfig.h" +namespace +{ +// Regarding the UBO bind points, we subtract one from the binding index because +// the OpenGL backend requires UBO #0 for non-block uniforms (at least on NV). +// This allows us to share the same shaders but use bind point #0 in the D3D +// backends. None of the specific shaders use UBOs, instead they use push +// constants, so when/if the GL backend moves to uniform blocks completely this +// subtraction can be removed. +constexpr std::string_view SHADER_HEADER = R"( + // Target GLSL 4.5. + #version 450 core + #define ATTRIBUTE_LOCATION(x) layout(location = x) + #define FRAGMENT_OUTPUT_LOCATION(x) layout(location = x) + #define FRAGMENT_OUTPUT_LOCATION_INDEXED(x, y) layout(location = x, index = y) + #define UBO_BINDING(packing, x) layout(packing, binding = (x - 1)) + #define SAMPLER_BINDING(x) layout(binding = x) + #define TEXEL_BUFFER_BINDING(x) layout(binding = x) + #define SSBO_BINDING(x) layout(binding = (x + 2)) + #define VARYING_LOCATION(x) layout(location = x) + #define FORCE_EARLY_Z layout(early_fragment_tests) in + + // hlsl to glsl function translation + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define uint2 uvec2 + #define uint3 uvec3 + #define uint4 uvec4 + #define int2 ivec2 + #define int3 ivec3 + #define int4 ivec4 + #define frac fract + #define lerp mix + + #define API_D3D 1 +)"; +constexpr std::string_view COMPUTE_SHADER_HEADER = R"( + // Target GLSL 4.5. + #version 450 core + // All resources are packed into one descriptor set for compute. + #define UBO_BINDING(packing, x) layout(packing, binding = (x - 1)) + #define SAMPLER_BINDING(x) layout(binding = x) + #define TEXEL_BUFFER_BINDING(x) layout(binding = x) + #define IMAGE_BINDING(format, x) layout(format, binding = x) + + // hlsl to glsl function translation + #define float2 vec2 + #define float3 vec3 + #define float4 vec4 + #define uint2 uvec2 + #define uint3 uvec3 + #define uint4 uvec4 + #define int2 ivec2 + #define int3 ivec3 + #define int4 ivec4 + #define frac fract + #define lerp mix + + #define API_D3D 1 +)"; + +std::optional GetHLSLFromSPIRV(SPIRV::CodeVector spv, D3D_FEATURE_LEVEL feature_level) +{ + spirv_cross::CompilerHLSL::Options options; + switch (feature_level) + { + case D3D_FEATURE_LEVEL_10_0: + options.shader_model = 40; + break; + case D3D_FEATURE_LEVEL_10_1: + options.shader_model = 41; + break; + default: + options.shader_model = 50; + break; + }; + + spirv_cross::CompilerHLSL compiler(std::move(spv)); + compiler.set_hlsl_options(options); + + return compiler.compile(); +} + +std::optional GetSpirv(ShaderStage stage, std::string_view source) +{ + switch (stage) + { + case ShaderStage::Vertex: + { + const auto full_source = fmt::format("{}{}", SHADER_HEADER, source); + return SPIRV::CompileVertexShader(full_source); + } + + case ShaderStage::Geometry: + { + // Spirv cross does not currently support hlsl geometry shaders + return std::nullopt; + } + + case ShaderStage::Pixel: + { + const auto full_source = fmt::format("{}{}", SHADER_HEADER, source); + return SPIRV::CompileFragmentShader(full_source); + } + + case ShaderStage::Compute: + { + const auto full_source = fmt::format("{}{}", COMPUTE_SHADER_HEADER, source); + return SPIRV::CompileComputeShader(full_source); + } + }; + + return std::nullopt; +} + +std::optional GetHLSL(D3D_FEATURE_LEVEL feature_level, ShaderStage stage, + std::string_view source) +{ + if (stage == ShaderStage::Geometry) + { + return std::string{source}; + } + else if (const auto spirv = GetSpirv(stage, source)) + { + return GetHLSLFromSPIRV(std::move(*spirv), feature_level); + } + + return std::nullopt; +} +} // namespace + namespace D3DCommon { Shader::Shader(ShaderStage stage, BinaryData bytecode) @@ -95,6 +233,10 @@ static const char* GetCompileTarget(D3D_FEATURE_LEVEL feature_level, ShaderStage std::optional Shader::CompileShader(D3D_FEATURE_LEVEL feature_level, ShaderStage stage, std::string_view source) { + const auto hlsl = GetHLSL(feature_level, stage, source); + if (!hlsl) + return std::nullopt; + static constexpr D3D_SHADER_MACRO macros[] = {{"API_D3D", "1"}, {nullptr, nullptr}}; const UINT flags = g_ActiveConfig.bEnableValidationLayer ? (D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION) : @@ -103,7 +245,7 @@ std::optional Shader::CompileShader(D3D_FEATURE_LEVEL featur Microsoft::WRL::ComPtr code; Microsoft::WRL::ComPtr errors; - HRESULT hr = d3d_compile(source.data(), source.size(), nullptr, macros, nullptr, "main", target, + HRESULT hr = d3d_compile(hlsl->data(), hlsl->size(), nullptr, macros, nullptr, "main", target, flags, 0, &code, &errors); if (FAILED(hr)) { @@ -111,12 +253,20 @@ std::optional Shader::CompileShader(D3D_FEATURE_LEVEL featur std::string filename = VideoBackendBase::BadShaderFilename(target, num_failures++); std::ofstream file; File::OpenFStream(file, filename, std::ios_base::out); - file.write(source.data(), source.size()); + file.write(hlsl->data(), hlsl->size()); file << "\n"; file.write(static_cast(errors->GetBufferPointer()), errors->GetBufferSize()); file << "\n"; file << "Dolphin Version: " + Common::GetScmRevStr() + "\n"; file << "Video Backend: " + g_video_backend->GetDisplayName(); + + if (const auto spirv = GetSpirv(stage, source)) + { + file << "\nOriginal Source: \n"; + file << source << std::endl; + file << "SPIRV: \n"; + spv::Disassemble(file, *spirv); + } file.close(); PanicAlertFmt("Failed to compile {}: {}\nDebug info ({}):\n{}", filename, Common::HRWrap(hr), diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.cpp b/Source/Core/VideoCommon/FramebufferShaderGen.cpp index d047167e29..40949f34aa 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.cpp +++ b/Source/Core/VideoCommon/FramebufferShaderGen.cpp @@ -25,10 +25,7 @@ APIType GetAPIType() void EmitUniformBufferDeclaration(ShaderCode& code) { - if (GetAPIType() == APIType::D3D) - code.Write("cbuffer PSBlock : register(b0)\n"); - else - code.Write("UBO_BINDING(std140, 1) uniform PSBlock\n"); + code.Write("UBO_BINDING(std140, 1) uniform PSBlock\n"); } void EmitSamplerDeclarations(ShaderCode& code, u32 start = 0, u32 end = 1, @@ -37,17 +34,6 @@ void EmitSamplerDeclarations(ShaderCode& code, u32 start = 0, u32 end = 1, switch (GetAPIType()) { case APIType::D3D: - { - const char* array_type = multisampled ? "Texture2DMSArray" : "Texture2DArray"; - - for (u32 i = start; i < end; i++) - { - code.Write("{} tex{} : register(t{});\n", array_type, i, i); - code.Write("SamplerState samp{} : register(s{});\n", i, i); - } - } - break; - case APIType::OpenGL: case APIType::Vulkan: { @@ -69,9 +55,6 @@ void EmitSampleTexture(ShaderCode& code, u32 n, std::string_view coords) switch (GetAPIType()) { case APIType::D3D: - code.Write("tex{}.Sample(samp{}, {})", n, n, coords); - break; - case APIType::OpenGL: case APIType::Vulkan: code.Write("texture(samp{}, {})", n, coords); @@ -89,9 +72,6 @@ void EmitTextureLoad(ShaderCode& code, u32 n, std::string_view coords) switch (GetAPIType()) { case APIType::D3D: - code.Write("tex{}.Load({})", n, coords); - break; - case APIType::OpenGL: case APIType::Vulkan: code.Write("texelFetch(samp{}, ({}).xyz, ({}).w)", n, coords, coords); @@ -109,23 +89,6 @@ void EmitVertexMainDeclaration(ShaderCode& code, u32 num_tex_inputs, u32 num_col switch (GetAPIType()) { case APIType::D3D: - { - code.Write("void main("); - for (u32 i = 0; i < num_tex_inputs; i++) - code.Write("in float3 rawtex{} : TEXCOORD{}, ", i, i); - for (u32 i = 0; i < num_color_inputs; i++) - code.Write("in float4 rawcolor{} : COLOR{}, ", i, i); - if (position_input) - code.Write("in float4 rawpos : POSITION, "); - code.Write("{}", extra_inputs); - for (u32 i = 0; i < num_tex_outputs; i++) - code.Write("out float3 v_tex{} : TEXCOORD{}, ", i, i); - for (u32 i = 0; i < num_color_outputs; i++) - code.Write("out float4 v_col{} : COLOR{}, ", i, i); - code.Write("out float4 opos : SV_Position)\n"); - } - break; - case APIType::OpenGL: case APIType::Vulkan: { @@ -175,18 +138,6 @@ void EmitPixelMainDeclaration(ShaderCode& code, u32 num_tex_inputs, u32 num_colo switch (GetAPIType()) { case APIType::D3D: - { - code.Write("void main("); - for (u32 i = 0; i < num_tex_inputs; i++) - code.Write("in float3 v_tex{} : TEXCOORD{}, ", i, i); - for (u32 i = 0; i < num_color_inputs; i++) - code.Write("in float4 v_col{} : COLOR{}, ", i, i); - if (emit_frag_coord) - code.Write("in float4 frag_coord : SV_Position, "); - code.Write("{}out {} ocol0 : SV_Target)\n", extra_vars, output_type); - } - break; - case APIType::OpenGL: case APIType::Vulkan: { @@ -225,8 +176,8 @@ std::string GenerateScreenQuadVertexShader() { ShaderCode code; EmitVertexMainDeclaration(code, 0, 0, false, 1, 0, - GetAPIType() == APIType::D3D ? "in uint id : SV_VertexID, " : - "#define id gl_VertexID\n"); + + "#define id gl_VertexID\n"); code.Write( "{{\n" " v_tex0 = float3(float((id << 1) & 2), float(id & 2), 0.0f);\n" @@ -251,7 +202,7 @@ std::string GeneratePassthroughGeometryShader(u32 num_tex, u32 num_colors) for (u32 i = 0; i < num_tex; i++) code.Write(" float3 tex{} : TEXCOORD{};\n", i, i); for (u32 i = 0; i < num_colors; i++) - code.Write(" float4 color{} : COLOR{};\n", i, i); + code.Write(" float4 color{} : TEXCOORD{};\n", i, i + num_tex); code.Write(" float4 position : SV_Position;\n" "}};\n"); @@ -260,7 +211,7 @@ std::string GeneratePassthroughGeometryShader(u32 num_tex, u32 num_colors) for (u32 i = 0; i < num_tex; i++) code.Write(" float3 tex{} : TEXCOORD{};\n", i, i); for (u32 i = 0; i < num_colors; i++) - code.Write(" float4 color{} : COLOR{};\n", i, i); + code.Write(" float4 color{} : TEXCOORD{};\n", i, i + num_tex); code.Write(" float4 position : SV_Position;\n" " uint slice : SV_RenderTargetArrayIndex;\n" "}};\n\n"); @@ -343,8 +294,8 @@ std::string GenerateTextureCopyVertexShader() "}};\n\n"); EmitVertexMainDeclaration(code, 0, 0, false, 1, 0, - GetAPIType() == APIType::D3D ? "in uint id : SV_VertexID, " : - "#define id gl_VertexID"); + + "#define id gl_VertexID"); code.Write("{{\n" " v_tex0 = float3(float((id << 1) & 2), float(id & 2), 0.0f);\n" " opos = float4(v_tex0.xy * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f), 0.0f, 1.0f);\n" @@ -386,25 +337,15 @@ std::string GenerateResolveDepthPixelShader(u32 samples) { ShaderCode code; EmitSamplerDeclarations(code, 0, 1, true); - EmitPixelMainDeclaration(code, 1, 0, "float", - GetAPIType() == APIType::D3D ? "in float4 ipos : SV_Position, " : ""); + EmitPixelMainDeclaration(code, 1, 0, "float", ""); code.Write("{{\n" " int layer = int(v_tex0.z);\n"); - if (GetAPIType() == APIType::D3D) - code.Write(" int3 coords = int3(int2(ipos.xy), layer);\n"); - else - code.Write(" int3 coords = int3(int2(gl_FragCoord.xy), layer);\n"); + code.Write(" int3 coords = int3(int2(gl_FragCoord.xy), layer);\n"); // Take the minimum of all depth samples. - if (GetAPIType() == APIType::D3D) - code.Write(" ocol0 = tex0.Load(coords, 0).r;\n"); - else - code.Write(" ocol0 = texelFetch(samp0, coords, 0).r;\n"); + code.Write(" ocol0 = texelFetch(samp0, coords, 0).r;\n"); code.Write(" for (int i = 1; i < {}; i++)\n", samples); - if (GetAPIType() == APIType::D3D) - code.Write(" ocol0 = min(ocol0, tex0.Load(coords, i).r);\n"); - else - code.Write(" ocol0 = min(ocol0, texelFetch(samp0, coords, i).r);\n"); + code.Write(" ocol0 = min(ocol0, texelFetch(samp0, coords, i).r);\n"); code.Write("}}\n"); return code.GetBuffer(); @@ -420,8 +361,8 @@ std::string GenerateClearVertexShader() "}};\n"); EmitVertexMainDeclaration(code, 0, 0, false, 0, 1, - GetAPIType() == APIType::D3D ? "in uint id : SV_VertexID, " : - "#define id gl_VertexID\n"); + + "#define id gl_VertexID\n"); code.Write( "{{\n" " float2 coord = float2(float((id << 1) & 2), float(id & 2));\n" @@ -459,45 +400,29 @@ std::string GenerateFormatConversionShader(EFBReinterpretType convtype, u32 samp { ShaderCode code; EmitSamplerDeclarations(code, 0, 1, samples > 1); - EmitPixelMainDeclaration( - code, 1, 0, "float4", - GetAPIType() == APIType::D3D ? - (g_ActiveConfig.bSSAA ? - "in float4 ipos : SV_Position, in uint isample : SV_SampleIndex, " : - "in float4 ipos : SV_Position, ") : - ""); + EmitPixelMainDeclaration(code, 1, 0, "float4", + + ""); code.Write("{{\n" " int layer = int(v_tex0.z);\n"); - if (GetAPIType() == APIType::D3D) - code.Write(" int3 coords = int3(int2(ipos.xy), layer);\n"); - else - code.Write(" int3 coords = int3(int2(gl_FragCoord.xy), layer);\n"); + code.Write(" int3 coords = int3(int2(gl_FragCoord.xy), layer);\n"); if (samples == 1) { // No MSAA at all. - if (GetAPIType() == APIType::D3D) - code.Write(" float4 val = tex0.Load(int4(coords, 0));\n"); - else - code.Write(" float4 val = texelFetch(samp0, coords, 0);\n"); + code.Write(" float4 val = texelFetch(samp0, coords, 0);\n"); } else if (g_ActiveConfig.bSSAA) { // Sample shading, shader runs once per sample - if (GetAPIType() == APIType::D3D) - code.Write(" float4 val = tex0.Load(coords, isample);"); - else - code.Write(" float4 val = texelFetch(samp0, coords, gl_SampleID);"); + code.Write(" float4 val = texelFetch(samp0, coords, gl_SampleID);"); } else { // MSAA without sample shading, average out all samples. code.Write(" float4 val = float4(0.0f, 0.0f, 0.0f, 0.0f);\n"); code.Write(" for (int i = 0; i < {}; i++)\n", samples); - if (GetAPIType() == APIType::D3D) - code.Write(" val += tex0.Load(coords, i);\n"); - else - code.Write(" val += texelFetch(samp0, coords, i);\n"); + code.Write(" val += texelFetch(samp0, coords, i);\n"); code.Write(" val /= float({});\n", samples); } @@ -689,13 +614,12 @@ std::string GenerateEFBRestorePixelShader() { ShaderCode code; EmitSamplerDeclarations(code, 0, 2, false); - EmitPixelMainDeclaration(code, 1, 0, "float4", - GetAPIType() == APIType::D3D ? "out float depth : SV_Depth, " : ""); + EmitPixelMainDeclaration(code, 1, 0, "float4", ""); code.Write("{{\n" " ocol0 = "); EmitSampleTexture(code, 0, "v_tex0"); code.Write(";\n"); - code.Write(" {} = ", GetAPIType() == APIType::D3D ? "depth" : "gl_FragDepth"); + code.Write(" gl_FragDepth = "); EmitSampleTexture(code, 1, "v_tex0"); code.Write(".r;\n" "}}\n"); diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 150354e4f3..997e809860 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -103,7 +103,8 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& "}};\n"); out.Write("struct VS_OUTPUT {{\n"); - GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, ""); + GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, "", + ShaderStage::Geometry); out.Write("}};\n"); if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) @@ -113,12 +114,14 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& out.Write("VARYING_LOCATION(0) in VertexData {{\n"); GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, true)); + GetInterpolationQualifier(msaa, ssaa, true, true), + ShaderStage::Geometry); out.Write("}} vs[{}];\n", vertex_in); out.Write("VARYING_LOCATION(0) out VertexData {{\n"); GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, false)); + GetInterpolationQualifier(msaa, ssaa, true, false), + ShaderStage::Geometry); if (stereo) out.Write("\tflat int layer;\n"); @@ -134,6 +137,7 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& if (stereo) out.Write("\tuint layer : SV_RenderTargetArrayIndex;\n"); + out.Write("\tfloat4 posout : SV_Position;\n"); out.Write("}};\n"); @@ -344,6 +348,7 @@ static void EmitVertex(ShaderCode& out, const ShaderHostConfig& host_config, else { out.Write("\tps.o = {};\n", vertex); + out.Write("\tps.posout = {}.pos;\n", vertex); } if (stereo) diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 950763f5d8..11ac3a0c1a 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -379,23 +379,10 @@ void WritePixelShaderCommonHeader(ShaderCode& out, APIType api_type, "int3 iround(float3 x) {{ return int3(round(x)); }}\n" "int4 iround(float4 x) {{ return int4(round(x)); }}\n\n"); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp[8];\n"); - } - else // D3D - { - // Declare samplers - out.Write("SamplerState samp[8] : register(s0);\n" - "\n" - "Texture2DArray tex[8] : register(t0);\n"); - } + out.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp[8];\n"); out.Write("\n"); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n"); - else - out.Write("cbuffer PSBlock : register(b0) {{\n"); + out.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n"); out.Write("\tint4 " I_COLORS "[4];\n" "\tint4 " I_KCOLORS "[4];\n" @@ -445,10 +432,7 @@ void WritePixelShaderCommonHeader(ShaderCode& out, APIType api_type, { out.Write("{}", s_lighting_struct); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); - else - out.Write("cbuffer VSBlock : register(b1) {{\n"); + out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); out.Write("{}", s_shader_uniforms); out.Write("}};\n"); @@ -456,18 +440,9 @@ void WritePixelShaderCommonHeader(ShaderCode& out, APIType api_type, if (bounding_box) { - if (api_type == APIType::D3D) - { - out.Write("globallycoherent RWBuffer bbox_data : register(u2);\n" - "#define atomicMin InterlockedMin\n" - "#define atomicMax InterlockedMax"); - } - else - { - out.Write("SSBO_BINDING(0) buffer BBox {{\n" - " int bbox_data[4];\n" - "}};"); - } + out.Write("SSBO_BINDING(0) buffer BBox {{\n" + " int bbox_data[4];\n" + "}};"); out.Write(R"( #define bbox_left bbox_data[0] @@ -535,24 +510,12 @@ void UpdateBoundingBox(float2 rawpos) {{ if (host_config.manual_texture_sampling) { - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write(R"( + out.Write(R"( int4 readTexture(in sampler2DArray tex, uint u, uint v, int layer, int lod) {{ return iround(texelFetch(tex, int3(u, v, layer), lod) * 255.0); }} int4 readTextureLinear(in sampler2DArray tex, uint2 uv1, uint2 uv2, int layer, int lod, int2 frac_uv) {{)"); - } - else if (api_type == APIType::D3D) - { - out.Write(R"( -int4 readTexture(in Texture2DArray tex, uint u, uint v, int layer, int lod) {{ - return iround(tex.Load(int4(u, v, layer, lod)) * 255.0); -}} - -int4 readTextureLinear(in Texture2DArray tex, uint2 uv1, uint2 uv2, int layer, int lod, int2 frac_uv) {{)"); - } out.Write(R"( int4 result = @@ -621,41 +584,26 @@ uint WrapCoord(int coord, uint wrap, int size) {{ } } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write("\nint4 sampleTexture(uint texmap, in sampler2DArray tex, int2 uv, int layer) {{\n"); - } - else if (api_type == APIType::D3D) - { - out.Write("\nint4 sampleTexture(uint texmap, in Texture2DArray tex, in SamplerState tex_samp, " - "int2 uv, int layer) {{\n"); - } + out.Write("\nint4 sampleTexture(uint texmap, in sampler2DArray tex, int2 uv, int layer) {{\n"); if (!host_config.manual_texture_sampling) { out.Write(" float size_s = float(" I_TEXDIMS "[texmap].x * 128);\n" " float size_t = float(" I_TEXDIMS "[texmap].y * 128);\n" " float3 coords = float3(float(uv.x) / size_s, float(uv.y) / size_t, layer);\n"); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + if (!host_config.backend_sampler_lod_bias) { - if (!host_config.backend_sampler_lod_bias) - { - out.Write(" uint texmode0 = samp_texmode0(texmap);\n" - " float lod_bias = float({}) / 256.0f;\n" - " return iround(255.0 * texture(tex, coords, lod_bias));\n", - BitfieldExtract<&SamplerState::TM0::lod_bias>("texmode0")); - } - else - { - out.Write(" return iround(255.0 * texture(tex, coords));\n"); - } + out.Write(" uint texmode0 = samp_texmode0(texmap);\n" + " float lod_bias = float({}) / 256.0f;\n" + " return iround(255.0 * texture(tex, coords, lod_bias));\n", + BitfieldExtract<&SamplerState::TM0::lod_bias>("texmode0")); + } + else + { + out.Write(" return iround(255.0 * texture(tex, coords));\n"); + } - out.Write("}}\n"); - } - else if (api_type == APIType::D3D) - { - out.Write(" return iround(255.0 * tex.Sample(tex_samp, coords));\n}}\n"); - } + out.Write("}}\n"); } else { @@ -694,31 +642,20 @@ uint WrapCoord(int coord, uint wrap, int size) {{ int native_size_t = )" I_TEXDIMS R"([texmap].y; )"); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write(R"( + out.Write(R"( int3 size = textureSize(tex, 0); int size_s = size.x; int size_t = size.y; )"); - if (g_ActiveConfig.backend_info.bSupportsTextureQueryLevels) - { - out.Write(" int number_of_levels = textureQueryLevels(tex);\n"); - } - else - { - out.Write(" int number_of_levels = 256; // textureQueryLevels is not supported\n"); - ERROR_LOG_FMT(VIDEO, "textureQueryLevels is not supported! Odd graphical results may " - "occur if custom textures are in use!"); - } - } - else if (api_type == APIType::D3D) + if (g_ActiveConfig.backend_info.bSupportsTextureQueryLevels) { - ASSERT(g_ActiveConfig.backend_info.bSupportsTextureQueryLevels); - out.Write(R"( - int size_s, size_t, layers, number_of_levels; - tex.GetDimensions(0, size_s, size_t, layers, number_of_levels); -)"); + out.Write(" int number_of_levels = textureQueryLevels(tex);\n"); + } + else + { + out.Write(" int number_of_levels = 256; // textureQueryLevels is not supported\n"); + ERROR_LOG_FMT(VIDEO, "textureQueryLevels is not supported! Odd graphical results may " + "occur if custom textures are in use!"); } out.Write(R"( @@ -737,34 +674,23 @@ uint WrapCoord(int coord, uint wrap, int size) {{ )"); } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + if (g_ActiveConfig.backend_info.bSupportsCoarseDerivatives) { - if (g_ActiveConfig.backend_info.bSupportsCoarseDerivatives) - { - // The software renderer uses the equivalent of coarse derivatives, so use them here for - // consistency. This hasn't been hardware tested. - // Note that bSupportsCoarseDerivatives being false only means dFdxCoarse and dFdxFine don't - // exist. The GPU may still implement dFdx using coarse derivatives; we just don't have the - // ability to specifically require it. - out.Write(R"( + // The software renderer uses the equivalent of coarse derivatives, so use them here for + // consistency. This hasn't been hardware tested. + // Note that bSupportsCoarseDerivatives being false only means dFdxCoarse and dFdxFine don't + // exist. The GPU may still implement dFdx using coarse derivatives; we just don't have the + // ability to specifically require it. + out.Write(R"( float2 uv_delta_x = abs(dFdxCoarse(float2(uv))); float2 uv_delta_y = abs(dFdyCoarse(float2(uv))); )"); - } - else - { - out.Write(R"( + } + else + { + out.Write(R"( float2 uv_delta_x = abs(dFdx(float2(uv))); float2 uv_delta_y = abs(dFdy(float2(uv))); -)"); - } - } - else if (api_type == APIType::D3D) - { - ASSERT(g_ActiveConfig.backend_info.bSupportsCoarseDerivatives); - out.Write(R"( - float2 uv_delta_x = abs(ddx_coarse(float2(uv))); - float2 uv_delta_y = abs(ddy_coarse(float2(uv))); )"); } @@ -869,16 +795,8 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos WriteBitfieldExtractHeader(out, api_type, host_config); WritePixelShaderCommonHeader(out, api_type, host_config, uid_data->bounding_box); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write("\n#define sampleTextureWrapper(texmap, uv, layer) " - "sampleTexture(texmap, samp[texmap], uv, layer)\n"); - } - else if (api_type == APIType::D3D) - { - out.Write("\n#define sampleTextureWrapper(texmap, uv, layer) " - "sampleTexture(texmap, tex[texmap], samp[texmap], uv, layer)\n"); - } + out.Write("\n#define sampleTextureWrapper(texmap, uv, layer) " + "sampleTexture(texmap, samp[texmap], uv, layer)\n"); if (uid_data->forced_early_z && g_ActiveConfig.backend_info.bSupportsEarlyZ) { @@ -915,16 +833,8 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos // all of the // ARB_image_load_store extension yet. - // D3D11 also has a way to force the driver to enable early-z, so we're fine here. - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - // This is a #define which signals whatever early-z method the driver supports. - out.Write("FORCE_EARLY_Z; \n"); - } - else - { - out.Write("[earlydepthstencil]\n"); - } + // This is a #define which signals whatever early-z method the driver supports. + out.Write("FORCE_EARLY_Z; \n"); } // Only use dual-source blending when required on drivers that don't support it very well. @@ -943,166 +853,119 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos use_shader_blend || use_shader_logic_op || DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { #ifdef __APPLE__ - // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) - // if we want to use it. - if (api_type == APIType::Vulkan) + // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) + // if we want to use it. + if (api_type == APIType::Vulkan) + { + if (use_dual_source) { - if (use_dual_source) - { - out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", - use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - } - else - { - // Metal doesn't support a single unified variable for both input and output, - // so when using framebuffer fetch, we declare the input separately below. - out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 {};\n", - use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - } - - if (use_framebuffer_fetch) - { - // Subpass inputs will be converted to framebuffer fetch by SPIRV-Cross. - out.Write("INPUT_ATTACHMENT_BINDING(0, 0, 0) uniform subpassInput in_ocol0;\n"); - } - } - else -#endif - { - bool has_broken_decoration = - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION); - - out.Write("{} {} vec4 {};\n", - has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(0)" : - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0)", - use_framebuffer_fetch ? "FRAGMENT_INOUT" : "out", + out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - - if (use_dual_source) - { - out.Write("{} out vec4 ocol1;\n", has_broken_decoration ? - "FRAGMENT_OUTPUT_LOCATION(1)" : - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)"); - } - } - - if (uid_data->per_pixel_depth) - out.Write("#define depth gl_FragDepth\n"); - - if (host_config.backend_geometry_shaders) - { - out.Write("VARYING_LOCATION(0) in VertexData {{\n"); - GenerateVSOutputMembers(out, api_type, uid_data->genMode_numtexgens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, true)); - - if (stereo) - out.Write("\tflat int layer;\n"); - - out.Write("}};\n"); } else { - // Let's set up attributes - u32 counter = 0; - out.Write("VARYING_LOCATION({}) {} in float4 colors_0;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} in float4 colors_1;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - for (u32 i = 0; i < uid_data->genMode_numtexgens; ++i) - { - out.Write("VARYING_LOCATION({}) {} in float3 tex{};\n", counter++, - GetInterpolationQualifier(msaa, ssaa), i); - } - if (!host_config.fast_depth_calc) - { - out.Write("VARYING_LOCATION({}) {} in float4 clipPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - if (per_pixel_lighting) - { - out.Write("VARYING_LOCATION({}) {} in float3 Normal;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} in float3 WorldPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } + // Metal doesn't support a single unified variable for both input and output, + // so when using framebuffer fetch, we declare the input separately below. + out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 {};\n", + use_framebuffer_fetch ? "real_ocol0" : "ocol0"); } - out.Write("void main()\n{{\n"); - out.Write("\tfloat4 rawpos = gl_FragCoord;\n"); - if (use_framebuffer_fetch) { - // Store off a copy of the initial framebuffer value. - // - // If FB_FETCH_VALUE isn't defined (i.e. no special keyword for fetching from the - // framebuffer), we read from real_ocol0. - out.Write("#ifdef FB_FETCH_VALUE\n" - "\tfloat4 initial_ocol0 = FB_FETCH_VALUE;\n" - "#else\n" - "\tfloat4 initial_ocol0 = real_ocol0;\n" - "#endif\n"); - - // QComm's Adreno driver doesn't seem to like using the framebuffer_fetch value as an - // intermediate value with multiple reads & modifications, so we pull out the "real" output - // value above and use a temporary for calculations, then set the output value once at the - // end of the shader. - out.Write("\tfloat4 ocol0;\n"); - } - - if (use_shader_blend) - { - out.Write("\tfloat4 ocol1;\n"); + // Subpass inputs will be converted to framebuffer fetch by SPIRV-Cross. + out.Write("INPUT_ATTACHMENT_BINDING(0, 0, 0) uniform subpassInput in_ocol0;\n"); } } - else // D3D + else +#endif { - out.Write("void main(\n"); - if (uid_data->uint_output) - { - out.Write(" out uint4 ocol0 : SV_Target,\n"); - } - else - { - out.Write(" out float4 ocol0 : SV_Target0,\n" - " out float4 ocol1 : SV_Target1,\n"); - } - out.Write("{}" - " in float4 rawpos : SV_Position,\n", - uid_data->per_pixel_depth ? " out float depth : SV_Depth,\n" : ""); + bool has_broken_decoration = + DriverDetails::HasBug(DriverDetails::BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION); - out.Write(" in {} float4 colors_0 : COLOR0,\n", GetInterpolationQualifier(msaa, ssaa)); - out.Write(" in {} float4 colors_1 : COLOR1\n", GetInterpolationQualifier(msaa, ssaa)); + out.Write("{} {} {} {};\n", + has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(0)" : + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0)", + use_framebuffer_fetch ? "FRAGMENT_INOUT" : "out", + uid_data->uint_output ? "uvec4" : "vec4", + use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - // compute window position if needed because binding semantic WPOS is not widely supported + if (use_dual_source) + { + out.Write("{} out {} ocol1;\n", + has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(1)" : + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)", + uid_data->uint_output ? "uvec4" : "vec4"); + } + } + + if (uid_data->per_pixel_depth) + out.Write("#define depth gl_FragDepth\n"); + + if (host_config.backend_geometry_shaders) + { + out.Write("VARYING_LOCATION(0) in VertexData {{\n"); + GenerateVSOutputMembers(out, api_type, uid_data->genMode_numtexgens, host_config, + GetInterpolationQualifier(msaa, ssaa, true, true), ShaderStage::Pixel); + + if (stereo) + out.Write("\tflat int layer;\n"); + + out.Write("}};\n"); + } + else + { + // Let's set up attributes + u32 counter = 0; + out.Write("VARYING_LOCATION({}) {} in float4 colors_0;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} in float4 colors_1;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); for (u32 i = 0; i < uid_data->genMode_numtexgens; ++i) { - out.Write(",\n in {} float3 tex{} : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), i, - i); + out.Write("VARYING_LOCATION({}) {} in float3 tex{};\n", counter++, + GetInterpolationQualifier(msaa, ssaa), i); } if (!host_config.fast_depth_calc) { - out.Write(",\n in {} float4 clipPos : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - uid_data->genMode_numtexgens); + out.Write("VARYING_LOCATION({}) {} in float4 clipPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); } if (per_pixel_lighting) { - out.Write(",\n in {} float3 Normal : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - uid_data->genMode_numtexgens + 1); - out.Write(",\n in {} float3 WorldPos : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - uid_data->genMode_numtexgens + 2); + out.Write("VARYING_LOCATION({}) {} in float3 Normal;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} in float3 WorldPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); } - if (host_config.backend_geometry_shaders) - { - out.Write(",\n in float clipDist0 : SV_ClipDistance0\n" - ",\n in float clipDist1 : SV_ClipDistance1\n"); - } - if (stereo) - out.Write(",\n in uint layer : SV_RenderTargetArrayIndex\n"); - out.Write(" ) {{\n"); + } + + out.Write("void main()\n{{\n"); + out.Write("\tfloat4 rawpos = gl_FragCoord;\n"); + + if (use_framebuffer_fetch) + { + // Store off a copy of the initial framebuffer value. + // + // If FB_FETCH_VALUE isn't defined (i.e. no special keyword for fetching from the + // framebuffer), we read from real_ocol0. + out.Write("#ifdef FB_FETCH_VALUE\n" + "\tfloat4 initial_ocol0 = FB_FETCH_VALUE;\n" + "#else\n" + "\tfloat4 initial_ocol0 = real_ocol0;\n" + "#endif\n"); + + // QComm's Adreno driver doesn't seem to like using the framebuffer_fetch value as an + // intermediate value with multiple reads & modifications, so we pull out the "real" output + // value above and use a temporary for calculations, then set the output value once at the + // end of the shader. + out.Write("\tfloat4 ocol0;\n"); + } + + if (use_shader_blend) + { + out.Write("\tfloat4 ocol1;\n"); } if (!stereo) out.Write("\tint layer = 0;\n"); diff --git a/Source/Core/VideoCommon/PostProcessing.cpp b/Source/Core/VideoCommon/PostProcessing.cpp index d9f7a8e8c6..72ee15a776 100644 --- a/Source/Core/VideoCommon/PostProcessing.cpp +++ b/Source/Core/VideoCommon/PostProcessing.cpp @@ -441,10 +441,7 @@ std::string PostProcessing::GetUniformBufferHeader() const { std::ostringstream ss; u32 unused_counter = 1; - if (g_ActiveConfig.backend_info.api_type == APIType::D3D) - ss << "cbuffer PSBlock : register(b0) {\n"; - else - ss << "UBO_BINDING(std140, 1) uniform PSBlock {\n"; + ss << "UBO_BINDING(std140, 1) uniform PSBlock {\n"; // Builtin uniforms ss << " float4 resolution;\n"; @@ -499,42 +496,20 @@ std::string PostProcessing::GetHeader() const { std::ostringstream ss; ss << GetUniformBufferHeader(); - if (g_ActiveConfig.backend_info.api_type == APIType::D3D) + ss << "SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n"; + + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - ss << "Texture2DArray samp0 : register(t0);\n"; - ss << "SamplerState samp0_ss : register(s0);\n"; + ss << "VARYING_LOCATION(0) in VertexData {\n"; + ss << " float3 v_tex0;\n"; + ss << "};\n"; } else { - ss << "SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n"; - - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - ss << "VARYING_LOCATION(0) in VertexData {\n"; - ss << " float3 v_tex0;\n"; - ss << "};\n"; - } - else - { - ss << "VARYING_LOCATION(0) in float3 v_tex0;\n"; - } - - ss << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"; + ss << "VARYING_LOCATION(0) in float3 v_tex0;\n"; } - // Rename main, since we need to set up globals - if (g_ActiveConfig.backend_info.api_type == APIType::D3D) - { - ss << R"( -#define main real_main -static float3 v_tex0; -static float4 ocol0; - -// Wrappers for sampling functions. -#define texture(sampler, coords) sampler.Sample(sampler##_ss, coords) -#define textureOffset(sampler, coords, offset) sampler.Sample(sampler##_ss, coords, offset) -)"; - } + ss << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"; ss << R"( float4 Sample() { return texture(samp0, v_tex0); } @@ -591,22 +566,7 @@ void SetOutput(float4 color) std::string PostProcessing::GetFooter() const { - if (g_ActiveConfig.backend_info.api_type == APIType::D3D) - { - return R"( - -#undef main -void main(in float3 v_tex0_ : TEXCOORD0, out float4 ocol0_ : SV_Target) -{ - v_tex0 = v_tex0_; - real_main(); - ocol0_ = ocol0; -})"; - } - else - { - return {}; - } + return {}; } bool PostProcessing::CompileVertexShader() @@ -614,28 +574,20 @@ bool PostProcessing::CompileVertexShader() std::ostringstream ss; ss << GetUniformBufferHeader(); - if (g_ActiveConfig.backend_info.api_type == APIType::D3D) + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - ss << "void main(in uint id : SV_VertexID, out float3 v_tex0 : TEXCOORD0,\n"; - ss << " out float4 opos : SV_Position) {\n"; + ss << "VARYING_LOCATION(0) out VertexData {\n"; + ss << " float3 v_tex0;\n"; + ss << "};\n"; } else { - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - ss << "VARYING_LOCATION(0) out VertexData {\n"; - ss << " float3 v_tex0;\n"; - ss << "};\n"; - } - else - { - ss << "VARYING_LOCATION(0) out float3 v_tex0;\n"; - } - - ss << "#define id gl_VertexID\n"; - ss << "#define opos gl_Position\n"; - ss << "void main() {\n"; + ss << "VARYING_LOCATION(0) out float3 v_tex0;\n"; } + + ss << "#define id gl_VertexID\n"; + ss << "#define opos gl_Position\n"; + ss << "void main() {\n"; ss << " v_tex0 = float3(float((id << 1) & 2), float(id & 2), 0.0f);\n"; ss << " opos = float4(v_tex0.xy * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f), 0.0f, 1.0f);\n"; ss << " v_tex0 = float3(src_rect.xy + (src_rect.zw * v_tex0.xy), float(src_layer));\n"; diff --git a/Source/Core/VideoCommon/ShaderGenCommon.cpp b/Source/Core/VideoCommon/ShaderGenCommon.cpp index 0a965e6f62..511643e83a 100644 --- a/Source/Core/VideoCommon/ShaderGenCommon.cpp +++ b/Source/Core/VideoCommon/ShaderGenCommon.cpp @@ -93,20 +93,7 @@ std::string GetDiskShaderCacheFileName(APIType api_type, const char* type, bool void WriteIsNanHeader(ShaderCode& out, APIType api_type) { - if (api_type == APIType::D3D) - { - out.Write("bool dolphin_isnan(float f) {{\n" - " // Workaround for the HLSL compiler deciding that isnan can never be true and\n" - " // optimising away the call, even though the value can actually be NaN\n" - " // Just look for the bit pattern that indicates NaN instead\n" - " return (asint(f) & 0x7FFFFFFF) > 0x7F800000;\n" - "}}\n\n"); - // If isfinite is needed, (asint(f) & 0x7F800000) != 0x7F800000 can be used - } - else - { - out.Write("#define dolphin_isnan(f) isnan(f)\n"); - } + out.Write("#define dolphin_isnan(f) isnan(f)\n"); } void WriteBitfieldExtractHeader(ShaderCode& out, APIType api_type, @@ -135,14 +122,15 @@ void WriteBitfieldExtractHeader(ShaderCode& out, APIType api_type, static void DefineOutputMember(ShaderCode& object, APIType api_type, std::string_view qualifier, std::string_view type, std::string_view name, int var_index, - std::string_view semantic = {}, int semantic_index = -1) + ShaderStage stage, std::string_view semantic = {}, + int semantic_index = -1) { object.Write("\t{} {} {}", qualifier, type, name); if (var_index != -1) object.Write("{}", var_index); - if (api_type == APIType::D3D && !semantic.empty()) + if (api_type == APIType::D3D && !semantic.empty() && stage == ShaderStage::Geometry) { if (semantic_index != -1) object.Write(" : {}{}", semantic, semantic_index); @@ -154,30 +142,83 @@ static void DefineOutputMember(ShaderCode& object, APIType api_type, std::string } void GenerateVSOutputMembers(ShaderCode& object, APIType api_type, u32 texgens, - const ShaderHostConfig& host_config, std::string_view qualifier) + const ShaderHostConfig& host_config, std::string_view qualifier, + ShaderStage stage) { - DefineOutputMember(object, api_type, qualifier, "float4", "pos", -1, "SV_Position"); - DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 0, "COLOR", 0); - DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 1, "COLOR", 1); - - for (unsigned int i = 0; i < texgens; ++i) - DefineOutputMember(object, api_type, qualifier, "float3", "tex", i, "TEXCOORD", i); - - if (!host_config.fast_depth_calc) - DefineOutputMember(object, api_type, qualifier, "float4", "clipPos", -1, "TEXCOORD", texgens); - - if (host_config.per_pixel_lighting) + // SPIRV-Cross names all semantics as "TEXCOORD" + // Unfortunately Geometry shaders (which also uses this function) + // aren't supported. The output semantic name needs to match + // up with the input semantic name for both the next stage (pixel shader) + // and the previous stage (vertex shader), so + // we need to handle geometry in a special way... + if (api_type == APIType::D3D && stage == ShaderStage::Geometry) { - DefineOutputMember(object, api_type, qualifier, "float3", "Normal", -1, "TEXCOORD", - texgens + 1); - DefineOutputMember(object, api_type, qualifier, "float3", "WorldPos", -1, "TEXCOORD", - texgens + 2); + DefineOutputMember(object, api_type, qualifier, "float4", "pos", -1, stage, "TEXCOORD", 0); + DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 0, stage, "TEXCOORD", 1); + DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 1, stage, "TEXCOORD", 2); + + const unsigned int index_base = 3; + unsigned int index_offset = 0; + if (host_config.backend_geometry_shaders) + { + DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 0, stage, "TEXCOORD", + index_base + index_offset); + DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 1, stage, "TEXCOORD", + index_base + index_offset + 1); + index_offset += 2; + } + + for (unsigned int i = 0; i < texgens; ++i) + { + DefineOutputMember(object, api_type, qualifier, "float3", "tex", i, stage, "TEXCOORD", + index_base + index_offset + i); + } + index_offset += texgens; + + if (!host_config.fast_depth_calc) + { + DefineOutputMember(object, api_type, qualifier, "float4", "clipPos", -1, stage, "TEXCOORD", + index_base + index_offset); + index_offset++; + } + + if (host_config.per_pixel_lighting) + { + DefineOutputMember(object, api_type, qualifier, "float3", "Normal", -1, stage, "TEXCOORD", + index_base + index_offset); + DefineOutputMember(object, api_type, qualifier, "float3", "WorldPos", -1, stage, "TEXCOORD", + index_base + index_offset + 1); + index_offset += 2; + } } - - if (host_config.backend_geometry_shaders) + else { - DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 0, "SV_ClipDistance", 0); - DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 1, "SV_ClipDistance", 1); + DefineOutputMember(object, api_type, qualifier, "float4", "pos", -1, stage, "SV_Position"); + DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 0, stage, "COLOR", 0); + DefineOutputMember(object, api_type, qualifier, "float4", "colors_", 1, stage, "COLOR", 1); + + if (host_config.backend_geometry_shaders) + { + DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 0, stage, + "SV_ClipDistance", 0); + DefineOutputMember(object, api_type, qualifier, "float", "clipDist", 1, stage, + "SV_ClipDistance", 1); + } + + for (unsigned int i = 0; i < texgens; ++i) + DefineOutputMember(object, api_type, qualifier, "float3", "tex", i, stage, "TEXCOORD", i); + + if (!host_config.fast_depth_calc) + DefineOutputMember(object, api_type, qualifier, "float4", "clipPos", -1, stage, "TEXCOORD", + texgens); + + if (host_config.per_pixel_lighting) + { + DefineOutputMember(object, api_type, qualifier, "float3", "Normal", -1, stage, "TEXCOORD", + texgens + 1); + DefineOutputMember(object, api_type, qualifier, "float3", "WorldPos", -1, stage, "TEXCOORD", + texgens + 2); + } } } diff --git a/Source/Core/VideoCommon/ShaderGenCommon.h b/Source/Core/VideoCommon/ShaderGenCommon.h index 88fb5c7353..1cbff2bfcf 100644 --- a/Source/Core/VideoCommon/ShaderGenCommon.h +++ b/Source/Core/VideoCommon/ShaderGenCommon.h @@ -18,6 +18,7 @@ #include "Common/StringUtil.h" #include "Common/TypeUtils.h" +#include "VideoCommon/AbstractShader.h" #include "VideoCommon/VideoCommon.h" /** @@ -189,7 +190,8 @@ void WriteBitfieldExtractHeader(ShaderCode& out, APIType api_type, const ShaderHostConfig& host_config); void GenerateVSOutputMembers(ShaderCode& object, APIType api_type, u32 texgens, - const ShaderHostConfig& host_config, std::string_view qualifier); + const ShaderHostConfig& host_config, std::string_view qualifier, + ShaderStage stage); void AssignVSOutputMembers(ShaderCode& object, std::string_view a, std::string_view b, u32 texgens, const ShaderHostConfig& host_config); @@ -220,57 +222,34 @@ void WriteSwitch(ShaderCode& out, APIType ApiType, std::string_view variable, const Common::EnumMap& values, int indent, bool break_) { - const bool make_switch = (ApiType == APIType::D3D); - // The second template argument is needed to avoid compile errors from ambiguity with multiple // enums with the same number of members in GCC prior to 8. See https://godbolt.org/z/xcKaW1seW // and https://godbolt.org/z/hz7Yqq1P5 using enum_type = decltype(last_member); - // {:{}} is used to indent by formatting an empty string with a variable width - if (make_switch) - { - out.Write("{:{}}switch ({}) {{\n", "", indent, variable); - for (u32 i = 0; i <= static_cast(last_member); i++) + // Generate a tree of if statements recursively + // std::function must be used because auto won't capture before initialization and thus can't be + // used recursively + std::function BuildTree = [&](u32 cur_indent, u32 low, u32 high) { + // Each generated statement is for low <= x < high + if (high == low + 1) { - const enum_type key = static_cast(i); - - // Assumes existence of an EnumFormatter - out.Write("{:{}}case {:s}:\n", "", indent, key); + // Down to 1 case (low <= x < low + 1 means x == low) + const enum_type key = static_cast(low); // Note that this indentation behaves poorly for multi-line code - if (!values[key].empty()) - out.Write("{:{}} {}\n", "", indent, values[key]); - if (break_) - out.Write("{:{}} break;\n", "", indent); + out.Write("{:{}}{} // {}\n", "", cur_indent, values[key], key); } - out.Write("{:{}}}}\n", "", indent); - } - else - { - // Generate a tree of if statements recursively - // std::function must be used because auto won't capture before initialization and thus can't be - // used recursively - std::function BuildTree = [&](u32 cur_indent, u32 low, u32 high) { - // Each generated statement is for low <= x < high - if (high == low + 1) - { - // Down to 1 case (low <= x < low + 1 means x == low) - const enum_type key = static_cast(low); - // Note that this indentation behaves poorly for multi-line code - out.Write("{:{}}{} // {}\n", "", cur_indent, values[key], key); - } - else - { - u32 mid = low + ((high - low) / 2); - out.Write("{:{}}if ({} < {}u) {{\n", "", cur_indent, variable, mid); - BuildTree(cur_indent + 2, low, mid); - out.Write("{:{}}}} else {{\n", "", cur_indent); - BuildTree(cur_indent + 2, mid, high); - out.Write("{:{}}}}\n", "", cur_indent); - } - }; - BuildTree(indent, 0, static_cast(last_member) + 1); - } + else + { + u32 mid = low + ((high - low) / 2); + out.Write("{:{}}if ({} < {}u) {{\n", "", cur_indent, variable, mid); + BuildTree(cur_indent + 2, low, mid); + out.Write("{:{}}}} else {{\n", "", cur_indent); + BuildTree(cur_indent + 2, mid, high); + out.Write("{:{}}}}\n", "", cur_indent); + } + }; + BuildTree(indent, 0, static_cast(last_member) + 1); } // Constant variable names diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 19f2a384f0..dd87dfe0af 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -56,48 +56,27 @@ u16 GetEncodedSampleCount(EFBCopyFormat format) static void WriteHeader(ShaderCode& code, APIType api_type) { - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + // left, top, of source rectangle within source texture + // width of the destination rectangle, scale_factor (1 or 2) + code.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n" + " int4 position;\n" + " float y_scale;\n" + " float gamma_rcp;\n" + " float2 clamp_tb;\n" + " float3 filter_coefficients;\n" + "}};\n"); + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - // left, top, of source rectangle within source texture - // width of the destination rectangle, scale_factor (1 or 2) - code.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n" - " int4 position;\n" - " float y_scale;\n" - " float gamma_rcp;\n" - " float2 clamp_tb;\n" - " float3 filter_coefficients;\n" + code.Write("VARYING_LOCATION(0) in VertexData {{\n" + " float3 v_tex0;\n" "}};\n"); - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - code.Write("VARYING_LOCATION(0) in VertexData {{\n" - " float3 v_tex0;\n" - "}};\n"); - } - else - { - code.Write("VARYING_LOCATION(0) in float3 v_tex0;\n"); - } - code.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n" - "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"); } - else // D3D + else { - code.Write("cbuffer PSBlock : register(b0) {{\n" - " int4 position;\n" - " float y_scale;\n" - " float gamma_rcp;\n" - " float2 clamp_tb;\n" - " float3 filter_coefficients;\n" - "}};\n" - "sampler samp0 : register(s0);\n" - "Texture2DArray Tex0 : register(t0);\n"); + code.Write("VARYING_LOCATION(0) in float3 v_tex0;\n"); } - - // D3D does not have roundEven(), only round(), which is specified "to the nearest integer". - // This differs from the roundEven() behavior, but to get consistency across drivers in OpenGL - // we need to use roundEven(). - if (api_type == APIType::D3D) - code.Write("#define roundEven(x) round(x)\n"); + code.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n" + "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"); // Alpha channel in the copy is set to 1 the EFB format does not have an alpha channel. code.Write("float4 RGBA8ToRGB8(float4 src)\n" @@ -149,10 +128,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A code.Write("("); } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - code.Write("texture(samp0, float3("); - else - code.Write("Tex0.Sample(samp0, float3("); + code.Write("texture(samp0, float3("); code.Write("uv.x + float(xoffset) * pixel_size.x, "); @@ -211,23 +187,10 @@ static void WriteSwizzler(ShaderCode& code, const EFBCopyParams& params, EFBCopy WriteHeader(code, api_type); WriteSampleFunction(code, params, api_type); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - code.Write("void main()\n" - "{{\n" - " int2 sampleUv;\n" - " int2 uv1 = int2(gl_FragCoord.xy);\n"); - } - else // D3D - { - code.Write("void main(\n" - " in float3 v_tex0 : TEXCOORD0,\n" - " in float4 rawpos : SV_Position,\n" - " out float4 ocol0 : SV_Target)\n" - "{{\n" - " int2 sampleUv;\n" - " int2 uv1 = int2(rawpos.xy);\n"); - } + code.Write("void main()\n" + "{{\n" + " int2 sampleUv;\n" + " int2 uv1 = int2(gl_FragCoord.xy);\n"); const int blkW = TexDecoder_GetEFBCopyBlockWidthInTexels(format); const int blkH = TexDecoder_GetEFBCopyBlockHeightInTexels(format); @@ -853,11 +816,7 @@ static const char decoding_shader_header[] = R"( #define HAS_PALETTE 1 #endif -#ifdef API_D3D -cbuffer UBO : register(b0) { -#else UBO_BINDING(std140, 1) uniform UBO { -#endif uint2 u_dst_size; uint2 u_src_size; uint u_src_offset; @@ -865,37 +824,6 @@ UBO_BINDING(std140, 1) uniform UBO { uint u_palette_offset; }; -#ifdef API_D3D - -Buffer s_input_buffer : register(t0); -#ifdef HAS_PALETTE -Buffer s_palette_buffer : register(t1); -#endif - -RWTexture2DArray output_image : register(u0); - -// Helpers for reading/writing. -#define texelFetch(buffer, pos) buffer.Load(pos) -#define imageStore(image, coords, value) image[coords] = value -#define GROUP_MEMORY_BARRIER_WITH_SYNC GroupMemoryBarrierWithGroupSync(); -#define GROUP_SHARED groupshared - -#define DEFINE_MAIN(lx, ly) \ - [numthreads(lx, ly, 1)] \ - void main(uint3 gl_WorkGroupID : SV_GroupId, \ - uint3 gl_LocalInvocationID : SV_GroupThreadID, \ - uint3 gl_GlobalInvocationID : SV_DispatchThreadID) - -uint bitfieldExtract(uint val, int off, int size) -{ - // This built-in function is only support in OpenGL 4.0+ and ES 3.1+\n" - // Microsoft's HLSL compiler automatically optimises this to a bitfield extract instruction. - uint mask = uint((1 << size) - 1); - return uint(val >> off) & mask; -} - -#else - TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer s_input_buffer; #ifdef HAS_PALETTE TEXEL_BUFFER_BINDING(1) uniform usamplerBuffer s_palette_buffer; @@ -909,8 +837,6 @@ IMAGE_BINDING(rgba8, 0) uniform writeonly image2DArray output_image; layout(local_size_x = lx, local_size_y = ly) in; \ void main() -#endif - uint Swap16(uint v) { // Convert BE to LE. @@ -1498,48 +1424,29 @@ float4 DecodePixel(int val) ss << "\n"; - if (api_type == APIType::D3D) - { - ss << "Buffer tex0 : register(t0);\n"; - ss << "Texture2DArray tex1 : register(t1);\n"; - ss << "SamplerState samp1 : register(s1);\n"; - ss << "cbuffer PSBlock : register(b0) {\n"; - } - else - { - ss << "TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer samp0;\n"; - ss << "SAMPLER_BINDING(1) uniform sampler2DArray samp1;\n"; - ss << "UBO_BINDING(std140, 1) uniform PSBlock {\n"; - } + ss << "TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer samp0;\n"; + ss << "SAMPLER_BINDING(1) uniform sampler2DArray samp1;\n"; + ss << "UBO_BINDING(std140, 1) uniform PSBlock {\n"; ss << " float multiplier;\n"; ss << " int texel_buffer_offset;\n"; ss << "};\n"; - if (api_type == APIType::D3D) + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - ss << "void main(in float3 v_tex0 : TEXCOORD0, out float4 ocol0 : SV_Target) {\n"; - ss << " int src = int(round(tex1.Sample(samp1, v_tex0).r * multiplier));\n"; - ss << " src = int(tex0.Load(src + texel_buffer_offset).r);\n"; + ss << "VARYING_LOCATION(0) in VertexData {\n"; + ss << " float3 v_tex0;\n"; + ss << "};\n"; } else { - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - ss << "VARYING_LOCATION(0) in VertexData {\n"; - ss << " float3 v_tex0;\n"; - ss << "};\n"; - } - else - { - ss << "VARYING_LOCATION(0) in float3 v_tex0;\n"; - } - ss << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"; - ss << "void main() {\n"; - ss << " float3 coords = v_tex0;\n"; - ss << " int src = int(round(texture(samp1, coords).r * multiplier));\n"; - ss << " src = int(texelFetch(samp0, src + texel_buffer_offset).r);\n"; + ss << "VARYING_LOCATION(0) in float3 v_tex0;\n"; } + ss << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n"; + ss << "void main() {\n"; + ss << " float3 coords = v_tex0;\n"; + ss << " int src = int(round(texture(samp1, coords).r * multiplier));\n"; + ss << " src = int(texelFetch(samp0, src + texel_buffer_offset).r);\n"; ss << " src = ((src << 8) & 0xFF00) | (src >> 8);\n"; ss << " ocol0 = DecodePixel(src);\n"; diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index c5a440b801..5b6c027c70 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -29,26 +29,13 @@ TCShaderUid GetShaderUid(EFBCopyFormat dst_format, bool is_depth_copy, bool is_i static void WriteHeader(APIType api_type, ShaderCode& out) { - if (api_type == APIType::D3D) - { - out.Write("cbuffer PSBlock : register(b0) {{\n" - " float2 src_offset, src_size;\n" - " float3 filter_coefficients;\n" - " float gamma_rcp;\n" - " float2 clamp_tb;\n" - " float pixel_height;\n" - "}};\n\n"); - } - else if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n" - " float2 src_offset, src_size;\n" - " float3 filter_coefficients;\n" - " float gamma_rcp;\n" - " float2 clamp_tb;\n" - " float pixel_height;\n" - "}};\n"); - } + out.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n" + " float2 src_offset, src_size;\n" + " float3 filter_coefficients;\n" + " float gamma_rcp;\n" + " float2 clamp_tb;\n" + " float pixel_height;\n" + "}};\n"); } ShaderCode GenerateVertexShader(APIType api_type) @@ -56,27 +43,19 @@ ShaderCode GenerateVertexShader(APIType api_type) ShaderCode out; WriteHeader(api_type, out); - if (api_type == APIType::D3D) + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - out.Write("void main(in uint id : SV_VertexID, out float3 v_tex0 : TEXCOORD0,\n" - " out float4 opos : SV_Position) {{\n"); + out.Write("VARYING_LOCATION(0) out VertexData {{\n" + " float3 v_tex0;\n" + "}};\n"); } - else if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + else { - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - out.Write("VARYING_LOCATION(0) out VertexData {{\n" - " float3 v_tex0;\n" - "}};\n"); - } - else - { - out.Write("VARYING_LOCATION(0) out float3 v_tex0;\n"); - } - out.Write("#define id gl_VertexID\n" - "#define opos gl_Position\n" - "void main() {{\n"); + out.Write("VARYING_LOCATION(0) out float3 v_tex0;\n"); } + out.Write("#define id gl_VertexID\n" + "#define opos gl_Position\n" + "void main() {{\n"); out.Write(" v_tex0 = float3(float((id << 1) & 2), float(id & 2), 0.0f);\n"); out.Write( " opos = float4(v_tex0.xy * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f), 0.0f, 1.0f);\n"); @@ -98,38 +77,24 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) ShaderCode out; WriteHeader(api_type, out); - if (api_type == APIType::D3D) + out.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n"); + out.Write("float4 SampleEFB(float3 uv, float y_offset) {{\n" + " return texture(samp0, float3(uv.x, clamp(uv.y + (y_offset * pixel_height), " + "clamp_tb.x, clamp_tb.y), {}));\n" + "}}\n", + mono_depth ? "0.0" : "uv.z"); + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { - out.Write("Texture2DArray tex0 : register(t0);\n" - "SamplerState samp0 : register(s0);\n" - "float4 SampleEFB(float3 uv, float y_offset) {{\n" - " return tex0.Sample(samp0, float3(uv.x, clamp(uv.y + (y_offset * pixel_height), " - "clamp_tb.x, clamp_tb.y), {}));\n" - "}}\n\n", - mono_depth ? "0.0" : "uv.z"); - out.Write("void main(in float3 v_tex0 : TEXCOORD0, out float4 ocol0 : SV_Target)\n{{\n"); + out.Write("VARYING_LOCATION(0) in VertexData {{\n" + " float3 v_tex0;\n" + "}};\n"); } - else if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + else { - out.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n"); - out.Write("float4 SampleEFB(float3 uv, float y_offset) {{\n" - " return texture(samp0, float3(uv.x, clamp(uv.y + (y_offset * pixel_height), " - "clamp_tb.x, clamp_tb.y), {}));\n" - "}}\n", - mono_depth ? "0.0" : "uv.z"); - if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) - { - out.Write("VARYING_LOCATION(0) in VertexData {{\n" - " float3 v_tex0;\n" - "}};\n"); - } - else - { - out.Write("VARYING_LOCATION(0) in vec3 v_tex0;\n"); - } - out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 ocol0;\n" - "void main()\n{{\n"); + out.Write("VARYING_LOCATION(0) in vec3 v_tex0;\n"); } + out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 ocol0;\n" + "void main()\n{{\n"); // The copy filter applies to both color and depth copies. This has been verified on hardware. // The filter is only applied to the RGB channels, the alpha channel is left intact. diff --git a/Source/Core/VideoCommon/UberShaderCommon.cpp b/Source/Core/VideoCommon/UberShaderCommon.cpp index 4a8fba8839..b9c1306f8b 100644 --- a/Source/Core/VideoCommon/UberShaderCommon.cpp +++ b/Source/Core/VideoCommon/UberShaderCommon.cpp @@ -77,8 +77,7 @@ void WriteVertexLighting(ShaderCode& out, APIType api_type, std::string_view wor std::string_view out_color_1_var) { out.Write("// Lighting\n"); - out.Write("{}for (uint chan = 0u; chan < {}u; chan++) {{\n", - api_type == APIType::D3D ? "[loop] " : "", NUM_XF_COLOR_CHANNELS); + out.Write("for (uint chan = 0u; chan < {}u; chan++) {{\n", NUM_XF_COLOR_CHANNELS); out.Write(" uint colorreg = xfmem_color(chan);\n" " uint alphareg = xfmem_alpha(chan);\n" " int4 mat = " I_MATERIALS "[chan + 2u]; \n" diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index a96b15c83d..bfbe1a08f2 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -72,93 +72,89 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, if (per_pixel_lighting) WriteLightingFunction(out); - // Shader inputs/outputs in GLSL (HLSL is in main). - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { #ifdef __APPLE__ - // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) - // if we want to use it. - if (api_type == APIType::Vulkan) + // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) + // if we want to use it. + if (api_type == APIType::Vulkan) + { + if (use_dual_source) { - if (use_dual_source) - { - out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", - use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - } - else - { - // Metal doesn't support a single unified variable for both input and output, - // so when using framebuffer fetch, we declare the input separately below. - out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 {};\n", - use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - } - - if (use_framebuffer_fetch) - { - // Subpass inputs will be converted to framebuffer fetch by SPIRV-Cross. - out.Write("INPUT_ATTACHMENT_BINDING(0, 0, 0) uniform subpassInput in_ocol0;\n"); - } - } - else -#endif - { - bool has_broken_decoration = - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION); - - out.Write("{} {} vec4 {};\n", - has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(0)" : - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0)", - use_framebuffer_fetch ? "FRAGMENT_INOUT" : "out", + out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - - if (use_dual_source) - { - out.Write("{} out vec4 ocol1;\n", has_broken_decoration ? - "FRAGMENT_OUTPUT_LOCATION(1)" : - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)"); - } - } - - if (per_pixel_depth) - out.Write("#define depth gl_FragDepth\n"); - - if (host_config.backend_geometry_shaders) - { - out.Write("VARYING_LOCATION(0) in VertexData {{\n"); - GenerateVSOutputMembers(out, api_type, numTexgen, host_config, - GetInterpolationQualifier(msaa, ssaa, true, true)); - - if (stereo) - out.Write(" flat int layer;\n"); - - out.Write("}};\n\n"); } else { - // Let's set up attributes - u32 counter = 0; - out.Write("VARYING_LOCATION({}) {} in float4 colors_0;\n", counter++, + // Metal doesn't support a single unified variable for both input and output, + // so when using framebuffer fetch, we declare the input separately below. + out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 {};\n", + use_framebuffer_fetch ? "real_ocol0" : "ocol0"); + } + + if (use_framebuffer_fetch) + { + // Subpass inputs will be converted to framebuffer fetch by SPIRV-Cross. + out.Write("INPUT_ATTACHMENT_BINDING(0, 0, 0) uniform subpassInput in_ocol0;\n"); + } + } + else +#endif + { + bool has_broken_decoration = + DriverDetails::HasBug(DriverDetails::BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION); + + out.Write("{} {} vec4 {};\n", + has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(0)" : + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0)", + use_framebuffer_fetch ? "FRAGMENT_INOUT" : "out", + use_framebuffer_fetch ? "real_ocol0" : "ocol0"); + + if (use_dual_source) + { + out.Write("{} out vec4 ocol1;\n", has_broken_decoration ? + "FRAGMENT_OUTPUT_LOCATION(1)" : + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)"); + } + } + + if (per_pixel_depth) + out.Write("#define depth gl_FragDepth\n"); + + if (host_config.backend_geometry_shaders) + { + out.Write("VARYING_LOCATION(0) in VertexData {{\n"); + GenerateVSOutputMembers(out, api_type, numTexgen, host_config, + GetInterpolationQualifier(msaa, ssaa, true, true), ShaderStage::Pixel); + + if (stereo) + out.Write(" flat int layer;\n"); + + out.Write("}};\n\n"); + } + else + { + // Let's set up attributes + u32 counter = 0; + out.Write("VARYING_LOCATION({}) {} in float4 colors_0;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} in float4 colors_1;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + for (u32 i = 0; i < numTexgen; ++i) + { + out.Write("VARYING_LOCATION({}) {} in float3 tex{};\n", counter++, + GetInterpolationQualifier(msaa, ssaa), i); + } + if (!host_config.fast_depth_calc) + { + out.Write("VARYING_LOCATION({}) {} in float4 clipPos;\n", counter++, GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} in float4 colors_1;\n", counter++, + } + if (per_pixel_lighting) + { + out.Write("VARYING_LOCATION({}) {} in float3 Normal;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} in float3 WorldPos;\n", counter++, GetInterpolationQualifier(msaa, ssaa)); - for (u32 i = 0; i < numTexgen; ++i) - { - out.Write("VARYING_LOCATION({}) {} in float3 tex{};\n", counter++, - GetInterpolationQualifier(msaa, ssaa), i); - } - if (!host_config.fast_depth_calc) - { - out.Write("VARYING_LOCATION({}) {} in float4 clipPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - if (per_pixel_lighting) - { - out.Write("VARYING_LOCATION({}) {} in float3 Normal;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} in float3 WorldPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } } } @@ -243,10 +239,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, // Doesn't look like DirectX supports this. Oh well the code path is here just in case it // supports this in the future. out.Write("int4 sampleTextureWrapper(uint texmap, int2 uv, int layer) {{\n"); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write(" return sampleTexture(texmap, samp[texmap], uv, layer);\n"); - else if (api_type == APIType::D3D) - out.Write(" return sampleTexture(texmap, tex[texmap], samp[texmap], uv, layer);\n"); + out.Write(" return sampleTexture(texmap, samp[texmap], uv, layer);\n"); out.Write("}}\n\n"); } else @@ -259,15 +252,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " switch(sampler_num) {{\n"); for (int i = 0; i < 8; i++) { - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - { - out.Write(" case {0}u: return sampleTexture({0}u, samp[{0}u], uv, layer);\n", i); - } - else if (api_type == APIType::D3D) - { - out.Write(" case {0}u: return sampleTexture({0}u, tex[{0}u], samp[{0}u], uv, layer);\n", - i); - } + out.Write(" case {0}u: return sampleTexture({0}u, samp[{0}u], uv, layer);\n", i); } out.Write(" }}\n" "}}\n\n"); @@ -522,82 +507,34 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, out.Write(")\n\n"); } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + if (early_depth && host_config.backend_early_z) + out.Write("FORCE_EARLY_Z;\n"); + + out.Write("void main()\n{{\n"); + out.Write(" float4 rawpos = gl_FragCoord;\n"); + + if (use_framebuffer_fetch) { - if (early_depth && host_config.backend_early_z) - out.Write("FORCE_EARLY_Z;\n"); + // Store off a copy of the initial framebuffer value. + // + // If FB_FETCH_VALUE isn't defined (i.e. no special keyword for fetching from the + // framebuffer), we read from real_ocol0. + out.Write("#ifdef FB_FETCH_VALUE\n" + " float4 initial_ocol0 = FB_FETCH_VALUE;\n" + "#else\n" + " float4 initial_ocol0 = real_ocol0;\n" + "#endif\n"); - out.Write("void main()\n{{\n"); - out.Write(" float4 rawpos = gl_FragCoord;\n"); - - if (use_framebuffer_fetch) - { - // Store off a copy of the initial framebuffer value. - // - // If FB_FETCH_VALUE isn't defined (i.e. no special keyword for fetching from the - // framebuffer), we read from real_ocol0. - out.Write("#ifdef FB_FETCH_VALUE\n" - " float4 initial_ocol0 = FB_FETCH_VALUE;\n" - "#else\n" - " float4 initial_ocol0 = real_ocol0;\n" - "#endif\n"); - - // QComm's Adreno driver doesn't seem to like using the framebuffer_fetch value as an - // intermediate value with multiple reads & modifications, so we pull out the "real" output - // value above and use a temporary for calculations, then set the output value once at the - // end of the shader. - out.Write(" float4 ocol0;\n"); - } - - if (use_shader_blend) - { - out.Write(" float4 ocol1;\n"); - } + // QComm's Adreno driver doesn't seem to like using the framebuffer_fetch value as an + // intermediate value with multiple reads & modifications, so we pull out the "real" output + // value above and use a temporary for calculations, then set the output value once at the + // end of the shader. + out.Write(" float4 ocol0;\n"); } - else // D3D + + if (use_shader_blend) { - if (early_depth && host_config.backend_early_z) - out.Write("[earlydepthstencil]\n"); - - out.Write("void main(\n"); - if (uid_data->uint_output) - { - out.Write(" out uint4 ocol0 : SV_Target,\n"); - } - else - { - out.Write(" out float4 ocol0 : SV_Target0,\n" - " out float4 ocol1 : SV_Target1,\n"); - } - if (per_pixel_depth) - out.Write(" out float depth : SV_Depth,\n"); - out.Write(" in float4 rawpos : SV_Position,\n"); - out.Write(" in {} float4 colors_0 : COLOR0,\n", GetInterpolationQualifier(msaa, ssaa)); - out.Write(" in {} float4 colors_1 : COLOR1", GetInterpolationQualifier(msaa, ssaa)); - - // compute window position if needed because binding semantic WPOS is not widely supported - for (u32 i = 0; i < numTexgen; ++i) - { - out.Write(",\n in {} float3 tex{} : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), i, - i); - } - if (!host_config.fast_depth_calc) - { - out.Write("\n,\n in {} float4 clipPos : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - numTexgen); - } - if (per_pixel_lighting) - { - out.Write(",\n in {} float3 Normal : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - numTexgen + 1); - out.Write(",\n in {} float3 WorldPos : TEXCOORD{}", GetInterpolationQualifier(msaa, ssaa), - numTexgen + 2); - } - out.Write(",\n in float clipDist0 : SV_ClipDistance0\n" - ",\n in float clipDist1 : SV_ClipDistance1\n"); - if (stereo) - out.Write(",\n in uint layer : SV_RenderTargetArrayIndex\n"); - out.Write("\n ) {{\n"); + out.Write(" float4 ocol1;\n"); } if (!stereo) out.Write(" int layer = 0;\n"); @@ -634,11 +571,6 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, BitfieldExtract<&GenMode::numtevstages>("bpmem_genmode")); out.Write(" // Main tev loop\n"); - if (api_type == APIType::D3D) - { - // Tell DirectX we don't want this loop unrolled (it crashes if it tries to) - out.Write(" [loop]\n"); - } out.Write(" for(uint stage = 0u; stage <= num_stages; stage++)\n" " {{\n" diff --git a/Source/Core/VideoCommon/UberShaderVertex.cpp b/Source/Core/VideoCommon/UberShaderVertex.cpp index 3f05400a46..67dd84bb7f 100644 --- a/Source/Core/VideoCommon/UberShaderVertex.cpp +++ b/Source/Core/VideoCommon/UberShaderVertex.cpp @@ -38,85 +38,65 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config out.Write("{}", s_lighting_struct); // uniforms - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); - else - out.Write("cbuffer VSBlock {{\n"); + out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); out.Write("{}", s_shader_uniforms); out.Write("}};\n"); out.Write("struct VS_OUTPUT {{\n"); - GenerateVSOutputMembers(out, api_type, num_texgen, host_config, ""); + GenerateVSOutputMembers(out, api_type, num_texgen, host_config, "", ShaderStage::Vertex); out.Write("}};\n\n"); WriteIsNanHeader(out, api_type); WriteBitfieldExtractHeader(out, api_type, host_config); WriteLightingFunction(out); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawpos;\n", SHADER_POSITION_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in uint4 posmtx;\n", SHADER_POSMTX_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawnormal;\n", SHADER_NORMAL_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtangent;\n", SHADER_TANGENT_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawbinormal;\n", SHADER_BINORMAL_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor0;\n", SHADER_COLOR0_ATTRIB); + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor1;\n", SHADER_COLOR1_ATTRIB); + for (int i = 0; i < 8; ++i) + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtex{};\n", SHADER_TEXTURE0_ATTRIB + i, i); + + if (host_config.backend_geometry_shaders) { - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawpos;\n", SHADER_POSITION_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in uint4 posmtx;\n", SHADER_POSMTX_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawnormal;\n", SHADER_NORMAL_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtangent;\n", SHADER_TANGENT_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawbinormal;\n", SHADER_BINORMAL_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor0;\n", SHADER_COLOR0_ATTRIB); - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor1;\n", SHADER_COLOR1_ATTRIB); - for (int i = 0; i < 8; ++i) - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtex{};\n", SHADER_TEXTURE0_ATTRIB + i, i); - - if (host_config.backend_geometry_shaders) - { - out.Write("VARYING_LOCATION(0) out VertexData {{\n"); - GenerateVSOutputMembers(out, api_type, num_texgen, host_config, - GetInterpolationQualifier(msaa, ssaa, true, false)); - out.Write("}} vs;\n"); - } - else - { - // Let's set up attributes - u32 counter = 0; - out.Write("VARYING_LOCATION({}) {} out float4 colors_0;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} out float4 colors_1;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - for (u32 i = 0; i < num_texgen; ++i) - { - out.Write("VARYING_LOCATION({}) {} out float3 tex{};\n", counter++, - GetInterpolationQualifier(msaa, ssaa), i); - } - if (!host_config.fast_depth_calc) - { - out.Write("VARYING_LOCATION({}) {} out float4 clipPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - if (per_pixel_lighting) - { - out.Write("VARYING_LOCATION({}) {} out float3 Normal;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} out float3 WorldPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - } - - out.Write("void main()\n{{\n"); + out.Write("VARYING_LOCATION(0) out VertexData {{\n"); + GenerateVSOutputMembers(out, api_type, num_texgen, host_config, + GetInterpolationQualifier(msaa, ssaa, true, false), + ShaderStage::Vertex); + out.Write("}} vs;\n"); } - else // D3D + else { - out.Write("VS_OUTPUT main(\n"); - - // inputs - out.Write(" float3 rawnormal : NORMAL,\n" - " float3 rawtangent : TANGENT,\n" - " float3 rawbinormal : BINORMAL,\n" - " float4 rawcolor0 : COLOR0,\n" - " float4 rawcolor1 : COLOR1,\n"); - for (int i = 0; i < 8; ++i) - out.Write(" float3 rawtex{} : TEXCOORD{},\n", i, i); - out.Write(" uint posmtx : BLENDINDICES,\n"); - out.Write(" float4 rawpos : POSITION) {{\n"); + // Let's set up attributes + u32 counter = 0; + out.Write("VARYING_LOCATION({}) {} out float4 colors_0;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} out float4 colors_1;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + for (u32 i = 0; i < num_texgen; ++i) + { + out.Write("VARYING_LOCATION({}) {} out float3 tex{};\n", counter++, + GetInterpolationQualifier(msaa, ssaa), i); + } + if (!host_config.fast_depth_calc) + { + out.Write("VARYING_LOCATION({}) {} out float4 clipPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + } + if (per_pixel_lighting) + { + out.Write("VARYING_LOCATION({}) {} out float3 Normal;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} out float3 WorldPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + } } + out.Write("void main()\n{{\n"); + out.Write("VS_OUTPUT o;\n" "\n"); @@ -335,45 +315,38 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config "}}\n"); } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + if (host_config.backend_geometry_shaders) { - if (host_config.backend_geometry_shaders) - { - AssignVSOutputMembers(out, "vs", "o", num_texgen, host_config); - } - else - { - // TODO: Pass interface blocks between shader stages even if geometry shaders - // are not supported, however that will require at least OpenGL 3.2 support. - for (u32 i = 0; i < num_texgen; ++i) - out.Write("tex{}.xyz = o.tex{};\n", i, i); - if (!host_config.fast_depth_calc) - out.Write("clipPos = o.clipPos;\n"); - if (per_pixel_lighting) - { - out.Write("Normal = o.Normal;\n" - "WorldPos = o.WorldPos;\n"); - } - out.Write("colors_0 = o.colors_0;\n" - "colors_1 = o.colors_1;\n"); - } - - if (host_config.backend_depth_clamp) - { - out.Write("gl_ClipDistance[0] = clipDist0;\n" - "gl_ClipDistance[1] = clipDist1;\n"); - } - - // Vulkan NDC space has Y pointing down (right-handed NDC space). - if (api_type == APIType::Vulkan) - out.Write("gl_Position = float4(o.pos.x, -o.pos.y, o.pos.z, o.pos.w);\n"); - else - out.Write("gl_Position = o.pos;\n"); + AssignVSOutputMembers(out, "vs", "o", num_texgen, host_config); } - else // D3D + else { - out.Write("return o;\n"); + // TODO: Pass interface blocks between shader stages even if geometry shaders + // are not supported, however that will require at least OpenGL 3.2 support. + for (u32 i = 0; i < num_texgen; ++i) + out.Write("tex{}.xyz = o.tex{};\n", i, i); + if (!host_config.fast_depth_calc) + out.Write("clipPos = o.clipPos;\n"); + if (per_pixel_lighting) + { + out.Write("Normal = o.Normal;\n" + "WorldPos = o.WorldPos;\n"); + } + out.Write("colors_0 = o.colors_0;\n" + "colors_1 = o.colors_1;\n"); } + + if (host_config.backend_depth_clamp) + { + out.Write("gl_ClipDistance[0] = clipDist0;\n" + "gl_ClipDistance[1] = clipDist1;\n"); + } + + // Vulkan NDC space has Y pointing down (right-handed NDC space). + if (api_type == APIType::Vulkan) + out.Write("gl_Position = float4(o.pos.x, -o.pos.y, o.pos.z, o.pos.w);\n"); + else + out.Write("gl_Position = o.pos;\n"); out.Write("}}\n"); return out; @@ -393,8 +366,7 @@ static void GenVertexShaderTexGens(APIType api_type, u32 num_texgen, ShaderCode& } else { - out.Write("{}for (uint texgen = 0u; texgen < {}u; texgen++) {{\n", - api_type == APIType::D3D ? "[loop] " : "", num_texgen); + out.Write("for (uint texgen = 0u; texgen < {}u; texgen++) {{\n", num_texgen); } out.Write(" // Texcoord transforms\n"); diff --git a/Source/Core/VideoCommon/VertexShaderGen.cpp b/Source/Core/VideoCommon/VertexShaderGen.cpp index 9fa2d6cd0e..2eb5a53a97 100644 --- a/Source/Core/VideoCommon/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/VertexShaderGen.cpp @@ -86,110 +86,80 @@ ShaderCode GenerateVertexShaderCode(APIType api_type, const ShaderHostConfig& ho out.Write("{}", s_lighting_struct); // uniforms - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) - out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); - else - out.Write("cbuffer VSBlock {{\n"); + out.Write("UBO_BINDING(std140, 2) uniform VSBlock {{\n"); out.Write("{}", s_shader_uniforms); out.Write("}};\n"); out.Write("struct VS_OUTPUT {{\n"); - GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, ""); + GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, "", + ShaderStage::Vertex); out.Write("}};\n\n"); WriteIsNanHeader(out, api_type); - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawpos;\n", SHADER_POSITION_ATTRIB); + if ((uid_data->components & VB_HAS_POSMTXIDX) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in uint4 posmtx;\n", SHADER_POSMTX_ATTRIB); + if ((uid_data->components & VB_HAS_NORMAL) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawnormal;\n", SHADER_NORMAL_ATTRIB); + if ((uid_data->components & VB_HAS_TANGENT) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtangent;\n", SHADER_TANGENT_ATTRIB); + if ((uid_data->components & VB_HAS_BINORMAL) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in float3 rawbinormal;\n", SHADER_BINORMAL_ATTRIB); + + if ((uid_data->components & VB_HAS_COL0) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor0;\n", SHADER_COLOR0_ATTRIB); + if ((uid_data->components & VB_HAS_COL1) != 0) + out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor1;\n", SHADER_COLOR1_ATTRIB); + + for (u32 i = 0; i < 8; ++i) { - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawpos;\n", SHADER_POSITION_ATTRIB); - if ((uid_data->components & VB_HAS_POSMTXIDX) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in uint4 posmtx;\n", SHADER_POSMTX_ATTRIB); - if ((uid_data->components & VB_HAS_NORMAL) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawnormal;\n", SHADER_NORMAL_ATTRIB); - if ((uid_data->components & VB_HAS_TANGENT) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawtangent;\n", SHADER_TANGENT_ATTRIB); - if ((uid_data->components & VB_HAS_BINORMAL) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in float3 rawbinormal;\n", SHADER_BINORMAL_ATTRIB); + const u32 has_texmtx = (uid_data->components & (VB_HAS_TEXMTXIDX0 << i)); - if ((uid_data->components & VB_HAS_COL0) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor0;\n", SHADER_COLOR0_ATTRIB); - if ((uid_data->components & VB_HAS_COL1) != 0) - out.Write("ATTRIBUTE_LOCATION({}) in float4 rawcolor1;\n", SHADER_COLOR1_ATTRIB); - - for (u32 i = 0; i < 8; ++i) + if ((uid_data->components & (VB_HAS_UV0 << i)) != 0 || has_texmtx != 0) { - const u32 has_texmtx = (uid_data->components & (VB_HAS_TEXMTXIDX0 << i)); - - if ((uid_data->components & (VB_HAS_UV0 << i)) != 0 || has_texmtx != 0) - { - out.Write("ATTRIBUTE_LOCATION({}) in float{} rawtex{};\n", SHADER_TEXTURE0_ATTRIB + i, - has_texmtx != 0 ? 3 : 2, i); - } + out.Write("ATTRIBUTE_LOCATION({}) in float{} rawtex{};\n", SHADER_TEXTURE0_ATTRIB + i, + has_texmtx != 0 ? 3 : 2, i); } - - if (host_config.backend_geometry_shaders) - { - out.Write("VARYING_LOCATION(0) out VertexData {{\n"); - GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, - GetInterpolationQualifier(msaa, ssaa, true, false)); - out.Write("}} vs;\n"); - } - else - { - // Let's set up attributes - u32 counter = 0; - out.Write("VARYING_LOCATION({}) {} out float4 colors_0;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} out float4 colors_1;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - for (u32 i = 0; i < uid_data->numTexGens; ++i) - { - out.Write("VARYING_LOCATION({}) {} out float3 tex{};\n", counter++, - GetInterpolationQualifier(msaa, ssaa), i); - } - if (!host_config.fast_depth_calc) - { - out.Write("VARYING_LOCATION({}) {} out float4 clipPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - if (per_pixel_lighting) - { - out.Write("VARYING_LOCATION({}) {} out float3 Normal;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - out.Write("VARYING_LOCATION({}) {} out float3 WorldPos;\n", counter++, - GetInterpolationQualifier(msaa, ssaa)); - } - } - - out.Write("void main()\n{{\n"); } - else // D3D + + if (host_config.backend_geometry_shaders) { - out.Write("VS_OUTPUT main(\n"); - - // inputs - if ((uid_data->components & VB_HAS_NORMAL) != 0) - out.Write(" float3 rawnormal : NORMAL,\n"); - if ((uid_data->components & VB_HAS_TANGENT) != 0) - out.Write(" float3 rawtangent : TANGENT,\n"); - if ((uid_data->components & VB_HAS_BINORMAL) != 0) - out.Write(" float3 rawbinormal : BINORMAL,\n"); - if ((uid_data->components & VB_HAS_COL0) != 0) - out.Write(" float4 rawcolor0 : COLOR0,\n"); - if ((uid_data->components & VB_HAS_COL1) != 0) - out.Write(" float4 rawcolor1 : COLOR1,\n"); - for (u32 i = 0; i < 8; ++i) - { - const u32 has_texmtx = (uid_data->components & (VB_HAS_TEXMTXIDX0 << i)); - - if ((uid_data->components & (VB_HAS_UV0 << i)) != 0 || has_texmtx != 0) - out.Write(" float{} rawtex{} : TEXCOORD{},\n", has_texmtx ? 3 : 2, i, i); - } - if ((uid_data->components & VB_HAS_POSMTXIDX) != 0) - out.Write(" uint4 posmtx : BLENDINDICES,\n"); - out.Write(" float4 rawpos : POSITION) {{\n"); + out.Write("VARYING_LOCATION(0) out VertexData {{\n"); + GenerateVSOutputMembers(out, api_type, uid_data->numTexGens, host_config, + GetInterpolationQualifier(msaa, ssaa, true, false), + ShaderStage::Vertex); + out.Write("}} vs;\n"); } + else + { + // Let's set up attributes + u32 counter = 0; + out.Write("VARYING_LOCATION({}) {} out float4 colors_0;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} out float4 colors_1;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + for (u32 i = 0; i < uid_data->numTexGens; ++i) + { + out.Write("VARYING_LOCATION({}) {} out float3 tex{};\n", counter++, + GetInterpolationQualifier(msaa, ssaa), i); + } + if (!host_config.fast_depth_calc) + { + out.Write("VARYING_LOCATION({}) {} out float4 clipPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + } + if (per_pixel_lighting) + { + out.Write("VARYING_LOCATION({}) {} out float3 Normal;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + out.Write("VARYING_LOCATION({}) {} out float3 WorldPos;\n", counter++, + GetInterpolationQualifier(msaa, ssaa)); + } + } + + out.Write("void main()\n{{\n"); out.Write("VS_OUTPUT o;\n"); @@ -548,45 +518,38 @@ ShaderCode GenerateVertexShaderCode(APIType api_type, const ShaderHostConfig& ho "}}\n"); } - if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) + if (host_config.backend_geometry_shaders) { - if (host_config.backend_geometry_shaders) - { - AssignVSOutputMembers(out, "vs", "o", uid_data->numTexGens, host_config); - } - else - { - // TODO: Pass interface blocks between shader stages even if geometry shaders - // are not supported, however that will require at least OpenGL 3.2 support. - for (u32 i = 0; i < uid_data->numTexGens; ++i) - out.Write("tex{}.xyz = o.tex{};\n", i, i); - if (!host_config.fast_depth_calc) - out.Write("clipPos = o.clipPos;\n"); - if (per_pixel_lighting) - { - out.Write("Normal = o.Normal;\n" - "WorldPos = o.WorldPos;\n"); - } - out.Write("colors_0 = o.colors_0;\n" - "colors_1 = o.colors_1;\n"); - } - - if (host_config.backend_depth_clamp) - { - out.Write("gl_ClipDistance[0] = clipDist0;\n" - "gl_ClipDistance[1] = clipDist1;\n"); - } - - // Vulkan NDC space has Y pointing down (right-handed NDC space). - if (api_type == APIType::Vulkan) - out.Write("gl_Position = float4(o.pos.x, -o.pos.y, o.pos.z, o.pos.w);\n"); - else - out.Write("gl_Position = o.pos;\n"); + AssignVSOutputMembers(out, "vs", "o", uid_data->numTexGens, host_config); } - else // D3D + else { - out.Write("return o;\n"); + // TODO: Pass interface blocks between shader stages even if geometry shaders + // are not supported, however that will require at least OpenGL 3.2 support. + for (u32 i = 0; i < uid_data->numTexGens; ++i) + out.Write("tex{}.xyz = o.tex{};\n", i, i); + if (!host_config.fast_depth_calc) + out.Write("clipPos = o.clipPos;\n"); + if (per_pixel_lighting) + { + out.Write("Normal = o.Normal;\n" + "WorldPos = o.WorldPos;\n"); + } + out.Write("colors_0 = o.colors_0;\n" + "colors_1 = o.colors_1;\n"); } + + if (host_config.backend_depth_clamp) + { + out.Write("gl_ClipDistance[0] = clipDist0;\n" + "gl_ClipDistance[1] = clipDist1;\n"); + } + + // Vulkan NDC space has Y pointing down (right-handed NDC space). + if (api_type == APIType::Vulkan) + out.Write("gl_Position = float4(o.pos.x, -o.pos.y, o.pos.z, o.pos.w);\n"); + else + out.Write("gl_Position = o.pos;\n"); out.Write("}}\n"); return out; From 993fa3bf945b0effdf8d3ae841d1adb4b147ef1e Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 19 May 2022 21:37:34 -0500 Subject: [PATCH 267/659] VideoCommon: update UberShaderPixel to properly support logic ops, matching the specialized shader --- Source/Core/VideoCommon/UberShaderPixel.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index bfbe1a08f2..eff6bfae44 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -103,17 +103,19 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, bool has_broken_decoration = DriverDetails::HasBug(DriverDetails::BUG_BROKEN_FRAGMENT_SHADER_INDEX_DECORATION); - out.Write("{} {} vec4 {};\n", + out.Write("{} {} {} {};\n", has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(0)" : "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0)", use_framebuffer_fetch ? "FRAGMENT_INOUT" : "out", + uid_data->uint_output ? "uvec4" : "vec4", use_framebuffer_fetch ? "real_ocol0" : "ocol0"); if (use_dual_source) { - out.Write("{} out vec4 ocol1;\n", has_broken_decoration ? - "FRAGMENT_OUTPUT_LOCATION(1)" : - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)"); + out.Write("{} out {} ocol1;\n", + has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(1)" : + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1)", + uid_data->uint_output ? "uvec4" : "vec4"); } } From cad1d6ce909eeca6820444b09d9bf3ae9c6c7bc4 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Fri, 20 May 2022 23:18:23 -0500 Subject: [PATCH 268/659] VideoCommon: fix support of stereoscopic rendering after moving d3d to SPIRV generation --- Source/Core/VideoCommon/GeometryShaderGen.cpp | 10 ++++++---- Source/Core/VideoCommon/PixelShaderGen.cpp | 12 ++++++++---- Source/Core/VideoCommon/UberShaderPixel.cpp | 14 +++++++++----- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 997e809860..10895ccf88 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -123,9 +123,6 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& GetInterpolationQualifier(msaa, ssaa, true, false), ShaderStage::Geometry); - if (stereo) - out.Write("\tflat int layer;\n"); - out.Write("}} ps;\n"); out.Write("void main()\n{{\n"); @@ -136,7 +133,9 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& out.Write("\tVS_OUTPUT o;\n"); if (stereo) + { out.Write("\tuint layer : SV_RenderTargetArrayIndex;\n"); + } out.Write("\tfloat4 posout : SV_Position;\n"); out.Write("}};\n"); @@ -354,9 +353,12 @@ static void EmitVertex(ShaderCode& out, const ShaderHostConfig& host_config, if (stereo) { // Select the output layer - out.Write("\tps.layer = eye;\n"); if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) out.Write("\tgl_Layer = eye;\n"); + else + { + out.Write("\tps.layer = eye;\n"); + } } if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 11ac3a0c1a..93452de011 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -909,9 +909,6 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos GenerateVSOutputMembers(out, api_type, uid_data->genMode_numtexgens, host_config, GetInterpolationQualifier(msaa, ssaa, true, true), ShaderStage::Pixel); - if (stereo) - out.Write("\tflat int layer;\n"); - out.Write("}};\n"); } else @@ -967,8 +964,15 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos { out.Write("\tfloat4 ocol1;\n"); } - if (!stereo) + + if (host_config.backend_geometry_shaders && stereo) + { + out.Write("\tint layer = gl_Layer;\n"); + } + else + { out.Write("\tint layer = 0;\n"); + } out.Write("\tint4 c0 = " I_COLORS "[1], c1 = " I_COLORS "[2], c2 = " I_COLORS "[3], prev = " I_COLORS "[0];\n" diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index eff6bfae44..de1aaa72f7 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -128,9 +128,6 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, GenerateVSOutputMembers(out, api_type, numTexgen, host_config, GetInterpolationQualifier(msaa, ssaa, true, true), ShaderStage::Pixel); - if (stereo) - out.Write(" flat int layer;\n"); - out.Write("}};\n\n"); } else @@ -538,8 +535,15 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, { out.Write(" float4 ocol1;\n"); } - if (!stereo) - out.Write(" int layer = 0;\n"); + + if (host_config.backend_geometry_shaders && stereo) + { + out.Write("\tint layer = gl_Layer;\n"); + } + else + { + out.Write("\tint layer = 0;\n"); + } out.Write(" int3 tevcoord = int3(0, 0, 0);\n" " State s;\n" From 0eb9352579f26d8fe03d55dbdac97bd8f946fef0 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sun, 22 May 2022 14:28:12 -0500 Subject: [PATCH 269/659] D3D: update BoundingBox to match generated shader code --- Source/Core/VideoBackends/D3D/D3DBoundingBox.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/D3DBoundingBox.cpp b/Source/Core/VideoBackends/D3D/D3DBoundingBox.cpp index 2eb6da73df..7a6fe64d80 100644 --- a/Source/Core/VideoBackends/D3D/D3DBoundingBox.cpp +++ b/Source/Core/VideoBackends/D3D/D3DBoundingBox.cpp @@ -27,7 +27,8 @@ bool D3DBoundingBox::Initialize() // Create 2 buffers here. // First for unordered access on default pool. auto desc = CD3D11_BUFFER_DESC(NUM_BBOX_VALUES * sizeof(BBoxType), D3D11_BIND_UNORDERED_ACCESS, - D3D11_USAGE_DEFAULT, 0, 0, sizeof(BBoxType)); + D3D11_USAGE_DEFAULT, 0, D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS, + sizeof(BBoxType)); const BBoxType initial_values[NUM_BBOX_VALUES] = {0, 0, 0, 0}; D3D11_SUBRESOURCE_DATA data; data.pSysMem = initial_values; @@ -44,6 +45,7 @@ bool D3DBoundingBox::Initialize() desc.Usage = D3D11_USAGE_STAGING; desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; desc.BindFlags = 0; + desc.MiscFlags = 0; hr = D3D::device->CreateBuffer(&desc, nullptr, &m_staging_buffer); ASSERT_MSG(VIDEO, SUCCEEDED(hr), "Failed to create BoundingBox Staging Buffer: {}", DX11HRWrap(hr)); @@ -53,10 +55,10 @@ bool D3DBoundingBox::Initialize() // UAV is required to allow concurrent access. D3D11_UNORDERED_ACCESS_VIEW_DESC UAVdesc = {}; - UAVdesc.Format = DXGI_FORMAT_R32_SINT; + UAVdesc.Format = DXGI_FORMAT_R32_TYPELESS; UAVdesc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER; UAVdesc.Buffer.FirstElement = 0; - UAVdesc.Buffer.Flags = 0; + UAVdesc.Buffer.Flags = D3D11_BUFFER_UAV_FLAG_RAW; UAVdesc.Buffer.NumElements = NUM_BBOX_VALUES; hr = D3D::device->CreateUnorderedAccessView(m_buffer.Get(), &UAVdesc, &m_uav); ASSERT_MSG(VIDEO, SUCCEEDED(hr), "Failed to create BoundingBox UAV: {}", DX11HRWrap(hr)); From c2d3b7e7f571f4d24c81fa24be4efd34b310a290 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sun, 22 May 2022 14:28:35 -0500 Subject: [PATCH 270/659] VideoCommon: update pixel shader output to match old D3D code --- Source/Core/VideoCommon/PixelShaderGen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 93452de011..3304c74658 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -440,7 +440,7 @@ void WritePixelShaderCommonHeader(ShaderCode& out, APIType api_type, if (bounding_box) { - out.Write("SSBO_BINDING(0) buffer BBox {{\n" + out.Write("SSBO_BINDING(0) coherent buffer BBox {{\n" " int bbox_data[4];\n" "}};"); From dda1479ecf127c6729932de58060b5fd7b322d5f Mon Sep 17 00:00:00 2001 From: iwubcode Date: Tue, 24 May 2022 23:12:47 -0500 Subject: [PATCH 271/659] VideoBackends / VideoCommon: refactor Vulkan to use new SPIRV functionality --- .../Core/VideoBackends/D3DCommon/Shader.cpp | 6 +- .../Core/VideoBackends/Vulkan/CMakeLists.txt | 9 - .../VideoBackends/Vulkan/ShaderCompiler.cpp | 200 ++---------------- Source/Core/VideoCommon/Spirv.cpp | 32 +-- Source/Core/VideoCommon/Spirv.h | 15 +- 5 files changed, 49 insertions(+), 213 deletions(-) diff --git a/Source/Core/VideoBackends/D3DCommon/Shader.cpp b/Source/Core/VideoBackends/D3DCommon/Shader.cpp index 236efb77e7..1be4b2298e 100644 --- a/Source/Core/VideoBackends/D3DCommon/Shader.cpp +++ b/Source/Core/VideoBackends/D3DCommon/Shader.cpp @@ -114,7 +114,7 @@ std::optional GetSpirv(ShaderStage stage, std::string_view so case ShaderStage::Vertex: { const auto full_source = fmt::format("{}{}", SHADER_HEADER, source); - return SPIRV::CompileVertexShader(full_source); + return SPIRV::CompileVertexShader(full_source, APIType::D3D, glslang::EShTargetSpv_1_0); } case ShaderStage::Geometry: @@ -126,13 +126,13 @@ std::optional GetSpirv(ShaderStage stage, std::string_view so case ShaderStage::Pixel: { const auto full_source = fmt::format("{}{}", SHADER_HEADER, source); - return SPIRV::CompileFragmentShader(full_source); + return SPIRV::CompileFragmentShader(full_source, APIType::D3D, glslang::EShTargetSpv_1_0); } case ShaderStage::Compute: { const auto full_source = fmt::format("{}{}", COMPUTE_SHADER_HEADER, source); - return SPIRV::CompileComputeShader(full_source); + return SPIRV::CompileComputeShader(full_source, APIType::D3D, glslang::EShTargetSpv_1_0); } }; diff --git a/Source/Core/VideoBackends/Vulkan/CMakeLists.txt b/Source/Core/VideoBackends/Vulkan/CMakeLists.txt index 110733e613..4489ca9e10 100644 --- a/Source/Core/VideoBackends/Vulkan/CMakeLists.txt +++ b/Source/Core/VideoBackends/Vulkan/CMakeLists.txt @@ -54,15 +54,6 @@ PRIVATE ${CMAKE_SOURCE_DIR}/Externals/Vulkan/Include ) -# Silence warnings on glslang by flagging it as a system include -target_include_directories(videovulkan -SYSTEM PRIVATE - ${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone - ${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public - ${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV - ${CMAKE_SOURCE_DIR}/Externals/glslang -) - if(MSVC) # Add precompiled header target_link_libraries(videovulkan PRIVATE use_pch) diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index c9adcc1bf7..fde89ca394 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -4,36 +4,13 @@ #include "VideoBackends/Vulkan/ShaderCompiler.h" #include -#include -#include -#include -#include #include -// glslang includes -#include "GlslangToSpv.h" -#include "ResourceLimits.h" -#include "ShaderLang.h" -#include "disassemble.h" - -#include "Common/FileUtil.h" -#include "Common/Logging/Log.h" -#include "Common/MsgHandler.h" -#include "Common/StringUtil.h" -#include "Common/Version.h" - #include "VideoBackends/Vulkan/VulkanContext.h" -#include "VideoCommon/VideoBackendBase.h" -#include "VideoCommon/VideoConfig.h" +#include "VideoCommon/Spirv.h" namespace Vulkan::ShaderCompiler { -// Registers itself for cleanup via atexit -bool InitializeGlslang(); - -// Resource limits used when compiling shaders -static const TBuiltInResource* GetCompilerResourceLimits(); - // Regarding the UBO bind points, we subtract one from the binding index because // the OpenGL backend requires UBO #0 for non-block uniforms (at least on NV). // This allows us to share the same shaders but use bind point #0 in the Vulkan @@ -111,25 +88,9 @@ static const char SUBGROUP_HELPER_HEADER[] = R"( #define SUBGROUP_MAX(value) value = subgroupMax(value) )"; -static std::optional CompileShaderToSPV(EShLanguage stage, - const char* stage_filename, - std::string_view source, - std::string_view header) +static std::string GetShaderCode(std::string_view source, std::string_view header) { - if (!InitializeGlslang()) - return std::nullopt; - - std::unique_ptr shader = std::make_unique(stage); - std::unique_ptr program; - glslang::TShader::ForbidIncluder includer; - EProfile profile = ECoreProfile; - EShMessages messages = - static_cast(EShMsgDefault | EShMsgSpvRules | EShMsgVulkanRules); - int default_version = 450; - std::string full_source_code; - const char* pass_source_code = source.data(); - int pass_source_code_length = static_cast(source.size()); if (!header.empty()) { constexpr size_t subgroup_helper_header_length = std::size(SUBGROUP_HELPER_HEADER) - 1; @@ -138,168 +99,41 @@ static std::optional CompileShaderToSPV(EShLanguage stage, if (g_vulkan_context->SupportsShaderSubgroupOperations()) full_source_code.append(SUBGROUP_HELPER_HEADER, subgroup_helper_header_length); full_source_code.append(source); - pass_source_code = full_source_code.c_str(); - pass_source_code_length = static_cast(full_source_code.length()); } + return full_source_code; +} + +static glslang::EShTargetLanguageVersion GetLanguageVersion() +{ // Sub-group operations require Vulkan 1.1 and SPIR-V 1.3. if (g_vulkan_context->SupportsShaderSubgroupOperations()) - shader->setEnvTarget(glslang::EShTargetSpv, glslang::EShTargetSpv_1_3); + return glslang::EShTargetSpv_1_3; - shader->setStringsWithLengths(&pass_source_code, &pass_source_code_length, 1); - - auto DumpBadShader = [&](const char* msg) { - static int counter = 0; - std::string filename = VideoBackendBase::BadShaderFilename(stage_filename, counter++); - std::ofstream stream; - File::OpenFStream(stream, filename, std::ios_base::out); - if (stream.good()) - { - stream << full_source_code << std::endl; - stream << msg << std::endl; - stream << "Shader Info Log:" << std::endl; - stream << shader->getInfoLog() << std::endl; - stream << shader->getInfoDebugLog() << std::endl; - if (program) - { - stream << "Program Info Log:" << std::endl; - stream << program->getInfoLog() << std::endl; - stream << program->getInfoDebugLog() << std::endl; - } - } - - stream << "\n"; - stream << "Dolphin Version: " + Common::GetScmRevStr() + "\n"; - stream << "Video Backend: " + g_video_backend->GetDisplayName(); - stream.close(); - - PanicAlertFmt("{} (written to {})\nDebug info:\n{}", msg, filename, shader->getInfoLog()); - }; - - if (!shader->parse(GetCompilerResourceLimits(), default_version, profile, false, true, messages, - includer)) - { - DumpBadShader("Failed to parse shader"); - return std::nullopt; - } - - // Even though there's only a single shader, we still need to link it to generate SPV - program = std::make_unique(); - program->addShader(shader.get()); - if (!program->link(messages)) - { - DumpBadShader("Failed to link program"); - return std::nullopt; - } - - glslang::TIntermediate* intermediate = program->getIntermediate(stage); - if (!intermediate) - { - DumpBadShader("Failed to generate SPIR-V"); - return std::nullopt; - } - - SPIRVCodeVector out_code; - spv::SpvBuildLogger logger; - glslang::SpvOptions options; - - if (g_ActiveConfig.bEnableValidationLayer) - { - // Attach the source code to the SPIR-V for tools like RenderDoc. - intermediate->addSourceText(pass_source_code, pass_source_code_length); - - options.generateDebugInfo = true; - options.disableOptimizer = true; - options.optimizeSize = false; - options.disassemble = false; - options.validate = true; - } - - glslang::GlslangToSpv(*intermediate, out_code, &logger, &options); - - // Write out messages - // Temporary: skip if it contains "Warning, version 450 is not yet complete; most version-specific - // features are present, but some are missing." - if (strlen(shader->getInfoLog()) > 108) - WARN_LOG_FMT(VIDEO, "Shader info log: {}", shader->getInfoLog()); - if (strlen(shader->getInfoDebugLog()) > 0) - WARN_LOG_FMT(VIDEO, "Shader debug info log: {}", shader->getInfoDebugLog()); - if (strlen(program->getInfoLog()) > 25) - WARN_LOG_FMT(VIDEO, "Program info log: {}", program->getInfoLog()); - if (strlen(program->getInfoDebugLog()) > 0) - WARN_LOG_FMT(VIDEO, "Program debug info log: {}", program->getInfoDebugLog()); - const std::string spv_messages = logger.getAllMessages(); - if (!spv_messages.empty()) - WARN_LOG_FMT(VIDEO, "SPIR-V conversion messages: {}", spv_messages); - - // Dump source code of shaders out to file if enabled. - if (g_ActiveConfig.iLog & CONF_SAVESHADERS) - { - static int counter = 0; - std::string filename = StringFromFormat("%s%s_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), - stage_filename, counter++); - - std::ofstream stream; - File::OpenFStream(stream, filename, std::ios_base::out); - if (stream.good()) - { - stream << full_source_code << std::endl; - stream << "Shader Info Log:" << std::endl; - stream << shader->getInfoLog() << std::endl; - stream << shader->getInfoDebugLog() << std::endl; - stream << "Program Info Log:" << std::endl; - stream << program->getInfoLog() << std::endl; - stream << program->getInfoDebugLog() << std::endl; - stream << "SPIR-V conversion messages: " << std::endl; - stream << spv_messages; - stream << "SPIR-V:" << std::endl; - spv::Disassemble(stream, out_code); - } - } - - return out_code; -} - -bool InitializeGlslang() -{ - static bool glslang_initialized = false; - if (glslang_initialized) - return true; - - if (!glslang::InitializeProcess()) - { - PanicAlertFmt("Failed to initialize glslang shader compiler"); - return false; - } - - std::atexit([]() { glslang::FinalizeProcess(); }); - - glslang_initialized = true; - return true; -} - -const TBuiltInResource* GetCompilerResourceLimits() -{ - return &glslang::DefaultTBuiltInResource; + return glslang::EShTargetSpv_1_0; } std::optional CompileVertexShader(std::string_view source_code) { - return CompileShaderToSPV(EShLangVertex, "vs", source_code, SHADER_HEADER); + return SPIRV::CompileVertexShader(GetShaderCode(source_code, SHADER_HEADER), APIType::Vulkan, + GetLanguageVersion()); } std::optional CompileGeometryShader(std::string_view source_code) { - return CompileShaderToSPV(EShLangGeometry, "gs", source_code, SHADER_HEADER); + return SPIRV::CompileGeometryShader(GetShaderCode(source_code, SHADER_HEADER), APIType::Vulkan, + GetLanguageVersion()); } std::optional CompileFragmentShader(std::string_view source_code) { - return CompileShaderToSPV(EShLangFragment, "ps", source_code, SHADER_HEADER); + return SPIRV::CompileFragmentShader(GetShaderCode(source_code, SHADER_HEADER), APIType::Vulkan, + GetLanguageVersion()); } std::optional CompileComputeShader(std::string_view source_code) { - return CompileShaderToSPV(EShLangCompute, "cs", source_code, COMPUTE_SHADER_HEADER); + return SPIRV::CompileComputeShader(GetShaderCode(source_code, SHADER_HEADER), APIType::Vulkan, + GetLanguageVersion()); } } // namespace Vulkan::ShaderCompiler diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp index 9819811367..773a5463f2 100644 --- a/Source/Core/VideoCommon/Spirv.cpp +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -6,7 +6,6 @@ // glslang includes #include "GlslangToSpv.h" #include "ResourceLimits.h" -#include "ShaderLang.h" #include "disassemble.h" #include "Common/FileUtil.h" @@ -44,9 +43,9 @@ const TBuiltInResource* GetCompilerResourceLimits() } std::optional -CompileShaderToSPV(EShLanguage stage, - std::optional language_version, - const char* stage_filename, std::string_view source) +CompileShaderToSPV(EShLanguage stage, APIType api_type, + glslang::EShTargetLanguageVersion language_version, const char* stage_filename, + std::string_view source) { if (!InitializeGlslang()) return std::nullopt; @@ -56,13 +55,14 @@ CompileShaderToSPV(EShLanguage stage, glslang::TShader::ForbidIncluder includer; EProfile profile = ECoreProfile; EShMessages messages = static_cast(EShMsgDefault | EShMsgSpvRules); + if (api_type == APIType::Vulkan) + messages = static_cast(messages | EShMsgVulkanRules); int default_version = 450; const char* pass_source_code = source.data(); int pass_source_code_length = static_cast(source.size()); - if (language_version) - shader->setEnvTarget(glslang::EShTargetSpv, *language_version); + shader->setEnvTarget(glslang::EShTargetSpv, language_version); shader->setStringsWithLengths(&pass_source_code, &pass_source_code_length, 1); @@ -181,23 +181,27 @@ CompileShaderToSPV(EShLanguage stage, namespace SPIRV { -std::optional CompileVertexShader(std::string_view source_code) +std::optional CompileVertexShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version) { - return CompileShaderToSPV(EShLangVertex, std::nullopt, "vs", source_code); + return CompileShaderToSPV(EShLangVertex, api_type, language_version, "vs", source_code); } -std::optional CompileGeometryShader(std::string_view source_code) +std::optional CompileGeometryShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version) { - return CompileShaderToSPV(EShLangGeometry, std::nullopt, "gs", source_code); + return CompileShaderToSPV(EShLangGeometry, api_type, language_version, "gs", source_code); } -std::optional CompileFragmentShader(std::string_view source_code) +std::optional CompileFragmentShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version) { - return CompileShaderToSPV(EShLangFragment, std::nullopt, "ps", source_code); + return CompileShaderToSPV(EShLangFragment, api_type, language_version, "ps", source_code); } -std::optional CompileComputeShader(std::string_view source_code) +std::optional CompileComputeShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version) { - return CompileShaderToSPV(EShLangCompute, std::nullopt, "cs", source_code); + return CompileShaderToSPV(EShLangCompute, api_type, language_version, "cs", source_code); } } // namespace SPIRV diff --git a/Source/Core/VideoCommon/Spirv.h b/Source/Core/VideoCommon/Spirv.h index 81d1917eeb..fe75ea0f99 100644 --- a/Source/Core/VideoCommon/Spirv.h +++ b/Source/Core/VideoCommon/Spirv.h @@ -8,7 +8,10 @@ #include #include +#include "ShaderLang.h" + #include "Common/CommonTypes.h" +#include "VideoCommon/VideoCommon.h" namespace SPIRV { @@ -17,14 +20,18 @@ using CodeType = u32; using CodeVector = std::vector; // Compile a vertex shader to SPIR-V. -std::optional CompileVertexShader(std::string_view source_code); +std::optional CompileVertexShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version); // Compile a geometry shader to SPIR-V. -std::optional CompileGeometryShader(std::string_view source_code); +std::optional CompileGeometryShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version); // Compile a fragment shader to SPIR-V. -std::optional CompileFragmentShader(std::string_view source_code); +std::optional CompileFragmentShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version); // Compile a compute shader to SPIR-V. -std::optional CompileComputeShader(std::string_view source_code); +std::optional CompileComputeShader(std::string_view source_code, APIType api_type, + glslang::EShTargetLanguageVersion language_version); } // namespace SPIRV From a8b52663479effc0f404f7c0f8b52bc0ee37b742 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Mon, 30 May 2022 20:54:42 -0500 Subject: [PATCH 272/659] VideoCommon: enable optimizer and remove debug details when converting GLSL to SPIR-V with validation layers turned off --- Source/Core/VideoCommon/Spirv.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp index 773a5463f2..b10b4eb92b 100644 --- a/Source/Core/VideoCommon/Spirv.cpp +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -132,6 +132,11 @@ CompileShaderToSPV(EShLanguage stage, APIType api_type, options.disassemble = false; options.validate = true; } + else + { + options.disableOptimizer = false; + options.stripDebugInfo = true; + } glslang::GlslangToSpv(*intermediate, out_code, &logger, &options); From 52f32e61dc649ff460ac76b9ad0e478d45d13f5c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 24 Jun 2022 19:29:31 -0700 Subject: [PATCH 273/659] DSPHLE: Fix build error in the libasnd uCode This was a conflict between 8a144a735f4116650f59e6931fed86c1c00fa03c and b063f15dccf030e9b4fdeac189f779181d25db9c. --- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp index 44fd55b00a..74c70efc97 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -87,7 +87,7 @@ void ASndUCode::Initialize() void ASndUCode::Update() { // This is dubious in general, since we set the interrupt parameter on m_mail_handler.PushMail - if (!m_mail_handler.IsEmpty()) + if (m_mail_handler.HasPending()) { DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); } From 8c68d1055a47662407f5112c2c8610de1ad69f98 Mon Sep 17 00:00:00 2001 From: maxdunbar <48608399+maxdunbar@users.noreply.github.com> Date: Sat, 25 Jun 2022 08:05:12 -0700 Subject: [PATCH 274/659] Uncapitalizing wiki --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index a8543799f1..67c6253747 100644 --- a/Readme.md +++ b/Readme.md @@ -61,7 +61,7 @@ since the Binary directory contains a working Dolphin distribution. Dolphin requires [CMake](https://cmake.org/) for systems other than Windows. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any -missing packages yourself. You may refer to the [Wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux) for more information. +missing packages yourself. You may refer to the [wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux) for more information. Make sure to pull submodules before building: ```sh From caf0e5b3e857b4d3ceb1e93e3b75efbbe38cce61 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 25 Jun 2022 19:15:21 +0200 Subject: [PATCH 275/659] DSPHLE: Add variables in CMailHandler to savestate. --- Source/Core/Core/HW/DSPHLE/MailHandler.cpp | 2 ++ Source/Core/Core/State.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp index f297b6f53c..d9b6b5d406 100644 --- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp +++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp @@ -87,5 +87,7 @@ void CMailHandler::SetHalted(bool halt) void CMailHandler::DoState(PointerWrap& p) { p.Do(m_pending_mails); + p.Do(m_last_mail); + p.Do(m_halted); } } // namespace DSP::HLE diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 76349ba4d2..e10fc44fed 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 142; // Last changed in PR 10732 +constexpr u32 STATE_VERSION = 143; // Last changed in PR 10784 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 9675faa2329ab0aa6d55231ae56edacc90ace2c0 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sat, 25 Jun 2022 14:06:55 -0700 Subject: [PATCH 276/659] DSPHLE: Properly reflect initial halt state in mail handler DSPHLE::Initialize sets the halt and init bits to true (i.e. m_dsp_control.Hex starts as 0x804), which is reasonable behavior (this is the state the DSP will be in when starting a game from the IPL, as after `__OSStopAudioSystem` the control register is 0x804). However, CMailHandler::m_halted defaults to false, and we only call CMailHandler::SetHalted in DSPHLE::DSP_WriteControlRegister when m_dsp_control.DSPHalt changes, so since DSPHalt defaults to true, if the first thing that happens is writing true to DSPHalt, we won't properly halt the mail handler. Now, we call CMailHandler::SetHalted on startup. This fixes Datel titles when the IPL is skipped with DSP HLE (though this configuration only works once https://bugs.dolphin-emu.org/issues/8223 is fixed). --- Source/Core/Core/HW/DSPHLE/DSPHLE.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp index b8d3b8e5a2..d756aabdd1 100644 --- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp @@ -28,6 +28,7 @@ bool DSPHLE::Initialize(bool wii, bool dsp_thread) m_dsp_control.Hex = 0; m_dsp_control.DSPHalt = 1; m_dsp_control.DSPInit = 1; + m_mail_handler.SetHalted(m_dsp_control.DSPHalt); m_dsp_state.Reset(); From b2ddffeeb104d1323daa4539846cee07eb714e9c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 12 Jun 2022 22:27:42 -0700 Subject: [PATCH 277/659] BS2Emu: Set HID0/1/2/4 and MSR with correct default values These values were obtained by setting a breakpoint at a game's entry point, and then observing the register values with Dolphin's register widget. There are other registers that aren't handled by this PR, including CR, XER, SRR0, SRR1, and "Int Mask" (as well as most of the GPRs). They could be added in a later PR if it turns out that their values matter, but probably most of them don't. This fixes Datel titles booting with the IPL skipped (see https://bugs.dolphin-emu.org/issues/8223), though when booted this way they are currently missing textures. Due to somewhat janky code, Datel overwrites the syscall interrupt handler and then immediately triggers it (with the `sc` instruction) before they restore the correct one. This works on real hardware due to icache, and also works in Dolphin when the IPL runs due to icache, but prior to this change `HID0.ICE` defaulted to 0 so icache was not enabled when the IPL was skipped. --- Source/Core/Core/Boot/Boot.cpp | 4 +-- Source/Core/Core/Boot/Boot.h | 1 + Source/Core/Core/Boot/Boot_BS2Emu.cpp | 40 +++++++++++++++++++++++++-- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index 4e2844c95b..86ea8e2179 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -538,14 +538,12 @@ bool CBoot::BootUp(std::unique_ptr boot) SetDefaultDisc(); SetupMSR(); + SetupHID(config.bWii); SetupBAT(config.bWii); CopyDefaultExceptionHandlers(); if (config.bWii) { - PowerPC::ppcState.spr[SPR_HID0] = 0x0011c464; - PowerPC::ppcState.spr[SPR_HID4] = 0x82000000; - // Set a value for the SP. It doesn't matter where this points to, // as long as it is a valid location. This value is taken from a homebrew binary. PowerPC::ppcState.gpr[1] = 0x8004d4bc; diff --git a/Source/Core/Core/Boot/Boot.h b/Source/Core/Core/Boot/Boot.h index 236dddaeca..78748717d0 100644 --- a/Source/Core/Core/Boot/Boot.h +++ b/Source/Core/Core/Boot/Boot.h @@ -160,6 +160,7 @@ private: static bool BootNANDTitle(u64 title_id); static void SetupMSR(); + static void SetupHID(bool is_wii); static void SetupBAT(bool is_wii); static bool RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, const std::vector& riivolution_patches); diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index 1265317a90..2c51a8ddbf 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -61,10 +61,44 @@ void CBoot::RunFunction(u32 address) void CBoot::SetupMSR() { - MSR.FP = 1; + // 0x0002032 + MSR.RI = 1; MSR.DR = 1; MSR.IR = 1; - MSR.EE = 1; + MSR.FP = 1; +} + +void CBoot::SetupHID(bool is_wii) +{ + // HID0 is 0x0011c464 on GC, 0x0011c664 on Wii + HID0.BHT = 1; + HID0.BTIC = 1; + HID0.DCFA = 1; + if (is_wii) + HID0.SPD = 1; + HID0.DCFI = 1; + HID0.DCE = 1; + // Note that Datel titles will fail to boot if the instruction cache is not enabled; see + // https://bugs.dolphin-emu.org/issues/8223 + HID0.ICE = 1; + HID0.NHR = 1; + HID0.DPM = 1; + + // HID1 is initialized in PowerPC.cpp to 0x80000000 + // HID2 is 0xe0000000 + HID2.PSE = 1; + HID2.WPE = 1; + HID2.LSQE = 1; + + // HID4 is 0 on GC and 0x83900000 on Wii + if (is_wii) + { + HID4.L2CFI = 1; + HID4.LPE = 1; + HID4.ST0 = 1; + HID4.SBE = 1; + HID4.reserved_3 = 1; + } } void CBoot::SetupBAT(bool is_wii) @@ -214,6 +248,7 @@ bool CBoot::EmulatedBS2_GC(const DiscIO::VolumeDisc& volume, INFO_LOG_FMT(BOOT, "Faking GC BS2..."); SetupMSR(); + SetupHID(/*is_wii*/ false); SetupBAT(/*is_wii*/ false); SetupGCMemory(); @@ -500,6 +535,7 @@ bool CBoot::EmulatedBS2_Wii(const DiscIO::VolumeDisc& volume, DVDRead(volume, 0, 0x3180, 4, partition); SetupMSR(); + SetupHID(/*is_wii*/ true); SetupBAT(/*is_wii*/ true); Memory::Write_U32(0x4c000064, 0x00000300); // Write default DSI Handler: rfi From 76401e8ffb3795e127ab8c377c1ac29aa2745d02 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 12 Jun 2022 23:38:33 -0700 Subject: [PATCH 278/659] BS2Emu: Initialize the last rows of postMatrices to the identity matrix This fixes Datel titles having missing textures (which was an issue with the previous commit). --- Source/Core/Core/Boot/Boot_BS2Emu.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index 2c51a8ddbf..9068c63983 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -37,6 +37,10 @@ #include "DiscIO/RiivolutionPatcher.h" #include "DiscIO/VolumeDisc.h" +#include "VideoCommon/VertexManagerBase.h" +#include "VideoCommon/VertexShaderManager.h" +#include "VideoCommon/XFMemory.h" + namespace { void PresetTimeBaseTicks() @@ -253,6 +257,17 @@ bool CBoot::EmulatedBS2_GC(const DiscIO::VolumeDisc& volume, SetupGCMemory(); + // Datel titles don't initialize the postMatrices, but they have dual-texture coordinate + // transformation enabled. We initialize all of xfmem to 0, which results in everything using + // a texture coordinate of (0, 0), breaking textures. Normally the IPL will initialize the last + // entry to the identity matrix, but the whole point of BS2 EMU is that it skips the IPL, so we + // need to do this initialization ourselves. + xfmem.postMatrices[0x3d * 4 + 0] = 1.0f; + xfmem.postMatrices[0x3e * 4 + 1] = 1.0f; + xfmem.postMatrices[0x3f * 4 + 2] = 1.0f; + g_vertex_manager->Flush(); + VertexShaderManager::InvalidateXFRange(XFMEM_POSTMATRICES + 0x3d * 4, XFMEM_POSTMATRICES_END); + DVDReadDiscID(volume, 0x00000000); bool streaming = Memory::Read_U8(0x80000008); From a1892a9c68895c05493bd203996d8ab812283614 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 2 Mar 2022 00:36:10 -0600 Subject: [PATCH 279/659] VideoCommon: add function to check whether TextureFormat is a valid value --- Source/Core/VideoCommon/TextureDecoder.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/VideoCommon/TextureDecoder.h b/Source/Core/VideoCommon/TextureDecoder.h index a00e95d8f2..dcc7513d43 100644 --- a/Source/Core/VideoCommon/TextureDecoder.h +++ b/Source/Core/VideoCommon/TextureDecoder.h @@ -50,6 +50,11 @@ static inline bool IsColorIndexed(TextureFormat format) format == TextureFormat::C14X2; } +static inline bool IsValidTextureFormat(TextureFormat format) +{ + return format <= TextureFormat::RGBA8 || IsColorIndexed(format) || format == TextureFormat::CMPR; +} + // The EFB Copy pipeline looks like: // // 1. Read EFB -> 2. Select color/depth -> 3. Downscale (optional) From 7854afe512870b83baae0e11c42d62721e20a083 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 5 Mar 2022 14:52:02 -0600 Subject: [PATCH 280/659] VideoCommon: add support for setting and getting the stage from the texture info --- Source/Core/VideoCommon/TextureInfo.cpp | 21 +++++++++++++-------- Source/Core/VideoCommon/TextureInfo.h | 13 +++++++++---- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Source/Core/VideoCommon/TextureInfo.cpp b/Source/Core/VideoCommon/TextureInfo.cpp index 696f5b904c..ff117c6926 100644 --- a/Source/Core/VideoCommon/TextureInfo.cpp +++ b/Source/Core/VideoCommon/TextureInfo.cpp @@ -39,20 +39,20 @@ TextureInfo TextureInfo::FromStage(u32 stage) if (from_tmem) { - return TextureInfo(&texMem[tmem_address_even], tlut_ptr, address, texture_format, tlut_format, - width, height, true, &texMem[tmem_address_odd], &texMem[tmem_address_even], - mip_count); + return TextureInfo(stage, &texMem[tmem_address_even], tlut_ptr, address, texture_format, + tlut_format, width, height, true, &texMem[tmem_address_odd], + &texMem[tmem_address_even], mip_count); } - return TextureInfo(Memory::GetPointer(address), tlut_ptr, address, texture_format, tlut_format, - width, height, false, nullptr, nullptr, mip_count); + return TextureInfo(stage, Memory::GetPointer(address), tlut_ptr, address, texture_format, + tlut_format, width, height, false, nullptr, nullptr, mip_count); } -TextureInfo::TextureInfo(const u8* ptr, const u8* tlut_ptr, u32 address, +TextureInfo::TextureInfo(u32 stage, const u8* ptr, const u8* tlut_ptr, u32 address, TextureFormat texture_format, TLUTFormat tlut_format, u32 width, u32 height, bool from_tmem, const u8* tmem_odd, const u8* tmem_even, std::optional mip_count) - : m_ptr(ptr), m_tlut_ptr(tlut_ptr), m_address(address), m_from_tmem(from_tmem), + : m_stage(stage), m_ptr(ptr), m_tlut_ptr(tlut_ptr), m_address(address), m_from_tmem(from_tmem), m_tmem_odd(tmem_odd), m_texture_format(texture_format), m_tlut_format(tlut_format), m_raw_width(width), m_raw_height(height) { @@ -100,7 +100,7 @@ std::string TextureInfo::NameDetails::GetFullName() const return fmt::format("{}_{}{}_{}", base_name, texture_name, tlut_name, format_name); } -TextureInfo::NameDetails TextureInfo::CalculateTextureName() +TextureInfo::NameDetails TextureInfo::CalculateTextureName() const { if (!m_ptr) return NameDetails{}; @@ -240,6 +240,11 @@ u32 TextureInfo::GetRawHeight() const return m_raw_height; } +u32 TextureInfo::GetStage() const +{ + return m_stage; +} + bool TextureInfo::HasMipMaps() const { return !m_mip_levels.empty(); diff --git a/Source/Core/VideoCommon/TextureInfo.h b/Source/Core/VideoCommon/TextureInfo.h index 109715ba45..940b09b3cb 100644 --- a/Source/Core/VideoCommon/TextureInfo.h +++ b/Source/Core/VideoCommon/TextureInfo.h @@ -17,9 +17,10 @@ class TextureInfo { public: static TextureInfo FromStage(u32 stage); - TextureInfo(const u8* ptr, const u8* tlut_ptr, u32 address, TextureFormat texture_format, - TLUTFormat tlut_format, u32 width, u32 height, bool from_tmem, const u8* tmem_odd, - const u8* tmem_even, std::optional mip_count); + TextureInfo(u32 stage, const u8* ptr, const u8* tlut_ptr, u32 address, + TextureFormat texture_format, TLUTFormat tlut_format, u32 width, u32 height, + bool from_tmem, const u8* tmem_odd, const u8* tmem_even, + std::optional mip_count); struct NameDetails { @@ -30,7 +31,7 @@ public: std::string GetFullName() const; }; - NameDetails CalculateTextureName(); + NameDetails CalculateTextureName() const; const u8* GetData() const; const u8* GetTlutAddress() const; @@ -55,6 +56,8 @@ public: u32 GetRawWidth() const; u32 GetRawHeight() const; + u32 GetStage() const; + class MipLevel { public: @@ -115,4 +118,6 @@ private: u32 m_block_height; u32 m_expanded_height; u32 m_raw_height; + + u32 m_stage; }; From b9995b04a0369fbebe9c10bea8404a5e2206262c Mon Sep 17 00:00:00 2001 From: iwubcode Date: Tue, 15 Mar 2022 23:43:36 -0500 Subject: [PATCH 281/659] VideoCommon: add a way to get have a graphics directory count for all games by using a special 'all.txt' instead of a 'gameid.txt' file --- Source/Core/VideoCommon/HiresTextures.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoCommon/HiresTextures.cpp b/Source/Core/VideoCommon/HiresTextures.cpp index 85c9cfc238..96b340772f 100644 --- a/Source/Core/VideoCommon/HiresTextures.cpp +++ b/Source/Core/VideoCommon/HiresTextures.cpp @@ -433,17 +433,17 @@ std::set GetTextureDirectoriesWithGameId(const std::string& root_di } } - const auto match_gameid = [game_id](const std::string& filename) { + const auto match_gameid_or_all = [game_id](const std::string& filename) { std::string basename; SplitPath(filename, nullptr, &basename, nullptr); - return basename == game_id || basename == game_id.substr(0, 3); + return basename == game_id || basename == game_id.substr(0, 3) || basename == "all"; }; // Look for any other directories that might be specific to the given gameid const auto files = Common::DoFileSearch({root_directory}, {".txt"}, true); for (const auto& file : files) { - if (match_gameid(file)) + if (match_gameid_or_all(file)) { // The following code is used to calculate the top directory // of a found gameid.txt file From 4fbbd85ef45e4d3f609035563abab362cdc89b7f Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 26 May 2022 00:59:24 -0500 Subject: [PATCH 282/659] VideoCommon: create variables for EFB/XFB copy prefix. Reword prefix to 'efb1' and 'xfb1' to match textures --- Source/Core/VideoCommon/TextureCacheBase.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index daf7e292d1..503d2544b5 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -29,6 +30,9 @@ class AbstractStagingTexture; class PointerWrap; struct VideoConfig; +constexpr std::string_view EFB_DUMP_PREFIX = "efb1"; +constexpr std::string_view XFB_DUMP_PREFIX = "xfb1"; + struct TextureAndTLUTFormat { TextureAndTLUTFormat(TextureFormat texfmt_ = TextureFormat::I4, From 3857e1fa66fd2e17b29a93e02a38e6ac86eb063d Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 2 Mar 2022 00:34:54 -0600 Subject: [PATCH 283/659] Core: add GraphicsMod directory --- Source/Core/Common/CommonPaths.h | 4 ++++ Source/Core/Common/FileUtil.cpp | 2 ++ Source/Core/Common/FileUtil.h | 1 + Source/Core/UICommon/UICommon.cpp | 3 +++ 4 files changed, 10 insertions(+) diff --git a/Source/Core/Common/CommonPaths.h b/Source/Core/Common/CommonPaths.h index 1482b9656c..306dbb78ff 100644 --- a/Source/Core/Common/CommonPaths.h +++ b/Source/Core/Common/CommonPaths.h @@ -72,6 +72,7 @@ #define BACKUP_DIR "Backup" #define RESOURCEPACK_DIR "ResourcePacks" #define DYNAMICINPUT_DIR "DynamicInputTextures" +#define GRAPHICSMOD_DIR "GraphicMods" // This one is only used to remove it if it was present #define SHADERCACHE_LEGACY_DIR "ShaderCache" @@ -137,3 +138,6 @@ // Subdirs in Sys #define GC_SYS_DIR "GC" #define WII_SYS_DIR "Wii" + +// Subdirs in Config +#define GRAPHICSMOD_CONFIG_DIR "GraphicMods" diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 522d3028fa..c9dae68b60 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -967,6 +967,7 @@ static void RebuildUserDirectories(unsigned int dir_index) s_user_paths[D_BACKUP_IDX] = s_user_paths[D_USER_IDX] + BACKUP_DIR DIR_SEP; s_user_paths[D_RESOURCEPACK_IDX] = s_user_paths[D_USER_IDX] + RESOURCEPACK_DIR DIR_SEP; s_user_paths[D_DYNAMICINPUT_IDX] = s_user_paths[D_LOAD_IDX] + DYNAMICINPUT_DIR DIR_SEP; + s_user_paths[D_GRAPHICSMOD_IDX] = s_user_paths[D_LOAD_IDX] + GRAPHICSMOD_DIR DIR_SEP; s_user_paths[F_DOLPHINCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + DOLPHIN_CONFIG; s_user_paths[F_GCPADCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + GCPAD_CONFIG; s_user_paths[F_WIIPADCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + WIIPAD_CONFIG; @@ -1045,6 +1046,7 @@ static void RebuildUserDirectories(unsigned int dir_index) s_user_paths[D_HIRESTEXTURES_IDX] = s_user_paths[D_LOAD_IDX] + HIRES_TEXTURES_DIR DIR_SEP; s_user_paths[D_RIIVOLUTION_IDX] = s_user_paths[D_LOAD_IDX] + RIIVOLUTION_DIR DIR_SEP; s_user_paths[D_DYNAMICINPUT_IDX] = s_user_paths[D_LOAD_IDX] + DYNAMICINPUT_DIR DIR_SEP; + s_user_paths[D_GRAPHICSMOD_IDX] = s_user_paths[D_LOAD_IDX] + GRAPHICSMOD_DIR DIR_SEP; break; } } diff --git a/Source/Core/Common/FileUtil.h b/Source/Core/Common/FileUtil.h index 2672e237de..2b8d59ae2a 100644 --- a/Source/Core/Common/FileUtil.h +++ b/Source/Core/Common/FileUtil.h @@ -60,6 +60,7 @@ enum D_BACKUP_IDX, D_RESOURCEPACK_IDX, D_DYNAMICINPUT_IDX, + D_GRAPHICSMOD_IDX, D_GBAUSER_IDX, D_GBASAVES_IDX, FIRST_FILE_USER_PATH_IDX, diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index cb857fd3c7..1eb76d6b8b 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -69,6 +69,7 @@ static void CreateLoadPath(std::string path) File::SetUserPath(D_LOAD_IDX, std::move(path)); File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX)); File::CreateFullPath(File::GetUserPath(D_RIIVOLUTION_IDX)); + File::CreateFullPath(File::GetUserPath(D_GRAPHICSMOD_IDX)); } static void CreateResourcePackPath(std::string path) @@ -188,6 +189,7 @@ void CreateDirectories() File::CreateFullPath(File::GetUserPath(D_CACHE_IDX)); File::CreateFullPath(File::GetUserPath(D_COVERCACHE_IDX)); File::CreateFullPath(File::GetUserPath(D_CONFIG_IDX)); + File::CreateFullPath(File::GetUserPath(D_CONFIG_IDX) + GRAPHICSMOD_CONFIG_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX)); File::CreateFullPath(File::GetUserPath(D_DUMPSSL_IDX)); File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX)); @@ -197,6 +199,7 @@ void CreateDirectories() File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX) + EUR_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX) + JAP_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX)); + File::CreateFullPath(File::GetUserPath(D_GRAPHICSMOD_IDX)); File::CreateFullPath(File::GetUserPath(D_MAILLOGS_IDX)); File::CreateFullPath(File::GetUserPath(D_MAPS_IDX)); File::CreateFullPath(File::GetUserPath(D_SCREENSHOTS_IDX)); From f92beb611f5e7effc9d1b8a90fbd4004233945ff Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 12 Mar 2022 15:30:50 -0600 Subject: [PATCH 284/659] VideoCommon: add game mod constants --- Source/Core/DolphinLib.props | 1 + Source/Core/VideoCommon/CMakeLists.txt | 1 + Source/Core/VideoCommon/GraphicsModSystem/Constants.h | 11 +++++++++++ 3 files changed, 13 insertions(+) create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Constants.h diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index c1635eb6fb..b164c6dda1 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -631,6 +631,7 @@ + diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index ec8f89c829..51e51e672d 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -39,6 +39,7 @@ add_library(videocommon GeometryShaderGen.h GeometryShaderManager.cpp GeometryShaderManager.h + GraphicsModSystem/Constants.h HiresTextures.cpp HiresTextures.h HiresTextures_DDSLoader.cpp diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Constants.h b/Source/Core/VideoCommon/GraphicsModSystem/Constants.h new file mode 100644 index 0000000000..5c73c3e962 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Constants.h @@ -0,0 +1,11 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "Common/CommonPaths.h" + +static const inline std::string DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR = + LOAD_DIR DIR_SEP GRAPHICSMOD_DIR DIR_SEP; From 643f82539c9bc43a8573fabee3a236bfeb67cd47 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 19 May 2022 22:19:17 -0500 Subject: [PATCH 285/659] ControllerEmu: Expose gate size setting for octagon analog sticks. --- .../ControllerEmu/ControlGroup/AnalogStick.cpp | 16 +++++++++++++++- .../ControllerEmu/ControlGroup/AnalogStick.h | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp index aaabfa5b17..e4d74aa524 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp @@ -65,9 +65,18 @@ OctagonAnalogStick::OctagonAnalogStick(const char* name_, ControlState gate_radi OctagonAnalogStick::OctagonAnalogStick(const char* name_, const char* ui_name_, ControlState gate_radius) - : AnalogStick(name_, ui_name_, std::make_unique(gate_radius)) + : AnalogStick(name_, ui_name_, std::make_unique(1.0)) { AddVirtualNotchSetting(&m_virtual_notch_setting, 45); + + AddSetting( + &m_gate_size_setting, + {_trans("Gate Size"), + // i18n: The percent symbol. + _trans("%"), + // i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. + _trans("Adjusts target radius of simulated stick gate.")}, + gate_radius * 100, 0.01, 100); } ControlState OctagonAnalogStick::GetVirtualNotchSize() const @@ -75,4 +84,9 @@ ControlState OctagonAnalogStick::GetVirtualNotchSize() const return m_virtual_notch_setting.GetValue() * MathUtil::TAU / 360; } +ControlState OctagonAnalogStick::GetGateRadiusAtAngle(double ang) const +{ + return AnalogStick::GetGateRadiusAtAngle(ang) * m_gate_size_setting.GetValue() / 100; +} + } // namespace ControllerEmu diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h index d5363cecef..47e3ad5743 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.h @@ -36,9 +36,11 @@ public: OctagonAnalogStick(const char* name, const char* ui_name, ControlState gate_radius); ControlState GetVirtualNotchSize() const override; + ControlState GetGateRadiusAtAngle(double ang) const override; private: SettingValue m_virtual_notch_setting; + SettingValue m_gate_size_setting; }; } // namespace ControllerEmu From 80d9e79cf1f56101f47e528ed390243e7fe790bf Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 19 May 2022 22:33:15 -0500 Subject: [PATCH 286/659] ControllerEmu: Allow settings to be categorized as "advanced". Make "Virtual Notches" and "Gate Size" categorized as such. --- .../ControllerEmu/ControlGroup/AnalogStick.cpp | 3 ++- .../ControllerEmu/ControlGroup/ControlGroup.cpp | 3 ++- .../ControllerEmu/Setting/NumericSetting.h | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp index e4d74aa524..539e02b449 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp @@ -75,7 +75,8 @@ OctagonAnalogStick::OctagonAnalogStick(const char* name_, const char* ui_name_, // i18n: The percent symbol. _trans("%"), // i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. - _trans("Adjusts target radius of simulated stick gate.")}, + _trans("Adjusts target radius of simulated stick gate."), nullptr, + SettingVisibility::Advanced}, gate_radius * 100, 0.01, 100); } diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp index 2f1eb25d5e..890c43a848 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp @@ -32,7 +32,8 @@ void ControlGroup::AddVirtualNotchSetting(SettingValue* value, double ma AddSetting(value, {_trans("Virtual Notches"), // i18n: The degrees symbol. - _trans("°"), _trans("Snap the thumbstick position to the nearest octagonal axis.")}, + _trans("°"), _trans("Snap the thumbstick position to the nearest octagonal axis."), + nullptr, SettingVisibility::Advanced}, 0, 0, max_virtual_notch_deg); } diff --git a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h index 467e55f039..34321d0ebc 100644 --- a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h +++ b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h @@ -20,13 +20,20 @@ enum class SettingType Bool, }; +enum class SettingVisibility +{ + Normal, + Advanced, +}; + struct NumericSettingDetails { NumericSettingDetails(const char* const _ini_name, const char* const _ui_suffix = nullptr, const char* const _ui_description = nullptr, - const char* const _ui_name = nullptr) + const char* const _ui_name = nullptr, + SettingVisibility _visibility = SettingVisibility::Normal) : ini_name(_ini_name), ui_suffix(_ui_suffix), ui_description(_ui_description), - ui_name(_ui_name ? _ui_name : _ini_name) + ui_name(_ui_name ? _ui_name : _ini_name), visibility(_visibility) { } @@ -41,6 +48,9 @@ struct NumericSettingDetails // The name used in the UI (if different from ini file). const char* const ui_name; + + // Advanced settings should be harder to change in the UI. They might confuse users. + const SettingVisibility visibility; }; class NumericSettingBase From 4c409411edb2957a0f6505aaf6c93e5c6c71f896 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 19 May 2022 22:47:30 -0500 Subject: [PATCH 287/659] DolphinQt: Don't show the advanced input settings on the main dialog. --- .../Config/Mapping/MappingWidget.cpp | 119 ++++++++++++++---- .../DolphinQt/Config/Mapping/MappingWidget.h | 4 + .../ControllerEmu/Setting/NumericSetting.cpp | 5 + .../ControllerEmu/Setting/NumericSetting.h | 7 +- 4 files changed, 111 insertions(+), 24 deletions(-) diff --git a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp index 1206ad75ff..a7ea873e41 100644 --- a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp @@ -4,6 +4,7 @@ #include "DolphinQt/Config/Mapping/MappingWidget.h" #include +#include #include #include #include @@ -121,8 +122,54 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con for (auto& control : group->controls) CreateControl(control.get(), form_layout, !indicator); + AddSettingWidgets(form_layout, group, ControllerEmu::SettingVisibility::Normal); + + if (group->default_value != ControllerEmu::ControlGroup::DefaultValue::AlwaysEnabled) + { + QLabel* group_enable_label = new QLabel(tr("Enable")); + QCheckBox* group_enable_checkbox = new QCheckBox(); + group_enable_checkbox->setChecked(group->enabled); + form_layout->insertRow(0, group_enable_label, group_enable_checkbox); + auto enable_group_by_checkbox = [group, form_layout, group_enable_label, + group_enable_checkbox] { + group->enabled = group_enable_checkbox->isChecked(); + for (int i = 0; i < form_layout->count(); ++i) + { + QWidget* widget = form_layout->itemAt(i)->widget(); + if (widget != nullptr && widget != group_enable_label && widget != group_enable_checkbox) + widget->setEnabled(group->enabled); + } + }; + enable_group_by_checkbox(); + connect(group_enable_checkbox, &QCheckBox::toggled, this, enable_group_by_checkbox); + connect(this, &MappingWidget::ConfigChanged, this, + [group_enable_checkbox, group] { group_enable_checkbox->setChecked(group->enabled); }); + } + + const auto advanced_setting_count = std::count_if( + group->numeric_settings.begin(), group->numeric_settings.end(), [](auto& setting) { + return setting->GetVisibility() == ControllerEmu::SettingVisibility::Advanced; + }); + + if (advanced_setting_count != 0) + { + const auto advanced_button = new QPushButton(tr("Advanced")); + form_layout->addRow(advanced_button); + connect(advanced_button, &QPushButton::clicked, + [this, group] { ShowAdvancedControlGroupDialog(group); }); + } + + return group_box; +} + +void MappingWidget::AddSettingWidgets(QFormLayout* layout, ControllerEmu::ControlGroup* group, + ControllerEmu::SettingVisibility visibility) +{ for (auto& setting : group->numeric_settings) { + if (setting->GetVisibility() != visibility) + continue; + QWidget* setting_widget = nullptr; switch (setting->GetType()) @@ -149,33 +196,59 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con hbox->addWidget(setting_widget); hbox->addWidget(CreateSettingAdvancedMappingButton(*setting)); - form_layout->addRow(tr(setting->GetUIName()), hbox); + layout->addRow(tr(setting->GetUIName()), hbox); } } +} - if (group->default_value != ControllerEmu::ControlGroup::DefaultValue::AlwaysEnabled) - { - QLabel* group_enable_label = new QLabel(tr("Enable")); - QCheckBox* group_enable_checkbox = new QCheckBox(); - group_enable_checkbox->setChecked(group->enabled); - form_layout->insertRow(0, group_enable_label, group_enable_checkbox); - auto enable_group_by_checkbox = [group, form_layout, group_enable_label, - group_enable_checkbox] { - group->enabled = group_enable_checkbox->isChecked(); - for (int i = 0; i < form_layout->count(); ++i) - { - QWidget* widget = form_layout->itemAt(i)->widget(); - if (widget != nullptr && widget != group_enable_label && widget != group_enable_checkbox) - widget->setEnabled(group->enabled); - } - }; - enable_group_by_checkbox(); - connect(group_enable_checkbox, &QCheckBox::toggled, this, enable_group_by_checkbox); - connect(this, &MappingWidget::ConfigChanged, this, - [group_enable_checkbox, group] { group_enable_checkbox->setChecked(group->enabled); }); - } +void MappingWidget::ShowAdvancedControlGroupDialog(ControllerEmu::ControlGroup* group) +{ + QDialog dialog{this}; + dialog.setWindowTitle(tr(group->ui_name.c_str())); - return group_box; + const auto group_box = new QGroupBox(tr("Advanced Settings")); + + QFormLayout* form_layout = new QFormLayout(); + + AddSettingWidgets(form_layout, group, ControllerEmu::SettingVisibility::Advanced); + + const auto reset_button = new QPushButton(tr("Reset All")); + form_layout->addRow(reset_button); + + connect(reset_button, &QPushButton::clicked, [this, group] { + for (auto& setting : group->numeric_settings) + { + if (setting->GetVisibility() != ControllerEmu::SettingVisibility::Advanced) + continue; + + setting->SetToDefault(); + } + + emit ConfigChanged(); + }); + + const auto main_layout = new QVBoxLayout(); + const auto button_box = new QDialogButtonBox(QDialogButtonBox::Close); + + group_box->setLayout(form_layout); + + main_layout->addWidget(group_box); + main_layout->addWidget(button_box); + + dialog.setLayout(main_layout); + + // Focusing something else by default instead of the first spin box. + // Dynamically changing expression-backed settings pause when taking input. + // This just avoids that weird edge case behavior when the dialog is first open. + button_box->setFocus(); + + // Signal the newly created numeric setting widgets to display the current values. + emit ConfigChanged(); + + // Enable "Close" button functionality. + connect(button_box, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); + + dialog.exec(); } QGroupBox* MappingWidget::CreateControlsBox(const QString& name, ControllerEmu::ControlGroup* group, diff --git a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.h b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.h index ad55172f4a..941bb09577 100644 --- a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.h +++ b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.h @@ -26,6 +26,7 @@ class Control; class ControlGroup; class EmulatedController; class NumericSettingBase; +enum class SettingVisibility; } // namespace ControllerEmu constexpr int INDICATOR_UPDATE_FREQ = 30; @@ -57,6 +58,9 @@ protected: int columns); void CreateControl(const ControllerEmu::Control* control, QFormLayout* layout, bool indicator); QPushButton* CreateSettingAdvancedMappingButton(ControllerEmu::NumericSettingBase& setting); + void AddSettingWidgets(QFormLayout* layout, ControllerEmu::ControlGroup* group, + ControllerEmu::SettingVisibility visibility); + void ShowAdvancedControlGroupDialog(ControllerEmu::ControlGroup* group); private: MappingWindow* m_parent; diff --git a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp index 70352ccfd8..f7f2054927 100644 --- a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp +++ b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp @@ -26,6 +26,11 @@ const char* NumericSettingBase::GetUIDescription() const return m_details.ui_description; } +SettingVisibility NumericSettingBase::GetVisibility() const +{ + return m_details.visibility; +} + template <> void NumericSetting::SetExpressionFromValue() { diff --git a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h index 34321d0ebc..8b36ab117e 100644 --- a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h +++ b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.h @@ -76,9 +76,12 @@ public: virtual SettingType GetType() const = 0; + virtual void SetToDefault() = 0; + const char* GetUIName() const; const char* GetUISuffix() const; const char* GetUIDescription() const; + SettingVisibility GetVisibility() const; protected: NumericSettingDetails m_details; @@ -102,9 +105,11 @@ public: : NumericSettingBase(details), m_value(*value), m_default_value(default_value), m_min_value(min_value), m_max_value(max_value) { - m_value.SetValue(m_default_value); + SetToDefault(); } + void SetToDefault() override { m_value.SetValue(m_default_value); } + void LoadFromIni(const IniFile::Section& section, const std::string& group_name) override { std::string str_value; From 87fb42b64cceeb89697f77d21487cac4cc968caf Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 31 May 2022 00:31:42 -0500 Subject: [PATCH 288/659] DolphinQt: Renamed "Range" to "Multiplier" in advanced mapping window. Removed the slider. Moved the spin box. --- .../DolphinQt/Config/Mapping/IOWindow.cpp | 40 +++++++++---------- .../Core/DolphinQt/Config/Mapping/IOWindow.h | 5 +-- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp b/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp index e6f5f208b3..bf5d911afb 100644 --- a/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp @@ -36,8 +36,6 @@ #include "InputCommon/ControllerInterface/ControllerInterface.h" #include "InputCommon/ControllerInterface/MappingCommon.h" -constexpr int SLIDER_TICK_COUNT = 100; - namespace { // TODO: Make sure these functions return colors that will be visible in the current theme. @@ -246,8 +244,7 @@ void IOWindow::CreateMainLayout() m_test_button = new QPushButton(tr("Test"), this); m_button_box = new QDialogButtonBox(); m_clear_button = new QPushButton(tr("Clear")); - m_range_slider = new QSlider(Qt::Horizontal); - m_range_spinbox = new QSpinBox(); + m_scalar_spinbox = new QSpinBox(); m_parse_text = new InputStateLineEdit([this] { const auto lock = m_controller->GetStateLock(); @@ -319,16 +316,20 @@ void IOWindow::CreateMainLayout() // Devices m_main_layout->addWidget(m_devices_combo); - // Range - auto* range_hbox = new QHBoxLayout(); - range_hbox->addWidget(new QLabel(tr("Range"))); - range_hbox->addWidget(m_range_slider); - range_hbox->addWidget(m_range_spinbox); - m_range_slider->setMinimum(-500); - m_range_slider->setMaximum(500); - m_range_spinbox->setMinimum(-500); - m_range_spinbox->setMaximum(500); - m_main_layout->addLayout(range_hbox); + // Scalar + auto* scalar_hbox = new QHBoxLayout(); + // i18n: Controller input values are multiplied by this percentage value. + scalar_hbox->addWidget(new QLabel(tr("Multiplier"))); + scalar_hbox->addWidget(m_scalar_spinbox); + + // Outputs are not bounds checked and greater than 100% has no use case. + // (incoming values are always 0 or 1) + // Negative 100% can be used to invert force feedback wheel direction. + const int scalar_min_max = (m_type == Type::Input) ? 1000 : 100; + m_scalar_spinbox->setMinimum(-scalar_min_max); + m_scalar_spinbox->setMaximum(scalar_min_max); + // i18n: Percentage symbol. + m_scalar_spinbox->setSuffix(tr("%")); // Options (Buttons, Outputs) and action buttons @@ -387,6 +388,8 @@ void IOWindow::CreateMainLayout() else m_functions_combo->hide(); + button_vbox->addLayout(scalar_hbox); + m_main_layout->addLayout(hbox, 2); m_main_layout->addWidget(m_expression_text, 1); m_main_layout->addWidget(m_parse_text); @@ -409,8 +412,7 @@ void IOWindow::ConfigChanged() m_expression_text->setPlainText(QString::fromStdString(m_reference->GetExpression())); m_expression_text->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); - m_range_spinbox->setValue(m_reference->range * SLIDER_TICK_COUNT); - m_range_slider->setValue(m_reference->range * SLIDER_TICK_COUNT); + m_scalar_spinbox->setValue(m_reference->range * 100.0); if (m_devq.ToString().empty()) m_devq = m_controller->GetDefaultDevice(); @@ -436,7 +438,7 @@ void IOWindow::ConnectWidgets() connect(m_button_box, &QDialogButtonBox::clicked, this, &IOWindow::OnDialogButtonPressed); connect(m_devices_combo, &QComboBox::currentTextChanged, this, &IOWindow::OnDeviceChanged); - connect(m_range_spinbox, qOverload(&QSpinBox::valueChanged), this, + connect(m_scalar_spinbox, qOverload(&QSpinBox::valueChanged), this, &IOWindow::OnRangeChanged); connect(m_expression_text, &QPlainTextEdit::textChanged, @@ -548,9 +550,7 @@ void IOWindow::OnTestButtonPressed() void IOWindow::OnRangeChanged(int value) { - m_reference->range = static_cast(value) / SLIDER_TICK_COUNT; - m_range_spinbox->setValue(m_reference->range * SLIDER_TICK_COUNT); - m_range_slider->setValue(m_reference->range * SLIDER_TICK_COUNT); + m_reference->range = value / 100.0; } void IOWindow::ReleaseDevices() diff --git a/Source/Core/DolphinQt/Config/Mapping/IOWindow.h b/Source/Core/DolphinQt/Config/Mapping/IOWindow.h index cfb2d30c69..1a0c38f96e 100644 --- a/Source/Core/DolphinQt/Config/Mapping/IOWindow.h +++ b/Source/Core/DolphinQt/Config/Mapping/IOWindow.h @@ -105,9 +105,8 @@ private: // Options QTableWidget* m_option_list; - // Range - QSlider* m_range_slider; - QSpinBox* m_range_spinbox; + // Scalar + QSpinBox* m_scalar_spinbox; // Shared actions QPushButton* m_select_button; From 2b36587af72fec44b949e27670b85982064009c5 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 26 Jun 2022 11:09:10 +0200 Subject: [PATCH 289/659] Android: Add app link intent URI to channels projection This a proper fix for https://bugs.dolphin-emu.org/issues/12561, which was previously fixed by a hackfix in 98bdf3b1ce. --- .../main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java index 8a4b589444..418bdfb5b7 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java @@ -50,8 +50,9 @@ public class TvUtil private static final String[] CHANNELS_PROJECTION = { TvContractCompat.Channels._ID, - TvContract.Channels.COLUMN_DISPLAY_NAME, - TvContractCompat.Channels.COLUMN_BROWSABLE + TvContractCompat.Channels.COLUMN_DISPLAY_NAME, + TvContractCompat.Channels.COLUMN_BROWSABLE, + TvContractCompat.Channels.COLUMN_APP_LINK_INTENT_URI }; private static final String LEANBACK_PACKAGE = "com.google.android.tvlauncher"; From 1d772176a24f25de7487b4f52883da4409079931 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 26 Jun 2022 09:24:19 +0200 Subject: [PATCH 290/659] Revert "Partially revert "Android: Clean up hardcoded platform names"" This reverts commit 98bdf3b1ceae94a35e3f47158966967d1c947d99. --- .../dolphinemu/services/SyncChannelJobService.java | 2 +- .../dolphinemu/services/SyncProgramsJobService.java | 3 ++- .../java/org/dolphinemu/dolphinemu/utils/TvUtil.java | 12 +++++------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java index 48af4e4f4d..2e11049ab2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java @@ -87,7 +87,7 @@ public class SyncChannelJobService extends JobService } else { - subscriptions = TvUtil.createUniversalSubscriptions(); + subscriptions = TvUtil.createUniversalSubscriptions(context); for (HomeScreenChannel subscription : subscriptions) { long channelId = createChannel(subscription); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java index c789084343..62d9bfce30 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java @@ -98,7 +98,8 @@ public class SyncProgramsJobService extends JobService Channel channel = TvUtil.getChannelById(context, channelId); for (Platform platform : Platform.values()) { - if (channel != null && channel.getDisplayName().equals(platform.getIdString())) + if (channel != null && + channel.getAppLinkIntentUri().equals(AppLinkHelper.buildBrowseUri(platform))) { getGamesByPlatform(platform); syncPrograms(channelId); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java index 418bdfb5b7..164463cb50 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java @@ -254,21 +254,19 @@ public class TvUtil /** * Generates all subscriptions for homescreen channels. */ - public static List createUniversalSubscriptions() + public static List createUniversalSubscriptions(Context context) { - return new ArrayList<>(createPlatformSubscriptions()); + return new ArrayList<>(createPlatformSubscriptions(context)); } - private static List createPlatformSubscriptions() + private static List createPlatformSubscriptions(Context context) { List subs = new ArrayList<>(); for (Platform platform : Platform.values()) { - // TODO: Replace the getIdString calls with getHeaderName to get localized names. - // This would require SyncProgramsJobService to stop using the display name as a key subs.add(new HomeScreenChannel( - platform.getIdString(), - platform.getIdString(), + context.getString(platform.getHeaderName()), + context.getString(platform.getHeaderName()), AppLinkHelper.buildBrowseUri(platform))); } return subs; From 9e973776907cafc15896b138d099622709bc7113 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 27 Jun 2022 08:54:27 +0200 Subject: [PATCH 291/659] Android: Refactor reading "wiiController" preference This had a lot of duplicated code and magic numbers. --- .../activities/EmulationActivity.java | 23 +++++++------ .../dolphinemu/overlay/InputOverlay.java | 33 ++++++++++++------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index c320106f2f..624d4207db 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -260,9 +260,7 @@ public final class EmulationActivity extends AppCompatActivity public static void updateWiimoteNewIniPreferences(Context context) { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - updateWiimoteNewController(preferences.getInt("wiiController", 3), context); - + updateWiimoteNewController(InputOverlay.getConfiguredControllerType(context), context); updateWiimoteNewImuIr(IntSetting.MAIN_MOTION_CONTROLS.getIntGlobal()); } @@ -810,7 +808,10 @@ public final class EmulationActivity extends AppCompatActivity { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_toggle_controls); - if (!NativeLibrary.IsEmulatingWii() || mPreferences.getInt("wiiController", 3) == 0) + + int currentController = InputOverlay.getConfiguredControllerType(this); + + if (!NativeLibrary.IsEmulatingWii() || currentController == InputOverlay.OVERLAY_GAMECUBE) { boolean[] gcEnabledButtons = new boolean[11]; String gcSettingBase = "MAIN_BUTTON_TOGGLE_GC_"; @@ -823,7 +824,7 @@ public final class EmulationActivity extends AppCompatActivity (dialog, indexSelected, isChecked) -> BooleanSetting .valueOf(gcSettingBase + indexSelected).setBoolean(mSettings, isChecked)); } - else if (mPreferences.getInt("wiiController", 3) == 4) + else if (currentController == InputOverlay.OVERLAY_WIIMOTE_CLASSIC) { boolean[] wiiClassicEnabledButtons = new boolean[14]; String classicSettingBase = "MAIN_BUTTON_TOGGLE_CLASSIC_"; @@ -847,7 +848,7 @@ public final class EmulationActivity extends AppCompatActivity { wiiEnabledButtons[i] = BooleanSetting.valueOf(wiiSettingBase + i).getBoolean(mSettings); } - if (mPreferences.getInt("wiiController", 3) == 3) + if (currentController == InputOverlay.OVERLAY_WIIMOTE_NUNCHUK) { builder.setMultiChoiceItems(R.array.nunchukButtons, wiiEnabledButtons, (dialog, indexSelected, isChecked) -> BooleanSetting @@ -860,6 +861,7 @@ public final class EmulationActivity extends AppCompatActivity .valueOf(wiiSettingBase + indexSelected).setBoolean(mSettings, isChecked)); } } + builder.setNeutralButton(R.string.emulation_toggle_all, (dialogInterface, i) -> mEmulationFragment.toggleInputOverlayVisibility(mSettings)); builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> @@ -872,13 +874,10 @@ public final class EmulationActivity extends AppCompatActivity { AlertDialog.Builder builder = new AlertDialog.Builder(this); - int currentController = - mPreferences.getInt("wiiController", InputOverlay.OVERLAY_WIIMOTE_NUNCHUK); - int currentValue = IntSetting.MAIN_DOUBLE_TAP_BUTTON.getInt(mSettings); - int buttonList = currentController == InputOverlay.OVERLAY_WIIMOTE_CLASSIC ? - R.array.doubleTapWithClassic : R.array.doubleTap; + int buttonList = InputOverlay.getConfiguredControllerType(this) == + InputOverlay.OVERLAY_WIIMOTE_CLASSIC ? R.array.doubleTapWithClassic : R.array.doubleTap; int checkedItem = -1; int itemCount = getResources().getStringArray(buttonList).length; @@ -981,7 +980,7 @@ public final class EmulationActivity extends AppCompatActivity AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.emulation_choose_controller); builder.setSingleChoiceItems(R.array.controllersEntries, - mPreferences.getInt("wiiController", 3), + InputOverlay.getConfiguredControllerType(this), (dialog, indexSelected) -> { editor.putInt("wiiController", indexSelected); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java index a614f21a64..e7e817d223 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java @@ -157,8 +157,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener int doubleTapButton = IntSetting.MAIN_DOUBLE_TAP_BUTTON.getIntGlobal(); - if (mPreferences.getInt("wiiController", OVERLAY_WIIMOTE_NUNCHUK) != - InputOverlay.OVERLAY_WIIMOTE_CLASSIC && + if (getConfiguredControllerType() != InputOverlay.OVERLAY_WIIMOTE_CLASSIC && doubleTapButton == InputOverlayPointer.DOUBLE_TAP_CLASSIC_A) { doubleTapButton = InputOverlayPointer.DOUBLE_TAP_A; @@ -345,8 +344,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener int fingerPositionX = (int) event.getX(pointerIndex); int fingerPositionY = (int) event.getY(pointerIndex); - final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - int controller = sPrefs.getInt("wiiController", 3); + int controller = getConfiguredControllerType(); String orientation = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ? "-Portrait" : ""; @@ -745,7 +743,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener } else { - switch (mPreferences.getInt("wiiController", 3)) + switch (getConfiguredControllerType()) { case OVERLAY_GAMECUBE: addGameCubeOverlayControls(orientation); @@ -789,14 +787,14 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; // Values for these come from R.array.controllersEntries - if (!NativeLibrary.IsEmulatingWii() || mPreferences.getInt("wiiController", 3) == 0) + if (!NativeLibrary.IsEmulatingWii() || getConfiguredControllerType() == OVERLAY_GAMECUBE) { if (isLandscape) gcDefaultOverlay(); else gcPortraitDefaultOverlay(); } - else if (mPreferences.getInt("wiiController", 3) == 4) + else if (getConfiguredControllerType() == OVERLAY_WIIMOTE_CLASSIC) { if (isLandscape) wiiClassicDefaultOverlay(); @@ -819,6 +817,17 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener refreshControls(); } + public static int getConfiguredControllerType(Context context) + { + return PreferenceManager.getDefaultSharedPreferences(context) + .getInt("wiiController", OVERLAY_WIIMOTE_NUNCHUK); + } + + private int getConfiguredControllerType() + { + return mPreferences.getInt("wiiController", OVERLAY_WIIMOTE_NUNCHUK); + } + private void saveControlPosition(int sharedPrefsId, int x, int y, int controller, String orientation) { @@ -831,11 +840,11 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener private static String getKey(int sharedPrefsId, int controller, String orientation, String suffix) { - if (controller == 2 && WIIMOTE_H_BUTTONS.contains(sharedPrefsId)) + if (controller == OVERLAY_WIIMOTE_SIDEWAYS && WIIMOTE_H_BUTTONS.contains(sharedPrefsId)) { return sharedPrefsId + "_H" + orientation + suffix; } - else if (controller == 1 && WIIMOTE_O_BUTTONS.contains(sharedPrefsId)) + else if (controller == OVERLAY_WIIMOTE && WIIMOTE_O_BUTTONS.contains(sharedPrefsId)) { return sharedPrefsId + "_O" + orientation + suffix; } @@ -893,7 +902,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener // SharedPreference to retrieve the X and Y coordinates for the InputOverlayDrawableButton. final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); - int controller = sPrefs.getInt("wiiController", 3); + int controller = getConfiguredControllerType(context); // Decide scale based on button ID and user preference float scale; @@ -1001,7 +1010,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener // SharedPreference to retrieve the X and Y coordinates for the InputOverlayDrawableDpad. final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); - int controller = sPrefs.getInt("wiiController", 3); + int controller = getConfiguredControllerType(context); // Decide scale based on button ID and user preference float scale; @@ -1076,7 +1085,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener // SharedPreference to retrieve the X and Y coordinates for the InputOverlayDrawableJoystick. final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); - int controller = sPrefs.getInt("wiiController", 3); + int controller = getConfiguredControllerType(context); // Decide scale based on user preference float scale = 0.275f; From 254246b814124f0f1dff5e1aebd9672c0d1bd492 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 26 Feb 2022 00:19:38 -0600 Subject: [PATCH 292/659] VideoCommon: add logic to read a GraphicsMod from configuration --- Source/Core/DolphinLib.props | 10 + Source/Core/VideoCommon/CMakeLists.txt | 10 + .../GraphicsModSystem/Config/GraphicsMod.cpp | 291 ++++++++++++++++++ .../GraphicsModSystem/Config/GraphicsMod.h | 45 +++ .../Config/GraphicsModFeature.cpp | 48 +++ .../Config/GraphicsModFeature.h | 20 ++ .../Config/GraphicsModGroup.cpp | 191 ++++++++++++ .../Config/GraphicsModGroup.h | 46 +++ .../Config/GraphicsTarget.cpp | 254 +++++++++++++++ .../GraphicsModSystem/Config/GraphicsTarget.h | 56 ++++ .../Config/GraphicsTargetGroup.cpp | 88 ++++++ .../Config/GraphicsTargetGroup.h | 22 ++ 12 files changed, 1081 insertions(+) create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index b164c6dda1..d8b446bbc2 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -631,6 +631,11 @@ + + + + + @@ -1210,6 +1215,11 @@ + + + + + diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index 51e51e672d..0b79a77519 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -39,6 +39,16 @@ add_library(videocommon GeometryShaderGen.h GeometryShaderManager.cpp GeometryShaderManager.h + GraphicsModSystem/Config/GraphicsMod.cpp + GraphicsModSystem/Config/GraphicsMod.h + GraphicsModSystem/Config/GraphicsModFeature.cpp + GraphicsModSystem/Config/GraphicsModFeature.h + GraphicsModSystem/Config/GraphicsModGroup.cpp + GraphicsModSystem/Config/GraphicsModGroup.h + GraphicsModSystem/Config/GraphicsTarget.cpp + GraphicsModSystem/Config/GraphicsTarget.h + GraphicsModSystem/Config/GraphicsTargetGroup.cpp + GraphicsModSystem/Config/GraphicsTargetGroup.h GraphicsModSystem/Constants.h HiresTextures.cpp HiresTextures.h diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.cpp new file mode 100644 index 0000000000..c7dc5aab87 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.cpp @@ -0,0 +1,291 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" + +#include + +#include "Common/CommonPaths.h" +#include "Common/FileUtil.h" +#include "Common/Logging/Log.h" +#include "Common/StringUtil.h" + +#include "VideoCommon/GraphicsModSystem/Constants.h" + +std::optional GraphicsModConfig::Create(const std::string& file_path, + Source source) +{ + std::string json_data; + if (!File::ReadFileToString(file_path, json_data)) + { + ERROR_LOG_FMT(VIDEO, "Failed to load graphics mod json file '{}'", file_path); + return std::nullopt; + } + + picojson::value root; + const auto error = picojson::parse(root, json_data); + + if (!error.empty()) + { + ERROR_LOG_FMT(VIDEO, "Failed to load graphics mod json file '{}' due to parse error: {}", + file_path, error); + return std::nullopt; + } + + GraphicsModConfig result; + if (!result.DeserializeFromConfig(root)) + { + return std::nullopt; + } + result.m_source = source; + if (source == Source::User) + { + const std::string base_path = File::GetUserPath(D_GRAPHICSMOD_IDX); + if (base_path.size() > file_path.size()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load graphics mod json file '{}' due to it not matching the base path: {}", + file_path, base_path); + return std::nullopt; + } + result.m_relative_path = file_path.substr(base_path.size()); + } + else + { + const std::string base_path = File::GetSysDirectory() + DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR; + if (base_path.size() > file_path.size()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load graphics mod json file '{}' due to it not matching the base path: {}", + file_path, base_path); + return std::nullopt; + } + result.m_relative_path = file_path.substr(base_path.size()); + } + + return result; +} + +std::optional GraphicsModConfig::Create(const picojson::object* obj) +{ + if (!obj) + return std::nullopt; + + const auto source_it = obj->find("source"); + if (source_it == obj->end()) + { + return std::nullopt; + } + const std::string source_str = source_it->second.to_str(); + + const auto path_it = obj->find("path"); + if (path_it == obj->end()) + { + return std::nullopt; + } + const std::string relative_path = path_it->second.to_str(); + + if (source_str == "system") + { + return Create(fmt::format("{}{}{}", File::GetSysDirectory(), DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR, + relative_path), + Source::System); + } + else + { + return Create(File::GetUserPath(D_GRAPHICSMOD_IDX) + relative_path, Source::User); + } +} + +std::string GraphicsModConfig::GetAbsolutePath() const +{ + if (m_source == Source::System) + { + return WithUnifiedPathSeparators(fmt::format("{}{}{}", File::GetSysDirectory(), + DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR, m_relative_path)); + } + else + { + return WithUnifiedPathSeparators(File::GetUserPath(D_GRAPHICSMOD_IDX) + m_relative_path); + } +} + +bool GraphicsModConfig::DeserializeFromConfig(const picojson::value& value) +{ + const auto& meta = value.get("meta"); + if (meta.is()) + { + const auto& title = meta.get("title"); + if (title.is()) + { + m_title = title.to_str(); + } + + const auto& author = meta.get("author"); + if (author.is()) + { + m_author = author.to_str(); + } + + const auto& description = meta.get("description"); + if (description.is()) + { + m_description = description.to_str(); + } + } + + const auto& groups = value.get("groups"); + if (groups.is()) + { + for (const auto& group_val : groups.get()) + { + if (!group_val.is()) + { + ERROR_LOG_FMT( + VIDEO, "Failed to load mod configuration file, specified group is not a json object"); + return false; + } + GraphicsTargetGroupConfig group; + if (!group.DeserializeFromConfig(group_val.get())) + { + return false; + } + + m_groups.push_back(group); + } + } + + const auto& features = value.get("features"); + if (features.is()) + { + for (const auto& feature_val : features.get()) + { + if (!feature_val.is()) + { + ERROR_LOG_FMT( + VIDEO, "Failed to load mod configuration file, specified feature is not a json object"); + return false; + } + GraphicsModFeatureConfig feature; + if (!feature.DeserializeFromConfig(feature_val.get())) + { + return false; + } + + m_features.push_back(feature); + } + } + + return true; +} + +void GraphicsModConfig::SerializeToProfile(picojson::object* obj) const +{ + if (!obj) + return; + + auto& json_obj = *obj; + switch (m_source) + { + case Source::User: + { + json_obj["source"] = picojson::value{"user"}; + } + break; + case Source::System: + { + json_obj["source"] = picojson::value{"system"}; + } + break; + }; + + json_obj["path"] = picojson::value{m_relative_path}; + + picojson::array serialized_groups; + for (const auto& group : m_groups) + { + picojson::object serialized_group; + group.SerializeToProfile(&serialized_group); + serialized_groups.push_back(picojson::value{serialized_group}); + } + json_obj["groups"] = picojson::value{serialized_groups}; + + picojson::array serialized_features; + for (const auto& feature : m_features) + { + picojson::object serialized_feature; + feature.SerializeToProfile(&serialized_feature); + serialized_features.push_back(picojson::value{serialized_feature}); + } + json_obj["features"] = picojson::value{serialized_features}; + + json_obj["enabled"] = picojson::value{m_enabled}; + + json_obj["weight"] = picojson::value{static_cast(m_weight)}; +} + +void GraphicsModConfig::DeserializeFromProfile(const picojson::object& obj) +{ + if (const auto it = obj.find("groups"); it != obj.end()) + { + if (it->second.is()) + { + auto serialized_groups = it->second.get(); + if (serialized_groups.size() != m_groups.size()) + return; + + for (std::size_t i = 0; i < serialized_groups.size(); i++) + { + const auto& serialized_group_val = serialized_groups[i]; + if (serialized_group_val.is()) + { + const auto& serialized_group = serialized_group_val.get(); + m_groups[i].DeserializeFromProfile(serialized_group); + } + } + } + } + + if (const auto it = obj.find("features"); it != obj.end()) + { + if (it->second.is()) + { + auto serialized_features = it->second.get(); + if (serialized_features.size() != m_features.size()) + return; + + for (std::size_t i = 0; i < serialized_features.size(); i++) + { + const auto& serialized_feature_val = serialized_features[i]; + if (serialized_feature_val.is()) + { + const auto& serialized_feature = serialized_feature_val.get(); + m_features[i].DeserializeFromProfile(serialized_feature); + } + } + } + } + + if (const auto it = obj.find("enabled"); it != obj.end()) + { + if (it->second.is()) + { + m_enabled = it->second.get(); + } + } + + if (const auto it = obj.find("weight"); it != obj.end()) + { + if (it->second.is()) + { + m_weight = static_cast(it->second.get()); + } + } +} + +bool GraphicsModConfig::operator<(const GraphicsModConfig& other) const +{ + return m_weight < other.m_weight; +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.h new file mode 100644 index 0000000000..f4f6859cb3 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsMod.h @@ -0,0 +1,45 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h" + +struct GraphicsModConfig +{ + std::string m_title; + std::string m_author; + std::string m_description; + bool m_enabled = false; + u16 m_weight = 0; + std::string m_relative_path; + + enum class Source + { + User, + System + }; + Source m_source = Source::User; + + std::vector m_groups; + std::vector m_features; + + static std::optional Create(const std::string& file, Source source); + static std::optional Create(const picojson::object* obj); + + std::string GetAbsolutePath() const; + + bool DeserializeFromConfig(const picojson::value& value); + + void SerializeToProfile(picojson::object* value) const; + void DeserializeFromProfile(const picojson::object& value); + + bool operator<(const GraphicsModConfig& other) const; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp new file mode 100644 index 0000000000..3fa75eceba --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp @@ -0,0 +1,48 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h" + +#include "Common/Logging/Log.h" + +bool GraphicsModFeatureConfig::DeserializeFromConfig(const picojson::object& obj) +{ + if (auto group_iter = obj.find("group"); group_iter != obj.end()) + { + if (!group_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load mod configuration file, specified feature's group is not a string"); + return false; + } + m_group = group_iter->second.get(); + } + + if (auto action_iter = obj.find("action"); action_iter != obj.end()) + { + if (!action_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load mod configuration file, specified feature's action is not a string"); + return false; + } + m_action = action_iter->second.get(); + } + + if (auto action_data_iter = obj.find("action_data"); action_data_iter != obj.end()) + { + m_action_data = action_data_iter->second; + } + + return true; +} + +void GraphicsModFeatureConfig::SerializeToProfile(picojson::object*) const +{ +} + +void GraphicsModFeatureConfig::DeserializeFromProfile(const picojson::object&) +{ +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h new file mode 100644 index 0000000000..af71bf35a7 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h @@ -0,0 +1,20 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include + +struct GraphicsModFeatureConfig +{ + std::string m_group; + std::string m_action; + picojson::value m_action_data; + + bool DeserializeFromConfig(const picojson::object& value); + + void SerializeToProfile(picojson::object* value) const; + void DeserializeFromProfile(const picojson::object& value); +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp new file mode 100644 index 0000000000..0d1ae30fb6 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp @@ -0,0 +1,191 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" + +#include +#include +#include + +#include "Common/CommonPaths.h" +#include "Common/FileSearch.h" +#include "Common/FileUtil.h" +#include "Common/Logging/Log.h" +#include "Common/StringUtil.h" +#include "Core/ConfigManager.h" + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "VideoCommon/GraphicsModSystem/Constants.h" +#include "VideoCommon/HiresTextures.h" + +GraphicsModGroupConfig::GraphicsModGroupConfig(const std::string& game_id) : m_game_id(game_id) +{ +} + +GraphicsModGroupConfig::~GraphicsModGroupConfig() = default; + +GraphicsModGroupConfig::GraphicsModGroupConfig(const GraphicsModGroupConfig&) = default; + +GraphicsModGroupConfig::GraphicsModGroupConfig(GraphicsModGroupConfig&&) = default; + +GraphicsModGroupConfig& GraphicsModGroupConfig::operator=(const GraphicsModGroupConfig&) = default; + +GraphicsModGroupConfig& GraphicsModGroupConfig::operator=(GraphicsModGroupConfig&&) = default; + +void GraphicsModGroupConfig::Load() +{ + const std::string file_path = GetPath(); + + std::set known_paths; + if (File::Exists(file_path)) + { + std::string json_data; + if (!File::ReadFileToString(file_path, json_data)) + { + ERROR_LOG_FMT(VIDEO, "Failed to load graphics mod group json file '{}'", file_path); + return; + } + + picojson::value root; + const auto error = picojson::parse(root, json_data); + + if (!error.empty()) + { + ERROR_LOG_FMT(VIDEO, + "Failed to load graphics mod group json file '{}' due to parse error: {}", + file_path, error); + return; + } + if (!root.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load graphics mod group json file '{}' due to root not being an object!", + file_path); + return; + } + + const auto& mods = root.get("mods"); + if (mods.is()) + { + for (const auto& mod_json : mods.get()) + { + if (mod_json.is()) + { + const auto& mod_json_obj = mod_json.get(); + auto graphics_mod = GraphicsModConfig::Create(&mod_json_obj); + if (!graphics_mod) + { + continue; + } + graphics_mod->DeserializeFromProfile(mod_json_obj); + + auto mod_full_path = graphics_mod->GetAbsolutePath(); + known_paths.insert(std::move(mod_full_path)); + m_graphics_mods.push_back(*graphics_mod); + } + } + } + } + + const auto try_add_mod = [&known_paths, this](const std::string& dir, + GraphicsModConfig::Source source) { + auto file = dir + DIR_SEP + "metadata.json"; + UnifyPathSeparators(file); + if (known_paths.find(file) != known_paths.end()) + { + return; + } + const auto mod = GraphicsModConfig::Create(file, source); + if (mod) + { + m_graphics_mods.push_back(*mod); + } + }; + + const std::set graphics_mod_user_directories = + GetTextureDirectoriesWithGameId(File::GetUserPath(D_GRAPHICSMOD_IDX), m_game_id); + + for (const auto& graphics_mod_directory : graphics_mod_user_directories) + { + try_add_mod(graphics_mod_directory, GraphicsModConfig::Source::User); + } + + const std::set graphics_mod_system_directories = GetTextureDirectoriesWithGameId( + File::GetSysDirectory() + DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR, m_game_id); + + for (const auto& graphics_mod_directory : graphics_mod_system_directories) + { + try_add_mod(graphics_mod_directory, GraphicsModConfig::Source::System); + } + + std::sort(m_graphics_mods.begin(), m_graphics_mods.end()); + for (auto& mod : m_graphics_mods) + { + m_path_to_graphics_mod[mod.GetAbsolutePath()] = &mod; + } + + m_change_count++; +} + +void GraphicsModGroupConfig::Save() const +{ + const std::string file_path = GetPath(); + std::ofstream json_stream; + File::OpenFStream(json_stream, file_path, std::ios_base::out); + if (!json_stream.is_open()) + { + ERROR_LOG_FMT(VIDEO, "Failed to open graphics mod group json file '{}' for writing", file_path); + return; + } + + picojson::object serialized_root; + picojson::array serialized_mods; + for (const auto& mod : m_graphics_mods) + { + picojson::object serialized_mod; + mod.SerializeToProfile(&serialized_mod); + serialized_mods.push_back(picojson::value{serialized_mod}); + } + serialized_root["mods"] = picojson::value{serialized_mods}; + + const auto output = picojson::value{serialized_root}.serialize(true); + json_stream << output; +} + +void GraphicsModGroupConfig::SetChangeCount(u32 change_count) +{ + m_change_count = change_count; +} + +u32 GraphicsModGroupConfig::GetChangeCount() const +{ + return m_change_count; +} + +const std::vector& GraphicsModGroupConfig::GetMods() const +{ + return m_graphics_mods; +} + +GraphicsModConfig* GraphicsModGroupConfig::GetMod(const std::string& absolute_path) const +{ + if (const auto iter = m_path_to_graphics_mod.find(absolute_path); + iter != m_path_to_graphics_mod.end()) + { + return iter->second; + } + + return nullptr; +} + +const std::string& GraphicsModGroupConfig::GetGameID() const +{ + return m_game_id; +} + +std::string GraphicsModGroupConfig::GetPath() const +{ + const std::string game_mod_root = File::GetUserPath(D_CONFIG_IDX) + GRAPHICSMOD_CONFIG_DIR; + return fmt::format("{}/{}.json", game_mod_root, m_game_id); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h new file mode 100644 index 0000000000..ace5127c58 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h @@ -0,0 +1,46 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include + +#include + +#include "Common/CommonTypes.h" + +struct GraphicsModConfig; + +class GraphicsModGroupConfig +{ +public: + explicit GraphicsModGroupConfig(const std::string& game_id); + ~GraphicsModGroupConfig(); + + GraphicsModGroupConfig(const GraphicsModGroupConfig&); + GraphicsModGroupConfig(GraphicsModGroupConfig&&); + + GraphicsModGroupConfig& operator=(const GraphicsModGroupConfig&); + GraphicsModGroupConfig& operator=(GraphicsModGroupConfig&&); + + void Load(); + void Save() const; + + void SetChangeCount(u32 change_count); + u32 GetChangeCount() const; + + const std::vector& GetMods() const; + + GraphicsModConfig* GetMod(const std::string& absolute_path) const; + + const std::string& GetGameID() const; + +private: + std::string GetPath() const; + std::string m_game_id; + std::vector m_graphics_mods; + std::map m_path_to_graphics_mod; + u32 m_change_count = 0; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp new file mode 100644 index 0000000000..f55f184520 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp @@ -0,0 +1,254 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h" + +#include "Common/Logging/Log.h" +#include "Common/StringUtil.h" +#include "VideoCommon/TextureCacheBase.h" + +namespace +{ +template , int> = 0> +std::optional DeserializeFBTargetFromConfig(const picojson::object& obj, std::string_view prefix) +{ + T fb; + const auto texture_filename_iter = obj.find("texture_filename"); + if (texture_filename_iter == obj.end()) + { + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, option 'texture_filename' not found"); + return std::nullopt; + } + if (!texture_filename_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load mod configuration file, option 'texture_filename' is not a string type"); + return std::nullopt; + } + const auto texture_filename = texture_filename_iter->second.get(); + const auto texture_filename_without_prefix = texture_filename.substr(prefix.size() + 1); + const auto split_str_values = SplitString(texture_filename_without_prefix, '_'); + if (split_str_values.size() == 1) + { + ERROR_LOG_FMT( + VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is not valid"); + return std::nullopt; + } + const auto split_width_height_values = SplitString(texture_filename_without_prefix, 'x'); + if (split_width_height_values.size() != 2) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, width and height separator found more matches than expected"); + return std::nullopt; + } + + const std::size_t width_underscore_pos = split_width_height_values[0].find_last_of('_'); + std::string width_str; + if (width_underscore_pos == std::string::npos) + { + width_str = split_width_height_values[0]; + } + else + { + width_str = split_width_height_values[0].substr(width_underscore_pos + 1); + } + if (!TryParse(width_str, &fb.m_width)) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, width not a number"); + return std::nullopt; + } + + const std::size_t height_underscore_pos = split_width_height_values[1].find_first_of('_'); + if (height_underscore_pos == std::string::npos || + height_underscore_pos == split_width_height_values[1].size() - 1) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, underscore after height is missing or incomplete"); + return std::nullopt; + } + const std::string height_str = split_width_height_values[1].substr(0, height_underscore_pos); + if (!TryParse(height_str, &fb.m_height)) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, height not a number"); + return std::nullopt; + } + + const std::size_t format_underscore_pos = + split_width_height_values[1].find_first_of('_', height_underscore_pos + 1); + + std::string format_str; + if (format_underscore_pos == std::string::npos) + { + format_str = split_width_height_values[1].substr(height_underscore_pos + 1); + } + else + { + format_str = split_width_height_values[1].substr( + height_underscore_pos + 1, (format_underscore_pos - height_underscore_pos) - 1); + } + u32 format; + if (!TryParse(format_str, &format)) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, texture format is not a number"); + return std::nullopt; + } + if (!IsValidTextureFormat(static_cast(format))) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' is " + "not valid, texture format is not valid"); + return std::nullopt; + } + fb.m_texture_format = static_cast(format); + + return fb; +} +std::optional ExtractTextureFilenameForConfig(const picojson::object& obj) +{ + const auto texture_filename_iter = obj.find("texture_filename"); + if (texture_filename_iter == obj.end()) + { + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, option 'texture_filename' not found"); + return std::nullopt; + } + if (!texture_filename_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load mod configuration file, option 'texture_filename' is not a string type"); + return std::nullopt; + } + std::string texture_info = texture_filename_iter->second.get(); + if (texture_info.find(EFB_DUMP_PREFIX) != std::string::npos) + { + const auto letter_c_pos = texture_info.find_first_of('n'); + if (letter_c_pos == std::string::npos) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' " + "is an efb without a count"); + return std::nullopt; + } + texture_info = + texture_info.substr(letter_c_pos - 1, texture_info.find_first_of("_", letter_c_pos)); + } + else if (texture_info.find(XFB_DUMP_PREFIX) != std::string::npos) + { + const auto letter_c_pos = texture_info.find_first_of('n'); + if (letter_c_pos == std::string::npos) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' " + "is an xfb without a count"); + return std::nullopt; + } + texture_info = + texture_info.substr(letter_c_pos - 1, texture_info.find_first_of("_", letter_c_pos)); + } + return texture_info; +} +} // namespace + +std::optional DeserializeTargetFromConfig(const picojson::object& obj) +{ + const auto type_iter = obj.find("type"); + if (type_iter == obj.end()) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, option 'type' not found"); + return std::nullopt; + } + if (!type_iter->second.is()) + { + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, option 'type' is not a string type"); + return std::nullopt; + } + const std::string& type = type_iter->second.get(); + if (type == "draw_started") + { + std::optional texture_info = ExtractTextureFilenameForConfig(obj); + if (!texture_info.has_value()) + return std::nullopt; + + DrawStartedTextureTarget target; + target.m_texture_info_string = texture_info.value(); + return target; + } + else if (type == "load_texture") + { + std::optional texture_info = ExtractTextureFilenameForConfig(obj); + if (!texture_info.has_value()) + return std::nullopt; + + LoadTextureTarget target; + target.m_texture_info_string = texture_info.value(); + return target; + } + else if (type == "efb") + { + return DeserializeFBTargetFromConfig(obj, EFB_DUMP_PREFIX); + } + else if (type == "xfb") + { + return DeserializeFBTargetFromConfig(obj, EFB_DUMP_PREFIX); + } + else if (type == "projection") + { + ProjectionTarget target; + const auto texture_iter = obj.find("texture_filename"); + if (texture_iter != obj.end()) + { + std::optional texture_info = ExtractTextureFilenameForConfig(obj); + if (!texture_info.has_value()) + return std::nullopt; + target.m_texture_info_string = texture_info; + } + const auto value_iter = obj.find("value"); + if (value_iter == obj.end()) + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, option 'value' not found"); + return std::nullopt; + } + if (!value_iter->second.is()) + { + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, option 'value' is not a string type"); + return std::nullopt; + } + const auto& value_str = value_iter->second.get(); + if (value_str == "2d") + { + target.m_projection_type = ProjectionType::Orthographic; + } + else if (value_str == "3d") + { + target.m_projection_type = ProjectionType::Perspective; + } + else + { + ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, option 'value' is not a valid " + "value, valid values are: 2d, 3d"); + return std::nullopt; + } + return target; + } + else + { + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, option 'type' is not a valid value"); + } + return std::nullopt; +} + +void SerializeTargetToProfile(picojson::object*, const GraphicsTargetConfig&) +{ + // Added for consistency, no functionality as of now +} + +void DeserializeTargetFromProfile(const picojson::object&, GraphicsTargetConfig*) +{ + // Added for consistency, no functionality as of now +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h new file mode 100644 index 0000000000..67a349e78f --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h @@ -0,0 +1,56 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include + +#include + +#include "Common/CommonTypes.h" +#include "VideoCommon/TextureDecoder.h" +#include "VideoCommon/XFMemory.h" + +struct TextureTarget +{ + std::string m_texture_info_string; +}; + +struct DrawStartedTextureTarget final : public TextureTarget +{ +}; + +struct LoadTextureTarget final : public TextureTarget +{ +}; + +struct FBTarget +{ + u32 m_height = 0; + u32 m_width = 0; + TextureFormat m_texture_format = TextureFormat::I4; +}; + +struct EFBTarget final : public FBTarget +{ +}; + +struct XFBTarget final : public FBTarget +{ +}; + +struct ProjectionTarget +{ + std::optional m_texture_info_string; + ProjectionType m_projection_type = ProjectionType::Perspective; +}; + +using GraphicsTargetConfig = std::variant; + +std::optional DeserializeTargetFromConfig(const picojson::object& obj); + +void SerializeTargetToProfile(picojson::object* obj, const GraphicsTargetConfig& target); +void DeserializeTargetFromProfile(const picojson::object& obj, GraphicsTargetConfig* target); diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.cpp new file mode 100644 index 0000000000..753f304cb5 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.cpp @@ -0,0 +1,88 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h" + +#include "Common/Logging/Log.h" + +bool GraphicsTargetGroupConfig::DeserializeFromConfig(const picojson::object& obj) +{ + if (auto name_iter = obj.find("name"); name_iter != obj.end()) + { + if (!name_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, "Failed to load mod configuration file, specified group's name is not a string"); + return false; + } + m_name = name_iter->second.get(); + } + + if (auto targets_iter = obj.find("targets"); targets_iter != obj.end()) + { + if (!targets_iter->second.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load mod configuration file, specified group's targets is not an array"); + return false; + } + for (const auto& target_val : targets_iter->second.get()) + { + if (!target_val.is()) + { + ERROR_LOG_FMT( + VIDEO, + "Failed to load shader configuration file, specified target is not a json object"); + return false; + } + const auto target = DeserializeTargetFromConfig(target_val.get()); + if (!target) + { + return false; + } + + m_targets.push_back(*target); + } + } + + return true; +} + +void GraphicsTargetGroupConfig::SerializeToProfile(picojson::object* obj) const +{ + if (!obj) + return; + auto& json_obj = *obj; + picojson::array serialized_targets; + for (const auto& target : m_targets) + { + picojson::object serialized_target; + SerializeTargetToProfile(&serialized_target, target); + serialized_targets.push_back(picojson::value{serialized_target}); + } + json_obj["targets"] = picojson::value{serialized_targets}; +} + +void GraphicsTargetGroupConfig::DeserializeFromProfile(const picojson::object& obj) +{ + if (const auto it = obj.find("targets"); it != obj.end()) + { + if (it->second.is()) + { + auto serialized_targets = it->second.get(); + if (serialized_targets.size() != m_targets.size()) + return; + + for (std::size_t i = 0; i < serialized_targets.size(); i++) + { + const auto& serialized_target_val = serialized_targets[i]; + if (serialized_target_val.is()) + { + const auto& serialized_target = serialized_target_val.get(); + DeserializeTargetFromProfile(serialized_target, &m_targets[i]); + } + } + } + } +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h new file mode 100644 index 0000000000..2db2517175 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTargetGroup.h @@ -0,0 +1,22 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h" + +struct GraphicsTargetGroupConfig +{ + std::string m_name; + std::vector m_targets; + + bool DeserializeFromConfig(const picojson::object& obj); + + void SerializeToProfile(picojson::object* obj) const; + void DeserializeFromProfile(const picojson::object& obj); +}; From f416b7192536d340685cf17297f1bcb02adb9baa Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 5 Mar 2022 00:41:14 -0600 Subject: [PATCH 293/659] VideoCommon: add logic to handle a GraphicsMod while Dolphin is running --- Source/Core/DolphinLib.props | 16 + Source/Core/VideoCommon/CMakeLists.txt | 15 + .../Runtime/Actions/MoveAction.cpp | 47 +++ .../Runtime/Actions/MoveAction.h | 22 ++ .../Runtime/Actions/PrintAction.cpp | 36 +++ .../Runtime/Actions/PrintAction.h | 17 ++ .../Runtime/Actions/ScaleAction.cpp | 59 ++++ .../Runtime/Actions/ScaleAction.h | 24 ++ .../Runtime/Actions/SkipAction.cpp | 20 ++ .../Runtime/Actions/SkipAction.h | 14 + .../GraphicsModSystem/Runtime/FBInfo.cpp | 22 ++ .../GraphicsModSystem/Runtime/FBInfo.h | 25 ++ .../Runtime/GraphicsModAction.h | 29 ++ .../Runtime/GraphicsModActionFactory.cpp | 34 +++ .../Runtime/GraphicsModActionFactory.h | 16 + .../Runtime/GraphicsModManager.cpp | 279 ++++++++++++++++++ .../Runtime/GraphicsModManager.h | 54 ++++ 17 files changed, 729 insertions(+) create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp create mode 100644 Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index d8b446bbc2..ca81c1ff48 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -637,6 +637,15 @@ + + + + + + + + + @@ -1220,6 +1229,13 @@ + + + + + + + diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index 0b79a77519..b46ac98d77 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -50,6 +50,21 @@ add_library(videocommon GraphicsModSystem/Config/GraphicsTargetGroup.cpp GraphicsModSystem/Config/GraphicsTargetGroup.h GraphicsModSystem/Constants.h + GraphicsModSystem/Runtime/Actions/MoveAction.cpp + GraphicsModSystem/Runtime/Actions/MoveAction.h + GraphicsModSystem/Runtime/Actions/PrintAction.cpp + GraphicsModSystem/Runtime/Actions/PrintAction.h + GraphicsModSystem/Runtime/Actions/ScaleAction.cpp + GraphicsModSystem/Runtime/Actions/ScaleAction.h + GraphicsModSystem/Runtime/Actions/SkipAction.cpp + GraphicsModSystem/Runtime/Actions/SkipAction.h + GraphicsModSystem/Runtime/FBInfo.cpp + GraphicsModSystem/Runtime/FBInfo.h + GraphicsModSystem/Runtime/GraphicsModAction.h + GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp + GraphicsModSystem/Runtime/GraphicsModActionFactory.h + GraphicsModSystem/Runtime/GraphicsModManager.cpp + GraphicsModSystem/Runtime/GraphicsModManager.h HiresTextures.cpp HiresTextures.h HiresTextures_DDSLoader.cpp diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp new file mode 100644 index 0000000000..cc724c0480 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp @@ -0,0 +1,47 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h" + +std::unique_ptr MoveAction::Create(const picojson::value& json_data) +{ + Common::Vec3 position_offset; + const auto& x = json_data.get("X"); + if (x.is()) + { + position_offset.x = static_cast(x.get()); + } + + const auto& y = json_data.get("Y"); + if (y.is()) + { + position_offset.y = static_cast(y.get()); + } + + const auto& z = json_data.get("Z"); + if (z.is()) + { + position_offset.z = static_cast(z.get()); + } + return std::make_unique(position_offset); +} + +MoveAction::MoveAction(Common::Vec3 position_offset) : m_position_offset(position_offset) +{ +} + +void MoveAction::OnProjection(Common::Matrix44* matrix) +{ + if (!matrix) + return; + + *matrix *= Common::Matrix44::Translate(m_position_offset); +} + +void MoveAction::OnProjectionAndTexture(Common::Matrix44* matrix) +{ + if (!matrix) + return; + + *matrix *= Common::Matrix44::Translate(m_position_offset); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h new file mode 100644 index 0000000000..768d6a9f38 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h @@ -0,0 +1,22 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" + +class MoveAction final : public GraphicsModAction +{ +public: + static std::unique_ptr Create(const picojson::value& json_data); + explicit MoveAction(Common::Vec3 position_offset); + void OnProjection(Common::Matrix44* matrix) override; + void OnProjectionAndTexture(Common::Matrix44* matrix) override; + +private: + Common::Vec3 m_position_offset; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp new file mode 100644 index 0000000000..e6f7d6b659 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp @@ -0,0 +1,36 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h" + +#include "Common/Logging/Log.h" + +void PrintAction::OnDrawStarted(bool*) +{ + INFO_LOG_FMT(VIDEO, "OnDrawStarted Called"); +} + +void PrintAction::OnEFB(bool*, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) +{ + if (!scaled_width || !scaled_height) + return; + + INFO_LOG_FMT(VIDEO, "OnEFB Called. Original [{}, {}], Scaled [{}, {}]", texture_width, + texture_height, *scaled_width, *scaled_height); +} + +void PrintAction::OnProjection(Common::Matrix44*) +{ + INFO_LOG_FMT(VIDEO, "OnProjection Called"); +} + +void PrintAction::OnProjectionAndTexture(Common::Matrix44*) +{ + INFO_LOG_FMT(VIDEO, "OnProjectionAndTexture Called"); +} + +void PrintAction::OnTextureLoad() +{ + INFO_LOG_FMT(VIDEO, "OnTextureLoad Called"); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h new file mode 100644 index 0000000000..6d8c123b68 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h @@ -0,0 +1,17 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" + +class PrintAction final : public GraphicsModAction +{ +public: + void OnDrawStarted(bool* skip) override; + void OnEFB(bool* skip, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) override; + void OnProjection(Common::Matrix44* matrix) override; + void OnProjectionAndTexture(Common::Matrix44* matrix) override; + void OnTextureLoad() override; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp new file mode 100644 index 0000000000..d0cac24acb --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp @@ -0,0 +1,59 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h" + +std::unique_ptr ScaleAction::Create(const picojson::value& json_data) +{ + Common::Vec3 scale; + const auto& x = json_data.get("X"); + if (x.is()) + { + scale.x = static_cast(x.get()); + } + + const auto& y = json_data.get("Y"); + if (y.is()) + { + scale.y = static_cast(y.get()); + } + + const auto& z = json_data.get("Z"); + if (z.is()) + { + scale.z = static_cast(z.get()); + } + return std::make_unique(scale); +} + +ScaleAction::ScaleAction(Common::Vec3 scale) : m_scale(scale) +{ +} + +void ScaleAction::OnEFB(bool*, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) +{ + if (scaled_width && m_scale.x > 0) + *scaled_width = texture_width * m_scale.x; + + if (scaled_height && m_scale.y > 0) + *scaled_height = texture_height * m_scale.y; +} + +void ScaleAction::OnProjection(Common::Matrix44* matrix) +{ + if (!matrix) + return; + auto& the_matrix = *matrix; + the_matrix.data[0] = the_matrix.data[0] * m_scale.x; + the_matrix.data[5] = the_matrix.data[5] * m_scale.y; +} + +void ScaleAction::OnProjectionAndTexture(Common::Matrix44* matrix) +{ + if (!matrix) + return; + auto& the_matrix = *matrix; + the_matrix.data[0] = the_matrix.data[0] * m_scale.x; + the_matrix.data[5] = the_matrix.data[5] * m_scale.y; +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h new file mode 100644 index 0000000000..cbe8744941 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h @@ -0,0 +1,24 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" + +class ScaleAction final : public GraphicsModAction +{ +public: + static std::unique_ptr Create(const picojson::value& json_data); + explicit ScaleAction(Common::Vec3 scale); + void OnEFB(bool* skip, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) override; + void OnProjection(Common::Matrix44* matrix) override; + void OnProjectionAndTexture(Common::Matrix44* matrix) override; + +private: + Common::Vec3 m_scale; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp new file mode 100644 index 0000000000..ae3551497f --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp @@ -0,0 +1,20 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h" + +void SkipAction::OnDrawStarted(bool* skip) +{ + if (!skip) + return; + + *skip = true; +} + +void SkipAction::OnEFB(bool* skip, u32, u32, u32*, u32*) +{ + if (!skip) + return; + + *skip = true; +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h new file mode 100644 index 0000000000..5cd204a89d --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h @@ -0,0 +1,14 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" + +class SkipAction final : public GraphicsModAction +{ +public: + void OnDrawStarted(bool* skip) override; + void OnEFB(bool* skip, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) override; +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.cpp new file mode 100644 index 0000000000..5921c4a3e5 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.cpp @@ -0,0 +1,22 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/FBInfo.h" + +#include "Common/Hash.h" + +u32 FBInfo::CalculateHash() const +{ + return Common::HashAdler32(reinterpret_cast(this), sizeof(FBInfo)); +} + +bool FBInfo::operator==(const FBInfo& other) const +{ + return m_height == other.m_height && m_width == other.m_width && + m_texture_format == other.m_texture_format; +} + +bool FBInfo::operator!=(const FBInfo& other) const +{ + return !(*this == other); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.h new file mode 100644 index 0000000000..48106e3a2a --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/FBInfo.h @@ -0,0 +1,25 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "Common/CommonTypes.h" +#include "VideoCommon/TextureDecoder.h" + +struct FBInfo +{ + u32 m_height = 0; + u32 m_width = 0; + TextureFormat m_texture_format = TextureFormat::I4; + u32 CalculateHash() const; + bool operator==(const FBInfo& other) const; + bool operator!=(const FBInfo& other) const; +}; + +struct FBInfoHasher +{ + std::size_t operator()(const FBInfo& fb_info) const noexcept + { + return static_cast(fb_info.CalculateHash()); + } +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h new file mode 100644 index 0000000000..54ea086a29 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h @@ -0,0 +1,29 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "Common/CommonTypes.h" +#include "Common/Matrix.h" + +class GraphicsModAction +{ +public: + GraphicsModAction() = default; + virtual ~GraphicsModAction() = default; + GraphicsModAction(const GraphicsModAction&) = default; + GraphicsModAction(GraphicsModAction&&) = default; + GraphicsModAction& operator=(const GraphicsModAction&) = default; + GraphicsModAction& operator=(GraphicsModAction&&) = default; + + virtual void OnDrawStarted(bool* skip) {} + virtual void OnEFB(bool* skip, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) + { + } + virtual void OnXFB() {} + virtual void OnProjection(Common::Matrix44* matrix) {} + virtual void OnProjectionAndTexture(Common::Matrix44* matrix) {} + virtual void OnTextureLoad() {} + virtual void OnFrameEnd() {} +}; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp new file mode 100644 index 0000000000..5eaac88c25 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp @@ -0,0 +1,34 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h" + +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h" +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h" +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h" +#include "VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h" + +namespace GraphicsModActionFactory +{ +std::unique_ptr Create(std::string_view name, const picojson::value& json_data) +{ + if (name == "print") + { + return std::make_unique(); + } + else if (name == "skip") + { + return std::make_unique(); + } + else if (name == "move") + { + return MoveAction::Create(json_data); + } + else if (name == "scale") + { + return ScaleAction::Create(json_data); + } + + return nullptr; +} +} // namespace GraphicsModActionFactory diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h new file mode 100644 index 0000000000..3c9cc6d6a7 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h @@ -0,0 +1,16 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" + +namespace GraphicsModActionFactory +{ +std::unique_ptr Create(std::string_view name, const picojson::value& json_data); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp new file mode 100644 index 0000000000..9e3d3e9e99 --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp @@ -0,0 +1,279 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h" + +#include +#include +#include + +#include "Common/Logging/Log.h" +#include "Common/VariantUtil.h" + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h" +#include "VideoCommon/TextureInfo.h" + +class GraphicsModManager::DecoratedAction final : public GraphicsModAction +{ +public: + DecoratedAction(std::unique_ptr action, GraphicsModConfig mod) + : m_action_impl(std::move(action)), m_mod(std::move(mod)) + { + } + void OnDrawStarted(bool* skip) override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnDrawStarted(skip); + } + void OnEFB(bool* skip, u32 texture_width, u32 texture_height, u32* scaled_width, + u32* scaled_height) override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnEFB(skip, texture_width, texture_height, scaled_width, scaled_height); + } + void OnProjection(Common::Matrix44* matrix) override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnProjection(matrix); + } + void OnProjectionAndTexture(Common::Matrix44* matrix) override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnProjectionAndTexture(matrix); + } + void OnTextureLoad() override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnTextureLoad(); + } + void OnFrameEnd() override + { + if (!m_mod.m_enabled) + return; + m_action_impl->OnFrameEnd(); + } + +private: + GraphicsModConfig m_mod; + std::unique_ptr m_action_impl; +}; + +const std::vector& +GraphicsModManager::GetProjectionActions(ProjectionType projection_type) const +{ + if (const auto it = m_projection_target_to_actions.find(projection_type); + it != m_projection_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +const std::vector& +GraphicsModManager::GetProjectionTextureActions(ProjectionType projection_type, + const std::string& texture_name) const +{ + const auto lookup = fmt::format("{}_{}", texture_name, static_cast(projection_type)); + if (const auto it = m_projection_texture_target_to_actions.find(lookup); + it != m_projection_texture_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +const std::vector& +GraphicsModManager::GetDrawStartedActions(const std::string& texture_name) const +{ + if (const auto it = m_draw_started_target_to_actions.find(texture_name); + it != m_draw_started_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +const std::vector& +GraphicsModManager::GetTextureLoadActions(const std::string& texture_name) const +{ + if (const auto it = m_load_target_to_actions.find(texture_name); + it != m_load_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +const std::vector& GraphicsModManager::GetEFBActions(const FBInfo& efb) const +{ + if (const auto it = m_efb_target_to_actions.find(efb); it != m_efb_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +const std::vector& GraphicsModManager::GetXFBActions(const FBInfo& xfb) const +{ + if (const auto it = m_efb_target_to_actions.find(xfb); it != m_efb_target_to_actions.end()) + { + return it->second; + } + + return m_default; +} + +void GraphicsModManager::Load(const GraphicsModGroupConfig& config) +{ + Reset(); + + const auto& mods = config.GetMods(); + + std::map> group_to_targets; + for (const auto& mod : mods) + { + for (const GraphicsTargetGroupConfig& group : mod.m_groups) + { + if (m_groups.find(group.m_name) != m_groups.end()) + { + WARN_LOG_FMT( + VIDEO, + "Specified graphics mod group '{}' for mod '{}' is already specified by another mod.", + group.m_name, mod.m_title); + } + m_groups.insert(group.m_name); + + const auto internal_group = fmt::format("{}.{}", mod.m_title, group.m_name); + for (const GraphicsTargetConfig& target : group.m_targets) + { + group_to_targets[group.m_name].push_back(target); + group_to_targets[internal_group].push_back(target); + } + } + } + + for (const auto& mod : mods) + { + for (const GraphicsModFeatureConfig& feature : mod.m_features) + { + const auto create_action = [](const std::string_view& action_name, + const picojson::value& json_data, + GraphicsModConfig mod) -> std::unique_ptr { + auto action = GraphicsModActionFactory::Create(action_name, json_data); + if (action == nullptr) + { + return nullptr; + } + return std::make_unique(std::move(action), std::move(mod)); + }; + + const auto internal_group = fmt::format("{}.{}", mod.m_title, feature.m_group); + + const auto add_target = [&](const GraphicsTargetConfig& target, GraphicsModConfig mod) { + auto action = create_action(feature.m_action, feature.m_action_data, std::move(mod)); + if (action == nullptr) + { + WARN_LOG_FMT(VIDEO, "Failed to create action '{}' for group '{}'.", feature.m_action, + feature.m_group); + return; + } + m_actions.push_back(std::move(action)); + std::visit( + overloaded{ + [&](const DrawStartedTextureTarget& the_target) { + m_draw_started_target_to_actions[the_target.m_texture_info_string].push_back( + m_actions.back().get()); + }, + [&](const LoadTextureTarget& the_target) { + m_load_target_to_actions[the_target.m_texture_info_string].push_back( + m_actions.back().get()); + }, + [&](const EFBTarget& the_target) { + FBInfo info; + info.m_height = the_target.m_height; + info.m_width = the_target.m_width; + info.m_texture_format = the_target.m_texture_format; + m_efb_target_to_actions[info].push_back(m_actions.back().get()); + }, + [&](const XFBTarget& the_target) { + FBInfo info; + info.m_height = the_target.m_height; + info.m_width = the_target.m_width; + info.m_texture_format = the_target.m_texture_format; + m_xfb_target_to_actions[info].push_back(m_actions.back().get()); + }, + [&](const ProjectionTarget& the_target) { + if (the_target.m_texture_info_string) + { + const auto lookup = fmt::format("{}_{}", *the_target.m_texture_info_string, + static_cast(the_target.m_projection_type)); + m_projection_texture_target_to_actions[lookup].push_back( + m_actions.back().get()); + } + else + { + m_projection_target_to_actions[the_target.m_projection_type].push_back( + m_actions.back().get()); + } + }, + }, + target); + }; + + // Prefer groups in the pack over groups from another pack + if (const auto local_it = group_to_targets.find(internal_group); + local_it != group_to_targets.end()) + { + for (const GraphicsTargetConfig& target : local_it->second) + { + add_target(target, mod); + } + } + else if (const auto global_it = group_to_targets.find(feature.m_group); + global_it != group_to_targets.end()) + { + for (const GraphicsTargetConfig& target : global_it->second) + { + add_target(target, mod); + } + } + else + { + WARN_LOG_FMT(VIDEO, "Specified graphics mod group '{}' was not found for mod '{}'", + feature.m_group, mod.m_title); + } + } + } +} + +void GraphicsModManager::EndOfFrame() +{ + for (auto&& action : m_actions) + { + action->OnFrameEnd(); + } +} + +void GraphicsModManager::Reset() +{ + m_actions.clear(); + m_groups.clear(); + m_projection_target_to_actions.clear(); + m_projection_texture_target_to_actions.clear(); + m_draw_started_target_to_actions.clear(); + m_load_target_to_actions.clear(); + m_efb_target_to_actions.clear(); + m_xfb_target_to_actions.clear(); +} diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h new file mode 100644 index 0000000000..5151b85dbd --- /dev/null +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h @@ -0,0 +1,54 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "VideoCommon/GraphicsModSystem/Runtime/FBInfo.h" +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" +#include "VideoCommon/TextureInfo.h" +#include "VideoCommon/XFMemory.h" + +class GraphicsModGroupConfig; +class GraphicsModManager +{ +public: + const std::vector& GetProjectionActions(ProjectionType projection_type) const; + const std::vector& + GetProjectionTextureActions(ProjectionType projection_type, + const std::string& texture_name) const; + const std::vector& + GetDrawStartedActions(const std::string& texture_name) const; + const std::vector& + GetTextureLoadActions(const std::string& texture_name) const; + const std::vector& GetEFBActions(const FBInfo& efb) const; + const std::vector& GetXFBActions(const FBInfo& xfb) const; + + void Load(const GraphicsModGroupConfig& config); + + void EndOfFrame(); + +private: + void Reset(); + + class DecoratedAction; + + static inline const std::vector m_default = {}; + std::list> m_actions; + std::unordered_map> + m_projection_target_to_actions; + std::unordered_map> + m_projection_texture_target_to_actions; + std::unordered_map> m_draw_started_target_to_actions; + std::unordered_map> m_load_target_to_actions; + std::unordered_map, FBInfoHasher> m_efb_target_to_actions; + std::unordered_map, FBInfoHasher> m_xfb_target_to_actions; + + std::unordered_set m_groups; +}; From 0f8815572991511e490e87a50e4e57d1648702e0 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 7 Apr 2022 00:00:38 -0500 Subject: [PATCH 294/659] Core / DolphinQt / VideoCommon: add setting for enabling graphic mods --- Source/Core/Core/Config/GraphicsSettings.cpp | 2 ++ Source/Core/Core/Config/GraphicsSettings.h | 2 ++ Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp | 8 +++++++- Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h | 1 + Source/Core/VideoCommon/VideoConfig.cpp | 2 ++ Source/Core/VideoCommon/VideoConfig.h | 1 + 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Config/GraphicsSettings.cpp b/Source/Core/Core/Config/GraphicsSettings.cpp index b5b4f369f8..4bbcf99413 100644 --- a/Source/Core/Core/Config/GraphicsSettings.cpp +++ b/Source/Core/Core/Config/GraphicsSettings.cpp @@ -101,6 +101,8 @@ const Info GFX_SW_DRAW_END{{System::GFX, "Settings", "SWDrawEnd"}, 100000}; const Info GFX_PREFER_GLES{{System::GFX, "Settings", "PreferGLES"}, false}; +const Info GFX_MODS_ENABLE{{System::GFX, "Settings", "EnableMods"}, false}; + // Graphics.Enhancements const Info GFX_ENHANCE_FORCE_FILTERING{{System::GFX, "Enhancements", "ForceFiltering"}, diff --git a/Source/Core/Core/Config/GraphicsSettings.h b/Source/Core/Core/Config/GraphicsSettings.h index 6895501cb0..cdac08a77b 100644 --- a/Source/Core/Core/Config/GraphicsSettings.h +++ b/Source/Core/Core/Config/GraphicsSettings.h @@ -82,6 +82,8 @@ extern const Info GFX_SW_DRAW_END; extern const Info GFX_PREFER_GLES; +extern const Info GFX_MODS_ENABLE; + // Graphics.Enhancements extern const Info GFX_ENHANCE_FORCE_FILTERING; diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp index e604f7277a..b9f81b4746 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp @@ -72,13 +72,15 @@ void AdvancedWidget::CreateWidgets() m_dump_xfb_target = new GraphicsBool(tr("Dump XFB Target"), Config::GFX_DUMP_XFB_TARGET); m_disable_vram_copies = new GraphicsBool(tr("Disable EFB VRAM Copies"), Config::GFX_HACK_DISABLE_COPY_TO_VRAM); + m_enable_graphics_mods = new GraphicsBool(tr("Enable Graphics Mods"), Config::GFX_MODS_ENABLE); utility_layout->addWidget(m_load_custom_textures, 0, 0); utility_layout->addWidget(m_prefetch_custom_textures, 0, 1); utility_layout->addWidget(m_disable_vram_copies, 1, 0); + utility_layout->addWidget(m_enable_graphics_mods, 1, 1); - utility_layout->addWidget(m_dump_efb_target, 1, 1); + utility_layout->addWidget(m_dump_efb_target, 2, 0); utility_layout->addWidget(m_dump_xfb_target, 2, 1); // Texture dumping @@ -245,6 +247,9 @@ void AdvancedWidget::AddDescriptions() QT_TR_NOOP("Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this " "unchecked."); + static const char TR_LOAD_GRAPHICS_MODS_DESCRIPTION[] = + QT_TR_NOOP("Loads graphics mods from User/Load/GraphicsMods/.

If " + "unsure, leave this unchecked."); static const char TR_INTERNAL_RESOLUTION_FRAME_DUMPING_DESCRIPTION[] = QT_TR_NOOP( "Creates frame dumps and screenshots at the internal resolution of the renderer, rather than " "the size of the window it is displayed within.

If the aspect ratio is widescreen, " @@ -316,6 +321,7 @@ void AdvancedWidget::AddDescriptions() m_dump_efb_target->SetDescription(tr(TR_DUMP_EFB_DESCRIPTION)); m_dump_xfb_target->SetDescription(tr(TR_DUMP_XFB_DESCRIPTION)); m_disable_vram_copies->SetDescription(tr(TR_DISABLE_VRAM_COPIES_DESCRIPTION)); + m_enable_graphics_mods->SetDescription(tr(TR_LOAD_GRAPHICS_MODS_DESCRIPTION)); m_use_fullres_framedumps->SetDescription(tr(TR_INTERNAL_RESOLUTION_FRAME_DUMPING_DESCRIPTION)); #ifdef HAVE_FFMPEG m_dump_use_ffv1->SetDescription(tr(TR_USE_FFV1_DESCRIPTION)); diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h index 1148a2df1b..1c469cbc62 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h @@ -42,6 +42,7 @@ private: GraphicsBool* m_dump_xfb_target; GraphicsBool* m_disable_vram_copies; GraphicsBool* m_load_custom_textures; + GraphicsBool* m_enable_graphics_mods; // Texture dumping GraphicsBool* m_dump_textures; diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 58893c9267..c1ff163f9c 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -145,6 +145,8 @@ void VideoConfig::Refresh() bFastTextureSampling = Config::Get(Config::GFX_HACK_FAST_TEXTURE_SAMPLING); bPerfQueriesEnable = Config::Get(Config::GFX_PERF_QUERIES_ENABLE); + + bGraphicMods = Config::Get(Config::GFX_MODS_ENABLE); } void VideoConfig::VerifyValidity() diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h index f557f7bfe7..7be25a6d88 100644 --- a/Source/Core/VideoCommon/VideoConfig.h +++ b/Source/Core/VideoCommon/VideoConfig.h @@ -111,6 +111,7 @@ struct VideoConfig final bool bBorderlessFullscreen = false; bool bEnableGPUTextureDecoding = false; int iBitrateKbps = 0; + bool bGraphicMods = false; // Hacks bool bEFBAccessEnable = false; From 62c186e14b35d896d67172bc5092df2af59e715e Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 25 Jun 2022 00:42:17 -0500 Subject: [PATCH 295/659] VideoCommon: add UninitializeEFBMemory to mirror XFB function --- Source/Core/VideoCommon/TextureCacheBase.cpp | 24 ++++++++++++-------- Source/Core/VideoCommon/TextureCacheBase.h | 1 + 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 0ed5ffe014..195e4f9443 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -2225,15 +2225,7 @@ void TextureCacheBase::CopyRenderTargetToTexture( } else { - // Hack: Most games don't actually need the correct texture data in RAM - // and we can just keep a copy in VRAM. We zero the memory so we - // can check it hasn't changed before using our copy in VRAM. - u8* ptr = dst; - for (u32 i = 0; i < num_blocks_y; i++) - { - std::memset(ptr, 0, bytes_per_row); - ptr += dstStride; - } + UninitializeEFBMemory(dst, dstStride, bytes_per_row, num_blocks_y); } } @@ -2403,6 +2395,20 @@ void TextureCacheBase::ReleaseEFBCopyStagingTexture(std::unique_ptr Date: Sat, 5 Mar 2022 14:52:43 -0600 Subject: [PATCH 296/659] VideoCommon: trigger mod calls in TextureCacheBase (efb/xfb calls), VertexManagerBase (draw calls), and VertexShaderManager (projection calls) --- Source/Core/VideoCommon/HiresTextures.cpp | 4 +- Source/Core/VideoCommon/HiresTextures.h | 4 +- Source/Core/VideoCommon/RenderBase.cpp | 11 ++++ Source/Core/VideoCommon/RenderBase.h | 5 ++ Source/Core/VideoCommon/TextureCacheBase.cpp | 54 +++++++++++++++---- Source/Core/VideoCommon/TextureCacheBase.h | 8 ++- Source/Core/VideoCommon/VertexManagerBase.cpp | 48 ++++++++++++++--- Source/Core/VideoCommon/VertexManagerBase.h | 4 +- .../Core/VideoCommon/VertexShaderManager.cpp | 29 +++++++++- Source/Core/VideoCommon/VertexShaderManager.h | 3 +- 10 files changed, 142 insertions(+), 28 deletions(-) diff --git a/Source/Core/VideoCommon/HiresTextures.cpp b/Source/Core/VideoCommon/HiresTextures.cpp index 96b340772f..9636bfe651 100644 --- a/Source/Core/VideoCommon/HiresTextures.cpp +++ b/Source/Core/VideoCommon/HiresTextures.cpp @@ -213,7 +213,7 @@ void HiresTexture::Prefetch() 10000); } -std::string HiresTexture::GenBaseName(TextureInfo& texture_info, bool dump) +std::string HiresTexture::GenBaseName(const TextureInfo& texture_info, bool dump) { if (!dump && s_textureMap.empty()) return ""; @@ -261,7 +261,7 @@ u32 HiresTexture::CalculateMipCount(u32 width, u32 height) return mip_count; } -std::shared_ptr HiresTexture::Search(TextureInfo& texture_info) +std::shared_ptr HiresTexture::Search(const TextureInfo& texture_info) { const std::string base_filename = GenBaseName(texture_info); diff --git a/Source/Core/VideoCommon/HiresTextures.h b/Source/Core/VideoCommon/HiresTextures.h index 78e40460db..bcd889e18c 100644 --- a/Source/Core/VideoCommon/HiresTextures.h +++ b/Source/Core/VideoCommon/HiresTextures.h @@ -25,9 +25,9 @@ public: static void Clear(); static void Shutdown(); - static std::shared_ptr Search(TextureInfo& texture_info); + static std::shared_ptr Search(const TextureInfo& texture_info); - static std::string GenBaseName(TextureInfo& texture_info, bool dump = false); + static std::string GenBaseName(const TextureInfo& texture_info, bool dump = false); static u32 CalculateMipCount(u32 width, u32 height); diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index dbad9711f1..b13f74542c 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -67,6 +67,7 @@ #include "VideoCommon/FramebufferManager.h" #include "VideoCommon/FramebufferShaderGen.h" #include "VideoCommon/FreeLookCamera.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" #include "VideoCommon/NetPlayChatUI.h" #include "VideoCommon/NetPlayGolfUI.h" #include "VideoCommon/OnScreenDisplay.h" @@ -1309,6 +1310,11 @@ void Renderer::Swap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height, u6 // behind the renderer. FlushFrameDump(); + if (g_ActiveConfig.bGraphicMods) + { + m_graphics_mod_manager.EndOfFrame(); + } + if (xfb_addr && fb_width && fb_stride && fb_height) { // Get the current XFB from texture cache @@ -1830,3 +1836,8 @@ std::unique_ptr Renderer::CreateAsyncShaderCom { return std::make_unique(); } + +const GraphicsModManager& Renderer::GetGraphicsModManager() const +{ + return m_graphics_mod_manager; +} diff --git a/Source/Core/VideoCommon/RenderBase.h b/Source/Core/VideoCommon/RenderBase.h index 380225b133..403d028525 100644 --- a/Source/Core/VideoCommon/RenderBase.h +++ b/Source/Core/VideoCommon/RenderBase.h @@ -30,6 +30,7 @@ #include "VideoCommon/BPMemory.h" #include "VideoCommon/FPSCounter.h" #include "VideoCommon/FrameDump.h" +#include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h" #include "VideoCommon/RenderState.h" #include "VideoCommon/TextureConfig.h" @@ -268,6 +269,8 @@ public: // Will forcibly reload all textures on the next swap void ForceReloadTextures(); + const GraphicsModManager& GetGraphicsModManager() const; + protected: // Bitmask containing information about which configuration has changed for the backend. enum ConfigChangeBits : u32 @@ -447,6 +450,8 @@ private: std::unique_ptr m_netplay_chat_ui; Common::Flag m_force_reload_textures; + + GraphicsModManager m_graphics_mod_manager; }; extern std::unique_ptr g_renderer; diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 195e4f9443..3bd6e2ae52 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -36,6 +36,7 @@ #include "VideoCommon/AbstractStagingTexture.h" #include "VideoCommon/BPMemory.h" #include "VideoCommon/FramebufferManager.h" +#include "VideoCommon/GraphicsModSystem/Runtime/FBInfo.h" #include "VideoCommon/HiresTextures.h" #include "VideoCommon/OpcodeDecoding.h" #include "VideoCommon/PixelShaderManager.h" @@ -255,6 +256,7 @@ void TextureCacheBase::SetBackupConfig(const VideoConfig& config) backup_config.gpu_texture_decoding = config.bEnableGPUTextureDecoding; backup_config.disable_vram_copies = config.bDisableCopyToVRAM; backup_config.arbitrary_mipmap_detection = config.bArbitraryMipmapDetection; + backup_config.graphics_mods = config.bGraphicMods; } TextureCacheBase::TCacheEntry* @@ -1205,15 +1207,15 @@ private: std::vector levels; }; -TextureCacheBase::TCacheEntry* TextureCacheBase::Load(const u32 stage) +TextureCacheBase::TCacheEntry* TextureCacheBase::Load(const TextureInfo& texture_info) { // if this stage was not invalidated by changes to texture registers, keep the current texture - if (TMEM::IsValid(stage) && bound_textures[stage]) + if (TMEM::IsValid(texture_info.GetStage()) && bound_textures[texture_info.GetStage()]) { - TCacheEntry* entry = bound_textures[stage]; + TCacheEntry* entry = bound_textures[texture_info.GetStage()]; // If the TMEM configuration is such that this texture is more or less guaranteed to still // be in TMEM, then we know we can reuse the old entry without even hashing the memory - if (TMEM::IsCached(stage)) + if (TMEM::IsCached(texture_info.GetStage())) { return entry; } @@ -1226,26 +1228,29 @@ TextureCacheBase::TCacheEntry* TextureCacheBase::Load(const u32 stage) } } - TextureInfo texture_info = TextureInfo::FromStage(stage); - auto entry = GetTexture(g_ActiveConfig.iSafeTextureCache_ColorSamples, texture_info); if (!entry) return nullptr; entry->frameCount = FRAMECOUNT_INVALID; - bound_textures[stage] = entry; + if (entry->texture_info_name.empty() && g_ActiveConfig.bGraphicMods) + { + entry->texture_info_name = texture_info.CalculateTextureName().GetFullName(); + } + bound_textures[texture_info.GetStage()] = entry; // We need to keep track of invalided textures until they have actually been replaced or // re-loaded - TMEM::Bind(stage, entry->NumBlocksX(), entry->NumBlocksY(), entry->GetNumLevels() > 1, - entry->format == TextureFormat::RGBA8); + TMEM::Bind(texture_info.GetStage(), entry->NumBlocksX(), entry->NumBlocksY(), + entry->GetNumLevels() > 1, entry->format == TextureFormat::RGBA8); return entry; } TextureCacheBase::TCacheEntry* -TextureCacheBase::GetTexture(const int textureCacheSafetyColorSampleSize, TextureInfo& texture_info) +TextureCacheBase::GetTexture(const int textureCacheSafetyColorSampleSize, + const TextureInfo& texture_info) { u32 expanded_width = texture_info.GetExpandedWidth(); u32 expanded_height = texture_info.GetExpandedHeight(); @@ -2119,6 +2124,35 @@ void TextureCacheBase::CopyRenderTargetToTexture( const u32 bytes_per_row = num_blocks_x * bytes_per_block; const u32 covered_range = num_blocks_y * dstStride; + if (g_ActiveConfig.bGraphicMods) + { + FBInfo info; + info.m_width = tex_w; + info.m_height = tex_h; + info.m_texture_format = baseFormat; + if (is_xfb_copy) + { + for (const auto action : g_renderer->GetGraphicsModManager().GetXFBActions(info)) + { + action->OnXFB(); + } + } + else + { + bool skip = false; + for (const auto action : g_renderer->GetGraphicsModManager().GetEFBActions(info)) + { + action->OnEFB(&skip, tex_w, tex_h, &scaled_tex_w, &scaled_tex_h); + } + if (skip == true) + { + if (copy_to_ram) + UninitializeEFBMemory(dst, dstStride, bytes_per_row, num_blocks_y); + return; + } + } + } + if (dstStride < bytes_per_row) { // This kind of efb copy results in a scrambled image. diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 3247c9f929..61cc612eed 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -155,6 +155,8 @@ public: u32 pending_efb_copy_height = 0; bool pending_efb_copy_invalidated = false; + std::string texture_info_name = ""; + explicit TCacheEntry(std::unique_ptr tex, std::unique_ptr fb); @@ -239,8 +241,9 @@ public: void Invalidate(); - TCacheEntry* Load(const u32 stage); - TCacheEntry* GetTexture(const int textureCacheSafetyColorSampleSize, TextureInfo& texture_info); + TCacheEntry* Load(const TextureInfo& texture_info); + TCacheEntry* GetTexture(const int textureCacheSafetyColorSampleSize, + const TextureInfo& texture_info); TCacheEntry* GetXFBTexture(u32 address, u32 width, u32 height, u32 stride, MathUtil::Rectangle* display_rect); @@ -374,6 +377,7 @@ private: bool gpu_texture_decoding; bool disable_vram_copies; bool arbitrary_mipmap_detection; + bool graphics_mods; }; BackupConfig backup_config = {}; diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index 72f02927b5..b3d6f86686 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -7,7 +7,6 @@ #include #include -#include "Common/BitSet.h" #include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/EnumMap.h" @@ -30,6 +29,7 @@ #include "VideoCommon/RenderBase.h" #include "VideoCommon/Statistics.h" #include "VideoCommon/TextureCacheBase.h" +#include "VideoCommon/TextureInfo.h" #include "VideoCommon/VertexLoaderManager.h" #include "VideoCommon/VertexShaderManager.h" #include "VideoCommon/VideoBackendBase.h" @@ -337,7 +337,7 @@ bool VertexManagerBase::UploadTexelBuffer(const void* data, u32 data_size, Texel return false; } -void VertexManagerBase::LoadTextures() +BitSet32 VertexManagerBase::UsedTextures() const { BitSet32 usedtextures; for (u32 i = 0; i < bpmem.genMode.numtevstages + 1u; ++i) @@ -349,10 +349,7 @@ void VertexManagerBase::LoadTextures() if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages) usedtextures[bpmem.tevindref.getTexMap(bpmem.tevind[i].bt)] = true; - for (unsigned int i : usedtextures) - g_texture_cache->Load(i); - - g_texture_cache->BindTextures(usedtextures); + return usedtextures; } void VertexManagerBase::Flush() @@ -455,7 +452,30 @@ void VertexManagerBase::Flush() CalculateBinormals(VertexLoaderManager::GetCurrentVertexFormat()); // Calculate ZSlope for zfreeze - VertexShaderManager::SetConstants(); + const auto used_textures = UsedTextures(); + std::vector texture_names; + if (!m_cull_all) + { + if (!g_ActiveConfig.bGraphicMods) + { + for (const u32 i : used_textures) + { + g_texture_cache->Load(TextureInfo::FromStage(i)); + } + } + else + { + for (const u32 i : used_textures) + { + const auto cache_entry = g_texture_cache->Load(TextureInfo::FromStage(i)); + if (cache_entry) + { + texture_names.push_back(cache_entry->texture_info_name); + } + } + } + } + VertexShaderManager::SetConstants(texture_names); if (!bpmem.genMode.zfreeze) { // Must be done after VertexShaderManager::SetConstants() @@ -469,6 +489,18 @@ void VertexManagerBase::Flush() if (!m_cull_all) { + for (const auto& texture_name : texture_names) + { + bool skip = false; + for (const auto action : + g_renderer->GetGraphicsModManager().GetDrawStartedActions(texture_name)) + { + action->OnDrawStarted(&skip); + } + if (skip == true) + return; + } + // Now the vertices can be flushed to the GPU. Everything following the CommitBuffer() call // must be careful to not upload any utility vertices, as the binding will be lost otherwise. const u32 num_indices = m_index_generator.GetIndexLen(); @@ -480,7 +512,7 @@ void VertexManagerBase::Flush() // Texture loading can cause palettes to be applied (-> uniforms -> draws). // Palette application does not use vertices, only a full-screen quad, so this is okay. // Same with GPU texture decoding, which uses compute shaders. - LoadTextures(); + g_texture_cache->BindTextures(used_textures); // Now we can upload uniforms, as nothing else will override them. GeometryShaderManager::SetConstants(); diff --git a/Source/Core/VideoCommon/VertexManagerBase.h b/Source/Core/VideoCommon/VertexManagerBase.h index e4d029e9c7..7efdec2ebd 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.h +++ b/Source/Core/VideoCommon/VertexManagerBase.h @@ -6,6 +6,7 @@ #include #include +#include "Common/BitSet.h" #include "Common/CommonTypes.h" #include "Common/MathUtil.h" #include "VideoCommon/IndexGenerator.h" @@ -173,7 +174,8 @@ protected: void CalculateZSlope(NativeVertexFormat* format); void CalculateBinormals(NativeVertexFormat* format); - void LoadTextures(); + + BitSet32 UsedTextures() const; u8* m_cur_buffer_pointer = nullptr; u8* m_base_buffer_pointer = nullptr; diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index 6a7636d587..680d1ad3ee 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -85,7 +85,7 @@ void VertexShaderManager::Dirty() // Syncs the shader constant buffers with xfmem // TODO: A cleaner way to control the matrices without making a mess in the parameters field -void VertexShaderManager::SetConstants() +void VertexShaderManager::SetConstants(const std::vector& textures) { if (constants.missing_color_hex != g_ActiveConfig.iMissingColorValue) { @@ -302,7 +302,27 @@ void VertexShaderManager::SetConstants() g_stats.AddScissorRect(); } - if (bProjectionChanged || g_freelook_camera.GetController()->IsDirty()) + std::vector projection_actions; + if (g_ActiveConfig.bGraphicMods) + { + for (const auto action : + g_renderer->GetGraphicsModManager().GetProjectionActions(xfmem.projection.type)) + { + projection_actions.push_back(action); + } + + for (const auto& texture : textures) + { + for (const auto action : g_renderer->GetGraphicsModManager().GetProjectionTextureActions( + xfmem.projection.type, texture)) + { + projection_actions.push_back(action); + } + } + } + + if (bProjectionChanged || g_freelook_camera.GetController()->IsDirty() || + !projection_actions.empty()) { bProjectionChanged = false; @@ -384,6 +404,11 @@ void VertexShaderManager::SetConstants() if (g_freelook_camera.IsActive() && xfmem.projection.type == ProjectionType::Perspective) corrected_matrix *= g_freelook_camera.GetView(); + for (auto action : projection_actions) + { + action->OnProjection(&corrected_matrix); + } + memcpy(constants.projection.data(), corrected_matrix.data.data(), 4 * sizeof(float4)); g_freelook_camera.GetController()->SetClean(); diff --git a/Source/Core/VideoCommon/VertexShaderManager.h b/Source/Core/VideoCommon/VertexShaderManager.h index 90df8722ac..3bddf28fb0 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.h +++ b/Source/Core/VideoCommon/VertexShaderManager.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include "Common/CommonTypes.h" #include "VideoCommon/ConstantManager.h" @@ -19,7 +20,7 @@ public: static void DoState(PointerWrap& p); // constant management - static void SetConstants(); + static void SetConstants(const std::vector& textures); static void InvalidateXFRange(int start, int end); static void SetTexMatrixChangedA(u32 value); From 69839df1eb2a594b81bceb8cfac58ccbba286628 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Tue, 15 Mar 2022 01:46:58 -0500 Subject: [PATCH 297/659] VideoCommon: support dynamically updating game mods at runtime --- Source/Core/VideoCommon/RenderBase.cpp | 31 ++++++++++++++++++++ Source/Core/VideoCommon/TextureCacheBase.cpp | 9 +++++- Source/Core/VideoCommon/TextureCacheBase.h | 1 + Source/Core/VideoCommon/VideoConfig.h | 3 ++ 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index b13f74542c..412461d409 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -136,6 +136,22 @@ bool Renderer::Initialize() return false; } + if (g_ActiveConfig.bGraphicMods) + { + // If a config change occurred in a previous session, + // remember the old change count value. By setting + // our current change count to the old value, we + // avoid loading the stale data when we + // check for config changes. + const u32 old_game_mod_changes = g_ActiveConfig.graphics_mod_config ? + g_ActiveConfig.graphics_mod_config->GetChangeCount() : + 0; + g_ActiveConfig.graphics_mod_config = GraphicsModGroupConfig(SConfig::GetInstance().GetGameID()); + g_ActiveConfig.graphics_mod_config->Load(); + g_ActiveConfig.graphics_mod_config->SetChangeCount(old_game_mod_changes); + m_graphics_mod_manager.Load(*g_ActiveConfig.graphics_mod_config); + } + return true; } @@ -466,12 +482,27 @@ void Renderer::CheckForConfigChanges() const bool old_force_filtering = g_ActiveConfig.bForceFiltering; const bool old_vsync = g_ActiveConfig.bVSyncActive; const bool old_bbox = g_ActiveConfig.bBBoxEnable; + const u32 old_game_mod_changes = + g_ActiveConfig.graphics_mod_config ? g_ActiveConfig.graphics_mod_config->GetChangeCount() : 0; + const bool old_graphics_mods_enabled = g_ActiveConfig.bGraphicMods; UpdateActiveConfig(); FreeLook::UpdateActiveConfig(); g_freelook_camera.SetControlType(FreeLook::GetActiveConfig().camera_config.control_type); + if (g_ActiveConfig.bGraphicMods && !old_graphics_mods_enabled) + { + g_ActiveConfig.graphics_mod_config = GraphicsModGroupConfig(SConfig::GetInstance().GetGameID()); + g_ActiveConfig.graphics_mod_config->Load(); + } + + if (g_ActiveConfig.graphics_mod_config && + (old_game_mod_changes != g_ActiveConfig.graphics_mod_config->GetChangeCount())) + { + m_graphics_mod_manager.Load(*g_ActiveConfig.graphics_mod_config); + } + // Update texture cache settings with any changed options. g_texture_cache->OnConfigChanged(g_ActiveConfig); diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 3bd6e2ae52..9bbabb0252 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -154,6 +154,9 @@ void TextureCacheBase::OnConfigChanged(const VideoConfig& config) HiresTexture::Update(); } + const u32 change_count = + config.graphics_mod_config ? config.graphics_mod_config->GetChangeCount() : 0; + // TODO: Invalidating texcache is really stupid in some of these cases if (config.iSafeTextureCache_ColorSamples != backup_config.color_samples || config.bTexFmtOverlayEnable != backup_config.texfmt_overlay || @@ -161,7 +164,9 @@ void TextureCacheBase::OnConfigChanged(const VideoConfig& config) config.bHiresTextures != backup_config.hires_textures || config.bEnableGPUTextureDecoding != backup_config.gpu_texture_decoding || config.bDisableCopyToVRAM != backup_config.disable_vram_copies || - config.bArbitraryMipmapDetection != backup_config.arbitrary_mipmap_detection) + config.bArbitraryMipmapDetection != backup_config.arbitrary_mipmap_detection || + config.bGraphicMods != backup_config.graphics_mods || + change_count != backup_config.graphics_mod_change_count) { Invalidate(); TexDecoder_SetTexFmtOverlayOptions(config.bTexFmtOverlayEnable, config.bTexFmtOverlayCenter); @@ -257,6 +262,8 @@ void TextureCacheBase::SetBackupConfig(const VideoConfig& config) backup_config.disable_vram_copies = config.bDisableCopyToVRAM; backup_config.arbitrary_mipmap_detection = config.bArbitraryMipmapDetection; backup_config.graphics_mods = config.bGraphicMods; + backup_config.graphics_mod_change_count = + config.graphics_mod_config ? config.graphics_mod_config->GetChangeCount() : 0; } TextureCacheBase::TCacheEntry* diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 61cc612eed..287f3b840f 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -378,6 +378,7 @@ private: bool disable_vram_copies; bool arbitrary_mipmap_detection; bool graphics_mods; + u32 graphics_mod_change_count; }; BackupConfig backup_config = {}; diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h index 7be25a6d88..6ce7bed379 100644 --- a/Source/Core/VideoCommon/VideoConfig.h +++ b/Source/Core/VideoCommon/VideoConfig.h @@ -9,10 +9,12 @@ #pragma once +#include #include #include #include "Common/CommonTypes.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" #include "VideoCommon/VideoCommon.h" // Log in two categories, and save three other options in the same byte @@ -112,6 +114,7 @@ struct VideoConfig final bool bEnableGPUTextureDecoding = false; int iBitrateKbps = 0; bool bGraphicMods = false; + std::optional graphics_mod_config; // Hacks bool bEFBAccessEnable = false; From 1480b78f6478e4da9cc43e146d3b7377b7fe99df Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 26 May 2022 00:58:41 -0500 Subject: [PATCH 298/659] VideoCommon: dump EFB with size and texture format details and dump XFB with size details. Finally move count to front of image for XFB/EFB dumps so as to make it easier to see them in order. Change the count value prefix to 'n' --- Source/Core/VideoCommon/TextureCacheBase.cpp | 60 ++++++++++++++------ 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 9bbabb0252..9eb6e09792 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -56,6 +56,8 @@ static const u64 TEXHASH_INVALID = 0; static const int TEXTURE_KILL_THRESHOLD = 64; static const int TEXTURE_POOL_KILL_THRESHOLD = 3; +static int xfb_count = 0; + std::unique_ptr g_texture_cache; TextureCacheBase::TCacheEntry::TCacheEntry(std::unique_ptr tex, @@ -1776,12 +1778,20 @@ TextureCacheBase::GetXFBTexture(u32 address, u32 width, u32 height, u32 stride, SETSTAT(g_stats.num_textures_alive, static_cast(textures_by_address.size())); INCSTAT(g_stats.num_textures_uploaded); - if (g_ActiveConfig.bDumpXFBTarget) + if (g_ActiveConfig.bDumpXFBTarget || g_ActiveConfig.bGraphicMods) { - // While this isn't really an xfb copy, we can treat it as such for dumping purposes - static int xfb_count = 0; - entry->texture->Save( - fmt::format("{}xfb_loaded_{}.png", File::GetUserPath(D_DUMPTEXTURES_IDX), xfb_count++), 0); + const std::string id = fmt::format("{}x{}", width, height); + if (g_ActiveConfig.bGraphicMods) + { + entry->texture_info_name = fmt::format("{}_{}", XFB_DUMP_PREFIX, id); + } + + if (g_ActiveConfig.bDumpXFBTarget) + { + entry->texture->Save(fmt::format("{}{}_n{:06}_{}.png", File::GetUserPath(D_DUMPTEXTURES_IDX), + XFB_DUMP_PREFIX, xfb_count++, id), + 0); + } } GetDisplayRectForXFBEntry(entry, width, height, display_rect); @@ -2209,20 +2219,38 @@ void TextureCacheBase::CopyRenderTargetToTexture( isIntensity, gamma, clamp_top, clamp_bottom, GetVRAMCopyFilterCoefficients(filter_coefficients)); - if (g_ActiveConfig.bDumpEFBTarget && !is_xfb_copy) + if (is_xfb_copy && (g_ActiveConfig.bDumpXFBTarget || g_ActiveConfig.bGraphicMods)) { - static int efb_count = 0; - entry->texture->Save( - fmt::format("{}efb_frame_{}.png", File::GetUserPath(D_DUMPTEXTURES_IDX), efb_count++), - 0); - } + const std::string id = fmt::format("{}x{}", tex_w, tex_h); + if (g_ActiveConfig.bGraphicMods) + { + entry->texture_info_name = fmt::format("{}_{}", XFB_DUMP_PREFIX, id); + } - if (g_ActiveConfig.bDumpXFBTarget && is_xfb_copy) + if (g_ActiveConfig.bDumpXFBTarget) + { + entry->texture->Save(fmt::format("{}{}_n{:06}_{}.png", + File::GetUserPath(D_DUMPTEXTURES_IDX), XFB_DUMP_PREFIX, + xfb_count++, id), + 0); + } + } + else if (g_ActiveConfig.bDumpEFBTarget || g_ActiveConfig.bGraphicMods) { - static int xfb_count = 0; - entry->texture->Save( - fmt::format("{}xfb_copy_{}.png", File::GetUserPath(D_DUMPTEXTURES_IDX), xfb_count++), - 0); + const std::string id = fmt::format("{}x{}_{}", tex_w, tex_h, static_cast(baseFormat)); + if (g_ActiveConfig.bGraphicMods) + { + entry->texture_info_name = fmt::format("{}_{}", EFB_DUMP_PREFIX, id); + } + + if (g_ActiveConfig.bDumpEFBTarget) + { + static int efb_count = 0; + entry->texture->Save(fmt::format("{}{}_n{:06}_{}.png", + File::GetUserPath(D_DUMPTEXTURES_IDX), EFB_DUMP_PREFIX, + efb_count++, id), + 0); + } } } } From f3054aa99f69a71479c9a2e382b9016fbb00df33 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 2 Mar 2022 00:38:00 -0600 Subject: [PATCH 299/659] DolphinQt: add widget in game properties to list the various graphics mods available --- Source/Core/DolphinQt/CMakeLists.txt | 2 + .../Config/GraphicsModListWidget.cpp | 268 ++++++++++++++++++ .../DolphinQt/Config/GraphicsModListWidget.h | 69 +++++ .../DolphinQt/Config/PropertiesDialog.cpp | 7 + Source/Core/DolphinQt/DolphinQt.vcxproj | 2 + 5 files changed, 348 insertions(+) create mode 100644 Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp create mode 100644 Source/Core/DolphinQt/Config/GraphicsModListWidget.h diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 585cf62a3e..8d33993fc1 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -129,6 +129,8 @@ add_executable(dolphin-emu Config/Graphics/PostProcessingConfigWindow.h Config/Graphics/SoftwareRendererWidget.cpp Config/Graphics/SoftwareRendererWidget.h + Config/GraphicsModListWidget.cpp + Config/GraphicsModListWidget.h Config/InfoWidget.cpp Config/InfoWidget.h Config/LogConfigWidget.cpp diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp new file mode 100644 index 0000000000..8782bbc97d --- /dev/null +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp @@ -0,0 +1,268 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "DolphinQt/Config/GraphicsModListWidget.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "Core/ConfigManager.h" +#include "Core/Core.h" +#include "DolphinQt/Settings.h" +#include "UICommon/GameFile.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "VideoCommon/VideoConfig.h" + +GraphicsModListWidget::GraphicsModListWidget(const UICommon::GameFile& game) + : m_game_id(game.GetGameID()), m_mod_group(m_game_id) +{ + CalculateGameRunning(Core::GetState()); + if (m_loaded_game_is_running && g_Config.graphics_mod_config) + { + m_mod_group.SetChangeCount(g_Config.graphics_mod_config->GetChangeCount()); + } + CreateWidgets(); + ConnectWidgets(); + + RefreshModList(); + OnModChanged(std::nullopt); +} + +GraphicsModListWidget::~GraphicsModListWidget() +{ + if (m_needs_save) + { + m_mod_group.Save(); + } +} + +void GraphicsModListWidget::CreateWidgets() +{ + auto* main_layout = new QHBoxLayout(this); + + auto* left_v_layout = new QVBoxLayout; + + m_mod_list = new QListWidget; + m_mod_list->setSortingEnabled(false); + m_mod_list->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectItems); + m_mod_list->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection); + m_mod_list->setSelectionRectVisible(true); + m_mod_list->setDragDropMode(QAbstractItemView::InternalMove); + + m_refresh = new QPushButton(tr("&Refresh List")); + QHBoxLayout* hlayout = new QHBoxLayout; + hlayout->addStretch(); + hlayout->addWidget(m_refresh); + + left_v_layout->addWidget(m_mod_list); + left_v_layout->addLayout(hlayout); + + auto* right_v_layout = new QVBoxLayout; + + m_selected_mod_name = new QLabel(); + right_v_layout->addWidget(m_selected_mod_name); + + m_mod_meta_layout = new QVBoxLayout; + right_v_layout->addLayout(m_mod_meta_layout); + + main_layout->addLayout(left_v_layout); + main_layout->addLayout(right_v_layout, 1); + + setLayout(main_layout); +} + +void GraphicsModListWidget::ConnectWidgets() +{ + connect(m_mod_list, &QListWidget::itemSelectionChanged, this, + &GraphicsModListWidget::ModSelectionChanged); + + connect(m_mod_list, &QListWidget::itemChanged, this, &GraphicsModListWidget::ModItemChanged); + + connect(m_mod_list->model(), &QAbstractItemModel::rowsMoved, this, + &GraphicsModListWidget::SaveModList); + + connect(m_refresh, &QPushButton::clicked, this, &GraphicsModListWidget::RefreshModList); + + connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, + &GraphicsModListWidget::CalculateGameRunning); +} + +void GraphicsModListWidget::RefreshModList() +{ + m_mod_list->setCurrentItem(nullptr); + m_mod_list->clear(); + + m_mod_group = GraphicsModGroupConfig(m_game_id); + m_mod_group.Load(); + + std::set groups; + + for (const auto& mod : m_mod_group.GetMods()) + { + if (mod.m_groups.empty()) + continue; + + for (const auto& group : mod.m_groups) + { + groups.insert(group.m_name); + } + } + + for (const auto& mod : m_mod_group.GetMods()) + { + // Group only mods shouldn't be shown + if (mod.m_features.empty()) + continue; + + // If the group doesn't exist in the available mod's features, skip + if (std::none_of(mod.m_features.begin(), mod.m_features.end(), + [&groups](const GraphicsModFeatureConfig& feature) { + return groups.count(feature.m_group) == 1; + })) + { + continue; + } + + QListWidgetItem* item = new QListWidgetItem(QString::fromStdString(mod.m_title)); + item->setFlags(item->flags() | Qt::ItemIsUserCheckable); + item->setData(Qt::UserRole, QString::fromStdString(mod.GetAbsolutePath())); + item->setCheckState(mod.m_enabled ? Qt::Checked : Qt::Unchecked); + + m_mod_list->addItem(item); + } +} + +void GraphicsModListWidget::ModSelectionChanged() +{ + if (m_mod_list->currentItem() == nullptr) + return; + if (m_mod_list->count() == 0) + return; + const auto absolute_path = m_mod_list->currentItem()->data(Qt::UserRole).toString().toStdString(); + OnModChanged(absolute_path); +} + +void GraphicsModListWidget::ModItemChanged(QListWidgetItem* item) +{ + const auto absolute_path = item->data(Qt::UserRole).toString(); + GraphicsModConfig* mod = m_mod_group.GetMod(absolute_path.toStdString()); + if (!mod) + return; + + const bool was_enabled = mod->m_enabled; + const bool should_enable = item->checkState() == Qt::Checked; + mod->m_enabled = should_enable; + if (was_enabled == should_enable) + return; + + m_mod_group.SetChangeCount(m_mod_group.GetChangeCount() + 1); + if (m_loaded_game_is_running) + { + g_Config.graphics_mod_config = m_mod_group; + } + m_needs_save = true; +} + +void GraphicsModListWidget::OnModChanged(std::optional absolute_path) +{ + ClearLayoutRecursively(m_mod_meta_layout); + + adjustSize(); + + if (!absolute_path) + { + m_selected_mod_name->setText(QStringLiteral("No graphics mod selected")); + m_selected_mod_name->setAlignment(Qt::AlignCenter); + return; + } + + GraphicsModConfig* mod = m_mod_group.GetMod(*absolute_path); + if (!mod) + return; + + m_selected_mod_name->setText(QString::fromStdString(mod->m_title)); + m_selected_mod_name->setAlignment(Qt::AlignLeft); + QFont font = m_selected_mod_name->font(); + font.setWeight(QFont::Bold); + m_selected_mod_name->setFont(font); + + if (!mod->m_author.empty()) + { + auto* author_label = new QLabel(tr("By: ") + QString::fromStdString(mod->m_author)); + m_mod_meta_layout->addWidget(author_label); + } + + if (!mod->m_description.empty()) + { + auto* description_label = + new QLabel(tr("Description: ") + QString::fromStdString(mod->m_description)); + m_mod_meta_layout->addWidget(description_label); + } +} + +void GraphicsModListWidget::SaveModList() +{ + for (int i = 0; i < m_mod_list->count(); i++) + { + const auto absolute_path = m_mod_list->model() + ->data(m_mod_list->model()->index(i, 0), Qt::UserRole) + .toString() + .toStdString(); + m_mod_group.GetMod(absolute_path)->m_weight = i; + } + + if (m_loaded_game_is_running) + { + g_Config.graphics_mod_config = m_mod_group; + } + m_needs_save = true; +} + +void GraphicsModListWidget::ClearLayoutRecursively(QLayout* layout) +{ + while (QLayoutItem* child = layout->takeAt(0)) + { + if (child == nullptr) + continue; + + if (child->widget()) + { + layout->removeWidget(child->widget()); + delete child->widget(); + } + else if (child->layout()) + { + ClearLayoutRecursively(child->layout()); + layout->removeItem(child); + } + else + { + layout->removeItem(child); + } + delete child; + } +} + +void GraphicsModListWidget::SaveToDisk() +{ + m_needs_save = false; + m_mod_group.Save(); +} + +const GraphicsModGroupConfig& GraphicsModListWidget::GetGraphicsModConfig() const +{ + return m_mod_group; +} + +void GraphicsModListWidget::CalculateGameRunning(Core::State state) +{ + m_loaded_game_is_running = + state == Core::State::Running ? m_game_id == SConfig::GetInstance().GetGameID() : false; +} diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.h b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h new file mode 100644 index 0000000000..b8b1f5969c --- /dev/null +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h @@ -0,0 +1,69 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include + +#include "Common/CommonTypes.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" + +class QHBoxLayout; +class QLabel; +class QListWidget; +class QListWidgetItem; +class QModelIndex; +class QPushButton; +class QVBoxLayout; + +namespace Core +{ +enum class State; +} + +namespace UICommon +{ +class GameFile; +} + +class GraphicsModListWidget : public QWidget +{ +public: + explicit GraphicsModListWidget(const UICommon::GameFile& game); + ~GraphicsModListWidget(); + + void SaveToDisk(); + + const GraphicsModGroupConfig& GetGraphicsModConfig() const; + +private: + void CreateWidgets(); + void ConnectWidgets(); + + void RefreshModList(); + void ModSelectionChanged(); + void ModItemChanged(QListWidgetItem* item); + + void OnModChanged(std::optional absolute_path); + + void SaveModList(); + + void ClearLayoutRecursively(QLayout* layout); + + void CalculateGameRunning(Core::State state); + bool m_loaded_game_is_running = false; + bool m_needs_save = false; + + QListWidget* m_mod_list; + + QLabel* m_selected_mod_name; + QVBoxLayout* m_mod_meta_layout; + + QPushButton* m_refresh; + + std::string m_game_id; + GraphicsModGroupConfig m_mod_group; +}; diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp index a7589a4fc1..5ecb9d87bf 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp @@ -17,12 +17,14 @@ #include "DolphinQt/Config/FilesystemWidget.h" #include "DolphinQt/Config/GameConfigWidget.h" #include "DolphinQt/Config/GeckoCodeWidget.h" +#include "DolphinQt/Config/GraphicsModListWidget.h" #include "DolphinQt/Config/InfoWidget.h" #include "DolphinQt/Config/PatchesWidget.h" #include "DolphinQt/Config/VerifyWidget.h" #include "DolphinQt/QtUtils/WrapInScrollArea.h" #include "UICommon/GameFile.h" +#include "VideoCommon/VideoConfig.h" PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& game) : QDialog(parent) @@ -43,6 +45,7 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga new GeckoCodeWidget(game.GetGameID(), game.GetGameTDBID(), game.GetRevision()); PatchesWidget* patches = new PatchesWidget(game); GameConfigWidget* game_config = new GameConfigWidget(game); + GraphicsModListWidget* graphics_mod_list = new GraphicsModListWidget(game); connect(gecko, &GeckoCodeWidget::OpenGeneralSettings, this, &PropertiesDialog::OpenGeneralSettings); @@ -57,6 +60,8 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga tab_widget->addTab(GetWrappedWidget(ar, this, padding_width, padding_height), tr("AR Codes")); tab_widget->addTab(GetWrappedWidget(gecko, this, padding_width, padding_height), tr("Gecko Codes")); + tab_widget->addTab(GetWrappedWidget(graphics_mod_list, this, padding_width, padding_height), + tr("Graphics Mods")); tab_widget->addTab(GetWrappedWidget(info, this, padding_width, padding_height), tr("Info")); if (game.GetPlatform() != DiscIO::Platform::ELFOrDOL) @@ -82,6 +87,8 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga QDialogButtonBox* close_box = new QDialogButtonBox(QDialogButtonBox::Close); connect(close_box, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(close_box, &QDialogButtonBox::rejected, graphics_mod_list, + &GraphicsModListWidget::SaveToDisk); layout->addWidget(close_box); diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index e6df0c3122..4808009b73 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -76,6 +76,7 @@ + @@ -270,6 +271,7 @@ + From 3eb3e1c83ace2e7c4e3573138247a78384b9ec16 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Tue, 15 Mar 2022 01:48:09 -0500 Subject: [PATCH 300/659] Data: add default data for hud and bloom on some games --- .../GraphicMods/Arc Rise Fantasia/RPJ.txt | 0 .../Arc Rise Fantasia/metadata.json | 19 ++ .../GraphicMods/Battallion Wars 2/RBW.txt | 0 .../Battallion Wars 2/metadata.json | 19 ++ .../Donkey Kong Country Returns/SF8.txt | 0 .../Donkey Kong Country Returns/metadata.json | 19 ++ .../R2G.txt | 0 .../metadata.json | 47 +++++ .../House of the Dead Overkill/RHO.txt | 0 .../House of the Dead Overkill/metadata.json | 19 ++ Data/Sys/Load/GraphicMods/Last Story/SLS.txt | 0 .../Load/GraphicMods/Last Story/metadata.json | 103 +++++++++++ .../Link's Crossbow Training/RZP.txt | 0 .../Link's Crossbow Training/metadata.json | 23 +++ .../GraphicMods/Little King's Story/RO3.txt | 0 .../Little King's Story/metadata.json | 167 ++++++++++++++++++ .../Load/GraphicMods/Mario Kart Wii/RMC.txt | 0 .../GraphicMods/Mario Kart Wii/metadata.json | 19 ++ .../Monster Hunter Tri - Demo/DMH.txt | 0 .../Monster Hunter Tri - Demo/metadata.json | 27 +++ .../Nights Journey of Dreams/R7E.txt | 0 .../Nights Journey of Dreams/metadata.json | 19 ++ Data/Sys/Load/GraphicMods/Okami/ROW.txt | 0 Data/Sys/Load/GraphicMods/Okami/metadata.json | 19 ++ .../GraphicMods/Rune Factory Frontier/RUF.txt | 0 .../Rune Factory Frontier/metadata.json | 103 +++++++++++ .../GraphicMods/Super Mario Galaxy 2/SB4.txt | 0 .../Super Mario Galaxy 2/metadata.json | 27 +++ .../Super Mario Strikers Charged/R4Q.txt | 0 .../metadata.json | 31 ++++ Data/Sys/Load/GraphicMods/The Conduit/RCJ.txt | 0 .../GraphicMods/The Conduit/metadata.json | 31 ++++ .../RZD.txt | 0 .../metadata.json | 23 +++ .../GraphicMods/Xenoblade Chronicles/SX4.txt | 0 .../Xenoblade Chronicles/metadata.json | 31 ++++ 36 files changed, 746 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Arc Rise Fantasia/RPJ.txt create mode 100644 Data/Sys/Load/GraphicMods/Arc Rise Fantasia/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Battallion Wars 2/RBW.txt create mode 100644 Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/SF8.txt create mode 100644 Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/R2G.txt create mode 100644 Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/House of the Dead Overkill/RHO.txt create mode 100644 Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Last Story/SLS.txt create mode 100644 Data/Sys/Load/GraphicMods/Last Story/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Link's Crossbow Training/RZP.txt create mode 100644 Data/Sys/Load/GraphicMods/Link's Crossbow Training/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Little King's Story/RO3.txt create mode 100644 Data/Sys/Load/GraphicMods/Little King's Story/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Mario Kart Wii/RMC.txt create mode 100644 Data/Sys/Load/GraphicMods/Mario Kart Wii/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/DMH.txt create mode 100644 Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Nights Journey of Dreams/R7E.txt create mode 100644 Data/Sys/Load/GraphicMods/Nights Journey of Dreams/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Okami/ROW.txt create mode 100644 Data/Sys/Load/GraphicMods/Okami/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Rune Factory Frontier/RUF.txt create mode 100644 Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/SB4.txt create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/R4Q.txt create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/The Conduit/RCJ.txt create mode 100644 Data/Sys/Load/GraphicMods/The Conduit/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/RZD.txt create mode 100644 Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Xenoblade Chronicles/SX4.txt create mode 100644 Data/Sys/Load/GraphicMods/Xenoblade Chronicles/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Arc Rise Fantasia/RPJ.txt b/Data/Sys/Load/GraphicMods/Arc Rise Fantasia/RPJ.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Arc Rise Fantasia/metadata.json b/Data/Sys/Load/GraphicMods/Arc Rise Fantasia/metadata.json new file mode 100644 index 0000000000..d1a072f611 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Arc Rise Fantasia/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n33_160x112_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Battallion Wars 2/RBW.txt b/Data/Sys/Load/GraphicMods/Battallion Wars 2/RBW.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json b/Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json new file mode 100644 index 0000000000..358266ac55 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000023_80x60_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/SF8.txt b/Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/SF8.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/metadata.json b/Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/metadata.json new file mode 100644 index 0000000000..d07afa792d --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Donkey Kong Country Returns/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n2_320x224_4" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/R2G.txt b/Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/R2G.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/metadata.json b/Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/metadata.json new file mode 100644 index 0000000000..09d54d9344 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Fragile Dreams - Farewell Ruins of the Moon/metadata.json @@ -0,0 +1,47 @@ +{ + "meta": + { + "title": "HUD definitions", + "author": "iwubcode" + }, + "groups": [ + { + "name": "HUD", + "targets": [ + { + "type": "draw_started", + "prettyname": "map border", + "texture_filename": "tex1_180x180_6e5c9aa7004f377b_1" + }, + { + "type": "projection", + "value": "2d", + "prettyname": "map border", + "texture_filename": "tex1_180x180_6e5c9aa7004f377b_1" + }, + { + "type": "draw_started", + "prettyname": "map player marker", + "texture_filename": "tex1_64x64_f84b318707ee8455_1" + }, + { + "type": "projection", + "value": "2d", + "prettyname": "map player marker", + "texture_filename": "tex1_64x64_f84b318707ee8455_1" + }, + { + "type": "draw_started", + "prettyname": "map player facing pointer", + "texture_filename": "tex1_64x64_2ece13b26442de5a_0" + }, + { + "type": "projection", + "value": "2d", + "prettyname": "map player facing pointer", + "texture_filename": "tex1_64x64_2ece13b26442de5a_0" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/House of the Dead Overkill/RHO.txt b/Data/Sys/Load/GraphicMods/House of the Dead Overkill/RHO.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json b/Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json new file mode 100644 index 0000000000..63e06d60c4 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000008_80x60_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Last Story/SLS.txt b/Data/Sys/Load/GraphicMods/Last Story/SLS.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Last Story/metadata.json b/Data/Sys/Load/GraphicMods/Last Story/metadata.json new file mode 100644 index 0000000000..dca7f6f578 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Last Story/metadata.json @@ -0,0 +1,103 @@ +{ + "meta": + { + "title": "Bloom and HUD Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "HUD", + "targets": [ + { + "type": "draw_started", + "pretty_name": "faces", + "texture_filename": "tex1_512x256_ff742945bb1f5cd6_14" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "faces", + "texture_filename": "tex1_512x256_ff742945bb1f5cd6_14" + }, + { + "type": "draw_started", + "pretty_name": "text", + "texture_filename": "tex1_512x512_09ca8ef639199fa9_0" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "text", + "texture_filename": "tex1_512x512_09ca8ef639199fa9_0" + }, + { + "type": "draw_started", + "pretty_name": "text2", + "texture_filename": "tex1_512x512_79e54f19ff7811de_0" + }, + + { + "type": "projection", + "value": "2d", + "pretty_name": "text2", + "texture_filename": "tex1_512x512_79e54f19ff7811de_0" + }, + { + "type": "draw_started", + "pretty_name": "text3", + "texture_filename": "tex1_512x256_cb8c5f14fa63398f_0" + }, + + { + "type": "projection", + "value": "2d", + "pretty_name": "text3", + "texture_filename": "tex1_512x256_cb8c5f14fa63398f_0" + }, + { + "type": "draw_started", + "pretty_name": "large numbers", + "texture_filename": "tex1_128x256_5fd7e727abd256a9_0" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "large numbers", + "texture_filename": "tex1_128x256_5fd7e727abd256a9_0" + }, + { + "type": "draw_started", + "pretty_name": "life gradient", + "texture_filename": "tex1_128x64_e3c9e617a9fdf915_14" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "life gradient", + "texture_filename": "tex1_128x64_e3c9e617a9fdf915_14" + }, + { + "type": "draw_started", + "pretty_name": "life outline", + "texture_filename": "tex1_128x64_deeeaa33ca3dc0f1_14" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "life outline", + "texture_filename": "tex1_128x64_deeeaa33ca3dc0f1_14" + } + ] + }, + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n56_80x56_6" + } + ] + } + ] +} diff --git a/Data/Sys/Load/GraphicMods/Link's Crossbow Training/RZP.txt b/Data/Sys/Load/GraphicMods/Link's Crossbow Training/RZP.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Link's Crossbow Training/metadata.json b/Data/Sys/Load/GraphicMods/Link's Crossbow Training/metadata.json new file mode 100644 index 0000000000..b31aaecf04 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Link's Crossbow Training/metadata.json @@ -0,0 +1,23 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n23_80x57_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n22_160x114_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Little King's Story/RO3.txt b/Data/Sys/Load/GraphicMods/Little King's Story/RO3.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Little King's Story/metadata.json b/Data/Sys/Load/GraphicMods/Little King's Story/metadata.json new file mode 100644 index 0000000000..3b1b552161 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Little King's Story/metadata.json @@ -0,0 +1,167 @@ +{ + "meta": + { + "title": "Bloom and HUD definitions", + "author": "iwubcode" + }, + "groups": [ + { + "name": "HUD", + "targets": [ + { + "type": "draw_started", + "texture_filename": "tex1_96x96_7b5b0f693c1200ad_5" + }, + { + "type": "draw_started", + "texture_filename": "tex1_40x48_b510b4434b7de70c_5" + }, + { + "type": "draw_started", + "texture_filename": "tex1_96x96_633c30835459df0f_5" + }, + { + "type": "draw_started", + "texture_filename": "tex1_24x68_715518a00c14e148_5" + }, + { + "type": "draw_started", + "texture_filename": "tex1_32x80_f310048c1139815d_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_12x16_1e9016c61dfffb7a_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_12x16_459c7d7576547909_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_12x16_d1b77f0000ff337a_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_20x16_798aee4dc7001432_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_108x122_911fa08f1554752c_5" + }, + { + "type": "draw_started", + "texture_filename": "tex1_64x64_96894941f5454ead_3" + }, + { + "type": "draw_started", + "texture_filename": "tex1_8x8_0017d44adaf2291b_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_10x8_7a6a869d5553c4a0_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_16x16_49c191eaf4314e9d_14" + }, + { + "type": "draw_started", + "texture_filename": "tex1_18x16_472b403cdcfc31a3_3" + }, + { + "type": "draw_started", + "texture_filename": "tex1_30x26_629956a45175e53a_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_96x96_7b5b0f693c1200ad_5" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_40x48_b510b4434b7de70c_5" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_96x96_633c30835459df0f_5" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_24x68_715518a00c14e148_5" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_32x80_f310048c1139815d_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_12x16_1e9016c61dfffb7a_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_12x16_459c7d7576547909_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_12x16_d1b77f0000ff337a_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_20x16_798aee4dc7001432_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_108x122_911fa08f1554752c_5" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_64x64_96894941f5454ead_3" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_8x8_0017d44adaf2291b_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_10x8_7a6a869d5553c4a0_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_16x16_49c191eaf4314e9d_14" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_18x16_472b403cdcfc31a3_3" + }, + { + "type": "projection", + "value": "2d", + "texture_filename": "tex1_30x26_629956a45175e53a_14" + } + ] + }, + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n1_320x240_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Mario Kart Wii/RMC.txt b/Data/Sys/Load/GraphicMods/Mario Kart Wii/RMC.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Mario Kart Wii/metadata.json b/Data/Sys/Load/GraphicMods/Mario Kart Wii/metadata.json new file mode 100644 index 0000000000..914ca97da0 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Mario Kart Wii/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n49_152x114_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/DMH.txt b/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/DMH.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json b/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json new file mode 100644 index 0000000000..2401f8cf65 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json @@ -0,0 +1,27 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n3_80x56_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n2_160x112_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n6_320x224_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Nights Journey of Dreams/R7E.txt b/Data/Sys/Load/GraphicMods/Nights Journey of Dreams/R7E.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Nights Journey of Dreams/metadata.json b/Data/Sys/Load/GraphicMods/Nights Journey of Dreams/metadata.json new file mode 100644 index 0000000000..f234ad0dba --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Nights Journey of Dreams/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000019_128x128_4" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Okami/ROW.txt b/Data/Sys/Load/GraphicMods/Okami/ROW.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Okami/metadata.json b/Data/Sys/Load/GraphicMods/Okami/metadata.json new file mode 100644 index 0000000000..3c93e5f88f --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Okami/metadata.json @@ -0,0 +1,19 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n51_320x240_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Rune Factory Frontier/RUF.txt b/Data/Sys/Load/GraphicMods/Rune Factory Frontier/RUF.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json b/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json new file mode 100644 index 0000000000..4c2407a892 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json @@ -0,0 +1,103 @@ +{ + "meta": + { + "title": "Bloom and HUD Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "HUD", + "targets": [ + { + "type": "draw_started", + "pretty_name": "hp_rp", + "texture_filename": "tex1_200x64_29bf40765535b389_fb4403f0539ecfc6_9" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "hp_rp", + "texture_filename": "tex1_200x64_29bf40765535b389_fb4403f0539ecfc6_9" + }, + { + "type": "draw_started", + "pretty_name": "hp_gradient", + "texture_filename": "tex1_96x8_491977b196c249d8_1feafe410943bfac_8" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "hp_gradient", + "texture_filename": "tex1_96x8_491977b196c249d8_1feafe410943bfac_8" + }, + { + "type": "draw_started", + "pretty_name": "rp_gradient", + "texture_filename": "tex1_96x8_cdcb5c030686767c_2c5a8138bfca228c_8" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "rp_gradient", + "texture_filename": "tex1_96x8_cdcb5c030686767c_2c5a8138bfca228c_8" + }, + { + "type": "draw_started", + "pretty_name": "spring_season", + "texture_filename": "tex1_256x40_30d99f26895bc811_02e626cce31a83ae_9" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "spring_season", + "texture_filename": "tex1_256x40_30d99f26895bc811_02e626cce31a83ae_9" + }, + { + "type": "draw_started", + "pretty_name": "quick_pick_box", + "texture_filename": "tex1_128x128_b87c102764a80c67_0488ebdbd87cfc9d_9" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "quick_pick_box", + "texture_filename": "tex1_128x128_b87c102764a80c67_0488ebdbd87cfc9d_9" + }, + { + "type": "draw_started", + "pretty_name": "face", + "texture_filename": "tex1_48x48_92405f9277895cd2_914f5a4762aa04ae_9" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "face", + "texture_filename": "tex1_48x48_92405f9277895cd2_914f5a4762aa04ae_9" + }, + { + "type": "draw_started", + "pretty_name": "sunny_icon", + "texture_filename": "tex1_24x24_3791555ba7e8186f_e82e2316ceba262d_9" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "sunny_icon", + "texture_filename": "tex1_24x24_3791555ba7e8186f_e82e2316ceba262d_9" + }, + { + "type": "draw_started", + "pretty_name": "text", + "texture_filename": "tex1_256x256_83aa16840fa69ffb_0" + }, + { + "type": "projection", + "value": "2d", + "pretty_name": "text", + "texture_filename": "tex1_256x256_83aa16840fa69ffb_0" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/SB4.txt b/Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/SB4.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/metadata.json b/Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/metadata.json new file mode 100644 index 0000000000..5b641bfa49 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Super Mario Galaxy 2/metadata.json @@ -0,0 +1,27 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000031_80x57_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n000033_160x114_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n000038_320x228_4" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/R4Q.txt b/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/R4Q.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json b/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json new file mode 100644 index 0000000000..f67b9e6539 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json @@ -0,0 +1,31 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n001461_40x28_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n001460_80x56_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n001459_160x112_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n001458_320x224_1" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/The Conduit/RCJ.txt b/Data/Sys/Load/GraphicMods/The Conduit/RCJ.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/The Conduit/metadata.json b/Data/Sys/Load/GraphicMods/The Conduit/metadata.json new file mode 100644 index 0000000000..ad9307d041 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/The Conduit/metadata.json @@ -0,0 +1,31 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000022_40x28_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000021_80x56_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000020_160x112_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000025_320x224_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/RZD.txt b/Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/RZD.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/metadata.json b/Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/metadata.json new file mode 100644 index 0000000000..2ec7bce760 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/The Legend of Zelda Twilight Princess/metadata.json @@ -0,0 +1,23 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n55_80x57_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n54_160x114_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Xenoblade Chronicles/SX4.txt b/Data/Sys/Load/GraphicMods/Xenoblade Chronicles/SX4.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Xenoblade Chronicles/metadata.json b/Data/Sys/Load/GraphicMods/Xenoblade Chronicles/metadata.json new file mode 100644 index 0000000000..9dc56f815c --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Xenoblade Chronicles/metadata.json @@ -0,0 +1,31 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n15_20x16_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n9_40x30_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n7_80x58_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n1_320x228_4" + } + ] + } + ] +} \ No newline at end of file From 8aef0015fd8903b92cf0aab8a98ee669ec97b5ef Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 31 Mar 2022 00:44:32 -0500 Subject: [PATCH 301/659] DolphinQt: add warning if graphics mods are not enabled --- Source/Core/DolphinQt/CMakeLists.txt | 2 + .../Config/Graphics/AdvancedWidget.cpp | 7 +- .../Config/Graphics/AdvancedWidget.h | 2 +- .../Config/GraphicsModListWidget.cpp | 15 +++- .../DolphinQt/Config/GraphicsModListWidget.h | 6 ++ .../Config/GraphicsModWarningWidget.cpp | 70 +++++++++++++++++++ .../Config/GraphicsModWarningWidget.h | 28 ++++++++ .../DolphinQt/Config/PropertiesDialog.cpp | 3 + .../Core/DolphinQt/Config/PropertiesDialog.h | 1 + Source/Core/DolphinQt/DolphinQt.vcxproj | 2 + Source/Core/DolphinQt/GameList/GameList.cpp | 2 + Source/Core/DolphinQt/GameList/GameList.h | 1 + Source/Core/DolphinQt/MainWindow.cpp | 1 + Source/Core/DolphinQt/Settings.cpp | 17 +++++ Source/Core/DolphinQt/Settings.h | 3 + 15 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp create mode 100644 Source/Core/DolphinQt/Config/GraphicsModWarningWidget.h diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 8d33993fc1..0e08a4ed98 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -131,6 +131,8 @@ add_executable(dolphin-emu Config/Graphics/SoftwareRendererWidget.h Config/GraphicsModListWidget.cpp Config/GraphicsModListWidget.h + Config/GraphicsModWarningWidget.cpp + Config/GraphicsModWarningWidget.h Config/InfoWidget.cpp Config/InfoWidget.h Config/LogConfigWidget.cpp diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp index b9f81b4746..7a2570f97c 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp @@ -20,6 +20,7 @@ #include "DolphinQt/Config/Graphics/GraphicsInteger.h" #include "DolphinQt/Config/Graphics/GraphicsWindow.h" #include "DolphinQt/Config/ToolTipControls/ToolTipCheckBox.h" +#include "DolphinQt/QtUtils/SignalBlocking.h" #include "DolphinQt/Settings.h" #include "VideoCommon/VideoConfig.h" @@ -72,7 +73,7 @@ void AdvancedWidget::CreateWidgets() m_dump_xfb_target = new GraphicsBool(tr("Dump XFB Target"), Config::GFX_DUMP_XFB_TARGET); m_disable_vram_copies = new GraphicsBool(tr("Disable EFB VRAM Copies"), Config::GFX_HACK_DISABLE_COPY_TO_VRAM); - m_enable_graphics_mods = new GraphicsBool(tr("Enable Graphics Mods"), Config::GFX_MODS_ENABLE); + m_enable_graphics_mods = new ToolTipCheckBox(tr("Enable Graphics Mods")); utility_layout->addWidget(m_load_custom_textures, 0, 0); utility_layout->addWidget(m_prefetch_custom_textures, 0, 1); @@ -167,6 +168,7 @@ void AdvancedWidget::ConnectWidgets() connect(m_dump_use_ffv1, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); connect(m_enable_prog_scan, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); connect(m_dump_textures, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); + connect(m_enable_graphics_mods, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); } void AdvancedWidget::LoadSettings() @@ -177,6 +179,8 @@ void AdvancedWidget::LoadSettings() m_enable_prog_scan->setChecked(Config::Get(Config::SYSCONF_PROGRESSIVE_SCAN)); m_dump_mip_textures->setEnabled(Config::Get(Config::GFX_DUMP_TEXTURES)); m_dump_base_textures->setEnabled(Config::Get(Config::GFX_DUMP_TEXTURES)); + + SignalBlocking(m_enable_graphics_mods)->setChecked(Settings::Instance().GetGraphicModsEnabled()); } void AdvancedWidget::SaveSettings() @@ -187,6 +191,7 @@ void AdvancedWidget::SaveSettings() Config::SetBase(Config::SYSCONF_PROGRESSIVE_SCAN, m_enable_prog_scan->isChecked()); m_dump_mip_textures->setEnabled(Config::Get(Config::GFX_DUMP_TEXTURES)); m_dump_base_textures->setEnabled(Config::Get(Config::GFX_DUMP_TEXTURES)); + Settings::Instance().SetGraphicModsEnabled(m_enable_graphics_mods->isChecked()); } void AdvancedWidget::OnBackendChanged() diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h index 1c469cbc62..4530db5fcf 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h @@ -42,7 +42,7 @@ private: GraphicsBool* m_dump_xfb_target; GraphicsBool* m_disable_vram_copies; GraphicsBool* m_load_custom_textures; - GraphicsBool* m_enable_graphics_mods; + ToolTipCheckBox* m_enable_graphics_mods; // Texture dumping GraphicsBool* m_dump_textures; diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp index 8782bbc97d..712a18a558 100644 --- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp @@ -15,6 +15,7 @@ #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "DolphinQt/Config/GraphicsModWarningWidget.h" #include "DolphinQt/Settings.h" #include "UICommon/GameFile.h" #include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" @@ -45,7 +46,9 @@ GraphicsModListWidget::~GraphicsModListWidget() void GraphicsModListWidget::CreateWidgets() { - auto* main_layout = new QHBoxLayout(this); + auto* main_v_layout = new QVBoxLayout(this); + + auto* main_layout = new QHBoxLayout; auto* left_v_layout = new QVBoxLayout; @@ -71,15 +74,23 @@ void GraphicsModListWidget::CreateWidgets() m_mod_meta_layout = new QVBoxLayout; right_v_layout->addLayout(m_mod_meta_layout); + right_v_layout->addStretch(); main_layout->addLayout(left_v_layout); main_layout->addLayout(right_v_layout, 1); - setLayout(main_layout); + m_warning = new GraphicsModWarningWidget(this); + main_v_layout->addWidget(m_warning); + main_v_layout->addLayout(main_layout); + + setLayout(main_v_layout); } void GraphicsModListWidget::ConnectWidgets() { + connect(m_warning, &GraphicsModWarningWidget::GraphicsModEnableSettings, this, + &GraphicsModListWidget::OpenGraphicsSettings); + connect(m_mod_list, &QListWidget::itemSelectionChanged, this, &GraphicsModListWidget::ModSelectionChanged); diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.h b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h index b8b1f5969c..b2ea082f12 100644 --- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.h +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h @@ -11,6 +11,7 @@ #include "Common/CommonTypes.h" #include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" +class GraphicsModWarningWidget; class QHBoxLayout; class QLabel; class QListWidget; @@ -31,6 +32,7 @@ class GameFile; class GraphicsModListWidget : public QWidget { + Q_OBJECT public: explicit GraphicsModListWidget(const UICommon::GameFile& game); ~GraphicsModListWidget(); @@ -39,6 +41,9 @@ public: const GraphicsModGroupConfig& GetGraphicsModConfig() const; +signals: + void OpenGraphicsSettings(); + private: void CreateWidgets(); void ConnectWidgets(); @@ -63,6 +68,7 @@ private: QVBoxLayout* m_mod_meta_layout; QPushButton* m_refresh; + GraphicsModWarningWidget* m_warning; std::string m_game_id; GraphicsModGroupConfig m_mod_group; diff --git a/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp new file mode 100644 index 0000000000..281836073c --- /dev/null +++ b/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp @@ -0,0 +1,70 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "DolphinQt/Config/GraphicsModWarningWidget.h" + +#include +#include +#include +#include +#include + +#include "DolphinQt/Settings.h" + +GraphicsModWarningWidget::GraphicsModWarningWidget(QWidget* parent) : QWidget(parent) +{ + CreateWidgets(); + ConnectWidgets(); + + connect(&Settings::Instance(), &Settings::EnableGfxModsChanged, this, + &GraphicsModWarningWidget::Update); + Update(); +} + +void GraphicsModWarningWidget::CreateWidgets() +{ + auto* icon = new QLabel; + + const auto size = 1.5 * QFontMetrics(font()).height(); + + QPixmap warning_icon = style()->standardIcon(QStyle::SP_MessageBoxWarning).pixmap(size, size); + + icon->setPixmap(warning_icon); + + m_text = new QLabel(); + m_config_button = new QPushButton(tr("Configure Dolphin")); + + m_config_button->setHidden(true); + + auto* layout = new QHBoxLayout; + + layout->addWidget(icon); + layout->addWidget(m_text, 1); + layout->addWidget(m_config_button); + + layout->setContentsMargins(0, 0, 0, 0); + + setLayout(layout); +} + +void GraphicsModWarningWidget::Update() +{ + bool hide_widget = true; + bool hide_config_button = true; + + if (!Settings::Instance().GetGraphicModsEnabled()) + { + hide_widget = false; + hide_config_button = false; + m_text->setText(tr("Graphics mods are currently disabled.")); + } + + setHidden(hide_widget); + m_config_button->setHidden(hide_config_button); +} + +void GraphicsModWarningWidget::ConnectWidgets() +{ + connect(m_config_button, &QPushButton::clicked, this, + &GraphicsModWarningWidget::GraphicsModEnableSettings); +} diff --git a/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.h b/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.h new file mode 100644 index 0000000000..964ba0f862 --- /dev/null +++ b/Source/Core/DolphinQt/Config/GraphicsModWarningWidget.h @@ -0,0 +1,28 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +class QLabel; +class QPushButton; + +class GraphicsModWarningWidget final : public QWidget +{ + Q_OBJECT +public: + explicit GraphicsModWarningWidget(QWidget* parent); + +signals: + void GraphicsModEnableSettings(); + +private: + void CreateWidgets(); + void ConnectWidgets(); + + void Update(); + + QLabel* m_text; + QPushButton* m_config_button; +}; diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp index 5ecb9d87bf..b72e950862 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp @@ -52,6 +52,9 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga connect(ar, &ARCodeWidget::OpenGeneralSettings, this, &PropertiesDialog::OpenGeneralSettings); + connect(graphics_mod_list, &GraphicsModListWidget::OpenGraphicsSettings, this, + &PropertiesDialog::OpenGraphicsSettings); + const int padding_width = 120; const int padding_height = 100; tab_widget->addTab(GetWrappedWidget(game_config, this, padding_width, padding_height), diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.h b/Source/Core/DolphinQt/Config/PropertiesDialog.h index b31dbbb391..2135be8948 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.h +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.h @@ -18,4 +18,5 @@ public: signals: void OpenGeneralSettings(); + void OpenGraphicsSettings(); }; diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index 4808009b73..cde2161e7b 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -77,6 +77,7 @@ + @@ -272,6 +273,7 @@ + diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp index b2fdb46df2..abbe3b5ca8 100644 --- a/Source/Core/DolphinQt/GameList/GameList.cpp +++ b/Source/Core/DolphinQt/GameList/GameList.cpp @@ -540,6 +540,8 @@ void GameList::OpenProperties() properties->setAttribute(Qt::WA_DeleteOnClose, true); connect(properties, &PropertiesDialog::OpenGeneralSettings, this, &GameList::OpenGeneralSettings); + connect(properties, &PropertiesDialog::OpenGraphicsSettings, this, + &GameList::OpenGraphicsSettings); properties->show(); } diff --git a/Source/Core/DolphinQt/GameList/GameList.h b/Source/Core/DolphinQt/GameList/GameList.h index e65f2e06e5..ebe2ec7152 100644 --- a/Source/Core/DolphinQt/GameList/GameList.h +++ b/Source/Core/DolphinQt/GameList/GameList.h @@ -55,6 +55,7 @@ signals: void NetPlayHost(const UICommon::GameFile& game); void SelectionChanged(std::shared_ptr game_file); void OpenGeneralSettings(); + void OpenGraphicsSettings(); private: void ShowHeaderContextMenu(const QPoint& pos); diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index d2dea76787..dab8f45c24 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -672,6 +672,7 @@ void MainWindow::ConnectGameList() &MainWindow::ShowRiivolutionBootWidget); connect(m_game_list, &GameList::OpenGeneralSettings, this, &MainWindow::ShowGeneralWindow); + connect(m_game_list, &GameList::OpenGraphicsSettings, this, &MainWindow::ShowGraphicsWindow); } void MainWindow::ConnectRenderWidget() diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index e08e32c0ad..a6580acbaa 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -29,6 +29,7 @@ #include "Common/FileUtil.h" #include "Common/StringUtil.h" +#include "Core/Config/GraphicsSettings.h" #include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" #include "Core/Core.h" @@ -351,6 +352,22 @@ bool Settings::IsKeepWindowOnTopEnabled() const return Config::Get(Config::MAIN_KEEP_WINDOW_ON_TOP); } +bool Settings::GetGraphicModsEnabled() const +{ + return Config::Get(Config::GFX_MODS_ENABLE); +} + +void Settings::SetGraphicModsEnabled(bool enabled) +{ + if (GetGraphicModsEnabled() == enabled) + { + return; + } + + Config::SetBaseOrCurrent(Config::GFX_MODS_ENABLE, enabled); + emit EnableGfxModsChanged(enabled); +} + int Settings::GetVolume() const { return Config::Get(Config::MAIN_AUDIO_VOLUME); diff --git a/Source/Core/DolphinQt/Settings.h b/Source/Core/DolphinQt/Settings.h index 335cef9a76..30ab757753 100644 --- a/Source/Core/DolphinQt/Settings.h +++ b/Source/Core/DolphinQt/Settings.h @@ -108,6 +108,8 @@ public: bool GetLockCursor() const; void SetKeepWindowOnTop(bool top); bool IsKeepWindowOnTopEnabled() const; + bool GetGraphicModsEnabled() const; + void SetGraphicModsEnabled(bool enabled); // Audio int GetVolume() const; @@ -200,6 +202,7 @@ signals: void DevicesChanged(); void SDCardInsertionChanged(bool inserted); void USBKeyboardConnectionChanged(bool connected); + void EnableGfxModsChanged(bool enabled); private: Settings(); From 4788a05c76358b90782aa0d922f497ce9490184b Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 29 Jun 2022 20:04:59 -0500 Subject: [PATCH 302/659] VideoCommon: fix projection graphics mod affecting more than the intended draw call --- Source/Core/VideoCommon/VertexShaderManager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index 680d1ad3ee..555819e072 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -38,6 +38,7 @@ static bool bProjectionChanged; static bool bViewportChanged; static bool bTexMtxInfoChanged; static bool bLightingConfigChanged; +static bool bProjectionGraphicsModChange; static BitSet32 nMaterialsChanged; static std::array nTransformMatricesChanged; // min,max static std::array nNormalMatricesChanged; // min,max @@ -63,6 +64,7 @@ void VertexShaderManager::Init() bViewportChanged = false; bTexMtxInfoChanged = false; bLightingConfigChanged = false; + bProjectionGraphicsModChange = false; std::memset(static_cast(&xfmem), 0, sizeof(xfmem)); constants = {}; @@ -322,9 +324,10 @@ void VertexShaderManager::SetConstants(const std::vector& textures) } if (bProjectionChanged || g_freelook_camera.GetController()->IsDirty() || - !projection_actions.empty()) + !projection_actions.empty() || bProjectionGraphicsModChange) { bProjectionChanged = false; + bProjectionGraphicsModChange = !projection_actions.empty(); const auto& rawProjection = xfmem.projection.rawProjection; From 69e32dea5272e29ebdc2e056d45f570556c71633 Mon Sep 17 00:00:00 2001 From: Minty-Meeo <45425365+Minty-Meeo@users.noreply.github.com> Date: Sun, 1 May 2022 03:12:28 -0500 Subject: [PATCH 303/659] Resolve GCC Warnings --- Source/Core/Common/ChunkFile.h | 2 +- Source/Core/Common/Logging/ConsoleListener.h | 4 +++- Source/Core/Core/DSP/DSPDisassembler.cpp | 2 +- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 7 ++++--- Source/Core/Core/PowerPC/JitCommon/JitBase.h | 2 +- Source/Core/Core/State.cpp | 6 +++--- Source/Core/DolphinQt/WiiUpdate.cpp | 4 ++++ .../VideoBackends/Software/Rasterizer.cpp | 18 +++++++++--------- Source/Core/VideoCommon/BPFunctions.h | 5 ++++- Source/Core/VideoCommon/Statistics.cpp | 19 ++++++++++--------- 10 files changed, 40 insertions(+), 29 deletions(-) diff --git a/Source/Core/Common/ChunkFile.h b/Source/Core/Common/ChunkFile.h index 5a9cf1823e..788c3e10bc 100644 --- a/Source/Core/Common/ChunkFile.h +++ b/Source/Core/Common/ChunkFile.h @@ -105,7 +105,7 @@ public: case Mode::Read: for (x.clear(); count != 0; --count) { - V value; + V value = {}; Do(value); x.insert(value); } diff --git a/Source/Core/Common/Logging/ConsoleListener.h b/Source/Core/Common/Logging/ConsoleListener.h index 3901f29580..77924b3406 100644 --- a/Source/Core/Common/Logging/ConsoleListener.h +++ b/Source/Core/Common/Logging/ConsoleListener.h @@ -14,5 +14,7 @@ public: void Log(Common::Log::LogLevel level, const char* text) override; private: - [[maybe_unused]] bool m_use_color = false; +#if !defined _WIN32 && !defined ANDROID + bool m_use_color = false; +#endif }; diff --git a/Source/Core/Core/DSP/DSPDisassembler.cpp b/Source/Core/Core/DSP/DSPDisassembler.cpp index 6e833cdf16..28f153ddf5 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.cpp +++ b/Source/Core/Core/DSP/DSPDisassembler.cpp @@ -194,7 +194,7 @@ bool DSPDisassembler::DisassembleOpcode(const u16* binbuf, size_t binbuf_size, u // Size 2 - the op has a large immediate. if (opc->size == 2) { - if (wrapped_pc + 1 >= binbuf_size) + if (wrapped_pc + 1u >= binbuf_size) { if (settings_.show_hex) dest += fmt::format("{:04x} ???? ", op1); diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index 12941782a8..36ad1ed82c 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -89,12 +89,13 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) const int ret = m_context.GetDeviceList([this](libusb_device* device) { libusb_device_descriptor device_descriptor; libusb_get_device_descriptor(device, &device_descriptor); - auto [ret, config_descriptor] = LibusbUtils::MakeConfigDescriptor(device); - if (ret != LIBUSB_SUCCESS || !config_descriptor) + auto [make_config_descriptor_ret, config_descriptor] = + LibusbUtils::MakeConfigDescriptor(device); + if (make_config_descriptor_ret != LIBUSB_SUCCESS || !config_descriptor) { ERROR_LOG_FMT(IOS_WIIMOTE, "Failed to get config descriptor for device {:04x}:{:04x}: {}", device_descriptor.idVendor, device_descriptor.idProduct, - LibusbUtils::ErrorWrap(ret)); + LibusbUtils::ErrorWrap(make_config_descriptor_ret)); return true; } diff --git a/Source/Core/Core/PowerPC/JitCommon/JitBase.h b/Source/Core/Core/PowerPC/JitCommon/JitBase.h index 9cd47722e7..a4b895739c 100644 --- a/Source/Core/Core/PowerPC/JitCommon/JitBase.h +++ b/Source/Core/Core/PowerPC/JitCommon/JitBase.h @@ -93,7 +93,7 @@ protected: u8* trampolineExceptionHandler; bool mustCheckFifo; - int fifoBytesSinceCheck; + u32 fifoBytesSinceCheck; PPCAnalyst::BlockStats st; PPCAnalyst::BlockRegStats gpa; diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index e10fc44fed..f32a57cc18 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -419,7 +419,7 @@ void SaveAs(const std::string& filename, bool wait) // Then actually do the write. bool is_write_mode; { - std::lock_guard lk(g_cs_current_buffer); + std::lock_guard lk2(g_cs_current_buffer); g_current_buffer.resize(buffer_size); ptr = g_current_buffer.data(); PointerWrap p(&ptr, buffer_size, PointerWrap::Mode::Write); @@ -438,7 +438,7 @@ void SaveAs(const std::string& filename, bool wait) save_args.wait = wait; { - std::lock_guard lk(g_save_thread_mutex); + std::lock_guard lk3(g_save_thread_mutex); Flush(); g_save_thread = std::thread(CompressAndDumpState, save_args); } @@ -572,7 +572,7 @@ void LoadAs(const std::string& filename) // Save temp buffer for undo load state if (!Movie::IsJustStartingRecordingInputFromSaveState()) { - std::lock_guard lk(g_cs_undo_load_buffer); + std::lock_guard lk2(g_cs_undo_load_buffer); SaveToBuffer(g_undo_load_buffer); if (Movie::IsMovieActive()) Movie::SaveRecording(File::GetUserPath(D_STATESAVES_IDX) + "undo.dtm"); diff --git a/Source/Core/DolphinQt/WiiUpdate.cpp b/Source/Core/DolphinQt/WiiUpdate.cpp index 0cfc336c51..fc5d9ea8e9 100644 --- a/Source/Core/DolphinQt/WiiUpdate.cpp +++ b/Source/Core/DolphinQt/WiiUpdate.cpp @@ -10,6 +10,7 @@ #include #include +#include "Common/Assert.h" #include "Common/FileUtil.h" #include "Common/Flag.h" @@ -71,6 +72,9 @@ static void ShowResult(QWidget* parent, WiiUtils::UpdateResult result) QObject::tr("The game disc does not contain any usable " "update information.")); break; + default: + ASSERT(false); + break; } } diff --git a/Source/Core/VideoBackends/Software/Rasterizer.cpp b/Source/Core/VideoBackends/Software/Rasterizer.cpp index aaa5255fe3..4b3f02758d 100644 --- a/Source/Core/VideoBackends/Software/Rasterizer.cpp +++ b/Source/Core/VideoBackends/Software/Rasterizer.cpp @@ -28,14 +28,14 @@ static constexpr int BLOCK_SIZE = 2; struct SlopeContext { SlopeContext(const OutputVertexData* v0, const OutputVertexData* v1, const OutputVertexData* v2, - s32 x0, s32 y0, s32 x_off, s32 y_off) - : x0(x0), y0(y0) + s32 x0_, s32 y0_, s32 x_off, s32 y_off) + : x0(x0_), y0(y0_) { // adjust a little less than 0.5 const float adjust = 0.495f; - xOff = ((float)x0 - (v0->screenPosition.x - x_off)) + adjust; - yOff = ((float)y0 - (v0->screenPosition.y - y_off)) + adjust; + xOff = ((float)x0_ - (v0->screenPosition.x - x_off)) + adjust; + yOff = ((float)y0_ - (v0->screenPosition.y - y_off)) + adjust; dx10 = v1->screenPosition.x - v0->screenPosition.x; dx20 = v2->screenPosition.x - v0->screenPosition.x; @@ -55,10 +55,10 @@ struct SlopeContext struct Slope { Slope() = default; - Slope(float f0, float f1, float f2, const SlopeContext& ctx) : f0(f0) + Slope(float f0_, float f1, float f2, const SlopeContext& ctx) : f0(f0_) { - float delta_20 = f2 - f0; - float delta_10 = f1 - f0; + float delta_20 = f2 - f0_; + float delta_10 = f1 - f0_; // x2 - x0 y1 - y0 x1 - x0 y2 - y0 float a = delta_20 * ctx.dy10 - delta_10 * ctx.dy20; @@ -371,9 +371,9 @@ static void DrawTriangleFrontFace(const OutputVertexData* v0, const OutputVertex // scissor ASSERT(scissor.rect.left >= 0); - ASSERT(scissor.rect.right <= EFB_WIDTH); + ASSERT(scissor.rect.right <= static_cast(EFB_WIDTH)); ASSERT(scissor.rect.top >= 0); - ASSERT(scissor.rect.bottom <= EFB_HEIGHT); + ASSERT(scissor.rect.bottom <= static_cast(EFB_HEIGHT)); minx = std::max(minx, scissor.rect.left); maxx = std::min(maxx, scissor.rect.right); diff --git a/Source/Core/VideoCommon/BPFunctions.h b/Source/Core/VideoCommon/BPFunctions.h index 6bcc003fe1..f2fc66757c 100644 --- a/Source/Core/VideoCommon/BPFunctions.h +++ b/Source/Core/VideoCommon/BPFunctions.h @@ -19,7 +19,10 @@ namespace BPFunctions struct ScissorRange { constexpr ScissorRange() = default; - constexpr ScissorRange(int offset, int start, int end) : offset(offset), start(start), end(end) {} + constexpr ScissorRange(int offset_, int start_, int end_) + : offset(offset_), start(start_), end(end_) + { + } int offset = 0; int start = 0; int end = 0; diff --git a/Source/Core/VideoCommon/Statistics.cpp b/Source/Core/VideoCommon/Statistics.cpp index bd0bf0f54c..7b4a785c6f 100644 --- a/Source/Core/VideoCommon/Statistics.cpp +++ b/Source/Core/VideoCommon/Statistics.cpp @@ -336,12 +336,12 @@ void Statistics::DisplayScissor() // Visualization of where things are updated on screen with this specific scissor ImGui::TableNextColumn(); - float scale = ImGui::GetTextLineHeight() / EFB_HEIGHT; + float scale_height = ImGui::GetTextLineHeight() / EFB_HEIGHT; if (show_raw_scissors) - scale += ImGui::GetTextLineHeightWithSpacing() / EFB_HEIGHT; + scale_height += ImGui::GetTextLineHeightWithSpacing() / EFB_HEIGHT; ImVec2 p2 = ImGui::GetCursorScreenPos(); // Use a height of 1 since we want this to span two table rows (if possible) - ImGui::Dummy(ImVec2(EFB_WIDTH * scale, 1)); + ImGui::Dummy(ImVec2(EFB_WIDTH * scale_height, 1)); for (size_t i = 0; i < info.m_result.size(); i++) { // The last entry in the sorted list of results is the one that is used by hardware backends @@ -350,11 +350,12 @@ void Statistics::DisplayScissor() const ImU32 new_col = (col & ~IM_COL32_A_MASK) | (new_alpha << IM_COL32_A_SHIFT); const auto& r = info.m_result[i]; - draw_list->AddRectFilled(ImVec2(p2.x + r.rect.left * scale, p2.y + r.rect.top * scale), - ImVec2(p2.x + r.rect.right * scale, p2.y + r.rect.bottom * scale), - new_col); + draw_list->AddRectFilled( + ImVec2(p2.x + r.rect.left * scale_height, p2.y + r.rect.top * scale_height), + ImVec2(p2.x + r.rect.right * scale_height, p2.y + r.rect.bottom * scale_height), new_col); } - draw_list->AddRect(p2, ImVec2(p2.x + EFB_WIDTH * scale, p2.y + EFB_HEIGHT * scale), light_grey); + draw_list->AddRect( + p2, ImVec2(p2.x + EFB_WIDTH * scale_height, p2.y + EFB_HEIGHT * scale_height), light_grey); ImGui::SameLine(); ImGui::Text("%d", int(info.m_result.size())); @@ -428,7 +429,7 @@ void Statistics::DisplayScissor() draw_scissor_table_header(); for (size_t i = 0; i < scissors.size(); i++) draw_scissor_table_row(i); - for (size_t i = scissors.size(); i < scissor_expected_count; i++) + for (size_t i = scissors.size(); i < static_cast(scissor_expected_count); i++) scissor_table_skip_row(i); ImGui::EndTable(); } @@ -440,7 +441,7 @@ void Statistics::DisplayScissor() draw_viewport_table_header(); for (size_t i = 0; i < scissors.size(); i++) draw_viewport_table_row(i); - for (size_t i = scissors.size(); i < scissor_expected_count; i++) + for (size_t i = scissors.size(); i < static_cast(scissor_expected_count); i++) viewport_table_skip_row(i); ImGui::EndTable(); } From 469aac5e683fa3c17b66bae65dde6c61712ad261 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 1 Jul 2022 00:13:41 +0200 Subject: [PATCH 304/659] Translation resources sync with Transifex --- Languages/po/ar.po | 461 +++++++++++++++++++--------------- Languages/po/ca.po | 363 +++++++++++++++------------ Languages/po/cs.po | 363 +++++++++++++++------------ Languages/po/da.po | 363 +++++++++++++++------------ Languages/po/de.po | 363 +++++++++++++++------------ Languages/po/dolphin-emu.pot | 363 +++++++++++++++------------ Languages/po/el.po | 363 +++++++++++++++------------ Languages/po/en.po | 363 +++++++++++++++------------ Languages/po/es.po | 411 +++++++++++++++++------------- Languages/po/fa.po | 363 +++++++++++++++------------ Languages/po/fr.po | 363 +++++++++++++++------------ Languages/po/hr.po | 363 +++++++++++++++------------ Languages/po/hu.po | 363 +++++++++++++++------------ Languages/po/it.po | 411 +++++++++++++++++------------- Languages/po/ja.po | 363 +++++++++++++++------------ Languages/po/ko.po | 363 +++++++++++++++------------ Languages/po/ms.po | 363 +++++++++++++++------------ Languages/po/nb.po | 363 +++++++++++++++------------ Languages/po/nl.po | 413 ++++++++++++++++++------------- Languages/po/pl.po | 363 +++++++++++++++------------ Languages/po/pt.po | 363 +++++++++++++++------------ Languages/po/pt_BR.po | 467 ++++++++++++++++++++--------------- Languages/po/ro.po | 363 +++++++++++++++------------ Languages/po/ru.po | 363 +++++++++++++++------------ Languages/po/sr.po | 363 +++++++++++++++------------ Languages/po/sv.po | 375 ++++++++++++++++------------ Languages/po/tr.po | 363 +++++++++++++++------------ Languages/po/zh_CN.po | 363 +++++++++++++++------------ Languages/po/zh_TW.po | 363 +++++++++++++++------------ 29 files changed, 6231 insertions(+), 4656 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index 71baa518b9..8190ba36cf 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -87,7 +87,8 @@ msgstr "متغير المستخدم $" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -558,6 +559,10 @@ msgstr "&خصائص" msgid "&Read-Only Mode" msgstr "&وضع للقراءة فقط" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&تسجل" @@ -682,7 +687,7 @@ msgstr "- طرح" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -699,7 +704,7 @@ msgstr "128 Mbit (2043 blocks)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "16 Bytes" -msgstr "" +msgstr "16 Bytes" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:28 msgid "16 Mbit (251 blocks)" @@ -752,7 +757,7 @@ msgstr "32-bit" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:109 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:160 msgid "32-bit Float" -msgstr "" +msgstr "32-bit Float" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:105 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:154 @@ -787,7 +792,7 @@ msgstr "3x Native (1920x1584) for 1080p" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 msgid "4 Bytes" -msgstr "" +msgstr "4 Bytes" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:26 msgid "4 Mbit (59 blocks)" @@ -817,7 +822,7 @@ msgstr "64 Mbit (1019 blocks)" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:110 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:163 msgid "64-bit Float" -msgstr "" +msgstr "64-bit Float" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:107 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:157 @@ -839,7 +844,7 @@ msgstr "7x Native (4480x3696)" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 msgid "8 Bytes" -msgstr "" +msgstr "8 Bytes" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:27 msgid "8 Mbit (123 blocks)" @@ -892,8 +897,8 @@ msgstr "" msgid "> Greater-than" msgstr "> أكثر-من" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "جلسة لعب الشبكة جارية بالفعل!" @@ -922,7 +927,7 @@ msgstr "القرص بالفعل على وشك أن يتم إدراجه." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "لا يمكن تحميل حالة الحفظ دون تحديد لعبة لتشغيلها" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -971,7 +976,7 @@ msgstr "" msgid "AR Code" msgstr "AR رموز" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR رموز" @@ -1183,6 +1188,11 @@ msgstr "مساحة العنوان حسب حالة وحدة المعالجة ال msgid "Address:" msgstr "عنوان" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1232,10 +1242,15 @@ msgstr "منفذ جيم بوي ادفانس" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "خيارات متقدمة" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "أفريقيا" @@ -1247,12 +1262,12 @@ msgstr "محاذاة لطول نوع البيانات" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "كل مزدوج" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1267,29 +1282,29 @@ msgstr "(*) كل الملفات" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "كل تعويم" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "GC/Wii جميع ملفات" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "كل سداسي عشري" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "جميع حالات الحفظ (*.sav *.s##);; كل الملفات (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "جميع الأعداد الصحيحة الموقعة" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "جميع الأعداد الصحيحة غير الموقعة" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1297,7 +1312,7 @@ msgstr "جميع أدوات التحكم" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 msgid "All files (*)" -msgstr "" +msgstr "(*) جميع الملفات" #: Source/Core/Core/NetPlayServer.cpp:1170 msgid "All players' codes synchronized." @@ -1427,7 +1442,7 @@ msgstr "Arbitrary Mipmap Detection" msgid "Are you sure that you want to delete '%1'?" msgstr "هل أنت متأكد من أنك تريد حذفها '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "هل أنت متأكد من أنك تريد حذف هذا الملف؟" @@ -1541,7 +1556,7 @@ msgid "Auxiliary" msgstr "مساعدة" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1573,7 +1588,7 @@ msgstr "" msgid "Backend" msgstr "الخلفية" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "تعدد المسارات الخلفية" @@ -1621,7 +1636,7 @@ msgstr "تم توفير إزاحة غير صالحة" msgid "Bad value provided." msgstr "قيمة غير صالحة المقدمة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1674,21 +1689,21 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 msgid "Binary SSL" -msgstr "" +msgstr "Binary SSL" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 msgid "Binary SSL (read)" -msgstr "" +msgstr "Binary SSL (read)" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 msgid "Binary SSL (write)" -msgstr "" +msgstr "Binary SSL (write)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "(kbps) معدل البت" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1732,15 +1747,15 @@ msgstr "" msgid "Boot to Pause" msgstr "التمهيد لإيقاف مؤقت" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup file (*.bin);;All Files (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii keys file (*.bin);;All Files (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "ملء الشاشة بلا حدود" @@ -1846,6 +1861,10 @@ msgstr "زر" msgid "Buttons" msgstr "الأزرار" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1876,7 +1895,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Interpreter (أبطأ)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1933,8 +1952,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} لا يمكن العثور على ريموت وي من خلال مقبض الاتصال" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "لا يمكن بدء جلسة اللعب عبر الشبكة بينما لا تزال اللعبة قيد التشغيل! " @@ -1965,7 +1984,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "لا يمكن مقارنة القيمة الأخيرة في البحث الأول" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Cannot find the GC IPL." @@ -1977,7 +1996,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "لا يمكن التحديث بدون نتائج" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Cannot start the game, because the GC IPL could not be found." @@ -2063,7 +2082,7 @@ msgstr "التحقق من وجود تغييرات قائمة الألعاب في msgid "Check for updates" msgstr "تحقق من وجود تحديثات" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2085,7 +2104,7 @@ msgstr "اختيار ملف لفتح" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 msgid "Choose a file to open or create" -msgstr "" +msgstr "اختر ملفًا لفتحه أو إنشائه" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2159,7 +2178,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:52 msgid "Code did not get executed" -msgstr "" +msgstr "لم يتم تنفيذ التعليمات البرمجية" #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:53 msgid "Code has been executed" @@ -2194,7 +2213,7 @@ msgstr "تجميع التظليل قبل البدء" msgid "Compiling Shaders" msgstr "تجميع التظليل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2232,6 +2251,7 @@ msgid "Configure Controller" msgstr "إعدادات وحدة تحكم" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "إعدادات دولفين" @@ -2246,10 +2266,10 @@ msgstr "تكوين الإخراج" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "تأكيد " @@ -2500,7 +2520,7 @@ msgstr "Copy Hex" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "قيمة النسخ" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" @@ -2508,7 +2528,7 @@ msgstr "Copy code &line" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:545 msgid "Copy tar&get address" -msgstr "" +msgstr "نسخ العنوان المستهدف" #: Source/Core/DolphinQt/GCMemcardManager.cpp:243 msgid "Copy to A" @@ -2657,7 +2677,7 @@ msgstr "إنشاء بطاقة ذاكرة جديدة" msgid "Create..." msgstr "إنشاء..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2675,11 +2695,11 @@ msgstr "المنتج" msgid "Critical" msgstr "حرج" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "اقتصاص" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2826,7 +2846,7 @@ msgstr "البيانات المتلقية!" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "المنطقة الميتة" @@ -2839,7 +2859,7 @@ msgstr "التصحيح" msgid "Debug Only" msgstr "التصحيح فقط" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "التصحيح" @@ -2906,7 +2926,7 @@ msgstr "صورة القرص الافتراضية" msgid "Default thread" msgstr "الموضوع الافتراضي" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Defer EFB Cache Invalidation" @@ -2914,7 +2934,7 @@ msgstr "Defer EFB Cache Invalidation" msgid "Defer EFB Copies to RAM" msgstr "إلى ذاكرة الوصول العشوائي EFB تأجيل نسخ" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2957,7 +2977,7 @@ msgstr "العمق" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2969,6 +2989,10 @@ msgstr "الوصف" msgid "Description:" msgstr "الوصف" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "منفصل" @@ -3064,7 +3088,7 @@ msgstr "تعطيل المربع المحيط" msgid "Disable Copy Filter" msgstr "Disable Copy Filter" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Disable EFB VRAM Copies" @@ -3095,7 +3119,7 @@ msgid "" "unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3538,7 +3562,7 @@ msgstr "فعال" msgid "Effective priority" msgstr "الأولوية الفعالة" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "إكسابايت" @@ -3587,14 +3611,14 @@ msgstr "يجب البدء في المحاكاة للتسجيل." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "تمكين" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "تمكين طبقات التحقق من واجهة برمجة التطبيقات" @@ -3630,12 +3654,16 @@ msgstr "تمكين تجاوز المحاكي حجم الذاكرة" msgid "Enable FPRF" msgstr "FPRF تمكين" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "MMU تمكين" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "تمكين المسح التدريجي" @@ -3656,7 +3684,7 @@ msgstr "تمكين بيانات مكبر صوت" msgid "Enable Usage Statistics Reporting" msgstr "تمكين تقارير إحصائيات الاستخدام " -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "تمكين الإطار الشبكي" @@ -3701,7 +3729,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3709,7 +3737,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3736,7 +3764,7 @@ msgid "" msgstr "" "تمكن وحدة إدارة الذاكرة ، اللازمة لبعض الألعاب. (تمكين= متوافق, تعطيل= سريع)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3744,7 +3772,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3844,12 +3872,12 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4023,7 +4051,7 @@ msgstr "مستثني: 0" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:116 msgid "Exclusive Ubershaders" -msgstr "" +msgstr "Exclusive Ubershaders" #: Source/Core/Core/HotkeyManager.cpp:36 msgid "Exit" @@ -4065,7 +4093,7 @@ msgstr "بداية التعبير المتوقعة" msgid "Expected variable name." msgstr "اسم المتغير المتوقع" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "تجريبي" @@ -4241,7 +4269,7 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "فشل حذف بطاقة الذاكرة في لعب عبر الشبكة تحقق من أذونات الكتابة الخاصة بك." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "فشل حذف الملف المحدد." @@ -4266,7 +4294,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "فشل تصدير ملفات الحفظ التالية:" @@ -4320,7 +4348,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "فشل في التهيئة الأساسية" @@ -4340,12 +4368,12 @@ msgstr "فشل في تهيئة فئات العارض" msgid "Failed to install pack: %1" msgstr "%1 :فشل تثبيت الحزمة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "NAND فشل تثبيت هذا العنوان على" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4381,7 +4409,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' فشل في الفتح" @@ -4414,7 +4442,7 @@ msgstr "" msgid "Failed to open file." msgstr "فشل فتح ملف" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "فشل في فتح الخادم" @@ -4475,7 +4503,7 @@ msgstr "" "\n" "هل تريد تحويلها دون إزالة البيانات غير المرغوب فيها؟" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "NAND فشل في إزالة هذا العنوان من" @@ -4556,9 +4584,9 @@ msgstr "" "فشل كتابة ملف الإخراج \"{0}\".\n" "تأكد من أن لديك مساحة كافية متوفرة على محرك الأقراص الهدف." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "فشل" @@ -4599,7 +4627,7 @@ msgstr "مجال الرؤية" msgid "File Details" msgstr "تفاصيل الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4613,19 +4641,19 @@ msgstr "تنسيق الملف" msgid "File Info" msgstr "معلومات الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "اسم الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "مسار الملف" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "حجم الملف" @@ -4660,7 +4688,7 @@ msgstr "لا يتوافق حجم الملف مع أي حجم معروف لبطا msgid "Filesize in header mismatches actual card size." msgstr "حجم الملف في عدم تطابق حجم البطاقة الفعلي." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "نظام الملفات" @@ -4714,7 +4742,7 @@ msgstr "فشل إصلاح المجموع الاختباري" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 msgid "Fixed Alignment" -msgstr "" +msgstr "محاذاة ثابتة" #. i18n: These are the kinds of flags that a CPU uses (e.g. carry), #. not the kinds of flags that represent e.g. countries @@ -4837,7 +4865,7 @@ msgstr "زيادة سرعة الإطار المسبق" msgid "Frame Advance Reset Speed" msgstr " إعادة تعيين سرعة الإطار المسبق" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "تفريغ الإطار" @@ -4845,7 +4873,7 @@ msgstr "تفريغ الإطار" msgid "Frame Range" msgstr "مجموعة الإطار " -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -5097,7 +5125,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "%1 جيم بوي أدفانس في منفذ" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "إعدادات اللعبة" @@ -5109,7 +5137,7 @@ msgstr "تفاصيل اللعبة" msgid "Game Folders" msgstr "مجلدات الألعاب" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "معرف اللعبة" @@ -5135,11 +5163,11 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "تحتوي اللعبة على رقم قرص مختلف" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "اللعبة لديها مراجعة مختلفة" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5152,7 +5180,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "منطقة اللعبة غير متطابقة" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5211,8 +5239,12 @@ msgstr "فتحة ميكروفون جيم كيوب %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS Input %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko رموز" @@ -5262,7 +5294,7 @@ msgstr "ألمانيا" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "غيغابايت" @@ -5280,11 +5312,19 @@ msgstr "تفريغ جيد" msgid "Graphics" msgstr "الرسومات" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "تبديل الرسومات" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5340,23 +5380,23 @@ msgstr "مساعدة" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 msgid "Hex" -msgstr "" +msgstr "Hex" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 msgid "Hex 16" -msgstr "" +msgstr "Hex 16" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 32" -msgstr "" +msgstr "Hex 32" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 msgid "Hex 8" -msgstr "" +msgstr "Hex 8" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 msgid "Hex Byte String" -msgstr "" +msgstr "Hex Byte String" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:144 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:155 @@ -5469,7 +5509,7 @@ msgstr "تتطلب مفاتيح الاختصار التركيز على النا #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:117 msgid "Hybrid Ubershaders" -msgstr "" +msgstr "Hybrid Ubershaders" #. i18n: The symbol/abbreviation for hertz (cycles per second). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:153 @@ -5646,7 +5686,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "XFB على الفور" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5674,11 +5714,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "استيراد حفظ وي" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr " NAND استيراد النسخ الاحتياطي" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5746,13 +5786,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "معلومات" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5776,9 +5816,9 @@ msgid "Input strength required for activation." msgstr "قوة الإدخال المطلوبة للتفعيل." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." -msgstr "" +msgstr "قوة الإدخال للتجاهل وإعادة تعيينها" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:561 msgid "Insert &nop" @@ -6100,7 +6140,7 @@ msgstr "لوحة المفاتيح" msgid "Keys" msgstr "مفاتيح" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "كيلوبايت" @@ -6258,7 +6298,7 @@ msgstr "Load &Bad Map File..." msgid "Load &Other Map File..." msgstr "Load &Other Map File..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "تحميل النسيج المخصص" @@ -6405,13 +6445,19 @@ msgstr "تحميل" msgid "Loaded symbols from '%1'" msgstr "الرموز المحملة من '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "محلي" @@ -6483,7 +6529,7 @@ msgstr "MMU" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:285 msgid "MORIBUND" -msgstr "" +msgstr "MORIBUND" #: Source/Core/DolphinQt/GCMemcardManager.cpp:400 msgid "MadCatz Gameshark files" @@ -6493,7 +6539,7 @@ msgstr "ملفات MadCatz Gameshark" msgid "Main Stick" msgstr "العصا الرئيسية" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6516,7 +6562,7 @@ msgstr "" msgid "Manage NAND" msgstr "NAND إدارة" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "أخذ عينات النسيج يدويا" @@ -6526,7 +6572,7 @@ msgstr "تعيين" #: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Mask ROM" -msgstr "" +msgstr "Mask ROM" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 msgid "Match Found" @@ -6590,7 +6636,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6602,7 +6648,7 @@ msgstr "" "so it is recommended that you keep backups of both NANDs. Are you sure you " "want to continue?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "ميغابايت" @@ -6612,7 +6658,7 @@ msgstr "ميغابايت" msgid "Microphone" msgstr "ميكروفون" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "متنوعة" @@ -6646,7 +6692,7 @@ msgstr "" msgid "Modifier" msgstr "معدل" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6754,11 +6800,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "الاسم" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "الاسم لعلامة جديدة:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "اسم العلامة المراد إزالتها:" @@ -6850,7 +6896,7 @@ msgstr "تم إنشاء هوية جديدة ." msgid "New instruction:" msgstr "تعليمات جديدة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "علامة جديدة" @@ -6888,7 +6934,7 @@ msgstr "لم يتم اكتشاف محول" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "No Alignment" -msgstr "" +msgstr "لا محاذاة" #: Source/Core/Core/Config/MainSettings.h:16 msgid "No Audio Output" @@ -6939,7 +6985,7 @@ msgstr "لم يتم اكتشاف أية مشكلات." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "لم يتم العثور على لعبة مطابقة" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -6971,7 +7017,7 @@ msgstr "'{0}' لم يتم العثور على ملفات تعريف لإعداد msgid "No recording loaded." msgstr "لم يتم تحميل التسجيل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "لم يتم العثور على حفظ البيانات" @@ -7017,7 +7063,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "لم يتم العثور عليها" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7248,11 +7294,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "PNG مستوى ضغط" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG مستوى ضغط" @@ -7318,7 +7364,7 @@ msgstr "محرر التصحيح" msgid "Patch name" msgstr "تصحيح الاسم" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "تصحيحات" @@ -7380,7 +7426,7 @@ msgstr "فيزيائي" msgid "Physical address space" msgstr "مساحة العنوان الفعلي" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "بيتابايت" @@ -7400,7 +7446,7 @@ msgstr "Pitch Down" msgid "Pitch Up" msgstr "Pitch Up" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "المنصة" @@ -7471,7 +7517,7 @@ msgstr "بعد معالجة التأثير" msgid "Post-Processing Shader Configuration" msgstr "التكوين بعد تظليل" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "جلب النسيج المخصص المسبق " @@ -7624,7 +7670,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "مشكلة" @@ -7802,7 +7848,7 @@ msgstr "تحديث القيم الحالية" msgid "Refreshing..." msgstr "تحديث..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7849,7 +7895,7 @@ msgstr "إزالة البيانات غير المرغوب فيها (لا رجع msgid "Remove Tag..." msgstr "إزالة العلامة" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "إزالة العلامة" @@ -7880,7 +7926,7 @@ msgstr "تقديم إلى الإطار الرئيسي" msgid "Rendering" msgstr "تقديم" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7903,6 +7949,7 @@ msgstr "طلب الانضمام إلى المجموعة" msgid "Reset" msgstr "إعادة تعيين" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "إعادة تعيين الكل" @@ -8130,8 +8177,8 @@ msgstr "حفظ" msgid "Save All" msgstr "حفظ الكل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "حفظ التصدير" @@ -8169,7 +8216,7 @@ msgstr "حفظ الحالة القديمة" msgid "Save Preset" msgstr "حفظ الإعداد المسبق" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "حفظ ملف التسجيل باسم" @@ -8386,7 +8433,7 @@ msgstr "حدد" msgid "Select Dump Path" msgstr "تحديد مسار التفريغ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "حدد تصدير الدليل" @@ -8487,9 +8534,9 @@ msgstr "اختر دليل" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "حدد ملف" @@ -8503,7 +8550,7 @@ msgstr "SD Card حدد صورة" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 msgid "Select a file" -msgstr "" +msgstr "حدد ملف" #: Source/Core/DolphinQt/NetPlay/GameListDialog.cpp:18 msgid "Select a game" @@ -8521,7 +8568,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "RSO حدد عنوان وحدة" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "حدد ملف التسجيل للتشغيل" @@ -8529,11 +8576,11 @@ msgstr "حدد ملف التسجيل للتشغيل" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "(OTP/SEEPROM dump) حدد ملف المفاتيح" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "حدد حفظ الملف" @@ -8665,7 +8712,7 @@ msgstr "تعيين الكمبيوتر" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Set Value From File" -msgstr "" +msgstr "تعيين القيمة من الملف" #: Source/Core/DolphinQt/GameList/GameList.cpp:411 msgid "Set as &Default ISO" @@ -8728,7 +8775,7 @@ msgstr "" msgid "Settings" msgstr "إعدادات" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Can't create setting.txt file" @@ -8883,7 +8930,7 @@ msgstr "روسيا" msgid "Show Spain" msgstr "اسبانيا" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "عرض الإحصاءات" @@ -8922,12 +8969,12 @@ msgstr "تظهر في الذاكرة" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "عرض في التعليمات البرمجية" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "عرض في الذاكرة" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -8935,7 +8982,7 @@ msgstr "إظهار في الرموز" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "عرض في الذاكرة" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -8970,7 +9017,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9164,7 +9211,7 @@ msgstr "(Default) متخصص" msgid "Specific" msgstr "محدد" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9401,8 +9448,8 @@ msgstr "مرقم" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9427,7 +9474,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "تم تصدير ملفات الحفظ بنجاح" @@ -9447,12 +9494,12 @@ msgstr "استخرجت بنجاح بيانات النظام." msgid "Successfully imported save file." msgstr "تم استيراد ملف الحفظ بنجاح" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "تم بنجاح تثبيت هذا العنوان على NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "تمت إزالة هذا العنوان بنجاح من NAND." @@ -9592,7 +9639,7 @@ msgid "TAS Tools" msgstr "TAS أدوات" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9629,11 +9676,11 @@ msgstr "النسيج من ذاكره التخزين المؤقت" msgid "Texture Cache Accuracy" msgstr "دقة ذاكرة التخزين المؤقت للنسيج" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "طلاء تنسيق النسيج" @@ -10054,8 +10101,14 @@ msgstr "" "This action replay simulator does not support codes that modify Action " "Replay itself." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "هذا لا يمكن التراجع عنه" @@ -10188,7 +10241,7 @@ msgstr "تم تعيين هذا العنوان لاستخدام نظام تشغي msgid "This title is set to use an invalid common key." msgstr "تم تعيين هذا العنوان لاستخدام مفتاح عام غير صالح" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10196,7 +10249,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10246,7 +10299,7 @@ msgstr "المواضيع" msgid "Threshold" msgstr "بداية" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "تيرابايت" @@ -10261,7 +10314,7 @@ msgstr "إمالة" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "الفترة الزمنية للإدخال المستقر لتشغيل المعايرة. (صفر لتعطيل)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10514,7 +10567,7 @@ msgstr "RSO تعذر الكشف التلقائي عن وحدة" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 msgid "Unable to open file." -msgstr "" +msgstr "غير قادر على فتح الملف" #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:150 msgid "" @@ -10542,7 +10595,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 msgid "Unable to read file." -msgstr "" +msgstr "غير قادر على قراءة الملف" #: Source/Core/DiscIO/NANDImporter.cpp:268 msgid "Unable to write to file {0}" @@ -10572,7 +10625,7 @@ msgstr "إلغاء التثبيت" msgid "Uninstall from the NAND" msgstr "NAND إلغاء التثبيت من" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10771,7 +10824,7 @@ msgstr "استخدم قاعدة بيانات مدمجة لأسماء الألع msgid "Use Custom User Style" msgstr "استخدم نمط المستخدم المخصص" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Use Lossless Codec (FFV1)" @@ -10783,7 +10836,7 @@ msgstr "(EuRGB60) PAL60 استخدام وضع " msgid "Use Panic Handlers" msgstr "Use Panic Handlers" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10908,7 +10961,7 @@ msgstr "تستخدم لمصفوفات الموضع" msgid "Usually used for tex coord matrices" msgstr "tex تستخدم لمصفوفات تنسيق" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "خدمات" @@ -10933,7 +10986,7 @@ msgstr "السرعة" msgid "Verbosity" msgstr "عرض الرسائل كنص" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "التحقق" @@ -11197,7 +11250,7 @@ msgstr "Western (Windows-1252)" msgid "Whammy" msgstr "الضربة" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11205,7 +11258,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " @@ -11356,19 +11409,19 @@ msgstr "الكتابة إلى النافذة" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "رقم قرص خاطئ" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "تجزئة خاطئة" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "منطقة خاطئة" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "مراجعة خاطئة" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 743a9db456..f1fd12da3d 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -74,7 +74,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -539,6 +540,10 @@ msgstr "&Propietats" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registres" @@ -663,7 +668,7 @@ msgstr "" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -871,8 +876,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Més gran que" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Ja hi ha una sessió NetPlay en curs!" @@ -894,7 +899,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -929,7 +934,7 @@ msgstr "" msgid "AR Code" msgstr "Codi AR" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Codis AR" @@ -1141,6 +1146,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1177,10 +1187,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avançat" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Àfrica" @@ -1197,7 +1212,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1214,7 +1229,7 @@ msgstr "Tots els fitxers (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1223,8 +1238,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1372,7 +1387,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1482,7 +1497,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1514,7 +1529,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1562,7 +1577,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1625,11 +1640,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1671,15 +1686,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1785,6 +1800,10 @@ msgstr "Botó" msgid "Buttons" msgstr "Botons" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1815,7 +1834,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1872,8 +1891,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1902,7 +1921,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1914,7 +1933,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -2000,7 +2019,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2129,7 +2148,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2167,6 +2186,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2181,10 +2201,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2560,7 +2580,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2578,11 +2598,11 @@ msgstr "" msgid "Critical" msgstr "Crític" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Retallar" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2720,7 +2740,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zona morta" @@ -2733,7 +2753,7 @@ msgstr "" msgid "Debug Only" msgstr "Només depuració" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Depuració" @@ -2800,7 +2820,7 @@ msgstr "ISO per defecte:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2808,7 +2828,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2851,7 +2871,7 @@ msgstr "Profunditat:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2863,6 +2883,10 @@ msgstr "Descripció" msgid "Description:" msgstr "Descripció:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2952,7 +2976,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2983,7 +3007,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3418,7 +3442,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3464,14 +3488,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3507,12 +3531,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Habilitar MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Habilitar Exploració &Progressiva" @@ -3533,7 +3561,7 @@ msgstr "Activar Altaveu de Dades" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Habilitar Wireframe" @@ -3574,7 +3602,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3582,7 +3610,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3610,7 +3638,7 @@ msgstr "" "Activa la Unitat de Gestió de memòria, necessari per a alguns jocs. (Activat " "= compatible, Desactivat = ràpid)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3618,7 +3646,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3714,12 +3742,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3933,7 +3961,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4106,7 +4134,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4131,7 +4159,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4180,7 +4208,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4200,12 +4228,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4239,7 +4267,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4270,7 +4298,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4328,7 +4356,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4405,9 +4433,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4448,7 +4476,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4462,19 +4490,19 @@ msgstr "" msgid "File Info" msgstr "informació del fitxer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nom de l'arxiu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Mida del fitxer" @@ -4509,7 +4537,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistema d'arxius" @@ -4683,7 +4711,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4691,7 +4719,7 @@ msgstr "" msgid "Frame Range" msgstr "Rang de Fotogrames" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4939,7 +4967,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4951,7 +4979,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID del joc" @@ -5053,8 +5081,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Codis Gecko" @@ -5104,7 +5136,7 @@ msgstr "Alemanya" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5122,11 +5154,19 @@ msgstr "" msgid "Graphics" msgstr "Gràfics" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5459,7 +5499,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5487,11 +5527,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5557,13 +5597,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5587,7 +5627,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5912,7 +5952,7 @@ msgstr "Teclat" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6064,7 +6104,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Carrega textures personalitzades" @@ -6211,13 +6251,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6299,7 +6345,7 @@ msgstr "" msgid "Main Stick" msgstr "Palanca principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6322,7 +6368,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6396,7 +6442,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6404,7 +6450,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6414,7 +6460,7 @@ msgstr "" msgid "Microphone" msgstr "Micròfon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Miscel·làni" @@ -6446,7 +6492,7 @@ msgstr "" msgid "Modifier" msgstr "Modificador" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6554,11 +6600,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6650,7 +6696,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6768,7 +6814,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7041,11 +7087,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7111,7 +7157,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Pedaços" @@ -7173,7 +7219,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7193,7 +7239,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7264,7 +7310,7 @@ msgstr "Efecte de post-processament:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7407,7 +7453,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pregunta" @@ -7585,7 +7631,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7632,7 +7678,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7660,7 +7706,7 @@ msgstr "Renderitzar a la finestra principal" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7683,6 +7729,7 @@ msgstr "" msgid "Reset" msgstr "Reiniciar" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7910,8 +7957,8 @@ msgstr "Desar" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7949,7 +7996,7 @@ msgstr "Desar l'Estat Més Antic" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8163,7 +8210,7 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8264,9 +8311,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8298,7 +8345,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8306,11 +8353,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccioni el fitxer de partida guardada" @@ -8500,7 +8547,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8653,7 +8700,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Mostrar Estadístiques" @@ -8740,7 +8787,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8928,7 +8975,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9165,8 +9212,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9191,7 +9238,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9211,12 +9258,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9354,7 +9401,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9391,11 +9438,11 @@ msgstr "Cache de textures" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Superposició del format de textura" @@ -9781,8 +9828,14 @@ msgstr "" "Aquest simulador d'Action Replay no és compatible amb els codis que " "modifiquen el mateix Action Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9892,7 +9945,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9900,7 +9953,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9945,7 +9998,7 @@ msgstr "" msgid "Threshold" msgstr "Llindar" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9960,7 +10013,7 @@ msgstr "Inclinació" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10261,7 +10314,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10455,7 +10508,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10467,7 +10520,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "Utilitzar Gestors de Pànic" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10588,7 +10641,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilitat" @@ -10613,7 +10666,7 @@ msgstr "" msgid "Verbosity" msgstr "Verbositat" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10865,7 +10918,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10873,7 +10926,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 8257aedf8b..89a3bdd4fa 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -69,7 +69,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -532,6 +533,10 @@ msgstr "&Vlastnosti" msgid "&Read-Only Mode" msgstr "&Režim pouze pro čtení" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registry" @@ -656,7 +661,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -864,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -887,7 +892,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -922,7 +927,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Kódy AR" @@ -1134,6 +1139,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1170,10 +1180,15 @@ msgstr "Port Advance Game" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Pokročilé" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1190,7 +1205,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1207,7 +1222,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1216,8 +1231,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1365,7 +1380,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1475,7 +1490,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1507,7 +1522,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1555,7 +1570,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1618,11 +1633,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1664,15 +1679,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Celá obrazovka bez okrajů" @@ -1778,6 +1793,10 @@ msgstr "" msgid "Buttons" msgstr "Tlačítka" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1808,7 +1827,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "Převaděč s mezipamětí (pomalejší)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1865,8 +1884,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1895,7 +1914,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1907,7 +1926,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1993,7 +2012,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,7 +2141,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2160,6 +2179,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2174,10 +2194,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2553,7 +2573,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2571,11 +2591,11 @@ msgstr "" msgid "Critical" msgstr "Kritické" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Oříznout" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2713,7 +2733,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Mrtvá Zóna" @@ -2726,7 +2746,7 @@ msgstr "" msgid "Debug Only" msgstr "Pouze ladění" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Ladění" @@ -2793,7 +2813,7 @@ msgstr "Výchozí ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2801,7 +2821,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2844,7 +2864,7 @@ msgstr "Hloubka:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2856,6 +2876,10 @@ msgstr "Popis" msgid "Description:" msgstr "Popis:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2945,7 +2969,7 @@ msgstr "Zakázat ohraničující rámeček" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2976,7 +3000,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3411,7 +3435,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3457,14 +3481,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3500,12 +3524,16 @@ msgstr "" msgid "Enable FPRF" msgstr "Povolit FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Zapnout MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Povolit Progresivní Skenování" @@ -3526,7 +3554,7 @@ msgstr "Povolit data reproduktorů" msgid "Enable Usage Statistics Reporting" msgstr "Povolit hlášení statistik o užívání" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Povolit Drátěný Model" @@ -3571,7 +3599,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3579,7 +3607,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3607,7 +3635,7 @@ msgstr "" "Povolí Jednotku Správy Paměti, potřebnou v nějakých hrách. (ZAPNUTO = " "Kompatibilní, VYPNUTO = Rychlé)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3615,7 +3643,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3711,12 +3739,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3929,7 +3957,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4102,7 +4130,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4127,7 +4155,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4176,7 +4204,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4196,12 +4224,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4235,7 +4263,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4266,7 +4294,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4324,7 +4352,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4401,9 +4429,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4444,7 +4472,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4458,19 +4486,19 @@ msgstr "" msgid "File Info" msgstr "Informace o souboru" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Název souboru" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Velikost souboru" @@ -4505,7 +4533,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Souborový systém" @@ -4679,7 +4707,7 @@ msgstr "Zvýšit rychlost postupu snímkem" msgid "Frame Advance Reset Speed" msgstr "Resetovat rychlost postupu snímkem" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4687,7 +4715,7 @@ msgstr "" msgid "Frame Range" msgstr "Rozsah Snímku" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4935,7 +4963,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4947,7 +4975,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID hry" @@ -5049,8 +5077,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Kódy Gecko" @@ -5100,7 +5132,7 @@ msgstr "Německo" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5118,11 +5150,19 @@ msgstr "" msgid "Graphics" msgstr "Grafika" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5455,7 +5495,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5483,11 +5523,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5553,13 +5593,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5583,7 +5623,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5907,7 +5947,7 @@ msgstr "Klávesnice" msgid "Keys" msgstr "Klávesy" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6059,7 +6099,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Nahrát Vlastní Textury" @@ -6206,13 +6246,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6294,7 +6340,7 @@ msgstr "" msgid "Main Stick" msgstr "Hlavní páčka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6317,7 +6363,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6391,7 +6437,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6399,7 +6445,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6409,7 +6455,7 @@ msgstr "" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Ostatní" @@ -6441,7 +6487,7 @@ msgstr "" msgid "Modifier" msgstr "Modifikátor" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6549,11 +6595,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6647,7 +6693,7 @@ msgstr "Nová identita vytvořena." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6765,7 +6811,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7039,11 +7085,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7109,7 +7155,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Záplaty" @@ -7171,7 +7217,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7191,7 +7237,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platforma" @@ -7262,7 +7308,7 @@ msgstr "Efekt Následného Zpracování:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Předzískat vlastní textury" @@ -7405,7 +7451,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Otázka" @@ -7583,7 +7629,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7630,7 +7676,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7658,7 +7704,7 @@ msgstr "Vykreslit do Hlavního okna" msgid "Rendering" msgstr "Vykreslování" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7681,6 +7727,7 @@ msgstr "" msgid "Reset" msgstr "Resetovat" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7908,8 +7955,8 @@ msgstr "Uložit" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7947,7 +7994,7 @@ msgstr "Načíst nejstarší stav" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8161,7 +8208,7 @@ msgstr "Vybrat" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8262,9 +8309,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8296,7 +8343,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8304,11 +8351,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vyberte soubor s uloženou hrou" @@ -8500,7 +8547,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "Nastavení paměti Wii: Nelze vytvořit soubor settings.txt" @@ -8653,7 +8700,7 @@ msgstr "Zobrazit Rusko" msgid "Show Spain" msgstr "Zobrazit Španělsko" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Zobrazit Statistiky" @@ -8740,7 +8787,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8928,7 +8975,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9165,8 +9212,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9191,7 +9238,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9211,12 +9258,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9354,7 +9401,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9391,11 +9438,11 @@ msgstr "Vyrovnávací Paměť Textur" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Překryv Formátu Textury" @@ -9781,8 +9828,14 @@ msgstr "" "Tento simulátor action replay nepodporuje kód, který mění samotný Action " "Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9892,7 +9945,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9900,7 +9953,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9946,7 +9999,7 @@ msgstr "" msgid "Threshold" msgstr "Práh" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9961,7 +10014,7 @@ msgstr "Naklánění" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10262,7 +10315,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10456,7 +10509,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10468,7 +10521,7 @@ msgstr "Použít režim PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Použít Obslužné Rutiny Paniky" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10589,7 +10642,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Pomůcky" @@ -10614,7 +10667,7 @@ msgstr "" msgid "Verbosity" msgstr "Úroveň" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10866,7 +10919,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10874,7 +10927,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/da.po b/Languages/po/da.po index 1376df9d92..0c7c7f041c 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -91,7 +91,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -557,6 +558,10 @@ msgstr "&Indstillinger" msgid "&Read-Only Mode" msgstr "&Read-Only Tilstand" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registre" @@ -681,7 +686,7 @@ msgstr "" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -889,8 +894,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -912,7 +917,7 @@ msgstr "En disk er allerede ved at blive sat ind" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -961,7 +966,7 @@ msgstr "" msgid "AR Code" msgstr "AR-kode" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR-koder" @@ -1173,6 +1178,11 @@ msgstr "" msgid "Address:" msgstr "Adresse:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1209,10 +1219,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avanceret" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1229,7 +1244,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1246,7 +1261,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1255,8 +1270,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle gemte tilstande (*.sav *.s##);; All Files (*)" @@ -1404,7 +1419,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Er du sikker på, at du vil slette '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Er du sikker på, at du vil slette denne fil?" @@ -1514,7 +1529,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1546,7 +1561,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1594,7 +1609,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1657,11 +1672,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1705,15 +1720,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup-fil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Kantløs Fuldskærm" @@ -1819,6 +1834,10 @@ msgstr "Knap" msgid "Buttons" msgstr "Knapper" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1849,7 +1868,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Oversætter (langsommere)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1906,8 +1925,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1936,7 +1955,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1948,7 +1967,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -2034,7 +2053,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2163,7 +2182,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "Kompilerer shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2201,6 +2220,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Konfigurer Dolphin" @@ -2215,10 +2235,10 @@ msgstr "Konfigurer output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekræft" @@ -2598,7 +2618,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2616,11 +2636,11 @@ msgstr "Skaber:" msgid "Critical" msgstr "Kritisk" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Beskær" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2761,7 +2781,7 @@ msgstr "Data modtaget!" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Dødszone" @@ -2774,7 +2794,7 @@ msgstr "" msgid "Debug Only" msgstr "Debug Kun" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debugging" @@ -2841,7 +2861,7 @@ msgstr "Standard ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2849,7 +2869,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2892,7 +2912,7 @@ msgstr "Dybde:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2904,6 +2924,10 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2993,7 +3017,7 @@ msgstr "Deaktivér Afgrænsningsramme" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Deaktiver EFB VRAM kopier" @@ -3024,7 +3048,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3459,7 +3483,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3505,14 +3529,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Aktivér API Valideringslag" @@ -3548,12 +3572,16 @@ msgstr "" msgid "Enable FPRF" msgstr "Aktivér PFRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Aktivér MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Aktivér Progressiv Skanning" @@ -3574,7 +3602,7 @@ msgstr "Aktivér højttalerdata" msgid "Enable Usage Statistics Reporting" msgstr "Aktivér rapportering af brugsstatistik" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Aktivér Wireframe" @@ -3621,7 +3649,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3629,7 +3657,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3658,7 +3686,7 @@ msgstr "" "Aktiverer Memory Management Unit nødvendigt i nogle spil. (TIL = Kompatibel, " "FRA = Hurtig)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3666,7 +3694,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3762,12 +3790,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3981,7 +4009,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Eksperimentel" @@ -4154,7 +4182,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4179,7 +4207,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4228,7 +4256,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4248,12 +4276,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4287,7 +4315,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4318,7 +4346,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4376,7 +4404,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4453,9 +4481,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4496,7 +4524,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4510,19 +4538,19 @@ msgstr "" msgid "File Info" msgstr "Filinfo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnavn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstørrelse" @@ -4557,7 +4585,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Filsystem" @@ -4731,7 +4759,7 @@ msgstr "Billedfremskydning Forøg Hastighed" msgid "Frame Advance Reset Speed" msgstr "Billedfremskydning Nulstil Hastighed" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4739,7 +4767,7 @@ msgstr "" msgid "Frame Range" msgstr "Billedvidde" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4987,7 +5015,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Spilkonfiguration" @@ -4999,7 +5027,7 @@ msgstr "" msgid "Game Folders" msgstr "Spilmapper" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spil-id" @@ -5101,8 +5129,12 @@ msgstr "GameCube mikrofonstik %1" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko-koder" @@ -5152,7 +5184,7 @@ msgstr "Tyskland" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5170,11 +5202,19 @@ msgstr "" msgid "Graphics" msgstr "Grafik" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafikindstillinger" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5515,7 +5555,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5543,11 +5583,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importerer NAND-backup" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5613,13 +5653,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5643,7 +5683,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5967,7 +6007,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Taster" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6119,7 +6159,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Indlæs tilpassede teksturer" @@ -6266,13 +6306,19 @@ msgstr "Indlæs..." msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Lokal" @@ -6354,7 +6400,7 @@ msgstr "" msgid "Main Stick" msgstr "Primært stik" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6377,7 +6423,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6451,7 +6497,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6459,7 +6505,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6469,7 +6515,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Diverse" @@ -6503,7 +6549,7 @@ msgstr "" msgid "Modifier" msgstr "Modifier" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6611,11 +6657,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Navn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6707,7 +6753,7 @@ msgstr "Ny identitet genereret." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6825,7 +6871,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7100,11 +7146,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7170,7 +7216,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7232,7 +7278,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7252,7 +7298,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7323,7 +7369,7 @@ msgstr "Postprocessing-effekt" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Indlæs først tilpassede teksturer" @@ -7466,7 +7512,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Spørgsmål" @@ -7644,7 +7690,7 @@ msgstr "" msgid "Refreshing..." msgstr "Genindlæser..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7691,7 +7737,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7719,7 +7765,7 @@ msgstr "Render til hovedvindue" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7742,6 +7788,7 @@ msgstr "" msgid "Reset" msgstr "Nulstil" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7969,8 +8016,8 @@ msgstr "Gem" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8008,7 +8055,7 @@ msgstr "Gem ældste tilstand" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8222,7 +8269,7 @@ msgstr "Vælg" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8323,9 +8370,9 @@ msgstr "Vælg en mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Vælg en fil" @@ -8357,7 +8404,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8365,11 +8412,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vælg savefilen" @@ -8562,7 +8609,7 @@ msgstr "" msgid "Settings" msgstr "Indstillinger" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan ikke oprette settings.txt-filen" @@ -8715,7 +8762,7 @@ msgstr "Vis Rusland" msgid "Show Spain" msgstr "Vis Spanien" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Vis statistikker" @@ -8802,7 +8849,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8990,7 +9037,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9227,8 +9274,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9253,7 +9300,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9273,12 +9320,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9416,7 +9463,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9453,11 +9500,11 @@ msgstr "Tekstur-cache" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Teksturformatteringslag" @@ -9843,8 +9890,14 @@ msgstr "" "Action Replay-simulatoren understøtter ikke koder, der modificerer selve " "Action Replay'en." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Kan ikke gøres om!" @@ -9958,7 +10011,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9966,7 +10019,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10011,7 +10064,7 @@ msgstr "" msgid "Threshold" msgstr "Tærskel" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10026,7 +10079,7 @@ msgstr "Tilt" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10336,7 +10389,7 @@ msgstr "Afinstaller" msgid "Uninstall from the NAND" msgstr "Afinstaller fra NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10530,7 +10583,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "Anvend tilpasset brugerlayout" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10542,7 +10595,7 @@ msgstr "Brug PAL60-tilstand (EURGB60)" msgid "Use Panic Handlers" msgstr "Brug panikhåndtering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10663,7 +10716,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Værktøj" @@ -10688,7 +10741,7 @@ msgstr "" msgid "Verbosity" msgstr "Informationsmængde" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verificer" @@ -10942,7 +10995,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10950,7 +11003,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/de.po b/Languages/po/de.po index 9e04836c6c..34100e428b 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -110,7 +110,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -581,6 +582,10 @@ msgstr "&Eigenschaften" msgid "&Read-Only Mode" msgstr "Nu&r-Lese-Modus" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Register" @@ -707,7 +712,7 @@ msgstr "- Subtrahieren" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -918,8 +923,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Größer als" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Eine NetPlay-Sitzung läuft bereits!" @@ -949,7 +954,7 @@ msgstr "" "Ein Spielstand kann nicht geladen werden, wenn kein zu startendes Spiel " "angegeben wurde." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1002,7 +1007,7 @@ msgstr "" msgid "AR Code" msgstr "AR-Code" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR Codes" @@ -1230,6 +1235,11 @@ msgstr "" msgid "Address:" msgstr "Adresse:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1287,10 +1297,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Erweitert" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1307,7 +1322,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1324,7 +1339,7 @@ msgstr "Alle Dateien (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1333,8 +1348,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Speicherstände (*.sav *.s##);; Alle Dateien (*)" @@ -1487,7 +1502,7 @@ msgstr "Willkürliche Mipmaps erkennen" msgid "Are you sure that you want to delete '%1'?" msgstr "Möchtest du '%1' wirklich löschen? " -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Möchtest du diese Datei wirklich löschen? " @@ -1603,7 +1618,7 @@ msgid "Auxiliary" msgstr "Hilfs" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1638,7 +1653,7 @@ msgstr "Rückwärtskette" msgid "Backend" msgstr "Backend" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Backend Multithreading" @@ -1686,7 +1701,7 @@ msgstr "" msgid "Bad value provided." msgstr "Unzulässigen Wert angegeben." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1751,11 +1766,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitrate (kbit/s):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1799,15 +1814,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausieren nach Boot" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-Sicherungsdatei (*.bin);;Alle Dateien (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii Schlüsseldatei (*.bin);;Alle Dateien (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Randloses Vollbild" @@ -1916,6 +1931,10 @@ msgstr "Taste" msgid "Buttons" msgstr "Tasten" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1946,7 +1965,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Interpreter (langsamer)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -2011,8 +2030,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kann Wiimote bei Verbindungs-Handle {0:02x} nicht finden" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Du kannst keine NetPlay-Session starten, während ein Spiel noch läuft!" @@ -2044,7 +2063,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Kann die GC IPL nicht finden." @@ -2056,7 +2075,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" "Kann das Spiel nicht starten, da die GC IPL nicht gefunden werden konnte." @@ -2154,7 +2173,7 @@ msgstr "Veränderungen der Spieleliste im Hintergrund prüfen" msgid "Check for updates" msgstr "Auf Updates prüfen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2285,7 +2304,7 @@ msgstr "Shader vor dem Start kompilieren" msgid "Compiling Shaders" msgstr "Kompiliere Shader" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2323,6 +2342,7 @@ msgid "Configure Controller" msgstr "Controller konfigurieren" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Dolphin konfigurieren" @@ -2337,10 +2357,10 @@ msgstr "Ausgabe konfigurieren" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bestätigen" @@ -2772,7 +2792,7 @@ msgstr "Neue Speicherkarte erstellen" msgid "Create..." msgstr "Erstellen..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2790,11 +2810,11 @@ msgstr "Ersteller:" msgid "Critical" msgstr "Kritisch" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Zuschneiden" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2939,7 +2959,7 @@ msgstr "Daten empfangen!" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Tote Zone" @@ -2952,7 +2972,7 @@ msgstr "Debug" msgid "Debug Only" msgstr "Nur Fehlersuche" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debug" @@ -3019,7 +3039,7 @@ msgstr "Standard-ISO:" msgid "Default thread" msgstr "Standard-Thread" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "EFB-Cache-Invalidierung zurückstellen" @@ -3027,7 +3047,7 @@ msgstr "EFB-Cache-Invalidierung zurückstellen" msgid "Defer EFB Copies to RAM" msgstr "EFB-Kopien auf RAM verschieben" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3076,7 +3096,7 @@ msgstr "Tiefe:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3088,6 +3108,10 @@ msgstr "Beschreibung" msgid "Description:" msgstr "Beschreibung:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Gelöst" @@ -3183,7 +3207,7 @@ msgstr "Bounding Box deaktivieren" msgid "Disable Copy Filter" msgstr "Kopierfilter deaktivieren" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "EFB VRAM-Kopien deaktivieren" @@ -3218,7 +3242,7 @@ msgstr "" "funktionieren.

Im Zweifel aktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Im Zweifel " "deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3689,7 +3713,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "Effektive Priorität" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3738,14 +3762,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktivieren" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "API-Validierungsschichten aktivieren" @@ -3781,12 +3805,16 @@ msgstr "Überschreiben der emulierten Speichergröße aktivieren" msgid "Enable FPRF" msgstr "FPRF aktivieren" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "MMU aktivieren" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Progressiven Scan aktivieren" @@ -3807,7 +3835,7 @@ msgstr "Lautsprecherdaten aktivieren" msgid "Enable Usage Statistics Reporting" msgstr "Berichterstattung für Nutzungsdaten aktivieren" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Drahtgittermodell aktivieren" @@ -3866,7 +3894,7 @@ msgstr "" "der GPU-Texturdecodierung kompatibel.

Im Zweifel " "aktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3874,7 +3902,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3911,7 +3939,7 @@ msgstr "" "Aktiviert die Speicher-Verwaltungseinheit, die für einige Spiele gebraucht " "wird. (EIN = Kompatibel, AUS = Schnell)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3919,7 +3947,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4017,12 +4045,12 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4245,7 +4273,7 @@ msgstr "Erwarteter Beginn des Ausdrucks." msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Experimentell" @@ -4422,7 +4450,7 @@ msgstr "" "Konnte NetPlay-Speicherkarte nicht löschen. Überprüfe deine " "Schreibberechtigungen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Konnte die ausgewählte Datei nicht löschen." @@ -4447,7 +4475,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Konnte folgende Spielstände nicht exportieren:" @@ -4507,7 +4535,7 @@ msgstr "" "dein NAND zu reparieren (Extras -> NAND verwalten -> NAND prüfen...) und " "versuche anschließend, den Spielstand erneut zu importieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Konnte Kern nicht initiieren" @@ -4527,12 +4555,12 @@ msgstr "Renderer-Klassen konnten nicht initialisiert werden" msgid "Failed to install pack: %1" msgstr "Konnte Paket: %1 nicht installieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Konnte diesen Titel nicht in den NAND installieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4570,7 +4598,7 @@ msgstr "" "Updatepaket KB4019990 zu installieren." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Konnte '&1' nicht öffnen" @@ -4605,7 +4633,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Konnte Server nicht öffnen" @@ -4669,7 +4697,7 @@ msgstr "" "\n" "Möchtest du sie konvertieren, ohne Junk-Daten zu entfernen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Dieser Titel konnte nicht aus dem NAND entfernt werden." @@ -4752,9 +4780,9 @@ msgstr "" "Schreiben in Ausgabedatei \"{0}\" fehlgeschlagen.\n" "Überprüfe ob ausreichend Speicherplatz auf dem Ziellaufwerk vorhanden ist." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Fehler" @@ -4797,7 +4825,7 @@ msgstr "Sichtfeld" msgid "File Details" msgstr "Dateidetails" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4811,19 +4839,19 @@ msgstr "Dateiformat:" msgid "File Info" msgstr "Datei-Informationen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Dateiname" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Dateipfad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dateigröße" @@ -4862,7 +4890,7 @@ msgid "Filesize in header mismatches actual card size." msgstr "" "Dateigröße im Header stimmt nicht mit der tatsächlichen Kartengröße überein." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Dateisystem" @@ -5055,7 +5083,7 @@ msgstr "Verringere Einzelbildwiedergabegeschwindigkeit" msgid "Frame Advance Reset Speed" msgstr "Einzelbildwiedergabegeschwindigkeit zurücksetzen" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Frame-Dump" @@ -5063,7 +5091,7 @@ msgstr "Frame-Dump" msgid "Frame Range" msgstr "Bildbereich" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "Frame-Dump Bild(er) '{0}' existiert bereits. Überschreiben?" @@ -5332,7 +5360,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Spieleinstellungen" @@ -5344,7 +5372,7 @@ msgstr "Spieldetails" msgid "Game Folders" msgstr "Spiele-Ordner" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spielkennung" @@ -5448,8 +5476,12 @@ msgstr "GameCube Mikrofonslot %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS-Eingabe %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko-Codes" @@ -5499,7 +5531,7 @@ msgstr "Deutschland" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5517,11 +5549,19 @@ msgstr "Guter Dump" msgid "Graphics" msgstr "Grafik" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafik schaltet um" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5908,7 +5948,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Sofort dargestellter XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5942,11 +5982,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii-Spielstand importieren..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "NAND-Sicherung wird importiert" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6019,13 +6059,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6049,7 +6089,7 @@ msgid "Input strength required for activation." msgstr "Eingabefestigkeit, die zur Aktivierung benötigt wird." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -6378,7 +6418,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Tasten" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6536,7 +6576,7 @@ msgstr "&Ungültige Kartendatei laden..." msgid "Load &Other Map File..." msgstr "&Andere Kartendatei laden..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Lade benutzerdefinierte Texturen" @@ -6683,7 +6723,7 @@ msgstr "Laden..." msgid "Loaded symbols from '%1'" msgstr "Geladene Symbole von '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6693,6 +6733,12 @@ msgstr "" "User/Load/DynamicInputTextures/<game_id>/.

Im " "Zweifel deaktiviert lassen." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Lokal" @@ -6774,7 +6820,7 @@ msgstr "" msgid "Main Stick" msgstr "Main Stick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6801,7 +6847,7 @@ msgstr "" msgid "Manage NAND" msgstr "NAND verwalten" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6877,7 +6923,7 @@ msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Schreibvorgang mit ungültiger Zieladresse aufgerufen ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6889,7 +6935,7 @@ msgstr "" "Vorgang ist nicht umkehrbar, daher wird empfohlen, dass du Sicherungen " "beider NANDs behälst. Bist du sicher, dass du fortfahren möchtest?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6899,7 +6945,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Sonstiges" @@ -6933,7 +6979,7 @@ msgstr "" msgid "Modifier" msgstr "Modifikator" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7044,11 +7090,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Name" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Name für ein neues Tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Name des Tag, das entfernt werden soll:" @@ -7141,7 +7187,7 @@ msgstr "Neue identität erzeugt." msgid "New instruction:" msgstr "Neue Anweisung:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Neues Tag" @@ -7263,7 +7309,7 @@ msgstr "Keine Profile für Spieleinstellung '{0}' gefunden" msgid "No recording loaded." msgstr "Keine Aufnahme geladen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Keine gespeicherten Daten gefunden." @@ -7542,11 +7588,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7612,7 +7658,7 @@ msgstr "Patch-Editor" msgid "Patch name" msgstr "Patch-Name" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7674,7 +7720,7 @@ msgstr "Physikalisch" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7694,7 +7740,7 @@ msgstr "Nicken abwärts" msgid "Pitch Up" msgstr "Nicken aufwärts" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7767,7 +7813,7 @@ msgstr "Nachbearbeitungseffekt:" msgid "Post-Processing Shader Configuration" msgstr "Shader-Konfiguration nach der Verarbeitung" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Benutzerdefinierte Texturen vorladen" @@ -7923,7 +7969,7 @@ msgstr "Qualität des DPLII-Decoders. Audiolatenz steigt mit Qualität." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Frage" @@ -8107,7 +8153,7 @@ msgstr "" msgid "Refreshing..." msgstr "Aktualisiere..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8154,7 +8200,7 @@ msgstr "Junk-Daten entfernen (unwiederruflich):" msgid "Remove Tag..." msgstr "Tag entfernen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Tag entfernen" @@ -8185,7 +8231,7 @@ msgstr "Im Hauptfenster rendern" msgid "Rendering" msgstr "Rendervorgang" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8210,6 +8256,7 @@ msgstr "Anfrage deiner Gruppe beizutreten" msgid "Reset" msgstr "Zurücksetzen" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -8437,8 +8484,8 @@ msgstr "Speichern" msgid "Save All" msgstr "Alle speichern" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Export speichern" @@ -8476,7 +8523,7 @@ msgstr "Ältesten Spielstand überschreiben" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8696,7 +8743,7 @@ msgstr "Auswählen" msgid "Select Dump Path" msgstr "Dump-Pfad auswählen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Export-Verzeichnis auswählen" @@ -8797,9 +8844,9 @@ msgstr "Verzeichnis auswählen" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Datei auswählen" @@ -8831,7 +8878,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Wählen Sie die RSO-Moduladresse aus:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8839,11 +8886,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Wähle die Schlüsseldateien (OTP/SEEPROM Dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wii-Spielstand auswählen" @@ -9062,7 +9109,7 @@ msgstr "" msgid "Settings" msgstr "Einstellungen" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: setting.txt kann nicht erstellt werden" @@ -9217,7 +9264,7 @@ msgstr "Russland anzeigen" msgid "Show Spain" msgstr "Spanien anzeigen" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Statistiken anzeigen" @@ -9314,7 +9361,7 @@ msgstr "" "Zeigt beim Spielen mit NetPlay den maximalen Ping eines Spielers an." "

Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9515,7 +9562,7 @@ msgstr "" msgid "Specific" msgstr "Spezifisch" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9762,8 +9809,8 @@ msgstr "Eingabestift" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9788,7 +9835,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Spielstände wurden erfolgreich exportiert" @@ -9808,12 +9855,12 @@ msgstr "Systemdaten erfolgreich extrahiert." msgid "Successfully imported save file." msgstr "Spielstand wurde erfolgreich importiert." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Der Titel wurde erfolgreich in den NAND installiert." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Der Titel wurde erfolgreich aus dem NAND gelöscht." @@ -9956,7 +10003,7 @@ msgid "TAS Tools" msgstr "TAS-Werkzeuge" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9993,11 +10040,11 @@ msgstr "Texturen-Cache" msgid "Texture Cache Accuracy" msgstr "Texturen-Cache-Genauigkeit" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Texturdump" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Texturenformat-Überlagerung" @@ -10445,8 +10492,14 @@ msgstr "" "Dieser Action-Replay-Simulator unterstützt keine Codes, die Action Replay " "selbst verändern können." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Dies kann nicht ruckgängig gemacht werden!" @@ -10587,7 +10640,7 @@ msgstr "Dieser Titel wird ein ungültiges IOS verwenden." msgid "This title is set to use an invalid common key." msgstr "Dieser Titel wird einen ungültigen gemeinsamen Schlüssel verwenden." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10599,7 +10652,7 @@ msgstr "" "\n" "DSPHLE: Unbekannter ucode (CRC = {0:08x}) - erzwinge AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10657,7 +10710,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Schwelle" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10674,7 +10727,7 @@ msgstr "" "Zeitraum der stabilen Eingabe zum Auslösen der Kalibrierung. (Null zum " "Deaktivieren)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10993,7 +11046,7 @@ msgstr "Deinstallieren" msgid "Uninstall from the NAND" msgstr "Aus NAND deinstallieren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11198,7 +11251,7 @@ msgstr "Eingebaute Datenbank von Spielnamen verwenden" msgid "Use Custom User Style" msgstr "Benutzerdefiniertes Design verwenden" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Benutze verlustfreien Codec (FFV1)" @@ -11210,7 +11263,7 @@ msgstr "PAL60-Modus (EuRGB60) verwenden" msgid "Use Panic Handlers" msgstr "Warnmeldungen anzeigen" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11343,7 +11396,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Hilfsmittel" @@ -11368,7 +11421,7 @@ msgstr "Geschwindigkeit" msgid "Verbosity" msgstr "Ausführlichkeit" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Prüfen" @@ -11686,7 +11739,7 @@ msgstr "Westeuropäisch (Windows-1252)" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11698,7 +11751,7 @@ msgstr "" "\"Willkürliche Mipmaps erkennen\" in \"Verbesserungen\" aktiviert ist." "

Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index a9a2cf7a95..d9335adaa2 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -529,6 +530,10 @@ msgstr "" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "" @@ -653,7 +658,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -861,8 +866,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -884,7 +889,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -919,7 +924,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "" @@ -1131,6 +1136,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1167,10 +1177,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1187,7 +1202,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1204,7 +1219,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1213,8 +1228,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1362,7 +1377,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1472,7 +1487,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1504,7 +1519,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1552,7 +1567,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1615,11 +1630,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1661,15 +1676,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1775,6 +1790,10 @@ msgstr "" msgid "Buttons" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1805,7 +1824,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1862,8 +1881,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1892,7 +1911,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1904,7 +1923,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1990,7 +2009,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2119,7 +2138,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2157,6 +2176,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2171,10 +2191,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2550,7 +2570,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2568,11 +2588,11 @@ msgstr "" msgid "Critical" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2710,7 +2730,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "" @@ -2723,7 +2743,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "" @@ -2790,7 +2810,7 @@ msgstr "" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2798,7 +2818,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2841,7 +2861,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2853,6 +2873,10 @@ msgstr "" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2942,7 +2966,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2973,7 +2997,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3408,7 +3432,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3454,14 +3478,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3497,12 +3521,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "" @@ -3523,7 +3551,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "" @@ -3564,7 +3592,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3572,7 +3600,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3598,7 +3626,7 @@ msgid "" "OFF = Fast)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3606,7 +3634,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3702,12 +3730,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3919,7 +3947,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4092,7 +4120,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4117,7 +4145,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4166,7 +4194,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4186,12 +4214,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4225,7 +4253,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4256,7 +4284,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4314,7 +4342,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4391,9 +4419,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4434,7 +4462,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4448,19 +4476,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4495,7 +4523,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "" @@ -4669,7 +4697,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4677,7 +4705,7 @@ msgstr "" msgid "Frame Range" msgstr "" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4925,7 +4953,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4937,7 +4965,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5039,8 +5067,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "" @@ -5090,7 +5122,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5108,11 +5140,19 @@ msgstr "" msgid "Graphics" msgstr "" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5445,7 +5485,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5473,11 +5513,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5543,13 +5583,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5573,7 +5613,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5897,7 +5937,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6046,7 +6086,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "" @@ -6193,13 +6233,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6281,7 +6327,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6304,7 +6350,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6378,7 +6424,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6386,7 +6432,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6396,7 +6442,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "" @@ -6428,7 +6474,7 @@ msgstr "" msgid "Modifier" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6536,11 +6582,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6632,7 +6678,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6750,7 +6796,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7023,11 +7069,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7093,7 +7139,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "" @@ -7155,7 +7201,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7175,7 +7221,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7246,7 +7292,7 @@ msgstr "" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7389,7 +7435,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "" @@ -7567,7 +7613,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7614,7 +7660,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7642,7 +7688,7 @@ msgstr "" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7665,6 +7711,7 @@ msgstr "" msgid "Reset" msgstr "" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7892,8 +7939,8 @@ msgstr "" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7931,7 +7978,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8145,7 +8192,7 @@ msgstr "" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8246,9 +8293,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8280,7 +8327,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8288,11 +8335,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8482,7 +8529,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8635,7 +8682,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "" @@ -8722,7 +8769,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8910,7 +8957,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9147,8 +9194,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9173,7 +9220,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9193,12 +9240,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9336,7 +9383,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9373,11 +9420,11 @@ msgstr "" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "" @@ -9759,8 +9806,14 @@ msgid "" "Replay itself." msgstr "" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9870,7 +9923,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9878,7 +9931,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9923,7 +9976,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9938,7 +9991,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10239,7 +10292,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10433,7 +10486,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10445,7 +10498,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10566,7 +10619,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "" @@ -10591,7 +10644,7 @@ msgstr "" msgid "Verbosity" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10843,7 +10896,7 @@ msgstr "" msgid "Whammy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10851,7 +10904,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/el.po b/Languages/po/el.po index 69ecd22c86..a7c56cfaf8 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -72,7 +72,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -535,6 +536,10 @@ msgstr "&Ιδιότητες" msgid "&Read-Only Mode" msgstr "&Μόνο Για Ανάγνωση" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Καταχωρητές" @@ -659,7 +664,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -870,8 +875,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Περισσότερο-από" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -893,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -928,7 +933,7 @@ msgstr "" msgid "AR Code" msgstr "Κωδικός AR" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Κωδικοί AR" @@ -1140,6 +1145,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1176,10 +1186,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Για προχωρημένους" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Αφρική" @@ -1196,7 +1211,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1228,7 @@ msgstr "Όλα τα Αρχεία (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Όλα τα GC/Wii αρχεία" @@ -1222,8 +1237,8 @@ msgstr "Όλα τα GC/Wii αρχεία" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1371,7 +1386,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε το '%1';" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο;" @@ -1481,7 +1496,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1513,7 +1528,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1561,7 +1576,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1624,11 +1639,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1670,15 +1685,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Πλήρης Οθόνη Χωρίς Περιθώρια " @@ -1784,6 +1799,10 @@ msgstr "Κουμπί" msgid "Buttons" msgstr "Κουμπιά" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1814,7 +1833,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Interpreter (πιο αργή)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1871,8 +1890,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1901,7 +1920,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Δεν μπορεί να βρεθεί το GC IPL." @@ -1913,7 +1932,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Δεν μπορεί να ξεκινήσει το παιχνίδι, γιατί το GC IPL δεν βρέθηκε." @@ -1999,7 +2018,7 @@ msgstr "Έλεγχος Αλλαγών στην Λίστα Παιχνιδιών msgid "Check for updates" msgstr "Έλεγχος για ενημερώσεις" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2128,7 +2147,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2166,6 +2185,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Ρύθμιση Dolphin" @@ -2180,10 +2200,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Επιβεβαίωση" @@ -2561,7 +2581,7 @@ msgstr "Δημιουργία Νέας Κάρτας Μνήμης" msgid "Create..." msgstr "Δημιουργία..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2579,11 +2599,11 @@ msgstr "Δημιουργός:" msgid "Critical" msgstr "Κρίσιμο" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Κόψιμο" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2721,7 +2741,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Νεκρή Ζώνη" @@ -2734,7 +2754,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debugging" @@ -2801,7 +2821,7 @@ msgstr "Προεπιλεγμένο ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2809,7 +2829,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2852,7 +2872,7 @@ msgstr "Βάθος:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2864,6 +2884,10 @@ msgstr "Περιγραφή" msgid "Description:" msgstr "Περιγραφή:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2954,7 +2978,7 @@ msgstr "Απενεργοποίηση Bounding Box" msgid "Disable Copy Filter" msgstr "Απενεργοποίηση Φίλτρου Αντιγραφής " -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Απενεργοποίηση EFB VRAM Αντίγραφα" @@ -2985,7 +3009,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3425,7 +3449,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3471,14 +3495,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Ενεργοποίηση" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3514,12 +3538,16 @@ msgstr "Ενεργοποίηση Παράκαμψης Εξομοιωμένου msgid "Enable FPRF" msgstr "Ενεργοποίηση FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Ενεργοποίηση MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Ενεργοποίηση Προοδευτικής Σάρωσης" @@ -3540,7 +3568,7 @@ msgstr "Ενεργοποίηση Δεδομένων Ηχείου" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Ενεργοποίηση Wireframe" @@ -3586,7 +3614,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3594,7 +3622,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3622,7 +3650,7 @@ msgstr "" "Ενεργοποιεί τη Μονάδα Διαχείρισης Μνήμης, απαραίτητο για μερικά παιχνίδια. " "(Ενεργό = Συμβατό, Ανενεργό = Γρήγορο)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3630,7 +3658,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3726,12 +3754,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3945,7 +3973,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Πειραματικός" @@ -4118,7 +4146,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4143,7 +4171,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4192,7 +4220,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4212,12 +4240,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4251,7 +4279,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4282,7 +4310,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4340,7 +4368,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4417,9 +4445,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Αποτυχία" @@ -4460,7 +4488,7 @@ msgstr "" msgid "File Details" msgstr "Πληροφορίες Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4474,19 +4502,19 @@ msgstr "" msgid "File Info" msgstr "Πληροφορίες Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Όνομα Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Διαδρομή Αρχείου" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Μέγεθος Αρχείου" @@ -4521,7 +4549,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Αρχεία δίσκου" @@ -4695,7 +4723,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4703,7 +4731,7 @@ msgstr "" msgid "Frame Range" msgstr "Εύρος Καρέ" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4951,7 +4979,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Ρυθμίσεις Παιχνιδιού" @@ -4963,7 +4991,7 @@ msgstr "" msgid "Game Folders" msgstr "Φάκελοι Παιχνιδιών" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Παιχνιδιού" @@ -5065,8 +5093,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Κωδικοί Gecko" @@ -5116,7 +5148,7 @@ msgstr "Γερμανία" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5134,11 +5166,19 @@ msgstr "" msgid "Graphics" msgstr "Γραφικά" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5471,7 +5511,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5499,11 +5539,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5569,13 +5609,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Πληροφορίες" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5599,7 +5639,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5923,7 +5963,7 @@ msgstr "Πληκτρολόγιο" msgid "Keys" msgstr "Πλήκτρα" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6075,7 +6115,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Φόρτωση Τροποποιημένων Υφών" @@ -6222,13 +6262,19 @@ msgstr "Φόρτωση..." msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6310,7 +6356,7 @@ msgstr "" msgid "Main Stick" msgstr "Κύριο Stick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6333,7 +6379,7 @@ msgstr "" msgid "Manage NAND" msgstr "Διαχείριση NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6409,7 +6455,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6417,7 +6463,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6427,7 +6473,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Μικρόφωνο" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Διάφορα" @@ -6459,7 +6505,7 @@ msgstr "" msgid "Modifier" msgstr "Modifier" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6567,11 +6613,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Όνομα" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6665,7 +6711,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6783,7 +6829,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Δεν βρέθηκαν δεδομένα αποθήκευσης." @@ -7056,11 +7102,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7126,7 +7172,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7188,7 +7234,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7208,7 +7254,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Πλατφόρμα" @@ -7279,7 +7325,7 @@ msgstr "Post-Processing Εφέ:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Προφόρτωση Τροποποιημένων Υφών" @@ -7422,7 +7468,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Ερώτηση" @@ -7600,7 +7646,7 @@ msgstr "" msgid "Refreshing..." msgstr "Ανανέωση..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7647,7 +7693,7 @@ msgstr "" msgid "Remove Tag..." msgstr "Αφαίρεση Ετικέτας..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7675,7 +7721,7 @@ msgstr "Αναπαραγωγή στο Κεντρικό Παράθυρο" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7698,6 +7744,7 @@ msgstr "" msgid "Reset" msgstr "Επανεκκίνηση" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7925,8 +7972,8 @@ msgstr "Αποθήκ." msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7964,7 +8011,7 @@ msgstr "Αποθήκευση Παλαιότερου Σημείου" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8178,7 +8225,7 @@ msgstr "Επιλογή" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8279,9 +8326,9 @@ msgstr "Επιλέξτε ένα Φάκελο" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Επιλέξτε ένα Αρχείο" @@ -8313,7 +8360,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8321,11 +8368,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Επιλέξτε αρχείο αποθήκευσης" @@ -8518,7 +8565,7 @@ msgstr "" msgid "Settings" msgstr "Ρυθμίσεις" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Αδυναμία δημιουργίας αρχείου setting.txt" @@ -8671,7 +8718,7 @@ msgstr "Εμφάνιση Ρωσίας" msgid "Show Spain" msgstr "Εμφάνιση Ισπανίας" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Εμφάνιση Στατιστικών" @@ -8758,7 +8805,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8946,7 +8993,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9183,8 +9230,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9209,7 +9256,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9229,12 +9276,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9372,7 +9419,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9409,11 +9456,11 @@ msgstr "Cache Υφών" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Επικάλυψη Του Format Υφών" @@ -9801,8 +9848,14 @@ msgstr "" "Αυτός ο προσομοιωτής action replay δεν υποστηρίζει κωδικούς που αλλάζουν το " "ίδιο το Action Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9914,7 +9967,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9922,7 +9975,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9967,7 +10020,7 @@ msgstr "" msgid "Threshold" msgstr "Κατώφλι" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9982,7 +10035,7 @@ msgstr "Πλάγιασμα" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10283,7 +10336,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10479,7 +10532,7 @@ msgstr "Χρήση Ενσωματωμένης Βάσης Δεδομένων γι msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10491,7 +10544,7 @@ msgstr "Χρήση Λειτουργίας PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Χρήση Οθονών Πανικού" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10612,7 +10665,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Εργαλεία" @@ -10637,7 +10690,7 @@ msgstr "Ταχύτητα" msgid "Verbosity" msgstr "Αναλυτικότητα" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Επαλήθευση" @@ -10889,7 +10942,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10897,7 +10950,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/en.po b/Languages/po/en.po index 3888e67d69..35d7f898a9 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -65,7 +65,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -528,6 +529,10 @@ msgstr "" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "" @@ -652,7 +657,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -860,8 +865,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -883,7 +888,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -918,7 +923,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "" @@ -1130,6 +1135,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1166,10 +1176,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1186,7 +1201,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1203,7 +1218,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1212,8 +1227,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1361,7 +1376,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1471,7 +1486,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1503,7 +1518,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1551,7 +1566,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1614,11 +1629,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1660,15 +1675,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1774,6 +1789,10 @@ msgstr "" msgid "Buttons" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1804,7 +1823,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1861,8 +1880,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1891,7 +1910,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1903,7 +1922,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1989,7 +2008,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2118,7 +2137,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2156,6 +2175,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2170,10 +2190,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2549,7 +2569,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2567,11 +2587,11 @@ msgstr "" msgid "Critical" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2709,7 +2729,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "" @@ -2722,7 +2742,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "" @@ -2789,7 +2809,7 @@ msgstr "" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2797,7 +2817,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2840,7 +2860,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2852,6 +2872,10 @@ msgstr "" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2941,7 +2965,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2972,7 +2996,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3407,7 +3431,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3453,14 +3477,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3496,12 +3520,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "" @@ -3522,7 +3550,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "" @@ -3563,7 +3591,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3571,7 +3599,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3597,7 +3625,7 @@ msgid "" "OFF = Fast)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3605,7 +3633,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3701,12 +3729,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3918,7 +3946,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4091,7 +4119,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4116,7 +4144,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4165,7 +4193,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4185,12 +4213,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4224,7 +4252,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4255,7 +4283,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4313,7 +4341,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4390,9 +4418,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4433,7 +4461,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4447,19 +4475,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4494,7 +4522,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "" @@ -4668,7 +4696,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4676,7 +4704,7 @@ msgstr "" msgid "Frame Range" msgstr "" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4924,7 +4952,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4936,7 +4964,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5038,8 +5066,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "" @@ -5089,7 +5121,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5107,11 +5139,19 @@ msgstr "" msgid "Graphics" msgstr "" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5444,7 +5484,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5472,11 +5512,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5542,13 +5582,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5572,7 +5612,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5896,7 +5936,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6045,7 +6085,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "" @@ -6192,13 +6232,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6280,7 +6326,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6303,7 +6349,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6377,7 +6423,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6385,7 +6431,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6395,7 +6441,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "" @@ -6427,7 +6473,7 @@ msgstr "" msgid "Modifier" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6535,11 +6581,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6631,7 +6677,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6749,7 +6795,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7022,11 +7068,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7092,7 +7138,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "" @@ -7154,7 +7200,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7174,7 +7220,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7245,7 +7291,7 @@ msgstr "" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7388,7 +7434,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "" @@ -7566,7 +7612,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7613,7 +7659,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7641,7 +7687,7 @@ msgstr "" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7664,6 +7710,7 @@ msgstr "" msgid "Reset" msgstr "" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7891,8 +7938,8 @@ msgstr "" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7930,7 +7977,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8144,7 +8191,7 @@ msgstr "" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8245,9 +8292,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8279,7 +8326,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8287,11 +8334,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8481,7 +8528,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8634,7 +8681,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "" @@ -8721,7 +8768,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8909,7 +8956,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9146,8 +9193,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9172,7 +9219,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9192,12 +9239,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9335,7 +9382,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9372,11 +9419,11 @@ msgstr "" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "" @@ -9758,8 +9805,14 @@ msgid "" "Replay itself." msgstr "" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9869,7 +9922,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9877,7 +9930,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9922,7 +9975,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9937,7 +9990,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10238,7 +10291,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10432,7 +10485,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10444,7 +10497,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10565,7 +10618,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "" @@ -10590,7 +10643,7 @@ msgstr "" msgid "Verbosity" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10842,7 +10895,7 @@ msgstr "" msgid "Whammy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10850,7 +10903,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/es.po b/Languages/po/es.po index d3d766ced1..8a9ee57f30 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" @@ -109,7 +109,8 @@ msgstr "$ Variable del usuario" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -580,6 +581,10 @@ msgstr "&Propiedades" msgid "&Read-Only Mode" msgstr "&Modo de solo lectura" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registros" @@ -704,7 +709,7 @@ msgstr "- Restar" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -915,8 +920,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Mayor que" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Ya hay una sesión de juego en red en marcha." @@ -946,7 +951,7 @@ msgstr "" "Un estado de guardado no puede ser cargado sin especificar el juego a " "ejecutar." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -997,7 +1002,7 @@ msgstr "" msgid "AR Code" msgstr "Código AR" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Códigos AR" @@ -1226,6 +1231,11 @@ msgstr "Espacio de dirección según el estado de la CPU" msgid "Address:" msgstr "Dirección:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1284,10 +1294,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avanzado" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "África" @@ -1299,12 +1314,12 @@ msgstr "Alineación a la longitud del tipo de datos" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "Todos los valores de coma flotante doble" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1319,29 +1334,29 @@ msgstr "Todos los archivos (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "Todos los valores de coma flotante" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos los archivos GC/Wii" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "Todos los valores hexadecimales" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos los estados guardados (*.sav *.s##);; Todos los archivos (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "Todos los valores enteros con signo" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "Todos los valores enteros sin signo" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1484,7 +1499,7 @@ msgstr "Detección arbitraria de mipmaps" msgid "Are you sure that you want to delete '%1'?" msgstr "¿Seguro que quieres borrar «%1»?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "¿Seguro que quieres borrar este archivo?" @@ -1603,7 +1618,7 @@ msgid "Auxiliary" msgstr "Auxiliar" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1638,7 +1653,7 @@ msgstr "Secuencia regresiva" msgid "Backend" msgstr "Motor" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Motor multihilo" @@ -1686,7 +1701,7 @@ msgstr "Ajuste proporcionado incorrecto." msgid "Bad value provided." msgstr "El valor elegido no es correcto." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1749,11 +1764,11 @@ msgstr "SSL binario (leer)" msgid "Binary SSL (write)" msgstr "SSL binario (escribir)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1797,15 +1812,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Arrancar pausado" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Archivo de respaldo BootMii NAND (*.bin);;Todos los archivos (*) " -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Archivo de claves BootMii (*.bin);;Todos los archivos (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Pantalla completa sin bordes" @@ -1914,6 +1929,10 @@ msgstr "Botón" msgid "Buttons" msgstr "Botones" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1944,7 +1963,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Intérprete con caché (lento)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -2014,8 +2033,8 @@ msgstr "" "No se puede encontrar ningún mando de Wii con el identificador de conexión " "{0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "No puedes empezar el juego en red con un juego en ejecución." @@ -2045,7 +2064,7 @@ msgstr "El juego no puede iniciar el WAD al no poder instalarlo en la NAND." msgid "Cannot compare against last value on first search." msgstr "No se puede comparar con el último valor en la primera búsqueda." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "No se puede encontrar el IPL de GC" @@ -2057,7 +2076,7 @@ msgstr "No se puede generar el código AR para esta dirección." msgid "Cannot refresh without results." msgstr "No se puede actualizar si no hay resultados." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "No se puede ejecutar el juego porque no se ha encontrado el IPL de GC." @@ -2153,7 +2172,7 @@ msgstr "Comprobar en segundo plano si hay cambios en la lista de juegos" msgid "Check for updates" msgstr "Buscar actualizaciones" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2175,7 +2194,7 @@ msgstr "Escoge un archivo para abrir" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 msgid "Choose a file to open or create" -msgstr "" +msgstr "Elige un archivo a abrir o crear" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2284,7 +2303,7 @@ msgstr "Compilar sombreadores antes de jugar" msgid "Compiling Shaders" msgstr "Compilación de sombreadores" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2322,6 +2341,7 @@ msgid "Configure Controller" msgstr "Configurar mando" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Configurar Dolphin" @@ -2336,10 +2356,10 @@ msgstr "Configurar salida" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmar" @@ -2773,7 +2793,7 @@ msgstr "Crear nueva tarjeta de memoria" msgid "Create..." msgstr "Crear..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2797,11 +2817,11 @@ msgstr "Creador:" msgid "Critical" msgstr "Crítico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Recortar imagen" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2948,7 +2968,7 @@ msgstr "¡Datos recibidos!" msgid "Datel MaxDrive/Pro files" msgstr "Archivos Datel MaxDrive/Pro" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zona muerta" @@ -2961,7 +2981,7 @@ msgstr "Depurar" msgid "Debug Only" msgstr "Opciones de depuración" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Depuración" @@ -3028,7 +3048,7 @@ msgstr "ISO predeterminado:" msgid "Default thread" msgstr "Hilo predeterminado" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Retrasar invalidación de caché del EFB" @@ -3036,7 +3056,7 @@ msgstr "Retrasar invalidación de caché del EFB" msgid "Defer EFB Copies to RAM" msgstr "Retrasar copias del EFB a la RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3085,7 +3105,7 @@ msgstr "Profundidad:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3097,6 +3117,10 @@ msgstr "Descripción" msgid "Description:" msgstr "Descripción:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Separado" @@ -3192,7 +3216,7 @@ msgstr "Desactivar delimitado rectangular" msgid "Disable Copy Filter" msgstr "Desactivar filtrado de copia" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Desactivar copias del EFB a la VRAM" @@ -3227,7 +3251,7 @@ msgstr "" "

Si tienes dudas, deja esta opción activada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3637,7 +3661,7 @@ msgstr "" ">Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3720,7 +3744,7 @@ msgstr "Efectivo" msgid "Effective priority" msgstr "Prioridad efectiva" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3769,14 +3793,14 @@ msgstr "Es necesario empezar la emulación para poder grabar." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Habilitar" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Activar capas de validación de la API" @@ -3812,12 +3836,16 @@ msgstr "Forzar tamaño de la memoria emulada" msgid "Enable FPRF" msgstr "Activar FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Activar MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Activar escaneo progresivo" @@ -3838,7 +3866,7 @@ msgstr "Activar envío de datos al altavoz" msgid "Enable Usage Statistics Reporting" msgstr "Informar de estadísticas de uso" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Ver mallas de polígonos" @@ -3901,7 +3929,7 @@ msgstr "" "

Si tienes dudas, deja esta opción activada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3914,7 +3942,7 @@ msgstr "" "

Si tienes dudas, deja esta opción activada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3952,7 +3980,7 @@ msgstr "" "necesaria para algunos juegos. (Activado: el ajuste más compatible; " "Desactivado: el ajuste más rápido)." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3965,7 +3993,7 @@ msgstr "" "los sombreadores compilados.

Si tienes dudas, deja " "esta opción desactivada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4071,12 +4099,12 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4315,7 +4343,7 @@ msgstr "Inicio esperado de la expresión." msgid "Expected variable name." msgstr "Nombre de variable previsto." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Experimental" @@ -4454,7 +4482,7 @@ msgstr "No se ha podido añadir al archivo de firma «%1»" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "No se ha podido controlar la interfaz para el acceso directo a BT: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4494,7 +4522,7 @@ msgstr "" "No se ha podido borrar la tarjeta de memoria del juego en red. Comprueba tus " "permisos de escritura." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "No se ha podido borrar el archivo seleccionado." @@ -4522,7 +4550,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "No se ha(n) podido exportar %n de %1 archivo(s) de guardado." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "No se ha podido exportar los siguientes archivos de guardado:" @@ -4582,7 +4610,7 @@ msgstr "" "contiene. Prueba a reparar tu NAND (Herramientas -> Administrar NAND -> " "Comprobar NAND...) y a importar los datos de guardado otra vez." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "No se ha podido iniciar el núcleo" @@ -4605,12 +4633,12 @@ msgstr "No se han podido iniciar las clases de renderizado" msgid "Failed to install pack: %1" msgstr "No se ha podido instalar el paquete: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "No se ha podido instalar el juego en la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4648,7 +4676,7 @@ msgstr "" "paquete de actualización KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "No se ha podido abrir «%1»" @@ -4682,7 +4710,7 @@ msgstr "" msgid "Failed to open file." msgstr "No se ha podido abrir el archivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "No se ha podido contactar con el servidor" @@ -4748,7 +4776,7 @@ msgstr "" "\n" "¿Quieres convertirlo sin eliminarlos?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "No se ha podido desinstalar el juego de la NAND." @@ -4833,9 +4861,9 @@ msgstr "" "No se ha podido escribir el archivo de salida «{0}».\n" "Comprueba que tienes espacio suficiente disponible en la unidad de destino." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Fallido" @@ -4878,7 +4906,7 @@ msgstr "Campo visual" msgid "File Details" msgstr "Detalles del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4892,19 +4920,19 @@ msgstr "Formato del archivo:" msgid "File Info" msgstr "Información del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nombre del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Ruta del archivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Tamaño del archivo" @@ -4945,7 +4973,7 @@ msgstr "" "El tamaño del archivo en el encabezado no coincide con el tamaño de la " "tarjeta actual" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistema de archivos" @@ -5145,7 +5173,7 @@ msgstr "Avanzar fotogramas más rápido" msgid "Frame Advance Reset Speed" msgstr "Avanzar fotogramas a la veloc. original" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Volcado de fotogramas" @@ -5153,7 +5181,7 @@ msgstr "Volcado de fotogramas" msgid "Frame Range" msgstr "Información de la grabación" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" "Ya existe un volcado de imagen(es) llamado «{0}». ¿Quieres sustituirlo?" @@ -5438,7 +5466,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance en el puerto %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Ajustes de juego" @@ -5450,7 +5478,7 @@ msgstr "Detalles del juego:" msgid "Game Folders" msgstr "Carpetas de juego" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Id. de juego" @@ -5473,14 +5501,17 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"El archivo del juego tiene un «hash» distinto: haz clic derecho en él, " +"selecciona Propiedades, ve a la pestaña Verificar y selecciona Verificar " +"integridad para comprobar su «hash»" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "El juego tiene un número de disco distinto" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "El juego es una revisión distinta" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5495,7 +5526,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "La región del juego no coincide" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5554,8 +5585,12 @@ msgstr "Ranura de micrófono de GameCube %1" msgid "GameCube TAS Input %1" msgstr "Entrada TAS de GameCube %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Códigos Gecko" @@ -5603,9 +5638,9 @@ msgstr "Alemania" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "Fallo en GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5623,11 +5658,19 @@ msgstr "Volcado bueno" msgid "Graphics" msgstr "Gráficos" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Ajustes gráficos" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -6026,7 +6069,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Mostrar directamente el contenido del XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -6060,11 +6103,11 @@ msgstr "Importar archivo(s) de guardado" msgid "Import Wii Save..." msgstr "Importar partidas guardadas de Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Se está importando la copia de respaldo NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6137,13 +6180,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Rotación incremental (rad/seg) (IR)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Información" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6167,7 +6210,7 @@ msgid "Input strength required for activation." msgstr "Fuerza de entrada requerida para activación" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Fuerza de entrada a ignorar y reasignar." @@ -6497,7 +6540,7 @@ msgstr "Teclado" msgid "Keys" msgstr "Teclas" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6655,7 +6698,7 @@ msgstr "Cargar archiv&o de mapa incorrecto..." msgid "Load &Other Map File..." msgstr "Cargar archiv&o de mapa adicional..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Cargar texturas personalizadas" @@ -6802,7 +6845,7 @@ msgstr "Cargar..." msgid "Loaded symbols from '%1'" msgstr "Símbolos cargados desde «%1»" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6813,6 +6856,12 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Local" @@ -6898,7 +6947,7 @@ msgstr "Archivos Gameshark de MadCatz" msgid "Main Stick" msgstr "Palanca principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6926,7 +6975,7 @@ msgstr "" msgid "Manage NAND" msgstr "Administrar NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Muestreo manual de texturas" @@ -7000,7 +7049,7 @@ msgstr "MemoryCard: Lectura en dirección de destino incorrecta ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Escritura en dirección de destino incorrecta ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7011,7 +7060,7 @@ msgstr "" "guardada que ya tengas. Es un proceso irreversible, por lo que te " "recomendamos que hagas copias de ambas NANDs. ¿Seguro que quieres continuar?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -7021,7 +7070,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Micrófono" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Varios" @@ -7062,7 +7111,7 @@ msgstr "" msgid "Modifier" msgstr "Modificador" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7138,6 +7187,8 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"La grabación {0} indica que debe empezar a partir de un estado de guardado, " +"pero {1} no existe. ¡Es muy probable que la grabación se desincronice!" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7177,11 +7228,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nombre" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Nombre para una nueva etiqueta:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Nombre de la etiqueta a eliminar:" @@ -7273,7 +7324,7 @@ msgstr "Se ha generado un identificador nuevo." msgid "New instruction:" msgstr "Nueva instrucción:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Nueva etiqueta" @@ -7362,7 +7413,7 @@ msgstr "No se ha detectado ningún problema." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "No se ha encontrado el juego correspondiente" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7395,7 +7446,7 @@ msgstr "No se han encontrado perfiles para la configuración del juego «{0}»" msgid "No recording loaded." msgstr "No hay grabación cargada." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "No se encontraron datos de guardado." @@ -7447,7 +7498,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "No se ha encontrado" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7680,11 +7731,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "Nivel de compresión del PNG" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "Nivel de compresión del PNG:" @@ -7750,7 +7801,7 @@ msgstr "Editor de parches" msgid "Patch name" msgstr "Nombre del parche" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Parches" @@ -7812,7 +7863,7 @@ msgstr "Físico" msgid "Physical address space" msgstr "Espacio de la dirección física" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7832,7 +7883,7 @@ msgstr "Cabeceo hacia arriba" msgid "Pitch Up" msgstr "Cabeceo hacia abajo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7906,7 +7957,7 @@ msgstr "Efecto de posprocesado:" msgid "Post-Processing Shader Configuration" msgstr "Configuración del sombreador de posprocesado" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Precargar texturas personalizadas" @@ -8063,7 +8114,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pregunta" @@ -8250,7 +8301,7 @@ msgstr "Se han actualizado los valores actuales." msgid "Refreshing..." msgstr "Actualizando..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8297,7 +8348,7 @@ msgstr "Eliminar datos basura (irreversible):" msgid "Remove Tag..." msgstr "Eliminar etiqueta..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Eliminar etiqueta" @@ -8328,7 +8379,7 @@ msgstr "Mostrar en la ventana principal" msgid "Rendering" msgstr "Motor de dibujo tridimensional" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8355,6 +8406,7 @@ msgstr "Solicitud para unirse a tu partida." msgid "Reset" msgstr "Restablecer" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "Reiniciar todo" @@ -8588,8 +8640,8 @@ msgstr "Guardar" msgid "Save All" msgstr "Guardar todo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportar guardado" @@ -8627,7 +8679,7 @@ msgstr "Guardar el estado más antiguo" msgid "Save Preset" msgstr "Guardar preajuste" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Guardar archivo de grabación como" @@ -8851,7 +8903,7 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "Seleccionar ruta de volcado" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Elige un directorio de exportación" @@ -8952,9 +9004,9 @@ msgstr "Elige un directorio" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Elige un archivo" @@ -8986,7 +9038,7 @@ msgstr "Elegir tarjetas e-Reader" msgid "Select the RSO module address:" msgstr "Elige la dirección del módulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Elige el archivo de grabación a reproducir" @@ -8994,11 +9046,11 @@ msgstr "Elige el archivo de grabación a reproducir" msgid "Select the Virtual SD Card Root" msgstr "Elige la carpeta raíz de la tarjeta SD virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Elige el archivo de claves (volcado OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecciona el archivo de guardado" @@ -9236,7 +9288,7 @@ msgstr "" msgid "Settings" msgstr "Ajustes" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: No puedo crear archivo setting.txt" @@ -9391,7 +9443,7 @@ msgstr "Rusos" msgid "Show Spain" msgstr "Españoles" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Mostrar estadísticas" @@ -9430,12 +9482,12 @@ msgstr "Mostrar en &memoria" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "Mostrar en código" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "Mostrar en memoria" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -9443,7 +9495,7 @@ msgstr "Mostrar en código" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "Mostrar en memoria" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9490,7 +9542,7 @@ msgstr "" "juego en red.

Si tienes dudas, deja esta opción " "desactivada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9693,7 +9745,7 @@ msgstr "Especializados (Predeterminado)" msgid "Specific" msgstr "Específico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9952,8 +10004,8 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9978,7 +10030,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportados satisfactoriamente %n de %1 archivo(s) de guardado." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Las partidas guardadas se han exportado correctamente." @@ -9998,12 +10050,12 @@ msgstr "Los datos del sistema se han extraído correctamente." msgid "Successfully imported save file." msgstr "Archivo de guardado importado correctamente." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "El juego se ha instalado correctamente en la NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Se ha desinstalado el juego de la NAND. " @@ -10152,7 +10204,7 @@ msgid "TAS Tools" msgstr "Herramientas TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10189,11 +10241,11 @@ msgstr "Caché de texturas" msgid "Texture Cache Accuracy" msgstr "Precisión de la caché de texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Volcado de texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Superponer formato de textura" @@ -10371,6 +10423,9 @@ msgid "" "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"El nombre de archivo %1 no sigue el formato que utiliza Dolphin para los " +"códigos de región de las tarjetas de memoria. Es necesario cambiar el nombre " +"de este archivo a %2, %3 o %4 según la región de los archivos que contenga." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." @@ -10652,8 +10707,14 @@ msgstr "" "El simulador de Action Replay no soporta códigos que modifiquen al Action " "Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "No puede deshacerse." @@ -10795,7 +10856,7 @@ msgstr "Este título está configurado para utilizar un IOS no válido." msgid "This title is set to use an invalid common key." msgstr "Este título está configurado para utilizar una clave común no válida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10807,7 +10868,7 @@ msgstr "" "\n" "DSPHLE: ucode desconcocido (CRC = {0:08x}) - forzando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10866,7 +10927,7 @@ msgstr "Hilos" msgid "Threshold" msgstr "Límite" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10883,7 +10944,7 @@ msgstr "" "Período de tiempo de entrada estable para activar la calibración. (cero para " "desactivar)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11210,7 +11271,7 @@ msgstr "Desinstalar" msgid "Uninstall from the NAND" msgstr "Desinstalar de la NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11413,7 +11474,7 @@ msgstr "Utilizar base de datos interna de nombres de juegos" msgid "Use Custom User Style" msgstr "Usar estilo personalizado por el usuario" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Usar códec sin pérdida (FFV1)" @@ -11425,7 +11486,7 @@ msgstr "Usar modo PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Notificar de errores y advertencias" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11598,7 +11659,7 @@ msgstr "habitualmente usado para las matrices de posición" msgid "Usually used for tex coord matrices" msgstr "Habitualmente usado para las matrices de coordenadas de texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Opciones útiles para el desarrollo" @@ -11623,7 +11684,7 @@ msgstr "Velocidad" msgid "Verbosity" msgstr "Nivel de detalle" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verificar" @@ -11945,7 +12006,7 @@ msgstr "Occidental (Windows-1252)" msgid "Whammy" msgstr "Brazo de trémolo" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11958,7 +12019,7 @@ msgstr "" "
Si tienes dudas, deja esta opción activada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " @@ -12115,19 +12176,19 @@ msgstr "Escribir en la ventana" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "Número de disco incorrecto" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "«Hash» incorrecto" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "Región incorrecta" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "Revisión incorrecta" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 diff --git a/Languages/po/fa.po b/Languages/po/fa.po index 7c707a4368..e51d54c391 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -69,7 +69,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -532,6 +533,10 @@ msgstr "خواص" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "ثبت کردن" @@ -656,7 +661,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -864,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -887,7 +892,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -922,7 +927,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "کدهای اکشن ریپلی" @@ -1134,6 +1139,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1170,10 +1180,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "پیشرفته" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1190,7 +1205,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1207,7 +1222,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1216,8 +1231,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1365,7 +1380,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1475,7 +1490,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1507,7 +1522,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1555,7 +1570,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1618,11 +1633,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1664,15 +1679,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1778,6 +1793,10 @@ msgstr "" msgid "Buttons" msgstr "دکمه ها" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1808,7 +1827,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1865,8 +1884,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1895,7 +1914,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1907,7 +1926,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1993,7 +2012,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,7 +2141,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2160,6 +2179,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2174,10 +2194,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2553,7 +2573,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2571,11 +2591,11 @@ msgstr "" msgid "Critical" msgstr "بحرانی" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "حذف قسمتی از تصوير" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2713,7 +2733,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "منطقه مرده" @@ -2726,7 +2746,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "اشکال زدائی کردن" @@ -2793,7 +2813,7 @@ msgstr "آیزو پیش فرز:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2801,7 +2821,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2844,7 +2864,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2856,6 +2876,10 @@ msgstr "شرح" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2945,7 +2969,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2976,7 +3000,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3411,7 +3435,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3457,14 +3481,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3500,12 +3524,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "فعال کردن واحد مدیریت حافظه" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "فعال کردن پويش تصاعدی (Progressive Scan)" @@ -3526,7 +3554,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "فعال کردن خطوط فریم" @@ -3567,7 +3595,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3575,7 +3603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3603,7 +3631,7 @@ msgstr "" "فعال کردن واحد مدیریت حافظه، برای بعضی از بازی ها لازم است. (روشن = سازگار، " "خاموش = سریع)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3611,7 +3639,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3707,12 +3735,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3925,7 +3953,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4098,7 +4126,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4123,7 +4151,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4172,7 +4200,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4192,12 +4220,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4231,7 +4259,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4262,7 +4290,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4320,7 +4348,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4397,9 +4425,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4440,7 +4468,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4454,19 +4482,19 @@ msgstr "" msgid "File Info" msgstr "مشخصات فایل" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4501,7 +4529,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "فایل سیستم" @@ -4675,7 +4703,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4683,7 +4711,7 @@ msgstr "" msgid "Frame Range" msgstr "محدوده فریم" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4931,7 +4959,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4943,7 +4971,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5045,8 +5073,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "کدهای گیکو" @@ -5096,7 +5128,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5114,11 +5146,19 @@ msgstr "" msgid "Graphics" msgstr "گرافیک" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5451,7 +5491,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5479,11 +5519,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5549,13 +5589,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "مشخصات" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5579,7 +5619,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5903,7 +5943,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6055,7 +6095,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "بارگذاری بافت اشیاء دلخواه" @@ -6202,13 +6242,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6290,7 +6336,7 @@ msgstr "" msgid "Main Stick" msgstr "استیک اصلی" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6313,7 +6359,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6387,7 +6433,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6395,7 +6441,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6405,7 +6451,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "متفرقه" @@ -6437,7 +6483,7 @@ msgstr "" msgid "Modifier" msgstr "پیراینده" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6545,11 +6591,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6641,7 +6687,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6759,7 +6805,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7032,11 +7078,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7102,7 +7148,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "وصله ها" @@ -7164,7 +7210,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7184,7 +7230,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7255,7 +7301,7 @@ msgstr "افکت ها:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7398,7 +7444,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "سوال" @@ -7576,7 +7622,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7623,7 +7669,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7651,7 +7697,7 @@ msgstr "نمایش در پنجره اصلی" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7674,6 +7720,7 @@ msgstr "" msgid "Reset" msgstr "شروع دوباره" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7901,8 +7948,8 @@ msgstr "ذخیره" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7940,7 +7987,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8154,7 +8201,7 @@ msgstr "انتخاب" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8255,9 +8302,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8289,7 +8336,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8297,11 +8344,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "انتخاب فایل ذخیره" @@ -8491,7 +8538,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8644,7 +8691,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "نمایش آمار" @@ -8731,7 +8778,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8919,7 +8966,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9156,8 +9203,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9182,7 +9229,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9202,12 +9249,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9345,7 +9392,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9382,11 +9429,11 @@ msgstr "حافظه ميانى بافت اشیاء" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "قالب بندی بافت اشیاء" @@ -9772,8 +9819,14 @@ msgstr "" "این شبیه ساز اکشن ریپلی از کدهایی که توسط خود اکشن ریپلی پیراسته شده باشد " "پشتیبانی نمی کند." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9883,7 +9936,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9891,7 +9944,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9936,7 +9989,7 @@ msgstr "" msgid "Threshold" msgstr "سرحد" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9951,7 +10004,7 @@ msgstr "لرزیدن" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10252,7 +10305,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10446,7 +10499,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10458,7 +10511,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "استفاده از دستگذار پنیک" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10579,7 +10632,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "کاربردی" @@ -10604,7 +10657,7 @@ msgstr "" msgid "Verbosity" msgstr "دراز نویسی" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10856,7 +10909,7 @@ msgstr "" msgid "Whammy" msgstr "بد شانسی" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10864,7 +10917,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/fr.po b/Languages/po/fr.po index 3ca917161f..66f107bc55 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -95,7 +95,8 @@ msgstr "$ Variable Utilisateur" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -566,6 +567,10 @@ msgstr "&Propriétés" msgid "&Read-Only Mode" msgstr "Mode &Lecture seule" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registres" @@ -690,7 +695,7 @@ msgstr "- Soustraire" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -901,8 +906,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Supérieur à" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Une session NetPlay est en cours !" @@ -933,7 +938,7 @@ msgstr "" "Une sauvegarde d'état ne peut être chargée sans avoir spécifié quel jeu " "démarrer." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -987,7 +992,7 @@ msgstr "" msgid "AR Code" msgstr "Code AR" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Codes AR" @@ -1217,6 +1222,11 @@ msgstr "Espace d'adresse par état de CPU" msgid "Address:" msgstr "Adresse :" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1271,10 +1281,15 @@ msgstr "Port jeu avancé" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avancé" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrique" @@ -1291,7 +1306,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1308,7 +1323,7 @@ msgstr "Tous les fichiers (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tous les fichiers GC/Wii" @@ -1317,8 +1332,8 @@ msgstr "Tous les fichiers GC/Wii" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tous les états sauvegardés (*.sav *.s##);; Tous les fichiers (*)" @@ -1471,7 +1486,7 @@ msgstr "Détection de mipmap arbitraire" msgid "Are you sure that you want to delete '%1'?" msgstr "Êtes-vous sûr de vouloir supprimer \"%1\" ?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Êtes-vous sûr de vouloir supprimer ce fichier ?" @@ -1590,7 +1605,7 @@ msgid "Auxiliary" msgstr "Auxiliaire" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "o" @@ -1625,7 +1640,7 @@ msgstr "Back Chain" msgid "Backend" msgstr "Moteur" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Multithreading du moteur" @@ -1673,7 +1688,7 @@ msgstr "Mauvais offset fourni." msgid "Bad value provided." msgstr "Mauvaise valeur fournie." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1736,11 +1751,11 @@ msgstr "Binaire SSL (lecture)" msgid "Binary SSL (write)" msgstr "Binaire SSL (écriture)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitrate (kbps) :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1784,16 +1799,16 @@ msgstr "" msgid "Boot to Pause" msgstr "Démarrer sur Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" "Fichier de sauvegarde BootMii de la NAND (*.bin);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fichier de clés BootMii (*.bin);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Plein écran sans bords" @@ -1902,6 +1917,10 @@ msgstr "Bouton" msgid "Buttons" msgstr "Boutons" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1932,7 +1951,7 @@ msgstr "CRC32 :" msgid "Cached Interpreter (slower)" msgstr "Interpréteur avec cache (lent)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -2002,8 +2021,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossible de trouver la Wiimote par la gestion de connexion {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Impossible de démarrer une session NetPlay pendant qu'un jeu est en cours " @@ -2039,7 +2058,7 @@ msgstr "" "Il n'est pas possible de comparer avec la dernière valeur lors d'une " "première recherche." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Impossible de trouver l'IPL de GC" @@ -2051,7 +2070,7 @@ msgstr "Impossible de générer un code AR pour cette adresse." msgid "Cannot refresh without results." msgstr "Impossible de rafraîchir lorsqu'il n'y a pas de résultat." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Impossible de démarrer le jeu car l'IPL de GC n'a pas pu être trouvé." @@ -2148,7 +2167,7 @@ msgstr "Rechercher en arrière-plan les changements dans la liste des jeux" msgid "Check for updates" msgstr "Rechercher des mises à jour" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2279,7 +2298,7 @@ msgstr "Compiler les Shaders avant le démarrage" msgid "Compiling Shaders" msgstr "Compilation des Shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2317,6 +2336,7 @@ msgid "Configure Controller" msgstr "Configurer la manette" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Configurer Dolphin" @@ -2331,10 +2351,10 @@ msgstr "Configurer la sortie" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmer" @@ -2767,7 +2787,7 @@ msgstr "Créer une nouvelle Carte mémoire" msgid "Create..." msgstr "Créer..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2791,11 +2811,11 @@ msgstr "Créateur :" msgid "Critical" msgstr "Critique" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Recadrer" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2943,7 +2963,7 @@ msgstr "Données reçues !" msgid "Datel MaxDrive/Pro files" msgstr "Fichiers Datel MaxDrive/Pro" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zone morte" @@ -2956,7 +2976,7 @@ msgstr "Débug" msgid "Debug Only" msgstr "Débogage uniquement" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Débogage" @@ -3023,7 +3043,7 @@ msgstr "ISO par défaut :" msgid "Default thread" msgstr "Thread par défaut" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Différer l'invalidation du cache EFB" @@ -3031,7 +3051,7 @@ msgstr "Différer l'invalidation du cache EFB" msgid "Defer EFB Copies to RAM" msgstr "Reporter les copies EFB vers la RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3080,7 +3100,7 @@ msgstr "Profondeur :" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3092,6 +3112,10 @@ msgstr "Description" msgid "Description:" msgstr "Description :" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Détaché" @@ -3188,7 +3212,7 @@ msgstr "Désactiver Bounding Box" msgid "Disable Copy Filter" msgstr "Désactiver le filtre de copie" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Désactiver les copies EFB dans la VRAM" @@ -3223,7 +3247,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Dans le doute, " "décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3633,7 +3657,7 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3716,7 +3740,7 @@ msgstr "Effective" msgid "Effective priority" msgstr "Priorité effective" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "Eio" @@ -3765,14 +3789,14 @@ msgstr "L'émulation doit être démarrée pour pouvoir enregistrer." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Activer" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Activer les couches de validation d'API" @@ -3808,12 +3832,16 @@ msgstr "Modifier la taille de la mémoire émulée" msgid "Enable FPRF" msgstr "Activer le FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Activer le MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Activer le balayage progressif" @@ -3834,7 +3862,7 @@ msgstr "Activer les données du haut-parleur" msgid "Enable Usage Statistics Reporting" msgstr "Activer l'envoi des statistiques d'utilisation" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Activer le rendu en fil de fer" @@ -3895,7 +3923,7 @@ msgstr "" "avec le décodage des textures par le GPU.

Dans le " "doute, cochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3909,7 +3937,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3946,7 +3974,7 @@ msgstr "" "Activer le Memory Management Unit (unité de gestion de la mémoire), requis " "pour certains jeux. (ON = Compatible, OFF = Vitesse)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3959,7 +3987,7 @@ msgstr "" "compilés.

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4063,12 +4091,12 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4310,7 +4338,7 @@ msgstr "Début d'expression attendu" msgid "Expected variable name." msgstr "Nom de variable attendu." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Expérimental" @@ -4489,7 +4517,7 @@ msgstr "" "Impossible de créer la carte mémoire pour NetPlay. Vérifier vos permissions " "en écriture." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Impossible de supprimer le fichier sélectionné." @@ -4514,7 +4542,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Échec de l'exportation de %n sur %1 fichier(s) de sauvegarde." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Échec de l'exportation des fichiers de sauvegarde suivants :" @@ -4574,7 +4602,7 @@ msgstr "" "Essayez de réparer votre NAND (Outils -> Gestion de NAND -> Vérifier la " "NAND...), et importez à nouveau la sauvegarde." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Impossible d'initialiser la base" @@ -4597,12 +4625,12 @@ msgstr "Impossible d'initialiser les classes du moteur de rendu" msgid "Failed to install pack: %1" msgstr "Impossible d'installer le pack %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Impossible d'installer ce titre dans la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4640,7 +4668,7 @@ msgstr "" "la mise à jour KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Impossible d'ouvrir \"%1\"" @@ -4674,7 +4702,7 @@ msgstr "" msgid "Failed to open file." msgstr "Impossible d'ouvrir le fichier." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Impossible d'accéder au serveur" @@ -4740,7 +4768,7 @@ msgstr "" "\n" "Voulez-vous le convertir sans supprimer les données inutiles ?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Impossible de supprimer ce titre de la NAND." @@ -4825,9 +4853,9 @@ msgstr "" "Impossible d'écrire le fichier de sortie \"{0}\".\n" "Vérifiez que vous avez d'espace libre sur le lecteur de destination." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Échec" @@ -4870,7 +4898,7 @@ msgstr "Champ de vision" msgid "File Details" msgstr "Détails du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4884,19 +4912,19 @@ msgstr "Format du fichier :" msgid "File Info" msgstr "Infos du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nom du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Chemin du fichier" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Taille du fichier" @@ -4936,7 +4964,7 @@ msgid "Filesize in header mismatches actual card size." msgstr "" "La taille indiquée dans l'entête ne correspond pas à celle de la carte." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Système de fichiers" @@ -5135,7 +5163,7 @@ msgstr "Accélérer la vitesse d'avancement de l'image" msgid "Frame Advance Reset Speed" msgstr "Réinitialiser la vitesse d'avancement de l'image" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Capture d'image" @@ -5143,7 +5171,7 @@ msgstr "Capture d'image" msgid "Frame Range" msgstr "Plage d'images :" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "La/Les capture(s) d'image '{0}' existe déjà. Remplacer ?" @@ -5428,7 +5456,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance sur le Port %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Configuration du jeu" @@ -5440,7 +5468,7 @@ msgstr "Détails du jeu" msgid "Game Folders" msgstr "Dossier de jeux" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID du jeu" @@ -5544,8 +5572,12 @@ msgstr "Micro pour GameCube, Slot %1" msgid "GameCube TAS Input %1" msgstr "Entrée TAS %1 pour GameCube" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Codes Gecko" @@ -5595,7 +5627,7 @@ msgstr "Allemagne" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "Gio" @@ -5613,11 +5645,19 @@ msgstr "Dump OK" msgid "Graphics" msgstr "Graphismes" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Options graphiques" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -6019,7 +6059,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Présenter immédiatement l'XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -6053,11 +6093,11 @@ msgstr "Importer le(s) fichier(s) de sauvegarde" msgid "Import Wii Save..." msgstr "Importer une sauvegarde Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importation de la sauvegarde de la NAND..." -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6131,13 +6171,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Rotation incrémentale (rad/sec)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Information" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6161,7 +6201,7 @@ msgid "Input strength required for activation." msgstr "Force d'appui requise pour l'activation." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Force de l'entrée à ignorer et remapper." @@ -6492,7 +6532,7 @@ msgstr "Clavier" msgid "Keys" msgstr "Touches" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "Kio" @@ -6650,7 +6690,7 @@ msgstr "Charger un fichier de carte de &défauts..." msgid "Load &Other Map File..." msgstr "Charger un &Autre fichier de carte..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Charger textures personnalisées" @@ -6797,7 +6837,7 @@ msgstr "Charger..." msgid "Loaded symbols from '%1'" msgstr "Symboles chargés à partir de '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6808,6 +6848,12 @@ msgstr "" "

Dans le doute, décochez cette case." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Local" @@ -6893,7 +6939,7 @@ msgstr "Fichiers MadCatz Gameshark" msgid "Main Stick" msgstr "Stick principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6921,7 +6967,7 @@ msgstr "" msgid "Manage NAND" msgstr "Gestion de NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Échantillonnage manuel de la texture" @@ -6999,7 +7045,7 @@ msgstr "" "MemoryCard : l'écriture a été appelée avec une mauvaise adresse de " "destination ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7011,7 +7057,7 @@ msgstr "" "irréversible, il est donc recommandé de conserver des sauvegardes de chacune " "des NAND. Êtes-vous sûr de vouloir continuer ?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "Mio" @@ -7021,7 +7067,7 @@ msgstr "Mio" msgid "Microphone" msgstr "Micro" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Divers" @@ -7062,7 +7108,7 @@ msgstr "" msgid "Modifier" msgstr "Modif." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7177,11 +7223,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nom" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Nom du nouveau tag :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Nom du tag à retirer :" @@ -7273,7 +7319,7 @@ msgstr "Nouvelle identité générée." msgid "New instruction:" msgstr "Nouvelle instruction :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Nouveau tag" @@ -7395,7 +7441,7 @@ msgstr "Aucun profil trouvé pour les réglages du jeu '{0}'" msgid "No recording loaded." msgstr "Aucun enregistrement chargé." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Aucune donnée de sauvegarde trouvée" @@ -7681,11 +7727,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "Niveau de compression en PNG" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "Niveau de compression en PNG :" @@ -7751,7 +7797,7 @@ msgstr "Editeur de patch" msgid "Patch name" msgstr "Nom du patch" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patchs" @@ -7813,7 +7859,7 @@ msgstr "Physique" msgid "Physical address space" msgstr "Espace d'adresse physique" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "Pio" @@ -7833,7 +7879,7 @@ msgstr "Baisser" msgid "Pitch Up" msgstr "Monter" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plateforme" @@ -7908,7 +7954,7 @@ msgstr "Effet de Post-processing :" msgid "Post-Processing Shader Configuration" msgstr "Configuration du post-traitement des Shaders" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Précharger textures personnalisées" @@ -8066,7 +8112,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Question" @@ -8253,7 +8299,7 @@ msgstr "Valeurs actuelles actualisées." msgid "Refreshing..." msgstr "Actualisation..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8300,7 +8346,7 @@ msgstr "Retirer les données inutiles (irréversible) :" msgid "Remove Tag..." msgstr "Supprimer le tag..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Supprimer le tag" @@ -8331,7 +8377,7 @@ msgstr "Rendu dans la fenêtre principale" msgid "Rendering" msgstr "Rendu" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8356,6 +8402,7 @@ msgstr "Quelqu'un demande à rejoindre votre partie" msgid "Reset" msgstr "Reset" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "Tout réinitialiser" @@ -8588,8 +8635,8 @@ msgstr "Sauver" msgid "Save All" msgstr "Tout enregistrer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportation de la sauvegarde" @@ -8627,7 +8674,7 @@ msgstr "Sauvegarder l'ancien état" msgid "Save Preset" msgstr "Enregistrer le préréglage" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Sauvegarder le fichier d'enregistrement sous" @@ -8851,7 +8898,7 @@ msgstr "Sélectionner" msgid "Select Dump Path" msgstr "Sélectionner le dossier pour le dump :" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Sélectionner le dossier d'exportation" @@ -8952,9 +8999,9 @@ msgstr "Sélectionner un dossier" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Sélectionner un fichier" @@ -8986,7 +9033,7 @@ msgstr "Sélectionner les cartes e-Reader" msgid "Select the RSO module address:" msgstr "Sélectionner l'adresse du module RSO :" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Sélectionnez le fichier d'enregistrement à lire" @@ -8994,11 +9041,11 @@ msgstr "Sélectionnez le fichier d'enregistrement à lire" msgid "Select the Virtual SD Card Root" msgstr "Sélectionner le dossier racine de la carte SD virtuelle" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Sélectionner le fichier des clés (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Sélectionner le fichier à enregistrer" @@ -9232,7 +9279,7 @@ msgstr "" msgid "Settings" msgstr "Réglages" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory : Impossible de créer le fichier setting.txt" @@ -9388,7 +9435,7 @@ msgstr "Afficher Russie" msgid "Show Spain" msgstr "Afficher Espagne" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Afficher les statistiques" @@ -9487,7 +9534,7 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9691,7 +9738,7 @@ msgstr "Spécialisé (par défaut)" msgid "Specific" msgstr "Spécifique" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9949,8 +9996,8 @@ msgstr "Style" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9975,7 +10022,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportation avec succès de %n sur %1 fichier(s) de sauvegarde." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Fichiers de sauvegarde exportés avec succès." @@ -9995,12 +10042,12 @@ msgstr "Extraction avec succès des données du système." msgid "Successfully imported save file." msgstr "Fichier de sauvegarde importé avec succès." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Ce titre a été installé avec succès dans la NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Ce titre a été supprimé avec succès de la NAND." @@ -10149,7 +10196,7 @@ msgid "TAS Tools" msgstr "Outils TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10186,11 +10233,11 @@ msgstr "Cache de texture" msgid "Texture Cache Accuracy" msgstr "Précision du cache de texture" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Copie des textures" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Infos de format de texture" @@ -10642,8 +10689,14 @@ msgstr "" "Ce simulateur d'Action Replay ne prend pas en charge les codes qui modifient " "l'Action Replay lui-même." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Ceci est irréversible !" @@ -10785,7 +10838,7 @@ msgstr "Ce titre est réglé pour utiliser un IOS qui n'est pas valide." msgid "This title is set to use an invalid common key." msgstr "Ce titre est réglé pour utiliser une clé partagée non valide." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10797,7 +10850,7 @@ msgstr "" "\n" "DSPHLE : ucode inconnu (CRC = {0:08x}) - forçage de AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10857,7 +10910,7 @@ msgstr "Flux" msgid "Threshold" msgstr "Seuil" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "Tio" @@ -10874,7 +10927,7 @@ msgstr "" "Durée pendant laquelle la manette est stable pour activer l'étalonnage (zéro " "pour désactiver)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11201,7 +11254,7 @@ msgstr "Désinstaller" msgid "Uninstall from the NAND" msgstr "Désinstaller de la NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11404,7 +11457,7 @@ msgstr "Utiliser la base de données interne des noms de jeux" msgid "Use Custom User Style" msgstr "Utiliser un style personnalisé par l'utilisateur" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Utiliser un codec sans perte (FFV1)" @@ -11416,7 +11469,7 @@ msgstr "Utiliser le mode PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Utiliser les gestionnaires de panique" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11591,7 +11644,7 @@ msgstr "Utilisé habituellement pour la matrices de position" msgid "Usually used for tex coord matrices" msgstr "Utilisé habituellement pour les matrices de coordonnées de textures" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilitaires" @@ -11616,7 +11669,7 @@ msgstr "Vélocité" msgid "Verbosity" msgstr "Niveau de détail" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Vérifier" @@ -11936,7 +11989,7 @@ msgstr "Occidental (Windows-1252)" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11949,7 +12002,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/hr.po b/Languages/po/hr.po index bced173e15..bbd10b1e75 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -69,7 +69,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -532,6 +533,10 @@ msgstr "&Svojstva" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registri" @@ -656,7 +661,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -864,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -887,7 +892,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -922,7 +927,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR Kodovi" @@ -1134,6 +1139,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1170,10 +1180,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Napredno" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1190,7 +1205,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1207,7 +1222,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1216,8 +1231,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1365,7 +1380,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1475,7 +1490,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1507,7 +1522,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1555,7 +1570,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1618,11 +1633,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1664,15 +1679,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1778,6 +1793,10 @@ msgstr "" msgid "Buttons" msgstr "Tipke" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1808,7 +1827,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1865,8 +1884,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1895,7 +1914,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1907,7 +1926,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1993,7 +2012,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,7 +2141,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2160,6 +2179,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2174,10 +2194,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2553,7 +2573,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2571,11 +2591,11 @@ msgstr "" msgid "Critical" msgstr "Kritično" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Podrezati" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2713,7 +2733,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Mrtva Zona" @@ -2726,7 +2746,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Traženje/ispravljanje pogrešaka" @@ -2793,7 +2813,7 @@ msgstr "Uobičajeni ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2801,7 +2821,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2844,7 +2864,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2856,6 +2876,10 @@ msgstr "Opis" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2945,7 +2969,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2976,7 +3000,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3411,7 +3435,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3457,14 +3481,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3500,12 +3524,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Omogući MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Omogućite Progresivno Skeniranje" @@ -3526,7 +3554,7 @@ msgstr "Omogući Zvučne Podatke" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Omogući Žičani Okvir" @@ -3567,7 +3595,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3575,7 +3603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3603,7 +3631,7 @@ msgstr "" "Omogućuje Jedinicu za Upravljanje Memorijom, koja je potrebna za nekoliko " "igrica. (UKLJUČENO= Kompatibilnost, ISKLJUČENO= Ubrzanje)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3611,7 +3639,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3707,12 +3735,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3925,7 +3953,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4098,7 +4126,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4123,7 +4151,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4172,7 +4200,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4192,12 +4220,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4231,7 +4259,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4262,7 +4290,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4320,7 +4348,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4397,9 +4425,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4440,7 +4468,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4454,19 +4482,19 @@ msgstr "" msgid "File Info" msgstr "Informacije o Datoteci" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4501,7 +4529,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Datotečni sustav" @@ -4675,7 +4703,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4683,7 +4711,7 @@ msgstr "" msgid "Frame Range" msgstr "Domet Slike" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4931,7 +4959,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4943,7 +4971,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5045,8 +5073,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko Kodovi" @@ -5096,7 +5128,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5114,11 +5146,19 @@ msgstr "" msgid "Graphics" msgstr "Grafika" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5451,7 +5491,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5479,11 +5519,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5549,13 +5589,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5579,7 +5619,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5903,7 +5943,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6055,7 +6095,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Učitaj Posebne Teksture" @@ -6202,13 +6242,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6290,7 +6336,7 @@ msgstr "" msgid "Main Stick" msgstr "Glavna Gljiva" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6313,7 +6359,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6387,7 +6433,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6395,7 +6441,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6405,7 +6451,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Razno" @@ -6437,7 +6483,7 @@ msgstr "" msgid "Modifier" msgstr "Modifikator" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6545,11 +6591,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6641,7 +6687,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6759,7 +6805,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7032,11 +7078,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7102,7 +7148,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Zakrpe" @@ -7164,7 +7210,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7184,7 +7230,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7255,7 +7301,7 @@ msgstr "Post-Processing Efekt:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7398,7 +7444,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pitanje" @@ -7576,7 +7622,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7623,7 +7669,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7651,7 +7697,7 @@ msgstr "Obrađivati u Glavnom prozoru" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7674,6 +7720,7 @@ msgstr "" msgid "Reset" msgstr "Resetiraj" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7901,8 +7948,8 @@ msgstr "Snimi" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7940,7 +7987,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8154,7 +8201,7 @@ msgstr "Odaberi" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8255,9 +8302,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8289,7 +8336,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8297,11 +8344,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Odaberite snimak igre" @@ -8491,7 +8538,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8644,7 +8691,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Pokaži Statistike" @@ -8731,7 +8778,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8919,7 +8966,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9156,8 +9203,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9182,7 +9229,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9202,12 +9249,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9345,7 +9392,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9382,11 +9429,11 @@ msgstr "Predmemorija za Teksture" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Prekriti Format Teksture" @@ -9768,8 +9815,14 @@ msgid "" "Replay itself." msgstr "AR simulator ne podržava kodove koje utječu na njega samog." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9879,7 +9932,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9887,7 +9940,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9932,7 +9985,7 @@ msgstr "" msgid "Threshold" msgstr "Prag" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9947,7 +10000,7 @@ msgstr "Nagib" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10248,7 +10301,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10442,7 +10495,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10454,7 +10507,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "Koristi Rješavanje Panike" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10575,7 +10628,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Uslužni program" @@ -10600,7 +10653,7 @@ msgstr "" msgid "Verbosity" msgstr "Preopširno" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10852,7 +10905,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10860,7 +10913,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/hu.po b/Languages/po/hu.po index a036c4719f..65e9e2727d 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -70,7 +70,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -533,6 +534,10 @@ msgstr "&Tulajdonságok" msgid "&Read-Only Mode" msgstr "&Írásvédett mód" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Regiszterek" @@ -657,7 +662,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -865,8 +870,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -888,7 +893,7 @@ msgstr "Egy lemez már behelyezés alatt." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -923,7 +928,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR kódok" @@ -1135,6 +1140,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1171,10 +1181,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Haladó" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1191,7 +1206,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1208,7 +1223,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1217,8 +1232,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1366,7 +1381,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1476,7 +1491,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1508,7 +1523,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1556,7 +1571,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1619,11 +1634,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1665,15 +1680,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Szegély nélküli teljes képernyő" @@ -1779,6 +1794,10 @@ msgstr "" msgid "Buttons" msgstr "Gombok" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1809,7 +1828,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "Gyorsítótáras értelmező (lassabb)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1866,8 +1885,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1897,7 +1916,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1909,7 +1928,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1995,7 +2014,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2124,7 +2143,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2162,6 +2181,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2176,10 +2196,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2555,7 +2575,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2573,11 +2593,11 @@ msgstr "" msgid "Critical" msgstr "Kritikus" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Levágás" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2715,7 +2735,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Holtsáv" @@ -2728,7 +2748,7 @@ msgstr "" msgid "Debug Only" msgstr "Csak hibakeresés" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Hibakeresés" @@ -2795,7 +2815,7 @@ msgstr "Alapértelmezett ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2803,7 +2823,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2846,7 +2866,7 @@ msgstr "Mélység:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2858,6 +2878,10 @@ msgstr "Leírás" msgid "Description:" msgstr "Leírás:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2947,7 +2971,7 @@ msgstr "Határolókeret kikapcsolása" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2978,7 +3002,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3413,7 +3437,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3459,14 +3483,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "API-érvényesítési rétegek használata" @@ -3502,12 +3526,16 @@ msgstr "" msgid "Enable FPRF" msgstr "FPRF használata" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "MMU használata" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Progresszív pásztázás használata" @@ -3528,7 +3556,7 @@ msgstr "Hangszóró adatok bekapcsolása" msgid "Enable Usage Statistics Reporting" msgstr "Használati statisztika jelentése" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Vonalháló használata" @@ -3573,7 +3601,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3581,7 +3609,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3609,7 +3637,7 @@ msgstr "" "Bekapcsolja a memória kezelő egységet (Memory Management Unit), mely néhány " "játékhoz szükséges. (BE = Kompatibilis, KI = Gyors)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3617,7 +3645,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3713,12 +3741,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3932,7 +3960,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4105,7 +4133,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4130,7 +4158,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4179,7 +4207,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4199,12 +4227,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4238,7 +4266,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4269,7 +4297,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4327,7 +4355,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4404,9 +4432,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4447,7 +4475,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4461,19 +4489,19 @@ msgstr "" msgid "File Info" msgstr "Fájl információ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Fájlnév" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Fájlméret" @@ -4508,7 +4536,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Fájlrendszer" @@ -4682,7 +4710,7 @@ msgstr "Képkocka léptetés gyorsítás" msgid "Frame Advance Reset Speed" msgstr "Képkocka léptetés alap sebesség" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4690,7 +4718,7 @@ msgstr "" msgid "Frame Range" msgstr "Képkocka hatókör" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4938,7 +4966,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4950,7 +4978,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Játék azonosító" @@ -5052,8 +5080,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko kódok" @@ -5103,7 +5135,7 @@ msgstr "Németország" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5121,11 +5153,19 @@ msgstr "" msgid "Graphics" msgstr "Grafika" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5458,7 +5498,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5486,11 +5526,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii mentés importálása..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5556,13 +5596,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Infó" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5586,7 +5626,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5911,7 +5951,7 @@ msgstr "Billentyűzet" msgid "Keys" msgstr "Gombok" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6063,7 +6103,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Egyedi textúrák betöltése" @@ -6210,13 +6250,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6298,7 +6344,7 @@ msgstr "" msgid "Main Stick" msgstr "Főkar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6321,7 +6367,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6395,7 +6441,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6403,7 +6449,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6413,7 +6459,7 @@ msgstr "" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Egyebek" @@ -6445,7 +6491,7 @@ msgstr "" msgid "Modifier" msgstr "Módosító" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6553,11 +6599,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6649,7 +6695,7 @@ msgstr "Új azonosító generálva." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6767,7 +6813,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7042,11 +7088,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7112,7 +7158,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Javítások" @@ -7174,7 +7220,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7194,7 +7240,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7265,7 +7311,7 @@ msgstr "Utófeldolgozási effektus:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Egyedi textúrák előzetes lehívása" @@ -7408,7 +7454,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Kérdés" @@ -7586,7 +7632,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7633,7 +7679,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7661,7 +7707,7 @@ msgstr "Megjelenítés a főablakban" msgid "Rendering" msgstr "Renderelés" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7684,6 +7730,7 @@ msgstr "" msgid "Reset" msgstr "Alapbeállítások" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7911,8 +7958,8 @@ msgstr "Mentés" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7950,7 +7997,7 @@ msgstr "Legrégebbi állapot mentése" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8164,7 +8211,7 @@ msgstr "Kiválaszt" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8265,9 +8312,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8299,7 +8346,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8307,11 +8354,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Válassz mentési fájlt" @@ -8504,7 +8551,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: setting.txt fájl nem hozható létre" @@ -8657,7 +8704,7 @@ msgstr "Oroszország megjelenítése" msgid "Show Spain" msgstr "Spanyolország megjelenítése" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Statisztikák megjelenítése" @@ -8744,7 +8791,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8932,7 +8979,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9169,8 +9216,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9195,7 +9242,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9215,12 +9262,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9358,7 +9405,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9395,11 +9442,11 @@ msgstr "Textúra gyorsítótár" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Textúra formátum átfedés" @@ -9785,8 +9832,14 @@ msgstr "" "Az action replay szimulátor nem támogat olyan kódokat, amelyek magát az " "Action Replayt módosítják." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9896,7 +9949,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9904,7 +9957,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9953,7 +10006,7 @@ msgstr "" msgid "Threshold" msgstr "Küszöbérték" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9968,7 +10021,7 @@ msgstr "Billenés" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10269,7 +10322,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10463,7 +10516,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10475,7 +10528,7 @@ msgstr "PAL60 mód használata (EuRGB60)" msgid "Use Panic Handlers" msgstr "Hibakezelők használata" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10597,7 +10650,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Segédprogram" @@ -10622,7 +10675,7 @@ msgstr "" msgid "Verbosity" msgstr "Rézletesség" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10874,7 +10927,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10882,7 +10935,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/it.po b/Languages/po/it.po index d2e5865420..13f818ba96 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -86,7 +86,8 @@ msgstr "$ Variabile Utente" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -557,6 +558,10 @@ msgstr "&Proprietà" msgid "&Read-Only Mode" msgstr "Modalità &Sola-lettura" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registri" @@ -681,7 +686,7 @@ msgstr "- Sottrai" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -892,8 +897,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Maggiore-di" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Una sessione NetPlay è già in corso!" @@ -923,7 +928,7 @@ msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Uno stato salvato non può essere caricato senza indicare quale gioco avviare." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -976,7 +981,7 @@ msgstr "" msgid "AR Code" msgstr "AR Code" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Codici AR" @@ -1206,6 +1211,11 @@ msgstr "Spazio di indirizzo per stato CPU" msgid "Address:" msgstr "Indirizzo:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1263,10 +1273,15 @@ msgstr "Porta Gioco Advance" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avanzate" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Africa" @@ -1278,12 +1293,12 @@ msgstr "Allineato alla dimensione del tipo di dato" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "Tutto Double" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1298,29 +1313,29 @@ msgstr "Tutti i File (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "Tutto Float" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tutti i file GC/Wii" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "Tutto Esadecimale" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tutti i Salvataggi di Stati di Gioco (*.sav *.s##);; Tutti i File (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "Tutto Signed Integer" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "Tutto Unsigned Integer" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1462,7 +1477,7 @@ msgstr "Mipmap Detection Arbitraria" msgid "Are you sure that you want to delete '%1'?" msgstr "Sei sicuro di voler eliminare '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Sei sicuro di voler eliminare questo file?" @@ -1580,7 +1595,7 @@ msgid "Auxiliary" msgstr "Ausiliario" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1615,7 +1630,7 @@ msgstr "Back Chain" msgid "Backend" msgstr "Motore" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Multithreading Backend" @@ -1663,7 +1678,7 @@ msgstr "Offset non valido." msgid "Bad value provided." msgstr "Valore non valido." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1727,11 +1742,11 @@ msgstr "Binary SSL (lettura)" msgid "Binary SSL (write)" msgstr "Binary SSL (scrittura)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1775,15 +1790,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Avvia in Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "File di backup NAND BootMII (*.bin);;Tutti i File (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "File chiavi BootMii (*.bin);;Tutti i File (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Schermo Intero senza bordi" @@ -1893,6 +1908,10 @@ msgstr "Pulsante" msgid "Buttons" msgstr "Pulsanti" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1923,7 +1942,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Interpreter (lento)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1991,8 +2010,8 @@ msgstr "È possibile generare codici AR solo per valori nella memoria virtuale" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossibile trovare Wii Remote con handle di connessione {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Non è possibile avviare una sessione NetPlay se un gioco è in esecuzione!" @@ -2024,7 +2043,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "Non è possibile confrontare con l'ultimo valore della prima ricerca." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Impossibile trovare l'IPL GC" @@ -2036,7 +2055,7 @@ msgstr "Non è possibile generare un codice AR per questo indirizzo." msgid "Cannot refresh without results." msgstr "Non è possibile aggiornare senza risultati." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Impossibile avviare il gioco, l'IPL GC non è stato trovato" @@ -2131,7 +2150,7 @@ msgstr "Controlla cambiamenti nella Lista dei Giochi in Background" msgid "Check for updates" msgstr "Controlla la presenza di aggiornamenti" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2153,7 +2172,7 @@ msgstr "Scegli un file da aprire" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 msgid "Choose a file to open or create" -msgstr "" +msgstr "Scegli un file da aprire o creare" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2262,7 +2281,7 @@ msgstr "Compila gli Shader Prima dell'Avvio" msgid "Compiling Shaders" msgstr "Compilazione degli Shader" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2300,6 +2319,7 @@ msgid "Configure Controller" msgstr "Configura Controller" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Configura Dolphin" @@ -2314,10 +2334,10 @@ msgstr "Configura Output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Conferma" @@ -2749,7 +2769,7 @@ msgstr "Crea una Nuova Memory Card" msgid "Create..." msgstr "Crea..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2772,11 +2792,11 @@ msgstr "Autore: " msgid "Critical" msgstr "Critico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Taglia Immagine lungo i Bordi" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2924,7 +2944,7 @@ msgstr "Dati ricevuti!" msgid "Datel MaxDrive/Pro files" msgstr "File Datel MaxDrive/Pro" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zona Morta" @@ -2937,7 +2957,7 @@ msgstr "Debug" msgid "Debug Only" msgstr "Solo Debug" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debugging" @@ -3004,7 +3024,7 @@ msgstr "ISO Predefinita:" msgid "Default thread" msgstr "Thread predefinito" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Posponi Invalidazione Cache EFB" @@ -3012,7 +3032,7 @@ msgstr "Posponi Invalidazione Cache EFB" msgid "Defer EFB Copies to RAM" msgstr "Posponi Copie EFB su RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3061,7 +3081,7 @@ msgstr "Profondità:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3073,6 +3093,10 @@ msgstr "Descrizione" msgid "Description:" msgstr "Descrizione:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Scollegato" @@ -3169,7 +3193,7 @@ msgstr "Disabilita Bounding Box" msgid "Disable Copy Filter" msgstr "Disabilita Copia Filtro" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Disattiva Copie EFB VRAM" @@ -3204,7 +3228,7 @@ msgstr "" "alcuni giochi.

Nel dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Nel dubbio, " "lascia deselezionato.
" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3610,7 +3634,7 @@ msgstr "" "

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3693,7 +3717,7 @@ msgstr "Effettivo" msgid "Effective priority" msgstr "Priorità effettiva" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3742,14 +3766,14 @@ msgstr "L'emulazione deve essere iniziata per poter registrare" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Attiva" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Abilita Layer di Validazione API" @@ -3785,12 +3809,16 @@ msgstr "Abilità Override Dimensione Memoria Emulata" msgid "Enable FPRF" msgstr "Abilita FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Abilita MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Abilita Scansione Progressiva" @@ -3811,7 +3839,7 @@ msgstr "Abilita Dati Altoparlante" msgid "Enable Usage Statistics Reporting" msgstr "Abilita Report Statistiche d'Uso" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Abilita Wireframe" @@ -3870,7 +3898,7 @@ msgstr "" "Texture GPU.

Nel dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3882,7 +3910,7 @@ msgstr "" "solo il backend Vulkan ne trarrebbe beneficio.

Nel " "dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3919,7 +3947,7 @@ msgstr "" "Abilita l'Unità di Gestione della Memoria (MMU), necessaria per alcuni " "giochi. (ON = Compatibilità, OFF = Velocità)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3931,7 +3959,7 @@ msgstr "" "simboli di debug per gli shader compilati.

Nel " "dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4036,12 +4064,12 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4279,7 +4307,7 @@ msgstr "Inizio di espressione prevista." msgid "Expected variable name." msgstr "Prevista nome variabile." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Sperimentale" @@ -4418,7 +4446,7 @@ msgstr "Impossibile aggiungere il file di signature '%1'" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "Impossibile richiedere l'interfaccia per il ponte BT: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4458,7 +4486,7 @@ msgstr "" "Impossibile eliminare la memory card NetPlay. Controlla di avere i corretti " "permessi di scrittura." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Fallita la rimozione del file selezionato." @@ -4483,7 +4511,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Fallita l'esportazione di %n su %1 file di salvataggio." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Fallita l'esportazione dei seguenti file di salvataggio:" @@ -4543,7 +4571,7 @@ msgstr "" "ripararla (Strumenti -> Gestisci NAND -> Controlla NAND...), quindi importa " "di nuovo il salvataggio." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Inizializzazione fallita" @@ -4566,12 +4594,12 @@ msgstr "Impossibile inizializzare le classi del renderer" msgid "Failed to install pack: %1" msgstr "Fallita installazione del pack: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Fallita installazione del titolo nella NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4609,7 +4637,7 @@ msgstr "" "l'aggiornamento KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Fallita l'apertura di '%1'" @@ -4644,7 +4672,7 @@ msgstr "" msgid "Failed to open file." msgstr "Impossibile aprire il file." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Impossibile avviare il server" @@ -4709,7 +4737,7 @@ msgstr "" "\n" "Vuoi convertirlo senza la loro rimozione?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Fallita rimozione del titolo dalla NAND" @@ -4794,9 +4822,9 @@ msgstr "" "Fallita la scrittura del file di output \"{0}\".\n" "Controlla di avere abbastanza spazio sul dispositivo di destinazione." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Errore" @@ -4839,7 +4867,7 @@ msgstr "Campo Visivo" msgid "File Details" msgstr "Dettagli del File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4853,19 +4881,19 @@ msgstr "Formato del File:" msgid "File Info" msgstr "Info File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nome File" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Percorso:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dimensioni del File" @@ -4905,7 +4933,7 @@ msgstr "" "La dimensione nell'intestazione non corrisponde alla dimensione effettiva " "della scheda." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Filesystem" @@ -5103,7 +5131,7 @@ msgstr "Aumenta Velocità Avanzamento Frame" msgid "Frame Advance Reset Speed" msgstr "Reimposta Velocità Avanzamento Frame" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Dumping dei Frame" @@ -5111,7 +5139,7 @@ msgstr "Dumping dei Frame" msgid "Frame Range" msgstr "Intervallo Fotogramma" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "L'immagine del/dei frame '{0}' esiste già. Vuoi Sovrascrivere?" @@ -5392,7 +5420,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance sulla Porta %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Configurazione di Gioco" @@ -5404,7 +5432,7 @@ msgstr "Dettagli del Gioco" msgid "Game Folders" msgstr "Cartelle di Gioco" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Gioco" @@ -5427,14 +5455,17 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"Il file di gioco ha un hash differente; premi il tasto destro, seleziona " +"Proprietà, vai alla scheda Verifica e seleziona Verifica Integrità per " +"controllare l'hash." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "Il gioco ha un diverso numero di disco" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "Il gioco ha una revisione differente" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5449,7 +5480,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "La regione del gioco non coincide" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5508,8 +5539,12 @@ msgstr "Microfono GameCube Slot %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS Input %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Codici Gecko" @@ -5557,9 +5592,9 @@ msgstr "Germania" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "Fallita GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5577,11 +5612,19 @@ msgstr "Buon dump" msgid "Graphics" msgstr "Video" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Settaggi Grafici" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5978,7 +6021,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "XFB Immediatamente Presente" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -6012,11 +6055,11 @@ msgstr "Importa File di Salvataggio" msgid "Import Wii Save..." msgstr "Importa Salvataggio Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importazione di backup NAND in corso" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6089,13 +6132,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Rotazione Incrementale (rad/sec)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6119,7 +6162,7 @@ msgid "Input strength required for activation." msgstr "Forza richiesta per l'attivazione" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Forza da ignorare e rimappare." @@ -6450,7 +6493,7 @@ msgstr "Tastiera" msgid "Keys" msgstr "Tasti" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6608,7 +6651,7 @@ msgstr "(&B) Carica Mappa Invalida..." msgid "Load &Other Map File..." msgstr "(&O) Carica Altra Mappa..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Carica Texture Personalizzate" @@ -6755,7 +6798,7 @@ msgstr "Carica..." msgid "Loaded symbols from '%1'" msgstr "Caricati simboli da '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6765,6 +6808,12 @@ msgstr "" "User/Load/DynamicInputTextures/<game_id>/.

Nel " "dubbio, lascia deselezionato." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Locale" @@ -6850,7 +6899,7 @@ msgstr "File Gameshark MadCatz" msgid "Main Stick" msgstr "Levetta Principale" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6878,7 +6927,7 @@ msgstr "" msgid "Manage NAND" msgstr "Gestisci NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Texture Sampling Manuale" @@ -6954,7 +7003,7 @@ msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Write chiamata su indirizzo di destinazione non valido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6966,7 +7015,7 @@ msgstr "" "consiglia di mantenere un backup di entrambe le NAND. Sei sicuro di voler " "continuare?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6976,7 +7025,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Microfono" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Varie" @@ -7017,7 +7066,7 @@ msgstr "" msgid "Modifier" msgstr "Mezza Incl." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7094,6 +7143,8 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"Il filmato {0} comincia da uno stato di gioco, ma {1} non esiste. Il filmato " +"molto probabilmente non sarà sincronizzato!" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7133,11 +7184,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nome" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Nome del nuovo tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Nome del tag da rimuovere:" @@ -7231,7 +7282,7 @@ msgstr "Generata Nuova Identità" msgid "New instruction:" msgstr "Nuova istruzione:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Nuovo Tag" @@ -7320,7 +7371,7 @@ msgstr "Non sono stati rilevati problemi." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "Non sono stati trovati giochi compatibili" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7353,7 +7404,7 @@ msgstr "Nessun profilo trovato per l'impostazione di gioco '{0}'" msgid "No recording loaded." msgstr "Nessuna registrazione caricata." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Non sono stati trovati dati di salvataggio." @@ -7406,7 +7457,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "Non trovato" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7639,11 +7690,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "Livello Compressione PNG" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "Livello Compressione PNG:" @@ -7709,7 +7760,7 @@ msgstr "Patch Editor" msgid "Patch name" msgstr "Nome patch" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patch" @@ -7771,7 +7822,7 @@ msgstr "Fisico" msgid "Physical address space" msgstr "Spazio dell'indirizzo fisico" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7791,7 +7842,7 @@ msgstr "Inclinazione in Basso" msgid "Pitch Up" msgstr "Inclinazione in Alto" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Piattaforma" @@ -7863,7 +7914,7 @@ msgstr "Effetto di Post-Processing:" msgid "Post-Processing Shader Configuration" msgstr "Configura Shader di Post-Processing" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Precarica Texture Personalizzate" @@ -8019,7 +8070,7 @@ msgstr "Qualità del decoder DPLII. La latenza audio aumenta con la qualità." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Conferma" @@ -8203,7 +8254,7 @@ msgstr "Valori Attuali Aggiornati." msgid "Refreshing..." msgstr "Aggiornamento..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8250,7 +8301,7 @@ msgstr "Rimuovi Dati Inutilizzati (Irreversibile)" msgid "Remove Tag..." msgstr "Rimuovi Tag..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Rimuovi tag" @@ -8281,7 +8332,7 @@ msgstr "Renderizza nella Finestra Principale" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8306,6 +8357,7 @@ msgstr "Invita al tuo party" msgid "Reset" msgstr "Resetta" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "Resetta Tutto" @@ -8538,8 +8590,8 @@ msgstr "Salva" msgid "Save All" msgstr "Salva Tutto" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Esporta Salvataggio" @@ -8577,7 +8629,7 @@ msgstr "Salva sul più vecchio Stato di Gioco" msgid "Save Preset" msgstr "Salva Preset" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Salva File Registrazione Come" @@ -8799,7 +8851,7 @@ msgstr "Seleziona" msgid "Select Dump Path" msgstr "Seleziona Percorso Dump" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Seleziona Directory di Estrazione" @@ -8900,9 +8952,9 @@ msgstr "Seleziona una Directory" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Seleziona un File" @@ -8934,7 +8986,7 @@ msgstr "Seleziona Carte e-Reader" msgid "Select the RSO module address:" msgstr "Scegli l'indirizzo del modulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Seleziona la Registrazione da Eseguire" @@ -8942,11 +8994,11 @@ msgstr "Seleziona la Registrazione da Eseguire" msgid "Select the Virtual SD Card Root" msgstr "Seleziona la directory principale per la Scheda SD Virtuale" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Seleziona il file contenente le chiavi (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleziona il file di salvataggio" @@ -9180,7 +9232,7 @@ msgstr "" msgid "Settings" msgstr "Impostazioni" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Impossibile creare il file setting.txt" @@ -9335,7 +9387,7 @@ msgstr "Mostra Russia" msgid "Show Spain" msgstr "Mostra Spagna" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Mostra Informazioni" @@ -9374,12 +9426,12 @@ msgstr "Mostra in &memoria" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "Mostra in Codice" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "Mostra in Memoria" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -9387,7 +9439,7 @@ msgstr "Mostra nel codice" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "Mostra in memoria" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9433,7 +9485,7 @@ msgstr "" "

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9634,7 +9686,7 @@ msgstr "Specializzato (Default)" msgid "Specific" msgstr "Specifico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9890,8 +9942,8 @@ msgstr "Stilo" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9916,7 +9968,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Esportati con successo %n file di salvataggio su %1." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "File di salvataggio esportati con successo" @@ -9936,12 +9988,12 @@ msgstr "Dati di sistema estratti con successo." msgid "Successfully imported save file." msgstr "Salvataggio importato con successo." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Il titolo è stato installato con successo su NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Il titolo è stato rimosso con successo dalla NAND." @@ -10089,7 +10141,7 @@ msgid "TAS Tools" msgstr "Strumenti TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10126,11 +10178,11 @@ msgstr "Cache Texture" msgid "Texture Cache Accuracy" msgstr "Accuratezza Cache Texture" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Dump delle Texture" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Overlay Formato Texture" @@ -10306,6 +10358,9 @@ msgid "" "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"Il nome %1 non è conforme al formato codici regione Dolphin per le memory " +"card. Rinomina questo file in %2, %3 o %4 per corrispondere alla regione dei " +"salvataggi presenti all'interno." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." @@ -10580,8 +10635,14 @@ msgid "" msgstr "" "Questo simulatore di action replay non supporta codici automodificanti." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Impossibile annullare l'operazione!" @@ -10722,7 +10783,7 @@ msgstr "Questo titolo è impostato per utilizzare un IOS non valido." msgid "This title is set to use an invalid common key." msgstr "Questo titolo è impostato per utilizzare una common key non valida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10734,7 +10795,7 @@ msgstr "" "\n" "DSPHLE: Ucode sconosciuto (CRC = {0:08x}) - AX forzato" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10793,7 +10854,7 @@ msgstr "Thread" msgid "Threshold" msgstr "Sensibilità" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10810,7 +10871,7 @@ msgstr "" "Tempo di input stabile richiesto per iniziare la calibrazione. (zero per " "disabilitare)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11136,7 +11197,7 @@ msgstr "Disinstalla" msgid "Uninstall from the NAND" msgstr "Disinstalla dalla NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11341,7 +11402,7 @@ msgstr "Usa Database Interno per i Nomi dei Giochi" msgid "Use Custom User Style" msgstr "Usa Stile Utente Personalizzato" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Usa Codec Lossless (FFV1)" @@ -11353,7 +11414,7 @@ msgstr "Usa Modalità PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Avvisi di Errore" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11523,7 +11584,7 @@ msgstr "Solitamente usato per matrici di posizione" msgid "Usually used for tex coord matrices" msgstr "Solitamente usato per matrici di coordinate di texture" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilità" @@ -11548,7 +11609,7 @@ msgstr "Velocità" msgid "Verbosity" msgstr "Verbosità" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verifica" @@ -11863,7 +11924,7 @@ msgstr "Occidentale (Windows-1252)" msgid "Whammy" msgstr "Tremolo" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11875,7 +11936,7 @@ msgstr "" "Arbitraria' è abilitato in Miglioramenti.

Nel " "dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " @@ -12030,19 +12091,19 @@ msgstr "Scrivi in Finestra" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "Numero del disco errato" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "Hash errato" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "Regione errata" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "Revisione errata" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 diff --git a/Languages/po/ja.po b/Languages/po/ja.po index 7df646b96a..a630095834 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2021\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -95,7 +95,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -566,6 +567,10 @@ msgstr "プロパティ(&P)" msgid "&Read-Only Mode" msgstr "読み込み専用(&R)" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registers" @@ -690,7 +695,7 @@ msgstr "- Subtract(減算)" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -900,8 +905,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Greater-than(より大きい)" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "ネットプレイのセッションは既に進行中です!" @@ -929,7 +934,7 @@ msgstr "ディスクは既に挿入されています。" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "起動するタイトルを指定せずにステートセーブをロードすることはできません" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -976,7 +981,7 @@ msgstr "" msgid "AR Code" msgstr "アクションリプレイコード" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "アクションリプレイコード" @@ -1204,6 +1209,11 @@ msgstr "" msgid "Address:" msgstr "Address:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1261,10 +1271,15 @@ msgstr "アドバンスコネクタ" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "高度な設定" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "アフリカ" @@ -1281,7 +1296,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1298,7 +1313,7 @@ msgstr "すべてのファイル (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1307,8 +1322,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "全てのステートセーブファイル (*.sav *.s##);; 全てのファイル (*)" @@ -1461,7 +1476,7 @@ msgstr "Arbitrary Mipmap Detection" msgid "Are you sure that you want to delete '%1'?" msgstr "次のプロファイルを削除しますか? '%1'" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "このタイトルの実体ファイルを削除しますか?" @@ -1580,7 +1595,7 @@ msgid "Auxiliary" msgstr "Auxiliary" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1612,7 +1627,7 @@ msgstr "Back Chain" msgid "Backend" msgstr "ビデオAPI" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Backend Multithreading" @@ -1660,7 +1675,7 @@ msgstr "Bad offset provided." msgid "Bad value provided." msgstr "Bad value provided." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1723,11 +1738,11 @@ msgstr "Binary SSL (read)" msgid "Binary SSL (write)" msgstr "Binary SSL (write)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "ビットレート (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1772,15 +1787,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Boot to Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND バックアップファイル (*.bin);;すべてのファイル (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii キー ファイル (*.bin);;すべてのファイル (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "ボーダレス フルスクリーン" @@ -1886,6 +1901,10 @@ msgstr "ボタン" msgid "Buttons" msgstr "ボタン" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1916,7 +1935,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Cached Interpreter (低速)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1981,8 +2000,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "ゲーム実行中はネットプレイセッションを開始できません!" @@ -2012,7 +2031,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "GC IPLが見つかりません" @@ -2024,7 +2043,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "GC IPLが見つからないため、ゲームを開始できませんでした。" @@ -2115,7 +2134,7 @@ msgstr "ゲームリストの状態を監視" msgid "Check for updates" msgstr "最新版の入手先:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2245,7 +2264,7 @@ msgstr "ゲーム開始前にシェーダをコンパイルする" msgid "Compiling Shaders" msgstr "シェーダをコンパイル中..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2283,6 +2302,7 @@ msgid "Configure Controller" msgstr "操作設定" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Dolphinの設定" @@ -2297,10 +2317,10 @@ msgstr "出力設定" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "確認" @@ -2700,7 +2720,7 @@ msgstr "新しくメモリーカードを作成" msgid "Create..." msgstr "作成" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2718,11 +2738,11 @@ msgstr "制作者: " msgid "Critical" msgstr "致命的なエラー" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "クロッピング" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2867,7 +2887,7 @@ msgstr "データが受信されました!" msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 形式" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "遊びの調整" @@ -2880,7 +2900,7 @@ msgstr "デバッグ" msgid "Debug Only" msgstr "デバッグ用" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "デバッグ用" @@ -2947,7 +2967,7 @@ msgstr "デフォルトISO" msgid "Default thread" msgstr "Default thread" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Defer EFB Cache Invalidation" @@ -2955,7 +2975,7 @@ msgstr "Defer EFB Cache Invalidation" msgid "Defer EFB Copies to RAM" msgstr "Defer EFB Copies to RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2998,7 +3018,7 @@ msgstr "深度 (Depth):" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3010,6 +3030,10 @@ msgstr "説明" msgid "Description:" msgstr "説明" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Detached" @@ -3105,7 +3129,7 @@ msgstr "Disable Bounding Box" msgid "Disable Copy Filter" msgstr "Disable Copy Filter" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Disable EFB VRAM Copies" @@ -3139,7 +3163,7 @@ msgstr "" "すが、タイトルによっては不具合が発生します。

よく分" "からなければ、チェックを外さないでください。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
よく分か" "らなければ、チェックを入れないでください。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3606,7 +3630,7 @@ msgstr "Effective" msgid "Effective priority" msgstr "Effective priority" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3655,14 +3679,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "有効" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Enable API Validation Layers" @@ -3698,12 +3722,16 @@ msgstr "Memory Size Override を有効化" msgid "Enable FPRF" msgstr "Enable FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Enable MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "プログレッシブ表示を有効化" @@ -3724,7 +3752,7 @@ msgstr "Wiiリモコンのスピーカーを有効化" msgid "Enable Usage Statistics Reporting" msgstr "統計レポートの収集に協力する" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "ワイヤーフレームを有効化" @@ -3783,7 +3811,7 @@ msgstr "" "ディング」と互換性がありません。

よく分からなけれ" "ば、チェックを外さないでください。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3791,7 +3819,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3826,7 +3854,7 @@ msgstr "" "メモリ管理機構を有効にします。いくつかのタイトルで必要です [有効=互換性重視" "/無効=速度向上]" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3834,7 +3862,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3936,12 +3964,12 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4158,7 +4186,7 @@ msgstr "入力値の検証:入力待ち" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "実験的" @@ -4334,7 +4362,7 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "ネットプレイ メモリカードの削除に失敗しました。書き込み権限を確認してください" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "選択したファイルの削除に失敗しました" @@ -4359,7 +4387,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "次のセーブファイルをエクスポートできませんでした:" @@ -4408,7 +4436,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Failed to init core" @@ -4428,12 +4456,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "リソースパック %1 をインストールできませんでした" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "タイトルのインストールに失敗" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4469,7 +4497,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' のオープンに失敗しました" @@ -4502,7 +4530,7 @@ msgstr "" msgid "Failed to open file." msgstr "ファイルを" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "サーバーを開けませんでした" @@ -4560,7 +4588,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "タイトルの消去に失敗" @@ -4641,9 +4669,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "失敗" @@ -4684,7 +4712,7 @@ msgstr "視野角(Field of View)" msgid "File Details" msgstr "ファイル情報" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4698,19 +4726,19 @@ msgstr "ファイル形式:" msgid "File Info" msgstr "ファイル情報" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "ファイル名" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "ファイルサイズ" @@ -4746,7 +4774,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "Filesize in header mismatches actual card size." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "構造" @@ -4936,7 +4964,7 @@ msgstr "Frame Advance速度 増加" msgid "Frame Advance Reset Speed" msgstr "Frame Advance速度 リセット" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Frame Dumping" @@ -4944,7 +4972,7 @@ msgstr "Frame Dumping" msgid "Frame Range" msgstr "フレームの範囲" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -5215,7 +5243,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "ゲーム設定" @@ -5227,7 +5255,7 @@ msgstr "ゲーム情報" msgid "Game Folders" msgstr "ゲームファイルのあるフォルダ" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ゲームID" @@ -5329,8 +5357,12 @@ msgstr "ゲームキューブ マイク スロット %1" msgid "GameCube TAS Input %1" msgstr "TAS Input ゲームキューブ コントローラ %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Geckoコード" @@ -5380,7 +5412,7 @@ msgstr "ドイツ" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5398,11 +5430,19 @@ msgstr "Good dump" msgid "Graphics" msgstr "ビデオ" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "グラフィック設定 切替" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5780,7 +5820,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Immediately Present XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5813,11 +5853,11 @@ msgstr "セーブファイルのインポート" msgid "Import Wii Save..." msgstr "Wii セーブデータのインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "NAND バックアップをインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5889,13 +5929,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "情報" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5919,7 +5959,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -6248,7 +6288,7 @@ msgstr "キーボード" msgid "Keys" msgstr "キー" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6406,7 +6446,7 @@ msgstr "Load &Bad Map File..." msgid "Load &Other Map File..." msgstr "Load &Other Map File..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "カスタムテクスチャを読み込む" @@ -6553,7 +6593,7 @@ msgstr "読込" msgid "Loaded symbols from '%1'" msgstr "Loaded symbols from '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6564,6 +6604,12 @@ msgstr "" "User/Load/DynamicInputTextures/<game_id>/

よく" "分からなければ、チェックを入れないでください。" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "IPアドレスと使用ポート番号" @@ -6649,7 +6695,7 @@ msgstr "MadCatz Gameshark 形式" msgid "Main Stick" msgstr "コントロールスティック" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6676,7 +6722,7 @@ msgstr "" msgid "Manage NAND" msgstr "Wii NANDの管理" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6752,7 +6798,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6766,7 +6812,7 @@ msgstr "" "\n" "続行しますか?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6776,7 +6822,7 @@ msgstr "MiB" msgid "Microphone" msgstr "マイク" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "その他" @@ -6809,7 +6855,7 @@ msgstr "" msgid "Modifier" msgstr "感度変更" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6920,11 +6966,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "名前" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "新しいタグに名前を付ける:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "削除するタグ名を入力" @@ -7016,7 +7062,7 @@ msgstr "新しいIDが作成されました。" msgid "New instruction:" msgstr "New instruction:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "新しいタグ" @@ -7137,7 +7183,7 @@ msgstr "" msgid "No recording loaded." msgstr "記録ファイルが読み込まれていません" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "セーブデータが見つかりませんでした" @@ -7420,11 +7466,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7490,7 +7536,7 @@ msgstr "パッチエディタ" msgid "Patch name" msgstr "パッチ名を入力..." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "パッチ" @@ -7552,7 +7598,7 @@ msgstr "Physical" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7572,7 +7618,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "機種" @@ -7643,7 +7689,7 @@ msgstr "ポストプロセス:" msgid "Post-Processing Shader Configuration" msgstr "ポストプロセスシェーダーの設定" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "カスタムテクスチャの事前読込" @@ -7798,7 +7844,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "確認" @@ -7982,7 +8028,7 @@ msgstr "" msgid "Refreshing..." msgstr "セッションリストを更新中..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8029,7 +8075,7 @@ msgstr "不要データを消去 (不可逆処理):" msgid "Remove Tag..." msgstr "タグの削除" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "タグを削除" @@ -8061,7 +8107,7 @@ msgstr "メインウィンドウ部分に描画" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8086,6 +8132,7 @@ msgstr "参加要請" msgid "Reset" msgstr "初期化" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -8313,8 +8360,8 @@ msgstr "保存" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8352,7 +8399,7 @@ msgstr "最古のステートに上書き保存" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8569,7 +8616,7 @@ msgstr "選択" msgid "Select Dump Path" msgstr "ダンプ先を選択" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "エクスポート先フォルダを選択" @@ -8670,9 +8717,9 @@ msgstr "フォルダを選択" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "ファイルを選択" @@ -8704,7 +8751,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Select the RSO module address:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8712,11 +8759,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "キーファイル (OTP/SEEPROM ダンプ)を選択" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "セーブファイルを選択" @@ -8938,7 +8985,7 @@ msgstr "" msgid "Settings" msgstr "設定" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Can't create setting.txt file" @@ -9091,7 +9138,7 @@ msgstr "ロシア" msgid "Show Spain" msgstr "スペイン" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "統計情報を表示" @@ -9189,7 +9236,7 @@ msgstr "" "

よく分からなければ、チェックを入れないでください。" "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9390,7 +9437,7 @@ msgstr "Specialized (既定)" msgid "Specific" msgstr "Specific" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9637,8 +9684,8 @@ msgstr "スタイラス" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9663,7 +9710,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "セーブファイルのエクスポートに成功しました" @@ -9683,12 +9730,12 @@ msgstr "システムデータの取り出しに成功しました" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "タイトルのインストールに成功しました" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "タイトルの消去に成功しました" @@ -9831,7 +9878,7 @@ msgid "TAS Tools" msgstr "TAS関係" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9868,11 +9915,11 @@ msgstr "Texture Cache" msgid "Texture Cache Accuracy" msgstr "テクスチャキャッシュの精度" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Texture Dumping" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "テクスチャフォーマット情報表示" @@ -10279,8 +10326,14 @@ msgstr "" "このアクションリプレイシミュレータは、アクションリプレイそのものを変更する" "コードはサポートしていません。" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "元に戻すことはできません!" @@ -10401,7 +10454,7 @@ msgstr "This title is set to use an invalid IOS." msgid "This title is set to use an invalid common key." msgstr "This title is set to use an invalid common key." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10413,7 +10466,7 @@ msgstr "" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10462,7 +10515,7 @@ msgstr "Threads" msgid "Threshold" msgstr "しきい値" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10477,7 +10530,7 @@ msgstr "傾き" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10798,7 +10851,7 @@ msgstr "アンインストール" msgid "Uninstall from the NAND" msgstr "NANDからアンインストール" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10995,7 +11048,7 @@ msgstr "ゲーム名の表記に内蔵リストを使用" msgid "Use Custom User Style" msgstr "カスタムテーマを使用 (Custom User Style)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Use Lossless Codec (FFV1)" @@ -11007,7 +11060,7 @@ msgstr "PAL60 (EuRGB60) モードを使用" msgid "Use Panic Handlers" msgstr "パニックハンドラを使用" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11139,7 +11192,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "ユーティリティ" @@ -11164,7 +11217,7 @@ msgstr "" msgid "Verbosity" msgstr "出力するログのレベル設定" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "整合性" @@ -11429,7 +11482,7 @@ msgstr "欧米用 (Windows-1252)" msgid "Whammy" msgstr "ワーミー" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11437,7 +11490,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/ko.po b/Languages/po/ko.po index c37f170ca5..9a508c9557 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -87,7 +87,8 @@ msgstr "$ 사용자 변수" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -558,6 +559,10 @@ msgstr "속성(&P)" msgid "&Read-Only Mode" msgstr "읽기 전용 모드(&R)" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "레지스터 (&R)" @@ -682,7 +687,7 @@ msgstr "- 빼기" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -893,8 +898,8 @@ msgstr "" msgid "> Greater-than" msgstr "> 보다-큰" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "넷플레이 세션이 이미 진행 중입니다!" @@ -922,7 +927,7 @@ msgstr "디스크가 이미 삽입되려는 중입니다." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "저장 상태는 시작할 게임 명시 없이는 로드될 수 없습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -971,7 +976,7 @@ msgstr "" msgid "AR Code" msgstr "AR 코드" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR 코드" @@ -1199,6 +1204,11 @@ msgstr "CPU 상태에 의한 주소 공간" msgid "Address:" msgstr "주소:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1253,10 +1263,15 @@ msgstr "고급 게임 포트" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "고급" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "아프리카" @@ -1273,7 +1288,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1290,7 +1305,7 @@ msgstr "모든 파일 (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "모든 GC/Wii 파일들" @@ -1299,8 +1314,8 @@ msgstr "모든 GC/Wii 파일들" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "모든 저장 상태 (*.sav *.s##);; 모든 파일 (*)" @@ -1452,7 +1467,7 @@ msgstr "독단적 밉맵 감지" msgid "Are you sure that you want to delete '%1'?" msgstr "'%1' 를 정말로 지우고 싶습니까?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "이 파일을 정말로 삭제하시겠습니까?" @@ -1568,7 +1583,7 @@ msgid "Auxiliary" msgstr "보조" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1603,7 +1618,7 @@ msgstr "백 체인" msgid "Backend" msgstr "백엔드" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "백엔드 멀티쓰레딩" @@ -1651,7 +1666,7 @@ msgstr "안 좋은 오프셋이 제공되었습니다." msgid "Bad value provided." msgstr "안 좋은 값이 제공되었습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1714,11 +1729,11 @@ msgstr "바이너리 SSL (읽기)" msgid "Binary SSL (write)" msgstr "바이너리 SSL (쓰기)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "비트레이트 (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1762,15 +1777,15 @@ msgstr "" msgid "Boot to Pause" msgstr "부팅하고 멈추기" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 백업 파일 (*.bin);;모든 파일 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 키 파일 (*.bin);;모든 파일 (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "틀 없는 전체화면" @@ -1878,6 +1893,10 @@ msgstr "버튼" msgid "Buttons" msgstr "버튼" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1908,7 +1927,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "캐시된 인터프리터 (더 느림)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1973,8 +1992,8 @@ msgstr "가상 메모리 값용 AR 코드만 생성할 수 있습니다." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} 연결 핸들로 Wii 리모트를 찾을 수 없음" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "게임이 여전히 구동되는 동안에 넷플레이 세션을 시작할 수 없습니다!" @@ -2003,7 +2022,7 @@ msgstr "NAND 에 설치될 수 없기 때문에 이 WAD 를 부팅할 수 없습 msgid "Cannot compare against last value on first search." msgstr "첫 검색의 마지막 값과 비교할 수 없습니다." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "GC IPL 을 찾을 수 없습니다." @@ -2015,7 +2034,7 @@ msgstr "이 주소에 대한 AR 코드를 생성할 수 없습니다." msgid "Cannot refresh without results." msgstr "결과 없이 새로할 수 없습니다." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "GC IPL 을 찾을 수 없어서, 게임을 시작할 수 없습니다." @@ -2109,7 +2128,7 @@ msgstr "게임 목록 변경을 백그라운드로 체크" msgid "Check for updates" msgstr "업데이트 확인" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2240,7 +2259,7 @@ msgstr "시작하기 전에 쉐이더들 컴파일" msgid "Compiling Shaders" msgstr "쉐이더들 컴파일하기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2278,6 +2297,7 @@ msgid "Configure Controller" msgstr "컨트롤러 설정" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "돌핀 환경설정" @@ -2292,10 +2312,10 @@ msgstr "출력 설정" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "확정" @@ -2719,7 +2739,7 @@ msgstr "새로운 메모리 카트 생성" msgid "Create..." msgstr "생성..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2742,11 +2762,11 @@ msgstr "만든이:" msgid "Critical" msgstr "치명적" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "자르기" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2890,7 +2910,7 @@ msgstr "데이터를 받았습니다!" msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 파일" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "데드 존" @@ -2903,7 +2923,7 @@ msgstr "디버그" msgid "Debug Only" msgstr "디버그 전용" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "디버깅" @@ -2970,7 +2990,7 @@ msgstr "기본 ISO:" msgid "Default thread" msgstr "기본 쓰레드" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "EFB 캐시 무효화를 연기" @@ -2978,7 +2998,7 @@ msgstr "EFB 캐시 무효화를 연기" msgid "Defer EFB Copies to RAM" msgstr "EFB 램에 복사 연기" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3026,7 +3046,7 @@ msgstr "깊이:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3038,6 +3058,10 @@ msgstr "설명" msgid "Description:" msgstr "설명:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "떨어진" @@ -3133,7 +3157,7 @@ msgstr "바운딩 박스 끄기" msgid "Disable Copy Filter" msgstr "복사 필터 비활성" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "EFB 비디오램 복사 비활성" @@ -3167,7 +3191,7 @@ msgstr "" "도 모릅니다, 하지만 일부 게임은 깨질 것입니다.

잘 모" "르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
잘 모르겠으면, 체크 해제" "해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3569,7 +3593,7 @@ msgstr "" "User/Dump/Textures/로 EFB 복사의 내용을 덤프합니다.

" "잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3649,7 +3673,7 @@ msgstr "효과적인" msgid "Effective priority" msgstr "효율 우선순위" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3698,14 +3722,14 @@ msgstr "녹화하려면 에뮬레이션이 시작되어야 합니다" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "활성" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "API 검증 레이어 활성화" @@ -3741,12 +3765,16 @@ msgstr "에뮬된 메모리 크기 오버라이드 활성화" msgid "Enable FPRF" msgstr "FPRF 활성화" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "MMU 활성화" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "프로그레시브 스캔 활성화" @@ -3767,7 +3795,7 @@ msgstr "스피커 데이터 활성화" msgid "Enable Usage Statistics Reporting" msgstr "사용 통계 보고 활성화" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "와이어프레임 활성화" @@ -3823,7 +3851,7 @@ msgstr "" "일 수도 있습니다. 이 특성은 GPU 텍스처 디코딩과는 호환되지 않습니다." "

잘 모르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3835,7 +3863,7 @@ msgstr "" "것은 Vulkan 백엔드 한정입니다.

잘 모르겠으면, 체크" "해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3870,7 +3898,7 @@ msgstr "" "일부 게임들에 필요한 메모리 관리 유닛을 활성화 합니다. (켬 = 호환성, 끔 = 빠" "름)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3882,7 +3910,7 @@ msgstr "" "쉐이더용 디버그 부호를 활성화합니다.

잘 모르겠으면, " "체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3984,12 +4012,12 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4222,7 +4250,7 @@ msgstr "표현식의 시작을 예상했습니다." msgid "Expected variable name." msgstr "변수 이름을 예상했습니다." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "실험적" @@ -4397,7 +4425,7 @@ msgstr "넷플레이 GBA{0} 저장 파일 삭제에 실패했습니다. 쓰기 msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "넷플레이 메모리 카드를 삭제에 실패했습니다. 쓰기 권한을 검증하세요." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "선택된 파일 삭제에 실패했습니다." @@ -4422,7 +4450,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "%1 저장 파일(들)로부터 %n 를 내보내기에 실패했습니다 ." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "다음 저장 파일들을 내보내기에 실패했습니다:" @@ -4481,7 +4509,7 @@ msgstr "" "것이 그 안에 파일들에 액세스를 막고 있습니다. NAND (도구 -> NAND 관리 -> " "NAND 체크...) 를 고쳐 보세요, 그런 후 저장을 다시 가져오세요." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "코어 인식에 실패했습니다" @@ -4504,12 +4532,12 @@ msgstr "렌더러 클래스 초기화에 실패했습니다" msgid "Failed to install pack: %1" msgstr "팩 설치에 실패했습니다: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "NAND 에 이 타이틀 설치에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4547,7 +4575,7 @@ msgstr "" "설치해보세요." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' 를 열기에 실패했습니다" @@ -4580,7 +4608,7 @@ msgstr "" msgid "Failed to open file." msgstr "파일 열기에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "서버 열기에 실패했습니다" @@ -4644,7 +4672,7 @@ msgstr "" "\n" "정크 데이터 제거 없이 변환 하시겠습니까?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "NAND 에서 이 타이틀 제거에 실패했습니다." @@ -4724,9 +4752,9 @@ msgstr "" "출력 파일 \"{0}\" 를 쓰지 못했습니다.\n" "타겟 드라이브에 충분한 여유 공간이 있는지 확인하세요." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "실패" @@ -4769,7 +4797,7 @@ msgstr "시야" msgid "File Details" msgstr "파일 세부사항" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4783,19 +4811,19 @@ msgstr "파일 형식:" msgid "File Info" msgstr "파일 정보" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "파일 이름" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "파일 경로" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "파일 크기" @@ -4832,7 +4860,7 @@ msgstr "파일크기가 어떤 알려진 게임큐브 메모리 카트 크기와 msgid "Filesize in header mismatches actual card size." msgstr "헤더안 파일크기가 실제 카드 크기와 맞지 않습니다." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "파일 시스템" @@ -5026,7 +5054,7 @@ msgstr "프레임 진행 속도 증가" msgid "Frame Advance Reset Speed" msgstr "프레임 진행 속도 리셋" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "프레임 덤핑" @@ -5034,7 +5062,7 @@ msgstr "프레임 덤핑" msgid "Frame Range" msgstr "프레임 범위" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "프레임 덤프 이미지(들) '{0}' 가 이미 존재합니다. 덮어쓰시겠습니까?" @@ -5313,7 +5341,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "포트 %1 에 게임 보이 어드밴스" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "게임 환경" @@ -5325,7 +5353,7 @@ msgstr "게임 세부사항" msgid "Game Folders" msgstr "게임 폴더들" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "게임 ID" @@ -5428,8 +5456,12 @@ msgstr "게임큐브 마이크 슬롯 %1" msgid "GameCube TAS Input %1" msgstr "게임큐브 TAS 입력 %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko 코드" @@ -5479,7 +5511,7 @@ msgstr "독일" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5497,11 +5529,19 @@ msgstr "좋은 덤프" msgid "Graphics" msgstr "그래픽" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "그래픽 토글" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5890,7 +5930,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "XFB 를 즉시 표시합니다" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5923,11 +5963,11 @@ msgstr "저장 파일(들)을 가져오기" msgid "Import Wii Save..." msgstr "Wii 저장 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "NAND 백업 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5999,13 +6039,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "증분 회전 (rad/sec)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "정보" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6029,7 +6069,7 @@ msgid "Input strength required for activation." msgstr "활성에 필요한 힘을 입력하세요." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "무시하고 리매핑할 힘을 입력하세요." @@ -6357,7 +6397,7 @@ msgstr "키보드" msgid "Keys" msgstr "키" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6515,7 +6555,7 @@ msgstr "배드 맵 파일 로드... (&B)" msgid "Load &Other Map File..." msgstr "다른 맵 파일 로드... (&O)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "커스텀 텍스처 로드" @@ -6662,7 +6702,7 @@ msgstr "로드..." msgid "Loaded symbols from '%1'" msgstr "'%1' 에서 부호들이 로드되었습니다" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6672,6 +6712,12 @@ msgstr "" "game_id>/ 에서 커스텀 텍스처를 로드합니다.

잘 모" "르겠으면, 체크 해제해 두세요." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "지역" @@ -6756,7 +6802,7 @@ msgstr "MadCatz Gameshark 파일" msgid "Main Stick" msgstr "메인 스틱" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6783,7 +6829,7 @@ msgstr "" msgid "Manage NAND" msgstr "NAND 관리" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "수동 텍스처 샘플링" @@ -6857,7 +6903,7 @@ msgstr "메모리카드: 부적합 소스 주소로 호출된 읽기 ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "메모리카드: 부적합 목적지 주소로 호출된 쓰기 ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6868,7 +6914,7 @@ msgstr "" "장들을 덮어쓰게 됩니다. 이 처리는 되돌릴 수 없습니다, 따라서 두 NAND 를 계속 " "백업할 것을 권장합니다. 정말 계속합니까?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6878,7 +6924,7 @@ msgstr "MiB" msgid "Microphone" msgstr "마이크" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "기타" @@ -6917,7 +6963,7 @@ msgstr "" msgid "Modifier" msgstr "수정자" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7028,11 +7074,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "이름" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "새로운 태그 이름:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "제거할 태그의 이름:" @@ -7124,7 +7170,7 @@ msgstr "새로운 식별자가 생성되었습니다." msgid "New instruction:" msgstr "새로운 명령:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "새로운 태그" @@ -7245,7 +7291,7 @@ msgstr "게임 설정 '{0}' 에 대한 프로파일이 없음" msgid "No recording loaded." msgstr "로드된 녹화가 없습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "발견된 저장 데이터가 없습니다." @@ -7528,11 +7574,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "PNG 압축 레블" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG 압축 레블:" @@ -7598,7 +7644,7 @@ msgstr "패치 에디터" msgid "Patch name" msgstr "패치 이름" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "패치" @@ -7660,7 +7706,7 @@ msgstr "피지컬" msgid "Physical address space" msgstr "물리적 주소 공간" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7680,7 +7726,7 @@ msgstr "피치 내리기" msgid "Pitch Up" msgstr "피치 올리기" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "플랫폼" @@ -7751,7 +7797,7 @@ msgstr "후-처리 효과:" msgid "Post-Processing Shader Configuration" msgstr "후-처리 쉐이더 환경설정" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "커스텀 텍스처 프리패치" @@ -7906,7 +7952,7 @@ msgstr "DPLII 디코더의 품질. 오디오 지연이 품질로 증가합니다 #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "질문" @@ -8090,7 +8136,7 @@ msgstr "현재 값들을 새로했습니다." msgid "Refreshing..." msgstr "새로고침..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8137,7 +8183,7 @@ msgstr "정크 데이터 제거 (되돌릴 수 없음):" msgid "Remove Tag..." msgstr "태그 제거..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "태그 제거" @@ -8168,7 +8214,7 @@ msgstr "메인 창에 렌더" msgid "Rendering" msgstr "렌더링" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8193,6 +8239,7 @@ msgstr "당신의 파티로 참여 요청" msgid "Reset" msgstr "리셋" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "모두 리셋" @@ -8424,8 +8471,8 @@ msgstr "저장" msgid "Save All" msgstr "모두 저장" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "저장 내보내기" @@ -8463,7 +8510,7 @@ msgstr "가장 오래된 상태 저장" msgid "Save Preset" msgstr "프리셋 저장" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "녹화 파일을 다른 이름으로 저장" @@ -8682,7 +8729,7 @@ msgstr "선택" msgid "Select Dump Path" msgstr "덤프 경로 선택" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "내보내기 디렉토리 선택" @@ -8783,9 +8830,9 @@ msgstr "디렉토리 선택" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "파일 선택" @@ -8817,7 +8864,7 @@ msgstr "e-Reader 카드 선택" msgid "Select the RSO module address:" msgstr "RSO 모듈 주소 선택:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "플레이할 녹화 파일 선택" @@ -8825,11 +8872,11 @@ msgstr "플레이할 녹화 파일 선택" msgid "Select the Virtual SD Card Root" msgstr "가상 SD 카드 루트 선택" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "키 파일 선택 (OTP/SEEPROM 덤프)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "저장 파일을 선택" @@ -9057,7 +9104,7 @@ msgstr "" msgid "Settings" msgstr "설정" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "Wii메모리설정: setting.txt 파일을 생성할 수 없음" @@ -9212,7 +9259,7 @@ msgstr "러시아" msgid "Show Spain" msgstr "스페인" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "통계 보기" @@ -9310,7 +9357,7 @@ msgstr "" "

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9511,7 +9558,7 @@ msgstr "전문화된 (기본값)" msgid "Specific" msgstr "상세" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9763,8 +9810,8 @@ msgstr "스타일러스" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9789,7 +9836,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "%1 저장 파일(들)로부터 %n 를 성공적으로 내보냈습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "저장 파일들을 성공적으로 내보냈습니다" @@ -9809,12 +9856,12 @@ msgstr "성공적으로 시스템 데이터 압축을 풀었습니다." msgid "Successfully imported save file." msgstr "저장 파일을 성공적으로 내보냈습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "NAND 에 이 타이틀을 성공적으로 설치했습니다." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "NAND 에서 이 타이틀을 성공적으로 제거했습니다." @@ -9962,7 +10009,7 @@ msgid "TAS Tools" msgstr "TAS 도구" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9999,11 +10046,11 @@ msgstr "텍스처 캐시" msgid "Texture Cache Accuracy" msgstr "텍스처 캐시 정확도" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "텍스처 덤핑" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "텍스처 포맷 오버레이" @@ -10444,8 +10491,14 @@ msgstr "" "이 액션 리플레이 시뮬레이터는 액션 리플레이 스스로 수정한 코드를 지원하지 않" "습니다." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "이것은 되돌릴 수 없습니다!" @@ -10581,7 +10634,7 @@ msgstr "이 타이틀은 부적합 IOS 를 사용하도록 설정되어 있습 msgid "This title is set to use an invalid common key." msgstr "이 타이틀은 부적합 공유 키를 사용하도록 설정되어 있습니다." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10593,7 +10646,7 @@ msgstr "" "\n" "DSPHLE: 알려지지 않은 ucode (CRC = {0:08x}) - 강제 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10648,7 +10701,7 @@ msgstr "쓰레드" msgid "Threshold" msgstr "한계점" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10663,7 +10716,7 @@ msgstr "기울기" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "측정을 작동시키기 위한 안정적 입력 기간. (제로는 비활성)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10986,7 +11039,7 @@ msgstr "언인스톨" msgid "Uninstall from the NAND" msgstr "NAND 에서 언인스톨" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11189,7 +11242,7 @@ msgstr "내장된 데이터 베이스의 게임 이름 사용" msgid "Use Custom User Style" msgstr "맞춤형 사용자 스타일 사용" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "비손실 코덱 (FFV1) 사용" @@ -11201,7 +11254,7 @@ msgstr "PAL60 모드 (EuRGB60) 사용" msgid "Use Panic Handlers" msgstr "패닉 핸들러 사용" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11362,7 +11415,7 @@ msgstr "위치 메이트릭스들에 쓰입니다" msgid "Usually used for tex coord matrices" msgstr "보통 텍스처 좌표 메이트릭스들에 쓰입니다" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "유틸리티" @@ -11387,7 +11440,7 @@ msgstr "속도" msgid "Verbosity" msgstr "상세설명" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "검증" @@ -11689,7 +11742,7 @@ msgstr "웨스턴 (윈도우즈-1252)" msgid "Whammy" msgstr "훼미" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11701,7 +11754,7 @@ msgstr "" "를 포함합니다.

잘 모르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 81719c692a..d0599927c1 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -76,7 +76,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -547,6 +548,10 @@ msgstr "Si&fat" msgid "&Read-Only Mode" msgstr "Mod Ba&ca-Sahaja" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Daftar" @@ -671,7 +676,7 @@ msgstr "" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -879,8 +884,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Satu Sesi NetPlay sedang berlangsung!" @@ -902,7 +907,7 @@ msgstr "Cakera A sedia dimasukkan." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -939,7 +944,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Kod AR" @@ -1151,6 +1156,11 @@ msgstr "" msgid "Address:" msgstr "Alamat:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1197,10 +1207,15 @@ msgstr "Port Advance Game" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Lanjutan" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1217,7 +1232,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1234,7 +1249,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1243,8 +1258,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Semua Keadaan Simpan (*.sav *.s##);; Semua Fail (*)" @@ -1392,7 +1407,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Anda pasti mahu memadam '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Anda pasti ingin memadam fail ini?" @@ -1502,7 +1517,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1534,7 +1549,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1582,7 +1597,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1645,11 +1660,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1693,15 +1708,15 @@ msgstr "" msgid "Boot to Pause" msgstr "But untuk Dijeda" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Fail sandar NAND BootMii (*.bin);;Semua Fail (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fail kunci BootMii (*.bin);;Semua Fail (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Skrin Penuh Tanpa Sempadan" @@ -1807,6 +1822,10 @@ msgstr "Butang" msgid "Buttons" msgstr "Butang" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1837,7 +1856,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "Pentafsir bercache (lebih perlahan)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1894,8 +1913,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Tidak dapat memulakan Sesi NetPlay ketika permainan masih berlangsung!" @@ -1925,7 +1944,7 @@ msgstr "Tidak dapat membut WAD ini kerana ia tidak dipasang dengan NAND." msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Tidak dapat cari IPL GC." @@ -1937,7 +1956,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Tidak dapat memulakan permainan, kerana IPL GC tidak ditemui." @@ -2023,7 +2042,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2154,7 +2173,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2192,6 +2211,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Konfigur Dolphin" @@ -2206,10 +2226,10 @@ msgstr "Konfigur Output" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Sahkan" @@ -2593,7 +2613,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2611,11 +2631,11 @@ msgstr "Pencipta:" msgid "Critical" msgstr "Kritikal" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Kerat" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2753,7 +2773,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zon Mati" @@ -2766,7 +2786,7 @@ msgstr "" msgid "Debug Only" msgstr "Nyahpepijat Sahaja" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Menyahpepijat" @@ -2833,7 +2853,7 @@ msgstr "ISO Lalai:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2841,7 +2861,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2884,7 +2904,7 @@ msgstr "Kedalaman:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2896,6 +2916,10 @@ msgstr "Keterangan" msgid "Description:" msgstr "Keterangan:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2985,7 +3009,7 @@ msgstr "Lumpuhkan Kotak Pembatas" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -3016,7 +3040,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3454,7 +3478,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3500,14 +3524,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Benarkan Lapisan Pengesahan API" @@ -3543,12 +3567,16 @@ msgstr "" msgid "Enable FPRF" msgstr "Benarkan FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Benarkan MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Benarkan Imbas Progresif" @@ -3569,7 +3597,7 @@ msgstr "Benarkan Data Pembesar Suara" msgid "Enable Usage Statistics Reporting" msgstr "Benarkan Pelaporan Statistik Penggunaan" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Benarkan Bingkai Wayar" @@ -3616,7 +3644,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3624,7 +3652,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3652,7 +3680,7 @@ msgstr "" "Benarkan Unit Pengurusan Ingatan, diperlukan oleh sesetengah permainan. " "(HIDUP = Serasi, MATI = Pantas)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3660,7 +3688,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3756,12 +3784,12 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3977,7 +4005,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4150,7 +4178,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Gagal memadam fail terpilih." @@ -4175,7 +4203,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4224,7 +4252,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Gagal ke teras init" @@ -4244,12 +4272,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Gagal memasang tajuk ini ke NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4285,7 +4313,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Gagal membuka '%1'" @@ -4316,7 +4344,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Gagal membuka pelayan" @@ -4374,7 +4402,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Gagal membuang tajuk ini dari NAND." @@ -4451,9 +4479,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4494,7 +4522,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4508,19 +4536,19 @@ msgstr "" msgid "File Info" msgstr "Maklumat Fail" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nama Fail" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Saiz Fail" @@ -4555,7 +4583,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistem Fail" @@ -4731,7 +4759,7 @@ msgstr "Bingkai Lanjutan Tingkatkan Kelajuan" msgid "Frame Advance Reset Speed" msgstr "Bingkai Lanjutan Tetap Semula Kelajuan" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4739,7 +4767,7 @@ msgstr "" msgid "Frame Range" msgstr "Julat Bingkai" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4987,7 +5015,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Konfig Permainan" @@ -4999,7 +5027,7 @@ msgstr "" msgid "Game Folders" msgstr "Folder Permainan" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID Permainan" @@ -5101,8 +5129,12 @@ msgstr "Slot Mikrofon GameCube %1" msgid "GameCube TAS Input %1" msgstr "Input TAS GameCube %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Kod Gecko" @@ -5152,7 +5184,7 @@ msgstr "Jerman" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5170,11 +5202,19 @@ msgstr "" msgid "Graphics" msgstr "Grafik" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Togol Grafik" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5517,7 +5557,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Serta-Merta Hadirkan XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5545,11 +5585,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Import Simpan Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Mengimport sandar NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5617,13 +5657,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Maklumat" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5647,7 +5687,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5971,7 +6011,7 @@ msgstr "Papan Kekunci" msgid "Keys" msgstr "Kekunci" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6123,7 +6163,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "Muat Fail Peta &Lain..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Muat Tekstur Suai" @@ -6270,13 +6310,19 @@ msgstr "Muat..." msgid "Loaded symbols from '%1'" msgstr "Simbol dimuatkan dari '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6358,7 +6404,7 @@ msgstr "" msgid "Main Stick" msgstr "Bidak Utama" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6381,7 +6427,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6455,7 +6501,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6467,7 +6513,7 @@ msgstr "" "tidak boleh dikembalikan, oleh itu disarankan anda sandar kedua-dua NAND. " "Anda pasti mahu teruskan?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6477,7 +6523,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Pelbagai" @@ -6509,7 +6555,7 @@ msgstr "" msgid "Modifier" msgstr "Pengubahsuai" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6617,11 +6663,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6713,7 +6759,7 @@ msgstr "Identiti baharu dijanakan." msgid "New instruction:" msgstr "Arahan baharu:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6831,7 +6877,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7108,11 +7154,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7178,7 +7224,7 @@ msgstr "Penyunting Tampalan" msgid "Patch name" msgstr "Nama tampalan" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Tampalan" @@ -7240,7 +7286,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7260,7 +7306,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7333,7 +7379,7 @@ msgstr "Kesan Pasca-Pemprosesan:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Dapatkan Tekstur Suai" @@ -7478,7 +7524,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Soalan" @@ -7656,7 +7702,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7703,7 +7749,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7731,7 +7777,7 @@ msgstr "Terap ke Tetingkap Utama" msgid "Rendering" msgstr "Penerapan" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7754,6 +7800,7 @@ msgstr "" msgid "Reset" msgstr "Tetap Semula" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7981,8 +8028,8 @@ msgstr "Simpan" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8020,7 +8067,7 @@ msgstr "Simpan Keadaan Terlama" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8236,7 +8283,7 @@ msgstr "Pilih" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8337,9 +8384,9 @@ msgstr "Pilih satu Direktori" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Pilih satu Fail" @@ -8371,7 +8418,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8379,11 +8426,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Pilih fail kunci (longgok OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Pilih fail simpan" @@ -8576,7 +8623,7 @@ msgstr "" msgid "Settings" msgstr "Tetapan" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Tidak dapat cipta fail setting.txt" @@ -8729,7 +8776,7 @@ msgstr "Tunjuk Rusia" msgid "Show Spain" msgstr "Tunjuk Sepanyol" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Tunjuk Statistik" @@ -8816,7 +8863,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9006,7 +9053,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9243,8 +9290,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9269,7 +9316,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Berjaya mengimport fail simpan" @@ -9289,12 +9336,12 @@ msgstr "Berjaya mengekstrak data sistem." msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Berjaya memasang tajuk ini ke NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Berjaya membuang tajuk ini dari NAND." @@ -9432,7 +9479,7 @@ msgid "TAS Tools" msgstr "Alatan TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9469,11 +9516,11 @@ msgstr "Tekstur Cache" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Tindihan Format Tekstur" @@ -9875,8 +9922,14 @@ msgstr "" "Simulatro action replay ini tidak menyokong kod yang mana Action Replay yang " "sendiri mengubahsuai." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Ia tidak boleh dikembalikan!" @@ -9991,7 +10044,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9999,7 +10052,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Threshold" msgstr "Ambang" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10062,7 +10115,7 @@ msgstr "Condong" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10367,7 +10420,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "Nyahpasang dari NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10565,7 +10618,7 @@ msgstr "Guna Pangkalan Data Terbina-Dalam Nama Permainan" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10577,7 +10630,7 @@ msgstr "Guna Mod PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Guna Pengendali Panik" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10700,7 +10753,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utiliti" @@ -10725,7 +10778,7 @@ msgstr "" msgid "Verbosity" msgstr "Kejelaan" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10977,7 +11030,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10985,7 +11038,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/nb.po b/Languages/po/nb.po index 1162edb737..9e83122e1d 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -95,7 +95,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -566,6 +567,10 @@ msgstr "&Egenskaper" msgid "&Read-Only Mode" msgstr "&Skrivebeskyttet modus" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registere" @@ -690,7 +695,7 @@ msgstr "- Trekk fra" msgid "--> %1" msgstr "→ %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -901,8 +906,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Større enn" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "En NetPlay-økt finnes allerede!" @@ -924,7 +929,7 @@ msgstr "En plate er i ferd med å bli satt inn." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -972,7 +977,7 @@ msgstr "" msgid "AR Code" msgstr "AR-kode" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "" @@ -1184,6 +1189,11 @@ msgstr "" msgid "Address:" msgstr "Adresse:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1229,10 +1239,15 @@ msgstr "Advance-spillport" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avansert" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1249,7 +1264,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1266,7 +1281,7 @@ msgstr "Alle filer (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1275,8 +1290,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle lagringsstadier (*.sav *.s##);; Alle filer (*)" @@ -1424,7 +1439,7 @@ msgstr "Arbitrær Mipmap Oppdagelse" msgid "Are you sure that you want to delete '%1'?" msgstr "Er du sikker på at du vil slette \"%1\"?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Er du sikker på at du vil slette denne filen?" @@ -1538,7 +1553,7 @@ msgid "Auxiliary" msgstr "Støtte" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1570,7 +1585,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1618,7 +1633,7 @@ msgstr "" msgid "Bad value provided." msgstr "Dårlig verdi angitt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1681,11 +1696,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitfrekvens (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1729,15 +1744,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Start opp i pausemodus" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND sikkerhetskopifil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii nøkkelfil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Rammefri fullskjermsvisning" @@ -1843,6 +1858,10 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knapper" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1873,7 +1892,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Hurtiglagret fortolker (tregere)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1930,8 +1949,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan ikke starte en NetPlay-økt mens et spill er aktivt!" @@ -1961,7 +1980,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Finner ikke GC IPL." @@ -1973,7 +1992,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Kan ikke starte spillet, fordi GC IPL ikke ble funnet." @@ -2060,7 +2079,7 @@ msgstr "Sjekk for endringer i spillisten i bakgrunnen" msgid "Check for updates" msgstr "Se etter oppdateringer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2191,7 +2210,7 @@ msgstr "Kompiler shadere før start" msgid "Compiling Shaders" msgstr "Komplierer skygger" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2229,6 +2248,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Sett opp Dolphin" @@ -2243,10 +2263,10 @@ msgstr "Sett opp utdata" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekreft" @@ -2636,7 +2656,7 @@ msgstr "Opprett et nytt minnekort" msgid "Create..." msgstr "Opprett …" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2654,11 +2674,11 @@ msgstr "Skaper:" msgid "Critical" msgstr "Kritisk" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Beskjær" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2796,7 +2816,7 @@ msgstr "Data mottatt!" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Dødsone" @@ -2809,7 +2829,7 @@ msgstr "Feilsøk" msgid "Debug Only" msgstr "Kun feilretting" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Feilretting" @@ -2876,7 +2896,7 @@ msgstr "Forvalgt ISO-fil:" msgid "Default thread" msgstr "Standardtråd" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Utsett EFB cahce-invalidering" @@ -2884,7 +2904,7 @@ msgstr "Utsett EFB cahce-invalidering" msgid "Defer EFB Copies to RAM" msgstr "Utsett EFB Kopier til RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2927,7 +2947,7 @@ msgstr "Dybde:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2939,6 +2959,10 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Frakoblet" @@ -3028,7 +3052,7 @@ msgstr "Skru av bounding-box-kalkulasjoner" msgid "Disable Copy Filter" msgstr "Slå av Kopieringsfilter" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Slå av EFB VRAM Kopier" @@ -3059,7 +3083,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3498,7 +3522,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3544,14 +3568,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktiver" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Slå på API-valideringslag" @@ -3587,12 +3611,16 @@ msgstr "" msgid "Enable FPRF" msgstr "Aktiver FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Aktiver MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Aktiver progressiv skanning" @@ -3613,7 +3641,7 @@ msgstr "Tillat høyttalerdata" msgid "Enable Usage Statistics Reporting" msgstr "Skru på bruks- og statistikkrapportering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Aktiver wireframe" @@ -3660,7 +3688,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3668,7 +3696,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3696,7 +3724,7 @@ msgstr "" "Tillater Memory Management Unit (MMU), som trengs for noen spill. (PÅ = " "Kompatibelt, AV = Raskt)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3704,7 +3732,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3800,12 +3828,12 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4022,7 +4050,7 @@ msgstr "Forventet starten på RegEx-innkapsling." msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Eksperimentell" @@ -4197,7 +4225,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "Kunne ikke slette NetPlay-minnekort. Verifiser dine skrivetillatelser." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Klarte ikke å slette valgt fil." @@ -4222,7 +4250,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Kunne ikke eksportere følgende lagringsfiler:" @@ -4271,7 +4299,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Klarte ikke å igangsette kjerne" @@ -4291,12 +4319,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "Kunne ikke installere pakke: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Klarte ikke å installere denne tittelen til NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4332,7 +4360,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Klarte ikke å åpne \"%1\"" @@ -4365,7 +4393,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Klarte ikke å åpne tjener" @@ -4423,7 +4451,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Kunne ikke fjerne denne tittelen fra NAND." @@ -4503,9 +4531,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Feil" @@ -4546,7 +4574,7 @@ msgstr "" msgid "File Details" msgstr "Fildetaljer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4560,19 +4588,19 @@ msgstr "Filformat:" msgid "File Info" msgstr "Fil-informasjon" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnavn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Filbane" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstørrelse" @@ -4608,7 +4636,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Filsystem" @@ -4786,7 +4814,7 @@ msgstr "Øk hastighet for bildeforskuddsvisning" msgid "Frame Advance Reset Speed" msgstr "Tilbakestill bilde-for-bilde-hastighet" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4794,7 +4822,7 @@ msgstr "" msgid "Frame Range" msgstr "Bildespennvidde" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -5042,7 +5070,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Spilloppsett" @@ -5054,7 +5082,7 @@ msgstr "Spilldetaljer" msgid "Game Folders" msgstr "Spillmapper" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spill-ID" @@ -5156,8 +5184,12 @@ msgstr "GameCube-mikrofoninngang i inngang %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS-inndata %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko-juksekoder" @@ -5207,7 +5239,7 @@ msgstr "Tyskland" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5225,11 +5257,19 @@ msgstr "God dump" msgid "Graphics" msgstr "Grafikk" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafikkbrytere" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5571,7 +5611,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Øyeblikkelig tilgjengelig XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5599,11 +5639,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-lagringsfil …" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importing NAND sikkerhetskopi" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5671,13 +5711,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5701,7 +5741,7 @@ msgid "Input strength required for activation." msgstr "Inndata styrke kreves for aktivering." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -6025,7 +6065,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Nøkler" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6181,7 +6221,7 @@ msgstr "Last &Dårlig kartfil..." msgid "Load &Other Map File..." msgstr "Last &Annen kartfil..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Last inn brukerlagde teksturer" @@ -6328,13 +6368,19 @@ msgstr "Last..." msgid "Loaded symbols from '%1'" msgstr "Lastet symboler fra '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Lokal" @@ -6416,7 +6462,7 @@ msgstr "" msgid "Main Stick" msgstr "Hoved-joystick" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6439,7 +6485,7 @@ msgstr "" msgid "Manage NAND" msgstr "Administrer NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6513,7 +6559,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6525,7 +6571,7 @@ msgstr "" "det er anbefalt at du bevarer sikkerhetskopier av begge NAND-filer. Er du " "sikker på at du vil fortsette?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6535,7 +6581,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Diverse" @@ -6567,7 +6613,7 @@ msgstr "" msgid "Modifier" msgstr "Modifiserer" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6675,11 +6721,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Navn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Navn for en ny merkelapp:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Navn for tagg til å fjerne:" @@ -6773,7 +6819,7 @@ msgstr "Ny identietet opprettet." msgid "New instruction:" msgstr "Ny instruksjon:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Ny etikett" @@ -6894,7 +6940,7 @@ msgstr "" msgid "No recording loaded." msgstr "Ingen opptak lastet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Ingen lagringsfiler funnet." @@ -7173,11 +7219,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7244,7 +7290,7 @@ msgstr "Patch Editor" msgid "Patch name" msgstr "Patch-navn" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patcher" @@ -7306,7 +7352,7 @@ msgstr "Fysisk" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7326,7 +7372,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7398,7 +7444,7 @@ msgstr "Postbehandlingseffekt:" msgid "Post-Processing Shader Configuration" msgstr "Oppsett av Etterbehandlings-skyggelegging" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Forhåndsinnlasting av egendefinerte teksturer" @@ -7549,7 +7595,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Spørsmål" @@ -7727,7 +7773,7 @@ msgstr "" msgid "Refreshing..." msgstr "Gjennoppfrisker..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7774,7 +7820,7 @@ msgstr "" msgid "Remove Tag..." msgstr "Fjern merkelapp..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Fjern merkelapp" @@ -7802,7 +7848,7 @@ msgstr "Spill i hovedvinduet" msgid "Rendering" msgstr "Opptegning" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7825,6 +7871,7 @@ msgstr "Forespørsel om å bli med i din gruppe" msgid "Reset" msgstr "Nullstill" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -8052,8 +8099,8 @@ msgstr "Lagre" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Lagringsfil Eksport" @@ -8091,7 +8138,7 @@ msgstr "Lagre eldste hurtiglagring" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8310,7 +8357,7 @@ msgstr "Velg" msgid "Select Dump Path" msgstr "Velg dumpens filbane" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Velg eksportmappe" @@ -8411,9 +8458,9 @@ msgstr "Velg mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Velg en fil" @@ -8445,7 +8492,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Velg RSO-moduladressen:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8453,11 +8500,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Velg nøkkelfil (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Velg lagringsfil" @@ -8650,7 +8697,7 @@ msgstr "" msgid "Settings" msgstr "Innstillinger" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan ikke opprette «setting.txt»-fil" @@ -8805,7 +8852,7 @@ msgstr "Vis Russland" msgid "Show Spain" msgstr "Vis Spania" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Vis statistikker" @@ -8892,7 +8939,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9084,7 +9131,7 @@ msgstr "" msgid "Specific" msgstr "Spesifikk" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9321,8 +9368,8 @@ msgstr "Penn" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9347,7 +9394,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Eksportering av lagringsfiler var vellykket" @@ -9367,12 +9414,12 @@ msgstr "Ekstrahering av systemdata vellykket." msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Installering av tittelen til NAND var vellykket." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Fjerning av tittelen fra NAND var vellykket." @@ -9512,7 +9559,7 @@ msgid "TAS Tools" msgstr "TAS-verktøy" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9549,11 +9596,11 @@ msgstr "Tekstur-hurtiglager" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Teksturformat-overlegg" @@ -9970,8 +10017,14 @@ msgstr "" "Denne Action Replay-simulatoren støtter ikke koder som modifiserer selve " "Action Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Dette kan ikke omgjøres!" @@ -10105,7 +10158,7 @@ msgstr "Tittelen er satt til en ugyldig IOS." msgid "This title is set to use an invalid common key." msgstr "Tittelen er satt til å bruke en ugyldig fellesnøkkel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10113,7 +10166,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10162,7 +10215,7 @@ msgstr "Tråder" msgid "Threshold" msgstr "Terskel" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10177,7 +10230,7 @@ msgstr "Vend" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10488,7 +10541,7 @@ msgstr "Avinstaller" msgid "Uninstall from the NAND" msgstr "Avinstaller fra NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10686,7 +10739,7 @@ msgstr "Bruk den innebygde databasen over spillnavn" msgid "Use Custom User Style" msgstr "Bruk egendefinert brukerstil" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Bruk tapsfri kodek (FFV1)" @@ -10698,7 +10751,7 @@ msgstr "Bruk PAL60-modus (EuRGB60)" msgid "Use Panic Handlers" msgstr "Bruk panikkadvarslere" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10819,7 +10872,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Verktøyet" @@ -10844,7 +10897,7 @@ msgstr "Hastighet" msgid "Verbosity" msgstr "Detaljgrad" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verifiser" @@ -11098,7 +11151,7 @@ msgstr "Vestlig (Windows-1252)" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11106,7 +11159,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 8f55ca7960..7eafcb12d9 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mike van der Kuijl , 2020-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -103,7 +103,8 @@ msgstr "$ Gebruiker Variabele" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -575,6 +576,10 @@ msgstr "&Eigenschappen" msgid "&Read-Only Mode" msgstr "&Alleen-Lezen Modus" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registers" @@ -699,7 +704,7 @@ msgstr "- Aftrekken" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -910,8 +915,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Meer dan" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Er is al een NetPlay sesie bezig!" @@ -940,7 +945,7 @@ msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Een save state kan niet worden gebruikt zonder een spel te specificeren. " -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -992,7 +997,7 @@ msgstr "" msgid "AR Code" msgstr "AR Code" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR Codes" @@ -1221,6 +1226,11 @@ msgstr "Adresruimte per CPU state" msgid "Address:" msgstr "Adres:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1276,10 +1286,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Geavanceerd" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1291,12 +1306,12 @@ msgstr "Uitgelijnd naar data type lengte" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "Alles Double" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1311,29 +1326,29 @@ msgstr "Alle Bestanden (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "Alles Float" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alle GC/Wii bestanden" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "Alle Hexadecimaal" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Save States (*.sav *.s##);; Alle Bestanden (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "Alles Signed Integer" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "Alles Unsigned Integer" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1475,7 +1490,7 @@ msgstr "Arbitraire Mipmapdetectie" msgid "Are you sure that you want to delete '%1'?" msgstr "Weet u zeker dat u '%1' wilt verwijderen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Weet u zeker dat u dit bestand wilt verwijderen?" @@ -1593,7 +1608,7 @@ msgid "Auxiliary" msgstr "Auxiliary" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1628,7 +1643,7 @@ msgstr "Back Chain" msgid "Backend" msgstr "Backend" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Backend Multi-threading" @@ -1676,7 +1691,7 @@ msgstr "Slechte offset gegeven." msgid "Bad value provided." msgstr "Verkeerde waarde opgegeven." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1739,11 +1754,11 @@ msgstr "Binaire SSL (lees)" msgid "Binary SSL (write)" msgstr "Binaire SSL (schrijf)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bitrate (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1787,15 +1802,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Opstarten naar Pauze" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup bestanden (*.bin);;Alle bestanden (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii sleutelbestand (*.bin);;Alle Bestanden (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Randloos Fullscreen" @@ -1904,6 +1919,10 @@ msgstr "Knop" msgid "Buttons" msgstr "Knoppen" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1934,7 +1953,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Gecachete Interpreter (trager)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -2000,8 +2019,8 @@ msgstr "Kan alleen AR code genereren voor waarden in virtueel geheugen." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan Wii-afstandsbediening niet vinden via verbindingshendel {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan geen NetPlay-sessie starten als spel nog draait!" @@ -2032,7 +2051,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "Kan niet vergelijken met de laatste waarde bij de eerste zoekactie." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Kan de GC IPL niet vinden." @@ -2044,7 +2063,7 @@ msgstr "Kan geen AR code genereren voor dit adres." msgid "Cannot refresh without results." msgstr "Kan niet verversen zonder resultaten." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Kan het spel niet starten, omdat de GC IPL niet kon worden gevonden." @@ -2141,7 +2160,7 @@ msgstr "Controleer op de achtergrond op spellijstwijzigingen" msgid "Check for updates" msgstr "Controleer op updates" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2163,7 +2182,7 @@ msgstr "Kies een bestand om te openen" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 msgid "Choose a file to open or create" -msgstr "" +msgstr "Kies een bestand om te openen of te maken" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2272,7 +2291,7 @@ msgstr "Compileer Shaders Voor Starten" msgid "Compiling Shaders" msgstr "Shaders Compileren" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2310,6 +2329,7 @@ msgid "Configure Controller" msgstr "Configureer Controller" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Dolphin Configureren" @@ -2324,10 +2344,10 @@ msgstr "Configureer Uitvoer" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bevestigen" @@ -2756,7 +2776,7 @@ msgstr "Maak Nieuwe Geheugenkaart" msgid "Create..." msgstr "Maak..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2779,11 +2799,11 @@ msgstr "Maker:" msgid "Critical" msgstr "Kritiek" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Bijsnijden" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2931,7 +2951,7 @@ msgstr "Data ontvangen!" msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro bestanden" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Dead Zone" @@ -2944,7 +2964,7 @@ msgstr "Debug" msgid "Debug Only" msgstr "Alleen debug" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debugging" @@ -3011,7 +3031,7 @@ msgstr "Standaard ISO:" msgid "Default thread" msgstr "Standaard thread" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Stel EFB Cache Invalidatie uit" @@ -3019,7 +3039,7 @@ msgstr "Stel EFB Cache Invalidatie uit" msgid "Defer EFB Copies to RAM" msgstr "Stel EFB Kopieën naar RAM uit" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3068,7 +3088,7 @@ msgstr "Diepte:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3080,6 +3100,10 @@ msgstr "Beschrijving" msgid "Description:" msgstr "Beschrijving:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Ontkoppeld" @@ -3175,7 +3199,7 @@ msgstr "Schakel Bounding Box uit" msgid "Disable Copy Filter" msgstr "Schakel Kopieerfilter uit" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Schakel EFB VRAM Kopieën uit" @@ -3209,7 +3233,7 @@ msgstr "" "verbeteren, maar breekt sommige spellen.

In geval " "van twijfel geselecteerd laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
In geval van " "twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3616,7 +3640,7 @@ msgstr "" "Dumpt de inhoud van EFB-kopieën naar User/Dump/Textures/." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3697,7 +3721,7 @@ msgstr "Effectief" msgid "Effective priority" msgstr "Effectieve prioriteit" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3746,14 +3770,14 @@ msgstr "Emulatie moet gestart zijn om op te nemen." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Inschakelen" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Activeer API Validatielagen" @@ -3789,12 +3813,16 @@ msgstr "Schakel Gemuleerde Geheugen Grootte Overschrijven in" msgid "Enable FPRF" msgstr "Activeer FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Activeer MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Activeer Progressieve Scan" @@ -3815,7 +3843,7 @@ msgstr "Activeer Speaker Data" msgid "Enable Usage Statistics Reporting" msgstr "Activeer Gebruiksstatistieken Rapportage" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Activeer Wireframe" @@ -3875,7 +3903,7 @@ msgstr "" "Texture Decodering.

In geval van twijfel " "geselecteerd laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3889,7 +3917,7 @@ msgstr "" "

In geval van twijfel geselecteerd laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3926,7 +3954,7 @@ msgstr "" "Schakel de Memory Management Unit in die nodig is voor sommige spellen. (AAN " "= Compatibel, UIT = Snel)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3938,7 +3966,7 @@ msgstr "" "schakelt dit ook debug symbolen in voor de gecompileerde shaders." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4040,12 +4068,12 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4283,7 +4311,7 @@ msgstr "Verwachte start van de uitdrukking." msgid "Expected variable name." msgstr "Verwachtte naam van variabele." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Experimenteel" @@ -4423,7 +4451,7 @@ msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4462,7 +4490,7 @@ msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" "Kon de NetPlay-geheugenkaart niet verwijderen. Controleer uw schrijfrechten." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Kon het geselecteerde bestand niet verwijderen." @@ -4487,7 +4515,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Exporteren van %n van de %1 save bestand(en) is mislukt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Kon de volgende save bestanden niet exporteren:" @@ -4546,7 +4574,7 @@ msgstr "" "verhindert de toegang tot bestanden erin. Probeer uw NAND te repareren " "(Tools -> Beheer NAND -> Controleer NAND...) en importeer de save opnieuw." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Kon core niet initiëren" @@ -4569,12 +4597,12 @@ msgstr "Initialiseren renderer classes mislukt" msgid "Failed to install pack: %1" msgstr "Het is niet gelukt om het pakket te installeren: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Kon deze titel niet installeren op de NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4612,7 +4640,7 @@ msgstr "" "update pakket te installeren." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Kon '%1' niet openen" @@ -4645,7 +4673,7 @@ msgstr "" msgid "Failed to open file." msgstr "Openen bestand mislukt." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Kon server niet openen" @@ -4709,7 +4737,7 @@ msgstr "" "\n" "Wilt u het converteren zonder deze ongewenste gegevens te verwijderen?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Kon deze titel niet van de NAND verwijderen." @@ -4788,9 +4816,9 @@ msgstr "" "Schrijven naar uitvoerbestand \"{0}\" is mislukt.\n" "Controleer of u voldoende ruimte beschikbaar heeft op de doelschijf." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Gefaald" @@ -4833,7 +4861,7 @@ msgstr "Gezichtsveld" msgid "File Details" msgstr "Bestand Details" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4847,19 +4875,19 @@ msgstr "Bestandsformaat:" msgid "File Info" msgstr "Bestandsinfo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Bestandsnaam" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Bestandspad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Bestandsgrootte" @@ -4899,7 +4927,7 @@ msgid "Filesize in header mismatches actual card size." msgstr "" "Bestandsgrootte in header komt niet overeen met de werkelijke kaartgrootte." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Bestandssysteem" @@ -5097,7 +5125,7 @@ msgstr "Frame Vordering Verhoog Snelheid" msgid "Frame Advance Reset Speed" msgstr "Frame Voorwaarts Reset Snelheid" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Frame Dumping" @@ -5105,7 +5133,7 @@ msgstr "Frame Dumping" msgid "Frame Range" msgstr "Framebereik" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "Frame Dump-afbeelding(en) '{0}' bestaan al. Overschrijven?" @@ -5386,7 +5414,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance aan Poort %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Spelconfiguratie" @@ -5398,7 +5426,7 @@ msgstr "Spel Details" msgid "Game Folders" msgstr "Spelmappen" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spel ID" @@ -5421,14 +5449,17 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"Het spelbestand heeft een andere hash; klik er met de rechtermuisknop op, " +"selecteer Eigenschappen, ga naar het tabblad Verifieer, en selecteer " +"Verifieer Integriteit om de hash te controleren" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "Spel heeft een ander schijf nummer" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "Spel heeft een andere revisie" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5441,7 +5472,7 @@ msgstr "Spel overschreven door een andere save. Data corruptie {0:#x}, {1:#x}" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "Spel regio komt niet overeen" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5500,8 +5531,12 @@ msgstr "GameCube Microfoon Slot %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS Invoer %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko Codes" @@ -5549,9 +5584,9 @@ msgstr "Duitsland" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "GetDeviceList mislukt: {0}" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5569,11 +5604,19 @@ msgstr "Goede dump" msgid "Graphics" msgstr "Grafisch" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Graphics Schakelaars" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5970,7 +6013,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Presenteer XFB Onmiddellijk" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -6003,11 +6046,11 @@ msgstr "Importeer Save Bestand(en)" msgid "Import Wii Save..." msgstr "Importeer Wii Save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "NAND backup Importeren" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6080,13 +6123,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Incrementele Rotatie (rad/sec)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6110,7 +6153,7 @@ msgid "Input strength required for activation." msgstr "Input drempelwaarde." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Input om te negeren en te remappen." @@ -6440,7 +6483,7 @@ msgstr "Toetsenbord" msgid "Keys" msgstr "Toetsen" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6598,7 +6641,7 @@ msgstr "Laad &Slechte Mapbestand..." msgid "Load &Other Map File..." msgstr "Laad &Ander Mapbestand..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Laad Aangepaste Textures" @@ -6745,7 +6788,7 @@ msgstr "Laden..." msgid "Loaded symbols from '%1'" msgstr "Symbolen geladen van '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6755,6 +6798,12 @@ msgstr "" "DynamicInputTextures//.

In geval van " "twijfel leeg laten." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Lokaal" @@ -6839,7 +6888,7 @@ msgstr "MadCatz Gameshark bestanden" msgid "Main Stick" msgstr "Hoofd Knuppel" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6866,7 +6915,7 @@ msgstr "" msgid "Manage NAND" msgstr "Beheer NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Handmatige Texture Sampling" @@ -6940,7 +6989,7 @@ msgstr "MemoryCard: Read opgeroepen met onjuiste bron adres ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write opgeroepen met ongeldige bestemming adres ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6952,7 +7001,7 @@ msgstr "" "omkeerbaar, dus het is raadzaam om back-ups van beide NAND's maken. Weet u " "zeker dat u wilt doorgaan?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6962,7 +7011,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Microfoon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Overig" @@ -7003,7 +7052,7 @@ msgstr "" msgid "Modifier" msgstr "Shift" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7077,6 +7126,8 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"Opname {0} geeft aan dat het start vanuit een savestate, maar {1} bestaat " +"niet. De opname zal waarschijnlijk niet synchroniseren!" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7116,11 +7167,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Naam" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Naam voor deze nieuwe tag:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Naam van de te verwijderen tag:" @@ -7214,7 +7265,7 @@ msgstr "Nieuwe identiteit gegenereerd." msgid "New instruction:" msgstr "Nieuwe instructie:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Nieuwe tag" @@ -7303,7 +7354,7 @@ msgstr "Er zijn geen problemen gedetecteerd." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "Geen overeenkomend spel gevonden" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7335,7 +7386,7 @@ msgstr "Geen profielen gevonden voor de spel-instelling '{0}'" msgid "No recording loaded." msgstr "Geen opname geladen." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Geen save data gevonden." @@ -7387,7 +7438,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "Niet gevonden" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7620,11 +7671,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "PNG Compressie Level" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG Compressie Level:" @@ -7690,7 +7741,7 @@ msgstr "Patch Bewerker" msgid "Patch name" msgstr "Patchnaam" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7752,7 +7803,7 @@ msgstr "Fysieke" msgid "Physical address space" msgstr "Fysieke adresruimte" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7772,7 +7823,7 @@ msgstr "Stamp Omlaag" msgid "Pitch Up" msgstr "Stamp Omhoog" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7846,7 +7897,7 @@ msgstr "Post-Processing Effect:" msgid "Post-Processing Shader Configuration" msgstr "Post-Processing Shader Configuratie" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Prefetch Aangepaste Textures" @@ -8003,7 +8054,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Vraag" @@ -8189,7 +8240,7 @@ msgstr "Huidige waarden ververst." msgid "Refreshing..." msgstr "Verversen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8236,7 +8287,7 @@ msgstr "Verwijder Junk Data (Onomkeerbaar):" msgid "Remove Tag..." msgstr "Tag Verwijderen..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Tag verwijderen" @@ -8267,7 +8318,7 @@ msgstr "Geef weer op hoofdvenster" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8292,6 +8343,7 @@ msgstr "Verzoek om Lid te Worden van Uw Partij" msgid "Reset" msgstr "Reset" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "Reset Alles" @@ -8524,8 +8576,8 @@ msgstr "Opslaan" msgid "Save All" msgstr "Sla Alles op" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Export Opslaan" @@ -8563,7 +8615,7 @@ msgstr "Sla Oudste State op" msgid "Save Preset" msgstr "Voorinstelling opslaan" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Sla Opnamebestand op Als" @@ -8784,7 +8836,7 @@ msgstr "Selecteer" msgid "Select Dump Path" msgstr "Selecteer Dump Pad" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Selecteer Export Map" @@ -8885,9 +8937,9 @@ msgstr "Selecteer een Map" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Selecteer een Bestand" @@ -8919,7 +8971,7 @@ msgstr "Selecteer e-Reader Kaarten" msgid "Select the RSO module address:" msgstr "Selecteer het RSO module adres:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Selecteer Opnamebestand om Af te Spelen" @@ -8927,11 +8979,11 @@ msgstr "Selecteer Opnamebestand om Af te Spelen" msgid "Select the Virtual SD Card Root" msgstr "Selecteer de Virtuele SD Kaart Root" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecteer het sleutelbestand (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecteer het save bestand" @@ -9165,7 +9217,7 @@ msgstr "" msgid "Settings" msgstr "Instellingen" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: Kan setting.txt niet aanmaken" @@ -9320,7 +9372,7 @@ msgstr "Toon Rusland" msgid "Show Spain" msgstr "Toon Spanje" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Toon Statistieken" @@ -9359,12 +9411,12 @@ msgstr "In &geheugen weergeven" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "In Code Weergeven" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "In Geheugen Weergeven" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -9372,7 +9424,7 @@ msgstr "In code tonen" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "In geheugen weergeven" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9417,7 +9469,7 @@ msgstr "" "Toon de maximum ping van de spelers tijdens NetPlay." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9618,7 +9670,7 @@ msgstr "Gespecialiseerd (Standaard)" msgid "Specific" msgstr "Specifiek" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9875,8 +9927,8 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9901,7 +9953,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exporteren van %n van de %1 save bestand(en) gelukt." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Save bestanden succesvol geëxporteerd" @@ -9921,12 +9973,12 @@ msgstr "Systeemdata succesvol uitgepakt." msgid "Successfully imported save file." msgstr "Save bestand succesvol geïmporteerd." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Titel succesvol geïnstalleerd op de NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Titel succesvol verwijderd van de NAND." @@ -10074,7 +10126,7 @@ msgid "TAS Tools" msgstr "TAS-Tools" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10111,11 +10163,11 @@ msgstr "Texture Cache" msgid "Texture Cache Accuracy" msgstr "Texture Cache Nauwkeurigheid" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Texture Dumping" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Texture Formaat Overlay" @@ -10294,6 +10346,9 @@ msgid "" "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"De bestandsnaam %1 komt niet overeen met Dolphin's regio code formaat voor " +"geheugenkaarten. Hernoem dit bestand naar %2, %3, of %4, passend bij de " +"regio van de save bestanden die erop staan." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." @@ -10572,8 +10627,14 @@ msgstr "" "Deze action replay simulator ondersteund geen codes die de Action Replay " "zelf aanpassen." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Dit kan niet ongedaan gemaakt worden!" @@ -10714,7 +10775,7 @@ msgstr "Dit spel gebruikt een ongeldige IOS." msgid "This title is set to use an invalid common key." msgstr "Dit spel gebruikt een ongeldige gedeelde sleutel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10726,7 +10787,7 @@ msgstr "" "\n" "DSPHLE: Onbekende ucode (CRC = {0:08x}) - AX wordt geforceerd." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10785,7 +10846,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Drempelwaarde" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10802,7 +10863,7 @@ msgstr "" "Tijdsperiode van stabiele invoer om kalibratie te activeren. (nul om uit te " "schakelen)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11127,7 +11188,7 @@ msgstr "Deïnstalleren" msgid "Uninstall from the NAND" msgstr "Deïnstalleren van de NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11332,7 +11393,7 @@ msgstr "Gebruik Ingebouwde Database met Spelnamen" msgid "Use Custom User Style" msgstr "Gebruik Aangepaste Gebruikersstijl" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Gebruik Lossless Codec (FFV1)" @@ -11344,7 +11405,7 @@ msgstr "Gebruik PAL60 Modus (EuRGB60)" msgid "Use Panic Handlers" msgstr "Gebruik Panic Handlers" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11511,7 +11572,7 @@ msgstr "Meestal gebruikt voor positiematrices" msgid "Usually used for tex coord matrices" msgstr "Meestal gebruikt voor texture-coördinatenmatrices" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Hulpprogramma" @@ -11536,13 +11597,13 @@ msgstr "Snelheid" msgid "Verbosity" msgstr "Breedsprakigheid" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verifieer" #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 msgid "Verify Integrity" -msgstr "Verifiëer integriteit" +msgstr "Verifieer Integriteit" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 msgid "Verify certificates" @@ -11847,7 +11908,7 @@ msgstr "Westers (Windows-1252)" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11859,7 +11920,7 @@ msgstr "" "Mipmapdetectie' is ingeschakeld in Verbeteringen." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " @@ -12014,19 +12075,19 @@ msgstr "Schrijf naar Venster" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "Verkeerde schijf nummer" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "Verkeerde hash" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "Verkeerde regio" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "Verkeerde revisie" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 diff --git a/Languages/po/pl.po b/Languages/po/pl.po index 789ce2e41f..05d7c01fa4 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -100,7 +100,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -568,6 +569,10 @@ msgstr "&Właściwości" msgid "&Read-Only Mode" msgstr "&Tryb tylko do odczytu" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Rejestry" @@ -692,7 +697,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -900,8 +905,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Sesja NetPlay jest już rozpoczęta!" @@ -923,7 +928,7 @@ msgstr "Dysk już jest gotowy do włożenia." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -960,7 +965,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Kody AR" @@ -1172,6 +1177,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1219,10 +1229,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Zaawansowane" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afryka" @@ -1239,7 +1254,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1256,7 +1271,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1265,8 +1280,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Wszystkie stany zapisu (*.sav *.s##);; wszystkie pliki (*)" @@ -1414,7 +1429,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "Czy jesteś pewien, że chcesz usunąć '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Czy jesteś pewien, że chcesz usunąć ten plik?" @@ -1524,7 +1539,7 @@ msgid "Auxiliary" msgstr "Pomocnicza" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1556,7 +1571,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1604,7 +1619,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1667,11 +1682,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1713,15 +1728,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Pełny ekran bez ramek" @@ -1827,6 +1842,10 @@ msgstr "Przycisk" msgid "Buttons" msgstr "Przyciski" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1857,7 +1876,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "Buforowany Interpreter (wolniejszy)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1914,8 +1933,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Nie można uruchomić Sesji NetPlay, podczas gdy gra wciąż jest uruchomiona!" @@ -1945,7 +1964,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1957,7 +1976,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -2045,7 +2064,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2174,7 +2193,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2212,6 +2231,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Konfiguruj Dolphin" @@ -2226,10 +2246,10 @@ msgstr "Skonfiguruj wyjście" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Potwierdź" @@ -2609,7 +2629,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2627,11 +2647,11 @@ msgstr "Twórca:" msgid "Critical" msgstr "Krytyczny" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Przycinanie obrazu" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2769,7 +2789,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Dead Zone" @@ -2782,7 +2802,7 @@ msgstr "" msgid "Debug Only" msgstr "Tylko debugowanie" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Debugowanie" @@ -2849,7 +2869,7 @@ msgstr "Domyślne ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2857,7 +2877,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2900,7 +2920,7 @@ msgstr "Głębia:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2912,6 +2932,10 @@ msgstr "Opis" msgid "Description:" msgstr "Opis:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -3001,7 +3025,7 @@ msgstr "Wyłącz prostokąt ograniczający" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -3032,7 +3056,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3470,7 +3494,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3516,14 +3540,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Włącz weryfikację warstw API" @@ -3559,12 +3583,16 @@ msgstr "" msgid "Enable FPRF" msgstr "Włącz FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Włącz MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Włącz skanowanie progresywne" @@ -3585,7 +3613,7 @@ msgstr "Włącz dane głosu" msgid "Enable Usage Statistics Reporting" msgstr "Włącz raportowanie statystyk użytkowania" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Włącz przedstawienie szkieletowe" @@ -3632,7 +3660,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3640,7 +3668,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3668,7 +3696,7 @@ msgstr "" "Włącza jednostkę zarządzania pamięcią (Memory Management Unit - MMU), " "wymagana dla niektórych gier. (włączone = kompatybilne, wyłączone = szybkie)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3676,7 +3704,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3772,12 +3800,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3994,7 +4022,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4167,7 +4195,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Nie udało się usunąć wybranego pliku." @@ -4192,7 +4220,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4241,7 +4269,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4261,12 +4289,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4302,7 +4330,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Nie udało się otworzyć '%1'" @@ -4333,7 +4361,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4391,7 +4419,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4468,9 +4496,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4511,7 +4539,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4525,19 +4553,19 @@ msgstr "" msgid "File Info" msgstr "Informacje o pliku" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nazwa pliku" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Rozmiar pliku" @@ -4572,7 +4600,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "System plików" @@ -4746,7 +4774,7 @@ msgstr "Zwiększ szybkość wyprzedzania klatek" msgid "Frame Advance Reset Speed" msgstr "Zresetuj szybkość wyprzedzania klatek" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Zrzucanie klatek" @@ -4754,7 +4782,7 @@ msgstr "Zrzucanie klatek" msgid "Frame Range" msgstr "Zasięg klatki" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -5002,7 +5030,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -5014,7 +5042,7 @@ msgstr "" msgid "Game Folders" msgstr "Foldery gry" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID gry" @@ -5116,8 +5144,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Kody Gecko" @@ -5167,7 +5199,7 @@ msgstr "Niemcy" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5185,11 +5217,19 @@ msgstr "" msgid "Graphics" msgstr "Grafika" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Przełączniki grafiki" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5531,7 +5571,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Natychmiastowo obecny XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5559,11 +5599,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importuj zapis Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5629,13 +5669,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Informacje" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5659,7 +5699,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5985,7 +6025,7 @@ msgstr "Klawiatura" msgid "Keys" msgstr "Klawisze" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6137,7 +6177,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Wczytuj dostosowane tekstury" @@ -6284,13 +6324,19 @@ msgstr "Wczytaj..." msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6372,7 +6418,7 @@ msgstr "" msgid "Main Stick" msgstr "Główna gałka" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6395,7 +6441,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6469,7 +6515,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6477,7 +6523,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6487,7 +6533,7 @@ msgstr "" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Różne" @@ -6519,7 +6565,7 @@ msgstr "" msgid "Modifier" msgstr "Zmiennik" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6627,11 +6673,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6723,7 +6769,7 @@ msgstr "Nowa tożsamość została wygenerowana." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6841,7 +6887,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7116,11 +7162,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7186,7 +7232,7 @@ msgstr "Edytor łatek" msgid "Patch name" msgstr "Nazwa łatki" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Łatki" @@ -7248,7 +7294,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7268,7 +7314,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platforma" @@ -7339,7 +7385,7 @@ msgstr "Efekt przetwarzania końcowego:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Wstępnie pobieraj dostosowane tekstury" @@ -7484,7 +7530,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pytanie" @@ -7662,7 +7708,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7709,7 +7755,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7737,7 +7783,7 @@ msgstr "Renderuj do okna głównego‭" msgid "Rendering" msgstr "Renderowanie" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7760,6 +7806,7 @@ msgstr "" msgid "Reset" msgstr "Zresetuj" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7987,8 +8034,8 @@ msgstr "Zapisz" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8026,7 +8073,7 @@ msgstr "Zapisz najstarszy stan" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8240,7 +8287,7 @@ msgstr "Wybierz" msgid "Select Dump Path" msgstr "Wybierz ścieżkę zrzutu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8341,9 +8388,9 @@ msgstr "Wybierz ścieżkę" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Wybierz plik" @@ -8375,7 +8422,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8383,11 +8430,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wybierz plik do zapisu" @@ -8580,7 +8627,7 @@ msgstr "" msgid "Settings" msgstr "Ustawienia" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: Nie można utworzyć pliku setting.txt" @@ -8735,7 +8782,7 @@ msgstr "Pokaż Rosję" msgid "Show Spain" msgstr "Pokaż Hiszpanię" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Pokazuj statystyki" @@ -8822,7 +8869,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9012,7 +9059,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9249,8 +9296,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9275,7 +9322,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Pliki zapisów zostały pomyślnie wyeksportowane" @@ -9295,12 +9342,12 @@ msgstr "Dane systemowe zostały pomyślnie wyodrębnione." msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Ten tytuł został pomyślnie zainstalowany do NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Usunięcie tego tytułu z NAND zakończono pomyślnie." @@ -9438,7 +9485,7 @@ msgid "TAS Tools" msgstr "Narzędzia TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9475,11 +9522,11 @@ msgstr "Bufor tekstur" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Nakładka formatu tekstur" @@ -9865,8 +9912,14 @@ msgstr "" "Ten symulator action replay nie obsługuje kodów, które modyfikują Action " "Replay sam w sobie." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "To nie może być cofnięte!" @@ -9982,7 +10035,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9990,7 +10043,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10038,7 +10091,7 @@ msgstr "" msgid "Threshold" msgstr "Próg nacisku" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -10053,7 +10106,7 @@ msgstr "Przechylenie" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10354,7 +10407,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "Odinstaluj z NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10548,7 +10601,7 @@ msgstr "Użyj wbudowanej bazy danych nazw gier" msgid "Use Custom User Style" msgstr "Używaj dostosowanego stylu użytkownika" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10560,7 +10613,7 @@ msgstr "Użyj trybu PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Użyj Panic Handlers" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10681,7 +10734,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Narzędzia" @@ -10706,7 +10759,7 @@ msgstr "" msgid "Verbosity" msgstr "Szczegółowość" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10958,7 +11011,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10966,7 +11019,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 3189a5ac4d..91bb589f3b 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -70,7 +70,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -533,6 +534,10 @@ msgstr "&Propriedades" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registos" @@ -657,7 +662,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -865,8 +870,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -888,7 +893,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -923,7 +928,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Códigos AR" @@ -1135,6 +1140,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1171,10 +1181,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avançadas" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1191,7 +1206,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1208,7 +1223,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1217,8 +1232,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1366,7 +1381,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1476,7 +1491,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1508,7 +1523,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1556,7 +1571,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1619,11 +1634,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1665,15 +1680,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1779,6 +1794,10 @@ msgstr "" msgid "Buttons" msgstr "Botões" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1809,7 +1828,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1866,8 +1885,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1896,7 +1915,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1908,7 +1927,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1994,7 +2013,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2123,7 +2142,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2161,6 +2180,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2175,10 +2195,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2554,7 +2574,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2572,11 +2592,11 @@ msgstr "" msgid "Critical" msgstr "Crítico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Recortar" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2714,7 +2734,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zona morta" @@ -2727,7 +2747,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Depuração" @@ -2794,7 +2814,7 @@ msgstr "ISO Padrão:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2802,7 +2822,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2845,7 +2865,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2857,6 +2877,10 @@ msgstr "Descrição" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2946,7 +2970,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2977,7 +3001,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3412,7 +3436,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3458,14 +3482,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3501,12 +3525,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Activar MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Activar Progressive Scan" @@ -3527,7 +3555,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Activar Wireframe" @@ -3568,7 +3596,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3576,7 +3604,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3604,7 +3632,7 @@ msgstr "" "Activa a Unidade de Gestão de Memória, necessária em alguns jogos. (ON = " "Compatível, OFF = Rápido)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3612,7 +3640,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3708,12 +3736,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3927,7 +3955,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4100,7 +4128,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4125,7 +4153,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4174,7 +4202,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4194,12 +4222,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4233,7 +4261,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4264,7 +4292,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4322,7 +4350,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4399,9 +4427,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4442,7 +4470,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4456,19 +4484,19 @@ msgstr "" msgid "File Info" msgstr "Informação de Ficheiro" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4503,7 +4531,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistema de ficheiros" @@ -4677,7 +4705,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4685,7 +4713,7 @@ msgstr "" msgid "Frame Range" msgstr "Alcance de Quadros" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4933,7 +4961,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4945,7 +4973,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5047,8 +5075,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Códigos Gecko" @@ -5098,7 +5130,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5116,11 +5148,19 @@ msgstr "" msgid "Graphics" msgstr "Gráficos" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5453,7 +5493,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5481,11 +5521,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5551,13 +5591,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Informação" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5581,7 +5621,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5905,7 +5945,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6057,7 +6097,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Carregar Texturas Personalizadas" @@ -6204,13 +6244,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6292,7 +6338,7 @@ msgstr "" msgid "Main Stick" msgstr "Stick Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6315,7 +6361,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6389,7 +6435,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6397,7 +6443,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6407,7 +6453,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Diversos" @@ -6439,7 +6485,7 @@ msgstr "" msgid "Modifier" msgstr "Modificador" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6547,11 +6593,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6643,7 +6689,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6761,7 +6807,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7034,11 +7080,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7104,7 +7150,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7166,7 +7212,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7186,7 +7232,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7257,7 +7303,7 @@ msgstr "Efeito de Pós-Processamento" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7400,7 +7446,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Questão" @@ -7578,7 +7624,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7625,7 +7671,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7653,7 +7699,7 @@ msgstr "Renderizar para a Janela Principal" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7676,6 +7722,7 @@ msgstr "" msgid "Reset" msgstr "Reset" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7903,8 +7950,8 @@ msgstr "Guardar" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7942,7 +7989,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8156,7 +8203,7 @@ msgstr "Seleccionar" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8257,9 +8304,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8291,7 +8338,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8299,11 +8346,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccione o ficheiro de jogo guardado" @@ -8493,7 +8540,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8646,7 +8693,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Mostrar Estatísticas" @@ -8733,7 +8780,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8921,7 +8968,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9158,8 +9205,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9184,7 +9231,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9204,12 +9251,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9347,7 +9394,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9384,11 +9431,11 @@ msgstr "Cache de Textura" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Formato da textura" @@ -9774,8 +9821,14 @@ msgstr "" "Este simulador de Action Replay não suporta códigos que modifiquem o próprio " "Action Replay" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9885,7 +9938,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9893,7 +9946,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9938,7 +9991,7 @@ msgstr "" msgid "Threshold" msgstr "Limite" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9953,7 +10006,7 @@ msgstr "Tilt" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10254,7 +10307,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10448,7 +10501,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10460,7 +10513,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "Usar Manipuladores de Pânico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10581,7 +10634,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilidade" @@ -10606,7 +10659,7 @@ msgstr "" msgid "Verbosity" msgstr "Verbosidade" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10858,7 +10911,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10866,7 +10919,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 7f289fa811..3e3cf1854a 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,9 +46,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Mateus B. Cassiano , 2017,2021-2022\n" +"Last-Translator: Runo , 2013\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" "emu/language/pt_BR/)\n" "Language: pt_BR\n" @@ -123,7 +123,8 @@ msgstr "$ Variável do Usuário" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -594,6 +595,10 @@ msgstr "&Propriedades" msgid "&Read-Only Mode" msgstr "Modo &Somente Leitura" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registradores" @@ -718,7 +723,7 @@ msgstr "- Subtrair" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -929,8 +934,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Maior que" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Uma sessão do NetPlay já está em progresso!" @@ -960,7 +965,7 @@ msgstr "" "Não é possível carregar um estado salvo sem especificar um jogo para " "executar." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -1010,7 +1015,7 @@ msgstr "" msgid "AR Code" msgstr "Códigos AR" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Códigos AR" @@ -1242,6 +1247,11 @@ msgstr "Espaço do endereço pelo state da CPU" msgid "Address:" msgstr "Endereço:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1298,10 +1308,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avançado" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "África" @@ -1313,12 +1328,12 @@ msgstr "Alinhado ao comprimento do tipo de dados" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "Tudo Duplo" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1333,29 +1348,29 @@ msgstr "Todos os arquivos (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "Tudo Flutuação" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos os arquivos do GC/Wii" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "Tudo Hexadecimal" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos os Estados Salvos (*.sav *.s##);;Todos os arquivos (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "Todos os Inteiros Assinados" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "Todos os Inteiros Não Assinados" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1497,7 +1512,7 @@ msgstr "Detecção de Mipmaps Arbitrários" msgid "Are you sure that you want to delete '%1'?" msgstr "Tem certeza de que deseja excluir o perfil \"%1\"?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Tem certeza de que deseja excluir este arquivo?" @@ -1616,7 +1631,7 @@ msgid "Auxiliary" msgstr "Auxiliar" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1651,7 +1666,7 @@ msgstr "Cadeia Traseira" msgid "Backend" msgstr "Backend" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Usar Múltiplas Threads" @@ -1699,7 +1714,7 @@ msgstr "Deslocamento ruim fornecido." msgid "Bad value provided." msgstr "Valor ruim fornecido." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1764,11 +1779,11 @@ msgstr "SSL Binário (leitura)" msgid "Binary SSL (write)" msgstr "SSL Binário (gravação)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Taxa de Bits (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1813,15 +1828,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Do Início até a Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Arquivo de backup da NAND do BootMii (*.bin);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Arquivo de chaves do BootMii (*.bin);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Tela Cheia Sem Bordas" @@ -1930,6 +1945,10 @@ msgstr "Botão" msgid "Buttons" msgstr "Botões" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1960,7 +1979,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Interpretador com Cache (lento)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -2027,8 +2046,8 @@ msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" "Não foi possível encontrar o Wii Remote pelo identificador de conexão {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Não é possível iniciar uma sessão do NetPlay enquanto um jogo está em " @@ -2061,7 +2080,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "Não consegue comparar com o último valor na primeira busca." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Não foi possível encontrar o IPL do GameCube." @@ -2073,7 +2092,7 @@ msgstr "Não é possível gerar um código AR para este endereço." msgid "Cannot refresh without results." msgstr "Não pode atualizar sem resultados." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" "Não foi possível iniciar o jogo porque o IPL do GameCube não foi encontrado." @@ -2169,7 +2188,7 @@ msgstr "Monitorar Alterações na Lista de Jogos em Segundo Plano" msgid "Check for updates" msgstr "Verificar atualizações" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2191,7 +2210,7 @@ msgstr "Abrir" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 msgid "Choose a file to open or create" -msgstr "" +msgstr "Escolha um arquivo pra abrir ou criar" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2300,7 +2319,7 @@ msgstr "Compilar Shaders Antes de Iniciar" msgid "Compiling Shaders" msgstr "Compilando Shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2338,6 +2357,7 @@ msgid "Configure Controller" msgstr "Configurar" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Abrir Configurações" @@ -2352,10 +2372,10 @@ msgstr "Configurar a Saída dos Dados" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Confirmar" @@ -2790,7 +2810,7 @@ msgstr "Criar Novo Memory Card" msgid "Create..." msgstr "Criar..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2814,11 +2834,11 @@ msgstr "Autor:" msgid "Critical" msgstr "Crítico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Cortar" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2965,7 +2985,7 @@ msgstr "Dados recebidos!" msgid "Datel MaxDrive/Pro files" msgstr "Arquivos do Datel MaxDrive/Pro" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zona Morta" @@ -2978,7 +2998,7 @@ msgstr "Depuração" msgid "Debug Only" msgstr "Apenas Depuração" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Depuração" @@ -3045,7 +3065,7 @@ msgstr "ISO padrão:" msgid "Default thread" msgstr "Thread padrão" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Adiar Invalidação do Cache do EFB" @@ -3053,7 +3073,7 @@ msgstr "Adiar Invalidação do Cache do EFB" msgid "Defer EFB Copies to RAM" msgstr "Adiar Cópias do EFB para RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3102,7 +3122,7 @@ msgstr "Profundidade:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3114,6 +3134,10 @@ msgstr "Descrição" msgid "Description:" msgstr "Descrição:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Separado" @@ -3212,7 +3236,7 @@ msgstr "Desativar Bounding Box" msgid "Disable Copy Filter" msgstr "Desativar Filtro de Cópia" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Desativar Cópias VRAM do EFB" @@ -3247,7 +3271,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Na " "dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3658,7 +3682,7 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3741,7 +3765,7 @@ msgstr "Efetivo" msgid "Effective priority" msgstr "Prioridade efetiva" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3790,14 +3814,14 @@ msgstr "A emulação deve ser iniciada pra gravar." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Ativar" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Ativar Camadas de Validação da API" @@ -3833,12 +3857,16 @@ msgstr "Ativar Ajuste de Memória do Console Emulado" msgid "Enable FPRF" msgstr "Ativar FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Ativar MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Ativar Varredura Progressiva" @@ -3859,7 +3887,7 @@ msgstr "Ativar Dados do Auto-Falante" msgid "Enable Usage Statistics Reporting" msgstr "Ativar Envio de Estatísticas de Uso" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Ativar Wireframe" @@ -3918,7 +3946,7 @@ msgstr "" "com a 'Decodificação de Texturas na GPU'.

Na " "dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3931,7 +3959,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3969,7 +3997,7 @@ msgstr "" "Ativa a Unidade de Gerenciamento de Memória, necessária para alguns jogos. " "(ON = Compatível, OFF = Rápido)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3982,7 +4010,7 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4084,12 +4112,12 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4324,7 +4352,7 @@ msgstr "Início esperado da expressão." msgid "Expected variable name." msgstr "Nome esperado da variável." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Experimental" @@ -4459,11 +4487,12 @@ msgstr "Falha ao adicionar essa sessão ao indexador do NetPlay: %1" #: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" -msgstr "Falhou em anexar ao arquivo de assinatura '%1'" +msgstr "Falha ao anexar ao arquivo de assinatura '%1'" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" +"Falha ao solicitar acesso à interface para o redirecionamento Bluetooth: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4503,7 +4532,7 @@ msgstr "" "Falha ao excluir Memory Card do NetPlay. Verifique suas permissões de " "gravação." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Falha ao excluir o arquivo selecionado." @@ -4530,7 +4559,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Falha ao exportar %n de %1 arquivo(s) de jogo(s) salvo(s)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Falha ao exportar os seguintes dados salvos:" @@ -4590,7 +4619,7 @@ msgstr "" "NAND (Ferramentas -> Gerenciar NAND -> Verificar NAND...) , então importe os " "dados salvos novamente." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Falha ao inicializar o núcleo" @@ -4613,12 +4642,12 @@ msgstr "Falha ao inicializar as classes do renderizador" msgid "Failed to install pack: %1" msgstr "Falha ao instalar pacote: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Falha ao instalar esse software na NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4629,7 +4658,7 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1297 #: Source/Core/DolphinQt/MenuBar.cpp:1349 msgid "Failed to load RSO module at %1" -msgstr "Falhou em carregar o módulo do RSO no %1" +msgstr "Falha ao carregar o módulo RSO em %1" #: Source/Core/VideoBackends/D3D/D3DBase.cpp:45 msgid "Failed to load d3d11.dll" @@ -4641,7 +4670,7 @@ msgstr "Falha ao carregar dxgi.dll" #: Source/Core/DolphinQt/MenuBar.cpp:1561 msgid "Failed to load map file '%1'" -msgstr "Falhou em carregar o arquivo do mapa '%1'" +msgstr "Falha ao carregar o arquivo de mapa '%1'" #: Source/Core/Core/Boot/Boot.cpp:534 msgid "Failed to load the executable to memory." @@ -4656,7 +4685,7 @@ msgstr "" "pacote de atualização KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Falha ao abrir '%1'" @@ -4690,7 +4719,7 @@ msgstr "" msgid "Failed to open file." msgstr "Falha ao abrir o arquivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Falha ao abrir o servidor" @@ -4716,7 +4745,7 @@ msgstr "Falha ao processar dados do Redump.org" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:285 msgid "Failed to parse given value into target data type." -msgstr "Falhou em analisar o valor dado no tipo de dado alvo." +msgstr "Falha ao converter o valor fornecido no tipo de dados de destino." #: Source/Core/Core/FifoPlayer/FifoDataFile.cpp:213 msgid "Failed to read DFF file." @@ -4756,7 +4785,7 @@ msgstr "" "\n" "Deseja convertê-lo sem remover os dados não utilizados?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Falha ao remover esse software da NAND." @@ -4784,19 +4813,19 @@ msgstr "Falha ao salvar o log FIFO." #: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" -msgstr "Falhou em salvar o mapa dos códigos no caminho '%1'" +msgstr "Falha ao salvar o mapa de códigos no local '%1'" #: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" -msgstr "Falhou em salvar o arquivo da assinatura '%1'" +msgstr "Falha ao salvar o arquivo de assinatura '%1'" #: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" -msgstr "Falhou em salvar o mapa dos símbolos no caminho '%1'" +msgstr "Falha ao salvar o mapa de símbolos no local '%1'" #: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" -msgstr "Falhou em salvar o arquivo da assinatura '%1'" +msgstr "Falha ao salvar no arquivo de assinatura '%1'" #: Source/Core/DolphinQt/ResourcePackManager.cpp:225 msgid "Failed to uninstall pack: %1" @@ -4841,9 +4870,9 @@ msgstr "" "Falha ao salvar o arquivo de saída \"{0}\".\n" "Verifique se você tem espaço livre suficiente na unidade de destino." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Falha" @@ -4886,7 +4915,7 @@ msgstr "Campo de Visualização" msgid "File Details" msgstr "Detalhes do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4900,19 +4929,19 @@ msgstr "Formato do Arquivo:" msgid "File Info" msgstr "Informações do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Nome do Arquivo" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Local" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Tamanho" @@ -4953,7 +4982,7 @@ msgstr "" "O tamanho de arquivo no cabeçalho não corresponde com o tamanho real do " "cartão." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistema de Arquivos" @@ -5008,7 +5037,7 @@ msgstr "Corrigir checksums" #: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" -msgstr "Falhou em Consertar os Checksums" +msgstr "Falha ao Corrigir Checksums" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 msgid "Fixed Alignment" @@ -5153,7 +5182,7 @@ msgstr "Aumentar Velocidade" msgid "Frame Advance Reset Speed" msgstr "Redefinir Velocidade" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Exportação de Quadros" @@ -5161,7 +5190,7 @@ msgstr "Exportação de Quadros" msgid "Frame Range" msgstr "Intervalo de Quadros" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "A(s) imagem(ns) do dump do frame '{0}' já existe(m). Sobrescrever?" @@ -5443,7 +5472,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance na Porta %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Configurações do Jogo" @@ -5455,7 +5484,7 @@ msgstr "Detalhes do Jogo" msgid "Game Folders" msgstr "Pastas de Jogos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID do Jogo" @@ -5478,14 +5507,17 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"O arquivo do jogo tem um hash diferente; clique com o botão direito nele, " +"selecione Propriedades, alterne para a guia Verificar, e selecione Verificar " +"Integridade para calcular o hash" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "O número de disco do jogo é diferente" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "A revisão do jogo é diferente" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5500,7 +5532,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "A região do jogo é diferente" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5559,8 +5591,12 @@ msgstr "Microfone de GameCube no Slot %1" msgid "GameCube TAS Input %1" msgstr "Entrada de Dados TAS - Controle de GameCube %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Códigos Gecko" @@ -5608,9 +5644,9 @@ msgstr "Alemanha" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "Falha no GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5628,11 +5664,19 @@ msgstr "Cópia válida" msgid "Graphics" msgstr "Gráficos" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Configurações" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -6032,7 +6076,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Exibir o XFB Imediatamente" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -6066,11 +6110,11 @@ msgstr "Importar Arquivo(s) do(s) Save(s)" msgid "Import Wii Save..." msgstr "Importar Dados Salvos do Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importando backup da NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6143,13 +6187,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Rotação Incremental (rad/seg)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Informações" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6173,7 +6217,7 @@ msgid "Input strength required for activation." msgstr "Força de entrada requerida pra ativação." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Força da entrada pra ignorar e remapear." @@ -6244,20 +6288,20 @@ msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 #: Source/Core/Core/State.cpp:384 msgid "Internal LZO Error - compression failed" -msgstr "Erro Interno do LZO - a compressão falhou" +msgstr "Erro Interno do LZO - falha na compressão" #: Source/Core/Core/NetPlayCommon.cpp:208 #: Source/Core/Core/NetPlayCommon.cpp:291 msgid "Internal LZO Error - decompression failed" -msgstr "Erro Interno do LZO - a descompressão falhou" +msgstr "Erro Interno do LZO - falha na extração" #: Source/Core/Core/State.cpp:530 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -"Erro Interno do LZO - a descompressão falhou ({0}) ({1}, {2}) \n" -"Tente carregar o state de novo" +"Erro Interno do LZO - falha na extração ({0}) ({1}, {2}) \n" +"Tente carregar o estado salvo novamente" #: Source/Core/Core/State.cpp:635 msgid "Internal LZO Error - lzo_init() failed" @@ -6457,9 +6501,9 @@ msgid "" "JIT failed to find code space after a cache clear. This should never happen. " "Please report this incident on the bug tracker. Dolphin will now exit." msgstr "" -"O JIT falhou em achar espaço pro código após uma limpeza de cache. Isto " +"O JIT não conseguiu encontrar espaço para o código após limpar o cache. Isso " "nunca deveria acontecer. Por favor relate este incidente no bug tracker. O " -"Dolphin fechará agora." +"Dolphin irá fechar agora." #: Source/Core/DiscIO/Enums.cpp:27 Source/Core/DolphinQt/MenuBar.cpp:275 msgid "Japan" @@ -6504,7 +6548,7 @@ msgstr "Teclado" msgid "Keys" msgstr "Teclas" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6662,7 +6706,7 @@ msgstr "Carregar o &Arquivo do Mapa Ruim..." msgid "Load &Other Map File..." msgstr "Carregar o &Outro Arquivo do Mapa..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Carregar Texturas Personalizadas" @@ -6809,7 +6853,7 @@ msgstr "Carregar..." msgid "Loaded symbols from '%1'" msgstr "Símbolos carregados do '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6820,6 +6864,12 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "IP Local" @@ -6905,7 +6955,7 @@ msgstr "Arquivos de GameShark da Mad Catz" msgid "Main Stick" msgstr "Eixo Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6933,7 +6983,7 @@ msgstr "" msgid "Manage NAND" msgstr "Gerenciar NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Amostragem Manual de Texturas" @@ -7007,7 +7057,7 @@ msgstr "MemoryCard: Leitura chamada com endereço inválido da fonte ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Gravação chamada com endereço de destino inválido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7019,7 +7069,7 @@ msgstr "" "recomendado manter um backup de ambas as NANDs. Tem certeza de que deseja " "continuar?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -7029,7 +7079,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Microfone" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Diversos" @@ -7070,7 +7120,7 @@ msgstr "" msgid "Modifier" msgstr "Modificador" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7147,6 +7197,8 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"A gravação {0} indica que inicia a partir de um estado salvo, mas {1} não " +"existe. A gravação provavelmente não será sincronizada!" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7186,11 +7238,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Nome" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Nome da nova etiqueta:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Nome da etiqueta a remover:" @@ -7282,7 +7334,7 @@ msgstr "Uma nova ID foi gerada." msgid "New instruction:" msgstr "Nova instrução:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Nova etiqueta" @@ -7371,7 +7423,7 @@ msgstr "Não foram detectados problemas." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "Nenhum jogo correspondente encontrado" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7403,7 +7455,7 @@ msgstr "Nenhum perfil encontrado pra configuração do jogo '{0}'" msgid "No recording loaded." msgstr "Nenhuma gravação carregada." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Não foram achados dados dos saves." @@ -7455,7 +7507,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "Não encontrado" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7688,11 +7740,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "Nível da Compressão do PNG" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG Compression Level:" @@ -7758,7 +7810,7 @@ msgstr "Editor do Patch" msgid "Patch name" msgstr "Nome do patch" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patches" @@ -7820,7 +7872,7 @@ msgstr "Físico" msgid "Physical address space" msgstr "Espaço do endereço físico" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7840,7 +7892,7 @@ msgstr "Pra baixo" msgid "Pitch Up" msgstr "Pra cima" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plataforma" @@ -7914,7 +7966,7 @@ msgstr "Efeito de Pós-Processamento:" msgid "Post-Processing Shader Configuration" msgstr "Configurações do Shader de Pós-Processamento" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Pré-carregar Texturas Personalizadas" @@ -8072,7 +8124,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pergunta" @@ -8258,7 +8310,7 @@ msgstr "Valores atuais atualizados." msgid "Refreshing..." msgstr "Atualizando..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8305,7 +8357,7 @@ msgstr "Remover Dados Não Utilizados (Irreversível):" msgid "Remove Tag..." msgstr "Remover Etiqueta..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Remover etiqueta" @@ -8336,7 +8388,7 @@ msgstr "Renderizar na Janela Principal" msgid "Rendering" msgstr "Renderização" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8361,6 +8413,7 @@ msgstr "Pedido pra se Juntar ao seu Grupo" msgid "Reset" msgstr "Redefinir" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "Resetar Tudo" @@ -8593,8 +8646,8 @@ msgstr "Salvar" msgid "Save All" msgstr "Salvar Todos" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Exportar Dados Salvos" @@ -8632,7 +8685,7 @@ msgstr "Salvar Estado Mais Antigo" msgid "Save Preset" msgstr "Salvar Predefinição" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Salvar o Arquivo da Gravação Como" @@ -8855,7 +8908,7 @@ msgstr "Selecionar" msgid "Select Dump Path" msgstr "Selecione o Caminho do Dump" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Selecione o Diretório de Exportação" @@ -8956,9 +9009,9 @@ msgstr "Selecione um Diretório" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Selecione um Arquivo" @@ -8990,7 +9043,7 @@ msgstr "Selecione os Cartões do e-Reader" msgid "Select the RSO module address:" msgstr "Selecione o endereço do módulo do RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Selecione o Arquivo da Gravação a Executar" @@ -8998,11 +9051,11 @@ msgstr "Selecione o Arquivo da Gravação a Executar" msgid "Select the Virtual SD Card Root" msgstr "Selecione a Raiz do Cartão SD Virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecione o arquivo das chaves (dump do OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Importar" @@ -9236,7 +9289,7 @@ msgstr "" msgid "Settings" msgstr "Configurações" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Não foi possível criar o arquivo setting.txt" @@ -9391,7 +9444,7 @@ msgstr "Rússia" msgid "Show Spain" msgstr "Espanha" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Exibir Estatísticas" @@ -9430,12 +9483,12 @@ msgstr "Mostrar na &memória" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "Mostrar no Código" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "Mostrar na Memória" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -9443,7 +9496,7 @@ msgstr "Mostrar no código" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "Mostrar na memória" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9489,7 +9542,7 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9690,7 +9743,7 @@ msgstr "Especializada (Padrão)" msgid "Specific" msgstr "Específico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9947,8 +10000,8 @@ msgstr "Stylus" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9973,7 +10026,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exportou com sucesso %n de %1 arquivo(s) do(s) save(s)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Arquivos dos saves exportados com sucesso" @@ -9993,12 +10046,12 @@ msgstr "Dados extraídos do sistema com sucesso." msgid "Successfully imported save file." msgstr "Arquivo de dados salvos importado com sucesso." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Software instalado na NAND com sucesso." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Software removido da NAND com sucesso." @@ -10146,7 +10199,7 @@ msgid "TAS Tools" msgstr "Ferramentas de TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10183,11 +10236,11 @@ msgstr "Cache de Texturas" msgid "Texture Cache Accuracy" msgstr "Precisão do Cache de Texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Exportação de Texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Sobreposição do Formato das Texturas" @@ -10365,6 +10418,9 @@ msgid "" "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"O nome do arquivo %1 não atende ao formato de código de região para Memory " +"Cards utilizado pelo Dolphin. Por favor renomeie esse arquivo para %2, %3, " +"ou %4, correspondendo à região dos jogos salvos que estão presentes nele." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." @@ -10639,8 +10695,14 @@ msgstr "" "Este simulador de Action Replay não suporta códigos que modifiquem o próprio " "Action Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Isto não pode ser desfeito!" @@ -10784,7 +10846,7 @@ msgstr "Esse software está configurado para utilizar um IOS inválido." msgid "This title is set to use an invalid common key." msgstr "Esse software está configurado para utilizar uma chave comum inválida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10796,7 +10858,7 @@ msgstr "" "\n" "DSPHLE: Ucode desconhecido (CRC = {0:08x}) - forçando o AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10855,7 +10917,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Limite" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10872,7 +10934,7 @@ msgstr "" "Período de tempo da entrada de dados estável pra engatilhar a calibração. " "(zero pra desativar)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10968,7 +11030,7 @@ msgstr "Ativar/Desativar Exibição Imediata do XFB" #: Source/Core/InputCommon/ControlReference/ExpressionParser.cpp:956 msgid "Tokenizing failed." -msgstr "Falhou em tokenizing." +msgstr "Falha na tokenização." #: Source/Core/DolphinQt/ToolBar.cpp:28 msgid "Toolbar" @@ -11198,7 +11260,7 @@ msgstr "Desinstalar" msgid "Uninstall from the NAND" msgstr "Desinstalar da NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11239,7 +11301,7 @@ msgstr "" #: Source/Core/Core/NetPlayClient.cpp:1006 msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" -msgstr "Mensagem SYNC_SAVE_DATA desconhecida recebida com ID: {0}" +msgstr "Mensagem desconhecida do SYNC_GECKO_DATA recebida com a id: {0}" #: Source/Core/Core/NetPlayServer.cpp:1148 msgid "" @@ -11401,7 +11463,7 @@ msgstr "Usar Nomes de Jogos da Base de Dados Embutida" msgid "Use Custom User Style" msgstr "Usar Estilo de Usuário Personalizado" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Usar Codec Sem Perdas (FFV1)" @@ -11413,7 +11475,7 @@ msgstr "Usar Modo PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Usar Gerenciadores de Pânico" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11582,7 +11644,7 @@ msgstr "Geralmente usado pras matrizes da posição" msgid "Usually used for tex coord matrices" msgstr "Geralmente usado pras matrizes da coordenação das texturas" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilidades" @@ -11607,7 +11669,7 @@ msgstr "Velocidade" msgid "Verbosity" msgstr "Verbosidade" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verificar" @@ -11694,25 +11756,30 @@ msgstr "Arquivos WAD (*.wad)" #: Source/Core/Core/WiiUtils.cpp:136 msgid "WAD installation failed: Could not create Wii Shop log files." -msgstr "A instalação do WAD falhou: Não pôde criar arquivos log do Wii Shop." +msgstr "" +"Falha na instalação do WAD: Não foi possível criar os arquivos de log do Wii " +"Shop." #: Source/Core/Core/WiiUtils.cpp:104 msgid "WAD installation failed: Could not finalise title import." -msgstr "A instalação do WAD falhou: Nâo pôde finalizar a importação do título." +msgstr "" +"Falha na instalação do WAD: Não foi possível finalizar a importação do " +"software." #: Source/Core/Core/WiiUtils.cpp:94 msgid "WAD installation failed: Could not import content {0:08x}." -msgstr "A instalação do WAD falhou: Não pôde importar o conteúdo {0:08x}." +msgstr "" +"Falha na instalação do WAD: Não foi possível importar o conteúdo {0:08x}." #: Source/Core/Core/WiiUtils.cpp:78 msgid "WAD installation failed: Could not initialise title import (error {0})." msgstr "" -"A instalação do WAD falhou: Não pôde inicializar a importação do título " -"(erro {0})." +"Falha na instalação do WAD: não foi possível inicializar a importação do " +"software (erro {0})." #: Source/Core/Core/WiiUtils.cpp:56 msgid "WAD installation failed: The selected file is not a valid WAD." -msgstr "A instalação do WAD falhou: O arquivo selecionado não é um WAD válido." +msgstr "Falha na instalação do WAD: O arquivo selecionado não é um WAD válido." #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:282 msgid "WAITING" @@ -11919,7 +11986,7 @@ msgstr "Ocidental (Windows-1252)" msgid "Whammy" msgstr "Distorção" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11932,7 +11999,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " @@ -12089,19 +12156,19 @@ msgstr "Gravar na Janela" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "Número de disco incorreto" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "Hash incorreto" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "Região incorreta" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "Revisão incorreta" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12449,8 +12516,8 @@ msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" msgstr "" -"{0} não é um diretório, falhou em mover pro *.original.\n" -" Verifique suas permissões de gravação ou mova o arquivo pra fora do Dolphin" +"{0} não é um diretório, falha ao mover para *.original.\n" +"Verifique suas permissões de escrita ou mova o arquivo para fora do Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 #: Source/Core/DiscIO/WIABlob.cpp:1702 diff --git a/Languages/po/ro.po b/Languages/po/ro.po index b76b516b1b..6f69989838 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -69,7 +69,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -532,6 +533,10 @@ msgstr "&Proprietăți" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Înregistrări" @@ -656,7 +661,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -864,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -887,7 +892,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -922,7 +927,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "Coduri AR" @@ -1134,6 +1139,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1170,10 +1180,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avansat" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1190,7 +1205,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1207,7 +1222,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1216,8 +1231,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1365,7 +1380,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1475,7 +1490,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1507,7 +1522,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1555,7 +1570,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1618,11 +1633,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1664,15 +1679,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1778,6 +1793,10 @@ msgstr "" msgid "Buttons" msgstr "Butoane" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1808,7 +1827,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1865,8 +1884,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1895,7 +1914,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1907,7 +1926,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1993,7 +2012,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,7 +2141,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2160,6 +2179,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2174,10 +2194,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2553,7 +2573,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2571,11 +2591,11 @@ msgstr "" msgid "Critical" msgstr "Critic" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Decupare" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2713,7 +2733,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Zonă Moartă" @@ -2726,7 +2746,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Depanare" @@ -2793,7 +2813,7 @@ msgstr "ISO implicit:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2801,7 +2821,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2844,7 +2864,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2856,6 +2876,10 @@ msgstr "Descriere" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2945,7 +2969,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2976,7 +3000,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3411,7 +3435,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3457,14 +3481,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3500,12 +3524,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Activare MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Activare Scanare Progresivă" @@ -3526,7 +3554,7 @@ msgstr "Activare Date Vorbitor" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Activare Wireframe" @@ -3567,7 +3595,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3575,7 +3603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3603,7 +3631,7 @@ msgstr "" "Activează Unitatea de Gestionare Memorie, necesară pentru unele jocuri. " "(PORNIT = Compatibil, OPRIT = Rapid)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3611,7 +3639,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3707,12 +3735,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3926,7 +3954,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4099,7 +4127,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4124,7 +4152,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4173,7 +4201,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4193,12 +4221,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4232,7 +4260,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4263,7 +4291,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4321,7 +4349,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4398,9 +4426,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4441,7 +4469,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4455,19 +4483,19 @@ msgstr "" msgid "File Info" msgstr "Info Fişier " -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4502,7 +4530,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Sistem de fișiere" @@ -4676,7 +4704,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4684,7 +4712,7 @@ msgstr "" msgid "Frame Range" msgstr "Interval Cadru" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4932,7 +4960,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4944,7 +4972,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5046,8 +5074,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Coduri Gecko" @@ -5097,7 +5129,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5115,11 +5147,19 @@ msgstr "" msgid "Graphics" msgstr "Grafică" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5452,7 +5492,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5480,11 +5520,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5550,13 +5590,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5580,7 +5620,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5906,7 +5946,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6058,7 +6098,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Încarcă Texturi Personalizate" @@ -6205,13 +6245,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6293,7 +6339,7 @@ msgstr "" msgid "Main Stick" msgstr "Stick Principal" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6316,7 +6362,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6390,7 +6436,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6398,7 +6444,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6408,7 +6454,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Diverse" @@ -6440,7 +6486,7 @@ msgstr "" msgid "Modifier" msgstr "Modificator" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6548,11 +6594,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6644,7 +6690,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6762,7 +6808,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7035,11 +7081,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7105,7 +7151,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patch-uri" @@ -7167,7 +7213,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7187,7 +7233,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7258,7 +7304,7 @@ msgstr "Efect Post-Procesare:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7401,7 +7447,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Întrebare" @@ -7579,7 +7625,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7626,7 +7672,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7654,7 +7700,7 @@ msgstr "Redare în Fereastra Principală" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7677,6 +7723,7 @@ msgstr "" msgid "Reset" msgstr "Resetare" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7904,8 +7951,8 @@ msgstr "Salvare" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7943,7 +7990,7 @@ msgstr "Salvează cel mai Vechi Status" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8157,7 +8204,7 @@ msgstr "Selectează" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8258,9 +8305,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8292,7 +8339,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8300,11 +8347,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selectează fișierul salvat" @@ -8494,7 +8541,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8647,7 +8694,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Afișare Statistici" @@ -8734,7 +8781,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8922,7 +8969,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9159,8 +9206,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9185,7 +9232,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9205,12 +9252,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9348,7 +9395,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9385,11 +9432,11 @@ msgstr "Cache Textură" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Suprapunere Format Textură" @@ -9775,8 +9822,14 @@ msgstr "" "Acest simulator de redare a acțiunii nu acceptă coduri ce modifică înseși " "Redarea Acțiunii." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9886,7 +9939,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9894,7 +9947,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9939,7 +9992,7 @@ msgstr "" msgid "Threshold" msgstr "Prag:" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9954,7 +10007,7 @@ msgstr "Înclinare:" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10255,7 +10308,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10449,7 +10502,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10461,7 +10514,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "Utilizează Asistenți de Panică" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10582,7 +10635,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Utilitar" @@ -10607,7 +10660,7 @@ msgstr "" msgid "Verbosity" msgstr "Verbozitate" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10859,7 +10912,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10867,7 +10920,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 831e1ae35c..13555179c4 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -98,7 +98,8 @@ msgstr "$ Польз. переменная" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -569,6 +570,10 @@ msgstr "&Свойства" msgid "&Read-Only Mode" msgstr "Режим \"Только для &чтения\"" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Регистры" @@ -693,7 +698,7 @@ msgstr "- Вычесть" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -904,8 +909,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Больше чем" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Сессия сетевой игры уже создана!" @@ -933,7 +938,7 @@ msgstr "Диск уже должен быть вставлен." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "Чтобы загрузить быстрое сохранение, нужно указать игру." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -982,7 +987,7 @@ msgstr "" msgid "AR Code" msgstr "AR-код" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR-коды" @@ -1209,6 +1214,11 @@ msgstr "" msgid "Address:" msgstr "Адрес:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1264,10 +1274,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Расширенные" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Африка" @@ -1284,7 +1299,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1301,7 +1316,7 @@ msgstr "Все файлы (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Все файлы GC/Wii" @@ -1310,8 +1325,8 @@ msgstr "Все файлы GC/Wii" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Файлы быстрых сохранений (*.sav, *.s##);; Все файлы (*)" @@ -1463,7 +1478,7 @@ msgstr "Обнаружение произвольных MIP-текстур" msgid "Are you sure that you want to delete '%1'?" msgstr "Вы действительно хотите удалить '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Вы действительно хотите удалить этот файл?" @@ -1582,7 +1597,7 @@ msgid "Auxiliary" msgstr "Вспомогательное" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "Б" @@ -1617,7 +1632,7 @@ msgstr "Цепочка возврата" msgid "Backend" msgstr "Бэкенд" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Многопоточный бэкенд" @@ -1665,7 +1680,7 @@ msgstr "Указано неверное смещение." msgid "Bad value provided." msgstr "Указано некорректное значение." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1728,11 +1743,11 @@ msgstr "Бинарный SSL (чтение)" msgid "Binary SSL (write)" msgstr "Бинарный SSL (запись)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Битрейт (кбит/с):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1776,15 +1791,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Пауза после запуска" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Файл бэкапа NAND BootMii (*.bin);;Все файлы (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Файл с ключами BootMii (*.bin);;Все файлы (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Полноэкранный режим без рамок" @@ -1892,6 +1907,10 @@ msgstr "Кнопка" msgid "Buttons" msgstr "Кнопки" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1922,7 +1941,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Кэширующий интерпретатор (медленнее)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1988,8 +2007,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Не удаётся найти Wii Remote по дескриптору {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Невозможно создать сессию сетевой игры, пока игра всё ещё запущена!" @@ -2020,7 +2039,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Не удалось найти IPL GC." @@ -2032,7 +2051,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Не удалось запустить игру, потому что IPL GC не был найден." @@ -2128,7 +2147,7 @@ msgstr "Автоматически проверять список игр на msgid "Check for updates" msgstr "Проверить обновления" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2259,7 +2278,7 @@ msgstr "Компилировать шейдеры перед запуском" msgid "Compiling Shaders" msgstr "Компиляция шейдеров" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2297,6 +2316,7 @@ msgid "Configure Controller" msgstr "Настроить контроллер" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Настройка Dolphin" @@ -2311,10 +2331,10 @@ msgstr "Настройка вывода" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Подтвердить" @@ -2743,7 +2763,7 @@ msgstr "Создать новую карту памяти" msgid "Create..." msgstr "Создать..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2766,11 +2786,11 @@ msgstr "Создатель:" msgid "Critical" msgstr "Критический" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Обрезка" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2917,7 +2937,7 @@ msgstr "Данные получены!" msgid "Datel MaxDrive/Pro files" msgstr "Файлы Datel MaxDrive/Pro" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Мёртвая зона" @@ -2930,7 +2950,7 @@ msgstr "Отладка" msgid "Debug Only" msgstr "Только для отладки" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Отладка" @@ -2997,7 +3017,7 @@ msgstr "Образ по умолчанию:" msgid "Default thread" msgstr "Поток по умолчанию" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Отложить инвалидацию кэша EFB" @@ -3005,7 +3025,7 @@ msgstr "Отложить инвалидацию кэша EFB" msgid "Defer EFB Copies to RAM" msgstr "Отложенное копирование EFB в ОЗУ" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3054,7 +3074,7 @@ msgstr "Глубина:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3066,6 +3086,10 @@ msgstr "Описание" msgid "Description:" msgstr "Описание:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Отсоединён" @@ -3162,7 +3186,7 @@ msgstr "Отключить эмуляцию bounding box" msgid "Disable Copy Filter" msgstr "Отключить фильтр копирования" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Отключить копии EFB в VRAM" @@ -3197,7 +3221,7 @@ msgstr "" "игры не будут работать.

Если не уверены – оставьте " "включенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Если не уверены – оставьте " "выключенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3596,7 +3620,7 @@ msgstr "" "

Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3678,7 +3702,7 @@ msgstr "Эффективное" msgid "Effective priority" msgstr "Эффективный приоритет" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "ЭиБ" @@ -3727,14 +3751,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Включить" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Включить слои проверки API" @@ -3770,12 +3794,16 @@ msgstr "Включить переопределение эмулируемого msgid "Enable FPRF" msgstr "Включить FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Включить MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Включить прогрессивную развёртку" @@ -3796,7 +3824,7 @@ msgstr "Включить данные динамика" msgid "Enable Usage Statistics Reporting" msgstr "Включить отправку статистики об использовании" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Включить каркас моделей" @@ -3857,7 +3885,7 @@ msgstr "" "

Если не уверены – оставьте включенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3870,7 +3898,7 @@ msgstr "" "Vulkan.

Если не уверены – оставьте включенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3906,7 +3934,7 @@ msgstr "" "Активирует устройство управления памятью (MMU), требуется для некоторых игр. " "(ВКЛ = лучше совместимость, ВЫКЛ = выше скорость)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3919,7 +3947,7 @@ msgstr "" "

Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4022,12 +4050,12 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4246,7 +4274,7 @@ msgstr "Ожидалось начало выражения." msgid "Expected variable name." msgstr "Ожидалось название переменной." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Экспериментальные" @@ -4423,7 +4451,7 @@ msgstr "" "Не удалось удалить карту памяти сетевой игры. Проверьте, что у вас есть " "права на запись." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Не удалось удалить выбранный файл." @@ -4448,7 +4476,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Не удалось экспортировать %n из %1 сохранений." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Не удалось экспортировать следующие файлы сохранений:" @@ -4508,7 +4536,7 @@ msgstr "" "ваш NAND (Инструменты -> Управлять NAND -> Проверить NAND...), затем " "импортируйте файл сохранения ещё раз." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Не удалось инициализировать ядро" @@ -4528,12 +4556,12 @@ msgstr "Не удалось инициализировать классы рен msgid "Failed to install pack: %1" msgstr "Не удалось установить набор: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Не удалось установить этот продукт в NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4571,7 +4599,7 @@ msgstr "" "установить пакет обновления KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Не удалось открыть '%1'" @@ -4606,7 +4634,7 @@ msgstr "" msgid "Failed to open file." msgstr "Не удалось открыть файл." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Не удалось открыть сервер" @@ -4670,7 +4698,7 @@ msgstr "" "\n" "Вы хотите продолжить конвертацию без удаления мусорных данных?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Не удалось удалить этот продукт из NAND." @@ -4753,9 +4781,9 @@ msgstr "" "Не удалось записать выходной файл \"{0}\".\n" "Проверьте, достаточно ли у вас свободного места на выбранном диске." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Ошибка" @@ -4798,7 +4826,7 @@ msgstr "Поле зрения" msgid "File Details" msgstr "Информация о файле" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4812,19 +4840,19 @@ msgstr "Формат файла:" msgid "File Info" msgstr "Информация о файле" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Имя файла" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Путь к файлу" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Размер файла" @@ -4863,7 +4891,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "Размер файла в заголовке не совпадает с настоящим размером карты." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Файловая система" @@ -5057,7 +5085,7 @@ msgstr "Перемотка кадров: увел. скорость" msgid "Frame Advance Reset Speed" msgstr "Перемотка кадров: сбросить скорость" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Дамп кадров" @@ -5065,7 +5093,7 @@ msgstr "Дамп кадров" msgid "Frame Range" msgstr "Диапазон кадров" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "Изображения с дампами кадра(ов) '{0}' уже существуют. Перезаписать?" @@ -5337,7 +5365,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Настройки игры" @@ -5349,7 +5377,7 @@ msgstr "Информация об игре" msgid "Game Folders" msgstr "Папки с играми" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "ID игры" @@ -5453,8 +5481,12 @@ msgstr "Микрофон GameCube − Слот %1" msgid "GameCube TAS Input %1" msgstr "Ввод GameCube TAS %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko-коды" @@ -5504,7 +5536,7 @@ msgstr "Германия" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "ГиБ" @@ -5522,11 +5554,19 @@ msgstr "Хороший дамп" msgid "Graphics" msgstr "Графика" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Переключатели графики" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5915,7 +5955,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Выводить XFB немедленно" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5949,11 +5989,11 @@ msgstr "Импорт файлов сохранений" msgid "Import Wii Save..." msgstr "Импортировать сохранение Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Импортирование бэкапа NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6026,13 +6066,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Информация" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6056,7 +6096,7 @@ msgid "Input strength required for activation." msgstr "Сила ввода, требуемая для активации." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -6385,7 +6425,7 @@ msgstr "Клавиатура" msgid "Keys" msgstr "Клавиши" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "КиБ" @@ -6543,7 +6583,7 @@ msgstr "Загрузить файл с &плохими картами..." msgid "Load &Other Map File..." msgstr "Загрузить &другой файл с картой..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Загружать свои текстуры" @@ -6690,7 +6730,7 @@ msgstr "Загрузить..." msgid "Loaded symbols from '%1'" msgstr "Загружены символы из '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6700,6 +6740,12 @@ msgstr "" "DynamicInputTextures/<game_id>/.

Если не " "уверены – оставьте выключенным." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Локальный адрес" @@ -6785,7 +6831,7 @@ msgstr "Файлы Gameshark MadCatz" msgid "Main Stick" msgstr "Основной стик" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6813,7 +6859,7 @@ msgstr "" msgid "Manage NAND" msgstr "Управлять NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6887,7 +6933,7 @@ msgstr "MemoryCard: вызвано чтение некорректного уч msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: вызвана запись в некорректный участок памяти ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6898,7 +6944,7 @@ msgstr "" "сохранения. Этот процесс необратим, поэтому рекомендуется иметь бэкапы обоих " "NAND. Вы уверены, что хотите продолжить?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "МиБ" @@ -6908,7 +6954,7 @@ msgstr "МиБ" msgid "Microphone" msgstr "Микрофон" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Разное" @@ -6949,7 +6995,7 @@ msgstr "" msgid "Modifier" msgstr "Модиф." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7061,11 +7107,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Имя" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Название новой метки:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Название удаляемой метки:" @@ -7159,7 +7205,7 @@ msgstr "Новый ID сгенерирован." msgid "New instruction:" msgstr "Новая инструкция:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Новая метка" @@ -7281,7 +7327,7 @@ msgstr "Профили для игровой настройки '{0}' не на msgid "No recording loaded." msgstr "Запись не загружена." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Данные сохранений не найдены." @@ -7566,11 +7612,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "Уровень сжатия PNG" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "Уровень сжатия PNG:" @@ -7636,7 +7682,7 @@ msgstr "Редактор патчей" msgid "Patch name" msgstr "Название патча" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Патчи" @@ -7698,7 +7744,7 @@ msgstr "Физическое" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "ПиБ" @@ -7718,7 +7764,7 @@ msgstr "Тангаж вниз" msgid "Pitch Up" msgstr "Тангаж вверх" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Платформа" @@ -7791,7 +7837,7 @@ msgstr "Эффект пост-обработки:" msgid "Post-Processing Shader Configuration" msgstr "Конфигурация шейдеров пост-обработки" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Предзагружать свои текстуры" @@ -7948,7 +7994,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Вопрос" @@ -8135,7 +8181,7 @@ msgstr "Текущие значения обновлены." msgid "Refreshing..." msgstr "Обновление..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8182,7 +8228,7 @@ msgstr "Удалить мусорные данные (безвозвратно): msgid "Remove Tag..." msgstr "Удалить метку..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Удалить метку" @@ -8213,7 +8259,7 @@ msgstr "Выводить изображение в главное окно" msgid "Rendering" msgstr "Рендеринг" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8238,6 +8284,7 @@ msgstr "Запрос на присоединение к вашей группе" msgid "Reset" msgstr "Сбросить" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -8465,8 +8512,8 @@ msgstr "Сохр." msgid "Save All" msgstr "Сохранить все" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Экспортировать сохранение" @@ -8504,7 +8551,7 @@ msgstr "Сохранить самое старое сохранение" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8728,7 +8775,7 @@ msgstr "Выбрать" msgid "Select Dump Path" msgstr "Выберите путь к дампам" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Выберите папку для экспорта" @@ -8829,9 +8876,9 @@ msgstr "Выберите папку" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Выберите файл" @@ -8863,7 +8910,7 @@ msgstr "Выбрать e-карточки" msgid "Select the RSO module address:" msgstr "Выберите адрес модуля RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8871,11 +8918,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Выберите файл с ключами (дамп OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Выберите файл сохранения" @@ -9103,7 +9150,7 @@ msgstr "" msgid "Settings" msgstr "Настройки" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: не удалось создать файл setting.txt" @@ -9258,7 +9305,7 @@ msgstr "Россия" msgid "Show Spain" msgstr "Испания" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Показывать статистику" @@ -9356,7 +9403,7 @@ msgstr "" "

Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9558,7 +9605,7 @@ msgstr "" msgid "Specific" msgstr "Особенность" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9805,8 +9852,8 @@ msgstr "Стилус" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9831,7 +9878,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Файлы сохранений (%n из %1 шт.) успешно экспортированы." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Файлы сохранений успешно экспортированы" @@ -9851,12 +9898,12 @@ msgstr "Системные данные успешно извлечены." msgid "Successfully imported save file." msgstr "Файл сохранения успешно импортирован." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Данный продукт успешно установлен в NAND." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Данный продукт успешно удалён из NAND." @@ -10000,7 +10047,7 @@ msgid "TAS Tools" msgstr "Управление TAS" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10037,11 +10084,11 @@ msgstr "Кэширование текстур" msgid "Texture Cache Accuracy" msgstr "Точность кэширования текстур" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Дамп текстур" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Наложение форматов текстур" @@ -10474,8 +10521,14 @@ msgstr "" "Симулятор action replay не поддерживает коды, которые меняют сам Action " "Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Это нельзя отменить!" @@ -10616,7 +10669,7 @@ msgstr "Этот продукт настроен на использование msgid "This title is set to use an invalid common key." msgstr "Этот продукт настроен на использование некорректного общего ключа." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10628,7 +10681,7 @@ msgstr "" "\n" "DSPHLE: Неизвестный ucode (CRC = {0:08x}) - принудительное AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10686,7 +10739,7 @@ msgstr "Потоки" msgid "Threshold" msgstr "Порог" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "ТиБ" @@ -10702,7 +10755,7 @@ msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" "Период времени стабильного ввода для запуска калибровки. (ноль - отключить)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11027,7 +11080,7 @@ msgstr "Деактивировать" msgid "Uninstall from the NAND" msgstr "Удалить из NAND" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11229,7 +11282,7 @@ msgstr "Использовать встроенную базу названий msgid "Use Custom User Style" msgstr "Использовать свой стиль" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Использовать кодек без потерь (FFV1)" @@ -11241,7 +11294,7 @@ msgstr "Режим PAL60 (EuRGB60)" msgid "Use Panic Handlers" msgstr "Использовать обработчики ошибок" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11374,7 +11427,7 @@ msgstr "Обычно используется для матриц позиций msgid "Usually used for tex coord matrices" msgstr "Обычно используется для матриц координат текстур" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Полезные" @@ -11399,7 +11452,7 @@ msgstr "Скорость" msgid "Verbosity" msgstr "Уровень анализа" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Проверка" @@ -11708,7 +11761,7 @@ msgstr "Западная (Windows-1252)" msgid "Whammy" msgstr "Флойд" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11721,7 +11774,7 @@ msgstr "" "

Если не уверены – оставьте включенным." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/sr.po b/Languages/po/sr.po index 6472d3b642..591f211a51 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -69,7 +69,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -532,6 +533,10 @@ msgstr "&Pribor/Opcije" msgid "&Read-Only Mode" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Registri" @@ -656,7 +661,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -864,8 +869,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -887,7 +892,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -922,7 +927,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR Kodovi" @@ -1134,6 +1139,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1170,10 +1180,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1190,7 +1205,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1207,7 +1222,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1216,8 +1231,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1365,7 +1380,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1475,7 +1490,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1507,7 +1522,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1555,7 +1570,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1618,11 +1633,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1664,15 +1679,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "" @@ -1778,6 +1793,10 @@ msgstr "" msgid "Buttons" msgstr "Tasteri" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1808,7 +1827,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1865,8 +1884,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1895,7 +1914,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1907,7 +1926,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1993,7 +2012,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2122,7 +2141,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2160,6 +2179,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "" @@ -2174,10 +2194,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2553,7 +2573,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2571,11 +2591,11 @@ msgstr "" msgid "Critical" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Izseci" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2713,7 +2733,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Mrtva Zona " @@ -2726,7 +2746,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "" @@ -2793,7 +2813,7 @@ msgstr "" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2801,7 +2821,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2844,7 +2864,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2856,6 +2876,10 @@ msgstr "" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2945,7 +2969,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2976,7 +3000,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3411,7 +3435,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3457,14 +3481,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3500,12 +3524,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "" @@ -3526,7 +3554,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "" @@ -3567,7 +3595,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3575,7 +3603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3601,7 +3629,7 @@ msgid "" "OFF = Fast)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3609,7 +3637,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3705,12 +3733,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3922,7 +3950,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4095,7 +4123,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4120,7 +4148,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4169,7 +4197,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4189,12 +4217,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4228,7 +4256,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4259,7 +4287,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4317,7 +4345,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4394,9 +4422,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4437,7 +4465,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4451,19 +4479,19 @@ msgstr "" msgid "File Info" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "" @@ -4498,7 +4526,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "" @@ -4672,7 +4700,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4680,7 +4708,7 @@ msgstr "" msgid "Frame Range" msgstr "" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4928,7 +4956,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4940,7 +4968,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "" @@ -5042,8 +5070,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "" @@ -5093,7 +5125,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5111,11 +5143,19 @@ msgstr "" msgid "Graphics" msgstr "Grafike" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5448,7 +5488,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5476,11 +5516,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5546,13 +5586,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info " #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5576,7 +5616,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5900,7 +5940,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6049,7 +6089,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "" @@ -6196,13 +6236,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6284,7 +6330,7 @@ msgstr "" msgid "Main Stick" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6307,7 +6353,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6381,7 +6427,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6389,7 +6435,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6399,7 +6445,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "" @@ -6431,7 +6477,7 @@ msgstr "" msgid "Modifier" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6539,11 +6585,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6635,7 +6681,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6753,7 +6799,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7026,11 +7072,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7096,7 +7142,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "" @@ -7158,7 +7204,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7178,7 +7224,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7249,7 +7295,7 @@ msgstr "" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7392,7 +7438,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Pitanje " @@ -7570,7 +7616,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7617,7 +7663,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7645,7 +7691,7 @@ msgstr "" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7668,6 +7714,7 @@ msgstr "" msgid "Reset" msgstr "Reset/Restart " +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7895,8 +7942,8 @@ msgstr "Snimaj" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7934,7 +7981,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8148,7 +8195,7 @@ msgstr "Izaberi " msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8249,9 +8296,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8283,7 +8330,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8291,11 +8338,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Izaberi \"snimani fajl/the save state\"" @@ -8485,7 +8532,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8638,7 +8685,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "" @@ -8725,7 +8772,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8913,7 +8960,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9150,8 +9197,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9176,7 +9223,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9196,12 +9243,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9339,7 +9386,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9376,11 +9423,11 @@ msgstr "" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "" @@ -9762,8 +9809,14 @@ msgid "" "Replay itself." msgstr "" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9873,7 +9926,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9881,7 +9934,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9926,7 +9979,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9941,7 +9994,7 @@ msgstr "" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10242,7 +10295,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10436,7 +10489,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10448,7 +10501,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10569,7 +10622,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "" @@ -10594,7 +10647,7 @@ msgstr "" msgid "Verbosity" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10846,7 +10899,7 @@ msgstr "" msgid "Whammy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10854,7 +10907,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/sv.po b/Languages/po/sv.po index cb72f2167a..637ce7c656 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -91,7 +91,8 @@ msgstr "$ Användarvariabel" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -562,6 +563,10 @@ msgstr "&Egenskaper" msgid "&Read-Only Mode" msgstr "S&krivskyddat läge" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Register" @@ -686,7 +691,7 @@ msgstr "- Subtrahera" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -897,8 +902,8 @@ msgstr "" msgid "> Greater-than" msgstr "> Större än" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "En nätspelssession pågår redan!" @@ -927,7 +932,7 @@ msgstr "En skiva håller redan på att sättas in." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "En snabbsparning kan inte laddas utan att ange ett spel att starta." -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -978,7 +983,7 @@ msgstr "" msgid "AR Code" msgstr "AR-kod" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR-koder" @@ -1206,6 +1211,11 @@ msgstr "Adressutrymme enligt CPU:ns tillstånd" msgid "Address:" msgstr "Adress:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1261,10 +1271,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Avancerat" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1281,7 +1296,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1298,7 +1313,7 @@ msgstr "Alla filer (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alla GC/Wii-filer" @@ -1307,8 +1322,8 @@ msgstr "Alla GC/Wii-filer" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alla snabbsparningar (*.sav *.s##);; Alla filer (*)" @@ -1460,7 +1475,7 @@ msgstr "Upptäck godtyckliga mipmaps" msgid "Are you sure that you want to delete '%1'?" msgstr "Vill du verkligen radera '%1'?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "Vill du verkligen radera den här filen?" @@ -1578,7 +1593,7 @@ msgid "Auxiliary" msgstr "ARAM" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1613,7 +1628,7 @@ msgstr "Bakåtkedja" msgid "Backend" msgstr "Backend" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "Flertrådning i backend" @@ -1661,7 +1676,7 @@ msgstr "Dålig förskjutning angavs." msgid "Bad value provided." msgstr "Ogiltigt värde angivet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1724,11 +1739,11 @@ msgstr "Binär SSL (läs)" msgid "Binary SSL (write)" msgstr "Binär SSL (skriv)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "Bithastighet (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1772,15 +1787,15 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausa vid start" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-kopia (*bin);;Alla filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii-nyckelfil (*bin);;Alla filer (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Kantlös helskärm" @@ -1889,6 +1904,10 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knappar" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1919,7 +1938,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Interpreterare med cache (långsammare)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1985,8 +2004,8 @@ msgstr "Det går bara att generera AR-koder för värden i virtuellt minne." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan inte hitta Wii-fjärrkontrollen med anslutnings-handle {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Det går inte att starta en nätspelssession medan ett spel fortfarande körs!" @@ -2021,7 +2040,7 @@ msgid "Cannot compare against last value on first search." msgstr "" "Det går inte att jämföra med föregående värde under den första sökningen." -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "Kan inte hitta GC-IPL-filen." @@ -2033,7 +2052,7 @@ msgstr "Det går inte att generera en AR-kod för den här adressen." msgid "Cannot refresh without results." msgstr "Det går inte att uppdatera utan resultat." -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "Kunde inte starta spelet för att GC-IPL-filen inte kunde hittas." @@ -2127,7 +2146,7 @@ msgstr "Leta efter ändringar i spellistan i bakgrunden" msgid "Check for updates" msgstr "Leta efter uppdateringar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2258,7 +2277,7 @@ msgstr "Kompilera shaders före start" msgid "Compiling Shaders" msgstr "Kompilerar shaders" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2296,6 +2315,7 @@ msgid "Configure Controller" msgstr "Anpassa kontroll" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Konfigurera Dolphin" @@ -2310,10 +2330,10 @@ msgstr "Konfigurera utmatning" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "Bekräfta" @@ -2570,7 +2590,7 @@ msgstr "Kopiera hex" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 msgid "Copy Value" -msgstr "" +msgstr "Kopiera värde" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:538 msgid "Copy code &line" @@ -2745,7 +2765,7 @@ msgstr "Skapa nytt minneskort" msgid "Create..." msgstr "Skapa..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2769,11 +2789,11 @@ msgstr "Skapare:" msgid "Critical" msgstr "Kritisk" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Beskär" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2918,7 +2938,7 @@ msgstr "Data mottagen!" msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro-filer" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Död zon" @@ -2931,7 +2951,7 @@ msgstr "Felsökning" msgid "Debug Only" msgstr "Endast felsökning" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Felsökning" @@ -2998,7 +3018,7 @@ msgstr "Standard-ISO:" msgid "Default thread" msgstr "Förvald tråd" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "Fördröj EFB-cacheinvalidering" @@ -3006,7 +3026,7 @@ msgstr "Fördröj EFB-cacheinvalidering" msgid "Defer EFB Copies to RAM" msgstr "Fördröj EFB-kopior till RAM" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -3055,7 +3075,7 @@ msgstr "Djup:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3067,6 +3087,10 @@ msgstr "Beskrivning" msgid "Description:" msgstr "Beskrivning:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Frikopplad" @@ -3162,7 +3186,7 @@ msgstr "Inaktivera Bounding Box" msgid "Disable Copy Filter" msgstr "Inaktivera kopieringsfilter" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "Inaktivera EFB-VRAM-kopior" @@ -3197,7 +3221,7 @@ msgstr "" "inte fungera rätt.

Om du är osäker kan du lämna " "detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
Om du är osäker kan du " "lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3602,7 +3626,7 @@ msgstr "" "

Om du är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3685,7 +3709,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "Faktisk prioritet" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3734,14 +3758,14 @@ msgstr "Emulering måste ha startats för att spela in." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "Aktivera" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "Aktivera API-valideringslager" @@ -3777,12 +3801,16 @@ msgstr "Åsidosätt den emulerade minnesstorleken" msgid "Enable FPRF" msgstr "Aktivera FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "Aktivera MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Aktivera Progressive scan" @@ -3803,7 +3831,7 @@ msgstr "Aktivera högtalardata" msgid "Enable Usage Statistics Reporting" msgstr "Aktivera statistikrapportering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Aktivera Wireframe" @@ -3862,7 +3890,7 @@ msgstr "" "texturdekodning.

Om du är osäker kan du lämna detta " "markerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3875,7 +3903,7 @@ msgstr "" "

Om du är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3910,7 +3938,7 @@ msgstr "" "Aktiverar minneshanterarenheten som behövs för några spel. (PÅ = Kompatibel, " "AV = Snabb)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3923,7 +3951,7 @@ msgstr "" "

Om du är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -4025,12 +4053,12 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4250,7 +4278,7 @@ msgstr "Början av uttryck förväntades." msgid "Expected variable name." msgstr "Variabelnamn förväntades." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "Experimentell" @@ -4429,7 +4457,7 @@ msgstr "" "Misslyckades att radera minneskort för nätspel. Bekräfta dina " "skrivbehörigheter." -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "Misslyckades att radera den valda filen." @@ -4454,7 +4482,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "Misslyckades med att exportera %n av %1 sparfil(er)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "Misslyckades att exportera följande sparfiler:" @@ -4514,7 +4542,7 @@ msgstr "" "minnet (Verktyg -> Hantera NAND -> Kontrollera NAND-minne...) och importera " "sedan sparfilen igen." -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "Misslyckades att initialisera kärnan" @@ -4537,12 +4565,12 @@ msgstr "Misslyckades att initialisera renderarklasser" msgid "Failed to install pack: %1" msgstr "Misslyckades att installera paket: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "Misslyckades att installera denna titel till NAND-minnet." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4578,7 +4606,7 @@ msgstr "" "uppdateringspaketet KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Misslyckades att öppna '%1'" @@ -4611,7 +4639,7 @@ msgstr "" msgid "Failed to open file." msgstr "Kunde inte öppna fil." -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "Misslyckades att öppna servern" @@ -4675,7 +4703,7 @@ msgstr "" "\n" "Vill du konvertera den utan att ta bort skräpdata?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "Kunde inte ta bort denna titel från NAND-minnet." @@ -4760,9 +4788,9 @@ msgstr "" "Misslyckades att skriva till utdatafilen \"{0}\".\n" "Kontrollera att det finns tillräckligt med utrymme på målenheten." -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "Misslyckades" @@ -4805,7 +4833,7 @@ msgstr "Synfält" msgid "File Details" msgstr "Fildetaljer" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4819,19 +4847,19 @@ msgstr "Filformat:" msgid "File Info" msgstr "Filinformation" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Filnamn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Sökväg" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Filstorlek" @@ -4868,7 +4896,7 @@ msgstr "Filstorleken matchar inte någon känd storlek för GameCube-minneskort. msgid "Filesize in header mismatches actual card size." msgstr "Filstorleken i headern matchar inte minneskortets faktiska storlek." -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Filsystem" @@ -5062,7 +5090,7 @@ msgstr "Gå fram en bildruta - Öka hastighet" msgid "Frame Advance Reset Speed" msgstr "Gå fram en bildruta - Nollställ hastighet" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "Bildrutedumpning" @@ -5070,7 +5098,7 @@ msgstr "Bildrutedumpning" msgid "Frame Range" msgstr "Räckvidd för bildrutor" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "Bildrutedumpfilen \"{0}\" finns redan. Vill du skriva över?" @@ -5351,7 +5379,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "Game Boy Advance i uttag %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Spelkonfiguration" @@ -5363,7 +5391,7 @@ msgstr "Speldetaljer" msgid "Game Folders" msgstr "Spelmappar" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Spel-ID" @@ -5467,8 +5495,12 @@ msgstr "GameCube-mikrofon i plats %1" msgid "GameCube TAS Input %1" msgstr "GameCube-TAS-inmatning %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko-koder" @@ -5516,9 +5548,9 @@ msgstr "Tyskland" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "GetDeviceList misslyckades: {0}" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5536,11 +5568,19 @@ msgstr "Korrekt kopia" msgid "Graphics" msgstr "Grafik" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Växla grafikalternativ" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5939,7 +5979,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "Presentera XFB omedelbart" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5973,11 +6013,11 @@ msgstr "Importera sparfil(er)" msgid "Import Wii Save..." msgstr "Importera Wii-sparning…" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "Importerar NAND-kopia" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -6050,13 +6090,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "Inkrementell rotation (rad/sek)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Info" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -6080,7 +6120,7 @@ msgid "Input strength required for activation." msgstr "Inmatningsstyrka som krävs för att aktiveras." #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "Inmatningsstyrka att ignorera samt skala med." @@ -6409,7 +6449,7 @@ msgstr "Tangentbord" msgid "Keys" msgstr "Tangenter" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6567,7 +6607,7 @@ msgstr "Ladda &felaktig map-fil..." msgid "Load &Other Map File..." msgstr "Ladda &annan map-fil..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Läs in anpassade texturer" @@ -6714,7 +6754,7 @@ msgstr "Ladda..." msgid "Loaded symbols from '%1'" msgstr "Laddade symboler från '%1'" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6724,6 +6764,12 @@ msgstr "" "User/Load/DynamicInputTextures/<spel-id>/.

Om " "du är osäker kan du lämna detta omarkerat." +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Lokalt" @@ -6809,7 +6855,7 @@ msgstr "MadCatz Gameshark-filer" msgid "Main Stick" msgstr "Huvudspak" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6837,7 +6883,7 @@ msgstr "" msgid "Manage NAND" msgstr "Hantera NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "Manuell textursampling" @@ -6911,7 +6957,7 @@ msgstr "MemoryCard: Read anropades med ogiltig källadress ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write anropades med ogiltig destinationsadress ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6923,7 +6969,7 @@ msgstr "" "rekommenderas att du har säkerhetskopior av båda NAND-minnena. Är du säker " "på att du vill fortsätta?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6933,7 +6979,7 @@ msgstr "MiB" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Övrigt" @@ -6973,7 +7019,7 @@ msgstr "" msgid "Modifier" msgstr "Redigerare" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -7085,11 +7131,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "Namn" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "Namn för ny etikett:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "Namn på etiketten att ta bort:" @@ -7181,7 +7227,7 @@ msgstr "En ny identitet har genererats." msgid "New instruction:" msgstr "Ny instruktion:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Ny etikett" @@ -7302,7 +7348,7 @@ msgstr "Inga profiler hittades för spelinställningen \"{0}\"" msgid "No recording loaded." msgstr "Ingen inspelning laddad." -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "Ingen spardata hittades." @@ -7353,7 +7399,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "Hittades inte" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7586,11 +7632,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "PNG-komprimeringsnivå" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG-komprimeringsnivå:" @@ -7656,7 +7702,7 @@ msgstr "Patchredigerare" msgid "Patch name" msgstr "Patchnamn" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Patcher" @@ -7718,7 +7764,7 @@ msgstr "Fysisk" msgid "Physical address space" msgstr "Fysiskt adressutrymme" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7738,7 +7784,7 @@ msgstr "Luta nedåt" msgid "Pitch Up" msgstr "Luta uppåt" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Plattform" @@ -7813,7 +7859,7 @@ msgstr "Efterbehandlingseffekt:" msgid "Post-Processing Shader Configuration" msgstr "Efterbehandlingsshaderkonfiguration" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "Läs in anpassade texturer i förhand" @@ -7970,7 +8016,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Fråga" @@ -8154,7 +8200,7 @@ msgstr "Uppdaterade nuvarande värden." msgid "Refreshing..." msgstr "Uppdaterar..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8201,7 +8247,7 @@ msgstr "Ta bort skräpdata (kan ej återställas):" msgid "Remove Tag..." msgstr "Ta bort etikett..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "Ta bort etikett" @@ -8232,7 +8278,7 @@ msgstr "Rendera till huvudfönstret" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8257,6 +8303,7 @@ msgstr "Förfrågan att vara med i din grupp" msgid "Reset" msgstr "Återställ" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -8484,8 +8531,8 @@ msgstr "Spara" msgid "Save All" msgstr "Spara alla" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "Sparfilsexportering" @@ -8523,7 +8570,7 @@ msgstr "Spara äldsta snabbsparning" msgid "Save Preset" msgstr "Spara förinställningar" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "Spara inspelning som" @@ -8744,7 +8791,7 @@ msgstr "Välj" msgid "Select Dump Path" msgstr "Välj dump-sökväg:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "Välj exporteringskatalog" @@ -8845,9 +8892,9 @@ msgstr "Välj en mapp" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Välj en fil" @@ -8879,7 +8926,7 @@ msgstr "Välj e-Readerkort" msgid "Select the RSO module address:" msgstr "Välj RSO-modulens adress:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "Välj inspelning att spela upp" @@ -8887,11 +8934,11 @@ msgstr "Välj inspelning att spela upp" msgid "Select the Virtual SD Card Root" msgstr "Välj rot för virtuellt SD-kort" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Välj nyckelfil (OTP/SEEPROM-kopia)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Välj sparningsfilen" @@ -9124,7 +9171,7 @@ msgstr "" msgid "Settings" msgstr "Inställningar" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan inte skapa filen setting.txt" @@ -9279,7 +9326,7 @@ msgstr "Visa Ryssland" msgid "Show Spain" msgstr "Visa Spanien" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "Visa statistik" @@ -9318,12 +9365,12 @@ msgstr "Visa i &minne" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "Visa i kod" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "Visa i minne" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 msgid "Show in code" @@ -9331,7 +9378,7 @@ msgstr "Visa i kod" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "Visa i minne" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9376,7 +9423,7 @@ msgstr "" "Visar spelarens maximala ping under nätspel.

Om du " "är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9578,7 +9625,7 @@ msgstr "Specialiserad (standard)" msgid "Specific" msgstr "Specifik" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9834,8 +9881,8 @@ msgstr "Penna" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9860,7 +9907,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "Exporterade %n av %1 sparfil(er)." -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "Exporteringen av sparfiler lyckades" @@ -9880,12 +9927,12 @@ msgstr "Extraheringen av systemdata lyckades." msgid "Successfully imported save file." msgstr "Importeringen av sparfilen lyckades." -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "Titeln har installerats i NAND-minnet." -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "Titeln har tagits bort från NAND-minnet." @@ -10029,7 +10076,7 @@ msgid "TAS Tools" msgstr "TAS-verktyg" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -10066,11 +10113,11 @@ msgstr "Texturcache" msgid "Texture Cache Accuracy" msgstr "Texturcachenoggrannhet" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "Texturdumpning" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Överlägg för texturformat" @@ -10517,8 +10564,14 @@ msgstr "" "Denna Action Replay-simulator stöder inte koder som förändrar själva Action " "Replay." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Det går inte att ångra detta!" @@ -10661,7 +10714,7 @@ msgstr "Denna titel är inställd på att använda ett ogiltigt IOS." msgid "This title is set to use an invalid common key." msgstr "Denna titel är inställd på att använda en ogiltig gemensam nyckel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10673,7 +10726,7 @@ msgstr "" "\n" "DSPHLE: Okänd µcode (CRC = {0:08x}) - AX kommer användas." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10732,7 +10785,7 @@ msgstr "Trådar" msgid "Threshold" msgstr "Tröskel" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10749,7 +10802,7 @@ msgstr "" "Hur lång tid indatan ska vara stabil för att kalibrering ska ske. (noll för " "att stänga av)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -11073,7 +11126,7 @@ msgstr "Avinstallera" msgid "Uninstall from the NAND" msgstr "Avinstallera från NAND-minnet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11278,7 +11331,7 @@ msgstr "Använd inbyggd databas för spelnamn" msgid "Use Custom User Style" msgstr "Använd anpassad användarstil" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "Använd förlustfritt kodek (FFV1)" @@ -11290,7 +11343,7 @@ msgstr "Använd PAL60-läge (EuRGB60)" msgid "Use Panic Handlers" msgstr "Använd panikhanterare" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11438,7 +11491,7 @@ msgstr "Används i vanliga fall för positionsmatriser" msgid "Usually used for tex coord matrices" msgstr "Används i vanliga fall för texturkoordinatmatriser" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Hjälpprogram" @@ -11463,7 +11516,7 @@ msgstr "Hastighet" msgid "Verbosity" msgstr "Felsökningsnivå" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "Verifiera" @@ -11773,7 +11826,7 @@ msgstr "Västerländsk (Windows-1252)" msgid "Whammy" msgstr "Svajarm" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11785,7 +11838,7 @@ msgstr "" "mipmaps' är aktiverat i Förbättringar.

Om du är " "osäker kan du lämna detta markerat." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 22ff03a512..0dd5a0c706 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -93,7 +93,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -558,6 +559,10 @@ msgstr "&Özellikler" msgid "&Read-Only Mode" msgstr "&Salt-Okunur Mod" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "&Kayıtlar" @@ -682,7 +687,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -893,8 +898,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "Şu anda zaten bir NetPlay oturumu çalışmakta!" @@ -923,7 +928,7 @@ msgstr "Zaten bir diskin yerleştirilme işlemi sürüyor." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -960,7 +965,7 @@ msgstr "" msgid "AR Code" msgstr "AR Kodu" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR Kodları" @@ -1172,6 +1177,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1208,10 +1218,15 @@ msgstr "Advance Game Port" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "Gelişmiş" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "Afrika" @@ -1228,7 +1243,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1245,7 +1260,7 @@ msgstr "Tüm Dosyalar (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1254,8 +1269,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1403,7 +1418,7 @@ msgstr "Küçük Haritaları algıla" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1513,7 +1528,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1545,7 +1560,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1593,7 +1608,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1656,11 +1671,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1704,15 +1719,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "Çerçevesiz Tam Ekran" @@ -1818,6 +1833,10 @@ msgstr "Düğme" msgid "Buttons" msgstr "Düğmeler" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1848,7 +1867,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "Önbellekli Interpreter (yavaş)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1905,8 +1924,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1936,7 +1955,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "GC IPL bulunamadı." @@ -1948,7 +1967,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "GC IPL bulunamadığı için oyun başlatılamıyor." @@ -2034,7 +2053,7 @@ msgstr "" msgid "Check for updates" msgstr "Güncellemeleri kontrol et" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2163,7 +2182,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2201,6 +2220,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Dolphin'i Yapılandır" @@ -2215,10 +2235,10 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "" @@ -2604,7 +2624,7 @@ msgstr "" msgid "Create..." msgstr "Oluştur..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2622,11 +2642,11 @@ msgstr "" msgid "Critical" msgstr "Kritik" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "Kırp" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2764,7 +2784,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "Ölü Bölge" @@ -2777,7 +2797,7 @@ msgstr "" msgid "Debug Only" msgstr "Yalnızca Hata Ayıklama" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "Hata ayıklama" @@ -2844,7 +2864,7 @@ msgstr "Varsayılan ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2852,7 +2872,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2895,7 +2915,7 @@ msgstr "Derinlik:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2907,6 +2927,10 @@ msgstr "Açıklama" msgid "Description:" msgstr "Açıklama:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2996,7 +3020,7 @@ msgstr "Sınırlayıcı Kutusunu Devre Dışı Bırak" msgid "Disable Copy Filter" msgstr "Kopyalama Filtresini Devre Dışı Bırak" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -3027,7 +3051,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3464,7 +3488,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3510,14 +3534,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "API Doğrulama Katmanlarını Etkinleştir" @@ -3553,12 +3577,16 @@ msgstr "" msgid "Enable FPRF" msgstr "FPRF'yi Etkinleştir" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "MMU'ya İzin Ver" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "Progresif Taramaya İzin Ver" @@ -3579,7 +3607,7 @@ msgstr "Hoparlör verisine izin ver" msgid "Enable Usage Statistics Reporting" msgstr "İstatistik Raporlamayı Etkinleştir" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "Wireframe modu" @@ -3626,7 +3654,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3634,7 +3662,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3662,7 +3690,7 @@ msgstr "" "Hafıza Yönetim Ünitesini etkinleştirir. Bazı oyunlarda gereklidir. (Açık = " "Uyumlu, Kapalı = Hızlı)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3670,7 +3698,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3766,12 +3794,12 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3983,7 +4011,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4156,7 +4184,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4181,7 +4209,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4230,7 +4258,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4250,12 +4278,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4289,7 +4317,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4320,7 +4348,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4378,7 +4406,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4455,9 +4483,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4498,7 +4526,7 @@ msgstr "" msgid "File Details" msgstr "Dosya Ayrıntıları" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4512,19 +4540,19 @@ msgstr "Dosya Biçimi:" msgid "File Info" msgstr "Dosya Bilgisi" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "Dosya Adı" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "Dosya Yolu" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "Dosya Boyutu" @@ -4559,7 +4587,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "Dosya sistemi" @@ -4733,7 +4761,7 @@ msgstr "Kare İlerletme Hızını Arttır" msgid "Frame Advance Reset Speed" msgstr "Kare İlerletme Hızını Sıfırla" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4741,7 +4769,7 @@ msgstr "" msgid "Frame Range" msgstr "Çerçeve Aralığı" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4989,7 +5017,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "Oyun Yapılandırması" @@ -5001,7 +5029,7 @@ msgstr "Oyun Ayrıntıları" msgid "Game Folders" msgstr "Oyun Klasörleri" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "Oyun ID'si" @@ -5103,8 +5131,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko Kodları" @@ -5154,7 +5186,7 @@ msgstr "Almanya" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5172,11 +5204,19 @@ msgstr "" msgid "Graphics" msgstr "Grafikler" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafik Geçişleri" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5509,7 +5549,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5537,11 +5577,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii Kayıtlarını Al..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5607,13 +5647,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "Bilgi" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5637,7 +5677,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5961,7 +6001,7 @@ msgstr "Klavye" msgid "Keys" msgstr "Tuşlar" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6113,7 +6153,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "Özel Dokuları Yükle" @@ -6260,13 +6300,19 @@ msgstr "Yükle..." msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "Yerel" @@ -6348,7 +6394,7 @@ msgstr "" msgid "Main Stick" msgstr "Ana Çubuk" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6371,7 +6417,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6445,7 +6491,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6453,7 +6499,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6463,7 +6509,7 @@ msgstr "" msgid "Microphone" msgstr "Mikrofon" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "Çeşitli" @@ -6495,7 +6541,7 @@ msgstr "" msgid "Modifier" msgstr "Değiştirici" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6603,11 +6649,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6699,7 +6745,7 @@ msgstr "Yeni kimlik oluşturuldu." msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "Yeni etiket" @@ -6817,7 +6863,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7090,11 +7136,11 @@ msgstr "PAL" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7160,7 +7206,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "Yamalar" @@ -7222,7 +7268,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7242,7 +7288,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "Platform" @@ -7313,7 +7359,7 @@ msgstr "Post-Processing Efekti:" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7458,7 +7504,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "Soru" @@ -7636,7 +7682,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7683,7 +7729,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7711,7 +7757,7 @@ msgstr "Ana Pencereye Dönüştür" msgid "Rendering" msgstr "Rendering" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7734,6 +7780,7 @@ msgstr "" msgid "Reset" msgstr "Sıfırla" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7961,8 +8008,8 @@ msgstr "Kaydet" msgid "Save All" msgstr "Tümünü Kaydet" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -8000,7 +8047,7 @@ msgstr "En Eski Durumu kaydet" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8216,7 +8263,7 @@ msgstr "Seç" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8317,9 +8364,9 @@ msgstr "Bir Dizin Seç" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "Bir Dosya Seç" @@ -8351,7 +8398,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8359,11 +8406,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Kayıt dosyasını seçin" @@ -8556,7 +8603,7 @@ msgstr "" msgid "Settings" msgstr "Ayarlar" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: setting.txt dosyası oluşturulamıyor" @@ -8709,7 +8756,7 @@ msgstr "Rusya'yı Göster" msgid "Show Spain" msgstr "İspanya'yı Göster" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "İstatistikleri Göster" @@ -8796,7 +8843,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8986,7 +9033,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9223,8 +9270,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9249,7 +9296,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9269,12 +9316,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9412,7 +9459,7 @@ msgid "TAS Tools" msgstr "TAS Araçları" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9449,11 +9496,11 @@ msgstr "Doku Önbelleği" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "Doku Biçimi Kaplaması" @@ -9844,8 +9891,14 @@ msgid "" msgstr "" "Bu Action Replay simülatörü, kodların kendisini düzenlemesini desteklemiyor." +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9958,7 +10011,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9966,7 +10019,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10012,7 +10065,7 @@ msgstr "" msgid "Threshold" msgstr "Eşik" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "Eğim" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10328,7 +10381,7 @@ msgstr "Kaldır" msgid "Uninstall from the NAND" msgstr "NAND'dan kaldır" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10524,7 +10577,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10536,7 +10589,7 @@ msgstr "PAL60 Modunu Kullan (EuRGB60)" msgid "Use Panic Handlers" msgstr "Önemli Hataları Bildir" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10658,7 +10711,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "Gereçler" @@ -10683,7 +10736,7 @@ msgstr "" msgid "Verbosity" msgstr "Ayrıntı seviyesi" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10937,7 +10990,7 @@ msgstr "" msgid "Whammy" msgstr "Darbe" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10945,7 +10998,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 853cd3d5d7..15c20f014b 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -94,7 +94,8 @@ msgstr "$ 用户变量 " #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" @@ -565,6 +566,10 @@ msgstr "属性(&P)" msgid "&Read-Only Mode" msgstr "只读模式(&R)" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "寄存器(&R)" @@ -689,7 +694,7 @@ msgstr "- 减" msgid "--> %1" msgstr "--> %1" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -899,8 +904,8 @@ msgstr "" msgid "> Greater-than" msgstr "> 大于" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "已经有一个联机会话正在进行!" @@ -928,7 +933,7 @@ msgstr "光盘已可插入。" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "载入保存状态必须指定要启动的游戏" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -975,7 +980,7 @@ msgstr "" msgid "AR Code" msgstr "AR 代码" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR 代码" @@ -1199,6 +1204,11 @@ msgstr "按 CPU 状态划分的地址空间" msgid "Address:" msgstr "地址:" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1249,10 +1259,15 @@ msgstr "GBA 游戏端口" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "高级" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "非洲" @@ -1269,7 +1284,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1286,7 +1301,7 @@ msgstr "所有文件 (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "所有 GC/Wii 文件" @@ -1295,8 +1310,8 @@ msgstr "所有 GC/Wii 文件" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "所有状态存档 (*.sav *.s##);; 所有文件 (*)" @@ -1448,7 +1463,7 @@ msgstr "特殊多级纹理检测" msgid "Are you sure that you want to delete '%1'?" msgstr "确定要删除 '%1' 吗?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "确定要删除该文件吗?" @@ -1563,7 +1578,7 @@ msgid "Auxiliary" msgstr "副内存" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "B" @@ -1597,7 +1612,7 @@ msgstr "后链" msgid "Backend" msgstr "后端" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "后端多线程" @@ -1645,7 +1660,7 @@ msgstr "提交的偏移量不正确。" msgid "Bad value provided." msgstr "值格式不正确。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1708,11 +1723,11 @@ msgstr "二进制 SSL (读取)" msgid "Binary SSL (write)" msgstr "二进制 SSL (写入)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "比特率 (kbps):" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1755,15 +1770,15 @@ msgstr "" msgid "Boot to Pause" msgstr "引导后暂停" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 备份文件 (*.bin);; 所有文件 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 密钥文件 (*.bin);; 所有文件 (*)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "无边框全屏" @@ -1871,6 +1886,10 @@ msgstr "按键" msgid "Buttons" msgstr "按键" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1901,7 +1920,7 @@ msgstr "CRC32:" msgid "Cached Interpreter (slower)" msgstr "缓存解释器(较慢)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1964,8 +1983,8 @@ msgstr "只能为虚拟内存中的数值生成 AR 代码。" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "不能按照连接句柄 {0:02x} 找到 Wii 遥控器" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "游戏运行时无法启动联机会话!" @@ -1994,7 +2013,7 @@ msgstr "无法启动此 WAD,因为无法将其安装到 NAND 中。" msgid "Cannot compare against last value on first search." msgstr "无法与首次搜索的上个值进行比较。" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "找不到 GC IPL。" @@ -2006,7 +2025,7 @@ msgstr "无法为此地址生成 AR 代码。" msgid "Cannot refresh without results." msgstr "没有结果下无法刷新。" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "找不到 GC IPL,无法启动游戏。" @@ -2097,7 +2116,7 @@ msgstr "在后台检查游戏列表变更" msgid "Check for updates" msgstr "检查更新" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2226,7 +2245,7 @@ msgstr "在开始前编译着色器" msgid "Compiling Shaders" msgstr "正在编译着色器" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2264,6 +2283,7 @@ msgid "Configure Controller" msgstr "配置控制器" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "Dolphin 配置" @@ -2278,10 +2298,10 @@ msgstr "配置输出" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "确定" @@ -2691,7 +2711,7 @@ msgstr "创建新存储卡" msgid "Create..." msgstr "创建..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2712,11 +2732,11 @@ msgstr "创建者:" msgid "Critical" msgstr "错误" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "裁切" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2859,7 +2879,7 @@ msgstr "数据已接收!" msgid "Datel MaxDrive/Pro files" msgstr "Datel MaxDrive/Pro 文件" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "死区" @@ -2872,7 +2892,7 @@ msgstr "调试" msgid "Debug Only" msgstr "调试专用" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "调试" @@ -2939,7 +2959,7 @@ msgstr "默认镜像:" msgid "Default thread" msgstr "默认线程" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "推迟 EFB 缓存失效" @@ -2947,7 +2967,7 @@ msgstr "推迟 EFB 缓存失效" msgid "Defer EFB Copies to RAM" msgstr "推迟 EFB 副本到内存" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2993,7 +3013,7 @@ msgstr "深度:" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -3005,6 +3025,10 @@ msgstr "说明" msgid "Description:" msgstr "说明:" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "分离的" @@ -3098,7 +3122,7 @@ msgstr "禁用边界框" msgid "Disable Copy Filter" msgstr "禁用复制过滤" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "禁用 EFB VRAM 副本" @@ -3131,7 +3155,7 @@ msgstr "" "禁用边界框模拟。

这可能显著提高 GPU 性能,但是一些游戏可能会停止运行。" "

如果不确定,请勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked.
如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3523,7 +3547,7 @@ msgstr "" "将 EFB 副本的内容转储到 User/Dump/Textures/ 目录中。" "

如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3601,7 +3625,7 @@ msgstr "有效" msgid "Effective priority" msgstr "有效优先级" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "EiB" @@ -3650,14 +3674,14 @@ msgstr "必须要开始模拟才能录制。" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "启用" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "启用 API 验证层" @@ -3693,12 +3717,16 @@ msgstr "启用模拟内存大小覆盖" msgid "Enable FPRF" msgstr "启用 FPRF" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "启用 MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "启用逐行扫描" @@ -3719,7 +3747,7 @@ msgstr "启用扬声器" msgid "Enable Usage Statistics Reporting" msgstr "启用使用情况统计报告" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "启用线框" @@ -3770,7 +3798,7 @@ msgstr "" "GPU 纹理解码不兼容。

如果不确定,请勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3781,7 +3809,7 @@ msgstr "" "有性能提升。目前仅限于 Vulkan 后端。

如果不确定,请" "勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3812,7 +3840,7 @@ msgid "" "OFF = Fast)" msgstr "启用内存管理单元。一些游戏需要(开 = 兼容,关 = 快速)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3823,7 +3851,7 @@ msgstr "" "端,这也为已编译的着色器启用调试符号。

如果不确定," "请不要勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3925,12 +3953,12 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4160,7 +4188,7 @@ msgstr "建议用表达式开始符。" msgid "Expected variable name." msgstr "建议使用的变量名称。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "实验性" @@ -4335,7 +4363,7 @@ msgstr "删除联机 GBA{0} 存档文件失败。请验证你的写入权限。" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "删除联机存储卡失败。请验证你的写入权限。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "无法删除所选文件。" @@ -4360,7 +4388,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "在 %1 个存档文件中 %n 个导出失败。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "导出以下存档文件失败:" @@ -4414,7 +4442,7 @@ msgstr "" "导入存档文件失败。您的 NAND 可能已损坏,或某些因素阻止访问里面的文件。请尝试" "修复 NAND(工具 -> 管理 NAND -> 校验 NAND...),然后再次导入存档。" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "初始化核心失败" @@ -4437,12 +4465,12 @@ msgstr "初始化渲染器类失败" msgid "Failed to install pack: %1" msgstr "安装包失败: %1" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "无法将该游戏安装到 NAND。" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4476,7 +4504,7 @@ msgid "" msgstr "加载 {0} 失败。如果你使用的是 Windows 7,请尝试安装 KB4019990 更新包。" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "无法打开 '%1'" @@ -4509,7 +4537,7 @@ msgstr "" msgid "Failed to open file." msgstr "打开文件失败。" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "打开服务器失败" @@ -4572,7 +4600,7 @@ msgstr "" "\n" "是否要在不移除垃圾数据的情况下进行转换?" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "将该游戏从 NAND 中移除失败。" @@ -4651,9 +4679,9 @@ msgstr "" "无法写入输出文件 “{0}”。\n" "请检查目标驱动器是否有足够多的可用空间。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "失败" @@ -4695,7 +4723,7 @@ msgstr "视野" msgid "File Details" msgstr "文件详细信息" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4709,19 +4737,19 @@ msgstr "文件格式:" msgid "File Info" msgstr "文件信息" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "文件名" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "文件路径" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "文件大小" @@ -4758,7 +4786,7 @@ msgstr "文件大小与任何已知的 GameCube 存储卡大小都不匹配。" msgid "Filesize in header mismatches actual card size." msgstr "标头中的文件大小与实际卡大小不匹配。" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "文件系统" @@ -4948,7 +4976,7 @@ msgstr "逐帧播放增加速度" msgid "Frame Advance Reset Speed" msgstr "逐帧播放重置速度" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "转储帧" @@ -4956,7 +4984,7 @@ msgstr "转储帧" msgid "Frame Range" msgstr "帧范围" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "帧转储图像 ‘{0}’ 已经存在。是否覆盖?" @@ -5235,7 +5263,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "GameBoy Advance 连至端口 %1" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "游戏配置" @@ -5247,7 +5275,7 @@ msgstr "游戏详细信息" msgid "Game Folders" msgstr "游戏文件夹" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "游戏 ID" @@ -5349,8 +5377,12 @@ msgstr "GameCube 麦克风插槽 %1" msgid "GameCube TAS Input %1" msgstr "GameCube TAS 输入 %1" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko 代码" @@ -5400,7 +5432,7 @@ msgstr "德国" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "GiB" @@ -5418,11 +5450,19 @@ msgstr "正确的转储" msgid "Graphics" msgstr "图形" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "图形切换" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5800,7 +5840,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "立即呈现 XFB" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5832,11 +5872,11 @@ msgstr "导入存档文件" msgid "Import Wii Save..." msgstr "导入 Wii 存档..." -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "正在导入 NAND 备份" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5907,13 +5947,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "增量旋转(度/秒)" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "信息" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5937,7 +5977,7 @@ msgid "Input strength required for activation." msgstr "激活所需要的输入力度。" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "要忽略并重新映射的输入力度。" @@ -6265,7 +6305,7 @@ msgstr "键盘" msgid "Keys" msgstr "按键" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "KiB" @@ -6423,7 +6463,7 @@ msgstr "载入损坏映射文件(&B)..." msgid "Load &Other Map File..." msgstr "载入其他映射文件(&O)..." -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "加载自定义纹理" @@ -6570,7 +6610,7 @@ msgstr "载入..." msgid "Loaded symbols from '%1'" msgstr "已从 '%1' 中加载符号" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " @@ -6580,6 +6620,12 @@ msgstr "" "<game_id>/ 目录中的自定义纹理。

如果不确定,请" "不要勾选此项。" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "本地" @@ -6664,7 +6710,7 @@ msgstr "MadCatz Gameshark 文件" msgid "Main Stick" msgstr "主摇杆" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6690,7 +6736,7 @@ msgstr "" msgid "Manage NAND" msgstr "管理 NAND" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "手动纹理采样" @@ -6764,7 +6810,7 @@ msgstr "MemoryCard: 在无效源地址 ({0:#x}) 中读取调用" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: 在无效目标地址 ({0:#x}) 中写入调用" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6774,7 +6820,7 @@ msgstr "" "将新 NAND 合并入当前 NAND 将会覆盖所有现有的频道与存档。此过程不可逆,建议您" "对两份 NAND 都进行备份。确定继续?" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "MiB" @@ -6784,7 +6830,7 @@ msgstr "MiB" msgid "Microphone" msgstr "麦克风" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "其它" @@ -6823,7 +6869,7 @@ msgstr "" msgid "Modifier" msgstr "修饰键" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6933,11 +6979,11 @@ msgstr "NTSC-U" msgid "Name" msgstr "名称" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "命名一个新标签:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "要移除的标签名:" @@ -7029,7 +7075,7 @@ msgstr "已生成新的标识。" msgid "New instruction:" msgstr "新指令:" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "新标签" @@ -7149,7 +7195,7 @@ msgstr "没有找到游戏设置 ‘{0}’ 的预设" msgid "No recording loaded." msgstr "没有录制被载入。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "没有找到存档数据。" @@ -7426,11 +7472,11 @@ msgstr "PAL" msgid "PCAP" msgstr "PCAP 格式" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "PNG 压缩级别" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "PNG 压缩级别:" @@ -7496,7 +7542,7 @@ msgstr "补丁编辑器" msgid "Patch name" msgstr "补丁名称" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "补丁" @@ -7558,7 +7604,7 @@ msgstr "物理" msgid "Physical address space" msgstr "物理地址空间" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "PiB" @@ -7578,7 +7624,7 @@ msgstr "下俯" msgid "Pitch Up" msgstr "上仰" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "平台" @@ -7649,7 +7695,7 @@ msgstr "后处理效果:" msgid "Post-Processing Shader Configuration" msgstr "后处理着色器配置" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "预读取自定义纹理" @@ -7797,7 +7843,7 @@ msgstr "DPLII 解码器的质量。质量越高音频延迟越大。" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "询问" @@ -7979,7 +8025,7 @@ msgstr "已刷新当前值。" msgid "Refreshing..." msgstr "正在刷新..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -8026,7 +8072,7 @@ msgstr "移除垃圾数据(不可逆):" msgid "Remove Tag..." msgstr "移除标签..." -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "移除标签" @@ -8056,7 +8102,7 @@ msgstr "渲染到主窗口" msgid "Rendering" msgstr "渲染" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -8081,6 +8127,7 @@ msgstr "请求加入你的派对" msgid "Reset" msgstr "重置" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "全部重置" @@ -8311,8 +8358,8 @@ msgstr "保存" msgid "Save All" msgstr "保存全部" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "存档导出" @@ -8350,7 +8397,7 @@ msgstr "保存到最早状态存档" msgid "Save Preset" msgstr "保存预设" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "录制文件另存为" @@ -8566,7 +8613,7 @@ msgstr "选择" msgid "Select Dump Path" msgstr "选择转储路径" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "选择导出目录" @@ -8667,9 +8714,9 @@ msgstr "选择目录" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "选择文件" @@ -8701,7 +8748,7 @@ msgstr "选择 e-Reader 卡" msgid "Select the RSO module address:" msgstr "选择 RSO 模块地址:" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "选择要播放的录制文件" @@ -8709,11 +8756,11 @@ msgstr "选择要播放的录制文件" msgid "Select the Virtual SD Card Root" msgstr "选择虚拟 SD 卡根目录" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "选择密钥文件 (OTP/SEEPROM 转储)" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "选择一个存档文件" @@ -8931,7 +8978,7 @@ msgstr "" msgid "Settings" msgstr "设置" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: 无法创建 setting.txt 文件" @@ -9086,7 +9133,7 @@ msgstr "显示俄罗斯" msgid "Show Spain" msgstr "显示西班牙" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "显示统计数据" @@ -9181,7 +9228,7 @@ msgstr "" "在联机游戏时显示玩家的最大延迟。

如果不确定,请不要" "勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -9377,7 +9424,7 @@ msgstr "专门化(默认)" msgid "Specific" msgstr "特定" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9626,8 +9673,8 @@ msgstr "手写笔" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9652,7 +9699,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "在 %1 个存档文件中 %n 个导出成功。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "成功导出存档文件" @@ -9672,12 +9719,12 @@ msgstr "提取系统数据成功。" msgid "Successfully imported save file." msgstr "导入存档文件成功。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "成功将此软件安装到 NAND。" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "成功将此软件从 NAND 中移除。" @@ -9823,7 +9870,7 @@ msgid "TAS Tools" msgstr "TAS 工具" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9860,11 +9907,11 @@ msgstr "纹理缓存" msgid "Texture Cache Accuracy" msgstr "纹理缓存精度" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "转储纹理" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "显示纹理格式" @@ -10282,8 +10329,14 @@ msgid "" "Replay itself." msgstr "此Action Replay模拟器不支持修改Action Replay本身的代码。" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "不能被撤销!" @@ -10410,7 +10463,7 @@ msgstr "此游戏设置为使用无效的 IOS。" msgid "This title is set to use an invalid common key." msgstr "此游戏设置为使用无效的公用密钥。" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10421,7 +10474,7 @@ msgstr "" "\n" "DSP HLE: 未知 Ucode (CRC = {0:08x}) - 强制 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10472,7 +10525,7 @@ msgstr "线程" msgid "Threshold" msgstr "阈值" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "TiB" @@ -10487,7 +10540,7 @@ msgstr "倾斜" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "触发校准的稳定输入时间段。(0 为禁用)" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10804,7 +10857,7 @@ msgstr "卸载" msgid "Uninstall from the NAND" msgstr "从 NAND 中卸载" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -11002,7 +11055,7 @@ msgstr "使用内建数据库游戏名称" msgid "Use Custom User Style" msgstr "使用自定义用户风格" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "使用无损编解码器 (FFV1)" @@ -11014,7 +11067,7 @@ msgstr "使用 PAL60 模式 (EuRGB60)" msgid "Use Panic Handlers" msgstr "使用警告程序" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -11164,7 +11217,7 @@ msgstr "通常用于位置矩阵" msgid "Usually used for tex coord matrices" msgstr "通常用于纹理坐标矩阵" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "实用功能" @@ -11189,7 +11242,7 @@ msgstr "速度" msgid "Verbosity" msgstr "详细" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "验证" @@ -11477,7 +11530,7 @@ msgstr "西方 (Windows-1252)" msgid "Whammy" msgstr "颤音" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -11488,7 +11541,7 @@ msgstr "" "卡中启用了“特殊多级纹理检测”,则特殊基本纹理也会被转储。" "

如果不确定,请勾选此项。" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index 83fafe60e6..5319d42abf 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-21 21:51+0200\n" +"POT-Creation-Date: 2022-07-01 00:12+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -74,7 +74,8 @@ msgstr "" #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:44 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" @@ -537,6 +538,10 @@ msgstr "屬性(&P)" msgid "&Read-Only Mode" msgstr "唯讀模式(&R)" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 +msgid "&Refresh List" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" msgstr "寄存器(&R)" @@ -661,7 +666,7 @@ msgstr "" msgid "--> %1" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 @@ -869,8 +874,8 @@ msgstr "" msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1432 +#: Source/Core/DolphinQt/MainWindow.cpp:1499 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +897,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:901 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -927,7 +932,7 @@ msgstr "" msgid "AR Code" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:57 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:63 msgid "AR Codes" msgstr "AR 代碼" @@ -1139,6 +1144,11 @@ msgstr "" msgid "Address:" msgstr "" +#. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 +msgid "Adjusts target radius of simulated stick gate." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" "Adjusts the accuracy at which the GPU receives texture updates from RAM." @@ -1175,10 +1185,15 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:72 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:101 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:156 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:43 msgid "Advanced" msgstr "進階" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 +msgid "Advanced Settings" +msgstr "" + #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" msgstr "" @@ -1195,7 +1210,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:749 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1212,7 +1227,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:747 +#: Source/Core/DolphinQt/MainWindow.cpp:748 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1221,8 +1236,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:1317 +#: Source/Core/DolphinQt/MainWindow.cpp:1325 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1370,7 +1385,7 @@ msgstr "" msgid "Are you sure that you want to delete '%1'?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:811 +#: Source/Core/DolphinQt/GameList/GameList.cpp:813 msgid "Are you sure you want to delete this file?" msgstr "" @@ -1480,7 +1495,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "B" msgstr "" @@ -1512,7 +1527,7 @@ msgstr "" msgid "Backend" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:129 msgid "Backend Multithreading" msgstr "" @@ -1560,7 +1575,7 @@ msgstr "" msgid "Bad value provided." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:974 +#: Source/Core/DolphinQt/GameList/GameList.cpp:976 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:217 #: Source/Core/DolphinQt/GCMemcardManager.cpp:151 #: Source/Core/DolphinQt/MenuBar.cpp:631 @@ -1623,11 +1638,11 @@ msgstr "" msgid "Binary SSL (write)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:111 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 msgid "Bitrate (kbps):" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:984 +#: Source/Core/DolphinQt/GameList/GameList.cpp:986 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" @@ -1669,15 +1684,15 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1655 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1681 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:133 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:136 msgid "Borderless Fullscreen" msgstr "無框全螢幕" @@ -1783,6 +1798,10 @@ msgstr "按鈕" msgid "Buttons" msgstr "按鈕" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +msgid "By: " +msgstr "" + #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:26 @@ -1813,7 +1832,7 @@ msgstr "" msgid "Cached Interpreter (slower)" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:235 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 msgid "" "Caches custom textures to system RAM on startup.

This can require " "exponentially more RAM but fixes possible stuttering." @@ -1870,8 +1889,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1425 +#: Source/Core/DolphinQt/MainWindow.cpp:1492 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -1900,7 +1919,7 @@ msgstr "" msgid "Cannot compare against last value on first search." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:603 +#: Source/Core/Core/Boot/Boot.cpp:601 msgid "Cannot find the GC IPL." msgstr "" @@ -1912,7 +1931,7 @@ msgstr "" msgid "Cannot refresh without results." msgstr "" -#: Source/Core/Core/Boot/Boot.cpp:601 +#: Source/Core/Core/Boot/Boot.cpp:599 msgid "Cannot start the game, because the GC IPL could not be found." msgstr "" @@ -1998,7 +2017,7 @@ msgstr "" msgid "Check for updates" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:836 +#: Source/Core/DolphinQt/GameList/GameList.cpp:838 msgid "" "Check whether you have the permissions required to delete the file or " "whether it's still in use." @@ -2127,7 +2146,7 @@ msgstr "" msgid "Compiling Shaders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:985 +#: Source/Core/DolphinQt/GameList/GameList.cpp:987 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:233 #: Source/Core/DolphinQt/MenuBar.cpp:642 msgid "Compression" @@ -2165,6 +2184,7 @@ msgid "Configure Controller" msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:43 +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:35 msgid "Configure Dolphin" msgstr "設定 Dolphin" @@ -2179,10 +2199,10 @@ msgstr "設定輸出" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:251 #: Source/Core/DolphinQt/ConvertDialog.cpp:281 #: Source/Core/DolphinQt/ConvertDialog.cpp:402 -#: Source/Core/DolphinQt/GameList/GameList.cpp:627 -#: Source/Core/DolphinQt/GameList/GameList.cpp:810 -#: Source/Core/DolphinQt/MainWindow.cpp:899 -#: Source/Core/DolphinQt/MainWindow.cpp:1620 +#: Source/Core/DolphinQt/GameList/GameList.cpp:629 +#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/MainWindow.cpp:900 +#: Source/Core/DolphinQt/MainWindow.cpp:1621 #: Source/Core/DolphinQt/WiiUpdate.cpp:136 msgid "Confirm" msgstr "確認" @@ -2558,7 +2578,7 @@ msgstr "" msgid "Create..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 msgid "" "Creates frame dumps and screenshots at the internal resolution of the " "renderer, rather than the size of the window it is displayed within." @@ -2576,11 +2596,11 @@ msgstr "" msgid "Critical" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:123 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:126 msgid "Crop" msgstr "剪裁" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:279 msgid "" "Crops the picture from its native aspect ratio to 4:3 or 16:9." "

If unsure, leave this unchecked." @@ -2718,7 +2738,7 @@ msgstr "" msgid "Datel MaxDrive/Pro files" msgstr "" -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:42 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp:37 msgid "Dead Zone" msgstr "非作用區" @@ -2731,7 +2751,7 @@ msgstr "" msgid "Debug Only" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:47 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:48 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:441 msgid "Debugging" msgstr "" @@ -2798,7 +2818,7 @@ msgstr "預設的 ISO:" msgid "Default thread" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:144 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:147 msgid "Defer EFB Cache Invalidation" msgstr "" @@ -2806,7 +2826,7 @@ msgstr "" msgid "Defer EFB Copies to RAM" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:281 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:291 msgid "" "Defers invalidation of the EFB access cache until a GPU synchronization " "command is executed. If disabled, the cache will be invalidated with every " @@ -2849,7 +2869,7 @@ msgstr "" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:519 #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:48 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 -#: Source/Core/DolphinQt/GameList/GameList.cpp:976 +#: Source/Core/DolphinQt/GameList/GameList.cpp:978 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:219 #: Source/Core/DolphinQt/MenuBar.cpp:633 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -2861,6 +2881,10 @@ msgstr "描述" msgid "Description:" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +msgid "Description: " +msgstr "" + #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "" @@ -2950,7 +2974,7 @@ msgstr "" msgid "Disable Copy Filter" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:74 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:75 msgid "Disable EFB VRAM Copies" msgstr "" @@ -2981,7 +3005,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:245 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:252 msgid "" "Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all " "upscaling.

If unsure, leave this unchecked.
If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:239 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:246 msgid "" "Dumps the contents of EFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:242 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:249 msgid "" "Dumps the contents of XFB copies to User/Dump/Textures/." "

If unsure, leave this unchecked." @@ -3416,7 +3440,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "EiB" msgstr "" @@ -3462,14 +3486,14 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:29 #: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:33 -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 -#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:158 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:91 +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:129 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:360 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:377 msgid "Enable" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:56 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:57 msgid "Enable API Validation Layers" msgstr "" @@ -3505,12 +3529,16 @@ msgstr "" msgid "Enable FPRF" msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 +msgid "Enable Graphics Mods" +msgstr "" + #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 msgid "Enable MMU" msgstr "開啟 MMU" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:124 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:127 msgid "Enable Progressive Scan" msgstr "開啟逐行掃瞄" @@ -3531,7 +3559,7 @@ msgstr "" msgid "Enable Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:51 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 msgid "Enable Wireframe" msgstr "開啟線框" @@ -3572,7 +3600,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:276 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:286 msgid "" "Enables multithreaded command submission in backends where supported. " "Enabling this option may result in a performance improvement on systems with " @@ -3580,7 +3608,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:272 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:282 msgid "" "Enables progressive scan if supported by the emulated software. Most games " "don't have any issue with this.

If unsure, leave " @@ -3606,7 +3634,7 @@ msgid "" "OFF = Fast)" msgstr "開啟記憶體管理單元,某些遊戲需要。(ON = 兼容、OFF = 快速)" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:219 msgid "" "Enables validation of API calls made by the video backend, which may assist " "in debugging graphical issues. On the Vulkan and D3D backends, this also " @@ -3614,7 +3642,7 @@ msgid "" "unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:255 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:265 msgid "" "Encodes frame dumps using the FFV1 codec.

If " "unsure, leave this unchecked." @@ -3710,12 +3738,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1077 -#: Source/Core/DolphinQt/MainWindow.cpp:1423 -#: Source/Core/DolphinQt/MainWindow.cpp:1430 -#: Source/Core/DolphinQt/MainWindow.cpp:1490 -#: Source/Core/DolphinQt/MainWindow.cpp:1497 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1424 +#: Source/Core/DolphinQt/MainWindow.cpp:1431 +#: Source/Core/DolphinQt/MainWindow.cpp:1491 +#: Source/Core/DolphinQt/MainWindow.cpp:1498 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3927,7 +3955,7 @@ msgstr "" msgid "Expected variable name." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:139 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:142 msgid "Experimental" msgstr "" @@ -4100,7 +4128,7 @@ msgstr "" msgid "Failed to delete NetPlay memory card. Verify your write permissions." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:835 +#: Source/Core/DolphinQt/GameList/GameList.cpp:837 msgid "Failed to delete the selected file." msgstr "" @@ -4125,7 +4153,7 @@ msgctxt "" msgid "Failed to export %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:571 +#: Source/Core/DolphinQt/GameList/GameList.cpp:573 msgid "Failed to export the following save files:" msgstr "" @@ -4174,7 +4202,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1077 +#: Source/Core/DolphinQt/MainWindow.cpp:1078 msgid "Failed to init core" msgstr "" @@ -4194,12 +4222,12 @@ msgstr "" msgid "Failed to install pack: %1" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1524 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4233,7 +4261,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1599 +#: Source/Core/DolphinQt/MainWindow.cpp:1600 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" @@ -4264,7 +4292,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1522 +#: Source/Core/DolphinQt/MainWindow.cpp:1523 msgid "Failed to open server" msgstr "" @@ -4322,7 +4350,7 @@ msgid "" "Would you like to convert it without removing junk data?" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." msgstr "" @@ -4399,9 +4427,9 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 -#: Source/Core/DolphinQt/GameList/GameList.cpp:834 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 +#: Source/Core/DolphinQt/GameList/GameList.cpp:836 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failure" msgstr "" @@ -4442,7 +4470,7 @@ msgstr "" msgid "File Details" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:983 +#: Source/Core/DolphinQt/GameList/GameList.cpp:985 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:229 #: Source/Core/DolphinQt/MenuBar.cpp:640 msgid "File Format" @@ -4456,19 +4484,19 @@ msgstr "" msgid "File Info" msgstr "檔案資訊" -#: Source/Core/DolphinQt/GameList/GameList.cpp:978 +#: Source/Core/DolphinQt/GameList/GameList.cpp:980 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:223 #: Source/Core/DolphinQt/MenuBar.cpp:635 msgid "File Name" msgstr "檔案名稱" -#: Source/Core/DolphinQt/GameList/GameList.cpp:979 +#: Source/Core/DolphinQt/GameList/GameList.cpp:981 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:225 #: Source/Core/DolphinQt/MenuBar.cpp:636 msgid "File Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:982 +#: Source/Core/DolphinQt/GameList/GameList.cpp:984 #: Source/Core/DolphinQt/MenuBar.cpp:639 msgid "File Size" msgstr "檔案大小" @@ -4503,7 +4531,7 @@ msgstr "" msgid "Filesize in header mismatches actual card size." msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:75 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:83 msgid "Filesystem" msgstr "檔案系統" @@ -4677,7 +4705,7 @@ msgstr "" msgid "Frame Advance Reset Speed" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:98 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:101 msgid "Frame Dumping" msgstr "" @@ -4685,7 +4713,7 @@ msgstr "" msgid "Frame Range" msgstr "" -#: Source/Core/VideoCommon/RenderBase.cpp:1766 +#: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" msgstr "" @@ -4933,7 +4961,7 @@ msgstr "" msgid "Game Boy Advance at Port %1" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:55 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:61 msgid "Game Config" msgstr "" @@ -4945,7 +4973,7 @@ msgstr "" msgid "Game Folders" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:980 +#: Source/Core/DolphinQt/GameList/GameList.cpp:982 #: Source/Core/DolphinQt/MenuBar.cpp:637 msgid "Game ID" msgstr "遊戲 ID" @@ -5047,8 +5075,12 @@ msgstr "" msgid "GameCube TAS Input %1" msgstr "" +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 +msgid "Gate Size" +msgstr "" + #: Source/Core/DolphinQt/CheatsManager.cpp:91 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:59 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko 代碼" @@ -5098,7 +5130,7 @@ msgstr "" msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" msgstr "" @@ -5116,11 +5148,19 @@ msgstr "" msgid "Graphics" msgstr "影像" +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 +msgid "Graphics Mods" +msgstr "" + #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" +#: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 +msgid "Graphics mods are currently disabled." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" "Greatly increases the quality of textures generated using render-to-texture " @@ -5453,7 +5493,7 @@ msgstr "" msgid "Immediately Present XFB" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:300 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:310 msgid "" "Implements fullscreen mode with a borderless window spanning the whole " "screen instead of using exclusive mode. Allows for faster transitions " @@ -5481,11 +5521,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1663 +#: Source/Core/DolphinQt/MainWindow.cpp:1664 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1673 +#: Source/Core/DolphinQt/MainWindow.cpp:1674 #, c-format msgid "" "Importing NAND backup\n" @@ -5551,13 +5591,13 @@ msgid "Incremental Rotation (rad/sec)" msgstr "" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:60 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 msgid "Info" msgstr "訊息" #: Source/Core/Common/MsgHandler.cpp:59 -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 #: Source/Core/DolphinQt/MenuBar.cpp:1255 #: Source/Core/DolphinQt/MenuBar.cpp:1479 msgid "Information" @@ -5581,7 +5621,7 @@ msgid "Input strength required for activation." msgstr "" #. i18n: Refers to the dead-zone setting of gamepad inputs. -#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:46 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:47 msgid "Input strength to ignore and remap." msgstr "" @@ -5905,7 +5945,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "KiB" msgstr "" @@ -6057,7 +6097,7 @@ msgstr "" msgid "Load &Other Map File..." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:68 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:69 msgid "Load Custom Textures" msgstr "" @@ -6204,13 +6244,19 @@ msgstr "" msgid "Loaded symbols from '%1'" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:231 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:238 msgid "" "Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/" "DynamicInputTextures/<game_id>/.

If unsure, " "leave this unchecked." msgstr "" +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:256 +msgid "" +"Loads graphics mods from User/Load/GraphicsMods/." +"

If unsure, leave this unchecked." +msgstr "" + #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" msgstr "" @@ -6292,7 +6338,7 @@ msgstr "" msgid "Main Stick" msgstr "主搖桿" -#: Source/Core/DolphinQt/GameList/GameList.cpp:977 +#: Source/Core/DolphinQt/GameList/GameList.cpp:979 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:221 #: Source/Core/DolphinQt/MenuBar.cpp:634 msgid "Maker" @@ -6315,7 +6361,7 @@ msgstr "" msgid "Manage NAND" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:146 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:149 msgid "Manual Texture Sampling" msgstr "" @@ -6389,7 +6435,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1645 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6397,7 +6443,7 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:420 +#: Source/Core/UICommon/UICommon.cpp:423 msgid "MiB" msgstr "" @@ -6407,7 +6453,7 @@ msgstr "" msgid "Microphone" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:119 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:122 msgid "Misc" msgstr "雜項" @@ -6439,7 +6485,7 @@ msgstr "" msgid "Modifier" msgstr "Modifier" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:208 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:215 msgid "" "Modifies textures to show the format they're encoded in.

May require " "an emulation reset to apply.

If unsure, leave this " @@ -6547,11 +6593,11 @@ msgstr "" msgid "Name" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "Name for a new tag:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Name of the tag to remove:" msgstr "" @@ -6643,7 +6689,7 @@ msgstr "" msgid "New instruction:" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1096 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1098 msgid "New tag" msgstr "" @@ -6761,7 +6807,7 @@ msgstr "" msgid "No recording loaded." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:756 +#: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." msgstr "" @@ -7034,11 +7080,11 @@ msgstr "" msgid "PCAP" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:115 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:118 msgid "PNG Compression Level" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:114 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:117 msgid "PNG Compression Level:" msgstr "" @@ -7104,7 +7150,7 @@ msgstr "" msgid "Patch name" msgstr "" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:56 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:62 msgid "Patches" msgstr "修正" @@ -7166,7 +7212,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "PiB" msgstr "" @@ -7186,7 +7232,7 @@ msgstr "" msgid "Pitch Up" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:973 +#: Source/Core/DolphinQt/GameList/GameList.cpp:975 #: Source/Core/DolphinQt/MenuBar.cpp:630 msgid "Platform" msgstr "" @@ -7257,7 +7303,7 @@ msgstr "" msgid "Post-Processing Shader Configuration" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:70 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:71 msgid "Prefetch Custom Textures" msgstr "" @@ -7400,7 +7446,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1643 +#: Source/Core/DolphinQt/MainWindow.cpp:1644 msgid "Question" msgstr "問題" @@ -7578,7 +7624,7 @@ msgstr "" msgid "Refreshing..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:981 +#: Source/Core/DolphinQt/GameList/GameList.cpp:983 #: Source/Core/DolphinQt/MenuBar.cpp:638 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 msgid "Region" @@ -7625,7 +7671,7 @@ msgstr "" msgid "Remove Tag..." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:1108 +#: Source/Core/DolphinQt/GameList/GameList.cpp:1110 msgid "Remove tag" msgstr "" @@ -7653,7 +7699,7 @@ msgstr "渲染至主視窗" msgid "Rendering" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:202 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:209 msgid "" "Renders the scene as a wireframe.

If unsure, leave " "this unchecked." @@ -7676,6 +7722,7 @@ msgstr "" msgid "Reset" msgstr "重置" +#: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:215 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:87 msgid "Reset All" msgstr "" @@ -7903,8 +7950,8 @@ msgstr "儲存" msgid "Save All" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:570 -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:572 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 #: Source/Core/DolphinQt/MenuBar.cpp:1115 msgid "Save Export" msgstr "" @@ -7942,7 +7989,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1772 +#: Source/Core/DolphinQt/MainWindow.cpp:1773 msgid "Save Recording File As" msgstr "" @@ -8156,7 +8203,7 @@ msgstr "選擇" msgid "Select Dump Path" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:550 +#: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" msgstr "" @@ -8257,9 +8304,9 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:743 -#: Source/Core/DolphinQt/MainWindow.cpp:1315 -#: Source/Core/DolphinQt/MainWindow.cpp:1323 +#: Source/Core/DolphinQt/MainWindow.cpp:744 +#: Source/Core/DolphinQt/MainWindow.cpp:1316 +#: Source/Core/DolphinQt/MainWindow.cpp:1324 msgid "Select a File" msgstr "" @@ -8291,7 +8338,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1701 +#: Source/Core/DolphinQt/MainWindow.cpp:1702 msgid "Select the Recording File to Play" msgstr "" @@ -8299,11 +8346,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1679 +#: Source/Core/DolphinQt/MainWindow.cpp:1680 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1653 +#: Source/Core/DolphinQt/MainWindow.cpp:1654 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "選擇存檔" @@ -8493,7 +8540,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:360 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8646,7 +8693,7 @@ msgstr "" msgid "Show Spain" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:52 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:53 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:60 msgid "Show Statistics" msgstr "" @@ -8733,7 +8780,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:205 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:212 msgid "" "Shows various rendering statistics.

If unsure, " "leave this unchecked." @@ -8921,7 +8968,7 @@ msgstr "" msgid "Specific" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:259 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:269 msgid "" "Specifies the zlib compression level to use when saving PNG images (both for " "screenshots and framedumping).

Since PNG uses lossless compression, " @@ -9158,8 +9205,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:381 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:269 #: Source/Core/DolphinQt/ConvertDialog.cpp:513 -#: Source/Core/DolphinQt/GameList/GameList.cpp:612 -#: Source/Core/DolphinQt/GameList/GameList.cpp:640 +#: Source/Core/DolphinQt/GameList/GameList.cpp:614 +#: Source/Core/DolphinQt/GameList/GameList.cpp:642 #: Source/Core/DolphinQt/MenuBar.cpp:1052 #: Source/Core/DolphinQt/MenuBar.cpp:1187 msgid "Success" @@ -9184,7 +9231,7 @@ msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:575 +#: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" msgstr "" @@ -9204,12 +9251,12 @@ msgstr "" msgid "Successfully imported save file." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:613 +#: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:641 +#: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." msgstr "" @@ -9347,7 +9394,7 @@ msgid "TAS Tools" msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:491 -#: Source/Core/DolphinQt/GameList/GameList.cpp:986 +#: Source/Core/DolphinQt/GameList/GameList.cpp:988 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:235 #: Source/Core/DolphinQt/MenuBar.cpp:643 msgid "Tags" @@ -9384,11 +9431,11 @@ msgstr "" msgid "Texture Cache Accuracy" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:85 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:54 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" msgstr "" @@ -9772,8 +9819,14 @@ msgid "" "Replay itself." msgstr "Action replay 模擬器不支援被 Action Replay 自身修改的代碼。" +#: Source/Core/Common/x64CPUDetect.cpp:75 +msgid "" +"This build of Dolphin is not natively compiled for your CPU.\n" +"Please run the ARM64 build of Dolphin for a better experience." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 -#: Source/Core/DolphinQt/GameList/GameList.cpp:812 +#: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "" @@ -9883,7 +9936,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:298 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9891,7 +9944,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:289 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -9936,7 +9989,7 @@ msgstr "" msgid "Threshold" msgstr "閾值" -#: Source/Core/UICommon/UICommon.cpp:421 +#: Source/Core/UICommon/UICommon.cpp:424 msgid "TiB" msgstr "" @@ -9951,7 +10004,7 @@ msgstr "傾斜" msgid "Time period of stable input to trigger calibration. (zero to disable)" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:975 +#: Source/Core/DolphinQt/GameList/GameList.cpp:977 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:213 #: Source/Core/DolphinQt/GCMemcardManager.cpp:153 #: Source/Core/DolphinQt/MenuBar.cpp:632 @@ -10252,7 +10305,7 @@ msgstr "" msgid "Uninstall from the NAND" msgstr "" -#: Source/Core/DolphinQt/GameList/GameList.cpp:628 +#: Source/Core/DolphinQt/GameList/GameList.cpp:630 msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" @@ -10446,7 +10499,7 @@ msgstr "" msgid "Use Custom User Style" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:104 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:107 msgid "Use Lossless Codec (FFV1)" msgstr "" @@ -10458,7 +10511,7 @@ msgstr "" msgid "Use Panic Handlers" msgstr "顯示錯誤提示" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:287 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:297 msgid "" "Use a manual implementation of texture sampling instead of the graphics " "backend's built-in functionality.

This setting can fix graphical " @@ -10579,7 +10632,7 @@ msgstr "" msgid "Usually used for tex coord matrices" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:64 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:65 #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:64 msgid "Utility" msgstr "工具" @@ -10604,7 +10657,7 @@ msgstr "" msgid "Verbosity" msgstr "事件" -#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:69 +#: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:77 msgid "Verify" msgstr "" @@ -10856,7 +10909,7 @@ msgstr "" msgid "Whammy" msgstr "Whammy" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:226 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:233 msgid "" "Whether to dump base game textures to User/Dump/Textures/<game_id>/. " "This includes arbitrary base textures if 'Arbitrary Mipmap Detection' is " @@ -10864,7 +10917,7 @@ msgid "" "checked.
" msgstr "" -#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:221 +#: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:228 msgid "" "Whether to dump mipmapped game textures to User/Dump/Textures/<" "game_id>/. This includes arbitrary mipmapped textures if 'Arbitrary " From bf682118785621d9510cdf848e7eb3533a516674 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 1 Jul 2022 17:13:00 -0700 Subject: [PATCH 305/659] RegisterWidget: Fix crash when right-clicking when there is no selected cell --- Source/Core/DolphinQt/Debugger/RegisterWidget.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp b/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp index 0d53155519..8ce8d19ca4 100644 --- a/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/RegisterWidget.cpp @@ -114,11 +114,11 @@ void RegisterWidget::ShowContextMenu() { QMenu* menu = new QMenu(this); - auto variant = m_table->currentItem()->data(DATA_TYPE); + auto* raw_item = m_table->currentItem(); - if (!variant.isNull()) + if (raw_item != nullptr && !raw_item->data(DATA_TYPE).isNull()) { - auto* item = static_cast(m_table->currentItem()); + auto* item = static_cast(raw_item); auto type = static_cast(item->data(DATA_TYPE).toInt()); auto display = item->GetDisplay(); From bd59b0a4902718aed235e2f22ba7dd9bf15789f6 Mon Sep 17 00:00:00 2001 From: TryTwo Date: Wed, 29 Jun 2022 11:27:44 -0700 Subject: [PATCH 306/659] Debugger MemoryViewWidget: Allow direct editing of memory cells. --- .../DolphinQt/Debugger/MemoryViewWidget.cpp | 196 +++++++++++++++++- .../DolphinQt/Debugger/MemoryViewWidget.h | 3 + .../Core/DolphinQt/Debugger/MemoryWidget.cpp | 184 +++++----------- Source/Core/DolphinQt/Debugger/MemoryWidget.h | 15 -- 4 files changed, 247 insertions(+), 151 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp index 7e87d9720b..c12fbf0d3b 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp @@ -10,14 +10,17 @@ #include #include #include +#include #include #include #include +#include #include "Common/Align.h" #include "Common/FloatUtils.h" #include "Common/StringUtil.h" +#include "Common/Swap.h" #include "Core/Core.h" #include "Core/HW/AddressSpace.h" #include "Core/PowerPC/BreakPoints.h" @@ -32,7 +35,7 @@ constexpr double SCROLL_FRACTION_DEGREES = 15.; constexpr auto USER_ROLE_IS_ROW_BREAKPOINT_CELL = Qt::UserRole; constexpr auto USER_ROLE_CELL_ADDRESS = Qt::UserRole + 1; -constexpr auto USER_ROLE_HAS_VALUE = Qt::UserRole + 2; +constexpr auto USER_ROLE_VALUE_TYPE = Qt::UserRole + 2; // Numbers for the scrollbar. These affect how much big the draggable part of the scrollbar is, how // smooth it scrolls, and how much memory it traverses while dragging. @@ -55,6 +58,7 @@ public: connect(this, &MemoryViewTable::customContextMenuRequested, m_view, &MemoryViewWidget::OnContextMenu); + connect(this, &MemoryViewTable::itemChanged, this, &MemoryViewTable::OnItemChanged); } void resizeEvent(QResizeEvent* event) override @@ -122,6 +126,27 @@ public: } } + void OnItemChanged(QTableWidgetItem* item) + { + QString text = item->text(); + MemoryViewWidget::Type type = + static_cast(item->data(USER_ROLE_VALUE_TYPE).toInt()); + std::vector bytes = m_view->ConvertTextToBytes(type, text); + + u32 address = item->data(USER_ROLE_CELL_ADDRESS).toUInt(); + u32 end_address = address + static_cast(bytes.size()) - 1; + AddressSpace::Accessors* accessors = AddressSpace::GetAccessors(m_view->GetAddressSpace()); + + if (!bytes.empty() && accessors->IsValidAddress(address) && + accessors->IsValidAddress(end_address)) + { + for (const u8 c : bytes) + accessors->WriteU8(address++, c); + } + + m_view->Update(); + } + private: MemoryViewWidget* m_view; }; @@ -235,6 +260,8 @@ constexpr int GetCharacterCount(MemoryViewWidget::Type type) void MemoryViewWidget::Update() { + const QSignalBlocker blocker(m_table); + m_table->clearSelection(); u32 address = m_address; @@ -272,7 +299,7 @@ void MemoryViewWidget::Update() bp_item->setFlags(Qt::ItemIsEnabled); bp_item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, true); bp_item->setData(USER_ROLE_CELL_ADDRESS, row_address); - bp_item->setData(USER_ROLE_HAS_VALUE, false); + bp_item->setData(USER_ROLE_VALUE_TYPE, static_cast(Type::Null)); m_table->setItem(i, 0, bp_item); @@ -282,7 +309,7 @@ void MemoryViewWidget::Update() row_item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); row_item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); row_item->setData(USER_ROLE_CELL_ADDRESS, row_address); - row_item->setData(USER_ROLE_HAS_VALUE, false); + row_item->setData(USER_ROLE_VALUE_TYPE, static_cast(Type::Null)); m_table->setItem(i, 1, row_item); @@ -297,7 +324,7 @@ void MemoryViewWidget::Update() item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); item->setData(USER_ROLE_CELL_ADDRESS, row_address); - item->setData(USER_ROLE_HAS_VALUE, false); + item->setData(USER_ROLE_VALUE_TYPE, static_cast(Type::Null)); m_table->setItem(i, c, item); } @@ -372,7 +399,7 @@ void MemoryViewWidget::UpdateColumns(Type type, int first_column) for (int c = 0; c < data_columns; c++) { auto* cell_item = new QTableWidgetItem; - cell_item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + cell_item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable); cell_item->setTextAlignment(text_alignment); const u32 cell_address = row_address + c * GetTypeSize(type); @@ -384,14 +411,14 @@ void MemoryViewWidget::UpdateColumns(Type type, int first_column) cell_item->setText(value_to_string(cell_address)); cell_item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); cell_item->setData(USER_ROLE_CELL_ADDRESS, cell_address); - cell_item->setData(USER_ROLE_HAS_VALUE, true); + cell_item->setData(USER_ROLE_VALUE_TYPE, static_cast(type)); } else { cell_item->setText(QStringLiteral("-")); cell_item->setData(USER_ROLE_IS_ROW_BREAKPOINT_CELL, false); cell_item->setData(USER_ROLE_CELL_ADDRESS, cell_address); - cell_item->setData(USER_ROLE_HAS_VALUE, false); + cell_item->setData(USER_ROLE_VALUE_TYPE, static_cast(Type::Null)); } } }; @@ -537,6 +564,156 @@ AddressSpace::Type MemoryViewWidget::GetAddressSpace() const return m_address_space; } +std::vector MemoryViewWidget::ConvertTextToBytes(Type type, QString input_text) +{ + if (type == Type::Null) + return {}; + + bool good = false; + int radix = 0; + + switch (type) + { + case Type::ASCII: + { + const QByteArray qbytes = input_text.toUtf8(); + std::vector bytes; + + for (const char c : qbytes) + bytes.push_back(static_cast(c)); + + return bytes; + } + case Type::Float32: + { + const float float_value = input_text.toFloat(&good); + + if (good) + { + const u32 value = Common::BitCast(float_value); + auto std_array = Common::BitCastToArray(Common::swap32(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Double: + { + const double double_value = input_text.toDouble(&good); + + if (good) + { + const u64 value = Common::BitCast(double_value); + auto std_array = Common::BitCastToArray(Common::swap64(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Signed8: + { + const short value = input_text.toShort(&good, radix); + good &= std::numeric_limits::min() <= value && + value <= std::numeric_limits::max(); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap8(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Signed16: + { + const short value = input_text.toShort(&good, radix); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap16(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Signed32: + { + const int value = input_text.toInt(&good, radix); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap32(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Hex8: + radix = 16; + [[fallthrough]]; + case Type::Unsigned8: + { + const unsigned short value = input_text.toUShort(&good, radix); + good &= (value & 0xFF00) == 0; + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap8(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Hex16: + radix = 16; + [[fallthrough]]; + case Type::Unsigned16: + { + const unsigned short value = input_text.toUShort(&good, radix); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap16(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Hex32: + radix = 16; + [[fallthrough]]; + case Type::Unsigned32: + { + const u32 value = input_text.toUInt(&good, radix); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap32(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::Hex64: + { + const u64 value = input_text.toULongLong(&good, 16); + if (good) + { + auto std_array = Common::BitCastToArray(Common::swap64(value)); + return std::vector(std_array.begin(), std_array.end()); + } + break; + } + case Type::HexString: + { + // Confirm it is only hex bytes + const QRegularExpression is_hex(QStringLiteral("^([0-9A-F]{2})*$"), + QRegularExpression::CaseInsensitiveOption); + const QRegularExpressionMatch match = is_hex.match(input_text); + good = match.hasMatch(); + if (good) + { + const QByteArray qbytes = QByteArray::fromHex(input_text.toUtf8()); + std::vector bytes; + + for (const char c : qbytes) + bytes.push_back(static_cast(c)); + + return bytes; + } + break; + } + } + + return {}; +} + void MemoryViewWidget::SetDisplay(Type type, int bytes_per_row, int alignment, bool dual_view) { m_type = type; @@ -638,7 +815,8 @@ void MemoryViewWidget::OnContextMenu(const QPoint& pos) if (!item_selected || item_selected->data(USER_ROLE_IS_ROW_BREAKPOINT_CELL).toBool()) return; - const bool item_has_value = item_selected->data(USER_ROLE_HAS_VALUE).toBool(); + const bool item_has_value = + item_selected->data(USER_ROLE_VALUE_TYPE).toInt() != static_cast(Type::Null); const u32 addr = item_selected->data(USER_ROLE_CELL_ADDRESS).toUInt(); auto* menu = new QMenu(this); @@ -654,7 +832,7 @@ void MemoryViewWidget::OnContextMenu(const QPoint& pos) auto* copy_value = menu->addAction(tr("Copy Value"), this, [this, &pos] { // Re-fetch the item in case the underlying table has refreshed since the menu was opened. auto* item = m_table->itemAt(pos); - if (item && item->data(USER_ROLE_HAS_VALUE).toBool()) + if (item && item->data(USER_ROLE_VALUE_TYPE).toInt() != static_cast(Type::Null)) QApplication::clipboard()->setText(item->text()); }); copy_value->setEnabled(item_has_value); diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h index 45266aad39..16e3650068 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h +++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.h @@ -23,10 +23,12 @@ class MemoryViewWidget final : public QWidget public: enum class Type : int { + Null = 0, Hex8 = 1, Hex16, Hex32, Hex64, + HexString, Unsigned8, Unsigned16, Unsigned32, @@ -51,6 +53,7 @@ public: void UpdateFont(); void ToggleBreakpoint(u32 addr, bool row); + std::vector ConvertTextToBytes(Type type, QString input_text); void SetAddressSpace(AddressSpace::Type address_space); AddressSpace::Type GetAddressSpace() const; void SetDisplay(Type type, int bytes_per_row, int alignment, bool dual_view); diff --git a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp index 93bb6561ba..55af3dbc80 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp @@ -36,6 +36,8 @@ #include "DolphinQt/QtUtils/ModalMessageBox.h" #include "DolphinQt/Settings.h" +using Type = MemoryViewWidget::Type; + MemoryWidget::MemoryWidget(QWidget* parent) : QDockWidget(parent) { setWindowTitle(tr("Memory")); @@ -127,16 +129,16 @@ void MemoryWidget::CreateWidgets() m_input_combo = new QComboBox; m_input_combo->setMaxVisibleItems(20); // Order here determines combo list order. - m_input_combo->addItem(tr("Hex Byte String"), int(InputID::HEXSTR)); - m_input_combo->addItem(tr("ASCII"), int(InputID::ASCII)); - m_input_combo->addItem(tr("Float"), int(InputID::FLOAT)); - m_input_combo->addItem(tr("Double"), int(InputID::DOUBLE)); - m_input_combo->addItem(tr("Unsigned 8"), int(InputID::U8)); - m_input_combo->addItem(tr("Unsigned 16"), int(InputID::U16)); - m_input_combo->addItem(tr("Unsigned 32"), int(InputID::U32)); - m_input_combo->addItem(tr("Signed 8"), int(InputID::S8)); - m_input_combo->addItem(tr("Signed 16"), int(InputID::S16)); - m_input_combo->addItem(tr("Signed 32"), int(InputID::S32)); + m_input_combo->addItem(tr("Hex Byte String"), int(Type::HexString)); + m_input_combo->addItem(tr("ASCII"), int(Type::ASCII)); + m_input_combo->addItem(tr("Float"), int(Type::Float32)); + m_input_combo->addItem(tr("Double"), int(Type::Double)); + m_input_combo->addItem(tr("Unsigned 8"), int(Type::Unsigned8)); + m_input_combo->addItem(tr("Unsigned 16"), int(Type::Unsigned16)); + m_input_combo->addItem(tr("Unsigned 32"), int(Type::Unsigned32)); + m_input_combo->addItem(tr("Signed 8"), int(Type::Signed8)); + m_input_combo->addItem(tr("Signed 16"), int(Type::Signed16)); + m_input_combo->addItem(tr("Signed 32"), int(Type::Signed32)); // Dump auto* dump_group = new QGroupBox(tr("Dump")); @@ -192,18 +194,18 @@ void MemoryWidget::CreateWidgets() m_display_combo = new QComboBox; m_display_combo->setMaxVisibleItems(20); - m_display_combo->addItem(tr("Hex 8"), int(MemoryViewWidget::Type::Hex8)); - m_display_combo->addItem(tr("Hex 16"), int(MemoryViewWidget::Type::Hex16)); - m_display_combo->addItem(tr("Hex 32"), int(MemoryViewWidget::Type::Hex32)); - m_display_combo->addItem(tr("Unsigned 8"), int(MemoryViewWidget::Type::Unsigned8)); - m_display_combo->addItem(tr("Unsigned 16"), int(MemoryViewWidget::Type::Unsigned16)); - m_display_combo->addItem(tr("Unsigned 32"), int(MemoryViewWidget::Type::Unsigned32)); - m_display_combo->addItem(tr("Signed 8"), int(MemoryViewWidget::Type::Signed8)); - m_display_combo->addItem(tr("Signed 16"), int(MemoryViewWidget::Type::Signed16)); - m_display_combo->addItem(tr("Signed 32"), int(MemoryViewWidget::Type::Signed32)); - m_display_combo->addItem(tr("ASCII"), int(MemoryViewWidget::Type::ASCII)); - m_display_combo->addItem(tr("Float"), int(MemoryViewWidget::Type::Float32)); - m_display_combo->addItem(tr("Double"), int(MemoryViewWidget::Type::Double)); + m_display_combo->addItem(tr("Hex 8"), int(Type::Hex8)); + m_display_combo->addItem(tr("Hex 16"), int(Type::Hex16)); + m_display_combo->addItem(tr("Hex 32"), int(Type::Hex32)); + m_display_combo->addItem(tr("Unsigned 8"), int(Type::Unsigned8)); + m_display_combo->addItem(tr("Unsigned 16"), int(Type::Unsigned16)); + m_display_combo->addItem(tr("Unsigned 32"), int(Type::Unsigned32)); + m_display_combo->addItem(tr("Signed 8"), int(Type::Signed8)); + m_display_combo->addItem(tr("Signed 16"), int(Type::Signed16)); + m_display_combo->addItem(tr("Signed 32"), int(Type::Signed32)); + m_display_combo->addItem(tr("ASCII"), int(Type::ASCII)); + m_display_combo->addItem(tr("Float"), int(Type::Float32)); + m_display_combo->addItem(tr("Double"), int(Type::Double)); m_align_combo = new QComboBox; m_align_combo->addItem(tr("Fixed Alignment")); @@ -435,12 +437,12 @@ void MemoryWidget::OnAddressSpaceChanged() void MemoryWidget::OnDisplayChanged() { - const auto type = static_cast(m_display_combo->currentData().toInt()); + const auto type = static_cast(m_display_combo->currentData().toInt()); int bytes_per_row = m_row_length_combo->currentData().toInt(); int alignment; bool dual_view = m_dual_check->isChecked(); - if (type == MemoryViewWidget::Type::Double && bytes_per_row == 4) + if (type == Type::Double && bytes_per_row == 4) bytes_per_row = 8; // Alignment: First (fixed) option equals bytes per row. 'currentData' is correct for other @@ -522,119 +524,40 @@ void MemoryWidget::ValidateAndPreviewInputValue() { m_data_preview->clear(); QString input_text = m_data_edit->text(); - const auto combo_id = static_cast(m_input_combo->currentData().toInt()); + const auto input_type = static_cast(m_input_combo->currentData().toInt()); - m_base_check->setEnabled(combo_id == InputID::U32 || combo_id == InputID::S32 || - combo_id == InputID::U16 || combo_id == InputID::S16 || - combo_id == InputID::U8 || combo_id == InputID::S8); + m_base_check->setEnabled(input_type == Type::Unsigned32 || input_type == Type::Signed32 || + input_type == Type::Unsigned16 || input_type == Type::Signed16 || + input_type == Type::Unsigned8 || input_type == Type::Signed8); if (input_text.isEmpty()) return; // Remove any spaces - if (combo_id != InputID::ASCII) + if (input_type != Type::ASCII) input_text.remove(QLatin1Char(' ')); + if (m_base_check->isChecked()) + { + if (input_text.startsWith(QLatin1Char('-'))) + input_text.insert(1, QStringLiteral("0x")); + else + input_text.prepend(QStringLiteral("0x")); + } + QFont font; QPalette palette; - QString hex_string; - bool good = false; - const int radix = (m_base_check->isChecked() && m_base_check->isEnabled()) ? 16 : 0; + std::vector bytes = m_memory_view->ConvertTextToBytes(input_type, input_text); - switch (combo_id) + if (!bytes.empty()) { - case InputID::ASCII: - { - good = true; - const QByteArray bytes = input_text.toLatin1(); - hex_string = QString::fromLatin1(bytes.toHex()); - break; - } - case InputID::FLOAT: - { - const float value_float = input_text.toFloat(&good); + QString hex_string; + std::string s; - if (good) - { - const u32 hex_out = Common::BitCast(value_float); - hex_string = QString::fromStdString(fmt::format("{:08X}", hex_out)); - } - break; - } - case InputID::DOUBLE: - { - const double value_double = input_text.toDouble(&good); + for (const u8 c : bytes) + s.append(fmt::format("{:02x}", c)); - if (good) - { - const u64 hex_out = Common::BitCast(value_double); - hex_string = QString::fromStdString(fmt::format("{:016X}", hex_out)); - } - break; - } - case InputID::S8: - { - const short value = input_text.toShort(&good, radix); - good &= std::numeric_limits::min() <= value && - value <= std::numeric_limits::max(); - if (good) - hex_string = QString::fromStdString(fmt::sprintf("%02hhX", value)); - break; - } - case InputID::S16: - { - const short value = input_text.toShort(&good, radix); - if (good) - hex_string = QString::fromStdString(fmt::sprintf("%04hX", value)); - break; - } - case InputID::S32: - { - const int value_int = input_text.toInt(&good, radix); - if (good) - hex_string = QString::fromStdString(fmt::sprintf("%08X", value_int)); - break; - } - case InputID::U8: - { - const unsigned short value = input_text.toUShort(&good, radix); - good &= (value & 0xFF00) == 0; - if (good) - hex_string = QString::fromStdString(fmt::format("{:02X}", value)); - break; - } - case InputID::U16: - { - const unsigned short value = input_text.toUShort(&good, radix); - if (good) - hex_string = QString::fromStdString(fmt::format("{:04X}", value)); - break; - } - case InputID::U32: - { - const u32 value = input_text.toUInt(&good, radix); - if (good) - hex_string = QString::fromStdString(fmt::format("{:08X}", value)); - break; - } - case InputID::HEXSTR: - { - // Confirm it is only hex bytes - const QRegularExpression is_hex(QStringLiteral("^([0-9A-F]{2})*$"), - QRegularExpression::CaseInsensitiveOption); - const QRegularExpressionMatch match = is_hex.match(input_text); - good = match.hasMatch(); - if (good) - { - const QByteArray hbytes = QByteArray::fromHex(input_text.toUtf8()); - hex_string = QString::fromLatin1(hbytes.toHex()); - } - break; - } - } - - if (good) - { + hex_string = QString::fromStdString(s); int output_length = hex_string.length(); if (output_length > 16) @@ -665,14 +588,14 @@ QByteArray MemoryWidget::GetInputData() const if (m_data_preview->text().isEmpty()) return QByteArray(); - const auto combo_id = static_cast(m_input_combo->currentData().toInt()); + const auto input_type = static_cast(m_input_combo->currentData().toInt()); // Ascii might be truncated, pull from data edit box. - if (combo_id == InputID::ASCII) + if (input_type == Type::ASCII) return QByteArray(m_data_edit->text().toUtf8()); - // If we are doing a large aray of hex bytes - if (combo_id == InputID::HEXSTR) + // If we are doing a large array of hex bytes + if (input_type == Type::HexString) return QByteArray::fromHex(m_data_edit->text().toUtf8()); // Data preview has exactly what we want to input, so pull it from there. @@ -708,6 +631,13 @@ void MemoryWidget::OnSetValue() } AddressSpace::Accessors* accessors = AddressSpace::GetAccessors(m_memory_view->GetAddressSpace()); + u32 end_address = target_addr.address + static_cast(bytes.size()) - 1; + + if (!accessors->IsValidAddress(target_addr.address) || !accessors->IsValidAddress(end_address)) + { + ModalMessageBox::critical(this, tr("Error"), tr("Target address range is invalid.")); + return; + } for (const char c : bytes) accessors->WriteU8(target_addr.address++, static_cast(c)); diff --git a/Source/Core/DolphinQt/Debugger/MemoryWidget.h b/Source/Core/DolphinQt/Debugger/MemoryWidget.h index ff0070ddb5..4e344af37b 100644 --- a/Source/Core/DolphinQt/Debugger/MemoryWidget.h +++ b/Source/Core/DolphinQt/Debugger/MemoryWidget.h @@ -20,21 +20,6 @@ class QRadioButton; class QShowEvent; class QSplitter; -enum class InputID : int -{ - // Order does not matter here. - S8 = 1, - S16, - S32, - U8, - U16, - U32, - HEXSTR, - FLOAT, - DOUBLE, - ASCII -}; - class MemoryWidget : public QDockWidget { Q_OBJECT From 8dd4e916a794592ad3435bdec82584ed4b3a2130 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Fri, 1 Jul 2022 18:54:32 -0500 Subject: [PATCH 307/659] DolphinQt: save changes to disk before refreshing mod list --- Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp index 712a18a558..d0ac612e61 100644 --- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp @@ -107,6 +107,11 @@ void GraphicsModListWidget::ConnectWidgets() void GraphicsModListWidget::RefreshModList() { + if (m_needs_save) + { + SaveToDisk(); + } + m_mod_list->setCurrentItem(nullptr); m_mod_list->clear(); From 66f50858007a4d1cc501b7650d3331d03342874f Mon Sep 17 00:00:00 2001 From: iwubcode Date: Fri, 1 Jul 2022 18:55:22 -0500 Subject: [PATCH 308/659] DolphinQt: add word wrap to graphics mods description --- Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp index d0ac612e61..cb9569d1d1 100644 --- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp @@ -219,6 +219,7 @@ void GraphicsModListWidget::OnModChanged(std::optional absolute_pat { auto* description_label = new QLabel(tr("Description: ") + QString::fromStdString(mod->m_description)); + description_label->setWordWrap(true); m_mod_meta_layout->addWidget(description_label); } } From 0f07deb0effe307dda6be282706b581ac3d565be Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Sat, 2 Jul 2022 16:16:54 +1000 Subject: [PATCH 309/659] Remove unused variable in SI_DeviceKeyboard.h left over from SI_DeviceGCController.h --- Source/Core/Core/HW/SI/SI_DeviceKeyboard.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_DeviceKeyboard.h b/Source/Core/Core/HW/SI/SI_DeviceKeyboard.h index 003cd5c8eb..68a89a6070 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceKeyboard.h +++ b/Source/Core/Core/HW/SI/SI_DeviceKeyboard.h @@ -37,9 +37,6 @@ private: KeyArray MapKeys(const KeyboardStatus& key_status) const; - // PADAnalogMode - u8 m_mode = 0; - // Internal counter synchonizing GC and keyboard u8 m_counter = 0; }; From d0540f19ac754e1fcebd3b3b75109f804bdce3ce Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 2 Jul 2022 00:02:02 -0500 Subject: [PATCH 310/659] Data: add built in mods for bloom and HUD --- .../All Games Bloom Removal/all.txt | 0 .../All Games Bloom Removal/metadata.json | 15 ++++++++++++++ .../GraphicMods/All Games HUD Removal/all.txt | 0 .../All Games HUD Removal/metadata.json | 14 +++++++++++++ .../All Games Native Resolution Bloom/all.txt | 0 .../metadata.json | 20 +++++++++++++++++++ 6 files changed, 49 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/All Games Bloom Removal/all.txt create mode 100644 Data/Sys/Load/GraphicMods/All Games Bloom Removal/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/All Games HUD Removal/all.txt create mode 100644 Data/Sys/Load/GraphicMods/All Games HUD Removal/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/all.txt create mode 100644 Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/metadata.json diff --git a/Data/Sys/Load/GraphicMods/All Games Bloom Removal/all.txt b/Data/Sys/Load/GraphicMods/All Games Bloom Removal/all.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/All Games Bloom Removal/metadata.json b/Data/Sys/Load/GraphicMods/All Games Bloom Removal/metadata.json new file mode 100644 index 0000000000..1dd6c8dcc1 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/All Games Bloom Removal/metadata.json @@ -0,0 +1,15 @@ +{ + "meta": + { + "title": "Bloom Removal", + "author": "Dolphin Team", + "description": "Skips drawing bloom effects. May be preferable when using a bloom solution from Dolphin's post processing shaders or a third party tool." + }, + "features": + [ + { + "group": "Bloom", + "action": "skip" + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/All Games HUD Removal/all.txt b/Data/Sys/Load/GraphicMods/All Games HUD Removal/all.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/All Games HUD Removal/metadata.json b/Data/Sys/Load/GraphicMods/All Games HUD Removal/metadata.json new file mode 100644 index 0000000000..ac08648ef4 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/All Games HUD Removal/metadata.json @@ -0,0 +1,14 @@ +{ + "meta": + { + "title": "Remove HUD", + "author": "Dolphin Team", + "description": "Skips drawing elements designated as the HUD. Can be used for taking screenshots or increasing immersion." + }, + "features": [ + { + "group": "HUD", + "action": "skip" + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/all.txt b/Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/all.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/metadata.json b/Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/metadata.json new file mode 100644 index 0000000000..0616392606 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/All Games Native Resolution Bloom/metadata.json @@ -0,0 +1,20 @@ +{ + "meta": + { + "title": "Native Resolution Bloom", + "author": "Dolphin Team", + "description": "Scales bloom effects to draw at their native resolution, regardless of internal resolution. Results in bloom looking much more natural at higher resolutions but may cause shimmering." + }, + "features": + [ + { + "group": "Bloom", + "action": "scale", + "action_data": { + "X": 1.0, + "Y": 1.0, + "Z": 1.0 + } + } + ] +} \ No newline at end of file From ba007a0244e7e7f6d205728bf41664bf561fdb7d Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 2 Jul 2022 00:04:10 -0500 Subject: [PATCH 311/659] Data: rename Battalion Wars 2, Mario Strikers Charged, The House of the Dead: Overkill, and The Last Story to properly reflect their game name / spelling --- .../GraphicMods/{Battallion Wars 2 => Battalion Wars 2}/RBW.txt | 0 .../{Battallion Wars 2 => Battalion Wars 2}/metadata.json | 0 .../R4Q.txt | 0 .../metadata.json | 0 .../RHO.txt | 0 .../metadata.json | 0 Data/Sys/Load/GraphicMods/The Last Story/SLS.txt | 0 .../Load/GraphicMods/{Last Story => The Last Story}/metadata.json | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename Data/Sys/Load/GraphicMods/{Battallion Wars 2 => Battalion Wars 2}/RBW.txt (100%) rename Data/Sys/Load/GraphicMods/{Battallion Wars 2 => Battalion Wars 2}/metadata.json (100%) rename Data/Sys/Load/GraphicMods/{Super Mario Strikers Charged => Mario Strikers Charged}/R4Q.txt (100%) rename Data/Sys/Load/GraphicMods/{Super Mario Strikers Charged => Mario Strikers Charged}/metadata.json (100%) rename Data/Sys/Load/GraphicMods/{House of the Dead Overkill => The House of the Dead Overkill}/RHO.txt (100%) rename Data/Sys/Load/GraphicMods/{House of the Dead Overkill => The House of the Dead Overkill}/metadata.json (100%) create mode 100644 Data/Sys/Load/GraphicMods/The Last Story/SLS.txt rename Data/Sys/Load/GraphicMods/{Last Story => The Last Story}/metadata.json (100%) diff --git a/Data/Sys/Load/GraphicMods/Battallion Wars 2/RBW.txt b/Data/Sys/Load/GraphicMods/Battalion Wars 2/RBW.txt similarity index 100% rename from Data/Sys/Load/GraphicMods/Battallion Wars 2/RBW.txt rename to Data/Sys/Load/GraphicMods/Battalion Wars 2/RBW.txt diff --git a/Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json b/Data/Sys/Load/GraphicMods/Battalion Wars 2/metadata.json similarity index 100% rename from Data/Sys/Load/GraphicMods/Battallion Wars 2/metadata.json rename to Data/Sys/Load/GraphicMods/Battalion Wars 2/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/R4Q.txt b/Data/Sys/Load/GraphicMods/Mario Strikers Charged/R4Q.txt similarity index 100% rename from Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/R4Q.txt rename to Data/Sys/Load/GraphicMods/Mario Strikers Charged/R4Q.txt diff --git a/Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json b/Data/Sys/Load/GraphicMods/Mario Strikers Charged/metadata.json similarity index 100% rename from Data/Sys/Load/GraphicMods/Super Mario Strikers Charged/metadata.json rename to Data/Sys/Load/GraphicMods/Mario Strikers Charged/metadata.json diff --git a/Data/Sys/Load/GraphicMods/House of the Dead Overkill/RHO.txt b/Data/Sys/Load/GraphicMods/The House of the Dead Overkill/RHO.txt similarity index 100% rename from Data/Sys/Load/GraphicMods/House of the Dead Overkill/RHO.txt rename to Data/Sys/Load/GraphicMods/The House of the Dead Overkill/RHO.txt diff --git a/Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json b/Data/Sys/Load/GraphicMods/The House of the Dead Overkill/metadata.json similarity index 100% rename from Data/Sys/Load/GraphicMods/House of the Dead Overkill/metadata.json rename to Data/Sys/Load/GraphicMods/The House of the Dead Overkill/metadata.json diff --git a/Data/Sys/Load/GraphicMods/The Last Story/SLS.txt b/Data/Sys/Load/GraphicMods/The Last Story/SLS.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Last Story/metadata.json b/Data/Sys/Load/GraphicMods/The Last Story/metadata.json similarity index 100% rename from Data/Sys/Load/GraphicMods/Last Story/metadata.json rename to Data/Sys/Load/GraphicMods/The Last Story/metadata.json From eda3fd8bf1a6b71dbfc8c15024fe200ec1e576e1 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 2 Jul 2022 00:05:47 -0500 Subject: [PATCH 312/659] Data: add Monster Hunter Tri full game and rename folder to reflect that. It has the same bloom ids as the demo disc. --- .../{Monster Hunter Tri - Demo => Monster Hunter Tri}/DMH.txt | 0 .../{Last Story/SLS.txt => Monster Hunter Tri/RMH.txt} | 0 .../metadata.json | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename Data/Sys/Load/GraphicMods/{Monster Hunter Tri - Demo => Monster Hunter Tri}/DMH.txt (100%) rename Data/Sys/Load/GraphicMods/{Last Story/SLS.txt => Monster Hunter Tri/RMH.txt} (100%) rename Data/Sys/Load/GraphicMods/{Monster Hunter Tri - Demo => Monster Hunter Tri}/metadata.json (100%) diff --git a/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/DMH.txt b/Data/Sys/Load/GraphicMods/Monster Hunter Tri/DMH.txt similarity index 100% rename from Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/DMH.txt rename to Data/Sys/Load/GraphicMods/Monster Hunter Tri/DMH.txt diff --git a/Data/Sys/Load/GraphicMods/Last Story/SLS.txt b/Data/Sys/Load/GraphicMods/Monster Hunter Tri/RMH.txt similarity index 100% rename from Data/Sys/Load/GraphicMods/Last Story/SLS.txt rename to Data/Sys/Load/GraphicMods/Monster Hunter Tri/RMH.txt diff --git a/Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json b/Data/Sys/Load/GraphicMods/Monster Hunter Tri/metadata.json similarity index 100% rename from Data/Sys/Load/GraphicMods/Monster Hunter Tri - Demo/metadata.json rename to Data/Sys/Load/GraphicMods/Monster Hunter Tri/metadata.json From 1970a27b57824f11a40e7b9a281edebb5c4d1ca7 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 2 Jul 2022 00:06:26 -0500 Subject: [PATCH 313/659] Data: add Wii Play and Skyward Sword bloom definitions --- .../GraphicMods/Skyward Sword Bloom/SOU.txt | 0 .../Skyward Sword Bloom/metadata.json | 27 +++++++++++++++++++ Data/Sys/Load/GraphicMods/Wii Play/RHA.txt | 0 .../Load/GraphicMods/Wii Play/metadata.json | 27 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Skyward Sword Bloom/SOU.txt create mode 100644 Data/Sys/Load/GraphicMods/Skyward Sword Bloom/metadata.json create mode 100644 Data/Sys/Load/GraphicMods/Wii Play/RHA.txt create mode 100644 Data/Sys/Load/GraphicMods/Wii Play/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Skyward Sword Bloom/SOU.txt b/Data/Sys/Load/GraphicMods/Skyward Sword Bloom/SOU.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Skyward Sword Bloom/metadata.json b/Data/Sys/Load/GraphicMods/Skyward Sword Bloom/metadata.json new file mode 100644 index 0000000000..90728d8ebe --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Skyward Sword Bloom/metadata.json @@ -0,0 +1,27 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000046_57x76_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000045_114x152_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000107_228x304_6" + } + ] + } + ] +} \ No newline at end of file diff --git a/Data/Sys/Load/GraphicMods/Wii Play/RHA.txt b/Data/Sys/Load/GraphicMods/Wii Play/RHA.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Wii Play/metadata.json b/Data/Sys/Load/GraphicMods/Wii Play/metadata.json new file mode 100644 index 0000000000..f0015dcec1 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Wii Play/metadata.json @@ -0,0 +1,27 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n9_80x58_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n21_80x57_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n2_320x228_6" + } + ] + } + ] +} \ No newline at end of file From 322724437232f8b0ba2a89861f32653d49c00f8c Mon Sep 17 00:00:00 2001 From: iwubcode Date: Sat, 2 Jul 2022 15:14:21 -0500 Subject: [PATCH 314/659] Data: Add Rune Factory Frontier bloom definition --- .../Load/GraphicMods/Rune Factory Frontier/metadata.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json b/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json index 4c2407a892..f1863addac 100644 --- a/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json +++ b/Data/Sys/Load/GraphicMods/Rune Factory Frontier/metadata.json @@ -98,6 +98,15 @@ "texture_filename": "tex1_256x256_83aa16840fa69ffb_0" } ] + }, + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000002_320x240_1" + } + ] } ] } \ No newline at end of file From 01ada3850ff07c0225819fee2898f355aaf3707a Mon Sep 17 00:00:00 2001 From: schthack Date: Sun, 22 May 2022 12:21:28 -0400 Subject: [PATCH 315/659] BBA: Added BuiltIn device that allow BBA emulation without the need of a TapDevice Configuration include a dns server setting --- Source/Core/Common/Network.cpp | 80 ++ Source/Core/Common/Network.h | 62 +- Source/Core/Core/CMakeLists.txt | 8 +- Source/Core/Core/Config/MainSettings.cpp | 5 + Source/Core/Core/Config/MainSettings.h | 2 + .../Core/ConfigLoaders/IsSettingSaveable.cpp | 2 + Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 700 ++++++++++++++++++ Source/Core/Core/HW/EXI/BBA/BuiltIn.h | 56 ++ Source/Core/Core/HW/EXI/EXI_Device.cpp | 4 + Source/Core/Core/HW/EXI/EXI_Device.h | 4 +- .../Core/Core/HW/EXI/EXI_DeviceEthernet.cpp | 100 ++- Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h | 61 +- Source/Core/DolphinLib.props | 2 + .../BroadbandAdapterSettingsDialog.cpp | 12 + .../Settings/BroadbandAdapterSettingsDialog.h | 1 + .../Core/DolphinQt/Settings/GameCubePane.cpp | 9 +- 16 files changed, 1063 insertions(+), 45 deletions(-) create mode 100644 Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp create mode 100644 Source/Core/Core/HW/EXI/BBA/BuiltIn.h diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index faa2a33c05..756dd0381e 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -5,6 +5,7 @@ #include #include +#include #ifndef _WIN32 #include @@ -141,6 +142,18 @@ TCPHeader::TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, co checksum = htons(static_cast(tcp_checksum)); } +TCPHeader::TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags) +{ + source_port = from.sin_port; + destination_port = to.sin_port; + sequence_number = htonl(seq); + acknowledgement_number = htonl(ack); + properties = 0x50 | flags; + + window_size = 0x7c; + checksum = 0; +} + u16 TCPHeader::Size() const { return static_cast(SIZE); @@ -170,6 +183,59 @@ u8 UDPHeader::IPProto() const return static_cast(IPPROTO_UDP); } +ARPHeader::ARPHeader() = default; + +ARPHeader::ARPHeader(u32 from_ip, MACAddress from_mac, u32 to_ip, MACAddress to_mac) +{ + hardware_type = htons(BBA_HARDWARE_TYPE); + protocol_type = IPV4_HEADER_TYPE; + hardware_size = MAC_ADDRESS_SIZE; + protocol_size = IPV4_ADDR_LEN; + opcode = 0x200; + sender_ip = from_ip; + target_ip = to_ip; + targer_address = to_mac; + sender_address = from_mac; +} + +u16 ARPHeader::Size() const +{ + return static_cast(SIZE); +} + +DHCPBody::DHCPBody() = default; + +DHCPBody::DHCPBody(u32 transaction, MACAddress client_address, u32 new_ip, u32 serv_ip) +{ + transaction_id = transaction; + message_type = DHCPConst::MESSAGE_REPLY; + hardware_type = BBA_HARDWARE_TYPE; + hardware_addr = MAC_ADDRESS_SIZE; + client_mac = client_address; + your_ip = new_ip; + server_ip = serv_ip; +} + +// Add an option to the DHCP Body +bool DHCPBody::AddDHCPOption(u8 size, u8 fnc, const std::vector& params) +{ + int i = 0; + while (options[i] != 0) + { + i += options[i + 1] + 2; + if (i >= std::size(options)) + { + return false; + } + } + + options[i++] = fnc; + options[i++] = size; + for (auto val : params) + options[i++] = val; + return true; +} + // Compute the network checksum with a 32-bit accumulator using the // "Normal" order, see RFC 1071 for more details. u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value) @@ -187,6 +253,20 @@ u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value) return ~static_cast(checksum); } +// Compute the TCP network checksum with a fake header +u16 ComputeTCPNetworkChecksum(const sockaddr_in& from, const sockaddr_in& to, const void* data, + u16 length, u8 protocol) +{ + // Compute the TCP checksum with its pseudo header + const u32 source_addr = ntohl(from.sin_addr.s_addr); + const u32 destination_addr = ntohl(to.sin_addr.s_addr); + const u32 initial_value = (source_addr >> 16) + (source_addr & 0xFFFF) + + (destination_addr >> 16) + (destination_addr & 0xFFFF) + protocol + + length; + const u32 tcp_checksum = ComputeNetworkChecksum(data, length, initial_value); + return htons(static_cast(tcp_checksum)); +} + NetworkErrorState SaveNetworkErrorState() { return { diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index 0b56e09d34..eec09234a7 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -7,6 +7,7 @@ #include #include #include +#include #include "Common/CommonTypes.h" @@ -22,7 +23,15 @@ enum class MACConsumer enum { - MAC_ADDRESS_SIZE = 6 + BBA_HARDWARE_TYPE = 1, + MAC_ADDRESS_SIZE = 6, + IPV4_HEADER_TYPE = 8 +}; + +enum DHCPConst +{ + MESSAGE_QUERY = 1, + MESSAGE_REPLY = 2 }; using MACAddress = std::array; @@ -67,6 +76,7 @@ struct TCPHeader { TCPHeader(); TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, const u8* data, u16 length); + TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags); u16 Size() const; u8 IPProto() const; @@ -99,6 +109,54 @@ struct UDPHeader }; static_assert(sizeof(UDPHeader) == UDPHeader::SIZE); +#pragma pack(push, 1) +struct ARPHeader +{ + ARPHeader(); + ARPHeader(u32 from_ip, MACAddress from_mac, u32 to_ip, MACAddress to_mac); + u16 Size() const; + + static constexpr std::size_t SIZE = 28; + + u16 hardware_type = 0; + u16 protocol_type = 0; + u8 hardware_size = 0; + u8 protocol_size = 0; + u16 opcode = 0; + MACAddress sender_address{}; + u32 sender_ip = 0; + MACAddress targer_address{}; + u32 target_ip = 0; +}; +static_assert(sizeof(ARPHeader) == ARPHeader::SIZE); +#pragma pack(pop) + +struct DHCPBody +{ + DHCPBody(); + DHCPBody(u32 transaction, MACAddress client_address, u32 new_ip, u32 serv_ip); + bool AddDHCPOption(u8 size, u8 fnc, const std::vector& params); + static constexpr std::size_t SIZE = 540; + u8 message_type = 0; + u8 hardware_type = 0; + u8 hardware_addr = 0; + u8 hops = 0; + u32 transaction_id = 0; + u16 secondes = 0; + u16 boot_flag = 0; + u32 client_ip = 0; + u32 your_ip = 0; + u32 server_ip = 0; + u32 relay_ip = 0; + MACAddress client_mac{}; + unsigned char padding[10]{}; + unsigned char hostname[0x40]{}; + unsigned char boot_file[0x80]{}; + u32 magic_cookie = 0x63538263; + u8 options[300]{}; +}; +static_assert(sizeof(DHCPBody) == DHCPBody::SIZE); + struct NetworkErrorState { int error; @@ -111,6 +169,8 @@ MACAddress GenerateMacAddress(MACConsumer type); std::string MacAddressToString(const MACAddress& mac); std::optional StringToMacAddress(std::string_view mac_string); u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value = 0); +u16 ComputeTCPNetworkChecksum(const sockaddr_in& from, const sockaddr_in& to, const void* data, + u16 length, u8 protocol); NetworkErrorState SaveNetworkErrorState(); void RestoreNetworkErrorState(const NetworkErrorState& state); } // namespace Common diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 8a4db4c961..0dba56339b 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -647,6 +647,8 @@ if(WIN32) HW/EXI/BBA/TAP_Win32.cpp HW/EXI/BBA/TAP_Win32.h HW/EXI/BBA/XLINK_KAI_BBA.cpp + HW/EXI/BBA/BuiltIn.cpp + HW/EXI/BBA/BuiltIn.h HW/WiimoteReal/IOWin.cpp HW/WiimoteReal/IOWin.h ) @@ -662,12 +664,16 @@ elseif(APPLE) HW/EXI/BBA/TAP_Apple.cpp HW/EXI/BBA/TAPServer_Apple.cpp HW/EXI/BBA/XLINK_KAI_BBA.cpp + HW/EXI/BBA/BuiltIn.cpp + HW/EXI/BBA/BuiltIn.h ) target_link_libraries(core PUBLIC ${IOB_LIBRARY}) elseif(UNIX) target_sources(core PRIVATE HW/EXI/BBA/TAP_Unix.cpp HW/EXI/BBA/XLINK_KAI_BBA.cpp + HW/EXI/BBA/BuiltIn.cpp + HW/EXI/BBA/BuiltIn.h ) if(ANDROID) target_sources(core PRIVATE @@ -717,4 +723,4 @@ endif() if(MSVC) # Add precompiled header target_link_libraries(core PRIVATE use_pch) -endif() +endif() \ No newline at end of file diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index d7d146e3e2..c3161e924e 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -116,6 +116,11 @@ const Info MAIN_BBA_MAC{{System::Main, "Core", "BBA_MAC"}, ""}; const Info MAIN_BBA_XLINK_IP{{System::Main, "Core", "BBA_XLINK_IP"}, "127.0.0.1"}; const Info MAIN_BBA_XLINK_CHAT_OSD{{System::Main, "Core", "BBA_XLINK_CHAT_OSD"}, true}; +// Schthack PSO Server - https://schtserv.com/ +const Info MAIN_BBA_BUILTIN_DNS{{System::Main, "Core", "BBA_BUILTIN_DNS"}, + "149.56.167.128"}; +const Info MAIN_BBA_BUILTIN_IP{{System::Main, "Core", "BBA_BUILTIN_IP"}, ""}; + const Info& GetInfoForSIDevice(int channel) { static const std::array, 4> infos{ diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index e1b538f2b6..4261eed960 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -86,6 +86,8 @@ const Info& GetInfoForEXIDevice(ExpansionInte extern const Info MAIN_BBA_MAC; extern const Info MAIN_BBA_XLINK_IP; extern const Info MAIN_BBA_XLINK_CHAT_OSD; +extern const Info MAIN_BBA_BUILTIN_DNS; +extern const Info MAIN_BBA_BUILTIN_IP; const Info& GetInfoForSIDevice(int channel); const Info& GetInfoForAdapterRumble(int channel); const Info& GetInfoForSimulateKonga(int channel); diff --git a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp index 0026205144..fce77dd35f 100644 --- a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp +++ b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp @@ -81,6 +81,8 @@ bool IsSettingSaveable(const Config::Location& config_location) &Config::MAIN_AGP_CART_B_PATH.GetLocation(), &Config::MAIN_BBA_MAC.GetLocation(), &Config::MAIN_BBA_XLINK_IP.GetLocation(), + &Config::MAIN_BBA_BUILTIN_DNS.GetLocation(), + &Config::MAIN_BBA_BUILTIN_IP.GetLocation(), &Config::MAIN_BBA_XLINK_CHAT_OSD.GetLocation(), &Config::MAIN_OVERRIDE_REGION_SETTINGS.GetLocation(), &Config::MAIN_CUSTOM_RTC_ENABLE.GetLocation(), diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp new file mode 100644 index 0000000000..bba928e660 --- /dev/null +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -0,0 +1,700 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include + +#include "Common/Logging/Log.h" +#include "Core/HW/EXI/BBA/BuiltIn.h" +#include "Core/HW/EXI/EXI_Device.h" +#include "Core/HW/EXI/EXI_DeviceEthernet.h" + +// #define BBA_TRACK_PAGE_PTRS + +namespace ExpansionInterface +{ +u64 GetTickCountStd() +{ + using namespace std::chrono; + return duration_cast(steady_clock::now().time_since_epoch()).count(); +} + +void SetHardwareInfo(u8* data, Common::MACAddress dest, Common::MACAddress src) +{ + Common::EthernetHeader* hwpart = (Common::EthernetHeader*)data; + *hwpart = Common::EthernetHeader(IP_PROTOCOL); + hwpart->destination = dest; + hwpart->source = src; +} + +std::tuple +getTcpHeaders(u8* data, Common::MACAddress dest, Common::MACAddress src) +{ + SetHardwareInfo(data, dest, src); + return std::tuple( + (Common::EthernetHeader*)data, (Common::IPv4Header*)&data[14], + (Common::TCPHeader*)&data[0x22]); +} + +std::tuple +getUdpHeaders(u8* data, Common::MACAddress dest, Common::MACAddress src) +{ + SetHardwareInfo(data, dest, src); + return std::tuple( + (Common::EthernetHeader*)data, (Common::IPv4Header*)&data[14], + (Common::UDPHeader*)&data[0x22]); +} + +bool CEXIETHERNET::BuiltInBBAInterface::Activate() +{ + if (IsActivated()) + return true; + + active = true; + m_in_frame = std::make_unique(9004); + m_out_frame = std::make_unique(9004); + for (auto& buf : queue_data) + buf.reserve(2048); + fake_mac = Common::GenerateMacAddress(Common::MACConsumer::BBA); + const u32 ip = m_local_ip.empty() ? sf::IpAddress::getLocalAddress().toInteger() : + sf::IpAddress(m_local_ip).toInteger(); + m_current_ip = htonl(ip); + m_router_ip = (m_current_ip & 0xFFFFFF) | 0x01000000; + // clear all ref + for (int i = 0; i < std::size(network_ref); i++) + { + network_ref[i].ip = 0; + } + + return RecvInit(); +} + +void CEXIETHERNET::BuiltInBBAInterface::Deactivate() +{ + // Is the BBA Active? If not skip shutdown + if (!IsActivated()) + return; + // Signal read thread to exit. + m_read_enabled.Clear(); + m_read_thread_shutdown.Set(); + active = false; + + // kill all active socket + for (int i = 0; i < std::size(network_ref); i++) + { + if (network_ref[i].ip != 0) + { + network_ref[i].type == IPPROTO_TCP ? network_ref[i].tcp_socket.disconnect() : + network_ref[i].udp_socket.unbind(); + } + network_ref[i].ip = 0; + } + + // Wait for read thread to exit. + if (m_read_thread.joinable()) + m_read_thread.join(); +} + +bool CEXIETHERNET::BuiltInBBAInterface::IsActivated() +{ + return active; +} + +void CEXIETHERNET::BuiltInBBAInterface::WriteToQueue(const u8* data, int length) +{ + queue_data[queue_write].resize(length); + std::memcpy(&queue_data[queue_write][0], data, length); + if (((queue_write + 1) & 15) == queue_read) + { + return; + } + queue_write = (queue_write + 1) & 15; +} + +void CEXIETHERNET::BuiltInBBAInterface::HandleARP(Common::EthernetHeader* hwdata, + Common::ARPHeader* arpdata) +{ + std::memset(m_in_frame.get(), 0, 0x30); + Common::EthernetHeader* hwpart = (Common::EthernetHeader*)m_in_frame.get(); + *hwpart = Common::EthernetHeader(ARP_PROTOCOL); + hwpart->destination = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; + hwpart->source = fake_mac; + + Common::ARPHeader* arppart = (Common::ARPHeader*)&m_in_frame[14]; + Common::MACAddress bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; + if (arpdata->target_ip == m_current_ip) + { + // game asked for himself, reply with his mac address + *arppart = Common::ARPHeader(arpdata->target_ip, bba_mac, m_current_ip, bba_mac); + } + else + { + *arppart = Common::ARPHeader(arpdata->target_ip, fake_mac, m_current_ip, bba_mac); + } + + WriteToQueue(&m_in_frame[0], 0x2a); +} + +void CEXIETHERNET::BuiltInBBAInterface::HandleDHCP(Common::EthernetHeader* hwdata, + Common::UDPHeader* udpdata, + Common::DHCPBody* request) +{ + Common::DHCPBody* reply = (Common::DHCPBody*)&m_in_frame[0x2a]; + sockaddr_in from; + sockaddr_in to; + std::memset(m_in_frame.get(), 0, 0x156); + + // build layer + auto [hwpart, ippart, udppart] = getUdpHeaders( + m_in_frame.get(), *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0], fake_mac); + + from.sin_addr.s_addr = m_router_ip; + from.sin_family = IPPROTO_UDP; + from.sin_port = htons(67); + to.sin_addr.s_addr = m_current_ip; + to.sin_family = IPPROTO_UDP; + to.sin_port = udpdata->source_port; + const std::vector ip_part = {((u8*)&m_router_ip)[0], ((u8*)&m_router_ip)[1], + ((u8*)&m_router_ip)[2], ((u8*)&m_router_ip)[3]}; + + *ippart = Common::IPv4Header(308, IPPROTO_UDP, from, to); + + *udppart = Common::UDPHeader(from, to, 300); + + *reply = Common::DHCPBody(request->transaction_id, + *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0], m_current_ip, + m_router_ip); + + // options + request->options[2] == 1 ? reply->AddDHCPOption(1, 53, std::vector{2}) : + reply->AddDHCPOption(1, 53, std::vector{5}); + reply->AddDHCPOption(4, 54, ip_part); // dhcp server ip + reply->AddDHCPOption(4, 51, std::vector{0, 1, 0x51, 0x80}); // lease time 24h + reply->AddDHCPOption(4, 58, std::vector{0, 1, 0x51, 0x80}); // renewal + reply->AddDHCPOption(4, 59, std::vector{0, 1, 0x51, 0x80}); // rebind + reply->AddDHCPOption(4, 1, std::vector{255, 255, 255, 0}); // submask + reply->AddDHCPOption(4, 28, + std::vector{ip_part[0], ip_part[1], ip_part[2], 255}); // broadcast ip + reply->AddDHCPOption(4, 6, ip_part); // dns server + reply->AddDHCPOption(3, 15, std::vector{0x6c, 0x61, 0x6e}); // domaine name "lan" + reply->AddDHCPOption(4, 3, ip_part); // router ip + reply->AddDHCPOption(0, 255, {}); // end + + udppart->checksum = Common::ComputeTCPNetworkChecksum(from, to, udppart, 308, IPPROTO_UDP); + + WriteToQueue(m_in_frame.get(), 0x156); +} + +StackRef* CEXIETHERNET::BuiltInBBAInterface::GetAvaibleSlot(u16 port) +{ + if (port > 0) // existing connection? + { + for (int i = 0; i < std::size(network_ref); i++) + { + if (network_ref[i].ip != 0 && network_ref[i].local == port) + return &network_ref[i]; + } + } + for (int i = 0; i < std::size(network_ref); i++) + { + if (network_ref[i].ip == 0) + return &network_ref[i]; + } + return nullptr; +} + +StackRef* CEXIETHERNET::BuiltInBBAInterface::GetTCPSlot(u16 src_port, u16 dst_port, u32 ip) +{ + for (int i = 0; i < std::size(network_ref); i++) + { + if (network_ref[i].ip == ip && network_ref[i].remote == dst_port && + network_ref[i].local == src_port) + { + return &network_ref[i]; + } + } + return nullptr; +} + +int BuildFINFrame(StackRef* ref, u8* buf) +{ + std::memset(buf, 0, 0x36); + auto [hwpart, ippart, tcppart] = getTcpHeaders(buf, ref->bba_mac, ref->my_mac); + + *ippart = Common::IPv4Header(20, IPPROTO_TCP, ref->from, ref->to); + + *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, + TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); + tcppart->checksum = + Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 20, IPPROTO_TCP); + + for (auto& tcp_buf : ref->tcp_buffers) + tcp_buf.used = false; + return 0x36; +} + +int BuildAckFrame(StackRef* ref, u8* buf) +{ + std::memset(buf, 0, 0x36); + auto [hwpart, ippart, tcppart] = getTcpHeaders(buf, ref->bba_mac, ref->my_mac); + + *ippart = Common::IPv4Header(20, IPPROTO_TCP, ref->from, ref->to); + + *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, TCP_FLAG_ACK); + tcppart->checksum = + Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 20, IPPROTO_TCP); + + return 0x36; +} + +void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(Common::EthernetHeader* hwdata, + Common::IPv4Header* ipdata, + Common::TCPHeader* tcpdata, u8* data) +{ + sf::IpAddress target; + StackRef* ref = + GetTCPSlot(tcpdata->source_port, tcpdata->destination_port, *(u32*)&ipdata->destination_addr); + if (tcpdata->properties & (TCP_FLAG_FIN | TCP_FLAG_RST)) + { + if (ref == nullptr) + return; // not found + + ref->ack_num++; + const int size = BuildFINFrame(ref, m_in_frame.get()); + WriteToQueue(m_in_frame.get(), size); + ref->ip = 0; + ref->tcp_socket.disconnect(); + } + else if (tcpdata->properties & TCP_FLAG_SIN) + { + // new connection + if (ref != nullptr) + return; + ref = GetAvaibleSlot(0); + + ref->delay = GetTickCountStd(); + ref->local = tcpdata->source_port; + ref->remote = tcpdata->destination_port; + ref->ack_num = htonl(tcpdata->sequence_number) + 1; + ref->ack_base = ref->ack_num; + ref->seq_num = 0x1000000; + ref->window_size = htons(tcpdata->window_size); + ref->type = IPPROTO_TCP; + for (auto& tcp_buf : ref->tcp_buffers) + tcp_buf.used = false; + ref->from.sin_addr.s_addr = *(u32*)&ipdata->destination_addr; + ref->from.sin_port = tcpdata->destination_port; + ref->to.sin_addr.s_addr = *(u32*)&ipdata->source_addr; + ref->to.sin_port = tcpdata->source_port; + ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; + ref->my_mac = fake_mac; + ref->tcp_socket.setBlocking(false); + + // reply with a sin_ack + std::memset(m_in_frame.get(), 0, 0x100); + auto [hwpart, ippart, tcppart] = getTcpHeaders(m_in_frame.get(), ref->bba_mac, ref->my_mac); + + *ippart = Common::IPv4Header(28, IPPROTO_TCP, ref->from, ref->to); + + *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, + 0x70 | TCP_FLAG_SIN | TCP_FLAG_ACK); + const u8 options[] = {0x02, 0x04, 0x05, 0xb4, 0x01, 0x01, 0x01, 0x01}; + std::memcpy(&m_in_frame[0x36], options, std::size(options)); + + // do checksum + tcppart->checksum = + Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 28, IPPROTO_TCP); + + ref->seq_num++; + target = sf::IpAddress(htonl(*(u32*)&ipdata->destination_addr)); + ref->tcp_socket.connect(target, ntohs(tcpdata->destination_port)); + ref->ready = false; + ref->ip = *(u32*)ipdata->destination_addr; + + std::memcpy(&ref->tcp_buffers[0].data, m_in_frame.get(), 0x3e); + ref->tcp_buffers[0].data_size = 0x3e; + ref->tcp_buffers[0].seq_id = ref->seq_num - 1; + ref->tcp_buffers[0].tick = GetTickCountStd() - 900; // delay + ref->tcp_buffers[0].used = true; + } + else + { + // data packet + if (ref == nullptr) + return; // not found + + const int c = (tcpdata->properties & 0xf0) >> 2; // header size + const int size = ntohs(ipdata->total_len) - 20 - c; + const u32 this_seq = ntohl(tcpdata->sequence_number); + + if (size > 0) + { + // only if data + if ((int)(this_seq - ref->ack_num) >= 0) + { + ref->tcp_socket.send(data, size); + ref->ack_num += size; + } + + // send ack + BuildAckFrame(ref, m_in_frame.get()); + + WriteToQueue(m_in_frame.get(), 0x36); + } + // update windows size + ref->window_size = ntohs(tcpdata->window_size); + + // clear any ack data + if (tcpdata->properties & TCP_FLAG_ACK) + { + const u32 ack_num = ntohl(tcpdata->acknowledgement_number); + for (auto& tcp_buf : ref->tcp_buffers) + { + if (!tcp_buf.used || tcp_buf.seq_id >= ack_num) + continue; + Common::TCPHeader* tcppart = (Common::TCPHeader*)&tcp_buf.data[0x22]; + const u32 seq_end = + tcp_buf.seq_id + tcp_buf.data_size - ((tcppart->properties & 0xf0) >> 2) - 34; + if (seq_end <= ack_num) + { + tcp_buf.used = false; // confirmed data received + if (!ref->ready && !ref->tcp_buffers[0].used) + ref->ready = true; + continue; + } + // partial data, adjust the packet for next ack + const u16 ack_size = ack_num - tcp_buf.seq_id; + const u16 new_data_size = tcp_buf.data_size - 0x36 - ack_size; + std::memmove(&tcp_buf.data[0x36], &tcp_buf.data[0x36 + ack_size], new_data_size); + tcp_buf.data_size -= ack_size; + tcp_buf.seq_id += ack_size; + tcppart->sequence_number = htonl(tcp_buf.seq_id); + Common::IPv4Header* ippart = (Common::IPv4Header*)&tcp_buf.data[14]; + ippart->total_len = htons(tcp_buf.data_size - 14); + tcppart->checksum = 0; + tcppart->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, + new_data_size + 20, IPPROTO_TCP); + } + } + } +} + +/// +/// This is a litle hack, Mario Kart open some UDP port +/// and listen to it. We open it on our side manualy. +/// +void CEXIETHERNET::BuiltInBBAInterface::InitUDPPort(u16 port) +{ + StackRef* ref = GetAvaibleSlot(htons(port)); + if (ref == nullptr || ref->ip != 0) + return; + ref->ip = 0x08080808; // change for ip + ref->local = htons(port); + ref->remote = htons(port); + ref->type = 17; + ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; + ref->my_mac = fake_mac; + ref->from.sin_addr.s_addr = 0; + ref->from.sin_port = htons(port); + ref->to.sin_addr.s_addr = m_current_ip; + ref->to.sin_port = htons(port); + ref->udp_socket.setBlocking(false); + if (ref->udp_socket.bind(port) != sf::Socket::Done) + { + ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); + return; + } +} + +void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(Common::EthernetHeader* hwdata, + Common::IPv4Header* ipdata, + Common::UDPHeader* udpdata, u8* data) +{ + sf::IpAddress target; + + if (*(u32*)ipdata->destination_addr == 0) + *(u32*)ipdata->destination_addr = m_router_ip; + // dns request + StackRef* ref = GetAvaibleSlot(udpdata->source_port); + if (ref->ip == 0) + { + ref->ip = *(u32*)ipdata->destination_addr; // change for ip + ref->local = udpdata->source_port; + ref->remote = udpdata->destination_port; + ref->type = 17; + ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; + ref->my_mac = fake_mac; + ref->from.sin_addr.s_addr = *(u32*)&ipdata->destination_addr; + ref->from.sin_port = udpdata->destination_port; + ref->to.sin_addr.s_addr = *(u32*)&ipdata->source_addr; + ref->to.sin_port = udpdata->source_port; + ref->udp_socket.setBlocking(false); + if (ref->udp_socket.bind(htons(udpdata->source_port)) != sf::Socket::Done && + ref->udp_socket.bind(sf::Socket::AnyPort) != sf::Socket::Done) + { + ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); + return; + } + } + if (ntohs(udpdata->destination_port) == 1900) + { + InitUDPPort(26512); // MK DD and 1080 + InitUDPPort(26502); // Air Ride + if (*(u32*)ipdata->destination_addr == 0xFAFFFFEF) // force real broadcast + *(u32*)ipdata->destination_addr = 0xFFFFFFFF; // Multi cast cannot be read + if (udpdata->length > 150) + { + // Quick hack to unlock the connection, throw it back at him + Common::EthernetHeader* hwpart = (Common::EthernetHeader*)m_in_frame.get(); + Common::IPv4Header* ippart = (Common::IPv4Header*)&m_in_frame[14]; + std::memcpy(m_in_frame.get(), hwdata, ntohs(ipdata->total_len) + 14); + hwpart->destination = hwdata->source; + hwpart->source = hwdata->destination; + *(u32*)ippart->destination_addr = *(u32*)ipdata->source_addr; + *(u32*)ippart->source_addr = *(u32*)ipdata->destination_addr; + WriteToQueue(m_in_frame.get(), ntohs(ipdata->total_len) + 14); + } + } + if (ntohs(udpdata->destination_port) == 53) + { + target = sf::IpAddress(m_dns_ip.c_str()); // dns server ip + } + else + { + target = sf::IpAddress(ntohl(*(u32*)ipdata->destination_addr)); + } + ref->udp_socket.send(data, ntohs(udpdata->length) - 8, target, ntohs(udpdata->destination_port)); +} + +bool CEXIETHERNET::BuiltInBBAInterface::SendFrame(const u8* frame, u32 size) +{ + int offset = 0; + + std::memcpy(m_out_frame.get(), frame, size); + std::lock_guard lock(mtx); + + // handle the packet data + Common::EthernetHeader* hwdata = (Common::EthernetHeader*)m_out_frame.get(); + if (hwdata->ethertype == 0x08) // IPV4 + { + // IP sub + Common::IPv4Header* ipdata = (Common::IPv4Header*)&m_out_frame[14]; + offset = Common::EthernetHeader::SIZE + (ipdata->version_ihl & 0xf) * 4; + switch (ipdata->protocol) + { + case IPPROTO_UDP: + { + Common::UDPHeader* udpdata = (Common::UDPHeader*)&m_out_frame[offset]; + offset += Common::UDPHeader::SIZE; + if (ntohs(udpdata->destination_port) == 67) + { + Common::DHCPBody* request = (Common::DHCPBody*)&m_out_frame[offset]; + HandleDHCP(hwdata, udpdata, request); + } + else + { + HandleUDPFrame(hwdata, ipdata, udpdata, &m_out_frame[offset]); + } + break; + } + case IPPROTO_TCP: + { + Common::TCPHeader* tcpdata = (Common::TCPHeader*)&m_out_frame[offset]; + offset += (tcpdata->properties & 0xf0) >> 2; + HandleTCPFrame(hwdata, ipdata, tcpdata, &m_out_frame[offset]); + break; + } + } + } + if (hwdata->ethertype == 0x608) // arp + { + Common::ARPHeader* arpdata = (Common::ARPHeader*)&m_out_frame[14]; + HandleARP(hwdata, arpdata); + } + + m_eth_ref->SendComplete(); + return true; +} + +size_t TryGetDataFromSocket(StackRef* ref, u8* buffer) +{ + size_t datasize = 0; // this will be filled by the socket read later + unsigned short remote_port; + + switch (ref->type) + { + case IPPROTO_UDP: + ref->udp_socket.receive(&buffer[0x2a], 1500, datasize, ref->target, remote_port); + if (datasize > 0) + { + std::memset(buffer, 0, 0x2a); + auto [hwpart, ipdata, udpdata] = getUdpHeaders(buffer, ref->bba_mac, ref->my_mac); + + ref->from.sin_port = htons(remote_port); + ref->from.sin_addr.s_addr = htonl(ref->target.toInteger()); + *ipdata = Common::IPv4Header((u16)(datasize + 8), IPPROTO_UDP, ref->from, ref->to); + + *udpdata = Common::UDPHeader(ref->from, ref->to, (u16)datasize); + udpdata->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, udpdata, + (u16)(datasize + 8), IPPROTO_UDP); + datasize += 0x2a; + } + break; + + case IPPROTO_TCP: + sf::Socket::Status st = sf::Socket::Status::Done; + TcpBuffer* tcp_buffer = nullptr; + for (auto& tcp_buf : ref->tcp_buffers) + { + if (tcp_buf.used) + continue; + tcp_buffer = &tcp_buf; + break; + } + + // set default size to 0 to avoid issue + datasize = 0; + const bool can_go = (GetTickCountStd() - ref->poke_time > 100 || ref->window_size > 2000); + if (tcp_buffer != nullptr && ref->ready && can_go) + st = ref->tcp_socket.receive(&buffer[0x36], 440, datasize); + + if (datasize > 0) + { + std::memset(buffer, 0, 0x36); + auto [hwpart, ipdata, tcpdata] = getTcpHeaders(buffer, ref->bba_mac, ref->my_mac); + + *ipdata = Common::IPv4Header((u16)(datasize + 20), IPPROTO_TCP, ref->from, ref->to); + + *tcpdata = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, TCP_FLAG_ACK); + tcpdata->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcpdata, + (u16)(datasize + 20), IPPROTO_TCP); + + // build buffer + tcp_buffer->seq_id = ref->seq_num; + tcp_buffer->data_size = (u16)datasize + 0x36; + tcp_buffer->tick = GetTickCountStd(); + std::memcpy(&tcp_buffer->data[0], buffer, datasize + 0x36); + tcp_buffer->seq_id = ref->seq_num; + tcp_buffer->used = true; + ref->seq_num += (u32)datasize; + ref->poke_time = GetTickCountStd(); + datasize += 0x36; + } + if (GetTickCountStd() - ref->delay > 3000) + { + if (st == sf::Socket::Disconnected || st == sf::Socket::Error) + { + ref->ip = 0; + ref->tcp_socket.disconnect(); + datasize = BuildFINFrame(ref, buffer); + } + } + break; + } + + return datasize; +} + +void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInBBAInterface* self) +{ + while (!self->m_read_thread_shutdown.IsSet()) + { + // make thread less cpu hungry + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + + if (!self->m_read_enabled.IsSet()) + continue; + size_t datasize = 0; + + u8 wp = self->m_eth_ref->page_ptr(BBA_RWP); + const u8 rp = self->m_eth_ref->page_ptr(BBA_RRP); + if (rp > wp) + wp += 16; + + if ((wp - rp) >= 8) + continue; + + std::lock_guard lock(self->mtx); + // process queue file first + if (self->queue_read != self->queue_write) + { + datasize = self->queue_data[self->queue_read].size(); + std::memcpy(self->m_eth_ref->mRecvBuffer.get(), &self->queue_data[self->queue_read][0], + datasize); + self->queue_read++; + self->queue_read &= 15; + } + else + { + // test connections data + for (auto& net_ref : self->network_ref) + { + if (net_ref.ip == 0) + continue; + datasize = TryGetDataFromSocket(&net_ref, self->m_eth_ref->mRecvBuffer.get()); + if (datasize > 0) + break; + } + } + + // test and add any sleeping tcp data + for (auto& net_ref : self->network_ref) + { + if (net_ref.ip == 0 || net_ref.type != IPPROTO_TCP) + continue; + for (auto& tcp_buf : net_ref.tcp_buffers) + { + if (!tcp_buf.used || (GetTickCountStd() - tcp_buf.tick) <= 1000) + continue; + + tcp_buf.tick = GetTickCountStd(); + // late data, resend + if (((self->queue_write + 1) & 15) != self->queue_read) + { + self->WriteToQueue(&tcp_buf.data[0], tcp_buf.data_size); + } + } + } + + if (datasize > 0) + { + u8* b = &self->m_eth_ref->mRecvBuffer[0]; + Common::EthernetHeader* hwdata = (Common::EthernetHeader*)b; + if (hwdata->ethertype == 0x8) // IP_PROTOCOL + { + Common::IPv4Header* ipdata = (Common::IPv4Header*)&b[14]; + ipdata->identification = ntohs(++self->ip_frame_id); + ipdata->header_checksum = 0; + ipdata->header_checksum = htons(Common::ComputeNetworkChecksum(ipdata, 20)); + } + self->m_eth_ref->mRecvBufferLength = datasize > 64 ? (u32)datasize : 64; + self->m_eth_ref->RecvHandlePacket(); + } + } +} + +bool CEXIETHERNET::BuiltInBBAInterface::RecvInit() +{ + m_read_thread = std::thread(ReadThreadHandler, this); + return true; +} + +void CEXIETHERNET::BuiltInBBAInterface::RecvStart() +{ + m_read_enabled.Set(); +} + +void CEXIETHERNET::BuiltInBBAInterface::RecvStop() +{ + m_read_enabled.Clear(); + for (auto& net_ref : network_ref) + { + if (net_ref.ip != 0) + { + net_ref.type == IPPROTO_TCP ? net_ref.tcp_socket.disconnect() : net_ref.udp_socket.unbind(); + } + net_ref.ip = 0; + } + queue_read = 0; + queue_write = 0; +} +} // namespace ExpansionInterface diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.h b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h new file mode 100644 index 0000000000..7b3b5415c5 --- /dev/null +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h @@ -0,0 +1,56 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#ifdef _WIN32 +#include +#else +#include +#endif + +#include +#include "Common/CommonTypes.h" +#include "Common/Network.h" + +constexpr u16 TCP_FLAG_SIN = 0x200; +constexpr u16 TCP_FLAG_ACK = 0x1000; +constexpr u16 TCP_FLAG_PSH = 0x800; +constexpr u16 TCP_FLAG_FIN = 0x100; +constexpr u16 TCP_FLAG_RST = 0x400; + +constexpr u16 IP_PROTOCOL = 0x800; +constexpr u16 ARP_PROTOCOL = 0x806; + +constexpr u8 MAX_TCP_BUFFER = 4; + +struct TcpBuffer +{ + bool used; + u64 tick; + u32 seq_id; + u16 data_size; + std::array data; +}; + +struct StackRef +{ + u32 ip; + u16 local; + u16 remote; + u16 type; + sf::IpAddress target; + u32 seq_num; + u32 ack_num; + u32 ack_base; + u16 window_size; + u64 delay; + std::array tcp_buffers; + bool ready; + sockaddr_in from; + sockaddr_in to; + Common::MACAddress bba_mac{}; + Common::MACAddress my_mac{}; + sf::UdpSocket udp_socket; + sf::TcpSocket tcp_socket; + u64 poke_time; +}; diff --git a/Source/Core/Core/HW/EXI/EXI_Device.cpp b/Source/Core/Core/HW/EXI/EXI_Device.cpp index e43d47a8b3..33b5e70dd0 100644 --- a/Source/Core/Core/HW/EXI/EXI_Device.cpp +++ b/Source/Core/Core/HW/EXI/EXI_Device.cpp @@ -143,6 +143,10 @@ std::unique_ptr EXIDevice_Create(const EXIDeviceType device_type, co result = std::make_unique(BBADeviceType::XLINK); break; + case EXIDeviceType::EthernetBuiltIn: + result = std::make_unique(BBADeviceType::BuiltIn); + break; + case EXIDeviceType::Gecko: result = std::make_unique(); break; diff --git a/Source/Core/Core/HW/EXI/EXI_Device.h b/Source/Core/Core/HW/EXI/EXI_Device.h index 232f260166..ce110a731e 100644 --- a/Source/Core/Core/HW/EXI/EXI_Device.h +++ b/Source/Core/Core/HW/EXI/EXI_Device.h @@ -37,6 +37,7 @@ enum class EXIDeviceType : int EthernetXLink, // Only used on Apple devices. EthernetTapServer, + EthernetBuiltIn, None = 0xFF }; @@ -79,7 +80,7 @@ std::unique_ptr EXIDevice_Create(EXIDeviceType device_type, int chan template <> struct fmt::formatter - : EnumFormatter + : EnumFormatter { static constexpr array_type names = { _trans("Dummy"), @@ -95,6 +96,7 @@ struct fmt::formatter _trans("Advance Game Port"), _trans("Broadband Adapter (XLink Kai)"), _trans("Broadband Adapter (tapserver)"), + _trans("Broadband Adapter (Built In)"), }; constexpr formatter() : EnumFormatter(names) {} diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp index 2151b8f013..311d7ccda2 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp @@ -18,6 +18,8 @@ #include "Core/HW/EXI/EXI.h" #include "Core/HW/Memmap.h" +//#define BBA_TRACK_PAGE_PTRS + namespace ExpansionInterface { // XXX: The BBA stores multi-byte elements as little endian. @@ -53,6 +55,11 @@ CEXIETHERNET::CEXIETHERNET(BBADeviceType type) INFO_LOG_FMT(SP1, "Created tapserver physical network interface."); break; #endif + case BBADeviceType::BuiltIn: + m_network_interface = std::make_unique( + this, Config::Get(Config::MAIN_BBA_BUILTIN_DNS), Config::Get(Config::MAIN_BBA_BUILTIN_IP)); + INFO_LOG_FMT(SP1, "Created Built in network interface."); + break; case BBADeviceType::XLINK: // TODO start BBA with network link down, bring it up after "connected" response from XLink @@ -155,6 +162,17 @@ void CEXIETHERNET::ImmWrite(u32 data, u32 size) { case INTERRUPT: exi_status.interrupt &= data ^ 0xff; + // raise back if there is still data + if (page_ptr(BBA_RRP) != page_ptr(BBA_RWP)) + { + if (mBbaMem[BBA_IMR] & INT_R) + { + mBbaMem[BBA_IR] |= INT_R; + + exi_status.interrupt |= exi_status.TRANSFER; + } + } + break; case INTERRUPT_MASK: exi_status.interrupt_mask = data; @@ -228,9 +246,7 @@ void CEXIETHERNET::DMAWrite(u32 addr, u32 size) void CEXIETHERNET::DMARead(u32 addr, u32 size) { DEBUG_LOG_FMT(SP1, "DMA read: {:08x} {:x}", addr, size); - Memory::CopyToEmu(addr, &mBbaMem[transfer.address], size); - transfer.address += size; } @@ -348,7 +364,6 @@ void CEXIETHERNET::MXCommandHandler(u32 data, u32 size) // MXSoftReset(); m_network_interface->Activate(); } - if (((mBbaMem[BBA_NCRA] & NCRA_SR) ^ (data & NCRA_SR)) != 0) { DEBUG_LOG_FMT(SP1, "{} rx", (data & NCRA_SR) ? "start" : "stop"); @@ -415,7 +430,6 @@ void CEXIETHERNET::DirectFIFOWrite(const u8* data, u32 size) { // In direct mode, the hardware handles creating the state required by the // GMAC instead of finagling with packet descriptors and such - u16* tx_fifo_count = (u16*)&mBbaMem[BBA_TXFIFOCNT]; memcpy(tx_fifo.get() + *tx_fifo_count, data, size); @@ -510,76 +524,80 @@ inline void CEXIETHERNET::inc_rwp() { u16* rwp = (u16*)&mBbaMem[BBA_RWP]; - if (*rwp + 1 == page_ptr(BBA_RHBP)) + if (*rwp == page_ptr(BBA_RHBP)) *rwp = page_ptr(BBA_BP); else (*rwp)++; } +inline void CEXIETHERNET::set_rwp(u16 value) +{ + u16* rwp = (u16*)&mBbaMem[BBA_RWP]; + *rwp = value; +} + // This function is on the critical path for receiving data. // Be very careful about calling into the logger and other slow things bool CEXIETHERNET::RecvHandlePacket() { u8* write_ptr; - u8* end_ptr; - u8* read_ptr; Descriptor* descriptor; u32 status = 0; u16 rwp_initial = page_ptr(BBA_RWP); - + u16 current_rwp = 0; + u32 off = 4; if (!RecvMACFilter()) goto wait_for_next; #ifdef BBA_TRACK_PAGE_PTRS INFO_LOG_FMT(SP1, "RecvHandlePacket {:x}\n{}", mRecvBufferLength, - ArrayToString(mRecvBuffer, mRecvBufferLength, 0x100)); + ArrayToString(mRecvBuffer.get(), mRecvBufferLength, 16)); INFO_LOG_FMT(SP1, "{:x} {:x} {:x} {:x}", page_ptr(BBA_BP), page_ptr(BBA_RRP), page_ptr(BBA_RWP), page_ptr(BBA_RHBP)); #endif - write_ptr = ptr_from_page_ptr(BBA_RWP); - end_ptr = ptr_from_page_ptr(BBA_RHBP); - read_ptr = ptr_from_page_ptr(BBA_RRP); + write_ptr = &mBbaMem[page_ptr(BBA_RWP) << 8]; descriptor = (Descriptor*)write_ptr; - write_ptr += 4; - - for (u32 i = 0, off = 4; i < mRecvBufferLength; ++i, ++off) + current_rwp = page_ptr(BBA_RWP); + DEBUG_LOG_FMT(SP1, "Frame recv: {:x}", mRecvBufferLength); + for (u32 i = 0; i < mRecvBufferLength; i++) { - *write_ptr++ = mRecvBuffer[i]; - - if (off == 0xff) + write_ptr[off] = mRecvBuffer[i]; + off++; + if (off == 0x100) { off = 0; - inc_rwp(); - } + // avoid increasing the BBA register while copying + // sometime the OS can try to process when it's not completed + current_rwp = current_rwp == page_ptr(BBA_RHBP) ? page_ptr(BBA_BP) : ++current_rwp; - if (write_ptr == end_ptr) - write_ptr = ptr_from_page_ptr(BBA_BP); + write_ptr = &mBbaMem[current_rwp << 8]; - if (write_ptr == read_ptr) - { - /* - halt copy - if (cur_packet_size >= PAGE_SIZE) - desc.status |= FO | BF - if (RBFIM) - raise RBFI - if (AUTORCVR) - discard bad packet - else - inc MPC instead of receiving packets - */ - status |= DESC_FO | DESC_BF; - mBbaMem[BBA_IR] |= mBbaMem[BBA_IMR] & INT_RBF; - break; + if (page_ptr(BBA_RRP) == current_rwp) + { + /* + halt copy + if (cur_packet_size >= PAGE_SIZE) + desc.status |= FO | BF + if (RBFIM) + raise RBFI + if (AUTORCVR) + discard bad packet + else + inc MPC instead of receiving packets + */ + status |= DESC_FO | DESC_BF; + mBbaMem[BBA_IR] |= mBbaMem[BBA_IMR] & INT_RBF; + break; + } } } // Align up to next page if ((mRecvBufferLength + 4) % 256) - inc_rwp(); + current_rwp = current_rwp == page_ptr(BBA_RHBP) ? page_ptr(BBA_BP) : ++current_rwp; #ifdef BBA_TRACK_PAGE_PTRS INFO_LOG_FMT(SP1, "{:x} {:x} {:x} {:x}", page_ptr(BBA_BP), page_ptr(BBA_RRP), page_ptr(BBA_RWP), @@ -602,7 +620,9 @@ bool CEXIETHERNET::RecvHandlePacket() } } - descriptor->set(*(u16*)&mBbaMem[BBA_RWP], 4 + mRecvBufferLength, status); + descriptor->set(current_rwp, 4 + mRecvBufferLength, status); + + set_rwp(current_rwp); mBbaMem[BBA_LRPS] = status; diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h index 6d8be1f65b..ea29383cbf 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h @@ -13,7 +13,10 @@ #include +#include #include "Common/Flag.h" +#include "Common/Network.h" +#include "Core/HW/EXI/BBA/BuiltIn.h" #include "Core/HW/EXI/EXI_Device.h" class PointerWrap; @@ -204,6 +207,7 @@ enum class BBADeviceType #if defined(__APPLE__) TAPSERVER, #endif + BuiltIn, }; class CEXIETHERNET : public IEXIDevice @@ -289,7 +293,6 @@ private: return ((u16)mBbaMem[index + 1] << 8) | mBbaMem[index]; } - inline u8* ptr_from_page_ptr(int const index) const { return &mBbaMem[page_ptr(index) << 8]; } bool IsMXCommand(u32 const data); bool IsWriteCommand(u32 const data); const char* GetRegisterName() const; @@ -299,9 +302,11 @@ private: void SendFromDirectFIFO(); void SendFromPacketBuffer(); void SendComplete(); + void SendCompleteBack(); u8 HashIndex(const u8* dest_eth_addr); bool RecvMACFilter(); void inc_rwp(); + void set_rwp(u16 value); bool RecvHandlePacket(); std::unique_ptr mBbaMem; @@ -413,6 +418,60 @@ private: #endif }; + class BuiltInBBAInterface : public NetworkInterface + { + public: + BuiltInBBAInterface(CEXIETHERNET* eth_ref, std::string dns_ip, std::string local_ip) + : NetworkInterface(eth_ref), m_dns_ip(std::move(dns_ip)), m_local_ip(std::move(local_ip)) + { + } + + public: + bool Activate() override; + void Deactivate() override; + bool IsActivated() override; + bool SendFrame(const u8* frame, u32 size) override; + bool RecvInit() override; + void RecvStart() override; + void RecvStop() override; + + private: + std::string m_mac_id; + std::string m_dns_ip; + bool active = false; + u16 ip_frame_id = 0; + u8 queue_read = 0; + u8 queue_write = 0; + std::array, 16> queue_data; + std::mutex mtx; + std::string m_local_ip; + u32 m_current_ip = 0; + u32 m_router_ip = 0; +#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \ + defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) + std::array network_ref{}; // max 10 at same time, i think most gc game had a + // limit of 8 in the gc framework + std::unique_ptr m_in_frame; + std::unique_ptr m_out_frame; + std::thread m_read_thread; + Common::Flag m_read_enabled; + Common::Flag m_read_thread_shutdown; + static void ReadThreadHandler(BuiltInBBAInterface* self); + Common::MACAddress fake_mac{}; +#endif + void WriteToQueue(const u8* data, int length); + void HandleARP(Common::EthernetHeader* hwdata, Common::ARPHeader* arpdata); + void HandleDHCP(Common::EthernetHeader* hwdata, Common::UDPHeader* udpdata, + Common::DHCPBody* request); + StackRef* GetAvaibleSlot(u16 port); + StackRef* GetTCPSlot(u16 src_port, u16 dst_port, u32 ip); + void HandleTCPFrame(Common::EthernetHeader* hwdata, Common::IPv4Header* ipdata, + Common::TCPHeader* tcpdata, u8* data); + void InitUDPPort(u16 port); + void HandleUDPFrame(Common::EthernetHeader* hwdata, Common::IPv4Header* ipdata, + Common::UDPHeader* udpdata, u8* data); + }; + std::unique_ptr m_network_interface; std::unique_ptr mRecvBuffer; diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index ca81c1ff48..1695b50bcd 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -254,6 +254,7 @@ + @@ -868,6 +869,7 @@ + diff --git a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp index 0c3af49df1..8b6d96df02 100644 --- a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp +++ b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp @@ -48,6 +48,15 @@ void BroadbandAdapterSettingsDialog::InitControls() window_title = tr("Broadband Adapter MAC Address"); break; + case Type::BuiltIn: + address_label = new QLabel(tr("Enter the DNS server to use:")); + address_placeholder = QString::fromStdString("8.8.8.8"); + current_address = QString::fromStdString(Config::Get(Config::MAIN_BBA_BUILTIN_DNS)); + description = new QLabel(tr("Use 8.8.8.8 for normal DNS, else enter your custom one")); + + window_title = tr("Broadband Adapter DNS setting"); + break; + case Type::XLinkKai: address_label = new QLabel(tr("Enter IP address of device running the XLink Kai Client:")); address_placeholder = QString::fromStdString("127.0.0.1"); @@ -103,6 +112,9 @@ void BroadbandAdapterSettingsDialog::SaveAddress() Config::SetBaseOrCurrent(Config::MAIN_BBA_MAC, bba_new_address); break; + case Type::BuiltIn: + Config::SetBaseOrCurrent(Config::MAIN_BBA_BUILTIN_DNS, bba_new_address); + break; case Type::XLinkKai: Config::SetBaseOrCurrent(Config::MAIN_BBA_XLINK_IP, bba_new_address); break; diff --git a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.h b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.h index 0d532e2da0..ca8d813cbe 100644 --- a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.h +++ b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.h @@ -15,6 +15,7 @@ public: { Ethernet, XLinkKai, + BuiltIn }; explicit BroadbandAdapterSettingsDialog(QWidget* target, Type bba_type); diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp index 94591c7721..cd5cd258df 100644 --- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp +++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp @@ -120,6 +120,7 @@ void GameCubePane::CreateWidgets() #ifdef __APPLE__ EXIDeviceType::EthernetTapServer, #endif + EXIDeviceType::EthernetBuiltIn, }) { m_slot_combos[ExpansionInterface::Slot::SP1]->addItem(tr(fmt::format("{:n}", device).c_str()), @@ -259,7 +260,8 @@ void GameCubePane::UpdateButton(ExpansionInterface::Slot slot) break; case ExpansionInterface::Slot::SP1: has_config = (device == ExpansionInterface::EXIDeviceType::Ethernet || - device == ExpansionInterface::EXIDeviceType::EthernetXLink); + device == ExpansionInterface::EXIDeviceType::EthernetXLink || + device == ExpansionInterface::EXIDeviceType::EthernetBuiltIn); break; } @@ -293,6 +295,11 @@ void GameCubePane::OnConfigPressed(ExpansionInterface::Slot slot) BroadbandAdapterSettingsDialog(this, BroadbandAdapterSettingsDialog::Type::XLinkKai).exec(); return; } + case ExpansionInterface::EXIDeviceType::EthernetBuiltIn: + { + BroadbandAdapterSettingsDialog(this, BroadbandAdapterSettingsDialog::Type::BuiltIn).exec(); + return; + } default: PanicAlertFmt("Unknown settings pressed for {}", device); return; From 4234b25682ddfab6018c3c7bf410e568f527b1cd Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Sun, 3 Jul 2022 15:07:06 -0700 Subject: [PATCH 316/659] Do not directly store input sample rate, rather just store a divisor for that sample rate, with it using a fixed dividend of 54000000 * 2. This should reduce (but not completely eliminate) gradual audio desyncs in dumps. This also allows for accurate sample rates for the GameCube. Completely eliminating gradual audio desyncs will require resampling to an integer sample rate, as nothing seems to support a non-integer sample rate. --- Source/Core/AudioCommon/Mixer.cpp | 51 ++++++++++++---------- Source/Core/AudioCommon/Mixer.h | 34 +++++++++------ Source/Core/AudioCommon/WaveFile.cpp | 17 ++++---- Source/Core/AudioCommon/WaveFile.h | 22 ++++++---- Source/Core/Core/HW/AudioInterface.cpp | 51 ++++++++++++---------- Source/Core/Core/HW/AudioInterface.h | 11 ++--- Source/Core/Core/HW/DVD/DVDInterface.cpp | 15 ++++--- Source/Core/Core/HW/GBACore.cpp | 3 +- Source/Core/Core/HW/SystemTimers.cpp | 4 +- Source/Core/Core/HW/WiimoteEmu/Speaker.cpp | 4 +- Source/Core/Core/State.cpp | 2 +- 11 files changed, 121 insertions(+), 93 deletions(-) diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index e0b7f28768..5baa02d25e 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -76,16 +76,18 @@ unsigned int Mixer::MixerFifo::Mix(short* samples, unsigned int numSamples, // advance indexR with sample position // remember fractional offset - float aid_sample_rate = static_cast(m_input_sample_rate); + float aid_sample_rate = + FIXED_SAMPLE_RATE_DIVIDEND / static_cast(m_input_sample_rate_divisor); if (consider_framelimit && emulationspeed > 0.0f) { float numLeft = static_cast(((indexW - indexR) & INDEX_MASK) / 2); - u32 low_waterwark = m_input_sample_rate * timing_variance / 1000; - low_waterwark = std::min(low_waterwark, MAX_SAMPLES / 2); + u32 low_watermark = (FIXED_SAMPLE_RATE_DIVIDEND * timing_variance) / + (static_cast(m_input_sample_rate_divisor) * 1000); + low_watermark = std::min(low_watermark, MAX_SAMPLES / 2); m_numLeftI = (numLeft + m_numLeftI * (CONTROL_AVG - 1)) / CONTROL_AVG; - float offset = (m_numLeftI - low_waterwark) * CONTROL_FACTOR; + float offset = (m_numLeftI - low_watermark) * CONTROL_FACTOR; if (offset > MAX_FREQ_SHIFT) offset = MAX_FREQ_SHIFT; if (offset < -MAX_FREQ_SHIFT) @@ -258,9 +260,9 @@ void Mixer::PushSamples(const short* samples, unsigned int num_samples) m_dma_mixer.PushSamples(samples, num_samples); if (m_log_dsp_audio) { - int sample_rate = m_dma_mixer.GetInputSampleRate(); + int sample_rate_divisor = m_dma_mixer.GetInputSampleRateDivisor(); auto volume = m_dma_mixer.GetVolume(); - m_wave_writer_dsp.AddStereoSamplesBE(samples, num_samples, sample_rate, volume.first, + m_wave_writer_dsp.AddStereoSamplesBE(samples, num_samples, sample_rate_divisor, volume.first, volume.second); } } @@ -270,21 +272,21 @@ void Mixer::PushStreamingSamples(const short* samples, unsigned int num_samples) m_streaming_mixer.PushSamples(samples, num_samples); if (m_log_dtk_audio) { - int sample_rate = m_streaming_mixer.GetInputSampleRate(); + int sample_rate_divisor = m_streaming_mixer.GetInputSampleRateDivisor(); auto volume = m_streaming_mixer.GetVolume(); - m_wave_writer_dtk.AddStereoSamplesBE(samples, num_samples, sample_rate, volume.first, + m_wave_writer_dtk.AddStereoSamplesBE(samples, num_samples, sample_rate_divisor, volume.first, volume.second); } } void Mixer::PushWiimoteSpeakerSamples(const short* samples, unsigned int num_samples, - unsigned int sample_rate) + unsigned int sample_rate_divisor) { short samples_stereo[MAX_SAMPLES * 2]; if (num_samples < MAX_SAMPLES) { - m_wiimote_speaker_mixer.SetInputSampleRate(sample_rate); + m_wiimote_speaker_mixer.SetInputSampleRateDivisor(sample_rate_divisor); for (unsigned int i = 0; i < num_samples; ++i) { @@ -301,19 +303,19 @@ void Mixer::PushGBASamples(int device_number, const short* samples, unsigned int m_gba_mixers[device_number].PushSamples(samples, num_samples); } -void Mixer::SetDMAInputSampleRate(unsigned int rate) +void Mixer::SetDMAInputSampleRateDivisor(unsigned int rate_divisor) { - m_dma_mixer.SetInputSampleRate(rate); + m_dma_mixer.SetInputSampleRateDivisor(rate_divisor); } -void Mixer::SetStreamInputSampleRate(unsigned int rate) +void Mixer::SetStreamInputSampleRateDivisor(unsigned int rate_divisor) { - m_streaming_mixer.SetInputSampleRate(rate); + m_streaming_mixer.SetInputSampleRateDivisor(rate_divisor); } -void Mixer::SetGBAInputSampleRates(int device_number, unsigned int rate) +void Mixer::SetGBAInputSampleRateDivisors(int device_number, unsigned int rate_divisor) { - m_gba_mixers[device_number].SetInputSampleRate(rate); + m_gba_mixers[device_number].SetInputSampleRateDivisor(rate_divisor); } void Mixer::SetStreamingVolume(unsigned int lvolume, unsigned int rvolume) @@ -335,7 +337,7 @@ void Mixer::StartLogDTKAudio(const std::string& filename) { if (!m_log_dtk_audio) { - bool success = m_wave_writer_dtk.Start(filename, m_streaming_mixer.GetInputSampleRate()); + bool success = m_wave_writer_dtk.Start(filename, m_streaming_mixer.GetInputSampleRateDivisor()); if (success) { m_log_dtk_audio = true; @@ -372,7 +374,7 @@ void Mixer::StartLogDSPAudio(const std::string& filename) { if (!m_log_dsp_audio) { - bool success = m_wave_writer_dsp.Start(filename, m_dma_mixer.GetInputSampleRate()); + bool success = m_wave_writer_dsp.Start(filename, m_dma_mixer.GetInputSampleRateDivisor()); if (success) { m_log_dsp_audio = true; @@ -414,19 +416,19 @@ void Mixer::RefreshConfig() void Mixer::MixerFifo::DoState(PointerWrap& p) { - p.Do(m_input_sample_rate); + p.Do(m_input_sample_rate_divisor); p.Do(m_LVolume); p.Do(m_RVolume); } -void Mixer::MixerFifo::SetInputSampleRate(unsigned int rate) +void Mixer::MixerFifo::SetInputSampleRateDivisor(unsigned int rate_divisor) { - m_input_sample_rate = rate; + m_input_sample_rate_divisor = rate_divisor; } -unsigned int Mixer::MixerFifo::GetInputSampleRate() const +unsigned int Mixer::MixerFifo::GetInputSampleRateDivisor() const { - return m_input_sample_rate; + return m_input_sample_rate_divisor; } void Mixer::MixerFifo::SetVolume(unsigned int lvolume, unsigned int rvolume) @@ -445,5 +447,6 @@ unsigned int Mixer::MixerFifo::AvailableSamples() const unsigned int samples_in_fifo = ((m_indexW.load() - m_indexR.load()) & INDEX_MASK) / 2; if (samples_in_fifo <= 1) return 0; // Mixer::MixerFifo::Mix always keeps one sample in the buffer. - return (samples_in_fifo - 1) * m_mixer->m_sampleRate / m_input_sample_rate; + return (samples_in_fifo - 1) * static_cast(m_mixer->m_sampleRate) * + m_input_sample_rate_divisor / FIXED_SAMPLE_RATE_DIVIDEND; } diff --git a/Source/Core/AudioCommon/Mixer.h b/Source/Core/AudioCommon/Mixer.h index f58c25f98a..7191fd6ab0 100644 --- a/Source/Core/AudioCommon/Mixer.h +++ b/Source/Core/AudioCommon/Mixer.h @@ -29,14 +29,14 @@ public: void PushSamples(const short* samples, unsigned int num_samples); void PushStreamingSamples(const short* samples, unsigned int num_samples); void PushWiimoteSpeakerSamples(const short* samples, unsigned int num_samples, - unsigned int sample_rate); + unsigned int sample_rate_divisor); void PushGBASamples(int device_number, const short* samples, unsigned int num_samples); unsigned int GetSampleRate() const { return m_sampleRate; } - void SetDMAInputSampleRate(unsigned int rate); - void SetStreamInputSampleRate(unsigned int rate); - void SetGBAInputSampleRates(int device_number, unsigned int rate); + void SetDMAInputSampleRateDivisor(unsigned int rate_divisor); + void SetStreamInputSampleRateDivisor(unsigned int rate_divisor); + void SetGBAInputSampleRateDivisors(int device_number, unsigned int rate_divisor); void SetStreamingVolume(unsigned int lvolume, unsigned int rvolume); void SetWiimoteSpeakerVolume(unsigned int lvolume, unsigned int rvolume); @@ -51,6 +51,9 @@ public: float GetCurrentSpeed() const { return m_speed.load(); } void UpdateSpeed(float val) { m_speed.store(val); } + // 54000000 doesn't work here as it doesn't evenly divide with 32000, but 108000000 does + static constexpr u64 FIXED_SAMPLE_RATE_DIVIDEND = 54000000 * 2; + private: static constexpr u32 MAX_SAMPLES = 1024 * 4; // 128 ms static constexpr u32 INDEX_MASK = MAX_SAMPLES * 2 - 1; @@ -63,23 +66,24 @@ private: class MixerFifo final { public: - MixerFifo(Mixer* mixer, unsigned sample_rate, bool little_endian) - : m_mixer(mixer), m_input_sample_rate(sample_rate), m_little_endian(little_endian) + MixerFifo(Mixer* mixer, unsigned sample_rate_divisor, bool little_endian) + : m_mixer(mixer), m_input_sample_rate_divisor(sample_rate_divisor), + m_little_endian(little_endian) { } void DoState(PointerWrap& p); void PushSamples(const short* samples, unsigned int num_samples); unsigned int Mix(short* samples, unsigned int numSamples, bool consider_framelimit, float emulationspeed, int timing_variance); - void SetInputSampleRate(unsigned int rate); - unsigned int GetInputSampleRate() const; + void SetInputSampleRateDivisor(unsigned int rate_divisor); + unsigned int GetInputSampleRateDivisor() const; void SetVolume(unsigned int lvolume, unsigned int rvolume); std::pair GetVolume() const; unsigned int AvailableSamples() const; private: Mixer* m_mixer; - unsigned m_input_sample_rate; + unsigned m_input_sample_rate_divisor; bool m_little_endian; std::array m_buffer{}; std::atomic m_indexW{0}; @@ -93,11 +97,13 @@ private: void RefreshConfig(); - MixerFifo m_dma_mixer{this, 32000, false}; - MixerFifo m_streaming_mixer{this, 48000, false}; - MixerFifo m_wiimote_speaker_mixer{this, 3000, true}; - std::array m_gba_mixers{MixerFifo{this, 48000, true}, MixerFifo{this, 48000, true}, - MixerFifo{this, 48000, true}, MixerFifo{this, 48000, true}}; + MixerFifo m_dma_mixer{this, FIXED_SAMPLE_RATE_DIVIDEND / 32000, false}; + MixerFifo m_streaming_mixer{this, FIXED_SAMPLE_RATE_DIVIDEND / 48000, false}; + MixerFifo m_wiimote_speaker_mixer{this, FIXED_SAMPLE_RATE_DIVIDEND / 3000, true}; + std::array m_gba_mixers{MixerFifo{this, FIXED_SAMPLE_RATE_DIVIDEND / 48000, true}, + MixerFifo{this, FIXED_SAMPLE_RATE_DIVIDEND / 48000, true}, + MixerFifo{this, FIXED_SAMPLE_RATE_DIVIDEND / 48000, true}, + MixerFifo{this, FIXED_SAMPLE_RATE_DIVIDEND / 48000, true}}; unsigned int m_sampleRate; bool m_is_stretching = false; diff --git a/Source/Core/AudioCommon/WaveFile.cpp b/Source/Core/AudioCommon/WaveFile.cpp index befcf6bfbd..dc689e74dd 100644 --- a/Source/Core/AudioCommon/WaveFile.cpp +++ b/Source/Core/AudioCommon/WaveFile.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "AudioCommon/WaveFile.h" +#include "AudioCommon/Mixer.h" #include @@ -26,7 +27,7 @@ WaveFileWriter::~WaveFileWriter() Stop(); } -bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRate) +bool WaveFileWriter::Start(const std::string& filename, u32 sample_rate_divisor) { // Ask to delete file if (File::Exists(filename)) @@ -65,7 +66,7 @@ bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRa if (basename.empty()) SplitPath(filename, nullptr, &basename, nullptr); - current_sample_rate = HLESampleRate; + current_sample_rate_divisor = sample_rate_divisor; // ----------------- // Write file header @@ -78,7 +79,7 @@ bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRa Write(16); // size of fmt block Write(0x00020001); // two channels, uncompressed - const u32 sample_rate = HLESampleRate; + const u32 sample_rate = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / sample_rate_divisor; Write(sample_rate); Write(sample_rate * 2 * 2); // two channels, 16bit @@ -114,8 +115,8 @@ void WaveFileWriter::Write4(const char* ptr) file.WriteBytes(ptr, 4); } -void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate, - int l_volume, int r_volume) +void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, + u32 sample_rate_divisor, int l_volume, int r_volume) { if (!file) ERROR_LOG_FMT(AUDIO, "WaveFileWriter - file not open."); @@ -148,14 +149,14 @@ void WaveFileWriter::AddStereoSamplesBE(const short* sample_data, u32 count, int conv_buffer[2 * i + 1] = conv_buffer[2 * i + 1] * r_volume / 256; } - if (sample_rate != current_sample_rate) + if (sample_rate_divisor != current_sample_rate_divisor) { Stop(); file_index++; std::ostringstream filename; filename << File::GetUserPath(D_DUMPAUDIO_IDX) << basename << file_index << ".wav"; - Start(filename.str(), sample_rate); - current_sample_rate = sample_rate; + Start(filename.str(), sample_rate_divisor); + current_sample_rate_divisor = sample_rate_divisor; } file.WriteBytes(conv_buffer.data(), count * 4); diff --git a/Source/Core/AudioCommon/WaveFile.h b/Source/Core/AudioCommon/WaveFile.h index e95ed8eb73..350e1da9af 100644 --- a/Source/Core/AudioCommon/WaveFile.h +++ b/Source/Core/AudioCommon/WaveFile.h @@ -30,24 +30,28 @@ public: WaveFileWriter(WaveFileWriter&&) = delete; WaveFileWriter& operator=(WaveFileWriter&&) = delete; - bool Start(const std::string& filename, unsigned int HLESampleRate); + bool Start(const std::string& filename, u32 sample_rate_divisor); void Stop(); void SetSkipSilence(bool skip) { skip_silence = skip; } - void AddStereoSamplesBE(const short* sample_data, u32 count, int sample_rate, int l_volume, - int r_volume); // big endian + // big endian + void AddStereoSamplesBE(const short* sample_data, u32 count, u32 sample_rate_divisor, + int l_volume, int r_volume); u32 GetAudioSize() const { return audio_size; } private: static constexpr size_t BUFFER_SIZE = 32 * 1024; - File::IOFile file; - bool skip_silence = false; - u32 audio_size = 0; - std::array conv_buffer{}; void Write(u32 value); void Write4(const char* ptr); + + File::IOFile file; std::string basename; - int current_sample_rate; - int file_index = 0; + u32 file_index = 0; + u32 audio_size = 0; + + u32 current_sample_rate_divisor; + std::array conv_buffer{}; + + bool skip_silence = false; }; diff --git a/Source/Core/Core/HW/AudioInterface.cpp b/Source/Core/Core/HW/AudioInterface.cpp index bdcb5d47d6..de7590390e 100644 --- a/Source/Core/Core/HW/AudioInterface.cpp +++ b/Source/Core/Core/HW/AudioInterface.cpp @@ -112,8 +112,8 @@ static u32 s_interrupt_timing = 0; static u64 s_last_cpu_time = 0; static u64 s_cpu_cycles_per_sample = 0; -static u32 s_ais_sample_rate = 48000; -static u32 s_aid_sample_rate = 32000; +static u32 s_ais_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 48000; +static u32 s_aid_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 32000; void DoState(PointerWrap& p) { @@ -122,8 +122,8 @@ void DoState(PointerWrap& p) p.Do(s_sample_counter); p.Do(s_interrupt_timing); p.Do(s_last_cpu_time); - p.Do(s_ais_sample_rate); - p.Do(s_aid_sample_rate); + p.Do(s_ais_sample_rate_divisor); + p.Do(s_aid_sample_rate_divisor); p.Do(s_cpu_cycles_per_sample); g_sound_stream->GetMixer()->DoState(p); @@ -148,14 +148,15 @@ void Init() s_last_cpu_time = 0; - s_ais_sample_rate = Get48KHzSampleRate(); - s_aid_sample_rate = Get32KHzSampleRate(); - s_cpu_cycles_per_sample = SystemTimers::GetTicksPerSecond() / s_ais_sample_rate; + s_ais_sample_rate_divisor = Get48KHzSampleRateDivisor(); + s_aid_sample_rate_divisor = Get32KHzSampleRateDivisor(); + s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * + s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; event_type_ai = CoreTiming::RegisterEvent("AICallback", Update); - g_sound_stream->GetMixer()->SetDMAInputSampleRate(GetAIDSampleRate()); - g_sound_stream->GetMixer()->SetStreamInputSampleRate(GetAISSampleRate()); + g_sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(GetAIDSampleRateDivisor()); + g_sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(GetAISSampleRateDivisor()); } void Shutdown() @@ -188,9 +189,11 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AISFR to {}", tmp_ai_ctrl.AISFR ? "48khz" : "32khz"); s_control.AISFR = tmp_ai_ctrl.AISFR; - s_ais_sample_rate = tmp_ai_ctrl.AISFR ? Get48KHzSampleRate() : Get32KHzSampleRate(); - g_sound_stream->GetMixer()->SetStreamInputSampleRate(s_ais_sample_rate); - s_cpu_cycles_per_sample = SystemTimers::GetTicksPerSecond() / s_ais_sample_rate; + s_ais_sample_rate_divisor = + tmp_ai_ctrl.AISFR ? Get48KHzSampleRateDivisor() : Get32KHzSampleRateDivisor(); + g_sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(s_ais_sample_rate_divisor); + s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * + s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; } // Set frequency of DMA if (tmp_ai_ctrl.AIDFR != s_control.AIDFR) @@ -198,8 +201,9 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AIDFR to {}", tmp_ai_ctrl.AIDFR ? "32khz" : "48khz"); s_control.AIDFR = tmp_ai_ctrl.AIDFR; - s_aid_sample_rate = tmp_ai_ctrl.AIDFR ? Get32KHzSampleRate() : Get48KHzSampleRate(); - g_sound_stream->GetMixer()->SetDMAInputSampleRate(s_aid_sample_rate); + s_aid_sample_rate_divisor = + tmp_ai_ctrl.AIDFR ? Get32KHzSampleRateDivisor() : Get48KHzSampleRateDivisor(); + g_sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(s_aid_sample_rate_divisor); } // Streaming counter @@ -301,24 +305,24 @@ bool IsPlaying() return (s_control.PSTAT == 1); } -u32 GetAIDSampleRate() +u32 GetAIDSampleRateDivisor() { - return s_aid_sample_rate; + return s_aid_sample_rate_divisor; } -u32 GetAISSampleRate() +u32 GetAISSampleRateDivisor() { - return s_ais_sample_rate; + return s_ais_sample_rate_divisor; } -u32 Get32KHzSampleRate() +u32 Get32KHzSampleRateDivisor() { - return SConfig::GetInstance().bWii ? 32000 : 32029; + return Get48KHzSampleRateDivisor() * 3 / 2; } -u32 Get48KHzSampleRate() +u32 Get48KHzSampleRateDivisor() { - return SConfig::GetInstance().bWii ? 48000 : 48043; + return (SConfig::GetInstance().bWii ? 1125 : 1124) * 2; } static void Update(u64 userdata, s64 cycles_late) @@ -339,7 +343,8 @@ static void Update(u64 userdata, s64 cycles_late) int GetAIPeriod() { u64 period = s_cpu_cycles_per_sample * (s_interrupt_timing - s_sample_counter); - u64 s_period = s_cpu_cycles_per_sample * s_ais_sample_rate; + u64 s_period = + s_cpu_cycles_per_sample * Mixer::FIXED_SAMPLE_RATE_DIVIDEND / s_ais_sample_rate_divisor; if (period == 0) return static_cast(s_period); return static_cast(std::min(period, s_period)); diff --git a/Source/Core/Core/HW/AudioInterface.h b/Source/Core/Core/HW/AudioInterface.h index b3799e2140..afab8c769a 100644 --- a/Source/Core/Core/HW/AudioInterface.h +++ b/Source/Core/Core/HW/AudioInterface.h @@ -22,12 +22,13 @@ bool IsPlaying(); void RegisterMMIO(MMIO::Mapping* mmio, u32 base); -// Get the audio rates (48000 or 32000 only) -u32 GetAIDSampleRate(); -u32 GetAISSampleRate(); +// Get the audio rate divisors (divisors for 48KHz or 32KHz only) +// Mixer::FIXED_SAMPLE_RATE_DIVIDEND will be the dividend used for these divisors +u32 GetAIDSampleRateDivisor(); +u32 GetAISSampleRateDivisor(); -u32 Get32KHzSampleRate(); -u32 Get48KHzSampleRate(); +u32 Get32KHzSampleRateDivisor(); +u32 Get48KHzSampleRateDivisor(); void GenerateAISInterrupt(); diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index bbd1d27e3e..857c6edb91 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -294,12 +294,16 @@ static u32 AdvanceDTK(u32 maximum_samples, u32* samples_to_process) static void DTKStreamingCallback(DIInterruptType interrupt_type, const std::vector& audio_data, s64 cycles_late) { - // TODO: Should we use GetAISSampleRate instead of a fixed 48 KHz? The audio mixer is using - // GetAISSampleRate. (This doesn't affect any actual games, since they all set it to 48 KHz.) - const u32 sample_rate = AudioInterface::Get48KHzSampleRate(); + // Actual games always set this to 48 KHz + // but let's make sure to use GetAISSampleRateDivisor() + // just in case it changes to 32 KHz + const u32 sample_rate_divisor = AudioInterface::GetAISSampleRateDivisor(); // Determine which audio data to read next. - const u32 maximum_samples = sample_rate / 2000 * 7; // 3.5 ms of samples + + // 3.5 ms of samples + const u32 maximum_samples = + ((Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 2000) * 7) / sample_rate_divisor; u64 read_offset = 0; u32 read_length = 0; @@ -328,7 +332,8 @@ static void DTKStreamingCallback(DIInterruptType interrupt_type, const std::vect } // Read the next chunk of audio data asynchronously. - s64 ticks_to_dtk = SystemTimers::GetTicksPerSecond() * s64(s_pending_samples) / sample_rate; + s64 ticks_to_dtk = SystemTimers::GetTicksPerSecond() * s64(s_pending_samples) * + sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; ticks_to_dtk -= cycles_late; if (read_length > 0) { diff --git a/Source/Core/Core/HW/GBACore.cpp b/Source/Core/Core/HW/GBACore.cpp index f755345807..54da03092e 100644 --- a/Source/Core/Core/HW/GBACore.cpp +++ b/Source/Core/Core/HW/GBACore.cpp @@ -405,7 +405,8 @@ void Core::SetSampleRates() m_core->setAudioBufferSize(m_core, SAMPLES); blip_set_rates(m_core->getAudioChannel(m_core, 0), m_core->frequency(m_core), SAMPLE_RATE); blip_set_rates(m_core->getAudioChannel(m_core, 1), m_core->frequency(m_core), SAMPLE_RATE); - g_sound_stream->GetMixer()->SetGBAInputSampleRates(m_device_number, SAMPLE_RATE); + g_sound_stream->GetMixer()->SetGBAInputSampleRateDivisors( + m_device_number, Mixer::FIXED_SAMPLE_RATE_DIVIDEND / SAMPLE_RATE); } void Core::AddCallbacks() diff --git a/Source/Core/Core/HW/SystemTimers.cpp b/Source/Core/Core/HW/SystemTimers.cpp index ca96006fa9..00a1fb9f36 100644 --- a/Source/Core/Core/HW/SystemTimers.cpp +++ b/Source/Core/Core/HW/SystemTimers.cpp @@ -48,6 +48,7 @@ IPC_HLE_PERIOD: For the Wii Remote this is the call schedule: #include #include +#include "AudioCommon/Mixer.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Common/Thread.h" @@ -110,7 +111,8 @@ void DSPCallback(u64 userdata, s64 cyclesLate) int GetAudioDMACallbackPeriod() { // System internal sample rate is fixed at 32KHz * 4 (16bit Stereo) / 32 bytes DMA - return s_cpu_core_clock / (AudioInterface::GetAIDSampleRate() * 4 / 32); + return static_cast(s_cpu_core_clock) * AudioInterface::GetAIDSampleRateDivisor() / + (Mixer::FIXED_SAMPLE_RATE_DIVIDEND * 4 / 32); } void AudioDMACallback(u64 userdata, s64 cyclesLate) diff --git a/Source/Core/Core/HW/WiimoteEmu/Speaker.cpp b/Source/Core/Core/HW/WiimoteEmu/Speaker.cpp index e09c991419..0862fcba76 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Speaker.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Speaker.cpp @@ -145,8 +145,8 @@ void SpeakerLogic::SpeakerData(const u8* data, int length, float speaker_pan) // ADPCM sample rate is thought to be x2.(3000 x2 = 6000). const unsigned int sample_rate = sample_rate_dividend / reg_data.sample_rate; - g_sound_stream->GetMixer()->PushWiimoteSpeakerSamples(samples.get(), sample_length, - sample_rate * 2); + g_sound_stream->GetMixer()->PushWiimoteSpeakerSamples( + samples.get(), sample_length, Mixer::FIXED_SAMPLE_RATE_DIVIDEND / (sample_rate * 2)); #ifdef WIIMOTE_SPEAKER_DUMP static int num = 0; diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index e10fc44fed..8c86511c2b 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 143; // Last changed in PR 10784 +constexpr u32 STATE_VERSION = 144; // Last changed in PR 10762 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From c6eb5e2623f0f751dc9757bed1a99001cc3bce80 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Tue, 5 Jul 2022 15:13:20 -0400 Subject: [PATCH 317/659] FileUtil: Only attempt to write to the destination in Copy if there is actually content to write --- Source/Core/Common/FileUtil.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index c9dae68b60..b03a22f108 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -433,8 +433,18 @@ bool Copy(const std::string& source_path, const std::string& destination_path) #else std::ifstream source{source_path, std::ios::binary}; std::ofstream destination{destination_path, std::ios::binary}; - destination << source.rdbuf(); - return source.good() && destination.good(); + + // Only attempt to write with << if there is actually something in the file + if (source.peek() != std::ifstream::traits_type::eof()) + { + destination << source.rdbuf(); + return source.good() && destination.good(); + } + else + { + // We can't use source.good() here because eofbit will be set, so check for the other bits. + return !source.fail() && !source.bad() && destination.good(); + } #endif } From d0b33c7adfc5143e0c2cb5ba0ea2f24c3a4c6f30 Mon Sep 17 00:00:00 2001 From: TryTwo Date: Tue, 5 Jul 2022 06:17:06 -0700 Subject: [PATCH 318/659] Debugger CodeWidget: Add filter boxes to callstack, function calls, and function callers. Move symbols search box to align with changes. --- Source/Core/DolphinQt/Debugger/CodeWidget.cpp | 117 +++++++++++------- Source/Core/DolphinQt/Debugger/CodeWidget.h | 5 +- 2 files changed, 73 insertions(+), 49 deletions(-) diff --git a/Source/Core/DolphinQt/Debugger/CodeWidget.cpp b/Source/Core/DolphinQt/Debugger/CodeWidget.cpp index 3be5a75776..252c62b84c 100644 --- a/Source/Core/DolphinQt/Debugger/CodeWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/CodeWidget.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -95,51 +96,45 @@ void CodeWidget::CreateWidgets() layout->setSpacing(0); m_search_address = new QLineEdit; - m_search_symbols = new QLineEdit; m_code_diff = new QPushButton(tr("Diff")); m_code_view = new CodeViewWidget; m_search_address->setPlaceholderText(tr("Search Address")); - m_search_symbols->setPlaceholderText(tr("Filter Symbols")); - - // Callstack - auto* callstack_box = new QGroupBox(tr("Callstack")); - auto* callstack_layout = new QVBoxLayout; - m_callstack_list = new QListWidget; - - callstack_box->setLayout(callstack_layout); - callstack_layout->addWidget(m_callstack_list); - - // Symbols - auto* symbols_box = new QGroupBox(tr("Symbols")); - auto* symbols_layout = new QVBoxLayout; - m_symbols_list = new QListWidget; - - symbols_box->setLayout(symbols_layout); - symbols_layout->addWidget(m_symbols_list); - - // Function calls - auto* function_calls_box = new QGroupBox(tr("Function calls")); - auto* function_calls_layout = new QVBoxLayout; - m_function_calls_list = new QListWidget; - - function_calls_box->setLayout(function_calls_layout); - function_calls_layout->addWidget(m_function_calls_list); - - // Function callers - auto* function_callers_box = new QGroupBox(tr("Function callers")); - auto* function_callers_layout = new QVBoxLayout; - m_function_callers_list = new QListWidget; - - function_callers_box->setLayout(function_callers_layout); - function_callers_layout->addWidget(m_function_callers_list); m_box_splitter = new QSplitter(Qt::Vertical); + m_box_splitter->setStyleSheet(QStringLiteral( + "QSplitter::handle { border-top: 1px dashed black; width: 1px; margin-left: 10px; " + "margin-right: 10px; }")); - m_box_splitter->addWidget(callstack_box); - m_box_splitter->addWidget(symbols_box); - m_box_splitter->addWidget(function_calls_box); - m_box_splitter->addWidget(function_callers_box); + auto add_search_line_edit = [this](const QString& name, QListWidget* list_widget) { + auto* widget = new QWidget; + auto* layout = new QGridLayout; + auto* label = new QLabel(name); + auto* search_line_edit = new QLineEdit; + + widget->setLayout(layout); + layout->addWidget(label, 0, 0); + layout->addWidget(search_line_edit, 0, 1); + layout->addWidget(list_widget, 1, 0, -1, -1); + m_box_splitter->addWidget(widget); + return search_line_edit; + }; + + // Callstack + m_callstack_list = new QListWidget; + m_search_callstack = add_search_line_edit(tr("Callstack"), m_callstack_list); + + // Symbols + m_symbols_list = new QListWidget; + m_search_symbols = add_search_line_edit(tr("Symbols"), m_symbols_list); + + // Function calls + m_function_calls_list = new QListWidget; + m_search_calls = add_search_line_edit(tr("Calls"), m_function_calls_list); + + // Function callers + m_function_callers_list = new QListWidget; + m_search_callers = add_search_line_edit(tr("Callers"), m_function_callers_list); m_code_splitter = new QSplitter(Qt::Horizontal); @@ -147,7 +142,6 @@ void CodeWidget::CreateWidgets() m_code_splitter->addWidget(m_code_view); layout->addWidget(m_search_address, 0, 0); - layout->addWidget(m_search_symbols, 0, 1); layout->addWidget(m_code_diff, 0, 2); layout->addWidget(m_code_splitter, 1, 0, -1, -1); @@ -161,6 +155,18 @@ void CodeWidget::ConnectWidgets() connect(m_search_address, &QLineEdit::textChanged, this, &CodeWidget::OnSearchAddress); connect(m_search_address, &QLineEdit::returnPressed, this, &CodeWidget::OnSearchAddress); connect(m_search_symbols, &QLineEdit::textChanged, this, &CodeWidget::OnSearchSymbols); + connect(m_search_calls, &QLineEdit::textChanged, this, [this]() { + const Common::Symbol* symbol = g_symbolDB.GetSymbolFromAddr(m_code_view->GetAddress()); + if (symbol) + UpdateFunctionCalls(symbol); + }); + connect(m_search_callers, &QLineEdit::textChanged, this, [this]() { + const Common::Symbol* symbol = g_symbolDB.GetSymbolFromAddr(m_code_view->GetAddress()); + if (symbol) + UpdateFunctionCallers(symbol); + }); + connect(m_search_callstack, &QLineEdit::textChanged, this, &CodeWidget::UpdateCallstack); + connect(m_code_diff, &QPushButton::pressed, this, &CodeWidget::OnDiff); connect(m_symbols_list, &QListWidget::itemPressed, this, &CodeWidget::OnSelectSymbol); @@ -318,12 +324,17 @@ void CodeWidget::UpdateCallstack() return; } + const QString filter = m_search_callstack->text(); + for (const auto& frame : stack) { - auto* item = - new QListWidgetItem(QString::fromStdString(frame.Name.substr(0, frame.Name.length() - 1))); - item->setData(Qt::UserRole, frame.vAddress); + const QString name = QString::fromStdString(frame.Name.substr(0, frame.Name.length() - 1)); + if (name.toUpper().indexOf(filter.toUpper()) == -1) + continue; + + auto* item = new QListWidgetItem(name); + item->setData(Qt::UserRole, frame.vAddress); m_callstack_list->addItem(item); } } @@ -359,6 +370,7 @@ void CodeWidget::UpdateSymbols() void CodeWidget::UpdateFunctionCalls(const Common::Symbol* symbol) { m_function_calls_list->clear(); + const QString filter = m_search_calls->text(); for (const auto& call : symbol->calls) { @@ -367,10 +379,14 @@ void CodeWidget::UpdateFunctionCalls(const Common::Symbol* symbol) if (call_symbol) { - auto* item = new QListWidgetItem( - QString::fromStdString(StringFromFormat("> %s (%08x)", call_symbol->name.c_str(), addr))); - item->setData(Qt::UserRole, addr); + const QString name = + QString::fromStdString(StringFromFormat("> %s (%08x)", call_symbol->name.c_str(), addr)); + if (name.toUpper().indexOf(filter.toUpper()) == -1) + continue; + + auto* item = new QListWidgetItem(name); + item->setData(Qt::UserRole, addr); m_function_calls_list->addItem(item); } } @@ -379,6 +395,7 @@ void CodeWidget::UpdateFunctionCalls(const Common::Symbol* symbol) void CodeWidget::UpdateFunctionCallers(const Common::Symbol* symbol) { m_function_callers_list->clear(); + const QString filter = m_search_callers->text(); for (const auto& caller : symbol->callers) { @@ -387,10 +404,14 @@ void CodeWidget::UpdateFunctionCallers(const Common::Symbol* symbol) if (caller_symbol) { - auto* item = new QListWidgetItem(QString::fromStdString( - StringFromFormat("< %s (%08x)", caller_symbol->name.c_str(), addr))); - item->setData(Qt::UserRole, addr); + const QString name = QString::fromStdString( + StringFromFormat("< %s (%08x)", caller_symbol->name.c_str(), addr)); + if (name.toUpper().indexOf(filter.toUpper()) == -1) + continue; + + auto* item = new QListWidgetItem(name); + item->setData(Qt::UserRole, addr); m_function_callers_list->addItem(item); } } diff --git a/Source/Core/DolphinQt/Debugger/CodeWidget.h b/Source/Core/DolphinQt/Debugger/CodeWidget.h index fcf67d89a6..f198e004cc 100644 --- a/Source/Core/DolphinQt/Debugger/CodeWidget.h +++ b/Source/Core/DolphinQt/Debugger/CodeWidget.h @@ -68,12 +68,15 @@ private: CodeDiffDialog* m_diff_dialog = nullptr; QLineEdit* m_search_address; - QLineEdit* m_search_symbols; QPushButton* m_code_diff; + QLineEdit* m_search_callstack; QListWidget* m_callstack_list; + QLineEdit* m_search_symbols; QListWidget* m_symbols_list; + QLineEdit* m_search_calls; QListWidget* m_function_calls_list; + QLineEdit* m_search_callers; QListWidget* m_function_callers_list; CodeViewWidget* m_code_view; QSplitter* m_box_splitter; From c3b7019eb32c98120ca56e3d97dd4413f42cf91e Mon Sep 17 00:00:00 2001 From: JosJuice Date: Tue, 5 Jul 2022 23:36:12 +0200 Subject: [PATCH 319/659] Translation resources sync with Transifex --- Languages/po/ar.po | 335 ++++++++++++++++----------------- Languages/po/ca.po | 255 ++++++++++++------------- Languages/po/cs.po | 255 ++++++++++++------------- Languages/po/da.po | 255 ++++++++++++------------- Languages/po/de.po | 255 ++++++++++++------------- Languages/po/dolphin-emu.pot | 255 ++++++++++++------------- Languages/po/el.po | 255 ++++++++++++------------- Languages/po/en.po | 255 ++++++++++++------------- Languages/po/es.po | 275 ++++++++++++++------------- Languages/po/fa.po | 255 ++++++++++++------------- Languages/po/fr.po | 251 ++++++++++++------------- Languages/po/hr.po | 255 ++++++++++++------------- Languages/po/hu.po | 255 ++++++++++++------------- Languages/po/it.po | 251 ++++++++++++------------- Languages/po/ja.po | 255 ++++++++++++------------- Languages/po/ko.po | 251 ++++++++++++------------- Languages/po/ms.po | 255 ++++++++++++------------- Languages/po/nb.po | 255 ++++++++++++------------- Languages/po/nl.po | 273 ++++++++++++++------------- Languages/po/pl.po | 255 ++++++++++++------------- Languages/po/pt.po | 255 ++++++++++++------------- Languages/po/pt_BR.po | 347 ++++++++++++++++++----------------- Languages/po/ro.po | 255 ++++++++++++------------- Languages/po/ru.po | 255 ++++++++++++------------- Languages/po/sr.po | 255 ++++++++++++------------- Languages/po/sv.po | 255 ++++++++++++------------- Languages/po/tr.po | 255 ++++++++++++------------- Languages/po/zh_CN.po | 251 ++++++++++++------------- Languages/po/zh_TW.po | 255 ++++++++++++------------- 29 files changed, 3876 insertions(+), 3713 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index 8190ba36cf..71c4cff950 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -349,7 +349,7 @@ msgstr "&نقاط التوقف" msgid "&Bug Tracker" msgstr "&تتبع اخطاء المحاكي" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&إلغاء" @@ -456,7 +456,7 @@ msgstr "&GitHub مستودع " #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:442 msgid "&Go to start of function" -msgstr "" +msgstr "&انتقل إلى بدء الوظيفة" #: Source/Core/DolphinQt/MenuBar.cpp:523 msgid "&Graphics Settings" @@ -561,7 +561,7 @@ msgstr "&وضع للقراءة فقط" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&تحديث القائمة" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -702,7 +702,7 @@ msgstr "/ تقسيم" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blocks)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 Bytes" @@ -790,7 +790,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Native (1920x1584) for 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 Bytes" @@ -842,7 +842,7 @@ msgstr "6x Native (3840x3168) for 4K" msgid "7x Native (4480x3696)" msgstr "7x Native (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 Bytes" @@ -919,7 +919,7 @@ msgstr "" " wad سيؤدي تثبيت \n" "هذا إلى استبداله بشكل لا رجعة فيه. استمر ؟" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "القرص بالفعل على وشك أن يتم إدراجه." @@ -980,8 +980,8 @@ msgstr "AR رموز" msgid "AR Codes" msgstr "AR رموز" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1146,7 +1146,7 @@ msgstr "إضافة نقطة توقف للذاكرة" msgid "Add to &watch" msgstr "اضف إليه &تنبية" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "إضافة للمشاهدة" @@ -1174,7 +1174,7 @@ msgid "Address" msgstr "عنوان" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "مساحة العنوان" @@ -1249,7 +1249,7 @@ msgstr "خيارات متقدمة" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "الإعدادات المتقدمة" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1310,7 +1310,7 @@ msgstr "جميع الأعداد الصحيحة غير الموقعة" msgid "All devices" msgstr "جميع أدوات التحكم" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "(*) جميع الملفات" @@ -1551,7 +1551,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "مساعدة" @@ -1612,13 +1612,13 @@ msgstr "خلفية الإدخال" msgid "Backward" msgstr "الى الوراء" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "تم توفير عنوان غير صحيح." @@ -1626,13 +1626,13 @@ msgstr "تم توفير عنوان غير صحيح." msgid "Bad dump" msgstr "تفريغ سيئ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "تم توفير إزاحة غير صالحة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "قيمة غير صالحة المقدمة" @@ -1861,9 +1861,9 @@ msgstr "زر" msgid "Buttons" msgstr "الأزرار" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "بواسطة: " #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2270,7 +2270,7 @@ msgstr "تكوين الإخراج" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "تأكيد " @@ -2329,7 +2329,7 @@ msgstr "ربط ريموت وي " msgid "Connect Wii Remotes for Emulated Controllers" msgstr "ربط ريموت وي لمحاكاة التحكم" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "الاتصال بالإنترنت وإجراء تحديث للنظام عبر الإنترنت؟" @@ -2506,7 +2506,7 @@ msgstr "نسخ &الوظيفة" msgid "Copy &hex" msgstr "Copy &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "نسخ العنوان" @@ -2514,11 +2514,11 @@ msgstr "نسخ العنوان" msgid "Copy Failed" msgstr "فشل النسخ" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copy Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "قيمة النسخ" @@ -2562,7 +2562,7 @@ msgstr "تعذر إنشاء عميل." msgid "Could not create peer." msgstr "تعذر إنشاء نظير." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2570,7 +2570,7 @@ msgstr "" "تعذر تنزيل ملفات التحديث من نينتندو. يرجى التحقق من اتصالك بالإنترنت " "والمحاولة مرة أخرى." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2578,7 +2578,7 @@ msgstr "" "تعذر تنزيل معلومات التحديث من نينتندو. يرجى التحقق من اتصالك بالإنترنت " "والمحاولة مرة أخرى." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2588,7 +2588,7 @@ msgstr "" "\n" "سيتم إيقاف وحدة التحكم التي تمت محاكاتها الآن." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2602,7 +2602,7 @@ msgstr "" "\n" "ستتوقف وحدة التحكم التي تمت مضاهاتها الآن." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2957,7 +2957,7 @@ msgstr "حذف الملف" msgid "Delete Selected Files..." msgstr "حذف الملفات المحددة" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "'{0}' احذف الملف الموجود" @@ -2989,9 +2989,9 @@ msgstr "الوصف" msgid "Description:" msgstr "الوصف" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "وصف: " #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" @@ -3143,7 +3143,7 @@ msgstr "القرص" msgid "Discard" msgstr "تجاهل" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "نوع العرض" @@ -3298,8 +3298,8 @@ msgid "Done compressing disc image." msgstr "تم ضغط صوره القرص." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "مزدوج" @@ -3352,7 +3352,7 @@ msgstr "Drum Kit" msgid "Dual Core" msgstr "ثنائي النواة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "عرض مزدوج" @@ -3360,23 +3360,23 @@ msgstr "عرض مزدوج" msgid "Dummy" msgstr "وهمي" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "تفريغ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dump &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dump &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dump &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dump &MRAM" @@ -3390,7 +3390,7 @@ msgstr "تفريغ القوام الأساسي" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:72 msgid "Dump EFB Target" -msgstr "EFB هدف التفريغ" +msgstr "EFB التفريغ المستهدف" #: Source/Core/DolphinQt/MenuBar.cpp:796 msgid "Dump Frames" @@ -3434,7 +3434,7 @@ msgstr "تفريغ النسيج" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:73 msgid "Dump XFB Target" -msgstr "" +msgstr "XFB التفريغ المستهدف" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:105 msgid "Dump at Internal Resolution" @@ -3554,7 +3554,7 @@ msgstr "تأثير" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "فعال" @@ -3656,7 +3656,7 @@ msgstr "FPRF تمكين" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "تمكين تعديلات الرسومات" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -3852,15 +3852,16 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4198,7 +4199,7 @@ msgstr "استخراج جميع الملفات" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:355 msgid "Extracting Directory..." -msgstr "استخراج الدليل" +msgstr "استخراج الملف" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 @@ -4230,7 +4231,7 @@ msgstr "فشل في إضافة هذه الجلسة إلى فهرس اللعب ع msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4273,7 +4274,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "فشل حذف الملف المحدد." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4281,11 +4282,11 @@ msgstr "" msgid "Failed to download codes." msgstr "فشل تحميل الرموز." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "فشل تفريغ٪ 1: لا يمكن فتح الملف" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "فشل تفريغ٪ 1: فشل في الكتابة إلى الملف" @@ -4414,7 +4415,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "'%1' فشل في الفتح" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "{0} فشل في فتح جهاز بلوتوث" @@ -4457,6 +4458,8 @@ msgid "" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" +"فشل فتح ملف الإخراج \"{0}\".\n" +"تأكد من أن لديك أذونات لكتابة المجلد المستهدف وأن الوسائط يمكن كتابتها." #: Source/Core/DiscIO/VolumeVerifier.cpp:219 #: Source/Core/DiscIO/VolumeVerifier.cpp:317 @@ -4465,7 +4468,7 @@ msgstr "Redump.org فشل تحليل بيانات" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:285 msgid "Failed to parse given value into target data type." -msgstr "" +msgstr "فشل تحليل القيمة المحددة في نوع البيانات المستهدفة." #: Source/Core/Core/FifoPlayer/FifoDataFile.cpp:213 msgid "Failed to read DFF file." @@ -4582,7 +4585,7 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" "فشل كتابة ملف الإخراج \"{0}\".\n" -"تأكد من أن لديك مساحة كافية متوفرة على محرك الأقراص الهدف." +"تأكد من أن لديك مساحة كافية متوفرة على محرك الأقراص المستهدفة." #: Source/Core/DolphinQt/GameList/GameList.cpp:614 #: Source/Core/DolphinQt/GameList/GameList.cpp:642 @@ -4708,11 +4711,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "بحث عن التالي" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "بحث عن السابق" @@ -4720,7 +4723,7 @@ msgstr "بحث عن السابق" msgid "Finish Calibration" msgstr "الانتهاء من المعايرة" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4740,7 +4743,7 @@ msgstr "إصلاح المجاميع الاختبارية" msgid "Fix Checksums Failed" msgstr "فشل إصلاح المجموع الاختباري" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "محاذاة ثابتة" @@ -4753,8 +4756,8 @@ msgstr "الأعلام" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -4787,7 +4790,7 @@ msgstr "16:9" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:89 msgid "Force 24-Bit Color" -msgstr "24-Bit فرض اللون" +msgstr "24-Bit اللون" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:59 msgid "Force 4:3" @@ -5241,7 +5244,7 @@ msgstr "GameCube TAS Input %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "حجم البوابة" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5290,9 +5293,9 @@ msgstr "الألمانية" msgid "Germany" msgstr "ألمانيا" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "فشل الحصول على قائمة الأجهزة: {0}" #: Source/Core/UICommon/UICommon.cpp:423 msgid "GiB" @@ -5314,16 +5317,16 @@ msgstr "الرسومات" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "تعديلات الرسومات" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" -msgstr "تبديل الرسومات" +msgstr "الرسومات" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "تعديلات الرسومات معطلة حاليا" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5378,23 +5381,23 @@ msgstr "رأس" msgid "Help" msgstr "مساعدة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hex" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Hex Byte String" @@ -6309,7 +6312,7 @@ msgstr "تحميل قائمة جيم كيوب الرئيسية " #: Source/Core/Core/HotkeyManager.cpp:350 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" -msgstr "تحميل الحالة الاخيرة " +msgstr "تحميل الحالة الأخيرة" #: Source/Core/DolphinQt/Settings/PathPane.cpp:229 msgid "Load Path:" @@ -6467,7 +6470,7 @@ msgid "Lock Mouse Cursor" msgstr "قفل مؤشر الماوس" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "سجل" @@ -6574,7 +6577,7 @@ msgstr "تعيين" msgid "Mask ROM" msgstr "Mask ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "وجد تطابق" @@ -6600,7 +6603,7 @@ msgstr "قد يسبب تباطؤ في قائمة وي وبعض الألعاب." msgid "Medium" msgstr "متوسطة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "ذاكرة" @@ -6620,7 +6623,7 @@ msgstr "مدير بطاقة الذاكرة" msgid "Memory Override" msgstr "تجاوز الذاكرة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "خيارات نقطة توقف الذاكرة" @@ -6932,7 +6935,7 @@ msgstr "لا" msgid "No Adapter Detected" msgstr "لم يتم اكتشاف محول" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "لا محاذاة" @@ -6946,7 +6949,7 @@ msgstr "لا يوجد إخراج الصوت" msgid "No Compression" msgstr "لا يوجد ضغط" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "لا تطابق" @@ -7129,7 +7132,7 @@ msgstr "%1 موضوع" #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:90 msgid "Object Range" -msgstr "نطاق الهدف" +msgstr "نطاق الكائن" #: Source/Core/UICommon/NetPlayIndex.cpp:250 msgid "Oceania" @@ -7140,7 +7143,7 @@ msgstr "أوقيانوسيا" msgid "Off" msgstr "إيقاف" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7418,7 +7421,7 @@ msgstr "تحديث النظام" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "فيزيائي" @@ -7533,7 +7536,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7736,14 +7739,14 @@ msgstr "اقرأ" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "القراءة والكتابة" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "يقرأ فقط" @@ -8124,11 +8127,11 @@ msgstr "SD Card Image (*.raw);;All Files (*)" #: Source/Core/DolphinQt/Settings/PathPane.cpp:248 msgid "SD Card Path:" -msgstr "SD Card مسار" +msgstr "مسار SD Card" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" -msgstr "" +msgstr "SD Root:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8318,7 +8321,7 @@ msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 msgid "Save in Same Directory as the ROM" -msgstr "احفظ في نفس الدليل مثل ملف القرص" +msgstr "Save in Same Directory as the ROM" #: Source/Core/DolphinQt/MenuBar.cpp:1531 msgid "Save map file" @@ -8364,14 +8367,14 @@ msgstr "Scan succeeded" msgid "ScrShot" msgstr "لقطة للشاشة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "بحث" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "البحث عن عنوان" @@ -8436,7 +8439,7 @@ msgstr "تحديد مسار التفريغ" #: Source/Core/DolphinQt/GameList/GameList.cpp:552 #: Source/Core/DolphinQt/MenuBar.cpp:1109 msgid "Select Export Directory" -msgstr "حدد تصدير الدليل" +msgstr "حدد ملف تصدير " #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 msgid "Select GBA BIOS" @@ -8529,7 +8532,7 @@ msgstr "NAND حدد جذر وي " #: Source/Core/DolphinQt/GameList/GameList.cpp:288 #: Source/Core/DolphinQt/Settings/PathPane.cpp:39 msgid "Select a Directory" -msgstr "اختر دليل" +msgstr "اختر الملف" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 @@ -8548,7 +8551,7 @@ msgstr "اختر لعبة" msgid "Select a SD Card Image" msgstr "SD Card حدد صورة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "حدد ملف" @@ -8697,7 +8700,7 @@ msgstr "منفذ الخادم" msgid "Server rejected traversal attempt" msgstr "الخادم رفض محاولة الاجتياز" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "تعيين القيمة" @@ -8710,7 +8713,7 @@ msgstr "" msgid "Set PC" msgstr "تعيين الكمبيوتر" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "تعيين القيمة من الملف" @@ -8785,7 +8788,7 @@ msgstr "درجة الخطورة" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:111 msgid "Shader Compilation" -msgstr "تجميع الظل" +msgstr "تجميع التظليل" #: Source/Core/Core/HW/WiimoteEmu/Extension/Nunchuk.cpp:56 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:211 @@ -8976,7 +8979,7 @@ msgstr "عرض في التعليمات البرمجية" msgid "Show in Memory" msgstr "عرض في الذاكرة" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "إظهار في الرموز" @@ -9033,7 +9036,7 @@ msgstr "امسك بانحراف" #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:292 msgid "Sideways Toggle" -msgstr "تبديل جانبية" +msgstr "جانبية" #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:285 msgid "Sideways Wii Remote" @@ -9043,18 +9046,18 @@ msgstr "انحراف ريموت وي" msgid "Signature Database" msgstr "قاعدة بيانات التوقيع" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "موقع 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "موقع 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "موقع 8" @@ -9094,7 +9097,7 @@ msgstr "تخطى" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:118 msgid "Skip Drawing" -msgstr "تخطي الرسم" +msgstr "Skip Drawing" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:45 msgid "Skip EFB Access from CPU" @@ -9205,7 +9208,7 @@ msgstr "مستوى الصوت" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:115 msgid "Specialized (Default)" -msgstr "(Default) متخصص" +msgstr "Specialized (Default)" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:187 msgid "Specific" @@ -9663,6 +9666,10 @@ msgstr "تايوان" msgid "Take Screenshot" msgstr "لقطة للشاشة" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "اختبار" @@ -9678,7 +9685,7 @@ msgstr "دقة ذاكرة التخزين المؤقت للنسيج" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:88 msgid "Texture Dumping" -msgstr "" +msgstr "تفريغ النسيج" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:55 msgid "Texture Format Overlay" @@ -9765,7 +9772,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "(at {0:#x} - {1:#x}) تعذر قراءة القرص" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "تعذر العثور على القرص الذي كان على وشك أن يتم إدراجه" @@ -9781,11 +9788,11 @@ msgstr "" "\n" "NAND هل تريد محاولة إصلاح ؟" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "تم تحديث محاكي وحدة التحكم وي" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "وحدة تحكم وي التي تمت محاكاتها محدثة بالفعل" @@ -9827,13 +9834,13 @@ msgstr "" "الملف 1% موجود بالفعل.\n" "هل ترغب في استبدالها؟" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9866,7 +9873,7 @@ msgstr "معرف اللعبة قصير بشكل غير عادي." msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "لا يحتوي قرص اللعبة على أي معلومات تحديث قابلة للاستخدام." @@ -9874,7 +9881,7 @@ msgstr "لا يحتوي قرص اللعبة على أي معلومات تحدي msgid "The game is currently running." msgstr "اللعبة قيد التشغيل حاليا." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9922,7 +9929,7 @@ msgstr "" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:141 msgid "The patches in %1 are not for the selected game or game revision." -msgstr "" +msgstr "التصحيحات في 1% ليست للعبة المحددة أو مراجعة اللعبة" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:243 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:282 @@ -9988,7 +9995,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." -msgstr "\"%1\" تحتوي بطاقة الذاكرة الهدف بالفعل على ملف" +msgstr "\"%1\" تحتوي بطاقة الذاكرة المستهدفة بالفعل على ملف" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) #: Source/Core/DiscIO/VolumeVerifier.cpp:969 @@ -9999,7 +10006,7 @@ msgstr "لم يتم توقيع التذكرة بشكل صحيح" msgid "The type of a partition could not be read." msgstr "لا يمكن قراءة نوع القسم." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10349,32 +10356,32 @@ msgstr "Toggle 3D Top-Bottom" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:61 msgid "Toggle All Log Types" -msgstr "تبديل كافة أنواع السجلات" +msgstr "كافة أنواع السجلات" #: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Aspect Ratio" -msgstr "تبديل تناسب الأبعاد" +msgstr "تناسب الأبعاد" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" -msgstr "تبديل نقطة التوقف" +msgstr "نقطة التوقف" #: Source/Core/Core/HotkeyManager.cpp:105 msgid "Toggle Crop" -msgstr "تبديل الاقتصاص" +msgstr "الاقتصاص" #: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Custom Textures" -msgstr "تبديل النسيج المخصص" +msgstr "النسيج المخصص" #: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle EFB Copies" -msgstr "EFB تبديل نسخ" +msgstr "EFB نسخ" #: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle Fog" -msgstr "تبديل الضباب" +msgstr "الضباب" #: Source/Core/Core/HotkeyManager.cpp:34 msgid "Toggle Fullscreen" @@ -10386,7 +10393,7 @@ msgstr "إيقاف مؤقت" #: Source/Core/Core/HotkeyManager.cpp:85 msgid "Toggle SD Card" -msgstr "SD Card تبديل" +msgstr "SD Card" #: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Skip EFB Access" @@ -10394,7 +10401,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Texture Dumping" -msgstr "تبديل تفريغ النسيج" +msgstr "تفريغ النسيج" #: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle USB Keyboard" @@ -10509,7 +10516,7 @@ msgstr "أزرار الكتف" msgid "Type" msgstr "اكتب" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10565,7 +10572,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "RSO تعذر الكشف التلقائي عن وحدة" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "غير قادر على فتح الملف" @@ -10593,7 +10600,7 @@ msgstr "" "\n" "هل تريد تجاهل هذا السطر ومتابعه التحليل ؟" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "غير قادر على قراءة الملف" @@ -10649,7 +10656,7 @@ msgstr "امريكا" msgid "Unknown" msgstr "غير معروف" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10725,18 +10732,18 @@ msgstr "فتح المؤشر" msgid "Unpacking" msgstr "تفريغ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "غير موقع 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "غير موقع 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "غير موقع 8" @@ -10771,28 +10778,28 @@ msgstr "تحديث بعد إغلاق دولفين" msgid "Update available" msgstr "التحديثات المتوفرة" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "التحديث ملغى" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "التحديث مكتمل" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "فشل التحديث" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "تحديث" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10806,7 +10813,7 @@ msgstr "أمسك وضع عمودي" #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:293 msgid "Upright Toggle" -msgstr "تبديل عمودي" +msgstr "عمودي" #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:282 msgid "Upright Wii Remote" @@ -10970,7 +10977,7 @@ msgstr "خدمات" msgid "V-Sync" msgstr "V-Sync مزامنة عدد الإطارات" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "القيمة" @@ -11381,7 +11388,7 @@ msgstr "كتابة حفظ البيانات" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "كتابه فقط" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index f1fd12da3d..48823622f4 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -328,7 +328,7 @@ msgstr "&Punts d'interrupció" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" " \n" @@ -683,7 +683,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -771,7 +771,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Natiu (1920x1584) per 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -823,7 +823,7 @@ msgstr "6x Natiu (3840x3168) per 4K" msgid "7x Native (4480x3696)" msgstr "7x Natiu (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -891,7 +891,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -938,8 +938,8 @@ msgstr "Codi AR" msgid "AR Codes" msgstr "Codis AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1104,7 +1104,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1132,7 +1132,7 @@ msgid "Address" msgstr "Adreça" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1255,7 +1255,7 @@ msgstr "" msgid "All devices" msgstr "Tots els dispositius" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1492,7 +1492,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1553,13 +1553,13 @@ msgstr "Suport d'entrada" msgid "Backward" msgstr "Cap enrere" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1567,13 +1567,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1800,7 +1800,7 @@ msgstr "Botó" msgid "Buttons" msgstr "Botons" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2205,7 +2205,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2264,7 +2264,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2424,7 +2424,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2432,11 +2432,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2480,26 +2480,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2508,7 +2508,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2851,7 +2851,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2883,7 +2883,7 @@ msgstr "Descripció" msgid "Description:" msgstr "Descripció:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3031,7 +3031,7 @@ msgstr "Disc" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3182,8 +3182,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3236,7 +3236,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3244,23 +3244,23 @@ msgstr "" msgid "Dummy" msgstr "Maniquí" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3434,7 +3434,7 @@ msgstr "Efecte" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3722,15 +3722,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4096,7 +4097,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4138,7 +4139,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4146,11 +4147,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Error al descarregar codis." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4272,7 +4273,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4557,11 +4558,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4569,7 +4570,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4587,7 +4588,7 @@ msgstr "Arregla les sumes de comprovació" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4600,8 +4601,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5132,7 +5133,7 @@ msgstr "Alemany" msgid "Germany" msgstr "Alemanya" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5220,23 +5221,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6273,7 +6274,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Registre" @@ -6380,7 +6381,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6406,7 +6407,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6426,7 +6427,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6732,7 +6733,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6746,7 +6747,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6937,7 +6938,7 @@ msgstr "" msgid "Off" msgstr "Apagar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7211,7 +7212,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7326,7 +7327,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7519,14 +7520,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8141,14 +8142,14 @@ msgstr "" msgid "ScrShot" msgstr "Capturar Pantalla" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Buscar" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8325,7 +8326,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8474,7 +8475,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8487,7 +8488,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8746,7 +8747,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8813,18 +8814,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9425,6 +9426,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Capturar pantalla" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Prova" @@ -9522,7 +9527,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9534,11 +9539,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9574,13 +9579,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9613,7 +9618,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9621,7 +9626,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9734,7 +9739,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10055,7 +10060,7 @@ msgid "Toggle Aspect Ratio" msgstr "Commutar Relació d'Aspecte" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10206,7 +10211,7 @@ msgstr "Gatells" msgid "Type" msgstr "Tipus" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10262,7 +10267,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10282,7 +10287,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10335,7 +10340,7 @@ msgstr "" msgid "Unknown" msgstr "Desconegut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10411,18 +10416,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10457,28 +10462,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10650,7 +10655,7 @@ msgstr "Utilitat" msgid "V-Sync" msgstr "Sincronització Vertical" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valor" @@ -11047,7 +11052,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 89a3bdd4fa..658925eafd 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -323,7 +323,7 @@ msgstr "&Body přerušení" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -764,7 +764,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x původní (1920x1584) pro 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -816,7 +816,7 @@ msgstr "6x původní (3840x3168) pro 4K" msgid "7x Native (4480x3696)" msgstr "7x původní (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -884,7 +884,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -931,8 +931,8 @@ msgstr "" msgid "AR Codes" msgstr "Kódy AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1125,7 +1125,7 @@ msgid "Address" msgstr "Adresa" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1248,7 +1248,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1485,7 +1485,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1546,13 +1546,13 @@ msgstr "Zadní Vstup" msgid "Backward" msgstr "Dozadu" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1560,13 +1560,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1793,7 +1793,7 @@ msgstr "" msgid "Buttons" msgstr "Tlačítka" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2198,7 +2198,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2417,7 +2417,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2425,11 +2425,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2473,26 +2473,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2501,7 +2501,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2844,7 +2844,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,7 +2876,7 @@ msgstr "Popis" msgid "Description:" msgstr "Popis:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3024,7 +3024,7 @@ msgstr "Disk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3175,8 +3175,8 @@ msgid "Done compressing disc image." msgstr "Komprimace obrazu disku dokončena." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3229,7 +3229,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3237,23 +3237,23 @@ msgstr "" msgid "Dummy" msgstr "Atrapa" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3427,7 +3427,7 @@ msgstr "Efekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3719,15 +3719,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4092,7 +4093,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4134,7 +4135,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4142,11 +4143,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Stahování kódů selhalo." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4268,7 +4269,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4553,11 +4554,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4565,7 +4566,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4583,7 +4584,7 @@ msgstr "Spravit Kontrolní Součty" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4596,8 +4597,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5128,7 +5129,7 @@ msgstr "Němčina" msgid "Germany" msgstr "Německo" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5216,23 +5217,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6268,7 +6269,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Záznam" @@ -6375,7 +6376,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6401,7 +6402,7 @@ msgstr "Může způsobit zpomalování v nabídce Wii a u některých her." msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6421,7 +6422,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6729,7 +6730,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6743,7 +6744,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6935,7 +6936,7 @@ msgstr "" msgid "Off" msgstr "Vypnuto" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7209,7 +7210,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7324,7 +7325,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7517,14 +7518,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8139,14 +8140,14 @@ msgstr "" msgid "ScrShot" msgstr "SnímkObrz" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Hledat" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8323,7 +8324,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8472,7 +8473,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "Server zamítl pokus o průchod" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8485,7 +8486,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8746,7 +8747,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8813,18 +8814,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9425,6 +9426,10 @@ msgstr "Tchaj-wan" msgid "Take Screenshot" msgstr "Vytvořit Snímek Obrazovky" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -9522,7 +9527,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9534,11 +9539,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9574,13 +9579,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9613,7 +9618,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9621,7 +9626,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9734,7 +9739,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10056,7 +10061,7 @@ msgid "Toggle Aspect Ratio" msgstr "Přepínat poměr stran" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10207,7 +10212,7 @@ msgstr "Spínače" msgid "Type" msgstr "Typ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10263,7 +10268,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10283,7 +10288,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10336,7 +10341,7 @@ msgstr "" msgid "Unknown" msgstr "Neznámé" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10412,18 +10417,18 @@ msgstr "" msgid "Unpacking" msgstr "Rozbalování" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10458,28 +10463,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10651,7 +10656,7 @@ msgstr "Pomůcky" msgid "V-Sync" msgstr "V-Synch" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Hodnota" @@ -11048,7 +11053,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/da.po b/Languages/po/da.po index 0c7c7f041c..9a352be5d9 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -348,7 +348,7 @@ msgstr "&Breakpoints" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Annuller" @@ -701,7 +701,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blokke)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -789,7 +789,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Oprindelig (1920x1584) for 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -841,7 +841,7 @@ msgstr "6x Oprindelig (3840x3168) for 4K" msgid "7x Native (4480x3696)" msgstr "7x Oprindelig (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -909,7 +909,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "En disk er allerede ved at blive sat ind" @@ -970,8 +970,8 @@ msgstr "AR-kode" msgid "AR Codes" msgstr "AR-koder" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1136,7 +1136,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1164,7 +1164,7 @@ msgid "Address" msgstr "Adresse" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1287,7 +1287,7 @@ msgstr "" msgid "All devices" msgstr "Alle enheder" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1524,7 +1524,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1585,13 +1585,13 @@ msgstr "Baggrundsinput" msgid "Backward" msgstr "Bagud" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1599,13 +1599,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1834,7 +1834,7 @@ msgstr "Knap" msgid "Buttons" msgstr "Knapper" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2239,7 +2239,7 @@ msgstr "Konfigurer output" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekræft" @@ -2298,7 +2298,7 @@ msgstr "Tilslut Wii Remotes" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2460,7 +2460,7 @@ msgstr "Kopiér &funktion" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Kopier adresse" @@ -2468,11 +2468,11 @@ msgstr "Kopier adresse" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Kopiér Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2516,26 +2516,26 @@ msgstr "" msgid "Could not create peer." msgstr "Kunne ikke skabe peer." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2544,7 +2544,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2892,7 +2892,7 @@ msgstr "Slet fil..." msgid "Delete Selected Files..." msgstr "Slet valgte filer..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3072,7 +3072,7 @@ msgstr "Disk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3223,8 +3223,8 @@ msgid "Done compressing disc image." msgstr "Komprimering af diskaftryk fuldført." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3277,7 +3277,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3285,23 +3285,23 @@ msgstr "" msgid "Dummy" msgstr "Dukke" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3475,7 +3475,7 @@ msgstr "Effekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3770,15 +3770,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4144,7 +4145,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4186,7 +4187,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4194,11 +4195,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Kunne ikke downloade koder." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4320,7 +4321,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4605,11 +4606,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Find &næste" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Find &forrige" @@ -4617,7 +4618,7 @@ msgstr "Find &forrige" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4635,7 +4636,7 @@ msgstr "Ret tjeksumme" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4648,8 +4649,8 @@ msgstr "Flag" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5180,7 +5181,7 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5268,23 +5269,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6328,7 +6329,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6435,7 +6436,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6461,7 +6462,7 @@ msgstr "Kan sænke hastigheden i Wii-menuen og nogle spil." msgid "Medium" msgstr "Medium" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Hukommelse" @@ -6481,7 +6482,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Hukommelsesbreakpointindstillinger" @@ -6789,7 +6790,7 @@ msgstr "Nej" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6803,7 +6804,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Ingen træf" @@ -6996,7 +6997,7 @@ msgstr "" msgid "Off" msgstr "Fra" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7270,7 +7271,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7385,7 +7386,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7578,14 +7579,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Læs og skriv" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8200,14 +8201,14 @@ msgstr "" msgid "ScrShot" msgstr "Skærmdump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Søg" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Søgeadresse" @@ -8384,7 +8385,7 @@ msgstr "Vælg et spil" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8533,7 +8534,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "Serveren nægtede forsøget på traversal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8546,7 +8547,7 @@ msgstr "" msgid "Set PC" msgstr "Indstil PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8808,7 +8809,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8875,18 +8876,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9487,6 +9488,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Tag skærmbillede" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -9584,7 +9589,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken, der var ved at blive sat ind, kunne ikke ses" @@ -9596,11 +9601,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9636,13 +9641,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9675,7 +9680,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9683,7 +9688,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9796,7 +9801,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10121,7 +10126,7 @@ msgid "Toggle Aspect Ratio" msgstr "Skift forholdstal" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10272,7 +10277,7 @@ msgstr "Triggers" msgid "Type" msgstr "Type" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10328,7 +10333,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10357,7 +10362,7 @@ msgstr "" "\n" "Vil du ignorere denne linje og fortsætte oversættelsen?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10410,7 +10415,7 @@ msgstr "" msgid "Unknown" msgstr "Ukendt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10486,18 +10491,18 @@ msgstr "" msgid "Unpacking" msgstr "Udpakker" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10532,28 +10537,28 @@ msgstr "" msgid "Update available" msgstr "Opdatering tilgængelig " -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Opdatering annulleret" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Opdatering komplet" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Opdatering mislykkedes" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Opdaterer" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10725,7 +10730,7 @@ msgstr "Værktøj" msgid "V-Sync" msgstr "V-sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Værdi" @@ -11126,7 +11131,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/de.po b/Languages/po/de.po index 34100e428b..b6b7a5e281 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -372,7 +372,7 @@ msgstr "&Haltepunkte" msgid "&Bug Tracker" msgstr "&Bug Tracker" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Abbrechen" @@ -727,7 +727,7 @@ msgstr "/ Dividieren" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 Blöcke)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -815,7 +815,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Nativ (1920x1584) für 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -867,7 +867,7 @@ msgstr "6x Nativ (3840x3168) für 4K" msgid "7x Native (4480x3696)" msgstr "7x Nativ (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -944,7 +944,7 @@ msgstr "" "\n" "Die Installation dieses WAD wird es unwiderruflich ersetzen. Fortsetzen?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Eine Disc wird momentan bereits eingelesen." @@ -1011,8 +1011,8 @@ msgstr "AR-Code" msgid "AR Codes" msgstr "AR Codes" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1193,7 +1193,7 @@ msgstr "Speicherhaltepunkt hinzufügen" msgid "Add to &watch" msgstr "Zur Über&wachung hinzufügen" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Zur Überwachung hinzufügen" @@ -1221,7 +1221,7 @@ msgid "Address" msgstr "Adresse" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Adressraum" @@ -1365,7 +1365,7 @@ msgstr "" msgid "All devices" msgstr "Alle Geräte" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1613,7 +1613,7 @@ msgstr "" "

Im Zweifel deaktiviert lassen." #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Hilfs" @@ -1677,13 +1677,13 @@ msgstr "Hintergrundeingabe" msgid "Backward" msgstr "Rückwärts" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Unzulässige Adresse angegeben." @@ -1691,13 +1691,13 @@ msgstr "Unzulässige Adresse angegeben." msgid "Bad dump" msgstr "Schlechter Dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Unzulässigen Wert angegeben." @@ -1931,7 +1931,7 @@ msgstr "Taste" msgid "Buttons" msgstr "Tasten" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2361,7 +2361,7 @@ msgstr "Ausgabe konfigurieren" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bestätigen" @@ -2420,7 +2420,7 @@ msgstr "Wiimotes verbinden" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Wiimotes für emulierte Controller verbinden" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" "Mit dem Internet verbinden und eine Online-Systemaktualisierung durchführen?" @@ -2602,7 +2602,7 @@ msgstr "&Funktion kopieren" msgid "Copy &hex" msgstr "&Hex kopieren" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Adresse kopieren" @@ -2610,11 +2610,11 @@ msgstr "Adresse kopieren" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Hex kopieren" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2658,7 +2658,7 @@ msgstr "Client konnte nicht erstellt werden." msgid "Could not create peer." msgstr "Peer konnte nicht erstellt werden." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2666,7 +2666,7 @@ msgstr "" "Konnte keine Aktualisierungsdateien von Nintendo herunterladen. Bitte " "überprüfe deine Internetverbindung und versuche es erneut." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2674,7 +2674,7 @@ msgstr "" "Konnte keine Aktualisierungsinformationen von Nintendo heruntergeladen. " "Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2685,7 +2685,7 @@ msgstr "" "\n" "Die emulierte Konsole wird jetzt angehalten." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2701,7 +2701,7 @@ msgstr "" "\n" "Die emulierte Konsole wird jetzt angehalten." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3076,7 +3076,7 @@ msgstr "Datei löschen..." msgid "Delete Selected Files..." msgstr "Ausgewählte Dateien löschen..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Vorhandende Datei '{0}' löschen?" @@ -3108,7 +3108,7 @@ msgstr "Beschreibung" msgid "Description:" msgstr "Beschreibung:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3275,7 +3275,7 @@ msgstr "Disc" msgid "Discard" msgstr "Verwerfen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3437,8 +3437,8 @@ msgid "Done compressing disc image." msgstr "Disc-Abbild wurde erfolgreich komprimiert." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3491,7 +3491,7 @@ msgstr "Schlagzeug" msgid "Dual Core" msgstr "Doppelkern" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3499,23 +3499,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "&ARAM dumpen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "&ExRAM dumpen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "&FakeVMEM dumpen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "&MRAM dumpen" @@ -3705,7 +3705,7 @@ msgstr "Effekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effektiv" @@ -4025,15 +4025,16 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4410,7 +4411,7 @@ msgstr "Konnte diese Sitzung nicht zum NetPlay Index hinzufügen: %1" msgid "Failed to append to signature file '%1'" msgstr "Konnte nicht an Signaturdatei '%1' anfügen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4454,7 +4455,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Konnte die ausgewählte Datei nicht löschen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Fehler beim Lösen des Kernel-Treibers für BT-Durchleitung: {0}" @@ -4462,11 +4463,11 @@ msgstr "Fehler beim Lösen des Kernel-Treibers für BT-Durchleitung: {0}" msgid "Failed to download codes." msgstr "Download der Codes fehlgeschlagen." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Konnte %1 nicht dumpen: Fehler beim Öffnen der Datei" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Konnte %1 nicht dumpen: Fehler beim Schreiben in Datei" @@ -4603,7 +4604,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Konnte '&1' nicht öffnen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Konnte Bluetooth-Gerät nicht öffnen: {0}" @@ -4914,11 +4915,11 @@ msgstr "" "verbessern, aber wird Probleme in anderen verursachen." "

Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "&Nächste finden" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "&Vorherige finden" @@ -4926,7 +4927,7 @@ msgstr "&Vorherige finden" msgid "Finish Calibration" msgstr "Kalibrierung abschließen" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4946,7 +4947,7 @@ msgstr "Prüfsummen korrigieren" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4959,8 +4960,8 @@ msgstr "Bitschalter" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5527,7 +5528,7 @@ msgstr "Deutsch" msgid "Germany" msgstr "Deutschland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5620,23 +5621,23 @@ msgstr "Kopf" msgid "Help" msgstr "Hilfe" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6748,7 +6749,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6859,7 +6860,7 @@ msgstr "Mapping" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Übereinstimmung gefunden" @@ -6885,7 +6886,7 @@ msgstr "Kann zu Verlangsamung im Wii-Menü und einigen Spielen führen." msgid "Medium" msgstr "Mittel" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Speicher" @@ -6905,7 +6906,7 @@ msgstr "Speicherkartenverwaltung" msgid "Memory Override" msgstr "Speicherüberschreibung" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Speicherhaltepunktoptionen" @@ -7223,7 +7224,7 @@ msgstr "Nein" msgid "No Adapter Detected" msgstr "Kein Adapter erkannt" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -7237,7 +7238,7 @@ msgstr "Keine Audioausgabe" msgid "No Compression" msgstr "Keine Komprimierung" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Keine Übereinstimmung" @@ -7434,7 +7435,7 @@ msgstr "Ozeanien" msgid "Off" msgstr "Aus" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7712,7 +7713,7 @@ msgstr "Systemaktualisierung durchführen" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Physikalisch" @@ -7829,7 +7830,7 @@ msgstr "Vorzeitiges Filmende in PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Vorzeitiges Filmende in PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8035,14 +8036,14 @@ msgstr "Lesen" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Lesen und schreiben" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Nur Lesen" @@ -8673,14 +8674,14 @@ msgstr "" msgid "ScrShot" msgstr "ScrShot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Suche" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Adresse suchen" @@ -8858,7 +8859,7 @@ msgstr "Spiel auswählen" msgid "Select a SD Card Image" msgstr "SD-Kartenabbild auswählen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -9033,7 +9034,7 @@ msgstr "Server-Port" msgid "Server rejected traversal attempt" msgstr "Server hat Übergangsversuch abgelehnt." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "&Wert zuweisen" @@ -9046,7 +9047,7 @@ msgstr "" msgid "Set PC" msgstr "PC zuweisen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -9310,7 +9311,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Im Code anzeigen" @@ -9389,18 +9390,18 @@ msgstr "Wiimote seitwärts" msgid "Signature Database" msgstr "Signaturendatenbank" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -10027,6 +10028,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Screenshot erstellen" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Testen" @@ -10135,7 +10140,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Die Disc konnte nicht gelesen werden (bei {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Die Disc, die eingelesen werden sollte, konnte nicht gefunden werden." @@ -10151,11 +10156,11 @@ msgstr "" "\n" "Möchten Sie versuchen, das NAND zu reparieren?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Die emulierte Wii-Konsole wurde aktualisiert." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Die emulierte Wii-Konsole ist bereits auf dem neuesten Stand." @@ -10197,7 +10202,7 @@ msgstr "" "Die Datei %1 existiert bereits.\n" "Soll diese Datei ersetzt werden?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10205,7 +10210,7 @@ msgstr "" "Konnte die Datei {0} nicht zum Schreiben öffnen. Bitte überprüfe, ob sie " "bereits in einem anderen Programm geöffnet ist." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" "Die Datei {0} wurde bereits geöffnet, der Header für die Datei wird nicht " @@ -10242,7 +10247,7 @@ msgstr "Die Spiel-ID ist ungewöhnlich kurz." msgid "The game ID is {0} but should be {1}." msgstr "Die Spiel-ID ist {0}, sollte aber {1} sein." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "Die Spieldisc enthält keine verwendbaren Updateinformationen." @@ -10250,7 +10255,7 @@ msgstr "Die Spieldisc enthält keine verwendbaren Updateinformationen." msgid "The game is currently running." msgstr "Das Spiel läuft gerade." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10386,7 +10391,7 @@ msgstr "Das Ticket ist nicht korrekt signiert." msgid "The type of a partition could not be read." msgstr "Der Typ einer Partition konnte nicht gelesen werden." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10769,7 +10774,7 @@ msgid "Toggle Aspect Ratio" msgstr "Seitenverhältnis umschalten" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Haltepunkt umschalten" @@ -10922,7 +10927,7 @@ msgstr "Schultertasten" msgid "Type" msgstr "Typ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10987,7 +10992,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Konnte RSO-Module nicht automatisch erkennen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -11014,7 +11019,7 @@ msgstr "" "\n" "Möchtest du diese Zeile ignorieren und mit dem Parsen fortfahren?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -11070,7 +11075,7 @@ msgstr "Vereinigte Staaten" msgid "Unknown" msgstr "Unbekannt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Unbekannter DVD-Befehl {0:08x} - fataler Fehler" @@ -11152,18 +11157,18 @@ msgstr "" msgid "Unpacking" msgstr "Auspacken" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -11198,28 +11203,28 @@ msgstr "Nach dem Beenden von Dolphin updaten" msgid "Update available" msgstr "Update verfügbar" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Aktualisierung abgebrochen" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Aktualisierung abgeschlossen" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Aktualisierung fehlgeschlagen" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Aktualisierungsvorgang" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11405,7 +11410,7 @@ msgstr "Hilfsmittel" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Wert" @@ -11876,7 +11881,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Nur Schreiben" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index d9335adaa2..8f0a6ce8a3 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -320,7 +320,7 @@ msgstr "" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -673,7 +673,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -761,7 +761,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -813,7 +813,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -881,7 +881,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -928,8 +928,8 @@ msgstr "" msgid "AR Codes" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1094,7 +1094,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1122,7 +1122,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1245,7 +1245,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1482,7 +1482,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1543,13 +1543,13 @@ msgstr "" msgid "Backward" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1557,13 +1557,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1790,7 +1790,7 @@ msgstr "" msgid "Buttons" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2195,7 +2195,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2254,7 +2254,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2414,7 +2414,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2422,11 +2422,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2470,26 +2470,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2498,7 +2498,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2841,7 +2841,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2873,7 +2873,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3021,7 +3021,7 @@ msgstr "" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3172,8 +3172,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3226,7 +3226,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3234,23 +3234,23 @@ msgstr "" msgid "Dummy" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3424,7 +3424,7 @@ msgstr "" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3710,15 +3710,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4082,7 +4083,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4124,7 +4125,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4132,11 +4133,11 @@ msgstr "" msgid "Failed to download codes." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4258,7 +4259,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4543,11 +4544,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4555,7 +4556,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4573,7 +4574,7 @@ msgstr "" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4586,8 +4587,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5118,7 +5119,7 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5206,23 +5207,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6255,7 +6256,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "" @@ -6362,7 +6363,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6388,7 +6389,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6408,7 +6409,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6714,7 +6715,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6728,7 +6729,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6919,7 +6920,7 @@ msgstr "" msgid "Off" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7193,7 +7194,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7308,7 +7309,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7501,14 +7502,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8123,14 +8124,14 @@ msgstr "" msgid "ScrShot" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8307,7 +8308,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8456,7 +8457,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8469,7 +8470,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8728,7 +8729,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8795,18 +8796,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9407,6 +9408,10 @@ msgstr "" msgid "Take Screenshot" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "" @@ -9504,7 +9509,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9516,11 +9521,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9556,13 +9561,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9595,7 +9600,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9603,7 +9608,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9716,7 +9721,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10033,7 +10038,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10184,7 +10189,7 @@ msgstr "" msgid "Type" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10240,7 +10245,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10260,7 +10265,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10313,7 +10318,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10389,18 +10394,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10435,28 +10440,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10628,7 +10633,7 @@ msgstr "" msgid "V-Sync" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "" @@ -11025,7 +11030,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/el.po b/Languages/po/el.po index a7c56cfaf8..572009a76b 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -326,7 +326,7 @@ msgstr "&Σημεία Διακοπής" msgid "&Bug Tracker" msgstr "&Ιχνηλάτης Σφαλμάτων" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Ακύρωση" @@ -679,7 +679,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blocks)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -767,7 +767,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Αρχική (1920x1584) για 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -819,7 +819,7 @@ msgstr "6x Αρχική (3840x3168) για 4K" msgid "7x Native (4480x3696)" msgstr "7x Αρχική (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -937,8 +937,8 @@ msgstr "Κωδικός AR" msgid "AR Codes" msgstr "Κωδικοί AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1103,7 +1103,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1131,7 +1131,7 @@ msgid "Address" msgstr "Διεύθυνση" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1254,7 +1254,7 @@ msgstr "" msgid "All devices" msgstr "Όλες οι συσκευές" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1491,7 +1491,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1552,13 +1552,13 @@ msgstr "Χειρισμός με Ανεστίαστο Παραθ." msgid "Backward" msgstr "Πίσω" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1566,13 +1566,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1799,7 +1799,7 @@ msgstr "Κουμπί" msgid "Buttons" msgstr "Κουμπιά" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2204,7 +2204,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Επιβεβαίωση" @@ -2263,7 +2263,7 @@ msgstr "Σύνδεση Wii Remotes" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Σύνδεση στο Internet και εκτέλεση ενημέρωσης συστήματος;" @@ -2425,7 +2425,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2433,11 +2433,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2481,26 +2481,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2509,7 +2509,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2852,7 +2852,7 @@ msgstr "Διαγραφή Αρχείου..." msgid "Delete Selected Files..." msgstr "Διαγραφή Επιλεγμένων Αρχείων..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2884,7 +2884,7 @@ msgstr "Περιγραφή" msgid "Description:" msgstr "Περιγραφή:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3033,7 +3033,7 @@ msgstr "Δίσκος" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3188,8 +3188,8 @@ msgid "Done compressing disc image." msgstr "Συμπιέστηκε η εικόνα του δίσκου." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3243,7 +3243,7 @@ msgstr "" msgid "Dual Core" msgstr "Διπλός Πυρήνας" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3251,23 +3251,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3441,7 +3441,7 @@ msgstr "Εφέ" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3734,15 +3734,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4108,7 +4109,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4150,7 +4151,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4158,11 +4159,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Αποτυχία μεταφόρτωσης κωδικών." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4284,7 +4285,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4569,11 +4570,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4581,7 +4582,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4599,7 +4600,7 @@ msgstr "Επιδιόρθωση Checksum" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4612,8 +4613,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5144,7 +5145,7 @@ msgstr "Γερμανικά" msgid "Germany" msgstr "Γερμανία" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5232,23 +5233,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6284,7 +6285,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Καταγραφή" @@ -6391,7 +6392,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6419,7 +6420,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Μνήμη" @@ -6439,7 +6440,7 @@ msgstr "Διαχειριστής Καρτών Μνήμης" msgid "Memory Override" msgstr "Παράκαμψη Μνήμης" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6747,7 +6748,7 @@ msgstr "Όχι" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6761,7 +6762,7 @@ msgstr "Καμία Έξοδος Ήχου" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6952,7 +6953,7 @@ msgstr "Ωκεανία" msgid "Off" msgstr "Ανενεργός" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7226,7 +7227,7 @@ msgstr "Εκτέλεση Ενημέρωσης Συστήματος" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7341,7 +7342,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7534,14 +7535,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8156,14 +8157,14 @@ msgstr "" msgid "ScrShot" msgstr "Στιγμιότυπο" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Αναζήτηση" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8340,7 +8341,7 @@ msgstr "Επιλέξτε ένα Παιχνίδι" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8489,7 +8490,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8502,7 +8503,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8764,7 +8765,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8831,18 +8832,18 @@ msgstr "Πλαγιαστό Wii Remote" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9443,6 +9444,10 @@ msgstr "Ταϊβάν" msgid "Take Screenshot" msgstr "Δημιουργία Στιγμιότυπου" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Τέστ" @@ -9540,7 +9545,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9552,11 +9557,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9592,13 +9597,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9631,7 +9636,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9639,7 +9644,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9753,7 +9758,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10077,7 +10082,7 @@ msgid "Toggle Aspect Ratio" msgstr "Εναλλαγή Αναλογίας Οθόνης" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10228,7 +10233,7 @@ msgstr "Σκανδάλες" msgid "Type" msgstr "Τύπος" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10284,7 +10289,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10304,7 +10309,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10357,7 +10362,7 @@ msgstr "Ηνωμένες Πολιτείες" msgid "Unknown" msgstr "Άγνωστο" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10433,18 +10438,18 @@ msgstr "" msgid "Unpacking" msgstr "Αποσυμπίεση" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10479,28 +10484,28 @@ msgstr "Ενημέρωση μετά το κλείσιμο του Dolphin" msgid "Update available" msgstr "Διαθέσιμη ενημέρωση" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Η ενημέρωση ακυρώθηκε" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Η ενημέρωση ολοκληρώθηκε" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Η ενημέρωση απέτυχε" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Ενημέρωση" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10674,7 +10679,7 @@ msgstr "Εργαλεία" msgid "V-Sync" msgstr "Κάθετος Συγχρονισμός" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Τιμή" @@ -11071,7 +11076,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/en.po b/Languages/po/en.po index 35d7f898a9..eeca41e3b4 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -319,7 +319,7 @@ msgstr "" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -672,7 +672,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -760,7 +760,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -812,7 +812,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -880,7 +880,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -927,8 +927,8 @@ msgstr "" msgid "AR Codes" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1093,7 +1093,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1121,7 +1121,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1244,7 +1244,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1481,7 +1481,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1542,13 +1542,13 @@ msgstr "" msgid "Backward" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1556,13 +1556,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1789,7 +1789,7 @@ msgstr "" msgid "Buttons" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2194,7 +2194,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2253,7 +2253,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2413,7 +2413,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2421,11 +2421,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2469,26 +2469,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2497,7 +2497,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2840,7 +2840,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2872,7 +2872,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3020,7 +3020,7 @@ msgstr "" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3171,8 +3171,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3225,7 +3225,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3233,23 +3233,23 @@ msgstr "" msgid "Dummy" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3423,7 +3423,7 @@ msgstr "" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3709,15 +3709,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4081,7 +4082,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4123,7 +4124,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4131,11 +4132,11 @@ msgstr "" msgid "Failed to download codes." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4257,7 +4258,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4542,11 +4543,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4554,7 +4555,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4572,7 +4573,7 @@ msgstr "" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4585,8 +4586,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5117,7 +5118,7 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5205,23 +5206,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6254,7 +6255,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "" @@ -6361,7 +6362,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6387,7 +6388,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6407,7 +6408,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6713,7 +6714,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6727,7 +6728,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6918,7 +6919,7 @@ msgstr "" msgid "Off" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7192,7 +7193,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7307,7 +7308,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7500,14 +7501,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8122,14 +8123,14 @@ msgstr "" msgid "ScrShot" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8306,7 +8307,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8455,7 +8456,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8468,7 +8469,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8727,7 +8728,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8794,18 +8795,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9406,6 +9407,10 @@ msgstr "" msgid "Take Screenshot" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "" @@ -9503,7 +9508,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9515,11 +9520,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9555,13 +9560,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9594,7 +9599,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9602,7 +9607,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9715,7 +9720,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10032,7 +10037,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10183,7 +10188,7 @@ msgstr "" msgid "Type" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10239,7 +10244,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10259,7 +10264,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10312,7 +10317,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10388,18 +10393,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10434,28 +10439,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10627,7 +10632,7 @@ msgstr "" msgid "V-Sync" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "" @@ -11024,7 +11029,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/es.po b/Languages/po/es.po index 8a9ee57f30..1de940bc9a 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" @@ -371,7 +371,7 @@ msgstr "&Puntos de interrupción" msgid "&Bug Tracker" msgstr "&Rastreador de errores" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Cancelar" @@ -583,7 +583,7 @@ msgstr "&Modo de solo lectura" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&Actualizar lista" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -724,7 +724,7 @@ msgstr "/ Dividir" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 bloques)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 bytes" @@ -812,7 +812,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "Nativa x3 (1920x1584) a 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 bytes" @@ -864,7 +864,7 @@ msgstr "Nativa x6 (3840x3168) a 4K" msgid "7x Native (4480x3696)" msgstr "Nativa x7 (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 bytes" @@ -941,7 +941,7 @@ msgstr "" "\n" "Instalar este WAD lo reemplazará de forma irreversible. ¿Quieres continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Ya hay un disco en proceso de inserción." @@ -1006,8 +1006,8 @@ msgstr "Código AR" msgid "AR Codes" msgstr "Códigos AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1189,7 +1189,7 @@ msgstr "Añadir punto de interrupción de memoria" msgid "Add to &watch" msgstr "Añadir a &variables vigiladas" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Añadir a variables vigiladas" @@ -1217,7 +1217,7 @@ msgid "Address" msgstr "Dirección:" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Espacio de dirección" @@ -1234,7 +1234,7 @@ msgstr "Dirección:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "Ajusta el radio efectivo del borde simulado de la palanca." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1301,7 +1301,7 @@ msgstr "Avanzado" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "Ajustes avanzados" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1362,7 +1362,7 @@ msgstr "Todos los valores enteros sin signo" msgid "All devices" msgstr "Todos los dispositivos" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Todos los archivos (*)" @@ -1613,7 +1613,7 @@ msgstr "" "dolphin_emphasis>" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Auxiliar" @@ -1677,13 +1677,13 @@ msgstr "Funcionar en segundo plano" msgid "Backward" msgstr "Atrás" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "Se ha proporcionado un valor incorrecto" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "La dirección elegida no existe." @@ -1691,13 +1691,13 @@ msgstr "La dirección elegida no existe." msgid "Bad dump" msgstr "Volcado malo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Ajuste proporcionado incorrecto." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "El valor elegido no es correcto." @@ -1929,9 +1929,9 @@ msgstr "Botón" msgid "Buttons" msgstr "Botones" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "Por:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2360,7 +2360,7 @@ msgstr "Configurar salida" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmar" @@ -2419,7 +2419,7 @@ msgstr "Conectar mandos de Wii" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Conectar los mandos de Wii para controles emulados" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" "¿Quieres conectarte a Internet y actualizar los componentes del sistema?" @@ -2604,7 +2604,7 @@ msgstr "Copiar &función" msgid "Copy &hex" msgstr "Copiar código &hexadecimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Copiar dirección" @@ -2612,11 +2612,11 @@ msgstr "Copiar dirección" msgid "Copy Failed" msgstr "Se produjo un fallo al copiar" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copiar en hexadecimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Copiar valor" @@ -2660,7 +2660,7 @@ msgstr "No se pudo crear el cliente." msgid "Could not create peer." msgstr "No se pudo crear el par." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2668,7 +2668,7 @@ msgstr "" "No se han podido descargar los archivos de actualización de Nintendo, " "comprueba tu conexión a Internet y prueba otra vez." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2676,7 +2676,7 @@ msgstr "" "No se han podido descargar la información de actualización de Nintendo, " "comprueba tu conexión a Internet y prueba otra vez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2687,7 +2687,7 @@ msgstr "" "\n" "La consola emulada se detendrá ahora." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2702,7 +2702,7 @@ msgstr "" "\n" "La consola emulada se detendrá ahora." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3085,7 +3085,7 @@ msgstr "Borrar archivo..." msgid "Delete Selected Files..." msgstr "Borrar archivos seleccionados..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "¿Borrar el archivo «{0}»?" @@ -3117,9 +3117,9 @@ msgstr "Descripción" msgid "Description:" msgstr "Descripción:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "Descripción:" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" @@ -3284,7 +3284,7 @@ msgstr "Disco" msgid "Discard" msgstr "Descartar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "Tipo de visualización" @@ -3457,8 +3457,8 @@ msgid "Done compressing disc image." msgstr "Imagen de disco comprimida correctamente." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Coma flotante doble" @@ -3511,7 +3511,7 @@ msgstr "Batería" msgid "Dual Core" msgstr "Doble núcleo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "Vista doble" @@ -3519,23 +3519,23 @@ msgstr "Vista doble" msgid "Dummy" msgstr "Dispositivo falso" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "Volcar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Volcar &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Volcar &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Volcar &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Volcar &MRAM" @@ -3736,7 +3736,7 @@ msgstr "Efectos" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Efectivo" @@ -3838,7 +3838,7 @@ msgstr "Activar FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "Activar modificaciones de gráficos" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -4079,15 +4079,16 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4480,7 +4481,7 @@ msgstr "No se ha podido añadir esta sesión al índice de juego en red: %1" msgid "Failed to append to signature file '%1'" msgstr "No se ha podido añadir al archivo de firma «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "No se ha podido controlar la interfaz para el acceso directo a BT: {0}" @@ -4526,7 +4527,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "No se ha podido borrar el archivo seleccionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "No se ha podido desvincular el controlador del kernel para ejecutar el " @@ -4536,11 +4537,11 @@ msgstr "" msgid "Failed to download codes." msgstr "No se ha podido descargar los códigos." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "No se ha podido volcar %1: Hubo un fallo al abrir el archivo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" "No se ha podido volcar %1: no se han podido escribir los datos en el archivo" @@ -4681,7 +4682,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "No se ha podido abrir «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "No se ha podido abrir el dispositivo Bluetooth: {0}" @@ -4998,11 +4999,11 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Buscar &siguiente" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Buscar &anterior" @@ -5010,7 +5011,7 @@ msgstr "Buscar &anterior" msgid "Finish Calibration" msgstr "Finalizar calibración" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -5030,7 +5031,7 @@ msgstr "Reparar sumas de verificación" msgid "Fix Checksums Failed" msgstr "Error al reparar las sumas de verificación" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "Alineación fija" @@ -5043,8 +5044,8 @@ msgstr "Indicadores" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5587,7 +5588,7 @@ msgstr "Entrada TAS de GameCube %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "Tamaño del borde" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5636,7 +5637,7 @@ msgstr "Alemán" msgid "Germany" msgstr "Alemania" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "Fallo en GetDeviceList: {0}" @@ -5660,7 +5661,7 @@ msgstr "Gráficos" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "Modificaciones de gráficos" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5669,7 +5670,7 @@ msgstr "Ajustes gráficos" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "Las modificaciones de gráficos están desactivadas." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5729,23 +5730,23 @@ msgstr "Inicio" msgid "Help" msgstr "Ayuda" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hexadecimal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "16 (hexad.)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "32 (hexad.)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "8 (hexad.)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Cadena hexadecimal en bytes" @@ -6861,6 +6862,9 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"Carga modificaciones de gráficos desde User/Load/GraphicsMods/." +"

Si tienes dudas, deja esta opción desactivada." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6871,7 +6875,7 @@ msgid "Lock Mouse Cursor" msgstr "Bloquear cursor del ratón" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Registro" @@ -6987,7 +6991,7 @@ msgstr "Mapeando" msgid "Mask ROM" msgstr "Enmascarar ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Se han encontrado coincidencias" @@ -7013,7 +7017,7 @@ msgstr "Puede empeorar el rendimiento del menú de Wii y de algunos juegos." msgid "Medium" msgstr "Medio" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Memoria" @@ -7033,7 +7037,7 @@ msgstr "Administrador de tarjetas de memoria" msgid "Memory Override" msgstr "Control manual de la memoria" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Opciones de punto de interrupción en memoria" @@ -7360,7 +7364,7 @@ msgstr "No" msgid "No Adapter Detected" msgstr "No se ha detectado ningún adaptador" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "Sin alineación" @@ -7374,7 +7378,7 @@ msgstr "Sin salida de audio" msgid "No Compression" msgstr "Sin compresión" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Sin coincidencias" @@ -7577,7 +7581,7 @@ msgstr "Oceanía" msgid "Off" msgstr "No" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Ajuste" @@ -7855,7 +7859,7 @@ msgstr "Actualizar la consola" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Físico" @@ -7973,7 +7977,7 @@ msgstr "Final prematuro de la grabación en PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Final prematuro de la grabación en PlayWiimote. {0} > {1} " -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8180,14 +8184,14 @@ msgstr "Leer" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Leer y escribir" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Solo lectura" @@ -8830,14 +8834,14 @@ msgstr "El escaneo ha finalizado." msgid "ScrShot" msgstr "Pantallazo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Buscar" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Buscar dirección" @@ -9018,7 +9022,7 @@ msgstr "Elige un juego" msgid "Select a SD Card Image" msgstr "Elige una imagen de tarjeta SD" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Elige un archivo" @@ -9207,7 +9211,7 @@ msgstr "Puerto del servidor" msgid "Server rejected traversal attempt" msgstr "El servidor de paso rechazó el intento de conexión" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Establecer &valor" @@ -9220,7 +9224,7 @@ msgstr "Poner &blr" msgid "Set PC" msgstr "Establecer PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Establecer valor a partir de archivo" @@ -9489,7 +9493,7 @@ msgstr "Mostrar en código" msgid "Show in Memory" msgstr "Mostrar en memoria" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Mostrar en código" @@ -9571,18 +9575,18 @@ msgstr "Mando de Wii en horizontal" msgid "Signature Database" msgstr "Base de datos de firmas" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "Con signo de 16 bits" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "Con signo de 32 bits" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "Con signo de 8 bits" @@ -10228,6 +10232,10 @@ msgstr "Taiwán" msgid "Take Screenshot" msgstr "Capturar pantalla" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Probar" @@ -10342,7 +10350,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "No se pudo leer el disco (en {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "No se encontró el disco que se iba a insertar." @@ -10358,11 +10366,11 @@ msgstr "" "\n" "¿Quieres intentar arreglar la NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Se acaba de actualizar la consola virtual." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "La consola virtual ya está actualizada." @@ -10404,7 +10412,7 @@ msgstr "" "El archivo %1 ya existe.\n" "¿Desea reemplazarlo?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10412,7 +10420,7 @@ msgstr "" "El archivo {0} no se pudo abrir para su escritura. Comprueba que no esté " "abierto por otro programa." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" "El archivo {0} ya estaba abierto, la cabecera de archivo no será escrita." @@ -10451,7 +10459,7 @@ msgstr "El ID del juego es inusualmente corto." msgid "The game ID is {0} but should be {1}." msgstr "El ID del juego es {0}, pero debería ser {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "El disco del juego no contiene ninguna actualización relevante." @@ -10459,7 +10467,7 @@ msgstr "El disco del juego no contiene ninguna actualización relevante." msgid "The game is currently running." msgstr "El juego se está ejecutando actualmente." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10603,7 +10611,7 @@ msgstr "El ticket no está correctamente firmado" msgid "The type of a partition could not be read." msgstr "El tipo de partición no se pudo leer." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10712,6 +10720,9 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"Esta compilación de Dolphin no está creada específicamente para tu CPU.\n" +"Te rogamos que utilices la compilación ARM64 de Dolphin para una mejor " +"experiencia." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 @@ -10986,7 +10997,7 @@ msgid "Toggle Aspect Ratio" msgstr "Alternar relación de aspecto" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Alternar punto de interrupción" @@ -11141,7 +11152,7 @@ msgstr "Gatillos" msgid "Type" msgstr "Tipo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "Alineación según tipo" @@ -11211,7 +11222,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "No se puede detectar el módulo RSO" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "No se ha podido abrir el archivo." @@ -11239,7 +11250,7 @@ msgstr "" "\n" "¿Te gustaría hacer caso omiso de esta línea y continuar el análisis?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "No se ha podido leer el archivo." @@ -11294,7 +11305,7 @@ msgstr "Estados Unidos" msgid "Unknown" msgstr "Desconocido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconocido de DVD {0:08x} - error fatal" @@ -11375,18 +11386,18 @@ msgstr "Desbloquear cursor" msgid "Unpacking" msgstr "Descomprimiendo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "Sin signo de 16 bits" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "Sin signo de 32 bits" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "Sin signo de 8 bits" @@ -11421,28 +11432,28 @@ msgstr "Actualizar al cerrar Dolphin" msgid "Update available" msgstr "Hay una actualización disponible" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Has cancelado la actualización" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Se ha completado la actualización" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "La actualización ha fallado" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Actualizando" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11668,7 +11679,7 @@ msgstr "Opciones útiles para el desarrollo" msgid "V-Sync" msgstr "Sincronización vertical" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valor" @@ -12148,7 +12159,7 @@ msgstr "Escribir datos de guardado" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Solo escritura" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index e51d54c391..a2bde2bbd7 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -323,7 +323,7 @@ msgstr "&نقاط انفصال" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -764,7 +764,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -816,7 +816,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -884,7 +884,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -931,8 +931,8 @@ msgstr "" msgid "AR Codes" msgstr "کدهای اکشن ریپلی" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1125,7 +1125,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1248,7 +1248,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1485,7 +1485,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1546,13 +1546,13 @@ msgstr "ورودی پس زمینه" msgid "Backward" msgstr "به عقب" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1560,13 +1560,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1793,7 +1793,7 @@ msgstr "" msgid "Buttons" msgstr "دکمه ها" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2198,7 +2198,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2417,7 +2417,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2425,11 +2425,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2473,26 +2473,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2501,7 +2501,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2844,7 +2844,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,7 +2876,7 @@ msgstr "شرح" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3024,7 +3024,7 @@ msgstr "دیسک" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3175,8 +3175,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3229,7 +3229,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3237,23 +3237,23 @@ msgstr "" msgid "Dummy" msgstr "مصنوعی" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3427,7 +3427,7 @@ msgstr "افکت" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3715,15 +3715,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4088,7 +4089,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4130,7 +4131,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4138,11 +4139,11 @@ msgstr "" msgid "Failed to download codes." msgstr "دانلود کدها با شکست مواجه شد." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4264,7 +4265,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4549,11 +4550,11 @@ msgid "" "this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4561,7 +4562,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4579,7 +4580,7 @@ msgstr "درست کردن چک سام ها" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4592,8 +4593,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5124,7 +5125,7 @@ msgstr "آلمانی" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5212,23 +5213,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6264,7 +6265,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "ثبت وقایع" @@ -6371,7 +6372,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6397,7 +6398,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6417,7 +6418,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6723,7 +6724,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6737,7 +6738,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6928,7 +6929,7 @@ msgstr "" msgid "Off" msgstr "خاموش" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7202,7 +7203,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7317,7 +7318,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7510,14 +7511,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8132,14 +8133,14 @@ msgstr "" msgid "ScrShot" msgstr "عکس فوری" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "جستجو" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8316,7 +8317,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8465,7 +8466,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8478,7 +8479,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8737,7 +8738,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8804,18 +8805,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9416,6 +9417,10 @@ msgstr "" msgid "Take Screenshot" msgstr "گرفتن عکس فوری" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "آزمودن" @@ -9513,7 +9518,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9525,11 +9530,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9565,13 +9570,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9604,7 +9609,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9612,7 +9617,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9725,7 +9730,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10046,7 +10051,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10197,7 +10202,7 @@ msgstr "دکمه ها" msgid "Type" msgstr "نوع" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10253,7 +10258,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10273,7 +10278,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10326,7 +10331,7 @@ msgstr "" msgid "Unknown" msgstr "ناشناخته" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10402,18 +10407,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10448,28 +10453,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10641,7 +10646,7 @@ msgstr "کاربردی" msgid "V-Sync" msgstr "هماهنگ کردن فرکانس عمودی بازی با صفحه نمایش" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "مقدار" @@ -11038,7 +11043,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index 66f107bc55..d4d9437b4a 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -357,7 +357,7 @@ msgstr "&Points d'arrêt" msgid "&Bug Tracker" msgstr "Suivi des &bugs" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Annuler" @@ -710,7 +710,7 @@ msgstr "/ Diviser" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blocs)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 octets" @@ -798,7 +798,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x la réso. native (1920x1584) pour 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 octets" @@ -850,7 +850,7 @@ msgstr "6x la réso. native (3840x3168) pour 4K" msgid "7x Native (4480x3696)" msgstr "7x la réso. native (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 octets" @@ -928,7 +928,7 @@ msgstr "" "Installer cette WAD va remplacer celle de la NAND de manière irréversible. " "Continuer ?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Un disque est déjà sur le point d'être inséré." @@ -996,8 +996,8 @@ msgstr "Code AR" msgid "AR Codes" msgstr "Codes AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1180,7 +1180,7 @@ msgstr "Ajouter un point d'arrêt mémoire" msgid "Add to &watch" msgstr "Ajouter à la surveillance" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Ajouter pour observation" @@ -1208,7 +1208,7 @@ msgid "Address" msgstr "Adresse" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Espace d'adresse" @@ -1349,7 +1349,7 @@ msgstr "" msgid "All devices" msgstr "Tous les appareils" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Tous les fichiers (*)" @@ -1600,7 +1600,7 @@ msgstr "" "dolphin_emphasis>" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Auxiliaire" @@ -1664,13 +1664,13 @@ msgstr "Entrée en arrière-plan" msgid "Backward" msgstr "Arrière" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "Mauvaise valeur entrée" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Mauvaise adresse fournie." @@ -1678,13 +1678,13 @@ msgstr "Mauvaise adresse fournie." msgid "Bad dump" msgstr "Mauvais dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Mauvais offset fourni." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Mauvaise valeur fournie." @@ -1917,7 +1917,7 @@ msgstr "Bouton" msgid "Buttons" msgstr "Boutons" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2355,7 +2355,7 @@ msgstr "Configurer la sortie" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmer" @@ -2414,7 +2414,7 @@ msgstr "Connecter les Wiimotes" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Connecter les Wiimotes en tant que manettes émulées" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Se connecter à Internet et rechercher une mise à jour ?" @@ -2599,7 +2599,7 @@ msgstr "Copier la &fonction" msgid "Copy &hex" msgstr "Copier l'&hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Copier l'adresse" @@ -2607,11 +2607,11 @@ msgstr "Copier l'adresse" msgid "Copy Failed" msgstr "Échec de la copie" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copier l'Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Copier la valeur" @@ -2655,7 +2655,7 @@ msgstr "Impossible de créer le client." msgid "Could not create peer." msgstr "Impossible de créer le pair." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2663,7 +2663,7 @@ msgstr "" "Impossible de télécharger les fichiers de mise à jour de Nintendo. Vérifiez " "votre connexion à Internet et réessayez." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2671,7 +2671,7 @@ msgstr "" "Impossible de télécharger les informations de mise à jour de Nintendo. " "Vérifiez votre connexion à Internet puis réessayez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2681,7 +2681,7 @@ msgstr "" "\n" "La console émulée va maintenant s'arrêter." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2696,7 +2696,7 @@ msgstr "" "\n" "La console émulée va maintenant s'arrêter." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3080,7 +3080,7 @@ msgstr "Supprimer le fichier..." msgid "Delete Selected Files..." msgstr "Supprimer les fichiers sélectionnées..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Supprimer le fichier '{0}' ?" @@ -3112,7 +3112,7 @@ msgstr "Description" msgid "Description:" msgstr "Description :" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3280,7 +3280,7 @@ msgstr "Disque" msgid "Discard" msgstr "Fermer" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "Type d'affichage" @@ -3451,8 +3451,8 @@ msgid "Done compressing disc image." msgstr "Compression de l'image disque terminée." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3507,7 +3507,7 @@ msgstr "Kit de percussions" msgid "Dual Core" msgstr "Double cœur (Dual Core)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "Affichage double" @@ -3515,23 +3515,23 @@ msgstr "Affichage double" msgid "Dummy" msgstr "Factice" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "Dumper" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dumper l'&ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dumper l' &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dumper &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dumper la &MRAM" @@ -3732,7 +3732,7 @@ msgstr "Effets" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effective" @@ -4071,15 +4071,16 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4475,7 +4476,7 @@ msgstr "Impossible d'ajouter cette session à l'index NetPlay : %1" msgid "Failed to append to signature file '%1'" msgstr "Impossible d'ajouter cela au fichier de signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4521,7 +4522,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Impossible de supprimer le fichier sélectionné." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossible de détacher le driver du Kernel pour l'adaptateur BT : {0}" @@ -4529,11 +4530,11 @@ msgstr "Impossible de détacher le driver du Kernel pour l'adaptateur BT : {0}" msgid "Failed to download codes." msgstr "Impossible de télécharger les codes." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Impossible de dumper %1 : impossible d'ouvrir le fichier" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Impossible de dumper %1 : impossible d'écrire vers le fichier" @@ -4673,7 +4674,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Impossible d'ouvrir \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossible d'utiliser l'appareil Bluetooth : {0}" @@ -4989,11 +4990,11 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Chercher le &suivant" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Chercher le &précédent" @@ -5001,7 +5002,7 @@ msgstr "Chercher le &précédent" msgid "Finish Calibration" msgstr "Terminer l'étalonnage" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -5021,7 +5022,7 @@ msgstr "Corriger les sommes de contrôle" msgid "Fix Checksums Failed" msgstr "Échec de la correction des sommes de contrôle" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "Alignement fixé" @@ -5034,8 +5035,8 @@ msgstr "Drapeaux" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5623,7 +5624,7 @@ msgstr "Allemand" msgid "Germany" msgstr "Allemagne" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5716,23 +5717,23 @@ msgstr "Head" msgid "Help" msgstr "Aide" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hex" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Hex Byte String" @@ -6863,7 +6864,7 @@ msgid "Lock Mouse Cursor" msgstr "Verrouiller le curseur de la souris" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Journal" @@ -6979,7 +6980,7 @@ msgstr "Mappage" msgid "Mask ROM" msgstr "ROM masque" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Correspondance trouvée" @@ -7005,7 +7006,7 @@ msgstr "Ceci peut ralentir le Menu Wii et quelques jeux." msgid "Medium" msgstr "Moyen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Mémoire" @@ -7025,7 +7026,7 @@ msgstr "Gestionnaire de cartes mémoires" msgid "Memory Override" msgstr "Modification de la mémoire" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Options pour le point d'arrêt en mémoire" @@ -7355,7 +7356,7 @@ msgstr "Non" msgid "No Adapter Detected" msgstr "Aucun adaptateur détecté" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "Aucun alignement" @@ -7369,7 +7370,7 @@ msgstr "Pas de sortie audio" msgid "No Compression" msgstr "Aucune compression" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Aucune correspondance trouvée" @@ -7573,7 +7574,7 @@ msgstr "Océanie" msgid "Off" msgstr "Arrêt" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Offset" @@ -7851,7 +7852,7 @@ msgstr "Exécuter une mise à jour du Système" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Physique" @@ -7970,7 +7971,7 @@ msgstr "Fin de film prématurée dans PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Fin de film prématurée dans PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8178,14 +8179,14 @@ msgstr "Lire" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Lu et écrit" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Uniquement lu" @@ -8826,14 +8827,14 @@ msgstr "Recherche terminée." msgid "ScrShot" msgstr "Capt écran" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Rechercher" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Rechercher l'adresse" @@ -9013,7 +9014,7 @@ msgstr "Sélectionner un Jeu" msgid "Select a SD Card Image" msgstr "Sélectionner une image de carte SD" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Sélectionner un fichier" @@ -9198,7 +9199,7 @@ msgstr "Port du serveur" msgid "Server rejected traversal attempt" msgstr "Le serveur a rejeté la tentative traversal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Définir &Valeur" @@ -9211,7 +9212,7 @@ msgstr "Définir &blr" msgid "Set PC" msgstr "Définir PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Définir la valeur à partir du fichier" @@ -9481,7 +9482,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Afficher dans le &code" @@ -9562,18 +9563,18 @@ msgstr "Wiimote à l'horizontale" msgid "Signature Database" msgstr "Base de données de Signatures" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "Signé 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "Signé 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "Signé 8" @@ -10220,6 +10221,10 @@ msgstr "Taïwan" msgid "Take Screenshot" msgstr "Capture d'écran" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -10334,7 +10339,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Le disque ne peut être lu (à {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Le disque qui allait être inséré n'a pas été trouvé." @@ -10348,11 +10353,11 @@ msgstr "" "La NAND émulée est endommagée. Des titres du système tels que le Menu Wii et " "la Chaîne Boutique peuvent ne pas fonctionner correctement." -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "La console Wii émulée a été mise à jour." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "La console Wii émulée est déjà à jour." @@ -10394,7 +10399,7 @@ msgstr "" "Le fichier %1 existe déjà.\n" "Voulez-vous le remplacer ?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10402,7 +10407,7 @@ msgstr "" "Le fichier {0} n'a pas pu être ouvert pour l'écriture. Vérifiez qu'il n'a " "pas été ouvert par un autre programme." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "Le fichier {0} était déjà ouvert, son entête n'a pas pu être écrite." @@ -10436,7 +10441,7 @@ msgstr "L'ID du jeu est anormalement court." msgid "The game ID is {0} but should be {1}." msgstr "L'ID du jeu est {0} au lieu de {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "Le disque ne contient aucune information de mise à jour utilisable." @@ -10444,7 +10449,7 @@ msgstr "Le disque ne contient aucune information de mise à jour utilisable." msgid "The game is currently running." msgstr "Le jeu est déjà en cours d'émulation." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10585,7 +10590,7 @@ msgstr "Le ticket n'est pas correctement signé." msgid "The type of a partition could not be read." msgstr "Le type de partition ne peut être lu." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10969,7 +10974,7 @@ msgid "Toggle Aspect Ratio" msgstr "Activer le ratio hauteur/largeur" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Activer Point d'arrêt" @@ -11122,7 +11127,7 @@ msgstr "Déclencheurs" msgid "Type" msgstr "Type" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "Alignement basé sur Type" @@ -11194,7 +11199,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Impossible de détecter automatiquement le module RSO" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "Impossible d'ouvrir le fichier." @@ -11222,7 +11227,7 @@ msgstr "" "\n" "Voulez-vous ignorer cette ligne et continuer le traitement ?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "Impossible de lire le fichier." @@ -11277,7 +11282,7 @@ msgstr "États-Unis" msgid "Unknown" msgstr "Inconnu" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Commande DVD inconnue {0:08x} - erreur fatale" @@ -11358,18 +11363,18 @@ msgstr "Débloquer le curseur" msgid "Unpacking" msgstr "Décompression" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "Non signé 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "Non signé 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "Non signé 8" @@ -11404,28 +11409,28 @@ msgstr "Mettre à jour une fois Dolphin quitté" msgid "Update available" msgstr "Mise à jour disponible" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "La mise à jour a été annulée" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "La mise à jour a réussi" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "La mise à jour a échoué" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Mise à jour en cours" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11653,7 +11658,7 @@ msgstr "Utilitaires" msgid "V-Sync" msgstr "Synchro verticale" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valeur" @@ -12130,7 +12135,7 @@ msgstr "Écrire données de sauvegarde" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Uniquement écrit" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index bbd10b1e75..f9b810a577 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -323,7 +323,7 @@ msgstr "&Pauze" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -764,7 +764,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -816,7 +816,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -884,7 +884,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -931,8 +931,8 @@ msgstr "" msgid "AR Codes" msgstr "AR Kodovi" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1125,7 +1125,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1248,7 +1248,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1485,7 +1485,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1546,13 +1546,13 @@ msgstr "Prati unos podataka i u pozadini" msgid "Backward" msgstr "Natrag" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1560,13 +1560,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1793,7 +1793,7 @@ msgstr "" msgid "Buttons" msgstr "Tipke" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2198,7 +2198,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2417,7 +2417,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2425,11 +2425,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2473,26 +2473,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2501,7 +2501,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2844,7 +2844,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,7 +2876,7 @@ msgstr "Opis" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3024,7 +3024,7 @@ msgstr "Disk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3175,8 +3175,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3229,7 +3229,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3237,23 +3237,23 @@ msgstr "" msgid "Dummy" msgstr "Imitacija" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3427,7 +3427,7 @@ msgstr "Efekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3715,15 +3715,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4088,7 +4089,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4130,7 +4131,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4138,11 +4139,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Neuspjeh u preuzimanju kodova." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4264,7 +4265,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4549,11 +4550,11 @@ msgid "" "this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4561,7 +4562,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4579,7 +4580,7 @@ msgstr "Popravi Checksum" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4592,8 +4593,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5124,7 +5125,7 @@ msgstr "Njemački" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5212,23 +5213,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6264,7 +6265,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Zapis" @@ -6371,7 +6372,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6397,7 +6398,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6417,7 +6418,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6723,7 +6724,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6737,7 +6738,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6928,7 +6929,7 @@ msgstr "" msgid "Off" msgstr "Isključeno" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7202,7 +7203,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7317,7 +7318,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7510,14 +7511,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8132,14 +8133,14 @@ msgstr "" msgid "ScrShot" msgstr "UslikajZaslon" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Traži" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8316,7 +8317,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8465,7 +8466,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8478,7 +8479,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8737,7 +8738,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8804,18 +8805,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9416,6 +9417,10 @@ msgstr "" msgid "Take Screenshot" msgstr "Uslikaj Ekran" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Testirati" @@ -9513,7 +9518,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9525,11 +9530,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9565,13 +9570,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9604,7 +9609,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9612,7 +9617,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9725,7 +9730,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10042,7 +10047,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10193,7 +10198,7 @@ msgstr "Okidači" msgid "Type" msgstr "Tip" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10249,7 +10254,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10269,7 +10274,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10322,7 +10327,7 @@ msgstr "" msgid "Unknown" msgstr "Nepoznato" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10398,18 +10403,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10444,28 +10449,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10637,7 +10642,7 @@ msgstr "Uslužni program" msgid "V-Sync" msgstr "V-Sinkro" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Vrijednost" @@ -11034,7 +11039,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index 65e9e2727d..bba7276d80 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -324,7 +324,7 @@ msgstr "&Töréspontok" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -677,7 +677,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x eredeti (1920x1584) 1080p-hez" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -817,7 +817,7 @@ msgstr "6x eredeti (3840x3168) 4K-hoz" msgid "7x Native (4480x3696)" msgstr "7x eredeti (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -885,7 +885,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Egy lemez már behelyezés alatt." @@ -932,8 +932,8 @@ msgstr "" msgid "AR Codes" msgstr "AR kódok" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1098,7 +1098,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1126,7 +1126,7 @@ msgid "Address" msgstr "Cím" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1249,7 +1249,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1486,7 +1486,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1547,13 +1547,13 @@ msgstr "Háttér bemenet" msgid "Backward" msgstr "Hátra" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1561,13 +1561,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1794,7 +1794,7 @@ msgstr "" msgid "Buttons" msgstr "Gombok" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2200,7 +2200,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2259,7 +2259,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2419,7 +2419,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2427,11 +2427,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2475,26 +2475,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2503,7 +2503,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2846,7 +2846,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2878,7 +2878,7 @@ msgstr "Leírás" msgid "Description:" msgstr "Leírás:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3026,7 +3026,7 @@ msgstr "Lemez" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3177,8 +3177,8 @@ msgid "Done compressing disc image." msgstr "Lemezkép tömörítése kész." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3231,7 +3231,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3239,23 +3239,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3429,7 +3429,7 @@ msgstr "Effekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3721,15 +3721,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4095,7 +4096,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4137,7 +4138,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4145,11 +4146,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Kódok letöltése sikertelen." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4271,7 +4272,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4556,11 +4557,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4568,7 +4569,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4586,7 +4587,7 @@ msgstr "Ellenőrzőösszeg javítása" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4599,8 +4600,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5131,7 +5132,7 @@ msgstr "Német" msgid "Germany" msgstr "Németország" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5219,23 +5220,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6272,7 +6273,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Napló" @@ -6379,7 +6380,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6405,7 +6406,7 @@ msgstr "Talán lassulást okoz a Wii menüben és néhány játéknál." msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6425,7 +6426,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6731,7 +6732,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6745,7 +6746,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6938,7 +6939,7 @@ msgstr "" msgid "Off" msgstr "Ki" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7212,7 +7213,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7327,7 +7328,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7520,14 +7521,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8142,14 +8143,14 @@ msgstr "" msgid "ScrShot" msgstr "Pillanatkép" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Keresés" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8326,7 +8327,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8475,7 +8476,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "A szerver elutasította az átjárási kérelmet" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8488,7 +8489,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8750,7 +8751,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8817,18 +8818,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9429,6 +9430,10 @@ msgstr "Tajvan" msgid "Take Screenshot" msgstr "Pillanatkép készítése" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Teszt" @@ -9526,7 +9531,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "A behelyezni próbált lemez nem található." @@ -9538,11 +9543,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9578,13 +9583,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9617,7 +9622,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9625,7 +9630,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9738,7 +9743,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10063,7 +10068,7 @@ msgid "Toggle Aspect Ratio" msgstr "Képarány kapcsoló" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10214,7 +10219,7 @@ msgstr "Ravaszok" msgid "Type" msgstr "Típus" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10270,7 +10275,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10290,7 +10295,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10343,7 +10348,7 @@ msgstr "" msgid "Unknown" msgstr "Ismeretlen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10419,18 +10424,18 @@ msgstr "" msgid "Unpacking" msgstr "Kicsomagolása" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10465,28 +10470,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10659,7 +10664,7 @@ msgstr "Segédprogram" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Érték" @@ -11056,7 +11061,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/it.po b/Languages/po/it.po index 13f818ba96..01c808c154 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -348,7 +348,7 @@ msgstr "&Punti di interruzione" msgid "&Bug Tracker" msgstr "&Bug Tracker" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Annulla" @@ -701,7 +701,7 @@ msgstr "/ Dividi" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blocchi)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 Bytes" @@ -789,7 +789,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Nativo (1920x1584) per 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 Bytes" @@ -841,7 +841,7 @@ msgstr "6x Nativo (3840x3168) per 4K" msgid "7x Native (4480x3696)" msgstr "7x Nativo (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 Bytes" @@ -919,7 +919,7 @@ msgstr "" "Non sarà possibile ripristinare la versione precedente dopo l'installazione " "del WAD. Continuare?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Un disco è già in inserimento." @@ -985,8 +985,8 @@ msgstr "AR Code" msgid "AR Codes" msgstr "Codici AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1169,7 +1169,7 @@ msgstr "Aggiungi punto di interruzione dei dati" msgid "Add to &watch" msgstr "Aggiungi &espressione di controllo" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Aggiungi espressione di controllo" @@ -1197,7 +1197,7 @@ msgid "Address" msgstr "Indirizzo" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Spazio degli Indirizzi" @@ -1341,7 +1341,7 @@ msgstr "Tutto Unsigned Integer" msgid "All devices" msgstr "Tutti i dispositivi" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Tutti i file (*)" @@ -1590,7 +1590,7 @@ msgstr "" "dolphin_emphasis>" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Ausiliario" @@ -1654,13 +1654,13 @@ msgstr "Input in Background" msgid "Backward" msgstr "all'Indietro" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "Inserito Valore non Valido" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Indirizzo non valido." @@ -1668,13 +1668,13 @@ msgstr "Indirizzo non valido." msgid "Bad dump" msgstr "Dump invalido" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Offset non valido." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Valore non valido." @@ -1908,7 +1908,7 @@ msgstr "Pulsante" msgid "Buttons" msgstr "Pulsanti" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2338,7 +2338,7 @@ msgstr "Configura Output" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Conferma" @@ -2397,7 +2397,7 @@ msgstr "Connetti Wii Remote" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Connetti i Telecomandi Wii per i Controller Simulati" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Connettersi a internet per avviare l'aggiornamento online di sistema?" @@ -2580,7 +2580,7 @@ msgstr "Copia &funzione" msgid "Copy &hex" msgstr "Copia &esadecimale" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Copia Indirizzo" @@ -2588,11 +2588,11 @@ msgstr "Copia Indirizzo" msgid "Copy Failed" msgstr "Copia non Riuscita" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copia Esadecimale" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Copia Valore" @@ -2636,7 +2636,7 @@ msgstr "Impossibile creare il client." msgid "Could not create peer." msgstr "Impossibile creare il peer." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2644,7 +2644,7 @@ msgstr "" "Impossibile recuperare i file di aggiornamento da Nintendo. Controlla la " "connettività, quindi riprova." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2652,7 +2652,7 @@ msgstr "" "Impossibile recuperare informazioni sull'aggiornamento da Nintendo. " "Controlla la connettività, quindi riprova." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2663,7 +2663,7 @@ msgstr "" "\n" "La console emulata terminerà." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2678,7 +2678,7 @@ msgstr "" "\n" "La console emulata terminerà." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3061,7 +3061,7 @@ msgstr "Elimina File..." msgid "Delete Selected Files..." msgstr "Elimina i File Selezionati..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Eliminare il file esistente '{0}'?" @@ -3093,7 +3093,7 @@ msgstr "Descrizione" msgid "Description:" msgstr "Descrizione:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3260,7 +3260,7 @@ msgstr "Disco" msgid "Discard" msgstr "Annulla" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "Tipo Display" @@ -3430,8 +3430,8 @@ msgid "Done compressing disc image." msgstr "Ho finito di comprimere l'immagine disco" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3484,7 +3484,7 @@ msgstr "Tamburi" msgid "Dual Core" msgstr "Dual Core" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "Doppia Visuale" @@ -3492,23 +3492,23 @@ msgstr "Doppia Visuale" msgid "Dummy" msgstr "Fittizio" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "Dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dump &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dump &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dump &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dump &MRAM" @@ -3709,7 +3709,7 @@ msgstr "Effetto" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effettivo" @@ -4044,15 +4044,16 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4444,7 +4445,7 @@ msgstr "Fallito l'inserimento di questa sessione all'indice NetPlay: %1" msgid "Failed to append to signature file '%1'" msgstr "Impossibile aggiungere il file di signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Impossibile richiedere l'interfaccia per il ponte BT: {0}" @@ -4490,7 +4491,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Fallita la rimozione del file selezionato." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossibile disconnettere il driver kernel per il ponte BT: {0}" @@ -4498,11 +4499,11 @@ msgstr "Impossibile disconnettere il driver kernel per il ponte BT: {0}" msgid "Failed to download codes." msgstr "Download dei codici non riuscito." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Fallito il dump %1: Impossibile aprire il file" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Fallito il dump %1: Impossibile scrivere il file" @@ -4642,7 +4643,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Fallita l'apertura di '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossibile aprire il dispositivo Bluetooth: {0}" @@ -4958,11 +4959,11 @@ msgstr "" "

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Trova &Successivo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Trova &Precedente" @@ -4970,7 +4971,7 @@ msgstr "Trova &Precedente" msgid "Finish Calibration" msgstr "Termina Calibrazione" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4990,7 +4991,7 @@ msgstr "Ripara Checksum" msgid "Fix Checksums Failed" msgstr "Ripara Checksum Falliti" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "Allineamento Fisso" @@ -5003,8 +5004,8 @@ msgstr "Flag" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5590,7 +5591,7 @@ msgstr "Tedesco" msgid "Germany" msgstr "Germania" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "Fallita GetDeviceList: {0}" @@ -5683,23 +5684,23 @@ msgstr "Testa" msgid "Help" msgstr "Aiuto" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hex" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Hex Byte String" @@ -6823,7 +6824,7 @@ msgid "Lock Mouse Cursor" msgstr "Blocca il Cursore del Mouse" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6939,7 +6940,7 @@ msgstr "Mappatura" msgid "Mask ROM" msgstr "Maschera ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Trovata Corrispondenza" @@ -6966,7 +6967,7 @@ msgstr "" msgid "Medium" msgstr "Medio" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Memoria" @@ -6986,7 +6987,7 @@ msgstr "Memory Card Manager" msgid "Memory Override" msgstr "Override Memoria" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Opzioni punti di interruzione" @@ -7318,7 +7319,7 @@ msgstr "No" msgid "No Adapter Detected" msgstr "Nessun Adattatore Rilevato" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "Nessun Allineamento" @@ -7332,7 +7333,7 @@ msgstr "Nessun Output Audio" msgid "No Compression" msgstr "Nessuna Compressione" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Nessuna Corrispondenza" @@ -7536,7 +7537,7 @@ msgstr "Oceania" msgid "Off" msgstr "Off" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Offset" @@ -7814,7 +7815,7 @@ msgstr "Avvia l'Aggiornamento di Sistema" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Fisico" @@ -7930,7 +7931,7 @@ msgstr "Termine prematuro del filmato in PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Termine prematuro del filmato in PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8136,14 +8137,14 @@ msgstr "Lettura" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Lettura e Scrittura" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Sola lettura" @@ -8779,14 +8780,14 @@ msgstr "Ricerca completata." msgid "ScrShot" msgstr "Screenshot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Cerca" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Cerca Indirizzo" @@ -8966,7 +8967,7 @@ msgstr "Seleziona un Gioco" msgid "Select a SD Card Image" msgstr "Seleziona un'Immagine Scheda SD" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Seleziona un file" @@ -9152,7 +9153,7 @@ msgid "Server rejected traversal attempt" msgstr "" "Il server ha rifiutato il tentativo di connessione in modalità traversal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Imposta &Valore" @@ -9165,7 +9166,7 @@ msgstr "Imposta &blr" msgid "Set PC" msgstr "Imposta PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Imposta Valore Da File" @@ -9433,7 +9434,7 @@ msgstr "Mostra in Codice" msgid "Show in Memory" msgstr "Mostra in Memoria" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Mostra nel codice" @@ -9513,18 +9514,18 @@ msgstr "Wii Remote in posizione di traverso" msgid "Signature Database" msgstr "Database Firme" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "Signed 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "Signed 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "Signed 8" @@ -10165,6 +10166,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Cattura uno Screenshot" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Prova" @@ -10278,7 +10283,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Impossibile leggere il disco (a {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Impossibile trovare il disco che stava per essere inserito." @@ -10294,11 +10299,11 @@ msgstr "" "\n" "Vuoi tentare la riparazione della NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "La console Wii emulata è stata aggiornata." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "La console Wii emulata è già aggiornata." @@ -10340,7 +10345,7 @@ msgstr "" "Il file %1 esiste già.\n" "Vuoi sostituirlo?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10348,7 +10353,7 @@ msgstr "" "Impossibile aprire il file {0} in scrittura. Verificare che non sia già " "aperto in un altro programma." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "Il file {0} è già stato aperto, l'intestazione non verrà scritta." @@ -10386,7 +10391,7 @@ msgstr "L'ID del gioco è insolitamente breve." msgid "The game ID is {0} but should be {1}." msgstr "L'ID del gioco è {0} ma dovrebbe essere {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "Questo disco di gioco non contiene alcun aggiornamento utilizzabile." @@ -10394,7 +10399,7 @@ msgstr "Questo disco di gioco non contiene alcun aggiornamento utilizzabile." msgid "The game is currently running." msgstr "Il gioco è attualmente avviato." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10531,7 +10536,7 @@ msgstr "Il ticket non è correttamente firmato." msgid "The type of a partition could not be read." msgstr "Impossibile leggere il tipo di una partizione." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10913,7 +10918,7 @@ msgid "Toggle Aspect Ratio" msgstr "Attiva/Disattiva Aspetto" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Imposta/rimuovi Punto di Interruzione" @@ -11067,7 +11072,7 @@ msgstr "Grilletti" msgid "Type" msgstr "Tipo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "Allineamento per Tipo" @@ -11137,7 +11142,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Impossibile individuare automaticamente il modulo RSO" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "Impossibile aprire il file." @@ -11165,7 +11170,7 @@ msgstr "" "\n" "Vuoi ignorare questa riga e continuare l'analisi?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "Impossibile leggere il file." @@ -11221,7 +11226,7 @@ msgstr "Stati Uniti" msgid "Unknown" msgstr "Sconosciuto" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando DVD {0:08x} sconosciuto - errore fatale" @@ -11303,18 +11308,18 @@ msgstr "Sblocca il Cursore" msgid "Unpacking" msgstr "Apertura" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "Unsigned 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "Unsigned 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "Unsigned 8" @@ -11349,28 +11354,28 @@ msgstr "Aggiorna alla chiusura di Dolphin" msgid "Update available" msgstr "Aggiornamento disponibile" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Aggiornamento annullato" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Aggiornamento completato" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Aggiornamento fallito" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Aggiornando" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11593,7 +11598,7 @@ msgstr "Utilità" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valore" @@ -12063,7 +12068,7 @@ msgstr "Scrivi Dati di Salvataggio" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Sola scrittura" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index a630095834..24616c734b 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2021\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -357,7 +357,7 @@ msgstr "&Breakpoints" msgid "&Bug Tracker" msgstr "バグトラッカー(&B)" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "キャンセル(&C)" @@ -710,7 +710,7 @@ msgstr "/ Divide(除算)" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 ブロック)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -798,7 +798,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Native (1920x1584) for 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -850,7 +850,7 @@ msgstr "6x Native (3840x3168) for 4K" msgid "7x Native (4480x3696)" msgstr "7x Native (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -926,7 +926,7 @@ msgstr "" "\n" "このWADのバージョンで上書きしますか?元に戻すことはできません!" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "ディスクは既に挿入されています。" @@ -985,8 +985,8 @@ msgstr "アクションリプレイコード" msgid "AR Codes" msgstr "アクションリプレイコード" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1167,7 +1167,7 @@ msgstr "Add memory breakpoint" msgid "Add to &watch" msgstr "Add to &watch" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Add to watch" @@ -1195,7 +1195,7 @@ msgid "Address" msgstr "アドレス" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Address Space" @@ -1339,7 +1339,7 @@ msgstr "" msgid "All devices" msgstr "すべてのデバイス" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1590,7 +1590,7 @@ msgstr "" "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Auxiliary" @@ -1651,13 +1651,13 @@ msgstr "バックグラウンド操作を許可" msgid "Backward" msgstr "後方" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Bad address provided." @@ -1665,13 +1665,13 @@ msgstr "Bad address provided." msgid "Bad dump" msgstr "Bad dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Bad offset provided." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Bad value provided." @@ -1901,7 +1901,7 @@ msgstr "ボタン" msgid "Buttons" msgstr "ボタン" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2321,7 +2321,7 @@ msgstr "出力設定" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "確認" @@ -2380,7 +2380,7 @@ msgstr "Wiiリモコンの接続" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "実機Wiiリモコンをエミュレートされたコントローラとして扱う" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "インターネットに接続してWiiのシステム更新を行いますか?" @@ -2556,7 +2556,7 @@ msgstr "Copy &function" msgid "Copy &hex" msgstr "Copy &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Copy Address" @@ -2564,11 +2564,11 @@ msgstr "Copy Address" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copy Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2612,7 +2612,7 @@ msgstr "クライアントを作成できませんでした" msgid "Could not create peer." msgstr "ピアを作成できませんでした" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2620,7 +2620,7 @@ msgstr "" "更新ファイルのダウンロードに失敗。インターネット接続設定を確認してから改めて" "試してください" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2628,14 +2628,14 @@ msgstr "" "更新情報のダウンロードに失敗。インターネット接続設定を確認してから改めて試し" "てください" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2644,7 +2644,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2998,7 +2998,7 @@ msgstr "このタイトルの実体を削除" msgid "Delete Selected Files..." msgstr "選択中のタイトルの実体を削除" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "既存のファイル '{0}' を削除しますか?" @@ -3030,7 +3030,7 @@ msgstr "説明" msgid "Description:" msgstr "説明" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3193,7 +3193,7 @@ msgstr "ディスク" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3353,8 +3353,8 @@ msgid "Done compressing disc image." msgstr "ディスクイメージの圧縮に成功しました" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3407,7 +3407,7 @@ msgstr "ドラムコントローラ" msgid "Dual Core" msgstr "デュアルコア動作" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3415,23 +3415,23 @@ msgstr "" msgid "Dummy" msgstr "ダミーデバイス" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dump &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dump &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dump &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dump &MRAM" @@ -3622,7 +3622,7 @@ msgstr "エフェクト" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effective" @@ -3944,15 +3944,16 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4323,7 +4324,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4366,7 +4367,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "選択したファイルの削除に失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4374,11 +4375,11 @@ msgstr "" msgid "Failed to download codes." msgstr "コードの取得に失敗しました" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Failed to dump %1: Can't open file" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Failed to dump %1: Failed to write to file" @@ -4502,7 +4503,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "'%1' のオープンに失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4798,11 +4799,11 @@ msgstr "" "題が発生する可能性もあります。

よく分からなければ、" "チェックを外さないでください。" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Find &Next" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Find &Previous" @@ -4810,7 +4811,7 @@ msgstr "Find &Previous" msgid "Finish Calibration" msgstr "キャリブレーション終了" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4830,7 +4831,7 @@ msgstr "チェックサムを修正" msgid "Fix Checksums Failed" msgstr "チェックサムの修正に失敗" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4843,8 +4844,8 @@ msgstr "Flags" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5408,7 +5409,7 @@ msgstr "ドイツ語" msgid "Germany" msgstr "ドイツ" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5500,23 +5501,23 @@ msgstr "Head" msgid "Help" msgstr "ヘルプ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6619,7 +6620,7 @@ msgid "Lock Mouse Cursor" msgstr "マウスカーソルをロック" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "ログ" @@ -6734,7 +6735,7 @@ msgstr "コントローラ割当位置" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Match Found" @@ -6762,7 +6763,7 @@ msgstr "" msgid "Medium" msgstr "中" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Memory" @@ -6782,7 +6783,7 @@ msgstr "GCメモリーカードマネージャ" msgid "Memory Override" msgstr "Memory Override" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Memory breakpoint options" @@ -7098,7 +7099,7 @@ msgstr "いいえ" msgid "No Adapter Detected" msgstr "タップは未接続です" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -7112,7 +7113,7 @@ msgstr "出力しない" msgid "No Compression" msgstr "無圧縮" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "No Match" @@ -7312,7 +7313,7 @@ msgstr "オセアニア" msgid "Off" msgstr "オフ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Offset" @@ -7590,7 +7591,7 @@ msgstr "Wii システムアップデート" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Physical" @@ -7705,7 +7706,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7910,14 +7911,14 @@ msgstr "Read" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Read and write" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Read only" @@ -8547,14 +8548,14 @@ msgstr "" msgid "ScrShot" msgstr "画面撮影" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "検索" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Search Address" @@ -8731,7 +8732,7 @@ msgstr "ディスクチャンネルに表示するタイトルを選択" msgid "Select a SD Card Image" msgstr "SDカードファイルを選択" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8909,7 +8910,7 @@ msgstr "サーバーのポート" msgid "Server rejected traversal attempt" msgstr "サーバーが中継処理を拒否しました" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Set &Value" @@ -8922,7 +8923,7 @@ msgstr "" msgid "Set PC" msgstr "Set PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -9184,7 +9185,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Show in code" @@ -9264,18 +9265,18 @@ msgstr "横持ち(Sideways)で使用" msgid "Signature Database" msgstr "Signature Database" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9902,6 +9903,10 @@ msgstr "台湾" msgid "Take Screenshot" msgstr "画面撮影" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "テスト" @@ -10003,7 +10008,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "The disc could not be read (at {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -10019,11 +10024,11 @@ msgstr "" "\n" "NANDの修復を試みますか?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Wiiシステムの更新が完了しました" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "このWiiシステムは既に最新版になっています" @@ -10059,13 +10064,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -10100,7 +10105,7 @@ msgstr "The game ID is unusually short." msgid "The game ID is {0} but should be {1}." msgstr "The game ID is {0} but should be {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -10108,7 +10113,7 @@ msgstr "" msgid "The game is currently running." msgstr "ゲームは現在実行中です" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10227,7 +10232,7 @@ msgstr "The ticket is not correctly signed." msgid "The type of a partition could not be read." msgstr "The type of a partition could not be read." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10572,7 +10577,7 @@ msgid "Toggle Aspect Ratio" msgstr "アスペクト比 設定切替" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Toggle Breakpoint" @@ -10723,7 +10728,7 @@ msgstr "トリガー" msgid "Type" msgstr "形式" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10791,7 +10796,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Unable to auto-detect RSO module" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10819,7 +10824,7 @@ msgstr "" "\n" "この行を無視して解析を続けますか?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10873,7 +10878,7 @@ msgstr "米国" msgid "Unknown" msgstr "フィルタ無し" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10949,18 +10954,18 @@ msgstr "マウスカーソルをロック 解除" msgid "Unpacking" msgstr "復元処理を行っています..." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10995,28 +11000,28 @@ msgstr "Dolphin 終了後に更新する" msgid "Update available" msgstr "自動更新" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "更新キャンセル" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "更新完了" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "更新失敗" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "更新中" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11201,7 +11206,7 @@ msgstr "ユーティリティ" msgid "V-Sync" msgstr "垂直同期 (V-Sync)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "値" @@ -11613,7 +11618,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Write only" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index 9a508c9557..3535af88bf 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -349,7 +349,7 @@ msgstr "중단점 (&B)" msgid "&Bug Tracker" msgstr "버그 추적자(&B)" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "취소(&C)" @@ -702,7 +702,7 @@ msgstr "/ 나누기" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 블락)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 바이트" @@ -790,7 +790,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x 원본 (1920x1584) 1080p용" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 바이트" @@ -842,7 +842,7 @@ msgstr "6x 원본 (3840x3168) 4K용" msgid "7x Native (4480x3696)" msgstr "7x 원본 (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 바이트" @@ -919,7 +919,7 @@ msgstr "" "\n" "이 WAD 를 설치하면 되돌릴 수 없게 바꾸게 됩니다. 계속합니까?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "디스크가 이미 삽입되려는 중입니다." @@ -980,8 +980,8 @@ msgstr "AR 코드" msgid "AR Codes" msgstr "AR 코드" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "애스키" @@ -1162,7 +1162,7 @@ msgstr "메모리 중단점 추가" msgid "Add to &watch" msgstr "관찰에 추가 (&w)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "관찰에 추가" @@ -1190,7 +1190,7 @@ msgid "Address" msgstr "주소" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "주소 공간" @@ -1331,7 +1331,7 @@ msgstr "" msgid "All devices" msgstr "모든 장치" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "모든 파일 (*)" @@ -1578,7 +1578,7 @@ msgstr "" "면, 체크 해제해 두세요.
" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "보조" @@ -1642,13 +1642,13 @@ msgstr "백그라운드 입력" msgid "Backward" msgstr "뒤로" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "안 좋은 값이 주어짐" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "안 좋은 주소가 제공되었습니다." @@ -1656,13 +1656,13 @@ msgstr "안 좋은 주소가 제공되었습니다." msgid "Bad dump" msgstr "안 좋은 덤프" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "안 좋은 오프셋이 제공되었습니다." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "안 좋은 값이 제공되었습니다." @@ -1893,7 +1893,7 @@ msgstr "버튼" msgid "Buttons" msgstr "버튼" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2316,7 +2316,7 @@ msgstr "출력 설정" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "확정" @@ -2375,7 +2375,7 @@ msgstr "Wii 리모트 연결" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "에뮬된 컨트롤러에 대한 Wii 리모트 연결" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "인터넷에 연결하여 온라인 시스템 업데이트를 하시겠습니까?" @@ -2554,7 +2554,7 @@ msgstr "함수 복사 (&f)" msgid "Copy &hex" msgstr "헥스 복사 (&h)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "주소 복사" @@ -2562,11 +2562,11 @@ msgstr "주소 복사" msgid "Copy Failed" msgstr "복사가 실패했습니다" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "헥스 복사" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "값 복사" @@ -2610,7 +2610,7 @@ msgstr "클라이언트를 생성할 수 없었습니다." msgid "Could not create peer." msgstr "피어를 생성할 수 없었습니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2618,7 +2618,7 @@ msgstr "" "닌텐도로부터 업데이트 파일을 다운로드할 수 없었습니다. 인터넷 연결을 확인하시" "고 다시 시도하세요." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2626,7 +2626,7 @@ msgstr "" "닌텐도로부터 업데이트 정보를 다운로드할 수 없었습니다. 인터넷 연결을 확인하시" "고 다시 시도하세요." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2636,7 +2636,7 @@ msgstr "" "\n" "에뮬된 콘솔이 지금 멈출 것입니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2650,7 +2650,7 @@ msgstr "" "\n" "에뮬된 콘솔이 지금 멈출 것입니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3026,7 +3026,7 @@ msgstr "파일 삭제..." msgid "Delete Selected Files..." msgstr "선택된 파일들 삭제..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "존재하는 파일 '{0}' 를 삭제합니까?" @@ -3058,7 +3058,7 @@ msgstr "설명" msgid "Description:" msgstr "설명:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3223,7 +3223,7 @@ msgstr "디스크" msgid "Discard" msgstr "폐기" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "디스플레이 타입" @@ -3391,8 +3391,8 @@ msgid "Done compressing disc image." msgstr "디스크 이미지 압축이 완료되었습니다." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "더블" @@ -3445,7 +3445,7 @@ msgstr "드럼 키트" msgid "Dual Core" msgstr "듀얼 코어" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "듀얼 뷰" @@ -3453,23 +3453,23 @@ msgstr "듀얼 뷰" msgid "Dummy" msgstr "더미" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "덤프" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "ARAM 덤프(&A)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "확장램 덤프(&E)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "가짜가상메모리 덤프(&F)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "MRAM 덤프(&M)" @@ -3665,7 +3665,7 @@ msgstr "효과" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "효과적인" @@ -3992,15 +3992,16 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4387,7 +4388,7 @@ msgstr "넷플레이 목록 : %1 에 이 세션을 추가하는데에 실패했 msgid "Failed to append to signature file '%1'" msgstr "서명 파일 '%1' 에 덧붙이기에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4429,7 +4430,7 @@ msgstr "넷플레이 메모리 카드를 삭제에 실패했습니다. 쓰기 msgid "Failed to delete the selected file." msgstr "선택된 파일 삭제에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "블투 패스쓰루용 커널 드라이버를 분리하는데에 실패했습니다: {0}" @@ -4437,11 +4438,11 @@ msgstr "블투 패스쓰루용 커널 드라이버를 분리하는데에 실패 msgid "Failed to download codes." msgstr "코드 다운로드에 실패했습니다." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "덤프에 실패했습니다 %1: 파일을 열 수 없습니다" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "덤프에 실패했습니다 %1: 파일에 쓰기를 실패했습니다" @@ -4580,7 +4581,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "'%1' 를 열기에 실패했습니다" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "블루투스 장치 열기에 실패했습니다: {0}" @@ -4884,11 +4885,11 @@ msgstr "" "게임에서 이슈를 일으킬 것입니다.

잘 모르겠으면, 체" "크 해제해 두세요." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "다음 찾기(&N)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "이전 찾기(&P)" @@ -4896,7 +4897,7 @@ msgstr "이전 찾기(&P)" msgid "Finish Calibration" msgstr "측정 완료" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4916,7 +4917,7 @@ msgstr "체크섬을 고치기" msgid "Fix Checksums Failed" msgstr "실패한 체크섬 고치기" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "고정된 정돈" @@ -4929,8 +4930,8 @@ msgstr "플래그" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5507,7 +5508,7 @@ msgstr "독일어" msgid "Germany" msgstr "독일" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5599,23 +5600,23 @@ msgstr "헤드" msgid "Help" msgstr "도움" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "헥스" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "헥스 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "헥스 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "헥스 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "헥스 바이트 스트링" @@ -6727,7 +6728,7 @@ msgid "Lock Mouse Cursor" msgstr "마우스 커서 가두기" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "로그" @@ -6841,7 +6842,7 @@ msgstr "매핑" msgid "Mask ROM" msgstr "마스크 롬" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "일치 발견" @@ -6867,7 +6868,7 @@ msgstr "Wii 메뉴와 일부 게임에서 느려짐을 유발할지도 모릅니 msgid "Medium" msgstr "중간" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "메모리" @@ -6887,7 +6888,7 @@ msgstr "메모리 카드 관리자" msgid "Memory Override" msgstr "메모리 오버라이드" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "메모리 중단점 옵션" @@ -7206,7 +7207,7 @@ msgstr "아니요" msgid "No Adapter Detected" msgstr "감지된 어댑터가 없습니다" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "정돈 없음" @@ -7220,7 +7221,7 @@ msgstr "오디오 출력 없음" msgid "No Compression" msgstr "압축하지 않음" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "일치 없음" @@ -7420,7 +7421,7 @@ msgstr "오시애니아" msgid "Off" msgstr "끄기" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "오프셋" @@ -7698,7 +7699,7 @@ msgstr "시스텝 업데이트 하기" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "피지컬" @@ -7813,7 +7814,7 @@ msgstr "PlayWiimote에 무비 마무리가 미완성되었습니다. {0} + {1} > msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "PlayWiimote에 무비 마무리가 미완성되었습니다. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8018,14 +8019,14 @@ msgstr "읽기" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "읽고 쓰기" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "읽기 전용" @@ -8658,14 +8659,14 @@ msgstr "스캔을 성공했습니다." msgid "ScrShot" msgstr "스크린샷" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "찾기" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "주소 검색" @@ -8844,7 +8845,7 @@ msgstr "게임 선택" msgid "Select a SD Card Image" msgstr "SD 카드 이미지 선택" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "파일 선택" @@ -9024,7 +9025,7 @@ msgstr "서버 포트" msgid "Server rejected traversal attempt" msgstr "서버가 횡단 시도를 거절했습니다" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "값 설정(&V)" @@ -9037,7 +9038,7 @@ msgstr "blr 설정(&b)" msgid "Set PC" msgstr "PC 설정" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "파일로 부터 값을 설정" @@ -9305,7 +9306,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "코드로 보기" @@ -9385,18 +9386,18 @@ msgstr "Wii 리모트 옆으로" msgid "Signature Database" msgstr "서명 데이터베이스" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "부호화 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "부호화 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "부호화 8" @@ -10033,6 +10034,10 @@ msgstr "타이완" msgid "Take Screenshot" msgstr "스크린샷 찍기" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "테스트" @@ -10143,7 +10148,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "디스크가 읽혀질 수 없었습니다 (위치 {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "삽입되려 했던 디스크를 찾을 수 없습니다." @@ -10159,11 +10164,11 @@ msgstr "" "\n" "NAND 고치기 시도를 하고 싶습니까?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "에뮬된 Wii 콘솔이 업데이트되었습니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "에뮬된 Wii 콘솔이 이미 최신입니다." @@ -10205,7 +10210,7 @@ msgstr "" "파일 %1 이 이미 존재합니다.\n" "바꾸시겠습니까?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10213,7 +10218,7 @@ msgstr "" "{0} 파일은 쓰기 위해 열릴 수 없었습니다. 다른 프로그램에 의해 이미 열려있는" "지 확인해주세요." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "{0} 파일이 이미 열려 있습니다, 파일 헤더는 기록되지 않을 것입니다." @@ -10247,7 +10252,7 @@ msgstr "게임 ID 가 비정상적으로 짧습니다." msgid "The game ID is {0} but should be {1}." msgstr "게임 ID 가 {0} 이지만 {1} 이어야 합니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "게임 디스크가 사용가능한 업데이트 정보를 가지고 있지 않습니다." @@ -10255,7 +10260,7 @@ msgstr "게임 디스크가 사용가능한 업데이트 정보를 가지고 있 msgid "The game is currently running." msgstr "게임이 현재 구동중입니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10389,7 +10394,7 @@ msgstr "티켓이 올바르게 서명되어 있지 않습니다." msgid "The type of a partition could not be read." msgstr "파티션 종류가 읽혀질 수 없었습니다." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10758,7 +10763,7 @@ msgid "Toggle Aspect Ratio" msgstr "종횡비 토글" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "중단점 토글" @@ -10911,7 +10916,7 @@ msgstr "트리거" msgid "Type" msgstr "타입" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "타입-기반 정돈" @@ -10979,7 +10984,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "RSO 모듈을 자동-감지할 수 없습니다" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "파일 열기가 불가능합니다." @@ -11007,7 +11012,7 @@ msgstr "" "\n" "이 라인을 무시하고 분석을 계속합니까?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "파일 읽기가 불가능합니다." @@ -11062,7 +11067,7 @@ msgstr "미국" msgid "Unknown" msgstr "알려지지 않음" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "알려지지 않은 DVD 명령 {0:08x} - 치명적 오류" @@ -11143,18 +11148,18 @@ msgstr "마우스 커서 풀기" msgid "Unpacking" msgstr "풀기" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "비부호화 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "비부호화 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "비부호화 8" @@ -11189,28 +11194,28 @@ msgstr "돌핀을 닫은 후에 업데이트" msgid "Update available" msgstr "업데이트 사용가능" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "업데이트가 취소되었습니다" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "업데이트가 완료되었습니다" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "업데이트가 실패했습니다" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "업데이트하기" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11424,7 +11429,7 @@ msgstr "유틸리티" msgid "V-Sync" msgstr "수직-동기화" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "값" @@ -11881,7 +11886,7 @@ msgstr "저장 데이터 쓰기" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "쓰기 전용" diff --git a/Languages/po/ms.po b/Languages/po/ms.po index d0599927c1..3ef035af7d 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -338,7 +338,7 @@ msgstr "&Titik Henti" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Batal" @@ -691,7 +691,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -779,7 +779,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Natif (1920x1584) untuk 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -831,7 +831,7 @@ msgstr "6x Natif (3840x3168) untuk 4K" msgid "7x Native (4480x3696)" msgstr "7x Natif (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -899,7 +899,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Cakera A sedia dimasukkan." @@ -948,8 +948,8 @@ msgstr "" msgid "AR Codes" msgstr "Kod AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1114,7 +1114,7 @@ msgstr "" msgid "Add to &watch" msgstr "Tambah untuk &dipantau" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1142,7 +1142,7 @@ msgid "Address" msgstr "Alamat" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1275,7 +1275,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1512,7 +1512,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1573,13 +1573,13 @@ msgstr "Input Latar Belakang" msgid "Backward" msgstr "Undur" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1587,13 +1587,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1822,7 +1822,7 @@ msgstr "Butang" msgid "Buttons" msgstr "Butang" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2230,7 +2230,7 @@ msgstr "Konfigur Output" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Sahkan" @@ -2289,7 +2289,7 @@ msgstr "Sambung Wii Remote" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Sambung ke Internet dan lakukan kemaskini sistem atas-talian?" @@ -2449,7 +2449,7 @@ msgstr "Salin &fungsi" msgid "Copy &hex" msgstr "Salin &heks" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2457,11 +2457,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2505,7 +2505,7 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2513,7 +2513,7 @@ msgstr "" "Tidak dapat memuat turun fail kemaskini dari Nintendo. Sila periksa " "sambungan Internet anda dan cuba lagi." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2521,14 +2521,14 @@ msgstr "" "Tidak dapat memuat turun maklumat dari Nintendo. Sila periksa sambungan " "Internet anda dan cuba lagi." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2537,7 +2537,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2884,7 +2884,7 @@ msgstr "Padam Fail..." msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2916,7 +2916,7 @@ msgstr "Keterangan" msgid "Description:" msgstr "Keterangan:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3064,7 +3064,7 @@ msgstr "Cakera" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3218,8 +3218,8 @@ msgid "Done compressing disc image." msgstr "Selesai memampatkan imej cakera." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Dubel" @@ -3272,7 +3272,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3280,23 +3280,23 @@ msgstr "" msgid "Dummy" msgstr "Semu" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3470,7 +3470,7 @@ msgstr "Kesan" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3764,15 +3764,16 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4140,7 +4141,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4182,7 +4183,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Gagal memadam fail terpilih." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4190,11 +4191,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Gagal muat turun kod." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4318,7 +4319,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Gagal membuka '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4603,11 +4604,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4615,7 +4616,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4635,7 +4636,7 @@ msgstr "Baiki Hasil Tambah Semak" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4648,8 +4649,8 @@ msgstr "Bendera" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5180,7 +5181,7 @@ msgstr "Jerman" msgid "Germany" msgstr "Jerman" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5268,23 +5269,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6332,7 +6333,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6439,7 +6440,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Padanan Ditemui" @@ -6465,7 +6466,7 @@ msgstr "Ia menyebabkan kelembapan dalam menu Wii dan sesetengah permainan." msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Ingatan" @@ -6485,7 +6486,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Pilihan titik henti ingatan" @@ -6795,7 +6796,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "Tiada Penyesuai Dikesan" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6809,7 +6810,7 @@ msgstr "Tiada Output Audio" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Tiada Padanan" @@ -7002,7 +7003,7 @@ msgstr "" msgid "Off" msgstr "Mati" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7278,7 +7279,7 @@ msgstr "Lakukan Kemaskini Sistem" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7395,7 +7396,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7590,14 +7591,14 @@ msgstr "Baca" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Baca dan tulis" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Baca sahaja" @@ -8214,14 +8215,14 @@ msgstr "" msgid "ScrShot" msgstr "CkpSkrin" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Gelintar" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Gelintar Alamat" @@ -8398,7 +8399,7 @@ msgstr "Pilih satu Permainan" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8547,7 +8548,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "Pelayan menolak percubaan travesal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8560,7 +8561,7 @@ msgstr "" msgid "Set PC" msgstr "Tetapkan PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8822,7 +8823,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8889,18 +8890,18 @@ msgstr "Wii Remote Sisi" msgid "Signature Database" msgstr "Pangkalan Data Tandatangan" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9503,6 +9504,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Ambil Cekupan Skrin" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Uji" @@ -9602,7 +9607,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Cakera yang hendak dimasukkan tidak ditemui." @@ -9618,11 +9623,11 @@ msgstr "" "\n" "Anda mahu cuba membaiki NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Konsol Wii teremulasi telah dikemaskinikan." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Konsol Wii teremulasi telah dikemaskinikan." @@ -9658,13 +9663,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9697,7 +9702,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" "Cakera permainan tidak mengandungi apa-apa maklumat kemaskini yang berguna." @@ -9706,7 +9711,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9822,7 +9827,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10157,7 +10162,7 @@ msgid "Toggle Aspect Ratio" msgstr "Togol Nisbah Bidang" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Togol Titik Henti" @@ -10308,7 +10313,7 @@ msgstr "Pemicu" msgid "Type" msgstr "Jenis" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10364,7 +10369,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10388,7 +10393,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10443,7 +10448,7 @@ msgstr "Amerika Syarikat" msgid "Unknown" msgstr "Tidak diketahui" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10519,18 +10524,18 @@ msgstr "" msgid "Unpacking" msgstr "Nyahpek" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10565,28 +10570,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Kemaskini dibatalkan" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Kemaskini selesai" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Kemaskini gagal" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Mengemaskini" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10762,7 +10767,7 @@ msgstr "Utiliti" msgid "V-Sync" msgstr "Segerak-V" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Nilai" @@ -11159,7 +11164,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Tulis sahaja" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index 9e83122e1d..c20fb4152f 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -357,7 +357,7 @@ msgstr "&Brytepunkter" msgid "&Bug Tracker" msgstr "&Feilsporer" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Avbryt" @@ -710,7 +710,7 @@ msgstr "/ Del" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blokker)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -798,7 +798,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "3x opprinnelig størrelse (1920x1584) for 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -850,7 +850,7 @@ msgstr "6x opprinnelig størrelse (3840x3168) for 4K" msgid "7x Native (4480x3696)" msgstr "7x opprinnelig størrelse (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -921,7 +921,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "En plate er i ferd med å bli satt inn." @@ -981,8 +981,8 @@ msgstr "AR-kode" msgid "AR Codes" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1147,7 +1147,7 @@ msgstr "" msgid "Add to &watch" msgstr "Legg til i &overvåkingslisten" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1175,7 +1175,7 @@ msgid "Address" msgstr "Adresse" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Adresserom" @@ -1307,7 +1307,7 @@ msgstr "" msgid "All devices" msgstr "Alle enheter" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1548,7 +1548,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Støtte" @@ -1609,13 +1609,13 @@ msgstr "Bakgrunnsinndata" msgid "Backward" msgstr "Bakover" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Dårlig adresse oppgitt." @@ -1623,13 +1623,13 @@ msgstr "Dårlig adresse oppgitt." msgid "Bad dump" msgstr "Dårlig dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Dårlig verdi angitt." @@ -1858,7 +1858,7 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knapper" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2267,7 +2267,7 @@ msgstr "Sett opp utdata" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekreft" @@ -2326,7 +2326,7 @@ msgstr "Koble til Wii Remote-er" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Koble til Wii Remoter for emulerte kontrollere" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Koble til Internett og utfør nettbasert systemoppdatering?" @@ -2492,7 +2492,7 @@ msgstr "Kopier &funksjon" msgid "Copy &hex" msgstr "Kopier &heksadesimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Kopier adresse" @@ -2500,11 +2500,11 @@ msgstr "Kopier adresse" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Kopier heksadesimal" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2548,7 +2548,7 @@ msgstr "Kunne Ikke opprette klient." msgid "Could not create peer." msgstr "Kunne Ikke opprette likemann." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2556,7 +2556,7 @@ msgstr "" "Kunne ikke laste ned oppdateringsfiler fra Nintendo. Sjekk din " "internettilknytning og prøv igjen." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2564,14 +2564,14 @@ msgstr "" "Kunne ikke laste ned oppdateringsinformasjon fra Nintendo. Sjekk din " "internettilknytning å prøv igjen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2580,7 +2580,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2927,7 +2927,7 @@ msgstr "Slett fil…" msgid "Delete Selected Files..." msgstr "Slett valgte filer..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2959,7 +2959,7 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3107,7 +3107,7 @@ msgstr "Plate" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3262,8 +3262,8 @@ msgid "Done compressing disc image." msgstr "Ferdig med å komprimere disk-avbildningsfil." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Dobbel" @@ -3316,7 +3316,7 @@ msgstr "Trommesett" msgid "Dual Core" msgstr "Dobbelkjerne" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3324,23 +3324,23 @@ msgstr "" msgid "Dummy" msgstr "Juksedukke" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dump &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dump &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dump &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dump &MRAM" @@ -3514,7 +3514,7 @@ msgstr "Effekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effektiv" @@ -3808,15 +3808,16 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4187,7 +4188,7 @@ msgstr "Kunne ikke legge til denne sesjonen i NetPlay-indeksen: %1" msgid "Failed to append to signature file '%1'" msgstr "Kunne ikke legge til på signaturfil '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4229,7 +4230,7 @@ msgstr "Kunne ikke slette NetPlay-minnekort. Verifiser dine skrivetillatelser." msgid "Failed to delete the selected file." msgstr "Klarte ikke å slette valgt fil." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4237,11 +4238,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Nedlasting av koder mislyktes." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Kunne ikke dumpe %1: Kan ikke åpne fil" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Kunne ikke dumpe %1: Kan ikke skrive til fil" @@ -4365,7 +4366,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Klarte ikke å åpne \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4656,11 +4657,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Finn &neste" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Finn &forrige" @@ -4668,7 +4669,7 @@ msgstr "Finn &forrige" msgid "Finish Calibration" msgstr "Fullfør kalibrering" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4688,7 +4689,7 @@ msgstr "Fiks sjekksummer" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4701,8 +4702,8 @@ msgstr "Flagg" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5235,7 +5236,7 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5323,23 +5324,23 @@ msgstr "Head" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6390,7 +6391,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Logg" @@ -6497,7 +6498,7 @@ msgstr "Mapping" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Treff funnet" @@ -6523,7 +6524,7 @@ msgstr "Kan senke ytelse i Wii-menyen og noen spill." msgid "Medium" msgstr "Middels" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Minne" @@ -6543,7 +6544,7 @@ msgstr "Minnekortbehandler" msgid "Memory Override" msgstr "Minneoverstyring" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Minne-stoppunktinnstillinger" @@ -6855,7 +6856,7 @@ msgstr "Nei" msgid "No Adapter Detected" msgstr "Ingen adapter oppdaget" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6869,7 +6870,7 @@ msgstr "Ingen lydavspilling" msgid "No Compression" msgstr "Ingen komprimering" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Ingen treff" @@ -7065,7 +7066,7 @@ msgstr "Oseania" msgid "Off" msgstr "Av" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7344,7 +7345,7 @@ msgstr "Utfør systemoppdatering" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Fysisk" @@ -7460,7 +7461,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7661,14 +7662,14 @@ msgstr "Les" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Skriv og les" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Kun skrivebeskyttet" @@ -8287,14 +8288,14 @@ msgstr "" msgid "ScrShot" msgstr "SkjDump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Søk" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Søkeadresse" @@ -8472,7 +8473,7 @@ msgstr "Velg et spill" msgid "Select a SD Card Image" msgstr "Velg en SD-kortbilledfil" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8621,7 +8622,7 @@ msgstr "Serverport" msgid "Server rejected traversal attempt" msgstr "Tjeneren avslo traverseringsforsøk" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Sett &verdi" @@ -8634,7 +8635,7 @@ msgstr "" msgid "Set PC" msgstr "Sett programteller" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8898,7 +8899,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Vis i kode" @@ -8965,18 +8966,18 @@ msgstr "Sideveis Wii Remote" msgid "Signature Database" msgstr "Signaturdatabase" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9583,6 +9584,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Ta skjermbilde" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -9682,7 +9687,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken som skulle settes inn ble ikke funnet." @@ -9698,11 +9703,11 @@ msgstr "" "\n" "Vil du forsøke å reparere din NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Den emulerte Wii-konsollen har blitt oppdatert." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Den emulerte Wii-konsollen er allerede oppdatert." @@ -9740,13 +9745,13 @@ msgstr "" "Filen %1 finnes allerede.\n" "Vil du erstatte den?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9780,7 +9785,7 @@ msgstr "Spill-IDen er uvanlig kort." msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "Spillplata inneholder ikke noen brukbar oppdateringsinformasjon." @@ -9788,7 +9793,7 @@ msgstr "Spillplata inneholder ikke noen brukbar oppdateringsinformasjon." msgid "The game is currently running." msgstr "Spillet kjøres for øyeblikket." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9913,7 +9918,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "Typen til partisjonen kunne ikke leses." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10272,7 +10277,7 @@ msgid "Toggle Aspect Ratio" msgstr "Skift bildestørrelse" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Slå av/på stoppunkt" @@ -10425,7 +10430,7 @@ msgstr "Triggere" msgid "Type" msgstr "Type" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10481,7 +10486,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10509,7 +10514,7 @@ msgstr "" "\n" "Ønsker du å ignorere denne linjen å fortsette fortolkning?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10564,7 +10569,7 @@ msgstr "USA" msgid "Unknown" msgstr "Ukjent" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10640,18 +10645,18 @@ msgstr "" msgid "Unpacking" msgstr "Utpakning" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10686,28 +10691,28 @@ msgstr "Oppdater etter at Dolphin er lukket" msgid "Update available" msgstr "Oppdatering tilgjengelig" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Oppdatering avbrutt" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Oppdatering fullført" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Oppdatering mislyktes" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Oppdaterer" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10881,7 +10886,7 @@ msgstr "Verktøyet" msgid "V-Sync" msgstr "Vertikal synkronisering" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Verdi" @@ -11280,7 +11285,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Bare skriv" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 7eafcb12d9..41f4a275aa 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mike van der Kuijl , 2020-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -366,7 +366,7 @@ msgstr "&Breakpoints" msgid "&Bug Tracker" msgstr "&Bug Tracker" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Annuleren" @@ -578,7 +578,7 @@ msgstr "&Alleen-Lezen Modus" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&Ververs Lijst" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -719,7 +719,7 @@ msgstr "/ Delen" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blokken)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 Bytes" @@ -807,7 +807,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Native (1920x1584) voor 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 Bytes" @@ -859,7 +859,7 @@ msgstr "6x Native (3840x3168) voor 4K" msgid "7x Native (4480x3696)" msgstr "7x Native (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 Bytes" @@ -936,7 +936,7 @@ msgstr "" "\n" "Het installeren van deze WAD zal het onherstelbaar vervangen. Doorgaan?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Er ligt al een schijf in de lade." @@ -1001,8 +1001,8 @@ msgstr "AR Code" msgid "AR Codes" msgstr "AR Codes" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1184,7 +1184,7 @@ msgstr "Plaats geheugen breakpoint" msgid "Add to &watch" msgstr "Toevoegen aan &watchvenster" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Voeg toe aan watch" @@ -1212,7 +1212,7 @@ msgid "Address" msgstr "Adres" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Adresruimte" @@ -1229,7 +1229,7 @@ msgstr "Adres:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "Stelt het bereik van de gesimuleerde stick in." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1293,7 +1293,7 @@ msgstr "Geavanceerd" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "Geavanceerde Instellingen" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1354,7 +1354,7 @@ msgstr "Alles Unsigned Integer" msgid "All devices" msgstr "Alle apparaten" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Alle Bestanden (*)" @@ -1603,7 +1603,7 @@ msgstr "" "

In geval van twijfel leeg laten." #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Auxiliary" @@ -1667,13 +1667,13 @@ msgstr "Achtergrondinvoer" msgid "Backward" msgstr "Achteruit" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "Slechte Waarde Gegeven" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Verkeerd adres opgegeven." @@ -1681,13 +1681,13 @@ msgstr "Verkeerd adres opgegeven." msgid "Bad dump" msgstr "Slechte dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Slechte offset gegeven." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Verkeerde waarde opgegeven." @@ -1919,9 +1919,9 @@ msgstr "Knop" msgid "Buttons" msgstr "Knoppen" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "Door:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2348,7 +2348,7 @@ msgstr "Configureer Uitvoer" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bevestigen" @@ -2407,7 +2407,7 @@ msgstr "Verbind Wii-afstandsbedieningen" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Verbind Wii-afstandbediening voor Geëmuleerde Controllers" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Verbinding maken met internet en een online systeemupdate uitvoeren?" @@ -2589,7 +2589,7 @@ msgstr "Kopieer &functie" msgid "Copy &hex" msgstr "Kopieer &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Kopieer Adres" @@ -2597,11 +2597,11 @@ msgstr "Kopieer Adres" msgid "Copy Failed" msgstr "Kopie mislukt" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Kopieer Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Kopieer Waarde" @@ -2645,7 +2645,7 @@ msgstr "Kon geen client maken." msgid "Could not create peer." msgstr "Kon geen peer maken." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2653,7 +2653,7 @@ msgstr "" "Kon geen updatebestanden van Nintendo downloaden. Controleer uw " "internetverbinding en probeer het opnieuw." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2661,7 +2661,7 @@ msgstr "" "Kon geen updateinformatie van Nintendo downloaden. Controleer uw " "internetverbinding en probeer het opnieuw." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2671,7 +2671,7 @@ msgstr "" "\n" "De geëmuleerde console stopt nu." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2685,7 +2685,7 @@ msgstr "" "\n" "De geëmuleerde console stopt nu." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3068,7 +3068,7 @@ msgstr "Verwijder Bestand..." msgid "Delete Selected Files..." msgstr "Verwijder Geselecteerde Bestanden..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Verwijder het bestaande bestand '{0}'?" @@ -3100,9 +3100,9 @@ msgstr "Beschrijving" msgid "Description:" msgstr "Beschrijving:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "Beschrijving:" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" @@ -3266,7 +3266,7 @@ msgstr "Schijf" msgid "Discard" msgstr "Verwerpen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "Weergavetype" @@ -3439,8 +3439,8 @@ msgid "Done compressing disc image." msgstr "Comprimeren van schijfafbeelding voltooid." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3493,7 +3493,7 @@ msgstr "Drumstel" msgid "Dual Core" msgstr "Dual-Core" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "Dubbele Weergave" @@ -3501,23 +3501,23 @@ msgstr "Dubbele Weergave" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "Dump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dump &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dump &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dump &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dump &MRAM" @@ -3713,7 +3713,7 @@ msgstr "Effect" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effectief" @@ -3815,7 +3815,7 @@ msgstr "Activeer FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "Schakel Grafische Mods in" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -4048,15 +4048,16 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4449,7 +4450,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough: {0}" @@ -4494,7 +4495,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Kon het geselecteerde bestand niet verwijderen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Kon kernel driver voor BT passthrough niet ontkoppelen: {0}" @@ -4502,11 +4503,11 @@ msgstr "Kon kernel driver voor BT passthrough niet ontkoppelen: {0}" msgid "Failed to download codes." msgstr "Kon codes niet downloaden." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Kon %1 niet dumpen: Kon het bestand niet openen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Kon %1 niet dumpen: Kon niet naar het bestand schrijven" @@ -4645,7 +4646,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Kon '%1' niet openen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Kon Bluetooth-apparaat niet openen: {0}" @@ -4951,11 +4952,11 @@ msgstr "" "veroorzaakt glitches in andere games.

In geval van " "twijfel leeg laten." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Zoek &Volgende" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Zoek &Vorige" @@ -4963,7 +4964,7 @@ msgstr "Zoek &Vorige" msgid "Finish Calibration" msgstr "Kalibratie Afronden" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4983,7 +4984,7 @@ msgstr "Herstel Controlesommen" msgid "Fix Checksums Failed" msgstr "Herstel Controlesom Mislukt" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "Vaste Uitlijning" @@ -4996,8 +4997,8 @@ msgstr "Flags" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5533,7 +5534,7 @@ msgstr "GameCube TAS Invoer %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "Stickbereik Grootte" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5582,7 +5583,7 @@ msgstr "Duits" msgid "Germany" msgstr "Duitsland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "GetDeviceList mislukt: {0}" @@ -5606,7 +5607,7 @@ msgstr "Grafisch" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "Grafische Mods" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5615,7 +5616,7 @@ msgstr "Graphics Schakelaars" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "Grafische mods zijn momenteel uitgeschakeld." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5676,23 +5677,23 @@ msgstr "Hoofd" msgid "Help" msgstr "Help" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hex" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Hex Byte String" @@ -6803,6 +6804,8 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"Laadt grafische mods van User/Load/GraphicsMods/." +"

In geval van twijfel leeg laten." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6813,7 +6816,7 @@ msgid "Lock Mouse Cursor" msgstr "Vergrendel Muiscursor" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Logboek" @@ -6927,7 +6930,7 @@ msgstr "Mapping" msgid "Mask ROM" msgstr "Mask ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Overeenkomst Gevonden" @@ -6953,7 +6956,7 @@ msgstr "Kan leiden tot vertraging van het Wii-menu en een aantal spellen." msgid "Medium" msgstr "Medium" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Geheugen" @@ -6973,7 +6976,7 @@ msgstr "Geheugenkaart Beheer" msgid "Memory Override" msgstr "Geheugen Overschrijven" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Geheugen breakpoint opties" @@ -7301,7 +7304,7 @@ msgstr "Nee" msgid "No Adapter Detected" msgstr "Geen Adapter Gedetecteerd" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "Geen Uitlijning" @@ -7315,7 +7318,7 @@ msgstr "Geen Audio-uitvoer" msgid "No Compression" msgstr "Geen Compressie" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Geen Overeenkomst" @@ -7517,7 +7520,7 @@ msgstr "Oceanië" msgid "Off" msgstr "Uit" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Offset" @@ -7795,7 +7798,7 @@ msgstr "Voer Systeemupdate Uit" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Fysieke" @@ -7913,7 +7916,7 @@ msgstr "Vroegtijdig opname einde in PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Vroegtijdig opname einde in PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8120,14 +8123,14 @@ msgstr "Lezen" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Lezen en schrijven" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Alleen lezen" @@ -8765,14 +8768,14 @@ msgstr "Scan gelukt." msgid "ScrShot" msgstr "ScrShot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Zoeken" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Zoek Adres" @@ -8951,7 +8954,7 @@ msgstr "Selecteer een Spel" msgid "Select a SD Card Image" msgstr "Selecteer een SD-kaartafbeelding" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Selecteer een bestand" @@ -9136,7 +9139,7 @@ msgstr "Server Poort" msgid "Server rejected traversal attempt" msgstr "Server heeft traversal poging geweigerd" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Stel &Waarde In" @@ -9149,7 +9152,7 @@ msgstr "Stel &blr in" msgid "Set PC" msgstr "Stel PC In" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Stel Waarde in Vanuit Bestand" @@ -9418,7 +9421,7 @@ msgstr "In Code Weergeven" msgid "Show in Memory" msgstr "In Geheugen Weergeven" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "In code tonen" @@ -9497,18 +9500,18 @@ msgstr "Wii-afstandsbediening Zijwaarts" msgid "Signature Database" msgstr "Handtekeningdatabase" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "Signed 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "Signed 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "Signed 8" @@ -10150,6 +10153,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Maak Screenshot" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -10262,7 +10269,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Schijf kan niet worden gelezen (op {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" "De schijf die op het punt stond geplaatst te worden, kon niet worden " @@ -10280,11 +10287,11 @@ msgstr "" "\n" "Wilt u proberen de NAND te repareren?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "De geëmuleerde Wii-console is geupdate." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "De geëmuleerde Wii-console is al up-to-date." @@ -10326,7 +10333,7 @@ msgstr "" "Bestand %1 bestaat al.\n" "Wilt u het vervangen?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10334,7 +10341,7 @@ msgstr "" "Het bestand {0} kan niet worden geopend om te schrijven. Controleer of het " "bestand al geopend is in een ander programma." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" "Het bestand {0} is al geopend. De bestandsheader zal niet worden " @@ -10374,7 +10381,7 @@ msgstr "Het spel ID is ongewoon kort." msgid "The game ID is {0} but should be {1}." msgstr "Het spel ID is {0} maar zou {1} moeten zijn." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "De spelschijf bevat geen bruikbare update informatie." @@ -10382,7 +10389,7 @@ msgstr "De spelschijf bevat geen bruikbare update informatie." msgid "The game is currently running." msgstr "Het spel wordt momenteel uitgevoerd." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10523,7 +10530,7 @@ msgstr "Het ticket is niet correct ondertekend." msgid "The type of a partition could not be read." msgstr "Het type van een partitie kon niet worden gelezen." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10632,6 +10639,8 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"Deze build van Dolphin is niet gecompileerd voor uw CPU.\n" +"Draai alstublieft de ARM64 build van Dolphin voor een betere ervaring." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 @@ -10905,7 +10914,7 @@ msgid "Toggle Aspect Ratio" msgstr "Schakel Beeldverhouding Om" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Schakel Breakpoint Om" @@ -11058,7 +11067,7 @@ msgstr "Trekkers" msgid "Type" msgstr "Type" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "Type gebaseerde Uitlijning" @@ -11127,7 +11136,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Kan RSO-module niet automatisch detecteren" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "Niet in staat bestand te openen." @@ -11156,7 +11165,7 @@ msgstr "" "\n" "Wilt u deze regel negeren en verder gaan met verwerken?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "Niet in staat bestand te lezen." @@ -11212,7 +11221,7 @@ msgstr "Verenigde Staten" msgid "Unknown" msgstr "Onbekend" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Onbekend DVD commando {0:08x} - fatale fout" @@ -11294,18 +11303,18 @@ msgstr "Ontgrendel Cursor" msgid "Unpacking" msgstr "Uitpakken" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "Unsigned 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "Unsigned 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "Unsigned 8" @@ -11340,28 +11349,28 @@ msgstr "Update na het sluiten van Dolphin" msgid "Update available" msgstr "Update beschikbaar" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Update geannuleerd" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Update voltooid" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Update mislukt" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Aan het updaten" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11581,7 +11590,7 @@ msgstr "Hulpprogramma" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Waarde" @@ -12047,7 +12056,7 @@ msgstr "Schrijf Save Data" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Alleen schrijven" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index 05d7c01fa4..495553acf3 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -359,7 +359,7 @@ msgstr "&Punkty przerwania" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Anuluj" @@ -712,7 +712,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -800,7 +800,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Natywna (1920x1584) dla 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -852,7 +852,7 @@ msgstr "6x Natywna (3840x3168) dla 4K" msgid "7x Native (4480x3696)" msgstr "7x Natywna (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -920,7 +920,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Dysk już jest gotowy do włożenia." @@ -969,8 +969,8 @@ msgstr "" msgid "AR Codes" msgstr "Kody AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Add to &watch" msgstr "Dodaj do &oglądania" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1163,7 +1163,7 @@ msgid "Address" msgstr "Adres" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1297,7 +1297,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1534,7 +1534,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Pomocnicza" @@ -1595,13 +1595,13 @@ msgstr "Wejście w tle" msgid "Backward" msgstr "W tył" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1609,13 +1609,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1842,7 +1842,7 @@ msgstr "Przycisk" msgid "Buttons" msgstr "Przyciski" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2250,7 +2250,7 @@ msgstr "Skonfiguruj wyjście" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Potwierdź" @@ -2309,7 +2309,7 @@ msgstr "Połącz Wiiloty" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Połączyć z Internetem i przeprowadzić aktualizację systemu?" @@ -2469,7 +2469,7 @@ msgstr "Kopiuj &funkcję" msgid "Copy &hex" msgstr "Kopiuj &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2477,11 +2477,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2525,7 +2525,7 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2533,7 +2533,7 @@ msgstr "" "Nie można było pobrać plików aktualizacji od Nintendo. Proszę sprawdź " "połączenie Internetowe i spróbuj ponownie." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2541,14 +2541,14 @@ msgstr "" "Nie można było pobrać informacji o aktualizacji od Nintendo. Proszę sprawdź " "połączenie Internetowe i spróbuj ponownie." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2557,7 +2557,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2900,7 +2900,7 @@ msgstr "Usuń plik..." msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2932,7 +2932,7 @@ msgstr "Opis" msgid "Description:" msgstr "Opis:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3080,7 +3080,7 @@ msgstr "Dysk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3234,8 +3234,8 @@ msgid "Done compressing disc image." msgstr "Zakończono kompresję obrazu płyty." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3288,7 +3288,7 @@ msgstr "" msgid "Dual Core" msgstr "Dwa rdzenie" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3296,23 +3296,23 @@ msgstr "" msgid "Dummy" msgstr "Atrapa" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3486,7 +3486,7 @@ msgstr "Efekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3780,15 +3780,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4157,7 +4158,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4199,7 +4200,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Nie udało się usunąć wybranego pliku." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4207,11 +4208,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Nie udało się pobrać kodów." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4335,7 +4336,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Nie udało się otworzyć '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4620,11 +4621,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4632,7 +4633,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4650,7 +4651,7 @@ msgstr "Napraw sumy kontrolne" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4663,8 +4664,8 @@ msgstr "Flagi" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5195,7 +5196,7 @@ msgstr "Niemiecki" msgid "Germany" msgstr "Niemcy" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5283,23 +5284,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6346,7 +6347,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6453,7 +6454,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Trafienie znalezione" @@ -6479,7 +6480,7 @@ msgstr "Może powodować spowolnienie w Wii Menu i niektórych grach." msgid "Medium" msgstr "Umiarkowany" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Pamięć" @@ -6499,7 +6500,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6805,7 +6806,7 @@ msgstr "Nie" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6819,7 +6820,7 @@ msgstr "Bez wyjścia audio" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Brak trafień" @@ -7010,7 +7011,7 @@ msgstr "Oceania" msgid "Off" msgstr "Wyłączone" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7286,7 +7287,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7401,7 +7402,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7596,14 +7597,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Odczyt i zapis" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8218,14 +8219,14 @@ msgstr "" msgid "ScrShot" msgstr "Zrzut ekranu" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Szukaj" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Szukaj adresu" @@ -8402,7 +8403,7 @@ msgstr "Wybierz grę" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8551,7 +8552,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8564,7 +8565,7 @@ msgstr "" msgid "Set PC" msgstr "Ustaw PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8828,7 +8829,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8895,18 +8896,18 @@ msgstr "Wiilot trzymany poziomo" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9509,6 +9510,10 @@ msgstr "Tajwan" msgid "Take Screenshot" msgstr "Zrób zrzut ekranu" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Testuj" @@ -9606,7 +9611,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Dysk, który miał być włożony nie mógł zostać odnaleziony." @@ -9618,11 +9623,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9658,13 +9663,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9697,7 +9702,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "Dysk gry nie zawiera żadnych użytecznych informacji." @@ -9705,7 +9710,7 @@ msgstr "Dysk gry nie zawiera żadnych użytecznych informacji." msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9818,7 +9823,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10148,7 +10153,7 @@ msgid "Toggle Aspect Ratio" msgstr "Przełącz proporcje obrazu" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Przełącz punkt przerwania" @@ -10299,7 +10304,7 @@ msgstr "Spusty" msgid "Type" msgstr "Typ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10355,7 +10360,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10375,7 +10380,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10428,7 +10433,7 @@ msgstr "Stany Zjednoczone" msgid "Unknown" msgstr "Nieznany" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10504,18 +10509,18 @@ msgstr "" msgid "Unpacking" msgstr "Rozpakowywanie" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10550,28 +10555,28 @@ msgstr "Zaktualizuj po zamknięciu programu Dolphin" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Aktualizacja anulowana" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Aktualizacja zakończona" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Aktualizacja nie powiodła się" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Aktualizowanie" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10743,7 +10748,7 @@ msgstr "Narzędzia" msgid "V-Sync" msgstr "Synchronizacja pionowa" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Wartość" @@ -11140,7 +11145,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 91bb589f3b..5c7ae8dc4b 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -324,7 +324,7 @@ msgstr "&Pontos de partida" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -677,7 +677,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -817,7 +817,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -885,7 +885,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -932,8 +932,8 @@ msgstr "" msgid "AR Codes" msgstr "Códigos AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1098,7 +1098,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1126,7 +1126,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1249,7 +1249,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1486,7 +1486,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1547,13 +1547,13 @@ msgstr "Introdução em segundo plano" msgid "Backward" msgstr "Retroceder" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1561,13 +1561,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1794,7 +1794,7 @@ msgstr "" msgid "Buttons" msgstr "Botões" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2199,7 +2199,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2258,7 +2258,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2418,7 +2418,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2426,11 +2426,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2474,26 +2474,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2502,7 +2502,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2845,7 +2845,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2877,7 +2877,7 @@ msgstr "Descrição" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3025,7 +3025,7 @@ msgstr "Disco" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3176,8 +3176,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3230,7 +3230,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3238,23 +3238,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3428,7 +3428,7 @@ msgstr "Efeito" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3716,15 +3716,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4090,7 +4091,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4132,7 +4133,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4140,11 +4141,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Falha ao descarregar códigos" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4266,7 +4267,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4551,11 +4552,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4563,7 +4564,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4581,7 +4582,7 @@ msgstr "Corrigir Checksums" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4594,8 +4595,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5126,7 +5127,7 @@ msgstr "Alemão" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5214,23 +5215,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6266,7 +6267,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Relatório" @@ -6373,7 +6374,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6399,7 +6400,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6419,7 +6420,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6725,7 +6726,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6739,7 +6740,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6930,7 +6931,7 @@ msgstr "" msgid "Off" msgstr "Desligado" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7204,7 +7205,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7319,7 +7320,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7512,14 +7513,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8134,14 +8135,14 @@ msgstr "" msgid "ScrShot" msgstr "ScrShot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8318,7 +8319,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8467,7 +8468,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8480,7 +8481,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8739,7 +8740,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8806,18 +8807,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9418,6 +9419,10 @@ msgstr "" msgid "Take Screenshot" msgstr "Tirar Screenshot" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Teste" @@ -9515,7 +9520,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9527,11 +9532,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9567,13 +9572,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9606,7 +9611,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9614,7 +9619,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9727,7 +9732,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10048,7 +10053,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10199,7 +10204,7 @@ msgstr "Gatilhos" msgid "Type" msgstr "Tipo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10255,7 +10260,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10275,7 +10280,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10328,7 +10333,7 @@ msgstr "" msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10404,18 +10409,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10450,28 +10455,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10643,7 +10648,7 @@ msgstr "Utilidade" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valor" @@ -11040,7 +11045,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 3e3cf1854a..e305e071c2 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Runo , 2013\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" @@ -385,7 +385,7 @@ msgstr "&Pontos de Interrupção" msgid "&Bug Tracker" msgstr "&Bug Tracker" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Cancelar" @@ -597,7 +597,7 @@ msgstr "Modo &Somente Leitura" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&Atualizar Lista" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -738,7 +738,7 @@ msgstr "/ Dividir" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbits (2043 blocos)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 Bytes" @@ -826,7 +826,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x Nativa (1920x1584) para 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 Bytes" @@ -878,7 +878,7 @@ msgstr "6x Nativa (3840x3168) para 4K" msgid "7x Native (4480x3696)" msgstr "7x Nativa (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 Bytes" @@ -955,7 +955,7 @@ msgstr "" "\n" "Instalar este WAD substituirá permanentemente a versão anterior. Continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Um disco já está prestes a ser inserido." @@ -1019,8 +1019,8 @@ msgstr "Códigos AR" msgid "AR Codes" msgstr "Códigos AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1205,7 +1205,7 @@ msgstr "Adicionar ponto de interrupção da memória" msgid "Add to &watch" msgstr "Adicionar a &observação" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Adicionar a observação" @@ -1233,7 +1233,7 @@ msgid "Address" msgstr "Endereço" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Espaço do Endereço" @@ -1250,7 +1250,7 @@ msgstr "Endereço:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "Ajusta o raio do alvo do portão do controle simulado." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1315,7 +1315,7 @@ msgstr "Avançado" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "Configurações Avançadas" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1376,7 +1376,7 @@ msgstr "Todos os Inteiros Não Assinados" msgid "All devices" msgstr "Todos os dispositivos" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Todos os arquivos (*)" @@ -1626,7 +1626,7 @@ msgstr "" "
" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Auxiliar" @@ -1690,13 +1690,13 @@ msgstr "Entrada de Dados em Segundo Plano" msgid "Backward" msgstr "Para trás" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "Valor Ruim Dado" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Endereço ruim fornecido." @@ -1704,13 +1704,13 @@ msgstr "Endereço ruim fornecido." msgid "Bad dump" msgstr "Cópia com erros" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Deslocamento ruim fornecido." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Valor ruim fornecido." @@ -1945,9 +1945,9 @@ msgstr "Botão" msgid "Buttons" msgstr "Botões" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "Autor:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2376,7 +2376,7 @@ msgstr "Configurar a Saída dos Dados" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmar" @@ -2435,7 +2435,7 @@ msgstr "Conectar Wii Remotes" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Conectar Wii Remotes aos Controles Emulados" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Conectar a internet e realizar uma atualização online do sistema?" @@ -2618,7 +2618,7 @@ msgstr "Copiar &função" msgid "Copy &hex" msgstr "Copiar &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Copiar Endereço" @@ -2626,11 +2626,11 @@ msgstr "Copiar Endereço" msgid "Copy Failed" msgstr "Falha ao Copiar" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Copiar Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Valor da Cópia" @@ -2674,7 +2674,7 @@ msgstr "Não foi possível criar o cliente." msgid "Could not create peer." msgstr "Não foi possível criar o peer." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2682,7 +2682,7 @@ msgstr "" "Não foi possível baixar os arquivos de atualização dos servidores da " "Nintendo. Por favor, verifique sua conexão com a Internet e tente novamente." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2690,7 +2690,7 @@ msgstr "" "Não foi possível baixar as informações de atualização dos servidores da " "Nintendo. Por favor, verifique sua conexão com a Internet e tente novamente." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2701,7 +2701,7 @@ msgstr "" "\n" "A emulação do console será interrompida." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2717,7 +2717,7 @@ msgstr "" "\n" "A emulação do console será interrompida." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2892,13 +2892,11 @@ msgstr "D-Pad" #: Source/Core/Core/FifoPlayer/FifoDataFile.cpp:229 msgid "DFF file magic number is incorrect: got {0:08x}, expected {1:08x}" -msgstr "" -"O número mágico do arquivo DFf está incorreto: obteve {0:08x}, esperado " -"{1:08x}" +msgstr "Cabeçalho do DFF incorreto: {0:08x} encontrado, {1:08x} esperado" #: Source/Core/Core/FifoPlayer/FifoDataFile.cpp:219 msgid "DFF file size is 0; corrupt/incomplete file?" -msgstr "O tamanho do arquivo é 0; arquivo corrompido/incompleto?" +msgstr "O tamanho do DFF é 0; arquivo corrompido/incompleto?" #: Source/Core/Core/HW/WiimoteEmu/Extension/Turntable.cpp:47 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuExtension.cpp:147 @@ -2967,11 +2965,11 @@ msgstr "Tipo dos Dados" #: Source/Core/DolphinQt/GCMemcardManager.cpp:848 msgid "Data in area of file that should be unused." -msgstr "Os dados na área do arquivo que não deveriam ser usados." +msgstr "Existem dados em áreas do arquivo que não deveriam ser usadas." #: Source/Core/DolphinQt/GCMemcardManager.cpp:865 msgid "Data in unrecognized format or corrupted." -msgstr "Dados em formato não reconhecido ou corrompido." +msgstr "Os dados estão num formato não reconhecido ou corrompido." #: Source/Core/DolphinQt/GCMemcardManager.cpp:377 msgid "Data inconsistency in GCMemcardManager, aborting action." @@ -3102,7 +3100,7 @@ msgstr "Excluir Arquivo..." msgid "Delete Selected Files..." msgstr "Excluir Arquivos Selecionados..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Excluir o arquivo existente '{0}'?" @@ -3134,9 +3132,9 @@ msgstr "Descrição" msgid "Description:" msgstr "Descrição:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "Descrição:" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" @@ -3182,7 +3180,7 @@ msgstr "Dispositivo:" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:133 msgid "Did not recognize %1 as a valid Riivolution XML file." -msgstr "Não reconheceu %1 como um arquivo XML válido do Riivolution." +msgstr "%1 não reconhecido como um arquivo XML válido do Riivolution." #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:99 msgid "Diff" @@ -3304,7 +3302,7 @@ msgstr "Disco" msgid "Discard" msgstr "Descartar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "Tipo de Exibição" @@ -3366,7 +3364,7 @@ msgstr "Decodificador Dolby Pro Logic II" #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:219 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:230 msgid "Dolphin FIFO Log (*.dff)" -msgstr "Registro do FIFO no Dolphin (*.dff)" +msgstr "Registro FIFO do Dolphin (*.dff)" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:327 msgid "Dolphin Game Mod Preset" @@ -3477,8 +3475,8 @@ msgid "Done compressing disc image." msgstr "Compressão de imagem do disco concluída." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Dobro" @@ -3531,7 +3529,7 @@ msgstr "Bateria" msgid "Dual Core" msgstr "Dual Core" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "Visualização Dupla" @@ -3539,23 +3537,23 @@ msgstr "Visualização Dupla" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "Dumpar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Extrair &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Extrair &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Extrair &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Extrair &MRAM" @@ -3757,7 +3755,7 @@ msgstr "Efeito" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Efetivo" @@ -3799,7 +3797,7 @@ msgid "" "Current: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -"Incompatibilidade do tamanho da memória emulada!\n" +"Os ajustes de memória emulada são diferentes!\n" "Atual: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" @@ -3859,7 +3857,7 @@ msgstr "Ativar FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "Ativar Mods Gráficos" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -4030,7 +4028,7 @@ msgid "" "\n" "Aborting import." msgstr "" -"Encontrou os seguintes erros enquanto abria os arquivos dos saves:\n" +"Foram encontrados os seguintes erros ao abrir os arquivos de jogos salvos:\n" "%1\n" "\n" "Abortando importação." @@ -4092,15 +4090,16 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4234,16 +4233,16 @@ msgid "" "Error: Trying to access Shift JIS fonts but they are not loaded. Games may " "not show fonts correctly, or crash." msgstr "" -"Erro: Tentando acessar as fontes Shift JIS mas elas não estão carregadas. Os " -"jogos podem não mostrar as fontes corretamente ou sofrer um crash." +"ERRO: Tentando acessar as fontes Shift JIS, mas elas não foram carregadas. " +"Os jogos podem não mostrar as fontes corretamente, ou travarem." #: Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:331 msgid "" "Error: Trying to access Windows-1252 fonts but they are not loaded. Games " "may not show fonts correctly, or crash." msgstr "" -"Erro: Tentando acessar as fontes Windows-1252 mas elas não estão carregadas. " -"Os jogos podem não mostrar as fontes corretamente ou sofrer um crash." +"ERRO: Tentando acessar as fontes Windows-1252, mas elas não foram " +"carregadas. Os jogos podem não mostrar as fontes corretamente, ou travarem." #: Source/Core/DiscIO/VolumeVerifier.cpp:1298 msgid "Errors were found in {0} blocks in the {1} partition." @@ -4489,7 +4488,7 @@ msgstr "Falha ao adicionar essa sessão ao indexador do NetPlay: %1" msgid "Failed to append to signature file '%1'" msgstr "Falha ao anexar ao arquivo de assinatura '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" "Falha ao solicitar acesso à interface para o redirecionamento Bluetooth: {0}" @@ -4536,7 +4535,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Falha ao excluir o arquivo selecionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "Falha ao descarregar o driver do kernel para o redirecionamento Bluetooth: " @@ -4546,11 +4545,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Falha ao baixar os códigos." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Falha no despejo de %1: Não foi possível abrir o arquivo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Falha no despejo de %1: Falha ao escrever no arquivo" @@ -4690,7 +4689,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Falha ao abrir '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Falha ao acessar o dispositivo Bluetooth: {0}" @@ -5007,11 +5006,11 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Achar o &Próximo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Achar o &Anterior" @@ -5019,7 +5018,7 @@ msgstr "Achar o &Anterior" msgid "Finish Calibration" msgstr "Concluir Calibração" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -5039,7 +5038,7 @@ msgstr "Corrigir checksums" msgid "Fix Checksums Failed" msgstr "Falha ao Corrigir Checksums" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "Alinhamento Fixo" @@ -5052,8 +5051,8 @@ msgstr "Bandeiras" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5192,7 +5191,7 @@ msgstr "Intervalo de Quadros" #: Source/Core/VideoCommon/RenderBase.cpp:1803 msgid "Frame dump image(s) '{0}' already exists. Overwrite?" -msgstr "A(s) imagem(ns) do dump do frame '{0}' já existe(m). Sobrescrever?" +msgstr "Imagem(ns) da exportação de quadros '{0}' já existe(m). Substituir?" #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:135 msgid "Frames to Record:" @@ -5527,8 +5526,8 @@ msgstr "O jogo já está rodando!" msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -"O jogo sobrescreveu com outro save de jogo. Corrupção de dados adiante {0:" -"#x}, {1:#x}" +"Jogo sobrescrito por outro jogo salvo. Dados corrompidos adiante {0:#x}, {1:" +"#x}" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" @@ -5593,7 +5592,7 @@ msgstr "Entrada de Dados TAS - Controle de GameCube %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "Tamanho do Portão" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5626,7 +5625,7 @@ msgstr "Gerar uma Nova ID de Estatísticas " #: Source/Core/DolphinQt/CheatSearchWidget.cpp:493 msgid "Generated AR code." -msgstr "Gerar Código do AR." +msgstr "Código AR gerado com sucesso." #: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" @@ -5642,7 +5641,7 @@ msgstr "Alemão" msgid "Germany" msgstr "Alemanha" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "Falha no GetDeviceList: {0}" @@ -5666,7 +5665,7 @@ msgstr "Gráficos" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "Mods Gráficos" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5675,7 +5674,7 @@ msgstr "Configurações" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "Os mods gráficos estão desativados no momento." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5735,23 +5734,23 @@ msgstr "Cabeça" msgid "Help" msgstr "Ajuda" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "Hex" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "String do Byte Hexadecimal" @@ -6869,6 +6868,9 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"Carrega mods gráficos da pasta User/Load/GraphicsMods/." +"

Na dúvida, mantenha essa opção desativada." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6879,7 +6881,7 @@ msgid "Lock Mouse Cursor" msgstr "Travar Cursor do Mouse" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Log" @@ -6995,7 +6997,7 @@ msgstr "Mapeamento" msgid "Mask ROM" msgstr "Mask ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Combinação Achada" @@ -7021,7 +7023,7 @@ msgstr "Pode causar lentidão no Wii Menu e em alguns jogos." msgid "Medium" msgstr "Médio" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Memória" @@ -7041,7 +7043,7 @@ msgstr "Gerenciador de Memory Cards" msgid "Memory Override" msgstr "Alocação de Memória" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Opções do ponto de interrupção da memória" @@ -7370,7 +7372,7 @@ msgstr "Não" msgid "No Adapter Detected" msgstr "Nenhum Adaptador Detectado" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "Sem Alinhamento" @@ -7384,7 +7386,7 @@ msgstr "Desativar Saída de Áudio" msgid "No Compression" msgstr "Sem Compressão" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Sem Combinação" @@ -7457,7 +7459,7 @@ msgstr "Nenhuma gravação carregada." #: Source/Core/DolphinQt/GameList/GameList.cpp:758 msgid "No save data found." -msgstr "Não foram achados dados dos saves." +msgstr "Nenhum jogo salvo encontrado." #: Source/Core/Core/State.cpp:726 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" @@ -7586,7 +7588,7 @@ msgstr "Oceânia" msgid "Off" msgstr "Desligado" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Deslocamento" @@ -7637,7 +7639,7 @@ msgstr "Abrir log do FIFO" #: Source/Core/DolphinQt/GameList/GameList.cpp:473 msgid "Open GameCube &Save Folder" -msgstr "Abrir a Pasta dos &Saves do GameCube" +msgstr "Abrir Pasta de Dados &Salvos do GameCube" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:60 msgid "Open Riivolution XML..." @@ -7645,7 +7647,7 @@ msgstr "Abrir XML do Riivolution..." #: Source/Core/DolphinQt/GameList/GameList.cpp:466 msgid "Open Wii &Save Folder" -msgstr "Abrir a Pasta dos &Saves do Wii" +msgstr "Abrir Pasta de Dados &Salvos do Wii" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 msgid "Open dump folder" @@ -7864,7 +7866,7 @@ msgstr "Executar Atualização do Sistema" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Físico" @@ -7982,7 +7984,7 @@ msgstr "Fim prematuro do filme no PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Fim prematuro da gravação no PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8190,14 +8192,14 @@ msgstr "Ler" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Ler e gravar" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Somente-leitura" @@ -8835,14 +8837,14 @@ msgstr "Scan bem-sucedido." msgid "ScrShot" msgstr "Screenshot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Pesquisar" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Procurar Endereço" @@ -9023,7 +9025,7 @@ msgstr "Selecione um Jogo" msgid "Select a SD Card Image" msgstr "Selecione uma Imagem do Cartão SD" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Selecione um arquivo" @@ -9209,7 +9211,7 @@ msgstr "Porta do Servidor" msgid "Server rejected traversal attempt" msgstr "O servidor rejeitou a tentativa traversal" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Definir &Valor" @@ -9222,7 +9224,7 @@ msgstr "Definir &blr" msgid "Set PC" msgstr "Definir PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Definir o Valor do Arquivo" @@ -9490,7 +9492,7 @@ msgstr "Mostrar no Código" msgid "Show in Memory" msgstr "Mostrar na Memória" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Mostrar no código" @@ -9570,18 +9572,18 @@ msgstr "Wii Remote na Horizontal" msgid "Signature Database" msgstr "Base de Dados da Assinatura" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "Assinado 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "Assinado 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "Assinou 8" @@ -10149,11 +10151,11 @@ msgstr "Sincronizar Códigos AR/Gecko" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:148 msgid "Sync All Wii Saves" -msgstr "Sincronizar Todos os Saves do Wii" +msgstr "Sincronizar Todos os Dados Salvos do Wii" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:144 msgid "Sync Saves" -msgstr "Sincronizar Saves" +msgstr "Sincronizar Jogos Salvos" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:96 msgid "Sync real Wii Remotes and pair them" @@ -10181,7 +10183,7 @@ msgstr "Sincronizando códigos Gecko..." #: Source/Core/Core/NetPlayClient.cpp:1019 msgid "Synchronizing save data..." -msgstr "Sincronizando os dados dos saves..." +msgstr "Sincronizando dados salvos..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 @@ -10223,6 +10225,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Capturar Tela" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Testar" @@ -10258,7 +10264,9 @@ msgstr "A tabela de hash H3 para a partição {0} não está correta." #: Source/Core/Core/Boot/Boot.cpp:429 msgid "The IPL file is not a known good dump. (CRC32: {0:x})" -msgstr "O arquivo IPL não é um bom dump conhecido. (CRC32: {0:x})" +msgstr "" +"O arquivo IPL não corresponde a nenhuma cópia válida conhecida. (CRC32: {0:" +"x})" #. i18n: This string is referring to a game mode in Super Smash Bros. Brawl called Masterpieces #. where you play demos of NES/SNES/N64 games. Official translations: @@ -10330,14 +10338,14 @@ msgid "" "The disc change to \"{0}\" could not be saved in the .dtm file.\n" "The filename of the disc image must not be longer than 40 characters." msgstr "" -"A mudança de disco pra \"{0}\" não pôde ser salva no arquivo .dtm.\n" -"O nome do arquivo de imagem do disco não deve ser maior do que 40 caracteres." +"A mudança de disco para \"{0}\" não pôde ser salva no arquivo DTM.\n" +"O nome do arquivo da imagem de disco não deve ter mais de 40 caracteres." #: Source/Core/Core/HW/DVD/DVDThread.cpp:346 msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "O disco não pôde ser lido (em {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "O disco que estava prestes a ser inserido não foi encontrado." @@ -10353,11 +10361,11 @@ msgstr "" "\n" "Deseja tentar efetuar um reparo na NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "O console Wii emulado foi atualizado." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "O console Wii emulado já está atualizado." @@ -10399,7 +10407,7 @@ msgstr "" "O arquivo %1 já existe.\n" "Você deseja substituí-lo?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10407,7 +10415,7 @@ msgstr "" "O arquivo {0} não pôde ser aberto pra gravação. Por favor verifique se ele " "já está aberto por outro programa." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" "O arquivo {0} já estava aberto, o cabeçalho do arquivo não será gravado." @@ -10446,7 +10454,7 @@ msgstr "A ID do jogo é muito curta." msgid "The game ID is {0} but should be {1}." msgstr "A ID do jogo é {0} mas deveria ser {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" "O disco do jogo selecionado não contém uma partição de atualização " @@ -10456,7 +10464,7 @@ msgstr "" msgid "The game is currently running." msgstr "Um jogo está atualmente em execução." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10593,7 +10601,7 @@ msgstr "O ticket não foi assinado corretamente." msgid "The type of a partition could not be read." msgstr "O tipo de partição não pôde ser lido." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10681,11 +10689,11 @@ msgstr "O dispositivo USB informado já está na lista de redirecionamento." #: Source/Core/Core/ConfigManager.cpp:267 msgid "This WAD is not bootable." -msgstr "Este WAD não é bootável." +msgstr "Este WAD não é inicializável." #: Source/Core/Core/ConfigManager.cpp:262 msgid "This WAD is not valid." -msgstr "Este WAD não é váldo." +msgstr "Este WAD não é válido." #: Source/Core/Core/ActionReplay.cpp:897 msgid "" @@ -10700,6 +10708,9 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"Essa edição do Dolphin não foi compilada nativamente para o seu " +"processador.\n" +"Por favor utilize a edição ARM64 do Dolphin para obter a melhor experiência." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 @@ -10835,7 +10846,7 @@ msgstr "" #: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." -msgstr "Este título não pode ser iniciado." +msgstr "Este software não pode ser iniciado." #: Source/Core/DiscIO/VolumeVerifier.cpp:924 msgid "This title is set to use an invalid IOS." @@ -10853,10 +10864,10 @@ msgid "" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -"Este título poderia ser incompatível com a emulação HLE do DSP. Tente usar o " -"LLE se isto é homebrew.\n" +"Este software pode ser incompatível com a emulação DSP HLE. Tente usar LLE " +"se for um homebrew.\n" "\n" -"DSPHLE: Ucode desconhecido (CRC = {0:08x}) - forçando o AX." +"DSPHLE: uCode desconhecido (CRC = {0:08x}) - forçando AX." #: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 msgid "" @@ -10865,10 +10876,10 @@ msgid "" "\n" "Unknown ucode (CRC = {0:08x}) - forcing AXWii." msgstr "" -"Este título poderia ser incompatível com a emulação HLE do DSP. Tente usar o " -"LLE se isto é homebrew.\n" +"Este software pode ser incompatível com a emulação DSP HLE. Tente usar LLE " +"se for um homebrew.\n" "\n" -"Ucode desconhecido (CRC = {0:08x}) - forçando o AXWii." +"DSPHLE: uCode desconhecido (CRC = {0:08x}) - forçando AXWii." #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:135 msgid "" @@ -10976,7 +10987,7 @@ msgid "Toggle Aspect Ratio" msgstr "Alternar Proporção de Tela" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Ativar/Desativar Pontos de Interrupção" @@ -11129,7 +11140,7 @@ msgstr "Gatilhos" msgid "Type" msgstr "Tipo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "Alinhamento baseado no tipo" @@ -11199,7 +11210,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Incapaz de auto-detectar o módulo do RSO" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "Não foi possível abrir o arquivo." @@ -11228,7 +11239,7 @@ msgstr "" "\n" "Você gostaria de ignorar esta linha e continuar a analisar?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "Não foi possível ler o arquivo." @@ -11283,7 +11294,7 @@ msgstr "Estados Unidos" msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconhecido do DVD {0:08x} - erro fatal" @@ -11364,18 +11375,18 @@ msgstr "Destravar Cursor" msgid "Unpacking" msgstr "Descomprimindo" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "Não Assinou 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "Não Assinou 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "Não Assinou 8" @@ -11410,28 +11421,28 @@ msgstr "Atualizar após fechar o Dolphin" msgid "Update available" msgstr "Atualização disponível" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Atualização cancelada" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Atualização concluída" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Falha na atualização" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Atualizando" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11653,7 +11664,7 @@ msgstr "Utilidades" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valor" @@ -12128,7 +12139,7 @@ msgstr "Gravar Dados do Save" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Só Gravação" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index 6f69989838..5c1b435f1e 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -323,7 +323,7 @@ msgstr "&Puncte de întrerupere" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -764,7 +764,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -816,7 +816,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -884,7 +884,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -931,8 +931,8 @@ msgstr "" msgid "AR Codes" msgstr "Coduri AR" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1125,7 +1125,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1248,7 +1248,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1485,7 +1485,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1546,13 +1546,13 @@ msgstr "Intrare Fundal" msgid "Backward" msgstr "Înapoi" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1560,13 +1560,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1793,7 +1793,7 @@ msgstr "" msgid "Buttons" msgstr "Butoane" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2198,7 +2198,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2417,7 +2417,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2425,11 +2425,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2473,26 +2473,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2501,7 +2501,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2844,7 +2844,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,7 +2876,7 @@ msgstr "Descriere" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3024,7 +3024,7 @@ msgstr "Disc" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3175,8 +3175,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3229,7 +3229,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3237,23 +3237,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3427,7 +3427,7 @@ msgstr "Efect" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3715,15 +3715,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4089,7 +4090,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4131,7 +4132,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4139,11 +4140,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Descărcarea codurilor a eșuat." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4265,7 +4266,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4550,11 +4551,11 @@ msgid "" "this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4562,7 +4563,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4580,7 +4581,7 @@ msgstr "Remediere Sume de verificare" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4593,8 +4594,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5125,7 +5126,7 @@ msgstr "Germană" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5213,23 +5214,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6267,7 +6268,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Jurnal" @@ -6374,7 +6375,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6400,7 +6401,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6420,7 +6421,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6726,7 +6727,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6740,7 +6741,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6931,7 +6932,7 @@ msgstr "" msgid "Off" msgstr "Oprit" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7205,7 +7206,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7320,7 +7321,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7513,14 +7514,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8135,14 +8136,14 @@ msgstr "" msgid "ScrShot" msgstr "ScrShot" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Căutare" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8319,7 +8320,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8468,7 +8469,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8481,7 +8482,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8740,7 +8741,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8807,18 +8808,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9419,6 +9420,10 @@ msgstr "" msgid "Take Screenshot" msgstr "Realizează CapturăEcran" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -9516,7 +9521,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9528,11 +9533,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9568,13 +9573,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9607,7 +9612,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9615,7 +9620,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9728,7 +9733,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10049,7 +10054,7 @@ msgid "Toggle Aspect Ratio" msgstr "Comută Raportul de Aspect" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10200,7 +10205,7 @@ msgstr "Declanșatori" msgid "Type" msgstr "Tip:" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10256,7 +10261,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10276,7 +10281,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10329,7 +10334,7 @@ msgstr "" msgid "Unknown" msgstr "Necunoscut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10405,18 +10410,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10451,28 +10456,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10644,7 +10649,7 @@ msgstr "Utilitar" msgid "V-Sync" msgstr "V-Sync" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Valoare" @@ -11041,7 +11046,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 13555179c4..4ca210a8b6 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -360,7 +360,7 @@ msgstr "&Точки останова" msgid "&Bug Tracker" msgstr "&Баг-трекер" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Отмена" @@ -713,7 +713,7 @@ msgstr "/ Разделить" msgid "128 Mbit (2043 blocks)" msgstr "128 Мбит (2043 блока)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -801,7 +801,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "Родное 3x (1920x1584) для 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -853,7 +853,7 @@ msgstr "Родное 6x (3840x3168) для 4K" msgid "7x Native (4480x3696)" msgstr "Родное 7x (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -930,7 +930,7 @@ msgstr "" "\n" "После установки этого WAD вернуть прежнюю версию не получится. Продолжить?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Диск уже должен быть вставлен." @@ -991,8 +991,8 @@ msgstr "AR-код" msgid "AR Codes" msgstr "AR-коды" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1172,7 +1172,7 @@ msgstr "Добавить точку останова в памяти" msgid "Add to &watch" msgstr "Добавить в &наблюдение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1200,7 +1200,7 @@ msgid "Address" msgstr "Адрес" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Адресное пространство" @@ -1342,7 +1342,7 @@ msgstr "" msgid "All devices" msgstr "Все устройства" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1592,7 +1592,7 @@ msgstr "" "dolphin_emphasis>" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "Вспомогательное" @@ -1656,13 +1656,13 @@ msgstr "Ввод в фоне" msgid "Backward" msgstr "Назад" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Указан некорректный адрес." @@ -1670,13 +1670,13 @@ msgstr "Указан некорректный адрес." msgid "Bad dump" msgstr "Плохой дамп" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Указано неверное смещение." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Указано некорректное значение." @@ -1907,7 +1907,7 @@ msgstr "Кнопка" msgid "Buttons" msgstr "Кнопки" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2335,7 +2335,7 @@ msgstr "Настройка вывода" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Подтвердить" @@ -2394,7 +2394,7 @@ msgstr "Подключить Wii Remote" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Подключение Wii Remote для эмулируемых контроллеров" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Подключиться к интернету и выполнить обновление системы?" @@ -2576,7 +2576,7 @@ msgstr "Скопировать &функцию" msgid "Copy &hex" msgstr "Скопировать &hex-значение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Скопировать адрес" @@ -2584,11 +2584,11 @@ msgstr "Скопировать адрес" msgid "Copy Failed" msgstr "Копирование не удалось" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Скопировать hex-значение" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2632,7 +2632,7 @@ msgstr "Не удалось войти в режим клиента." msgid "Could not create peer." msgstr "Не удалось создать точку подключения." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2640,7 +2640,7 @@ msgstr "" "Не удалось загрузить файлы обновлений от Nintendo. Проверьте подключение к " "интернету и повторите попытку." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2648,7 +2648,7 @@ msgstr "" "Не удалось загрузить информацию об обновлениях от Nintendo. Проверьте " "подключение к интернету и повторите попытку." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2658,7 +2658,7 @@ msgstr "" "\n" "Эмулируемая консоль будет остановлена." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2672,7 +2672,7 @@ msgstr "" "\n" "Эмулируемая консоль будет остановлена." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3054,7 +3054,7 @@ msgstr "Удалить файл..." msgid "Delete Selected Files..." msgstr "Удалить выбранные файлы..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Удалить существующий файл '{0}'?" @@ -3086,7 +3086,7 @@ msgstr "Описание" msgid "Description:" msgstr "Описание:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3254,7 +3254,7 @@ msgstr "Диск" msgid "Discard" msgstr "Отменить" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3417,8 +3417,8 @@ msgid "Done compressing disc image." msgstr "Сжатие образа диска завершено." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3471,7 +3471,7 @@ msgstr "Ударная установка" msgid "Dual Core" msgstr "Двухъядерный режим" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3479,23 +3479,23 @@ msgstr "" msgid "Dummy" msgstr "Заглушка" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Дампить &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Дампить &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Дампить &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Дампить &MRAM" @@ -3694,7 +3694,7 @@ msgstr "Эффект" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Эффективное" @@ -4030,15 +4030,16 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4411,7 +4412,7 @@ msgstr "Не удалось добавить сессию в индекс сет msgid "Failed to append to signature file '%1'" msgstr "Не удалось добавить данные в файл с сигнатурами '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4455,7 +4456,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Не удалось удалить выбранный файл." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Не удалось отключить драйвер ядра для проброса BT: {0}" @@ -4463,11 +4464,11 @@ msgstr "Не удалось отключить драйвер ядра для п msgid "Failed to download codes." msgstr "Не удалось скачать коды." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Не удалось сдампить %1: невозможно открыть файл" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Не удалось сдампить %1: ошибка записи в файл" @@ -4604,7 +4605,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Не удалось открыть '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Не удалось открыть Bluetooth-устройство: {0}" @@ -4915,11 +4916,11 @@ msgstr "" "вызвать проблемы в других.

Если не уверены – " "оставьте выключенным." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Искать &далее" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Искать &ранее" @@ -4927,7 +4928,7 @@ msgstr "Искать &ранее" msgid "Finish Calibration" msgstr "Завершить калибровку" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4947,7 +4948,7 @@ msgstr "Исправить контр. суммы" msgid "Fix Checksums Failed" msgstr "Не удалось исправить контрольные суммы" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4960,8 +4961,8 @@ msgstr "Флаги" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5532,7 +5533,7 @@ msgstr "Немецкий" msgid "Germany" msgstr "Германия" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5626,23 +5627,23 @@ msgstr "Голова" msgid "Help" msgstr "Помощь" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6755,7 +6756,7 @@ msgid "Lock Mouse Cursor" msgstr "Захватывать курсор мыши" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Лог" @@ -6871,7 +6872,7 @@ msgstr "Порты" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Найдено совпадение" @@ -6897,7 +6898,7 @@ msgstr "Может привести к замедлению в меню Wii и msgid "Medium" msgstr "Среднее" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Память" @@ -6917,7 +6918,7 @@ msgstr "Менеджер карт памяти" msgid "Memory Override" msgstr "Переопределение памяти" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Опции точек останова в памяти" @@ -7241,7 +7242,7 @@ msgstr "Нет" msgid "No Adapter Detected" msgstr "Адаптеров не обнаружено" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -7255,7 +7256,7 @@ msgstr "Нет вывода звука" msgid "No Compression" msgstr "Без сжатия" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Нет совпадений" @@ -7458,7 +7459,7 @@ msgstr "Океания" msgid "Off" msgstr "Выкл" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Смещение" @@ -7736,7 +7737,7 @@ msgstr "Выполнить обновление системы" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Физическое" @@ -7853,7 +7854,7 @@ msgstr "Преждевременный конец ролика в PlayWiimote. { msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Преждевременный конец ролика в PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8060,14 +8061,14 @@ msgstr "Чтение" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Чтение и запись" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Только для чтения" @@ -8702,14 +8703,14 @@ msgstr "Сканирование успешно завершено." msgid "ScrShot" msgstr "Скриншот" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Поиск" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Найти адрес" @@ -8890,7 +8891,7 @@ msgstr "Выберите игру" msgid "Select a SD Card Image" msgstr "Выберите образ SD-карты" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -9074,7 +9075,7 @@ msgstr "Порт сервера" msgid "Server rejected traversal attempt" msgstr "Сервер отверг попытку обхода" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Присвоить &значение" @@ -9087,7 +9088,7 @@ msgstr "" msgid "Set PC" msgstr "Изменить СК" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -9351,7 +9352,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Показать в коде" @@ -9431,18 +9432,18 @@ msgstr "Wii Remote на боку" msgid "Signature Database" msgstr "База данных сигнатур" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -10071,6 +10072,10 @@ msgstr "Тайвань" msgid "Take Screenshot" msgstr "Сделать скриншот" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Проверить" @@ -10177,7 +10182,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Не удалось прочесть диск (в диапазоне {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Ожидаемый диск не был найден." @@ -10193,11 +10198,11 @@ msgstr "" "\n" "Вы хотите попытаться исправить NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Эмулируемая консоль Wii обновлена." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Эмулируемой консоли Wii не требуется обновление." @@ -10239,7 +10244,7 @@ msgstr "" "Файл %1 уже существует.\n" "Вы хотите заменить его?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10247,7 +10252,7 @@ msgstr "" "Не удалось открыть файл {0} для записи. Проверьте, не открыт ли он другой " "программой." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "Файл {0} уже открыт, нельзя записать заголовок." @@ -10281,7 +10286,7 @@ msgstr "ID игры необычно короткий." msgid "The game ID is {0} but should be {1}." msgstr "ID игры — {0}, но должен быть {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "На данном диске не содержится полезной информации про обновление." @@ -10289,7 +10294,7 @@ msgstr "На данном диске не содержится полезной msgid "The game is currently running." msgstr "Игра уже запущена." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10418,7 +10423,7 @@ msgstr "Билет некорректно подписан." msgid "The type of a partition could not be read." msgstr "Не удалось прочитать тип раздела." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10797,7 +10802,7 @@ msgid "Toggle Aspect Ratio" msgstr "Изменить соотношение сторон" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Точка останова" @@ -10950,7 +10955,7 @@ msgstr "Рычажки" msgid "Type" msgstr "Тип" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -11020,7 +11025,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Не удалось автоматически обнаружить модуль RSO" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -11048,7 +11053,7 @@ msgstr "" "\n" "Вы хотите игнорировать данную строку и продолжить чтение?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -11103,7 +11108,7 @@ msgstr "США" msgid "Unknown" msgstr "Неизвестно" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Неизвестная команда DVD {0:08x} - критическая ошибка" @@ -11183,18 +11188,18 @@ msgstr "Разблок. курсор" msgid "Unpacking" msgstr "Распаковка" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -11229,28 +11234,28 @@ msgstr "Обновить после закрытия Dolphin" msgid "Update available" msgstr "Доступно обновление" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Обновление отменено" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Обновление завершено" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Обновление не удалось" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Идет обновление" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11436,7 +11441,7 @@ msgstr "Полезные" msgid "V-Sync" msgstr "Вертикальная синхронизация" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Значение" @@ -11900,7 +11905,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Только для записи" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index 591f211a51..099b2c40e6 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -323,7 +323,7 @@ msgstr "" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -764,7 +764,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -816,7 +816,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -884,7 +884,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -931,8 +931,8 @@ msgstr "" msgid "AR Codes" msgstr "AR Kodovi" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1097,7 +1097,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1125,7 +1125,7 @@ msgid "Address" msgstr "" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1248,7 +1248,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1485,7 +1485,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1546,13 +1546,13 @@ msgstr "" msgid "Backward" msgstr "U nazad" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1560,13 +1560,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1793,7 +1793,7 @@ msgstr "" msgid "Buttons" msgstr "Tasteri" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2198,7 +2198,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2257,7 +2257,7 @@ msgstr "" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" @@ -2417,7 +2417,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2425,11 +2425,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2473,26 +2473,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2501,7 +2501,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2844,7 +2844,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2876,7 +2876,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3024,7 +3024,7 @@ msgstr "Disk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3175,8 +3175,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3229,7 +3229,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3237,23 +3237,23 @@ msgstr "" msgid "Dummy" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3427,7 +3427,7 @@ msgstr "" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3713,15 +3713,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4085,7 +4086,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4127,7 +4128,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4135,11 +4136,11 @@ msgstr "" msgid "Failed to download codes." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4261,7 +4262,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4546,11 +4547,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4558,7 +4559,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4576,7 +4577,7 @@ msgstr "" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4589,8 +4590,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5121,7 +5122,7 @@ msgstr "Nemacki " msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5209,23 +5210,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6258,7 +6259,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "" @@ -6365,7 +6366,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6391,7 +6392,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6411,7 +6412,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6717,7 +6718,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6731,7 +6732,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6922,7 +6923,7 @@ msgstr "" msgid "Off" msgstr "Izskljucen/o" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7196,7 +7197,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7311,7 +7312,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7504,14 +7505,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8126,14 +8127,14 @@ msgstr "" msgid "ScrShot" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8310,7 +8311,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8459,7 +8460,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8472,7 +8473,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8731,7 +8732,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8798,18 +8799,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9410,6 +9411,10 @@ msgstr "" msgid "Take Screenshot" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "" @@ -9507,7 +9512,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9519,11 +9524,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9559,13 +9564,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9598,7 +9603,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9606,7 +9611,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9719,7 +9724,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10036,7 +10041,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10187,7 +10192,7 @@ msgstr "" msgid "Type" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10243,7 +10248,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10263,7 +10268,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10316,7 +10321,7 @@ msgstr "" msgid "Unknown" msgstr "Nepoznat/o" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10392,18 +10397,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10438,28 +10443,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10631,7 +10636,7 @@ msgstr "" msgid "V-Sync" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "" @@ -11028,7 +11033,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index 637ce7c656..52db4438ae 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -353,7 +353,7 @@ msgstr "&Brytpunkter" msgid "&Bug Tracker" msgstr "&Bugghanterare" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&Avbryt" @@ -706,7 +706,7 @@ msgstr "/ Dividera" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 block)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 byte" @@ -794,7 +794,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x ursprunglig (1920x1584) för 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 byte" @@ -846,7 +846,7 @@ msgstr "6x ursprunglig (3840x3168) för 4K" msgid "7x Native (4480x3696)" msgstr "7x ursprunglig (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 byte" @@ -924,7 +924,7 @@ msgstr "" "Om du installerar denna WAD kommer titeln skrivas över. Detta går inte att " "ångra. Vill du fortsätta?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "En skiva håller redan på att sättas in." @@ -987,8 +987,8 @@ msgstr "AR-kod" msgid "AR Codes" msgstr "AR-koder" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1169,7 +1169,7 @@ msgstr "Lägg till minnesbrytpunkt" msgid "Add to &watch" msgstr "Lägg till &bevakning" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "Lägg till bevakning" @@ -1197,7 +1197,7 @@ msgid "Address" msgstr "Adress" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "Adressutrymme" @@ -1339,7 +1339,7 @@ msgstr "" msgid "All devices" msgstr "Alla enheter" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "Alla filer (*)" @@ -1588,7 +1588,7 @@ msgstr "" "dolphin_emphasis>" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "ARAM" @@ -1652,13 +1652,13 @@ msgstr "Bakgrundsindata" msgid "Backward" msgstr "Tillbaka" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "Ogiltig adress angiven." @@ -1666,13 +1666,13 @@ msgstr "Ogiltig adress angiven." msgid "Bad dump" msgstr "Inkorrekt kopia" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "Dålig förskjutning angavs." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "Ogiltigt värde angivet." @@ -1904,7 +1904,7 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knappar" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2334,7 +2334,7 @@ msgstr "Konfigurera utmatning" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekräfta" @@ -2393,7 +2393,7 @@ msgstr "Anslut Wii-fjärrkontroller" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "Anslut Wii-fjärrkontroller för emulerade kontroller" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "Vill du ansluta till internet och uppdatera Wii-systemmjukvaran?" @@ -2576,7 +2576,7 @@ msgstr "Kopiera &funktion" msgid "Copy &hex" msgstr "Kopiera &hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "Kopiera adress" @@ -2584,11 +2584,11 @@ msgstr "Kopiera adress" msgid "Copy Failed" msgstr "Kopiering misslyckades" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "Kopiera hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "Kopiera värde" @@ -2632,7 +2632,7 @@ msgstr "Kunde inte skapa klient." msgid "Could not create peer." msgstr "Kunde inte skapa en peer." -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2640,7 +2640,7 @@ msgstr "" "Kunde inte ladda ner uppdateringsfiler från Nintendo. Kontrollera " "internetanslutningen och försök igen." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2648,7 +2648,7 @@ msgstr "" "Kunde inte ladda ner uppdateringsinformation från Nintendo. Kontrollera " "internetanslutningen och försök igen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2659,7 +2659,7 @@ msgstr "" "\n" "Emuleringen kommer nu avslutas." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2674,7 +2674,7 @@ msgstr "" "\n" "Emuleringen kommer nu avslutas." -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -3055,7 +3055,7 @@ msgstr "Radera fil..." msgid "Delete Selected Files..." msgstr "Radera valda filer..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "Radera den existerande filen '{0}'?" @@ -3087,7 +3087,7 @@ msgstr "Beskrivning" msgid "Description:" msgstr "Beskrivning:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3253,7 +3253,7 @@ msgstr "Skiva" msgid "Discard" msgstr "Kasta" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3423,8 +3423,8 @@ msgid "Done compressing disc image." msgstr "Skivavbildningen har komprimerats." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "Double" @@ -3477,7 +3477,7 @@ msgstr "Trumset" msgid "Dual Core" msgstr "Dual Core" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3485,23 +3485,23 @@ msgstr "" msgid "Dummy" msgstr "Dummy" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "Dumpa &ARAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "Dumpa &ExRAM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "Dumpa &FakeVMEM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "Dumpa &MRAM" @@ -3701,7 +3701,7 @@ msgstr "Effekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "Effektiv" @@ -4033,15 +4033,16 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4415,7 +4416,7 @@ msgstr "Misslyckades att lägga till denna session i nätspelsindex: %1" msgid "Failed to append to signature file '%1'" msgstr "Misslyckades att lägga till i signaturfilen \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4461,7 +4462,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Misslyckades att radera den valda filen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Misslyckades att koppla loss kärnans drivrutin för BT-genomsläpp: {0}" @@ -4469,11 +4470,11 @@ msgstr "Misslyckades att koppla loss kärnans drivrutin för BT-genomsläpp: {0} msgid "Failed to download codes." msgstr "Misslyckades att ladda ner koder." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "Misslyckades att dumpa %1: Kan inte öppna filen" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "Misslyckades att dumpa %1: Kunde inte skriva till filen" @@ -4611,7 +4612,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "Misslyckades att öppna '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "Misslyckades att öppna Bluetooth-enhet: {0}" @@ -4920,11 +4921,11 @@ msgstr "" "spel, men orsakar problem i andra.

Om du är osäker " "kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Hitta &nästa" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Hitta &föregående" @@ -4932,7 +4933,7 @@ msgstr "Hitta &föregående" msgid "Finish Calibration" msgstr "Slutför kalibrering" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4952,7 +4953,7 @@ msgstr "Fixa kontrollsummor" msgid "Fix Checksums Failed" msgstr "Kunde inte laga kontrollsummor" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4965,8 +4966,8 @@ msgstr "Flaggor" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5546,7 +5547,7 @@ msgstr "Tyska" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "GetDeviceList misslyckades: {0}" @@ -5639,23 +5640,23 @@ msgstr "Huvud" msgid "Help" msgstr "Hjälp" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "Hex 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "Hex 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "Hex 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "Hexbytesträng" @@ -6779,7 +6780,7 @@ msgid "Lock Mouse Cursor" msgstr "Lås muspekare" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Logg" @@ -6895,7 +6896,7 @@ msgstr "Mappning" msgid "Mask ROM" msgstr "Mask-ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "Sökträff hittades" @@ -6921,7 +6922,7 @@ msgstr "Kan leda till prestandaproblem i Wii-menyn och vissa spel." msgid "Medium" msgstr "Medium" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Minne" @@ -6941,7 +6942,7 @@ msgstr "Minneskorthanterare" msgid "Memory Override" msgstr "Minnesåsidosättning" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "Minnesbrytpunktsalternativ" @@ -7263,7 +7264,7 @@ msgstr "Nej" msgid "No Adapter Detected" msgstr "Ingen adapter upptäcktes" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -7277,7 +7278,7 @@ msgstr "Ingen ljuduppspelning" msgid "No Compression" msgstr "Ingen komprimering" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Ingen sökträff" @@ -7478,7 +7479,7 @@ msgstr "Oceanien" msgid "Off" msgstr "Av" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "Förskjutning" @@ -7756,7 +7757,7 @@ msgstr "Uppdatera systemmjukvaran" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "Fysisk" @@ -7875,7 +7876,7 @@ msgstr "Tidigt inspelningsslut i PlayWiimote. {0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "Tidigt inspelningsslut i PlayWiimote. {0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -8082,14 +8083,14 @@ msgstr "Läs" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Läs och skriv" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Endast läs" @@ -8720,14 +8721,14 @@ msgstr "Skanning lyckades." msgid "ScrShot" msgstr "Skärmdump" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Sök" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Sök adress" @@ -8906,7 +8907,7 @@ msgstr "Välj ett spel" msgid "Select a SD Card Image" msgstr "Välj en SD-kortsavbildning" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "Välj en fil" @@ -9091,7 +9092,7 @@ msgstr "Serverns port" msgid "Server rejected traversal attempt" msgstr "Servern avvisade traverseringsförsök" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "Sätt &värde" @@ -9104,7 +9105,7 @@ msgstr "" msgid "Set PC" msgstr "Sätt PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "Sätt värde från fil" @@ -9372,7 +9373,7 @@ msgstr "Visa i kod" msgid "Show in Memory" msgstr "Visa i minne" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "Visa i kod" @@ -9451,18 +9452,18 @@ msgstr "Liggande Wii-fjärrkontroll" msgid "Signature Database" msgstr "Signaturdatabas" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -10100,6 +10101,10 @@ msgstr "Taiwan" msgid "Take Screenshot" msgstr "Ta en skärmdump" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Test" @@ -10211,7 +10216,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Skivan kunde inte läsas (vid {0:#} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Skivan som skulle sättas in hittades inte." @@ -10227,11 +10232,11 @@ msgstr "" "\n" "Vill du försöka reparera NAND-minnet?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Den emulerade Wii-konsolen har uppdaterats." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Den emulerade Wii-konsolen har redan den nyaste systemmjukvaran." @@ -10273,7 +10278,7 @@ msgstr "" "Filen %1 finns redan.\n" "Vill du byta ut den?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." @@ -10281,7 +10286,7 @@ msgstr "" "Filen {0} kunde inte öppnas för skrivning. Kontrollera om den redan är " "öppnad i ett annat program." -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "Filen {0} var redan öppen. Filheadern kommer inte att skrivas." @@ -10316,7 +10321,7 @@ msgstr "Spel-ID:t är ovanligt kort." msgid "The game ID is {0} but should be {1}." msgstr "Spel-ID:t är {0} men borde vara {1}." -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" "Spelskivan innehåller inte någon uppdateringsinformation som går att använda." @@ -10325,7 +10330,7 @@ msgstr "" msgid "The game is currently running." msgstr "Spelet körs för tillfället." -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10460,7 +10465,7 @@ msgstr "Ticket-datan är inte korrekt signerad." msgid "The type of a partition could not be read." msgstr "Typen av en partition kunde inte läsas." -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10844,7 +10849,7 @@ msgid "Toggle Aspect Ratio" msgstr "Växla bildförhållande" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Slå på/av brytpunkt" @@ -10997,7 +11002,7 @@ msgstr "Avtryckare" msgid "Type" msgstr "Typ" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -11066,7 +11071,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "Kunde inte upptäcka RSO-modul automatiskt" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "Misslyckades att öppna fil." @@ -11094,7 +11099,7 @@ msgstr "" "\n" "Vill du ignorera denna rad och fortsätta tolka resten?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "Misslyckades att läsa fil." @@ -11150,7 +11155,7 @@ msgstr "USA" msgid "Unknown" msgstr "Okänd" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Okänt DVD-kommando {0:08x} - katastrofalt fel" @@ -11232,18 +11237,18 @@ msgstr "Lås upp muspekare" msgid "Unpacking" msgstr "Packar upp" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -11278,28 +11283,28 @@ msgstr "Uppdatera efter Dolphin stängs" msgid "Update available" msgstr "Uppdatering tillgänglig" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Uppdateringen avbröts" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Uppdateringen är klar" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Uppdateringen misslyckades" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Uppdaterar" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11500,7 +11505,7 @@ msgstr "Hjälpprogram" msgid "V-Sync" msgstr "V-synk" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Värde" @@ -11966,7 +11971,7 @@ msgstr "Skriv spardata" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Endast skriv" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 0dd5a0c706..96344d2f54 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -349,7 +349,7 @@ msgstr "&Kesme Noktaları" msgid "&Bug Tracker" msgstr "&Hata İzleyici" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "&İptal" @@ -702,7 +702,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 blok)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -790,7 +790,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "Orijinalin 3 katı (1920x1584) - 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -842,7 +842,7 @@ msgstr "Orijinalin 6 katı (3840x3168) - 4K" msgid "7x Native (4480x3696)" msgstr "Orijinalin 7 katı (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -920,7 +920,7 @@ msgstr "" "Bu WAD'ı yüklemek geri dönülemeyecek şekilde eskisinin yerini alacaktır. " "Devam edilsin mi?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "Zaten bir diskin yerleştirilme işlemi sürüyor." @@ -969,8 +969,8 @@ msgstr "AR Kodu" msgid "AR Codes" msgstr "AR Kodları" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Add to &watch" msgstr "Ekle &izlemeye" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1163,7 +1163,7 @@ msgid "Address" msgstr "Adres" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1286,7 +1286,7 @@ msgstr "" msgid "All devices" msgstr "Tüm cihazlar" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1523,7 +1523,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1584,13 +1584,13 @@ msgstr "Arkaplan Girişi" msgid "Backward" msgstr "Geri" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1598,13 +1598,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1833,7 +1833,7 @@ msgstr "Düğme" msgid "Buttons" msgstr "Düğmeler" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2239,7 +2239,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2298,7 +2298,7 @@ msgstr "Wii Remote Bağla" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "" "Gerçekten internete bağlanıp çevrimiçi sistem güncellemesi yapmak istiyor " @@ -2460,7 +2460,7 @@ msgstr "Kopyala &Fonksiyon" msgid "Copy &hex" msgstr "Kopyala &Hex" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2468,11 +2468,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2516,7 +2516,7 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." @@ -2524,7 +2524,7 @@ msgstr "" "Nintendo platformundan güncelleme dosyaları indirilemedi. Lütfen internet " "bağlantınızı kontrol edin ve tekrar deneyin." -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." @@ -2532,14 +2532,14 @@ msgstr "" "Nintendo platformundan güncelleme bilgileri indirilemedi. Lütfen internet " "bağlantınızı kontrol edin ve tekrar deneyin." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2548,7 +2548,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2895,7 +2895,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2927,7 +2927,7 @@ msgstr "Açıklama" msgid "Description:" msgstr "Açıklama:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3075,7 +3075,7 @@ msgstr "Disk" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3228,8 +3228,8 @@ msgid "Done compressing disc image." msgstr "Disk imajı sıkıştırılma işlemi tamamlandı." #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3282,7 +3282,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3290,23 +3290,23 @@ msgstr "" msgid "Dummy" msgstr "Kukla" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3480,7 +3480,7 @@ msgstr "Efekt" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3774,15 +3774,16 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4146,7 +4147,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4188,7 +4189,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4196,11 +4197,11 @@ msgstr "" msgid "Failed to download codes." msgstr "Kod indirme başarısız." -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4322,7 +4323,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4607,11 +4608,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "Bul &Sonraki" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "Bul &Önceki" @@ -4619,7 +4620,7 @@ msgstr "Bul &Önceki" msgid "Finish Calibration" msgstr "Kalibrasyonu Bitir" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4637,7 +4638,7 @@ msgstr "Sağlamayı Düzelt" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4650,8 +4651,8 @@ msgstr "Bayraklar" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5182,7 +5183,7 @@ msgstr "Almanca" msgid "Germany" msgstr "Almanya" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5270,23 +5271,23 @@ msgstr "" msgid "Help" msgstr "Yardım" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6322,7 +6323,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "Günlük" @@ -6429,7 +6430,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6455,7 +6456,7 @@ msgstr "Bu Wii Menüsünde ve bazı oyunlarda yavaşlamaya neden olabilir." msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "Hafıza" @@ -6475,7 +6476,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6781,7 +6782,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6795,7 +6796,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "Eşleşme Yok" @@ -6986,7 +6987,7 @@ msgstr "" msgid "Off" msgstr "Kapalı" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7260,7 +7261,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7375,7 +7376,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7570,14 +7571,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "Oku ve yaz" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "Salt okunur" @@ -8194,14 +8195,14 @@ msgstr "" msgid "ScrShot" msgstr "Ekran Görüntüsü" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "Ara" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "Adres Ara" @@ -8378,7 +8379,7 @@ msgstr "Bir Oyun Seç" msgid "Select a SD Card Image" msgstr "Bir SD Kart Kalıbı Seç" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8527,7 +8528,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "&Değeri Ayarla" @@ -8540,7 +8541,7 @@ msgstr "" msgid "Set PC" msgstr "PC'yi Ayarla" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8802,7 +8803,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8869,18 +8870,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9483,6 +9484,10 @@ msgstr "Tayvan" msgid "Take Screenshot" msgstr "Ekran Görüntüsü Al" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "Sınama" @@ -9580,7 +9585,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "Takılacak olan disk bulunamadı." @@ -9592,11 +9597,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "Sanal Wii konsolu güncellendi." -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "Sanal Wii konsolu zaten güncel." @@ -9632,13 +9637,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9671,7 +9676,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9679,7 +9684,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9792,7 +9797,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10122,7 +10127,7 @@ msgid "Toggle Aspect Ratio" msgstr "En-boy Oranını Aç/Kapat" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Kesim Noktasını Aç/Kapat" @@ -10273,7 +10278,7 @@ msgstr "Tetikler" msgid "Type" msgstr "Tür" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10329,7 +10334,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10349,7 +10354,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10404,7 +10409,7 @@ msgstr "ABD" msgid "Unknown" msgstr "Bilinmeyen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10480,18 +10485,18 @@ msgstr "" msgid "Unpacking" msgstr "Açma" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10526,28 +10531,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "Güncelleştirme iptal edildi" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "Güncelleştirme tamamlandı" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "Güncelleştirme başarısız" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "Güncelleştiriliyor" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10720,7 +10725,7 @@ msgstr "Gereçler" msgid "V-Sync" msgstr "Dikey Eşitleme" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "Değer" @@ -11119,7 +11124,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "Sadece yazma" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 15c20f014b..516110d9f2 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -356,7 +356,7 @@ msgstr "断点(&B)" msgid "&Bug Tracker" msgstr "错误跟踪器(&B)" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "取消(&C)" @@ -709,7 +709,7 @@ msgstr "/ 除" msgid "128 Mbit (2043 blocks)" msgstr "128 Mbit (2043 区块)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "16 字节" @@ -797,7 +797,7 @@ msgstr "3x" msgid "3x Native (1920x1584) for 1080p" msgstr "3x 原生 (1920x1584) 适合 1080p" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "4 字节" @@ -849,7 +849,7 @@ msgstr "6x 原生 (3840x3168) 适合 4K" msgid "7x Native (4480x3696)" msgstr "7x 原生 (4480x3696)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "8 字节" @@ -925,7 +925,7 @@ msgstr "" "\n" "安装此 WAD 替换是不可逆转的。是否继续?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "光盘已可插入。" @@ -984,8 +984,8 @@ msgstr "AR 代码" msgid "AR Codes" msgstr "AR 代码" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "ASCII" @@ -1162,7 +1162,7 @@ msgstr "添加内存断点" msgid "Add to &watch" msgstr "添加到监视(&W)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "添加到监视" @@ -1190,7 +1190,7 @@ msgid "Address" msgstr "地址" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "地址空间" @@ -1327,7 +1327,7 @@ msgstr "" msgid "All devices" msgstr "所有设备" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "所有文件 (*)" @@ -1573,7 +1573,7 @@ msgstr "" "勾选此项。
" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "副内存" @@ -1636,13 +1636,13 @@ msgstr "后台输入" msgid "Backward" msgstr "后" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "给定值错误" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "地址格式不正确。" @@ -1650,13 +1650,13 @@ msgstr "地址格式不正确。" msgid "Bad dump" msgstr "错误的转储" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "提交的偏移量不正确。" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "值格式不正确。" @@ -1886,7 +1886,7 @@ msgstr "按键" msgid "Buttons" msgstr "按键" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2302,7 +2302,7 @@ msgstr "配置输出" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "确定" @@ -2361,7 +2361,7 @@ msgstr "连接 Wii 遥控器" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "连接用于模拟控制器的 Wii 遥控器" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "是否连接到互联网并执行在线系统更新?" @@ -2533,7 +2533,7 @@ msgstr "复制函数(&F)" msgid "Copy &hex" msgstr "复制十六进制(&H)" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "复制地址" @@ -2541,11 +2541,11 @@ msgstr "复制地址" msgid "Copy Failed" msgstr "复制失败" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "复制十六进制" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "复制数值" @@ -2589,19 +2589,19 @@ msgstr "无法创建客户端。" msgid "Could not create peer." msgstr "无法创建对等点。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "无法从任天堂下载更新文件。请检查你的互联网连接然后重试。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "无法从任天堂下载更新信息。请检查你的互联网连接然后重试。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2611,7 +2611,7 @@ msgstr "" "\n" "模拟主机即将停止运行。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2625,7 +2625,7 @@ msgstr "" "\n" "模拟主机即将停止运行。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2993,7 +2993,7 @@ msgstr "删除文件..." msgid "Delete Selected Files..." msgstr "删除所选文件..." -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "删除已经存在的文件 ‘{0}’ 吗?" @@ -3025,7 +3025,7 @@ msgstr "说明" msgid "Description:" msgstr "说明:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3184,7 +3184,7 @@ msgstr "光盘" msgid "Discard" msgstr "丢弃" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "显示类型" @@ -3347,8 +3347,8 @@ msgid "Done compressing disc image." msgstr "光盘镜像已压缩完成。" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "双精度" @@ -3401,7 +3401,7 @@ msgstr "架子鼓" msgid "Dual Core" msgstr "双核" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "双视图" @@ -3409,23 +3409,23 @@ msgstr "双视图" msgid "Dummy" msgstr "虚设" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "转储" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "转储副内存(&A)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "转储扩展内存(&E)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "转储伪显存(&F)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "转储主内存(&M)" @@ -3617,7 +3617,7 @@ msgstr "效果" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "有效" @@ -3933,15 +3933,16 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4325,7 +4326,7 @@ msgstr "无法将此会话添加到联机索引: %1" msgid "Failed to append to signature file '%1'" msgstr "附加到签名文件 '%1' 失败" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4367,7 +4368,7 @@ msgstr "删除联机存储卡失败。请验证你的写入权限。" msgid "Failed to delete the selected file." msgstr "无法删除所选文件。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "分离蓝牙直通内核驱动失败: {0}" @@ -4375,11 +4376,11 @@ msgstr "分离蓝牙直通内核驱动失败: {0}" msgid "Failed to download codes." msgstr "下载代码失败。" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "转储 %1 失败:无法打开文件" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "转储 %1 失败:无法写入文件" @@ -4509,7 +4510,7 @@ msgstr "加载 {0} 失败。如果你使用的是 Windows 7,请尝试安装 KB msgid "Failed to open '%1'" msgstr "无法打开 '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "打开蓝牙设备失败: {0} " @@ -4809,11 +4810,11 @@ msgstr "" "理质量,但会导致另一些游戏出现问题。

如果不确定,请" "不要勾选此项。" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "查找下一个(&N)" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "查找上一个(&P)" @@ -4821,7 +4822,7 @@ msgstr "查找上一个(&P)" msgid "Finish Calibration" msgstr "完成校准" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4841,7 +4842,7 @@ msgstr "修正校验和" msgid "Fix Checksums Failed" msgstr "修正校验和失败" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "固定对齐" @@ -4854,8 +4855,8 @@ msgstr "标记" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5428,7 +5429,7 @@ msgstr "德语" msgid "Germany" msgstr "德国" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5519,23 +5520,23 @@ msgstr "头" msgid "Help" msgstr "帮助" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "十六进制" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "十六进制 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "十六进制 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "十六进制 8" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "十六进制字节字符串" @@ -6635,7 +6636,7 @@ msgid "Lock Mouse Cursor" msgstr "锁定鼠标光标" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "日志" @@ -6748,7 +6749,7 @@ msgstr "映射" msgid "Mask ROM" msgstr "伪装 ROM" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "找到匹配" @@ -6774,7 +6775,7 @@ msgstr "这会导致 Wii 菜单和一些游戏减速。" msgid "Medium" msgstr "中等" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "内存" @@ -6794,7 +6795,7 @@ msgstr "存储卡管理器" msgid "Memory Override" msgstr "内存覆盖" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "内存断点选项" @@ -7111,7 +7112,7 @@ msgstr "否" msgid "No Adapter Detected" msgstr "未检测到适配器" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "未对齐" @@ -7125,7 +7126,7 @@ msgstr "无音频输出" msgid "No Compression" msgstr "不压缩" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "无匹配" @@ -7318,7 +7319,7 @@ msgstr "大洋洲" msgid "Off" msgstr "关" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "偏移量" @@ -7596,7 +7597,7 @@ msgstr "执行系统更新" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "物理" @@ -7711,7 +7712,7 @@ msgstr "在 PlayWiimote 中提前结束影片。{0} + {1} > {2}" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "在PlayWiimote 中提前结束影片。{0} > {1}" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7909,14 +7910,14 @@ msgstr "读取" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "读取和写入" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "只读" @@ -8544,14 +8545,14 @@ msgstr "扫描成功。" msgid "ScrShot" msgstr "截图" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "搜索" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "搜索地址" @@ -8728,7 +8729,7 @@ msgstr "选择游戏" msgid "Select a SD Card Image" msgstr "选择 SD 卡镜像" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "选择文件" @@ -8901,7 +8902,7 @@ msgstr "服务器端口" msgid "Server rejected traversal attempt" msgstr "穿透尝试被服务器拒绝" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "设置值(&V)" @@ -8914,7 +8915,7 @@ msgstr "设置 blr (&B)" msgid "Set PC" msgstr "设置 PC" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "从文件中设置数值" @@ -9179,7 +9180,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "在代码中显示" @@ -9256,18 +9257,18 @@ msgstr "横握 Wii 遥控器" msgid "Signature Database" msgstr "签名数据库" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "有符号 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 msgid "Signed 32" msgstr "有符号 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 msgid "Signed 8" msgstr "有符号 8" @@ -9894,6 +9895,10 @@ msgstr "台湾" msgid "Take Screenshot" msgstr "屏幕截图" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "测试" @@ -9997,7 +10002,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "无法读取此光盘 (at {0:#x} - {1:#x})。" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "无法找到已可插入的光盘。" @@ -10012,11 +10017,11 @@ msgstr "" "\n" "您是否要尝试修复此 NAND?" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "模拟的 Wii 主机已更新。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "模拟的 Wii 主机已经是最新的。" @@ -10058,13 +10063,13 @@ msgstr "" "文件 %1 已经存在。\n" "是否替换?" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "文件 {0} 无法以写入形式打开。请检查该文件是否已经被另一程序打开。" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "文件 {0} 已经打开,文件头不会被写入。" @@ -10097,7 +10102,7 @@ msgstr "游戏 ID 异常短。" msgid "The game ID is {0} but should be {1}." msgstr "游戏 ID 是 {0} ,但应该为 {1} 。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "此游戏光盘未包含任何可用的更新信息。" @@ -10105,7 +10110,7 @@ msgstr "此游戏光盘未包含任何可用的更新信息。" msgid "The game is currently running." msgstr "游戏当前正在运行。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -10233,7 +10238,7 @@ msgstr "ticket 文件未正确签名。" msgid "The type of a partition could not be read." msgstr "无法读取的分区类型。" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10582,7 +10587,7 @@ msgid "Toggle Aspect Ratio" msgstr "切换长宽比" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "切换断点" @@ -10733,7 +10738,7 @@ msgstr "扳机" msgid "Type" msgstr "类型" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "基于类型对齐" @@ -10798,7 +10803,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "无法自动检测 RSO 模块" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "无法打开文件。" @@ -10825,7 +10830,7 @@ msgstr "" "\n" "是否要忽略此行继续分析?" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "无法读取文件。" @@ -10880,7 +10885,7 @@ msgstr "美国" msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "未知 DVD 命令 {0:08x} - 致命错误" @@ -10956,18 +10961,18 @@ msgstr "解锁光标" msgid "Unpacking" msgstr "正在解包" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "无符号 16" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 msgid "Unsigned 32" msgstr "无符号 32" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 msgid "Unsigned 8" msgstr "无符号 8" @@ -11002,28 +11007,28 @@ msgstr "关闭 Dolphin 后更新" msgid "Update available" msgstr "更新可用" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "更新已取消" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "更新已完成" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "更新失败" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "正在更新" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -11226,7 +11231,7 @@ msgstr "实用功能" msgid "V-Sync" msgstr "垂直同步" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "值" @@ -11665,7 +11670,7 @@ msgstr "写入存档数据" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "只写" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index 5319d42abf..a9e57ba980 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-01 00:12+0200\n" +"POT-Creation-Date: 2022-07-05 23:35+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -328,7 +328,7 @@ msgstr "中斷點(&B)" msgid "&Bug Tracker" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:100 +#: Source/Core/DolphinQt/WiiUpdate.cpp:104 msgid "&Cancel" msgstr "取消 (&C)" @@ -681,7 +681,7 @@ msgstr "" msgid "128 Mbit (2043 blocks)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:218 msgid "16 Bytes" msgstr "" @@ -769,7 +769,7 @@ msgstr "" msgid "3x Native (1920x1584) for 1080p" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:214 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:216 msgid "4 Bytes" msgstr "" @@ -821,7 +821,7 @@ msgstr "" msgid "7x Native (4480x3696)" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:215 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:217 msgid "8 Bytes" msgstr "" @@ -889,7 +889,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:555 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." msgstr "" @@ -936,8 +936,8 @@ msgstr "" msgid "AR Codes" msgstr "AR 代碼" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:131 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 msgid "ASCII" msgstr "" @@ -1102,7 +1102,7 @@ msgstr "" msgid "Add to &watch" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:668 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:846 msgid "Add to watch" msgstr "" @@ -1130,7 +1130,7 @@ msgid "Address" msgstr "位址" #: Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp:44 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:170 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:172 msgid "Address Space" msgstr "" @@ -1253,7 +1253,7 @@ msgstr "" msgid "All devices" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:738 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:668 msgid "All files (*)" msgstr "" @@ -1490,7 +1490,7 @@ msgid "" msgstr "" #. i18n: The "Auxiliary" address space is the address space of ARAM (Auxiliary RAM). -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:180 msgid "Auxiliary" msgstr "" @@ -1551,13 +1551,13 @@ msgstr "背景輸入" msgid "Backward" msgstr "向後" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:864 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:794 msgid "Bad Value Given" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:850 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:780 msgid "Bad address provided." msgstr "" @@ -1565,13 +1565,13 @@ msgstr "" msgid "Bad dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:856 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 msgid "Bad offset provided." msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 msgid "Bad value provided." msgstr "" @@ -1798,7 +1798,7 @@ msgstr "按鈕" msgid "Buttons" msgstr "按鈕" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:209 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " msgstr "" @@ -2203,7 +2203,7 @@ msgstr "設定輸出" #: Source/Core/DolphinQt/GameList/GameList.cpp:812 #: Source/Core/DolphinQt/MainWindow.cpp:900 #: Source/Core/DolphinQt/MainWindow.cpp:1621 -#: Source/Core/DolphinQt/WiiUpdate.cpp:136 +#: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "確認" @@ -2262,7 +2262,7 @@ msgstr "連接 Wii Remote" msgid "Connect Wii Remotes for Emulated Controllers" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:137 +#: Source/Core/DolphinQt/WiiUpdate.cpp:141 msgid "Connect to the Internet and perform an online system update?" msgstr "連接至網路並執行線上的系統更新?" @@ -2422,7 +2422,7 @@ msgstr "" msgid "Copy &hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:646 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:824 msgid "Copy Address" msgstr "" @@ -2430,11 +2430,11 @@ msgstr "" msgid "Copy Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:648 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:654 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:832 msgid "Copy Value" msgstr "" @@ -2478,26 +2478,26 @@ msgstr "" msgid "Could not create peer." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:48 msgid "" "Could not download update files from Nintendo. Please check your Internet " "connection and try again." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:43 msgid "" "Could not download update information from Nintendo. Please check your " "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:143 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:149 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2506,7 +2506,7 @@ msgid "" "The emulated console will now stop." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:53 msgid "" "Could not install an update to the Wii system memory. Please refer to logs " "for more information." @@ -2849,7 +2849,7 @@ msgstr "" msgid "Delete Selected Files..." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:35 +#: Source/Core/AudioCommon/WaveFile.cpp:36 #: Source/Core/VideoCommon/FrameDump.cpp:137 msgid "Delete the existing file '{0}'?" msgstr "" @@ -2881,7 +2881,7 @@ msgstr "描述" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:216 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " msgstr "" @@ -3029,7 +3029,7 @@ msgstr "光碟" msgid "Discard" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:189 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:191 msgid "Display Type" msgstr "" @@ -3180,8 +3180,8 @@ msgid "Done compressing disc image." msgstr "" #. i18n: A double precision floating point number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:133 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:206 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:208 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:150 msgid "Double" msgstr "" @@ -3234,7 +3234,7 @@ msgstr "" msgid "Dual Core" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:219 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:221 msgid "Dual View" msgstr "" @@ -3242,23 +3242,23 @@ msgstr "" msgid "Dummy" msgstr "空" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:142 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:146 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:145 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" msgstr "" @@ -3432,7 +3432,7 @@ msgstr "效果" #. i18n: "Effective" addresses are the addresses used directly by the CPU and may be subject to #. translation via the MMU to physical addresses. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:176 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:178 msgid "Effective" msgstr "" @@ -3718,15 +3718,16 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:259 #: Source/Core/DolphinQt/ConvertDialog.cpp:452 #: Source/Core/DolphinQt/ConvertDialog.cpp:506 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:691 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:697 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:706 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:727 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:733 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:778 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:785 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:614 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:620 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:629 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:657 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:663 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:708 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:715 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:150 #: Source/Core/DolphinQt/Debugger/RegisterColumn.cpp:86 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 @@ -4090,7 +4091,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:627 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4132,7 +4133,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:620 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4140,11 +4141,11 @@ msgstr "" msgid "Failed to download codes." msgstr "下載代碼失敗。" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:779 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:709 msgid "Failed to dump %1: Can't open file" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:786 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:716 msgid "Failed to dump %1: Failed to write to file" msgstr "" @@ -4266,7 +4267,7 @@ msgstr "" msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:605 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4551,11 +4552,11 @@ msgid "" "this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:160 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:162 msgid "Find &Next" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:161 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:163 msgid "Find &Previous" msgstr "" @@ -4563,7 +4564,7 @@ msgstr "" msgid "Finish Calibration" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:105 +#: Source/Core/DolphinQt/WiiUpdate.cpp:109 msgid "" "Finishing the update...\n" "This can take a while." @@ -4581,7 +4582,7 @@ msgstr "修正校驗" msgid "Fix Checksums Failed" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:209 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" msgstr "" @@ -4594,8 +4595,8 @@ msgstr "" #. i18n: A floating point number #. i18n: Floating-point (non-integer) number -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:207 #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:148 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:161 msgid "Float" @@ -5126,7 +5127,7 @@ msgstr "German" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:135 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 msgid "GetDeviceList failed: {0}" msgstr "" @@ -5214,23 +5215,23 @@ msgstr "" msgid "Help" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:113 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 msgid "Hex" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:196 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Hex 16" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 msgid "Hex 32" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:195 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:197 msgid "Hex 8" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:130 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:132 msgid "Hex Byte String" msgstr "" @@ -6266,7 +6267,7 @@ msgid "Lock Mouse Cursor" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:34 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:243 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:245 msgid "Log" msgstr "記錄" @@ -6373,7 +6374,7 @@ msgstr "" msgid "Mask ROM" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:882 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:812 msgid "Match Found" msgstr "" @@ -6399,7 +6400,7 @@ msgstr "" msgid "Medium" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:41 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:43 msgid "Memory" msgstr "" @@ -6419,7 +6420,7 @@ msgstr "" msgid "Memory Override" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:227 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:229 msgid "Memory breakpoint options" msgstr "" @@ -6725,7 +6726,7 @@ msgstr "" msgid "No Adapter Detected" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:213 msgid "No Alignment" msgstr "" @@ -6739,7 +6740,7 @@ msgstr "" msgid "No Compression" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:894 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:824 msgid "No Match" msgstr "" @@ -6930,7 +6931,7 @@ msgstr "" msgid "Off" msgstr "關閉" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:103 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:105 msgid "Offset" msgstr "" @@ -7204,7 +7205,7 @@ msgstr "" #. i18n: The "Physical" address space is the address space that reflects how devices (e.g. RAM) is #. physically wired up. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:181 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:183 msgid "Physical" msgstr "" @@ -7319,7 +7320,7 @@ msgstr "" msgid "Premature movie end in PlayWiimote. {0} > {1}" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:92 +#: Source/Core/DolphinQt/WiiUpdate.cpp:96 msgid "" "Preparing to update...\n" "This can take a while." @@ -7512,14 +7513,14 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation or write operation occurs. #. The string is not a command to read and write something or to allow reading and writing. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:234 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:236 msgid "Read and write" msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a read operation occurs. #. The string does not mean "read-only" in the sense that something cannot be written to. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:238 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:240 msgid "Read only" msgstr "" @@ -8134,14 +8135,14 @@ msgstr "" msgid "ScrShot" msgstr "截圖" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:156 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:158 #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:86 #: Source/Core/DolphinQt/MenuBar.cpp:514 msgid "Search" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:102 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:102 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:104 msgid "Search Address" msgstr "" @@ -8318,7 +8319,7 @@ msgstr "" msgid "Select a SD Card Image" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:737 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:667 msgid "Select a file" msgstr "" @@ -8467,7 +8468,7 @@ msgstr "" msgid "Server rejected traversal attempt" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:116 msgid "Set &Value" msgstr "" @@ -8480,7 +8481,7 @@ msgstr "" msgid "Set PC" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:115 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:117 msgid "Set Value From File" msgstr "" @@ -8739,7 +8740,7 @@ msgstr "" msgid "Show in Memory" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:664 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" msgstr "" @@ -8806,18 +8807,18 @@ msgstr "" msgid "Signature Database" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 msgid "Signed 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:141 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:205 +msgid "Signed 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:139 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:203 -msgid "Signed 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Signed 8" msgstr "" @@ -9418,6 +9419,10 @@ msgstr "" msgid "Take Screenshot" msgstr "截取畫面" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 +msgid "Target address range is invalid." +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 msgid "Test" msgstr "測試" @@ -9515,7 +9520,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:523 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9527,11 +9532,11 @@ msgid "" "Do you want to try to repair the NAND?" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:33 msgid "The emulated Wii console has been updated." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:37 +#: Source/Core/DolphinQt/WiiUpdate.cpp:38 msgid "The emulated Wii console is already up-to-date." msgstr "" @@ -9567,13 +9572,13 @@ msgid "" "Do you wish to replace it?" msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:57 +#: Source/Core/AudioCommon/WaveFile.cpp:58 msgid "" "The file {0} could not be opened for writing. Please check if it's already " "opened by another program." msgstr "" -#: Source/Core/AudioCommon/WaveFile.cpp:49 +#: Source/Core/AudioCommon/WaveFile.cpp:50 msgid "The file {0} was already open, the file header will not be written." msgstr "" @@ -9606,7 +9611,7 @@ msgstr "" msgid "The game ID is {0} but should be {1}." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:71 +#: Source/Core/DolphinQt/WiiUpdate.cpp:72 msgid "The game disc does not contain any usable update information." msgstr "" @@ -9614,7 +9619,7 @@ msgstr "" msgid "The game is currently running." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:65 msgid "" "The game's region does not match your console's. To avoid issues with the " "system menu, it is not possible to update the emulated console using this " @@ -9727,7 +9732,7 @@ msgstr "" msgid "The type of a partition could not be read." msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:58 +#: Source/Core/DolphinQt/WiiUpdate.cpp:59 msgid "" "The update has been cancelled. It is strongly recommended to finish it in " "order to avoid inconsistent system software versions." @@ -10046,7 +10051,7 @@ msgid "Toggle Aspect Ratio" msgstr "" #: Source/Core/Core/HotkeyManager.cpp:75 -#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:673 +#: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" @@ -10197,7 +10202,7 @@ msgstr "扳機" msgid "Type" msgstr "類型" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:210 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:212 msgid "Type-based Alignment" msgstr "" @@ -10253,7 +10258,7 @@ msgstr "" msgid "Unable to auto-detect RSO module" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:748 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:678 msgid "Unable to open file." msgstr "" @@ -10273,7 +10278,7 @@ msgid "" "Would you like to ignore this line and continue parsing?" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:756 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:686 msgid "Unable to read file." msgstr "" @@ -10326,7 +10331,7 @@ msgstr "" msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1239 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10402,18 +10407,18 @@ msgstr "" msgid "Unpacking" msgstr "" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:135 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:199 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:137 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:201 msgid "Unsigned 16" msgstr "" +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:138 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:202 +msgid "Unsigned 32" +msgstr "" + #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:136 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:200 -msgid "Unsigned 32" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:134 -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:198 msgid "Unsigned 8" msgstr "" @@ -10448,28 +10453,28 @@ msgstr "" msgid "Update available" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:57 +#: Source/Core/DolphinQt/WiiUpdate.cpp:58 msgid "Update cancelled" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:31 -#: Source/Core/DolphinQt/WiiUpdate.cpp:36 +#: Source/Core/DolphinQt/WiiUpdate.cpp:32 +#: Source/Core/DolphinQt/WiiUpdate.cpp:37 msgid "Update completed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:41 -#: Source/Core/DolphinQt/WiiUpdate.cpp:46 -#: Source/Core/DolphinQt/WiiUpdate.cpp:51 -#: Source/Core/DolphinQt/WiiUpdate.cpp:63 -#: Source/Core/DolphinQt/WiiUpdate.cpp:70 +#: Source/Core/DolphinQt/WiiUpdate.cpp:42 +#: Source/Core/DolphinQt/WiiUpdate.cpp:47 +#: Source/Core/DolphinQt/WiiUpdate.cpp:52 +#: Source/Core/DolphinQt/WiiUpdate.cpp:64 +#: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:93 +#: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" msgstr "" -#: Source/Core/DolphinQt/WiiUpdate.cpp:119 +#: Source/Core/DolphinQt/WiiUpdate.cpp:123 msgid "" "Updating title %1...\n" "This can take a while." @@ -10641,7 +10646,7 @@ msgstr "工具" msgid "V-Sync" msgstr "垂直同步" -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:119 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:121 msgid "Value" msgstr "數值" @@ -11038,7 +11043,7 @@ msgstr "" #. i18n: This string is used for a radio button that represents the type of #. memory breakpoint that gets triggered when a write operation occurs. #. The string does not mean "write-only" in the sense that something cannot be read from. -#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:242 +#: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:244 msgid "Write only" msgstr "" From 263d2a419a465cee55fd7182c822d4667784d36e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 5 Jul 2022 17:15:59 -0700 Subject: [PATCH 320/659] BS2Emu: Fix DFI typo --- Source/Core/Core/Boot/Boot_BS2Emu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index 9068c63983..f8a283144e 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -232,7 +232,7 @@ void CBoot::SetupGCMemory() PowerPC::HostWrite_U32(0x09a7ec80, 0x800000F8); // Bus Clock Speed PowerPC::HostWrite_U32(0x1cf7c580, 0x800000FC); // CPU Clock Speed - PowerPC::HostWrite_U32(0x4c000064, 0x80000300); // Write default DFI Handler: rfi + PowerPC::HostWrite_U32(0x4c000064, 0x80000300); // Write default DSI Handler: rfi PowerPC::HostWrite_U32(0x4c000064, 0x80000800); // Write default FPU Handler: rfi PowerPC::HostWrite_U32(0x4c000064, 0x80000C00); // Write default Syscall Handler: rfi From 3ee4b89a4681b0caa51c9eaad54ea153f36ff00c Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Thu, 23 Jun 2022 02:55:46 -0500 Subject: [PATCH 321/659] VideoCommon: Remember to flush command buffers after multiple EFB copies --- Source/Core/VideoCommon/VertexManagerBase.cpp | 16 ++++++++++++++++ Source/Core/VideoCommon/VertexManagerBase.h | 1 + 2 files changed, 17 insertions(+) diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index 72f02927b5..670fcaf607 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -757,6 +757,16 @@ void VertexManagerBase::OnDraw() { m_draw_counter++; + // If the last efb copy was too close to the one before it, don't forget about it until the next + // efb copy happens (which might not be for a long time) + u32 diff = m_draw_counter - m_last_efb_copy_draw_counter; + if (m_unflushed_efb_copy && diff > MINIMUM_DRAW_CALLS_PER_COMMAND_BUFFER_FOR_READBACK) + { + g_renderer->Flush(); + m_unflushed_efb_copy = false; + m_last_efb_copy_draw_counter = m_draw_counter; + } + // If we didn't have any CPU access last frame, do nothing. if (m_scheduled_command_buffer_kicks.empty() || !m_allow_background_execution) return; @@ -768,6 +778,8 @@ void VertexManagerBase::OnDraw() { // Kick a command buffer on the background thread. g_renderer->Flush(); + m_unflushed_efb_copy = false; + m_last_efb_copy_draw_counter = m_draw_counter; } } @@ -794,8 +806,12 @@ void VertexManagerBase::OnEFBCopyToRAM() const u32 diff = m_draw_counter - m_last_efb_copy_draw_counter; m_last_efb_copy_draw_counter = m_draw_counter; if (diff < MINIMUM_DRAW_CALLS_PER_COMMAND_BUFFER_FOR_READBACK) + { + m_unflushed_efb_copy = true; return; + } + m_unflushed_efb_copy = false; g_renderer->Flush(); } diff --git a/Source/Core/VideoCommon/VertexManagerBase.h b/Source/Core/VideoCommon/VertexManagerBase.h index e4d029e9c7..ee1ce9408a 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.h +++ b/Source/Core/VideoCommon/VertexManagerBase.h @@ -210,6 +210,7 @@ private: // CPU access tracking u32 m_draw_counter = 0; u32 m_last_efb_copy_draw_counter = 0; + bool m_unflushed_efb_copy = false; std::vector m_cpu_accesses_this_frame; std::vector m_scheduled_command_buffer_kicks; bool m_allow_background_execution = true; From 958354e2854115f912396d2037801ffa7ab05859 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Wed, 6 Jul 2022 21:51:39 -0500 Subject: [PATCH 322/659] Data: add Super Mario Galaxy bloom definition graphics mod --- .../GraphicMods/Super Mario Galaxy/RMG.txt | 0 .../Super Mario Galaxy/metadata.json | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Galaxy/RMG.txt create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Galaxy/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Super Mario Galaxy/RMG.txt b/Data/Sys/Load/GraphicMods/Super Mario Galaxy/RMG.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Super Mario Galaxy/metadata.json b/Data/Sys/Load/GraphicMods/Super Mario Galaxy/metadata.json new file mode 100644 index 0000000000..156a98e6e6 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Super Mario Galaxy/metadata.json @@ -0,0 +1,23 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "iwubcode" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000010_80x57_4" + }, + { + "type": "efb", + "texture_filename": "efb1_n000011_160x114_4" + } + ] + } + ] +} \ No newline at end of file From 6104ee09a96703b094bfdfbded44e474bc5131bc Mon Sep 17 00:00:00 2001 From: Techjar Date: Thu, 7 Jul 2022 15:02:51 -0400 Subject: [PATCH 323/659] Data: Add Super Mario Sunshine goop map graphics mod --- .../GraphicMods/Super Mario Sunshine/GMS.txt | 0 .../Super Mario Sunshine/metadata.json | 68 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Sunshine/GMS.txt create mode 100644 Data/Sys/Load/GraphicMods/Super Mario Sunshine/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Super Mario Sunshine/GMS.txt b/Data/Sys/Load/GraphicMods/Super Mario Sunshine/GMS.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Super Mario Sunshine/metadata.json b/Data/Sys/Load/GraphicMods/Super Mario Sunshine/metadata.json new file mode 100644 index 0000000000..931602a373 --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Super Mario Sunshine/metadata.json @@ -0,0 +1,68 @@ +{ + "meta": + { + "title": "Native Resolution Goop", + "author": "Techjar", + "description": "Scales goop maps to draw at their native resolution, regardless of internal resolution. Results in goop having more rounded off edges rather than looking very blocky at higher resolutions." + }, + "groups": + [ + { + "name": "Goop", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000000_32x32_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_64x32_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_32x64_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_64x64_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_128x64_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_64x128_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_128x128_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_256x128_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_128x256_1" + }, + { + "type": "efb", + "texture_filename": "efb1_n000000_256x256_1" + } + ] + } + ], + "features": + [ + { + "group": "Goop", + "action": "scale", + "action_data": { + "X": 1.0, + "Y": 1.0, + "Z": 1.0 + } + } + ] +} \ No newline at end of file From 3092f40e9f38b6fb862f292dd85fc38c955d1013 Mon Sep 17 00:00:00 2001 From: Merry Date: Sun, 3 Jul 2022 15:26:50 +0100 Subject: [PATCH 324/659] Arm64Emitter: Simplify LogicalImm logic Heavily simplify logical immediate encoding. This is based on the observation that if a valid repeating element exists, it repeats through `value`. Thus it does not matter which one you analyse. Thus we skip over the least significent element if LSB = 1 by masking it out with `inverse_mask_from_trailing_ones`, to avoid the degenerate case of a stretch of 1 bits going 'round the end' of the word. --- Source/Core/Common/Arm64Emitter.h | 198 ++++++------------------------ 1 file changed, 37 insertions(+), 161 deletions(-) diff --git a/Source/Core/Common/Arm64Emitter.h b/Source/Core/Common/Arm64Emitter.h index f3be5e1e00..99d6b720fc 100644 --- a/Source/Core/Common/Arm64Emitter.h +++ b/Source/Core/Common/Arm64Emitter.h @@ -509,8 +509,6 @@ struct LogicalImm constexpr LogicalImm(u64 value, u32 width) { - bool negate = false; - // Logical immediates are encoded using parameters n, imm_s and imm_r using // the following table: // @@ -526,28 +524,6 @@ struct LogicalImm // A pattern is constructed of size bits, where the least significant S+1 bits // are set. The pattern is rotated right by R, and repeated across a 32 or // 64-bit value, depending on destination register width. - // - // Put another way: the basic format of a logical immediate is a single - // contiguous stretch of 1 bits, repeated across the whole word at intervals - // given by a power of 2. To identify them quickly, we first locate the - // lowest stretch of 1 bits, then the next 1 bit above that; that combination - // is different for every logical immediate, so it gives us all the - // information we need to identify the only logical immediate that our input - // could be, and then we simply check if that's the value we actually have. - // - // (The rotation parameter does give the possibility of the stretch of 1 bits - // going 'round the end' of the word. To deal with that, we observe that in - // any situation where that happens the bitwise NOT of the value is also a - // valid logical immediate. So we simply invert the input whenever its low bit - // is set, and then we know that the rotated case can't arise.) - - if (value & 1) - { - // If the low bit is 1, negate the value, and set a flag to remember that we - // did (so that we can adjust the return values appropriately). - negate = true; - value = ~value; - } constexpr int kWRegSizeInBits = 32; @@ -558,156 +534,56 @@ struct LogicalImm // as a logical immediate will also be the correct encoding of the 32-bit // value. - // The most-significant 32 bits may not be zero (ie. negate is true) so - // shift the value left before duplicating it. value <<= kWRegSizeInBits; value |= value >> kWRegSizeInBits; } - // The basic analysis idea: imagine our input word looks like this. - // - // 0011111000111110001111100011111000111110001111100011111000111110 - // c b a - // |<--d-->| - // - // We find the lowest set bit (as an actual power-of-2 value, not its index) - // and call it a. Then we add a to our original number, which wipes out the - // bottommost stretch of set bits and replaces it with a 1 carried into the - // next zero bit. Then we look for the new lowest set bit, which is in - // position b, and subtract it, so now our number is just like the original - // but with the lowest stretch of set bits completely gone. Now we find the - // lowest set bit again, which is position c in the diagram above. Then we'll - // measure the distance d between bit positions a and c (using CLZ), and that - // tells us that the only valid logical immediate that could possibly be equal - // to this number is the one in which a stretch of bits running from a to just - // below b is replicated every d bits. - u64 a = Common::LargestPowerOf2Divisor(value); - u64 value_plus_a = value + a; - u64 b = Common::LargestPowerOf2Divisor(value_plus_a); - u64 value_plus_a_minus_b = value_plus_a - b; - u64 c = Common::LargestPowerOf2Divisor(value_plus_a_minus_b); - - int d = 0, clz_a = 0, out_n = 0; - u64 mask = 0; - - if (c != 0) + // Identify the smallest repeating element size. + size_t esize = 0; + for (size_t i = 64; i > 1; i /= 2) { - // The general case, in which there is more than one stretch of set bits. - // Compute the repeat distance d, and set up a bitmask covering the basic - // unit of repetition (i.e. a word with the bottom d bits set). Also, in all - // of these cases the N bit of the output will be zero. - clz_a = Common::CountLeadingZeros(a); - int clz_c = Common::CountLeadingZeros(c); - d = clz_a - clz_c; - mask = ((UINT64_C(1) << d) - 1); - out_n = 0; - } - else - { - // Handle degenerate cases. - // - // If any of those 'find lowest set bit' operations didn't find a set bit at - // all, then the word will have been zero thereafter, so in particular the - // last lowest_set_bit operation will have returned zero. So we can test for - // all the special case conditions in one go by seeing if c is zero. - if (a == 0) + if (value != Common::RotateRight(value, i / 2)) { - // The input was zero (or all 1 bits, which will come to here too after we - // inverted it at the start of the function), which is invalid. - return; - } - else - { - // Otherwise, if c was zero but a was not, then there's just one stretch - // of set bits in our word, meaning that we have the trivial case of - // d == 64 and only one 'repetition'. Set up all the same variables as in - // the general case above, and set the N bit in the output. - clz_a = Common::CountLeadingZeros(a); - d = 64; - mask = ~UINT64_C(0); - out_n = 1; + esize = i; + break; } } - // If the repeat period d is not a power of two, it can't be encoded. - if (!MathUtil::IsPow2(d)) - return; - - // If the bit stretch (b - a) does not fit within the mask derived from the - // repeat period, then fail. - if (((b - a) & ~mask) != 0) - return; - - // The only possible option is b - a repeated every d bits. Now we're going to - // actually construct the valid logical immediate derived from that - // specification, and see if it equals our original input. - // - // To repeat a value every d bits, we multiply it by a number of the form - // (1 + 2^d + 2^(2d) + ...), i.e. 0x0001000100010001 or similar. These can - // be derived using a table lookup on CLZ(d). - constexpr std::array multipliers = {{ - 0x0000000000000001UL, - 0x0000000100000001UL, - 0x0001000100010001UL, - 0x0101010101010101UL, - 0x1111111111111111UL, - 0x5555555555555555UL, - }}; - - const int multiplier_idx = Common::CountLeadingZeros((u64)d) - 57; - - // Ensure that the index to the multipliers array is within bounds. - DEBUG_ASSERT((multiplier_idx >= 0) && - (static_cast(multiplier_idx) < multipliers.size())); - - const u64 multiplier = multipliers[multiplier_idx]; - const u64 candidate = (b - a) * multiplier; - - // The candidate pattern doesn't match our input value, so fail. - if (value != candidate) - return; - - // We have a match! This is a valid logical immediate, so now we have to - // construct the bits and pieces of the instruction encoding that generates - // it. - n = out_n; - - // Count the set bits in our basic stretch. The special case of clz(0) == -1 - // makes the answer come out right for stretches that reach the very top of - // the word (e.g. numbers like 0xffffc00000000000). - const int clz_b = (b == 0) ? -1 : Common::CountLeadingZeros(b); - s = clz_a - clz_b; - - // Decide how many bits to rotate right by, to put the low bit of that basic - // stretch in position a. - if (negate) + if (value == 0 || (~value) == 0 || esize == 0 || esize > width) { - // If we inverted the input right at the start of this function, here's - // where we compensate: the number of set bits becomes the number of clear - // bits, and the rotation count is based on position b rather than position - // a (since b is the location of the 'lowest' 1 bit after inversion). - s = d - s; - r = (clz_b + 1) & (d - 1); - } - else - { - r = (clz_a + 1) & (d - 1); + valid = false; + return; } - // Now we're done, except for having to encode the S output in such a way that + const u64 emask = (~u64{0}) >> (64 - esize); + + // Extract the repeating element, rotating it such that the LSB is 1: + // If LSB is already one, we mask away the trailing sequence of ones and + // pick the next sequence of ones. This ensures we get a complete element + // that has not been cut-in-half due to rotation across the word boundary. + + const u64 inverse_mask_from_trailing_ones = ~value | (value + 1); + const size_t rotation = Common::LeastSignificantSetBit(value & inverse_mask_from_trailing_ones); + const u64 element = Common::RotateRight(value, rotation) & emask; + + // In order to be a valid element of an AArch64 logical immediate, it must + // be contiguous. + + if (!Common::IsValidLowMask(element)) + { + valid = false; + return; + } + + // Now we're done. We just have to encode the S output in such a way that // it gives both the number of set bits and the length of the repeated - // segment. The s field is encoded like this: - // - // imms size S - // ssssss 64 UInt(ssssss) - // 0sssss 32 UInt(sssss) - // 10ssss 16 UInt(ssss) - // 110sss 8 UInt(sss) - // 1110ss 4 UInt(ss) - // 11110s 2 UInt(s) - // - // So we 'or' (-d << 1) with our computed s to form imms. - s = ((-d << 1) | (s - 1)) & 0x3f; + // segment. + + const size_t tmp = ((~esize + 1) << 1) | (Common::CountSetBits(element) - 1); + + r = static_cast((esize - rotation) & (esize - 1)); + s = tmp & 0x3f; + n = (~tmp >> 6) & 1; valid = true; } From 5ed06c2b030d210aa5f1ab79ed0ccf7795ab2eb8 Mon Sep 17 00:00:00 2001 From: maxdunbar <48608399+maxdunbar@users.noreply.github.com> Date: Thu, 7 Jul 2022 21:04:46 -0700 Subject: [PATCH 325/659] Changing link to github wiki After some discussion the GitHub wiki is more up to date and would be more useful than the dolphin website's wiki. --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 67c6253747..4fb95e4ed8 100644 --- a/Readme.md +++ b/Readme.md @@ -61,7 +61,7 @@ since the Binary directory contains a working Dolphin distribution. Dolphin requires [CMake](https://cmake.org/) for systems other than Windows. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any -missing packages yourself. You may refer to the [wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux) for more information. +missing packages yourself. You may refer to the [wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux](https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux) for more information. Make sure to pull submodules before building: ```sh From 32d90d508099d1c0f9a5b1a0ff4dcb6119d765f1 Mon Sep 17 00:00:00 2001 From: maxdunbar <48608399+maxdunbar@users.noreply.github.com> Date: Thu, 7 Jul 2022 21:07:44 -0700 Subject: [PATCH 326/659] Fixing the github wiki link Its late and I accidently linked to both wikis, this just links to the github wiki --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 4fb95e4ed8..f5d4d7bf58 100644 --- a/Readme.md +++ b/Readme.md @@ -61,7 +61,7 @@ since the Binary directory contains a working Dolphin distribution. Dolphin requires [CMake](https://cmake.org/) for systems other than Windows. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any -missing packages yourself. You may refer to the [wiki](https://wiki.dolphin-emu.org/index.php?title=Building_Dolphin_on_Linux](https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux) for more information. +missing packages yourself. You may refer to the [wiki](https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux) for more information. Make sure to pull submodules before building: ```sh From 0fac1d6e87990a732916b107ec836ca3b0f0e393 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Mon, 13 Jun 2022 13:07:20 -0700 Subject: [PATCH 327/659] VideoCommon: Fix D3D shader warning X3571 (negative base for pow()) Add abs() to fix "pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them". --- Source/Core/VideoCommon/TextureConversionShader.cpp | 4 ++-- Source/Core/VideoCommon/TextureConverterShaderGen.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 19f2a384f0..2c53250cea 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -749,8 +749,8 @@ static void WriteXFBEncoder(ShaderCode& code, APIType api_type, const EFBCopyPar WriteSampleColor(code, "rgb", "color1", 1, api_type, params); // Gamma is only applied to XFB copies. - code.Write(" color0 = pow(color0, float3(gamma_rcp, gamma_rcp, gamma_rcp));\n" - " color1 = pow(color1, float3(gamma_rcp, gamma_rcp, gamma_rcp));\n"); + code.Write(" color0 = pow(abs(color0), float3(gamma_rcp, gamma_rcp, gamma_rcp));\n" + " color1 = pow(abs(color1), float3(gamma_rcp, gamma_rcp, gamma_rcp));\n"); // Convert to YUV. code.Write(" const float3 y_const = float3(0.257, 0.504, 0.098);\n" diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index c5a440b801..579dbf69c5 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -313,8 +313,8 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) break; case EFBCopyFormat::XFB: - out.Write( - " ocol0 = float4(pow(texcol.rgb, float3(gamma_rcp, gamma_rcp, gamma_rcp)), 1.0f);\n"); + out.Write(" ocol0 = float4(pow(abs(texcol.rgb), float3(gamma_rcp, gamma_rcp, gamma_rcp)), " + "1.0f);\n"); break; default: From 71541c13242ef36e49ee7974d792a9e887c405df Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Thu, 7 Jul 2022 13:54:31 -0700 Subject: [PATCH 328/659] VideoCommon: Fix D3D shader warning X4000 (uninitialized variables) Initialize alpha_A and alpha_B. They were previously only initialized in cases where they were used, but D3D isn't able to figure that out. --- Source/Core/VideoCommon/UberShaderPixel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index a96b15c83d..67f7ce5524 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -889,8 +889,8 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, out.Write( " uint alpha_compare_op = alpha_scale << 1 | uint(alpha_op);\n" "\n" - " int alpha_A;\n" - " int alpha_B;\n" + " int alpha_A = 0;\n" + " int alpha_B = 0;\n" " if (alpha_bias != 3u || alpha_compare_op > 5u) {{\n" " // Small optimisation here: alpha_A and alpha_B are unused by compare ops 0-5\n" " alpha_A = selectAlphaInput(s, ss, {0}colors_0, {0}colors_1, alpha_a) & 255;\n" From e1e0f42b37dd7f2343b9df99222f32ae56963456 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Thu, 7 Jul 2022 17:00:21 -0700 Subject: [PATCH 329/659] VideoCommon: Fix D3D shader warning X3557 (single iteration loop) Fix warning "loop only executes for 1 iteration(s), forcing loop to unroll" when vertex_in == 1 --- Source/Core/VideoCommon/GeometryShaderGen.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 150354e4f3..b9ec0786b2 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -216,7 +216,11 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& if (wireframe) out.Write("\tVS_OUTPUT first;\n"); - out.Write("\tfor (int i = 0; i < {}; ++i) {{\n", vertex_in); + // Avoid D3D warning about forced unrolling of single-iteration loop + if (vertex_in > 1) + out.Write("\tfor (int i = 0; i < {}; ++i) {{\n", vertex_in); + else + out.Write("\tint i = 0;\n"); if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) { @@ -307,7 +311,9 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig& EmitVertex(out, host_config, uid_data, "f", api_type, wireframe, stereo, true); } - out.Write("\t}}\n"); + // Only close loop if previous code was in one (See D3D warning above) + if (vertex_in > 1) + out.Write("\t}}\n"); EndPrimitive(out, host_config, uid_data, api_type, wireframe, stereo); From e6cbc8f631f7f211a91fddf6bfcda547444d4939 Mon Sep 17 00:00:00 2001 From: SilentHeII <29898818+SilentHeII@users.noreply.github.com> Date: Sat, 9 Jul 2022 01:13:09 -0500 Subject: [PATCH 330/659] Add Bloom Definitions for Sin and Punishment 2 Adds bloom definitions for Sin and Punishment: Star Successor for use with bloom removal and native resolution bloom. --- .../R2V.txt | 0 .../metadata.json | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/R2V.txt create mode 100644 Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/R2V.txt b/Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/R2V.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/metadata.json b/Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/metadata.json new file mode 100644 index 0000000000..e854e29ebd --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Sin and Punishment - Star Successor/metadata.json @@ -0,0 +1,27 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "Silent Hell" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000142_38x28_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000143_19x14_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000144_9x7_6" + } + ] + } + ] +} \ No newline at end of file From e072aaa76964730d6c647f436b943c6897caaf3f Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 9 Jul 2022 13:17:53 +0200 Subject: [PATCH 331/659] ShaderCache: Fix inverted usage of palette_format. --- Source/Core/VideoCommon/ShaderCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 8bc14d28ed..65e8c22882 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -1371,8 +1371,8 @@ ShaderCache::GetTextureDecodingShader(TextureFormat format, const std::string name = palette_format.has_value() ? - fmt::format("Texture decoding compute shader: {}", format) : - fmt::format("Texture decoding compute shader: {}, {}", format, *palette_format); + fmt::format("Texture decoding compute shader: {}, {}", format, *palette_format) : + fmt::format("Texture decoding compute shader: {}", format); std::unique_ptr shader = g_renderer->CreateShaderFromSource(ShaderStage::Compute, shader_source, name); From 66f330e57316257fe81b46f57dad22ea6dee7bae Mon Sep 17 00:00:00 2001 From: Christopher Rudolph Date: Sat, 9 Jul 2022 17:02:09 +0200 Subject: [PATCH 332/659] Add a check for libfmt version so that in case libfmt-9 is used the function is_compile_string is called under it's new namespace --- Source/Core/Common/MsgHandler.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Core/Common/MsgHandler.h b/Source/Core/Common/MsgHandler.h index 750da515b0..1d6a467852 100644 --- a/Source/Core/Common/MsgHandler.h +++ b/Source/Core/Common/MsgHandler.h @@ -41,7 +41,11 @@ bool MsgAlertFmt(bool yes_no, MsgType style, Common::Log::LogType log_type, cons static_assert(NumFields == sizeof...(args), "Unexpected number of replacement fields in format string; did you pass too few or " "too many arguments?"); +#if FMT_VERSION >= 90000 + static_assert(fmt::detail::is_compile_string::value); +#else static_assert(fmt::is_compile_string::value); +#endif return MsgAlertFmtImpl(yes_no, style, log_type, file, line, format, fmt::make_format_args(args...)); } @@ -56,7 +60,11 @@ bool MsgAlertFmtT(bool yes_no, MsgType style, Common::Log::LogType log_type, con static_assert(NumFields == sizeof...(args), "Unexpected number of replacement fields in format string; did you pass too few or " "too many arguments?"); +#if FMT_VERSION >= 90000 + static_assert(fmt::detail::is_compile_string::value); +#else static_assert(fmt::is_compile_string::value); +#endif auto arg_list = fmt::make_format_args(args...); return MsgAlertFmtImpl(yes_no, style, log_type, file, line, translated_format, arg_list); } From 6f40981ac068cece167b3567010d500747d7e95a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 9 Jul 2022 20:10:00 +0200 Subject: [PATCH 333/659] JitArm64: Fix GPR unlocking in psq_stXX This is what happens when I copypaste things a bit too quickly --- .../Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index c7c5dcb0f9..7914f0c371 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -276,9 +276,9 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) gpr.Unlock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W30); fpr.Unlock(ARM64Reg::Q0); if (!js.assumeNoPairedQuantize || !jo.fastmem_arena) - gpr.Lock(ARM64Reg::W2); + gpr.Unlock(ARM64Reg::W2); if (!js.assumeNoPairedQuantize && !jo.fastmem_arena) - gpr.Lock(ARM64Reg::W3); + gpr.Unlock(ARM64Reg::W3); if (!js.assumeNoPairedQuantize) fpr.Unlock(ARM64Reg::Q1); } From 0ebc510e6f997dcac30ccbfb7b873e3b097c7d41 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 9 Jul 2022 21:19:25 +0200 Subject: [PATCH 334/659] JitArm64: Pass 32-bit temp GPR to WriteConditionalExceptionExit If a 64-bit register is passed to WriteConditionalExceptionExit, the LDR instruction in it will read too much data. This seems to be harmless right now, but causes problem in one of my PRs. --- .../Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index 7914f0c371..a88543e995 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -109,7 +109,7 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) LDR(EncodeRegTo64(type_reg), ARM64Reg::X30, ArithOption(EncodeRegTo64(type_reg), true)); BLR(EncodeRegTo64(type_reg)); - WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::X30, ARM64Reg::Q1); + WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::W30, ARM64Reg::Q1); m_float_emit.ORR(EncodeRegToDouble(VS), ARM64Reg::D0, ARM64Reg::D0); } @@ -261,7 +261,7 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) LDR(EncodeRegTo64(type_reg), ARM64Reg::X30, ArithOption(EncodeRegTo64(type_reg), true)); BLR(EncodeRegTo64(type_reg)); - WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::X30, ARM64Reg::Q1); + WriteConditionalExceptionExit(EXCEPTION_DSI, ARM64Reg::W30, ARM64Reg::Q1); } if (update && !early_update) From 087020b23adf812b5b53664ff7197f74f74e8713 Mon Sep 17 00:00:00 2001 From: schthack Date: Fri, 8 Jul 2022 10:20:18 -0400 Subject: [PATCH 335/659] Refactoring of the code to match dolphin style Changed access for offsetof + some clean up --- Source/Core/Common/Network.cpp | 331 +++++++++- Source/Core/Common/Network.h | 108 ++- Source/Core/Core/CMakeLists.txt | 2 +- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 621 +++++++++--------- Source/Core/Core/HW/EXI/BBA/BuiltIn.h | 16 +- .../Core/Core/HW/EXI/EXI_DeviceEthernet.cpp | 2 - Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h | 34 +- .../BroadbandAdapterSettingsDialog.cpp | 2 +- 8 files changed, 733 insertions(+), 383 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 756dd0381e..d03b537e25 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -17,6 +17,7 @@ #include +#include "Common/BitUtils.h" #include "Common/Random.h" #include "Common/StringUtil.h" @@ -114,6 +115,11 @@ u16 IPv4Header::Size() const return static_cast(SIZE); } +u8 IPv4Header::DefinedSize() const +{ + return (version_ihl & 0xf) * 4; +} + TCPHeader::TCPHeader() = default; TCPHeader::TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, const u8* data, @@ -148,12 +154,17 @@ TCPHeader::TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, u3 destination_port = to.sin_port; sequence_number = htonl(seq); acknowledgement_number = htonl(ack); - properties = 0x50 | flags; + properties = htons(flags); window_size = 0x7c; checksum = 0; } +u8 TCPHeader::GetHeaderSize() const +{ + return (ntohs(properties) & 0xf000) >> 10; +} + u16 TCPHeader::Size() const { return static_cast(SIZE); @@ -185,7 +196,7 @@ u8 UDPHeader::IPProto() const ARPHeader::ARPHeader() = default; -ARPHeader::ARPHeader(u32 from_ip, MACAddress from_mac, u32 to_ip, MACAddress to_mac) +ARPHeader::ARPHeader(u32 from_ip, const MACAddress& from_mac, u32 to_ip, const MACAddress& to_mac) { hardware_type = htons(BBA_HARDWARE_TYPE); protocol_type = IPV4_HEADER_TYPE; @@ -205,7 +216,7 @@ u16 ARPHeader::Size() const DHCPBody::DHCPBody() = default; -DHCPBody::DHCPBody(u32 transaction, MACAddress client_address, u32 new_ip, u32 serv_ip) +DHCPBody::DHCPBody(u32 transaction, const MACAddress& client_address, u32 new_ip, u32 serv_ip) { transaction_id = transaction; message_type = DHCPConst::MESSAGE_REPLY; @@ -216,24 +227,57 @@ DHCPBody::DHCPBody(u32 transaction, MACAddress client_address, u32 new_ip, u32 s server_ip = serv_ip; } -// Add an option to the DHCP Body -bool DHCPBody::AddDHCPOption(u8 size, u8 fnc, const std::vector& params) -{ - int i = 0; - while (options[i] != 0) - { - i += options[i + 1] + 2; - if (i >= std::size(options)) - { - return false; - } - } +DHCPPacket::DHCPPacket() = default; - options[i++] = fnc; - options[i++] = size; - for (auto val : params) - options[i++] = val; - return true; +DHCPPacket::DHCPPacket(const std::vector& data) +{ + if (data.size() < DHCPBody::SIZE) + return; + body = Common::BitCastPtr(data.data()); + std::size_t offset = DHCPBody::SIZE; + + while (offset < data.size() - 1) + { + const u8 fnc = data[offset]; + if (fnc == 0) + { + ++offset; + continue; + } + if (fnc == 255) + break; + const u8 len = data[offset + 1]; + const auto opt_begin = data.begin() + offset; + offset += 2 + len; + if (offset > data.size()) + break; + const auto opt_end = data.begin() + offset; + options.emplace_back(opt_begin, opt_end); + } +} + +void DHCPPacket::AddOption(u8 fnc, const std::vector& params) +{ + if (params.size() > 255) + return; + std::vector opt = {fnc, u8(params.size())}; + opt.insert(opt.end(), params.begin(), params.end()); + options.emplace_back(std::move(opt)); +} + +std::vector DHCPPacket::Build() const +{ + const u8* body_ptr = reinterpret_cast(&body); + std::vector result(body_ptr, body_ptr + DHCPBody::SIZE); + + for (auto& opt : options) + { + result.insert(result.end(), opt.begin(), opt.end()); + } + const std::vector no_option = {255, 0, 0, 0}; + result.insert(result.end(), no_option.begin(), no_option.end()); + + return result; } // Compute the network checksum with a 32-bit accumulator using the @@ -253,13 +297,12 @@ u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value) return ~static_cast(checksum); } -// Compute the TCP network checksum with a fake header -u16 ComputeTCPNetworkChecksum(const sockaddr_in& from, const sockaddr_in& to, const void* data, +// Compute the TCP checksum with its pseudo header +u16 ComputeTCPNetworkChecksum(const IPAddress& from, const IPAddress& to, const void* data, u16 length, u8 protocol) { - // Compute the TCP checksum with its pseudo header - const u32 source_addr = ntohl(from.sin_addr.s_addr); - const u32 destination_addr = ntohl(to.sin_addr.s_addr); + const u32 source_addr = ntohl(Common::BitCast(from)); + const u32 destination_addr = ntohl(Common::BitCast(to)); const u32 initial_value = (source_addr >> 16) + (source_addr & 0xFFFF) + (destination_addr >> 16) + (destination_addr & 0xFFFF) + protocol + length; @@ -267,6 +310,244 @@ u16 ComputeTCPNetworkChecksum(const sockaddr_in& from, const sockaddr_in& to, co return htons(static_cast(tcp_checksum)); } +ARPPacket::ARPPacket() = default; + +u16 ARPPacket::Size() const +{ + return static_cast(SIZE); +} + +ARPPacket::ARPPacket(const MACAddress& destination, const MACAddress& source) +{ + eth_header.destination = destination; + eth_header.source = source; + eth_header.ethertype = htons(ARP_ETHERTYPE); +} + +std::vector ARPPacket::Build() const +{ + std::vector result; + result.reserve(EthernetHeader::SIZE + ARPHeader::SIZE); + const u8* eth_ptr = reinterpret_cast(ð_header); + result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); + const u8* arp_ptr = reinterpret_cast(&arp_header); + result.insert(result.end(), arp_ptr, arp_ptr + ARPHeader::SIZE); + return result; +} + +TCPPacket::TCPPacket() = default; + +TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source) +{ + eth_header.destination = destination; + eth_header.source = source; + eth_header.ethertype = htons(IPV4_ETHERTYPE); +} + +TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source, + const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags) +{ + eth_header.destination = destination; + eth_header.source = source; + eth_header.ethertype = htons(IPV4_ETHERTYPE); + + ip_header = Common::IPv4Header(Common::TCPHeader::SIZE, IPPROTO_TCP, from, to); + tcp_header = Common::TCPHeader(from, to, seq, ack, flags); +} + +std::vector TCPPacket::Build() +{ + std::vector result; + result.reserve(Size()); + + // recalc size + ip_header.total_len = htons(static_cast(IPv4Header::SIZE + ipv4_options.size() + + TCPHeader::SIZE + tcp_options.size() + data.size())); + + // copy data + const u8* eth_ptr = reinterpret_cast(ð_header); + result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); + const u8* ip_ptr = reinterpret_cast(&ip_header); + result.insert(result.end(), ip_ptr, ip_ptr + IPv4Header::SIZE); + std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; + if (ipv4_options.size() > 0) + { + result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); + offset += ipv4_options.size(); + } + tcp_header.checksum = 0; + const u16 props = (ntohs(tcp_header.properties) & 0xfff) | + (static_cast((tcp_options.size() + TCPHeader::SIZE) & 0x3c) << 10); + tcp_header.properties = htons(props); + const u8* tcp_ptr = reinterpret_cast(&tcp_header); + result.insert(result.end(), tcp_ptr, tcp_ptr + TCPHeader::SIZE); + const std::size_t tcp_offset = offset; + offset += TCPHeader::SIZE; + if (tcp_options.size() > 0) + { + result.insert(result.end(), tcp_options.begin(), tcp_options.end()); + offset += tcp_options.size(); + } + if (data.size() > 0) + { + result.insert(result.end(), data.begin(), data.end()); + } + tcp_header.checksum = ComputeTCPNetworkChecksum( + ip_header.source_addr, ip_header.destination_addr, &result[tcp_offset], + static_cast(result.size() - tcp_offset), IPPROTO_TCP); + std::copy(tcp_ptr, tcp_ptr + TCPHeader::SIZE, result.begin() + tcp_offset); + return result; +} + +u16 TCPPacket::Size() const +{ + return static_cast(MIN_SIZE + data.size() + ipv4_options.size() + tcp_options.size()); +} + +UDPPacket::UDPPacket() = default; + +UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source) +{ + eth_header.destination = destination; + eth_header.source = source; + eth_header.ethertype = htons(IPV4_ETHERTYPE); +} + +UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source, + const sockaddr_in& from, const sockaddr_in& to, const std::vector& payload) +{ + eth_header.destination = destination; + eth_header.source = source; + eth_header.ethertype = htons(IPV4_ETHERTYPE); + + ip_header = Common::IPv4Header(static_cast(payload.size() + Common::UDPHeader::SIZE), + IPPROTO_UDP, from, to); + udp_header = Common::UDPHeader(from, to, static_cast(payload.size())); + data = payload; +} + +std::vector UDPPacket::Build() +{ + std::vector result; + result.reserve(Size()); + + // recalc size + ip_header.total_len = htons( + static_cast(IPv4Header::SIZE + ipv4_options.size() + UDPHeader::SIZE + data.size())); + udp_header.length = htons(static_cast(UDPHeader::SIZE + data.size())); + + // copy data + const u8* eth_ptr = reinterpret_cast(ð_header); + result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); + const u8* ip_ptr = reinterpret_cast(&ip_header); + result.insert(result.end(), ip_ptr, ip_ptr + IPv4Header::SIZE); + std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; + if (ipv4_options.size() > 0) + { + result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); + offset += ipv4_options.size(); + } + udp_header.checksum = 0; + const u8* udp_ptr = reinterpret_cast(&udp_header); + result.insert(result.end(), udp_ptr, udp_ptr + UDPHeader::SIZE); + const std::size_t udp_offset = offset; + offset += UDPHeader::SIZE; + if (data.size() > 0) + { + result.insert(result.end(), data.begin(), data.end()); + } + udp_header.checksum = ComputeTCPNetworkChecksum( + ip_header.source_addr, ip_header.destination_addr, &result[udp_offset], + static_cast(result.size() - udp_offset), IPPROTO_UDP); + std::copy(udp_ptr, udp_ptr + UDPHeader::SIZE, result.begin() + udp_offset); + + return result; +} + +u16 UDPPacket::Size() const +{ + return static_cast(MIN_SIZE + data.size() + ipv4_options.size()); +} + +PacketView::PacketView(const u8* ptr, std::size_t size) : m_ptr(ptr), m_size(size) +{ +} + +std::optional PacketView::GetEtherType() const +{ + if (m_size < EthernetHeader::SIZE) + return std::nullopt; + const std::size_t offset = offsetof(EthernetHeader, ethertype); + return ntohs(Common::BitCastPtr(m_ptr + offset)); +} + +std::optional PacketView::GetARPPacket() const +{ + if (m_size < ARPPacket::SIZE) + return std::nullopt; + return Common::BitCastPtr(m_ptr); +} + +std::optional PacketView::GetIPProto() const +{ + if (m_size < EthernetHeader::SIZE + IPv4Header::SIZE) + return std::nullopt; + return m_ptr[EthernetHeader::SIZE + offsetof(IPv4Header, protocol)]; +} + +std::optional PacketView::GetTCPPacket() const +{ + if (m_size < TCPPacket::MIN_SIZE) + return std::nullopt; + TCPPacket result; + result.eth_header = Common::BitCastPtr(m_ptr); + result.ip_header = Common::BitCastPtr(m_ptr + EthernetHeader::SIZE); + const u16 offset = result.ip_header.DefinedSize() + EthernetHeader::SIZE; + if (m_size < offset + TCPHeader::SIZE) + return std::nullopt; + result.ipv4_options = + std::vector(m_ptr + EthernetHeader::SIZE + IPv4Header::SIZE, m_ptr + offset); + result.tcp_header = Common::BitCastPtr(m_ptr + offset); + const u16 data_offset = result.tcp_header.GetHeaderSize() + offset; + + const u16 total_len = ntohs(result.ip_header.total_len); + const std::size_t end = EthernetHeader::SIZE + total_len; + + if (m_size < end || end < data_offset) + return std::nullopt; + + result.tcp_options = std::vector(m_ptr + offset + TCPHeader::SIZE, m_ptr + data_offset); + result.data = std::vector(m_ptr + data_offset, m_ptr + end); + + return result; +} + +std::optional PacketView::GetUDPPacket() const +{ + if (m_size < UDPPacket::MIN_SIZE) + return std::nullopt; + UDPPacket result; + result.eth_header = Common::BitCastPtr(m_ptr); + result.ip_header = Common::BitCastPtr(m_ptr + EthernetHeader::SIZE); + const u16 offset = result.ip_header.DefinedSize() + EthernetHeader::SIZE; + if (m_size < offset + UDPHeader::SIZE) + return std::nullopt; + result.ipv4_options = + std::vector(m_ptr + EthernetHeader::SIZE + IPv4Header::SIZE, m_ptr + offset); + result.udp_header = Common::BitCastPtr(m_ptr + offset); + const u16 data_offset = UDPHeader::SIZE + offset; + + const u16 total_len = ntohs(result.udp_header.length); + const std::size_t end = offset + total_len; + + if (m_size < end || end < data_offset) + return std::nullopt; + + result.data = std::vector(m_ptr + data_offset, m_ptr + end); + + return result; +} + NetworkErrorState SaveNetworkErrorState() { return { diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index eec09234a7..f9706c0328 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -36,6 +36,12 @@ enum DHCPConst using MACAddress = std::array; constexpr std::size_t IPV4_ADDR_LEN = 4; +using IPAddress = std::array; +constexpr IPAddress IP_ADDR_ANY = {0, 0, 0, 0}; +constexpr IPAddress IP_ADDR_BROADCAST = {255, 255, 255, 255}; +constexpr IPAddress IP_ADDR_SSDP = {239, 255, 255, 250}; +constexpr u16 IPV4_ETHERTYPE = 0x800; +constexpr u16 ARP_ETHERTYPE = 0x806; struct EthernetHeader { @@ -56,6 +62,7 @@ struct IPv4Header IPv4Header(); IPv4Header(u16 data_size, u8 ip_proto, const sockaddr_in& from, const sockaddr_in& to); u16 Size() const; + u8 DefinedSize() const; static constexpr std::size_t SIZE = 20; @@ -67,8 +74,8 @@ struct IPv4Header u8 ttl = 0; u8 protocol = 0; u16 header_checksum = 0; - std::array source_addr{}; - std::array destination_addr{}; + IPAddress source_addr{}; + IPAddress destination_addr{}; }; static_assert(sizeof(IPv4Header) == IPv4Header::SIZE); @@ -77,6 +84,7 @@ struct TCPHeader TCPHeader(); TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, const u8* data, u16 length); TCPHeader(const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags); + u8 GetHeaderSize() const; u16 Size() const; u8 IPProto() const; @@ -113,7 +121,7 @@ static_assert(sizeof(UDPHeader) == UDPHeader::SIZE); struct ARPHeader { ARPHeader(); - ARPHeader(u32 from_ip, MACAddress from_mac, u32 to_ip, MACAddress to_mac); + ARPHeader(u32 from_ip, const MACAddress& from_mac, u32 to_ip, const MACAddress& to_mac); u16 Size() const; static constexpr std::size_t SIZE = 28; @@ -134,15 +142,14 @@ static_assert(sizeof(ARPHeader) == ARPHeader::SIZE); struct DHCPBody { DHCPBody(); - DHCPBody(u32 transaction, MACAddress client_address, u32 new_ip, u32 serv_ip); - bool AddDHCPOption(u8 size, u8 fnc, const std::vector& params); - static constexpr std::size_t SIZE = 540; + DHCPBody(u32 transaction, const MACAddress& client_address, u32 new_ip, u32 serv_ip); + static constexpr std::size_t SIZE = 240; u8 message_type = 0; u8 hardware_type = 0; u8 hardware_addr = 0; u8 hops = 0; u32 transaction_id = 0; - u16 secondes = 0; + u16 seconds = 0; u16 boot_flag = 0; u32 client_ip = 0; u32 your_ip = 0; @@ -152,11 +159,92 @@ struct DHCPBody unsigned char padding[10]{}; unsigned char hostname[0x40]{}; unsigned char boot_file[0x80]{}; - u32 magic_cookie = 0x63538263; - u8 options[300]{}; + u8 magic_cookie[4] = {0x63, 0x82, 0x53, 0x63}; }; static_assert(sizeof(DHCPBody) == DHCPBody::SIZE); +struct DHCPPacket +{ + DHCPPacket(); + DHCPPacket(const std::vector& data); + void AddOption(u8 fnc, const std::vector& params); + std::vector Build() const; + + DHCPBody body; + std::vector> options; +}; + +// The compiler might add 2 bytes after EthernetHeader to enforce 16-bytes alignment +#pragma pack(push, 1) +struct ARPPacket +{ + ARPPacket(); + ARPPacket(const MACAddress& destination, const MACAddress& source); + std::vector Build() const; + u16 Size() const; + + EthernetHeader eth_header; + ARPHeader arp_header; + + static constexpr std::size_t SIZE = EthernetHeader::SIZE + ARPHeader::SIZE; +}; +static_assert(sizeof(ARPPacket) == ARPPacket::SIZE); +#pragma pack(pop) + +struct TCPPacket +{ + TCPPacket(); + TCPPacket(const MACAddress& destination, const MACAddress& source); + TCPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, + const sockaddr_in& to, u32 seq, u32 ack, u16 flags); + std::vector Build(); + u16 Size() const; + + EthernetHeader eth_header; + IPv4Header ip_header; + TCPHeader tcp_header; + std::vector ipv4_options; + std::vector tcp_options; + std::vector data; + + static constexpr std::size_t MIN_SIZE = EthernetHeader::SIZE + IPv4Header::SIZE + TCPHeader::SIZE; +}; + +struct UDPPacket +{ + UDPPacket(); + UDPPacket(const MACAddress& destination, const MACAddress& source); + UDPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, + const sockaddr_in& to, const std::vector& payload); + std::vector Build(); + u16 Size() const; + + EthernetHeader eth_header; + IPv4Header ip_header; + UDPHeader udp_header; + + std::vector ipv4_options; + std::vector data; + + static constexpr std::size_t MIN_SIZE = EthernetHeader::SIZE + IPv4Header::SIZE + UDPHeader::SIZE; +}; + +class PacketView +{ +public: + PacketView(const u8* ptr, std::size_t size); + + std::optional GetEtherType() const; + std::optional GetARPPacket() const; + std::optional GetIPProto() const; + std::optional GetTCPPacket() const; + std::optional GetUDPPacket() const; + +private: + const u8* m_ptr; + std::size_t m_size; +}; + struct NetworkErrorState { int error; @@ -169,7 +257,7 @@ MACAddress GenerateMacAddress(MACConsumer type); std::string MacAddressToString(const MACAddress& mac); std::optional StringToMacAddress(std::string_view mac_string); u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value = 0); -u16 ComputeTCPNetworkChecksum(const sockaddr_in& from, const sockaddr_in& to, const void* data, +u16 ComputeTCPNetworkChecksum(const IPAddress& from, const IPAddress& to, const void* data, u16 length, u8 protocol); NetworkErrorState SaveNetworkErrorState(); void RestoreNetworkErrorState(const NetworkErrorState& state); diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 0dba56339b..99a143f2bd 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -723,4 +723,4 @@ endif() if(MSVC) # Add precompiled header target_link_libraries(core PRIVATE use_pch) -endif() \ No newline at end of file +endif() diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index bba928e660..8dfbf59764 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -3,13 +3,13 @@ #include +#include "Common/BitUtils.h" #include "Common/Logging/Log.h" +#include "Common/MsgHandler.h" #include "Core/HW/EXI/BBA/BuiltIn.h" #include "Core/HW/EXI/EXI_Device.h" #include "Core/HW/EXI/EXI_DeviceEthernet.h" -// #define BBA_TRACK_PAGE_PTRS - namespace ExpansionInterface { u64 GetTickCountStd() @@ -18,51 +18,26 @@ u64 GetTickCountStd() return duration_cast(steady_clock::now().time_since_epoch()).count(); } -void SetHardwareInfo(u8* data, Common::MACAddress dest, Common::MACAddress src) -{ - Common::EthernetHeader* hwpart = (Common::EthernetHeader*)data; - *hwpart = Common::EthernetHeader(IP_PROTOCOL); - hwpart->destination = dest; - hwpart->source = src; -} - -std::tuple -getTcpHeaders(u8* data, Common::MACAddress dest, Common::MACAddress src) -{ - SetHardwareInfo(data, dest, src); - return std::tuple( - (Common::EthernetHeader*)data, (Common::IPv4Header*)&data[14], - (Common::TCPHeader*)&data[0x22]); -} - -std::tuple -getUdpHeaders(u8* data, Common::MACAddress dest, Common::MACAddress src) -{ - SetHardwareInfo(data, dest, src); - return std::tuple( - (Common::EthernetHeader*)data, (Common::IPv4Header*)&data[14], - (Common::UDPHeader*)&data[0x22]); -} - bool CEXIETHERNET::BuiltInBBAInterface::Activate() { if (IsActivated()) return true; - active = true; - m_in_frame = std::make_unique(9004); - m_out_frame = std::make_unique(9004); - for (auto& buf : queue_data) + m_active = true; + for (auto& buf : m_queue_data) buf.reserve(2048); - fake_mac = Common::GenerateMacAddress(Common::MACConsumer::BBA); + m_fake_mac = Common::GenerateMacAddress(Common::MACConsumer::BBA); + + // Workaround to get the host IP (might not be accurate) const u32 ip = m_local_ip.empty() ? sf::IpAddress::getLocalAddress().toInteger() : sf::IpAddress(m_local_ip).toInteger(); m_current_ip = htonl(ip); m_router_ip = (m_current_ip & 0xFFFFFF) | 0x01000000; + // clear all ref - for (int i = 0; i < std::size(network_ref); i++) + for (auto& ref : network_ref) { - network_ref[i].ip = 0; + ref.ip = 0; } return RecvInit(); @@ -76,17 +51,16 @@ void CEXIETHERNET::BuiltInBBAInterface::Deactivate() // Signal read thread to exit. m_read_enabled.Clear(); m_read_thread_shutdown.Set(); - active = false; + m_active = false; // kill all active socket - for (int i = 0; i < std::size(network_ref); i++) + for (auto& ref : network_ref) { - if (network_ref[i].ip != 0) + if (ref.ip != 0) { - network_ref[i].type == IPPROTO_TCP ? network_ref[i].tcp_socket.disconnect() : - network_ref[i].udp_socket.unbind(); + ref.type == IPPROTO_TCP ? ref.tcp_socket.disconnect() : ref.udp_socket.unbind(); } - network_ref[i].ip = 0; + ref.ip = 0; } // Wait for read thread to exit. @@ -96,222 +70,185 @@ void CEXIETHERNET::BuiltInBBAInterface::Deactivate() bool CEXIETHERNET::BuiltInBBAInterface::IsActivated() { - return active; + return m_active; } -void CEXIETHERNET::BuiltInBBAInterface::WriteToQueue(const u8* data, int length) +void CEXIETHERNET::BuiltInBBAInterface::WriteToQueue(const std::vector& data) { - queue_data[queue_write].resize(length); - std::memcpy(&queue_data[queue_write][0], data, length); - if (((queue_write + 1) & 15) == queue_read) - { - return; - } - queue_write = (queue_write + 1) & 15; + m_queue_data[m_queue_write] = data; + const u8 next_write_index = (m_queue_write + 1) & 15; + if (next_write_index != m_queue_read) + m_queue_write = next_write_index; } -void CEXIETHERNET::BuiltInBBAInterface::HandleARP(Common::EthernetHeader* hwdata, - Common::ARPHeader* arpdata) +void CEXIETHERNET::BuiltInBBAInterface::HandleARP(const Common::ARPPacket& packet) { - std::memset(m_in_frame.get(), 0, 0x30); - Common::EthernetHeader* hwpart = (Common::EthernetHeader*)m_in_frame.get(); - *hwpart = Common::EthernetHeader(ARP_PROTOCOL); - hwpart->destination = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; - hwpart->source = fake_mac; + const auto& [hwdata, arpdata] = packet; + const Common::MACAddress bba_mac = + Common::BitCastPtr(&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]); + Common::ARPPacket response(bba_mac, m_fake_mac); - Common::ARPHeader* arppart = (Common::ARPHeader*)&m_in_frame[14]; - Common::MACAddress bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; - if (arpdata->target_ip == m_current_ip) + if (arpdata.target_ip == m_current_ip) { // game asked for himself, reply with his mac address - *arppart = Common::ARPHeader(arpdata->target_ip, bba_mac, m_current_ip, bba_mac); + response.arp_header = Common::ARPHeader(arpdata.target_ip, bba_mac, m_current_ip, bba_mac); } else { - *arppart = Common::ARPHeader(arpdata->target_ip, fake_mac, m_current_ip, bba_mac); + response.arp_header = Common::ARPHeader(arpdata.target_ip, m_fake_mac, m_current_ip, bba_mac); } - WriteToQueue(&m_in_frame[0], 0x2a); + WriteToQueue(response.Build()); } -void CEXIETHERNET::BuiltInBBAInterface::HandleDHCP(Common::EthernetHeader* hwdata, - Common::UDPHeader* udpdata, - Common::DHCPBody* request) +void CEXIETHERNET::BuiltInBBAInterface::HandleDHCP(const Common::UDPPacket& packet) { - Common::DHCPBody* reply = (Common::DHCPBody*)&m_in_frame[0x2a]; + const auto& [hwdata, ip, udp_header, ip_options, data] = packet; + const Common::DHCPPacket dhcp(packet.data); + const Common::DHCPBody& request = dhcp.body; sockaddr_in from; sockaddr_in to; - std::memset(m_in_frame.get(), 0, 0x156); - - // build layer - auto [hwpart, ippart, udppart] = getUdpHeaders( - m_in_frame.get(), *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0], fake_mac); - from.sin_addr.s_addr = m_router_ip; from.sin_family = IPPROTO_UDP; from.sin_port = htons(67); to.sin_addr.s_addr = m_current_ip; to.sin_family = IPPROTO_UDP; - to.sin_port = udpdata->source_port; - const std::vector ip_part = {((u8*)&m_router_ip)[0], ((u8*)&m_router_ip)[1], - ((u8*)&m_router_ip)[2], ((u8*)&m_router_ip)[3]}; + to.sin_port = udp_header.source_port; - *ippart = Common::IPv4Header(308, IPPROTO_UDP, from, to); + const u8* router_ip_ptr = reinterpret_cast(&m_router_ip); + const std::vector ip_part(router_ip_ptr, router_ip_ptr + sizeof(m_router_ip)); - *udppart = Common::UDPHeader(from, to, 300); + const std::vector timeout_24h = {0, 1, 0x51, 0x80}; - *reply = Common::DHCPBody(request->transaction_id, - *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0], m_current_ip, - m_router_ip); + const Common::MACAddress bba_mac = + Common::BitCastPtr(&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]); + Common::DHCPPacket reply; + reply.body = Common::DHCPBody(request.transaction_id, bba_mac, m_current_ip, m_router_ip); // options - request->options[2] == 1 ? reply->AddDHCPOption(1, 53, std::vector{2}) : - reply->AddDHCPOption(1, 53, std::vector{5}); - reply->AddDHCPOption(4, 54, ip_part); // dhcp server ip - reply->AddDHCPOption(4, 51, std::vector{0, 1, 0x51, 0x80}); // lease time 24h - reply->AddDHCPOption(4, 58, std::vector{0, 1, 0x51, 0x80}); // renewal - reply->AddDHCPOption(4, 59, std::vector{0, 1, 0x51, 0x80}); // rebind - reply->AddDHCPOption(4, 1, std::vector{255, 255, 255, 0}); // submask - reply->AddDHCPOption(4, 28, - std::vector{ip_part[0], ip_part[1], ip_part[2], 255}); // broadcast ip - reply->AddDHCPOption(4, 6, ip_part); // dns server - reply->AddDHCPOption(3, 15, std::vector{0x6c, 0x61, 0x6e}); // domaine name "lan" - reply->AddDHCPOption(4, 3, ip_part); // router ip - reply->AddDHCPOption(0, 255, {}); // end + // send our emulated lan settings - udppart->checksum = Common::ComputeTCPNetworkChecksum(from, to, udppart, 308, IPPROTO_UDP); + (dhcp.options.size() == 0 || dhcp.options[0].size() < 2 || dhcp.options[0].at(2) == 1) ? + reply.AddOption(53, {2}) : // default, send a suggestion + reply.AddOption(53, {5}); + reply.AddOption(54, ip_part); // dhcp server ip + reply.AddOption(51, timeout_24h); // lease time 24h + reply.AddOption(58, timeout_24h); // renewal time + reply.AddOption(59, timeout_24h); // rebind time + reply.AddOption(1, {255, 255, 255, 0}); // submask + reply.AddOption(28, {ip_part[0], ip_part[1], ip_part[2], 255}); // broadcast ip + reply.AddOption(6, ip_part); // dns server + reply.AddOption(15, {0x6c, 0x61, 0x6e}); // domain name "lan" + reply.AddOption(3, ip_part); // router ip + reply.AddOption(255, {}); // end - WriteToQueue(m_in_frame.get(), 0x156); + Common::UDPPacket response(bba_mac, m_fake_mac, from, to, reply.Build()); + + WriteToQueue(response.Build()); } -StackRef* CEXIETHERNET::BuiltInBBAInterface::GetAvaibleSlot(u16 port) +StackRef* CEXIETHERNET::BuiltInBBAInterface::GetAvailableSlot(u16 port) { if (port > 0) // existing connection? { - for (int i = 0; i < std::size(network_ref); i++) + for (auto& ref : network_ref) { - if (network_ref[i].ip != 0 && network_ref[i].local == port) - return &network_ref[i]; + if (ref.ip != 0 && ref.local == port) + return &ref; } } - for (int i = 0; i < std::size(network_ref); i++) + for (auto& ref : network_ref) { - if (network_ref[i].ip == 0) - return &network_ref[i]; + if (ref.ip == 0) + return &ref; } return nullptr; } StackRef* CEXIETHERNET::BuiltInBBAInterface::GetTCPSlot(u16 src_port, u16 dst_port, u32 ip) { - for (int i = 0; i < std::size(network_ref); i++) + for (auto& ref : network_ref) { - if (network_ref[i].ip == ip && network_ref[i].remote == dst_port && - network_ref[i].local == src_port) + if (ref.ip == ip && ref.remote == dst_port && ref.local == src_port) { - return &network_ref[i]; + return &ref; } } return nullptr; } -int BuildFINFrame(StackRef* ref, u8* buf) +std::vector BuildFINFrame(StackRef* ref) { - std::memset(buf, 0, 0x36); - auto [hwpart, ippart, tcppart] = getTcpHeaders(buf, ref->bba_mac, ref->my_mac); - - *ippart = Common::IPv4Header(20, IPPROTO_TCP, ref->from, ref->to); - - *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, - TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); - tcppart->checksum = - Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 20, IPPROTO_TCP); + Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); for (auto& tcp_buf : ref->tcp_buffers) tcp_buf.used = false; - return 0x36; + return result.Build(); } -int BuildAckFrame(StackRef* ref, u8* buf) +std::vector BuildAckFrame(StackRef* ref) { - std::memset(buf, 0, 0x36); - auto [hwpart, ippart, tcppart] = getTcpHeaders(buf, ref->bba_mac, ref->my_mac); - - *ippart = Common::IPv4Header(20, IPPROTO_TCP, ref->from, ref->to); - - *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, TCP_FLAG_ACK); - tcppart->checksum = - Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 20, IPPROTO_TCP); - - return 0x36; + Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_ACK); + return result.Build(); } -void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(Common::EthernetHeader* hwdata, - Common::IPv4Header* ipdata, - Common::TCPHeader* tcpdata, u8* data) +void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(const Common::TCPPacket& packet) { + const auto& [hwdata, ip_header, tcp_header, ip_options, tcp_options, data] = packet; sf::IpAddress target; - StackRef* ref = - GetTCPSlot(tcpdata->source_port, tcpdata->destination_port, *(u32*)&ipdata->destination_addr); - if (tcpdata->properties & (TCP_FLAG_FIN | TCP_FLAG_RST)) + StackRef* ref = GetTCPSlot(tcp_header.source_port, tcp_header.destination_port, + Common::BitCast(ip_header.destination_addr)); + const u16 properties = ntohs(tcp_header.properties); + if (properties & (TCP_FLAG_FIN | TCP_FLAG_RST)) { if (ref == nullptr) return; // not found ref->ack_num++; - const int size = BuildFINFrame(ref, m_in_frame.get()); - WriteToQueue(m_in_frame.get(), size); + WriteToQueue(BuildFINFrame(ref)); ref->ip = 0; ref->tcp_socket.disconnect(); } - else if (tcpdata->properties & TCP_FLAG_SIN) + else if (properties & TCP_FLAG_SIN) { // new connection if (ref != nullptr) return; - ref = GetAvaibleSlot(0); + ref = GetAvailableSlot(0); ref->delay = GetTickCountStd(); - ref->local = tcpdata->source_port; - ref->remote = tcpdata->destination_port; - ref->ack_num = htonl(tcpdata->sequence_number) + 1; + ref->local = tcp_header.source_port; + ref->remote = tcp_header.destination_port; + ref->ack_num = ntohl(tcp_header.sequence_number) + 1; ref->ack_base = ref->ack_num; ref->seq_num = 0x1000000; - ref->window_size = htons(tcpdata->window_size); + ref->window_size = ntohl(tcp_header.window_size); ref->type = IPPROTO_TCP; for (auto& tcp_buf : ref->tcp_buffers) tcp_buf.used = false; - ref->from.sin_addr.s_addr = *(u32*)&ipdata->destination_addr; - ref->from.sin_port = tcpdata->destination_port; - ref->to.sin_addr.s_addr = *(u32*)&ipdata->source_addr; - ref->to.sin_port = tcpdata->source_port; - ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; - ref->my_mac = fake_mac; + ref->from.sin_addr.s_addr = Common::BitCast(ip_header.destination_addr); + ref->from.sin_port = tcp_header.destination_port; + ref->to.sin_addr.s_addr = Common::BitCast(ip_header.source_addr); + ref->to.sin_port = tcp_header.source_port; + ref->bba_mac = Common::BitCastPtr(&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]); + ref->my_mac = m_fake_mac; ref->tcp_socket.setBlocking(false); // reply with a sin_ack - std::memset(m_in_frame.get(), 0, 0x100); - auto [hwpart, ippart, tcppart] = getTcpHeaders(m_in_frame.get(), ref->bba_mac, ref->my_mac); + Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_SIN | TCP_FLAG_ACK); - *ippart = Common::IPv4Header(28, IPPROTO_TCP, ref->from, ref->to); - - *tcppart = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, - 0x70 | TCP_FLAG_SIN | TCP_FLAG_ACK); - const u8 options[] = {0x02, 0x04, 0x05, 0xb4, 0x01, 0x01, 0x01, 0x01}; - std::memcpy(&m_in_frame[0x36], options, std::size(options)); - - // do checksum - tcppart->checksum = - Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, 28, IPPROTO_TCP); + result.tcp_options = {0x02, 0x04, 0x05, 0xb4, 0x01, 0x01, 0x01, 0x01}; ref->seq_num++; - target = sf::IpAddress(htonl(*(u32*)&ipdata->destination_addr)); - ref->tcp_socket.connect(target, ntohs(tcpdata->destination_port)); + target = sf::IpAddress(ntohl(Common::BitCast(ip_header.destination_addr))); + ref->tcp_socket.connect(target, ntohs(tcp_header.destination_port)); ref->ready = false; - ref->ip = *(u32*)ipdata->destination_addr; + ref->ip = Common::BitCast(ip_header.destination_addr); - std::memcpy(&ref->tcp_buffers[0].data, m_in_frame.get(), 0x3e); - ref->tcp_buffers[0].data_size = 0x3e; + ref->tcp_buffers[0].data = result.Build(); ref->tcp_buffers[0].seq_id = ref->seq_num - 1; ref->tcp_buffers[0].tick = GetTickCountStd() - 900; // delay ref->tcp_buffers[0].used = true; @@ -322,38 +259,40 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(Common::EthernetHeader* h if (ref == nullptr) return; // not found - const int c = (tcpdata->properties & 0xf0) >> 2; // header size - const int size = ntohs(ipdata->total_len) - 20 - c; - const u32 this_seq = ntohl(tcpdata->sequence_number); + const int size = + ntohs(ip_header.total_len) - ip_header.DefinedSize() - tcp_header.GetHeaderSize(); + const u32 this_seq = ntohl(tcp_header.sequence_number); if (size > 0) { - // only if data - if ((int)(this_seq - ref->ack_num) >= 0) + // only if contain data + if (static_cast(this_seq - ref->ack_num) >= 0 && data.size() >= size) { - ref->tcp_socket.send(data, size); + ref->tcp_socket.send(data.data(), size); ref->ack_num += size; } // send ack - BuildAckFrame(ref, m_in_frame.get()); - - WriteToQueue(m_in_frame.get(), 0x36); + WriteToQueue(BuildAckFrame(ref)); } // update windows size - ref->window_size = ntohs(tcpdata->window_size); + ref->window_size = ntohs(tcp_header.window_size); // clear any ack data - if (tcpdata->properties & TCP_FLAG_ACK) + if (ntohs(tcp_header.properties) & TCP_FLAG_ACK) { - const u32 ack_num = ntohl(tcpdata->acknowledgement_number); + const u32 ack_num = ntohl(tcp_header.acknowledgement_number); for (auto& tcp_buf : ref->tcp_buffers) { if (!tcp_buf.used || tcp_buf.seq_id >= ack_num) continue; - Common::TCPHeader* tcppart = (Common::TCPHeader*)&tcp_buf.data[0x22]; - const u32 seq_end = - tcp_buf.seq_id + tcp_buf.data_size - ((tcppart->properties & 0xf0) >> 2) - 34; + + Common::PacketView view(tcp_buf.data.data(), tcp_buf.data.size()); + auto tcp_packet = view.GetTCPPacket(); // This is always a tcp packet + if (!tcp_packet.has_value()) // should never happen but just in case + continue; + + const u32 seq_end = static_cast(tcp_buf.seq_id + tcp_packet->data.size()); if (seq_end <= ack_num) { tcp_buf.used = false; // confirmed data received @@ -363,36 +302,29 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(Common::EthernetHeader* h } // partial data, adjust the packet for next ack const u16 ack_size = ack_num - tcp_buf.seq_id; - const u16 new_data_size = tcp_buf.data_size - 0x36 - ack_size; - std::memmove(&tcp_buf.data[0x36], &tcp_buf.data[0x36 + ack_size], new_data_size); - tcp_buf.data_size -= ack_size; + tcp_packet->data.erase(tcp_packet->data.begin(), tcp_packet->data.begin() + ack_size); + tcp_buf.seq_id += ack_size; - tcppart->sequence_number = htonl(tcp_buf.seq_id); - Common::IPv4Header* ippart = (Common::IPv4Header*)&tcp_buf.data[14]; - ippart->total_len = htons(tcp_buf.data_size - 14); - tcppart->checksum = 0; - tcppart->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcppart, - new_data_size + 20, IPPROTO_TCP); + tcp_packet->tcp_header.sequence_number = htonl(tcp_buf.seq_id); + tcp_buf.data = tcp_packet->Build(); } } } } -/// -/// This is a litle hack, Mario Kart open some UDP port -/// and listen to it. We open it on our side manualy. -/// +// This is a little hack, some games open a UDP port +// and listen to it. We open it on our side manually. void CEXIETHERNET::BuiltInBBAInterface::InitUDPPort(u16 port) { - StackRef* ref = GetAvaibleSlot(htons(port)); + StackRef* ref = GetAvailableSlot(htons(port)); if (ref == nullptr || ref->ip != 0) return; - ref->ip = 0x08080808; // change for ip + ref->ip = m_router_ip; // change for ip ref->local = htons(port); ref->remote = htons(port); - ref->type = 17; - ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; - ref->my_mac = fake_mac; + ref->type = IPPROTO_UDP; + ref->bba_mac = Common::BitCastPtr(&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]); + ref->my_mac = m_fake_mac; ref->from.sin_addr.s_addr = 0; ref->from.sin_port = htons(port); ref->to.sin_addr.s_addr = m_current_ip; @@ -401,144 +333,176 @@ void CEXIETHERNET::BuiltInBBAInterface::InitUDPPort(u16 port) if (ref->udp_socket.bind(port) != sf::Socket::Done) { ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); + PanicAlertFmt("Could't open port {:x}, this game might not work proprely in LAN mode.", port); return; } } -void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(Common::EthernetHeader* hwdata, - Common::IPv4Header* ipdata, - Common::UDPHeader* udpdata, u8* data) +void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(const Common::UDPPacket& packet) { + const auto& [hwdata, ip_header, udp_header, ip_options, data] = packet; sf::IpAddress target; + const u32 destination_addr = ip_header.destination_addr == Common::IP_ADDR_ANY ? + m_router_ip : // dns request + Common::BitCast(ip_header.destination_addr); - if (*(u32*)ipdata->destination_addr == 0) - *(u32*)ipdata->destination_addr = m_router_ip; - // dns request - StackRef* ref = GetAvaibleSlot(udpdata->source_port); + StackRef* ref = GetAvailableSlot(udp_header.source_port); if (ref->ip == 0) { - ref->ip = *(u32*)ipdata->destination_addr; // change for ip - ref->local = udpdata->source_port; - ref->remote = udpdata->destination_port; - ref->type = 17; - ref->bba_mac = *(Common::MACAddress*)&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]; - ref->my_mac = fake_mac; - ref->from.sin_addr.s_addr = *(u32*)&ipdata->destination_addr; - ref->from.sin_port = udpdata->destination_port; - ref->to.sin_addr.s_addr = *(u32*)&ipdata->source_addr; - ref->to.sin_port = udpdata->source_port; + ref->ip = destination_addr; // change for ip + ref->local = udp_header.source_port; + ref->remote = udp_header.destination_port; + ref->type = IPPROTO_UDP; + ref->bba_mac = Common::BitCastPtr(&m_eth_ref->mBbaMem[BBA_NAFR_PAR0]); + ref->my_mac = m_fake_mac; + ref->from.sin_addr.s_addr = destination_addr; + ref->from.sin_port = udp_header.destination_port; + ref->to.sin_addr.s_addr = Common::BitCast(ip_header.source_addr); + ref->to.sin_port = udp_header.source_port; ref->udp_socket.setBlocking(false); - if (ref->udp_socket.bind(htons(udpdata->source_port)) != sf::Socket::Done && - ref->udp_socket.bind(sf::Socket::AnyPort) != sf::Socket::Done) + if (ref->udp_socket.bind(htons(udp_header.source_port)) != sf::Socket::Done) { - ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); - return; + PanicAlertFmt( + "Port {:x} is already in use, this game might not work as intented in LAN Mode.", + htons(udp_header.source_port)); + if (ref->udp_socket.bind(sf::Socket::AnyPort) != sf::Socket::Done) + { + ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); + return; + } + if (ntohs(udp_header.destination_port) == 1900) + { + InitUDPPort(26512); // MK DD and 1080 + InitUDPPort(26502); // Air Ride + if (udp_header.length > 150) + { + // Quick hack to unlock the connection, throw it back at him + Common::UDPPacket reply = packet; + reply.eth_header.destination = hwdata.source; + reply.eth_header.source = hwdata.destination; + reply.ip_header.destination_addr = ip_header.source_addr; + if (ip_header.destination_addr == Common::IP_ADDR_SSDP) + reply.ip_header.source_addr = Common::IP_ADDR_BROADCAST; + else + reply.ip_header.source_addr = Common::BitCast(destination_addr); + WriteToQueue(reply.Build()); + } + } } } - if (ntohs(udpdata->destination_port) == 1900) - { - InitUDPPort(26512); // MK DD and 1080 - InitUDPPort(26502); // Air Ride - if (*(u32*)ipdata->destination_addr == 0xFAFFFFEF) // force real broadcast - *(u32*)ipdata->destination_addr = 0xFFFFFFFF; // Multi cast cannot be read - if (udpdata->length > 150) - { - // Quick hack to unlock the connection, throw it back at him - Common::EthernetHeader* hwpart = (Common::EthernetHeader*)m_in_frame.get(); - Common::IPv4Header* ippart = (Common::IPv4Header*)&m_in_frame[14]; - std::memcpy(m_in_frame.get(), hwdata, ntohs(ipdata->total_len) + 14); - hwpart->destination = hwdata->source; - hwpart->source = hwdata->destination; - *(u32*)ippart->destination_addr = *(u32*)ipdata->source_addr; - *(u32*)ippart->source_addr = *(u32*)ipdata->destination_addr; - WriteToQueue(m_in_frame.get(), ntohs(ipdata->total_len) + 14); - } - } - if (ntohs(udpdata->destination_port) == 53) - { + if (ntohs(udp_header.destination_port) == 53) target = sf::IpAddress(m_dns_ip.c_str()); // dns server ip - } + else if (ip_header.destination_addr == Common::IP_ADDR_SSDP) + target = sf::IpAddress(0xFFFFFFFF); // force real broadcast else - { - target = sf::IpAddress(ntohl(*(u32*)ipdata->destination_addr)); - } - ref->udp_socket.send(data, ntohs(udpdata->length) - 8, target, ntohs(udpdata->destination_port)); + target = sf::IpAddress(ntohl(Common::BitCast(ip_header.destination_addr))); + ref->udp_socket.send(data.data(), data.size(), target, ntohs(udp_header.destination_port)); } bool CEXIETHERNET::BuiltInBBAInterface::SendFrame(const u8* frame, u32 size) { - int offset = 0; + std::lock_guard lock(m_mtx); + const Common::PacketView view(frame, size); - std::memcpy(m_out_frame.get(), frame, size); - std::lock_guard lock(mtx); - - // handle the packet data - Common::EthernetHeader* hwdata = (Common::EthernetHeader*)m_out_frame.get(); - if (hwdata->ethertype == 0x08) // IPV4 + const std::optional ethertype = view.GetEtherType(); + if (!ethertype.has_value()) { - // IP sub - Common::IPv4Header* ipdata = (Common::IPv4Header*)&m_out_frame[14]; - offset = Common::EthernetHeader::SIZE + (ipdata->version_ihl & 0xf) * 4; - switch (ipdata->protocol) + ERROR_LOG_FMT(SP1, "Unable to send frame with invalid ethernet header"); + return false; + } + + switch (*ethertype) + { + case Common::IPV4_ETHERTYPE: + { + const std::optional ip_proto = view.GetIPProto(); + if (!ip_proto.has_value()) + { + ERROR_LOG_FMT(SP1, "Unable to send frame with invalid IP header"); + return false; + } + + switch (*ip_proto) { case IPPROTO_UDP: { - Common::UDPHeader* udpdata = (Common::UDPHeader*)&m_out_frame[offset]; - offset += Common::UDPHeader::SIZE; - if (ntohs(udpdata->destination_port) == 67) + const auto udp_packet = view.GetUDPPacket(); + if (!udp_packet.has_value()) { - Common::DHCPBody* request = (Common::DHCPBody*)&m_out_frame[offset]; - HandleDHCP(hwdata, udpdata, request); + ERROR_LOG_FMT(SP1, "Unable to send frame with invalid UDP header"); + return false; + } + + if (ntohs(udp_packet->udp_header.destination_port) == 67) + { + HandleDHCP(*udp_packet); } else { - HandleUDPFrame(hwdata, ipdata, udpdata, &m_out_frame[offset]); + HandleUDPFrame(*udp_packet); } break; } + case IPPROTO_TCP: { - Common::TCPHeader* tcpdata = (Common::TCPHeader*)&m_out_frame[offset]; - offset += (tcpdata->properties & 0xf0) >> 2; - HandleTCPFrame(hwdata, ipdata, tcpdata, &m_out_frame[offset]); + const auto tcp_packet = view.GetTCPPacket(); + if (!tcp_packet.has_value()) + { + ERROR_LOG_FMT(SP1, "Unable to send frame with invalid TCP header"); + return false; + } + + HandleTCPFrame(*tcp_packet); break; } } + break; } - if (hwdata->ethertype == 0x608) // arp + + case Common::ARP_ETHERTYPE: { - Common::ARPHeader* arpdata = (Common::ARPHeader*)&m_out_frame[14]; - HandleARP(hwdata, arpdata); + const auto arp_packet = view.GetARPPacket(); + if (!arp_packet.has_value()) + { + ERROR_LOG_FMT(SP1, "Unable to send frame with invalid ARP header"); + return false; + } + + HandleARP(*arp_packet); + break; + } + + default: + ERROR_LOG_FMT(SP1, "Unsupported EtherType {#06x}", *ethertype); + return false; } m_eth_ref->SendComplete(); return true; } -size_t TryGetDataFromSocket(StackRef* ref, u8* buffer) +std::optional> TryGetDataFromSocket(StackRef* ref) { - size_t datasize = 0; // this will be filled by the socket read later + size_t datasize = 0; // Set by socket.receive using a non-const reference unsigned short remote_port; switch (ref->type) { case IPPROTO_UDP: - ref->udp_socket.receive(&buffer[0x2a], 1500, datasize, ref->target, remote_port); + { + std::array buffer; + ref->udp_socket.receive(buffer.data(), MAX_UDP_LENGTH, datasize, ref->target, remote_port); if (datasize > 0) { - std::memset(buffer, 0, 0x2a); - auto [hwpart, ipdata, udpdata] = getUdpHeaders(buffer, ref->bba_mac, ref->my_mac); - ref->from.sin_port = htons(remote_port); ref->from.sin_addr.s_addr = htonl(ref->target.toInteger()); - *ipdata = Common::IPv4Header((u16)(datasize + 8), IPPROTO_UDP, ref->from, ref->to); - - *udpdata = Common::UDPHeader(ref->from, ref->to, (u16)datasize); - udpdata->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, udpdata, - (u16)(datasize + 8), IPPROTO_UDP); - datasize += 0x2a; + const std::vector udp_data(buffer.begin(), buffer.begin() + datasize); + Common::UDPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, udp_data); + return packet.Build(); } break; + } case IPPROTO_TCP: sf::Socket::Status st = sf::Socket::Status::Done; @@ -554,30 +518,25 @@ size_t TryGetDataFromSocket(StackRef* ref, u8* buffer) // set default size to 0 to avoid issue datasize = 0; const bool can_go = (GetTickCountStd() - ref->poke_time > 100 || ref->window_size > 2000); + std::array buffer; if (tcp_buffer != nullptr && ref->ready && can_go) - st = ref->tcp_socket.receive(&buffer[0x36], 440, datasize); + st = ref->tcp_socket.receive(buffer.data(), MAX_TCP_LENGTH, datasize); if (datasize > 0) { - std::memset(buffer, 0, 0x36); - auto [hwpart, ipdata, tcpdata] = getTcpHeaders(buffer, ref->bba_mac, ref->my_mac); - - *ipdata = Common::IPv4Header((u16)(datasize + 20), IPPROTO_TCP, ref->from, ref->to); - - *tcpdata = Common::TCPHeader(ref->from, ref->to, ref->seq_num, ref->ack_num, TCP_FLAG_ACK); - tcpdata->checksum = Common::ComputeTCPNetworkChecksum(ref->from, ref->to, tcpdata, - (u16)(datasize + 20), IPPROTO_TCP); + Common::TCPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_ACK); + packet.data = std::vector(buffer.begin(), buffer.begin() + datasize); // build buffer tcp_buffer->seq_id = ref->seq_num; - tcp_buffer->data_size = (u16)datasize + 0x36; tcp_buffer->tick = GetTickCountStd(); - std::memcpy(&tcp_buffer->data[0], buffer, datasize + 0x36); + tcp_buffer->data = packet.Build(); tcp_buffer->seq_id = ref->seq_num; tcp_buffer->used = true; - ref->seq_num += (u32)datasize; + ref->seq_num += static_cast(datasize); ref->poke_time = GetTickCountStd(); - datasize += 0x36; + return tcp_buffer->data; } if (GetTickCountStd() - ref->delay > 3000) { @@ -585,13 +544,33 @@ size_t TryGetDataFromSocket(StackRef* ref, u8* buffer) { ref->ip = 0; ref->tcp_socket.disconnect(); - datasize = BuildFINFrame(ref, buffer); + return BuildFINFrame(ref); } } break; } - return datasize; + return std::nullopt; +} + +// Change the IP identification and recompute the checksum +static void SetIPIdentification(u8* ptr, std::size_t size, u16 value) +{ + if (size < Common::EthernetHeader::SIZE + Common::IPv4Header::SIZE) + return; + + u8* const ip_ptr = ptr + Common::EthernetHeader::SIZE; + const u8 ip_header_size = (*ip_ptr & 0xf) * 4; + if (size < Common::EthernetHeader::SIZE + ip_header_size) + return; + + u8* const ip_id_ptr = ip_ptr + offsetof(Common::IPv4Header, identification); + Common::BitCastPtr(ip_id_ptr) = htons(value); + + u8* const ip_checksum_ptr = ip_ptr + offsetof(Common::IPv4Header, header_checksum); + auto checksum_bitcast_ptr = Common::BitCastPtr(ip_checksum_ptr); + checksum_bitcast_ptr = u16(0); + checksum_bitcast_ptr = htons(Common::ComputeNetworkChecksum(ip_ptr, ip_header_size)); } void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInBBAInterface* self) @@ -613,15 +592,21 @@ void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInB if ((wp - rp) >= 8) continue; - std::lock_guard lock(self->mtx); + std::lock_guard lock(self->m_mtx); // process queue file first - if (self->queue_read != self->queue_write) + if (self->m_queue_read != self->m_queue_write) { - datasize = self->queue_data[self->queue_read].size(); - std::memcpy(self->m_eth_ref->mRecvBuffer.get(), &self->queue_data[self->queue_read][0], + datasize = self->m_queue_data[self->m_queue_read].size(); + if (datasize > BBA_RECV_SIZE) + { + ERROR_LOG_FMT(SP1, "Frame size is exceiding BBA capacity, frame stack might be corrupted" + "Killing Dolphin..."); + std::exit(0); + } + std::memcpy(self->m_eth_ref->mRecvBuffer.get(), self->m_queue_data[self->m_queue_read].data(), datasize); - self->queue_read++; - self->queue_read &= 15; + self->m_queue_read++; + self->m_queue_read &= 15; } else { @@ -630,9 +615,13 @@ void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInB { if (net_ref.ip == 0) continue; - datasize = TryGetDataFromSocket(&net_ref, self->m_eth_ref->mRecvBuffer.get()); - if (datasize > 0) + const auto socket_data = TryGetDataFromSocket(&net_ref); + if (socket_data.has_value()) + { + datasize = socket_data->size(); + std::memcpy(self->m_eth_ref->mRecvBuffer.get(), socket_data->data(), datasize); break; + } } } @@ -647,26 +636,24 @@ void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInB continue; tcp_buf.tick = GetTickCountStd(); - // late data, resend - if (((self->queue_write + 1) & 15) != self->queue_read) + // timmed out packet, resend + if (((self->m_queue_write + 1) & 15) != self->m_queue_read) { - self->WriteToQueue(&tcp_buf.data[0], tcp_buf.data_size); + self->WriteToQueue(tcp_buf.data); } } } if (datasize > 0) { - u8* b = &self->m_eth_ref->mRecvBuffer[0]; - Common::EthernetHeader* hwdata = (Common::EthernetHeader*)b; - if (hwdata->ethertype == 0x8) // IP_PROTOCOL + u8* buffer = reinterpret_cast(self->m_eth_ref->mRecvBuffer.get()); + Common::PacketView packet(buffer, datasize); + const auto packet_type = packet.GetEtherType(); + if (packet_type.has_value() && packet_type == IP_PROTOCOL) { - Common::IPv4Header* ipdata = (Common::IPv4Header*)&b[14]; - ipdata->identification = ntohs(++self->ip_frame_id); - ipdata->header_checksum = 0; - ipdata->header_checksum = htons(Common::ComputeNetworkChecksum(ipdata, 20)); + SetIPIdentification(buffer, datasize, ++self->m_ip_frame_id); } - self->m_eth_ref->mRecvBufferLength = datasize > 64 ? (u32)datasize : 64; + self->m_eth_ref->mRecvBufferLength = datasize > 64 ? static_cast(datasize) : 64; self->m_eth_ref->RecvHandlePacket(); } } @@ -694,7 +681,7 @@ void CEXIETHERNET::BuiltInBBAInterface::RecvStop() } net_ref.ip = 0; } - queue_read = 0; - queue_write = 0; + m_queue_read = 0; + m_queue_write = 0; } } // namespace ExpansionInterface diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.h b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h index 7b3b5415c5..e1117c8b7e 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.h +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.h @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once + #ifdef _WIN32 #include #else @@ -12,24 +13,25 @@ #include "Common/CommonTypes.h" #include "Common/Network.h" -constexpr u16 TCP_FLAG_SIN = 0x200; -constexpr u16 TCP_FLAG_ACK = 0x1000; -constexpr u16 TCP_FLAG_PSH = 0x800; -constexpr u16 TCP_FLAG_FIN = 0x100; -constexpr u16 TCP_FLAG_RST = 0x400; +constexpr u16 TCP_FLAG_SIN = 0x2; +constexpr u16 TCP_FLAG_ACK = 0x10; +constexpr u16 TCP_FLAG_PSH = 0x8; +constexpr u16 TCP_FLAG_FIN = 0x1; +constexpr u16 TCP_FLAG_RST = 0x4; constexpr u16 IP_PROTOCOL = 0x800; constexpr u16 ARP_PROTOCOL = 0x806; constexpr u8 MAX_TCP_BUFFER = 4; +constexpr u16 MAX_UDP_LENGTH = 1500; +constexpr u16 MAX_TCP_LENGTH = 440; struct TcpBuffer { bool used; u64 tick; u32 seq_id; - u16 data_size; - std::array data; + std::vector data; }; struct StackRef diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp index 311d7ccda2..416b2c362d 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp @@ -18,8 +18,6 @@ #include "Core/HW/EXI/EXI.h" #include "Core/HW/Memmap.h" -//#define BBA_TRACK_PAGE_PTRS - namespace ExpansionInterface { // XXX: The BBA stores multi-byte elements as little endian. diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h index ea29383cbf..3ca1f26b01 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h @@ -425,8 +425,6 @@ private: : NetworkInterface(eth_ref), m_dns_ip(std::move(dns_ip)), m_local_ip(std::move(local_ip)) { } - - public: bool Activate() override; void Deactivate() override; bool IsActivated() override; @@ -438,12 +436,12 @@ private: private: std::string m_mac_id; std::string m_dns_ip; - bool active = false; - u16 ip_frame_id = 0; - u8 queue_read = 0; - u8 queue_write = 0; - std::array, 16> queue_data; - std::mutex mtx; + bool m_active = false; + u16 m_ip_frame_id = 0; + u8 m_queue_read = 0; + u8 m_queue_write = 0; + std::array, 16> m_queue_data; + std::mutex m_mtx; std::string m_local_ip; u32 m_current_ip = 0; u32 m_router_ip = 0; @@ -451,25 +449,21 @@ private: defined(__OpenBSD__) || defined(__NetBSD__) || defined(__HAIKU__) std::array network_ref{}; // max 10 at same time, i think most gc game had a // limit of 8 in the gc framework - std::unique_ptr m_in_frame; - std::unique_ptr m_out_frame; std::thread m_read_thread; Common::Flag m_read_enabled; Common::Flag m_read_thread_shutdown; + Common::MACAddress m_fake_mac{}; static void ReadThreadHandler(BuiltInBBAInterface* self); - Common::MACAddress fake_mac{}; #endif - void WriteToQueue(const u8* data, int length); - void HandleARP(Common::EthernetHeader* hwdata, Common::ARPHeader* arpdata); - void HandleDHCP(Common::EthernetHeader* hwdata, Common::UDPHeader* udpdata, - Common::DHCPBody* request); - StackRef* GetAvaibleSlot(u16 port); + void WriteToQueue(const std::vector& data); + StackRef* GetAvailableSlot(u16 port); StackRef* GetTCPSlot(u16 src_port, u16 dst_port, u32 ip); - void HandleTCPFrame(Common::EthernetHeader* hwdata, Common::IPv4Header* ipdata, - Common::TCPHeader* tcpdata, u8* data); + + void HandleARP(const Common::ARPPacket& packet); + void HandleDHCP(const Common::UDPPacket& packet); + void HandleTCPFrame(const Common::TCPPacket& packet); void InitUDPPort(u16 port); - void HandleUDPFrame(Common::EthernetHeader* hwdata, Common::IPv4Header* ipdata, - Common::UDPHeader* udpdata, u8* data); + void HandleUDPFrame(const Common::UDPPacket& packet); }; std::unique_ptr m_network_interface; diff --git a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp index 8b6d96df02..8a8d0c752c 100644 --- a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp +++ b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp @@ -50,7 +50,7 @@ void BroadbandAdapterSettingsDialog::InitControls() case Type::BuiltIn: address_label = new QLabel(tr("Enter the DNS server to use:")); - address_placeholder = QString::fromStdString("8.8.8.8"); + address_placeholder = QStringLiteral("8.8.8.8"); current_address = QString::fromStdString(Config::Get(Config::MAIN_BBA_BUILTIN_DNS)); description = new QLabel(tr("Use 8.8.8.8 for normal DNS, else enter your custom one")); From cdd8c00159a7c22f2ea11e91ab9536b8f5406a9b Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 10 Jul 2022 00:57:37 +0200 Subject: [PATCH 336/659] Externals: Disable warnings-as-errors for spirv_cross. --- Externals/spirv_cross/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Externals/spirv_cross/CMakeLists.txt b/Externals/spirv_cross/CMakeLists.txt index 522f8b5073..1063ef65af 100644 --- a/Externals/spirv_cross/CMakeLists.txt +++ b/Externals/spirv_cross/CMakeLists.txt @@ -47,6 +47,7 @@ endif() endif() add_library(spirv_cross STATIC ${SRCS}) +dolphin_disable_warnings_msvc(spirv_cross) target_compile_definitions(spirv_cross PUBLIC SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS) target_include_directories(spirv_cross PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross/include ${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Cross) From cdd357149113db644d8c5fdeaa3832364b233b6a Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 10 Jul 2022 00:59:32 +0200 Subject: [PATCH 337/659] D3DCommon: Add glslang include directories in CMake. --- Source/Core/VideoBackends/D3DCommon/CMakeLists.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt index 90464c72e7..3baca1a44d 100644 --- a/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt +++ b/Source/Core/VideoBackends/D3DCommon/CMakeLists.txt @@ -14,6 +14,15 @@ PUBLIC spirv_cross ) +target_include_directories(videod3dcommon +SYSTEM PUBLIC + ${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public +SYSTEM PRIVATE + ${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone + ${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV + ${CMAKE_SOURCE_DIR}/Externals/glslang +) + if(MSVC) # Add precompiled header target_link_libraries(videod3dcommon PRIVATE use_pch) From 1c6a0073d2e22397d1fdd4bcc09ef1afa6977dcc Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 9 Jul 2022 19:01:58 -0400 Subject: [PATCH 338/659] ShaderCompiler: Use compute shader header in compute shaders --- Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index fde89ca394..56d20caf43 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -133,7 +133,7 @@ std::optional CompileFragmentShader(std::string_view source_cod std::optional CompileComputeShader(std::string_view source_code) { - return SPIRV::CompileComputeShader(GetShaderCode(source_code, SHADER_HEADER), APIType::Vulkan, - GetLanguageVersion()); + return SPIRV::CompileComputeShader(GetShaderCode(source_code, COMPUTE_SHADER_HEADER), + APIType::Vulkan, GetLanguageVersion()); } } // namespace Vulkan::ShaderCompiler From 13957a627c7128c5b24e76aa6d446ca3a1f469a5 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 11:42:58 +0400 Subject: [PATCH 339/659] Common/Network: Remove unused constructors --- Source/Core/Common/Network.cpp | 14 -------------- Source/Core/Common/Network.h | 2 -- 2 files changed, 16 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index d03b537e25..59d0c9026e 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -337,13 +337,6 @@ std::vector ARPPacket::Build() const TCPPacket::TCPPacket() = default; -TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source) -{ - eth_header.destination = destination; - eth_header.source = source; - eth_header.ethertype = htons(IPV4_ETHERTYPE); -} - TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags) { @@ -406,13 +399,6 @@ u16 TCPPacket::Size() const UDPPacket::UDPPacket() = default; -UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source) -{ - eth_header.destination = destination; - eth_header.source = source; - eth_header.ethertype = htons(IPV4_ETHERTYPE); -} - UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, const std::vector& payload) { diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index f9706c0328..57479a1f11 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -194,7 +194,6 @@ static_assert(sizeof(ARPPacket) == ARPPacket::SIZE); struct TCPPacket { TCPPacket(); - TCPPacket(const MACAddress& destination, const MACAddress& source); TCPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags); std::vector Build(); @@ -213,7 +212,6 @@ struct TCPPacket struct UDPPacket { UDPPacket(); - UDPPacket(const MACAddress& destination, const MACAddress& source); UDPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, const std::vector& payload); std::vector Build(); From b7bd2a4001ad12f03636d21b75785a032f8a8bc0 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 12:31:59 +0400 Subject: [PATCH 340/659] Common/Network: Use member initializer list --- Source/Core/Common/Network.cpp | 28 ++++++++++++---------------- Source/Core/Common/Network.h | 1 + 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 59d0c9026e..5bc6469912 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -85,9 +85,13 @@ std::optional StringToMacAddress(std::string_view mac_string) EthernetHeader::EthernetHeader() = default; -EthernetHeader::EthernetHeader(u16 ether_type) +EthernetHeader::EthernetHeader(u16 ether_type) : ethertype(htons(ether_type)) +{ +} + +EthernetHeader::EthernetHeader(const MACAddress& dest, const MACAddress& src, u16 ether_type) + : destination(dest), source(src), ethertype(htons(ether_type)) { - ethertype = htons(ether_type); } u16 EthernetHeader::Size() const @@ -339,13 +343,10 @@ TCPPacket::TCPPacket() = default; TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags) + : eth_header(destination, source, IPV4_ETHERTYPE), + ip_header(Common::TCPHeader::SIZE, IPPROTO_TCP, from, to), + tcp_header(from, to, seq, ack, flags) { - eth_header.destination = destination; - eth_header.source = source; - eth_header.ethertype = htons(IPV4_ETHERTYPE); - - ip_header = Common::IPv4Header(Common::TCPHeader::SIZE, IPPROTO_TCP, from, to); - tcp_header = Common::TCPHeader(from, to, seq, ack, flags); } std::vector TCPPacket::Build() @@ -401,15 +402,10 @@ UDPPacket::UDPPacket() = default; UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, const std::vector& payload) + : eth_header(destination, source, IPV4_ETHERTYPE), + ip_header(static_cast(payload.size() + Common::UDPHeader::SIZE), IPPROTO_UDP, from, to), + udp_header(from, to, static_cast(payload.size())), data(payload) { - eth_header.destination = destination; - eth_header.source = source; - eth_header.ethertype = htons(IPV4_ETHERTYPE); - - ip_header = Common::IPv4Header(static_cast(payload.size() + Common::UDPHeader::SIZE), - IPPROTO_UDP, from, to); - udp_header = Common::UDPHeader(from, to, static_cast(payload.size())); - data = payload; } std::vector UDPPacket::Build() diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index 57479a1f11..718a297f09 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -47,6 +47,7 @@ struct EthernetHeader { EthernetHeader(); explicit EthernetHeader(u16 ether_type); + EthernetHeader(const MACAddress& dest, const MACAddress& src, u16 ether_type); u16 Size() const; static constexpr std::size_t SIZE = 14; From 4efe1e7ca7ca4377b5f54e277e2d086a649c2cbd Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 12:48:12 +0400 Subject: [PATCH 341/659] Common/Network: Ensure offsetof is valid --- Source/Core/Common/Network.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index 718a297f09..e3b319bc6b 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "Common/CommonTypes.h" @@ -57,6 +58,7 @@ struct EthernetHeader u16 ethertype = 0; }; static_assert(sizeof(EthernetHeader) == EthernetHeader::SIZE); +static_assert(std::is_standard_layout_v); struct IPv4Header { @@ -79,6 +81,7 @@ struct IPv4Header IPAddress destination_addr{}; }; static_assert(sizeof(IPv4Header) == IPv4Header::SIZE); +static_assert(std::is_standard_layout_v); struct TCPHeader { @@ -101,6 +104,7 @@ struct TCPHeader u16 urgent_pointer = 0; }; static_assert(sizeof(TCPHeader) == TCPHeader::SIZE); +static_assert(std::is_standard_layout_v); struct UDPHeader { @@ -117,6 +121,7 @@ struct UDPHeader u16 checksum = 0; }; static_assert(sizeof(UDPHeader) == UDPHeader::SIZE); +static_assert(std::is_standard_layout_v); #pragma pack(push, 1) struct ARPHeader From 6238834c05d173e92cf5857bcecf9b9a59ebdf68 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 13:56:33 +0400 Subject: [PATCH 342/659] Common/Network: Add InsertObj helper --- Source/Core/Common/Network.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 5bc6469912..2f5ddd44df 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -314,6 +314,14 @@ u16 ComputeTCPNetworkChecksum(const IPAddress& from, const IPAddress& to, const return htons(static_cast(tcp_checksum)); } +template +static inline void InsertObj(Container* container, const T& obj) +{ + static_assert(std::is_trivially_copyable_v); + const u8* const ptr = reinterpret_cast(&obj); + container->insert(container->end(), ptr, ptr + sizeof(obj)); +} + ARPPacket::ARPPacket() = default; u16 ARPPacket::Size() const @@ -332,10 +340,8 @@ std::vector ARPPacket::Build() const { std::vector result; result.reserve(EthernetHeader::SIZE + ARPHeader::SIZE); - const u8* eth_ptr = reinterpret_cast(ð_header); - result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); - const u8* arp_ptr = reinterpret_cast(&arp_header); - result.insert(result.end(), arp_ptr, arp_ptr + ARPHeader::SIZE); + InsertObj(&result, eth_header); + InsertObj(&result, arp_header); return result; } @@ -359,10 +365,8 @@ std::vector TCPPacket::Build() TCPHeader::SIZE + tcp_options.size() + data.size())); // copy data - const u8* eth_ptr = reinterpret_cast(ð_header); - result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); - const u8* ip_ptr = reinterpret_cast(&ip_header); - result.insert(result.end(), ip_ptr, ip_ptr + IPv4Header::SIZE); + InsertObj(&result, eth_header); + InsertObj(&result, ip_header); std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; if (ipv4_options.size() > 0) { @@ -419,10 +423,8 @@ std::vector UDPPacket::Build() udp_header.length = htons(static_cast(UDPHeader::SIZE + data.size())); // copy data - const u8* eth_ptr = reinterpret_cast(ð_header); - result.insert(result.end(), eth_ptr, eth_ptr + EthernetHeader::SIZE); - const u8* ip_ptr = reinterpret_cast(&ip_header); - result.insert(result.end(), ip_ptr, ip_ptr + IPv4Header::SIZE); + InsertObj(&result, eth_header); + InsertObj(&result, ip_header); std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; if (ipv4_options.size() > 0) { From b206f98261e9c24b3eb79eb1df466719216cb178 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 14:04:03 +0400 Subject: [PATCH 343/659] Common/Network: Remove unnecessary size checks --- Source/Core/Common/Network.cpp | 36 ++++++++++++---------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 2f5ddd44df..f6aac99922 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -368,11 +368,9 @@ std::vector TCPPacket::Build() InsertObj(&result, eth_header); InsertObj(&result, ip_header); std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; - if (ipv4_options.size() > 0) - { - result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - offset += ipv4_options.size(); - } + result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); + offset += ipv4_options.size(); + tcp_header.checksum = 0; const u16 props = (ntohs(tcp_header.properties) & 0xfff) | (static_cast((tcp_options.size() + TCPHeader::SIZE) & 0x3c) << 10); @@ -381,15 +379,11 @@ std::vector TCPPacket::Build() result.insert(result.end(), tcp_ptr, tcp_ptr + TCPHeader::SIZE); const std::size_t tcp_offset = offset; offset += TCPHeader::SIZE; - if (tcp_options.size() > 0) - { - result.insert(result.end(), tcp_options.begin(), tcp_options.end()); - offset += tcp_options.size(); - } - if (data.size() > 0) - { - result.insert(result.end(), data.begin(), data.end()); - } + result.insert(result.end(), tcp_options.begin(), tcp_options.end()); + offset += tcp_options.size(); + + result.insert(result.end(), data.begin(), data.end()); + tcp_header.checksum = ComputeTCPNetworkChecksum( ip_header.source_addr, ip_header.destination_addr, &result[tcp_offset], static_cast(result.size() - tcp_offset), IPPROTO_TCP); @@ -426,20 +420,16 @@ std::vector UDPPacket::Build() InsertObj(&result, eth_header); InsertObj(&result, ip_header); std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; - if (ipv4_options.size() > 0) - { - result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - offset += ipv4_options.size(); - } + result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); + offset += ipv4_options.size(); + udp_header.checksum = 0; const u8* udp_ptr = reinterpret_cast(&udp_header); result.insert(result.end(), udp_ptr, udp_ptr + UDPHeader::SIZE); const std::size_t udp_offset = offset; offset += UDPHeader::SIZE; - if (data.size() > 0) - { - result.insert(result.end(), data.begin(), data.end()); - } + result.insert(result.end(), data.begin(), data.end()); + udp_header.checksum = ComputeTCPNetworkChecksum( ip_header.source_addr, ip_header.destination_addr, &result[udp_offset], static_cast(result.size() - udp_offset), IPPROTO_UDP); From d902b04ae09a7118b7551a7fbe8c31f43cbcf643 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 14:11:50 +0400 Subject: [PATCH 344/659] Common/Network: Remove unused offset variables --- Source/Core/Common/Network.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index f6aac99922..1ee5496fcc 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -367,9 +367,8 @@ std::vector TCPPacket::Build() // copy data InsertObj(&result, eth_header); InsertObj(&result, ip_header); - std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - offset += ipv4_options.size(); + const std::size_t tcp_offset = result.size(); tcp_header.checksum = 0; const u16 props = (ntohs(tcp_header.properties) & 0xfff) | @@ -377,11 +376,7 @@ std::vector TCPPacket::Build() tcp_header.properties = htons(props); const u8* tcp_ptr = reinterpret_cast(&tcp_header); result.insert(result.end(), tcp_ptr, tcp_ptr + TCPHeader::SIZE); - const std::size_t tcp_offset = offset; - offset += TCPHeader::SIZE; result.insert(result.end(), tcp_options.begin(), tcp_options.end()); - offset += tcp_options.size(); - result.insert(result.end(), data.begin(), data.end()); tcp_header.checksum = ComputeTCPNetworkChecksum( @@ -419,15 +414,12 @@ std::vector UDPPacket::Build() // copy data InsertObj(&result, eth_header); InsertObj(&result, ip_header); - std::size_t offset = EthernetHeader::SIZE + IPv4Header::SIZE; result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - offset += ipv4_options.size(); + const std::size_t udp_offset = result.size(); udp_header.checksum = 0; const u8* udp_ptr = reinterpret_cast(&udp_header); result.insert(result.end(), udp_ptr, udp_ptr + UDPHeader::SIZE); - const std::size_t udp_offset = offset; - offset += UDPHeader::SIZE; result.insert(result.end(), data.begin(), data.end()); udp_header.checksum = ComputeTCPNetworkChecksum( From 5fdf255a2da7736a791a8a35f9652ea5ac14fe06 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 20:12:07 +0400 Subject: [PATCH 345/659] Common/Network: Make Build() methods const --- Source/Core/Common/Network.cpp | 74 +++++++++++++------------ Source/Core/Common/Network.h | 4 +- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 12 ++-- 3 files changed, 46 insertions(+), 44 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index 1ee5496fcc..f35308a5ab 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -355,34 +355,36 @@ TCPPacket::TCPPacket(const MACAddress& destination, const MACAddress& source, { } -std::vector TCPPacket::Build() +std::vector TCPPacket::Build() const { std::vector result; - result.reserve(Size()); + result.reserve(Size()); // Useful not to invalidate .data() pointers - // recalc size - ip_header.total_len = htons(static_cast(IPv4Header::SIZE + ipv4_options.size() + - TCPHeader::SIZE + tcp_options.size() + data.size())); - - // copy data + // Copy data InsertObj(&result, eth_header); + u8* const ip_ptr = result.data() + result.size(); InsertObj(&result, ip_header); result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - const std::size_t tcp_offset = result.size(); - - tcp_header.checksum = 0; - const u16 props = (ntohs(tcp_header.properties) & 0xfff) | - (static_cast((tcp_options.size() + TCPHeader::SIZE) & 0x3c) << 10); - tcp_header.properties = htons(props); - const u8* tcp_ptr = reinterpret_cast(&tcp_header); - result.insert(result.end(), tcp_ptr, tcp_ptr + TCPHeader::SIZE); + u8* const tcp_ptr = result.data() + result.size(); + InsertObj(&result, tcp_header); result.insert(result.end(), tcp_options.begin(), tcp_options.end()); result.insert(result.end(), data.begin(), data.end()); - tcp_header.checksum = ComputeTCPNetworkChecksum( - ip_header.source_addr, ip_header.destination_addr, &result[tcp_offset], - static_cast(result.size() - tcp_offset), IPPROTO_TCP); - std::copy(tcp_ptr, tcp_ptr + TCPHeader::SIZE, result.begin() + tcp_offset); + // Adjust size and checksum fields + const u16 tcp_length = static_cast(TCPHeader::SIZE + tcp_options.size() + data.size()); + const u16 tcp_properties = + (ntohs(tcp_header.properties) & 0xfff) | + (static_cast((tcp_options.size() + TCPHeader::SIZE) & 0x3c) << 10); + Common::BitCastPtr(tcp_ptr + offsetof(TCPHeader, properties)) = htons(tcp_properties); + + const u16 ip_total_len = static_cast(IPv4Header::SIZE + ipv4_options.size() + tcp_length); + Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, total_len)) = htons(ip_total_len); + + auto checksum_bitcast_ptr = Common::BitCastPtr(tcp_ptr + offsetof(TCPHeader, checksum)); + checksum_bitcast_ptr = u16(0); + checksum_bitcast_ptr = ComputeTCPNetworkChecksum( + ip_header.source_addr, ip_header.destination_addr, tcp_ptr, tcp_length, IPPROTO_TCP); + return result; } @@ -401,31 +403,31 @@ UDPPacket::UDPPacket(const MACAddress& destination, const MACAddress& source, { } -std::vector UDPPacket::Build() +std::vector UDPPacket::Build() const { std::vector result; - result.reserve(Size()); + result.reserve(Size()); // Useful not to invalidate .data() pointers - // recalc size - ip_header.total_len = htons( - static_cast(IPv4Header::SIZE + ipv4_options.size() + UDPHeader::SIZE + data.size())); - udp_header.length = htons(static_cast(UDPHeader::SIZE + data.size())); - - // copy data + // Copy data InsertObj(&result, eth_header); + u8* const ip_ptr = result.data() + result.size(); InsertObj(&result, ip_header); result.insert(result.end(), ipv4_options.begin(), ipv4_options.end()); - const std::size_t udp_offset = result.size(); - - udp_header.checksum = 0; - const u8* udp_ptr = reinterpret_cast(&udp_header); - result.insert(result.end(), udp_ptr, udp_ptr + UDPHeader::SIZE); + u8* const udp_ptr = result.data() + result.size(); + InsertObj(&result, udp_header); result.insert(result.end(), data.begin(), data.end()); - udp_header.checksum = ComputeTCPNetworkChecksum( - ip_header.source_addr, ip_header.destination_addr, &result[udp_offset], - static_cast(result.size() - udp_offset), IPPROTO_UDP); - std::copy(udp_ptr, udp_ptr + UDPHeader::SIZE, result.begin() + udp_offset); + // Adjust size and checksum fields + const u16 udp_length = static_cast(UDPHeader::SIZE + data.size()); + Common::BitCastPtr(udp_ptr + offsetof(UDPHeader, length)) = htons(udp_length); + + const u16 ip_total_len = static_cast(IPv4Header::SIZE + ipv4_options.size() + udp_length); + Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, total_len)) = htons(ip_total_len); + + auto checksum_bitcast_ptr = Common::BitCastPtr(udp_ptr + offsetof(UDPHeader, checksum)); + checksum_bitcast_ptr = u16(0); + checksum_bitcast_ptr = ComputeTCPNetworkChecksum( + ip_header.source_addr, ip_header.destination_addr, udp_ptr, udp_length, IPPROTO_UDP); return result; } diff --git a/Source/Core/Common/Network.h b/Source/Core/Common/Network.h index e3b319bc6b..27eaad7c42 100644 --- a/Source/Core/Common/Network.h +++ b/Source/Core/Common/Network.h @@ -202,7 +202,7 @@ struct TCPPacket TCPPacket(); TCPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, u32 seq, u32 ack, u16 flags); - std::vector Build(); + std::vector Build() const; u16 Size() const; EthernetHeader eth_header; @@ -220,7 +220,7 @@ struct UDPPacket UDPPacket(); UDPPacket(const MACAddress& destination, const MACAddress& source, const sockaddr_in& from, const sockaddr_in& to, const std::vector& payload); - std::vector Build(); + std::vector Build() const; u16 Size() const; EthernetHeader eth_header; diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index 8dfbf59764..78ba89bc78 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -142,7 +142,7 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleDHCP(const Common::UDPPacket& pack reply.AddOption(3, ip_part); // router ip reply.AddOption(255, {}); // end - Common::UDPPacket response(bba_mac, m_fake_mac, from, to, reply.Build()); + const Common::UDPPacket response(bba_mac, m_fake_mac, from, to, reply.Build()); WriteToQueue(response.Build()); } @@ -179,8 +179,8 @@ StackRef* CEXIETHERNET::BuiltInBBAInterface::GetTCPSlot(u16 src_port, u16 dst_po std::vector BuildFINFrame(StackRef* ref) { - Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, - ref->ack_num, TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); + const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); for (auto& tcp_buf : ref->tcp_buffers) tcp_buf.used = false; @@ -189,8 +189,8 @@ std::vector BuildFINFrame(StackRef* ref) std::vector BuildAckFrame(StackRef* ref) { - Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, - ref->ack_num, TCP_FLAG_ACK); + const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_ACK); return result.Build(); } @@ -498,7 +498,7 @@ std::optional> TryGetDataFromSocket(StackRef* ref) ref->from.sin_port = htons(remote_port); ref->from.sin_addr.s_addr = htonl(ref->target.toInteger()); const std::vector udp_data(buffer.begin(), buffer.begin() + datasize); - Common::UDPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, udp_data); + const Common::UDPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, udp_data); return packet.Build(); } break; From b950d038b9074fb7cba61989f3214ecbe3163355 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 20:34:15 +0400 Subject: [PATCH 346/659] Common/Network: Update IP checksum since total_len might have changed --- Source/Core/Common/Network.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/Network.cpp b/Source/Core/Common/Network.cpp index f35308a5ab..2d532690c1 100644 --- a/Source/Core/Common/Network.cpp +++ b/Source/Core/Common/Network.cpp @@ -377,9 +377,15 @@ std::vector TCPPacket::Build() const (static_cast((tcp_options.size() + TCPHeader::SIZE) & 0x3c) << 10); Common::BitCastPtr(tcp_ptr + offsetof(TCPHeader, properties)) = htons(tcp_properties); - const u16 ip_total_len = static_cast(IPv4Header::SIZE + ipv4_options.size() + tcp_length); + const u16 ip_header_size = static_cast(IPv4Header::SIZE + ipv4_options.size()); + const u16 ip_total_len = ip_header_size + tcp_length; Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, total_len)) = htons(ip_total_len); + auto ip_checksum_bitcast_ptr = + Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, header_checksum)); + ip_checksum_bitcast_ptr = u16(0); + ip_checksum_bitcast_ptr = htons(Common::ComputeNetworkChecksum(ip_ptr, ip_header_size)); + auto checksum_bitcast_ptr = Common::BitCastPtr(tcp_ptr + offsetof(TCPHeader, checksum)); checksum_bitcast_ptr = u16(0); checksum_bitcast_ptr = ComputeTCPNetworkChecksum( @@ -421,9 +427,15 @@ std::vector UDPPacket::Build() const const u16 udp_length = static_cast(UDPHeader::SIZE + data.size()); Common::BitCastPtr(udp_ptr + offsetof(UDPHeader, length)) = htons(udp_length); - const u16 ip_total_len = static_cast(IPv4Header::SIZE + ipv4_options.size() + udp_length); + const u16 ip_header_size = static_cast(IPv4Header::SIZE + ipv4_options.size()); + const u16 ip_total_len = ip_header_size + udp_length; Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, total_len)) = htons(ip_total_len); + auto ip_checksum_bitcast_ptr = + Common::BitCastPtr(ip_ptr + offsetof(IPv4Header, header_checksum)); + ip_checksum_bitcast_ptr = u16(0); + ip_checksum_bitcast_ptr = htons(Common::ComputeNetworkChecksum(ip_ptr, ip_header_size)); + auto checksum_bitcast_ptr = Common::BitCastPtr(udp_ptr + offsetof(UDPHeader, checksum)); checksum_bitcast_ptr = u16(0); checksum_bitcast_ptr = ComputeTCPNetworkChecksum( From be2ede61094deb79bbb655ffe2b527aea09733a3 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 20:57:35 +0400 Subject: [PATCH 347/659] BBA/BuiltIn: Move functions to anonymous namespace --- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 219 ++++++++++++------------ 1 file changed, 111 insertions(+), 108 deletions(-) diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index 78ba89bc78..e3e4220196 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -12,12 +12,123 @@ namespace ExpansionInterface { +namespace +{ u64 GetTickCountStd() { using namespace std::chrono; return duration_cast(steady_clock::now().time_since_epoch()).count(); } +std::vector BuildFINFrame(StackRef* ref) +{ + const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); + + for (auto& tcp_buf : ref->tcp_buffers) + tcp_buf.used = false; + return result.Build(); +} + +std::vector BuildAckFrame(StackRef* ref) +{ + const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_ACK); + return result.Build(); +} + +// Change the IP identification and recompute the checksum +void SetIPIdentification(u8* ptr, std::size_t size, u16 value) +{ + if (size < Common::EthernetHeader::SIZE + Common::IPv4Header::SIZE) + return; + + u8* const ip_ptr = ptr + Common::EthernetHeader::SIZE; + const u8 ip_header_size = (*ip_ptr & 0xf) * 4; + if (size < Common::EthernetHeader::SIZE + ip_header_size) + return; + + u8* const ip_id_ptr = ip_ptr + offsetof(Common::IPv4Header, identification); + Common::BitCastPtr(ip_id_ptr) = htons(value); + + u8* const ip_checksum_ptr = ip_ptr + offsetof(Common::IPv4Header, header_checksum); + auto checksum_bitcast_ptr = Common::BitCastPtr(ip_checksum_ptr); + checksum_bitcast_ptr = u16(0); + checksum_bitcast_ptr = htons(Common::ComputeNetworkChecksum(ip_ptr, ip_header_size)); +} + +std::optional> TryGetDataFromSocket(StackRef* ref) +{ + size_t datasize = 0; // Set by socket.receive using a non-const reference + unsigned short remote_port; + + switch (ref->type) + { + case IPPROTO_UDP: + { + std::array buffer; + ref->udp_socket.receive(buffer.data(), MAX_UDP_LENGTH, datasize, ref->target, remote_port); + if (datasize > 0) + { + ref->from.sin_port = htons(remote_port); + ref->from.sin_addr.s_addr = htonl(ref->target.toInteger()); + const std::vector udp_data(buffer.begin(), buffer.begin() + datasize); + const Common::UDPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, udp_data); + return packet.Build(); + } + break; + } + + case IPPROTO_TCP: + sf::Socket::Status st = sf::Socket::Status::Done; + TcpBuffer* tcp_buffer = nullptr; + for (auto& tcp_buf : ref->tcp_buffers) + { + if (tcp_buf.used) + continue; + tcp_buffer = &tcp_buf; + break; + } + + // set default size to 0 to avoid issue + datasize = 0; + const bool can_go = (GetTickCountStd() - ref->poke_time > 100 || ref->window_size > 2000); + std::array buffer; + if (tcp_buffer != nullptr && ref->ready && can_go) + st = ref->tcp_socket.receive(buffer.data(), MAX_TCP_LENGTH, datasize); + + if (datasize > 0) + { + Common::TCPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, + ref->ack_num, TCP_FLAG_ACK); + packet.data = std::vector(buffer.begin(), buffer.begin() + datasize); + + // build buffer + tcp_buffer->seq_id = ref->seq_num; + tcp_buffer->tick = GetTickCountStd(); + tcp_buffer->data = packet.Build(); + tcp_buffer->seq_id = ref->seq_num; + tcp_buffer->used = true; + ref->seq_num += static_cast(datasize); + ref->poke_time = GetTickCountStd(); + return tcp_buffer->data; + } + if (GetTickCountStd() - ref->delay > 3000) + { + if (st == sf::Socket::Disconnected || st == sf::Socket::Error) + { + ref->ip = 0; + ref->tcp_socket.disconnect(); + return BuildFINFrame(ref); + } + } + break; + } + + return std::nullopt; +} +} // namespace + bool CEXIETHERNET::BuiltInBBAInterface::Activate() { if (IsActivated()) @@ -177,23 +288,6 @@ StackRef* CEXIETHERNET::BuiltInBBAInterface::GetTCPSlot(u16 src_port, u16 dst_po return nullptr; } -std::vector BuildFINFrame(StackRef* ref) -{ - const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, - ref->ack_num, TCP_FLAG_FIN | TCP_FLAG_ACK | TCP_FLAG_RST); - - for (auto& tcp_buf : ref->tcp_buffers) - tcp_buf.used = false; - return result.Build(); -} - -std::vector BuildAckFrame(StackRef* ref) -{ - const Common::TCPPacket result(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, - ref->ack_num, TCP_FLAG_ACK); - return result.Build(); -} - void CEXIETHERNET::BuiltInBBAInterface::HandleTCPFrame(const Common::TCPPacket& packet) { const auto& [hwdata, ip_header, tcp_header, ip_options, tcp_options, data] = packet; @@ -482,97 +576,6 @@ bool CEXIETHERNET::BuiltInBBAInterface::SendFrame(const u8* frame, u32 size) return true; } -std::optional> TryGetDataFromSocket(StackRef* ref) -{ - size_t datasize = 0; // Set by socket.receive using a non-const reference - unsigned short remote_port; - - switch (ref->type) - { - case IPPROTO_UDP: - { - std::array buffer; - ref->udp_socket.receive(buffer.data(), MAX_UDP_LENGTH, datasize, ref->target, remote_port); - if (datasize > 0) - { - ref->from.sin_port = htons(remote_port); - ref->from.sin_addr.s_addr = htonl(ref->target.toInteger()); - const std::vector udp_data(buffer.begin(), buffer.begin() + datasize); - const Common::UDPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, udp_data); - return packet.Build(); - } - break; - } - - case IPPROTO_TCP: - sf::Socket::Status st = sf::Socket::Status::Done; - TcpBuffer* tcp_buffer = nullptr; - for (auto& tcp_buf : ref->tcp_buffers) - { - if (tcp_buf.used) - continue; - tcp_buffer = &tcp_buf; - break; - } - - // set default size to 0 to avoid issue - datasize = 0; - const bool can_go = (GetTickCountStd() - ref->poke_time > 100 || ref->window_size > 2000); - std::array buffer; - if (tcp_buffer != nullptr && ref->ready && can_go) - st = ref->tcp_socket.receive(buffer.data(), MAX_TCP_LENGTH, datasize); - - if (datasize > 0) - { - Common::TCPPacket packet(ref->bba_mac, ref->my_mac, ref->from, ref->to, ref->seq_num, - ref->ack_num, TCP_FLAG_ACK); - packet.data = std::vector(buffer.begin(), buffer.begin() + datasize); - - // build buffer - tcp_buffer->seq_id = ref->seq_num; - tcp_buffer->tick = GetTickCountStd(); - tcp_buffer->data = packet.Build(); - tcp_buffer->seq_id = ref->seq_num; - tcp_buffer->used = true; - ref->seq_num += static_cast(datasize); - ref->poke_time = GetTickCountStd(); - return tcp_buffer->data; - } - if (GetTickCountStd() - ref->delay > 3000) - { - if (st == sf::Socket::Disconnected || st == sf::Socket::Error) - { - ref->ip = 0; - ref->tcp_socket.disconnect(); - return BuildFINFrame(ref); - } - } - break; - } - - return std::nullopt; -} - -// Change the IP identification and recompute the checksum -static void SetIPIdentification(u8* ptr, std::size_t size, u16 value) -{ - if (size < Common::EthernetHeader::SIZE + Common::IPv4Header::SIZE) - return; - - u8* const ip_ptr = ptr + Common::EthernetHeader::SIZE; - const u8 ip_header_size = (*ip_ptr & 0xf) * 4; - if (size < Common::EthernetHeader::SIZE + ip_header_size) - return; - - u8* const ip_id_ptr = ip_ptr + offsetof(Common::IPv4Header, identification); - Common::BitCastPtr(ip_id_ptr) = htons(value); - - u8* const ip_checksum_ptr = ip_ptr + offsetof(Common::IPv4Header, header_checksum); - auto checksum_bitcast_ptr = Common::BitCastPtr(ip_checksum_ptr); - checksum_bitcast_ptr = u16(0); - checksum_bitcast_ptr = htons(Common::ComputeNetworkChecksum(ip_ptr, ip_header_size)); -} - void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInBBAInterface* self) { while (!self->m_read_thread_shutdown.IsSet()) From 4d99506b4c3c87fc4d34932cfeaa59e09d54bf12 Mon Sep 17 00:00:00 2001 From: Merry Date: Sun, 3 Jul 2022 17:48:14 +0100 Subject: [PATCH 348/659] UnitTests/MovI2R: Test all logical immediates --- .../Core/PowerPC/JitArm64/MovI2R.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Source/UnitTests/Core/PowerPC/JitArm64/MovI2R.cpp b/Source/UnitTests/Core/PowerPC/JitArm64/MovI2R.cpp index 125e3de963..889878d43a 100644 --- a/Source/UnitTests/Core/PowerPC/JitArm64/MovI2R.cpp +++ b/Source/UnitTests/Core/PowerPC/JitArm64/MovI2R.cpp @@ -79,6 +79,37 @@ TEST(JitArm64, MovI2R_Rand) } } +// Construct and test every 64-bit logical immediate +TEST(JitArm64, MovI2R_LogImm) +{ + TestMovI2R test; + + for (unsigned size = 2; size <= 64; size *= 2) + { + for (unsigned length = 1; length < size; ++length) + { + u64 imm = ~u64{0} >> (64 - length); + for (unsigned e = size; e < 64; e *= 2) + { + imm |= imm << e; + } + for (unsigned rotation = 0; rotation < size; ++rotation) + { + test.Check64(imm); + EXPECT_EQ(static_cast(LogicalImm(imm, 64)), true); + + if (size < 64) + { + test.Check32(imm); + EXPECT_EQ(static_cast(LogicalImm(static_cast(imm), 32)), true); + } + + imm = (imm >> 63) | (imm << 1); + } + } + } +} + TEST(JitArm64, MovI2R_ADP) { TestMovI2R test; From 20ccc38f0fad309d4e830af7334d5478a224155a Mon Sep 17 00:00:00 2001 From: Merry Date: Thu, 7 Jul 2022 22:57:21 +0100 Subject: [PATCH 349/659] BitUtils: Implement CountTrailingZeros --- Source/Core/Common/BitUtils.h | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/Source/Core/Common/BitUtils.h b/Source/Core/Common/BitUtils.h index 1934809e21..bd0801491d 100644 --- a/Source/Core/Common/BitUtils.h +++ b/Source/Core/Common/BitUtils.h @@ -411,6 +411,56 @@ constexpr int CountLeadingZeros(uint32_t value) #endif } +template +constexpr int CountTrailingZerosConst(T value) +{ + int result = sizeof(T) * 8; + while (value) + { + result--; + value <<= 1; + } + return result; +} + +constexpr int CountTrailingZeros(uint64_t value) +{ +#if defined(__GNUC__) + return value ? __builtin_ctzll(value) : 64; +#elif defined(_MSC_VER) + if (std::is_constant_evaluated()) + { + return CountTrailingZerosConst(value); + } + else + { + unsigned long index = 0; + return _BitScanForward64(&index, value) ? index : 64; + } +#else + return CountTrailingZerosConst(value); +#endif +} + +constexpr int CountTrailingZeros(uint32_t value) +{ +#if defined(__GNUC__) + return value ? __builtin_ctz(value) : 32; +#elif defined(_MSC_VER) + if (std::is_constant_evaluated()) + { + return CountTrailingZerosConst(value); + } + else + { + unsigned long index = 0; + return _BitScanForward(&index, value) ? index : 32; + } +#else + return CountLeadingZerosConst(value); +#endif +} + #undef CONSTEXPR_FROM_INTRINSIC template From 0d947ed6fe21e51e2081418fa048c95b1ef66a97 Mon Sep 17 00:00:00 2001 From: Merry Date: Thu, 7 Jul 2022 23:04:56 +0100 Subject: [PATCH 350/659] Arm64Emitter: Simplify LogicalImm further h/t @dougallj --- Source/Core/Common/Arm64Emitter.h | 38 ++++++++++--------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/Source/Core/Common/Arm64Emitter.h b/Source/Core/Common/Arm64Emitter.h index 99d6b720fc..e1f237c39f 100644 --- a/Source/Core/Common/Arm64Emitter.h +++ b/Source/Core/Common/Arm64Emitter.h @@ -538,38 +538,26 @@ struct LogicalImm value |= value >> kWRegSizeInBits; } - // Identify the smallest repeating element size. - size_t esize = 0; - for (size_t i = 64; i > 1; i /= 2) - { - if (value != Common::RotateRight(value, i / 2)) - { - esize = i; - break; - } - } - - if (value == 0 || (~value) == 0 || esize == 0 || esize > width) + if (value == 0 || (~value) == 0) { valid = false; return; } - const u64 emask = (~u64{0}) >> (64 - esize); - - // Extract the repeating element, rotating it such that the LSB is 1: + // Normalize value, rotating it such that the LSB is 1: // If LSB is already one, we mask away the trailing sequence of ones and // pick the next sequence of ones. This ensures we get a complete element // that has not been cut-in-half due to rotation across the word boundary. - const u64 inverse_mask_from_trailing_ones = ~value | (value + 1); - const size_t rotation = Common::LeastSignificantSetBit(value & inverse_mask_from_trailing_ones); - const u64 element = Common::RotateRight(value, rotation) & emask; + const size_t rotation = Common::CountTrailingZeros(value & (value + 1)); + const u64 normalized = Common::RotateRight(value, rotation); - // In order to be a valid element of an AArch64 logical immediate, it must - // be contiguous. + const size_t element_size = Common::CountTrailingZeros(normalized & (normalized + 1)); + const size_t ones = Common::CountTrailingZeros(~normalized); - if (!Common::IsValidLowMask(element)) + // Check the value is repeating; also ensures element size is a power of two. + + if (Common::RotateRight(value, element_size) != value) { valid = false; return; @@ -579,11 +567,9 @@ struct LogicalImm // it gives both the number of set bits and the length of the repeated // segment. - const size_t tmp = ((~esize + 1) << 1) | (Common::CountSetBits(element) - 1); - - r = static_cast((esize - rotation) & (esize - 1)); - s = tmp & 0x3f; - n = (~tmp >> 6) & 1; + r = static_cast((element_size - rotation) & (element_size - 1)); + s = (((~element_size + 1) << 1) | (ones - 1)) & 0x3f; + n = (element_size >> 6) & 1; valid = true; } From 6cb936d0cf1a57fa461f097473b5b0b5ccaf09a1 Mon Sep 17 00:00:00 2001 From: Jun Bo Bi Date: Fri, 6 Aug 2021 11:10:44 -0400 Subject: [PATCH 351/659] Add SDL motion input and rumble support --- .../ControllerInterface/SDL/SDL.cpp | 154 ++++++++++++------ .../InputCommon/ControllerInterface/SDL/SDL.h | 50 ++++++ 2 files changed, 154 insertions(+), 50 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index a2e6893801..538e65fadf 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -56,8 +56,9 @@ static bool HandleEventAndContinue(const SDL_Event& e) else if (e.type == SDL_JOYDEVICEREMOVED) { g_controller_interface.RemoveDevice([&e](const auto* device) { - const Joystick* joystick = dynamic_cast(device); - return joystick && SDL_JoystickInstanceID(joystick->GetSDLJoystick()) == e.jdevice.which; + return device->GetSource() == "SDL" && + SDL_JoystickInstanceID(static_cast(device)->GetSDLJoystick()) == + e.jdevice.which; }); } else if (e.type == s_populate_event_type) @@ -79,7 +80,7 @@ static bool HandleEventAndContinue(const SDL_Event& e) void Init() { #if !SDL_VERSION_ATLEAST(2, 0, 0) - if (SDL_Init(SDL_INIT_JOYSTICK) != 0) + if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) != 0) ERROR_LOG_FMT(CONTROLLERINTERFACE, "SDL failed to initialize"); return; #else @@ -88,16 +89,20 @@ void Init() SDL_InitSubSystem(SDL_INIT_JOYSTICK); SDL_QuitSubSystem(SDL_INIT_JOYSTICK); #endif + +#if SDL_VERSION_ATLEAST(2, 0, 9) + SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, "1"); +#endif + s_hotplug_thread = std::thread([] { Common::ScopeGuard quit_guard([] { // TODO: there seems to be some sort of memory leak with SDL, quit isn't freeing everything up SDL_Quit(); }); - { Common::ScopeGuard init_guard([] { s_init_event.Set(); }); - if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) != 0) + if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER) != 0) { ERROR_LOG_FMT(CONTROLLERINTERFACE, "SDL failed to initialize"); return; @@ -172,25 +177,6 @@ void PopulateDevices() Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) : m_joystick(joystick), m_name(StripSpaces(GetJoystickName(sdl_index))) { -// really bad HACKS: -// to not use SDL for an XInput device -// too many people on the forums pick the SDL device and ask: -// "why don't my 360 gamepad triggers/rumble work correctly" -#ifdef _WIN32 - // checking the name is probably good (and hacky) enough - // but I'll double check with the num of buttons/axes - std::string lcasename = GetName(); - Common::ToLower(&lcasename); - - if ((std::string::npos != lcasename.find("xbox 360")) && - (10 == SDL_JoystickNumButtons(joystick)) && (5 == SDL_JoystickNumAxes(joystick)) && - (1 == SDL_JoystickNumHats(joystick)) && (0 == SDL_JoystickNumBalls(joystick))) - { - // this device won't be used - return; - } -#endif - if (SDL_JoystickNumButtons(joystick) > 255 || SDL_JoystickNumAxes(joystick) > 255 || SDL_JoystickNumHats(joystick) > 255 || SDL_JoystickNumBalls(joystick) > 255) { @@ -219,38 +205,78 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) AddAnalogInputs(new Axis(i, m_joystick, -32768), new Axis(i, m_joystick, 32767)); } + m_haptic = nullptr; + #ifdef USE_SDL_HAPTIC m_haptic = SDL_HapticOpenFromJoystick(m_joystick); - if (!m_haptic) - return; - - const unsigned int supported_effects = SDL_HapticQuery(m_haptic); - - // Disable autocenter: - if (supported_effects & SDL_HAPTIC_AUTOCENTER) - SDL_HapticSetAutocenter(m_haptic, 0); - - // Constant - if (supported_effects & SDL_HAPTIC_CONSTANT) - AddOutput(new ConstantEffect(m_haptic)); - - // Ramp - if (supported_effects & SDL_HAPTIC_RAMP) - AddOutput(new RampEffect(m_haptic)); - - // Periodic - for (auto waveform : - {SDL_HAPTIC_SINE, SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP, SDL_HAPTIC_SAWTOOTHDOWN}) + if (m_haptic) { - if (supported_effects & waveform) - AddOutput(new PeriodicEffect(m_haptic, waveform)); + const unsigned int supported_effects = SDL_HapticQuery(m_haptic); + + // Disable autocenter: + if (supported_effects & SDL_HAPTIC_AUTOCENTER) + SDL_HapticSetAutocenter(m_haptic, 0); + + // Constant + if (supported_effects & SDL_HAPTIC_CONSTANT) + AddOutput(new ConstantEffect(m_haptic)); + + // Ramp + if (supported_effects & SDL_HAPTIC_RAMP) + AddOutput(new RampEffect(m_haptic)); + + // Periodic + for (auto waveform : + {SDL_HAPTIC_SINE, SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP, SDL_HAPTIC_SAWTOOTHDOWN}) + { + if (supported_effects & waveform) + AddOutput(new PeriodicEffect(m_haptic, waveform)); + } + + // LeftRight + if (supported_effects & SDL_HAPTIC_LEFTRIGHT) + { + AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Strong)); + AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Weak)); + } } +#endif - // LeftRight - if (supported_effects & SDL_HAPTIC_LEFTRIGHT) +#if SDL_VERSION_ATLEAST(2, 0, 9) + if (!m_haptic) { - AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Strong)); - AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Weak)); + AddOutput(new Motor(m_joystick)); + } +#endif + +#ifdef USE_SDL_GAMECONTROLLER + m_controller = SDL_GameControllerOpen(sdl_index); + + if (m_controller) + { + if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_ACCEL, SDL_TRUE) == 0) + { + AddInput(new MotionInput("Accel Up", m_controller, SDL_SENSOR_ACCEL, 1, 1)); + AddInput(new MotionInput("Accel Down", m_controller, SDL_SENSOR_ACCEL, 1, -1)); + + AddInput(new MotionInput("Accel Left", m_controller, SDL_SENSOR_ACCEL, 0, -1)); + AddInput(new MotionInput("Accel Right", m_controller, SDL_SENSOR_ACCEL, 0, 1)); + + AddInput(new MotionInput("Accel Forward", m_controller, SDL_SENSOR_ACCEL, 2, -1)); + AddInput(new MotionInput("Accel Backward", m_controller, SDL_SENSOR_ACCEL, 2, 1)); + } + + if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_GYRO, SDL_TRUE) == 0) + { + AddInput(new MotionInput("Gyro Pitch Up", m_controller, SDL_SENSOR_GYRO, 0, 1)); + AddInput(new MotionInput("Gyro Pitch Down", m_controller, SDL_SENSOR_GYRO, 0, -1)); + + AddInput(new MotionInput("Gyro Roll Left", m_controller, SDL_SENSOR_GYRO, 2, 1)); + AddInput(new MotionInput("Gyro Roll Right", m_controller, SDL_SENSOR_GYRO, 2, -1)); + + AddInput(new MotionInput("Gyro Yaw Left", m_controller, SDL_SENSOR_GYRO, 1, 1)); + AddInput(new MotionInput("Gyro Yaw Right", m_controller, SDL_SENSOR_GYRO, 1, -1)); + } } #endif } @@ -267,6 +293,11 @@ Joystick::~Joystick() } #endif +#if SDL_VERSION_ATLEAST(2, 0, 9) + // stop all rumble + SDL_JoystickRumble(m_joystick, 0, 0, 0); +#endif + // close joystick SDL_JoystickClose(m_joystick); } @@ -442,6 +473,19 @@ bool Joystick::LeftRightEffect::UpdateParameters(s16 value) } #endif +#if SDL_VERSION_ATLEAST(2, 0, 9) +std::string Joystick::Motor::GetName() const +{ + return "Motor"; +} + +void Joystick::Motor::SetState(ControlState state) +{ + Uint16 rumble = state * std::numeric_limits::max(); + SDL_JoystickRumble(m_js, rumble, rumble, std::numeric_limits::max()); +} +#endif + void Joystick::UpdateInput() { // TODO: Don't call this for every Joystick, only once per ControllerInterface::UpdateInput() @@ -492,4 +536,14 @@ ControlState Joystick::Hat::GetState() const { return (SDL_JoystickGetHat(m_js, m_index) & (1 << m_direction)) > 0; } +#ifdef USE_SDL_GAMECONTROLLER + +ControlState Joystick::MotionInput::GetState() const +{ + std::array data{}; + SDL_GameControllerGetSensorData(m_gc, m_type, data.data(), (int)data.size()); + return m_scale * data[m_index]; +} + +#endif } // namespace ciface::SDL diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h index 7fbf7cf23e..7bf7565d84 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h @@ -5,14 +5,24 @@ #include +#define INIT_FLAGS SDL_INIT_JOYSTICK + #if SDL_VERSION_ATLEAST(1, 3, 0) #define USE_SDL_HAPTIC #endif +#if SDL_VERSION_ATLEAST(2, 0, 14) +#define USE_SDL_GAMECONTROLLER +#endif + #ifdef USE_SDL_HAPTIC #include #endif +#ifdef USE_SDL_GAMECONTROLLER +#include +#endif + #include "InputCommon/ControllerInterface/CoreDevice.h" namespace ciface::SDL @@ -137,6 +147,42 @@ private: }; #endif +#if SDL_VERSION_ATLEAST(2, 0, 9) + class Motor : public Output + { + public: + explicit Motor(SDL_Joystick* js) : m_js(js){}; + std::string GetName() const override; + void SetState(ControlState state) override; + + private: + SDL_Joystick* const m_js; + }; +#endif + +#ifdef USE_SDL_GAMECONTROLLER + class MotionInput : public Input + { + public: + MotionInput(const char* name, SDL_GameController* gc, SDL_SensorType type, int index, + ControlState scale) + : m_name(name), m_gc(gc), m_type(type), m_index(index), m_scale(scale){}; + + std::string GetName() const override { return m_name; }; + bool IsDetectable() const override { return false; }; + ControlState GetState() const override; + + private: + const char* m_name; + + SDL_GameController* const m_gc; + SDL_SensorType const m_type; + int const m_index; + + ControlState const m_scale; + }; +#endif + public: void UpdateInput() override; @@ -154,5 +200,9 @@ private: #ifdef USE_SDL_HAPTIC SDL_Haptic* m_haptic; #endif + +#ifdef USE_SDL_GAMECONTROLLER + SDL_GameController* m_controller; +#endif }; } // namespace ciface::SDL From 3d34a201058248cd7334fa4c075082aec4decdc2 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 6 Jun 2022 21:03:28 -0500 Subject: [PATCH 352/659] Common: Fix CountTrailingZeros for weird compilers --- Source/Core/Common/BitUtils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/BitUtils.h b/Source/Core/Common/BitUtils.h index bd0801491d..82d347cf97 100644 --- a/Source/Core/Common/BitUtils.h +++ b/Source/Core/Common/BitUtils.h @@ -457,7 +457,7 @@ constexpr int CountTrailingZeros(uint32_t value) return _BitScanForward(&index, value) ? index : 32; } #else - return CountLeadingZerosConst(value); + return CountTrailingZerosConst(value); #endif } From ceed42a0eeb396c30c2bf8451b5da69fabff5da9 Mon Sep 17 00:00:00 2001 From: Jun Bo Bi Date: Fri, 6 Aug 2021 15:22:18 -0400 Subject: [PATCH 353/659] Add SDL as a submodule --- .gitmodules | 5 + CMakeLists.txt | 21 +- Externals/ExternalsReferenceAll.props | 3 + Externals/SDL/SDL | 1 + Externals/SDL/SDL2.vcxproj | 412 ++++++++++++++++++ Source/Core/DolphinLib.props | 2 + Source/Core/InputCommon/CMakeLists.txt | 32 +- .../ControllerInterface/ControllerInterface.h | 3 + Source/VSProps/Base.props | 2 + Source/dolphin-emu.sln | 11 + 10 files changed, 464 insertions(+), 28 deletions(-) create mode 160000 Externals/SDL/SDL create mode 100644 Externals/SDL/SDL2.vcxproj diff --git a/.gitmodules b/.gitmodules index 01e2ced8b6..d27084a9a6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -23,3 +23,8 @@ url = https://github.com/KhronosGroup/SPIRV-Cross.git branch = master shallow = true +[submodule "SDL"] + path = Externals/SDL/SDL + url = https://github.com/libsdl-org/SDL.git + branch = main + shallow = true diff --git a/CMakeLists.txt b/CMakeLists.txt index ae835b0f39..e3602d8bc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,8 +84,8 @@ option(OPROFILING "Enable profiling" OFF) # TODO: Add DSPSpy option(DSPTOOL "Build dsptool" OFF) -# Enable SDL for default on operating systems that aren't Android, Linux or Windows. -if(NOT ANDROID AND NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT MSVC) +# Enable SDL for default on operating systems that aren't Android or Linux. +if(NOT ANDROID AND NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") option(ENABLE_SDL "Enables SDL as a generic controller backend" ON) else() option(ENABLE_SDL "Enables SDL as a generic controller backend" OFF) @@ -612,6 +612,23 @@ if(UNIX) add_definitions(-DUSE_MEMORYWATCHER=1) endif() +if(ENABLE_SDL) + find_package(SDL2) + + if(SDL2_FOUND) + message(STATUS "Using system SDL2") + else() + message(STATUS "Using static SDL2 from Externals") + set(SDL_SHARED OFF) + set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) + set(SDL_STATIC ON) + set(SDL_STATIC_ENABLED_BY_DEFAULT ON) + add_subdirectory(Externals/SDL/SDL) + set(SDL2_FOUND TRUE) + endif() + add_definitions(-DHAVE_SDL2=1) +endif() + if(ENABLE_ANALYTICS) message(STATUS "Enabling analytics collection (subject to end-user opt-in)") add_definitions(-DUSE_ANALYTICS=1) diff --git a/Externals/ExternalsReferenceAll.props b/Externals/ExternalsReferenceAll.props index f3a19282e4..2566a4a4a0 100644 --- a/Externals/ExternalsReferenceAll.props +++ b/Externals/ExternalsReferenceAll.props @@ -94,5 +94,8 @@ {1bea10f3-80ce-4bc4-9331-5769372cdf99} + + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA} + diff --git a/Externals/SDL/SDL b/Externals/SDL/SDL new file mode 160000 index 0000000000..cd2dcf54af --- /dev/null +++ b/Externals/SDL/SDL @@ -0,0 +1 @@ +Subproject commit cd2dcf54afaa6d640abf8b83855f6c4b5cda457d diff --git a/Externals/SDL/SDL2.vcxproj b/Externals/SDL/SDL2.vcxproj new file mode 100644 index 0000000000..ebc599029a --- /dev/null +++ b/Externals/SDL/SDL2.vcxproj @@ -0,0 +1,412 @@ + + + + + + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA} + + + + + + + + + + + + + + SDL\include;%(AdditionalIncludeDirectories) + HAVE_LIBC=1;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 8cb5919edf..2e7e546c78 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -493,6 +493,7 @@ + @@ -1104,6 +1105,7 @@ + diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index 06f959a91a..9cca78b65d 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -174,32 +174,12 @@ if(UNIX) ) endif() -if(ENABLE_SDL) - find_package(SDL2) - if(SDL2_FOUND) - message(STATUS "Using shared SDL2") - set(SDL_TARGET SDL2::SDL2) - else() - # SDL2 not found, try SDL - find_package(SDL) - if(SDL_FOUND) - message(STATUS "Using shared SDL") - add_library(System_SDL INTERFACE) - target_include_directories(System_SDL INTERFACE ${SDL_INCLUDE_DIR}) - target_link_libraries(System_SDL INTERFACE ${SDL_LIBRARY}) - set(SDL_TARGET System_SDL) - endif() - endif() - if(SDL_TARGET AND TARGET ${SDL_TARGET}) - target_sources(inputcommon PRIVATE - ControllerInterface/SDL/SDL.cpp - ControllerInterface/SDL/SDL.h - ) - target_link_libraries(inputcommon PRIVATE ${SDL_TARGET}) - target_compile_definitions(inputcommon PRIVATE "CIFACE_USE_SDL=1") - else() - message(STATUS "SDL NOT found, disabling SDL input") - endif() +if(SDL2_FOUND) + target_sources(inputcommon PRIVATE + ControllerInterface/SDL/SDL.cpp + ControllerInterface/SDL/SDL.h + ) + target_link_libraries(inputcommon PRIVATE SDL2::SDL2) endif() if(MSVC) diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h index 7a5ee0ad26..2f43cacc42 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h @@ -30,6 +30,9 @@ #define CIFACE_USE_PIPES #endif #define CIFACE_USE_DUALSHOCKUDPCLIENT +#if defined(HAVE_SDL2) +#define CIFACE_USE_SDL +#endif namespace ciface { diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index 49f546d39f..ae821339cc 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -52,6 +52,7 @@ $(ExternalsDir)picojson;%(AdditionalIncludeDirectories) $(ExternalsDir)pugixml;%(AdditionalIncludeDirectories) $(ExternalsDir)rangeset\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)SDL\SDL\include;%(AdditionalIncludeDirectories) $(ExternalsDir)SFML\include;%(AdditionalIncludeDirectories) $(ExternalsDir)soundtouch;%(AdditionalIncludeDirectories) $(ExternalsDir)Vulkan\include;%(AdditionalIncludeDirectories) @@ -91,6 +92,7 @@ HAS_LIBMGBA;%(PreprocessorDefinitions) AUTOUPDATE=1;%(PreprocessorDefinitions) SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS;%(PreprocessorDefinitions) + HAVE_SDL2=1;%(PreprocessorDefinitions) diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index 89df520d9b..b289f27548 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -81,6 +81,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "..\Externals\fmt\fmt EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv_cross", "..\Externals\spirv_cross\spirv_cross.vcxproj", "{3d780617-ec8c-4721-b9fd-dfc9bb658c7c}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "..\Externals\SDL\SDL2.vcxproj", "{8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -389,6 +391,14 @@ Global {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|ARM64.Build.0 = Release|ARM64 {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|x64.ActiveCfg = Release|x64 {3D780617-EC8C-4721-B9FD-DFC9BB658C7C}.Release|x64.Build.0 = Release|x64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Debug|ARM64.Build.0 = Debug|ARM64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Debug|x64.ActiveCfg = Debug|x64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Debug|x64.Build.0 = Debug|x64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|ARM64.ActiveCfg = Release|ARM64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|ARM64.Build.0 = Release|ARM64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|x64.ActiveCfg = Release|x64 + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -422,6 +432,7 @@ Global {864C4C8E-296D-3DBC-AD83-F1D5CB6E8EC6} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {4BC5A148-0AB3-440F-A980-A29B4B999190} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {3D780617-EC8C-4721-B9FD-DFC9BB658C7C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} + {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {64B0A343-3B94-4522-9C24-6937FE5EFB22} From 3f7a2c6d4df224ce0e7a0c36d8ede695fb3468cb Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 16 Apr 2022 09:00:00 -0700 Subject: [PATCH 354/659] ci/sdl: minor cleanup --- .../ControllerInterface/SDL/SDL.cpp | 179 +++++++++++++----- .../InputCommon/ControllerInterface/SDL/SDL.h | 6 +- 2 files changed, 132 insertions(+), 53 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 538e65fadf..b3f2147ae3 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -77,6 +77,73 @@ static bool HandleEventAndContinue(const SDL_Event& e) } #endif +static void EnableSDLLogging() +{ + SDL_LogSetAllPriority(SDL_LOG_PRIORITY_VERBOSE); + SDL_LogSetOutputFunction( + [](void*, int category, SDL_LogPriority priority, const char* message) { + std::string category_name; + switch (category) + { + case SDL_LOG_CATEGORY_APPLICATION: + category_name = "app"; + break; + case SDL_LOG_CATEGORY_ERROR: + category_name = "error"; + break; + case SDL_LOG_CATEGORY_ASSERT: + category_name = "assert"; + break; + case SDL_LOG_CATEGORY_SYSTEM: + category_name = "system"; + break; + case SDL_LOG_CATEGORY_AUDIO: + category_name = "audio"; + break; + case SDL_LOG_CATEGORY_VIDEO: + category_name = "video"; + break; + case SDL_LOG_CATEGORY_RENDER: + category_name = "render"; + break; + case SDL_LOG_CATEGORY_INPUT: + category_name = "input"; + break; + case SDL_LOG_CATEGORY_TEST: + category_name = "test"; + break; + default: + category_name = fmt::format("unknown({})", category); + break; + } + + auto log_level = Common::Log::LogLevel::LNOTICE; + switch (priority) + { + case SDL_LOG_PRIORITY_VERBOSE: + case SDL_LOG_PRIORITY_DEBUG: + log_level = Common::Log::LogLevel::LDEBUG; + break; + case SDL_LOG_PRIORITY_INFO: + log_level = Common::Log::LogLevel::LINFO; + break; + case SDL_LOG_PRIORITY_WARN: + log_level = Common::Log::LogLevel::LWARNING; + break; + case SDL_LOG_PRIORITY_ERROR: + log_level = Common::Log::LogLevel::LERROR; + break; + case SDL_LOG_PRIORITY_CRITICAL: + log_level = Common::Log::LogLevel::LNOTICE; + break; + } + + GENERIC_LOG_FMT(Common::Log::LogType::CONTROLLERINTERFACE, log_level, "{}: {}", + category_name, message); + }, + nullptr); +} + void Init() { #if !SDL_VERSION_ATLEAST(2, 0, 0) @@ -90,6 +157,8 @@ void Init() SDL_QuitSubSystem(SDL_INIT_JOYSTICK); #endif + EnableSDLLogging(); + #if SDL_VERSION_ATLEAST(2, 0, 9) SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, "1"); #endif @@ -205,39 +274,40 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) AddAnalogInputs(new Axis(i, m_joystick, -32768), new Axis(i, m_joystick, 32767)); } - m_haptic = nullptr; - #ifdef USE_SDL_HAPTIC - m_haptic = SDL_HapticOpenFromJoystick(m_joystick); - if (m_haptic) + if (SDL_JoystickIsHaptic(m_joystick)) { - const unsigned int supported_effects = SDL_HapticQuery(m_haptic); - - // Disable autocenter: - if (supported_effects & SDL_HAPTIC_AUTOCENTER) - SDL_HapticSetAutocenter(m_haptic, 0); - - // Constant - if (supported_effects & SDL_HAPTIC_CONSTANT) - AddOutput(new ConstantEffect(m_haptic)); - - // Ramp - if (supported_effects & SDL_HAPTIC_RAMP) - AddOutput(new RampEffect(m_haptic)); - - // Periodic - for (auto waveform : - {SDL_HAPTIC_SINE, SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP, SDL_HAPTIC_SAWTOOTHDOWN}) + m_haptic = SDL_HapticOpenFromJoystick(m_joystick); + if (m_haptic) { - if (supported_effects & waveform) - AddOutput(new PeriodicEffect(m_haptic, waveform)); - } + const unsigned int supported_effects = SDL_HapticQuery(m_haptic); - // LeftRight - if (supported_effects & SDL_HAPTIC_LEFTRIGHT) - { - AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Strong)); - AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Weak)); + // Disable autocenter: + if (supported_effects & SDL_HAPTIC_AUTOCENTER) + SDL_HapticSetAutocenter(m_haptic, 0); + + // Constant + if (supported_effects & SDL_HAPTIC_CONSTANT) + AddOutput(new ConstantEffect(m_haptic)); + + // Ramp + if (supported_effects & SDL_HAPTIC_RAMP) + AddOutput(new RampEffect(m_haptic)); + + // Periodic + for (auto waveform : + {SDL_HAPTIC_SINE, SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP, SDL_HAPTIC_SAWTOOTHDOWN}) + { + if (supported_effects & waveform) + AddOutput(new PeriodicEffect(m_haptic, waveform)); + } + + // LeftRight + if (supported_effects & SDL_HAPTIC_LEFTRIGHT) + { + AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Strong)); + AddOutput(new LeftRightEffect(m_haptic, LeftRightEffect::Motor::Weak)); + } } } #endif @@ -250,32 +320,34 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) #endif #ifdef USE_SDL_GAMECONTROLLER - m_controller = SDL_GameControllerOpen(sdl_index); - - if (m_controller) + if (SDL_IsGameController(sdl_index)) { - if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_ACCEL, SDL_TRUE) == 0) + m_controller = SDL_GameControllerOpen(sdl_index); + if (m_controller) { - AddInput(new MotionInput("Accel Up", m_controller, SDL_SENSOR_ACCEL, 1, 1)); - AddInput(new MotionInput("Accel Down", m_controller, SDL_SENSOR_ACCEL, 1, -1)); + if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_ACCEL, SDL_TRUE) == 0) + { + AddInput(new MotionInput("Accel Up", m_controller, SDL_SENSOR_ACCEL, 1, 1)); + AddInput(new MotionInput("Accel Down", m_controller, SDL_SENSOR_ACCEL, 1, -1)); - AddInput(new MotionInput("Accel Left", m_controller, SDL_SENSOR_ACCEL, 0, -1)); - AddInput(new MotionInput("Accel Right", m_controller, SDL_SENSOR_ACCEL, 0, 1)); + AddInput(new MotionInput("Accel Left", m_controller, SDL_SENSOR_ACCEL, 0, -1)); + AddInput(new MotionInput("Accel Right", m_controller, SDL_SENSOR_ACCEL, 0, 1)); - AddInput(new MotionInput("Accel Forward", m_controller, SDL_SENSOR_ACCEL, 2, -1)); - AddInput(new MotionInput("Accel Backward", m_controller, SDL_SENSOR_ACCEL, 2, 1)); - } + AddInput(new MotionInput("Accel Forward", m_controller, SDL_SENSOR_ACCEL, 2, -1)); + AddInput(new MotionInput("Accel Backward", m_controller, SDL_SENSOR_ACCEL, 2, 1)); + } - if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_GYRO, SDL_TRUE) == 0) - { - AddInput(new MotionInput("Gyro Pitch Up", m_controller, SDL_SENSOR_GYRO, 0, 1)); - AddInput(new MotionInput("Gyro Pitch Down", m_controller, SDL_SENSOR_GYRO, 0, -1)); + if (SDL_GameControllerSetSensorEnabled(m_controller, SDL_SENSOR_GYRO, SDL_TRUE) == 0) + { + AddInput(new MotionInput("Gyro Pitch Up", m_controller, SDL_SENSOR_GYRO, 0, 1)); + AddInput(new MotionInput("Gyro Pitch Down", m_controller, SDL_SENSOR_GYRO, 0, -1)); - AddInput(new MotionInput("Gyro Roll Left", m_controller, SDL_SENSOR_GYRO, 2, 1)); - AddInput(new MotionInput("Gyro Roll Right", m_controller, SDL_SENSOR_GYRO, 2, -1)); + AddInput(new MotionInput("Gyro Roll Left", m_controller, SDL_SENSOR_GYRO, 2, 1)); + AddInput(new MotionInput("Gyro Roll Right", m_controller, SDL_SENSOR_GYRO, 2, -1)); - AddInput(new MotionInput("Gyro Yaw Left", m_controller, SDL_SENSOR_GYRO, 1, 1)); - AddInput(new MotionInput("Gyro Yaw Right", m_controller, SDL_SENSOR_GYRO, 1, -1)); + AddInput(new MotionInput("Gyro Yaw Left", m_controller, SDL_SENSOR_GYRO, 1, 1)); + AddInput(new MotionInput("Gyro Yaw Right", m_controller, SDL_SENSOR_GYRO, 1, -1)); + } } } #endif @@ -283,13 +355,22 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) Joystick::~Joystick() { +#ifdef USE_SDL_GAMECONTROLLER + if (m_controller) + { + SDL_GameControllerClose(m_controller); + m_controller = nullptr; + } +#endif + #ifdef USE_SDL_HAPTIC if (m_haptic) { // stop/destroy all effects SDL_HapticStopAll(m_haptic); - // close haptic first + // close haptic before joystick SDL_HapticClose(m_haptic); + m_haptic = nullptr; } #endif diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h index 7bf7565d84..f789c8846a 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h @@ -5,8 +5,6 @@ #include -#define INIT_FLAGS SDL_INIT_JOYSTICK - #if SDL_VERSION_ATLEAST(1, 3, 0) #define USE_SDL_HAPTIC #endif @@ -198,11 +196,11 @@ private: std::string m_name; #ifdef USE_SDL_HAPTIC - SDL_Haptic* m_haptic; + SDL_Haptic* m_haptic = nullptr; #endif #ifdef USE_SDL_GAMECONTROLLER - SDL_GameController* m_controller; + SDL_GameController* m_controller = nullptr; #endif }; } // namespace ciface::SDL From dd20c7cf78b603867295c88632df71d0ce93d95e Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 18 Apr 2022 03:01:03 -0700 Subject: [PATCH 355/659] ci/sdl: re-add the x360 controller block --- .../ControllerInterface/SDL/SDL.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index b3f2147ae3..0aa36f82dc 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -246,6 +246,28 @@ void PopulateDevices() Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) : m_joystick(joystick), m_name(StripSpaces(GetJoystickName(sdl_index))) { + // really bad HACKS: + // to not use SDL for an XInput device + // too many people on the forums pick the SDL device and ask: + // "why don't my 360 gamepad triggers/rumble work correctly" + // XXX x360 controllers _should_ work on modern SDL2, so it's unclear why they're + // still broken. Perhaps it's because we're not pumping window messages, which SDL seems to + // expect. +#ifdef _WIN32 + // checking the name is probably good (and hacky) enough + // but I'll double check with the num of buttons/axes + std::string lcasename = GetName(); + Common::ToLower(&lcasename); + + if ((std::string::npos != lcasename.find("xbox 360")) && + (11 == SDL_JoystickNumButtons(joystick)) && (6 == SDL_JoystickNumAxes(joystick)) && + (1 == SDL_JoystickNumHats(joystick)) && (0 == SDL_JoystickNumBalls(joystick))) + { + // this device won't be used + return; + } +#endif + if (SDL_JoystickNumButtons(joystick) > 255 || SDL_JoystickNumAxes(joystick) > 255 || SDL_JoystickNumHats(joystick) > 255 || SDL_JoystickNumBalls(joystick) > 255) { From 655fb94e61f9edcb30d0370c801f7aee79a8811e Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 18 Apr 2022 03:01:36 -0700 Subject: [PATCH 356/659] ci/win32: give the wndclass a unique name other things (like SDL) may try to use "Message" --- Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp index a9c28efdc0..42aa12a141 100644 --- a/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp @@ -73,11 +73,13 @@ void ciface::Win32::Init(void* hwnd) } Common::ScopeGuard uninit([] { CoUninitialize(); }); + const auto window_name = TEXT("DolphinWin32ControllerInterface"); + WNDCLASSEX window_class_info{}; window_class_info.cbSize = sizeof(window_class_info); window_class_info.lpfnWndProc = WindowProc; window_class_info.hInstance = GetModuleHandle(nullptr); - window_class_info.lpszClassName = L"Message"; + window_class_info.lpszClassName = window_name; ATOM window_class = RegisterClassEx(&window_class_info); if (!window_class) @@ -92,7 +94,7 @@ void ciface::Win32::Init(void* hwnd) Common::HRWrap(GetLastError())); }); - message_window = CreateWindowEx(0, L"Message", nullptr, 0, 0, 0, 0, 0, HWND_MESSAGE, nullptr, + message_window = CreateWindowEx(0, window_name, nullptr, 0, 0, 0, 0, 0, HWND_MESSAGE, nullptr, nullptr, nullptr); promise_guard.Exit(); if (!message_window) From ddf83462ac1139e76d6f0732ed83fe41fa9a9050 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 18 Apr 2022 03:31:07 -0700 Subject: [PATCH 357/659] sdl: enable SDL_HINT_JOYSTICK_THREAD fixes window message pumping --- Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 0aa36f82dc..4a08e27880 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -159,6 +159,11 @@ void Init() EnableSDLLogging(); +#if SDL_VERSION_ATLEAST(2, 0, 14) + // This is required on windows so that SDL's joystick code properly pumps window messages + SDL_SetHint(SDL_HINT_JOYSTICK_THREAD, "1"); +#endif + #if SDL_VERSION_ATLEAST(2, 0, 9) SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, "1"); #endif From 54b4ad8f559d6fa16bf0ca15f91de4e7d103996f Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 18 Apr 2022 04:09:38 -0700 Subject: [PATCH 358/659] ci/sdl: pump messages for SDL_hidapi so device detection works --- .../ControllerInterface/SDL/SDL.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 4a08e27880..6dec6003fd 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -15,6 +15,8 @@ #include "InputCommon/ControllerInterface/ControllerInterface.h" #ifdef _WIN32 +#include + #pragma comment(lib, "SDL2.lib") #endif @@ -204,11 +206,34 @@ void Init() } } +#ifdef _WIN32 + // This is a hack to workaround SDL_hidapi using window messages to detect device + // removal/arrival, yet no part of SDL pumps messages for it. It can hopefully be removed in the + // future when SDL fixes the issue. Note this is a separate issue from SDL_HINT_JOYSTICK_THREAD. + // Also note that SDL_WaitEvent may block while device detection window messages get queued up, + // causing some noticible stutter. This is just another reason it should be fixed properly by + // SDL... + const auto window_handle = + FindWindowEx(HWND_MESSAGE, nullptr, TEXT("SDL_HIDAPI_DEVICE_DETECTION"), nullptr); +#endif + SDL_Event e; while (SDL_WaitEvent(&e) != 0) { if (!HandleEventAndContinue(e)) return; + +#ifdef _WIN32 + MSG msg; + while (window_handle && PeekMessage(&msg, window_handle, 0, 0, PM_NOREMOVE)) + { + if (GetMessageA(&msg, window_handle, 0, 0) != 0) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } +#endif } }); From 6cc8adb3ae6b8f3a36a6f835e447ed37d1229a49 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 8 Jul 2022 18:47:10 -0700 Subject: [PATCH 359/659] DVDInterface: Mask upper bits of DIMAR in GC mode The masking was removed in d3aad1d6d527a06166806d38bd065ab1d7484d50, based on a Wii hardware test. Based on https://bugs.dolphin-emu.org/issues/12970 the masking should apply in GameCube mode, though. --- Source/Core/Core/HW/DVD/DVDInterface.cpp | 14 ++++++++++++-- Source/Core/Core/HW/DVD/DVDInterface.h | 2 +- Source/Core/Core/HW/Memmap.cpp | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 857c6edb91..8f00b955d2 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -606,7 +606,7 @@ bool UpdateRunningGameMetadata(std::optional title_id) return DVDThread::UpdateRunningGameMetadata(IOS::HLE::DIDevice::GetCurrentPartition(), title_id); } -void RegisterMMIO(MMIO::Mapping* mmio, u32 base) +void RegisterMMIO(MMIO::Mapping* mmio, u32 base, bool is_wii) { mmio->Register(base | DI_STATUS_REGISTER, MMIO::DirectRead(&s_DISR.Hex), MMIO::ComplexWrite([](u32, u32 val) { @@ -657,8 +657,18 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) // DMA related registers. Mostly direct accesses (+ masking for writes to // handle things like address alignment) and complex write on the DMA // control register that will trigger the DMA. + + // The DMA address register masks away the top and bottom bits on GameCube, but only the top bits + // on Wii (which can be observed by reading back the register; this difference probably exists due + // to the existence of MEM2). The behavior of GameCube mode on a Wii (via MIOS/booting form the + // system menu) has not been tested yet. Note that RegisterMMIO does not get re-called when + // switching to GameCube mode; we handle this difference by applying the masking when using the + // GameCube's DI MMIO address (0x0C006000) but not applying it when using the Wii's DI MMIO + // address (0x0D006000), although we allow writes to both of these addresses if Dolphin was + // started in Wii mode. (Also, normally in Wii mode the DI MMIOs are only written by the + // IOS /dev/di module, but we *do* emulate /dev/di writing the DI MMIOs.) mmio->Register(base | DI_DMA_ADDRESS_REGISTER, MMIO::DirectRead(&s_DIMAR), - MMIO::DirectWrite(&s_DIMAR, ~0x1F)); + MMIO::DirectWrite(&s_DIMAR, is_wii ? ~0x1F : ~0xFC00001F)); mmio->Register(base | DI_DMA_LENGTH_REGISTER, MMIO::DirectRead(&s_DILENGTH), MMIO::DirectWrite(&s_DILENGTH, ~0x1F)); mmio->Register(base | DI_DMA_CONTROL_REGISTER, MMIO::DirectRead(&s_DICR.Hex), diff --git a/Source/Core/Core/HW/DVD/DVDInterface.h b/Source/Core/Core/HW/DVD/DVDInterface.h index 80dbbc5f1b..930da55b12 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.h +++ b/Source/Core/Core/HW/DVD/DVDInterface.h @@ -113,7 +113,7 @@ void ResetDrive(bool spinup); void Shutdown(); void DoState(PointerWrap& p); -void RegisterMMIO(MMIO::Mapping* mmio, u32 base); +void RegisterMMIO(MMIO::Mapping* mmio, u32 base, bool is_wii); void SetDisc(std::unique_ptr disc, std::optional> auto_disc_change_paths); diff --git a/Source/Core/Core/HW/Memmap.cpp b/Source/Core/Core/HW/Memmap.cpp index f61e974bf3..e9b78f6383 100644 --- a/Source/Core/Core/HW/Memmap.cpp +++ b/Source/Core/Core/HW/Memmap.cpp @@ -141,14 +141,14 @@ static void InitMMIO(bool is_wii) ProcessorInterface::RegisterMMIO(mmio_mapping.get(), 0x0C003000); MemoryInterface::RegisterMMIO(mmio_mapping.get(), 0x0C004000); DSP::RegisterMMIO(mmio_mapping.get(), 0x0C005000); - DVDInterface::RegisterMMIO(mmio_mapping.get(), 0x0C006000); + DVDInterface::RegisterMMIO(mmio_mapping.get(), 0x0C006000, false); SerialInterface::RegisterMMIO(mmio_mapping.get(), 0x0C006400); ExpansionInterface::RegisterMMIO(mmio_mapping.get(), 0x0C006800); AudioInterface::RegisterMMIO(mmio_mapping.get(), 0x0C006C00); if (is_wii) { IOS::RegisterMMIO(mmio_mapping.get(), 0x0D000000); - DVDInterface::RegisterMMIO(mmio_mapping.get(), 0x0D006000); + DVDInterface::RegisterMMIO(mmio_mapping.get(), 0x0D006000, true); SerialInterface::RegisterMMIO(mmio_mapping.get(), 0x0D006400); ExpansionInterface::RegisterMMIO(mmio_mapping.get(), 0x0D006800); AudioInterface::RegisterMMIO(mmio_mapping.get(), 0x0D006C00); From bd02356e493f8a952033922807b16a6dca7511f2 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 02:19:18 +0200 Subject: [PATCH 360/659] Externals: Add FatFs R0.14b, including the UTF-8 fix from April 4, 2022 at http://elm-chan.org/fsw/ff/patches.html --- Externals/FatFs/00history.txt | 359 + Externals/FatFs/00readme.txt | 21 + Externals/FatFs/LICENSE.txt | 24 + Externals/FatFs/diskio.c | 229 + Externals/FatFs/diskio.h | 77 + Externals/FatFs/ff.c | 6982 ++++++++++++++ Externals/FatFs/ff.h | 422 + Externals/FatFs/ffconf.h | 301 + Externals/FatFs/ffsystem.c | 170 + Externals/FatFs/ffunicode.c | 15593 ++++++++++++++++++++++++++++++++ 10 files changed, 24178 insertions(+) create mode 100644 Externals/FatFs/00history.txt create mode 100644 Externals/FatFs/00readme.txt create mode 100644 Externals/FatFs/LICENSE.txt create mode 100644 Externals/FatFs/diskio.c create mode 100644 Externals/FatFs/diskio.h create mode 100644 Externals/FatFs/ff.c create mode 100644 Externals/FatFs/ff.h create mode 100644 Externals/FatFs/ffconf.h create mode 100644 Externals/FatFs/ffsystem.c create mode 100644 Externals/FatFs/ffunicode.c diff --git a/Externals/FatFs/00history.txt b/Externals/FatFs/00history.txt new file mode 100644 index 0000000000..8a0169b1ff --- /dev/null +++ b/Externals/FatFs/00history.txt @@ -0,0 +1,359 @@ +---------------------------------------------------------------------------- + Revision history of FatFs module +---------------------------------------------------------------------------- + +R0.00 (February 26, 2006) + + Prototype. + + + +R0.01 (April 29, 2006) + + The first release. + + + +R0.02 (June 01, 2006) + + Added FAT12 support. + Removed unbuffered mode. + Fixed a problem on small (<32M) partition. + + + +R0.02a (June 10, 2006) + + Added a configuration option (_FS_MINIMUM). + + + +R0.03 (September 22, 2006) + + Added f_rename(). + Changed option _FS_MINIMUM to _FS_MINIMIZE. + + + +R0.03a (December 11, 2006) + + Improved cluster scan algorithm to write files fast. + Fixed f_mkdir() creates incorrect directory on FAT32. + + + +R0.04 (February 04, 2007) + + Added f_mkfs(). + Supported multiple drive system. + Changed some interfaces for multiple drive system. + Changed f_mountdrv() to f_mount(). + + + +R0.04a (April 01, 2007) + + Supported multiple partitions on a physical drive. + Added a capability of extending file size to f_lseek(). + Added minimization level 3. + Fixed an endian sensitive code in f_mkfs(). + + + +R0.04b (May 05, 2007) + + Added a configuration option _USE_NTFLAG. + Added FSINFO support. + Fixed DBCS name can result FR_INVALID_NAME. + Fixed short seek (<= csize) collapses the file object. + + + +R0.05 (August 25, 2007) + + Changed arguments of f_read(), f_write() and f_mkfs(). + Fixed f_mkfs() on FAT32 creates incorrect FSINFO. + Fixed f_mkdir() on FAT32 creates incorrect directory. + + + +R0.05a (February 03, 2008) + + Added f_truncate() and f_utime(). + Fixed off by one error at FAT sub-type determination. + Fixed btr in f_read() can be mistruncated. + Fixed cached sector is not flushed when create and close without write. + + + +R0.06 (April 01, 2008) + + Added fputc(), fputs(), fprintf() and fgets(). + Improved performance of f_lseek() on moving to the same or following cluster. + + + +R0.07 (April 01, 2009) + + Merged Tiny-FatFs as a configuration option. (_FS_TINY) + Added long file name feature. (_USE_LFN) + Added multiple code page feature. (_CODE_PAGE) + Added re-entrancy for multitask operation. (_FS_REENTRANT) + Added auto cluster size selection to f_mkfs(). + Added rewind option to f_readdir(). + Changed result code of critical errors. + Renamed string functions to avoid name collision. + + + +R0.07a (April 14, 2009) + + Septemberarated out OS dependent code on reentrant cfg. + Added multiple sector size feature. + + + +R0.07c (June 21, 2009) + + Fixed f_unlink() can return FR_OK on error. + Fixed wrong cache control in f_lseek(). + Added relative path feature. + Added f_chdir() and f_chdrive(). + Added proper case conversion to extended character. + + + +R0.07e (November 03, 2009) + + Septemberarated out configuration options from ff.h to ffconf.h. + Fixed f_unlink() fails to remove a sub-directory on _FS_RPATH. + Fixed name matching error on the 13 character boundary. + Added a configuration option, _LFN_UNICODE. + Changed f_readdir() to return the SFN with always upper case on non-LFN cfg. + + + +R0.08 (May 15, 2010) + + Added a memory configuration option. (_USE_LFN = 3) + Added file lock feature. (_FS_SHARE) + Added fast seek feature. (_USE_FASTSEEK) + Changed some types on the API, XCHAR->TCHAR. + Changed .fname in the FILINFO structure on Unicode cfg. + String functions support UTF-8 encoding files on Unicode cfg. + + + +R0.08a (August 16, 2010) + + Added f_getcwd(). (_FS_RPATH = 2) + Added sector erase feature. (_USE_ERASE) + Moved file lock semaphore table from fs object to the bss. + Fixed f_mkfs() creates wrong FAT32 volume. + + + +R0.08b (January 15, 2011) + + Fast seek feature is also applied to f_read() and f_write(). + f_lseek() reports required table size on creating CLMP. + Extended format syntax of f_printf(). + Ignores duplicated directory separators in given path name. + + + +R0.09 (September 06, 2011) + + f_mkfs() supports multiple partition to complete the multiple partition feature. + Added f_fdisk(). + + + +R0.09a (August 27, 2012) + + Changed f_open() and f_opendir() reject null object pointer to avoid crash. + Changed option name _FS_SHARE to _FS_LOCK. + Fixed assertion failure due to OS/2 EA on FAT12/16 volume. + + + +R0.09b (January 24, 2013) + + Added f_setlabel() and f_getlabel(). + + + +R0.10 (October 02, 2013) + + Added selection of character encoding on the file. (_STRF_ENCODE) + Added f_closedir(). + Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO) + Added forced mount feature with changes of f_mount(). + Improved behavior of volume auto detection. + Improved write throughput of f_puts() and f_printf(). + Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write(). + Fixed f_write() can be truncated when the file size is close to 4GB. + Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect value on error. + + + +R0.10a (January 15, 2014) + + Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID) + Added a configuration option of minimum sector size. (_MIN_SS) + 2nd argument of f_rename() can have a drive number and it will be ignored. + Fixed f_mount() with forced mount fails when drive number is >= 1. (appeared at R0.10) + Fixed f_close() invalidates the file object without volume lock. + Fixed f_closedir() returns but the volume lock is left acquired. (appeared at R0.10) + Fixed creation of an entry with LFN fails on too many SFN collisions. (appeared at R0.07) + + + +R0.10b (May 19, 2014) + + Fixed a hard error in the disk I/O layer can collapse the directory entry. + Fixed LFN entry is not deleted when delete/rename an object with lossy converted SFN. (appeared at R0.07) + + + +R0.10c (November 09, 2014) + + Added a configuration option for the platforms without RTC. (_FS_NORTC) + Changed option name _USE_ERASE to _USE_TRIM. + Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b) + Fixed a potential problem of FAT access that can appear on disk error. + Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08) + + + +R0.11 (February 09, 2015) + + Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND) + Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c) + Fixed _FS_NORTC option does not work properly. (appeared at R0.10c) + + + +R0.11a (September 05, 2015) + + Fixed wrong media change can lead a deadlock at thread-safe configuration. + Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE) + Removed some code pages actually not exist on the standard systems. (_CODE_PAGE) + Fixed errors in the case conversion teble of code page 437 and 850 (ff.c). + Fixed errors in the case conversion teble of Unicode (cc*.c). + + + +R0.12 (April 12, 2016) + + Added support for exFAT file system. (_FS_EXFAT) + Added f_expand(). (_USE_EXPAND) + Changed some members in FINFO structure and behavior of f_readdir(). + Added an option _USE_CHMOD. + Removed an option _WORD_ACCESS. + Fixed errors in the case conversion table of Unicode (cc*.c). + + + +R0.12a (July 10, 2016) + + Added support for creating exFAT volume with some changes of f_mkfs(). + Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed. + f_forward() is available regardless of _FS_TINY. + Fixed f_mkfs() creates wrong volume. (appeared at R0.12) + Fixed wrong memory read in create_name(). (appeared at R0.12) + Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD. + + + +R0.12b (September 04, 2016) + + Made f_rename() be able to rename objects with the same name but case. + Fixed an error in the case conversion teble of code page 866. (ff.c) + Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12) + Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12) + Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12) + Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12) + Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12) + Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12) + + + +R0.12c (March 04, 2017) + + Improved write throughput at the fragmented file on the exFAT volume. + Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN. + Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12) + Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c) + + + +R0.13 (May 21, 2017) + + Changed heading character of configuration keywords "_" to "FF_". + Removed ASCII-only configuration, FF_CODE_PAGE = 1. Use FF_CODE_PAGE = 437 instead. + Added f_setcp(), run-time code page configuration. (FF_CODE_PAGE = 0) + Improved cluster allocation time on stretch a deep buried cluster chain. + Improved processing time of f_mkdir() with large cluster size by using FF_USE_LFN = 3. + Improved NoFatChain flag of the fragmented file to be set after it is truncated and got contiguous. + Fixed archive attribute is left not set when a file on the exFAT volume is renamed. (appeared at R0.12) + Fixed exFAT FAT entry can be collapsed when write or lseek operation to the existing file is done. (appeared at R0.12c) + Fixed creating a file can fail when a new cluster allocation to the exFAT directory occures. (appeared at R0.12c) + + + +R0.13a (October 14, 2017) + + Added support for UTF-8 encoding on the API. (FF_LFN_UNICODE = 2) + Added options for file name output buffer. (FF_LFN_BUF, FF_SFN_BUF). + Added dynamic memory allocation option for working buffer of f_mkfs() and f_fdisk(). + Fixed f_fdisk() and f_mkfs() create the partition table with wrong CHS parameters. (appeared at R0.09) + Fixed f_unlink() can cause lost clusters at fragmented file on the exFAT volume. (appeared at R0.12c) + Fixed f_setlabel() rejects some valid characters for exFAT volume. (appeared at R0.12) + + + +R0.13b (April 07, 2018) + + Added support for UTF-32 encoding on the API. (FF_LFN_UNICODE = 3) + Added support for Unix style volume ID. (FF_STR_VOLUME_ID = 2) + Fixed accesing any object on the exFAT root directory beyond the cluster boundary can fail. (appeared at R0.12c) + Fixed f_setlabel() does not reject some invalid characters. (appeared at R0.09b) + + + +R0.13c (October 14, 2018) + Supported stdint.h for C99 and later. (integer.h was included in ff.h) + Fixed reading a directory gets infinite loop when the last directory entry is not empty. (appeared at R0.12) + Fixed creating a sub-directory in the fragmented sub-directory on the exFAT volume collapses FAT chain of the parent directory. (appeared at R0.12) + Fixed f_getcwd() cause output buffer overrun when the buffer has a valid drive number. (appeared at R0.13b) + + + +R0.14 (October 14, 2019) + Added support for 64-bit LBA and GUID partition table (FF_LBA64 = 1) + Changed some API functions, f_mkfs() and f_fdisk(). + Fixed f_open() function cannot find the file with file name in length of FF_MAX_LFN characters. + Fixed f_readdir() function cannot retrieve long file names in length of FF_MAX_LFN - 1 characters. + Fixed f_readdir() function returns file names with wrong case conversion. (appeared at R0.12) + Fixed f_mkfs() function can fail to create exFAT volume in the second partition. (appeared at R0.12) + + +R0.14a (December 5, 2020) + Limited number of recursive calls in f_findnext(). + Fixed old floppy disks formatted with MS-DOS 2.x and 3.x cannot be mounted. + Fixed some compiler warnings. + + + +R0.14b (April 17, 2021) + Made FatFs uses standard library for copy, compare and search instead of built-in string functions. + Added support for long long integer and floating point to f_printf(). (FF_STRF_LLI and FF_STRF_FP) + Made path name parser ignore the terminating separator to allow "dir/". + Improved the compatibility in Unix style path name feature. + Fixed the file gets dead-locked when f_open() failed with some conditions. (appeared at R0.12a) + Fixed f_mkfs() can create wrong exFAT volume due to a timing dependent error. (appeared at R0.12) + Fixed code page 855 cannot be set by f_setcp(). + Fixed some compiler warnings. + + diff --git a/Externals/FatFs/00readme.txt b/Externals/FatFs/00readme.txt new file mode 100644 index 0000000000..4960997b30 --- /dev/null +++ b/Externals/FatFs/00readme.txt @@ -0,0 +1,21 @@ +FatFs Module Source Files R0.14b + + +FILES + + 00readme.txt This file. + 00history.txt Revision history. + ff.c FatFs module. + ffconf.h Configuration file of FatFs module. + ff.h Common include file for FatFs and application module. + diskio.h Common include file for FatFs and disk I/O module. + diskio.c An example of glue function to attach existing disk I/O module to FatFs. + ffunicode.c Optional Unicode utility functions. + ffsystem.c An example of optional O/S related functions. + + + Low level disk I/O module is not included in this archive because the FatFs + module is only a generic file system layer and it does not depend on any specific + storage device. You need to provide a low level disk I/O module written to + control the storage device that attached to the target system. + diff --git a/Externals/FatFs/LICENSE.txt b/Externals/FatFs/LICENSE.txt new file mode 100644 index 0000000000..a9e57a905a --- /dev/null +++ b/Externals/FatFs/LICENSE.txt @@ -0,0 +1,24 @@ +FatFs License + +FatFs has being developped as a personal project of the author, ChaN. It is free from the code anyone else wrote at current release. Following code block shows a copy of the FatFs license document that heading the source files. + +/*----------------------------------------------------------------------------/ +/ FatFs - Generic FAT Filesystem Module Rx.xx / +/-----------------------------------------------------------------------------/ +/ +/ Copyright (C) 20xx, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: +/ +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +/----------------------------------------------------------------------------*/ + +Therefore FatFs license is one of the BSD-style licenses, but there is a significant feature. FatFs is mainly intended for embedded systems. In order to extend the usability for commercial products, the redistributions of FatFs in binary form, such as embedded code, binary library and any forms without source code, do not need to include about FatFs in the documentations. This is equivalent to the 1-clause BSD license. Of course FatFs is compatible with the most of open source software licenses include GNU GPL. When you redistribute the FatFs source code with changes or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software license that not conflict with FatFs license. diff --git a/Externals/FatFs/diskio.c b/Externals/FatFs/diskio.c new file mode 100644 index 0000000000..179e387a23 --- /dev/null +++ b/Externals/FatFs/diskio.c @@ -0,0 +1,229 @@ +/*-----------------------------------------------------------------------*/ +/* Low level disk I/O module SKELETON for FatFs (C)ChaN, 2019 */ +/*-----------------------------------------------------------------------*/ +/* If a working storage control module is available, it should be */ +/* attached to the FatFs via a glue function rather than modifying it. */ +/* This is an example of glue functions to attach various exsisting */ +/* storage control modules to the FatFs module with a defined API. */ +/*-----------------------------------------------------------------------*/ + +#include "ff.h" /* Obtains integer types */ +#include "diskio.h" /* Declarations of disk functions */ + +/* Definitions of physical drive number for each drive */ +#define DEV_RAM 0 /* Example: Map Ramdisk to physical drive 0 */ +#define DEV_MMC 1 /* Example: Map MMC/SD card to physical drive 1 */ +#define DEV_USB 2 /* Example: Map USB MSD to physical drive 2 */ + + +/*-----------------------------------------------------------------------*/ +/* Get Drive Status */ +/*-----------------------------------------------------------------------*/ + +DSTATUS disk_status ( + BYTE pdrv /* Physical drive nmuber to identify the drive */ +) +{ + DSTATUS stat; + int result; + + switch (pdrv) { + case DEV_RAM : + result = RAM_disk_status(); + + // translate the reslut code here + + return stat; + + case DEV_MMC : + result = MMC_disk_status(); + + // translate the reslut code here + + return stat; + + case DEV_USB : + result = USB_disk_status(); + + // translate the reslut code here + + return stat; + } + return STA_NOINIT; +} + + + +/*-----------------------------------------------------------------------*/ +/* Inidialize a Drive */ +/*-----------------------------------------------------------------------*/ + +DSTATUS disk_initialize ( + BYTE pdrv /* Physical drive nmuber to identify the drive */ +) +{ + DSTATUS stat; + int result; + + switch (pdrv) { + case DEV_RAM : + result = RAM_disk_initialize(); + + // translate the reslut code here + + return stat; + + case DEV_MMC : + result = MMC_disk_initialize(); + + // translate the reslut code here + + return stat; + + case DEV_USB : + result = USB_disk_initialize(); + + // translate the reslut code here + + return stat; + } + return STA_NOINIT; +} + + + +/*-----------------------------------------------------------------------*/ +/* Read Sector(s) */ +/*-----------------------------------------------------------------------*/ + +DRESULT disk_read ( + BYTE pdrv, /* Physical drive nmuber to identify the drive */ + BYTE *buff, /* Data buffer to store read data */ + LBA_t sector, /* Start sector in LBA */ + UINT count /* Number of sectors to read */ +) +{ + DRESULT res; + int result; + + switch (pdrv) { + case DEV_RAM : + // translate the arguments here + + result = RAM_disk_read(buff, sector, count); + + // translate the reslut code here + + return res; + + case DEV_MMC : + // translate the arguments here + + result = MMC_disk_read(buff, sector, count); + + // translate the reslut code here + + return res; + + case DEV_USB : + // translate the arguments here + + result = USB_disk_read(buff, sector, count); + + // translate the reslut code here + + return res; + } + + return RES_PARERR; +} + + + +/*-----------------------------------------------------------------------*/ +/* Write Sector(s) */ +/*-----------------------------------------------------------------------*/ + +#if FF_FS_READONLY == 0 + +DRESULT disk_write ( + BYTE pdrv, /* Physical drive nmuber to identify the drive */ + const BYTE *buff, /* Data to be written */ + LBA_t sector, /* Start sector in LBA */ + UINT count /* Number of sectors to write */ +) +{ + DRESULT res; + int result; + + switch (pdrv) { + case DEV_RAM : + // translate the arguments here + + result = RAM_disk_write(buff, sector, count); + + // translate the reslut code here + + return res; + + case DEV_MMC : + // translate the arguments here + + result = MMC_disk_write(buff, sector, count); + + // translate the reslut code here + + return res; + + case DEV_USB : + // translate the arguments here + + result = USB_disk_write(buff, sector, count); + + // translate the reslut code here + + return res; + } + + return RES_PARERR; +} + +#endif + + +/*-----------------------------------------------------------------------*/ +/* Miscellaneous Functions */ +/*-----------------------------------------------------------------------*/ + +DRESULT disk_ioctl ( + BYTE pdrv, /* Physical drive nmuber (0..) */ + BYTE cmd, /* Control code */ + void *buff /* Buffer to send/receive control data */ +) +{ + DRESULT res; + int result; + + switch (pdrv) { + case DEV_RAM : + + // Process of the command for the RAM drive + + return res; + + case DEV_MMC : + + // Process of the command for the MMC/SD card + + return res; + + case DEV_USB : + + // Process of the command the USB drive + + return res; + } + + return RES_PARERR; +} + diff --git a/Externals/FatFs/diskio.h b/Externals/FatFs/diskio.h new file mode 100644 index 0000000000..e4ead78380 --- /dev/null +++ b/Externals/FatFs/diskio.h @@ -0,0 +1,77 @@ +/*-----------------------------------------------------------------------/ +/ Low level disk interface modlue include file (C)ChaN, 2019 / +/-----------------------------------------------------------------------*/ + +#ifndef _DISKIO_DEFINED +#define _DISKIO_DEFINED + +#ifdef __cplusplus +extern "C" { +#endif + +/* Status of Disk Functions */ +typedef BYTE DSTATUS; + +/* Results of Disk Functions */ +typedef enum { + RES_OK = 0, /* 0: Successful */ + RES_ERROR, /* 1: R/W Error */ + RES_WRPRT, /* 2: Write Protected */ + RES_NOTRDY, /* 3: Not Ready */ + RES_PARERR /* 4: Invalid Parameter */ +} DRESULT; + + +/*---------------------------------------*/ +/* Prototypes for disk control functions */ + + +DSTATUS disk_initialize (BYTE pdrv); +DSTATUS disk_status (BYTE pdrv); +DRESULT disk_read (BYTE pdrv, BYTE* buff, LBA_t sector, UINT count); +DRESULT disk_write (BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count); +DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); + + +/* Disk Status Bits (DSTATUS) */ + +#define STA_NOINIT 0x01 /* Drive not initialized */ +#define STA_NODISK 0x02 /* No medium in the drive */ +#define STA_PROTECT 0x04 /* Write protected */ + + +/* Command code for disk_ioctrl fucntion */ + +/* Generic command (Used by FatFs) */ +#define CTRL_SYNC 0 /* Complete pending write process (needed at FF_FS_READONLY == 0) */ +#define GET_SECTOR_COUNT 1 /* Get media size (needed at FF_USE_MKFS == 1) */ +#define GET_SECTOR_SIZE 2 /* Get sector size (needed at FF_MAX_SS != FF_MIN_SS) */ +#define GET_BLOCK_SIZE 3 /* Get erase block size (needed at FF_USE_MKFS == 1) */ +#define CTRL_TRIM 4 /* Inform device that the data on the block of sectors is no longer used (needed at FF_USE_TRIM == 1) */ + +/* Generic command (Not used by FatFs) */ +#define CTRL_POWER 5 /* Get/Set power status */ +#define CTRL_LOCK 6 /* Lock/Unlock media removal */ +#define CTRL_EJECT 7 /* Eject media */ +#define CTRL_FORMAT 8 /* Create physical format on the media */ + +/* MMC/SDC specific ioctl command */ +#define MMC_GET_TYPE 10 /* Get card type */ +#define MMC_GET_CSD 11 /* Get CSD */ +#define MMC_GET_CID 12 /* Get CID */ +#define MMC_GET_OCR 13 /* Get OCR */ +#define MMC_GET_SDSTAT 14 /* Get SD status */ +#define ISDIO_READ 55 /* Read data form SD iSDIO register */ +#define ISDIO_WRITE 56 /* Write data to SD iSDIO register */ +#define ISDIO_MRITE 57 /* Masked write data to SD iSDIO register */ + +/* ATA/CF specific ioctl command */ +#define ATA_GET_REV 20 /* Get F/W revision */ +#define ATA_GET_MODEL 21 /* Get model name */ +#define ATA_GET_SN 22 /* Get serial number */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Externals/FatFs/ff.c b/Externals/FatFs/ff.c new file mode 100644 index 0000000000..25a4e49cbd --- /dev/null +++ b/Externals/FatFs/ff.c @@ -0,0 +1,6982 @@ +/*----------------------------------------------------------------------------/ +/ FatFs - Generic FAT Filesystem Module R0.14b / +/-----------------------------------------------------------------------------/ +/ +/ Copyright (C) 2021, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: +/ +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +/ +/----------------------------------------------------------------------------*/ + + +#include +#include "ff.h" /* Declarations of FatFs API */ +#include "diskio.h" /* Declarations of device I/O functions */ + + +/*-------------------------------------------------------------------------- + + Module Private Definitions + +---------------------------------------------------------------------------*/ + +#if FF_DEFINED != 86631 /* Revision ID */ +#error Wrong include file (ff.h). +#endif + + +/* Limits and boundaries */ +#define MAX_DIR 0x200000 /* Max size of FAT directory */ +#define MAX_DIR_EX 0x10000000 /* Max size of exFAT directory */ +#define MAX_FAT12 0xFF5 /* Max FAT12 clusters (differs from specs, but right for real DOS/Windows behavior) */ +#define MAX_FAT16 0xFFF5 /* Max FAT16 clusters (differs from specs, but right for real DOS/Windows behavior) */ +#define MAX_FAT32 0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */ +#define MAX_EXFAT 0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */ + + +/* Character code support macros */ +#define IsUpper(c) ((c) >= 'A' && (c) <= 'Z') +#define IsLower(c) ((c) >= 'a' && (c) <= 'z') +#define IsDigit(c) ((c) >= '0' && (c) <= '9') +#define IsSeparator(c) ((c) == '/' || (c) == '\\') +#define IsTerminator(c) ((UINT)(c) < (FF_USE_LFN ? ' ' : '!')) +#define IsSurrogate(c) ((c) >= 0xD800 && (c) <= 0xDFFF) +#define IsSurrogateH(c) ((c) >= 0xD800 && (c) <= 0xDBFF) +#define IsSurrogateL(c) ((c) >= 0xDC00 && (c) <= 0xDFFF) + + +/* Additional file access control and file status flags for internal use */ +#define FA_SEEKEND 0x20 /* Seek to end of the file on file open */ +#define FA_MODIFIED 0x40 /* File has been modified */ +#define FA_DIRTY 0x80 /* FIL.buf[] needs to be written-back */ + + +/* Additional file attribute bits for internal use */ +#define AM_VOL 0x08 /* Volume label */ +#define AM_LFN 0x0F /* LFN entry */ +#define AM_MASK 0x3F /* Mask of defined bits in FAT */ +#define AM_MASKX 0x37 /* Mask of defined bits in exFAT */ + + +/* Name status flags in fn[11] */ +#define NSFLAG 11 /* Index of the name status byte */ +#define NS_LOSS 0x01 /* Out of 8.3 format */ +#define NS_LFN 0x02 /* Force to create LFN entry */ +#define NS_LAST 0x04 /* Last segment */ +#define NS_BODY 0x08 /* Lower case flag (body) */ +#define NS_EXT 0x10 /* Lower case flag (ext) */ +#define NS_DOT 0x20 /* Dot entry */ +#define NS_NOLFN 0x40 /* Do not find LFN */ +#define NS_NONAME 0x80 /* Not followed */ + + +/* exFAT directory entry types */ +#define ET_BITMAP 0x81 /* Allocation bitmap */ +#define ET_UPCASE 0x82 /* Up-case table */ +#define ET_VLABEL 0x83 /* Volume label */ +#define ET_FILEDIR 0x85 /* File and directory */ +#define ET_STREAM 0xC0 /* Stream extension */ +#define ET_FILENAME 0xC1 /* Name extension */ + + +/* FatFs refers the FAT structure as simple byte array instead of structure member +/ because the C structure is not binary compatible between different platforms */ + +#define BS_JmpBoot 0 /* x86 jump instruction (3-byte) */ +#define BS_OEMName 3 /* OEM name (8-byte) */ +#define BPB_BytsPerSec 11 /* Sector size [byte] (WORD) */ +#define BPB_SecPerClus 13 /* Cluster size [sector] (BYTE) */ +#define BPB_RsvdSecCnt 14 /* Size of reserved area [sector] (WORD) */ +#define BPB_NumFATs 16 /* Number of FATs (BYTE) */ +#define BPB_RootEntCnt 17 /* Size of root directory area for FAT [entry] (WORD) */ +#define BPB_TotSec16 19 /* Volume size (16-bit) [sector] (WORD) */ +#define BPB_Media 21 /* Media descriptor byte (BYTE) */ +#define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */ +#define BPB_SecPerTrk 24 /* Number of sectors per track for int13h [sector] (WORD) */ +#define BPB_NumHeads 26 /* Number of heads for int13h (WORD) */ +#define BPB_HiddSec 28 /* Volume offset from top of the drive (DWORD) */ +#define BPB_TotSec32 32 /* Volume size (32-bit) [sector] (DWORD) */ +#define BS_DrvNum 36 /* Physical drive number for int13h (BYTE) */ +#define BS_NTres 37 /* WindowsNT error flag (BYTE) */ +#define BS_BootSig 38 /* Extended boot signature (BYTE) */ +#define BS_VolID 39 /* Volume serial number (DWORD) */ +#define BS_VolLab 43 /* Volume label string (8-byte) */ +#define BS_FilSysType 54 /* Filesystem type string (8-byte) */ +#define BS_BootCode 62 /* Boot code (448-byte) */ +#define BS_55AA 510 /* Signature word (WORD) */ + +#define BPB_FATSz32 36 /* FAT32: FAT size [sector] (DWORD) */ +#define BPB_ExtFlags32 40 /* FAT32: Extended flags (WORD) */ +#define BPB_FSVer32 42 /* FAT32: Filesystem version (WORD) */ +#define BPB_RootClus32 44 /* FAT32: Root directory cluster (DWORD) */ +#define BPB_FSInfo32 48 /* FAT32: Offset of FSINFO sector (WORD) */ +#define BPB_BkBootSec32 50 /* FAT32: Offset of backup boot sector (WORD) */ +#define BS_DrvNum32 64 /* FAT32: Physical drive number for int13h (BYTE) */ +#define BS_NTres32 65 /* FAT32: Error flag (BYTE) */ +#define BS_BootSig32 66 /* FAT32: Extended boot signature (BYTE) */ +#define BS_VolID32 67 /* FAT32: Volume serial number (DWORD) */ +#define BS_VolLab32 71 /* FAT32: Volume label string (8-byte) */ +#define BS_FilSysType32 82 /* FAT32: Filesystem type string (8-byte) */ +#define BS_BootCode32 90 /* FAT32: Boot code (420-byte) */ + +#define BPB_ZeroedEx 11 /* exFAT: MBZ field (53-byte) */ +#define BPB_VolOfsEx 64 /* exFAT: Volume offset from top of the drive [sector] (QWORD) */ +#define BPB_TotSecEx 72 /* exFAT: Volume size [sector] (QWORD) */ +#define BPB_FatOfsEx 80 /* exFAT: FAT offset from top of the volume [sector] (DWORD) */ +#define BPB_FatSzEx 84 /* exFAT: FAT size [sector] (DWORD) */ +#define BPB_DataOfsEx 88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */ +#define BPB_NumClusEx 92 /* exFAT: Number of clusters (DWORD) */ +#define BPB_RootClusEx 96 /* exFAT: Root directory start cluster (DWORD) */ +#define BPB_VolIDEx 100 /* exFAT: Volume serial number (DWORD) */ +#define BPB_FSVerEx 104 /* exFAT: Filesystem version (WORD) */ +#define BPB_VolFlagEx 106 /* exFAT: Volume flags (WORD) */ +#define BPB_BytsPerSecEx 108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */ +#define BPB_SecPerClusEx 109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */ +#define BPB_NumFATsEx 110 /* exFAT: Number of FATs (BYTE) */ +#define BPB_DrvNumEx 111 /* exFAT: Physical drive number for int13h (BYTE) */ +#define BPB_PercInUseEx 112 /* exFAT: Percent in use (BYTE) */ +#define BPB_RsvdEx 113 /* exFAT: Reserved (7-byte) */ +#define BS_BootCodeEx 120 /* exFAT: Boot code (390-byte) */ + +#define DIR_Name 0 /* Short file name (11-byte) */ +#define DIR_Attr 11 /* Attribute (BYTE) */ +#define DIR_NTres 12 /* Lower case flag (BYTE) */ +#define DIR_CrtTime10 13 /* Created time sub-second (BYTE) */ +#define DIR_CrtTime 14 /* Created time (DWORD) */ +#define DIR_LstAccDate 18 /* Last accessed date (WORD) */ +#define DIR_FstClusHI 20 /* Higher 16-bit of first cluster (WORD) */ +#define DIR_ModTime 22 /* Modified time (DWORD) */ +#define DIR_FstClusLO 26 /* Lower 16-bit of first cluster (WORD) */ +#define DIR_FileSize 28 /* File size (DWORD) */ +#define LDIR_Ord 0 /* LFN: LFN order and LLE flag (BYTE) */ +#define LDIR_Attr 11 /* LFN: LFN attribute (BYTE) */ +#define LDIR_Type 12 /* LFN: Entry type (BYTE) */ +#define LDIR_Chksum 13 /* LFN: Checksum of the SFN (BYTE) */ +#define LDIR_FstClusLO 26 /* LFN: MBZ field (WORD) */ +#define XDIR_Type 0 /* exFAT: Type of exFAT directory entry (BYTE) */ +#define XDIR_NumLabel 1 /* exFAT: Number of volume label characters (BYTE) */ +#define XDIR_Label 2 /* exFAT: Volume label (11-WORD) */ +#define XDIR_CaseSum 4 /* exFAT: Sum of case conversion table (DWORD) */ +#define XDIR_NumSec 1 /* exFAT: Number of secondary entries (BYTE) */ +#define XDIR_SetSum 2 /* exFAT: Sum of the set of directory entries (WORD) */ +#define XDIR_Attr 4 /* exFAT: File attribute (WORD) */ +#define XDIR_CrtTime 8 /* exFAT: Created time (DWORD) */ +#define XDIR_ModTime 12 /* exFAT: Modified time (DWORD) */ +#define XDIR_AccTime 16 /* exFAT: Last accessed time (DWORD) */ +#define XDIR_CrtTime10 20 /* exFAT: Created time subsecond (BYTE) */ +#define XDIR_ModTime10 21 /* exFAT: Modified time subsecond (BYTE) */ +#define XDIR_CrtTZ 22 /* exFAT: Created timezone (BYTE) */ +#define XDIR_ModTZ 23 /* exFAT: Modified timezone (BYTE) */ +#define XDIR_AccTZ 24 /* exFAT: Last accessed timezone (BYTE) */ +#define XDIR_GenFlags 33 /* exFAT: General secondary flags (BYTE) */ +#define XDIR_NumName 35 /* exFAT: Number of file name characters (BYTE) */ +#define XDIR_NameHash 36 /* exFAT: Hash of file name (WORD) */ +#define XDIR_ValidFileSize 40 /* exFAT: Valid file size (QWORD) */ +#define XDIR_FstClus 52 /* exFAT: First cluster of the file data (DWORD) */ +#define XDIR_FileSize 56 /* exFAT: File/Directory size (QWORD) */ + +#define SZDIRE 32 /* Size of a directory entry */ +#define DDEM 0xE5 /* Deleted directory entry mark set to DIR_Name[0] */ +#define RDDEM 0x05 /* Replacement of the character collides with DDEM */ +#define LLEF 0x40 /* Last long entry flag in LDIR_Ord */ + +#define FSI_LeadSig 0 /* FAT32 FSI: Leading signature (DWORD) */ +#define FSI_StrucSig 484 /* FAT32 FSI: Structure signature (DWORD) */ +#define FSI_Free_Count 488 /* FAT32 FSI: Number of free clusters (DWORD) */ +#define FSI_Nxt_Free 492 /* FAT32 FSI: Last allocated cluster (DWORD) */ + +#define MBR_Table 446 /* MBR: Offset of partition table in the MBR */ +#define SZ_PTE 16 /* MBR: Size of a partition table entry */ +#define PTE_Boot 0 /* MBR PTE: Boot indicator */ +#define PTE_StHead 1 /* MBR PTE: Start head */ +#define PTE_StSec 2 /* MBR PTE: Start sector */ +#define PTE_StCyl 3 /* MBR PTE: Start cylinder */ +#define PTE_System 4 /* MBR PTE: System ID */ +#define PTE_EdHead 5 /* MBR PTE: End head */ +#define PTE_EdSec 6 /* MBR PTE: End sector */ +#define PTE_EdCyl 7 /* MBR PTE: End cylinder */ +#define PTE_StLba 8 /* MBR PTE: Start in LBA */ +#define PTE_SizLba 12 /* MBR PTE: Size in LBA */ + +#define GPTH_Sign 0 /* GPT: Header signature (8-byte) */ +#define GPTH_Rev 8 /* GPT: Revision (DWORD) */ +#define GPTH_Size 12 /* GPT: Header size (DWORD) */ +#define GPTH_Bcc 16 /* GPT: Header BCC (DWORD) */ +#define GPTH_CurLba 24 /* GPT: Main header LBA (QWORD) */ +#define GPTH_BakLba 32 /* GPT: Backup header LBA (QWORD) */ +#define GPTH_FstLba 40 /* GPT: First LBA for partitions (QWORD) */ +#define GPTH_LstLba 48 /* GPT: Last LBA for partitions (QWORD) */ +#define GPTH_DskGuid 56 /* GPT: Disk GUID (16-byte) */ +#define GPTH_PtOfs 72 /* GPT: Partation table LBA (QWORD) */ +#define GPTH_PtNum 80 /* GPT: Number of table entries (DWORD) */ +#define GPTH_PteSize 84 /* GPT: Size of table entry (DWORD) */ +#define GPTH_PtBcc 88 /* GPT: Partation table BCC (DWORD) */ +#define SZ_GPTE 128 /* GPT: Size of partition table entry */ +#define GPTE_PtGuid 0 /* GPT PTE: Partition type GUID (16-byte) */ +#define GPTE_UpGuid 16 /* GPT PTE: Partition unique GUID (16-byte) */ +#define GPTE_FstLba 32 /* GPT PTE: First LBA (QWORD) */ +#define GPTE_LstLba 40 /* GPT PTE: Last LBA inclusive (QWORD) */ +#define GPTE_Flags 48 /* GPT PTE: Flags (QWORD) */ +#define GPTE_Name 56 /* GPT PTE: Name */ + + +/* Post process on fatal error in the file operations */ +#define ABORT(fs, res) { fp->err = (BYTE)(res); LEAVE_FF(fs, res); } + + +/* Re-entrancy related */ +#if FF_FS_REENTRANT +#if FF_USE_LFN == 1 +#error Static LFN work area cannot be used in thread-safe configuration +#endif +#define LEAVE_FF(fs, res) { unlock_fs(fs, res); return res; } +#else +#define LEAVE_FF(fs, res) return res +#endif + + +/* Definitions of logical drive - physical location conversion */ +#if FF_MULTI_PARTITION +#define LD2PD(vol) VolToPart[vol].pd /* Get physical drive number */ +#define LD2PT(vol) VolToPart[vol].pt /* Get partition number (0:auto search, 1..:forced partition number) */ +#else +#define LD2PD(vol) (BYTE)(vol) /* Each logical drive is associated with the same physical drive number */ +#define LD2PT(vol) 0 /* Auto partition search */ +#endif + + +/* Definitions of sector size */ +#if (FF_MAX_SS < FF_MIN_SS) || (FF_MAX_SS != 512 && FF_MAX_SS != 1024 && FF_MAX_SS != 2048 && FF_MAX_SS != 4096) || (FF_MIN_SS != 512 && FF_MIN_SS != 1024 && FF_MIN_SS != 2048 && FF_MIN_SS != 4096) +#error Wrong sector size configuration +#endif +#if FF_MAX_SS == FF_MIN_SS +#define SS(fs) ((UINT)FF_MAX_SS) /* Fixed sector size */ +#else +#define SS(fs) ((fs)->ssize) /* Variable sector size */ +#endif + + +/* Timestamp */ +#if FF_FS_NORTC == 1 +#if FF_NORTC_YEAR < 1980 || FF_NORTC_YEAR > 2107 || FF_NORTC_MON < 1 || FF_NORTC_MON > 12 || FF_NORTC_MDAY < 1 || FF_NORTC_MDAY > 31 +#error Invalid FF_FS_NORTC settings +#endif +#define GET_FATTIME() ((DWORD)(FF_NORTC_YEAR - 1980) << 25 | (DWORD)FF_NORTC_MON << 21 | (DWORD)FF_NORTC_MDAY << 16) +#else +#define GET_FATTIME() get_fattime() +#endif + + +/* File lock controls */ +#if FF_FS_LOCK != 0 +#if FF_FS_READONLY +#error FF_FS_LOCK must be 0 at read-only configuration +#endif +typedef struct { + FATFS *fs; /* Object ID 1, volume (NULL:blank entry) */ + DWORD clu; /* Object ID 2, containing directory (0:root) */ + DWORD ofs; /* Object ID 3, offset in the directory */ + WORD ctr; /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */ +} FILESEM; +#endif + + +/* SBCS up-case tables (\x80-\xFF) */ +#define TBL_CT437 {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT720 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT737 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \ + 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xEF,0xF5,0xF0,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT771 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDC,0xDE,0xDE, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF} +#define TBL_CT775 {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT850 {0x43,0x55,0x45,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x49,0x49,0x49,0x41,0x41, \ + 0x45,0x92,0x92,0x4F,0x4F,0x4F,0x55,0x55,0x59,0x4F,0x55,0x4F,0x9C,0x4F,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x41,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0x45,0x45,0x45,0x49,0x49,0x49,0x49,0xD9,0xDA,0xDB,0xDC,0xDD,0x49,0xDF, \ + 0x4F,0xE1,0x4F,0x4F,0x4F,0x4F,0xE6,0xE8,0xE8,0x55,0x55,0x55,0x59,0x59,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT852 {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC, \ + 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF} +#define TBL_CT855 {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F, \ + 0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \ + 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \ + 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF, \ + 0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT857 {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \ + 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0x49,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT860 {0x80,0x9A,0x90,0x8F,0x8E,0x91,0x86,0x80,0x89,0x89,0x92,0x8B,0x8C,0x98,0x8E,0x8F, \ + 0x90,0x91,0x92,0x8C,0x99,0xA9,0x96,0x9D,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x86,0x8B,0x9F,0x96,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT861 {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x8B,0x8B,0x8D,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x8D,0x55,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ + 0xA4,0xA5,0xA6,0xA7,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT862 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT863 {0x43,0x55,0x45,0x41,0x41,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x41,0x8F, \ + 0x45,0x45,0x45,0x4F,0x45,0x49,0x55,0x55,0x98,0x4F,0x55,0x9B,0x9C,0x55,0x55,0x9F, \ + 0xA0,0xA1,0x4F,0x55,0xA4,0xA5,0xA6,0xA7,0x49,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT864 {0x80,0x9A,0x45,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT865 {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F, \ + 0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, \ + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT866 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ + 0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} +#define TBL_CT869 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, \ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x86,0x9C,0x8D,0x8F,0x90, \ + 0x91,0x90,0x92,0x95,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, \ + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, \ + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xA4,0xA5,0xA6,0xD9,0xDA,0xDB,0xDC,0xA7,0xA8,0xDF, \ + 0xA9,0xAA,0xAC,0xAD,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xCF,0xCF,0xD0,0xEF, \ + 0xF0,0xF1,0xD1,0xD2,0xD3,0xF5,0xD4,0xF7,0xF8,0xF9,0xD5,0x96,0x95,0x98,0xFE,0xFF} + + +/* DBCS code range |----- 1st byte -----| |----------- 2nd byte -----------| */ +/* <------> <------> <------> <------> <------> */ +#define TBL_DC932 {0x81, 0x9F, 0xE0, 0xFC, 0x40, 0x7E, 0x80, 0xFC, 0x00, 0x00} +#define TBL_DC936 {0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0x80, 0xFE, 0x00, 0x00} +#define TBL_DC949 {0x81, 0xFE, 0x00, 0x00, 0x41, 0x5A, 0x61, 0x7A, 0x81, 0xFE} +#define TBL_DC950 {0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0xA1, 0xFE, 0x00, 0x00} + + +/* Macros for table definitions */ +#define MERGE_2STR(a, b) a ## b +#define MKCVTBL(hd, cp) MERGE_2STR(hd, cp) + + + + +/*-------------------------------------------------------------------------- + + Module Private Work Area + +---------------------------------------------------------------------------*/ +/* Remark: Variables defined here without initial value shall be guaranteed +/ zero/null at start-up. If not, the linker option or start-up routine is +/ not compliance with C standard. */ + +/*--------------------------------*/ +/* File/Volume controls */ +/*--------------------------------*/ + +#if FF_VOLUMES < 1 || FF_VOLUMES > 10 +#error Wrong FF_VOLUMES setting +#endif +static FATFS* FatFs[FF_VOLUMES]; /* Pointer to the filesystem objects (logical drives) */ +static WORD Fsid; /* Filesystem mount ID */ + +#if FF_FS_RPATH != 0 +static BYTE CurrVol; /* Current drive */ +#endif + +#if FF_FS_LOCK != 0 +static FILESEM Files[FF_FS_LOCK]; /* Open object lock semaphores */ +#endif + +#if FF_STR_VOLUME_ID +#ifdef FF_VOLUME_STRS +static const char* const VolumeStr[FF_VOLUMES] = {FF_VOLUME_STRS}; /* Pre-defined volume ID */ +#endif +#endif + +#if FF_LBA64 +#if FF_MIN_GPT > 0x100000000 +#error Wrong FF_MIN_GPT setting +#endif +static const BYTE GUID_MS_Basic[16] = {0xA2,0xA0,0xD0,0xEB,0xE5,0xB9,0x33,0x44,0x87,0xC0,0x68,0xB6,0xB7,0x26,0x99,0xC7}; +#endif + + + +/*--------------------------------*/ +/* LFN/Directory working buffer */ +/*--------------------------------*/ + +#if FF_USE_LFN == 0 /* Non-LFN configuration */ +#if FF_FS_EXFAT +#error LFN must be enabled when enable exFAT +#endif +#define DEF_NAMBUF +#define INIT_NAMBUF(fs) +#define FREE_NAMBUF() +#define LEAVE_MKFS(res) return res + +#else /* LFN configurations */ +#if FF_MAX_LFN < 12 || FF_MAX_LFN > 255 +#error Wrong setting of FF_MAX_LFN +#endif +#if FF_LFN_BUF < FF_SFN_BUF || FF_SFN_BUF < 12 +#error Wrong setting of FF_LFN_BUF or FF_SFN_BUF +#endif +#if FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 3 +#error Wrong setting of FF_LFN_UNICODE +#endif +static const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30}; /* FAT: Offset of LFN characters in the directory entry */ +#define MAXDIRB(nc) ((nc + 44U) / 15 * SZDIRE) /* exFAT: Size of directory entry block scratchpad buffer needed for the name length */ + +#if FF_USE_LFN == 1 /* LFN enabled with static working buffer */ +#if FF_FS_EXFAT +static BYTE DirBuf[MAXDIRB(FF_MAX_LFN)]; /* Directory entry block scratchpad buffer */ +#endif +static WCHAR LfnBuf[FF_MAX_LFN + 1]; /* LFN working buffer */ +#define DEF_NAMBUF +#define INIT_NAMBUF(fs) +#define FREE_NAMBUF() +#define LEAVE_MKFS(res) return res + +#elif FF_USE_LFN == 2 /* LFN enabled with dynamic working buffer on the stack */ +#if FF_FS_EXFAT +#define DEF_NAMBUF WCHAR lbuf[FF_MAX_LFN+1]; BYTE dbuf[MAXDIRB(FF_MAX_LFN)]; /* LFN working buffer and directory entry block scratchpad buffer */ +#define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; (fs)->dirbuf = dbuf; } +#define FREE_NAMBUF() +#else +#define DEF_NAMBUF WCHAR lbuf[FF_MAX_LFN+1]; /* LFN working buffer */ +#define INIT_NAMBUF(fs) { (fs)->lfnbuf = lbuf; } +#define FREE_NAMBUF() +#endif +#define LEAVE_MKFS(res) return res + +#elif FF_USE_LFN == 3 /* LFN enabled with dynamic working buffer on the heap */ +#if FF_FS_EXFAT +#define DEF_NAMBUF WCHAR *lfn; /* Pointer to LFN working buffer and directory entry block scratchpad buffer */ +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((FF_MAX_LFN+1)*2 + MAXDIRB(FF_MAX_LFN)); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; (fs)->dirbuf = (BYTE*)(lfn+FF_MAX_LFN+1); } +#define FREE_NAMBUF() ff_memfree(lfn) +#else +#define DEF_NAMBUF WCHAR *lfn; /* Pointer to LFN working buffer */ +#define INIT_NAMBUF(fs) { lfn = ff_memalloc((FF_MAX_LFN+1)*2); if (!lfn) LEAVE_FF(fs, FR_NOT_ENOUGH_CORE); (fs)->lfnbuf = lfn; } +#define FREE_NAMBUF() ff_memfree(lfn) +#endif +#define LEAVE_MKFS(res) { if (!work) ff_memfree(buf); return res; } +#define MAX_MALLOC 0x8000 /* Must be >=FF_MAX_SS */ + +#else +#error Wrong setting of FF_USE_LFN + +#endif /* FF_USE_LFN == 1 */ +#endif /* FF_USE_LFN == 0 */ + + + +/*--------------------------------*/ +/* Code conversion tables */ +/*--------------------------------*/ + +#if FF_CODE_PAGE == 0 /* Run-time code page configuration */ +#define CODEPAGE CodePage +static WORD CodePage; /* Current code page */ +static const BYTE *ExCvt, *DbcTbl; /* Pointer to current SBCS up-case table and DBCS code range table below */ + +static const BYTE Ct437[] = TBL_CT437; +static const BYTE Ct720[] = TBL_CT720; +static const BYTE Ct737[] = TBL_CT737; +static const BYTE Ct771[] = TBL_CT771; +static const BYTE Ct775[] = TBL_CT775; +static const BYTE Ct850[] = TBL_CT850; +static const BYTE Ct852[] = TBL_CT852; +static const BYTE Ct855[] = TBL_CT855; +static const BYTE Ct857[] = TBL_CT857; +static const BYTE Ct860[] = TBL_CT860; +static const BYTE Ct861[] = TBL_CT861; +static const BYTE Ct862[] = TBL_CT862; +static const BYTE Ct863[] = TBL_CT863; +static const BYTE Ct864[] = TBL_CT864; +static const BYTE Ct865[] = TBL_CT865; +static const BYTE Ct866[] = TBL_CT866; +static const BYTE Ct869[] = TBL_CT869; +static const BYTE Dc932[] = TBL_DC932; +static const BYTE Dc936[] = TBL_DC936; +static const BYTE Dc949[] = TBL_DC949; +static const BYTE Dc950[] = TBL_DC950; + +#elif FF_CODE_PAGE < 900 /* Static code page configuration (SBCS) */ +#define CODEPAGE FF_CODE_PAGE +static const BYTE ExCvt[] = MKCVTBL(TBL_CT, FF_CODE_PAGE); + +#else /* Static code page configuration (DBCS) */ +#define CODEPAGE FF_CODE_PAGE +static const BYTE DbcTbl[] = MKCVTBL(TBL_DC, FF_CODE_PAGE); + +#endif + + + + +/*-------------------------------------------------------------------------- + + Module Private Functions + +---------------------------------------------------------------------------*/ + + +/*-----------------------------------------------------------------------*/ +/* Load/Store multi-byte word in the FAT structure */ +/*-----------------------------------------------------------------------*/ + +static WORD ld_word (const BYTE* ptr) /* Load a 2-byte little-endian word */ +{ + WORD rv; + + rv = ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} + +static DWORD ld_dword (const BYTE* ptr) /* Load a 4-byte little-endian word */ +{ + DWORD rv; + + rv = ptr[3]; + rv = rv << 8 | ptr[2]; + rv = rv << 8 | ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} + +#if FF_FS_EXFAT +static QWORD ld_qword (const BYTE* ptr) /* Load an 8-byte little-endian word */ +{ + QWORD rv; + + rv = ptr[7]; + rv = rv << 8 | ptr[6]; + rv = rv << 8 | ptr[5]; + rv = rv << 8 | ptr[4]; + rv = rv << 8 | ptr[3]; + rv = rv << 8 | ptr[2]; + rv = rv << 8 | ptr[1]; + rv = rv << 8 | ptr[0]; + return rv; +} +#endif + +#if !FF_FS_READONLY +static void st_word (BYTE* ptr, WORD val) /* Store a 2-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} + +static void st_dword (BYTE* ptr, DWORD val) /* Store a 4-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} + +#if FF_FS_EXFAT +static void st_qword (BYTE* ptr, QWORD val) /* Store an 8-byte word in little-endian */ +{ + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; val >>= 8; + *ptr++ = (BYTE)val; +} +#endif +#endif /* !FF_FS_READONLY */ + + + +/*-----------------------------------------------------------------------*/ +/* String functions */ +/*-----------------------------------------------------------------------*/ + +/* Test if the byte is DBC 1st byte */ +static int dbc_1st (BYTE c) +{ +#if FF_CODE_PAGE == 0 /* Variable code page */ + if (DbcTbl && c >= DbcTbl[0]) { + if (c <= DbcTbl[1]) return 1; /* 1st byte range 1 */ + if (c >= DbcTbl[2] && c <= DbcTbl[3]) return 1; /* 1st byte range 2 */ + } +#elif FF_CODE_PAGE >= 900 /* DBCS fixed code page */ + if (c >= DbcTbl[0]) { + if (c <= DbcTbl[1]) return 1; + if (c >= DbcTbl[2] && c <= DbcTbl[3]) return 1; + } +#else /* SBCS fixed code page */ + if (c != 0) return 0; /* Always false */ +#endif + return 0; +} + + +/* Test if the byte is DBC 2nd byte */ +static int dbc_2nd (BYTE c) +{ +#if FF_CODE_PAGE == 0 /* Variable code page */ + if (DbcTbl && c >= DbcTbl[4]) { + if (c <= DbcTbl[5]) return 1; /* 2nd byte range 1 */ + if (c >= DbcTbl[6] && c <= DbcTbl[7]) return 1; /* 2nd byte range 2 */ + if (c >= DbcTbl[8] && c <= DbcTbl[9]) return 1; /* 2nd byte range 3 */ + } +#elif FF_CODE_PAGE >= 900 /* DBCS fixed code page */ + if (c >= DbcTbl[4]) { + if (c <= DbcTbl[5]) return 1; + if (c >= DbcTbl[6] && c <= DbcTbl[7]) return 1; + if (c >= DbcTbl[8] && c <= DbcTbl[9]) return 1; + } +#else /* SBCS fixed code page */ + if (c != 0) return 0; /* Always false */ +#endif + return 0; +} + + +#if FF_USE_LFN + +/* Get a Unicode code point from the TCHAR string in defined API encodeing */ +static DWORD tchar2uni ( /* Returns a character in UTF-16 encoding (>=0x10000 on surrogate pair, 0xFFFFFFFF on decode error) */ + const TCHAR** str /* Pointer to pointer to TCHAR string in configured encoding */ +) +{ + DWORD uc; + const TCHAR *p = *str; + +#if FF_LFN_UNICODE == 1 /* UTF-16 input */ + WCHAR wc; + + uc = *p++; /* Get a unit */ + if (IsSurrogate(uc)) { /* Surrogate? */ + wc = *p++; /* Get low surrogate */ + if (!IsSurrogateH(uc) || !IsSurrogateL(wc)) return 0xFFFFFFFF; /* Wrong surrogate? */ + uc = uc << 16 | wc; + } + +#elif FF_LFN_UNICODE == 2 /* UTF-8 input */ + BYTE b; + int nf; + + uc = (BYTE)*p++; /* Get an encoding unit */ + if (uc & 0x80) { /* Multiple byte code? */ + if ((uc & 0xE0) == 0xC0) { /* 2-byte sequence? */ + uc &= 0x1F; nf = 1; + } else if ((uc & 0xF0) == 0xE0) { /* 3-byte sequence? */ + uc &= 0x0F; nf = 2; + } else if ((uc & 0xF8) == 0xF0) { /* 4-byte sequence? */ + uc &= 0x07; nf = 3; + } else { /* Wrong sequence */ + return 0xFFFFFFFF; + } + do { /* Get trailing bytes */ + b = (BYTE)*p++; + if ((b & 0xC0) != 0x80) return 0xFFFFFFFF; /* Wrong sequence? */ + uc = uc << 6 | (b & 0x3F); + } while (--nf != 0); + if (uc < 0x80 || IsSurrogate(uc) || uc >= 0x110000) return 0xFFFFFFFF; /* Wrong code? */ + if (uc >= 0x010000) uc = 0xD800DC00 | ((uc - 0x10000) << 6 & 0x3FF0000) | (uc & 0x3FF); /* Make a surrogate pair if needed */ + } + +#elif FF_LFN_UNICODE == 3 /* UTF-32 input */ + uc = (TCHAR)*p++; /* Get a unit */ + if (uc >= 0x110000 || IsSurrogate(uc)) return 0xFFFFFFFF; /* Wrong code? */ + if (uc >= 0x010000) uc = 0xD800DC00 | ((uc - 0x10000) << 6 & 0x3FF0000) | (uc & 0x3FF); /* Make a surrogate pair if needed */ + +#else /* ANSI/OEM input */ + BYTE b; + WCHAR wc; + + wc = (BYTE)*p++; /* Get a byte */ + if (dbc_1st((BYTE)wc)) { /* Is it a DBC 1st byte? */ + b = (BYTE)*p++; /* Get 2nd byte */ + if (!dbc_2nd(b)) return 0xFFFFFFFF; /* Invalid code? */ + wc = (wc << 8) + b; /* Make a DBC */ + } + if (wc != 0) { + wc = ff_oem2uni(wc, CODEPAGE); /* ANSI/OEM ==> Unicode */ + if (wc == 0) return 0xFFFFFFFF; /* Invalid code? */ + } + uc = wc; + +#endif + *str = p; /* Next read pointer */ + return uc; +} + + +/* Store a Unicode char in defined API encoding */ +static UINT put_utf ( /* Returns number of encoding units written (0:buffer overflow or wrong encoding) */ + DWORD chr, /* UTF-16 encoded character (Surrogate pair if >=0x10000) */ + TCHAR* buf, /* Output buffer */ + UINT szb /* Size of the buffer */ +) +{ +#if FF_LFN_UNICODE == 1 /* UTF-16 output */ + WCHAR hs, wc; + + hs = (WCHAR)(chr >> 16); + wc = (WCHAR)chr; + if (hs == 0) { /* Single encoding unit? */ + if (szb < 1 || IsSurrogate(wc)) return 0; /* Buffer overflow or wrong code? */ + *buf = wc; + return 1; + } + if (szb < 2 || !IsSurrogateH(hs) || !IsSurrogateL(wc)) return 0; /* Buffer overflow or wrong surrogate? */ + *buf++ = hs; + *buf++ = wc; + return 2; + +#elif FF_LFN_UNICODE == 2 /* UTF-8 output */ + DWORD hc; + + if (chr < 0x80) { /* Single byte code? */ + if (szb < 1) return 0; /* Buffer overflow? */ + *buf = (TCHAR)chr; + return 1; + } + if (chr < 0x800) { /* 2-byte sequence? */ + if (szb < 2) return 0; /* Buffer overflow? */ + *buf++ = (TCHAR)(0xC0 | (chr >> 6 & 0x1F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 2; + } + if (chr < 0x10000) { /* 3-byte sequence? */ + if (szb < 3 || IsSurrogate(chr)) return 0; /* Buffer overflow or wrong code? */ + *buf++ = (TCHAR)(0xE0 | (chr >> 12 & 0x0F)); + *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 3; + } + /* 4-byte sequence */ + if (szb < 4) return 0; /* Buffer overflow? */ + hc = ((chr & 0xFFFF0000) - 0xD8000000) >> 6; /* Get high 10 bits */ + chr = (chr & 0xFFFF) - 0xDC00; /* Get low 10 bits */ + if (hc >= 0x100000 || chr >= 0x400) return 0; /* Wrong surrogate? */ + chr = (hc | chr) + 0x10000; + *buf++ = (TCHAR)(0xF0 | (chr >> 18 & 0x07)); + *buf++ = (TCHAR)(0x80 | (chr >> 12 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + return 4; + +#elif FF_LFN_UNICODE == 3 /* UTF-32 output */ + DWORD hc; + + if (szb < 1) return 0; /* Buffer overflow? */ + if (chr >= 0x10000) { /* Out of BMP? */ + hc = ((chr & 0xFFFF0000) - 0xD8000000) >> 6; /* Get high 10 bits */ + chr = (chr & 0xFFFF) - 0xDC00; /* Get low 10 bits */ + if (hc >= 0x100000 || chr >= 0x400) return 0; /* Wrong surrogate? */ + chr = (hc | chr) + 0x10000; + } + *buf++ = (TCHAR)chr; + return 1; + +#else /* ANSI/OEM output */ + WCHAR wc; + + wc = ff_uni2oem(chr, CODEPAGE); + if (wc >= 0x100) { /* Is this a DBC? */ + if (szb < 2) return 0; + *buf++ = (char)(wc >> 8); /* Store DBC 1st byte */ + *buf++ = (TCHAR)wc; /* Store DBC 2nd byte */ + return 2; + } + if (wc == 0 || szb < 1) return 0; /* Invalid char or buffer overflow? */ + *buf++ = (TCHAR)wc; /* Store the character */ + return 1; +#endif +} +#endif /* FF_USE_LFN */ + + +#if FF_FS_REENTRANT +/*-----------------------------------------------------------------------*/ +/* Request/Release grant to access the volume */ +/*-----------------------------------------------------------------------*/ +static int lock_fs ( /* 1:Ok, 0:timeout */ + FATFS* fs /* Filesystem object */ +) +{ + return ff_req_grant(fs->sobj); +} + + +static void unlock_fs ( + FATFS* fs, /* Filesystem object */ + FRESULT res /* Result code to be returned */ +) +{ + if (fs && res != FR_NOT_ENABLED && res != FR_INVALID_DRIVE && res != FR_TIMEOUT) { + ff_rel_grant(fs->sobj); + } +} + +#endif + + + +#if FF_FS_LOCK != 0 +/*-----------------------------------------------------------------------*/ +/* File lock control functions */ +/*-----------------------------------------------------------------------*/ + +static FRESULT chk_lock ( /* Check if the file can be accessed */ + DIR* dp, /* Directory object pointing the file to be checked */ + int acc /* Desired access type (0:Read mode open, 1:Write mode open, 2:Delete or rename) */ +) +{ + UINT i, be; + + /* Search open object table for the object */ + be = 0; + for (i = 0; i < FF_FS_LOCK; i++) { + if (Files[i].fs) { /* Existing entry */ + if (Files[i].fs == dp->obj.fs && /* Check if the object matches with an open object */ + Files[i].clu == dp->obj.sclust && + Files[i].ofs == dp->dptr) break; + } else { /* Blank entry */ + be = 1; + } + } + if (i == FF_FS_LOCK) { /* The object has not been opened */ + return (!be && acc != 2) ? FR_TOO_MANY_OPEN_FILES : FR_OK; /* Is there a blank entry for new object? */ + } + + /* The object was opened. Reject any open against writing file and all write mode open */ + return (acc != 0 || Files[i].ctr == 0x100) ? FR_LOCKED : FR_OK; +} + + +static int enq_lock (void) /* Check if an entry is available for a new object */ +{ + UINT i; + + for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; + return (i == FF_FS_LOCK) ? 0 : 1; +} + + +static UINT inc_lock ( /* Increment object open counter and returns its index (0:Internal error) */ + DIR* dp, /* Directory object pointing the file to register or increment */ + int acc /* Desired access (0:Read, 1:Write, 2:Delete/Rename) */ +) +{ + UINT i; + + + for (i = 0; i < FF_FS_LOCK; i++) { /* Find the object */ + if (Files[i].fs == dp->obj.fs + && Files[i].clu == dp->obj.sclust + && Files[i].ofs == dp->dptr) break; + } + + if (i == FF_FS_LOCK) { /* Not opened. Register it as new. */ + for (i = 0; i < FF_FS_LOCK && Files[i].fs; i++) ; + if (i == FF_FS_LOCK) return 0; /* No free entry to register (int err) */ + Files[i].fs = dp->obj.fs; + Files[i].clu = dp->obj.sclust; + Files[i].ofs = dp->dptr; + Files[i].ctr = 0; + } + + if (acc >= 1 && Files[i].ctr) return 0; /* Access violation (int err) */ + + Files[i].ctr = acc ? 0x100 : Files[i].ctr + 1; /* Set semaphore value */ + + return i + 1; /* Index number origin from 1 */ +} + + +static FRESULT dec_lock ( /* Decrement object open counter */ + UINT i /* Semaphore index (1..) */ +) +{ + WORD n; + FRESULT res; + + + if (--i < FF_FS_LOCK) { /* Index number origin from 0 */ + n = Files[i].ctr; + if (n == 0x100) n = 0; /* If write mode open, delete the entry */ + if (n > 0) n--; /* Decrement read mode open count */ + Files[i].ctr = n; + if (n == 0) Files[i].fs = 0; /* Delete the entry if open count gets zero */ + res = FR_OK; + } else { + res = FR_INT_ERR; /* Invalid index nunber */ + } + return res; +} + + +static void clear_lock ( /* Clear lock entries of the volume */ + FATFS *fs +) +{ + UINT i; + + for (i = 0; i < FF_FS_LOCK; i++) { + if (Files[i].fs == fs) Files[i].fs = 0; + } +} + +#endif /* FF_FS_LOCK != 0 */ + + + +/*-----------------------------------------------------------------------*/ +/* Move/Flush disk access window in the filesystem object */ +/*-----------------------------------------------------------------------*/ +#if !FF_FS_READONLY +static FRESULT sync_window ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs /* Filesystem object */ +) +{ + FRESULT res = FR_OK; + + + if (fs->wflag) { /* Is the disk access window dirty? */ + if (disk_write(fs->pdrv, fs->win, fs->winsect, 1) == RES_OK) { /* Write it back into the volume */ + fs->wflag = 0; /* Clear window dirty flag */ + if (fs->winsect - fs->fatbase < fs->fsize) { /* Is it in the 1st FAT? */ + if (fs->n_fats == 2) disk_write(fs->pdrv, fs->win, fs->winsect + fs->fsize, 1); /* Reflect it to 2nd FAT if needed */ + } + } else { + res = FR_DISK_ERR; + } + } + return res; +} +#endif + + +static FRESULT move_window ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs, /* Filesystem object */ + LBA_t sect /* Sector LBA to make appearance in the fs->win[] */ +) +{ + FRESULT res = FR_OK; + + + if (sect != fs->winsect) { /* Window offset changed? */ +#if !FF_FS_READONLY + res = sync_window(fs); /* Flush the window */ +#endif + if (res == FR_OK) { /* Fill sector window with new data */ + if (disk_read(fs->pdrv, fs->win, sect, 1) != RES_OK) { + sect = (LBA_t)0 - 1; /* Invalidate window if read data is not valid */ + res = FR_DISK_ERR; + } + fs->winsect = sect; + } + } + return res; +} + + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Synchronize filesystem and data on the storage */ +/*-----------------------------------------------------------------------*/ + +static FRESULT sync_fs ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS* fs /* Filesystem object */ +) +{ + FRESULT res; + + + res = sync_window(fs); + if (res == FR_OK) { + if (fs->fs_type == FS_FAT32 && fs->fsi_flag == 1) { /* FAT32: Update FSInfo sector if needed */ + /* Create FSInfo structure */ + memset(fs->win, 0, sizeof fs->win); + st_word(fs->win + BS_55AA, 0xAA55); /* Boot signature */ + st_dword(fs->win + FSI_LeadSig, 0x41615252); /* Leading signature */ + st_dword(fs->win + FSI_StrucSig, 0x61417272); /* Structure signature */ + st_dword(fs->win + FSI_Free_Count, fs->free_clst); /* Number of free clusters */ + st_dword(fs->win + FSI_Nxt_Free, fs->last_clst); /* Last allocated culuster */ + fs->winsect = fs->volbase + 1; /* Write it into the FSInfo sector (Next to VBR) */ + disk_write(fs->pdrv, fs->win, fs->winsect, 1); + fs->fsi_flag = 0; + } + /* Make sure that no pending write process in the lower layer */ + if (disk_ioctl(fs->pdrv, CTRL_SYNC, 0) != RES_OK) res = FR_DISK_ERR; + } + + return res; +} + +#endif + + + +/*-----------------------------------------------------------------------*/ +/* Get physical sector number from cluster number */ +/*-----------------------------------------------------------------------*/ + +static LBA_t clst2sect ( /* !=0:Sector number, 0:Failed (invalid cluster#) */ + FATFS* fs, /* Filesystem object */ + DWORD clst /* Cluster# to be converted */ +) +{ + clst -= 2; /* Cluster number is origin from 2 */ + if (clst >= fs->n_fatent - 2) return 0; /* Is it invalid cluster number? */ + return fs->database + (LBA_t)fs->csize * clst; /* Start sector number of the cluster */ +} + + + + +/*-----------------------------------------------------------------------*/ +/* FAT access - Read value of an FAT entry */ +/*-----------------------------------------------------------------------*/ + +static DWORD get_fat ( /* 0xFFFFFFFF:Disk error, 1:Internal error, 2..0x7FFFFFFF:Cluster status */ + FFOBJID* obj, /* Corresponding object */ + DWORD clst /* Cluster number to get the value */ +) +{ + UINT wc, bc; + DWORD val; + FATFS *fs = obj->fs; + + + if (clst < 2 || clst >= fs->n_fatent) { /* Check if in valid range */ + val = 1; /* Internal error */ + + } else { + val = 0xFFFFFFFF; /* Default value falls on disk error */ + + switch (fs->fs_type) { + case FS_FAT12 : + bc = (UINT)clst; bc += bc / 2; + if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; + wc = fs->win[bc++ % SS(fs)]; /* Get 1st byte of the entry */ + if (move_window(fs, fs->fatbase + (bc / SS(fs))) != FR_OK) break; + wc |= fs->win[bc % SS(fs)] << 8; /* Merge 2nd byte of the entry */ + val = (clst & 1) ? (wc >> 4) : (wc & 0xFFF); /* Adjust bit position */ + break; + + case FS_FAT16 : + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))) != FR_OK) break; + val = ld_word(fs->win + clst * 2 % SS(fs)); /* Simple WORD array */ + break; + + case FS_FAT32 : + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x0FFFFFFF; /* Simple DWORD array but mask out upper 4 bits */ + break; +#if FF_FS_EXFAT + case FS_EXFAT : + if ((obj->objsize != 0 && obj->sclust != 0) || obj->stat == 0) { /* Object except root dir must have valid data length */ + DWORD cofs = clst - obj->sclust; /* Offset from start cluster */ + DWORD clen = (DWORD)((LBA_t)((obj->objsize - 1) / SS(fs)) / fs->csize); /* Number of clusters - 1 */ + + if (obj->stat == 2 && cofs <= clen) { /* Is it a contiguous chain? */ + val = (cofs == clen) ? 0x7FFFFFFF : clst + 1; /* No data on the FAT, generate the value */ + break; + } + if (obj->stat == 3 && cofs < obj->n_cont) { /* Is it in the 1st fragment? */ + val = clst + 1; /* Generate the value */ + break; + } + if (obj->stat != 2) { /* Get value from FAT if FAT chain is valid */ + if (obj->n_frag != 0) { /* Is it on the growing edge? */ + val = 0x7FFFFFFF; /* Generate EOC */ + } else { + if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))) != FR_OK) break; + val = ld_dword(fs->win + clst * 4 % SS(fs)) & 0x7FFFFFFF; + } + break; + } + } + val = 1; /* Internal error */ + break; +#endif + default: + val = 1; /* Internal error */ + } + } + + return val; +} + + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT access - Change value of an FAT entry */ +/*-----------------------------------------------------------------------*/ + +static FRESULT put_fat ( /* FR_OK(0):succeeded, !=0:error */ + FATFS* fs, /* Corresponding filesystem object */ + DWORD clst, /* FAT index number (cluster number) to be changed */ + DWORD val /* New value to be set to the entry */ +) +{ + UINT bc; + BYTE *p; + FRESULT res = FR_INT_ERR; + + + if (clst >= 2 && clst < fs->n_fatent) { /* Check if in valid range */ + switch (fs->fs_type) { + case FS_FAT12: + bc = (UINT)clst; bc += bc / 2; /* bc: byte offset of the entry */ + res = move_window(fs, fs->fatbase + (bc / SS(fs))); + if (res != FR_OK) break; + p = fs->win + bc++ % SS(fs); + *p = (clst & 1) ? ((*p & 0x0F) | ((BYTE)val << 4)) : (BYTE)val; /* Update 1st byte */ + fs->wflag = 1; + res = move_window(fs, fs->fatbase + (bc / SS(fs))); + if (res != FR_OK) break; + p = fs->win + bc % SS(fs); + *p = (clst & 1) ? (BYTE)(val >> 4) : ((*p & 0xF0) | ((BYTE)(val >> 8) & 0x0F)); /* Update 2nd byte */ + fs->wflag = 1; + break; + + case FS_FAT16: + res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 2))); + if (res != FR_OK) break; + st_word(fs->win + clst * 2 % SS(fs), (WORD)val); /* Simple WORD array */ + fs->wflag = 1; + break; + + case FS_FAT32: +#if FF_FS_EXFAT + case FS_EXFAT: +#endif + res = move_window(fs, fs->fatbase + (clst / (SS(fs) / 4))); + if (res != FR_OK) break; + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { + val = (val & 0x0FFFFFFF) | (ld_dword(fs->win + clst * 4 % SS(fs)) & 0xF0000000); + } + st_dword(fs->win + clst * 4 % SS(fs), val); + fs->wflag = 1; + break; + } + } + return res; +} + +#endif /* !FF_FS_READONLY */ + + + + +#if FF_FS_EXFAT && !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* exFAT: Accessing FAT and Allocation Bitmap */ +/*-----------------------------------------------------------------------*/ + +/*--------------------------------------*/ +/* Find a contiguous free cluster block */ +/*--------------------------------------*/ + +static DWORD find_bitmap ( /* 0:Not found, 2..:Cluster block found, 0xFFFFFFFF:Disk error */ + FATFS* fs, /* Filesystem object */ + DWORD clst, /* Cluster number to scan from */ + DWORD ncl /* Number of contiguous clusters to find (1..) */ +) +{ + BYTE bm, bv; + UINT i; + DWORD val, scl, ctr; + + + clst -= 2; /* The first bit in the bitmap corresponds to cluster #2 */ + if (clst >= fs->n_fatent - 2) clst = 0; + scl = val = clst; ctr = 0; + for (;;) { + if (move_window(fs, fs->bitbase + val / 8 / SS(fs)) != FR_OK) return 0xFFFFFFFF; + i = val / 8 % SS(fs); bm = 1 << (val % 8); + do { + do { + bv = fs->win[i] & bm; bm <<= 1; /* Get bit value */ + if (++val >= fs->n_fatent - 2) { /* Next cluster (with wrap-around) */ + val = 0; bm = 0; i = SS(fs); + } + if (bv == 0) { /* Is it a free cluster? */ + if (++ctr == ncl) return scl + 2; /* Check if run length is sufficient for required */ + } else { + scl = val; ctr = 0; /* Encountered a cluster in-use, restart to scan */ + } + if (val == clst) return 0; /* All cluster scanned? */ + } while (bm != 0); + bm = 1; + } while (++i < SS(fs)); + } +} + + +/*----------------------------------------*/ +/* Set/Clear a block of allocation bitmap */ +/*----------------------------------------*/ + +static FRESULT change_bitmap ( + FATFS* fs, /* Filesystem object */ + DWORD clst, /* Cluster number to change from */ + DWORD ncl, /* Number of clusters to be changed */ + int bv /* bit value to be set (0 or 1) */ +) +{ + BYTE bm; + UINT i; + LBA_t sect; + + + clst -= 2; /* The first bit corresponds to cluster #2 */ + sect = fs->bitbase + clst / 8 / SS(fs); /* Sector address */ + i = clst / 8 % SS(fs); /* Byte offset in the sector */ + bm = 1 << (clst % 8); /* Bit mask in the byte */ + for (;;) { + if (move_window(fs, sect++) != FR_OK) return FR_DISK_ERR; + do { + do { + if (bv == (int)((fs->win[i] & bm) != 0)) return FR_INT_ERR; /* Is the bit expected value? */ + fs->win[i] ^= bm; /* Flip the bit */ + fs->wflag = 1; + if (--ncl == 0) return FR_OK; /* All bits processed? */ + } while (bm <<= 1); /* Next bit */ + bm = 1; + } while (++i < SS(fs)); /* Next byte */ + i = 0; + } +} + + +/*---------------------------------------------*/ +/* Fill the first fragment of the FAT chain */ +/*---------------------------------------------*/ + +static FRESULT fill_first_frag ( + FFOBJID* obj /* Pointer to the corresponding object */ +) +{ + FRESULT res; + DWORD cl, n; + + + if (obj->stat == 3) { /* Has the object been changed 'fragmented' in this session? */ + for (cl = obj->sclust, n = obj->n_cont; n; cl++, n--) { /* Create cluster chain on the FAT */ + res = put_fat(obj->fs, cl, cl + 1); + if (res != FR_OK) return res; + } + obj->stat = 0; /* Change status 'FAT chain is valid' */ + } + return FR_OK; +} + + +/*---------------------------------------------*/ +/* Fill the last fragment of the FAT chain */ +/*---------------------------------------------*/ + +static FRESULT fill_last_frag ( + FFOBJID* obj, /* Pointer to the corresponding object */ + DWORD lcl, /* Last cluster of the fragment */ + DWORD term /* Value to set the last FAT entry */ +) +{ + FRESULT res; + + + while (obj->n_frag > 0) { /* Create the chain of last fragment */ + res = put_fat(obj->fs, lcl - obj->n_frag + 1, (obj->n_frag > 1) ? lcl - obj->n_frag + 2 : term); + if (res != FR_OK) return res; + obj->n_frag--; + } + return FR_OK; +} + +#endif /* FF_FS_EXFAT && !FF_FS_READONLY */ + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT handling - Remove a cluster chain */ +/*-----------------------------------------------------------------------*/ + +static FRESULT remove_chain ( /* FR_OK(0):succeeded, !=0:error */ + FFOBJID* obj, /* Corresponding object */ + DWORD clst, /* Cluster to remove a chain from */ + DWORD pclst /* Previous cluster of clst (0 if entire chain) */ +) +{ + FRESULT res = FR_OK; + DWORD nxt; + FATFS *fs = obj->fs; +#if FF_FS_EXFAT || FF_USE_TRIM + DWORD scl = clst, ecl = clst; +#endif +#if FF_USE_TRIM + LBA_t rt[2]; +#endif + + if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Check if in valid range */ + + /* Mark the previous cluster 'EOC' on the FAT if it exists */ + if (pclst != 0 && (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT || obj->stat != 2)) { + res = put_fat(fs, pclst, 0xFFFFFFFF); + if (res != FR_OK) return res; + } + + /* Remove the chain */ + do { + nxt = get_fat(obj, clst); /* Get cluster status */ + if (nxt == 0) break; /* Empty cluster? */ + if (nxt == 1) return FR_INT_ERR; /* Internal error? */ + if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error? */ + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { + res = put_fat(fs, clst, 0); /* Mark the cluster 'free' on the FAT */ + if (res != FR_OK) return res; + } + if (fs->free_clst < fs->n_fatent - 2) { /* Update FSINFO */ + fs->free_clst++; + fs->fsi_flag |= 1; + } +#if FF_FS_EXFAT || FF_USE_TRIM + if (ecl + 1 == nxt) { /* Is next cluster contiguous? */ + ecl = nxt; + } else { /* End of contiguous cluster block */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + res = change_bitmap(fs, scl, ecl - scl + 1, 0); /* Mark the cluster block 'free' on the bitmap */ + if (res != FR_OK) return res; + } +#endif +#if FF_USE_TRIM + rt[0] = clst2sect(fs, scl); /* Start of data area to be freed */ + rt[1] = clst2sect(fs, ecl) + fs->csize - 1; /* End of data area to be freed */ + disk_ioctl(fs->pdrv, CTRL_TRIM, rt); /* Inform storage device that the data in the block may be erased */ +#endif + scl = ecl = nxt; + } +#endif + clst = nxt; /* Next cluster */ + } while (clst < fs->n_fatent); /* Repeat while not the last link */ + +#if FF_FS_EXFAT + /* Some post processes for chain status */ + if (fs->fs_type == FS_EXFAT) { + if (pclst == 0) { /* Has the entire chain been removed? */ + obj->stat = 0; /* Change the chain status 'initial' */ + } else { + if (obj->stat == 0) { /* Is it a fragmented chain from the beginning of this session? */ + clst = obj->sclust; /* Follow the chain to check if it gets contiguous */ + while (clst != pclst) { + nxt = get_fat(obj, clst); + if (nxt < 2) return FR_INT_ERR; + if (nxt == 0xFFFFFFFF) return FR_DISK_ERR; + if (nxt != clst + 1) break; /* Not contiguous? */ + clst++; + } + if (clst == pclst) { /* Has the chain got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } + } else { + if (obj->stat == 3 && pclst >= obj->sclust && pclst <= obj->sclust + obj->n_cont) { /* Was the chain fragmented in this session and got contiguous again? */ + obj->stat = 2; /* Change the chain status 'contiguous' */ + } + } + } + } +#endif + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* FAT handling - Stretch a chain or Create a new chain */ +/*-----------------------------------------------------------------------*/ + +static DWORD create_chain ( /* 0:No free cluster, 1:Internal error, 0xFFFFFFFF:Disk error, >=2:New cluster# */ + FFOBJID* obj, /* Corresponding object */ + DWORD clst /* Cluster# to stretch, 0:Create a new chain */ +) +{ + DWORD cs, ncl, scl; + FRESULT res; + FATFS *fs = obj->fs; + + + if (clst == 0) { /* Create a new chain */ + scl = fs->last_clst; /* Suggested cluster to start to find */ + if (scl == 0 || scl >= fs->n_fatent) scl = 1; + } + else { /* Stretch a chain */ + cs = get_fat(obj, clst); /* Check the cluster status */ + if (cs < 2) return 1; /* Test for insanity */ + if (cs == 0xFFFFFFFF) return cs; /* Test for disk error */ + if (cs < fs->n_fatent) return cs; /* It is already followed by next cluster */ + scl = clst; /* Cluster to start to find */ + } + if (fs->free_clst == 0) return 0; /* No free cluster */ + +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + ncl = find_bitmap(fs, scl, 1); /* Find a free cluster */ + if (ncl == 0 || ncl == 0xFFFFFFFF) return ncl; /* No free cluster or hard error? */ + res = change_bitmap(fs, ncl, 1, 1); /* Mark the cluster 'in use' */ + if (res == FR_INT_ERR) return 1; + if (res == FR_DISK_ERR) return 0xFFFFFFFF; + if (clst == 0) { /* Is it a new chain? */ + obj->stat = 2; /* Set status 'contiguous' */ + } else { /* It is a stretched chain */ + if (obj->stat == 2 && ncl != scl + 1) { /* Is the chain got fragmented? */ + obj->n_cont = scl - obj->sclust; /* Set size of the contiguous part */ + obj->stat = 3; /* Change status 'just fragmented' */ + } + } + if (obj->stat != 2) { /* Is the file non-contiguous? */ + if (ncl == clst + 1) { /* Is the cluster next to previous one? */ + obj->n_frag = obj->n_frag ? obj->n_frag + 1 : 2; /* Increment size of last framgent */ + } else { /* New fragment */ + if (obj->n_frag == 0) obj->n_frag = 1; + res = fill_last_frag(obj, clst, ncl); /* Fill last fragment on the FAT and link it to new one */ + if (res == FR_OK) obj->n_frag = 1; + } + } + } else +#endif + { /* On the FAT/FAT32 volume */ + ncl = 0; + if (scl == clst) { /* Stretching an existing chain? */ + ncl = scl + 1; /* Test if next cluster is free */ + if (ncl >= fs->n_fatent) ncl = 2; + cs = get_fat(obj, ncl); /* Get next cluster status */ + if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* Test for error */ + if (cs != 0) { /* Not free? */ + cs = fs->last_clst; /* Start at suggested cluster if it is valid */ + if (cs >= 2 && cs < fs->n_fatent) scl = cs; + ncl = 0; + } + } + if (ncl == 0) { /* The new cluster cannot be contiguous and find another fragment */ + ncl = scl; /* Start cluster */ + for (;;) { + ncl++; /* Next cluster */ + if (ncl >= fs->n_fatent) { /* Check wrap-around */ + ncl = 2; + if (ncl > scl) return 0; /* No free cluster found? */ + } + cs = get_fat(obj, ncl); /* Get the cluster status */ + if (cs == 0) break; /* Found a free cluster? */ + if (cs == 1 || cs == 0xFFFFFFFF) return cs; /* Test for error */ + if (ncl == scl) return 0; /* No free cluster found? */ + } + } + res = put_fat(fs, ncl, 0xFFFFFFFF); /* Mark the new cluster 'EOC' */ + if (res == FR_OK && clst != 0) { + res = put_fat(fs, clst, ncl); /* Link it from the previous one if needed */ + } + } + + if (res == FR_OK) { /* Update FSINFO if function succeeded. */ + fs->last_clst = ncl; + if (fs->free_clst <= fs->n_fatent - 2) fs->free_clst--; + fs->fsi_flag |= 1; + } else { + ncl = (res == FR_DISK_ERR) ? 0xFFFFFFFF : 1; /* Failed. Generate error status */ + } + + return ncl; /* Return new cluster number or error status */ +} + +#endif /* !FF_FS_READONLY */ + + + + +#if FF_USE_FASTSEEK +/*-----------------------------------------------------------------------*/ +/* FAT handling - Convert offset into cluster with link map table */ +/*-----------------------------------------------------------------------*/ + +static DWORD clmt_clust ( /* <2:Error, >=2:Cluster number */ + FIL* fp, /* Pointer to the file object */ + FSIZE_t ofs /* File offset to be converted to cluster# */ +) +{ + DWORD cl, ncl, *tbl; + FATFS *fs = fp->obj.fs; + + + tbl = fp->cltbl + 1; /* Top of CLMT */ + cl = (DWORD)(ofs / SS(fs) / fs->csize); /* Cluster order from top of the file */ + for (;;) { + ncl = *tbl++; /* Number of cluters in the fragment */ + if (ncl == 0) return 0; /* End of table? (error) */ + if (cl < ncl) break; /* In this fragment? */ + cl -= ncl; tbl++; /* Next fragment */ + } + return cl + *tbl; /* Return the cluster number */ +} + +#endif /* FF_USE_FASTSEEK */ + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Fill a cluster with zeros */ +/*-----------------------------------------------------------------------*/ + +#if !FF_FS_READONLY +static FRESULT dir_clear ( /* Returns FR_OK or FR_DISK_ERR */ + FATFS *fs, /* Filesystem object */ + DWORD clst /* Directory table to clear */ +) +{ + LBA_t sect; + UINT n, szb; + BYTE *ibuf; + + + if (sync_window(fs) != FR_OK) return FR_DISK_ERR; /* Flush disk access window */ + sect = clst2sect(fs, clst); /* Top of the cluster */ + fs->winsect = sect; /* Set window to top of the cluster */ + memset(fs->win, 0, sizeof fs->win); /* Clear window buffer */ +#if FF_USE_LFN == 3 /* Quick table clear by using multi-secter write */ + /* Allocate a temporary buffer */ + for (szb = ((DWORD)fs->csize * SS(fs) >= MAX_MALLOC) ? MAX_MALLOC : fs->csize * SS(fs), ibuf = 0; szb > SS(fs) && (ibuf = ff_memalloc(szb)) == 0; szb /= 2) ; + if (szb > SS(fs)) { /* Buffer allocated? */ + memset(ibuf, 0, szb); + szb /= SS(fs); /* Bytes -> Sectors */ + for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ; /* Fill the cluster with 0 */ + ff_memfree(ibuf); + } else +#endif + { + ibuf = fs->win; szb = 1; /* Use window buffer (many single-sector writes may take a time) */ + for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ; /* Fill the cluster with 0 */ + } + return (n == fs->csize) ? FR_OK : FR_DISK_ERR; +} +#endif /* !FF_FS_READONLY */ + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Set directory index */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_sdi ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp, /* Pointer to directory object */ + DWORD ofs /* Offset of directory table */ +) +{ + DWORD csz, clst; + FATFS *fs = dp->obj.fs; + + + if (ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR) || ofs % SZDIRE) { /* Check range of offset and alignment */ + return FR_INT_ERR; + } + dp->dptr = ofs; /* Set current offset */ + clst = dp->obj.sclust; /* Table start cluster (0:root) */ + if (clst == 0 && fs->fs_type >= FS_FAT32) { /* Replace cluster# 0 with root cluster# */ + clst = (DWORD)fs->dirbase; + if (FF_FS_EXFAT) dp->obj.stat = 0; /* exFAT: Root dir has an FAT chain */ + } + + if (clst == 0) { /* Static table (root-directory on the FAT volume) */ + if (ofs / SZDIRE >= fs->n_rootdir) return FR_INT_ERR; /* Is index out of range? */ + dp->sect = fs->dirbase; + + } else { /* Dynamic table (sub-directory or root-directory on the FAT32/exFAT volume) */ + csz = (DWORD)fs->csize * SS(fs); /* Bytes per cluster */ + while (ofs >= csz) { /* Follow cluster chain */ + clst = get_fat(&dp->obj, clst); /* Get next cluster */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (clst < 2 || clst >= fs->n_fatent) return FR_INT_ERR; /* Reached to end of table or internal error */ + ofs -= csz; + } + dp->sect = clst2sect(fs, clst); + } + dp->clust = clst; /* Current cluster# */ + if (dp->sect == 0) return FR_INT_ERR; + dp->sect += ofs / SS(fs); /* Sector# of the directory entry */ + dp->dir = fs->win + (ofs % SS(fs)); /* Pointer to the entry in the win[] */ + + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Move directory table index next */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_next ( /* FR_OK(0):succeeded, FR_NO_FILE:End of table, FR_DENIED:Could not stretch */ + DIR* dp, /* Pointer to the directory object */ + int stretch /* 0: Do not stretch table, 1: Stretch table if needed */ +) +{ + DWORD ofs, clst; + FATFS *fs = dp->obj.fs; + + + ofs = dp->dptr + SZDIRE; /* Next entry */ + if (ofs >= (DWORD)((FF_FS_EXFAT && fs->fs_type == FS_EXFAT) ? MAX_DIR_EX : MAX_DIR)) dp->sect = 0; /* Disable it if the offset reached the max value */ + if (dp->sect == 0) return FR_NO_FILE; /* Report EOT if it has been disabled */ + + if (ofs % SS(fs) == 0) { /* Sector changed? */ + dp->sect++; /* Next sector */ + + if (dp->clust == 0) { /* Static table */ + if (ofs / SZDIRE >= fs->n_rootdir) { /* Report EOT if it reached end of static table */ + dp->sect = 0; return FR_NO_FILE; + } + } + else { /* Dynamic table */ + if ((ofs / SS(fs) & (fs->csize - 1)) == 0) { /* Cluster changed? */ + clst = get_fat(&dp->obj, dp->clust); /* Get next cluster */ + if (clst <= 1) return FR_INT_ERR; /* Internal error */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (clst >= fs->n_fatent) { /* It reached end of dynamic table */ +#if !FF_FS_READONLY + if (!stretch) { /* If no stretch, report EOT */ + dp->sect = 0; return FR_NO_FILE; + } + clst = create_chain(&dp->obj, dp->clust); /* Allocate a cluster */ + if (clst == 0) return FR_DENIED; /* No free cluster */ + if (clst == 1) return FR_INT_ERR; /* Internal error */ + if (clst == 0xFFFFFFFF) return FR_DISK_ERR; /* Disk error */ + if (dir_clear(fs, clst) != FR_OK) return FR_DISK_ERR; /* Clean up the stretched table */ + if (FF_FS_EXFAT) dp->obj.stat |= 4; /* exFAT: The directory has been stretched */ +#else + if (!stretch) dp->sect = 0; /* (this line is to suppress compiler warning) */ + dp->sect = 0; return FR_NO_FILE; /* Report EOT */ +#endif + } + dp->clust = clst; /* Initialize data for new cluster */ + dp->sect = clst2sect(fs, clst); + } + } + } + dp->dptr = ofs; /* Current entry */ + dp->dir = fs->win + ofs % SS(fs); /* Pointer to the entry in the win[] */ + + return FR_OK; +} + + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Directory handling - Reserve a block of directory entries */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_alloc ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp, /* Pointer to the directory object */ + UINT n_ent /* Number of contiguous entries to allocate */ +) +{ + FRESULT res; + UINT n; + FATFS *fs = dp->obj.fs; + + + res = dir_sdi(dp, 0); + if (res == FR_OK) { + n = 0; + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; +#if FF_FS_EXFAT + if ((fs->fs_type == FS_EXFAT) ? (int)((dp->dir[XDIR_Type] & 0x80) == 0) : (int)(dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0)) { /* Is the entry free? */ +#else + if (dp->dir[DIR_Name] == DDEM || dp->dir[DIR_Name] == 0) { /* Is the entry free? */ +#endif + if (++n == n_ent) break; /* Is a block of contiguous free entries found? */ + } else { + n = 0; /* Not a free entry, restart to search */ + } + res = dir_next(dp, 1); /* Next entry with table stretch enabled */ + } while (res == FR_OK); + } + + if (res == FR_NO_FILE) res = FR_DENIED; /* No directory entry to allocate */ + return res; +} + +#endif /* !FF_FS_READONLY */ + + + + +/*-----------------------------------------------------------------------*/ +/* FAT: Directory handling - Load/Store start cluster number */ +/*-----------------------------------------------------------------------*/ + +static DWORD ld_clust ( /* Returns the top cluster value of the SFN entry */ + FATFS* fs, /* Pointer to the fs object */ + const BYTE* dir /* Pointer to the key entry */ +) +{ + DWORD cl; + + cl = ld_word(dir + DIR_FstClusLO); + if (fs->fs_type == FS_FAT32) { + cl |= (DWORD)ld_word(dir + DIR_FstClusHI) << 16; + } + + return cl; +} + + +#if !FF_FS_READONLY +static void st_clust ( + FATFS* fs, /* Pointer to the fs object */ + BYTE* dir, /* Pointer to the key entry */ + DWORD cl /* Value to be set */ +) +{ + st_word(dir + DIR_FstClusLO, (WORD)cl); + if (fs->fs_type == FS_FAT32) { + st_word(dir + DIR_FstClusHI, (WORD)(cl >> 16)); + } +} +#endif + + + +#if FF_USE_LFN +/*--------------------------------------------------------*/ +/* FAT-LFN: Compare a part of file name with an LFN entry */ +/*--------------------------------------------------------*/ + +static int cmp_lfn ( /* 1:matched, 0:not matched */ + const WCHAR* lfnbuf, /* Pointer to the LFN working buffer to be compared */ + BYTE* dir /* Pointer to the directory entry containing the part of LFN */ +) +{ + UINT i, s; + WCHAR wc, uc; + + + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO */ + + i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13; /* Offset in the LFN buffer */ + + for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ + uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ + if (wc != 0) { + if (i >= FF_MAX_LFN + 1 || ff_wtoupper(uc) != ff_wtoupper(lfnbuf[i++])) { /* Compare it */ + return 0; /* Not matched */ + } + wc = uc; + } else { + if (uc != 0xFFFF) return 0; /* Check filler */ + } + } + + if ((dir[LDIR_Ord] & LLEF) && wc && lfnbuf[i]) return 0; /* Last segment matched but different length */ + + return 1; /* The part of LFN matched */ +} + + +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 || FF_USE_LABEL || FF_FS_EXFAT +/*-----------------------------------------------------*/ +/* FAT-LFN: Pick a part of file name from an LFN entry */ +/*-----------------------------------------------------*/ + +static int pick_lfn ( /* 1:succeeded, 0:buffer overflow or invalid LFN entry */ + WCHAR* lfnbuf, /* Pointer to the LFN working buffer */ + BYTE* dir /* Pointer to the LFN entry */ +) +{ + UINT i, s; + WCHAR wc, uc; + + + if (ld_word(dir + LDIR_FstClusLO) != 0) return 0; /* Check LDIR_FstClusLO is 0 */ + + i = ((dir[LDIR_Ord] & ~LLEF) - 1) * 13; /* Offset in the LFN buffer */ + + for (wc = 1, s = 0; s < 13; s++) { /* Process all characters in the entry */ + uc = ld_word(dir + LfnOfs[s]); /* Pick an LFN character */ + if (wc != 0) { + if (i >= FF_MAX_LFN + 1) return 0; /* Buffer overflow? */ + lfnbuf[i++] = wc = uc; /* Store it */ + } else { + if (uc != 0xFFFF) return 0; /* Check filler */ + } + } + + if (dir[LDIR_Ord] & LLEF && wc != 0) { /* Put terminator if it is the last LFN part and not terminated */ + if (i >= FF_MAX_LFN + 1) return 0; /* Buffer overflow? */ + lfnbuf[i] = 0; + } + + return 1; /* The part of LFN is valid */ +} +#endif + + +#if !FF_FS_READONLY +/*-----------------------------------------*/ +/* FAT-LFN: Create an entry of LFN entries */ +/*-----------------------------------------*/ + +static void put_lfn ( + const WCHAR* lfn, /* Pointer to the LFN */ + BYTE* dir, /* Pointer to the LFN entry to be created */ + BYTE ord, /* LFN order (1-20) */ + BYTE sum /* Checksum of the corresponding SFN */ +) +{ + UINT i, s; + WCHAR wc; + + + dir[LDIR_Chksum] = sum; /* Set checksum */ + dir[LDIR_Attr] = AM_LFN; /* Set attribute. LFN entry */ + dir[LDIR_Type] = 0; + st_word(dir + LDIR_FstClusLO, 0); + + i = (ord - 1) * 13; /* Get offset in the LFN working buffer */ + s = wc = 0; + do { + if (wc != 0xFFFF) wc = lfn[i++]; /* Get an effective character */ + st_word(dir + LfnOfs[s], wc); /* Put it */ + if (wc == 0) wc = 0xFFFF; /* Padding characters for following items */ + } while (++s < 13); + if (wc == 0xFFFF || !lfn[i]) ord |= LLEF; /* Last LFN part is the start of LFN sequence */ + dir[LDIR_Ord] = ord; /* Set the LFN order */ +} + +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_LFN */ + + + +#if FF_USE_LFN && !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* FAT-LFN: Create a Numbered SFN */ +/*-----------------------------------------------------------------------*/ + +static void gen_numname ( + BYTE* dst, /* Pointer to the buffer to store numbered SFN */ + const BYTE* src, /* Pointer to SFN in directory form */ + const WCHAR* lfn, /* Pointer to LFN */ + UINT seq /* Sequence number */ +) +{ + BYTE ns[8], c; + UINT i, j; + WCHAR wc; + DWORD sreg; + + + memcpy(dst, src, 11); /* Prepare the SFN to be modified */ + + if (seq > 5) { /* In case of many collisions, generate a hash number instead of sequential number */ + sreg = seq; + while (*lfn) { /* Create a CRC as hash value */ + wc = *lfn++; + for (i = 0; i < 16; i++) { + sreg = (sreg << 1) + (wc & 1); + wc >>= 1; + if (sreg & 0x10000) sreg ^= 0x11021; + } + } + seq = (UINT)sreg; + } + + /* Make suffix (~ + hexdecimal) */ + i = 7; + do { + c = (BYTE)((seq % 16) + '0'); seq /= 16; + if (c > '9') c += 7; + ns[i--] = c; + } while (i && seq); + ns[i] = '~'; + + /* Append the suffix to the SFN body */ + for (j = 0; j < i && dst[j] != ' '; j++) { /* Find the offset to append */ + if (dbc_1st(dst[j])) { /* To avoid DBC break up */ + if (j == i - 1) break; + j++; + } + } + do { /* Append the suffix */ + dst[j++] = (i < 8) ? ns[i++] : ' '; + } while (j < 8); +} +#endif /* FF_USE_LFN && !FF_FS_READONLY */ + + + +#if FF_USE_LFN +/*-----------------------------------------------------------------------*/ +/* FAT-LFN: Calculate checksum of an SFN entry */ +/*-----------------------------------------------------------------------*/ + +static BYTE sum_sfn ( + const BYTE* dir /* Pointer to the SFN entry */ +) +{ + BYTE sum = 0; + UINT n = 11; + + do { + sum = (sum >> 1) + (sum << 7) + *dir++; + } while (--n); + return sum; +} + +#endif /* FF_USE_LFN */ + + + +#if FF_FS_EXFAT +/*-----------------------------------------------------------------------*/ +/* exFAT: Checksum */ +/*-----------------------------------------------------------------------*/ + +static WORD xdir_sum ( /* Get checksum of the directoly entry block */ + const BYTE* dir /* Directory entry block to be calculated */ +) +{ + UINT i, szblk; + WORD sum; + + + szblk = (dir[XDIR_NumSec] + 1) * SZDIRE; /* Number of bytes of the entry block */ + for (i = sum = 0; i < szblk; i++) { + if (i == XDIR_SetSum) { /* Skip 2-byte sum field */ + i++; + } else { + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + dir[i]; + } + } + return sum; +} + + + +static WORD xname_sum ( /* Get check sum (to be used as hash) of the file name */ + const WCHAR* name /* File name to be calculated */ +) +{ + WCHAR chr; + WORD sum = 0; + + + while ((chr = *name++) != 0) { + chr = (WCHAR)ff_wtoupper(chr); /* File name needs to be up-case converted */ + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr & 0xFF); + sum = ((sum & 1) ? 0x8000 : 0) + (sum >> 1) + (chr >> 8); + } + return sum; +} + + +#if !FF_FS_READONLY && FF_USE_MKFS +static DWORD xsum32 ( /* Returns 32-bit checksum */ + BYTE dat, /* Byte to be calculated (byte-by-byte processing) */ + DWORD sum /* Previous sum value */ +) +{ + sum = ((sum & 1) ? 0x80000000 : 0) + (sum >> 1) + dat; + return sum; +} +#endif + + + +/*-----------------------------------*/ +/* exFAT: Get a directry entry block */ +/*-----------------------------------*/ + +static FRESULT load_xdir ( /* FR_INT_ERR: invalid entry block */ + DIR* dp /* Reading direcotry object pointing top of the entry block to load */ +) +{ + FRESULT res; + UINT i, sz_ent; + BYTE *dirb = dp->obj.fs->dirbuf; /* Pointer to the on-memory direcotry entry block 85+C0+C1s */ + + + /* Load file directory entry */ + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != ET_FILEDIR) return FR_INT_ERR; /* Invalid order */ + memcpy(dirb + 0 * SZDIRE, dp->dir, SZDIRE); + sz_ent = (dirb[XDIR_NumSec] + 1) * SZDIRE; + if (sz_ent < 3 * SZDIRE || sz_ent > 19 * SZDIRE) return FR_INT_ERR; + + /* Load stream extension entry */ + res = dir_next(dp, 0); + if (res == FR_NO_FILE) res = FR_INT_ERR; /* It cannot be */ + if (res != FR_OK) return res; + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != ET_STREAM) return FR_INT_ERR; /* Invalid order */ + memcpy(dirb + 1 * SZDIRE, dp->dir, SZDIRE); + if (MAXDIRB(dirb[XDIR_NumName]) > sz_ent) return FR_INT_ERR; + + /* Load file name entries */ + i = 2 * SZDIRE; /* Name offset to load */ + do { + res = dir_next(dp, 0); + if (res == FR_NO_FILE) res = FR_INT_ERR; /* It cannot be */ + if (res != FR_OK) return res; + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) return res; + if (dp->dir[XDIR_Type] != ET_FILENAME) return FR_INT_ERR; /* Invalid order */ + if (i < MAXDIRB(FF_MAX_LFN)) memcpy(dirb + i, dp->dir, SZDIRE); + } while ((i += SZDIRE) < sz_ent); + + /* Sanity check (do it for only accessible object) */ + if (i <= MAXDIRB(FF_MAX_LFN)) { + if (xdir_sum(dirb) != ld_word(dirb + XDIR_SetSum)) return FR_INT_ERR; + } + return FR_OK; +} + + +/*------------------------------------------------------------------*/ +/* exFAT: Initialize object allocation info with loaded entry block */ +/*------------------------------------------------------------------*/ + +static void init_alloc_info ( + FATFS* fs, /* Filesystem object */ + FFOBJID* obj /* Object allocation information to be initialized */ +) +{ + obj->sclust = ld_dword(fs->dirbuf + XDIR_FstClus); /* Start cluster */ + obj->objsize = ld_qword(fs->dirbuf + XDIR_FileSize); /* Size */ + obj->stat = fs->dirbuf[XDIR_GenFlags] & 2; /* Allocation status */ + obj->n_frag = 0; /* No last fragment info */ +} + + + +#if !FF_FS_READONLY || FF_FS_RPATH != 0 +/*------------------------------------------------*/ +/* exFAT: Load the object's directory entry block */ +/*------------------------------------------------*/ + +static FRESULT load_obj_xdir ( + DIR* dp, /* Blank directory object to be used to access containing direcotry */ + const FFOBJID* obj /* Object with its containing directory information */ +) +{ + FRESULT res; + + /* Open object containing directory */ + dp->obj.fs = obj->fs; + dp->obj.sclust = obj->c_scl; + dp->obj.stat = (BYTE)obj->c_size; + dp->obj.objsize = obj->c_size & 0xFFFFFF00; + dp->obj.n_frag = 0; + dp->blk_ofs = obj->c_ofs; + + res = dir_sdi(dp, dp->blk_ofs); /* Goto object's entry block */ + if (res == FR_OK) { + res = load_xdir(dp); /* Load the object's entry block */ + } + return res; +} +#endif + + +#if !FF_FS_READONLY +/*----------------------------------------*/ +/* exFAT: Store the directory entry block */ +/*----------------------------------------*/ + +static FRESULT store_xdir ( + DIR* dp /* Pointer to the direcotry object */ +) +{ + FRESULT res; + UINT nent; + BYTE *dirb = dp->obj.fs->dirbuf; /* Pointer to the direcotry entry block 85+C0+C1s */ + + /* Create set sum */ + st_word(dirb + XDIR_SetSum, xdir_sum(dirb)); + nent = dirb[XDIR_NumSec] + 1; + + /* Store the direcotry entry block to the directory */ + res = dir_sdi(dp, dp->blk_ofs); + while (res == FR_OK) { + res = move_window(dp->obj.fs, dp->sect); + if (res != FR_OK) break; + memcpy(dp->dir, dirb, SZDIRE); + dp->obj.fs->wflag = 1; + if (--nent == 0) break; + dirb += SZDIRE; + res = dir_next(dp, 0); + } + return (res == FR_OK || res == FR_DISK_ERR) ? res : FR_INT_ERR; +} + + + +/*-------------------------------------------*/ +/* exFAT: Create a new directory enrty block */ +/*-------------------------------------------*/ + +static void create_xdir ( + BYTE* dirb, /* Pointer to the direcotry entry block buffer */ + const WCHAR* lfn /* Pointer to the object name */ +) +{ + UINT i; + BYTE nc1, nlen; + WCHAR wc; + + + /* Create file-directory and stream-extension entry */ + memset(dirb, 0, 2 * SZDIRE); + dirb[0 * SZDIRE + XDIR_Type] = ET_FILEDIR; + dirb[1 * SZDIRE + XDIR_Type] = ET_STREAM; + + /* Create file-name entries */ + i = SZDIRE * 2; /* Top of file_name entries */ + nlen = nc1 = 0; wc = 1; + do { + dirb[i++] = ET_FILENAME; dirb[i++] = 0; + do { /* Fill name field */ + if (wc != 0 && (wc = lfn[nlen]) != 0) nlen++; /* Get a character if exist */ + st_word(dirb + i, wc); /* Store it */ + i += 2; + } while (i % SZDIRE != 0); + nc1++; + } while (lfn[nlen]); /* Fill next entry if any char follows */ + + dirb[XDIR_NumName] = nlen; /* Set name length */ + dirb[XDIR_NumSec] = 1 + nc1; /* Set secondary count (C0 + C1s) */ + st_word(dirb + XDIR_NameHash, xname_sum(lfn)); /* Set name hash */ +} + +#endif /* !FF_FS_READONLY */ +#endif /* FF_FS_EXFAT */ + + + +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 || FF_USE_LABEL || FF_FS_EXFAT +/*-----------------------------------------------------------------------*/ +/* Read an object from the directory */ +/*-----------------------------------------------------------------------*/ + +#define DIR_READ_FILE(dp) dir_read(dp, 0) +#define DIR_READ_LABEL(dp) dir_read(dp, 1) + +static FRESULT dir_read ( + DIR* dp, /* Pointer to the directory object */ + int vol /* Filtered by 0:file/directory or 1:volume label */ +) +{ + FRESULT res = FR_NO_FILE; + FATFS *fs = dp->obj.fs; + BYTE attr, b; +#if FF_USE_LFN + BYTE ord = 0xFF, sum = 0xFF; +#endif + + while (dp->sect) { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + b = dp->dir[DIR_Name]; /* Test for the entry type */ + if (b == 0) { + res = FR_NO_FILE; break; /* Reached to end of the directory */ + } +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + if (FF_USE_LABEL && vol) { + if (b == ET_VLABEL) break; /* Volume label entry? */ + } else { + if (b == ET_FILEDIR) { /* Start of the file entry block? */ + dp->blk_ofs = dp->dptr; /* Get location of the block */ + res = load_xdir(dp); /* Load the entry block */ + if (res == FR_OK) { + dp->obj.attr = fs->dirbuf[XDIR_Attr] & AM_MASK; /* Get attribute */ + } + break; + } + } + } else +#endif + { /* On the FAT/FAT32 volume */ + dp->obj.attr = attr = dp->dir[DIR_Attr] & AM_MASK; /* Get attribute */ +#if FF_USE_LFN /* LFN configuration */ + if (b == DDEM || b == '.' || (int)((attr & ~AM_ARC) == AM_VOL) != vol) { /* An entry without valid data */ + ord = 0xFF; + } else { + if (attr == AM_LFN) { /* An LFN entry is found */ + if (b & LLEF) { /* Is it start of an LFN sequence? */ + sum = dp->dir[LDIR_Chksum]; + b &= (BYTE)~LLEF; ord = b; + dp->blk_ofs = dp->dptr; + } + /* Check LFN validity and capture it */ + ord = (b == ord && sum == dp->dir[LDIR_Chksum] && pick_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; + } else { /* An SFN entry is found */ + if (ord != 0 || sum != sum_sfn(dp->dir)) { /* Is there a valid LFN? */ + dp->blk_ofs = 0xFFFFFFFF; /* It has no LFN. */ + } + break; + } + } +#else /* Non LFN configuration */ + if (b != DDEM && b != '.' && attr != AM_LFN && (int)((attr & ~AM_ARC) == AM_VOL) == vol) { /* Is it a valid entry? */ + break; + } +#endif + } + res = dir_next(dp, 0); /* Next entry */ + if (res != FR_OK) break; + } + + if (res != FR_OK) dp->sect = 0; /* Terminate the read operation on error or EOT */ + return res; +} + +#endif /* FF_FS_MINIMIZE <= 1 || FF_USE_LABEL || FF_FS_RPATH >= 2 */ + + + +/*-----------------------------------------------------------------------*/ +/* Directory handling - Find an object in the directory */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_find ( /* FR_OK(0):succeeded, !=0:error */ + DIR* dp /* Pointer to the directory object with the file name */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; + BYTE c; +#if FF_USE_LFN + BYTE a, ord, sum; +#endif + + res = dir_sdi(dp, 0); /* Rewind directory object */ + if (res != FR_OK) return res; +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + BYTE nc; + UINT di, ni; + WORD hash = xname_sum(fs->lfnbuf); /* Hash value of the name to find */ + + while ((res = DIR_READ_FILE(dp)) == FR_OK) { /* Read an item */ +#if FF_MAX_LFN < 255 + if (fs->dirbuf[XDIR_NumName] > FF_MAX_LFN) continue; /* Skip comparison if inaccessible object name */ +#endif + if (ld_word(fs->dirbuf + XDIR_NameHash) != hash) continue; /* Skip comparison if hash mismatched */ + for (nc = fs->dirbuf[XDIR_NumName], di = SZDIRE * 2, ni = 0; nc; nc--, di += 2, ni++) { /* Compare the name */ + if ((di % SZDIRE) == 0) di += 2; + if (ff_wtoupper(ld_word(fs->dirbuf + di)) != ff_wtoupper(fs->lfnbuf[ni])) break; + } + if (nc == 0 && !fs->lfnbuf[ni]) break; /* Name matched? */ + } + return res; + } +#endif + /* On the FAT/FAT32 volume */ +#if FF_USE_LFN + ord = sum = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ +#endif + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + c = dp->dir[DIR_Name]; + if (c == 0) { res = FR_NO_FILE; break; } /* Reached to end of table */ +#if FF_USE_LFN /* LFN configuration */ + dp->obj.attr = a = dp->dir[DIR_Attr] & AM_MASK; + if (c == DDEM || ((a & AM_VOL) && a != AM_LFN)) { /* An entry without valid data */ + ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ + } else { + if (a == AM_LFN) { /* An LFN entry is found */ + if (!(dp->fn[NSFLAG] & NS_NOLFN)) { + if (c & LLEF) { /* Is it start of LFN sequence? */ + sum = dp->dir[LDIR_Chksum]; + c &= (BYTE)~LLEF; ord = c; /* LFN start order */ + dp->blk_ofs = dp->dptr; /* Start offset of LFN */ + } + /* Check validity of the LFN entry and compare it with given name */ + ord = (c == ord && sum == dp->dir[LDIR_Chksum] && cmp_lfn(fs->lfnbuf, dp->dir)) ? ord - 1 : 0xFF; + } + } else { /* An SFN entry is found */ + if (ord == 0 && sum == sum_sfn(dp->dir)) break; /* LFN matched? */ + if (!(dp->fn[NSFLAG] & NS_LOSS) && !memcmp(dp->dir, dp->fn, 11)) break; /* SFN matched? */ + ord = 0xFF; dp->blk_ofs = 0xFFFFFFFF; /* Reset LFN sequence */ + } + } +#else /* Non LFN configuration */ + dp->obj.attr = dp->dir[DIR_Attr] & AM_MASK; + if (!(dp->dir[DIR_Attr] & AM_VOL) && !memcmp(dp->dir, dp->fn, 11)) break; /* Is it a valid entry? */ +#endif + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK); + + return res; +} + + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Register an object to the directory */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_register ( /* FR_OK:succeeded, FR_DENIED:no free entry or too many SFN collision, FR_DISK_ERR:disk error */ + DIR* dp /* Target directory with object name to be created */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; +#if FF_USE_LFN /* LFN configuration */ + UINT n, len, n_ent; + BYTE sn[12], sum; + + + if (dp->fn[NSFLAG] & (NS_DOT | NS_NONAME)) return FR_INVALID_NAME; /* Check name validity */ + for (len = 0; fs->lfnbuf[len]; len++) ; /* Get lfn length */ + +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + n_ent = (len + 14) / 15 + 2; /* Number of entries to allocate (85+C0+C1s) */ + res = dir_alloc(dp, n_ent); /* Allocate directory entries */ + if (res != FR_OK) return res; + dp->blk_ofs = dp->dptr - SZDIRE * (n_ent - 1); /* Set the allocated entry block offset */ + + if (dp->obj.stat & 4) { /* Has the directory been stretched by new allocation? */ + dp->obj.stat &= ~4; + res = fill_first_frag(&dp->obj); /* Fill the first fragment on the FAT if needed */ + if (res != FR_OK) return res; + res = fill_last_frag(&dp->obj, dp->clust, 0xFFFFFFFF); /* Fill the last fragment on the FAT if needed */ + if (res != FR_OK) return res; + if (dp->obj.sclust != 0) { /* Is it a sub-directory? */ + DIR dj; + + res = load_obj_xdir(&dj, &dp->obj); /* Load the object status */ + if (res != FR_OK) return res; + dp->obj.objsize += (DWORD)fs->csize * SS(fs); /* Increase the directory size by cluster size */ + st_qword(fs->dirbuf + XDIR_FileSize, dp->obj.objsize); + st_qword(fs->dirbuf + XDIR_ValidFileSize, dp->obj.objsize); + fs->dirbuf[XDIR_GenFlags] = dp->obj.stat | 1; /* Update the allocation status */ + res = store_xdir(&dj); /* Store the object status */ + if (res != FR_OK) return res; + } + } + + create_xdir(fs->dirbuf, fs->lfnbuf); /* Create on-memory directory block to be written later */ + return FR_OK; + } +#endif + /* On the FAT/FAT32 volume */ + memcpy(sn, dp->fn, 12); + if (sn[NSFLAG] & NS_LOSS) { /* When LFN is out of 8.3 format, generate a numbered name */ + dp->fn[NSFLAG] = NS_NOLFN; /* Find only SFN */ + for (n = 1; n < 100; n++) { + gen_numname(dp->fn, sn, fs->lfnbuf, n); /* Generate a numbered name */ + res = dir_find(dp); /* Check if the name collides with existing SFN */ + if (res != FR_OK) break; + } + if (n == 100) return FR_DENIED; /* Abort if too many collisions */ + if (res != FR_NO_FILE) return res; /* Abort if the result is other than 'not collided' */ + dp->fn[NSFLAG] = sn[NSFLAG]; + } + + /* Create an SFN with/without LFNs. */ + n_ent = (sn[NSFLAG] & NS_LFN) ? (len + 12) / 13 + 1 : 1; /* Number of entries to allocate */ + res = dir_alloc(dp, n_ent); /* Allocate entries */ + if (res == FR_OK && --n_ent) { /* Set LFN entry if needed */ + res = dir_sdi(dp, dp->dptr - n_ent * SZDIRE); + if (res == FR_OK) { + sum = sum_sfn(dp->fn); /* Checksum value of the SFN tied to the LFN */ + do { /* Store LFN entries in bottom first */ + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + put_lfn(fs->lfnbuf, dp->dir, (BYTE)n_ent, sum); + fs->wflag = 1; + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK && --n_ent); + } + } + +#else /* Non LFN configuration */ + res = dir_alloc(dp, 1); /* Allocate an entry for SFN */ + +#endif + + /* Set SFN entry */ + if (res == FR_OK) { + res = move_window(fs, dp->sect); + if (res == FR_OK) { + memset(dp->dir, 0, SZDIRE); /* Clean the entry */ + memcpy(dp->dir + DIR_Name, dp->fn, 11); /* Put SFN */ +#if FF_USE_LFN + dp->dir[DIR_NTres] = dp->fn[NSFLAG] & (NS_BODY | NS_EXT); /* Put NT flag */ +#endif + fs->wflag = 1; + } + } + + return res; +} + +#endif /* !FF_FS_READONLY */ + + + +#if !FF_FS_READONLY && FF_FS_MINIMIZE == 0 +/*-----------------------------------------------------------------------*/ +/* Remove an object from the directory */ +/*-----------------------------------------------------------------------*/ + +static FRESULT dir_remove ( /* FR_OK:Succeeded, FR_DISK_ERR:A disk error */ + DIR* dp /* Directory object pointing the entry to be removed */ +) +{ + FRESULT res; + FATFS *fs = dp->obj.fs; +#if FF_USE_LFN /* LFN configuration */ + DWORD last = dp->dptr; + + res = (dp->blk_ofs == 0xFFFFFFFF) ? FR_OK : dir_sdi(dp, dp->blk_ofs); /* Goto top of the entry block if LFN is exist */ + if (res == FR_OK) { + do { + res = move_window(fs, dp->sect); + if (res != FR_OK) break; + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + dp->dir[XDIR_Type] &= 0x7F; /* Clear the entry InUse flag. */ + } else { /* On the FAT/FAT32 volume */ + dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'. */ + } + fs->wflag = 1; + if (dp->dptr >= last) break; /* If reached last entry then all entries of the object has been deleted. */ + res = dir_next(dp, 0); /* Next entry */ + } while (res == FR_OK); + if (res == FR_NO_FILE) res = FR_INT_ERR; + } +#else /* Non LFN configuration */ + + res = move_window(fs, dp->sect); + if (res == FR_OK) { + dp->dir[DIR_Name] = DDEM; /* Mark the entry 'deleted'.*/ + fs->wflag = 1; + } +#endif + + return res; +} + +#endif /* !FF_FS_READONLY && FF_FS_MINIMIZE == 0 */ + + + +#if FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 +/*-----------------------------------------------------------------------*/ +/* Get file information from directory entry */ +/*-----------------------------------------------------------------------*/ + +static void get_fileinfo ( + DIR* dp, /* Pointer to the directory object */ + FILINFO* fno /* Pointer to the file information to be filled */ +) +{ + UINT si, di; +#if FF_USE_LFN + BYTE lcf; + WCHAR wc, hs; + FATFS *fs = dp->obj.fs; + UINT nw; +#else + TCHAR c; +#endif + + + fno->fname[0] = 0; /* Invaidate file info */ + if (dp->sect == 0) return; /* Exit if read pointer has reached end of directory */ + +#if FF_USE_LFN /* LFN configuration */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* exFAT volume */ + UINT nc = 0; + + si = SZDIRE * 2; di = 0; /* 1st C1 entry in the entry block */ + hs = 0; + while (nc < fs->dirbuf[XDIR_NumName]) { + if (si >= MAXDIRB(FF_MAX_LFN)) { di = 0; break; } /* Truncated directory block? */ + if ((si % SZDIRE) == 0) si += 2; /* Skip entry type field */ + wc = ld_word(fs->dirbuf + si); si += 2; nc++; /* Get a character */ + if (hs == 0 && IsSurrogate(wc)) { /* Is it a surrogate? */ + hs = wc; continue; /* Get low surrogate */ + } + nw = put_utf((DWORD)hs << 16 | wc, &fno->fname[di], FF_LFN_BUF - di); /* Store it in API encoding */ + if (nw == 0) { di = 0; break; } /* Buffer overflow or wrong char? */ + di += nw; + hs = 0; + } + if (hs != 0) di = 0; /* Broken surrogate pair? */ + if (di == 0) fno->fname[di++] = '?'; /* Inaccessible object name? */ + fno->fname[di] = 0; /* Terminate the name */ + fno->altname[0] = 0; /* exFAT does not support SFN */ + + fno->fattrib = fs->dirbuf[XDIR_Attr] & AM_MASKX; /* Attribute */ + fno->fsize = (fno->fattrib & AM_DIR) ? 0 : ld_qword(fs->dirbuf + XDIR_FileSize); /* Size */ + fno->ftime = ld_word(fs->dirbuf + XDIR_ModTime + 0); /* Time */ + fno->fdate = ld_word(fs->dirbuf + XDIR_ModTime + 2); /* Date */ + return; + } else +#endif + { /* FAT/FAT32 volume */ + if (dp->blk_ofs != 0xFFFFFFFF) { /* Get LFN if available */ + si = di = 0; + hs = 0; + while (fs->lfnbuf[si] != 0) { + wc = fs->lfnbuf[si++]; /* Get an LFN character (UTF-16) */ + if (hs == 0 && IsSurrogate(wc)) { /* Is it a surrogate? */ + hs = wc; continue; /* Get low surrogate */ + } + nw = put_utf((DWORD)hs << 16 | wc, &fno->fname[di], FF_LFN_BUF - di); /* Store it in API encoding */ + if (nw == 0) { di = 0; break; } /* Buffer overflow or wrong char? */ + di += nw; + hs = 0; + } + if (hs != 0) di = 0; /* Broken surrogate pair? */ + fno->fname[di] = 0; /* Terminate the LFN (null string means LFN is invalid) */ + } + } + + si = di = 0; + while (si < 11) { /* Get SFN from SFN entry */ + wc = dp->dir[si++]; /* Get a char */ + if (wc == ' ') continue; /* Skip padding spaces */ + if (wc == RDDEM) wc = DDEM; /* Restore replaced DDEM character */ + if (si == 9 && di < FF_SFN_BUF) fno->altname[di++] = '.'; /* Insert a . if extension is exist */ +#if FF_LFN_UNICODE >= 1 /* Unicode output */ + if (dbc_1st((BYTE)wc) && si != 8 && si != 11 && dbc_2nd(dp->dir[si])) { /* Make a DBC if needed */ + wc = wc << 8 | dp->dir[si++]; + } + wc = ff_oem2uni(wc, CODEPAGE); /* ANSI/OEM -> Unicode */ + if (wc == 0) { di = 0; break; } /* Wrong char in the current code page? */ + nw = put_utf(wc, &fno->altname[di], FF_SFN_BUF - di); /* Store it in API encoding */ + if (nw == 0) { di = 0; break; } /* Buffer overflow? */ + di += nw; +#else /* ANSI/OEM output */ + fno->altname[di++] = (TCHAR)wc; /* Store it without any conversion */ +#endif + } + fno->altname[di] = 0; /* Terminate the SFN (null string means SFN is invalid) */ + + if (fno->fname[0] == 0) { /* If LFN is invalid, altname[] needs to be copied to fname[] */ + if (di == 0) { /* If LFN and SFN both are invalid, this object is inaccesible */ + fno->fname[di++] = '?'; + } else { + for (si = di = 0, lcf = NS_BODY; fno->altname[si]; si++, di++) { /* Copy altname[] to fname[] with case information */ + wc = (WCHAR)fno->altname[si]; + if (wc == '.') lcf = NS_EXT; + if (IsUpper(wc) && (dp->dir[DIR_NTres] & lcf)) wc += 0x20; + fno->fname[di] = (TCHAR)wc; + } + } + fno->fname[di] = 0; /* Terminate the LFN */ + if (!dp->dir[DIR_NTres]) fno->altname[0] = 0; /* Altname is not needed if neither LFN nor case info is exist. */ + } + +#else /* Non-LFN configuration */ + si = di = 0; + while (si < 11) { /* Copy name body and extension */ + c = (TCHAR)dp->dir[si++]; + if (c == ' ') continue; /* Skip padding spaces */ + if (c == RDDEM) c = DDEM; /* Restore replaced DDEM character */ + if (si == 9) fno->fname[di++] = '.';/* Insert a . if extension is exist */ + fno->fname[di++] = c; + } + fno->fname[di] = 0; /* Terminate the SFN */ +#endif + + fno->fattrib = dp->dir[DIR_Attr] & AM_MASK; /* Attribute */ + fno->fsize = ld_dword(dp->dir + DIR_FileSize); /* Size */ + fno->ftime = ld_word(dp->dir + DIR_ModTime + 0); /* Time */ + fno->fdate = ld_word(dp->dir + DIR_ModTime + 2); /* Date */ +} + +#endif /* FF_FS_MINIMIZE <= 1 || FF_FS_RPATH >= 2 */ + + + +#if FF_USE_FIND && FF_FS_MINIMIZE <= 1 +/*-----------------------------------------------------------------------*/ +/* Pattern matching */ +/*-----------------------------------------------------------------------*/ + +#define FIND_RECURS 4 /* Maximum number of wildcard terms in the pattern to limit recursion */ + + +static DWORD get_achar ( /* Get a character and advance ptr */ + const TCHAR** ptr /* Pointer to pointer to the ANSI/OEM or Unicode string */ +) +{ + DWORD chr; + + +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 /* Unicode input */ + chr = tchar2uni(ptr); + if (chr == 0xFFFFFFFF) chr = 0; /* Wrong UTF encoding is recognized as end of the string */ + chr = ff_wtoupper(chr); + +#else /* ANSI/OEM input */ + chr = (BYTE)*(*ptr)++; /* Get a byte */ + if (IsLower(chr)) chr -= 0x20; /* To upper ASCII char */ +#if FF_CODE_PAGE == 0 + if (ExCvt && chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */ +#elif FF_CODE_PAGE < 900 + if (chr >= 0x80) chr = ExCvt[chr - 0x80]; /* To upper SBCS extended char */ +#endif +#if FF_CODE_PAGE == 0 || FF_CODE_PAGE >= 900 + if (dbc_1st((BYTE)chr)) { /* Get DBC 2nd byte if needed */ + chr = dbc_2nd((BYTE)**ptr) ? chr << 8 | (BYTE)*(*ptr)++ : 0; + } +#endif + +#endif + return chr; +} + + +static int pattern_match ( /* 0:mismatched, 1:matched */ + const TCHAR* pat, /* Matching pattern */ + const TCHAR* nam, /* String to be tested */ + UINT skip, /* Number of pre-skip chars (number of ?s, b8:infinite (* specified)) */ + UINT recur /* Recursion count */ +) +{ + const TCHAR *pptr, *nptr; + DWORD pchr, nchr; + UINT sk; + + + while ((skip & 0xFF) != 0) { /* Pre-skip name chars */ + if (!get_achar(&nam)) return 0; /* Branch mismatched if less name chars */ + skip--; + } + if (*pat == 0 && skip) return 1; /* Matched? (short circuit) */ + + do { + pptr = pat; nptr = nam; /* Top of pattern and name to match */ + for (;;) { + if (*pptr == '?' || *pptr == '*') { /* Wildcard term? */ + if (recur == 0) return 0; /* Too many wildcard terms? */ + sk = 0; + do { /* Analyze the wildcard term */ + if (*pptr++ == '?') sk++; else sk |= 0x100; + } while (*pptr == '?' || *pptr == '*'); + if (pattern_match(pptr, nptr, sk, recur - 1)) return 1; /* Test new branch (recursive call) */ + nchr = *nptr; break; /* Branch mismatched */ + } + pchr = get_achar(&pptr); /* Get a pattern char */ + nchr = get_achar(&nptr); /* Get a name char */ + if (pchr != nchr) break; /* Branch mismatched? */ + if (pchr == 0) return 1; /* Branch matched? (matched at end of both strings) */ + } + get_achar(&nam); /* nam++ */ + } while (skip && nchr); /* Retry until end of name if infinite search is specified */ + + return 0; +} + +#endif /* FF_USE_FIND && FF_FS_MINIMIZE <= 1 */ + + + +/*-----------------------------------------------------------------------*/ +/* Pick a top segment and create the object name in directory form */ +/*-----------------------------------------------------------------------*/ + +static FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ + DIR* dp, /* Pointer to the directory object */ + const TCHAR** path /* Pointer to pointer to the segment in the path string */ +) +{ +#if FF_USE_LFN /* LFN configuration */ + BYTE b, cf; + WCHAR wc, *lfn; + DWORD uc; + UINT i, ni, si, di; + const TCHAR *p; + + + /* Create LFN into LFN working buffer */ + p = *path; lfn = dp->obj.fs->lfnbuf; di = 0; + for (;;) { + uc = tchar2uni(&p); /* Get a character */ + if (uc == 0xFFFFFFFF) return FR_INVALID_NAME; /* Invalid code or UTF decode error */ + if (uc >= 0x10000) lfn[di++] = (WCHAR)(uc >> 16); /* Store high surrogate if needed */ + wc = (WCHAR)uc; + if (wc < ' ' || IsSeparator(wc)) break; /* Break if end of the path or a separator is found */ + if (wc < 0x80 && strchr("*:<>|\"\?\x7F", (int)wc)) return FR_INVALID_NAME; /* Reject illegal characters for LFN */ + if (di >= FF_MAX_LFN) return FR_INVALID_NAME; /* Reject too long name */ + lfn[di++] = wc; /* Store the Unicode character */ + } + if (wc < ' ') { /* Stopped at end of the path? */ + cf = NS_LAST; /* Last segment */ + } else { /* Stopped at a separator */ + while (IsSeparator(*p)) p++; /* Skip duplicated separators if exist */ + cf = 0; /* Next segment may follow */ + if (IsTerminator(*p)) cf = NS_LAST; /* Ignore terminating separator */ + } + *path = p; /* Return pointer to the next segment */ + +#if FF_FS_RPATH != 0 + if ((di == 1 && lfn[di - 1] == '.') || + (di == 2 && lfn[di - 1] == '.' && lfn[di - 2] == '.')) { /* Is this segment a dot name? */ + lfn[di] = 0; + for (i = 0; i < 11; i++) { /* Create dot name for SFN entry */ + dp->fn[i] = (i < di) ? '.' : ' '; + } + dp->fn[i] = cf | NS_DOT; /* This is a dot entry */ + return FR_OK; + } +#endif + while (di) { /* Snip off trailing spaces and dots if exist */ + wc = lfn[di - 1]; + if (wc != ' ' && wc != '.') break; + di--; + } + lfn[di] = 0; /* LFN is created into the working buffer */ + if (di == 0) return FR_INVALID_NAME; /* Reject null name */ + + /* Create SFN in directory form */ + for (si = 0; lfn[si] == ' '; si++) ; /* Remove leading spaces */ + if (si > 0 || lfn[si] == '.') cf |= NS_LOSS | NS_LFN; /* Is there any leading space or dot? */ + while (di > 0 && lfn[di - 1] != '.') di--; /* Find last dot (di<=si: no extension) */ + + memset(dp->fn, ' ', 11); + i = b = 0; ni = 8; + for (;;) { + wc = lfn[si++]; /* Get an LFN character */ + if (wc == 0) break; /* Break on end of the LFN */ + if (wc == ' ' || (wc == '.' && si != di)) { /* Remove embedded spaces and dots */ + cf |= NS_LOSS | NS_LFN; + continue; + } + + if (i >= ni || si == di) { /* End of field? */ + if (ni == 11) { /* Name extension overflow? */ + cf |= NS_LOSS | NS_LFN; + break; + } + if (si != di) cf |= NS_LOSS | NS_LFN; /* Name body overflow? */ + if (si > di) break; /* No name extension? */ + si = di; i = 8; ni = 11; b <<= 2; /* Enter name extension */ + continue; + } + + if (wc >= 0x80) { /* Is this an extended character? */ + cf |= NS_LFN; /* LFN entry needs to be created */ +#if FF_CODE_PAGE == 0 + if (ExCvt) { /* In SBCS cfg */ + wc = ff_uni2oem(wc, CODEPAGE); /* Unicode ==> ANSI/OEM code */ + if (wc & 0x80) wc = ExCvt[wc & 0x7F]; /* Convert extended character to upper (SBCS) */ + } else { /* In DBCS cfg */ + wc = ff_uni2oem(ff_wtoupper(wc), CODEPAGE); /* Unicode ==> Up-convert ==> ANSI/OEM code */ + } +#elif FF_CODE_PAGE < 900 /* In SBCS cfg */ + wc = ff_uni2oem(wc, CODEPAGE); /* Unicode ==> ANSI/OEM code */ + if (wc & 0x80) wc = ExCvt[wc & 0x7F]; /* Convert extended character to upper (SBCS) */ +#else /* In DBCS cfg */ + wc = ff_uni2oem(ff_wtoupper(wc), CODEPAGE); /* Unicode ==> Up-convert ==> ANSI/OEM code */ +#endif + } + + if (wc >= 0x100) { /* Is this a DBC? */ + if (i >= ni - 1) { /* Field overflow? */ + cf |= NS_LOSS | NS_LFN; + i = ni; continue; /* Next field */ + } + dp->fn[i++] = (BYTE)(wc >> 8); /* Put 1st byte */ + } else { /* SBC */ + if (wc == 0 || strchr("+,;=[]", (int)wc)) { /* Replace illegal characters for SFN */ + wc = '_'; cf |= NS_LOSS | NS_LFN;/* Lossy conversion */ + } else { + if (IsUpper(wc)) { /* ASCII upper case? */ + b |= 2; + } + if (IsLower(wc)) { /* ASCII lower case? */ + b |= 1; wc -= 0x20; + } + } + } + dp->fn[i++] = (BYTE)wc; + } + + if (dp->fn[0] == DDEM) dp->fn[0] = RDDEM; /* If the first character collides with DDEM, replace it with RDDEM */ + + if (ni == 8) b <<= 2; /* Shift capital flags if no extension */ + if ((b & 0x0C) == 0x0C || (b & 0x03) == 0x03) cf |= NS_LFN; /* LFN entry needs to be created if composite capitals */ + if (!(cf & NS_LFN)) { /* When LFN is in 8.3 format without extended character, NT flags are created */ + if (b & 0x01) cf |= NS_EXT; /* NT flag (Extension has small capital letters only) */ + if (b & 0x04) cf |= NS_BODY; /* NT flag (Body has small capital letters only) */ + } + + dp->fn[NSFLAG] = cf; /* SFN is created into dp->fn[] */ + + return FR_OK; + + +#else /* FF_USE_LFN : Non-LFN configuration */ + BYTE c, d, *sfn; + UINT ni, si, i; + const char *p; + + /* Create file name in directory form */ + p = *path; sfn = dp->fn; + memset(sfn, ' ', 11); + si = i = 0; ni = 8; +#if FF_FS_RPATH != 0 + if (p[si] == '.') { /* Is this a dot entry? */ + for (;;) { + c = (BYTE)p[si++]; + if (c != '.' || si >= 3) break; + sfn[i++] = c; + } + if (!IsSeparator(c) && c > ' ') return FR_INVALID_NAME; + *path = p + si; /* Return pointer to the next segment */ + sfn[NSFLAG] = (c <= ' ') ? NS_LAST | NS_DOT : NS_DOT; /* Set last segment flag if end of the path */ + return FR_OK; + } +#endif + for (;;) { + c = (BYTE)p[si++]; /* Get a byte */ + if (c <= ' ') break; /* Break if end of the path name */ + if (IsSeparator(c)) { /* Break if a separator is found */ + while (IsSeparator(p[si])) si++; /* Skip duplicated separator if exist */ + break; + } + if (c == '.' || i >= ni) { /* End of body or field overflow? */ + if (ni == 11 || c != '.') return FR_INVALID_NAME; /* Field overflow or invalid dot? */ + i = 8; ni = 11; /* Enter file extension field */ + continue; + } +#if FF_CODE_PAGE == 0 + if (ExCvt && c >= 0x80) { /* Is SBC extended character? */ + c = ExCvt[c & 0x7F]; /* To upper SBC extended character */ + } +#elif FF_CODE_PAGE < 900 + if (c >= 0x80) { /* Is SBC extended character? */ + c = ExCvt[c & 0x7F]; /* To upper SBC extended character */ + } +#endif + if (dbc_1st(c)) { /* Check if it is a DBC 1st byte */ + d = (BYTE)p[si++]; /* Get 2nd byte */ + if (!dbc_2nd(d) || i >= ni - 1) return FR_INVALID_NAME; /* Reject invalid DBC */ + sfn[i++] = c; + sfn[i++] = d; + } else { /* SBC */ + if (strchr("*+,:;<=>[]|\"\?\x7F", (int)c)) return FR_INVALID_NAME; /* Reject illegal chrs for SFN */ + if (IsLower(c)) c -= 0x20; /* To upper */ + sfn[i++] = c; + } + } + *path = &p[si]; /* Return pointer to the next segment */ + if (i == 0) return FR_INVALID_NAME; /* Reject nul string */ + + if (sfn[0] == DDEM) sfn[0] = RDDEM; /* If the first character collides with DDEM, replace it with RDDEM */ + sfn[NSFLAG] = (c <= ' ' || p[si] <= ' ') ? NS_LAST : 0; /* Set last segment flag if end of the path */ + + return FR_OK; +#endif /* FF_USE_LFN */ +} + + + + +/*-----------------------------------------------------------------------*/ +/* Follow a file path */ +/*-----------------------------------------------------------------------*/ + +static FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ + DIR* dp, /* Directory object to return last directory and found object */ + const TCHAR* path /* Full-path string to find a file or directory */ +) +{ + FRESULT res; + BYTE ns; + FATFS *fs = dp->obj.fs; + + +#if FF_FS_RPATH != 0 + if (!IsSeparator(*path) && (FF_STR_VOLUME_ID != 2 || !IsTerminator(*path))) { /* Without heading separator */ + dp->obj.sclust = fs->cdir; /* Start at the current directory */ + } else +#endif + { /* With heading separator */ + while (IsSeparator(*path)) path++; /* Strip separators */ + dp->obj.sclust = 0; /* Start from the root directory */ + } +#if FF_FS_EXFAT + dp->obj.n_frag = 0; /* Invalidate last fragment counter of the object */ +#if FF_FS_RPATH != 0 + if (fs->fs_type == FS_EXFAT && dp->obj.sclust) { /* exFAT: Retrieve the sub-directory's status */ + DIR dj; + + dp->obj.c_scl = fs->cdc_scl; + dp->obj.c_size = fs->cdc_size; + dp->obj.c_ofs = fs->cdc_ofs; + res = load_obj_xdir(&dj, &dp->obj); + if (res != FR_OK) return res; + dp->obj.objsize = ld_dword(fs->dirbuf + XDIR_FileSize); + dp->obj.stat = fs->dirbuf[XDIR_GenFlags] & 2; + } +#endif +#endif + + if ((UINT)*path < ' ') { /* Null path name is the origin directory itself */ + dp->fn[NSFLAG] = NS_NONAME; + res = dir_sdi(dp, 0); + + } else { /* Follow path */ + for (;;) { + res = create_name(dp, &path); /* Get a segment name of the path */ + if (res != FR_OK) break; + res = dir_find(dp); /* Find an object with the segment name */ + ns = dp->fn[NSFLAG]; + if (res != FR_OK) { /* Failed to find the object */ + if (res == FR_NO_FILE) { /* Object is not found */ + if (FF_FS_RPATH && (ns & NS_DOT)) { /* If dot entry is not exist, stay there */ + if (!(ns & NS_LAST)) continue; /* Continue to follow if not last segment */ + dp->fn[NSFLAG] = NS_NONAME; + res = FR_OK; + } else { /* Could not find the object */ + if (!(ns & NS_LAST)) res = FR_NO_PATH; /* Adjust error code if not last segment */ + } + } + break; + } + if (ns & NS_LAST) break; /* Last segment matched. Function completed. */ + /* Get into the sub-directory */ + if (!(dp->obj.attr & AM_DIR)) { /* It is not a sub-directory and cannot follow */ + res = FR_NO_PATH; break; + } +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* Save containing directory information for next dir */ + dp->obj.c_scl = dp->obj.sclust; + dp->obj.c_size = ((DWORD)dp->obj.objsize & 0xFFFFFF00) | dp->obj.stat; + dp->obj.c_ofs = dp->blk_ofs; + init_alloc_info(fs, &dp->obj); /* Open next directory */ + } else +#endif + { + dp->obj.sclust = ld_clust(fs, fs->win + dp->dptr % SS(fs)); /* Open next directory */ + } + } + } + + return res; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Get logical drive number from path name */ +/*-----------------------------------------------------------------------*/ + +static int get_ldnumber ( /* Returns logical drive number (-1:invalid drive number or null pointer) */ + const TCHAR** path /* Pointer to pointer to the path name */ +) +{ + const TCHAR *tp, *tt; + TCHAR tc; + int i; + int vol = -1; +#if FF_STR_VOLUME_ID /* Find string volume ID */ + const char *sp; + char c; +#endif + + tt = tp = *path; + if (!tp) return vol; /* Invalid path name? */ + do tc = *tt++; while (!IsTerminator(tc) && tc != ':'); /* Find a colon in the path */ + + if (tc == ':') { /* DOS/Windows style volume ID? */ + i = FF_VOLUMES; + if (IsDigit(*tp) && tp + 2 == tt) { /* Is there a numeric volume ID + colon? */ + i = (int)*tp - '0'; /* Get the LD number */ + } +#if FF_STR_VOLUME_ID == 1 /* Arbitrary string is enabled */ + else { + i = 0; + do { + sp = VolumeStr[i]; tp = *path; /* This string volume ID and path name */ + do { /* Compare the volume ID with path name */ + c = *sp++; tc = *tp++; + if (IsLower(c)) c -= 0x20; + if (IsLower(tc)) tc -= 0x20; + } while (c && (TCHAR)c == tc); + } while ((c || tp != tt) && ++i < FF_VOLUMES); /* Repeat for each id until pattern match */ + } +#endif + if (i < FF_VOLUMES) { /* If a volume ID is found, get the drive number and strip it */ + vol = i; /* Drive number */ + *path = tt; /* Snip the drive prefix off */ + } + return vol; + } +#if FF_STR_VOLUME_ID == 2 /* Unix style volume ID is enabled */ + if (*tp == '/') { /* Is there a volume ID? */ + while (*(tp + 1) == '/') tp++; /* Skip duplicated separator */ + i = 0; + do { + tt = tp; sp = VolumeStr[i]; /* Path name and this string volume ID */ + do { /* Compare the volume ID with path name */ + c = *sp++; tc = *(++tt); + if (IsLower(c)) c -= 0x20; + if (IsLower(tc)) tc -= 0x20; + } while (c && (TCHAR)c == tc); + } while ((c || (tc != '/' && !IsTerminator(tc))) && ++i < FF_VOLUMES); /* Repeat for each ID until pattern match */ + if (i < FF_VOLUMES) { /* If a volume ID is found, get the drive number and strip it */ + vol = i; /* Drive number */ + *path = tt; /* Snip the drive prefix off */ + } + return vol; + } +#endif + /* No drive prefix is found */ +#if FF_FS_RPATH != 0 + vol = CurrVol; /* Default drive is current drive */ +#else + vol = 0; /* Default drive is 0 */ +#endif + return vol; /* Return the default drive */ +} + + + + +/*-----------------------------------------------------------------------*/ +/* GPT support functions */ +/*-----------------------------------------------------------------------*/ + +#if FF_LBA64 + +/* Calculate CRC32 in byte-by-byte */ + +static DWORD crc32 ( /* Returns next CRC value */ + DWORD crc, /* Current CRC value */ + BYTE d /* A byte to be processed */ +) +{ + BYTE b; + + + for (b = 1; b; b <<= 1) { + crc ^= (d & b) ? 1 : 0; + crc = (crc & 1) ? crc >> 1 ^ 0xEDB88320 : crc >> 1; + } + return crc; +} + + +/* Check validity of GPT header */ + +static int test_gpt_header ( /* 0:Invalid, 1:Valid */ + const BYTE* gpth /* Pointer to the GPT header */ +) +{ + UINT i; + DWORD bcc; + + + if (memcmp(gpth + GPTH_Sign, "EFI PART" "\0\0\1\0" "\x5C\0\0", 16)) return 0; /* Check sign, version (1.0) and length (92) */ + for (i = 0, bcc = 0xFFFFFFFF; i < 92; i++) { /* Check header BCC */ + bcc = crc32(bcc, i - GPTH_Bcc < 4 ? 0 : gpth[i]); + } + if (~bcc != ld_dword(gpth + GPTH_Bcc)) return 0; + if (ld_dword(gpth + GPTH_PteSize) != SZ_GPTE) return 0; /* Table entry size (must be SZ_GPTE bytes) */ + if (ld_dword(gpth + GPTH_PtNum) > 128) return 0; /* Table size (must be 128 entries or less) */ + + return 1; +} + +#if !FF_FS_READONLY && FF_USE_MKFS + +/* Generate random value */ +static DWORD make_rand ( + DWORD seed, /* Seed value */ + BYTE* buff, /* Output buffer */ + UINT n /* Data length */ +) +{ + UINT r; + + + if (seed == 0) seed = 1; + do { + for (r = 0; r < 8; r++) seed = seed & 1 ? seed >> 1 ^ 0xA3000000 : seed >> 1; /* Shift 8 bits the 32-bit LFSR */ + *buff++ = (BYTE)seed; + } while (--n); + return seed; +} + +#endif +#endif + + + +/*-----------------------------------------------------------------------*/ +/* Load a sector and check if it is an FAT VBR */ +/*-----------------------------------------------------------------------*/ + +/* Check what the sector is */ + +static UINT check_fs ( /* 0:FAT/FAT32 VBR, 1:exFAT VBR, 2:Not FAT and valid BS, 3:Not FAT and invalid BS, 4:Disk error */ + FATFS* fs, /* Filesystem object */ + LBA_t sect /* Sector to load and check if it is an FAT-VBR or not */ +) +{ + WORD w, sign; + BYTE b; + + + fs->wflag = 0; fs->winsect = (LBA_t)0 - 1; /* Invaidate window */ + if (move_window(fs, sect) != FR_OK) return 4; /* Load the boot sector */ + sign = ld_word(fs->win + BS_55AA); +#if FF_FS_EXFAT + if (sign == 0xAA55 && !memcmp(fs->win + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11)) return 1; /* It is an exFAT VBR */ +#endif + b = fs->win[BS_JmpBoot]; + if (b == 0xEB || b == 0xE9 || b == 0xE8) { /* Valid JumpBoot code? (short jump, near jump or near call) */ + if (sign == 0xAA55 && !memcmp(fs->win + BS_FilSysType32, "FAT32 ", 8)) { + return 0; /* It is an FAT32 VBR */ + } + /* FAT volumes formatted with early MS-DOS lack BS_55AA and BS_FilSysType, so FAT VBR needs to be identified without them. */ + w = ld_word(fs->win + BPB_BytsPerSec); + b = fs->win[BPB_SecPerClus]; + if ((w & (w - 1)) == 0 && w >= FF_MIN_SS && w <= FF_MAX_SS /* Properness of sector size (512-4096 and 2^n) */ + && b != 0 && (b & (b - 1)) == 0 /* Properness of cluster size (2^n) */ + && ld_word(fs->win + BPB_RsvdSecCnt) != 0 /* Properness of reserved sectors (MNBZ) */ + && (UINT)fs->win[BPB_NumFATs] - 1 <= 1 /* Properness of FATs (1 or 2) */ + && ld_word(fs->win + BPB_RootEntCnt) != 0 /* Properness of root dir entries (MNBZ) */ + && (ld_word(fs->win + BPB_TotSec16) >= 128 || ld_dword(fs->win + BPB_TotSec32) >= 0x10000) /* Properness of volume sectors (>=128) */ + && ld_word(fs->win + BPB_FATSz16) != 0) { /* Properness of FAT size (MNBZ) */ + return 0; /* It can be presumed an FAT VBR */ + } + } + return sign == 0xAA55 ? 2 : 3; /* Not an FAT VBR (valid or invalid BS) */ +} + + +/* Find an FAT volume */ +/* (It supports only generic partitioning rules, MBR, GPT and SFD) */ + +static UINT find_volume ( /* Returns BS status found in the hosting drive */ + FATFS* fs, /* Filesystem object */ + UINT part /* Partition to fined = 0:auto, 1..:forced */ +) +{ + UINT fmt, i; + DWORD mbr_pt[4]; + + + fmt = check_fs(fs, 0); /* Load sector 0 and check if it is an FAT VBR as SFD format */ + if (fmt != 2 && (fmt >= 3 || part == 0)) return fmt; /* Returns if it is an FAT VBR as auto scan, not a BS or disk error */ + + /* Sector 0 is not an FAT VBR or forced partition number wants a partition */ + +#if FF_LBA64 + if (fs->win[MBR_Table + PTE_System] == 0xEE) { /* GPT protective MBR? */ + DWORD n_ent, v_ent, ofs; + QWORD pt_lba; + + if (move_window(fs, 1) != FR_OK) return 4; /* Load GPT header sector (next to MBR) */ + if (!test_gpt_header(fs->win)) return 3; /* Check if GPT header is valid */ + n_ent = ld_dword(fs->win + GPTH_PtNum); /* Number of entries */ + pt_lba = ld_qword(fs->win + GPTH_PtOfs); /* Table location */ + for (v_ent = i = 0; i < n_ent; i++) { /* Find FAT partition */ + if (move_window(fs, pt_lba + i * SZ_GPTE / SS(fs)) != FR_OK) return 4; /* PT sector */ + ofs = i * SZ_GPTE % SS(fs); /* Offset in the sector */ + if (!memcmp(fs->win + ofs + GPTE_PtGuid, GUID_MS_Basic, 16)) { /* MS basic data partition? */ + v_ent++; + fmt = check_fs(fs, ld_qword(fs->win + ofs + GPTE_FstLba)); /* Load VBR and check status */ + if (part == 0 && fmt <= 1) return fmt; /* Auto search (valid FAT volume found first) */ + if (part != 0 && v_ent == part) return fmt; /* Forced partition order (regardless of it is valid or not) */ + } + } + return 3; /* Not found */ + } +#endif + if (FF_MULTI_PARTITION && part > 4) return 3; /* MBR has 4 partitions max */ + for (i = 0; i < 4; i++) { /* Load partition offset in the MBR */ + mbr_pt[i] = ld_dword(fs->win + MBR_Table + i * SZ_PTE + PTE_StLba); + } + i = part ? part - 1 : 0; /* Table index to find first */ + do { /* Find an FAT volume */ + fmt = mbr_pt[i] ? check_fs(fs, mbr_pt[i]) : 3; /* Check if the partition is FAT */ + } while (part == 0 && fmt >= 2 && ++i < 4); + return fmt; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Determine logical drive number and mount the volume if needed */ +/*-----------------------------------------------------------------------*/ + +static FRESULT mount_volume ( /* FR_OK(0): successful, !=0: an error occurred */ + const TCHAR** path, /* Pointer to pointer to the path name (drive number) */ + FATFS** rfs, /* Pointer to pointer to the found filesystem object */ + BYTE mode /* !=0: Check write protection for write access */ +) +{ + int vol; + DSTATUS stat; + LBA_t bsect; + DWORD tsect, sysect, fasize, nclst, szbfat; + WORD nrsv; + FATFS *fs; + UINT fmt; + + + /* Get logical drive number */ + *rfs = 0; + vol = get_ldnumber(path); + if (vol < 0) return FR_INVALID_DRIVE; + + /* Check if the filesystem object is valid or not */ + fs = FatFs[vol]; /* Get pointer to the filesystem object */ + if (!fs) return FR_NOT_ENABLED; /* Is the filesystem object available? */ +#if FF_FS_REENTRANT + if (!lock_fs(fs)) return FR_TIMEOUT; /* Lock the volume */ +#endif + *rfs = fs; /* Return pointer to the filesystem object */ + + mode &= (BYTE)~FA_READ; /* Desired access mode, write access or not */ + if (fs->fs_type != 0) { /* If the volume has been mounted */ + stat = disk_status(fs->pdrv); + if (!(stat & STA_NOINIT)) { /* and the physical drive is kept initialized */ + if (!FF_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check write protection if needed */ + return FR_WRITE_PROTECTED; + } + return FR_OK; /* The filesystem object is already valid */ + } + } + + /* The filesystem object is not valid. */ + /* Following code attempts to mount the volume. (find an FAT volume, analyze the BPB and initialize the filesystem object) */ + + fs->fs_type = 0; /* Clear the filesystem object */ + fs->pdrv = LD2PD(vol); /* Volume hosting physical drive */ + stat = disk_initialize(fs->pdrv); /* Initialize the physical drive */ + if (stat & STA_NOINIT) { /* Check if the initialization succeeded */ + return FR_NOT_READY; /* Failed to initialize due to no medium or hard error */ + } + if (!FF_FS_READONLY && mode && (stat & STA_PROTECT)) { /* Check disk write protection if needed */ + return FR_WRITE_PROTECTED; + } +#if FF_MAX_SS != FF_MIN_SS /* Get sector size (multiple sector size cfg only) */ + if (disk_ioctl(fs->pdrv, GET_SECTOR_SIZE, &SS(fs)) != RES_OK) return FR_DISK_ERR; + if (SS(fs) > FF_MAX_SS || SS(fs) < FF_MIN_SS || (SS(fs) & (SS(fs) - 1))) return FR_DISK_ERR; +#endif + + /* Find an FAT volume on the drive */ + fmt = find_volume(fs, LD2PT(vol)); + if (fmt == 4) return FR_DISK_ERR; /* An error occured in the disk I/O layer */ + if (fmt >= 2) return FR_NO_FILESYSTEM; /* No FAT volume is found */ + bsect = fs->winsect; /* Volume offset */ + + /* An FAT volume is found (bsect). Following code initializes the filesystem object */ + +#if FF_FS_EXFAT + if (fmt == 1) { + QWORD maxlba; + DWORD so, cv, bcl, i; + + for (i = BPB_ZeroedEx; i < BPB_ZeroedEx + 53 && fs->win[i] == 0; i++) ; /* Check zero filler */ + if (i < BPB_ZeroedEx + 53) return FR_NO_FILESYSTEM; + + if (ld_word(fs->win + BPB_FSVerEx) != 0x100) return FR_NO_FILESYSTEM; /* Check exFAT version (must be version 1.0) */ + + if (1 << fs->win[BPB_BytsPerSecEx] != SS(fs)) { /* (BPB_BytsPerSecEx must be equal to the physical sector size) */ + return FR_NO_FILESYSTEM; + } + + maxlba = ld_qword(fs->win + BPB_TotSecEx) + bsect; /* Last LBA of the volume + 1 */ + if (!FF_LBA64 && maxlba >= 0x100000000) return FR_NO_FILESYSTEM; /* (It cannot be accessed in 32-bit LBA) */ + + fs->fsize = ld_dword(fs->win + BPB_FatSzEx); /* Number of sectors per FAT */ + + fs->n_fats = fs->win[BPB_NumFATsEx]; /* Number of FATs */ + if (fs->n_fats != 1) return FR_NO_FILESYSTEM; /* (Supports only 1 FAT) */ + + fs->csize = 1 << fs->win[BPB_SecPerClusEx]; /* Cluster size */ + if (fs->csize == 0) return FR_NO_FILESYSTEM; /* (Must be 1..32768 sectors) */ + + nclst = ld_dword(fs->win + BPB_NumClusEx); /* Number of clusters */ + if (nclst > MAX_EXFAT) return FR_NO_FILESYSTEM; /* (Too many clusters) */ + fs->n_fatent = nclst + 2; + + /* Boundaries and Limits */ + fs->volbase = bsect; + fs->database = bsect + ld_dword(fs->win + BPB_DataOfsEx); + fs->fatbase = bsect + ld_dword(fs->win + BPB_FatOfsEx); + if (maxlba < (QWORD)fs->database + nclst * fs->csize) return FR_NO_FILESYSTEM; /* (Volume size must not be smaller than the size requiered) */ + fs->dirbase = ld_dword(fs->win + BPB_RootClusEx); + + /* Get bitmap location and check if it is contiguous (implementation assumption) */ + so = i = 0; + for (;;) { /* Find the bitmap entry in the root directory (in only first cluster) */ + if (i == 0) { + if (so >= fs->csize) return FR_NO_FILESYSTEM; /* Not found? */ + if (move_window(fs, clst2sect(fs, (DWORD)fs->dirbase) + so) != FR_OK) return FR_DISK_ERR; + so++; + } + if (fs->win[i] == ET_BITMAP) break; /* Is it a bitmap entry? */ + i = (i + SZDIRE) % SS(fs); /* Next entry */ + } + bcl = ld_dword(fs->win + i + 20); /* Bitmap cluster */ + if (bcl < 2 || bcl >= fs->n_fatent) return FR_NO_FILESYSTEM; /* (Wrong cluster#) */ + fs->bitbase = fs->database + fs->csize * (bcl - 2); /* Bitmap sector */ + for (;;) { /* Check if bitmap is contiguous */ + if (move_window(fs, fs->fatbase + bcl / (SS(fs) / 4)) != FR_OK) return FR_DISK_ERR; + cv = ld_dword(fs->win + bcl % (SS(fs) / 4) * 4); + if (cv == 0xFFFFFFFF) break; /* Last link? */ + if (cv != ++bcl) return FR_NO_FILESYSTEM; /* Fragmented? */ + } + +#if !FF_FS_READONLY + fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ +#endif + fmt = FS_EXFAT; /* FAT sub-type */ + } else +#endif /* FF_FS_EXFAT */ + { + if (ld_word(fs->win + BPB_BytsPerSec) != SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_BytsPerSec must be equal to the physical sector size) */ + + fasize = ld_word(fs->win + BPB_FATSz16); /* Number of sectors per FAT */ + if (fasize == 0) fasize = ld_dword(fs->win + BPB_FATSz32); + fs->fsize = fasize; + + fs->n_fats = fs->win[BPB_NumFATs]; /* Number of FATs */ + if (fs->n_fats != 1 && fs->n_fats != 2) return FR_NO_FILESYSTEM; /* (Must be 1 or 2) */ + fasize *= fs->n_fats; /* Number of sectors for FAT area */ + + fs->csize = fs->win[BPB_SecPerClus]; /* Cluster size */ + if (fs->csize == 0 || (fs->csize & (fs->csize - 1))) return FR_NO_FILESYSTEM; /* (Must be power of 2) */ + + fs->n_rootdir = ld_word(fs->win + BPB_RootEntCnt); /* Number of root directory entries */ + if (fs->n_rootdir % (SS(fs) / SZDIRE)) return FR_NO_FILESYSTEM; /* (Must be sector aligned) */ + + tsect = ld_word(fs->win + BPB_TotSec16); /* Number of sectors on the volume */ + if (tsect == 0) tsect = ld_dword(fs->win + BPB_TotSec32); + + nrsv = ld_word(fs->win + BPB_RsvdSecCnt); /* Number of reserved sectors */ + if (nrsv == 0) return FR_NO_FILESYSTEM; /* (Must not be 0) */ + + /* Determine the FAT sub type */ + sysect = nrsv + fasize + fs->n_rootdir / (SS(fs) / SZDIRE); /* RSV + FAT + DIR */ + if (tsect < sysect) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + nclst = (tsect - sysect) / fs->csize; /* Number of clusters */ + if (nclst == 0) return FR_NO_FILESYSTEM; /* (Invalid volume size) */ + fmt = 0; + if (nclst <= MAX_FAT32) fmt = FS_FAT32; + if (nclst <= MAX_FAT16) fmt = FS_FAT16; + if (nclst <= MAX_FAT12) fmt = FS_FAT12; + if (fmt == 0) return FR_NO_FILESYSTEM; + + /* Boundaries and Limits */ + fs->n_fatent = nclst + 2; /* Number of FAT entries */ + fs->volbase = bsect; /* Volume start sector */ + fs->fatbase = bsect + nrsv; /* FAT start sector */ + fs->database = bsect + sysect; /* Data start sector */ + if (fmt == FS_FAT32) { + if (ld_word(fs->win + BPB_FSVer32) != 0) return FR_NO_FILESYSTEM; /* (Must be FAT32 revision 0.0) */ + if (fs->n_rootdir != 0) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must be 0) */ + fs->dirbase = ld_dword(fs->win + BPB_RootClus32); /* Root directory start cluster */ + szbfat = fs->n_fatent * 4; /* (Needed FAT size) */ + } else { + if (fs->n_rootdir == 0) return FR_NO_FILESYSTEM; /* (BPB_RootEntCnt must not be 0) */ + fs->dirbase = fs->fatbase + fasize; /* Root directory start sector */ + szbfat = (fmt == FS_FAT16) ? /* (Needed FAT size) */ + fs->n_fatent * 2 : fs->n_fatent * 3 / 2 + (fs->n_fatent & 1); + } + if (fs->fsize < (szbfat + (SS(fs) - 1)) / SS(fs)) return FR_NO_FILESYSTEM; /* (BPB_FATSz must not be less than the size needed) */ + +#if !FF_FS_READONLY + /* Get FSInfo if available */ + fs->last_clst = fs->free_clst = 0xFFFFFFFF; /* Initialize cluster allocation information */ + fs->fsi_flag = 0x80; +#if (FF_FS_NOFSINFO & 3) != 3 + if (fmt == FS_FAT32 /* Allow to update FSInfo only if BPB_FSInfo32 == 1 */ + && ld_word(fs->win + BPB_FSInfo32) == 1 + && move_window(fs, bsect + 1) == FR_OK) + { + fs->fsi_flag = 0; + if (ld_word(fs->win + BS_55AA) == 0xAA55 /* Load FSInfo data if available */ + && ld_dword(fs->win + FSI_LeadSig) == 0x41615252 + && ld_dword(fs->win + FSI_StrucSig) == 0x61417272) + { +#if (FF_FS_NOFSINFO & 1) == 0 + fs->free_clst = ld_dword(fs->win + FSI_Free_Count); +#endif +#if (FF_FS_NOFSINFO & 2) == 0 + fs->last_clst = ld_dword(fs->win + FSI_Nxt_Free); +#endif + } + } +#endif /* (FF_FS_NOFSINFO & 3) != 3 */ +#endif /* !FF_FS_READONLY */ + } + + fs->fs_type = (BYTE)fmt;/* FAT sub-type */ + fs->id = ++Fsid; /* Volume mount ID */ +#if FF_USE_LFN == 1 + fs->lfnbuf = LfnBuf; /* Static LFN working buffer */ +#if FF_FS_EXFAT + fs->dirbuf = DirBuf; /* Static directory block scratchpad buuffer */ +#endif +#endif +#if FF_FS_RPATH != 0 + fs->cdir = 0; /* Initialize current directory */ +#endif +#if FF_FS_LOCK != 0 /* Clear file lock semaphores */ + clear_lock(fs); +#endif + return FR_OK; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Check if the file/directory object is valid or not */ +/*-----------------------------------------------------------------------*/ + +static FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ + FFOBJID* obj, /* Pointer to the FFOBJID, the 1st member in the FIL/DIR object, to check validity */ + FATFS** rfs /* Pointer to pointer to the owner filesystem object to return */ +) +{ + FRESULT res = FR_INVALID_OBJECT; + + + if (obj && obj->fs && obj->fs->fs_type && obj->id == obj->fs->id) { /* Test if the object is valid */ +#if FF_FS_REENTRANT + if (lock_fs(obj->fs)) { /* Obtain the filesystem object */ + if (!(disk_status(obj->fs->pdrv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialized */ + res = FR_OK; + } else { + unlock_fs(obj->fs, FR_OK); + } + } else { + res = FR_TIMEOUT; + } +#else + if (!(disk_status(obj->fs->pdrv) & STA_NOINIT)) { /* Test if the phsical drive is kept initialized */ + res = FR_OK; + } +#endif + } + *rfs = (res == FR_OK) ? obj->fs : 0; /* Corresponding filesystem object */ + return res; +} + + + + +/*--------------------------------------------------------------------------- + + Public Functions (FatFs API) + +----------------------------------------------------------------------------*/ + + + +/*-----------------------------------------------------------------------*/ +/* Mount/Unmount a Logical Drive */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_mount ( + FATFS* fs, /* Pointer to the filesystem object to be registered (NULL:unmount)*/ + const TCHAR* path, /* Logical drive number to be mounted/unmounted */ + BYTE opt /* Mount option: 0=Do not mount (delayed mount), 1=Mount immediately */ +) +{ + FATFS *cfs; + int vol; + FRESULT res; + const TCHAR *rp = path; + + + /* Get logical drive number */ + vol = get_ldnumber(&rp); + if (vol < 0) return FR_INVALID_DRIVE; + cfs = FatFs[vol]; /* Pointer to fs object */ + + if (cfs) { +#if FF_FS_LOCK != 0 + clear_lock(cfs); +#endif +#if FF_FS_REENTRANT /* Discard sync object of the current volume */ + if (!ff_del_syncobj(cfs->sobj)) return FR_INT_ERR; +#endif + cfs->fs_type = 0; /* Clear old fs object */ + } + + if (fs) { + fs->fs_type = 0; /* Clear new fs object */ +#if FF_FS_REENTRANT /* Create sync object for the new volume */ + if (!ff_cre_syncobj((BYTE)vol, &fs->sobj)) return FR_INT_ERR; +#endif + } + FatFs[vol] = fs; /* Register new fs object */ + + if (opt == 0) return FR_OK; /* Do not mount now, it will be mounted later */ + + res = mount_volume(&path, &fs, 0); /* Force mounted the volume */ + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Open or Create a File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_open ( + FIL* fp, /* Pointer to the blank file object */ + const TCHAR* path, /* Pointer to the file name */ + BYTE mode /* Access mode and open mode flags */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; +#if !FF_FS_READONLY + DWORD cl, bcs, clst, tm; + LBA_t sc; + FSIZE_t ofs; +#endif + DEF_NAMBUF + + + if (!fp) return FR_INVALID_OBJECT; + + /* Get logical drive number */ + mode &= FF_FS_READONLY ? FA_READ : FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND; + res = mount_volume(&path, &fs, mode); + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ +#if !FF_FS_READONLY /* Read/Write configuration */ + if (res == FR_OK) { + if (dj.fn[NSFLAG] & NS_NONAME) { /* Origin directory itself? */ + res = FR_INVALID_NAME; + } +#if FF_FS_LOCK != 0 + else { + res = chk_lock(&dj, (mode & ~FA_READ) ? 1 : 0); /* Check if the file can be used */ + } +#endif + } + /* Create or Open a file */ + if (mode & (FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW)) { + if (res != FR_OK) { /* No file, create new */ + if (res == FR_NO_FILE) { /* There is no file to open, create a new entry */ +#if FF_FS_LOCK != 0 + res = enq_lock() ? dir_register(&dj) : FR_TOO_MANY_OPEN_FILES; +#else + res = dir_register(&dj); +#endif + } + mode |= FA_CREATE_ALWAYS; /* File is created */ + } + else { /* Any object with the same name is already existing */ + if (dj.obj.attr & (AM_RDO | AM_DIR)) { /* Cannot overwrite it (R/O or DIR) */ + res = FR_DENIED; + } else { + if (mode & FA_CREATE_NEW) res = FR_EXIST; /* Cannot create as new file */ + } + } + if (res == FR_OK && (mode & FA_CREATE_ALWAYS)) { /* Truncate the file if overwrite mode */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + /* Get current allocation info */ + fp->obj.fs = fs; + init_alloc_info(fs, &fp->obj); + /* Set directory entry block initial state */ + memset(fs->dirbuf + 2, 0, 30); /* Clear 85 entry except for NumSec */ + memset(fs->dirbuf + 38, 0, 26); /* Clear C0 entry except for NumName and NameHash */ + fs->dirbuf[XDIR_Attr] = AM_ARC; + st_dword(fs->dirbuf + XDIR_CrtTime, GET_FATTIME()); + fs->dirbuf[XDIR_GenFlags] = 1; + res = store_xdir(&dj); + if (res == FR_OK && fp->obj.sclust != 0) { /* Remove the cluster chain if exist */ + res = remove_chain(&fp->obj, fp->obj.sclust, 0); + fs->last_clst = fp->obj.sclust - 1; /* Reuse the cluster hole */ + } + } else +#endif + { + /* Set directory entry initial state */ + tm = GET_FATTIME(); /* Set created time */ + st_dword(dj.dir + DIR_CrtTime, tm); + st_dword(dj.dir + DIR_ModTime, tm); + cl = ld_clust(fs, dj.dir); /* Get current cluster chain */ + dj.dir[DIR_Attr] = AM_ARC; /* Reset attribute */ + st_clust(fs, dj.dir, 0); /* Reset file allocation info */ + st_dword(dj.dir + DIR_FileSize, 0); + fs->wflag = 1; + if (cl != 0) { /* Remove the cluster chain if exist */ + sc = fs->winsect; + res = remove_chain(&dj.obj, cl, 0); + if (res == FR_OK) { + res = move_window(fs, sc); + fs->last_clst = cl - 1; /* Reuse the cluster hole */ + } + } + } + } + } + else { /* Open an existing file */ + if (res == FR_OK) { /* Is the object exsiting? */ + if (dj.obj.attr & AM_DIR) { /* File open against a directory */ + res = FR_NO_FILE; + } else { + if ((mode & FA_WRITE) && (dj.obj.attr & AM_RDO)) { /* Write mode open against R/O file */ + res = FR_DENIED; + } + } + } + } + if (res == FR_OK) { + if (mode & FA_CREATE_ALWAYS) mode |= FA_MODIFIED; /* Set file change flag if created or overwritten */ + fp->dir_sect = fs->winsect; /* Pointer to the directory entry */ + fp->dir_ptr = dj.dir; +#if FF_FS_LOCK != 0 + fp->obj.lockid = inc_lock(&dj, (mode & ~FA_READ) ? 1 : 0); /* Lock the file for this session */ + if (fp->obj.lockid == 0) res = FR_INT_ERR; +#endif + } +#else /* R/O configuration */ + if (res == FR_OK) { + if (dj.fn[NSFLAG] & NS_NONAME) { /* Is it origin directory itself? */ + res = FR_INVALID_NAME; + } else { + if (dj.obj.attr & AM_DIR) { /* Is it a directory? */ + res = FR_NO_FILE; + } + } + } +#endif + + if (res == FR_OK) { +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fp->obj.c_scl = dj.obj.sclust; /* Get containing directory info */ + fp->obj.c_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; + fp->obj.c_ofs = dj.blk_ofs; + init_alloc_info(fs, &fp->obj); + } else +#endif + { + fp->obj.sclust = ld_clust(fs, dj.dir); /* Get object allocation info */ + fp->obj.objsize = ld_dword(dj.dir + DIR_FileSize); + } +#if FF_USE_FASTSEEK + fp->cltbl = 0; /* Disable fast seek mode */ +#endif + fp->obj.fs = fs; /* Validate the file object */ + fp->obj.id = fs->id; + fp->flag = mode; /* Set file access mode */ + fp->err = 0; /* Clear error flag */ + fp->sect = 0; /* Invalidate current data sector */ + fp->fptr = 0; /* Set file pointer top of the file */ +#if !FF_FS_READONLY +#if !FF_FS_TINY + memset(fp->buf, 0, sizeof fp->buf); /* Clear sector buffer */ +#endif + if ((mode & FA_SEEKEND) && fp->obj.objsize > 0) { /* Seek to end of file if FA_OPEN_APPEND is specified */ + fp->fptr = fp->obj.objsize; /* Offset to seek */ + bcs = (DWORD)fs->csize * SS(fs); /* Cluster size in byte */ + clst = fp->obj.sclust; /* Follow the cluster chain */ + for (ofs = fp->obj.objsize; res == FR_OK && ofs > bcs; ofs -= bcs) { + clst = get_fat(&fp->obj, clst); + if (clst <= 1) res = FR_INT_ERR; + if (clst == 0xFFFFFFFF) res = FR_DISK_ERR; + } + fp->clust = clst; + if (res == FR_OK && ofs % SS(fs)) { /* Fill sector buffer if not on the sector boundary */ + sc = clst2sect(fs, clst); + if (sc == 0) { + res = FR_INT_ERR; + } else { + fp->sect = sc + (DWORD)(ofs / SS(fs)); +#if !FF_FS_TINY + if (disk_read(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) res = FR_DISK_ERR; +#endif + } + } +#if FF_FS_LOCK != 0 + if (res != FR_OK) dec_lock(fp->obj.lockid); /* Decrement file open counter if seek failed */ +#endif + } +#endif + } + + FREE_NAMBUF(); + } + + if (res != FR_OK) fp->obj.fs = 0; /* Invalidate file object on error */ + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Read File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_read ( + FIL* fp, /* Open file to be read */ + void* buff, /* Data buffer to store the read data */ + UINT btr, /* Number of bytes to read */ + UINT* br /* Number of bytes read */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst; + LBA_t sect; + FSIZE_t remain; + UINT rcnt, cc, csect; + BYTE *rbuff = (BYTE*)buff; + + + *br = 0; /* Clear read byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + remain = fp->obj.objsize - fp->fptr; + if (btr > remain) btr = (UINT)remain; /* Truncate btr by remaining bytes */ + + for ( ; btr > 0; btr -= rcnt, *br += rcnt, rbuff += rcnt, fp->fptr += rcnt) { /* Repeat until btr bytes read */ + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ + if (csect == 0) { /* On the cluster boundary? */ + if (fp->fptr == 0) { /* On the top of the file? */ + clst = fp->obj.sclust; /* Follow cluster chain from the origin */ + } else { /* Middle or end of the file */ +#if FF_USE_FASTSEEK + if (fp->cltbl) { + clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ + } else +#endif + { + clst = get_fat(&fp->obj, fp->clust); /* Follow cluster chain on the FAT */ + } + } + if (clst < 2) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + } + sect = clst2sect(fs, fp->clust); /* Get current sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); + sect += csect; + cc = btr / SS(fs); /* When remaining bytes >= sector size, */ + if (cc > 0) { /* Read maximum contiguous sectors directly */ + if (csect + cc > fs->csize) { /* Clip at cluster boundary */ + cc = fs->csize - csect; + } + if (disk_read(fs->pdrv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if !FF_FS_READONLY && FF_FS_MINIMIZE <= 2 /* Replace one of the read sectors with cached data if it contains a dirty sector */ +#if FF_FS_TINY + if (fs->wflag && fs->winsect - sect < cc) { + memcpy(rbuff + ((fs->winsect - sect) * SS(fs)), fs->win, SS(fs)); + } +#else + if ((fp->flag & FA_DIRTY) && fp->sect - sect < cc) { + memcpy(rbuff + ((fp->sect - sect) * SS(fs)), fp->buf, SS(fs)); + } +#endif +#endif + rcnt = SS(fs) * cc; /* Number of bytes transferred */ + continue; + } +#if !FF_FS_TINY + if (fp->sect != sect) { /* Load data sector if not in cache */ +#if !FF_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ + } +#endif + fp->sect = sect; + } + rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes remains in the sector */ + if (rcnt > btr) rcnt = btr; /* Clip it by btr if needed */ +#if FF_FS_TINY + if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ + memcpy(rbuff, fs->win + fp->fptr % SS(fs), rcnt); /* Extract partial sector */ +#else + memcpy(rbuff, fp->buf + fp->fptr % SS(fs), rcnt); /* Extract partial sector */ +#endif + } + + LEAVE_FF(fs, FR_OK); +} + + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Write File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_write ( + FIL* fp, /* Open file to be written */ + const void* buff, /* Data to be written */ + UINT btw, /* Number of bytes to write */ + UINT* bw /* Number of bytes written */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst; + LBA_t sect; + UINT wcnt, cc, csect; + const BYTE *wbuff = (const BYTE*)buff; + + + *bw = 0; /* Clear write byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); /* Check validity */ + if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + /* Check fptr wrap-around (file size cannot reach 4 GiB at FAT volume) */ + if ((!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) && (DWORD)(fp->fptr + btw) < (DWORD)fp->fptr) { + btw = (UINT)(0xFFFFFFFF - (DWORD)fp->fptr); + } + + for ( ; btw > 0; btw -= wcnt, *bw += wcnt, wbuff += wcnt, fp->fptr += wcnt, fp->obj.objsize = (fp->fptr > fp->obj.objsize) ? fp->fptr : fp->obj.objsize) { /* Repeat until all data written */ + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + csect = (UINT)(fp->fptr / SS(fs)) & (fs->csize - 1); /* Sector offset in the cluster */ + if (csect == 0) { /* On the cluster boundary? */ + if (fp->fptr == 0) { /* On the top of the file? */ + clst = fp->obj.sclust; /* Follow from the origin */ + if (clst == 0) { /* If no cluster is allocated, */ + clst = create_chain(&fp->obj, 0); /* create a new cluster chain */ + } + } else { /* On the middle or end of the file */ +#if FF_USE_FASTSEEK + if (fp->cltbl) { + clst = clmt_clust(fp, fp->fptr); /* Get cluster# from the CLMT */ + } else +#endif + { + clst = create_chain(&fp->obj, fp->clust); /* Follow or stretch cluster chain on the FAT */ + } + } + if (clst == 0) break; /* Could not allocate a new cluster (disk full) */ + if (clst == 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + if (fp->obj.sclust == 0) fp->obj.sclust = clst; /* Set start cluster if the first write */ + } +#if FF_FS_TINY + if (fs->winsect == fp->sect && sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Write-back sector cache */ +#else + if (fp->flag & FA_DIRTY) { /* Write-back sector cache */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + sect = clst2sect(fs, fp->clust); /* Get current sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); + sect += csect; + cc = btw / SS(fs); /* When remaining bytes >= sector size, */ + if (cc > 0) { /* Write maximum contiguous sectors directly */ + if (csect + cc > fs->csize) { /* Clip at cluster boundary */ + cc = fs->csize - csect; + } + if (disk_write(fs->pdrv, wbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR); +#if FF_FS_MINIMIZE <= 2 +#if FF_FS_TINY + if (fs->winsect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ + memcpy(fs->win, wbuff + ((fs->winsect - sect) * SS(fs)), SS(fs)); + fs->wflag = 0; + } +#else + if (fp->sect - sect < cc) { /* Refill sector cache if it gets invalidated by the direct write */ + memcpy(fp->buf, wbuff + ((fp->sect - sect) * SS(fs)), SS(fs)); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif +#endif + wcnt = SS(fs) * cc; /* Number of bytes transferred */ + continue; + } +#if FF_FS_TINY + if (fp->fptr >= fp->obj.objsize) { /* Avoid silly cache filling on the growing edge */ + if (sync_window(fs) != FR_OK) ABORT(fs, FR_DISK_ERR); + fs->winsect = sect; + } +#else + if (fp->sect != sect && /* Fill sector cache with file data */ + fp->fptr < fp->obj.objsize && + disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) { + ABORT(fs, FR_DISK_ERR); + } +#endif + fp->sect = sect; + } + wcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes remains in the sector */ + if (wcnt > btw) wcnt = btw; /* Clip it by btw if needed */ +#if FF_FS_TINY + if (move_window(fs, fp->sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window */ + memcpy(fs->win + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */ + fs->wflag = 1; +#else + memcpy(fp->buf + fp->fptr % SS(fs), wbuff, wcnt); /* Fit data to the sector */ + fp->flag |= FA_DIRTY; +#endif + } + + fp->flag |= FA_MODIFIED; /* Set file change flag */ + + LEAVE_FF(fs, FR_OK); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Synchronize the File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_sync ( + FIL* fp /* Open file to be synced */ +) +{ + FRESULT res; + FATFS *fs; + DWORD tm; + BYTE *dir; + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) { + if (fp->flag & FA_MODIFIED) { /* Is there any change to the file? */ +#if !FF_FS_TINY + if (fp->flag & FA_DIRTY) { /* Write-back cached data if needed */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) LEAVE_FF(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + /* Update the directory entry */ + tm = GET_FATTIME(); /* Modified time */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + res = fill_first_frag(&fp->obj); /* Fill first fragment on the FAT if needed */ + if (res == FR_OK) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } + if (res == FR_OK) { + DIR dj; + DEF_NAMBUF + + INIT_NAMBUF(fs); + res = load_obj_xdir(&dj, &fp->obj); /* Load directory entry block */ + if (res == FR_OK) { + fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed */ + fs->dirbuf[XDIR_GenFlags] = fp->obj.stat | 1; /* Update file allocation information */ + st_dword(fs->dirbuf + XDIR_FstClus, fp->obj.sclust); /* Update start cluster */ + st_qword(fs->dirbuf + XDIR_FileSize, fp->obj.objsize); /* Update file size */ + st_qword(fs->dirbuf + XDIR_ValidFileSize, fp->obj.objsize); /* (FatFs does not support Valid File Size feature) */ + st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Update modified time */ + fs->dirbuf[XDIR_ModTime10] = 0; + st_dword(fs->dirbuf + XDIR_AccTime, 0); + res = store_xdir(&dj); /* Restore it to the directory */ + if (res == FR_OK) { + res = sync_fs(fs); + fp->flag &= (BYTE)~FA_MODIFIED; + } + } + FREE_NAMBUF(); + } + } else +#endif + { + res = move_window(fs, fp->dir_sect); + if (res == FR_OK) { + dir = fp->dir_ptr; + dir[DIR_Attr] |= AM_ARC; /* Set archive attribute to indicate that the file has been changed */ + st_clust(fp->obj.fs, dir, fp->obj.sclust); /* Update file allocation information */ + st_dword(dir + DIR_FileSize, (DWORD)fp->obj.objsize); /* Update file size */ + st_dword(dir + DIR_ModTime, tm); /* Update modified time */ + st_word(dir + DIR_LstAccDate, 0); + fs->wflag = 1; + res = sync_fs(fs); /* Restore it to the directory */ + fp->flag &= (BYTE)~FA_MODIFIED; + } + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* !FF_FS_READONLY */ + + + + +/*-----------------------------------------------------------------------*/ +/* Close File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_close ( + FIL* fp /* Open file to be closed */ +) +{ + FRESULT res; + FATFS *fs; + +#if !FF_FS_READONLY + res = f_sync(fp); /* Flush cached data */ + if (res == FR_OK) +#endif + { + res = validate(&fp->obj, &fs); /* Lock volume */ + if (res == FR_OK) { +#if FF_FS_LOCK != 0 + res = dec_lock(fp->obj.lockid); /* Decrement file open counter */ + if (res == FR_OK) fp->obj.fs = 0; /* Invalidate file object */ +#else + fp->obj.fs = 0; /* Invalidate file object */ +#endif +#if FF_FS_REENTRANT + unlock_fs(fs, FR_OK); /* Unlock volume */ +#endif + } + } + return res; +} + + + + +#if FF_FS_RPATH >= 1 +/*-----------------------------------------------------------------------*/ +/* Change Current Directory or Current Drive, Get Current Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_chdrive ( + const TCHAR* path /* Drive number to set */ +) +{ + int vol; + + + /* Get logical drive number */ + vol = get_ldnumber(&path); + if (vol < 0) return FR_INVALID_DRIVE; + CurrVol = (BYTE)vol; /* Set it as current volume */ + + return FR_OK; +} + + + +FRESULT f_chdir ( + const TCHAR* path /* Pointer to the directory path */ +) +{ +#if FF_STR_VOLUME_ID == 2 + UINT i; +#endif + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + + /* Get logical drive */ + res = mount_volume(&path, &fs, 0); + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the path */ + if (res == FR_OK) { /* Follow completed */ + if (dj.fn[NSFLAG] & NS_NONAME) { /* Is it the start directory itself? */ + fs->cdir = dj.obj.sclust; +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->cdc_scl = dj.obj.c_scl; + fs->cdc_size = dj.obj.c_size; + fs->cdc_ofs = dj.obj.c_ofs; + } +#endif + } else { + if (dj.obj.attr & AM_DIR) { /* It is a sub-directory */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->cdir = ld_dword(fs->dirbuf + XDIR_FstClus); /* Sub-directory cluster */ + fs->cdc_scl = dj.obj.sclust; /* Save containing directory information */ + fs->cdc_size = ((DWORD)dj.obj.objsize & 0xFFFFFF00) | dj.obj.stat; + fs->cdc_ofs = dj.blk_ofs; + } else +#endif + { + fs->cdir = ld_clust(fs, dj.dir); /* Sub-directory cluster */ + } + } else { + res = FR_NO_PATH; /* Reached but a file */ + } + } + } + FREE_NAMBUF(); + if (res == FR_NO_FILE) res = FR_NO_PATH; +#if FF_STR_VOLUME_ID == 2 /* Also current drive is changed if in Unix style volume ID */ + if (res == FR_OK) { + for (i = FF_VOLUMES - 1; i && fs != FatFs[i]; i--) ; /* Set current drive */ + CurrVol = (BYTE)i; + } +#endif + } + + LEAVE_FF(fs, res); +} + + +#if FF_FS_RPATH >= 2 +FRESULT f_getcwd ( + TCHAR* buff, /* Pointer to the directory path */ + UINT len /* Size of buff in unit of TCHAR */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + UINT i, n; + DWORD ccl; + TCHAR *tp = buff; +#if FF_VOLUMES >= 2 + UINT vl; +#if FF_STR_VOLUME_ID + const char *vp; +#endif +#endif + FILINFO fno; + DEF_NAMBUF + + + /* Get logical drive */ + buff[0] = 0; /* Set null string to get current volume */ + res = mount_volume((const TCHAR**)&buff, &fs, 0); /* Get current volume */ + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + + /* Follow parent directories and create the path */ + i = len; /* Bottom of buffer (directory stack base) */ + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* (Cannot do getcwd on exFAT and returns root path) */ + dj.obj.sclust = fs->cdir; /* Start to follow upper directory from current directory */ + while ((ccl = dj.obj.sclust) != 0) { /* Repeat while current directory is a sub-directory */ + res = dir_sdi(&dj, 1 * SZDIRE); /* Get parent directory */ + if (res != FR_OK) break; + res = move_window(fs, dj.sect); + if (res != FR_OK) break; + dj.obj.sclust = ld_clust(fs, dj.dir); /* Goto parent directory */ + res = dir_sdi(&dj, 0); + if (res != FR_OK) break; + do { /* Find the entry links to the child directory */ + res = DIR_READ_FILE(&dj); + if (res != FR_OK) break; + if (ccl == ld_clust(fs, dj.dir)) break; /* Found the entry */ + res = dir_next(&dj, 0); + } while (res == FR_OK); + if (res == FR_NO_FILE) res = FR_INT_ERR;/* It cannot be 'not found'. */ + if (res != FR_OK) break; + get_fileinfo(&dj, &fno); /* Get the directory name and push it to the buffer */ + for (n = 0; fno.fname[n]; n++) ; /* Name length */ + if (i < n + 1) { /* Insufficient space to store the path name? */ + res = FR_NOT_ENOUGH_CORE; break; + } + while (n) buff[--i] = fno.fname[--n]; /* Stack the name */ + buff[--i] = '/'; + } + } + if (res == FR_OK) { + if (i == len) buff[--i] = '/'; /* Is it the root-directory? */ +#if FF_VOLUMES >= 2 /* Put drive prefix */ + vl = 0; +#if FF_STR_VOLUME_ID >= 1 /* String volume ID */ + for (n = 0, vp = (const char*)VolumeStr[CurrVol]; vp[n]; n++) ; + if (i >= n + 2) { + if (FF_STR_VOLUME_ID == 2) *tp++ = (TCHAR)'/'; + for (vl = 0; vl < n; *tp++ = (TCHAR)vp[vl], vl++) ; + if (FF_STR_VOLUME_ID == 1) *tp++ = (TCHAR)':'; + vl++; + } +#else /* Numeric volume ID */ + if (i >= 3) { + *tp++ = (TCHAR)'0' + CurrVol; + *tp++ = (TCHAR)':'; + vl = 2; + } +#endif + if (vl == 0) res = FR_NOT_ENOUGH_CORE; +#endif + /* Add current directory path */ + if (res == FR_OK) { + do *tp++ = buff[i++]; while (i < len); /* Copy stacked path string */ + } + } + FREE_NAMBUF(); + } + + *tp = 0; + LEAVE_FF(fs, res); +} + +#endif /* FF_FS_RPATH >= 2 */ +#endif /* FF_FS_RPATH >= 1 */ + + + +#if FF_FS_MINIMIZE <= 2 +/*-----------------------------------------------------------------------*/ +/* Seek File Read/Write Pointer */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_lseek ( + FIL* fp, /* Pointer to the file object */ + FSIZE_t ofs /* File pointer from top of file */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst, bcs; + LBA_t nsect; + FSIZE_t ifptr; +#if FF_USE_FASTSEEK + DWORD cl, pcl, ncl, tcl, tlen, ulen; + DWORD *tbl; + LBA_t dsc; +#endif + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) res = (FRESULT)fp->err; +#if FF_FS_EXFAT && !FF_FS_READONLY + if (res == FR_OK && fs->fs_type == FS_EXFAT) { + res = fill_last_frag(&fp->obj, fp->clust, 0xFFFFFFFF); /* Fill last fragment on the FAT if needed */ + } +#endif + if (res != FR_OK) LEAVE_FF(fs, res); + +#if FF_USE_FASTSEEK + if (fp->cltbl) { /* Fast seek */ + if (ofs == CREATE_LINKMAP) { /* Create CLMT */ + tbl = fp->cltbl; + tlen = *tbl++; ulen = 2; /* Given table size and required table size */ + cl = fp->obj.sclust; /* Origin of the chain */ + if (cl != 0) { + do { + /* Get a fragment */ + tcl = cl; ncl = 0; ulen += 2; /* Top, length and used items */ + do { + pcl = cl; ncl++; + cl = get_fat(&fp->obj, cl); + if (cl <= 1) ABORT(fs, FR_INT_ERR); + if (cl == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + } while (cl == pcl + 1); + if (ulen <= tlen) { /* Store the length and top of the fragment */ + *tbl++ = ncl; *tbl++ = tcl; + } + } while (cl < fs->n_fatent); /* Repeat until end of chain */ + } + *fp->cltbl = ulen; /* Number of items used */ + if (ulen <= tlen) { + *tbl = 0; /* Terminate table */ + } else { + res = FR_NOT_ENOUGH_CORE; /* Given table size is smaller than required */ + } + } else { /* Fast seek */ + if (ofs > fp->obj.objsize) ofs = fp->obj.objsize; /* Clip offset at the file size */ + fp->fptr = ofs; /* Set file pointer */ + if (ofs > 0) { + fp->clust = clmt_clust(fp, ofs - 1); + dsc = clst2sect(fs, fp->clust); + if (dsc == 0) ABORT(fs, FR_INT_ERR); + dsc += (DWORD)((ofs - 1) / SS(fs)) & (fs->csize - 1); + if (fp->fptr % SS(fs) && dsc != fp->sect) { /* Refill sector cache if needed */ +#if !FF_FS_TINY +#if !FF_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->pdrv, fp->buf, dsc, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Load current sector */ +#endif + fp->sect = dsc; + } + } + } + } else +#endif + + /* Normal Seek */ + { +#if FF_FS_EXFAT + if (fs->fs_type != FS_EXFAT && ofs >= 0x100000000) ofs = 0xFFFFFFFF; /* Clip at 4 GiB - 1 if at FATxx */ +#endif + if (ofs > fp->obj.objsize && (FF_FS_READONLY || !(fp->flag & FA_WRITE))) { /* In read-only mode, clip offset with the file size */ + ofs = fp->obj.objsize; + } + ifptr = fp->fptr; + fp->fptr = nsect = 0; + if (ofs > 0) { + bcs = (DWORD)fs->csize * SS(fs); /* Cluster size (byte) */ + if (ifptr > 0 && + (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */ + fp->fptr = (ifptr - 1) & ~(FSIZE_t)(bcs - 1); /* start from the current cluster */ + ofs -= fp->fptr; + clst = fp->clust; + } else { /* When seek to back cluster, */ + clst = fp->obj.sclust; /* start from the first cluster */ +#if !FF_FS_READONLY + if (clst == 0) { /* If no cluster chain, create a new chain */ + clst = create_chain(&fp->obj, 0); + if (clst == 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->obj.sclust = clst; + } +#endif + fp->clust = clst; + } + if (clst != 0) { + while (ofs > bcs) { /* Cluster following loop */ + ofs -= bcs; fp->fptr += bcs; +#if !FF_FS_READONLY + if (fp->flag & FA_WRITE) { /* Check if in write mode or not */ + if (FF_FS_EXFAT && fp->fptr > fp->obj.objsize) { /* No FAT chain object needs correct objsize to generate FAT value */ + fp->obj.objsize = fp->fptr; + fp->flag |= FA_MODIFIED; + } + clst = create_chain(&fp->obj, clst); /* Follow chain with forceed stretch */ + if (clst == 0) { /* Clip file size in case of disk full */ + ofs = 0; break; + } + } else +#endif + { + clst = get_fat(&fp->obj, clst); /* Follow cluster chain if not in write mode */ + } + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + if (clst <= 1 || clst >= fs->n_fatent) ABORT(fs, FR_INT_ERR); + fp->clust = clst; + } + fp->fptr += ofs; + if (ofs % SS(fs)) { + nsect = clst2sect(fs, clst); /* Current sector */ + if (nsect == 0) ABORT(fs, FR_INT_ERR); + nsect += (DWORD)(ofs / SS(fs)); + } + } + } + if (!FF_FS_READONLY && fp->fptr > fp->obj.objsize) { /* Set file change flag if the file size is extended */ + fp->obj.objsize = fp->fptr; + fp->flag |= FA_MODIFIED; + } + if (fp->fptr % SS(fs) && nsect != fp->sect) { /* Fill sector cache if needed */ +#if !FF_FS_TINY +#if !FF_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->pdrv, fp->buf, nsect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); /* Fill sector cache */ +#endif + fp->sect = nsect; + } + } + + LEAVE_FF(fs, res); +} + + + +#if FF_FS_MINIMIZE <= 1 +/*-----------------------------------------------------------------------*/ +/* Create a Directory Object */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_opendir ( + DIR* dp, /* Pointer to directory object to create */ + const TCHAR* path /* Pointer to the directory path */ +) +{ + FRESULT res; + FATFS *fs; + DEF_NAMBUF + + + if (!dp) return FR_INVALID_OBJECT; + + /* Get logical drive */ + res = mount_volume(&path, &fs, 0); + if (res == FR_OK) { + dp->obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(dp, path); /* Follow the path to the directory */ + if (res == FR_OK) { /* Follow completed */ + if (!(dp->fn[NSFLAG] & NS_NONAME)) { /* It is not the origin directory itself */ + if (dp->obj.attr & AM_DIR) { /* This object is a sub-directory */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + dp->obj.c_scl = dp->obj.sclust; /* Get containing directory inforamation */ + dp->obj.c_size = ((DWORD)dp->obj.objsize & 0xFFFFFF00) | dp->obj.stat; + dp->obj.c_ofs = dp->blk_ofs; + init_alloc_info(fs, &dp->obj); /* Get object allocation info */ + } else +#endif + { + dp->obj.sclust = ld_clust(fs, dp->dir); /* Get object allocation info */ + } + } else { /* This object is a file */ + res = FR_NO_PATH; + } + } + if (res == FR_OK) { + dp->obj.id = fs->id; + res = dir_sdi(dp, 0); /* Rewind directory */ +#if FF_FS_LOCK != 0 + if (res == FR_OK) { + if (dp->obj.sclust != 0) { + dp->obj.lockid = inc_lock(dp, 0); /* Lock the sub directory */ + if (!dp->obj.lockid) res = FR_TOO_MANY_OPEN_FILES; + } else { + dp->obj.lockid = 0; /* Root directory need not to be locked */ + } + } +#endif + } + } + FREE_NAMBUF(); + if (res == FR_NO_FILE) res = FR_NO_PATH; + } + if (res != FR_OK) dp->obj.fs = 0; /* Invalidate the directory object if function faild */ + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Close Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_closedir ( + DIR *dp /* Pointer to the directory object to be closed */ +) +{ + FRESULT res; + FATFS *fs; + + + res = validate(&dp->obj, &fs); /* Check validity of the file object */ + if (res == FR_OK) { +#if FF_FS_LOCK != 0 + if (dp->obj.lockid) res = dec_lock(dp->obj.lockid); /* Decrement sub-directory open counter */ + if (res == FR_OK) dp->obj.fs = 0; /* Invalidate directory object */ +#else + dp->obj.fs = 0; /* Invalidate directory object */ +#endif +#if FF_FS_REENTRANT + unlock_fs(fs, FR_OK); /* Unlock volume */ +#endif + } + return res; +} + + + + +/*-----------------------------------------------------------------------*/ +/* Read Directory Entries in Sequence */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_readdir ( + DIR* dp, /* Pointer to the open directory object */ + FILINFO* fno /* Pointer to file information to return */ +) +{ + FRESULT res; + FATFS *fs; + DEF_NAMBUF + + + res = validate(&dp->obj, &fs); /* Check validity of the directory object */ + if (res == FR_OK) { + if (!fno) { + res = dir_sdi(dp, 0); /* Rewind the directory object */ + } else { + INIT_NAMBUF(fs); + res = DIR_READ_FILE(dp); /* Read an item */ + if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory */ + if (res == FR_OK) { /* A valid entry is found */ + get_fileinfo(dp, fno); /* Get the object information */ + res = dir_next(dp, 0); /* Increment index for next */ + if (res == FR_NO_FILE) res = FR_OK; /* Ignore end of directory now */ + } + FREE_NAMBUF(); + } + } + LEAVE_FF(fs, res); +} + + + +#if FF_USE_FIND +/*-----------------------------------------------------------------------*/ +/* Find Next File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_findnext ( + DIR* dp, /* Pointer to the open directory object */ + FILINFO* fno /* Pointer to the file information structure */ +) +{ + FRESULT res; + + + for (;;) { + res = f_readdir(dp, fno); /* Get a directory item */ + if (res != FR_OK || !fno || !fno->fname[0]) break; /* Terminate if any error or end of directory */ + if (pattern_match(dp->pat, fno->fname, 0, FIND_RECURS)) break; /* Test for the file name */ +#if FF_USE_LFN && FF_USE_FIND == 2 + if (pattern_match(dp->pat, fno->altname, 0, FIND_RECURS)) break; /* Test for alternative name if exist */ +#endif + } + return res; +} + + + +/*-----------------------------------------------------------------------*/ +/* Find First File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_findfirst ( + DIR* dp, /* Pointer to the blank directory object */ + FILINFO* fno, /* Pointer to the file information structure */ + const TCHAR* path, /* Pointer to the directory to open */ + const TCHAR* pattern /* Pointer to the matching pattern */ +) +{ + FRESULT res; + + + dp->pat = pattern; /* Save pointer to pattern string */ + res = f_opendir(dp, path); /* Open the target directory */ + if (res == FR_OK) { + res = f_findnext(dp, fno); /* Find the first item */ + } + return res; +} + +#endif /* FF_USE_FIND */ + + + +#if FF_FS_MINIMIZE == 0 +/*-----------------------------------------------------------------------*/ +/* Get File Status */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_stat ( + const TCHAR* path, /* Pointer to the file path */ + FILINFO* fno /* Pointer to file information to return */ +) +{ + FRESULT res; + DIR dj; + DEF_NAMBUF + + + /* Get logical drive */ + res = mount_volume(&path, &dj.obj.fs, 0); + if (res == FR_OK) { + INIT_NAMBUF(dj.obj.fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK) { /* Follow completed */ + if (dj.fn[NSFLAG] & NS_NONAME) { /* It is origin directory */ + res = FR_INVALID_NAME; + } else { /* Found an object */ + if (fno) get_fileinfo(&dj, fno); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(dj.obj.fs, res); +} + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Get Number of Free Clusters */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_getfree ( + const TCHAR* path, /* Logical drive number */ + DWORD* nclst, /* Pointer to a variable to return number of free clusters */ + FATFS** fatfs /* Pointer to return pointer to corresponding filesystem object */ +) +{ + FRESULT res; + FATFS *fs; + DWORD nfree, clst, stat; + LBA_t sect; + UINT i; + FFOBJID obj; + + + /* Get logical drive */ + res = mount_volume(&path, &fs, 0); + if (res == FR_OK) { + *fatfs = fs; /* Return ptr to the fs object */ + /* If free_clst is valid, return it without full FAT scan */ + if (fs->free_clst <= fs->n_fatent - 2) { + *nclst = fs->free_clst; + } else { + /* Scan FAT to obtain number of free clusters */ + nfree = 0; + if (fs->fs_type == FS_FAT12) { /* FAT12: Scan bit field FAT entries */ + clst = 2; obj.fs = fs; + do { + stat = get_fat(&obj, clst); + if (stat == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } + if (stat == 1) { res = FR_INT_ERR; break; } + if (stat == 0) nfree++; + } while (++clst < fs->n_fatent); + } else { +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* exFAT: Scan allocation bitmap */ + BYTE bm; + UINT b; + + clst = fs->n_fatent - 2; /* Number of clusters */ + sect = fs->bitbase; /* Bitmap sector */ + i = 0; /* Offset in the sector */ + do { /* Counts numbuer of bits with zero in the bitmap */ + if (i == 0) { + res = move_window(fs, sect++); + if (res != FR_OK) break; + } + for (b = 8, bm = fs->win[i]; b && clst; b--, clst--) { + if (!(bm & 1)) nfree++; + bm >>= 1; + } + i = (i + 1) % SS(fs); + } while (clst); + } else +#endif + { /* FAT16/32: Scan WORD/DWORD FAT entries */ + clst = fs->n_fatent; /* Number of entries */ + sect = fs->fatbase; /* Top of the FAT */ + i = 0; /* Offset in the sector */ + do { /* Counts numbuer of entries with zero in the FAT */ + if (i == 0) { + res = move_window(fs, sect++); + if (res != FR_OK) break; + } + if (fs->fs_type == FS_FAT16) { + if (ld_word(fs->win + i) == 0) nfree++; + i += 2; + } else { + if ((ld_dword(fs->win + i) & 0x0FFFFFFF) == 0) nfree++; + i += 4; + } + i %= SS(fs); + } while (--clst); + } + } + if (res == FR_OK) { /* Update parameters if succeeded */ + *nclst = nfree; /* Return the free clusters */ + fs->free_clst = nfree; /* Now free_clst is valid */ + fs->fsi_flag |= 1; /* FAT32: FSInfo is to be updated */ + } + } + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Truncate File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_truncate ( + FIL* fp /* Pointer to the file object */ +) +{ + FRESULT res; + FATFS *fs; + DWORD ncl; + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (!(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + if (fp->fptr < fp->obj.objsize) { /* Process when fptr is not on the eof */ + if (fp->fptr == 0) { /* When set file size to zero, remove entire cluster chain */ + res = remove_chain(&fp->obj, fp->obj.sclust, 0); + fp->obj.sclust = 0; + } else { /* When truncate a part of the file, remove remaining clusters */ + ncl = get_fat(&fp->obj, fp->clust); + res = FR_OK; + if (ncl == 0xFFFFFFFF) res = FR_DISK_ERR; + if (ncl == 1) res = FR_INT_ERR; + if (res == FR_OK && ncl < fs->n_fatent) { + res = remove_chain(&fp->obj, ncl, fp->clust); + } + } + fp->obj.objsize = fp->fptr; /* Set file size to current read/write point */ + fp->flag |= FA_MODIFIED; +#if !FF_FS_TINY + if (res == FR_OK && (fp->flag & FA_DIRTY)) { + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) { + res = FR_DISK_ERR; + } else { + fp->flag &= (BYTE)~FA_DIRTY; + } + } +#endif + if (res != FR_OK) ABORT(fs, res); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Delete a File/Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_unlink ( + const TCHAR* path /* Pointer to the file or directory path */ +) +{ + FRESULT res; + DIR dj, sdj; + DWORD dclst = 0; + FATFS *fs; +#if FF_FS_EXFAT + FFOBJID obj; +#endif + DEF_NAMBUF + + + /* Get logical drive */ + res = mount_volume(&path, &fs, FA_WRITE); + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (FF_FS_RPATH && res == FR_OK && (dj.fn[NSFLAG] & NS_DOT)) { + res = FR_INVALID_NAME; /* Cannot remove dot entry */ + } +#if FF_FS_LOCK != 0 + if (res == FR_OK) res = chk_lock(&dj, 2); /* Check if it is an open object */ +#endif + if (res == FR_OK) { /* The object is accessible */ + if (dj.fn[NSFLAG] & NS_NONAME) { + res = FR_INVALID_NAME; /* Cannot remove the origin directory */ + } else { + if (dj.obj.attr & AM_RDO) { + res = FR_DENIED; /* Cannot remove R/O object */ + } + } + if (res == FR_OK) { +#if FF_FS_EXFAT + obj.fs = fs; + if (fs->fs_type == FS_EXFAT) { + init_alloc_info(fs, &obj); + dclst = obj.sclust; + } else +#endif + { + dclst = ld_clust(fs, dj.dir); + } + if (dj.obj.attr & AM_DIR) { /* Is it a sub-directory? */ +#if FF_FS_RPATH != 0 + if (dclst == fs->cdir) { /* Is it the current directory? */ + res = FR_DENIED; + } else +#endif + { + sdj.obj.fs = fs; /* Open the sub-directory */ + sdj.obj.sclust = dclst; +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + sdj.obj.objsize = obj.objsize; + sdj.obj.stat = obj.stat; + } +#endif + res = dir_sdi(&sdj, 0); + if (res == FR_OK) { + res = DIR_READ_FILE(&sdj); /* Test if the directory is empty */ + if (res == FR_OK) res = FR_DENIED; /* Not empty? */ + if (res == FR_NO_FILE) res = FR_OK; /* Empty? */ + } + } + } + } + if (res == FR_OK) { + res = dir_remove(&dj); /* Remove the directory entry */ + if (res == FR_OK && dclst != 0) { /* Remove the cluster chain if exist */ +#if FF_FS_EXFAT + res = remove_chain(&obj, dclst, 0); +#else + res = remove_chain(&dj.obj, dclst, 0); +#endif + } + if (res == FR_OK) res = sync_fs(fs); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Create a Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_mkdir ( + const TCHAR* path /* Pointer to the directory path */ +) +{ + FRESULT res; + DIR dj; + FFOBJID sobj; + FATFS *fs; + DWORD dcl, pcl, tm; + DEF_NAMBUF + + + res = mount_volume(&path, &fs, FA_WRITE); /* Get logical drive */ + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK) res = FR_EXIST; /* Name collision? */ + if (FF_FS_RPATH && res == FR_NO_FILE && (dj.fn[NSFLAG] & NS_DOT)) { /* Invalid name? */ + res = FR_INVALID_NAME; + } + if (res == FR_NO_FILE) { /* It is clear to create a new directory */ + sobj.fs = fs; /* New object id to create a new chain */ + dcl = create_chain(&sobj, 0); /* Allocate a cluster for the new directory */ + res = FR_OK; + if (dcl == 0) res = FR_DENIED; /* No space to allocate a new cluster? */ + if (dcl == 1) res = FR_INT_ERR; /* Any insanity? */ + if (dcl == 0xFFFFFFFF) res = FR_DISK_ERR; /* Disk error? */ + tm = GET_FATTIME(); + if (res == FR_OK) { + res = dir_clear(fs, dcl); /* Clean up the new table */ + if (res == FR_OK) { + if (!FF_FS_EXFAT || fs->fs_type != FS_EXFAT) { /* Create dot entries (FAT only) */ + memset(fs->win + DIR_Name, ' ', 11); /* Create "." entry */ + fs->win[DIR_Name] = '.'; + fs->win[DIR_Attr] = AM_DIR; + st_dword(fs->win + DIR_ModTime, tm); + st_clust(fs, fs->win, dcl); + memcpy(fs->win + SZDIRE, fs->win, SZDIRE); /* Create ".." entry */ + fs->win[SZDIRE + 1] = '.'; pcl = dj.obj.sclust; + st_clust(fs, fs->win + SZDIRE, pcl); + fs->wflag = 1; + } + res = dir_register(&dj); /* Register the object to the parent directoy */ + } + } + if (res == FR_OK) { +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ + st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Created time */ + st_dword(fs->dirbuf + XDIR_FstClus, dcl); /* Table start cluster */ + st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)fs->csize * SS(fs)); /* Directory size needs to be valid */ + st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)fs->csize * SS(fs)); + fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag */ + fs->dirbuf[XDIR_Attr] = AM_DIR; /* Attribute */ + res = store_xdir(&dj); + } else +#endif + { + st_dword(dj.dir + DIR_ModTime, tm); /* Created time */ + st_clust(fs, dj.dir, dcl); /* Table start cluster */ + dj.dir[DIR_Attr] = AM_DIR; /* Attribute */ + fs->wflag = 1; + } + if (res == FR_OK) { + res = sync_fs(fs); + } + } else { + remove_chain(&sobj, dcl, 0); /* Could not register, remove the allocated cluster */ + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Rename a File/Directory */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_rename ( + const TCHAR* path_old, /* Pointer to the object name to be renamed */ + const TCHAR* path_new /* Pointer to the new name */ +) +{ + FRESULT res; + DIR djo, djn; + FATFS *fs; + BYTE buf[FF_FS_EXFAT ? SZDIRE * 2 : SZDIRE], *dir; + LBA_t sect; + DEF_NAMBUF + + + get_ldnumber(&path_new); /* Snip the drive number of new name off */ + res = mount_volume(&path_old, &fs, FA_WRITE); /* Get logical drive of the old object */ + if (res == FR_OK) { + djo.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&djo, path_old); /* Check old object */ + if (res == FR_OK && (djo.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check validity of name */ +#if FF_FS_LOCK != 0 + if (res == FR_OK) { + res = chk_lock(&djo, 2); + } +#endif + if (res == FR_OK) { /* Object to be renamed is found */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* At exFAT volume */ + BYTE nf, nn; + WORD nh; + + memcpy(buf, fs->dirbuf, SZDIRE * 2); /* Save 85+C0 entry of old object */ + memcpy(&djn, &djo, sizeof djo); + res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } + if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ + res = dir_register(&djn); /* Register the new entry */ + if (res == FR_OK) { + nf = fs->dirbuf[XDIR_NumSec]; nn = fs->dirbuf[XDIR_NumName]; + nh = ld_word(fs->dirbuf + XDIR_NameHash); + memcpy(fs->dirbuf, buf, SZDIRE * 2); /* Restore 85+C0 entry */ + fs->dirbuf[XDIR_NumSec] = nf; fs->dirbuf[XDIR_NumName] = nn; + st_word(fs->dirbuf + XDIR_NameHash, nh); + if (!(fs->dirbuf[XDIR_Attr] & AM_DIR)) fs->dirbuf[XDIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */ +/* Start of critical section where an interruption can cause a cross-link */ + res = store_xdir(&djn); + } + } + } else +#endif + { /* At FAT/FAT32 volume */ + memcpy(buf, djo.dir, SZDIRE); /* Save directory entry of the object */ + memcpy(&djn, &djo, sizeof (DIR)); /* Duplicate the directory object */ + res = follow_path(&djn, path_new); /* Make sure if new object name is not in use */ + if (res == FR_OK) { /* Is new name already in use by any other object? */ + res = (djn.obj.sclust == djo.obj.sclust && djn.dptr == djo.dptr) ? FR_NO_FILE : FR_EXIST; + } + if (res == FR_NO_FILE) { /* It is a valid path and no name collision */ + res = dir_register(&djn); /* Register the new entry */ + if (res == FR_OK) { + dir = djn.dir; /* Copy directory entry of the object except name */ + memcpy(dir + 13, buf + 13, SZDIRE - 13); + dir[DIR_Attr] = buf[DIR_Attr]; + if (!(dir[DIR_Attr] & AM_DIR)) dir[DIR_Attr] |= AM_ARC; /* Set archive attribute if it is a file */ + fs->wflag = 1; + if ((dir[DIR_Attr] & AM_DIR) && djo.obj.sclust != djn.obj.sclust) { /* Update .. entry in the sub-directory if needed */ + sect = clst2sect(fs, ld_clust(fs, dir)); + if (sect == 0) { + res = FR_INT_ERR; + } else { +/* Start of critical section where an interruption can cause a cross-link */ + res = move_window(fs, sect); + dir = fs->win + SZDIRE * 1; /* Ptr to .. entry */ + if (res == FR_OK && dir[1] == '.') { + st_clust(fs, dir, djn.obj.sclust); + fs->wflag = 1; + } + } + } + } + } + } + if (res == FR_OK) { + res = dir_remove(&djo); /* Remove old entry */ + if (res == FR_OK) { + res = sync_fs(fs); + } + } +/* End of the critical section */ + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + +#endif /* !FF_FS_READONLY */ +#endif /* FF_FS_MINIMIZE == 0 */ +#endif /* FF_FS_MINIMIZE <= 1 */ +#endif /* FF_FS_MINIMIZE <= 2 */ + + + +#if FF_USE_CHMOD && !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Change Attribute */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_chmod ( + const TCHAR* path, /* Pointer to the file path */ + BYTE attr, /* Attribute bits */ + BYTE mask /* Attribute mask to change */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + + res = mount_volume(&path, &fs, FA_WRITE); /* Get logical drive */ + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ + if (res == FR_OK) { + mask &= AM_RDO|AM_HID|AM_SYS|AM_ARC; /* Valid attribute mask */ +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + fs->dirbuf[XDIR_Attr] = (attr & mask) | (fs->dirbuf[XDIR_Attr] & (BYTE)~mask); /* Apply attribute change */ + res = store_xdir(&dj); + } else +#endif + { + dj.dir[DIR_Attr] = (attr & mask) | (dj.dir[DIR_Attr] & (BYTE)~mask); /* Apply attribute change */ + fs->wflag = 1; + } + if (res == FR_OK) { + res = sync_fs(fs); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Change Timestamp */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_utime ( + const TCHAR* path, /* Pointer to the file/directory name */ + const FILINFO* fno /* Pointer to the timestamp to be set */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + DEF_NAMBUF + + + res = mount_volume(&path, &fs, FA_WRITE); /* Get logical drive */ + if (res == FR_OK) { + dj.obj.fs = fs; + INIT_NAMBUF(fs); + res = follow_path(&dj, path); /* Follow the file path */ + if (res == FR_OK && (dj.fn[NSFLAG] & (NS_DOT | NS_NONAME))) res = FR_INVALID_NAME; /* Check object validity */ + if (res == FR_OK) { +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + st_dword(fs->dirbuf + XDIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); + res = store_xdir(&dj); + } else +#endif + { + st_dword(dj.dir + DIR_ModTime, (DWORD)fno->fdate << 16 | fno->ftime); + fs->wflag = 1; + } + if (res == FR_OK) { + res = sync_fs(fs); + } + } + FREE_NAMBUF(); + } + + LEAVE_FF(fs, res); +} + +#endif /* FF_USE_CHMOD && !FF_FS_READONLY */ + + + +#if FF_USE_LABEL +/*-----------------------------------------------------------------------*/ +/* Get Volume Label */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_getlabel ( + const TCHAR* path, /* Logical drive number */ + TCHAR* label, /* Buffer to store the volume label */ + DWORD* vsn /* Variable to store the volume serial number */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + UINT si, di; + WCHAR wc; + + /* Get logical drive */ + res = mount_volume(&path, &fs, 0); + + /* Get volume label */ + if (res == FR_OK && label) { + dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */ + res = dir_sdi(&dj, 0); + if (res == FR_OK) { + res = DIR_READ_LABEL(&dj); /* Find a volume label entry */ + if (res == FR_OK) { +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + WCHAR hs; + UINT nw; + + for (si = di = hs = 0; si < dj.dir[XDIR_NumLabel]; si++) { /* Extract volume label from 83 entry */ + wc = ld_word(dj.dir + XDIR_Label + si * 2); + if (hs == 0 && IsSurrogate(wc)) { /* Is the code a surrogate? */ + hs = wc; continue; + } + nw = put_utf((DWORD)hs << 16 | wc, &label[di], 4); /* Store it in API encoding */ + if (nw == 0) { di = 0; break; } /* Encode error? */ + di += nw; + hs = 0; + } + if (hs != 0) di = 0; /* Broken surrogate pair? */ + label[di] = 0; + } else +#endif + { + si = di = 0; /* Extract volume label from AM_VOL entry */ + while (si < 11) { + wc = dj.dir[si++]; +#if FF_USE_LFN && FF_LFN_UNICODE >= 1 /* Unicode output */ + if (dbc_1st((BYTE)wc) && si < 11) wc = wc << 8 | dj.dir[si++]; /* Is it a DBC? */ + wc = ff_oem2uni(wc, CODEPAGE); /* Convert it into Unicode */ + if (wc == 0) { di = 0; break; } /* Invalid char in current code page? */ + di += put_utf(wc, &label[di], 4); /* Store it in Unicode */ +#else /* ANSI/OEM output */ + label[di++] = (TCHAR)wc; +#endif + } + do { /* Truncate trailing spaces */ + label[di] = 0; + if (di == 0) break; + } while (label[--di] == ' '); + } + } + } + if (res == FR_NO_FILE) { /* No label entry and return nul string */ + label[0] = 0; + res = FR_OK; + } + } + + /* Get volume serial number */ + if (res == FR_OK && vsn) { + res = move_window(fs, fs->volbase); + if (res == FR_OK) { + switch (fs->fs_type) { + case FS_EXFAT: + di = BPB_VolIDEx; + break; + + case FS_FAT32: + di = BS_VolID32; + break; + + default: + di = BS_VolID; + } + *vsn = ld_dword(fs->win + di); + } + } + + LEAVE_FF(fs, res); +} + + + +#if !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Set Volume Label */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_setlabel ( + const TCHAR* label /* Volume label to set with heading logical drive number */ +) +{ + FRESULT res; + DIR dj; + FATFS *fs; + BYTE dirvn[22]; + UINT di; + WCHAR wc; + static const char badchr[18] = "+.,;=[]" "/*:<>|\\\"\?\x7F"; /* [0..16] for FAT, [7..16] for exFAT */ +#if FF_USE_LFN + DWORD dc; +#endif + + /* Get logical drive */ + res = mount_volume(&label, &fs, FA_WRITE); + if (res != FR_OK) LEAVE_FF(fs, res); + +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { /* On the exFAT volume */ + memset(dirvn, 0, 22); + di = 0; + while ((UINT)*label >= ' ') { /* Create volume label */ + dc = tchar2uni(&label); /* Get a Unicode character */ + if (dc >= 0x10000) { + if (dc == 0xFFFFFFFF || di >= 10) { /* Wrong surrogate or buffer overflow */ + dc = 0; + } else { + st_word(dirvn + di * 2, (WCHAR)(dc >> 16)); di++; + } + } + if (dc == 0 || strchr(&badchr[7], (int)dc) || di >= 11) { /* Check validity of the volume label */ + LEAVE_FF(fs, FR_INVALID_NAME); + } + st_word(dirvn + di * 2, (WCHAR)dc); di++; + } + } else +#endif + { /* On the FAT/FAT32 volume */ + memset(dirvn, ' ', 11); + di = 0; + while ((UINT)*label >= ' ') { /* Create volume label */ +#if FF_USE_LFN + dc = tchar2uni(&label); + wc = (dc < 0x10000) ? ff_uni2oem(ff_wtoupper(dc), CODEPAGE) : 0; +#else /* ANSI/OEM input */ + wc = (BYTE)*label++; + if (dbc_1st((BYTE)wc)) wc = dbc_2nd((BYTE)*label) ? wc << 8 | (BYTE)*label++ : 0; + if (IsLower(wc)) wc -= 0x20; /* To upper ASCII characters */ +#if FF_CODE_PAGE == 0 + if (ExCvt && wc >= 0x80) wc = ExCvt[wc - 0x80]; /* To upper extended characters (SBCS cfg) */ +#elif FF_CODE_PAGE < 900 + if (wc >= 0x80) wc = ExCvt[wc - 0x80]; /* To upper extended characters (SBCS cfg) */ +#endif +#endif + if (wc == 0 || strchr(&badchr[0], (int)wc) || di >= (UINT)((wc >= 0x100) ? 10 : 11)) { /* Reject invalid characters for volume label */ + LEAVE_FF(fs, FR_INVALID_NAME); + } + if (wc >= 0x100) dirvn[di++] = (BYTE)(wc >> 8); + dirvn[di++] = (BYTE)wc; + } + if (dirvn[0] == DDEM) LEAVE_FF(fs, FR_INVALID_NAME); /* Reject illegal name (heading DDEM) */ + while (di && dirvn[di - 1] == ' ') di--; /* Snip trailing spaces */ + } + + /* Set volume label */ + dj.obj.fs = fs; dj.obj.sclust = 0; /* Open root directory */ + res = dir_sdi(&dj, 0); + if (res == FR_OK) { + res = DIR_READ_LABEL(&dj); /* Get volume label entry */ + if (res == FR_OK) { + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { + dj.dir[XDIR_NumLabel] = (BYTE)di; /* Change the volume label */ + memcpy(dj.dir + XDIR_Label, dirvn, 22); + } else { + if (di != 0) { + memcpy(dj.dir, dirvn, 11); /* Change the volume label */ + } else { + dj.dir[DIR_Name] = DDEM; /* Remove the volume label */ + } + } + fs->wflag = 1; + res = sync_fs(fs); + } else { /* No volume label entry or an error */ + if (res == FR_NO_FILE) { + res = FR_OK; + if (di != 0) { /* Create a volume label entry */ + res = dir_alloc(&dj, 1); /* Allocate an entry */ + if (res == FR_OK) { + memset(dj.dir, 0, SZDIRE); /* Clean the entry */ + if (FF_FS_EXFAT && fs->fs_type == FS_EXFAT) { + dj.dir[XDIR_Type] = ET_VLABEL; /* Create volume label entry */ + dj.dir[XDIR_NumLabel] = (BYTE)di; + memcpy(dj.dir + XDIR_Label, dirvn, 22); + } else { + dj.dir[DIR_Attr] = AM_VOL; /* Create volume label entry */ + memcpy(dj.dir, dirvn, 11); + } + fs->wflag = 1; + res = sync_fs(fs); + } + } + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_LABEL */ + + + +#if FF_USE_EXPAND && !FF_FS_READONLY +/*-----------------------------------------------------------------------*/ +/* Allocate a Contiguous Blocks to the File */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_expand ( + FIL* fp, /* Pointer to the file object */ + FSIZE_t fsz, /* File size to be expanded to */ + BYTE opt /* Operation mode 0:Find and prepare or 1:Find and allocate */ +) +{ + FRESULT res; + FATFS *fs; + DWORD n, clst, stcl, scl, ncl, tcl, lclst; + + + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (fsz == 0 || fp->obj.objsize != 0 || !(fp->flag & FA_WRITE)) LEAVE_FF(fs, FR_DENIED); +#if FF_FS_EXFAT + if (fs->fs_type != FS_EXFAT && fsz >= 0x100000000) LEAVE_FF(fs, FR_DENIED); /* Check if in size limit */ +#endif + n = (DWORD)fs->csize * SS(fs); /* Cluster size */ + tcl = (DWORD)(fsz / n) + ((fsz & (n - 1)) ? 1 : 0); /* Number of clusters required */ + stcl = fs->last_clst; lclst = 0; + if (stcl < 2 || stcl >= fs->n_fatent) stcl = 2; + +#if FF_FS_EXFAT + if (fs->fs_type == FS_EXFAT) { + scl = find_bitmap(fs, stcl, tcl); /* Find a contiguous cluster block */ + if (scl == 0) res = FR_DENIED; /* No contiguous cluster block was found */ + if (scl == 0xFFFFFFFF) res = FR_DISK_ERR; + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ + res = change_bitmap(fs, scl, tcl, 1); /* Mark the cluster block 'in use' */ + lclst = scl + tcl - 1; + } else { /* Set it as suggested point for next allocation */ + lclst = scl - 1; + } + } + } else +#endif + { + scl = clst = stcl; ncl = 0; + for (;;) { /* Find a contiguous cluster block */ + n = get_fat(&fp->obj, clst); + if (++clst >= fs->n_fatent) clst = 2; + if (n == 1) { res = FR_INT_ERR; break; } + if (n == 0xFFFFFFFF) { res = FR_DISK_ERR; break; } + if (n == 0) { /* Is it a free cluster? */ + if (++ncl == tcl) break; /* Break if a contiguous cluster block is found */ + } else { + scl = clst; ncl = 0; /* Not a free cluster */ + } + if (clst == stcl) { res = FR_DENIED; break; } /* No contiguous cluster? */ + } + if (res == FR_OK) { /* A contiguous free area is found */ + if (opt) { /* Allocate it now */ + for (clst = scl, n = tcl; n; clst++, n--) { /* Create a cluster chain on the FAT */ + res = put_fat(fs, clst, (n == 1) ? 0xFFFFFFFF : clst + 1); + if (res != FR_OK) break; + lclst = clst; + } + } else { /* Set it as suggested point for next allocation */ + lclst = scl - 1; + } + } + } + + if (res == FR_OK) { + fs->last_clst = lclst; /* Set suggested start cluster to start next */ + if (opt) { /* Is it allocated now? */ + fp->obj.sclust = scl; /* Update object allocation information */ + fp->obj.objsize = fsz; + if (FF_FS_EXFAT) fp->obj.stat = 2; /* Set status 'contiguous chain' */ + fp->flag |= FA_MODIFIED; + if (fs->free_clst <= fs->n_fatent - 2) { /* Update FSINFO */ + fs->free_clst -= tcl; + fs->fsi_flag |= 1; + } + } + } + + LEAVE_FF(fs, res); +} + +#endif /* FF_USE_EXPAND && !FF_FS_READONLY */ + + + +#if FF_USE_FORWARD +/*-----------------------------------------------------------------------*/ +/* Forward Data to the Stream Directly */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_forward ( + FIL* fp, /* Pointer to the file object */ + UINT (*func)(const BYTE*,UINT), /* Pointer to the streaming function */ + UINT btf, /* Number of bytes to forward */ + UINT* bf /* Pointer to number of bytes forwarded */ +) +{ + FRESULT res; + FATFS *fs; + DWORD clst; + LBA_t sect; + FSIZE_t remain; + UINT rcnt, csect; + BYTE *dbuf; + + + *bf = 0; /* Clear transfer byte counter */ + res = validate(&fp->obj, &fs); /* Check validity of the file object */ + if (res != FR_OK || (res = (FRESULT)fp->err) != FR_OK) LEAVE_FF(fs, res); + if (!(fp->flag & FA_READ)) LEAVE_FF(fs, FR_DENIED); /* Check access mode */ + + remain = fp->obj.objsize - fp->fptr; + if (btf > remain) btf = (UINT)remain; /* Truncate btf by remaining bytes */ + + for ( ; btf > 0 && (*func)(0, 0); fp->fptr += rcnt, *bf += rcnt, btf -= rcnt) { /* Repeat until all data transferred or stream goes busy */ + csect = (UINT)(fp->fptr / SS(fs) & (fs->csize - 1)); /* Sector offset in the cluster */ + if (fp->fptr % SS(fs) == 0) { /* On the sector boundary? */ + if (csect == 0) { /* On the cluster boundary? */ + clst = (fp->fptr == 0) ? /* On the top of the file? */ + fp->obj.sclust : get_fat(&fp->obj, fp->clust); + if (clst <= 1) ABORT(fs, FR_INT_ERR); + if (clst == 0xFFFFFFFF) ABORT(fs, FR_DISK_ERR); + fp->clust = clst; /* Update current cluster */ + } + } + sect = clst2sect(fs, fp->clust); /* Get current data sector */ + if (sect == 0) ABORT(fs, FR_INT_ERR); + sect += csect; +#if FF_FS_TINY + if (move_window(fs, sect) != FR_OK) ABORT(fs, FR_DISK_ERR); /* Move sector window to the file data */ + dbuf = fs->win; +#else + if (fp->sect != sect) { /* Fill sector cache with file data */ +#if !FF_FS_READONLY + if (fp->flag & FA_DIRTY) { /* Write-back dirty sector cache */ + if (disk_write(fs->pdrv, fp->buf, fp->sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + fp->flag &= (BYTE)~FA_DIRTY; + } +#endif + if (disk_read(fs->pdrv, fp->buf, sect, 1) != RES_OK) ABORT(fs, FR_DISK_ERR); + } + dbuf = fp->buf; +#endif + fp->sect = sect; + rcnt = SS(fs) - (UINT)fp->fptr % SS(fs); /* Number of bytes remains in the sector */ + if (rcnt > btf) rcnt = btf; /* Clip it by btr if needed */ + rcnt = (*func)(dbuf + ((UINT)fp->fptr % SS(fs)), rcnt); /* Forward the file data */ + if (rcnt == 0) ABORT(fs, FR_INT_ERR); + } + + LEAVE_FF(fs, FR_OK); +} +#endif /* FF_USE_FORWARD */ + + + +#if !FF_FS_READONLY && FF_USE_MKFS +/*-----------------------------------------------------------------------*/ +/* Create FAT/exFAT volume (with sub-functions) */ +/*-----------------------------------------------------------------------*/ + +#define N_SEC_TRACK 63 /* Sectors per track for determination of drive CHS */ +#define GPT_ALIGN 0x100000 /* Alignment of partitions in GPT [byte] (>=128KB) */ +#define GPT_ITEMS 128 /* Number of GPT table size (>=128, sector aligned) */ + + +/* Create partitions on the physical drive in format of MBR or GPT */ + +static FRESULT create_partition ( + BYTE drv, /* Physical drive number */ + const LBA_t plst[], /* Partition list */ + BYTE sys, /* System ID (for only MBR, temp setting) */ + BYTE* buf /* Working buffer for a sector */ +) +{ + UINT i, cy; + LBA_t sz_drv; + DWORD sz_drv32, nxt_alloc32, sz_part32; + BYTE *pte; + BYTE hd, n_hd, sc, n_sc; + + /* Get physical drive size */ + if (disk_ioctl(drv, GET_SECTOR_COUNT, &sz_drv) != RES_OK) return FR_DISK_ERR; + +#if FF_LBA64 + if (sz_drv >= FF_MIN_GPT) { /* Create partitions in GPT format */ + WORD ss; + UINT sz_ptbl, pi, si, ofs; + DWORD bcc, rnd, align; + QWORD nxt_alloc, sz_part, sz_pool, top_bpt; + static const BYTE gpt_mbr[16] = {0x00, 0x00, 0x02, 0x00, 0xEE, 0xFE, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF}; + +#if FF_MAX_SS != FF_MIN_SS + if (disk_ioctl(drv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; /* Get sector size */ + if (ss > FF_MAX_SS || ss < FF_MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; +#else + ss = FF_MAX_SS; +#endif + rnd = (DWORD)sz_drv + GET_FATTIME(); /* Random seed */ + align = GPT_ALIGN / ss; /* Partition alignment for GPT [sector] */ + sz_ptbl = GPT_ITEMS * SZ_GPTE / ss; /* Size of partition table [sector] */ + top_bpt = sz_drv - sz_ptbl - 1; /* Backup partiiton table start sector */ + nxt_alloc = 2 + sz_ptbl; /* First allocatable sector */ + sz_pool = top_bpt - nxt_alloc; /* Size of allocatable area */ + bcc = 0xFFFFFFFF; sz_part = 1; + pi = si = 0; /* partition table index, size table index */ + do { + if (pi * SZ_GPTE % ss == 0) memset(buf, 0, ss); /* Clean the buffer if needed */ + if (sz_part != 0) { /* Is the size table not termintated? */ + nxt_alloc = (nxt_alloc + align - 1) & ((QWORD)0 - align); /* Align partition start */ + sz_part = plst[si++]; /* Get a partition size */ + if (sz_part <= 100) { /* Is the size in percentage? */ + sz_part = sz_pool * sz_part / 100; + sz_part = (sz_part + align - 1) & ((QWORD)0 - align); /* Align partition end (only if in percentage) */ + } + if (nxt_alloc + sz_part > top_bpt) { /* Clip the size at end of the pool */ + sz_part = (nxt_alloc < top_bpt) ? top_bpt - nxt_alloc : 0; + } + } + if (sz_part != 0) { /* Add a partition? */ + ofs = pi * SZ_GPTE % ss; + memcpy(buf + ofs + GPTE_PtGuid, GUID_MS_Basic, 16); /* Set partition GUID (Microsoft Basic Data) */ + rnd = make_rand(rnd, buf + ofs + GPTE_UpGuid, 16); /* Set unique partition GUID */ + st_qword(buf + ofs + GPTE_FstLba, nxt_alloc); /* Set partition start sector */ + st_qword(buf + ofs + GPTE_LstLba, nxt_alloc + sz_part - 1); /* Set partition end sector */ + nxt_alloc += sz_part; /* Next allocatable sector */ + } + if ((pi + 1) * SZ_GPTE % ss == 0) { /* Write the buffer if it is filled up */ + for (i = 0; i < ss; bcc = crc32(bcc, buf[i++])) ; /* Calculate table check sum */ + if (disk_write(drv, buf, 2 + pi * SZ_GPTE / ss, 1) != RES_OK) return FR_DISK_ERR; /* Write to primary table */ + if (disk_write(drv, buf, top_bpt + pi * SZ_GPTE / ss, 1) != RES_OK) return FR_DISK_ERR; /* Write to secondary table */ + } + } while (++pi < GPT_ITEMS); + + /* Create primary GPT header */ + memset(buf, 0, ss); + memcpy(buf + GPTH_Sign, "EFI PART" "\0\0\1\0" "\x5C\0\0", 16); /* Signature, version (1.0) and size (92) */ + st_dword(buf + GPTH_PtBcc, ~bcc); /* Table check sum */ + st_qword(buf + GPTH_CurLba, 1); /* LBA of this header */ + st_qword(buf + GPTH_BakLba, sz_drv - 1); /* LBA of secondary header */ + st_qword(buf + GPTH_FstLba, 2 + sz_ptbl); /* LBA of first allocatable sector */ + st_qword(buf + GPTH_LstLba, top_bpt - 1); /* LBA of last allocatable sector */ + st_dword(buf + GPTH_PteSize, SZ_GPTE); /* Size of a table entry */ + st_dword(buf + GPTH_PtNum, GPT_ITEMS); /* Number of table entries */ + st_dword(buf + GPTH_PtOfs, 2); /* LBA of this table */ + rnd = make_rand(rnd, buf + GPTH_DskGuid, 16); /* Disk GUID */ + for (i = 0, bcc= 0xFFFFFFFF; i < 92; bcc = crc32(bcc, buf[i++])) ; /* Calculate header check sum */ + st_dword(buf + GPTH_Bcc, ~bcc); /* Header check sum */ + if (disk_write(drv, buf, 1, 1) != RES_OK) return FR_DISK_ERR; + + /* Create secondary GPT header */ + st_qword(buf + GPTH_CurLba, sz_drv - 1); /* LBA of this header */ + st_qword(buf + GPTH_BakLba, 1); /* LBA of primary header */ + st_qword(buf + GPTH_PtOfs, top_bpt); /* LBA of this table */ + st_dword(buf + GPTH_Bcc, 0); + for (i = 0, bcc= 0xFFFFFFFF; i < 92; bcc = crc32(bcc, buf[i++])) ; /* Calculate header check sum */ + st_dword(buf + GPTH_Bcc, ~bcc); /* Header check sum */ + if (disk_write(drv, buf, sz_drv - 1, 1) != RES_OK) return FR_DISK_ERR; + + /* Create protective MBR */ + memset(buf, 0, ss); + memcpy(buf + MBR_Table, gpt_mbr, 16); /* Create a GPT partition */ + st_word(buf + BS_55AA, 0xAA55); + if (disk_write(drv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; + + } else +#endif + { /* Create partitions in MBR format */ + sz_drv32 = (DWORD)sz_drv; + n_sc = N_SEC_TRACK; /* Determine drive CHS without any consideration of the drive geometry */ + for (n_hd = 8; n_hd != 0 && sz_drv32 / n_hd / n_sc > 1024; n_hd *= 2) ; + if (n_hd == 0) n_hd = 255; /* Number of heads needs to be <256 */ + + memset(buf, 0, FF_MAX_SS); /* Clear MBR */ + pte = buf + MBR_Table; /* Partition table in the MBR */ + for (i = 0, nxt_alloc32 = n_sc; i < 4 && nxt_alloc32 != 0 && nxt_alloc32 < sz_drv32; i++, nxt_alloc32 += sz_part32) { + sz_part32 = (DWORD)plst[i]; /* Get partition size */ + if (sz_part32 <= 100) sz_part32 = (sz_part32 == 100) ? sz_drv32 : sz_drv32 / 100 * sz_part32; /* Size in percentage? */ + if (nxt_alloc32 + sz_part32 > sz_drv32 || nxt_alloc32 + sz_part32 < nxt_alloc32) sz_part32 = sz_drv32 - nxt_alloc32; /* Clip at drive size */ + if (sz_part32 == 0) break; /* End of table or no sector to allocate? */ + + st_dword(pte + PTE_StLba, nxt_alloc32); /* Start LBA */ + st_dword(pte + PTE_SizLba, sz_part32); /* Number of sectors */ + pte[PTE_System] = sys; /* System type */ + + cy = (UINT)(nxt_alloc32 / n_sc / n_hd); /* Start cylinder */ + hd = (BYTE)(nxt_alloc32 / n_sc % n_hd); /* Start head */ + sc = (BYTE)(nxt_alloc32 % n_sc + 1); /* Start sector */ + pte[PTE_StHead] = hd; + pte[PTE_StSec] = (BYTE)((cy >> 2 & 0xC0) | sc); + pte[PTE_StCyl] = (BYTE)cy; + + cy = (UINT)((nxt_alloc32 + sz_part32 - 1) / n_sc / n_hd); /* End cylinder */ + hd = (BYTE)((nxt_alloc32 + sz_part32 - 1) / n_sc % n_hd); /* End head */ + sc = (BYTE)((nxt_alloc32 + sz_part32 - 1) % n_sc + 1); /* End sector */ + pte[PTE_EdHead] = hd; + pte[PTE_EdSec] = (BYTE)((cy >> 2 & 0xC0) | sc); + pte[PTE_EdCyl] = (BYTE)cy; + + pte += SZ_PTE; /* Next entry */ + } + + st_word(buf + BS_55AA, 0xAA55); /* MBR signature */ + if (disk_write(drv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Write it to the MBR */ + } + + return FR_OK; +} + + + +FRESULT f_mkfs ( + const TCHAR* path, /* Logical drive number */ + const MKFS_PARM* opt, /* Format options */ + void* work, /* Pointer to working buffer (null: use heap memory) */ + UINT len /* Size of working buffer [byte] */ +) +{ + static const WORD cst[] = {1, 4, 16, 64, 256, 512, 0}; /* Cluster size boundary for FAT volume (4Ks unit) */ + static const WORD cst32[] = {1, 2, 4, 8, 16, 32, 0}; /* Cluster size boundary for FAT32 volume (128Ks unit) */ + static const MKFS_PARM defopt = {FM_ANY, 0, 0, 0, 0}; /* Default parameter */ + BYTE fsopt, fsty, sys, *buf, *pte, pdrv, ipart; + WORD ss; /* Sector size */ + DWORD sz_buf, sz_blk, n_clst, pau, nsect, n, vsn; + LBA_t sz_vol, b_vol, b_fat, b_data; /* Size of volume, Base LBA of volume, fat, data */ + LBA_t sect, lba[2]; + DWORD sz_rsv, sz_fat, sz_dir, sz_au; /* Size of reserved, fat, dir, data, cluster */ + UINT n_fat, n_root, i; /* Index, Number of FATs and Number of roor dir entries */ + int vol; + DSTATUS ds; + FRESULT fr; + + + /* Check mounted drive and clear work area */ + vol = get_ldnumber(&path); /* Get target logical drive */ + if (vol < 0) return FR_INVALID_DRIVE; + if (FatFs[vol]) FatFs[vol]->fs_type = 0; /* Clear the fs object if mounted */ + pdrv = LD2PD(vol); /* Physical drive */ + ipart = LD2PT(vol); /* Partition (0:create as new, 1..:get from partition table) */ + if (!opt) opt = &defopt; /* Use default parameter if it is not given */ + + /* Get physical drive status (sz_drv, sz_blk, ss) */ + ds = disk_initialize(pdrv); + if (ds & STA_NOINIT) return FR_NOT_READY; + if (ds & STA_PROTECT) return FR_WRITE_PROTECTED; + sz_blk = opt->align; + if (sz_blk == 0 && disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_blk) != RES_OK) sz_blk = 1; + if (sz_blk == 0 || sz_blk > 0x8000 || (sz_blk & (sz_blk - 1))) sz_blk = 1; +#if FF_MAX_SS != FF_MIN_SS + if (disk_ioctl(pdrv, GET_SECTOR_SIZE, &ss) != RES_OK) return FR_DISK_ERR; + if (ss > FF_MAX_SS || ss < FF_MIN_SS || (ss & (ss - 1))) return FR_DISK_ERR; +#else + ss = FF_MAX_SS; +#endif + /* Options for FAT sub-type and FAT parameters */ + fsopt = opt->fmt & (FM_ANY | FM_SFD); + n_fat = (opt->n_fat >= 1 && opt->n_fat <= 2) ? opt->n_fat : 1; + n_root = (opt->n_root >= 1 && opt->n_root <= 32768 && (opt->n_root % (ss / SZDIRE)) == 0) ? opt->n_root : 512; + sz_au = (opt->au_size <= 0x1000000 && (opt->au_size & (opt->au_size - 1)) == 0) ? opt->au_size : 0; + sz_au /= ss; /* Byte --> Sector */ + + /* Get working buffer */ + sz_buf = len / ss; /* Size of working buffer [sector] */ + if (sz_buf == 0) return FR_NOT_ENOUGH_CORE; + buf = (BYTE*)work; /* Working buffer */ +#if FF_USE_LFN == 3 + if (!buf) buf = ff_memalloc(sz_buf * ss); /* Use heap memory for working buffer */ +#endif + if (!buf) return FR_NOT_ENOUGH_CORE; + + /* Determine where the volume to be located (b_vol, sz_vol) */ + b_vol = sz_vol = 0; + if (FF_MULTI_PARTITION && ipart != 0) { /* Is the volume associated with any specific partition? */ + /* Get partition location from the existing partition table */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Load MBR */ + if (ld_word(buf + BS_55AA) != 0xAA55) LEAVE_MKFS(FR_MKFS_ABORTED); /* Check if MBR is valid */ +#if FF_LBA64 + if (buf[MBR_Table + PTE_System] == 0xEE) { /* GPT protective MBR? */ + DWORD n_ent, ofs; + QWORD pt_lba; + + /* Get the partition location from GPT */ + if (disk_read(pdrv, buf, 1, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Load GPT header sector (next to MBR) */ + if (!test_gpt_header(buf)) LEAVE_MKFS(FR_MKFS_ABORTED); /* Check if GPT header is valid */ + n_ent = ld_dword(buf + GPTH_PtNum); /* Number of entries */ + pt_lba = ld_qword(buf + GPTH_PtOfs); /* Table start sector */ + ofs = i = 0; + while (n_ent) { /* Find MS Basic partition with order of ipart */ + if (ofs == 0 && disk_read(pdrv, buf, pt_lba++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Get PT sector */ + if (!memcmp(buf + ofs + GPTE_PtGuid, GUID_MS_Basic, 16) && ++i == ipart) { /* MS basic data partition? */ + b_vol = ld_qword(buf + ofs + GPTE_FstLba); + sz_vol = ld_qword(buf + ofs + GPTE_LstLba) - b_vol + 1; + break; + } + n_ent--; ofs = (ofs + SZ_GPTE) % ss; /* Next entry */ + } + if (n_ent == 0) LEAVE_MKFS(FR_MKFS_ABORTED); /* Partition not found */ + fsopt |= 0x80; /* Partitioning is in GPT */ + } else +#endif + { /* Get the partition location from MBR partition table */ + pte = buf + (MBR_Table + (ipart - 1) * SZ_PTE); + if (ipart > 4 || pte[PTE_System] == 0) LEAVE_MKFS(FR_MKFS_ABORTED); /* No partition? */ + b_vol = ld_dword(pte + PTE_StLba); /* Get volume start sector */ + sz_vol = ld_dword(pte + PTE_SizLba); /* Get volume size */ + } + } else { /* The volume is associated with a physical drive */ + if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_vol) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + if (!(fsopt & FM_SFD)) { /* To be partitioned? */ + /* Create a single-partition on the drive in this function */ +#if FF_LBA64 + if (sz_vol >= FF_MIN_GPT) { /* Which partition type to create, MBR or GPT? */ + fsopt |= 0x80; /* Partitioning is in GPT */ + b_vol = GPT_ALIGN / ss; sz_vol -= b_vol + GPT_ITEMS * SZ_GPTE / ss + 1; /* Estimated partition offset and size */ + } else +#endif + { /* Partitioning is in MBR */ + if (sz_vol > N_SEC_TRACK) { + b_vol = N_SEC_TRACK; sz_vol -= b_vol; /* Estimated partition offset and size */ + } + } + } + } + if (sz_vol < 128) LEAVE_MKFS(FR_MKFS_ABORTED); /* Check if volume size is >=128s */ + + /* Now start to create an FAT volume at b_vol and sz_vol */ + + do { /* Pre-determine the FAT type */ + if (FF_FS_EXFAT && (fsopt & FM_EXFAT)) { /* exFAT possible? */ + if ((fsopt & FM_ANY) == FM_EXFAT || sz_vol >= 0x4000000 || sz_au > 128) { /* exFAT only, vol >= 64MS or sz_au > 128S ? */ + fsty = FS_EXFAT; break; + } + } +#if FF_LBA64 + if (sz_vol >= 0x100000000) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too large volume for FAT/FAT32 */ +#endif + if (sz_au > 128) sz_au = 128; /* Invalid AU for FAT/FAT32? */ + if (fsopt & FM_FAT32) { /* FAT32 possible? */ + if (!(fsopt & FM_FAT)) { /* no-FAT? */ + fsty = FS_FAT32; break; + } + } + if (!(fsopt & FM_FAT)) LEAVE_MKFS(FR_INVALID_PARAMETER); /* no-FAT? */ + fsty = FS_FAT16; + } while (0); + + vsn = (DWORD)sz_vol + GET_FATTIME(); /* VSN generated from current time and partitiion size */ + +#if FF_FS_EXFAT + if (fsty == FS_EXFAT) { /* Create an exFAT volume */ + DWORD szb_bit, szb_case, sum, nbit, clu, clen[3]; + WCHAR ch, si; + UINT j, st; + + if (sz_vol < 0x1000) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume for exFAT? */ +#if FF_USE_TRIM + lba[0] = b_vol; lba[1] = b_vol + sz_vol - 1; /* Inform storage device that the volume area may be erased */ + disk_ioctl(pdrv, CTRL_TRIM, lba); +#endif + /* Determine FAT location, data location and number of clusters */ + if (sz_au == 0) { /* AU auto-selection */ + sz_au = 8; + if (sz_vol >= 0x80000) sz_au = 64; /* >= 512Ks */ + if (sz_vol >= 0x4000000) sz_au = 256; /* >= 64Ms */ + } + b_fat = b_vol + 32; /* FAT start at offset 32 */ + sz_fat = (DWORD)((sz_vol / sz_au + 2) * 4 + ss - 1) / ss; /* Number of FAT sectors */ + b_data = (b_fat + sz_fat + sz_blk - 1) & ~((LBA_t)sz_blk - 1); /* Align data area to the erase block boundary */ + if (b_data - b_vol >= sz_vol / 2) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume? */ + n_clst = (DWORD)(sz_vol - (b_data - b_vol)) / sz_au; /* Number of clusters */ + if (n_clst <16) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too few clusters? */ + if (n_clst > MAX_EXFAT) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too many clusters? */ + + szb_bit = (n_clst + 7) / 8; /* Size of allocation bitmap */ + clen[0] = (szb_bit + sz_au * ss - 1) / (sz_au * ss); /* Number of allocation bitmap clusters */ + + /* Create a compressed up-case table */ + sect = b_data + sz_au * clen[0]; /* Table start sector */ + sum = 0; /* Table checksum to be stored in the 82 entry */ + st = 0; si = 0; i = 0; j = 0; szb_case = 0; + do { + switch (st) { + case 0: + ch = (WCHAR)ff_wtoupper(si); /* Get an up-case char */ + if (ch != si) { + si++; break; /* Store the up-case char if exist */ + } + for (j = 1; (WCHAR)(si + j) && (WCHAR)(si + j) == ff_wtoupper((WCHAR)(si + j)); j++) ; /* Get run length of no-case block */ + if (j >= 128) { + ch = 0xFFFF; st = 2; break; /* Compress the no-case block if run is >= 128 chars */ + } + st = 1; /* Do not compress short run */ + /* FALLTHROUGH */ + case 1: + ch = si++; /* Fill the short run */ + if (--j == 0) st = 0; + break; + + default: + ch = (WCHAR)j; si += (WCHAR)j; /* Number of chars to skip */ + st = 0; + } + sum = xsum32(buf[i + 0] = (BYTE)ch, sum); /* Put it into the write buffer */ + sum = xsum32(buf[i + 1] = (BYTE)(ch >> 8), sum); + i += 2; szb_case += 2; + if (si == 0 || i == sz_buf * ss) { /* Write buffered data when buffer full or end of process */ + n = (i + ss - 1) / ss; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + sect += n; i = 0; + } + } while (si); + clen[1] = (szb_case + sz_au * ss - 1) / (sz_au * ss); /* Number of up-case table clusters */ + clen[2] = 1; /* Number of root dir clusters */ + + /* Initialize the allocation bitmap */ + sect = b_data; nsect = (szb_bit + ss - 1) / ss; /* Start of bitmap and number of bitmap sectors */ + nbit = clen[0] + clen[1] + clen[2]; /* Number of clusters in-use by system (bitmap, up-case and root-dir) */ + do { + memset(buf, 0, sz_buf * ss); /* Initialize bitmap buffer */ + for (i = 0; nbit != 0 && i / 8 < sz_buf * ss; buf[i / 8] |= 1 << (i % 8), i++, nbit--) ; /* Mark used clusters */ + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + sect += n; nsect -= n; + } while (nsect); + + /* Initialize the FAT */ + sect = b_fat; nsect = sz_fat; /* Start of FAT and number of FAT sectors */ + j = nbit = clu = 0; + do { + memset(buf, 0, sz_buf * ss); i = 0; /* Clear work area and reset write offset */ + if (clu == 0) { /* Initialize FAT [0] and FAT[1] */ + st_dword(buf + i, 0xFFFFFFF8); i += 4; clu++; + st_dword(buf + i, 0xFFFFFFFF); i += 4; clu++; + } + do { /* Create chains of bitmap, up-case and root dir */ + while (nbit != 0 && i < sz_buf * ss) { /* Create a chain */ + st_dword(buf + i, (nbit > 1) ? clu + 1 : 0xFFFFFFFF); + i += 4; clu++; nbit--; + } + if (nbit == 0 && j < 3) nbit = clen[j++]; /* Get next chain length */ + } while (nbit != 0 && i < sz_buf * ss); + n = (nsect > sz_buf) ? sz_buf : nsect; /* Write the buffered data */ + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + sect += n; nsect -= n; + } while (nsect); + + /* Initialize the root directory */ + memset(buf, 0, sz_buf * ss); + buf[SZDIRE * 0 + 0] = ET_VLABEL; /* Volume label entry (no label) */ + buf[SZDIRE * 1 + 0] = ET_BITMAP; /* Bitmap entry */ + st_dword(buf + SZDIRE * 1 + 20, 2); /* cluster */ + st_dword(buf + SZDIRE * 1 + 24, szb_bit); /* size */ + buf[SZDIRE * 2 + 0] = ET_UPCASE; /* Up-case table entry */ + st_dword(buf + SZDIRE * 2 + 4, sum); /* sum */ + st_dword(buf + SZDIRE * 2 + 20, 2 + clen[0]); /* cluster */ + st_dword(buf + SZDIRE * 2 + 24, szb_case); /* size */ + sect = b_data + sz_au * (clen[0] + clen[1]); nsect = sz_au; /* Start of the root directory and number of sectors */ + do { /* Fill root directory sectors */ + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + memset(buf, 0, ss); /* Rest of entries are filled with zero */ + sect += n; nsect -= n; + } while (nsect); + + /* Create two set of the exFAT VBR blocks */ + sect = b_vol; + for (n = 0; n < 2; n++) { + /* Main record (+0) */ + memset(buf, 0, ss); + memcpy(buf + BS_JmpBoot, "\xEB\x76\x90" "EXFAT ", 11); /* Boot jump code (x86), OEM name */ + st_qword(buf + BPB_VolOfsEx, b_vol); /* Volume offset in the physical drive [sector] */ + st_qword(buf + BPB_TotSecEx, sz_vol); /* Volume size [sector] */ + st_dword(buf + BPB_FatOfsEx, (DWORD)(b_fat - b_vol)); /* FAT offset [sector] */ + st_dword(buf + BPB_FatSzEx, sz_fat); /* FAT size [sector] */ + st_dword(buf + BPB_DataOfsEx, (DWORD)(b_data - b_vol)); /* Data offset [sector] */ + st_dword(buf + BPB_NumClusEx, n_clst); /* Number of clusters */ + st_dword(buf + BPB_RootClusEx, 2 + clen[0] + clen[1]); /* Root dir cluster # */ + st_dword(buf + BPB_VolIDEx, vsn); /* VSN */ + st_word(buf + BPB_FSVerEx, 0x100); /* Filesystem version (1.00) */ + for (buf[BPB_BytsPerSecEx] = 0, i = ss; i >>= 1; buf[BPB_BytsPerSecEx]++) ; /* Log2 of sector size [byte] */ + for (buf[BPB_SecPerClusEx] = 0, i = sz_au; i >>= 1; buf[BPB_SecPerClusEx]++) ; /* Log2 of cluster size [sector] */ + buf[BPB_NumFATsEx] = 1; /* Number of FATs */ + buf[BPB_DrvNumEx] = 0x80; /* Drive number (for int13) */ + st_word(buf + BS_BootCodeEx, 0xFEEB); /* Boot code (x86) */ + st_word(buf + BS_55AA, 0xAA55); /* Signature (placed here regardless of sector size) */ + for (i = sum = 0; i < ss; i++) { /* VBR checksum */ + if (i != BPB_VolFlagEx && i != BPB_VolFlagEx + 1 && i != BPB_PercInUseEx) sum = xsum32(buf[i], sum); + } + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + /* Extended bootstrap record (+1..+8) */ + memset(buf, 0, ss); + st_word(buf + ss - 2, 0xAA55); /* Signature (placed at end of sector) */ + for (j = 1; j < 9; j++) { + for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + } + /* OEM/Reserved record (+9..+10) */ + memset(buf, 0, ss); + for ( ; j < 11; j++) { + for (i = 0; i < ss; sum = xsum32(buf[i++], sum)) ; /* VBR checksum */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + } + /* Sum record (+11) */ + for (i = 0; i < ss; i += 4) st_dword(buf + i, sum); /* Fill with checksum value */ + if (disk_write(pdrv, buf, sect++, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + } + + } else +#endif /* FF_FS_EXFAT */ + { /* Create an FAT/FAT32 volume */ + do { + pau = sz_au; + /* Pre-determine number of clusters and FAT sub-type */ + if (fsty == FS_FAT32) { /* FAT32 volume */ + if (pau == 0) { /* AU auto-selection */ + n = (DWORD)sz_vol / 0x20000; /* Volume size in unit of 128KS */ + for (i = 0, pau = 1; cst32[i] && cst32[i] <= n; i++, pau <<= 1) ; /* Get from table */ + } + n_clst = (DWORD)sz_vol / pau; /* Number of clusters */ + sz_fat = (n_clst * 4 + 8 + ss - 1) / ss; /* FAT size [sector] */ + sz_rsv = 32; /* Number of reserved sectors */ + sz_dir = 0; /* No static directory */ + if (n_clst <= MAX_FAT16 || n_clst > MAX_FAT32) LEAVE_MKFS(FR_MKFS_ABORTED); + } else { /* FAT volume */ + if (pau == 0) { /* au auto-selection */ + n = (DWORD)sz_vol / 0x1000; /* Volume size in unit of 4KS */ + for (i = 0, pau = 1; cst[i] && cst[i] <= n; i++, pau <<= 1) ; /* Get from table */ + } + n_clst = (DWORD)sz_vol / pau; + if (n_clst > MAX_FAT12) { + n = n_clst * 2 + 4; /* FAT size [byte] */ + } else { + fsty = FS_FAT12; + n = (n_clst * 3 + 1) / 2 + 3; /* FAT size [byte] */ + } + sz_fat = (n + ss - 1) / ss; /* FAT size [sector] */ + sz_rsv = 1; /* Number of reserved sectors */ + sz_dir = (DWORD)n_root * SZDIRE / ss; /* Root dir size [sector] */ + } + b_fat = b_vol + sz_rsv; /* FAT base */ + b_data = b_fat + sz_fat * n_fat + sz_dir; /* Data base */ + + /* Align data area to erase block boundary (for flash memory media) */ + n = (DWORD)(((b_data + sz_blk - 1) & ~(sz_blk - 1)) - b_data); /* Sectors to next nearest from current data base */ + if (fsty == FS_FAT32) { /* FAT32: Move FAT */ + sz_rsv += n; b_fat += n; + } else { /* FAT: Expand FAT */ + if (n % n_fat) { /* Adjust fractional error if needed */ + n--; sz_rsv++; b_fat++; + } + sz_fat += n / n_fat; + } + + /* Determine number of clusters and final check of validity of the FAT sub-type */ + if (sz_vol < b_data + pau * 16 - b_vol) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too small volume? */ + n_clst = ((DWORD)sz_vol - sz_rsv - sz_fat * n_fat - sz_dir) / pau; + if (fsty == FS_FAT32) { + if (n_clst <= MAX_FAT16) { /* Too few clusters for FAT32? */ + if (sz_au == 0 && (sz_au = pau / 2) != 0) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); + } + } + if (fsty == FS_FAT16) { + if (n_clst > MAX_FAT16) { /* Too many clusters for FAT16 */ + if (sz_au == 0 && (pau * 2) <= 64) { + sz_au = pau * 2; continue; /* Adjust cluster size and retry */ + } + if ((fsopt & FM_FAT32)) { + fsty = FS_FAT32; continue; /* Switch type to FAT32 and retry */ + } + if (sz_au == 0 && (sz_au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); + } + if (n_clst <= MAX_FAT12) { /* Too few clusters for FAT16 */ + if (sz_au == 0 && (sz_au = pau * 2) <= 128) continue; /* Adjust cluster size and retry */ + LEAVE_MKFS(FR_MKFS_ABORTED); + } + } + if (fsty == FS_FAT12 && n_clst > MAX_FAT12) LEAVE_MKFS(FR_MKFS_ABORTED); /* Too many clusters for FAT12 */ + + /* Ok, it is the valid cluster configuration */ + break; + } while (1); + +#if FF_USE_TRIM + lba[0] = b_vol; lba[1] = b_vol + sz_vol - 1; /* Inform storage device that the volume area may be erased */ + disk_ioctl(pdrv, CTRL_TRIM, lba); +#endif + /* Create FAT VBR */ + memset(buf, 0, ss); + memcpy(buf + BS_JmpBoot, "\xEB\xFE\x90" "MSDOS5.0", 11); /* Boot jump code (x86), OEM name */ + st_word(buf + BPB_BytsPerSec, ss); /* Sector size [byte] */ + buf[BPB_SecPerClus] = (BYTE)pau; /* Cluster size [sector] */ + st_word(buf + BPB_RsvdSecCnt, (WORD)sz_rsv); /* Size of reserved area */ + buf[BPB_NumFATs] = (BYTE)n_fat; /* Number of FATs */ + st_word(buf + BPB_RootEntCnt, (WORD)((fsty == FS_FAT32) ? 0 : n_root)); /* Number of root directory entries */ + if (sz_vol < 0x10000) { + st_word(buf + BPB_TotSec16, (WORD)sz_vol); /* Volume size in 16-bit LBA */ + } else { + st_dword(buf + BPB_TotSec32, (DWORD)sz_vol); /* Volume size in 32-bit LBA */ + } + buf[BPB_Media] = 0xF8; /* Media descriptor byte */ + st_word(buf + BPB_SecPerTrk, 63); /* Number of sectors per track (for int13) */ + st_word(buf + BPB_NumHeads, 255); /* Number of heads (for int13) */ + st_dword(buf + BPB_HiddSec, (DWORD)b_vol); /* Volume offset in the physical drive [sector] */ + if (fsty == FS_FAT32) { + st_dword(buf + BS_VolID32, vsn); /* VSN */ + st_dword(buf + BPB_FATSz32, sz_fat); /* FAT size [sector] */ + st_dword(buf + BPB_RootClus32, 2); /* Root directory cluster # (2) */ + st_word(buf + BPB_FSInfo32, 1); /* Offset of FSINFO sector (VBR + 1) */ + st_word(buf + BPB_BkBootSec32, 6); /* Offset of backup VBR (VBR + 6) */ + buf[BS_DrvNum32] = 0x80; /* Drive number (for int13) */ + buf[BS_BootSig32] = 0x29; /* Extended boot signature */ + memcpy(buf + BS_VolLab32, "NO NAME " "FAT32 ", 19); /* Volume label, FAT signature */ + } else { + st_dword(buf + BS_VolID, vsn); /* VSN */ + st_word(buf + BPB_FATSz16, (WORD)sz_fat); /* FAT size [sector] */ + buf[BS_DrvNum] = 0x80; /* Drive number (for int13) */ + buf[BS_BootSig] = 0x29; /* Extended boot signature */ + memcpy(buf + BS_VolLab, "NO NAME " "FAT ", 19); /* Volume label, FAT signature */ + } + st_word(buf + BS_55AA, 0xAA55); /* Signature (offset is fixed here regardless of sector size) */ + if (disk_write(pdrv, buf, b_vol, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Write it to the VBR sector */ + + /* Create FSINFO record if needed */ + if (fsty == FS_FAT32) { + disk_write(pdrv, buf, b_vol + 6, 1); /* Write backup VBR (VBR + 6) */ + memset(buf, 0, ss); + st_dword(buf + FSI_LeadSig, 0x41615252); + st_dword(buf + FSI_StrucSig, 0x61417272); + st_dword(buf + FSI_Free_Count, n_clst - 1); /* Number of free clusters */ + st_dword(buf + FSI_Nxt_Free, 2); /* Last allocated cluster# */ + st_word(buf + BS_55AA, 0xAA55); + disk_write(pdrv, buf, b_vol + 7, 1); /* Write backup FSINFO (VBR + 7) */ + disk_write(pdrv, buf, b_vol + 1, 1); /* Write original FSINFO (VBR + 1) */ + } + + /* Initialize FAT area */ + memset(buf, 0, sz_buf * ss); + sect = b_fat; /* FAT start sector */ + for (i = 0; i < n_fat; i++) { /* Initialize FATs each */ + if (fsty == FS_FAT32) { + st_dword(buf + 0, 0xFFFFFFF8); /* FAT[0] */ + st_dword(buf + 4, 0xFFFFFFFF); /* FAT[1] */ + st_dword(buf + 8, 0x0FFFFFFF); /* FAT[2] (root directory) */ + } else { + st_dword(buf + 0, (fsty == FS_FAT12) ? 0xFFFFF8 : 0xFFFFFFF8); /* FAT[0] and FAT[1] */ + } + nsect = sz_fat; /* Number of FAT sectors */ + do { /* Fill FAT sectors */ + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + memset(buf, 0, ss); /* Rest of FAT all are cleared */ + sect += n; nsect -= n; + } while (nsect); + } + + /* Initialize root directory (fill with zero) */ + nsect = (fsty == FS_FAT32) ? pau : sz_dir; /* Number of root directory sectors */ + do { + n = (nsect > sz_buf) ? sz_buf : nsect; + if (disk_write(pdrv, buf, sect, (UINT)n) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + sect += n; nsect -= n; + } while (nsect); + } + + /* A FAT volume has been created here */ + + /* Determine system ID in the MBR partition table */ + if (FF_FS_EXFAT && fsty == FS_EXFAT) { + sys = 0x07; /* exFAT */ + } else { + if (fsty == FS_FAT32) { + sys = 0x0C; /* FAT32X */ + } else { + if (sz_vol >= 0x10000) { + sys = 0x06; /* FAT12/16 (large) */ + } else { + sys = (fsty == FS_FAT16) ? 0x04 : 0x01; /* FAT16 : FAT12 */ + } + } + } + + /* Update partition information */ + if (FF_MULTI_PARTITION && ipart != 0) { /* Volume is in the existing partition */ + if (!FF_LBA64 || !(fsopt & 0x80)) { + /* Update system ID in the partition table */ + if (disk_read(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Read the MBR */ + buf[MBR_Table + (ipart - 1) * SZ_PTE + PTE_System] = sys; /* Set system ID */ + if (disk_write(pdrv, buf, 0, 1) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); /* Write it back to the MBR */ + } + } else { /* Volume as a new single partition */ + if (!(fsopt & FM_SFD)) { /* Create partition table if not in SFD */ + lba[0] = sz_vol; lba[1] = 0; + fr = create_partition(pdrv, lba, sys, buf); + if (fr != FR_OK) LEAVE_MKFS(fr); + } + } + + if (disk_ioctl(pdrv, CTRL_SYNC, 0) != RES_OK) LEAVE_MKFS(FR_DISK_ERR); + + LEAVE_MKFS(FR_OK); +} + + + + +#if FF_MULTI_PARTITION +/*-----------------------------------------------------------------------*/ +/* Create Partition Table on the Physical Drive */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_fdisk ( + BYTE pdrv, /* Physical drive number */ + const LBA_t ptbl[], /* Pointer to the size table for each partitions */ + void* work /* Pointer to the working buffer (null: use heap memory) */ +) +{ + BYTE *buf = (BYTE*)work; + DSTATUS stat; + + + stat = disk_initialize(pdrv); + if (stat & STA_NOINIT) return FR_NOT_READY; + if (stat & STA_PROTECT) return FR_WRITE_PROTECTED; +#if FF_USE_LFN == 3 + if (!buf) buf = ff_memalloc(FF_MAX_SS); /* Use heap memory for working buffer */ +#endif + if (!buf) return FR_NOT_ENOUGH_CORE; + + LEAVE_MKFS(create_partition(pdrv, ptbl, 0x07, buf)); +} + +#endif /* FF_MULTI_PARTITION */ +#endif /* !FF_FS_READONLY && FF_USE_MKFS */ + + + + +#if FF_USE_STRFUNC +#if FF_USE_LFN && FF_LFN_UNICODE && (FF_STRF_ENCODE < 0 || FF_STRF_ENCODE > 3) +#error Wrong FF_STRF_ENCODE setting +#endif +/*-----------------------------------------------------------------------*/ +/* Get a String from the File */ +/*-----------------------------------------------------------------------*/ + +TCHAR* f_gets ( + TCHAR* buff, /* Pointer to the buffer to store read string */ + int len, /* Size of string buffer (items) */ + FIL* fp /* Pointer to the file object */ +) +{ + int nc = 0; + TCHAR *p = buff; + BYTE s[4]; + UINT rc; + DWORD dc; +#if FF_USE_LFN && FF_LFN_UNICODE && FF_STRF_ENCODE <= 2 + WCHAR wc; +#endif +#if FF_USE_LFN && FF_LFN_UNICODE && FF_STRF_ENCODE == 3 + UINT ct; +#endif + +#if FF_USE_LFN && FF_LFN_UNICODE /* With code conversion (Unicode API) */ + /* Make a room for the character and terminator */ + if (FF_LFN_UNICODE == 1) len -= (FF_STRF_ENCODE == 0) ? 1 : 2; + if (FF_LFN_UNICODE == 2) len -= (FF_STRF_ENCODE == 0) ? 3 : 4; + if (FF_LFN_UNICODE == 3) len -= 1; + while (nc < len) { +#if FF_STRF_ENCODE == 0 /* Read a character in ANSI/OEM */ + f_read(fp, s, 1, &rc); /* Get a code unit */ + if (rc != 1) break; /* EOF? */ + wc = s[0]; + if (dbc_1st((BYTE)wc)) { /* DBC 1st byte? */ + f_read(fp, s, 1, &rc); /* Get 2nd byte */ + if (rc != 1 || !dbc_2nd(s[0])) continue; /* Wrong code? */ + wc = wc << 8 | s[0]; + } + dc = ff_oem2uni(wc, CODEPAGE); /* Convert ANSI/OEM into Unicode */ + if (dc == 0) continue; /* Conversion error? */ +#elif FF_STRF_ENCODE == 1 || FF_STRF_ENCODE == 2 /* Read a character in UTF-16LE/BE */ + f_read(fp, s, 2, &rc); /* Get a code unit */ + if (rc != 2) break; /* EOF? */ + dc = (FF_STRF_ENCODE == 1) ? ld_word(s) : s[0] << 8 | s[1]; + if (IsSurrogateL(dc)) continue; /* Broken surrogate pair? */ + if (IsSurrogateH(dc)) { /* High surrogate? */ + f_read(fp, s, 2, &rc); /* Get low surrogate */ + if (rc != 2) break; /* EOF? */ + wc = (FF_STRF_ENCODE == 1) ? ld_word(s) : s[0] << 8 | s[1]; + if (!IsSurrogateL(wc)) continue; /* Broken surrogate pair? */ + dc = ((dc & 0x3FF) + 0x40) << 10 | (wc & 0x3FF); /* Merge surrogate pair */ + } +#else /* Read a character in UTF-8 */ + f_read(fp, s, 1, &rc); /* Get a code unit */ + if (rc != 1) break; /* EOF? */ + dc = s[0]; + if (dc >= 0x80) { /* Multi-byte sequence? */ + ct = 0; + if ((dc & 0xE0) == 0xC0) { dc &= 0x1F; ct = 1; } /* 2-byte sequence? */ + if ((dc & 0xF0) == 0xE0) { dc &= 0x0F; ct = 2; } /* 3-byte sequence? */ + if ((dc & 0xF8) == 0xF0) { dc &= 0x07; ct = 3; } /* 4-byte sequence? */ + if (ct == 0) continue; + f_read(fp, s, ct, &rc); /* Get trailing bytes */ + if (rc != ct) break; + rc = 0; + do { /* Merge the byte sequence */ + if ((s[rc] & 0xC0) != 0x80) break; + dc = dc << 6 | (s[rc] & 0x3F); + } while (++rc < ct); + if (rc != ct || dc < 0x80 || IsSurrogate(dc) || dc >= 0x110000) continue; /* Wrong encoding? */ + } +#endif + /* A code point is avaialble in dc to be output */ + + if (FF_USE_STRFUNC == 2 && dc == '\r') continue; /* Strip \r off if needed */ +#if FF_LFN_UNICODE == 1 || FF_LFN_UNICODE == 3 /* Output it in UTF-16/32 encoding */ + if (FF_LFN_UNICODE == 1 && dc >= 0x10000) { /* Out of BMP at UTF-16? */ + *p++ = (TCHAR)(0xD800 | ((dc >> 10) - 0x40)); nc++; /* Make and output high surrogate */ + dc = 0xDC00 | (dc & 0x3FF); /* Make low surrogate */ + } + *p++ = (TCHAR)dc; nc++; + if (dc == '\n') break; /* End of line? */ +#elif FF_LFN_UNICODE == 2 /* Output it in UTF-8 encoding */ + if (dc < 0x80) { /* Single byte? */ + *p++ = (TCHAR)dc; + nc++; + if (dc == '\n') break; /* End of line? */ + } else { + if (dc < 0x800) { /* 2-byte sequence? */ + *p++ = (TCHAR)(0xC0 | (dc >> 6 & 0x1F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 2; + } else { + if (dc < 0x10000) { /* 3-byte sequence? */ + *p++ = (TCHAR)(0xE0 | (dc >> 12 & 0x0F)); + *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 3; + } else { /* 4-byte sequence? */ + *p++ = (TCHAR)(0xF0 | (dc >> 18 & 0x07)); + *p++ = (TCHAR)(0x80 | (dc >> 12 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + nc += 4; + } + } + } +#endif + } + +#else /* Byte-by-byte read without any conversion (ANSI/OEM API) */ + len -= 1; /* Make a room for the terminator */ + while (nc < len) { + f_read(fp, s, 1, &rc); /* Get a byte */ + if (rc != 1) break; /* EOF? */ + dc = s[0]; + if (FF_USE_STRFUNC == 2 && dc == '\r') continue; + *p++ = (TCHAR)dc; nc++; + if (dc == '\n') break; + } +#endif + + *p = 0; /* Terminate the string */ + return nc ? buff : 0; /* When no data read due to EOF or error, return with error. */ +} + + + + +#if !FF_FS_READONLY +#include +#define SZ_PUTC_BUF 64 +#define SZ_NUM_BUF 32 + +/*-----------------------------------------------------------------------*/ +/* Put a Character to the File (with sub-functions) */ +/*-----------------------------------------------------------------------*/ + +/* Output buffer and work area */ + +typedef struct { + FIL *fp; /* Ptr to the writing file */ + int idx, nchr; /* Write index of buf[] (-1:error), number of encoding units written */ +#if FF_USE_LFN && FF_LFN_UNICODE == 1 + WCHAR hs; +#elif FF_USE_LFN && FF_LFN_UNICODE == 2 + BYTE bs[4]; + UINT wi, ct; +#endif + BYTE buf[SZ_PUTC_BUF]; /* Write buffer */ +} putbuff; + + +/* Buffered file write with code conversion */ + +static void putc_bfd (putbuff* pb, TCHAR c) +{ + UINT n; + int i, nc; +#if FF_USE_LFN && FF_LFN_UNICODE + WCHAR hs, wc; +#if FF_LFN_UNICODE == 2 + DWORD dc; + const TCHAR *tp; +#endif +#endif + + if (FF_USE_STRFUNC == 2 && c == '\n') { /* LF -> CRLF conversion */ + putc_bfd(pb, '\r'); + } + + i = pb->idx; /* Write index of pb->buf[] */ + if (i < 0) return; /* In write error? */ + nc = pb->nchr; /* Write unit counter */ + +#if FF_USE_LFN && FF_LFN_UNICODE +#if FF_LFN_UNICODE == 1 /* UTF-16 input */ + if (IsSurrogateH(c)) { /* High surrogate? */ + pb->hs = c; return; /* Save it for next */ + } + hs = pb->hs; pb->hs = 0; + if (hs != 0) { /* There is a leading high surrogate */ + if (!IsSurrogateL(c)) hs = 0; /* Discard high surrogate if not a surrogate pair */ + } else { + if (IsSurrogateL(c)) return; /* Discard stray low surrogate */ + } + wc = c; +#elif FF_LFN_UNICODE == 2 /* UTF-8 input */ + for (;;) { + if (pb->ct == 0) { /* Out of multi-byte sequence? */ + pb->bs[pb->wi = 0] = (BYTE)c; /* Save 1st byte */ + if ((BYTE)c < 0x80) break; /* Single byte? */ + if (((BYTE)c & 0xE0) == 0xC0) pb->ct = 1; /* 2-byte sequence? */ + if (((BYTE)c & 0xF0) == 0xE0) pb->ct = 2; /* 3-byte sequence? */ + if (((BYTE)c & 0xF8) == 0xF0) pb->ct = 3; /* 4-byte sequence? */ + return; + } else { /* In the multi-byte sequence */ + if (((BYTE)c & 0xC0) != 0x80) { /* Broken sequence? */ + pb->ct = 0; continue; + } + pb->bs[++pb->wi] = (BYTE)c; /* Save the trailing byte */ + if (--pb->ct == 0) break; /* End of multi-byte sequence? */ + return; + } + } + tp = (const TCHAR*)pb->bs; + dc = tchar2uni(&tp); /* UTF-8 ==> UTF-16 */ + if (dc == 0xFFFFFFFF) return; /* Wrong code? */ + wc = (WCHAR)dc; + hs = (WCHAR)(dc >> 16); +#elif FF_LFN_UNICODE == 3 /* UTF-32 input */ + if (IsSurrogate(c) || c >= 0x110000) return; /* Discard invalid code */ + if (c >= 0x10000) { /* Out of BMP? */ + hs = (WCHAR)(0xD800 | ((c >> 10) - 0x40)); /* Make high surrogate */ + wc = 0xDC00 | (c & 0x3FF); /* Make low surrogate */ + } else { + hs = 0; + wc = (WCHAR)c; + } +#endif + /* A code point in UTF-16 is available in hs and wc */ + +#if FF_STRF_ENCODE == 1 /* Write a code point in UTF-16LE */ + if (hs != 0) { /* Surrogate pair? */ + st_word(&pb->buf[i], hs); + i += 2; + nc++; + } + st_word(&pb->buf[i], wc); + i += 2; +#elif FF_STRF_ENCODE == 2 /* Write a code point in UTF-16BE */ + if (hs != 0) { /* Surrogate pair? */ + pb->buf[i++] = (BYTE)(hs >> 8); + pb->buf[i++] = (BYTE)hs; + nc++; + } + pb->buf[i++] = (BYTE)(wc >> 8); + pb->buf[i++] = (BYTE)wc; +#elif FF_STRF_ENCODE == 3 /* Write a code point in UTF-8 */ + if (hs != 0) { /* 4-byte sequence? */ + nc += 3; + hs = (hs & 0x3FF) + 0x40; + pb->buf[i++] = (BYTE)(0xF0 | hs >> 8); + pb->buf[i++] = (BYTE)(0x80 | (hs >> 2 & 0x3F)); + pb->buf[i++] = (BYTE)(0x80 | (hs & 3) << 4 | (wc >> 6 & 0x0F)); + pb->buf[i++] = (BYTE)(0x80 | (wc & 0x3F)); + } else { + if (wc < 0x80) { /* Single byte? */ + pb->buf[i++] = (BYTE)wc; + } else { + if (wc < 0x800) { /* 2-byte sequence? */ + nc += 1; + pb->buf[i++] = (BYTE)(0xC0 | wc >> 6); + } else { /* 3-byte sequence */ + nc += 2; + pb->buf[i++] = (BYTE)(0xE0 | wc >> 12); + pb->buf[i++] = (BYTE)(0x80 | (wc >> 6 & 0x3F)); + } + pb->buf[i++] = (BYTE)(0x80 | (wc & 0x3F)); + } + } +#else /* Write a code point in ANSI/OEM */ + if (hs != 0) return; + wc = ff_uni2oem(wc, CODEPAGE); /* UTF-16 ==> ANSI/OEM */ + if (wc == 0) return; + if (wc >= 0x100) { + pb->buf[i++] = (BYTE)(wc >> 8); nc++; + } + pb->buf[i++] = (BYTE)wc; +#endif + +#else /* ANSI/OEM input (without re-encoding) */ + pb->buf[i++] = (BYTE)c; +#endif + + if (i >= (int)(sizeof pb->buf) - 4) { /* Write buffered characters to the file */ + f_write(pb->fp, pb->buf, (UINT)i, &n); + i = (n == (UINT)i) ? 0 : -1; + } + pb->idx = i; + pb->nchr = nc + 1; +} + + +/* Flush remaining characters in the buffer */ + +static int putc_flush (putbuff* pb) +{ + UINT nw; + + if ( pb->idx >= 0 /* Flush buffered characters to the file */ + && f_write(pb->fp, pb->buf, (UINT)pb->idx, &nw) == FR_OK + && (UINT)pb->idx == nw) return pb->nchr; + return -1; +} + + +/* Initialize write buffer */ + +static void putc_init (putbuff* pb, FIL* fp) +{ + memset(pb, 0, sizeof (putbuff)); + pb->fp = fp; +} + + + +int f_putc ( + TCHAR c, /* A character to be output */ + FIL* fp /* Pointer to the file object */ +) +{ + putbuff pb; + + + putc_init(&pb, fp); + putc_bfd(&pb, c); /* Put the character */ + return putc_flush(&pb); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Put a String to the File */ +/*-----------------------------------------------------------------------*/ + +int f_puts ( + const TCHAR* str, /* Pointer to the string to be output */ + FIL* fp /* Pointer to the file object */ +) +{ + putbuff pb; + + + putc_init(&pb, fp); + while (*str) putc_bfd(&pb, *str++); /* Put the string */ + return putc_flush(&pb); +} + + + + +/*-----------------------------------------------------------------------*/ +/* Put a Formatted String to the File (with sub-functions) */ +/*-----------------------------------------------------------------------*/ +#if FF_PRINT_FLOAT && FF_INTDEF == 2 +#include + +static int ilog10 (double n) /* Calculate log10(n) in integer output */ +{ + int rv = 0; + + while (n >= 10) { /* Decimate digit in right shift */ + if (n >= 100000) { + n /= 100000; rv += 5; + } else { + n /= 10; rv++; + } + } + while (n < 1) { /* Decimate digit in left shift */ + if (n < 0.00001) { + n *= 100000; rv -= 5; + } else { + n *= 10; rv--; + } + } + return rv; +} + + +static double i10x (int n) /* Calculate 10^n in integer input */ +{ + double rv = 1; + + while (n > 0) { /* Left shift */ + if (n >= 5) { + rv *= 100000; n -= 5; + } else { + rv *= 10; n--; + } + } + while (n < 0) { /* Right shift */ + if (n <= -5) { + rv /= 100000; n += 5; + } else { + rv /= 10; n++; + } + } + return rv; +} + + +static void ftoa ( + char* buf, /* Buffer to output the floating point string */ + double val, /* Value to output */ + int prec, /* Number of fractional digits */ + TCHAR fmt /* Notation */ +) +{ + int d; + int e = 0, m = 0; + char sign = 0; + double w; + const char *er = 0; + const char ds = FF_PRINT_FLOAT == 2 ? ',' : '.'; + + + if (isnan(val)) { /* Not a number? */ + er = "NaN"; + } else { + if (prec < 0) prec = 6; /* Default precision? (6 fractional digits) */ + if (val < 0) { /* Nagative? */ + val = 0 - val; sign = '-'; + } else { + sign = '+'; + } + if (isinf(val)) { /* Infinite? */ + er = "INF"; + } else { + if (fmt == 'f') { /* Decimal notation? */ + val += i10x(0 - prec) / 2; /* Round (nearest) */ + m = ilog10(val); + if (m < 0) m = 0; + if (m + prec + 3 >= SZ_NUM_BUF) er = "OV"; /* Buffer overflow? */ + } else { /* E notation */ + if (val != 0) { /* Not a true zero? */ + val += i10x(ilog10(val) - prec) / 2; /* Round (nearest) */ + e = ilog10(val); + if (e > 99 || prec + 7 >= SZ_NUM_BUF) { /* Buffer overflow or E > +99? */ + er = "OV"; + } else { + if (e < -99) e = -99; + val /= i10x(e); /* Normalize */ + } + } + } + } + if (!er) { /* Not error condition */ + if (sign == '-') *buf++ = sign; /* Add a - if negative value */ + do { /* Put decimal number */ + if (m == -1) *buf++ = ds; /* Insert a decimal separator when get into fractional part */ + w = i10x(m); /* Snip the highest digit d */ + d = (int)(val / w); val -= d * w; + *buf++ = (char)('0' + d); /* Put the digit */ + } while (--m >= -prec); /* Output all digits specified by prec */ + if (fmt != 'f') { /* Put exponent if needed */ + *buf++ = (char)fmt; + if (e < 0) { + e = 0 - e; *buf++ = '-'; + } else { + *buf++ = '+'; + } + *buf++ = (char)('0' + e / 10); + *buf++ = (char)('0' + e % 10); + } + } + } + if (er) { /* Error condition */ + if (sign) *buf++ = sign; /* Add sign if needed */ + do *buf++ = *er++; while (*er); /* Put error symbol */ + } + *buf = 0; /* Term */ +} +#endif /* FF_PRINT_FLOAT && FF_INTDEF == 2 */ + + + +int f_printf ( + FIL* fp, /* Pointer to the file object */ + const TCHAR* fmt, /* Pointer to the format string */ + ... /* Optional arguments... */ +) +{ + va_list arp; + putbuff pb; + UINT i, j, w, f, r; + int prec; +#if FF_PRINT_LLI && FF_INTDEF == 2 + QWORD v; +#else + DWORD v; +#endif + TCHAR tc, pad, *tp; + TCHAR nul = 0; + char d, str[SZ_NUM_BUF]; + + + putc_init(&pb, fp); + + va_start(arp, fmt); + + for (;;) { + tc = *fmt++; + if (tc == 0) break; /* End of format string */ + if (tc != '%') { /* Not an escape character (pass-through) */ + putc_bfd(&pb, tc); + continue; + } + f = w = 0; pad = ' '; prec = -1; /* Initialize parms */ + tc = *fmt++; + if (tc == '0') { /* Flag: '0' padded */ + pad = '0'; tc = *fmt++; + } else if (tc == '-') { /* Flag: Left aligned */ + f = 2; tc = *fmt++; + } + if (tc == '*') { /* Minimum width from an argument */ + w = va_arg(arp, int); + tc = *fmt++; + } else { + while (IsDigit(tc)) { /* Minimum width */ + w = w * 10 + tc - '0'; + tc = *fmt++; + } + } + if (tc == '.') { /* Precision */ + tc = *fmt++; + if (tc == '*') { /* Precision from an argument */ + prec = va_arg(arp, int); + tc = *fmt++; + } else { + prec = 0; + while (IsDigit(tc)) { /* Precision */ + prec = prec * 10 + tc - '0'; + tc = *fmt++; + } + } + } + if (tc == 'l') { /* Size: long int */ + f |= 4; tc = *fmt++; +#if FF_PRINT_LLI && FF_INTDEF == 2 + if (tc == 'l') { /* Size: long long int */ + f |= 8; tc = *fmt++; + } +#endif + } + if (tc == 0) break; /* End of format string */ + switch (tc) { /* Atgument type is... */ + case 'b': /* Unsigned binary */ + r = 2; break; + case 'o': /* Unsigned octal */ + r = 8; break; + case 'd': /* Signed decimal */ + case 'u': /* Unsigned decimal */ + r = 10; break; + case 'x': /* Unsigned hexdecimal (lower case) */ + case 'X': /* Unsigned hexdecimal (upper case) */ + r = 16; break; + case 'c': /* Character */ + putc_bfd(&pb, (TCHAR)va_arg(arp, int)); + continue; + case 's': /* String */ + tp = va_arg(arp, TCHAR*); /* Get a pointer argument */ + if (!tp) tp = &nul; /* Null ptr generates a null string */ + for (j = 0; tp[j]; j++) ; /* j = tcslen(tp) */ + if (prec >= 0 && j > (UINT)prec) j = prec; /* Limited length of string body */ + for ( ; !(f & 2) && j < w; j++) putc_bfd(&pb, pad); /* Left pads */ + while (*tp && prec--) putc_bfd(&pb, *tp++); /* Body */ + while (j++ < w) putc_bfd(&pb, ' '); /* Right pads */ + continue; +#if FF_PRINT_FLOAT && FF_INTDEF == 2 + case 'f': /* Floating point (decimal) */ + case 'e': /* Floating point (e) */ + case 'E': /* Floating point (E) */ + ftoa(str, va_arg(arp, double), prec, tc); /* Make a flaoting point string */ + for (j = strlen(str); !(f & 2) && j < w; j++) putc_bfd(&pb, pad); /* Left pads */ + for (i = 0; str[i]; putc_bfd(&pb, str[i++])) ; /* Body */ + while (j++ < w) putc_bfd(&pb, ' '); /* Right pads */ + continue; +#endif + default: /* Unknown type (pass-through) */ + putc_bfd(&pb, tc); continue; + } + + /* Get an integer argument and put it in numeral */ +#if FF_PRINT_LLI && FF_INTDEF == 2 + if (f & 8) { /* long long argument? */ + v = (QWORD)va_arg(arp, LONGLONG); + } else { + if (f & 4) { /* long argument? */ + v = (tc == 'd') ? (QWORD)(LONGLONG)va_arg(arp, long) : (QWORD)va_arg(arp, unsigned long); + } else { /* int/short/char argument */ + v = (tc == 'd') ? (QWORD)(LONGLONG)va_arg(arp, int) : (QWORD)va_arg(arp, unsigned int); + } + } + if (tc == 'd' && (v & 0x8000000000000000)) { /* Negative value? */ + v = 0 - v; f |= 1; + } +#else + if (f & 4) { /* long argument? */ + v = (DWORD)va_arg(arp, long); + } else { /* int/short/char argument */ + v = (tc == 'd') ? (DWORD)(long)va_arg(arp, int) : (DWORD)va_arg(arp, unsigned int); + } + if (tc == 'd' && (v & 0x80000000)) { /* Negative value? */ + v = 0 - v; f |= 1; + } +#endif + i = 0; + do { /* Make an integer number string */ + d = (char)(v % r); v /= r; + if (d > 9) d += (tc == 'x') ? 0x27 : 0x07; + str[i++] = d + '0'; + } while (v && i < SZ_NUM_BUF); + if (f & 1) str[i++] = '-'; /* Sign */ + /* Write it */ + for (j = i; !(f & 2) && j < w; j++) putc_bfd(&pb, pad); /* Left pads */ + do putc_bfd(&pb, (TCHAR)str[--i]); while (i); /* Body */ + while (j++ < w) putc_bfd(&pb, ' '); /* Right pads */ + } + + va_end(arp); + + return putc_flush(&pb); +} + +#endif /* !FF_FS_READONLY */ +#endif /* FF_USE_STRFUNC */ + + + +#if FF_CODE_PAGE == 0 +/*-----------------------------------------------------------------------*/ +/* Set Active Codepage for the Path Name */ +/*-----------------------------------------------------------------------*/ + +FRESULT f_setcp ( + WORD cp /* Value to be set as active code page */ +) +{ + static const WORD validcp[22] = { 437, 720, 737, 771, 775, 850, 852, 855, 857, 860, 861, 862, 863, 864, 865, 866, 869, 932, 936, 949, 950, 0}; + static const BYTE* const tables[22] = {Ct437, Ct720, Ct737, Ct771, Ct775, Ct850, Ct852, Ct855, Ct857, Ct860, Ct861, Ct862, Ct863, Ct864, Ct865, Ct866, Ct869, Dc932, Dc936, Dc949, Dc950, 0}; + UINT i; + + + for (i = 0; validcp[i] != 0 && validcp[i] != cp; i++) ; /* Find the code page */ + if (validcp[i] != cp) return FR_INVALID_PARAMETER; /* Not found? */ + + CodePage = cp; + if (cp >= 900) { /* DBCS */ + ExCvt = 0; + DbcTbl = tables[i]; + } else { /* SBCS */ + ExCvt = tables[i]; + DbcTbl = 0; + } + return FR_OK; +} +#endif /* FF_CODE_PAGE == 0 */ + diff --git a/Externals/FatFs/ff.h b/Externals/FatFs/ff.h new file mode 100644 index 0000000000..486657637c --- /dev/null +++ b/Externals/FatFs/ff.h @@ -0,0 +1,422 @@ +/*----------------------------------------------------------------------------/ +/ FatFs - Generic FAT Filesystem module R0.14b / +/-----------------------------------------------------------------------------/ +/ +/ Copyright (C) 2021, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: + +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +/ +/----------------------------------------------------------------------------*/ + + +#ifndef FF_DEFINED +#define FF_DEFINED 86631 /* Revision ID */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ffconf.h" /* FatFs configuration options */ + +#if FF_DEFINED != FFCONF_DEF +#error Wrong configuration file (ffconf.h). +#endif + + +/* Integer types used for FatFs API */ + +#if defined(_WIN32) /* Windows VC++ (for development only) */ +#define FF_INTDEF 2 +#include +typedef unsigned __int64 QWORD; +#include +#define isnan(v) _isnan(v) +#define isinf(v) (!_finite(v)) + +#elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus) /* C99 or later */ +#define FF_INTDEF 2 +#include +typedef unsigned int UINT; /* int must be 16-bit or 32-bit */ +typedef unsigned char BYTE; /* char must be 8-bit */ +typedef uint16_t WORD; /* 16-bit unsigned integer */ +typedef uint32_t DWORD; /* 32-bit unsigned integer */ +typedef uint64_t QWORD; /* 64-bit unsigned integer */ +typedef WORD WCHAR; /* UTF-16 character type */ + +#else /* Earlier than C99 */ +#define FF_INTDEF 1 +typedef unsigned int UINT; /* int must be 16-bit or 32-bit */ +typedef unsigned char BYTE; /* char must be 8-bit */ +typedef unsigned short WORD; /* 16-bit unsigned integer */ +typedef unsigned long DWORD; /* 32-bit unsigned integer */ +typedef WORD WCHAR; /* UTF-16 character type */ +#endif + + +/* Type of file size and LBA variables */ + +#if FF_FS_EXFAT +#if FF_INTDEF != 2 +#error exFAT feature wants C99 or later +#endif +typedef QWORD FSIZE_t; +#if FF_LBA64 +typedef QWORD LBA_t; +#else +typedef DWORD LBA_t; +#endif +#else +#if FF_LBA64 +#error exFAT needs to be enabled when enable 64-bit LBA +#endif +typedef DWORD FSIZE_t; +typedef DWORD LBA_t; +#endif + + + +/* Type of path name strings on FatFs API (TCHAR) */ + +#if FF_USE_LFN && FF_LFN_UNICODE == 1 /* Unicode in UTF-16 encoding */ +typedef WCHAR TCHAR; +#define _T(x) L ## x +#define _TEXT(x) L ## x +#elif FF_USE_LFN && FF_LFN_UNICODE == 2 /* Unicode in UTF-8 encoding */ +typedef char TCHAR; +#define _T(x) u8 ## x +#define _TEXT(x) u8 ## x +#elif FF_USE_LFN && FF_LFN_UNICODE == 3 /* Unicode in UTF-32 encoding */ +typedef DWORD TCHAR; +#define _T(x) U ## x +#define _TEXT(x) U ## x +#elif FF_USE_LFN && (FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 3) +#error Wrong FF_LFN_UNICODE setting +#else /* ANSI/OEM code in SBCS/DBCS */ +typedef char TCHAR; +#define _T(x) x +#define _TEXT(x) x +#endif + + + +/* Definitions of volume management */ + +#if FF_MULTI_PARTITION /* Multiple partition configuration */ +typedef struct { + BYTE pd; /* Physical drive number */ + BYTE pt; /* Partition: 0:Auto detect, 1-4:Forced partition) */ +} PARTITION; +extern PARTITION VolToPart[]; /* Volume - Partition mapping table */ +#endif + +#if FF_STR_VOLUME_ID +#ifndef FF_VOLUME_STRS +extern const char* VolumeStr[FF_VOLUMES]; /* User defied volume ID */ +#endif +#endif + + + +/* Filesystem object structure (FATFS) */ + +typedef struct { + BYTE fs_type; /* Filesystem type (0:not mounted) */ + BYTE pdrv; /* Associated physical drive */ + BYTE n_fats; /* Number of FATs (1 or 2) */ + BYTE wflag; /* win[] flag (b0:dirty) */ + BYTE fsi_flag; /* FSINFO flags (b7:disabled, b0:dirty) */ + WORD id; /* Volume mount ID */ + WORD n_rootdir; /* Number of root directory entries (FAT12/16) */ + WORD csize; /* Cluster size [sectors] */ +#if FF_MAX_SS != FF_MIN_SS + WORD ssize; /* Sector size (512, 1024, 2048 or 4096) */ +#endif +#if FF_USE_LFN + WCHAR* lfnbuf; /* LFN working buffer */ +#endif +#if FF_FS_EXFAT + BYTE* dirbuf; /* Directory entry block scratchpad buffer for exFAT */ +#endif +#if FF_FS_REENTRANT + FF_SYNC_t sobj; /* Identifier of sync object */ +#endif +#if !FF_FS_READONLY + DWORD last_clst; /* Last allocated cluster */ + DWORD free_clst; /* Number of free clusters */ +#endif +#if FF_FS_RPATH + DWORD cdir; /* Current directory start cluster (0:root) */ +#if FF_FS_EXFAT + DWORD cdc_scl; /* Containing directory start cluster (invalid when cdir is 0) */ + DWORD cdc_size; /* b31-b8:Size of containing directory, b7-b0: Chain status */ + DWORD cdc_ofs; /* Offset in the containing directory (invalid when cdir is 0) */ +#endif +#endif + DWORD n_fatent; /* Number of FAT entries (number of clusters + 2) */ + DWORD fsize; /* Size of an FAT [sectors] */ + LBA_t volbase; /* Volume base sector */ + LBA_t fatbase; /* FAT base sector */ + LBA_t dirbase; /* Root directory base sector/cluster */ + LBA_t database; /* Data base sector */ +#if FF_FS_EXFAT + LBA_t bitbase; /* Allocation bitmap base sector */ +#endif + LBA_t winsect; /* Current sector appearing in the win[] */ + BYTE win[FF_MAX_SS]; /* Disk access window for Directory, FAT (and file data at tiny cfg) */ +} FATFS; + + + +/* Object ID and allocation information (FFOBJID) */ + +typedef struct { + FATFS* fs; /* Pointer to the hosting volume of this object */ + WORD id; /* Hosting volume mount ID */ + BYTE attr; /* Object attribute */ + BYTE stat; /* Object chain status (b1-0: =0:not contiguous, =2:contiguous, =3:fragmented in this session, b2:sub-directory stretched) */ + DWORD sclust; /* Object data start cluster (0:no cluster or root directory) */ + FSIZE_t objsize; /* Object size (valid when sclust != 0) */ +#if FF_FS_EXFAT + DWORD n_cont; /* Size of first fragment - 1 (valid when stat == 3) */ + DWORD n_frag; /* Size of last fragment needs to be written to FAT (valid when not zero) */ + DWORD c_scl; /* Containing directory start cluster (valid when sclust != 0) */ + DWORD c_size; /* b31-b8:Size of containing directory, b7-b0: Chain status (valid when c_scl != 0) */ + DWORD c_ofs; /* Offset in the containing directory (valid when file object and sclust != 0) */ +#endif +#if FF_FS_LOCK + UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */ +#endif +} FFOBJID; + + + +/* File object structure (FIL) */ + +typedef struct { + FFOBJID obj; /* Object identifier (must be the 1st member to detect invalid object pointer) */ + BYTE flag; /* File status flags */ + BYTE err; /* Abort flag (error code) */ + FSIZE_t fptr; /* File read/write pointer (Zeroed on file open) */ + DWORD clust; /* Current cluster of fpter (invalid when fptr is 0) */ + LBA_t sect; /* Sector number appearing in buf[] (0:invalid) */ +#if !FF_FS_READONLY + LBA_t dir_sect; /* Sector number containing the directory entry (not used at exFAT) */ + BYTE* dir_ptr; /* Pointer to the directory entry in the win[] (not used at exFAT) */ +#endif +#if FF_USE_FASTSEEK + DWORD* cltbl; /* Pointer to the cluster link map table (nulled on open, set by application) */ +#endif +#if !FF_FS_TINY + BYTE buf[FF_MAX_SS]; /* File private data read/write window */ +#endif +} FIL; + + + +/* Directory object structure (DIR) */ + +typedef struct { + FFOBJID obj; /* Object identifier */ + DWORD dptr; /* Current read/write offset */ + DWORD clust; /* Current cluster */ + LBA_t sect; /* Current sector (0:Read operation has terminated) */ + BYTE* dir; /* Pointer to the directory item in the win[] */ + BYTE fn[12]; /* SFN (in/out) {body[8],ext[3],status[1]} */ +#if FF_USE_LFN + DWORD blk_ofs; /* Offset of current entry block being processed (0xFFFFFFFF:Invalid) */ +#endif +#if FF_USE_FIND + const TCHAR* pat; /* Pointer to the name matching pattern */ +#endif +} DIR; + + + +/* File information structure (FILINFO) */ + +typedef struct { + FSIZE_t fsize; /* File size */ + WORD fdate; /* Modified date */ + WORD ftime; /* Modified time */ + BYTE fattrib; /* File attribute */ +#if FF_USE_LFN + TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */ + TCHAR fname[FF_LFN_BUF + 1]; /* Primary file name */ +#else + TCHAR fname[12 + 1]; /* File name */ +#endif +} FILINFO; + + + +/* Format parameter structure (MKFS_PARM) */ + +typedef struct { + BYTE fmt; /* Format option (FM_FAT, FM_FAT32, FM_EXFAT and FM_SFD) */ + BYTE n_fat; /* Number of FATs */ + UINT align; /* Data area alignment (sector) */ + UINT n_root; /* Number of root directory entries */ + DWORD au_size; /* Cluster size (byte) */ +} MKFS_PARM; + + + +/* File function return code (FRESULT) */ + +typedef enum { + FR_OK = 0, /* (0) Succeeded */ + FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */ + FR_INT_ERR, /* (2) Assertion failed */ + FR_NOT_READY, /* (3) The physical drive cannot work */ + FR_NO_FILE, /* (4) Could not find the file */ + FR_NO_PATH, /* (5) Could not find the path */ + FR_INVALID_NAME, /* (6) The path name format is invalid */ + FR_DENIED, /* (7) Access denied due to prohibited access or directory full */ + FR_EXIST, /* (8) Access denied due to prohibited access */ + FR_INVALID_OBJECT, /* (9) The file/directory object is invalid */ + FR_WRITE_PROTECTED, /* (10) The physical drive is write protected */ + FR_INVALID_DRIVE, /* (11) The logical drive number is invalid */ + FR_NOT_ENABLED, /* (12) The volume has no work area */ + FR_NO_FILESYSTEM, /* (13) There is no valid FAT volume */ + FR_MKFS_ABORTED, /* (14) The f_mkfs() aborted due to any problem */ + FR_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */ + FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */ + FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */ + FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > FF_FS_LOCK */ + FR_INVALID_PARAMETER /* (19) Given parameter is invalid */ +} FRESULT; + + + +/*--------------------------------------------------------------*/ +/* FatFs module application interface */ + +FRESULT f_open (FIL* fp, const TCHAR* path, BYTE mode); /* Open or create a file */ +FRESULT f_close (FIL* fp); /* Close an open file object */ +FRESULT f_read (FIL* fp, void* buff, UINT btr, UINT* br); /* Read data from the file */ +FRESULT f_write (FIL* fp, const void* buff, UINT btw, UINT* bw); /* Write data to the file */ +FRESULT f_lseek (FIL* fp, FSIZE_t ofs); /* Move file pointer of the file object */ +FRESULT f_truncate (FIL* fp); /* Truncate the file */ +FRESULT f_sync (FIL* fp); /* Flush cached data of the writing file */ +FRESULT f_opendir (DIR* dp, const TCHAR* path); /* Open a directory */ +FRESULT f_closedir (DIR* dp); /* Close an open directory */ +FRESULT f_readdir (DIR* dp, FILINFO* fno); /* Read a directory item */ +FRESULT f_findfirst (DIR* dp, FILINFO* fno, const TCHAR* path, const TCHAR* pattern); /* Find first file */ +FRESULT f_findnext (DIR* dp, FILINFO* fno); /* Find next file */ +FRESULT f_mkdir (const TCHAR* path); /* Create a sub directory */ +FRESULT f_unlink (const TCHAR* path); /* Delete an existing file or directory */ +FRESULT f_rename (const TCHAR* path_old, const TCHAR* path_new); /* Rename/Move a file or directory */ +FRESULT f_stat (const TCHAR* path, FILINFO* fno); /* Get file status */ +FRESULT f_chmod (const TCHAR* path, BYTE attr, BYTE mask); /* Change attribute of a file/dir */ +FRESULT f_utime (const TCHAR* path, const FILINFO* fno); /* Change timestamp of a file/dir */ +FRESULT f_chdir (const TCHAR* path); /* Change current directory */ +FRESULT f_chdrive (const TCHAR* path); /* Change current drive */ +FRESULT f_getcwd (TCHAR* buff, UINT len); /* Get current directory */ +FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */ +FRESULT f_getlabel (const TCHAR* path, TCHAR* label, DWORD* vsn); /* Get volume label */ +FRESULT f_setlabel (const TCHAR* label); /* Set volume label */ +FRESULT f_forward (FIL* fp, UINT(*func)(const BYTE*,UINT), UINT btf, UINT* bf); /* Forward data to the stream */ +FRESULT f_expand (FIL* fp, FSIZE_t fsz, BYTE opt); /* Allocate a contiguous block to the file */ +FRESULT f_mount (FATFS* fs, const TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */ +FRESULT f_mkfs (const TCHAR* path, const MKFS_PARM* opt, void* work, UINT len); /* Create a FAT volume */ +FRESULT f_fdisk (BYTE pdrv, const LBA_t ptbl[], void* work); /* Divide a physical drive into some partitions */ +FRESULT f_setcp (WORD cp); /* Set current code page */ +int f_putc (TCHAR c, FIL* fp); /* Put a character to the file */ +int f_puts (const TCHAR* str, FIL* cp); /* Put a string to the file */ +int f_printf (FIL* fp, const TCHAR* str, ...); /* Put a formatted string to the file */ +TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the file */ + +#define f_eof(fp) ((int)((fp)->fptr == (fp)->obj.objsize)) +#define f_error(fp) ((fp)->err) +#define f_tell(fp) ((fp)->fptr) +#define f_size(fp) ((fp)->obj.objsize) +#define f_rewind(fp) f_lseek((fp), 0) +#define f_rewinddir(dp) f_readdir((dp), 0) +#define f_rmdir(path) f_unlink(path) +#define f_unmount(path) f_mount(0, path, 0) + + + + +/*--------------------------------------------------------------*/ +/* Additional user defined functions */ + +/* RTC function */ +#if !FF_FS_READONLY && !FF_FS_NORTC +DWORD get_fattime (void); +#endif + +/* LFN support functions */ +#if FF_USE_LFN >= 1 /* Code conversion (defined in unicode.c) */ +WCHAR ff_oem2uni (WCHAR oem, WORD cp); /* OEM code to Unicode conversion */ +WCHAR ff_uni2oem (DWORD uni, WORD cp); /* Unicode to OEM code conversion */ +DWORD ff_wtoupper (DWORD uni); /* Unicode upper-case conversion */ +#endif +#if FF_USE_LFN == 3 /* Dynamic memory allocation */ +void* ff_memalloc (UINT msize); /* Allocate memory block */ +void ff_memfree (void* mblock); /* Free memory block */ +#endif + +/* Sync functions */ +#if FF_FS_REENTRANT +int ff_cre_syncobj (BYTE vol, FF_SYNC_t* sobj); /* Create a sync object */ +int ff_req_grant (FF_SYNC_t sobj); /* Lock sync object */ +void ff_rel_grant (FF_SYNC_t sobj); /* Unlock sync object */ +int ff_del_syncobj (FF_SYNC_t sobj); /* Delete a sync object */ +#endif + + + + +/*--------------------------------------------------------------*/ +/* Flags and offset address */ + + +/* File access mode and open method flags (3rd argument of f_open) */ +#define FA_READ 0x01 +#define FA_WRITE 0x02 +#define FA_OPEN_EXISTING 0x00 +#define FA_CREATE_NEW 0x04 +#define FA_CREATE_ALWAYS 0x08 +#define FA_OPEN_ALWAYS 0x10 +#define FA_OPEN_APPEND 0x30 + +/* Fast seek controls (2nd argument of f_lseek) */ +#define CREATE_LINKMAP ((FSIZE_t)0 - 1) + +/* Format options (2nd argument of f_mkfs) */ +#define FM_FAT 0x01 +#define FM_FAT32 0x02 +#define FM_EXFAT 0x04 +#define FM_ANY 0x07 +#define FM_SFD 0x08 + +/* Filesystem type (FATFS.fs_type) */ +#define FS_FAT12 1 +#define FS_FAT16 2 +#define FS_FAT32 3 +#define FS_EXFAT 4 + +/* File attribute bits for directory entry (FILINFO.fattrib) */ +#define AM_RDO 0x01 /* Read only */ +#define AM_HID 0x02 /* Hidden */ +#define AM_SYS 0x04 /* System */ +#define AM_DIR 0x10 /* Directory */ +#define AM_ARC 0x20 /* Archive */ + + +#ifdef __cplusplus +} +#endif + +#endif /* FF_DEFINED */ diff --git a/Externals/FatFs/ffconf.h b/Externals/FatFs/ffconf.h new file mode 100644 index 0000000000..ca17485e47 --- /dev/null +++ b/Externals/FatFs/ffconf.h @@ -0,0 +1,301 @@ +/*---------------------------------------------------------------------------/ +/ FatFs Functional Configurations +/---------------------------------------------------------------------------*/ + +#define FFCONF_DEF 86631 /* Revision ID */ + +/*---------------------------------------------------------------------------/ +/ Function Configurations +/---------------------------------------------------------------------------*/ + +#define FF_FS_READONLY 0 +/* This option switches read-only configuration. (0:Read/Write or 1:Read-only) +/ Read-only configuration removes writing API functions, f_write(), f_sync(), +/ f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree() +/ and optional writing functions as well. */ + + +#define FF_FS_MINIMIZE 0 +/* This option defines minimization level to remove some basic API functions. +/ +/ 0: Basic functions are fully enabled. +/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename() +/ are removed. +/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1. +/ 3: f_lseek() function is removed in addition to 2. */ + + +#define FF_USE_FIND 0 +/* This option switches filtered directory read functions, f_findfirst() and +/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */ + + +#define FF_USE_MKFS 0 +/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ + + +#define FF_USE_FASTSEEK 0 +/* This option switches fast seek function. (0:Disable or 1:Enable) */ + + +#define FF_USE_EXPAND 0 +/* This option switches f_expand function. (0:Disable or 1:Enable) */ + + +#define FF_USE_CHMOD 0 +/* This option switches attribute manipulation functions, f_chmod() and f_utime(). +/ (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */ + + +#define FF_USE_LABEL 0 +/* This option switches volume label functions, f_getlabel() and f_setlabel(). +/ (0:Disable or 1:Enable) */ + + +#define FF_USE_FORWARD 0 +/* This option switches f_forward() function. (0:Disable or 1:Enable) */ + + +#define FF_USE_STRFUNC 0 +#define FF_PRINT_LLI 0 +#define FF_PRINT_FLOAT 0 +#define FF_STRF_ENCODE 0 +/* FF_USE_STRFUNC switches string functions, f_gets(), f_putc(), f_puts() and +/ f_printf(). +/ +/ 0: Disable. FF_PRINT_LLI, FF_PRINT_FLOAT and FF_STRF_ENCODE have no effect. +/ 1: Enable without LF-CRLF conversion. +/ 2: Enable with LF-CRLF conversion. +/ +/ FF_PRINT_LLI = 1 makes f_printf() support long long argument and FF_PRINT_FLOAT = 1/2 + makes f_printf() support floating point argument. These features want C99 or later. +/ When FF_LFN_UNICODE >= 1 with LFN enabled, string functions convert the character +/ encoding in it. FF_STRF_ENCODE selects assumption of character encoding ON THE FILE +/ to be read/written via those functions. +/ +/ 0: ANSI/OEM in current CP +/ 1: Unicode in UTF-16LE +/ 2: Unicode in UTF-16BE +/ 3: Unicode in UTF-8 +*/ + + +/*---------------------------------------------------------------------------/ +/ Locale and Namespace Configurations +/---------------------------------------------------------------------------*/ + +#define FF_CODE_PAGE 932 +/* This option specifies the OEM code page to be used on the target system. +/ Incorrect code page setting can cause a file open failure. +/ +/ 437 - U.S. +/ 720 - Arabic +/ 737 - Greek +/ 771 - KBL +/ 775 - Baltic +/ 850 - Latin 1 +/ 852 - Latin 2 +/ 855 - Cyrillic +/ 857 - Turkish +/ 860 - Portuguese +/ 861 - Icelandic +/ 862 - Hebrew +/ 863 - Canadian French +/ 864 - Arabic +/ 865 - Nordic +/ 866 - Russian +/ 869 - Greek 2 +/ 932 - Japanese (DBCS) +/ 936 - Simplified Chinese (DBCS) +/ 949 - Korean (DBCS) +/ 950 - Traditional Chinese (DBCS) +/ 0 - Include all code pages above and configured by f_setcp() +*/ + + +#define FF_USE_LFN 0 +#define FF_MAX_LFN 255 +/* The FF_USE_LFN switches the support for LFN (long file name). +/ +/ 0: Disable LFN. FF_MAX_LFN has no effect. +/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. +/ 2: Enable LFN with dynamic working buffer on the STACK. +/ 3: Enable LFN with dynamic working buffer on the HEAP. +/ +/ To enable the LFN, ffunicode.c needs to be added to the project. The LFN function +/ requiers certain internal working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and +/ additional (FF_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled. +/ The FF_MAX_LFN defines size of the working buffer in UTF-16 code unit and it can +/ be in range of 12 to 255. It is recommended to be set it 255 to fully support LFN +/ specification. +/ When use stack for the working buffer, take care on stack overflow. When use heap +/ memory for the working buffer, memory management functions, ff_memalloc() and +/ ff_memfree() exemplified in ffsystem.c, need to be added to the project. */ + + +#define FF_LFN_UNICODE 0 +/* This option switches the character encoding on the API when LFN is enabled. +/ +/ 0: ANSI/OEM in current CP (TCHAR = char) +/ 1: Unicode in UTF-16 (TCHAR = WCHAR) +/ 2: Unicode in UTF-8 (TCHAR = char) +/ 3: Unicode in UTF-32 (TCHAR = DWORD) +/ +/ Also behavior of string I/O functions will be affected by this option. +/ When LFN is not enabled, this option has no effect. */ + + +#define FF_LFN_BUF 255 +#define FF_SFN_BUF 12 +/* This set of options defines size of file name members in the FILINFO structure +/ which is used to read out directory items. These values should be suffcient for +/ the file names to read. The maximum possible length of the read file name depends +/ on character encoding. When LFN is not enabled, these options have no effect. */ + + +#define FF_FS_RPATH 0 +/* This option configures support for relative path. +/ +/ 0: Disable relative path and remove related functions. +/ 1: Enable relative path. f_chdir() and f_chdrive() are available. +/ 2: f_getcwd() function is available in addition to 1. +*/ + + +/*---------------------------------------------------------------------------/ +/ Drive/Volume Configurations +/---------------------------------------------------------------------------*/ + +#define FF_VOLUMES 1 +/* Number of volumes (logical drives) to be used. (1-10) */ + + +#define FF_STR_VOLUME_ID 0 +#define FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" +/* FF_STR_VOLUME_ID switches support for volume ID in arbitrary strings. +/ When FF_STR_VOLUME_ID is set to 1 or 2, arbitrary strings can be used as drive +/ number in the path name. FF_VOLUME_STRS defines the volume ID strings for each +/ logical drives. Number of items must not be less than FF_VOLUMES. Valid +/ characters for the volume ID strings are A-Z, a-z and 0-9, however, they are +/ compared in case-insensitive. If FF_STR_VOLUME_ID >= 1 and FF_VOLUME_STRS is +/ not defined, a user defined volume string table needs to be defined as: +/ +/ const char* VolumeStr[FF_VOLUMES] = {"ram","flash","sd","usb",... +*/ + + +#define FF_MULTI_PARTITION 0 +/* This option switches support for multiple volumes on the physical drive. +/ By default (0), each logical drive number is bound to the same physical drive +/ number and only an FAT volume found on the physical drive will be mounted. +/ When this function is enabled (1), each logical drive number can be bound to +/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk() +/ funciton will be available. */ + + +#define FF_MIN_SS 512 +#define FF_MAX_SS 512 +/* This set of options configures the range of sector size to be supported. (512, +/ 1024, 2048 or 4096) Always set both 512 for most systems, generic memory card and +/ harddisk, but a larger value may be required for on-board flash memory and some +/ type of optical media. When FF_MAX_SS is larger than FF_MIN_SS, FatFs is configured +/ for variable sector size mode and disk_ioctl() function needs to implement +/ GET_SECTOR_SIZE command. */ + + +#define FF_LBA64 0 +/* This option switches support for 64-bit LBA. (0:Disable or 1:Enable) +/ To enable the 64-bit LBA, also exFAT needs to be enabled. (FF_FS_EXFAT == 1) */ + + +#define FF_MIN_GPT 0x10000000 +/* Minimum number of sectors to switch GPT as partitioning format in f_mkfs and +/ f_fdisk function. 0x100000000 max. This option has no effect when FF_LBA64 == 0. */ + + +#define FF_USE_TRIM 0 +/* This option switches support for ATA-TRIM. (0:Disable or 1:Enable) +/ To enable Trim function, also CTRL_TRIM command should be implemented to the +/ disk_ioctl() function. */ + + + +/*---------------------------------------------------------------------------/ +/ System Configurations +/---------------------------------------------------------------------------*/ + +#define FF_FS_TINY 0 +/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) +/ At the tiny configuration, size of file object (FIL) is shrinked FF_MAX_SS bytes. +/ Instead of private sector buffer eliminated from the file object, common sector +/ buffer in the filesystem object (FATFS) is used for the file data transfer. */ + + +#define FF_FS_EXFAT 0 +/* This option switches support for exFAT filesystem. (0:Disable or 1:Enable) +/ To enable exFAT, also LFN needs to be enabled. (FF_USE_LFN >= 1) +/ Note that enabling exFAT discards ANSI C (C89) compatibility. */ + + +#define FF_FS_NORTC 0 +#define FF_NORTC_MON 1 +#define FF_NORTC_MDAY 1 +#define FF_NORTC_YEAR 2020 +/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have +/ any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable +/ the timestamp function. Every object modified by FatFs will have a fixed timestamp +/ defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time. +/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be +/ added to the project to read current time form real-time clock. FF_NORTC_MON, +/ FF_NORTC_MDAY and FF_NORTC_YEAR have no effect. +/ These options have no effect in read-only configuration (FF_FS_READONLY = 1). */ + + +#define FF_FS_NOFSINFO 0 +/* If you need to know correct free space on the FAT32 volume, set bit 0 of this +/ option, and f_getfree() function at first time after volume mount will force +/ a full FAT scan. Bit 1 controls the use of last allocated cluster number. +/ +/ bit0=0: Use free cluster count in the FSINFO if available. +/ bit0=1: Do not trust free cluster count in the FSINFO. +/ bit1=0: Use last allocated cluster number in the FSINFO if available. +/ bit1=1: Do not trust last allocated cluster number in the FSINFO. +*/ + + +#define FF_FS_LOCK 0 +/* The option FF_FS_LOCK switches file lock function to control duplicated file open +/ and illegal operation to open objects. This option must be 0 when FF_FS_READONLY +/ is 1. +/ +/ 0: Disable file lock function. To avoid volume corruption, application program +/ should avoid illegal open, remove and rename to the open objects. +/ >0: Enable file lock function. The value defines how many files/sub-directories +/ can be opened simultaneously under file lock control. Note that the file +/ lock control is independent of re-entrancy. */ + + +/* #include // O/S definitions */ +#define FF_FS_REENTRANT 0 +#define FF_FS_TIMEOUT 1000 +#define FF_SYNC_t HANDLE +/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs +/ module itself. Note that regardless of this option, file access to different +/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs() +/ and f_fdisk() function, are always not re-entrant. Only file/directory access +/ to the same volume is under control of this function. +/ +/ 0: Disable re-entrancy. FF_FS_TIMEOUT and FF_SYNC_t have no effect. +/ 1: Enable re-entrancy. Also user provided synchronization handlers, +/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj() +/ function, must be added to the project. Samples are available in +/ option/syscall.c. +/ +/ The FF_FS_TIMEOUT defines timeout period in unit of time tick. +/ The FF_SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, +/ SemaphoreHandle_t and etc. A header file for O/S definitions needs to be +/ included somewhere in the scope of ff.h. */ + + + +/*--- End of configuration options ---*/ diff --git a/Externals/FatFs/ffsystem.c b/Externals/FatFs/ffsystem.c new file mode 100644 index 0000000000..b88ce15555 --- /dev/null +++ b/Externals/FatFs/ffsystem.c @@ -0,0 +1,170 @@ +/*------------------------------------------------------------------------*/ +/* Sample Code of OS Dependent Functions for FatFs */ +/* (C)ChaN, 2018 */ +/*------------------------------------------------------------------------*/ + + +#include "ff.h" + + +#if FF_USE_LFN == 3 /* Dynamic memory allocation */ + +/*------------------------------------------------------------------------*/ +/* Allocate a memory block */ +/*------------------------------------------------------------------------*/ + +void* ff_memalloc ( /* Returns pointer to the allocated memory block (null if not enough core) */ + UINT msize /* Number of bytes to allocate */ +) +{ + return malloc(msize); /* Allocate a new memory block with POSIX API */ +} + + +/*------------------------------------------------------------------------*/ +/* Free a memory block */ +/*------------------------------------------------------------------------*/ + +void ff_memfree ( + void* mblock /* Pointer to the memory block to free (nothing to do if null) */ +) +{ + free(mblock); /* Free the memory block with POSIX API */ +} + +#endif + + + +#if FF_FS_REENTRANT /* Mutal exclusion */ + +/*------------------------------------------------------------------------*/ +/* Create a Synchronization Object */ +/*------------------------------------------------------------------------*/ +/* This function is called in f_mount() function to create a new +/ synchronization object for the volume, such as semaphore and mutex. +/ When a 0 is returned, the f_mount() function fails with FR_INT_ERR. +*/ + +//const osMutexDef_t Mutex[FF_VOLUMES]; /* Table of CMSIS-RTOS mutex */ + + +int ff_cre_syncobj ( /* 1:Function succeeded, 0:Could not create the sync object */ + BYTE vol, /* Corresponding volume (logical drive number) */ + FF_SYNC_t* sobj /* Pointer to return the created sync object */ +) +{ + /* Win32 */ + *sobj = CreateMutex(NULL, FALSE, NULL); + return (int)(*sobj != INVALID_HANDLE_VALUE); + + /* uITRON */ +// T_CSEM csem = {TA_TPRI,1,1}; +// *sobj = acre_sem(&csem); +// return (int)(*sobj > 0); + + /* uC/OS-II */ +// OS_ERR err; +// *sobj = OSMutexCreate(0, &err); +// return (int)(err == OS_NO_ERR); + + /* FreeRTOS */ +// *sobj = xSemaphoreCreateMutex(); +// return (int)(*sobj != NULL); + + /* CMSIS-RTOS */ +// *sobj = osMutexCreate(&Mutex[vol]); +// return (int)(*sobj != NULL); +} + + +/*------------------------------------------------------------------------*/ +/* Delete a Synchronization Object */ +/*------------------------------------------------------------------------*/ +/* This function is called in f_mount() function to delete a synchronization +/ object that created with ff_cre_syncobj() function. When a 0 is returned, +/ the f_mount() function fails with FR_INT_ERR. +*/ + +int ff_del_syncobj ( /* 1:Function succeeded, 0:Could not delete due to an error */ + FF_SYNC_t sobj /* Sync object tied to the logical drive to be deleted */ +) +{ + /* Win32 */ + return (int)CloseHandle(sobj); + + /* uITRON */ +// return (int)(del_sem(sobj) == E_OK); + + /* uC/OS-II */ +// OS_ERR err; +// OSMutexDel(sobj, OS_DEL_ALWAYS, &err); +// return (int)(err == OS_NO_ERR); + + /* FreeRTOS */ +// vSemaphoreDelete(sobj); +// return 1; + + /* CMSIS-RTOS */ +// return (int)(osMutexDelete(sobj) == osOK); +} + + +/*------------------------------------------------------------------------*/ +/* Request Grant to Access the Volume */ +/*------------------------------------------------------------------------*/ +/* This function is called on entering file functions to lock the volume. +/ When a 0 is returned, the file function fails with FR_TIMEOUT. +*/ + +int ff_req_grant ( /* 1:Got a grant to access the volume, 0:Could not get a grant */ + FF_SYNC_t sobj /* Sync object to wait */ +) +{ + /* Win32 */ + return (int)(WaitForSingleObject(sobj, FF_FS_TIMEOUT) == WAIT_OBJECT_0); + + /* uITRON */ +// return (int)(wai_sem(sobj) == E_OK); + + /* uC/OS-II */ +// OS_ERR err; +// OSMutexPend(sobj, FF_FS_TIMEOUT, &err)); +// return (int)(err == OS_NO_ERR); + + /* FreeRTOS */ +// return (int)(xSemaphoreTake(sobj, FF_FS_TIMEOUT) == pdTRUE); + + /* CMSIS-RTOS */ +// return (int)(osMutexWait(sobj, FF_FS_TIMEOUT) == osOK); +} + + +/*------------------------------------------------------------------------*/ +/* Release Grant to Access the Volume */ +/*------------------------------------------------------------------------*/ +/* This function is called on leaving file functions to unlock the volume. +*/ + +void ff_rel_grant ( + FF_SYNC_t sobj /* Sync object to be signaled */ +) +{ + /* Win32 */ + ReleaseMutex(sobj); + + /* uITRON */ +// sig_sem(sobj); + + /* uC/OS-II */ +// OSMutexPost(sobj); + + /* FreeRTOS */ +// xSemaphoreGive(sobj); + + /* CMSIS-RTOS */ +// osMutexRelease(sobj); +} + +#endif + diff --git a/Externals/FatFs/ffunicode.c b/Externals/FatFs/ffunicode.c new file mode 100644 index 0000000000..a69b24c830 --- /dev/null +++ b/Externals/FatFs/ffunicode.c @@ -0,0 +1,15593 @@ +/*------------------------------------------------------------------------*/ +/* Unicode handling functions for FatFs R0.13+ */ +/*------------------------------------------------------------------------*/ +/* This module will occupy a huge memory in the .const section when the / +/ FatFs is configured for LFN with DBCS. If the system has any Unicode / +/ utilitiy for the code conversion, this module should be modified to use / +/ that function to avoid silly memory consumption. / +/-------------------------------------------------------------------------*/ +/* +/ Copyright (C) 2014, ChaN, all right reserved. +/ +/ FatFs module is an open source software. Redistribution and use of FatFs in +/ source and binary forms, with or without modification, are permitted provided +/ that the following condition is met: +/ +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. +*/ + + +#include "ff.h" + +#if FF_USE_LFN /* This module will be blanked if non-LFN configuration */ + +#define MERGE2(a, b) a ## b +#define CVTBL(tbl, cp) MERGE2(tbl, cp) + + +/*------------------------------------------------------------------------*/ +/* Code Conversion Tables */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE == 932 || FF_CODE_PAGE == 0 /* Japanese */ +static const WCHAR uni2oem932[] = { /* Unicode --> Shift_JIS pairs */ + 0x00A7, 0x8198, 0x00A8, 0x814E, 0x00B0, 0x818B, 0x00B1, 0x817D, 0x00B4, 0x814C, 0x00B6, 0x81F7, 0x00D7, 0x817E, 0x00F7, 0x8180, + 0x0391, 0x839F, 0x0392, 0x83A0, 0x0393, 0x83A1, 0x0394, 0x83A2, 0x0395, 0x83A3, 0x0396, 0x83A4, 0x0397, 0x83A5, 0x0398, 0x83A6, + 0x0399, 0x83A7, 0x039A, 0x83A8, 0x039B, 0x83A9, 0x039C, 0x83AA, 0x039D, 0x83AB, 0x039E, 0x83AC, 0x039F, 0x83AD, 0x03A0, 0x83AE, + 0x03A1, 0x83AF, 0x03A3, 0x83B0, 0x03A4, 0x83B1, 0x03A5, 0x83B2, 0x03A6, 0x83B3, 0x03A7, 0x83B4, 0x03A8, 0x83B5, 0x03A9, 0x83B6, + 0x03B1, 0x83BF, 0x03B2, 0x83C0, 0x03B3, 0x83C1, 0x03B4, 0x83C2, 0x03B5, 0x83C3, 0x03B6, 0x83C4, 0x03B7, 0x83C5, 0x03B8, 0x83C6, + 0x03B9, 0x83C7, 0x03BA, 0x83C8, 0x03BB, 0x83C9, 0x03BC, 0x83CA, 0x03BD, 0x83CB, 0x03BE, 0x83CC, 0x03BF, 0x83CD, 0x03C0, 0x83CE, + 0x03C1, 0x83CF, 0x03C3, 0x83D0, 0x03C4, 0x83D1, 0x03C5, 0x83D2, 0x03C6, 0x83D3, 0x03C7, 0x83D4, 0x03C8, 0x83D5, 0x03C9, 0x83D6, + 0x0401, 0x8446, 0x0410, 0x8440, 0x0411, 0x8441, 0x0412, 0x8442, 0x0413, 0x8443, 0x0414, 0x8444, 0x0415, 0x8445, 0x0416, 0x8447, + 0x0417, 0x8448, 0x0418, 0x8449, 0x0419, 0x844A, 0x041A, 0x844B, 0x041B, 0x844C, 0x041C, 0x844D, 0x041D, 0x844E, 0x041E, 0x844F, + 0x041F, 0x8450, 0x0420, 0x8451, 0x0421, 0x8452, 0x0422, 0x8453, 0x0423, 0x8454, 0x0424, 0x8455, 0x0425, 0x8456, 0x0426, 0x8457, + 0x0427, 0x8458, 0x0428, 0x8459, 0x0429, 0x845A, 0x042A, 0x845B, 0x042B, 0x845C, 0x042C, 0x845D, 0x042D, 0x845E, 0x042E, 0x845F, + 0x042F, 0x8460, 0x0430, 0x8470, 0x0431, 0x8471, 0x0432, 0x8472, 0x0433, 0x8473, 0x0434, 0x8474, 0x0435, 0x8475, 0x0436, 0x8477, + 0x0437, 0x8478, 0x0438, 0x8479, 0x0439, 0x847A, 0x043A, 0x847B, 0x043B, 0x847C, 0x043C, 0x847D, 0x043D, 0x847E, 0x043E, 0x8480, + 0x043F, 0x8481, 0x0440, 0x8482, 0x0441, 0x8483, 0x0442, 0x8484, 0x0443, 0x8485, 0x0444, 0x8486, 0x0445, 0x8487, 0x0446, 0x8488, + 0x0447, 0x8489, 0x0448, 0x848A, 0x0449, 0x848B, 0x044A, 0x848C, 0x044B, 0x848D, 0x044C, 0x848E, 0x044D, 0x848F, 0x044E, 0x8490, + 0x044F, 0x8491, 0x0451, 0x8476, 0x2010, 0x815D, 0x2015, 0x815C, 0x2018, 0x8165, 0x2019, 0x8166, 0x201C, 0x8167, 0x201D, 0x8168, + 0x2020, 0x81F5, 0x2021, 0x81F6, 0x2025, 0x8164, 0x2026, 0x8163, 0x2030, 0x81F1, 0x2032, 0x818C, 0x2033, 0x818D, 0x203B, 0x81A6, + 0x2103, 0x818E, 0x2116, 0x8782, 0x2121, 0x8784, 0x212B, 0x81F0, 0x2160, 0x8754, 0x2161, 0x8755, 0x2162, 0x8756, 0x2163, 0x8757, + 0x2164, 0x8758, 0x2165, 0x8759, 0x2166, 0x875A, 0x2167, 0x875B, 0x2168, 0x875C, 0x2169, 0x875D, 0x2170, 0xFA40, 0x2171, 0xFA41, + 0x2172, 0xFA42, 0x2173, 0xFA43, 0x2174, 0xFA44, 0x2175, 0xFA45, 0x2176, 0xFA46, 0x2177, 0xFA47, 0x2178, 0xFA48, 0x2179, 0xFA49, + 0x2190, 0x81A9, 0x2191, 0x81AA, 0x2192, 0x81A8, 0x2193, 0x81AB, 0x21D2, 0x81CB, 0x21D4, 0x81CC, 0x2200, 0x81CD, 0x2202, 0x81DD, + 0x2203, 0x81CE, 0x2207, 0x81DE, 0x2208, 0x81B8, 0x220B, 0x81B9, 0x2211, 0x8794, 0x221A, 0x81E3, 0x221D, 0x81E5, 0x221E, 0x8187, + 0x221F, 0x8798, 0x2220, 0x81DA, 0x2225, 0x8161, 0x2227, 0x81C8, 0x2228, 0x81C9, 0x2229, 0x81BF, 0x222A, 0x81BE, 0x222B, 0x81E7, + 0x222C, 0x81E8, 0x222E, 0x8793, 0x2234, 0x8188, 0x2235, 0x81E6, 0x223D, 0x81E4, 0x2252, 0x81E0, 0x2260, 0x8182, 0x2261, 0x81DF, + 0x2266, 0x8185, 0x2267, 0x8186, 0x226A, 0x81E1, 0x226B, 0x81E2, 0x2282, 0x81BC, 0x2283, 0x81BD, 0x2286, 0x81BA, 0x2287, 0x81BB, + 0x22A5, 0x81DB, 0x22BF, 0x8799, 0x2312, 0x81DC, 0x2460, 0x8740, 0x2461, 0x8741, 0x2462, 0x8742, 0x2463, 0x8743, 0x2464, 0x8744, + 0x2465, 0x8745, 0x2466, 0x8746, 0x2467, 0x8747, 0x2468, 0x8748, 0x2469, 0x8749, 0x246A, 0x874A, 0x246B, 0x874B, 0x246C, 0x874C, + 0x246D, 0x874D, 0x246E, 0x874E, 0x246F, 0x874F, 0x2470, 0x8750, 0x2471, 0x8751, 0x2472, 0x8752, 0x2473, 0x8753, 0x2500, 0x849F, + 0x2501, 0x84AA, 0x2502, 0x84A0, 0x2503, 0x84AB, 0x250C, 0x84A1, 0x250F, 0x84AC, 0x2510, 0x84A2, 0x2513, 0x84AD, 0x2514, 0x84A4, + 0x2517, 0x84AF, 0x2518, 0x84A3, 0x251B, 0x84AE, 0x251C, 0x84A5, 0x251D, 0x84BA, 0x2520, 0x84B5, 0x2523, 0x84B0, 0x2524, 0x84A7, + 0x2525, 0x84BC, 0x2528, 0x84B7, 0x252B, 0x84B2, 0x252C, 0x84A6, 0x252F, 0x84B6, 0x2530, 0x84BB, 0x2533, 0x84B1, 0x2534, 0x84A8, + 0x2537, 0x84B8, 0x2538, 0x84BD, 0x253B, 0x84B3, 0x253C, 0x84A9, 0x253F, 0x84B9, 0x2542, 0x84BE, 0x254B, 0x84B4, 0x25A0, 0x81A1, + 0x25A1, 0x81A0, 0x25B2, 0x81A3, 0x25B3, 0x81A2, 0x25BC, 0x81A5, 0x25BD, 0x81A4, 0x25C6, 0x819F, 0x25C7, 0x819E, 0x25CB, 0x819B, + 0x25CE, 0x819D, 0x25CF, 0x819C, 0x25EF, 0x81FC, 0x2605, 0x819A, 0x2606, 0x8199, 0x2640, 0x818A, 0x2642, 0x8189, 0x266A, 0x81F4, + 0x266D, 0x81F3, 0x266F, 0x81F2, 0x3000, 0x8140, 0x3001, 0x8141, 0x3002, 0x8142, 0x3003, 0x8156, 0x3005, 0x8158, 0x3006, 0x8159, + 0x3007, 0x815A, 0x3008, 0x8171, 0x3009, 0x8172, 0x300A, 0x8173, 0x300B, 0x8174, 0x300C, 0x8175, 0x300D, 0x8176, 0x300E, 0x8177, + 0x300F, 0x8178, 0x3010, 0x8179, 0x3011, 0x817A, 0x3012, 0x81A7, 0x3013, 0x81AC, 0x3014, 0x816B, 0x3015, 0x816C, 0x301D, 0x8780, + 0x301F, 0x8781, 0x3041, 0x829F, 0x3042, 0x82A0, 0x3043, 0x82A1, 0x3044, 0x82A2, 0x3045, 0x82A3, 0x3046, 0x82A4, 0x3047, 0x82A5, + 0x3048, 0x82A6, 0x3049, 0x82A7, 0x304A, 0x82A8, 0x304B, 0x82A9, 0x304C, 0x82AA, 0x304D, 0x82AB, 0x304E, 0x82AC, 0x304F, 0x82AD, + 0x3050, 0x82AE, 0x3051, 0x82AF, 0x3052, 0x82B0, 0x3053, 0x82B1, 0x3054, 0x82B2, 0x3055, 0x82B3, 0x3056, 0x82B4, 0x3057, 0x82B5, + 0x3058, 0x82B6, 0x3059, 0x82B7, 0x305A, 0x82B8, 0x305B, 0x82B9, 0x305C, 0x82BA, 0x305D, 0x82BB, 0x305E, 0x82BC, 0x305F, 0x82BD, + 0x3060, 0x82BE, 0x3061, 0x82BF, 0x3062, 0x82C0, 0x3063, 0x82C1, 0x3064, 0x82C2, 0x3065, 0x82C3, 0x3066, 0x82C4, 0x3067, 0x82C5, + 0x3068, 0x82C6, 0x3069, 0x82C7, 0x306A, 0x82C8, 0x306B, 0x82C9, 0x306C, 0x82CA, 0x306D, 0x82CB, 0x306E, 0x82CC, 0x306F, 0x82CD, + 0x3070, 0x82CE, 0x3071, 0x82CF, 0x3072, 0x82D0, 0x3073, 0x82D1, 0x3074, 0x82D2, 0x3075, 0x82D3, 0x3076, 0x82D4, 0x3077, 0x82D5, + 0x3078, 0x82D6, 0x3079, 0x82D7, 0x307A, 0x82D8, 0x307B, 0x82D9, 0x307C, 0x82DA, 0x307D, 0x82DB, 0x307E, 0x82DC, 0x307F, 0x82DD, + 0x3080, 0x82DE, 0x3081, 0x82DF, 0x3082, 0x82E0, 0x3083, 0x82E1, 0x3084, 0x82E2, 0x3085, 0x82E3, 0x3086, 0x82E4, 0x3087, 0x82E5, + 0x3088, 0x82E6, 0x3089, 0x82E7, 0x308A, 0x82E8, 0x308B, 0x82E9, 0x308C, 0x82EA, 0x308D, 0x82EB, 0x308E, 0x82EC, 0x308F, 0x82ED, + 0x3090, 0x82EE, 0x3091, 0x82EF, 0x3092, 0x82F0, 0x3093, 0x82F1, 0x309B, 0x814A, 0x309C, 0x814B, 0x309D, 0x8154, 0x309E, 0x8155, + 0x30A1, 0x8340, 0x30A2, 0x8341, 0x30A3, 0x8342, 0x30A4, 0x8343, 0x30A5, 0x8344, 0x30A6, 0x8345, 0x30A7, 0x8346, 0x30A8, 0x8347, + 0x30A9, 0x8348, 0x30AA, 0x8349, 0x30AB, 0x834A, 0x30AC, 0x834B, 0x30AD, 0x834C, 0x30AE, 0x834D, 0x30AF, 0x834E, 0x30B0, 0x834F, + 0x30B1, 0x8350, 0x30B2, 0x8351, 0x30B3, 0x8352, 0x30B4, 0x8353, 0x30B5, 0x8354, 0x30B6, 0x8355, 0x30B7, 0x8356, 0x30B8, 0x8357, + 0x30B9, 0x8358, 0x30BA, 0x8359, 0x30BB, 0x835A, 0x30BC, 0x835B, 0x30BD, 0x835C, 0x30BE, 0x835D, 0x30BF, 0x835E, 0x30C0, 0x835F, + 0x30C1, 0x8360, 0x30C2, 0x8361, 0x30C3, 0x8362, 0x30C4, 0x8363, 0x30C5, 0x8364, 0x30C6, 0x8365, 0x30C7, 0x8366, 0x30C8, 0x8367, + 0x30C9, 0x8368, 0x30CA, 0x8369, 0x30CB, 0x836A, 0x30CC, 0x836B, 0x30CD, 0x836C, 0x30CE, 0x836D, 0x30CF, 0x836E, 0x30D0, 0x836F, + 0x30D1, 0x8370, 0x30D2, 0x8371, 0x30D3, 0x8372, 0x30D4, 0x8373, 0x30D5, 0x8374, 0x30D6, 0x8375, 0x30D7, 0x8376, 0x30D8, 0x8377, + 0x30D9, 0x8378, 0x30DA, 0x8379, 0x30DB, 0x837A, 0x30DC, 0x837B, 0x30DD, 0x837C, 0x30DE, 0x837D, 0x30DF, 0x837E, 0x30E0, 0x8380, + 0x30E1, 0x8381, 0x30E2, 0x8382, 0x30E3, 0x8383, 0x30E4, 0x8384, 0x30E5, 0x8385, 0x30E6, 0x8386, 0x30E7, 0x8387, 0x30E8, 0x8388, + 0x30E9, 0x8389, 0x30EA, 0x838A, 0x30EB, 0x838B, 0x30EC, 0x838C, 0x30ED, 0x838D, 0x30EE, 0x838E, 0x30EF, 0x838F, 0x30F0, 0x8390, + 0x30F1, 0x8391, 0x30F2, 0x8392, 0x30F3, 0x8393, 0x30F4, 0x8394, 0x30F5, 0x8395, 0x30F6, 0x8396, 0x30FB, 0x8145, 0x30FC, 0x815B, + 0x30FD, 0x8152, 0x30FE, 0x8153, 0x3231, 0x878A, 0x3232, 0x878B, 0x3239, 0x878C, 0x32A4, 0x8785, 0x32A5, 0x8786, 0x32A6, 0x8787, + 0x32A7, 0x8788, 0x32A8, 0x8789, 0x3303, 0x8765, 0x330D, 0x8769, 0x3314, 0x8760, 0x3318, 0x8763, 0x3322, 0x8761, 0x3323, 0x876B, + 0x3326, 0x876A, 0x3327, 0x8764, 0x332B, 0x876C, 0x3336, 0x8766, 0x333B, 0x876E, 0x3349, 0x875F, 0x334A, 0x876D, 0x334D, 0x8762, + 0x3351, 0x8767, 0x3357, 0x8768, 0x337B, 0x877E, 0x337C, 0x878F, 0x337D, 0x878E, 0x337E, 0x878D, 0x338E, 0x8772, 0x338F, 0x8773, + 0x339C, 0x876F, 0x339D, 0x8770, 0x339E, 0x8771, 0x33A1, 0x8775, 0x33C4, 0x8774, 0x33CD, 0x8783, 0x4E00, 0x88EA, 0x4E01, 0x929A, + 0x4E03, 0x8EB5, 0x4E07, 0x969C, 0x4E08, 0x8FE4, 0x4E09, 0x8E4F, 0x4E0A, 0x8FE3, 0x4E0B, 0x89BA, 0x4E0D, 0x9573, 0x4E0E, 0x975E, + 0x4E10, 0x98A0, 0x4E11, 0x894E, 0x4E14, 0x8A8E, 0x4E15, 0x98A1, 0x4E16, 0x90A2, 0x4E17, 0x99C0, 0x4E18, 0x8B75, 0x4E19, 0x95B8, + 0x4E1E, 0x8FE5, 0x4E21, 0x97BC, 0x4E26, 0x95C0, 0x4E28, 0xFA68, 0x4E2A, 0x98A2, 0x4E2D, 0x9286, 0x4E31, 0x98A3, 0x4E32, 0x8BF8, + 0x4E36, 0x98A4, 0x4E38, 0x8ADB, 0x4E39, 0x924F, 0x4E3B, 0x8EE5, 0x4E3C, 0x98A5, 0x4E3F, 0x98A6, 0x4E42, 0x98A7, 0x4E43, 0x9454, + 0x4E45, 0x8B76, 0x4E4B, 0x9456, 0x4E4D, 0x93E1, 0x4E4E, 0x8CC1, 0x4E4F, 0x9652, 0x4E55, 0xE568, 0x4E56, 0x98A8, 0x4E57, 0x8FE6, + 0x4E58, 0x98A9, 0x4E59, 0x89B3, 0x4E5D, 0x8BE3, 0x4E5E, 0x8CEE, 0x4E5F, 0x96E7, 0x4E62, 0x9BA4, 0x4E71, 0x9790, 0x4E73, 0x93FB, + 0x4E7E, 0x8AA3, 0x4E80, 0x8B54, 0x4E82, 0x98AA, 0x4E85, 0x98AB, 0x4E86, 0x97B9, 0x4E88, 0x975C, 0x4E89, 0x9188, 0x4E8A, 0x98AD, + 0x4E8B, 0x8E96, 0x4E8C, 0x93F1, 0x4E8E, 0x98B0, 0x4E91, 0x895D, 0x4E92, 0x8CDD, 0x4E94, 0x8CDC, 0x4E95, 0x88E4, 0x4E98, 0x986A, + 0x4E99, 0x9869, 0x4E9B, 0x8DB1, 0x4E9C, 0x889F, 0x4E9E, 0x98B1, 0x4E9F, 0x98B2, 0x4EA0, 0x98B3, 0x4EA1, 0x9653, 0x4EA2, 0x98B4, + 0x4EA4, 0x8CF0, 0x4EA5, 0x88E5, 0x4EA6, 0x9692, 0x4EA8, 0x8B9C, 0x4EAB, 0x8B9D, 0x4EAC, 0x8B9E, 0x4EAD, 0x92E0, 0x4EAE, 0x97BA, + 0x4EB0, 0x98B5, 0x4EB3, 0x98B6, 0x4EB6, 0x98B7, 0x4EBA, 0x906C, 0x4EC0, 0x8F59, 0x4EC1, 0x906D, 0x4EC2, 0x98BC, 0x4EC4, 0x98BA, + 0x4EC6, 0x98BB, 0x4EC7, 0x8B77, 0x4ECA, 0x8DA1, 0x4ECB, 0x89EE, 0x4ECD, 0x98B9, 0x4ECE, 0x98B8, 0x4ECF, 0x95A7, 0x4ED4, 0x8E65, + 0x4ED5, 0x8E64, 0x4ED6, 0x91BC, 0x4ED7, 0x98BD, 0x4ED8, 0x9574, 0x4ED9, 0x90E5, 0x4EDD, 0x8157, 0x4EDE, 0x98BE, 0x4EDF, 0x98C0, + 0x4EE1, 0xFA69, 0x4EE3, 0x91E3, 0x4EE4, 0x97DF, 0x4EE5, 0x88C8, 0x4EED, 0x98BF, 0x4EEE, 0x89BC, 0x4EF0, 0x8BC2, 0x4EF2, 0x9287, + 0x4EF6, 0x8C8F, 0x4EF7, 0x98C1, 0x4EFB, 0x9443, 0x4EFC, 0xFA6A, 0x4F00, 0xFA6B, 0x4F01, 0x8AE9, 0x4F03, 0xFA6C, 0x4F09, 0x98C2, + 0x4F0A, 0x88C9, 0x4F0D, 0x8CDE, 0x4F0E, 0x8AEA, 0x4F0F, 0x959A, 0x4F10, 0x94B0, 0x4F11, 0x8B78, 0x4F1A, 0x89EF, 0x4F1C, 0x98E5, + 0x4F1D, 0x9360, 0x4F2F, 0x948C, 0x4F30, 0x98C4, 0x4F34, 0x94BA, 0x4F36, 0x97E0, 0x4F38, 0x904C, 0x4F39, 0xFA6D, 0x4F3A, 0x8E66, + 0x4F3C, 0x8E97, 0x4F3D, 0x89BE, 0x4F43, 0x92CF, 0x4F46, 0x9241, 0x4F47, 0x98C8, 0x4F4D, 0x88CA, 0x4F4E, 0x92E1, 0x4F4F, 0x8F5A, + 0x4F50, 0x8DB2, 0x4F51, 0x9743, 0x4F53, 0x91CC, 0x4F55, 0x89BD, 0x4F56, 0xFA6E, 0x4F57, 0x98C7, 0x4F59, 0x975D, 0x4F5A, 0x98C3, + 0x4F5B, 0x98C5, 0x4F5C, 0x8DEC, 0x4F5D, 0x98C6, 0x4F5E, 0x9B43, 0x4F69, 0x98CE, 0x4F6F, 0x98D1, 0x4F70, 0x98CF, 0x4F73, 0x89C0, + 0x4F75, 0x95B9, 0x4F76, 0x98C9, 0x4F7B, 0x98CD, 0x4F7C, 0x8CF1, 0x4F7F, 0x8E67, 0x4F83, 0x8AA4, 0x4F86, 0x98D2, 0x4F88, 0x98CA, + 0x4F8A, 0xFA70, 0x4F8B, 0x97E1, 0x4F8D, 0x8E98, 0x4F8F, 0x98CB, 0x4F91, 0x98D0, 0x4F92, 0xFA6F, 0x4F94, 0xFA72, 0x4F96, 0x98D3, + 0x4F98, 0x98CC, 0x4F9A, 0xFA71, 0x4F9B, 0x8B9F, 0x4F9D, 0x88CB, 0x4FA0, 0x8BA0, 0x4FA1, 0x89BF, 0x4FAB, 0x9B44, 0x4FAD, 0x9699, + 0x4FAE, 0x958E, 0x4FAF, 0x8CF2, 0x4FB5, 0x904E, 0x4FB6, 0x97B5, 0x4FBF, 0x95D6, 0x4FC2, 0x8C57, 0x4FC3, 0x91A3, 0x4FC4, 0x89E2, + 0x4FC9, 0xFA61, 0x4FCA, 0x8F72, 0x4FCD, 0xFA73, 0x4FCE, 0x98D7, 0x4FD0, 0x98DC, 0x4FD1, 0x98DA, 0x4FD4, 0x98D5, 0x4FD7, 0x91AD, + 0x4FD8, 0x98D8, 0x4FDA, 0x98DB, 0x4FDB, 0x98D9, 0x4FDD, 0x95DB, 0x4FDF, 0x98D6, 0x4FE1, 0x904D, 0x4FE3, 0x9693, 0x4FE4, 0x98DD, + 0x4FE5, 0x98DE, 0x4FEE, 0x8F43, 0x4FEF, 0x98EB, 0x4FF3, 0x946F, 0x4FF5, 0x9555, 0x4FF6, 0x98E6, 0x4FF8, 0x95EE, 0x4FFA, 0x89B4, + 0x4FFE, 0x98EA, 0x4FFF, 0xFA76, 0x5005, 0x98E4, 0x5006, 0x98ED, 0x5009, 0x9171, 0x500B, 0x8CC2, 0x500D, 0x947B, 0x500F, 0xE0C5, + 0x5011, 0x98EC, 0x5012, 0x937C, 0x5014, 0x98E1, 0x5016, 0x8CF4, 0x5019, 0x8CF3, 0x501A, 0x98DF, 0x501E, 0xFA77, 0x501F, 0x8ED8, + 0x5021, 0x98E7, 0x5022, 0xFA75, 0x5023, 0x95ED, 0x5024, 0x926C, 0x5025, 0x98E3, 0x5026, 0x8C91, 0x5028, 0x98E0, 0x5029, 0x98E8, + 0x502A, 0x98E2, 0x502B, 0x97CF, 0x502C, 0x98E9, 0x502D, 0x9860, 0x5036, 0x8BE4, 0x5039, 0x8C90, 0x5040, 0xFA74, 0x5042, 0xFA7A, + 0x5043, 0x98EE, 0x5046, 0xFA78, 0x5047, 0x98EF, 0x5048, 0x98F3, 0x5049, 0x88CC, 0x504F, 0x95CE, 0x5050, 0x98F2, 0x5055, 0x98F1, + 0x5056, 0x98F5, 0x505A, 0x98F4, 0x505C, 0x92E2, 0x5065, 0x8C92, 0x506C, 0x98F6, 0x5070, 0xFA79, 0x5072, 0x8EC3, 0x5074, 0x91A4, + 0x5075, 0x92E3, 0x5076, 0x8BF4, 0x5078, 0x98F7, 0x507D, 0x8B55, 0x5080, 0x98F8, 0x5085, 0x98FA, 0x508D, 0x9654, 0x5091, 0x8C86, + 0x5094, 0xFA7B, 0x5098, 0x8E50, 0x5099, 0x94F5, 0x509A, 0x98F9, 0x50AC, 0x8DC3, 0x50AD, 0x9762, 0x50B2, 0x98FC, 0x50B3, 0x9942, + 0x50B4, 0x98FB, 0x50B5, 0x8DC2, 0x50B7, 0x8F9D, 0x50BE, 0x8C58, 0x50C2, 0x9943, 0x50C5, 0x8BCD, 0x50C9, 0x9940, 0x50CA, 0x9941, + 0x50CD, 0x93AD, 0x50CF, 0x919C, 0x50D1, 0x8BA1, 0x50D5, 0x966C, 0x50D6, 0x9944, 0x50D8, 0xFA7D, 0x50DA, 0x97BB, 0x50DE, 0x9945, + 0x50E3, 0x9948, 0x50E5, 0x9946, 0x50E7, 0x916D, 0x50ED, 0x9947, 0x50EE, 0x9949, 0x50F4, 0xFA7C, 0x50F5, 0x994B, 0x50F9, 0x994A, + 0x50FB, 0x95C6, 0x5100, 0x8B56, 0x5101, 0x994D, 0x5102, 0x994E, 0x5104, 0x89AD, 0x5109, 0x994C, 0x5112, 0x8EF2, 0x5114, 0x9951, + 0x5115, 0x9950, 0x5116, 0x994F, 0x5118, 0x98D4, 0x511A, 0x9952, 0x511F, 0x8F9E, 0x5121, 0x9953, 0x512A, 0x9744, 0x5132, 0x96D7, + 0x5137, 0x9955, 0x513A, 0x9954, 0x513B, 0x9957, 0x513C, 0x9956, 0x513F, 0x9958, 0x5140, 0x9959, 0x5141, 0x88F2, 0x5143, 0x8CB3, + 0x5144, 0x8C5A, 0x5145, 0x8F5B, 0x5146, 0x929B, 0x5147, 0x8BA2, 0x5148, 0x90E6, 0x5149, 0x8CF5, 0x514A, 0xFA7E, 0x514B, 0x8D8E, + 0x514C, 0x995B, 0x514D, 0x96C6, 0x514E, 0x9365, 0x5150, 0x8E99, 0x5152, 0x995A, 0x5154, 0x995C, 0x515A, 0x937D, 0x515C, 0x8A95, + 0x5162, 0x995D, 0x5164, 0xFA80, 0x5165, 0x93FC, 0x5168, 0x9153, 0x5169, 0x995F, 0x516A, 0x9960, 0x516B, 0x94AA, 0x516C, 0x8CF6, + 0x516D, 0x985A, 0x516E, 0x9961, 0x5171, 0x8BA4, 0x5175, 0x95BA, 0x5176, 0x91B4, 0x5177, 0x8BEF, 0x5178, 0x9354, 0x517C, 0x8C93, + 0x5180, 0x9962, 0x5182, 0x9963, 0x5185, 0x93E0, 0x5186, 0x897E, 0x5189, 0x9966, 0x518A, 0x8DFB, 0x518C, 0x9965, 0x518D, 0x8DC4, + 0x518F, 0x9967, 0x5190, 0xE3EC, 0x5191, 0x9968, 0x5192, 0x9660, 0x5193, 0x9969, 0x5195, 0x996A, 0x5196, 0x996B, 0x5197, 0x8FE7, + 0x5199, 0x8ECA, 0x519D, 0xFA81, 0x51A0, 0x8AA5, 0x51A2, 0x996E, 0x51A4, 0x996C, 0x51A5, 0x96BB, 0x51A6, 0x996D, 0x51A8, 0x9579, + 0x51A9, 0x996F, 0x51AA, 0x9970, 0x51AB, 0x9971, 0x51AC, 0x937E, 0x51B0, 0x9975, 0x51B1, 0x9973, 0x51B2, 0x9974, 0x51B3, 0x9972, + 0x51B4, 0x8DE1, 0x51B5, 0x9976, 0x51B6, 0x96E8, 0x51B7, 0x97E2, 0x51BD, 0x9977, 0x51BE, 0xFA82, 0x51C4, 0x90A6, 0x51C5, 0x9978, + 0x51C6, 0x8F79, 0x51C9, 0x9979, 0x51CB, 0x929C, 0x51CC, 0x97BD, 0x51CD, 0x9380, 0x51D6, 0x99C3, 0x51DB, 0x997A, 0x51DC, 0xEAA3, + 0x51DD, 0x8BC3, 0x51E0, 0x997B, 0x51E1, 0x967D, 0x51E6, 0x8F88, 0x51E7, 0x91FA, 0x51E9, 0x997D, 0x51EA, 0x93E2, 0x51EC, 0xFA83, + 0x51ED, 0x997E, 0x51F0, 0x9980, 0x51F1, 0x8A4D, 0x51F5, 0x9981, 0x51F6, 0x8BA5, 0x51F8, 0x93CA, 0x51F9, 0x899A, 0x51FA, 0x8F6F, + 0x51FD, 0x949F, 0x51FE, 0x9982, 0x5200, 0x9381, 0x5203, 0x906E, 0x5204, 0x9983, 0x5206, 0x95AA, 0x5207, 0x90D8, 0x5208, 0x8AA0, + 0x520A, 0x8AA7, 0x520B, 0x9984, 0x520E, 0x9986, 0x5211, 0x8C59, 0x5214, 0x9985, 0x5215, 0xFA84, 0x5217, 0x97F1, 0x521D, 0x8F89, + 0x5224, 0x94BB, 0x5225, 0x95CA, 0x5227, 0x9987, 0x5229, 0x9798, 0x522A, 0x9988, 0x522E, 0x9989, 0x5230, 0x939E, 0x5233, 0x998A, + 0x5236, 0x90A7, 0x5237, 0x8DFC, 0x5238, 0x8C94, 0x5239, 0x998B, 0x523A, 0x8E68, 0x523B, 0x8D8F, 0x5243, 0x92E4, 0x5244, 0x998D, + 0x5247, 0x91A5, 0x524A, 0x8DED, 0x524B, 0x998E, 0x524C, 0x998F, 0x524D, 0x914F, 0x524F, 0x998C, 0x5254, 0x9991, 0x5256, 0x9655, + 0x525B, 0x8D84, 0x525E, 0x9990, 0x5263, 0x8C95, 0x5264, 0x8DDC, 0x5265, 0x948D, 0x5269, 0x9994, 0x526A, 0x9992, 0x526F, 0x959B, + 0x5270, 0x8FE8, 0x5271, 0x999B, 0x5272, 0x8A84, 0x5273, 0x9995, 0x5274, 0x9993, 0x5275, 0x916E, 0x527D, 0x9997, 0x527F, 0x9996, + 0x5283, 0x8A63, 0x5287, 0x8C80, 0x5288, 0x999C, 0x5289, 0x97AB, 0x528D, 0x9998, 0x5291, 0x999D, 0x5292, 0x999A, 0x5294, 0x9999, + 0x529B, 0x97CD, 0x529C, 0xFA85, 0x529F, 0x8CF7, 0x52A0, 0x89C1, 0x52A3, 0x97F2, 0x52A6, 0xFA86, 0x52A9, 0x8F95, 0x52AA, 0x9377, + 0x52AB, 0x8D85, 0x52AC, 0x99A0, 0x52AD, 0x99A1, 0x52AF, 0xFB77, 0x52B1, 0x97E3, 0x52B4, 0x984A, 0x52B5, 0x99A3, 0x52B9, 0x8CF8, + 0x52BC, 0x99A2, 0x52BE, 0x8A4E, 0x52C0, 0xFA87, 0x52C1, 0x99A4, 0x52C3, 0x9675, 0x52C5, 0x92BA, 0x52C7, 0x9745, 0x52C9, 0x95D7, + 0x52CD, 0x99A5, 0x52D2, 0xE8D3, 0x52D5, 0x93AE, 0x52D7, 0x99A6, 0x52D8, 0x8AA8, 0x52D9, 0x96B1, 0x52DB, 0xFA88, 0x52DD, 0x8F9F, + 0x52DE, 0x99A7, 0x52DF, 0x95E5, 0x52E0, 0x99AB, 0x52E2, 0x90A8, 0x52E3, 0x99A8, 0x52E4, 0x8BCE, 0x52E6, 0x99A9, 0x52E7, 0x8AA9, + 0x52F2, 0x8C4D, 0x52F3, 0x99AC, 0x52F5, 0x99AD, 0x52F8, 0x99AE, 0x52F9, 0x99AF, 0x52FA, 0x8ED9, 0x52FE, 0x8CF9, 0x52FF, 0x96DC, + 0x5300, 0xFA89, 0x5301, 0x96E6, 0x5302, 0x93F5, 0x5305, 0x95EF, 0x5306, 0x99B0, 0x5307, 0xFA8A, 0x5308, 0x99B1, 0x530D, 0x99B3, + 0x530F, 0x99B5, 0x5310, 0x99B4, 0x5315, 0x99B6, 0x5316, 0x89BB, 0x5317, 0x966B, 0x5319, 0x8DFA, 0x531A, 0x99B7, 0x531D, 0x9178, + 0x5320, 0x8FA0, 0x5321, 0x8BA7, 0x5323, 0x99B8, 0x5324, 0xFA8B, 0x532A, 0x94D9, 0x532F, 0x99B9, 0x5331, 0x99BA, 0x5333, 0x99BB, + 0x5338, 0x99BC, 0x5339, 0x9543, 0x533A, 0x8BE6, 0x533B, 0x88E3, 0x533F, 0x93BD, 0x5340, 0x99BD, 0x5341, 0x8F5C, 0x5343, 0x90E7, + 0x5345, 0x99BF, 0x5346, 0x99BE, 0x5347, 0x8FA1, 0x5348, 0x8CDF, 0x5349, 0x99C1, 0x534A, 0x94BC, 0x534D, 0x99C2, 0x5351, 0x94DA, + 0x5352, 0x91B2, 0x5353, 0x91EC, 0x5354, 0x8BA6, 0x5357, 0x93EC, 0x5358, 0x9250, 0x535A, 0x948E, 0x535C, 0x966D, 0x535E, 0x99C4, + 0x5360, 0x90E8, 0x5366, 0x8C54, 0x5369, 0x99C5, 0x536E, 0x99C6, 0x536F, 0x894B, 0x5370, 0x88F3, 0x5371, 0x8AEB, 0x5372, 0xFA8C, + 0x5373, 0x91A6, 0x5374, 0x8B70, 0x5375, 0x9791, 0x5377, 0x99C9, 0x5378, 0x89B5, 0x537B, 0x99C8, 0x537F, 0x8BA8, 0x5382, 0x99CA, + 0x5384, 0x96EF, 0x5393, 0xFA8D, 0x5396, 0x99CB, 0x5398, 0x97D0, 0x539A, 0x8CFA, 0x539F, 0x8CB4, 0x53A0, 0x99CC, 0x53A5, 0x99CE, + 0x53A6, 0x99CD, 0x53A8, 0x907E, 0x53A9, 0x8958, 0x53AD, 0x897D, 0x53AE, 0x99CF, 0x53B0, 0x99D0, 0x53B2, 0xFA8E, 0x53B3, 0x8CB5, + 0x53B6, 0x99D1, 0x53BB, 0x8B8E, 0x53C2, 0x8E51, 0x53C3, 0x99D2, 0x53C8, 0x9694, 0x53C9, 0x8DB3, 0x53CA, 0x8B79, 0x53CB, 0x9746, + 0x53CC, 0x916F, 0x53CD, 0x94BD, 0x53CE, 0x8EFB, 0x53D4, 0x8F66, 0x53D6, 0x8EE6, 0x53D7, 0x8EF3, 0x53D9, 0x8F96, 0x53DB, 0x94BE, + 0x53DD, 0xFA8F, 0x53DF, 0x99D5, 0x53E1, 0x8962, 0x53E2, 0x9170, 0x53E3, 0x8CFB, 0x53E4, 0x8CC3, 0x53E5, 0x8BE5, 0x53E8, 0x99D9, + 0x53E9, 0x9240, 0x53EA, 0x91FC, 0x53EB, 0x8BA9, 0x53EC, 0x8FA2, 0x53ED, 0x99DA, 0x53EE, 0x99D8, 0x53EF, 0x89C2, 0x53F0, 0x91E4, + 0x53F1, 0x8EB6, 0x53F2, 0x8E6A, 0x53F3, 0x8945, 0x53F6, 0x8A90, 0x53F7, 0x8D86, 0x53F8, 0x8E69, 0x53FA, 0x99DB, 0x5401, 0x99DC, + 0x5403, 0x8B68, 0x5404, 0x8A65, 0x5408, 0x8D87, 0x5409, 0x8B67, 0x540A, 0x92DD, 0x540B, 0x8944, 0x540C, 0x93AF, 0x540D, 0x96BC, + 0x540E, 0x8D40, 0x540F, 0x9799, 0x5410, 0x9366, 0x5411, 0x8CFC, 0x541B, 0x8C4E, 0x541D, 0x99E5, 0x541F, 0x8BE1, 0x5420, 0x9669, + 0x5426, 0x94DB, 0x5429, 0x99E4, 0x542B, 0x8ADC, 0x542C, 0x99DF, 0x542D, 0x99E0, 0x542E, 0x99E2, 0x5436, 0x99E3, 0x5438, 0x8B7A, + 0x5439, 0x9081, 0x543B, 0x95AB, 0x543C, 0x99E1, 0x543D, 0x99DD, 0x543E, 0x8CE1, 0x5440, 0x99DE, 0x5442, 0x9843, 0x5446, 0x95F0, + 0x5448, 0x92E6, 0x5449, 0x8CE0, 0x544A, 0x8D90, 0x544E, 0x99E6, 0x5451, 0x93DB, 0x545F, 0x99EA, 0x5468, 0x8EFC, 0x546A, 0x8EF4, + 0x5470, 0x99ED, 0x5471, 0x99EB, 0x5473, 0x96A1, 0x5475, 0x99E8, 0x5476, 0x99F1, 0x5477, 0x99EC, 0x547B, 0x99EF, 0x547C, 0x8CC4, + 0x547D, 0x96BD, 0x5480, 0x99F0, 0x5484, 0x99F2, 0x5486, 0x99F4, 0x548A, 0xFA92, 0x548B, 0x8DEE, 0x548C, 0x9861, 0x548E, 0x99E9, + 0x548F, 0x99E7, 0x5490, 0x99F3, 0x5492, 0x99EE, 0x549C, 0xFA91, 0x54A2, 0x99F6, 0x54A4, 0x9A42, 0x54A5, 0x99F8, 0x54A8, 0x99FC, + 0x54A9, 0xFA93, 0x54AB, 0x9A40, 0x54AC, 0x99F9, 0x54AF, 0x9A5D, 0x54B2, 0x8DE7, 0x54B3, 0x8A50, 0x54B8, 0x99F7, 0x54BC, 0x9A44, + 0x54BD, 0x88F4, 0x54BE, 0x9A43, 0x54C0, 0x88A3, 0x54C1, 0x9569, 0x54C2, 0x9A41, 0x54C4, 0x99FA, 0x54C7, 0x99F5, 0x54C8, 0x99FB, + 0x54C9, 0x8DC6, 0x54D8, 0x9A45, 0x54E1, 0x88F5, 0x54E2, 0x9A4E, 0x54E5, 0x9A46, 0x54E6, 0x9A47, 0x54E8, 0x8FA3, 0x54E9, 0x9689, + 0x54ED, 0x9A4C, 0x54EE, 0x9A4B, 0x54F2, 0x934E, 0x54FA, 0x9A4D, 0x54FD, 0x9A4A, 0x54FF, 0xFA94, 0x5504, 0x8953, 0x5506, 0x8DB4, + 0x5507, 0x904F, 0x550F, 0x9A48, 0x5510, 0x9382, 0x5514, 0x9A49, 0x5516, 0x88A0, 0x552E, 0x9A53, 0x552F, 0x9742, 0x5531, 0x8FA5, + 0x5533, 0x9A59, 0x5538, 0x9A58, 0x5539, 0x9A4F, 0x553E, 0x91C1, 0x5540, 0x9A50, 0x5544, 0x91ED, 0x5545, 0x9A55, 0x5546, 0x8FA4, + 0x554C, 0x9A52, 0x554F, 0x96E2, 0x5553, 0x8C5B, 0x5556, 0x9A56, 0x5557, 0x9A57, 0x555C, 0x9A54, 0x555D, 0x9A5A, 0x5563, 0x9A51, + 0x557B, 0x9A60, 0x557C, 0x9A65, 0x557E, 0x9A61, 0x5580, 0x9A5C, 0x5583, 0x9A66, 0x5584, 0x9150, 0x5586, 0xFA95, 0x5587, 0x9A68, + 0x5589, 0x8D41, 0x558A, 0x9A5E, 0x558B, 0x929D, 0x5598, 0x9A62, 0x5599, 0x9A5B, 0x559A, 0x8AAB, 0x559C, 0x8AEC, 0x559D, 0x8A85, + 0x559E, 0x9A63, 0x559F, 0x9A5F, 0x55A7, 0x8C96, 0x55A8, 0x9A69, 0x55A9, 0x9A67, 0x55AA, 0x9172, 0x55AB, 0x8B69, 0x55AC, 0x8BAA, + 0x55AE, 0x9A64, 0x55B0, 0x8BF2, 0x55B6, 0x8963, 0x55C4, 0x9A6D, 0x55C5, 0x9A6B, 0x55C7, 0x9AA5, 0x55D4, 0x9A70, 0x55DA, 0x9A6A, + 0x55DC, 0x9A6E, 0x55DF, 0x9A6C, 0x55E3, 0x8E6B, 0x55E4, 0x9A6F, 0x55F7, 0x9A72, 0x55F9, 0x9A77, 0x55FD, 0x9A75, 0x55FE, 0x9A74, + 0x5606, 0x9251, 0x5609, 0x89C3, 0x5614, 0x9A71, 0x5616, 0x9A73, 0x5617, 0x8FA6, 0x5618, 0x8952, 0x561B, 0x9A76, 0x5629, 0x89DC, + 0x562F, 0x9A82, 0x5631, 0x8FFA, 0x5632, 0x9A7D, 0x5634, 0x9A7B, 0x5636, 0x9A7C, 0x5638, 0x9A7E, 0x5642, 0x895C, 0x564C, 0x9158, + 0x564E, 0x9A78, 0x5650, 0x9A79, 0x565B, 0x8A9A, 0x5664, 0x9A81, 0x5668, 0x8AED, 0x566A, 0x9A84, 0x566B, 0x9A80, 0x566C, 0x9A83, + 0x5674, 0x95AC, 0x5678, 0x93D3, 0x567A, 0x94B6, 0x5680, 0x9A86, 0x5686, 0x9A85, 0x5687, 0x8A64, 0x568A, 0x9A87, 0x568F, 0x9A8A, + 0x5694, 0x9A89, 0x56A0, 0x9A88, 0x56A2, 0x9458, 0x56A5, 0x9A8B, 0x56AE, 0x9A8C, 0x56B4, 0x9A8E, 0x56B6, 0x9A8D, 0x56BC, 0x9A90, + 0x56C0, 0x9A93, 0x56C1, 0x9A91, 0x56C2, 0x9A8F, 0x56C3, 0x9A92, 0x56C8, 0x9A94, 0x56CE, 0x9A95, 0x56D1, 0x9A96, 0x56D3, 0x9A97, + 0x56D7, 0x9A98, 0x56D8, 0x9964, 0x56DA, 0x8EFA, 0x56DB, 0x8E6C, 0x56DE, 0x89F1, 0x56E0, 0x88F6, 0x56E3, 0x9263, 0x56EE, 0x9A99, + 0x56F0, 0x8DA2, 0x56F2, 0x88CD, 0x56F3, 0x907D, 0x56F9, 0x9A9A, 0x56FA, 0x8CC5, 0x56FD, 0x8D91, 0x56FF, 0x9A9C, 0x5700, 0x9A9B, + 0x5703, 0x95DE, 0x5704, 0x9A9D, 0x5708, 0x9A9F, 0x5709, 0x9A9E, 0x570B, 0x9AA0, 0x570D, 0x9AA1, 0x570F, 0x8C97, 0x5712, 0x8980, + 0x5713, 0x9AA2, 0x5716, 0x9AA4, 0x5718, 0x9AA3, 0x571C, 0x9AA6, 0x571F, 0x9379, 0x5726, 0x9AA7, 0x5727, 0x88B3, 0x5728, 0x8DDD, + 0x572D, 0x8C5C, 0x5730, 0x926E, 0x5737, 0x9AA8, 0x5738, 0x9AA9, 0x573B, 0x9AAB, 0x5740, 0x9AAC, 0x5742, 0x8DE2, 0x5747, 0x8BCF, + 0x574A, 0x9656, 0x574E, 0x9AAA, 0x574F, 0x9AAD, 0x5750, 0x8DBF, 0x5751, 0x8D42, 0x5759, 0xFA96, 0x5761, 0x9AB1, 0x5764, 0x8DA3, + 0x5765, 0xFA97, 0x5766, 0x9252, 0x5769, 0x9AAE, 0x576A, 0x92D8, 0x577F, 0x9AB2, 0x5782, 0x9082, 0x5788, 0x9AB0, 0x5789, 0x9AB3, + 0x578B, 0x8C5E, 0x5793, 0x9AB4, 0x57A0, 0x9AB5, 0x57A2, 0x8D43, 0x57A3, 0x8A5F, 0x57A4, 0x9AB7, 0x57AA, 0x9AB8, 0x57AC, 0xFA98, + 0x57B0, 0x9AB9, 0x57B3, 0x9AB6, 0x57C0, 0x9AAF, 0x57C3, 0x9ABA, 0x57C6, 0x9ABB, 0x57C7, 0xFA9A, 0x57C8, 0xFA99, 0x57CB, 0x9684, + 0x57CE, 0x8FE9, 0x57D2, 0x9ABD, 0x57D3, 0x9ABE, 0x57D4, 0x9ABC, 0x57D6, 0x9AC0, 0x57DC, 0x9457, 0x57DF, 0x88E6, 0x57E0, 0x9575, + 0x57E3, 0x9AC1, 0x57F4, 0x8FFB, 0x57F7, 0x8EB7, 0x57F9, 0x947C, 0x57FA, 0x8AEE, 0x57FC, 0x8DE9, 0x5800, 0x9678, 0x5802, 0x93B0, + 0x5805, 0x8C98, 0x5806, 0x91CD, 0x580A, 0x9ABF, 0x580B, 0x9AC2, 0x5815, 0x91C2, 0x5819, 0x9AC3, 0x581D, 0x9AC4, 0x5821, 0x9AC6, + 0x5824, 0x92E7, 0x582A, 0x8AAC, 0x582F, 0xEA9F, 0x5830, 0x8981, 0x5831, 0x95F1, 0x5834, 0x8FEA, 0x5835, 0x9367, 0x583A, 0x8DE4, + 0x583D, 0x9ACC, 0x5840, 0x95BB, 0x5841, 0x97DB, 0x584A, 0x89F2, 0x584B, 0x9AC8, 0x5851, 0x9159, 0x5852, 0x9ACB, 0x5854, 0x9383, + 0x5857, 0x9368, 0x5858, 0x9384, 0x5859, 0x94B7, 0x585A, 0x92CB, 0x585E, 0x8DC7, 0x5862, 0x9AC7, 0x5869, 0x8996, 0x586B, 0x9355, + 0x5870, 0x9AC9, 0x5872, 0x9AC5, 0x5875, 0x906F, 0x5879, 0x9ACD, 0x587E, 0x8F6D, 0x5883, 0x8BAB, 0x5885, 0x9ACE, 0x5893, 0x95E6, + 0x5897, 0x919D, 0x589C, 0x92C4, 0x589E, 0xFA9D, 0x589F, 0x9AD0, 0x58A8, 0x966E, 0x58AB, 0x9AD1, 0x58AE, 0x9AD6, 0x58B2, 0xFA9E, + 0x58B3, 0x95AD, 0x58B8, 0x9AD5, 0x58B9, 0x9ACF, 0x58BA, 0x9AD2, 0x58BB, 0x9AD4, 0x58BE, 0x8DA4, 0x58C1, 0x95C7, 0x58C5, 0x9AD7, + 0x58C7, 0x9264, 0x58CA, 0x89F3, 0x58CC, 0x8FEB, 0x58D1, 0x9AD9, 0x58D3, 0x9AD8, 0x58D5, 0x8D88, 0x58D7, 0x9ADA, 0x58D8, 0x9ADC, + 0x58D9, 0x9ADB, 0x58DC, 0x9ADE, 0x58DE, 0x9AD3, 0x58DF, 0x9AE0, 0x58E4, 0x9ADF, 0x58E5, 0x9ADD, 0x58EB, 0x8E6D, 0x58EC, 0x9070, + 0x58EE, 0x9173, 0x58EF, 0x9AE1, 0x58F0, 0x90BA, 0x58F1, 0x88EB, 0x58F2, 0x9484, 0x58F7, 0x92D9, 0x58F9, 0x9AE3, 0x58FA, 0x9AE2, + 0x58FB, 0x9AE4, 0x58FC, 0x9AE5, 0x58FD, 0x9AE6, 0x5902, 0x9AE7, 0x5909, 0x95CF, 0x590A, 0x9AE8, 0x590B, 0xFA9F, 0x590F, 0x89C4, + 0x5910, 0x9AE9, 0x5915, 0x975B, 0x5916, 0x8A4F, 0x5918, 0x99C7, 0x5919, 0x8F67, 0x591A, 0x91BD, 0x591B, 0x9AEA, 0x591C, 0x96E9, + 0x5922, 0x96B2, 0x5925, 0x9AEC, 0x5927, 0x91E5, 0x5929, 0x9356, 0x592A, 0x91BE, 0x592B, 0x9576, 0x592C, 0x9AED, 0x592D, 0x9AEE, + 0x592E, 0x899B, 0x5931, 0x8EB8, 0x5932, 0x9AEF, 0x5937, 0x88CE, 0x5938, 0x9AF0, 0x593E, 0x9AF1, 0x5944, 0x8982, 0x5947, 0x8AEF, + 0x5948, 0x93DE, 0x5949, 0x95F2, 0x594E, 0x9AF5, 0x594F, 0x9174, 0x5950, 0x9AF4, 0x5951, 0x8C5F, 0x5953, 0xFAA0, 0x5954, 0x967A, + 0x5955, 0x9AF3, 0x5957, 0x9385, 0x5958, 0x9AF7, 0x595A, 0x9AF6, 0x595B, 0xFAA1, 0x595D, 0xFAA2, 0x5960, 0x9AF9, 0x5962, 0x9AF8, + 0x5963, 0xFAA3, 0x5965, 0x899C, 0x5967, 0x9AFA, 0x5968, 0x8FA7, 0x5969, 0x9AFC, 0x596A, 0x9244, 0x596C, 0x9AFB, 0x596E, 0x95B1, + 0x5973, 0x8F97, 0x5974, 0x937A, 0x5978, 0x9B40, 0x597D, 0x8D44, 0x5981, 0x9B41, 0x5982, 0x9440, 0x5983, 0x94DC, 0x5984, 0x96CF, + 0x598A, 0x9444, 0x598D, 0x9B4A, 0x5993, 0x8B57, 0x5996, 0x9764, 0x5999, 0x96AD, 0x599B, 0x9BAA, 0x599D, 0x9B42, 0x59A3, 0x9B45, + 0x59A4, 0xFAA4, 0x59A5, 0x91C3, 0x59A8, 0x9657, 0x59AC, 0x9369, 0x59B2, 0x9B46, 0x59B9, 0x9685, 0x59BA, 0xFAA5, 0x59BB, 0x8DC8, + 0x59BE, 0x8FA8, 0x59C6, 0x9B47, 0x59C9, 0x8E6F, 0x59CB, 0x8E6E, 0x59D0, 0x88B7, 0x59D1, 0x8CC6, 0x59D3, 0x90A9, 0x59D4, 0x88CF, + 0x59D9, 0x9B4B, 0x59DA, 0x9B4C, 0x59DC, 0x9B49, 0x59E5, 0x8957, 0x59E6, 0x8AAD, 0x59E8, 0x9B48, 0x59EA, 0x96C3, 0x59EB, 0x9550, + 0x59F6, 0x88A6, 0x59FB, 0x88F7, 0x59FF, 0x8E70, 0x5A01, 0x88D0, 0x5A03, 0x88A1, 0x5A09, 0x9B51, 0x5A11, 0x9B4F, 0x5A18, 0x96BA, + 0x5A1A, 0x9B52, 0x5A1C, 0x9B50, 0x5A1F, 0x9B4E, 0x5A20, 0x9050, 0x5A25, 0x9B4D, 0x5A29, 0x95D8, 0x5A2F, 0x8CE2, 0x5A35, 0x9B56, + 0x5A36, 0x9B57, 0x5A3C, 0x8FA9, 0x5A40, 0x9B53, 0x5A41, 0x984B, 0x5A46, 0x946B, 0x5A49, 0x9B55, 0x5A5A, 0x8DA5, 0x5A62, 0x9B58, + 0x5A66, 0x9577, 0x5A6A, 0x9B59, 0x5A6C, 0x9B54, 0x5A7F, 0x96B9, 0x5A92, 0x947D, 0x5A9A, 0x9B5A, 0x5A9B, 0x9551, 0x5ABC, 0x9B5B, + 0x5ABD, 0x9B5F, 0x5ABE, 0x9B5C, 0x5AC1, 0x89C5, 0x5AC2, 0x9B5E, 0x5AC9, 0x8EB9, 0x5ACB, 0x9B5D, 0x5ACC, 0x8C99, 0x5AD0, 0x9B6B, + 0x5AD6, 0x9B64, 0x5AD7, 0x9B61, 0x5AE1, 0x9284, 0x5AE3, 0x9B60, 0x5AE6, 0x9B62, 0x5AE9, 0x9B63, 0x5AFA, 0x9B65, 0x5AFB, 0x9B66, + 0x5B09, 0x8AF0, 0x5B0B, 0x9B68, 0x5B0C, 0x9B67, 0x5B16, 0x9B69, 0x5B22, 0x8FEC, 0x5B2A, 0x9B6C, 0x5B2C, 0x92DA, 0x5B30, 0x8964, + 0x5B32, 0x9B6A, 0x5B36, 0x9B6D, 0x5B3E, 0x9B6E, 0x5B40, 0x9B71, 0x5B43, 0x9B6F, 0x5B45, 0x9B70, 0x5B50, 0x8E71, 0x5B51, 0x9B72, + 0x5B54, 0x8D45, 0x5B55, 0x9B73, 0x5B56, 0xFAA6, 0x5B57, 0x8E9A, 0x5B58, 0x91B6, 0x5B5A, 0x9B74, 0x5B5B, 0x9B75, 0x5B5C, 0x8E79, + 0x5B5D, 0x8D46, 0x5B5F, 0x96D0, 0x5B63, 0x8B47, 0x5B64, 0x8CC7, 0x5B65, 0x9B76, 0x5B66, 0x8A77, 0x5B69, 0x9B77, 0x5B6B, 0x91B7, + 0x5B70, 0x9B78, 0x5B71, 0x9BA1, 0x5B73, 0x9B79, 0x5B75, 0x9B7A, 0x5B78, 0x9B7B, 0x5B7A, 0x9B7D, 0x5B80, 0x9B7E, 0x5B83, 0x9B80, + 0x5B85, 0x91EE, 0x5B87, 0x8946, 0x5B88, 0x8EE7, 0x5B89, 0x88C0, 0x5B8B, 0x9176, 0x5B8C, 0x8AAE, 0x5B8D, 0x8EB3, 0x5B8F, 0x8D47, + 0x5B95, 0x9386, 0x5B97, 0x8F40, 0x5B98, 0x8AAF, 0x5B99, 0x9288, 0x5B9A, 0x92E8, 0x5B9B, 0x88B6, 0x5B9C, 0x8B58, 0x5B9D, 0x95F3, + 0x5B9F, 0x8EC0, 0x5BA2, 0x8B71, 0x5BA3, 0x90E9, 0x5BA4, 0x8EBA, 0x5BA5, 0x9747, 0x5BA6, 0x9B81, 0x5BAE, 0x8B7B, 0x5BB0, 0x8DC9, + 0x5BB3, 0x8A51, 0x5BB4, 0x8983, 0x5BB5, 0x8FAA, 0x5BB6, 0x89C6, 0x5BB8, 0x9B82, 0x5BB9, 0x9765, 0x5BBF, 0x8F68, 0x5BC0, 0xFAA7, + 0x5BC2, 0x8EE2, 0x5BC3, 0x9B83, 0x5BC4, 0x8AF1, 0x5BC5, 0x93D0, 0x5BC6, 0x96A7, 0x5BC7, 0x9B84, 0x5BC9, 0x9B85, 0x5BCC, 0x9578, + 0x5BD0, 0x9B87, 0x5BD2, 0x8AA6, 0x5BD3, 0x8BF5, 0x5BD4, 0x9B86, 0x5BD8, 0xFAA9, 0x5BDB, 0x8AB0, 0x5BDD, 0x9051, 0x5BDE, 0x9B8B, + 0x5BDF, 0x8E40, 0x5BE1, 0x89C7, 0x5BE2, 0x9B8A, 0x5BE4, 0x9B88, 0x5BE5, 0x9B8C, 0x5BE6, 0x9B89, 0x5BE7, 0x944A, 0x5BE8, 0x9ECB, + 0x5BE9, 0x9052, 0x5BEB, 0x9B8D, 0x5BEC, 0xFAAA, 0x5BEE, 0x97BE, 0x5BF0, 0x9B8E, 0x5BF3, 0x9B90, 0x5BF5, 0x929E, 0x5BF6, 0x9B8F, + 0x5BF8, 0x90A1, 0x5BFA, 0x8E9B, 0x5BFE, 0x91CE, 0x5BFF, 0x8EF5, 0x5C01, 0x9595, 0x5C02, 0x90EA, 0x5C04, 0x8ECB, 0x5C05, 0x9B91, + 0x5C06, 0x8FAB, 0x5C07, 0x9B92, 0x5C08, 0x9B93, 0x5C09, 0x88D1, 0x5C0A, 0x91B8, 0x5C0B, 0x9071, 0x5C0D, 0x9B94, 0x5C0E, 0x93B1, + 0x5C0F, 0x8FAC, 0x5C11, 0x8FAD, 0x5C13, 0x9B95, 0x5C16, 0x90EB, 0x5C1A, 0x8FAE, 0x5C1E, 0xFAAB, 0x5C20, 0x9B96, 0x5C22, 0x9B97, + 0x5C24, 0x96DE, 0x5C28, 0x9B98, 0x5C2D, 0x8BC4, 0x5C31, 0x8F41, 0x5C38, 0x9B99, 0x5C39, 0x9B9A, 0x5C3A, 0x8EDA, 0x5C3B, 0x904B, + 0x5C3C, 0x93F2, 0x5C3D, 0x9073, 0x5C3E, 0x94F6, 0x5C3F, 0x9441, 0x5C40, 0x8BC7, 0x5C41, 0x9B9B, 0x5C45, 0x8B8F, 0x5C46, 0x9B9C, + 0x5C48, 0x8BFC, 0x5C4A, 0x93CD, 0x5C4B, 0x89AE, 0x5C4D, 0x8E72, 0x5C4E, 0x9B9D, 0x5C4F, 0x9BA0, 0x5C50, 0x9B9F, 0x5C51, 0x8BFB, + 0x5C53, 0x9B9E, 0x5C55, 0x9357, 0x5C5E, 0x91AE, 0x5C60, 0x936A, 0x5C61, 0x8EC6, 0x5C64, 0x9177, 0x5C65, 0x979A, 0x5C6C, 0x9BA2, + 0x5C6E, 0x9BA3, 0x5C6F, 0x93D4, 0x5C71, 0x8E52, 0x5C76, 0x9BA5, 0x5C79, 0x9BA6, 0x5C8C, 0x9BA7, 0x5C90, 0x8AF2, 0x5C91, 0x9BA8, + 0x5C94, 0x9BA9, 0x5CA1, 0x89AA, 0x5CA6, 0xFAAC, 0x5CA8, 0x915A, 0x5CA9, 0x8AE2, 0x5CAB, 0x9BAB, 0x5CAC, 0x96A6, 0x5CB1, 0x91D0, + 0x5CB3, 0x8A78, 0x5CB6, 0x9BAD, 0x5CB7, 0x9BAF, 0x5CB8, 0x8ADD, 0x5CBA, 0xFAAD, 0x5CBB, 0x9BAC, 0x5CBC, 0x9BAE, 0x5CBE, 0x9BB1, + 0x5CC5, 0x9BB0, 0x5CC7, 0x9BB2, 0x5CD9, 0x9BB3, 0x5CE0, 0x93BB, 0x5CE1, 0x8BAC, 0x5CE8, 0x89E3, 0x5CE9, 0x9BB4, 0x5CEA, 0x9BB9, + 0x5CED, 0x9BB7, 0x5CEF, 0x95F5, 0x5CF0, 0x95F4, 0x5CF5, 0xFAAE, 0x5CF6, 0x9387, 0x5CFA, 0x9BB6, 0x5CFB, 0x8F73, 0x5CFD, 0x9BB5, + 0x5D07, 0x9092, 0x5D0B, 0x9BBA, 0x5D0E, 0x8DE8, 0x5D11, 0x9BC0, 0x5D14, 0x9BC1, 0x5D15, 0x9BBB, 0x5D16, 0x8A52, 0x5D17, 0x9BBC, + 0x5D18, 0x9BC5, 0x5D19, 0x9BC4, 0x5D1A, 0x9BC3, 0x5D1B, 0x9BBF, 0x5D1F, 0x9BBE, 0x5D22, 0x9BC2, 0x5D27, 0xFAAF, 0x5D29, 0x95F6, + 0x5D42, 0xFAB2, 0x5D4B, 0x9BC9, 0x5D4C, 0x9BC6, 0x5D4E, 0x9BC8, 0x5D50, 0x9792, 0x5D52, 0x9BC7, 0x5D53, 0xFAB0, 0x5D5C, 0x9BBD, + 0x5D69, 0x9093, 0x5D6C, 0x9BCA, 0x5D6D, 0xFAB3, 0x5D6F, 0x8DB5, 0x5D73, 0x9BCB, 0x5D76, 0x9BCC, 0x5D82, 0x9BCF, 0x5D84, 0x9BCE, + 0x5D87, 0x9BCD, 0x5D8B, 0x9388, 0x5D8C, 0x9BB8, 0x5D90, 0x9BD5, 0x5D9D, 0x9BD1, 0x5DA2, 0x9BD0, 0x5DAC, 0x9BD2, 0x5DAE, 0x9BD3, + 0x5DB7, 0x9BD6, 0x5DB8, 0xFAB4, 0x5DB9, 0xFAB5, 0x5DBA, 0x97E4, 0x5DBC, 0x9BD7, 0x5DBD, 0x9BD4, 0x5DC9, 0x9BD8, 0x5DCC, 0x8ADE, + 0x5DCD, 0x9BD9, 0x5DD0, 0xFAB6, 0x5DD2, 0x9BDB, 0x5DD3, 0x9BDA, 0x5DD6, 0x9BDC, 0x5DDB, 0x9BDD, 0x5DDD, 0x90EC, 0x5DDE, 0x8F42, + 0x5DE1, 0x8F84, 0x5DE3, 0x9183, 0x5DE5, 0x8D48, 0x5DE6, 0x8DB6, 0x5DE7, 0x8D49, 0x5DE8, 0x8B90, 0x5DEB, 0x9BDE, 0x5DEE, 0x8DB7, + 0x5DF1, 0x8CC8, 0x5DF2, 0x9BDF, 0x5DF3, 0x96A4, 0x5DF4, 0x9462, 0x5DF5, 0x9BE0, 0x5DF7, 0x8D4A, 0x5DFB, 0x8AAA, 0x5DFD, 0x9246, + 0x5DFE, 0x8BD0, 0x5E02, 0x8E73, 0x5E03, 0x957A, 0x5E06, 0x94BF, 0x5E0B, 0x9BE1, 0x5E0C, 0x8AF3, 0x5E11, 0x9BE4, 0x5E16, 0x929F, + 0x5E19, 0x9BE3, 0x5E1A, 0x9BE2, 0x5E1B, 0x9BE5, 0x5E1D, 0x92E9, 0x5E25, 0x9083, 0x5E2B, 0x8E74, 0x5E2D, 0x90C8, 0x5E2F, 0x91D1, + 0x5E30, 0x8B41, 0x5E33, 0x92A0, 0x5E36, 0x9BE6, 0x5E37, 0x9BE7, 0x5E38, 0x8FED, 0x5E3D, 0x9658, 0x5E40, 0x9BEA, 0x5E43, 0x9BE9, + 0x5E44, 0x9BE8, 0x5E45, 0x959D, 0x5E47, 0x9BF1, 0x5E4C, 0x9679, 0x5E4E, 0x9BEB, 0x5E54, 0x9BED, 0x5E55, 0x968B, 0x5E57, 0x9BEC, + 0x5E5F, 0x9BEE, 0x5E61, 0x94A6, 0x5E62, 0x9BEF, 0x5E63, 0x95BC, 0x5E64, 0x9BF0, 0x5E72, 0x8AB1, 0x5E73, 0x95BD, 0x5E74, 0x944E, + 0x5E75, 0x9BF2, 0x5E76, 0x9BF3, 0x5E78, 0x8D4B, 0x5E79, 0x8AB2, 0x5E7A, 0x9BF4, 0x5E7B, 0x8CB6, 0x5E7C, 0x9763, 0x5E7D, 0x9748, + 0x5E7E, 0x8AF4, 0x5E7F, 0x9BF6, 0x5E81, 0x92A1, 0x5E83, 0x8D4C, 0x5E84, 0x8FAF, 0x5E87, 0x94DD, 0x5E8A, 0x8FB0, 0x5E8F, 0x8F98, + 0x5E95, 0x92EA, 0x5E96, 0x95F7, 0x5E97, 0x9358, 0x5E9A, 0x8D4D, 0x5E9C, 0x957B, 0x5EA0, 0x9BF7, 0x5EA6, 0x9378, 0x5EA7, 0x8DC0, + 0x5EAB, 0x8CC9, 0x5EAD, 0x92EB, 0x5EB5, 0x88C1, 0x5EB6, 0x8F8E, 0x5EB7, 0x8D4E, 0x5EB8, 0x9766, 0x5EC1, 0x9BF8, 0x5EC2, 0x9BF9, + 0x5EC3, 0x9470, 0x5EC8, 0x9BFA, 0x5EC9, 0x97F5, 0x5ECA, 0x984C, 0x5ECF, 0x9BFC, 0x5ED0, 0x9BFB, 0x5ED3, 0x8A66, 0x5ED6, 0x9C40, + 0x5EDA, 0x9C43, 0x5EDB, 0x9C44, 0x5EDD, 0x9C42, 0x5EDF, 0x955F, 0x5EE0, 0x8FB1, 0x5EE1, 0x9C46, 0x5EE2, 0x9C45, 0x5EE3, 0x9C41, + 0x5EE8, 0x9C47, 0x5EE9, 0x9C48, 0x5EEC, 0x9C49, 0x5EF0, 0x9C4C, 0x5EF1, 0x9C4A, 0x5EF3, 0x9C4B, 0x5EF4, 0x9C4D, 0x5EF6, 0x8984, + 0x5EF7, 0x92EC, 0x5EF8, 0x9C4E, 0x5EFA, 0x8C9A, 0x5EFB, 0x89F4, 0x5EFC, 0x9455, 0x5EFE, 0x9C4F, 0x5EFF, 0x93F9, 0x5F01, 0x95D9, + 0x5F03, 0x9C50, 0x5F04, 0x984D, 0x5F09, 0x9C51, 0x5F0A, 0x95BE, 0x5F0B, 0x9C54, 0x5F0C, 0x989F, 0x5F0D, 0x98AF, 0x5F0F, 0x8EAE, + 0x5F10, 0x93F3, 0x5F11, 0x9C55, 0x5F13, 0x8B7C, 0x5F14, 0x92A2, 0x5F15, 0x88F8, 0x5F16, 0x9C56, 0x5F17, 0x95A4, 0x5F18, 0x8D4F, + 0x5F1B, 0x926F, 0x5F1F, 0x92ED, 0x5F21, 0xFAB7, 0x5F25, 0x96ED, 0x5F26, 0x8CB7, 0x5F27, 0x8CCA, 0x5F29, 0x9C57, 0x5F2D, 0x9C58, + 0x5F2F, 0x9C5E, 0x5F31, 0x8EE3, 0x5F34, 0xFAB8, 0x5F35, 0x92A3, 0x5F37, 0x8BAD, 0x5F38, 0x9C59, 0x5F3C, 0x954A, 0x5F3E, 0x9265, + 0x5F41, 0x9C5A, 0x5F45, 0xFA67, 0x5F48, 0x9C5B, 0x5F4A, 0x8BAE, 0x5F4C, 0x9C5C, 0x5F4E, 0x9C5D, 0x5F51, 0x9C5F, 0x5F53, 0x9396, + 0x5F56, 0x9C60, 0x5F57, 0x9C61, 0x5F59, 0x9C62, 0x5F5C, 0x9C53, 0x5F5D, 0x9C52, 0x5F61, 0x9C63, 0x5F62, 0x8C60, 0x5F66, 0x9546, + 0x5F67, 0xFAB9, 0x5F69, 0x8DCA, 0x5F6A, 0x9556, 0x5F6B, 0x92A4, 0x5F6C, 0x956A, 0x5F6D, 0x9C64, 0x5F70, 0x8FB2, 0x5F71, 0x8965, + 0x5F73, 0x9C65, 0x5F77, 0x9C66, 0x5F79, 0x96F0, 0x5F7C, 0x94DE, 0x5F7F, 0x9C69, 0x5F80, 0x899D, 0x5F81, 0x90AA, 0x5F82, 0x9C68, + 0x5F83, 0x9C67, 0x5F84, 0x8C61, 0x5F85, 0x91D2, 0x5F87, 0x9C6D, 0x5F88, 0x9C6B, 0x5F8A, 0x9C6A, 0x5F8B, 0x97A5, 0x5F8C, 0x8CE3, + 0x5F90, 0x8F99, 0x5F91, 0x9C6C, 0x5F92, 0x936B, 0x5F93, 0x8F5D, 0x5F97, 0x93BE, 0x5F98, 0x9C70, 0x5F99, 0x9C6F, 0x5F9E, 0x9C6E, + 0x5FA0, 0x9C71, 0x5FA1, 0x8CE4, 0x5FA8, 0x9C72, 0x5FA9, 0x959C, 0x5FAA, 0x8F7A, 0x5FAD, 0x9C73, 0x5FAE, 0x94F7, 0x5FB3, 0x93BF, + 0x5FB4, 0x92A5, 0x5FB7, 0xFABA, 0x5FB9, 0x934F, 0x5FBC, 0x9C74, 0x5FBD, 0x8B4A, 0x5FC3, 0x9053, 0x5FC5, 0x954B, 0x5FCC, 0x8AF5, + 0x5FCD, 0x9445, 0x5FD6, 0x9C75, 0x5FD7, 0x8E75, 0x5FD8, 0x9659, 0x5FD9, 0x965A, 0x5FDC, 0x899E, 0x5FDD, 0x9C7A, 0x5FDE, 0xFABB, + 0x5FE0, 0x9289, 0x5FE4, 0x9C77, 0x5FEB, 0x89F5, 0x5FF0, 0x9CAB, 0x5FF1, 0x9C79, 0x5FF5, 0x944F, 0x5FF8, 0x9C78, 0x5FFB, 0x9C76, + 0x5FFD, 0x8D9A, 0x5FFF, 0x9C7C, 0x600E, 0x9C83, 0x600F, 0x9C89, 0x6010, 0x9C81, 0x6012, 0x937B, 0x6015, 0x9C86, 0x6016, 0x957C, + 0x6019, 0x9C80, 0x601B, 0x9C85, 0x601C, 0x97E5, 0x601D, 0x8E76, 0x6020, 0x91D3, 0x6021, 0x9C7D, 0x6025, 0x8B7D, 0x6026, 0x9C88, + 0x6027, 0x90AB, 0x6028, 0x8985, 0x6029, 0x9C82, 0x602A, 0x89F6, 0x602B, 0x9C87, 0x602F, 0x8BAF, 0x6031, 0x9C84, 0x603A, 0x9C8A, + 0x6041, 0x9C8C, 0x6042, 0x9C96, 0x6043, 0x9C94, 0x6046, 0x9C91, 0x604A, 0x9C90, 0x604B, 0x97F6, 0x604D, 0x9C92, 0x6050, 0x8BB0, + 0x6052, 0x8D50, 0x6055, 0x8F9A, 0x6059, 0x9C99, 0x605A, 0x9C8B, 0x605D, 0xFABC, 0x605F, 0x9C8F, 0x6060, 0x9C7E, 0x6062, 0x89F8, + 0x6063, 0x9C93, 0x6064, 0x9C95, 0x6065, 0x9270, 0x6068, 0x8DA6, 0x6069, 0x89B6, 0x606A, 0x9C8D, 0x606B, 0x9C98, 0x606C, 0x9C97, + 0x606D, 0x8BB1, 0x606F, 0x91A7, 0x6070, 0x8A86, 0x6075, 0x8C62, 0x6077, 0x9C8E, 0x6081, 0x9C9A, 0x6083, 0x9C9D, 0x6084, 0x9C9F, + 0x6085, 0xFABD, 0x6089, 0x8EBB, 0x608A, 0xFABE, 0x608B, 0x9CA5, 0x608C, 0x92EE, 0x608D, 0x9C9B, 0x6092, 0x9CA3, 0x6094, 0x89F7, + 0x6096, 0x9CA1, 0x6097, 0x9CA2, 0x609A, 0x9C9E, 0x609B, 0x9CA0, 0x609F, 0x8CE5, 0x60A0, 0x9749, 0x60A3, 0x8AB3, 0x60A6, 0x8978, + 0x60A7, 0x9CA4, 0x60A9, 0x9459, 0x60AA, 0x88AB, 0x60B2, 0x94DF, 0x60B3, 0x9C7B, 0x60B4, 0x9CAA, 0x60B5, 0x9CAE, 0x60B6, 0x96E3, + 0x60B8, 0x9CA7, 0x60BC, 0x9389, 0x60BD, 0x9CAC, 0x60C5, 0x8FEE, 0x60C6, 0x9CAD, 0x60C7, 0x93D5, 0x60D1, 0x9866, 0x60D3, 0x9CA9, + 0x60D5, 0xFAC0, 0x60D8, 0x9CAF, 0x60DA, 0x8D9B, 0x60DC, 0x90C9, 0x60DE, 0xFABF, 0x60DF, 0x88D2, 0x60E0, 0x9CA8, 0x60E1, 0x9CA6, + 0x60E3, 0x9179, 0x60E7, 0x9C9C, 0x60E8, 0x8E53, 0x60F0, 0x91C4, 0x60F1, 0x9CBB, 0x60F2, 0xFAC2, 0x60F3, 0x917A, 0x60F4, 0x9CB6, + 0x60F6, 0x9CB3, 0x60F7, 0x9CB4, 0x60F9, 0x8EE4, 0x60FA, 0x9CB7, 0x60FB, 0x9CBA, 0x6100, 0x9CB5, 0x6101, 0x8F44, 0x6103, 0x9CB8, + 0x6106, 0x9CB2, 0x6108, 0x96FA, 0x6109, 0x96F9, 0x610D, 0x9CBC, 0x610E, 0x9CBD, 0x610F, 0x88D3, 0x6111, 0xFAC3, 0x6115, 0x9CB1, + 0x611A, 0x8BF0, 0x611B, 0x88A4, 0x611F, 0x8AB4, 0x6120, 0xFAC1, 0x6121, 0x9CB9, 0x6127, 0x9CC1, 0x6128, 0x9CC0, 0x612C, 0x9CC5, + 0x6130, 0xFAC5, 0x6134, 0x9CC6, 0x6137, 0xFAC4, 0x613C, 0x9CC4, 0x613D, 0x9CC7, 0x613E, 0x9CBF, 0x613F, 0x9CC3, 0x6142, 0x9CC8, + 0x6144, 0x9CC9, 0x6147, 0x9CBE, 0x6148, 0x8E9C, 0x614A, 0x9CC2, 0x614B, 0x91D4, 0x614C, 0x8D51, 0x614D, 0x9CB0, 0x614E, 0x9054, + 0x6153, 0x9CD6, 0x6155, 0x95E7, 0x6158, 0x9CCC, 0x6159, 0x9CCD, 0x615A, 0x9CCE, 0x615D, 0x9CD5, 0x615F, 0x9CD4, 0x6162, 0x969D, + 0x6163, 0x8AB5, 0x6165, 0x9CD2, 0x6167, 0x8C64, 0x6168, 0x8A53, 0x616B, 0x9CCF, 0x616E, 0x97B6, 0x616F, 0x9CD1, 0x6170, 0x88D4, + 0x6171, 0x9CD3, 0x6173, 0x9CCA, 0x6174, 0x9CD0, 0x6175, 0x9CD7, 0x6176, 0x8C63, 0x6177, 0x9CCB, 0x617E, 0x977C, 0x6182, 0x974A, + 0x6187, 0x9CDA, 0x618A, 0x9CDE, 0x618E, 0x919E, 0x6190, 0x97F7, 0x6191, 0x9CDF, 0x6194, 0x9CDC, 0x6196, 0x9CD9, 0x6198, 0xFAC6, + 0x6199, 0x9CD8, 0x619A, 0x9CDD, 0x61A4, 0x95AE, 0x61A7, 0x93B2, 0x61A9, 0x8C65, 0x61AB, 0x9CE0, 0x61AC, 0x9CDB, 0x61AE, 0x9CE1, + 0x61B2, 0x8C9B, 0x61B6, 0x89AF, 0x61BA, 0x9CE9, 0x61BE, 0x8AB6, 0x61C3, 0x9CE7, 0x61C6, 0x9CE8, 0x61C7, 0x8DA7, 0x61C8, 0x9CE6, + 0x61C9, 0x9CE4, 0x61CA, 0x9CE3, 0x61CB, 0x9CEA, 0x61CC, 0x9CE2, 0x61CD, 0x9CEC, 0x61D0, 0x89F9, 0x61E3, 0x9CEE, 0x61E6, 0x9CED, + 0x61F2, 0x92A6, 0x61F4, 0x9CF1, 0x61F6, 0x9CEF, 0x61F7, 0x9CE5, 0x61F8, 0x8C9C, 0x61FA, 0x9CF0, 0x61FC, 0x9CF4, 0x61FD, 0x9CF3, + 0x61FE, 0x9CF5, 0x61FF, 0x9CF2, 0x6200, 0x9CF6, 0x6208, 0x9CF7, 0x6209, 0x9CF8, 0x620A, 0x95E8, 0x620C, 0x9CFA, 0x620D, 0x9CF9, + 0x620E, 0x8F5E, 0x6210, 0x90AC, 0x6211, 0x89E4, 0x6212, 0x89FA, 0x6213, 0xFAC7, 0x6214, 0x9CFB, 0x6216, 0x88BD, 0x621A, 0x90CA, + 0x621B, 0x9CFC, 0x621D, 0xE6C1, 0x621E, 0x9D40, 0x621F, 0x8C81, 0x6221, 0x9D41, 0x6226, 0x90ED, 0x622A, 0x9D42, 0x622E, 0x9D43, + 0x622F, 0x8B59, 0x6230, 0x9D44, 0x6232, 0x9D45, 0x6233, 0x9D46, 0x6234, 0x91D5, 0x6238, 0x8CCB, 0x623B, 0x96DF, 0x623F, 0x965B, + 0x6240, 0x8F8A, 0x6241, 0x9D47, 0x6247, 0x90EE, 0x6248, 0xE7BB, 0x6249, 0x94E0, 0x624B, 0x8EE8, 0x624D, 0x8DCB, 0x624E, 0x9D48, + 0x6253, 0x91C5, 0x6255, 0x95A5, 0x6258, 0x91EF, 0x625B, 0x9D4B, 0x625E, 0x9D49, 0x6260, 0x9D4C, 0x6263, 0x9D4A, 0x6268, 0x9D4D, + 0x626E, 0x95AF, 0x6271, 0x88B5, 0x6276, 0x957D, 0x6279, 0x94E1, 0x627C, 0x9D4E, 0x627E, 0x9D51, 0x627F, 0x8FB3, 0x6280, 0x8B5A, + 0x6282, 0x9D4F, 0x6283, 0x9D56, 0x6284, 0x8FB4, 0x6289, 0x9D50, 0x628A, 0x9463, 0x6291, 0x977D, 0x6292, 0x9D52, 0x6293, 0x9D53, + 0x6294, 0x9D57, 0x6295, 0x938A, 0x6296, 0x9D54, 0x6297, 0x8D52, 0x6298, 0x90DC, 0x629B, 0x9D65, 0x629C, 0x94B2, 0x629E, 0x91F0, + 0x62A6, 0xFAC8, 0x62AB, 0x94E2, 0x62AC, 0x9DAB, 0x62B1, 0x95F8, 0x62B5, 0x92EF, 0x62B9, 0x9695, 0x62BB, 0x9D5A, 0x62BC, 0x899F, + 0x62BD, 0x928A, 0x62C2, 0x9D63, 0x62C5, 0x9253, 0x62C6, 0x9D5D, 0x62C7, 0x9D64, 0x62C8, 0x9D5F, 0x62C9, 0x9D66, 0x62CA, 0x9D62, + 0x62CC, 0x9D61, 0x62CD, 0x948F, 0x62CF, 0x9D5B, 0x62D0, 0x89FB, 0x62D1, 0x9D59, 0x62D2, 0x8B91, 0x62D3, 0x91F1, 0x62D4, 0x9D55, + 0x62D7, 0x9D58, 0x62D8, 0x8D53, 0x62D9, 0x90D9, 0x62DB, 0x8FB5, 0x62DC, 0x9D60, 0x62DD, 0x9471, 0x62E0, 0x8B92, 0x62E1, 0x8A67, + 0x62EC, 0x8A87, 0x62ED, 0x9040, 0x62EE, 0x9D68, 0x62EF, 0x9D6D, 0x62F1, 0x9D69, 0x62F3, 0x8C9D, 0x62F5, 0x9D6E, 0x62F6, 0x8E41, + 0x62F7, 0x8D89, 0x62FE, 0x8F45, 0x62FF, 0x9D5C, 0x6301, 0x8E9D, 0x6302, 0x9D6B, 0x6307, 0x8E77, 0x6308, 0x9D6C, 0x6309, 0x88C2, + 0x630C, 0x9D67, 0x6311, 0x92A7, 0x6319, 0x8B93, 0x631F, 0x8BB2, 0x6327, 0x9D6A, 0x6328, 0x88A5, 0x632B, 0x8DC1, 0x632F, 0x9055, + 0x633A, 0x92F0, 0x633D, 0x94D2, 0x633E, 0x9D70, 0x633F, 0x917D, 0x6349, 0x91A8, 0x634C, 0x8E4A, 0x634D, 0x9D71, 0x634F, 0x9D73, + 0x6350, 0x9D6F, 0x6355, 0x95DF, 0x6357, 0x92BB, 0x635C, 0x917B, 0x6367, 0x95F9, 0x6368, 0x8ECC, 0x6369, 0x9D80, 0x636B, 0x9D7E, + 0x636E, 0x9098, 0x6372, 0x8C9E, 0x6376, 0x9D78, 0x6377, 0x8FB7, 0x637A, 0x93E6, 0x637B, 0x9450, 0x6380, 0x9D76, 0x6383, 0x917C, + 0x6388, 0x8EF6, 0x6389, 0x9D7B, 0x638C, 0x8FB6, 0x638E, 0x9D75, 0x638F, 0x9D7A, 0x6392, 0x9472, 0x6396, 0x9D74, 0x6398, 0x8C40, + 0x639B, 0x8A7C, 0x639F, 0x9D7C, 0x63A0, 0x97A9, 0x63A1, 0x8DCC, 0x63A2, 0x9254, 0x63A3, 0x9D79, 0x63A5, 0x90DA, 0x63A7, 0x8D54, + 0x63A8, 0x9084, 0x63A9, 0x8986, 0x63AA, 0x915B, 0x63AB, 0x9D77, 0x63AC, 0x8B64, 0x63B2, 0x8C66, 0x63B4, 0x92CD, 0x63B5, 0x9D7D, + 0x63BB, 0x917E, 0x63BE, 0x9D81, 0x63C0, 0x9D83, 0x63C3, 0x91B5, 0x63C4, 0x9D89, 0x63C6, 0x9D84, 0x63C9, 0x9D86, 0x63CF, 0x9560, + 0x63D0, 0x92F1, 0x63D2, 0x9D87, 0x63D6, 0x974B, 0x63DA, 0x9767, 0x63DB, 0x8AB7, 0x63E1, 0x88AC, 0x63E3, 0x9D85, 0x63E9, 0x9D82, + 0x63EE, 0x8AF6, 0x63F4, 0x8987, 0x63F5, 0xFAC9, 0x63F6, 0x9D88, 0x63FA, 0x9768, 0x6406, 0x9D8C, 0x640D, 0x91B9, 0x640F, 0x9D93, + 0x6413, 0x9D8D, 0x6416, 0x9D8A, 0x6417, 0x9D91, 0x641C, 0x9D72, 0x6426, 0x9D8E, 0x6428, 0x9D92, 0x642C, 0x94C0, 0x642D, 0x938B, + 0x6434, 0x9D8B, 0x6436, 0x9D8F, 0x643A, 0x8C67, 0x643E, 0x8DEF, 0x6442, 0x90DB, 0x644E, 0x9D97, 0x6458, 0x9345, 0x6460, 0xFACA, + 0x6467, 0x9D94, 0x6469, 0x9680, 0x646F, 0x9D95, 0x6476, 0x9D96, 0x6478, 0x96CC, 0x647A, 0x90A0, 0x6483, 0x8C82, 0x6488, 0x9D9D, + 0x6492, 0x8E54, 0x6493, 0x9D9A, 0x6495, 0x9D99, 0x649A, 0x9451, 0x649D, 0xFACB, 0x649E, 0x93B3, 0x64A4, 0x9350, 0x64A5, 0x9D9B, + 0x64A9, 0x9D9C, 0x64AB, 0x958F, 0x64AD, 0x9464, 0x64AE, 0x8E42, 0x64B0, 0x90EF, 0x64B2, 0x966F, 0x64B9, 0x8A68, 0x64BB, 0x9DA3, + 0x64BC, 0x9D9E, 0x64C1, 0x9769, 0x64C2, 0x9DA5, 0x64C5, 0x9DA1, 0x64C7, 0x9DA2, 0x64CD, 0x9180, 0x64CE, 0xFACC, 0x64D2, 0x9DA0, + 0x64D4, 0x9D5E, 0x64D8, 0x9DA4, 0x64DA, 0x9D9F, 0x64E0, 0x9DA9, 0x64E1, 0x9DAA, 0x64E2, 0x9346, 0x64E3, 0x9DAC, 0x64E6, 0x8E43, + 0x64E7, 0x9DA7, 0x64EC, 0x8B5B, 0x64EF, 0x9DAD, 0x64F1, 0x9DA6, 0x64F2, 0x9DB1, 0x64F4, 0x9DB0, 0x64F6, 0x9DAF, 0x64FA, 0x9DB2, + 0x64FD, 0x9DB4, 0x64FE, 0x8FEF, 0x6500, 0x9DB3, 0x6505, 0x9DB7, 0x6518, 0x9DB5, 0x651C, 0x9DB6, 0x651D, 0x9D90, 0x6523, 0x9DB9, + 0x6524, 0x9DB8, 0x652A, 0x9D98, 0x652B, 0x9DBA, 0x652C, 0x9DAE, 0x652F, 0x8E78, 0x6534, 0x9DBB, 0x6535, 0x9DBC, 0x6536, 0x9DBE, + 0x6537, 0x9DBD, 0x6538, 0x9DBF, 0x6539, 0x89FC, 0x653B, 0x8D55, 0x653E, 0x95FA, 0x653F, 0x90AD, 0x6545, 0x8CCC, 0x6548, 0x9DC1, + 0x654D, 0x9DC4, 0x654E, 0xFACD, 0x654F, 0x9571, 0x6551, 0x8B7E, 0x6555, 0x9DC3, 0x6556, 0x9DC2, 0x6557, 0x9473, 0x6558, 0x9DC5, + 0x6559, 0x8BB3, 0x655D, 0x9DC7, 0x655E, 0x9DC6, 0x6562, 0x8AB8, 0x6563, 0x8E55, 0x6566, 0x93D6, 0x656C, 0x8C68, 0x6570, 0x9094, + 0x6572, 0x9DC8, 0x6574, 0x90AE, 0x6575, 0x9347, 0x6577, 0x957E, 0x6578, 0x9DC9, 0x6582, 0x9DCA, 0x6583, 0x9DCB, 0x6587, 0x95B6, + 0x6588, 0x9B7C, 0x6589, 0x90C4, 0x658C, 0x956B, 0x658E, 0x8DD6, 0x6590, 0x94E3, 0x6591, 0x94C1, 0x6597, 0x936C, 0x6599, 0x97BF, + 0x659B, 0x9DCD, 0x659C, 0x8ECE, 0x659F, 0x9DCE, 0x65A1, 0x88B4, 0x65A4, 0x8BD2, 0x65A5, 0x90CB, 0x65A7, 0x9580, 0x65AB, 0x9DCF, + 0x65AC, 0x8E61, 0x65AD, 0x9266, 0x65AF, 0x8E7A, 0x65B0, 0x9056, 0x65B7, 0x9DD0, 0x65B9, 0x95FB, 0x65BC, 0x8997, 0x65BD, 0x8E7B, + 0x65C1, 0x9DD3, 0x65C3, 0x9DD1, 0x65C4, 0x9DD4, 0x65C5, 0x97B7, 0x65C6, 0x9DD2, 0x65CB, 0x90F9, 0x65CC, 0x9DD5, 0x65CF, 0x91B0, + 0x65D2, 0x9DD6, 0x65D7, 0x8AF8, 0x65D9, 0x9DD8, 0x65DB, 0x9DD7, 0x65E0, 0x9DD9, 0x65E1, 0x9DDA, 0x65E2, 0x8AF9, 0x65E5, 0x93FA, + 0x65E6, 0x9255, 0x65E7, 0x8B8C, 0x65E8, 0x8E7C, 0x65E9, 0x9181, 0x65EC, 0x8F7B, 0x65ED, 0x88AE, 0x65F1, 0x9DDB, 0x65FA, 0x89A0, + 0x65FB, 0x9DDF, 0x6600, 0xFACE, 0x6602, 0x8D56, 0x6603, 0x9DDE, 0x6606, 0x8DA9, 0x6607, 0x8FB8, 0x6609, 0xFAD1, 0x660A, 0x9DDD, + 0x660C, 0x8FB9, 0x660E, 0x96BE, 0x660F, 0x8DA8, 0x6613, 0x88D5, 0x6614, 0x90CC, 0x6615, 0xFACF, 0x661C, 0x9DE4, 0x661E, 0xFAD3, + 0x661F, 0x90AF, 0x6620, 0x8966, 0x6624, 0xFAD4, 0x6625, 0x8F74, 0x6627, 0x9686, 0x6628, 0x8DF0, 0x662D, 0x8FBA, 0x662E, 0xFAD2, + 0x662F, 0x90A5, 0x6631, 0xFA63, 0x6634, 0x9DE3, 0x6635, 0x9DE1, 0x6636, 0x9DE2, 0x663B, 0xFAD0, 0x663C, 0x928B, 0x663F, 0x9E45, + 0x6641, 0x9DE8, 0x6642, 0x8E9E, 0x6643, 0x8D57, 0x6644, 0x9DE6, 0x6649, 0x9DE7, 0x664B, 0x9057, 0x664F, 0x9DE5, 0x6652, 0x8E4E, + 0x6657, 0xFAD6, 0x6659, 0xFAD7, 0x665D, 0x9DEA, 0x665E, 0x9DE9, 0x665F, 0x9DEE, 0x6662, 0x9DEF, 0x6664, 0x9DEB, 0x6665, 0xFAD5, + 0x6666, 0x8A41, 0x6667, 0x9DEC, 0x6668, 0x9DED, 0x6669, 0x94D3, 0x666E, 0x9581, 0x666F, 0x8C69, 0x6670, 0x9DF0, 0x6673, 0xFAD9, + 0x6674, 0x90B0, 0x6676, 0x8FBB, 0x667A, 0x9271, 0x6681, 0x8BC5, 0x6683, 0x9DF1, 0x6684, 0x9DF5, 0x6687, 0x89C9, 0x6688, 0x9DF2, + 0x6689, 0x9DF4, 0x668E, 0x9DF3, 0x6691, 0x8F8B, 0x6696, 0x9267, 0x6697, 0x88C3, 0x6698, 0x9DF6, 0x6699, 0xFADA, 0x669D, 0x9DF7, + 0x66A0, 0xFADB, 0x66A2, 0x92A8, 0x66A6, 0x97EF, 0x66AB, 0x8E62, 0x66AE, 0x95E9, 0x66B2, 0xFADC, 0x66B4, 0x965C, 0x66B8, 0x9E41, + 0x66B9, 0x9DF9, 0x66BC, 0x9DFC, 0x66BE, 0x9DFB, 0x66BF, 0xFADD, 0x66C1, 0x9DF8, 0x66C4, 0x9E40, 0x66C7, 0x93DC, 0x66C9, 0x9DFA, + 0x66D6, 0x9E42, 0x66D9, 0x8F8C, 0x66DA, 0x9E43, 0x66DC, 0x976A, 0x66DD, 0x9498, 0x66E0, 0x9E44, 0x66E6, 0x9E46, 0x66E9, 0x9E47, + 0x66F0, 0x9E48, 0x66F2, 0x8BC8, 0x66F3, 0x8967, 0x66F4, 0x8D58, 0x66F5, 0x9E49, 0x66F7, 0x9E4A, 0x66F8, 0x8F91, 0x66F9, 0x9182, + 0x66FA, 0xFADE, 0x66FB, 0xFA66, 0x66FC, 0x99D6, 0x66FD, 0x915D, 0x66FE, 0x915C, 0x66FF, 0x91D6, 0x6700, 0x8DC5, 0x6703, 0x98F0, + 0x6708, 0x8C8E, 0x6709, 0x974C, 0x670B, 0x95FC, 0x670D, 0x959E, 0x670E, 0xFADF, 0x670F, 0x9E4B, 0x6714, 0x8DF1, 0x6715, 0x92BD, + 0x6716, 0x9E4C, 0x6717, 0x984E, 0x671B, 0x965D, 0x671D, 0x92A9, 0x671E, 0x9E4D, 0x671F, 0x8AFA, 0x6726, 0x9E4E, 0x6727, 0x9E4F, + 0x6728, 0x96D8, 0x672A, 0x96A2, 0x672B, 0x9696, 0x672C, 0x967B, 0x672D, 0x8E44, 0x672E, 0x9E51, 0x6731, 0x8EE9, 0x6734, 0x9670, + 0x6736, 0x9E53, 0x6737, 0x9E56, 0x6738, 0x9E55, 0x673A, 0x8AF7, 0x673D, 0x8B80, 0x673F, 0x9E52, 0x6741, 0x9E54, 0x6746, 0x9E57, + 0x6749, 0x9099, 0x674E, 0x979B, 0x674F, 0x88C7, 0x6750, 0x8DDE, 0x6751, 0x91BA, 0x6753, 0x8EDB, 0x6756, 0x8FF1, 0x6759, 0x9E5A, + 0x675C, 0x936D, 0x675E, 0x9E58, 0x675F, 0x91A9, 0x6760, 0x9E59, 0x6761, 0x8FF0, 0x6762, 0x96DB, 0x6763, 0x9E5B, 0x6764, 0x9E5C, + 0x6765, 0x9788, 0x6766, 0xFAE1, 0x676A, 0x9E61, 0x676D, 0x8D59, 0x676F, 0x9474, 0x6770, 0x9E5E, 0x6771, 0x938C, 0x6772, 0x9DDC, + 0x6773, 0x9DE0, 0x6775, 0x8B6E, 0x6777, 0x9466, 0x677C, 0x9E60, 0x677E, 0x8FBC, 0x677F, 0x94C2, 0x6785, 0x9E66, 0x6787, 0x94F8, + 0x6789, 0x9E5D, 0x678B, 0x9E63, 0x678C, 0x9E62, 0x6790, 0x90CD, 0x6795, 0x968D, 0x6797, 0x97D1, 0x679A, 0x9687, 0x679C, 0x89CA, + 0x679D, 0x8E7D, 0x67A0, 0x9867, 0x67A1, 0x9E65, 0x67A2, 0x9095, 0x67A6, 0x9E64, 0x67A9, 0x9E5F, 0x67AF, 0x8CCD, 0x67B3, 0x9E6B, + 0x67B4, 0x9E69, 0x67B6, 0x89CB, 0x67B7, 0x9E67, 0x67B8, 0x9E6D, 0x67B9, 0x9E73, 0x67BB, 0xFAE2, 0x67C0, 0xFAE4, 0x67C1, 0x91C6, + 0x67C4, 0x95BF, 0x67C6, 0x9E75, 0x67CA, 0x9541, 0x67CE, 0x9E74, 0x67CF, 0x9490, 0x67D0, 0x965E, 0x67D1, 0x8AB9, 0x67D3, 0x90F5, + 0x67D4, 0x8F5F, 0x67D8, 0x92D1, 0x67DA, 0x974D, 0x67DD, 0x9E70, 0x67DE, 0x9E6F, 0x67E2, 0x9E71, 0x67E4, 0x9E6E, 0x67E7, 0x9E76, + 0x67E9, 0x9E6C, 0x67EC, 0x9E6A, 0x67EE, 0x9E72, 0x67EF, 0x9E68, 0x67F1, 0x928C, 0x67F3, 0x96F6, 0x67F4, 0x8EC4, 0x67F5, 0x8DF2, + 0x67FB, 0x8DB8, 0x67FE, 0x968F, 0x67FF, 0x8A60, 0x6801, 0xFAE5, 0x6802, 0x92CC, 0x6803, 0x93C8, 0x6804, 0x8968, 0x6813, 0x90F0, + 0x6816, 0x90B2, 0x6817, 0x8C49, 0x681E, 0x9E78, 0x6821, 0x8D5A, 0x6822, 0x8A9C, 0x6829, 0x9E7A, 0x682A, 0x8A94, 0x682B, 0x9E81, + 0x6832, 0x9E7D, 0x6834, 0x90F1, 0x6838, 0x8A6A, 0x6839, 0x8DAA, 0x683C, 0x8A69, 0x683D, 0x8DCD, 0x6840, 0x9E7B, 0x6841, 0x8C85, + 0x6842, 0x8C6A, 0x6843, 0x938D, 0x6844, 0xFAE6, 0x6846, 0x9E79, 0x6848, 0x88C4, 0x684D, 0x9E7C, 0x684E, 0x9E7E, 0x6850, 0x8BCB, + 0x6851, 0x8C4B, 0x6852, 0xFAE3, 0x6853, 0x8ABA, 0x6854, 0x8B6A, 0x6859, 0x9E82, 0x685C, 0x8DF7, 0x685D, 0x9691, 0x685F, 0x8E56, + 0x6863, 0x9E83, 0x6867, 0x954F, 0x6874, 0x9E8F, 0x6876, 0x89B1, 0x6877, 0x9E84, 0x687E, 0x9E95, 0x687F, 0x9E85, 0x6881, 0x97C0, + 0x6883, 0x9E8C, 0x6885, 0x947E, 0x688D, 0x9E94, 0x688F, 0x9E87, 0x6893, 0x88B2, 0x6894, 0x9E89, 0x6897, 0x8D5B, 0x689B, 0x9E8B, + 0x689D, 0x9E8A, 0x689F, 0x9E86, 0x68A0, 0x9E91, 0x68A2, 0x8FBD, 0x68A6, 0x9AEB, 0x68A7, 0x8CE6, 0x68A8, 0x979C, 0x68AD, 0x9E88, + 0x68AF, 0x92F2, 0x68B0, 0x8A42, 0x68B1, 0x8DAB, 0x68B3, 0x9E80, 0x68B5, 0x9E90, 0x68B6, 0x8A81, 0x68B9, 0x9E8E, 0x68BA, 0x9E92, + 0x68BC, 0x938E, 0x68C4, 0x8AFC, 0x68C6, 0x9EB0, 0x68C8, 0xFA64, 0x68C9, 0x96C7, 0x68CA, 0x9E97, 0x68CB, 0x8AFB, 0x68CD, 0x9E9E, + 0x68CF, 0xFAE7, 0x68D2, 0x965F, 0x68D4, 0x9E9F, 0x68D5, 0x9EA1, 0x68D7, 0x9EA5, 0x68D8, 0x9E99, 0x68DA, 0x9249, 0x68DF, 0x938F, + 0x68E0, 0x9EA9, 0x68E1, 0x9E9C, 0x68E3, 0x9EA6, 0x68E7, 0x9EA0, 0x68EE, 0x9058, 0x68EF, 0x9EAA, 0x68F2, 0x90B1, 0x68F9, 0x9EA8, + 0x68FA, 0x8ABB, 0x6900, 0x986F, 0x6901, 0x9E96, 0x6904, 0x9EA4, 0x6905, 0x88D6, 0x6908, 0x9E98, 0x690B, 0x96B8, 0x690C, 0x9E9D, + 0x690D, 0x9041, 0x690E, 0x92C5, 0x690F, 0x9E93, 0x6912, 0x9EA3, 0x6919, 0x909A, 0x691A, 0x9EAD, 0x691B, 0x8A91, 0x691C, 0x8C9F, + 0x6921, 0x9EAF, 0x6922, 0x9E9A, 0x6923, 0x9EAE, 0x6925, 0x9EA7, 0x6926, 0x9E9B, 0x6928, 0x9EAB, 0x692A, 0x9EAC, 0x6930, 0x9EBD, + 0x6934, 0x93CC, 0x6936, 0x9EA2, 0x6939, 0x9EB9, 0x693D, 0x9EBB, 0x693F, 0x92D6, 0x694A, 0x976B, 0x6953, 0x9596, 0x6954, 0x9EB6, + 0x6955, 0x91C8, 0x6959, 0x9EBC, 0x695A, 0x915E, 0x695C, 0x9EB3, 0x695D, 0x9EC0, 0x695E, 0x9EBF, 0x6960, 0x93ED, 0x6961, 0x9EBE, + 0x6962, 0x93E8, 0x6968, 0xFAE9, 0x696A, 0x9EC2, 0x696B, 0x9EB5, 0x696D, 0x8BC6, 0x696E, 0x9EB8, 0x696F, 0x8F7C, 0x6973, 0x9480, + 0x6974, 0x9EBA, 0x6975, 0x8BC9, 0x6977, 0x9EB2, 0x6978, 0x9EB4, 0x6979, 0x9EB1, 0x697C, 0x984F, 0x697D, 0x8A79, 0x697E, 0x9EB7, + 0x6981, 0x9EC1, 0x6982, 0x8A54, 0x698A, 0x8DE5, 0x698E, 0x897C, 0x6991, 0x9ED2, 0x6994, 0x9850, 0x6995, 0x9ED5, 0x6998, 0xFAEB, + 0x699B, 0x9059, 0x699C, 0x9ED4, 0x69A0, 0x9ED3, 0x69A7, 0x9ED0, 0x69AE, 0x9EC4, 0x69B1, 0x9EE1, 0x69B2, 0x9EC3, 0x69B4, 0x9ED6, + 0x69BB, 0x9ECE, 0x69BE, 0x9EC9, 0x69BF, 0x9EC6, 0x69C1, 0x9EC7, 0x69C3, 0x9ECF, 0x69C7, 0xEAA0, 0x69CA, 0x9ECC, 0x69CB, 0x8D5C, + 0x69CC, 0x92C6, 0x69CD, 0x9184, 0x69CE, 0x9ECA, 0x69D0, 0x9EC5, 0x69D3, 0x9EC8, 0x69D8, 0x976C, 0x69D9, 0x968A, 0x69DD, 0x9ECD, + 0x69DE, 0x9ED7, 0x69E2, 0xFAEC, 0x69E7, 0x9EDF, 0x69E8, 0x9ED8, 0x69EB, 0x9EE5, 0x69ED, 0x9EE3, 0x69F2, 0x9EDE, 0x69F9, 0x9EDD, + 0x69FB, 0x92CE, 0x69FD, 0x9185, 0x69FF, 0x9EDB, 0x6A02, 0x9ED9, 0x6A05, 0x9EE0, 0x6A0A, 0x9EE6, 0x6A0B, 0x94F3, 0x6A0C, 0x9EEC, + 0x6A12, 0x9EE7, 0x6A13, 0x9EEA, 0x6A14, 0x9EE4, 0x6A17, 0x9294, 0x6A19, 0x9557, 0x6A1B, 0x9EDA, 0x6A1E, 0x9EE2, 0x6A1F, 0x8FBE, + 0x6A21, 0x96CD, 0x6A22, 0x9EF6, 0x6A23, 0x9EE9, 0x6A29, 0x8CA0, 0x6A2A, 0x89A1, 0x6A2B, 0x8A7E, 0x6A2E, 0x9ED1, 0x6A30, 0xFAED, + 0x6A35, 0x8FBF, 0x6A36, 0x9EEE, 0x6A38, 0x9EF5, 0x6A39, 0x8EF7, 0x6A3A, 0x8A92, 0x6A3D, 0x924D, 0x6A44, 0x9EEB, 0x6A46, 0xFAEF, + 0x6A47, 0x9EF0, 0x6A48, 0x9EF4, 0x6A4B, 0x8BB4, 0x6A58, 0x8B6B, 0x6A59, 0x9EF2, 0x6A5F, 0x8B40, 0x6A61, 0x93C9, 0x6A62, 0x9EF1, + 0x6A66, 0x9EF3, 0x6A6B, 0xFAEE, 0x6A72, 0x9EED, 0x6A73, 0xFAF0, 0x6A78, 0x9EEF, 0x6A7E, 0xFAF1, 0x6A7F, 0x8A80, 0x6A80, 0x9268, + 0x6A84, 0x9EFA, 0x6A8D, 0x9EF8, 0x6A8E, 0x8CE7, 0x6A90, 0x9EF7, 0x6A97, 0x9F40, 0x6A9C, 0x9E77, 0x6AA0, 0x9EF9, 0x6AA2, 0x9EFB, + 0x6AA3, 0x9EFC, 0x6AAA, 0x9F4B, 0x6AAC, 0x9F47, 0x6AAE, 0x9E8D, 0x6AB3, 0x9F46, 0x6AB8, 0x9F45, 0x6ABB, 0x9F42, 0x6AC1, 0x9EE8, + 0x6AC2, 0x9F44, 0x6AC3, 0x9F43, 0x6AD1, 0x9F49, 0x6AD3, 0x9845, 0x6ADA, 0x9F4C, 0x6ADB, 0x8BF9, 0x6ADE, 0x9F48, 0x6ADF, 0x9F4A, + 0x6AE2, 0xFAF2, 0x6AE4, 0xFAF3, 0x6AE8, 0x94A5, 0x6AEA, 0x9F4D, 0x6AFA, 0x9F51, 0x6AFB, 0x9F4E, 0x6B04, 0x9793, 0x6B05, 0x9F4F, + 0x6B0A, 0x9EDC, 0x6B12, 0x9F52, 0x6B16, 0x9F53, 0x6B1D, 0x8954, 0x6B1F, 0x9F55, 0x6B20, 0x8C87, 0x6B21, 0x8E9F, 0x6B23, 0x8BD3, + 0x6B27, 0x89A2, 0x6B32, 0x977E, 0x6B37, 0x9F57, 0x6B38, 0x9F56, 0x6B39, 0x9F59, 0x6B3A, 0x8B5C, 0x6B3D, 0x8BD4, 0x6B3E, 0x8ABC, + 0x6B43, 0x9F5C, 0x6B47, 0x9F5B, 0x6B49, 0x9F5D, 0x6B4C, 0x89CC, 0x6B4E, 0x9256, 0x6B50, 0x9F5E, 0x6B53, 0x8ABD, 0x6B54, 0x9F60, + 0x6B59, 0x9F5F, 0x6B5B, 0x9F61, 0x6B5F, 0x9F62, 0x6B61, 0x9F63, 0x6B62, 0x8E7E, 0x6B63, 0x90B3, 0x6B64, 0x8D9F, 0x6B66, 0x9590, + 0x6B69, 0x95E0, 0x6B6A, 0x9863, 0x6B6F, 0x8E95, 0x6B73, 0x8DCE, 0x6B74, 0x97F0, 0x6B78, 0x9F64, 0x6B79, 0x9F65, 0x6B7B, 0x8E80, + 0x6B7F, 0x9F66, 0x6B80, 0x9F67, 0x6B83, 0x9F69, 0x6B84, 0x9F68, 0x6B86, 0x9677, 0x6B89, 0x8F7D, 0x6B8A, 0x8EEA, 0x6B8B, 0x8E63, + 0x6B8D, 0x9F6A, 0x6B95, 0x9F6C, 0x6B96, 0x9042, 0x6B98, 0x9F6B, 0x6B9E, 0x9F6D, 0x6BA4, 0x9F6E, 0x6BAA, 0x9F6F, 0x6BAB, 0x9F70, + 0x6BAF, 0x9F71, 0x6BB1, 0x9F73, 0x6BB2, 0x9F72, 0x6BB3, 0x9F74, 0x6BB4, 0x89A3, 0x6BB5, 0x9269, 0x6BB7, 0x9F75, 0x6BBA, 0x8E45, + 0x6BBB, 0x8A6B, 0x6BBC, 0x9F76, 0x6BBF, 0x9361, 0x6BC0, 0x9ACA, 0x6BC5, 0x8B42, 0x6BC6, 0x9F77, 0x6BCB, 0x9F78, 0x6BCD, 0x95EA, + 0x6BCE, 0x9688, 0x6BD2, 0x93C5, 0x6BD3, 0x9F79, 0x6BD4, 0x94E4, 0x6BD6, 0xFAF4, 0x6BD8, 0x94F9, 0x6BDB, 0x96D1, 0x6BDF, 0x9F7A, + 0x6BEB, 0x9F7C, 0x6BEC, 0x9F7B, 0x6BEF, 0x9F7E, 0x6BF3, 0x9F7D, 0x6C08, 0x9F81, 0x6C0F, 0x8E81, 0x6C11, 0x96AF, 0x6C13, 0x9F82, + 0x6C14, 0x9F83, 0x6C17, 0x8B43, 0x6C1B, 0x9F84, 0x6C23, 0x9F86, 0x6C24, 0x9F85, 0x6C34, 0x9085, 0x6C37, 0x9558, 0x6C38, 0x8969, + 0x6C3E, 0x94C3, 0x6C3F, 0xFAF5, 0x6C40, 0x92F3, 0x6C41, 0x8F60, 0x6C42, 0x8B81, 0x6C4E, 0x94C4, 0x6C50, 0x8EAC, 0x6C55, 0x9F88, + 0x6C57, 0x8ABE, 0x6C5A, 0x8998, 0x6C5C, 0xFAF6, 0x6C5D, 0x93F0, 0x6C5E, 0x9F87, 0x6C5F, 0x8D5D, 0x6C60, 0x9272, 0x6C62, 0x9F89, + 0x6C68, 0x9F91, 0x6C6A, 0x9F8A, 0x6C6F, 0xFAF8, 0x6C70, 0x91BF, 0x6C72, 0x8B82, 0x6C73, 0x9F92, 0x6C7A, 0x8C88, 0x6C7D, 0x8B44, + 0x6C7E, 0x9F90, 0x6C81, 0x9F8E, 0x6C82, 0x9F8B, 0x6C83, 0x9780, 0x6C86, 0xFAF7, 0x6C88, 0x92BE, 0x6C8C, 0x93D7, 0x6C8D, 0x9F8C, + 0x6C90, 0x9F94, 0x6C92, 0x9F93, 0x6C93, 0x8C42, 0x6C96, 0x89AB, 0x6C99, 0x8DB9, 0x6C9A, 0x9F8D, 0x6C9B, 0x9F8F, 0x6CA1, 0x9676, + 0x6CA2, 0x91F2, 0x6CAB, 0x9697, 0x6CAE, 0x9F9C, 0x6CB1, 0x9F9D, 0x6CB3, 0x89CD, 0x6CB8, 0x95A6, 0x6CB9, 0x96FB, 0x6CBA, 0x9F9F, + 0x6CBB, 0x8EA1, 0x6CBC, 0x8FC0, 0x6CBD, 0x9F98, 0x6CBE, 0x9F9E, 0x6CBF, 0x8988, 0x6CC1, 0x8BB5, 0x6CC4, 0x9F95, 0x6CC5, 0x9F9A, + 0x6CC9, 0x90F2, 0x6CCA, 0x9491, 0x6CCC, 0x94E5, 0x6CD3, 0x9F97, 0x6CD5, 0x9640, 0x6CD7, 0x9F99, 0x6CD9, 0x9FA2, 0x6CDA, 0xFAF9, + 0x6CDB, 0x9FA0, 0x6CDD, 0x9F9B, 0x6CE1, 0x9641, 0x6CE2, 0x9467, 0x6CE3, 0x8B83, 0x6CE5, 0x9344, 0x6CE8, 0x928D, 0x6CEA, 0x9FA3, + 0x6CEF, 0x9FA1, 0x6CF0, 0x91D7, 0x6CF1, 0x9F96, 0x6CF3, 0x896A, 0x6D04, 0xFAFA, 0x6D0B, 0x976D, 0x6D0C, 0x9FAE, 0x6D12, 0x9FAD, + 0x6D17, 0x90F4, 0x6D19, 0x9FAA, 0x6D1B, 0x978C, 0x6D1E, 0x93B4, 0x6D1F, 0x9FA4, 0x6D25, 0x92C3, 0x6D29, 0x896B, 0x6D2A, 0x8D5E, + 0x6D2B, 0x9FA7, 0x6D32, 0x8F46, 0x6D33, 0x9FAC, 0x6D35, 0x9FAB, 0x6D36, 0x9FA6, 0x6D38, 0x9FA9, 0x6D3B, 0x8A88, 0x6D3D, 0x9FA8, + 0x6D3E, 0x9468, 0x6D41, 0x97AC, 0x6D44, 0x8FF2, 0x6D45, 0x90F3, 0x6D59, 0x9FB4, 0x6D5A, 0x9FB2, 0x6D5C, 0x956C, 0x6D63, 0x9FAF, + 0x6D64, 0x9FB1, 0x6D66, 0x8959, 0x6D69, 0x8D5F, 0x6D6A, 0x9851, 0x6D6C, 0x8A5C, 0x6D6E, 0x9582, 0x6D6F, 0xFAFC, 0x6D74, 0x9781, + 0x6D77, 0x8A43, 0x6D78, 0x905A, 0x6D79, 0x9FB3, 0x6D85, 0x9FB8, 0x6D87, 0xFAFB, 0x6D88, 0x8FC1, 0x6D8C, 0x974F, 0x6D8E, 0x9FB5, + 0x6D93, 0x9FB0, 0x6D95, 0x9FB6, 0x6D96, 0xFB40, 0x6D99, 0x97DC, 0x6D9B, 0x9393, 0x6D9C, 0x93C0, 0x6DAC, 0xFB41, 0x6DAF, 0x8A55, + 0x6DB2, 0x8974, 0x6DB5, 0x9FBC, 0x6DB8, 0x9FBF, 0x6DBC, 0x97C1, 0x6DC0, 0x9784, 0x6DC5, 0x9FC6, 0x6DC6, 0x9FC0, 0x6DC7, 0x9FBD, + 0x6DCB, 0x97D2, 0x6DCC, 0x9FC3, 0x6DCF, 0xFB42, 0x6DD1, 0x8F69, 0x6DD2, 0x9FC5, 0x6DD5, 0x9FCA, 0x6DD8, 0x9391, 0x6DD9, 0x9FC8, + 0x6DDE, 0x9FC2, 0x6DE1, 0x9257, 0x6DE4, 0x9FC9, 0x6DE6, 0x9FBE, 0x6DE8, 0x9FC4, 0x6DEA, 0x9FCB, 0x6DEB, 0x88FA, 0x6DEC, 0x9FC1, + 0x6DEE, 0x9FCC, 0x6DF1, 0x905B, 0x6DF2, 0xFB44, 0x6DF3, 0x8F7E, 0x6DF5, 0x95A3, 0x6DF7, 0x8DAC, 0x6DF8, 0xFB43, 0x6DF9, 0x9FB9, + 0x6DFA, 0x9FC7, 0x6DFB, 0x9359, 0x6DFC, 0xFB45, 0x6E05, 0x90B4, 0x6E07, 0x8A89, 0x6E08, 0x8DCF, 0x6E09, 0x8FC2, 0x6E0A, 0x9FBB, + 0x6E0B, 0x8F61, 0x6E13, 0x8C6B, 0x6E15, 0x9FBA, 0x6E19, 0x9FD0, 0x6E1A, 0x8F8D, 0x6E1B, 0x8CB8, 0x6E1D, 0x9FDF, 0x6E1F, 0x9FD9, + 0x6E20, 0x8B94, 0x6E21, 0x936E, 0x6E23, 0x9FD4, 0x6E24, 0x9FDD, 0x6E25, 0x88AD, 0x6E26, 0x8951, 0x6E27, 0xFB48, 0x6E29, 0x89B7, + 0x6E2B, 0x9FD6, 0x6E2C, 0x91AA, 0x6E2D, 0x9FCD, 0x6E2E, 0x9FCF, 0x6E2F, 0x8D60, 0x6E38, 0x9FE0, 0x6E39, 0xFB46, 0x6E3A, 0x9FDB, + 0x6E3C, 0xFB49, 0x6E3E, 0x9FD3, 0x6E43, 0x9FDA, 0x6E4A, 0x96A9, 0x6E4D, 0x9FD8, 0x6E4E, 0x9FDC, 0x6E56, 0x8CCE, 0x6E58, 0x8FC3, + 0x6E5B, 0x9258, 0x6E5C, 0xFB47, 0x6E5F, 0x9FD2, 0x6E67, 0x974E, 0x6E6B, 0x9FD5, 0x6E6E, 0x9FCE, 0x6E6F, 0x9392, 0x6E72, 0x9FD1, + 0x6E76, 0x9FD7, 0x6E7E, 0x9870, 0x6E7F, 0x8EBC, 0x6E80, 0x969E, 0x6E82, 0x9FE1, 0x6E8C, 0x94AC, 0x6E8F, 0x9FED, 0x6E90, 0x8CB9, + 0x6E96, 0x8F80, 0x6E98, 0x9FE3, 0x6E9C, 0x97AD, 0x6E9D, 0x8D61, 0x6E9F, 0x9FF0, 0x6EA2, 0x88EC, 0x6EA5, 0x9FEE, 0x6EAA, 0x9FE2, + 0x6EAF, 0x9FE8, 0x6EB2, 0x9FEA, 0x6EB6, 0x976E, 0x6EB7, 0x9FE5, 0x6EBA, 0x934D, 0x6EBD, 0x9FE7, 0x6EBF, 0xFB4A, 0x6EC2, 0x9FEF, + 0x6EC4, 0x9FE9, 0x6EC5, 0x96C5, 0x6EC9, 0x9FE4, 0x6ECB, 0x8EA0, 0x6ECC, 0x9FFC, 0x6ED1, 0x8A8A, 0x6ED3, 0x9FE6, 0x6ED4, 0x9FEB, + 0x6ED5, 0x9FEC, 0x6EDD, 0x91EA, 0x6EDE, 0x91D8, 0x6EEC, 0x9FF4, 0x6EEF, 0x9FFA, 0x6EF2, 0x9FF8, 0x6EF4, 0x9348, 0x6EF7, 0xE042, + 0x6EF8, 0x9FF5, 0x6EFE, 0x9FF6, 0x6EFF, 0x9FDE, 0x6F01, 0x8B99, 0x6F02, 0x9559, 0x6F06, 0x8EBD, 0x6F09, 0x8D97, 0x6F0F, 0x9852, + 0x6F11, 0x9FF2, 0x6F13, 0xE041, 0x6F14, 0x8989, 0x6F15, 0x9186, 0x6F20, 0x9499, 0x6F22, 0x8ABF, 0x6F23, 0x97F8, 0x6F2B, 0x969F, + 0x6F2C, 0x92D0, 0x6F31, 0x9FF9, 0x6F32, 0x9FFB, 0x6F38, 0x9151, 0x6F3E, 0xE040, 0x6F3F, 0x9FF7, 0x6F41, 0x9FF1, 0x6F45, 0x8AC1, + 0x6F54, 0x8C89, 0x6F58, 0xE04E, 0x6F5B, 0xE049, 0x6F5C, 0x90F6, 0x6F5F, 0x8A83, 0x6F64, 0x8F81, 0x6F66, 0xE052, 0x6F6D, 0xE04B, + 0x6F6E, 0x92AA, 0x6F6F, 0xE048, 0x6F70, 0x92D7, 0x6F74, 0xE06B, 0x6F78, 0xE045, 0x6F7A, 0xE044, 0x6F7C, 0xE04D, 0x6F80, 0xE047, + 0x6F81, 0xE046, 0x6F82, 0xE04C, 0x6F84, 0x909F, 0x6F86, 0xE043, 0x6F88, 0xFB4B, 0x6F8E, 0xE04F, 0x6F91, 0xE050, 0x6F97, 0x8AC0, + 0x6FA1, 0xE055, 0x6FA3, 0xE054, 0x6FA4, 0xE056, 0x6FAA, 0xE059, 0x6FB1, 0x9362, 0x6FB3, 0xE053, 0x6FB5, 0xFB4C, 0x6FB9, 0xE057, + 0x6FC0, 0x8C83, 0x6FC1, 0x91F7, 0x6FC2, 0xE051, 0x6FC3, 0x945A, 0x6FC6, 0xE058, 0x6FD4, 0xE05D, 0x6FD5, 0xE05B, 0x6FD8, 0xE05E, + 0x6FDB, 0xE061, 0x6FDF, 0xE05A, 0x6FE0, 0x8D8A, 0x6FE1, 0x9447, 0x6FE4, 0x9FB7, 0x6FEB, 0x9794, 0x6FEC, 0xE05C, 0x6FEE, 0xE060, + 0x6FEF, 0x91F3, 0x6FF1, 0xE05F, 0x6FF3, 0xE04A, 0x6FF5, 0xFB4D, 0x6FF6, 0xE889, 0x6FFA, 0xE064, 0x6FFE, 0xE068, 0x7001, 0xE066, + 0x7005, 0xFB4E, 0x7007, 0xFB4F, 0x7009, 0xE062, 0x700B, 0xE063, 0x700F, 0xE067, 0x7011, 0xE065, 0x7015, 0x956D, 0x7018, 0xE06D, + 0x701A, 0xE06A, 0x701B, 0xE069, 0x701D, 0xE06C, 0x701E, 0x93D2, 0x701F, 0xE06E, 0x7026, 0x9295, 0x7027, 0x91EB, 0x7028, 0xFB50, + 0x702C, 0x90A3, 0x7030, 0xE06F, 0x7032, 0xE071, 0x703E, 0xE070, 0x704C, 0x9FF3, 0x7051, 0xE072, 0x7058, 0x93E5, 0x7063, 0xE073, + 0x706B, 0x89CE, 0x706F, 0x9394, 0x7070, 0x8A44, 0x7078, 0x8B84, 0x707C, 0x8EDC, 0x707D, 0x8DD0, 0x7085, 0xFB51, 0x7089, 0x9846, + 0x708A, 0x9086, 0x708E, 0x898A, 0x7092, 0xE075, 0x7099, 0xE074, 0x70AB, 0xFB52, 0x70AC, 0xE078, 0x70AD, 0x9259, 0x70AE, 0xE07B, + 0x70AF, 0xE076, 0x70B3, 0xE07A, 0x70B8, 0xE079, 0x70B9, 0x935F, 0x70BA, 0x88D7, 0x70BB, 0xFA62, 0x70C8, 0x97F3, 0x70CB, 0xE07D, + 0x70CF, 0x8947, 0x70D9, 0xE080, 0x70DD, 0xE07E, 0x70DF, 0xE07C, 0x70F1, 0xE077, 0x70F9, 0x9642, 0x70FD, 0xE082, 0x7104, 0xFB54, + 0x7109, 0xE081, 0x710F, 0xFB53, 0x7114, 0x898B, 0x7119, 0xE084, 0x711A, 0x95B0, 0x711C, 0xE083, 0x7121, 0x96B3, 0x7126, 0x8FC5, + 0x7136, 0x9152, 0x713C, 0x8FC4, 0x7146, 0xFB56, 0x7147, 0xFB57, 0x7149, 0x97F9, 0x714C, 0xE08A, 0x714E, 0x90F7, 0x7155, 0xE086, + 0x7156, 0xE08B, 0x7159, 0x898C, 0x715C, 0xFB55, 0x7162, 0xE089, 0x7164, 0x9481, 0x7165, 0xE085, 0x7166, 0xE088, 0x7167, 0x8FC6, + 0x7169, 0x94CF, 0x716C, 0xE08C, 0x716E, 0x8ECF, 0x717D, 0x90F8, 0x7184, 0xE08F, 0x7188, 0xE087, 0x718A, 0x8C46, 0x718F, 0xE08D, + 0x7194, 0x976F, 0x7195, 0xE090, 0x7199, 0xEAA4, 0x719F, 0x8F6E, 0x71A8, 0xE091, 0x71AC, 0xE092, 0x71B1, 0x944D, 0x71B9, 0xE094, + 0x71BE, 0xE095, 0x71C1, 0xFB59, 0x71C3, 0x9452, 0x71C8, 0x9395, 0x71C9, 0xE097, 0x71CE, 0xE099, 0x71D0, 0x97D3, 0x71D2, 0xE096, + 0x71D4, 0xE098, 0x71D5, 0x898D, 0x71D7, 0xE093, 0x71DF, 0x9A7A, 0x71E0, 0xE09A, 0x71E5, 0x9187, 0x71E6, 0x8E57, 0x71E7, 0xE09C, + 0x71EC, 0xE09B, 0x71ED, 0x9043, 0x71EE, 0x99D7, 0x71F5, 0xE09D, 0x71F9, 0xE09F, 0x71FB, 0xE08E, 0x71FC, 0xE09E, 0x71FE, 0xFB5A, + 0x71FF, 0xE0A0, 0x7206, 0x949A, 0x720D, 0xE0A1, 0x7210, 0xE0A2, 0x721B, 0xE0A3, 0x7228, 0xE0A4, 0x722A, 0x92DC, 0x722C, 0xE0A6, + 0x722D, 0xE0A5, 0x7230, 0xE0A7, 0x7232, 0xE0A8, 0x7235, 0x8EDD, 0x7236, 0x9583, 0x723A, 0x96EA, 0x723B, 0xE0A9, 0x723C, 0xE0AA, + 0x723D, 0x9175, 0x723E, 0x8EA2, 0x723F, 0xE0AB, 0x7240, 0xE0AC, 0x7246, 0xE0AD, 0x7247, 0x95D0, 0x7248, 0x94C5, 0x724B, 0xE0AE, + 0x724C, 0x9476, 0x7252, 0x92AB, 0x7258, 0xE0AF, 0x7259, 0x89E5, 0x725B, 0x8B8D, 0x725D, 0x96C4, 0x725F, 0x96B4, 0x7261, 0x89B2, + 0x7262, 0x9853, 0x7267, 0x9671, 0x7269, 0x95A8, 0x7272, 0x90B5, 0x7274, 0xE0B0, 0x7279, 0x93C1, 0x727D, 0x8CA1, 0x727E, 0xE0B1, + 0x7280, 0x8DD2, 0x7281, 0xE0B3, 0x7282, 0xE0B2, 0x7287, 0xE0B4, 0x7292, 0xE0B5, 0x7296, 0xE0B6, 0x72A0, 0x8B5D, 0x72A2, 0xE0B7, + 0x72A7, 0xE0B8, 0x72AC, 0x8CA2, 0x72AF, 0x94C6, 0x72B1, 0xFB5B, 0x72B2, 0xE0BA, 0x72B6, 0x8FF3, 0x72B9, 0xE0B9, 0x72BE, 0xFB5C, + 0x72C2, 0x8BB6, 0x72C3, 0xE0BB, 0x72C4, 0xE0BD, 0x72C6, 0xE0BC, 0x72CE, 0xE0BE, 0x72D0, 0x8CCF, 0x72D2, 0xE0BF, 0x72D7, 0x8BE7, + 0x72D9, 0x915F, 0x72DB, 0x8D9D, 0x72E0, 0xE0C1, 0x72E1, 0xE0C2, 0x72E2, 0xE0C0, 0x72E9, 0x8EEB, 0x72EC, 0x93C6, 0x72ED, 0x8BB7, + 0x72F7, 0xE0C4, 0x72F8, 0x924B, 0x72F9, 0xE0C3, 0x72FC, 0x9854, 0x72FD, 0x9482, 0x730A, 0xE0C7, 0x7316, 0xE0C9, 0x7317, 0xE0C6, + 0x731B, 0x96D2, 0x731C, 0xE0C8, 0x731D, 0xE0CA, 0x731F, 0x97C2, 0x7324, 0xFB5D, 0x7325, 0xE0CE, 0x7329, 0xE0CD, 0x732A, 0x9296, + 0x732B, 0x944C, 0x732E, 0x8CA3, 0x732F, 0xE0CC, 0x7334, 0xE0CB, 0x7336, 0x9750, 0x7337, 0x9751, 0x733E, 0xE0CF, 0x733F, 0x898E, + 0x7344, 0x8D96, 0x7345, 0x8E82, 0x734E, 0xE0D0, 0x734F, 0xE0D1, 0x7357, 0xE0D3, 0x7363, 0x8F62, 0x7368, 0xE0D5, 0x736A, 0xE0D4, + 0x7370, 0xE0D6, 0x7372, 0x8A6C, 0x7375, 0xE0D8, 0x7377, 0xFB5F, 0x7378, 0xE0D7, 0x737A, 0xE0DA, 0x737B, 0xE0D9, 0x7384, 0x8CBA, + 0x7387, 0x97A6, 0x7389, 0x8BCA, 0x738B, 0x89A4, 0x7396, 0x8BE8, 0x73A9, 0x8ADF, 0x73B2, 0x97E6, 0x73B3, 0xE0DC, 0x73BB, 0xE0DE, + 0x73BD, 0xFB60, 0x73C0, 0xE0DF, 0x73C2, 0x89CF, 0x73C8, 0xE0DB, 0x73C9, 0xFB61, 0x73CA, 0x8E58, 0x73CD, 0x92BF, 0x73CE, 0xE0DD, + 0x73D2, 0xFB64, 0x73D6, 0xFB62, 0x73DE, 0xE0E2, 0x73E0, 0x8EEC, 0x73E3, 0xFB63, 0x73E5, 0xE0E0, 0x73EA, 0x8C5D, 0x73ED, 0x94C7, + 0x73EE, 0xE0E1, 0x73F1, 0xE0FC, 0x73F5, 0xFB66, 0x73F8, 0xE0E7, 0x73FE, 0x8CBB, 0x7403, 0x8B85, 0x7405, 0xE0E4, 0x7406, 0x979D, + 0x7407, 0xFB65, 0x7409, 0x97AE, 0x7422, 0x91F4, 0x7425, 0xE0E6, 0x7426, 0xFB67, 0x7429, 0xFB69, 0x742A, 0xFB68, 0x742E, 0xFB6A, + 0x7432, 0xE0E8, 0x7433, 0x97D4, 0x7434, 0x8BD5, 0x7435, 0x94FA, 0x7436, 0x9469, 0x743A, 0xE0E9, 0x743F, 0xE0EB, 0x7441, 0xE0EE, + 0x7455, 0xE0EA, 0x7459, 0xE0ED, 0x745A, 0x8CE8, 0x745B, 0x896C, 0x745C, 0xE0EF, 0x745E, 0x9090, 0x745F, 0xE0EC, 0x7460, 0x97DA, + 0x7462, 0xFB6B, 0x7463, 0xE0F2, 0x7464, 0xEAA2, 0x7469, 0xE0F0, 0x746A, 0xE0F3, 0x746F, 0xE0E5, 0x7470, 0xE0F1, 0x7473, 0x8DBA, + 0x7476, 0xE0F4, 0x747E, 0xE0F5, 0x7483, 0x979E, 0x7489, 0xFB6C, 0x748B, 0xE0F6, 0x749E, 0xE0F7, 0x749F, 0xFB6D, 0x74A2, 0xE0E3, + 0x74A7, 0xE0F8, 0x74B0, 0x8AC2, 0x74BD, 0x8EA3, 0x74CA, 0xE0F9, 0x74CF, 0xE0FA, 0x74D4, 0xE0FB, 0x74DC, 0x895A, 0x74E0, 0xE140, + 0x74E2, 0x955A, 0x74E3, 0xE141, 0x74E6, 0x8AA2, 0x74E7, 0xE142, 0x74E9, 0xE143, 0x74EE, 0xE144, 0x74F0, 0xE146, 0x74F1, 0xE147, + 0x74F2, 0xE145, 0x74F6, 0x9572, 0x74F7, 0xE149, 0x74F8, 0xE148, 0x7501, 0xFB6E, 0x7503, 0xE14B, 0x7504, 0xE14A, 0x7505, 0xE14C, + 0x750C, 0xE14D, 0x750D, 0xE14F, 0x750E, 0xE14E, 0x7511, 0x8D99, 0x7513, 0xE151, 0x7515, 0xE150, 0x7518, 0x8AC3, 0x751A, 0x9072, + 0x751C, 0x935B, 0x751E, 0xE152, 0x751F, 0x90B6, 0x7523, 0x8E59, 0x7525, 0x8999, 0x7526, 0xE153, 0x7528, 0x9770, 0x752B, 0x95E1, + 0x752C, 0xE154, 0x752F, 0xFAA8, 0x7530, 0x9363, 0x7531, 0x9752, 0x7532, 0x8D62, 0x7533, 0x905C, 0x7537, 0x926A, 0x7538, 0x99B2, + 0x753A, 0x92AC, 0x753B, 0x89E6, 0x753C, 0xE155, 0x7544, 0xE156, 0x7546, 0xE15B, 0x7549, 0xE159, 0x754A, 0xE158, 0x754B, 0x9DC0, + 0x754C, 0x8A45, 0x754D, 0xE157, 0x754F, 0x88D8, 0x7551, 0x94A8, 0x7554, 0x94C8, 0x7559, 0x97AF, 0x755A, 0xE15C, 0x755B, 0xE15A, + 0x755C, 0x927B, 0x755D, 0x90A4, 0x7560, 0x94A9, 0x7562, 0x954C, 0x7564, 0xE15E, 0x7565, 0x97AA, 0x7566, 0x8C6C, 0x7567, 0xE15F, + 0x7569, 0xE15D, 0x756A, 0x94D4, 0x756B, 0xE160, 0x756D, 0xE161, 0x756F, 0xFB6F, 0x7570, 0x88D9, 0x7573, 0x8FF4, 0x7574, 0xE166, + 0x7576, 0xE163, 0x7577, 0x93EB, 0x7578, 0xE162, 0x757F, 0x8B45, 0x7582, 0xE169, 0x7586, 0xE164, 0x7587, 0xE165, 0x7589, 0xE168, + 0x758A, 0xE167, 0x758B, 0x9544, 0x758E, 0x9161, 0x758F, 0x9160, 0x7591, 0x8B5E, 0x7594, 0xE16A, 0x759A, 0xE16B, 0x759D, 0xE16C, + 0x75A3, 0xE16E, 0x75A5, 0xE16D, 0x75AB, 0x8975, 0x75B1, 0xE176, 0x75B2, 0x94E6, 0x75B3, 0xE170, 0x75B5, 0xE172, 0x75B8, 0xE174, + 0x75B9, 0x905D, 0x75BC, 0xE175, 0x75BD, 0xE173, 0x75BE, 0x8EBE, 0x75C2, 0xE16F, 0x75C3, 0xE171, 0x75C5, 0x9561, 0x75C7, 0x8FC7, + 0x75CA, 0xE178, 0x75CD, 0xE177, 0x75D2, 0xE179, 0x75D4, 0x8EA4, 0x75D5, 0x8DAD, 0x75D8, 0x9397, 0x75D9, 0xE17A, 0x75DB, 0x92C9, + 0x75DE, 0xE17C, 0x75E2, 0x979F, 0x75E3, 0xE17B, 0x75E9, 0x9189, 0x75F0, 0xE182, 0x75F2, 0xE184, 0x75F3, 0xE185, 0x75F4, 0x9273, + 0x75FA, 0xE183, 0x75FC, 0xE180, 0x75FE, 0xE17D, 0x75FF, 0xE17E, 0x7601, 0xE181, 0x7609, 0xE188, 0x760B, 0xE186, 0x760D, 0xE187, + 0x761F, 0xE189, 0x7620, 0xE18B, 0x7621, 0xE18C, 0x7622, 0xE18D, 0x7624, 0xE18E, 0x7627, 0xE18A, 0x7630, 0xE190, 0x7634, 0xE18F, + 0x763B, 0xE191, 0x7642, 0x97C3, 0x7646, 0xE194, 0x7647, 0xE192, 0x7648, 0xE193, 0x764C, 0x8AE0, 0x7652, 0x96FC, 0x7656, 0x95C8, + 0x7658, 0xE196, 0x765C, 0xE195, 0x7661, 0xE197, 0x7662, 0xE198, 0x7667, 0xE19C, 0x7668, 0xE199, 0x7669, 0xE19A, 0x766A, 0xE19B, + 0x766C, 0xE19D, 0x7670, 0xE19E, 0x7672, 0xE19F, 0x7676, 0xE1A0, 0x7678, 0xE1A1, 0x767A, 0x94AD, 0x767B, 0x936F, 0x767C, 0xE1A2, + 0x767D, 0x9492, 0x767E, 0x9553, 0x7680, 0xE1A3, 0x7682, 0xFB70, 0x7683, 0xE1A4, 0x7684, 0x9349, 0x7686, 0x8A46, 0x7687, 0x8D63, + 0x7688, 0xE1A5, 0x768B, 0xE1A6, 0x768E, 0xE1A7, 0x7690, 0x8E48, 0x7693, 0xE1A9, 0x7696, 0xE1A8, 0x7699, 0xE1AA, 0x769A, 0xE1AB, + 0x769B, 0xFB73, 0x769C, 0xFB71, 0x769E, 0xFB72, 0x76A6, 0xFB74, 0x76AE, 0x94E7, 0x76B0, 0xE1AC, 0x76B4, 0xE1AD, 0x76B7, 0xEA89, + 0x76B8, 0xE1AE, 0x76B9, 0xE1AF, 0x76BA, 0xE1B0, 0x76BF, 0x8E4D, 0x76C2, 0xE1B1, 0x76C3, 0x9475, 0x76C6, 0x967E, 0x76C8, 0x896D, + 0x76CA, 0x8976, 0x76CD, 0xE1B2, 0x76D2, 0xE1B4, 0x76D6, 0xE1B3, 0x76D7, 0x9390, 0x76DB, 0x90B7, 0x76DC, 0x9F58, 0x76DE, 0xE1B5, + 0x76DF, 0x96BF, 0x76E1, 0xE1B6, 0x76E3, 0x8AC4, 0x76E4, 0x94D5, 0x76E5, 0xE1B7, 0x76E7, 0xE1B8, 0x76EA, 0xE1B9, 0x76EE, 0x96DA, + 0x76F2, 0x96D3, 0x76F4, 0x92BC, 0x76F8, 0x918A, 0x76FB, 0xE1BB, 0x76FE, 0x8F82, 0x7701, 0x8FC8, 0x7704, 0xE1BE, 0x7707, 0xE1BD, + 0x7708, 0xE1BC, 0x7709, 0x94FB, 0x770B, 0x8AC5, 0x770C, 0x8CA7, 0x771B, 0xE1C4, 0x771E, 0xE1C1, 0x771F, 0x905E, 0x7720, 0x96B0, + 0x7724, 0xE1C0, 0x7725, 0xE1C2, 0x7726, 0xE1C3, 0x7729, 0xE1BF, 0x7737, 0xE1C5, 0x7738, 0xE1C6, 0x773A, 0x92AD, 0x773C, 0x8AE1, + 0x7740, 0x9285, 0x7746, 0xFB76, 0x7747, 0xE1C7, 0x775A, 0xE1C8, 0x775B, 0xE1CB, 0x7761, 0x9087, 0x7763, 0x93C2, 0x7765, 0xE1CC, + 0x7766, 0x9672, 0x7768, 0xE1C9, 0x776B, 0xE1CA, 0x7779, 0xE1CF, 0x777E, 0xE1CE, 0x777F, 0xE1CD, 0x778B, 0xE1D1, 0x778E, 0xE1D0, + 0x7791, 0xE1D2, 0x779E, 0xE1D4, 0x77A0, 0xE1D3, 0x77A5, 0x95CB, 0x77AC, 0x8F75, 0x77AD, 0x97C4, 0x77B0, 0xE1D5, 0x77B3, 0x93B5, + 0x77B6, 0xE1D6, 0x77B9, 0xE1D7, 0x77BB, 0xE1DB, 0x77BC, 0xE1D9, 0x77BD, 0xE1DA, 0x77BF, 0xE1D8, 0x77C7, 0xE1DC, 0x77CD, 0xE1DD, + 0x77D7, 0xE1DE, 0x77DA, 0xE1DF, 0x77DB, 0x96B5, 0x77DC, 0xE1E0, 0x77E2, 0x96EE, 0x77E3, 0xE1E1, 0x77E5, 0x926D, 0x77E7, 0x948A, + 0x77E9, 0x8BE9, 0x77ED, 0x925A, 0x77EE, 0xE1E2, 0x77EF, 0x8BB8, 0x77F3, 0x90CE, 0x77FC, 0xE1E3, 0x7802, 0x8DBB, 0x780C, 0xE1E4, + 0x7812, 0xE1E5, 0x7814, 0x8CA4, 0x7815, 0x8DD3, 0x7820, 0xE1E7, 0x7821, 0xFB78, 0x7825, 0x9375, 0x7826, 0x8DD4, 0x7827, 0x8B6D, + 0x7832, 0x9643, 0x7834, 0x946A, 0x783A, 0x9376, 0x783F, 0x8D7B, 0x7845, 0xE1E9, 0x784E, 0xFB79, 0x785D, 0x8FC9, 0x7864, 0xFB7A, + 0x786B, 0x97B0, 0x786C, 0x8D64, 0x786F, 0x8CA5, 0x7872, 0x94A1, 0x7874, 0xE1EB, 0x787A, 0xFB7B, 0x787C, 0xE1ED, 0x7881, 0x8CE9, + 0x7886, 0xE1EC, 0x7887, 0x92F4, 0x788C, 0xE1EF, 0x788D, 0x8A56, 0x788E, 0xE1EA, 0x7891, 0x94E8, 0x7893, 0x894F, 0x7895, 0x8DEA, + 0x7897, 0x9871, 0x789A, 0xE1EE, 0x78A3, 0xE1F0, 0x78A7, 0x95C9, 0x78A9, 0x90D7, 0x78AA, 0xE1F2, 0x78AF, 0xE1F3, 0x78B5, 0xE1F1, + 0x78BA, 0x8A6D, 0x78BC, 0xE1F9, 0x78BE, 0xE1F8, 0x78C1, 0x8EA5, 0x78C5, 0xE1FA, 0x78C6, 0xE1F5, 0x78CA, 0xE1FB, 0x78CB, 0xE1F6, + 0x78D0, 0x94D6, 0x78D1, 0xE1F4, 0x78D4, 0xE1F7, 0x78DA, 0xE241, 0x78E7, 0xE240, 0x78E8, 0x9681, 0x78EC, 0xE1FC, 0x78EF, 0x88E9, + 0x78F4, 0xE243, 0x78FD, 0xE242, 0x7901, 0x8FCA, 0x7907, 0xE244, 0x790E, 0x9162, 0x7911, 0xE246, 0x7912, 0xE245, 0x7919, 0xE247, + 0x7926, 0xE1E6, 0x792A, 0xE1E8, 0x792B, 0xE249, 0x792C, 0xE248, 0x7930, 0xFB7C, 0x793A, 0x8EA6, 0x793C, 0x97E7, 0x793E, 0x8ED0, + 0x7940, 0xE24A, 0x7941, 0x8C56, 0x7947, 0x8B5F, 0x7948, 0x8B46, 0x7949, 0x8E83, 0x7950, 0x9753, 0x7953, 0xE250, 0x7955, 0xE24F, + 0x7956, 0x9163, 0x7957, 0xE24C, 0x795A, 0xE24E, 0x795D, 0x8F6A, 0x795E, 0x905F, 0x795F, 0xE24D, 0x7960, 0xE24B, 0x7962, 0x9449, + 0x7965, 0x8FCB, 0x7968, 0x955B, 0x796D, 0x8DD5, 0x7977, 0x9398, 0x797A, 0xE251, 0x797F, 0xE252, 0x7980, 0xE268, 0x7981, 0x8BD6, + 0x7984, 0x985C, 0x7985, 0x9154, 0x798A, 0xE253, 0x798D, 0x89D0, 0x798E, 0x92F5, 0x798F, 0x959F, 0x7994, 0xFB81, 0x799B, 0xFB83, + 0x799D, 0xE254, 0x79A6, 0x8B9A, 0x79A7, 0xE255, 0x79AA, 0xE257, 0x79AE, 0xE258, 0x79B0, 0x9448, 0x79B3, 0xE259, 0x79B9, 0xE25A, + 0x79BA, 0xE25B, 0x79BD, 0x8BD7, 0x79BE, 0x89D1, 0x79BF, 0x93C3, 0x79C0, 0x8F47, 0x79C1, 0x8E84, 0x79C9, 0xE25C, 0x79CB, 0x8F48, + 0x79D1, 0x89C8, 0x79D2, 0x9562, 0x79D5, 0xE25D, 0x79D8, 0x94E9, 0x79DF, 0x9164, 0x79E1, 0xE260, 0x79E3, 0xE261, 0x79E4, 0x9489, + 0x79E6, 0x9060, 0x79E7, 0xE25E, 0x79E9, 0x9281, 0x79EC, 0xE25F, 0x79F0, 0x8FCC, 0x79FB, 0x88DA, 0x7A00, 0x8B48, 0x7A08, 0xE262, + 0x7A0B, 0x92F6, 0x7A0D, 0xE263, 0x7A0E, 0x90C5, 0x7A14, 0x96AB, 0x7A17, 0x9542, 0x7A18, 0xE264, 0x7A19, 0xE265, 0x7A1A, 0x9274, + 0x7A1C, 0x97C5, 0x7A1F, 0xE267, 0x7A20, 0xE266, 0x7A2E, 0x8EED, 0x7A31, 0xE269, 0x7A32, 0x88EE, 0x7A37, 0xE26C, 0x7A3B, 0xE26A, + 0x7A3C, 0x89D2, 0x7A3D, 0x8C6D, 0x7A3E, 0xE26B, 0x7A3F, 0x8D65, 0x7A40, 0x8D92, 0x7A42, 0x95E4, 0x7A43, 0xE26D, 0x7A46, 0x9673, + 0x7A49, 0xE26F, 0x7A4D, 0x90CF, 0x7A4E, 0x896E, 0x7A4F, 0x89B8, 0x7A50, 0x88AA, 0x7A57, 0xE26E, 0x7A61, 0xE270, 0x7A62, 0xE271, + 0x7A63, 0x8FF5, 0x7A69, 0xE272, 0x7A6B, 0x8A6E, 0x7A70, 0xE274, 0x7A74, 0x8C8A, 0x7A76, 0x8B86, 0x7A79, 0xE275, 0x7A7A, 0x8BF3, + 0x7A7D, 0xE276, 0x7A7F, 0x90FA, 0x7A81, 0x93CB, 0x7A83, 0x90DE, 0x7A84, 0x8DF3, 0x7A88, 0xE277, 0x7A92, 0x9282, 0x7A93, 0x918B, + 0x7A95, 0xE279, 0x7A96, 0xE27B, 0x7A97, 0xE278, 0x7A98, 0xE27A, 0x7A9F, 0x8C41, 0x7AA9, 0xE27C, 0x7AAA, 0x8C45, 0x7AAE, 0x8B87, + 0x7AAF, 0x9771, 0x7AB0, 0xE27E, 0x7AB6, 0xE280, 0x7ABA, 0x894D, 0x7ABF, 0xE283, 0x7AC3, 0x8A96, 0x7AC4, 0xE282, 0x7AC5, 0xE281, + 0x7AC7, 0xE285, 0x7AC8, 0xE27D, 0x7ACA, 0xE286, 0x7ACB, 0x97A7, 0x7ACD, 0xE287, 0x7ACF, 0xE288, 0x7AD1, 0xFB84, 0x7AD2, 0x9AF2, + 0x7AD3, 0xE28A, 0x7AD5, 0xE289, 0x7AD9, 0xE28B, 0x7ADA, 0xE28C, 0x7ADC, 0x97B3, 0x7ADD, 0xE28D, 0x7ADF, 0xE8ED, 0x7AE0, 0x8FCD, + 0x7AE1, 0xE28E, 0x7AE2, 0xE28F, 0x7AE3, 0x8F76, 0x7AE5, 0x93B6, 0x7AE6, 0xE290, 0x7AE7, 0xFB85, 0x7AEA, 0x9247, 0x7AEB, 0xFB87, + 0x7AED, 0xE291, 0x7AEF, 0x925B, 0x7AF0, 0xE292, 0x7AF6, 0x8BA3, 0x7AF8, 0x995E, 0x7AF9, 0x927C, 0x7AFA, 0x8EB1, 0x7AFF, 0x8AC6, + 0x7B02, 0xE293, 0x7B04, 0xE2A0, 0x7B06, 0xE296, 0x7B08, 0x8B88, 0x7B0A, 0xE295, 0x7B0B, 0xE2A2, 0x7B0F, 0xE294, 0x7B11, 0x8FCE, + 0x7B18, 0xE298, 0x7B19, 0xE299, 0x7B1B, 0x934A, 0x7B1E, 0xE29A, 0x7B20, 0x8A7D, 0x7B25, 0x9079, 0x7B26, 0x9584, 0x7B28, 0xE29C, + 0x7B2C, 0x91E6, 0x7B33, 0xE297, 0x7B35, 0xE29B, 0x7B36, 0xE29D, 0x7B39, 0x8DF9, 0x7B45, 0xE2A4, 0x7B46, 0x954D, 0x7B48, 0x94A4, + 0x7B49, 0x9399, 0x7B4B, 0x8BD8, 0x7B4C, 0xE2A3, 0x7B4D, 0xE2A1, 0x7B4F, 0x94B3, 0x7B50, 0xE29E, 0x7B51, 0x927D, 0x7B52, 0x939B, + 0x7B54, 0x939A, 0x7B56, 0x8DF4, 0x7B5D, 0xE2B6, 0x7B65, 0xE2A6, 0x7B67, 0xE2A8, 0x7B6C, 0xE2AB, 0x7B6E, 0xE2AC, 0x7B70, 0xE2A9, + 0x7B71, 0xE2AA, 0x7B74, 0xE2A7, 0x7B75, 0xE2A5, 0x7B7A, 0xE29F, 0x7B86, 0x95CD, 0x7B87, 0x89D3, 0x7B8B, 0xE2B3, 0x7B8D, 0xE2B0, + 0x7B8F, 0xE2B5, 0x7B92, 0xE2B4, 0x7B94, 0x9493, 0x7B95, 0x96A5, 0x7B97, 0x8E5A, 0x7B98, 0xE2AE, 0x7B99, 0xE2B7, 0x7B9A, 0xE2B2, + 0x7B9C, 0xE2B1, 0x7B9D, 0xE2AD, 0x7B9E, 0xFB88, 0x7B9F, 0xE2AF, 0x7BA1, 0x8AC7, 0x7BAA, 0x925C, 0x7BAD, 0x90FB, 0x7BB1, 0x94A0, + 0x7BB4, 0xE2BC, 0x7BB8, 0x94A2, 0x7BC0, 0x90DF, 0x7BC1, 0xE2B9, 0x7BC4, 0x94CD, 0x7BC6, 0xE2BD, 0x7BC7, 0x95D1, 0x7BC9, 0x927A, + 0x7BCB, 0xE2B8, 0x7BCC, 0xE2BA, 0x7BCF, 0xE2BB, 0x7BDD, 0xE2BE, 0x7BE0, 0x8EC2, 0x7BE4, 0x93C4, 0x7BE5, 0xE2C3, 0x7BE6, 0xE2C2, + 0x7BE9, 0xE2BF, 0x7BED, 0x9855, 0x7BF3, 0xE2C8, 0x7BF6, 0xE2CC, 0x7BF7, 0xE2C9, 0x7C00, 0xE2C5, 0x7C07, 0xE2C6, 0x7C0D, 0xE2CB, + 0x7C11, 0xE2C0, 0x7C12, 0x99D3, 0x7C13, 0xE2C7, 0x7C14, 0xE2C1, 0x7C17, 0xE2CA, 0x7C1F, 0xE2D0, 0x7C21, 0x8AC8, 0x7C23, 0xE2CD, + 0x7C27, 0xE2CE, 0x7C2A, 0xE2CF, 0x7C2B, 0xE2D2, 0x7C37, 0xE2D1, 0x7C38, 0x94F4, 0x7C3D, 0xE2D3, 0x7C3E, 0x97FA, 0x7C3F, 0x95EB, + 0x7C40, 0xE2D8, 0x7C43, 0xE2D5, 0x7C4C, 0xE2D4, 0x7C4D, 0x90D0, 0x7C4F, 0xE2D7, 0x7C50, 0xE2D9, 0x7C54, 0xE2D6, 0x7C56, 0xE2DD, + 0x7C58, 0xE2DA, 0x7C5F, 0xE2DB, 0x7C60, 0xE2C4, 0x7C64, 0xE2DC, 0x7C65, 0xE2DE, 0x7C6C, 0xE2DF, 0x7C73, 0x95C4, 0x7C75, 0xE2E0, + 0x7C7E, 0x96E0, 0x7C81, 0x8BCC, 0x7C82, 0x8C48, 0x7C83, 0xE2E1, 0x7C89, 0x95B2, 0x7C8B, 0x9088, 0x7C8D, 0x96AE, 0x7C90, 0xE2E2, + 0x7C92, 0x97B1, 0x7C95, 0x9494, 0x7C97, 0x9165, 0x7C98, 0x9453, 0x7C9B, 0x8F6C, 0x7C9F, 0x88BE, 0x7CA1, 0xE2E7, 0x7CA2, 0xE2E5, + 0x7CA4, 0xE2E3, 0x7CA5, 0x8A9F, 0x7CA7, 0x8FCF, 0x7CA8, 0xE2E8, 0x7CAB, 0xE2E6, 0x7CAD, 0xE2E4, 0x7CAE, 0xE2EC, 0x7CB1, 0xE2EB, + 0x7CB2, 0xE2EA, 0x7CB3, 0xE2E9, 0x7CB9, 0xE2ED, 0x7CBD, 0xE2EE, 0x7CBE, 0x90B8, 0x7CC0, 0xE2EF, 0x7CC2, 0xE2F1, 0x7CC5, 0xE2F0, + 0x7CCA, 0x8CD0, 0x7CCE, 0x9157, 0x7CD2, 0xE2F3, 0x7CD6, 0x939C, 0x7CD8, 0xE2F2, 0x7CDC, 0xE2F4, 0x7CDE, 0x95B3, 0x7CDF, 0x918C, + 0x7CE0, 0x8D66, 0x7CE2, 0xE2F5, 0x7CE7, 0x97C6, 0x7CEF, 0xE2F7, 0x7CF2, 0xE2F8, 0x7CF4, 0xE2F9, 0x7CF6, 0xE2FA, 0x7CF8, 0x8E85, + 0x7CFA, 0xE2FB, 0x7CFB, 0x8C6E, 0x7CFE, 0x8B8A, 0x7D00, 0x8B49, 0x7D02, 0xE340, 0x7D04, 0x96F1, 0x7D05, 0x8D67, 0x7D06, 0xE2FC, + 0x7D0A, 0xE343, 0x7D0B, 0x96E4, 0x7D0D, 0x945B, 0x7D10, 0x9552, 0x7D14, 0x8F83, 0x7D15, 0xE342, 0x7D17, 0x8ED1, 0x7D18, 0x8D68, + 0x7D19, 0x8E86, 0x7D1A, 0x8B89, 0x7D1B, 0x95B4, 0x7D1C, 0xE341, 0x7D20, 0x9166, 0x7D21, 0x9661, 0x7D22, 0x8DF5, 0x7D2B, 0x8E87, + 0x7D2C, 0x92DB, 0x7D2E, 0xE346, 0x7D2F, 0x97DD, 0x7D30, 0x8DD7, 0x7D32, 0xE347, 0x7D33, 0x9061, 0x7D35, 0xE349, 0x7D39, 0x8FD0, + 0x7D3A, 0x8DAE, 0x7D3F, 0xE348, 0x7D42, 0x8F49, 0x7D43, 0x8CBC, 0x7D44, 0x9167, 0x7D45, 0xE344, 0x7D46, 0xE34A, 0x7D48, 0xFB8A, + 0x7D4B, 0xE345, 0x7D4C, 0x8C6F, 0x7D4E, 0xE34D, 0x7D4F, 0xE351, 0x7D50, 0x8C8B, 0x7D56, 0xE34C, 0x7D5B, 0xE355, 0x7D5C, 0xFB8B, + 0x7D5E, 0x8D69, 0x7D61, 0x978D, 0x7D62, 0x88BA, 0x7D63, 0xE352, 0x7D66, 0x8B8B, 0x7D68, 0xE34F, 0x7D6E, 0xE350, 0x7D71, 0x939D, + 0x7D72, 0xE34E, 0x7D73, 0xE34B, 0x7D75, 0x8A47, 0x7D76, 0x90E2, 0x7D79, 0x8CA6, 0x7D7D, 0xE357, 0x7D89, 0xE354, 0x7D8F, 0xE356, + 0x7D93, 0xE353, 0x7D99, 0x8C70, 0x7D9A, 0x91B1, 0x7D9B, 0xE358, 0x7D9C, 0x918E, 0x7D9F, 0xE365, 0x7DA0, 0xFB8D, 0x7DA2, 0xE361, + 0x7DA3, 0xE35B, 0x7DAB, 0xE35F, 0x7DAC, 0x8EF8, 0x7DAD, 0x88DB, 0x7DAE, 0xE35A, 0x7DAF, 0xE362, 0x7DB0, 0xE366, 0x7DB1, 0x8D6A, + 0x7DB2, 0x96D4, 0x7DB4, 0x92D4, 0x7DB5, 0xE35C, 0x7DB7, 0xFB8C, 0x7DB8, 0xE364, 0x7DBA, 0xE359, 0x7DBB, 0x925D, 0x7DBD, 0xE35E, + 0x7DBE, 0x88BB, 0x7DBF, 0x96C8, 0x7DC7, 0xE35D, 0x7DCA, 0x8BD9, 0x7DCB, 0x94EA, 0x7DCF, 0x918D, 0x7DD1, 0x97CE, 0x7DD2, 0x8F8F, + 0x7DD5, 0xE38E, 0x7DD6, 0xFB8E, 0x7DD8, 0xE367, 0x7DDA, 0x90FC, 0x7DDC, 0xE363, 0x7DDD, 0xE368, 0x7DDE, 0xE36A, 0x7DE0, 0x92F7, + 0x7DE1, 0xE36D, 0x7DE4, 0xE369, 0x7DE8, 0x95D2, 0x7DE9, 0x8AC9, 0x7DEC, 0x96C9, 0x7DEF, 0x88DC, 0x7DF2, 0xE36C, 0x7DF4, 0x97FB, + 0x7DFB, 0xE36B, 0x7E01, 0x898F, 0x7E04, 0x93EA, 0x7E05, 0xE36E, 0x7E09, 0xE375, 0x7E0A, 0xE36F, 0x7E0B, 0xE376, 0x7E12, 0xE372, + 0x7E1B, 0x949B, 0x7E1E, 0x8EC8, 0x7E1F, 0xE374, 0x7E21, 0xE371, 0x7E22, 0xE377, 0x7E23, 0xE370, 0x7E26, 0x8F63, 0x7E2B, 0x9644, + 0x7E2E, 0x8F6B, 0x7E31, 0xE373, 0x7E32, 0xE380, 0x7E35, 0xE37B, 0x7E37, 0xE37E, 0x7E39, 0xE37C, 0x7E3A, 0xE381, 0x7E3B, 0xE37A, + 0x7E3D, 0xE360, 0x7E3E, 0x90D1, 0x7E41, 0x94C9, 0x7E43, 0xE37D, 0x7E46, 0xE378, 0x7E4A, 0x9140, 0x7E4B, 0x8C71, 0x7E4D, 0x8F4A, + 0x7E52, 0xFB8F, 0x7E54, 0x9044, 0x7E55, 0x9155, 0x7E56, 0xE384, 0x7E59, 0xE386, 0x7E5A, 0xE387, 0x7E5D, 0xE383, 0x7E5E, 0xE385, + 0x7E66, 0xE379, 0x7E67, 0xE382, 0x7E69, 0xE38A, 0x7E6A, 0xE389, 0x7E6D, 0x969A, 0x7E70, 0x8C4A, 0x7E79, 0xE388, 0x7E7B, 0xE38C, + 0x7E7C, 0xE38B, 0x7E7D, 0xE38F, 0x7E7F, 0xE391, 0x7E82, 0x8E5B, 0x7E83, 0xE38D, 0x7E88, 0xE392, 0x7E89, 0xE393, 0x7E8A, 0xFA5C, + 0x7E8C, 0xE394, 0x7E8E, 0xE39A, 0x7E8F, 0x935A, 0x7E90, 0xE396, 0x7E92, 0xE395, 0x7E93, 0xE397, 0x7E94, 0xE398, 0x7E96, 0xE399, + 0x7E9B, 0xE39B, 0x7E9C, 0xE39C, 0x7F36, 0x8ACA, 0x7F38, 0xE39D, 0x7F3A, 0xE39E, 0x7F45, 0xE39F, 0x7F47, 0xFB90, 0x7F4C, 0xE3A0, + 0x7F4D, 0xE3A1, 0x7F4E, 0xE3A2, 0x7F50, 0xE3A3, 0x7F51, 0xE3A4, 0x7F54, 0xE3A6, 0x7F55, 0xE3A5, 0x7F58, 0xE3A7, 0x7F5F, 0xE3A8, + 0x7F60, 0xE3A9, 0x7F67, 0xE3AC, 0x7F68, 0xE3AA, 0x7F69, 0xE3AB, 0x7F6A, 0x8DDF, 0x7F6B, 0x8C72, 0x7F6E, 0x9275, 0x7F70, 0x94B1, + 0x7F72, 0x8F90, 0x7F75, 0x946C, 0x7F77, 0x94EB, 0x7F78, 0xE3AD, 0x7F79, 0x9CEB, 0x7F82, 0xE3AE, 0x7F83, 0xE3B0, 0x7F85, 0x9785, + 0x7F86, 0xE3AF, 0x7F87, 0xE3B2, 0x7F88, 0xE3B1, 0x7F8A, 0x9772, 0x7F8C, 0xE3B3, 0x7F8E, 0x94FC, 0x7F94, 0xE3B4, 0x7F9A, 0xE3B7, + 0x7F9D, 0xE3B6, 0x7F9E, 0xE3B5, 0x7FA1, 0xFB91, 0x7FA3, 0xE3B8, 0x7FA4, 0x8C51, 0x7FA8, 0x9141, 0x7FA9, 0x8B60, 0x7FAE, 0xE3BC, + 0x7FAF, 0xE3B9, 0x7FB2, 0xE3BA, 0x7FB6, 0xE3BD, 0x7FB8, 0xE3BE, 0x7FB9, 0xE3BB, 0x7FBD, 0x8948, 0x7FC1, 0x89A5, 0x7FC5, 0xE3C0, + 0x7FC6, 0xE3C1, 0x7FCA, 0xE3C2, 0x7FCC, 0x9782, 0x7FD2, 0x8F4B, 0x7FD4, 0xE3C4, 0x7FD5, 0xE3C3, 0x7FE0, 0x9089, 0x7FE1, 0xE3C5, + 0x7FE6, 0xE3C6, 0x7FE9, 0xE3C7, 0x7FEB, 0x8AE3, 0x7FF0, 0x8ACB, 0x7FF3, 0xE3C8, 0x7FF9, 0xE3C9, 0x7FFB, 0x967C, 0x7FFC, 0x9783, + 0x8000, 0x9773, 0x8001, 0x9856, 0x8003, 0x8D6C, 0x8004, 0xE3CC, 0x8005, 0x8ED2, 0x8006, 0xE3CB, 0x800B, 0xE3CD, 0x800C, 0x8EA7, + 0x8010, 0x91CF, 0x8012, 0xE3CE, 0x8015, 0x8D6B, 0x8017, 0x96D5, 0x8018, 0xE3CF, 0x8019, 0xE3D0, 0x801C, 0xE3D1, 0x8021, 0xE3D2, + 0x8028, 0xE3D3, 0x8033, 0x8EA8, 0x8036, 0x96EB, 0x803B, 0xE3D5, 0x803D, 0x925E, 0x803F, 0xE3D4, 0x8046, 0xE3D7, 0x804A, 0xE3D6, + 0x8052, 0xE3D8, 0x8056, 0x90B9, 0x8058, 0xE3D9, 0x805A, 0xE3DA, 0x805E, 0x95B7, 0x805F, 0xE3DB, 0x8061, 0x918F, 0x8062, 0xE3DC, + 0x8068, 0xE3DD, 0x806F, 0x97FC, 0x8070, 0xE3E0, 0x8072, 0xE3DF, 0x8073, 0xE3DE, 0x8074, 0x92AE, 0x8076, 0xE3E1, 0x8077, 0x9045, + 0x8079, 0xE3E2, 0x807D, 0xE3E3, 0x807E, 0x9857, 0x807F, 0xE3E4, 0x8084, 0xE3E5, 0x8085, 0xE3E7, 0x8086, 0xE3E6, 0x8087, 0x94A3, + 0x8089, 0x93F7, 0x808B, 0x985D, 0x808C, 0x94A7, 0x8093, 0xE3E9, 0x8096, 0x8FD1, 0x8098, 0x9549, 0x809A, 0xE3EA, 0x809B, 0xE3E8, + 0x809D, 0x8ACC, 0x80A1, 0x8CD2, 0x80A2, 0x8E88, 0x80A5, 0x94EC, 0x80A9, 0x8CA8, 0x80AA, 0x9662, 0x80AC, 0xE3ED, 0x80AD, 0xE3EB, + 0x80AF, 0x8D6D, 0x80B1, 0x8D6E, 0x80B2, 0x88E7, 0x80B4, 0x8DE6, 0x80BA, 0x9478, 0x80C3, 0x88DD, 0x80C4, 0xE3F2, 0x80C6, 0x925F, + 0x80CC, 0x9477, 0x80CE, 0x91D9, 0x80D6, 0xE3F4, 0x80D9, 0xE3F0, 0x80DA, 0xE3F3, 0x80DB, 0xE3EE, 0x80DD, 0xE3F1, 0x80DE, 0x9645, + 0x80E1, 0x8CD3, 0x80E4, 0x88FB, 0x80E5, 0xE3EF, 0x80EF, 0xE3F6, 0x80F1, 0xE3F7, 0x80F4, 0x93B7, 0x80F8, 0x8BB9, 0x80FC, 0xE445, + 0x80FD, 0x945C, 0x8102, 0x8E89, 0x8105, 0x8BBA, 0x8106, 0x90C6, 0x8107, 0x9865, 0x8108, 0x96AC, 0x8109, 0xE3F5, 0x810A, 0x90D2, + 0x811A, 0x8B72, 0x811B, 0xE3F8, 0x8123, 0xE3FA, 0x8129, 0xE3F9, 0x812F, 0xE3FB, 0x8131, 0x9245, 0x8133, 0x945D, 0x8139, 0x92AF, + 0x813E, 0xE442, 0x8146, 0xE441, 0x814B, 0xE3FC, 0x814E, 0x9074, 0x8150, 0x9585, 0x8151, 0xE444, 0x8153, 0xE443, 0x8154, 0x8D6F, + 0x8155, 0x9872, 0x815F, 0xE454, 0x8165, 0xE448, 0x8166, 0xE449, 0x816B, 0x8EEE, 0x816E, 0xE447, 0x8170, 0x8D98, 0x8171, 0xE446, + 0x8174, 0xE44A, 0x8178, 0x92B0, 0x8179, 0x95A0, 0x817A, 0x9142, 0x817F, 0x91DA, 0x8180, 0xE44E, 0x8182, 0xE44F, 0x8183, 0xE44B, + 0x8188, 0xE44C, 0x818A, 0xE44D, 0x818F, 0x8D70, 0x8193, 0xE455, 0x8195, 0xE451, 0x819A, 0x9586, 0x819C, 0x968C, 0x819D, 0x9547, + 0x81A0, 0xE450, 0x81A3, 0xE453, 0x81A4, 0xE452, 0x81A8, 0x9663, 0x81A9, 0xE456, 0x81B0, 0xE457, 0x81B3, 0x9156, 0x81B5, 0xE458, + 0x81B8, 0xE45A, 0x81BA, 0xE45E, 0x81BD, 0xE45B, 0x81BE, 0xE459, 0x81BF, 0x945E, 0x81C0, 0xE45C, 0x81C2, 0xE45D, 0x81C6, 0x89B0, + 0x81C8, 0xE464, 0x81C9, 0xE45F, 0x81CD, 0xE460, 0x81D1, 0xE461, 0x81D3, 0x919F, 0x81D8, 0xE463, 0x81D9, 0xE462, 0x81DA, 0xE465, + 0x81DF, 0xE466, 0x81E0, 0xE467, 0x81E3, 0x9062, 0x81E5, 0x89E7, 0x81E7, 0xE468, 0x81E8, 0x97D5, 0x81EA, 0x8EA9, 0x81ED, 0x8F4C, + 0x81F3, 0x8E8A, 0x81F4, 0x9276, 0x81FA, 0xE469, 0x81FB, 0xE46A, 0x81FC, 0x8950, 0x81FE, 0xE46B, 0x8201, 0xE46C, 0x8202, 0xE46D, + 0x8205, 0xE46E, 0x8207, 0xE46F, 0x8208, 0x8BBB, 0x8209, 0x9DA8, 0x820A, 0xE470, 0x820C, 0x90E3, 0x820D, 0xE471, 0x820E, 0x8EC9, + 0x8210, 0xE472, 0x8212, 0x98AE, 0x8216, 0xE473, 0x8217, 0x95DC, 0x8218, 0x8ADA, 0x821B, 0x9143, 0x821C, 0x8F77, 0x821E, 0x9591, + 0x821F, 0x8F4D, 0x8229, 0xE474, 0x822A, 0x8D71, 0x822B, 0xE475, 0x822C, 0x94CA, 0x822E, 0xE484, 0x8233, 0xE477, 0x8235, 0x91C7, + 0x8236, 0x9495, 0x8237, 0x8CBD, 0x8238, 0xE476, 0x8239, 0x9144, 0x8240, 0xE478, 0x8247, 0x92F8, 0x8258, 0xE47A, 0x8259, 0xE479, + 0x825A, 0xE47C, 0x825D, 0xE47B, 0x825F, 0xE47D, 0x8262, 0xE480, 0x8264, 0xE47E, 0x8266, 0x8ACD, 0x8268, 0xE481, 0x826A, 0xE482, + 0x826B, 0xE483, 0x826E, 0x8DAF, 0x826F, 0x97C7, 0x8271, 0xE485, 0x8272, 0x9046, 0x8276, 0x8990, 0x8277, 0xE486, 0x8278, 0xE487, + 0x827E, 0xE488, 0x828B, 0x88F0, 0x828D, 0xE489, 0x8292, 0xE48A, 0x8299, 0x9587, 0x829D, 0x8EC5, 0x829F, 0xE48C, 0x82A5, 0x8A48, + 0x82A6, 0x88B0, 0x82AB, 0xE48B, 0x82AC, 0xE48E, 0x82AD, 0x946D, 0x82AF, 0x9063, 0x82B1, 0x89D4, 0x82B3, 0x9646, 0x82B8, 0x8C7C, + 0x82B9, 0x8BDA, 0x82BB, 0xE48D, 0x82BD, 0x89E8, 0x82C5, 0x8AA1, 0x82D1, 0x8991, 0x82D2, 0xE492, 0x82D3, 0x97E8, 0x82D4, 0x91DB, + 0x82D7, 0x9563, 0x82D9, 0xE49E, 0x82DB, 0x89D5, 0x82DC, 0xE49C, 0x82DE, 0xE49A, 0x82DF, 0xE491, 0x82E1, 0xE48F, 0x82E3, 0xE490, + 0x82E5, 0x8EE1, 0x82E6, 0x8BEA, 0x82E7, 0x9297, 0x82EB, 0x93CF, 0x82F1, 0x8970, 0x82F3, 0xE494, 0x82F4, 0xE493, 0x82F9, 0xE499, + 0x82FA, 0xE495, 0x82FB, 0xE498, 0x8301, 0xFB93, 0x8302, 0x96CE, 0x8303, 0xE497, 0x8304, 0x89D6, 0x8305, 0x8A9D, 0x8306, 0xE49B, + 0x8309, 0xE49D, 0x830E, 0x8C73, 0x8316, 0xE4A1, 0x8317, 0xE4AA, 0x8318, 0xE4AB, 0x831C, 0x88A9, 0x8323, 0xE4B2, 0x8328, 0x88EF, + 0x832B, 0xE4A9, 0x832F, 0xE4A8, 0x8331, 0xE4A3, 0x8332, 0xE4A2, 0x8334, 0xE4A0, 0x8335, 0xE49F, 0x8336, 0x9283, 0x8338, 0x91F9, + 0x8339, 0xE4A5, 0x8340, 0xE4A4, 0x8345, 0xE4A7, 0x8349, 0x9190, 0x834A, 0x8C74, 0x834F, 0x8960, 0x8350, 0xE4A6, 0x8352, 0x8D72, + 0x8358, 0x9191, 0x8362, 0xFB94, 0x8373, 0xE4B8, 0x8375, 0xE4B9, 0x8377, 0x89D7, 0x837B, 0x89AC, 0x837C, 0xE4B6, 0x837F, 0xFB95, + 0x8385, 0xE4AC, 0x8387, 0xE4B4, 0x8389, 0xE4BB, 0x838A, 0xE4B5, 0x838E, 0xE4B3, 0x8393, 0xE496, 0x8396, 0xE4B1, 0x839A, 0xE4AD, + 0x839E, 0x8ACE, 0x839F, 0xE4AF, 0x83A0, 0xE4BA, 0x83A2, 0xE4B0, 0x83A8, 0xE4BC, 0x83AA, 0xE4AE, 0x83AB, 0x949C, 0x83B1, 0x9789, + 0x83B5, 0xE4B7, 0x83BD, 0xE4CD, 0x83C1, 0xE4C5, 0x83C5, 0x909B, 0x83C7, 0xFB96, 0x83CA, 0x8B65, 0x83CC, 0x8BDB, 0x83CE, 0xE4C0, + 0x83D3, 0x89D9, 0x83D6, 0x8FD2, 0x83D8, 0xE4C3, 0x83DC, 0x8DD8, 0x83DF, 0x9370, 0x83E0, 0xE4C8, 0x83E9, 0x95EC, 0x83EB, 0xE4BF, + 0x83EF, 0x89D8, 0x83F0, 0x8CD4, 0x83F1, 0x9548, 0x83F2, 0xE4C9, 0x83F4, 0xE4BD, 0x83F6, 0xFB97, 0x83F7, 0xE4C6, 0x83FB, 0xE4D0, + 0x83FD, 0xE4C1, 0x8403, 0xE4C2, 0x8404, 0x93B8, 0x8407, 0xE4C7, 0x840B, 0xE4C4, 0x840C, 0x9647, 0x840D, 0xE4CA, 0x840E, 0x88DE, + 0x8413, 0xE4BE, 0x8420, 0xE4CC, 0x8422, 0xE4CB, 0x8429, 0x948B, 0x842A, 0xE4D2, 0x842C, 0xE4DD, 0x8431, 0x8A9E, 0x8435, 0xE4E0, + 0x8438, 0xE4CE, 0x843C, 0xE4D3, 0x843D, 0x978E, 0x8446, 0xE4DC, 0x8448, 0xFB98, 0x8449, 0x9774, 0x844E, 0x97A8, 0x8457, 0x9298, + 0x845B, 0x8A8B, 0x8461, 0x9592, 0x8462, 0xE4E2, 0x8463, 0x939F, 0x8466, 0x88AF, 0x8469, 0xE4DB, 0x846B, 0xE4D7, 0x846C, 0x9192, + 0x846D, 0xE4D1, 0x846E, 0xE4D9, 0x846F, 0xE4DE, 0x8471, 0x944B, 0x8475, 0x88A8, 0x8477, 0xE4D6, 0x8479, 0xE4DF, 0x847A, 0x9598, + 0x8482, 0xE4DA, 0x8484, 0xE4D5, 0x848B, 0x8FD3, 0x8490, 0x8F4E, 0x8494, 0x8EAA, 0x8499, 0x96D6, 0x849C, 0x9566, 0x849F, 0xE4E5, + 0x84A1, 0xE4EE, 0x84AD, 0xE4D8, 0x84B2, 0x8A97, 0x84B4, 0xFB99, 0x84B8, 0x8FF6, 0x84B9, 0xE4E3, 0x84BB, 0xE4E8, 0x84BC, 0x9193, + 0x84BF, 0xE4E4, 0x84C1, 0xE4EB, 0x84C4, 0x927E, 0x84C6, 0xE4EC, 0x84C9, 0x9775, 0x84CA, 0xE4E1, 0x84CB, 0x8A57, 0x84CD, 0xE4E7, + 0x84D0, 0xE4EA, 0x84D1, 0x96AA, 0x84D6, 0xE4ED, 0x84D9, 0xE4E6, 0x84DA, 0xE4E9, 0x84DC, 0xFA60, 0x84EC, 0x9648, 0x84EE, 0x9840, + 0x84F4, 0xE4F1, 0x84FC, 0xE4F8, 0x84FF, 0xE4F0, 0x8500, 0x8EC1, 0x8506, 0xE4CF, 0x8511, 0x95CC, 0x8513, 0x96A0, 0x8514, 0xE4F7, + 0x8515, 0xE4F6, 0x8517, 0xE4F2, 0x8518, 0xE4F3, 0x851A, 0x8955, 0x851F, 0xE4F5, 0x8521, 0xE4EF, 0x8526, 0x92D3, 0x852C, 0xE4F4, + 0x852D, 0x88FC, 0x8535, 0x91A0, 0x853D, 0x95C1, 0x8540, 0xE4F9, 0x8541, 0xE540, 0x8543, 0x94D7, 0x8548, 0xE4FC, 0x8549, 0x8FD4, + 0x854A, 0x8EC7, 0x854B, 0xE542, 0x854E, 0x8BBC, 0x8553, 0xFB9A, 0x8555, 0xE543, 0x8557, 0x9599, 0x8558, 0xE4FB, 0x8559, 0xFB9B, + 0x855A, 0xE4D4, 0x8563, 0xE4FA, 0x8568, 0x986E, 0x8569, 0x93A0, 0x856A, 0x9593, 0x856B, 0xFB9C, 0x856D, 0xE54A, 0x8577, 0xE550, + 0x857E, 0xE551, 0x8580, 0xE544, 0x8584, 0x9496, 0x8587, 0xE54E, 0x8588, 0xE546, 0x858A, 0xE548, 0x8590, 0xE552, 0x8591, 0xE547, + 0x8594, 0xE54B, 0x8597, 0x8992, 0x8599, 0x93E3, 0x859B, 0xE54C, 0x859C, 0xE54F, 0x85A4, 0xE545, 0x85A6, 0x9145, 0x85A8, 0xE549, + 0x85A9, 0x8E46, 0x85AA, 0x9064, 0x85AB, 0x8C4F, 0x85AC, 0x96F2, 0x85AE, 0x96F7, 0x85AF, 0x8F92, 0x85B0, 0xFB9E, 0x85B9, 0xE556, + 0x85BA, 0xE554, 0x85C1, 0x986D, 0x85C9, 0xE553, 0x85CD, 0x9795, 0x85CF, 0xE555, 0x85D0, 0xE557, 0x85D5, 0xE558, 0x85DC, 0xE55B, + 0x85DD, 0xE559, 0x85E4, 0x93A1, 0x85E5, 0xE55A, 0x85E9, 0x94CB, 0x85EA, 0xE54D, 0x85F7, 0x8F93, 0x85F9, 0xE55C, 0x85FA, 0xE561, + 0x85FB, 0x9194, 0x85FE, 0xE560, 0x8602, 0xE541, 0x8606, 0xE562, 0x8607, 0x9168, 0x860A, 0xE55D, 0x860B, 0xE55F, 0x8613, 0xE55E, + 0x8616, 0x9F50, 0x8617, 0x9F41, 0x861A, 0xE564, 0x8622, 0xE563, 0x862D, 0x9796, 0x862F, 0xE1BA, 0x8630, 0xE565, 0x863F, 0xE566, + 0x864D, 0xE567, 0x864E, 0x8CD5, 0x8650, 0x8B73, 0x8654, 0xE569, 0x8655, 0x997C, 0x865A, 0x8B95, 0x865C, 0x97B8, 0x865E, 0x8BF1, + 0x865F, 0xE56A, 0x8667, 0xE56B, 0x866B, 0x928E, 0x8671, 0xE56C, 0x8679, 0x93F8, 0x867B, 0x88B8, 0x868A, 0x89E1, 0x868B, 0xE571, + 0x868C, 0xE572, 0x8693, 0xE56D, 0x8695, 0x8E5C, 0x86A3, 0xE56E, 0x86A4, 0x9461, 0x86A9, 0xE56F, 0x86AA, 0xE570, 0x86AB, 0xE57A, + 0x86AF, 0xE574, 0x86B0, 0xE577, 0x86B6, 0xE573, 0x86C4, 0xE575, 0x86C6, 0xE576, 0x86C7, 0x8ED6, 0x86C9, 0xE578, 0x86CB, 0x9260, + 0x86CD, 0x8C75, 0x86CE, 0x8A61, 0x86D4, 0xE57B, 0x86D9, 0x8A5E, 0x86DB, 0xE581, 0x86DE, 0xE57C, 0x86DF, 0xE580, 0x86E4, 0x94B8, + 0x86E9, 0xE57D, 0x86EC, 0xE57E, 0x86ED, 0x9567, 0x86EE, 0x94D8, 0x86EF, 0xE582, 0x86F8, 0x91FB, 0x86F9, 0xE58C, 0x86FB, 0xE588, + 0x86FE, 0x89E9, 0x8700, 0xE586, 0x8702, 0x9649, 0x8703, 0xE587, 0x8706, 0xE584, 0x8708, 0xE585, 0x8709, 0xE58A, 0x870A, 0xE58D, + 0x870D, 0xE58B, 0x8711, 0xE589, 0x8712, 0xE583, 0x8718, 0x9277, 0x871A, 0xE594, 0x871C, 0x96A8, 0x8725, 0xE592, 0x8729, 0xE593, + 0x8734, 0xE58E, 0x8737, 0xE590, 0x873B, 0xE591, 0x873F, 0xE58F, 0x8749, 0x90E4, 0x874B, 0x9858, 0x874C, 0xE598, 0x874E, 0xE599, + 0x8753, 0xE59F, 0x8755, 0x9049, 0x8757, 0xE59B, 0x8759, 0xE59E, 0x875F, 0xE596, 0x8760, 0xE595, 0x8763, 0xE5A0, 0x8766, 0x89DA, + 0x8768, 0xE59C, 0x876A, 0xE5A1, 0x876E, 0xE59D, 0x8774, 0xE59A, 0x8776, 0x92B1, 0x8778, 0xE597, 0x877F, 0x9488, 0x8782, 0xE5A5, + 0x878D, 0x975A, 0x879F, 0xE5A4, 0x87A2, 0xE5A3, 0x87AB, 0xE5AC, 0x87AF, 0xE5A6, 0x87B3, 0xE5AE, 0x87BA, 0x9786, 0x87BB, 0xE5B1, + 0x87BD, 0xE5A8, 0x87C0, 0xE5A9, 0x87C4, 0xE5AD, 0x87C6, 0xE5B0, 0x87C7, 0xE5AF, 0x87CB, 0xE5A7, 0x87D0, 0xE5AA, 0x87D2, 0xE5BB, + 0x87E0, 0xE5B4, 0x87EF, 0xE5B2, 0x87F2, 0xE5B3, 0x87F6, 0xE5B8, 0x87F7, 0xE5B9, 0x87F9, 0x8A49, 0x87FB, 0x8B61, 0x87FE, 0xE5B7, + 0x8805, 0xE5A2, 0x8807, 0xFBA1, 0x880D, 0xE5B6, 0x880E, 0xE5BA, 0x880F, 0xE5B5, 0x8811, 0xE5BC, 0x8815, 0xE5BE, 0x8816, 0xE5BD, + 0x8821, 0xE5C0, 0x8822, 0xE5BF, 0x8823, 0xE579, 0x8827, 0xE5C4, 0x8831, 0xE5C1, 0x8836, 0xE5C2, 0x8839, 0xE5C3, 0x883B, 0xE5C5, + 0x8840, 0x8C8C, 0x8842, 0xE5C7, 0x8844, 0xE5C6, 0x8846, 0x8F4F, 0x884C, 0x8D73, 0x884D, 0x9FA5, 0x8852, 0xE5C8, 0x8853, 0x8F70, + 0x8857, 0x8A58, 0x8859, 0xE5C9, 0x885B, 0x8971, 0x885D, 0x8FD5, 0x885E, 0xE5CA, 0x8861, 0x8D74, 0x8862, 0xE5CB, 0x8863, 0x88DF, + 0x8868, 0x955C, 0x886B, 0xE5CC, 0x8870, 0x908A, 0x8872, 0xE5D3, 0x8875, 0xE5D0, 0x8877, 0x928F, 0x887D, 0xE5D1, 0x887E, 0xE5CE, + 0x887F, 0x8BDC, 0x8881, 0xE5CD, 0x8882, 0xE5D4, 0x8888, 0x8C55, 0x888B, 0x91DC, 0x888D, 0xE5DA, 0x8892, 0xE5D6, 0x8896, 0x91B3, + 0x8897, 0xE5D5, 0x8899, 0xE5D8, 0x889E, 0xE5CF, 0x88A2, 0xE5D9, 0x88A4, 0xE5DB, 0x88AB, 0x94ED, 0x88AE, 0xE5D7, 0x88B0, 0xE5DC, + 0x88B1, 0xE5DE, 0x88B4, 0x8CD1, 0x88B5, 0xE5D2, 0x88B7, 0x88BF, 0x88BF, 0xE5DD, 0x88C1, 0x8DD9, 0x88C2, 0x97F4, 0x88C3, 0xE5DF, + 0x88C4, 0xE5E0, 0x88C5, 0x9195, 0x88CF, 0x97A0, 0x88D4, 0xE5E1, 0x88D5, 0x9754, 0x88D8, 0xE5E2, 0x88D9, 0xE5E3, 0x88DC, 0x95E2, + 0x88DD, 0xE5E4, 0x88DF, 0x8DBE, 0x88E1, 0x97A1, 0x88E8, 0xE5E9, 0x88F2, 0xE5EA, 0x88F3, 0x8FD6, 0x88F4, 0xE5E8, 0x88F5, 0xFBA2, + 0x88F8, 0x9787, 0x88F9, 0xE5E5, 0x88FC, 0xE5E7, 0x88FD, 0x90BB, 0x88FE, 0x909E, 0x8902, 0xE5E6, 0x8904, 0xE5EB, 0x8907, 0x95A1, + 0x890A, 0xE5ED, 0x890C, 0xE5EC, 0x8910, 0x8A8C, 0x8912, 0x964A, 0x8913, 0xE5EE, 0x891C, 0xFA5D, 0x891D, 0xE5FA, 0x891E, 0xE5F0, + 0x8925, 0xE5F1, 0x892A, 0xE5F2, 0x892B, 0xE5F3, 0x8936, 0xE5F7, 0x8938, 0xE5F8, 0x893B, 0xE5F6, 0x8941, 0xE5F4, 0x8943, 0xE5EF, + 0x8944, 0xE5F5, 0x894C, 0xE5F9, 0x894D, 0xE8B5, 0x8956, 0x89A6, 0x895E, 0xE5FC, 0x895F, 0x8BDD, 0x8960, 0xE5FB, 0x8964, 0xE641, + 0x8966, 0xE640, 0x896A, 0xE643, 0x896D, 0xE642, 0x896F, 0xE644, 0x8972, 0x8F50, 0x8974, 0xE645, 0x8977, 0xE646, 0x897E, 0xE647, + 0x897F, 0x90BC, 0x8981, 0x9776, 0x8983, 0xE648, 0x8986, 0x95A2, 0x8987, 0x9465, 0x8988, 0xE649, 0x898A, 0xE64A, 0x898B, 0x8CA9, + 0x898F, 0x8B4B, 0x8993, 0xE64B, 0x8996, 0x8E8B, 0x8997, 0x9460, 0x8998, 0xE64C, 0x899A, 0x8A6F, 0x89A1, 0xE64D, 0x89A6, 0xE64F, + 0x89A7, 0x9797, 0x89A9, 0xE64E, 0x89AA, 0x9065, 0x89AC, 0xE650, 0x89AF, 0xE651, 0x89B2, 0xE652, 0x89B3, 0x8ACF, 0x89BA, 0xE653, + 0x89BD, 0xE654, 0x89BF, 0xE655, 0x89C0, 0xE656, 0x89D2, 0x8A70, 0x89DA, 0xE657, 0x89DC, 0xE658, 0x89DD, 0xE659, 0x89E3, 0x89F0, + 0x89E6, 0x9047, 0x89E7, 0xE65A, 0x89F4, 0xE65B, 0x89F8, 0xE65C, 0x8A00, 0x8CBE, 0x8A02, 0x92F9, 0x8A03, 0xE65D, 0x8A08, 0x8C76, + 0x8A0A, 0x9075, 0x8A0C, 0xE660, 0x8A0E, 0x93A2, 0x8A10, 0xE65F, 0x8A12, 0xFBA3, 0x8A13, 0x8C50, 0x8A16, 0xE65E, 0x8A17, 0x91F5, + 0x8A18, 0x8B4C, 0x8A1B, 0xE661, 0x8A1D, 0xE662, 0x8A1F, 0x8FD7, 0x8A23, 0x8C8D, 0x8A25, 0xE663, 0x8A2A, 0x964B, 0x8A2D, 0x90DD, + 0x8A31, 0x8B96, 0x8A33, 0x96F3, 0x8A34, 0x9169, 0x8A36, 0xE664, 0x8A37, 0xFBA4, 0x8A3A, 0x9066, 0x8A3B, 0x9290, 0x8A3C, 0x8FD8, + 0x8A41, 0xE665, 0x8A46, 0xE668, 0x8A48, 0xE669, 0x8A50, 0x8DBC, 0x8A51, 0x91C0, 0x8A52, 0xE667, 0x8A54, 0x8FD9, 0x8A55, 0x955D, + 0x8A5B, 0xE666, 0x8A5E, 0x8E8C, 0x8A60, 0x8972, 0x8A62, 0xE66D, 0x8A63, 0x8C77, 0x8A66, 0x8E8E, 0x8A69, 0x8E8D, 0x8A6B, 0x986C, + 0x8A6C, 0xE66C, 0x8A6D, 0xE66B, 0x8A6E, 0x9146, 0x8A70, 0x8B6C, 0x8A71, 0x9862, 0x8A72, 0x8A59, 0x8A73, 0x8FDA, 0x8A79, 0xFBA5, + 0x8A7C, 0xE66A, 0x8A82, 0xE66F, 0x8A84, 0xE670, 0x8A85, 0xE66E, 0x8A87, 0x8CD6, 0x8A89, 0x975F, 0x8A8C, 0x8E8F, 0x8A8D, 0x9446, + 0x8A91, 0xE673, 0x8A93, 0x90BE, 0x8A95, 0x9261, 0x8A98, 0x9755, 0x8A9A, 0xE676, 0x8A9E, 0x8CEA, 0x8AA0, 0x90BD, 0x8AA1, 0xE672, + 0x8AA3, 0xE677, 0x8AA4, 0x8CEB, 0x8AA5, 0xE674, 0x8AA6, 0xE675, 0x8AA7, 0xFBA6, 0x8AA8, 0xE671, 0x8AAC, 0x90E0, 0x8AAD, 0x93C7, + 0x8AB0, 0x924E, 0x8AB2, 0x89DB, 0x8AB9, 0x94EE, 0x8ABC, 0x8B62, 0x8ABE, 0xFBA7, 0x8ABF, 0x92B2, 0x8AC2, 0xE67A, 0x8AC4, 0xE678, + 0x8AC7, 0x926B, 0x8ACB, 0x90BF, 0x8ACC, 0x8AD0, 0x8ACD, 0xE679, 0x8ACF, 0x907A, 0x8AD2, 0x97C8, 0x8AD6, 0x985F, 0x8ADA, 0xE67B, + 0x8ADB, 0xE687, 0x8ADC, 0x92B3, 0x8ADE, 0xE686, 0x8ADF, 0xFBA8, 0x8AE0, 0xE683, 0x8AE1, 0xE68B, 0x8AE2, 0xE684, 0x8AE4, 0xE680, + 0x8AE6, 0x92FA, 0x8AE7, 0xE67E, 0x8AEB, 0xE67C, 0x8AED, 0x9740, 0x8AEE, 0x8E90, 0x8AF1, 0xE681, 0x8AF3, 0xE67D, 0x8AF6, 0xFBAA, + 0x8AF7, 0xE685, 0x8AF8, 0x8F94, 0x8AFA, 0x8CBF, 0x8AFE, 0x91F8, 0x8B00, 0x9664, 0x8B01, 0x8979, 0x8B02, 0x88E0, 0x8B04, 0x93A3, + 0x8B07, 0xE689, 0x8B0C, 0xE688, 0x8B0E, 0x93E4, 0x8B10, 0xE68D, 0x8B14, 0xE682, 0x8B16, 0xE68C, 0x8B17, 0xE68E, 0x8B19, 0x8CAA, + 0x8B1A, 0xE68A, 0x8B1B, 0x8D75, 0x8B1D, 0x8ED3, 0x8B20, 0xE68F, 0x8B21, 0x9777, 0x8B26, 0xE692, 0x8B28, 0xE695, 0x8B2B, 0xE693, + 0x8B2C, 0x9554, 0x8B33, 0xE690, 0x8B39, 0x8BDE, 0x8B3E, 0xE694, 0x8B41, 0xE696, 0x8B49, 0xE69A, 0x8B4C, 0xE697, 0x8B4E, 0xE699, + 0x8B4F, 0xE698, 0x8B53, 0xFBAB, 0x8B56, 0xE69B, 0x8B58, 0x8EAF, 0x8B5A, 0xE69D, 0x8B5B, 0xE69C, 0x8B5C, 0x9588, 0x8B5F, 0xE69F, + 0x8B66, 0x8C78, 0x8B6B, 0xE69E, 0x8B6C, 0xE6A0, 0x8B6F, 0xE6A1, 0x8B70, 0x8B63, 0x8B71, 0xE3BF, 0x8B72, 0x8FF7, 0x8B74, 0xE6A2, + 0x8B77, 0x8CEC, 0x8B7D, 0xE6A3, 0x8B7F, 0xFBAC, 0x8B80, 0xE6A4, 0x8B83, 0x8E5D, 0x8B8A, 0x9DCC, 0x8B8C, 0xE6A5, 0x8B8E, 0xE6A6, + 0x8B90, 0x8F51, 0x8B92, 0xE6A7, 0x8B93, 0xE6A8, 0x8B96, 0xE6A9, 0x8B99, 0xE6AA, 0x8B9A, 0xE6AB, 0x8C37, 0x924A, 0x8C3A, 0xE6AC, + 0x8C3F, 0xE6AE, 0x8C41, 0xE6AD, 0x8C46, 0x93A4, 0x8C48, 0xE6AF, 0x8C4A, 0x964C, 0x8C4C, 0xE6B0, 0x8C4E, 0xE6B1, 0x8C50, 0xE6B2, + 0x8C55, 0xE6B3, 0x8C5A, 0x93D8, 0x8C61, 0x8FDB, 0x8C62, 0xE6B4, 0x8C6A, 0x8D8B, 0x8C6B, 0x98AC, 0x8C6C, 0xE6B5, 0x8C78, 0xE6B6, + 0x8C79, 0x955E, 0x8C7A, 0xE6B7, 0x8C7C, 0xE6BF, 0x8C82, 0xE6B8, 0x8C85, 0xE6BA, 0x8C89, 0xE6B9, 0x8C8A, 0xE6BB, 0x8C8C, 0x9665, + 0x8C8D, 0xE6BC, 0x8C8E, 0xE6BD, 0x8C94, 0xE6BE, 0x8C98, 0xE6C0, 0x8C9D, 0x8A4C, 0x8C9E, 0x92E5, 0x8CA0, 0x9589, 0x8CA1, 0x8DE0, + 0x8CA2, 0x8D76, 0x8CA7, 0x956E, 0x8CA8, 0x89DD, 0x8CA9, 0x94CC, 0x8CAA, 0xE6C3, 0x8CAB, 0x8AD1, 0x8CAC, 0x90D3, 0x8CAD, 0xE6C2, + 0x8CAE, 0xE6C7, 0x8CAF, 0x9299, 0x8CB0, 0x96E1, 0x8CB2, 0xE6C5, 0x8CB3, 0xE6C6, 0x8CB4, 0x8B4D, 0x8CB6, 0xE6C8, 0x8CB7, 0x9483, + 0x8CB8, 0x91DD, 0x8CBB, 0x94EF, 0x8CBC, 0x935C, 0x8CBD, 0xE6C4, 0x8CBF, 0x9666, 0x8CC0, 0x89EA, 0x8CC1, 0xE6CA, 0x8CC2, 0x9847, + 0x8CC3, 0x92C0, 0x8CC4, 0x9864, 0x8CC7, 0x8E91, 0x8CC8, 0xE6C9, 0x8CCA, 0x91AF, 0x8CCD, 0xE6DA, 0x8CCE, 0x9147, 0x8CD1, 0x93F6, + 0x8CD3, 0x956F, 0x8CDA, 0xE6CD, 0x8CDB, 0x8E5E, 0x8CDC, 0x8E92, 0x8CDE, 0x8FDC, 0x8CE0, 0x9485, 0x8CE2, 0x8CAB, 0x8CE3, 0xE6CC, + 0x8CE4, 0xE6CB, 0x8CE6, 0x958A, 0x8CEA, 0x8EBF, 0x8CED, 0x9371, 0x8CF0, 0xFBAD, 0x8CF4, 0xFBAE, 0x8CFA, 0xE6CF, 0x8CFB, 0xE6D0, + 0x8CFC, 0x8D77, 0x8CFD, 0xE6CE, 0x8D04, 0xE6D1, 0x8D05, 0xE6D2, 0x8D07, 0xE6D4, 0x8D08, 0x91A1, 0x8D0A, 0xE6D3, 0x8D0B, 0x8AE4, + 0x8D0D, 0xE6D6, 0x8D0F, 0xE6D5, 0x8D10, 0xE6D7, 0x8D12, 0xFBAF, 0x8D13, 0xE6D9, 0x8D14, 0xE6DB, 0x8D16, 0xE6DC, 0x8D64, 0x90D4, + 0x8D66, 0x8ECD, 0x8D67, 0xE6DD, 0x8D6B, 0x8A71, 0x8D6D, 0xE6DE, 0x8D70, 0x9196, 0x8D71, 0xE6DF, 0x8D73, 0xE6E0, 0x8D74, 0x958B, + 0x8D76, 0xFBB0, 0x8D77, 0x8B4E, 0x8D81, 0xE6E1, 0x8D85, 0x92B4, 0x8D8A, 0x897A, 0x8D99, 0xE6E2, 0x8DA3, 0x8EEF, 0x8DA8, 0x9096, + 0x8DB3, 0x91AB, 0x8DBA, 0xE6E5, 0x8DBE, 0xE6E4, 0x8DC2, 0xE6E3, 0x8DCB, 0xE6EB, 0x8DCC, 0xE6E9, 0x8DCF, 0xE6E6, 0x8DD6, 0xE6E8, + 0x8DDA, 0xE6E7, 0x8DDB, 0xE6EA, 0x8DDD, 0x8B97, 0x8DDF, 0xE6EE, 0x8DE1, 0x90D5, 0x8DE3, 0xE6EF, 0x8DE8, 0x8CD7, 0x8DEA, 0xE6EC, + 0x8DEB, 0xE6ED, 0x8DEF, 0x9848, 0x8DF3, 0x92B5, 0x8DF5, 0x9148, 0x8DFC, 0xE6F0, 0x8DFF, 0xE6F3, 0x8E08, 0xE6F1, 0x8E09, 0xE6F2, + 0x8E0A, 0x9778, 0x8E0F, 0x93A5, 0x8E10, 0xE6F6, 0x8E1D, 0xE6F4, 0x8E1E, 0xE6F5, 0x8E1F, 0xE6F7, 0x8E2A, 0xE748, 0x8E30, 0xE6FA, + 0x8E34, 0xE6FB, 0x8E35, 0xE6F9, 0x8E42, 0xE6F8, 0x8E44, 0x92FB, 0x8E47, 0xE740, 0x8E48, 0xE744, 0x8E49, 0xE741, 0x8E4A, 0xE6FC, + 0x8E4C, 0xE742, 0x8E50, 0xE743, 0x8E55, 0xE74A, 0x8E59, 0xE745, 0x8E5F, 0x90D6, 0x8E60, 0xE747, 0x8E63, 0xE749, 0x8E64, 0xE746, + 0x8E72, 0xE74C, 0x8E74, 0x8F52, 0x8E76, 0xE74B, 0x8E7C, 0xE74D, 0x8E81, 0xE74E, 0x8E84, 0xE751, 0x8E85, 0xE750, 0x8E87, 0xE74F, + 0x8E8A, 0xE753, 0x8E8B, 0xE752, 0x8E8D, 0x96F4, 0x8E91, 0xE755, 0x8E93, 0xE754, 0x8E94, 0xE756, 0x8E99, 0xE757, 0x8EA1, 0xE759, + 0x8EAA, 0xE758, 0x8EAB, 0x9067, 0x8EAC, 0xE75A, 0x8EAF, 0x8BEB, 0x8EB0, 0xE75B, 0x8EB1, 0xE75D, 0x8EBE, 0xE75E, 0x8EC5, 0xE75F, + 0x8EC6, 0xE75C, 0x8EC8, 0xE760, 0x8ECA, 0x8ED4, 0x8ECB, 0xE761, 0x8ECC, 0x8B4F, 0x8ECD, 0x8C52, 0x8ECF, 0xFBB2, 0x8ED2, 0x8CAC, + 0x8EDB, 0xE762, 0x8EDF, 0x93EE, 0x8EE2, 0x935D, 0x8EE3, 0xE763, 0x8EEB, 0xE766, 0x8EF8, 0x8EB2, 0x8EFB, 0xE765, 0x8EFC, 0xE764, + 0x8EFD, 0x8C79, 0x8EFE, 0xE767, 0x8F03, 0x8A72, 0x8F05, 0xE769, 0x8F09, 0x8DDA, 0x8F0A, 0xE768, 0x8F0C, 0xE771, 0x8F12, 0xE76B, + 0x8F13, 0xE76D, 0x8F14, 0x95E3, 0x8F15, 0xE76A, 0x8F19, 0xE76C, 0x8F1B, 0xE770, 0x8F1C, 0xE76E, 0x8F1D, 0x8B50, 0x8F1F, 0xE76F, + 0x8F26, 0xE772, 0x8F29, 0x9479, 0x8F2A, 0x97D6, 0x8F2F, 0x8F53, 0x8F33, 0xE773, 0x8F38, 0x9741, 0x8F39, 0xE775, 0x8F3B, 0xE774, + 0x8F3E, 0xE778, 0x8F3F, 0x9760, 0x8F42, 0xE777, 0x8F44, 0x8A8D, 0x8F45, 0xE776, 0x8F46, 0xE77B, 0x8F49, 0xE77A, 0x8F4C, 0xE779, + 0x8F4D, 0x9351, 0x8F4E, 0xE77C, 0x8F57, 0xE77D, 0x8F5C, 0xE77E, 0x8F5F, 0x8D8C, 0x8F61, 0x8C44, 0x8F62, 0xE780, 0x8F63, 0xE781, + 0x8F64, 0xE782, 0x8F9B, 0x9068, 0x8F9C, 0xE783, 0x8F9E, 0x8EAB, 0x8F9F, 0xE784, 0x8FA3, 0xE785, 0x8FA7, 0x999F, 0x8FA8, 0x999E, + 0x8FAD, 0xE786, 0x8FAE, 0xE390, 0x8FAF, 0xE787, 0x8FB0, 0x9243, 0x8FB1, 0x904A, 0x8FB2, 0x945F, 0x8FB7, 0xE788, 0x8FBA, 0x95D3, + 0x8FBB, 0x92D2, 0x8FBC, 0x8D9E, 0x8FBF, 0x9248, 0x8FC2, 0x8949, 0x8FC4, 0x9698, 0x8FC5, 0x9076, 0x8FCE, 0x8C7D, 0x8FD1, 0x8BDF, + 0x8FD4, 0x95D4, 0x8FDA, 0xE789, 0x8FE2, 0xE78B, 0x8FE5, 0xE78A, 0x8FE6, 0x89DE, 0x8FE9, 0x93F4, 0x8FEA, 0xE78C, 0x8FEB, 0x9497, + 0x8FED, 0x9352, 0x8FEF, 0xE78D, 0x8FF0, 0x8F71, 0x8FF4, 0xE78F, 0x8FF7, 0x96C0, 0x8FF8, 0xE79E, 0x8FF9, 0xE791, 0x8FFA, 0xE792, + 0x8FFD, 0x92C7, 0x9000, 0x91DE, 0x9001, 0x9197, 0x9003, 0x93A6, 0x9005, 0xE790, 0x9006, 0x8B74, 0x900B, 0xE799, 0x900D, 0xE796, + 0x900E, 0xE7A3, 0x900F, 0x93A7, 0x9010, 0x9280, 0x9011, 0xE793, 0x9013, 0x92FC, 0x9014, 0x9372, 0x9015, 0xE794, 0x9016, 0xE798, + 0x9017, 0x9080, 0x9019, 0x9487, 0x901A, 0x92CA, 0x901D, 0x90C0, 0x901E, 0xE797, 0x901F, 0x91AC, 0x9020, 0x91A2, 0x9021, 0xE795, + 0x9022, 0x88A7, 0x9023, 0x9841, 0x9027, 0xE79A, 0x902E, 0x91DF, 0x9031, 0x8F54, 0x9032, 0x9069, 0x9035, 0xE79C, 0x9036, 0xE79B, + 0x9038, 0x88ED, 0x9039, 0xE79D, 0x903C, 0x954E, 0x903E, 0xE7A5, 0x9041, 0x93D9, 0x9042, 0x908B, 0x9045, 0x9278, 0x9047, 0x8BF6, + 0x9049, 0xE7A4, 0x904A, 0x9756, 0x904B, 0x895E, 0x904D, 0x95D5, 0x904E, 0x89DF, 0x904F, 0xE79F, 0x9050, 0xE7A0, 0x9051, 0xE7A1, + 0x9052, 0xE7A2, 0x9053, 0x93B9, 0x9054, 0x9242, 0x9055, 0x88E1, 0x9056, 0xE7A6, 0x9058, 0xE7A7, 0x9059, 0xEAA1, 0x905C, 0x91BB, + 0x905E, 0xE7A8, 0x9060, 0x8993, 0x9061, 0x916B, 0x9063, 0x8CAD, 0x9065, 0x9779, 0x9067, 0xFBB5, 0x9068, 0xE7A9, 0x9069, 0x934B, + 0x906D, 0x9198, 0x906E, 0x8ED5, 0x906F, 0xE7AA, 0x9072, 0xE7AD, 0x9075, 0x8F85, 0x9076, 0xE7AB, 0x9077, 0x914A, 0x9078, 0x9149, + 0x907A, 0x88E2, 0x907C, 0x97C9, 0x907D, 0xE7AF, 0x907F, 0x94F0, 0x9080, 0xE7B1, 0x9081, 0xE7B0, 0x9082, 0xE7AE, 0x9083, 0xE284, + 0x9084, 0x8AD2, 0x9087, 0xE78E, 0x9089, 0xE7B3, 0x908A, 0xE7B2, 0x908F, 0xE7B4, 0x9091, 0x9757, 0x90A3, 0x93DF, 0x90A6, 0x964D, + 0x90A8, 0xE7B5, 0x90AA, 0x8ED7, 0x90AF, 0xE7B6, 0x90B1, 0xE7B7, 0x90B5, 0xE7B8, 0x90B8, 0x9340, 0x90C1, 0x88E8, 0x90CA, 0x8D78, + 0x90CE, 0x9859, 0x90DB, 0xE7BC, 0x90DE, 0xFBB6, 0x90E1, 0x8C53, 0x90E2, 0xE7B9, 0x90E4, 0xE7BA, 0x90E8, 0x9594, 0x90ED, 0x8A73, + 0x90F5, 0x9758, 0x90F7, 0x8BBD, 0x90FD, 0x9373, 0x9102, 0xE7BD, 0x9112, 0xE7BE, 0x9115, 0xFBB8, 0x9119, 0xE7BF, 0x9127, 0xFBB9, + 0x912D, 0x9341, 0x9130, 0xE7C1, 0x9132, 0xE7C0, 0x9149, 0x93D1, 0x914A, 0xE7C2, 0x914B, 0x8F55, 0x914C, 0x8EDE, 0x914D, 0x947A, + 0x914E, 0x9291, 0x9152, 0x8EF0, 0x9154, 0x908C, 0x9156, 0xE7C3, 0x9158, 0xE7C4, 0x9162, 0x907C, 0x9163, 0xE7C5, 0x9165, 0xE7C6, + 0x9169, 0xE7C7, 0x916A, 0x978F, 0x916C, 0x8F56, 0x9172, 0xE7C9, 0x9173, 0xE7C8, 0x9175, 0x8D79, 0x9177, 0x8D93, 0x9178, 0x8E5F, + 0x9182, 0xE7CC, 0x9187, 0x8F86, 0x9189, 0xE7CB, 0x918B, 0xE7CA, 0x918D, 0x91E7, 0x9190, 0x8CED, 0x9192, 0x90C1, 0x9197, 0x94AE, + 0x919C, 0x8F58, 0x91A2, 0xE7CD, 0x91A4, 0x8FDD, 0x91AA, 0xE7D0, 0x91AB, 0xE7CE, 0x91AF, 0xE7CF, 0x91B4, 0xE7D2, 0x91B5, 0xE7D1, + 0x91B8, 0x8FF8, 0x91BA, 0xE7D3, 0x91C0, 0xE7D4, 0x91C1, 0xE7D5, 0x91C6, 0x94CE, 0x91C7, 0x8DD1, 0x91C8, 0x8EDF, 0x91C9, 0xE7D6, + 0x91CB, 0xE7D7, 0x91CC, 0x97A2, 0x91CD, 0x8F64, 0x91CE, 0x96EC, 0x91CF, 0x97CA, 0x91D0, 0xE7D8, 0x91D1, 0x8BE0, 0x91D6, 0xE7D9, + 0x91D7, 0xFBBB, 0x91D8, 0x9342, 0x91DA, 0xFBBA, 0x91DB, 0xE7DC, 0x91DC, 0x8A98, 0x91DD, 0x906A, 0x91DE, 0xFBBC, 0x91DF, 0xE7DA, + 0x91E1, 0xE7DB, 0x91E3, 0x92DE, 0x91E4, 0xFBBF, 0x91E5, 0xFBC0, 0x91E6, 0x9674, 0x91E7, 0x8BFA, 0x91ED, 0xFBBD, 0x91EE, 0xFBBE, + 0x91F5, 0xE7DE, 0x91F6, 0xE7DF, 0x91FC, 0xE7DD, 0x91FF, 0xE7E1, 0x9206, 0xFBC1, 0x920A, 0xFBC3, 0x920D, 0x93DD, 0x920E, 0x8A62, + 0x9210, 0xFBC2, 0x9211, 0xE7E5, 0x9214, 0xE7E2, 0x9215, 0xE7E4, 0x921E, 0xE7E0, 0x9229, 0xE86E, 0x922C, 0xE7E3, 0x9234, 0x97E9, + 0x9237, 0x8CD8, 0x9239, 0xFBCA, 0x923A, 0xFBC4, 0x923C, 0xFBC6, 0x923F, 0xE7ED, 0x9240, 0xFBC5, 0x9244, 0x9353, 0x9245, 0xE7E8, + 0x9248, 0xE7EB, 0x9249, 0xE7E9, 0x924B, 0xE7EE, 0x924E, 0xFBC7, 0x9250, 0xE7EF, 0x9251, 0xFBC9, 0x9257, 0xE7E7, 0x9259, 0xFBC8, + 0x925A, 0xE7F4, 0x925B, 0x8994, 0x925E, 0xE7E6, 0x9262, 0x94AB, 0x9264, 0xE7EA, 0x9266, 0x8FDE, 0x9267, 0xFBCB, 0x9271, 0x8D7A, + 0x9277, 0xFBCD, 0x9278, 0xFBCE, 0x927E, 0x9667, 0x9280, 0x8BE2, 0x9283, 0x8F65, 0x9285, 0x93BA, 0x9288, 0xFA5F, 0x9291, 0x914C, + 0x9293, 0xE7F2, 0x9295, 0xE7EC, 0x9296, 0xE7F1, 0x9298, 0x96C1, 0x929A, 0x92B6, 0x929B, 0xE7F3, 0x929C, 0xE7F0, 0x92A7, 0xFBCC, + 0x92AD, 0x914B, 0x92B7, 0xE7F7, 0x92B9, 0xE7F6, 0x92CF, 0xE7F5, 0x92D0, 0xFBD2, 0x92D2, 0x964E, 0x92D3, 0xFBD6, 0x92D5, 0xFBD4, + 0x92D7, 0xFBD0, 0x92D9, 0xFBD1, 0x92E0, 0xFBD5, 0x92E4, 0x8F9B, 0x92E7, 0xFBCF, 0x92E9, 0xE7F8, 0x92EA, 0x95DD, 0x92ED, 0x8973, + 0x92F2, 0x9565, 0x92F3, 0x9292, 0x92F8, 0x8B98, 0x92F9, 0xFA65, 0x92FA, 0xE7FA, 0x92FB, 0xFBD9, 0x92FC, 0x8D7C, 0x92FF, 0xFBDC, + 0x9302, 0xFBDE, 0x9306, 0x8E4B, 0x930F, 0xE7F9, 0x9310, 0x908D, 0x9318, 0x908E, 0x9319, 0xE840, 0x931A, 0xE842, 0x931D, 0xFBDD, + 0x931E, 0xFBDB, 0x9320, 0x8FF9, 0x9321, 0xFBD8, 0x9322, 0xE841, 0x9323, 0xE843, 0x9325, 0xFBD7, 0x9326, 0x8BD1, 0x9328, 0x9564, + 0x932B, 0x8EE0, 0x932C, 0x9842, 0x932E, 0xE7FC, 0x932F, 0x8DF6, 0x9332, 0x985E, 0x9335, 0xE845, 0x933A, 0xE844, 0x933B, 0xE846, + 0x9344, 0xE7FB, 0x9348, 0xFA5E, 0x934B, 0x93E7, 0x934D, 0x9374, 0x9354, 0x92D5, 0x9356, 0xE84B, 0x9357, 0xFBE0, 0x935B, 0x9262, + 0x935C, 0xE847, 0x9360, 0xE848, 0x936C, 0x8C4C, 0x936E, 0xE84A, 0x9370, 0xFBDF, 0x9375, 0x8CAE, 0x937C, 0xE849, 0x937E, 0x8FDF, + 0x938C, 0x8A99, 0x9394, 0xE84F, 0x9396, 0x8DBD, 0x9397, 0x9199, 0x939A, 0x92C8, 0x93A4, 0xFBE1, 0x93A7, 0x8A5A, 0x93AC, 0xE84D, + 0x93AD, 0xE84E, 0x93AE, 0x92C1, 0x93B0, 0xE84C, 0x93B9, 0xE850, 0x93C3, 0xE856, 0x93C6, 0xFBE2, 0x93C8, 0xE859, 0x93D0, 0xE858, + 0x93D1, 0x934C, 0x93D6, 0xE851, 0x93D7, 0xE852, 0x93D8, 0xE855, 0x93DD, 0xE857, 0x93DE, 0xFBE3, 0x93E1, 0x8BBE, 0x93E4, 0xE85A, + 0x93E5, 0xE854, 0x93E8, 0xE853, 0x93F8, 0xFBE4, 0x9403, 0xE85E, 0x9407, 0xE85F, 0x9410, 0xE860, 0x9413, 0xE85D, 0x9414, 0xE85C, + 0x9418, 0x8FE0, 0x9419, 0x93A8, 0x941A, 0xE85B, 0x9421, 0xE864, 0x942B, 0xE862, 0x9431, 0xFBE5, 0x9435, 0xE863, 0x9436, 0xE861, + 0x9438, 0x91F6, 0x943A, 0xE865, 0x9441, 0xE866, 0x9444, 0xE868, 0x9445, 0xFBE6, 0x9448, 0xFBE7, 0x9451, 0x8AD3, 0x9452, 0xE867, + 0x9453, 0x96F8, 0x945A, 0xE873, 0x945B, 0xE869, 0x945E, 0xE86C, 0x9460, 0xE86A, 0x9462, 0xE86B, 0x946A, 0xE86D, 0x9470, 0xE86F, + 0x9475, 0xE870, 0x9477, 0xE871, 0x947C, 0xE874, 0x947D, 0xE872, 0x947E, 0xE875, 0x947F, 0xE877, 0x9481, 0xE876, 0x9577, 0x92B7, + 0x9580, 0x96E5, 0x9582, 0xE878, 0x9583, 0x914D, 0x9587, 0xE879, 0x9589, 0x95C2, 0x958A, 0xE87A, 0x958B, 0x8A4A, 0x958F, 0x895B, + 0x9591, 0x8AD5, 0x9592, 0xFBE8, 0x9593, 0x8AD4, 0x9594, 0xE87B, 0x9596, 0xE87C, 0x9598, 0xE87D, 0x9599, 0xE87E, 0x95A0, 0xE880, + 0x95A2, 0x8AD6, 0x95A3, 0x8A74, 0x95A4, 0x8D7D, 0x95A5, 0x94B4, 0x95A7, 0xE882, 0x95A8, 0xE881, 0x95AD, 0xE883, 0x95B2, 0x897B, + 0x95B9, 0xE886, 0x95BB, 0xE885, 0x95BC, 0xE884, 0x95BE, 0xE887, 0x95C3, 0xE88A, 0x95C7, 0x88C5, 0x95CA, 0xE888, 0x95CC, 0xE88C, + 0x95CD, 0xE88B, 0x95D4, 0xE88E, 0x95D5, 0xE88D, 0x95D6, 0xE88F, 0x95D8, 0x93AC, 0x95DC, 0xE890, 0x95E1, 0xE891, 0x95E2, 0xE893, + 0x95E5, 0xE892, 0x961C, 0x958C, 0x9621, 0xE894, 0x9628, 0xE895, 0x962A, 0x8DE3, 0x962E, 0xE896, 0x962F, 0xE897, 0x9632, 0x9668, + 0x963B, 0x916A, 0x963F, 0x88A2, 0x9640, 0x91C9, 0x9642, 0xE898, 0x9644, 0x958D, 0x964B, 0xE89B, 0x964C, 0xE899, 0x964D, 0x8D7E, + 0x964F, 0xE89A, 0x9650, 0x8CC0, 0x965B, 0x95C3, 0x965C, 0xE89D, 0x965D, 0xE89F, 0x965E, 0xE89E, 0x965F, 0xE8A0, 0x9662, 0x8940, + 0x9663, 0x9077, 0x9664, 0x8F9C, 0x9665, 0x8AD7, 0x9666, 0xE8A1, 0x966A, 0x9486, 0x966C, 0xE8A3, 0x9670, 0x8941, 0x9672, 0xE8A2, + 0x9673, 0x92C2, 0x9675, 0x97CB, 0x9676, 0x93A9, 0x9677, 0xE89C, 0x9678, 0x97A4, 0x967A, 0x8CAF, 0x967D, 0x977A, 0x9685, 0x8BF7, + 0x9686, 0x97B2, 0x9688, 0x8C47, 0x968A, 0x91E0, 0x968B, 0xE440, 0x968D, 0xE8A4, 0x968E, 0x8A4B, 0x968F, 0x908F, 0x9694, 0x8A75, + 0x9695, 0xE8A6, 0x9697, 0xE8A7, 0x9698, 0xE8A5, 0x9699, 0x8C84, 0x969B, 0x8DDB, 0x969C, 0x8FE1, 0x969D, 0xFBEB, 0x96A0, 0x8942, + 0x96A3, 0x97D7, 0x96A7, 0xE8A9, 0x96A8, 0xE7AC, 0x96AA, 0xE8A8, 0x96AF, 0xFBEC, 0x96B0, 0xE8AC, 0x96B1, 0xE8AA, 0x96B2, 0xE8AB, + 0x96B4, 0xE8AD, 0x96B6, 0xE8AE, 0x96B7, 0x97EA, 0x96B8, 0xE8AF, 0x96B9, 0xE8B0, 0x96BB, 0x90C7, 0x96BC, 0x94B9, 0x96C0, 0x909D, + 0x96C1, 0x8AE5, 0x96C4, 0x9759, 0x96C5, 0x89EB, 0x96C6, 0x8F57, 0x96C7, 0x8CD9, 0x96C9, 0xE8B3, 0x96CB, 0xE8B2, 0x96CC, 0x8E93, + 0x96CD, 0xE8B4, 0x96CE, 0xE8B1, 0x96D1, 0x8E47, 0x96D5, 0xE8B8, 0x96D6, 0xE5AB, 0x96D9, 0x99D4, 0x96DB, 0x9097, 0x96DC, 0xE8B6, + 0x96E2, 0x97A3, 0x96E3, 0x93EF, 0x96E8, 0x894A, 0x96EA, 0x90E1, 0x96EB, 0x8EB4, 0x96F0, 0x95B5, 0x96F2, 0x895F, 0x96F6, 0x97EB, + 0x96F7, 0x978B, 0x96F9, 0xE8B9, 0x96FB, 0x9364, 0x9700, 0x8EF9, 0x9704, 0xE8BA, 0x9706, 0xE8BB, 0x9707, 0x906B, 0x9708, 0xE8BC, + 0x970A, 0x97EC, 0x970D, 0xE8B7, 0x970E, 0xE8BE, 0x970F, 0xE8C0, 0x9711, 0xE8BF, 0x9713, 0xE8BD, 0x9716, 0xE8C1, 0x9719, 0xE8C2, + 0x971C, 0x919A, 0x971E, 0x89E0, 0x9724, 0xE8C3, 0x9727, 0x96B6, 0x972A, 0xE8C4, 0x9730, 0xE8C5, 0x9732, 0x9849, 0x9733, 0xFBED, + 0x9738, 0x9E50, 0x9739, 0xE8C6, 0x973B, 0xFBEE, 0x973D, 0xE8C7, 0x973E, 0xE8C8, 0x9742, 0xE8CC, 0x9743, 0xFBEF, 0x9744, 0xE8C9, + 0x9746, 0xE8CA, 0x9748, 0xE8CB, 0x9749, 0xE8CD, 0x974D, 0xFBF0, 0x974F, 0xFBF1, 0x9751, 0xFBF2, 0x9752, 0x90C2, 0x9755, 0xFBF3, + 0x9756, 0x96F5, 0x9759, 0x90C3, 0x975C, 0xE8CE, 0x975E, 0x94F1, 0x9760, 0xE8CF, 0x9761, 0xEA72, 0x9762, 0x96CA, 0x9764, 0xE8D0, + 0x9766, 0xE8D1, 0x9768, 0xE8D2, 0x9769, 0x8A76, 0x976B, 0xE8D4, 0x976D, 0x9078, 0x9771, 0xE8D5, 0x9774, 0x8C43, 0x9779, 0xE8D6, + 0x977A, 0xE8DA, 0x977C, 0xE8D8, 0x9781, 0xE8D9, 0x9784, 0x8A93, 0x9785, 0xE8D7, 0x9786, 0xE8DB, 0x978B, 0xE8DC, 0x978D, 0x88C6, + 0x978F, 0xE8DD, 0x9790, 0xE8DE, 0x9798, 0x8FE2, 0x979C, 0xE8DF, 0x97A0, 0x8B66, 0x97A3, 0xE8E2, 0x97A6, 0xE8E1, 0x97A8, 0xE8E0, + 0x97AB, 0xE691, 0x97AD, 0x95DA, 0x97B3, 0xE8E3, 0x97B4, 0xE8E4, 0x97C3, 0xE8E5, 0x97C6, 0xE8E6, 0x97C8, 0xE8E7, 0x97CB, 0xE8E8, + 0x97D3, 0x8AD8, 0x97DC, 0xE8E9, 0x97ED, 0xE8EA, 0x97EE, 0x9442, 0x97F2, 0xE8EC, 0x97F3, 0x89B9, 0x97F5, 0xE8EF, 0x97F6, 0xE8EE, + 0x97FB, 0x8943, 0x97FF, 0x8BBF, 0x9801, 0x95C5, 0x9802, 0x92B8, 0x9803, 0x8DA0, 0x9805, 0x8D80, 0x9806, 0x8F87, 0x9808, 0x907B, + 0x980C, 0xE8F1, 0x980F, 0xE8F0, 0x9810, 0x9761, 0x9811, 0x8AE6, 0x9812, 0x94D0, 0x9813, 0x93DA, 0x9817, 0x909C, 0x9818, 0x97CC, + 0x981A, 0x8C7A, 0x9821, 0xE8F4, 0x9824, 0xE8F3, 0x982C, 0x966A, 0x982D, 0x93AA, 0x9834, 0x896F, 0x9837, 0xE8F5, 0x9838, 0xE8F2, + 0x983B, 0x9570, 0x983C, 0x978A, 0x983D, 0xE8F6, 0x9846, 0xE8F7, 0x984B, 0xE8F9, 0x984C, 0x91E8, 0x984D, 0x8A7A, 0x984E, 0x8A7B, + 0x984F, 0xE8F8, 0x9854, 0x8AE7, 0x9855, 0x8CB0, 0x9857, 0xFBF4, 0x9858, 0x8AE8, 0x985B, 0x935E, 0x985E, 0x97DE, 0x9865, 0xFBF5, + 0x9867, 0x8CDA, 0x986B, 0xE8FA, 0x986F, 0xE8FB, 0x9870, 0xE8FC, 0x9871, 0xE940, 0x9873, 0xE942, 0x9874, 0xE941, 0x98A8, 0x9597, + 0x98AA, 0xE943, 0x98AF, 0xE944, 0x98B1, 0xE945, 0x98B6, 0xE946, 0x98C3, 0xE948, 0x98C4, 0xE947, 0x98C6, 0xE949, 0x98DB, 0x94F2, + 0x98DC, 0xE3CA, 0x98DF, 0x9048, 0x98E2, 0x8B51, 0x98E9, 0xE94A, 0x98EB, 0xE94B, 0x98ED, 0x99AA, 0x98EE, 0x9F5A, 0x98EF, 0x94D1, + 0x98F2, 0x88F9, 0x98F4, 0x88B9, 0x98FC, 0x8E94, 0x98FD, 0x964F, 0x98FE, 0x8FFC, 0x9903, 0xE94C, 0x9905, 0x96DD, 0x9909, 0xE94D, + 0x990A, 0x977B, 0x990C, 0x8961, 0x9910, 0x8E60, 0x9912, 0xE94E, 0x9913, 0x89EC, 0x9914, 0xE94F, 0x9918, 0xE950, 0x991D, 0xE952, + 0x991E, 0xE953, 0x9920, 0xE955, 0x9921, 0xE951, 0x9924, 0xE954, 0x9927, 0xFBF8, 0x9928, 0x8AD9, 0x992C, 0xE956, 0x992E, 0xE957, + 0x993D, 0xE958, 0x993E, 0xE959, 0x9942, 0xE95A, 0x9945, 0xE95C, 0x9949, 0xE95B, 0x994B, 0xE95E, 0x994C, 0xE961, 0x9950, 0xE95D, + 0x9951, 0xE95F, 0x9952, 0xE960, 0x9955, 0xE962, 0x9957, 0x8BC0, 0x9996, 0x8EF1, 0x9997, 0xE963, 0x9998, 0xE964, 0x9999, 0x8D81, + 0x999E, 0xFBFA, 0x99A5, 0xE965, 0x99A8, 0x8A5D, 0x99AC, 0x946E, 0x99AD, 0xE966, 0x99AE, 0xE967, 0x99B3, 0x9279, 0x99B4, 0x93E9, + 0x99BC, 0xE968, 0x99C1, 0x949D, 0x99C4, 0x91CA, 0x99C5, 0x8977, 0x99C6, 0x8BEC, 0x99C8, 0x8BED, 0x99D0, 0x9293, 0x99D1, 0xE96D, + 0x99D2, 0x8BEE, 0x99D5, 0x89ED, 0x99D8, 0xE96C, 0x99DB, 0xE96A, 0x99DD, 0xE96B, 0x99DF, 0xE969, 0x99E2, 0xE977, 0x99ED, 0xE96E, + 0x99EE, 0xE96F, 0x99F1, 0xE970, 0x99F2, 0xE971, 0x99F8, 0xE973, 0x99FB, 0xE972, 0x99FF, 0x8F78, 0x9A01, 0xE974, 0x9A05, 0xE976, + 0x9A0E, 0x8B52, 0x9A0F, 0xE975, 0x9A12, 0x919B, 0x9A13, 0x8CB1, 0x9A19, 0xE978, 0x9A28, 0x91CB, 0x9A2B, 0xE979, 0x9A30, 0x93AB, + 0x9A37, 0xE97A, 0x9A3E, 0xE980, 0x9A40, 0xE97D, 0x9A42, 0xE97C, 0x9A43, 0xE97E, 0x9A45, 0xE97B, 0x9A4D, 0xE982, 0x9A4E, 0xFBFB, + 0x9A55, 0xE981, 0x9A57, 0xE984, 0x9A5A, 0x8BC1, 0x9A5B, 0xE983, 0x9A5F, 0xE985, 0x9A62, 0xE986, 0x9A64, 0xE988, 0x9A65, 0xE987, + 0x9A69, 0xE989, 0x9A6A, 0xE98B, 0x9A6B, 0xE98A, 0x9AA8, 0x8D9C, 0x9AAD, 0xE98C, 0x9AB0, 0xE98D, 0x9AB8, 0x8A5B, 0x9ABC, 0xE98E, + 0x9AC0, 0xE98F, 0x9AC4, 0x9091, 0x9ACF, 0xE990, 0x9AD1, 0xE991, 0x9AD3, 0xE992, 0x9AD4, 0xE993, 0x9AD8, 0x8D82, 0x9AD9, 0xFBFC, + 0x9ADC, 0xFC40, 0x9ADE, 0xE994, 0x9ADF, 0xE995, 0x9AE2, 0xE996, 0x9AE3, 0xE997, 0x9AE6, 0xE998, 0x9AEA, 0x94AF, 0x9AEB, 0xE99A, + 0x9AED, 0x9545, 0x9AEE, 0xE99B, 0x9AEF, 0xE999, 0x9AF1, 0xE99D, 0x9AF4, 0xE99C, 0x9AF7, 0xE99E, 0x9AFB, 0xE99F, 0x9B06, 0xE9A0, + 0x9B18, 0xE9A1, 0x9B1A, 0xE9A2, 0x9B1F, 0xE9A3, 0x9B22, 0xE9A4, 0x9B23, 0xE9A5, 0x9B25, 0xE9A6, 0x9B27, 0xE9A7, 0x9B28, 0xE9A8, + 0x9B29, 0xE9A9, 0x9B2A, 0xE9AA, 0x9B2E, 0xE9AB, 0x9B2F, 0xE9AC, 0x9B31, 0x9F54, 0x9B32, 0xE9AD, 0x9B3B, 0xE2F6, 0x9B3C, 0x8B53, + 0x9B41, 0x8A40, 0x9B42, 0x8DB0, 0x9B43, 0xE9AF, 0x9B44, 0xE9AE, 0x9B45, 0x96A3, 0x9B4D, 0xE9B1, 0x9B4E, 0xE9B2, 0x9B4F, 0xE9B0, + 0x9B51, 0xE9B3, 0x9B54, 0x9682, 0x9B58, 0xE9B4, 0x9B5A, 0x8B9B, 0x9B6F, 0x9844, 0x9B72, 0xFC42, 0x9B74, 0xE9B5, 0x9B75, 0xFC41, + 0x9B83, 0xE9B7, 0x9B8E, 0x88BC, 0x9B8F, 0xFC43, 0x9B91, 0xE9B8, 0x9B92, 0x95A9, 0x9B93, 0xE9B6, 0x9B96, 0xE9B9, 0x9B97, 0xE9BA, + 0x9B9F, 0xE9BB, 0x9BA0, 0xE9BC, 0x9BA8, 0xE9BD, 0x9BAA, 0x968E, 0x9BAB, 0x8E4C, 0x9BAD, 0x8DF8, 0x9BAE, 0x914E, 0x9BB1, 0xFC44, + 0x9BB4, 0xE9BE, 0x9BB9, 0xE9C1, 0x9BBB, 0xFC45, 0x9BC0, 0xE9BF, 0x9BC6, 0xE9C2, 0x9BC9, 0x8CEF, 0x9BCA, 0xE9C0, 0x9BCF, 0xE9C3, + 0x9BD1, 0xE9C4, 0x9BD2, 0xE9C5, 0x9BD4, 0xE9C9, 0x9BD6, 0x8E49, 0x9BDB, 0x91E2, 0x9BE1, 0xE9CA, 0x9BE2, 0xE9C7, 0x9BE3, 0xE9C6, + 0x9BE4, 0xE9C8, 0x9BE8, 0x8C7E, 0x9BF0, 0xE9CE, 0x9BF1, 0xE9CD, 0x9BF2, 0xE9CC, 0x9BF5, 0x88B1, 0x9C00, 0xFC46, 0x9C04, 0xE9D8, + 0x9C06, 0xE9D4, 0x9C08, 0xE9D5, 0x9C09, 0xE9D1, 0x9C0A, 0xE9D7, 0x9C0C, 0xE9D3, 0x9C0D, 0x8A82, 0x9C10, 0x986B, 0x9C12, 0xE9D6, + 0x9C13, 0xE9D2, 0x9C14, 0xE9D0, 0x9C15, 0xE9CF, 0x9C1B, 0xE9DA, 0x9C21, 0xE9DD, 0x9C24, 0xE9DC, 0x9C25, 0xE9DB, 0x9C2D, 0x9568, + 0x9C2E, 0xE9D9, 0x9C2F, 0x88F1, 0x9C30, 0xE9DE, 0x9C32, 0xE9E0, 0x9C39, 0x8A8F, 0x9C3A, 0xE9CB, 0x9C3B, 0x8956, 0x9C3E, 0xE9E2, + 0x9C46, 0xE9E1, 0x9C47, 0xE9DF, 0x9C48, 0x924C, 0x9C52, 0x9690, 0x9C57, 0x97D8, 0x9C5A, 0xE9E3, 0x9C60, 0xE9E4, 0x9C67, 0xE9E5, + 0x9C76, 0xE9E6, 0x9C78, 0xE9E7, 0x9CE5, 0x92B9, 0x9CE7, 0xE9E8, 0x9CE9, 0x94B5, 0x9CEB, 0xE9ED, 0x9CEC, 0xE9E9, 0x9CF0, 0xE9EA, + 0x9CF3, 0x9650, 0x9CF4, 0x96C2, 0x9CF6, 0x93CE, 0x9D03, 0xE9EE, 0x9D06, 0xE9EF, 0x9D07, 0x93BC, 0x9D08, 0xE9EC, 0x9D09, 0xE9EB, + 0x9D0E, 0x89A8, 0x9D12, 0xE9F7, 0x9D15, 0xE9F6, 0x9D1B, 0x8995, 0x9D1F, 0xE9F4, 0x9D23, 0xE9F3, 0x9D26, 0xE9F1, 0x9D28, 0x8A9B, + 0x9D2A, 0xE9F0, 0x9D2B, 0x8EB0, 0x9D2C, 0x89A7, 0x9D3B, 0x8D83, 0x9D3E, 0xE9FA, 0x9D3F, 0xE9F9, 0x9D41, 0xE9F8, 0x9D44, 0xE9F5, + 0x9D46, 0xE9FB, 0x9D48, 0xE9FC, 0x9D50, 0xEA44, 0x9D51, 0xEA43, 0x9D59, 0xEA45, 0x9D5C, 0x894C, 0x9D5D, 0xEA40, 0x9D5E, 0xEA41, + 0x9D60, 0x8D94, 0x9D61, 0x96B7, 0x9D64, 0xEA42, 0x9D6B, 0xFC48, 0x9D6C, 0x9651, 0x9D6F, 0xEA4A, 0x9D70, 0xFC47, 0x9D72, 0xEA46, + 0x9D7A, 0xEA4B, 0x9D87, 0xEA48, 0x9D89, 0xEA47, 0x9D8F, 0x8C7B, 0x9D9A, 0xEA4C, 0x9DA4, 0xEA4D, 0x9DA9, 0xEA4E, 0x9DAB, 0xEA49, + 0x9DAF, 0xE9F2, 0x9DB2, 0xEA4F, 0x9DB4, 0x92DF, 0x9DB8, 0xEA53, 0x9DBA, 0xEA54, 0x9DBB, 0xEA52, 0x9DC1, 0xEA51, 0x9DC2, 0xEA57, + 0x9DC4, 0xEA50, 0x9DC6, 0xEA55, 0x9DCF, 0xEA56, 0x9DD3, 0xEA59, 0x9DD9, 0xEA58, 0x9DE6, 0xEA5B, 0x9DED, 0xEA5C, 0x9DEF, 0xEA5D, + 0x9DF2, 0x9868, 0x9DF8, 0xEA5A, 0x9DF9, 0x91E9, 0x9DFA, 0x8DEB, 0x9DFD, 0xEA5E, 0x9E19, 0xFC4A, 0x9E1A, 0xEA5F, 0x9E1B, 0xEA60, + 0x9E1E, 0xEA61, 0x9E75, 0xEA62, 0x9E78, 0x8CB2, 0x9E79, 0xEA63, 0x9E7D, 0xEA64, 0x9E7F, 0x8EAD, 0x9E81, 0xEA65, 0x9E88, 0xEA66, + 0x9E8B, 0xEA67, 0x9E8C, 0xEA68, 0x9E91, 0xEA6B, 0x9E92, 0xEA69, 0x9E93, 0x985B, 0x9E95, 0xEA6A, 0x9E97, 0x97ED, 0x9E9D, 0xEA6C, + 0x9E9F, 0x97D9, 0x9EA5, 0xEA6D, 0x9EA6, 0x949E, 0x9EA9, 0xEA6E, 0x9EAA, 0xEA70, 0x9EAD, 0xEA71, 0x9EB8, 0xEA6F, 0x9EB9, 0x8D8D, + 0x9EBA, 0x96CB, 0x9EBB, 0x9683, 0x9EBC, 0x9BF5, 0x9EBE, 0x9F80, 0x9EBF, 0x969B, 0x9EC4, 0x89A9, 0x9ECC, 0xEA73, 0x9ECD, 0x8B6F, + 0x9ECE, 0xEA74, 0x9ECF, 0xEA75, 0x9ED0, 0xEA76, 0x9ED1, 0xFC4B, 0x9ED2, 0x8D95, 0x9ED4, 0xEA77, 0x9ED8, 0xE0D2, 0x9ED9, 0x96D9, + 0x9EDB, 0x91E1, 0x9EDC, 0xEA78, 0x9EDD, 0xEA7A, 0x9EDE, 0xEA79, 0x9EE0, 0xEA7B, 0x9EE5, 0xEA7C, 0x9EE8, 0xEA7D, 0x9EEF, 0xEA7E, + 0x9EF4, 0xEA80, 0x9EF6, 0xEA81, 0x9EF7, 0xEA82, 0x9EF9, 0xEA83, 0x9EFB, 0xEA84, 0x9EFC, 0xEA85, 0x9EFD, 0xEA86, 0x9F07, 0xEA87, + 0x9F08, 0xEA88, 0x9F0E, 0x9343, 0x9F13, 0x8CDB, 0x9F15, 0xEA8A, 0x9F20, 0x916C, 0x9F21, 0xEA8B, 0x9F2C, 0xEA8C, 0x9F3B, 0x9540, + 0x9F3E, 0xEA8D, 0x9F4A, 0xEA8E, 0x9F4B, 0xE256, 0x9F4E, 0xE6D8, 0x9F4F, 0xE8EB, 0x9F52, 0xEA8F, 0x9F54, 0xEA90, 0x9F5F, 0xEA92, + 0x9F60, 0xEA93, 0x9F61, 0xEA94, 0x9F62, 0x97EE, 0x9F63, 0xEA91, 0x9F66, 0xEA95, 0x9F67, 0xEA96, 0x9F6A, 0xEA98, 0x9F6C, 0xEA97, + 0x9F72, 0xEA9A, 0x9F76, 0xEA9B, 0x9F77, 0xEA99, 0x9F8D, 0x97B4, 0x9F95, 0xEA9C, 0x9F9C, 0xEA9D, 0x9F9D, 0xE273, 0x9FA0, 0xEA9E, + 0xF929, 0xFAE0, 0xF9DC, 0xFBE9, 0xFA0E, 0xFA90, 0xFA0F, 0xFA9B, 0xFA10, 0xFA9C, 0xFA11, 0xFAB1, 0xFA12, 0xFAD8, 0xFA13, 0xFAE8, + 0xFA14, 0xFAEA, 0xFA15, 0xFB58, 0xFA16, 0xFB5E, 0xFA17, 0xFB75, 0xFA18, 0xFB7D, 0xFA19, 0xFB7E, 0xFA1A, 0xFB80, 0xFA1B, 0xFB82, + 0xFA1C, 0xFB86, 0xFA1D, 0xFB89, 0xFA1E, 0xFB92, 0xFA1F, 0xFB9D, 0xFA20, 0xFB9F, 0xFA21, 0xFBA0, 0xFA22, 0xFBA9, 0xFA23, 0xFBB1, + 0xFA24, 0xFBB3, 0xFA25, 0xFBB4, 0xFA26, 0xFBB7, 0xFA27, 0xFBD3, 0xFA28, 0xFBDA, 0xFA29, 0xFBEA, 0xFA2A, 0xFBF6, 0xFA2B, 0xFBF7, + 0xFA2C, 0xFBF9, 0xFA2D, 0xFC49, 0xFF01, 0x8149, 0xFF02, 0xFA57, 0xFF03, 0x8194, 0xFF04, 0x8190, 0xFF05, 0x8193, 0xFF06, 0x8195, + 0xFF07, 0xFA56, 0xFF08, 0x8169, 0xFF09, 0x816A, 0xFF0A, 0x8196, 0xFF0B, 0x817B, 0xFF0C, 0x8143, 0xFF0D, 0x817C, 0xFF0E, 0x8144, + 0xFF0F, 0x815E, 0xFF10, 0x824F, 0xFF11, 0x8250, 0xFF12, 0x8251, 0xFF13, 0x8252, 0xFF14, 0x8253, 0xFF15, 0x8254, 0xFF16, 0x8255, + 0xFF17, 0x8256, 0xFF18, 0x8257, 0xFF19, 0x8258, 0xFF1A, 0x8146, 0xFF1B, 0x8147, 0xFF1C, 0x8183, 0xFF1D, 0x8181, 0xFF1E, 0x8184, + 0xFF1F, 0x8148, 0xFF20, 0x8197, 0xFF21, 0x8260, 0xFF22, 0x8261, 0xFF23, 0x8262, 0xFF24, 0x8263, 0xFF25, 0x8264, 0xFF26, 0x8265, + 0xFF27, 0x8266, 0xFF28, 0x8267, 0xFF29, 0x8268, 0xFF2A, 0x8269, 0xFF2B, 0x826A, 0xFF2C, 0x826B, 0xFF2D, 0x826C, 0xFF2E, 0x826D, + 0xFF2F, 0x826E, 0xFF30, 0x826F, 0xFF31, 0x8270, 0xFF32, 0x8271, 0xFF33, 0x8272, 0xFF34, 0x8273, 0xFF35, 0x8274, 0xFF36, 0x8275, + 0xFF37, 0x8276, 0xFF38, 0x8277, 0xFF39, 0x8278, 0xFF3A, 0x8279, 0xFF3B, 0x816D, 0xFF3C, 0x815F, 0xFF3D, 0x816E, 0xFF3E, 0x814F, + 0xFF3F, 0x8151, 0xFF40, 0x814D, 0xFF41, 0x8281, 0xFF42, 0x8282, 0xFF43, 0x8283, 0xFF44, 0x8284, 0xFF45, 0x8285, 0xFF46, 0x8286, + 0xFF47, 0x8287, 0xFF48, 0x8288, 0xFF49, 0x8289, 0xFF4A, 0x828A, 0xFF4B, 0x828B, 0xFF4C, 0x828C, 0xFF4D, 0x828D, 0xFF4E, 0x828E, + 0xFF4F, 0x828F, 0xFF50, 0x8290, 0xFF51, 0x8291, 0xFF52, 0x8292, 0xFF53, 0x8293, 0xFF54, 0x8294, 0xFF55, 0x8295, 0xFF56, 0x8296, + 0xFF57, 0x8297, 0xFF58, 0x8298, 0xFF59, 0x8299, 0xFF5A, 0x829A, 0xFF5B, 0x816F, 0xFF5C, 0x8162, 0xFF5D, 0x8170, 0xFF5E, 0x8160, + 0xFF61, 0x00A1, 0xFF62, 0x00A2, 0xFF63, 0x00A3, 0xFF64, 0x00A4, 0xFF65, 0x00A5, 0xFF66, 0x00A6, 0xFF67, 0x00A7, 0xFF68, 0x00A8, + 0xFF69, 0x00A9, 0xFF6A, 0x00AA, 0xFF6B, 0x00AB, 0xFF6C, 0x00AC, 0xFF6D, 0x00AD, 0xFF6E, 0x00AE, 0xFF6F, 0x00AF, 0xFF70, 0x00B0, + 0xFF71, 0x00B1, 0xFF72, 0x00B2, 0xFF73, 0x00B3, 0xFF74, 0x00B4, 0xFF75, 0x00B5, 0xFF76, 0x00B6, 0xFF77, 0x00B7, 0xFF78, 0x00B8, + 0xFF79, 0x00B9, 0xFF7A, 0x00BA, 0xFF7B, 0x00BB, 0xFF7C, 0x00BC, 0xFF7D, 0x00BD, 0xFF7E, 0x00BE, 0xFF7F, 0x00BF, 0xFF80, 0x00C0, + 0xFF81, 0x00C1, 0xFF82, 0x00C2, 0xFF83, 0x00C3, 0xFF84, 0x00C4, 0xFF85, 0x00C5, 0xFF86, 0x00C6, 0xFF87, 0x00C7, 0xFF88, 0x00C8, + 0xFF89, 0x00C9, 0xFF8A, 0x00CA, 0xFF8B, 0x00CB, 0xFF8C, 0x00CC, 0xFF8D, 0x00CD, 0xFF8E, 0x00CE, 0xFF8F, 0x00CF, 0xFF90, 0x00D0, + 0xFF91, 0x00D1, 0xFF92, 0x00D2, 0xFF93, 0x00D3, 0xFF94, 0x00D4, 0xFF95, 0x00D5, 0xFF96, 0x00D6, 0xFF97, 0x00D7, 0xFF98, 0x00D8, + 0xFF99, 0x00D9, 0xFF9A, 0x00DA, 0xFF9B, 0x00DB, 0xFF9C, 0x00DC, 0xFF9D, 0x00DD, 0xFF9E, 0x00DE, 0xFF9F, 0x00DF, 0xFFE0, 0x8191, + 0xFFE1, 0x8192, 0xFFE2, 0x81CA, 0xFFE3, 0x8150, 0xFFE4, 0xFA55, 0xFFE5, 0x818F, 0, 0 +}; + +static const WCHAR oem2uni932[] = { /* Shift_JIS --> Unicode pairs */ + 0x00A1, 0xFF61, 0x00A2, 0xFF62, 0x00A3, 0xFF63, 0x00A4, 0xFF64, 0x00A5, 0xFF65, 0x00A6, 0xFF66, 0x00A7, 0xFF67, 0x00A8, 0xFF68, + 0x00A9, 0xFF69, 0x00AA, 0xFF6A, 0x00AB, 0xFF6B, 0x00AC, 0xFF6C, 0x00AD, 0xFF6D, 0x00AE, 0xFF6E, 0x00AF, 0xFF6F, 0x00B0, 0xFF70, + 0x00B1, 0xFF71, 0x00B2, 0xFF72, 0x00B3, 0xFF73, 0x00B4, 0xFF74, 0x00B5, 0xFF75, 0x00B6, 0xFF76, 0x00B7, 0xFF77, 0x00B8, 0xFF78, + 0x00B9, 0xFF79, 0x00BA, 0xFF7A, 0x00BB, 0xFF7B, 0x00BC, 0xFF7C, 0x00BD, 0xFF7D, 0x00BE, 0xFF7E, 0x00BF, 0xFF7F, 0x00C0, 0xFF80, + 0x00C1, 0xFF81, 0x00C2, 0xFF82, 0x00C3, 0xFF83, 0x00C4, 0xFF84, 0x00C5, 0xFF85, 0x00C6, 0xFF86, 0x00C7, 0xFF87, 0x00C8, 0xFF88, + 0x00C9, 0xFF89, 0x00CA, 0xFF8A, 0x00CB, 0xFF8B, 0x00CC, 0xFF8C, 0x00CD, 0xFF8D, 0x00CE, 0xFF8E, 0x00CF, 0xFF8F, 0x00D0, 0xFF90, + 0x00D1, 0xFF91, 0x00D2, 0xFF92, 0x00D3, 0xFF93, 0x00D4, 0xFF94, 0x00D5, 0xFF95, 0x00D6, 0xFF96, 0x00D7, 0xFF97, 0x00D8, 0xFF98, + 0x00D9, 0xFF99, 0x00DA, 0xFF9A, 0x00DB, 0xFF9B, 0x00DC, 0xFF9C, 0x00DD, 0xFF9D, 0x00DE, 0xFF9E, 0x00DF, 0xFF9F, 0x8140, 0x3000, + 0x8141, 0x3001, 0x8142, 0x3002, 0x8143, 0xFF0C, 0x8144, 0xFF0E, 0x8145, 0x30FB, 0x8146, 0xFF1A, 0x8147, 0xFF1B, 0x8148, 0xFF1F, + 0x8149, 0xFF01, 0x814A, 0x309B, 0x814B, 0x309C, 0x814C, 0x00B4, 0x814D, 0xFF40, 0x814E, 0x00A8, 0x814F, 0xFF3E, 0x8150, 0xFFE3, + 0x8151, 0xFF3F, 0x8152, 0x30FD, 0x8153, 0x30FE, 0x8154, 0x309D, 0x8155, 0x309E, 0x8156, 0x3003, 0x8157, 0x4EDD, 0x8158, 0x3005, + 0x8159, 0x3006, 0x815A, 0x3007, 0x815B, 0x30FC, 0x815C, 0x2015, 0x815D, 0x2010, 0x815E, 0xFF0F, 0x815F, 0xFF3C, 0x8160, 0xFF5E, + 0x8161, 0x2225, 0x8162, 0xFF5C, 0x8163, 0x2026, 0x8164, 0x2025, 0x8165, 0x2018, 0x8166, 0x2019, 0x8167, 0x201C, 0x8168, 0x201D, + 0x8169, 0xFF08, 0x816A, 0xFF09, 0x816B, 0x3014, 0x816C, 0x3015, 0x816D, 0xFF3B, 0x816E, 0xFF3D, 0x816F, 0xFF5B, 0x8170, 0xFF5D, + 0x8171, 0x3008, 0x8172, 0x3009, 0x8173, 0x300A, 0x8174, 0x300B, 0x8175, 0x300C, 0x8176, 0x300D, 0x8177, 0x300E, 0x8178, 0x300F, + 0x8179, 0x3010, 0x817A, 0x3011, 0x817B, 0xFF0B, 0x817C, 0xFF0D, 0x817D, 0x00B1, 0x817E, 0x00D7, 0x8180, 0x00F7, 0x8181, 0xFF1D, + 0x8182, 0x2260, 0x8183, 0xFF1C, 0x8184, 0xFF1E, 0x8185, 0x2266, 0x8186, 0x2267, 0x8187, 0x221E, 0x8188, 0x2234, 0x8189, 0x2642, + 0x818A, 0x2640, 0x818B, 0x00B0, 0x818C, 0x2032, 0x818D, 0x2033, 0x818E, 0x2103, 0x818F, 0xFFE5, 0x8190, 0xFF04, 0x8191, 0xFFE0, + 0x8192, 0xFFE1, 0x8193, 0xFF05, 0x8194, 0xFF03, 0x8195, 0xFF06, 0x8196, 0xFF0A, 0x8197, 0xFF20, 0x8198, 0x00A7, 0x8199, 0x2606, + 0x819A, 0x2605, 0x819B, 0x25CB, 0x819C, 0x25CF, 0x819D, 0x25CE, 0x819E, 0x25C7, 0x819F, 0x25C6, 0x81A0, 0x25A1, 0x81A1, 0x25A0, + 0x81A2, 0x25B3, 0x81A3, 0x25B2, 0x81A4, 0x25BD, 0x81A5, 0x25BC, 0x81A6, 0x203B, 0x81A7, 0x3012, 0x81A8, 0x2192, 0x81A9, 0x2190, + 0x81AA, 0x2191, 0x81AB, 0x2193, 0x81AC, 0x3013, 0x81B8, 0x2208, 0x81B9, 0x220B, 0x81BA, 0x2286, 0x81BB, 0x2287, 0x81BC, 0x2282, + 0x81BD, 0x2283, 0x81BE, 0x222A, 0x81BF, 0x2229, 0x81C8, 0x2227, 0x81C9, 0x2228, 0x81CA, 0xFFE2, 0x81CB, 0x21D2, 0x81CC, 0x21D4, + 0x81CD, 0x2200, 0x81CE, 0x2203, 0x81DA, 0x2220, 0x81DB, 0x22A5, 0x81DC, 0x2312, 0x81DD, 0x2202, 0x81DE, 0x2207, 0x81DF, 0x2261, + 0x81E0, 0x2252, 0x81E1, 0x226A, 0x81E2, 0x226B, 0x81E3, 0x221A, 0x81E4, 0x223D, 0x81E5, 0x221D, 0x81E6, 0x2235, 0x81E7, 0x222B, + 0x81E8, 0x222C, 0x81F0, 0x212B, 0x81F1, 0x2030, 0x81F2, 0x266F, 0x81F3, 0x266D, 0x81F4, 0x266A, 0x81F5, 0x2020, 0x81F6, 0x2021, + 0x81F7, 0x00B6, 0x81FC, 0x25EF, 0x824F, 0xFF10, 0x8250, 0xFF11, 0x8251, 0xFF12, 0x8252, 0xFF13, 0x8253, 0xFF14, 0x8254, 0xFF15, + 0x8255, 0xFF16, 0x8256, 0xFF17, 0x8257, 0xFF18, 0x8258, 0xFF19, 0x8260, 0xFF21, 0x8261, 0xFF22, 0x8262, 0xFF23, 0x8263, 0xFF24, + 0x8264, 0xFF25, 0x8265, 0xFF26, 0x8266, 0xFF27, 0x8267, 0xFF28, 0x8268, 0xFF29, 0x8269, 0xFF2A, 0x826A, 0xFF2B, 0x826B, 0xFF2C, + 0x826C, 0xFF2D, 0x826D, 0xFF2E, 0x826E, 0xFF2F, 0x826F, 0xFF30, 0x8270, 0xFF31, 0x8271, 0xFF32, 0x8272, 0xFF33, 0x8273, 0xFF34, + 0x8274, 0xFF35, 0x8275, 0xFF36, 0x8276, 0xFF37, 0x8277, 0xFF38, 0x8278, 0xFF39, 0x8279, 0xFF3A, 0x8281, 0xFF41, 0x8282, 0xFF42, + 0x8283, 0xFF43, 0x8284, 0xFF44, 0x8285, 0xFF45, 0x8286, 0xFF46, 0x8287, 0xFF47, 0x8288, 0xFF48, 0x8289, 0xFF49, 0x828A, 0xFF4A, + 0x828B, 0xFF4B, 0x828C, 0xFF4C, 0x828D, 0xFF4D, 0x828E, 0xFF4E, 0x828F, 0xFF4F, 0x8290, 0xFF50, 0x8291, 0xFF51, 0x8292, 0xFF52, + 0x8293, 0xFF53, 0x8294, 0xFF54, 0x8295, 0xFF55, 0x8296, 0xFF56, 0x8297, 0xFF57, 0x8298, 0xFF58, 0x8299, 0xFF59, 0x829A, 0xFF5A, + 0x829F, 0x3041, 0x82A0, 0x3042, 0x82A1, 0x3043, 0x82A2, 0x3044, 0x82A3, 0x3045, 0x82A4, 0x3046, 0x82A5, 0x3047, 0x82A6, 0x3048, + 0x82A7, 0x3049, 0x82A8, 0x304A, 0x82A9, 0x304B, 0x82AA, 0x304C, 0x82AB, 0x304D, 0x82AC, 0x304E, 0x82AD, 0x304F, 0x82AE, 0x3050, + 0x82AF, 0x3051, 0x82B0, 0x3052, 0x82B1, 0x3053, 0x82B2, 0x3054, 0x82B3, 0x3055, 0x82B4, 0x3056, 0x82B5, 0x3057, 0x82B6, 0x3058, + 0x82B7, 0x3059, 0x82B8, 0x305A, 0x82B9, 0x305B, 0x82BA, 0x305C, 0x82BB, 0x305D, 0x82BC, 0x305E, 0x82BD, 0x305F, 0x82BE, 0x3060, + 0x82BF, 0x3061, 0x82C0, 0x3062, 0x82C1, 0x3063, 0x82C2, 0x3064, 0x82C3, 0x3065, 0x82C4, 0x3066, 0x82C5, 0x3067, 0x82C6, 0x3068, + 0x82C7, 0x3069, 0x82C8, 0x306A, 0x82C9, 0x306B, 0x82CA, 0x306C, 0x82CB, 0x306D, 0x82CC, 0x306E, 0x82CD, 0x306F, 0x82CE, 0x3070, + 0x82CF, 0x3071, 0x82D0, 0x3072, 0x82D1, 0x3073, 0x82D2, 0x3074, 0x82D3, 0x3075, 0x82D4, 0x3076, 0x82D5, 0x3077, 0x82D6, 0x3078, + 0x82D7, 0x3079, 0x82D8, 0x307A, 0x82D9, 0x307B, 0x82DA, 0x307C, 0x82DB, 0x307D, 0x82DC, 0x307E, 0x82DD, 0x307F, 0x82DE, 0x3080, + 0x82DF, 0x3081, 0x82E0, 0x3082, 0x82E1, 0x3083, 0x82E2, 0x3084, 0x82E3, 0x3085, 0x82E4, 0x3086, 0x82E5, 0x3087, 0x82E6, 0x3088, + 0x82E7, 0x3089, 0x82E8, 0x308A, 0x82E9, 0x308B, 0x82EA, 0x308C, 0x82EB, 0x308D, 0x82EC, 0x308E, 0x82ED, 0x308F, 0x82EE, 0x3090, + 0x82EF, 0x3091, 0x82F0, 0x3092, 0x82F1, 0x3093, 0x8340, 0x30A1, 0x8341, 0x30A2, 0x8342, 0x30A3, 0x8343, 0x30A4, 0x8344, 0x30A5, + 0x8345, 0x30A6, 0x8346, 0x30A7, 0x8347, 0x30A8, 0x8348, 0x30A9, 0x8349, 0x30AA, 0x834A, 0x30AB, 0x834B, 0x30AC, 0x834C, 0x30AD, + 0x834D, 0x30AE, 0x834E, 0x30AF, 0x834F, 0x30B0, 0x8350, 0x30B1, 0x8351, 0x30B2, 0x8352, 0x30B3, 0x8353, 0x30B4, 0x8354, 0x30B5, + 0x8355, 0x30B6, 0x8356, 0x30B7, 0x8357, 0x30B8, 0x8358, 0x30B9, 0x8359, 0x30BA, 0x835A, 0x30BB, 0x835B, 0x30BC, 0x835C, 0x30BD, + 0x835D, 0x30BE, 0x835E, 0x30BF, 0x835F, 0x30C0, 0x8360, 0x30C1, 0x8361, 0x30C2, 0x8362, 0x30C3, 0x8363, 0x30C4, 0x8364, 0x30C5, + 0x8365, 0x30C6, 0x8366, 0x30C7, 0x8367, 0x30C8, 0x8368, 0x30C9, 0x8369, 0x30CA, 0x836A, 0x30CB, 0x836B, 0x30CC, 0x836C, 0x30CD, + 0x836D, 0x30CE, 0x836E, 0x30CF, 0x836F, 0x30D0, 0x8370, 0x30D1, 0x8371, 0x30D2, 0x8372, 0x30D3, 0x8373, 0x30D4, 0x8374, 0x30D5, + 0x8375, 0x30D6, 0x8376, 0x30D7, 0x8377, 0x30D8, 0x8378, 0x30D9, 0x8379, 0x30DA, 0x837A, 0x30DB, 0x837B, 0x30DC, 0x837C, 0x30DD, + 0x837D, 0x30DE, 0x837E, 0x30DF, 0x8380, 0x30E0, 0x8381, 0x30E1, 0x8382, 0x30E2, 0x8383, 0x30E3, 0x8384, 0x30E4, 0x8385, 0x30E5, + 0x8386, 0x30E6, 0x8387, 0x30E7, 0x8388, 0x30E8, 0x8389, 0x30E9, 0x838A, 0x30EA, 0x838B, 0x30EB, 0x838C, 0x30EC, 0x838D, 0x30ED, + 0x838E, 0x30EE, 0x838F, 0x30EF, 0x8390, 0x30F0, 0x8391, 0x30F1, 0x8392, 0x30F2, 0x8393, 0x30F3, 0x8394, 0x30F4, 0x8395, 0x30F5, + 0x8396, 0x30F6, 0x839F, 0x0391, 0x83A0, 0x0392, 0x83A1, 0x0393, 0x83A2, 0x0394, 0x83A3, 0x0395, 0x83A4, 0x0396, 0x83A5, 0x0397, + 0x83A6, 0x0398, 0x83A7, 0x0399, 0x83A8, 0x039A, 0x83A9, 0x039B, 0x83AA, 0x039C, 0x83AB, 0x039D, 0x83AC, 0x039E, 0x83AD, 0x039F, + 0x83AE, 0x03A0, 0x83AF, 0x03A1, 0x83B0, 0x03A3, 0x83B1, 0x03A4, 0x83B2, 0x03A5, 0x83B3, 0x03A6, 0x83B4, 0x03A7, 0x83B5, 0x03A8, + 0x83B6, 0x03A9, 0x83BF, 0x03B1, 0x83C0, 0x03B2, 0x83C1, 0x03B3, 0x83C2, 0x03B4, 0x83C3, 0x03B5, 0x83C4, 0x03B6, 0x83C5, 0x03B7, + 0x83C6, 0x03B8, 0x83C7, 0x03B9, 0x83C8, 0x03BA, 0x83C9, 0x03BB, 0x83CA, 0x03BC, 0x83CB, 0x03BD, 0x83CC, 0x03BE, 0x83CD, 0x03BF, + 0x83CE, 0x03C0, 0x83CF, 0x03C1, 0x83D0, 0x03C3, 0x83D1, 0x03C4, 0x83D2, 0x03C5, 0x83D3, 0x03C6, 0x83D4, 0x03C7, 0x83D5, 0x03C8, + 0x83D6, 0x03C9, 0x8440, 0x0410, 0x8441, 0x0411, 0x8442, 0x0412, 0x8443, 0x0413, 0x8444, 0x0414, 0x8445, 0x0415, 0x8446, 0x0401, + 0x8447, 0x0416, 0x8448, 0x0417, 0x8449, 0x0418, 0x844A, 0x0419, 0x844B, 0x041A, 0x844C, 0x041B, 0x844D, 0x041C, 0x844E, 0x041D, + 0x844F, 0x041E, 0x8450, 0x041F, 0x8451, 0x0420, 0x8452, 0x0421, 0x8453, 0x0422, 0x8454, 0x0423, 0x8455, 0x0424, 0x8456, 0x0425, + 0x8457, 0x0426, 0x8458, 0x0427, 0x8459, 0x0428, 0x845A, 0x0429, 0x845B, 0x042A, 0x845C, 0x042B, 0x845D, 0x042C, 0x845E, 0x042D, + 0x845F, 0x042E, 0x8460, 0x042F, 0x8470, 0x0430, 0x8471, 0x0431, 0x8472, 0x0432, 0x8473, 0x0433, 0x8474, 0x0434, 0x8475, 0x0435, + 0x8476, 0x0451, 0x8477, 0x0436, 0x8478, 0x0437, 0x8479, 0x0438, 0x847A, 0x0439, 0x847B, 0x043A, 0x847C, 0x043B, 0x847D, 0x043C, + 0x847E, 0x043D, 0x8480, 0x043E, 0x8481, 0x043F, 0x8482, 0x0440, 0x8483, 0x0441, 0x8484, 0x0442, 0x8485, 0x0443, 0x8486, 0x0444, + 0x8487, 0x0445, 0x8488, 0x0446, 0x8489, 0x0447, 0x848A, 0x0448, 0x848B, 0x0449, 0x848C, 0x044A, 0x848D, 0x044B, 0x848E, 0x044C, + 0x848F, 0x044D, 0x8490, 0x044E, 0x8491, 0x044F, 0x849F, 0x2500, 0x84A0, 0x2502, 0x84A1, 0x250C, 0x84A2, 0x2510, 0x84A3, 0x2518, + 0x84A4, 0x2514, 0x84A5, 0x251C, 0x84A6, 0x252C, 0x84A7, 0x2524, 0x84A8, 0x2534, 0x84A9, 0x253C, 0x84AA, 0x2501, 0x84AB, 0x2503, + 0x84AC, 0x250F, 0x84AD, 0x2513, 0x84AE, 0x251B, 0x84AF, 0x2517, 0x84B0, 0x2523, 0x84B1, 0x2533, 0x84B2, 0x252B, 0x84B3, 0x253B, + 0x84B4, 0x254B, 0x84B5, 0x2520, 0x84B6, 0x252F, 0x84B7, 0x2528, 0x84B8, 0x2537, 0x84B9, 0x253F, 0x84BA, 0x251D, 0x84BB, 0x2530, + 0x84BC, 0x2525, 0x84BD, 0x2538, 0x84BE, 0x2542, 0x8740, 0x2460, 0x8741, 0x2461, 0x8742, 0x2462, 0x8743, 0x2463, 0x8744, 0x2464, + 0x8745, 0x2465, 0x8746, 0x2466, 0x8747, 0x2467, 0x8748, 0x2468, 0x8749, 0x2469, 0x874A, 0x246A, 0x874B, 0x246B, 0x874C, 0x246C, + 0x874D, 0x246D, 0x874E, 0x246E, 0x874F, 0x246F, 0x8750, 0x2470, 0x8751, 0x2471, 0x8752, 0x2472, 0x8753, 0x2473, 0x8754, 0x2160, + 0x8755, 0x2161, 0x8756, 0x2162, 0x8757, 0x2163, 0x8758, 0x2164, 0x8759, 0x2165, 0x875A, 0x2166, 0x875B, 0x2167, 0x875C, 0x2168, + 0x875D, 0x2169, 0x875F, 0x3349, 0x8760, 0x3314, 0x8761, 0x3322, 0x8762, 0x334D, 0x8763, 0x3318, 0x8764, 0x3327, 0x8765, 0x3303, + 0x8766, 0x3336, 0x8767, 0x3351, 0x8768, 0x3357, 0x8769, 0x330D, 0x876A, 0x3326, 0x876B, 0x3323, 0x876C, 0x332B, 0x876D, 0x334A, + 0x876E, 0x333B, 0x876F, 0x339C, 0x8770, 0x339D, 0x8771, 0x339E, 0x8772, 0x338E, 0x8773, 0x338F, 0x8774, 0x33C4, 0x8775, 0x33A1, + 0x877E, 0x337B, 0x8780, 0x301D, 0x8781, 0x301F, 0x8782, 0x2116, 0x8783, 0x33CD, 0x8784, 0x2121, 0x8785, 0x32A4, 0x8786, 0x32A5, + 0x8787, 0x32A6, 0x8788, 0x32A7, 0x8789, 0x32A8, 0x878A, 0x3231, 0x878B, 0x3232, 0x878C, 0x3239, 0x878D, 0x337E, 0x878E, 0x337D, + 0x878F, 0x337C, 0x8793, 0x222E, 0x8794, 0x2211, 0x8798, 0x221F, 0x8799, 0x22BF, 0x889F, 0x4E9C, 0x88A0, 0x5516, 0x88A1, 0x5A03, + 0x88A2, 0x963F, 0x88A3, 0x54C0, 0x88A4, 0x611B, 0x88A5, 0x6328, 0x88A6, 0x59F6, 0x88A7, 0x9022, 0x88A8, 0x8475, 0x88A9, 0x831C, + 0x88AA, 0x7A50, 0x88AB, 0x60AA, 0x88AC, 0x63E1, 0x88AD, 0x6E25, 0x88AE, 0x65ED, 0x88AF, 0x8466, 0x88B0, 0x82A6, 0x88B1, 0x9BF5, + 0x88B2, 0x6893, 0x88B3, 0x5727, 0x88B4, 0x65A1, 0x88B5, 0x6271, 0x88B6, 0x5B9B, 0x88B7, 0x59D0, 0x88B8, 0x867B, 0x88B9, 0x98F4, + 0x88BA, 0x7D62, 0x88BB, 0x7DBE, 0x88BC, 0x9B8E, 0x88BD, 0x6216, 0x88BE, 0x7C9F, 0x88BF, 0x88B7, 0x88C0, 0x5B89, 0x88C1, 0x5EB5, + 0x88C2, 0x6309, 0x88C3, 0x6697, 0x88C4, 0x6848, 0x88C5, 0x95C7, 0x88C6, 0x978D, 0x88C7, 0x674F, 0x88C8, 0x4EE5, 0x88C9, 0x4F0A, + 0x88CA, 0x4F4D, 0x88CB, 0x4F9D, 0x88CC, 0x5049, 0x88CD, 0x56F2, 0x88CE, 0x5937, 0x88CF, 0x59D4, 0x88D0, 0x5A01, 0x88D1, 0x5C09, + 0x88D2, 0x60DF, 0x88D3, 0x610F, 0x88D4, 0x6170, 0x88D5, 0x6613, 0x88D6, 0x6905, 0x88D7, 0x70BA, 0x88D8, 0x754F, 0x88D9, 0x7570, + 0x88DA, 0x79FB, 0x88DB, 0x7DAD, 0x88DC, 0x7DEF, 0x88DD, 0x80C3, 0x88DE, 0x840E, 0x88DF, 0x8863, 0x88E0, 0x8B02, 0x88E1, 0x9055, + 0x88E2, 0x907A, 0x88E3, 0x533B, 0x88E4, 0x4E95, 0x88E5, 0x4EA5, 0x88E6, 0x57DF, 0x88E7, 0x80B2, 0x88E8, 0x90C1, 0x88E9, 0x78EF, + 0x88EA, 0x4E00, 0x88EB, 0x58F1, 0x88EC, 0x6EA2, 0x88ED, 0x9038, 0x88EE, 0x7A32, 0x88EF, 0x8328, 0x88F0, 0x828B, 0x88F1, 0x9C2F, + 0x88F2, 0x5141, 0x88F3, 0x5370, 0x88F4, 0x54BD, 0x88F5, 0x54E1, 0x88F6, 0x56E0, 0x88F7, 0x59FB, 0x88F8, 0x5F15, 0x88F9, 0x98F2, + 0x88FA, 0x6DEB, 0x88FB, 0x80E4, 0x88FC, 0x852D, 0x8940, 0x9662, 0x8941, 0x9670, 0x8942, 0x96A0, 0x8943, 0x97FB, 0x8944, 0x540B, + 0x8945, 0x53F3, 0x8946, 0x5B87, 0x8947, 0x70CF, 0x8948, 0x7FBD, 0x8949, 0x8FC2, 0x894A, 0x96E8, 0x894B, 0x536F, 0x894C, 0x9D5C, + 0x894D, 0x7ABA, 0x894E, 0x4E11, 0x894F, 0x7893, 0x8950, 0x81FC, 0x8951, 0x6E26, 0x8952, 0x5618, 0x8953, 0x5504, 0x8954, 0x6B1D, + 0x8955, 0x851A, 0x8956, 0x9C3B, 0x8957, 0x59E5, 0x8958, 0x53A9, 0x8959, 0x6D66, 0x895A, 0x74DC, 0x895B, 0x958F, 0x895C, 0x5642, + 0x895D, 0x4E91, 0x895E, 0x904B, 0x895F, 0x96F2, 0x8960, 0x834F, 0x8961, 0x990C, 0x8962, 0x53E1, 0x8963, 0x55B6, 0x8964, 0x5B30, + 0x8965, 0x5F71, 0x8966, 0x6620, 0x8967, 0x66F3, 0x8968, 0x6804, 0x8969, 0x6C38, 0x896A, 0x6CF3, 0x896B, 0x6D29, 0x896C, 0x745B, + 0x896D, 0x76C8, 0x896E, 0x7A4E, 0x896F, 0x9834, 0x8970, 0x82F1, 0x8971, 0x885B, 0x8972, 0x8A60, 0x8973, 0x92ED, 0x8974, 0x6DB2, + 0x8975, 0x75AB, 0x8976, 0x76CA, 0x8977, 0x99C5, 0x8978, 0x60A6, 0x8979, 0x8B01, 0x897A, 0x8D8A, 0x897B, 0x95B2, 0x897C, 0x698E, + 0x897D, 0x53AD, 0x897E, 0x5186, 0x8980, 0x5712, 0x8981, 0x5830, 0x8982, 0x5944, 0x8983, 0x5BB4, 0x8984, 0x5EF6, 0x8985, 0x6028, + 0x8986, 0x63A9, 0x8987, 0x63F4, 0x8988, 0x6CBF, 0x8989, 0x6F14, 0x898A, 0x708E, 0x898B, 0x7114, 0x898C, 0x7159, 0x898D, 0x71D5, + 0x898E, 0x733F, 0x898F, 0x7E01, 0x8990, 0x8276, 0x8991, 0x82D1, 0x8992, 0x8597, 0x8993, 0x9060, 0x8994, 0x925B, 0x8995, 0x9D1B, + 0x8996, 0x5869, 0x8997, 0x65BC, 0x8998, 0x6C5A, 0x8999, 0x7525, 0x899A, 0x51F9, 0x899B, 0x592E, 0x899C, 0x5965, 0x899D, 0x5F80, + 0x899E, 0x5FDC, 0x899F, 0x62BC, 0x89A0, 0x65FA, 0x89A1, 0x6A2A, 0x89A2, 0x6B27, 0x89A3, 0x6BB4, 0x89A4, 0x738B, 0x89A5, 0x7FC1, + 0x89A6, 0x8956, 0x89A7, 0x9D2C, 0x89A8, 0x9D0E, 0x89A9, 0x9EC4, 0x89AA, 0x5CA1, 0x89AB, 0x6C96, 0x89AC, 0x837B, 0x89AD, 0x5104, + 0x89AE, 0x5C4B, 0x89AF, 0x61B6, 0x89B0, 0x81C6, 0x89B1, 0x6876, 0x89B2, 0x7261, 0x89B3, 0x4E59, 0x89B4, 0x4FFA, 0x89B5, 0x5378, + 0x89B6, 0x6069, 0x89B7, 0x6E29, 0x89B8, 0x7A4F, 0x89B9, 0x97F3, 0x89BA, 0x4E0B, 0x89BB, 0x5316, 0x89BC, 0x4EEE, 0x89BD, 0x4F55, + 0x89BE, 0x4F3D, 0x89BF, 0x4FA1, 0x89C0, 0x4F73, 0x89C1, 0x52A0, 0x89C2, 0x53EF, 0x89C3, 0x5609, 0x89C4, 0x590F, 0x89C5, 0x5AC1, + 0x89C6, 0x5BB6, 0x89C7, 0x5BE1, 0x89C8, 0x79D1, 0x89C9, 0x6687, 0x89CA, 0x679C, 0x89CB, 0x67B6, 0x89CC, 0x6B4C, 0x89CD, 0x6CB3, + 0x89CE, 0x706B, 0x89CF, 0x73C2, 0x89D0, 0x798D, 0x89D1, 0x79BE, 0x89D2, 0x7A3C, 0x89D3, 0x7B87, 0x89D4, 0x82B1, 0x89D5, 0x82DB, + 0x89D6, 0x8304, 0x89D7, 0x8377, 0x89D8, 0x83EF, 0x89D9, 0x83D3, 0x89DA, 0x8766, 0x89DB, 0x8AB2, 0x89DC, 0x5629, 0x89DD, 0x8CA8, + 0x89DE, 0x8FE6, 0x89DF, 0x904E, 0x89E0, 0x971E, 0x89E1, 0x868A, 0x89E2, 0x4FC4, 0x89E3, 0x5CE8, 0x89E4, 0x6211, 0x89E5, 0x7259, + 0x89E6, 0x753B, 0x89E7, 0x81E5, 0x89E8, 0x82BD, 0x89E9, 0x86FE, 0x89EA, 0x8CC0, 0x89EB, 0x96C5, 0x89EC, 0x9913, 0x89ED, 0x99D5, + 0x89EE, 0x4ECB, 0x89EF, 0x4F1A, 0x89F0, 0x89E3, 0x89F1, 0x56DE, 0x89F2, 0x584A, 0x89F3, 0x58CA, 0x89F4, 0x5EFB, 0x89F5, 0x5FEB, + 0x89F6, 0x602A, 0x89F7, 0x6094, 0x89F8, 0x6062, 0x89F9, 0x61D0, 0x89FA, 0x6212, 0x89FB, 0x62D0, 0x89FC, 0x6539, 0x8A40, 0x9B41, + 0x8A41, 0x6666, 0x8A42, 0x68B0, 0x8A43, 0x6D77, 0x8A44, 0x7070, 0x8A45, 0x754C, 0x8A46, 0x7686, 0x8A47, 0x7D75, 0x8A48, 0x82A5, + 0x8A49, 0x87F9, 0x8A4A, 0x958B, 0x8A4B, 0x968E, 0x8A4C, 0x8C9D, 0x8A4D, 0x51F1, 0x8A4E, 0x52BE, 0x8A4F, 0x5916, 0x8A50, 0x54B3, + 0x8A51, 0x5BB3, 0x8A52, 0x5D16, 0x8A53, 0x6168, 0x8A54, 0x6982, 0x8A55, 0x6DAF, 0x8A56, 0x788D, 0x8A57, 0x84CB, 0x8A58, 0x8857, + 0x8A59, 0x8A72, 0x8A5A, 0x93A7, 0x8A5B, 0x9AB8, 0x8A5C, 0x6D6C, 0x8A5D, 0x99A8, 0x8A5E, 0x86D9, 0x8A5F, 0x57A3, 0x8A60, 0x67FF, + 0x8A61, 0x86CE, 0x8A62, 0x920E, 0x8A63, 0x5283, 0x8A64, 0x5687, 0x8A65, 0x5404, 0x8A66, 0x5ED3, 0x8A67, 0x62E1, 0x8A68, 0x64B9, + 0x8A69, 0x683C, 0x8A6A, 0x6838, 0x8A6B, 0x6BBB, 0x8A6C, 0x7372, 0x8A6D, 0x78BA, 0x8A6E, 0x7A6B, 0x8A6F, 0x899A, 0x8A70, 0x89D2, + 0x8A71, 0x8D6B, 0x8A72, 0x8F03, 0x8A73, 0x90ED, 0x8A74, 0x95A3, 0x8A75, 0x9694, 0x8A76, 0x9769, 0x8A77, 0x5B66, 0x8A78, 0x5CB3, + 0x8A79, 0x697D, 0x8A7A, 0x984D, 0x8A7B, 0x984E, 0x8A7C, 0x639B, 0x8A7D, 0x7B20, 0x8A7E, 0x6A2B, 0x8A80, 0x6A7F, 0x8A81, 0x68B6, + 0x8A82, 0x9C0D, 0x8A83, 0x6F5F, 0x8A84, 0x5272, 0x8A85, 0x559D, 0x8A86, 0x6070, 0x8A87, 0x62EC, 0x8A88, 0x6D3B, 0x8A89, 0x6E07, + 0x8A8A, 0x6ED1, 0x8A8B, 0x845B, 0x8A8C, 0x8910, 0x8A8D, 0x8F44, 0x8A8E, 0x4E14, 0x8A8F, 0x9C39, 0x8A90, 0x53F6, 0x8A91, 0x691B, + 0x8A92, 0x6A3A, 0x8A93, 0x9784, 0x8A94, 0x682A, 0x8A95, 0x515C, 0x8A96, 0x7AC3, 0x8A97, 0x84B2, 0x8A98, 0x91DC, 0x8A99, 0x938C, + 0x8A9A, 0x565B, 0x8A9B, 0x9D28, 0x8A9C, 0x6822, 0x8A9D, 0x8305, 0x8A9E, 0x8431, 0x8A9F, 0x7CA5, 0x8AA0, 0x5208, 0x8AA1, 0x82C5, + 0x8AA2, 0x74E6, 0x8AA3, 0x4E7E, 0x8AA4, 0x4F83, 0x8AA5, 0x51A0, 0x8AA6, 0x5BD2, 0x8AA7, 0x520A, 0x8AA8, 0x52D8, 0x8AA9, 0x52E7, + 0x8AAA, 0x5DFB, 0x8AAB, 0x559A, 0x8AAC, 0x582A, 0x8AAD, 0x59E6, 0x8AAE, 0x5B8C, 0x8AAF, 0x5B98, 0x8AB0, 0x5BDB, 0x8AB1, 0x5E72, + 0x8AB2, 0x5E79, 0x8AB3, 0x60A3, 0x8AB4, 0x611F, 0x8AB5, 0x6163, 0x8AB6, 0x61BE, 0x8AB7, 0x63DB, 0x8AB8, 0x6562, 0x8AB9, 0x67D1, + 0x8ABA, 0x6853, 0x8ABB, 0x68FA, 0x8ABC, 0x6B3E, 0x8ABD, 0x6B53, 0x8ABE, 0x6C57, 0x8ABF, 0x6F22, 0x8AC0, 0x6F97, 0x8AC1, 0x6F45, + 0x8AC2, 0x74B0, 0x8AC3, 0x7518, 0x8AC4, 0x76E3, 0x8AC5, 0x770B, 0x8AC6, 0x7AFF, 0x8AC7, 0x7BA1, 0x8AC8, 0x7C21, 0x8AC9, 0x7DE9, + 0x8ACA, 0x7F36, 0x8ACB, 0x7FF0, 0x8ACC, 0x809D, 0x8ACD, 0x8266, 0x8ACE, 0x839E, 0x8ACF, 0x89B3, 0x8AD0, 0x8ACC, 0x8AD1, 0x8CAB, + 0x8AD2, 0x9084, 0x8AD3, 0x9451, 0x8AD4, 0x9593, 0x8AD5, 0x9591, 0x8AD6, 0x95A2, 0x8AD7, 0x9665, 0x8AD8, 0x97D3, 0x8AD9, 0x9928, + 0x8ADA, 0x8218, 0x8ADB, 0x4E38, 0x8ADC, 0x542B, 0x8ADD, 0x5CB8, 0x8ADE, 0x5DCC, 0x8ADF, 0x73A9, 0x8AE0, 0x764C, 0x8AE1, 0x773C, + 0x8AE2, 0x5CA9, 0x8AE3, 0x7FEB, 0x8AE4, 0x8D0B, 0x8AE5, 0x96C1, 0x8AE6, 0x9811, 0x8AE7, 0x9854, 0x8AE8, 0x9858, 0x8AE9, 0x4F01, + 0x8AEA, 0x4F0E, 0x8AEB, 0x5371, 0x8AEC, 0x559C, 0x8AED, 0x5668, 0x8AEE, 0x57FA, 0x8AEF, 0x5947, 0x8AF0, 0x5B09, 0x8AF1, 0x5BC4, + 0x8AF2, 0x5C90, 0x8AF3, 0x5E0C, 0x8AF4, 0x5E7E, 0x8AF5, 0x5FCC, 0x8AF6, 0x63EE, 0x8AF7, 0x673A, 0x8AF8, 0x65D7, 0x8AF9, 0x65E2, + 0x8AFA, 0x671F, 0x8AFB, 0x68CB, 0x8AFC, 0x68C4, 0x8B40, 0x6A5F, 0x8B41, 0x5E30, 0x8B42, 0x6BC5, 0x8B43, 0x6C17, 0x8B44, 0x6C7D, + 0x8B45, 0x757F, 0x8B46, 0x7948, 0x8B47, 0x5B63, 0x8B48, 0x7A00, 0x8B49, 0x7D00, 0x8B4A, 0x5FBD, 0x8B4B, 0x898F, 0x8B4C, 0x8A18, + 0x8B4D, 0x8CB4, 0x8B4E, 0x8D77, 0x8B4F, 0x8ECC, 0x8B50, 0x8F1D, 0x8B51, 0x98E2, 0x8B52, 0x9A0E, 0x8B53, 0x9B3C, 0x8B54, 0x4E80, + 0x8B55, 0x507D, 0x8B56, 0x5100, 0x8B57, 0x5993, 0x8B58, 0x5B9C, 0x8B59, 0x622F, 0x8B5A, 0x6280, 0x8B5B, 0x64EC, 0x8B5C, 0x6B3A, + 0x8B5D, 0x72A0, 0x8B5E, 0x7591, 0x8B5F, 0x7947, 0x8B60, 0x7FA9, 0x8B61, 0x87FB, 0x8B62, 0x8ABC, 0x8B63, 0x8B70, 0x8B64, 0x63AC, + 0x8B65, 0x83CA, 0x8B66, 0x97A0, 0x8B67, 0x5409, 0x8B68, 0x5403, 0x8B69, 0x55AB, 0x8B6A, 0x6854, 0x8B6B, 0x6A58, 0x8B6C, 0x8A70, + 0x8B6D, 0x7827, 0x8B6E, 0x6775, 0x8B6F, 0x9ECD, 0x8B70, 0x5374, 0x8B71, 0x5BA2, 0x8B72, 0x811A, 0x8B73, 0x8650, 0x8B74, 0x9006, + 0x8B75, 0x4E18, 0x8B76, 0x4E45, 0x8B77, 0x4EC7, 0x8B78, 0x4F11, 0x8B79, 0x53CA, 0x8B7A, 0x5438, 0x8B7B, 0x5BAE, 0x8B7C, 0x5F13, + 0x8B7D, 0x6025, 0x8B7E, 0x6551, 0x8B80, 0x673D, 0x8B81, 0x6C42, 0x8B82, 0x6C72, 0x8B83, 0x6CE3, 0x8B84, 0x7078, 0x8B85, 0x7403, + 0x8B86, 0x7A76, 0x8B87, 0x7AAE, 0x8B88, 0x7B08, 0x8B89, 0x7D1A, 0x8B8A, 0x7CFE, 0x8B8B, 0x7D66, 0x8B8C, 0x65E7, 0x8B8D, 0x725B, + 0x8B8E, 0x53BB, 0x8B8F, 0x5C45, 0x8B90, 0x5DE8, 0x8B91, 0x62D2, 0x8B92, 0x62E0, 0x8B93, 0x6319, 0x8B94, 0x6E20, 0x8B95, 0x865A, + 0x8B96, 0x8A31, 0x8B97, 0x8DDD, 0x8B98, 0x92F8, 0x8B99, 0x6F01, 0x8B9A, 0x79A6, 0x8B9B, 0x9B5A, 0x8B9C, 0x4EA8, 0x8B9D, 0x4EAB, + 0x8B9E, 0x4EAC, 0x8B9F, 0x4F9B, 0x8BA0, 0x4FA0, 0x8BA1, 0x50D1, 0x8BA2, 0x5147, 0x8BA3, 0x7AF6, 0x8BA4, 0x5171, 0x8BA5, 0x51F6, + 0x8BA6, 0x5354, 0x8BA7, 0x5321, 0x8BA8, 0x537F, 0x8BA9, 0x53EB, 0x8BAA, 0x55AC, 0x8BAB, 0x5883, 0x8BAC, 0x5CE1, 0x8BAD, 0x5F37, + 0x8BAE, 0x5F4A, 0x8BAF, 0x602F, 0x8BB0, 0x6050, 0x8BB1, 0x606D, 0x8BB2, 0x631F, 0x8BB3, 0x6559, 0x8BB4, 0x6A4B, 0x8BB5, 0x6CC1, + 0x8BB6, 0x72C2, 0x8BB7, 0x72ED, 0x8BB8, 0x77EF, 0x8BB9, 0x80F8, 0x8BBA, 0x8105, 0x8BBB, 0x8208, 0x8BBC, 0x854E, 0x8BBD, 0x90F7, + 0x8BBE, 0x93E1, 0x8BBF, 0x97FF, 0x8BC0, 0x9957, 0x8BC1, 0x9A5A, 0x8BC2, 0x4EF0, 0x8BC3, 0x51DD, 0x8BC4, 0x5C2D, 0x8BC5, 0x6681, + 0x8BC6, 0x696D, 0x8BC7, 0x5C40, 0x8BC8, 0x66F2, 0x8BC9, 0x6975, 0x8BCA, 0x7389, 0x8BCB, 0x6850, 0x8BCC, 0x7C81, 0x8BCD, 0x50C5, + 0x8BCE, 0x52E4, 0x8BCF, 0x5747, 0x8BD0, 0x5DFE, 0x8BD1, 0x9326, 0x8BD2, 0x65A4, 0x8BD3, 0x6B23, 0x8BD4, 0x6B3D, 0x8BD5, 0x7434, + 0x8BD6, 0x7981, 0x8BD7, 0x79BD, 0x8BD8, 0x7B4B, 0x8BD9, 0x7DCA, 0x8BDA, 0x82B9, 0x8BDB, 0x83CC, 0x8BDC, 0x887F, 0x8BDD, 0x895F, + 0x8BDE, 0x8B39, 0x8BDF, 0x8FD1, 0x8BE0, 0x91D1, 0x8BE1, 0x541F, 0x8BE2, 0x9280, 0x8BE3, 0x4E5D, 0x8BE4, 0x5036, 0x8BE5, 0x53E5, + 0x8BE6, 0x533A, 0x8BE7, 0x72D7, 0x8BE8, 0x7396, 0x8BE9, 0x77E9, 0x8BEA, 0x82E6, 0x8BEB, 0x8EAF, 0x8BEC, 0x99C6, 0x8BED, 0x99C8, + 0x8BEE, 0x99D2, 0x8BEF, 0x5177, 0x8BF0, 0x611A, 0x8BF1, 0x865E, 0x8BF2, 0x55B0, 0x8BF3, 0x7A7A, 0x8BF4, 0x5076, 0x8BF5, 0x5BD3, + 0x8BF6, 0x9047, 0x8BF7, 0x9685, 0x8BF8, 0x4E32, 0x8BF9, 0x6ADB, 0x8BFA, 0x91E7, 0x8BFB, 0x5C51, 0x8BFC, 0x5C48, 0x8C40, 0x6398, + 0x8C41, 0x7A9F, 0x8C42, 0x6C93, 0x8C43, 0x9774, 0x8C44, 0x8F61, 0x8C45, 0x7AAA, 0x8C46, 0x718A, 0x8C47, 0x9688, 0x8C48, 0x7C82, + 0x8C49, 0x6817, 0x8C4A, 0x7E70, 0x8C4B, 0x6851, 0x8C4C, 0x936C, 0x8C4D, 0x52F2, 0x8C4E, 0x541B, 0x8C4F, 0x85AB, 0x8C50, 0x8A13, + 0x8C51, 0x7FA4, 0x8C52, 0x8ECD, 0x8C53, 0x90E1, 0x8C54, 0x5366, 0x8C55, 0x8888, 0x8C56, 0x7941, 0x8C57, 0x4FC2, 0x8C58, 0x50BE, + 0x8C59, 0x5211, 0x8C5A, 0x5144, 0x8C5B, 0x5553, 0x8C5C, 0x572D, 0x8C5D, 0x73EA, 0x8C5E, 0x578B, 0x8C5F, 0x5951, 0x8C60, 0x5F62, + 0x8C61, 0x5F84, 0x8C62, 0x6075, 0x8C63, 0x6176, 0x8C64, 0x6167, 0x8C65, 0x61A9, 0x8C66, 0x63B2, 0x8C67, 0x643A, 0x8C68, 0x656C, + 0x8C69, 0x666F, 0x8C6A, 0x6842, 0x8C6B, 0x6E13, 0x8C6C, 0x7566, 0x8C6D, 0x7A3D, 0x8C6E, 0x7CFB, 0x8C6F, 0x7D4C, 0x8C70, 0x7D99, + 0x8C71, 0x7E4B, 0x8C72, 0x7F6B, 0x8C73, 0x830E, 0x8C74, 0x834A, 0x8C75, 0x86CD, 0x8C76, 0x8A08, 0x8C77, 0x8A63, 0x8C78, 0x8B66, + 0x8C79, 0x8EFD, 0x8C7A, 0x981A, 0x8C7B, 0x9D8F, 0x8C7C, 0x82B8, 0x8C7D, 0x8FCE, 0x8C7E, 0x9BE8, 0x8C80, 0x5287, 0x8C81, 0x621F, + 0x8C82, 0x6483, 0x8C83, 0x6FC0, 0x8C84, 0x9699, 0x8C85, 0x6841, 0x8C86, 0x5091, 0x8C87, 0x6B20, 0x8C88, 0x6C7A, 0x8C89, 0x6F54, + 0x8C8A, 0x7A74, 0x8C8B, 0x7D50, 0x8C8C, 0x8840, 0x8C8D, 0x8A23, 0x8C8E, 0x6708, 0x8C8F, 0x4EF6, 0x8C90, 0x5039, 0x8C91, 0x5026, + 0x8C92, 0x5065, 0x8C93, 0x517C, 0x8C94, 0x5238, 0x8C95, 0x5263, 0x8C96, 0x55A7, 0x8C97, 0x570F, 0x8C98, 0x5805, 0x8C99, 0x5ACC, + 0x8C9A, 0x5EFA, 0x8C9B, 0x61B2, 0x8C9C, 0x61F8, 0x8C9D, 0x62F3, 0x8C9E, 0x6372, 0x8C9F, 0x691C, 0x8CA0, 0x6A29, 0x8CA1, 0x727D, + 0x8CA2, 0x72AC, 0x8CA3, 0x732E, 0x8CA4, 0x7814, 0x8CA5, 0x786F, 0x8CA6, 0x7D79, 0x8CA7, 0x770C, 0x8CA8, 0x80A9, 0x8CA9, 0x898B, + 0x8CAA, 0x8B19, 0x8CAB, 0x8CE2, 0x8CAC, 0x8ED2, 0x8CAD, 0x9063, 0x8CAE, 0x9375, 0x8CAF, 0x967A, 0x8CB0, 0x9855, 0x8CB1, 0x9A13, + 0x8CB2, 0x9E78, 0x8CB3, 0x5143, 0x8CB4, 0x539F, 0x8CB5, 0x53B3, 0x8CB6, 0x5E7B, 0x8CB7, 0x5F26, 0x8CB8, 0x6E1B, 0x8CB9, 0x6E90, + 0x8CBA, 0x7384, 0x8CBB, 0x73FE, 0x8CBC, 0x7D43, 0x8CBD, 0x8237, 0x8CBE, 0x8A00, 0x8CBF, 0x8AFA, 0x8CC0, 0x9650, 0x8CC1, 0x4E4E, + 0x8CC2, 0x500B, 0x8CC3, 0x53E4, 0x8CC4, 0x547C, 0x8CC5, 0x56FA, 0x8CC6, 0x59D1, 0x8CC7, 0x5B64, 0x8CC8, 0x5DF1, 0x8CC9, 0x5EAB, + 0x8CCA, 0x5F27, 0x8CCB, 0x6238, 0x8CCC, 0x6545, 0x8CCD, 0x67AF, 0x8CCE, 0x6E56, 0x8CCF, 0x72D0, 0x8CD0, 0x7CCA, 0x8CD1, 0x88B4, + 0x8CD2, 0x80A1, 0x8CD3, 0x80E1, 0x8CD4, 0x83F0, 0x8CD5, 0x864E, 0x8CD6, 0x8A87, 0x8CD7, 0x8DE8, 0x8CD8, 0x9237, 0x8CD9, 0x96C7, + 0x8CDA, 0x9867, 0x8CDB, 0x9F13, 0x8CDC, 0x4E94, 0x8CDD, 0x4E92, 0x8CDE, 0x4F0D, 0x8CDF, 0x5348, 0x8CE0, 0x5449, 0x8CE1, 0x543E, + 0x8CE2, 0x5A2F, 0x8CE3, 0x5F8C, 0x8CE4, 0x5FA1, 0x8CE5, 0x609F, 0x8CE6, 0x68A7, 0x8CE7, 0x6A8E, 0x8CE8, 0x745A, 0x8CE9, 0x7881, + 0x8CEA, 0x8A9E, 0x8CEB, 0x8AA4, 0x8CEC, 0x8B77, 0x8CED, 0x9190, 0x8CEE, 0x4E5E, 0x8CEF, 0x9BC9, 0x8CF0, 0x4EA4, 0x8CF1, 0x4F7C, + 0x8CF2, 0x4FAF, 0x8CF3, 0x5019, 0x8CF4, 0x5016, 0x8CF5, 0x5149, 0x8CF6, 0x516C, 0x8CF7, 0x529F, 0x8CF8, 0x52B9, 0x8CF9, 0x52FE, + 0x8CFA, 0x539A, 0x8CFB, 0x53E3, 0x8CFC, 0x5411, 0x8D40, 0x540E, 0x8D41, 0x5589, 0x8D42, 0x5751, 0x8D43, 0x57A2, 0x8D44, 0x597D, + 0x8D45, 0x5B54, 0x8D46, 0x5B5D, 0x8D47, 0x5B8F, 0x8D48, 0x5DE5, 0x8D49, 0x5DE7, 0x8D4A, 0x5DF7, 0x8D4B, 0x5E78, 0x8D4C, 0x5E83, + 0x8D4D, 0x5E9A, 0x8D4E, 0x5EB7, 0x8D4F, 0x5F18, 0x8D50, 0x6052, 0x8D51, 0x614C, 0x8D52, 0x6297, 0x8D53, 0x62D8, 0x8D54, 0x63A7, + 0x8D55, 0x653B, 0x8D56, 0x6602, 0x8D57, 0x6643, 0x8D58, 0x66F4, 0x8D59, 0x676D, 0x8D5A, 0x6821, 0x8D5B, 0x6897, 0x8D5C, 0x69CB, + 0x8D5D, 0x6C5F, 0x8D5E, 0x6D2A, 0x8D5F, 0x6D69, 0x8D60, 0x6E2F, 0x8D61, 0x6E9D, 0x8D62, 0x7532, 0x8D63, 0x7687, 0x8D64, 0x786C, + 0x8D65, 0x7A3F, 0x8D66, 0x7CE0, 0x8D67, 0x7D05, 0x8D68, 0x7D18, 0x8D69, 0x7D5E, 0x8D6A, 0x7DB1, 0x8D6B, 0x8015, 0x8D6C, 0x8003, + 0x8D6D, 0x80AF, 0x8D6E, 0x80B1, 0x8D6F, 0x8154, 0x8D70, 0x818F, 0x8D71, 0x822A, 0x8D72, 0x8352, 0x8D73, 0x884C, 0x8D74, 0x8861, + 0x8D75, 0x8B1B, 0x8D76, 0x8CA2, 0x8D77, 0x8CFC, 0x8D78, 0x90CA, 0x8D79, 0x9175, 0x8D7A, 0x9271, 0x8D7B, 0x783F, 0x8D7C, 0x92FC, + 0x8D7D, 0x95A4, 0x8D7E, 0x964D, 0x8D80, 0x9805, 0x8D81, 0x9999, 0x8D82, 0x9AD8, 0x8D83, 0x9D3B, 0x8D84, 0x525B, 0x8D85, 0x52AB, + 0x8D86, 0x53F7, 0x8D87, 0x5408, 0x8D88, 0x58D5, 0x8D89, 0x62F7, 0x8D8A, 0x6FE0, 0x8D8B, 0x8C6A, 0x8D8C, 0x8F5F, 0x8D8D, 0x9EB9, + 0x8D8E, 0x514B, 0x8D8F, 0x523B, 0x8D90, 0x544A, 0x8D91, 0x56FD, 0x8D92, 0x7A40, 0x8D93, 0x9177, 0x8D94, 0x9D60, 0x8D95, 0x9ED2, + 0x8D96, 0x7344, 0x8D97, 0x6F09, 0x8D98, 0x8170, 0x8D99, 0x7511, 0x8D9A, 0x5FFD, 0x8D9B, 0x60DA, 0x8D9C, 0x9AA8, 0x8D9D, 0x72DB, + 0x8D9E, 0x8FBC, 0x8D9F, 0x6B64, 0x8DA0, 0x9803, 0x8DA1, 0x4ECA, 0x8DA2, 0x56F0, 0x8DA3, 0x5764, 0x8DA4, 0x58BE, 0x8DA5, 0x5A5A, + 0x8DA6, 0x6068, 0x8DA7, 0x61C7, 0x8DA8, 0x660F, 0x8DA9, 0x6606, 0x8DAA, 0x6839, 0x8DAB, 0x68B1, 0x8DAC, 0x6DF7, 0x8DAD, 0x75D5, + 0x8DAE, 0x7D3A, 0x8DAF, 0x826E, 0x8DB0, 0x9B42, 0x8DB1, 0x4E9B, 0x8DB2, 0x4F50, 0x8DB3, 0x53C9, 0x8DB4, 0x5506, 0x8DB5, 0x5D6F, + 0x8DB6, 0x5DE6, 0x8DB7, 0x5DEE, 0x8DB8, 0x67FB, 0x8DB9, 0x6C99, 0x8DBA, 0x7473, 0x8DBB, 0x7802, 0x8DBC, 0x8A50, 0x8DBD, 0x9396, + 0x8DBE, 0x88DF, 0x8DBF, 0x5750, 0x8DC0, 0x5EA7, 0x8DC1, 0x632B, 0x8DC2, 0x50B5, 0x8DC3, 0x50AC, 0x8DC4, 0x518D, 0x8DC5, 0x6700, + 0x8DC6, 0x54C9, 0x8DC7, 0x585E, 0x8DC8, 0x59BB, 0x8DC9, 0x5BB0, 0x8DCA, 0x5F69, 0x8DCB, 0x624D, 0x8DCC, 0x63A1, 0x8DCD, 0x683D, + 0x8DCE, 0x6B73, 0x8DCF, 0x6E08, 0x8DD0, 0x707D, 0x8DD1, 0x91C7, 0x8DD2, 0x7280, 0x8DD3, 0x7815, 0x8DD4, 0x7826, 0x8DD5, 0x796D, + 0x8DD6, 0x658E, 0x8DD7, 0x7D30, 0x8DD8, 0x83DC, 0x8DD9, 0x88C1, 0x8DDA, 0x8F09, 0x8DDB, 0x969B, 0x8DDC, 0x5264, 0x8DDD, 0x5728, + 0x8DDE, 0x6750, 0x8DDF, 0x7F6A, 0x8DE0, 0x8CA1, 0x8DE1, 0x51B4, 0x8DE2, 0x5742, 0x8DE3, 0x962A, 0x8DE4, 0x583A, 0x8DE5, 0x698A, + 0x8DE6, 0x80B4, 0x8DE7, 0x54B2, 0x8DE8, 0x5D0E, 0x8DE9, 0x57FC, 0x8DEA, 0x7895, 0x8DEB, 0x9DFA, 0x8DEC, 0x4F5C, 0x8DED, 0x524A, + 0x8DEE, 0x548B, 0x8DEF, 0x643E, 0x8DF0, 0x6628, 0x8DF1, 0x6714, 0x8DF2, 0x67F5, 0x8DF3, 0x7A84, 0x8DF4, 0x7B56, 0x8DF5, 0x7D22, + 0x8DF6, 0x932F, 0x8DF7, 0x685C, 0x8DF8, 0x9BAD, 0x8DF9, 0x7B39, 0x8DFA, 0x5319, 0x8DFB, 0x518A, 0x8DFC, 0x5237, 0x8E40, 0x5BDF, + 0x8E41, 0x62F6, 0x8E42, 0x64AE, 0x8E43, 0x64E6, 0x8E44, 0x672D, 0x8E45, 0x6BBA, 0x8E46, 0x85A9, 0x8E47, 0x96D1, 0x8E48, 0x7690, + 0x8E49, 0x9BD6, 0x8E4A, 0x634C, 0x8E4B, 0x9306, 0x8E4C, 0x9BAB, 0x8E4D, 0x76BF, 0x8E4E, 0x6652, 0x8E4F, 0x4E09, 0x8E50, 0x5098, + 0x8E51, 0x53C2, 0x8E52, 0x5C71, 0x8E53, 0x60E8, 0x8E54, 0x6492, 0x8E55, 0x6563, 0x8E56, 0x685F, 0x8E57, 0x71E6, 0x8E58, 0x73CA, + 0x8E59, 0x7523, 0x8E5A, 0x7B97, 0x8E5B, 0x7E82, 0x8E5C, 0x8695, 0x8E5D, 0x8B83, 0x8E5E, 0x8CDB, 0x8E5F, 0x9178, 0x8E60, 0x9910, + 0x8E61, 0x65AC, 0x8E62, 0x66AB, 0x8E63, 0x6B8B, 0x8E64, 0x4ED5, 0x8E65, 0x4ED4, 0x8E66, 0x4F3A, 0x8E67, 0x4F7F, 0x8E68, 0x523A, + 0x8E69, 0x53F8, 0x8E6A, 0x53F2, 0x8E6B, 0x55E3, 0x8E6C, 0x56DB, 0x8E6D, 0x58EB, 0x8E6E, 0x59CB, 0x8E6F, 0x59C9, 0x8E70, 0x59FF, + 0x8E71, 0x5B50, 0x8E72, 0x5C4D, 0x8E73, 0x5E02, 0x8E74, 0x5E2B, 0x8E75, 0x5FD7, 0x8E76, 0x601D, 0x8E77, 0x6307, 0x8E78, 0x652F, + 0x8E79, 0x5B5C, 0x8E7A, 0x65AF, 0x8E7B, 0x65BD, 0x8E7C, 0x65E8, 0x8E7D, 0x679D, 0x8E7E, 0x6B62, 0x8E80, 0x6B7B, 0x8E81, 0x6C0F, + 0x8E82, 0x7345, 0x8E83, 0x7949, 0x8E84, 0x79C1, 0x8E85, 0x7CF8, 0x8E86, 0x7D19, 0x8E87, 0x7D2B, 0x8E88, 0x80A2, 0x8E89, 0x8102, + 0x8E8A, 0x81F3, 0x8E8B, 0x8996, 0x8E8C, 0x8A5E, 0x8E8D, 0x8A69, 0x8E8E, 0x8A66, 0x8E8F, 0x8A8C, 0x8E90, 0x8AEE, 0x8E91, 0x8CC7, + 0x8E92, 0x8CDC, 0x8E93, 0x96CC, 0x8E94, 0x98FC, 0x8E95, 0x6B6F, 0x8E96, 0x4E8B, 0x8E97, 0x4F3C, 0x8E98, 0x4F8D, 0x8E99, 0x5150, + 0x8E9A, 0x5B57, 0x8E9B, 0x5BFA, 0x8E9C, 0x6148, 0x8E9D, 0x6301, 0x8E9E, 0x6642, 0x8E9F, 0x6B21, 0x8EA0, 0x6ECB, 0x8EA1, 0x6CBB, + 0x8EA2, 0x723E, 0x8EA3, 0x74BD, 0x8EA4, 0x75D4, 0x8EA5, 0x78C1, 0x8EA6, 0x793A, 0x8EA7, 0x800C, 0x8EA8, 0x8033, 0x8EA9, 0x81EA, + 0x8EAA, 0x8494, 0x8EAB, 0x8F9E, 0x8EAC, 0x6C50, 0x8EAD, 0x9E7F, 0x8EAE, 0x5F0F, 0x8EAF, 0x8B58, 0x8EB0, 0x9D2B, 0x8EB1, 0x7AFA, + 0x8EB2, 0x8EF8, 0x8EB3, 0x5B8D, 0x8EB4, 0x96EB, 0x8EB5, 0x4E03, 0x8EB6, 0x53F1, 0x8EB7, 0x57F7, 0x8EB8, 0x5931, 0x8EB9, 0x5AC9, + 0x8EBA, 0x5BA4, 0x8EBB, 0x6089, 0x8EBC, 0x6E7F, 0x8EBD, 0x6F06, 0x8EBE, 0x75BE, 0x8EBF, 0x8CEA, 0x8EC0, 0x5B9F, 0x8EC1, 0x8500, + 0x8EC2, 0x7BE0, 0x8EC3, 0x5072, 0x8EC4, 0x67F4, 0x8EC5, 0x829D, 0x8EC6, 0x5C61, 0x8EC7, 0x854A, 0x8EC8, 0x7E1E, 0x8EC9, 0x820E, + 0x8ECA, 0x5199, 0x8ECB, 0x5C04, 0x8ECC, 0x6368, 0x8ECD, 0x8D66, 0x8ECE, 0x659C, 0x8ECF, 0x716E, 0x8ED0, 0x793E, 0x8ED1, 0x7D17, + 0x8ED2, 0x8005, 0x8ED3, 0x8B1D, 0x8ED4, 0x8ECA, 0x8ED5, 0x906E, 0x8ED6, 0x86C7, 0x8ED7, 0x90AA, 0x8ED8, 0x501F, 0x8ED9, 0x52FA, + 0x8EDA, 0x5C3A, 0x8EDB, 0x6753, 0x8EDC, 0x707C, 0x8EDD, 0x7235, 0x8EDE, 0x914C, 0x8EDF, 0x91C8, 0x8EE0, 0x932B, 0x8EE1, 0x82E5, + 0x8EE2, 0x5BC2, 0x8EE3, 0x5F31, 0x8EE4, 0x60F9, 0x8EE5, 0x4E3B, 0x8EE6, 0x53D6, 0x8EE7, 0x5B88, 0x8EE8, 0x624B, 0x8EE9, 0x6731, + 0x8EEA, 0x6B8A, 0x8EEB, 0x72E9, 0x8EEC, 0x73E0, 0x8EED, 0x7A2E, 0x8EEE, 0x816B, 0x8EEF, 0x8DA3, 0x8EF0, 0x9152, 0x8EF1, 0x9996, + 0x8EF2, 0x5112, 0x8EF3, 0x53D7, 0x8EF4, 0x546A, 0x8EF5, 0x5BFF, 0x8EF6, 0x6388, 0x8EF7, 0x6A39, 0x8EF8, 0x7DAC, 0x8EF9, 0x9700, + 0x8EFA, 0x56DA, 0x8EFB, 0x53CE, 0x8EFC, 0x5468, 0x8F40, 0x5B97, 0x8F41, 0x5C31, 0x8F42, 0x5DDE, 0x8F43, 0x4FEE, 0x8F44, 0x6101, + 0x8F45, 0x62FE, 0x8F46, 0x6D32, 0x8F47, 0x79C0, 0x8F48, 0x79CB, 0x8F49, 0x7D42, 0x8F4A, 0x7E4D, 0x8F4B, 0x7FD2, 0x8F4C, 0x81ED, + 0x8F4D, 0x821F, 0x8F4E, 0x8490, 0x8F4F, 0x8846, 0x8F50, 0x8972, 0x8F51, 0x8B90, 0x8F52, 0x8E74, 0x8F53, 0x8F2F, 0x8F54, 0x9031, + 0x8F55, 0x914B, 0x8F56, 0x916C, 0x8F57, 0x96C6, 0x8F58, 0x919C, 0x8F59, 0x4EC0, 0x8F5A, 0x4F4F, 0x8F5B, 0x5145, 0x8F5C, 0x5341, + 0x8F5D, 0x5F93, 0x8F5E, 0x620E, 0x8F5F, 0x67D4, 0x8F60, 0x6C41, 0x8F61, 0x6E0B, 0x8F62, 0x7363, 0x8F63, 0x7E26, 0x8F64, 0x91CD, + 0x8F65, 0x9283, 0x8F66, 0x53D4, 0x8F67, 0x5919, 0x8F68, 0x5BBF, 0x8F69, 0x6DD1, 0x8F6A, 0x795D, 0x8F6B, 0x7E2E, 0x8F6C, 0x7C9B, + 0x8F6D, 0x587E, 0x8F6E, 0x719F, 0x8F6F, 0x51FA, 0x8F70, 0x8853, 0x8F71, 0x8FF0, 0x8F72, 0x4FCA, 0x8F73, 0x5CFB, 0x8F74, 0x6625, + 0x8F75, 0x77AC, 0x8F76, 0x7AE3, 0x8F77, 0x821C, 0x8F78, 0x99FF, 0x8F79, 0x51C6, 0x8F7A, 0x5FAA, 0x8F7B, 0x65EC, 0x8F7C, 0x696F, + 0x8F7D, 0x6B89, 0x8F7E, 0x6DF3, 0x8F80, 0x6E96, 0x8F81, 0x6F64, 0x8F82, 0x76FE, 0x8F83, 0x7D14, 0x8F84, 0x5DE1, 0x8F85, 0x9075, + 0x8F86, 0x9187, 0x8F87, 0x9806, 0x8F88, 0x51E6, 0x8F89, 0x521D, 0x8F8A, 0x6240, 0x8F8B, 0x6691, 0x8F8C, 0x66D9, 0x8F8D, 0x6E1A, + 0x8F8E, 0x5EB6, 0x8F8F, 0x7DD2, 0x8F90, 0x7F72, 0x8F91, 0x66F8, 0x8F92, 0x85AF, 0x8F93, 0x85F7, 0x8F94, 0x8AF8, 0x8F95, 0x52A9, + 0x8F96, 0x53D9, 0x8F97, 0x5973, 0x8F98, 0x5E8F, 0x8F99, 0x5F90, 0x8F9A, 0x6055, 0x8F9B, 0x92E4, 0x8F9C, 0x9664, 0x8F9D, 0x50B7, + 0x8F9E, 0x511F, 0x8F9F, 0x52DD, 0x8FA0, 0x5320, 0x8FA1, 0x5347, 0x8FA2, 0x53EC, 0x8FA3, 0x54E8, 0x8FA4, 0x5546, 0x8FA5, 0x5531, + 0x8FA6, 0x5617, 0x8FA7, 0x5968, 0x8FA8, 0x59BE, 0x8FA9, 0x5A3C, 0x8FAA, 0x5BB5, 0x8FAB, 0x5C06, 0x8FAC, 0x5C0F, 0x8FAD, 0x5C11, + 0x8FAE, 0x5C1A, 0x8FAF, 0x5E84, 0x8FB0, 0x5E8A, 0x8FB1, 0x5EE0, 0x8FB2, 0x5F70, 0x8FB3, 0x627F, 0x8FB4, 0x6284, 0x8FB5, 0x62DB, + 0x8FB6, 0x638C, 0x8FB7, 0x6377, 0x8FB8, 0x6607, 0x8FB9, 0x660C, 0x8FBA, 0x662D, 0x8FBB, 0x6676, 0x8FBC, 0x677E, 0x8FBD, 0x68A2, + 0x8FBE, 0x6A1F, 0x8FBF, 0x6A35, 0x8FC0, 0x6CBC, 0x8FC1, 0x6D88, 0x8FC2, 0x6E09, 0x8FC3, 0x6E58, 0x8FC4, 0x713C, 0x8FC5, 0x7126, + 0x8FC6, 0x7167, 0x8FC7, 0x75C7, 0x8FC8, 0x7701, 0x8FC9, 0x785D, 0x8FCA, 0x7901, 0x8FCB, 0x7965, 0x8FCC, 0x79F0, 0x8FCD, 0x7AE0, + 0x8FCE, 0x7B11, 0x8FCF, 0x7CA7, 0x8FD0, 0x7D39, 0x8FD1, 0x8096, 0x8FD2, 0x83D6, 0x8FD3, 0x848B, 0x8FD4, 0x8549, 0x8FD5, 0x885D, + 0x8FD6, 0x88F3, 0x8FD7, 0x8A1F, 0x8FD8, 0x8A3C, 0x8FD9, 0x8A54, 0x8FDA, 0x8A73, 0x8FDB, 0x8C61, 0x8FDC, 0x8CDE, 0x8FDD, 0x91A4, + 0x8FDE, 0x9266, 0x8FDF, 0x937E, 0x8FE0, 0x9418, 0x8FE1, 0x969C, 0x8FE2, 0x9798, 0x8FE3, 0x4E0A, 0x8FE4, 0x4E08, 0x8FE5, 0x4E1E, + 0x8FE6, 0x4E57, 0x8FE7, 0x5197, 0x8FE8, 0x5270, 0x8FE9, 0x57CE, 0x8FEA, 0x5834, 0x8FEB, 0x58CC, 0x8FEC, 0x5B22, 0x8FED, 0x5E38, + 0x8FEE, 0x60C5, 0x8FEF, 0x64FE, 0x8FF0, 0x6761, 0x8FF1, 0x6756, 0x8FF2, 0x6D44, 0x8FF3, 0x72B6, 0x8FF4, 0x7573, 0x8FF5, 0x7A63, + 0x8FF6, 0x84B8, 0x8FF7, 0x8B72, 0x8FF8, 0x91B8, 0x8FF9, 0x9320, 0x8FFA, 0x5631, 0x8FFB, 0x57F4, 0x8FFC, 0x98FE, 0x9040, 0x62ED, + 0x9041, 0x690D, 0x9042, 0x6B96, 0x9043, 0x71ED, 0x9044, 0x7E54, 0x9045, 0x8077, 0x9046, 0x8272, 0x9047, 0x89E6, 0x9048, 0x98DF, + 0x9049, 0x8755, 0x904A, 0x8FB1, 0x904B, 0x5C3B, 0x904C, 0x4F38, 0x904D, 0x4FE1, 0x904E, 0x4FB5, 0x904F, 0x5507, 0x9050, 0x5A20, + 0x9051, 0x5BDD, 0x9052, 0x5BE9, 0x9053, 0x5FC3, 0x9054, 0x614E, 0x9055, 0x632F, 0x9056, 0x65B0, 0x9057, 0x664B, 0x9058, 0x68EE, + 0x9059, 0x699B, 0x905A, 0x6D78, 0x905B, 0x6DF1, 0x905C, 0x7533, 0x905D, 0x75B9, 0x905E, 0x771F, 0x905F, 0x795E, 0x9060, 0x79E6, + 0x9061, 0x7D33, 0x9062, 0x81E3, 0x9063, 0x82AF, 0x9064, 0x85AA, 0x9065, 0x89AA, 0x9066, 0x8A3A, 0x9067, 0x8EAB, 0x9068, 0x8F9B, + 0x9069, 0x9032, 0x906A, 0x91DD, 0x906B, 0x9707, 0x906C, 0x4EBA, 0x906D, 0x4EC1, 0x906E, 0x5203, 0x906F, 0x5875, 0x9070, 0x58EC, + 0x9071, 0x5C0B, 0x9072, 0x751A, 0x9073, 0x5C3D, 0x9074, 0x814E, 0x9075, 0x8A0A, 0x9076, 0x8FC5, 0x9077, 0x9663, 0x9078, 0x976D, + 0x9079, 0x7B25, 0x907A, 0x8ACF, 0x907B, 0x9808, 0x907C, 0x9162, 0x907D, 0x56F3, 0x907E, 0x53A8, 0x9080, 0x9017, 0x9081, 0x5439, + 0x9082, 0x5782, 0x9083, 0x5E25, 0x9084, 0x63A8, 0x9085, 0x6C34, 0x9086, 0x708A, 0x9087, 0x7761, 0x9088, 0x7C8B, 0x9089, 0x7FE0, + 0x908A, 0x8870, 0x908B, 0x9042, 0x908C, 0x9154, 0x908D, 0x9310, 0x908E, 0x9318, 0x908F, 0x968F, 0x9090, 0x745E, 0x9091, 0x9AC4, + 0x9092, 0x5D07, 0x9093, 0x5D69, 0x9094, 0x6570, 0x9095, 0x67A2, 0x9096, 0x8DA8, 0x9097, 0x96DB, 0x9098, 0x636E, 0x9099, 0x6749, + 0x909A, 0x6919, 0x909B, 0x83C5, 0x909C, 0x9817, 0x909D, 0x96C0, 0x909E, 0x88FE, 0x909F, 0x6F84, 0x90A0, 0x647A, 0x90A1, 0x5BF8, + 0x90A2, 0x4E16, 0x90A3, 0x702C, 0x90A4, 0x755D, 0x90A5, 0x662F, 0x90A6, 0x51C4, 0x90A7, 0x5236, 0x90A8, 0x52E2, 0x90A9, 0x59D3, + 0x90AA, 0x5F81, 0x90AB, 0x6027, 0x90AC, 0x6210, 0x90AD, 0x653F, 0x90AE, 0x6574, 0x90AF, 0x661F, 0x90B0, 0x6674, 0x90B1, 0x68F2, + 0x90B2, 0x6816, 0x90B3, 0x6B63, 0x90B4, 0x6E05, 0x90B5, 0x7272, 0x90B6, 0x751F, 0x90B7, 0x76DB, 0x90B8, 0x7CBE, 0x90B9, 0x8056, + 0x90BA, 0x58F0, 0x90BB, 0x88FD, 0x90BC, 0x897F, 0x90BD, 0x8AA0, 0x90BE, 0x8A93, 0x90BF, 0x8ACB, 0x90C0, 0x901D, 0x90C1, 0x9192, + 0x90C2, 0x9752, 0x90C3, 0x9759, 0x90C4, 0x6589, 0x90C5, 0x7A0E, 0x90C6, 0x8106, 0x90C7, 0x96BB, 0x90C8, 0x5E2D, 0x90C9, 0x60DC, + 0x90CA, 0x621A, 0x90CB, 0x65A5, 0x90CC, 0x6614, 0x90CD, 0x6790, 0x90CE, 0x77F3, 0x90CF, 0x7A4D, 0x90D0, 0x7C4D, 0x90D1, 0x7E3E, + 0x90D2, 0x810A, 0x90D3, 0x8CAC, 0x90D4, 0x8D64, 0x90D5, 0x8DE1, 0x90D6, 0x8E5F, 0x90D7, 0x78A9, 0x90D8, 0x5207, 0x90D9, 0x62D9, + 0x90DA, 0x63A5, 0x90DB, 0x6442, 0x90DC, 0x6298, 0x90DD, 0x8A2D, 0x90DE, 0x7A83, 0x90DF, 0x7BC0, 0x90E0, 0x8AAC, 0x90E1, 0x96EA, + 0x90E2, 0x7D76, 0x90E3, 0x820C, 0x90E4, 0x8749, 0x90E5, 0x4ED9, 0x90E6, 0x5148, 0x90E7, 0x5343, 0x90E8, 0x5360, 0x90E9, 0x5BA3, + 0x90EA, 0x5C02, 0x90EB, 0x5C16, 0x90EC, 0x5DDD, 0x90ED, 0x6226, 0x90EE, 0x6247, 0x90EF, 0x64B0, 0x90F0, 0x6813, 0x90F1, 0x6834, + 0x90F2, 0x6CC9, 0x90F3, 0x6D45, 0x90F4, 0x6D17, 0x90F5, 0x67D3, 0x90F6, 0x6F5C, 0x90F7, 0x714E, 0x90F8, 0x717D, 0x90F9, 0x65CB, + 0x90FA, 0x7A7F, 0x90FB, 0x7BAD, 0x90FC, 0x7DDA, 0x9140, 0x7E4A, 0x9141, 0x7FA8, 0x9142, 0x817A, 0x9143, 0x821B, 0x9144, 0x8239, + 0x9145, 0x85A6, 0x9146, 0x8A6E, 0x9147, 0x8CCE, 0x9148, 0x8DF5, 0x9149, 0x9078, 0x914A, 0x9077, 0x914B, 0x92AD, 0x914C, 0x9291, + 0x914D, 0x9583, 0x914E, 0x9BAE, 0x914F, 0x524D, 0x9150, 0x5584, 0x9151, 0x6F38, 0x9152, 0x7136, 0x9153, 0x5168, 0x9154, 0x7985, + 0x9155, 0x7E55, 0x9156, 0x81B3, 0x9157, 0x7CCE, 0x9158, 0x564C, 0x9159, 0x5851, 0x915A, 0x5CA8, 0x915B, 0x63AA, 0x915C, 0x66FE, + 0x915D, 0x66FD, 0x915E, 0x695A, 0x915F, 0x72D9, 0x9160, 0x758F, 0x9161, 0x758E, 0x9162, 0x790E, 0x9163, 0x7956, 0x9164, 0x79DF, + 0x9165, 0x7C97, 0x9166, 0x7D20, 0x9167, 0x7D44, 0x9168, 0x8607, 0x9169, 0x8A34, 0x916A, 0x963B, 0x916B, 0x9061, 0x916C, 0x9F20, + 0x916D, 0x50E7, 0x916E, 0x5275, 0x916F, 0x53CC, 0x9170, 0x53E2, 0x9171, 0x5009, 0x9172, 0x55AA, 0x9173, 0x58EE, 0x9174, 0x594F, + 0x9175, 0x723D, 0x9176, 0x5B8B, 0x9177, 0x5C64, 0x9178, 0x531D, 0x9179, 0x60E3, 0x917A, 0x60F3, 0x917B, 0x635C, 0x917C, 0x6383, + 0x917D, 0x633F, 0x917E, 0x63BB, 0x9180, 0x64CD, 0x9181, 0x65E9, 0x9182, 0x66F9, 0x9183, 0x5DE3, 0x9184, 0x69CD, 0x9185, 0x69FD, + 0x9186, 0x6F15, 0x9187, 0x71E5, 0x9188, 0x4E89, 0x9189, 0x75E9, 0x918A, 0x76F8, 0x918B, 0x7A93, 0x918C, 0x7CDF, 0x918D, 0x7DCF, + 0x918E, 0x7D9C, 0x918F, 0x8061, 0x9190, 0x8349, 0x9191, 0x8358, 0x9192, 0x846C, 0x9193, 0x84BC, 0x9194, 0x85FB, 0x9195, 0x88C5, + 0x9196, 0x8D70, 0x9197, 0x9001, 0x9198, 0x906D, 0x9199, 0x9397, 0x919A, 0x971C, 0x919B, 0x9A12, 0x919C, 0x50CF, 0x919D, 0x5897, + 0x919E, 0x618E, 0x919F, 0x81D3, 0x91A0, 0x8535, 0x91A1, 0x8D08, 0x91A2, 0x9020, 0x91A3, 0x4FC3, 0x91A4, 0x5074, 0x91A5, 0x5247, + 0x91A6, 0x5373, 0x91A7, 0x606F, 0x91A8, 0x6349, 0x91A9, 0x675F, 0x91AA, 0x6E2C, 0x91AB, 0x8DB3, 0x91AC, 0x901F, 0x91AD, 0x4FD7, + 0x91AE, 0x5C5E, 0x91AF, 0x8CCA, 0x91B0, 0x65CF, 0x91B1, 0x7D9A, 0x91B2, 0x5352, 0x91B3, 0x8896, 0x91B4, 0x5176, 0x91B5, 0x63C3, + 0x91B6, 0x5B58, 0x91B7, 0x5B6B, 0x91B8, 0x5C0A, 0x91B9, 0x640D, 0x91BA, 0x6751, 0x91BB, 0x905C, 0x91BC, 0x4ED6, 0x91BD, 0x591A, + 0x91BE, 0x592A, 0x91BF, 0x6C70, 0x91C0, 0x8A51, 0x91C1, 0x553E, 0x91C2, 0x5815, 0x91C3, 0x59A5, 0x91C4, 0x60F0, 0x91C5, 0x6253, + 0x91C6, 0x67C1, 0x91C7, 0x8235, 0x91C8, 0x6955, 0x91C9, 0x9640, 0x91CA, 0x99C4, 0x91CB, 0x9A28, 0x91CC, 0x4F53, 0x91CD, 0x5806, + 0x91CE, 0x5BFE, 0x91CF, 0x8010, 0x91D0, 0x5CB1, 0x91D1, 0x5E2F, 0x91D2, 0x5F85, 0x91D3, 0x6020, 0x91D4, 0x614B, 0x91D5, 0x6234, + 0x91D6, 0x66FF, 0x91D7, 0x6CF0, 0x91D8, 0x6EDE, 0x91D9, 0x80CE, 0x91DA, 0x817F, 0x91DB, 0x82D4, 0x91DC, 0x888B, 0x91DD, 0x8CB8, + 0x91DE, 0x9000, 0x91DF, 0x902E, 0x91E0, 0x968A, 0x91E1, 0x9EDB, 0x91E2, 0x9BDB, 0x91E3, 0x4EE3, 0x91E4, 0x53F0, 0x91E5, 0x5927, + 0x91E6, 0x7B2C, 0x91E7, 0x918D, 0x91E8, 0x984C, 0x91E9, 0x9DF9, 0x91EA, 0x6EDD, 0x91EB, 0x7027, 0x91EC, 0x5353, 0x91ED, 0x5544, + 0x91EE, 0x5B85, 0x91EF, 0x6258, 0x91F0, 0x629E, 0x91F1, 0x62D3, 0x91F2, 0x6CA2, 0x91F3, 0x6FEF, 0x91F4, 0x7422, 0x91F5, 0x8A17, + 0x91F6, 0x9438, 0x91F7, 0x6FC1, 0x91F8, 0x8AFE, 0x91F9, 0x8338, 0x91FA, 0x51E7, 0x91FB, 0x86F8, 0x91FC, 0x53EA, 0x9240, 0x53E9, + 0x9241, 0x4F46, 0x9242, 0x9054, 0x9243, 0x8FB0, 0x9244, 0x596A, 0x9245, 0x8131, 0x9246, 0x5DFD, 0x9247, 0x7AEA, 0x9248, 0x8FBF, + 0x9249, 0x68DA, 0x924A, 0x8C37, 0x924B, 0x72F8, 0x924C, 0x9C48, 0x924D, 0x6A3D, 0x924E, 0x8AB0, 0x924F, 0x4E39, 0x9250, 0x5358, + 0x9251, 0x5606, 0x9252, 0x5766, 0x9253, 0x62C5, 0x9254, 0x63A2, 0x9255, 0x65E6, 0x9256, 0x6B4E, 0x9257, 0x6DE1, 0x9258, 0x6E5B, + 0x9259, 0x70AD, 0x925A, 0x77ED, 0x925B, 0x7AEF, 0x925C, 0x7BAA, 0x925D, 0x7DBB, 0x925E, 0x803D, 0x925F, 0x80C6, 0x9260, 0x86CB, + 0x9261, 0x8A95, 0x9262, 0x935B, 0x9263, 0x56E3, 0x9264, 0x58C7, 0x9265, 0x5F3E, 0x9266, 0x65AD, 0x9267, 0x6696, 0x9268, 0x6A80, + 0x9269, 0x6BB5, 0x926A, 0x7537, 0x926B, 0x8AC7, 0x926C, 0x5024, 0x926D, 0x77E5, 0x926E, 0x5730, 0x926F, 0x5F1B, 0x9270, 0x6065, + 0x9271, 0x667A, 0x9272, 0x6C60, 0x9273, 0x75F4, 0x9274, 0x7A1A, 0x9275, 0x7F6E, 0x9276, 0x81F4, 0x9277, 0x8718, 0x9278, 0x9045, + 0x9279, 0x99B3, 0x927A, 0x7BC9, 0x927B, 0x755C, 0x927C, 0x7AF9, 0x927D, 0x7B51, 0x927E, 0x84C4, 0x9280, 0x9010, 0x9281, 0x79E9, + 0x9282, 0x7A92, 0x9283, 0x8336, 0x9284, 0x5AE1, 0x9285, 0x7740, 0x9286, 0x4E2D, 0x9287, 0x4EF2, 0x9288, 0x5B99, 0x9289, 0x5FE0, + 0x928A, 0x62BD, 0x928B, 0x663C, 0x928C, 0x67F1, 0x928D, 0x6CE8, 0x928E, 0x866B, 0x928F, 0x8877, 0x9290, 0x8A3B, 0x9291, 0x914E, + 0x9292, 0x92F3, 0x9293, 0x99D0, 0x9294, 0x6A17, 0x9295, 0x7026, 0x9296, 0x732A, 0x9297, 0x82E7, 0x9298, 0x8457, 0x9299, 0x8CAF, + 0x929A, 0x4E01, 0x929B, 0x5146, 0x929C, 0x51CB, 0x929D, 0x558B, 0x929E, 0x5BF5, 0x929F, 0x5E16, 0x92A0, 0x5E33, 0x92A1, 0x5E81, + 0x92A2, 0x5F14, 0x92A3, 0x5F35, 0x92A4, 0x5F6B, 0x92A5, 0x5FB4, 0x92A6, 0x61F2, 0x92A7, 0x6311, 0x92A8, 0x66A2, 0x92A9, 0x671D, + 0x92AA, 0x6F6E, 0x92AB, 0x7252, 0x92AC, 0x753A, 0x92AD, 0x773A, 0x92AE, 0x8074, 0x92AF, 0x8139, 0x92B0, 0x8178, 0x92B1, 0x8776, + 0x92B2, 0x8ABF, 0x92B3, 0x8ADC, 0x92B4, 0x8D85, 0x92B5, 0x8DF3, 0x92B6, 0x929A, 0x92B7, 0x9577, 0x92B8, 0x9802, 0x92B9, 0x9CE5, + 0x92BA, 0x52C5, 0x92BB, 0x6357, 0x92BC, 0x76F4, 0x92BD, 0x6715, 0x92BE, 0x6C88, 0x92BF, 0x73CD, 0x92C0, 0x8CC3, 0x92C1, 0x93AE, + 0x92C2, 0x9673, 0x92C3, 0x6D25, 0x92C4, 0x589C, 0x92C5, 0x690E, 0x92C6, 0x69CC, 0x92C7, 0x8FFD, 0x92C8, 0x939A, 0x92C9, 0x75DB, + 0x92CA, 0x901A, 0x92CB, 0x585A, 0x92CC, 0x6802, 0x92CD, 0x63B4, 0x92CE, 0x69FB, 0x92CF, 0x4F43, 0x92D0, 0x6F2C, 0x92D1, 0x67D8, + 0x92D2, 0x8FBB, 0x92D3, 0x8526, 0x92D4, 0x7DB4, 0x92D5, 0x9354, 0x92D6, 0x693F, 0x92D7, 0x6F70, 0x92D8, 0x576A, 0x92D9, 0x58F7, + 0x92DA, 0x5B2C, 0x92DB, 0x7D2C, 0x92DC, 0x722A, 0x92DD, 0x540A, 0x92DE, 0x91E3, 0x92DF, 0x9DB4, 0x92E0, 0x4EAD, 0x92E1, 0x4F4E, + 0x92E2, 0x505C, 0x92E3, 0x5075, 0x92E4, 0x5243, 0x92E5, 0x8C9E, 0x92E6, 0x5448, 0x92E7, 0x5824, 0x92E8, 0x5B9A, 0x92E9, 0x5E1D, + 0x92EA, 0x5E95, 0x92EB, 0x5EAD, 0x92EC, 0x5EF7, 0x92ED, 0x5F1F, 0x92EE, 0x608C, 0x92EF, 0x62B5, 0x92F0, 0x633A, 0x92F1, 0x63D0, + 0x92F2, 0x68AF, 0x92F3, 0x6C40, 0x92F4, 0x7887, 0x92F5, 0x798E, 0x92F6, 0x7A0B, 0x92F7, 0x7DE0, 0x92F8, 0x8247, 0x92F9, 0x8A02, + 0x92FA, 0x8AE6, 0x92FB, 0x8E44, 0x92FC, 0x9013, 0x9340, 0x90B8, 0x9341, 0x912D, 0x9342, 0x91D8, 0x9343, 0x9F0E, 0x9344, 0x6CE5, + 0x9345, 0x6458, 0x9346, 0x64E2, 0x9347, 0x6575, 0x9348, 0x6EF4, 0x9349, 0x7684, 0x934A, 0x7B1B, 0x934B, 0x9069, 0x934C, 0x93D1, + 0x934D, 0x6EBA, 0x934E, 0x54F2, 0x934F, 0x5FB9, 0x9350, 0x64A4, 0x9351, 0x8F4D, 0x9352, 0x8FED, 0x9353, 0x9244, 0x9354, 0x5178, + 0x9355, 0x586B, 0x9356, 0x5929, 0x9357, 0x5C55, 0x9358, 0x5E97, 0x9359, 0x6DFB, 0x935A, 0x7E8F, 0x935B, 0x751C, 0x935C, 0x8CBC, + 0x935D, 0x8EE2, 0x935E, 0x985B, 0x935F, 0x70B9, 0x9360, 0x4F1D, 0x9361, 0x6BBF, 0x9362, 0x6FB1, 0x9363, 0x7530, 0x9364, 0x96FB, + 0x9365, 0x514E, 0x9366, 0x5410, 0x9367, 0x5835, 0x9368, 0x5857, 0x9369, 0x59AC, 0x936A, 0x5C60, 0x936B, 0x5F92, 0x936C, 0x6597, + 0x936D, 0x675C, 0x936E, 0x6E21, 0x936F, 0x767B, 0x9370, 0x83DF, 0x9371, 0x8CED, 0x9372, 0x9014, 0x9373, 0x90FD, 0x9374, 0x934D, + 0x9375, 0x7825, 0x9376, 0x783A, 0x9377, 0x52AA, 0x9378, 0x5EA6, 0x9379, 0x571F, 0x937A, 0x5974, 0x937B, 0x6012, 0x937C, 0x5012, + 0x937D, 0x515A, 0x937E, 0x51AC, 0x9380, 0x51CD, 0x9381, 0x5200, 0x9382, 0x5510, 0x9383, 0x5854, 0x9384, 0x5858, 0x9385, 0x5957, + 0x9386, 0x5B95, 0x9387, 0x5CF6, 0x9388, 0x5D8B, 0x9389, 0x60BC, 0x938A, 0x6295, 0x938B, 0x642D, 0x938C, 0x6771, 0x938D, 0x6843, + 0x938E, 0x68BC, 0x938F, 0x68DF, 0x9390, 0x76D7, 0x9391, 0x6DD8, 0x9392, 0x6E6F, 0x9393, 0x6D9B, 0x9394, 0x706F, 0x9395, 0x71C8, + 0x9396, 0x5F53, 0x9397, 0x75D8, 0x9398, 0x7977, 0x9399, 0x7B49, 0x939A, 0x7B54, 0x939B, 0x7B52, 0x939C, 0x7CD6, 0x939D, 0x7D71, + 0x939E, 0x5230, 0x939F, 0x8463, 0x93A0, 0x8569, 0x93A1, 0x85E4, 0x93A2, 0x8A0E, 0x93A3, 0x8B04, 0x93A4, 0x8C46, 0x93A5, 0x8E0F, + 0x93A6, 0x9003, 0x93A7, 0x900F, 0x93A8, 0x9419, 0x93A9, 0x9676, 0x93AA, 0x982D, 0x93AB, 0x9A30, 0x93AC, 0x95D8, 0x93AD, 0x50CD, + 0x93AE, 0x52D5, 0x93AF, 0x540C, 0x93B0, 0x5802, 0x93B1, 0x5C0E, 0x93B2, 0x61A7, 0x93B3, 0x649E, 0x93B4, 0x6D1E, 0x93B5, 0x77B3, + 0x93B6, 0x7AE5, 0x93B7, 0x80F4, 0x93B8, 0x8404, 0x93B9, 0x9053, 0x93BA, 0x9285, 0x93BB, 0x5CE0, 0x93BC, 0x9D07, 0x93BD, 0x533F, + 0x93BE, 0x5F97, 0x93BF, 0x5FB3, 0x93C0, 0x6D9C, 0x93C1, 0x7279, 0x93C2, 0x7763, 0x93C3, 0x79BF, 0x93C4, 0x7BE4, 0x93C5, 0x6BD2, + 0x93C6, 0x72EC, 0x93C7, 0x8AAD, 0x93C8, 0x6803, 0x93C9, 0x6A61, 0x93CA, 0x51F8, 0x93CB, 0x7A81, 0x93CC, 0x6934, 0x93CD, 0x5C4A, + 0x93CE, 0x9CF6, 0x93CF, 0x82EB, 0x93D0, 0x5BC5, 0x93D1, 0x9149, 0x93D2, 0x701E, 0x93D3, 0x5678, 0x93D4, 0x5C6F, 0x93D5, 0x60C7, + 0x93D6, 0x6566, 0x93D7, 0x6C8C, 0x93D8, 0x8C5A, 0x93D9, 0x9041, 0x93DA, 0x9813, 0x93DB, 0x5451, 0x93DC, 0x66C7, 0x93DD, 0x920D, + 0x93DE, 0x5948, 0x93DF, 0x90A3, 0x93E0, 0x5185, 0x93E1, 0x4E4D, 0x93E2, 0x51EA, 0x93E3, 0x8599, 0x93E4, 0x8B0E, 0x93E5, 0x7058, + 0x93E6, 0x637A, 0x93E7, 0x934B, 0x93E8, 0x6962, 0x93E9, 0x99B4, 0x93EA, 0x7E04, 0x93EB, 0x7577, 0x93EC, 0x5357, 0x93ED, 0x6960, + 0x93EE, 0x8EDF, 0x93EF, 0x96E3, 0x93F0, 0x6C5D, 0x93F1, 0x4E8C, 0x93F2, 0x5C3C, 0x93F3, 0x5F10, 0x93F4, 0x8FE9, 0x93F5, 0x5302, + 0x93F6, 0x8CD1, 0x93F7, 0x8089, 0x93F8, 0x8679, 0x93F9, 0x5EFF, 0x93FA, 0x65E5, 0x93FB, 0x4E73, 0x93FC, 0x5165, 0x9440, 0x5982, + 0x9441, 0x5C3F, 0x9442, 0x97EE, 0x9443, 0x4EFB, 0x9444, 0x598A, 0x9445, 0x5FCD, 0x9446, 0x8A8D, 0x9447, 0x6FE1, 0x9448, 0x79B0, + 0x9449, 0x7962, 0x944A, 0x5BE7, 0x944B, 0x8471, 0x944C, 0x732B, 0x944D, 0x71B1, 0x944E, 0x5E74, 0x944F, 0x5FF5, 0x9450, 0x637B, + 0x9451, 0x649A, 0x9452, 0x71C3, 0x9453, 0x7C98, 0x9454, 0x4E43, 0x9455, 0x5EFC, 0x9456, 0x4E4B, 0x9457, 0x57DC, 0x9458, 0x56A2, + 0x9459, 0x60A9, 0x945A, 0x6FC3, 0x945B, 0x7D0D, 0x945C, 0x80FD, 0x945D, 0x8133, 0x945E, 0x81BF, 0x945F, 0x8FB2, 0x9460, 0x8997, + 0x9461, 0x86A4, 0x9462, 0x5DF4, 0x9463, 0x628A, 0x9464, 0x64AD, 0x9465, 0x8987, 0x9466, 0x6777, 0x9467, 0x6CE2, 0x9468, 0x6D3E, + 0x9469, 0x7436, 0x946A, 0x7834, 0x946B, 0x5A46, 0x946C, 0x7F75, 0x946D, 0x82AD, 0x946E, 0x99AC, 0x946F, 0x4FF3, 0x9470, 0x5EC3, + 0x9471, 0x62DD, 0x9472, 0x6392, 0x9473, 0x6557, 0x9474, 0x676F, 0x9475, 0x76C3, 0x9476, 0x724C, 0x9477, 0x80CC, 0x9478, 0x80BA, + 0x9479, 0x8F29, 0x947A, 0x914D, 0x947B, 0x500D, 0x947C, 0x57F9, 0x947D, 0x5A92, 0x947E, 0x6885, 0x9480, 0x6973, 0x9481, 0x7164, + 0x9482, 0x72FD, 0x9483, 0x8CB7, 0x9484, 0x58F2, 0x9485, 0x8CE0, 0x9486, 0x966A, 0x9487, 0x9019, 0x9488, 0x877F, 0x9489, 0x79E4, + 0x948A, 0x77E7, 0x948B, 0x8429, 0x948C, 0x4F2F, 0x948D, 0x5265, 0x948E, 0x535A, 0x948F, 0x62CD, 0x9490, 0x67CF, 0x9491, 0x6CCA, + 0x9492, 0x767D, 0x9493, 0x7B94, 0x9494, 0x7C95, 0x9495, 0x8236, 0x9496, 0x8584, 0x9497, 0x8FEB, 0x9498, 0x66DD, 0x9499, 0x6F20, + 0x949A, 0x7206, 0x949B, 0x7E1B, 0x949C, 0x83AB, 0x949D, 0x99C1, 0x949E, 0x9EA6, 0x949F, 0x51FD, 0x94A0, 0x7BB1, 0x94A1, 0x7872, + 0x94A2, 0x7BB8, 0x94A3, 0x8087, 0x94A4, 0x7B48, 0x94A5, 0x6AE8, 0x94A6, 0x5E61, 0x94A7, 0x808C, 0x94A8, 0x7551, 0x94A9, 0x7560, + 0x94AA, 0x516B, 0x94AB, 0x9262, 0x94AC, 0x6E8C, 0x94AD, 0x767A, 0x94AE, 0x9197, 0x94AF, 0x9AEA, 0x94B0, 0x4F10, 0x94B1, 0x7F70, + 0x94B2, 0x629C, 0x94B3, 0x7B4F, 0x94B4, 0x95A5, 0x94B5, 0x9CE9, 0x94B6, 0x567A, 0x94B7, 0x5859, 0x94B8, 0x86E4, 0x94B9, 0x96BC, + 0x94BA, 0x4F34, 0x94BB, 0x5224, 0x94BC, 0x534A, 0x94BD, 0x53CD, 0x94BE, 0x53DB, 0x94BF, 0x5E06, 0x94C0, 0x642C, 0x94C1, 0x6591, + 0x94C2, 0x677F, 0x94C3, 0x6C3E, 0x94C4, 0x6C4E, 0x94C5, 0x7248, 0x94C6, 0x72AF, 0x94C7, 0x73ED, 0x94C8, 0x7554, 0x94C9, 0x7E41, + 0x94CA, 0x822C, 0x94CB, 0x85E9, 0x94CC, 0x8CA9, 0x94CD, 0x7BC4, 0x94CE, 0x91C6, 0x94CF, 0x7169, 0x94D0, 0x9812, 0x94D1, 0x98EF, + 0x94D2, 0x633D, 0x94D3, 0x6669, 0x94D4, 0x756A, 0x94D5, 0x76E4, 0x94D6, 0x78D0, 0x94D7, 0x8543, 0x94D8, 0x86EE, 0x94D9, 0x532A, + 0x94DA, 0x5351, 0x94DB, 0x5426, 0x94DC, 0x5983, 0x94DD, 0x5E87, 0x94DE, 0x5F7C, 0x94DF, 0x60B2, 0x94E0, 0x6249, 0x94E1, 0x6279, + 0x94E2, 0x62AB, 0x94E3, 0x6590, 0x94E4, 0x6BD4, 0x94E5, 0x6CCC, 0x94E6, 0x75B2, 0x94E7, 0x76AE, 0x94E8, 0x7891, 0x94E9, 0x79D8, + 0x94EA, 0x7DCB, 0x94EB, 0x7F77, 0x94EC, 0x80A5, 0x94ED, 0x88AB, 0x94EE, 0x8AB9, 0x94EF, 0x8CBB, 0x94F0, 0x907F, 0x94F1, 0x975E, + 0x94F2, 0x98DB, 0x94F3, 0x6A0B, 0x94F4, 0x7C38, 0x94F5, 0x5099, 0x94F6, 0x5C3E, 0x94F7, 0x5FAE, 0x94F8, 0x6787, 0x94F9, 0x6BD8, + 0x94FA, 0x7435, 0x94FB, 0x7709, 0x94FC, 0x7F8E, 0x9540, 0x9F3B, 0x9541, 0x67CA, 0x9542, 0x7A17, 0x9543, 0x5339, 0x9544, 0x758B, + 0x9545, 0x9AED, 0x9546, 0x5F66, 0x9547, 0x819D, 0x9548, 0x83F1, 0x9549, 0x8098, 0x954A, 0x5F3C, 0x954B, 0x5FC5, 0x954C, 0x7562, + 0x954D, 0x7B46, 0x954E, 0x903C, 0x954F, 0x6867, 0x9550, 0x59EB, 0x9551, 0x5A9B, 0x9552, 0x7D10, 0x9553, 0x767E, 0x9554, 0x8B2C, + 0x9555, 0x4FF5, 0x9556, 0x5F6A, 0x9557, 0x6A19, 0x9558, 0x6C37, 0x9559, 0x6F02, 0x955A, 0x74E2, 0x955B, 0x7968, 0x955C, 0x8868, + 0x955D, 0x8A55, 0x955E, 0x8C79, 0x955F, 0x5EDF, 0x9560, 0x63CF, 0x9561, 0x75C5, 0x9562, 0x79D2, 0x9563, 0x82D7, 0x9564, 0x9328, + 0x9565, 0x92F2, 0x9566, 0x849C, 0x9567, 0x86ED, 0x9568, 0x9C2D, 0x9569, 0x54C1, 0x956A, 0x5F6C, 0x956B, 0x658C, 0x956C, 0x6D5C, + 0x956D, 0x7015, 0x956E, 0x8CA7, 0x956F, 0x8CD3, 0x9570, 0x983B, 0x9571, 0x654F, 0x9572, 0x74F6, 0x9573, 0x4E0D, 0x9574, 0x4ED8, + 0x9575, 0x57E0, 0x9576, 0x592B, 0x9577, 0x5A66, 0x9578, 0x5BCC, 0x9579, 0x51A8, 0x957A, 0x5E03, 0x957B, 0x5E9C, 0x957C, 0x6016, + 0x957D, 0x6276, 0x957E, 0x6577, 0x9580, 0x65A7, 0x9581, 0x666E, 0x9582, 0x6D6E, 0x9583, 0x7236, 0x9584, 0x7B26, 0x9585, 0x8150, + 0x9586, 0x819A, 0x9587, 0x8299, 0x9588, 0x8B5C, 0x9589, 0x8CA0, 0x958A, 0x8CE6, 0x958B, 0x8D74, 0x958C, 0x961C, 0x958D, 0x9644, + 0x958E, 0x4FAE, 0x958F, 0x64AB, 0x9590, 0x6B66, 0x9591, 0x821E, 0x9592, 0x8461, 0x9593, 0x856A, 0x9594, 0x90E8, 0x9595, 0x5C01, + 0x9596, 0x6953, 0x9597, 0x98A8, 0x9598, 0x847A, 0x9599, 0x8557, 0x959A, 0x4F0F, 0x959B, 0x526F, 0x959C, 0x5FA9, 0x959D, 0x5E45, + 0x959E, 0x670D, 0x959F, 0x798F, 0x95A0, 0x8179, 0x95A1, 0x8907, 0x95A2, 0x8986, 0x95A3, 0x6DF5, 0x95A4, 0x5F17, 0x95A5, 0x6255, + 0x95A6, 0x6CB8, 0x95A7, 0x4ECF, 0x95A8, 0x7269, 0x95A9, 0x9B92, 0x95AA, 0x5206, 0x95AB, 0x543B, 0x95AC, 0x5674, 0x95AD, 0x58B3, + 0x95AE, 0x61A4, 0x95AF, 0x626E, 0x95B0, 0x711A, 0x95B1, 0x596E, 0x95B2, 0x7C89, 0x95B3, 0x7CDE, 0x95B4, 0x7D1B, 0x95B5, 0x96F0, + 0x95B6, 0x6587, 0x95B7, 0x805E, 0x95B8, 0x4E19, 0x95B9, 0x4F75, 0x95BA, 0x5175, 0x95BB, 0x5840, 0x95BC, 0x5E63, 0x95BD, 0x5E73, + 0x95BE, 0x5F0A, 0x95BF, 0x67C4, 0x95C0, 0x4E26, 0x95C1, 0x853D, 0x95C2, 0x9589, 0x95C3, 0x965B, 0x95C4, 0x7C73, 0x95C5, 0x9801, + 0x95C6, 0x50FB, 0x95C7, 0x58C1, 0x95C8, 0x7656, 0x95C9, 0x78A7, 0x95CA, 0x5225, 0x95CB, 0x77A5, 0x95CC, 0x8511, 0x95CD, 0x7B86, + 0x95CE, 0x504F, 0x95CF, 0x5909, 0x95D0, 0x7247, 0x95D1, 0x7BC7, 0x95D2, 0x7DE8, 0x95D3, 0x8FBA, 0x95D4, 0x8FD4, 0x95D5, 0x904D, + 0x95D6, 0x4FBF, 0x95D7, 0x52C9, 0x95D8, 0x5A29, 0x95D9, 0x5F01, 0x95DA, 0x97AD, 0x95DB, 0x4FDD, 0x95DC, 0x8217, 0x95DD, 0x92EA, + 0x95DE, 0x5703, 0x95DF, 0x6355, 0x95E0, 0x6B69, 0x95E1, 0x752B, 0x95E2, 0x88DC, 0x95E3, 0x8F14, 0x95E4, 0x7A42, 0x95E5, 0x52DF, + 0x95E6, 0x5893, 0x95E7, 0x6155, 0x95E8, 0x620A, 0x95E9, 0x66AE, 0x95EA, 0x6BCD, 0x95EB, 0x7C3F, 0x95EC, 0x83E9, 0x95ED, 0x5023, + 0x95EE, 0x4FF8, 0x95EF, 0x5305, 0x95F0, 0x5446, 0x95F1, 0x5831, 0x95F2, 0x5949, 0x95F3, 0x5B9D, 0x95F4, 0x5CF0, 0x95F5, 0x5CEF, + 0x95F6, 0x5D29, 0x95F7, 0x5E96, 0x95F8, 0x62B1, 0x95F9, 0x6367, 0x95FA, 0x653E, 0x95FB, 0x65B9, 0x95FC, 0x670B, 0x9640, 0x6CD5, + 0x9641, 0x6CE1, 0x9642, 0x70F9, 0x9643, 0x7832, 0x9644, 0x7E2B, 0x9645, 0x80DE, 0x9646, 0x82B3, 0x9647, 0x840C, 0x9648, 0x84EC, + 0x9649, 0x8702, 0x964A, 0x8912, 0x964B, 0x8A2A, 0x964C, 0x8C4A, 0x964D, 0x90A6, 0x964E, 0x92D2, 0x964F, 0x98FD, 0x9650, 0x9CF3, + 0x9651, 0x9D6C, 0x9652, 0x4E4F, 0x9653, 0x4EA1, 0x9654, 0x508D, 0x9655, 0x5256, 0x9656, 0x574A, 0x9657, 0x59A8, 0x9658, 0x5E3D, + 0x9659, 0x5FD8, 0x965A, 0x5FD9, 0x965B, 0x623F, 0x965C, 0x66B4, 0x965D, 0x671B, 0x965E, 0x67D0, 0x965F, 0x68D2, 0x9660, 0x5192, + 0x9661, 0x7D21, 0x9662, 0x80AA, 0x9663, 0x81A8, 0x9664, 0x8B00, 0x9665, 0x8C8C, 0x9666, 0x8CBF, 0x9667, 0x927E, 0x9668, 0x9632, + 0x9669, 0x5420, 0x966A, 0x982C, 0x966B, 0x5317, 0x966C, 0x50D5, 0x966D, 0x535C, 0x966E, 0x58A8, 0x966F, 0x64B2, 0x9670, 0x6734, + 0x9671, 0x7267, 0x9672, 0x7766, 0x9673, 0x7A46, 0x9674, 0x91E6, 0x9675, 0x52C3, 0x9676, 0x6CA1, 0x9677, 0x6B86, 0x9678, 0x5800, + 0x9679, 0x5E4C, 0x967A, 0x5954, 0x967B, 0x672C, 0x967C, 0x7FFB, 0x967D, 0x51E1, 0x967E, 0x76C6, 0x9680, 0x6469, 0x9681, 0x78E8, + 0x9682, 0x9B54, 0x9683, 0x9EBB, 0x9684, 0x57CB, 0x9685, 0x59B9, 0x9686, 0x6627, 0x9687, 0x679A, 0x9688, 0x6BCE, 0x9689, 0x54E9, + 0x968A, 0x69D9, 0x968B, 0x5E55, 0x968C, 0x819C, 0x968D, 0x6795, 0x968E, 0x9BAA, 0x968F, 0x67FE, 0x9690, 0x9C52, 0x9691, 0x685D, + 0x9692, 0x4EA6, 0x9693, 0x4FE3, 0x9694, 0x53C8, 0x9695, 0x62B9, 0x9696, 0x672B, 0x9697, 0x6CAB, 0x9698, 0x8FC4, 0x9699, 0x4FAD, + 0x969A, 0x7E6D, 0x969B, 0x9EBF, 0x969C, 0x4E07, 0x969D, 0x6162, 0x969E, 0x6E80, 0x969F, 0x6F2B, 0x96A0, 0x8513, 0x96A1, 0x5473, + 0x96A2, 0x672A, 0x96A3, 0x9B45, 0x96A4, 0x5DF3, 0x96A5, 0x7B95, 0x96A6, 0x5CAC, 0x96A7, 0x5BC6, 0x96A8, 0x871C, 0x96A9, 0x6E4A, + 0x96AA, 0x84D1, 0x96AB, 0x7A14, 0x96AC, 0x8108, 0x96AD, 0x5999, 0x96AE, 0x7C8D, 0x96AF, 0x6C11, 0x96B0, 0x7720, 0x96B1, 0x52D9, + 0x96B2, 0x5922, 0x96B3, 0x7121, 0x96B4, 0x725F, 0x96B5, 0x77DB, 0x96B6, 0x9727, 0x96B7, 0x9D61, 0x96B8, 0x690B, 0x96B9, 0x5A7F, + 0x96BA, 0x5A18, 0x96BB, 0x51A5, 0x96BC, 0x540D, 0x96BD, 0x547D, 0x96BE, 0x660E, 0x96BF, 0x76DF, 0x96C0, 0x8FF7, 0x96C1, 0x9298, + 0x96C2, 0x9CF4, 0x96C3, 0x59EA, 0x96C4, 0x725D, 0x96C5, 0x6EC5, 0x96C6, 0x514D, 0x96C7, 0x68C9, 0x96C8, 0x7DBF, 0x96C9, 0x7DEC, + 0x96CA, 0x9762, 0x96CB, 0x9EBA, 0x96CC, 0x6478, 0x96CD, 0x6A21, 0x96CE, 0x8302, 0x96CF, 0x5984, 0x96D0, 0x5B5F, 0x96D1, 0x6BDB, + 0x96D2, 0x731B, 0x96D3, 0x76F2, 0x96D4, 0x7DB2, 0x96D5, 0x8017, 0x96D6, 0x8499, 0x96D7, 0x5132, 0x96D8, 0x6728, 0x96D9, 0x9ED9, + 0x96DA, 0x76EE, 0x96DB, 0x6762, 0x96DC, 0x52FF, 0x96DD, 0x9905, 0x96DE, 0x5C24, 0x96DF, 0x623B, 0x96E0, 0x7C7E, 0x96E1, 0x8CB0, + 0x96E2, 0x554F, 0x96E3, 0x60B6, 0x96E4, 0x7D0B, 0x96E5, 0x9580, 0x96E6, 0x5301, 0x96E7, 0x4E5F, 0x96E8, 0x51B6, 0x96E9, 0x591C, + 0x96EA, 0x723A, 0x96EB, 0x8036, 0x96EC, 0x91CE, 0x96ED, 0x5F25, 0x96EE, 0x77E2, 0x96EF, 0x5384, 0x96F0, 0x5F79, 0x96F1, 0x7D04, + 0x96F2, 0x85AC, 0x96F3, 0x8A33, 0x96F4, 0x8E8D, 0x96F5, 0x9756, 0x96F6, 0x67F3, 0x96F7, 0x85AE, 0x96F8, 0x9453, 0x96F9, 0x6109, + 0x96FA, 0x6108, 0x96FB, 0x6CB9, 0x96FC, 0x7652, 0x9740, 0x8AED, 0x9741, 0x8F38, 0x9742, 0x552F, 0x9743, 0x4F51, 0x9744, 0x512A, + 0x9745, 0x52C7, 0x9746, 0x53CB, 0x9747, 0x5BA5, 0x9748, 0x5E7D, 0x9749, 0x60A0, 0x974A, 0x6182, 0x974B, 0x63D6, 0x974C, 0x6709, + 0x974D, 0x67DA, 0x974E, 0x6E67, 0x974F, 0x6D8C, 0x9750, 0x7336, 0x9751, 0x7337, 0x9752, 0x7531, 0x9753, 0x7950, 0x9754, 0x88D5, + 0x9755, 0x8A98, 0x9756, 0x904A, 0x9757, 0x9091, 0x9758, 0x90F5, 0x9759, 0x96C4, 0x975A, 0x878D, 0x975B, 0x5915, 0x975C, 0x4E88, + 0x975D, 0x4F59, 0x975E, 0x4E0E, 0x975F, 0x8A89, 0x9760, 0x8F3F, 0x9761, 0x9810, 0x9762, 0x50AD, 0x9763, 0x5E7C, 0x9764, 0x5996, + 0x9765, 0x5BB9, 0x9766, 0x5EB8, 0x9767, 0x63DA, 0x9768, 0x63FA, 0x9769, 0x64C1, 0x976A, 0x66DC, 0x976B, 0x694A, 0x976C, 0x69D8, + 0x976D, 0x6D0B, 0x976E, 0x6EB6, 0x976F, 0x7194, 0x9770, 0x7528, 0x9771, 0x7AAF, 0x9772, 0x7F8A, 0x9773, 0x8000, 0x9774, 0x8449, + 0x9775, 0x84C9, 0x9776, 0x8981, 0x9777, 0x8B21, 0x9778, 0x8E0A, 0x9779, 0x9065, 0x977A, 0x967D, 0x977B, 0x990A, 0x977C, 0x617E, + 0x977D, 0x6291, 0x977E, 0x6B32, 0x9780, 0x6C83, 0x9781, 0x6D74, 0x9782, 0x7FCC, 0x9783, 0x7FFC, 0x9784, 0x6DC0, 0x9785, 0x7F85, + 0x9786, 0x87BA, 0x9787, 0x88F8, 0x9788, 0x6765, 0x9789, 0x83B1, 0x978A, 0x983C, 0x978B, 0x96F7, 0x978C, 0x6D1B, 0x978D, 0x7D61, + 0x978E, 0x843D, 0x978F, 0x916A, 0x9790, 0x4E71, 0x9791, 0x5375, 0x9792, 0x5D50, 0x9793, 0x6B04, 0x9794, 0x6FEB, 0x9795, 0x85CD, + 0x9796, 0x862D, 0x9797, 0x89A7, 0x9798, 0x5229, 0x9799, 0x540F, 0x979A, 0x5C65, 0x979B, 0x674E, 0x979C, 0x68A8, 0x979D, 0x7406, + 0x979E, 0x7483, 0x979F, 0x75E2, 0x97A0, 0x88CF, 0x97A1, 0x88E1, 0x97A2, 0x91CC, 0x97A3, 0x96E2, 0x97A4, 0x9678, 0x97A5, 0x5F8B, + 0x97A6, 0x7387, 0x97A7, 0x7ACB, 0x97A8, 0x844E, 0x97A9, 0x63A0, 0x97AA, 0x7565, 0x97AB, 0x5289, 0x97AC, 0x6D41, 0x97AD, 0x6E9C, + 0x97AE, 0x7409, 0x97AF, 0x7559, 0x97B0, 0x786B, 0x97B1, 0x7C92, 0x97B2, 0x9686, 0x97B3, 0x7ADC, 0x97B4, 0x9F8D, 0x97B5, 0x4FB6, + 0x97B6, 0x616E, 0x97B7, 0x65C5, 0x97B8, 0x865C, 0x97B9, 0x4E86, 0x97BA, 0x4EAE, 0x97BB, 0x50DA, 0x97BC, 0x4E21, 0x97BD, 0x51CC, + 0x97BE, 0x5BEE, 0x97BF, 0x6599, 0x97C0, 0x6881, 0x97C1, 0x6DBC, 0x97C2, 0x731F, 0x97C3, 0x7642, 0x97C4, 0x77AD, 0x97C5, 0x7A1C, + 0x97C6, 0x7CE7, 0x97C7, 0x826F, 0x97C8, 0x8AD2, 0x97C9, 0x907C, 0x97CA, 0x91CF, 0x97CB, 0x9675, 0x97CC, 0x9818, 0x97CD, 0x529B, + 0x97CE, 0x7DD1, 0x97CF, 0x502B, 0x97D0, 0x5398, 0x97D1, 0x6797, 0x97D2, 0x6DCB, 0x97D3, 0x71D0, 0x97D4, 0x7433, 0x97D5, 0x81E8, + 0x97D6, 0x8F2A, 0x97D7, 0x96A3, 0x97D8, 0x9C57, 0x97D9, 0x9E9F, 0x97DA, 0x7460, 0x97DB, 0x5841, 0x97DC, 0x6D99, 0x97DD, 0x7D2F, + 0x97DE, 0x985E, 0x97DF, 0x4EE4, 0x97E0, 0x4F36, 0x97E1, 0x4F8B, 0x97E2, 0x51B7, 0x97E3, 0x52B1, 0x97E4, 0x5DBA, 0x97E5, 0x601C, + 0x97E6, 0x73B2, 0x97E7, 0x793C, 0x97E8, 0x82D3, 0x97E9, 0x9234, 0x97EA, 0x96B7, 0x97EB, 0x96F6, 0x97EC, 0x970A, 0x97ED, 0x9E97, + 0x97EE, 0x9F62, 0x97EF, 0x66A6, 0x97F0, 0x6B74, 0x97F1, 0x5217, 0x97F2, 0x52A3, 0x97F3, 0x70C8, 0x97F4, 0x88C2, 0x97F5, 0x5EC9, + 0x97F6, 0x604B, 0x97F7, 0x6190, 0x97F8, 0x6F23, 0x97F9, 0x7149, 0x97FA, 0x7C3E, 0x97FB, 0x7DF4, 0x97FC, 0x806F, 0x9840, 0x84EE, + 0x9841, 0x9023, 0x9842, 0x932C, 0x9843, 0x5442, 0x9844, 0x9B6F, 0x9845, 0x6AD3, 0x9846, 0x7089, 0x9847, 0x8CC2, 0x9848, 0x8DEF, + 0x9849, 0x9732, 0x984A, 0x52B4, 0x984B, 0x5A41, 0x984C, 0x5ECA, 0x984D, 0x5F04, 0x984E, 0x6717, 0x984F, 0x697C, 0x9850, 0x6994, + 0x9851, 0x6D6A, 0x9852, 0x6F0F, 0x9853, 0x7262, 0x9854, 0x72FC, 0x9855, 0x7BED, 0x9856, 0x8001, 0x9857, 0x807E, 0x9858, 0x874B, + 0x9859, 0x90CE, 0x985A, 0x516D, 0x985B, 0x9E93, 0x985C, 0x7984, 0x985D, 0x808B, 0x985E, 0x9332, 0x985F, 0x8AD6, 0x9860, 0x502D, + 0x9861, 0x548C, 0x9862, 0x8A71, 0x9863, 0x6B6A, 0x9864, 0x8CC4, 0x9865, 0x8107, 0x9866, 0x60D1, 0x9867, 0x67A0, 0x9868, 0x9DF2, + 0x9869, 0x4E99, 0x986A, 0x4E98, 0x986B, 0x9C10, 0x986C, 0x8A6B, 0x986D, 0x85C1, 0x986E, 0x8568, 0x986F, 0x6900, 0x9870, 0x6E7E, + 0x9871, 0x7897, 0x9872, 0x8155, 0x989F, 0x5F0C, 0x98A0, 0x4E10, 0x98A1, 0x4E15, 0x98A2, 0x4E2A, 0x98A3, 0x4E31, 0x98A4, 0x4E36, + 0x98A5, 0x4E3C, 0x98A6, 0x4E3F, 0x98A7, 0x4E42, 0x98A8, 0x4E56, 0x98A9, 0x4E58, 0x98AA, 0x4E82, 0x98AB, 0x4E85, 0x98AC, 0x8C6B, + 0x98AD, 0x4E8A, 0x98AE, 0x8212, 0x98AF, 0x5F0D, 0x98B0, 0x4E8E, 0x98B1, 0x4E9E, 0x98B2, 0x4E9F, 0x98B3, 0x4EA0, 0x98B4, 0x4EA2, + 0x98B5, 0x4EB0, 0x98B6, 0x4EB3, 0x98B7, 0x4EB6, 0x98B8, 0x4ECE, 0x98B9, 0x4ECD, 0x98BA, 0x4EC4, 0x98BB, 0x4EC6, 0x98BC, 0x4EC2, + 0x98BD, 0x4ED7, 0x98BE, 0x4EDE, 0x98BF, 0x4EED, 0x98C0, 0x4EDF, 0x98C1, 0x4EF7, 0x98C2, 0x4F09, 0x98C3, 0x4F5A, 0x98C4, 0x4F30, + 0x98C5, 0x4F5B, 0x98C6, 0x4F5D, 0x98C7, 0x4F57, 0x98C8, 0x4F47, 0x98C9, 0x4F76, 0x98CA, 0x4F88, 0x98CB, 0x4F8F, 0x98CC, 0x4F98, + 0x98CD, 0x4F7B, 0x98CE, 0x4F69, 0x98CF, 0x4F70, 0x98D0, 0x4F91, 0x98D1, 0x4F6F, 0x98D2, 0x4F86, 0x98D3, 0x4F96, 0x98D4, 0x5118, + 0x98D5, 0x4FD4, 0x98D6, 0x4FDF, 0x98D7, 0x4FCE, 0x98D8, 0x4FD8, 0x98D9, 0x4FDB, 0x98DA, 0x4FD1, 0x98DB, 0x4FDA, 0x98DC, 0x4FD0, + 0x98DD, 0x4FE4, 0x98DE, 0x4FE5, 0x98DF, 0x501A, 0x98E0, 0x5028, 0x98E1, 0x5014, 0x98E2, 0x502A, 0x98E3, 0x5025, 0x98E4, 0x5005, + 0x98E5, 0x4F1C, 0x98E6, 0x4FF6, 0x98E7, 0x5021, 0x98E8, 0x5029, 0x98E9, 0x502C, 0x98EA, 0x4FFE, 0x98EB, 0x4FEF, 0x98EC, 0x5011, + 0x98ED, 0x5006, 0x98EE, 0x5043, 0x98EF, 0x5047, 0x98F0, 0x6703, 0x98F1, 0x5055, 0x98F2, 0x5050, 0x98F3, 0x5048, 0x98F4, 0x505A, + 0x98F5, 0x5056, 0x98F6, 0x506C, 0x98F7, 0x5078, 0x98F8, 0x5080, 0x98F9, 0x509A, 0x98FA, 0x5085, 0x98FB, 0x50B4, 0x98FC, 0x50B2, + 0x9940, 0x50C9, 0x9941, 0x50CA, 0x9942, 0x50B3, 0x9943, 0x50C2, 0x9944, 0x50D6, 0x9945, 0x50DE, 0x9946, 0x50E5, 0x9947, 0x50ED, + 0x9948, 0x50E3, 0x9949, 0x50EE, 0x994A, 0x50F9, 0x994B, 0x50F5, 0x994C, 0x5109, 0x994D, 0x5101, 0x994E, 0x5102, 0x994F, 0x5116, + 0x9950, 0x5115, 0x9951, 0x5114, 0x9952, 0x511A, 0x9953, 0x5121, 0x9954, 0x513A, 0x9955, 0x5137, 0x9956, 0x513C, 0x9957, 0x513B, + 0x9958, 0x513F, 0x9959, 0x5140, 0x995A, 0x5152, 0x995B, 0x514C, 0x995C, 0x5154, 0x995D, 0x5162, 0x995E, 0x7AF8, 0x995F, 0x5169, + 0x9960, 0x516A, 0x9961, 0x516E, 0x9962, 0x5180, 0x9963, 0x5182, 0x9964, 0x56D8, 0x9965, 0x518C, 0x9966, 0x5189, 0x9967, 0x518F, + 0x9968, 0x5191, 0x9969, 0x5193, 0x996A, 0x5195, 0x996B, 0x5196, 0x996C, 0x51A4, 0x996D, 0x51A6, 0x996E, 0x51A2, 0x996F, 0x51A9, + 0x9970, 0x51AA, 0x9971, 0x51AB, 0x9972, 0x51B3, 0x9973, 0x51B1, 0x9974, 0x51B2, 0x9975, 0x51B0, 0x9976, 0x51B5, 0x9977, 0x51BD, + 0x9978, 0x51C5, 0x9979, 0x51C9, 0x997A, 0x51DB, 0x997B, 0x51E0, 0x997C, 0x8655, 0x997D, 0x51E9, 0x997E, 0x51ED, 0x9980, 0x51F0, + 0x9981, 0x51F5, 0x9982, 0x51FE, 0x9983, 0x5204, 0x9984, 0x520B, 0x9985, 0x5214, 0x9986, 0x520E, 0x9987, 0x5227, 0x9988, 0x522A, + 0x9989, 0x522E, 0x998A, 0x5233, 0x998B, 0x5239, 0x998C, 0x524F, 0x998D, 0x5244, 0x998E, 0x524B, 0x998F, 0x524C, 0x9990, 0x525E, + 0x9991, 0x5254, 0x9992, 0x526A, 0x9993, 0x5274, 0x9994, 0x5269, 0x9995, 0x5273, 0x9996, 0x527F, 0x9997, 0x527D, 0x9998, 0x528D, + 0x9999, 0x5294, 0x999A, 0x5292, 0x999B, 0x5271, 0x999C, 0x5288, 0x999D, 0x5291, 0x999E, 0x8FA8, 0x999F, 0x8FA7, 0x99A0, 0x52AC, + 0x99A1, 0x52AD, 0x99A2, 0x52BC, 0x99A3, 0x52B5, 0x99A4, 0x52C1, 0x99A5, 0x52CD, 0x99A6, 0x52D7, 0x99A7, 0x52DE, 0x99A8, 0x52E3, + 0x99A9, 0x52E6, 0x99AA, 0x98ED, 0x99AB, 0x52E0, 0x99AC, 0x52F3, 0x99AD, 0x52F5, 0x99AE, 0x52F8, 0x99AF, 0x52F9, 0x99B0, 0x5306, + 0x99B1, 0x5308, 0x99B2, 0x7538, 0x99B3, 0x530D, 0x99B4, 0x5310, 0x99B5, 0x530F, 0x99B6, 0x5315, 0x99B7, 0x531A, 0x99B8, 0x5323, + 0x99B9, 0x532F, 0x99BA, 0x5331, 0x99BB, 0x5333, 0x99BC, 0x5338, 0x99BD, 0x5340, 0x99BE, 0x5346, 0x99BF, 0x5345, 0x99C0, 0x4E17, + 0x99C1, 0x5349, 0x99C2, 0x534D, 0x99C3, 0x51D6, 0x99C4, 0x535E, 0x99C5, 0x5369, 0x99C6, 0x536E, 0x99C7, 0x5918, 0x99C8, 0x537B, + 0x99C9, 0x5377, 0x99CA, 0x5382, 0x99CB, 0x5396, 0x99CC, 0x53A0, 0x99CD, 0x53A6, 0x99CE, 0x53A5, 0x99CF, 0x53AE, 0x99D0, 0x53B0, + 0x99D1, 0x53B6, 0x99D2, 0x53C3, 0x99D3, 0x7C12, 0x99D4, 0x96D9, 0x99D5, 0x53DF, 0x99D6, 0x66FC, 0x99D7, 0x71EE, 0x99D8, 0x53EE, + 0x99D9, 0x53E8, 0x99DA, 0x53ED, 0x99DB, 0x53FA, 0x99DC, 0x5401, 0x99DD, 0x543D, 0x99DE, 0x5440, 0x99DF, 0x542C, 0x99E0, 0x542D, + 0x99E1, 0x543C, 0x99E2, 0x542E, 0x99E3, 0x5436, 0x99E4, 0x5429, 0x99E5, 0x541D, 0x99E6, 0x544E, 0x99E7, 0x548F, 0x99E8, 0x5475, + 0x99E9, 0x548E, 0x99EA, 0x545F, 0x99EB, 0x5471, 0x99EC, 0x5477, 0x99ED, 0x5470, 0x99EE, 0x5492, 0x99EF, 0x547B, 0x99F0, 0x5480, + 0x99F1, 0x5476, 0x99F2, 0x5484, 0x99F3, 0x5490, 0x99F4, 0x5486, 0x99F5, 0x54C7, 0x99F6, 0x54A2, 0x99F7, 0x54B8, 0x99F8, 0x54A5, + 0x99F9, 0x54AC, 0x99FA, 0x54C4, 0x99FB, 0x54C8, 0x99FC, 0x54A8, 0x9A40, 0x54AB, 0x9A41, 0x54C2, 0x9A42, 0x54A4, 0x9A43, 0x54BE, + 0x9A44, 0x54BC, 0x9A45, 0x54D8, 0x9A46, 0x54E5, 0x9A47, 0x54E6, 0x9A48, 0x550F, 0x9A49, 0x5514, 0x9A4A, 0x54FD, 0x9A4B, 0x54EE, + 0x9A4C, 0x54ED, 0x9A4D, 0x54FA, 0x9A4E, 0x54E2, 0x9A4F, 0x5539, 0x9A50, 0x5540, 0x9A51, 0x5563, 0x9A52, 0x554C, 0x9A53, 0x552E, + 0x9A54, 0x555C, 0x9A55, 0x5545, 0x9A56, 0x5556, 0x9A57, 0x5557, 0x9A58, 0x5538, 0x9A59, 0x5533, 0x9A5A, 0x555D, 0x9A5B, 0x5599, + 0x9A5C, 0x5580, 0x9A5D, 0x54AF, 0x9A5E, 0x558A, 0x9A5F, 0x559F, 0x9A60, 0x557B, 0x9A61, 0x557E, 0x9A62, 0x5598, 0x9A63, 0x559E, + 0x9A64, 0x55AE, 0x9A65, 0x557C, 0x9A66, 0x5583, 0x9A67, 0x55A9, 0x9A68, 0x5587, 0x9A69, 0x55A8, 0x9A6A, 0x55DA, 0x9A6B, 0x55C5, + 0x9A6C, 0x55DF, 0x9A6D, 0x55C4, 0x9A6E, 0x55DC, 0x9A6F, 0x55E4, 0x9A70, 0x55D4, 0x9A71, 0x5614, 0x9A72, 0x55F7, 0x9A73, 0x5616, + 0x9A74, 0x55FE, 0x9A75, 0x55FD, 0x9A76, 0x561B, 0x9A77, 0x55F9, 0x9A78, 0x564E, 0x9A79, 0x5650, 0x9A7A, 0x71DF, 0x9A7B, 0x5634, + 0x9A7C, 0x5636, 0x9A7D, 0x5632, 0x9A7E, 0x5638, 0x9A80, 0x566B, 0x9A81, 0x5664, 0x9A82, 0x562F, 0x9A83, 0x566C, 0x9A84, 0x566A, + 0x9A85, 0x5686, 0x9A86, 0x5680, 0x9A87, 0x568A, 0x9A88, 0x56A0, 0x9A89, 0x5694, 0x9A8A, 0x568F, 0x9A8B, 0x56A5, 0x9A8C, 0x56AE, + 0x9A8D, 0x56B6, 0x9A8E, 0x56B4, 0x9A8F, 0x56C2, 0x9A90, 0x56BC, 0x9A91, 0x56C1, 0x9A92, 0x56C3, 0x9A93, 0x56C0, 0x9A94, 0x56C8, + 0x9A95, 0x56CE, 0x9A96, 0x56D1, 0x9A97, 0x56D3, 0x9A98, 0x56D7, 0x9A99, 0x56EE, 0x9A9A, 0x56F9, 0x9A9B, 0x5700, 0x9A9C, 0x56FF, + 0x9A9D, 0x5704, 0x9A9E, 0x5709, 0x9A9F, 0x5708, 0x9AA0, 0x570B, 0x9AA1, 0x570D, 0x9AA2, 0x5713, 0x9AA3, 0x5718, 0x9AA4, 0x5716, + 0x9AA5, 0x55C7, 0x9AA6, 0x571C, 0x9AA7, 0x5726, 0x9AA8, 0x5737, 0x9AA9, 0x5738, 0x9AAA, 0x574E, 0x9AAB, 0x573B, 0x9AAC, 0x5740, + 0x9AAD, 0x574F, 0x9AAE, 0x5769, 0x9AAF, 0x57C0, 0x9AB0, 0x5788, 0x9AB1, 0x5761, 0x9AB2, 0x577F, 0x9AB3, 0x5789, 0x9AB4, 0x5793, + 0x9AB5, 0x57A0, 0x9AB6, 0x57B3, 0x9AB7, 0x57A4, 0x9AB8, 0x57AA, 0x9AB9, 0x57B0, 0x9ABA, 0x57C3, 0x9ABB, 0x57C6, 0x9ABC, 0x57D4, + 0x9ABD, 0x57D2, 0x9ABE, 0x57D3, 0x9ABF, 0x580A, 0x9AC0, 0x57D6, 0x9AC1, 0x57E3, 0x9AC2, 0x580B, 0x9AC3, 0x5819, 0x9AC4, 0x581D, + 0x9AC5, 0x5872, 0x9AC6, 0x5821, 0x9AC7, 0x5862, 0x9AC8, 0x584B, 0x9AC9, 0x5870, 0x9ACA, 0x6BC0, 0x9ACB, 0x5852, 0x9ACC, 0x583D, + 0x9ACD, 0x5879, 0x9ACE, 0x5885, 0x9ACF, 0x58B9, 0x9AD0, 0x589F, 0x9AD1, 0x58AB, 0x9AD2, 0x58BA, 0x9AD3, 0x58DE, 0x9AD4, 0x58BB, + 0x9AD5, 0x58B8, 0x9AD6, 0x58AE, 0x9AD7, 0x58C5, 0x9AD8, 0x58D3, 0x9AD9, 0x58D1, 0x9ADA, 0x58D7, 0x9ADB, 0x58D9, 0x9ADC, 0x58D8, + 0x9ADD, 0x58E5, 0x9ADE, 0x58DC, 0x9ADF, 0x58E4, 0x9AE0, 0x58DF, 0x9AE1, 0x58EF, 0x9AE2, 0x58FA, 0x9AE3, 0x58F9, 0x9AE4, 0x58FB, + 0x9AE5, 0x58FC, 0x9AE6, 0x58FD, 0x9AE7, 0x5902, 0x9AE8, 0x590A, 0x9AE9, 0x5910, 0x9AEA, 0x591B, 0x9AEB, 0x68A6, 0x9AEC, 0x5925, + 0x9AED, 0x592C, 0x9AEE, 0x592D, 0x9AEF, 0x5932, 0x9AF0, 0x5938, 0x9AF1, 0x593E, 0x9AF2, 0x7AD2, 0x9AF3, 0x5955, 0x9AF4, 0x5950, + 0x9AF5, 0x594E, 0x9AF6, 0x595A, 0x9AF7, 0x5958, 0x9AF8, 0x5962, 0x9AF9, 0x5960, 0x9AFA, 0x5967, 0x9AFB, 0x596C, 0x9AFC, 0x5969, + 0x9B40, 0x5978, 0x9B41, 0x5981, 0x9B42, 0x599D, 0x9B43, 0x4F5E, 0x9B44, 0x4FAB, 0x9B45, 0x59A3, 0x9B46, 0x59B2, 0x9B47, 0x59C6, + 0x9B48, 0x59E8, 0x9B49, 0x59DC, 0x9B4A, 0x598D, 0x9B4B, 0x59D9, 0x9B4C, 0x59DA, 0x9B4D, 0x5A25, 0x9B4E, 0x5A1F, 0x9B4F, 0x5A11, + 0x9B50, 0x5A1C, 0x9B51, 0x5A09, 0x9B52, 0x5A1A, 0x9B53, 0x5A40, 0x9B54, 0x5A6C, 0x9B55, 0x5A49, 0x9B56, 0x5A35, 0x9B57, 0x5A36, + 0x9B58, 0x5A62, 0x9B59, 0x5A6A, 0x9B5A, 0x5A9A, 0x9B5B, 0x5ABC, 0x9B5C, 0x5ABE, 0x9B5D, 0x5ACB, 0x9B5E, 0x5AC2, 0x9B5F, 0x5ABD, + 0x9B60, 0x5AE3, 0x9B61, 0x5AD7, 0x9B62, 0x5AE6, 0x9B63, 0x5AE9, 0x9B64, 0x5AD6, 0x9B65, 0x5AFA, 0x9B66, 0x5AFB, 0x9B67, 0x5B0C, + 0x9B68, 0x5B0B, 0x9B69, 0x5B16, 0x9B6A, 0x5B32, 0x9B6B, 0x5AD0, 0x9B6C, 0x5B2A, 0x9B6D, 0x5B36, 0x9B6E, 0x5B3E, 0x9B6F, 0x5B43, + 0x9B70, 0x5B45, 0x9B71, 0x5B40, 0x9B72, 0x5B51, 0x9B73, 0x5B55, 0x9B74, 0x5B5A, 0x9B75, 0x5B5B, 0x9B76, 0x5B65, 0x9B77, 0x5B69, + 0x9B78, 0x5B70, 0x9B79, 0x5B73, 0x9B7A, 0x5B75, 0x9B7B, 0x5B78, 0x9B7C, 0x6588, 0x9B7D, 0x5B7A, 0x9B7E, 0x5B80, 0x9B80, 0x5B83, + 0x9B81, 0x5BA6, 0x9B82, 0x5BB8, 0x9B83, 0x5BC3, 0x9B84, 0x5BC7, 0x9B85, 0x5BC9, 0x9B86, 0x5BD4, 0x9B87, 0x5BD0, 0x9B88, 0x5BE4, + 0x9B89, 0x5BE6, 0x9B8A, 0x5BE2, 0x9B8B, 0x5BDE, 0x9B8C, 0x5BE5, 0x9B8D, 0x5BEB, 0x9B8E, 0x5BF0, 0x9B8F, 0x5BF6, 0x9B90, 0x5BF3, + 0x9B91, 0x5C05, 0x9B92, 0x5C07, 0x9B93, 0x5C08, 0x9B94, 0x5C0D, 0x9B95, 0x5C13, 0x9B96, 0x5C20, 0x9B97, 0x5C22, 0x9B98, 0x5C28, + 0x9B99, 0x5C38, 0x9B9A, 0x5C39, 0x9B9B, 0x5C41, 0x9B9C, 0x5C46, 0x9B9D, 0x5C4E, 0x9B9E, 0x5C53, 0x9B9F, 0x5C50, 0x9BA0, 0x5C4F, + 0x9BA1, 0x5B71, 0x9BA2, 0x5C6C, 0x9BA3, 0x5C6E, 0x9BA4, 0x4E62, 0x9BA5, 0x5C76, 0x9BA6, 0x5C79, 0x9BA7, 0x5C8C, 0x9BA8, 0x5C91, + 0x9BA9, 0x5C94, 0x9BAA, 0x599B, 0x9BAB, 0x5CAB, 0x9BAC, 0x5CBB, 0x9BAD, 0x5CB6, 0x9BAE, 0x5CBC, 0x9BAF, 0x5CB7, 0x9BB0, 0x5CC5, + 0x9BB1, 0x5CBE, 0x9BB2, 0x5CC7, 0x9BB3, 0x5CD9, 0x9BB4, 0x5CE9, 0x9BB5, 0x5CFD, 0x9BB6, 0x5CFA, 0x9BB7, 0x5CED, 0x9BB8, 0x5D8C, + 0x9BB9, 0x5CEA, 0x9BBA, 0x5D0B, 0x9BBB, 0x5D15, 0x9BBC, 0x5D17, 0x9BBD, 0x5D5C, 0x9BBE, 0x5D1F, 0x9BBF, 0x5D1B, 0x9BC0, 0x5D11, + 0x9BC1, 0x5D14, 0x9BC2, 0x5D22, 0x9BC3, 0x5D1A, 0x9BC4, 0x5D19, 0x9BC5, 0x5D18, 0x9BC6, 0x5D4C, 0x9BC7, 0x5D52, 0x9BC8, 0x5D4E, + 0x9BC9, 0x5D4B, 0x9BCA, 0x5D6C, 0x9BCB, 0x5D73, 0x9BCC, 0x5D76, 0x9BCD, 0x5D87, 0x9BCE, 0x5D84, 0x9BCF, 0x5D82, 0x9BD0, 0x5DA2, + 0x9BD1, 0x5D9D, 0x9BD2, 0x5DAC, 0x9BD3, 0x5DAE, 0x9BD4, 0x5DBD, 0x9BD5, 0x5D90, 0x9BD6, 0x5DB7, 0x9BD7, 0x5DBC, 0x9BD8, 0x5DC9, + 0x9BD9, 0x5DCD, 0x9BDA, 0x5DD3, 0x9BDB, 0x5DD2, 0x9BDC, 0x5DD6, 0x9BDD, 0x5DDB, 0x9BDE, 0x5DEB, 0x9BDF, 0x5DF2, 0x9BE0, 0x5DF5, + 0x9BE1, 0x5E0B, 0x9BE2, 0x5E1A, 0x9BE3, 0x5E19, 0x9BE4, 0x5E11, 0x9BE5, 0x5E1B, 0x9BE6, 0x5E36, 0x9BE7, 0x5E37, 0x9BE8, 0x5E44, + 0x9BE9, 0x5E43, 0x9BEA, 0x5E40, 0x9BEB, 0x5E4E, 0x9BEC, 0x5E57, 0x9BED, 0x5E54, 0x9BEE, 0x5E5F, 0x9BEF, 0x5E62, 0x9BF0, 0x5E64, + 0x9BF1, 0x5E47, 0x9BF2, 0x5E75, 0x9BF3, 0x5E76, 0x9BF4, 0x5E7A, 0x9BF5, 0x9EBC, 0x9BF6, 0x5E7F, 0x9BF7, 0x5EA0, 0x9BF8, 0x5EC1, + 0x9BF9, 0x5EC2, 0x9BFA, 0x5EC8, 0x9BFB, 0x5ED0, 0x9BFC, 0x5ECF, 0x9C40, 0x5ED6, 0x9C41, 0x5EE3, 0x9C42, 0x5EDD, 0x9C43, 0x5EDA, + 0x9C44, 0x5EDB, 0x9C45, 0x5EE2, 0x9C46, 0x5EE1, 0x9C47, 0x5EE8, 0x9C48, 0x5EE9, 0x9C49, 0x5EEC, 0x9C4A, 0x5EF1, 0x9C4B, 0x5EF3, + 0x9C4C, 0x5EF0, 0x9C4D, 0x5EF4, 0x9C4E, 0x5EF8, 0x9C4F, 0x5EFE, 0x9C50, 0x5F03, 0x9C51, 0x5F09, 0x9C52, 0x5F5D, 0x9C53, 0x5F5C, + 0x9C54, 0x5F0B, 0x9C55, 0x5F11, 0x9C56, 0x5F16, 0x9C57, 0x5F29, 0x9C58, 0x5F2D, 0x9C59, 0x5F38, 0x9C5A, 0x5F41, 0x9C5B, 0x5F48, + 0x9C5C, 0x5F4C, 0x9C5D, 0x5F4E, 0x9C5E, 0x5F2F, 0x9C5F, 0x5F51, 0x9C60, 0x5F56, 0x9C61, 0x5F57, 0x9C62, 0x5F59, 0x9C63, 0x5F61, + 0x9C64, 0x5F6D, 0x9C65, 0x5F73, 0x9C66, 0x5F77, 0x9C67, 0x5F83, 0x9C68, 0x5F82, 0x9C69, 0x5F7F, 0x9C6A, 0x5F8A, 0x9C6B, 0x5F88, + 0x9C6C, 0x5F91, 0x9C6D, 0x5F87, 0x9C6E, 0x5F9E, 0x9C6F, 0x5F99, 0x9C70, 0x5F98, 0x9C71, 0x5FA0, 0x9C72, 0x5FA8, 0x9C73, 0x5FAD, + 0x9C74, 0x5FBC, 0x9C75, 0x5FD6, 0x9C76, 0x5FFB, 0x9C77, 0x5FE4, 0x9C78, 0x5FF8, 0x9C79, 0x5FF1, 0x9C7A, 0x5FDD, 0x9C7B, 0x60B3, + 0x9C7C, 0x5FFF, 0x9C7D, 0x6021, 0x9C7E, 0x6060, 0x9C80, 0x6019, 0x9C81, 0x6010, 0x9C82, 0x6029, 0x9C83, 0x600E, 0x9C84, 0x6031, + 0x9C85, 0x601B, 0x9C86, 0x6015, 0x9C87, 0x602B, 0x9C88, 0x6026, 0x9C89, 0x600F, 0x9C8A, 0x603A, 0x9C8B, 0x605A, 0x9C8C, 0x6041, + 0x9C8D, 0x606A, 0x9C8E, 0x6077, 0x9C8F, 0x605F, 0x9C90, 0x604A, 0x9C91, 0x6046, 0x9C92, 0x604D, 0x9C93, 0x6063, 0x9C94, 0x6043, + 0x9C95, 0x6064, 0x9C96, 0x6042, 0x9C97, 0x606C, 0x9C98, 0x606B, 0x9C99, 0x6059, 0x9C9A, 0x6081, 0x9C9B, 0x608D, 0x9C9C, 0x60E7, + 0x9C9D, 0x6083, 0x9C9E, 0x609A, 0x9C9F, 0x6084, 0x9CA0, 0x609B, 0x9CA1, 0x6096, 0x9CA2, 0x6097, 0x9CA3, 0x6092, 0x9CA4, 0x60A7, + 0x9CA5, 0x608B, 0x9CA6, 0x60E1, 0x9CA7, 0x60B8, 0x9CA8, 0x60E0, 0x9CA9, 0x60D3, 0x9CAA, 0x60B4, 0x9CAB, 0x5FF0, 0x9CAC, 0x60BD, + 0x9CAD, 0x60C6, 0x9CAE, 0x60B5, 0x9CAF, 0x60D8, 0x9CB0, 0x614D, 0x9CB1, 0x6115, 0x9CB2, 0x6106, 0x9CB3, 0x60F6, 0x9CB4, 0x60F7, + 0x9CB5, 0x6100, 0x9CB6, 0x60F4, 0x9CB7, 0x60FA, 0x9CB8, 0x6103, 0x9CB9, 0x6121, 0x9CBA, 0x60FB, 0x9CBB, 0x60F1, 0x9CBC, 0x610D, + 0x9CBD, 0x610E, 0x9CBE, 0x6147, 0x9CBF, 0x613E, 0x9CC0, 0x6128, 0x9CC1, 0x6127, 0x9CC2, 0x614A, 0x9CC3, 0x613F, 0x9CC4, 0x613C, + 0x9CC5, 0x612C, 0x9CC6, 0x6134, 0x9CC7, 0x613D, 0x9CC8, 0x6142, 0x9CC9, 0x6144, 0x9CCA, 0x6173, 0x9CCB, 0x6177, 0x9CCC, 0x6158, + 0x9CCD, 0x6159, 0x9CCE, 0x615A, 0x9CCF, 0x616B, 0x9CD0, 0x6174, 0x9CD1, 0x616F, 0x9CD2, 0x6165, 0x9CD3, 0x6171, 0x9CD4, 0x615F, + 0x9CD5, 0x615D, 0x9CD6, 0x6153, 0x9CD7, 0x6175, 0x9CD8, 0x6199, 0x9CD9, 0x6196, 0x9CDA, 0x6187, 0x9CDB, 0x61AC, 0x9CDC, 0x6194, + 0x9CDD, 0x619A, 0x9CDE, 0x618A, 0x9CDF, 0x6191, 0x9CE0, 0x61AB, 0x9CE1, 0x61AE, 0x9CE2, 0x61CC, 0x9CE3, 0x61CA, 0x9CE4, 0x61C9, + 0x9CE5, 0x61F7, 0x9CE6, 0x61C8, 0x9CE7, 0x61C3, 0x9CE8, 0x61C6, 0x9CE9, 0x61BA, 0x9CEA, 0x61CB, 0x9CEB, 0x7F79, 0x9CEC, 0x61CD, + 0x9CED, 0x61E6, 0x9CEE, 0x61E3, 0x9CEF, 0x61F6, 0x9CF0, 0x61FA, 0x9CF1, 0x61F4, 0x9CF2, 0x61FF, 0x9CF3, 0x61FD, 0x9CF4, 0x61FC, + 0x9CF5, 0x61FE, 0x9CF6, 0x6200, 0x9CF7, 0x6208, 0x9CF8, 0x6209, 0x9CF9, 0x620D, 0x9CFA, 0x620C, 0x9CFB, 0x6214, 0x9CFC, 0x621B, + 0x9D40, 0x621E, 0x9D41, 0x6221, 0x9D42, 0x622A, 0x9D43, 0x622E, 0x9D44, 0x6230, 0x9D45, 0x6232, 0x9D46, 0x6233, 0x9D47, 0x6241, + 0x9D48, 0x624E, 0x9D49, 0x625E, 0x9D4A, 0x6263, 0x9D4B, 0x625B, 0x9D4C, 0x6260, 0x9D4D, 0x6268, 0x9D4E, 0x627C, 0x9D4F, 0x6282, + 0x9D50, 0x6289, 0x9D51, 0x627E, 0x9D52, 0x6292, 0x9D53, 0x6293, 0x9D54, 0x6296, 0x9D55, 0x62D4, 0x9D56, 0x6283, 0x9D57, 0x6294, + 0x9D58, 0x62D7, 0x9D59, 0x62D1, 0x9D5A, 0x62BB, 0x9D5B, 0x62CF, 0x9D5C, 0x62FF, 0x9D5D, 0x62C6, 0x9D5E, 0x64D4, 0x9D5F, 0x62C8, + 0x9D60, 0x62DC, 0x9D61, 0x62CC, 0x9D62, 0x62CA, 0x9D63, 0x62C2, 0x9D64, 0x62C7, 0x9D65, 0x629B, 0x9D66, 0x62C9, 0x9D67, 0x630C, + 0x9D68, 0x62EE, 0x9D69, 0x62F1, 0x9D6A, 0x6327, 0x9D6B, 0x6302, 0x9D6C, 0x6308, 0x9D6D, 0x62EF, 0x9D6E, 0x62F5, 0x9D6F, 0x6350, + 0x9D70, 0x633E, 0x9D71, 0x634D, 0x9D72, 0x641C, 0x9D73, 0x634F, 0x9D74, 0x6396, 0x9D75, 0x638E, 0x9D76, 0x6380, 0x9D77, 0x63AB, + 0x9D78, 0x6376, 0x9D79, 0x63A3, 0x9D7A, 0x638F, 0x9D7B, 0x6389, 0x9D7C, 0x639F, 0x9D7D, 0x63B5, 0x9D7E, 0x636B, 0x9D80, 0x6369, + 0x9D81, 0x63BE, 0x9D82, 0x63E9, 0x9D83, 0x63C0, 0x9D84, 0x63C6, 0x9D85, 0x63E3, 0x9D86, 0x63C9, 0x9D87, 0x63D2, 0x9D88, 0x63F6, + 0x9D89, 0x63C4, 0x9D8A, 0x6416, 0x9D8B, 0x6434, 0x9D8C, 0x6406, 0x9D8D, 0x6413, 0x9D8E, 0x6426, 0x9D8F, 0x6436, 0x9D90, 0x651D, + 0x9D91, 0x6417, 0x9D92, 0x6428, 0x9D93, 0x640F, 0x9D94, 0x6467, 0x9D95, 0x646F, 0x9D96, 0x6476, 0x9D97, 0x644E, 0x9D98, 0x652A, + 0x9D99, 0x6495, 0x9D9A, 0x6493, 0x9D9B, 0x64A5, 0x9D9C, 0x64A9, 0x9D9D, 0x6488, 0x9D9E, 0x64BC, 0x9D9F, 0x64DA, 0x9DA0, 0x64D2, + 0x9DA1, 0x64C5, 0x9DA2, 0x64C7, 0x9DA3, 0x64BB, 0x9DA4, 0x64D8, 0x9DA5, 0x64C2, 0x9DA6, 0x64F1, 0x9DA7, 0x64E7, 0x9DA8, 0x8209, + 0x9DA9, 0x64E0, 0x9DAA, 0x64E1, 0x9DAB, 0x62AC, 0x9DAC, 0x64E3, 0x9DAD, 0x64EF, 0x9DAE, 0x652C, 0x9DAF, 0x64F6, 0x9DB0, 0x64F4, + 0x9DB1, 0x64F2, 0x9DB2, 0x64FA, 0x9DB3, 0x6500, 0x9DB4, 0x64FD, 0x9DB5, 0x6518, 0x9DB6, 0x651C, 0x9DB7, 0x6505, 0x9DB8, 0x6524, + 0x9DB9, 0x6523, 0x9DBA, 0x652B, 0x9DBB, 0x6534, 0x9DBC, 0x6535, 0x9DBD, 0x6537, 0x9DBE, 0x6536, 0x9DBF, 0x6538, 0x9DC0, 0x754B, + 0x9DC1, 0x6548, 0x9DC2, 0x6556, 0x9DC3, 0x6555, 0x9DC4, 0x654D, 0x9DC5, 0x6558, 0x9DC6, 0x655E, 0x9DC7, 0x655D, 0x9DC8, 0x6572, + 0x9DC9, 0x6578, 0x9DCA, 0x6582, 0x9DCB, 0x6583, 0x9DCC, 0x8B8A, 0x9DCD, 0x659B, 0x9DCE, 0x659F, 0x9DCF, 0x65AB, 0x9DD0, 0x65B7, + 0x9DD1, 0x65C3, 0x9DD2, 0x65C6, 0x9DD3, 0x65C1, 0x9DD4, 0x65C4, 0x9DD5, 0x65CC, 0x9DD6, 0x65D2, 0x9DD7, 0x65DB, 0x9DD8, 0x65D9, + 0x9DD9, 0x65E0, 0x9DDA, 0x65E1, 0x9DDB, 0x65F1, 0x9DDC, 0x6772, 0x9DDD, 0x660A, 0x9DDE, 0x6603, 0x9DDF, 0x65FB, 0x9DE0, 0x6773, + 0x9DE1, 0x6635, 0x9DE2, 0x6636, 0x9DE3, 0x6634, 0x9DE4, 0x661C, 0x9DE5, 0x664F, 0x9DE6, 0x6644, 0x9DE7, 0x6649, 0x9DE8, 0x6641, + 0x9DE9, 0x665E, 0x9DEA, 0x665D, 0x9DEB, 0x6664, 0x9DEC, 0x6667, 0x9DED, 0x6668, 0x9DEE, 0x665F, 0x9DEF, 0x6662, 0x9DF0, 0x6670, + 0x9DF1, 0x6683, 0x9DF2, 0x6688, 0x9DF3, 0x668E, 0x9DF4, 0x6689, 0x9DF5, 0x6684, 0x9DF6, 0x6698, 0x9DF7, 0x669D, 0x9DF8, 0x66C1, + 0x9DF9, 0x66B9, 0x9DFA, 0x66C9, 0x9DFB, 0x66BE, 0x9DFC, 0x66BC, 0x9E40, 0x66C4, 0x9E41, 0x66B8, 0x9E42, 0x66D6, 0x9E43, 0x66DA, + 0x9E44, 0x66E0, 0x9E45, 0x663F, 0x9E46, 0x66E6, 0x9E47, 0x66E9, 0x9E48, 0x66F0, 0x9E49, 0x66F5, 0x9E4A, 0x66F7, 0x9E4B, 0x670F, + 0x9E4C, 0x6716, 0x9E4D, 0x671E, 0x9E4E, 0x6726, 0x9E4F, 0x6727, 0x9E50, 0x9738, 0x9E51, 0x672E, 0x9E52, 0x673F, 0x9E53, 0x6736, + 0x9E54, 0x6741, 0x9E55, 0x6738, 0x9E56, 0x6737, 0x9E57, 0x6746, 0x9E58, 0x675E, 0x9E59, 0x6760, 0x9E5A, 0x6759, 0x9E5B, 0x6763, + 0x9E5C, 0x6764, 0x9E5D, 0x6789, 0x9E5E, 0x6770, 0x9E5F, 0x67A9, 0x9E60, 0x677C, 0x9E61, 0x676A, 0x9E62, 0x678C, 0x9E63, 0x678B, + 0x9E64, 0x67A6, 0x9E65, 0x67A1, 0x9E66, 0x6785, 0x9E67, 0x67B7, 0x9E68, 0x67EF, 0x9E69, 0x67B4, 0x9E6A, 0x67EC, 0x9E6B, 0x67B3, + 0x9E6C, 0x67E9, 0x9E6D, 0x67B8, 0x9E6E, 0x67E4, 0x9E6F, 0x67DE, 0x9E70, 0x67DD, 0x9E71, 0x67E2, 0x9E72, 0x67EE, 0x9E73, 0x67B9, + 0x9E74, 0x67CE, 0x9E75, 0x67C6, 0x9E76, 0x67E7, 0x9E77, 0x6A9C, 0x9E78, 0x681E, 0x9E79, 0x6846, 0x9E7A, 0x6829, 0x9E7B, 0x6840, + 0x9E7C, 0x684D, 0x9E7D, 0x6832, 0x9E7E, 0x684E, 0x9E80, 0x68B3, 0x9E81, 0x682B, 0x9E82, 0x6859, 0x9E83, 0x6863, 0x9E84, 0x6877, + 0x9E85, 0x687F, 0x9E86, 0x689F, 0x9E87, 0x688F, 0x9E88, 0x68AD, 0x9E89, 0x6894, 0x9E8A, 0x689D, 0x9E8B, 0x689B, 0x9E8C, 0x6883, + 0x9E8D, 0x6AAE, 0x9E8E, 0x68B9, 0x9E8F, 0x6874, 0x9E90, 0x68B5, 0x9E91, 0x68A0, 0x9E92, 0x68BA, 0x9E93, 0x690F, 0x9E94, 0x688D, + 0x9E95, 0x687E, 0x9E96, 0x6901, 0x9E97, 0x68CA, 0x9E98, 0x6908, 0x9E99, 0x68D8, 0x9E9A, 0x6922, 0x9E9B, 0x6926, 0x9E9C, 0x68E1, + 0x9E9D, 0x690C, 0x9E9E, 0x68CD, 0x9E9F, 0x68D4, 0x9EA0, 0x68E7, 0x9EA1, 0x68D5, 0x9EA2, 0x6936, 0x9EA3, 0x6912, 0x9EA4, 0x6904, + 0x9EA5, 0x68D7, 0x9EA6, 0x68E3, 0x9EA7, 0x6925, 0x9EA8, 0x68F9, 0x9EA9, 0x68E0, 0x9EAA, 0x68EF, 0x9EAB, 0x6928, 0x9EAC, 0x692A, + 0x9EAD, 0x691A, 0x9EAE, 0x6923, 0x9EAF, 0x6921, 0x9EB0, 0x68C6, 0x9EB1, 0x6979, 0x9EB2, 0x6977, 0x9EB3, 0x695C, 0x9EB4, 0x6978, + 0x9EB5, 0x696B, 0x9EB6, 0x6954, 0x9EB7, 0x697E, 0x9EB8, 0x696E, 0x9EB9, 0x6939, 0x9EBA, 0x6974, 0x9EBB, 0x693D, 0x9EBC, 0x6959, + 0x9EBD, 0x6930, 0x9EBE, 0x6961, 0x9EBF, 0x695E, 0x9EC0, 0x695D, 0x9EC1, 0x6981, 0x9EC2, 0x696A, 0x9EC3, 0x69B2, 0x9EC4, 0x69AE, + 0x9EC5, 0x69D0, 0x9EC6, 0x69BF, 0x9EC7, 0x69C1, 0x9EC8, 0x69D3, 0x9EC9, 0x69BE, 0x9ECA, 0x69CE, 0x9ECB, 0x5BE8, 0x9ECC, 0x69CA, + 0x9ECD, 0x69DD, 0x9ECE, 0x69BB, 0x9ECF, 0x69C3, 0x9ED0, 0x69A7, 0x9ED1, 0x6A2E, 0x9ED2, 0x6991, 0x9ED3, 0x69A0, 0x9ED4, 0x699C, + 0x9ED5, 0x6995, 0x9ED6, 0x69B4, 0x9ED7, 0x69DE, 0x9ED8, 0x69E8, 0x9ED9, 0x6A02, 0x9EDA, 0x6A1B, 0x9EDB, 0x69FF, 0x9EDC, 0x6B0A, + 0x9EDD, 0x69F9, 0x9EDE, 0x69F2, 0x9EDF, 0x69E7, 0x9EE0, 0x6A05, 0x9EE1, 0x69B1, 0x9EE2, 0x6A1E, 0x9EE3, 0x69ED, 0x9EE4, 0x6A14, + 0x9EE5, 0x69EB, 0x9EE6, 0x6A0A, 0x9EE7, 0x6A12, 0x9EE8, 0x6AC1, 0x9EE9, 0x6A23, 0x9EEA, 0x6A13, 0x9EEB, 0x6A44, 0x9EEC, 0x6A0C, + 0x9EED, 0x6A72, 0x9EEE, 0x6A36, 0x9EEF, 0x6A78, 0x9EF0, 0x6A47, 0x9EF1, 0x6A62, 0x9EF2, 0x6A59, 0x9EF3, 0x6A66, 0x9EF4, 0x6A48, + 0x9EF5, 0x6A38, 0x9EF6, 0x6A22, 0x9EF7, 0x6A90, 0x9EF8, 0x6A8D, 0x9EF9, 0x6AA0, 0x9EFA, 0x6A84, 0x9EFB, 0x6AA2, 0x9EFC, 0x6AA3, + 0x9F40, 0x6A97, 0x9F41, 0x8617, 0x9F42, 0x6ABB, 0x9F43, 0x6AC3, 0x9F44, 0x6AC2, 0x9F45, 0x6AB8, 0x9F46, 0x6AB3, 0x9F47, 0x6AAC, + 0x9F48, 0x6ADE, 0x9F49, 0x6AD1, 0x9F4A, 0x6ADF, 0x9F4B, 0x6AAA, 0x9F4C, 0x6ADA, 0x9F4D, 0x6AEA, 0x9F4E, 0x6AFB, 0x9F4F, 0x6B05, + 0x9F50, 0x8616, 0x9F51, 0x6AFA, 0x9F52, 0x6B12, 0x9F53, 0x6B16, 0x9F54, 0x9B31, 0x9F55, 0x6B1F, 0x9F56, 0x6B38, 0x9F57, 0x6B37, + 0x9F58, 0x76DC, 0x9F59, 0x6B39, 0x9F5A, 0x98EE, 0x9F5B, 0x6B47, 0x9F5C, 0x6B43, 0x9F5D, 0x6B49, 0x9F5E, 0x6B50, 0x9F5F, 0x6B59, + 0x9F60, 0x6B54, 0x9F61, 0x6B5B, 0x9F62, 0x6B5F, 0x9F63, 0x6B61, 0x9F64, 0x6B78, 0x9F65, 0x6B79, 0x9F66, 0x6B7F, 0x9F67, 0x6B80, + 0x9F68, 0x6B84, 0x9F69, 0x6B83, 0x9F6A, 0x6B8D, 0x9F6B, 0x6B98, 0x9F6C, 0x6B95, 0x9F6D, 0x6B9E, 0x9F6E, 0x6BA4, 0x9F6F, 0x6BAA, + 0x9F70, 0x6BAB, 0x9F71, 0x6BAF, 0x9F72, 0x6BB2, 0x9F73, 0x6BB1, 0x9F74, 0x6BB3, 0x9F75, 0x6BB7, 0x9F76, 0x6BBC, 0x9F77, 0x6BC6, + 0x9F78, 0x6BCB, 0x9F79, 0x6BD3, 0x9F7A, 0x6BDF, 0x9F7B, 0x6BEC, 0x9F7C, 0x6BEB, 0x9F7D, 0x6BF3, 0x9F7E, 0x6BEF, 0x9F80, 0x9EBE, + 0x9F81, 0x6C08, 0x9F82, 0x6C13, 0x9F83, 0x6C14, 0x9F84, 0x6C1B, 0x9F85, 0x6C24, 0x9F86, 0x6C23, 0x9F87, 0x6C5E, 0x9F88, 0x6C55, + 0x9F89, 0x6C62, 0x9F8A, 0x6C6A, 0x9F8B, 0x6C82, 0x9F8C, 0x6C8D, 0x9F8D, 0x6C9A, 0x9F8E, 0x6C81, 0x9F8F, 0x6C9B, 0x9F90, 0x6C7E, + 0x9F91, 0x6C68, 0x9F92, 0x6C73, 0x9F93, 0x6C92, 0x9F94, 0x6C90, 0x9F95, 0x6CC4, 0x9F96, 0x6CF1, 0x9F97, 0x6CD3, 0x9F98, 0x6CBD, + 0x9F99, 0x6CD7, 0x9F9A, 0x6CC5, 0x9F9B, 0x6CDD, 0x9F9C, 0x6CAE, 0x9F9D, 0x6CB1, 0x9F9E, 0x6CBE, 0x9F9F, 0x6CBA, 0x9FA0, 0x6CDB, + 0x9FA1, 0x6CEF, 0x9FA2, 0x6CD9, 0x9FA3, 0x6CEA, 0x9FA4, 0x6D1F, 0x9FA5, 0x884D, 0x9FA6, 0x6D36, 0x9FA7, 0x6D2B, 0x9FA8, 0x6D3D, + 0x9FA9, 0x6D38, 0x9FAA, 0x6D19, 0x9FAB, 0x6D35, 0x9FAC, 0x6D33, 0x9FAD, 0x6D12, 0x9FAE, 0x6D0C, 0x9FAF, 0x6D63, 0x9FB0, 0x6D93, + 0x9FB1, 0x6D64, 0x9FB2, 0x6D5A, 0x9FB3, 0x6D79, 0x9FB4, 0x6D59, 0x9FB5, 0x6D8E, 0x9FB6, 0x6D95, 0x9FB7, 0x6FE4, 0x9FB8, 0x6D85, + 0x9FB9, 0x6DF9, 0x9FBA, 0x6E15, 0x9FBB, 0x6E0A, 0x9FBC, 0x6DB5, 0x9FBD, 0x6DC7, 0x9FBE, 0x6DE6, 0x9FBF, 0x6DB8, 0x9FC0, 0x6DC6, + 0x9FC1, 0x6DEC, 0x9FC2, 0x6DDE, 0x9FC3, 0x6DCC, 0x9FC4, 0x6DE8, 0x9FC5, 0x6DD2, 0x9FC6, 0x6DC5, 0x9FC7, 0x6DFA, 0x9FC8, 0x6DD9, + 0x9FC9, 0x6DE4, 0x9FCA, 0x6DD5, 0x9FCB, 0x6DEA, 0x9FCC, 0x6DEE, 0x9FCD, 0x6E2D, 0x9FCE, 0x6E6E, 0x9FCF, 0x6E2E, 0x9FD0, 0x6E19, + 0x9FD1, 0x6E72, 0x9FD2, 0x6E5F, 0x9FD3, 0x6E3E, 0x9FD4, 0x6E23, 0x9FD5, 0x6E6B, 0x9FD6, 0x6E2B, 0x9FD7, 0x6E76, 0x9FD8, 0x6E4D, + 0x9FD9, 0x6E1F, 0x9FDA, 0x6E43, 0x9FDB, 0x6E3A, 0x9FDC, 0x6E4E, 0x9FDD, 0x6E24, 0x9FDE, 0x6EFF, 0x9FDF, 0x6E1D, 0x9FE0, 0x6E38, + 0x9FE1, 0x6E82, 0x9FE2, 0x6EAA, 0x9FE3, 0x6E98, 0x9FE4, 0x6EC9, 0x9FE5, 0x6EB7, 0x9FE6, 0x6ED3, 0x9FE7, 0x6EBD, 0x9FE8, 0x6EAF, + 0x9FE9, 0x6EC4, 0x9FEA, 0x6EB2, 0x9FEB, 0x6ED4, 0x9FEC, 0x6ED5, 0x9FED, 0x6E8F, 0x9FEE, 0x6EA5, 0x9FEF, 0x6EC2, 0x9FF0, 0x6E9F, + 0x9FF1, 0x6F41, 0x9FF2, 0x6F11, 0x9FF3, 0x704C, 0x9FF4, 0x6EEC, 0x9FF5, 0x6EF8, 0x9FF6, 0x6EFE, 0x9FF7, 0x6F3F, 0x9FF8, 0x6EF2, + 0x9FF9, 0x6F31, 0x9FFA, 0x6EEF, 0x9FFB, 0x6F32, 0x9FFC, 0x6ECC, 0xE040, 0x6F3E, 0xE041, 0x6F13, 0xE042, 0x6EF7, 0xE043, 0x6F86, + 0xE044, 0x6F7A, 0xE045, 0x6F78, 0xE046, 0x6F81, 0xE047, 0x6F80, 0xE048, 0x6F6F, 0xE049, 0x6F5B, 0xE04A, 0x6FF3, 0xE04B, 0x6F6D, + 0xE04C, 0x6F82, 0xE04D, 0x6F7C, 0xE04E, 0x6F58, 0xE04F, 0x6F8E, 0xE050, 0x6F91, 0xE051, 0x6FC2, 0xE052, 0x6F66, 0xE053, 0x6FB3, + 0xE054, 0x6FA3, 0xE055, 0x6FA1, 0xE056, 0x6FA4, 0xE057, 0x6FB9, 0xE058, 0x6FC6, 0xE059, 0x6FAA, 0xE05A, 0x6FDF, 0xE05B, 0x6FD5, + 0xE05C, 0x6FEC, 0xE05D, 0x6FD4, 0xE05E, 0x6FD8, 0xE05F, 0x6FF1, 0xE060, 0x6FEE, 0xE061, 0x6FDB, 0xE062, 0x7009, 0xE063, 0x700B, + 0xE064, 0x6FFA, 0xE065, 0x7011, 0xE066, 0x7001, 0xE067, 0x700F, 0xE068, 0x6FFE, 0xE069, 0x701B, 0xE06A, 0x701A, 0xE06B, 0x6F74, + 0xE06C, 0x701D, 0xE06D, 0x7018, 0xE06E, 0x701F, 0xE06F, 0x7030, 0xE070, 0x703E, 0xE071, 0x7032, 0xE072, 0x7051, 0xE073, 0x7063, + 0xE074, 0x7099, 0xE075, 0x7092, 0xE076, 0x70AF, 0xE077, 0x70F1, 0xE078, 0x70AC, 0xE079, 0x70B8, 0xE07A, 0x70B3, 0xE07B, 0x70AE, + 0xE07C, 0x70DF, 0xE07D, 0x70CB, 0xE07E, 0x70DD, 0xE080, 0x70D9, 0xE081, 0x7109, 0xE082, 0x70FD, 0xE083, 0x711C, 0xE084, 0x7119, + 0xE085, 0x7165, 0xE086, 0x7155, 0xE087, 0x7188, 0xE088, 0x7166, 0xE089, 0x7162, 0xE08A, 0x714C, 0xE08B, 0x7156, 0xE08C, 0x716C, + 0xE08D, 0x718F, 0xE08E, 0x71FB, 0xE08F, 0x7184, 0xE090, 0x7195, 0xE091, 0x71A8, 0xE092, 0x71AC, 0xE093, 0x71D7, 0xE094, 0x71B9, + 0xE095, 0x71BE, 0xE096, 0x71D2, 0xE097, 0x71C9, 0xE098, 0x71D4, 0xE099, 0x71CE, 0xE09A, 0x71E0, 0xE09B, 0x71EC, 0xE09C, 0x71E7, + 0xE09D, 0x71F5, 0xE09E, 0x71FC, 0xE09F, 0x71F9, 0xE0A0, 0x71FF, 0xE0A1, 0x720D, 0xE0A2, 0x7210, 0xE0A3, 0x721B, 0xE0A4, 0x7228, + 0xE0A5, 0x722D, 0xE0A6, 0x722C, 0xE0A7, 0x7230, 0xE0A8, 0x7232, 0xE0A9, 0x723B, 0xE0AA, 0x723C, 0xE0AB, 0x723F, 0xE0AC, 0x7240, + 0xE0AD, 0x7246, 0xE0AE, 0x724B, 0xE0AF, 0x7258, 0xE0B0, 0x7274, 0xE0B1, 0x727E, 0xE0B2, 0x7282, 0xE0B3, 0x7281, 0xE0B4, 0x7287, + 0xE0B5, 0x7292, 0xE0B6, 0x7296, 0xE0B7, 0x72A2, 0xE0B8, 0x72A7, 0xE0B9, 0x72B9, 0xE0BA, 0x72B2, 0xE0BB, 0x72C3, 0xE0BC, 0x72C6, + 0xE0BD, 0x72C4, 0xE0BE, 0x72CE, 0xE0BF, 0x72D2, 0xE0C0, 0x72E2, 0xE0C1, 0x72E0, 0xE0C2, 0x72E1, 0xE0C3, 0x72F9, 0xE0C4, 0x72F7, + 0xE0C5, 0x500F, 0xE0C6, 0x7317, 0xE0C7, 0x730A, 0xE0C8, 0x731C, 0xE0C9, 0x7316, 0xE0CA, 0x731D, 0xE0CB, 0x7334, 0xE0CC, 0x732F, + 0xE0CD, 0x7329, 0xE0CE, 0x7325, 0xE0CF, 0x733E, 0xE0D0, 0x734E, 0xE0D1, 0x734F, 0xE0D2, 0x9ED8, 0xE0D3, 0x7357, 0xE0D4, 0x736A, + 0xE0D5, 0x7368, 0xE0D6, 0x7370, 0xE0D7, 0x7378, 0xE0D8, 0x7375, 0xE0D9, 0x737B, 0xE0DA, 0x737A, 0xE0DB, 0x73C8, 0xE0DC, 0x73B3, + 0xE0DD, 0x73CE, 0xE0DE, 0x73BB, 0xE0DF, 0x73C0, 0xE0E0, 0x73E5, 0xE0E1, 0x73EE, 0xE0E2, 0x73DE, 0xE0E3, 0x74A2, 0xE0E4, 0x7405, + 0xE0E5, 0x746F, 0xE0E6, 0x7425, 0xE0E7, 0x73F8, 0xE0E8, 0x7432, 0xE0E9, 0x743A, 0xE0EA, 0x7455, 0xE0EB, 0x743F, 0xE0EC, 0x745F, + 0xE0ED, 0x7459, 0xE0EE, 0x7441, 0xE0EF, 0x745C, 0xE0F0, 0x7469, 0xE0F1, 0x7470, 0xE0F2, 0x7463, 0xE0F3, 0x746A, 0xE0F4, 0x7476, + 0xE0F5, 0x747E, 0xE0F6, 0x748B, 0xE0F7, 0x749E, 0xE0F8, 0x74A7, 0xE0F9, 0x74CA, 0xE0FA, 0x74CF, 0xE0FB, 0x74D4, 0xE0FC, 0x73F1, + 0xE140, 0x74E0, 0xE141, 0x74E3, 0xE142, 0x74E7, 0xE143, 0x74E9, 0xE144, 0x74EE, 0xE145, 0x74F2, 0xE146, 0x74F0, 0xE147, 0x74F1, + 0xE148, 0x74F8, 0xE149, 0x74F7, 0xE14A, 0x7504, 0xE14B, 0x7503, 0xE14C, 0x7505, 0xE14D, 0x750C, 0xE14E, 0x750E, 0xE14F, 0x750D, + 0xE150, 0x7515, 0xE151, 0x7513, 0xE152, 0x751E, 0xE153, 0x7526, 0xE154, 0x752C, 0xE155, 0x753C, 0xE156, 0x7544, 0xE157, 0x754D, + 0xE158, 0x754A, 0xE159, 0x7549, 0xE15A, 0x755B, 0xE15B, 0x7546, 0xE15C, 0x755A, 0xE15D, 0x7569, 0xE15E, 0x7564, 0xE15F, 0x7567, + 0xE160, 0x756B, 0xE161, 0x756D, 0xE162, 0x7578, 0xE163, 0x7576, 0xE164, 0x7586, 0xE165, 0x7587, 0xE166, 0x7574, 0xE167, 0x758A, + 0xE168, 0x7589, 0xE169, 0x7582, 0xE16A, 0x7594, 0xE16B, 0x759A, 0xE16C, 0x759D, 0xE16D, 0x75A5, 0xE16E, 0x75A3, 0xE16F, 0x75C2, + 0xE170, 0x75B3, 0xE171, 0x75C3, 0xE172, 0x75B5, 0xE173, 0x75BD, 0xE174, 0x75B8, 0xE175, 0x75BC, 0xE176, 0x75B1, 0xE177, 0x75CD, + 0xE178, 0x75CA, 0xE179, 0x75D2, 0xE17A, 0x75D9, 0xE17B, 0x75E3, 0xE17C, 0x75DE, 0xE17D, 0x75FE, 0xE17E, 0x75FF, 0xE180, 0x75FC, + 0xE181, 0x7601, 0xE182, 0x75F0, 0xE183, 0x75FA, 0xE184, 0x75F2, 0xE185, 0x75F3, 0xE186, 0x760B, 0xE187, 0x760D, 0xE188, 0x7609, + 0xE189, 0x761F, 0xE18A, 0x7627, 0xE18B, 0x7620, 0xE18C, 0x7621, 0xE18D, 0x7622, 0xE18E, 0x7624, 0xE18F, 0x7634, 0xE190, 0x7630, + 0xE191, 0x763B, 0xE192, 0x7647, 0xE193, 0x7648, 0xE194, 0x7646, 0xE195, 0x765C, 0xE196, 0x7658, 0xE197, 0x7661, 0xE198, 0x7662, + 0xE199, 0x7668, 0xE19A, 0x7669, 0xE19B, 0x766A, 0xE19C, 0x7667, 0xE19D, 0x766C, 0xE19E, 0x7670, 0xE19F, 0x7672, 0xE1A0, 0x7676, + 0xE1A1, 0x7678, 0xE1A2, 0x767C, 0xE1A3, 0x7680, 0xE1A4, 0x7683, 0xE1A5, 0x7688, 0xE1A6, 0x768B, 0xE1A7, 0x768E, 0xE1A8, 0x7696, + 0xE1A9, 0x7693, 0xE1AA, 0x7699, 0xE1AB, 0x769A, 0xE1AC, 0x76B0, 0xE1AD, 0x76B4, 0xE1AE, 0x76B8, 0xE1AF, 0x76B9, 0xE1B0, 0x76BA, + 0xE1B1, 0x76C2, 0xE1B2, 0x76CD, 0xE1B3, 0x76D6, 0xE1B4, 0x76D2, 0xE1B5, 0x76DE, 0xE1B6, 0x76E1, 0xE1B7, 0x76E5, 0xE1B8, 0x76E7, + 0xE1B9, 0x76EA, 0xE1BA, 0x862F, 0xE1BB, 0x76FB, 0xE1BC, 0x7708, 0xE1BD, 0x7707, 0xE1BE, 0x7704, 0xE1BF, 0x7729, 0xE1C0, 0x7724, + 0xE1C1, 0x771E, 0xE1C2, 0x7725, 0xE1C3, 0x7726, 0xE1C4, 0x771B, 0xE1C5, 0x7737, 0xE1C6, 0x7738, 0xE1C7, 0x7747, 0xE1C8, 0x775A, + 0xE1C9, 0x7768, 0xE1CA, 0x776B, 0xE1CB, 0x775B, 0xE1CC, 0x7765, 0xE1CD, 0x777F, 0xE1CE, 0x777E, 0xE1CF, 0x7779, 0xE1D0, 0x778E, + 0xE1D1, 0x778B, 0xE1D2, 0x7791, 0xE1D3, 0x77A0, 0xE1D4, 0x779E, 0xE1D5, 0x77B0, 0xE1D6, 0x77B6, 0xE1D7, 0x77B9, 0xE1D8, 0x77BF, + 0xE1D9, 0x77BC, 0xE1DA, 0x77BD, 0xE1DB, 0x77BB, 0xE1DC, 0x77C7, 0xE1DD, 0x77CD, 0xE1DE, 0x77D7, 0xE1DF, 0x77DA, 0xE1E0, 0x77DC, + 0xE1E1, 0x77E3, 0xE1E2, 0x77EE, 0xE1E3, 0x77FC, 0xE1E4, 0x780C, 0xE1E5, 0x7812, 0xE1E6, 0x7926, 0xE1E7, 0x7820, 0xE1E8, 0x792A, + 0xE1E9, 0x7845, 0xE1EA, 0x788E, 0xE1EB, 0x7874, 0xE1EC, 0x7886, 0xE1ED, 0x787C, 0xE1EE, 0x789A, 0xE1EF, 0x788C, 0xE1F0, 0x78A3, + 0xE1F1, 0x78B5, 0xE1F2, 0x78AA, 0xE1F3, 0x78AF, 0xE1F4, 0x78D1, 0xE1F5, 0x78C6, 0xE1F6, 0x78CB, 0xE1F7, 0x78D4, 0xE1F8, 0x78BE, + 0xE1F9, 0x78BC, 0xE1FA, 0x78C5, 0xE1FB, 0x78CA, 0xE1FC, 0x78EC, 0xE240, 0x78E7, 0xE241, 0x78DA, 0xE242, 0x78FD, 0xE243, 0x78F4, + 0xE244, 0x7907, 0xE245, 0x7912, 0xE246, 0x7911, 0xE247, 0x7919, 0xE248, 0x792C, 0xE249, 0x792B, 0xE24A, 0x7940, 0xE24B, 0x7960, + 0xE24C, 0x7957, 0xE24D, 0x795F, 0xE24E, 0x795A, 0xE24F, 0x7955, 0xE250, 0x7953, 0xE251, 0x797A, 0xE252, 0x797F, 0xE253, 0x798A, + 0xE254, 0x799D, 0xE255, 0x79A7, 0xE256, 0x9F4B, 0xE257, 0x79AA, 0xE258, 0x79AE, 0xE259, 0x79B3, 0xE25A, 0x79B9, 0xE25B, 0x79BA, + 0xE25C, 0x79C9, 0xE25D, 0x79D5, 0xE25E, 0x79E7, 0xE25F, 0x79EC, 0xE260, 0x79E1, 0xE261, 0x79E3, 0xE262, 0x7A08, 0xE263, 0x7A0D, + 0xE264, 0x7A18, 0xE265, 0x7A19, 0xE266, 0x7A20, 0xE267, 0x7A1F, 0xE268, 0x7980, 0xE269, 0x7A31, 0xE26A, 0x7A3B, 0xE26B, 0x7A3E, + 0xE26C, 0x7A37, 0xE26D, 0x7A43, 0xE26E, 0x7A57, 0xE26F, 0x7A49, 0xE270, 0x7A61, 0xE271, 0x7A62, 0xE272, 0x7A69, 0xE273, 0x9F9D, + 0xE274, 0x7A70, 0xE275, 0x7A79, 0xE276, 0x7A7D, 0xE277, 0x7A88, 0xE278, 0x7A97, 0xE279, 0x7A95, 0xE27A, 0x7A98, 0xE27B, 0x7A96, + 0xE27C, 0x7AA9, 0xE27D, 0x7AC8, 0xE27E, 0x7AB0, 0xE280, 0x7AB6, 0xE281, 0x7AC5, 0xE282, 0x7AC4, 0xE283, 0x7ABF, 0xE284, 0x9083, + 0xE285, 0x7AC7, 0xE286, 0x7ACA, 0xE287, 0x7ACD, 0xE288, 0x7ACF, 0xE289, 0x7AD5, 0xE28A, 0x7AD3, 0xE28B, 0x7AD9, 0xE28C, 0x7ADA, + 0xE28D, 0x7ADD, 0xE28E, 0x7AE1, 0xE28F, 0x7AE2, 0xE290, 0x7AE6, 0xE291, 0x7AED, 0xE292, 0x7AF0, 0xE293, 0x7B02, 0xE294, 0x7B0F, + 0xE295, 0x7B0A, 0xE296, 0x7B06, 0xE297, 0x7B33, 0xE298, 0x7B18, 0xE299, 0x7B19, 0xE29A, 0x7B1E, 0xE29B, 0x7B35, 0xE29C, 0x7B28, + 0xE29D, 0x7B36, 0xE29E, 0x7B50, 0xE29F, 0x7B7A, 0xE2A0, 0x7B04, 0xE2A1, 0x7B4D, 0xE2A2, 0x7B0B, 0xE2A3, 0x7B4C, 0xE2A4, 0x7B45, + 0xE2A5, 0x7B75, 0xE2A6, 0x7B65, 0xE2A7, 0x7B74, 0xE2A8, 0x7B67, 0xE2A9, 0x7B70, 0xE2AA, 0x7B71, 0xE2AB, 0x7B6C, 0xE2AC, 0x7B6E, + 0xE2AD, 0x7B9D, 0xE2AE, 0x7B98, 0xE2AF, 0x7B9F, 0xE2B0, 0x7B8D, 0xE2B1, 0x7B9C, 0xE2B2, 0x7B9A, 0xE2B3, 0x7B8B, 0xE2B4, 0x7B92, + 0xE2B5, 0x7B8F, 0xE2B6, 0x7B5D, 0xE2B7, 0x7B99, 0xE2B8, 0x7BCB, 0xE2B9, 0x7BC1, 0xE2BA, 0x7BCC, 0xE2BB, 0x7BCF, 0xE2BC, 0x7BB4, + 0xE2BD, 0x7BC6, 0xE2BE, 0x7BDD, 0xE2BF, 0x7BE9, 0xE2C0, 0x7C11, 0xE2C1, 0x7C14, 0xE2C2, 0x7BE6, 0xE2C3, 0x7BE5, 0xE2C4, 0x7C60, + 0xE2C5, 0x7C00, 0xE2C6, 0x7C07, 0xE2C7, 0x7C13, 0xE2C8, 0x7BF3, 0xE2C9, 0x7BF7, 0xE2CA, 0x7C17, 0xE2CB, 0x7C0D, 0xE2CC, 0x7BF6, + 0xE2CD, 0x7C23, 0xE2CE, 0x7C27, 0xE2CF, 0x7C2A, 0xE2D0, 0x7C1F, 0xE2D1, 0x7C37, 0xE2D2, 0x7C2B, 0xE2D3, 0x7C3D, 0xE2D4, 0x7C4C, + 0xE2D5, 0x7C43, 0xE2D6, 0x7C54, 0xE2D7, 0x7C4F, 0xE2D8, 0x7C40, 0xE2D9, 0x7C50, 0xE2DA, 0x7C58, 0xE2DB, 0x7C5F, 0xE2DC, 0x7C64, + 0xE2DD, 0x7C56, 0xE2DE, 0x7C65, 0xE2DF, 0x7C6C, 0xE2E0, 0x7C75, 0xE2E1, 0x7C83, 0xE2E2, 0x7C90, 0xE2E3, 0x7CA4, 0xE2E4, 0x7CAD, + 0xE2E5, 0x7CA2, 0xE2E6, 0x7CAB, 0xE2E7, 0x7CA1, 0xE2E8, 0x7CA8, 0xE2E9, 0x7CB3, 0xE2EA, 0x7CB2, 0xE2EB, 0x7CB1, 0xE2EC, 0x7CAE, + 0xE2ED, 0x7CB9, 0xE2EE, 0x7CBD, 0xE2EF, 0x7CC0, 0xE2F0, 0x7CC5, 0xE2F1, 0x7CC2, 0xE2F2, 0x7CD8, 0xE2F3, 0x7CD2, 0xE2F4, 0x7CDC, + 0xE2F5, 0x7CE2, 0xE2F6, 0x9B3B, 0xE2F7, 0x7CEF, 0xE2F8, 0x7CF2, 0xE2F9, 0x7CF4, 0xE2FA, 0x7CF6, 0xE2FB, 0x7CFA, 0xE2FC, 0x7D06, + 0xE340, 0x7D02, 0xE341, 0x7D1C, 0xE342, 0x7D15, 0xE343, 0x7D0A, 0xE344, 0x7D45, 0xE345, 0x7D4B, 0xE346, 0x7D2E, 0xE347, 0x7D32, + 0xE348, 0x7D3F, 0xE349, 0x7D35, 0xE34A, 0x7D46, 0xE34B, 0x7D73, 0xE34C, 0x7D56, 0xE34D, 0x7D4E, 0xE34E, 0x7D72, 0xE34F, 0x7D68, + 0xE350, 0x7D6E, 0xE351, 0x7D4F, 0xE352, 0x7D63, 0xE353, 0x7D93, 0xE354, 0x7D89, 0xE355, 0x7D5B, 0xE356, 0x7D8F, 0xE357, 0x7D7D, + 0xE358, 0x7D9B, 0xE359, 0x7DBA, 0xE35A, 0x7DAE, 0xE35B, 0x7DA3, 0xE35C, 0x7DB5, 0xE35D, 0x7DC7, 0xE35E, 0x7DBD, 0xE35F, 0x7DAB, + 0xE360, 0x7E3D, 0xE361, 0x7DA2, 0xE362, 0x7DAF, 0xE363, 0x7DDC, 0xE364, 0x7DB8, 0xE365, 0x7D9F, 0xE366, 0x7DB0, 0xE367, 0x7DD8, + 0xE368, 0x7DDD, 0xE369, 0x7DE4, 0xE36A, 0x7DDE, 0xE36B, 0x7DFB, 0xE36C, 0x7DF2, 0xE36D, 0x7DE1, 0xE36E, 0x7E05, 0xE36F, 0x7E0A, + 0xE370, 0x7E23, 0xE371, 0x7E21, 0xE372, 0x7E12, 0xE373, 0x7E31, 0xE374, 0x7E1F, 0xE375, 0x7E09, 0xE376, 0x7E0B, 0xE377, 0x7E22, + 0xE378, 0x7E46, 0xE379, 0x7E66, 0xE37A, 0x7E3B, 0xE37B, 0x7E35, 0xE37C, 0x7E39, 0xE37D, 0x7E43, 0xE37E, 0x7E37, 0xE380, 0x7E32, + 0xE381, 0x7E3A, 0xE382, 0x7E67, 0xE383, 0x7E5D, 0xE384, 0x7E56, 0xE385, 0x7E5E, 0xE386, 0x7E59, 0xE387, 0x7E5A, 0xE388, 0x7E79, + 0xE389, 0x7E6A, 0xE38A, 0x7E69, 0xE38B, 0x7E7C, 0xE38C, 0x7E7B, 0xE38D, 0x7E83, 0xE38E, 0x7DD5, 0xE38F, 0x7E7D, 0xE390, 0x8FAE, + 0xE391, 0x7E7F, 0xE392, 0x7E88, 0xE393, 0x7E89, 0xE394, 0x7E8C, 0xE395, 0x7E92, 0xE396, 0x7E90, 0xE397, 0x7E93, 0xE398, 0x7E94, + 0xE399, 0x7E96, 0xE39A, 0x7E8E, 0xE39B, 0x7E9B, 0xE39C, 0x7E9C, 0xE39D, 0x7F38, 0xE39E, 0x7F3A, 0xE39F, 0x7F45, 0xE3A0, 0x7F4C, + 0xE3A1, 0x7F4D, 0xE3A2, 0x7F4E, 0xE3A3, 0x7F50, 0xE3A4, 0x7F51, 0xE3A5, 0x7F55, 0xE3A6, 0x7F54, 0xE3A7, 0x7F58, 0xE3A8, 0x7F5F, + 0xE3A9, 0x7F60, 0xE3AA, 0x7F68, 0xE3AB, 0x7F69, 0xE3AC, 0x7F67, 0xE3AD, 0x7F78, 0xE3AE, 0x7F82, 0xE3AF, 0x7F86, 0xE3B0, 0x7F83, + 0xE3B1, 0x7F88, 0xE3B2, 0x7F87, 0xE3B3, 0x7F8C, 0xE3B4, 0x7F94, 0xE3B5, 0x7F9E, 0xE3B6, 0x7F9D, 0xE3B7, 0x7F9A, 0xE3B8, 0x7FA3, + 0xE3B9, 0x7FAF, 0xE3BA, 0x7FB2, 0xE3BB, 0x7FB9, 0xE3BC, 0x7FAE, 0xE3BD, 0x7FB6, 0xE3BE, 0x7FB8, 0xE3BF, 0x8B71, 0xE3C0, 0x7FC5, + 0xE3C1, 0x7FC6, 0xE3C2, 0x7FCA, 0xE3C3, 0x7FD5, 0xE3C4, 0x7FD4, 0xE3C5, 0x7FE1, 0xE3C6, 0x7FE6, 0xE3C7, 0x7FE9, 0xE3C8, 0x7FF3, + 0xE3C9, 0x7FF9, 0xE3CA, 0x98DC, 0xE3CB, 0x8006, 0xE3CC, 0x8004, 0xE3CD, 0x800B, 0xE3CE, 0x8012, 0xE3CF, 0x8018, 0xE3D0, 0x8019, + 0xE3D1, 0x801C, 0xE3D2, 0x8021, 0xE3D3, 0x8028, 0xE3D4, 0x803F, 0xE3D5, 0x803B, 0xE3D6, 0x804A, 0xE3D7, 0x8046, 0xE3D8, 0x8052, + 0xE3D9, 0x8058, 0xE3DA, 0x805A, 0xE3DB, 0x805F, 0xE3DC, 0x8062, 0xE3DD, 0x8068, 0xE3DE, 0x8073, 0xE3DF, 0x8072, 0xE3E0, 0x8070, + 0xE3E1, 0x8076, 0xE3E2, 0x8079, 0xE3E3, 0x807D, 0xE3E4, 0x807F, 0xE3E5, 0x8084, 0xE3E6, 0x8086, 0xE3E7, 0x8085, 0xE3E8, 0x809B, + 0xE3E9, 0x8093, 0xE3EA, 0x809A, 0xE3EB, 0x80AD, 0xE3EC, 0x5190, 0xE3ED, 0x80AC, 0xE3EE, 0x80DB, 0xE3EF, 0x80E5, 0xE3F0, 0x80D9, + 0xE3F1, 0x80DD, 0xE3F2, 0x80C4, 0xE3F3, 0x80DA, 0xE3F4, 0x80D6, 0xE3F5, 0x8109, 0xE3F6, 0x80EF, 0xE3F7, 0x80F1, 0xE3F8, 0x811B, + 0xE3F9, 0x8129, 0xE3FA, 0x8123, 0xE3FB, 0x812F, 0xE3FC, 0x814B, 0xE440, 0x968B, 0xE441, 0x8146, 0xE442, 0x813E, 0xE443, 0x8153, + 0xE444, 0x8151, 0xE445, 0x80FC, 0xE446, 0x8171, 0xE447, 0x816E, 0xE448, 0x8165, 0xE449, 0x8166, 0xE44A, 0x8174, 0xE44B, 0x8183, + 0xE44C, 0x8188, 0xE44D, 0x818A, 0xE44E, 0x8180, 0xE44F, 0x8182, 0xE450, 0x81A0, 0xE451, 0x8195, 0xE452, 0x81A4, 0xE453, 0x81A3, + 0xE454, 0x815F, 0xE455, 0x8193, 0xE456, 0x81A9, 0xE457, 0x81B0, 0xE458, 0x81B5, 0xE459, 0x81BE, 0xE45A, 0x81B8, 0xE45B, 0x81BD, + 0xE45C, 0x81C0, 0xE45D, 0x81C2, 0xE45E, 0x81BA, 0xE45F, 0x81C9, 0xE460, 0x81CD, 0xE461, 0x81D1, 0xE462, 0x81D9, 0xE463, 0x81D8, + 0xE464, 0x81C8, 0xE465, 0x81DA, 0xE466, 0x81DF, 0xE467, 0x81E0, 0xE468, 0x81E7, 0xE469, 0x81FA, 0xE46A, 0x81FB, 0xE46B, 0x81FE, + 0xE46C, 0x8201, 0xE46D, 0x8202, 0xE46E, 0x8205, 0xE46F, 0x8207, 0xE470, 0x820A, 0xE471, 0x820D, 0xE472, 0x8210, 0xE473, 0x8216, + 0xE474, 0x8229, 0xE475, 0x822B, 0xE476, 0x8238, 0xE477, 0x8233, 0xE478, 0x8240, 0xE479, 0x8259, 0xE47A, 0x8258, 0xE47B, 0x825D, + 0xE47C, 0x825A, 0xE47D, 0x825F, 0xE47E, 0x8264, 0xE480, 0x8262, 0xE481, 0x8268, 0xE482, 0x826A, 0xE483, 0x826B, 0xE484, 0x822E, + 0xE485, 0x8271, 0xE486, 0x8277, 0xE487, 0x8278, 0xE488, 0x827E, 0xE489, 0x828D, 0xE48A, 0x8292, 0xE48B, 0x82AB, 0xE48C, 0x829F, + 0xE48D, 0x82BB, 0xE48E, 0x82AC, 0xE48F, 0x82E1, 0xE490, 0x82E3, 0xE491, 0x82DF, 0xE492, 0x82D2, 0xE493, 0x82F4, 0xE494, 0x82F3, + 0xE495, 0x82FA, 0xE496, 0x8393, 0xE497, 0x8303, 0xE498, 0x82FB, 0xE499, 0x82F9, 0xE49A, 0x82DE, 0xE49B, 0x8306, 0xE49C, 0x82DC, + 0xE49D, 0x8309, 0xE49E, 0x82D9, 0xE49F, 0x8335, 0xE4A0, 0x8334, 0xE4A1, 0x8316, 0xE4A2, 0x8332, 0xE4A3, 0x8331, 0xE4A4, 0x8340, + 0xE4A5, 0x8339, 0xE4A6, 0x8350, 0xE4A7, 0x8345, 0xE4A8, 0x832F, 0xE4A9, 0x832B, 0xE4AA, 0x8317, 0xE4AB, 0x8318, 0xE4AC, 0x8385, + 0xE4AD, 0x839A, 0xE4AE, 0x83AA, 0xE4AF, 0x839F, 0xE4B0, 0x83A2, 0xE4B1, 0x8396, 0xE4B2, 0x8323, 0xE4B3, 0x838E, 0xE4B4, 0x8387, + 0xE4B5, 0x838A, 0xE4B6, 0x837C, 0xE4B7, 0x83B5, 0xE4B8, 0x8373, 0xE4B9, 0x8375, 0xE4BA, 0x83A0, 0xE4BB, 0x8389, 0xE4BC, 0x83A8, + 0xE4BD, 0x83F4, 0xE4BE, 0x8413, 0xE4BF, 0x83EB, 0xE4C0, 0x83CE, 0xE4C1, 0x83FD, 0xE4C2, 0x8403, 0xE4C3, 0x83D8, 0xE4C4, 0x840B, + 0xE4C5, 0x83C1, 0xE4C6, 0x83F7, 0xE4C7, 0x8407, 0xE4C8, 0x83E0, 0xE4C9, 0x83F2, 0xE4CA, 0x840D, 0xE4CB, 0x8422, 0xE4CC, 0x8420, + 0xE4CD, 0x83BD, 0xE4CE, 0x8438, 0xE4CF, 0x8506, 0xE4D0, 0x83FB, 0xE4D1, 0x846D, 0xE4D2, 0x842A, 0xE4D3, 0x843C, 0xE4D4, 0x855A, + 0xE4D5, 0x8484, 0xE4D6, 0x8477, 0xE4D7, 0x846B, 0xE4D8, 0x84AD, 0xE4D9, 0x846E, 0xE4DA, 0x8482, 0xE4DB, 0x8469, 0xE4DC, 0x8446, + 0xE4DD, 0x842C, 0xE4DE, 0x846F, 0xE4DF, 0x8479, 0xE4E0, 0x8435, 0xE4E1, 0x84CA, 0xE4E2, 0x8462, 0xE4E3, 0x84B9, 0xE4E4, 0x84BF, + 0xE4E5, 0x849F, 0xE4E6, 0x84D9, 0xE4E7, 0x84CD, 0xE4E8, 0x84BB, 0xE4E9, 0x84DA, 0xE4EA, 0x84D0, 0xE4EB, 0x84C1, 0xE4EC, 0x84C6, + 0xE4ED, 0x84D6, 0xE4EE, 0x84A1, 0xE4EF, 0x8521, 0xE4F0, 0x84FF, 0xE4F1, 0x84F4, 0xE4F2, 0x8517, 0xE4F3, 0x8518, 0xE4F4, 0x852C, + 0xE4F5, 0x851F, 0xE4F6, 0x8515, 0xE4F7, 0x8514, 0xE4F8, 0x84FC, 0xE4F9, 0x8540, 0xE4FA, 0x8563, 0xE4FB, 0x8558, 0xE4FC, 0x8548, + 0xE540, 0x8541, 0xE541, 0x8602, 0xE542, 0x854B, 0xE543, 0x8555, 0xE544, 0x8580, 0xE545, 0x85A4, 0xE546, 0x8588, 0xE547, 0x8591, + 0xE548, 0x858A, 0xE549, 0x85A8, 0xE54A, 0x856D, 0xE54B, 0x8594, 0xE54C, 0x859B, 0xE54D, 0x85EA, 0xE54E, 0x8587, 0xE54F, 0x859C, + 0xE550, 0x8577, 0xE551, 0x857E, 0xE552, 0x8590, 0xE553, 0x85C9, 0xE554, 0x85BA, 0xE555, 0x85CF, 0xE556, 0x85B9, 0xE557, 0x85D0, + 0xE558, 0x85D5, 0xE559, 0x85DD, 0xE55A, 0x85E5, 0xE55B, 0x85DC, 0xE55C, 0x85F9, 0xE55D, 0x860A, 0xE55E, 0x8613, 0xE55F, 0x860B, + 0xE560, 0x85FE, 0xE561, 0x85FA, 0xE562, 0x8606, 0xE563, 0x8622, 0xE564, 0x861A, 0xE565, 0x8630, 0xE566, 0x863F, 0xE567, 0x864D, + 0xE568, 0x4E55, 0xE569, 0x8654, 0xE56A, 0x865F, 0xE56B, 0x8667, 0xE56C, 0x8671, 0xE56D, 0x8693, 0xE56E, 0x86A3, 0xE56F, 0x86A9, + 0xE570, 0x86AA, 0xE571, 0x868B, 0xE572, 0x868C, 0xE573, 0x86B6, 0xE574, 0x86AF, 0xE575, 0x86C4, 0xE576, 0x86C6, 0xE577, 0x86B0, + 0xE578, 0x86C9, 0xE579, 0x8823, 0xE57A, 0x86AB, 0xE57B, 0x86D4, 0xE57C, 0x86DE, 0xE57D, 0x86E9, 0xE57E, 0x86EC, 0xE580, 0x86DF, + 0xE581, 0x86DB, 0xE582, 0x86EF, 0xE583, 0x8712, 0xE584, 0x8706, 0xE585, 0x8708, 0xE586, 0x8700, 0xE587, 0x8703, 0xE588, 0x86FB, + 0xE589, 0x8711, 0xE58A, 0x8709, 0xE58B, 0x870D, 0xE58C, 0x86F9, 0xE58D, 0x870A, 0xE58E, 0x8734, 0xE58F, 0x873F, 0xE590, 0x8737, + 0xE591, 0x873B, 0xE592, 0x8725, 0xE593, 0x8729, 0xE594, 0x871A, 0xE595, 0x8760, 0xE596, 0x875F, 0xE597, 0x8778, 0xE598, 0x874C, + 0xE599, 0x874E, 0xE59A, 0x8774, 0xE59B, 0x8757, 0xE59C, 0x8768, 0xE59D, 0x876E, 0xE59E, 0x8759, 0xE59F, 0x8753, 0xE5A0, 0x8763, + 0xE5A1, 0x876A, 0xE5A2, 0x8805, 0xE5A3, 0x87A2, 0xE5A4, 0x879F, 0xE5A5, 0x8782, 0xE5A6, 0x87AF, 0xE5A7, 0x87CB, 0xE5A8, 0x87BD, + 0xE5A9, 0x87C0, 0xE5AA, 0x87D0, 0xE5AB, 0x96D6, 0xE5AC, 0x87AB, 0xE5AD, 0x87C4, 0xE5AE, 0x87B3, 0xE5AF, 0x87C7, 0xE5B0, 0x87C6, + 0xE5B1, 0x87BB, 0xE5B2, 0x87EF, 0xE5B3, 0x87F2, 0xE5B4, 0x87E0, 0xE5B5, 0x880F, 0xE5B6, 0x880D, 0xE5B7, 0x87FE, 0xE5B8, 0x87F6, + 0xE5B9, 0x87F7, 0xE5BA, 0x880E, 0xE5BB, 0x87D2, 0xE5BC, 0x8811, 0xE5BD, 0x8816, 0xE5BE, 0x8815, 0xE5BF, 0x8822, 0xE5C0, 0x8821, + 0xE5C1, 0x8831, 0xE5C2, 0x8836, 0xE5C3, 0x8839, 0xE5C4, 0x8827, 0xE5C5, 0x883B, 0xE5C6, 0x8844, 0xE5C7, 0x8842, 0xE5C8, 0x8852, + 0xE5C9, 0x8859, 0xE5CA, 0x885E, 0xE5CB, 0x8862, 0xE5CC, 0x886B, 0xE5CD, 0x8881, 0xE5CE, 0x887E, 0xE5CF, 0x889E, 0xE5D0, 0x8875, + 0xE5D1, 0x887D, 0xE5D2, 0x88B5, 0xE5D3, 0x8872, 0xE5D4, 0x8882, 0xE5D5, 0x8897, 0xE5D6, 0x8892, 0xE5D7, 0x88AE, 0xE5D8, 0x8899, + 0xE5D9, 0x88A2, 0xE5DA, 0x888D, 0xE5DB, 0x88A4, 0xE5DC, 0x88B0, 0xE5DD, 0x88BF, 0xE5DE, 0x88B1, 0xE5DF, 0x88C3, 0xE5E0, 0x88C4, + 0xE5E1, 0x88D4, 0xE5E2, 0x88D8, 0xE5E3, 0x88D9, 0xE5E4, 0x88DD, 0xE5E5, 0x88F9, 0xE5E6, 0x8902, 0xE5E7, 0x88FC, 0xE5E8, 0x88F4, + 0xE5E9, 0x88E8, 0xE5EA, 0x88F2, 0xE5EB, 0x8904, 0xE5EC, 0x890C, 0xE5ED, 0x890A, 0xE5EE, 0x8913, 0xE5EF, 0x8943, 0xE5F0, 0x891E, + 0xE5F1, 0x8925, 0xE5F2, 0x892A, 0xE5F3, 0x892B, 0xE5F4, 0x8941, 0xE5F5, 0x8944, 0xE5F6, 0x893B, 0xE5F7, 0x8936, 0xE5F8, 0x8938, + 0xE5F9, 0x894C, 0xE5FA, 0x891D, 0xE5FB, 0x8960, 0xE5FC, 0x895E, 0xE640, 0x8966, 0xE641, 0x8964, 0xE642, 0x896D, 0xE643, 0x896A, + 0xE644, 0x896F, 0xE645, 0x8974, 0xE646, 0x8977, 0xE647, 0x897E, 0xE648, 0x8983, 0xE649, 0x8988, 0xE64A, 0x898A, 0xE64B, 0x8993, + 0xE64C, 0x8998, 0xE64D, 0x89A1, 0xE64E, 0x89A9, 0xE64F, 0x89A6, 0xE650, 0x89AC, 0xE651, 0x89AF, 0xE652, 0x89B2, 0xE653, 0x89BA, + 0xE654, 0x89BD, 0xE655, 0x89BF, 0xE656, 0x89C0, 0xE657, 0x89DA, 0xE658, 0x89DC, 0xE659, 0x89DD, 0xE65A, 0x89E7, 0xE65B, 0x89F4, + 0xE65C, 0x89F8, 0xE65D, 0x8A03, 0xE65E, 0x8A16, 0xE65F, 0x8A10, 0xE660, 0x8A0C, 0xE661, 0x8A1B, 0xE662, 0x8A1D, 0xE663, 0x8A25, + 0xE664, 0x8A36, 0xE665, 0x8A41, 0xE666, 0x8A5B, 0xE667, 0x8A52, 0xE668, 0x8A46, 0xE669, 0x8A48, 0xE66A, 0x8A7C, 0xE66B, 0x8A6D, + 0xE66C, 0x8A6C, 0xE66D, 0x8A62, 0xE66E, 0x8A85, 0xE66F, 0x8A82, 0xE670, 0x8A84, 0xE671, 0x8AA8, 0xE672, 0x8AA1, 0xE673, 0x8A91, + 0xE674, 0x8AA5, 0xE675, 0x8AA6, 0xE676, 0x8A9A, 0xE677, 0x8AA3, 0xE678, 0x8AC4, 0xE679, 0x8ACD, 0xE67A, 0x8AC2, 0xE67B, 0x8ADA, + 0xE67C, 0x8AEB, 0xE67D, 0x8AF3, 0xE67E, 0x8AE7, 0xE680, 0x8AE4, 0xE681, 0x8AF1, 0xE682, 0x8B14, 0xE683, 0x8AE0, 0xE684, 0x8AE2, + 0xE685, 0x8AF7, 0xE686, 0x8ADE, 0xE687, 0x8ADB, 0xE688, 0x8B0C, 0xE689, 0x8B07, 0xE68A, 0x8B1A, 0xE68B, 0x8AE1, 0xE68C, 0x8B16, + 0xE68D, 0x8B10, 0xE68E, 0x8B17, 0xE68F, 0x8B20, 0xE690, 0x8B33, 0xE691, 0x97AB, 0xE692, 0x8B26, 0xE693, 0x8B2B, 0xE694, 0x8B3E, + 0xE695, 0x8B28, 0xE696, 0x8B41, 0xE697, 0x8B4C, 0xE698, 0x8B4F, 0xE699, 0x8B4E, 0xE69A, 0x8B49, 0xE69B, 0x8B56, 0xE69C, 0x8B5B, + 0xE69D, 0x8B5A, 0xE69E, 0x8B6B, 0xE69F, 0x8B5F, 0xE6A0, 0x8B6C, 0xE6A1, 0x8B6F, 0xE6A2, 0x8B74, 0xE6A3, 0x8B7D, 0xE6A4, 0x8B80, + 0xE6A5, 0x8B8C, 0xE6A6, 0x8B8E, 0xE6A7, 0x8B92, 0xE6A8, 0x8B93, 0xE6A9, 0x8B96, 0xE6AA, 0x8B99, 0xE6AB, 0x8B9A, 0xE6AC, 0x8C3A, + 0xE6AD, 0x8C41, 0xE6AE, 0x8C3F, 0xE6AF, 0x8C48, 0xE6B0, 0x8C4C, 0xE6B1, 0x8C4E, 0xE6B2, 0x8C50, 0xE6B3, 0x8C55, 0xE6B4, 0x8C62, + 0xE6B5, 0x8C6C, 0xE6B6, 0x8C78, 0xE6B7, 0x8C7A, 0xE6B8, 0x8C82, 0xE6B9, 0x8C89, 0xE6BA, 0x8C85, 0xE6BB, 0x8C8A, 0xE6BC, 0x8C8D, + 0xE6BD, 0x8C8E, 0xE6BE, 0x8C94, 0xE6BF, 0x8C7C, 0xE6C0, 0x8C98, 0xE6C1, 0x621D, 0xE6C2, 0x8CAD, 0xE6C3, 0x8CAA, 0xE6C4, 0x8CBD, + 0xE6C5, 0x8CB2, 0xE6C6, 0x8CB3, 0xE6C7, 0x8CAE, 0xE6C8, 0x8CB6, 0xE6C9, 0x8CC8, 0xE6CA, 0x8CC1, 0xE6CB, 0x8CE4, 0xE6CC, 0x8CE3, + 0xE6CD, 0x8CDA, 0xE6CE, 0x8CFD, 0xE6CF, 0x8CFA, 0xE6D0, 0x8CFB, 0xE6D1, 0x8D04, 0xE6D2, 0x8D05, 0xE6D3, 0x8D0A, 0xE6D4, 0x8D07, + 0xE6D5, 0x8D0F, 0xE6D6, 0x8D0D, 0xE6D7, 0x8D10, 0xE6D8, 0x9F4E, 0xE6D9, 0x8D13, 0xE6DA, 0x8CCD, 0xE6DB, 0x8D14, 0xE6DC, 0x8D16, + 0xE6DD, 0x8D67, 0xE6DE, 0x8D6D, 0xE6DF, 0x8D71, 0xE6E0, 0x8D73, 0xE6E1, 0x8D81, 0xE6E2, 0x8D99, 0xE6E3, 0x8DC2, 0xE6E4, 0x8DBE, + 0xE6E5, 0x8DBA, 0xE6E6, 0x8DCF, 0xE6E7, 0x8DDA, 0xE6E8, 0x8DD6, 0xE6E9, 0x8DCC, 0xE6EA, 0x8DDB, 0xE6EB, 0x8DCB, 0xE6EC, 0x8DEA, + 0xE6ED, 0x8DEB, 0xE6EE, 0x8DDF, 0xE6EF, 0x8DE3, 0xE6F0, 0x8DFC, 0xE6F1, 0x8E08, 0xE6F2, 0x8E09, 0xE6F3, 0x8DFF, 0xE6F4, 0x8E1D, + 0xE6F5, 0x8E1E, 0xE6F6, 0x8E10, 0xE6F7, 0x8E1F, 0xE6F8, 0x8E42, 0xE6F9, 0x8E35, 0xE6FA, 0x8E30, 0xE6FB, 0x8E34, 0xE6FC, 0x8E4A, + 0xE740, 0x8E47, 0xE741, 0x8E49, 0xE742, 0x8E4C, 0xE743, 0x8E50, 0xE744, 0x8E48, 0xE745, 0x8E59, 0xE746, 0x8E64, 0xE747, 0x8E60, + 0xE748, 0x8E2A, 0xE749, 0x8E63, 0xE74A, 0x8E55, 0xE74B, 0x8E76, 0xE74C, 0x8E72, 0xE74D, 0x8E7C, 0xE74E, 0x8E81, 0xE74F, 0x8E87, + 0xE750, 0x8E85, 0xE751, 0x8E84, 0xE752, 0x8E8B, 0xE753, 0x8E8A, 0xE754, 0x8E93, 0xE755, 0x8E91, 0xE756, 0x8E94, 0xE757, 0x8E99, + 0xE758, 0x8EAA, 0xE759, 0x8EA1, 0xE75A, 0x8EAC, 0xE75B, 0x8EB0, 0xE75C, 0x8EC6, 0xE75D, 0x8EB1, 0xE75E, 0x8EBE, 0xE75F, 0x8EC5, + 0xE760, 0x8EC8, 0xE761, 0x8ECB, 0xE762, 0x8EDB, 0xE763, 0x8EE3, 0xE764, 0x8EFC, 0xE765, 0x8EFB, 0xE766, 0x8EEB, 0xE767, 0x8EFE, + 0xE768, 0x8F0A, 0xE769, 0x8F05, 0xE76A, 0x8F15, 0xE76B, 0x8F12, 0xE76C, 0x8F19, 0xE76D, 0x8F13, 0xE76E, 0x8F1C, 0xE76F, 0x8F1F, + 0xE770, 0x8F1B, 0xE771, 0x8F0C, 0xE772, 0x8F26, 0xE773, 0x8F33, 0xE774, 0x8F3B, 0xE775, 0x8F39, 0xE776, 0x8F45, 0xE777, 0x8F42, + 0xE778, 0x8F3E, 0xE779, 0x8F4C, 0xE77A, 0x8F49, 0xE77B, 0x8F46, 0xE77C, 0x8F4E, 0xE77D, 0x8F57, 0xE77E, 0x8F5C, 0xE780, 0x8F62, + 0xE781, 0x8F63, 0xE782, 0x8F64, 0xE783, 0x8F9C, 0xE784, 0x8F9F, 0xE785, 0x8FA3, 0xE786, 0x8FAD, 0xE787, 0x8FAF, 0xE788, 0x8FB7, + 0xE789, 0x8FDA, 0xE78A, 0x8FE5, 0xE78B, 0x8FE2, 0xE78C, 0x8FEA, 0xE78D, 0x8FEF, 0xE78E, 0x9087, 0xE78F, 0x8FF4, 0xE790, 0x9005, + 0xE791, 0x8FF9, 0xE792, 0x8FFA, 0xE793, 0x9011, 0xE794, 0x9015, 0xE795, 0x9021, 0xE796, 0x900D, 0xE797, 0x901E, 0xE798, 0x9016, + 0xE799, 0x900B, 0xE79A, 0x9027, 0xE79B, 0x9036, 0xE79C, 0x9035, 0xE79D, 0x9039, 0xE79E, 0x8FF8, 0xE79F, 0x904F, 0xE7A0, 0x9050, + 0xE7A1, 0x9051, 0xE7A2, 0x9052, 0xE7A3, 0x900E, 0xE7A4, 0x9049, 0xE7A5, 0x903E, 0xE7A6, 0x9056, 0xE7A7, 0x9058, 0xE7A8, 0x905E, + 0xE7A9, 0x9068, 0xE7AA, 0x906F, 0xE7AB, 0x9076, 0xE7AC, 0x96A8, 0xE7AD, 0x9072, 0xE7AE, 0x9082, 0xE7AF, 0x907D, 0xE7B0, 0x9081, + 0xE7B1, 0x9080, 0xE7B2, 0x908A, 0xE7B3, 0x9089, 0xE7B4, 0x908F, 0xE7B5, 0x90A8, 0xE7B6, 0x90AF, 0xE7B7, 0x90B1, 0xE7B8, 0x90B5, + 0xE7B9, 0x90E2, 0xE7BA, 0x90E4, 0xE7BB, 0x6248, 0xE7BC, 0x90DB, 0xE7BD, 0x9102, 0xE7BE, 0x9112, 0xE7BF, 0x9119, 0xE7C0, 0x9132, + 0xE7C1, 0x9130, 0xE7C2, 0x914A, 0xE7C3, 0x9156, 0xE7C4, 0x9158, 0xE7C5, 0x9163, 0xE7C6, 0x9165, 0xE7C7, 0x9169, 0xE7C8, 0x9173, + 0xE7C9, 0x9172, 0xE7CA, 0x918B, 0xE7CB, 0x9189, 0xE7CC, 0x9182, 0xE7CD, 0x91A2, 0xE7CE, 0x91AB, 0xE7CF, 0x91AF, 0xE7D0, 0x91AA, + 0xE7D1, 0x91B5, 0xE7D2, 0x91B4, 0xE7D3, 0x91BA, 0xE7D4, 0x91C0, 0xE7D5, 0x91C1, 0xE7D6, 0x91C9, 0xE7D7, 0x91CB, 0xE7D8, 0x91D0, + 0xE7D9, 0x91D6, 0xE7DA, 0x91DF, 0xE7DB, 0x91E1, 0xE7DC, 0x91DB, 0xE7DD, 0x91FC, 0xE7DE, 0x91F5, 0xE7DF, 0x91F6, 0xE7E0, 0x921E, + 0xE7E1, 0x91FF, 0xE7E2, 0x9214, 0xE7E3, 0x922C, 0xE7E4, 0x9215, 0xE7E5, 0x9211, 0xE7E6, 0x925E, 0xE7E7, 0x9257, 0xE7E8, 0x9245, + 0xE7E9, 0x9249, 0xE7EA, 0x9264, 0xE7EB, 0x9248, 0xE7EC, 0x9295, 0xE7ED, 0x923F, 0xE7EE, 0x924B, 0xE7EF, 0x9250, 0xE7F0, 0x929C, + 0xE7F1, 0x9296, 0xE7F2, 0x9293, 0xE7F3, 0x929B, 0xE7F4, 0x925A, 0xE7F5, 0x92CF, 0xE7F6, 0x92B9, 0xE7F7, 0x92B7, 0xE7F8, 0x92E9, + 0xE7F9, 0x930F, 0xE7FA, 0x92FA, 0xE7FB, 0x9344, 0xE7FC, 0x932E, 0xE840, 0x9319, 0xE841, 0x9322, 0xE842, 0x931A, 0xE843, 0x9323, + 0xE844, 0x933A, 0xE845, 0x9335, 0xE846, 0x933B, 0xE847, 0x935C, 0xE848, 0x9360, 0xE849, 0x937C, 0xE84A, 0x936E, 0xE84B, 0x9356, + 0xE84C, 0x93B0, 0xE84D, 0x93AC, 0xE84E, 0x93AD, 0xE84F, 0x9394, 0xE850, 0x93B9, 0xE851, 0x93D6, 0xE852, 0x93D7, 0xE853, 0x93E8, + 0xE854, 0x93E5, 0xE855, 0x93D8, 0xE856, 0x93C3, 0xE857, 0x93DD, 0xE858, 0x93D0, 0xE859, 0x93C8, 0xE85A, 0x93E4, 0xE85B, 0x941A, + 0xE85C, 0x9414, 0xE85D, 0x9413, 0xE85E, 0x9403, 0xE85F, 0x9407, 0xE860, 0x9410, 0xE861, 0x9436, 0xE862, 0x942B, 0xE863, 0x9435, + 0xE864, 0x9421, 0xE865, 0x943A, 0xE866, 0x9441, 0xE867, 0x9452, 0xE868, 0x9444, 0xE869, 0x945B, 0xE86A, 0x9460, 0xE86B, 0x9462, + 0xE86C, 0x945E, 0xE86D, 0x946A, 0xE86E, 0x9229, 0xE86F, 0x9470, 0xE870, 0x9475, 0xE871, 0x9477, 0xE872, 0x947D, 0xE873, 0x945A, + 0xE874, 0x947C, 0xE875, 0x947E, 0xE876, 0x9481, 0xE877, 0x947F, 0xE878, 0x9582, 0xE879, 0x9587, 0xE87A, 0x958A, 0xE87B, 0x9594, + 0xE87C, 0x9596, 0xE87D, 0x9598, 0xE87E, 0x9599, 0xE880, 0x95A0, 0xE881, 0x95A8, 0xE882, 0x95A7, 0xE883, 0x95AD, 0xE884, 0x95BC, + 0xE885, 0x95BB, 0xE886, 0x95B9, 0xE887, 0x95BE, 0xE888, 0x95CA, 0xE889, 0x6FF6, 0xE88A, 0x95C3, 0xE88B, 0x95CD, 0xE88C, 0x95CC, + 0xE88D, 0x95D5, 0xE88E, 0x95D4, 0xE88F, 0x95D6, 0xE890, 0x95DC, 0xE891, 0x95E1, 0xE892, 0x95E5, 0xE893, 0x95E2, 0xE894, 0x9621, + 0xE895, 0x9628, 0xE896, 0x962E, 0xE897, 0x962F, 0xE898, 0x9642, 0xE899, 0x964C, 0xE89A, 0x964F, 0xE89B, 0x964B, 0xE89C, 0x9677, + 0xE89D, 0x965C, 0xE89E, 0x965E, 0xE89F, 0x965D, 0xE8A0, 0x965F, 0xE8A1, 0x9666, 0xE8A2, 0x9672, 0xE8A3, 0x966C, 0xE8A4, 0x968D, + 0xE8A5, 0x9698, 0xE8A6, 0x9695, 0xE8A7, 0x9697, 0xE8A8, 0x96AA, 0xE8A9, 0x96A7, 0xE8AA, 0x96B1, 0xE8AB, 0x96B2, 0xE8AC, 0x96B0, + 0xE8AD, 0x96B4, 0xE8AE, 0x96B6, 0xE8AF, 0x96B8, 0xE8B0, 0x96B9, 0xE8B1, 0x96CE, 0xE8B2, 0x96CB, 0xE8B3, 0x96C9, 0xE8B4, 0x96CD, + 0xE8B5, 0x894D, 0xE8B6, 0x96DC, 0xE8B7, 0x970D, 0xE8B8, 0x96D5, 0xE8B9, 0x96F9, 0xE8BA, 0x9704, 0xE8BB, 0x9706, 0xE8BC, 0x9708, + 0xE8BD, 0x9713, 0xE8BE, 0x970E, 0xE8BF, 0x9711, 0xE8C0, 0x970F, 0xE8C1, 0x9716, 0xE8C2, 0x9719, 0xE8C3, 0x9724, 0xE8C4, 0x972A, + 0xE8C5, 0x9730, 0xE8C6, 0x9739, 0xE8C7, 0x973D, 0xE8C8, 0x973E, 0xE8C9, 0x9744, 0xE8CA, 0x9746, 0xE8CB, 0x9748, 0xE8CC, 0x9742, + 0xE8CD, 0x9749, 0xE8CE, 0x975C, 0xE8CF, 0x9760, 0xE8D0, 0x9764, 0xE8D1, 0x9766, 0xE8D2, 0x9768, 0xE8D3, 0x52D2, 0xE8D4, 0x976B, + 0xE8D5, 0x9771, 0xE8D6, 0x9779, 0xE8D7, 0x9785, 0xE8D8, 0x977C, 0xE8D9, 0x9781, 0xE8DA, 0x977A, 0xE8DB, 0x9786, 0xE8DC, 0x978B, + 0xE8DD, 0x978F, 0xE8DE, 0x9790, 0xE8DF, 0x979C, 0xE8E0, 0x97A8, 0xE8E1, 0x97A6, 0xE8E2, 0x97A3, 0xE8E3, 0x97B3, 0xE8E4, 0x97B4, + 0xE8E5, 0x97C3, 0xE8E6, 0x97C6, 0xE8E7, 0x97C8, 0xE8E8, 0x97CB, 0xE8E9, 0x97DC, 0xE8EA, 0x97ED, 0xE8EB, 0x9F4F, 0xE8EC, 0x97F2, + 0xE8ED, 0x7ADF, 0xE8EE, 0x97F6, 0xE8EF, 0x97F5, 0xE8F0, 0x980F, 0xE8F1, 0x980C, 0xE8F2, 0x9838, 0xE8F3, 0x9824, 0xE8F4, 0x9821, + 0xE8F5, 0x9837, 0xE8F6, 0x983D, 0xE8F7, 0x9846, 0xE8F8, 0x984F, 0xE8F9, 0x984B, 0xE8FA, 0x986B, 0xE8FB, 0x986F, 0xE8FC, 0x9870, + 0xE940, 0x9871, 0xE941, 0x9874, 0xE942, 0x9873, 0xE943, 0x98AA, 0xE944, 0x98AF, 0xE945, 0x98B1, 0xE946, 0x98B6, 0xE947, 0x98C4, + 0xE948, 0x98C3, 0xE949, 0x98C6, 0xE94A, 0x98E9, 0xE94B, 0x98EB, 0xE94C, 0x9903, 0xE94D, 0x9909, 0xE94E, 0x9912, 0xE94F, 0x9914, + 0xE950, 0x9918, 0xE951, 0x9921, 0xE952, 0x991D, 0xE953, 0x991E, 0xE954, 0x9924, 0xE955, 0x9920, 0xE956, 0x992C, 0xE957, 0x992E, + 0xE958, 0x993D, 0xE959, 0x993E, 0xE95A, 0x9942, 0xE95B, 0x9949, 0xE95C, 0x9945, 0xE95D, 0x9950, 0xE95E, 0x994B, 0xE95F, 0x9951, + 0xE960, 0x9952, 0xE961, 0x994C, 0xE962, 0x9955, 0xE963, 0x9997, 0xE964, 0x9998, 0xE965, 0x99A5, 0xE966, 0x99AD, 0xE967, 0x99AE, + 0xE968, 0x99BC, 0xE969, 0x99DF, 0xE96A, 0x99DB, 0xE96B, 0x99DD, 0xE96C, 0x99D8, 0xE96D, 0x99D1, 0xE96E, 0x99ED, 0xE96F, 0x99EE, + 0xE970, 0x99F1, 0xE971, 0x99F2, 0xE972, 0x99FB, 0xE973, 0x99F8, 0xE974, 0x9A01, 0xE975, 0x9A0F, 0xE976, 0x9A05, 0xE977, 0x99E2, + 0xE978, 0x9A19, 0xE979, 0x9A2B, 0xE97A, 0x9A37, 0xE97B, 0x9A45, 0xE97C, 0x9A42, 0xE97D, 0x9A40, 0xE97E, 0x9A43, 0xE980, 0x9A3E, + 0xE981, 0x9A55, 0xE982, 0x9A4D, 0xE983, 0x9A5B, 0xE984, 0x9A57, 0xE985, 0x9A5F, 0xE986, 0x9A62, 0xE987, 0x9A65, 0xE988, 0x9A64, + 0xE989, 0x9A69, 0xE98A, 0x9A6B, 0xE98B, 0x9A6A, 0xE98C, 0x9AAD, 0xE98D, 0x9AB0, 0xE98E, 0x9ABC, 0xE98F, 0x9AC0, 0xE990, 0x9ACF, + 0xE991, 0x9AD1, 0xE992, 0x9AD3, 0xE993, 0x9AD4, 0xE994, 0x9ADE, 0xE995, 0x9ADF, 0xE996, 0x9AE2, 0xE997, 0x9AE3, 0xE998, 0x9AE6, + 0xE999, 0x9AEF, 0xE99A, 0x9AEB, 0xE99B, 0x9AEE, 0xE99C, 0x9AF4, 0xE99D, 0x9AF1, 0xE99E, 0x9AF7, 0xE99F, 0x9AFB, 0xE9A0, 0x9B06, + 0xE9A1, 0x9B18, 0xE9A2, 0x9B1A, 0xE9A3, 0x9B1F, 0xE9A4, 0x9B22, 0xE9A5, 0x9B23, 0xE9A6, 0x9B25, 0xE9A7, 0x9B27, 0xE9A8, 0x9B28, + 0xE9A9, 0x9B29, 0xE9AA, 0x9B2A, 0xE9AB, 0x9B2E, 0xE9AC, 0x9B2F, 0xE9AD, 0x9B32, 0xE9AE, 0x9B44, 0xE9AF, 0x9B43, 0xE9B0, 0x9B4F, + 0xE9B1, 0x9B4D, 0xE9B2, 0x9B4E, 0xE9B3, 0x9B51, 0xE9B4, 0x9B58, 0xE9B5, 0x9B74, 0xE9B6, 0x9B93, 0xE9B7, 0x9B83, 0xE9B8, 0x9B91, + 0xE9B9, 0x9B96, 0xE9BA, 0x9B97, 0xE9BB, 0x9B9F, 0xE9BC, 0x9BA0, 0xE9BD, 0x9BA8, 0xE9BE, 0x9BB4, 0xE9BF, 0x9BC0, 0xE9C0, 0x9BCA, + 0xE9C1, 0x9BB9, 0xE9C2, 0x9BC6, 0xE9C3, 0x9BCF, 0xE9C4, 0x9BD1, 0xE9C5, 0x9BD2, 0xE9C6, 0x9BE3, 0xE9C7, 0x9BE2, 0xE9C8, 0x9BE4, + 0xE9C9, 0x9BD4, 0xE9CA, 0x9BE1, 0xE9CB, 0x9C3A, 0xE9CC, 0x9BF2, 0xE9CD, 0x9BF1, 0xE9CE, 0x9BF0, 0xE9CF, 0x9C15, 0xE9D0, 0x9C14, + 0xE9D1, 0x9C09, 0xE9D2, 0x9C13, 0xE9D3, 0x9C0C, 0xE9D4, 0x9C06, 0xE9D5, 0x9C08, 0xE9D6, 0x9C12, 0xE9D7, 0x9C0A, 0xE9D8, 0x9C04, + 0xE9D9, 0x9C2E, 0xE9DA, 0x9C1B, 0xE9DB, 0x9C25, 0xE9DC, 0x9C24, 0xE9DD, 0x9C21, 0xE9DE, 0x9C30, 0xE9DF, 0x9C47, 0xE9E0, 0x9C32, + 0xE9E1, 0x9C46, 0xE9E2, 0x9C3E, 0xE9E3, 0x9C5A, 0xE9E4, 0x9C60, 0xE9E5, 0x9C67, 0xE9E6, 0x9C76, 0xE9E7, 0x9C78, 0xE9E8, 0x9CE7, + 0xE9E9, 0x9CEC, 0xE9EA, 0x9CF0, 0xE9EB, 0x9D09, 0xE9EC, 0x9D08, 0xE9ED, 0x9CEB, 0xE9EE, 0x9D03, 0xE9EF, 0x9D06, 0xE9F0, 0x9D2A, + 0xE9F1, 0x9D26, 0xE9F2, 0x9DAF, 0xE9F3, 0x9D23, 0xE9F4, 0x9D1F, 0xE9F5, 0x9D44, 0xE9F6, 0x9D15, 0xE9F7, 0x9D12, 0xE9F8, 0x9D41, + 0xE9F9, 0x9D3F, 0xE9FA, 0x9D3E, 0xE9FB, 0x9D46, 0xE9FC, 0x9D48, 0xEA40, 0x9D5D, 0xEA41, 0x9D5E, 0xEA42, 0x9D64, 0xEA43, 0x9D51, + 0xEA44, 0x9D50, 0xEA45, 0x9D59, 0xEA46, 0x9D72, 0xEA47, 0x9D89, 0xEA48, 0x9D87, 0xEA49, 0x9DAB, 0xEA4A, 0x9D6F, 0xEA4B, 0x9D7A, + 0xEA4C, 0x9D9A, 0xEA4D, 0x9DA4, 0xEA4E, 0x9DA9, 0xEA4F, 0x9DB2, 0xEA50, 0x9DC4, 0xEA51, 0x9DC1, 0xEA52, 0x9DBB, 0xEA53, 0x9DB8, + 0xEA54, 0x9DBA, 0xEA55, 0x9DC6, 0xEA56, 0x9DCF, 0xEA57, 0x9DC2, 0xEA58, 0x9DD9, 0xEA59, 0x9DD3, 0xEA5A, 0x9DF8, 0xEA5B, 0x9DE6, + 0xEA5C, 0x9DED, 0xEA5D, 0x9DEF, 0xEA5E, 0x9DFD, 0xEA5F, 0x9E1A, 0xEA60, 0x9E1B, 0xEA61, 0x9E1E, 0xEA62, 0x9E75, 0xEA63, 0x9E79, + 0xEA64, 0x9E7D, 0xEA65, 0x9E81, 0xEA66, 0x9E88, 0xEA67, 0x9E8B, 0xEA68, 0x9E8C, 0xEA69, 0x9E92, 0xEA6A, 0x9E95, 0xEA6B, 0x9E91, + 0xEA6C, 0x9E9D, 0xEA6D, 0x9EA5, 0xEA6E, 0x9EA9, 0xEA6F, 0x9EB8, 0xEA70, 0x9EAA, 0xEA71, 0x9EAD, 0xEA72, 0x9761, 0xEA73, 0x9ECC, + 0xEA74, 0x9ECE, 0xEA75, 0x9ECF, 0xEA76, 0x9ED0, 0xEA77, 0x9ED4, 0xEA78, 0x9EDC, 0xEA79, 0x9EDE, 0xEA7A, 0x9EDD, 0xEA7B, 0x9EE0, + 0xEA7C, 0x9EE5, 0xEA7D, 0x9EE8, 0xEA7E, 0x9EEF, 0xEA80, 0x9EF4, 0xEA81, 0x9EF6, 0xEA82, 0x9EF7, 0xEA83, 0x9EF9, 0xEA84, 0x9EFB, + 0xEA85, 0x9EFC, 0xEA86, 0x9EFD, 0xEA87, 0x9F07, 0xEA88, 0x9F08, 0xEA89, 0x76B7, 0xEA8A, 0x9F15, 0xEA8B, 0x9F21, 0xEA8C, 0x9F2C, + 0xEA8D, 0x9F3E, 0xEA8E, 0x9F4A, 0xEA8F, 0x9F52, 0xEA90, 0x9F54, 0xEA91, 0x9F63, 0xEA92, 0x9F5F, 0xEA93, 0x9F60, 0xEA94, 0x9F61, + 0xEA95, 0x9F66, 0xEA96, 0x9F67, 0xEA97, 0x9F6C, 0xEA98, 0x9F6A, 0xEA99, 0x9F77, 0xEA9A, 0x9F72, 0xEA9B, 0x9F76, 0xEA9C, 0x9F95, + 0xEA9D, 0x9F9C, 0xEA9E, 0x9FA0, 0xEA9F, 0x582F, 0xEAA0, 0x69C7, 0xEAA1, 0x9059, 0xEAA2, 0x7464, 0xEAA3, 0x51DC, 0xEAA4, 0x7199, + 0xFA40, 0x2170, 0xFA41, 0x2171, 0xFA42, 0x2172, 0xFA43, 0x2173, 0xFA44, 0x2174, 0xFA45, 0x2175, 0xFA46, 0x2176, 0xFA47, 0x2177, + 0xFA48, 0x2178, 0xFA49, 0x2179, 0xFA55, 0xFFE4, 0xFA56, 0xFF07, 0xFA57, 0xFF02, 0xFA5C, 0x7E8A, 0xFA5D, 0x891C, 0xFA5E, 0x9348, + 0xFA5F, 0x9288, 0xFA60, 0x84DC, 0xFA61, 0x4FC9, 0xFA62, 0x70BB, 0xFA63, 0x6631, 0xFA64, 0x68C8, 0xFA65, 0x92F9, 0xFA66, 0x66FB, + 0xFA67, 0x5F45, 0xFA68, 0x4E28, 0xFA69, 0x4EE1, 0xFA6A, 0x4EFC, 0xFA6B, 0x4F00, 0xFA6C, 0x4F03, 0xFA6D, 0x4F39, 0xFA6E, 0x4F56, + 0xFA6F, 0x4F92, 0xFA70, 0x4F8A, 0xFA71, 0x4F9A, 0xFA72, 0x4F94, 0xFA73, 0x4FCD, 0xFA74, 0x5040, 0xFA75, 0x5022, 0xFA76, 0x4FFF, + 0xFA77, 0x501E, 0xFA78, 0x5046, 0xFA79, 0x5070, 0xFA7A, 0x5042, 0xFA7B, 0x5094, 0xFA7C, 0x50F4, 0xFA7D, 0x50D8, 0xFA7E, 0x514A, + 0xFA80, 0x5164, 0xFA81, 0x519D, 0xFA82, 0x51BE, 0xFA83, 0x51EC, 0xFA84, 0x5215, 0xFA85, 0x529C, 0xFA86, 0x52A6, 0xFA87, 0x52C0, + 0xFA88, 0x52DB, 0xFA89, 0x5300, 0xFA8A, 0x5307, 0xFA8B, 0x5324, 0xFA8C, 0x5372, 0xFA8D, 0x5393, 0xFA8E, 0x53B2, 0xFA8F, 0x53DD, + 0xFA90, 0xFA0E, 0xFA91, 0x549C, 0xFA92, 0x548A, 0xFA93, 0x54A9, 0xFA94, 0x54FF, 0xFA95, 0x5586, 0xFA96, 0x5759, 0xFA97, 0x5765, + 0xFA98, 0x57AC, 0xFA99, 0x57C8, 0xFA9A, 0x57C7, 0xFA9B, 0xFA0F, 0xFA9C, 0xFA10, 0xFA9D, 0x589E, 0xFA9E, 0x58B2, 0xFA9F, 0x590B, + 0xFAA0, 0x5953, 0xFAA1, 0x595B, 0xFAA2, 0x595D, 0xFAA3, 0x5963, 0xFAA4, 0x59A4, 0xFAA5, 0x59BA, 0xFAA6, 0x5B56, 0xFAA7, 0x5BC0, + 0xFAA8, 0x752F, 0xFAA9, 0x5BD8, 0xFAAA, 0x5BEC, 0xFAAB, 0x5C1E, 0xFAAC, 0x5CA6, 0xFAAD, 0x5CBA, 0xFAAE, 0x5CF5, 0xFAAF, 0x5D27, + 0xFAB0, 0x5D53, 0xFAB1, 0xFA11, 0xFAB2, 0x5D42, 0xFAB3, 0x5D6D, 0xFAB4, 0x5DB8, 0xFAB5, 0x5DB9, 0xFAB6, 0x5DD0, 0xFAB7, 0x5F21, + 0xFAB8, 0x5F34, 0xFAB9, 0x5F67, 0xFABA, 0x5FB7, 0xFABB, 0x5FDE, 0xFABC, 0x605D, 0xFABD, 0x6085, 0xFABE, 0x608A, 0xFABF, 0x60DE, + 0xFAC0, 0x60D5, 0xFAC1, 0x6120, 0xFAC2, 0x60F2, 0xFAC3, 0x6111, 0xFAC4, 0x6137, 0xFAC5, 0x6130, 0xFAC6, 0x6198, 0xFAC7, 0x6213, + 0xFAC8, 0x62A6, 0xFAC9, 0x63F5, 0xFACA, 0x6460, 0xFACB, 0x649D, 0xFACC, 0x64CE, 0xFACD, 0x654E, 0xFACE, 0x6600, 0xFACF, 0x6615, + 0xFAD0, 0x663B, 0xFAD1, 0x6609, 0xFAD2, 0x662E, 0xFAD3, 0x661E, 0xFAD4, 0x6624, 0xFAD5, 0x6665, 0xFAD6, 0x6657, 0xFAD7, 0x6659, + 0xFAD8, 0xFA12, 0xFAD9, 0x6673, 0xFADA, 0x6699, 0xFADB, 0x66A0, 0xFADC, 0x66B2, 0xFADD, 0x66BF, 0xFADE, 0x66FA, 0xFADF, 0x670E, + 0xFAE0, 0xF929, 0xFAE1, 0x6766, 0xFAE2, 0x67BB, 0xFAE3, 0x6852, 0xFAE4, 0x67C0, 0xFAE5, 0x6801, 0xFAE6, 0x6844, 0xFAE7, 0x68CF, + 0xFAE8, 0xFA13, 0xFAE9, 0x6968, 0xFAEA, 0xFA14, 0xFAEB, 0x6998, 0xFAEC, 0x69E2, 0xFAED, 0x6A30, 0xFAEE, 0x6A6B, 0xFAEF, 0x6A46, + 0xFAF0, 0x6A73, 0xFAF1, 0x6A7E, 0xFAF2, 0x6AE2, 0xFAF3, 0x6AE4, 0xFAF4, 0x6BD6, 0xFAF5, 0x6C3F, 0xFAF6, 0x6C5C, 0xFAF7, 0x6C86, + 0xFAF8, 0x6C6F, 0xFAF9, 0x6CDA, 0xFAFA, 0x6D04, 0xFAFB, 0x6D87, 0xFAFC, 0x6D6F, 0xFB40, 0x6D96, 0xFB41, 0x6DAC, 0xFB42, 0x6DCF, + 0xFB43, 0x6DF8, 0xFB44, 0x6DF2, 0xFB45, 0x6DFC, 0xFB46, 0x6E39, 0xFB47, 0x6E5C, 0xFB48, 0x6E27, 0xFB49, 0x6E3C, 0xFB4A, 0x6EBF, + 0xFB4B, 0x6F88, 0xFB4C, 0x6FB5, 0xFB4D, 0x6FF5, 0xFB4E, 0x7005, 0xFB4F, 0x7007, 0xFB50, 0x7028, 0xFB51, 0x7085, 0xFB52, 0x70AB, + 0xFB53, 0x710F, 0xFB54, 0x7104, 0xFB55, 0x715C, 0xFB56, 0x7146, 0xFB57, 0x7147, 0xFB58, 0xFA15, 0xFB59, 0x71C1, 0xFB5A, 0x71FE, + 0xFB5B, 0x72B1, 0xFB5C, 0x72BE, 0xFB5D, 0x7324, 0xFB5E, 0xFA16, 0xFB5F, 0x7377, 0xFB60, 0x73BD, 0xFB61, 0x73C9, 0xFB62, 0x73D6, + 0xFB63, 0x73E3, 0xFB64, 0x73D2, 0xFB65, 0x7407, 0xFB66, 0x73F5, 0xFB67, 0x7426, 0xFB68, 0x742A, 0xFB69, 0x7429, 0xFB6A, 0x742E, + 0xFB6B, 0x7462, 0xFB6C, 0x7489, 0xFB6D, 0x749F, 0xFB6E, 0x7501, 0xFB6F, 0x756F, 0xFB70, 0x7682, 0xFB71, 0x769C, 0xFB72, 0x769E, + 0xFB73, 0x769B, 0xFB74, 0x76A6, 0xFB75, 0xFA17, 0xFB76, 0x7746, 0xFB77, 0x52AF, 0xFB78, 0x7821, 0xFB79, 0x784E, 0xFB7A, 0x7864, + 0xFB7B, 0x787A, 0xFB7C, 0x7930, 0xFB7D, 0xFA18, 0xFB7E, 0xFA19, 0xFB80, 0xFA1A, 0xFB81, 0x7994, 0xFB82, 0xFA1B, 0xFB83, 0x799B, + 0xFB84, 0x7AD1, 0xFB85, 0x7AE7, 0xFB86, 0xFA1C, 0xFB87, 0x7AEB, 0xFB88, 0x7B9E, 0xFB89, 0xFA1D, 0xFB8A, 0x7D48, 0xFB8B, 0x7D5C, + 0xFB8C, 0x7DB7, 0xFB8D, 0x7DA0, 0xFB8E, 0x7DD6, 0xFB8F, 0x7E52, 0xFB90, 0x7F47, 0xFB91, 0x7FA1, 0xFB92, 0xFA1E, 0xFB93, 0x8301, + 0xFB94, 0x8362, 0xFB95, 0x837F, 0xFB96, 0x83C7, 0xFB97, 0x83F6, 0xFB98, 0x8448, 0xFB99, 0x84B4, 0xFB9A, 0x8553, 0xFB9B, 0x8559, + 0xFB9C, 0x856B, 0xFB9D, 0xFA1F, 0xFB9E, 0x85B0, 0xFB9F, 0xFA20, 0xFBA0, 0xFA21, 0xFBA1, 0x8807, 0xFBA2, 0x88F5, 0xFBA3, 0x8A12, + 0xFBA4, 0x8A37, 0xFBA5, 0x8A79, 0xFBA6, 0x8AA7, 0xFBA7, 0x8ABE, 0xFBA8, 0x8ADF, 0xFBA9, 0xFA22, 0xFBAA, 0x8AF6, 0xFBAB, 0x8B53, + 0xFBAC, 0x8B7F, 0xFBAD, 0x8CF0, 0xFBAE, 0x8CF4, 0xFBAF, 0x8D12, 0xFBB0, 0x8D76, 0xFBB1, 0xFA23, 0xFBB2, 0x8ECF, 0xFBB3, 0xFA24, + 0xFBB4, 0xFA25, 0xFBB5, 0x9067, 0xFBB6, 0x90DE, 0xFBB7, 0xFA26, 0xFBB8, 0x9115, 0xFBB9, 0x9127, 0xFBBA, 0x91DA, 0xFBBB, 0x91D7, + 0xFBBC, 0x91DE, 0xFBBD, 0x91ED, 0xFBBE, 0x91EE, 0xFBBF, 0x91E4, 0xFBC0, 0x91E5, 0xFBC1, 0x9206, 0xFBC2, 0x9210, 0xFBC3, 0x920A, + 0xFBC4, 0x923A, 0xFBC5, 0x9240, 0xFBC6, 0x923C, 0xFBC7, 0x924E, 0xFBC8, 0x9259, 0xFBC9, 0x9251, 0xFBCA, 0x9239, 0xFBCB, 0x9267, + 0xFBCC, 0x92A7, 0xFBCD, 0x9277, 0xFBCE, 0x9278, 0xFBCF, 0x92E7, 0xFBD0, 0x92D7, 0xFBD1, 0x92D9, 0xFBD2, 0x92D0, 0xFBD3, 0xFA27, + 0xFBD4, 0x92D5, 0xFBD5, 0x92E0, 0xFBD6, 0x92D3, 0xFBD7, 0x9325, 0xFBD8, 0x9321, 0xFBD9, 0x92FB, 0xFBDA, 0xFA28, 0xFBDB, 0x931E, + 0xFBDC, 0x92FF, 0xFBDD, 0x931D, 0xFBDE, 0x9302, 0xFBDF, 0x9370, 0xFBE0, 0x9357, 0xFBE1, 0x93A4, 0xFBE2, 0x93C6, 0xFBE3, 0x93DE, + 0xFBE4, 0x93F8, 0xFBE5, 0x9431, 0xFBE6, 0x9445, 0xFBE7, 0x9448, 0xFBE8, 0x9592, 0xFBE9, 0xF9DC, 0xFBEA, 0xFA29, 0xFBEB, 0x969D, + 0xFBEC, 0x96AF, 0xFBED, 0x9733, 0xFBEE, 0x973B, 0xFBEF, 0x9743, 0xFBF0, 0x974D, 0xFBF1, 0x974F, 0xFBF2, 0x9751, 0xFBF3, 0x9755, + 0xFBF4, 0x9857, 0xFBF5, 0x9865, 0xFBF6, 0xFA2A, 0xFBF7, 0xFA2B, 0xFBF8, 0x9927, 0xFBF9, 0xFA2C, 0xFBFA, 0x999E, 0xFBFB, 0x9A4E, + 0xFBFC, 0x9AD9, 0xFC40, 0x9ADC, 0xFC41, 0x9B75, 0xFC42, 0x9B72, 0xFC43, 0x9B8F, 0xFC44, 0x9BB1, 0xFC45, 0x9BBB, 0xFC46, 0x9C00, + 0xFC47, 0x9D70, 0xFC48, 0x9D6B, 0xFC49, 0xFA2D, 0xFC4A, 0x9E19, 0xFC4B, 0x9ED1, 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 936 || FF_CODE_PAGE == 0 /* Simplified Chinese */ +static const WCHAR uni2oem936[] = { /* Unicode --> GBK pairs */ + 0x00A4, 0xA1E8, 0x00A7, 0xA1EC, 0x00A8, 0xA1A7, 0x00B0, 0xA1E3, 0x00B1, 0xA1C0, 0x00B7, 0xA1A4, 0x00D7, 0xA1C1, 0x00E0, 0xA8A4, + 0x00E1, 0xA8A2, 0x00E8, 0xA8A8, 0x00E9, 0xA8A6, 0x00EA, 0xA8BA, 0x00EC, 0xA8AC, 0x00ED, 0xA8AA, 0x00F2, 0xA8B0, 0x00F3, 0xA8AE, + 0x00F7, 0xA1C2, 0x00F9, 0xA8B4, 0x00FA, 0xA8B2, 0x00FC, 0xA8B9, 0x0101, 0xA8A1, 0x0113, 0xA8A5, 0x011B, 0xA8A7, 0x012B, 0xA8A9, + 0x0144, 0xA8BD, 0x0148, 0xA8BE, 0x014D, 0xA8AD, 0x016B, 0xA8B1, 0x01CE, 0xA8A3, 0x01D0, 0xA8AB, 0x01D2, 0xA8AF, 0x01D4, 0xA8B3, + 0x01D6, 0xA8B5, 0x01D8, 0xA8B6, 0x01DA, 0xA8B7, 0x01DC, 0xA8B8, 0x0251, 0xA8BB, 0x0261, 0xA8C0, 0x02C7, 0xA1A6, 0x02C9, 0xA1A5, + 0x02CA, 0xA840, 0x02CB, 0xA841, 0x02D9, 0xA842, 0x0391, 0xA6A1, 0x0392, 0xA6A2, 0x0393, 0xA6A3, 0x0394, 0xA6A4, 0x0395, 0xA6A5, + 0x0396, 0xA6A6, 0x0397, 0xA6A7, 0x0398, 0xA6A8, 0x0399, 0xA6A9, 0x039A, 0xA6AA, 0x039B, 0xA6AB, 0x039C, 0xA6AC, 0x039D, 0xA6AD, + 0x039E, 0xA6AE, 0x039F, 0xA6AF, 0x03A0, 0xA6B0, 0x03A1, 0xA6B1, 0x03A3, 0xA6B2, 0x03A4, 0xA6B3, 0x03A5, 0xA6B4, 0x03A6, 0xA6B5, + 0x03A7, 0xA6B6, 0x03A8, 0xA6B7, 0x03A9, 0xA6B8, 0x03B1, 0xA6C1, 0x03B2, 0xA6C2, 0x03B3, 0xA6C3, 0x03B4, 0xA6C4, 0x03B5, 0xA6C5, + 0x03B6, 0xA6C6, 0x03B7, 0xA6C7, 0x03B8, 0xA6C8, 0x03B9, 0xA6C9, 0x03BA, 0xA6CA, 0x03BB, 0xA6CB, 0x03BC, 0xA6CC, 0x03BD, 0xA6CD, + 0x03BE, 0xA6CE, 0x03BF, 0xA6CF, 0x03C0, 0xA6D0, 0x03C1, 0xA6D1, 0x03C3, 0xA6D2, 0x03C4, 0xA6D3, 0x03C5, 0xA6D4, 0x03C6, 0xA6D5, + 0x03C7, 0xA6D6, 0x03C8, 0xA6D7, 0x03C9, 0xA6D8, 0x0401, 0xA7A7, 0x0410, 0xA7A1, 0x0411, 0xA7A2, 0x0412, 0xA7A3, 0x0413, 0xA7A4, + 0x0414, 0xA7A5, 0x0415, 0xA7A6, 0x0416, 0xA7A8, 0x0417, 0xA7A9, 0x0418, 0xA7AA, 0x0419, 0xA7AB, 0x041A, 0xA7AC, 0x041B, 0xA7AD, + 0x041C, 0xA7AE, 0x041D, 0xA7AF, 0x041E, 0xA7B0, 0x041F, 0xA7B1, 0x0420, 0xA7B2, 0x0421, 0xA7B3, 0x0422, 0xA7B4, 0x0423, 0xA7B5, + 0x0424, 0xA7B6, 0x0425, 0xA7B7, 0x0426, 0xA7B8, 0x0427, 0xA7B9, 0x0428, 0xA7BA, 0x0429, 0xA7BB, 0x042A, 0xA7BC, 0x042B, 0xA7BD, + 0x042C, 0xA7BE, 0x042D, 0xA7BF, 0x042E, 0xA7C0, 0x042F, 0xA7C1, 0x0430, 0xA7D1, 0x0431, 0xA7D2, 0x0432, 0xA7D3, 0x0433, 0xA7D4, + 0x0434, 0xA7D5, 0x0435, 0xA7D6, 0x0436, 0xA7D8, 0x0437, 0xA7D9, 0x0438, 0xA7DA, 0x0439, 0xA7DB, 0x043A, 0xA7DC, 0x043B, 0xA7DD, + 0x043C, 0xA7DE, 0x043D, 0xA7DF, 0x043E, 0xA7E0, 0x043F, 0xA7E1, 0x0440, 0xA7E2, 0x0441, 0xA7E3, 0x0442, 0xA7E4, 0x0443, 0xA7E5, + 0x0444, 0xA7E6, 0x0445, 0xA7E7, 0x0446, 0xA7E8, 0x0447, 0xA7E9, 0x0448, 0xA7EA, 0x0449, 0xA7EB, 0x044A, 0xA7EC, 0x044B, 0xA7ED, + 0x044C, 0xA7EE, 0x044D, 0xA7EF, 0x044E, 0xA7F0, 0x044F, 0xA7F1, 0x0451, 0xA7D7, 0x2010, 0xA95C, 0x2013, 0xA843, 0x2014, 0xA1AA, + 0x2015, 0xA844, 0x2016, 0xA1AC, 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, 0x2025, 0xA845, 0x2026, 0xA1AD, + 0x2030, 0xA1EB, 0x2032, 0xA1E4, 0x2033, 0xA1E5, 0x2035, 0xA846, 0x203B, 0xA1F9, 0x20AC, 0x0080, 0x2103, 0xA1E6, 0x2105, 0xA847, + 0x2109, 0xA848, 0x2116, 0xA1ED, 0x2121, 0xA959, 0x2160, 0xA2F1, 0x2161, 0xA2F2, 0x2162, 0xA2F3, 0x2163, 0xA2F4, 0x2164, 0xA2F5, + 0x2165, 0xA2F6, 0x2166, 0xA2F7, 0x2167, 0xA2F8, 0x2168, 0xA2F9, 0x2169, 0xA2FA, 0x216A, 0xA2FB, 0x216B, 0xA2FC, 0x2170, 0xA2A1, + 0x2171, 0xA2A2, 0x2172, 0xA2A3, 0x2173, 0xA2A4, 0x2174, 0xA2A5, 0x2175, 0xA2A6, 0x2176, 0xA2A7, 0x2177, 0xA2A8, 0x2178, 0xA2A9, + 0x2179, 0xA2AA, 0x2190, 0xA1FB, 0x2191, 0xA1FC, 0x2192, 0xA1FA, 0x2193, 0xA1FD, 0x2196, 0xA849, 0x2197, 0xA84A, 0x2198, 0xA84B, + 0x2199, 0xA84C, 0x2208, 0xA1CA, 0x220F, 0xA1C7, 0x2211, 0xA1C6, 0x2215, 0xA84D, 0x221A, 0xA1CC, 0x221D, 0xA1D8, 0x221E, 0xA1DE, + 0x221F, 0xA84E, 0x2220, 0xA1CF, 0x2223, 0xA84F, 0x2225, 0xA1CE, 0x2227, 0xA1C4, 0x2228, 0xA1C5, 0x2229, 0xA1C9, 0x222A, 0xA1C8, + 0x222B, 0xA1D2, 0x222E, 0xA1D3, 0x2234, 0xA1E0, 0x2235, 0xA1DF, 0x2236, 0xA1C3, 0x2237, 0xA1CB, 0x223D, 0xA1D7, 0x2248, 0xA1D6, + 0x224C, 0xA1D5, 0x2252, 0xA850, 0x2260, 0xA1D9, 0x2261, 0xA1D4, 0x2264, 0xA1DC, 0x2265, 0xA1DD, 0x2266, 0xA851, 0x2267, 0xA852, + 0x226E, 0xA1DA, 0x226F, 0xA1DB, 0x2295, 0xA892, 0x2299, 0xA1D1, 0x22A5, 0xA1CD, 0x22BF, 0xA853, 0x2312, 0xA1D0, 0x2460, 0xA2D9, + 0x2461, 0xA2DA, 0x2462, 0xA2DB, 0x2463, 0xA2DC, 0x2464, 0xA2DD, 0x2465, 0xA2DE, 0x2466, 0xA2DF, 0x2467, 0xA2E0, 0x2468, 0xA2E1, + 0x2469, 0xA2E2, 0x2474, 0xA2C5, 0x2475, 0xA2C6, 0x2476, 0xA2C7, 0x2477, 0xA2C8, 0x2478, 0xA2C9, 0x2479, 0xA2CA, 0x247A, 0xA2CB, + 0x247B, 0xA2CC, 0x247C, 0xA2CD, 0x247D, 0xA2CE, 0x247E, 0xA2CF, 0x247F, 0xA2D0, 0x2480, 0xA2D1, 0x2481, 0xA2D2, 0x2482, 0xA2D3, + 0x2483, 0xA2D4, 0x2484, 0xA2D5, 0x2485, 0xA2D6, 0x2486, 0xA2D7, 0x2487, 0xA2D8, 0x2488, 0xA2B1, 0x2489, 0xA2B2, 0x248A, 0xA2B3, + 0x248B, 0xA2B4, 0x248C, 0xA2B5, 0x248D, 0xA2B6, 0x248E, 0xA2B7, 0x248F, 0xA2B8, 0x2490, 0xA2B9, 0x2491, 0xA2BA, 0x2492, 0xA2BB, + 0x2493, 0xA2BC, 0x2494, 0xA2BD, 0x2495, 0xA2BE, 0x2496, 0xA2BF, 0x2497, 0xA2C0, 0x2498, 0xA2C1, 0x2499, 0xA2C2, 0x249A, 0xA2C3, + 0x249B, 0xA2C4, 0x2500, 0xA9A4, 0x2501, 0xA9A5, 0x2502, 0xA9A6, 0x2503, 0xA9A7, 0x2504, 0xA9A8, 0x2505, 0xA9A9, 0x2506, 0xA9AA, + 0x2507, 0xA9AB, 0x2508, 0xA9AC, 0x2509, 0xA9AD, 0x250A, 0xA9AE, 0x250B, 0xA9AF, 0x250C, 0xA9B0, 0x250D, 0xA9B1, 0x250E, 0xA9B2, + 0x250F, 0xA9B3, 0x2510, 0xA9B4, 0x2511, 0xA9B5, 0x2512, 0xA9B6, 0x2513, 0xA9B7, 0x2514, 0xA9B8, 0x2515, 0xA9B9, 0x2516, 0xA9BA, + 0x2517, 0xA9BB, 0x2518, 0xA9BC, 0x2519, 0xA9BD, 0x251A, 0xA9BE, 0x251B, 0xA9BF, 0x251C, 0xA9C0, 0x251D, 0xA9C1, 0x251E, 0xA9C2, + 0x251F, 0xA9C3, 0x2520, 0xA9C4, 0x2521, 0xA9C5, 0x2522, 0xA9C6, 0x2523, 0xA9C7, 0x2524, 0xA9C8, 0x2525, 0xA9C9, 0x2526, 0xA9CA, + 0x2527, 0xA9CB, 0x2528, 0xA9CC, 0x2529, 0xA9CD, 0x252A, 0xA9CE, 0x252B, 0xA9CF, 0x252C, 0xA9D0, 0x252D, 0xA9D1, 0x252E, 0xA9D2, + 0x252F, 0xA9D3, 0x2530, 0xA9D4, 0x2531, 0xA9D5, 0x2532, 0xA9D6, 0x2533, 0xA9D7, 0x2534, 0xA9D8, 0x2535, 0xA9D9, 0x2536, 0xA9DA, + 0x2537, 0xA9DB, 0x2538, 0xA9DC, 0x2539, 0xA9DD, 0x253A, 0xA9DE, 0x253B, 0xA9DF, 0x253C, 0xA9E0, 0x253D, 0xA9E1, 0x253E, 0xA9E2, + 0x253F, 0xA9E3, 0x2540, 0xA9E4, 0x2541, 0xA9E5, 0x2542, 0xA9E6, 0x2543, 0xA9E7, 0x2544, 0xA9E8, 0x2545, 0xA9E9, 0x2546, 0xA9EA, + 0x2547, 0xA9EB, 0x2548, 0xA9EC, 0x2549, 0xA9ED, 0x254A, 0xA9EE, 0x254B, 0xA9EF, 0x2550, 0xA854, 0x2551, 0xA855, 0x2552, 0xA856, + 0x2553, 0xA857, 0x2554, 0xA858, 0x2555, 0xA859, 0x2556, 0xA85A, 0x2557, 0xA85B, 0x2558, 0xA85C, 0x2559, 0xA85D, 0x255A, 0xA85E, + 0x255B, 0xA85F, 0x255C, 0xA860, 0x255D, 0xA861, 0x255E, 0xA862, 0x255F, 0xA863, 0x2560, 0xA864, 0x2561, 0xA865, 0x2562, 0xA866, + 0x2563, 0xA867, 0x2564, 0xA868, 0x2565, 0xA869, 0x2566, 0xA86A, 0x2567, 0xA86B, 0x2568, 0xA86C, 0x2569, 0xA86D, 0x256A, 0xA86E, + 0x256B, 0xA86F, 0x256C, 0xA870, 0x256D, 0xA871, 0x256E, 0xA872, 0x256F, 0xA873, 0x2570, 0xA874, 0x2571, 0xA875, 0x2572, 0xA876, + 0x2573, 0xA877, 0x2581, 0xA878, 0x2582, 0xA879, 0x2583, 0xA87A, 0x2584, 0xA87B, 0x2585, 0xA87C, 0x2586, 0xA87D, 0x2587, 0xA87E, + 0x2588, 0xA880, 0x2589, 0xA881, 0x258A, 0xA882, 0x258B, 0xA883, 0x258C, 0xA884, 0x258D, 0xA885, 0x258E, 0xA886, 0x258F, 0xA887, + 0x2593, 0xA888, 0x2594, 0xA889, 0x2595, 0xA88A, 0x25A0, 0xA1F6, 0x25A1, 0xA1F5, 0x25B2, 0xA1F8, 0x25B3, 0xA1F7, 0x25BC, 0xA88B, + 0x25BD, 0xA88C, 0x25C6, 0xA1F4, 0x25C7, 0xA1F3, 0x25CB, 0xA1F0, 0x25CE, 0xA1F2, 0x25CF, 0xA1F1, 0x25E2, 0xA88D, 0x25E3, 0xA88E, + 0x25E4, 0xA88F, 0x25E5, 0xA890, 0x2605, 0xA1EF, 0x2606, 0xA1EE, 0x2609, 0xA891, 0x2640, 0xA1E2, 0x2642, 0xA1E1, 0x3000, 0xA1A1, + 0x3001, 0xA1A2, 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3005, 0xA1A9, 0x3006, 0xA965, 0x3007, 0xA996, 0x3008, 0xA1B4, 0x3009, 0xA1B5, + 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BE, 0x3011, 0xA1BF, + 0x3012, 0xA893, 0x3013, 0xA1FE, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3016, 0xA1BC, 0x3017, 0xA1BD, 0x301D, 0xA894, 0x301E, 0xA895, + 0x3021, 0xA940, 0x3022, 0xA941, 0x3023, 0xA942, 0x3024, 0xA943, 0x3025, 0xA944, 0x3026, 0xA945, 0x3027, 0xA946, 0x3028, 0xA947, + 0x3029, 0xA948, 0x3041, 0xA4A1, 0x3042, 0xA4A2, 0x3043, 0xA4A3, 0x3044, 0xA4A4, 0x3045, 0xA4A5, 0x3046, 0xA4A6, 0x3047, 0xA4A7, + 0x3048, 0xA4A8, 0x3049, 0xA4A9, 0x304A, 0xA4AA, 0x304B, 0xA4AB, 0x304C, 0xA4AC, 0x304D, 0xA4AD, 0x304E, 0xA4AE, 0x304F, 0xA4AF, + 0x3050, 0xA4B0, 0x3051, 0xA4B1, 0x3052, 0xA4B2, 0x3053, 0xA4B3, 0x3054, 0xA4B4, 0x3055, 0xA4B5, 0x3056, 0xA4B6, 0x3057, 0xA4B7, + 0x3058, 0xA4B8, 0x3059, 0xA4B9, 0x305A, 0xA4BA, 0x305B, 0xA4BB, 0x305C, 0xA4BC, 0x305D, 0xA4BD, 0x305E, 0xA4BE, 0x305F, 0xA4BF, + 0x3060, 0xA4C0, 0x3061, 0xA4C1, 0x3062, 0xA4C2, 0x3063, 0xA4C3, 0x3064, 0xA4C4, 0x3065, 0xA4C5, 0x3066, 0xA4C6, 0x3067, 0xA4C7, + 0x3068, 0xA4C8, 0x3069, 0xA4C9, 0x306A, 0xA4CA, 0x306B, 0xA4CB, 0x306C, 0xA4CC, 0x306D, 0xA4CD, 0x306E, 0xA4CE, 0x306F, 0xA4CF, + 0x3070, 0xA4D0, 0x3071, 0xA4D1, 0x3072, 0xA4D2, 0x3073, 0xA4D3, 0x3074, 0xA4D4, 0x3075, 0xA4D5, 0x3076, 0xA4D6, 0x3077, 0xA4D7, + 0x3078, 0xA4D8, 0x3079, 0xA4D9, 0x307A, 0xA4DA, 0x307B, 0xA4DB, 0x307C, 0xA4DC, 0x307D, 0xA4DD, 0x307E, 0xA4DE, 0x307F, 0xA4DF, + 0x3080, 0xA4E0, 0x3081, 0xA4E1, 0x3082, 0xA4E2, 0x3083, 0xA4E3, 0x3084, 0xA4E4, 0x3085, 0xA4E5, 0x3086, 0xA4E6, 0x3087, 0xA4E7, + 0x3088, 0xA4E8, 0x3089, 0xA4E9, 0x308A, 0xA4EA, 0x308B, 0xA4EB, 0x308C, 0xA4EC, 0x308D, 0xA4ED, 0x308E, 0xA4EE, 0x308F, 0xA4EF, + 0x3090, 0xA4F0, 0x3091, 0xA4F1, 0x3092, 0xA4F2, 0x3093, 0xA4F3, 0x309B, 0xA961, 0x309C, 0xA962, 0x309D, 0xA966, 0x309E, 0xA967, + 0x30A1, 0xA5A1, 0x30A2, 0xA5A2, 0x30A3, 0xA5A3, 0x30A4, 0xA5A4, 0x30A5, 0xA5A5, 0x30A6, 0xA5A6, 0x30A7, 0xA5A7, 0x30A8, 0xA5A8, + 0x30A9, 0xA5A9, 0x30AA, 0xA5AA, 0x30AB, 0xA5AB, 0x30AC, 0xA5AC, 0x30AD, 0xA5AD, 0x30AE, 0xA5AE, 0x30AF, 0xA5AF, 0x30B0, 0xA5B0, + 0x30B1, 0xA5B1, 0x30B2, 0xA5B2, 0x30B3, 0xA5B3, 0x30B4, 0xA5B4, 0x30B5, 0xA5B5, 0x30B6, 0xA5B6, 0x30B7, 0xA5B7, 0x30B8, 0xA5B8, + 0x30B9, 0xA5B9, 0x30BA, 0xA5BA, 0x30BB, 0xA5BB, 0x30BC, 0xA5BC, 0x30BD, 0xA5BD, 0x30BE, 0xA5BE, 0x30BF, 0xA5BF, 0x30C0, 0xA5C0, + 0x30C1, 0xA5C1, 0x30C2, 0xA5C2, 0x30C3, 0xA5C3, 0x30C4, 0xA5C4, 0x30C5, 0xA5C5, 0x30C6, 0xA5C6, 0x30C7, 0xA5C7, 0x30C8, 0xA5C8, + 0x30C9, 0xA5C9, 0x30CA, 0xA5CA, 0x30CB, 0xA5CB, 0x30CC, 0xA5CC, 0x30CD, 0xA5CD, 0x30CE, 0xA5CE, 0x30CF, 0xA5CF, 0x30D0, 0xA5D0, + 0x30D1, 0xA5D1, 0x30D2, 0xA5D2, 0x30D3, 0xA5D3, 0x30D4, 0xA5D4, 0x30D5, 0xA5D5, 0x30D6, 0xA5D6, 0x30D7, 0xA5D7, 0x30D8, 0xA5D8, + 0x30D9, 0xA5D9, 0x30DA, 0xA5DA, 0x30DB, 0xA5DB, 0x30DC, 0xA5DC, 0x30DD, 0xA5DD, 0x30DE, 0xA5DE, 0x30DF, 0xA5DF, 0x30E0, 0xA5E0, + 0x30E1, 0xA5E1, 0x30E2, 0xA5E2, 0x30E3, 0xA5E3, 0x30E4, 0xA5E4, 0x30E5, 0xA5E5, 0x30E6, 0xA5E6, 0x30E7, 0xA5E7, 0x30E8, 0xA5E8, + 0x30E9, 0xA5E9, 0x30EA, 0xA5EA, 0x30EB, 0xA5EB, 0x30EC, 0xA5EC, 0x30ED, 0xA5ED, 0x30EE, 0xA5EE, 0x30EF, 0xA5EF, 0x30F0, 0xA5F0, + 0x30F1, 0xA5F1, 0x30F2, 0xA5F2, 0x30F3, 0xA5F3, 0x30F4, 0xA5F4, 0x30F5, 0xA5F5, 0x30F6, 0xA5F6, 0x30FC, 0xA960, 0x30FD, 0xA963, + 0x30FE, 0xA964, 0x3105, 0xA8C5, 0x3106, 0xA8C6, 0x3107, 0xA8C7, 0x3108, 0xA8C8, 0x3109, 0xA8C9, 0x310A, 0xA8CA, 0x310B, 0xA8CB, + 0x310C, 0xA8CC, 0x310D, 0xA8CD, 0x310E, 0xA8CE, 0x310F, 0xA8CF, 0x3110, 0xA8D0, 0x3111, 0xA8D1, 0x3112, 0xA8D2, 0x3113, 0xA8D3, + 0x3114, 0xA8D4, 0x3115, 0xA8D5, 0x3116, 0xA8D6, 0x3117, 0xA8D7, 0x3118, 0xA8D8, 0x3119, 0xA8D9, 0x311A, 0xA8DA, 0x311B, 0xA8DB, + 0x311C, 0xA8DC, 0x311D, 0xA8DD, 0x311E, 0xA8DE, 0x311F, 0xA8DF, 0x3120, 0xA8E0, 0x3121, 0xA8E1, 0x3122, 0xA8E2, 0x3123, 0xA8E3, + 0x3124, 0xA8E4, 0x3125, 0xA8E5, 0x3126, 0xA8E6, 0x3127, 0xA8E7, 0x3128, 0xA8E8, 0x3129, 0xA8E9, 0x3220, 0xA2E5, 0x3221, 0xA2E6, + 0x3222, 0xA2E7, 0x3223, 0xA2E8, 0x3224, 0xA2E9, 0x3225, 0xA2EA, 0x3226, 0xA2EB, 0x3227, 0xA2EC, 0x3228, 0xA2ED, 0x3229, 0xA2EE, + 0x3231, 0xA95A, 0x32A3, 0xA949, 0x338E, 0xA94A, 0x338F, 0xA94B, 0x339C, 0xA94C, 0x339D, 0xA94D, 0x339E, 0xA94E, 0x33A1, 0xA94F, + 0x33C4, 0xA950, 0x33CE, 0xA951, 0x33D1, 0xA952, 0x33D2, 0xA953, 0x33D5, 0xA954, 0x4E00, 0xD2BB, 0x4E01, 0xB6A1, 0x4E02, 0x8140, + 0x4E03, 0xC6DF, 0x4E04, 0x8141, 0x4E05, 0x8142, 0x4E06, 0x8143, 0x4E07, 0xCDF2, 0x4E08, 0xD5C9, 0x4E09, 0xC8FD, 0x4E0A, 0xC9CF, + 0x4E0B, 0xCFC2, 0x4E0C, 0xD8A2, 0x4E0D, 0xB2BB, 0x4E0E, 0xD3EB, 0x4E0F, 0x8144, 0x4E10, 0xD8A4, 0x4E11, 0xB3F3, 0x4E12, 0x8145, + 0x4E13, 0xD7A8, 0x4E14, 0xC7D2, 0x4E15, 0xD8A7, 0x4E16, 0xCAC0, 0x4E17, 0x8146, 0x4E18, 0xC7F0, 0x4E19, 0xB1FB, 0x4E1A, 0xD2B5, + 0x4E1B, 0xB4D4, 0x4E1C, 0xB6AB, 0x4E1D, 0xCBBF, 0x4E1E, 0xD8A9, 0x4E1F, 0x8147, 0x4E20, 0x8148, 0x4E21, 0x8149, 0x4E22, 0xB6AA, + 0x4E23, 0x814A, 0x4E24, 0xC1BD, 0x4E25, 0xD1CF, 0x4E26, 0x814B, 0x4E27, 0xC9A5, 0x4E28, 0xD8AD, 0x4E29, 0x814C, 0x4E2A, 0xB8F6, + 0x4E2B, 0xD1BE, 0x4E2C, 0xE3DC, 0x4E2D, 0xD6D0, 0x4E2E, 0x814D, 0x4E2F, 0x814E, 0x4E30, 0xB7E1, 0x4E31, 0x814F, 0x4E32, 0xB4AE, + 0x4E33, 0x8150, 0x4E34, 0xC1D9, 0x4E35, 0x8151, 0x4E36, 0xD8BC, 0x4E37, 0x8152, 0x4E38, 0xCDE8, 0x4E39, 0xB5A4, 0x4E3A, 0xCEAA, + 0x4E3B, 0xD6F7, 0x4E3C, 0x8153, 0x4E3D, 0xC0F6, 0x4E3E, 0xBED9, 0x4E3F, 0xD8AF, 0x4E40, 0x8154, 0x4E41, 0x8155, 0x4E42, 0x8156, + 0x4E43, 0xC4CB, 0x4E44, 0x8157, 0x4E45, 0xBEC3, 0x4E46, 0x8158, 0x4E47, 0xD8B1, 0x4E48, 0xC3B4, 0x4E49, 0xD2E5, 0x4E4A, 0x8159, + 0x4E4B, 0xD6AE, 0x4E4C, 0xCEDA, 0x4E4D, 0xD5A7, 0x4E4E, 0xBAF5, 0x4E4F, 0xB7A6, 0x4E50, 0xC0D6, 0x4E51, 0x815A, 0x4E52, 0xC6B9, + 0x4E53, 0xC5D2, 0x4E54, 0xC7C7, 0x4E55, 0x815B, 0x4E56, 0xB9D4, 0x4E57, 0x815C, 0x4E58, 0xB3CB, 0x4E59, 0xD2D2, 0x4E5A, 0x815D, + 0x4E5B, 0x815E, 0x4E5C, 0xD8BF, 0x4E5D, 0xBEC5, 0x4E5E, 0xC6F2, 0x4E5F, 0xD2B2, 0x4E60, 0xCFB0, 0x4E61, 0xCFE7, 0x4E62, 0x815F, + 0x4E63, 0x8160, 0x4E64, 0x8161, 0x4E65, 0x8162, 0x4E66, 0xCAE9, 0x4E67, 0x8163, 0x4E68, 0x8164, 0x4E69, 0xD8C0, 0x4E6A, 0x8165, + 0x4E6B, 0x8166, 0x4E6C, 0x8167, 0x4E6D, 0x8168, 0x4E6E, 0x8169, 0x4E6F, 0x816A, 0x4E70, 0xC2F2, 0x4E71, 0xC2D2, 0x4E72, 0x816B, + 0x4E73, 0xC8E9, 0x4E74, 0x816C, 0x4E75, 0x816D, 0x4E76, 0x816E, 0x4E77, 0x816F, 0x4E78, 0x8170, 0x4E79, 0x8171, 0x4E7A, 0x8172, + 0x4E7B, 0x8173, 0x4E7C, 0x8174, 0x4E7D, 0x8175, 0x4E7E, 0xC7AC, 0x4E7F, 0x8176, 0x4E80, 0x8177, 0x4E81, 0x8178, 0x4E82, 0x8179, + 0x4E83, 0x817A, 0x4E84, 0x817B, 0x4E85, 0x817C, 0x4E86, 0xC1CB, 0x4E87, 0x817D, 0x4E88, 0xD3E8, 0x4E89, 0xD5F9, 0x4E8A, 0x817E, + 0x4E8B, 0xCAC2, 0x4E8C, 0xB6FE, 0x4E8D, 0xD8A1, 0x4E8E, 0xD3DA, 0x4E8F, 0xBFF7, 0x4E90, 0x8180, 0x4E91, 0xD4C6, 0x4E92, 0xBBA5, + 0x4E93, 0xD8C1, 0x4E94, 0xCEE5, 0x4E95, 0xBEAE, 0x4E96, 0x8181, 0x4E97, 0x8182, 0x4E98, 0xD8A8, 0x4E99, 0x8183, 0x4E9A, 0xD1C7, + 0x4E9B, 0xD0A9, 0x4E9C, 0x8184, 0x4E9D, 0x8185, 0x4E9E, 0x8186, 0x4E9F, 0xD8BD, 0x4EA0, 0xD9EF, 0x4EA1, 0xCDF6, 0x4EA2, 0xBFBA, + 0x4EA3, 0x8187, 0x4EA4, 0xBDBB, 0x4EA5, 0xBAA5, 0x4EA6, 0xD2E0, 0x4EA7, 0xB2FA, 0x4EA8, 0xBAE0, 0x4EA9, 0xC4B6, 0x4EAA, 0x8188, + 0x4EAB, 0xCFED, 0x4EAC, 0xBEA9, 0x4EAD, 0xCDA4, 0x4EAE, 0xC1C1, 0x4EAF, 0x8189, 0x4EB0, 0x818A, 0x4EB1, 0x818B, 0x4EB2, 0xC7D7, + 0x4EB3, 0xD9F1, 0x4EB4, 0x818C, 0x4EB5, 0xD9F4, 0x4EB6, 0x818D, 0x4EB7, 0x818E, 0x4EB8, 0x818F, 0x4EB9, 0x8190, 0x4EBA, 0xC8CB, + 0x4EBB, 0xD8E9, 0x4EBC, 0x8191, 0x4EBD, 0x8192, 0x4EBE, 0x8193, 0x4EBF, 0xD2DA, 0x4EC0, 0xCAB2, 0x4EC1, 0xC8CA, 0x4EC2, 0xD8EC, + 0x4EC3, 0xD8EA, 0x4EC4, 0xD8C6, 0x4EC5, 0xBDF6, 0x4EC6, 0xC6CD, 0x4EC7, 0xB3F0, 0x4EC8, 0x8194, 0x4EC9, 0xD8EB, 0x4ECA, 0xBDF1, + 0x4ECB, 0xBDE9, 0x4ECC, 0x8195, 0x4ECD, 0xC8D4, 0x4ECE, 0xB4D3, 0x4ECF, 0x8196, 0x4ED0, 0x8197, 0x4ED1, 0xC2D8, 0x4ED2, 0x8198, + 0x4ED3, 0xB2D6, 0x4ED4, 0xD7D0, 0x4ED5, 0xCACB, 0x4ED6, 0xCBFB, 0x4ED7, 0xD5CC, 0x4ED8, 0xB8B6, 0x4ED9, 0xCFC9, 0x4EDA, 0x8199, + 0x4EDB, 0x819A, 0x4EDC, 0x819B, 0x4EDD, 0xD9DA, 0x4EDE, 0xD8F0, 0x4EDF, 0xC7AA, 0x4EE0, 0x819C, 0x4EE1, 0xD8EE, 0x4EE2, 0x819D, + 0x4EE3, 0xB4FA, 0x4EE4, 0xC1EE, 0x4EE5, 0xD2D4, 0x4EE6, 0x819E, 0x4EE7, 0x819F, 0x4EE8, 0xD8ED, 0x4EE9, 0x81A0, 0x4EEA, 0xD2C7, + 0x4EEB, 0xD8EF, 0x4EEC, 0xC3C7, 0x4EED, 0x81A1, 0x4EEE, 0x81A2, 0x4EEF, 0x81A3, 0x4EF0, 0xD1F6, 0x4EF1, 0x81A4, 0x4EF2, 0xD6D9, + 0x4EF3, 0xD8F2, 0x4EF4, 0x81A5, 0x4EF5, 0xD8F5, 0x4EF6, 0xBCFE, 0x4EF7, 0xBCDB, 0x4EF8, 0x81A6, 0x4EF9, 0x81A7, 0x4EFA, 0x81A8, + 0x4EFB, 0xC8CE, 0x4EFC, 0x81A9, 0x4EFD, 0xB7DD, 0x4EFE, 0x81AA, 0x4EFF, 0xB7C2, 0x4F00, 0x81AB, 0x4F01, 0xC6F3, 0x4F02, 0x81AC, + 0x4F03, 0x81AD, 0x4F04, 0x81AE, 0x4F05, 0x81AF, 0x4F06, 0x81B0, 0x4F07, 0x81B1, 0x4F08, 0x81B2, 0x4F09, 0xD8F8, 0x4F0A, 0xD2C1, + 0x4F0B, 0x81B3, 0x4F0C, 0x81B4, 0x4F0D, 0xCEE9, 0x4F0E, 0xBCBF, 0x4F0F, 0xB7FC, 0x4F10, 0xB7A5, 0x4F11, 0xD0DD, 0x4F12, 0x81B5, + 0x4F13, 0x81B6, 0x4F14, 0x81B7, 0x4F15, 0x81B8, 0x4F16, 0x81B9, 0x4F17, 0xD6DA, 0x4F18, 0xD3C5, 0x4F19, 0xBBEF, 0x4F1A, 0xBBE1, + 0x4F1B, 0xD8F1, 0x4F1C, 0x81BA, 0x4F1D, 0x81BB, 0x4F1E, 0xC9A1, 0x4F1F, 0xCEB0, 0x4F20, 0xB4AB, 0x4F21, 0x81BC, 0x4F22, 0xD8F3, + 0x4F23, 0x81BD, 0x4F24, 0xC9CB, 0x4F25, 0xD8F6, 0x4F26, 0xC2D7, 0x4F27, 0xD8F7, 0x4F28, 0x81BE, 0x4F29, 0x81BF, 0x4F2A, 0xCEB1, + 0x4F2B, 0xD8F9, 0x4F2C, 0x81C0, 0x4F2D, 0x81C1, 0x4F2E, 0x81C2, 0x4F2F, 0xB2AE, 0x4F30, 0xB9C0, 0x4F31, 0x81C3, 0x4F32, 0xD9A3, + 0x4F33, 0x81C4, 0x4F34, 0xB0E9, 0x4F35, 0x81C5, 0x4F36, 0xC1E6, 0x4F37, 0x81C6, 0x4F38, 0xC9EC, 0x4F39, 0x81C7, 0x4F3A, 0xCBC5, + 0x4F3B, 0x81C8, 0x4F3C, 0xCBC6, 0x4F3D, 0xD9A4, 0x4F3E, 0x81C9, 0x4F3F, 0x81CA, 0x4F40, 0x81CB, 0x4F41, 0x81CC, 0x4F42, 0x81CD, + 0x4F43, 0xB5E8, 0x4F44, 0x81CE, 0x4F45, 0x81CF, 0x4F46, 0xB5AB, 0x4F47, 0x81D0, 0x4F48, 0x81D1, 0x4F49, 0x81D2, 0x4F4A, 0x81D3, + 0x4F4B, 0x81D4, 0x4F4C, 0x81D5, 0x4F4D, 0xCEBB, 0x4F4E, 0xB5CD, 0x4F4F, 0xD7A1, 0x4F50, 0xD7F4, 0x4F51, 0xD3D3, 0x4F52, 0x81D6, + 0x4F53, 0xCCE5, 0x4F54, 0x81D7, 0x4F55, 0xBACE, 0x4F56, 0x81D8, 0x4F57, 0xD9A2, 0x4F58, 0xD9DC, 0x4F59, 0xD3E0, 0x4F5A, 0xD8FD, + 0x4F5B, 0xB7F0, 0x4F5C, 0xD7F7, 0x4F5D, 0xD8FE, 0x4F5E, 0xD8FA, 0x4F5F, 0xD9A1, 0x4F60, 0xC4E3, 0x4F61, 0x81D9, 0x4F62, 0x81DA, + 0x4F63, 0xD3B6, 0x4F64, 0xD8F4, 0x4F65, 0xD9DD, 0x4F66, 0x81DB, 0x4F67, 0xD8FB, 0x4F68, 0x81DC, 0x4F69, 0xC5E5, 0x4F6A, 0x81DD, + 0x4F6B, 0x81DE, 0x4F6C, 0xC0D0, 0x4F6D, 0x81DF, 0x4F6E, 0x81E0, 0x4F6F, 0xD1F0, 0x4F70, 0xB0DB, 0x4F71, 0x81E1, 0x4F72, 0x81E2, + 0x4F73, 0xBCD1, 0x4F74, 0xD9A6, 0x4F75, 0x81E3, 0x4F76, 0xD9A5, 0x4F77, 0x81E4, 0x4F78, 0x81E5, 0x4F79, 0x81E6, 0x4F7A, 0x81E7, + 0x4F7B, 0xD9AC, 0x4F7C, 0xD9AE, 0x4F7D, 0x81E8, 0x4F7E, 0xD9AB, 0x4F7F, 0xCAB9, 0x4F80, 0x81E9, 0x4F81, 0x81EA, 0x4F82, 0x81EB, + 0x4F83, 0xD9A9, 0x4F84, 0xD6B6, 0x4F85, 0x81EC, 0x4F86, 0x81ED, 0x4F87, 0x81EE, 0x4F88, 0xB3DE, 0x4F89, 0xD9A8, 0x4F8A, 0x81EF, + 0x4F8B, 0xC0FD, 0x4F8C, 0x81F0, 0x4F8D, 0xCACC, 0x4F8E, 0x81F1, 0x4F8F, 0xD9AA, 0x4F90, 0x81F2, 0x4F91, 0xD9A7, 0x4F92, 0x81F3, + 0x4F93, 0x81F4, 0x4F94, 0xD9B0, 0x4F95, 0x81F5, 0x4F96, 0x81F6, 0x4F97, 0xB6B1, 0x4F98, 0x81F7, 0x4F99, 0x81F8, 0x4F9A, 0x81F9, + 0x4F9B, 0xB9A9, 0x4F9C, 0x81FA, 0x4F9D, 0xD2C0, 0x4F9E, 0x81FB, 0x4F9F, 0x81FC, 0x4FA0, 0xCFC0, 0x4FA1, 0x81FD, 0x4FA2, 0x81FE, + 0x4FA3, 0xC2C2, 0x4FA4, 0x8240, 0x4FA5, 0xBDC4, 0x4FA6, 0xD5EC, 0x4FA7, 0xB2E0, 0x4FA8, 0xC7C8, 0x4FA9, 0xBFEB, 0x4FAA, 0xD9AD, + 0x4FAB, 0x8241, 0x4FAC, 0xD9AF, 0x4FAD, 0x8242, 0x4FAE, 0xCEEA, 0x4FAF, 0xBAEE, 0x4FB0, 0x8243, 0x4FB1, 0x8244, 0x4FB2, 0x8245, + 0x4FB3, 0x8246, 0x4FB4, 0x8247, 0x4FB5, 0xC7D6, 0x4FB6, 0x8248, 0x4FB7, 0x8249, 0x4FB8, 0x824A, 0x4FB9, 0x824B, 0x4FBA, 0x824C, + 0x4FBB, 0x824D, 0x4FBC, 0x824E, 0x4FBD, 0x824F, 0x4FBE, 0x8250, 0x4FBF, 0xB1E3, 0x4FC0, 0x8251, 0x4FC1, 0x8252, 0x4FC2, 0x8253, + 0x4FC3, 0xB4D9, 0x4FC4, 0xB6ED, 0x4FC5, 0xD9B4, 0x4FC6, 0x8254, 0x4FC7, 0x8255, 0x4FC8, 0x8256, 0x4FC9, 0x8257, 0x4FCA, 0xBFA1, + 0x4FCB, 0x8258, 0x4FCC, 0x8259, 0x4FCD, 0x825A, 0x4FCE, 0xD9DE, 0x4FCF, 0xC7CE, 0x4FD0, 0xC0FE, 0x4FD1, 0xD9B8, 0x4FD2, 0x825B, + 0x4FD3, 0x825C, 0x4FD4, 0x825D, 0x4FD5, 0x825E, 0x4FD6, 0x825F, 0x4FD7, 0xCBD7, 0x4FD8, 0xB7FD, 0x4FD9, 0x8260, 0x4FDA, 0xD9B5, + 0x4FDB, 0x8261, 0x4FDC, 0xD9B7, 0x4FDD, 0xB1A3, 0x4FDE, 0xD3E1, 0x4FDF, 0xD9B9, 0x4FE0, 0x8262, 0x4FE1, 0xD0C5, 0x4FE2, 0x8263, + 0x4FE3, 0xD9B6, 0x4FE4, 0x8264, 0x4FE5, 0x8265, 0x4FE6, 0xD9B1, 0x4FE7, 0x8266, 0x4FE8, 0xD9B2, 0x4FE9, 0xC1A9, 0x4FEA, 0xD9B3, + 0x4FEB, 0x8267, 0x4FEC, 0x8268, 0x4FED, 0xBCF3, 0x4FEE, 0xD0DE, 0x4FEF, 0xB8A9, 0x4FF0, 0x8269, 0x4FF1, 0xBEE3, 0x4FF2, 0x826A, + 0x4FF3, 0xD9BD, 0x4FF4, 0x826B, 0x4FF5, 0x826C, 0x4FF6, 0x826D, 0x4FF7, 0x826E, 0x4FF8, 0xD9BA, 0x4FF9, 0x826F, 0x4FFA, 0xB0B3, + 0x4FFB, 0x8270, 0x4FFC, 0x8271, 0x4FFD, 0x8272, 0x4FFE, 0xD9C2, 0x4FFF, 0x8273, 0x5000, 0x8274, 0x5001, 0x8275, 0x5002, 0x8276, + 0x5003, 0x8277, 0x5004, 0x8278, 0x5005, 0x8279, 0x5006, 0x827A, 0x5007, 0x827B, 0x5008, 0x827C, 0x5009, 0x827D, 0x500A, 0x827E, + 0x500B, 0x8280, 0x500C, 0xD9C4, 0x500D, 0xB1B6, 0x500E, 0x8281, 0x500F, 0xD9BF, 0x5010, 0x8282, 0x5011, 0x8283, 0x5012, 0xB5B9, + 0x5013, 0x8284, 0x5014, 0xBEF3, 0x5015, 0x8285, 0x5016, 0x8286, 0x5017, 0x8287, 0x5018, 0xCCC8, 0x5019, 0xBAF2, 0x501A, 0xD2D0, + 0x501B, 0x8288, 0x501C, 0xD9C3, 0x501D, 0x8289, 0x501E, 0x828A, 0x501F, 0xBDE8, 0x5020, 0x828B, 0x5021, 0xB3AB, 0x5022, 0x828C, + 0x5023, 0x828D, 0x5024, 0x828E, 0x5025, 0xD9C5, 0x5026, 0xBEEB, 0x5027, 0x828F, 0x5028, 0xD9C6, 0x5029, 0xD9BB, 0x502A, 0xC4DF, + 0x502B, 0x8290, 0x502C, 0xD9BE, 0x502D, 0xD9C1, 0x502E, 0xD9C0, 0x502F, 0x8291, 0x5030, 0x8292, 0x5031, 0x8293, 0x5032, 0x8294, + 0x5033, 0x8295, 0x5034, 0x8296, 0x5035, 0x8297, 0x5036, 0x8298, 0x5037, 0x8299, 0x5038, 0x829A, 0x5039, 0x829B, 0x503A, 0xD5AE, + 0x503B, 0x829C, 0x503C, 0xD6B5, 0x503D, 0x829D, 0x503E, 0xC7E3, 0x503F, 0x829E, 0x5040, 0x829F, 0x5041, 0x82A0, 0x5042, 0x82A1, + 0x5043, 0xD9C8, 0x5044, 0x82A2, 0x5045, 0x82A3, 0x5046, 0x82A4, 0x5047, 0xBCD9, 0x5048, 0xD9CA, 0x5049, 0x82A5, 0x504A, 0x82A6, + 0x504B, 0x82A7, 0x504C, 0xD9BC, 0x504D, 0x82A8, 0x504E, 0xD9CB, 0x504F, 0xC6AB, 0x5050, 0x82A9, 0x5051, 0x82AA, 0x5052, 0x82AB, + 0x5053, 0x82AC, 0x5054, 0x82AD, 0x5055, 0xD9C9, 0x5056, 0x82AE, 0x5057, 0x82AF, 0x5058, 0x82B0, 0x5059, 0x82B1, 0x505A, 0xD7F6, + 0x505B, 0x82B2, 0x505C, 0xCDA3, 0x505D, 0x82B3, 0x505E, 0x82B4, 0x505F, 0x82B5, 0x5060, 0x82B6, 0x5061, 0x82B7, 0x5062, 0x82B8, + 0x5063, 0x82B9, 0x5064, 0x82BA, 0x5065, 0xBDA1, 0x5066, 0x82BB, 0x5067, 0x82BC, 0x5068, 0x82BD, 0x5069, 0x82BE, 0x506A, 0x82BF, + 0x506B, 0x82C0, 0x506C, 0xD9CC, 0x506D, 0x82C1, 0x506E, 0x82C2, 0x506F, 0x82C3, 0x5070, 0x82C4, 0x5071, 0x82C5, 0x5072, 0x82C6, + 0x5073, 0x82C7, 0x5074, 0x82C8, 0x5075, 0x82C9, 0x5076, 0xC5BC, 0x5077, 0xCDB5, 0x5078, 0x82CA, 0x5079, 0x82CB, 0x507A, 0x82CC, + 0x507B, 0xD9CD, 0x507C, 0x82CD, 0x507D, 0x82CE, 0x507E, 0xD9C7, 0x507F, 0xB3A5, 0x5080, 0xBFFE, 0x5081, 0x82CF, 0x5082, 0x82D0, + 0x5083, 0x82D1, 0x5084, 0x82D2, 0x5085, 0xB8B5, 0x5086, 0x82D3, 0x5087, 0x82D4, 0x5088, 0xC0FC, 0x5089, 0x82D5, 0x508A, 0x82D6, + 0x508B, 0x82D7, 0x508C, 0x82D8, 0x508D, 0xB0F8, 0x508E, 0x82D9, 0x508F, 0x82DA, 0x5090, 0x82DB, 0x5091, 0x82DC, 0x5092, 0x82DD, + 0x5093, 0x82DE, 0x5094, 0x82DF, 0x5095, 0x82E0, 0x5096, 0x82E1, 0x5097, 0x82E2, 0x5098, 0x82E3, 0x5099, 0x82E4, 0x509A, 0x82E5, + 0x509B, 0x82E6, 0x509C, 0x82E7, 0x509D, 0x82E8, 0x509E, 0x82E9, 0x509F, 0x82EA, 0x50A0, 0x82EB, 0x50A1, 0x82EC, 0x50A2, 0x82ED, + 0x50A3, 0xB4F6, 0x50A4, 0x82EE, 0x50A5, 0xD9CE, 0x50A6, 0x82EF, 0x50A7, 0xD9CF, 0x50A8, 0xB4A2, 0x50A9, 0xD9D0, 0x50AA, 0x82F0, + 0x50AB, 0x82F1, 0x50AC, 0xB4DF, 0x50AD, 0x82F2, 0x50AE, 0x82F3, 0x50AF, 0x82F4, 0x50B0, 0x82F5, 0x50B1, 0x82F6, 0x50B2, 0xB0C1, + 0x50B3, 0x82F7, 0x50B4, 0x82F8, 0x50B5, 0x82F9, 0x50B6, 0x82FA, 0x50B7, 0x82FB, 0x50B8, 0x82FC, 0x50B9, 0x82FD, 0x50BA, 0xD9D1, + 0x50BB, 0xC9B5, 0x50BC, 0x82FE, 0x50BD, 0x8340, 0x50BE, 0x8341, 0x50BF, 0x8342, 0x50C0, 0x8343, 0x50C1, 0x8344, 0x50C2, 0x8345, + 0x50C3, 0x8346, 0x50C4, 0x8347, 0x50C5, 0x8348, 0x50C6, 0x8349, 0x50C7, 0x834A, 0x50C8, 0x834B, 0x50C9, 0x834C, 0x50CA, 0x834D, + 0x50CB, 0x834E, 0x50CC, 0x834F, 0x50CD, 0x8350, 0x50CE, 0x8351, 0x50CF, 0xCFF1, 0x50D0, 0x8352, 0x50D1, 0x8353, 0x50D2, 0x8354, + 0x50D3, 0x8355, 0x50D4, 0x8356, 0x50D5, 0x8357, 0x50D6, 0xD9D2, 0x50D7, 0x8358, 0x50D8, 0x8359, 0x50D9, 0x835A, 0x50DA, 0xC1C5, + 0x50DB, 0x835B, 0x50DC, 0x835C, 0x50DD, 0x835D, 0x50DE, 0x835E, 0x50DF, 0x835F, 0x50E0, 0x8360, 0x50E1, 0x8361, 0x50E2, 0x8362, + 0x50E3, 0x8363, 0x50E4, 0x8364, 0x50E5, 0x8365, 0x50E6, 0xD9D6, 0x50E7, 0xC9AE, 0x50E8, 0x8366, 0x50E9, 0x8367, 0x50EA, 0x8368, + 0x50EB, 0x8369, 0x50EC, 0xD9D5, 0x50ED, 0xD9D4, 0x50EE, 0xD9D7, 0x50EF, 0x836A, 0x50F0, 0x836B, 0x50F1, 0x836C, 0x50F2, 0x836D, + 0x50F3, 0xCBDB, 0x50F4, 0x836E, 0x50F5, 0xBDA9, 0x50F6, 0x836F, 0x50F7, 0x8370, 0x50F8, 0x8371, 0x50F9, 0x8372, 0x50FA, 0x8373, + 0x50FB, 0xC6A7, 0x50FC, 0x8374, 0x50FD, 0x8375, 0x50FE, 0x8376, 0x50FF, 0x8377, 0x5100, 0x8378, 0x5101, 0x8379, 0x5102, 0x837A, + 0x5103, 0x837B, 0x5104, 0x837C, 0x5105, 0x837D, 0x5106, 0xD9D3, 0x5107, 0xD9D8, 0x5108, 0x837E, 0x5109, 0x8380, 0x510A, 0x8381, + 0x510B, 0xD9D9, 0x510C, 0x8382, 0x510D, 0x8383, 0x510E, 0x8384, 0x510F, 0x8385, 0x5110, 0x8386, 0x5111, 0x8387, 0x5112, 0xC8E5, + 0x5113, 0x8388, 0x5114, 0x8389, 0x5115, 0x838A, 0x5116, 0x838B, 0x5117, 0x838C, 0x5118, 0x838D, 0x5119, 0x838E, 0x511A, 0x838F, + 0x511B, 0x8390, 0x511C, 0x8391, 0x511D, 0x8392, 0x511E, 0x8393, 0x511F, 0x8394, 0x5120, 0x8395, 0x5121, 0xC0DC, 0x5122, 0x8396, + 0x5123, 0x8397, 0x5124, 0x8398, 0x5125, 0x8399, 0x5126, 0x839A, 0x5127, 0x839B, 0x5128, 0x839C, 0x5129, 0x839D, 0x512A, 0x839E, + 0x512B, 0x839F, 0x512C, 0x83A0, 0x512D, 0x83A1, 0x512E, 0x83A2, 0x512F, 0x83A3, 0x5130, 0x83A4, 0x5131, 0x83A5, 0x5132, 0x83A6, + 0x5133, 0x83A7, 0x5134, 0x83A8, 0x5135, 0x83A9, 0x5136, 0x83AA, 0x5137, 0x83AB, 0x5138, 0x83AC, 0x5139, 0x83AD, 0x513A, 0x83AE, + 0x513B, 0x83AF, 0x513C, 0x83B0, 0x513D, 0x83B1, 0x513E, 0x83B2, 0x513F, 0xB6F9, 0x5140, 0xD8A3, 0x5141, 0xD4CA, 0x5142, 0x83B3, + 0x5143, 0xD4AA, 0x5144, 0xD0D6, 0x5145, 0xB3E4, 0x5146, 0xD5D7, 0x5147, 0x83B4, 0x5148, 0xCFC8, 0x5149, 0xB9E2, 0x514A, 0x83B5, + 0x514B, 0xBFCB, 0x514C, 0x83B6, 0x514D, 0xC3E2, 0x514E, 0x83B7, 0x514F, 0x83B8, 0x5150, 0x83B9, 0x5151, 0xB6D2, 0x5152, 0x83BA, + 0x5153, 0x83BB, 0x5154, 0xCDC3, 0x5155, 0xD9EE, 0x5156, 0xD9F0, 0x5157, 0x83BC, 0x5158, 0x83BD, 0x5159, 0x83BE, 0x515A, 0xB5B3, + 0x515B, 0x83BF, 0x515C, 0xB6B5, 0x515D, 0x83C0, 0x515E, 0x83C1, 0x515F, 0x83C2, 0x5160, 0x83C3, 0x5161, 0x83C4, 0x5162, 0xBEA4, + 0x5163, 0x83C5, 0x5164, 0x83C6, 0x5165, 0xC8EB, 0x5166, 0x83C7, 0x5167, 0x83C8, 0x5168, 0xC8AB, 0x5169, 0x83C9, 0x516A, 0x83CA, + 0x516B, 0xB0CB, 0x516C, 0xB9AB, 0x516D, 0xC1F9, 0x516E, 0xD9E2, 0x516F, 0x83CB, 0x5170, 0xC0BC, 0x5171, 0xB9B2, 0x5172, 0x83CC, + 0x5173, 0xB9D8, 0x5174, 0xD0CB, 0x5175, 0xB1F8, 0x5176, 0xC6E4, 0x5177, 0xBEDF, 0x5178, 0xB5E4, 0x5179, 0xD7C8, 0x517A, 0x83CD, + 0x517B, 0xD1F8, 0x517C, 0xBCE6, 0x517D, 0xCADE, 0x517E, 0x83CE, 0x517F, 0x83CF, 0x5180, 0xBCBD, 0x5181, 0xD9E6, 0x5182, 0xD8E7, + 0x5183, 0x83D0, 0x5184, 0x83D1, 0x5185, 0xC4DA, 0x5186, 0x83D2, 0x5187, 0x83D3, 0x5188, 0xB8D4, 0x5189, 0xC8BD, 0x518A, 0x83D4, + 0x518B, 0x83D5, 0x518C, 0xB2E1, 0x518D, 0xD4D9, 0x518E, 0x83D6, 0x518F, 0x83D7, 0x5190, 0x83D8, 0x5191, 0x83D9, 0x5192, 0xC3B0, + 0x5193, 0x83DA, 0x5194, 0x83DB, 0x5195, 0xC3E1, 0x5196, 0xDAA2, 0x5197, 0xC8DF, 0x5198, 0x83DC, 0x5199, 0xD0B4, 0x519A, 0x83DD, + 0x519B, 0xBEFC, 0x519C, 0xC5A9, 0x519D, 0x83DE, 0x519E, 0x83DF, 0x519F, 0x83E0, 0x51A0, 0xB9DA, 0x51A1, 0x83E1, 0x51A2, 0xDAA3, + 0x51A3, 0x83E2, 0x51A4, 0xD4A9, 0x51A5, 0xDAA4, 0x51A6, 0x83E3, 0x51A7, 0x83E4, 0x51A8, 0x83E5, 0x51A9, 0x83E6, 0x51AA, 0x83E7, + 0x51AB, 0xD9FB, 0x51AC, 0xB6AC, 0x51AD, 0x83E8, 0x51AE, 0x83E9, 0x51AF, 0xB7EB, 0x51B0, 0xB1F9, 0x51B1, 0xD9FC, 0x51B2, 0xB3E5, + 0x51B3, 0xBEF6, 0x51B4, 0x83EA, 0x51B5, 0xBFF6, 0x51B6, 0xD2B1, 0x51B7, 0xC0E4, 0x51B8, 0x83EB, 0x51B9, 0x83EC, 0x51BA, 0x83ED, + 0x51BB, 0xB6B3, 0x51BC, 0xD9FE, 0x51BD, 0xD9FD, 0x51BE, 0x83EE, 0x51BF, 0x83EF, 0x51C0, 0xBEBB, 0x51C1, 0x83F0, 0x51C2, 0x83F1, + 0x51C3, 0x83F2, 0x51C4, 0xC6E0, 0x51C5, 0x83F3, 0x51C6, 0xD7BC, 0x51C7, 0xDAA1, 0x51C8, 0x83F4, 0x51C9, 0xC1B9, 0x51CA, 0x83F5, + 0x51CB, 0xB5F2, 0x51CC, 0xC1E8, 0x51CD, 0x83F6, 0x51CE, 0x83F7, 0x51CF, 0xBCF5, 0x51D0, 0x83F8, 0x51D1, 0xB4D5, 0x51D2, 0x83F9, + 0x51D3, 0x83FA, 0x51D4, 0x83FB, 0x51D5, 0x83FC, 0x51D6, 0x83FD, 0x51D7, 0x83FE, 0x51D8, 0x8440, 0x51D9, 0x8441, 0x51DA, 0x8442, + 0x51DB, 0xC1DD, 0x51DC, 0x8443, 0x51DD, 0xC4FD, 0x51DE, 0x8444, 0x51DF, 0x8445, 0x51E0, 0xBCB8, 0x51E1, 0xB7B2, 0x51E2, 0x8446, + 0x51E3, 0x8447, 0x51E4, 0xB7EF, 0x51E5, 0x8448, 0x51E6, 0x8449, 0x51E7, 0x844A, 0x51E8, 0x844B, 0x51E9, 0x844C, 0x51EA, 0x844D, + 0x51EB, 0xD9EC, 0x51EC, 0x844E, 0x51ED, 0xC6BE, 0x51EE, 0x844F, 0x51EF, 0xBFAD, 0x51F0, 0xBBCB, 0x51F1, 0x8450, 0x51F2, 0x8451, + 0x51F3, 0xB5CA, 0x51F4, 0x8452, 0x51F5, 0xDBC9, 0x51F6, 0xD0D7, 0x51F7, 0x8453, 0x51F8, 0xCDB9, 0x51F9, 0xB0BC, 0x51FA, 0xB3F6, + 0x51FB, 0xBBF7, 0x51FC, 0xDBCA, 0x51FD, 0xBAAF, 0x51FE, 0x8454, 0x51FF, 0xD4E4, 0x5200, 0xB5B6, 0x5201, 0xB5F3, 0x5202, 0xD8D6, + 0x5203, 0xC8D0, 0x5204, 0x8455, 0x5205, 0x8456, 0x5206, 0xB7D6, 0x5207, 0xC7D0, 0x5208, 0xD8D7, 0x5209, 0x8457, 0x520A, 0xBFAF, + 0x520B, 0x8458, 0x520C, 0x8459, 0x520D, 0xDBBB, 0x520E, 0xD8D8, 0x520F, 0x845A, 0x5210, 0x845B, 0x5211, 0xD0CC, 0x5212, 0xBBAE, + 0x5213, 0x845C, 0x5214, 0x845D, 0x5215, 0x845E, 0x5216, 0xEBBE, 0x5217, 0xC1D0, 0x5218, 0xC1F5, 0x5219, 0xD4F2, 0x521A, 0xB8D5, + 0x521B, 0xB4B4, 0x521C, 0x845F, 0x521D, 0xB3F5, 0x521E, 0x8460, 0x521F, 0x8461, 0x5220, 0xC9BE, 0x5221, 0x8462, 0x5222, 0x8463, + 0x5223, 0x8464, 0x5224, 0xC5D0, 0x5225, 0x8465, 0x5226, 0x8466, 0x5227, 0x8467, 0x5228, 0xC5D9, 0x5229, 0xC0FB, 0x522A, 0x8468, + 0x522B, 0xB1F0, 0x522C, 0x8469, 0x522D, 0xD8D9, 0x522E, 0xB9CE, 0x522F, 0x846A, 0x5230, 0xB5BD, 0x5231, 0x846B, 0x5232, 0x846C, + 0x5233, 0xD8DA, 0x5234, 0x846D, 0x5235, 0x846E, 0x5236, 0xD6C6, 0x5237, 0xCBA2, 0x5238, 0xC8AF, 0x5239, 0xC9B2, 0x523A, 0xB4CC, + 0x523B, 0xBFCC, 0x523C, 0x846F, 0x523D, 0xB9F4, 0x523E, 0x8470, 0x523F, 0xD8DB, 0x5240, 0xD8DC, 0x5241, 0xB6E7, 0x5242, 0xBCC1, + 0x5243, 0xCCEA, 0x5244, 0x8471, 0x5245, 0x8472, 0x5246, 0x8473, 0x5247, 0x8474, 0x5248, 0x8475, 0x5249, 0x8476, 0x524A, 0xCFF7, + 0x524B, 0x8477, 0x524C, 0xD8DD, 0x524D, 0xC7B0, 0x524E, 0x8478, 0x524F, 0x8479, 0x5250, 0xB9D0, 0x5251, 0xBDA3, 0x5252, 0x847A, + 0x5253, 0x847B, 0x5254, 0xCCDE, 0x5255, 0x847C, 0x5256, 0xC6CA, 0x5257, 0x847D, 0x5258, 0x847E, 0x5259, 0x8480, 0x525A, 0x8481, + 0x525B, 0x8482, 0x525C, 0xD8E0, 0x525D, 0x8483, 0x525E, 0xD8DE, 0x525F, 0x8484, 0x5260, 0x8485, 0x5261, 0xD8DF, 0x5262, 0x8486, + 0x5263, 0x8487, 0x5264, 0x8488, 0x5265, 0xB0FE, 0x5266, 0x8489, 0x5267, 0xBEE7, 0x5268, 0x848A, 0x5269, 0xCAA3, 0x526A, 0xBCF4, + 0x526B, 0x848B, 0x526C, 0x848C, 0x526D, 0x848D, 0x526E, 0x848E, 0x526F, 0xB8B1, 0x5270, 0x848F, 0x5271, 0x8490, 0x5272, 0xB8EE, + 0x5273, 0x8491, 0x5274, 0x8492, 0x5275, 0x8493, 0x5276, 0x8494, 0x5277, 0x8495, 0x5278, 0x8496, 0x5279, 0x8497, 0x527A, 0x8498, + 0x527B, 0x8499, 0x527C, 0x849A, 0x527D, 0xD8E2, 0x527E, 0x849B, 0x527F, 0xBDCB, 0x5280, 0x849C, 0x5281, 0xD8E4, 0x5282, 0xD8E3, + 0x5283, 0x849D, 0x5284, 0x849E, 0x5285, 0x849F, 0x5286, 0x84A0, 0x5287, 0x84A1, 0x5288, 0xC5FC, 0x5289, 0x84A2, 0x528A, 0x84A3, + 0x528B, 0x84A4, 0x528C, 0x84A5, 0x528D, 0x84A6, 0x528E, 0x84A7, 0x528F, 0x84A8, 0x5290, 0xD8E5, 0x5291, 0x84A9, 0x5292, 0x84AA, + 0x5293, 0xD8E6, 0x5294, 0x84AB, 0x5295, 0x84AC, 0x5296, 0x84AD, 0x5297, 0x84AE, 0x5298, 0x84AF, 0x5299, 0x84B0, 0x529A, 0x84B1, + 0x529B, 0xC1A6, 0x529C, 0x84B2, 0x529D, 0xC8B0, 0x529E, 0xB0EC, 0x529F, 0xB9A6, 0x52A0, 0xBCD3, 0x52A1, 0xCEF1, 0x52A2, 0xDBBD, + 0x52A3, 0xC1D3, 0x52A4, 0x84B3, 0x52A5, 0x84B4, 0x52A6, 0x84B5, 0x52A7, 0x84B6, 0x52A8, 0xB6AF, 0x52A9, 0xD6FA, 0x52AA, 0xC5AC, + 0x52AB, 0xBDD9, 0x52AC, 0xDBBE, 0x52AD, 0xDBBF, 0x52AE, 0x84B7, 0x52AF, 0x84B8, 0x52B0, 0x84B9, 0x52B1, 0xC0F8, 0x52B2, 0xBEA2, + 0x52B3, 0xC0CD, 0x52B4, 0x84BA, 0x52B5, 0x84BB, 0x52B6, 0x84BC, 0x52B7, 0x84BD, 0x52B8, 0x84BE, 0x52B9, 0x84BF, 0x52BA, 0x84C0, + 0x52BB, 0x84C1, 0x52BC, 0x84C2, 0x52BD, 0x84C3, 0x52BE, 0xDBC0, 0x52BF, 0xCAC6, 0x52C0, 0x84C4, 0x52C1, 0x84C5, 0x52C2, 0x84C6, + 0x52C3, 0xB2AA, 0x52C4, 0x84C7, 0x52C5, 0x84C8, 0x52C6, 0x84C9, 0x52C7, 0xD3C2, 0x52C8, 0x84CA, 0x52C9, 0xC3E3, 0x52CA, 0x84CB, + 0x52CB, 0xD1AB, 0x52CC, 0x84CC, 0x52CD, 0x84CD, 0x52CE, 0x84CE, 0x52CF, 0x84CF, 0x52D0, 0xDBC2, 0x52D1, 0x84D0, 0x52D2, 0xC0D5, + 0x52D3, 0x84D1, 0x52D4, 0x84D2, 0x52D5, 0x84D3, 0x52D6, 0xDBC3, 0x52D7, 0x84D4, 0x52D8, 0xBFB1, 0x52D9, 0x84D5, 0x52DA, 0x84D6, + 0x52DB, 0x84D7, 0x52DC, 0x84D8, 0x52DD, 0x84D9, 0x52DE, 0x84DA, 0x52DF, 0xC4BC, 0x52E0, 0x84DB, 0x52E1, 0x84DC, 0x52E2, 0x84DD, + 0x52E3, 0x84DE, 0x52E4, 0xC7DA, 0x52E5, 0x84DF, 0x52E6, 0x84E0, 0x52E7, 0x84E1, 0x52E8, 0x84E2, 0x52E9, 0x84E3, 0x52EA, 0x84E4, + 0x52EB, 0x84E5, 0x52EC, 0x84E6, 0x52ED, 0x84E7, 0x52EE, 0x84E8, 0x52EF, 0x84E9, 0x52F0, 0xDBC4, 0x52F1, 0x84EA, 0x52F2, 0x84EB, + 0x52F3, 0x84EC, 0x52F4, 0x84ED, 0x52F5, 0x84EE, 0x52F6, 0x84EF, 0x52F7, 0x84F0, 0x52F8, 0x84F1, 0x52F9, 0xD9E8, 0x52FA, 0xC9D7, + 0x52FB, 0x84F2, 0x52FC, 0x84F3, 0x52FD, 0x84F4, 0x52FE, 0xB9B4, 0x52FF, 0xCEF0, 0x5300, 0xD4C8, 0x5301, 0x84F5, 0x5302, 0x84F6, + 0x5303, 0x84F7, 0x5304, 0x84F8, 0x5305, 0xB0FC, 0x5306, 0xB4D2, 0x5307, 0x84F9, 0x5308, 0xD0D9, 0x5309, 0x84FA, 0x530A, 0x84FB, + 0x530B, 0x84FC, 0x530C, 0x84FD, 0x530D, 0xD9E9, 0x530E, 0x84FE, 0x530F, 0xDECB, 0x5310, 0xD9EB, 0x5311, 0x8540, 0x5312, 0x8541, + 0x5313, 0x8542, 0x5314, 0x8543, 0x5315, 0xD8B0, 0x5316, 0xBBAF, 0x5317, 0xB1B1, 0x5318, 0x8544, 0x5319, 0xB3D7, 0x531A, 0xD8CE, + 0x531B, 0x8545, 0x531C, 0x8546, 0x531D, 0xD4D1, 0x531E, 0x8547, 0x531F, 0x8548, 0x5320, 0xBDB3, 0x5321, 0xBFEF, 0x5322, 0x8549, + 0x5323, 0xCFBB, 0x5324, 0x854A, 0x5325, 0x854B, 0x5326, 0xD8D0, 0x5327, 0x854C, 0x5328, 0x854D, 0x5329, 0x854E, 0x532A, 0xB7CB, + 0x532B, 0x854F, 0x532C, 0x8550, 0x532D, 0x8551, 0x532E, 0xD8D1, 0x532F, 0x8552, 0x5330, 0x8553, 0x5331, 0x8554, 0x5332, 0x8555, + 0x5333, 0x8556, 0x5334, 0x8557, 0x5335, 0x8558, 0x5336, 0x8559, 0x5337, 0x855A, 0x5338, 0x855B, 0x5339, 0xC6A5, 0x533A, 0xC7F8, + 0x533B, 0xD2BD, 0x533C, 0x855C, 0x533D, 0x855D, 0x533E, 0xD8D2, 0x533F, 0xC4E4, 0x5340, 0x855E, 0x5341, 0xCAAE, 0x5342, 0x855F, + 0x5343, 0xC7A7, 0x5344, 0x8560, 0x5345, 0xD8A6, 0x5346, 0x8561, 0x5347, 0xC9FD, 0x5348, 0xCEE7, 0x5349, 0xBBDC, 0x534A, 0xB0EB, + 0x534B, 0x8562, 0x534C, 0x8563, 0x534D, 0x8564, 0x534E, 0xBBAA, 0x534F, 0xD0AD, 0x5350, 0x8565, 0x5351, 0xB1B0, 0x5352, 0xD7E4, + 0x5353, 0xD7BF, 0x5354, 0x8566, 0x5355, 0xB5A5, 0x5356, 0xC2F4, 0x5357, 0xC4CF, 0x5358, 0x8567, 0x5359, 0x8568, 0x535A, 0xB2A9, + 0x535B, 0x8569, 0x535C, 0xB2B7, 0x535D, 0x856A, 0x535E, 0xB1E5, 0x535F, 0xDFB2, 0x5360, 0xD5BC, 0x5361, 0xBFA8, 0x5362, 0xC2AC, + 0x5363, 0xD8D5, 0x5364, 0xC2B1, 0x5365, 0x856B, 0x5366, 0xD8D4, 0x5367, 0xCED4, 0x5368, 0x856C, 0x5369, 0xDAE0, 0x536A, 0x856D, + 0x536B, 0xCEC0, 0x536C, 0x856E, 0x536D, 0x856F, 0x536E, 0xD8B4, 0x536F, 0xC3AE, 0x5370, 0xD3A1, 0x5371, 0xCEA3, 0x5372, 0x8570, + 0x5373, 0xBCB4, 0x5374, 0xC8B4, 0x5375, 0xC2D1, 0x5376, 0x8571, 0x5377, 0xBEED, 0x5378, 0xD0B6, 0x5379, 0x8572, 0x537A, 0xDAE1, + 0x537B, 0x8573, 0x537C, 0x8574, 0x537D, 0x8575, 0x537E, 0x8576, 0x537F, 0xC7E4, 0x5380, 0x8577, 0x5381, 0x8578, 0x5382, 0xB3A7, + 0x5383, 0x8579, 0x5384, 0xB6F2, 0x5385, 0xCCFC, 0x5386, 0xC0FA, 0x5387, 0x857A, 0x5388, 0x857B, 0x5389, 0xC0F7, 0x538A, 0x857C, + 0x538B, 0xD1B9, 0x538C, 0xD1E1, 0x538D, 0xD8C7, 0x538E, 0x857D, 0x538F, 0x857E, 0x5390, 0x8580, 0x5391, 0x8581, 0x5392, 0x8582, + 0x5393, 0x8583, 0x5394, 0x8584, 0x5395, 0xB2DE, 0x5396, 0x8585, 0x5397, 0x8586, 0x5398, 0xC0E5, 0x5399, 0x8587, 0x539A, 0xBAF1, + 0x539B, 0x8588, 0x539C, 0x8589, 0x539D, 0xD8C8, 0x539E, 0x858A, 0x539F, 0xD4AD, 0x53A0, 0x858B, 0x53A1, 0x858C, 0x53A2, 0xCFE1, + 0x53A3, 0xD8C9, 0x53A4, 0x858D, 0x53A5, 0xD8CA, 0x53A6, 0xCFC3, 0x53A7, 0x858E, 0x53A8, 0xB3F8, 0x53A9, 0xBEC7, 0x53AA, 0x858F, + 0x53AB, 0x8590, 0x53AC, 0x8591, 0x53AD, 0x8592, 0x53AE, 0xD8CB, 0x53AF, 0x8593, 0x53B0, 0x8594, 0x53B1, 0x8595, 0x53B2, 0x8596, + 0x53B3, 0x8597, 0x53B4, 0x8598, 0x53B5, 0x8599, 0x53B6, 0xDBCC, 0x53B7, 0x859A, 0x53B8, 0x859B, 0x53B9, 0x859C, 0x53BA, 0x859D, + 0x53BB, 0xC8A5, 0x53BC, 0x859E, 0x53BD, 0x859F, 0x53BE, 0x85A0, 0x53BF, 0xCFD8, 0x53C0, 0x85A1, 0x53C1, 0xC8FE, 0x53C2, 0xB2CE, + 0x53C3, 0x85A2, 0x53C4, 0x85A3, 0x53C5, 0x85A4, 0x53C6, 0x85A5, 0x53C7, 0x85A6, 0x53C8, 0xD3D6, 0x53C9, 0xB2E6, 0x53CA, 0xBCB0, + 0x53CB, 0xD3D1, 0x53CC, 0xCBAB, 0x53CD, 0xB7B4, 0x53CE, 0x85A7, 0x53CF, 0x85A8, 0x53D0, 0x85A9, 0x53D1, 0xB7A2, 0x53D2, 0x85AA, + 0x53D3, 0x85AB, 0x53D4, 0xCAE5, 0x53D5, 0x85AC, 0x53D6, 0xC8A1, 0x53D7, 0xCADC, 0x53D8, 0xB1E4, 0x53D9, 0xD0F0, 0x53DA, 0x85AD, + 0x53DB, 0xC5D1, 0x53DC, 0x85AE, 0x53DD, 0x85AF, 0x53DE, 0x85B0, 0x53DF, 0xDBC5, 0x53E0, 0xB5FE, 0x53E1, 0x85B1, 0x53E2, 0x85B2, + 0x53E3, 0xBFDA, 0x53E4, 0xB9C5, 0x53E5, 0xBEE4, 0x53E6, 0xC1ED, 0x53E7, 0x85B3, 0x53E8, 0xDFB6, 0x53E9, 0xDFB5, 0x53EA, 0xD6BB, + 0x53EB, 0xBDD0, 0x53EC, 0xD5D9, 0x53ED, 0xB0C8, 0x53EE, 0xB6A3, 0x53EF, 0xBFC9, 0x53F0, 0xCCA8, 0x53F1, 0xDFB3, 0x53F2, 0xCAB7, + 0x53F3, 0xD3D2, 0x53F4, 0x85B4, 0x53F5, 0xD8CF, 0x53F6, 0xD2B6, 0x53F7, 0xBAC5, 0x53F8, 0xCBBE, 0x53F9, 0xCCBE, 0x53FA, 0x85B5, + 0x53FB, 0xDFB7, 0x53FC, 0xB5F0, 0x53FD, 0xDFB4, 0x53FE, 0x85B6, 0x53FF, 0x85B7, 0x5400, 0x85B8, 0x5401, 0xD3F5, 0x5402, 0x85B9, + 0x5403, 0xB3D4, 0x5404, 0xB8F7, 0x5405, 0x85BA, 0x5406, 0xDFBA, 0x5407, 0x85BB, 0x5408, 0xBACF, 0x5409, 0xBCAA, 0x540A, 0xB5F5, + 0x540B, 0x85BC, 0x540C, 0xCDAC, 0x540D, 0xC3FB, 0x540E, 0xBAF3, 0x540F, 0xC0F4, 0x5410, 0xCDC2, 0x5411, 0xCFF2, 0x5412, 0xDFB8, + 0x5413, 0xCFC5, 0x5414, 0x85BD, 0x5415, 0xC2C0, 0x5416, 0xDFB9, 0x5417, 0xC2F0, 0x5418, 0x85BE, 0x5419, 0x85BF, 0x541A, 0x85C0, + 0x541B, 0xBEFD, 0x541C, 0x85C1, 0x541D, 0xC1DF, 0x541E, 0xCDCC, 0x541F, 0xD2F7, 0x5420, 0xB7CD, 0x5421, 0xDFC1, 0x5422, 0x85C2, + 0x5423, 0xDFC4, 0x5424, 0x85C3, 0x5425, 0x85C4, 0x5426, 0xB7F1, 0x5427, 0xB0C9, 0x5428, 0xB6D6, 0x5429, 0xB7D4, 0x542A, 0x85C5, + 0x542B, 0xBAAC, 0x542C, 0xCCFD, 0x542D, 0xBFD4, 0x542E, 0xCBB1, 0x542F, 0xC6F4, 0x5430, 0x85C6, 0x5431, 0xD6A8, 0x5432, 0xDFC5, + 0x5433, 0x85C7, 0x5434, 0xCEE2, 0x5435, 0xB3B3, 0x5436, 0x85C8, 0x5437, 0x85C9, 0x5438, 0xCEFC, 0x5439, 0xB4B5, 0x543A, 0x85CA, + 0x543B, 0xCEC7, 0x543C, 0xBAF0, 0x543D, 0x85CB, 0x543E, 0xCEE1, 0x543F, 0x85CC, 0x5440, 0xD1BD, 0x5441, 0x85CD, 0x5442, 0x85CE, + 0x5443, 0xDFC0, 0x5444, 0x85CF, 0x5445, 0x85D0, 0x5446, 0xB4F4, 0x5447, 0x85D1, 0x5448, 0xB3CA, 0x5449, 0x85D2, 0x544A, 0xB8E6, + 0x544B, 0xDFBB, 0x544C, 0x85D3, 0x544D, 0x85D4, 0x544E, 0x85D5, 0x544F, 0x85D6, 0x5450, 0xC4C5, 0x5451, 0x85D7, 0x5452, 0xDFBC, + 0x5453, 0xDFBD, 0x5454, 0xDFBE, 0x5455, 0xC5BB, 0x5456, 0xDFBF, 0x5457, 0xDFC2, 0x5458, 0xD4B1, 0x5459, 0xDFC3, 0x545A, 0x85D8, + 0x545B, 0xC7BA, 0x545C, 0xCED8, 0x545D, 0x85D9, 0x545E, 0x85DA, 0x545F, 0x85DB, 0x5460, 0x85DC, 0x5461, 0x85DD, 0x5462, 0xC4D8, + 0x5463, 0x85DE, 0x5464, 0xDFCA, 0x5465, 0x85DF, 0x5466, 0xDFCF, 0x5467, 0x85E0, 0x5468, 0xD6DC, 0x5469, 0x85E1, 0x546A, 0x85E2, + 0x546B, 0x85E3, 0x546C, 0x85E4, 0x546D, 0x85E5, 0x546E, 0x85E6, 0x546F, 0x85E7, 0x5470, 0x85E8, 0x5471, 0xDFC9, 0x5472, 0xDFDA, + 0x5473, 0xCEB6, 0x5474, 0x85E9, 0x5475, 0xBAC7, 0x5476, 0xDFCE, 0x5477, 0xDFC8, 0x5478, 0xC5DE, 0x5479, 0x85EA, 0x547A, 0x85EB, + 0x547B, 0xC9EB, 0x547C, 0xBAF4, 0x547D, 0xC3FC, 0x547E, 0x85EC, 0x547F, 0x85ED, 0x5480, 0xBED7, 0x5481, 0x85EE, 0x5482, 0xDFC6, + 0x5483, 0x85EF, 0x5484, 0xDFCD, 0x5485, 0x85F0, 0x5486, 0xC5D8, 0x5487, 0x85F1, 0x5488, 0x85F2, 0x5489, 0x85F3, 0x548A, 0x85F4, + 0x548B, 0xD5A6, 0x548C, 0xBACD, 0x548D, 0x85F5, 0x548E, 0xBECC, 0x548F, 0xD3BD, 0x5490, 0xB8C0, 0x5491, 0x85F6, 0x5492, 0xD6E4, + 0x5493, 0x85F7, 0x5494, 0xDFC7, 0x5495, 0xB9BE, 0x5496, 0xBFA7, 0x5497, 0x85F8, 0x5498, 0x85F9, 0x5499, 0xC1FC, 0x549A, 0xDFCB, + 0x549B, 0xDFCC, 0x549C, 0x85FA, 0x549D, 0xDFD0, 0x549E, 0x85FB, 0x549F, 0x85FC, 0x54A0, 0x85FD, 0x54A1, 0x85FE, 0x54A2, 0x8640, + 0x54A3, 0xDFDB, 0x54A4, 0xDFE5, 0x54A5, 0x8641, 0x54A6, 0xDFD7, 0x54A7, 0xDFD6, 0x54A8, 0xD7C9, 0x54A9, 0xDFE3, 0x54AA, 0xDFE4, + 0x54AB, 0xE5EB, 0x54AC, 0xD2A7, 0x54AD, 0xDFD2, 0x54AE, 0x8642, 0x54AF, 0xBFA9, 0x54B0, 0x8643, 0x54B1, 0xD4DB, 0x54B2, 0x8644, + 0x54B3, 0xBFC8, 0x54B4, 0xDFD4, 0x54B5, 0x8645, 0x54B6, 0x8646, 0x54B7, 0x8647, 0x54B8, 0xCFCC, 0x54B9, 0x8648, 0x54BA, 0x8649, + 0x54BB, 0xDFDD, 0x54BC, 0x864A, 0x54BD, 0xD1CA, 0x54BE, 0x864B, 0x54BF, 0xDFDE, 0x54C0, 0xB0A7, 0x54C1, 0xC6B7, 0x54C2, 0xDFD3, + 0x54C3, 0x864C, 0x54C4, 0xBAE5, 0x54C5, 0x864D, 0x54C6, 0xB6DF, 0x54C7, 0xCDDB, 0x54C8, 0xB9FE, 0x54C9, 0xD4D5, 0x54CA, 0x864E, + 0x54CB, 0x864F, 0x54CC, 0xDFDF, 0x54CD, 0xCFEC, 0x54CE, 0xB0A5, 0x54CF, 0xDFE7, 0x54D0, 0xDFD1, 0x54D1, 0xD1C6, 0x54D2, 0xDFD5, + 0x54D3, 0xDFD8, 0x54D4, 0xDFD9, 0x54D5, 0xDFDC, 0x54D6, 0x8650, 0x54D7, 0xBBA9, 0x54D8, 0x8651, 0x54D9, 0xDFE0, 0x54DA, 0xDFE1, + 0x54DB, 0x8652, 0x54DC, 0xDFE2, 0x54DD, 0xDFE6, 0x54DE, 0xDFE8, 0x54DF, 0xD3B4, 0x54E0, 0x8653, 0x54E1, 0x8654, 0x54E2, 0x8655, + 0x54E3, 0x8656, 0x54E4, 0x8657, 0x54E5, 0xB8E7, 0x54E6, 0xC5B6, 0x54E7, 0xDFEA, 0x54E8, 0xC9DA, 0x54E9, 0xC1A8, 0x54EA, 0xC4C4, + 0x54EB, 0x8658, 0x54EC, 0x8659, 0x54ED, 0xBFDE, 0x54EE, 0xCFF8, 0x54EF, 0x865A, 0x54F0, 0x865B, 0x54F1, 0x865C, 0x54F2, 0xD5DC, + 0x54F3, 0xDFEE, 0x54F4, 0x865D, 0x54F5, 0x865E, 0x54F6, 0x865F, 0x54F7, 0x8660, 0x54F8, 0x8661, 0x54F9, 0x8662, 0x54FA, 0xB2B8, + 0x54FB, 0x8663, 0x54FC, 0xBADF, 0x54FD, 0xDFEC, 0x54FE, 0x8664, 0x54FF, 0xDBC1, 0x5500, 0x8665, 0x5501, 0xD1E4, 0x5502, 0x8666, + 0x5503, 0x8667, 0x5504, 0x8668, 0x5505, 0x8669, 0x5506, 0xCBF4, 0x5507, 0xB4BD, 0x5508, 0x866A, 0x5509, 0xB0A6, 0x550A, 0x866B, + 0x550B, 0x866C, 0x550C, 0x866D, 0x550D, 0x866E, 0x550E, 0x866F, 0x550F, 0xDFF1, 0x5510, 0xCCC6, 0x5511, 0xDFF2, 0x5512, 0x8670, + 0x5513, 0x8671, 0x5514, 0xDFED, 0x5515, 0x8672, 0x5516, 0x8673, 0x5517, 0x8674, 0x5518, 0x8675, 0x5519, 0x8676, 0x551A, 0x8677, + 0x551B, 0xDFE9, 0x551C, 0x8678, 0x551D, 0x8679, 0x551E, 0x867A, 0x551F, 0x867B, 0x5520, 0xDFEB, 0x5521, 0x867C, 0x5522, 0xDFEF, + 0x5523, 0xDFF0, 0x5524, 0xBBBD, 0x5525, 0x867D, 0x5526, 0x867E, 0x5527, 0xDFF3, 0x5528, 0x8680, 0x5529, 0x8681, 0x552A, 0xDFF4, + 0x552B, 0x8682, 0x552C, 0xBBA3, 0x552D, 0x8683, 0x552E, 0xCADB, 0x552F, 0xCEA8, 0x5530, 0xE0A7, 0x5531, 0xB3AA, 0x5532, 0x8684, + 0x5533, 0xE0A6, 0x5534, 0x8685, 0x5535, 0x8686, 0x5536, 0x8687, 0x5537, 0xE0A1, 0x5538, 0x8688, 0x5539, 0x8689, 0x553A, 0x868A, + 0x553B, 0x868B, 0x553C, 0xDFFE, 0x553D, 0x868C, 0x553E, 0xCDD9, 0x553F, 0xDFFC, 0x5540, 0x868D, 0x5541, 0xDFFA, 0x5542, 0x868E, + 0x5543, 0xBFD0, 0x5544, 0xD7C4, 0x5545, 0x868F, 0x5546, 0xC9CC, 0x5547, 0x8690, 0x5548, 0x8691, 0x5549, 0xDFF8, 0x554A, 0xB0A1, + 0x554B, 0x8692, 0x554C, 0x8693, 0x554D, 0x8694, 0x554E, 0x8695, 0x554F, 0x8696, 0x5550, 0xDFFD, 0x5551, 0x8697, 0x5552, 0x8698, + 0x5553, 0x8699, 0x5554, 0x869A, 0x5555, 0xDFFB, 0x5556, 0xE0A2, 0x5557, 0x869B, 0x5558, 0x869C, 0x5559, 0x869D, 0x555A, 0x869E, + 0x555B, 0x869F, 0x555C, 0xE0A8, 0x555D, 0x86A0, 0x555E, 0x86A1, 0x555F, 0x86A2, 0x5560, 0x86A3, 0x5561, 0xB7C8, 0x5562, 0x86A4, + 0x5563, 0x86A5, 0x5564, 0xC6A1, 0x5565, 0xC9B6, 0x5566, 0xC0B2, 0x5567, 0xDFF5, 0x5568, 0x86A6, 0x5569, 0x86A7, 0x556A, 0xC5BE, + 0x556B, 0x86A8, 0x556C, 0xD8C4, 0x556D, 0xDFF9, 0x556E, 0xC4F6, 0x556F, 0x86A9, 0x5570, 0x86AA, 0x5571, 0x86AB, 0x5572, 0x86AC, + 0x5573, 0x86AD, 0x5574, 0x86AE, 0x5575, 0xE0A3, 0x5576, 0xE0A4, 0x5577, 0xE0A5, 0x5578, 0xD0A5, 0x5579, 0x86AF, 0x557A, 0x86B0, + 0x557B, 0xE0B4, 0x557C, 0xCCE4, 0x557D, 0x86B1, 0x557E, 0xE0B1, 0x557F, 0x86B2, 0x5580, 0xBFA6, 0x5581, 0xE0AF, 0x5582, 0xCEB9, + 0x5583, 0xE0AB, 0x5584, 0xC9C6, 0x5585, 0x86B3, 0x5586, 0x86B4, 0x5587, 0xC0AE, 0x5588, 0xE0AE, 0x5589, 0xBAED, 0x558A, 0xBAB0, + 0x558B, 0xE0A9, 0x558C, 0x86B5, 0x558D, 0x86B6, 0x558E, 0x86B7, 0x558F, 0xDFF6, 0x5590, 0x86B8, 0x5591, 0xE0B3, 0x5592, 0x86B9, + 0x5593, 0x86BA, 0x5594, 0xE0B8, 0x5595, 0x86BB, 0x5596, 0x86BC, 0x5597, 0x86BD, 0x5598, 0xB4AD, 0x5599, 0xE0B9, 0x559A, 0x86BE, + 0x559B, 0x86BF, 0x559C, 0xCFB2, 0x559D, 0xBAC8, 0x559E, 0x86C0, 0x559F, 0xE0B0, 0x55A0, 0x86C1, 0x55A1, 0x86C2, 0x55A2, 0x86C3, + 0x55A3, 0x86C4, 0x55A4, 0x86C5, 0x55A5, 0x86C6, 0x55A6, 0x86C7, 0x55A7, 0xD0FA, 0x55A8, 0x86C8, 0x55A9, 0x86C9, 0x55AA, 0x86CA, + 0x55AB, 0x86CB, 0x55AC, 0x86CC, 0x55AD, 0x86CD, 0x55AE, 0x86CE, 0x55AF, 0x86CF, 0x55B0, 0x86D0, 0x55B1, 0xE0AC, 0x55B2, 0x86D1, + 0x55B3, 0xD4FB, 0x55B4, 0x86D2, 0x55B5, 0xDFF7, 0x55B6, 0x86D3, 0x55B7, 0xC5E7, 0x55B8, 0x86D4, 0x55B9, 0xE0AD, 0x55BA, 0x86D5, + 0x55BB, 0xD3F7, 0x55BC, 0x86D6, 0x55BD, 0xE0B6, 0x55BE, 0xE0B7, 0x55BF, 0x86D7, 0x55C0, 0x86D8, 0x55C1, 0x86D9, 0x55C2, 0x86DA, + 0x55C3, 0x86DB, 0x55C4, 0xE0C4, 0x55C5, 0xD0E1, 0x55C6, 0x86DC, 0x55C7, 0x86DD, 0x55C8, 0x86DE, 0x55C9, 0xE0BC, 0x55CA, 0x86DF, + 0x55CB, 0x86E0, 0x55CC, 0xE0C9, 0x55CD, 0xE0CA, 0x55CE, 0x86E1, 0x55CF, 0x86E2, 0x55D0, 0x86E3, 0x55D1, 0xE0BE, 0x55D2, 0xE0AA, + 0x55D3, 0xC9A4, 0x55D4, 0xE0C1, 0x55D5, 0x86E4, 0x55D6, 0xE0B2, 0x55D7, 0x86E5, 0x55D8, 0x86E6, 0x55D9, 0x86E7, 0x55DA, 0x86E8, + 0x55DB, 0x86E9, 0x55DC, 0xCAC8, 0x55DD, 0xE0C3, 0x55DE, 0x86EA, 0x55DF, 0xE0B5, 0x55E0, 0x86EB, 0x55E1, 0xCECB, 0x55E2, 0x86EC, + 0x55E3, 0xCBC3, 0x55E4, 0xE0CD, 0x55E5, 0xE0C6, 0x55E6, 0xE0C2, 0x55E7, 0x86ED, 0x55E8, 0xE0CB, 0x55E9, 0x86EE, 0x55EA, 0xE0BA, + 0x55EB, 0xE0BF, 0x55EC, 0xE0C0, 0x55ED, 0x86EF, 0x55EE, 0x86F0, 0x55EF, 0xE0C5, 0x55F0, 0x86F1, 0x55F1, 0x86F2, 0x55F2, 0xE0C7, + 0x55F3, 0xE0C8, 0x55F4, 0x86F3, 0x55F5, 0xE0CC, 0x55F6, 0x86F4, 0x55F7, 0xE0BB, 0x55F8, 0x86F5, 0x55F9, 0x86F6, 0x55FA, 0x86F7, + 0x55FB, 0x86F8, 0x55FC, 0x86F9, 0x55FD, 0xCBD4, 0x55FE, 0xE0D5, 0x55FF, 0x86FA, 0x5600, 0xE0D6, 0x5601, 0xE0D2, 0x5602, 0x86FB, + 0x5603, 0x86FC, 0x5604, 0x86FD, 0x5605, 0x86FE, 0x5606, 0x8740, 0x5607, 0x8741, 0x5608, 0xE0D0, 0x5609, 0xBCCE, 0x560A, 0x8742, + 0x560B, 0x8743, 0x560C, 0xE0D1, 0x560D, 0x8744, 0x560E, 0xB8C2, 0x560F, 0xD8C5, 0x5610, 0x8745, 0x5611, 0x8746, 0x5612, 0x8747, + 0x5613, 0x8748, 0x5614, 0x8749, 0x5615, 0x874A, 0x5616, 0x874B, 0x5617, 0x874C, 0x5618, 0xD0EA, 0x5619, 0x874D, 0x561A, 0x874E, + 0x561B, 0xC2EF, 0x561C, 0x874F, 0x561D, 0x8750, 0x561E, 0xE0CF, 0x561F, 0xE0BD, 0x5620, 0x8751, 0x5621, 0x8752, 0x5622, 0x8753, + 0x5623, 0xE0D4, 0x5624, 0xE0D3, 0x5625, 0x8754, 0x5626, 0x8755, 0x5627, 0xE0D7, 0x5628, 0x8756, 0x5629, 0x8757, 0x562A, 0x8758, + 0x562B, 0x8759, 0x562C, 0xE0DC, 0x562D, 0xE0D8, 0x562E, 0x875A, 0x562F, 0x875B, 0x5630, 0x875C, 0x5631, 0xD6F6, 0x5632, 0xB3B0, + 0x5633, 0x875D, 0x5634, 0xD7EC, 0x5635, 0x875E, 0x5636, 0xCBBB, 0x5637, 0x875F, 0x5638, 0x8760, 0x5639, 0xE0DA, 0x563A, 0x8761, + 0x563B, 0xCEFB, 0x563C, 0x8762, 0x563D, 0x8763, 0x563E, 0x8764, 0x563F, 0xBAD9, 0x5640, 0x8765, 0x5641, 0x8766, 0x5642, 0x8767, + 0x5643, 0x8768, 0x5644, 0x8769, 0x5645, 0x876A, 0x5646, 0x876B, 0x5647, 0x876C, 0x5648, 0x876D, 0x5649, 0x876E, 0x564A, 0x876F, + 0x564B, 0x8770, 0x564C, 0xE0E1, 0x564D, 0xE0DD, 0x564E, 0xD2AD, 0x564F, 0x8771, 0x5650, 0x8772, 0x5651, 0x8773, 0x5652, 0x8774, + 0x5653, 0x8775, 0x5654, 0xE0E2, 0x5655, 0x8776, 0x5656, 0x8777, 0x5657, 0xE0DB, 0x5658, 0xE0D9, 0x5659, 0xE0DF, 0x565A, 0x8778, + 0x565B, 0x8779, 0x565C, 0xE0E0, 0x565D, 0x877A, 0x565E, 0x877B, 0x565F, 0x877C, 0x5660, 0x877D, 0x5661, 0x877E, 0x5662, 0xE0DE, + 0x5663, 0x8780, 0x5664, 0xE0E4, 0x5665, 0x8781, 0x5666, 0x8782, 0x5667, 0x8783, 0x5668, 0xC6F7, 0x5669, 0xD8AC, 0x566A, 0xD4EB, + 0x566B, 0xE0E6, 0x566C, 0xCAC9, 0x566D, 0x8784, 0x566E, 0x8785, 0x566F, 0x8786, 0x5670, 0x8787, 0x5671, 0xE0E5, 0x5672, 0x8788, + 0x5673, 0x8789, 0x5674, 0x878A, 0x5675, 0x878B, 0x5676, 0xB8C1, 0x5677, 0x878C, 0x5678, 0x878D, 0x5679, 0x878E, 0x567A, 0x878F, + 0x567B, 0xE0E7, 0x567C, 0xE0E8, 0x567D, 0x8790, 0x567E, 0x8791, 0x567F, 0x8792, 0x5680, 0x8793, 0x5681, 0x8794, 0x5682, 0x8795, + 0x5683, 0x8796, 0x5684, 0x8797, 0x5685, 0xE0E9, 0x5686, 0xE0E3, 0x5687, 0x8798, 0x5688, 0x8799, 0x5689, 0x879A, 0x568A, 0x879B, + 0x568B, 0x879C, 0x568C, 0x879D, 0x568D, 0x879E, 0x568E, 0xBABF, 0x568F, 0xCCE7, 0x5690, 0x879F, 0x5691, 0x87A0, 0x5692, 0x87A1, + 0x5693, 0xE0EA, 0x5694, 0x87A2, 0x5695, 0x87A3, 0x5696, 0x87A4, 0x5697, 0x87A5, 0x5698, 0x87A6, 0x5699, 0x87A7, 0x569A, 0x87A8, + 0x569B, 0x87A9, 0x569C, 0x87AA, 0x569D, 0x87AB, 0x569E, 0x87AC, 0x569F, 0x87AD, 0x56A0, 0x87AE, 0x56A1, 0x87AF, 0x56A2, 0x87B0, + 0x56A3, 0xCFF9, 0x56A4, 0x87B1, 0x56A5, 0x87B2, 0x56A6, 0x87B3, 0x56A7, 0x87B4, 0x56A8, 0x87B5, 0x56A9, 0x87B6, 0x56AA, 0x87B7, + 0x56AB, 0x87B8, 0x56AC, 0x87B9, 0x56AD, 0x87BA, 0x56AE, 0x87BB, 0x56AF, 0xE0EB, 0x56B0, 0x87BC, 0x56B1, 0x87BD, 0x56B2, 0x87BE, + 0x56B3, 0x87BF, 0x56B4, 0x87C0, 0x56B5, 0x87C1, 0x56B6, 0x87C2, 0x56B7, 0xC8C2, 0x56B8, 0x87C3, 0x56B9, 0x87C4, 0x56BA, 0x87C5, + 0x56BB, 0x87C6, 0x56BC, 0xBDC0, 0x56BD, 0x87C7, 0x56BE, 0x87C8, 0x56BF, 0x87C9, 0x56C0, 0x87CA, 0x56C1, 0x87CB, 0x56C2, 0x87CC, + 0x56C3, 0x87CD, 0x56C4, 0x87CE, 0x56C5, 0x87CF, 0x56C6, 0x87D0, 0x56C7, 0x87D1, 0x56C8, 0x87D2, 0x56C9, 0x87D3, 0x56CA, 0xC4D2, + 0x56CB, 0x87D4, 0x56CC, 0x87D5, 0x56CD, 0x87D6, 0x56CE, 0x87D7, 0x56CF, 0x87D8, 0x56D0, 0x87D9, 0x56D1, 0x87DA, 0x56D2, 0x87DB, + 0x56D3, 0x87DC, 0x56D4, 0xE0EC, 0x56D5, 0x87DD, 0x56D6, 0x87DE, 0x56D7, 0xE0ED, 0x56D8, 0x87DF, 0x56D9, 0x87E0, 0x56DA, 0xC7F4, + 0x56DB, 0xCBC4, 0x56DC, 0x87E1, 0x56DD, 0xE0EE, 0x56DE, 0xBBD8, 0x56DF, 0xD8B6, 0x56E0, 0xD2F2, 0x56E1, 0xE0EF, 0x56E2, 0xCDC5, + 0x56E3, 0x87E2, 0x56E4, 0xB6DA, 0x56E5, 0x87E3, 0x56E6, 0x87E4, 0x56E7, 0x87E5, 0x56E8, 0x87E6, 0x56E9, 0x87E7, 0x56EA, 0x87E8, + 0x56EB, 0xE0F1, 0x56EC, 0x87E9, 0x56ED, 0xD4B0, 0x56EE, 0x87EA, 0x56EF, 0x87EB, 0x56F0, 0xC0A7, 0x56F1, 0xB4D1, 0x56F2, 0x87EC, + 0x56F3, 0x87ED, 0x56F4, 0xCEA7, 0x56F5, 0xE0F0, 0x56F6, 0x87EE, 0x56F7, 0x87EF, 0x56F8, 0x87F0, 0x56F9, 0xE0F2, 0x56FA, 0xB9CC, + 0x56FB, 0x87F1, 0x56FC, 0x87F2, 0x56FD, 0xB9FA, 0x56FE, 0xCDBC, 0x56FF, 0xE0F3, 0x5700, 0x87F3, 0x5701, 0x87F4, 0x5702, 0x87F5, + 0x5703, 0xC6D4, 0x5704, 0xE0F4, 0x5705, 0x87F6, 0x5706, 0xD4B2, 0x5707, 0x87F7, 0x5708, 0xC8A6, 0x5709, 0xE0F6, 0x570A, 0xE0F5, + 0x570B, 0x87F8, 0x570C, 0x87F9, 0x570D, 0x87FA, 0x570E, 0x87FB, 0x570F, 0x87FC, 0x5710, 0x87FD, 0x5711, 0x87FE, 0x5712, 0x8840, + 0x5713, 0x8841, 0x5714, 0x8842, 0x5715, 0x8843, 0x5716, 0x8844, 0x5717, 0x8845, 0x5718, 0x8846, 0x5719, 0x8847, 0x571A, 0x8848, + 0x571B, 0x8849, 0x571C, 0xE0F7, 0x571D, 0x884A, 0x571E, 0x884B, 0x571F, 0xCDC1, 0x5720, 0x884C, 0x5721, 0x884D, 0x5722, 0x884E, + 0x5723, 0xCAA5, 0x5724, 0x884F, 0x5725, 0x8850, 0x5726, 0x8851, 0x5727, 0x8852, 0x5728, 0xD4DA, 0x5729, 0xDBD7, 0x572A, 0xDBD9, + 0x572B, 0x8853, 0x572C, 0xDBD8, 0x572D, 0xB9E7, 0x572E, 0xDBDC, 0x572F, 0xDBDD, 0x5730, 0xB5D8, 0x5731, 0x8854, 0x5732, 0x8855, + 0x5733, 0xDBDA, 0x5734, 0x8856, 0x5735, 0x8857, 0x5736, 0x8858, 0x5737, 0x8859, 0x5738, 0x885A, 0x5739, 0xDBDB, 0x573A, 0xB3A1, + 0x573B, 0xDBDF, 0x573C, 0x885B, 0x573D, 0x885C, 0x573E, 0xBBF8, 0x573F, 0x885D, 0x5740, 0xD6B7, 0x5741, 0x885E, 0x5742, 0xDBE0, + 0x5743, 0x885F, 0x5744, 0x8860, 0x5745, 0x8861, 0x5746, 0x8862, 0x5747, 0xBEF9, 0x5748, 0x8863, 0x5749, 0x8864, 0x574A, 0xB7BB, + 0x574B, 0x8865, 0x574C, 0xDBD0, 0x574D, 0xCCAE, 0x574E, 0xBFB2, 0x574F, 0xBBB5, 0x5750, 0xD7F8, 0x5751, 0xBFD3, 0x5752, 0x8866, + 0x5753, 0x8867, 0x5754, 0x8868, 0x5755, 0x8869, 0x5756, 0x886A, 0x5757, 0xBFE9, 0x5758, 0x886B, 0x5759, 0x886C, 0x575A, 0xBCE1, + 0x575B, 0xCCB3, 0x575C, 0xDBDE, 0x575D, 0xB0D3, 0x575E, 0xCEEB, 0x575F, 0xB7D8, 0x5760, 0xD7B9, 0x5761, 0xC6C2, 0x5762, 0x886D, + 0x5763, 0x886E, 0x5764, 0xC0A4, 0x5765, 0x886F, 0x5766, 0xCCB9, 0x5767, 0x8870, 0x5768, 0xDBE7, 0x5769, 0xDBE1, 0x576A, 0xC6BA, + 0x576B, 0xDBE3, 0x576C, 0x8871, 0x576D, 0xDBE8, 0x576E, 0x8872, 0x576F, 0xC5F7, 0x5770, 0x8873, 0x5771, 0x8874, 0x5772, 0x8875, + 0x5773, 0xDBEA, 0x5774, 0x8876, 0x5775, 0x8877, 0x5776, 0xDBE9, 0x5777, 0xBFC0, 0x5778, 0x8878, 0x5779, 0x8879, 0x577A, 0x887A, + 0x577B, 0xDBE6, 0x577C, 0xDBE5, 0x577D, 0x887B, 0x577E, 0x887C, 0x577F, 0x887D, 0x5780, 0x887E, 0x5781, 0x8880, 0x5782, 0xB4B9, + 0x5783, 0xC0AC, 0x5784, 0xC2A2, 0x5785, 0xDBE2, 0x5786, 0xDBE4, 0x5787, 0x8881, 0x5788, 0x8882, 0x5789, 0x8883, 0x578A, 0x8884, + 0x578B, 0xD0CD, 0x578C, 0xDBED, 0x578D, 0x8885, 0x578E, 0x8886, 0x578F, 0x8887, 0x5790, 0x8888, 0x5791, 0x8889, 0x5792, 0xC0DD, + 0x5793, 0xDBF2, 0x5794, 0x888A, 0x5795, 0x888B, 0x5796, 0x888C, 0x5797, 0x888D, 0x5798, 0x888E, 0x5799, 0x888F, 0x579A, 0x8890, + 0x579B, 0xB6E2, 0x579C, 0x8891, 0x579D, 0x8892, 0x579E, 0x8893, 0x579F, 0x8894, 0x57A0, 0xDBF3, 0x57A1, 0xDBD2, 0x57A2, 0xB9B8, + 0x57A3, 0xD4AB, 0x57A4, 0xDBEC, 0x57A5, 0x8895, 0x57A6, 0xBFD1, 0x57A7, 0xDBF0, 0x57A8, 0x8896, 0x57A9, 0xDBD1, 0x57AA, 0x8897, + 0x57AB, 0xB5E6, 0x57AC, 0x8898, 0x57AD, 0xDBEB, 0x57AE, 0xBFE5, 0x57AF, 0x8899, 0x57B0, 0x889A, 0x57B1, 0x889B, 0x57B2, 0xDBEE, + 0x57B3, 0x889C, 0x57B4, 0xDBF1, 0x57B5, 0x889D, 0x57B6, 0x889E, 0x57B7, 0x889F, 0x57B8, 0xDBF9, 0x57B9, 0x88A0, 0x57BA, 0x88A1, + 0x57BB, 0x88A2, 0x57BC, 0x88A3, 0x57BD, 0x88A4, 0x57BE, 0x88A5, 0x57BF, 0x88A6, 0x57C0, 0x88A7, 0x57C1, 0x88A8, 0x57C2, 0xB9A1, + 0x57C3, 0xB0A3, 0x57C4, 0x88A9, 0x57C5, 0x88AA, 0x57C6, 0x88AB, 0x57C7, 0x88AC, 0x57C8, 0x88AD, 0x57C9, 0x88AE, 0x57CA, 0x88AF, + 0x57CB, 0xC2F1, 0x57CC, 0x88B0, 0x57CD, 0x88B1, 0x57CE, 0xB3C7, 0x57CF, 0xDBEF, 0x57D0, 0x88B2, 0x57D1, 0x88B3, 0x57D2, 0xDBF8, + 0x57D3, 0x88B4, 0x57D4, 0xC6D2, 0x57D5, 0xDBF4, 0x57D6, 0x88B5, 0x57D7, 0x88B6, 0x57D8, 0xDBF5, 0x57D9, 0xDBF7, 0x57DA, 0xDBF6, + 0x57DB, 0x88B7, 0x57DC, 0x88B8, 0x57DD, 0xDBFE, 0x57DE, 0x88B9, 0x57DF, 0xD3F2, 0x57E0, 0xB2BA, 0x57E1, 0x88BA, 0x57E2, 0x88BB, + 0x57E3, 0x88BC, 0x57E4, 0xDBFD, 0x57E5, 0x88BD, 0x57E6, 0x88BE, 0x57E7, 0x88BF, 0x57E8, 0x88C0, 0x57E9, 0x88C1, 0x57EA, 0x88C2, + 0x57EB, 0x88C3, 0x57EC, 0x88C4, 0x57ED, 0xDCA4, 0x57EE, 0x88C5, 0x57EF, 0xDBFB, 0x57F0, 0x88C6, 0x57F1, 0x88C7, 0x57F2, 0x88C8, + 0x57F3, 0x88C9, 0x57F4, 0xDBFA, 0x57F5, 0x88CA, 0x57F6, 0x88CB, 0x57F7, 0x88CC, 0x57F8, 0xDBFC, 0x57F9, 0xC5E0, 0x57FA, 0xBBF9, + 0x57FB, 0x88CD, 0x57FC, 0x88CE, 0x57FD, 0xDCA3, 0x57FE, 0x88CF, 0x57FF, 0x88D0, 0x5800, 0xDCA5, 0x5801, 0x88D1, 0x5802, 0xCCC3, + 0x5803, 0x88D2, 0x5804, 0x88D3, 0x5805, 0x88D4, 0x5806, 0xB6D1, 0x5807, 0xDDC0, 0x5808, 0x88D5, 0x5809, 0x88D6, 0x580A, 0x88D7, + 0x580B, 0xDCA1, 0x580C, 0x88D8, 0x580D, 0xDCA2, 0x580E, 0x88D9, 0x580F, 0x88DA, 0x5810, 0x88DB, 0x5811, 0xC7B5, 0x5812, 0x88DC, + 0x5813, 0x88DD, 0x5814, 0x88DE, 0x5815, 0xB6E9, 0x5816, 0x88DF, 0x5817, 0x88E0, 0x5818, 0x88E1, 0x5819, 0xDCA7, 0x581A, 0x88E2, + 0x581B, 0x88E3, 0x581C, 0x88E4, 0x581D, 0x88E5, 0x581E, 0xDCA6, 0x581F, 0x88E6, 0x5820, 0xDCA9, 0x5821, 0xB1A4, 0x5822, 0x88E7, + 0x5823, 0x88E8, 0x5824, 0xB5CC, 0x5825, 0x88E9, 0x5826, 0x88EA, 0x5827, 0x88EB, 0x5828, 0x88EC, 0x5829, 0x88ED, 0x582A, 0xBFB0, + 0x582B, 0x88EE, 0x582C, 0x88EF, 0x582D, 0x88F0, 0x582E, 0x88F1, 0x582F, 0x88F2, 0x5830, 0xD1DF, 0x5831, 0x88F3, 0x5832, 0x88F4, + 0x5833, 0x88F5, 0x5834, 0x88F6, 0x5835, 0xB6C2, 0x5836, 0x88F7, 0x5837, 0x88F8, 0x5838, 0x88F9, 0x5839, 0x88FA, 0x583A, 0x88FB, + 0x583B, 0x88FC, 0x583C, 0x88FD, 0x583D, 0x88FE, 0x583E, 0x8940, 0x583F, 0x8941, 0x5840, 0x8942, 0x5841, 0x8943, 0x5842, 0x8944, + 0x5843, 0x8945, 0x5844, 0xDCA8, 0x5845, 0x8946, 0x5846, 0x8947, 0x5847, 0x8948, 0x5848, 0x8949, 0x5849, 0x894A, 0x584A, 0x894B, + 0x584B, 0x894C, 0x584C, 0xCBFA, 0x584D, 0xEBF3, 0x584E, 0x894D, 0x584F, 0x894E, 0x5850, 0x894F, 0x5851, 0xCBDC, 0x5852, 0x8950, + 0x5853, 0x8951, 0x5854, 0xCBFE, 0x5855, 0x8952, 0x5856, 0x8953, 0x5857, 0x8954, 0x5858, 0xCCC1, 0x5859, 0x8955, 0x585A, 0x8956, + 0x585B, 0x8957, 0x585C, 0x8958, 0x585D, 0x8959, 0x585E, 0xC8FB, 0x585F, 0x895A, 0x5860, 0x895B, 0x5861, 0x895C, 0x5862, 0x895D, + 0x5863, 0x895E, 0x5864, 0x895F, 0x5865, 0xDCAA, 0x5866, 0x8960, 0x5867, 0x8961, 0x5868, 0x8962, 0x5869, 0x8963, 0x586A, 0x8964, + 0x586B, 0xCCEE, 0x586C, 0xDCAB, 0x586D, 0x8965, 0x586E, 0x8966, 0x586F, 0x8967, 0x5870, 0x8968, 0x5871, 0x8969, 0x5872, 0x896A, + 0x5873, 0x896B, 0x5874, 0x896C, 0x5875, 0x896D, 0x5876, 0x896E, 0x5877, 0x896F, 0x5878, 0x8970, 0x5879, 0x8971, 0x587A, 0x8972, + 0x587B, 0x8973, 0x587C, 0x8974, 0x587D, 0x8975, 0x587E, 0xDBD3, 0x587F, 0x8976, 0x5880, 0xDCAF, 0x5881, 0xDCAC, 0x5882, 0x8977, + 0x5883, 0xBEB3, 0x5884, 0x8978, 0x5885, 0xCAFB, 0x5886, 0x8979, 0x5887, 0x897A, 0x5888, 0x897B, 0x5889, 0xDCAD, 0x588A, 0x897C, + 0x588B, 0x897D, 0x588C, 0x897E, 0x588D, 0x8980, 0x588E, 0x8981, 0x588F, 0x8982, 0x5890, 0x8983, 0x5891, 0x8984, 0x5892, 0xC9CA, + 0x5893, 0xC4B9, 0x5894, 0x8985, 0x5895, 0x8986, 0x5896, 0x8987, 0x5897, 0x8988, 0x5898, 0x8989, 0x5899, 0xC7BD, 0x589A, 0xDCAE, + 0x589B, 0x898A, 0x589C, 0x898B, 0x589D, 0x898C, 0x589E, 0xD4F6, 0x589F, 0xD0E6, 0x58A0, 0x898D, 0x58A1, 0x898E, 0x58A2, 0x898F, + 0x58A3, 0x8990, 0x58A4, 0x8991, 0x58A5, 0x8992, 0x58A6, 0x8993, 0x58A7, 0x8994, 0x58A8, 0xC4AB, 0x58A9, 0xB6D5, 0x58AA, 0x8995, + 0x58AB, 0x8996, 0x58AC, 0x8997, 0x58AD, 0x8998, 0x58AE, 0x8999, 0x58AF, 0x899A, 0x58B0, 0x899B, 0x58B1, 0x899C, 0x58B2, 0x899D, + 0x58B3, 0x899E, 0x58B4, 0x899F, 0x58B5, 0x89A0, 0x58B6, 0x89A1, 0x58B7, 0x89A2, 0x58B8, 0x89A3, 0x58B9, 0x89A4, 0x58BA, 0x89A5, + 0x58BB, 0x89A6, 0x58BC, 0xDBD4, 0x58BD, 0x89A7, 0x58BE, 0x89A8, 0x58BF, 0x89A9, 0x58C0, 0x89AA, 0x58C1, 0xB1DA, 0x58C2, 0x89AB, + 0x58C3, 0x89AC, 0x58C4, 0x89AD, 0x58C5, 0xDBD5, 0x58C6, 0x89AE, 0x58C7, 0x89AF, 0x58C8, 0x89B0, 0x58C9, 0x89B1, 0x58CA, 0x89B2, + 0x58CB, 0x89B3, 0x58CC, 0x89B4, 0x58CD, 0x89B5, 0x58CE, 0x89B6, 0x58CF, 0x89B7, 0x58D0, 0x89B8, 0x58D1, 0xDBD6, 0x58D2, 0x89B9, + 0x58D3, 0x89BA, 0x58D4, 0x89BB, 0x58D5, 0xBABE, 0x58D6, 0x89BC, 0x58D7, 0x89BD, 0x58D8, 0x89BE, 0x58D9, 0x89BF, 0x58DA, 0x89C0, + 0x58DB, 0x89C1, 0x58DC, 0x89C2, 0x58DD, 0x89C3, 0x58DE, 0x89C4, 0x58DF, 0x89C5, 0x58E0, 0x89C6, 0x58E1, 0x89C7, 0x58E2, 0x89C8, + 0x58E3, 0x89C9, 0x58E4, 0xC8C0, 0x58E5, 0x89CA, 0x58E6, 0x89CB, 0x58E7, 0x89CC, 0x58E8, 0x89CD, 0x58E9, 0x89CE, 0x58EA, 0x89CF, + 0x58EB, 0xCABF, 0x58EC, 0xC8C9, 0x58ED, 0x89D0, 0x58EE, 0xD7B3, 0x58EF, 0x89D1, 0x58F0, 0xC9F9, 0x58F1, 0x89D2, 0x58F2, 0x89D3, + 0x58F3, 0xBFC7, 0x58F4, 0x89D4, 0x58F5, 0x89D5, 0x58F6, 0xBAF8, 0x58F7, 0x89D6, 0x58F8, 0x89D7, 0x58F9, 0xD2BC, 0x58FA, 0x89D8, + 0x58FB, 0x89D9, 0x58FC, 0x89DA, 0x58FD, 0x89DB, 0x58FE, 0x89DC, 0x58FF, 0x89DD, 0x5900, 0x89DE, 0x5901, 0x89DF, 0x5902, 0xE2BA, + 0x5903, 0x89E0, 0x5904, 0xB4A6, 0x5905, 0x89E1, 0x5906, 0x89E2, 0x5907, 0xB1B8, 0x5908, 0x89E3, 0x5909, 0x89E4, 0x590A, 0x89E5, + 0x590B, 0x89E6, 0x590C, 0x89E7, 0x590D, 0xB8B4, 0x590E, 0x89E8, 0x590F, 0xCFC4, 0x5910, 0x89E9, 0x5911, 0x89EA, 0x5912, 0x89EB, + 0x5913, 0x89EC, 0x5914, 0xD9E7, 0x5915, 0xCFA6, 0x5916, 0xCDE2, 0x5917, 0x89ED, 0x5918, 0x89EE, 0x5919, 0xD9ED, 0x591A, 0xB6E0, + 0x591B, 0x89EF, 0x591C, 0xD2B9, 0x591D, 0x89F0, 0x591E, 0x89F1, 0x591F, 0xB9BB, 0x5920, 0x89F2, 0x5921, 0x89F3, 0x5922, 0x89F4, + 0x5923, 0x89F5, 0x5924, 0xE2B9, 0x5925, 0xE2B7, 0x5926, 0x89F6, 0x5927, 0xB4F3, 0x5928, 0x89F7, 0x5929, 0xCCEC, 0x592A, 0xCCAB, + 0x592B, 0xB7F2, 0x592C, 0x89F8, 0x592D, 0xD8B2, 0x592E, 0xD1EB, 0x592F, 0xBABB, 0x5930, 0x89F9, 0x5931, 0xCAA7, 0x5932, 0x89FA, + 0x5933, 0x89FB, 0x5934, 0xCDB7, 0x5935, 0x89FC, 0x5936, 0x89FD, 0x5937, 0xD2C4, 0x5938, 0xBFE4, 0x5939, 0xBCD0, 0x593A, 0xB6E1, + 0x593B, 0x89FE, 0x593C, 0xDEC5, 0x593D, 0x8A40, 0x593E, 0x8A41, 0x593F, 0x8A42, 0x5940, 0x8A43, 0x5941, 0xDEC6, 0x5942, 0xDBBC, + 0x5943, 0x8A44, 0x5944, 0xD1D9, 0x5945, 0x8A45, 0x5946, 0x8A46, 0x5947, 0xC6E6, 0x5948, 0xC4CE, 0x5949, 0xB7EE, 0x594A, 0x8A47, + 0x594B, 0xB7DC, 0x594C, 0x8A48, 0x594D, 0x8A49, 0x594E, 0xBFFC, 0x594F, 0xD7E0, 0x5950, 0x8A4A, 0x5951, 0xC6F5, 0x5952, 0x8A4B, + 0x5953, 0x8A4C, 0x5954, 0xB1BC, 0x5955, 0xDEC8, 0x5956, 0xBDB1, 0x5957, 0xCCD7, 0x5958, 0xDECA, 0x5959, 0x8A4D, 0x595A, 0xDEC9, + 0x595B, 0x8A4E, 0x595C, 0x8A4F, 0x595D, 0x8A50, 0x595E, 0x8A51, 0x595F, 0x8A52, 0x5960, 0xB5EC, 0x5961, 0x8A53, 0x5962, 0xC9DD, + 0x5963, 0x8A54, 0x5964, 0x8A55, 0x5965, 0xB0C2, 0x5966, 0x8A56, 0x5967, 0x8A57, 0x5968, 0x8A58, 0x5969, 0x8A59, 0x596A, 0x8A5A, + 0x596B, 0x8A5B, 0x596C, 0x8A5C, 0x596D, 0x8A5D, 0x596E, 0x8A5E, 0x596F, 0x8A5F, 0x5970, 0x8A60, 0x5971, 0x8A61, 0x5972, 0x8A62, + 0x5973, 0xC5AE, 0x5974, 0xC5AB, 0x5975, 0x8A63, 0x5976, 0xC4CC, 0x5977, 0x8A64, 0x5978, 0xBCE9, 0x5979, 0xCBFD, 0x597A, 0x8A65, + 0x597B, 0x8A66, 0x597C, 0x8A67, 0x597D, 0xBAC3, 0x597E, 0x8A68, 0x597F, 0x8A69, 0x5980, 0x8A6A, 0x5981, 0xE5F9, 0x5982, 0xC8E7, + 0x5983, 0xE5FA, 0x5984, 0xCDFD, 0x5985, 0x8A6B, 0x5986, 0xD7B1, 0x5987, 0xB8BE, 0x5988, 0xC2E8, 0x5989, 0x8A6C, 0x598A, 0xC8D1, + 0x598B, 0x8A6D, 0x598C, 0x8A6E, 0x598D, 0xE5FB, 0x598E, 0x8A6F, 0x598F, 0x8A70, 0x5990, 0x8A71, 0x5991, 0x8A72, 0x5992, 0xB6CA, + 0x5993, 0xBCCB, 0x5994, 0x8A73, 0x5995, 0x8A74, 0x5996, 0xD1FD, 0x5997, 0xE6A1, 0x5998, 0x8A75, 0x5999, 0xC3EE, 0x599A, 0x8A76, + 0x599B, 0x8A77, 0x599C, 0x8A78, 0x599D, 0x8A79, 0x599E, 0xE6A4, 0x599F, 0x8A7A, 0x59A0, 0x8A7B, 0x59A1, 0x8A7C, 0x59A2, 0x8A7D, + 0x59A3, 0xE5FE, 0x59A4, 0xE6A5, 0x59A5, 0xCDD7, 0x59A6, 0x8A7E, 0x59A7, 0x8A80, 0x59A8, 0xB7C1, 0x59A9, 0xE5FC, 0x59AA, 0xE5FD, + 0x59AB, 0xE6A3, 0x59AC, 0x8A81, 0x59AD, 0x8A82, 0x59AE, 0xC4DD, 0x59AF, 0xE6A8, 0x59B0, 0x8A83, 0x59B1, 0x8A84, 0x59B2, 0xE6A7, + 0x59B3, 0x8A85, 0x59B4, 0x8A86, 0x59B5, 0x8A87, 0x59B6, 0x8A88, 0x59B7, 0x8A89, 0x59B8, 0x8A8A, 0x59B9, 0xC3C3, 0x59BA, 0x8A8B, + 0x59BB, 0xC6DE, 0x59BC, 0x8A8C, 0x59BD, 0x8A8D, 0x59BE, 0xE6AA, 0x59BF, 0x8A8E, 0x59C0, 0x8A8F, 0x59C1, 0x8A90, 0x59C2, 0x8A91, + 0x59C3, 0x8A92, 0x59C4, 0x8A93, 0x59C5, 0x8A94, 0x59C6, 0xC4B7, 0x59C7, 0x8A95, 0x59C8, 0x8A96, 0x59C9, 0x8A97, 0x59CA, 0xE6A2, + 0x59CB, 0xCABC, 0x59CC, 0x8A98, 0x59CD, 0x8A99, 0x59CE, 0x8A9A, 0x59CF, 0x8A9B, 0x59D0, 0xBDE3, 0x59D1, 0xB9C3, 0x59D2, 0xE6A6, + 0x59D3, 0xD0D5, 0x59D4, 0xCEAF, 0x59D5, 0x8A9C, 0x59D6, 0x8A9D, 0x59D7, 0xE6A9, 0x59D8, 0xE6B0, 0x59D9, 0x8A9E, 0x59DA, 0xD2A6, + 0x59DB, 0x8A9F, 0x59DC, 0xBDAA, 0x59DD, 0xE6AD, 0x59DE, 0x8AA0, 0x59DF, 0x8AA1, 0x59E0, 0x8AA2, 0x59E1, 0x8AA3, 0x59E2, 0x8AA4, + 0x59E3, 0xE6AF, 0x59E4, 0x8AA5, 0x59E5, 0xC0D1, 0x59E6, 0x8AA6, 0x59E7, 0x8AA7, 0x59E8, 0xD2CC, 0x59E9, 0x8AA8, 0x59EA, 0x8AA9, + 0x59EB, 0x8AAA, 0x59EC, 0xBCA7, 0x59ED, 0x8AAB, 0x59EE, 0x8AAC, 0x59EF, 0x8AAD, 0x59F0, 0x8AAE, 0x59F1, 0x8AAF, 0x59F2, 0x8AB0, + 0x59F3, 0x8AB1, 0x59F4, 0x8AB2, 0x59F5, 0x8AB3, 0x59F6, 0x8AB4, 0x59F7, 0x8AB5, 0x59F8, 0x8AB6, 0x59F9, 0xE6B1, 0x59FA, 0x8AB7, + 0x59FB, 0xD2F6, 0x59FC, 0x8AB8, 0x59FD, 0x8AB9, 0x59FE, 0x8ABA, 0x59FF, 0xD7CB, 0x5A00, 0x8ABB, 0x5A01, 0xCDFE, 0x5A02, 0x8ABC, + 0x5A03, 0xCDDE, 0x5A04, 0xC2A6, 0x5A05, 0xE6AB, 0x5A06, 0xE6AC, 0x5A07, 0xBDBF, 0x5A08, 0xE6AE, 0x5A09, 0xE6B3, 0x5A0A, 0x8ABD, + 0x5A0B, 0x8ABE, 0x5A0C, 0xE6B2, 0x5A0D, 0x8ABF, 0x5A0E, 0x8AC0, 0x5A0F, 0x8AC1, 0x5A10, 0x8AC2, 0x5A11, 0xE6B6, 0x5A12, 0x8AC3, + 0x5A13, 0xE6B8, 0x5A14, 0x8AC4, 0x5A15, 0x8AC5, 0x5A16, 0x8AC6, 0x5A17, 0x8AC7, 0x5A18, 0xC4EF, 0x5A19, 0x8AC8, 0x5A1A, 0x8AC9, + 0x5A1B, 0x8ACA, 0x5A1C, 0xC4C8, 0x5A1D, 0x8ACB, 0x5A1E, 0x8ACC, 0x5A1F, 0xBEEA, 0x5A20, 0xC9EF, 0x5A21, 0x8ACD, 0x5A22, 0x8ACE, + 0x5A23, 0xE6B7, 0x5A24, 0x8ACF, 0x5A25, 0xB6F0, 0x5A26, 0x8AD0, 0x5A27, 0x8AD1, 0x5A28, 0x8AD2, 0x5A29, 0xC3E4, 0x5A2A, 0x8AD3, + 0x5A2B, 0x8AD4, 0x5A2C, 0x8AD5, 0x5A2D, 0x8AD6, 0x5A2E, 0x8AD7, 0x5A2F, 0x8AD8, 0x5A30, 0x8AD9, 0x5A31, 0xD3E9, 0x5A32, 0xE6B4, + 0x5A33, 0x8ADA, 0x5A34, 0xE6B5, 0x5A35, 0x8ADB, 0x5A36, 0xC8A2, 0x5A37, 0x8ADC, 0x5A38, 0x8ADD, 0x5A39, 0x8ADE, 0x5A3A, 0x8ADF, + 0x5A3B, 0x8AE0, 0x5A3C, 0xE6BD, 0x5A3D, 0x8AE1, 0x5A3E, 0x8AE2, 0x5A3F, 0x8AE3, 0x5A40, 0xE6B9, 0x5A41, 0x8AE4, 0x5A42, 0x8AE5, + 0x5A43, 0x8AE6, 0x5A44, 0x8AE7, 0x5A45, 0x8AE8, 0x5A46, 0xC6C5, 0x5A47, 0x8AE9, 0x5A48, 0x8AEA, 0x5A49, 0xCDF1, 0x5A4A, 0xE6BB, + 0x5A4B, 0x8AEB, 0x5A4C, 0x8AEC, 0x5A4D, 0x8AED, 0x5A4E, 0x8AEE, 0x5A4F, 0x8AEF, 0x5A50, 0x8AF0, 0x5A51, 0x8AF1, 0x5A52, 0x8AF2, + 0x5A53, 0x8AF3, 0x5A54, 0x8AF4, 0x5A55, 0xE6BC, 0x5A56, 0x8AF5, 0x5A57, 0x8AF6, 0x5A58, 0x8AF7, 0x5A59, 0x8AF8, 0x5A5A, 0xBBE9, + 0x5A5B, 0x8AF9, 0x5A5C, 0x8AFA, 0x5A5D, 0x8AFB, 0x5A5E, 0x8AFC, 0x5A5F, 0x8AFD, 0x5A60, 0x8AFE, 0x5A61, 0x8B40, 0x5A62, 0xE6BE, + 0x5A63, 0x8B41, 0x5A64, 0x8B42, 0x5A65, 0x8B43, 0x5A66, 0x8B44, 0x5A67, 0xE6BA, 0x5A68, 0x8B45, 0x5A69, 0x8B46, 0x5A6A, 0xC0B7, + 0x5A6B, 0x8B47, 0x5A6C, 0x8B48, 0x5A6D, 0x8B49, 0x5A6E, 0x8B4A, 0x5A6F, 0x8B4B, 0x5A70, 0x8B4C, 0x5A71, 0x8B4D, 0x5A72, 0x8B4E, + 0x5A73, 0x8B4F, 0x5A74, 0xD3A4, 0x5A75, 0xE6BF, 0x5A76, 0xC9F4, 0x5A77, 0xE6C3, 0x5A78, 0x8B50, 0x5A79, 0x8B51, 0x5A7A, 0xE6C4, + 0x5A7B, 0x8B52, 0x5A7C, 0x8B53, 0x5A7D, 0x8B54, 0x5A7E, 0x8B55, 0x5A7F, 0xD0F6, 0x5A80, 0x8B56, 0x5A81, 0x8B57, 0x5A82, 0x8B58, + 0x5A83, 0x8B59, 0x5A84, 0x8B5A, 0x5A85, 0x8B5B, 0x5A86, 0x8B5C, 0x5A87, 0x8B5D, 0x5A88, 0x8B5E, 0x5A89, 0x8B5F, 0x5A8A, 0x8B60, + 0x5A8B, 0x8B61, 0x5A8C, 0x8B62, 0x5A8D, 0x8B63, 0x5A8E, 0x8B64, 0x5A8F, 0x8B65, 0x5A90, 0x8B66, 0x5A91, 0x8B67, 0x5A92, 0xC3BD, + 0x5A93, 0x8B68, 0x5A94, 0x8B69, 0x5A95, 0x8B6A, 0x5A96, 0x8B6B, 0x5A97, 0x8B6C, 0x5A98, 0x8B6D, 0x5A99, 0x8B6E, 0x5A9A, 0xC3C4, + 0x5A9B, 0xE6C2, 0x5A9C, 0x8B6F, 0x5A9D, 0x8B70, 0x5A9E, 0x8B71, 0x5A9F, 0x8B72, 0x5AA0, 0x8B73, 0x5AA1, 0x8B74, 0x5AA2, 0x8B75, + 0x5AA3, 0x8B76, 0x5AA4, 0x8B77, 0x5AA5, 0x8B78, 0x5AA6, 0x8B79, 0x5AA7, 0x8B7A, 0x5AA8, 0x8B7B, 0x5AA9, 0x8B7C, 0x5AAA, 0xE6C1, + 0x5AAB, 0x8B7D, 0x5AAC, 0x8B7E, 0x5AAD, 0x8B80, 0x5AAE, 0x8B81, 0x5AAF, 0x8B82, 0x5AB0, 0x8B83, 0x5AB1, 0x8B84, 0x5AB2, 0xE6C7, + 0x5AB3, 0xCFB1, 0x5AB4, 0x8B85, 0x5AB5, 0xEBF4, 0x5AB6, 0x8B86, 0x5AB7, 0x8B87, 0x5AB8, 0xE6CA, 0x5AB9, 0x8B88, 0x5ABA, 0x8B89, + 0x5ABB, 0x8B8A, 0x5ABC, 0x8B8B, 0x5ABD, 0x8B8C, 0x5ABE, 0xE6C5, 0x5ABF, 0x8B8D, 0x5AC0, 0x8B8E, 0x5AC1, 0xBCDE, 0x5AC2, 0xC9A9, + 0x5AC3, 0x8B8F, 0x5AC4, 0x8B90, 0x5AC5, 0x8B91, 0x5AC6, 0x8B92, 0x5AC7, 0x8B93, 0x5AC8, 0x8B94, 0x5AC9, 0xBCB5, 0x5ACA, 0x8B95, + 0x5ACB, 0x8B96, 0x5ACC, 0xCFD3, 0x5ACD, 0x8B97, 0x5ACE, 0x8B98, 0x5ACF, 0x8B99, 0x5AD0, 0x8B9A, 0x5AD1, 0x8B9B, 0x5AD2, 0xE6C8, + 0x5AD3, 0x8B9C, 0x5AD4, 0xE6C9, 0x5AD5, 0x8B9D, 0x5AD6, 0xE6CE, 0x5AD7, 0x8B9E, 0x5AD8, 0xE6D0, 0x5AD9, 0x8B9F, 0x5ADA, 0x8BA0, + 0x5ADB, 0x8BA1, 0x5ADC, 0xE6D1, 0x5ADD, 0x8BA2, 0x5ADE, 0x8BA3, 0x5ADF, 0x8BA4, 0x5AE0, 0xE6CB, 0x5AE1, 0xB5D5, 0x5AE2, 0x8BA5, + 0x5AE3, 0xE6CC, 0x5AE4, 0x8BA6, 0x5AE5, 0x8BA7, 0x5AE6, 0xE6CF, 0x5AE7, 0x8BA8, 0x5AE8, 0x8BA9, 0x5AE9, 0xC4DB, 0x5AEA, 0x8BAA, + 0x5AEB, 0xE6C6, 0x5AEC, 0x8BAB, 0x5AED, 0x8BAC, 0x5AEE, 0x8BAD, 0x5AEF, 0x8BAE, 0x5AF0, 0x8BAF, 0x5AF1, 0xE6CD, 0x5AF2, 0x8BB0, + 0x5AF3, 0x8BB1, 0x5AF4, 0x8BB2, 0x5AF5, 0x8BB3, 0x5AF6, 0x8BB4, 0x5AF7, 0x8BB5, 0x5AF8, 0x8BB6, 0x5AF9, 0x8BB7, 0x5AFA, 0x8BB8, + 0x5AFB, 0x8BB9, 0x5AFC, 0x8BBA, 0x5AFD, 0x8BBB, 0x5AFE, 0x8BBC, 0x5AFF, 0x8BBD, 0x5B00, 0x8BBE, 0x5B01, 0x8BBF, 0x5B02, 0x8BC0, + 0x5B03, 0x8BC1, 0x5B04, 0x8BC2, 0x5B05, 0x8BC3, 0x5B06, 0x8BC4, 0x5B07, 0x8BC5, 0x5B08, 0x8BC6, 0x5B09, 0xE6D2, 0x5B0A, 0x8BC7, + 0x5B0B, 0x8BC8, 0x5B0C, 0x8BC9, 0x5B0D, 0x8BCA, 0x5B0E, 0x8BCB, 0x5B0F, 0x8BCC, 0x5B10, 0x8BCD, 0x5B11, 0x8BCE, 0x5B12, 0x8BCF, + 0x5B13, 0x8BD0, 0x5B14, 0x8BD1, 0x5B15, 0x8BD2, 0x5B16, 0xE6D4, 0x5B17, 0xE6D3, 0x5B18, 0x8BD3, 0x5B19, 0x8BD4, 0x5B1A, 0x8BD5, + 0x5B1B, 0x8BD6, 0x5B1C, 0x8BD7, 0x5B1D, 0x8BD8, 0x5B1E, 0x8BD9, 0x5B1F, 0x8BDA, 0x5B20, 0x8BDB, 0x5B21, 0x8BDC, 0x5B22, 0x8BDD, + 0x5B23, 0x8BDE, 0x5B24, 0x8BDF, 0x5B25, 0x8BE0, 0x5B26, 0x8BE1, 0x5B27, 0x8BE2, 0x5B28, 0x8BE3, 0x5B29, 0x8BE4, 0x5B2A, 0x8BE5, + 0x5B2B, 0x8BE6, 0x5B2C, 0x8BE7, 0x5B2D, 0x8BE8, 0x5B2E, 0x8BE9, 0x5B2F, 0x8BEA, 0x5B30, 0x8BEB, 0x5B31, 0x8BEC, 0x5B32, 0xE6D5, + 0x5B33, 0x8BED, 0x5B34, 0xD9F8, 0x5B35, 0x8BEE, 0x5B36, 0x8BEF, 0x5B37, 0xE6D6, 0x5B38, 0x8BF0, 0x5B39, 0x8BF1, 0x5B3A, 0x8BF2, + 0x5B3B, 0x8BF3, 0x5B3C, 0x8BF4, 0x5B3D, 0x8BF5, 0x5B3E, 0x8BF6, 0x5B3F, 0x8BF7, 0x5B40, 0xE6D7, 0x5B41, 0x8BF8, 0x5B42, 0x8BF9, + 0x5B43, 0x8BFA, 0x5B44, 0x8BFB, 0x5B45, 0x8BFC, 0x5B46, 0x8BFD, 0x5B47, 0x8BFE, 0x5B48, 0x8C40, 0x5B49, 0x8C41, 0x5B4A, 0x8C42, + 0x5B4B, 0x8C43, 0x5B4C, 0x8C44, 0x5B4D, 0x8C45, 0x5B4E, 0x8C46, 0x5B4F, 0x8C47, 0x5B50, 0xD7D3, 0x5B51, 0xE6DD, 0x5B52, 0x8C48, + 0x5B53, 0xE6DE, 0x5B54, 0xBFD7, 0x5B55, 0xD4D0, 0x5B56, 0x8C49, 0x5B57, 0xD7D6, 0x5B58, 0xB4E6, 0x5B59, 0xCBEF, 0x5B5A, 0xE6DA, + 0x5B5B, 0xD8C3, 0x5B5C, 0xD7CE, 0x5B5D, 0xD0A2, 0x5B5E, 0x8C4A, 0x5B5F, 0xC3CF, 0x5B60, 0x8C4B, 0x5B61, 0x8C4C, 0x5B62, 0xE6DF, + 0x5B63, 0xBCBE, 0x5B64, 0xB9C2, 0x5B65, 0xE6DB, 0x5B66, 0xD1A7, 0x5B67, 0x8C4D, 0x5B68, 0x8C4E, 0x5B69, 0xBAA2, 0x5B6A, 0xC2CF, + 0x5B6B, 0x8C4F, 0x5B6C, 0xD8AB, 0x5B6D, 0x8C50, 0x5B6E, 0x8C51, 0x5B6F, 0x8C52, 0x5B70, 0xCAEB, 0x5B71, 0xE5EE, 0x5B72, 0x8C53, + 0x5B73, 0xE6DC, 0x5B74, 0x8C54, 0x5B75, 0xB7F5, 0x5B76, 0x8C55, 0x5B77, 0x8C56, 0x5B78, 0x8C57, 0x5B79, 0x8C58, 0x5B7A, 0xC8E6, + 0x5B7B, 0x8C59, 0x5B7C, 0x8C5A, 0x5B7D, 0xC4F5, 0x5B7E, 0x8C5B, 0x5B7F, 0x8C5C, 0x5B80, 0xE5B2, 0x5B81, 0xC4FE, 0x5B82, 0x8C5D, + 0x5B83, 0xCBFC, 0x5B84, 0xE5B3, 0x5B85, 0xD5AC, 0x5B86, 0x8C5E, 0x5B87, 0xD3EE, 0x5B88, 0xCAD8, 0x5B89, 0xB0B2, 0x5B8A, 0x8C5F, + 0x5B8B, 0xCBCE, 0x5B8C, 0xCDEA, 0x5B8D, 0x8C60, 0x5B8E, 0x8C61, 0x5B8F, 0xBAEA, 0x5B90, 0x8C62, 0x5B91, 0x8C63, 0x5B92, 0x8C64, + 0x5B93, 0xE5B5, 0x5B94, 0x8C65, 0x5B95, 0xE5B4, 0x5B96, 0x8C66, 0x5B97, 0xD7DA, 0x5B98, 0xB9D9, 0x5B99, 0xD6E6, 0x5B9A, 0xB6A8, + 0x5B9B, 0xCDF0, 0x5B9C, 0xD2CB, 0x5B9D, 0xB1A6, 0x5B9E, 0xCAB5, 0x5B9F, 0x8C67, 0x5BA0, 0xB3E8, 0x5BA1, 0xC9F3, 0x5BA2, 0xBFCD, + 0x5BA3, 0xD0FB, 0x5BA4, 0xCAD2, 0x5BA5, 0xE5B6, 0x5BA6, 0xBBC2, 0x5BA7, 0x8C68, 0x5BA8, 0x8C69, 0x5BA9, 0x8C6A, 0x5BAA, 0xCFDC, + 0x5BAB, 0xB9AC, 0x5BAC, 0x8C6B, 0x5BAD, 0x8C6C, 0x5BAE, 0x8C6D, 0x5BAF, 0x8C6E, 0x5BB0, 0xD4D7, 0x5BB1, 0x8C6F, 0x5BB2, 0x8C70, + 0x5BB3, 0xBAA6, 0x5BB4, 0xD1E7, 0x5BB5, 0xCFFC, 0x5BB6, 0xBCD2, 0x5BB7, 0x8C71, 0x5BB8, 0xE5B7, 0x5BB9, 0xC8DD, 0x5BBA, 0x8C72, + 0x5BBB, 0x8C73, 0x5BBC, 0x8C74, 0x5BBD, 0xBFED, 0x5BBE, 0xB1F6, 0x5BBF, 0xCBDE, 0x5BC0, 0x8C75, 0x5BC1, 0x8C76, 0x5BC2, 0xBCC5, + 0x5BC3, 0x8C77, 0x5BC4, 0xBCC4, 0x5BC5, 0xD2FA, 0x5BC6, 0xC3DC, 0x5BC7, 0xBFDC, 0x5BC8, 0x8C78, 0x5BC9, 0x8C79, 0x5BCA, 0x8C7A, + 0x5BCB, 0x8C7B, 0x5BCC, 0xB8BB, 0x5BCD, 0x8C7C, 0x5BCE, 0x8C7D, 0x5BCF, 0x8C7E, 0x5BD0, 0xC3C2, 0x5BD1, 0x8C80, 0x5BD2, 0xBAAE, + 0x5BD3, 0xD4A2, 0x5BD4, 0x8C81, 0x5BD5, 0x8C82, 0x5BD6, 0x8C83, 0x5BD7, 0x8C84, 0x5BD8, 0x8C85, 0x5BD9, 0x8C86, 0x5BDA, 0x8C87, + 0x5BDB, 0x8C88, 0x5BDC, 0x8C89, 0x5BDD, 0xC7DE, 0x5BDE, 0xC4AF, 0x5BDF, 0xB2EC, 0x5BE0, 0x8C8A, 0x5BE1, 0xB9D1, 0x5BE2, 0x8C8B, + 0x5BE3, 0x8C8C, 0x5BE4, 0xE5BB, 0x5BE5, 0xC1C8, 0x5BE6, 0x8C8D, 0x5BE7, 0x8C8E, 0x5BE8, 0xD5AF, 0x5BE9, 0x8C8F, 0x5BEA, 0x8C90, + 0x5BEB, 0x8C91, 0x5BEC, 0x8C92, 0x5BED, 0x8C93, 0x5BEE, 0xE5BC, 0x5BEF, 0x8C94, 0x5BF0, 0xE5BE, 0x5BF1, 0x8C95, 0x5BF2, 0x8C96, + 0x5BF3, 0x8C97, 0x5BF4, 0x8C98, 0x5BF5, 0x8C99, 0x5BF6, 0x8C9A, 0x5BF7, 0x8C9B, 0x5BF8, 0xB4E7, 0x5BF9, 0xB6D4, 0x5BFA, 0xCBC2, + 0x5BFB, 0xD1B0, 0x5BFC, 0xB5BC, 0x5BFD, 0x8C9C, 0x5BFE, 0x8C9D, 0x5BFF, 0xCAD9, 0x5C00, 0x8C9E, 0x5C01, 0xB7E2, 0x5C02, 0x8C9F, + 0x5C03, 0x8CA0, 0x5C04, 0xC9E4, 0x5C05, 0x8CA1, 0x5C06, 0xBDAB, 0x5C07, 0x8CA2, 0x5C08, 0x8CA3, 0x5C09, 0xCEBE, 0x5C0A, 0xD7F0, + 0x5C0B, 0x8CA4, 0x5C0C, 0x8CA5, 0x5C0D, 0x8CA6, 0x5C0E, 0x8CA7, 0x5C0F, 0xD0A1, 0x5C10, 0x8CA8, 0x5C11, 0xC9D9, 0x5C12, 0x8CA9, + 0x5C13, 0x8CAA, 0x5C14, 0xB6FB, 0x5C15, 0xE6D8, 0x5C16, 0xBCE2, 0x5C17, 0x8CAB, 0x5C18, 0xB3BE, 0x5C19, 0x8CAC, 0x5C1A, 0xC9D0, + 0x5C1B, 0x8CAD, 0x5C1C, 0xE6D9, 0x5C1D, 0xB3A2, 0x5C1E, 0x8CAE, 0x5C1F, 0x8CAF, 0x5C20, 0x8CB0, 0x5C21, 0x8CB1, 0x5C22, 0xDECC, + 0x5C23, 0x8CB2, 0x5C24, 0xD3C8, 0x5C25, 0xDECD, 0x5C26, 0x8CB3, 0x5C27, 0xD2A2, 0x5C28, 0x8CB4, 0x5C29, 0x8CB5, 0x5C2A, 0x8CB6, + 0x5C2B, 0x8CB7, 0x5C2C, 0xDECE, 0x5C2D, 0x8CB8, 0x5C2E, 0x8CB9, 0x5C2F, 0x8CBA, 0x5C30, 0x8CBB, 0x5C31, 0xBECD, 0x5C32, 0x8CBC, + 0x5C33, 0x8CBD, 0x5C34, 0xDECF, 0x5C35, 0x8CBE, 0x5C36, 0x8CBF, 0x5C37, 0x8CC0, 0x5C38, 0xCAAC, 0x5C39, 0xD2FC, 0x5C3A, 0xB3DF, + 0x5C3B, 0xE5EA, 0x5C3C, 0xC4E1, 0x5C3D, 0xBEA1, 0x5C3E, 0xCEB2, 0x5C3F, 0xC4F2, 0x5C40, 0xBED6, 0x5C41, 0xC6A8, 0x5C42, 0xB2E3, + 0x5C43, 0x8CC1, 0x5C44, 0x8CC2, 0x5C45, 0xBED3, 0x5C46, 0x8CC3, 0x5C47, 0x8CC4, 0x5C48, 0xC7FC, 0x5C49, 0xCCEB, 0x5C4A, 0xBDEC, + 0x5C4B, 0xCEDD, 0x5C4C, 0x8CC5, 0x5C4D, 0x8CC6, 0x5C4E, 0xCABA, 0x5C4F, 0xC6C1, 0x5C50, 0xE5EC, 0x5C51, 0xD0BC, 0x5C52, 0x8CC7, + 0x5C53, 0x8CC8, 0x5C54, 0x8CC9, 0x5C55, 0xD5B9, 0x5C56, 0x8CCA, 0x5C57, 0x8CCB, 0x5C58, 0x8CCC, 0x5C59, 0xE5ED, 0x5C5A, 0x8CCD, + 0x5C5B, 0x8CCE, 0x5C5C, 0x8CCF, 0x5C5D, 0x8CD0, 0x5C5E, 0xCAF4, 0x5C5F, 0x8CD1, 0x5C60, 0xCDC0, 0x5C61, 0xC2C5, 0x5C62, 0x8CD2, + 0x5C63, 0xE5EF, 0x5C64, 0x8CD3, 0x5C65, 0xC2C4, 0x5C66, 0xE5F0, 0x5C67, 0x8CD4, 0x5C68, 0x8CD5, 0x5C69, 0x8CD6, 0x5C6A, 0x8CD7, + 0x5C6B, 0x8CD8, 0x5C6C, 0x8CD9, 0x5C6D, 0x8CDA, 0x5C6E, 0xE5F8, 0x5C6F, 0xCDCD, 0x5C70, 0x8CDB, 0x5C71, 0xC9BD, 0x5C72, 0x8CDC, + 0x5C73, 0x8CDD, 0x5C74, 0x8CDE, 0x5C75, 0x8CDF, 0x5C76, 0x8CE0, 0x5C77, 0x8CE1, 0x5C78, 0x8CE2, 0x5C79, 0xD2D9, 0x5C7A, 0xE1A8, + 0x5C7B, 0x8CE3, 0x5C7C, 0x8CE4, 0x5C7D, 0x8CE5, 0x5C7E, 0x8CE6, 0x5C7F, 0xD3EC, 0x5C80, 0x8CE7, 0x5C81, 0xCBEA, 0x5C82, 0xC6F1, + 0x5C83, 0x8CE8, 0x5C84, 0x8CE9, 0x5C85, 0x8CEA, 0x5C86, 0x8CEB, 0x5C87, 0x8CEC, 0x5C88, 0xE1AC, 0x5C89, 0x8CED, 0x5C8A, 0x8CEE, + 0x5C8B, 0x8CEF, 0x5C8C, 0xE1A7, 0x5C8D, 0xE1A9, 0x5C8E, 0x8CF0, 0x5C8F, 0x8CF1, 0x5C90, 0xE1AA, 0x5C91, 0xE1AF, 0x5C92, 0x8CF2, + 0x5C93, 0x8CF3, 0x5C94, 0xB2ED, 0x5C95, 0x8CF4, 0x5C96, 0xE1AB, 0x5C97, 0xB8DA, 0x5C98, 0xE1AD, 0x5C99, 0xE1AE, 0x5C9A, 0xE1B0, + 0x5C9B, 0xB5BA, 0x5C9C, 0xE1B1, 0x5C9D, 0x8CF5, 0x5C9E, 0x8CF6, 0x5C9F, 0x8CF7, 0x5CA0, 0x8CF8, 0x5CA1, 0x8CF9, 0x5CA2, 0xE1B3, + 0x5CA3, 0xE1B8, 0x5CA4, 0x8CFA, 0x5CA5, 0x8CFB, 0x5CA6, 0x8CFC, 0x5CA7, 0x8CFD, 0x5CA8, 0x8CFE, 0x5CA9, 0xD1D2, 0x5CAA, 0x8D40, + 0x5CAB, 0xE1B6, 0x5CAC, 0xE1B5, 0x5CAD, 0xC1EB, 0x5CAE, 0x8D41, 0x5CAF, 0x8D42, 0x5CB0, 0x8D43, 0x5CB1, 0xE1B7, 0x5CB2, 0x8D44, + 0x5CB3, 0xD4C0, 0x5CB4, 0x8D45, 0x5CB5, 0xE1B2, 0x5CB6, 0x8D46, 0x5CB7, 0xE1BA, 0x5CB8, 0xB0B6, 0x5CB9, 0x8D47, 0x5CBA, 0x8D48, + 0x5CBB, 0x8D49, 0x5CBC, 0x8D4A, 0x5CBD, 0xE1B4, 0x5CBE, 0x8D4B, 0x5CBF, 0xBFF9, 0x5CC0, 0x8D4C, 0x5CC1, 0xE1B9, 0x5CC2, 0x8D4D, + 0x5CC3, 0x8D4E, 0x5CC4, 0xE1BB, 0x5CC5, 0x8D4F, 0x5CC6, 0x8D50, 0x5CC7, 0x8D51, 0x5CC8, 0x8D52, 0x5CC9, 0x8D53, 0x5CCA, 0x8D54, + 0x5CCB, 0xE1BE, 0x5CCC, 0x8D55, 0x5CCD, 0x8D56, 0x5CCE, 0x8D57, 0x5CCF, 0x8D58, 0x5CD0, 0x8D59, 0x5CD1, 0x8D5A, 0x5CD2, 0xE1BC, + 0x5CD3, 0x8D5B, 0x5CD4, 0x8D5C, 0x5CD5, 0x8D5D, 0x5CD6, 0x8D5E, 0x5CD7, 0x8D5F, 0x5CD8, 0x8D60, 0x5CD9, 0xD6C5, 0x5CDA, 0x8D61, + 0x5CDB, 0x8D62, 0x5CDC, 0x8D63, 0x5CDD, 0x8D64, 0x5CDE, 0x8D65, 0x5CDF, 0x8D66, 0x5CE0, 0x8D67, 0x5CE1, 0xCFBF, 0x5CE2, 0x8D68, + 0x5CE3, 0x8D69, 0x5CE4, 0xE1BD, 0x5CE5, 0xE1BF, 0x5CE6, 0xC2CD, 0x5CE7, 0x8D6A, 0x5CE8, 0xB6EB, 0x5CE9, 0x8D6B, 0x5CEA, 0xD3F8, + 0x5CEB, 0x8D6C, 0x5CEC, 0x8D6D, 0x5CED, 0xC7CD, 0x5CEE, 0x8D6E, 0x5CEF, 0x8D6F, 0x5CF0, 0xB7E5, 0x5CF1, 0x8D70, 0x5CF2, 0x8D71, + 0x5CF3, 0x8D72, 0x5CF4, 0x8D73, 0x5CF5, 0x8D74, 0x5CF6, 0x8D75, 0x5CF7, 0x8D76, 0x5CF8, 0x8D77, 0x5CF9, 0x8D78, 0x5CFA, 0x8D79, + 0x5CFB, 0xBEFE, 0x5CFC, 0x8D7A, 0x5CFD, 0x8D7B, 0x5CFE, 0x8D7C, 0x5CFF, 0x8D7D, 0x5D00, 0x8D7E, 0x5D01, 0x8D80, 0x5D02, 0xE1C0, + 0x5D03, 0xE1C1, 0x5D04, 0x8D81, 0x5D05, 0x8D82, 0x5D06, 0xE1C7, 0x5D07, 0xB3E7, 0x5D08, 0x8D83, 0x5D09, 0x8D84, 0x5D0A, 0x8D85, + 0x5D0B, 0x8D86, 0x5D0C, 0x8D87, 0x5D0D, 0x8D88, 0x5D0E, 0xC6E9, 0x5D0F, 0x8D89, 0x5D10, 0x8D8A, 0x5D11, 0x8D8B, 0x5D12, 0x8D8C, + 0x5D13, 0x8D8D, 0x5D14, 0xB4DE, 0x5D15, 0x8D8E, 0x5D16, 0xD1C2, 0x5D17, 0x8D8F, 0x5D18, 0x8D90, 0x5D19, 0x8D91, 0x5D1A, 0x8D92, + 0x5D1B, 0xE1C8, 0x5D1C, 0x8D93, 0x5D1D, 0x8D94, 0x5D1E, 0xE1C6, 0x5D1F, 0x8D95, 0x5D20, 0x8D96, 0x5D21, 0x8D97, 0x5D22, 0x8D98, + 0x5D23, 0x8D99, 0x5D24, 0xE1C5, 0x5D25, 0x8D9A, 0x5D26, 0xE1C3, 0x5D27, 0xE1C2, 0x5D28, 0x8D9B, 0x5D29, 0xB1C0, 0x5D2A, 0x8D9C, + 0x5D2B, 0x8D9D, 0x5D2C, 0x8D9E, 0x5D2D, 0xD5B8, 0x5D2E, 0xE1C4, 0x5D2F, 0x8D9F, 0x5D30, 0x8DA0, 0x5D31, 0x8DA1, 0x5D32, 0x8DA2, + 0x5D33, 0x8DA3, 0x5D34, 0xE1CB, 0x5D35, 0x8DA4, 0x5D36, 0x8DA5, 0x5D37, 0x8DA6, 0x5D38, 0x8DA7, 0x5D39, 0x8DA8, 0x5D3A, 0x8DA9, + 0x5D3B, 0x8DAA, 0x5D3C, 0x8DAB, 0x5D3D, 0xE1CC, 0x5D3E, 0xE1CA, 0x5D3F, 0x8DAC, 0x5D40, 0x8DAD, 0x5D41, 0x8DAE, 0x5D42, 0x8DAF, + 0x5D43, 0x8DB0, 0x5D44, 0x8DB1, 0x5D45, 0x8DB2, 0x5D46, 0x8DB3, 0x5D47, 0xEFFA, 0x5D48, 0x8DB4, 0x5D49, 0x8DB5, 0x5D4A, 0xE1D3, + 0x5D4B, 0xE1D2, 0x5D4C, 0xC7B6, 0x5D4D, 0x8DB6, 0x5D4E, 0x8DB7, 0x5D4F, 0x8DB8, 0x5D50, 0x8DB9, 0x5D51, 0x8DBA, 0x5D52, 0x8DBB, + 0x5D53, 0x8DBC, 0x5D54, 0x8DBD, 0x5D55, 0x8DBE, 0x5D56, 0x8DBF, 0x5D57, 0x8DC0, 0x5D58, 0xE1C9, 0x5D59, 0x8DC1, 0x5D5A, 0x8DC2, + 0x5D5B, 0xE1CE, 0x5D5C, 0x8DC3, 0x5D5D, 0xE1D0, 0x5D5E, 0x8DC4, 0x5D5F, 0x8DC5, 0x5D60, 0x8DC6, 0x5D61, 0x8DC7, 0x5D62, 0x8DC8, + 0x5D63, 0x8DC9, 0x5D64, 0x8DCA, 0x5D65, 0x8DCB, 0x5D66, 0x8DCC, 0x5D67, 0x8DCD, 0x5D68, 0x8DCE, 0x5D69, 0xE1D4, 0x5D6A, 0x8DCF, + 0x5D6B, 0xE1D1, 0x5D6C, 0xE1CD, 0x5D6D, 0x8DD0, 0x5D6E, 0x8DD1, 0x5D6F, 0xE1CF, 0x5D70, 0x8DD2, 0x5D71, 0x8DD3, 0x5D72, 0x8DD4, + 0x5D73, 0x8DD5, 0x5D74, 0xE1D5, 0x5D75, 0x8DD6, 0x5D76, 0x8DD7, 0x5D77, 0x8DD8, 0x5D78, 0x8DD9, 0x5D79, 0x8DDA, 0x5D7A, 0x8DDB, + 0x5D7B, 0x8DDC, 0x5D7C, 0x8DDD, 0x5D7D, 0x8DDE, 0x5D7E, 0x8DDF, 0x5D7F, 0x8DE0, 0x5D80, 0x8DE1, 0x5D81, 0x8DE2, 0x5D82, 0xE1D6, + 0x5D83, 0x8DE3, 0x5D84, 0x8DE4, 0x5D85, 0x8DE5, 0x5D86, 0x8DE6, 0x5D87, 0x8DE7, 0x5D88, 0x8DE8, 0x5D89, 0x8DE9, 0x5D8A, 0x8DEA, + 0x5D8B, 0x8DEB, 0x5D8C, 0x8DEC, 0x5D8D, 0x8DED, 0x5D8E, 0x8DEE, 0x5D8F, 0x8DEF, 0x5D90, 0x8DF0, 0x5D91, 0x8DF1, 0x5D92, 0x8DF2, + 0x5D93, 0x8DF3, 0x5D94, 0x8DF4, 0x5D95, 0x8DF5, 0x5D96, 0x8DF6, 0x5D97, 0x8DF7, 0x5D98, 0x8DF8, 0x5D99, 0xE1D7, 0x5D9A, 0x8DF9, + 0x5D9B, 0x8DFA, 0x5D9C, 0x8DFB, 0x5D9D, 0xE1D8, 0x5D9E, 0x8DFC, 0x5D9F, 0x8DFD, 0x5DA0, 0x8DFE, 0x5DA1, 0x8E40, 0x5DA2, 0x8E41, + 0x5DA3, 0x8E42, 0x5DA4, 0x8E43, 0x5DA5, 0x8E44, 0x5DA6, 0x8E45, 0x5DA7, 0x8E46, 0x5DA8, 0x8E47, 0x5DA9, 0x8E48, 0x5DAA, 0x8E49, + 0x5DAB, 0x8E4A, 0x5DAC, 0x8E4B, 0x5DAD, 0x8E4C, 0x5DAE, 0x8E4D, 0x5DAF, 0x8E4E, 0x5DB0, 0x8E4F, 0x5DB1, 0x8E50, 0x5DB2, 0x8E51, + 0x5DB3, 0x8E52, 0x5DB4, 0x8E53, 0x5DB5, 0x8E54, 0x5DB6, 0x8E55, 0x5DB7, 0xE1DA, 0x5DB8, 0x8E56, 0x5DB9, 0x8E57, 0x5DBA, 0x8E58, + 0x5DBB, 0x8E59, 0x5DBC, 0x8E5A, 0x5DBD, 0x8E5B, 0x5DBE, 0x8E5C, 0x5DBF, 0x8E5D, 0x5DC0, 0x8E5E, 0x5DC1, 0x8E5F, 0x5DC2, 0x8E60, + 0x5DC3, 0x8E61, 0x5DC4, 0x8E62, 0x5DC5, 0xE1DB, 0x5DC6, 0x8E63, 0x5DC7, 0x8E64, 0x5DC8, 0x8E65, 0x5DC9, 0x8E66, 0x5DCA, 0x8E67, + 0x5DCB, 0x8E68, 0x5DCC, 0x8E69, 0x5DCD, 0xCEA1, 0x5DCE, 0x8E6A, 0x5DCF, 0x8E6B, 0x5DD0, 0x8E6C, 0x5DD1, 0x8E6D, 0x5DD2, 0x8E6E, + 0x5DD3, 0x8E6F, 0x5DD4, 0x8E70, 0x5DD5, 0x8E71, 0x5DD6, 0x8E72, 0x5DD7, 0x8E73, 0x5DD8, 0x8E74, 0x5DD9, 0x8E75, 0x5DDA, 0x8E76, + 0x5DDB, 0xE7DD, 0x5DDC, 0x8E77, 0x5DDD, 0xB4A8, 0x5DDE, 0xD6DD, 0x5DDF, 0x8E78, 0x5DE0, 0x8E79, 0x5DE1, 0xD1B2, 0x5DE2, 0xB3B2, + 0x5DE3, 0x8E7A, 0x5DE4, 0x8E7B, 0x5DE5, 0xB9A4, 0x5DE6, 0xD7F3, 0x5DE7, 0xC7C9, 0x5DE8, 0xBEDE, 0x5DE9, 0xB9AE, 0x5DEA, 0x8E7C, + 0x5DEB, 0xCED7, 0x5DEC, 0x8E7D, 0x5DED, 0x8E7E, 0x5DEE, 0xB2EE, 0x5DEF, 0xDBCF, 0x5DF0, 0x8E80, 0x5DF1, 0xBCBA, 0x5DF2, 0xD2D1, + 0x5DF3, 0xCBC8, 0x5DF4, 0xB0CD, 0x5DF5, 0x8E81, 0x5DF6, 0x8E82, 0x5DF7, 0xCFEF, 0x5DF8, 0x8E83, 0x5DF9, 0x8E84, 0x5DFA, 0x8E85, + 0x5DFB, 0x8E86, 0x5DFC, 0x8E87, 0x5DFD, 0xD9E3, 0x5DFE, 0xBDED, 0x5DFF, 0x8E88, 0x5E00, 0x8E89, 0x5E01, 0xB1D2, 0x5E02, 0xCAD0, + 0x5E03, 0xB2BC, 0x5E04, 0x8E8A, 0x5E05, 0xCBA7, 0x5E06, 0xB7AB, 0x5E07, 0x8E8B, 0x5E08, 0xCAA6, 0x5E09, 0x8E8C, 0x5E0A, 0x8E8D, + 0x5E0B, 0x8E8E, 0x5E0C, 0xCFA3, 0x5E0D, 0x8E8F, 0x5E0E, 0x8E90, 0x5E0F, 0xE0F8, 0x5E10, 0xD5CA, 0x5E11, 0xE0FB, 0x5E12, 0x8E91, + 0x5E13, 0x8E92, 0x5E14, 0xE0FA, 0x5E15, 0xC5C1, 0x5E16, 0xCCFB, 0x5E17, 0x8E93, 0x5E18, 0xC1B1, 0x5E19, 0xE0F9, 0x5E1A, 0xD6E3, + 0x5E1B, 0xB2AF, 0x5E1C, 0xD6C4, 0x5E1D, 0xB5DB, 0x5E1E, 0x8E94, 0x5E1F, 0x8E95, 0x5E20, 0x8E96, 0x5E21, 0x8E97, 0x5E22, 0x8E98, + 0x5E23, 0x8E99, 0x5E24, 0x8E9A, 0x5E25, 0x8E9B, 0x5E26, 0xB4F8, 0x5E27, 0xD6A1, 0x5E28, 0x8E9C, 0x5E29, 0x8E9D, 0x5E2A, 0x8E9E, + 0x5E2B, 0x8E9F, 0x5E2C, 0x8EA0, 0x5E2D, 0xCFAF, 0x5E2E, 0xB0EF, 0x5E2F, 0x8EA1, 0x5E30, 0x8EA2, 0x5E31, 0xE0FC, 0x5E32, 0x8EA3, + 0x5E33, 0x8EA4, 0x5E34, 0x8EA5, 0x5E35, 0x8EA6, 0x5E36, 0x8EA7, 0x5E37, 0xE1A1, 0x5E38, 0xB3A3, 0x5E39, 0x8EA8, 0x5E3A, 0x8EA9, + 0x5E3B, 0xE0FD, 0x5E3C, 0xE0FE, 0x5E3D, 0xC3B1, 0x5E3E, 0x8EAA, 0x5E3F, 0x8EAB, 0x5E40, 0x8EAC, 0x5E41, 0x8EAD, 0x5E42, 0xC3DD, + 0x5E43, 0x8EAE, 0x5E44, 0xE1A2, 0x5E45, 0xB7F9, 0x5E46, 0x8EAF, 0x5E47, 0x8EB0, 0x5E48, 0x8EB1, 0x5E49, 0x8EB2, 0x5E4A, 0x8EB3, + 0x5E4B, 0x8EB4, 0x5E4C, 0xBBCF, 0x5E4D, 0x8EB5, 0x5E4E, 0x8EB6, 0x5E4F, 0x8EB7, 0x5E50, 0x8EB8, 0x5E51, 0x8EB9, 0x5E52, 0x8EBA, + 0x5E53, 0x8EBB, 0x5E54, 0xE1A3, 0x5E55, 0xC4BB, 0x5E56, 0x8EBC, 0x5E57, 0x8EBD, 0x5E58, 0x8EBE, 0x5E59, 0x8EBF, 0x5E5A, 0x8EC0, + 0x5E5B, 0xE1A4, 0x5E5C, 0x8EC1, 0x5E5D, 0x8EC2, 0x5E5E, 0xE1A5, 0x5E5F, 0x8EC3, 0x5E60, 0x8EC4, 0x5E61, 0xE1A6, 0x5E62, 0xB4B1, + 0x5E63, 0x8EC5, 0x5E64, 0x8EC6, 0x5E65, 0x8EC7, 0x5E66, 0x8EC8, 0x5E67, 0x8EC9, 0x5E68, 0x8ECA, 0x5E69, 0x8ECB, 0x5E6A, 0x8ECC, + 0x5E6B, 0x8ECD, 0x5E6C, 0x8ECE, 0x5E6D, 0x8ECF, 0x5E6E, 0x8ED0, 0x5E6F, 0x8ED1, 0x5E70, 0x8ED2, 0x5E71, 0x8ED3, 0x5E72, 0xB8C9, + 0x5E73, 0xC6BD, 0x5E74, 0xC4EA, 0x5E75, 0x8ED4, 0x5E76, 0xB2A2, 0x5E77, 0x8ED5, 0x5E78, 0xD0D2, 0x5E79, 0x8ED6, 0x5E7A, 0xE7DB, + 0x5E7B, 0xBBC3, 0x5E7C, 0xD3D7, 0x5E7D, 0xD3C4, 0x5E7E, 0x8ED7, 0x5E7F, 0xB9E3, 0x5E80, 0xE2CF, 0x5E81, 0x8ED8, 0x5E82, 0x8ED9, + 0x5E83, 0x8EDA, 0x5E84, 0xD7AF, 0x5E85, 0x8EDB, 0x5E86, 0xC7EC, 0x5E87, 0xB1D3, 0x5E88, 0x8EDC, 0x5E89, 0x8EDD, 0x5E8A, 0xB4B2, + 0x5E8B, 0xE2D1, 0x5E8C, 0x8EDE, 0x5E8D, 0x8EDF, 0x5E8E, 0x8EE0, 0x5E8F, 0xD0F2, 0x5E90, 0xC2AE, 0x5E91, 0xE2D0, 0x5E92, 0x8EE1, + 0x5E93, 0xBFE2, 0x5E94, 0xD3A6, 0x5E95, 0xB5D7, 0x5E96, 0xE2D2, 0x5E97, 0xB5EA, 0x5E98, 0x8EE2, 0x5E99, 0xC3ED, 0x5E9A, 0xB8FD, + 0x5E9B, 0x8EE3, 0x5E9C, 0xB8AE, 0x5E9D, 0x8EE4, 0x5E9E, 0xC5D3, 0x5E9F, 0xB7CF, 0x5EA0, 0xE2D4, 0x5EA1, 0x8EE5, 0x5EA2, 0x8EE6, + 0x5EA3, 0x8EE7, 0x5EA4, 0x8EE8, 0x5EA5, 0xE2D3, 0x5EA6, 0xB6C8, 0x5EA7, 0xD7F9, 0x5EA8, 0x8EE9, 0x5EA9, 0x8EEA, 0x5EAA, 0x8EEB, + 0x5EAB, 0x8EEC, 0x5EAC, 0x8EED, 0x5EAD, 0xCDA5, 0x5EAE, 0x8EEE, 0x5EAF, 0x8EEF, 0x5EB0, 0x8EF0, 0x5EB1, 0x8EF1, 0x5EB2, 0x8EF2, + 0x5EB3, 0xE2D8, 0x5EB4, 0x8EF3, 0x5EB5, 0xE2D6, 0x5EB6, 0xCAFC, 0x5EB7, 0xBFB5, 0x5EB8, 0xD3B9, 0x5EB9, 0xE2D5, 0x5EBA, 0x8EF4, + 0x5EBB, 0x8EF5, 0x5EBC, 0x8EF6, 0x5EBD, 0x8EF7, 0x5EBE, 0xE2D7, 0x5EBF, 0x8EF8, 0x5EC0, 0x8EF9, 0x5EC1, 0x8EFA, 0x5EC2, 0x8EFB, + 0x5EC3, 0x8EFC, 0x5EC4, 0x8EFD, 0x5EC5, 0x8EFE, 0x5EC6, 0x8F40, 0x5EC7, 0x8F41, 0x5EC8, 0x8F42, 0x5EC9, 0xC1AE, 0x5ECA, 0xC0C8, + 0x5ECB, 0x8F43, 0x5ECC, 0x8F44, 0x5ECD, 0x8F45, 0x5ECE, 0x8F46, 0x5ECF, 0x8F47, 0x5ED0, 0x8F48, 0x5ED1, 0xE2DB, 0x5ED2, 0xE2DA, + 0x5ED3, 0xC0AA, 0x5ED4, 0x8F49, 0x5ED5, 0x8F4A, 0x5ED6, 0xC1CE, 0x5ED7, 0x8F4B, 0x5ED8, 0x8F4C, 0x5ED9, 0x8F4D, 0x5EDA, 0x8F4E, + 0x5EDB, 0xE2DC, 0x5EDC, 0x8F4F, 0x5EDD, 0x8F50, 0x5EDE, 0x8F51, 0x5EDF, 0x8F52, 0x5EE0, 0x8F53, 0x5EE1, 0x8F54, 0x5EE2, 0x8F55, + 0x5EE3, 0x8F56, 0x5EE4, 0x8F57, 0x5EE5, 0x8F58, 0x5EE6, 0x8F59, 0x5EE7, 0x8F5A, 0x5EE8, 0xE2DD, 0x5EE9, 0x8F5B, 0x5EEA, 0xE2DE, + 0x5EEB, 0x8F5C, 0x5EEC, 0x8F5D, 0x5EED, 0x8F5E, 0x5EEE, 0x8F5F, 0x5EEF, 0x8F60, 0x5EF0, 0x8F61, 0x5EF1, 0x8F62, 0x5EF2, 0x8F63, + 0x5EF3, 0x8F64, 0x5EF4, 0xDBC8, 0x5EF5, 0x8F65, 0x5EF6, 0xD1D3, 0x5EF7, 0xCDA2, 0x5EF8, 0x8F66, 0x5EF9, 0x8F67, 0x5EFA, 0xBDA8, + 0x5EFB, 0x8F68, 0x5EFC, 0x8F69, 0x5EFD, 0x8F6A, 0x5EFE, 0xDEC3, 0x5EFF, 0xD8A5, 0x5F00, 0xBFAA, 0x5F01, 0xDBCD, 0x5F02, 0xD2EC, + 0x5F03, 0xC6FA, 0x5F04, 0xC5AA, 0x5F05, 0x8F6B, 0x5F06, 0x8F6C, 0x5F07, 0x8F6D, 0x5F08, 0xDEC4, 0x5F09, 0x8F6E, 0x5F0A, 0xB1D7, + 0x5F0B, 0xDFAE, 0x5F0C, 0x8F6F, 0x5F0D, 0x8F70, 0x5F0E, 0x8F71, 0x5F0F, 0xCABD, 0x5F10, 0x8F72, 0x5F11, 0xDFB1, 0x5F12, 0x8F73, + 0x5F13, 0xB9AD, 0x5F14, 0x8F74, 0x5F15, 0xD2FD, 0x5F16, 0x8F75, 0x5F17, 0xB8A5, 0x5F18, 0xBAEB, 0x5F19, 0x8F76, 0x5F1A, 0x8F77, + 0x5F1B, 0xB3DA, 0x5F1C, 0x8F78, 0x5F1D, 0x8F79, 0x5F1E, 0x8F7A, 0x5F1F, 0xB5DC, 0x5F20, 0xD5C5, 0x5F21, 0x8F7B, 0x5F22, 0x8F7C, + 0x5F23, 0x8F7D, 0x5F24, 0x8F7E, 0x5F25, 0xC3D6, 0x5F26, 0xCFD2, 0x5F27, 0xBBA1, 0x5F28, 0x8F80, 0x5F29, 0xE5F3, 0x5F2A, 0xE5F2, + 0x5F2B, 0x8F81, 0x5F2C, 0x8F82, 0x5F2D, 0xE5F4, 0x5F2E, 0x8F83, 0x5F2F, 0xCDE4, 0x5F30, 0x8F84, 0x5F31, 0xC8F5, 0x5F32, 0x8F85, + 0x5F33, 0x8F86, 0x5F34, 0x8F87, 0x5F35, 0x8F88, 0x5F36, 0x8F89, 0x5F37, 0x8F8A, 0x5F38, 0x8F8B, 0x5F39, 0xB5AF, 0x5F3A, 0xC7BF, + 0x5F3B, 0x8F8C, 0x5F3C, 0xE5F6, 0x5F3D, 0x8F8D, 0x5F3E, 0x8F8E, 0x5F3F, 0x8F8F, 0x5F40, 0xECB0, 0x5F41, 0x8F90, 0x5F42, 0x8F91, + 0x5F43, 0x8F92, 0x5F44, 0x8F93, 0x5F45, 0x8F94, 0x5F46, 0x8F95, 0x5F47, 0x8F96, 0x5F48, 0x8F97, 0x5F49, 0x8F98, 0x5F4A, 0x8F99, + 0x5F4B, 0x8F9A, 0x5F4C, 0x8F9B, 0x5F4D, 0x8F9C, 0x5F4E, 0x8F9D, 0x5F4F, 0x8F9E, 0x5F50, 0xE5E6, 0x5F51, 0x8F9F, 0x5F52, 0xB9E9, + 0x5F53, 0xB5B1, 0x5F54, 0x8FA0, 0x5F55, 0xC2BC, 0x5F56, 0xE5E8, 0x5F57, 0xE5E7, 0x5F58, 0xE5E9, 0x5F59, 0x8FA1, 0x5F5A, 0x8FA2, + 0x5F5B, 0x8FA3, 0x5F5C, 0x8FA4, 0x5F5D, 0xD2CD, 0x5F5E, 0x8FA5, 0x5F5F, 0x8FA6, 0x5F60, 0x8FA7, 0x5F61, 0xE1EA, 0x5F62, 0xD0CE, + 0x5F63, 0x8FA8, 0x5F64, 0xCDAE, 0x5F65, 0x8FA9, 0x5F66, 0xD1E5, 0x5F67, 0x8FAA, 0x5F68, 0x8FAB, 0x5F69, 0xB2CA, 0x5F6A, 0xB1EB, + 0x5F6B, 0x8FAC, 0x5F6C, 0xB1F2, 0x5F6D, 0xC5ED, 0x5F6E, 0x8FAD, 0x5F6F, 0x8FAE, 0x5F70, 0xD5C3, 0x5F71, 0xD3B0, 0x5F72, 0x8FAF, + 0x5F73, 0xE1DC, 0x5F74, 0x8FB0, 0x5F75, 0x8FB1, 0x5F76, 0x8FB2, 0x5F77, 0xE1DD, 0x5F78, 0x8FB3, 0x5F79, 0xD2DB, 0x5F7A, 0x8FB4, + 0x5F7B, 0xB3B9, 0x5F7C, 0xB1CB, 0x5F7D, 0x8FB5, 0x5F7E, 0x8FB6, 0x5F7F, 0x8FB7, 0x5F80, 0xCDF9, 0x5F81, 0xD5F7, 0x5F82, 0xE1DE, + 0x5F83, 0x8FB8, 0x5F84, 0xBEB6, 0x5F85, 0xB4FD, 0x5F86, 0x8FB9, 0x5F87, 0xE1DF, 0x5F88, 0xBADC, 0x5F89, 0xE1E0, 0x5F8A, 0xBBB2, + 0x5F8B, 0xC2C9, 0x5F8C, 0xE1E1, 0x5F8D, 0x8FBA, 0x5F8E, 0x8FBB, 0x5F8F, 0x8FBC, 0x5F90, 0xD0EC, 0x5F91, 0x8FBD, 0x5F92, 0xCDBD, + 0x5F93, 0x8FBE, 0x5F94, 0x8FBF, 0x5F95, 0xE1E2, 0x5F96, 0x8FC0, 0x5F97, 0xB5C3, 0x5F98, 0xC5C7, 0x5F99, 0xE1E3, 0x5F9A, 0x8FC1, + 0x5F9B, 0x8FC2, 0x5F9C, 0xE1E4, 0x5F9D, 0x8FC3, 0x5F9E, 0x8FC4, 0x5F9F, 0x8FC5, 0x5FA0, 0x8FC6, 0x5FA1, 0xD3F9, 0x5FA2, 0x8FC7, + 0x5FA3, 0x8FC8, 0x5FA4, 0x8FC9, 0x5FA5, 0x8FCA, 0x5FA6, 0x8FCB, 0x5FA7, 0x8FCC, 0x5FA8, 0xE1E5, 0x5FA9, 0x8FCD, 0x5FAA, 0xD1AD, + 0x5FAB, 0x8FCE, 0x5FAC, 0x8FCF, 0x5FAD, 0xE1E6, 0x5FAE, 0xCEA2, 0x5FAF, 0x8FD0, 0x5FB0, 0x8FD1, 0x5FB1, 0x8FD2, 0x5FB2, 0x8FD3, + 0x5FB3, 0x8FD4, 0x5FB4, 0x8FD5, 0x5FB5, 0xE1E7, 0x5FB6, 0x8FD6, 0x5FB7, 0xB5C2, 0x5FB8, 0x8FD7, 0x5FB9, 0x8FD8, 0x5FBA, 0x8FD9, + 0x5FBB, 0x8FDA, 0x5FBC, 0xE1E8, 0x5FBD, 0xBBD5, 0x5FBE, 0x8FDB, 0x5FBF, 0x8FDC, 0x5FC0, 0x8FDD, 0x5FC1, 0x8FDE, 0x5FC2, 0x8FDF, + 0x5FC3, 0xD0C4, 0x5FC4, 0xE2E0, 0x5FC5, 0xB1D8, 0x5FC6, 0xD2E4, 0x5FC7, 0x8FE0, 0x5FC8, 0x8FE1, 0x5FC9, 0xE2E1, 0x5FCA, 0x8FE2, + 0x5FCB, 0x8FE3, 0x5FCC, 0xBCC9, 0x5FCD, 0xC8CC, 0x5FCE, 0x8FE4, 0x5FCF, 0xE2E3, 0x5FD0, 0xECFE, 0x5FD1, 0xECFD, 0x5FD2, 0xDFAF, + 0x5FD3, 0x8FE5, 0x5FD4, 0x8FE6, 0x5FD5, 0x8FE7, 0x5FD6, 0xE2E2, 0x5FD7, 0xD6BE, 0x5FD8, 0xCDFC, 0x5FD9, 0xC3A6, 0x5FDA, 0x8FE8, + 0x5FDB, 0x8FE9, 0x5FDC, 0x8FEA, 0x5FDD, 0xE3C3, 0x5FDE, 0x8FEB, 0x5FDF, 0x8FEC, 0x5FE0, 0xD6D2, 0x5FE1, 0xE2E7, 0x5FE2, 0x8FED, + 0x5FE3, 0x8FEE, 0x5FE4, 0xE2E8, 0x5FE5, 0x8FEF, 0x5FE6, 0x8FF0, 0x5FE7, 0xD3C7, 0x5FE8, 0x8FF1, 0x5FE9, 0x8FF2, 0x5FEA, 0xE2EC, + 0x5FEB, 0xBFEC, 0x5FEC, 0x8FF3, 0x5FED, 0xE2ED, 0x5FEE, 0xE2E5, 0x5FEF, 0x8FF4, 0x5FF0, 0x8FF5, 0x5FF1, 0xB3C0, 0x5FF2, 0x8FF6, + 0x5FF3, 0x8FF7, 0x5FF4, 0x8FF8, 0x5FF5, 0xC4EE, 0x5FF6, 0x8FF9, 0x5FF7, 0x8FFA, 0x5FF8, 0xE2EE, 0x5FF9, 0x8FFB, 0x5FFA, 0x8FFC, + 0x5FFB, 0xD0C3, 0x5FFC, 0x8FFD, 0x5FFD, 0xBAF6, 0x5FFE, 0xE2E9, 0x5FFF, 0xB7DE, 0x6000, 0xBBB3, 0x6001, 0xCCAC, 0x6002, 0xCBCB, + 0x6003, 0xE2E4, 0x6004, 0xE2E6, 0x6005, 0xE2EA, 0x6006, 0xE2EB, 0x6007, 0x8FFE, 0x6008, 0x9040, 0x6009, 0x9041, 0x600A, 0xE2F7, + 0x600B, 0x9042, 0x600C, 0x9043, 0x600D, 0xE2F4, 0x600E, 0xD4F5, 0x600F, 0xE2F3, 0x6010, 0x9044, 0x6011, 0x9045, 0x6012, 0xC5AD, + 0x6013, 0x9046, 0x6014, 0xD5FA, 0x6015, 0xC5C2, 0x6016, 0xB2C0, 0x6017, 0x9047, 0x6018, 0x9048, 0x6019, 0xE2EF, 0x601A, 0x9049, + 0x601B, 0xE2F2, 0x601C, 0xC1AF, 0x601D, 0xCBBC, 0x601E, 0x904A, 0x601F, 0x904B, 0x6020, 0xB5A1, 0x6021, 0xE2F9, 0x6022, 0x904C, + 0x6023, 0x904D, 0x6024, 0x904E, 0x6025, 0xBCB1, 0x6026, 0xE2F1, 0x6027, 0xD0D4, 0x6028, 0xD4B9, 0x6029, 0xE2F5, 0x602A, 0xB9D6, + 0x602B, 0xE2F6, 0x602C, 0x904F, 0x602D, 0x9050, 0x602E, 0x9051, 0x602F, 0xC7D3, 0x6030, 0x9052, 0x6031, 0x9053, 0x6032, 0x9054, + 0x6033, 0x9055, 0x6034, 0x9056, 0x6035, 0xE2F0, 0x6036, 0x9057, 0x6037, 0x9058, 0x6038, 0x9059, 0x6039, 0x905A, 0x603A, 0x905B, + 0x603B, 0xD7DC, 0x603C, 0xEDA1, 0x603D, 0x905C, 0x603E, 0x905D, 0x603F, 0xE2F8, 0x6040, 0x905E, 0x6041, 0xEDA5, 0x6042, 0xE2FE, + 0x6043, 0xCAD1, 0x6044, 0x905F, 0x6045, 0x9060, 0x6046, 0x9061, 0x6047, 0x9062, 0x6048, 0x9063, 0x6049, 0x9064, 0x604A, 0x9065, + 0x604B, 0xC1B5, 0x604C, 0x9066, 0x604D, 0xBBD0, 0x604E, 0x9067, 0x604F, 0x9068, 0x6050, 0xBFD6, 0x6051, 0x9069, 0x6052, 0xBAE3, + 0x6053, 0x906A, 0x6054, 0x906B, 0x6055, 0xCBA1, 0x6056, 0x906C, 0x6057, 0x906D, 0x6058, 0x906E, 0x6059, 0xEDA6, 0x605A, 0xEDA3, + 0x605B, 0x906F, 0x605C, 0x9070, 0x605D, 0xEDA2, 0x605E, 0x9071, 0x605F, 0x9072, 0x6060, 0x9073, 0x6061, 0x9074, 0x6062, 0xBBD6, + 0x6063, 0xEDA7, 0x6064, 0xD0F4, 0x6065, 0x9075, 0x6066, 0x9076, 0x6067, 0xEDA4, 0x6068, 0xBADE, 0x6069, 0xB6F7, 0x606A, 0xE3A1, + 0x606B, 0xB6B2, 0x606C, 0xCCF1, 0x606D, 0xB9A7, 0x606E, 0x9077, 0x606F, 0xCFA2, 0x6070, 0xC7A1, 0x6071, 0x9078, 0x6072, 0x9079, + 0x6073, 0xBFD2, 0x6074, 0x907A, 0x6075, 0x907B, 0x6076, 0xB6F1, 0x6077, 0x907C, 0x6078, 0xE2FA, 0x6079, 0xE2FB, 0x607A, 0xE2FD, + 0x607B, 0xE2FC, 0x607C, 0xC4D5, 0x607D, 0xE3A2, 0x607E, 0x907D, 0x607F, 0xD3C1, 0x6080, 0x907E, 0x6081, 0x9080, 0x6082, 0x9081, + 0x6083, 0xE3A7, 0x6084, 0xC7C4, 0x6085, 0x9082, 0x6086, 0x9083, 0x6087, 0x9084, 0x6088, 0x9085, 0x6089, 0xCFA4, 0x608A, 0x9086, + 0x608B, 0x9087, 0x608C, 0xE3A9, 0x608D, 0xBAB7, 0x608E, 0x9088, 0x608F, 0x9089, 0x6090, 0x908A, 0x6091, 0x908B, 0x6092, 0xE3A8, + 0x6093, 0x908C, 0x6094, 0xBBDA, 0x6095, 0x908D, 0x6096, 0xE3A3, 0x6097, 0x908E, 0x6098, 0x908F, 0x6099, 0x9090, 0x609A, 0xE3A4, + 0x609B, 0xE3AA, 0x609C, 0x9091, 0x609D, 0xE3A6, 0x609E, 0x9092, 0x609F, 0xCEF2, 0x60A0, 0xD3C6, 0x60A1, 0x9093, 0x60A2, 0x9094, + 0x60A3, 0xBBBC, 0x60A4, 0x9095, 0x60A5, 0x9096, 0x60A6, 0xD4C3, 0x60A7, 0x9097, 0x60A8, 0xC4FA, 0x60A9, 0x9098, 0x60AA, 0x9099, + 0x60AB, 0xEDA8, 0x60AC, 0xD0FC, 0x60AD, 0xE3A5, 0x60AE, 0x909A, 0x60AF, 0xC3F5, 0x60B0, 0x909B, 0x60B1, 0xE3AD, 0x60B2, 0xB1AF, + 0x60B3, 0x909C, 0x60B4, 0xE3B2, 0x60B5, 0x909D, 0x60B6, 0x909E, 0x60B7, 0x909F, 0x60B8, 0xBCC2, 0x60B9, 0x90A0, 0x60BA, 0x90A1, + 0x60BB, 0xE3AC, 0x60BC, 0xB5BF, 0x60BD, 0x90A2, 0x60BE, 0x90A3, 0x60BF, 0x90A4, 0x60C0, 0x90A5, 0x60C1, 0x90A6, 0x60C2, 0x90A7, + 0x60C3, 0x90A8, 0x60C4, 0x90A9, 0x60C5, 0xC7E9, 0x60C6, 0xE3B0, 0x60C7, 0x90AA, 0x60C8, 0x90AB, 0x60C9, 0x90AC, 0x60CA, 0xBEAA, + 0x60CB, 0xCDEF, 0x60CC, 0x90AD, 0x60CD, 0x90AE, 0x60CE, 0x90AF, 0x60CF, 0x90B0, 0x60D0, 0x90B1, 0x60D1, 0xBBF3, 0x60D2, 0x90B2, + 0x60D3, 0x90B3, 0x60D4, 0x90B4, 0x60D5, 0xCCE8, 0x60D6, 0x90B5, 0x60D7, 0x90B6, 0x60D8, 0xE3AF, 0x60D9, 0x90B7, 0x60DA, 0xE3B1, + 0x60DB, 0x90B8, 0x60DC, 0xCFA7, 0x60DD, 0xE3AE, 0x60DE, 0x90B9, 0x60DF, 0xCEA9, 0x60E0, 0xBBDD, 0x60E1, 0x90BA, 0x60E2, 0x90BB, + 0x60E3, 0x90BC, 0x60E4, 0x90BD, 0x60E5, 0x90BE, 0x60E6, 0xB5EB, 0x60E7, 0xBEE5, 0x60E8, 0xB2D2, 0x60E9, 0xB3CD, 0x60EA, 0x90BF, + 0x60EB, 0xB1B9, 0x60EC, 0xE3AB, 0x60ED, 0xB2D1, 0x60EE, 0xB5AC, 0x60EF, 0xB9DF, 0x60F0, 0xB6E8, 0x60F1, 0x90C0, 0x60F2, 0x90C1, + 0x60F3, 0xCFEB, 0x60F4, 0xE3B7, 0x60F5, 0x90C2, 0x60F6, 0xBBCC, 0x60F7, 0x90C3, 0x60F8, 0x90C4, 0x60F9, 0xC8C7, 0x60FA, 0xD0CA, + 0x60FB, 0x90C5, 0x60FC, 0x90C6, 0x60FD, 0x90C7, 0x60FE, 0x90C8, 0x60FF, 0x90C9, 0x6100, 0xE3B8, 0x6101, 0xB3EE, 0x6102, 0x90CA, + 0x6103, 0x90CB, 0x6104, 0x90CC, 0x6105, 0x90CD, 0x6106, 0xEDA9, 0x6107, 0x90CE, 0x6108, 0xD3FA, 0x6109, 0xD3E4, 0x610A, 0x90CF, + 0x610B, 0x90D0, 0x610C, 0x90D1, 0x610D, 0xEDAA, 0x610E, 0xE3B9, 0x610F, 0xD2E2, 0x6110, 0x90D2, 0x6111, 0x90D3, 0x6112, 0x90D4, + 0x6113, 0x90D5, 0x6114, 0x90D6, 0x6115, 0xE3B5, 0x6116, 0x90D7, 0x6117, 0x90D8, 0x6118, 0x90D9, 0x6119, 0x90DA, 0x611A, 0xD3DE, + 0x611B, 0x90DB, 0x611C, 0x90DC, 0x611D, 0x90DD, 0x611E, 0x90DE, 0x611F, 0xB8D0, 0x6120, 0xE3B3, 0x6121, 0x90DF, 0x6122, 0x90E0, + 0x6123, 0xE3B6, 0x6124, 0xB7DF, 0x6125, 0x90E1, 0x6126, 0xE3B4, 0x6127, 0xC0A2, 0x6128, 0x90E2, 0x6129, 0x90E3, 0x612A, 0x90E4, + 0x612B, 0xE3BA, 0x612C, 0x90E5, 0x612D, 0x90E6, 0x612E, 0x90E7, 0x612F, 0x90E8, 0x6130, 0x90E9, 0x6131, 0x90EA, 0x6132, 0x90EB, + 0x6133, 0x90EC, 0x6134, 0x90ED, 0x6135, 0x90EE, 0x6136, 0x90EF, 0x6137, 0x90F0, 0x6138, 0x90F1, 0x6139, 0x90F2, 0x613A, 0x90F3, + 0x613B, 0x90F4, 0x613C, 0x90F5, 0x613D, 0x90F6, 0x613E, 0x90F7, 0x613F, 0xD4B8, 0x6140, 0x90F8, 0x6141, 0x90F9, 0x6142, 0x90FA, + 0x6143, 0x90FB, 0x6144, 0x90FC, 0x6145, 0x90FD, 0x6146, 0x90FE, 0x6147, 0x9140, 0x6148, 0xB4C8, 0x6149, 0x9141, 0x614A, 0xE3BB, + 0x614B, 0x9142, 0x614C, 0xBBC5, 0x614D, 0x9143, 0x614E, 0xC9F7, 0x614F, 0x9144, 0x6150, 0x9145, 0x6151, 0xC9E5, 0x6152, 0x9146, + 0x6153, 0x9147, 0x6154, 0x9148, 0x6155, 0xC4BD, 0x6156, 0x9149, 0x6157, 0x914A, 0x6158, 0x914B, 0x6159, 0x914C, 0x615A, 0x914D, + 0x615B, 0x914E, 0x615C, 0x914F, 0x615D, 0xEDAB, 0x615E, 0x9150, 0x615F, 0x9151, 0x6160, 0x9152, 0x6161, 0x9153, 0x6162, 0xC2FD, + 0x6163, 0x9154, 0x6164, 0x9155, 0x6165, 0x9156, 0x6166, 0x9157, 0x6167, 0xBBDB, 0x6168, 0xBFAE, 0x6169, 0x9158, 0x616A, 0x9159, + 0x616B, 0x915A, 0x616C, 0x915B, 0x616D, 0x915C, 0x616E, 0x915D, 0x616F, 0x915E, 0x6170, 0xCEBF, 0x6171, 0x915F, 0x6172, 0x9160, + 0x6173, 0x9161, 0x6174, 0x9162, 0x6175, 0xE3BC, 0x6176, 0x9163, 0x6177, 0xBFB6, 0x6178, 0x9164, 0x6179, 0x9165, 0x617A, 0x9166, + 0x617B, 0x9167, 0x617C, 0x9168, 0x617D, 0x9169, 0x617E, 0x916A, 0x617F, 0x916B, 0x6180, 0x916C, 0x6181, 0x916D, 0x6182, 0x916E, + 0x6183, 0x916F, 0x6184, 0x9170, 0x6185, 0x9171, 0x6186, 0x9172, 0x6187, 0x9173, 0x6188, 0x9174, 0x6189, 0x9175, 0x618A, 0x9176, + 0x618B, 0xB1EF, 0x618C, 0x9177, 0x618D, 0x9178, 0x618E, 0xD4F7, 0x618F, 0x9179, 0x6190, 0x917A, 0x6191, 0x917B, 0x6192, 0x917C, + 0x6193, 0x917D, 0x6194, 0xE3BE, 0x6195, 0x917E, 0x6196, 0x9180, 0x6197, 0x9181, 0x6198, 0x9182, 0x6199, 0x9183, 0x619A, 0x9184, + 0x619B, 0x9185, 0x619C, 0x9186, 0x619D, 0xEDAD, 0x619E, 0x9187, 0x619F, 0x9188, 0x61A0, 0x9189, 0x61A1, 0x918A, 0x61A2, 0x918B, + 0x61A3, 0x918C, 0x61A4, 0x918D, 0x61A5, 0x918E, 0x61A6, 0x918F, 0x61A7, 0xE3BF, 0x61A8, 0xBAA9, 0x61A9, 0xEDAC, 0x61AA, 0x9190, + 0x61AB, 0x9191, 0x61AC, 0xE3BD, 0x61AD, 0x9192, 0x61AE, 0x9193, 0x61AF, 0x9194, 0x61B0, 0x9195, 0x61B1, 0x9196, 0x61B2, 0x9197, + 0x61B3, 0x9198, 0x61B4, 0x9199, 0x61B5, 0x919A, 0x61B6, 0x919B, 0x61B7, 0xE3C0, 0x61B8, 0x919C, 0x61B9, 0x919D, 0x61BA, 0x919E, + 0x61BB, 0x919F, 0x61BC, 0x91A0, 0x61BD, 0x91A1, 0x61BE, 0xBAB6, 0x61BF, 0x91A2, 0x61C0, 0x91A3, 0x61C1, 0x91A4, 0x61C2, 0xB6AE, + 0x61C3, 0x91A5, 0x61C4, 0x91A6, 0x61C5, 0x91A7, 0x61C6, 0x91A8, 0x61C7, 0x91A9, 0x61C8, 0xD0B8, 0x61C9, 0x91AA, 0x61CA, 0xB0C3, + 0x61CB, 0xEDAE, 0x61CC, 0x91AB, 0x61CD, 0x91AC, 0x61CE, 0x91AD, 0x61CF, 0x91AE, 0x61D0, 0x91AF, 0x61D1, 0xEDAF, 0x61D2, 0xC0C1, + 0x61D3, 0x91B0, 0x61D4, 0xE3C1, 0x61D5, 0x91B1, 0x61D6, 0x91B2, 0x61D7, 0x91B3, 0x61D8, 0x91B4, 0x61D9, 0x91B5, 0x61DA, 0x91B6, + 0x61DB, 0x91B7, 0x61DC, 0x91B8, 0x61DD, 0x91B9, 0x61DE, 0x91BA, 0x61DF, 0x91BB, 0x61E0, 0x91BC, 0x61E1, 0x91BD, 0x61E2, 0x91BE, + 0x61E3, 0x91BF, 0x61E4, 0x91C0, 0x61E5, 0x91C1, 0x61E6, 0xC5B3, 0x61E7, 0x91C2, 0x61E8, 0x91C3, 0x61E9, 0x91C4, 0x61EA, 0x91C5, + 0x61EB, 0x91C6, 0x61EC, 0x91C7, 0x61ED, 0x91C8, 0x61EE, 0x91C9, 0x61EF, 0x91CA, 0x61F0, 0x91CB, 0x61F1, 0x91CC, 0x61F2, 0x91CD, + 0x61F3, 0x91CE, 0x61F4, 0x91CF, 0x61F5, 0xE3C2, 0x61F6, 0x91D0, 0x61F7, 0x91D1, 0x61F8, 0x91D2, 0x61F9, 0x91D3, 0x61FA, 0x91D4, + 0x61FB, 0x91D5, 0x61FC, 0x91D6, 0x61FD, 0x91D7, 0x61FE, 0x91D8, 0x61FF, 0xDCB2, 0x6200, 0x91D9, 0x6201, 0x91DA, 0x6202, 0x91DB, + 0x6203, 0x91DC, 0x6204, 0x91DD, 0x6205, 0x91DE, 0x6206, 0xEDB0, 0x6207, 0x91DF, 0x6208, 0xB8EA, 0x6209, 0x91E0, 0x620A, 0xCEEC, + 0x620B, 0xEAA7, 0x620C, 0xD0E7, 0x620D, 0xCAF9, 0x620E, 0xC8D6, 0x620F, 0xCFB7, 0x6210, 0xB3C9, 0x6211, 0xCED2, 0x6212, 0xBDE4, + 0x6213, 0x91E1, 0x6214, 0x91E2, 0x6215, 0xE3DE, 0x6216, 0xBBF2, 0x6217, 0xEAA8, 0x6218, 0xD5BD, 0x6219, 0x91E3, 0x621A, 0xC6DD, + 0x621B, 0xEAA9, 0x621C, 0x91E4, 0x621D, 0x91E5, 0x621E, 0x91E6, 0x621F, 0xEAAA, 0x6220, 0x91E7, 0x6221, 0xEAAC, 0x6222, 0xEAAB, + 0x6223, 0x91E8, 0x6224, 0xEAAE, 0x6225, 0xEAAD, 0x6226, 0x91E9, 0x6227, 0x91EA, 0x6228, 0x91EB, 0x6229, 0x91EC, 0x622A, 0xBDD8, + 0x622B, 0x91ED, 0x622C, 0xEAAF, 0x622D, 0x91EE, 0x622E, 0xC2BE, 0x622F, 0x91EF, 0x6230, 0x91F0, 0x6231, 0x91F1, 0x6232, 0x91F2, + 0x6233, 0xB4C1, 0x6234, 0xB4F7, 0x6235, 0x91F3, 0x6236, 0x91F4, 0x6237, 0xBBA7, 0x6238, 0x91F5, 0x6239, 0x91F6, 0x623A, 0x91F7, + 0x623B, 0x91F8, 0x623C, 0x91F9, 0x623D, 0xECE6, 0x623E, 0xECE5, 0x623F, 0xB7BF, 0x6240, 0xCBF9, 0x6241, 0xB1E2, 0x6242, 0x91FA, + 0x6243, 0xECE7, 0x6244, 0x91FB, 0x6245, 0x91FC, 0x6246, 0x91FD, 0x6247, 0xC9C8, 0x6248, 0xECE8, 0x6249, 0xECE9, 0x624A, 0x91FE, + 0x624B, 0xCAD6, 0x624C, 0xDED0, 0x624D, 0xB2C5, 0x624E, 0xD4FA, 0x624F, 0x9240, 0x6250, 0x9241, 0x6251, 0xC6CB, 0x6252, 0xB0C7, + 0x6253, 0xB4F2, 0x6254, 0xC8D3, 0x6255, 0x9242, 0x6256, 0x9243, 0x6257, 0x9244, 0x6258, 0xCDD0, 0x6259, 0x9245, 0x625A, 0x9246, + 0x625B, 0xBFB8, 0x625C, 0x9247, 0x625D, 0x9248, 0x625E, 0x9249, 0x625F, 0x924A, 0x6260, 0x924B, 0x6261, 0x924C, 0x6262, 0x924D, + 0x6263, 0xBFDB, 0x6264, 0x924E, 0x6265, 0x924F, 0x6266, 0xC7A4, 0x6267, 0xD6B4, 0x6268, 0x9250, 0x6269, 0xC0A9, 0x626A, 0xDED1, + 0x626B, 0xC9A8, 0x626C, 0xD1EF, 0x626D, 0xC5A4, 0x626E, 0xB0E7, 0x626F, 0xB3B6, 0x6270, 0xC8C5, 0x6271, 0x9251, 0x6272, 0x9252, + 0x6273, 0xB0E2, 0x6274, 0x9253, 0x6275, 0x9254, 0x6276, 0xB7F6, 0x6277, 0x9255, 0x6278, 0x9256, 0x6279, 0xC5FA, 0x627A, 0x9257, + 0x627B, 0x9258, 0x627C, 0xB6F3, 0x627D, 0x9259, 0x627E, 0xD5D2, 0x627F, 0xB3D0, 0x6280, 0xBCBC, 0x6281, 0x925A, 0x6282, 0x925B, + 0x6283, 0x925C, 0x6284, 0xB3AD, 0x6285, 0x925D, 0x6286, 0x925E, 0x6287, 0x925F, 0x6288, 0x9260, 0x6289, 0xBEF1, 0x628A, 0xB0D1, + 0x628B, 0x9261, 0x628C, 0x9262, 0x628D, 0x9263, 0x628E, 0x9264, 0x628F, 0x9265, 0x6290, 0x9266, 0x6291, 0xD2D6, 0x6292, 0xCAE3, + 0x6293, 0xD7A5, 0x6294, 0x9267, 0x6295, 0xCDB6, 0x6296, 0xB6B6, 0x6297, 0xBFB9, 0x6298, 0xD5DB, 0x6299, 0x9268, 0x629A, 0xB8A7, + 0x629B, 0xC5D7, 0x629C, 0x9269, 0x629D, 0x926A, 0x629E, 0x926B, 0x629F, 0xDED2, 0x62A0, 0xBFD9, 0x62A1, 0xC2D5, 0x62A2, 0xC7C0, + 0x62A3, 0x926C, 0x62A4, 0xBBA4, 0x62A5, 0xB1A8, 0x62A6, 0x926D, 0x62A7, 0x926E, 0x62A8, 0xC5EA, 0x62A9, 0x926F, 0x62AA, 0x9270, + 0x62AB, 0xC5FB, 0x62AC, 0xCCA7, 0x62AD, 0x9271, 0x62AE, 0x9272, 0x62AF, 0x9273, 0x62B0, 0x9274, 0x62B1, 0xB1A7, 0x62B2, 0x9275, + 0x62B3, 0x9276, 0x62B4, 0x9277, 0x62B5, 0xB5D6, 0x62B6, 0x9278, 0x62B7, 0x9279, 0x62B8, 0x927A, 0x62B9, 0xC4A8, 0x62BA, 0x927B, + 0x62BB, 0xDED3, 0x62BC, 0xD1BA, 0x62BD, 0xB3E9, 0x62BE, 0x927C, 0x62BF, 0xC3F2, 0x62C0, 0x927D, 0x62C1, 0x927E, 0x62C2, 0xB7F7, + 0x62C3, 0x9280, 0x62C4, 0xD6F4, 0x62C5, 0xB5A3, 0x62C6, 0xB2F0, 0x62C7, 0xC4B4, 0x62C8, 0xC4E9, 0x62C9, 0xC0AD, 0x62CA, 0xDED4, + 0x62CB, 0x9281, 0x62CC, 0xB0E8, 0x62CD, 0xC5C4, 0x62CE, 0xC1E0, 0x62CF, 0x9282, 0x62D0, 0xB9D5, 0x62D1, 0x9283, 0x62D2, 0xBEDC, + 0x62D3, 0xCDD8, 0x62D4, 0xB0CE, 0x62D5, 0x9284, 0x62D6, 0xCDCF, 0x62D7, 0xDED6, 0x62D8, 0xBED0, 0x62D9, 0xD7BE, 0x62DA, 0xDED5, + 0x62DB, 0xD5D0, 0x62DC, 0xB0DD, 0x62DD, 0x9285, 0x62DE, 0x9286, 0x62DF, 0xC4E2, 0x62E0, 0x9287, 0x62E1, 0x9288, 0x62E2, 0xC2A3, + 0x62E3, 0xBCF0, 0x62E4, 0x9289, 0x62E5, 0xD3B5, 0x62E6, 0xC0B9, 0x62E7, 0xC5A1, 0x62E8, 0xB2A6, 0x62E9, 0xD4F1, 0x62EA, 0x928A, + 0x62EB, 0x928B, 0x62EC, 0xC0A8, 0x62ED, 0xCAC3, 0x62EE, 0xDED7, 0x62EF, 0xD5FC, 0x62F0, 0x928C, 0x62F1, 0xB9B0, 0x62F2, 0x928D, + 0x62F3, 0xC8AD, 0x62F4, 0xCBA9, 0x62F5, 0x928E, 0x62F6, 0xDED9, 0x62F7, 0xBFBD, 0x62F8, 0x928F, 0x62F9, 0x9290, 0x62FA, 0x9291, + 0x62FB, 0x9292, 0x62FC, 0xC6B4, 0x62FD, 0xD7A7, 0x62FE, 0xCAB0, 0x62FF, 0xC4C3, 0x6300, 0x9293, 0x6301, 0xB3D6, 0x6302, 0xB9D2, + 0x6303, 0x9294, 0x6304, 0x9295, 0x6305, 0x9296, 0x6306, 0x9297, 0x6307, 0xD6B8, 0x6308, 0xEAFC, 0x6309, 0xB0B4, 0x630A, 0x9298, + 0x630B, 0x9299, 0x630C, 0x929A, 0x630D, 0x929B, 0x630E, 0xBFE6, 0x630F, 0x929C, 0x6310, 0x929D, 0x6311, 0xCCF4, 0x6312, 0x929E, + 0x6313, 0x929F, 0x6314, 0x92A0, 0x6315, 0x92A1, 0x6316, 0xCDDA, 0x6317, 0x92A2, 0x6318, 0x92A3, 0x6319, 0x92A4, 0x631A, 0xD6BF, + 0x631B, 0xC2CE, 0x631C, 0x92A5, 0x631D, 0xCECE, 0x631E, 0xCCA2, 0x631F, 0xD0AE, 0x6320, 0xC4D3, 0x6321, 0xB5B2, 0x6322, 0xDED8, + 0x6323, 0xD5F5, 0x6324, 0xBCB7, 0x6325, 0xBBD3, 0x6326, 0x92A6, 0x6327, 0x92A7, 0x6328, 0xB0A4, 0x6329, 0x92A8, 0x632A, 0xC5B2, + 0x632B, 0xB4EC, 0x632C, 0x92A9, 0x632D, 0x92AA, 0x632E, 0x92AB, 0x632F, 0xD5F1, 0x6330, 0x92AC, 0x6331, 0x92AD, 0x6332, 0xEAFD, + 0x6333, 0x92AE, 0x6334, 0x92AF, 0x6335, 0x92B0, 0x6336, 0x92B1, 0x6337, 0x92B2, 0x6338, 0x92B3, 0x6339, 0xDEDA, 0x633A, 0xCDA6, + 0x633B, 0x92B4, 0x633C, 0x92B5, 0x633D, 0xCDEC, 0x633E, 0x92B6, 0x633F, 0x92B7, 0x6340, 0x92B8, 0x6341, 0x92B9, 0x6342, 0xCEE6, + 0x6343, 0xDEDC, 0x6344, 0x92BA, 0x6345, 0xCDB1, 0x6346, 0xC0A6, 0x6347, 0x92BB, 0x6348, 0x92BC, 0x6349, 0xD7BD, 0x634A, 0x92BD, + 0x634B, 0xDEDB, 0x634C, 0xB0C6, 0x634D, 0xBAB4, 0x634E, 0xC9D3, 0x634F, 0xC4F3, 0x6350, 0xBEE8, 0x6351, 0x92BE, 0x6352, 0x92BF, + 0x6353, 0x92C0, 0x6354, 0x92C1, 0x6355, 0xB2B6, 0x6356, 0x92C2, 0x6357, 0x92C3, 0x6358, 0x92C4, 0x6359, 0x92C5, 0x635A, 0x92C6, + 0x635B, 0x92C7, 0x635C, 0x92C8, 0x635D, 0x92C9, 0x635E, 0xC0CC, 0x635F, 0xCBF0, 0x6360, 0x92CA, 0x6361, 0xBCF1, 0x6362, 0xBBBB, + 0x6363, 0xB5B7, 0x6364, 0x92CB, 0x6365, 0x92CC, 0x6366, 0x92CD, 0x6367, 0xC5F5, 0x6368, 0x92CE, 0x6369, 0xDEE6, 0x636A, 0x92CF, + 0x636B, 0x92D0, 0x636C, 0x92D1, 0x636D, 0xDEE3, 0x636E, 0xBEDD, 0x636F, 0x92D2, 0x6370, 0x92D3, 0x6371, 0xDEDF, 0x6372, 0x92D4, + 0x6373, 0x92D5, 0x6374, 0x92D6, 0x6375, 0x92D7, 0x6376, 0xB4B7, 0x6377, 0xBDDD, 0x6378, 0x92D8, 0x6379, 0x92D9, 0x637A, 0xDEE0, + 0x637B, 0xC4ED, 0x637C, 0x92DA, 0x637D, 0x92DB, 0x637E, 0x92DC, 0x637F, 0x92DD, 0x6380, 0xCFC6, 0x6381, 0x92DE, 0x6382, 0xB5E0, + 0x6383, 0x92DF, 0x6384, 0x92E0, 0x6385, 0x92E1, 0x6386, 0x92E2, 0x6387, 0xB6DE, 0x6388, 0xCADA, 0x6389, 0xB5F4, 0x638A, 0xDEE5, + 0x638B, 0x92E3, 0x638C, 0xD5C6, 0x638D, 0x92E4, 0x638E, 0xDEE1, 0x638F, 0xCCCD, 0x6390, 0xC6FE, 0x6391, 0x92E5, 0x6392, 0xC5C5, + 0x6393, 0x92E6, 0x6394, 0x92E7, 0x6395, 0x92E8, 0x6396, 0xD2B4, 0x6397, 0x92E9, 0x6398, 0xBEF2, 0x6399, 0x92EA, 0x639A, 0x92EB, + 0x639B, 0x92EC, 0x639C, 0x92ED, 0x639D, 0x92EE, 0x639E, 0x92EF, 0x639F, 0x92F0, 0x63A0, 0xC2D3, 0x63A1, 0x92F1, 0x63A2, 0xCCBD, + 0x63A3, 0xB3B8, 0x63A4, 0x92F2, 0x63A5, 0xBDD3, 0x63A6, 0x92F3, 0x63A7, 0xBFD8, 0x63A8, 0xCDC6, 0x63A9, 0xD1DA, 0x63AA, 0xB4EB, + 0x63AB, 0x92F4, 0x63AC, 0xDEE4, 0x63AD, 0xDEDD, 0x63AE, 0xDEE7, 0x63AF, 0x92F5, 0x63B0, 0xEAFE, 0x63B1, 0x92F6, 0x63B2, 0x92F7, + 0x63B3, 0xC2B0, 0x63B4, 0xDEE2, 0x63B5, 0x92F8, 0x63B6, 0x92F9, 0x63B7, 0xD6C0, 0x63B8, 0xB5A7, 0x63B9, 0x92FA, 0x63BA, 0xB2F4, + 0x63BB, 0x92FB, 0x63BC, 0xDEE8, 0x63BD, 0x92FC, 0x63BE, 0xDEF2, 0x63BF, 0x92FD, 0x63C0, 0x92FE, 0x63C1, 0x9340, 0x63C2, 0x9341, + 0x63C3, 0x9342, 0x63C4, 0xDEED, 0x63C5, 0x9343, 0x63C6, 0xDEF1, 0x63C7, 0x9344, 0x63C8, 0x9345, 0x63C9, 0xC8E0, 0x63CA, 0x9346, + 0x63CB, 0x9347, 0x63CC, 0x9348, 0x63CD, 0xD7E1, 0x63CE, 0xDEEF, 0x63CF, 0xC3E8, 0x63D0, 0xCCE1, 0x63D1, 0x9349, 0x63D2, 0xB2E5, + 0x63D3, 0x934A, 0x63D4, 0x934B, 0x63D5, 0x934C, 0x63D6, 0xD2BE, 0x63D7, 0x934D, 0x63D8, 0x934E, 0x63D9, 0x934F, 0x63DA, 0x9350, + 0x63DB, 0x9351, 0x63DC, 0x9352, 0x63DD, 0x9353, 0x63DE, 0xDEEE, 0x63DF, 0x9354, 0x63E0, 0xDEEB, 0x63E1, 0xCED5, 0x63E2, 0x9355, + 0x63E3, 0xB4A7, 0x63E4, 0x9356, 0x63E5, 0x9357, 0x63E6, 0x9358, 0x63E7, 0x9359, 0x63E8, 0x935A, 0x63E9, 0xBFAB, 0x63EA, 0xBEBE, + 0x63EB, 0x935B, 0x63EC, 0x935C, 0x63ED, 0xBDD2, 0x63EE, 0x935D, 0x63EF, 0x935E, 0x63F0, 0x935F, 0x63F1, 0x9360, 0x63F2, 0xDEE9, + 0x63F3, 0x9361, 0x63F4, 0xD4AE, 0x63F5, 0x9362, 0x63F6, 0xDEDE, 0x63F7, 0x9363, 0x63F8, 0xDEEA, 0x63F9, 0x9364, 0x63FA, 0x9365, + 0x63FB, 0x9366, 0x63FC, 0x9367, 0x63FD, 0xC0BF, 0x63FE, 0x9368, 0x63FF, 0xDEEC, 0x6400, 0xB2F3, 0x6401, 0xB8E9, 0x6402, 0xC2A7, + 0x6403, 0x9369, 0x6404, 0x936A, 0x6405, 0xBDC1, 0x6406, 0x936B, 0x6407, 0x936C, 0x6408, 0x936D, 0x6409, 0x936E, 0x640A, 0x936F, + 0x640B, 0xDEF5, 0x640C, 0xDEF8, 0x640D, 0x9370, 0x640E, 0x9371, 0x640F, 0xB2AB, 0x6410, 0xB4A4, 0x6411, 0x9372, 0x6412, 0x9373, + 0x6413, 0xB4EA, 0x6414, 0xC9A6, 0x6415, 0x9374, 0x6416, 0x9375, 0x6417, 0x9376, 0x6418, 0x9377, 0x6419, 0x9378, 0x641A, 0x9379, + 0x641B, 0xDEF6, 0x641C, 0xCBD1, 0x641D, 0x937A, 0x641E, 0xB8E3, 0x641F, 0x937B, 0x6420, 0xDEF7, 0x6421, 0xDEFA, 0x6422, 0x937C, + 0x6423, 0x937D, 0x6424, 0x937E, 0x6425, 0x9380, 0x6426, 0xDEF9, 0x6427, 0x9381, 0x6428, 0x9382, 0x6429, 0x9383, 0x642A, 0xCCC2, + 0x642B, 0x9384, 0x642C, 0xB0E1, 0x642D, 0xB4EE, 0x642E, 0x9385, 0x642F, 0x9386, 0x6430, 0x9387, 0x6431, 0x9388, 0x6432, 0x9389, + 0x6433, 0x938A, 0x6434, 0xE5BA, 0x6435, 0x938B, 0x6436, 0x938C, 0x6437, 0x938D, 0x6438, 0x938E, 0x6439, 0x938F, 0x643A, 0xD0AF, + 0x643B, 0x9390, 0x643C, 0x9391, 0x643D, 0xB2EB, 0x643E, 0x9392, 0x643F, 0xEBA1, 0x6440, 0x9393, 0x6441, 0xDEF4, 0x6442, 0x9394, + 0x6443, 0x9395, 0x6444, 0xC9E3, 0x6445, 0xDEF3, 0x6446, 0xB0DA, 0x6447, 0xD2A1, 0x6448, 0xB1F7, 0x6449, 0x9396, 0x644A, 0xCCAF, + 0x644B, 0x9397, 0x644C, 0x9398, 0x644D, 0x9399, 0x644E, 0x939A, 0x644F, 0x939B, 0x6450, 0x939C, 0x6451, 0x939D, 0x6452, 0xDEF0, + 0x6453, 0x939E, 0x6454, 0xCBA4, 0x6455, 0x939F, 0x6456, 0x93A0, 0x6457, 0x93A1, 0x6458, 0xD5AA, 0x6459, 0x93A2, 0x645A, 0x93A3, + 0x645B, 0x93A4, 0x645C, 0x93A5, 0x645D, 0x93A6, 0x645E, 0xDEFB, 0x645F, 0x93A7, 0x6460, 0x93A8, 0x6461, 0x93A9, 0x6462, 0x93AA, + 0x6463, 0x93AB, 0x6464, 0x93AC, 0x6465, 0x93AD, 0x6466, 0x93AE, 0x6467, 0xB4DD, 0x6468, 0x93AF, 0x6469, 0xC4A6, 0x646A, 0x93B0, + 0x646B, 0x93B1, 0x646C, 0x93B2, 0x646D, 0xDEFD, 0x646E, 0x93B3, 0x646F, 0x93B4, 0x6470, 0x93B5, 0x6471, 0x93B6, 0x6472, 0x93B7, + 0x6473, 0x93B8, 0x6474, 0x93B9, 0x6475, 0x93BA, 0x6476, 0x93BB, 0x6477, 0x93BC, 0x6478, 0xC3FE, 0x6479, 0xC4A1, 0x647A, 0xDFA1, + 0x647B, 0x93BD, 0x647C, 0x93BE, 0x647D, 0x93BF, 0x647E, 0x93C0, 0x647F, 0x93C1, 0x6480, 0x93C2, 0x6481, 0x93C3, 0x6482, 0xC1CC, + 0x6483, 0x93C4, 0x6484, 0xDEFC, 0x6485, 0xBEEF, 0x6486, 0x93C5, 0x6487, 0xC6B2, 0x6488, 0x93C6, 0x6489, 0x93C7, 0x648A, 0x93C8, + 0x648B, 0x93C9, 0x648C, 0x93CA, 0x648D, 0x93CB, 0x648E, 0x93CC, 0x648F, 0x93CD, 0x6490, 0x93CE, 0x6491, 0xB3C5, 0x6492, 0xC8F6, + 0x6493, 0x93CF, 0x6494, 0x93D0, 0x6495, 0xCBBA, 0x6496, 0xDEFE, 0x6497, 0x93D1, 0x6498, 0x93D2, 0x6499, 0xDFA4, 0x649A, 0x93D3, + 0x649B, 0x93D4, 0x649C, 0x93D5, 0x649D, 0x93D6, 0x649E, 0xD7B2, 0x649F, 0x93D7, 0x64A0, 0x93D8, 0x64A1, 0x93D9, 0x64A2, 0x93DA, + 0x64A3, 0x93DB, 0x64A4, 0xB3B7, 0x64A5, 0x93DC, 0x64A6, 0x93DD, 0x64A7, 0x93DE, 0x64A8, 0x93DF, 0x64A9, 0xC1C3, 0x64AA, 0x93E0, + 0x64AB, 0x93E1, 0x64AC, 0xC7CB, 0x64AD, 0xB2A5, 0x64AE, 0xB4E9, 0x64AF, 0x93E2, 0x64B0, 0xD7AB, 0x64B1, 0x93E3, 0x64B2, 0x93E4, + 0x64B3, 0x93E5, 0x64B4, 0x93E6, 0x64B5, 0xC4EC, 0x64B6, 0x93E7, 0x64B7, 0xDFA2, 0x64B8, 0xDFA3, 0x64B9, 0x93E8, 0x64BA, 0xDFA5, + 0x64BB, 0x93E9, 0x64BC, 0xBAB3, 0x64BD, 0x93EA, 0x64BE, 0x93EB, 0x64BF, 0x93EC, 0x64C0, 0xDFA6, 0x64C1, 0x93ED, 0x64C2, 0xC0DE, + 0x64C3, 0x93EE, 0x64C4, 0x93EF, 0x64C5, 0xC9C3, 0x64C6, 0x93F0, 0x64C7, 0x93F1, 0x64C8, 0x93F2, 0x64C9, 0x93F3, 0x64CA, 0x93F4, + 0x64CB, 0x93F5, 0x64CC, 0x93F6, 0x64CD, 0xB2D9, 0x64CE, 0xC7E6, 0x64CF, 0x93F7, 0x64D0, 0xDFA7, 0x64D1, 0x93F8, 0x64D2, 0xC7DC, + 0x64D3, 0x93F9, 0x64D4, 0x93FA, 0x64D5, 0x93FB, 0x64D6, 0x93FC, 0x64D7, 0xDFA8, 0x64D8, 0xEBA2, 0x64D9, 0x93FD, 0x64DA, 0x93FE, + 0x64DB, 0x9440, 0x64DC, 0x9441, 0x64DD, 0x9442, 0x64DE, 0xCBD3, 0x64DF, 0x9443, 0x64E0, 0x9444, 0x64E1, 0x9445, 0x64E2, 0xDFAA, + 0x64E3, 0x9446, 0x64E4, 0xDFA9, 0x64E5, 0x9447, 0x64E6, 0xB2C1, 0x64E7, 0x9448, 0x64E8, 0x9449, 0x64E9, 0x944A, 0x64EA, 0x944B, + 0x64EB, 0x944C, 0x64EC, 0x944D, 0x64ED, 0x944E, 0x64EE, 0x944F, 0x64EF, 0x9450, 0x64F0, 0x9451, 0x64F1, 0x9452, 0x64F2, 0x9453, + 0x64F3, 0x9454, 0x64F4, 0x9455, 0x64F5, 0x9456, 0x64F6, 0x9457, 0x64F7, 0x9458, 0x64F8, 0x9459, 0x64F9, 0x945A, 0x64FA, 0x945B, + 0x64FB, 0x945C, 0x64FC, 0x945D, 0x64FD, 0x945E, 0x64FE, 0x945F, 0x64FF, 0x9460, 0x6500, 0xC5CA, 0x6501, 0x9461, 0x6502, 0x9462, + 0x6503, 0x9463, 0x6504, 0x9464, 0x6505, 0x9465, 0x6506, 0x9466, 0x6507, 0x9467, 0x6508, 0x9468, 0x6509, 0xDFAB, 0x650A, 0x9469, + 0x650B, 0x946A, 0x650C, 0x946B, 0x650D, 0x946C, 0x650E, 0x946D, 0x650F, 0x946E, 0x6510, 0x946F, 0x6511, 0x9470, 0x6512, 0xD4DC, + 0x6513, 0x9471, 0x6514, 0x9472, 0x6515, 0x9473, 0x6516, 0x9474, 0x6517, 0x9475, 0x6518, 0xC8C1, 0x6519, 0x9476, 0x651A, 0x9477, + 0x651B, 0x9478, 0x651C, 0x9479, 0x651D, 0x947A, 0x651E, 0x947B, 0x651F, 0x947C, 0x6520, 0x947D, 0x6521, 0x947E, 0x6522, 0x9480, + 0x6523, 0x9481, 0x6524, 0x9482, 0x6525, 0xDFAC, 0x6526, 0x9483, 0x6527, 0x9484, 0x6528, 0x9485, 0x6529, 0x9486, 0x652A, 0x9487, + 0x652B, 0xBEF0, 0x652C, 0x9488, 0x652D, 0x9489, 0x652E, 0xDFAD, 0x652F, 0xD6A7, 0x6530, 0x948A, 0x6531, 0x948B, 0x6532, 0x948C, + 0x6533, 0x948D, 0x6534, 0xEAB7, 0x6535, 0xEBB6, 0x6536, 0xCAD5, 0x6537, 0x948E, 0x6538, 0xD8FC, 0x6539, 0xB8C4, 0x653A, 0x948F, + 0x653B, 0xB9A5, 0x653C, 0x9490, 0x653D, 0x9491, 0x653E, 0xB7C5, 0x653F, 0xD5FE, 0x6540, 0x9492, 0x6541, 0x9493, 0x6542, 0x9494, + 0x6543, 0x9495, 0x6544, 0x9496, 0x6545, 0xB9CA, 0x6546, 0x9497, 0x6547, 0x9498, 0x6548, 0xD0A7, 0x6549, 0xF4CD, 0x654A, 0x9499, + 0x654B, 0x949A, 0x654C, 0xB5D0, 0x654D, 0x949B, 0x654E, 0x949C, 0x654F, 0xC3F4, 0x6550, 0x949D, 0x6551, 0xBEC8, 0x6552, 0x949E, + 0x6553, 0x949F, 0x6554, 0x94A0, 0x6555, 0xEBB7, 0x6556, 0xB0BD, 0x6557, 0x94A1, 0x6558, 0x94A2, 0x6559, 0xBDCC, 0x655A, 0x94A3, + 0x655B, 0xC1B2, 0x655C, 0x94A4, 0x655D, 0xB1D6, 0x655E, 0xB3A8, 0x655F, 0x94A5, 0x6560, 0x94A6, 0x6561, 0x94A7, 0x6562, 0xB8D2, + 0x6563, 0xC9A2, 0x6564, 0x94A8, 0x6565, 0x94A9, 0x6566, 0xB6D8, 0x6567, 0x94AA, 0x6568, 0x94AB, 0x6569, 0x94AC, 0x656A, 0x94AD, + 0x656B, 0xEBB8, 0x656C, 0xBEB4, 0x656D, 0x94AE, 0x656E, 0x94AF, 0x656F, 0x94B0, 0x6570, 0xCAFD, 0x6571, 0x94B1, 0x6572, 0xC7C3, + 0x6573, 0x94B2, 0x6574, 0xD5FB, 0x6575, 0x94B3, 0x6576, 0x94B4, 0x6577, 0xB7F3, 0x6578, 0x94B5, 0x6579, 0x94B6, 0x657A, 0x94B7, + 0x657B, 0x94B8, 0x657C, 0x94B9, 0x657D, 0x94BA, 0x657E, 0x94BB, 0x657F, 0x94BC, 0x6580, 0x94BD, 0x6581, 0x94BE, 0x6582, 0x94BF, + 0x6583, 0x94C0, 0x6584, 0x94C1, 0x6585, 0x94C2, 0x6586, 0x94C3, 0x6587, 0xCEC4, 0x6588, 0x94C4, 0x6589, 0x94C5, 0x658A, 0x94C6, + 0x658B, 0xD5AB, 0x658C, 0xB1F3, 0x658D, 0x94C7, 0x658E, 0x94C8, 0x658F, 0x94C9, 0x6590, 0xECB3, 0x6591, 0xB0DF, 0x6592, 0x94CA, + 0x6593, 0xECB5, 0x6594, 0x94CB, 0x6595, 0x94CC, 0x6596, 0x94CD, 0x6597, 0xB6B7, 0x6598, 0x94CE, 0x6599, 0xC1CF, 0x659A, 0x94CF, + 0x659B, 0xF5FA, 0x659C, 0xD0B1, 0x659D, 0x94D0, 0x659E, 0x94D1, 0x659F, 0xD5E5, 0x65A0, 0x94D2, 0x65A1, 0xCED3, 0x65A2, 0x94D3, + 0x65A3, 0x94D4, 0x65A4, 0xBDEF, 0x65A5, 0xB3E2, 0x65A6, 0x94D5, 0x65A7, 0xB8AB, 0x65A8, 0x94D6, 0x65A9, 0xD5B6, 0x65AA, 0x94D7, + 0x65AB, 0xEDBD, 0x65AC, 0x94D8, 0x65AD, 0xB6CF, 0x65AE, 0x94D9, 0x65AF, 0xCBB9, 0x65B0, 0xD0C2, 0x65B1, 0x94DA, 0x65B2, 0x94DB, + 0x65B3, 0x94DC, 0x65B4, 0x94DD, 0x65B5, 0x94DE, 0x65B6, 0x94DF, 0x65B7, 0x94E0, 0x65B8, 0x94E1, 0x65B9, 0xB7BD, 0x65BA, 0x94E2, + 0x65BB, 0x94E3, 0x65BC, 0xECB6, 0x65BD, 0xCAA9, 0x65BE, 0x94E4, 0x65BF, 0x94E5, 0x65C0, 0x94E6, 0x65C1, 0xC5D4, 0x65C2, 0x94E7, + 0x65C3, 0xECB9, 0x65C4, 0xECB8, 0x65C5, 0xC2C3, 0x65C6, 0xECB7, 0x65C7, 0x94E8, 0x65C8, 0x94E9, 0x65C9, 0x94EA, 0x65CA, 0x94EB, + 0x65CB, 0xD0FD, 0x65CC, 0xECBA, 0x65CD, 0x94EC, 0x65CE, 0xECBB, 0x65CF, 0xD7E5, 0x65D0, 0x94ED, 0x65D1, 0x94EE, 0x65D2, 0xECBC, + 0x65D3, 0x94EF, 0x65D4, 0x94F0, 0x65D5, 0x94F1, 0x65D6, 0xECBD, 0x65D7, 0xC6EC, 0x65D8, 0x94F2, 0x65D9, 0x94F3, 0x65DA, 0x94F4, + 0x65DB, 0x94F5, 0x65DC, 0x94F6, 0x65DD, 0x94F7, 0x65DE, 0x94F8, 0x65DF, 0x94F9, 0x65E0, 0xCEDE, 0x65E1, 0x94FA, 0x65E2, 0xBCC8, + 0x65E3, 0x94FB, 0x65E4, 0x94FC, 0x65E5, 0xC8D5, 0x65E6, 0xB5A9, 0x65E7, 0xBEC9, 0x65E8, 0xD6BC, 0x65E9, 0xD4E7, 0x65EA, 0x94FD, + 0x65EB, 0x94FE, 0x65EC, 0xD1AE, 0x65ED, 0xD0F1, 0x65EE, 0xEAB8, 0x65EF, 0xEAB9, 0x65F0, 0xEABA, 0x65F1, 0xBAB5, 0x65F2, 0x9540, + 0x65F3, 0x9541, 0x65F4, 0x9542, 0x65F5, 0x9543, 0x65F6, 0xCAB1, 0x65F7, 0xBFF5, 0x65F8, 0x9544, 0x65F9, 0x9545, 0x65FA, 0xCDFA, + 0x65FB, 0x9546, 0x65FC, 0x9547, 0x65FD, 0x9548, 0x65FE, 0x9549, 0x65FF, 0x954A, 0x6600, 0xEAC0, 0x6601, 0x954B, 0x6602, 0xB0BA, + 0x6603, 0xEABE, 0x6604, 0x954C, 0x6605, 0x954D, 0x6606, 0xC0A5, 0x6607, 0x954E, 0x6608, 0x954F, 0x6609, 0x9550, 0x660A, 0xEABB, + 0x660B, 0x9551, 0x660C, 0xB2FD, 0x660D, 0x9552, 0x660E, 0xC3F7, 0x660F, 0xBBE8, 0x6610, 0x9553, 0x6611, 0x9554, 0x6612, 0x9555, + 0x6613, 0xD2D7, 0x6614, 0xCEF4, 0x6615, 0xEABF, 0x6616, 0x9556, 0x6617, 0x9557, 0x6618, 0x9558, 0x6619, 0xEABC, 0x661A, 0x9559, + 0x661B, 0x955A, 0x661C, 0x955B, 0x661D, 0xEAC3, 0x661E, 0x955C, 0x661F, 0xD0C7, 0x6620, 0xD3B3, 0x6621, 0x955D, 0x6622, 0x955E, + 0x6623, 0x955F, 0x6624, 0x9560, 0x6625, 0xB4BA, 0x6626, 0x9561, 0x6627, 0xC3C1, 0x6628, 0xD7F2, 0x6629, 0x9562, 0x662A, 0x9563, + 0x662B, 0x9564, 0x662C, 0x9565, 0x662D, 0xD5D1, 0x662E, 0x9566, 0x662F, 0xCAC7, 0x6630, 0x9567, 0x6631, 0xEAC5, 0x6632, 0x9568, + 0x6633, 0x9569, 0x6634, 0xEAC4, 0x6635, 0xEAC7, 0x6636, 0xEAC6, 0x6637, 0x956A, 0x6638, 0x956B, 0x6639, 0x956C, 0x663A, 0x956D, + 0x663B, 0x956E, 0x663C, 0xD6E7, 0x663D, 0x956F, 0x663E, 0xCFD4, 0x663F, 0x9570, 0x6640, 0x9571, 0x6641, 0xEACB, 0x6642, 0x9572, + 0x6643, 0xBBCE, 0x6644, 0x9573, 0x6645, 0x9574, 0x6646, 0x9575, 0x6647, 0x9576, 0x6648, 0x9577, 0x6649, 0x9578, 0x664A, 0x9579, + 0x664B, 0xBDFA, 0x664C, 0xC9CE, 0x664D, 0x957A, 0x664E, 0x957B, 0x664F, 0xEACC, 0x6650, 0x957C, 0x6651, 0x957D, 0x6652, 0xC9B9, + 0x6653, 0xCFFE, 0x6654, 0xEACA, 0x6655, 0xD4CE, 0x6656, 0xEACD, 0x6657, 0xEACF, 0x6658, 0x957E, 0x6659, 0x9580, 0x665A, 0xCDED, + 0x665B, 0x9581, 0x665C, 0x9582, 0x665D, 0x9583, 0x665E, 0x9584, 0x665F, 0xEAC9, 0x6660, 0x9585, 0x6661, 0xEACE, 0x6662, 0x9586, + 0x6663, 0x9587, 0x6664, 0xCEEE, 0x6665, 0x9588, 0x6666, 0xBBDE, 0x6667, 0x9589, 0x6668, 0xB3BF, 0x6669, 0x958A, 0x666A, 0x958B, + 0x666B, 0x958C, 0x666C, 0x958D, 0x666D, 0x958E, 0x666E, 0xC6D5, 0x666F, 0xBEB0, 0x6670, 0xCEFA, 0x6671, 0x958F, 0x6672, 0x9590, + 0x6673, 0x9591, 0x6674, 0xC7E7, 0x6675, 0x9592, 0x6676, 0xBEA7, 0x6677, 0xEAD0, 0x6678, 0x9593, 0x6679, 0x9594, 0x667A, 0xD6C7, + 0x667B, 0x9595, 0x667C, 0x9596, 0x667D, 0x9597, 0x667E, 0xC1C0, 0x667F, 0x9598, 0x6680, 0x9599, 0x6681, 0x959A, 0x6682, 0xD4DD, + 0x6683, 0x959B, 0x6684, 0xEAD1, 0x6685, 0x959C, 0x6686, 0x959D, 0x6687, 0xCFBE, 0x6688, 0x959E, 0x6689, 0x959F, 0x668A, 0x95A0, + 0x668B, 0x95A1, 0x668C, 0xEAD2, 0x668D, 0x95A2, 0x668E, 0x95A3, 0x668F, 0x95A4, 0x6690, 0x95A5, 0x6691, 0xCAEE, 0x6692, 0x95A6, + 0x6693, 0x95A7, 0x6694, 0x95A8, 0x6695, 0x95A9, 0x6696, 0xC5AF, 0x6697, 0xB0B5, 0x6698, 0x95AA, 0x6699, 0x95AB, 0x669A, 0x95AC, + 0x669B, 0x95AD, 0x669C, 0x95AE, 0x669D, 0xEAD4, 0x669E, 0x95AF, 0x669F, 0x95B0, 0x66A0, 0x95B1, 0x66A1, 0x95B2, 0x66A2, 0x95B3, + 0x66A3, 0x95B4, 0x66A4, 0x95B5, 0x66A5, 0x95B6, 0x66A6, 0x95B7, 0x66A7, 0xEAD3, 0x66A8, 0xF4DF, 0x66A9, 0x95B8, 0x66AA, 0x95B9, + 0x66AB, 0x95BA, 0x66AC, 0x95BB, 0x66AD, 0x95BC, 0x66AE, 0xC4BA, 0x66AF, 0x95BD, 0x66B0, 0x95BE, 0x66B1, 0x95BF, 0x66B2, 0x95C0, + 0x66B3, 0x95C1, 0x66B4, 0xB1A9, 0x66B5, 0x95C2, 0x66B6, 0x95C3, 0x66B7, 0x95C4, 0x66B8, 0x95C5, 0x66B9, 0xE5DF, 0x66BA, 0x95C6, + 0x66BB, 0x95C7, 0x66BC, 0x95C8, 0x66BD, 0x95C9, 0x66BE, 0xEAD5, 0x66BF, 0x95CA, 0x66C0, 0x95CB, 0x66C1, 0x95CC, 0x66C2, 0x95CD, + 0x66C3, 0x95CE, 0x66C4, 0x95CF, 0x66C5, 0x95D0, 0x66C6, 0x95D1, 0x66C7, 0x95D2, 0x66C8, 0x95D3, 0x66C9, 0x95D4, 0x66CA, 0x95D5, + 0x66CB, 0x95D6, 0x66CC, 0x95D7, 0x66CD, 0x95D8, 0x66CE, 0x95D9, 0x66CF, 0x95DA, 0x66D0, 0x95DB, 0x66D1, 0x95DC, 0x66D2, 0x95DD, + 0x66D3, 0x95DE, 0x66D4, 0x95DF, 0x66D5, 0x95E0, 0x66D6, 0x95E1, 0x66D7, 0x95E2, 0x66D8, 0x95E3, 0x66D9, 0xCAEF, 0x66DA, 0x95E4, + 0x66DB, 0xEAD6, 0x66DC, 0xEAD7, 0x66DD, 0xC6D8, 0x66DE, 0x95E5, 0x66DF, 0x95E6, 0x66E0, 0x95E7, 0x66E1, 0x95E8, 0x66E2, 0x95E9, + 0x66E3, 0x95EA, 0x66E4, 0x95EB, 0x66E5, 0x95EC, 0x66E6, 0xEAD8, 0x66E7, 0x95ED, 0x66E8, 0x95EE, 0x66E9, 0xEAD9, 0x66EA, 0x95EF, + 0x66EB, 0x95F0, 0x66EC, 0x95F1, 0x66ED, 0x95F2, 0x66EE, 0x95F3, 0x66EF, 0x95F4, 0x66F0, 0xD4BB, 0x66F1, 0x95F5, 0x66F2, 0xC7FA, + 0x66F3, 0xD2B7, 0x66F4, 0xB8FC, 0x66F5, 0x95F6, 0x66F6, 0x95F7, 0x66F7, 0xEAC2, 0x66F8, 0x95F8, 0x66F9, 0xB2DC, 0x66FA, 0x95F9, + 0x66FB, 0x95FA, 0x66FC, 0xC2FC, 0x66FD, 0x95FB, 0x66FE, 0xD4F8, 0x66FF, 0xCCE6, 0x6700, 0xD7EE, 0x6701, 0x95FC, 0x6702, 0x95FD, + 0x6703, 0x95FE, 0x6704, 0x9640, 0x6705, 0x9641, 0x6706, 0x9642, 0x6707, 0x9643, 0x6708, 0xD4C2, 0x6709, 0xD3D0, 0x670A, 0xEBC3, + 0x670B, 0xC5F3, 0x670C, 0x9644, 0x670D, 0xB7FE, 0x670E, 0x9645, 0x670F, 0x9646, 0x6710, 0xEBD4, 0x6711, 0x9647, 0x6712, 0x9648, + 0x6713, 0x9649, 0x6714, 0xCBB7, 0x6715, 0xEBDE, 0x6716, 0x964A, 0x6717, 0xC0CA, 0x6718, 0x964B, 0x6719, 0x964C, 0x671A, 0x964D, + 0x671B, 0xCDFB, 0x671C, 0x964E, 0x671D, 0xB3AF, 0x671E, 0x964F, 0x671F, 0xC6DA, 0x6720, 0x9650, 0x6721, 0x9651, 0x6722, 0x9652, + 0x6723, 0x9653, 0x6724, 0x9654, 0x6725, 0x9655, 0x6726, 0xEBFC, 0x6727, 0x9656, 0x6728, 0xC4BE, 0x6729, 0x9657, 0x672A, 0xCEB4, + 0x672B, 0xC4A9, 0x672C, 0xB1BE, 0x672D, 0xD4FD, 0x672E, 0x9658, 0x672F, 0xCAF5, 0x6730, 0x9659, 0x6731, 0xD6EC, 0x6732, 0x965A, + 0x6733, 0x965B, 0x6734, 0xC6D3, 0x6735, 0xB6E4, 0x6736, 0x965C, 0x6737, 0x965D, 0x6738, 0x965E, 0x6739, 0x965F, 0x673A, 0xBBFA, + 0x673B, 0x9660, 0x673C, 0x9661, 0x673D, 0xD0E0, 0x673E, 0x9662, 0x673F, 0x9663, 0x6740, 0xC9B1, 0x6741, 0x9664, 0x6742, 0xD4D3, + 0x6743, 0xC8A8, 0x6744, 0x9665, 0x6745, 0x9666, 0x6746, 0xB8CB, 0x6747, 0x9667, 0x6748, 0xE8BE, 0x6749, 0xC9BC, 0x674A, 0x9668, + 0x674B, 0x9669, 0x674C, 0xE8BB, 0x674D, 0x966A, 0x674E, 0xC0EE, 0x674F, 0xD0D3, 0x6750, 0xB2C4, 0x6751, 0xB4E5, 0x6752, 0x966B, + 0x6753, 0xE8BC, 0x6754, 0x966C, 0x6755, 0x966D, 0x6756, 0xD5C8, 0x6757, 0x966E, 0x6758, 0x966F, 0x6759, 0x9670, 0x675A, 0x9671, + 0x675B, 0x9672, 0x675C, 0xB6C5, 0x675D, 0x9673, 0x675E, 0xE8BD, 0x675F, 0xCAF8, 0x6760, 0xB8DC, 0x6761, 0xCCF5, 0x6762, 0x9674, + 0x6763, 0x9675, 0x6764, 0x9676, 0x6765, 0xC0B4, 0x6766, 0x9677, 0x6767, 0x9678, 0x6768, 0xD1EE, 0x6769, 0xE8BF, 0x676A, 0xE8C2, + 0x676B, 0x9679, 0x676C, 0x967A, 0x676D, 0xBABC, 0x676E, 0x967B, 0x676F, 0xB1AD, 0x6770, 0xBDDC, 0x6771, 0x967C, 0x6772, 0xEABD, + 0x6773, 0xE8C3, 0x6774, 0x967D, 0x6775, 0xE8C6, 0x6776, 0x967E, 0x6777, 0xE8CB, 0x6778, 0x9680, 0x6779, 0x9681, 0x677A, 0x9682, + 0x677B, 0x9683, 0x677C, 0xE8CC, 0x677D, 0x9684, 0x677E, 0xCBC9, 0x677F, 0xB0E5, 0x6780, 0x9685, 0x6781, 0xBCAB, 0x6782, 0x9686, + 0x6783, 0x9687, 0x6784, 0xB9B9, 0x6785, 0x9688, 0x6786, 0x9689, 0x6787, 0xE8C1, 0x6788, 0x968A, 0x6789, 0xCDF7, 0x678A, 0x968B, + 0x678B, 0xE8CA, 0x678C, 0x968C, 0x678D, 0x968D, 0x678E, 0x968E, 0x678F, 0x968F, 0x6790, 0xCEF6, 0x6791, 0x9690, 0x6792, 0x9691, + 0x6793, 0x9692, 0x6794, 0x9693, 0x6795, 0xD5ED, 0x6796, 0x9694, 0x6797, 0xC1D6, 0x6798, 0xE8C4, 0x6799, 0x9695, 0x679A, 0xC3B6, + 0x679B, 0x9696, 0x679C, 0xB9FB, 0x679D, 0xD6A6, 0x679E, 0xE8C8, 0x679F, 0x9697, 0x67A0, 0x9698, 0x67A1, 0x9699, 0x67A2, 0xCAE0, + 0x67A3, 0xD4E6, 0x67A4, 0x969A, 0x67A5, 0xE8C0, 0x67A6, 0x969B, 0x67A7, 0xE8C5, 0x67A8, 0xE8C7, 0x67A9, 0x969C, 0x67AA, 0xC7B9, + 0x67AB, 0xB7E3, 0x67AC, 0x969D, 0x67AD, 0xE8C9, 0x67AE, 0x969E, 0x67AF, 0xBFDD, 0x67B0, 0xE8D2, 0x67B1, 0x969F, 0x67B2, 0x96A0, + 0x67B3, 0xE8D7, 0x67B4, 0x96A1, 0x67B5, 0xE8D5, 0x67B6, 0xBCDC, 0x67B7, 0xBCCF, 0x67B8, 0xE8DB, 0x67B9, 0x96A2, 0x67BA, 0x96A3, + 0x67BB, 0x96A4, 0x67BC, 0x96A5, 0x67BD, 0x96A6, 0x67BE, 0x96A7, 0x67BF, 0x96A8, 0x67C0, 0x96A9, 0x67C1, 0xE8DE, 0x67C2, 0x96AA, + 0x67C3, 0xE8DA, 0x67C4, 0xB1FA, 0x67C5, 0x96AB, 0x67C6, 0x96AC, 0x67C7, 0x96AD, 0x67C8, 0x96AE, 0x67C9, 0x96AF, 0x67CA, 0x96B0, + 0x67CB, 0x96B1, 0x67CC, 0x96B2, 0x67CD, 0x96B3, 0x67CE, 0x96B4, 0x67CF, 0xB0D8, 0x67D0, 0xC4B3, 0x67D1, 0xB8CC, 0x67D2, 0xC6E2, + 0x67D3, 0xC8BE, 0x67D4, 0xC8E1, 0x67D5, 0x96B5, 0x67D6, 0x96B6, 0x67D7, 0x96B7, 0x67D8, 0xE8CF, 0x67D9, 0xE8D4, 0x67DA, 0xE8D6, + 0x67DB, 0x96B8, 0x67DC, 0xB9F1, 0x67DD, 0xE8D8, 0x67DE, 0xD7F5, 0x67DF, 0x96B9, 0x67E0, 0xC4FB, 0x67E1, 0x96BA, 0x67E2, 0xE8DC, + 0x67E3, 0x96BB, 0x67E4, 0x96BC, 0x67E5, 0xB2E9, 0x67E6, 0x96BD, 0x67E7, 0x96BE, 0x67E8, 0x96BF, 0x67E9, 0xE8D1, 0x67EA, 0x96C0, + 0x67EB, 0x96C1, 0x67EC, 0xBCED, 0x67ED, 0x96C2, 0x67EE, 0x96C3, 0x67EF, 0xBFC2, 0x67F0, 0xE8CD, 0x67F1, 0xD6F9, 0x67F2, 0x96C4, + 0x67F3, 0xC1F8, 0x67F4, 0xB2F1, 0x67F5, 0x96C5, 0x67F6, 0x96C6, 0x67F7, 0x96C7, 0x67F8, 0x96C8, 0x67F9, 0x96C9, 0x67FA, 0x96CA, + 0x67FB, 0x96CB, 0x67FC, 0x96CC, 0x67FD, 0xE8DF, 0x67FE, 0x96CD, 0x67FF, 0xCAC1, 0x6800, 0xE8D9, 0x6801, 0x96CE, 0x6802, 0x96CF, + 0x6803, 0x96D0, 0x6804, 0x96D1, 0x6805, 0xD5A4, 0x6806, 0x96D2, 0x6807, 0xB1EA, 0x6808, 0xD5BB, 0x6809, 0xE8CE, 0x680A, 0xE8D0, + 0x680B, 0xB6B0, 0x680C, 0xE8D3, 0x680D, 0x96D3, 0x680E, 0xE8DD, 0x680F, 0xC0B8, 0x6810, 0x96D4, 0x6811, 0xCAF7, 0x6812, 0x96D5, + 0x6813, 0xCBA8, 0x6814, 0x96D6, 0x6815, 0x96D7, 0x6816, 0xC6DC, 0x6817, 0xC0F5, 0x6818, 0x96D8, 0x6819, 0x96D9, 0x681A, 0x96DA, + 0x681B, 0x96DB, 0x681C, 0x96DC, 0x681D, 0xE8E9, 0x681E, 0x96DD, 0x681F, 0x96DE, 0x6820, 0x96DF, 0x6821, 0xD0A3, 0x6822, 0x96E0, + 0x6823, 0x96E1, 0x6824, 0x96E2, 0x6825, 0x96E3, 0x6826, 0x96E4, 0x6827, 0x96E5, 0x6828, 0x96E6, 0x6829, 0xE8F2, 0x682A, 0xD6EA, + 0x682B, 0x96E7, 0x682C, 0x96E8, 0x682D, 0x96E9, 0x682E, 0x96EA, 0x682F, 0x96EB, 0x6830, 0x96EC, 0x6831, 0x96ED, 0x6832, 0xE8E0, + 0x6833, 0xE8E1, 0x6834, 0x96EE, 0x6835, 0x96EF, 0x6836, 0x96F0, 0x6837, 0xD1F9, 0x6838, 0xBACB, 0x6839, 0xB8F9, 0x683A, 0x96F1, + 0x683B, 0x96F2, 0x683C, 0xB8F1, 0x683D, 0xD4D4, 0x683E, 0xE8EF, 0x683F, 0x96F3, 0x6840, 0xE8EE, 0x6841, 0xE8EC, 0x6842, 0xB9F0, + 0x6843, 0xCCD2, 0x6844, 0xE8E6, 0x6845, 0xCEA6, 0x6846, 0xBFF2, 0x6847, 0x96F4, 0x6848, 0xB0B8, 0x6849, 0xE8F1, 0x684A, 0xE8F0, + 0x684B, 0x96F5, 0x684C, 0xD7C0, 0x684D, 0x96F6, 0x684E, 0xE8E4, 0x684F, 0x96F7, 0x6850, 0xCDA9, 0x6851, 0xC9A3, 0x6852, 0x96F8, + 0x6853, 0xBBB8, 0x6854, 0xBDDB, 0x6855, 0xE8EA, 0x6856, 0x96F9, 0x6857, 0x96FA, 0x6858, 0x96FB, 0x6859, 0x96FC, 0x685A, 0x96FD, + 0x685B, 0x96FE, 0x685C, 0x9740, 0x685D, 0x9741, 0x685E, 0x9742, 0x685F, 0x9743, 0x6860, 0xE8E2, 0x6861, 0xE8E3, 0x6862, 0xE8E5, + 0x6863, 0xB5B5, 0x6864, 0xE8E7, 0x6865, 0xC7C5, 0x6866, 0xE8EB, 0x6867, 0xE8ED, 0x6868, 0xBDB0, 0x6869, 0xD7AE, 0x686A, 0x9744, + 0x686B, 0xE8F8, 0x686C, 0x9745, 0x686D, 0x9746, 0x686E, 0x9747, 0x686F, 0x9748, 0x6870, 0x9749, 0x6871, 0x974A, 0x6872, 0x974B, + 0x6873, 0x974C, 0x6874, 0xE8F5, 0x6875, 0x974D, 0x6876, 0xCDB0, 0x6877, 0xE8F6, 0x6878, 0x974E, 0x6879, 0x974F, 0x687A, 0x9750, + 0x687B, 0x9751, 0x687C, 0x9752, 0x687D, 0x9753, 0x687E, 0x9754, 0x687F, 0x9755, 0x6880, 0x9756, 0x6881, 0xC1BA, 0x6882, 0x9757, + 0x6883, 0xE8E8, 0x6884, 0x9758, 0x6885, 0xC3B7, 0x6886, 0xB0F0, 0x6887, 0x9759, 0x6888, 0x975A, 0x6889, 0x975B, 0x688A, 0x975C, + 0x688B, 0x975D, 0x688C, 0x975E, 0x688D, 0x975F, 0x688E, 0x9760, 0x688F, 0xE8F4, 0x6890, 0x9761, 0x6891, 0x9762, 0x6892, 0x9763, + 0x6893, 0xE8F7, 0x6894, 0x9764, 0x6895, 0x9765, 0x6896, 0x9766, 0x6897, 0xB9A3, 0x6898, 0x9767, 0x6899, 0x9768, 0x689A, 0x9769, + 0x689B, 0x976A, 0x689C, 0x976B, 0x689D, 0x976C, 0x689E, 0x976D, 0x689F, 0x976E, 0x68A0, 0x976F, 0x68A1, 0x9770, 0x68A2, 0xC9D2, + 0x68A3, 0x9771, 0x68A4, 0x9772, 0x68A5, 0x9773, 0x68A6, 0xC3CE, 0x68A7, 0xCEE0, 0x68A8, 0xC0E6, 0x68A9, 0x9774, 0x68AA, 0x9775, + 0x68AB, 0x9776, 0x68AC, 0x9777, 0x68AD, 0xCBF3, 0x68AE, 0x9778, 0x68AF, 0xCCDD, 0x68B0, 0xD0B5, 0x68B1, 0x9779, 0x68B2, 0x977A, + 0x68B3, 0xCAE1, 0x68B4, 0x977B, 0x68B5, 0xE8F3, 0x68B6, 0x977C, 0x68B7, 0x977D, 0x68B8, 0x977E, 0x68B9, 0x9780, 0x68BA, 0x9781, + 0x68BB, 0x9782, 0x68BC, 0x9783, 0x68BD, 0x9784, 0x68BE, 0x9785, 0x68BF, 0x9786, 0x68C0, 0xBCEC, 0x68C1, 0x9787, 0x68C2, 0xE8F9, + 0x68C3, 0x9788, 0x68C4, 0x9789, 0x68C5, 0x978A, 0x68C6, 0x978B, 0x68C7, 0x978C, 0x68C8, 0x978D, 0x68C9, 0xC3DE, 0x68CA, 0x978E, + 0x68CB, 0xC6E5, 0x68CC, 0x978F, 0x68CD, 0xB9F7, 0x68CE, 0x9790, 0x68CF, 0x9791, 0x68D0, 0x9792, 0x68D1, 0x9793, 0x68D2, 0xB0F4, + 0x68D3, 0x9794, 0x68D4, 0x9795, 0x68D5, 0xD7D8, 0x68D6, 0x9796, 0x68D7, 0x9797, 0x68D8, 0xBCAC, 0x68D9, 0x9798, 0x68DA, 0xC5EF, + 0x68DB, 0x9799, 0x68DC, 0x979A, 0x68DD, 0x979B, 0x68DE, 0x979C, 0x68DF, 0x979D, 0x68E0, 0xCCC4, 0x68E1, 0x979E, 0x68E2, 0x979F, + 0x68E3, 0xE9A6, 0x68E4, 0x97A0, 0x68E5, 0x97A1, 0x68E6, 0x97A2, 0x68E7, 0x97A3, 0x68E8, 0x97A4, 0x68E9, 0x97A5, 0x68EA, 0x97A6, + 0x68EB, 0x97A7, 0x68EC, 0x97A8, 0x68ED, 0x97A9, 0x68EE, 0xC9AD, 0x68EF, 0x97AA, 0x68F0, 0xE9A2, 0x68F1, 0xC0E2, 0x68F2, 0x97AB, + 0x68F3, 0x97AC, 0x68F4, 0x97AD, 0x68F5, 0xBFC3, 0x68F6, 0x97AE, 0x68F7, 0x97AF, 0x68F8, 0x97B0, 0x68F9, 0xE8FE, 0x68FA, 0xB9D7, + 0x68FB, 0x97B1, 0x68FC, 0xE8FB, 0x68FD, 0x97B2, 0x68FE, 0x97B3, 0x68FF, 0x97B4, 0x6900, 0x97B5, 0x6901, 0xE9A4, 0x6902, 0x97B6, + 0x6903, 0x97B7, 0x6904, 0x97B8, 0x6905, 0xD2CE, 0x6906, 0x97B9, 0x6907, 0x97BA, 0x6908, 0x97BB, 0x6909, 0x97BC, 0x690A, 0x97BD, + 0x690B, 0xE9A3, 0x690C, 0x97BE, 0x690D, 0xD6B2, 0x690E, 0xD7B5, 0x690F, 0x97BF, 0x6910, 0xE9A7, 0x6911, 0x97C0, 0x6912, 0xBDB7, + 0x6913, 0x97C1, 0x6914, 0x97C2, 0x6915, 0x97C3, 0x6916, 0x97C4, 0x6917, 0x97C5, 0x6918, 0x97C6, 0x6919, 0x97C7, 0x691A, 0x97C8, + 0x691B, 0x97C9, 0x691C, 0x97CA, 0x691D, 0x97CB, 0x691E, 0x97CC, 0x691F, 0xE8FC, 0x6920, 0xE8FD, 0x6921, 0x97CD, 0x6922, 0x97CE, + 0x6923, 0x97CF, 0x6924, 0xE9A1, 0x6925, 0x97D0, 0x6926, 0x97D1, 0x6927, 0x97D2, 0x6928, 0x97D3, 0x6929, 0x97D4, 0x692A, 0x97D5, + 0x692B, 0x97D6, 0x692C, 0x97D7, 0x692D, 0xCDD6, 0x692E, 0x97D8, 0x692F, 0x97D9, 0x6930, 0xD2AC, 0x6931, 0x97DA, 0x6932, 0x97DB, + 0x6933, 0x97DC, 0x6934, 0xE9B2, 0x6935, 0x97DD, 0x6936, 0x97DE, 0x6937, 0x97DF, 0x6938, 0x97E0, 0x6939, 0xE9A9, 0x693A, 0x97E1, + 0x693B, 0x97E2, 0x693C, 0x97E3, 0x693D, 0xB4AA, 0x693E, 0x97E4, 0x693F, 0xB4BB, 0x6940, 0x97E5, 0x6941, 0x97E6, 0x6942, 0xE9AB, + 0x6943, 0x97E7, 0x6944, 0x97E8, 0x6945, 0x97E9, 0x6946, 0x97EA, 0x6947, 0x97EB, 0x6948, 0x97EC, 0x6949, 0x97ED, 0x694A, 0x97EE, + 0x694B, 0x97EF, 0x694C, 0x97F0, 0x694D, 0x97F1, 0x694E, 0x97F2, 0x694F, 0x97F3, 0x6950, 0x97F4, 0x6951, 0x97F5, 0x6952, 0x97F6, + 0x6953, 0x97F7, 0x6954, 0xD0A8, 0x6955, 0x97F8, 0x6956, 0x97F9, 0x6957, 0xE9A5, 0x6958, 0x97FA, 0x6959, 0x97FB, 0x695A, 0xB3FE, + 0x695B, 0x97FC, 0x695C, 0x97FD, 0x695D, 0xE9AC, 0x695E, 0xC0E3, 0x695F, 0x97FE, 0x6960, 0xE9AA, 0x6961, 0x9840, 0x6962, 0x9841, + 0x6963, 0xE9B9, 0x6964, 0x9842, 0x6965, 0x9843, 0x6966, 0xE9B8, 0x6967, 0x9844, 0x6968, 0x9845, 0x6969, 0x9846, 0x696A, 0x9847, + 0x696B, 0xE9AE, 0x696C, 0x9848, 0x696D, 0x9849, 0x696E, 0xE8FA, 0x696F, 0x984A, 0x6970, 0x984B, 0x6971, 0xE9A8, 0x6972, 0x984C, + 0x6973, 0x984D, 0x6974, 0x984E, 0x6975, 0x984F, 0x6976, 0x9850, 0x6977, 0xBFAC, 0x6978, 0xE9B1, 0x6979, 0xE9BA, 0x697A, 0x9851, + 0x697B, 0x9852, 0x697C, 0xC2A5, 0x697D, 0x9853, 0x697E, 0x9854, 0x697F, 0x9855, 0x6980, 0xE9AF, 0x6981, 0x9856, 0x6982, 0xB8C5, + 0x6983, 0x9857, 0x6984, 0xE9AD, 0x6985, 0x9858, 0x6986, 0xD3DC, 0x6987, 0xE9B4, 0x6988, 0xE9B5, 0x6989, 0xE9B7, 0x698A, 0x9859, + 0x698B, 0x985A, 0x698C, 0x985B, 0x698D, 0xE9C7, 0x698E, 0x985C, 0x698F, 0x985D, 0x6990, 0x985E, 0x6991, 0x985F, 0x6992, 0x9860, + 0x6993, 0x9861, 0x6994, 0xC0C6, 0x6995, 0xE9C5, 0x6996, 0x9862, 0x6997, 0x9863, 0x6998, 0xE9B0, 0x6999, 0x9864, 0x699A, 0x9865, + 0x699B, 0xE9BB, 0x699C, 0xB0F1, 0x699D, 0x9866, 0x699E, 0x9867, 0x699F, 0x9868, 0x69A0, 0x9869, 0x69A1, 0x986A, 0x69A2, 0x986B, + 0x69A3, 0x986C, 0x69A4, 0x986D, 0x69A5, 0x986E, 0x69A6, 0x986F, 0x69A7, 0xE9BC, 0x69A8, 0xD5A5, 0x69A9, 0x9870, 0x69AA, 0x9871, + 0x69AB, 0xE9BE, 0x69AC, 0x9872, 0x69AD, 0xE9BF, 0x69AE, 0x9873, 0x69AF, 0x9874, 0x69B0, 0x9875, 0x69B1, 0xE9C1, 0x69B2, 0x9876, + 0x69B3, 0x9877, 0x69B4, 0xC1F1, 0x69B5, 0x9878, 0x69B6, 0x9879, 0x69B7, 0xC8B6, 0x69B8, 0x987A, 0x69B9, 0x987B, 0x69BA, 0x987C, + 0x69BB, 0xE9BD, 0x69BC, 0x987D, 0x69BD, 0x987E, 0x69BE, 0x9880, 0x69BF, 0x9881, 0x69C0, 0x9882, 0x69C1, 0xE9C2, 0x69C2, 0x9883, + 0x69C3, 0x9884, 0x69C4, 0x9885, 0x69C5, 0x9886, 0x69C6, 0x9887, 0x69C7, 0x9888, 0x69C8, 0x9889, 0x69C9, 0x988A, 0x69CA, 0xE9C3, + 0x69CB, 0x988B, 0x69CC, 0xE9B3, 0x69CD, 0x988C, 0x69CE, 0xE9B6, 0x69CF, 0x988D, 0x69D0, 0xBBB1, 0x69D1, 0x988E, 0x69D2, 0x988F, + 0x69D3, 0x9890, 0x69D4, 0xE9C0, 0x69D5, 0x9891, 0x69D6, 0x9892, 0x69D7, 0x9893, 0x69D8, 0x9894, 0x69D9, 0x9895, 0x69DA, 0x9896, + 0x69DB, 0xBCF7, 0x69DC, 0x9897, 0x69DD, 0x9898, 0x69DE, 0x9899, 0x69DF, 0xE9C4, 0x69E0, 0xE9C6, 0x69E1, 0x989A, 0x69E2, 0x989B, + 0x69E3, 0x989C, 0x69E4, 0x989D, 0x69E5, 0x989E, 0x69E6, 0x989F, 0x69E7, 0x98A0, 0x69E8, 0x98A1, 0x69E9, 0x98A2, 0x69EA, 0x98A3, + 0x69EB, 0x98A4, 0x69EC, 0x98A5, 0x69ED, 0xE9CA, 0x69EE, 0x98A6, 0x69EF, 0x98A7, 0x69F0, 0x98A8, 0x69F1, 0x98A9, 0x69F2, 0xE9CE, + 0x69F3, 0x98AA, 0x69F4, 0x98AB, 0x69F5, 0x98AC, 0x69F6, 0x98AD, 0x69F7, 0x98AE, 0x69F8, 0x98AF, 0x69F9, 0x98B0, 0x69FA, 0x98B1, + 0x69FB, 0x98B2, 0x69FC, 0x98B3, 0x69FD, 0xB2DB, 0x69FE, 0x98B4, 0x69FF, 0xE9C8, 0x6A00, 0x98B5, 0x6A01, 0x98B6, 0x6A02, 0x98B7, + 0x6A03, 0x98B8, 0x6A04, 0x98B9, 0x6A05, 0x98BA, 0x6A06, 0x98BB, 0x6A07, 0x98BC, 0x6A08, 0x98BD, 0x6A09, 0x98BE, 0x6A0A, 0xB7AE, + 0x6A0B, 0x98BF, 0x6A0C, 0x98C0, 0x6A0D, 0x98C1, 0x6A0E, 0x98C2, 0x6A0F, 0x98C3, 0x6A10, 0x98C4, 0x6A11, 0x98C5, 0x6A12, 0x98C6, + 0x6A13, 0x98C7, 0x6A14, 0x98C8, 0x6A15, 0x98C9, 0x6A16, 0x98CA, 0x6A17, 0xE9CB, 0x6A18, 0xE9CC, 0x6A19, 0x98CB, 0x6A1A, 0x98CC, + 0x6A1B, 0x98CD, 0x6A1C, 0x98CE, 0x6A1D, 0x98CF, 0x6A1E, 0x98D0, 0x6A1F, 0xD5C1, 0x6A20, 0x98D1, 0x6A21, 0xC4A3, 0x6A22, 0x98D2, + 0x6A23, 0x98D3, 0x6A24, 0x98D4, 0x6A25, 0x98D5, 0x6A26, 0x98D6, 0x6A27, 0x98D7, 0x6A28, 0xE9D8, 0x6A29, 0x98D8, 0x6A2A, 0xBAE1, + 0x6A2B, 0x98D9, 0x6A2C, 0x98DA, 0x6A2D, 0x98DB, 0x6A2E, 0x98DC, 0x6A2F, 0xE9C9, 0x6A30, 0x98DD, 0x6A31, 0xD3A3, 0x6A32, 0x98DE, + 0x6A33, 0x98DF, 0x6A34, 0x98E0, 0x6A35, 0xE9D4, 0x6A36, 0x98E1, 0x6A37, 0x98E2, 0x6A38, 0x98E3, 0x6A39, 0x98E4, 0x6A3A, 0x98E5, + 0x6A3B, 0x98E6, 0x6A3C, 0x98E7, 0x6A3D, 0xE9D7, 0x6A3E, 0xE9D0, 0x6A3F, 0x98E8, 0x6A40, 0x98E9, 0x6A41, 0x98EA, 0x6A42, 0x98EB, + 0x6A43, 0x98EC, 0x6A44, 0xE9CF, 0x6A45, 0x98ED, 0x6A46, 0x98EE, 0x6A47, 0xC7C1, 0x6A48, 0x98EF, 0x6A49, 0x98F0, 0x6A4A, 0x98F1, + 0x6A4B, 0x98F2, 0x6A4C, 0x98F3, 0x6A4D, 0x98F4, 0x6A4E, 0x98F5, 0x6A4F, 0x98F6, 0x6A50, 0xE9D2, 0x6A51, 0x98F7, 0x6A52, 0x98F8, + 0x6A53, 0x98F9, 0x6A54, 0x98FA, 0x6A55, 0x98FB, 0x6A56, 0x98FC, 0x6A57, 0x98FD, 0x6A58, 0xE9D9, 0x6A59, 0xB3C8, 0x6A5A, 0x98FE, + 0x6A5B, 0xE9D3, 0x6A5C, 0x9940, 0x6A5D, 0x9941, 0x6A5E, 0x9942, 0x6A5F, 0x9943, 0x6A60, 0x9944, 0x6A61, 0xCFF0, 0x6A62, 0x9945, + 0x6A63, 0x9946, 0x6A64, 0x9947, 0x6A65, 0xE9CD, 0x6A66, 0x9948, 0x6A67, 0x9949, 0x6A68, 0x994A, 0x6A69, 0x994B, 0x6A6A, 0x994C, + 0x6A6B, 0x994D, 0x6A6C, 0x994E, 0x6A6D, 0x994F, 0x6A6E, 0x9950, 0x6A6F, 0x9951, 0x6A70, 0x9952, 0x6A71, 0xB3F7, 0x6A72, 0x9953, + 0x6A73, 0x9954, 0x6A74, 0x9955, 0x6A75, 0x9956, 0x6A76, 0x9957, 0x6A77, 0x9958, 0x6A78, 0x9959, 0x6A79, 0xE9D6, 0x6A7A, 0x995A, + 0x6A7B, 0x995B, 0x6A7C, 0xE9DA, 0x6A7D, 0x995C, 0x6A7E, 0x995D, 0x6A7F, 0x995E, 0x6A80, 0xCCB4, 0x6A81, 0x995F, 0x6A82, 0x9960, + 0x6A83, 0x9961, 0x6A84, 0xCFAD, 0x6A85, 0x9962, 0x6A86, 0x9963, 0x6A87, 0x9964, 0x6A88, 0x9965, 0x6A89, 0x9966, 0x6A8A, 0x9967, + 0x6A8B, 0x9968, 0x6A8C, 0x9969, 0x6A8D, 0x996A, 0x6A8E, 0xE9D5, 0x6A8F, 0x996B, 0x6A90, 0xE9DC, 0x6A91, 0xE9DB, 0x6A92, 0x996C, + 0x6A93, 0x996D, 0x6A94, 0x996E, 0x6A95, 0x996F, 0x6A96, 0x9970, 0x6A97, 0xE9DE, 0x6A98, 0x9971, 0x6A99, 0x9972, 0x6A9A, 0x9973, + 0x6A9B, 0x9974, 0x6A9C, 0x9975, 0x6A9D, 0x9976, 0x6A9E, 0x9977, 0x6A9F, 0x9978, 0x6AA0, 0xE9D1, 0x6AA1, 0x9979, 0x6AA2, 0x997A, + 0x6AA3, 0x997B, 0x6AA4, 0x997C, 0x6AA5, 0x997D, 0x6AA6, 0x997E, 0x6AA7, 0x9980, 0x6AA8, 0x9981, 0x6AA9, 0xE9DD, 0x6AAA, 0x9982, + 0x6AAB, 0xE9DF, 0x6AAC, 0xC3CA, 0x6AAD, 0x9983, 0x6AAE, 0x9984, 0x6AAF, 0x9985, 0x6AB0, 0x9986, 0x6AB1, 0x9987, 0x6AB2, 0x9988, + 0x6AB3, 0x9989, 0x6AB4, 0x998A, 0x6AB5, 0x998B, 0x6AB6, 0x998C, 0x6AB7, 0x998D, 0x6AB8, 0x998E, 0x6AB9, 0x998F, 0x6ABA, 0x9990, + 0x6ABB, 0x9991, 0x6ABC, 0x9992, 0x6ABD, 0x9993, 0x6ABE, 0x9994, 0x6ABF, 0x9995, 0x6AC0, 0x9996, 0x6AC1, 0x9997, 0x6AC2, 0x9998, + 0x6AC3, 0x9999, 0x6AC4, 0x999A, 0x6AC5, 0x999B, 0x6AC6, 0x999C, 0x6AC7, 0x999D, 0x6AC8, 0x999E, 0x6AC9, 0x999F, 0x6ACA, 0x99A0, + 0x6ACB, 0x99A1, 0x6ACC, 0x99A2, 0x6ACD, 0x99A3, 0x6ACE, 0x99A4, 0x6ACF, 0x99A5, 0x6AD0, 0x99A6, 0x6AD1, 0x99A7, 0x6AD2, 0x99A8, + 0x6AD3, 0x99A9, 0x6AD4, 0x99AA, 0x6AD5, 0x99AB, 0x6AD6, 0x99AC, 0x6AD7, 0x99AD, 0x6AD8, 0x99AE, 0x6AD9, 0x99AF, 0x6ADA, 0x99B0, + 0x6ADB, 0x99B1, 0x6ADC, 0x99B2, 0x6ADD, 0x99B3, 0x6ADE, 0x99B4, 0x6ADF, 0x99B5, 0x6AE0, 0x99B6, 0x6AE1, 0x99B7, 0x6AE2, 0x99B8, + 0x6AE3, 0x99B9, 0x6AE4, 0x99BA, 0x6AE5, 0x99BB, 0x6AE6, 0x99BC, 0x6AE7, 0x99BD, 0x6AE8, 0x99BE, 0x6AE9, 0x99BF, 0x6AEA, 0x99C0, + 0x6AEB, 0x99C1, 0x6AEC, 0x99C2, 0x6AED, 0x99C3, 0x6AEE, 0x99C4, 0x6AEF, 0x99C5, 0x6AF0, 0x99C6, 0x6AF1, 0x99C7, 0x6AF2, 0x99C8, + 0x6AF3, 0x99C9, 0x6AF4, 0x99CA, 0x6AF5, 0x99CB, 0x6AF6, 0x99CC, 0x6AF7, 0x99CD, 0x6AF8, 0x99CE, 0x6AF9, 0x99CF, 0x6AFA, 0x99D0, + 0x6AFB, 0x99D1, 0x6AFC, 0x99D2, 0x6AFD, 0x99D3, 0x6AFE, 0x99D4, 0x6AFF, 0x99D5, 0x6B00, 0x99D6, 0x6B01, 0x99D7, 0x6B02, 0x99D8, + 0x6B03, 0x99D9, 0x6B04, 0x99DA, 0x6B05, 0x99DB, 0x6B06, 0x99DC, 0x6B07, 0x99DD, 0x6B08, 0x99DE, 0x6B09, 0x99DF, 0x6B0A, 0x99E0, + 0x6B0B, 0x99E1, 0x6B0C, 0x99E2, 0x6B0D, 0x99E3, 0x6B0E, 0x99E4, 0x6B0F, 0x99E5, 0x6B10, 0x99E6, 0x6B11, 0x99E7, 0x6B12, 0x99E8, + 0x6B13, 0x99E9, 0x6B14, 0x99EA, 0x6B15, 0x99EB, 0x6B16, 0x99EC, 0x6B17, 0x99ED, 0x6B18, 0x99EE, 0x6B19, 0x99EF, 0x6B1A, 0x99F0, + 0x6B1B, 0x99F1, 0x6B1C, 0x99F2, 0x6B1D, 0x99F3, 0x6B1E, 0x99F4, 0x6B1F, 0x99F5, 0x6B20, 0xC7B7, 0x6B21, 0xB4CE, 0x6B22, 0xBBB6, + 0x6B23, 0xD0C0, 0x6B24, 0xECA3, 0x6B25, 0x99F6, 0x6B26, 0x99F7, 0x6B27, 0xC5B7, 0x6B28, 0x99F8, 0x6B29, 0x99F9, 0x6B2A, 0x99FA, + 0x6B2B, 0x99FB, 0x6B2C, 0x99FC, 0x6B2D, 0x99FD, 0x6B2E, 0x99FE, 0x6B2F, 0x9A40, 0x6B30, 0x9A41, 0x6B31, 0x9A42, 0x6B32, 0xD3FB, + 0x6B33, 0x9A43, 0x6B34, 0x9A44, 0x6B35, 0x9A45, 0x6B36, 0x9A46, 0x6B37, 0xECA4, 0x6B38, 0x9A47, 0x6B39, 0xECA5, 0x6B3A, 0xC6DB, + 0x6B3B, 0x9A48, 0x6B3C, 0x9A49, 0x6B3D, 0x9A4A, 0x6B3E, 0xBFEE, 0x6B3F, 0x9A4B, 0x6B40, 0x9A4C, 0x6B41, 0x9A4D, 0x6B42, 0x9A4E, + 0x6B43, 0xECA6, 0x6B44, 0x9A4F, 0x6B45, 0x9A50, 0x6B46, 0xECA7, 0x6B47, 0xD0AA, 0x6B48, 0x9A51, 0x6B49, 0xC7B8, 0x6B4A, 0x9A52, + 0x6B4B, 0x9A53, 0x6B4C, 0xB8E8, 0x6B4D, 0x9A54, 0x6B4E, 0x9A55, 0x6B4F, 0x9A56, 0x6B50, 0x9A57, 0x6B51, 0x9A58, 0x6B52, 0x9A59, + 0x6B53, 0x9A5A, 0x6B54, 0x9A5B, 0x6B55, 0x9A5C, 0x6B56, 0x9A5D, 0x6B57, 0x9A5E, 0x6B58, 0x9A5F, 0x6B59, 0xECA8, 0x6B5A, 0x9A60, + 0x6B5B, 0x9A61, 0x6B5C, 0x9A62, 0x6B5D, 0x9A63, 0x6B5E, 0x9A64, 0x6B5F, 0x9A65, 0x6B60, 0x9A66, 0x6B61, 0x9A67, 0x6B62, 0xD6B9, + 0x6B63, 0xD5FD, 0x6B64, 0xB4CB, 0x6B65, 0xB2BD, 0x6B66, 0xCEE4, 0x6B67, 0xC6E7, 0x6B68, 0x9A68, 0x6B69, 0x9A69, 0x6B6A, 0xCDE1, + 0x6B6B, 0x9A6A, 0x6B6C, 0x9A6B, 0x6B6D, 0x9A6C, 0x6B6E, 0x9A6D, 0x6B6F, 0x9A6E, 0x6B70, 0x9A6F, 0x6B71, 0x9A70, 0x6B72, 0x9A71, + 0x6B73, 0x9A72, 0x6B74, 0x9A73, 0x6B75, 0x9A74, 0x6B76, 0x9A75, 0x6B77, 0x9A76, 0x6B78, 0x9A77, 0x6B79, 0xB4F5, 0x6B7A, 0x9A78, + 0x6B7B, 0xCBC0, 0x6B7C, 0xBCDF, 0x6B7D, 0x9A79, 0x6B7E, 0x9A7A, 0x6B7F, 0x9A7B, 0x6B80, 0x9A7C, 0x6B81, 0xE9E2, 0x6B82, 0xE9E3, + 0x6B83, 0xD1EA, 0x6B84, 0xE9E5, 0x6B85, 0x9A7D, 0x6B86, 0xB4F9, 0x6B87, 0xE9E4, 0x6B88, 0x9A7E, 0x6B89, 0xD1B3, 0x6B8A, 0xCAE2, + 0x6B8B, 0xB2D0, 0x6B8C, 0x9A80, 0x6B8D, 0xE9E8, 0x6B8E, 0x9A81, 0x6B8F, 0x9A82, 0x6B90, 0x9A83, 0x6B91, 0x9A84, 0x6B92, 0xE9E6, + 0x6B93, 0xE9E7, 0x6B94, 0x9A85, 0x6B95, 0x9A86, 0x6B96, 0xD6B3, 0x6B97, 0x9A87, 0x6B98, 0x9A88, 0x6B99, 0x9A89, 0x6B9A, 0xE9E9, + 0x6B9B, 0xE9EA, 0x6B9C, 0x9A8A, 0x6B9D, 0x9A8B, 0x6B9E, 0x9A8C, 0x6B9F, 0x9A8D, 0x6BA0, 0x9A8E, 0x6BA1, 0xE9EB, 0x6BA2, 0x9A8F, + 0x6BA3, 0x9A90, 0x6BA4, 0x9A91, 0x6BA5, 0x9A92, 0x6BA6, 0x9A93, 0x6BA7, 0x9A94, 0x6BA8, 0x9A95, 0x6BA9, 0x9A96, 0x6BAA, 0xE9EC, + 0x6BAB, 0x9A97, 0x6BAC, 0x9A98, 0x6BAD, 0x9A99, 0x6BAE, 0x9A9A, 0x6BAF, 0x9A9B, 0x6BB0, 0x9A9C, 0x6BB1, 0x9A9D, 0x6BB2, 0x9A9E, + 0x6BB3, 0xECAF, 0x6BB4, 0xC5B9, 0x6BB5, 0xB6CE, 0x6BB6, 0x9A9F, 0x6BB7, 0xD2F3, 0x6BB8, 0x9AA0, 0x6BB9, 0x9AA1, 0x6BBA, 0x9AA2, + 0x6BBB, 0x9AA3, 0x6BBC, 0x9AA4, 0x6BBD, 0x9AA5, 0x6BBE, 0x9AA6, 0x6BBF, 0xB5EE, 0x6BC0, 0x9AA7, 0x6BC1, 0xBBD9, 0x6BC2, 0xECB1, + 0x6BC3, 0x9AA8, 0x6BC4, 0x9AA9, 0x6BC5, 0xD2E3, 0x6BC6, 0x9AAA, 0x6BC7, 0x9AAB, 0x6BC8, 0x9AAC, 0x6BC9, 0x9AAD, 0x6BCA, 0x9AAE, + 0x6BCB, 0xCEE3, 0x6BCC, 0x9AAF, 0x6BCD, 0xC4B8, 0x6BCE, 0x9AB0, 0x6BCF, 0xC3BF, 0x6BD0, 0x9AB1, 0x6BD1, 0x9AB2, 0x6BD2, 0xB6BE, + 0x6BD3, 0xD8B9, 0x6BD4, 0xB1C8, 0x6BD5, 0xB1CF, 0x6BD6, 0xB1D1, 0x6BD7, 0xC5FE, 0x6BD8, 0x9AB3, 0x6BD9, 0xB1D0, 0x6BDA, 0x9AB4, + 0x6BDB, 0xC3AB, 0x6BDC, 0x9AB5, 0x6BDD, 0x9AB6, 0x6BDE, 0x9AB7, 0x6BDF, 0x9AB8, 0x6BE0, 0x9AB9, 0x6BE1, 0xD5B1, 0x6BE2, 0x9ABA, + 0x6BE3, 0x9ABB, 0x6BE4, 0x9ABC, 0x6BE5, 0x9ABD, 0x6BE6, 0x9ABE, 0x6BE7, 0x9ABF, 0x6BE8, 0x9AC0, 0x6BE9, 0x9AC1, 0x6BEA, 0xEBA4, + 0x6BEB, 0xBAC1, 0x6BEC, 0x9AC2, 0x6BED, 0x9AC3, 0x6BEE, 0x9AC4, 0x6BEF, 0xCCBA, 0x6BF0, 0x9AC5, 0x6BF1, 0x9AC6, 0x6BF2, 0x9AC7, + 0x6BF3, 0xEBA5, 0x6BF4, 0x9AC8, 0x6BF5, 0xEBA7, 0x6BF6, 0x9AC9, 0x6BF7, 0x9ACA, 0x6BF8, 0x9ACB, 0x6BF9, 0xEBA8, 0x6BFA, 0x9ACC, + 0x6BFB, 0x9ACD, 0x6BFC, 0x9ACE, 0x6BFD, 0xEBA6, 0x6BFE, 0x9ACF, 0x6BFF, 0x9AD0, 0x6C00, 0x9AD1, 0x6C01, 0x9AD2, 0x6C02, 0x9AD3, + 0x6C03, 0x9AD4, 0x6C04, 0x9AD5, 0x6C05, 0xEBA9, 0x6C06, 0xEBAB, 0x6C07, 0xEBAA, 0x6C08, 0x9AD6, 0x6C09, 0x9AD7, 0x6C0A, 0x9AD8, + 0x6C0B, 0x9AD9, 0x6C0C, 0x9ADA, 0x6C0D, 0xEBAC, 0x6C0E, 0x9ADB, 0x6C0F, 0xCACF, 0x6C10, 0xD8B5, 0x6C11, 0xC3F1, 0x6C12, 0x9ADC, + 0x6C13, 0xC3A5, 0x6C14, 0xC6F8, 0x6C15, 0xEBAD, 0x6C16, 0xC4CA, 0x6C17, 0x9ADD, 0x6C18, 0xEBAE, 0x6C19, 0xEBAF, 0x6C1A, 0xEBB0, + 0x6C1B, 0xB7D5, 0x6C1C, 0x9ADE, 0x6C1D, 0x9ADF, 0x6C1E, 0x9AE0, 0x6C1F, 0xB7FA, 0x6C20, 0x9AE1, 0x6C21, 0xEBB1, 0x6C22, 0xC7E2, + 0x6C23, 0x9AE2, 0x6C24, 0xEBB3, 0x6C25, 0x9AE3, 0x6C26, 0xBAA4, 0x6C27, 0xD1F5, 0x6C28, 0xB0B1, 0x6C29, 0xEBB2, 0x6C2A, 0xEBB4, + 0x6C2B, 0x9AE4, 0x6C2C, 0x9AE5, 0x6C2D, 0x9AE6, 0x6C2E, 0xB5AA, 0x6C2F, 0xC2C8, 0x6C30, 0xC7E8, 0x6C31, 0x9AE7, 0x6C32, 0xEBB5, + 0x6C33, 0x9AE8, 0x6C34, 0xCBAE, 0x6C35, 0xE3DF, 0x6C36, 0x9AE9, 0x6C37, 0x9AEA, 0x6C38, 0xD3C0, 0x6C39, 0x9AEB, 0x6C3A, 0x9AEC, + 0x6C3B, 0x9AED, 0x6C3C, 0x9AEE, 0x6C3D, 0xD9DB, 0x6C3E, 0x9AEF, 0x6C3F, 0x9AF0, 0x6C40, 0xCDA1, 0x6C41, 0xD6AD, 0x6C42, 0xC7F3, + 0x6C43, 0x9AF1, 0x6C44, 0x9AF2, 0x6C45, 0x9AF3, 0x6C46, 0xD9E0, 0x6C47, 0xBBE3, 0x6C48, 0x9AF4, 0x6C49, 0xBABA, 0x6C4A, 0xE3E2, + 0x6C4B, 0x9AF5, 0x6C4C, 0x9AF6, 0x6C4D, 0x9AF7, 0x6C4E, 0x9AF8, 0x6C4F, 0x9AF9, 0x6C50, 0xCFAB, 0x6C51, 0x9AFA, 0x6C52, 0x9AFB, + 0x6C53, 0x9AFC, 0x6C54, 0xE3E0, 0x6C55, 0xC9C7, 0x6C56, 0x9AFD, 0x6C57, 0xBAB9, 0x6C58, 0x9AFE, 0x6C59, 0x9B40, 0x6C5A, 0x9B41, + 0x6C5B, 0xD1B4, 0x6C5C, 0xE3E1, 0x6C5D, 0xC8EA, 0x6C5E, 0xB9AF, 0x6C5F, 0xBDAD, 0x6C60, 0xB3D8, 0x6C61, 0xCEDB, 0x6C62, 0x9B42, + 0x6C63, 0x9B43, 0x6C64, 0xCCC0, 0x6C65, 0x9B44, 0x6C66, 0x9B45, 0x6C67, 0x9B46, 0x6C68, 0xE3E8, 0x6C69, 0xE3E9, 0x6C6A, 0xCDF4, + 0x6C6B, 0x9B47, 0x6C6C, 0x9B48, 0x6C6D, 0x9B49, 0x6C6E, 0x9B4A, 0x6C6F, 0x9B4B, 0x6C70, 0xCCAD, 0x6C71, 0x9B4C, 0x6C72, 0xBCB3, + 0x6C73, 0x9B4D, 0x6C74, 0xE3EA, 0x6C75, 0x9B4E, 0x6C76, 0xE3EB, 0x6C77, 0x9B4F, 0x6C78, 0x9B50, 0x6C79, 0xD0DA, 0x6C7A, 0x9B51, + 0x6C7B, 0x9B52, 0x6C7C, 0x9B53, 0x6C7D, 0xC6FB, 0x6C7E, 0xB7DA, 0x6C7F, 0x9B54, 0x6C80, 0x9B55, 0x6C81, 0xC7DF, 0x6C82, 0xD2CA, + 0x6C83, 0xCED6, 0x6C84, 0x9B56, 0x6C85, 0xE3E4, 0x6C86, 0xE3EC, 0x6C87, 0x9B57, 0x6C88, 0xC9F2, 0x6C89, 0xB3C1, 0x6C8A, 0x9B58, + 0x6C8B, 0x9B59, 0x6C8C, 0xE3E7, 0x6C8D, 0x9B5A, 0x6C8E, 0x9B5B, 0x6C8F, 0xC6E3, 0x6C90, 0xE3E5, 0x6C91, 0x9B5C, 0x6C92, 0x9B5D, + 0x6C93, 0xEDB3, 0x6C94, 0xE3E6, 0x6C95, 0x9B5E, 0x6C96, 0x9B5F, 0x6C97, 0x9B60, 0x6C98, 0x9B61, 0x6C99, 0xC9B3, 0x6C9A, 0x9B62, + 0x6C9B, 0xC5E6, 0x6C9C, 0x9B63, 0x6C9D, 0x9B64, 0x6C9E, 0x9B65, 0x6C9F, 0xB9B5, 0x6CA0, 0x9B66, 0x6CA1, 0xC3BB, 0x6CA2, 0x9B67, + 0x6CA3, 0xE3E3, 0x6CA4, 0xC5BD, 0x6CA5, 0xC1A4, 0x6CA6, 0xC2D9, 0x6CA7, 0xB2D7, 0x6CA8, 0x9B68, 0x6CA9, 0xE3ED, 0x6CAA, 0xBBA6, + 0x6CAB, 0xC4AD, 0x6CAC, 0x9B69, 0x6CAD, 0xE3F0, 0x6CAE, 0xBEDA, 0x6CAF, 0x9B6A, 0x6CB0, 0x9B6B, 0x6CB1, 0xE3FB, 0x6CB2, 0xE3F5, + 0x6CB3, 0xBAD3, 0x6CB4, 0x9B6C, 0x6CB5, 0x9B6D, 0x6CB6, 0x9B6E, 0x6CB7, 0x9B6F, 0x6CB8, 0xB7D0, 0x6CB9, 0xD3CD, 0x6CBA, 0x9B70, + 0x6CBB, 0xD6CE, 0x6CBC, 0xD5D3, 0x6CBD, 0xB9C1, 0x6CBE, 0xD5B4, 0x6CBF, 0xD1D8, 0x6CC0, 0x9B71, 0x6CC1, 0x9B72, 0x6CC2, 0x9B73, + 0x6CC3, 0x9B74, 0x6CC4, 0xD0B9, 0x6CC5, 0xC7F6, 0x6CC6, 0x9B75, 0x6CC7, 0x9B76, 0x6CC8, 0x9B77, 0x6CC9, 0xC8AA, 0x6CCA, 0xB2B4, + 0x6CCB, 0x9B78, 0x6CCC, 0xC3DA, 0x6CCD, 0x9B79, 0x6CCE, 0x9B7A, 0x6CCF, 0x9B7B, 0x6CD0, 0xE3EE, 0x6CD1, 0x9B7C, 0x6CD2, 0x9B7D, + 0x6CD3, 0xE3FC, 0x6CD4, 0xE3EF, 0x6CD5, 0xB7A8, 0x6CD6, 0xE3F7, 0x6CD7, 0xE3F4, 0x6CD8, 0x9B7E, 0x6CD9, 0x9B80, 0x6CDA, 0x9B81, + 0x6CDB, 0xB7BA, 0x6CDC, 0x9B82, 0x6CDD, 0x9B83, 0x6CDE, 0xC5A2, 0x6CDF, 0x9B84, 0x6CE0, 0xE3F6, 0x6CE1, 0xC5DD, 0x6CE2, 0xB2A8, + 0x6CE3, 0xC6FC, 0x6CE4, 0x9B85, 0x6CE5, 0xC4E0, 0x6CE6, 0x9B86, 0x6CE7, 0x9B87, 0x6CE8, 0xD7A2, 0x6CE9, 0x9B88, 0x6CEA, 0xC0E1, + 0x6CEB, 0xE3F9, 0x6CEC, 0x9B89, 0x6CED, 0x9B8A, 0x6CEE, 0xE3FA, 0x6CEF, 0xE3FD, 0x6CF0, 0xCCA9, 0x6CF1, 0xE3F3, 0x6CF2, 0x9B8B, + 0x6CF3, 0xD3BE, 0x6CF4, 0x9B8C, 0x6CF5, 0xB1C3, 0x6CF6, 0xEDB4, 0x6CF7, 0xE3F1, 0x6CF8, 0xE3F2, 0x6CF9, 0x9B8D, 0x6CFA, 0xE3F8, + 0x6CFB, 0xD0BA, 0x6CFC, 0xC6C3, 0x6CFD, 0xD4F3, 0x6CFE, 0xE3FE, 0x6CFF, 0x9B8E, 0x6D00, 0x9B8F, 0x6D01, 0xBDE0, 0x6D02, 0x9B90, + 0x6D03, 0x9B91, 0x6D04, 0xE4A7, 0x6D05, 0x9B92, 0x6D06, 0x9B93, 0x6D07, 0xE4A6, 0x6D08, 0x9B94, 0x6D09, 0x9B95, 0x6D0A, 0x9B96, + 0x6D0B, 0xD1F3, 0x6D0C, 0xE4A3, 0x6D0D, 0x9B97, 0x6D0E, 0xE4A9, 0x6D0F, 0x9B98, 0x6D10, 0x9B99, 0x6D11, 0x9B9A, 0x6D12, 0xC8F7, + 0x6D13, 0x9B9B, 0x6D14, 0x9B9C, 0x6D15, 0x9B9D, 0x6D16, 0x9B9E, 0x6D17, 0xCFB4, 0x6D18, 0x9B9F, 0x6D19, 0xE4A8, 0x6D1A, 0xE4AE, + 0x6D1B, 0xC2E5, 0x6D1C, 0x9BA0, 0x6D1D, 0x9BA1, 0x6D1E, 0xB6B4, 0x6D1F, 0x9BA2, 0x6D20, 0x9BA3, 0x6D21, 0x9BA4, 0x6D22, 0x9BA5, + 0x6D23, 0x9BA6, 0x6D24, 0x9BA7, 0x6D25, 0xBDF2, 0x6D26, 0x9BA8, 0x6D27, 0xE4A2, 0x6D28, 0x9BA9, 0x6D29, 0x9BAA, 0x6D2A, 0xBAE9, + 0x6D2B, 0xE4AA, 0x6D2C, 0x9BAB, 0x6D2D, 0x9BAC, 0x6D2E, 0xE4AC, 0x6D2F, 0x9BAD, 0x6D30, 0x9BAE, 0x6D31, 0xB6FD, 0x6D32, 0xD6DE, + 0x6D33, 0xE4B2, 0x6D34, 0x9BAF, 0x6D35, 0xE4AD, 0x6D36, 0x9BB0, 0x6D37, 0x9BB1, 0x6D38, 0x9BB2, 0x6D39, 0xE4A1, 0x6D3A, 0x9BB3, + 0x6D3B, 0xBBEE, 0x6D3C, 0xCDDD, 0x6D3D, 0xC7A2, 0x6D3E, 0xC5C9, 0x6D3F, 0x9BB4, 0x6D40, 0x9BB5, 0x6D41, 0xC1F7, 0x6D42, 0x9BB6, + 0x6D43, 0xE4A4, 0x6D44, 0x9BB7, 0x6D45, 0xC7B3, 0x6D46, 0xBDAC, 0x6D47, 0xBDBD, 0x6D48, 0xE4A5, 0x6D49, 0x9BB8, 0x6D4A, 0xD7C7, + 0x6D4B, 0xB2E2, 0x6D4C, 0x9BB9, 0x6D4D, 0xE4AB, 0x6D4E, 0xBCC3, 0x6D4F, 0xE4AF, 0x6D50, 0x9BBA, 0x6D51, 0xBBEB, 0x6D52, 0xE4B0, + 0x6D53, 0xC5A8, 0x6D54, 0xE4B1, 0x6D55, 0x9BBB, 0x6D56, 0x9BBC, 0x6D57, 0x9BBD, 0x6D58, 0x9BBE, 0x6D59, 0xD5E3, 0x6D5A, 0xBFA3, + 0x6D5B, 0x9BBF, 0x6D5C, 0xE4BA, 0x6D5D, 0x9BC0, 0x6D5E, 0xE4B7, 0x6D5F, 0x9BC1, 0x6D60, 0xE4BB, 0x6D61, 0x9BC2, 0x6D62, 0x9BC3, + 0x6D63, 0xE4BD, 0x6D64, 0x9BC4, 0x6D65, 0x9BC5, 0x6D66, 0xC6D6, 0x6D67, 0x9BC6, 0x6D68, 0x9BC7, 0x6D69, 0xBAC6, 0x6D6A, 0xC0CB, + 0x6D6B, 0x9BC8, 0x6D6C, 0x9BC9, 0x6D6D, 0x9BCA, 0x6D6E, 0xB8A1, 0x6D6F, 0xE4B4, 0x6D70, 0x9BCB, 0x6D71, 0x9BCC, 0x6D72, 0x9BCD, + 0x6D73, 0x9BCE, 0x6D74, 0xD4A1, 0x6D75, 0x9BCF, 0x6D76, 0x9BD0, 0x6D77, 0xBAA3, 0x6D78, 0xBDFE, 0x6D79, 0x9BD1, 0x6D7A, 0x9BD2, + 0x6D7B, 0x9BD3, 0x6D7C, 0xE4BC, 0x6D7D, 0x9BD4, 0x6D7E, 0x9BD5, 0x6D7F, 0x9BD6, 0x6D80, 0x9BD7, 0x6D81, 0x9BD8, 0x6D82, 0xCDBF, + 0x6D83, 0x9BD9, 0x6D84, 0x9BDA, 0x6D85, 0xC4F9, 0x6D86, 0x9BDB, 0x6D87, 0x9BDC, 0x6D88, 0xCFFB, 0x6D89, 0xC9E6, 0x6D8A, 0x9BDD, + 0x6D8B, 0x9BDE, 0x6D8C, 0xD3BF, 0x6D8D, 0x9BDF, 0x6D8E, 0xCFD1, 0x6D8F, 0x9BE0, 0x6D90, 0x9BE1, 0x6D91, 0xE4B3, 0x6D92, 0x9BE2, + 0x6D93, 0xE4B8, 0x6D94, 0xE4B9, 0x6D95, 0xCCE9, 0x6D96, 0x9BE3, 0x6D97, 0x9BE4, 0x6D98, 0x9BE5, 0x6D99, 0x9BE6, 0x6D9A, 0x9BE7, + 0x6D9B, 0xCCCE, 0x6D9C, 0x9BE8, 0x6D9D, 0xC0D4, 0x6D9E, 0xE4B5, 0x6D9F, 0xC1B0, 0x6DA0, 0xE4B6, 0x6DA1, 0xCED0, 0x6DA2, 0x9BE9, + 0x6DA3, 0xBBC1, 0x6DA4, 0xB5D3, 0x6DA5, 0x9BEA, 0x6DA6, 0xC8F3, 0x6DA7, 0xBDA7, 0x6DA8, 0xD5C7, 0x6DA9, 0xC9AC, 0x6DAA, 0xB8A2, + 0x6DAB, 0xE4CA, 0x6DAC, 0x9BEB, 0x6DAD, 0x9BEC, 0x6DAE, 0xE4CC, 0x6DAF, 0xD1C4, 0x6DB0, 0x9BED, 0x6DB1, 0x9BEE, 0x6DB2, 0xD2BA, + 0x6DB3, 0x9BEF, 0x6DB4, 0x9BF0, 0x6DB5, 0xBAAD, 0x6DB6, 0x9BF1, 0x6DB7, 0x9BF2, 0x6DB8, 0xBAD4, 0x6DB9, 0x9BF3, 0x6DBA, 0x9BF4, + 0x6DBB, 0x9BF5, 0x6DBC, 0x9BF6, 0x6DBD, 0x9BF7, 0x6DBE, 0x9BF8, 0x6DBF, 0xE4C3, 0x6DC0, 0xB5ED, 0x6DC1, 0x9BF9, 0x6DC2, 0x9BFA, + 0x6DC3, 0x9BFB, 0x6DC4, 0xD7CD, 0x6DC5, 0xE4C0, 0x6DC6, 0xCFFD, 0x6DC7, 0xE4BF, 0x6DC8, 0x9BFC, 0x6DC9, 0x9BFD, 0x6DCA, 0x9BFE, + 0x6DCB, 0xC1DC, 0x6DCC, 0xCCCA, 0x6DCD, 0x9C40, 0x6DCE, 0x9C41, 0x6DCF, 0x9C42, 0x6DD0, 0x9C43, 0x6DD1, 0xCAE7, 0x6DD2, 0x9C44, + 0x6DD3, 0x9C45, 0x6DD4, 0x9C46, 0x6DD5, 0x9C47, 0x6DD6, 0xC4D7, 0x6DD7, 0x9C48, 0x6DD8, 0xCCD4, 0x6DD9, 0xE4C8, 0x6DDA, 0x9C49, + 0x6DDB, 0x9C4A, 0x6DDC, 0x9C4B, 0x6DDD, 0xE4C7, 0x6DDE, 0xE4C1, 0x6DDF, 0x9C4C, 0x6DE0, 0xE4C4, 0x6DE1, 0xB5AD, 0x6DE2, 0x9C4D, + 0x6DE3, 0x9C4E, 0x6DE4, 0xD3D9, 0x6DE5, 0x9C4F, 0x6DE6, 0xE4C6, 0x6DE7, 0x9C50, 0x6DE8, 0x9C51, 0x6DE9, 0x9C52, 0x6DEA, 0x9C53, + 0x6DEB, 0xD2F9, 0x6DEC, 0xB4E3, 0x6DED, 0x9C54, 0x6DEE, 0xBBB4, 0x6DEF, 0x9C55, 0x6DF0, 0x9C56, 0x6DF1, 0xC9EE, 0x6DF2, 0x9C57, + 0x6DF3, 0xB4BE, 0x6DF4, 0x9C58, 0x6DF5, 0x9C59, 0x6DF6, 0x9C5A, 0x6DF7, 0xBBEC, 0x6DF8, 0x9C5B, 0x6DF9, 0xD1CD, 0x6DFA, 0x9C5C, + 0x6DFB, 0xCCED, 0x6DFC, 0xEDB5, 0x6DFD, 0x9C5D, 0x6DFE, 0x9C5E, 0x6DFF, 0x9C5F, 0x6E00, 0x9C60, 0x6E01, 0x9C61, 0x6E02, 0x9C62, + 0x6E03, 0x9C63, 0x6E04, 0x9C64, 0x6E05, 0xC7E5, 0x6E06, 0x9C65, 0x6E07, 0x9C66, 0x6E08, 0x9C67, 0x6E09, 0x9C68, 0x6E0A, 0xD4A8, + 0x6E0B, 0x9C69, 0x6E0C, 0xE4CB, 0x6E0D, 0xD7D5, 0x6E0E, 0xE4C2, 0x6E0F, 0x9C6A, 0x6E10, 0xBDA5, 0x6E11, 0xE4C5, 0x6E12, 0x9C6B, + 0x6E13, 0x9C6C, 0x6E14, 0xD3E6, 0x6E15, 0x9C6D, 0x6E16, 0xE4C9, 0x6E17, 0xC9F8, 0x6E18, 0x9C6E, 0x6E19, 0x9C6F, 0x6E1A, 0xE4BE, + 0x6E1B, 0x9C70, 0x6E1C, 0x9C71, 0x6E1D, 0xD3E5, 0x6E1E, 0x9C72, 0x6E1F, 0x9C73, 0x6E20, 0xC7FE, 0x6E21, 0xB6C9, 0x6E22, 0x9C74, + 0x6E23, 0xD4FC, 0x6E24, 0xB2B3, 0x6E25, 0xE4D7, 0x6E26, 0x9C75, 0x6E27, 0x9C76, 0x6E28, 0x9C77, 0x6E29, 0xCEC2, 0x6E2A, 0x9C78, + 0x6E2B, 0xE4CD, 0x6E2C, 0x9C79, 0x6E2D, 0xCEBC, 0x6E2E, 0x9C7A, 0x6E2F, 0xB8DB, 0x6E30, 0x9C7B, 0x6E31, 0x9C7C, 0x6E32, 0xE4D6, + 0x6E33, 0x9C7D, 0x6E34, 0xBFCA, 0x6E35, 0x9C7E, 0x6E36, 0x9C80, 0x6E37, 0x9C81, 0x6E38, 0xD3CE, 0x6E39, 0x9C82, 0x6E3A, 0xC3EC, + 0x6E3B, 0x9C83, 0x6E3C, 0x9C84, 0x6E3D, 0x9C85, 0x6E3E, 0x9C86, 0x6E3F, 0x9C87, 0x6E40, 0x9C88, 0x6E41, 0x9C89, 0x6E42, 0x9C8A, + 0x6E43, 0xC5C8, 0x6E44, 0xE4D8, 0x6E45, 0x9C8B, 0x6E46, 0x9C8C, 0x6E47, 0x9C8D, 0x6E48, 0x9C8E, 0x6E49, 0x9C8F, 0x6E4A, 0x9C90, + 0x6E4B, 0x9C91, 0x6E4C, 0x9C92, 0x6E4D, 0xCDC4, 0x6E4E, 0xE4CF, 0x6E4F, 0x9C93, 0x6E50, 0x9C94, 0x6E51, 0x9C95, 0x6E52, 0x9C96, + 0x6E53, 0xE4D4, 0x6E54, 0xE4D5, 0x6E55, 0x9C97, 0x6E56, 0xBAFE, 0x6E57, 0x9C98, 0x6E58, 0xCFE6, 0x6E59, 0x9C99, 0x6E5A, 0x9C9A, + 0x6E5B, 0xD5BF, 0x6E5C, 0x9C9B, 0x6E5D, 0x9C9C, 0x6E5E, 0x9C9D, 0x6E5F, 0xE4D2, 0x6E60, 0x9C9E, 0x6E61, 0x9C9F, 0x6E62, 0x9CA0, + 0x6E63, 0x9CA1, 0x6E64, 0x9CA2, 0x6E65, 0x9CA3, 0x6E66, 0x9CA4, 0x6E67, 0x9CA5, 0x6E68, 0x9CA6, 0x6E69, 0x9CA7, 0x6E6A, 0x9CA8, + 0x6E6B, 0xE4D0, 0x6E6C, 0x9CA9, 0x6E6D, 0x9CAA, 0x6E6E, 0xE4CE, 0x6E6F, 0x9CAB, 0x6E70, 0x9CAC, 0x6E71, 0x9CAD, 0x6E72, 0x9CAE, + 0x6E73, 0x9CAF, 0x6E74, 0x9CB0, 0x6E75, 0x9CB1, 0x6E76, 0x9CB2, 0x6E77, 0x9CB3, 0x6E78, 0x9CB4, 0x6E79, 0x9CB5, 0x6E7A, 0x9CB6, + 0x6E7B, 0x9CB7, 0x6E7C, 0x9CB8, 0x6E7D, 0x9CB9, 0x6E7E, 0xCDE5, 0x6E7F, 0xCAAA, 0x6E80, 0x9CBA, 0x6E81, 0x9CBB, 0x6E82, 0x9CBC, + 0x6E83, 0xC0A3, 0x6E84, 0x9CBD, 0x6E85, 0xBDA6, 0x6E86, 0xE4D3, 0x6E87, 0x9CBE, 0x6E88, 0x9CBF, 0x6E89, 0xB8C8, 0x6E8A, 0x9CC0, + 0x6E8B, 0x9CC1, 0x6E8C, 0x9CC2, 0x6E8D, 0x9CC3, 0x6E8E, 0x9CC4, 0x6E8F, 0xE4E7, 0x6E90, 0xD4B4, 0x6E91, 0x9CC5, 0x6E92, 0x9CC6, + 0x6E93, 0x9CC7, 0x6E94, 0x9CC8, 0x6E95, 0x9CC9, 0x6E96, 0x9CCA, 0x6E97, 0x9CCB, 0x6E98, 0xE4DB, 0x6E99, 0x9CCC, 0x6E9A, 0x9CCD, + 0x6E9B, 0x9CCE, 0x6E9C, 0xC1EF, 0x6E9D, 0x9CCF, 0x6E9E, 0x9CD0, 0x6E9F, 0xE4E9, 0x6EA0, 0x9CD1, 0x6EA1, 0x9CD2, 0x6EA2, 0xD2E7, + 0x6EA3, 0x9CD3, 0x6EA4, 0x9CD4, 0x6EA5, 0xE4DF, 0x6EA6, 0x9CD5, 0x6EA7, 0xE4E0, 0x6EA8, 0x9CD6, 0x6EA9, 0x9CD7, 0x6EAA, 0xCFAA, + 0x6EAB, 0x9CD8, 0x6EAC, 0x9CD9, 0x6EAD, 0x9CDA, 0x6EAE, 0x9CDB, 0x6EAF, 0xCBDD, 0x6EB0, 0x9CDC, 0x6EB1, 0xE4DA, 0x6EB2, 0xE4D1, + 0x6EB3, 0x9CDD, 0x6EB4, 0xE4E5, 0x6EB5, 0x9CDE, 0x6EB6, 0xC8DC, 0x6EB7, 0xE4E3, 0x6EB8, 0x9CDF, 0x6EB9, 0x9CE0, 0x6EBA, 0xC4E7, + 0x6EBB, 0xE4E2, 0x6EBC, 0x9CE1, 0x6EBD, 0xE4E1, 0x6EBE, 0x9CE2, 0x6EBF, 0x9CE3, 0x6EC0, 0x9CE4, 0x6EC1, 0xB3FC, 0x6EC2, 0xE4E8, + 0x6EC3, 0x9CE5, 0x6EC4, 0x9CE6, 0x6EC5, 0x9CE7, 0x6EC6, 0x9CE8, 0x6EC7, 0xB5E1, 0x6EC8, 0x9CE9, 0x6EC9, 0x9CEA, 0x6ECA, 0x9CEB, + 0x6ECB, 0xD7CC, 0x6ECC, 0x9CEC, 0x6ECD, 0x9CED, 0x6ECE, 0x9CEE, 0x6ECF, 0xE4E6, 0x6ED0, 0x9CEF, 0x6ED1, 0xBBAC, 0x6ED2, 0x9CF0, + 0x6ED3, 0xD7D2, 0x6ED4, 0xCCCF, 0x6ED5, 0xEBF8, 0x6ED6, 0x9CF1, 0x6ED7, 0xE4E4, 0x6ED8, 0x9CF2, 0x6ED9, 0x9CF3, 0x6EDA, 0xB9F6, + 0x6EDB, 0x9CF4, 0x6EDC, 0x9CF5, 0x6EDD, 0x9CF6, 0x6EDE, 0xD6CD, 0x6EDF, 0xE4D9, 0x6EE0, 0xE4DC, 0x6EE1, 0xC2FA, 0x6EE2, 0xE4DE, + 0x6EE3, 0x9CF7, 0x6EE4, 0xC2CB, 0x6EE5, 0xC0C4, 0x6EE6, 0xC2D0, 0x6EE7, 0x9CF8, 0x6EE8, 0xB1F5, 0x6EE9, 0xCCB2, 0x6EEA, 0x9CF9, + 0x6EEB, 0x9CFA, 0x6EEC, 0x9CFB, 0x6EED, 0x9CFC, 0x6EEE, 0x9CFD, 0x6EEF, 0x9CFE, 0x6EF0, 0x9D40, 0x6EF1, 0x9D41, 0x6EF2, 0x9D42, + 0x6EF3, 0x9D43, 0x6EF4, 0xB5CE, 0x6EF5, 0x9D44, 0x6EF6, 0x9D45, 0x6EF7, 0x9D46, 0x6EF8, 0x9D47, 0x6EF9, 0xE4EF, 0x6EFA, 0x9D48, + 0x6EFB, 0x9D49, 0x6EFC, 0x9D4A, 0x6EFD, 0x9D4B, 0x6EFE, 0x9D4C, 0x6EFF, 0x9D4D, 0x6F00, 0x9D4E, 0x6F01, 0x9D4F, 0x6F02, 0xC6AF, + 0x6F03, 0x9D50, 0x6F04, 0x9D51, 0x6F05, 0x9D52, 0x6F06, 0xC6E1, 0x6F07, 0x9D53, 0x6F08, 0x9D54, 0x6F09, 0xE4F5, 0x6F0A, 0x9D55, + 0x6F0B, 0x9D56, 0x6F0C, 0x9D57, 0x6F0D, 0x9D58, 0x6F0E, 0x9D59, 0x6F0F, 0xC2A9, 0x6F10, 0x9D5A, 0x6F11, 0x9D5B, 0x6F12, 0x9D5C, + 0x6F13, 0xC0EC, 0x6F14, 0xD1DD, 0x6F15, 0xE4EE, 0x6F16, 0x9D5D, 0x6F17, 0x9D5E, 0x6F18, 0x9D5F, 0x6F19, 0x9D60, 0x6F1A, 0x9D61, + 0x6F1B, 0x9D62, 0x6F1C, 0x9D63, 0x6F1D, 0x9D64, 0x6F1E, 0x9D65, 0x6F1F, 0x9D66, 0x6F20, 0xC4AE, 0x6F21, 0x9D67, 0x6F22, 0x9D68, + 0x6F23, 0x9D69, 0x6F24, 0xE4ED, 0x6F25, 0x9D6A, 0x6F26, 0x9D6B, 0x6F27, 0x9D6C, 0x6F28, 0x9D6D, 0x6F29, 0xE4F6, 0x6F2A, 0xE4F4, + 0x6F2B, 0xC2FE, 0x6F2C, 0x9D6E, 0x6F2D, 0xE4DD, 0x6F2E, 0x9D6F, 0x6F2F, 0xE4F0, 0x6F30, 0x9D70, 0x6F31, 0xCAFE, 0x6F32, 0x9D71, + 0x6F33, 0xD5C4, 0x6F34, 0x9D72, 0x6F35, 0x9D73, 0x6F36, 0xE4F1, 0x6F37, 0x9D74, 0x6F38, 0x9D75, 0x6F39, 0x9D76, 0x6F3A, 0x9D77, + 0x6F3B, 0x9D78, 0x6F3C, 0x9D79, 0x6F3D, 0x9D7A, 0x6F3E, 0xD1FA, 0x6F3F, 0x9D7B, 0x6F40, 0x9D7C, 0x6F41, 0x9D7D, 0x6F42, 0x9D7E, + 0x6F43, 0x9D80, 0x6F44, 0x9D81, 0x6F45, 0x9D82, 0x6F46, 0xE4EB, 0x6F47, 0xE4EC, 0x6F48, 0x9D83, 0x6F49, 0x9D84, 0x6F4A, 0x9D85, + 0x6F4B, 0xE4F2, 0x6F4C, 0x9D86, 0x6F4D, 0xCEAB, 0x6F4E, 0x9D87, 0x6F4F, 0x9D88, 0x6F50, 0x9D89, 0x6F51, 0x9D8A, 0x6F52, 0x9D8B, + 0x6F53, 0x9D8C, 0x6F54, 0x9D8D, 0x6F55, 0x9D8E, 0x6F56, 0x9D8F, 0x6F57, 0x9D90, 0x6F58, 0xC5CB, 0x6F59, 0x9D91, 0x6F5A, 0x9D92, + 0x6F5B, 0x9D93, 0x6F5C, 0xC7B1, 0x6F5D, 0x9D94, 0x6F5E, 0xC2BA, 0x6F5F, 0x9D95, 0x6F60, 0x9D96, 0x6F61, 0x9D97, 0x6F62, 0xE4EA, + 0x6F63, 0x9D98, 0x6F64, 0x9D99, 0x6F65, 0x9D9A, 0x6F66, 0xC1CA, 0x6F67, 0x9D9B, 0x6F68, 0x9D9C, 0x6F69, 0x9D9D, 0x6F6A, 0x9D9E, + 0x6F6B, 0x9D9F, 0x6F6C, 0x9DA0, 0x6F6D, 0xCCB6, 0x6F6E, 0xB3B1, 0x6F6F, 0x9DA1, 0x6F70, 0x9DA2, 0x6F71, 0x9DA3, 0x6F72, 0xE4FB, + 0x6F73, 0x9DA4, 0x6F74, 0xE4F3, 0x6F75, 0x9DA5, 0x6F76, 0x9DA6, 0x6F77, 0x9DA7, 0x6F78, 0xE4FA, 0x6F79, 0x9DA8, 0x6F7A, 0xE4FD, + 0x6F7B, 0x9DA9, 0x6F7C, 0xE4FC, 0x6F7D, 0x9DAA, 0x6F7E, 0x9DAB, 0x6F7F, 0x9DAC, 0x6F80, 0x9DAD, 0x6F81, 0x9DAE, 0x6F82, 0x9DAF, + 0x6F83, 0x9DB0, 0x6F84, 0xB3CE, 0x6F85, 0x9DB1, 0x6F86, 0x9DB2, 0x6F87, 0x9DB3, 0x6F88, 0xB3BA, 0x6F89, 0xE4F7, 0x6F8A, 0x9DB4, + 0x6F8B, 0x9DB5, 0x6F8C, 0xE4F9, 0x6F8D, 0xE4F8, 0x6F8E, 0xC5EC, 0x6F8F, 0x9DB6, 0x6F90, 0x9DB7, 0x6F91, 0x9DB8, 0x6F92, 0x9DB9, + 0x6F93, 0x9DBA, 0x6F94, 0x9DBB, 0x6F95, 0x9DBC, 0x6F96, 0x9DBD, 0x6F97, 0x9DBE, 0x6F98, 0x9DBF, 0x6F99, 0x9DC0, 0x6F9A, 0x9DC1, + 0x6F9B, 0x9DC2, 0x6F9C, 0xC0BD, 0x6F9D, 0x9DC3, 0x6F9E, 0x9DC4, 0x6F9F, 0x9DC5, 0x6FA0, 0x9DC6, 0x6FA1, 0xD4E8, 0x6FA2, 0x9DC7, + 0x6FA3, 0x9DC8, 0x6FA4, 0x9DC9, 0x6FA5, 0x9DCA, 0x6FA6, 0x9DCB, 0x6FA7, 0xE5A2, 0x6FA8, 0x9DCC, 0x6FA9, 0x9DCD, 0x6FAA, 0x9DCE, + 0x6FAB, 0x9DCF, 0x6FAC, 0x9DD0, 0x6FAD, 0x9DD1, 0x6FAE, 0x9DD2, 0x6FAF, 0x9DD3, 0x6FB0, 0x9DD4, 0x6FB1, 0x9DD5, 0x6FB2, 0x9DD6, + 0x6FB3, 0xB0C4, 0x6FB4, 0x9DD7, 0x6FB5, 0x9DD8, 0x6FB6, 0xE5A4, 0x6FB7, 0x9DD9, 0x6FB8, 0x9DDA, 0x6FB9, 0xE5A3, 0x6FBA, 0x9DDB, + 0x6FBB, 0x9DDC, 0x6FBC, 0x9DDD, 0x6FBD, 0x9DDE, 0x6FBE, 0x9DDF, 0x6FBF, 0x9DE0, 0x6FC0, 0xBCA4, 0x6FC1, 0x9DE1, 0x6FC2, 0xE5A5, + 0x6FC3, 0x9DE2, 0x6FC4, 0x9DE3, 0x6FC5, 0x9DE4, 0x6FC6, 0x9DE5, 0x6FC7, 0x9DE6, 0x6FC8, 0x9DE7, 0x6FC9, 0xE5A1, 0x6FCA, 0x9DE8, + 0x6FCB, 0x9DE9, 0x6FCC, 0x9DEA, 0x6FCD, 0x9DEB, 0x6FCE, 0x9DEC, 0x6FCF, 0x9DED, 0x6FD0, 0x9DEE, 0x6FD1, 0xE4FE, 0x6FD2, 0xB1F4, + 0x6FD3, 0x9DEF, 0x6FD4, 0x9DF0, 0x6FD5, 0x9DF1, 0x6FD6, 0x9DF2, 0x6FD7, 0x9DF3, 0x6FD8, 0x9DF4, 0x6FD9, 0x9DF5, 0x6FDA, 0x9DF6, + 0x6FDB, 0x9DF7, 0x6FDC, 0x9DF8, 0x6FDD, 0x9DF9, 0x6FDE, 0xE5A8, 0x6FDF, 0x9DFA, 0x6FE0, 0xE5A9, 0x6FE1, 0xE5A6, 0x6FE2, 0x9DFB, + 0x6FE3, 0x9DFC, 0x6FE4, 0x9DFD, 0x6FE5, 0x9DFE, 0x6FE6, 0x9E40, 0x6FE7, 0x9E41, 0x6FE8, 0x9E42, 0x6FE9, 0x9E43, 0x6FEA, 0x9E44, + 0x6FEB, 0x9E45, 0x6FEC, 0x9E46, 0x6FED, 0x9E47, 0x6FEE, 0xE5A7, 0x6FEF, 0xE5AA, 0x6FF0, 0x9E48, 0x6FF1, 0x9E49, 0x6FF2, 0x9E4A, + 0x6FF3, 0x9E4B, 0x6FF4, 0x9E4C, 0x6FF5, 0x9E4D, 0x6FF6, 0x9E4E, 0x6FF7, 0x9E4F, 0x6FF8, 0x9E50, 0x6FF9, 0x9E51, 0x6FFA, 0x9E52, + 0x6FFB, 0x9E53, 0x6FFC, 0x9E54, 0x6FFD, 0x9E55, 0x6FFE, 0x9E56, 0x6FFF, 0x9E57, 0x7000, 0x9E58, 0x7001, 0x9E59, 0x7002, 0x9E5A, + 0x7003, 0x9E5B, 0x7004, 0x9E5C, 0x7005, 0x9E5D, 0x7006, 0x9E5E, 0x7007, 0x9E5F, 0x7008, 0x9E60, 0x7009, 0x9E61, 0x700A, 0x9E62, + 0x700B, 0x9E63, 0x700C, 0x9E64, 0x700D, 0x9E65, 0x700E, 0x9E66, 0x700F, 0x9E67, 0x7010, 0x9E68, 0x7011, 0xC6D9, 0x7012, 0x9E69, + 0x7013, 0x9E6A, 0x7014, 0x9E6B, 0x7015, 0x9E6C, 0x7016, 0x9E6D, 0x7017, 0x9E6E, 0x7018, 0x9E6F, 0x7019, 0x9E70, 0x701A, 0xE5AB, + 0x701B, 0xE5AD, 0x701C, 0x9E71, 0x701D, 0x9E72, 0x701E, 0x9E73, 0x701F, 0x9E74, 0x7020, 0x9E75, 0x7021, 0x9E76, 0x7022, 0x9E77, + 0x7023, 0xE5AC, 0x7024, 0x9E78, 0x7025, 0x9E79, 0x7026, 0x9E7A, 0x7027, 0x9E7B, 0x7028, 0x9E7C, 0x7029, 0x9E7D, 0x702A, 0x9E7E, + 0x702B, 0x9E80, 0x702C, 0x9E81, 0x702D, 0x9E82, 0x702E, 0x9E83, 0x702F, 0x9E84, 0x7030, 0x9E85, 0x7031, 0x9E86, 0x7032, 0x9E87, + 0x7033, 0x9E88, 0x7034, 0x9E89, 0x7035, 0xE5AF, 0x7036, 0x9E8A, 0x7037, 0x9E8B, 0x7038, 0x9E8C, 0x7039, 0xE5AE, 0x703A, 0x9E8D, + 0x703B, 0x9E8E, 0x703C, 0x9E8F, 0x703D, 0x9E90, 0x703E, 0x9E91, 0x703F, 0x9E92, 0x7040, 0x9E93, 0x7041, 0x9E94, 0x7042, 0x9E95, + 0x7043, 0x9E96, 0x7044, 0x9E97, 0x7045, 0x9E98, 0x7046, 0x9E99, 0x7047, 0x9E9A, 0x7048, 0x9E9B, 0x7049, 0x9E9C, 0x704A, 0x9E9D, + 0x704B, 0x9E9E, 0x704C, 0xB9E0, 0x704D, 0x9E9F, 0x704E, 0x9EA0, 0x704F, 0xE5B0, 0x7050, 0x9EA1, 0x7051, 0x9EA2, 0x7052, 0x9EA3, + 0x7053, 0x9EA4, 0x7054, 0x9EA5, 0x7055, 0x9EA6, 0x7056, 0x9EA7, 0x7057, 0x9EA8, 0x7058, 0x9EA9, 0x7059, 0x9EAA, 0x705A, 0x9EAB, + 0x705B, 0x9EAC, 0x705C, 0x9EAD, 0x705D, 0x9EAE, 0x705E, 0xE5B1, 0x705F, 0x9EAF, 0x7060, 0x9EB0, 0x7061, 0x9EB1, 0x7062, 0x9EB2, + 0x7063, 0x9EB3, 0x7064, 0x9EB4, 0x7065, 0x9EB5, 0x7066, 0x9EB6, 0x7067, 0x9EB7, 0x7068, 0x9EB8, 0x7069, 0x9EB9, 0x706A, 0x9EBA, + 0x706B, 0xBBF0, 0x706C, 0xECE1, 0x706D, 0xC3F0, 0x706E, 0x9EBB, 0x706F, 0xB5C6, 0x7070, 0xBBD2, 0x7071, 0x9EBC, 0x7072, 0x9EBD, + 0x7073, 0x9EBE, 0x7074, 0x9EBF, 0x7075, 0xC1E9, 0x7076, 0xD4EE, 0x7077, 0x9EC0, 0x7078, 0xBEC4, 0x7079, 0x9EC1, 0x707A, 0x9EC2, + 0x707B, 0x9EC3, 0x707C, 0xD7C6, 0x707D, 0x9EC4, 0x707E, 0xD4D6, 0x707F, 0xB2D3, 0x7080, 0xECBE, 0x7081, 0x9EC5, 0x7082, 0x9EC6, + 0x7083, 0x9EC7, 0x7084, 0x9EC8, 0x7085, 0xEAC1, 0x7086, 0x9EC9, 0x7087, 0x9ECA, 0x7088, 0x9ECB, 0x7089, 0xC2AF, 0x708A, 0xB4B6, + 0x708B, 0x9ECC, 0x708C, 0x9ECD, 0x708D, 0x9ECE, 0x708E, 0xD1D7, 0x708F, 0x9ECF, 0x7090, 0x9ED0, 0x7091, 0x9ED1, 0x7092, 0xB3B4, + 0x7093, 0x9ED2, 0x7094, 0xC8B2, 0x7095, 0xBFBB, 0x7096, 0xECC0, 0x7097, 0x9ED3, 0x7098, 0x9ED4, 0x7099, 0xD6CB, 0x709A, 0x9ED5, + 0x709B, 0x9ED6, 0x709C, 0xECBF, 0x709D, 0xECC1, 0x709E, 0x9ED7, 0x709F, 0x9ED8, 0x70A0, 0x9ED9, 0x70A1, 0x9EDA, 0x70A2, 0x9EDB, + 0x70A3, 0x9EDC, 0x70A4, 0x9EDD, 0x70A5, 0x9EDE, 0x70A6, 0x9EDF, 0x70A7, 0x9EE0, 0x70A8, 0x9EE1, 0x70A9, 0x9EE2, 0x70AA, 0x9EE3, + 0x70AB, 0xECC5, 0x70AC, 0xBEE6, 0x70AD, 0xCCBF, 0x70AE, 0xC5DA, 0x70AF, 0xBEBC, 0x70B0, 0x9EE4, 0x70B1, 0xECC6, 0x70B2, 0x9EE5, + 0x70B3, 0xB1FE, 0x70B4, 0x9EE6, 0x70B5, 0x9EE7, 0x70B6, 0x9EE8, 0x70B7, 0xECC4, 0x70B8, 0xD5A8, 0x70B9, 0xB5E3, 0x70BA, 0x9EE9, + 0x70BB, 0xECC2, 0x70BC, 0xC1B6, 0x70BD, 0xB3E3, 0x70BE, 0x9EEA, 0x70BF, 0x9EEB, 0x70C0, 0xECC3, 0x70C1, 0xCBB8, 0x70C2, 0xC0C3, + 0x70C3, 0xCCFE, 0x70C4, 0x9EEC, 0x70C5, 0x9EED, 0x70C6, 0x9EEE, 0x70C7, 0x9EEF, 0x70C8, 0xC1D2, 0x70C9, 0x9EF0, 0x70CA, 0xECC8, + 0x70CB, 0x9EF1, 0x70CC, 0x9EF2, 0x70CD, 0x9EF3, 0x70CE, 0x9EF4, 0x70CF, 0x9EF5, 0x70D0, 0x9EF6, 0x70D1, 0x9EF7, 0x70D2, 0x9EF8, + 0x70D3, 0x9EF9, 0x70D4, 0x9EFA, 0x70D5, 0x9EFB, 0x70D6, 0x9EFC, 0x70D7, 0x9EFD, 0x70D8, 0xBAE6, 0x70D9, 0xC0D3, 0x70DA, 0x9EFE, + 0x70DB, 0xD6F2, 0x70DC, 0x9F40, 0x70DD, 0x9F41, 0x70DE, 0x9F42, 0x70DF, 0xD1CC, 0x70E0, 0x9F43, 0x70E1, 0x9F44, 0x70E2, 0x9F45, + 0x70E3, 0x9F46, 0x70E4, 0xBFBE, 0x70E5, 0x9F47, 0x70E6, 0xB7B3, 0x70E7, 0xC9D5, 0x70E8, 0xECC7, 0x70E9, 0xBBE2, 0x70EA, 0x9F48, + 0x70EB, 0xCCCC, 0x70EC, 0xBDFD, 0x70ED, 0xC8C8, 0x70EE, 0x9F49, 0x70EF, 0xCFA9, 0x70F0, 0x9F4A, 0x70F1, 0x9F4B, 0x70F2, 0x9F4C, + 0x70F3, 0x9F4D, 0x70F4, 0x9F4E, 0x70F5, 0x9F4F, 0x70F6, 0x9F50, 0x70F7, 0xCDE9, 0x70F8, 0x9F51, 0x70F9, 0xC5EB, 0x70FA, 0x9F52, + 0x70FB, 0x9F53, 0x70FC, 0x9F54, 0x70FD, 0xB7E9, 0x70FE, 0x9F55, 0x70FF, 0x9F56, 0x7100, 0x9F57, 0x7101, 0x9F58, 0x7102, 0x9F59, + 0x7103, 0x9F5A, 0x7104, 0x9F5B, 0x7105, 0x9F5C, 0x7106, 0x9F5D, 0x7107, 0x9F5E, 0x7108, 0x9F5F, 0x7109, 0xD1C9, 0x710A, 0xBAB8, + 0x710B, 0x9F60, 0x710C, 0x9F61, 0x710D, 0x9F62, 0x710E, 0x9F63, 0x710F, 0x9F64, 0x7110, 0xECC9, 0x7111, 0x9F65, 0x7112, 0x9F66, + 0x7113, 0xECCA, 0x7114, 0x9F67, 0x7115, 0xBBC0, 0x7116, 0xECCB, 0x7117, 0x9F68, 0x7118, 0xECE2, 0x7119, 0xB1BA, 0x711A, 0xB7D9, + 0x711B, 0x9F69, 0x711C, 0x9F6A, 0x711D, 0x9F6B, 0x711E, 0x9F6C, 0x711F, 0x9F6D, 0x7120, 0x9F6E, 0x7121, 0x9F6F, 0x7122, 0x9F70, + 0x7123, 0x9F71, 0x7124, 0x9F72, 0x7125, 0x9F73, 0x7126, 0xBDB9, 0x7127, 0x9F74, 0x7128, 0x9F75, 0x7129, 0x9F76, 0x712A, 0x9F77, + 0x712B, 0x9F78, 0x712C, 0x9F79, 0x712D, 0x9F7A, 0x712E, 0x9F7B, 0x712F, 0xECCC, 0x7130, 0xD1E6, 0x7131, 0xECCD, 0x7132, 0x9F7C, + 0x7133, 0x9F7D, 0x7134, 0x9F7E, 0x7135, 0x9F80, 0x7136, 0xC8BB, 0x7137, 0x9F81, 0x7138, 0x9F82, 0x7139, 0x9F83, 0x713A, 0x9F84, + 0x713B, 0x9F85, 0x713C, 0x9F86, 0x713D, 0x9F87, 0x713E, 0x9F88, 0x713F, 0x9F89, 0x7140, 0x9F8A, 0x7141, 0x9F8B, 0x7142, 0x9F8C, + 0x7143, 0x9F8D, 0x7144, 0x9F8E, 0x7145, 0xECD1, 0x7146, 0x9F8F, 0x7147, 0x9F90, 0x7148, 0x9F91, 0x7149, 0x9F92, 0x714A, 0xECD3, + 0x714B, 0x9F93, 0x714C, 0xBBCD, 0x714D, 0x9F94, 0x714E, 0xBCE5, 0x714F, 0x9F95, 0x7150, 0x9F96, 0x7151, 0x9F97, 0x7152, 0x9F98, + 0x7153, 0x9F99, 0x7154, 0x9F9A, 0x7155, 0x9F9B, 0x7156, 0x9F9C, 0x7157, 0x9F9D, 0x7158, 0x9F9E, 0x7159, 0x9F9F, 0x715A, 0x9FA0, + 0x715B, 0x9FA1, 0x715C, 0xECCF, 0x715D, 0x9FA2, 0x715E, 0xC9B7, 0x715F, 0x9FA3, 0x7160, 0x9FA4, 0x7161, 0x9FA5, 0x7162, 0x9FA6, + 0x7163, 0x9FA7, 0x7164, 0xC3BA, 0x7165, 0x9FA8, 0x7166, 0xECE3, 0x7167, 0xD5D5, 0x7168, 0xECD0, 0x7169, 0x9FA9, 0x716A, 0x9FAA, + 0x716B, 0x9FAB, 0x716C, 0x9FAC, 0x716D, 0x9FAD, 0x716E, 0xD6F3, 0x716F, 0x9FAE, 0x7170, 0x9FAF, 0x7171, 0x9FB0, 0x7172, 0xECD2, + 0x7173, 0xECCE, 0x7174, 0x9FB1, 0x7175, 0x9FB2, 0x7176, 0x9FB3, 0x7177, 0x9FB4, 0x7178, 0xECD4, 0x7179, 0x9FB5, 0x717A, 0xECD5, + 0x717B, 0x9FB6, 0x717C, 0x9FB7, 0x717D, 0xC9BF, 0x717E, 0x9FB8, 0x717F, 0x9FB9, 0x7180, 0x9FBA, 0x7181, 0x9FBB, 0x7182, 0x9FBC, + 0x7183, 0x9FBD, 0x7184, 0xCFA8, 0x7185, 0x9FBE, 0x7186, 0x9FBF, 0x7187, 0x9FC0, 0x7188, 0x9FC1, 0x7189, 0x9FC2, 0x718A, 0xD0DC, + 0x718B, 0x9FC3, 0x718C, 0x9FC4, 0x718D, 0x9FC5, 0x718E, 0x9FC6, 0x718F, 0xD1AC, 0x7190, 0x9FC7, 0x7191, 0x9FC8, 0x7192, 0x9FC9, + 0x7193, 0x9FCA, 0x7194, 0xC8DB, 0x7195, 0x9FCB, 0x7196, 0x9FCC, 0x7197, 0x9FCD, 0x7198, 0xECD6, 0x7199, 0xCEF5, 0x719A, 0x9FCE, + 0x719B, 0x9FCF, 0x719C, 0x9FD0, 0x719D, 0x9FD1, 0x719E, 0x9FD2, 0x719F, 0xCAEC, 0x71A0, 0xECDA, 0x71A1, 0x9FD3, 0x71A2, 0x9FD4, + 0x71A3, 0x9FD5, 0x71A4, 0x9FD6, 0x71A5, 0x9FD7, 0x71A6, 0x9FD8, 0x71A7, 0x9FD9, 0x71A8, 0xECD9, 0x71A9, 0x9FDA, 0x71AA, 0x9FDB, + 0x71AB, 0x9FDC, 0x71AC, 0xB0BE, 0x71AD, 0x9FDD, 0x71AE, 0x9FDE, 0x71AF, 0x9FDF, 0x71B0, 0x9FE0, 0x71B1, 0x9FE1, 0x71B2, 0x9FE2, + 0x71B3, 0xECD7, 0x71B4, 0x9FE3, 0x71B5, 0xECD8, 0x71B6, 0x9FE4, 0x71B7, 0x9FE5, 0x71B8, 0x9FE6, 0x71B9, 0xECE4, 0x71BA, 0x9FE7, + 0x71BB, 0x9FE8, 0x71BC, 0x9FE9, 0x71BD, 0x9FEA, 0x71BE, 0x9FEB, 0x71BF, 0x9FEC, 0x71C0, 0x9FED, 0x71C1, 0x9FEE, 0x71C2, 0x9FEF, + 0x71C3, 0xC8BC, 0x71C4, 0x9FF0, 0x71C5, 0x9FF1, 0x71C6, 0x9FF2, 0x71C7, 0x9FF3, 0x71C8, 0x9FF4, 0x71C9, 0x9FF5, 0x71CA, 0x9FF6, + 0x71CB, 0x9FF7, 0x71CC, 0x9FF8, 0x71CD, 0x9FF9, 0x71CE, 0xC1C7, 0x71CF, 0x9FFA, 0x71D0, 0x9FFB, 0x71D1, 0x9FFC, 0x71D2, 0x9FFD, + 0x71D3, 0x9FFE, 0x71D4, 0xECDC, 0x71D5, 0xD1E0, 0x71D6, 0xA040, 0x71D7, 0xA041, 0x71D8, 0xA042, 0x71D9, 0xA043, 0x71DA, 0xA044, + 0x71DB, 0xA045, 0x71DC, 0xA046, 0x71DD, 0xA047, 0x71DE, 0xA048, 0x71DF, 0xA049, 0x71E0, 0xECDB, 0x71E1, 0xA04A, 0x71E2, 0xA04B, + 0x71E3, 0xA04C, 0x71E4, 0xA04D, 0x71E5, 0xD4EF, 0x71E6, 0xA04E, 0x71E7, 0xECDD, 0x71E8, 0xA04F, 0x71E9, 0xA050, 0x71EA, 0xA051, + 0x71EB, 0xA052, 0x71EC, 0xA053, 0x71ED, 0xA054, 0x71EE, 0xDBC6, 0x71EF, 0xA055, 0x71F0, 0xA056, 0x71F1, 0xA057, 0x71F2, 0xA058, + 0x71F3, 0xA059, 0x71F4, 0xA05A, 0x71F5, 0xA05B, 0x71F6, 0xA05C, 0x71F7, 0xA05D, 0x71F8, 0xA05E, 0x71F9, 0xECDE, 0x71FA, 0xA05F, + 0x71FB, 0xA060, 0x71FC, 0xA061, 0x71FD, 0xA062, 0x71FE, 0xA063, 0x71FF, 0xA064, 0x7200, 0xA065, 0x7201, 0xA066, 0x7202, 0xA067, + 0x7203, 0xA068, 0x7204, 0xA069, 0x7205, 0xA06A, 0x7206, 0xB1AC, 0x7207, 0xA06B, 0x7208, 0xA06C, 0x7209, 0xA06D, 0x720A, 0xA06E, + 0x720B, 0xA06F, 0x720C, 0xA070, 0x720D, 0xA071, 0x720E, 0xA072, 0x720F, 0xA073, 0x7210, 0xA074, 0x7211, 0xA075, 0x7212, 0xA076, + 0x7213, 0xA077, 0x7214, 0xA078, 0x7215, 0xA079, 0x7216, 0xA07A, 0x7217, 0xA07B, 0x7218, 0xA07C, 0x7219, 0xA07D, 0x721A, 0xA07E, + 0x721B, 0xA080, 0x721C, 0xA081, 0x721D, 0xECDF, 0x721E, 0xA082, 0x721F, 0xA083, 0x7220, 0xA084, 0x7221, 0xA085, 0x7222, 0xA086, + 0x7223, 0xA087, 0x7224, 0xA088, 0x7225, 0xA089, 0x7226, 0xA08A, 0x7227, 0xA08B, 0x7228, 0xECE0, 0x7229, 0xA08C, 0x722A, 0xD7A6, + 0x722B, 0xA08D, 0x722C, 0xC5C0, 0x722D, 0xA08E, 0x722E, 0xA08F, 0x722F, 0xA090, 0x7230, 0xEBBC, 0x7231, 0xB0AE, 0x7232, 0xA091, + 0x7233, 0xA092, 0x7234, 0xA093, 0x7235, 0xBEF4, 0x7236, 0xB8B8, 0x7237, 0xD2AF, 0x7238, 0xB0D6, 0x7239, 0xB5F9, 0x723A, 0xA094, + 0x723B, 0xD8B3, 0x723C, 0xA095, 0x723D, 0xCBAC, 0x723E, 0xA096, 0x723F, 0xE3DD, 0x7240, 0xA097, 0x7241, 0xA098, 0x7242, 0xA099, + 0x7243, 0xA09A, 0x7244, 0xA09B, 0x7245, 0xA09C, 0x7246, 0xA09D, 0x7247, 0xC6AC, 0x7248, 0xB0E6, 0x7249, 0xA09E, 0x724A, 0xA09F, + 0x724B, 0xA0A0, 0x724C, 0xC5C6, 0x724D, 0xEBB9, 0x724E, 0xA0A1, 0x724F, 0xA0A2, 0x7250, 0xA0A3, 0x7251, 0xA0A4, 0x7252, 0xEBBA, + 0x7253, 0xA0A5, 0x7254, 0xA0A6, 0x7255, 0xA0A7, 0x7256, 0xEBBB, 0x7257, 0xA0A8, 0x7258, 0xA0A9, 0x7259, 0xD1C0, 0x725A, 0xA0AA, + 0x725B, 0xC5A3, 0x725C, 0xA0AB, 0x725D, 0xEAF2, 0x725E, 0xA0AC, 0x725F, 0xC4B2, 0x7260, 0xA0AD, 0x7261, 0xC4B5, 0x7262, 0xC0CE, + 0x7263, 0xA0AE, 0x7264, 0xA0AF, 0x7265, 0xA0B0, 0x7266, 0xEAF3, 0x7267, 0xC4C1, 0x7268, 0xA0B1, 0x7269, 0xCEEF, 0x726A, 0xA0B2, + 0x726B, 0xA0B3, 0x726C, 0xA0B4, 0x726D, 0xA0B5, 0x726E, 0xEAF0, 0x726F, 0xEAF4, 0x7270, 0xA0B6, 0x7271, 0xA0B7, 0x7272, 0xC9FC, + 0x7273, 0xA0B8, 0x7274, 0xA0B9, 0x7275, 0xC7A3, 0x7276, 0xA0BA, 0x7277, 0xA0BB, 0x7278, 0xA0BC, 0x7279, 0xCCD8, 0x727A, 0xCEFE, + 0x727B, 0xA0BD, 0x727C, 0xA0BE, 0x727D, 0xA0BF, 0x727E, 0xEAF5, 0x727F, 0xEAF6, 0x7280, 0xCFAC, 0x7281, 0xC0E7, 0x7282, 0xA0C0, + 0x7283, 0xA0C1, 0x7284, 0xEAF7, 0x7285, 0xA0C2, 0x7286, 0xA0C3, 0x7287, 0xA0C4, 0x7288, 0xA0C5, 0x7289, 0xA0C6, 0x728A, 0xB6BF, + 0x728B, 0xEAF8, 0x728C, 0xA0C7, 0x728D, 0xEAF9, 0x728E, 0xA0C8, 0x728F, 0xEAFA, 0x7290, 0xA0C9, 0x7291, 0xA0CA, 0x7292, 0xEAFB, + 0x7293, 0xA0CB, 0x7294, 0xA0CC, 0x7295, 0xA0CD, 0x7296, 0xA0CE, 0x7297, 0xA0CF, 0x7298, 0xA0D0, 0x7299, 0xA0D1, 0x729A, 0xA0D2, + 0x729B, 0xA0D3, 0x729C, 0xA0D4, 0x729D, 0xA0D5, 0x729E, 0xA0D6, 0x729F, 0xEAF1, 0x72A0, 0xA0D7, 0x72A1, 0xA0D8, 0x72A2, 0xA0D9, + 0x72A3, 0xA0DA, 0x72A4, 0xA0DB, 0x72A5, 0xA0DC, 0x72A6, 0xA0DD, 0x72A7, 0xA0DE, 0x72A8, 0xA0DF, 0x72A9, 0xA0E0, 0x72AA, 0xA0E1, + 0x72AB, 0xA0E2, 0x72AC, 0xC8AE, 0x72AD, 0xE1EB, 0x72AE, 0xA0E3, 0x72AF, 0xB7B8, 0x72B0, 0xE1EC, 0x72B1, 0xA0E4, 0x72B2, 0xA0E5, + 0x72B3, 0xA0E6, 0x72B4, 0xE1ED, 0x72B5, 0xA0E7, 0x72B6, 0xD7B4, 0x72B7, 0xE1EE, 0x72B8, 0xE1EF, 0x72B9, 0xD3CC, 0x72BA, 0xA0E8, + 0x72BB, 0xA0E9, 0x72BC, 0xA0EA, 0x72BD, 0xA0EB, 0x72BE, 0xA0EC, 0x72BF, 0xA0ED, 0x72C0, 0xA0EE, 0x72C1, 0xE1F1, 0x72C2, 0xBFF1, + 0x72C3, 0xE1F0, 0x72C4, 0xB5D2, 0x72C5, 0xA0EF, 0x72C6, 0xA0F0, 0x72C7, 0xA0F1, 0x72C8, 0xB1B7, 0x72C9, 0xA0F2, 0x72CA, 0xA0F3, + 0x72CB, 0xA0F4, 0x72CC, 0xA0F5, 0x72CD, 0xE1F3, 0x72CE, 0xE1F2, 0x72CF, 0xA0F6, 0x72D0, 0xBAFC, 0x72D1, 0xA0F7, 0x72D2, 0xE1F4, + 0x72D3, 0xA0F8, 0x72D4, 0xA0F9, 0x72D5, 0xA0FA, 0x72D6, 0xA0FB, 0x72D7, 0xB9B7, 0x72D8, 0xA0FC, 0x72D9, 0xBED1, 0x72DA, 0xA0FD, + 0x72DB, 0xA0FE, 0x72DC, 0xAA40, 0x72DD, 0xAA41, 0x72DE, 0xC4FC, 0x72DF, 0xAA42, 0x72E0, 0xBADD, 0x72E1, 0xBDC6, 0x72E2, 0xAA43, + 0x72E3, 0xAA44, 0x72E4, 0xAA45, 0x72E5, 0xAA46, 0x72E6, 0xAA47, 0x72E7, 0xAA48, 0x72E8, 0xE1F5, 0x72E9, 0xE1F7, 0x72EA, 0xAA49, + 0x72EB, 0xAA4A, 0x72EC, 0xB6C0, 0x72ED, 0xCFC1, 0x72EE, 0xCAA8, 0x72EF, 0xE1F6, 0x72F0, 0xD5F8, 0x72F1, 0xD3FC, 0x72F2, 0xE1F8, + 0x72F3, 0xE1FC, 0x72F4, 0xE1F9, 0x72F5, 0xAA4B, 0x72F6, 0xAA4C, 0x72F7, 0xE1FA, 0x72F8, 0xC0EA, 0x72F9, 0xAA4D, 0x72FA, 0xE1FE, + 0x72FB, 0xE2A1, 0x72FC, 0xC0C7, 0x72FD, 0xAA4E, 0x72FE, 0xAA4F, 0x72FF, 0xAA50, 0x7300, 0xAA51, 0x7301, 0xE1FB, 0x7302, 0xAA52, + 0x7303, 0xE1FD, 0x7304, 0xAA53, 0x7305, 0xAA54, 0x7306, 0xAA55, 0x7307, 0xAA56, 0x7308, 0xAA57, 0x7309, 0xAA58, 0x730A, 0xE2A5, + 0x730B, 0xAA59, 0x730C, 0xAA5A, 0x730D, 0xAA5B, 0x730E, 0xC1D4, 0x730F, 0xAA5C, 0x7310, 0xAA5D, 0x7311, 0xAA5E, 0x7312, 0xAA5F, + 0x7313, 0xE2A3, 0x7314, 0xAA60, 0x7315, 0xE2A8, 0x7316, 0xB2FE, 0x7317, 0xE2A2, 0x7318, 0xAA61, 0x7319, 0xAA62, 0x731A, 0xAA63, + 0x731B, 0xC3CD, 0x731C, 0xB2C2, 0x731D, 0xE2A7, 0x731E, 0xE2A6, 0x731F, 0xAA64, 0x7320, 0xAA65, 0x7321, 0xE2A4, 0x7322, 0xE2A9, + 0x7323, 0xAA66, 0x7324, 0xAA67, 0x7325, 0xE2AB, 0x7326, 0xAA68, 0x7327, 0xAA69, 0x7328, 0xAA6A, 0x7329, 0xD0C9, 0x732A, 0xD6ED, + 0x732B, 0xC3A8, 0x732C, 0xE2AC, 0x732D, 0xAA6B, 0x732E, 0xCFD7, 0x732F, 0xAA6C, 0x7330, 0xAA6D, 0x7331, 0xE2AE, 0x7332, 0xAA6E, + 0x7333, 0xAA6F, 0x7334, 0xBAEF, 0x7335, 0xAA70, 0x7336, 0xAA71, 0x7337, 0xE9E0, 0x7338, 0xE2AD, 0x7339, 0xE2AA, 0x733A, 0xAA72, + 0x733B, 0xAA73, 0x733C, 0xAA74, 0x733D, 0xAA75, 0x733E, 0xBBAB, 0x733F, 0xD4B3, 0x7340, 0xAA76, 0x7341, 0xAA77, 0x7342, 0xAA78, + 0x7343, 0xAA79, 0x7344, 0xAA7A, 0x7345, 0xAA7B, 0x7346, 0xAA7C, 0x7347, 0xAA7D, 0x7348, 0xAA7E, 0x7349, 0xAA80, 0x734A, 0xAA81, + 0x734B, 0xAA82, 0x734C, 0xAA83, 0x734D, 0xE2B0, 0x734E, 0xAA84, 0x734F, 0xAA85, 0x7350, 0xE2AF, 0x7351, 0xAA86, 0x7352, 0xE9E1, + 0x7353, 0xAA87, 0x7354, 0xAA88, 0x7355, 0xAA89, 0x7356, 0xAA8A, 0x7357, 0xE2B1, 0x7358, 0xAA8B, 0x7359, 0xAA8C, 0x735A, 0xAA8D, + 0x735B, 0xAA8E, 0x735C, 0xAA8F, 0x735D, 0xAA90, 0x735E, 0xAA91, 0x735F, 0xAA92, 0x7360, 0xE2B2, 0x7361, 0xAA93, 0x7362, 0xAA94, + 0x7363, 0xAA95, 0x7364, 0xAA96, 0x7365, 0xAA97, 0x7366, 0xAA98, 0x7367, 0xAA99, 0x7368, 0xAA9A, 0x7369, 0xAA9B, 0x736A, 0xAA9C, + 0x736B, 0xAA9D, 0x736C, 0xE2B3, 0x736D, 0xCCA1, 0x736E, 0xAA9E, 0x736F, 0xE2B4, 0x7370, 0xAA9F, 0x7371, 0xAAA0, 0x7372, 0xAB40, + 0x7373, 0xAB41, 0x7374, 0xAB42, 0x7375, 0xAB43, 0x7376, 0xAB44, 0x7377, 0xAB45, 0x7378, 0xAB46, 0x7379, 0xAB47, 0x737A, 0xAB48, + 0x737B, 0xAB49, 0x737C, 0xAB4A, 0x737D, 0xAB4B, 0x737E, 0xE2B5, 0x737F, 0xAB4C, 0x7380, 0xAB4D, 0x7381, 0xAB4E, 0x7382, 0xAB4F, + 0x7383, 0xAB50, 0x7384, 0xD0FE, 0x7385, 0xAB51, 0x7386, 0xAB52, 0x7387, 0xC2CA, 0x7388, 0xAB53, 0x7389, 0xD3F1, 0x738A, 0xAB54, + 0x738B, 0xCDF5, 0x738C, 0xAB55, 0x738D, 0xAB56, 0x738E, 0xE7E0, 0x738F, 0xAB57, 0x7390, 0xAB58, 0x7391, 0xE7E1, 0x7392, 0xAB59, + 0x7393, 0xAB5A, 0x7394, 0xAB5B, 0x7395, 0xAB5C, 0x7396, 0xBEC1, 0x7397, 0xAB5D, 0x7398, 0xAB5E, 0x7399, 0xAB5F, 0x739A, 0xAB60, + 0x739B, 0xC2EA, 0x739C, 0xAB61, 0x739D, 0xAB62, 0x739E, 0xAB63, 0x739F, 0xE7E4, 0x73A0, 0xAB64, 0x73A1, 0xAB65, 0x73A2, 0xE7E3, + 0x73A3, 0xAB66, 0x73A4, 0xAB67, 0x73A5, 0xAB68, 0x73A6, 0xAB69, 0x73A7, 0xAB6A, 0x73A8, 0xAB6B, 0x73A9, 0xCDE6, 0x73AA, 0xAB6C, + 0x73AB, 0xC3B5, 0x73AC, 0xAB6D, 0x73AD, 0xAB6E, 0x73AE, 0xE7E2, 0x73AF, 0xBBB7, 0x73B0, 0xCFD6, 0x73B1, 0xAB6F, 0x73B2, 0xC1E1, + 0x73B3, 0xE7E9, 0x73B4, 0xAB70, 0x73B5, 0xAB71, 0x73B6, 0xAB72, 0x73B7, 0xE7E8, 0x73B8, 0xAB73, 0x73B9, 0xAB74, 0x73BA, 0xE7F4, + 0x73BB, 0xB2A3, 0x73BC, 0xAB75, 0x73BD, 0xAB76, 0x73BE, 0xAB77, 0x73BF, 0xAB78, 0x73C0, 0xE7EA, 0x73C1, 0xAB79, 0x73C2, 0xE7E6, + 0x73C3, 0xAB7A, 0x73C4, 0xAB7B, 0x73C5, 0xAB7C, 0x73C6, 0xAB7D, 0x73C7, 0xAB7E, 0x73C8, 0xE7EC, 0x73C9, 0xE7EB, 0x73CA, 0xC9BA, + 0x73CB, 0xAB80, 0x73CC, 0xAB81, 0x73CD, 0xD5E4, 0x73CE, 0xAB82, 0x73CF, 0xE7E5, 0x73D0, 0xB7A9, 0x73D1, 0xE7E7, 0x73D2, 0xAB83, + 0x73D3, 0xAB84, 0x73D4, 0xAB85, 0x73D5, 0xAB86, 0x73D6, 0xAB87, 0x73D7, 0xAB88, 0x73D8, 0xAB89, 0x73D9, 0xE7EE, 0x73DA, 0xAB8A, + 0x73DB, 0xAB8B, 0x73DC, 0xAB8C, 0x73DD, 0xAB8D, 0x73DE, 0xE7F3, 0x73DF, 0xAB8E, 0x73E0, 0xD6E9, 0x73E1, 0xAB8F, 0x73E2, 0xAB90, + 0x73E3, 0xAB91, 0x73E4, 0xAB92, 0x73E5, 0xE7ED, 0x73E6, 0xAB93, 0x73E7, 0xE7F2, 0x73E8, 0xAB94, 0x73E9, 0xE7F1, 0x73EA, 0xAB95, + 0x73EB, 0xAB96, 0x73EC, 0xAB97, 0x73ED, 0xB0E0, 0x73EE, 0xAB98, 0x73EF, 0xAB99, 0x73F0, 0xAB9A, 0x73F1, 0xAB9B, 0x73F2, 0xE7F5, + 0x73F3, 0xAB9C, 0x73F4, 0xAB9D, 0x73F5, 0xAB9E, 0x73F6, 0xAB9F, 0x73F7, 0xABA0, 0x73F8, 0xAC40, 0x73F9, 0xAC41, 0x73FA, 0xAC42, + 0x73FB, 0xAC43, 0x73FC, 0xAC44, 0x73FD, 0xAC45, 0x73FE, 0xAC46, 0x73FF, 0xAC47, 0x7400, 0xAC48, 0x7401, 0xAC49, 0x7402, 0xAC4A, + 0x7403, 0xC7F2, 0x7404, 0xAC4B, 0x7405, 0xC0C5, 0x7406, 0xC0ED, 0x7407, 0xAC4C, 0x7408, 0xAC4D, 0x7409, 0xC1F0, 0x740A, 0xE7F0, + 0x740B, 0xAC4E, 0x740C, 0xAC4F, 0x740D, 0xAC50, 0x740E, 0xAC51, 0x740F, 0xE7F6, 0x7410, 0xCBF6, 0x7411, 0xAC52, 0x7412, 0xAC53, + 0x7413, 0xAC54, 0x7414, 0xAC55, 0x7415, 0xAC56, 0x7416, 0xAC57, 0x7417, 0xAC58, 0x7418, 0xAC59, 0x7419, 0xAC5A, 0x741A, 0xE8A2, + 0x741B, 0xE8A1, 0x741C, 0xAC5B, 0x741D, 0xAC5C, 0x741E, 0xAC5D, 0x741F, 0xAC5E, 0x7420, 0xAC5F, 0x7421, 0xAC60, 0x7422, 0xD7C1, + 0x7423, 0xAC61, 0x7424, 0xAC62, 0x7425, 0xE7FA, 0x7426, 0xE7F9, 0x7427, 0xAC63, 0x7428, 0xE7FB, 0x7429, 0xAC64, 0x742A, 0xE7F7, + 0x742B, 0xAC65, 0x742C, 0xE7FE, 0x742D, 0xAC66, 0x742E, 0xE7FD, 0x742F, 0xAC67, 0x7430, 0xE7FC, 0x7431, 0xAC68, 0x7432, 0xAC69, + 0x7433, 0xC1D5, 0x7434, 0xC7D9, 0x7435, 0xC5FD, 0x7436, 0xC5C3, 0x7437, 0xAC6A, 0x7438, 0xAC6B, 0x7439, 0xAC6C, 0x743A, 0xAC6D, + 0x743B, 0xAC6E, 0x743C, 0xC7ED, 0x743D, 0xAC6F, 0x743E, 0xAC70, 0x743F, 0xAC71, 0x7440, 0xAC72, 0x7441, 0xE8A3, 0x7442, 0xAC73, + 0x7443, 0xAC74, 0x7444, 0xAC75, 0x7445, 0xAC76, 0x7446, 0xAC77, 0x7447, 0xAC78, 0x7448, 0xAC79, 0x7449, 0xAC7A, 0x744A, 0xAC7B, + 0x744B, 0xAC7C, 0x744C, 0xAC7D, 0x744D, 0xAC7E, 0x744E, 0xAC80, 0x744F, 0xAC81, 0x7450, 0xAC82, 0x7451, 0xAC83, 0x7452, 0xAC84, + 0x7453, 0xAC85, 0x7454, 0xAC86, 0x7455, 0xE8A6, 0x7456, 0xAC87, 0x7457, 0xE8A5, 0x7458, 0xAC88, 0x7459, 0xE8A7, 0x745A, 0xBAF7, + 0x745B, 0xE7F8, 0x745C, 0xE8A4, 0x745D, 0xAC89, 0x745E, 0xC8F0, 0x745F, 0xC9AA, 0x7460, 0xAC8A, 0x7461, 0xAC8B, 0x7462, 0xAC8C, + 0x7463, 0xAC8D, 0x7464, 0xAC8E, 0x7465, 0xAC8F, 0x7466, 0xAC90, 0x7467, 0xAC91, 0x7468, 0xAC92, 0x7469, 0xAC93, 0x746A, 0xAC94, + 0x746B, 0xAC95, 0x746C, 0xAC96, 0x746D, 0xE8A9, 0x746E, 0xAC97, 0x746F, 0xAC98, 0x7470, 0xB9E5, 0x7471, 0xAC99, 0x7472, 0xAC9A, + 0x7473, 0xAC9B, 0x7474, 0xAC9C, 0x7475, 0xAC9D, 0x7476, 0xD1FE, 0x7477, 0xE8A8, 0x7478, 0xAC9E, 0x7479, 0xAC9F, 0x747A, 0xACA0, + 0x747B, 0xAD40, 0x747C, 0xAD41, 0x747D, 0xAD42, 0x747E, 0xE8AA, 0x747F, 0xAD43, 0x7480, 0xE8AD, 0x7481, 0xE8AE, 0x7482, 0xAD44, + 0x7483, 0xC1A7, 0x7484, 0xAD45, 0x7485, 0xAD46, 0x7486, 0xAD47, 0x7487, 0xE8AF, 0x7488, 0xAD48, 0x7489, 0xAD49, 0x748A, 0xAD4A, + 0x748B, 0xE8B0, 0x748C, 0xAD4B, 0x748D, 0xAD4C, 0x748E, 0xE8AC, 0x748F, 0xAD4D, 0x7490, 0xE8B4, 0x7491, 0xAD4E, 0x7492, 0xAD4F, + 0x7493, 0xAD50, 0x7494, 0xAD51, 0x7495, 0xAD52, 0x7496, 0xAD53, 0x7497, 0xAD54, 0x7498, 0xAD55, 0x7499, 0xAD56, 0x749A, 0xAD57, + 0x749B, 0xAD58, 0x749C, 0xE8AB, 0x749D, 0xAD59, 0x749E, 0xE8B1, 0x749F, 0xAD5A, 0x74A0, 0xAD5B, 0x74A1, 0xAD5C, 0x74A2, 0xAD5D, + 0x74A3, 0xAD5E, 0x74A4, 0xAD5F, 0x74A5, 0xAD60, 0x74A6, 0xAD61, 0x74A7, 0xE8B5, 0x74A8, 0xE8B2, 0x74A9, 0xE8B3, 0x74AA, 0xAD62, + 0x74AB, 0xAD63, 0x74AC, 0xAD64, 0x74AD, 0xAD65, 0x74AE, 0xAD66, 0x74AF, 0xAD67, 0x74B0, 0xAD68, 0x74B1, 0xAD69, 0x74B2, 0xAD6A, + 0x74B3, 0xAD6B, 0x74B4, 0xAD6C, 0x74B5, 0xAD6D, 0x74B6, 0xAD6E, 0x74B7, 0xAD6F, 0x74B8, 0xAD70, 0x74B9, 0xAD71, 0x74BA, 0xE8B7, + 0x74BB, 0xAD72, 0x74BC, 0xAD73, 0x74BD, 0xAD74, 0x74BE, 0xAD75, 0x74BF, 0xAD76, 0x74C0, 0xAD77, 0x74C1, 0xAD78, 0x74C2, 0xAD79, + 0x74C3, 0xAD7A, 0x74C4, 0xAD7B, 0x74C5, 0xAD7C, 0x74C6, 0xAD7D, 0x74C7, 0xAD7E, 0x74C8, 0xAD80, 0x74C9, 0xAD81, 0x74CA, 0xAD82, + 0x74CB, 0xAD83, 0x74CC, 0xAD84, 0x74CD, 0xAD85, 0x74CE, 0xAD86, 0x74CF, 0xAD87, 0x74D0, 0xAD88, 0x74D1, 0xAD89, 0x74D2, 0xE8B6, + 0x74D3, 0xAD8A, 0x74D4, 0xAD8B, 0x74D5, 0xAD8C, 0x74D6, 0xAD8D, 0x74D7, 0xAD8E, 0x74D8, 0xAD8F, 0x74D9, 0xAD90, 0x74DA, 0xAD91, + 0x74DB, 0xAD92, 0x74DC, 0xB9CF, 0x74DD, 0xAD93, 0x74DE, 0xF0AC, 0x74DF, 0xAD94, 0x74E0, 0xF0AD, 0x74E1, 0xAD95, 0x74E2, 0xC6B0, + 0x74E3, 0xB0EA, 0x74E4, 0xC8BF, 0x74E5, 0xAD96, 0x74E6, 0xCDDF, 0x74E7, 0xAD97, 0x74E8, 0xAD98, 0x74E9, 0xAD99, 0x74EA, 0xAD9A, + 0x74EB, 0xAD9B, 0x74EC, 0xAD9C, 0x74ED, 0xAD9D, 0x74EE, 0xCECD, 0x74EF, 0xEAB1, 0x74F0, 0xAD9E, 0x74F1, 0xAD9F, 0x74F2, 0xADA0, + 0x74F3, 0xAE40, 0x74F4, 0xEAB2, 0x74F5, 0xAE41, 0x74F6, 0xC6BF, 0x74F7, 0xB4C9, 0x74F8, 0xAE42, 0x74F9, 0xAE43, 0x74FA, 0xAE44, + 0x74FB, 0xAE45, 0x74FC, 0xAE46, 0x74FD, 0xAE47, 0x74FE, 0xAE48, 0x74FF, 0xEAB3, 0x7500, 0xAE49, 0x7501, 0xAE4A, 0x7502, 0xAE4B, + 0x7503, 0xAE4C, 0x7504, 0xD5E7, 0x7505, 0xAE4D, 0x7506, 0xAE4E, 0x7507, 0xAE4F, 0x7508, 0xAE50, 0x7509, 0xAE51, 0x750A, 0xAE52, + 0x750B, 0xAE53, 0x750C, 0xAE54, 0x750D, 0xDDF9, 0x750E, 0xAE55, 0x750F, 0xEAB4, 0x7510, 0xAE56, 0x7511, 0xEAB5, 0x7512, 0xAE57, + 0x7513, 0xEAB6, 0x7514, 0xAE58, 0x7515, 0xAE59, 0x7516, 0xAE5A, 0x7517, 0xAE5B, 0x7518, 0xB8CA, 0x7519, 0xDFB0, 0x751A, 0xC9F5, + 0x751B, 0xAE5C, 0x751C, 0xCCF0, 0x751D, 0xAE5D, 0x751E, 0xAE5E, 0x751F, 0xC9FA, 0x7520, 0xAE5F, 0x7521, 0xAE60, 0x7522, 0xAE61, + 0x7523, 0xAE62, 0x7524, 0xAE63, 0x7525, 0xC9FB, 0x7526, 0xAE64, 0x7527, 0xAE65, 0x7528, 0xD3C3, 0x7529, 0xCBA6, 0x752A, 0xAE66, + 0x752B, 0xB8A6, 0x752C, 0xF0AE, 0x752D, 0xB1C2, 0x752E, 0xAE67, 0x752F, 0xE5B8, 0x7530, 0xCCEF, 0x7531, 0xD3C9, 0x7532, 0xBCD7, + 0x7533, 0xC9EA, 0x7534, 0xAE68, 0x7535, 0xB5E7, 0x7536, 0xAE69, 0x7537, 0xC4D0, 0x7538, 0xB5E9, 0x7539, 0xAE6A, 0x753A, 0xEEAE, + 0x753B, 0xBBAD, 0x753C, 0xAE6B, 0x753D, 0xAE6C, 0x753E, 0xE7DE, 0x753F, 0xAE6D, 0x7540, 0xEEAF, 0x7541, 0xAE6E, 0x7542, 0xAE6F, + 0x7543, 0xAE70, 0x7544, 0xAE71, 0x7545, 0xB3A9, 0x7546, 0xAE72, 0x7547, 0xAE73, 0x7548, 0xEEB2, 0x7549, 0xAE74, 0x754A, 0xAE75, + 0x754B, 0xEEB1, 0x754C, 0xBDE7, 0x754D, 0xAE76, 0x754E, 0xEEB0, 0x754F, 0xCEB7, 0x7550, 0xAE77, 0x7551, 0xAE78, 0x7552, 0xAE79, + 0x7553, 0xAE7A, 0x7554, 0xC5CF, 0x7555, 0xAE7B, 0x7556, 0xAE7C, 0x7557, 0xAE7D, 0x7558, 0xAE7E, 0x7559, 0xC1F4, 0x755A, 0xDBCE, + 0x755B, 0xEEB3, 0x755C, 0xD0F3, 0x755D, 0xAE80, 0x755E, 0xAE81, 0x755F, 0xAE82, 0x7560, 0xAE83, 0x7561, 0xAE84, 0x7562, 0xAE85, + 0x7563, 0xAE86, 0x7564, 0xAE87, 0x7565, 0xC2D4, 0x7566, 0xC6E8, 0x7567, 0xAE88, 0x7568, 0xAE89, 0x7569, 0xAE8A, 0x756A, 0xB7AC, + 0x756B, 0xAE8B, 0x756C, 0xAE8C, 0x756D, 0xAE8D, 0x756E, 0xAE8E, 0x756F, 0xAE8F, 0x7570, 0xAE90, 0x7571, 0xAE91, 0x7572, 0xEEB4, + 0x7573, 0xAE92, 0x7574, 0xB3EB, 0x7575, 0xAE93, 0x7576, 0xAE94, 0x7577, 0xAE95, 0x7578, 0xBBFB, 0x7579, 0xEEB5, 0x757A, 0xAE96, + 0x757B, 0xAE97, 0x757C, 0xAE98, 0x757D, 0xAE99, 0x757E, 0xAE9A, 0x757F, 0xE7DC, 0x7580, 0xAE9B, 0x7581, 0xAE9C, 0x7582, 0xAE9D, + 0x7583, 0xEEB6, 0x7584, 0xAE9E, 0x7585, 0xAE9F, 0x7586, 0xBDAE, 0x7587, 0xAEA0, 0x7588, 0xAF40, 0x7589, 0xAF41, 0x758A, 0xAF42, + 0x758B, 0xF1E2, 0x758C, 0xAF43, 0x758D, 0xAF44, 0x758E, 0xAF45, 0x758F, 0xCAE8, 0x7590, 0xAF46, 0x7591, 0xD2C9, 0x7592, 0xF0DA, + 0x7593, 0xAF47, 0x7594, 0xF0DB, 0x7595, 0xAF48, 0x7596, 0xF0DC, 0x7597, 0xC1C6, 0x7598, 0xAF49, 0x7599, 0xB8ED, 0x759A, 0xBECE, + 0x759B, 0xAF4A, 0x759C, 0xAF4B, 0x759D, 0xF0DE, 0x759E, 0xAF4C, 0x759F, 0xC5B1, 0x75A0, 0xF0DD, 0x75A1, 0xD1F1, 0x75A2, 0xAF4D, + 0x75A3, 0xF0E0, 0x75A4, 0xB0CC, 0x75A5, 0xBDEA, 0x75A6, 0xAF4E, 0x75A7, 0xAF4F, 0x75A8, 0xAF50, 0x75A9, 0xAF51, 0x75AA, 0xAF52, + 0x75AB, 0xD2DF, 0x75AC, 0xF0DF, 0x75AD, 0xAF53, 0x75AE, 0xB4AF, 0x75AF, 0xB7E8, 0x75B0, 0xF0E6, 0x75B1, 0xF0E5, 0x75B2, 0xC6A3, + 0x75B3, 0xF0E1, 0x75B4, 0xF0E2, 0x75B5, 0xB4C3, 0x75B6, 0xAF54, 0x75B7, 0xAF55, 0x75B8, 0xF0E3, 0x75B9, 0xD5EE, 0x75BA, 0xAF56, + 0x75BB, 0xAF57, 0x75BC, 0xCCDB, 0x75BD, 0xBED2, 0x75BE, 0xBCB2, 0x75BF, 0xAF58, 0x75C0, 0xAF59, 0x75C1, 0xAF5A, 0x75C2, 0xF0E8, + 0x75C3, 0xF0E7, 0x75C4, 0xF0E4, 0x75C5, 0xB2A1, 0x75C6, 0xAF5B, 0x75C7, 0xD6A2, 0x75C8, 0xD3B8, 0x75C9, 0xBEB7, 0x75CA, 0xC8AC, + 0x75CB, 0xAF5C, 0x75CC, 0xAF5D, 0x75CD, 0xF0EA, 0x75CE, 0xAF5E, 0x75CF, 0xAF5F, 0x75D0, 0xAF60, 0x75D1, 0xAF61, 0x75D2, 0xD1F7, + 0x75D3, 0xAF62, 0x75D4, 0xD6CC, 0x75D5, 0xBADB, 0x75D6, 0xF0E9, 0x75D7, 0xAF63, 0x75D8, 0xB6BB, 0x75D9, 0xAF64, 0x75DA, 0xAF65, + 0x75DB, 0xCDB4, 0x75DC, 0xAF66, 0x75DD, 0xAF67, 0x75DE, 0xC6A6, 0x75DF, 0xAF68, 0x75E0, 0xAF69, 0x75E1, 0xAF6A, 0x75E2, 0xC1A1, + 0x75E3, 0xF0EB, 0x75E4, 0xF0EE, 0x75E5, 0xAF6B, 0x75E6, 0xF0ED, 0x75E7, 0xF0F0, 0x75E8, 0xF0EC, 0x75E9, 0xAF6C, 0x75EA, 0xBBBE, + 0x75EB, 0xF0EF, 0x75EC, 0xAF6D, 0x75ED, 0xAF6E, 0x75EE, 0xAF6F, 0x75EF, 0xAF70, 0x75F0, 0xCCB5, 0x75F1, 0xF0F2, 0x75F2, 0xAF71, + 0x75F3, 0xAF72, 0x75F4, 0xB3D5, 0x75F5, 0xAF73, 0x75F6, 0xAF74, 0x75F7, 0xAF75, 0x75F8, 0xAF76, 0x75F9, 0xB1D4, 0x75FA, 0xAF77, + 0x75FB, 0xAF78, 0x75FC, 0xF0F3, 0x75FD, 0xAF79, 0x75FE, 0xAF7A, 0x75FF, 0xF0F4, 0x7600, 0xF0F6, 0x7601, 0xB4E1, 0x7602, 0xAF7B, + 0x7603, 0xF0F1, 0x7604, 0xAF7C, 0x7605, 0xF0F7, 0x7606, 0xAF7D, 0x7607, 0xAF7E, 0x7608, 0xAF80, 0x7609, 0xAF81, 0x760A, 0xF0FA, + 0x760B, 0xAF82, 0x760C, 0xF0F8, 0x760D, 0xAF83, 0x760E, 0xAF84, 0x760F, 0xAF85, 0x7610, 0xF0F5, 0x7611, 0xAF86, 0x7612, 0xAF87, + 0x7613, 0xAF88, 0x7614, 0xAF89, 0x7615, 0xF0FD, 0x7616, 0xAF8A, 0x7617, 0xF0F9, 0x7618, 0xF0FC, 0x7619, 0xF0FE, 0x761A, 0xAF8B, + 0x761B, 0xF1A1, 0x761C, 0xAF8C, 0x761D, 0xAF8D, 0x761E, 0xAF8E, 0x761F, 0xCEC1, 0x7620, 0xF1A4, 0x7621, 0xAF8F, 0x7622, 0xF1A3, + 0x7623, 0xAF90, 0x7624, 0xC1F6, 0x7625, 0xF0FB, 0x7626, 0xCADD, 0x7627, 0xAF91, 0x7628, 0xAF92, 0x7629, 0xB4F1, 0x762A, 0xB1F1, + 0x762B, 0xCCB1, 0x762C, 0xAF93, 0x762D, 0xF1A6, 0x762E, 0xAF94, 0x762F, 0xAF95, 0x7630, 0xF1A7, 0x7631, 0xAF96, 0x7632, 0xAF97, + 0x7633, 0xF1AC, 0x7634, 0xD5CE, 0x7635, 0xF1A9, 0x7636, 0xAF98, 0x7637, 0xAF99, 0x7638, 0xC8B3, 0x7639, 0xAF9A, 0x763A, 0xAF9B, + 0x763B, 0xAF9C, 0x763C, 0xF1A2, 0x763D, 0xAF9D, 0x763E, 0xF1AB, 0x763F, 0xF1A8, 0x7640, 0xF1A5, 0x7641, 0xAF9E, 0x7642, 0xAF9F, + 0x7643, 0xF1AA, 0x7644, 0xAFA0, 0x7645, 0xB040, 0x7646, 0xB041, 0x7647, 0xB042, 0x7648, 0xB043, 0x7649, 0xB044, 0x764A, 0xB045, + 0x764B, 0xB046, 0x764C, 0xB0A9, 0x764D, 0xF1AD, 0x764E, 0xB047, 0x764F, 0xB048, 0x7650, 0xB049, 0x7651, 0xB04A, 0x7652, 0xB04B, + 0x7653, 0xB04C, 0x7654, 0xF1AF, 0x7655, 0xB04D, 0x7656, 0xF1B1, 0x7657, 0xB04E, 0x7658, 0xB04F, 0x7659, 0xB050, 0x765A, 0xB051, + 0x765B, 0xB052, 0x765C, 0xF1B0, 0x765D, 0xB053, 0x765E, 0xF1AE, 0x765F, 0xB054, 0x7660, 0xB055, 0x7661, 0xB056, 0x7662, 0xB057, + 0x7663, 0xD1A2, 0x7664, 0xB058, 0x7665, 0xB059, 0x7666, 0xB05A, 0x7667, 0xB05B, 0x7668, 0xB05C, 0x7669, 0xB05D, 0x766A, 0xB05E, + 0x766B, 0xF1B2, 0x766C, 0xB05F, 0x766D, 0xB060, 0x766E, 0xB061, 0x766F, 0xF1B3, 0x7670, 0xB062, 0x7671, 0xB063, 0x7672, 0xB064, + 0x7673, 0xB065, 0x7674, 0xB066, 0x7675, 0xB067, 0x7676, 0xB068, 0x7677, 0xB069, 0x7678, 0xB9EF, 0x7679, 0xB06A, 0x767A, 0xB06B, + 0x767B, 0xB5C7, 0x767C, 0xB06C, 0x767D, 0xB0D7, 0x767E, 0xB0D9, 0x767F, 0xB06D, 0x7680, 0xB06E, 0x7681, 0xB06F, 0x7682, 0xD4ED, + 0x7683, 0xB070, 0x7684, 0xB5C4, 0x7685, 0xB071, 0x7686, 0xBDD4, 0x7687, 0xBBCA, 0x7688, 0xF0A7, 0x7689, 0xB072, 0x768A, 0xB073, + 0x768B, 0xB8DE, 0x768C, 0xB074, 0x768D, 0xB075, 0x768E, 0xF0A8, 0x768F, 0xB076, 0x7690, 0xB077, 0x7691, 0xB0A8, 0x7692, 0xB078, + 0x7693, 0xF0A9, 0x7694, 0xB079, 0x7695, 0xB07A, 0x7696, 0xCDEE, 0x7697, 0xB07B, 0x7698, 0xB07C, 0x7699, 0xF0AA, 0x769A, 0xB07D, + 0x769B, 0xB07E, 0x769C, 0xB080, 0x769D, 0xB081, 0x769E, 0xB082, 0x769F, 0xB083, 0x76A0, 0xB084, 0x76A1, 0xB085, 0x76A2, 0xB086, + 0x76A3, 0xB087, 0x76A4, 0xF0AB, 0x76A5, 0xB088, 0x76A6, 0xB089, 0x76A7, 0xB08A, 0x76A8, 0xB08B, 0x76A9, 0xB08C, 0x76AA, 0xB08D, + 0x76AB, 0xB08E, 0x76AC, 0xB08F, 0x76AD, 0xB090, 0x76AE, 0xC6A4, 0x76AF, 0xB091, 0x76B0, 0xB092, 0x76B1, 0xD6E5, 0x76B2, 0xF1E4, + 0x76B3, 0xB093, 0x76B4, 0xF1E5, 0x76B5, 0xB094, 0x76B6, 0xB095, 0x76B7, 0xB096, 0x76B8, 0xB097, 0x76B9, 0xB098, 0x76BA, 0xB099, + 0x76BB, 0xB09A, 0x76BC, 0xB09B, 0x76BD, 0xB09C, 0x76BE, 0xB09D, 0x76BF, 0xC3F3, 0x76C0, 0xB09E, 0x76C1, 0xB09F, 0x76C2, 0xD3DB, + 0x76C3, 0xB0A0, 0x76C4, 0xB140, 0x76C5, 0xD6D1, 0x76C6, 0xC5E8, 0x76C7, 0xB141, 0x76C8, 0xD3AF, 0x76C9, 0xB142, 0x76CA, 0xD2E6, + 0x76CB, 0xB143, 0x76CC, 0xB144, 0x76CD, 0xEEC1, 0x76CE, 0xB0BB, 0x76CF, 0xD5B5, 0x76D0, 0xD1CE, 0x76D1, 0xBCE0, 0x76D2, 0xBAD0, + 0x76D3, 0xB145, 0x76D4, 0xBFF8, 0x76D5, 0xB146, 0x76D6, 0xB8C7, 0x76D7, 0xB5C1, 0x76D8, 0xC5CC, 0x76D9, 0xB147, 0x76DA, 0xB148, + 0x76DB, 0xCAA2, 0x76DC, 0xB149, 0x76DD, 0xB14A, 0x76DE, 0xB14B, 0x76DF, 0xC3CB, 0x76E0, 0xB14C, 0x76E1, 0xB14D, 0x76E2, 0xB14E, + 0x76E3, 0xB14F, 0x76E4, 0xB150, 0x76E5, 0xEEC2, 0x76E6, 0xB151, 0x76E7, 0xB152, 0x76E8, 0xB153, 0x76E9, 0xB154, 0x76EA, 0xB155, + 0x76EB, 0xB156, 0x76EC, 0xB157, 0x76ED, 0xB158, 0x76EE, 0xC4BF, 0x76EF, 0xB6A2, 0x76F0, 0xB159, 0x76F1, 0xEDEC, 0x76F2, 0xC3A4, + 0x76F3, 0xB15A, 0x76F4, 0xD6B1, 0x76F5, 0xB15B, 0x76F6, 0xB15C, 0x76F7, 0xB15D, 0x76F8, 0xCFE0, 0x76F9, 0xEDEF, 0x76FA, 0xB15E, + 0x76FB, 0xB15F, 0x76FC, 0xC5CE, 0x76FD, 0xB160, 0x76FE, 0xB6DC, 0x76FF, 0xB161, 0x7700, 0xB162, 0x7701, 0xCAA1, 0x7702, 0xB163, + 0x7703, 0xB164, 0x7704, 0xEDED, 0x7705, 0xB165, 0x7706, 0xB166, 0x7707, 0xEDF0, 0x7708, 0xEDF1, 0x7709, 0xC3BC, 0x770A, 0xB167, + 0x770B, 0xBFB4, 0x770C, 0xB168, 0x770D, 0xEDEE, 0x770E, 0xB169, 0x770F, 0xB16A, 0x7710, 0xB16B, 0x7711, 0xB16C, 0x7712, 0xB16D, + 0x7713, 0xB16E, 0x7714, 0xB16F, 0x7715, 0xB170, 0x7716, 0xB171, 0x7717, 0xB172, 0x7718, 0xB173, 0x7719, 0xEDF4, 0x771A, 0xEDF2, + 0x771B, 0xB174, 0x771C, 0xB175, 0x771D, 0xB176, 0x771E, 0xB177, 0x771F, 0xD5E6, 0x7720, 0xC3DF, 0x7721, 0xB178, 0x7722, 0xEDF3, + 0x7723, 0xB179, 0x7724, 0xB17A, 0x7725, 0xB17B, 0x7726, 0xEDF6, 0x7727, 0xB17C, 0x7728, 0xD5A3, 0x7729, 0xD1A3, 0x772A, 0xB17D, + 0x772B, 0xB17E, 0x772C, 0xB180, 0x772D, 0xEDF5, 0x772E, 0xB181, 0x772F, 0xC3D0, 0x7730, 0xB182, 0x7731, 0xB183, 0x7732, 0xB184, + 0x7733, 0xB185, 0x7734, 0xB186, 0x7735, 0xEDF7, 0x7736, 0xBFF4, 0x7737, 0xBEEC, 0x7738, 0xEDF8, 0x7739, 0xB187, 0x773A, 0xCCF7, + 0x773B, 0xB188, 0x773C, 0xD1DB, 0x773D, 0xB189, 0x773E, 0xB18A, 0x773F, 0xB18B, 0x7740, 0xD7C5, 0x7741, 0xD5F6, 0x7742, 0xB18C, + 0x7743, 0xEDFC, 0x7744, 0xB18D, 0x7745, 0xB18E, 0x7746, 0xB18F, 0x7747, 0xEDFB, 0x7748, 0xB190, 0x7749, 0xB191, 0x774A, 0xB192, + 0x774B, 0xB193, 0x774C, 0xB194, 0x774D, 0xB195, 0x774E, 0xB196, 0x774F, 0xB197, 0x7750, 0xEDF9, 0x7751, 0xEDFA, 0x7752, 0xB198, + 0x7753, 0xB199, 0x7754, 0xB19A, 0x7755, 0xB19B, 0x7756, 0xB19C, 0x7757, 0xB19D, 0x7758, 0xB19E, 0x7759, 0xB19F, 0x775A, 0xEDFD, + 0x775B, 0xBEA6, 0x775C, 0xB1A0, 0x775D, 0xB240, 0x775E, 0xB241, 0x775F, 0xB242, 0x7760, 0xB243, 0x7761, 0xCBAF, 0x7762, 0xEEA1, + 0x7763, 0xB6BD, 0x7764, 0xB244, 0x7765, 0xEEA2, 0x7766, 0xC4C0, 0x7767, 0xB245, 0x7768, 0xEDFE, 0x7769, 0xB246, 0x776A, 0xB247, + 0x776B, 0xBDDE, 0x776C, 0xB2C7, 0x776D, 0xB248, 0x776E, 0xB249, 0x776F, 0xB24A, 0x7770, 0xB24B, 0x7771, 0xB24C, 0x7772, 0xB24D, + 0x7773, 0xB24E, 0x7774, 0xB24F, 0x7775, 0xB250, 0x7776, 0xB251, 0x7777, 0xB252, 0x7778, 0xB253, 0x7779, 0xB6C3, 0x777A, 0xB254, + 0x777B, 0xB255, 0x777C, 0xB256, 0x777D, 0xEEA5, 0x777E, 0xD8BA, 0x777F, 0xEEA3, 0x7780, 0xEEA6, 0x7781, 0xB257, 0x7782, 0xB258, + 0x7783, 0xB259, 0x7784, 0xC3E9, 0x7785, 0xB3F2, 0x7786, 0xB25A, 0x7787, 0xB25B, 0x7788, 0xB25C, 0x7789, 0xB25D, 0x778A, 0xB25E, + 0x778B, 0xB25F, 0x778C, 0xEEA7, 0x778D, 0xEEA4, 0x778E, 0xCFB9, 0x778F, 0xB260, 0x7790, 0xB261, 0x7791, 0xEEA8, 0x7792, 0xC2F7, + 0x7793, 0xB262, 0x7794, 0xB263, 0x7795, 0xB264, 0x7796, 0xB265, 0x7797, 0xB266, 0x7798, 0xB267, 0x7799, 0xB268, 0x779A, 0xB269, + 0x779B, 0xB26A, 0x779C, 0xB26B, 0x779D, 0xB26C, 0x779E, 0xB26D, 0x779F, 0xEEA9, 0x77A0, 0xEEAA, 0x77A1, 0xB26E, 0x77A2, 0xDEAB, + 0x77A3, 0xB26F, 0x77A4, 0xB270, 0x77A5, 0xC6B3, 0x77A6, 0xB271, 0x77A7, 0xC7C6, 0x77A8, 0xB272, 0x77A9, 0xD6F5, 0x77AA, 0xB5C9, + 0x77AB, 0xB273, 0x77AC, 0xCBB2, 0x77AD, 0xB274, 0x77AE, 0xB275, 0x77AF, 0xB276, 0x77B0, 0xEEAB, 0x77B1, 0xB277, 0x77B2, 0xB278, + 0x77B3, 0xCDAB, 0x77B4, 0xB279, 0x77B5, 0xEEAC, 0x77B6, 0xB27A, 0x77B7, 0xB27B, 0x77B8, 0xB27C, 0x77B9, 0xB27D, 0x77BA, 0xB27E, + 0x77BB, 0xD5B0, 0x77BC, 0xB280, 0x77BD, 0xEEAD, 0x77BE, 0xB281, 0x77BF, 0xF6C4, 0x77C0, 0xB282, 0x77C1, 0xB283, 0x77C2, 0xB284, + 0x77C3, 0xB285, 0x77C4, 0xB286, 0x77C5, 0xB287, 0x77C6, 0xB288, 0x77C7, 0xB289, 0x77C8, 0xB28A, 0x77C9, 0xB28B, 0x77CA, 0xB28C, + 0x77CB, 0xB28D, 0x77CC, 0xB28E, 0x77CD, 0xDBC7, 0x77CE, 0xB28F, 0x77CF, 0xB290, 0x77D0, 0xB291, 0x77D1, 0xB292, 0x77D2, 0xB293, + 0x77D3, 0xB294, 0x77D4, 0xB295, 0x77D5, 0xB296, 0x77D6, 0xB297, 0x77D7, 0xB4A3, 0x77D8, 0xB298, 0x77D9, 0xB299, 0x77DA, 0xB29A, + 0x77DB, 0xC3AC, 0x77DC, 0xF1E6, 0x77DD, 0xB29B, 0x77DE, 0xB29C, 0x77DF, 0xB29D, 0x77E0, 0xB29E, 0x77E1, 0xB29F, 0x77E2, 0xCAB8, + 0x77E3, 0xD2D3, 0x77E4, 0xB2A0, 0x77E5, 0xD6AA, 0x77E6, 0xB340, 0x77E7, 0xEFF2, 0x77E8, 0xB341, 0x77E9, 0xBED8, 0x77EA, 0xB342, + 0x77EB, 0xBDC3, 0x77EC, 0xEFF3, 0x77ED, 0xB6CC, 0x77EE, 0xB0AB, 0x77EF, 0xB343, 0x77F0, 0xB344, 0x77F1, 0xB345, 0x77F2, 0xB346, + 0x77F3, 0xCAAF, 0x77F4, 0xB347, 0x77F5, 0xB348, 0x77F6, 0xEDB6, 0x77F7, 0xB349, 0x77F8, 0xEDB7, 0x77F9, 0xB34A, 0x77FA, 0xB34B, + 0x77FB, 0xB34C, 0x77FC, 0xB34D, 0x77FD, 0xCEF9, 0x77FE, 0xB7AF, 0x77FF, 0xBFF3, 0x7800, 0xEDB8, 0x7801, 0xC2EB, 0x7802, 0xC9B0, + 0x7803, 0xB34E, 0x7804, 0xB34F, 0x7805, 0xB350, 0x7806, 0xB351, 0x7807, 0xB352, 0x7808, 0xB353, 0x7809, 0xEDB9, 0x780A, 0xB354, + 0x780B, 0xB355, 0x780C, 0xC6F6, 0x780D, 0xBFB3, 0x780E, 0xB356, 0x780F, 0xB357, 0x7810, 0xB358, 0x7811, 0xEDBC, 0x7812, 0xC5F8, + 0x7813, 0xB359, 0x7814, 0xD1D0, 0x7815, 0xB35A, 0x7816, 0xD7A9, 0x7817, 0xEDBA, 0x7818, 0xEDBB, 0x7819, 0xB35B, 0x781A, 0xD1E2, + 0x781B, 0xB35C, 0x781C, 0xEDBF, 0x781D, 0xEDC0, 0x781E, 0xB35D, 0x781F, 0xEDC4, 0x7820, 0xB35E, 0x7821, 0xB35F, 0x7822, 0xB360, + 0x7823, 0xEDC8, 0x7824, 0xB361, 0x7825, 0xEDC6, 0x7826, 0xEDCE, 0x7827, 0xD5E8, 0x7828, 0xB362, 0x7829, 0xEDC9, 0x782A, 0xB363, + 0x782B, 0xB364, 0x782C, 0xEDC7, 0x782D, 0xEDBE, 0x782E, 0xB365, 0x782F, 0xB366, 0x7830, 0xC5E9, 0x7831, 0xB367, 0x7832, 0xB368, + 0x7833, 0xB369, 0x7834, 0xC6C6, 0x7835, 0xB36A, 0x7836, 0xB36B, 0x7837, 0xC9E9, 0x7838, 0xD4D2, 0x7839, 0xEDC1, 0x783A, 0xEDC2, + 0x783B, 0xEDC3, 0x783C, 0xEDC5, 0x783D, 0xB36C, 0x783E, 0xC0F9, 0x783F, 0xB36D, 0x7840, 0xB4A1, 0x7841, 0xB36E, 0x7842, 0xB36F, + 0x7843, 0xB370, 0x7844, 0xB371, 0x7845, 0xB9E8, 0x7846, 0xB372, 0x7847, 0xEDD0, 0x7848, 0xB373, 0x7849, 0xB374, 0x784A, 0xB375, + 0x784B, 0xB376, 0x784C, 0xEDD1, 0x784D, 0xB377, 0x784E, 0xEDCA, 0x784F, 0xB378, 0x7850, 0xEDCF, 0x7851, 0xB379, 0x7852, 0xCEF8, + 0x7853, 0xB37A, 0x7854, 0xB37B, 0x7855, 0xCBB6, 0x7856, 0xEDCC, 0x7857, 0xEDCD, 0x7858, 0xB37C, 0x7859, 0xB37D, 0x785A, 0xB37E, + 0x785B, 0xB380, 0x785C, 0xB381, 0x785D, 0xCFF5, 0x785E, 0xB382, 0x785F, 0xB383, 0x7860, 0xB384, 0x7861, 0xB385, 0x7862, 0xB386, + 0x7863, 0xB387, 0x7864, 0xB388, 0x7865, 0xB389, 0x7866, 0xB38A, 0x7867, 0xB38B, 0x7868, 0xB38C, 0x7869, 0xB38D, 0x786A, 0xEDD2, + 0x786B, 0xC1F2, 0x786C, 0xD3B2, 0x786D, 0xEDCB, 0x786E, 0xC8B7, 0x786F, 0xB38E, 0x7870, 0xB38F, 0x7871, 0xB390, 0x7872, 0xB391, + 0x7873, 0xB392, 0x7874, 0xB393, 0x7875, 0xB394, 0x7876, 0xB395, 0x7877, 0xBCEF, 0x7878, 0xB396, 0x7879, 0xB397, 0x787A, 0xB398, + 0x787B, 0xB399, 0x787C, 0xC5F0, 0x787D, 0xB39A, 0x787E, 0xB39B, 0x787F, 0xB39C, 0x7880, 0xB39D, 0x7881, 0xB39E, 0x7882, 0xB39F, + 0x7883, 0xB3A0, 0x7884, 0xB440, 0x7885, 0xB441, 0x7886, 0xB442, 0x7887, 0xEDD6, 0x7888, 0xB443, 0x7889, 0xB5EF, 0x788A, 0xB444, + 0x788B, 0xB445, 0x788C, 0xC2B5, 0x788D, 0xB0AD, 0x788E, 0xCBE9, 0x788F, 0xB446, 0x7890, 0xB447, 0x7891, 0xB1AE, 0x7892, 0xB448, + 0x7893, 0xEDD4, 0x7894, 0xB449, 0x7895, 0xB44A, 0x7896, 0xB44B, 0x7897, 0xCDEB, 0x7898, 0xB5E2, 0x7899, 0xB44C, 0x789A, 0xEDD5, + 0x789B, 0xEDD3, 0x789C, 0xEDD7, 0x789D, 0xB44D, 0x789E, 0xB44E, 0x789F, 0xB5FA, 0x78A0, 0xB44F, 0x78A1, 0xEDD8, 0x78A2, 0xB450, + 0x78A3, 0xEDD9, 0x78A4, 0xB451, 0x78A5, 0xEDDC, 0x78A6, 0xB452, 0x78A7, 0xB1CC, 0x78A8, 0xB453, 0x78A9, 0xB454, 0x78AA, 0xB455, + 0x78AB, 0xB456, 0x78AC, 0xB457, 0x78AD, 0xB458, 0x78AE, 0xB459, 0x78AF, 0xB45A, 0x78B0, 0xC5F6, 0x78B1, 0xBCEE, 0x78B2, 0xEDDA, + 0x78B3, 0xCCBC, 0x78B4, 0xB2EA, 0x78B5, 0xB45B, 0x78B6, 0xB45C, 0x78B7, 0xB45D, 0x78B8, 0xB45E, 0x78B9, 0xEDDB, 0x78BA, 0xB45F, + 0x78BB, 0xB460, 0x78BC, 0xB461, 0x78BD, 0xB462, 0x78BE, 0xC4EB, 0x78BF, 0xB463, 0x78C0, 0xB464, 0x78C1, 0xB4C5, 0x78C2, 0xB465, + 0x78C3, 0xB466, 0x78C4, 0xB467, 0x78C5, 0xB0F5, 0x78C6, 0xB468, 0x78C7, 0xB469, 0x78C8, 0xB46A, 0x78C9, 0xEDDF, 0x78CA, 0xC0DA, + 0x78CB, 0xB4E8, 0x78CC, 0xB46B, 0x78CD, 0xB46C, 0x78CE, 0xB46D, 0x78CF, 0xB46E, 0x78D0, 0xC5CD, 0x78D1, 0xB46F, 0x78D2, 0xB470, + 0x78D3, 0xB471, 0x78D4, 0xEDDD, 0x78D5, 0xBFC4, 0x78D6, 0xB472, 0x78D7, 0xB473, 0x78D8, 0xB474, 0x78D9, 0xEDDE, 0x78DA, 0xB475, + 0x78DB, 0xB476, 0x78DC, 0xB477, 0x78DD, 0xB478, 0x78DE, 0xB479, 0x78DF, 0xB47A, 0x78E0, 0xB47B, 0x78E1, 0xB47C, 0x78E2, 0xB47D, + 0x78E3, 0xB47E, 0x78E4, 0xB480, 0x78E5, 0xB481, 0x78E6, 0xB482, 0x78E7, 0xB483, 0x78E8, 0xC4A5, 0x78E9, 0xB484, 0x78EA, 0xB485, + 0x78EB, 0xB486, 0x78EC, 0xEDE0, 0x78ED, 0xB487, 0x78EE, 0xB488, 0x78EF, 0xB489, 0x78F0, 0xB48A, 0x78F1, 0xB48B, 0x78F2, 0xEDE1, + 0x78F3, 0xB48C, 0x78F4, 0xEDE3, 0x78F5, 0xB48D, 0x78F6, 0xB48E, 0x78F7, 0xC1D7, 0x78F8, 0xB48F, 0x78F9, 0xB490, 0x78FA, 0xBBC7, + 0x78FB, 0xB491, 0x78FC, 0xB492, 0x78FD, 0xB493, 0x78FE, 0xB494, 0x78FF, 0xB495, 0x7900, 0xB496, 0x7901, 0xBDB8, 0x7902, 0xB497, + 0x7903, 0xB498, 0x7904, 0xB499, 0x7905, 0xEDE2, 0x7906, 0xB49A, 0x7907, 0xB49B, 0x7908, 0xB49C, 0x7909, 0xB49D, 0x790A, 0xB49E, + 0x790B, 0xB49F, 0x790C, 0xB4A0, 0x790D, 0xB540, 0x790E, 0xB541, 0x790F, 0xB542, 0x7910, 0xB543, 0x7911, 0xB544, 0x7912, 0xB545, + 0x7913, 0xEDE4, 0x7914, 0xB546, 0x7915, 0xB547, 0x7916, 0xB548, 0x7917, 0xB549, 0x7918, 0xB54A, 0x7919, 0xB54B, 0x791A, 0xB54C, + 0x791B, 0xB54D, 0x791C, 0xB54E, 0x791D, 0xB54F, 0x791E, 0xEDE6, 0x791F, 0xB550, 0x7920, 0xB551, 0x7921, 0xB552, 0x7922, 0xB553, + 0x7923, 0xB554, 0x7924, 0xEDE5, 0x7925, 0xB555, 0x7926, 0xB556, 0x7927, 0xB557, 0x7928, 0xB558, 0x7929, 0xB559, 0x792A, 0xB55A, + 0x792B, 0xB55B, 0x792C, 0xB55C, 0x792D, 0xB55D, 0x792E, 0xB55E, 0x792F, 0xB55F, 0x7930, 0xB560, 0x7931, 0xB561, 0x7932, 0xB562, + 0x7933, 0xB563, 0x7934, 0xEDE7, 0x7935, 0xB564, 0x7936, 0xB565, 0x7937, 0xB566, 0x7938, 0xB567, 0x7939, 0xB568, 0x793A, 0xCABE, + 0x793B, 0xECEA, 0x793C, 0xC0F1, 0x793D, 0xB569, 0x793E, 0xC9E7, 0x793F, 0xB56A, 0x7940, 0xECEB, 0x7941, 0xC6EE, 0x7942, 0xB56B, + 0x7943, 0xB56C, 0x7944, 0xB56D, 0x7945, 0xB56E, 0x7946, 0xECEC, 0x7947, 0xB56F, 0x7948, 0xC6ED, 0x7949, 0xECED, 0x794A, 0xB570, + 0x794B, 0xB571, 0x794C, 0xB572, 0x794D, 0xB573, 0x794E, 0xB574, 0x794F, 0xB575, 0x7950, 0xB576, 0x7951, 0xB577, 0x7952, 0xB578, + 0x7953, 0xECF0, 0x7954, 0xB579, 0x7955, 0xB57A, 0x7956, 0xD7E6, 0x7957, 0xECF3, 0x7958, 0xB57B, 0x7959, 0xB57C, 0x795A, 0xECF1, + 0x795B, 0xECEE, 0x795C, 0xECEF, 0x795D, 0xD7A3, 0x795E, 0xC9F1, 0x795F, 0xCBEE, 0x7960, 0xECF4, 0x7961, 0xB57D, 0x7962, 0xECF2, + 0x7963, 0xB57E, 0x7964, 0xB580, 0x7965, 0xCFE9, 0x7966, 0xB581, 0x7967, 0xECF6, 0x7968, 0xC6B1, 0x7969, 0xB582, 0x796A, 0xB583, + 0x796B, 0xB584, 0x796C, 0xB585, 0x796D, 0xBCC0, 0x796E, 0xB586, 0x796F, 0xECF5, 0x7970, 0xB587, 0x7971, 0xB588, 0x7972, 0xB589, + 0x7973, 0xB58A, 0x7974, 0xB58B, 0x7975, 0xB58C, 0x7976, 0xB58D, 0x7977, 0xB5BB, 0x7978, 0xBBF6, 0x7979, 0xB58E, 0x797A, 0xECF7, + 0x797B, 0xB58F, 0x797C, 0xB590, 0x797D, 0xB591, 0x797E, 0xB592, 0x797F, 0xB593, 0x7980, 0xD9F7, 0x7981, 0xBDFB, 0x7982, 0xB594, + 0x7983, 0xB595, 0x7984, 0xC2BB, 0x7985, 0xECF8, 0x7986, 0xB596, 0x7987, 0xB597, 0x7988, 0xB598, 0x7989, 0xB599, 0x798A, 0xECF9, + 0x798B, 0xB59A, 0x798C, 0xB59B, 0x798D, 0xB59C, 0x798E, 0xB59D, 0x798F, 0xB8A3, 0x7990, 0xB59E, 0x7991, 0xB59F, 0x7992, 0xB5A0, + 0x7993, 0xB640, 0x7994, 0xB641, 0x7995, 0xB642, 0x7996, 0xB643, 0x7997, 0xB644, 0x7998, 0xB645, 0x7999, 0xB646, 0x799A, 0xECFA, + 0x799B, 0xB647, 0x799C, 0xB648, 0x799D, 0xB649, 0x799E, 0xB64A, 0x799F, 0xB64B, 0x79A0, 0xB64C, 0x79A1, 0xB64D, 0x79A2, 0xB64E, + 0x79A3, 0xB64F, 0x79A4, 0xB650, 0x79A5, 0xB651, 0x79A6, 0xB652, 0x79A7, 0xECFB, 0x79A8, 0xB653, 0x79A9, 0xB654, 0x79AA, 0xB655, + 0x79AB, 0xB656, 0x79AC, 0xB657, 0x79AD, 0xB658, 0x79AE, 0xB659, 0x79AF, 0xB65A, 0x79B0, 0xB65B, 0x79B1, 0xB65C, 0x79B2, 0xB65D, + 0x79B3, 0xECFC, 0x79B4, 0xB65E, 0x79B5, 0xB65F, 0x79B6, 0xB660, 0x79B7, 0xB661, 0x79B8, 0xB662, 0x79B9, 0xD3ED, 0x79BA, 0xD8AE, + 0x79BB, 0xC0EB, 0x79BC, 0xB663, 0x79BD, 0xC7DD, 0x79BE, 0xBACC, 0x79BF, 0xB664, 0x79C0, 0xD0E3, 0x79C1, 0xCBBD, 0x79C2, 0xB665, + 0x79C3, 0xCDBA, 0x79C4, 0xB666, 0x79C5, 0xB667, 0x79C6, 0xB8D1, 0x79C7, 0xB668, 0x79C8, 0xB669, 0x79C9, 0xB1FC, 0x79CA, 0xB66A, + 0x79CB, 0xC7EF, 0x79CC, 0xB66B, 0x79CD, 0xD6D6, 0x79CE, 0xB66C, 0x79CF, 0xB66D, 0x79D0, 0xB66E, 0x79D1, 0xBFC6, 0x79D2, 0xC3EB, + 0x79D3, 0xB66F, 0x79D4, 0xB670, 0x79D5, 0xEFF5, 0x79D6, 0xB671, 0x79D7, 0xB672, 0x79D8, 0xC3D8, 0x79D9, 0xB673, 0x79DA, 0xB674, + 0x79DB, 0xB675, 0x79DC, 0xB676, 0x79DD, 0xB677, 0x79DE, 0xB678, 0x79DF, 0xD7E2, 0x79E0, 0xB679, 0x79E1, 0xB67A, 0x79E2, 0xB67B, + 0x79E3, 0xEFF7, 0x79E4, 0xB3D3, 0x79E5, 0xB67C, 0x79E6, 0xC7D8, 0x79E7, 0xD1ED, 0x79E8, 0xB67D, 0x79E9, 0xD6C8, 0x79EA, 0xB67E, + 0x79EB, 0xEFF8, 0x79EC, 0xB680, 0x79ED, 0xEFF6, 0x79EE, 0xB681, 0x79EF, 0xBBFD, 0x79F0, 0xB3C6, 0x79F1, 0xB682, 0x79F2, 0xB683, + 0x79F3, 0xB684, 0x79F4, 0xB685, 0x79F5, 0xB686, 0x79F6, 0xB687, 0x79F7, 0xB688, 0x79F8, 0xBDD5, 0x79F9, 0xB689, 0x79FA, 0xB68A, + 0x79FB, 0xD2C6, 0x79FC, 0xB68B, 0x79FD, 0xBBE0, 0x79FE, 0xB68C, 0x79FF, 0xB68D, 0x7A00, 0xCFA1, 0x7A01, 0xB68E, 0x7A02, 0xEFFC, + 0x7A03, 0xEFFB, 0x7A04, 0xB68F, 0x7A05, 0xB690, 0x7A06, 0xEFF9, 0x7A07, 0xB691, 0x7A08, 0xB692, 0x7A09, 0xB693, 0x7A0A, 0xB694, + 0x7A0B, 0xB3CC, 0x7A0C, 0xB695, 0x7A0D, 0xC9D4, 0x7A0E, 0xCBB0, 0x7A0F, 0xB696, 0x7A10, 0xB697, 0x7A11, 0xB698, 0x7A12, 0xB699, + 0x7A13, 0xB69A, 0x7A14, 0xEFFE, 0x7A15, 0xB69B, 0x7A16, 0xB69C, 0x7A17, 0xB0DE, 0x7A18, 0xB69D, 0x7A19, 0xB69E, 0x7A1A, 0xD6C9, + 0x7A1B, 0xB69F, 0x7A1C, 0xB6A0, 0x7A1D, 0xB740, 0x7A1E, 0xEFFD, 0x7A1F, 0xB741, 0x7A20, 0xB3ED, 0x7A21, 0xB742, 0x7A22, 0xB743, + 0x7A23, 0xF6D5, 0x7A24, 0xB744, 0x7A25, 0xB745, 0x7A26, 0xB746, 0x7A27, 0xB747, 0x7A28, 0xB748, 0x7A29, 0xB749, 0x7A2A, 0xB74A, + 0x7A2B, 0xB74B, 0x7A2C, 0xB74C, 0x7A2D, 0xB74D, 0x7A2E, 0xB74E, 0x7A2F, 0xB74F, 0x7A30, 0xB750, 0x7A31, 0xB751, 0x7A32, 0xB752, + 0x7A33, 0xCEC8, 0x7A34, 0xB753, 0x7A35, 0xB754, 0x7A36, 0xB755, 0x7A37, 0xF0A2, 0x7A38, 0xB756, 0x7A39, 0xF0A1, 0x7A3A, 0xB757, + 0x7A3B, 0xB5BE, 0x7A3C, 0xBCDA, 0x7A3D, 0xBBFC, 0x7A3E, 0xB758, 0x7A3F, 0xB8E5, 0x7A40, 0xB759, 0x7A41, 0xB75A, 0x7A42, 0xB75B, + 0x7A43, 0xB75C, 0x7A44, 0xB75D, 0x7A45, 0xB75E, 0x7A46, 0xC4C2, 0x7A47, 0xB75F, 0x7A48, 0xB760, 0x7A49, 0xB761, 0x7A4A, 0xB762, + 0x7A4B, 0xB763, 0x7A4C, 0xB764, 0x7A4D, 0xB765, 0x7A4E, 0xB766, 0x7A4F, 0xB767, 0x7A50, 0xB768, 0x7A51, 0xF0A3, 0x7A52, 0xB769, + 0x7A53, 0xB76A, 0x7A54, 0xB76B, 0x7A55, 0xB76C, 0x7A56, 0xB76D, 0x7A57, 0xCBEB, 0x7A58, 0xB76E, 0x7A59, 0xB76F, 0x7A5A, 0xB770, + 0x7A5B, 0xB771, 0x7A5C, 0xB772, 0x7A5D, 0xB773, 0x7A5E, 0xB774, 0x7A5F, 0xB775, 0x7A60, 0xB776, 0x7A61, 0xB777, 0x7A62, 0xB778, + 0x7A63, 0xB779, 0x7A64, 0xB77A, 0x7A65, 0xB77B, 0x7A66, 0xB77C, 0x7A67, 0xB77D, 0x7A68, 0xB77E, 0x7A69, 0xB780, 0x7A6A, 0xB781, + 0x7A6B, 0xB782, 0x7A6C, 0xB783, 0x7A6D, 0xB784, 0x7A6E, 0xB785, 0x7A6F, 0xB786, 0x7A70, 0xF0A6, 0x7A71, 0xB787, 0x7A72, 0xB788, + 0x7A73, 0xB789, 0x7A74, 0xD1A8, 0x7A75, 0xB78A, 0x7A76, 0xBEBF, 0x7A77, 0xC7EE, 0x7A78, 0xF1B6, 0x7A79, 0xF1B7, 0x7A7A, 0xBFD5, + 0x7A7B, 0xB78B, 0x7A7C, 0xB78C, 0x7A7D, 0xB78D, 0x7A7E, 0xB78E, 0x7A7F, 0xB4A9, 0x7A80, 0xF1B8, 0x7A81, 0xCDBB, 0x7A82, 0xB78F, + 0x7A83, 0xC7D4, 0x7A84, 0xD5AD, 0x7A85, 0xB790, 0x7A86, 0xF1B9, 0x7A87, 0xB791, 0x7A88, 0xF1BA, 0x7A89, 0xB792, 0x7A8A, 0xB793, + 0x7A8B, 0xB794, 0x7A8C, 0xB795, 0x7A8D, 0xC7CF, 0x7A8E, 0xB796, 0x7A8F, 0xB797, 0x7A90, 0xB798, 0x7A91, 0xD2A4, 0x7A92, 0xD6CF, + 0x7A93, 0xB799, 0x7A94, 0xB79A, 0x7A95, 0xF1BB, 0x7A96, 0xBDD1, 0x7A97, 0xB4B0, 0x7A98, 0xBEBD, 0x7A99, 0xB79B, 0x7A9A, 0xB79C, + 0x7A9B, 0xB79D, 0x7A9C, 0xB4DC, 0x7A9D, 0xCED1, 0x7A9E, 0xB79E, 0x7A9F, 0xBFDF, 0x7AA0, 0xF1BD, 0x7AA1, 0xB79F, 0x7AA2, 0xB7A0, + 0x7AA3, 0xB840, 0x7AA4, 0xB841, 0x7AA5, 0xBFFA, 0x7AA6, 0xF1BC, 0x7AA7, 0xB842, 0x7AA8, 0xF1BF, 0x7AA9, 0xB843, 0x7AAA, 0xB844, + 0x7AAB, 0xB845, 0x7AAC, 0xF1BE, 0x7AAD, 0xF1C0, 0x7AAE, 0xB846, 0x7AAF, 0xB847, 0x7AB0, 0xB848, 0x7AB1, 0xB849, 0x7AB2, 0xB84A, + 0x7AB3, 0xF1C1, 0x7AB4, 0xB84B, 0x7AB5, 0xB84C, 0x7AB6, 0xB84D, 0x7AB7, 0xB84E, 0x7AB8, 0xB84F, 0x7AB9, 0xB850, 0x7ABA, 0xB851, + 0x7ABB, 0xB852, 0x7ABC, 0xB853, 0x7ABD, 0xB854, 0x7ABE, 0xB855, 0x7ABF, 0xC1FE, 0x7AC0, 0xB856, 0x7AC1, 0xB857, 0x7AC2, 0xB858, + 0x7AC3, 0xB859, 0x7AC4, 0xB85A, 0x7AC5, 0xB85B, 0x7AC6, 0xB85C, 0x7AC7, 0xB85D, 0x7AC8, 0xB85E, 0x7AC9, 0xB85F, 0x7ACA, 0xB860, + 0x7ACB, 0xC1A2, 0x7ACC, 0xB861, 0x7ACD, 0xB862, 0x7ACE, 0xB863, 0x7ACF, 0xB864, 0x7AD0, 0xB865, 0x7AD1, 0xB866, 0x7AD2, 0xB867, + 0x7AD3, 0xB868, 0x7AD4, 0xB869, 0x7AD5, 0xB86A, 0x7AD6, 0xCAFA, 0x7AD7, 0xB86B, 0x7AD8, 0xB86C, 0x7AD9, 0xD5BE, 0x7ADA, 0xB86D, + 0x7ADB, 0xB86E, 0x7ADC, 0xB86F, 0x7ADD, 0xB870, 0x7ADE, 0xBEBA, 0x7ADF, 0xBEB9, 0x7AE0, 0xD5C2, 0x7AE1, 0xB871, 0x7AE2, 0xB872, + 0x7AE3, 0xBFA2, 0x7AE4, 0xB873, 0x7AE5, 0xCDAF, 0x7AE6, 0xF1B5, 0x7AE7, 0xB874, 0x7AE8, 0xB875, 0x7AE9, 0xB876, 0x7AEA, 0xB877, + 0x7AEB, 0xB878, 0x7AEC, 0xB879, 0x7AED, 0xBDDF, 0x7AEE, 0xB87A, 0x7AEF, 0xB6CB, 0x7AF0, 0xB87B, 0x7AF1, 0xB87C, 0x7AF2, 0xB87D, + 0x7AF3, 0xB87E, 0x7AF4, 0xB880, 0x7AF5, 0xB881, 0x7AF6, 0xB882, 0x7AF7, 0xB883, 0x7AF8, 0xB884, 0x7AF9, 0xD6F1, 0x7AFA, 0xF3C3, + 0x7AFB, 0xB885, 0x7AFC, 0xB886, 0x7AFD, 0xF3C4, 0x7AFE, 0xB887, 0x7AFF, 0xB8CD, 0x7B00, 0xB888, 0x7B01, 0xB889, 0x7B02, 0xB88A, + 0x7B03, 0xF3C6, 0x7B04, 0xF3C7, 0x7B05, 0xB88B, 0x7B06, 0xB0CA, 0x7B07, 0xB88C, 0x7B08, 0xF3C5, 0x7B09, 0xB88D, 0x7B0A, 0xF3C9, + 0x7B0B, 0xCBF1, 0x7B0C, 0xB88E, 0x7B0D, 0xB88F, 0x7B0E, 0xB890, 0x7B0F, 0xF3CB, 0x7B10, 0xB891, 0x7B11, 0xD0A6, 0x7B12, 0xB892, + 0x7B13, 0xB893, 0x7B14, 0xB1CA, 0x7B15, 0xF3C8, 0x7B16, 0xB894, 0x7B17, 0xB895, 0x7B18, 0xB896, 0x7B19, 0xF3CF, 0x7B1A, 0xB897, + 0x7B1B, 0xB5D1, 0x7B1C, 0xB898, 0x7B1D, 0xB899, 0x7B1E, 0xF3D7, 0x7B1F, 0xB89A, 0x7B20, 0xF3D2, 0x7B21, 0xB89B, 0x7B22, 0xB89C, + 0x7B23, 0xB89D, 0x7B24, 0xF3D4, 0x7B25, 0xF3D3, 0x7B26, 0xB7FB, 0x7B27, 0xB89E, 0x7B28, 0xB1BF, 0x7B29, 0xB89F, 0x7B2A, 0xF3CE, + 0x7B2B, 0xF3CA, 0x7B2C, 0xB5DA, 0x7B2D, 0xB8A0, 0x7B2E, 0xF3D0, 0x7B2F, 0xB940, 0x7B30, 0xB941, 0x7B31, 0xF3D1, 0x7B32, 0xB942, + 0x7B33, 0xF3D5, 0x7B34, 0xB943, 0x7B35, 0xB944, 0x7B36, 0xB945, 0x7B37, 0xB946, 0x7B38, 0xF3CD, 0x7B39, 0xB947, 0x7B3A, 0xBCE3, + 0x7B3B, 0xB948, 0x7B3C, 0xC1FD, 0x7B3D, 0xB949, 0x7B3E, 0xF3D6, 0x7B3F, 0xB94A, 0x7B40, 0xB94B, 0x7B41, 0xB94C, 0x7B42, 0xB94D, + 0x7B43, 0xB94E, 0x7B44, 0xB94F, 0x7B45, 0xF3DA, 0x7B46, 0xB950, 0x7B47, 0xF3CC, 0x7B48, 0xB951, 0x7B49, 0xB5C8, 0x7B4A, 0xB952, + 0x7B4B, 0xBDEE, 0x7B4C, 0xF3DC, 0x7B4D, 0xB953, 0x7B4E, 0xB954, 0x7B4F, 0xB7A4, 0x7B50, 0xBFF0, 0x7B51, 0xD6FE, 0x7B52, 0xCDB2, + 0x7B53, 0xB955, 0x7B54, 0xB4F0, 0x7B55, 0xB956, 0x7B56, 0xB2DF, 0x7B57, 0xB957, 0x7B58, 0xF3D8, 0x7B59, 0xB958, 0x7B5A, 0xF3D9, + 0x7B5B, 0xC9B8, 0x7B5C, 0xB959, 0x7B5D, 0xF3DD, 0x7B5E, 0xB95A, 0x7B5F, 0xB95B, 0x7B60, 0xF3DE, 0x7B61, 0xB95C, 0x7B62, 0xF3E1, + 0x7B63, 0xB95D, 0x7B64, 0xB95E, 0x7B65, 0xB95F, 0x7B66, 0xB960, 0x7B67, 0xB961, 0x7B68, 0xB962, 0x7B69, 0xB963, 0x7B6A, 0xB964, + 0x7B6B, 0xB965, 0x7B6C, 0xB966, 0x7B6D, 0xB967, 0x7B6E, 0xF3DF, 0x7B6F, 0xB968, 0x7B70, 0xB969, 0x7B71, 0xF3E3, 0x7B72, 0xF3E2, + 0x7B73, 0xB96A, 0x7B74, 0xB96B, 0x7B75, 0xF3DB, 0x7B76, 0xB96C, 0x7B77, 0xBFEA, 0x7B78, 0xB96D, 0x7B79, 0xB3EF, 0x7B7A, 0xB96E, + 0x7B7B, 0xF3E0, 0x7B7C, 0xB96F, 0x7B7D, 0xB970, 0x7B7E, 0xC7A9, 0x7B7F, 0xB971, 0x7B80, 0xBCF2, 0x7B81, 0xB972, 0x7B82, 0xB973, + 0x7B83, 0xB974, 0x7B84, 0xB975, 0x7B85, 0xF3EB, 0x7B86, 0xB976, 0x7B87, 0xB977, 0x7B88, 0xB978, 0x7B89, 0xB979, 0x7B8A, 0xB97A, + 0x7B8B, 0xB97B, 0x7B8C, 0xB97C, 0x7B8D, 0xB9BF, 0x7B8E, 0xB97D, 0x7B8F, 0xB97E, 0x7B90, 0xF3E4, 0x7B91, 0xB980, 0x7B92, 0xB981, + 0x7B93, 0xB982, 0x7B94, 0xB2AD, 0x7B95, 0xBBFE, 0x7B96, 0xB983, 0x7B97, 0xCBE3, 0x7B98, 0xB984, 0x7B99, 0xB985, 0x7B9A, 0xB986, + 0x7B9B, 0xB987, 0x7B9C, 0xF3ED, 0x7B9D, 0xF3E9, 0x7B9E, 0xB988, 0x7B9F, 0xB989, 0x7BA0, 0xB98A, 0x7BA1, 0xB9DC, 0x7BA2, 0xF3EE, + 0x7BA3, 0xB98B, 0x7BA4, 0xB98C, 0x7BA5, 0xB98D, 0x7BA6, 0xF3E5, 0x7BA7, 0xF3E6, 0x7BA8, 0xF3EA, 0x7BA9, 0xC2E1, 0x7BAA, 0xF3EC, + 0x7BAB, 0xF3EF, 0x7BAC, 0xF3E8, 0x7BAD, 0xBCFD, 0x7BAE, 0xB98E, 0x7BAF, 0xB98F, 0x7BB0, 0xB990, 0x7BB1, 0xCFE4, 0x7BB2, 0xB991, + 0x7BB3, 0xB992, 0x7BB4, 0xF3F0, 0x7BB5, 0xB993, 0x7BB6, 0xB994, 0x7BB7, 0xB995, 0x7BB8, 0xF3E7, 0x7BB9, 0xB996, 0x7BBA, 0xB997, + 0x7BBB, 0xB998, 0x7BBC, 0xB999, 0x7BBD, 0xB99A, 0x7BBE, 0xB99B, 0x7BBF, 0xB99C, 0x7BC0, 0xB99D, 0x7BC1, 0xF3F2, 0x7BC2, 0xB99E, + 0x7BC3, 0xB99F, 0x7BC4, 0xB9A0, 0x7BC5, 0xBA40, 0x7BC6, 0xD7AD, 0x7BC7, 0xC6AA, 0x7BC8, 0xBA41, 0x7BC9, 0xBA42, 0x7BCA, 0xBA43, + 0x7BCB, 0xBA44, 0x7BCC, 0xF3F3, 0x7BCD, 0xBA45, 0x7BCE, 0xBA46, 0x7BCF, 0xBA47, 0x7BD0, 0xBA48, 0x7BD1, 0xF3F1, 0x7BD2, 0xBA49, + 0x7BD3, 0xC2A8, 0x7BD4, 0xBA4A, 0x7BD5, 0xBA4B, 0x7BD6, 0xBA4C, 0x7BD7, 0xBA4D, 0x7BD8, 0xBA4E, 0x7BD9, 0xB8DD, 0x7BDA, 0xF3F5, + 0x7BDB, 0xBA4F, 0x7BDC, 0xBA50, 0x7BDD, 0xF3F4, 0x7BDE, 0xBA51, 0x7BDF, 0xBA52, 0x7BE0, 0xBA53, 0x7BE1, 0xB4DB, 0x7BE2, 0xBA54, + 0x7BE3, 0xBA55, 0x7BE4, 0xBA56, 0x7BE5, 0xF3F6, 0x7BE6, 0xF3F7, 0x7BE7, 0xBA57, 0x7BE8, 0xBA58, 0x7BE9, 0xBA59, 0x7BEA, 0xF3F8, + 0x7BEB, 0xBA5A, 0x7BEC, 0xBA5B, 0x7BED, 0xBA5C, 0x7BEE, 0xC0BA, 0x7BEF, 0xBA5D, 0x7BF0, 0xBA5E, 0x7BF1, 0xC0E9, 0x7BF2, 0xBA5F, + 0x7BF3, 0xBA60, 0x7BF4, 0xBA61, 0x7BF5, 0xBA62, 0x7BF6, 0xBA63, 0x7BF7, 0xC5F1, 0x7BF8, 0xBA64, 0x7BF9, 0xBA65, 0x7BFA, 0xBA66, + 0x7BFB, 0xBA67, 0x7BFC, 0xF3FB, 0x7BFD, 0xBA68, 0x7BFE, 0xF3FA, 0x7BFF, 0xBA69, 0x7C00, 0xBA6A, 0x7C01, 0xBA6B, 0x7C02, 0xBA6C, + 0x7C03, 0xBA6D, 0x7C04, 0xBA6E, 0x7C05, 0xBA6F, 0x7C06, 0xBA70, 0x7C07, 0xB4D8, 0x7C08, 0xBA71, 0x7C09, 0xBA72, 0x7C0A, 0xBA73, + 0x7C0B, 0xF3FE, 0x7C0C, 0xF3F9, 0x7C0D, 0xBA74, 0x7C0E, 0xBA75, 0x7C0F, 0xF3FC, 0x7C10, 0xBA76, 0x7C11, 0xBA77, 0x7C12, 0xBA78, + 0x7C13, 0xBA79, 0x7C14, 0xBA7A, 0x7C15, 0xBA7B, 0x7C16, 0xF3FD, 0x7C17, 0xBA7C, 0x7C18, 0xBA7D, 0x7C19, 0xBA7E, 0x7C1A, 0xBA80, + 0x7C1B, 0xBA81, 0x7C1C, 0xBA82, 0x7C1D, 0xBA83, 0x7C1E, 0xBA84, 0x7C1F, 0xF4A1, 0x7C20, 0xBA85, 0x7C21, 0xBA86, 0x7C22, 0xBA87, + 0x7C23, 0xBA88, 0x7C24, 0xBA89, 0x7C25, 0xBA8A, 0x7C26, 0xF4A3, 0x7C27, 0xBBC9, 0x7C28, 0xBA8B, 0x7C29, 0xBA8C, 0x7C2A, 0xF4A2, + 0x7C2B, 0xBA8D, 0x7C2C, 0xBA8E, 0x7C2D, 0xBA8F, 0x7C2E, 0xBA90, 0x7C2F, 0xBA91, 0x7C30, 0xBA92, 0x7C31, 0xBA93, 0x7C32, 0xBA94, + 0x7C33, 0xBA95, 0x7C34, 0xBA96, 0x7C35, 0xBA97, 0x7C36, 0xBA98, 0x7C37, 0xBA99, 0x7C38, 0xF4A4, 0x7C39, 0xBA9A, 0x7C3A, 0xBA9B, + 0x7C3B, 0xBA9C, 0x7C3C, 0xBA9D, 0x7C3D, 0xBA9E, 0x7C3E, 0xBA9F, 0x7C3F, 0xB2BE, 0x7C40, 0xF4A6, 0x7C41, 0xF4A5, 0x7C42, 0xBAA0, + 0x7C43, 0xBB40, 0x7C44, 0xBB41, 0x7C45, 0xBB42, 0x7C46, 0xBB43, 0x7C47, 0xBB44, 0x7C48, 0xBB45, 0x7C49, 0xBB46, 0x7C4A, 0xBB47, + 0x7C4B, 0xBB48, 0x7C4C, 0xBB49, 0x7C4D, 0xBCAE, 0x7C4E, 0xBB4A, 0x7C4F, 0xBB4B, 0x7C50, 0xBB4C, 0x7C51, 0xBB4D, 0x7C52, 0xBB4E, + 0x7C53, 0xBB4F, 0x7C54, 0xBB50, 0x7C55, 0xBB51, 0x7C56, 0xBB52, 0x7C57, 0xBB53, 0x7C58, 0xBB54, 0x7C59, 0xBB55, 0x7C5A, 0xBB56, + 0x7C5B, 0xBB57, 0x7C5C, 0xBB58, 0x7C5D, 0xBB59, 0x7C5E, 0xBB5A, 0x7C5F, 0xBB5B, 0x7C60, 0xBB5C, 0x7C61, 0xBB5D, 0x7C62, 0xBB5E, + 0x7C63, 0xBB5F, 0x7C64, 0xBB60, 0x7C65, 0xBB61, 0x7C66, 0xBB62, 0x7C67, 0xBB63, 0x7C68, 0xBB64, 0x7C69, 0xBB65, 0x7C6A, 0xBB66, + 0x7C6B, 0xBB67, 0x7C6C, 0xBB68, 0x7C6D, 0xBB69, 0x7C6E, 0xBB6A, 0x7C6F, 0xBB6B, 0x7C70, 0xBB6C, 0x7C71, 0xBB6D, 0x7C72, 0xBB6E, + 0x7C73, 0xC3D7, 0x7C74, 0xD9E1, 0x7C75, 0xBB6F, 0x7C76, 0xBB70, 0x7C77, 0xBB71, 0x7C78, 0xBB72, 0x7C79, 0xBB73, 0x7C7A, 0xBB74, + 0x7C7B, 0xC0E0, 0x7C7C, 0xF4CC, 0x7C7D, 0xD7D1, 0x7C7E, 0xBB75, 0x7C7F, 0xBB76, 0x7C80, 0xBB77, 0x7C81, 0xBB78, 0x7C82, 0xBB79, + 0x7C83, 0xBB7A, 0x7C84, 0xBB7B, 0x7C85, 0xBB7C, 0x7C86, 0xBB7D, 0x7C87, 0xBB7E, 0x7C88, 0xBB80, 0x7C89, 0xB7DB, 0x7C8A, 0xBB81, + 0x7C8B, 0xBB82, 0x7C8C, 0xBB83, 0x7C8D, 0xBB84, 0x7C8E, 0xBB85, 0x7C8F, 0xBB86, 0x7C90, 0xBB87, 0x7C91, 0xF4CE, 0x7C92, 0xC1A3, + 0x7C93, 0xBB88, 0x7C94, 0xBB89, 0x7C95, 0xC6C9, 0x7C96, 0xBB8A, 0x7C97, 0xB4D6, 0x7C98, 0xD5B3, 0x7C99, 0xBB8B, 0x7C9A, 0xBB8C, + 0x7C9B, 0xBB8D, 0x7C9C, 0xF4D0, 0x7C9D, 0xF4CF, 0x7C9E, 0xF4D1, 0x7C9F, 0xCBDA, 0x7CA0, 0xBB8E, 0x7CA1, 0xBB8F, 0x7CA2, 0xF4D2, + 0x7CA3, 0xBB90, 0x7CA4, 0xD4C1, 0x7CA5, 0xD6E0, 0x7CA6, 0xBB91, 0x7CA7, 0xBB92, 0x7CA8, 0xBB93, 0x7CA9, 0xBB94, 0x7CAA, 0xB7E0, + 0x7CAB, 0xBB95, 0x7CAC, 0xBB96, 0x7CAD, 0xBB97, 0x7CAE, 0xC1B8, 0x7CAF, 0xBB98, 0x7CB0, 0xBB99, 0x7CB1, 0xC1BB, 0x7CB2, 0xF4D3, + 0x7CB3, 0xBEAC, 0x7CB4, 0xBB9A, 0x7CB5, 0xBB9B, 0x7CB6, 0xBB9C, 0x7CB7, 0xBB9D, 0x7CB8, 0xBB9E, 0x7CB9, 0xB4E2, 0x7CBA, 0xBB9F, + 0x7CBB, 0xBBA0, 0x7CBC, 0xF4D4, 0x7CBD, 0xF4D5, 0x7CBE, 0xBEAB, 0x7CBF, 0xBC40, 0x7CC0, 0xBC41, 0x7CC1, 0xF4D6, 0x7CC2, 0xBC42, + 0x7CC3, 0xBC43, 0x7CC4, 0xBC44, 0x7CC5, 0xF4DB, 0x7CC6, 0xBC45, 0x7CC7, 0xF4D7, 0x7CC8, 0xF4DA, 0x7CC9, 0xBC46, 0x7CCA, 0xBAFD, + 0x7CCB, 0xBC47, 0x7CCC, 0xF4D8, 0x7CCD, 0xF4D9, 0x7CCE, 0xBC48, 0x7CCF, 0xBC49, 0x7CD0, 0xBC4A, 0x7CD1, 0xBC4B, 0x7CD2, 0xBC4C, + 0x7CD3, 0xBC4D, 0x7CD4, 0xBC4E, 0x7CD5, 0xB8E2, 0x7CD6, 0xCCC7, 0x7CD7, 0xF4DC, 0x7CD8, 0xBC4F, 0x7CD9, 0xB2DA, 0x7CDA, 0xBC50, + 0x7CDB, 0xBC51, 0x7CDC, 0xC3D3, 0x7CDD, 0xBC52, 0x7CDE, 0xBC53, 0x7CDF, 0xD4E3, 0x7CE0, 0xBFB7, 0x7CE1, 0xBC54, 0x7CE2, 0xBC55, + 0x7CE3, 0xBC56, 0x7CE4, 0xBC57, 0x7CE5, 0xBC58, 0x7CE6, 0xBC59, 0x7CE7, 0xBC5A, 0x7CE8, 0xF4DD, 0x7CE9, 0xBC5B, 0x7CEA, 0xBC5C, + 0x7CEB, 0xBC5D, 0x7CEC, 0xBC5E, 0x7CED, 0xBC5F, 0x7CEE, 0xBC60, 0x7CEF, 0xC5B4, 0x7CF0, 0xBC61, 0x7CF1, 0xBC62, 0x7CF2, 0xBC63, + 0x7CF3, 0xBC64, 0x7CF4, 0xBC65, 0x7CF5, 0xBC66, 0x7CF6, 0xBC67, 0x7CF7, 0xBC68, 0x7CF8, 0xF4E9, 0x7CF9, 0xBC69, 0x7CFA, 0xBC6A, + 0x7CFB, 0xCFB5, 0x7CFC, 0xBC6B, 0x7CFD, 0xBC6C, 0x7CFE, 0xBC6D, 0x7CFF, 0xBC6E, 0x7D00, 0xBC6F, 0x7D01, 0xBC70, 0x7D02, 0xBC71, + 0x7D03, 0xBC72, 0x7D04, 0xBC73, 0x7D05, 0xBC74, 0x7D06, 0xBC75, 0x7D07, 0xBC76, 0x7D08, 0xBC77, 0x7D09, 0xBC78, 0x7D0A, 0xCEC9, + 0x7D0B, 0xBC79, 0x7D0C, 0xBC7A, 0x7D0D, 0xBC7B, 0x7D0E, 0xBC7C, 0x7D0F, 0xBC7D, 0x7D10, 0xBC7E, 0x7D11, 0xBC80, 0x7D12, 0xBC81, + 0x7D13, 0xBC82, 0x7D14, 0xBC83, 0x7D15, 0xBC84, 0x7D16, 0xBC85, 0x7D17, 0xBC86, 0x7D18, 0xBC87, 0x7D19, 0xBC88, 0x7D1A, 0xBC89, + 0x7D1B, 0xBC8A, 0x7D1C, 0xBC8B, 0x7D1D, 0xBC8C, 0x7D1E, 0xBC8D, 0x7D1F, 0xBC8E, 0x7D20, 0xCBD8, 0x7D21, 0xBC8F, 0x7D22, 0xCBF7, + 0x7D23, 0xBC90, 0x7D24, 0xBC91, 0x7D25, 0xBC92, 0x7D26, 0xBC93, 0x7D27, 0xBDF4, 0x7D28, 0xBC94, 0x7D29, 0xBC95, 0x7D2A, 0xBC96, + 0x7D2B, 0xD7CF, 0x7D2C, 0xBC97, 0x7D2D, 0xBC98, 0x7D2E, 0xBC99, 0x7D2F, 0xC0DB, 0x7D30, 0xBC9A, 0x7D31, 0xBC9B, 0x7D32, 0xBC9C, + 0x7D33, 0xBC9D, 0x7D34, 0xBC9E, 0x7D35, 0xBC9F, 0x7D36, 0xBCA0, 0x7D37, 0xBD40, 0x7D38, 0xBD41, 0x7D39, 0xBD42, 0x7D3A, 0xBD43, + 0x7D3B, 0xBD44, 0x7D3C, 0xBD45, 0x7D3D, 0xBD46, 0x7D3E, 0xBD47, 0x7D3F, 0xBD48, 0x7D40, 0xBD49, 0x7D41, 0xBD4A, 0x7D42, 0xBD4B, + 0x7D43, 0xBD4C, 0x7D44, 0xBD4D, 0x7D45, 0xBD4E, 0x7D46, 0xBD4F, 0x7D47, 0xBD50, 0x7D48, 0xBD51, 0x7D49, 0xBD52, 0x7D4A, 0xBD53, + 0x7D4B, 0xBD54, 0x7D4C, 0xBD55, 0x7D4D, 0xBD56, 0x7D4E, 0xBD57, 0x7D4F, 0xBD58, 0x7D50, 0xBD59, 0x7D51, 0xBD5A, 0x7D52, 0xBD5B, + 0x7D53, 0xBD5C, 0x7D54, 0xBD5D, 0x7D55, 0xBD5E, 0x7D56, 0xBD5F, 0x7D57, 0xBD60, 0x7D58, 0xBD61, 0x7D59, 0xBD62, 0x7D5A, 0xBD63, + 0x7D5B, 0xBD64, 0x7D5C, 0xBD65, 0x7D5D, 0xBD66, 0x7D5E, 0xBD67, 0x7D5F, 0xBD68, 0x7D60, 0xBD69, 0x7D61, 0xBD6A, 0x7D62, 0xBD6B, + 0x7D63, 0xBD6C, 0x7D64, 0xBD6D, 0x7D65, 0xBD6E, 0x7D66, 0xBD6F, 0x7D67, 0xBD70, 0x7D68, 0xBD71, 0x7D69, 0xBD72, 0x7D6A, 0xBD73, + 0x7D6B, 0xBD74, 0x7D6C, 0xBD75, 0x7D6D, 0xBD76, 0x7D6E, 0xD0F5, 0x7D6F, 0xBD77, 0x7D70, 0xBD78, 0x7D71, 0xBD79, 0x7D72, 0xBD7A, + 0x7D73, 0xBD7B, 0x7D74, 0xBD7C, 0x7D75, 0xBD7D, 0x7D76, 0xBD7E, 0x7D77, 0xF4EA, 0x7D78, 0xBD80, 0x7D79, 0xBD81, 0x7D7A, 0xBD82, + 0x7D7B, 0xBD83, 0x7D7C, 0xBD84, 0x7D7D, 0xBD85, 0x7D7E, 0xBD86, 0x7D7F, 0xBD87, 0x7D80, 0xBD88, 0x7D81, 0xBD89, 0x7D82, 0xBD8A, + 0x7D83, 0xBD8B, 0x7D84, 0xBD8C, 0x7D85, 0xBD8D, 0x7D86, 0xBD8E, 0x7D87, 0xBD8F, 0x7D88, 0xBD90, 0x7D89, 0xBD91, 0x7D8A, 0xBD92, + 0x7D8B, 0xBD93, 0x7D8C, 0xBD94, 0x7D8D, 0xBD95, 0x7D8E, 0xBD96, 0x7D8F, 0xBD97, 0x7D90, 0xBD98, 0x7D91, 0xBD99, 0x7D92, 0xBD9A, + 0x7D93, 0xBD9B, 0x7D94, 0xBD9C, 0x7D95, 0xBD9D, 0x7D96, 0xBD9E, 0x7D97, 0xBD9F, 0x7D98, 0xBDA0, 0x7D99, 0xBE40, 0x7D9A, 0xBE41, + 0x7D9B, 0xBE42, 0x7D9C, 0xBE43, 0x7D9D, 0xBE44, 0x7D9E, 0xBE45, 0x7D9F, 0xBE46, 0x7DA0, 0xBE47, 0x7DA1, 0xBE48, 0x7DA2, 0xBE49, + 0x7DA3, 0xBE4A, 0x7DA4, 0xBE4B, 0x7DA5, 0xBE4C, 0x7DA6, 0xF4EB, 0x7DA7, 0xBE4D, 0x7DA8, 0xBE4E, 0x7DA9, 0xBE4F, 0x7DAA, 0xBE50, + 0x7DAB, 0xBE51, 0x7DAC, 0xBE52, 0x7DAD, 0xBE53, 0x7DAE, 0xF4EC, 0x7DAF, 0xBE54, 0x7DB0, 0xBE55, 0x7DB1, 0xBE56, 0x7DB2, 0xBE57, + 0x7DB3, 0xBE58, 0x7DB4, 0xBE59, 0x7DB5, 0xBE5A, 0x7DB6, 0xBE5B, 0x7DB7, 0xBE5C, 0x7DB8, 0xBE5D, 0x7DB9, 0xBE5E, 0x7DBA, 0xBE5F, + 0x7DBB, 0xBE60, 0x7DBC, 0xBE61, 0x7DBD, 0xBE62, 0x7DBE, 0xBE63, 0x7DBF, 0xBE64, 0x7DC0, 0xBE65, 0x7DC1, 0xBE66, 0x7DC2, 0xBE67, + 0x7DC3, 0xBE68, 0x7DC4, 0xBE69, 0x7DC5, 0xBE6A, 0x7DC6, 0xBE6B, 0x7DC7, 0xBE6C, 0x7DC8, 0xBE6D, 0x7DC9, 0xBE6E, 0x7DCA, 0xBE6F, + 0x7DCB, 0xBE70, 0x7DCC, 0xBE71, 0x7DCD, 0xBE72, 0x7DCE, 0xBE73, 0x7DCF, 0xBE74, 0x7DD0, 0xBE75, 0x7DD1, 0xBE76, 0x7DD2, 0xBE77, + 0x7DD3, 0xBE78, 0x7DD4, 0xBE79, 0x7DD5, 0xBE7A, 0x7DD6, 0xBE7B, 0x7DD7, 0xBE7C, 0x7DD8, 0xBE7D, 0x7DD9, 0xBE7E, 0x7DDA, 0xBE80, + 0x7DDB, 0xBE81, 0x7DDC, 0xBE82, 0x7DDD, 0xBE83, 0x7DDE, 0xBE84, 0x7DDF, 0xBE85, 0x7DE0, 0xBE86, 0x7DE1, 0xBE87, 0x7DE2, 0xBE88, + 0x7DE3, 0xBE89, 0x7DE4, 0xBE8A, 0x7DE5, 0xBE8B, 0x7DE6, 0xBE8C, 0x7DE7, 0xBE8D, 0x7DE8, 0xBE8E, 0x7DE9, 0xBE8F, 0x7DEA, 0xBE90, + 0x7DEB, 0xBE91, 0x7DEC, 0xBE92, 0x7DED, 0xBE93, 0x7DEE, 0xBE94, 0x7DEF, 0xBE95, 0x7DF0, 0xBE96, 0x7DF1, 0xBE97, 0x7DF2, 0xBE98, + 0x7DF3, 0xBE99, 0x7DF4, 0xBE9A, 0x7DF5, 0xBE9B, 0x7DF6, 0xBE9C, 0x7DF7, 0xBE9D, 0x7DF8, 0xBE9E, 0x7DF9, 0xBE9F, 0x7DFA, 0xBEA0, + 0x7DFB, 0xBF40, 0x7DFC, 0xBF41, 0x7DFD, 0xBF42, 0x7DFE, 0xBF43, 0x7DFF, 0xBF44, 0x7E00, 0xBF45, 0x7E01, 0xBF46, 0x7E02, 0xBF47, + 0x7E03, 0xBF48, 0x7E04, 0xBF49, 0x7E05, 0xBF4A, 0x7E06, 0xBF4B, 0x7E07, 0xBF4C, 0x7E08, 0xBF4D, 0x7E09, 0xBF4E, 0x7E0A, 0xBF4F, + 0x7E0B, 0xBF50, 0x7E0C, 0xBF51, 0x7E0D, 0xBF52, 0x7E0E, 0xBF53, 0x7E0F, 0xBF54, 0x7E10, 0xBF55, 0x7E11, 0xBF56, 0x7E12, 0xBF57, + 0x7E13, 0xBF58, 0x7E14, 0xBF59, 0x7E15, 0xBF5A, 0x7E16, 0xBF5B, 0x7E17, 0xBF5C, 0x7E18, 0xBF5D, 0x7E19, 0xBF5E, 0x7E1A, 0xBF5F, + 0x7E1B, 0xBF60, 0x7E1C, 0xBF61, 0x7E1D, 0xBF62, 0x7E1E, 0xBF63, 0x7E1F, 0xBF64, 0x7E20, 0xBF65, 0x7E21, 0xBF66, 0x7E22, 0xBF67, + 0x7E23, 0xBF68, 0x7E24, 0xBF69, 0x7E25, 0xBF6A, 0x7E26, 0xBF6B, 0x7E27, 0xBF6C, 0x7E28, 0xBF6D, 0x7E29, 0xBF6E, 0x7E2A, 0xBF6F, + 0x7E2B, 0xBF70, 0x7E2C, 0xBF71, 0x7E2D, 0xBF72, 0x7E2E, 0xBF73, 0x7E2F, 0xBF74, 0x7E30, 0xBF75, 0x7E31, 0xBF76, 0x7E32, 0xBF77, + 0x7E33, 0xBF78, 0x7E34, 0xBF79, 0x7E35, 0xBF7A, 0x7E36, 0xBF7B, 0x7E37, 0xBF7C, 0x7E38, 0xBF7D, 0x7E39, 0xBF7E, 0x7E3A, 0xBF80, + 0x7E3B, 0xF7E3, 0x7E3C, 0xBF81, 0x7E3D, 0xBF82, 0x7E3E, 0xBF83, 0x7E3F, 0xBF84, 0x7E40, 0xBF85, 0x7E41, 0xB7B1, 0x7E42, 0xBF86, + 0x7E43, 0xBF87, 0x7E44, 0xBF88, 0x7E45, 0xBF89, 0x7E46, 0xBF8A, 0x7E47, 0xF4ED, 0x7E48, 0xBF8B, 0x7E49, 0xBF8C, 0x7E4A, 0xBF8D, + 0x7E4B, 0xBF8E, 0x7E4C, 0xBF8F, 0x7E4D, 0xBF90, 0x7E4E, 0xBF91, 0x7E4F, 0xBF92, 0x7E50, 0xBF93, 0x7E51, 0xBF94, 0x7E52, 0xBF95, + 0x7E53, 0xBF96, 0x7E54, 0xBF97, 0x7E55, 0xBF98, 0x7E56, 0xBF99, 0x7E57, 0xBF9A, 0x7E58, 0xBF9B, 0x7E59, 0xBF9C, 0x7E5A, 0xBF9D, + 0x7E5B, 0xBF9E, 0x7E5C, 0xBF9F, 0x7E5D, 0xBFA0, 0x7E5E, 0xC040, 0x7E5F, 0xC041, 0x7E60, 0xC042, 0x7E61, 0xC043, 0x7E62, 0xC044, + 0x7E63, 0xC045, 0x7E64, 0xC046, 0x7E65, 0xC047, 0x7E66, 0xC048, 0x7E67, 0xC049, 0x7E68, 0xC04A, 0x7E69, 0xC04B, 0x7E6A, 0xC04C, + 0x7E6B, 0xC04D, 0x7E6C, 0xC04E, 0x7E6D, 0xC04F, 0x7E6E, 0xC050, 0x7E6F, 0xC051, 0x7E70, 0xC052, 0x7E71, 0xC053, 0x7E72, 0xC054, + 0x7E73, 0xC055, 0x7E74, 0xC056, 0x7E75, 0xC057, 0x7E76, 0xC058, 0x7E77, 0xC059, 0x7E78, 0xC05A, 0x7E79, 0xC05B, 0x7E7A, 0xC05C, + 0x7E7B, 0xC05D, 0x7E7C, 0xC05E, 0x7E7D, 0xC05F, 0x7E7E, 0xC060, 0x7E7F, 0xC061, 0x7E80, 0xC062, 0x7E81, 0xC063, 0x7E82, 0xD7EB, + 0x7E83, 0xC064, 0x7E84, 0xC065, 0x7E85, 0xC066, 0x7E86, 0xC067, 0x7E87, 0xC068, 0x7E88, 0xC069, 0x7E89, 0xC06A, 0x7E8A, 0xC06B, + 0x7E8B, 0xC06C, 0x7E8C, 0xC06D, 0x7E8D, 0xC06E, 0x7E8E, 0xC06F, 0x7E8F, 0xC070, 0x7E90, 0xC071, 0x7E91, 0xC072, 0x7E92, 0xC073, + 0x7E93, 0xC074, 0x7E94, 0xC075, 0x7E95, 0xC076, 0x7E96, 0xC077, 0x7E97, 0xC078, 0x7E98, 0xC079, 0x7E99, 0xC07A, 0x7E9A, 0xC07B, + 0x7E9B, 0xF4EE, 0x7E9C, 0xC07C, 0x7E9D, 0xC07D, 0x7E9E, 0xC07E, 0x7E9F, 0xE6F9, 0x7EA0, 0xBEC0, 0x7EA1, 0xE6FA, 0x7EA2, 0xBAEC, + 0x7EA3, 0xE6FB, 0x7EA4, 0xCFCB, 0x7EA5, 0xE6FC, 0x7EA6, 0xD4BC, 0x7EA7, 0xBCB6, 0x7EA8, 0xE6FD, 0x7EA9, 0xE6FE, 0x7EAA, 0xBCCD, + 0x7EAB, 0xC8D2, 0x7EAC, 0xCEB3, 0x7EAD, 0xE7A1, 0x7EAE, 0xC080, 0x7EAF, 0xB4BF, 0x7EB0, 0xE7A2, 0x7EB1, 0xC9B4, 0x7EB2, 0xB8D9, + 0x7EB3, 0xC4C9, 0x7EB4, 0xC081, 0x7EB5, 0xD7DD, 0x7EB6, 0xC2DA, 0x7EB7, 0xB7D7, 0x7EB8, 0xD6BD, 0x7EB9, 0xCEC6, 0x7EBA, 0xB7C4, + 0x7EBB, 0xC082, 0x7EBC, 0xC083, 0x7EBD, 0xC5A6, 0x7EBE, 0xE7A3, 0x7EBF, 0xCFDF, 0x7EC0, 0xE7A4, 0x7EC1, 0xE7A5, 0x7EC2, 0xE7A6, + 0x7EC3, 0xC1B7, 0x7EC4, 0xD7E9, 0x7EC5, 0xC9F0, 0x7EC6, 0xCFB8, 0x7EC7, 0xD6AF, 0x7EC8, 0xD6D5, 0x7EC9, 0xE7A7, 0x7ECA, 0xB0ED, + 0x7ECB, 0xE7A8, 0x7ECC, 0xE7A9, 0x7ECD, 0xC9DC, 0x7ECE, 0xD2EF, 0x7ECF, 0xBEAD, 0x7ED0, 0xE7AA, 0x7ED1, 0xB0F3, 0x7ED2, 0xC8DE, + 0x7ED3, 0xBDE1, 0x7ED4, 0xE7AB, 0x7ED5, 0xC8C6, 0x7ED6, 0xC084, 0x7ED7, 0xE7AC, 0x7ED8, 0xBBE6, 0x7ED9, 0xB8F8, 0x7EDA, 0xD1A4, + 0x7EDB, 0xE7AD, 0x7EDC, 0xC2E7, 0x7EDD, 0xBEF8, 0x7EDE, 0xBDCA, 0x7EDF, 0xCDB3, 0x7EE0, 0xE7AE, 0x7EE1, 0xE7AF, 0x7EE2, 0xBEEE, + 0x7EE3, 0xD0E5, 0x7EE4, 0xC085, 0x7EE5, 0xCBE7, 0x7EE6, 0xCCD0, 0x7EE7, 0xBCCC, 0x7EE8, 0xE7B0, 0x7EE9, 0xBCA8, 0x7EEA, 0xD0F7, + 0x7EEB, 0xE7B1, 0x7EEC, 0xC086, 0x7EED, 0xD0F8, 0x7EEE, 0xE7B2, 0x7EEF, 0xE7B3, 0x7EF0, 0xB4C2, 0x7EF1, 0xE7B4, 0x7EF2, 0xE7B5, + 0x7EF3, 0xC9FE, 0x7EF4, 0xCEAC, 0x7EF5, 0xC3E0, 0x7EF6, 0xE7B7, 0x7EF7, 0xB1C1, 0x7EF8, 0xB3F1, 0x7EF9, 0xC087, 0x7EFA, 0xE7B8, + 0x7EFB, 0xE7B9, 0x7EFC, 0xD7DB, 0x7EFD, 0xD5C0, 0x7EFE, 0xE7BA, 0x7EFF, 0xC2CC, 0x7F00, 0xD7BA, 0x7F01, 0xE7BB, 0x7F02, 0xE7BC, + 0x7F03, 0xE7BD, 0x7F04, 0xBCEA, 0x7F05, 0xC3E5, 0x7F06, 0xC0C2, 0x7F07, 0xE7BE, 0x7F08, 0xE7BF, 0x7F09, 0xBCA9, 0x7F0A, 0xC088, + 0x7F0B, 0xE7C0, 0x7F0C, 0xE7C1, 0x7F0D, 0xE7B6, 0x7F0E, 0xB6D0, 0x7F0F, 0xE7C2, 0x7F10, 0xC089, 0x7F11, 0xE7C3, 0x7F12, 0xE7C4, + 0x7F13, 0xBBBA, 0x7F14, 0xB5DE, 0x7F15, 0xC2C6, 0x7F16, 0xB1E0, 0x7F17, 0xE7C5, 0x7F18, 0xD4B5, 0x7F19, 0xE7C6, 0x7F1A, 0xB8BF, + 0x7F1B, 0xE7C8, 0x7F1C, 0xE7C7, 0x7F1D, 0xB7EC, 0x7F1E, 0xC08A, 0x7F1F, 0xE7C9, 0x7F20, 0xB2F8, 0x7F21, 0xE7CA, 0x7F22, 0xE7CB, + 0x7F23, 0xE7CC, 0x7F24, 0xE7CD, 0x7F25, 0xE7CE, 0x7F26, 0xE7CF, 0x7F27, 0xE7D0, 0x7F28, 0xD3A7, 0x7F29, 0xCBF5, 0x7F2A, 0xE7D1, + 0x7F2B, 0xE7D2, 0x7F2C, 0xE7D3, 0x7F2D, 0xE7D4, 0x7F2E, 0xC9C9, 0x7F2F, 0xE7D5, 0x7F30, 0xE7D6, 0x7F31, 0xE7D7, 0x7F32, 0xE7D8, + 0x7F33, 0xE7D9, 0x7F34, 0xBDC9, 0x7F35, 0xE7DA, 0x7F36, 0xF3BE, 0x7F37, 0xC08B, 0x7F38, 0xB8D7, 0x7F39, 0xC08C, 0x7F3A, 0xC8B1, + 0x7F3B, 0xC08D, 0x7F3C, 0xC08E, 0x7F3D, 0xC08F, 0x7F3E, 0xC090, 0x7F3F, 0xC091, 0x7F40, 0xC092, 0x7F41, 0xC093, 0x7F42, 0xF3BF, + 0x7F43, 0xC094, 0x7F44, 0xF3C0, 0x7F45, 0xF3C1, 0x7F46, 0xC095, 0x7F47, 0xC096, 0x7F48, 0xC097, 0x7F49, 0xC098, 0x7F4A, 0xC099, + 0x7F4B, 0xC09A, 0x7F4C, 0xC09B, 0x7F4D, 0xC09C, 0x7F4E, 0xC09D, 0x7F4F, 0xC09E, 0x7F50, 0xB9DE, 0x7F51, 0xCDF8, 0x7F52, 0xC09F, + 0x7F53, 0xC0A0, 0x7F54, 0xD8E8, 0x7F55, 0xBAB1, 0x7F56, 0xC140, 0x7F57, 0xC2DE, 0x7F58, 0xEEB7, 0x7F59, 0xC141, 0x7F5A, 0xB7A3, + 0x7F5B, 0xC142, 0x7F5C, 0xC143, 0x7F5D, 0xC144, 0x7F5E, 0xC145, 0x7F5F, 0xEEB9, 0x7F60, 0xC146, 0x7F61, 0xEEB8, 0x7F62, 0xB0D5, + 0x7F63, 0xC147, 0x7F64, 0xC148, 0x7F65, 0xC149, 0x7F66, 0xC14A, 0x7F67, 0xC14B, 0x7F68, 0xEEBB, 0x7F69, 0xD5D6, 0x7F6A, 0xD7EF, + 0x7F6B, 0xC14C, 0x7F6C, 0xC14D, 0x7F6D, 0xC14E, 0x7F6E, 0xD6C3, 0x7F6F, 0xC14F, 0x7F70, 0xC150, 0x7F71, 0xEEBD, 0x7F72, 0xCAF0, + 0x7F73, 0xC151, 0x7F74, 0xEEBC, 0x7F75, 0xC152, 0x7F76, 0xC153, 0x7F77, 0xC154, 0x7F78, 0xC155, 0x7F79, 0xEEBE, 0x7F7A, 0xC156, + 0x7F7B, 0xC157, 0x7F7C, 0xC158, 0x7F7D, 0xC159, 0x7F7E, 0xEEC0, 0x7F7F, 0xC15A, 0x7F80, 0xC15B, 0x7F81, 0xEEBF, 0x7F82, 0xC15C, + 0x7F83, 0xC15D, 0x7F84, 0xC15E, 0x7F85, 0xC15F, 0x7F86, 0xC160, 0x7F87, 0xC161, 0x7F88, 0xC162, 0x7F89, 0xC163, 0x7F8A, 0xD1F2, + 0x7F8B, 0xC164, 0x7F8C, 0xC7BC, 0x7F8D, 0xC165, 0x7F8E, 0xC3C0, 0x7F8F, 0xC166, 0x7F90, 0xC167, 0x7F91, 0xC168, 0x7F92, 0xC169, + 0x7F93, 0xC16A, 0x7F94, 0xB8E1, 0x7F95, 0xC16B, 0x7F96, 0xC16C, 0x7F97, 0xC16D, 0x7F98, 0xC16E, 0x7F99, 0xC16F, 0x7F9A, 0xC1E7, + 0x7F9B, 0xC170, 0x7F9C, 0xC171, 0x7F9D, 0xF4C6, 0x7F9E, 0xD0DF, 0x7F9F, 0xF4C7, 0x7FA0, 0xC172, 0x7FA1, 0xCFDB, 0x7FA2, 0xC173, + 0x7FA3, 0xC174, 0x7FA4, 0xC8BA, 0x7FA5, 0xC175, 0x7FA6, 0xC176, 0x7FA7, 0xF4C8, 0x7FA8, 0xC177, 0x7FA9, 0xC178, 0x7FAA, 0xC179, + 0x7FAB, 0xC17A, 0x7FAC, 0xC17B, 0x7FAD, 0xC17C, 0x7FAE, 0xC17D, 0x7FAF, 0xF4C9, 0x7FB0, 0xF4CA, 0x7FB1, 0xC17E, 0x7FB2, 0xF4CB, + 0x7FB3, 0xC180, 0x7FB4, 0xC181, 0x7FB5, 0xC182, 0x7FB6, 0xC183, 0x7FB7, 0xC184, 0x7FB8, 0xD9FA, 0x7FB9, 0xB8FE, 0x7FBA, 0xC185, + 0x7FBB, 0xC186, 0x7FBC, 0xE5F1, 0x7FBD, 0xD3F0, 0x7FBE, 0xC187, 0x7FBF, 0xF4E0, 0x7FC0, 0xC188, 0x7FC1, 0xCECC, 0x7FC2, 0xC189, + 0x7FC3, 0xC18A, 0x7FC4, 0xC18B, 0x7FC5, 0xB3E1, 0x7FC6, 0xC18C, 0x7FC7, 0xC18D, 0x7FC8, 0xC18E, 0x7FC9, 0xC18F, 0x7FCA, 0xF1B4, + 0x7FCB, 0xC190, 0x7FCC, 0xD2EE, 0x7FCD, 0xC191, 0x7FCE, 0xF4E1, 0x7FCF, 0xC192, 0x7FD0, 0xC193, 0x7FD1, 0xC194, 0x7FD2, 0xC195, + 0x7FD3, 0xC196, 0x7FD4, 0xCFE8, 0x7FD5, 0xF4E2, 0x7FD6, 0xC197, 0x7FD7, 0xC198, 0x7FD8, 0xC7CC, 0x7FD9, 0xC199, 0x7FDA, 0xC19A, + 0x7FDB, 0xC19B, 0x7FDC, 0xC19C, 0x7FDD, 0xC19D, 0x7FDE, 0xC19E, 0x7FDF, 0xB5D4, 0x7FE0, 0xB4E4, 0x7FE1, 0xF4E4, 0x7FE2, 0xC19F, + 0x7FE3, 0xC1A0, 0x7FE4, 0xC240, 0x7FE5, 0xF4E3, 0x7FE6, 0xF4E5, 0x7FE7, 0xC241, 0x7FE8, 0xC242, 0x7FE9, 0xF4E6, 0x7FEA, 0xC243, + 0x7FEB, 0xC244, 0x7FEC, 0xC245, 0x7FED, 0xC246, 0x7FEE, 0xF4E7, 0x7FEF, 0xC247, 0x7FF0, 0xBAB2, 0x7FF1, 0xB0BF, 0x7FF2, 0xC248, + 0x7FF3, 0xF4E8, 0x7FF4, 0xC249, 0x7FF5, 0xC24A, 0x7FF6, 0xC24B, 0x7FF7, 0xC24C, 0x7FF8, 0xC24D, 0x7FF9, 0xC24E, 0x7FFA, 0xC24F, + 0x7FFB, 0xB7AD, 0x7FFC, 0xD2ED, 0x7FFD, 0xC250, 0x7FFE, 0xC251, 0x7FFF, 0xC252, 0x8000, 0xD2AB, 0x8001, 0xC0CF, 0x8002, 0xC253, + 0x8003, 0xBFBC, 0x8004, 0xEBA3, 0x8005, 0xD5DF, 0x8006, 0xEAC8, 0x8007, 0xC254, 0x8008, 0xC255, 0x8009, 0xC256, 0x800A, 0xC257, + 0x800B, 0xF1F3, 0x800C, 0xB6F8, 0x800D, 0xCBA3, 0x800E, 0xC258, 0x800F, 0xC259, 0x8010, 0xC4CD, 0x8011, 0xC25A, 0x8012, 0xF1E7, + 0x8013, 0xC25B, 0x8014, 0xF1E8, 0x8015, 0xB8FB, 0x8016, 0xF1E9, 0x8017, 0xBAC4, 0x8018, 0xD4C5, 0x8019, 0xB0D2, 0x801A, 0xC25C, + 0x801B, 0xC25D, 0x801C, 0xF1EA, 0x801D, 0xC25E, 0x801E, 0xC25F, 0x801F, 0xC260, 0x8020, 0xF1EB, 0x8021, 0xC261, 0x8022, 0xF1EC, + 0x8023, 0xC262, 0x8024, 0xC263, 0x8025, 0xF1ED, 0x8026, 0xF1EE, 0x8027, 0xF1EF, 0x8028, 0xF1F1, 0x8029, 0xF1F0, 0x802A, 0xC5D5, + 0x802B, 0xC264, 0x802C, 0xC265, 0x802D, 0xC266, 0x802E, 0xC267, 0x802F, 0xC268, 0x8030, 0xC269, 0x8031, 0xF1F2, 0x8032, 0xC26A, + 0x8033, 0xB6FA, 0x8034, 0xC26B, 0x8035, 0xF1F4, 0x8036, 0xD2AE, 0x8037, 0xDEC7, 0x8038, 0xCBCA, 0x8039, 0xC26C, 0x803A, 0xC26D, + 0x803B, 0xB3DC, 0x803C, 0xC26E, 0x803D, 0xB5A2, 0x803E, 0xC26F, 0x803F, 0xB9A2, 0x8040, 0xC270, 0x8041, 0xC271, 0x8042, 0xC4F4, + 0x8043, 0xF1F5, 0x8044, 0xC272, 0x8045, 0xC273, 0x8046, 0xF1F6, 0x8047, 0xC274, 0x8048, 0xC275, 0x8049, 0xC276, 0x804A, 0xC1C4, + 0x804B, 0xC1FB, 0x804C, 0xD6B0, 0x804D, 0xF1F7, 0x804E, 0xC277, 0x804F, 0xC278, 0x8050, 0xC279, 0x8051, 0xC27A, 0x8052, 0xF1F8, + 0x8053, 0xC27B, 0x8054, 0xC1AA, 0x8055, 0xC27C, 0x8056, 0xC27D, 0x8057, 0xC27E, 0x8058, 0xC6B8, 0x8059, 0xC280, 0x805A, 0xBEDB, + 0x805B, 0xC281, 0x805C, 0xC282, 0x805D, 0xC283, 0x805E, 0xC284, 0x805F, 0xC285, 0x8060, 0xC286, 0x8061, 0xC287, 0x8062, 0xC288, + 0x8063, 0xC289, 0x8064, 0xC28A, 0x8065, 0xC28B, 0x8066, 0xC28C, 0x8067, 0xC28D, 0x8068, 0xC28E, 0x8069, 0xF1F9, 0x806A, 0xB4CF, + 0x806B, 0xC28F, 0x806C, 0xC290, 0x806D, 0xC291, 0x806E, 0xC292, 0x806F, 0xC293, 0x8070, 0xC294, 0x8071, 0xF1FA, 0x8072, 0xC295, + 0x8073, 0xC296, 0x8074, 0xC297, 0x8075, 0xC298, 0x8076, 0xC299, 0x8077, 0xC29A, 0x8078, 0xC29B, 0x8079, 0xC29C, 0x807A, 0xC29D, + 0x807B, 0xC29E, 0x807C, 0xC29F, 0x807D, 0xC2A0, 0x807E, 0xC340, 0x807F, 0xEDB2, 0x8080, 0xEDB1, 0x8081, 0xC341, 0x8082, 0xC342, + 0x8083, 0xCBE0, 0x8084, 0xD2DE, 0x8085, 0xC343, 0x8086, 0xCBC1, 0x8087, 0xD5D8, 0x8088, 0xC344, 0x8089, 0xC8E2, 0x808A, 0xC345, + 0x808B, 0xC0DF, 0x808C, 0xBCA1, 0x808D, 0xC346, 0x808E, 0xC347, 0x808F, 0xC348, 0x8090, 0xC349, 0x8091, 0xC34A, 0x8092, 0xC34B, + 0x8093, 0xEBC1, 0x8094, 0xC34C, 0x8095, 0xC34D, 0x8096, 0xD0A4, 0x8097, 0xC34E, 0x8098, 0xD6E2, 0x8099, 0xC34F, 0x809A, 0xB6C7, + 0x809B, 0xB8D8, 0x809C, 0xEBC0, 0x809D, 0xB8CE, 0x809E, 0xC350, 0x809F, 0xEBBF, 0x80A0, 0xB3A6, 0x80A1, 0xB9C9, 0x80A2, 0xD6AB, + 0x80A3, 0xC351, 0x80A4, 0xB7F4, 0x80A5, 0xB7CA, 0x80A6, 0xC352, 0x80A7, 0xC353, 0x80A8, 0xC354, 0x80A9, 0xBCE7, 0x80AA, 0xB7BE, + 0x80AB, 0xEBC6, 0x80AC, 0xC355, 0x80AD, 0xEBC7, 0x80AE, 0xB0B9, 0x80AF, 0xBFCF, 0x80B0, 0xC356, 0x80B1, 0xEBC5, 0x80B2, 0xD3FD, + 0x80B3, 0xC357, 0x80B4, 0xEBC8, 0x80B5, 0xC358, 0x80B6, 0xC359, 0x80B7, 0xEBC9, 0x80B8, 0xC35A, 0x80B9, 0xC35B, 0x80BA, 0xB7CE, + 0x80BB, 0xC35C, 0x80BC, 0xEBC2, 0x80BD, 0xEBC4, 0x80BE, 0xC9F6, 0x80BF, 0xD6D7, 0x80C0, 0xD5CD, 0x80C1, 0xD0B2, 0x80C2, 0xEBCF, + 0x80C3, 0xCEB8, 0x80C4, 0xEBD0, 0x80C5, 0xC35D, 0x80C6, 0xB5A8, 0x80C7, 0xC35E, 0x80C8, 0xC35F, 0x80C9, 0xC360, 0x80CA, 0xC361, + 0x80CB, 0xC362, 0x80CC, 0xB1B3, 0x80CD, 0xEBD2, 0x80CE, 0xCCA5, 0x80CF, 0xC363, 0x80D0, 0xC364, 0x80D1, 0xC365, 0x80D2, 0xC366, + 0x80D3, 0xC367, 0x80D4, 0xC368, 0x80D5, 0xC369, 0x80D6, 0xC5D6, 0x80D7, 0xEBD3, 0x80D8, 0xC36A, 0x80D9, 0xEBD1, 0x80DA, 0xC5DF, + 0x80DB, 0xEBCE, 0x80DC, 0xCAA4, 0x80DD, 0xEBD5, 0x80DE, 0xB0FB, 0x80DF, 0xC36B, 0x80E0, 0xC36C, 0x80E1, 0xBAFA, 0x80E2, 0xC36D, + 0x80E3, 0xC36E, 0x80E4, 0xD8B7, 0x80E5, 0xF1E3, 0x80E6, 0xC36F, 0x80E7, 0xEBCA, 0x80E8, 0xEBCB, 0x80E9, 0xEBCC, 0x80EA, 0xEBCD, + 0x80EB, 0xEBD6, 0x80EC, 0xE6C0, 0x80ED, 0xEBD9, 0x80EE, 0xC370, 0x80EF, 0xBFE8, 0x80F0, 0xD2C8, 0x80F1, 0xEBD7, 0x80F2, 0xEBDC, + 0x80F3, 0xB8EC, 0x80F4, 0xEBD8, 0x80F5, 0xC371, 0x80F6, 0xBDBA, 0x80F7, 0xC372, 0x80F8, 0xD0D8, 0x80F9, 0xC373, 0x80FA, 0xB0B7, + 0x80FB, 0xC374, 0x80FC, 0xEBDD, 0x80FD, 0xC4DC, 0x80FE, 0xC375, 0x80FF, 0xC376, 0x8100, 0xC377, 0x8101, 0xC378, 0x8102, 0xD6AC, + 0x8103, 0xC379, 0x8104, 0xC37A, 0x8105, 0xC37B, 0x8106, 0xB4E0, 0x8107, 0xC37C, 0x8108, 0xC37D, 0x8109, 0xC2F6, 0x810A, 0xBCB9, + 0x810B, 0xC37E, 0x810C, 0xC380, 0x810D, 0xEBDA, 0x810E, 0xEBDB, 0x810F, 0xD4E0, 0x8110, 0xC6EA, 0x8111, 0xC4D4, 0x8112, 0xEBDF, + 0x8113, 0xC5A7, 0x8114, 0xD9F5, 0x8115, 0xC381, 0x8116, 0xB2B1, 0x8117, 0xC382, 0x8118, 0xEBE4, 0x8119, 0xC383, 0x811A, 0xBDC5, + 0x811B, 0xC384, 0x811C, 0xC385, 0x811D, 0xC386, 0x811E, 0xEBE2, 0x811F, 0xC387, 0x8120, 0xC388, 0x8121, 0xC389, 0x8122, 0xC38A, + 0x8123, 0xC38B, 0x8124, 0xC38C, 0x8125, 0xC38D, 0x8126, 0xC38E, 0x8127, 0xC38F, 0x8128, 0xC390, 0x8129, 0xC391, 0x812A, 0xC392, + 0x812B, 0xC393, 0x812C, 0xEBE3, 0x812D, 0xC394, 0x812E, 0xC395, 0x812F, 0xB8AC, 0x8130, 0xC396, 0x8131, 0xCDD1, 0x8132, 0xEBE5, + 0x8133, 0xC397, 0x8134, 0xC398, 0x8135, 0xC399, 0x8136, 0xEBE1, 0x8137, 0xC39A, 0x8138, 0xC1B3, 0x8139, 0xC39B, 0x813A, 0xC39C, + 0x813B, 0xC39D, 0x813C, 0xC39E, 0x813D, 0xC39F, 0x813E, 0xC6A2, 0x813F, 0xC3A0, 0x8140, 0xC440, 0x8141, 0xC441, 0x8142, 0xC442, + 0x8143, 0xC443, 0x8144, 0xC444, 0x8145, 0xC445, 0x8146, 0xCCF3, 0x8147, 0xC446, 0x8148, 0xEBE6, 0x8149, 0xC447, 0x814A, 0xC0B0, + 0x814B, 0xD2B8, 0x814C, 0xEBE7, 0x814D, 0xC448, 0x814E, 0xC449, 0x814F, 0xC44A, 0x8150, 0xB8AF, 0x8151, 0xB8AD, 0x8152, 0xC44B, + 0x8153, 0xEBE8, 0x8154, 0xC7BB, 0x8155, 0xCDF3, 0x8156, 0xC44C, 0x8157, 0xC44D, 0x8158, 0xC44E, 0x8159, 0xEBEA, 0x815A, 0xEBEB, + 0x815B, 0xC44F, 0x815C, 0xC450, 0x815D, 0xC451, 0x815E, 0xC452, 0x815F, 0xC453, 0x8160, 0xEBED, 0x8161, 0xC454, 0x8162, 0xC455, + 0x8163, 0xC456, 0x8164, 0xC457, 0x8165, 0xD0C8, 0x8166, 0xC458, 0x8167, 0xEBF2, 0x8168, 0xC459, 0x8169, 0xEBEE, 0x816A, 0xC45A, + 0x816B, 0xC45B, 0x816C, 0xC45C, 0x816D, 0xEBF1, 0x816E, 0xC8F9, 0x816F, 0xC45D, 0x8170, 0xD1FC, 0x8171, 0xEBEC, 0x8172, 0xC45E, + 0x8173, 0xC45F, 0x8174, 0xEBE9, 0x8175, 0xC460, 0x8176, 0xC461, 0x8177, 0xC462, 0x8178, 0xC463, 0x8179, 0xB8B9, 0x817A, 0xCFD9, + 0x817B, 0xC4E5, 0x817C, 0xEBEF, 0x817D, 0xEBF0, 0x817E, 0xCCDA, 0x817F, 0xCDC8, 0x8180, 0xB0F2, 0x8181, 0xC464, 0x8182, 0xEBF6, + 0x8183, 0xC465, 0x8184, 0xC466, 0x8185, 0xC467, 0x8186, 0xC468, 0x8187, 0xC469, 0x8188, 0xEBF5, 0x8189, 0xC46A, 0x818A, 0xB2B2, + 0x818B, 0xC46B, 0x818C, 0xC46C, 0x818D, 0xC46D, 0x818E, 0xC46E, 0x818F, 0xB8E0, 0x8190, 0xC46F, 0x8191, 0xEBF7, 0x8192, 0xC470, + 0x8193, 0xC471, 0x8194, 0xC472, 0x8195, 0xC473, 0x8196, 0xC474, 0x8197, 0xC475, 0x8198, 0xB1EC, 0x8199, 0xC476, 0x819A, 0xC477, + 0x819B, 0xCCC5, 0x819C, 0xC4A4, 0x819D, 0xCFA5, 0x819E, 0xC478, 0x819F, 0xC479, 0x81A0, 0xC47A, 0x81A1, 0xC47B, 0x81A2, 0xC47C, + 0x81A3, 0xEBF9, 0x81A4, 0xC47D, 0x81A5, 0xC47E, 0x81A6, 0xECA2, 0x81A7, 0xC480, 0x81A8, 0xC5F2, 0x81A9, 0xC481, 0x81AA, 0xEBFA, + 0x81AB, 0xC482, 0x81AC, 0xC483, 0x81AD, 0xC484, 0x81AE, 0xC485, 0x81AF, 0xC486, 0x81B0, 0xC487, 0x81B1, 0xC488, 0x81B2, 0xC489, + 0x81B3, 0xC9C5, 0x81B4, 0xC48A, 0x81B5, 0xC48B, 0x81B6, 0xC48C, 0x81B7, 0xC48D, 0x81B8, 0xC48E, 0x81B9, 0xC48F, 0x81BA, 0xE2DF, + 0x81BB, 0xEBFE, 0x81BC, 0xC490, 0x81BD, 0xC491, 0x81BE, 0xC492, 0x81BF, 0xC493, 0x81C0, 0xCDCE, 0x81C1, 0xECA1, 0x81C2, 0xB1DB, + 0x81C3, 0xD3B7, 0x81C4, 0xC494, 0x81C5, 0xC495, 0x81C6, 0xD2DC, 0x81C7, 0xC496, 0x81C8, 0xC497, 0x81C9, 0xC498, 0x81CA, 0xEBFD, + 0x81CB, 0xC499, 0x81CC, 0xEBFB, 0x81CD, 0xC49A, 0x81CE, 0xC49B, 0x81CF, 0xC49C, 0x81D0, 0xC49D, 0x81D1, 0xC49E, 0x81D2, 0xC49F, + 0x81D3, 0xC4A0, 0x81D4, 0xC540, 0x81D5, 0xC541, 0x81D6, 0xC542, 0x81D7, 0xC543, 0x81D8, 0xC544, 0x81D9, 0xC545, 0x81DA, 0xC546, + 0x81DB, 0xC547, 0x81DC, 0xC548, 0x81DD, 0xC549, 0x81DE, 0xC54A, 0x81DF, 0xC54B, 0x81E0, 0xC54C, 0x81E1, 0xC54D, 0x81E2, 0xC54E, + 0x81E3, 0xB3BC, 0x81E4, 0xC54F, 0x81E5, 0xC550, 0x81E6, 0xC551, 0x81E7, 0xEAB0, 0x81E8, 0xC552, 0x81E9, 0xC553, 0x81EA, 0xD7D4, + 0x81EB, 0xC554, 0x81EC, 0xF4AB, 0x81ED, 0xB3F4, 0x81EE, 0xC555, 0x81EF, 0xC556, 0x81F0, 0xC557, 0x81F1, 0xC558, 0x81F2, 0xC559, + 0x81F3, 0xD6C1, 0x81F4, 0xD6C2, 0x81F5, 0xC55A, 0x81F6, 0xC55B, 0x81F7, 0xC55C, 0x81F8, 0xC55D, 0x81F9, 0xC55E, 0x81FA, 0xC55F, + 0x81FB, 0xD5E9, 0x81FC, 0xBECA, 0x81FD, 0xC560, 0x81FE, 0xF4A7, 0x81FF, 0xC561, 0x8200, 0xD2A8, 0x8201, 0xF4A8, 0x8202, 0xF4A9, + 0x8203, 0xC562, 0x8204, 0xF4AA, 0x8205, 0xBECB, 0x8206, 0xD3DF, 0x8207, 0xC563, 0x8208, 0xC564, 0x8209, 0xC565, 0x820A, 0xC566, + 0x820B, 0xC567, 0x820C, 0xC9E0, 0x820D, 0xC9E1, 0x820E, 0xC568, 0x820F, 0xC569, 0x8210, 0xF3C2, 0x8211, 0xC56A, 0x8212, 0xCAE6, + 0x8213, 0xC56B, 0x8214, 0xCCF2, 0x8215, 0xC56C, 0x8216, 0xC56D, 0x8217, 0xC56E, 0x8218, 0xC56F, 0x8219, 0xC570, 0x821A, 0xC571, + 0x821B, 0xE2B6, 0x821C, 0xCBB4, 0x821D, 0xC572, 0x821E, 0xCEE8, 0x821F, 0xD6DB, 0x8220, 0xC573, 0x8221, 0xF4AD, 0x8222, 0xF4AE, + 0x8223, 0xF4AF, 0x8224, 0xC574, 0x8225, 0xC575, 0x8226, 0xC576, 0x8227, 0xC577, 0x8228, 0xF4B2, 0x8229, 0xC578, 0x822A, 0xBABD, + 0x822B, 0xF4B3, 0x822C, 0xB0E3, 0x822D, 0xF4B0, 0x822E, 0xC579, 0x822F, 0xF4B1, 0x8230, 0xBDA2, 0x8231, 0xB2D5, 0x8232, 0xC57A, + 0x8233, 0xF4B6, 0x8234, 0xF4B7, 0x8235, 0xB6E6, 0x8236, 0xB2B0, 0x8237, 0xCFCF, 0x8238, 0xF4B4, 0x8239, 0xB4AC, 0x823A, 0xC57B, + 0x823B, 0xF4B5, 0x823C, 0xC57C, 0x823D, 0xC57D, 0x823E, 0xF4B8, 0x823F, 0xC57E, 0x8240, 0xC580, 0x8241, 0xC581, 0x8242, 0xC582, + 0x8243, 0xC583, 0x8244, 0xF4B9, 0x8245, 0xC584, 0x8246, 0xC585, 0x8247, 0xCDA7, 0x8248, 0xC586, 0x8249, 0xF4BA, 0x824A, 0xC587, + 0x824B, 0xF4BB, 0x824C, 0xC588, 0x824D, 0xC589, 0x824E, 0xC58A, 0x824F, 0xF4BC, 0x8250, 0xC58B, 0x8251, 0xC58C, 0x8252, 0xC58D, + 0x8253, 0xC58E, 0x8254, 0xC58F, 0x8255, 0xC590, 0x8256, 0xC591, 0x8257, 0xC592, 0x8258, 0xCBD2, 0x8259, 0xC593, 0x825A, 0xF4BD, + 0x825B, 0xC594, 0x825C, 0xC595, 0x825D, 0xC596, 0x825E, 0xC597, 0x825F, 0xF4BE, 0x8260, 0xC598, 0x8261, 0xC599, 0x8262, 0xC59A, + 0x8263, 0xC59B, 0x8264, 0xC59C, 0x8265, 0xC59D, 0x8266, 0xC59E, 0x8267, 0xC59F, 0x8268, 0xF4BF, 0x8269, 0xC5A0, 0x826A, 0xC640, + 0x826B, 0xC641, 0x826C, 0xC642, 0x826D, 0xC643, 0x826E, 0xF4DE, 0x826F, 0xC1BC, 0x8270, 0xBCE8, 0x8271, 0xC644, 0x8272, 0xC9AB, + 0x8273, 0xD1DE, 0x8274, 0xE5F5, 0x8275, 0xC645, 0x8276, 0xC646, 0x8277, 0xC647, 0x8278, 0xC648, 0x8279, 0xDCB3, 0x827A, 0xD2D5, + 0x827B, 0xC649, 0x827C, 0xC64A, 0x827D, 0xDCB4, 0x827E, 0xB0AC, 0x827F, 0xDCB5, 0x8280, 0xC64B, 0x8281, 0xC64C, 0x8282, 0xBDDA, + 0x8283, 0xC64D, 0x8284, 0xDCB9, 0x8285, 0xC64E, 0x8286, 0xC64F, 0x8287, 0xC650, 0x8288, 0xD8C2, 0x8289, 0xC651, 0x828A, 0xDCB7, + 0x828B, 0xD3F3, 0x828C, 0xC652, 0x828D, 0xC9D6, 0x828E, 0xDCBA, 0x828F, 0xDCB6, 0x8290, 0xC653, 0x8291, 0xDCBB, 0x8292, 0xC3A2, + 0x8293, 0xC654, 0x8294, 0xC655, 0x8295, 0xC656, 0x8296, 0xC657, 0x8297, 0xDCBC, 0x8298, 0xDCC5, 0x8299, 0xDCBD, 0x829A, 0xC658, + 0x829B, 0xC659, 0x829C, 0xCEDF, 0x829D, 0xD6A5, 0x829E, 0xC65A, 0x829F, 0xDCCF, 0x82A0, 0xC65B, 0x82A1, 0xDCCD, 0x82A2, 0xC65C, + 0x82A3, 0xC65D, 0x82A4, 0xDCD2, 0x82A5, 0xBDE6, 0x82A6, 0xC2AB, 0x82A7, 0xC65E, 0x82A8, 0xDCB8, 0x82A9, 0xDCCB, 0x82AA, 0xDCCE, + 0x82AB, 0xDCBE, 0x82AC, 0xB7D2, 0x82AD, 0xB0C5, 0x82AE, 0xDCC7, 0x82AF, 0xD0BE, 0x82B0, 0xDCC1, 0x82B1, 0xBBA8, 0x82B2, 0xC65F, + 0x82B3, 0xB7BC, 0x82B4, 0xDCCC, 0x82B5, 0xC660, 0x82B6, 0xC661, 0x82B7, 0xDCC6, 0x82B8, 0xDCBF, 0x82B9, 0xC7DB, 0x82BA, 0xC662, + 0x82BB, 0xC663, 0x82BC, 0xC664, 0x82BD, 0xD1BF, 0x82BE, 0xDCC0, 0x82BF, 0xC665, 0x82C0, 0xC666, 0x82C1, 0xDCCA, 0x82C2, 0xC667, + 0x82C3, 0xC668, 0x82C4, 0xDCD0, 0x82C5, 0xC669, 0x82C6, 0xC66A, 0x82C7, 0xCEAD, 0x82C8, 0xDCC2, 0x82C9, 0xC66B, 0x82CA, 0xDCC3, + 0x82CB, 0xDCC8, 0x82CC, 0xDCC9, 0x82CD, 0xB2D4, 0x82CE, 0xDCD1, 0x82CF, 0xCBD5, 0x82D0, 0xC66C, 0x82D1, 0xD4B7, 0x82D2, 0xDCDB, + 0x82D3, 0xDCDF, 0x82D4, 0xCCA6, 0x82D5, 0xDCE6, 0x82D6, 0xC66D, 0x82D7, 0xC3E7, 0x82D8, 0xDCDC, 0x82D9, 0xC66E, 0x82DA, 0xC66F, + 0x82DB, 0xBFC1, 0x82DC, 0xDCD9, 0x82DD, 0xC670, 0x82DE, 0xB0FA, 0x82DF, 0xB9B6, 0x82E0, 0xDCE5, 0x82E1, 0xDCD3, 0x82E2, 0xC671, + 0x82E3, 0xDCC4, 0x82E4, 0xDCD6, 0x82E5, 0xC8F4, 0x82E6, 0xBFE0, 0x82E7, 0xC672, 0x82E8, 0xC673, 0x82E9, 0xC674, 0x82EA, 0xC675, + 0x82EB, 0xC9BB, 0x82EC, 0xC676, 0x82ED, 0xC677, 0x82EE, 0xC678, 0x82EF, 0xB1BD, 0x82F0, 0xC679, 0x82F1, 0xD3A2, 0x82F2, 0xC67A, + 0x82F3, 0xC67B, 0x82F4, 0xDCDA, 0x82F5, 0xC67C, 0x82F6, 0xC67D, 0x82F7, 0xDCD5, 0x82F8, 0xC67E, 0x82F9, 0xC6BB, 0x82FA, 0xC680, + 0x82FB, 0xDCDE, 0x82FC, 0xC681, 0x82FD, 0xC682, 0x82FE, 0xC683, 0x82FF, 0xC684, 0x8300, 0xC685, 0x8301, 0xD7C2, 0x8302, 0xC3AF, + 0x8303, 0xB7B6, 0x8304, 0xC7D1, 0x8305, 0xC3A9, 0x8306, 0xDCE2, 0x8307, 0xDCD8, 0x8308, 0xDCEB, 0x8309, 0xDCD4, 0x830A, 0xC686, + 0x830B, 0xC687, 0x830C, 0xDCDD, 0x830D, 0xC688, 0x830E, 0xBEA5, 0x830F, 0xDCD7, 0x8310, 0xC689, 0x8311, 0xDCE0, 0x8312, 0xC68A, + 0x8313, 0xC68B, 0x8314, 0xDCE3, 0x8315, 0xDCE4, 0x8316, 0xC68C, 0x8317, 0xDCF8, 0x8318, 0xC68D, 0x8319, 0xC68E, 0x831A, 0xDCE1, + 0x831B, 0xDDA2, 0x831C, 0xDCE7, 0x831D, 0xC68F, 0x831E, 0xC690, 0x831F, 0xC691, 0x8320, 0xC692, 0x8321, 0xC693, 0x8322, 0xC694, + 0x8323, 0xC695, 0x8324, 0xC696, 0x8325, 0xC697, 0x8326, 0xC698, 0x8327, 0xBCEB, 0x8328, 0xB4C4, 0x8329, 0xC699, 0x832A, 0xC69A, + 0x832B, 0xC3A3, 0x832C, 0xB2E7, 0x832D, 0xDCFA, 0x832E, 0xC69B, 0x832F, 0xDCF2, 0x8330, 0xC69C, 0x8331, 0xDCEF, 0x8332, 0xC69D, + 0x8333, 0xDCFC, 0x8334, 0xDCEE, 0x8335, 0xD2F0, 0x8336, 0xB2E8, 0x8337, 0xC69E, 0x8338, 0xC8D7, 0x8339, 0xC8E3, 0x833A, 0xDCFB, + 0x833B, 0xC69F, 0x833C, 0xDCED, 0x833D, 0xC6A0, 0x833E, 0xC740, 0x833F, 0xC741, 0x8340, 0xDCF7, 0x8341, 0xC742, 0x8342, 0xC743, + 0x8343, 0xDCF5, 0x8344, 0xC744, 0x8345, 0xC745, 0x8346, 0xBEA3, 0x8347, 0xDCF4, 0x8348, 0xC746, 0x8349, 0xB2DD, 0x834A, 0xC747, + 0x834B, 0xC748, 0x834C, 0xC749, 0x834D, 0xC74A, 0x834E, 0xC74B, 0x834F, 0xDCF3, 0x8350, 0xBCF6, 0x8351, 0xDCE8, 0x8352, 0xBBC4, + 0x8353, 0xC74C, 0x8354, 0xC0F3, 0x8355, 0xC74D, 0x8356, 0xC74E, 0x8357, 0xC74F, 0x8358, 0xC750, 0x8359, 0xC751, 0x835A, 0xBCD4, + 0x835B, 0xDCE9, 0x835C, 0xDCEA, 0x835D, 0xC752, 0x835E, 0xDCF1, 0x835F, 0xDCF6, 0x8360, 0xDCF9, 0x8361, 0xB5B4, 0x8362, 0xC753, + 0x8363, 0xC8D9, 0x8364, 0xBBE7, 0x8365, 0xDCFE, 0x8366, 0xDCFD, 0x8367, 0xD3AB, 0x8368, 0xDDA1, 0x8369, 0xDDA3, 0x836A, 0xDDA5, + 0x836B, 0xD2F1, 0x836C, 0xDDA4, 0x836D, 0xDDA6, 0x836E, 0xDDA7, 0x836F, 0xD2A9, 0x8370, 0xC754, 0x8371, 0xC755, 0x8372, 0xC756, + 0x8373, 0xC757, 0x8374, 0xC758, 0x8375, 0xC759, 0x8376, 0xC75A, 0x8377, 0xBAC9, 0x8378, 0xDDA9, 0x8379, 0xC75B, 0x837A, 0xC75C, + 0x837B, 0xDDB6, 0x837C, 0xDDB1, 0x837D, 0xDDB4, 0x837E, 0xC75D, 0x837F, 0xC75E, 0x8380, 0xC75F, 0x8381, 0xC760, 0x8382, 0xC761, + 0x8383, 0xC762, 0x8384, 0xC763, 0x8385, 0xDDB0, 0x8386, 0xC6CE, 0x8387, 0xC764, 0x8388, 0xC765, 0x8389, 0xC0F2, 0x838A, 0xC766, + 0x838B, 0xC767, 0x838C, 0xC768, 0x838D, 0xC769, 0x838E, 0xC9AF, 0x838F, 0xC76A, 0x8390, 0xC76B, 0x8391, 0xC76C, 0x8392, 0xDCEC, + 0x8393, 0xDDAE, 0x8394, 0xC76D, 0x8395, 0xC76E, 0x8396, 0xC76F, 0x8397, 0xC770, 0x8398, 0xDDB7, 0x8399, 0xC771, 0x839A, 0xC772, + 0x839B, 0xDCF0, 0x839C, 0xDDAF, 0x839D, 0xC773, 0x839E, 0xDDB8, 0x839F, 0xC774, 0x83A0, 0xDDAC, 0x83A1, 0xC775, 0x83A2, 0xC776, + 0x83A3, 0xC777, 0x83A4, 0xC778, 0x83A5, 0xC779, 0x83A6, 0xC77A, 0x83A7, 0xC77B, 0x83A8, 0xDDB9, 0x83A9, 0xDDB3, 0x83AA, 0xDDAD, + 0x83AB, 0xC4AA, 0x83AC, 0xC77C, 0x83AD, 0xC77D, 0x83AE, 0xC77E, 0x83AF, 0xC780, 0x83B0, 0xDDA8, 0x83B1, 0xC0B3, 0x83B2, 0xC1AB, + 0x83B3, 0xDDAA, 0x83B4, 0xDDAB, 0x83B5, 0xC781, 0x83B6, 0xDDB2, 0x83B7, 0xBBF1, 0x83B8, 0xDDB5, 0x83B9, 0xD3A8, 0x83BA, 0xDDBA, + 0x83BB, 0xC782, 0x83BC, 0xDDBB, 0x83BD, 0xC3A7, 0x83BE, 0xC783, 0x83BF, 0xC784, 0x83C0, 0xDDD2, 0x83C1, 0xDDBC, 0x83C2, 0xC785, + 0x83C3, 0xC786, 0x83C4, 0xC787, 0x83C5, 0xDDD1, 0x83C6, 0xC788, 0x83C7, 0xB9BD, 0x83C8, 0xC789, 0x83C9, 0xC78A, 0x83CA, 0xBED5, + 0x83CB, 0xC78B, 0x83CC, 0xBEFA, 0x83CD, 0xC78C, 0x83CE, 0xC78D, 0x83CF, 0xBACA, 0x83D0, 0xC78E, 0x83D1, 0xC78F, 0x83D2, 0xC790, + 0x83D3, 0xC791, 0x83D4, 0xDDCA, 0x83D5, 0xC792, 0x83D6, 0xDDC5, 0x83D7, 0xC793, 0x83D8, 0xDDBF, 0x83D9, 0xC794, 0x83DA, 0xC795, + 0x83DB, 0xC796, 0x83DC, 0xB2CB, 0x83DD, 0xDDC3, 0x83DE, 0xC797, 0x83DF, 0xDDCB, 0x83E0, 0xB2A4, 0x83E1, 0xDDD5, 0x83E2, 0xC798, + 0x83E3, 0xC799, 0x83E4, 0xC79A, 0x83E5, 0xDDBE, 0x83E6, 0xC79B, 0x83E7, 0xC79C, 0x83E8, 0xC79D, 0x83E9, 0xC6D0, 0x83EA, 0xDDD0, + 0x83EB, 0xC79E, 0x83EC, 0xC79F, 0x83ED, 0xC7A0, 0x83EE, 0xC840, 0x83EF, 0xC841, 0x83F0, 0xDDD4, 0x83F1, 0xC1E2, 0x83F2, 0xB7C6, + 0x83F3, 0xC842, 0x83F4, 0xC843, 0x83F5, 0xC844, 0x83F6, 0xC845, 0x83F7, 0xC846, 0x83F8, 0xDDCE, 0x83F9, 0xDDCF, 0x83FA, 0xC847, + 0x83FB, 0xC848, 0x83FC, 0xC849, 0x83FD, 0xDDC4, 0x83FE, 0xC84A, 0x83FF, 0xC84B, 0x8400, 0xC84C, 0x8401, 0xDDBD, 0x8402, 0xC84D, + 0x8403, 0xDDCD, 0x8404, 0xCCD1, 0x8405, 0xC84E, 0x8406, 0xDDC9, 0x8407, 0xC84F, 0x8408, 0xC850, 0x8409, 0xC851, 0x840A, 0xC852, + 0x840B, 0xDDC2, 0x840C, 0xC3C8, 0x840D, 0xC6BC, 0x840E, 0xCEAE, 0x840F, 0xDDCC, 0x8410, 0xC853, 0x8411, 0xDDC8, 0x8412, 0xC854, + 0x8413, 0xC855, 0x8414, 0xC856, 0x8415, 0xC857, 0x8416, 0xC858, 0x8417, 0xC859, 0x8418, 0xDDC1, 0x8419, 0xC85A, 0x841A, 0xC85B, + 0x841B, 0xC85C, 0x841C, 0xDDC6, 0x841D, 0xC2DC, 0x841E, 0xC85D, 0x841F, 0xC85E, 0x8420, 0xC85F, 0x8421, 0xC860, 0x8422, 0xC861, + 0x8423, 0xC862, 0x8424, 0xD3A9, 0x8425, 0xD3AA, 0x8426, 0xDDD3, 0x8427, 0xCFF4, 0x8428, 0xC8F8, 0x8429, 0xC863, 0x842A, 0xC864, + 0x842B, 0xC865, 0x842C, 0xC866, 0x842D, 0xC867, 0x842E, 0xC868, 0x842F, 0xC869, 0x8430, 0xC86A, 0x8431, 0xDDE6, 0x8432, 0xC86B, + 0x8433, 0xC86C, 0x8434, 0xC86D, 0x8435, 0xC86E, 0x8436, 0xC86F, 0x8437, 0xC870, 0x8438, 0xDDC7, 0x8439, 0xC871, 0x843A, 0xC872, + 0x843B, 0xC873, 0x843C, 0xDDE0, 0x843D, 0xC2E4, 0x843E, 0xC874, 0x843F, 0xC875, 0x8440, 0xC876, 0x8441, 0xC877, 0x8442, 0xC878, + 0x8443, 0xC879, 0x8444, 0xC87A, 0x8445, 0xC87B, 0x8446, 0xDDE1, 0x8447, 0xC87C, 0x8448, 0xC87D, 0x8449, 0xC87E, 0x844A, 0xC880, + 0x844B, 0xC881, 0x844C, 0xC882, 0x844D, 0xC883, 0x844E, 0xC884, 0x844F, 0xC885, 0x8450, 0xC886, 0x8451, 0xDDD7, 0x8452, 0xC887, + 0x8453, 0xC888, 0x8454, 0xC889, 0x8455, 0xC88A, 0x8456, 0xC88B, 0x8457, 0xD6F8, 0x8458, 0xC88C, 0x8459, 0xDDD9, 0x845A, 0xDDD8, + 0x845B, 0xB8F0, 0x845C, 0xDDD6, 0x845D, 0xC88D, 0x845E, 0xC88E, 0x845F, 0xC88F, 0x8460, 0xC890, 0x8461, 0xC6CF, 0x8462, 0xC891, + 0x8463, 0xB6AD, 0x8464, 0xC892, 0x8465, 0xC893, 0x8466, 0xC894, 0x8467, 0xC895, 0x8468, 0xC896, 0x8469, 0xDDE2, 0x846A, 0xC897, + 0x846B, 0xBAF9, 0x846C, 0xD4E1, 0x846D, 0xDDE7, 0x846E, 0xC898, 0x846F, 0xC899, 0x8470, 0xC89A, 0x8471, 0xB4D0, 0x8472, 0xC89B, + 0x8473, 0xDDDA, 0x8474, 0xC89C, 0x8475, 0xBFFB, 0x8476, 0xDDE3, 0x8477, 0xC89D, 0x8478, 0xDDDF, 0x8479, 0xC89E, 0x847A, 0xDDDD, + 0x847B, 0xC89F, 0x847C, 0xC8A0, 0x847D, 0xC940, 0x847E, 0xC941, 0x847F, 0xC942, 0x8480, 0xC943, 0x8481, 0xC944, 0x8482, 0xB5D9, + 0x8483, 0xC945, 0x8484, 0xC946, 0x8485, 0xC947, 0x8486, 0xC948, 0x8487, 0xDDDB, 0x8488, 0xDDDC, 0x8489, 0xDDDE, 0x848A, 0xC949, + 0x848B, 0xBDAF, 0x848C, 0xDDE4, 0x848D, 0xC94A, 0x848E, 0xDDE5, 0x848F, 0xC94B, 0x8490, 0xC94C, 0x8491, 0xC94D, 0x8492, 0xC94E, + 0x8493, 0xC94F, 0x8494, 0xC950, 0x8495, 0xC951, 0x8496, 0xC952, 0x8497, 0xDDF5, 0x8498, 0xC953, 0x8499, 0xC3C9, 0x849A, 0xC954, + 0x849B, 0xC955, 0x849C, 0xCBE2, 0x849D, 0xC956, 0x849E, 0xC957, 0x849F, 0xC958, 0x84A0, 0xC959, 0x84A1, 0xDDF2, 0x84A2, 0xC95A, + 0x84A3, 0xC95B, 0x84A4, 0xC95C, 0x84A5, 0xC95D, 0x84A6, 0xC95E, 0x84A7, 0xC95F, 0x84A8, 0xC960, 0x84A9, 0xC961, 0x84AA, 0xC962, + 0x84AB, 0xC963, 0x84AC, 0xC964, 0x84AD, 0xC965, 0x84AE, 0xC966, 0x84AF, 0xD8E1, 0x84B0, 0xC967, 0x84B1, 0xC968, 0x84B2, 0xC6D1, + 0x84B3, 0xC969, 0x84B4, 0xDDF4, 0x84B5, 0xC96A, 0x84B6, 0xC96B, 0x84B7, 0xC96C, 0x84B8, 0xD5F4, 0x84B9, 0xDDF3, 0x84BA, 0xDDF0, + 0x84BB, 0xC96D, 0x84BC, 0xC96E, 0x84BD, 0xDDEC, 0x84BE, 0xC96F, 0x84BF, 0xDDEF, 0x84C0, 0xC970, 0x84C1, 0xDDE8, 0x84C2, 0xC971, + 0x84C3, 0xC972, 0x84C4, 0xD0EE, 0x84C5, 0xC973, 0x84C6, 0xC974, 0x84C7, 0xC975, 0x84C8, 0xC976, 0x84C9, 0xC8D8, 0x84CA, 0xDDEE, + 0x84CB, 0xC977, 0x84CC, 0xC978, 0x84CD, 0xDDE9, 0x84CE, 0xC979, 0x84CF, 0xC97A, 0x84D0, 0xDDEA, 0x84D1, 0xCBF2, 0x84D2, 0xC97B, + 0x84D3, 0xDDED, 0x84D4, 0xC97C, 0x84D5, 0xC97D, 0x84D6, 0xB1CD, 0x84D7, 0xC97E, 0x84D8, 0xC980, 0x84D9, 0xC981, 0x84DA, 0xC982, + 0x84DB, 0xC983, 0x84DC, 0xC984, 0x84DD, 0xC0B6, 0x84DE, 0xC985, 0x84DF, 0xBCBB, 0x84E0, 0xDDF1, 0x84E1, 0xC986, 0x84E2, 0xC987, + 0x84E3, 0xDDF7, 0x84E4, 0xC988, 0x84E5, 0xDDF6, 0x84E6, 0xDDEB, 0x84E7, 0xC989, 0x84E8, 0xC98A, 0x84E9, 0xC98B, 0x84EA, 0xC98C, + 0x84EB, 0xC98D, 0x84EC, 0xC5EE, 0x84ED, 0xC98E, 0x84EE, 0xC98F, 0x84EF, 0xC990, 0x84F0, 0xDDFB, 0x84F1, 0xC991, 0x84F2, 0xC992, + 0x84F3, 0xC993, 0x84F4, 0xC994, 0x84F5, 0xC995, 0x84F6, 0xC996, 0x84F7, 0xC997, 0x84F8, 0xC998, 0x84F9, 0xC999, 0x84FA, 0xC99A, + 0x84FB, 0xC99B, 0x84FC, 0xDEA4, 0x84FD, 0xC99C, 0x84FE, 0xC99D, 0x84FF, 0xDEA3, 0x8500, 0xC99E, 0x8501, 0xC99F, 0x8502, 0xC9A0, + 0x8503, 0xCA40, 0x8504, 0xCA41, 0x8505, 0xCA42, 0x8506, 0xCA43, 0x8507, 0xCA44, 0x8508, 0xCA45, 0x8509, 0xCA46, 0x850A, 0xCA47, + 0x850B, 0xCA48, 0x850C, 0xDDF8, 0x850D, 0xCA49, 0x850E, 0xCA4A, 0x850F, 0xCA4B, 0x8510, 0xCA4C, 0x8511, 0xC3EF, 0x8512, 0xCA4D, + 0x8513, 0xC2FB, 0x8514, 0xCA4E, 0x8515, 0xCA4F, 0x8516, 0xCA50, 0x8517, 0xD5E1, 0x8518, 0xCA51, 0x8519, 0xCA52, 0x851A, 0xCEB5, + 0x851B, 0xCA53, 0x851C, 0xCA54, 0x851D, 0xCA55, 0x851E, 0xCA56, 0x851F, 0xDDFD, 0x8520, 0xCA57, 0x8521, 0xB2CC, 0x8522, 0xCA58, + 0x8523, 0xCA59, 0x8524, 0xCA5A, 0x8525, 0xCA5B, 0x8526, 0xCA5C, 0x8527, 0xCA5D, 0x8528, 0xCA5E, 0x8529, 0xCA5F, 0x852A, 0xCA60, + 0x852B, 0xC4E8, 0x852C, 0xCADF, 0x852D, 0xCA61, 0x852E, 0xCA62, 0x852F, 0xCA63, 0x8530, 0xCA64, 0x8531, 0xCA65, 0x8532, 0xCA66, + 0x8533, 0xCA67, 0x8534, 0xCA68, 0x8535, 0xCA69, 0x8536, 0xCA6A, 0x8537, 0xC7BE, 0x8538, 0xDDFA, 0x8539, 0xDDFC, 0x853A, 0xDDFE, + 0x853B, 0xDEA2, 0x853C, 0xB0AA, 0x853D, 0xB1CE, 0x853E, 0xCA6B, 0x853F, 0xCA6C, 0x8540, 0xCA6D, 0x8541, 0xCA6E, 0x8542, 0xCA6F, + 0x8543, 0xDEAC, 0x8544, 0xCA70, 0x8545, 0xCA71, 0x8546, 0xCA72, 0x8547, 0xCA73, 0x8548, 0xDEA6, 0x8549, 0xBDB6, 0x854A, 0xC8EF, + 0x854B, 0xCA74, 0x854C, 0xCA75, 0x854D, 0xCA76, 0x854E, 0xCA77, 0x854F, 0xCA78, 0x8550, 0xCA79, 0x8551, 0xCA7A, 0x8552, 0xCA7B, + 0x8553, 0xCA7C, 0x8554, 0xCA7D, 0x8555, 0xCA7E, 0x8556, 0xDEA1, 0x8557, 0xCA80, 0x8558, 0xCA81, 0x8559, 0xDEA5, 0x855A, 0xCA82, + 0x855B, 0xCA83, 0x855C, 0xCA84, 0x855D, 0xCA85, 0x855E, 0xDEA9, 0x855F, 0xCA86, 0x8560, 0xCA87, 0x8561, 0xCA88, 0x8562, 0xCA89, + 0x8563, 0xCA8A, 0x8564, 0xDEA8, 0x8565, 0xCA8B, 0x8566, 0xCA8C, 0x8567, 0xCA8D, 0x8568, 0xDEA7, 0x8569, 0xCA8E, 0x856A, 0xCA8F, + 0x856B, 0xCA90, 0x856C, 0xCA91, 0x856D, 0xCA92, 0x856E, 0xCA93, 0x856F, 0xCA94, 0x8570, 0xCA95, 0x8571, 0xCA96, 0x8572, 0xDEAD, + 0x8573, 0xCA97, 0x8574, 0xD4CC, 0x8575, 0xCA98, 0x8576, 0xCA99, 0x8577, 0xCA9A, 0x8578, 0xCA9B, 0x8579, 0xDEB3, 0x857A, 0xDEAA, + 0x857B, 0xDEAE, 0x857C, 0xCA9C, 0x857D, 0xCA9D, 0x857E, 0xC0D9, 0x857F, 0xCA9E, 0x8580, 0xCA9F, 0x8581, 0xCAA0, 0x8582, 0xCB40, + 0x8583, 0xCB41, 0x8584, 0xB1A1, 0x8585, 0xDEB6, 0x8586, 0xCB42, 0x8587, 0xDEB1, 0x8588, 0xCB43, 0x8589, 0xCB44, 0x858A, 0xCB45, + 0x858B, 0xCB46, 0x858C, 0xCB47, 0x858D, 0xCB48, 0x858E, 0xCB49, 0x858F, 0xDEB2, 0x8590, 0xCB4A, 0x8591, 0xCB4B, 0x8592, 0xCB4C, + 0x8593, 0xCB4D, 0x8594, 0xCB4E, 0x8595, 0xCB4F, 0x8596, 0xCB50, 0x8597, 0xCB51, 0x8598, 0xCB52, 0x8599, 0xCB53, 0x859A, 0xCB54, + 0x859B, 0xD1A6, 0x859C, 0xDEB5, 0x859D, 0xCB55, 0x859E, 0xCB56, 0x859F, 0xCB57, 0x85A0, 0xCB58, 0x85A1, 0xCB59, 0x85A2, 0xCB5A, + 0x85A3, 0xCB5B, 0x85A4, 0xDEAF, 0x85A5, 0xCB5C, 0x85A6, 0xCB5D, 0x85A7, 0xCB5E, 0x85A8, 0xDEB0, 0x85A9, 0xCB5F, 0x85AA, 0xD0BD, + 0x85AB, 0xCB60, 0x85AC, 0xCB61, 0x85AD, 0xCB62, 0x85AE, 0xDEB4, 0x85AF, 0xCAED, 0x85B0, 0xDEB9, 0x85B1, 0xCB63, 0x85B2, 0xCB64, + 0x85B3, 0xCB65, 0x85B4, 0xCB66, 0x85B5, 0xCB67, 0x85B6, 0xCB68, 0x85B7, 0xDEB8, 0x85B8, 0xCB69, 0x85B9, 0xDEB7, 0x85BA, 0xCB6A, + 0x85BB, 0xCB6B, 0x85BC, 0xCB6C, 0x85BD, 0xCB6D, 0x85BE, 0xCB6E, 0x85BF, 0xCB6F, 0x85C0, 0xCB70, 0x85C1, 0xDEBB, 0x85C2, 0xCB71, + 0x85C3, 0xCB72, 0x85C4, 0xCB73, 0x85C5, 0xCB74, 0x85C6, 0xCB75, 0x85C7, 0xCB76, 0x85C8, 0xCB77, 0x85C9, 0xBDE5, 0x85CA, 0xCB78, + 0x85CB, 0xCB79, 0x85CC, 0xCB7A, 0x85CD, 0xCB7B, 0x85CE, 0xCB7C, 0x85CF, 0xB2D8, 0x85D0, 0xC3EA, 0x85D1, 0xCB7D, 0x85D2, 0xCB7E, + 0x85D3, 0xDEBA, 0x85D4, 0xCB80, 0x85D5, 0xC5BA, 0x85D6, 0xCB81, 0x85D7, 0xCB82, 0x85D8, 0xCB83, 0x85D9, 0xCB84, 0x85DA, 0xCB85, + 0x85DB, 0xCB86, 0x85DC, 0xDEBC, 0x85DD, 0xCB87, 0x85DE, 0xCB88, 0x85DF, 0xCB89, 0x85E0, 0xCB8A, 0x85E1, 0xCB8B, 0x85E2, 0xCB8C, + 0x85E3, 0xCB8D, 0x85E4, 0xCCD9, 0x85E5, 0xCB8E, 0x85E6, 0xCB8F, 0x85E7, 0xCB90, 0x85E8, 0xCB91, 0x85E9, 0xB7AA, 0x85EA, 0xCB92, + 0x85EB, 0xCB93, 0x85EC, 0xCB94, 0x85ED, 0xCB95, 0x85EE, 0xCB96, 0x85EF, 0xCB97, 0x85F0, 0xCB98, 0x85F1, 0xCB99, 0x85F2, 0xCB9A, + 0x85F3, 0xCB9B, 0x85F4, 0xCB9C, 0x85F5, 0xCB9D, 0x85F6, 0xCB9E, 0x85F7, 0xCB9F, 0x85F8, 0xCBA0, 0x85F9, 0xCC40, 0x85FA, 0xCC41, + 0x85FB, 0xD4E5, 0x85FC, 0xCC42, 0x85FD, 0xCC43, 0x85FE, 0xCC44, 0x85FF, 0xDEBD, 0x8600, 0xCC45, 0x8601, 0xCC46, 0x8602, 0xCC47, + 0x8603, 0xCC48, 0x8604, 0xCC49, 0x8605, 0xDEBF, 0x8606, 0xCC4A, 0x8607, 0xCC4B, 0x8608, 0xCC4C, 0x8609, 0xCC4D, 0x860A, 0xCC4E, + 0x860B, 0xCC4F, 0x860C, 0xCC50, 0x860D, 0xCC51, 0x860E, 0xCC52, 0x860F, 0xCC53, 0x8610, 0xCC54, 0x8611, 0xC4A2, 0x8612, 0xCC55, + 0x8613, 0xCC56, 0x8614, 0xCC57, 0x8615, 0xCC58, 0x8616, 0xDEC1, 0x8617, 0xCC59, 0x8618, 0xCC5A, 0x8619, 0xCC5B, 0x861A, 0xCC5C, + 0x861B, 0xCC5D, 0x861C, 0xCC5E, 0x861D, 0xCC5F, 0x861E, 0xCC60, 0x861F, 0xCC61, 0x8620, 0xCC62, 0x8621, 0xCC63, 0x8622, 0xCC64, + 0x8623, 0xCC65, 0x8624, 0xCC66, 0x8625, 0xCC67, 0x8626, 0xCC68, 0x8627, 0xDEBE, 0x8628, 0xCC69, 0x8629, 0xDEC0, 0x862A, 0xCC6A, + 0x862B, 0xCC6B, 0x862C, 0xCC6C, 0x862D, 0xCC6D, 0x862E, 0xCC6E, 0x862F, 0xCC6F, 0x8630, 0xCC70, 0x8631, 0xCC71, 0x8632, 0xCC72, + 0x8633, 0xCC73, 0x8634, 0xCC74, 0x8635, 0xCC75, 0x8636, 0xCC76, 0x8637, 0xCC77, 0x8638, 0xD5BA, 0x8639, 0xCC78, 0x863A, 0xCC79, + 0x863B, 0xCC7A, 0x863C, 0xDEC2, 0x863D, 0xCC7B, 0x863E, 0xCC7C, 0x863F, 0xCC7D, 0x8640, 0xCC7E, 0x8641, 0xCC80, 0x8642, 0xCC81, + 0x8643, 0xCC82, 0x8644, 0xCC83, 0x8645, 0xCC84, 0x8646, 0xCC85, 0x8647, 0xCC86, 0x8648, 0xCC87, 0x8649, 0xCC88, 0x864A, 0xCC89, + 0x864B, 0xCC8A, 0x864C, 0xCC8B, 0x864D, 0xF2AE, 0x864E, 0xBBA2, 0x864F, 0xC2B2, 0x8650, 0xC5B0, 0x8651, 0xC2C7, 0x8652, 0xCC8C, + 0x8653, 0xCC8D, 0x8654, 0xF2AF, 0x8655, 0xCC8E, 0x8656, 0xCC8F, 0x8657, 0xCC90, 0x8658, 0xCC91, 0x8659, 0xCC92, 0x865A, 0xD0E9, + 0x865B, 0xCC93, 0x865C, 0xCC94, 0x865D, 0xCC95, 0x865E, 0xD3DD, 0x865F, 0xCC96, 0x8660, 0xCC97, 0x8661, 0xCC98, 0x8662, 0xEBBD, + 0x8663, 0xCC99, 0x8664, 0xCC9A, 0x8665, 0xCC9B, 0x8666, 0xCC9C, 0x8667, 0xCC9D, 0x8668, 0xCC9E, 0x8669, 0xCC9F, 0x866A, 0xCCA0, + 0x866B, 0xB3E6, 0x866C, 0xF2B0, 0x866D, 0xCD40, 0x866E, 0xF2B1, 0x866F, 0xCD41, 0x8670, 0xCD42, 0x8671, 0xCAAD, 0x8672, 0xCD43, + 0x8673, 0xCD44, 0x8674, 0xCD45, 0x8675, 0xCD46, 0x8676, 0xCD47, 0x8677, 0xCD48, 0x8678, 0xCD49, 0x8679, 0xBAE7, 0x867A, 0xF2B3, + 0x867B, 0xF2B5, 0x867C, 0xF2B4, 0x867D, 0xCBE4, 0x867E, 0xCFBA, 0x867F, 0xF2B2, 0x8680, 0xCAB4, 0x8681, 0xD2CF, 0x8682, 0xC2EC, + 0x8683, 0xCD4A, 0x8684, 0xCD4B, 0x8685, 0xCD4C, 0x8686, 0xCD4D, 0x8687, 0xCD4E, 0x8688, 0xCD4F, 0x8689, 0xCD50, 0x868A, 0xCEC3, + 0x868B, 0xF2B8, 0x868C, 0xB0F6, 0x868D, 0xF2B7, 0x868E, 0xCD51, 0x868F, 0xCD52, 0x8690, 0xCD53, 0x8691, 0xCD54, 0x8692, 0xCD55, + 0x8693, 0xF2BE, 0x8694, 0xCD56, 0x8695, 0xB2CF, 0x8696, 0xCD57, 0x8697, 0xCD58, 0x8698, 0xCD59, 0x8699, 0xCD5A, 0x869A, 0xCD5B, + 0x869B, 0xCD5C, 0x869C, 0xD1C1, 0x869D, 0xF2BA, 0x869E, 0xCD5D, 0x869F, 0xCD5E, 0x86A0, 0xCD5F, 0x86A1, 0xCD60, 0x86A2, 0xCD61, + 0x86A3, 0xF2BC, 0x86A4, 0xD4E9, 0x86A5, 0xCD62, 0x86A6, 0xCD63, 0x86A7, 0xF2BB, 0x86A8, 0xF2B6, 0x86A9, 0xF2BF, 0x86AA, 0xF2BD, + 0x86AB, 0xCD64, 0x86AC, 0xF2B9, 0x86AD, 0xCD65, 0x86AE, 0xCD66, 0x86AF, 0xF2C7, 0x86B0, 0xF2C4, 0x86B1, 0xF2C6, 0x86B2, 0xCD67, + 0x86B3, 0xCD68, 0x86B4, 0xF2CA, 0x86B5, 0xF2C2, 0x86B6, 0xF2C0, 0x86B7, 0xCD69, 0x86B8, 0xCD6A, 0x86B9, 0xCD6B, 0x86BA, 0xF2C5, + 0x86BB, 0xCD6C, 0x86BC, 0xCD6D, 0x86BD, 0xCD6E, 0x86BE, 0xCD6F, 0x86BF, 0xCD70, 0x86C0, 0xD6FB, 0x86C1, 0xCD71, 0x86C2, 0xCD72, + 0x86C3, 0xCD73, 0x86C4, 0xF2C1, 0x86C5, 0xCD74, 0x86C6, 0xC7F9, 0x86C7, 0xC9DF, 0x86C8, 0xCD75, 0x86C9, 0xF2C8, 0x86CA, 0xB9C6, + 0x86CB, 0xB5B0, 0x86CC, 0xCD76, 0x86CD, 0xCD77, 0x86CE, 0xF2C3, 0x86CF, 0xF2C9, 0x86D0, 0xF2D0, 0x86D1, 0xF2D6, 0x86D2, 0xCD78, + 0x86D3, 0xCD79, 0x86D4, 0xBBD7, 0x86D5, 0xCD7A, 0x86D6, 0xCD7B, 0x86D7, 0xCD7C, 0x86D8, 0xF2D5, 0x86D9, 0xCDDC, 0x86DA, 0xCD7D, + 0x86DB, 0xD6EB, 0x86DC, 0xCD7E, 0x86DD, 0xCD80, 0x86DE, 0xF2D2, 0x86DF, 0xF2D4, 0x86E0, 0xCD81, 0x86E1, 0xCD82, 0x86E2, 0xCD83, + 0x86E3, 0xCD84, 0x86E4, 0xB8F2, 0x86E5, 0xCD85, 0x86E6, 0xCD86, 0x86E7, 0xCD87, 0x86E8, 0xCD88, 0x86E9, 0xF2CB, 0x86EA, 0xCD89, + 0x86EB, 0xCD8A, 0x86EC, 0xCD8B, 0x86ED, 0xF2CE, 0x86EE, 0xC2F9, 0x86EF, 0xCD8C, 0x86F0, 0xD5DD, 0x86F1, 0xF2CC, 0x86F2, 0xF2CD, + 0x86F3, 0xF2CF, 0x86F4, 0xF2D3, 0x86F5, 0xCD8D, 0x86F6, 0xCD8E, 0x86F7, 0xCD8F, 0x86F8, 0xF2D9, 0x86F9, 0xD3BC, 0x86FA, 0xCD90, + 0x86FB, 0xCD91, 0x86FC, 0xCD92, 0x86FD, 0xCD93, 0x86FE, 0xB6EA, 0x86FF, 0xCD94, 0x8700, 0xCAF1, 0x8701, 0xCD95, 0x8702, 0xB7E4, + 0x8703, 0xF2D7, 0x8704, 0xCD96, 0x8705, 0xCD97, 0x8706, 0xCD98, 0x8707, 0xF2D8, 0x8708, 0xF2DA, 0x8709, 0xF2DD, 0x870A, 0xF2DB, + 0x870B, 0xCD99, 0x870C, 0xCD9A, 0x870D, 0xF2DC, 0x870E, 0xCD9B, 0x870F, 0xCD9C, 0x8710, 0xCD9D, 0x8711, 0xCD9E, 0x8712, 0xD1D1, + 0x8713, 0xF2D1, 0x8714, 0xCD9F, 0x8715, 0xCDC9, 0x8716, 0xCDA0, 0x8717, 0xCECF, 0x8718, 0xD6A9, 0x8719, 0xCE40, 0x871A, 0xF2E3, + 0x871B, 0xCE41, 0x871C, 0xC3DB, 0x871D, 0xCE42, 0x871E, 0xF2E0, 0x871F, 0xCE43, 0x8720, 0xCE44, 0x8721, 0xC0AF, 0x8722, 0xF2EC, + 0x8723, 0xF2DE, 0x8724, 0xCE45, 0x8725, 0xF2E1, 0x8726, 0xCE46, 0x8727, 0xCE47, 0x8728, 0xCE48, 0x8729, 0xF2E8, 0x872A, 0xCE49, + 0x872B, 0xCE4A, 0x872C, 0xCE4B, 0x872D, 0xCE4C, 0x872E, 0xF2E2, 0x872F, 0xCE4D, 0x8730, 0xCE4E, 0x8731, 0xF2E7, 0x8732, 0xCE4F, + 0x8733, 0xCE50, 0x8734, 0xF2E6, 0x8735, 0xCE51, 0x8736, 0xCE52, 0x8737, 0xF2E9, 0x8738, 0xCE53, 0x8739, 0xCE54, 0x873A, 0xCE55, + 0x873B, 0xF2DF, 0x873C, 0xCE56, 0x873D, 0xCE57, 0x873E, 0xF2E4, 0x873F, 0xF2EA, 0x8740, 0xCE58, 0x8741, 0xCE59, 0x8742, 0xCE5A, + 0x8743, 0xCE5B, 0x8744, 0xCE5C, 0x8745, 0xCE5D, 0x8746, 0xCE5E, 0x8747, 0xD3AC, 0x8748, 0xF2E5, 0x8749, 0xB2F5, 0x874A, 0xCE5F, + 0x874B, 0xCE60, 0x874C, 0xF2F2, 0x874D, 0xCE61, 0x874E, 0xD0AB, 0x874F, 0xCE62, 0x8750, 0xCE63, 0x8751, 0xCE64, 0x8752, 0xCE65, + 0x8753, 0xF2F5, 0x8754, 0xCE66, 0x8755, 0xCE67, 0x8756, 0xCE68, 0x8757, 0xBBC8, 0x8758, 0xCE69, 0x8759, 0xF2F9, 0x875A, 0xCE6A, + 0x875B, 0xCE6B, 0x875C, 0xCE6C, 0x875D, 0xCE6D, 0x875E, 0xCE6E, 0x875F, 0xCE6F, 0x8760, 0xF2F0, 0x8761, 0xCE70, 0x8762, 0xCE71, + 0x8763, 0xF2F6, 0x8764, 0xF2F8, 0x8765, 0xF2FA, 0x8766, 0xCE72, 0x8767, 0xCE73, 0x8768, 0xCE74, 0x8769, 0xCE75, 0x876A, 0xCE76, + 0x876B, 0xCE77, 0x876C, 0xCE78, 0x876D, 0xCE79, 0x876E, 0xF2F3, 0x876F, 0xCE7A, 0x8770, 0xF2F1, 0x8771, 0xCE7B, 0x8772, 0xCE7C, + 0x8773, 0xCE7D, 0x8774, 0xBAFB, 0x8775, 0xCE7E, 0x8776, 0xB5FB, 0x8777, 0xCE80, 0x8778, 0xCE81, 0x8779, 0xCE82, 0x877A, 0xCE83, + 0x877B, 0xF2EF, 0x877C, 0xF2F7, 0x877D, 0xF2ED, 0x877E, 0xF2EE, 0x877F, 0xCE84, 0x8780, 0xCE85, 0x8781, 0xCE86, 0x8782, 0xF2EB, + 0x8783, 0xF3A6, 0x8784, 0xCE87, 0x8785, 0xF3A3, 0x8786, 0xCE88, 0x8787, 0xCE89, 0x8788, 0xF3A2, 0x8789, 0xCE8A, 0x878A, 0xCE8B, + 0x878B, 0xF2F4, 0x878C, 0xCE8C, 0x878D, 0xC8DA, 0x878E, 0xCE8D, 0x878F, 0xCE8E, 0x8790, 0xCE8F, 0x8791, 0xCE90, 0x8792, 0xCE91, + 0x8793, 0xF2FB, 0x8794, 0xCE92, 0x8795, 0xCE93, 0x8796, 0xCE94, 0x8797, 0xF3A5, 0x8798, 0xCE95, 0x8799, 0xCE96, 0x879A, 0xCE97, + 0x879B, 0xCE98, 0x879C, 0xCE99, 0x879D, 0xCE9A, 0x879E, 0xCE9B, 0x879F, 0xC3F8, 0x87A0, 0xCE9C, 0x87A1, 0xCE9D, 0x87A2, 0xCE9E, + 0x87A3, 0xCE9F, 0x87A4, 0xCEA0, 0x87A5, 0xCF40, 0x87A6, 0xCF41, 0x87A7, 0xCF42, 0x87A8, 0xF2FD, 0x87A9, 0xCF43, 0x87AA, 0xCF44, + 0x87AB, 0xF3A7, 0x87AC, 0xF3A9, 0x87AD, 0xF3A4, 0x87AE, 0xCF45, 0x87AF, 0xF2FC, 0x87B0, 0xCF46, 0x87B1, 0xCF47, 0x87B2, 0xCF48, + 0x87B3, 0xF3AB, 0x87B4, 0xCF49, 0x87B5, 0xF3AA, 0x87B6, 0xCF4A, 0x87B7, 0xCF4B, 0x87B8, 0xCF4C, 0x87B9, 0xCF4D, 0x87BA, 0xC2DD, + 0x87BB, 0xCF4E, 0x87BC, 0xCF4F, 0x87BD, 0xF3AE, 0x87BE, 0xCF50, 0x87BF, 0xCF51, 0x87C0, 0xF3B0, 0x87C1, 0xCF52, 0x87C2, 0xCF53, + 0x87C3, 0xCF54, 0x87C4, 0xCF55, 0x87C5, 0xCF56, 0x87C6, 0xF3A1, 0x87C7, 0xCF57, 0x87C8, 0xCF58, 0x87C9, 0xCF59, 0x87CA, 0xF3B1, + 0x87CB, 0xF3AC, 0x87CC, 0xCF5A, 0x87CD, 0xCF5B, 0x87CE, 0xCF5C, 0x87CF, 0xCF5D, 0x87D0, 0xCF5E, 0x87D1, 0xF3AF, 0x87D2, 0xF2FE, + 0x87D3, 0xF3AD, 0x87D4, 0xCF5F, 0x87D5, 0xCF60, 0x87D6, 0xCF61, 0x87D7, 0xCF62, 0x87D8, 0xCF63, 0x87D9, 0xCF64, 0x87DA, 0xCF65, + 0x87DB, 0xF3B2, 0x87DC, 0xCF66, 0x87DD, 0xCF67, 0x87DE, 0xCF68, 0x87DF, 0xCF69, 0x87E0, 0xF3B4, 0x87E1, 0xCF6A, 0x87E2, 0xCF6B, + 0x87E3, 0xCF6C, 0x87E4, 0xCF6D, 0x87E5, 0xF3A8, 0x87E6, 0xCF6E, 0x87E7, 0xCF6F, 0x87E8, 0xCF70, 0x87E9, 0xCF71, 0x87EA, 0xF3B3, + 0x87EB, 0xCF72, 0x87EC, 0xCF73, 0x87ED, 0xCF74, 0x87EE, 0xF3B5, 0x87EF, 0xCF75, 0x87F0, 0xCF76, 0x87F1, 0xCF77, 0x87F2, 0xCF78, + 0x87F3, 0xCF79, 0x87F4, 0xCF7A, 0x87F5, 0xCF7B, 0x87F6, 0xCF7C, 0x87F7, 0xCF7D, 0x87F8, 0xCF7E, 0x87F9, 0xD0B7, 0x87FA, 0xCF80, + 0x87FB, 0xCF81, 0x87FC, 0xCF82, 0x87FD, 0xCF83, 0x87FE, 0xF3B8, 0x87FF, 0xCF84, 0x8800, 0xCF85, 0x8801, 0xCF86, 0x8802, 0xCF87, + 0x8803, 0xD9F9, 0x8804, 0xCF88, 0x8805, 0xCF89, 0x8806, 0xCF8A, 0x8807, 0xCF8B, 0x8808, 0xCF8C, 0x8809, 0xCF8D, 0x880A, 0xF3B9, + 0x880B, 0xCF8E, 0x880C, 0xCF8F, 0x880D, 0xCF90, 0x880E, 0xCF91, 0x880F, 0xCF92, 0x8810, 0xCF93, 0x8811, 0xCF94, 0x8812, 0xCF95, + 0x8813, 0xF3B7, 0x8814, 0xCF96, 0x8815, 0xC8E4, 0x8816, 0xF3B6, 0x8817, 0xCF97, 0x8818, 0xCF98, 0x8819, 0xCF99, 0x881A, 0xCF9A, + 0x881B, 0xF3BA, 0x881C, 0xCF9B, 0x881D, 0xCF9C, 0x881E, 0xCF9D, 0x881F, 0xCF9E, 0x8820, 0xCF9F, 0x8821, 0xF3BB, 0x8822, 0xB4C0, + 0x8823, 0xCFA0, 0x8824, 0xD040, 0x8825, 0xD041, 0x8826, 0xD042, 0x8827, 0xD043, 0x8828, 0xD044, 0x8829, 0xD045, 0x882A, 0xD046, + 0x882B, 0xD047, 0x882C, 0xD048, 0x882D, 0xD049, 0x882E, 0xD04A, 0x882F, 0xD04B, 0x8830, 0xD04C, 0x8831, 0xD04D, 0x8832, 0xEEC3, + 0x8833, 0xD04E, 0x8834, 0xD04F, 0x8835, 0xD050, 0x8836, 0xD051, 0x8837, 0xD052, 0x8838, 0xD053, 0x8839, 0xF3BC, 0x883A, 0xD054, + 0x883B, 0xD055, 0x883C, 0xF3BD, 0x883D, 0xD056, 0x883E, 0xD057, 0x883F, 0xD058, 0x8840, 0xD1AA, 0x8841, 0xD059, 0x8842, 0xD05A, + 0x8843, 0xD05B, 0x8844, 0xF4AC, 0x8845, 0xD0C6, 0x8846, 0xD05C, 0x8847, 0xD05D, 0x8848, 0xD05E, 0x8849, 0xD05F, 0x884A, 0xD060, + 0x884B, 0xD061, 0x884C, 0xD0D0, 0x884D, 0xD1DC, 0x884E, 0xD062, 0x884F, 0xD063, 0x8850, 0xD064, 0x8851, 0xD065, 0x8852, 0xD066, + 0x8853, 0xD067, 0x8854, 0xCFCE, 0x8855, 0xD068, 0x8856, 0xD069, 0x8857, 0xBDD6, 0x8858, 0xD06A, 0x8859, 0xD1C3, 0x885A, 0xD06B, + 0x885B, 0xD06C, 0x885C, 0xD06D, 0x885D, 0xD06E, 0x885E, 0xD06F, 0x885F, 0xD070, 0x8860, 0xD071, 0x8861, 0xBAE2, 0x8862, 0xE1E9, + 0x8863, 0xD2C2, 0x8864, 0xF1C2, 0x8865, 0xB2B9, 0x8866, 0xD072, 0x8867, 0xD073, 0x8868, 0xB1ED, 0x8869, 0xF1C3, 0x886A, 0xD074, + 0x886B, 0xC9C0, 0x886C, 0xB3C4, 0x886D, 0xD075, 0x886E, 0xD9F2, 0x886F, 0xD076, 0x8870, 0xCBA5, 0x8871, 0xD077, 0x8872, 0xF1C4, + 0x8873, 0xD078, 0x8874, 0xD079, 0x8875, 0xD07A, 0x8876, 0xD07B, 0x8877, 0xD6D4, 0x8878, 0xD07C, 0x8879, 0xD07D, 0x887A, 0xD07E, + 0x887B, 0xD080, 0x887C, 0xD081, 0x887D, 0xF1C5, 0x887E, 0xF4C0, 0x887F, 0xF1C6, 0x8880, 0xD082, 0x8881, 0xD4AC, 0x8882, 0xF1C7, + 0x8883, 0xD083, 0x8884, 0xB0C0, 0x8885, 0xF4C1, 0x8886, 0xD084, 0x8887, 0xD085, 0x8888, 0xF4C2, 0x8889, 0xD086, 0x888A, 0xD087, + 0x888B, 0xB4FC, 0x888C, 0xD088, 0x888D, 0xC5DB, 0x888E, 0xD089, 0x888F, 0xD08A, 0x8890, 0xD08B, 0x8891, 0xD08C, 0x8892, 0xCCBB, + 0x8893, 0xD08D, 0x8894, 0xD08E, 0x8895, 0xD08F, 0x8896, 0xD0E4, 0x8897, 0xD090, 0x8898, 0xD091, 0x8899, 0xD092, 0x889A, 0xD093, + 0x889B, 0xD094, 0x889C, 0xCDE0, 0x889D, 0xD095, 0x889E, 0xD096, 0x889F, 0xD097, 0x88A0, 0xD098, 0x88A1, 0xD099, 0x88A2, 0xF1C8, + 0x88A3, 0xD09A, 0x88A4, 0xD9F3, 0x88A5, 0xD09B, 0x88A6, 0xD09C, 0x88A7, 0xD09D, 0x88A8, 0xD09E, 0x88A9, 0xD09F, 0x88AA, 0xD0A0, + 0x88AB, 0xB1BB, 0x88AC, 0xD140, 0x88AD, 0xCFAE, 0x88AE, 0xD141, 0x88AF, 0xD142, 0x88B0, 0xD143, 0x88B1, 0xB8A4, 0x88B2, 0xD144, + 0x88B3, 0xD145, 0x88B4, 0xD146, 0x88B5, 0xD147, 0x88B6, 0xD148, 0x88B7, 0xF1CA, 0x88B8, 0xD149, 0x88B9, 0xD14A, 0x88BA, 0xD14B, + 0x88BB, 0xD14C, 0x88BC, 0xF1CB, 0x88BD, 0xD14D, 0x88BE, 0xD14E, 0x88BF, 0xD14F, 0x88C0, 0xD150, 0x88C1, 0xB2C3, 0x88C2, 0xC1D1, + 0x88C3, 0xD151, 0x88C4, 0xD152, 0x88C5, 0xD7B0, 0x88C6, 0xF1C9, 0x88C7, 0xD153, 0x88C8, 0xD154, 0x88C9, 0xF1CC, 0x88CA, 0xD155, + 0x88CB, 0xD156, 0x88CC, 0xD157, 0x88CD, 0xD158, 0x88CE, 0xF1CE, 0x88CF, 0xD159, 0x88D0, 0xD15A, 0x88D1, 0xD15B, 0x88D2, 0xD9F6, + 0x88D3, 0xD15C, 0x88D4, 0xD2E1, 0x88D5, 0xD4A3, 0x88D6, 0xD15D, 0x88D7, 0xD15E, 0x88D8, 0xF4C3, 0x88D9, 0xC8B9, 0x88DA, 0xD15F, + 0x88DB, 0xD160, 0x88DC, 0xD161, 0x88DD, 0xD162, 0x88DE, 0xD163, 0x88DF, 0xF4C4, 0x88E0, 0xD164, 0x88E1, 0xD165, 0x88E2, 0xF1CD, + 0x88E3, 0xF1CF, 0x88E4, 0xBFE3, 0x88E5, 0xF1D0, 0x88E6, 0xD166, 0x88E7, 0xD167, 0x88E8, 0xF1D4, 0x88E9, 0xD168, 0x88EA, 0xD169, + 0x88EB, 0xD16A, 0x88EC, 0xD16B, 0x88ED, 0xD16C, 0x88EE, 0xD16D, 0x88EF, 0xD16E, 0x88F0, 0xF1D6, 0x88F1, 0xF1D1, 0x88F2, 0xD16F, + 0x88F3, 0xC9D1, 0x88F4, 0xC5E1, 0x88F5, 0xD170, 0x88F6, 0xD171, 0x88F7, 0xD172, 0x88F8, 0xC2E3, 0x88F9, 0xB9FC, 0x88FA, 0xD173, + 0x88FB, 0xD174, 0x88FC, 0xF1D3, 0x88FD, 0xD175, 0x88FE, 0xF1D5, 0x88FF, 0xD176, 0x8900, 0xD177, 0x8901, 0xD178, 0x8902, 0xB9D3, + 0x8903, 0xD179, 0x8904, 0xD17A, 0x8905, 0xD17B, 0x8906, 0xD17C, 0x8907, 0xD17D, 0x8908, 0xD17E, 0x8909, 0xD180, 0x890A, 0xF1DB, + 0x890B, 0xD181, 0x890C, 0xD182, 0x890D, 0xD183, 0x890E, 0xD184, 0x890F, 0xD185, 0x8910, 0xBAD6, 0x8911, 0xD186, 0x8912, 0xB0FD, + 0x8913, 0xF1D9, 0x8914, 0xD187, 0x8915, 0xD188, 0x8916, 0xD189, 0x8917, 0xD18A, 0x8918, 0xD18B, 0x8919, 0xF1D8, 0x891A, 0xF1D2, + 0x891B, 0xF1DA, 0x891C, 0xD18C, 0x891D, 0xD18D, 0x891E, 0xD18E, 0x891F, 0xD18F, 0x8920, 0xD190, 0x8921, 0xF1D7, 0x8922, 0xD191, + 0x8923, 0xD192, 0x8924, 0xD193, 0x8925, 0xC8EC, 0x8926, 0xD194, 0x8927, 0xD195, 0x8928, 0xD196, 0x8929, 0xD197, 0x892A, 0xCDCA, + 0x892B, 0xF1DD, 0x892C, 0xD198, 0x892D, 0xD199, 0x892E, 0xD19A, 0x892F, 0xD19B, 0x8930, 0xE5BD, 0x8931, 0xD19C, 0x8932, 0xD19D, + 0x8933, 0xD19E, 0x8934, 0xF1DC, 0x8935, 0xD19F, 0x8936, 0xF1DE, 0x8937, 0xD1A0, 0x8938, 0xD240, 0x8939, 0xD241, 0x893A, 0xD242, + 0x893B, 0xD243, 0x893C, 0xD244, 0x893D, 0xD245, 0x893E, 0xD246, 0x893F, 0xD247, 0x8940, 0xD248, 0x8941, 0xF1DF, 0x8942, 0xD249, + 0x8943, 0xD24A, 0x8944, 0xCFE5, 0x8945, 0xD24B, 0x8946, 0xD24C, 0x8947, 0xD24D, 0x8948, 0xD24E, 0x8949, 0xD24F, 0x894A, 0xD250, + 0x894B, 0xD251, 0x894C, 0xD252, 0x894D, 0xD253, 0x894E, 0xD254, 0x894F, 0xD255, 0x8950, 0xD256, 0x8951, 0xD257, 0x8952, 0xD258, + 0x8953, 0xD259, 0x8954, 0xD25A, 0x8955, 0xD25B, 0x8956, 0xD25C, 0x8957, 0xD25D, 0x8958, 0xD25E, 0x8959, 0xD25F, 0x895A, 0xD260, + 0x895B, 0xD261, 0x895C, 0xD262, 0x895D, 0xD263, 0x895E, 0xF4C5, 0x895F, 0xBDF3, 0x8960, 0xD264, 0x8961, 0xD265, 0x8962, 0xD266, + 0x8963, 0xD267, 0x8964, 0xD268, 0x8965, 0xD269, 0x8966, 0xF1E0, 0x8967, 0xD26A, 0x8968, 0xD26B, 0x8969, 0xD26C, 0x896A, 0xD26D, + 0x896B, 0xD26E, 0x896C, 0xD26F, 0x896D, 0xD270, 0x896E, 0xD271, 0x896F, 0xD272, 0x8970, 0xD273, 0x8971, 0xD274, 0x8972, 0xD275, + 0x8973, 0xD276, 0x8974, 0xD277, 0x8975, 0xD278, 0x8976, 0xD279, 0x8977, 0xD27A, 0x8978, 0xD27B, 0x8979, 0xD27C, 0x897A, 0xD27D, + 0x897B, 0xF1E1, 0x897C, 0xD27E, 0x897D, 0xD280, 0x897E, 0xD281, 0x897F, 0xCEF7, 0x8980, 0xD282, 0x8981, 0xD2AA, 0x8982, 0xD283, + 0x8983, 0xF1FB, 0x8984, 0xD284, 0x8985, 0xD285, 0x8986, 0xB8B2, 0x8987, 0xD286, 0x8988, 0xD287, 0x8989, 0xD288, 0x898A, 0xD289, + 0x898B, 0xD28A, 0x898C, 0xD28B, 0x898D, 0xD28C, 0x898E, 0xD28D, 0x898F, 0xD28E, 0x8990, 0xD28F, 0x8991, 0xD290, 0x8992, 0xD291, + 0x8993, 0xD292, 0x8994, 0xD293, 0x8995, 0xD294, 0x8996, 0xD295, 0x8997, 0xD296, 0x8998, 0xD297, 0x8999, 0xD298, 0x899A, 0xD299, + 0x899B, 0xD29A, 0x899C, 0xD29B, 0x899D, 0xD29C, 0x899E, 0xD29D, 0x899F, 0xD29E, 0x89A0, 0xD29F, 0x89A1, 0xD2A0, 0x89A2, 0xD340, + 0x89A3, 0xD341, 0x89A4, 0xD342, 0x89A5, 0xD343, 0x89A6, 0xD344, 0x89A7, 0xD345, 0x89A8, 0xD346, 0x89A9, 0xD347, 0x89AA, 0xD348, + 0x89AB, 0xD349, 0x89AC, 0xD34A, 0x89AD, 0xD34B, 0x89AE, 0xD34C, 0x89AF, 0xD34D, 0x89B0, 0xD34E, 0x89B1, 0xD34F, 0x89B2, 0xD350, + 0x89B3, 0xD351, 0x89B4, 0xD352, 0x89B5, 0xD353, 0x89B6, 0xD354, 0x89B7, 0xD355, 0x89B8, 0xD356, 0x89B9, 0xD357, 0x89BA, 0xD358, + 0x89BB, 0xD359, 0x89BC, 0xD35A, 0x89BD, 0xD35B, 0x89BE, 0xD35C, 0x89BF, 0xD35D, 0x89C0, 0xD35E, 0x89C1, 0xBCFB, 0x89C2, 0xB9DB, + 0x89C3, 0xD35F, 0x89C4, 0xB9E6, 0x89C5, 0xC3D9, 0x89C6, 0xCAD3, 0x89C7, 0xEAE8, 0x89C8, 0xC0C0, 0x89C9, 0xBEF5, 0x89CA, 0xEAE9, + 0x89CB, 0xEAEA, 0x89CC, 0xEAEB, 0x89CD, 0xD360, 0x89CE, 0xEAEC, 0x89CF, 0xEAED, 0x89D0, 0xEAEE, 0x89D1, 0xEAEF, 0x89D2, 0xBDC7, + 0x89D3, 0xD361, 0x89D4, 0xD362, 0x89D5, 0xD363, 0x89D6, 0xF5FB, 0x89D7, 0xD364, 0x89D8, 0xD365, 0x89D9, 0xD366, 0x89DA, 0xF5FD, + 0x89DB, 0xD367, 0x89DC, 0xF5FE, 0x89DD, 0xD368, 0x89DE, 0xF5FC, 0x89DF, 0xD369, 0x89E0, 0xD36A, 0x89E1, 0xD36B, 0x89E2, 0xD36C, + 0x89E3, 0xBDE2, 0x89E4, 0xD36D, 0x89E5, 0xF6A1, 0x89E6, 0xB4A5, 0x89E7, 0xD36E, 0x89E8, 0xD36F, 0x89E9, 0xD370, 0x89EA, 0xD371, + 0x89EB, 0xF6A2, 0x89EC, 0xD372, 0x89ED, 0xD373, 0x89EE, 0xD374, 0x89EF, 0xF6A3, 0x89F0, 0xD375, 0x89F1, 0xD376, 0x89F2, 0xD377, + 0x89F3, 0xECB2, 0x89F4, 0xD378, 0x89F5, 0xD379, 0x89F6, 0xD37A, 0x89F7, 0xD37B, 0x89F8, 0xD37C, 0x89F9, 0xD37D, 0x89FA, 0xD37E, + 0x89FB, 0xD380, 0x89FC, 0xD381, 0x89FD, 0xD382, 0x89FE, 0xD383, 0x89FF, 0xD384, 0x8A00, 0xD1D4, 0x8A01, 0xD385, 0x8A02, 0xD386, + 0x8A03, 0xD387, 0x8A04, 0xD388, 0x8A05, 0xD389, 0x8A06, 0xD38A, 0x8A07, 0xD9EA, 0x8A08, 0xD38B, 0x8A09, 0xD38C, 0x8A0A, 0xD38D, + 0x8A0B, 0xD38E, 0x8A0C, 0xD38F, 0x8A0D, 0xD390, 0x8A0E, 0xD391, 0x8A0F, 0xD392, 0x8A10, 0xD393, 0x8A11, 0xD394, 0x8A12, 0xD395, + 0x8A13, 0xD396, 0x8A14, 0xD397, 0x8A15, 0xD398, 0x8A16, 0xD399, 0x8A17, 0xD39A, 0x8A18, 0xD39B, 0x8A19, 0xD39C, 0x8A1A, 0xD39D, + 0x8A1B, 0xD39E, 0x8A1C, 0xD39F, 0x8A1D, 0xD3A0, 0x8A1E, 0xD440, 0x8A1F, 0xD441, 0x8A20, 0xD442, 0x8A21, 0xD443, 0x8A22, 0xD444, + 0x8A23, 0xD445, 0x8A24, 0xD446, 0x8A25, 0xD447, 0x8A26, 0xD448, 0x8A27, 0xD449, 0x8A28, 0xD44A, 0x8A29, 0xD44B, 0x8A2A, 0xD44C, + 0x8A2B, 0xD44D, 0x8A2C, 0xD44E, 0x8A2D, 0xD44F, 0x8A2E, 0xD450, 0x8A2F, 0xD451, 0x8A30, 0xD452, 0x8A31, 0xD453, 0x8A32, 0xD454, + 0x8A33, 0xD455, 0x8A34, 0xD456, 0x8A35, 0xD457, 0x8A36, 0xD458, 0x8A37, 0xD459, 0x8A38, 0xD45A, 0x8A39, 0xD45B, 0x8A3A, 0xD45C, + 0x8A3B, 0xD45D, 0x8A3C, 0xD45E, 0x8A3D, 0xD45F, 0x8A3E, 0xF6A4, 0x8A3F, 0xD460, 0x8A40, 0xD461, 0x8A41, 0xD462, 0x8A42, 0xD463, + 0x8A43, 0xD464, 0x8A44, 0xD465, 0x8A45, 0xD466, 0x8A46, 0xD467, 0x8A47, 0xD468, 0x8A48, 0xEEBA, 0x8A49, 0xD469, 0x8A4A, 0xD46A, + 0x8A4B, 0xD46B, 0x8A4C, 0xD46C, 0x8A4D, 0xD46D, 0x8A4E, 0xD46E, 0x8A4F, 0xD46F, 0x8A50, 0xD470, 0x8A51, 0xD471, 0x8A52, 0xD472, + 0x8A53, 0xD473, 0x8A54, 0xD474, 0x8A55, 0xD475, 0x8A56, 0xD476, 0x8A57, 0xD477, 0x8A58, 0xD478, 0x8A59, 0xD479, 0x8A5A, 0xD47A, + 0x8A5B, 0xD47B, 0x8A5C, 0xD47C, 0x8A5D, 0xD47D, 0x8A5E, 0xD47E, 0x8A5F, 0xD480, 0x8A60, 0xD481, 0x8A61, 0xD482, 0x8A62, 0xD483, + 0x8A63, 0xD484, 0x8A64, 0xD485, 0x8A65, 0xD486, 0x8A66, 0xD487, 0x8A67, 0xD488, 0x8A68, 0xD489, 0x8A69, 0xD48A, 0x8A6A, 0xD48B, + 0x8A6B, 0xD48C, 0x8A6C, 0xD48D, 0x8A6D, 0xD48E, 0x8A6E, 0xD48F, 0x8A6F, 0xD490, 0x8A70, 0xD491, 0x8A71, 0xD492, 0x8A72, 0xD493, + 0x8A73, 0xD494, 0x8A74, 0xD495, 0x8A75, 0xD496, 0x8A76, 0xD497, 0x8A77, 0xD498, 0x8A78, 0xD499, 0x8A79, 0xD5B2, 0x8A7A, 0xD49A, + 0x8A7B, 0xD49B, 0x8A7C, 0xD49C, 0x8A7D, 0xD49D, 0x8A7E, 0xD49E, 0x8A7F, 0xD49F, 0x8A80, 0xD4A0, 0x8A81, 0xD540, 0x8A82, 0xD541, + 0x8A83, 0xD542, 0x8A84, 0xD543, 0x8A85, 0xD544, 0x8A86, 0xD545, 0x8A87, 0xD546, 0x8A88, 0xD547, 0x8A89, 0xD3FE, 0x8A8A, 0xCCDC, + 0x8A8B, 0xD548, 0x8A8C, 0xD549, 0x8A8D, 0xD54A, 0x8A8E, 0xD54B, 0x8A8F, 0xD54C, 0x8A90, 0xD54D, 0x8A91, 0xD54E, 0x8A92, 0xD54F, + 0x8A93, 0xCAC4, 0x8A94, 0xD550, 0x8A95, 0xD551, 0x8A96, 0xD552, 0x8A97, 0xD553, 0x8A98, 0xD554, 0x8A99, 0xD555, 0x8A9A, 0xD556, + 0x8A9B, 0xD557, 0x8A9C, 0xD558, 0x8A9D, 0xD559, 0x8A9E, 0xD55A, 0x8A9F, 0xD55B, 0x8AA0, 0xD55C, 0x8AA1, 0xD55D, 0x8AA2, 0xD55E, + 0x8AA3, 0xD55F, 0x8AA4, 0xD560, 0x8AA5, 0xD561, 0x8AA6, 0xD562, 0x8AA7, 0xD563, 0x8AA8, 0xD564, 0x8AA9, 0xD565, 0x8AAA, 0xD566, + 0x8AAB, 0xD567, 0x8AAC, 0xD568, 0x8AAD, 0xD569, 0x8AAE, 0xD56A, 0x8AAF, 0xD56B, 0x8AB0, 0xD56C, 0x8AB1, 0xD56D, 0x8AB2, 0xD56E, + 0x8AB3, 0xD56F, 0x8AB4, 0xD570, 0x8AB5, 0xD571, 0x8AB6, 0xD572, 0x8AB7, 0xD573, 0x8AB8, 0xD574, 0x8AB9, 0xD575, 0x8ABA, 0xD576, + 0x8ABB, 0xD577, 0x8ABC, 0xD578, 0x8ABD, 0xD579, 0x8ABE, 0xD57A, 0x8ABF, 0xD57B, 0x8AC0, 0xD57C, 0x8AC1, 0xD57D, 0x8AC2, 0xD57E, + 0x8AC3, 0xD580, 0x8AC4, 0xD581, 0x8AC5, 0xD582, 0x8AC6, 0xD583, 0x8AC7, 0xD584, 0x8AC8, 0xD585, 0x8AC9, 0xD586, 0x8ACA, 0xD587, + 0x8ACB, 0xD588, 0x8ACC, 0xD589, 0x8ACD, 0xD58A, 0x8ACE, 0xD58B, 0x8ACF, 0xD58C, 0x8AD0, 0xD58D, 0x8AD1, 0xD58E, 0x8AD2, 0xD58F, + 0x8AD3, 0xD590, 0x8AD4, 0xD591, 0x8AD5, 0xD592, 0x8AD6, 0xD593, 0x8AD7, 0xD594, 0x8AD8, 0xD595, 0x8AD9, 0xD596, 0x8ADA, 0xD597, + 0x8ADB, 0xD598, 0x8ADC, 0xD599, 0x8ADD, 0xD59A, 0x8ADE, 0xD59B, 0x8ADF, 0xD59C, 0x8AE0, 0xD59D, 0x8AE1, 0xD59E, 0x8AE2, 0xD59F, + 0x8AE3, 0xD5A0, 0x8AE4, 0xD640, 0x8AE5, 0xD641, 0x8AE6, 0xD642, 0x8AE7, 0xD643, 0x8AE8, 0xD644, 0x8AE9, 0xD645, 0x8AEA, 0xD646, + 0x8AEB, 0xD647, 0x8AEC, 0xD648, 0x8AED, 0xD649, 0x8AEE, 0xD64A, 0x8AEF, 0xD64B, 0x8AF0, 0xD64C, 0x8AF1, 0xD64D, 0x8AF2, 0xD64E, + 0x8AF3, 0xD64F, 0x8AF4, 0xD650, 0x8AF5, 0xD651, 0x8AF6, 0xD652, 0x8AF7, 0xD653, 0x8AF8, 0xD654, 0x8AF9, 0xD655, 0x8AFA, 0xD656, + 0x8AFB, 0xD657, 0x8AFC, 0xD658, 0x8AFD, 0xD659, 0x8AFE, 0xD65A, 0x8AFF, 0xD65B, 0x8B00, 0xD65C, 0x8B01, 0xD65D, 0x8B02, 0xD65E, + 0x8B03, 0xD65F, 0x8B04, 0xD660, 0x8B05, 0xD661, 0x8B06, 0xD662, 0x8B07, 0xE5C0, 0x8B08, 0xD663, 0x8B09, 0xD664, 0x8B0A, 0xD665, + 0x8B0B, 0xD666, 0x8B0C, 0xD667, 0x8B0D, 0xD668, 0x8B0E, 0xD669, 0x8B0F, 0xD66A, 0x8B10, 0xD66B, 0x8B11, 0xD66C, 0x8B12, 0xD66D, + 0x8B13, 0xD66E, 0x8B14, 0xD66F, 0x8B15, 0xD670, 0x8B16, 0xD671, 0x8B17, 0xD672, 0x8B18, 0xD673, 0x8B19, 0xD674, 0x8B1A, 0xD675, + 0x8B1B, 0xD676, 0x8B1C, 0xD677, 0x8B1D, 0xD678, 0x8B1E, 0xD679, 0x8B1F, 0xD67A, 0x8B20, 0xD67B, 0x8B21, 0xD67C, 0x8B22, 0xD67D, + 0x8B23, 0xD67E, 0x8B24, 0xD680, 0x8B25, 0xD681, 0x8B26, 0xF6A5, 0x8B27, 0xD682, 0x8B28, 0xD683, 0x8B29, 0xD684, 0x8B2A, 0xD685, + 0x8B2B, 0xD686, 0x8B2C, 0xD687, 0x8B2D, 0xD688, 0x8B2E, 0xD689, 0x8B2F, 0xD68A, 0x8B30, 0xD68B, 0x8B31, 0xD68C, 0x8B32, 0xD68D, + 0x8B33, 0xD68E, 0x8B34, 0xD68F, 0x8B35, 0xD690, 0x8B36, 0xD691, 0x8B37, 0xD692, 0x8B38, 0xD693, 0x8B39, 0xD694, 0x8B3A, 0xD695, + 0x8B3B, 0xD696, 0x8B3C, 0xD697, 0x8B3D, 0xD698, 0x8B3E, 0xD699, 0x8B3F, 0xD69A, 0x8B40, 0xD69B, 0x8B41, 0xD69C, 0x8B42, 0xD69D, + 0x8B43, 0xD69E, 0x8B44, 0xD69F, 0x8B45, 0xD6A0, 0x8B46, 0xD740, 0x8B47, 0xD741, 0x8B48, 0xD742, 0x8B49, 0xD743, 0x8B4A, 0xD744, + 0x8B4B, 0xD745, 0x8B4C, 0xD746, 0x8B4D, 0xD747, 0x8B4E, 0xD748, 0x8B4F, 0xD749, 0x8B50, 0xD74A, 0x8B51, 0xD74B, 0x8B52, 0xD74C, + 0x8B53, 0xD74D, 0x8B54, 0xD74E, 0x8B55, 0xD74F, 0x8B56, 0xD750, 0x8B57, 0xD751, 0x8B58, 0xD752, 0x8B59, 0xD753, 0x8B5A, 0xD754, + 0x8B5B, 0xD755, 0x8B5C, 0xD756, 0x8B5D, 0xD757, 0x8B5E, 0xD758, 0x8B5F, 0xD759, 0x8B60, 0xD75A, 0x8B61, 0xD75B, 0x8B62, 0xD75C, + 0x8B63, 0xD75D, 0x8B64, 0xD75E, 0x8B65, 0xD75F, 0x8B66, 0xBEAF, 0x8B67, 0xD760, 0x8B68, 0xD761, 0x8B69, 0xD762, 0x8B6A, 0xD763, + 0x8B6B, 0xD764, 0x8B6C, 0xC6A9, 0x8B6D, 0xD765, 0x8B6E, 0xD766, 0x8B6F, 0xD767, 0x8B70, 0xD768, 0x8B71, 0xD769, 0x8B72, 0xD76A, + 0x8B73, 0xD76B, 0x8B74, 0xD76C, 0x8B75, 0xD76D, 0x8B76, 0xD76E, 0x8B77, 0xD76F, 0x8B78, 0xD770, 0x8B79, 0xD771, 0x8B7A, 0xD772, + 0x8B7B, 0xD773, 0x8B7C, 0xD774, 0x8B7D, 0xD775, 0x8B7E, 0xD776, 0x8B7F, 0xD777, 0x8B80, 0xD778, 0x8B81, 0xD779, 0x8B82, 0xD77A, + 0x8B83, 0xD77B, 0x8B84, 0xD77C, 0x8B85, 0xD77D, 0x8B86, 0xD77E, 0x8B87, 0xD780, 0x8B88, 0xD781, 0x8B89, 0xD782, 0x8B8A, 0xD783, + 0x8B8B, 0xD784, 0x8B8C, 0xD785, 0x8B8D, 0xD786, 0x8B8E, 0xD787, 0x8B8F, 0xD788, 0x8B90, 0xD789, 0x8B91, 0xD78A, 0x8B92, 0xD78B, + 0x8B93, 0xD78C, 0x8B94, 0xD78D, 0x8B95, 0xD78E, 0x8B96, 0xD78F, 0x8B97, 0xD790, 0x8B98, 0xD791, 0x8B99, 0xD792, 0x8B9A, 0xD793, + 0x8B9B, 0xD794, 0x8B9C, 0xD795, 0x8B9D, 0xD796, 0x8B9E, 0xD797, 0x8B9F, 0xD798, 0x8BA0, 0xDAA5, 0x8BA1, 0xBCC6, 0x8BA2, 0xB6A9, + 0x8BA3, 0xB8BC, 0x8BA4, 0xC8CF, 0x8BA5, 0xBCA5, 0x8BA6, 0xDAA6, 0x8BA7, 0xDAA7, 0x8BA8, 0xCCD6, 0x8BA9, 0xC8C3, 0x8BAA, 0xDAA8, + 0x8BAB, 0xC6FD, 0x8BAC, 0xD799, 0x8BAD, 0xD1B5, 0x8BAE, 0xD2E9, 0x8BAF, 0xD1B6, 0x8BB0, 0xBCC7, 0x8BB1, 0xD79A, 0x8BB2, 0xBDB2, + 0x8BB3, 0xBBE4, 0x8BB4, 0xDAA9, 0x8BB5, 0xDAAA, 0x8BB6, 0xD1C8, 0x8BB7, 0xDAAB, 0x8BB8, 0xD0ED, 0x8BB9, 0xB6EF, 0x8BBA, 0xC2DB, + 0x8BBB, 0xD79B, 0x8BBC, 0xCBCF, 0x8BBD, 0xB7ED, 0x8BBE, 0xC9E8, 0x8BBF, 0xB7C3, 0x8BC0, 0xBEF7, 0x8BC1, 0xD6A4, 0x8BC2, 0xDAAC, + 0x8BC3, 0xDAAD, 0x8BC4, 0xC6C0, 0x8BC5, 0xD7E7, 0x8BC6, 0xCAB6, 0x8BC7, 0xD79C, 0x8BC8, 0xD5A9, 0x8BC9, 0xCBDF, 0x8BCA, 0xD5EF, + 0x8BCB, 0xDAAE, 0x8BCC, 0xD6DF, 0x8BCD, 0xB4CA, 0x8BCE, 0xDAB0, 0x8BCF, 0xDAAF, 0x8BD0, 0xD79D, 0x8BD1, 0xD2EB, 0x8BD2, 0xDAB1, + 0x8BD3, 0xDAB2, 0x8BD4, 0xDAB3, 0x8BD5, 0xCAD4, 0x8BD6, 0xDAB4, 0x8BD7, 0xCAAB, 0x8BD8, 0xDAB5, 0x8BD9, 0xDAB6, 0x8BDA, 0xB3CF, + 0x8BDB, 0xD6EF, 0x8BDC, 0xDAB7, 0x8BDD, 0xBBB0, 0x8BDE, 0xB5AE, 0x8BDF, 0xDAB8, 0x8BE0, 0xDAB9, 0x8BE1, 0xB9EE, 0x8BE2, 0xD1AF, + 0x8BE3, 0xD2E8, 0x8BE4, 0xDABA, 0x8BE5, 0xB8C3, 0x8BE6, 0xCFEA, 0x8BE7, 0xB2EF, 0x8BE8, 0xDABB, 0x8BE9, 0xDABC, 0x8BEA, 0xD79E, + 0x8BEB, 0xBDEB, 0x8BEC, 0xCEDC, 0x8BED, 0xD3EF, 0x8BEE, 0xDABD, 0x8BEF, 0xCEF3, 0x8BF0, 0xDABE, 0x8BF1, 0xD3D5, 0x8BF2, 0xBBE5, + 0x8BF3, 0xDABF, 0x8BF4, 0xCBB5, 0x8BF5, 0xCBD0, 0x8BF6, 0xDAC0, 0x8BF7, 0xC7EB, 0x8BF8, 0xD6EE, 0x8BF9, 0xDAC1, 0x8BFA, 0xC5B5, + 0x8BFB, 0xB6C1, 0x8BFC, 0xDAC2, 0x8BFD, 0xB7CC, 0x8BFE, 0xBFCE, 0x8BFF, 0xDAC3, 0x8C00, 0xDAC4, 0x8C01, 0xCBAD, 0x8C02, 0xDAC5, + 0x8C03, 0xB5F7, 0x8C04, 0xDAC6, 0x8C05, 0xC1C2, 0x8C06, 0xD7BB, 0x8C07, 0xDAC7, 0x8C08, 0xCCB8, 0x8C09, 0xD79F, 0x8C0A, 0xD2EA, + 0x8C0B, 0xC4B1, 0x8C0C, 0xDAC8, 0x8C0D, 0xB5FD, 0x8C0E, 0xBBD1, 0x8C0F, 0xDAC9, 0x8C10, 0xD0B3, 0x8C11, 0xDACA, 0x8C12, 0xDACB, + 0x8C13, 0xCEBD, 0x8C14, 0xDACC, 0x8C15, 0xDACD, 0x8C16, 0xDACE, 0x8C17, 0xB2F7, 0x8C18, 0xDAD1, 0x8C19, 0xDACF, 0x8C1A, 0xD1E8, + 0x8C1B, 0xDAD0, 0x8C1C, 0xC3D5, 0x8C1D, 0xDAD2, 0x8C1E, 0xD7A0, 0x8C1F, 0xDAD3, 0x8C20, 0xDAD4, 0x8C21, 0xDAD5, 0x8C22, 0xD0BB, + 0x8C23, 0xD2A5, 0x8C24, 0xB0F9, 0x8C25, 0xDAD6, 0x8C26, 0xC7AB, 0x8C27, 0xDAD7, 0x8C28, 0xBDF7, 0x8C29, 0xC3A1, 0x8C2A, 0xDAD8, + 0x8C2B, 0xDAD9, 0x8C2C, 0xC3FD, 0x8C2D, 0xCCB7, 0x8C2E, 0xDADA, 0x8C2F, 0xDADB, 0x8C30, 0xC0BE, 0x8C31, 0xC6D7, 0x8C32, 0xDADC, + 0x8C33, 0xDADD, 0x8C34, 0xC7B4, 0x8C35, 0xDADE, 0x8C36, 0xDADF, 0x8C37, 0xB9C8, 0x8C38, 0xD840, 0x8C39, 0xD841, 0x8C3A, 0xD842, + 0x8C3B, 0xD843, 0x8C3C, 0xD844, 0x8C3D, 0xD845, 0x8C3E, 0xD846, 0x8C3F, 0xD847, 0x8C40, 0xD848, 0x8C41, 0xBBED, 0x8C42, 0xD849, + 0x8C43, 0xD84A, 0x8C44, 0xD84B, 0x8C45, 0xD84C, 0x8C46, 0xB6B9, 0x8C47, 0xF4F8, 0x8C48, 0xD84D, 0x8C49, 0xF4F9, 0x8C4A, 0xD84E, + 0x8C4B, 0xD84F, 0x8C4C, 0xCDE3, 0x8C4D, 0xD850, 0x8C4E, 0xD851, 0x8C4F, 0xD852, 0x8C50, 0xD853, 0x8C51, 0xD854, 0x8C52, 0xD855, + 0x8C53, 0xD856, 0x8C54, 0xD857, 0x8C55, 0xF5B9, 0x8C56, 0xD858, 0x8C57, 0xD859, 0x8C58, 0xD85A, 0x8C59, 0xD85B, 0x8C5A, 0xEBE0, + 0x8C5B, 0xD85C, 0x8C5C, 0xD85D, 0x8C5D, 0xD85E, 0x8C5E, 0xD85F, 0x8C5F, 0xD860, 0x8C60, 0xD861, 0x8C61, 0xCFF3, 0x8C62, 0xBBBF, + 0x8C63, 0xD862, 0x8C64, 0xD863, 0x8C65, 0xD864, 0x8C66, 0xD865, 0x8C67, 0xD866, 0x8C68, 0xD867, 0x8C69, 0xD868, 0x8C6A, 0xBAC0, + 0x8C6B, 0xD4A5, 0x8C6C, 0xD869, 0x8C6D, 0xD86A, 0x8C6E, 0xD86B, 0x8C6F, 0xD86C, 0x8C70, 0xD86D, 0x8C71, 0xD86E, 0x8C72, 0xD86F, + 0x8C73, 0xE1D9, 0x8C74, 0xD870, 0x8C75, 0xD871, 0x8C76, 0xD872, 0x8C77, 0xD873, 0x8C78, 0xF5F4, 0x8C79, 0xB1AA, 0x8C7A, 0xB2F2, + 0x8C7B, 0xD874, 0x8C7C, 0xD875, 0x8C7D, 0xD876, 0x8C7E, 0xD877, 0x8C7F, 0xD878, 0x8C80, 0xD879, 0x8C81, 0xD87A, 0x8C82, 0xF5F5, + 0x8C83, 0xD87B, 0x8C84, 0xD87C, 0x8C85, 0xF5F7, 0x8C86, 0xD87D, 0x8C87, 0xD87E, 0x8C88, 0xD880, 0x8C89, 0xBAD1, 0x8C8A, 0xF5F6, + 0x8C8B, 0xD881, 0x8C8C, 0xC3B2, 0x8C8D, 0xD882, 0x8C8E, 0xD883, 0x8C8F, 0xD884, 0x8C90, 0xD885, 0x8C91, 0xD886, 0x8C92, 0xD887, + 0x8C93, 0xD888, 0x8C94, 0xF5F9, 0x8C95, 0xD889, 0x8C96, 0xD88A, 0x8C97, 0xD88B, 0x8C98, 0xF5F8, 0x8C99, 0xD88C, 0x8C9A, 0xD88D, + 0x8C9B, 0xD88E, 0x8C9C, 0xD88F, 0x8C9D, 0xD890, 0x8C9E, 0xD891, 0x8C9F, 0xD892, 0x8CA0, 0xD893, 0x8CA1, 0xD894, 0x8CA2, 0xD895, + 0x8CA3, 0xD896, 0x8CA4, 0xD897, 0x8CA5, 0xD898, 0x8CA6, 0xD899, 0x8CA7, 0xD89A, 0x8CA8, 0xD89B, 0x8CA9, 0xD89C, 0x8CAA, 0xD89D, + 0x8CAB, 0xD89E, 0x8CAC, 0xD89F, 0x8CAD, 0xD8A0, 0x8CAE, 0xD940, 0x8CAF, 0xD941, 0x8CB0, 0xD942, 0x8CB1, 0xD943, 0x8CB2, 0xD944, + 0x8CB3, 0xD945, 0x8CB4, 0xD946, 0x8CB5, 0xD947, 0x8CB6, 0xD948, 0x8CB7, 0xD949, 0x8CB8, 0xD94A, 0x8CB9, 0xD94B, 0x8CBA, 0xD94C, + 0x8CBB, 0xD94D, 0x8CBC, 0xD94E, 0x8CBD, 0xD94F, 0x8CBE, 0xD950, 0x8CBF, 0xD951, 0x8CC0, 0xD952, 0x8CC1, 0xD953, 0x8CC2, 0xD954, + 0x8CC3, 0xD955, 0x8CC4, 0xD956, 0x8CC5, 0xD957, 0x8CC6, 0xD958, 0x8CC7, 0xD959, 0x8CC8, 0xD95A, 0x8CC9, 0xD95B, 0x8CCA, 0xD95C, + 0x8CCB, 0xD95D, 0x8CCC, 0xD95E, 0x8CCD, 0xD95F, 0x8CCE, 0xD960, 0x8CCF, 0xD961, 0x8CD0, 0xD962, 0x8CD1, 0xD963, 0x8CD2, 0xD964, + 0x8CD3, 0xD965, 0x8CD4, 0xD966, 0x8CD5, 0xD967, 0x8CD6, 0xD968, 0x8CD7, 0xD969, 0x8CD8, 0xD96A, 0x8CD9, 0xD96B, 0x8CDA, 0xD96C, + 0x8CDB, 0xD96D, 0x8CDC, 0xD96E, 0x8CDD, 0xD96F, 0x8CDE, 0xD970, 0x8CDF, 0xD971, 0x8CE0, 0xD972, 0x8CE1, 0xD973, 0x8CE2, 0xD974, + 0x8CE3, 0xD975, 0x8CE4, 0xD976, 0x8CE5, 0xD977, 0x8CE6, 0xD978, 0x8CE7, 0xD979, 0x8CE8, 0xD97A, 0x8CE9, 0xD97B, 0x8CEA, 0xD97C, + 0x8CEB, 0xD97D, 0x8CEC, 0xD97E, 0x8CED, 0xD980, 0x8CEE, 0xD981, 0x8CEF, 0xD982, 0x8CF0, 0xD983, 0x8CF1, 0xD984, 0x8CF2, 0xD985, + 0x8CF3, 0xD986, 0x8CF4, 0xD987, 0x8CF5, 0xD988, 0x8CF6, 0xD989, 0x8CF7, 0xD98A, 0x8CF8, 0xD98B, 0x8CF9, 0xD98C, 0x8CFA, 0xD98D, + 0x8CFB, 0xD98E, 0x8CFC, 0xD98F, 0x8CFD, 0xD990, 0x8CFE, 0xD991, 0x8CFF, 0xD992, 0x8D00, 0xD993, 0x8D01, 0xD994, 0x8D02, 0xD995, + 0x8D03, 0xD996, 0x8D04, 0xD997, 0x8D05, 0xD998, 0x8D06, 0xD999, 0x8D07, 0xD99A, 0x8D08, 0xD99B, 0x8D09, 0xD99C, 0x8D0A, 0xD99D, + 0x8D0B, 0xD99E, 0x8D0C, 0xD99F, 0x8D0D, 0xD9A0, 0x8D0E, 0xDA40, 0x8D0F, 0xDA41, 0x8D10, 0xDA42, 0x8D11, 0xDA43, 0x8D12, 0xDA44, + 0x8D13, 0xDA45, 0x8D14, 0xDA46, 0x8D15, 0xDA47, 0x8D16, 0xDA48, 0x8D17, 0xDA49, 0x8D18, 0xDA4A, 0x8D19, 0xDA4B, 0x8D1A, 0xDA4C, + 0x8D1B, 0xDA4D, 0x8D1C, 0xDA4E, 0x8D1D, 0xB1B4, 0x8D1E, 0xD5EA, 0x8D1F, 0xB8BA, 0x8D20, 0xDA4F, 0x8D21, 0xB9B1, 0x8D22, 0xB2C6, + 0x8D23, 0xD4F0, 0x8D24, 0xCFCD, 0x8D25, 0xB0DC, 0x8D26, 0xD5CB, 0x8D27, 0xBBF5, 0x8D28, 0xD6CA, 0x8D29, 0xB7B7, 0x8D2A, 0xCCB0, + 0x8D2B, 0xC6B6, 0x8D2C, 0xB1E1, 0x8D2D, 0xB9BA, 0x8D2E, 0xD6FC, 0x8D2F, 0xB9E1, 0x8D30, 0xB7A1, 0x8D31, 0xBCFA, 0x8D32, 0xEADA, + 0x8D33, 0xEADB, 0x8D34, 0xCCF9, 0x8D35, 0xB9F3, 0x8D36, 0xEADC, 0x8D37, 0xB4FB, 0x8D38, 0xC3B3, 0x8D39, 0xB7D1, 0x8D3A, 0xBAD8, + 0x8D3B, 0xEADD, 0x8D3C, 0xD4F4, 0x8D3D, 0xEADE, 0x8D3E, 0xBCD6, 0x8D3F, 0xBBDF, 0x8D40, 0xEADF, 0x8D41, 0xC1DE, 0x8D42, 0xC2B8, + 0x8D43, 0xD4DF, 0x8D44, 0xD7CA, 0x8D45, 0xEAE0, 0x8D46, 0xEAE1, 0x8D47, 0xEAE4, 0x8D48, 0xEAE2, 0x8D49, 0xEAE3, 0x8D4A, 0xC9DE, + 0x8D4B, 0xB8B3, 0x8D4C, 0xB6C4, 0x8D4D, 0xEAE5, 0x8D4E, 0xCAEA, 0x8D4F, 0xC9CD, 0x8D50, 0xB4CD, 0x8D51, 0xDA50, 0x8D52, 0xDA51, + 0x8D53, 0xE2D9, 0x8D54, 0xC5E2, 0x8D55, 0xEAE6, 0x8D56, 0xC0B5, 0x8D57, 0xDA52, 0x8D58, 0xD7B8, 0x8D59, 0xEAE7, 0x8D5A, 0xD7AC, + 0x8D5B, 0xC8FC, 0x8D5C, 0xD8D3, 0x8D5D, 0xD8CD, 0x8D5E, 0xD4DE, 0x8D5F, 0xDA53, 0x8D60, 0xD4F9, 0x8D61, 0xC9C4, 0x8D62, 0xD3AE, + 0x8D63, 0xB8D3, 0x8D64, 0xB3E0, 0x8D65, 0xDA54, 0x8D66, 0xC9E2, 0x8D67, 0xF4F6, 0x8D68, 0xDA55, 0x8D69, 0xDA56, 0x8D6A, 0xDA57, + 0x8D6B, 0xBAD5, 0x8D6C, 0xDA58, 0x8D6D, 0xF4F7, 0x8D6E, 0xDA59, 0x8D6F, 0xDA5A, 0x8D70, 0xD7DF, 0x8D71, 0xDA5B, 0x8D72, 0xDA5C, + 0x8D73, 0xF4F1, 0x8D74, 0xB8B0, 0x8D75, 0xD5D4, 0x8D76, 0xB8CF, 0x8D77, 0xC6F0, 0x8D78, 0xDA5D, 0x8D79, 0xDA5E, 0x8D7A, 0xDA5F, + 0x8D7B, 0xDA60, 0x8D7C, 0xDA61, 0x8D7D, 0xDA62, 0x8D7E, 0xDA63, 0x8D7F, 0xDA64, 0x8D80, 0xDA65, 0x8D81, 0xB3C3, 0x8D82, 0xDA66, + 0x8D83, 0xDA67, 0x8D84, 0xF4F2, 0x8D85, 0xB3AC, 0x8D86, 0xDA68, 0x8D87, 0xDA69, 0x8D88, 0xDA6A, 0x8D89, 0xDA6B, 0x8D8A, 0xD4BD, + 0x8D8B, 0xC7F7, 0x8D8C, 0xDA6C, 0x8D8D, 0xDA6D, 0x8D8E, 0xDA6E, 0x8D8F, 0xDA6F, 0x8D90, 0xDA70, 0x8D91, 0xF4F4, 0x8D92, 0xDA71, + 0x8D93, 0xDA72, 0x8D94, 0xF4F3, 0x8D95, 0xDA73, 0x8D96, 0xDA74, 0x8D97, 0xDA75, 0x8D98, 0xDA76, 0x8D99, 0xDA77, 0x8D9A, 0xDA78, + 0x8D9B, 0xDA79, 0x8D9C, 0xDA7A, 0x8D9D, 0xDA7B, 0x8D9E, 0xDA7C, 0x8D9F, 0xCCCB, 0x8DA0, 0xDA7D, 0x8DA1, 0xDA7E, 0x8DA2, 0xDA80, + 0x8DA3, 0xC8A4, 0x8DA4, 0xDA81, 0x8DA5, 0xDA82, 0x8DA6, 0xDA83, 0x8DA7, 0xDA84, 0x8DA8, 0xDA85, 0x8DA9, 0xDA86, 0x8DAA, 0xDA87, + 0x8DAB, 0xDA88, 0x8DAC, 0xDA89, 0x8DAD, 0xDA8A, 0x8DAE, 0xDA8B, 0x8DAF, 0xDA8C, 0x8DB0, 0xDA8D, 0x8DB1, 0xF4F5, 0x8DB2, 0xDA8E, + 0x8DB3, 0xD7E3, 0x8DB4, 0xC5BF, 0x8DB5, 0xF5C0, 0x8DB6, 0xDA8F, 0x8DB7, 0xDA90, 0x8DB8, 0xF5BB, 0x8DB9, 0xDA91, 0x8DBA, 0xF5C3, + 0x8DBB, 0xDA92, 0x8DBC, 0xF5C2, 0x8DBD, 0xDA93, 0x8DBE, 0xD6BA, 0x8DBF, 0xF5C1, 0x8DC0, 0xDA94, 0x8DC1, 0xDA95, 0x8DC2, 0xDA96, + 0x8DC3, 0xD4BE, 0x8DC4, 0xF5C4, 0x8DC5, 0xDA97, 0x8DC6, 0xF5CC, 0x8DC7, 0xDA98, 0x8DC8, 0xDA99, 0x8DC9, 0xDA9A, 0x8DCA, 0xDA9B, + 0x8DCB, 0xB0CF, 0x8DCC, 0xB5F8, 0x8DCD, 0xDA9C, 0x8DCE, 0xF5C9, 0x8DCF, 0xF5CA, 0x8DD0, 0xDA9D, 0x8DD1, 0xC5DC, 0x8DD2, 0xDA9E, + 0x8DD3, 0xDA9F, 0x8DD4, 0xDAA0, 0x8DD5, 0xDB40, 0x8DD6, 0xF5C5, 0x8DD7, 0xF5C6, 0x8DD8, 0xDB41, 0x8DD9, 0xDB42, 0x8DDA, 0xF5C7, + 0x8DDB, 0xF5CB, 0x8DDC, 0xDB43, 0x8DDD, 0xBEE0, 0x8DDE, 0xF5C8, 0x8DDF, 0xB8FA, 0x8DE0, 0xDB44, 0x8DE1, 0xDB45, 0x8DE2, 0xDB46, + 0x8DE3, 0xF5D0, 0x8DE4, 0xF5D3, 0x8DE5, 0xDB47, 0x8DE6, 0xDB48, 0x8DE7, 0xDB49, 0x8DE8, 0xBFE7, 0x8DE9, 0xDB4A, 0x8DEA, 0xB9F2, + 0x8DEB, 0xF5BC, 0x8DEC, 0xF5CD, 0x8DED, 0xDB4B, 0x8DEE, 0xDB4C, 0x8DEF, 0xC2B7, 0x8DF0, 0xDB4D, 0x8DF1, 0xDB4E, 0x8DF2, 0xDB4F, + 0x8DF3, 0xCCF8, 0x8DF4, 0xDB50, 0x8DF5, 0xBCF9, 0x8DF6, 0xDB51, 0x8DF7, 0xF5CE, 0x8DF8, 0xF5CF, 0x8DF9, 0xF5D1, 0x8DFA, 0xB6E5, + 0x8DFB, 0xF5D2, 0x8DFC, 0xDB52, 0x8DFD, 0xF5D5, 0x8DFE, 0xDB53, 0x8DFF, 0xDB54, 0x8E00, 0xDB55, 0x8E01, 0xDB56, 0x8E02, 0xDB57, + 0x8E03, 0xDB58, 0x8E04, 0xDB59, 0x8E05, 0xF5BD, 0x8E06, 0xDB5A, 0x8E07, 0xDB5B, 0x8E08, 0xDB5C, 0x8E09, 0xF5D4, 0x8E0A, 0xD3BB, + 0x8E0B, 0xDB5D, 0x8E0C, 0xB3EC, 0x8E0D, 0xDB5E, 0x8E0E, 0xDB5F, 0x8E0F, 0xCCA4, 0x8E10, 0xDB60, 0x8E11, 0xDB61, 0x8E12, 0xDB62, + 0x8E13, 0xDB63, 0x8E14, 0xF5D6, 0x8E15, 0xDB64, 0x8E16, 0xDB65, 0x8E17, 0xDB66, 0x8E18, 0xDB67, 0x8E19, 0xDB68, 0x8E1A, 0xDB69, + 0x8E1B, 0xDB6A, 0x8E1C, 0xDB6B, 0x8E1D, 0xF5D7, 0x8E1E, 0xBEE1, 0x8E1F, 0xF5D8, 0x8E20, 0xDB6C, 0x8E21, 0xDB6D, 0x8E22, 0xCCDF, + 0x8E23, 0xF5DB, 0x8E24, 0xDB6E, 0x8E25, 0xDB6F, 0x8E26, 0xDB70, 0x8E27, 0xDB71, 0x8E28, 0xDB72, 0x8E29, 0xB2C8, 0x8E2A, 0xD7D9, + 0x8E2B, 0xDB73, 0x8E2C, 0xF5D9, 0x8E2D, 0xDB74, 0x8E2E, 0xF5DA, 0x8E2F, 0xF5DC, 0x8E30, 0xDB75, 0x8E31, 0xF5E2, 0x8E32, 0xDB76, + 0x8E33, 0xDB77, 0x8E34, 0xDB78, 0x8E35, 0xF5E0, 0x8E36, 0xDB79, 0x8E37, 0xDB7A, 0x8E38, 0xDB7B, 0x8E39, 0xF5DF, 0x8E3A, 0xF5DD, + 0x8E3B, 0xDB7C, 0x8E3C, 0xDB7D, 0x8E3D, 0xF5E1, 0x8E3E, 0xDB7E, 0x8E3F, 0xDB80, 0x8E40, 0xF5DE, 0x8E41, 0xF5E4, 0x8E42, 0xF5E5, + 0x8E43, 0xDB81, 0x8E44, 0xCCE3, 0x8E45, 0xDB82, 0x8E46, 0xDB83, 0x8E47, 0xE5BF, 0x8E48, 0xB5B8, 0x8E49, 0xF5E3, 0x8E4A, 0xF5E8, + 0x8E4B, 0xCCA3, 0x8E4C, 0xDB84, 0x8E4D, 0xDB85, 0x8E4E, 0xDB86, 0x8E4F, 0xDB87, 0x8E50, 0xDB88, 0x8E51, 0xF5E6, 0x8E52, 0xF5E7, + 0x8E53, 0xDB89, 0x8E54, 0xDB8A, 0x8E55, 0xDB8B, 0x8E56, 0xDB8C, 0x8E57, 0xDB8D, 0x8E58, 0xDB8E, 0x8E59, 0xF5BE, 0x8E5A, 0xDB8F, + 0x8E5B, 0xDB90, 0x8E5C, 0xDB91, 0x8E5D, 0xDB92, 0x8E5E, 0xDB93, 0x8E5F, 0xDB94, 0x8E60, 0xDB95, 0x8E61, 0xDB96, 0x8E62, 0xDB97, + 0x8E63, 0xDB98, 0x8E64, 0xDB99, 0x8E65, 0xDB9A, 0x8E66, 0xB1C4, 0x8E67, 0xDB9B, 0x8E68, 0xDB9C, 0x8E69, 0xF5BF, 0x8E6A, 0xDB9D, + 0x8E6B, 0xDB9E, 0x8E6C, 0xB5C5, 0x8E6D, 0xB2E4, 0x8E6E, 0xDB9F, 0x8E6F, 0xF5EC, 0x8E70, 0xF5E9, 0x8E71, 0xDBA0, 0x8E72, 0xB6D7, + 0x8E73, 0xDC40, 0x8E74, 0xF5ED, 0x8E75, 0xDC41, 0x8E76, 0xF5EA, 0x8E77, 0xDC42, 0x8E78, 0xDC43, 0x8E79, 0xDC44, 0x8E7A, 0xDC45, + 0x8E7B, 0xDC46, 0x8E7C, 0xF5EB, 0x8E7D, 0xDC47, 0x8E7E, 0xDC48, 0x8E7F, 0xB4DA, 0x8E80, 0xDC49, 0x8E81, 0xD4EA, 0x8E82, 0xDC4A, + 0x8E83, 0xDC4B, 0x8E84, 0xDC4C, 0x8E85, 0xF5EE, 0x8E86, 0xDC4D, 0x8E87, 0xB3F9, 0x8E88, 0xDC4E, 0x8E89, 0xDC4F, 0x8E8A, 0xDC50, + 0x8E8B, 0xDC51, 0x8E8C, 0xDC52, 0x8E8D, 0xDC53, 0x8E8E, 0xDC54, 0x8E8F, 0xF5EF, 0x8E90, 0xF5F1, 0x8E91, 0xDC55, 0x8E92, 0xDC56, + 0x8E93, 0xDC57, 0x8E94, 0xF5F0, 0x8E95, 0xDC58, 0x8E96, 0xDC59, 0x8E97, 0xDC5A, 0x8E98, 0xDC5B, 0x8E99, 0xDC5C, 0x8E9A, 0xDC5D, + 0x8E9B, 0xDC5E, 0x8E9C, 0xF5F2, 0x8E9D, 0xDC5F, 0x8E9E, 0xF5F3, 0x8E9F, 0xDC60, 0x8EA0, 0xDC61, 0x8EA1, 0xDC62, 0x8EA2, 0xDC63, + 0x8EA3, 0xDC64, 0x8EA4, 0xDC65, 0x8EA5, 0xDC66, 0x8EA6, 0xDC67, 0x8EA7, 0xDC68, 0x8EA8, 0xDC69, 0x8EA9, 0xDC6A, 0x8EAA, 0xDC6B, + 0x8EAB, 0xC9ED, 0x8EAC, 0xB9AA, 0x8EAD, 0xDC6C, 0x8EAE, 0xDC6D, 0x8EAF, 0xC7FB, 0x8EB0, 0xDC6E, 0x8EB1, 0xDC6F, 0x8EB2, 0xB6E3, + 0x8EB3, 0xDC70, 0x8EB4, 0xDC71, 0x8EB5, 0xDC72, 0x8EB6, 0xDC73, 0x8EB7, 0xDC74, 0x8EB8, 0xDC75, 0x8EB9, 0xDC76, 0x8EBA, 0xCCC9, + 0x8EBB, 0xDC77, 0x8EBC, 0xDC78, 0x8EBD, 0xDC79, 0x8EBE, 0xDC7A, 0x8EBF, 0xDC7B, 0x8EC0, 0xDC7C, 0x8EC1, 0xDC7D, 0x8EC2, 0xDC7E, + 0x8EC3, 0xDC80, 0x8EC4, 0xDC81, 0x8EC5, 0xDC82, 0x8EC6, 0xDC83, 0x8EC7, 0xDC84, 0x8EC8, 0xDC85, 0x8EC9, 0xDC86, 0x8ECA, 0xDC87, + 0x8ECB, 0xDC88, 0x8ECC, 0xDC89, 0x8ECD, 0xDC8A, 0x8ECE, 0xEAA6, 0x8ECF, 0xDC8B, 0x8ED0, 0xDC8C, 0x8ED1, 0xDC8D, 0x8ED2, 0xDC8E, + 0x8ED3, 0xDC8F, 0x8ED4, 0xDC90, 0x8ED5, 0xDC91, 0x8ED6, 0xDC92, 0x8ED7, 0xDC93, 0x8ED8, 0xDC94, 0x8ED9, 0xDC95, 0x8EDA, 0xDC96, + 0x8EDB, 0xDC97, 0x8EDC, 0xDC98, 0x8EDD, 0xDC99, 0x8EDE, 0xDC9A, 0x8EDF, 0xDC9B, 0x8EE0, 0xDC9C, 0x8EE1, 0xDC9D, 0x8EE2, 0xDC9E, + 0x8EE3, 0xDC9F, 0x8EE4, 0xDCA0, 0x8EE5, 0xDD40, 0x8EE6, 0xDD41, 0x8EE7, 0xDD42, 0x8EE8, 0xDD43, 0x8EE9, 0xDD44, 0x8EEA, 0xDD45, + 0x8EEB, 0xDD46, 0x8EEC, 0xDD47, 0x8EED, 0xDD48, 0x8EEE, 0xDD49, 0x8EEF, 0xDD4A, 0x8EF0, 0xDD4B, 0x8EF1, 0xDD4C, 0x8EF2, 0xDD4D, + 0x8EF3, 0xDD4E, 0x8EF4, 0xDD4F, 0x8EF5, 0xDD50, 0x8EF6, 0xDD51, 0x8EF7, 0xDD52, 0x8EF8, 0xDD53, 0x8EF9, 0xDD54, 0x8EFA, 0xDD55, + 0x8EFB, 0xDD56, 0x8EFC, 0xDD57, 0x8EFD, 0xDD58, 0x8EFE, 0xDD59, 0x8EFF, 0xDD5A, 0x8F00, 0xDD5B, 0x8F01, 0xDD5C, 0x8F02, 0xDD5D, + 0x8F03, 0xDD5E, 0x8F04, 0xDD5F, 0x8F05, 0xDD60, 0x8F06, 0xDD61, 0x8F07, 0xDD62, 0x8F08, 0xDD63, 0x8F09, 0xDD64, 0x8F0A, 0xDD65, + 0x8F0B, 0xDD66, 0x8F0C, 0xDD67, 0x8F0D, 0xDD68, 0x8F0E, 0xDD69, 0x8F0F, 0xDD6A, 0x8F10, 0xDD6B, 0x8F11, 0xDD6C, 0x8F12, 0xDD6D, + 0x8F13, 0xDD6E, 0x8F14, 0xDD6F, 0x8F15, 0xDD70, 0x8F16, 0xDD71, 0x8F17, 0xDD72, 0x8F18, 0xDD73, 0x8F19, 0xDD74, 0x8F1A, 0xDD75, + 0x8F1B, 0xDD76, 0x8F1C, 0xDD77, 0x8F1D, 0xDD78, 0x8F1E, 0xDD79, 0x8F1F, 0xDD7A, 0x8F20, 0xDD7B, 0x8F21, 0xDD7C, 0x8F22, 0xDD7D, + 0x8F23, 0xDD7E, 0x8F24, 0xDD80, 0x8F25, 0xDD81, 0x8F26, 0xDD82, 0x8F27, 0xDD83, 0x8F28, 0xDD84, 0x8F29, 0xDD85, 0x8F2A, 0xDD86, + 0x8F2B, 0xDD87, 0x8F2C, 0xDD88, 0x8F2D, 0xDD89, 0x8F2E, 0xDD8A, 0x8F2F, 0xDD8B, 0x8F30, 0xDD8C, 0x8F31, 0xDD8D, 0x8F32, 0xDD8E, + 0x8F33, 0xDD8F, 0x8F34, 0xDD90, 0x8F35, 0xDD91, 0x8F36, 0xDD92, 0x8F37, 0xDD93, 0x8F38, 0xDD94, 0x8F39, 0xDD95, 0x8F3A, 0xDD96, + 0x8F3B, 0xDD97, 0x8F3C, 0xDD98, 0x8F3D, 0xDD99, 0x8F3E, 0xDD9A, 0x8F3F, 0xDD9B, 0x8F40, 0xDD9C, 0x8F41, 0xDD9D, 0x8F42, 0xDD9E, + 0x8F43, 0xDD9F, 0x8F44, 0xDDA0, 0x8F45, 0xDE40, 0x8F46, 0xDE41, 0x8F47, 0xDE42, 0x8F48, 0xDE43, 0x8F49, 0xDE44, 0x8F4A, 0xDE45, + 0x8F4B, 0xDE46, 0x8F4C, 0xDE47, 0x8F4D, 0xDE48, 0x8F4E, 0xDE49, 0x8F4F, 0xDE4A, 0x8F50, 0xDE4B, 0x8F51, 0xDE4C, 0x8F52, 0xDE4D, + 0x8F53, 0xDE4E, 0x8F54, 0xDE4F, 0x8F55, 0xDE50, 0x8F56, 0xDE51, 0x8F57, 0xDE52, 0x8F58, 0xDE53, 0x8F59, 0xDE54, 0x8F5A, 0xDE55, + 0x8F5B, 0xDE56, 0x8F5C, 0xDE57, 0x8F5D, 0xDE58, 0x8F5E, 0xDE59, 0x8F5F, 0xDE5A, 0x8F60, 0xDE5B, 0x8F61, 0xDE5C, 0x8F62, 0xDE5D, + 0x8F63, 0xDE5E, 0x8F64, 0xDE5F, 0x8F65, 0xDE60, 0x8F66, 0xB3B5, 0x8F67, 0xD4FE, 0x8F68, 0xB9EC, 0x8F69, 0xD0F9, 0x8F6A, 0xDE61, + 0x8F6B, 0xE9ED, 0x8F6C, 0xD7AA, 0x8F6D, 0xE9EE, 0x8F6E, 0xC2D6, 0x8F6F, 0xC8ED, 0x8F70, 0xBAE4, 0x8F71, 0xE9EF, 0x8F72, 0xE9F0, + 0x8F73, 0xE9F1, 0x8F74, 0xD6E1, 0x8F75, 0xE9F2, 0x8F76, 0xE9F3, 0x8F77, 0xE9F5, 0x8F78, 0xE9F4, 0x8F79, 0xE9F6, 0x8F7A, 0xE9F7, + 0x8F7B, 0xC7E1, 0x8F7C, 0xE9F8, 0x8F7D, 0xD4D8, 0x8F7E, 0xE9F9, 0x8F7F, 0xBDCE, 0x8F80, 0xDE62, 0x8F81, 0xE9FA, 0x8F82, 0xE9FB, + 0x8F83, 0xBDCF, 0x8F84, 0xE9FC, 0x8F85, 0xB8A8, 0x8F86, 0xC1BE, 0x8F87, 0xE9FD, 0x8F88, 0xB1B2, 0x8F89, 0xBBD4, 0x8F8A, 0xB9F5, + 0x8F8B, 0xE9FE, 0x8F8C, 0xDE63, 0x8F8D, 0xEAA1, 0x8F8E, 0xEAA2, 0x8F8F, 0xEAA3, 0x8F90, 0xB7F8, 0x8F91, 0xBCAD, 0x8F92, 0xDE64, + 0x8F93, 0xCAE4, 0x8F94, 0xE0CE, 0x8F95, 0xD4AF, 0x8F96, 0xCFBD, 0x8F97, 0xD5B7, 0x8F98, 0xEAA4, 0x8F99, 0xD5DE, 0x8F9A, 0xEAA5, + 0x8F9B, 0xD0C1, 0x8F9C, 0xB9BC, 0x8F9D, 0xDE65, 0x8F9E, 0xB4C7, 0x8F9F, 0xB1D9, 0x8FA0, 0xDE66, 0x8FA1, 0xDE67, 0x8FA2, 0xDE68, + 0x8FA3, 0xC0B1, 0x8FA4, 0xDE69, 0x8FA5, 0xDE6A, 0x8FA6, 0xDE6B, 0x8FA7, 0xDE6C, 0x8FA8, 0xB1E6, 0x8FA9, 0xB1E7, 0x8FAA, 0xDE6D, + 0x8FAB, 0xB1E8, 0x8FAC, 0xDE6E, 0x8FAD, 0xDE6F, 0x8FAE, 0xDE70, 0x8FAF, 0xDE71, 0x8FB0, 0xB3BD, 0x8FB1, 0xC8E8, 0x8FB2, 0xDE72, + 0x8FB3, 0xDE73, 0x8FB4, 0xDE74, 0x8FB5, 0xDE75, 0x8FB6, 0xE5C1, 0x8FB7, 0xDE76, 0x8FB8, 0xDE77, 0x8FB9, 0xB1DF, 0x8FBA, 0xDE78, + 0x8FBB, 0xDE79, 0x8FBC, 0xDE7A, 0x8FBD, 0xC1C9, 0x8FBE, 0xB4EF, 0x8FBF, 0xDE7B, 0x8FC0, 0xDE7C, 0x8FC1, 0xC7A8, 0x8FC2, 0xD3D8, + 0x8FC3, 0xDE7D, 0x8FC4, 0xC6F9, 0x8FC5, 0xD1B8, 0x8FC6, 0xDE7E, 0x8FC7, 0xB9FD, 0x8FC8, 0xC2F5, 0x8FC9, 0xDE80, 0x8FCA, 0xDE81, + 0x8FCB, 0xDE82, 0x8FCC, 0xDE83, 0x8FCD, 0xDE84, 0x8FCE, 0xD3AD, 0x8FCF, 0xDE85, 0x8FD0, 0xD4CB, 0x8FD1, 0xBDFC, 0x8FD2, 0xDE86, + 0x8FD3, 0xE5C2, 0x8FD4, 0xB7B5, 0x8FD5, 0xE5C3, 0x8FD6, 0xDE87, 0x8FD7, 0xDE88, 0x8FD8, 0xBBB9, 0x8FD9, 0xD5E2, 0x8FDA, 0xDE89, + 0x8FDB, 0xBDF8, 0x8FDC, 0xD4B6, 0x8FDD, 0xCEA5, 0x8FDE, 0xC1AC, 0x8FDF, 0xB3D9, 0x8FE0, 0xDE8A, 0x8FE1, 0xDE8B, 0x8FE2, 0xCCF6, + 0x8FE3, 0xDE8C, 0x8FE4, 0xE5C6, 0x8FE5, 0xE5C4, 0x8FE6, 0xE5C8, 0x8FE7, 0xDE8D, 0x8FE8, 0xE5CA, 0x8FE9, 0xE5C7, 0x8FEA, 0xB5CF, + 0x8FEB, 0xC6C8, 0x8FEC, 0xDE8E, 0x8FED, 0xB5FC, 0x8FEE, 0xE5C5, 0x8FEF, 0xDE8F, 0x8FF0, 0xCAF6, 0x8FF1, 0xDE90, 0x8FF2, 0xDE91, + 0x8FF3, 0xE5C9, 0x8FF4, 0xDE92, 0x8FF5, 0xDE93, 0x8FF6, 0xDE94, 0x8FF7, 0xC3D4, 0x8FF8, 0xB1C5, 0x8FF9, 0xBCA3, 0x8FFA, 0xDE95, + 0x8FFB, 0xDE96, 0x8FFC, 0xDE97, 0x8FFD, 0xD7B7, 0x8FFE, 0xDE98, 0x8FFF, 0xDE99, 0x9000, 0xCDCB, 0x9001, 0xCBCD, 0x9002, 0xCACA, + 0x9003, 0xCCD3, 0x9004, 0xE5CC, 0x9005, 0xE5CB, 0x9006, 0xC4E6, 0x9007, 0xDE9A, 0x9008, 0xDE9B, 0x9009, 0xD1A1, 0x900A, 0xD1B7, + 0x900B, 0xE5CD, 0x900C, 0xDE9C, 0x900D, 0xE5D0, 0x900E, 0xDE9D, 0x900F, 0xCDB8, 0x9010, 0xD6F0, 0x9011, 0xE5CF, 0x9012, 0xB5DD, + 0x9013, 0xDE9E, 0x9014, 0xCDBE, 0x9015, 0xDE9F, 0x9016, 0xE5D1, 0x9017, 0xB6BA, 0x9018, 0xDEA0, 0x9019, 0xDF40, 0x901A, 0xCDA8, + 0x901B, 0xB9E4, 0x901C, 0xDF41, 0x901D, 0xCAC5, 0x901E, 0xB3D1, 0x901F, 0xCBD9, 0x9020, 0xD4EC, 0x9021, 0xE5D2, 0x9022, 0xB7EA, + 0x9023, 0xDF42, 0x9024, 0xDF43, 0x9025, 0xDF44, 0x9026, 0xE5CE, 0x9027, 0xDF45, 0x9028, 0xDF46, 0x9029, 0xDF47, 0x902A, 0xDF48, + 0x902B, 0xDF49, 0x902C, 0xDF4A, 0x902D, 0xE5D5, 0x902E, 0xB4FE, 0x902F, 0xE5D6, 0x9030, 0xDF4B, 0x9031, 0xDF4C, 0x9032, 0xDF4D, + 0x9033, 0xDF4E, 0x9034, 0xDF4F, 0x9035, 0xE5D3, 0x9036, 0xE5D4, 0x9037, 0xDF50, 0x9038, 0xD2DD, 0x9039, 0xDF51, 0x903A, 0xDF52, + 0x903B, 0xC2DF, 0x903C, 0xB1C6, 0x903D, 0xDF53, 0x903E, 0xD3E2, 0x903F, 0xDF54, 0x9040, 0xDF55, 0x9041, 0xB6DD, 0x9042, 0xCBEC, + 0x9043, 0xDF56, 0x9044, 0xE5D7, 0x9045, 0xDF57, 0x9046, 0xDF58, 0x9047, 0xD3F6, 0x9048, 0xDF59, 0x9049, 0xDF5A, 0x904A, 0xDF5B, + 0x904B, 0xDF5C, 0x904C, 0xDF5D, 0x904D, 0xB1E9, 0x904E, 0xDF5E, 0x904F, 0xB6F4, 0x9050, 0xE5DA, 0x9051, 0xE5D8, 0x9052, 0xE5D9, + 0x9053, 0xB5C0, 0x9054, 0xDF5F, 0x9055, 0xDF60, 0x9056, 0xDF61, 0x9057, 0xD2C5, 0x9058, 0xE5DC, 0x9059, 0xDF62, 0x905A, 0xDF63, + 0x905B, 0xE5DE, 0x905C, 0xDF64, 0x905D, 0xDF65, 0x905E, 0xDF66, 0x905F, 0xDF67, 0x9060, 0xDF68, 0x9061, 0xDF69, 0x9062, 0xE5DD, + 0x9063, 0xC7B2, 0x9064, 0xDF6A, 0x9065, 0xD2A3, 0x9066, 0xDF6B, 0x9067, 0xDF6C, 0x9068, 0xE5DB, 0x9069, 0xDF6D, 0x906A, 0xDF6E, + 0x906B, 0xDF6F, 0x906C, 0xDF70, 0x906D, 0xD4E2, 0x906E, 0xD5DA, 0x906F, 0xDF71, 0x9070, 0xDF72, 0x9071, 0xDF73, 0x9072, 0xDF74, + 0x9073, 0xDF75, 0x9074, 0xE5E0, 0x9075, 0xD7F1, 0x9076, 0xDF76, 0x9077, 0xDF77, 0x9078, 0xDF78, 0x9079, 0xDF79, 0x907A, 0xDF7A, + 0x907B, 0xDF7B, 0x907C, 0xDF7C, 0x907D, 0xE5E1, 0x907E, 0xDF7D, 0x907F, 0xB1DC, 0x9080, 0xD1FB, 0x9081, 0xDF7E, 0x9082, 0xE5E2, + 0x9083, 0xE5E4, 0x9084, 0xDF80, 0x9085, 0xDF81, 0x9086, 0xDF82, 0x9087, 0xDF83, 0x9088, 0xE5E3, 0x9089, 0xDF84, 0x908A, 0xDF85, + 0x908B, 0xE5E5, 0x908C, 0xDF86, 0x908D, 0xDF87, 0x908E, 0xDF88, 0x908F, 0xDF89, 0x9090, 0xDF8A, 0x9091, 0xD2D8, 0x9092, 0xDF8B, + 0x9093, 0xB5CB, 0x9094, 0xDF8C, 0x9095, 0xE7DF, 0x9096, 0xDF8D, 0x9097, 0xDAF5, 0x9098, 0xDF8E, 0x9099, 0xDAF8, 0x909A, 0xDF8F, + 0x909B, 0xDAF6, 0x909C, 0xDF90, 0x909D, 0xDAF7, 0x909E, 0xDF91, 0x909F, 0xDF92, 0x90A0, 0xDF93, 0x90A1, 0xDAFA, 0x90A2, 0xD0CF, + 0x90A3, 0xC4C7, 0x90A4, 0xDF94, 0x90A5, 0xDF95, 0x90A6, 0xB0EE, 0x90A7, 0xDF96, 0x90A8, 0xDF97, 0x90A9, 0xDF98, 0x90AA, 0xD0B0, + 0x90AB, 0xDF99, 0x90AC, 0xDAF9, 0x90AD, 0xDF9A, 0x90AE, 0xD3CA, 0x90AF, 0xBAAA, 0x90B0, 0xDBA2, 0x90B1, 0xC7F1, 0x90B2, 0xDF9B, + 0x90B3, 0xDAFC, 0x90B4, 0xDAFB, 0x90B5, 0xC9DB, 0x90B6, 0xDAFD, 0x90B7, 0xDF9C, 0x90B8, 0xDBA1, 0x90B9, 0xD7DE, 0x90BA, 0xDAFE, + 0x90BB, 0xC1DA, 0x90BC, 0xDF9D, 0x90BD, 0xDF9E, 0x90BE, 0xDBA5, 0x90BF, 0xDF9F, 0x90C0, 0xDFA0, 0x90C1, 0xD3F4, 0x90C2, 0xE040, + 0x90C3, 0xE041, 0x90C4, 0xDBA7, 0x90C5, 0xDBA4, 0x90C6, 0xE042, 0x90C7, 0xDBA8, 0x90C8, 0xE043, 0x90C9, 0xE044, 0x90CA, 0xBDBC, + 0x90CB, 0xE045, 0x90CC, 0xE046, 0x90CD, 0xE047, 0x90CE, 0xC0C9, 0x90CF, 0xDBA3, 0x90D0, 0xDBA6, 0x90D1, 0xD6A3, 0x90D2, 0xE048, + 0x90D3, 0xDBA9, 0x90D4, 0xE049, 0x90D5, 0xE04A, 0x90D6, 0xE04B, 0x90D7, 0xDBAD, 0x90D8, 0xE04C, 0x90D9, 0xE04D, 0x90DA, 0xE04E, + 0x90DB, 0xDBAE, 0x90DC, 0xDBAC, 0x90DD, 0xBAC2, 0x90DE, 0xE04F, 0x90DF, 0xE050, 0x90E0, 0xE051, 0x90E1, 0xBFA4, 0x90E2, 0xDBAB, + 0x90E3, 0xE052, 0x90E4, 0xE053, 0x90E5, 0xE054, 0x90E6, 0xDBAA, 0x90E7, 0xD4C7, 0x90E8, 0xB2BF, 0x90E9, 0xE055, 0x90EA, 0xE056, + 0x90EB, 0xDBAF, 0x90EC, 0xE057, 0x90ED, 0xB9F9, 0x90EE, 0xE058, 0x90EF, 0xDBB0, 0x90F0, 0xE059, 0x90F1, 0xE05A, 0x90F2, 0xE05B, + 0x90F3, 0xE05C, 0x90F4, 0xB3BB, 0x90F5, 0xE05D, 0x90F6, 0xE05E, 0x90F7, 0xE05F, 0x90F8, 0xB5A6, 0x90F9, 0xE060, 0x90FA, 0xE061, + 0x90FB, 0xE062, 0x90FC, 0xE063, 0x90FD, 0xB6BC, 0x90FE, 0xDBB1, 0x90FF, 0xE064, 0x9100, 0xE065, 0x9101, 0xE066, 0x9102, 0xB6F5, + 0x9103, 0xE067, 0x9104, 0xDBB2, 0x9105, 0xE068, 0x9106, 0xE069, 0x9107, 0xE06A, 0x9108, 0xE06B, 0x9109, 0xE06C, 0x910A, 0xE06D, + 0x910B, 0xE06E, 0x910C, 0xE06F, 0x910D, 0xE070, 0x910E, 0xE071, 0x910F, 0xE072, 0x9110, 0xE073, 0x9111, 0xE074, 0x9112, 0xE075, + 0x9113, 0xE076, 0x9114, 0xE077, 0x9115, 0xE078, 0x9116, 0xE079, 0x9117, 0xE07A, 0x9118, 0xE07B, 0x9119, 0xB1C9, 0x911A, 0xE07C, + 0x911B, 0xE07D, 0x911C, 0xE07E, 0x911D, 0xE080, 0x911E, 0xDBB4, 0x911F, 0xE081, 0x9120, 0xE082, 0x9121, 0xE083, 0x9122, 0xDBB3, + 0x9123, 0xDBB5, 0x9124, 0xE084, 0x9125, 0xE085, 0x9126, 0xE086, 0x9127, 0xE087, 0x9128, 0xE088, 0x9129, 0xE089, 0x912A, 0xE08A, + 0x912B, 0xE08B, 0x912C, 0xE08C, 0x912D, 0xE08D, 0x912E, 0xE08E, 0x912F, 0xDBB7, 0x9130, 0xE08F, 0x9131, 0xDBB6, 0x9132, 0xE090, + 0x9133, 0xE091, 0x9134, 0xE092, 0x9135, 0xE093, 0x9136, 0xE094, 0x9137, 0xE095, 0x9138, 0xE096, 0x9139, 0xDBB8, 0x913A, 0xE097, + 0x913B, 0xE098, 0x913C, 0xE099, 0x913D, 0xE09A, 0x913E, 0xE09B, 0x913F, 0xE09C, 0x9140, 0xE09D, 0x9141, 0xE09E, 0x9142, 0xE09F, + 0x9143, 0xDBB9, 0x9144, 0xE0A0, 0x9145, 0xE140, 0x9146, 0xDBBA, 0x9147, 0xE141, 0x9148, 0xE142, 0x9149, 0xD3CF, 0x914A, 0xF4FA, + 0x914B, 0xC7F5, 0x914C, 0xD7C3, 0x914D, 0xC5E4, 0x914E, 0xF4FC, 0x914F, 0xF4FD, 0x9150, 0xF4FB, 0x9151, 0xE143, 0x9152, 0xBEC6, + 0x9153, 0xE144, 0x9154, 0xE145, 0x9155, 0xE146, 0x9156, 0xE147, 0x9157, 0xD0EF, 0x9158, 0xE148, 0x9159, 0xE149, 0x915A, 0xB7D3, + 0x915B, 0xE14A, 0x915C, 0xE14B, 0x915D, 0xD4CD, 0x915E, 0xCCAA, 0x915F, 0xE14C, 0x9160, 0xE14D, 0x9161, 0xF5A2, 0x9162, 0xF5A1, + 0x9163, 0xBAA8, 0x9164, 0xF4FE, 0x9165, 0xCBD6, 0x9166, 0xE14E, 0x9167, 0xE14F, 0x9168, 0xE150, 0x9169, 0xF5A4, 0x916A, 0xC0D2, + 0x916B, 0xE151, 0x916C, 0xB3EA, 0x916D, 0xE152, 0x916E, 0xCDAA, 0x916F, 0xF5A5, 0x9170, 0xF5A3, 0x9171, 0xBDB4, 0x9172, 0xF5A8, + 0x9173, 0xE153, 0x9174, 0xF5A9, 0x9175, 0xBDCD, 0x9176, 0xC3B8, 0x9177, 0xBFE1, 0x9178, 0xCBE1, 0x9179, 0xF5AA, 0x917A, 0xE154, + 0x917B, 0xE155, 0x917C, 0xE156, 0x917D, 0xF5A6, 0x917E, 0xF5A7, 0x917F, 0xC4F0, 0x9180, 0xE157, 0x9181, 0xE158, 0x9182, 0xE159, + 0x9183, 0xE15A, 0x9184, 0xE15B, 0x9185, 0xF5AC, 0x9186, 0xE15C, 0x9187, 0xB4BC, 0x9188, 0xE15D, 0x9189, 0xD7ED, 0x918A, 0xE15E, + 0x918B, 0xB4D7, 0x918C, 0xF5AB, 0x918D, 0xF5AE, 0x918E, 0xE15F, 0x918F, 0xE160, 0x9190, 0xF5AD, 0x9191, 0xF5AF, 0x9192, 0xD0D1, + 0x9193, 0xE161, 0x9194, 0xE162, 0x9195, 0xE163, 0x9196, 0xE164, 0x9197, 0xE165, 0x9198, 0xE166, 0x9199, 0xE167, 0x919A, 0xC3D1, + 0x919B, 0xC8A9, 0x919C, 0xE168, 0x919D, 0xE169, 0x919E, 0xE16A, 0x919F, 0xE16B, 0x91A0, 0xE16C, 0x91A1, 0xE16D, 0x91A2, 0xF5B0, + 0x91A3, 0xF5B1, 0x91A4, 0xE16E, 0x91A5, 0xE16F, 0x91A6, 0xE170, 0x91A7, 0xE171, 0x91A8, 0xE172, 0x91A9, 0xE173, 0x91AA, 0xF5B2, + 0x91AB, 0xE174, 0x91AC, 0xE175, 0x91AD, 0xF5B3, 0x91AE, 0xF5B4, 0x91AF, 0xF5B5, 0x91B0, 0xE176, 0x91B1, 0xE177, 0x91B2, 0xE178, + 0x91B3, 0xE179, 0x91B4, 0xF5B7, 0x91B5, 0xF5B6, 0x91B6, 0xE17A, 0x91B7, 0xE17B, 0x91B8, 0xE17C, 0x91B9, 0xE17D, 0x91BA, 0xF5B8, + 0x91BB, 0xE17E, 0x91BC, 0xE180, 0x91BD, 0xE181, 0x91BE, 0xE182, 0x91BF, 0xE183, 0x91C0, 0xE184, 0x91C1, 0xE185, 0x91C2, 0xE186, + 0x91C3, 0xE187, 0x91C4, 0xE188, 0x91C5, 0xE189, 0x91C6, 0xE18A, 0x91C7, 0xB2C9, 0x91C8, 0xE18B, 0x91C9, 0xD3D4, 0x91CA, 0xCACD, + 0x91CB, 0xE18C, 0x91CC, 0xC0EF, 0x91CD, 0xD6D8, 0x91CE, 0xD2B0, 0x91CF, 0xC1BF, 0x91D0, 0xE18D, 0x91D1, 0xBDF0, 0x91D2, 0xE18E, + 0x91D3, 0xE18F, 0x91D4, 0xE190, 0x91D5, 0xE191, 0x91D6, 0xE192, 0x91D7, 0xE193, 0x91D8, 0xE194, 0x91D9, 0xE195, 0x91DA, 0xE196, + 0x91DB, 0xE197, 0x91DC, 0xB8AA, 0x91DD, 0xE198, 0x91DE, 0xE199, 0x91DF, 0xE19A, 0x91E0, 0xE19B, 0x91E1, 0xE19C, 0x91E2, 0xE19D, + 0x91E3, 0xE19E, 0x91E4, 0xE19F, 0x91E5, 0xE1A0, 0x91E6, 0xE240, 0x91E7, 0xE241, 0x91E8, 0xE242, 0x91E9, 0xE243, 0x91EA, 0xE244, + 0x91EB, 0xE245, 0x91EC, 0xE246, 0x91ED, 0xE247, 0x91EE, 0xE248, 0x91EF, 0xE249, 0x91F0, 0xE24A, 0x91F1, 0xE24B, 0x91F2, 0xE24C, + 0x91F3, 0xE24D, 0x91F4, 0xE24E, 0x91F5, 0xE24F, 0x91F6, 0xE250, 0x91F7, 0xE251, 0x91F8, 0xE252, 0x91F9, 0xE253, 0x91FA, 0xE254, + 0x91FB, 0xE255, 0x91FC, 0xE256, 0x91FD, 0xE257, 0x91FE, 0xE258, 0x91FF, 0xE259, 0x9200, 0xE25A, 0x9201, 0xE25B, 0x9202, 0xE25C, + 0x9203, 0xE25D, 0x9204, 0xE25E, 0x9205, 0xE25F, 0x9206, 0xE260, 0x9207, 0xE261, 0x9208, 0xE262, 0x9209, 0xE263, 0x920A, 0xE264, + 0x920B, 0xE265, 0x920C, 0xE266, 0x920D, 0xE267, 0x920E, 0xE268, 0x920F, 0xE269, 0x9210, 0xE26A, 0x9211, 0xE26B, 0x9212, 0xE26C, + 0x9213, 0xE26D, 0x9214, 0xE26E, 0x9215, 0xE26F, 0x9216, 0xE270, 0x9217, 0xE271, 0x9218, 0xE272, 0x9219, 0xE273, 0x921A, 0xE274, + 0x921B, 0xE275, 0x921C, 0xE276, 0x921D, 0xE277, 0x921E, 0xE278, 0x921F, 0xE279, 0x9220, 0xE27A, 0x9221, 0xE27B, 0x9222, 0xE27C, + 0x9223, 0xE27D, 0x9224, 0xE27E, 0x9225, 0xE280, 0x9226, 0xE281, 0x9227, 0xE282, 0x9228, 0xE283, 0x9229, 0xE284, 0x922A, 0xE285, + 0x922B, 0xE286, 0x922C, 0xE287, 0x922D, 0xE288, 0x922E, 0xE289, 0x922F, 0xE28A, 0x9230, 0xE28B, 0x9231, 0xE28C, 0x9232, 0xE28D, + 0x9233, 0xE28E, 0x9234, 0xE28F, 0x9235, 0xE290, 0x9236, 0xE291, 0x9237, 0xE292, 0x9238, 0xE293, 0x9239, 0xE294, 0x923A, 0xE295, + 0x923B, 0xE296, 0x923C, 0xE297, 0x923D, 0xE298, 0x923E, 0xE299, 0x923F, 0xE29A, 0x9240, 0xE29B, 0x9241, 0xE29C, 0x9242, 0xE29D, + 0x9243, 0xE29E, 0x9244, 0xE29F, 0x9245, 0xE2A0, 0x9246, 0xE340, 0x9247, 0xE341, 0x9248, 0xE342, 0x9249, 0xE343, 0x924A, 0xE344, + 0x924B, 0xE345, 0x924C, 0xE346, 0x924D, 0xE347, 0x924E, 0xE348, 0x924F, 0xE349, 0x9250, 0xE34A, 0x9251, 0xE34B, 0x9252, 0xE34C, + 0x9253, 0xE34D, 0x9254, 0xE34E, 0x9255, 0xE34F, 0x9256, 0xE350, 0x9257, 0xE351, 0x9258, 0xE352, 0x9259, 0xE353, 0x925A, 0xE354, + 0x925B, 0xE355, 0x925C, 0xE356, 0x925D, 0xE357, 0x925E, 0xE358, 0x925F, 0xE359, 0x9260, 0xE35A, 0x9261, 0xE35B, 0x9262, 0xE35C, + 0x9263, 0xE35D, 0x9264, 0xE35E, 0x9265, 0xE35F, 0x9266, 0xE360, 0x9267, 0xE361, 0x9268, 0xE362, 0x9269, 0xE363, 0x926A, 0xE364, + 0x926B, 0xE365, 0x926C, 0xE366, 0x926D, 0xE367, 0x926E, 0xE368, 0x926F, 0xE369, 0x9270, 0xE36A, 0x9271, 0xE36B, 0x9272, 0xE36C, + 0x9273, 0xE36D, 0x9274, 0xBCF8, 0x9275, 0xE36E, 0x9276, 0xE36F, 0x9277, 0xE370, 0x9278, 0xE371, 0x9279, 0xE372, 0x927A, 0xE373, + 0x927B, 0xE374, 0x927C, 0xE375, 0x927D, 0xE376, 0x927E, 0xE377, 0x927F, 0xE378, 0x9280, 0xE379, 0x9281, 0xE37A, 0x9282, 0xE37B, + 0x9283, 0xE37C, 0x9284, 0xE37D, 0x9285, 0xE37E, 0x9286, 0xE380, 0x9287, 0xE381, 0x9288, 0xE382, 0x9289, 0xE383, 0x928A, 0xE384, + 0x928B, 0xE385, 0x928C, 0xE386, 0x928D, 0xE387, 0x928E, 0xF6C6, 0x928F, 0xE388, 0x9290, 0xE389, 0x9291, 0xE38A, 0x9292, 0xE38B, + 0x9293, 0xE38C, 0x9294, 0xE38D, 0x9295, 0xE38E, 0x9296, 0xE38F, 0x9297, 0xE390, 0x9298, 0xE391, 0x9299, 0xE392, 0x929A, 0xE393, + 0x929B, 0xE394, 0x929C, 0xE395, 0x929D, 0xE396, 0x929E, 0xE397, 0x929F, 0xE398, 0x92A0, 0xE399, 0x92A1, 0xE39A, 0x92A2, 0xE39B, + 0x92A3, 0xE39C, 0x92A4, 0xE39D, 0x92A5, 0xE39E, 0x92A6, 0xE39F, 0x92A7, 0xE3A0, 0x92A8, 0xE440, 0x92A9, 0xE441, 0x92AA, 0xE442, + 0x92AB, 0xE443, 0x92AC, 0xE444, 0x92AD, 0xE445, 0x92AE, 0xF6C7, 0x92AF, 0xE446, 0x92B0, 0xE447, 0x92B1, 0xE448, 0x92B2, 0xE449, + 0x92B3, 0xE44A, 0x92B4, 0xE44B, 0x92B5, 0xE44C, 0x92B6, 0xE44D, 0x92B7, 0xE44E, 0x92B8, 0xE44F, 0x92B9, 0xE450, 0x92BA, 0xE451, + 0x92BB, 0xE452, 0x92BC, 0xE453, 0x92BD, 0xE454, 0x92BE, 0xE455, 0x92BF, 0xE456, 0x92C0, 0xE457, 0x92C1, 0xE458, 0x92C2, 0xE459, + 0x92C3, 0xE45A, 0x92C4, 0xE45B, 0x92C5, 0xE45C, 0x92C6, 0xE45D, 0x92C7, 0xE45E, 0x92C8, 0xF6C8, 0x92C9, 0xE45F, 0x92CA, 0xE460, + 0x92CB, 0xE461, 0x92CC, 0xE462, 0x92CD, 0xE463, 0x92CE, 0xE464, 0x92CF, 0xE465, 0x92D0, 0xE466, 0x92D1, 0xE467, 0x92D2, 0xE468, + 0x92D3, 0xE469, 0x92D4, 0xE46A, 0x92D5, 0xE46B, 0x92D6, 0xE46C, 0x92D7, 0xE46D, 0x92D8, 0xE46E, 0x92D9, 0xE46F, 0x92DA, 0xE470, + 0x92DB, 0xE471, 0x92DC, 0xE472, 0x92DD, 0xE473, 0x92DE, 0xE474, 0x92DF, 0xE475, 0x92E0, 0xE476, 0x92E1, 0xE477, 0x92E2, 0xE478, + 0x92E3, 0xE479, 0x92E4, 0xE47A, 0x92E5, 0xE47B, 0x92E6, 0xE47C, 0x92E7, 0xE47D, 0x92E8, 0xE47E, 0x92E9, 0xE480, 0x92EA, 0xE481, + 0x92EB, 0xE482, 0x92EC, 0xE483, 0x92ED, 0xE484, 0x92EE, 0xE485, 0x92EF, 0xE486, 0x92F0, 0xE487, 0x92F1, 0xE488, 0x92F2, 0xE489, + 0x92F3, 0xE48A, 0x92F4, 0xE48B, 0x92F5, 0xE48C, 0x92F6, 0xE48D, 0x92F7, 0xE48E, 0x92F8, 0xE48F, 0x92F9, 0xE490, 0x92FA, 0xE491, + 0x92FB, 0xE492, 0x92FC, 0xE493, 0x92FD, 0xE494, 0x92FE, 0xE495, 0x92FF, 0xE496, 0x9300, 0xE497, 0x9301, 0xE498, 0x9302, 0xE499, + 0x9303, 0xE49A, 0x9304, 0xE49B, 0x9305, 0xE49C, 0x9306, 0xE49D, 0x9307, 0xE49E, 0x9308, 0xE49F, 0x9309, 0xE4A0, 0x930A, 0xE540, + 0x930B, 0xE541, 0x930C, 0xE542, 0x930D, 0xE543, 0x930E, 0xE544, 0x930F, 0xE545, 0x9310, 0xE546, 0x9311, 0xE547, 0x9312, 0xE548, + 0x9313, 0xE549, 0x9314, 0xE54A, 0x9315, 0xE54B, 0x9316, 0xE54C, 0x9317, 0xE54D, 0x9318, 0xE54E, 0x9319, 0xE54F, 0x931A, 0xE550, + 0x931B, 0xE551, 0x931C, 0xE552, 0x931D, 0xE553, 0x931E, 0xE554, 0x931F, 0xE555, 0x9320, 0xE556, 0x9321, 0xE557, 0x9322, 0xE558, + 0x9323, 0xE559, 0x9324, 0xE55A, 0x9325, 0xE55B, 0x9326, 0xE55C, 0x9327, 0xE55D, 0x9328, 0xE55E, 0x9329, 0xE55F, 0x932A, 0xE560, + 0x932B, 0xE561, 0x932C, 0xE562, 0x932D, 0xE563, 0x932E, 0xE564, 0x932F, 0xE565, 0x9330, 0xE566, 0x9331, 0xE567, 0x9332, 0xE568, + 0x9333, 0xE569, 0x9334, 0xE56A, 0x9335, 0xE56B, 0x9336, 0xE56C, 0x9337, 0xE56D, 0x9338, 0xE56E, 0x9339, 0xE56F, 0x933A, 0xE570, + 0x933B, 0xE571, 0x933C, 0xE572, 0x933D, 0xE573, 0x933E, 0xF6C9, 0x933F, 0xE574, 0x9340, 0xE575, 0x9341, 0xE576, 0x9342, 0xE577, + 0x9343, 0xE578, 0x9344, 0xE579, 0x9345, 0xE57A, 0x9346, 0xE57B, 0x9347, 0xE57C, 0x9348, 0xE57D, 0x9349, 0xE57E, 0x934A, 0xE580, + 0x934B, 0xE581, 0x934C, 0xE582, 0x934D, 0xE583, 0x934E, 0xE584, 0x934F, 0xE585, 0x9350, 0xE586, 0x9351, 0xE587, 0x9352, 0xE588, + 0x9353, 0xE589, 0x9354, 0xE58A, 0x9355, 0xE58B, 0x9356, 0xE58C, 0x9357, 0xE58D, 0x9358, 0xE58E, 0x9359, 0xE58F, 0x935A, 0xE590, + 0x935B, 0xE591, 0x935C, 0xE592, 0x935D, 0xE593, 0x935E, 0xE594, 0x935F, 0xE595, 0x9360, 0xE596, 0x9361, 0xE597, 0x9362, 0xE598, + 0x9363, 0xE599, 0x9364, 0xE59A, 0x9365, 0xE59B, 0x9366, 0xE59C, 0x9367, 0xE59D, 0x9368, 0xE59E, 0x9369, 0xE59F, 0x936A, 0xF6CA, + 0x936B, 0xE5A0, 0x936C, 0xE640, 0x936D, 0xE641, 0x936E, 0xE642, 0x936F, 0xE643, 0x9370, 0xE644, 0x9371, 0xE645, 0x9372, 0xE646, + 0x9373, 0xE647, 0x9374, 0xE648, 0x9375, 0xE649, 0x9376, 0xE64A, 0x9377, 0xE64B, 0x9378, 0xE64C, 0x9379, 0xE64D, 0x937A, 0xE64E, + 0x937B, 0xE64F, 0x937C, 0xE650, 0x937D, 0xE651, 0x937E, 0xE652, 0x937F, 0xE653, 0x9380, 0xE654, 0x9381, 0xE655, 0x9382, 0xE656, + 0x9383, 0xE657, 0x9384, 0xE658, 0x9385, 0xE659, 0x9386, 0xE65A, 0x9387, 0xE65B, 0x9388, 0xE65C, 0x9389, 0xE65D, 0x938A, 0xE65E, + 0x938B, 0xE65F, 0x938C, 0xE660, 0x938D, 0xE661, 0x938E, 0xE662, 0x938F, 0xF6CC, 0x9390, 0xE663, 0x9391, 0xE664, 0x9392, 0xE665, + 0x9393, 0xE666, 0x9394, 0xE667, 0x9395, 0xE668, 0x9396, 0xE669, 0x9397, 0xE66A, 0x9398, 0xE66B, 0x9399, 0xE66C, 0x939A, 0xE66D, + 0x939B, 0xE66E, 0x939C, 0xE66F, 0x939D, 0xE670, 0x939E, 0xE671, 0x939F, 0xE672, 0x93A0, 0xE673, 0x93A1, 0xE674, 0x93A2, 0xE675, + 0x93A3, 0xE676, 0x93A4, 0xE677, 0x93A5, 0xE678, 0x93A6, 0xE679, 0x93A7, 0xE67A, 0x93A8, 0xE67B, 0x93A9, 0xE67C, 0x93AA, 0xE67D, + 0x93AB, 0xE67E, 0x93AC, 0xE680, 0x93AD, 0xE681, 0x93AE, 0xE682, 0x93AF, 0xE683, 0x93B0, 0xE684, 0x93B1, 0xE685, 0x93B2, 0xE686, + 0x93B3, 0xE687, 0x93B4, 0xE688, 0x93B5, 0xE689, 0x93B6, 0xE68A, 0x93B7, 0xE68B, 0x93B8, 0xE68C, 0x93B9, 0xE68D, 0x93BA, 0xE68E, + 0x93BB, 0xE68F, 0x93BC, 0xE690, 0x93BD, 0xE691, 0x93BE, 0xE692, 0x93BF, 0xE693, 0x93C0, 0xE694, 0x93C1, 0xE695, 0x93C2, 0xE696, + 0x93C3, 0xE697, 0x93C4, 0xE698, 0x93C5, 0xE699, 0x93C6, 0xE69A, 0x93C7, 0xE69B, 0x93C8, 0xE69C, 0x93C9, 0xE69D, 0x93CA, 0xF6CB, + 0x93CB, 0xE69E, 0x93CC, 0xE69F, 0x93CD, 0xE6A0, 0x93CE, 0xE740, 0x93CF, 0xE741, 0x93D0, 0xE742, 0x93D1, 0xE743, 0x93D2, 0xE744, + 0x93D3, 0xE745, 0x93D4, 0xE746, 0x93D5, 0xE747, 0x93D6, 0xF7E9, 0x93D7, 0xE748, 0x93D8, 0xE749, 0x93D9, 0xE74A, 0x93DA, 0xE74B, + 0x93DB, 0xE74C, 0x93DC, 0xE74D, 0x93DD, 0xE74E, 0x93DE, 0xE74F, 0x93DF, 0xE750, 0x93E0, 0xE751, 0x93E1, 0xE752, 0x93E2, 0xE753, + 0x93E3, 0xE754, 0x93E4, 0xE755, 0x93E5, 0xE756, 0x93E6, 0xE757, 0x93E7, 0xE758, 0x93E8, 0xE759, 0x93E9, 0xE75A, 0x93EA, 0xE75B, + 0x93EB, 0xE75C, 0x93EC, 0xE75D, 0x93ED, 0xE75E, 0x93EE, 0xE75F, 0x93EF, 0xE760, 0x93F0, 0xE761, 0x93F1, 0xE762, 0x93F2, 0xE763, + 0x93F3, 0xE764, 0x93F4, 0xE765, 0x93F5, 0xE766, 0x93F6, 0xE767, 0x93F7, 0xE768, 0x93F8, 0xE769, 0x93F9, 0xE76A, 0x93FA, 0xE76B, + 0x93FB, 0xE76C, 0x93FC, 0xE76D, 0x93FD, 0xE76E, 0x93FE, 0xE76F, 0x93FF, 0xE770, 0x9400, 0xE771, 0x9401, 0xE772, 0x9402, 0xE773, + 0x9403, 0xE774, 0x9404, 0xE775, 0x9405, 0xE776, 0x9406, 0xE777, 0x9407, 0xE778, 0x9408, 0xE779, 0x9409, 0xE77A, 0x940A, 0xE77B, + 0x940B, 0xE77C, 0x940C, 0xE77D, 0x940D, 0xE77E, 0x940E, 0xE780, 0x940F, 0xE781, 0x9410, 0xE782, 0x9411, 0xE783, 0x9412, 0xE784, + 0x9413, 0xE785, 0x9414, 0xE786, 0x9415, 0xE787, 0x9416, 0xE788, 0x9417, 0xE789, 0x9418, 0xE78A, 0x9419, 0xE78B, 0x941A, 0xE78C, + 0x941B, 0xE78D, 0x941C, 0xE78E, 0x941D, 0xE78F, 0x941E, 0xE790, 0x941F, 0xE791, 0x9420, 0xE792, 0x9421, 0xE793, 0x9422, 0xE794, + 0x9423, 0xE795, 0x9424, 0xE796, 0x9425, 0xE797, 0x9426, 0xE798, 0x9427, 0xE799, 0x9428, 0xE79A, 0x9429, 0xE79B, 0x942A, 0xE79C, + 0x942B, 0xE79D, 0x942C, 0xE79E, 0x942D, 0xE79F, 0x942E, 0xE7A0, 0x942F, 0xE840, 0x9430, 0xE841, 0x9431, 0xE842, 0x9432, 0xE843, + 0x9433, 0xE844, 0x9434, 0xE845, 0x9435, 0xE846, 0x9436, 0xE847, 0x9437, 0xE848, 0x9438, 0xE849, 0x9439, 0xE84A, 0x943A, 0xE84B, + 0x943B, 0xE84C, 0x943C, 0xE84D, 0x943D, 0xE84E, 0x943E, 0xF6CD, 0x943F, 0xE84F, 0x9440, 0xE850, 0x9441, 0xE851, 0x9442, 0xE852, + 0x9443, 0xE853, 0x9444, 0xE854, 0x9445, 0xE855, 0x9446, 0xE856, 0x9447, 0xE857, 0x9448, 0xE858, 0x9449, 0xE859, 0x944A, 0xE85A, + 0x944B, 0xE85B, 0x944C, 0xE85C, 0x944D, 0xE85D, 0x944E, 0xE85E, 0x944F, 0xE85F, 0x9450, 0xE860, 0x9451, 0xE861, 0x9452, 0xE862, + 0x9453, 0xE863, 0x9454, 0xE864, 0x9455, 0xE865, 0x9456, 0xE866, 0x9457, 0xE867, 0x9458, 0xE868, 0x9459, 0xE869, 0x945A, 0xE86A, + 0x945B, 0xE86B, 0x945C, 0xE86C, 0x945D, 0xE86D, 0x945E, 0xE86E, 0x945F, 0xE86F, 0x9460, 0xE870, 0x9461, 0xE871, 0x9462, 0xE872, + 0x9463, 0xE873, 0x9464, 0xE874, 0x9465, 0xE875, 0x9466, 0xE876, 0x9467, 0xE877, 0x9468, 0xE878, 0x9469, 0xE879, 0x946A, 0xE87A, + 0x946B, 0xF6CE, 0x946C, 0xE87B, 0x946D, 0xE87C, 0x946E, 0xE87D, 0x946F, 0xE87E, 0x9470, 0xE880, 0x9471, 0xE881, 0x9472, 0xE882, + 0x9473, 0xE883, 0x9474, 0xE884, 0x9475, 0xE885, 0x9476, 0xE886, 0x9477, 0xE887, 0x9478, 0xE888, 0x9479, 0xE889, 0x947A, 0xE88A, + 0x947B, 0xE88B, 0x947C, 0xE88C, 0x947D, 0xE88D, 0x947E, 0xE88E, 0x947F, 0xE88F, 0x9480, 0xE890, 0x9481, 0xE891, 0x9482, 0xE892, + 0x9483, 0xE893, 0x9484, 0xE894, 0x9485, 0xEEC4, 0x9486, 0xEEC5, 0x9487, 0xEEC6, 0x9488, 0xD5EB, 0x9489, 0xB6A4, 0x948A, 0xEEC8, + 0x948B, 0xEEC7, 0x948C, 0xEEC9, 0x948D, 0xEECA, 0x948E, 0xC7A5, 0x948F, 0xEECB, 0x9490, 0xEECC, 0x9491, 0xE895, 0x9492, 0xB7B0, + 0x9493, 0xB5F6, 0x9494, 0xEECD, 0x9495, 0xEECF, 0x9496, 0xE896, 0x9497, 0xEECE, 0x9498, 0xE897, 0x9499, 0xB8C6, 0x949A, 0xEED0, + 0x949B, 0xEED1, 0x949C, 0xEED2, 0x949D, 0xB6DB, 0x949E, 0xB3AE, 0x949F, 0xD6D3, 0x94A0, 0xC4C6, 0x94A1, 0xB1B5, 0x94A2, 0xB8D6, + 0x94A3, 0xEED3, 0x94A4, 0xEED4, 0x94A5, 0xD4BF, 0x94A6, 0xC7D5, 0x94A7, 0xBEFB, 0x94A8, 0xCED9, 0x94A9, 0xB9B3, 0x94AA, 0xEED6, + 0x94AB, 0xEED5, 0x94AC, 0xEED8, 0x94AD, 0xEED7, 0x94AE, 0xC5A5, 0x94AF, 0xEED9, 0x94B0, 0xEEDA, 0x94B1, 0xC7AE, 0x94B2, 0xEEDB, + 0x94B3, 0xC7AF, 0x94B4, 0xEEDC, 0x94B5, 0xB2A7, 0x94B6, 0xEEDD, 0x94B7, 0xEEDE, 0x94B8, 0xEEDF, 0x94B9, 0xEEE0, 0x94BA, 0xEEE1, + 0x94BB, 0xD7EA, 0x94BC, 0xEEE2, 0x94BD, 0xEEE3, 0x94BE, 0xBCD8, 0x94BF, 0xEEE4, 0x94C0, 0xD3CB, 0x94C1, 0xCCFA, 0x94C2, 0xB2AC, + 0x94C3, 0xC1E5, 0x94C4, 0xEEE5, 0x94C5, 0xC7A6, 0x94C6, 0xC3AD, 0x94C7, 0xE898, 0x94C8, 0xEEE6, 0x94C9, 0xEEE7, 0x94CA, 0xEEE8, + 0x94CB, 0xEEE9, 0x94CC, 0xEEEA, 0x94CD, 0xEEEB, 0x94CE, 0xEEEC, 0x94CF, 0xE899, 0x94D0, 0xEEED, 0x94D1, 0xEEEE, 0x94D2, 0xEEEF, + 0x94D3, 0xE89A, 0x94D4, 0xE89B, 0x94D5, 0xEEF0, 0x94D6, 0xEEF1, 0x94D7, 0xEEF2, 0x94D8, 0xEEF4, 0x94D9, 0xEEF3, 0x94DA, 0xE89C, + 0x94DB, 0xEEF5, 0x94DC, 0xCDAD, 0x94DD, 0xC2C1, 0x94DE, 0xEEF6, 0x94DF, 0xEEF7, 0x94E0, 0xEEF8, 0x94E1, 0xD5A1, 0x94E2, 0xEEF9, + 0x94E3, 0xCFB3, 0x94E4, 0xEEFA, 0x94E5, 0xEEFB, 0x94E6, 0xE89D, 0x94E7, 0xEEFC, 0x94E8, 0xEEFD, 0x94E9, 0xEFA1, 0x94EA, 0xEEFE, + 0x94EB, 0xEFA2, 0x94EC, 0xB8F5, 0x94ED, 0xC3FA, 0x94EE, 0xEFA3, 0x94EF, 0xEFA4, 0x94F0, 0xBDC2, 0x94F1, 0xD2BF, 0x94F2, 0xB2F9, + 0x94F3, 0xEFA5, 0x94F4, 0xEFA6, 0x94F5, 0xEFA7, 0x94F6, 0xD2F8, 0x94F7, 0xEFA8, 0x94F8, 0xD6FD, 0x94F9, 0xEFA9, 0x94FA, 0xC6CC, + 0x94FB, 0xE89E, 0x94FC, 0xEFAA, 0x94FD, 0xEFAB, 0x94FE, 0xC1B4, 0x94FF, 0xEFAC, 0x9500, 0xCFFA, 0x9501, 0xCBF8, 0x9502, 0xEFAE, + 0x9503, 0xEFAD, 0x9504, 0xB3FA, 0x9505, 0xB9F8, 0x9506, 0xEFAF, 0x9507, 0xEFB0, 0x9508, 0xD0E2, 0x9509, 0xEFB1, 0x950A, 0xEFB2, + 0x950B, 0xB7E6, 0x950C, 0xD0BF, 0x950D, 0xEFB3, 0x950E, 0xEFB4, 0x950F, 0xEFB5, 0x9510, 0xC8F1, 0x9511, 0xCCE0, 0x9512, 0xEFB6, + 0x9513, 0xEFB7, 0x9514, 0xEFB8, 0x9515, 0xEFB9, 0x9516, 0xEFBA, 0x9517, 0xD5E0, 0x9518, 0xEFBB, 0x9519, 0xB4ED, 0x951A, 0xC3AA, + 0x951B, 0xEFBC, 0x951C, 0xE89F, 0x951D, 0xEFBD, 0x951E, 0xEFBE, 0x951F, 0xEFBF, 0x9520, 0xE8A0, 0x9521, 0xCEFD, 0x9522, 0xEFC0, + 0x9523, 0xC2E0, 0x9524, 0xB4B8, 0x9525, 0xD7B6, 0x9526, 0xBDF5, 0x9527, 0xE940, 0x9528, 0xCFC7, 0x9529, 0xEFC3, 0x952A, 0xEFC1, + 0x952B, 0xEFC2, 0x952C, 0xEFC4, 0x952D, 0xB6A7, 0x952E, 0xBCFC, 0x952F, 0xBEE2, 0x9530, 0xC3CC, 0x9531, 0xEFC5, 0x9532, 0xEFC6, + 0x9533, 0xE941, 0x9534, 0xEFC7, 0x9535, 0xEFCF, 0x9536, 0xEFC8, 0x9537, 0xEFC9, 0x9538, 0xEFCA, 0x9539, 0xC7C2, 0x953A, 0xEFF1, + 0x953B, 0xB6CD, 0x953C, 0xEFCB, 0x953D, 0xE942, 0x953E, 0xEFCC, 0x953F, 0xEFCD, 0x9540, 0xB6C6, 0x9541, 0xC3BE, 0x9542, 0xEFCE, + 0x9543, 0xE943, 0x9544, 0xEFD0, 0x9545, 0xEFD1, 0x9546, 0xEFD2, 0x9547, 0xD5F2, 0x9548, 0xE944, 0x9549, 0xEFD3, 0x954A, 0xC4F7, + 0x954B, 0xE945, 0x954C, 0xEFD4, 0x954D, 0xC4F8, 0x954E, 0xEFD5, 0x954F, 0xEFD6, 0x9550, 0xB8E4, 0x9551, 0xB0F7, 0x9552, 0xEFD7, + 0x9553, 0xEFD8, 0x9554, 0xEFD9, 0x9555, 0xE946, 0x9556, 0xEFDA, 0x9557, 0xEFDB, 0x9558, 0xEFDC, 0x9559, 0xEFDD, 0x955A, 0xE947, + 0x955B, 0xEFDE, 0x955C, 0xBEB5, 0x955D, 0xEFE1, 0x955E, 0xEFDF, 0x955F, 0xEFE0, 0x9560, 0xE948, 0x9561, 0xEFE2, 0x9562, 0xEFE3, + 0x9563, 0xC1CD, 0x9564, 0xEFE4, 0x9565, 0xEFE5, 0x9566, 0xEFE6, 0x9567, 0xEFE7, 0x9568, 0xEFE8, 0x9569, 0xEFE9, 0x956A, 0xEFEA, + 0x956B, 0xEFEB, 0x956C, 0xEFEC, 0x956D, 0xC0D8, 0x956E, 0xE949, 0x956F, 0xEFED, 0x9570, 0xC1AD, 0x9571, 0xEFEE, 0x9572, 0xEFEF, + 0x9573, 0xEFF0, 0x9574, 0xE94A, 0x9575, 0xE94B, 0x9576, 0xCFE2, 0x9577, 0xE94C, 0x9578, 0xE94D, 0x9579, 0xE94E, 0x957A, 0xE94F, + 0x957B, 0xE950, 0x957C, 0xE951, 0x957D, 0xE952, 0x957E, 0xE953, 0x957F, 0xB3A4, 0x9580, 0xE954, 0x9581, 0xE955, 0x9582, 0xE956, + 0x9583, 0xE957, 0x9584, 0xE958, 0x9585, 0xE959, 0x9586, 0xE95A, 0x9587, 0xE95B, 0x9588, 0xE95C, 0x9589, 0xE95D, 0x958A, 0xE95E, + 0x958B, 0xE95F, 0x958C, 0xE960, 0x958D, 0xE961, 0x958E, 0xE962, 0x958F, 0xE963, 0x9590, 0xE964, 0x9591, 0xE965, 0x9592, 0xE966, + 0x9593, 0xE967, 0x9594, 0xE968, 0x9595, 0xE969, 0x9596, 0xE96A, 0x9597, 0xE96B, 0x9598, 0xE96C, 0x9599, 0xE96D, 0x959A, 0xE96E, + 0x959B, 0xE96F, 0x959C, 0xE970, 0x959D, 0xE971, 0x959E, 0xE972, 0x959F, 0xE973, 0x95A0, 0xE974, 0x95A1, 0xE975, 0x95A2, 0xE976, + 0x95A3, 0xE977, 0x95A4, 0xE978, 0x95A5, 0xE979, 0x95A6, 0xE97A, 0x95A7, 0xE97B, 0x95A8, 0xE97C, 0x95A9, 0xE97D, 0x95AA, 0xE97E, + 0x95AB, 0xE980, 0x95AC, 0xE981, 0x95AD, 0xE982, 0x95AE, 0xE983, 0x95AF, 0xE984, 0x95B0, 0xE985, 0x95B1, 0xE986, 0x95B2, 0xE987, + 0x95B3, 0xE988, 0x95B4, 0xE989, 0x95B5, 0xE98A, 0x95B6, 0xE98B, 0x95B7, 0xE98C, 0x95B8, 0xE98D, 0x95B9, 0xE98E, 0x95BA, 0xE98F, + 0x95BB, 0xE990, 0x95BC, 0xE991, 0x95BD, 0xE992, 0x95BE, 0xE993, 0x95BF, 0xE994, 0x95C0, 0xE995, 0x95C1, 0xE996, 0x95C2, 0xE997, + 0x95C3, 0xE998, 0x95C4, 0xE999, 0x95C5, 0xE99A, 0x95C6, 0xE99B, 0x95C7, 0xE99C, 0x95C8, 0xE99D, 0x95C9, 0xE99E, 0x95CA, 0xE99F, + 0x95CB, 0xE9A0, 0x95CC, 0xEA40, 0x95CD, 0xEA41, 0x95CE, 0xEA42, 0x95CF, 0xEA43, 0x95D0, 0xEA44, 0x95D1, 0xEA45, 0x95D2, 0xEA46, + 0x95D3, 0xEA47, 0x95D4, 0xEA48, 0x95D5, 0xEA49, 0x95D6, 0xEA4A, 0x95D7, 0xEA4B, 0x95D8, 0xEA4C, 0x95D9, 0xEA4D, 0x95DA, 0xEA4E, + 0x95DB, 0xEA4F, 0x95DC, 0xEA50, 0x95DD, 0xEA51, 0x95DE, 0xEA52, 0x95DF, 0xEA53, 0x95E0, 0xEA54, 0x95E1, 0xEA55, 0x95E2, 0xEA56, + 0x95E3, 0xEA57, 0x95E4, 0xEA58, 0x95E5, 0xEA59, 0x95E6, 0xEA5A, 0x95E7, 0xEA5B, 0x95E8, 0xC3C5, 0x95E9, 0xE3C5, 0x95EA, 0xC9C1, + 0x95EB, 0xE3C6, 0x95EC, 0xEA5C, 0x95ED, 0xB1D5, 0x95EE, 0xCECA, 0x95EF, 0xB4B3, 0x95F0, 0xC8F2, 0x95F1, 0xE3C7, 0x95F2, 0xCFD0, + 0x95F3, 0xE3C8, 0x95F4, 0xBCE4, 0x95F5, 0xE3C9, 0x95F6, 0xE3CA, 0x95F7, 0xC3C6, 0x95F8, 0xD5A2, 0x95F9, 0xC4D6, 0x95FA, 0xB9EB, + 0x95FB, 0xCEC5, 0x95FC, 0xE3CB, 0x95FD, 0xC3F6, 0x95FE, 0xE3CC, 0x95FF, 0xEA5D, 0x9600, 0xB7A7, 0x9601, 0xB8F3, 0x9602, 0xBAD2, + 0x9603, 0xE3CD, 0x9604, 0xE3CE, 0x9605, 0xD4C4, 0x9606, 0xE3CF, 0x9607, 0xEA5E, 0x9608, 0xE3D0, 0x9609, 0xD1CB, 0x960A, 0xE3D1, + 0x960B, 0xE3D2, 0x960C, 0xE3D3, 0x960D, 0xE3D4, 0x960E, 0xD1D6, 0x960F, 0xE3D5, 0x9610, 0xB2FB, 0x9611, 0xC0BB, 0x9612, 0xE3D6, + 0x9613, 0xEA5F, 0x9614, 0xC0AB, 0x9615, 0xE3D7, 0x9616, 0xE3D8, 0x9617, 0xE3D9, 0x9618, 0xEA60, 0x9619, 0xE3DA, 0x961A, 0xE3DB, + 0x961B, 0xEA61, 0x961C, 0xB8B7, 0x961D, 0xDAE2, 0x961E, 0xEA62, 0x961F, 0xB6D3, 0x9620, 0xEA63, 0x9621, 0xDAE4, 0x9622, 0xDAE3, + 0x9623, 0xEA64, 0x9624, 0xEA65, 0x9625, 0xEA66, 0x9626, 0xEA67, 0x9627, 0xEA68, 0x9628, 0xEA69, 0x9629, 0xEA6A, 0x962A, 0xDAE6, + 0x962B, 0xEA6B, 0x962C, 0xEA6C, 0x962D, 0xEA6D, 0x962E, 0xC8EE, 0x962F, 0xEA6E, 0x9630, 0xEA6F, 0x9631, 0xDAE5, 0x9632, 0xB7C0, + 0x9633, 0xD1F4, 0x9634, 0xD2F5, 0x9635, 0xD5F3, 0x9636, 0xBDD7, 0x9637, 0xEA70, 0x9638, 0xEA71, 0x9639, 0xEA72, 0x963A, 0xEA73, + 0x963B, 0xD7E8, 0x963C, 0xDAE8, 0x963D, 0xDAE7, 0x963E, 0xEA74, 0x963F, 0xB0A2, 0x9640, 0xCDD3, 0x9641, 0xEA75, 0x9642, 0xDAE9, + 0x9643, 0xEA76, 0x9644, 0xB8BD, 0x9645, 0xBCCA, 0x9646, 0xC2BD, 0x9647, 0xC2A4, 0x9648, 0xB3C2, 0x9649, 0xDAEA, 0x964A, 0xEA77, + 0x964B, 0xC2AA, 0x964C, 0xC4B0, 0x964D, 0xBDB5, 0x964E, 0xEA78, 0x964F, 0xEA79, 0x9650, 0xCFDE, 0x9651, 0xEA7A, 0x9652, 0xEA7B, + 0x9653, 0xEA7C, 0x9654, 0xDAEB, 0x9655, 0xC9C2, 0x9656, 0xEA7D, 0x9657, 0xEA7E, 0x9658, 0xEA80, 0x9659, 0xEA81, 0x965A, 0xEA82, + 0x965B, 0xB1DD, 0x965C, 0xEA83, 0x965D, 0xEA84, 0x965E, 0xEA85, 0x965F, 0xDAEC, 0x9660, 0xEA86, 0x9661, 0xB6B8, 0x9662, 0xD4BA, + 0x9663, 0xEA87, 0x9664, 0xB3FD, 0x9665, 0xEA88, 0x9666, 0xEA89, 0x9667, 0xDAED, 0x9668, 0xD4C9, 0x9669, 0xCFD5, 0x966A, 0xC5E3, + 0x966B, 0xEA8A, 0x966C, 0xDAEE, 0x966D, 0xEA8B, 0x966E, 0xEA8C, 0x966F, 0xEA8D, 0x9670, 0xEA8E, 0x9671, 0xEA8F, 0x9672, 0xDAEF, + 0x9673, 0xEA90, 0x9674, 0xDAF0, 0x9675, 0xC1EA, 0x9676, 0xCCD5, 0x9677, 0xCFDD, 0x9678, 0xEA91, 0x9679, 0xEA92, 0x967A, 0xEA93, + 0x967B, 0xEA94, 0x967C, 0xEA95, 0x967D, 0xEA96, 0x967E, 0xEA97, 0x967F, 0xEA98, 0x9680, 0xEA99, 0x9681, 0xEA9A, 0x9682, 0xEA9B, + 0x9683, 0xEA9C, 0x9684, 0xEA9D, 0x9685, 0xD3E7, 0x9686, 0xC2A1, 0x9687, 0xEA9E, 0x9688, 0xDAF1, 0x9689, 0xEA9F, 0x968A, 0xEAA0, + 0x968B, 0xCBE5, 0x968C, 0xEB40, 0x968D, 0xDAF2, 0x968E, 0xEB41, 0x968F, 0xCBE6, 0x9690, 0xD2FE, 0x9691, 0xEB42, 0x9692, 0xEB43, + 0x9693, 0xEB44, 0x9694, 0xB8F4, 0x9695, 0xEB45, 0x9696, 0xEB46, 0x9697, 0xDAF3, 0x9698, 0xB0AF, 0x9699, 0xCFB6, 0x969A, 0xEB47, + 0x969B, 0xEB48, 0x969C, 0xD5CF, 0x969D, 0xEB49, 0x969E, 0xEB4A, 0x969F, 0xEB4B, 0x96A0, 0xEB4C, 0x96A1, 0xEB4D, 0x96A2, 0xEB4E, + 0x96A3, 0xEB4F, 0x96A4, 0xEB50, 0x96A5, 0xEB51, 0x96A6, 0xEB52, 0x96A7, 0xCBED, 0x96A8, 0xEB53, 0x96A9, 0xEB54, 0x96AA, 0xEB55, + 0x96AB, 0xEB56, 0x96AC, 0xEB57, 0x96AD, 0xEB58, 0x96AE, 0xEB59, 0x96AF, 0xEB5A, 0x96B0, 0xDAF4, 0x96B1, 0xEB5B, 0x96B2, 0xEB5C, + 0x96B3, 0xE3C4, 0x96B4, 0xEB5D, 0x96B5, 0xEB5E, 0x96B6, 0xC1A5, 0x96B7, 0xEB5F, 0x96B8, 0xEB60, 0x96B9, 0xF6BF, 0x96BA, 0xEB61, + 0x96BB, 0xEB62, 0x96BC, 0xF6C0, 0x96BD, 0xF6C1, 0x96BE, 0xC4D1, 0x96BF, 0xEB63, 0x96C0, 0xC8B8, 0x96C1, 0xD1E3, 0x96C2, 0xEB64, + 0x96C3, 0xEB65, 0x96C4, 0xD0DB, 0x96C5, 0xD1C5, 0x96C6, 0xBCAF, 0x96C7, 0xB9CD, 0x96C8, 0xEB66, 0x96C9, 0xEFF4, 0x96CA, 0xEB67, + 0x96CB, 0xEB68, 0x96CC, 0xB4C6, 0x96CD, 0xD3BA, 0x96CE, 0xF6C2, 0x96CF, 0xB3FB, 0x96D0, 0xEB69, 0x96D1, 0xEB6A, 0x96D2, 0xF6C3, + 0x96D3, 0xEB6B, 0x96D4, 0xEB6C, 0x96D5, 0xB5F1, 0x96D6, 0xEB6D, 0x96D7, 0xEB6E, 0x96D8, 0xEB6F, 0x96D9, 0xEB70, 0x96DA, 0xEB71, + 0x96DB, 0xEB72, 0x96DC, 0xEB73, 0x96DD, 0xEB74, 0x96DE, 0xEB75, 0x96DF, 0xEB76, 0x96E0, 0xF6C5, 0x96E1, 0xEB77, 0x96E2, 0xEB78, + 0x96E3, 0xEB79, 0x96E4, 0xEB7A, 0x96E5, 0xEB7B, 0x96E6, 0xEB7C, 0x96E7, 0xEB7D, 0x96E8, 0xD3EA, 0x96E9, 0xF6A7, 0x96EA, 0xD1A9, + 0x96EB, 0xEB7E, 0x96EC, 0xEB80, 0x96ED, 0xEB81, 0x96EE, 0xEB82, 0x96EF, 0xF6A9, 0x96F0, 0xEB83, 0x96F1, 0xEB84, 0x96F2, 0xEB85, + 0x96F3, 0xF6A8, 0x96F4, 0xEB86, 0x96F5, 0xEB87, 0x96F6, 0xC1E3, 0x96F7, 0xC0D7, 0x96F8, 0xEB88, 0x96F9, 0xB1A2, 0x96FA, 0xEB89, + 0x96FB, 0xEB8A, 0x96FC, 0xEB8B, 0x96FD, 0xEB8C, 0x96FE, 0xCEED, 0x96FF, 0xEB8D, 0x9700, 0xD0E8, 0x9701, 0xF6AB, 0x9702, 0xEB8E, + 0x9703, 0xEB8F, 0x9704, 0xCFF6, 0x9705, 0xEB90, 0x9706, 0xF6AA, 0x9707, 0xD5F0, 0x9708, 0xF6AC, 0x9709, 0xC3B9, 0x970A, 0xEB91, + 0x970B, 0xEB92, 0x970C, 0xEB93, 0x970D, 0xBBF4, 0x970E, 0xF6AE, 0x970F, 0xF6AD, 0x9710, 0xEB94, 0x9711, 0xEB95, 0x9712, 0xEB96, + 0x9713, 0xC4DE, 0x9714, 0xEB97, 0x9715, 0xEB98, 0x9716, 0xC1D8, 0x9717, 0xEB99, 0x9718, 0xEB9A, 0x9719, 0xEB9B, 0x971A, 0xEB9C, + 0x971B, 0xEB9D, 0x971C, 0xCBAA, 0x971D, 0xEB9E, 0x971E, 0xCFBC, 0x971F, 0xEB9F, 0x9720, 0xEBA0, 0x9721, 0xEC40, 0x9722, 0xEC41, + 0x9723, 0xEC42, 0x9724, 0xEC43, 0x9725, 0xEC44, 0x9726, 0xEC45, 0x9727, 0xEC46, 0x9728, 0xEC47, 0x9729, 0xEC48, 0x972A, 0xF6AF, + 0x972B, 0xEC49, 0x972C, 0xEC4A, 0x972D, 0xF6B0, 0x972E, 0xEC4B, 0x972F, 0xEC4C, 0x9730, 0xF6B1, 0x9731, 0xEC4D, 0x9732, 0xC2B6, + 0x9733, 0xEC4E, 0x9734, 0xEC4F, 0x9735, 0xEC50, 0x9736, 0xEC51, 0x9737, 0xEC52, 0x9738, 0xB0D4, 0x9739, 0xC5F9, 0x973A, 0xEC53, + 0x973B, 0xEC54, 0x973C, 0xEC55, 0x973D, 0xEC56, 0x973E, 0xF6B2, 0x973F, 0xEC57, 0x9740, 0xEC58, 0x9741, 0xEC59, 0x9742, 0xEC5A, + 0x9743, 0xEC5B, 0x9744, 0xEC5C, 0x9745, 0xEC5D, 0x9746, 0xEC5E, 0x9747, 0xEC5F, 0x9748, 0xEC60, 0x9749, 0xEC61, 0x974A, 0xEC62, + 0x974B, 0xEC63, 0x974C, 0xEC64, 0x974D, 0xEC65, 0x974E, 0xEC66, 0x974F, 0xEC67, 0x9750, 0xEC68, 0x9751, 0xEC69, 0x9752, 0xC7E0, + 0x9753, 0xF6A6, 0x9754, 0xEC6A, 0x9755, 0xEC6B, 0x9756, 0xBEB8, 0x9757, 0xEC6C, 0x9758, 0xEC6D, 0x9759, 0xBEB2, 0x975A, 0xEC6E, + 0x975B, 0xB5E5, 0x975C, 0xEC6F, 0x975D, 0xEC70, 0x975E, 0xB7C7, 0x975F, 0xEC71, 0x9760, 0xBFBF, 0x9761, 0xC3D2, 0x9762, 0xC3E6, + 0x9763, 0xEC72, 0x9764, 0xEC73, 0x9765, 0xD8CC, 0x9766, 0xEC74, 0x9767, 0xEC75, 0x9768, 0xEC76, 0x9769, 0xB8EF, 0x976A, 0xEC77, + 0x976B, 0xEC78, 0x976C, 0xEC79, 0x976D, 0xEC7A, 0x976E, 0xEC7B, 0x976F, 0xEC7C, 0x9770, 0xEC7D, 0x9771, 0xEC7E, 0x9772, 0xEC80, + 0x9773, 0xBDF9, 0x9774, 0xD1A5, 0x9775, 0xEC81, 0x9776, 0xB0D0, 0x9777, 0xEC82, 0x9778, 0xEC83, 0x9779, 0xEC84, 0x977A, 0xEC85, + 0x977B, 0xEC86, 0x977C, 0xF7B0, 0x977D, 0xEC87, 0x977E, 0xEC88, 0x977F, 0xEC89, 0x9780, 0xEC8A, 0x9781, 0xEC8B, 0x9782, 0xEC8C, + 0x9783, 0xEC8D, 0x9784, 0xEC8E, 0x9785, 0xF7B1, 0x9786, 0xEC8F, 0x9787, 0xEC90, 0x9788, 0xEC91, 0x9789, 0xEC92, 0x978A, 0xEC93, + 0x978B, 0xD0AC, 0x978C, 0xEC94, 0x978D, 0xB0B0, 0x978E, 0xEC95, 0x978F, 0xEC96, 0x9790, 0xEC97, 0x9791, 0xF7B2, 0x9792, 0xF7B3, + 0x9793, 0xEC98, 0x9794, 0xF7B4, 0x9795, 0xEC99, 0x9796, 0xEC9A, 0x9797, 0xEC9B, 0x9798, 0xC7CA, 0x9799, 0xEC9C, 0x979A, 0xEC9D, + 0x979B, 0xEC9E, 0x979C, 0xEC9F, 0x979D, 0xECA0, 0x979E, 0xED40, 0x979F, 0xED41, 0x97A0, 0xBECF, 0x97A1, 0xED42, 0x97A2, 0xED43, + 0x97A3, 0xF7B7, 0x97A4, 0xED44, 0x97A5, 0xED45, 0x97A6, 0xED46, 0x97A7, 0xED47, 0x97A8, 0xED48, 0x97A9, 0xED49, 0x97AA, 0xED4A, + 0x97AB, 0xF7B6, 0x97AC, 0xED4B, 0x97AD, 0xB1DE, 0x97AE, 0xED4C, 0x97AF, 0xF7B5, 0x97B0, 0xED4D, 0x97B1, 0xED4E, 0x97B2, 0xF7B8, + 0x97B3, 0xED4F, 0x97B4, 0xF7B9, 0x97B5, 0xED50, 0x97B6, 0xED51, 0x97B7, 0xED52, 0x97B8, 0xED53, 0x97B9, 0xED54, 0x97BA, 0xED55, + 0x97BB, 0xED56, 0x97BC, 0xED57, 0x97BD, 0xED58, 0x97BE, 0xED59, 0x97BF, 0xED5A, 0x97C0, 0xED5B, 0x97C1, 0xED5C, 0x97C2, 0xED5D, + 0x97C3, 0xED5E, 0x97C4, 0xED5F, 0x97C5, 0xED60, 0x97C6, 0xED61, 0x97C7, 0xED62, 0x97C8, 0xED63, 0x97C9, 0xED64, 0x97CA, 0xED65, + 0x97CB, 0xED66, 0x97CC, 0xED67, 0x97CD, 0xED68, 0x97CE, 0xED69, 0x97CF, 0xED6A, 0x97D0, 0xED6B, 0x97D1, 0xED6C, 0x97D2, 0xED6D, + 0x97D3, 0xED6E, 0x97D4, 0xED6F, 0x97D5, 0xED70, 0x97D6, 0xED71, 0x97D7, 0xED72, 0x97D8, 0xED73, 0x97D9, 0xED74, 0x97DA, 0xED75, + 0x97DB, 0xED76, 0x97DC, 0xED77, 0x97DD, 0xED78, 0x97DE, 0xED79, 0x97DF, 0xED7A, 0x97E0, 0xED7B, 0x97E1, 0xED7C, 0x97E2, 0xED7D, + 0x97E3, 0xED7E, 0x97E4, 0xED80, 0x97E5, 0xED81, 0x97E6, 0xCEA4, 0x97E7, 0xC8CD, 0x97E8, 0xED82, 0x97E9, 0xBAAB, 0x97EA, 0xE8B8, + 0x97EB, 0xE8B9, 0x97EC, 0xE8BA, 0x97ED, 0xBEC2, 0x97EE, 0xED83, 0x97EF, 0xED84, 0x97F0, 0xED85, 0x97F1, 0xED86, 0x97F2, 0xED87, + 0x97F3, 0xD2F4, 0x97F4, 0xED88, 0x97F5, 0xD4CF, 0x97F6, 0xC9D8, 0x97F7, 0xED89, 0x97F8, 0xED8A, 0x97F9, 0xED8B, 0x97FA, 0xED8C, + 0x97FB, 0xED8D, 0x97FC, 0xED8E, 0x97FD, 0xED8F, 0x97FE, 0xED90, 0x97FF, 0xED91, 0x9800, 0xED92, 0x9801, 0xED93, 0x9802, 0xED94, + 0x9803, 0xED95, 0x9804, 0xED96, 0x9805, 0xED97, 0x9806, 0xED98, 0x9807, 0xED99, 0x9808, 0xED9A, 0x9809, 0xED9B, 0x980A, 0xED9C, + 0x980B, 0xED9D, 0x980C, 0xED9E, 0x980D, 0xED9F, 0x980E, 0xEDA0, 0x980F, 0xEE40, 0x9810, 0xEE41, 0x9811, 0xEE42, 0x9812, 0xEE43, + 0x9813, 0xEE44, 0x9814, 0xEE45, 0x9815, 0xEE46, 0x9816, 0xEE47, 0x9817, 0xEE48, 0x9818, 0xEE49, 0x9819, 0xEE4A, 0x981A, 0xEE4B, + 0x981B, 0xEE4C, 0x981C, 0xEE4D, 0x981D, 0xEE4E, 0x981E, 0xEE4F, 0x981F, 0xEE50, 0x9820, 0xEE51, 0x9821, 0xEE52, 0x9822, 0xEE53, + 0x9823, 0xEE54, 0x9824, 0xEE55, 0x9825, 0xEE56, 0x9826, 0xEE57, 0x9827, 0xEE58, 0x9828, 0xEE59, 0x9829, 0xEE5A, 0x982A, 0xEE5B, + 0x982B, 0xEE5C, 0x982C, 0xEE5D, 0x982D, 0xEE5E, 0x982E, 0xEE5F, 0x982F, 0xEE60, 0x9830, 0xEE61, 0x9831, 0xEE62, 0x9832, 0xEE63, + 0x9833, 0xEE64, 0x9834, 0xEE65, 0x9835, 0xEE66, 0x9836, 0xEE67, 0x9837, 0xEE68, 0x9838, 0xEE69, 0x9839, 0xEE6A, 0x983A, 0xEE6B, + 0x983B, 0xEE6C, 0x983C, 0xEE6D, 0x983D, 0xEE6E, 0x983E, 0xEE6F, 0x983F, 0xEE70, 0x9840, 0xEE71, 0x9841, 0xEE72, 0x9842, 0xEE73, + 0x9843, 0xEE74, 0x9844, 0xEE75, 0x9845, 0xEE76, 0x9846, 0xEE77, 0x9847, 0xEE78, 0x9848, 0xEE79, 0x9849, 0xEE7A, 0x984A, 0xEE7B, + 0x984B, 0xEE7C, 0x984C, 0xEE7D, 0x984D, 0xEE7E, 0x984E, 0xEE80, 0x984F, 0xEE81, 0x9850, 0xEE82, 0x9851, 0xEE83, 0x9852, 0xEE84, + 0x9853, 0xEE85, 0x9854, 0xEE86, 0x9855, 0xEE87, 0x9856, 0xEE88, 0x9857, 0xEE89, 0x9858, 0xEE8A, 0x9859, 0xEE8B, 0x985A, 0xEE8C, + 0x985B, 0xEE8D, 0x985C, 0xEE8E, 0x985D, 0xEE8F, 0x985E, 0xEE90, 0x985F, 0xEE91, 0x9860, 0xEE92, 0x9861, 0xEE93, 0x9862, 0xEE94, + 0x9863, 0xEE95, 0x9864, 0xEE96, 0x9865, 0xEE97, 0x9866, 0xEE98, 0x9867, 0xEE99, 0x9868, 0xEE9A, 0x9869, 0xEE9B, 0x986A, 0xEE9C, + 0x986B, 0xEE9D, 0x986C, 0xEE9E, 0x986D, 0xEE9F, 0x986E, 0xEEA0, 0x986F, 0xEF40, 0x9870, 0xEF41, 0x9871, 0xEF42, 0x9872, 0xEF43, + 0x9873, 0xEF44, 0x9874, 0xEF45, 0x9875, 0xD2B3, 0x9876, 0xB6A5, 0x9877, 0xC7EA, 0x9878, 0xF1FC, 0x9879, 0xCFEE, 0x987A, 0xCBB3, + 0x987B, 0xD0EB, 0x987C, 0xE7EF, 0x987D, 0xCDE7, 0x987E, 0xB9CB, 0x987F, 0xB6D9, 0x9880, 0xF1FD, 0x9881, 0xB0E4, 0x9882, 0xCBCC, + 0x9883, 0xF1FE, 0x9884, 0xD4A4, 0x9885, 0xC2AD, 0x9886, 0xC1EC, 0x9887, 0xC6C4, 0x9888, 0xBEB1, 0x9889, 0xF2A1, 0x988A, 0xBCD5, + 0x988B, 0xEF46, 0x988C, 0xF2A2, 0x988D, 0xF2A3, 0x988E, 0xEF47, 0x988F, 0xF2A4, 0x9890, 0xD2C3, 0x9891, 0xC6B5, 0x9892, 0xEF48, + 0x9893, 0xCDC7, 0x9894, 0xF2A5, 0x9895, 0xEF49, 0x9896, 0xD3B1, 0x9897, 0xBFC5, 0x9898, 0xCCE2, 0x9899, 0xEF4A, 0x989A, 0xF2A6, + 0x989B, 0xF2A7, 0x989C, 0xD1D5, 0x989D, 0xB6EE, 0x989E, 0xF2A8, 0x989F, 0xF2A9, 0x98A0, 0xB5DF, 0x98A1, 0xF2AA, 0x98A2, 0xF2AB, + 0x98A3, 0xEF4B, 0x98A4, 0xB2FC, 0x98A5, 0xF2AC, 0x98A6, 0xF2AD, 0x98A7, 0xC8A7, 0x98A8, 0xEF4C, 0x98A9, 0xEF4D, 0x98AA, 0xEF4E, + 0x98AB, 0xEF4F, 0x98AC, 0xEF50, 0x98AD, 0xEF51, 0x98AE, 0xEF52, 0x98AF, 0xEF53, 0x98B0, 0xEF54, 0x98B1, 0xEF55, 0x98B2, 0xEF56, + 0x98B3, 0xEF57, 0x98B4, 0xEF58, 0x98B5, 0xEF59, 0x98B6, 0xEF5A, 0x98B7, 0xEF5B, 0x98B8, 0xEF5C, 0x98B9, 0xEF5D, 0x98BA, 0xEF5E, + 0x98BB, 0xEF5F, 0x98BC, 0xEF60, 0x98BD, 0xEF61, 0x98BE, 0xEF62, 0x98BF, 0xEF63, 0x98C0, 0xEF64, 0x98C1, 0xEF65, 0x98C2, 0xEF66, + 0x98C3, 0xEF67, 0x98C4, 0xEF68, 0x98C5, 0xEF69, 0x98C6, 0xEF6A, 0x98C7, 0xEF6B, 0x98C8, 0xEF6C, 0x98C9, 0xEF6D, 0x98CA, 0xEF6E, + 0x98CB, 0xEF6F, 0x98CC, 0xEF70, 0x98CD, 0xEF71, 0x98CE, 0xB7E7, 0x98CF, 0xEF72, 0x98D0, 0xEF73, 0x98D1, 0xECA9, 0x98D2, 0xECAA, + 0x98D3, 0xECAB, 0x98D4, 0xEF74, 0x98D5, 0xECAC, 0x98D6, 0xEF75, 0x98D7, 0xEF76, 0x98D8, 0xC6AE, 0x98D9, 0xECAD, 0x98DA, 0xECAE, + 0x98DB, 0xEF77, 0x98DC, 0xEF78, 0x98DD, 0xEF79, 0x98DE, 0xB7C9, 0x98DF, 0xCAB3, 0x98E0, 0xEF7A, 0x98E1, 0xEF7B, 0x98E2, 0xEF7C, + 0x98E3, 0xEF7D, 0x98E4, 0xEF7E, 0x98E5, 0xEF80, 0x98E6, 0xEF81, 0x98E7, 0xE2B8, 0x98E8, 0xF7CF, 0x98E9, 0xEF82, 0x98EA, 0xEF83, + 0x98EB, 0xEF84, 0x98EC, 0xEF85, 0x98ED, 0xEF86, 0x98EE, 0xEF87, 0x98EF, 0xEF88, 0x98F0, 0xEF89, 0x98F1, 0xEF8A, 0x98F2, 0xEF8B, + 0x98F3, 0xEF8C, 0x98F4, 0xEF8D, 0x98F5, 0xEF8E, 0x98F6, 0xEF8F, 0x98F7, 0xEF90, 0x98F8, 0xEF91, 0x98F9, 0xEF92, 0x98FA, 0xEF93, + 0x98FB, 0xEF94, 0x98FC, 0xEF95, 0x98FD, 0xEF96, 0x98FE, 0xEF97, 0x98FF, 0xEF98, 0x9900, 0xEF99, 0x9901, 0xEF9A, 0x9902, 0xEF9B, + 0x9903, 0xEF9C, 0x9904, 0xEF9D, 0x9905, 0xEF9E, 0x9906, 0xEF9F, 0x9907, 0xEFA0, 0x9908, 0xF040, 0x9909, 0xF041, 0x990A, 0xF042, + 0x990B, 0xF043, 0x990C, 0xF044, 0x990D, 0xF7D0, 0x990E, 0xF045, 0x990F, 0xF046, 0x9910, 0xB2CD, 0x9911, 0xF047, 0x9912, 0xF048, + 0x9913, 0xF049, 0x9914, 0xF04A, 0x9915, 0xF04B, 0x9916, 0xF04C, 0x9917, 0xF04D, 0x9918, 0xF04E, 0x9919, 0xF04F, 0x991A, 0xF050, + 0x991B, 0xF051, 0x991C, 0xF052, 0x991D, 0xF053, 0x991E, 0xF054, 0x991F, 0xF055, 0x9920, 0xF056, 0x9921, 0xF057, 0x9922, 0xF058, + 0x9923, 0xF059, 0x9924, 0xF05A, 0x9925, 0xF05B, 0x9926, 0xF05C, 0x9927, 0xF05D, 0x9928, 0xF05E, 0x9929, 0xF05F, 0x992A, 0xF060, + 0x992B, 0xF061, 0x992C, 0xF062, 0x992D, 0xF063, 0x992E, 0xF7D1, 0x992F, 0xF064, 0x9930, 0xF065, 0x9931, 0xF066, 0x9932, 0xF067, + 0x9933, 0xF068, 0x9934, 0xF069, 0x9935, 0xF06A, 0x9936, 0xF06B, 0x9937, 0xF06C, 0x9938, 0xF06D, 0x9939, 0xF06E, 0x993A, 0xF06F, + 0x993B, 0xF070, 0x993C, 0xF071, 0x993D, 0xF072, 0x993E, 0xF073, 0x993F, 0xF074, 0x9940, 0xF075, 0x9941, 0xF076, 0x9942, 0xF077, + 0x9943, 0xF078, 0x9944, 0xF079, 0x9945, 0xF07A, 0x9946, 0xF07B, 0x9947, 0xF07C, 0x9948, 0xF07D, 0x9949, 0xF07E, 0x994A, 0xF080, + 0x994B, 0xF081, 0x994C, 0xF082, 0x994D, 0xF083, 0x994E, 0xF084, 0x994F, 0xF085, 0x9950, 0xF086, 0x9951, 0xF087, 0x9952, 0xF088, + 0x9953, 0xF089, 0x9954, 0xF7D3, 0x9955, 0xF7D2, 0x9956, 0xF08A, 0x9957, 0xF08B, 0x9958, 0xF08C, 0x9959, 0xF08D, 0x995A, 0xF08E, + 0x995B, 0xF08F, 0x995C, 0xF090, 0x995D, 0xF091, 0x995E, 0xF092, 0x995F, 0xF093, 0x9960, 0xF094, 0x9961, 0xF095, 0x9962, 0xF096, + 0x9963, 0xE2BB, 0x9964, 0xF097, 0x9965, 0xBCA2, 0x9966, 0xF098, 0x9967, 0xE2BC, 0x9968, 0xE2BD, 0x9969, 0xE2BE, 0x996A, 0xE2BF, + 0x996B, 0xE2C0, 0x996C, 0xE2C1, 0x996D, 0xB7B9, 0x996E, 0xD2FB, 0x996F, 0xBDA4, 0x9970, 0xCACE, 0x9971, 0xB1A5, 0x9972, 0xCBC7, + 0x9973, 0xF099, 0x9974, 0xE2C2, 0x9975, 0xB6FC, 0x9976, 0xC8C4, 0x9977, 0xE2C3, 0x9978, 0xF09A, 0x9979, 0xF09B, 0x997A, 0xBDC8, + 0x997B, 0xF09C, 0x997C, 0xB1FD, 0x997D, 0xE2C4, 0x997E, 0xF09D, 0x997F, 0xB6F6, 0x9980, 0xE2C5, 0x9981, 0xC4D9, 0x9982, 0xF09E, + 0x9983, 0xF09F, 0x9984, 0xE2C6, 0x9985, 0xCFDA, 0x9986, 0xB9DD, 0x9987, 0xE2C7, 0x9988, 0xC0A1, 0x9989, 0xF0A0, 0x998A, 0xE2C8, + 0x998B, 0xB2F6, 0x998C, 0xF140, 0x998D, 0xE2C9, 0x998E, 0xF141, 0x998F, 0xC1F3, 0x9990, 0xE2CA, 0x9991, 0xE2CB, 0x9992, 0xC2F8, + 0x9993, 0xE2CC, 0x9994, 0xE2CD, 0x9995, 0xE2CE, 0x9996, 0xCAD7, 0x9997, 0xD8B8, 0x9998, 0xD9E5, 0x9999, 0xCFE3, 0x999A, 0xF142, + 0x999B, 0xF143, 0x999C, 0xF144, 0x999D, 0xF145, 0x999E, 0xF146, 0x999F, 0xF147, 0x99A0, 0xF148, 0x99A1, 0xF149, 0x99A2, 0xF14A, + 0x99A3, 0xF14B, 0x99A4, 0xF14C, 0x99A5, 0xF0A5, 0x99A6, 0xF14D, 0x99A7, 0xF14E, 0x99A8, 0xDCB0, 0x99A9, 0xF14F, 0x99AA, 0xF150, + 0x99AB, 0xF151, 0x99AC, 0xF152, 0x99AD, 0xF153, 0x99AE, 0xF154, 0x99AF, 0xF155, 0x99B0, 0xF156, 0x99B1, 0xF157, 0x99B2, 0xF158, + 0x99B3, 0xF159, 0x99B4, 0xF15A, 0x99B5, 0xF15B, 0x99B6, 0xF15C, 0x99B7, 0xF15D, 0x99B8, 0xF15E, 0x99B9, 0xF15F, 0x99BA, 0xF160, + 0x99BB, 0xF161, 0x99BC, 0xF162, 0x99BD, 0xF163, 0x99BE, 0xF164, 0x99BF, 0xF165, 0x99C0, 0xF166, 0x99C1, 0xF167, 0x99C2, 0xF168, + 0x99C3, 0xF169, 0x99C4, 0xF16A, 0x99C5, 0xF16B, 0x99C6, 0xF16C, 0x99C7, 0xF16D, 0x99C8, 0xF16E, 0x99C9, 0xF16F, 0x99CA, 0xF170, + 0x99CB, 0xF171, 0x99CC, 0xF172, 0x99CD, 0xF173, 0x99CE, 0xF174, 0x99CF, 0xF175, 0x99D0, 0xF176, 0x99D1, 0xF177, 0x99D2, 0xF178, + 0x99D3, 0xF179, 0x99D4, 0xF17A, 0x99D5, 0xF17B, 0x99D6, 0xF17C, 0x99D7, 0xF17D, 0x99D8, 0xF17E, 0x99D9, 0xF180, 0x99DA, 0xF181, + 0x99DB, 0xF182, 0x99DC, 0xF183, 0x99DD, 0xF184, 0x99DE, 0xF185, 0x99DF, 0xF186, 0x99E0, 0xF187, 0x99E1, 0xF188, 0x99E2, 0xF189, + 0x99E3, 0xF18A, 0x99E4, 0xF18B, 0x99E5, 0xF18C, 0x99E6, 0xF18D, 0x99E7, 0xF18E, 0x99E8, 0xF18F, 0x99E9, 0xF190, 0x99EA, 0xF191, + 0x99EB, 0xF192, 0x99EC, 0xF193, 0x99ED, 0xF194, 0x99EE, 0xF195, 0x99EF, 0xF196, 0x99F0, 0xF197, 0x99F1, 0xF198, 0x99F2, 0xF199, + 0x99F3, 0xF19A, 0x99F4, 0xF19B, 0x99F5, 0xF19C, 0x99F6, 0xF19D, 0x99F7, 0xF19E, 0x99F8, 0xF19F, 0x99F9, 0xF1A0, 0x99FA, 0xF240, + 0x99FB, 0xF241, 0x99FC, 0xF242, 0x99FD, 0xF243, 0x99FE, 0xF244, 0x99FF, 0xF245, 0x9A00, 0xF246, 0x9A01, 0xF247, 0x9A02, 0xF248, + 0x9A03, 0xF249, 0x9A04, 0xF24A, 0x9A05, 0xF24B, 0x9A06, 0xF24C, 0x9A07, 0xF24D, 0x9A08, 0xF24E, 0x9A09, 0xF24F, 0x9A0A, 0xF250, + 0x9A0B, 0xF251, 0x9A0C, 0xF252, 0x9A0D, 0xF253, 0x9A0E, 0xF254, 0x9A0F, 0xF255, 0x9A10, 0xF256, 0x9A11, 0xF257, 0x9A12, 0xF258, + 0x9A13, 0xF259, 0x9A14, 0xF25A, 0x9A15, 0xF25B, 0x9A16, 0xF25C, 0x9A17, 0xF25D, 0x9A18, 0xF25E, 0x9A19, 0xF25F, 0x9A1A, 0xF260, + 0x9A1B, 0xF261, 0x9A1C, 0xF262, 0x9A1D, 0xF263, 0x9A1E, 0xF264, 0x9A1F, 0xF265, 0x9A20, 0xF266, 0x9A21, 0xF267, 0x9A22, 0xF268, + 0x9A23, 0xF269, 0x9A24, 0xF26A, 0x9A25, 0xF26B, 0x9A26, 0xF26C, 0x9A27, 0xF26D, 0x9A28, 0xF26E, 0x9A29, 0xF26F, 0x9A2A, 0xF270, + 0x9A2B, 0xF271, 0x9A2C, 0xF272, 0x9A2D, 0xF273, 0x9A2E, 0xF274, 0x9A2F, 0xF275, 0x9A30, 0xF276, 0x9A31, 0xF277, 0x9A32, 0xF278, + 0x9A33, 0xF279, 0x9A34, 0xF27A, 0x9A35, 0xF27B, 0x9A36, 0xF27C, 0x9A37, 0xF27D, 0x9A38, 0xF27E, 0x9A39, 0xF280, 0x9A3A, 0xF281, + 0x9A3B, 0xF282, 0x9A3C, 0xF283, 0x9A3D, 0xF284, 0x9A3E, 0xF285, 0x9A3F, 0xF286, 0x9A40, 0xF287, 0x9A41, 0xF288, 0x9A42, 0xF289, + 0x9A43, 0xF28A, 0x9A44, 0xF28B, 0x9A45, 0xF28C, 0x9A46, 0xF28D, 0x9A47, 0xF28E, 0x9A48, 0xF28F, 0x9A49, 0xF290, 0x9A4A, 0xF291, + 0x9A4B, 0xF292, 0x9A4C, 0xF293, 0x9A4D, 0xF294, 0x9A4E, 0xF295, 0x9A4F, 0xF296, 0x9A50, 0xF297, 0x9A51, 0xF298, 0x9A52, 0xF299, + 0x9A53, 0xF29A, 0x9A54, 0xF29B, 0x9A55, 0xF29C, 0x9A56, 0xF29D, 0x9A57, 0xF29E, 0x9A58, 0xF29F, 0x9A59, 0xF2A0, 0x9A5A, 0xF340, + 0x9A5B, 0xF341, 0x9A5C, 0xF342, 0x9A5D, 0xF343, 0x9A5E, 0xF344, 0x9A5F, 0xF345, 0x9A60, 0xF346, 0x9A61, 0xF347, 0x9A62, 0xF348, + 0x9A63, 0xF349, 0x9A64, 0xF34A, 0x9A65, 0xF34B, 0x9A66, 0xF34C, 0x9A67, 0xF34D, 0x9A68, 0xF34E, 0x9A69, 0xF34F, 0x9A6A, 0xF350, + 0x9A6B, 0xF351, 0x9A6C, 0xC2ED, 0x9A6D, 0xD4A6, 0x9A6E, 0xCDD4, 0x9A6F, 0xD1B1, 0x9A70, 0xB3DB, 0x9A71, 0xC7FD, 0x9A72, 0xF352, + 0x9A73, 0xB2B5, 0x9A74, 0xC2BF, 0x9A75, 0xE6E0, 0x9A76, 0xCABB, 0x9A77, 0xE6E1, 0x9A78, 0xE6E2, 0x9A79, 0xBED4, 0x9A7A, 0xE6E3, + 0x9A7B, 0xD7A4, 0x9A7C, 0xCDD5, 0x9A7D, 0xE6E5, 0x9A7E, 0xBCDD, 0x9A7F, 0xE6E4, 0x9A80, 0xE6E6, 0x9A81, 0xE6E7, 0x9A82, 0xC2EE, + 0x9A83, 0xF353, 0x9A84, 0xBDBE, 0x9A85, 0xE6E8, 0x9A86, 0xC2E6, 0x9A87, 0xBAA7, 0x9A88, 0xE6E9, 0x9A89, 0xF354, 0x9A8A, 0xE6EA, + 0x9A8B, 0xB3D2, 0x9A8C, 0xD1E9, 0x9A8D, 0xF355, 0x9A8E, 0xF356, 0x9A8F, 0xBFA5, 0x9A90, 0xE6EB, 0x9A91, 0xC6EF, 0x9A92, 0xE6EC, + 0x9A93, 0xE6ED, 0x9A94, 0xF357, 0x9A95, 0xF358, 0x9A96, 0xE6EE, 0x9A97, 0xC6AD, 0x9A98, 0xE6EF, 0x9A99, 0xF359, 0x9A9A, 0xC9A7, + 0x9A9B, 0xE6F0, 0x9A9C, 0xE6F1, 0x9A9D, 0xE6F2, 0x9A9E, 0xE5B9, 0x9A9F, 0xE6F3, 0x9AA0, 0xE6F4, 0x9AA1, 0xC2E2, 0x9AA2, 0xE6F5, + 0x9AA3, 0xE6F6, 0x9AA4, 0xD6E8, 0x9AA5, 0xE6F7, 0x9AA6, 0xF35A, 0x9AA7, 0xE6F8, 0x9AA8, 0xB9C7, 0x9AA9, 0xF35B, 0x9AAA, 0xF35C, + 0x9AAB, 0xF35D, 0x9AAC, 0xF35E, 0x9AAD, 0xF35F, 0x9AAE, 0xF360, 0x9AAF, 0xF361, 0x9AB0, 0xF7BB, 0x9AB1, 0xF7BA, 0x9AB2, 0xF362, + 0x9AB3, 0xF363, 0x9AB4, 0xF364, 0x9AB5, 0xF365, 0x9AB6, 0xF7BE, 0x9AB7, 0xF7BC, 0x9AB8, 0xBAA1, 0x9AB9, 0xF366, 0x9ABA, 0xF7BF, + 0x9ABB, 0xF367, 0x9ABC, 0xF7C0, 0x9ABD, 0xF368, 0x9ABE, 0xF369, 0x9ABF, 0xF36A, 0x9AC0, 0xF7C2, 0x9AC1, 0xF7C1, 0x9AC2, 0xF7C4, + 0x9AC3, 0xF36B, 0x9AC4, 0xF36C, 0x9AC5, 0xF7C3, 0x9AC6, 0xF36D, 0x9AC7, 0xF36E, 0x9AC8, 0xF36F, 0x9AC9, 0xF370, 0x9ACA, 0xF371, + 0x9ACB, 0xF7C5, 0x9ACC, 0xF7C6, 0x9ACD, 0xF372, 0x9ACE, 0xF373, 0x9ACF, 0xF374, 0x9AD0, 0xF375, 0x9AD1, 0xF7C7, 0x9AD2, 0xF376, + 0x9AD3, 0xCBE8, 0x9AD4, 0xF377, 0x9AD5, 0xF378, 0x9AD6, 0xF379, 0x9AD7, 0xF37A, 0x9AD8, 0xB8DF, 0x9AD9, 0xF37B, 0x9ADA, 0xF37C, + 0x9ADB, 0xF37D, 0x9ADC, 0xF37E, 0x9ADD, 0xF380, 0x9ADE, 0xF381, 0x9ADF, 0xF7D4, 0x9AE0, 0xF382, 0x9AE1, 0xF7D5, 0x9AE2, 0xF383, + 0x9AE3, 0xF384, 0x9AE4, 0xF385, 0x9AE5, 0xF386, 0x9AE6, 0xF7D6, 0x9AE7, 0xF387, 0x9AE8, 0xF388, 0x9AE9, 0xF389, 0x9AEA, 0xF38A, + 0x9AEB, 0xF7D8, 0x9AEC, 0xF38B, 0x9AED, 0xF7DA, 0x9AEE, 0xF38C, 0x9AEF, 0xF7D7, 0x9AF0, 0xF38D, 0x9AF1, 0xF38E, 0x9AF2, 0xF38F, + 0x9AF3, 0xF390, 0x9AF4, 0xF391, 0x9AF5, 0xF392, 0x9AF6, 0xF393, 0x9AF7, 0xF394, 0x9AF8, 0xF395, 0x9AF9, 0xF7DB, 0x9AFA, 0xF396, + 0x9AFB, 0xF7D9, 0x9AFC, 0xF397, 0x9AFD, 0xF398, 0x9AFE, 0xF399, 0x9AFF, 0xF39A, 0x9B00, 0xF39B, 0x9B01, 0xF39C, 0x9B02, 0xF39D, + 0x9B03, 0xD7D7, 0x9B04, 0xF39E, 0x9B05, 0xF39F, 0x9B06, 0xF3A0, 0x9B07, 0xF440, 0x9B08, 0xF7DC, 0x9B09, 0xF441, 0x9B0A, 0xF442, + 0x9B0B, 0xF443, 0x9B0C, 0xF444, 0x9B0D, 0xF445, 0x9B0E, 0xF446, 0x9B0F, 0xF7DD, 0x9B10, 0xF447, 0x9B11, 0xF448, 0x9B12, 0xF449, + 0x9B13, 0xF7DE, 0x9B14, 0xF44A, 0x9B15, 0xF44B, 0x9B16, 0xF44C, 0x9B17, 0xF44D, 0x9B18, 0xF44E, 0x9B19, 0xF44F, 0x9B1A, 0xF450, + 0x9B1B, 0xF451, 0x9B1C, 0xF452, 0x9B1D, 0xF453, 0x9B1E, 0xF454, 0x9B1F, 0xF7DF, 0x9B20, 0xF455, 0x9B21, 0xF456, 0x9B22, 0xF457, + 0x9B23, 0xF7E0, 0x9B24, 0xF458, 0x9B25, 0xF459, 0x9B26, 0xF45A, 0x9B27, 0xF45B, 0x9B28, 0xF45C, 0x9B29, 0xF45D, 0x9B2A, 0xF45E, + 0x9B2B, 0xF45F, 0x9B2C, 0xF460, 0x9B2D, 0xF461, 0x9B2E, 0xF462, 0x9B2F, 0xDBCB, 0x9B30, 0xF463, 0x9B31, 0xF464, 0x9B32, 0xD8AA, + 0x9B33, 0xF465, 0x9B34, 0xF466, 0x9B35, 0xF467, 0x9B36, 0xF468, 0x9B37, 0xF469, 0x9B38, 0xF46A, 0x9B39, 0xF46B, 0x9B3A, 0xF46C, + 0x9B3B, 0xE5F7, 0x9B3C, 0xB9ED, 0x9B3D, 0xF46D, 0x9B3E, 0xF46E, 0x9B3F, 0xF46F, 0x9B40, 0xF470, 0x9B41, 0xBFFD, 0x9B42, 0xBBEA, + 0x9B43, 0xF7C9, 0x9B44, 0xC6C7, 0x9B45, 0xF7C8, 0x9B46, 0xF471, 0x9B47, 0xF7CA, 0x9B48, 0xF7CC, 0x9B49, 0xF7CB, 0x9B4A, 0xF472, + 0x9B4B, 0xF473, 0x9B4C, 0xF474, 0x9B4D, 0xF7CD, 0x9B4E, 0xF475, 0x9B4F, 0xCEBA, 0x9B50, 0xF476, 0x9B51, 0xF7CE, 0x9B52, 0xF477, + 0x9B53, 0xF478, 0x9B54, 0xC4A7, 0x9B55, 0xF479, 0x9B56, 0xF47A, 0x9B57, 0xF47B, 0x9B58, 0xF47C, 0x9B59, 0xF47D, 0x9B5A, 0xF47E, + 0x9B5B, 0xF480, 0x9B5C, 0xF481, 0x9B5D, 0xF482, 0x9B5E, 0xF483, 0x9B5F, 0xF484, 0x9B60, 0xF485, 0x9B61, 0xF486, 0x9B62, 0xF487, + 0x9B63, 0xF488, 0x9B64, 0xF489, 0x9B65, 0xF48A, 0x9B66, 0xF48B, 0x9B67, 0xF48C, 0x9B68, 0xF48D, 0x9B69, 0xF48E, 0x9B6A, 0xF48F, + 0x9B6B, 0xF490, 0x9B6C, 0xF491, 0x9B6D, 0xF492, 0x9B6E, 0xF493, 0x9B6F, 0xF494, 0x9B70, 0xF495, 0x9B71, 0xF496, 0x9B72, 0xF497, + 0x9B73, 0xF498, 0x9B74, 0xF499, 0x9B75, 0xF49A, 0x9B76, 0xF49B, 0x9B77, 0xF49C, 0x9B78, 0xF49D, 0x9B79, 0xF49E, 0x9B7A, 0xF49F, + 0x9B7B, 0xF4A0, 0x9B7C, 0xF540, 0x9B7D, 0xF541, 0x9B7E, 0xF542, 0x9B7F, 0xF543, 0x9B80, 0xF544, 0x9B81, 0xF545, 0x9B82, 0xF546, + 0x9B83, 0xF547, 0x9B84, 0xF548, 0x9B85, 0xF549, 0x9B86, 0xF54A, 0x9B87, 0xF54B, 0x9B88, 0xF54C, 0x9B89, 0xF54D, 0x9B8A, 0xF54E, + 0x9B8B, 0xF54F, 0x9B8C, 0xF550, 0x9B8D, 0xF551, 0x9B8E, 0xF552, 0x9B8F, 0xF553, 0x9B90, 0xF554, 0x9B91, 0xF555, 0x9B92, 0xF556, + 0x9B93, 0xF557, 0x9B94, 0xF558, 0x9B95, 0xF559, 0x9B96, 0xF55A, 0x9B97, 0xF55B, 0x9B98, 0xF55C, 0x9B99, 0xF55D, 0x9B9A, 0xF55E, + 0x9B9B, 0xF55F, 0x9B9C, 0xF560, 0x9B9D, 0xF561, 0x9B9E, 0xF562, 0x9B9F, 0xF563, 0x9BA0, 0xF564, 0x9BA1, 0xF565, 0x9BA2, 0xF566, + 0x9BA3, 0xF567, 0x9BA4, 0xF568, 0x9BA5, 0xF569, 0x9BA6, 0xF56A, 0x9BA7, 0xF56B, 0x9BA8, 0xF56C, 0x9BA9, 0xF56D, 0x9BAA, 0xF56E, + 0x9BAB, 0xF56F, 0x9BAC, 0xF570, 0x9BAD, 0xF571, 0x9BAE, 0xF572, 0x9BAF, 0xF573, 0x9BB0, 0xF574, 0x9BB1, 0xF575, 0x9BB2, 0xF576, + 0x9BB3, 0xF577, 0x9BB4, 0xF578, 0x9BB5, 0xF579, 0x9BB6, 0xF57A, 0x9BB7, 0xF57B, 0x9BB8, 0xF57C, 0x9BB9, 0xF57D, 0x9BBA, 0xF57E, + 0x9BBB, 0xF580, 0x9BBC, 0xF581, 0x9BBD, 0xF582, 0x9BBE, 0xF583, 0x9BBF, 0xF584, 0x9BC0, 0xF585, 0x9BC1, 0xF586, 0x9BC2, 0xF587, + 0x9BC3, 0xF588, 0x9BC4, 0xF589, 0x9BC5, 0xF58A, 0x9BC6, 0xF58B, 0x9BC7, 0xF58C, 0x9BC8, 0xF58D, 0x9BC9, 0xF58E, 0x9BCA, 0xF58F, + 0x9BCB, 0xF590, 0x9BCC, 0xF591, 0x9BCD, 0xF592, 0x9BCE, 0xF593, 0x9BCF, 0xF594, 0x9BD0, 0xF595, 0x9BD1, 0xF596, 0x9BD2, 0xF597, + 0x9BD3, 0xF598, 0x9BD4, 0xF599, 0x9BD5, 0xF59A, 0x9BD6, 0xF59B, 0x9BD7, 0xF59C, 0x9BD8, 0xF59D, 0x9BD9, 0xF59E, 0x9BDA, 0xF59F, + 0x9BDB, 0xF5A0, 0x9BDC, 0xF640, 0x9BDD, 0xF641, 0x9BDE, 0xF642, 0x9BDF, 0xF643, 0x9BE0, 0xF644, 0x9BE1, 0xF645, 0x9BE2, 0xF646, + 0x9BE3, 0xF647, 0x9BE4, 0xF648, 0x9BE5, 0xF649, 0x9BE6, 0xF64A, 0x9BE7, 0xF64B, 0x9BE8, 0xF64C, 0x9BE9, 0xF64D, 0x9BEA, 0xF64E, + 0x9BEB, 0xF64F, 0x9BEC, 0xF650, 0x9BED, 0xF651, 0x9BEE, 0xF652, 0x9BEF, 0xF653, 0x9BF0, 0xF654, 0x9BF1, 0xF655, 0x9BF2, 0xF656, + 0x9BF3, 0xF657, 0x9BF4, 0xF658, 0x9BF5, 0xF659, 0x9BF6, 0xF65A, 0x9BF7, 0xF65B, 0x9BF8, 0xF65C, 0x9BF9, 0xF65D, 0x9BFA, 0xF65E, + 0x9BFB, 0xF65F, 0x9BFC, 0xF660, 0x9BFD, 0xF661, 0x9BFE, 0xF662, 0x9BFF, 0xF663, 0x9C00, 0xF664, 0x9C01, 0xF665, 0x9C02, 0xF666, + 0x9C03, 0xF667, 0x9C04, 0xF668, 0x9C05, 0xF669, 0x9C06, 0xF66A, 0x9C07, 0xF66B, 0x9C08, 0xF66C, 0x9C09, 0xF66D, 0x9C0A, 0xF66E, + 0x9C0B, 0xF66F, 0x9C0C, 0xF670, 0x9C0D, 0xF671, 0x9C0E, 0xF672, 0x9C0F, 0xF673, 0x9C10, 0xF674, 0x9C11, 0xF675, 0x9C12, 0xF676, + 0x9C13, 0xF677, 0x9C14, 0xF678, 0x9C15, 0xF679, 0x9C16, 0xF67A, 0x9C17, 0xF67B, 0x9C18, 0xF67C, 0x9C19, 0xF67D, 0x9C1A, 0xF67E, + 0x9C1B, 0xF680, 0x9C1C, 0xF681, 0x9C1D, 0xF682, 0x9C1E, 0xF683, 0x9C1F, 0xF684, 0x9C20, 0xF685, 0x9C21, 0xF686, 0x9C22, 0xF687, + 0x9C23, 0xF688, 0x9C24, 0xF689, 0x9C25, 0xF68A, 0x9C26, 0xF68B, 0x9C27, 0xF68C, 0x9C28, 0xF68D, 0x9C29, 0xF68E, 0x9C2A, 0xF68F, + 0x9C2B, 0xF690, 0x9C2C, 0xF691, 0x9C2D, 0xF692, 0x9C2E, 0xF693, 0x9C2F, 0xF694, 0x9C30, 0xF695, 0x9C31, 0xF696, 0x9C32, 0xF697, + 0x9C33, 0xF698, 0x9C34, 0xF699, 0x9C35, 0xF69A, 0x9C36, 0xF69B, 0x9C37, 0xF69C, 0x9C38, 0xF69D, 0x9C39, 0xF69E, 0x9C3A, 0xF69F, + 0x9C3B, 0xF6A0, 0x9C3C, 0xF740, 0x9C3D, 0xF741, 0x9C3E, 0xF742, 0x9C3F, 0xF743, 0x9C40, 0xF744, 0x9C41, 0xF745, 0x9C42, 0xF746, + 0x9C43, 0xF747, 0x9C44, 0xF748, 0x9C45, 0xF749, 0x9C46, 0xF74A, 0x9C47, 0xF74B, 0x9C48, 0xF74C, 0x9C49, 0xF74D, 0x9C4A, 0xF74E, + 0x9C4B, 0xF74F, 0x9C4C, 0xF750, 0x9C4D, 0xF751, 0x9C4E, 0xF752, 0x9C4F, 0xF753, 0x9C50, 0xF754, 0x9C51, 0xF755, 0x9C52, 0xF756, + 0x9C53, 0xF757, 0x9C54, 0xF758, 0x9C55, 0xF759, 0x9C56, 0xF75A, 0x9C57, 0xF75B, 0x9C58, 0xF75C, 0x9C59, 0xF75D, 0x9C5A, 0xF75E, + 0x9C5B, 0xF75F, 0x9C5C, 0xF760, 0x9C5D, 0xF761, 0x9C5E, 0xF762, 0x9C5F, 0xF763, 0x9C60, 0xF764, 0x9C61, 0xF765, 0x9C62, 0xF766, + 0x9C63, 0xF767, 0x9C64, 0xF768, 0x9C65, 0xF769, 0x9C66, 0xF76A, 0x9C67, 0xF76B, 0x9C68, 0xF76C, 0x9C69, 0xF76D, 0x9C6A, 0xF76E, + 0x9C6B, 0xF76F, 0x9C6C, 0xF770, 0x9C6D, 0xF771, 0x9C6E, 0xF772, 0x9C6F, 0xF773, 0x9C70, 0xF774, 0x9C71, 0xF775, 0x9C72, 0xF776, + 0x9C73, 0xF777, 0x9C74, 0xF778, 0x9C75, 0xF779, 0x9C76, 0xF77A, 0x9C77, 0xF77B, 0x9C78, 0xF77C, 0x9C79, 0xF77D, 0x9C7A, 0xF77E, + 0x9C7B, 0xF780, 0x9C7C, 0xD3E3, 0x9C7D, 0xF781, 0x9C7E, 0xF782, 0x9C7F, 0xF6CF, 0x9C80, 0xF783, 0x9C81, 0xC2B3, 0x9C82, 0xF6D0, + 0x9C83, 0xF784, 0x9C84, 0xF785, 0x9C85, 0xF6D1, 0x9C86, 0xF6D2, 0x9C87, 0xF6D3, 0x9C88, 0xF6D4, 0x9C89, 0xF786, 0x9C8A, 0xF787, + 0x9C8B, 0xF6D6, 0x9C8C, 0xF788, 0x9C8D, 0xB1AB, 0x9C8E, 0xF6D7, 0x9C8F, 0xF789, 0x9C90, 0xF6D8, 0x9C91, 0xF6D9, 0x9C92, 0xF6DA, + 0x9C93, 0xF78A, 0x9C94, 0xF6DB, 0x9C95, 0xF6DC, 0x9C96, 0xF78B, 0x9C97, 0xF78C, 0x9C98, 0xF78D, 0x9C99, 0xF78E, 0x9C9A, 0xF6DD, + 0x9C9B, 0xF6DE, 0x9C9C, 0xCFCA, 0x9C9D, 0xF78F, 0x9C9E, 0xF6DF, 0x9C9F, 0xF6E0, 0x9CA0, 0xF6E1, 0x9CA1, 0xF6E2, 0x9CA2, 0xF6E3, + 0x9CA3, 0xF6E4, 0x9CA4, 0xC0F0, 0x9CA5, 0xF6E5, 0x9CA6, 0xF6E6, 0x9CA7, 0xF6E7, 0x9CA8, 0xF6E8, 0x9CA9, 0xF6E9, 0x9CAA, 0xF790, + 0x9CAB, 0xF6EA, 0x9CAC, 0xF791, 0x9CAD, 0xF6EB, 0x9CAE, 0xF6EC, 0x9CAF, 0xF792, 0x9CB0, 0xF6ED, 0x9CB1, 0xF6EE, 0x9CB2, 0xF6EF, + 0x9CB3, 0xF6F0, 0x9CB4, 0xF6F1, 0x9CB5, 0xF6F2, 0x9CB6, 0xF6F3, 0x9CB7, 0xF6F4, 0x9CB8, 0xBEA8, 0x9CB9, 0xF793, 0x9CBA, 0xF6F5, + 0x9CBB, 0xF6F6, 0x9CBC, 0xF6F7, 0x9CBD, 0xF6F8, 0x9CBE, 0xF794, 0x9CBF, 0xF795, 0x9CC0, 0xF796, 0x9CC1, 0xF797, 0x9CC2, 0xF798, + 0x9CC3, 0xC8FA, 0x9CC4, 0xF6F9, 0x9CC5, 0xF6FA, 0x9CC6, 0xF6FB, 0x9CC7, 0xF6FC, 0x9CC8, 0xF799, 0x9CC9, 0xF79A, 0x9CCA, 0xF6FD, + 0x9CCB, 0xF6FE, 0x9CCC, 0xF7A1, 0x9CCD, 0xF7A2, 0x9CCE, 0xF7A3, 0x9CCF, 0xF7A4, 0x9CD0, 0xF7A5, 0x9CD1, 0xF79B, 0x9CD2, 0xF79C, + 0x9CD3, 0xF7A6, 0x9CD4, 0xF7A7, 0x9CD5, 0xF7A8, 0x9CD6, 0xB1EE, 0x9CD7, 0xF7A9, 0x9CD8, 0xF7AA, 0x9CD9, 0xF7AB, 0x9CDA, 0xF79D, + 0x9CDB, 0xF79E, 0x9CDC, 0xF7AC, 0x9CDD, 0xF7AD, 0x9CDE, 0xC1DB, 0x9CDF, 0xF7AE, 0x9CE0, 0xF79F, 0x9CE1, 0xF7A0, 0x9CE2, 0xF7AF, + 0x9CE3, 0xF840, 0x9CE4, 0xF841, 0x9CE5, 0xF842, 0x9CE6, 0xF843, 0x9CE7, 0xF844, 0x9CE8, 0xF845, 0x9CE9, 0xF846, 0x9CEA, 0xF847, + 0x9CEB, 0xF848, 0x9CEC, 0xF849, 0x9CED, 0xF84A, 0x9CEE, 0xF84B, 0x9CEF, 0xF84C, 0x9CF0, 0xF84D, 0x9CF1, 0xF84E, 0x9CF2, 0xF84F, + 0x9CF3, 0xF850, 0x9CF4, 0xF851, 0x9CF5, 0xF852, 0x9CF6, 0xF853, 0x9CF7, 0xF854, 0x9CF8, 0xF855, 0x9CF9, 0xF856, 0x9CFA, 0xF857, + 0x9CFB, 0xF858, 0x9CFC, 0xF859, 0x9CFD, 0xF85A, 0x9CFE, 0xF85B, 0x9CFF, 0xF85C, 0x9D00, 0xF85D, 0x9D01, 0xF85E, 0x9D02, 0xF85F, + 0x9D03, 0xF860, 0x9D04, 0xF861, 0x9D05, 0xF862, 0x9D06, 0xF863, 0x9D07, 0xF864, 0x9D08, 0xF865, 0x9D09, 0xF866, 0x9D0A, 0xF867, + 0x9D0B, 0xF868, 0x9D0C, 0xF869, 0x9D0D, 0xF86A, 0x9D0E, 0xF86B, 0x9D0F, 0xF86C, 0x9D10, 0xF86D, 0x9D11, 0xF86E, 0x9D12, 0xF86F, + 0x9D13, 0xF870, 0x9D14, 0xF871, 0x9D15, 0xF872, 0x9D16, 0xF873, 0x9D17, 0xF874, 0x9D18, 0xF875, 0x9D19, 0xF876, 0x9D1A, 0xF877, + 0x9D1B, 0xF878, 0x9D1C, 0xF879, 0x9D1D, 0xF87A, 0x9D1E, 0xF87B, 0x9D1F, 0xF87C, 0x9D20, 0xF87D, 0x9D21, 0xF87E, 0x9D22, 0xF880, + 0x9D23, 0xF881, 0x9D24, 0xF882, 0x9D25, 0xF883, 0x9D26, 0xF884, 0x9D27, 0xF885, 0x9D28, 0xF886, 0x9D29, 0xF887, 0x9D2A, 0xF888, + 0x9D2B, 0xF889, 0x9D2C, 0xF88A, 0x9D2D, 0xF88B, 0x9D2E, 0xF88C, 0x9D2F, 0xF88D, 0x9D30, 0xF88E, 0x9D31, 0xF88F, 0x9D32, 0xF890, + 0x9D33, 0xF891, 0x9D34, 0xF892, 0x9D35, 0xF893, 0x9D36, 0xF894, 0x9D37, 0xF895, 0x9D38, 0xF896, 0x9D39, 0xF897, 0x9D3A, 0xF898, + 0x9D3B, 0xF899, 0x9D3C, 0xF89A, 0x9D3D, 0xF89B, 0x9D3E, 0xF89C, 0x9D3F, 0xF89D, 0x9D40, 0xF89E, 0x9D41, 0xF89F, 0x9D42, 0xF8A0, + 0x9D43, 0xF940, 0x9D44, 0xF941, 0x9D45, 0xF942, 0x9D46, 0xF943, 0x9D47, 0xF944, 0x9D48, 0xF945, 0x9D49, 0xF946, 0x9D4A, 0xF947, + 0x9D4B, 0xF948, 0x9D4C, 0xF949, 0x9D4D, 0xF94A, 0x9D4E, 0xF94B, 0x9D4F, 0xF94C, 0x9D50, 0xF94D, 0x9D51, 0xF94E, 0x9D52, 0xF94F, + 0x9D53, 0xF950, 0x9D54, 0xF951, 0x9D55, 0xF952, 0x9D56, 0xF953, 0x9D57, 0xF954, 0x9D58, 0xF955, 0x9D59, 0xF956, 0x9D5A, 0xF957, + 0x9D5B, 0xF958, 0x9D5C, 0xF959, 0x9D5D, 0xF95A, 0x9D5E, 0xF95B, 0x9D5F, 0xF95C, 0x9D60, 0xF95D, 0x9D61, 0xF95E, 0x9D62, 0xF95F, + 0x9D63, 0xF960, 0x9D64, 0xF961, 0x9D65, 0xF962, 0x9D66, 0xF963, 0x9D67, 0xF964, 0x9D68, 0xF965, 0x9D69, 0xF966, 0x9D6A, 0xF967, + 0x9D6B, 0xF968, 0x9D6C, 0xF969, 0x9D6D, 0xF96A, 0x9D6E, 0xF96B, 0x9D6F, 0xF96C, 0x9D70, 0xF96D, 0x9D71, 0xF96E, 0x9D72, 0xF96F, + 0x9D73, 0xF970, 0x9D74, 0xF971, 0x9D75, 0xF972, 0x9D76, 0xF973, 0x9D77, 0xF974, 0x9D78, 0xF975, 0x9D79, 0xF976, 0x9D7A, 0xF977, + 0x9D7B, 0xF978, 0x9D7C, 0xF979, 0x9D7D, 0xF97A, 0x9D7E, 0xF97B, 0x9D7F, 0xF97C, 0x9D80, 0xF97D, 0x9D81, 0xF97E, 0x9D82, 0xF980, + 0x9D83, 0xF981, 0x9D84, 0xF982, 0x9D85, 0xF983, 0x9D86, 0xF984, 0x9D87, 0xF985, 0x9D88, 0xF986, 0x9D89, 0xF987, 0x9D8A, 0xF988, + 0x9D8B, 0xF989, 0x9D8C, 0xF98A, 0x9D8D, 0xF98B, 0x9D8E, 0xF98C, 0x9D8F, 0xF98D, 0x9D90, 0xF98E, 0x9D91, 0xF98F, 0x9D92, 0xF990, + 0x9D93, 0xF991, 0x9D94, 0xF992, 0x9D95, 0xF993, 0x9D96, 0xF994, 0x9D97, 0xF995, 0x9D98, 0xF996, 0x9D99, 0xF997, 0x9D9A, 0xF998, + 0x9D9B, 0xF999, 0x9D9C, 0xF99A, 0x9D9D, 0xF99B, 0x9D9E, 0xF99C, 0x9D9F, 0xF99D, 0x9DA0, 0xF99E, 0x9DA1, 0xF99F, 0x9DA2, 0xF9A0, + 0x9DA3, 0xFA40, 0x9DA4, 0xFA41, 0x9DA5, 0xFA42, 0x9DA6, 0xFA43, 0x9DA7, 0xFA44, 0x9DA8, 0xFA45, 0x9DA9, 0xFA46, 0x9DAA, 0xFA47, + 0x9DAB, 0xFA48, 0x9DAC, 0xFA49, 0x9DAD, 0xFA4A, 0x9DAE, 0xFA4B, 0x9DAF, 0xFA4C, 0x9DB0, 0xFA4D, 0x9DB1, 0xFA4E, 0x9DB2, 0xFA4F, + 0x9DB3, 0xFA50, 0x9DB4, 0xFA51, 0x9DB5, 0xFA52, 0x9DB6, 0xFA53, 0x9DB7, 0xFA54, 0x9DB8, 0xFA55, 0x9DB9, 0xFA56, 0x9DBA, 0xFA57, + 0x9DBB, 0xFA58, 0x9DBC, 0xFA59, 0x9DBD, 0xFA5A, 0x9DBE, 0xFA5B, 0x9DBF, 0xFA5C, 0x9DC0, 0xFA5D, 0x9DC1, 0xFA5E, 0x9DC2, 0xFA5F, + 0x9DC3, 0xFA60, 0x9DC4, 0xFA61, 0x9DC5, 0xFA62, 0x9DC6, 0xFA63, 0x9DC7, 0xFA64, 0x9DC8, 0xFA65, 0x9DC9, 0xFA66, 0x9DCA, 0xFA67, + 0x9DCB, 0xFA68, 0x9DCC, 0xFA69, 0x9DCD, 0xFA6A, 0x9DCE, 0xFA6B, 0x9DCF, 0xFA6C, 0x9DD0, 0xFA6D, 0x9DD1, 0xFA6E, 0x9DD2, 0xFA6F, + 0x9DD3, 0xFA70, 0x9DD4, 0xFA71, 0x9DD5, 0xFA72, 0x9DD6, 0xFA73, 0x9DD7, 0xFA74, 0x9DD8, 0xFA75, 0x9DD9, 0xFA76, 0x9DDA, 0xFA77, + 0x9DDB, 0xFA78, 0x9DDC, 0xFA79, 0x9DDD, 0xFA7A, 0x9DDE, 0xFA7B, 0x9DDF, 0xFA7C, 0x9DE0, 0xFA7D, 0x9DE1, 0xFA7E, 0x9DE2, 0xFA80, + 0x9DE3, 0xFA81, 0x9DE4, 0xFA82, 0x9DE5, 0xFA83, 0x9DE6, 0xFA84, 0x9DE7, 0xFA85, 0x9DE8, 0xFA86, 0x9DE9, 0xFA87, 0x9DEA, 0xFA88, + 0x9DEB, 0xFA89, 0x9DEC, 0xFA8A, 0x9DED, 0xFA8B, 0x9DEE, 0xFA8C, 0x9DEF, 0xFA8D, 0x9DF0, 0xFA8E, 0x9DF1, 0xFA8F, 0x9DF2, 0xFA90, + 0x9DF3, 0xFA91, 0x9DF4, 0xFA92, 0x9DF5, 0xFA93, 0x9DF6, 0xFA94, 0x9DF7, 0xFA95, 0x9DF8, 0xFA96, 0x9DF9, 0xFA97, 0x9DFA, 0xFA98, + 0x9DFB, 0xFA99, 0x9DFC, 0xFA9A, 0x9DFD, 0xFA9B, 0x9DFE, 0xFA9C, 0x9DFF, 0xFA9D, 0x9E00, 0xFA9E, 0x9E01, 0xFA9F, 0x9E02, 0xFAA0, + 0x9E03, 0xFB40, 0x9E04, 0xFB41, 0x9E05, 0xFB42, 0x9E06, 0xFB43, 0x9E07, 0xFB44, 0x9E08, 0xFB45, 0x9E09, 0xFB46, 0x9E0A, 0xFB47, + 0x9E0B, 0xFB48, 0x9E0C, 0xFB49, 0x9E0D, 0xFB4A, 0x9E0E, 0xFB4B, 0x9E0F, 0xFB4C, 0x9E10, 0xFB4D, 0x9E11, 0xFB4E, 0x9E12, 0xFB4F, + 0x9E13, 0xFB50, 0x9E14, 0xFB51, 0x9E15, 0xFB52, 0x9E16, 0xFB53, 0x9E17, 0xFB54, 0x9E18, 0xFB55, 0x9E19, 0xFB56, 0x9E1A, 0xFB57, + 0x9E1B, 0xFB58, 0x9E1C, 0xFB59, 0x9E1D, 0xFB5A, 0x9E1E, 0xFB5B, 0x9E1F, 0xC4F1, 0x9E20, 0xF0AF, 0x9E21, 0xBCA6, 0x9E22, 0xF0B0, + 0x9E23, 0xC3F9, 0x9E24, 0xFB5C, 0x9E25, 0xC5B8, 0x9E26, 0xD1BB, 0x9E27, 0xFB5D, 0x9E28, 0xF0B1, 0x9E29, 0xF0B2, 0x9E2A, 0xF0B3, + 0x9E2B, 0xF0B4, 0x9E2C, 0xF0B5, 0x9E2D, 0xD1BC, 0x9E2E, 0xFB5E, 0x9E2F, 0xD1EC, 0x9E30, 0xFB5F, 0x9E31, 0xF0B7, 0x9E32, 0xF0B6, + 0x9E33, 0xD4A7, 0x9E34, 0xFB60, 0x9E35, 0xCDD2, 0x9E36, 0xF0B8, 0x9E37, 0xF0BA, 0x9E38, 0xF0B9, 0x9E39, 0xF0BB, 0x9E3A, 0xF0BC, + 0x9E3B, 0xFB61, 0x9E3C, 0xFB62, 0x9E3D, 0xB8EB, 0x9E3E, 0xF0BD, 0x9E3F, 0xBAE8, 0x9E40, 0xFB63, 0x9E41, 0xF0BE, 0x9E42, 0xF0BF, + 0x9E43, 0xBEE9, 0x9E44, 0xF0C0, 0x9E45, 0xB6EC, 0x9E46, 0xF0C1, 0x9E47, 0xF0C2, 0x9E48, 0xF0C3, 0x9E49, 0xF0C4, 0x9E4A, 0xC8B5, + 0x9E4B, 0xF0C5, 0x9E4C, 0xF0C6, 0x9E4D, 0xFB64, 0x9E4E, 0xF0C7, 0x9E4F, 0xC5F4, 0x9E50, 0xFB65, 0x9E51, 0xF0C8, 0x9E52, 0xFB66, + 0x9E53, 0xFB67, 0x9E54, 0xFB68, 0x9E55, 0xF0C9, 0x9E56, 0xFB69, 0x9E57, 0xF0CA, 0x9E58, 0xF7BD, 0x9E59, 0xFB6A, 0x9E5A, 0xF0CB, + 0x9E5B, 0xF0CC, 0x9E5C, 0xF0CD, 0x9E5D, 0xFB6B, 0x9E5E, 0xF0CE, 0x9E5F, 0xFB6C, 0x9E60, 0xFB6D, 0x9E61, 0xFB6E, 0x9E62, 0xFB6F, + 0x9E63, 0xF0CF, 0x9E64, 0xBAD7, 0x9E65, 0xFB70, 0x9E66, 0xF0D0, 0x9E67, 0xF0D1, 0x9E68, 0xF0D2, 0x9E69, 0xF0D3, 0x9E6A, 0xF0D4, + 0x9E6B, 0xF0D5, 0x9E6C, 0xF0D6, 0x9E6D, 0xF0D8, 0x9E6E, 0xFB71, 0x9E6F, 0xFB72, 0x9E70, 0xD3A5, 0x9E71, 0xF0D7, 0x9E72, 0xFB73, + 0x9E73, 0xF0D9, 0x9E74, 0xFB74, 0x9E75, 0xFB75, 0x9E76, 0xFB76, 0x9E77, 0xFB77, 0x9E78, 0xFB78, 0x9E79, 0xFB79, 0x9E7A, 0xFB7A, + 0x9E7B, 0xFB7B, 0x9E7C, 0xFB7C, 0x9E7D, 0xFB7D, 0x9E7E, 0xF5BA, 0x9E7F, 0xC2B9, 0x9E80, 0xFB7E, 0x9E81, 0xFB80, 0x9E82, 0xF7E4, + 0x9E83, 0xFB81, 0x9E84, 0xFB82, 0x9E85, 0xFB83, 0x9E86, 0xFB84, 0x9E87, 0xF7E5, 0x9E88, 0xF7E6, 0x9E89, 0xFB85, 0x9E8A, 0xFB86, + 0x9E8B, 0xF7E7, 0x9E8C, 0xFB87, 0x9E8D, 0xFB88, 0x9E8E, 0xFB89, 0x9E8F, 0xFB8A, 0x9E90, 0xFB8B, 0x9E91, 0xFB8C, 0x9E92, 0xF7E8, + 0x9E93, 0xC2B4, 0x9E94, 0xFB8D, 0x9E95, 0xFB8E, 0x9E96, 0xFB8F, 0x9E97, 0xFB90, 0x9E98, 0xFB91, 0x9E99, 0xFB92, 0x9E9A, 0xFB93, + 0x9E9B, 0xFB94, 0x9E9C, 0xFB95, 0x9E9D, 0xF7EA, 0x9E9E, 0xFB96, 0x9E9F, 0xF7EB, 0x9EA0, 0xFB97, 0x9EA1, 0xFB98, 0x9EA2, 0xFB99, + 0x9EA3, 0xFB9A, 0x9EA4, 0xFB9B, 0x9EA5, 0xFB9C, 0x9EA6, 0xC2F3, 0x9EA7, 0xFB9D, 0x9EA8, 0xFB9E, 0x9EA9, 0xFB9F, 0x9EAA, 0xFBA0, + 0x9EAB, 0xFC40, 0x9EAC, 0xFC41, 0x9EAD, 0xFC42, 0x9EAE, 0xFC43, 0x9EAF, 0xFC44, 0x9EB0, 0xFC45, 0x9EB1, 0xFC46, 0x9EB2, 0xFC47, + 0x9EB3, 0xFC48, 0x9EB4, 0xF4F0, 0x9EB5, 0xFC49, 0x9EB6, 0xFC4A, 0x9EB7, 0xFC4B, 0x9EB8, 0xF4EF, 0x9EB9, 0xFC4C, 0x9EBA, 0xFC4D, + 0x9EBB, 0xC2E9, 0x9EBC, 0xFC4E, 0x9EBD, 0xF7E1, 0x9EBE, 0xF7E2, 0x9EBF, 0xFC4F, 0x9EC0, 0xFC50, 0x9EC1, 0xFC51, 0x9EC2, 0xFC52, + 0x9EC3, 0xFC53, 0x9EC4, 0xBBC6, 0x9EC5, 0xFC54, 0x9EC6, 0xFC55, 0x9EC7, 0xFC56, 0x9EC8, 0xFC57, 0x9EC9, 0xD9E4, 0x9ECA, 0xFC58, + 0x9ECB, 0xFC59, 0x9ECC, 0xFC5A, 0x9ECD, 0xCAF2, 0x9ECE, 0xC0E8, 0x9ECF, 0xF0A4, 0x9ED0, 0xFC5B, 0x9ED1, 0xBADA, 0x9ED2, 0xFC5C, + 0x9ED3, 0xFC5D, 0x9ED4, 0xC7AD, 0x9ED5, 0xFC5E, 0x9ED6, 0xFC5F, 0x9ED7, 0xFC60, 0x9ED8, 0xC4AC, 0x9ED9, 0xFC61, 0x9EDA, 0xFC62, + 0x9EDB, 0xF7EC, 0x9EDC, 0xF7ED, 0x9EDD, 0xF7EE, 0x9EDE, 0xFC63, 0x9EDF, 0xF7F0, 0x9EE0, 0xF7EF, 0x9EE1, 0xFC64, 0x9EE2, 0xF7F1, + 0x9EE3, 0xFC65, 0x9EE4, 0xFC66, 0x9EE5, 0xF7F4, 0x9EE6, 0xFC67, 0x9EE7, 0xF7F3, 0x9EE8, 0xFC68, 0x9EE9, 0xF7F2, 0x9EEA, 0xF7F5, + 0x9EEB, 0xFC69, 0x9EEC, 0xFC6A, 0x9EED, 0xFC6B, 0x9EEE, 0xFC6C, 0x9EEF, 0xF7F6, 0x9EF0, 0xFC6D, 0x9EF1, 0xFC6E, 0x9EF2, 0xFC6F, + 0x9EF3, 0xFC70, 0x9EF4, 0xFC71, 0x9EF5, 0xFC72, 0x9EF6, 0xFC73, 0x9EF7, 0xFC74, 0x9EF8, 0xFC75, 0x9EF9, 0xEDE9, 0x9EFA, 0xFC76, + 0x9EFB, 0xEDEA, 0x9EFC, 0xEDEB, 0x9EFD, 0xFC77, 0x9EFE, 0xF6BC, 0x9EFF, 0xFC78, 0x9F00, 0xFC79, 0x9F01, 0xFC7A, 0x9F02, 0xFC7B, + 0x9F03, 0xFC7C, 0x9F04, 0xFC7D, 0x9F05, 0xFC7E, 0x9F06, 0xFC80, 0x9F07, 0xFC81, 0x9F08, 0xFC82, 0x9F09, 0xFC83, 0x9F0A, 0xFC84, + 0x9F0B, 0xF6BD, 0x9F0C, 0xFC85, 0x9F0D, 0xF6BE, 0x9F0E, 0xB6A6, 0x9F0F, 0xFC86, 0x9F10, 0xD8BE, 0x9F11, 0xFC87, 0x9F12, 0xFC88, + 0x9F13, 0xB9C4, 0x9F14, 0xFC89, 0x9F15, 0xFC8A, 0x9F16, 0xFC8B, 0x9F17, 0xD8BB, 0x9F18, 0xFC8C, 0x9F19, 0xDCB1, 0x9F1A, 0xFC8D, + 0x9F1B, 0xFC8E, 0x9F1C, 0xFC8F, 0x9F1D, 0xFC90, 0x9F1E, 0xFC91, 0x9F1F, 0xFC92, 0x9F20, 0xCAF3, 0x9F21, 0xFC93, 0x9F22, 0xF7F7, + 0x9F23, 0xFC94, 0x9F24, 0xFC95, 0x9F25, 0xFC96, 0x9F26, 0xFC97, 0x9F27, 0xFC98, 0x9F28, 0xFC99, 0x9F29, 0xFC9A, 0x9F2A, 0xFC9B, + 0x9F2B, 0xFC9C, 0x9F2C, 0xF7F8, 0x9F2D, 0xFC9D, 0x9F2E, 0xFC9E, 0x9F2F, 0xF7F9, 0x9F30, 0xFC9F, 0x9F31, 0xFCA0, 0x9F32, 0xFD40, + 0x9F33, 0xFD41, 0x9F34, 0xFD42, 0x9F35, 0xFD43, 0x9F36, 0xFD44, 0x9F37, 0xF7FB, 0x9F38, 0xFD45, 0x9F39, 0xF7FA, 0x9F3A, 0xFD46, + 0x9F3B, 0xB1C7, 0x9F3C, 0xFD47, 0x9F3D, 0xF7FC, 0x9F3E, 0xF7FD, 0x9F3F, 0xFD48, 0x9F40, 0xFD49, 0x9F41, 0xFD4A, 0x9F42, 0xFD4B, + 0x9F43, 0xFD4C, 0x9F44, 0xF7FE, 0x9F45, 0xFD4D, 0x9F46, 0xFD4E, 0x9F47, 0xFD4F, 0x9F48, 0xFD50, 0x9F49, 0xFD51, 0x9F4A, 0xFD52, + 0x9F4B, 0xFD53, 0x9F4C, 0xFD54, 0x9F4D, 0xFD55, 0x9F4E, 0xFD56, 0x9F4F, 0xFD57, 0x9F50, 0xC6EB, 0x9F51, 0xECB4, 0x9F52, 0xFD58, + 0x9F53, 0xFD59, 0x9F54, 0xFD5A, 0x9F55, 0xFD5B, 0x9F56, 0xFD5C, 0x9F57, 0xFD5D, 0x9F58, 0xFD5E, 0x9F59, 0xFD5F, 0x9F5A, 0xFD60, + 0x9F5B, 0xFD61, 0x9F5C, 0xFD62, 0x9F5D, 0xFD63, 0x9F5E, 0xFD64, 0x9F5F, 0xFD65, 0x9F60, 0xFD66, 0x9F61, 0xFD67, 0x9F62, 0xFD68, + 0x9F63, 0xFD69, 0x9F64, 0xFD6A, 0x9F65, 0xFD6B, 0x9F66, 0xFD6C, 0x9F67, 0xFD6D, 0x9F68, 0xFD6E, 0x9F69, 0xFD6F, 0x9F6A, 0xFD70, + 0x9F6B, 0xFD71, 0x9F6C, 0xFD72, 0x9F6D, 0xFD73, 0x9F6E, 0xFD74, 0x9F6F, 0xFD75, 0x9F70, 0xFD76, 0x9F71, 0xFD77, 0x9F72, 0xFD78, + 0x9F73, 0xFD79, 0x9F74, 0xFD7A, 0x9F75, 0xFD7B, 0x9F76, 0xFD7C, 0x9F77, 0xFD7D, 0x9F78, 0xFD7E, 0x9F79, 0xFD80, 0x9F7A, 0xFD81, + 0x9F7B, 0xFD82, 0x9F7C, 0xFD83, 0x9F7D, 0xFD84, 0x9F7E, 0xFD85, 0x9F7F, 0xB3DD, 0x9F80, 0xF6B3, 0x9F81, 0xFD86, 0x9F82, 0xFD87, + 0x9F83, 0xF6B4, 0x9F84, 0xC1E4, 0x9F85, 0xF6B5, 0x9F86, 0xF6B6, 0x9F87, 0xF6B7, 0x9F88, 0xF6B8, 0x9F89, 0xF6B9, 0x9F8A, 0xF6BA, + 0x9F8B, 0xC8A3, 0x9F8C, 0xF6BB, 0x9F8D, 0xFD88, 0x9F8E, 0xFD89, 0x9F8F, 0xFD8A, 0x9F90, 0xFD8B, 0x9F91, 0xFD8C, 0x9F92, 0xFD8D, + 0x9F93, 0xFD8E, 0x9F94, 0xFD8F, 0x9F95, 0xFD90, 0x9F96, 0xFD91, 0x9F97, 0xFD92, 0x9F98, 0xFD93, 0x9F99, 0xC1FA, 0x9F9A, 0xB9A8, + 0x9F9B, 0xEDE8, 0x9F9C, 0xFD94, 0x9F9D, 0xFD95, 0x9F9E, 0xFD96, 0x9F9F, 0xB9EA, 0x9FA0, 0xD9DF, 0x9FA1, 0xFD97, 0x9FA2, 0xFD98, + 0x9FA3, 0xFD99, 0x9FA4, 0xFD9A, 0x9FA5, 0xFD9B, 0xF92C, 0xFD9C, 0xF979, 0xFD9D, 0xF995, 0xFD9E, 0xF9E7, 0xFD9F, 0xF9F1, 0xFDA0, + 0xFA0C, 0xFE40, 0xFA0D, 0xFE41, 0xFA0E, 0xFE42, 0xFA0F, 0xFE43, 0xFA11, 0xFE44, 0xFA13, 0xFE45, 0xFA14, 0xFE46, 0xFA18, 0xFE47, + 0xFA1F, 0xFE48, 0xFA20, 0xFE49, 0xFA21, 0xFE4A, 0xFA23, 0xFE4B, 0xFA24, 0xFE4C, 0xFA27, 0xFE4D, 0xFA28, 0xFE4E, 0xFA29, 0xFE4F, + 0xFE30, 0xA955, 0xFE31, 0xA6F2, 0xFE33, 0xA6F4, 0xFE34, 0xA6F5, 0xFE35, 0xA6E0, 0xFE36, 0xA6E1, 0xFE37, 0xA6F0, 0xFE38, 0xA6F1, + 0xFE39, 0xA6E2, 0xFE3A, 0xA6E3, 0xFE3B, 0xA6EE, 0xFE3C, 0xA6EF, 0xFE3D, 0xA6E6, 0xFE3E, 0xA6E7, 0xFE3F, 0xA6E4, 0xFE40, 0xA6E5, + 0xFE41, 0xA6E8, 0xFE42, 0xA6E9, 0xFE43, 0xA6EA, 0xFE44, 0xA6EB, 0xFE49, 0xA968, 0xFE4A, 0xA969, 0xFE4B, 0xA96A, 0xFE4C, 0xA96B, + 0xFE4D, 0xA96C, 0xFE4E, 0xA96D, 0xFE4F, 0xA96E, 0xFE50, 0xA96F, 0xFE51, 0xA970, 0xFE52, 0xA971, 0xFE54, 0xA972, 0xFE55, 0xA973, + 0xFE56, 0xA974, 0xFE57, 0xA975, 0xFE59, 0xA976, 0xFE5A, 0xA977, 0xFE5B, 0xA978, 0xFE5C, 0xA979, 0xFE5D, 0xA97A, 0xFE5E, 0xA97B, + 0xFE5F, 0xA97C, 0xFE60, 0xA97D, 0xFE61, 0xA97E, 0xFE62, 0xA980, 0xFE63, 0xA981, 0xFE64, 0xA982, 0xFE65, 0xA983, 0xFE66, 0xA984, + 0xFE68, 0xA985, 0xFE69, 0xA986, 0xFE6A, 0xA987, 0xFE6B, 0xA988, 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA1E7, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA3DC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA1AB, 0xFFE0, 0xA1E9, 0xFFE1, 0xA1EA, 0xFFE2, 0xA956, 0xFFE3, 0xA3FE, 0xFFE4, 0xA957, 0xFFE5, 0xA3A4, + 0, 0 +}; + +static const WCHAR oem2uni936[] = { /* GBK --> Unicode pairs */ + 0x0080, 0x20AC, 0x8140, 0x4E02, 0x8141, 0x4E04, 0x8142, 0x4E05, 0x8143, 0x4E06, 0x8144, 0x4E0F, 0x8145, 0x4E12, 0x8146, 0x4E17, + 0x8147, 0x4E1F, 0x8148, 0x4E20, 0x8149, 0x4E21, 0x814A, 0x4E23, 0x814B, 0x4E26, 0x814C, 0x4E29, 0x814D, 0x4E2E, 0x814E, 0x4E2F, + 0x814F, 0x4E31, 0x8150, 0x4E33, 0x8151, 0x4E35, 0x8152, 0x4E37, 0x8153, 0x4E3C, 0x8154, 0x4E40, 0x8155, 0x4E41, 0x8156, 0x4E42, + 0x8157, 0x4E44, 0x8158, 0x4E46, 0x8159, 0x4E4A, 0x815A, 0x4E51, 0x815B, 0x4E55, 0x815C, 0x4E57, 0x815D, 0x4E5A, 0x815E, 0x4E5B, + 0x815F, 0x4E62, 0x8160, 0x4E63, 0x8161, 0x4E64, 0x8162, 0x4E65, 0x8163, 0x4E67, 0x8164, 0x4E68, 0x8165, 0x4E6A, 0x8166, 0x4E6B, + 0x8167, 0x4E6C, 0x8168, 0x4E6D, 0x8169, 0x4E6E, 0x816A, 0x4E6F, 0x816B, 0x4E72, 0x816C, 0x4E74, 0x816D, 0x4E75, 0x816E, 0x4E76, + 0x816F, 0x4E77, 0x8170, 0x4E78, 0x8171, 0x4E79, 0x8172, 0x4E7A, 0x8173, 0x4E7B, 0x8174, 0x4E7C, 0x8175, 0x4E7D, 0x8176, 0x4E7F, + 0x8177, 0x4E80, 0x8178, 0x4E81, 0x8179, 0x4E82, 0x817A, 0x4E83, 0x817B, 0x4E84, 0x817C, 0x4E85, 0x817D, 0x4E87, 0x817E, 0x4E8A, + 0x8180, 0x4E90, 0x8181, 0x4E96, 0x8182, 0x4E97, 0x8183, 0x4E99, 0x8184, 0x4E9C, 0x8185, 0x4E9D, 0x8186, 0x4E9E, 0x8187, 0x4EA3, + 0x8188, 0x4EAA, 0x8189, 0x4EAF, 0x818A, 0x4EB0, 0x818B, 0x4EB1, 0x818C, 0x4EB4, 0x818D, 0x4EB6, 0x818E, 0x4EB7, 0x818F, 0x4EB8, + 0x8190, 0x4EB9, 0x8191, 0x4EBC, 0x8192, 0x4EBD, 0x8193, 0x4EBE, 0x8194, 0x4EC8, 0x8195, 0x4ECC, 0x8196, 0x4ECF, 0x8197, 0x4ED0, + 0x8198, 0x4ED2, 0x8199, 0x4EDA, 0x819A, 0x4EDB, 0x819B, 0x4EDC, 0x819C, 0x4EE0, 0x819D, 0x4EE2, 0x819E, 0x4EE6, 0x819F, 0x4EE7, + 0x81A0, 0x4EE9, 0x81A1, 0x4EED, 0x81A2, 0x4EEE, 0x81A3, 0x4EEF, 0x81A4, 0x4EF1, 0x81A5, 0x4EF4, 0x81A6, 0x4EF8, 0x81A7, 0x4EF9, + 0x81A8, 0x4EFA, 0x81A9, 0x4EFC, 0x81AA, 0x4EFE, 0x81AB, 0x4F00, 0x81AC, 0x4F02, 0x81AD, 0x4F03, 0x81AE, 0x4F04, 0x81AF, 0x4F05, + 0x81B0, 0x4F06, 0x81B1, 0x4F07, 0x81B2, 0x4F08, 0x81B3, 0x4F0B, 0x81B4, 0x4F0C, 0x81B5, 0x4F12, 0x81B6, 0x4F13, 0x81B7, 0x4F14, + 0x81B8, 0x4F15, 0x81B9, 0x4F16, 0x81BA, 0x4F1C, 0x81BB, 0x4F1D, 0x81BC, 0x4F21, 0x81BD, 0x4F23, 0x81BE, 0x4F28, 0x81BF, 0x4F29, + 0x81C0, 0x4F2C, 0x81C1, 0x4F2D, 0x81C2, 0x4F2E, 0x81C3, 0x4F31, 0x81C4, 0x4F33, 0x81C5, 0x4F35, 0x81C6, 0x4F37, 0x81C7, 0x4F39, + 0x81C8, 0x4F3B, 0x81C9, 0x4F3E, 0x81CA, 0x4F3F, 0x81CB, 0x4F40, 0x81CC, 0x4F41, 0x81CD, 0x4F42, 0x81CE, 0x4F44, 0x81CF, 0x4F45, + 0x81D0, 0x4F47, 0x81D1, 0x4F48, 0x81D2, 0x4F49, 0x81D3, 0x4F4A, 0x81D4, 0x4F4B, 0x81D5, 0x4F4C, 0x81D6, 0x4F52, 0x81D7, 0x4F54, + 0x81D8, 0x4F56, 0x81D9, 0x4F61, 0x81DA, 0x4F62, 0x81DB, 0x4F66, 0x81DC, 0x4F68, 0x81DD, 0x4F6A, 0x81DE, 0x4F6B, 0x81DF, 0x4F6D, + 0x81E0, 0x4F6E, 0x81E1, 0x4F71, 0x81E2, 0x4F72, 0x81E3, 0x4F75, 0x81E4, 0x4F77, 0x81E5, 0x4F78, 0x81E6, 0x4F79, 0x81E7, 0x4F7A, + 0x81E8, 0x4F7D, 0x81E9, 0x4F80, 0x81EA, 0x4F81, 0x81EB, 0x4F82, 0x81EC, 0x4F85, 0x81ED, 0x4F86, 0x81EE, 0x4F87, 0x81EF, 0x4F8A, + 0x81F0, 0x4F8C, 0x81F1, 0x4F8E, 0x81F2, 0x4F90, 0x81F3, 0x4F92, 0x81F4, 0x4F93, 0x81F5, 0x4F95, 0x81F6, 0x4F96, 0x81F7, 0x4F98, + 0x81F8, 0x4F99, 0x81F9, 0x4F9A, 0x81FA, 0x4F9C, 0x81FB, 0x4F9E, 0x81FC, 0x4F9F, 0x81FD, 0x4FA1, 0x81FE, 0x4FA2, 0x8240, 0x4FA4, + 0x8241, 0x4FAB, 0x8242, 0x4FAD, 0x8243, 0x4FB0, 0x8244, 0x4FB1, 0x8245, 0x4FB2, 0x8246, 0x4FB3, 0x8247, 0x4FB4, 0x8248, 0x4FB6, + 0x8249, 0x4FB7, 0x824A, 0x4FB8, 0x824B, 0x4FB9, 0x824C, 0x4FBA, 0x824D, 0x4FBB, 0x824E, 0x4FBC, 0x824F, 0x4FBD, 0x8250, 0x4FBE, + 0x8251, 0x4FC0, 0x8252, 0x4FC1, 0x8253, 0x4FC2, 0x8254, 0x4FC6, 0x8255, 0x4FC7, 0x8256, 0x4FC8, 0x8257, 0x4FC9, 0x8258, 0x4FCB, + 0x8259, 0x4FCC, 0x825A, 0x4FCD, 0x825B, 0x4FD2, 0x825C, 0x4FD3, 0x825D, 0x4FD4, 0x825E, 0x4FD5, 0x825F, 0x4FD6, 0x8260, 0x4FD9, + 0x8261, 0x4FDB, 0x8262, 0x4FE0, 0x8263, 0x4FE2, 0x8264, 0x4FE4, 0x8265, 0x4FE5, 0x8266, 0x4FE7, 0x8267, 0x4FEB, 0x8268, 0x4FEC, + 0x8269, 0x4FF0, 0x826A, 0x4FF2, 0x826B, 0x4FF4, 0x826C, 0x4FF5, 0x826D, 0x4FF6, 0x826E, 0x4FF7, 0x826F, 0x4FF9, 0x8270, 0x4FFB, + 0x8271, 0x4FFC, 0x8272, 0x4FFD, 0x8273, 0x4FFF, 0x8274, 0x5000, 0x8275, 0x5001, 0x8276, 0x5002, 0x8277, 0x5003, 0x8278, 0x5004, + 0x8279, 0x5005, 0x827A, 0x5006, 0x827B, 0x5007, 0x827C, 0x5008, 0x827D, 0x5009, 0x827E, 0x500A, 0x8280, 0x500B, 0x8281, 0x500E, + 0x8282, 0x5010, 0x8283, 0x5011, 0x8284, 0x5013, 0x8285, 0x5015, 0x8286, 0x5016, 0x8287, 0x5017, 0x8288, 0x501B, 0x8289, 0x501D, + 0x828A, 0x501E, 0x828B, 0x5020, 0x828C, 0x5022, 0x828D, 0x5023, 0x828E, 0x5024, 0x828F, 0x5027, 0x8290, 0x502B, 0x8291, 0x502F, + 0x8292, 0x5030, 0x8293, 0x5031, 0x8294, 0x5032, 0x8295, 0x5033, 0x8296, 0x5034, 0x8297, 0x5035, 0x8298, 0x5036, 0x8299, 0x5037, + 0x829A, 0x5038, 0x829B, 0x5039, 0x829C, 0x503B, 0x829D, 0x503D, 0x829E, 0x503F, 0x829F, 0x5040, 0x82A0, 0x5041, 0x82A1, 0x5042, + 0x82A2, 0x5044, 0x82A3, 0x5045, 0x82A4, 0x5046, 0x82A5, 0x5049, 0x82A6, 0x504A, 0x82A7, 0x504B, 0x82A8, 0x504D, 0x82A9, 0x5050, + 0x82AA, 0x5051, 0x82AB, 0x5052, 0x82AC, 0x5053, 0x82AD, 0x5054, 0x82AE, 0x5056, 0x82AF, 0x5057, 0x82B0, 0x5058, 0x82B1, 0x5059, + 0x82B2, 0x505B, 0x82B3, 0x505D, 0x82B4, 0x505E, 0x82B5, 0x505F, 0x82B6, 0x5060, 0x82B7, 0x5061, 0x82B8, 0x5062, 0x82B9, 0x5063, + 0x82BA, 0x5064, 0x82BB, 0x5066, 0x82BC, 0x5067, 0x82BD, 0x5068, 0x82BE, 0x5069, 0x82BF, 0x506A, 0x82C0, 0x506B, 0x82C1, 0x506D, + 0x82C2, 0x506E, 0x82C3, 0x506F, 0x82C4, 0x5070, 0x82C5, 0x5071, 0x82C6, 0x5072, 0x82C7, 0x5073, 0x82C8, 0x5074, 0x82C9, 0x5075, + 0x82CA, 0x5078, 0x82CB, 0x5079, 0x82CC, 0x507A, 0x82CD, 0x507C, 0x82CE, 0x507D, 0x82CF, 0x5081, 0x82D0, 0x5082, 0x82D1, 0x5083, + 0x82D2, 0x5084, 0x82D3, 0x5086, 0x82D4, 0x5087, 0x82D5, 0x5089, 0x82D6, 0x508A, 0x82D7, 0x508B, 0x82D8, 0x508C, 0x82D9, 0x508E, + 0x82DA, 0x508F, 0x82DB, 0x5090, 0x82DC, 0x5091, 0x82DD, 0x5092, 0x82DE, 0x5093, 0x82DF, 0x5094, 0x82E0, 0x5095, 0x82E1, 0x5096, + 0x82E2, 0x5097, 0x82E3, 0x5098, 0x82E4, 0x5099, 0x82E5, 0x509A, 0x82E6, 0x509B, 0x82E7, 0x509C, 0x82E8, 0x509D, 0x82E9, 0x509E, + 0x82EA, 0x509F, 0x82EB, 0x50A0, 0x82EC, 0x50A1, 0x82ED, 0x50A2, 0x82EE, 0x50A4, 0x82EF, 0x50A6, 0x82F0, 0x50AA, 0x82F1, 0x50AB, + 0x82F2, 0x50AD, 0x82F3, 0x50AE, 0x82F4, 0x50AF, 0x82F5, 0x50B0, 0x82F6, 0x50B1, 0x82F7, 0x50B3, 0x82F8, 0x50B4, 0x82F9, 0x50B5, + 0x82FA, 0x50B6, 0x82FB, 0x50B7, 0x82FC, 0x50B8, 0x82FD, 0x50B9, 0x82FE, 0x50BC, 0x8340, 0x50BD, 0x8341, 0x50BE, 0x8342, 0x50BF, + 0x8343, 0x50C0, 0x8344, 0x50C1, 0x8345, 0x50C2, 0x8346, 0x50C3, 0x8347, 0x50C4, 0x8348, 0x50C5, 0x8349, 0x50C6, 0x834A, 0x50C7, + 0x834B, 0x50C8, 0x834C, 0x50C9, 0x834D, 0x50CA, 0x834E, 0x50CB, 0x834F, 0x50CC, 0x8350, 0x50CD, 0x8351, 0x50CE, 0x8352, 0x50D0, + 0x8353, 0x50D1, 0x8354, 0x50D2, 0x8355, 0x50D3, 0x8356, 0x50D4, 0x8357, 0x50D5, 0x8358, 0x50D7, 0x8359, 0x50D8, 0x835A, 0x50D9, + 0x835B, 0x50DB, 0x835C, 0x50DC, 0x835D, 0x50DD, 0x835E, 0x50DE, 0x835F, 0x50DF, 0x8360, 0x50E0, 0x8361, 0x50E1, 0x8362, 0x50E2, + 0x8363, 0x50E3, 0x8364, 0x50E4, 0x8365, 0x50E5, 0x8366, 0x50E8, 0x8367, 0x50E9, 0x8368, 0x50EA, 0x8369, 0x50EB, 0x836A, 0x50EF, + 0x836B, 0x50F0, 0x836C, 0x50F1, 0x836D, 0x50F2, 0x836E, 0x50F4, 0x836F, 0x50F6, 0x8370, 0x50F7, 0x8371, 0x50F8, 0x8372, 0x50F9, + 0x8373, 0x50FA, 0x8374, 0x50FC, 0x8375, 0x50FD, 0x8376, 0x50FE, 0x8377, 0x50FF, 0x8378, 0x5100, 0x8379, 0x5101, 0x837A, 0x5102, + 0x837B, 0x5103, 0x837C, 0x5104, 0x837D, 0x5105, 0x837E, 0x5108, 0x8380, 0x5109, 0x8381, 0x510A, 0x8382, 0x510C, 0x8383, 0x510D, + 0x8384, 0x510E, 0x8385, 0x510F, 0x8386, 0x5110, 0x8387, 0x5111, 0x8388, 0x5113, 0x8389, 0x5114, 0x838A, 0x5115, 0x838B, 0x5116, + 0x838C, 0x5117, 0x838D, 0x5118, 0x838E, 0x5119, 0x838F, 0x511A, 0x8390, 0x511B, 0x8391, 0x511C, 0x8392, 0x511D, 0x8393, 0x511E, + 0x8394, 0x511F, 0x8395, 0x5120, 0x8396, 0x5122, 0x8397, 0x5123, 0x8398, 0x5124, 0x8399, 0x5125, 0x839A, 0x5126, 0x839B, 0x5127, + 0x839C, 0x5128, 0x839D, 0x5129, 0x839E, 0x512A, 0x839F, 0x512B, 0x83A0, 0x512C, 0x83A1, 0x512D, 0x83A2, 0x512E, 0x83A3, 0x512F, + 0x83A4, 0x5130, 0x83A5, 0x5131, 0x83A6, 0x5132, 0x83A7, 0x5133, 0x83A8, 0x5134, 0x83A9, 0x5135, 0x83AA, 0x5136, 0x83AB, 0x5137, + 0x83AC, 0x5138, 0x83AD, 0x5139, 0x83AE, 0x513A, 0x83AF, 0x513B, 0x83B0, 0x513C, 0x83B1, 0x513D, 0x83B2, 0x513E, 0x83B3, 0x5142, + 0x83B4, 0x5147, 0x83B5, 0x514A, 0x83B6, 0x514C, 0x83B7, 0x514E, 0x83B8, 0x514F, 0x83B9, 0x5150, 0x83BA, 0x5152, 0x83BB, 0x5153, + 0x83BC, 0x5157, 0x83BD, 0x5158, 0x83BE, 0x5159, 0x83BF, 0x515B, 0x83C0, 0x515D, 0x83C1, 0x515E, 0x83C2, 0x515F, 0x83C3, 0x5160, + 0x83C4, 0x5161, 0x83C5, 0x5163, 0x83C6, 0x5164, 0x83C7, 0x5166, 0x83C8, 0x5167, 0x83C9, 0x5169, 0x83CA, 0x516A, 0x83CB, 0x516F, + 0x83CC, 0x5172, 0x83CD, 0x517A, 0x83CE, 0x517E, 0x83CF, 0x517F, 0x83D0, 0x5183, 0x83D1, 0x5184, 0x83D2, 0x5186, 0x83D3, 0x5187, + 0x83D4, 0x518A, 0x83D5, 0x518B, 0x83D6, 0x518E, 0x83D7, 0x518F, 0x83D8, 0x5190, 0x83D9, 0x5191, 0x83DA, 0x5193, 0x83DB, 0x5194, + 0x83DC, 0x5198, 0x83DD, 0x519A, 0x83DE, 0x519D, 0x83DF, 0x519E, 0x83E0, 0x519F, 0x83E1, 0x51A1, 0x83E2, 0x51A3, 0x83E3, 0x51A6, + 0x83E4, 0x51A7, 0x83E5, 0x51A8, 0x83E6, 0x51A9, 0x83E7, 0x51AA, 0x83E8, 0x51AD, 0x83E9, 0x51AE, 0x83EA, 0x51B4, 0x83EB, 0x51B8, + 0x83EC, 0x51B9, 0x83ED, 0x51BA, 0x83EE, 0x51BE, 0x83EF, 0x51BF, 0x83F0, 0x51C1, 0x83F1, 0x51C2, 0x83F2, 0x51C3, 0x83F3, 0x51C5, + 0x83F4, 0x51C8, 0x83F5, 0x51CA, 0x83F6, 0x51CD, 0x83F7, 0x51CE, 0x83F8, 0x51D0, 0x83F9, 0x51D2, 0x83FA, 0x51D3, 0x83FB, 0x51D4, + 0x83FC, 0x51D5, 0x83FD, 0x51D6, 0x83FE, 0x51D7, 0x8440, 0x51D8, 0x8441, 0x51D9, 0x8442, 0x51DA, 0x8443, 0x51DC, 0x8444, 0x51DE, + 0x8445, 0x51DF, 0x8446, 0x51E2, 0x8447, 0x51E3, 0x8448, 0x51E5, 0x8449, 0x51E6, 0x844A, 0x51E7, 0x844B, 0x51E8, 0x844C, 0x51E9, + 0x844D, 0x51EA, 0x844E, 0x51EC, 0x844F, 0x51EE, 0x8450, 0x51F1, 0x8451, 0x51F2, 0x8452, 0x51F4, 0x8453, 0x51F7, 0x8454, 0x51FE, + 0x8455, 0x5204, 0x8456, 0x5205, 0x8457, 0x5209, 0x8458, 0x520B, 0x8459, 0x520C, 0x845A, 0x520F, 0x845B, 0x5210, 0x845C, 0x5213, + 0x845D, 0x5214, 0x845E, 0x5215, 0x845F, 0x521C, 0x8460, 0x521E, 0x8461, 0x521F, 0x8462, 0x5221, 0x8463, 0x5222, 0x8464, 0x5223, + 0x8465, 0x5225, 0x8466, 0x5226, 0x8467, 0x5227, 0x8468, 0x522A, 0x8469, 0x522C, 0x846A, 0x522F, 0x846B, 0x5231, 0x846C, 0x5232, + 0x846D, 0x5234, 0x846E, 0x5235, 0x846F, 0x523C, 0x8470, 0x523E, 0x8471, 0x5244, 0x8472, 0x5245, 0x8473, 0x5246, 0x8474, 0x5247, + 0x8475, 0x5248, 0x8476, 0x5249, 0x8477, 0x524B, 0x8478, 0x524E, 0x8479, 0x524F, 0x847A, 0x5252, 0x847B, 0x5253, 0x847C, 0x5255, + 0x847D, 0x5257, 0x847E, 0x5258, 0x8480, 0x5259, 0x8481, 0x525A, 0x8482, 0x525B, 0x8483, 0x525D, 0x8484, 0x525F, 0x8485, 0x5260, + 0x8486, 0x5262, 0x8487, 0x5263, 0x8488, 0x5264, 0x8489, 0x5266, 0x848A, 0x5268, 0x848B, 0x526B, 0x848C, 0x526C, 0x848D, 0x526D, + 0x848E, 0x526E, 0x848F, 0x5270, 0x8490, 0x5271, 0x8491, 0x5273, 0x8492, 0x5274, 0x8493, 0x5275, 0x8494, 0x5276, 0x8495, 0x5277, + 0x8496, 0x5278, 0x8497, 0x5279, 0x8498, 0x527A, 0x8499, 0x527B, 0x849A, 0x527C, 0x849B, 0x527E, 0x849C, 0x5280, 0x849D, 0x5283, + 0x849E, 0x5284, 0x849F, 0x5285, 0x84A0, 0x5286, 0x84A1, 0x5287, 0x84A2, 0x5289, 0x84A3, 0x528A, 0x84A4, 0x528B, 0x84A5, 0x528C, + 0x84A6, 0x528D, 0x84A7, 0x528E, 0x84A8, 0x528F, 0x84A9, 0x5291, 0x84AA, 0x5292, 0x84AB, 0x5294, 0x84AC, 0x5295, 0x84AD, 0x5296, + 0x84AE, 0x5297, 0x84AF, 0x5298, 0x84B0, 0x5299, 0x84B1, 0x529A, 0x84B2, 0x529C, 0x84B3, 0x52A4, 0x84B4, 0x52A5, 0x84B5, 0x52A6, + 0x84B6, 0x52A7, 0x84B7, 0x52AE, 0x84B8, 0x52AF, 0x84B9, 0x52B0, 0x84BA, 0x52B4, 0x84BB, 0x52B5, 0x84BC, 0x52B6, 0x84BD, 0x52B7, + 0x84BE, 0x52B8, 0x84BF, 0x52B9, 0x84C0, 0x52BA, 0x84C1, 0x52BB, 0x84C2, 0x52BC, 0x84C3, 0x52BD, 0x84C4, 0x52C0, 0x84C5, 0x52C1, + 0x84C6, 0x52C2, 0x84C7, 0x52C4, 0x84C8, 0x52C5, 0x84C9, 0x52C6, 0x84CA, 0x52C8, 0x84CB, 0x52CA, 0x84CC, 0x52CC, 0x84CD, 0x52CD, + 0x84CE, 0x52CE, 0x84CF, 0x52CF, 0x84D0, 0x52D1, 0x84D1, 0x52D3, 0x84D2, 0x52D4, 0x84D3, 0x52D5, 0x84D4, 0x52D7, 0x84D5, 0x52D9, + 0x84D6, 0x52DA, 0x84D7, 0x52DB, 0x84D8, 0x52DC, 0x84D9, 0x52DD, 0x84DA, 0x52DE, 0x84DB, 0x52E0, 0x84DC, 0x52E1, 0x84DD, 0x52E2, + 0x84DE, 0x52E3, 0x84DF, 0x52E5, 0x84E0, 0x52E6, 0x84E1, 0x52E7, 0x84E2, 0x52E8, 0x84E3, 0x52E9, 0x84E4, 0x52EA, 0x84E5, 0x52EB, + 0x84E6, 0x52EC, 0x84E7, 0x52ED, 0x84E8, 0x52EE, 0x84E9, 0x52EF, 0x84EA, 0x52F1, 0x84EB, 0x52F2, 0x84EC, 0x52F3, 0x84ED, 0x52F4, + 0x84EE, 0x52F5, 0x84EF, 0x52F6, 0x84F0, 0x52F7, 0x84F1, 0x52F8, 0x84F2, 0x52FB, 0x84F3, 0x52FC, 0x84F4, 0x52FD, 0x84F5, 0x5301, + 0x84F6, 0x5302, 0x84F7, 0x5303, 0x84F8, 0x5304, 0x84F9, 0x5307, 0x84FA, 0x5309, 0x84FB, 0x530A, 0x84FC, 0x530B, 0x84FD, 0x530C, + 0x84FE, 0x530E, 0x8540, 0x5311, 0x8541, 0x5312, 0x8542, 0x5313, 0x8543, 0x5314, 0x8544, 0x5318, 0x8545, 0x531B, 0x8546, 0x531C, + 0x8547, 0x531E, 0x8548, 0x531F, 0x8549, 0x5322, 0x854A, 0x5324, 0x854B, 0x5325, 0x854C, 0x5327, 0x854D, 0x5328, 0x854E, 0x5329, + 0x854F, 0x532B, 0x8550, 0x532C, 0x8551, 0x532D, 0x8552, 0x532F, 0x8553, 0x5330, 0x8554, 0x5331, 0x8555, 0x5332, 0x8556, 0x5333, + 0x8557, 0x5334, 0x8558, 0x5335, 0x8559, 0x5336, 0x855A, 0x5337, 0x855B, 0x5338, 0x855C, 0x533C, 0x855D, 0x533D, 0x855E, 0x5340, + 0x855F, 0x5342, 0x8560, 0x5344, 0x8561, 0x5346, 0x8562, 0x534B, 0x8563, 0x534C, 0x8564, 0x534D, 0x8565, 0x5350, 0x8566, 0x5354, + 0x8567, 0x5358, 0x8568, 0x5359, 0x8569, 0x535B, 0x856A, 0x535D, 0x856B, 0x5365, 0x856C, 0x5368, 0x856D, 0x536A, 0x856E, 0x536C, + 0x856F, 0x536D, 0x8570, 0x5372, 0x8571, 0x5376, 0x8572, 0x5379, 0x8573, 0x537B, 0x8574, 0x537C, 0x8575, 0x537D, 0x8576, 0x537E, + 0x8577, 0x5380, 0x8578, 0x5381, 0x8579, 0x5383, 0x857A, 0x5387, 0x857B, 0x5388, 0x857C, 0x538A, 0x857D, 0x538E, 0x857E, 0x538F, + 0x8580, 0x5390, 0x8581, 0x5391, 0x8582, 0x5392, 0x8583, 0x5393, 0x8584, 0x5394, 0x8585, 0x5396, 0x8586, 0x5397, 0x8587, 0x5399, + 0x8588, 0x539B, 0x8589, 0x539C, 0x858A, 0x539E, 0x858B, 0x53A0, 0x858C, 0x53A1, 0x858D, 0x53A4, 0x858E, 0x53A7, 0x858F, 0x53AA, + 0x8590, 0x53AB, 0x8591, 0x53AC, 0x8592, 0x53AD, 0x8593, 0x53AF, 0x8594, 0x53B0, 0x8595, 0x53B1, 0x8596, 0x53B2, 0x8597, 0x53B3, + 0x8598, 0x53B4, 0x8599, 0x53B5, 0x859A, 0x53B7, 0x859B, 0x53B8, 0x859C, 0x53B9, 0x859D, 0x53BA, 0x859E, 0x53BC, 0x859F, 0x53BD, + 0x85A0, 0x53BE, 0x85A1, 0x53C0, 0x85A2, 0x53C3, 0x85A3, 0x53C4, 0x85A4, 0x53C5, 0x85A5, 0x53C6, 0x85A6, 0x53C7, 0x85A7, 0x53CE, + 0x85A8, 0x53CF, 0x85A9, 0x53D0, 0x85AA, 0x53D2, 0x85AB, 0x53D3, 0x85AC, 0x53D5, 0x85AD, 0x53DA, 0x85AE, 0x53DC, 0x85AF, 0x53DD, + 0x85B0, 0x53DE, 0x85B1, 0x53E1, 0x85B2, 0x53E2, 0x85B3, 0x53E7, 0x85B4, 0x53F4, 0x85B5, 0x53FA, 0x85B6, 0x53FE, 0x85B7, 0x53FF, + 0x85B8, 0x5400, 0x85B9, 0x5402, 0x85BA, 0x5405, 0x85BB, 0x5407, 0x85BC, 0x540B, 0x85BD, 0x5414, 0x85BE, 0x5418, 0x85BF, 0x5419, + 0x85C0, 0x541A, 0x85C1, 0x541C, 0x85C2, 0x5422, 0x85C3, 0x5424, 0x85C4, 0x5425, 0x85C5, 0x542A, 0x85C6, 0x5430, 0x85C7, 0x5433, + 0x85C8, 0x5436, 0x85C9, 0x5437, 0x85CA, 0x543A, 0x85CB, 0x543D, 0x85CC, 0x543F, 0x85CD, 0x5441, 0x85CE, 0x5442, 0x85CF, 0x5444, + 0x85D0, 0x5445, 0x85D1, 0x5447, 0x85D2, 0x5449, 0x85D3, 0x544C, 0x85D4, 0x544D, 0x85D5, 0x544E, 0x85D6, 0x544F, 0x85D7, 0x5451, + 0x85D8, 0x545A, 0x85D9, 0x545D, 0x85DA, 0x545E, 0x85DB, 0x545F, 0x85DC, 0x5460, 0x85DD, 0x5461, 0x85DE, 0x5463, 0x85DF, 0x5465, + 0x85E0, 0x5467, 0x85E1, 0x5469, 0x85E2, 0x546A, 0x85E3, 0x546B, 0x85E4, 0x546C, 0x85E5, 0x546D, 0x85E6, 0x546E, 0x85E7, 0x546F, + 0x85E8, 0x5470, 0x85E9, 0x5474, 0x85EA, 0x5479, 0x85EB, 0x547A, 0x85EC, 0x547E, 0x85ED, 0x547F, 0x85EE, 0x5481, 0x85EF, 0x5483, + 0x85F0, 0x5485, 0x85F1, 0x5487, 0x85F2, 0x5488, 0x85F3, 0x5489, 0x85F4, 0x548A, 0x85F5, 0x548D, 0x85F6, 0x5491, 0x85F7, 0x5493, + 0x85F8, 0x5497, 0x85F9, 0x5498, 0x85FA, 0x549C, 0x85FB, 0x549E, 0x85FC, 0x549F, 0x85FD, 0x54A0, 0x85FE, 0x54A1, 0x8640, 0x54A2, + 0x8641, 0x54A5, 0x8642, 0x54AE, 0x8643, 0x54B0, 0x8644, 0x54B2, 0x8645, 0x54B5, 0x8646, 0x54B6, 0x8647, 0x54B7, 0x8648, 0x54B9, + 0x8649, 0x54BA, 0x864A, 0x54BC, 0x864B, 0x54BE, 0x864C, 0x54C3, 0x864D, 0x54C5, 0x864E, 0x54CA, 0x864F, 0x54CB, 0x8650, 0x54D6, + 0x8651, 0x54D8, 0x8652, 0x54DB, 0x8653, 0x54E0, 0x8654, 0x54E1, 0x8655, 0x54E2, 0x8656, 0x54E3, 0x8657, 0x54E4, 0x8658, 0x54EB, + 0x8659, 0x54EC, 0x865A, 0x54EF, 0x865B, 0x54F0, 0x865C, 0x54F1, 0x865D, 0x54F4, 0x865E, 0x54F5, 0x865F, 0x54F6, 0x8660, 0x54F7, + 0x8661, 0x54F8, 0x8662, 0x54F9, 0x8663, 0x54FB, 0x8664, 0x54FE, 0x8665, 0x5500, 0x8666, 0x5502, 0x8667, 0x5503, 0x8668, 0x5504, + 0x8669, 0x5505, 0x866A, 0x5508, 0x866B, 0x550A, 0x866C, 0x550B, 0x866D, 0x550C, 0x866E, 0x550D, 0x866F, 0x550E, 0x8670, 0x5512, + 0x8671, 0x5513, 0x8672, 0x5515, 0x8673, 0x5516, 0x8674, 0x5517, 0x8675, 0x5518, 0x8676, 0x5519, 0x8677, 0x551A, 0x8678, 0x551C, + 0x8679, 0x551D, 0x867A, 0x551E, 0x867B, 0x551F, 0x867C, 0x5521, 0x867D, 0x5525, 0x867E, 0x5526, 0x8680, 0x5528, 0x8681, 0x5529, + 0x8682, 0x552B, 0x8683, 0x552D, 0x8684, 0x5532, 0x8685, 0x5534, 0x8686, 0x5535, 0x8687, 0x5536, 0x8688, 0x5538, 0x8689, 0x5539, + 0x868A, 0x553A, 0x868B, 0x553B, 0x868C, 0x553D, 0x868D, 0x5540, 0x868E, 0x5542, 0x868F, 0x5545, 0x8690, 0x5547, 0x8691, 0x5548, + 0x8692, 0x554B, 0x8693, 0x554C, 0x8694, 0x554D, 0x8695, 0x554E, 0x8696, 0x554F, 0x8697, 0x5551, 0x8698, 0x5552, 0x8699, 0x5553, + 0x869A, 0x5554, 0x869B, 0x5557, 0x869C, 0x5558, 0x869D, 0x5559, 0x869E, 0x555A, 0x869F, 0x555B, 0x86A0, 0x555D, 0x86A1, 0x555E, + 0x86A2, 0x555F, 0x86A3, 0x5560, 0x86A4, 0x5562, 0x86A5, 0x5563, 0x86A6, 0x5568, 0x86A7, 0x5569, 0x86A8, 0x556B, 0x86A9, 0x556F, + 0x86AA, 0x5570, 0x86AB, 0x5571, 0x86AC, 0x5572, 0x86AD, 0x5573, 0x86AE, 0x5574, 0x86AF, 0x5579, 0x86B0, 0x557A, 0x86B1, 0x557D, + 0x86B2, 0x557F, 0x86B3, 0x5585, 0x86B4, 0x5586, 0x86B5, 0x558C, 0x86B6, 0x558D, 0x86B7, 0x558E, 0x86B8, 0x5590, 0x86B9, 0x5592, + 0x86BA, 0x5593, 0x86BB, 0x5595, 0x86BC, 0x5596, 0x86BD, 0x5597, 0x86BE, 0x559A, 0x86BF, 0x559B, 0x86C0, 0x559E, 0x86C1, 0x55A0, + 0x86C2, 0x55A1, 0x86C3, 0x55A2, 0x86C4, 0x55A3, 0x86C5, 0x55A4, 0x86C6, 0x55A5, 0x86C7, 0x55A6, 0x86C8, 0x55A8, 0x86C9, 0x55A9, + 0x86CA, 0x55AA, 0x86CB, 0x55AB, 0x86CC, 0x55AC, 0x86CD, 0x55AD, 0x86CE, 0x55AE, 0x86CF, 0x55AF, 0x86D0, 0x55B0, 0x86D1, 0x55B2, + 0x86D2, 0x55B4, 0x86D3, 0x55B6, 0x86D4, 0x55B8, 0x86D5, 0x55BA, 0x86D6, 0x55BC, 0x86D7, 0x55BF, 0x86D8, 0x55C0, 0x86D9, 0x55C1, + 0x86DA, 0x55C2, 0x86DB, 0x55C3, 0x86DC, 0x55C6, 0x86DD, 0x55C7, 0x86DE, 0x55C8, 0x86DF, 0x55CA, 0x86E0, 0x55CB, 0x86E1, 0x55CE, + 0x86E2, 0x55CF, 0x86E3, 0x55D0, 0x86E4, 0x55D5, 0x86E5, 0x55D7, 0x86E6, 0x55D8, 0x86E7, 0x55D9, 0x86E8, 0x55DA, 0x86E9, 0x55DB, + 0x86EA, 0x55DE, 0x86EB, 0x55E0, 0x86EC, 0x55E2, 0x86ED, 0x55E7, 0x86EE, 0x55E9, 0x86EF, 0x55ED, 0x86F0, 0x55EE, 0x86F1, 0x55F0, + 0x86F2, 0x55F1, 0x86F3, 0x55F4, 0x86F4, 0x55F6, 0x86F5, 0x55F8, 0x86F6, 0x55F9, 0x86F7, 0x55FA, 0x86F8, 0x55FB, 0x86F9, 0x55FC, + 0x86FA, 0x55FF, 0x86FB, 0x5602, 0x86FC, 0x5603, 0x86FD, 0x5604, 0x86FE, 0x5605, 0x8740, 0x5606, 0x8741, 0x5607, 0x8742, 0x560A, + 0x8743, 0x560B, 0x8744, 0x560D, 0x8745, 0x5610, 0x8746, 0x5611, 0x8747, 0x5612, 0x8748, 0x5613, 0x8749, 0x5614, 0x874A, 0x5615, + 0x874B, 0x5616, 0x874C, 0x5617, 0x874D, 0x5619, 0x874E, 0x561A, 0x874F, 0x561C, 0x8750, 0x561D, 0x8751, 0x5620, 0x8752, 0x5621, + 0x8753, 0x5622, 0x8754, 0x5625, 0x8755, 0x5626, 0x8756, 0x5628, 0x8757, 0x5629, 0x8758, 0x562A, 0x8759, 0x562B, 0x875A, 0x562E, + 0x875B, 0x562F, 0x875C, 0x5630, 0x875D, 0x5633, 0x875E, 0x5635, 0x875F, 0x5637, 0x8760, 0x5638, 0x8761, 0x563A, 0x8762, 0x563C, + 0x8763, 0x563D, 0x8764, 0x563E, 0x8765, 0x5640, 0x8766, 0x5641, 0x8767, 0x5642, 0x8768, 0x5643, 0x8769, 0x5644, 0x876A, 0x5645, + 0x876B, 0x5646, 0x876C, 0x5647, 0x876D, 0x5648, 0x876E, 0x5649, 0x876F, 0x564A, 0x8770, 0x564B, 0x8771, 0x564F, 0x8772, 0x5650, + 0x8773, 0x5651, 0x8774, 0x5652, 0x8775, 0x5653, 0x8776, 0x5655, 0x8777, 0x5656, 0x8778, 0x565A, 0x8779, 0x565B, 0x877A, 0x565D, + 0x877B, 0x565E, 0x877C, 0x565F, 0x877D, 0x5660, 0x877E, 0x5661, 0x8780, 0x5663, 0x8781, 0x5665, 0x8782, 0x5666, 0x8783, 0x5667, + 0x8784, 0x566D, 0x8785, 0x566E, 0x8786, 0x566F, 0x8787, 0x5670, 0x8788, 0x5672, 0x8789, 0x5673, 0x878A, 0x5674, 0x878B, 0x5675, + 0x878C, 0x5677, 0x878D, 0x5678, 0x878E, 0x5679, 0x878F, 0x567A, 0x8790, 0x567D, 0x8791, 0x567E, 0x8792, 0x567F, 0x8793, 0x5680, + 0x8794, 0x5681, 0x8795, 0x5682, 0x8796, 0x5683, 0x8797, 0x5684, 0x8798, 0x5687, 0x8799, 0x5688, 0x879A, 0x5689, 0x879B, 0x568A, + 0x879C, 0x568B, 0x879D, 0x568C, 0x879E, 0x568D, 0x879F, 0x5690, 0x87A0, 0x5691, 0x87A1, 0x5692, 0x87A2, 0x5694, 0x87A3, 0x5695, + 0x87A4, 0x5696, 0x87A5, 0x5697, 0x87A6, 0x5698, 0x87A7, 0x5699, 0x87A8, 0x569A, 0x87A9, 0x569B, 0x87AA, 0x569C, 0x87AB, 0x569D, + 0x87AC, 0x569E, 0x87AD, 0x569F, 0x87AE, 0x56A0, 0x87AF, 0x56A1, 0x87B0, 0x56A2, 0x87B1, 0x56A4, 0x87B2, 0x56A5, 0x87B3, 0x56A6, + 0x87B4, 0x56A7, 0x87B5, 0x56A8, 0x87B6, 0x56A9, 0x87B7, 0x56AA, 0x87B8, 0x56AB, 0x87B9, 0x56AC, 0x87BA, 0x56AD, 0x87BB, 0x56AE, + 0x87BC, 0x56B0, 0x87BD, 0x56B1, 0x87BE, 0x56B2, 0x87BF, 0x56B3, 0x87C0, 0x56B4, 0x87C1, 0x56B5, 0x87C2, 0x56B6, 0x87C3, 0x56B8, + 0x87C4, 0x56B9, 0x87C5, 0x56BA, 0x87C6, 0x56BB, 0x87C7, 0x56BD, 0x87C8, 0x56BE, 0x87C9, 0x56BF, 0x87CA, 0x56C0, 0x87CB, 0x56C1, + 0x87CC, 0x56C2, 0x87CD, 0x56C3, 0x87CE, 0x56C4, 0x87CF, 0x56C5, 0x87D0, 0x56C6, 0x87D1, 0x56C7, 0x87D2, 0x56C8, 0x87D3, 0x56C9, + 0x87D4, 0x56CB, 0x87D5, 0x56CC, 0x87D6, 0x56CD, 0x87D7, 0x56CE, 0x87D8, 0x56CF, 0x87D9, 0x56D0, 0x87DA, 0x56D1, 0x87DB, 0x56D2, + 0x87DC, 0x56D3, 0x87DD, 0x56D5, 0x87DE, 0x56D6, 0x87DF, 0x56D8, 0x87E0, 0x56D9, 0x87E1, 0x56DC, 0x87E2, 0x56E3, 0x87E3, 0x56E5, + 0x87E4, 0x56E6, 0x87E5, 0x56E7, 0x87E6, 0x56E8, 0x87E7, 0x56E9, 0x87E8, 0x56EA, 0x87E9, 0x56EC, 0x87EA, 0x56EE, 0x87EB, 0x56EF, + 0x87EC, 0x56F2, 0x87ED, 0x56F3, 0x87EE, 0x56F6, 0x87EF, 0x56F7, 0x87F0, 0x56F8, 0x87F1, 0x56FB, 0x87F2, 0x56FC, 0x87F3, 0x5700, + 0x87F4, 0x5701, 0x87F5, 0x5702, 0x87F6, 0x5705, 0x87F7, 0x5707, 0x87F8, 0x570B, 0x87F9, 0x570C, 0x87FA, 0x570D, 0x87FB, 0x570E, + 0x87FC, 0x570F, 0x87FD, 0x5710, 0x87FE, 0x5711, 0x8840, 0x5712, 0x8841, 0x5713, 0x8842, 0x5714, 0x8843, 0x5715, 0x8844, 0x5716, + 0x8845, 0x5717, 0x8846, 0x5718, 0x8847, 0x5719, 0x8848, 0x571A, 0x8849, 0x571B, 0x884A, 0x571D, 0x884B, 0x571E, 0x884C, 0x5720, + 0x884D, 0x5721, 0x884E, 0x5722, 0x884F, 0x5724, 0x8850, 0x5725, 0x8851, 0x5726, 0x8852, 0x5727, 0x8853, 0x572B, 0x8854, 0x5731, + 0x8855, 0x5732, 0x8856, 0x5734, 0x8857, 0x5735, 0x8858, 0x5736, 0x8859, 0x5737, 0x885A, 0x5738, 0x885B, 0x573C, 0x885C, 0x573D, + 0x885D, 0x573F, 0x885E, 0x5741, 0x885F, 0x5743, 0x8860, 0x5744, 0x8861, 0x5745, 0x8862, 0x5746, 0x8863, 0x5748, 0x8864, 0x5749, + 0x8865, 0x574B, 0x8866, 0x5752, 0x8867, 0x5753, 0x8868, 0x5754, 0x8869, 0x5755, 0x886A, 0x5756, 0x886B, 0x5758, 0x886C, 0x5759, + 0x886D, 0x5762, 0x886E, 0x5763, 0x886F, 0x5765, 0x8870, 0x5767, 0x8871, 0x576C, 0x8872, 0x576E, 0x8873, 0x5770, 0x8874, 0x5771, + 0x8875, 0x5772, 0x8876, 0x5774, 0x8877, 0x5775, 0x8878, 0x5778, 0x8879, 0x5779, 0x887A, 0x577A, 0x887B, 0x577D, 0x887C, 0x577E, + 0x887D, 0x577F, 0x887E, 0x5780, 0x8880, 0x5781, 0x8881, 0x5787, 0x8882, 0x5788, 0x8883, 0x5789, 0x8884, 0x578A, 0x8885, 0x578D, + 0x8886, 0x578E, 0x8887, 0x578F, 0x8888, 0x5790, 0x8889, 0x5791, 0x888A, 0x5794, 0x888B, 0x5795, 0x888C, 0x5796, 0x888D, 0x5797, + 0x888E, 0x5798, 0x888F, 0x5799, 0x8890, 0x579A, 0x8891, 0x579C, 0x8892, 0x579D, 0x8893, 0x579E, 0x8894, 0x579F, 0x8895, 0x57A5, + 0x8896, 0x57A8, 0x8897, 0x57AA, 0x8898, 0x57AC, 0x8899, 0x57AF, 0x889A, 0x57B0, 0x889B, 0x57B1, 0x889C, 0x57B3, 0x889D, 0x57B5, + 0x889E, 0x57B6, 0x889F, 0x57B7, 0x88A0, 0x57B9, 0x88A1, 0x57BA, 0x88A2, 0x57BB, 0x88A3, 0x57BC, 0x88A4, 0x57BD, 0x88A5, 0x57BE, + 0x88A6, 0x57BF, 0x88A7, 0x57C0, 0x88A8, 0x57C1, 0x88A9, 0x57C4, 0x88AA, 0x57C5, 0x88AB, 0x57C6, 0x88AC, 0x57C7, 0x88AD, 0x57C8, + 0x88AE, 0x57C9, 0x88AF, 0x57CA, 0x88B0, 0x57CC, 0x88B1, 0x57CD, 0x88B2, 0x57D0, 0x88B3, 0x57D1, 0x88B4, 0x57D3, 0x88B5, 0x57D6, + 0x88B6, 0x57D7, 0x88B7, 0x57DB, 0x88B8, 0x57DC, 0x88B9, 0x57DE, 0x88BA, 0x57E1, 0x88BB, 0x57E2, 0x88BC, 0x57E3, 0x88BD, 0x57E5, + 0x88BE, 0x57E6, 0x88BF, 0x57E7, 0x88C0, 0x57E8, 0x88C1, 0x57E9, 0x88C2, 0x57EA, 0x88C3, 0x57EB, 0x88C4, 0x57EC, 0x88C5, 0x57EE, + 0x88C6, 0x57F0, 0x88C7, 0x57F1, 0x88C8, 0x57F2, 0x88C9, 0x57F3, 0x88CA, 0x57F5, 0x88CB, 0x57F6, 0x88CC, 0x57F7, 0x88CD, 0x57FB, + 0x88CE, 0x57FC, 0x88CF, 0x57FE, 0x88D0, 0x57FF, 0x88D1, 0x5801, 0x88D2, 0x5803, 0x88D3, 0x5804, 0x88D4, 0x5805, 0x88D5, 0x5808, + 0x88D6, 0x5809, 0x88D7, 0x580A, 0x88D8, 0x580C, 0x88D9, 0x580E, 0x88DA, 0x580F, 0x88DB, 0x5810, 0x88DC, 0x5812, 0x88DD, 0x5813, + 0x88DE, 0x5814, 0x88DF, 0x5816, 0x88E0, 0x5817, 0x88E1, 0x5818, 0x88E2, 0x581A, 0x88E3, 0x581B, 0x88E4, 0x581C, 0x88E5, 0x581D, + 0x88E6, 0x581F, 0x88E7, 0x5822, 0x88E8, 0x5823, 0x88E9, 0x5825, 0x88EA, 0x5826, 0x88EB, 0x5827, 0x88EC, 0x5828, 0x88ED, 0x5829, + 0x88EE, 0x582B, 0x88EF, 0x582C, 0x88F0, 0x582D, 0x88F1, 0x582E, 0x88F2, 0x582F, 0x88F3, 0x5831, 0x88F4, 0x5832, 0x88F5, 0x5833, + 0x88F6, 0x5834, 0x88F7, 0x5836, 0x88F8, 0x5837, 0x88F9, 0x5838, 0x88FA, 0x5839, 0x88FB, 0x583A, 0x88FC, 0x583B, 0x88FD, 0x583C, + 0x88FE, 0x583D, 0x8940, 0x583E, 0x8941, 0x583F, 0x8942, 0x5840, 0x8943, 0x5841, 0x8944, 0x5842, 0x8945, 0x5843, 0x8946, 0x5845, + 0x8947, 0x5846, 0x8948, 0x5847, 0x8949, 0x5848, 0x894A, 0x5849, 0x894B, 0x584A, 0x894C, 0x584B, 0x894D, 0x584E, 0x894E, 0x584F, + 0x894F, 0x5850, 0x8950, 0x5852, 0x8951, 0x5853, 0x8952, 0x5855, 0x8953, 0x5856, 0x8954, 0x5857, 0x8955, 0x5859, 0x8956, 0x585A, + 0x8957, 0x585B, 0x8958, 0x585C, 0x8959, 0x585D, 0x895A, 0x585F, 0x895B, 0x5860, 0x895C, 0x5861, 0x895D, 0x5862, 0x895E, 0x5863, + 0x895F, 0x5864, 0x8960, 0x5866, 0x8961, 0x5867, 0x8962, 0x5868, 0x8963, 0x5869, 0x8964, 0x586A, 0x8965, 0x586D, 0x8966, 0x586E, + 0x8967, 0x586F, 0x8968, 0x5870, 0x8969, 0x5871, 0x896A, 0x5872, 0x896B, 0x5873, 0x896C, 0x5874, 0x896D, 0x5875, 0x896E, 0x5876, + 0x896F, 0x5877, 0x8970, 0x5878, 0x8971, 0x5879, 0x8972, 0x587A, 0x8973, 0x587B, 0x8974, 0x587C, 0x8975, 0x587D, 0x8976, 0x587F, + 0x8977, 0x5882, 0x8978, 0x5884, 0x8979, 0x5886, 0x897A, 0x5887, 0x897B, 0x5888, 0x897C, 0x588A, 0x897D, 0x588B, 0x897E, 0x588C, + 0x8980, 0x588D, 0x8981, 0x588E, 0x8982, 0x588F, 0x8983, 0x5890, 0x8984, 0x5891, 0x8985, 0x5894, 0x8986, 0x5895, 0x8987, 0x5896, + 0x8988, 0x5897, 0x8989, 0x5898, 0x898A, 0x589B, 0x898B, 0x589C, 0x898C, 0x589D, 0x898D, 0x58A0, 0x898E, 0x58A1, 0x898F, 0x58A2, + 0x8990, 0x58A3, 0x8991, 0x58A4, 0x8992, 0x58A5, 0x8993, 0x58A6, 0x8994, 0x58A7, 0x8995, 0x58AA, 0x8996, 0x58AB, 0x8997, 0x58AC, + 0x8998, 0x58AD, 0x8999, 0x58AE, 0x899A, 0x58AF, 0x899B, 0x58B0, 0x899C, 0x58B1, 0x899D, 0x58B2, 0x899E, 0x58B3, 0x899F, 0x58B4, + 0x89A0, 0x58B5, 0x89A1, 0x58B6, 0x89A2, 0x58B7, 0x89A3, 0x58B8, 0x89A4, 0x58B9, 0x89A5, 0x58BA, 0x89A6, 0x58BB, 0x89A7, 0x58BD, + 0x89A8, 0x58BE, 0x89A9, 0x58BF, 0x89AA, 0x58C0, 0x89AB, 0x58C2, 0x89AC, 0x58C3, 0x89AD, 0x58C4, 0x89AE, 0x58C6, 0x89AF, 0x58C7, + 0x89B0, 0x58C8, 0x89B1, 0x58C9, 0x89B2, 0x58CA, 0x89B3, 0x58CB, 0x89B4, 0x58CC, 0x89B5, 0x58CD, 0x89B6, 0x58CE, 0x89B7, 0x58CF, + 0x89B8, 0x58D0, 0x89B9, 0x58D2, 0x89BA, 0x58D3, 0x89BB, 0x58D4, 0x89BC, 0x58D6, 0x89BD, 0x58D7, 0x89BE, 0x58D8, 0x89BF, 0x58D9, + 0x89C0, 0x58DA, 0x89C1, 0x58DB, 0x89C2, 0x58DC, 0x89C3, 0x58DD, 0x89C4, 0x58DE, 0x89C5, 0x58DF, 0x89C6, 0x58E0, 0x89C7, 0x58E1, + 0x89C8, 0x58E2, 0x89C9, 0x58E3, 0x89CA, 0x58E5, 0x89CB, 0x58E6, 0x89CC, 0x58E7, 0x89CD, 0x58E8, 0x89CE, 0x58E9, 0x89CF, 0x58EA, + 0x89D0, 0x58ED, 0x89D1, 0x58EF, 0x89D2, 0x58F1, 0x89D3, 0x58F2, 0x89D4, 0x58F4, 0x89D5, 0x58F5, 0x89D6, 0x58F7, 0x89D7, 0x58F8, + 0x89D8, 0x58FA, 0x89D9, 0x58FB, 0x89DA, 0x58FC, 0x89DB, 0x58FD, 0x89DC, 0x58FE, 0x89DD, 0x58FF, 0x89DE, 0x5900, 0x89DF, 0x5901, + 0x89E0, 0x5903, 0x89E1, 0x5905, 0x89E2, 0x5906, 0x89E3, 0x5908, 0x89E4, 0x5909, 0x89E5, 0x590A, 0x89E6, 0x590B, 0x89E7, 0x590C, + 0x89E8, 0x590E, 0x89E9, 0x5910, 0x89EA, 0x5911, 0x89EB, 0x5912, 0x89EC, 0x5913, 0x89ED, 0x5917, 0x89EE, 0x5918, 0x89EF, 0x591B, + 0x89F0, 0x591D, 0x89F1, 0x591E, 0x89F2, 0x5920, 0x89F3, 0x5921, 0x89F4, 0x5922, 0x89F5, 0x5923, 0x89F6, 0x5926, 0x89F7, 0x5928, + 0x89F8, 0x592C, 0x89F9, 0x5930, 0x89FA, 0x5932, 0x89FB, 0x5933, 0x89FC, 0x5935, 0x89FD, 0x5936, 0x89FE, 0x593B, 0x8A40, 0x593D, + 0x8A41, 0x593E, 0x8A42, 0x593F, 0x8A43, 0x5940, 0x8A44, 0x5943, 0x8A45, 0x5945, 0x8A46, 0x5946, 0x8A47, 0x594A, 0x8A48, 0x594C, + 0x8A49, 0x594D, 0x8A4A, 0x5950, 0x8A4B, 0x5952, 0x8A4C, 0x5953, 0x8A4D, 0x5959, 0x8A4E, 0x595B, 0x8A4F, 0x595C, 0x8A50, 0x595D, + 0x8A51, 0x595E, 0x8A52, 0x595F, 0x8A53, 0x5961, 0x8A54, 0x5963, 0x8A55, 0x5964, 0x8A56, 0x5966, 0x8A57, 0x5967, 0x8A58, 0x5968, + 0x8A59, 0x5969, 0x8A5A, 0x596A, 0x8A5B, 0x596B, 0x8A5C, 0x596C, 0x8A5D, 0x596D, 0x8A5E, 0x596E, 0x8A5F, 0x596F, 0x8A60, 0x5970, + 0x8A61, 0x5971, 0x8A62, 0x5972, 0x8A63, 0x5975, 0x8A64, 0x5977, 0x8A65, 0x597A, 0x8A66, 0x597B, 0x8A67, 0x597C, 0x8A68, 0x597E, + 0x8A69, 0x597F, 0x8A6A, 0x5980, 0x8A6B, 0x5985, 0x8A6C, 0x5989, 0x8A6D, 0x598B, 0x8A6E, 0x598C, 0x8A6F, 0x598E, 0x8A70, 0x598F, + 0x8A71, 0x5990, 0x8A72, 0x5991, 0x8A73, 0x5994, 0x8A74, 0x5995, 0x8A75, 0x5998, 0x8A76, 0x599A, 0x8A77, 0x599B, 0x8A78, 0x599C, + 0x8A79, 0x599D, 0x8A7A, 0x599F, 0x8A7B, 0x59A0, 0x8A7C, 0x59A1, 0x8A7D, 0x59A2, 0x8A7E, 0x59A6, 0x8A80, 0x59A7, 0x8A81, 0x59AC, + 0x8A82, 0x59AD, 0x8A83, 0x59B0, 0x8A84, 0x59B1, 0x8A85, 0x59B3, 0x8A86, 0x59B4, 0x8A87, 0x59B5, 0x8A88, 0x59B6, 0x8A89, 0x59B7, + 0x8A8A, 0x59B8, 0x8A8B, 0x59BA, 0x8A8C, 0x59BC, 0x8A8D, 0x59BD, 0x8A8E, 0x59BF, 0x8A8F, 0x59C0, 0x8A90, 0x59C1, 0x8A91, 0x59C2, + 0x8A92, 0x59C3, 0x8A93, 0x59C4, 0x8A94, 0x59C5, 0x8A95, 0x59C7, 0x8A96, 0x59C8, 0x8A97, 0x59C9, 0x8A98, 0x59CC, 0x8A99, 0x59CD, + 0x8A9A, 0x59CE, 0x8A9B, 0x59CF, 0x8A9C, 0x59D5, 0x8A9D, 0x59D6, 0x8A9E, 0x59D9, 0x8A9F, 0x59DB, 0x8AA0, 0x59DE, 0x8AA1, 0x59DF, + 0x8AA2, 0x59E0, 0x8AA3, 0x59E1, 0x8AA4, 0x59E2, 0x8AA5, 0x59E4, 0x8AA6, 0x59E6, 0x8AA7, 0x59E7, 0x8AA8, 0x59E9, 0x8AA9, 0x59EA, + 0x8AAA, 0x59EB, 0x8AAB, 0x59ED, 0x8AAC, 0x59EE, 0x8AAD, 0x59EF, 0x8AAE, 0x59F0, 0x8AAF, 0x59F1, 0x8AB0, 0x59F2, 0x8AB1, 0x59F3, + 0x8AB2, 0x59F4, 0x8AB3, 0x59F5, 0x8AB4, 0x59F6, 0x8AB5, 0x59F7, 0x8AB6, 0x59F8, 0x8AB7, 0x59FA, 0x8AB8, 0x59FC, 0x8AB9, 0x59FD, + 0x8ABA, 0x59FE, 0x8ABB, 0x5A00, 0x8ABC, 0x5A02, 0x8ABD, 0x5A0A, 0x8ABE, 0x5A0B, 0x8ABF, 0x5A0D, 0x8AC0, 0x5A0E, 0x8AC1, 0x5A0F, + 0x8AC2, 0x5A10, 0x8AC3, 0x5A12, 0x8AC4, 0x5A14, 0x8AC5, 0x5A15, 0x8AC6, 0x5A16, 0x8AC7, 0x5A17, 0x8AC8, 0x5A19, 0x8AC9, 0x5A1A, + 0x8ACA, 0x5A1B, 0x8ACB, 0x5A1D, 0x8ACC, 0x5A1E, 0x8ACD, 0x5A21, 0x8ACE, 0x5A22, 0x8ACF, 0x5A24, 0x8AD0, 0x5A26, 0x8AD1, 0x5A27, + 0x8AD2, 0x5A28, 0x8AD3, 0x5A2A, 0x8AD4, 0x5A2B, 0x8AD5, 0x5A2C, 0x8AD6, 0x5A2D, 0x8AD7, 0x5A2E, 0x8AD8, 0x5A2F, 0x8AD9, 0x5A30, + 0x8ADA, 0x5A33, 0x8ADB, 0x5A35, 0x8ADC, 0x5A37, 0x8ADD, 0x5A38, 0x8ADE, 0x5A39, 0x8ADF, 0x5A3A, 0x8AE0, 0x5A3B, 0x8AE1, 0x5A3D, + 0x8AE2, 0x5A3E, 0x8AE3, 0x5A3F, 0x8AE4, 0x5A41, 0x8AE5, 0x5A42, 0x8AE6, 0x5A43, 0x8AE7, 0x5A44, 0x8AE8, 0x5A45, 0x8AE9, 0x5A47, + 0x8AEA, 0x5A48, 0x8AEB, 0x5A4B, 0x8AEC, 0x5A4C, 0x8AED, 0x5A4D, 0x8AEE, 0x5A4E, 0x8AEF, 0x5A4F, 0x8AF0, 0x5A50, 0x8AF1, 0x5A51, + 0x8AF2, 0x5A52, 0x8AF3, 0x5A53, 0x8AF4, 0x5A54, 0x8AF5, 0x5A56, 0x8AF6, 0x5A57, 0x8AF7, 0x5A58, 0x8AF8, 0x5A59, 0x8AF9, 0x5A5B, + 0x8AFA, 0x5A5C, 0x8AFB, 0x5A5D, 0x8AFC, 0x5A5E, 0x8AFD, 0x5A5F, 0x8AFE, 0x5A60, 0x8B40, 0x5A61, 0x8B41, 0x5A63, 0x8B42, 0x5A64, + 0x8B43, 0x5A65, 0x8B44, 0x5A66, 0x8B45, 0x5A68, 0x8B46, 0x5A69, 0x8B47, 0x5A6B, 0x8B48, 0x5A6C, 0x8B49, 0x5A6D, 0x8B4A, 0x5A6E, + 0x8B4B, 0x5A6F, 0x8B4C, 0x5A70, 0x8B4D, 0x5A71, 0x8B4E, 0x5A72, 0x8B4F, 0x5A73, 0x8B50, 0x5A78, 0x8B51, 0x5A79, 0x8B52, 0x5A7B, + 0x8B53, 0x5A7C, 0x8B54, 0x5A7D, 0x8B55, 0x5A7E, 0x8B56, 0x5A80, 0x8B57, 0x5A81, 0x8B58, 0x5A82, 0x8B59, 0x5A83, 0x8B5A, 0x5A84, + 0x8B5B, 0x5A85, 0x8B5C, 0x5A86, 0x8B5D, 0x5A87, 0x8B5E, 0x5A88, 0x8B5F, 0x5A89, 0x8B60, 0x5A8A, 0x8B61, 0x5A8B, 0x8B62, 0x5A8C, + 0x8B63, 0x5A8D, 0x8B64, 0x5A8E, 0x8B65, 0x5A8F, 0x8B66, 0x5A90, 0x8B67, 0x5A91, 0x8B68, 0x5A93, 0x8B69, 0x5A94, 0x8B6A, 0x5A95, + 0x8B6B, 0x5A96, 0x8B6C, 0x5A97, 0x8B6D, 0x5A98, 0x8B6E, 0x5A99, 0x8B6F, 0x5A9C, 0x8B70, 0x5A9D, 0x8B71, 0x5A9E, 0x8B72, 0x5A9F, + 0x8B73, 0x5AA0, 0x8B74, 0x5AA1, 0x8B75, 0x5AA2, 0x8B76, 0x5AA3, 0x8B77, 0x5AA4, 0x8B78, 0x5AA5, 0x8B79, 0x5AA6, 0x8B7A, 0x5AA7, + 0x8B7B, 0x5AA8, 0x8B7C, 0x5AA9, 0x8B7D, 0x5AAB, 0x8B7E, 0x5AAC, 0x8B80, 0x5AAD, 0x8B81, 0x5AAE, 0x8B82, 0x5AAF, 0x8B83, 0x5AB0, + 0x8B84, 0x5AB1, 0x8B85, 0x5AB4, 0x8B86, 0x5AB6, 0x8B87, 0x5AB7, 0x8B88, 0x5AB9, 0x8B89, 0x5ABA, 0x8B8A, 0x5ABB, 0x8B8B, 0x5ABC, + 0x8B8C, 0x5ABD, 0x8B8D, 0x5ABF, 0x8B8E, 0x5AC0, 0x8B8F, 0x5AC3, 0x8B90, 0x5AC4, 0x8B91, 0x5AC5, 0x8B92, 0x5AC6, 0x8B93, 0x5AC7, + 0x8B94, 0x5AC8, 0x8B95, 0x5ACA, 0x8B96, 0x5ACB, 0x8B97, 0x5ACD, 0x8B98, 0x5ACE, 0x8B99, 0x5ACF, 0x8B9A, 0x5AD0, 0x8B9B, 0x5AD1, + 0x8B9C, 0x5AD3, 0x8B9D, 0x5AD5, 0x8B9E, 0x5AD7, 0x8B9F, 0x5AD9, 0x8BA0, 0x5ADA, 0x8BA1, 0x5ADB, 0x8BA2, 0x5ADD, 0x8BA3, 0x5ADE, + 0x8BA4, 0x5ADF, 0x8BA5, 0x5AE2, 0x8BA6, 0x5AE4, 0x8BA7, 0x5AE5, 0x8BA8, 0x5AE7, 0x8BA9, 0x5AE8, 0x8BAA, 0x5AEA, 0x8BAB, 0x5AEC, + 0x8BAC, 0x5AED, 0x8BAD, 0x5AEE, 0x8BAE, 0x5AEF, 0x8BAF, 0x5AF0, 0x8BB0, 0x5AF2, 0x8BB1, 0x5AF3, 0x8BB2, 0x5AF4, 0x8BB3, 0x5AF5, + 0x8BB4, 0x5AF6, 0x8BB5, 0x5AF7, 0x8BB6, 0x5AF8, 0x8BB7, 0x5AF9, 0x8BB8, 0x5AFA, 0x8BB9, 0x5AFB, 0x8BBA, 0x5AFC, 0x8BBB, 0x5AFD, + 0x8BBC, 0x5AFE, 0x8BBD, 0x5AFF, 0x8BBE, 0x5B00, 0x8BBF, 0x5B01, 0x8BC0, 0x5B02, 0x8BC1, 0x5B03, 0x8BC2, 0x5B04, 0x8BC3, 0x5B05, + 0x8BC4, 0x5B06, 0x8BC5, 0x5B07, 0x8BC6, 0x5B08, 0x8BC7, 0x5B0A, 0x8BC8, 0x5B0B, 0x8BC9, 0x5B0C, 0x8BCA, 0x5B0D, 0x8BCB, 0x5B0E, + 0x8BCC, 0x5B0F, 0x8BCD, 0x5B10, 0x8BCE, 0x5B11, 0x8BCF, 0x5B12, 0x8BD0, 0x5B13, 0x8BD1, 0x5B14, 0x8BD2, 0x5B15, 0x8BD3, 0x5B18, + 0x8BD4, 0x5B19, 0x8BD5, 0x5B1A, 0x8BD6, 0x5B1B, 0x8BD7, 0x5B1C, 0x8BD8, 0x5B1D, 0x8BD9, 0x5B1E, 0x8BDA, 0x5B1F, 0x8BDB, 0x5B20, + 0x8BDC, 0x5B21, 0x8BDD, 0x5B22, 0x8BDE, 0x5B23, 0x8BDF, 0x5B24, 0x8BE0, 0x5B25, 0x8BE1, 0x5B26, 0x8BE2, 0x5B27, 0x8BE3, 0x5B28, + 0x8BE4, 0x5B29, 0x8BE5, 0x5B2A, 0x8BE6, 0x5B2B, 0x8BE7, 0x5B2C, 0x8BE8, 0x5B2D, 0x8BE9, 0x5B2E, 0x8BEA, 0x5B2F, 0x8BEB, 0x5B30, + 0x8BEC, 0x5B31, 0x8BED, 0x5B33, 0x8BEE, 0x5B35, 0x8BEF, 0x5B36, 0x8BF0, 0x5B38, 0x8BF1, 0x5B39, 0x8BF2, 0x5B3A, 0x8BF3, 0x5B3B, + 0x8BF4, 0x5B3C, 0x8BF5, 0x5B3D, 0x8BF6, 0x5B3E, 0x8BF7, 0x5B3F, 0x8BF8, 0x5B41, 0x8BF9, 0x5B42, 0x8BFA, 0x5B43, 0x8BFB, 0x5B44, + 0x8BFC, 0x5B45, 0x8BFD, 0x5B46, 0x8BFE, 0x5B47, 0x8C40, 0x5B48, 0x8C41, 0x5B49, 0x8C42, 0x5B4A, 0x8C43, 0x5B4B, 0x8C44, 0x5B4C, + 0x8C45, 0x5B4D, 0x8C46, 0x5B4E, 0x8C47, 0x5B4F, 0x8C48, 0x5B52, 0x8C49, 0x5B56, 0x8C4A, 0x5B5E, 0x8C4B, 0x5B60, 0x8C4C, 0x5B61, + 0x8C4D, 0x5B67, 0x8C4E, 0x5B68, 0x8C4F, 0x5B6B, 0x8C50, 0x5B6D, 0x8C51, 0x5B6E, 0x8C52, 0x5B6F, 0x8C53, 0x5B72, 0x8C54, 0x5B74, + 0x8C55, 0x5B76, 0x8C56, 0x5B77, 0x8C57, 0x5B78, 0x8C58, 0x5B79, 0x8C59, 0x5B7B, 0x8C5A, 0x5B7C, 0x8C5B, 0x5B7E, 0x8C5C, 0x5B7F, + 0x8C5D, 0x5B82, 0x8C5E, 0x5B86, 0x8C5F, 0x5B8A, 0x8C60, 0x5B8D, 0x8C61, 0x5B8E, 0x8C62, 0x5B90, 0x8C63, 0x5B91, 0x8C64, 0x5B92, + 0x8C65, 0x5B94, 0x8C66, 0x5B96, 0x8C67, 0x5B9F, 0x8C68, 0x5BA7, 0x8C69, 0x5BA8, 0x8C6A, 0x5BA9, 0x8C6B, 0x5BAC, 0x8C6C, 0x5BAD, + 0x8C6D, 0x5BAE, 0x8C6E, 0x5BAF, 0x8C6F, 0x5BB1, 0x8C70, 0x5BB2, 0x8C71, 0x5BB7, 0x8C72, 0x5BBA, 0x8C73, 0x5BBB, 0x8C74, 0x5BBC, + 0x8C75, 0x5BC0, 0x8C76, 0x5BC1, 0x8C77, 0x5BC3, 0x8C78, 0x5BC8, 0x8C79, 0x5BC9, 0x8C7A, 0x5BCA, 0x8C7B, 0x5BCB, 0x8C7C, 0x5BCD, + 0x8C7D, 0x5BCE, 0x8C7E, 0x5BCF, 0x8C80, 0x5BD1, 0x8C81, 0x5BD4, 0x8C82, 0x5BD5, 0x8C83, 0x5BD6, 0x8C84, 0x5BD7, 0x8C85, 0x5BD8, + 0x8C86, 0x5BD9, 0x8C87, 0x5BDA, 0x8C88, 0x5BDB, 0x8C89, 0x5BDC, 0x8C8A, 0x5BE0, 0x8C8B, 0x5BE2, 0x8C8C, 0x5BE3, 0x8C8D, 0x5BE6, + 0x8C8E, 0x5BE7, 0x8C8F, 0x5BE9, 0x8C90, 0x5BEA, 0x8C91, 0x5BEB, 0x8C92, 0x5BEC, 0x8C93, 0x5BED, 0x8C94, 0x5BEF, 0x8C95, 0x5BF1, + 0x8C96, 0x5BF2, 0x8C97, 0x5BF3, 0x8C98, 0x5BF4, 0x8C99, 0x5BF5, 0x8C9A, 0x5BF6, 0x8C9B, 0x5BF7, 0x8C9C, 0x5BFD, 0x8C9D, 0x5BFE, + 0x8C9E, 0x5C00, 0x8C9F, 0x5C02, 0x8CA0, 0x5C03, 0x8CA1, 0x5C05, 0x8CA2, 0x5C07, 0x8CA3, 0x5C08, 0x8CA4, 0x5C0B, 0x8CA5, 0x5C0C, + 0x8CA6, 0x5C0D, 0x8CA7, 0x5C0E, 0x8CA8, 0x5C10, 0x8CA9, 0x5C12, 0x8CAA, 0x5C13, 0x8CAB, 0x5C17, 0x8CAC, 0x5C19, 0x8CAD, 0x5C1B, + 0x8CAE, 0x5C1E, 0x8CAF, 0x5C1F, 0x8CB0, 0x5C20, 0x8CB1, 0x5C21, 0x8CB2, 0x5C23, 0x8CB3, 0x5C26, 0x8CB4, 0x5C28, 0x8CB5, 0x5C29, + 0x8CB6, 0x5C2A, 0x8CB7, 0x5C2B, 0x8CB8, 0x5C2D, 0x8CB9, 0x5C2E, 0x8CBA, 0x5C2F, 0x8CBB, 0x5C30, 0x8CBC, 0x5C32, 0x8CBD, 0x5C33, + 0x8CBE, 0x5C35, 0x8CBF, 0x5C36, 0x8CC0, 0x5C37, 0x8CC1, 0x5C43, 0x8CC2, 0x5C44, 0x8CC3, 0x5C46, 0x8CC4, 0x5C47, 0x8CC5, 0x5C4C, + 0x8CC6, 0x5C4D, 0x8CC7, 0x5C52, 0x8CC8, 0x5C53, 0x8CC9, 0x5C54, 0x8CCA, 0x5C56, 0x8CCB, 0x5C57, 0x8CCC, 0x5C58, 0x8CCD, 0x5C5A, + 0x8CCE, 0x5C5B, 0x8CCF, 0x5C5C, 0x8CD0, 0x5C5D, 0x8CD1, 0x5C5F, 0x8CD2, 0x5C62, 0x8CD3, 0x5C64, 0x8CD4, 0x5C67, 0x8CD5, 0x5C68, + 0x8CD6, 0x5C69, 0x8CD7, 0x5C6A, 0x8CD8, 0x5C6B, 0x8CD9, 0x5C6C, 0x8CDA, 0x5C6D, 0x8CDB, 0x5C70, 0x8CDC, 0x5C72, 0x8CDD, 0x5C73, + 0x8CDE, 0x5C74, 0x8CDF, 0x5C75, 0x8CE0, 0x5C76, 0x8CE1, 0x5C77, 0x8CE2, 0x5C78, 0x8CE3, 0x5C7B, 0x8CE4, 0x5C7C, 0x8CE5, 0x5C7D, + 0x8CE6, 0x5C7E, 0x8CE7, 0x5C80, 0x8CE8, 0x5C83, 0x8CE9, 0x5C84, 0x8CEA, 0x5C85, 0x8CEB, 0x5C86, 0x8CEC, 0x5C87, 0x8CED, 0x5C89, + 0x8CEE, 0x5C8A, 0x8CEF, 0x5C8B, 0x8CF0, 0x5C8E, 0x8CF1, 0x5C8F, 0x8CF2, 0x5C92, 0x8CF3, 0x5C93, 0x8CF4, 0x5C95, 0x8CF5, 0x5C9D, + 0x8CF6, 0x5C9E, 0x8CF7, 0x5C9F, 0x8CF8, 0x5CA0, 0x8CF9, 0x5CA1, 0x8CFA, 0x5CA4, 0x8CFB, 0x5CA5, 0x8CFC, 0x5CA6, 0x8CFD, 0x5CA7, + 0x8CFE, 0x5CA8, 0x8D40, 0x5CAA, 0x8D41, 0x5CAE, 0x8D42, 0x5CAF, 0x8D43, 0x5CB0, 0x8D44, 0x5CB2, 0x8D45, 0x5CB4, 0x8D46, 0x5CB6, + 0x8D47, 0x5CB9, 0x8D48, 0x5CBA, 0x8D49, 0x5CBB, 0x8D4A, 0x5CBC, 0x8D4B, 0x5CBE, 0x8D4C, 0x5CC0, 0x8D4D, 0x5CC2, 0x8D4E, 0x5CC3, + 0x8D4F, 0x5CC5, 0x8D50, 0x5CC6, 0x8D51, 0x5CC7, 0x8D52, 0x5CC8, 0x8D53, 0x5CC9, 0x8D54, 0x5CCA, 0x8D55, 0x5CCC, 0x8D56, 0x5CCD, + 0x8D57, 0x5CCE, 0x8D58, 0x5CCF, 0x8D59, 0x5CD0, 0x8D5A, 0x5CD1, 0x8D5B, 0x5CD3, 0x8D5C, 0x5CD4, 0x8D5D, 0x5CD5, 0x8D5E, 0x5CD6, + 0x8D5F, 0x5CD7, 0x8D60, 0x5CD8, 0x8D61, 0x5CDA, 0x8D62, 0x5CDB, 0x8D63, 0x5CDC, 0x8D64, 0x5CDD, 0x8D65, 0x5CDE, 0x8D66, 0x5CDF, + 0x8D67, 0x5CE0, 0x8D68, 0x5CE2, 0x8D69, 0x5CE3, 0x8D6A, 0x5CE7, 0x8D6B, 0x5CE9, 0x8D6C, 0x5CEB, 0x8D6D, 0x5CEC, 0x8D6E, 0x5CEE, + 0x8D6F, 0x5CEF, 0x8D70, 0x5CF1, 0x8D71, 0x5CF2, 0x8D72, 0x5CF3, 0x8D73, 0x5CF4, 0x8D74, 0x5CF5, 0x8D75, 0x5CF6, 0x8D76, 0x5CF7, + 0x8D77, 0x5CF8, 0x8D78, 0x5CF9, 0x8D79, 0x5CFA, 0x8D7A, 0x5CFC, 0x8D7B, 0x5CFD, 0x8D7C, 0x5CFE, 0x8D7D, 0x5CFF, 0x8D7E, 0x5D00, + 0x8D80, 0x5D01, 0x8D81, 0x5D04, 0x8D82, 0x5D05, 0x8D83, 0x5D08, 0x8D84, 0x5D09, 0x8D85, 0x5D0A, 0x8D86, 0x5D0B, 0x8D87, 0x5D0C, + 0x8D88, 0x5D0D, 0x8D89, 0x5D0F, 0x8D8A, 0x5D10, 0x8D8B, 0x5D11, 0x8D8C, 0x5D12, 0x8D8D, 0x5D13, 0x8D8E, 0x5D15, 0x8D8F, 0x5D17, + 0x8D90, 0x5D18, 0x8D91, 0x5D19, 0x8D92, 0x5D1A, 0x8D93, 0x5D1C, 0x8D94, 0x5D1D, 0x8D95, 0x5D1F, 0x8D96, 0x5D20, 0x8D97, 0x5D21, + 0x8D98, 0x5D22, 0x8D99, 0x5D23, 0x8D9A, 0x5D25, 0x8D9B, 0x5D28, 0x8D9C, 0x5D2A, 0x8D9D, 0x5D2B, 0x8D9E, 0x5D2C, 0x8D9F, 0x5D2F, + 0x8DA0, 0x5D30, 0x8DA1, 0x5D31, 0x8DA2, 0x5D32, 0x8DA3, 0x5D33, 0x8DA4, 0x5D35, 0x8DA5, 0x5D36, 0x8DA6, 0x5D37, 0x8DA7, 0x5D38, + 0x8DA8, 0x5D39, 0x8DA9, 0x5D3A, 0x8DAA, 0x5D3B, 0x8DAB, 0x5D3C, 0x8DAC, 0x5D3F, 0x8DAD, 0x5D40, 0x8DAE, 0x5D41, 0x8DAF, 0x5D42, + 0x8DB0, 0x5D43, 0x8DB1, 0x5D44, 0x8DB2, 0x5D45, 0x8DB3, 0x5D46, 0x8DB4, 0x5D48, 0x8DB5, 0x5D49, 0x8DB6, 0x5D4D, 0x8DB7, 0x5D4E, + 0x8DB8, 0x5D4F, 0x8DB9, 0x5D50, 0x8DBA, 0x5D51, 0x8DBB, 0x5D52, 0x8DBC, 0x5D53, 0x8DBD, 0x5D54, 0x8DBE, 0x5D55, 0x8DBF, 0x5D56, + 0x8DC0, 0x5D57, 0x8DC1, 0x5D59, 0x8DC2, 0x5D5A, 0x8DC3, 0x5D5C, 0x8DC4, 0x5D5E, 0x8DC5, 0x5D5F, 0x8DC6, 0x5D60, 0x8DC7, 0x5D61, + 0x8DC8, 0x5D62, 0x8DC9, 0x5D63, 0x8DCA, 0x5D64, 0x8DCB, 0x5D65, 0x8DCC, 0x5D66, 0x8DCD, 0x5D67, 0x8DCE, 0x5D68, 0x8DCF, 0x5D6A, + 0x8DD0, 0x5D6D, 0x8DD1, 0x5D6E, 0x8DD2, 0x5D70, 0x8DD3, 0x5D71, 0x8DD4, 0x5D72, 0x8DD5, 0x5D73, 0x8DD6, 0x5D75, 0x8DD7, 0x5D76, + 0x8DD8, 0x5D77, 0x8DD9, 0x5D78, 0x8DDA, 0x5D79, 0x8DDB, 0x5D7A, 0x8DDC, 0x5D7B, 0x8DDD, 0x5D7C, 0x8DDE, 0x5D7D, 0x8DDF, 0x5D7E, + 0x8DE0, 0x5D7F, 0x8DE1, 0x5D80, 0x8DE2, 0x5D81, 0x8DE3, 0x5D83, 0x8DE4, 0x5D84, 0x8DE5, 0x5D85, 0x8DE6, 0x5D86, 0x8DE7, 0x5D87, + 0x8DE8, 0x5D88, 0x8DE9, 0x5D89, 0x8DEA, 0x5D8A, 0x8DEB, 0x5D8B, 0x8DEC, 0x5D8C, 0x8DED, 0x5D8D, 0x8DEE, 0x5D8E, 0x8DEF, 0x5D8F, + 0x8DF0, 0x5D90, 0x8DF1, 0x5D91, 0x8DF2, 0x5D92, 0x8DF3, 0x5D93, 0x8DF4, 0x5D94, 0x8DF5, 0x5D95, 0x8DF6, 0x5D96, 0x8DF7, 0x5D97, + 0x8DF8, 0x5D98, 0x8DF9, 0x5D9A, 0x8DFA, 0x5D9B, 0x8DFB, 0x5D9C, 0x8DFC, 0x5D9E, 0x8DFD, 0x5D9F, 0x8DFE, 0x5DA0, 0x8E40, 0x5DA1, + 0x8E41, 0x5DA2, 0x8E42, 0x5DA3, 0x8E43, 0x5DA4, 0x8E44, 0x5DA5, 0x8E45, 0x5DA6, 0x8E46, 0x5DA7, 0x8E47, 0x5DA8, 0x8E48, 0x5DA9, + 0x8E49, 0x5DAA, 0x8E4A, 0x5DAB, 0x8E4B, 0x5DAC, 0x8E4C, 0x5DAD, 0x8E4D, 0x5DAE, 0x8E4E, 0x5DAF, 0x8E4F, 0x5DB0, 0x8E50, 0x5DB1, + 0x8E51, 0x5DB2, 0x8E52, 0x5DB3, 0x8E53, 0x5DB4, 0x8E54, 0x5DB5, 0x8E55, 0x5DB6, 0x8E56, 0x5DB8, 0x8E57, 0x5DB9, 0x8E58, 0x5DBA, + 0x8E59, 0x5DBB, 0x8E5A, 0x5DBC, 0x8E5B, 0x5DBD, 0x8E5C, 0x5DBE, 0x8E5D, 0x5DBF, 0x8E5E, 0x5DC0, 0x8E5F, 0x5DC1, 0x8E60, 0x5DC2, + 0x8E61, 0x5DC3, 0x8E62, 0x5DC4, 0x8E63, 0x5DC6, 0x8E64, 0x5DC7, 0x8E65, 0x5DC8, 0x8E66, 0x5DC9, 0x8E67, 0x5DCA, 0x8E68, 0x5DCB, + 0x8E69, 0x5DCC, 0x8E6A, 0x5DCE, 0x8E6B, 0x5DCF, 0x8E6C, 0x5DD0, 0x8E6D, 0x5DD1, 0x8E6E, 0x5DD2, 0x8E6F, 0x5DD3, 0x8E70, 0x5DD4, + 0x8E71, 0x5DD5, 0x8E72, 0x5DD6, 0x8E73, 0x5DD7, 0x8E74, 0x5DD8, 0x8E75, 0x5DD9, 0x8E76, 0x5DDA, 0x8E77, 0x5DDC, 0x8E78, 0x5DDF, + 0x8E79, 0x5DE0, 0x8E7A, 0x5DE3, 0x8E7B, 0x5DE4, 0x8E7C, 0x5DEA, 0x8E7D, 0x5DEC, 0x8E7E, 0x5DED, 0x8E80, 0x5DF0, 0x8E81, 0x5DF5, + 0x8E82, 0x5DF6, 0x8E83, 0x5DF8, 0x8E84, 0x5DF9, 0x8E85, 0x5DFA, 0x8E86, 0x5DFB, 0x8E87, 0x5DFC, 0x8E88, 0x5DFF, 0x8E89, 0x5E00, + 0x8E8A, 0x5E04, 0x8E8B, 0x5E07, 0x8E8C, 0x5E09, 0x8E8D, 0x5E0A, 0x8E8E, 0x5E0B, 0x8E8F, 0x5E0D, 0x8E90, 0x5E0E, 0x8E91, 0x5E12, + 0x8E92, 0x5E13, 0x8E93, 0x5E17, 0x8E94, 0x5E1E, 0x8E95, 0x5E1F, 0x8E96, 0x5E20, 0x8E97, 0x5E21, 0x8E98, 0x5E22, 0x8E99, 0x5E23, + 0x8E9A, 0x5E24, 0x8E9B, 0x5E25, 0x8E9C, 0x5E28, 0x8E9D, 0x5E29, 0x8E9E, 0x5E2A, 0x8E9F, 0x5E2B, 0x8EA0, 0x5E2C, 0x8EA1, 0x5E2F, + 0x8EA2, 0x5E30, 0x8EA3, 0x5E32, 0x8EA4, 0x5E33, 0x8EA5, 0x5E34, 0x8EA6, 0x5E35, 0x8EA7, 0x5E36, 0x8EA8, 0x5E39, 0x8EA9, 0x5E3A, + 0x8EAA, 0x5E3E, 0x8EAB, 0x5E3F, 0x8EAC, 0x5E40, 0x8EAD, 0x5E41, 0x8EAE, 0x5E43, 0x8EAF, 0x5E46, 0x8EB0, 0x5E47, 0x8EB1, 0x5E48, + 0x8EB2, 0x5E49, 0x8EB3, 0x5E4A, 0x8EB4, 0x5E4B, 0x8EB5, 0x5E4D, 0x8EB6, 0x5E4E, 0x8EB7, 0x5E4F, 0x8EB8, 0x5E50, 0x8EB9, 0x5E51, + 0x8EBA, 0x5E52, 0x8EBB, 0x5E53, 0x8EBC, 0x5E56, 0x8EBD, 0x5E57, 0x8EBE, 0x5E58, 0x8EBF, 0x5E59, 0x8EC0, 0x5E5A, 0x8EC1, 0x5E5C, + 0x8EC2, 0x5E5D, 0x8EC3, 0x5E5F, 0x8EC4, 0x5E60, 0x8EC5, 0x5E63, 0x8EC6, 0x5E64, 0x8EC7, 0x5E65, 0x8EC8, 0x5E66, 0x8EC9, 0x5E67, + 0x8ECA, 0x5E68, 0x8ECB, 0x5E69, 0x8ECC, 0x5E6A, 0x8ECD, 0x5E6B, 0x8ECE, 0x5E6C, 0x8ECF, 0x5E6D, 0x8ED0, 0x5E6E, 0x8ED1, 0x5E6F, + 0x8ED2, 0x5E70, 0x8ED3, 0x5E71, 0x8ED4, 0x5E75, 0x8ED5, 0x5E77, 0x8ED6, 0x5E79, 0x8ED7, 0x5E7E, 0x8ED8, 0x5E81, 0x8ED9, 0x5E82, + 0x8EDA, 0x5E83, 0x8EDB, 0x5E85, 0x8EDC, 0x5E88, 0x8EDD, 0x5E89, 0x8EDE, 0x5E8C, 0x8EDF, 0x5E8D, 0x8EE0, 0x5E8E, 0x8EE1, 0x5E92, + 0x8EE2, 0x5E98, 0x8EE3, 0x5E9B, 0x8EE4, 0x5E9D, 0x8EE5, 0x5EA1, 0x8EE6, 0x5EA2, 0x8EE7, 0x5EA3, 0x8EE8, 0x5EA4, 0x8EE9, 0x5EA8, + 0x8EEA, 0x5EA9, 0x8EEB, 0x5EAA, 0x8EEC, 0x5EAB, 0x8EED, 0x5EAC, 0x8EEE, 0x5EAE, 0x8EEF, 0x5EAF, 0x8EF0, 0x5EB0, 0x8EF1, 0x5EB1, + 0x8EF2, 0x5EB2, 0x8EF3, 0x5EB4, 0x8EF4, 0x5EBA, 0x8EF5, 0x5EBB, 0x8EF6, 0x5EBC, 0x8EF7, 0x5EBD, 0x8EF8, 0x5EBF, 0x8EF9, 0x5EC0, + 0x8EFA, 0x5EC1, 0x8EFB, 0x5EC2, 0x8EFC, 0x5EC3, 0x8EFD, 0x5EC4, 0x8EFE, 0x5EC5, 0x8F40, 0x5EC6, 0x8F41, 0x5EC7, 0x8F42, 0x5EC8, + 0x8F43, 0x5ECB, 0x8F44, 0x5ECC, 0x8F45, 0x5ECD, 0x8F46, 0x5ECE, 0x8F47, 0x5ECF, 0x8F48, 0x5ED0, 0x8F49, 0x5ED4, 0x8F4A, 0x5ED5, + 0x8F4B, 0x5ED7, 0x8F4C, 0x5ED8, 0x8F4D, 0x5ED9, 0x8F4E, 0x5EDA, 0x8F4F, 0x5EDC, 0x8F50, 0x5EDD, 0x8F51, 0x5EDE, 0x8F52, 0x5EDF, + 0x8F53, 0x5EE0, 0x8F54, 0x5EE1, 0x8F55, 0x5EE2, 0x8F56, 0x5EE3, 0x8F57, 0x5EE4, 0x8F58, 0x5EE5, 0x8F59, 0x5EE6, 0x8F5A, 0x5EE7, + 0x8F5B, 0x5EE9, 0x8F5C, 0x5EEB, 0x8F5D, 0x5EEC, 0x8F5E, 0x5EED, 0x8F5F, 0x5EEE, 0x8F60, 0x5EEF, 0x8F61, 0x5EF0, 0x8F62, 0x5EF1, + 0x8F63, 0x5EF2, 0x8F64, 0x5EF3, 0x8F65, 0x5EF5, 0x8F66, 0x5EF8, 0x8F67, 0x5EF9, 0x8F68, 0x5EFB, 0x8F69, 0x5EFC, 0x8F6A, 0x5EFD, + 0x8F6B, 0x5F05, 0x8F6C, 0x5F06, 0x8F6D, 0x5F07, 0x8F6E, 0x5F09, 0x8F6F, 0x5F0C, 0x8F70, 0x5F0D, 0x8F71, 0x5F0E, 0x8F72, 0x5F10, + 0x8F73, 0x5F12, 0x8F74, 0x5F14, 0x8F75, 0x5F16, 0x8F76, 0x5F19, 0x8F77, 0x5F1A, 0x8F78, 0x5F1C, 0x8F79, 0x5F1D, 0x8F7A, 0x5F1E, + 0x8F7B, 0x5F21, 0x8F7C, 0x5F22, 0x8F7D, 0x5F23, 0x8F7E, 0x5F24, 0x8F80, 0x5F28, 0x8F81, 0x5F2B, 0x8F82, 0x5F2C, 0x8F83, 0x5F2E, + 0x8F84, 0x5F30, 0x8F85, 0x5F32, 0x8F86, 0x5F33, 0x8F87, 0x5F34, 0x8F88, 0x5F35, 0x8F89, 0x5F36, 0x8F8A, 0x5F37, 0x8F8B, 0x5F38, + 0x8F8C, 0x5F3B, 0x8F8D, 0x5F3D, 0x8F8E, 0x5F3E, 0x8F8F, 0x5F3F, 0x8F90, 0x5F41, 0x8F91, 0x5F42, 0x8F92, 0x5F43, 0x8F93, 0x5F44, + 0x8F94, 0x5F45, 0x8F95, 0x5F46, 0x8F96, 0x5F47, 0x8F97, 0x5F48, 0x8F98, 0x5F49, 0x8F99, 0x5F4A, 0x8F9A, 0x5F4B, 0x8F9B, 0x5F4C, + 0x8F9C, 0x5F4D, 0x8F9D, 0x5F4E, 0x8F9E, 0x5F4F, 0x8F9F, 0x5F51, 0x8FA0, 0x5F54, 0x8FA1, 0x5F59, 0x8FA2, 0x5F5A, 0x8FA3, 0x5F5B, + 0x8FA4, 0x5F5C, 0x8FA5, 0x5F5E, 0x8FA6, 0x5F5F, 0x8FA7, 0x5F60, 0x8FA8, 0x5F63, 0x8FA9, 0x5F65, 0x8FAA, 0x5F67, 0x8FAB, 0x5F68, + 0x8FAC, 0x5F6B, 0x8FAD, 0x5F6E, 0x8FAE, 0x5F6F, 0x8FAF, 0x5F72, 0x8FB0, 0x5F74, 0x8FB1, 0x5F75, 0x8FB2, 0x5F76, 0x8FB3, 0x5F78, + 0x8FB4, 0x5F7A, 0x8FB5, 0x5F7D, 0x8FB6, 0x5F7E, 0x8FB7, 0x5F7F, 0x8FB8, 0x5F83, 0x8FB9, 0x5F86, 0x8FBA, 0x5F8D, 0x8FBB, 0x5F8E, + 0x8FBC, 0x5F8F, 0x8FBD, 0x5F91, 0x8FBE, 0x5F93, 0x8FBF, 0x5F94, 0x8FC0, 0x5F96, 0x8FC1, 0x5F9A, 0x8FC2, 0x5F9B, 0x8FC3, 0x5F9D, + 0x8FC4, 0x5F9E, 0x8FC5, 0x5F9F, 0x8FC6, 0x5FA0, 0x8FC7, 0x5FA2, 0x8FC8, 0x5FA3, 0x8FC9, 0x5FA4, 0x8FCA, 0x5FA5, 0x8FCB, 0x5FA6, + 0x8FCC, 0x5FA7, 0x8FCD, 0x5FA9, 0x8FCE, 0x5FAB, 0x8FCF, 0x5FAC, 0x8FD0, 0x5FAF, 0x8FD1, 0x5FB0, 0x8FD2, 0x5FB1, 0x8FD3, 0x5FB2, + 0x8FD4, 0x5FB3, 0x8FD5, 0x5FB4, 0x8FD6, 0x5FB6, 0x8FD7, 0x5FB8, 0x8FD8, 0x5FB9, 0x8FD9, 0x5FBA, 0x8FDA, 0x5FBB, 0x8FDB, 0x5FBE, + 0x8FDC, 0x5FBF, 0x8FDD, 0x5FC0, 0x8FDE, 0x5FC1, 0x8FDF, 0x5FC2, 0x8FE0, 0x5FC7, 0x8FE1, 0x5FC8, 0x8FE2, 0x5FCA, 0x8FE3, 0x5FCB, + 0x8FE4, 0x5FCE, 0x8FE5, 0x5FD3, 0x8FE6, 0x5FD4, 0x8FE7, 0x5FD5, 0x8FE8, 0x5FDA, 0x8FE9, 0x5FDB, 0x8FEA, 0x5FDC, 0x8FEB, 0x5FDE, + 0x8FEC, 0x5FDF, 0x8FED, 0x5FE2, 0x8FEE, 0x5FE3, 0x8FEF, 0x5FE5, 0x8FF0, 0x5FE6, 0x8FF1, 0x5FE8, 0x8FF2, 0x5FE9, 0x8FF3, 0x5FEC, + 0x8FF4, 0x5FEF, 0x8FF5, 0x5FF0, 0x8FF6, 0x5FF2, 0x8FF7, 0x5FF3, 0x8FF8, 0x5FF4, 0x8FF9, 0x5FF6, 0x8FFA, 0x5FF7, 0x8FFB, 0x5FF9, + 0x8FFC, 0x5FFA, 0x8FFD, 0x5FFC, 0x8FFE, 0x6007, 0x9040, 0x6008, 0x9041, 0x6009, 0x9042, 0x600B, 0x9043, 0x600C, 0x9044, 0x6010, + 0x9045, 0x6011, 0x9046, 0x6013, 0x9047, 0x6017, 0x9048, 0x6018, 0x9049, 0x601A, 0x904A, 0x601E, 0x904B, 0x601F, 0x904C, 0x6022, + 0x904D, 0x6023, 0x904E, 0x6024, 0x904F, 0x602C, 0x9050, 0x602D, 0x9051, 0x602E, 0x9052, 0x6030, 0x9053, 0x6031, 0x9054, 0x6032, + 0x9055, 0x6033, 0x9056, 0x6034, 0x9057, 0x6036, 0x9058, 0x6037, 0x9059, 0x6038, 0x905A, 0x6039, 0x905B, 0x603A, 0x905C, 0x603D, + 0x905D, 0x603E, 0x905E, 0x6040, 0x905F, 0x6044, 0x9060, 0x6045, 0x9061, 0x6046, 0x9062, 0x6047, 0x9063, 0x6048, 0x9064, 0x6049, + 0x9065, 0x604A, 0x9066, 0x604C, 0x9067, 0x604E, 0x9068, 0x604F, 0x9069, 0x6051, 0x906A, 0x6053, 0x906B, 0x6054, 0x906C, 0x6056, + 0x906D, 0x6057, 0x906E, 0x6058, 0x906F, 0x605B, 0x9070, 0x605C, 0x9071, 0x605E, 0x9072, 0x605F, 0x9073, 0x6060, 0x9074, 0x6061, + 0x9075, 0x6065, 0x9076, 0x6066, 0x9077, 0x606E, 0x9078, 0x6071, 0x9079, 0x6072, 0x907A, 0x6074, 0x907B, 0x6075, 0x907C, 0x6077, + 0x907D, 0x607E, 0x907E, 0x6080, 0x9080, 0x6081, 0x9081, 0x6082, 0x9082, 0x6085, 0x9083, 0x6086, 0x9084, 0x6087, 0x9085, 0x6088, + 0x9086, 0x608A, 0x9087, 0x608B, 0x9088, 0x608E, 0x9089, 0x608F, 0x908A, 0x6090, 0x908B, 0x6091, 0x908C, 0x6093, 0x908D, 0x6095, + 0x908E, 0x6097, 0x908F, 0x6098, 0x9090, 0x6099, 0x9091, 0x609C, 0x9092, 0x609E, 0x9093, 0x60A1, 0x9094, 0x60A2, 0x9095, 0x60A4, + 0x9096, 0x60A5, 0x9097, 0x60A7, 0x9098, 0x60A9, 0x9099, 0x60AA, 0x909A, 0x60AE, 0x909B, 0x60B0, 0x909C, 0x60B3, 0x909D, 0x60B5, + 0x909E, 0x60B6, 0x909F, 0x60B7, 0x90A0, 0x60B9, 0x90A1, 0x60BA, 0x90A2, 0x60BD, 0x90A3, 0x60BE, 0x90A4, 0x60BF, 0x90A5, 0x60C0, + 0x90A6, 0x60C1, 0x90A7, 0x60C2, 0x90A8, 0x60C3, 0x90A9, 0x60C4, 0x90AA, 0x60C7, 0x90AB, 0x60C8, 0x90AC, 0x60C9, 0x90AD, 0x60CC, + 0x90AE, 0x60CD, 0x90AF, 0x60CE, 0x90B0, 0x60CF, 0x90B1, 0x60D0, 0x90B2, 0x60D2, 0x90B3, 0x60D3, 0x90B4, 0x60D4, 0x90B5, 0x60D6, + 0x90B6, 0x60D7, 0x90B7, 0x60D9, 0x90B8, 0x60DB, 0x90B9, 0x60DE, 0x90BA, 0x60E1, 0x90BB, 0x60E2, 0x90BC, 0x60E3, 0x90BD, 0x60E4, + 0x90BE, 0x60E5, 0x90BF, 0x60EA, 0x90C0, 0x60F1, 0x90C1, 0x60F2, 0x90C2, 0x60F5, 0x90C3, 0x60F7, 0x90C4, 0x60F8, 0x90C5, 0x60FB, + 0x90C6, 0x60FC, 0x90C7, 0x60FD, 0x90C8, 0x60FE, 0x90C9, 0x60FF, 0x90CA, 0x6102, 0x90CB, 0x6103, 0x90CC, 0x6104, 0x90CD, 0x6105, + 0x90CE, 0x6107, 0x90CF, 0x610A, 0x90D0, 0x610B, 0x90D1, 0x610C, 0x90D2, 0x6110, 0x90D3, 0x6111, 0x90D4, 0x6112, 0x90D5, 0x6113, + 0x90D6, 0x6114, 0x90D7, 0x6116, 0x90D8, 0x6117, 0x90D9, 0x6118, 0x90DA, 0x6119, 0x90DB, 0x611B, 0x90DC, 0x611C, 0x90DD, 0x611D, + 0x90DE, 0x611E, 0x90DF, 0x6121, 0x90E0, 0x6122, 0x90E1, 0x6125, 0x90E2, 0x6128, 0x90E3, 0x6129, 0x90E4, 0x612A, 0x90E5, 0x612C, + 0x90E6, 0x612D, 0x90E7, 0x612E, 0x90E8, 0x612F, 0x90E9, 0x6130, 0x90EA, 0x6131, 0x90EB, 0x6132, 0x90EC, 0x6133, 0x90ED, 0x6134, + 0x90EE, 0x6135, 0x90EF, 0x6136, 0x90F0, 0x6137, 0x90F1, 0x6138, 0x90F2, 0x6139, 0x90F3, 0x613A, 0x90F4, 0x613B, 0x90F5, 0x613C, + 0x90F6, 0x613D, 0x90F7, 0x613E, 0x90F8, 0x6140, 0x90F9, 0x6141, 0x90FA, 0x6142, 0x90FB, 0x6143, 0x90FC, 0x6144, 0x90FD, 0x6145, + 0x90FE, 0x6146, 0x9140, 0x6147, 0x9141, 0x6149, 0x9142, 0x614B, 0x9143, 0x614D, 0x9144, 0x614F, 0x9145, 0x6150, 0x9146, 0x6152, + 0x9147, 0x6153, 0x9148, 0x6154, 0x9149, 0x6156, 0x914A, 0x6157, 0x914B, 0x6158, 0x914C, 0x6159, 0x914D, 0x615A, 0x914E, 0x615B, + 0x914F, 0x615C, 0x9150, 0x615E, 0x9151, 0x615F, 0x9152, 0x6160, 0x9153, 0x6161, 0x9154, 0x6163, 0x9155, 0x6164, 0x9156, 0x6165, + 0x9157, 0x6166, 0x9158, 0x6169, 0x9159, 0x616A, 0x915A, 0x616B, 0x915B, 0x616C, 0x915C, 0x616D, 0x915D, 0x616E, 0x915E, 0x616F, + 0x915F, 0x6171, 0x9160, 0x6172, 0x9161, 0x6173, 0x9162, 0x6174, 0x9163, 0x6176, 0x9164, 0x6178, 0x9165, 0x6179, 0x9166, 0x617A, + 0x9167, 0x617B, 0x9168, 0x617C, 0x9169, 0x617D, 0x916A, 0x617E, 0x916B, 0x617F, 0x916C, 0x6180, 0x916D, 0x6181, 0x916E, 0x6182, + 0x916F, 0x6183, 0x9170, 0x6184, 0x9171, 0x6185, 0x9172, 0x6186, 0x9173, 0x6187, 0x9174, 0x6188, 0x9175, 0x6189, 0x9176, 0x618A, + 0x9177, 0x618C, 0x9178, 0x618D, 0x9179, 0x618F, 0x917A, 0x6190, 0x917B, 0x6191, 0x917C, 0x6192, 0x917D, 0x6193, 0x917E, 0x6195, + 0x9180, 0x6196, 0x9181, 0x6197, 0x9182, 0x6198, 0x9183, 0x6199, 0x9184, 0x619A, 0x9185, 0x619B, 0x9186, 0x619C, 0x9187, 0x619E, + 0x9188, 0x619F, 0x9189, 0x61A0, 0x918A, 0x61A1, 0x918B, 0x61A2, 0x918C, 0x61A3, 0x918D, 0x61A4, 0x918E, 0x61A5, 0x918F, 0x61A6, + 0x9190, 0x61AA, 0x9191, 0x61AB, 0x9192, 0x61AD, 0x9193, 0x61AE, 0x9194, 0x61AF, 0x9195, 0x61B0, 0x9196, 0x61B1, 0x9197, 0x61B2, + 0x9198, 0x61B3, 0x9199, 0x61B4, 0x919A, 0x61B5, 0x919B, 0x61B6, 0x919C, 0x61B8, 0x919D, 0x61B9, 0x919E, 0x61BA, 0x919F, 0x61BB, + 0x91A0, 0x61BC, 0x91A1, 0x61BD, 0x91A2, 0x61BF, 0x91A3, 0x61C0, 0x91A4, 0x61C1, 0x91A5, 0x61C3, 0x91A6, 0x61C4, 0x91A7, 0x61C5, + 0x91A8, 0x61C6, 0x91A9, 0x61C7, 0x91AA, 0x61C9, 0x91AB, 0x61CC, 0x91AC, 0x61CD, 0x91AD, 0x61CE, 0x91AE, 0x61CF, 0x91AF, 0x61D0, + 0x91B0, 0x61D3, 0x91B1, 0x61D5, 0x91B2, 0x61D6, 0x91B3, 0x61D7, 0x91B4, 0x61D8, 0x91B5, 0x61D9, 0x91B6, 0x61DA, 0x91B7, 0x61DB, + 0x91B8, 0x61DC, 0x91B9, 0x61DD, 0x91BA, 0x61DE, 0x91BB, 0x61DF, 0x91BC, 0x61E0, 0x91BD, 0x61E1, 0x91BE, 0x61E2, 0x91BF, 0x61E3, + 0x91C0, 0x61E4, 0x91C1, 0x61E5, 0x91C2, 0x61E7, 0x91C3, 0x61E8, 0x91C4, 0x61E9, 0x91C5, 0x61EA, 0x91C6, 0x61EB, 0x91C7, 0x61EC, + 0x91C8, 0x61ED, 0x91C9, 0x61EE, 0x91CA, 0x61EF, 0x91CB, 0x61F0, 0x91CC, 0x61F1, 0x91CD, 0x61F2, 0x91CE, 0x61F3, 0x91CF, 0x61F4, + 0x91D0, 0x61F6, 0x91D1, 0x61F7, 0x91D2, 0x61F8, 0x91D3, 0x61F9, 0x91D4, 0x61FA, 0x91D5, 0x61FB, 0x91D6, 0x61FC, 0x91D7, 0x61FD, + 0x91D8, 0x61FE, 0x91D9, 0x6200, 0x91DA, 0x6201, 0x91DB, 0x6202, 0x91DC, 0x6203, 0x91DD, 0x6204, 0x91DE, 0x6205, 0x91DF, 0x6207, + 0x91E0, 0x6209, 0x91E1, 0x6213, 0x91E2, 0x6214, 0x91E3, 0x6219, 0x91E4, 0x621C, 0x91E5, 0x621D, 0x91E6, 0x621E, 0x91E7, 0x6220, + 0x91E8, 0x6223, 0x91E9, 0x6226, 0x91EA, 0x6227, 0x91EB, 0x6228, 0x91EC, 0x6229, 0x91ED, 0x622B, 0x91EE, 0x622D, 0x91EF, 0x622F, + 0x91F0, 0x6230, 0x91F1, 0x6231, 0x91F2, 0x6232, 0x91F3, 0x6235, 0x91F4, 0x6236, 0x91F5, 0x6238, 0x91F6, 0x6239, 0x91F7, 0x623A, + 0x91F8, 0x623B, 0x91F9, 0x623C, 0x91FA, 0x6242, 0x91FB, 0x6244, 0x91FC, 0x6245, 0x91FD, 0x6246, 0x91FE, 0x624A, 0x9240, 0x624F, + 0x9241, 0x6250, 0x9242, 0x6255, 0x9243, 0x6256, 0x9244, 0x6257, 0x9245, 0x6259, 0x9246, 0x625A, 0x9247, 0x625C, 0x9248, 0x625D, + 0x9249, 0x625E, 0x924A, 0x625F, 0x924B, 0x6260, 0x924C, 0x6261, 0x924D, 0x6262, 0x924E, 0x6264, 0x924F, 0x6265, 0x9250, 0x6268, + 0x9251, 0x6271, 0x9252, 0x6272, 0x9253, 0x6274, 0x9254, 0x6275, 0x9255, 0x6277, 0x9256, 0x6278, 0x9257, 0x627A, 0x9258, 0x627B, + 0x9259, 0x627D, 0x925A, 0x6281, 0x925B, 0x6282, 0x925C, 0x6283, 0x925D, 0x6285, 0x925E, 0x6286, 0x925F, 0x6287, 0x9260, 0x6288, + 0x9261, 0x628B, 0x9262, 0x628C, 0x9263, 0x628D, 0x9264, 0x628E, 0x9265, 0x628F, 0x9266, 0x6290, 0x9267, 0x6294, 0x9268, 0x6299, + 0x9269, 0x629C, 0x926A, 0x629D, 0x926B, 0x629E, 0x926C, 0x62A3, 0x926D, 0x62A6, 0x926E, 0x62A7, 0x926F, 0x62A9, 0x9270, 0x62AA, + 0x9271, 0x62AD, 0x9272, 0x62AE, 0x9273, 0x62AF, 0x9274, 0x62B0, 0x9275, 0x62B2, 0x9276, 0x62B3, 0x9277, 0x62B4, 0x9278, 0x62B6, + 0x9279, 0x62B7, 0x927A, 0x62B8, 0x927B, 0x62BA, 0x927C, 0x62BE, 0x927D, 0x62C0, 0x927E, 0x62C1, 0x9280, 0x62C3, 0x9281, 0x62CB, + 0x9282, 0x62CF, 0x9283, 0x62D1, 0x9284, 0x62D5, 0x9285, 0x62DD, 0x9286, 0x62DE, 0x9287, 0x62E0, 0x9288, 0x62E1, 0x9289, 0x62E4, + 0x928A, 0x62EA, 0x928B, 0x62EB, 0x928C, 0x62F0, 0x928D, 0x62F2, 0x928E, 0x62F5, 0x928F, 0x62F8, 0x9290, 0x62F9, 0x9291, 0x62FA, + 0x9292, 0x62FB, 0x9293, 0x6300, 0x9294, 0x6303, 0x9295, 0x6304, 0x9296, 0x6305, 0x9297, 0x6306, 0x9298, 0x630A, 0x9299, 0x630B, + 0x929A, 0x630C, 0x929B, 0x630D, 0x929C, 0x630F, 0x929D, 0x6310, 0x929E, 0x6312, 0x929F, 0x6313, 0x92A0, 0x6314, 0x92A1, 0x6315, + 0x92A2, 0x6317, 0x92A3, 0x6318, 0x92A4, 0x6319, 0x92A5, 0x631C, 0x92A6, 0x6326, 0x92A7, 0x6327, 0x92A8, 0x6329, 0x92A9, 0x632C, + 0x92AA, 0x632D, 0x92AB, 0x632E, 0x92AC, 0x6330, 0x92AD, 0x6331, 0x92AE, 0x6333, 0x92AF, 0x6334, 0x92B0, 0x6335, 0x92B1, 0x6336, + 0x92B2, 0x6337, 0x92B3, 0x6338, 0x92B4, 0x633B, 0x92B5, 0x633C, 0x92B6, 0x633E, 0x92B7, 0x633F, 0x92B8, 0x6340, 0x92B9, 0x6341, + 0x92BA, 0x6344, 0x92BB, 0x6347, 0x92BC, 0x6348, 0x92BD, 0x634A, 0x92BE, 0x6351, 0x92BF, 0x6352, 0x92C0, 0x6353, 0x92C1, 0x6354, + 0x92C2, 0x6356, 0x92C3, 0x6357, 0x92C4, 0x6358, 0x92C5, 0x6359, 0x92C6, 0x635A, 0x92C7, 0x635B, 0x92C8, 0x635C, 0x92C9, 0x635D, + 0x92CA, 0x6360, 0x92CB, 0x6364, 0x92CC, 0x6365, 0x92CD, 0x6366, 0x92CE, 0x6368, 0x92CF, 0x636A, 0x92D0, 0x636B, 0x92D1, 0x636C, + 0x92D2, 0x636F, 0x92D3, 0x6370, 0x92D4, 0x6372, 0x92D5, 0x6373, 0x92D6, 0x6374, 0x92D7, 0x6375, 0x92D8, 0x6378, 0x92D9, 0x6379, + 0x92DA, 0x637C, 0x92DB, 0x637D, 0x92DC, 0x637E, 0x92DD, 0x637F, 0x92DE, 0x6381, 0x92DF, 0x6383, 0x92E0, 0x6384, 0x92E1, 0x6385, + 0x92E2, 0x6386, 0x92E3, 0x638B, 0x92E4, 0x638D, 0x92E5, 0x6391, 0x92E6, 0x6393, 0x92E7, 0x6394, 0x92E8, 0x6395, 0x92E9, 0x6397, + 0x92EA, 0x6399, 0x92EB, 0x639A, 0x92EC, 0x639B, 0x92ED, 0x639C, 0x92EE, 0x639D, 0x92EF, 0x639E, 0x92F0, 0x639F, 0x92F1, 0x63A1, + 0x92F2, 0x63A4, 0x92F3, 0x63A6, 0x92F4, 0x63AB, 0x92F5, 0x63AF, 0x92F6, 0x63B1, 0x92F7, 0x63B2, 0x92F8, 0x63B5, 0x92F9, 0x63B6, + 0x92FA, 0x63B9, 0x92FB, 0x63BB, 0x92FC, 0x63BD, 0x92FD, 0x63BF, 0x92FE, 0x63C0, 0x9340, 0x63C1, 0x9341, 0x63C2, 0x9342, 0x63C3, + 0x9343, 0x63C5, 0x9344, 0x63C7, 0x9345, 0x63C8, 0x9346, 0x63CA, 0x9347, 0x63CB, 0x9348, 0x63CC, 0x9349, 0x63D1, 0x934A, 0x63D3, + 0x934B, 0x63D4, 0x934C, 0x63D5, 0x934D, 0x63D7, 0x934E, 0x63D8, 0x934F, 0x63D9, 0x9350, 0x63DA, 0x9351, 0x63DB, 0x9352, 0x63DC, + 0x9353, 0x63DD, 0x9354, 0x63DF, 0x9355, 0x63E2, 0x9356, 0x63E4, 0x9357, 0x63E5, 0x9358, 0x63E6, 0x9359, 0x63E7, 0x935A, 0x63E8, + 0x935B, 0x63EB, 0x935C, 0x63EC, 0x935D, 0x63EE, 0x935E, 0x63EF, 0x935F, 0x63F0, 0x9360, 0x63F1, 0x9361, 0x63F3, 0x9362, 0x63F5, + 0x9363, 0x63F7, 0x9364, 0x63F9, 0x9365, 0x63FA, 0x9366, 0x63FB, 0x9367, 0x63FC, 0x9368, 0x63FE, 0x9369, 0x6403, 0x936A, 0x6404, + 0x936B, 0x6406, 0x936C, 0x6407, 0x936D, 0x6408, 0x936E, 0x6409, 0x936F, 0x640A, 0x9370, 0x640D, 0x9371, 0x640E, 0x9372, 0x6411, + 0x9373, 0x6412, 0x9374, 0x6415, 0x9375, 0x6416, 0x9376, 0x6417, 0x9377, 0x6418, 0x9378, 0x6419, 0x9379, 0x641A, 0x937A, 0x641D, + 0x937B, 0x641F, 0x937C, 0x6422, 0x937D, 0x6423, 0x937E, 0x6424, 0x9380, 0x6425, 0x9381, 0x6427, 0x9382, 0x6428, 0x9383, 0x6429, + 0x9384, 0x642B, 0x9385, 0x642E, 0x9386, 0x642F, 0x9387, 0x6430, 0x9388, 0x6431, 0x9389, 0x6432, 0x938A, 0x6433, 0x938B, 0x6435, + 0x938C, 0x6436, 0x938D, 0x6437, 0x938E, 0x6438, 0x938F, 0x6439, 0x9390, 0x643B, 0x9391, 0x643C, 0x9392, 0x643E, 0x9393, 0x6440, + 0x9394, 0x6442, 0x9395, 0x6443, 0x9396, 0x6449, 0x9397, 0x644B, 0x9398, 0x644C, 0x9399, 0x644D, 0x939A, 0x644E, 0x939B, 0x644F, + 0x939C, 0x6450, 0x939D, 0x6451, 0x939E, 0x6453, 0x939F, 0x6455, 0x93A0, 0x6456, 0x93A1, 0x6457, 0x93A2, 0x6459, 0x93A3, 0x645A, + 0x93A4, 0x645B, 0x93A5, 0x645C, 0x93A6, 0x645D, 0x93A7, 0x645F, 0x93A8, 0x6460, 0x93A9, 0x6461, 0x93AA, 0x6462, 0x93AB, 0x6463, + 0x93AC, 0x6464, 0x93AD, 0x6465, 0x93AE, 0x6466, 0x93AF, 0x6468, 0x93B0, 0x646A, 0x93B1, 0x646B, 0x93B2, 0x646C, 0x93B3, 0x646E, + 0x93B4, 0x646F, 0x93B5, 0x6470, 0x93B6, 0x6471, 0x93B7, 0x6472, 0x93B8, 0x6473, 0x93B9, 0x6474, 0x93BA, 0x6475, 0x93BB, 0x6476, + 0x93BC, 0x6477, 0x93BD, 0x647B, 0x93BE, 0x647C, 0x93BF, 0x647D, 0x93C0, 0x647E, 0x93C1, 0x647F, 0x93C2, 0x6480, 0x93C3, 0x6481, + 0x93C4, 0x6483, 0x93C5, 0x6486, 0x93C6, 0x6488, 0x93C7, 0x6489, 0x93C8, 0x648A, 0x93C9, 0x648B, 0x93CA, 0x648C, 0x93CB, 0x648D, + 0x93CC, 0x648E, 0x93CD, 0x648F, 0x93CE, 0x6490, 0x93CF, 0x6493, 0x93D0, 0x6494, 0x93D1, 0x6497, 0x93D2, 0x6498, 0x93D3, 0x649A, + 0x93D4, 0x649B, 0x93D5, 0x649C, 0x93D6, 0x649D, 0x93D7, 0x649F, 0x93D8, 0x64A0, 0x93D9, 0x64A1, 0x93DA, 0x64A2, 0x93DB, 0x64A3, + 0x93DC, 0x64A5, 0x93DD, 0x64A6, 0x93DE, 0x64A7, 0x93DF, 0x64A8, 0x93E0, 0x64AA, 0x93E1, 0x64AB, 0x93E2, 0x64AF, 0x93E3, 0x64B1, + 0x93E4, 0x64B2, 0x93E5, 0x64B3, 0x93E6, 0x64B4, 0x93E7, 0x64B6, 0x93E8, 0x64B9, 0x93E9, 0x64BB, 0x93EA, 0x64BD, 0x93EB, 0x64BE, + 0x93EC, 0x64BF, 0x93ED, 0x64C1, 0x93EE, 0x64C3, 0x93EF, 0x64C4, 0x93F0, 0x64C6, 0x93F1, 0x64C7, 0x93F2, 0x64C8, 0x93F3, 0x64C9, + 0x93F4, 0x64CA, 0x93F5, 0x64CB, 0x93F6, 0x64CC, 0x93F7, 0x64CF, 0x93F8, 0x64D1, 0x93F9, 0x64D3, 0x93FA, 0x64D4, 0x93FB, 0x64D5, + 0x93FC, 0x64D6, 0x93FD, 0x64D9, 0x93FE, 0x64DA, 0x9440, 0x64DB, 0x9441, 0x64DC, 0x9442, 0x64DD, 0x9443, 0x64DF, 0x9444, 0x64E0, + 0x9445, 0x64E1, 0x9446, 0x64E3, 0x9447, 0x64E5, 0x9448, 0x64E7, 0x9449, 0x64E8, 0x944A, 0x64E9, 0x944B, 0x64EA, 0x944C, 0x64EB, + 0x944D, 0x64EC, 0x944E, 0x64ED, 0x944F, 0x64EE, 0x9450, 0x64EF, 0x9451, 0x64F0, 0x9452, 0x64F1, 0x9453, 0x64F2, 0x9454, 0x64F3, + 0x9455, 0x64F4, 0x9456, 0x64F5, 0x9457, 0x64F6, 0x9458, 0x64F7, 0x9459, 0x64F8, 0x945A, 0x64F9, 0x945B, 0x64FA, 0x945C, 0x64FB, + 0x945D, 0x64FC, 0x945E, 0x64FD, 0x945F, 0x64FE, 0x9460, 0x64FF, 0x9461, 0x6501, 0x9462, 0x6502, 0x9463, 0x6503, 0x9464, 0x6504, + 0x9465, 0x6505, 0x9466, 0x6506, 0x9467, 0x6507, 0x9468, 0x6508, 0x9469, 0x650A, 0x946A, 0x650B, 0x946B, 0x650C, 0x946C, 0x650D, + 0x946D, 0x650E, 0x946E, 0x650F, 0x946F, 0x6510, 0x9470, 0x6511, 0x9471, 0x6513, 0x9472, 0x6514, 0x9473, 0x6515, 0x9474, 0x6516, + 0x9475, 0x6517, 0x9476, 0x6519, 0x9477, 0x651A, 0x9478, 0x651B, 0x9479, 0x651C, 0x947A, 0x651D, 0x947B, 0x651E, 0x947C, 0x651F, + 0x947D, 0x6520, 0x947E, 0x6521, 0x9480, 0x6522, 0x9481, 0x6523, 0x9482, 0x6524, 0x9483, 0x6526, 0x9484, 0x6527, 0x9485, 0x6528, + 0x9486, 0x6529, 0x9487, 0x652A, 0x9488, 0x652C, 0x9489, 0x652D, 0x948A, 0x6530, 0x948B, 0x6531, 0x948C, 0x6532, 0x948D, 0x6533, + 0x948E, 0x6537, 0x948F, 0x653A, 0x9490, 0x653C, 0x9491, 0x653D, 0x9492, 0x6540, 0x9493, 0x6541, 0x9494, 0x6542, 0x9495, 0x6543, + 0x9496, 0x6544, 0x9497, 0x6546, 0x9498, 0x6547, 0x9499, 0x654A, 0x949A, 0x654B, 0x949B, 0x654D, 0x949C, 0x654E, 0x949D, 0x6550, + 0x949E, 0x6552, 0x949F, 0x6553, 0x94A0, 0x6554, 0x94A1, 0x6557, 0x94A2, 0x6558, 0x94A3, 0x655A, 0x94A4, 0x655C, 0x94A5, 0x655F, + 0x94A6, 0x6560, 0x94A7, 0x6561, 0x94A8, 0x6564, 0x94A9, 0x6565, 0x94AA, 0x6567, 0x94AB, 0x6568, 0x94AC, 0x6569, 0x94AD, 0x656A, + 0x94AE, 0x656D, 0x94AF, 0x656E, 0x94B0, 0x656F, 0x94B1, 0x6571, 0x94B2, 0x6573, 0x94B3, 0x6575, 0x94B4, 0x6576, 0x94B5, 0x6578, + 0x94B6, 0x6579, 0x94B7, 0x657A, 0x94B8, 0x657B, 0x94B9, 0x657C, 0x94BA, 0x657D, 0x94BB, 0x657E, 0x94BC, 0x657F, 0x94BD, 0x6580, + 0x94BE, 0x6581, 0x94BF, 0x6582, 0x94C0, 0x6583, 0x94C1, 0x6584, 0x94C2, 0x6585, 0x94C3, 0x6586, 0x94C4, 0x6588, 0x94C5, 0x6589, + 0x94C6, 0x658A, 0x94C7, 0x658D, 0x94C8, 0x658E, 0x94C9, 0x658F, 0x94CA, 0x6592, 0x94CB, 0x6594, 0x94CC, 0x6595, 0x94CD, 0x6596, + 0x94CE, 0x6598, 0x94CF, 0x659A, 0x94D0, 0x659D, 0x94D1, 0x659E, 0x94D2, 0x65A0, 0x94D3, 0x65A2, 0x94D4, 0x65A3, 0x94D5, 0x65A6, + 0x94D6, 0x65A8, 0x94D7, 0x65AA, 0x94D8, 0x65AC, 0x94D9, 0x65AE, 0x94DA, 0x65B1, 0x94DB, 0x65B2, 0x94DC, 0x65B3, 0x94DD, 0x65B4, + 0x94DE, 0x65B5, 0x94DF, 0x65B6, 0x94E0, 0x65B7, 0x94E1, 0x65B8, 0x94E2, 0x65BA, 0x94E3, 0x65BB, 0x94E4, 0x65BE, 0x94E5, 0x65BF, + 0x94E6, 0x65C0, 0x94E7, 0x65C2, 0x94E8, 0x65C7, 0x94E9, 0x65C8, 0x94EA, 0x65C9, 0x94EB, 0x65CA, 0x94EC, 0x65CD, 0x94ED, 0x65D0, + 0x94EE, 0x65D1, 0x94EF, 0x65D3, 0x94F0, 0x65D4, 0x94F1, 0x65D5, 0x94F2, 0x65D8, 0x94F3, 0x65D9, 0x94F4, 0x65DA, 0x94F5, 0x65DB, + 0x94F6, 0x65DC, 0x94F7, 0x65DD, 0x94F8, 0x65DE, 0x94F9, 0x65DF, 0x94FA, 0x65E1, 0x94FB, 0x65E3, 0x94FC, 0x65E4, 0x94FD, 0x65EA, + 0x94FE, 0x65EB, 0x9540, 0x65F2, 0x9541, 0x65F3, 0x9542, 0x65F4, 0x9543, 0x65F5, 0x9544, 0x65F8, 0x9545, 0x65F9, 0x9546, 0x65FB, + 0x9547, 0x65FC, 0x9548, 0x65FD, 0x9549, 0x65FE, 0x954A, 0x65FF, 0x954B, 0x6601, 0x954C, 0x6604, 0x954D, 0x6605, 0x954E, 0x6607, + 0x954F, 0x6608, 0x9550, 0x6609, 0x9551, 0x660B, 0x9552, 0x660D, 0x9553, 0x6610, 0x9554, 0x6611, 0x9555, 0x6612, 0x9556, 0x6616, + 0x9557, 0x6617, 0x9558, 0x6618, 0x9559, 0x661A, 0x955A, 0x661B, 0x955B, 0x661C, 0x955C, 0x661E, 0x955D, 0x6621, 0x955E, 0x6622, + 0x955F, 0x6623, 0x9560, 0x6624, 0x9561, 0x6626, 0x9562, 0x6629, 0x9563, 0x662A, 0x9564, 0x662B, 0x9565, 0x662C, 0x9566, 0x662E, + 0x9567, 0x6630, 0x9568, 0x6632, 0x9569, 0x6633, 0x956A, 0x6637, 0x956B, 0x6638, 0x956C, 0x6639, 0x956D, 0x663A, 0x956E, 0x663B, + 0x956F, 0x663D, 0x9570, 0x663F, 0x9571, 0x6640, 0x9572, 0x6642, 0x9573, 0x6644, 0x9574, 0x6645, 0x9575, 0x6646, 0x9576, 0x6647, + 0x9577, 0x6648, 0x9578, 0x6649, 0x9579, 0x664A, 0x957A, 0x664D, 0x957B, 0x664E, 0x957C, 0x6650, 0x957D, 0x6651, 0x957E, 0x6658, + 0x9580, 0x6659, 0x9581, 0x665B, 0x9582, 0x665C, 0x9583, 0x665D, 0x9584, 0x665E, 0x9585, 0x6660, 0x9586, 0x6662, 0x9587, 0x6663, + 0x9588, 0x6665, 0x9589, 0x6667, 0x958A, 0x6669, 0x958B, 0x666A, 0x958C, 0x666B, 0x958D, 0x666C, 0x958E, 0x666D, 0x958F, 0x6671, + 0x9590, 0x6672, 0x9591, 0x6673, 0x9592, 0x6675, 0x9593, 0x6678, 0x9594, 0x6679, 0x9595, 0x667B, 0x9596, 0x667C, 0x9597, 0x667D, + 0x9598, 0x667F, 0x9599, 0x6680, 0x959A, 0x6681, 0x959B, 0x6683, 0x959C, 0x6685, 0x959D, 0x6686, 0x959E, 0x6688, 0x959F, 0x6689, + 0x95A0, 0x668A, 0x95A1, 0x668B, 0x95A2, 0x668D, 0x95A3, 0x668E, 0x95A4, 0x668F, 0x95A5, 0x6690, 0x95A6, 0x6692, 0x95A7, 0x6693, + 0x95A8, 0x6694, 0x95A9, 0x6695, 0x95AA, 0x6698, 0x95AB, 0x6699, 0x95AC, 0x669A, 0x95AD, 0x669B, 0x95AE, 0x669C, 0x95AF, 0x669E, + 0x95B0, 0x669F, 0x95B1, 0x66A0, 0x95B2, 0x66A1, 0x95B3, 0x66A2, 0x95B4, 0x66A3, 0x95B5, 0x66A4, 0x95B6, 0x66A5, 0x95B7, 0x66A6, + 0x95B8, 0x66A9, 0x95B9, 0x66AA, 0x95BA, 0x66AB, 0x95BB, 0x66AC, 0x95BC, 0x66AD, 0x95BD, 0x66AF, 0x95BE, 0x66B0, 0x95BF, 0x66B1, + 0x95C0, 0x66B2, 0x95C1, 0x66B3, 0x95C2, 0x66B5, 0x95C3, 0x66B6, 0x95C4, 0x66B7, 0x95C5, 0x66B8, 0x95C6, 0x66BA, 0x95C7, 0x66BB, + 0x95C8, 0x66BC, 0x95C9, 0x66BD, 0x95CA, 0x66BF, 0x95CB, 0x66C0, 0x95CC, 0x66C1, 0x95CD, 0x66C2, 0x95CE, 0x66C3, 0x95CF, 0x66C4, + 0x95D0, 0x66C5, 0x95D1, 0x66C6, 0x95D2, 0x66C7, 0x95D3, 0x66C8, 0x95D4, 0x66C9, 0x95D5, 0x66CA, 0x95D6, 0x66CB, 0x95D7, 0x66CC, + 0x95D8, 0x66CD, 0x95D9, 0x66CE, 0x95DA, 0x66CF, 0x95DB, 0x66D0, 0x95DC, 0x66D1, 0x95DD, 0x66D2, 0x95DE, 0x66D3, 0x95DF, 0x66D4, + 0x95E0, 0x66D5, 0x95E1, 0x66D6, 0x95E2, 0x66D7, 0x95E3, 0x66D8, 0x95E4, 0x66DA, 0x95E5, 0x66DE, 0x95E6, 0x66DF, 0x95E7, 0x66E0, + 0x95E8, 0x66E1, 0x95E9, 0x66E2, 0x95EA, 0x66E3, 0x95EB, 0x66E4, 0x95EC, 0x66E5, 0x95ED, 0x66E7, 0x95EE, 0x66E8, 0x95EF, 0x66EA, + 0x95F0, 0x66EB, 0x95F1, 0x66EC, 0x95F2, 0x66ED, 0x95F3, 0x66EE, 0x95F4, 0x66EF, 0x95F5, 0x66F1, 0x95F6, 0x66F5, 0x95F7, 0x66F6, + 0x95F8, 0x66F8, 0x95F9, 0x66FA, 0x95FA, 0x66FB, 0x95FB, 0x66FD, 0x95FC, 0x6701, 0x95FD, 0x6702, 0x95FE, 0x6703, 0x9640, 0x6704, + 0x9641, 0x6705, 0x9642, 0x6706, 0x9643, 0x6707, 0x9644, 0x670C, 0x9645, 0x670E, 0x9646, 0x670F, 0x9647, 0x6711, 0x9648, 0x6712, + 0x9649, 0x6713, 0x964A, 0x6716, 0x964B, 0x6718, 0x964C, 0x6719, 0x964D, 0x671A, 0x964E, 0x671C, 0x964F, 0x671E, 0x9650, 0x6720, + 0x9651, 0x6721, 0x9652, 0x6722, 0x9653, 0x6723, 0x9654, 0x6724, 0x9655, 0x6725, 0x9656, 0x6727, 0x9657, 0x6729, 0x9658, 0x672E, + 0x9659, 0x6730, 0x965A, 0x6732, 0x965B, 0x6733, 0x965C, 0x6736, 0x965D, 0x6737, 0x965E, 0x6738, 0x965F, 0x6739, 0x9660, 0x673B, + 0x9661, 0x673C, 0x9662, 0x673E, 0x9663, 0x673F, 0x9664, 0x6741, 0x9665, 0x6744, 0x9666, 0x6745, 0x9667, 0x6747, 0x9668, 0x674A, + 0x9669, 0x674B, 0x966A, 0x674D, 0x966B, 0x6752, 0x966C, 0x6754, 0x966D, 0x6755, 0x966E, 0x6757, 0x966F, 0x6758, 0x9670, 0x6759, + 0x9671, 0x675A, 0x9672, 0x675B, 0x9673, 0x675D, 0x9674, 0x6762, 0x9675, 0x6763, 0x9676, 0x6764, 0x9677, 0x6766, 0x9678, 0x6767, + 0x9679, 0x676B, 0x967A, 0x676C, 0x967B, 0x676E, 0x967C, 0x6771, 0x967D, 0x6774, 0x967E, 0x6776, 0x9680, 0x6778, 0x9681, 0x6779, + 0x9682, 0x677A, 0x9683, 0x677B, 0x9684, 0x677D, 0x9685, 0x6780, 0x9686, 0x6782, 0x9687, 0x6783, 0x9688, 0x6785, 0x9689, 0x6786, + 0x968A, 0x6788, 0x968B, 0x678A, 0x968C, 0x678C, 0x968D, 0x678D, 0x968E, 0x678E, 0x968F, 0x678F, 0x9690, 0x6791, 0x9691, 0x6792, + 0x9692, 0x6793, 0x9693, 0x6794, 0x9694, 0x6796, 0x9695, 0x6799, 0x9696, 0x679B, 0x9697, 0x679F, 0x9698, 0x67A0, 0x9699, 0x67A1, + 0x969A, 0x67A4, 0x969B, 0x67A6, 0x969C, 0x67A9, 0x969D, 0x67AC, 0x969E, 0x67AE, 0x969F, 0x67B1, 0x96A0, 0x67B2, 0x96A1, 0x67B4, + 0x96A2, 0x67B9, 0x96A3, 0x67BA, 0x96A4, 0x67BB, 0x96A5, 0x67BC, 0x96A6, 0x67BD, 0x96A7, 0x67BE, 0x96A8, 0x67BF, 0x96A9, 0x67C0, + 0x96AA, 0x67C2, 0x96AB, 0x67C5, 0x96AC, 0x67C6, 0x96AD, 0x67C7, 0x96AE, 0x67C8, 0x96AF, 0x67C9, 0x96B0, 0x67CA, 0x96B1, 0x67CB, + 0x96B2, 0x67CC, 0x96B3, 0x67CD, 0x96B4, 0x67CE, 0x96B5, 0x67D5, 0x96B6, 0x67D6, 0x96B7, 0x67D7, 0x96B8, 0x67DB, 0x96B9, 0x67DF, + 0x96BA, 0x67E1, 0x96BB, 0x67E3, 0x96BC, 0x67E4, 0x96BD, 0x67E6, 0x96BE, 0x67E7, 0x96BF, 0x67E8, 0x96C0, 0x67EA, 0x96C1, 0x67EB, + 0x96C2, 0x67ED, 0x96C3, 0x67EE, 0x96C4, 0x67F2, 0x96C5, 0x67F5, 0x96C6, 0x67F6, 0x96C7, 0x67F7, 0x96C8, 0x67F8, 0x96C9, 0x67F9, + 0x96CA, 0x67FA, 0x96CB, 0x67FB, 0x96CC, 0x67FC, 0x96CD, 0x67FE, 0x96CE, 0x6801, 0x96CF, 0x6802, 0x96D0, 0x6803, 0x96D1, 0x6804, + 0x96D2, 0x6806, 0x96D3, 0x680D, 0x96D4, 0x6810, 0x96D5, 0x6812, 0x96D6, 0x6814, 0x96D7, 0x6815, 0x96D8, 0x6818, 0x96D9, 0x6819, + 0x96DA, 0x681A, 0x96DB, 0x681B, 0x96DC, 0x681C, 0x96DD, 0x681E, 0x96DE, 0x681F, 0x96DF, 0x6820, 0x96E0, 0x6822, 0x96E1, 0x6823, + 0x96E2, 0x6824, 0x96E3, 0x6825, 0x96E4, 0x6826, 0x96E5, 0x6827, 0x96E6, 0x6828, 0x96E7, 0x682B, 0x96E8, 0x682C, 0x96E9, 0x682D, + 0x96EA, 0x682E, 0x96EB, 0x682F, 0x96EC, 0x6830, 0x96ED, 0x6831, 0x96EE, 0x6834, 0x96EF, 0x6835, 0x96F0, 0x6836, 0x96F1, 0x683A, + 0x96F2, 0x683B, 0x96F3, 0x683F, 0x96F4, 0x6847, 0x96F5, 0x684B, 0x96F6, 0x684D, 0x96F7, 0x684F, 0x96F8, 0x6852, 0x96F9, 0x6856, + 0x96FA, 0x6857, 0x96FB, 0x6858, 0x96FC, 0x6859, 0x96FD, 0x685A, 0x96FE, 0x685B, 0x9740, 0x685C, 0x9741, 0x685D, 0x9742, 0x685E, + 0x9743, 0x685F, 0x9744, 0x686A, 0x9745, 0x686C, 0x9746, 0x686D, 0x9747, 0x686E, 0x9748, 0x686F, 0x9749, 0x6870, 0x974A, 0x6871, + 0x974B, 0x6872, 0x974C, 0x6873, 0x974D, 0x6875, 0x974E, 0x6878, 0x974F, 0x6879, 0x9750, 0x687A, 0x9751, 0x687B, 0x9752, 0x687C, + 0x9753, 0x687D, 0x9754, 0x687E, 0x9755, 0x687F, 0x9756, 0x6880, 0x9757, 0x6882, 0x9758, 0x6884, 0x9759, 0x6887, 0x975A, 0x6888, + 0x975B, 0x6889, 0x975C, 0x688A, 0x975D, 0x688B, 0x975E, 0x688C, 0x975F, 0x688D, 0x9760, 0x688E, 0x9761, 0x6890, 0x9762, 0x6891, + 0x9763, 0x6892, 0x9764, 0x6894, 0x9765, 0x6895, 0x9766, 0x6896, 0x9767, 0x6898, 0x9768, 0x6899, 0x9769, 0x689A, 0x976A, 0x689B, + 0x976B, 0x689C, 0x976C, 0x689D, 0x976D, 0x689E, 0x976E, 0x689F, 0x976F, 0x68A0, 0x9770, 0x68A1, 0x9771, 0x68A3, 0x9772, 0x68A4, + 0x9773, 0x68A5, 0x9774, 0x68A9, 0x9775, 0x68AA, 0x9776, 0x68AB, 0x9777, 0x68AC, 0x9778, 0x68AE, 0x9779, 0x68B1, 0x977A, 0x68B2, + 0x977B, 0x68B4, 0x977C, 0x68B6, 0x977D, 0x68B7, 0x977E, 0x68B8, 0x9780, 0x68B9, 0x9781, 0x68BA, 0x9782, 0x68BB, 0x9783, 0x68BC, + 0x9784, 0x68BD, 0x9785, 0x68BE, 0x9786, 0x68BF, 0x9787, 0x68C1, 0x9788, 0x68C3, 0x9789, 0x68C4, 0x978A, 0x68C5, 0x978B, 0x68C6, + 0x978C, 0x68C7, 0x978D, 0x68C8, 0x978E, 0x68CA, 0x978F, 0x68CC, 0x9790, 0x68CE, 0x9791, 0x68CF, 0x9792, 0x68D0, 0x9793, 0x68D1, + 0x9794, 0x68D3, 0x9795, 0x68D4, 0x9796, 0x68D6, 0x9797, 0x68D7, 0x9798, 0x68D9, 0x9799, 0x68DB, 0x979A, 0x68DC, 0x979B, 0x68DD, + 0x979C, 0x68DE, 0x979D, 0x68DF, 0x979E, 0x68E1, 0x979F, 0x68E2, 0x97A0, 0x68E4, 0x97A1, 0x68E5, 0x97A2, 0x68E6, 0x97A3, 0x68E7, + 0x97A4, 0x68E8, 0x97A5, 0x68E9, 0x97A6, 0x68EA, 0x97A7, 0x68EB, 0x97A8, 0x68EC, 0x97A9, 0x68ED, 0x97AA, 0x68EF, 0x97AB, 0x68F2, + 0x97AC, 0x68F3, 0x97AD, 0x68F4, 0x97AE, 0x68F6, 0x97AF, 0x68F7, 0x97B0, 0x68F8, 0x97B1, 0x68FB, 0x97B2, 0x68FD, 0x97B3, 0x68FE, + 0x97B4, 0x68FF, 0x97B5, 0x6900, 0x97B6, 0x6902, 0x97B7, 0x6903, 0x97B8, 0x6904, 0x97B9, 0x6906, 0x97BA, 0x6907, 0x97BB, 0x6908, + 0x97BC, 0x6909, 0x97BD, 0x690A, 0x97BE, 0x690C, 0x97BF, 0x690F, 0x97C0, 0x6911, 0x97C1, 0x6913, 0x97C2, 0x6914, 0x97C3, 0x6915, + 0x97C4, 0x6916, 0x97C5, 0x6917, 0x97C6, 0x6918, 0x97C7, 0x6919, 0x97C8, 0x691A, 0x97C9, 0x691B, 0x97CA, 0x691C, 0x97CB, 0x691D, + 0x97CC, 0x691E, 0x97CD, 0x6921, 0x97CE, 0x6922, 0x97CF, 0x6923, 0x97D0, 0x6925, 0x97D1, 0x6926, 0x97D2, 0x6927, 0x97D3, 0x6928, + 0x97D4, 0x6929, 0x97D5, 0x692A, 0x97D6, 0x692B, 0x97D7, 0x692C, 0x97D8, 0x692E, 0x97D9, 0x692F, 0x97DA, 0x6931, 0x97DB, 0x6932, + 0x97DC, 0x6933, 0x97DD, 0x6935, 0x97DE, 0x6936, 0x97DF, 0x6937, 0x97E0, 0x6938, 0x97E1, 0x693A, 0x97E2, 0x693B, 0x97E3, 0x693C, + 0x97E4, 0x693E, 0x97E5, 0x6940, 0x97E6, 0x6941, 0x97E7, 0x6943, 0x97E8, 0x6944, 0x97E9, 0x6945, 0x97EA, 0x6946, 0x97EB, 0x6947, + 0x97EC, 0x6948, 0x97ED, 0x6949, 0x97EE, 0x694A, 0x97EF, 0x694B, 0x97F0, 0x694C, 0x97F1, 0x694D, 0x97F2, 0x694E, 0x97F3, 0x694F, + 0x97F4, 0x6950, 0x97F5, 0x6951, 0x97F6, 0x6952, 0x97F7, 0x6953, 0x97F8, 0x6955, 0x97F9, 0x6956, 0x97FA, 0x6958, 0x97FB, 0x6959, + 0x97FC, 0x695B, 0x97FD, 0x695C, 0x97FE, 0x695F, 0x9840, 0x6961, 0x9841, 0x6962, 0x9842, 0x6964, 0x9843, 0x6965, 0x9844, 0x6967, + 0x9845, 0x6968, 0x9846, 0x6969, 0x9847, 0x696A, 0x9848, 0x696C, 0x9849, 0x696D, 0x984A, 0x696F, 0x984B, 0x6970, 0x984C, 0x6972, + 0x984D, 0x6973, 0x984E, 0x6974, 0x984F, 0x6975, 0x9850, 0x6976, 0x9851, 0x697A, 0x9852, 0x697B, 0x9853, 0x697D, 0x9854, 0x697E, + 0x9855, 0x697F, 0x9856, 0x6981, 0x9857, 0x6983, 0x9858, 0x6985, 0x9859, 0x698A, 0x985A, 0x698B, 0x985B, 0x698C, 0x985C, 0x698E, + 0x985D, 0x698F, 0x985E, 0x6990, 0x985F, 0x6991, 0x9860, 0x6992, 0x9861, 0x6993, 0x9862, 0x6996, 0x9863, 0x6997, 0x9864, 0x6999, + 0x9865, 0x699A, 0x9866, 0x699D, 0x9867, 0x699E, 0x9868, 0x699F, 0x9869, 0x69A0, 0x986A, 0x69A1, 0x986B, 0x69A2, 0x986C, 0x69A3, + 0x986D, 0x69A4, 0x986E, 0x69A5, 0x986F, 0x69A6, 0x9870, 0x69A9, 0x9871, 0x69AA, 0x9872, 0x69AC, 0x9873, 0x69AE, 0x9874, 0x69AF, + 0x9875, 0x69B0, 0x9876, 0x69B2, 0x9877, 0x69B3, 0x9878, 0x69B5, 0x9879, 0x69B6, 0x987A, 0x69B8, 0x987B, 0x69B9, 0x987C, 0x69BA, + 0x987D, 0x69BC, 0x987E, 0x69BD, 0x9880, 0x69BE, 0x9881, 0x69BF, 0x9882, 0x69C0, 0x9883, 0x69C2, 0x9884, 0x69C3, 0x9885, 0x69C4, + 0x9886, 0x69C5, 0x9887, 0x69C6, 0x9888, 0x69C7, 0x9889, 0x69C8, 0x988A, 0x69C9, 0x988B, 0x69CB, 0x988C, 0x69CD, 0x988D, 0x69CF, + 0x988E, 0x69D1, 0x988F, 0x69D2, 0x9890, 0x69D3, 0x9891, 0x69D5, 0x9892, 0x69D6, 0x9893, 0x69D7, 0x9894, 0x69D8, 0x9895, 0x69D9, + 0x9896, 0x69DA, 0x9897, 0x69DC, 0x9898, 0x69DD, 0x9899, 0x69DE, 0x989A, 0x69E1, 0x989B, 0x69E2, 0x989C, 0x69E3, 0x989D, 0x69E4, + 0x989E, 0x69E5, 0x989F, 0x69E6, 0x98A0, 0x69E7, 0x98A1, 0x69E8, 0x98A2, 0x69E9, 0x98A3, 0x69EA, 0x98A4, 0x69EB, 0x98A5, 0x69EC, + 0x98A6, 0x69EE, 0x98A7, 0x69EF, 0x98A8, 0x69F0, 0x98A9, 0x69F1, 0x98AA, 0x69F3, 0x98AB, 0x69F4, 0x98AC, 0x69F5, 0x98AD, 0x69F6, + 0x98AE, 0x69F7, 0x98AF, 0x69F8, 0x98B0, 0x69F9, 0x98B1, 0x69FA, 0x98B2, 0x69FB, 0x98B3, 0x69FC, 0x98B4, 0x69FE, 0x98B5, 0x6A00, + 0x98B6, 0x6A01, 0x98B7, 0x6A02, 0x98B8, 0x6A03, 0x98B9, 0x6A04, 0x98BA, 0x6A05, 0x98BB, 0x6A06, 0x98BC, 0x6A07, 0x98BD, 0x6A08, + 0x98BE, 0x6A09, 0x98BF, 0x6A0B, 0x98C0, 0x6A0C, 0x98C1, 0x6A0D, 0x98C2, 0x6A0E, 0x98C3, 0x6A0F, 0x98C4, 0x6A10, 0x98C5, 0x6A11, + 0x98C6, 0x6A12, 0x98C7, 0x6A13, 0x98C8, 0x6A14, 0x98C9, 0x6A15, 0x98CA, 0x6A16, 0x98CB, 0x6A19, 0x98CC, 0x6A1A, 0x98CD, 0x6A1B, + 0x98CE, 0x6A1C, 0x98CF, 0x6A1D, 0x98D0, 0x6A1E, 0x98D1, 0x6A20, 0x98D2, 0x6A22, 0x98D3, 0x6A23, 0x98D4, 0x6A24, 0x98D5, 0x6A25, + 0x98D6, 0x6A26, 0x98D7, 0x6A27, 0x98D8, 0x6A29, 0x98D9, 0x6A2B, 0x98DA, 0x6A2C, 0x98DB, 0x6A2D, 0x98DC, 0x6A2E, 0x98DD, 0x6A30, + 0x98DE, 0x6A32, 0x98DF, 0x6A33, 0x98E0, 0x6A34, 0x98E1, 0x6A36, 0x98E2, 0x6A37, 0x98E3, 0x6A38, 0x98E4, 0x6A39, 0x98E5, 0x6A3A, + 0x98E6, 0x6A3B, 0x98E7, 0x6A3C, 0x98E8, 0x6A3F, 0x98E9, 0x6A40, 0x98EA, 0x6A41, 0x98EB, 0x6A42, 0x98EC, 0x6A43, 0x98ED, 0x6A45, + 0x98EE, 0x6A46, 0x98EF, 0x6A48, 0x98F0, 0x6A49, 0x98F1, 0x6A4A, 0x98F2, 0x6A4B, 0x98F3, 0x6A4C, 0x98F4, 0x6A4D, 0x98F5, 0x6A4E, + 0x98F6, 0x6A4F, 0x98F7, 0x6A51, 0x98F8, 0x6A52, 0x98F9, 0x6A53, 0x98FA, 0x6A54, 0x98FB, 0x6A55, 0x98FC, 0x6A56, 0x98FD, 0x6A57, + 0x98FE, 0x6A5A, 0x9940, 0x6A5C, 0x9941, 0x6A5D, 0x9942, 0x6A5E, 0x9943, 0x6A5F, 0x9944, 0x6A60, 0x9945, 0x6A62, 0x9946, 0x6A63, + 0x9947, 0x6A64, 0x9948, 0x6A66, 0x9949, 0x6A67, 0x994A, 0x6A68, 0x994B, 0x6A69, 0x994C, 0x6A6A, 0x994D, 0x6A6B, 0x994E, 0x6A6C, + 0x994F, 0x6A6D, 0x9950, 0x6A6E, 0x9951, 0x6A6F, 0x9952, 0x6A70, 0x9953, 0x6A72, 0x9954, 0x6A73, 0x9955, 0x6A74, 0x9956, 0x6A75, + 0x9957, 0x6A76, 0x9958, 0x6A77, 0x9959, 0x6A78, 0x995A, 0x6A7A, 0x995B, 0x6A7B, 0x995C, 0x6A7D, 0x995D, 0x6A7E, 0x995E, 0x6A7F, + 0x995F, 0x6A81, 0x9960, 0x6A82, 0x9961, 0x6A83, 0x9962, 0x6A85, 0x9963, 0x6A86, 0x9964, 0x6A87, 0x9965, 0x6A88, 0x9966, 0x6A89, + 0x9967, 0x6A8A, 0x9968, 0x6A8B, 0x9969, 0x6A8C, 0x996A, 0x6A8D, 0x996B, 0x6A8F, 0x996C, 0x6A92, 0x996D, 0x6A93, 0x996E, 0x6A94, + 0x996F, 0x6A95, 0x9970, 0x6A96, 0x9971, 0x6A98, 0x9972, 0x6A99, 0x9973, 0x6A9A, 0x9974, 0x6A9B, 0x9975, 0x6A9C, 0x9976, 0x6A9D, + 0x9977, 0x6A9E, 0x9978, 0x6A9F, 0x9979, 0x6AA1, 0x997A, 0x6AA2, 0x997B, 0x6AA3, 0x997C, 0x6AA4, 0x997D, 0x6AA5, 0x997E, 0x6AA6, + 0x9980, 0x6AA7, 0x9981, 0x6AA8, 0x9982, 0x6AAA, 0x9983, 0x6AAD, 0x9984, 0x6AAE, 0x9985, 0x6AAF, 0x9986, 0x6AB0, 0x9987, 0x6AB1, + 0x9988, 0x6AB2, 0x9989, 0x6AB3, 0x998A, 0x6AB4, 0x998B, 0x6AB5, 0x998C, 0x6AB6, 0x998D, 0x6AB7, 0x998E, 0x6AB8, 0x998F, 0x6AB9, + 0x9990, 0x6ABA, 0x9991, 0x6ABB, 0x9992, 0x6ABC, 0x9993, 0x6ABD, 0x9994, 0x6ABE, 0x9995, 0x6ABF, 0x9996, 0x6AC0, 0x9997, 0x6AC1, + 0x9998, 0x6AC2, 0x9999, 0x6AC3, 0x999A, 0x6AC4, 0x999B, 0x6AC5, 0x999C, 0x6AC6, 0x999D, 0x6AC7, 0x999E, 0x6AC8, 0x999F, 0x6AC9, + 0x99A0, 0x6ACA, 0x99A1, 0x6ACB, 0x99A2, 0x6ACC, 0x99A3, 0x6ACD, 0x99A4, 0x6ACE, 0x99A5, 0x6ACF, 0x99A6, 0x6AD0, 0x99A7, 0x6AD1, + 0x99A8, 0x6AD2, 0x99A9, 0x6AD3, 0x99AA, 0x6AD4, 0x99AB, 0x6AD5, 0x99AC, 0x6AD6, 0x99AD, 0x6AD7, 0x99AE, 0x6AD8, 0x99AF, 0x6AD9, + 0x99B0, 0x6ADA, 0x99B1, 0x6ADB, 0x99B2, 0x6ADC, 0x99B3, 0x6ADD, 0x99B4, 0x6ADE, 0x99B5, 0x6ADF, 0x99B6, 0x6AE0, 0x99B7, 0x6AE1, + 0x99B8, 0x6AE2, 0x99B9, 0x6AE3, 0x99BA, 0x6AE4, 0x99BB, 0x6AE5, 0x99BC, 0x6AE6, 0x99BD, 0x6AE7, 0x99BE, 0x6AE8, 0x99BF, 0x6AE9, + 0x99C0, 0x6AEA, 0x99C1, 0x6AEB, 0x99C2, 0x6AEC, 0x99C3, 0x6AED, 0x99C4, 0x6AEE, 0x99C5, 0x6AEF, 0x99C6, 0x6AF0, 0x99C7, 0x6AF1, + 0x99C8, 0x6AF2, 0x99C9, 0x6AF3, 0x99CA, 0x6AF4, 0x99CB, 0x6AF5, 0x99CC, 0x6AF6, 0x99CD, 0x6AF7, 0x99CE, 0x6AF8, 0x99CF, 0x6AF9, + 0x99D0, 0x6AFA, 0x99D1, 0x6AFB, 0x99D2, 0x6AFC, 0x99D3, 0x6AFD, 0x99D4, 0x6AFE, 0x99D5, 0x6AFF, 0x99D6, 0x6B00, 0x99D7, 0x6B01, + 0x99D8, 0x6B02, 0x99D9, 0x6B03, 0x99DA, 0x6B04, 0x99DB, 0x6B05, 0x99DC, 0x6B06, 0x99DD, 0x6B07, 0x99DE, 0x6B08, 0x99DF, 0x6B09, + 0x99E0, 0x6B0A, 0x99E1, 0x6B0B, 0x99E2, 0x6B0C, 0x99E3, 0x6B0D, 0x99E4, 0x6B0E, 0x99E5, 0x6B0F, 0x99E6, 0x6B10, 0x99E7, 0x6B11, + 0x99E8, 0x6B12, 0x99E9, 0x6B13, 0x99EA, 0x6B14, 0x99EB, 0x6B15, 0x99EC, 0x6B16, 0x99ED, 0x6B17, 0x99EE, 0x6B18, 0x99EF, 0x6B19, + 0x99F0, 0x6B1A, 0x99F1, 0x6B1B, 0x99F2, 0x6B1C, 0x99F3, 0x6B1D, 0x99F4, 0x6B1E, 0x99F5, 0x6B1F, 0x99F6, 0x6B25, 0x99F7, 0x6B26, + 0x99F8, 0x6B28, 0x99F9, 0x6B29, 0x99FA, 0x6B2A, 0x99FB, 0x6B2B, 0x99FC, 0x6B2C, 0x99FD, 0x6B2D, 0x99FE, 0x6B2E, 0x9A40, 0x6B2F, + 0x9A41, 0x6B30, 0x9A42, 0x6B31, 0x9A43, 0x6B33, 0x9A44, 0x6B34, 0x9A45, 0x6B35, 0x9A46, 0x6B36, 0x9A47, 0x6B38, 0x9A48, 0x6B3B, + 0x9A49, 0x6B3C, 0x9A4A, 0x6B3D, 0x9A4B, 0x6B3F, 0x9A4C, 0x6B40, 0x9A4D, 0x6B41, 0x9A4E, 0x6B42, 0x9A4F, 0x6B44, 0x9A50, 0x6B45, + 0x9A51, 0x6B48, 0x9A52, 0x6B4A, 0x9A53, 0x6B4B, 0x9A54, 0x6B4D, 0x9A55, 0x6B4E, 0x9A56, 0x6B4F, 0x9A57, 0x6B50, 0x9A58, 0x6B51, + 0x9A59, 0x6B52, 0x9A5A, 0x6B53, 0x9A5B, 0x6B54, 0x9A5C, 0x6B55, 0x9A5D, 0x6B56, 0x9A5E, 0x6B57, 0x9A5F, 0x6B58, 0x9A60, 0x6B5A, + 0x9A61, 0x6B5B, 0x9A62, 0x6B5C, 0x9A63, 0x6B5D, 0x9A64, 0x6B5E, 0x9A65, 0x6B5F, 0x9A66, 0x6B60, 0x9A67, 0x6B61, 0x9A68, 0x6B68, + 0x9A69, 0x6B69, 0x9A6A, 0x6B6B, 0x9A6B, 0x6B6C, 0x9A6C, 0x6B6D, 0x9A6D, 0x6B6E, 0x9A6E, 0x6B6F, 0x9A6F, 0x6B70, 0x9A70, 0x6B71, + 0x9A71, 0x6B72, 0x9A72, 0x6B73, 0x9A73, 0x6B74, 0x9A74, 0x6B75, 0x9A75, 0x6B76, 0x9A76, 0x6B77, 0x9A77, 0x6B78, 0x9A78, 0x6B7A, + 0x9A79, 0x6B7D, 0x9A7A, 0x6B7E, 0x9A7B, 0x6B7F, 0x9A7C, 0x6B80, 0x9A7D, 0x6B85, 0x9A7E, 0x6B88, 0x9A80, 0x6B8C, 0x9A81, 0x6B8E, + 0x9A82, 0x6B8F, 0x9A83, 0x6B90, 0x9A84, 0x6B91, 0x9A85, 0x6B94, 0x9A86, 0x6B95, 0x9A87, 0x6B97, 0x9A88, 0x6B98, 0x9A89, 0x6B99, + 0x9A8A, 0x6B9C, 0x9A8B, 0x6B9D, 0x9A8C, 0x6B9E, 0x9A8D, 0x6B9F, 0x9A8E, 0x6BA0, 0x9A8F, 0x6BA2, 0x9A90, 0x6BA3, 0x9A91, 0x6BA4, + 0x9A92, 0x6BA5, 0x9A93, 0x6BA6, 0x9A94, 0x6BA7, 0x9A95, 0x6BA8, 0x9A96, 0x6BA9, 0x9A97, 0x6BAB, 0x9A98, 0x6BAC, 0x9A99, 0x6BAD, + 0x9A9A, 0x6BAE, 0x9A9B, 0x6BAF, 0x9A9C, 0x6BB0, 0x9A9D, 0x6BB1, 0x9A9E, 0x6BB2, 0x9A9F, 0x6BB6, 0x9AA0, 0x6BB8, 0x9AA1, 0x6BB9, + 0x9AA2, 0x6BBA, 0x9AA3, 0x6BBB, 0x9AA4, 0x6BBC, 0x9AA5, 0x6BBD, 0x9AA6, 0x6BBE, 0x9AA7, 0x6BC0, 0x9AA8, 0x6BC3, 0x9AA9, 0x6BC4, + 0x9AAA, 0x6BC6, 0x9AAB, 0x6BC7, 0x9AAC, 0x6BC8, 0x9AAD, 0x6BC9, 0x9AAE, 0x6BCA, 0x9AAF, 0x6BCC, 0x9AB0, 0x6BCE, 0x9AB1, 0x6BD0, + 0x9AB2, 0x6BD1, 0x9AB3, 0x6BD8, 0x9AB4, 0x6BDA, 0x9AB5, 0x6BDC, 0x9AB6, 0x6BDD, 0x9AB7, 0x6BDE, 0x9AB8, 0x6BDF, 0x9AB9, 0x6BE0, + 0x9ABA, 0x6BE2, 0x9ABB, 0x6BE3, 0x9ABC, 0x6BE4, 0x9ABD, 0x6BE5, 0x9ABE, 0x6BE6, 0x9ABF, 0x6BE7, 0x9AC0, 0x6BE8, 0x9AC1, 0x6BE9, + 0x9AC2, 0x6BEC, 0x9AC3, 0x6BED, 0x9AC4, 0x6BEE, 0x9AC5, 0x6BF0, 0x9AC6, 0x6BF1, 0x9AC7, 0x6BF2, 0x9AC8, 0x6BF4, 0x9AC9, 0x6BF6, + 0x9ACA, 0x6BF7, 0x9ACB, 0x6BF8, 0x9ACC, 0x6BFA, 0x9ACD, 0x6BFB, 0x9ACE, 0x6BFC, 0x9ACF, 0x6BFE, 0x9AD0, 0x6BFF, 0x9AD1, 0x6C00, + 0x9AD2, 0x6C01, 0x9AD3, 0x6C02, 0x9AD4, 0x6C03, 0x9AD5, 0x6C04, 0x9AD6, 0x6C08, 0x9AD7, 0x6C09, 0x9AD8, 0x6C0A, 0x9AD9, 0x6C0B, + 0x9ADA, 0x6C0C, 0x9ADB, 0x6C0E, 0x9ADC, 0x6C12, 0x9ADD, 0x6C17, 0x9ADE, 0x6C1C, 0x9ADF, 0x6C1D, 0x9AE0, 0x6C1E, 0x9AE1, 0x6C20, + 0x9AE2, 0x6C23, 0x9AE3, 0x6C25, 0x9AE4, 0x6C2B, 0x9AE5, 0x6C2C, 0x9AE6, 0x6C2D, 0x9AE7, 0x6C31, 0x9AE8, 0x6C33, 0x9AE9, 0x6C36, + 0x9AEA, 0x6C37, 0x9AEB, 0x6C39, 0x9AEC, 0x6C3A, 0x9AED, 0x6C3B, 0x9AEE, 0x6C3C, 0x9AEF, 0x6C3E, 0x9AF0, 0x6C3F, 0x9AF1, 0x6C43, + 0x9AF2, 0x6C44, 0x9AF3, 0x6C45, 0x9AF4, 0x6C48, 0x9AF5, 0x6C4B, 0x9AF6, 0x6C4C, 0x9AF7, 0x6C4D, 0x9AF8, 0x6C4E, 0x9AF9, 0x6C4F, + 0x9AFA, 0x6C51, 0x9AFB, 0x6C52, 0x9AFC, 0x6C53, 0x9AFD, 0x6C56, 0x9AFE, 0x6C58, 0x9B40, 0x6C59, 0x9B41, 0x6C5A, 0x9B42, 0x6C62, + 0x9B43, 0x6C63, 0x9B44, 0x6C65, 0x9B45, 0x6C66, 0x9B46, 0x6C67, 0x9B47, 0x6C6B, 0x9B48, 0x6C6C, 0x9B49, 0x6C6D, 0x9B4A, 0x6C6E, + 0x9B4B, 0x6C6F, 0x9B4C, 0x6C71, 0x9B4D, 0x6C73, 0x9B4E, 0x6C75, 0x9B4F, 0x6C77, 0x9B50, 0x6C78, 0x9B51, 0x6C7A, 0x9B52, 0x6C7B, + 0x9B53, 0x6C7C, 0x9B54, 0x6C7F, 0x9B55, 0x6C80, 0x9B56, 0x6C84, 0x9B57, 0x6C87, 0x9B58, 0x6C8A, 0x9B59, 0x6C8B, 0x9B5A, 0x6C8D, + 0x9B5B, 0x6C8E, 0x9B5C, 0x6C91, 0x9B5D, 0x6C92, 0x9B5E, 0x6C95, 0x9B5F, 0x6C96, 0x9B60, 0x6C97, 0x9B61, 0x6C98, 0x9B62, 0x6C9A, + 0x9B63, 0x6C9C, 0x9B64, 0x6C9D, 0x9B65, 0x6C9E, 0x9B66, 0x6CA0, 0x9B67, 0x6CA2, 0x9B68, 0x6CA8, 0x9B69, 0x6CAC, 0x9B6A, 0x6CAF, + 0x9B6B, 0x6CB0, 0x9B6C, 0x6CB4, 0x9B6D, 0x6CB5, 0x9B6E, 0x6CB6, 0x9B6F, 0x6CB7, 0x9B70, 0x6CBA, 0x9B71, 0x6CC0, 0x9B72, 0x6CC1, + 0x9B73, 0x6CC2, 0x9B74, 0x6CC3, 0x9B75, 0x6CC6, 0x9B76, 0x6CC7, 0x9B77, 0x6CC8, 0x9B78, 0x6CCB, 0x9B79, 0x6CCD, 0x9B7A, 0x6CCE, + 0x9B7B, 0x6CCF, 0x9B7C, 0x6CD1, 0x9B7D, 0x6CD2, 0x9B7E, 0x6CD8, 0x9B80, 0x6CD9, 0x9B81, 0x6CDA, 0x9B82, 0x6CDC, 0x9B83, 0x6CDD, + 0x9B84, 0x6CDF, 0x9B85, 0x6CE4, 0x9B86, 0x6CE6, 0x9B87, 0x6CE7, 0x9B88, 0x6CE9, 0x9B89, 0x6CEC, 0x9B8A, 0x6CED, 0x9B8B, 0x6CF2, + 0x9B8C, 0x6CF4, 0x9B8D, 0x6CF9, 0x9B8E, 0x6CFF, 0x9B8F, 0x6D00, 0x9B90, 0x6D02, 0x9B91, 0x6D03, 0x9B92, 0x6D05, 0x9B93, 0x6D06, + 0x9B94, 0x6D08, 0x9B95, 0x6D09, 0x9B96, 0x6D0A, 0x9B97, 0x6D0D, 0x9B98, 0x6D0F, 0x9B99, 0x6D10, 0x9B9A, 0x6D11, 0x9B9B, 0x6D13, + 0x9B9C, 0x6D14, 0x9B9D, 0x6D15, 0x9B9E, 0x6D16, 0x9B9F, 0x6D18, 0x9BA0, 0x6D1C, 0x9BA1, 0x6D1D, 0x9BA2, 0x6D1F, 0x9BA3, 0x6D20, + 0x9BA4, 0x6D21, 0x9BA5, 0x6D22, 0x9BA6, 0x6D23, 0x9BA7, 0x6D24, 0x9BA8, 0x6D26, 0x9BA9, 0x6D28, 0x9BAA, 0x6D29, 0x9BAB, 0x6D2C, + 0x9BAC, 0x6D2D, 0x9BAD, 0x6D2F, 0x9BAE, 0x6D30, 0x9BAF, 0x6D34, 0x9BB0, 0x6D36, 0x9BB1, 0x6D37, 0x9BB2, 0x6D38, 0x9BB3, 0x6D3A, + 0x9BB4, 0x6D3F, 0x9BB5, 0x6D40, 0x9BB6, 0x6D42, 0x9BB7, 0x6D44, 0x9BB8, 0x6D49, 0x9BB9, 0x6D4C, 0x9BBA, 0x6D50, 0x9BBB, 0x6D55, + 0x9BBC, 0x6D56, 0x9BBD, 0x6D57, 0x9BBE, 0x6D58, 0x9BBF, 0x6D5B, 0x9BC0, 0x6D5D, 0x9BC1, 0x6D5F, 0x9BC2, 0x6D61, 0x9BC3, 0x6D62, + 0x9BC4, 0x6D64, 0x9BC5, 0x6D65, 0x9BC6, 0x6D67, 0x9BC7, 0x6D68, 0x9BC8, 0x6D6B, 0x9BC9, 0x6D6C, 0x9BCA, 0x6D6D, 0x9BCB, 0x6D70, + 0x9BCC, 0x6D71, 0x9BCD, 0x6D72, 0x9BCE, 0x6D73, 0x9BCF, 0x6D75, 0x9BD0, 0x6D76, 0x9BD1, 0x6D79, 0x9BD2, 0x6D7A, 0x9BD3, 0x6D7B, + 0x9BD4, 0x6D7D, 0x9BD5, 0x6D7E, 0x9BD6, 0x6D7F, 0x9BD7, 0x6D80, 0x9BD8, 0x6D81, 0x9BD9, 0x6D83, 0x9BDA, 0x6D84, 0x9BDB, 0x6D86, + 0x9BDC, 0x6D87, 0x9BDD, 0x6D8A, 0x9BDE, 0x6D8B, 0x9BDF, 0x6D8D, 0x9BE0, 0x6D8F, 0x9BE1, 0x6D90, 0x9BE2, 0x6D92, 0x9BE3, 0x6D96, + 0x9BE4, 0x6D97, 0x9BE5, 0x6D98, 0x9BE6, 0x6D99, 0x9BE7, 0x6D9A, 0x9BE8, 0x6D9C, 0x9BE9, 0x6DA2, 0x9BEA, 0x6DA5, 0x9BEB, 0x6DAC, + 0x9BEC, 0x6DAD, 0x9BED, 0x6DB0, 0x9BEE, 0x6DB1, 0x9BEF, 0x6DB3, 0x9BF0, 0x6DB4, 0x9BF1, 0x6DB6, 0x9BF2, 0x6DB7, 0x9BF3, 0x6DB9, + 0x9BF4, 0x6DBA, 0x9BF5, 0x6DBB, 0x9BF6, 0x6DBC, 0x9BF7, 0x6DBD, 0x9BF8, 0x6DBE, 0x9BF9, 0x6DC1, 0x9BFA, 0x6DC2, 0x9BFB, 0x6DC3, + 0x9BFC, 0x6DC8, 0x9BFD, 0x6DC9, 0x9BFE, 0x6DCA, 0x9C40, 0x6DCD, 0x9C41, 0x6DCE, 0x9C42, 0x6DCF, 0x9C43, 0x6DD0, 0x9C44, 0x6DD2, + 0x9C45, 0x6DD3, 0x9C46, 0x6DD4, 0x9C47, 0x6DD5, 0x9C48, 0x6DD7, 0x9C49, 0x6DDA, 0x9C4A, 0x6DDB, 0x9C4B, 0x6DDC, 0x9C4C, 0x6DDF, + 0x9C4D, 0x6DE2, 0x9C4E, 0x6DE3, 0x9C4F, 0x6DE5, 0x9C50, 0x6DE7, 0x9C51, 0x6DE8, 0x9C52, 0x6DE9, 0x9C53, 0x6DEA, 0x9C54, 0x6DED, + 0x9C55, 0x6DEF, 0x9C56, 0x6DF0, 0x9C57, 0x6DF2, 0x9C58, 0x6DF4, 0x9C59, 0x6DF5, 0x9C5A, 0x6DF6, 0x9C5B, 0x6DF8, 0x9C5C, 0x6DFA, + 0x9C5D, 0x6DFD, 0x9C5E, 0x6DFE, 0x9C5F, 0x6DFF, 0x9C60, 0x6E00, 0x9C61, 0x6E01, 0x9C62, 0x6E02, 0x9C63, 0x6E03, 0x9C64, 0x6E04, + 0x9C65, 0x6E06, 0x9C66, 0x6E07, 0x9C67, 0x6E08, 0x9C68, 0x6E09, 0x9C69, 0x6E0B, 0x9C6A, 0x6E0F, 0x9C6B, 0x6E12, 0x9C6C, 0x6E13, + 0x9C6D, 0x6E15, 0x9C6E, 0x6E18, 0x9C6F, 0x6E19, 0x9C70, 0x6E1B, 0x9C71, 0x6E1C, 0x9C72, 0x6E1E, 0x9C73, 0x6E1F, 0x9C74, 0x6E22, + 0x9C75, 0x6E26, 0x9C76, 0x6E27, 0x9C77, 0x6E28, 0x9C78, 0x6E2A, 0x9C79, 0x6E2C, 0x9C7A, 0x6E2E, 0x9C7B, 0x6E30, 0x9C7C, 0x6E31, + 0x9C7D, 0x6E33, 0x9C7E, 0x6E35, 0x9C80, 0x6E36, 0x9C81, 0x6E37, 0x9C82, 0x6E39, 0x9C83, 0x6E3B, 0x9C84, 0x6E3C, 0x9C85, 0x6E3D, + 0x9C86, 0x6E3E, 0x9C87, 0x6E3F, 0x9C88, 0x6E40, 0x9C89, 0x6E41, 0x9C8A, 0x6E42, 0x9C8B, 0x6E45, 0x9C8C, 0x6E46, 0x9C8D, 0x6E47, + 0x9C8E, 0x6E48, 0x9C8F, 0x6E49, 0x9C90, 0x6E4A, 0x9C91, 0x6E4B, 0x9C92, 0x6E4C, 0x9C93, 0x6E4F, 0x9C94, 0x6E50, 0x9C95, 0x6E51, + 0x9C96, 0x6E52, 0x9C97, 0x6E55, 0x9C98, 0x6E57, 0x9C99, 0x6E59, 0x9C9A, 0x6E5A, 0x9C9B, 0x6E5C, 0x9C9C, 0x6E5D, 0x9C9D, 0x6E5E, + 0x9C9E, 0x6E60, 0x9C9F, 0x6E61, 0x9CA0, 0x6E62, 0x9CA1, 0x6E63, 0x9CA2, 0x6E64, 0x9CA3, 0x6E65, 0x9CA4, 0x6E66, 0x9CA5, 0x6E67, + 0x9CA6, 0x6E68, 0x9CA7, 0x6E69, 0x9CA8, 0x6E6A, 0x9CA9, 0x6E6C, 0x9CAA, 0x6E6D, 0x9CAB, 0x6E6F, 0x9CAC, 0x6E70, 0x9CAD, 0x6E71, + 0x9CAE, 0x6E72, 0x9CAF, 0x6E73, 0x9CB0, 0x6E74, 0x9CB1, 0x6E75, 0x9CB2, 0x6E76, 0x9CB3, 0x6E77, 0x9CB4, 0x6E78, 0x9CB5, 0x6E79, + 0x9CB6, 0x6E7A, 0x9CB7, 0x6E7B, 0x9CB8, 0x6E7C, 0x9CB9, 0x6E7D, 0x9CBA, 0x6E80, 0x9CBB, 0x6E81, 0x9CBC, 0x6E82, 0x9CBD, 0x6E84, + 0x9CBE, 0x6E87, 0x9CBF, 0x6E88, 0x9CC0, 0x6E8A, 0x9CC1, 0x6E8B, 0x9CC2, 0x6E8C, 0x9CC3, 0x6E8D, 0x9CC4, 0x6E8E, 0x9CC5, 0x6E91, + 0x9CC6, 0x6E92, 0x9CC7, 0x6E93, 0x9CC8, 0x6E94, 0x9CC9, 0x6E95, 0x9CCA, 0x6E96, 0x9CCB, 0x6E97, 0x9CCC, 0x6E99, 0x9CCD, 0x6E9A, + 0x9CCE, 0x6E9B, 0x9CCF, 0x6E9D, 0x9CD0, 0x6E9E, 0x9CD1, 0x6EA0, 0x9CD2, 0x6EA1, 0x9CD3, 0x6EA3, 0x9CD4, 0x6EA4, 0x9CD5, 0x6EA6, + 0x9CD6, 0x6EA8, 0x9CD7, 0x6EA9, 0x9CD8, 0x6EAB, 0x9CD9, 0x6EAC, 0x9CDA, 0x6EAD, 0x9CDB, 0x6EAE, 0x9CDC, 0x6EB0, 0x9CDD, 0x6EB3, + 0x9CDE, 0x6EB5, 0x9CDF, 0x6EB8, 0x9CE0, 0x6EB9, 0x9CE1, 0x6EBC, 0x9CE2, 0x6EBE, 0x9CE3, 0x6EBF, 0x9CE4, 0x6EC0, 0x9CE5, 0x6EC3, + 0x9CE6, 0x6EC4, 0x9CE7, 0x6EC5, 0x9CE8, 0x6EC6, 0x9CE9, 0x6EC8, 0x9CEA, 0x6EC9, 0x9CEB, 0x6ECA, 0x9CEC, 0x6ECC, 0x9CED, 0x6ECD, + 0x9CEE, 0x6ECE, 0x9CEF, 0x6ED0, 0x9CF0, 0x6ED2, 0x9CF1, 0x6ED6, 0x9CF2, 0x6ED8, 0x9CF3, 0x6ED9, 0x9CF4, 0x6EDB, 0x9CF5, 0x6EDC, + 0x9CF6, 0x6EDD, 0x9CF7, 0x6EE3, 0x9CF8, 0x6EE7, 0x9CF9, 0x6EEA, 0x9CFA, 0x6EEB, 0x9CFB, 0x6EEC, 0x9CFC, 0x6EED, 0x9CFD, 0x6EEE, + 0x9CFE, 0x6EEF, 0x9D40, 0x6EF0, 0x9D41, 0x6EF1, 0x9D42, 0x6EF2, 0x9D43, 0x6EF3, 0x9D44, 0x6EF5, 0x9D45, 0x6EF6, 0x9D46, 0x6EF7, + 0x9D47, 0x6EF8, 0x9D48, 0x6EFA, 0x9D49, 0x6EFB, 0x9D4A, 0x6EFC, 0x9D4B, 0x6EFD, 0x9D4C, 0x6EFE, 0x9D4D, 0x6EFF, 0x9D4E, 0x6F00, + 0x9D4F, 0x6F01, 0x9D50, 0x6F03, 0x9D51, 0x6F04, 0x9D52, 0x6F05, 0x9D53, 0x6F07, 0x9D54, 0x6F08, 0x9D55, 0x6F0A, 0x9D56, 0x6F0B, + 0x9D57, 0x6F0C, 0x9D58, 0x6F0D, 0x9D59, 0x6F0E, 0x9D5A, 0x6F10, 0x9D5B, 0x6F11, 0x9D5C, 0x6F12, 0x9D5D, 0x6F16, 0x9D5E, 0x6F17, + 0x9D5F, 0x6F18, 0x9D60, 0x6F19, 0x9D61, 0x6F1A, 0x9D62, 0x6F1B, 0x9D63, 0x6F1C, 0x9D64, 0x6F1D, 0x9D65, 0x6F1E, 0x9D66, 0x6F1F, + 0x9D67, 0x6F21, 0x9D68, 0x6F22, 0x9D69, 0x6F23, 0x9D6A, 0x6F25, 0x9D6B, 0x6F26, 0x9D6C, 0x6F27, 0x9D6D, 0x6F28, 0x9D6E, 0x6F2C, + 0x9D6F, 0x6F2E, 0x9D70, 0x6F30, 0x9D71, 0x6F32, 0x9D72, 0x6F34, 0x9D73, 0x6F35, 0x9D74, 0x6F37, 0x9D75, 0x6F38, 0x9D76, 0x6F39, + 0x9D77, 0x6F3A, 0x9D78, 0x6F3B, 0x9D79, 0x6F3C, 0x9D7A, 0x6F3D, 0x9D7B, 0x6F3F, 0x9D7C, 0x6F40, 0x9D7D, 0x6F41, 0x9D7E, 0x6F42, + 0x9D80, 0x6F43, 0x9D81, 0x6F44, 0x9D82, 0x6F45, 0x9D83, 0x6F48, 0x9D84, 0x6F49, 0x9D85, 0x6F4A, 0x9D86, 0x6F4C, 0x9D87, 0x6F4E, + 0x9D88, 0x6F4F, 0x9D89, 0x6F50, 0x9D8A, 0x6F51, 0x9D8B, 0x6F52, 0x9D8C, 0x6F53, 0x9D8D, 0x6F54, 0x9D8E, 0x6F55, 0x9D8F, 0x6F56, + 0x9D90, 0x6F57, 0x9D91, 0x6F59, 0x9D92, 0x6F5A, 0x9D93, 0x6F5B, 0x9D94, 0x6F5D, 0x9D95, 0x6F5F, 0x9D96, 0x6F60, 0x9D97, 0x6F61, + 0x9D98, 0x6F63, 0x9D99, 0x6F64, 0x9D9A, 0x6F65, 0x9D9B, 0x6F67, 0x9D9C, 0x6F68, 0x9D9D, 0x6F69, 0x9D9E, 0x6F6A, 0x9D9F, 0x6F6B, + 0x9DA0, 0x6F6C, 0x9DA1, 0x6F6F, 0x9DA2, 0x6F70, 0x9DA3, 0x6F71, 0x9DA4, 0x6F73, 0x9DA5, 0x6F75, 0x9DA6, 0x6F76, 0x9DA7, 0x6F77, + 0x9DA8, 0x6F79, 0x9DA9, 0x6F7B, 0x9DAA, 0x6F7D, 0x9DAB, 0x6F7E, 0x9DAC, 0x6F7F, 0x9DAD, 0x6F80, 0x9DAE, 0x6F81, 0x9DAF, 0x6F82, + 0x9DB0, 0x6F83, 0x9DB1, 0x6F85, 0x9DB2, 0x6F86, 0x9DB3, 0x6F87, 0x9DB4, 0x6F8A, 0x9DB5, 0x6F8B, 0x9DB6, 0x6F8F, 0x9DB7, 0x6F90, + 0x9DB8, 0x6F91, 0x9DB9, 0x6F92, 0x9DBA, 0x6F93, 0x9DBB, 0x6F94, 0x9DBC, 0x6F95, 0x9DBD, 0x6F96, 0x9DBE, 0x6F97, 0x9DBF, 0x6F98, + 0x9DC0, 0x6F99, 0x9DC1, 0x6F9A, 0x9DC2, 0x6F9B, 0x9DC3, 0x6F9D, 0x9DC4, 0x6F9E, 0x9DC5, 0x6F9F, 0x9DC6, 0x6FA0, 0x9DC7, 0x6FA2, + 0x9DC8, 0x6FA3, 0x9DC9, 0x6FA4, 0x9DCA, 0x6FA5, 0x9DCB, 0x6FA6, 0x9DCC, 0x6FA8, 0x9DCD, 0x6FA9, 0x9DCE, 0x6FAA, 0x9DCF, 0x6FAB, + 0x9DD0, 0x6FAC, 0x9DD1, 0x6FAD, 0x9DD2, 0x6FAE, 0x9DD3, 0x6FAF, 0x9DD4, 0x6FB0, 0x9DD5, 0x6FB1, 0x9DD6, 0x6FB2, 0x9DD7, 0x6FB4, + 0x9DD8, 0x6FB5, 0x9DD9, 0x6FB7, 0x9DDA, 0x6FB8, 0x9DDB, 0x6FBA, 0x9DDC, 0x6FBB, 0x9DDD, 0x6FBC, 0x9DDE, 0x6FBD, 0x9DDF, 0x6FBE, + 0x9DE0, 0x6FBF, 0x9DE1, 0x6FC1, 0x9DE2, 0x6FC3, 0x9DE3, 0x6FC4, 0x9DE4, 0x6FC5, 0x9DE5, 0x6FC6, 0x9DE6, 0x6FC7, 0x9DE7, 0x6FC8, + 0x9DE8, 0x6FCA, 0x9DE9, 0x6FCB, 0x9DEA, 0x6FCC, 0x9DEB, 0x6FCD, 0x9DEC, 0x6FCE, 0x9DED, 0x6FCF, 0x9DEE, 0x6FD0, 0x9DEF, 0x6FD3, + 0x9DF0, 0x6FD4, 0x9DF1, 0x6FD5, 0x9DF2, 0x6FD6, 0x9DF3, 0x6FD7, 0x9DF4, 0x6FD8, 0x9DF5, 0x6FD9, 0x9DF6, 0x6FDA, 0x9DF7, 0x6FDB, + 0x9DF8, 0x6FDC, 0x9DF9, 0x6FDD, 0x9DFA, 0x6FDF, 0x9DFB, 0x6FE2, 0x9DFC, 0x6FE3, 0x9DFD, 0x6FE4, 0x9DFE, 0x6FE5, 0x9E40, 0x6FE6, + 0x9E41, 0x6FE7, 0x9E42, 0x6FE8, 0x9E43, 0x6FE9, 0x9E44, 0x6FEA, 0x9E45, 0x6FEB, 0x9E46, 0x6FEC, 0x9E47, 0x6FED, 0x9E48, 0x6FF0, + 0x9E49, 0x6FF1, 0x9E4A, 0x6FF2, 0x9E4B, 0x6FF3, 0x9E4C, 0x6FF4, 0x9E4D, 0x6FF5, 0x9E4E, 0x6FF6, 0x9E4F, 0x6FF7, 0x9E50, 0x6FF8, + 0x9E51, 0x6FF9, 0x9E52, 0x6FFA, 0x9E53, 0x6FFB, 0x9E54, 0x6FFC, 0x9E55, 0x6FFD, 0x9E56, 0x6FFE, 0x9E57, 0x6FFF, 0x9E58, 0x7000, + 0x9E59, 0x7001, 0x9E5A, 0x7002, 0x9E5B, 0x7003, 0x9E5C, 0x7004, 0x9E5D, 0x7005, 0x9E5E, 0x7006, 0x9E5F, 0x7007, 0x9E60, 0x7008, + 0x9E61, 0x7009, 0x9E62, 0x700A, 0x9E63, 0x700B, 0x9E64, 0x700C, 0x9E65, 0x700D, 0x9E66, 0x700E, 0x9E67, 0x700F, 0x9E68, 0x7010, + 0x9E69, 0x7012, 0x9E6A, 0x7013, 0x9E6B, 0x7014, 0x9E6C, 0x7015, 0x9E6D, 0x7016, 0x9E6E, 0x7017, 0x9E6F, 0x7018, 0x9E70, 0x7019, + 0x9E71, 0x701C, 0x9E72, 0x701D, 0x9E73, 0x701E, 0x9E74, 0x701F, 0x9E75, 0x7020, 0x9E76, 0x7021, 0x9E77, 0x7022, 0x9E78, 0x7024, + 0x9E79, 0x7025, 0x9E7A, 0x7026, 0x9E7B, 0x7027, 0x9E7C, 0x7028, 0x9E7D, 0x7029, 0x9E7E, 0x702A, 0x9E80, 0x702B, 0x9E81, 0x702C, + 0x9E82, 0x702D, 0x9E83, 0x702E, 0x9E84, 0x702F, 0x9E85, 0x7030, 0x9E86, 0x7031, 0x9E87, 0x7032, 0x9E88, 0x7033, 0x9E89, 0x7034, + 0x9E8A, 0x7036, 0x9E8B, 0x7037, 0x9E8C, 0x7038, 0x9E8D, 0x703A, 0x9E8E, 0x703B, 0x9E8F, 0x703C, 0x9E90, 0x703D, 0x9E91, 0x703E, + 0x9E92, 0x703F, 0x9E93, 0x7040, 0x9E94, 0x7041, 0x9E95, 0x7042, 0x9E96, 0x7043, 0x9E97, 0x7044, 0x9E98, 0x7045, 0x9E99, 0x7046, + 0x9E9A, 0x7047, 0x9E9B, 0x7048, 0x9E9C, 0x7049, 0x9E9D, 0x704A, 0x9E9E, 0x704B, 0x9E9F, 0x704D, 0x9EA0, 0x704E, 0x9EA1, 0x7050, + 0x9EA2, 0x7051, 0x9EA3, 0x7052, 0x9EA4, 0x7053, 0x9EA5, 0x7054, 0x9EA6, 0x7055, 0x9EA7, 0x7056, 0x9EA8, 0x7057, 0x9EA9, 0x7058, + 0x9EAA, 0x7059, 0x9EAB, 0x705A, 0x9EAC, 0x705B, 0x9EAD, 0x705C, 0x9EAE, 0x705D, 0x9EAF, 0x705F, 0x9EB0, 0x7060, 0x9EB1, 0x7061, + 0x9EB2, 0x7062, 0x9EB3, 0x7063, 0x9EB4, 0x7064, 0x9EB5, 0x7065, 0x9EB6, 0x7066, 0x9EB7, 0x7067, 0x9EB8, 0x7068, 0x9EB9, 0x7069, + 0x9EBA, 0x706A, 0x9EBB, 0x706E, 0x9EBC, 0x7071, 0x9EBD, 0x7072, 0x9EBE, 0x7073, 0x9EBF, 0x7074, 0x9EC0, 0x7077, 0x9EC1, 0x7079, + 0x9EC2, 0x707A, 0x9EC3, 0x707B, 0x9EC4, 0x707D, 0x9EC5, 0x7081, 0x9EC6, 0x7082, 0x9EC7, 0x7083, 0x9EC8, 0x7084, 0x9EC9, 0x7086, + 0x9ECA, 0x7087, 0x9ECB, 0x7088, 0x9ECC, 0x708B, 0x9ECD, 0x708C, 0x9ECE, 0x708D, 0x9ECF, 0x708F, 0x9ED0, 0x7090, 0x9ED1, 0x7091, + 0x9ED2, 0x7093, 0x9ED3, 0x7097, 0x9ED4, 0x7098, 0x9ED5, 0x709A, 0x9ED6, 0x709B, 0x9ED7, 0x709E, 0x9ED8, 0x709F, 0x9ED9, 0x70A0, + 0x9EDA, 0x70A1, 0x9EDB, 0x70A2, 0x9EDC, 0x70A3, 0x9EDD, 0x70A4, 0x9EDE, 0x70A5, 0x9EDF, 0x70A6, 0x9EE0, 0x70A7, 0x9EE1, 0x70A8, + 0x9EE2, 0x70A9, 0x9EE3, 0x70AA, 0x9EE4, 0x70B0, 0x9EE5, 0x70B2, 0x9EE6, 0x70B4, 0x9EE7, 0x70B5, 0x9EE8, 0x70B6, 0x9EE9, 0x70BA, + 0x9EEA, 0x70BE, 0x9EEB, 0x70BF, 0x9EEC, 0x70C4, 0x9EED, 0x70C5, 0x9EEE, 0x70C6, 0x9EEF, 0x70C7, 0x9EF0, 0x70C9, 0x9EF1, 0x70CB, + 0x9EF2, 0x70CC, 0x9EF3, 0x70CD, 0x9EF4, 0x70CE, 0x9EF5, 0x70CF, 0x9EF6, 0x70D0, 0x9EF7, 0x70D1, 0x9EF8, 0x70D2, 0x9EF9, 0x70D3, + 0x9EFA, 0x70D4, 0x9EFB, 0x70D5, 0x9EFC, 0x70D6, 0x9EFD, 0x70D7, 0x9EFE, 0x70DA, 0x9F40, 0x70DC, 0x9F41, 0x70DD, 0x9F42, 0x70DE, + 0x9F43, 0x70E0, 0x9F44, 0x70E1, 0x9F45, 0x70E2, 0x9F46, 0x70E3, 0x9F47, 0x70E5, 0x9F48, 0x70EA, 0x9F49, 0x70EE, 0x9F4A, 0x70F0, + 0x9F4B, 0x70F1, 0x9F4C, 0x70F2, 0x9F4D, 0x70F3, 0x9F4E, 0x70F4, 0x9F4F, 0x70F5, 0x9F50, 0x70F6, 0x9F51, 0x70F8, 0x9F52, 0x70FA, + 0x9F53, 0x70FB, 0x9F54, 0x70FC, 0x9F55, 0x70FE, 0x9F56, 0x70FF, 0x9F57, 0x7100, 0x9F58, 0x7101, 0x9F59, 0x7102, 0x9F5A, 0x7103, + 0x9F5B, 0x7104, 0x9F5C, 0x7105, 0x9F5D, 0x7106, 0x9F5E, 0x7107, 0x9F5F, 0x7108, 0x9F60, 0x710B, 0x9F61, 0x710C, 0x9F62, 0x710D, + 0x9F63, 0x710E, 0x9F64, 0x710F, 0x9F65, 0x7111, 0x9F66, 0x7112, 0x9F67, 0x7114, 0x9F68, 0x7117, 0x9F69, 0x711B, 0x9F6A, 0x711C, + 0x9F6B, 0x711D, 0x9F6C, 0x711E, 0x9F6D, 0x711F, 0x9F6E, 0x7120, 0x9F6F, 0x7121, 0x9F70, 0x7122, 0x9F71, 0x7123, 0x9F72, 0x7124, + 0x9F73, 0x7125, 0x9F74, 0x7127, 0x9F75, 0x7128, 0x9F76, 0x7129, 0x9F77, 0x712A, 0x9F78, 0x712B, 0x9F79, 0x712C, 0x9F7A, 0x712D, + 0x9F7B, 0x712E, 0x9F7C, 0x7132, 0x9F7D, 0x7133, 0x9F7E, 0x7134, 0x9F80, 0x7135, 0x9F81, 0x7137, 0x9F82, 0x7138, 0x9F83, 0x7139, + 0x9F84, 0x713A, 0x9F85, 0x713B, 0x9F86, 0x713C, 0x9F87, 0x713D, 0x9F88, 0x713E, 0x9F89, 0x713F, 0x9F8A, 0x7140, 0x9F8B, 0x7141, + 0x9F8C, 0x7142, 0x9F8D, 0x7143, 0x9F8E, 0x7144, 0x9F8F, 0x7146, 0x9F90, 0x7147, 0x9F91, 0x7148, 0x9F92, 0x7149, 0x9F93, 0x714B, + 0x9F94, 0x714D, 0x9F95, 0x714F, 0x9F96, 0x7150, 0x9F97, 0x7151, 0x9F98, 0x7152, 0x9F99, 0x7153, 0x9F9A, 0x7154, 0x9F9B, 0x7155, + 0x9F9C, 0x7156, 0x9F9D, 0x7157, 0x9F9E, 0x7158, 0x9F9F, 0x7159, 0x9FA0, 0x715A, 0x9FA1, 0x715B, 0x9FA2, 0x715D, 0x9FA3, 0x715F, + 0x9FA4, 0x7160, 0x9FA5, 0x7161, 0x9FA6, 0x7162, 0x9FA7, 0x7163, 0x9FA8, 0x7165, 0x9FA9, 0x7169, 0x9FAA, 0x716A, 0x9FAB, 0x716B, + 0x9FAC, 0x716C, 0x9FAD, 0x716D, 0x9FAE, 0x716F, 0x9FAF, 0x7170, 0x9FB0, 0x7171, 0x9FB1, 0x7174, 0x9FB2, 0x7175, 0x9FB3, 0x7176, + 0x9FB4, 0x7177, 0x9FB5, 0x7179, 0x9FB6, 0x717B, 0x9FB7, 0x717C, 0x9FB8, 0x717E, 0x9FB9, 0x717F, 0x9FBA, 0x7180, 0x9FBB, 0x7181, + 0x9FBC, 0x7182, 0x9FBD, 0x7183, 0x9FBE, 0x7185, 0x9FBF, 0x7186, 0x9FC0, 0x7187, 0x9FC1, 0x7188, 0x9FC2, 0x7189, 0x9FC3, 0x718B, + 0x9FC4, 0x718C, 0x9FC5, 0x718D, 0x9FC6, 0x718E, 0x9FC7, 0x7190, 0x9FC8, 0x7191, 0x9FC9, 0x7192, 0x9FCA, 0x7193, 0x9FCB, 0x7195, + 0x9FCC, 0x7196, 0x9FCD, 0x7197, 0x9FCE, 0x719A, 0x9FCF, 0x719B, 0x9FD0, 0x719C, 0x9FD1, 0x719D, 0x9FD2, 0x719E, 0x9FD3, 0x71A1, + 0x9FD4, 0x71A2, 0x9FD5, 0x71A3, 0x9FD6, 0x71A4, 0x9FD7, 0x71A5, 0x9FD8, 0x71A6, 0x9FD9, 0x71A7, 0x9FDA, 0x71A9, 0x9FDB, 0x71AA, + 0x9FDC, 0x71AB, 0x9FDD, 0x71AD, 0x9FDE, 0x71AE, 0x9FDF, 0x71AF, 0x9FE0, 0x71B0, 0x9FE1, 0x71B1, 0x9FE2, 0x71B2, 0x9FE3, 0x71B4, + 0x9FE4, 0x71B6, 0x9FE5, 0x71B7, 0x9FE6, 0x71B8, 0x9FE7, 0x71BA, 0x9FE8, 0x71BB, 0x9FE9, 0x71BC, 0x9FEA, 0x71BD, 0x9FEB, 0x71BE, + 0x9FEC, 0x71BF, 0x9FED, 0x71C0, 0x9FEE, 0x71C1, 0x9FEF, 0x71C2, 0x9FF0, 0x71C4, 0x9FF1, 0x71C5, 0x9FF2, 0x71C6, 0x9FF3, 0x71C7, + 0x9FF4, 0x71C8, 0x9FF5, 0x71C9, 0x9FF6, 0x71CA, 0x9FF7, 0x71CB, 0x9FF8, 0x71CC, 0x9FF9, 0x71CD, 0x9FFA, 0x71CF, 0x9FFB, 0x71D0, + 0x9FFC, 0x71D1, 0x9FFD, 0x71D2, 0x9FFE, 0x71D3, 0xA040, 0x71D6, 0xA041, 0x71D7, 0xA042, 0x71D8, 0xA043, 0x71D9, 0xA044, 0x71DA, + 0xA045, 0x71DB, 0xA046, 0x71DC, 0xA047, 0x71DD, 0xA048, 0x71DE, 0xA049, 0x71DF, 0xA04A, 0x71E1, 0xA04B, 0x71E2, 0xA04C, 0x71E3, + 0xA04D, 0x71E4, 0xA04E, 0x71E6, 0xA04F, 0x71E8, 0xA050, 0x71E9, 0xA051, 0x71EA, 0xA052, 0x71EB, 0xA053, 0x71EC, 0xA054, 0x71ED, + 0xA055, 0x71EF, 0xA056, 0x71F0, 0xA057, 0x71F1, 0xA058, 0x71F2, 0xA059, 0x71F3, 0xA05A, 0x71F4, 0xA05B, 0x71F5, 0xA05C, 0x71F6, + 0xA05D, 0x71F7, 0xA05E, 0x71F8, 0xA05F, 0x71FA, 0xA060, 0x71FB, 0xA061, 0x71FC, 0xA062, 0x71FD, 0xA063, 0x71FE, 0xA064, 0x71FF, + 0xA065, 0x7200, 0xA066, 0x7201, 0xA067, 0x7202, 0xA068, 0x7203, 0xA069, 0x7204, 0xA06A, 0x7205, 0xA06B, 0x7207, 0xA06C, 0x7208, + 0xA06D, 0x7209, 0xA06E, 0x720A, 0xA06F, 0x720B, 0xA070, 0x720C, 0xA071, 0x720D, 0xA072, 0x720E, 0xA073, 0x720F, 0xA074, 0x7210, + 0xA075, 0x7211, 0xA076, 0x7212, 0xA077, 0x7213, 0xA078, 0x7214, 0xA079, 0x7215, 0xA07A, 0x7216, 0xA07B, 0x7217, 0xA07C, 0x7218, + 0xA07D, 0x7219, 0xA07E, 0x721A, 0xA080, 0x721B, 0xA081, 0x721C, 0xA082, 0x721E, 0xA083, 0x721F, 0xA084, 0x7220, 0xA085, 0x7221, + 0xA086, 0x7222, 0xA087, 0x7223, 0xA088, 0x7224, 0xA089, 0x7225, 0xA08A, 0x7226, 0xA08B, 0x7227, 0xA08C, 0x7229, 0xA08D, 0x722B, + 0xA08E, 0x722D, 0xA08F, 0x722E, 0xA090, 0x722F, 0xA091, 0x7232, 0xA092, 0x7233, 0xA093, 0x7234, 0xA094, 0x723A, 0xA095, 0x723C, + 0xA096, 0x723E, 0xA097, 0x7240, 0xA098, 0x7241, 0xA099, 0x7242, 0xA09A, 0x7243, 0xA09B, 0x7244, 0xA09C, 0x7245, 0xA09D, 0x7246, + 0xA09E, 0x7249, 0xA09F, 0x724A, 0xA0A0, 0x724B, 0xA0A1, 0x724E, 0xA0A2, 0x724F, 0xA0A3, 0x7250, 0xA0A4, 0x7251, 0xA0A5, 0x7253, + 0xA0A6, 0x7254, 0xA0A7, 0x7255, 0xA0A8, 0x7257, 0xA0A9, 0x7258, 0xA0AA, 0x725A, 0xA0AB, 0x725C, 0xA0AC, 0x725E, 0xA0AD, 0x7260, + 0xA0AE, 0x7263, 0xA0AF, 0x7264, 0xA0B0, 0x7265, 0xA0B1, 0x7268, 0xA0B2, 0x726A, 0xA0B3, 0x726B, 0xA0B4, 0x726C, 0xA0B5, 0x726D, + 0xA0B6, 0x7270, 0xA0B7, 0x7271, 0xA0B8, 0x7273, 0xA0B9, 0x7274, 0xA0BA, 0x7276, 0xA0BB, 0x7277, 0xA0BC, 0x7278, 0xA0BD, 0x727B, + 0xA0BE, 0x727C, 0xA0BF, 0x727D, 0xA0C0, 0x7282, 0xA0C1, 0x7283, 0xA0C2, 0x7285, 0xA0C3, 0x7286, 0xA0C4, 0x7287, 0xA0C5, 0x7288, + 0xA0C6, 0x7289, 0xA0C7, 0x728C, 0xA0C8, 0x728E, 0xA0C9, 0x7290, 0xA0CA, 0x7291, 0xA0CB, 0x7293, 0xA0CC, 0x7294, 0xA0CD, 0x7295, + 0xA0CE, 0x7296, 0xA0CF, 0x7297, 0xA0D0, 0x7298, 0xA0D1, 0x7299, 0xA0D2, 0x729A, 0xA0D3, 0x729B, 0xA0D4, 0x729C, 0xA0D5, 0x729D, + 0xA0D6, 0x729E, 0xA0D7, 0x72A0, 0xA0D8, 0x72A1, 0xA0D9, 0x72A2, 0xA0DA, 0x72A3, 0xA0DB, 0x72A4, 0xA0DC, 0x72A5, 0xA0DD, 0x72A6, + 0xA0DE, 0x72A7, 0xA0DF, 0x72A8, 0xA0E0, 0x72A9, 0xA0E1, 0x72AA, 0xA0E2, 0x72AB, 0xA0E3, 0x72AE, 0xA0E4, 0x72B1, 0xA0E5, 0x72B2, + 0xA0E6, 0x72B3, 0xA0E7, 0x72B5, 0xA0E8, 0x72BA, 0xA0E9, 0x72BB, 0xA0EA, 0x72BC, 0xA0EB, 0x72BD, 0xA0EC, 0x72BE, 0xA0ED, 0x72BF, + 0xA0EE, 0x72C0, 0xA0EF, 0x72C5, 0xA0F0, 0x72C6, 0xA0F1, 0x72C7, 0xA0F2, 0x72C9, 0xA0F3, 0x72CA, 0xA0F4, 0x72CB, 0xA0F5, 0x72CC, + 0xA0F6, 0x72CF, 0xA0F7, 0x72D1, 0xA0F8, 0x72D3, 0xA0F9, 0x72D4, 0xA0FA, 0x72D5, 0xA0FB, 0x72D6, 0xA0FC, 0x72D8, 0xA0FD, 0x72DA, + 0xA0FE, 0x72DB, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, 0xA1A5, 0x02C9, 0xA1A6, 0x02C7, 0xA1A7, 0x00A8, + 0xA1A8, 0x3003, 0xA1A9, 0x3005, 0xA1AA, 0x2014, 0xA1AB, 0xFF5E, 0xA1AC, 0x2016, 0xA1AD, 0x2026, 0xA1AE, 0x2018, 0xA1AF, 0x2019, + 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, + 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3016, 0xA1BD, 0x3017, 0xA1BE, 0x3010, 0xA1BF, 0x3011, + 0xA1C0, 0x00B1, 0xA1C1, 0x00D7, 0xA1C2, 0x00F7, 0xA1C3, 0x2236, 0xA1C4, 0x2227, 0xA1C5, 0x2228, 0xA1C6, 0x2211, 0xA1C7, 0x220F, + 0xA1C8, 0x222A, 0xA1C9, 0x2229, 0xA1CA, 0x2208, 0xA1CB, 0x2237, 0xA1CC, 0x221A, 0xA1CD, 0x22A5, 0xA1CE, 0x2225, 0xA1CF, 0x2220, + 0xA1D0, 0x2312, 0xA1D1, 0x2299, 0xA1D2, 0x222B, 0xA1D3, 0x222E, 0xA1D4, 0x2261, 0xA1D5, 0x224C, 0xA1D6, 0x2248, 0xA1D7, 0x223D, + 0xA1D8, 0x221D, 0xA1D9, 0x2260, 0xA1DA, 0x226E, 0xA1DB, 0x226F, 0xA1DC, 0x2264, 0xA1DD, 0x2265, 0xA1DE, 0x221E, 0xA1DF, 0x2235, + 0xA1E0, 0x2234, 0xA1E1, 0x2642, 0xA1E2, 0x2640, 0xA1E3, 0x00B0, 0xA1E4, 0x2032, 0xA1E5, 0x2033, 0xA1E6, 0x2103, 0xA1E7, 0xFF04, + 0xA1E8, 0x00A4, 0xA1E9, 0xFFE0, 0xA1EA, 0xFFE1, 0xA1EB, 0x2030, 0xA1EC, 0x00A7, 0xA1ED, 0x2116, 0xA1EE, 0x2606, 0xA1EF, 0x2605, + 0xA1F0, 0x25CB, 0xA1F1, 0x25CF, 0xA1F2, 0x25CE, 0xA1F3, 0x25C7, 0xA1F4, 0x25C6, 0xA1F5, 0x25A1, 0xA1F6, 0x25A0, 0xA1F7, 0x25B3, + 0xA1F8, 0x25B2, 0xA1F9, 0x203B, 0xA1FA, 0x2192, 0xA1FB, 0x2190, 0xA1FC, 0x2191, 0xA1FD, 0x2193, 0xA1FE, 0x3013, 0xA2A1, 0x2170, + 0xA2A2, 0x2171, 0xA2A3, 0x2172, 0xA2A4, 0x2173, 0xA2A5, 0x2174, 0xA2A6, 0x2175, 0xA2A7, 0x2176, 0xA2A8, 0x2177, 0xA2A9, 0x2178, + 0xA2AA, 0x2179, 0xA2B1, 0x2488, 0xA2B2, 0x2489, 0xA2B3, 0x248A, 0xA2B4, 0x248B, 0xA2B5, 0x248C, 0xA2B6, 0x248D, 0xA2B7, 0x248E, + 0xA2B8, 0x248F, 0xA2B9, 0x2490, 0xA2BA, 0x2491, 0xA2BB, 0x2492, 0xA2BC, 0x2493, 0xA2BD, 0x2494, 0xA2BE, 0x2495, 0xA2BF, 0x2496, + 0xA2C0, 0x2497, 0xA2C1, 0x2498, 0xA2C2, 0x2499, 0xA2C3, 0x249A, 0xA2C4, 0x249B, 0xA2C5, 0x2474, 0xA2C6, 0x2475, 0xA2C7, 0x2476, + 0xA2C8, 0x2477, 0xA2C9, 0x2478, 0xA2CA, 0x2479, 0xA2CB, 0x247A, 0xA2CC, 0x247B, 0xA2CD, 0x247C, 0xA2CE, 0x247D, 0xA2CF, 0x247E, + 0xA2D0, 0x247F, 0xA2D1, 0x2480, 0xA2D2, 0x2481, 0xA2D3, 0x2482, 0xA2D4, 0x2483, 0xA2D5, 0x2484, 0xA2D6, 0x2485, 0xA2D7, 0x2486, + 0xA2D8, 0x2487, 0xA2D9, 0x2460, 0xA2DA, 0x2461, 0xA2DB, 0x2462, 0xA2DC, 0x2463, 0xA2DD, 0x2464, 0xA2DE, 0x2465, 0xA2DF, 0x2466, + 0xA2E0, 0x2467, 0xA2E1, 0x2468, 0xA2E2, 0x2469, 0xA2E5, 0x3220, 0xA2E6, 0x3221, 0xA2E7, 0x3222, 0xA2E8, 0x3223, 0xA2E9, 0x3224, + 0xA2EA, 0x3225, 0xA2EB, 0x3226, 0xA2EC, 0x3227, 0xA2ED, 0x3228, 0xA2EE, 0x3229, 0xA2F1, 0x2160, 0xA2F2, 0x2161, 0xA2F3, 0x2162, + 0xA2F4, 0x2163, 0xA2F5, 0x2164, 0xA2F6, 0x2165, 0xA2F7, 0x2166, 0xA2F8, 0x2167, 0xA2F9, 0x2168, 0xA2FA, 0x2169, 0xA2FB, 0x216A, + 0xA2FC, 0x216B, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, 0xA3A4, 0xFFE5, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, 0xA3DC, 0xFF3C, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA4A1, 0x3041, + 0xA4A2, 0x3042, 0xA4A3, 0x3043, 0xA4A4, 0x3044, 0xA4A5, 0x3045, 0xA4A6, 0x3046, 0xA4A7, 0x3047, 0xA4A8, 0x3048, 0xA4A9, 0x3049, + 0xA4AA, 0x304A, 0xA4AB, 0x304B, 0xA4AC, 0x304C, 0xA4AD, 0x304D, 0xA4AE, 0x304E, 0xA4AF, 0x304F, 0xA4B0, 0x3050, 0xA4B1, 0x3051, + 0xA4B2, 0x3052, 0xA4B3, 0x3053, 0xA4B4, 0x3054, 0xA4B5, 0x3055, 0xA4B6, 0x3056, 0xA4B7, 0x3057, 0xA4B8, 0x3058, 0xA4B9, 0x3059, + 0xA4BA, 0x305A, 0xA4BB, 0x305B, 0xA4BC, 0x305C, 0xA4BD, 0x305D, 0xA4BE, 0x305E, 0xA4BF, 0x305F, 0xA4C0, 0x3060, 0xA4C1, 0x3061, + 0xA4C2, 0x3062, 0xA4C3, 0x3063, 0xA4C4, 0x3064, 0xA4C5, 0x3065, 0xA4C6, 0x3066, 0xA4C7, 0x3067, 0xA4C8, 0x3068, 0xA4C9, 0x3069, + 0xA4CA, 0x306A, 0xA4CB, 0x306B, 0xA4CC, 0x306C, 0xA4CD, 0x306D, 0xA4CE, 0x306E, 0xA4CF, 0x306F, 0xA4D0, 0x3070, 0xA4D1, 0x3071, + 0xA4D2, 0x3072, 0xA4D3, 0x3073, 0xA4D4, 0x3074, 0xA4D5, 0x3075, 0xA4D6, 0x3076, 0xA4D7, 0x3077, 0xA4D8, 0x3078, 0xA4D9, 0x3079, + 0xA4DA, 0x307A, 0xA4DB, 0x307B, 0xA4DC, 0x307C, 0xA4DD, 0x307D, 0xA4DE, 0x307E, 0xA4DF, 0x307F, 0xA4E0, 0x3080, 0xA4E1, 0x3081, + 0xA4E2, 0x3082, 0xA4E3, 0x3083, 0xA4E4, 0x3084, 0xA4E5, 0x3085, 0xA4E6, 0x3086, 0xA4E7, 0x3087, 0xA4E8, 0x3088, 0xA4E9, 0x3089, + 0xA4EA, 0x308A, 0xA4EB, 0x308B, 0xA4EC, 0x308C, 0xA4ED, 0x308D, 0xA4EE, 0x308E, 0xA4EF, 0x308F, 0xA4F0, 0x3090, 0xA4F1, 0x3091, + 0xA4F2, 0x3092, 0xA4F3, 0x3093, 0xA5A1, 0x30A1, 0xA5A2, 0x30A2, 0xA5A3, 0x30A3, 0xA5A4, 0x30A4, 0xA5A5, 0x30A5, 0xA5A6, 0x30A6, + 0xA5A7, 0x30A7, 0xA5A8, 0x30A8, 0xA5A9, 0x30A9, 0xA5AA, 0x30AA, 0xA5AB, 0x30AB, 0xA5AC, 0x30AC, 0xA5AD, 0x30AD, 0xA5AE, 0x30AE, + 0xA5AF, 0x30AF, 0xA5B0, 0x30B0, 0xA5B1, 0x30B1, 0xA5B2, 0x30B2, 0xA5B3, 0x30B3, 0xA5B4, 0x30B4, 0xA5B5, 0x30B5, 0xA5B6, 0x30B6, + 0xA5B7, 0x30B7, 0xA5B8, 0x30B8, 0xA5B9, 0x30B9, 0xA5BA, 0x30BA, 0xA5BB, 0x30BB, 0xA5BC, 0x30BC, 0xA5BD, 0x30BD, 0xA5BE, 0x30BE, + 0xA5BF, 0x30BF, 0xA5C0, 0x30C0, 0xA5C1, 0x30C1, 0xA5C2, 0x30C2, 0xA5C3, 0x30C3, 0xA5C4, 0x30C4, 0xA5C5, 0x30C5, 0xA5C6, 0x30C6, + 0xA5C7, 0x30C7, 0xA5C8, 0x30C8, 0xA5C9, 0x30C9, 0xA5CA, 0x30CA, 0xA5CB, 0x30CB, 0xA5CC, 0x30CC, 0xA5CD, 0x30CD, 0xA5CE, 0x30CE, + 0xA5CF, 0x30CF, 0xA5D0, 0x30D0, 0xA5D1, 0x30D1, 0xA5D2, 0x30D2, 0xA5D3, 0x30D3, 0xA5D4, 0x30D4, 0xA5D5, 0x30D5, 0xA5D6, 0x30D6, + 0xA5D7, 0x30D7, 0xA5D8, 0x30D8, 0xA5D9, 0x30D9, 0xA5DA, 0x30DA, 0xA5DB, 0x30DB, 0xA5DC, 0x30DC, 0xA5DD, 0x30DD, 0xA5DE, 0x30DE, + 0xA5DF, 0x30DF, 0xA5E0, 0x30E0, 0xA5E1, 0x30E1, 0xA5E2, 0x30E2, 0xA5E3, 0x30E3, 0xA5E4, 0x30E4, 0xA5E5, 0x30E5, 0xA5E6, 0x30E6, + 0xA5E7, 0x30E7, 0xA5E8, 0x30E8, 0xA5E9, 0x30E9, 0xA5EA, 0x30EA, 0xA5EB, 0x30EB, 0xA5EC, 0x30EC, 0xA5ED, 0x30ED, 0xA5EE, 0x30EE, + 0xA5EF, 0x30EF, 0xA5F0, 0x30F0, 0xA5F1, 0x30F1, 0xA5F2, 0x30F2, 0xA5F3, 0x30F3, 0xA5F4, 0x30F4, 0xA5F5, 0x30F5, 0xA5F6, 0x30F6, + 0xA6A1, 0x0391, 0xA6A2, 0x0392, 0xA6A3, 0x0393, 0xA6A4, 0x0394, 0xA6A5, 0x0395, 0xA6A6, 0x0396, 0xA6A7, 0x0397, 0xA6A8, 0x0398, + 0xA6A9, 0x0399, 0xA6AA, 0x039A, 0xA6AB, 0x039B, 0xA6AC, 0x039C, 0xA6AD, 0x039D, 0xA6AE, 0x039E, 0xA6AF, 0x039F, 0xA6B0, 0x03A0, + 0xA6B1, 0x03A1, 0xA6B2, 0x03A3, 0xA6B3, 0x03A4, 0xA6B4, 0x03A5, 0xA6B5, 0x03A6, 0xA6B6, 0x03A7, 0xA6B7, 0x03A8, 0xA6B8, 0x03A9, + 0xA6C1, 0x03B1, 0xA6C2, 0x03B2, 0xA6C3, 0x03B3, 0xA6C4, 0x03B4, 0xA6C5, 0x03B5, 0xA6C6, 0x03B6, 0xA6C7, 0x03B7, 0xA6C8, 0x03B8, + 0xA6C9, 0x03B9, 0xA6CA, 0x03BA, 0xA6CB, 0x03BB, 0xA6CC, 0x03BC, 0xA6CD, 0x03BD, 0xA6CE, 0x03BE, 0xA6CF, 0x03BF, 0xA6D0, 0x03C0, + 0xA6D1, 0x03C1, 0xA6D2, 0x03C3, 0xA6D3, 0x03C4, 0xA6D4, 0x03C5, 0xA6D5, 0x03C6, 0xA6D6, 0x03C7, 0xA6D7, 0x03C8, 0xA6D8, 0x03C9, + 0xA6E0, 0xFE35, 0xA6E1, 0xFE36, 0xA6E2, 0xFE39, 0xA6E3, 0xFE3A, 0xA6E4, 0xFE3F, 0xA6E5, 0xFE40, 0xA6E6, 0xFE3D, 0xA6E7, 0xFE3E, + 0xA6E8, 0xFE41, 0xA6E9, 0xFE42, 0xA6EA, 0xFE43, 0xA6EB, 0xFE44, 0xA6EE, 0xFE3B, 0xA6EF, 0xFE3C, 0xA6F0, 0xFE37, 0xA6F1, 0xFE38, + 0xA6F2, 0xFE31, 0xA6F4, 0xFE33, 0xA6F5, 0xFE34, 0xA7A1, 0x0410, 0xA7A2, 0x0411, 0xA7A3, 0x0412, 0xA7A4, 0x0413, 0xA7A5, 0x0414, + 0xA7A6, 0x0415, 0xA7A7, 0x0401, 0xA7A8, 0x0416, 0xA7A9, 0x0417, 0xA7AA, 0x0418, 0xA7AB, 0x0419, 0xA7AC, 0x041A, 0xA7AD, 0x041B, + 0xA7AE, 0x041C, 0xA7AF, 0x041D, 0xA7B0, 0x041E, 0xA7B1, 0x041F, 0xA7B2, 0x0420, 0xA7B3, 0x0421, 0xA7B4, 0x0422, 0xA7B5, 0x0423, + 0xA7B6, 0x0424, 0xA7B7, 0x0425, 0xA7B8, 0x0426, 0xA7B9, 0x0427, 0xA7BA, 0x0428, 0xA7BB, 0x0429, 0xA7BC, 0x042A, 0xA7BD, 0x042B, + 0xA7BE, 0x042C, 0xA7BF, 0x042D, 0xA7C0, 0x042E, 0xA7C1, 0x042F, 0xA7D1, 0x0430, 0xA7D2, 0x0431, 0xA7D3, 0x0432, 0xA7D4, 0x0433, + 0xA7D5, 0x0434, 0xA7D6, 0x0435, 0xA7D7, 0x0451, 0xA7D8, 0x0436, 0xA7D9, 0x0437, 0xA7DA, 0x0438, 0xA7DB, 0x0439, 0xA7DC, 0x043A, + 0xA7DD, 0x043B, 0xA7DE, 0x043C, 0xA7DF, 0x043D, 0xA7E0, 0x043E, 0xA7E1, 0x043F, 0xA7E2, 0x0440, 0xA7E3, 0x0441, 0xA7E4, 0x0442, + 0xA7E5, 0x0443, 0xA7E6, 0x0444, 0xA7E7, 0x0445, 0xA7E8, 0x0446, 0xA7E9, 0x0447, 0xA7EA, 0x0448, 0xA7EB, 0x0449, 0xA7EC, 0x044A, + 0xA7ED, 0x044B, 0xA7EE, 0x044C, 0xA7EF, 0x044D, 0xA7F0, 0x044E, 0xA7F1, 0x044F, 0xA840, 0x02CA, 0xA841, 0x02CB, 0xA842, 0x02D9, + 0xA843, 0x2013, 0xA844, 0x2015, 0xA845, 0x2025, 0xA846, 0x2035, 0xA847, 0x2105, 0xA848, 0x2109, 0xA849, 0x2196, 0xA84A, 0x2197, + 0xA84B, 0x2198, 0xA84C, 0x2199, 0xA84D, 0x2215, 0xA84E, 0x221F, 0xA84F, 0x2223, 0xA850, 0x2252, 0xA851, 0x2266, 0xA852, 0x2267, + 0xA853, 0x22BF, 0xA854, 0x2550, 0xA855, 0x2551, 0xA856, 0x2552, 0xA857, 0x2553, 0xA858, 0x2554, 0xA859, 0x2555, 0xA85A, 0x2556, + 0xA85B, 0x2557, 0xA85C, 0x2558, 0xA85D, 0x2559, 0xA85E, 0x255A, 0xA85F, 0x255B, 0xA860, 0x255C, 0xA861, 0x255D, 0xA862, 0x255E, + 0xA863, 0x255F, 0xA864, 0x2560, 0xA865, 0x2561, 0xA866, 0x2562, 0xA867, 0x2563, 0xA868, 0x2564, 0xA869, 0x2565, 0xA86A, 0x2566, + 0xA86B, 0x2567, 0xA86C, 0x2568, 0xA86D, 0x2569, 0xA86E, 0x256A, 0xA86F, 0x256B, 0xA870, 0x256C, 0xA871, 0x256D, 0xA872, 0x256E, + 0xA873, 0x256F, 0xA874, 0x2570, 0xA875, 0x2571, 0xA876, 0x2572, 0xA877, 0x2573, 0xA878, 0x2581, 0xA879, 0x2582, 0xA87A, 0x2583, + 0xA87B, 0x2584, 0xA87C, 0x2585, 0xA87D, 0x2586, 0xA87E, 0x2587, 0xA880, 0x2588, 0xA881, 0x2589, 0xA882, 0x258A, 0xA883, 0x258B, + 0xA884, 0x258C, 0xA885, 0x258D, 0xA886, 0x258E, 0xA887, 0x258F, 0xA888, 0x2593, 0xA889, 0x2594, 0xA88A, 0x2595, 0xA88B, 0x25BC, + 0xA88C, 0x25BD, 0xA88D, 0x25E2, 0xA88E, 0x25E3, 0xA88F, 0x25E4, 0xA890, 0x25E5, 0xA891, 0x2609, 0xA892, 0x2295, 0xA893, 0x3012, + 0xA894, 0x301D, 0xA895, 0x301E, 0xA8A1, 0x0101, 0xA8A2, 0x00E1, 0xA8A3, 0x01CE, 0xA8A4, 0x00E0, 0xA8A5, 0x0113, 0xA8A6, 0x00E9, + 0xA8A7, 0x011B, 0xA8A8, 0x00E8, 0xA8A9, 0x012B, 0xA8AA, 0x00ED, 0xA8AB, 0x01D0, 0xA8AC, 0x00EC, 0xA8AD, 0x014D, 0xA8AE, 0x00F3, + 0xA8AF, 0x01D2, 0xA8B0, 0x00F2, 0xA8B1, 0x016B, 0xA8B2, 0x00FA, 0xA8B3, 0x01D4, 0xA8B4, 0x00F9, 0xA8B5, 0x01D6, 0xA8B6, 0x01D8, + 0xA8B7, 0x01DA, 0xA8B8, 0x01DC, 0xA8B9, 0x00FC, 0xA8BA, 0x00EA, 0xA8BB, 0x0251, 0xA8BD, 0x0144, 0xA8BE, 0x0148, 0xA8C0, 0x0261, + 0xA8C5, 0x3105, 0xA8C6, 0x3106, 0xA8C7, 0x3107, 0xA8C8, 0x3108, 0xA8C9, 0x3109, 0xA8CA, 0x310A, 0xA8CB, 0x310B, 0xA8CC, 0x310C, + 0xA8CD, 0x310D, 0xA8CE, 0x310E, 0xA8CF, 0x310F, 0xA8D0, 0x3110, 0xA8D1, 0x3111, 0xA8D2, 0x3112, 0xA8D3, 0x3113, 0xA8D4, 0x3114, + 0xA8D5, 0x3115, 0xA8D6, 0x3116, 0xA8D7, 0x3117, 0xA8D8, 0x3118, 0xA8D9, 0x3119, 0xA8DA, 0x311A, 0xA8DB, 0x311B, 0xA8DC, 0x311C, + 0xA8DD, 0x311D, 0xA8DE, 0x311E, 0xA8DF, 0x311F, 0xA8E0, 0x3120, 0xA8E1, 0x3121, 0xA8E2, 0x3122, 0xA8E3, 0x3123, 0xA8E4, 0x3124, + 0xA8E5, 0x3125, 0xA8E6, 0x3126, 0xA8E7, 0x3127, 0xA8E8, 0x3128, 0xA8E9, 0x3129, 0xA940, 0x3021, 0xA941, 0x3022, 0xA942, 0x3023, + 0xA943, 0x3024, 0xA944, 0x3025, 0xA945, 0x3026, 0xA946, 0x3027, 0xA947, 0x3028, 0xA948, 0x3029, 0xA949, 0x32A3, 0xA94A, 0x338E, + 0xA94B, 0x338F, 0xA94C, 0x339C, 0xA94D, 0x339D, 0xA94E, 0x339E, 0xA94F, 0x33A1, 0xA950, 0x33C4, 0xA951, 0x33CE, 0xA952, 0x33D1, + 0xA953, 0x33D2, 0xA954, 0x33D5, 0xA955, 0xFE30, 0xA956, 0xFFE2, 0xA957, 0xFFE4, 0xA959, 0x2121, 0xA95A, 0x3231, 0xA95C, 0x2010, + 0xA960, 0x30FC, 0xA961, 0x309B, 0xA962, 0x309C, 0xA963, 0x30FD, 0xA964, 0x30FE, 0xA965, 0x3006, 0xA966, 0x309D, 0xA967, 0x309E, + 0xA968, 0xFE49, 0xA969, 0xFE4A, 0xA96A, 0xFE4B, 0xA96B, 0xFE4C, 0xA96C, 0xFE4D, 0xA96D, 0xFE4E, 0xA96E, 0xFE4F, 0xA96F, 0xFE50, + 0xA970, 0xFE51, 0xA971, 0xFE52, 0xA972, 0xFE54, 0xA973, 0xFE55, 0xA974, 0xFE56, 0xA975, 0xFE57, 0xA976, 0xFE59, 0xA977, 0xFE5A, + 0xA978, 0xFE5B, 0xA979, 0xFE5C, 0xA97A, 0xFE5D, 0xA97B, 0xFE5E, 0xA97C, 0xFE5F, 0xA97D, 0xFE60, 0xA97E, 0xFE61, 0xA980, 0xFE62, + 0xA981, 0xFE63, 0xA982, 0xFE64, 0xA983, 0xFE65, 0xA984, 0xFE66, 0xA985, 0xFE68, 0xA986, 0xFE69, 0xA987, 0xFE6A, 0xA988, 0xFE6B, + 0xA996, 0x3007, 0xA9A4, 0x2500, 0xA9A5, 0x2501, 0xA9A6, 0x2502, 0xA9A7, 0x2503, 0xA9A8, 0x2504, 0xA9A9, 0x2505, 0xA9AA, 0x2506, + 0xA9AB, 0x2507, 0xA9AC, 0x2508, 0xA9AD, 0x2509, 0xA9AE, 0x250A, 0xA9AF, 0x250B, 0xA9B0, 0x250C, 0xA9B1, 0x250D, 0xA9B2, 0x250E, + 0xA9B3, 0x250F, 0xA9B4, 0x2510, 0xA9B5, 0x2511, 0xA9B6, 0x2512, 0xA9B7, 0x2513, 0xA9B8, 0x2514, 0xA9B9, 0x2515, 0xA9BA, 0x2516, + 0xA9BB, 0x2517, 0xA9BC, 0x2518, 0xA9BD, 0x2519, 0xA9BE, 0x251A, 0xA9BF, 0x251B, 0xA9C0, 0x251C, 0xA9C1, 0x251D, 0xA9C2, 0x251E, + 0xA9C3, 0x251F, 0xA9C4, 0x2520, 0xA9C5, 0x2521, 0xA9C6, 0x2522, 0xA9C7, 0x2523, 0xA9C8, 0x2524, 0xA9C9, 0x2525, 0xA9CA, 0x2526, + 0xA9CB, 0x2527, 0xA9CC, 0x2528, 0xA9CD, 0x2529, 0xA9CE, 0x252A, 0xA9CF, 0x252B, 0xA9D0, 0x252C, 0xA9D1, 0x252D, 0xA9D2, 0x252E, + 0xA9D3, 0x252F, 0xA9D4, 0x2530, 0xA9D5, 0x2531, 0xA9D6, 0x2532, 0xA9D7, 0x2533, 0xA9D8, 0x2534, 0xA9D9, 0x2535, 0xA9DA, 0x2536, + 0xA9DB, 0x2537, 0xA9DC, 0x2538, 0xA9DD, 0x2539, 0xA9DE, 0x253A, 0xA9DF, 0x253B, 0xA9E0, 0x253C, 0xA9E1, 0x253D, 0xA9E2, 0x253E, + 0xA9E3, 0x253F, 0xA9E4, 0x2540, 0xA9E5, 0x2541, 0xA9E6, 0x2542, 0xA9E7, 0x2543, 0xA9E8, 0x2544, 0xA9E9, 0x2545, 0xA9EA, 0x2546, + 0xA9EB, 0x2547, 0xA9EC, 0x2548, 0xA9ED, 0x2549, 0xA9EE, 0x254A, 0xA9EF, 0x254B, 0xAA40, 0x72DC, 0xAA41, 0x72DD, 0xAA42, 0x72DF, + 0xAA43, 0x72E2, 0xAA44, 0x72E3, 0xAA45, 0x72E4, 0xAA46, 0x72E5, 0xAA47, 0x72E6, 0xAA48, 0x72E7, 0xAA49, 0x72EA, 0xAA4A, 0x72EB, + 0xAA4B, 0x72F5, 0xAA4C, 0x72F6, 0xAA4D, 0x72F9, 0xAA4E, 0x72FD, 0xAA4F, 0x72FE, 0xAA50, 0x72FF, 0xAA51, 0x7300, 0xAA52, 0x7302, + 0xAA53, 0x7304, 0xAA54, 0x7305, 0xAA55, 0x7306, 0xAA56, 0x7307, 0xAA57, 0x7308, 0xAA58, 0x7309, 0xAA59, 0x730B, 0xAA5A, 0x730C, + 0xAA5B, 0x730D, 0xAA5C, 0x730F, 0xAA5D, 0x7310, 0xAA5E, 0x7311, 0xAA5F, 0x7312, 0xAA60, 0x7314, 0xAA61, 0x7318, 0xAA62, 0x7319, + 0xAA63, 0x731A, 0xAA64, 0x731F, 0xAA65, 0x7320, 0xAA66, 0x7323, 0xAA67, 0x7324, 0xAA68, 0x7326, 0xAA69, 0x7327, 0xAA6A, 0x7328, + 0xAA6B, 0x732D, 0xAA6C, 0x732F, 0xAA6D, 0x7330, 0xAA6E, 0x7332, 0xAA6F, 0x7333, 0xAA70, 0x7335, 0xAA71, 0x7336, 0xAA72, 0x733A, + 0xAA73, 0x733B, 0xAA74, 0x733C, 0xAA75, 0x733D, 0xAA76, 0x7340, 0xAA77, 0x7341, 0xAA78, 0x7342, 0xAA79, 0x7343, 0xAA7A, 0x7344, + 0xAA7B, 0x7345, 0xAA7C, 0x7346, 0xAA7D, 0x7347, 0xAA7E, 0x7348, 0xAA80, 0x7349, 0xAA81, 0x734A, 0xAA82, 0x734B, 0xAA83, 0x734C, + 0xAA84, 0x734E, 0xAA85, 0x734F, 0xAA86, 0x7351, 0xAA87, 0x7353, 0xAA88, 0x7354, 0xAA89, 0x7355, 0xAA8A, 0x7356, 0xAA8B, 0x7358, + 0xAA8C, 0x7359, 0xAA8D, 0x735A, 0xAA8E, 0x735B, 0xAA8F, 0x735C, 0xAA90, 0x735D, 0xAA91, 0x735E, 0xAA92, 0x735F, 0xAA93, 0x7361, + 0xAA94, 0x7362, 0xAA95, 0x7363, 0xAA96, 0x7364, 0xAA97, 0x7365, 0xAA98, 0x7366, 0xAA99, 0x7367, 0xAA9A, 0x7368, 0xAA9B, 0x7369, + 0xAA9C, 0x736A, 0xAA9D, 0x736B, 0xAA9E, 0x736E, 0xAA9F, 0x7370, 0xAAA0, 0x7371, 0xAB40, 0x7372, 0xAB41, 0x7373, 0xAB42, 0x7374, + 0xAB43, 0x7375, 0xAB44, 0x7376, 0xAB45, 0x7377, 0xAB46, 0x7378, 0xAB47, 0x7379, 0xAB48, 0x737A, 0xAB49, 0x737B, 0xAB4A, 0x737C, + 0xAB4B, 0x737D, 0xAB4C, 0x737F, 0xAB4D, 0x7380, 0xAB4E, 0x7381, 0xAB4F, 0x7382, 0xAB50, 0x7383, 0xAB51, 0x7385, 0xAB52, 0x7386, + 0xAB53, 0x7388, 0xAB54, 0x738A, 0xAB55, 0x738C, 0xAB56, 0x738D, 0xAB57, 0x738F, 0xAB58, 0x7390, 0xAB59, 0x7392, 0xAB5A, 0x7393, + 0xAB5B, 0x7394, 0xAB5C, 0x7395, 0xAB5D, 0x7397, 0xAB5E, 0x7398, 0xAB5F, 0x7399, 0xAB60, 0x739A, 0xAB61, 0x739C, 0xAB62, 0x739D, + 0xAB63, 0x739E, 0xAB64, 0x73A0, 0xAB65, 0x73A1, 0xAB66, 0x73A3, 0xAB67, 0x73A4, 0xAB68, 0x73A5, 0xAB69, 0x73A6, 0xAB6A, 0x73A7, + 0xAB6B, 0x73A8, 0xAB6C, 0x73AA, 0xAB6D, 0x73AC, 0xAB6E, 0x73AD, 0xAB6F, 0x73B1, 0xAB70, 0x73B4, 0xAB71, 0x73B5, 0xAB72, 0x73B6, + 0xAB73, 0x73B8, 0xAB74, 0x73B9, 0xAB75, 0x73BC, 0xAB76, 0x73BD, 0xAB77, 0x73BE, 0xAB78, 0x73BF, 0xAB79, 0x73C1, 0xAB7A, 0x73C3, + 0xAB7B, 0x73C4, 0xAB7C, 0x73C5, 0xAB7D, 0x73C6, 0xAB7E, 0x73C7, 0xAB80, 0x73CB, 0xAB81, 0x73CC, 0xAB82, 0x73CE, 0xAB83, 0x73D2, + 0xAB84, 0x73D3, 0xAB85, 0x73D4, 0xAB86, 0x73D5, 0xAB87, 0x73D6, 0xAB88, 0x73D7, 0xAB89, 0x73D8, 0xAB8A, 0x73DA, 0xAB8B, 0x73DB, + 0xAB8C, 0x73DC, 0xAB8D, 0x73DD, 0xAB8E, 0x73DF, 0xAB8F, 0x73E1, 0xAB90, 0x73E2, 0xAB91, 0x73E3, 0xAB92, 0x73E4, 0xAB93, 0x73E6, + 0xAB94, 0x73E8, 0xAB95, 0x73EA, 0xAB96, 0x73EB, 0xAB97, 0x73EC, 0xAB98, 0x73EE, 0xAB99, 0x73EF, 0xAB9A, 0x73F0, 0xAB9B, 0x73F1, + 0xAB9C, 0x73F3, 0xAB9D, 0x73F4, 0xAB9E, 0x73F5, 0xAB9F, 0x73F6, 0xABA0, 0x73F7, 0xAC40, 0x73F8, 0xAC41, 0x73F9, 0xAC42, 0x73FA, + 0xAC43, 0x73FB, 0xAC44, 0x73FC, 0xAC45, 0x73FD, 0xAC46, 0x73FE, 0xAC47, 0x73FF, 0xAC48, 0x7400, 0xAC49, 0x7401, 0xAC4A, 0x7402, + 0xAC4B, 0x7404, 0xAC4C, 0x7407, 0xAC4D, 0x7408, 0xAC4E, 0x740B, 0xAC4F, 0x740C, 0xAC50, 0x740D, 0xAC51, 0x740E, 0xAC52, 0x7411, + 0xAC53, 0x7412, 0xAC54, 0x7413, 0xAC55, 0x7414, 0xAC56, 0x7415, 0xAC57, 0x7416, 0xAC58, 0x7417, 0xAC59, 0x7418, 0xAC5A, 0x7419, + 0xAC5B, 0x741C, 0xAC5C, 0x741D, 0xAC5D, 0x741E, 0xAC5E, 0x741F, 0xAC5F, 0x7420, 0xAC60, 0x7421, 0xAC61, 0x7423, 0xAC62, 0x7424, + 0xAC63, 0x7427, 0xAC64, 0x7429, 0xAC65, 0x742B, 0xAC66, 0x742D, 0xAC67, 0x742F, 0xAC68, 0x7431, 0xAC69, 0x7432, 0xAC6A, 0x7437, + 0xAC6B, 0x7438, 0xAC6C, 0x7439, 0xAC6D, 0x743A, 0xAC6E, 0x743B, 0xAC6F, 0x743D, 0xAC70, 0x743E, 0xAC71, 0x743F, 0xAC72, 0x7440, + 0xAC73, 0x7442, 0xAC74, 0x7443, 0xAC75, 0x7444, 0xAC76, 0x7445, 0xAC77, 0x7446, 0xAC78, 0x7447, 0xAC79, 0x7448, 0xAC7A, 0x7449, + 0xAC7B, 0x744A, 0xAC7C, 0x744B, 0xAC7D, 0x744C, 0xAC7E, 0x744D, 0xAC80, 0x744E, 0xAC81, 0x744F, 0xAC82, 0x7450, 0xAC83, 0x7451, + 0xAC84, 0x7452, 0xAC85, 0x7453, 0xAC86, 0x7454, 0xAC87, 0x7456, 0xAC88, 0x7458, 0xAC89, 0x745D, 0xAC8A, 0x7460, 0xAC8B, 0x7461, + 0xAC8C, 0x7462, 0xAC8D, 0x7463, 0xAC8E, 0x7464, 0xAC8F, 0x7465, 0xAC90, 0x7466, 0xAC91, 0x7467, 0xAC92, 0x7468, 0xAC93, 0x7469, + 0xAC94, 0x746A, 0xAC95, 0x746B, 0xAC96, 0x746C, 0xAC97, 0x746E, 0xAC98, 0x746F, 0xAC99, 0x7471, 0xAC9A, 0x7472, 0xAC9B, 0x7473, + 0xAC9C, 0x7474, 0xAC9D, 0x7475, 0xAC9E, 0x7478, 0xAC9F, 0x7479, 0xACA0, 0x747A, 0xAD40, 0x747B, 0xAD41, 0x747C, 0xAD42, 0x747D, + 0xAD43, 0x747F, 0xAD44, 0x7482, 0xAD45, 0x7484, 0xAD46, 0x7485, 0xAD47, 0x7486, 0xAD48, 0x7488, 0xAD49, 0x7489, 0xAD4A, 0x748A, + 0xAD4B, 0x748C, 0xAD4C, 0x748D, 0xAD4D, 0x748F, 0xAD4E, 0x7491, 0xAD4F, 0x7492, 0xAD50, 0x7493, 0xAD51, 0x7494, 0xAD52, 0x7495, + 0xAD53, 0x7496, 0xAD54, 0x7497, 0xAD55, 0x7498, 0xAD56, 0x7499, 0xAD57, 0x749A, 0xAD58, 0x749B, 0xAD59, 0x749D, 0xAD5A, 0x749F, + 0xAD5B, 0x74A0, 0xAD5C, 0x74A1, 0xAD5D, 0x74A2, 0xAD5E, 0x74A3, 0xAD5F, 0x74A4, 0xAD60, 0x74A5, 0xAD61, 0x74A6, 0xAD62, 0x74AA, + 0xAD63, 0x74AB, 0xAD64, 0x74AC, 0xAD65, 0x74AD, 0xAD66, 0x74AE, 0xAD67, 0x74AF, 0xAD68, 0x74B0, 0xAD69, 0x74B1, 0xAD6A, 0x74B2, + 0xAD6B, 0x74B3, 0xAD6C, 0x74B4, 0xAD6D, 0x74B5, 0xAD6E, 0x74B6, 0xAD6F, 0x74B7, 0xAD70, 0x74B8, 0xAD71, 0x74B9, 0xAD72, 0x74BB, + 0xAD73, 0x74BC, 0xAD74, 0x74BD, 0xAD75, 0x74BE, 0xAD76, 0x74BF, 0xAD77, 0x74C0, 0xAD78, 0x74C1, 0xAD79, 0x74C2, 0xAD7A, 0x74C3, + 0xAD7B, 0x74C4, 0xAD7C, 0x74C5, 0xAD7D, 0x74C6, 0xAD7E, 0x74C7, 0xAD80, 0x74C8, 0xAD81, 0x74C9, 0xAD82, 0x74CA, 0xAD83, 0x74CB, + 0xAD84, 0x74CC, 0xAD85, 0x74CD, 0xAD86, 0x74CE, 0xAD87, 0x74CF, 0xAD88, 0x74D0, 0xAD89, 0x74D1, 0xAD8A, 0x74D3, 0xAD8B, 0x74D4, + 0xAD8C, 0x74D5, 0xAD8D, 0x74D6, 0xAD8E, 0x74D7, 0xAD8F, 0x74D8, 0xAD90, 0x74D9, 0xAD91, 0x74DA, 0xAD92, 0x74DB, 0xAD93, 0x74DD, + 0xAD94, 0x74DF, 0xAD95, 0x74E1, 0xAD96, 0x74E5, 0xAD97, 0x74E7, 0xAD98, 0x74E8, 0xAD99, 0x74E9, 0xAD9A, 0x74EA, 0xAD9B, 0x74EB, + 0xAD9C, 0x74EC, 0xAD9D, 0x74ED, 0xAD9E, 0x74F0, 0xAD9F, 0x74F1, 0xADA0, 0x74F2, 0xAE40, 0x74F3, 0xAE41, 0x74F5, 0xAE42, 0x74F8, + 0xAE43, 0x74F9, 0xAE44, 0x74FA, 0xAE45, 0x74FB, 0xAE46, 0x74FC, 0xAE47, 0x74FD, 0xAE48, 0x74FE, 0xAE49, 0x7500, 0xAE4A, 0x7501, + 0xAE4B, 0x7502, 0xAE4C, 0x7503, 0xAE4D, 0x7505, 0xAE4E, 0x7506, 0xAE4F, 0x7507, 0xAE50, 0x7508, 0xAE51, 0x7509, 0xAE52, 0x750A, + 0xAE53, 0x750B, 0xAE54, 0x750C, 0xAE55, 0x750E, 0xAE56, 0x7510, 0xAE57, 0x7512, 0xAE58, 0x7514, 0xAE59, 0x7515, 0xAE5A, 0x7516, + 0xAE5B, 0x7517, 0xAE5C, 0x751B, 0xAE5D, 0x751D, 0xAE5E, 0x751E, 0xAE5F, 0x7520, 0xAE60, 0x7521, 0xAE61, 0x7522, 0xAE62, 0x7523, + 0xAE63, 0x7524, 0xAE64, 0x7526, 0xAE65, 0x7527, 0xAE66, 0x752A, 0xAE67, 0x752E, 0xAE68, 0x7534, 0xAE69, 0x7536, 0xAE6A, 0x7539, + 0xAE6B, 0x753C, 0xAE6C, 0x753D, 0xAE6D, 0x753F, 0xAE6E, 0x7541, 0xAE6F, 0x7542, 0xAE70, 0x7543, 0xAE71, 0x7544, 0xAE72, 0x7546, + 0xAE73, 0x7547, 0xAE74, 0x7549, 0xAE75, 0x754A, 0xAE76, 0x754D, 0xAE77, 0x7550, 0xAE78, 0x7551, 0xAE79, 0x7552, 0xAE7A, 0x7553, + 0xAE7B, 0x7555, 0xAE7C, 0x7556, 0xAE7D, 0x7557, 0xAE7E, 0x7558, 0xAE80, 0x755D, 0xAE81, 0x755E, 0xAE82, 0x755F, 0xAE83, 0x7560, + 0xAE84, 0x7561, 0xAE85, 0x7562, 0xAE86, 0x7563, 0xAE87, 0x7564, 0xAE88, 0x7567, 0xAE89, 0x7568, 0xAE8A, 0x7569, 0xAE8B, 0x756B, + 0xAE8C, 0x756C, 0xAE8D, 0x756D, 0xAE8E, 0x756E, 0xAE8F, 0x756F, 0xAE90, 0x7570, 0xAE91, 0x7571, 0xAE92, 0x7573, 0xAE93, 0x7575, + 0xAE94, 0x7576, 0xAE95, 0x7577, 0xAE96, 0x757A, 0xAE97, 0x757B, 0xAE98, 0x757C, 0xAE99, 0x757D, 0xAE9A, 0x757E, 0xAE9B, 0x7580, + 0xAE9C, 0x7581, 0xAE9D, 0x7582, 0xAE9E, 0x7584, 0xAE9F, 0x7585, 0xAEA0, 0x7587, 0xAF40, 0x7588, 0xAF41, 0x7589, 0xAF42, 0x758A, + 0xAF43, 0x758C, 0xAF44, 0x758D, 0xAF45, 0x758E, 0xAF46, 0x7590, 0xAF47, 0x7593, 0xAF48, 0x7595, 0xAF49, 0x7598, 0xAF4A, 0x759B, + 0xAF4B, 0x759C, 0xAF4C, 0x759E, 0xAF4D, 0x75A2, 0xAF4E, 0x75A6, 0xAF4F, 0x75A7, 0xAF50, 0x75A8, 0xAF51, 0x75A9, 0xAF52, 0x75AA, + 0xAF53, 0x75AD, 0xAF54, 0x75B6, 0xAF55, 0x75B7, 0xAF56, 0x75BA, 0xAF57, 0x75BB, 0xAF58, 0x75BF, 0xAF59, 0x75C0, 0xAF5A, 0x75C1, + 0xAF5B, 0x75C6, 0xAF5C, 0x75CB, 0xAF5D, 0x75CC, 0xAF5E, 0x75CE, 0xAF5F, 0x75CF, 0xAF60, 0x75D0, 0xAF61, 0x75D1, 0xAF62, 0x75D3, + 0xAF63, 0x75D7, 0xAF64, 0x75D9, 0xAF65, 0x75DA, 0xAF66, 0x75DC, 0xAF67, 0x75DD, 0xAF68, 0x75DF, 0xAF69, 0x75E0, 0xAF6A, 0x75E1, + 0xAF6B, 0x75E5, 0xAF6C, 0x75E9, 0xAF6D, 0x75EC, 0xAF6E, 0x75ED, 0xAF6F, 0x75EE, 0xAF70, 0x75EF, 0xAF71, 0x75F2, 0xAF72, 0x75F3, + 0xAF73, 0x75F5, 0xAF74, 0x75F6, 0xAF75, 0x75F7, 0xAF76, 0x75F8, 0xAF77, 0x75FA, 0xAF78, 0x75FB, 0xAF79, 0x75FD, 0xAF7A, 0x75FE, + 0xAF7B, 0x7602, 0xAF7C, 0x7604, 0xAF7D, 0x7606, 0xAF7E, 0x7607, 0xAF80, 0x7608, 0xAF81, 0x7609, 0xAF82, 0x760B, 0xAF83, 0x760D, + 0xAF84, 0x760E, 0xAF85, 0x760F, 0xAF86, 0x7611, 0xAF87, 0x7612, 0xAF88, 0x7613, 0xAF89, 0x7614, 0xAF8A, 0x7616, 0xAF8B, 0x761A, + 0xAF8C, 0x761C, 0xAF8D, 0x761D, 0xAF8E, 0x761E, 0xAF8F, 0x7621, 0xAF90, 0x7623, 0xAF91, 0x7627, 0xAF92, 0x7628, 0xAF93, 0x762C, + 0xAF94, 0x762E, 0xAF95, 0x762F, 0xAF96, 0x7631, 0xAF97, 0x7632, 0xAF98, 0x7636, 0xAF99, 0x7637, 0xAF9A, 0x7639, 0xAF9B, 0x763A, + 0xAF9C, 0x763B, 0xAF9D, 0x763D, 0xAF9E, 0x7641, 0xAF9F, 0x7642, 0xAFA0, 0x7644, 0xB040, 0x7645, 0xB041, 0x7646, 0xB042, 0x7647, + 0xB043, 0x7648, 0xB044, 0x7649, 0xB045, 0x764A, 0xB046, 0x764B, 0xB047, 0x764E, 0xB048, 0x764F, 0xB049, 0x7650, 0xB04A, 0x7651, + 0xB04B, 0x7652, 0xB04C, 0x7653, 0xB04D, 0x7655, 0xB04E, 0x7657, 0xB04F, 0x7658, 0xB050, 0x7659, 0xB051, 0x765A, 0xB052, 0x765B, + 0xB053, 0x765D, 0xB054, 0x765F, 0xB055, 0x7660, 0xB056, 0x7661, 0xB057, 0x7662, 0xB058, 0x7664, 0xB059, 0x7665, 0xB05A, 0x7666, + 0xB05B, 0x7667, 0xB05C, 0x7668, 0xB05D, 0x7669, 0xB05E, 0x766A, 0xB05F, 0x766C, 0xB060, 0x766D, 0xB061, 0x766E, 0xB062, 0x7670, + 0xB063, 0x7671, 0xB064, 0x7672, 0xB065, 0x7673, 0xB066, 0x7674, 0xB067, 0x7675, 0xB068, 0x7676, 0xB069, 0x7677, 0xB06A, 0x7679, + 0xB06B, 0x767A, 0xB06C, 0x767C, 0xB06D, 0x767F, 0xB06E, 0x7680, 0xB06F, 0x7681, 0xB070, 0x7683, 0xB071, 0x7685, 0xB072, 0x7689, + 0xB073, 0x768A, 0xB074, 0x768C, 0xB075, 0x768D, 0xB076, 0x768F, 0xB077, 0x7690, 0xB078, 0x7692, 0xB079, 0x7694, 0xB07A, 0x7695, + 0xB07B, 0x7697, 0xB07C, 0x7698, 0xB07D, 0x769A, 0xB07E, 0x769B, 0xB080, 0x769C, 0xB081, 0x769D, 0xB082, 0x769E, 0xB083, 0x769F, + 0xB084, 0x76A0, 0xB085, 0x76A1, 0xB086, 0x76A2, 0xB087, 0x76A3, 0xB088, 0x76A5, 0xB089, 0x76A6, 0xB08A, 0x76A7, 0xB08B, 0x76A8, + 0xB08C, 0x76A9, 0xB08D, 0x76AA, 0xB08E, 0x76AB, 0xB08F, 0x76AC, 0xB090, 0x76AD, 0xB091, 0x76AF, 0xB092, 0x76B0, 0xB093, 0x76B3, + 0xB094, 0x76B5, 0xB095, 0x76B6, 0xB096, 0x76B7, 0xB097, 0x76B8, 0xB098, 0x76B9, 0xB099, 0x76BA, 0xB09A, 0x76BB, 0xB09B, 0x76BC, + 0xB09C, 0x76BD, 0xB09D, 0x76BE, 0xB09E, 0x76C0, 0xB09F, 0x76C1, 0xB0A0, 0x76C3, 0xB0A1, 0x554A, 0xB0A2, 0x963F, 0xB0A3, 0x57C3, + 0xB0A4, 0x6328, 0xB0A5, 0x54CE, 0xB0A6, 0x5509, 0xB0A7, 0x54C0, 0xB0A8, 0x7691, 0xB0A9, 0x764C, 0xB0AA, 0x853C, 0xB0AB, 0x77EE, + 0xB0AC, 0x827E, 0xB0AD, 0x788D, 0xB0AE, 0x7231, 0xB0AF, 0x9698, 0xB0B0, 0x978D, 0xB0B1, 0x6C28, 0xB0B2, 0x5B89, 0xB0B3, 0x4FFA, + 0xB0B4, 0x6309, 0xB0B5, 0x6697, 0xB0B6, 0x5CB8, 0xB0B7, 0x80FA, 0xB0B8, 0x6848, 0xB0B9, 0x80AE, 0xB0BA, 0x6602, 0xB0BB, 0x76CE, + 0xB0BC, 0x51F9, 0xB0BD, 0x6556, 0xB0BE, 0x71AC, 0xB0BF, 0x7FF1, 0xB0C0, 0x8884, 0xB0C1, 0x50B2, 0xB0C2, 0x5965, 0xB0C3, 0x61CA, + 0xB0C4, 0x6FB3, 0xB0C5, 0x82AD, 0xB0C6, 0x634C, 0xB0C7, 0x6252, 0xB0C8, 0x53ED, 0xB0C9, 0x5427, 0xB0CA, 0x7B06, 0xB0CB, 0x516B, + 0xB0CC, 0x75A4, 0xB0CD, 0x5DF4, 0xB0CE, 0x62D4, 0xB0CF, 0x8DCB, 0xB0D0, 0x9776, 0xB0D1, 0x628A, 0xB0D2, 0x8019, 0xB0D3, 0x575D, + 0xB0D4, 0x9738, 0xB0D5, 0x7F62, 0xB0D6, 0x7238, 0xB0D7, 0x767D, 0xB0D8, 0x67CF, 0xB0D9, 0x767E, 0xB0DA, 0x6446, 0xB0DB, 0x4F70, + 0xB0DC, 0x8D25, 0xB0DD, 0x62DC, 0xB0DE, 0x7A17, 0xB0DF, 0x6591, 0xB0E0, 0x73ED, 0xB0E1, 0x642C, 0xB0E2, 0x6273, 0xB0E3, 0x822C, + 0xB0E4, 0x9881, 0xB0E5, 0x677F, 0xB0E6, 0x7248, 0xB0E7, 0x626E, 0xB0E8, 0x62CC, 0xB0E9, 0x4F34, 0xB0EA, 0x74E3, 0xB0EB, 0x534A, + 0xB0EC, 0x529E, 0xB0ED, 0x7ECA, 0xB0EE, 0x90A6, 0xB0EF, 0x5E2E, 0xB0F0, 0x6886, 0xB0F1, 0x699C, 0xB0F2, 0x8180, 0xB0F3, 0x7ED1, + 0xB0F4, 0x68D2, 0xB0F5, 0x78C5, 0xB0F6, 0x868C, 0xB0F7, 0x9551, 0xB0F8, 0x508D, 0xB0F9, 0x8C24, 0xB0FA, 0x82DE, 0xB0FB, 0x80DE, + 0xB0FC, 0x5305, 0xB0FD, 0x8912, 0xB0FE, 0x5265, 0xB140, 0x76C4, 0xB141, 0x76C7, 0xB142, 0x76C9, 0xB143, 0x76CB, 0xB144, 0x76CC, + 0xB145, 0x76D3, 0xB146, 0x76D5, 0xB147, 0x76D9, 0xB148, 0x76DA, 0xB149, 0x76DC, 0xB14A, 0x76DD, 0xB14B, 0x76DE, 0xB14C, 0x76E0, + 0xB14D, 0x76E1, 0xB14E, 0x76E2, 0xB14F, 0x76E3, 0xB150, 0x76E4, 0xB151, 0x76E6, 0xB152, 0x76E7, 0xB153, 0x76E8, 0xB154, 0x76E9, + 0xB155, 0x76EA, 0xB156, 0x76EB, 0xB157, 0x76EC, 0xB158, 0x76ED, 0xB159, 0x76F0, 0xB15A, 0x76F3, 0xB15B, 0x76F5, 0xB15C, 0x76F6, + 0xB15D, 0x76F7, 0xB15E, 0x76FA, 0xB15F, 0x76FB, 0xB160, 0x76FD, 0xB161, 0x76FF, 0xB162, 0x7700, 0xB163, 0x7702, 0xB164, 0x7703, + 0xB165, 0x7705, 0xB166, 0x7706, 0xB167, 0x770A, 0xB168, 0x770C, 0xB169, 0x770E, 0xB16A, 0x770F, 0xB16B, 0x7710, 0xB16C, 0x7711, + 0xB16D, 0x7712, 0xB16E, 0x7713, 0xB16F, 0x7714, 0xB170, 0x7715, 0xB171, 0x7716, 0xB172, 0x7717, 0xB173, 0x7718, 0xB174, 0x771B, + 0xB175, 0x771C, 0xB176, 0x771D, 0xB177, 0x771E, 0xB178, 0x7721, 0xB179, 0x7723, 0xB17A, 0x7724, 0xB17B, 0x7725, 0xB17C, 0x7727, + 0xB17D, 0x772A, 0xB17E, 0x772B, 0xB180, 0x772C, 0xB181, 0x772E, 0xB182, 0x7730, 0xB183, 0x7731, 0xB184, 0x7732, 0xB185, 0x7733, + 0xB186, 0x7734, 0xB187, 0x7739, 0xB188, 0x773B, 0xB189, 0x773D, 0xB18A, 0x773E, 0xB18B, 0x773F, 0xB18C, 0x7742, 0xB18D, 0x7744, + 0xB18E, 0x7745, 0xB18F, 0x7746, 0xB190, 0x7748, 0xB191, 0x7749, 0xB192, 0x774A, 0xB193, 0x774B, 0xB194, 0x774C, 0xB195, 0x774D, + 0xB196, 0x774E, 0xB197, 0x774F, 0xB198, 0x7752, 0xB199, 0x7753, 0xB19A, 0x7754, 0xB19B, 0x7755, 0xB19C, 0x7756, 0xB19D, 0x7757, + 0xB19E, 0x7758, 0xB19F, 0x7759, 0xB1A0, 0x775C, 0xB1A1, 0x8584, 0xB1A2, 0x96F9, 0xB1A3, 0x4FDD, 0xB1A4, 0x5821, 0xB1A5, 0x9971, + 0xB1A6, 0x5B9D, 0xB1A7, 0x62B1, 0xB1A8, 0x62A5, 0xB1A9, 0x66B4, 0xB1AA, 0x8C79, 0xB1AB, 0x9C8D, 0xB1AC, 0x7206, 0xB1AD, 0x676F, + 0xB1AE, 0x7891, 0xB1AF, 0x60B2, 0xB1B0, 0x5351, 0xB1B1, 0x5317, 0xB1B2, 0x8F88, 0xB1B3, 0x80CC, 0xB1B4, 0x8D1D, 0xB1B5, 0x94A1, + 0xB1B6, 0x500D, 0xB1B7, 0x72C8, 0xB1B8, 0x5907, 0xB1B9, 0x60EB, 0xB1BA, 0x7119, 0xB1BB, 0x88AB, 0xB1BC, 0x5954, 0xB1BD, 0x82EF, + 0xB1BE, 0x672C, 0xB1BF, 0x7B28, 0xB1C0, 0x5D29, 0xB1C1, 0x7EF7, 0xB1C2, 0x752D, 0xB1C3, 0x6CF5, 0xB1C4, 0x8E66, 0xB1C5, 0x8FF8, + 0xB1C6, 0x903C, 0xB1C7, 0x9F3B, 0xB1C8, 0x6BD4, 0xB1C9, 0x9119, 0xB1CA, 0x7B14, 0xB1CB, 0x5F7C, 0xB1CC, 0x78A7, 0xB1CD, 0x84D6, + 0xB1CE, 0x853D, 0xB1CF, 0x6BD5, 0xB1D0, 0x6BD9, 0xB1D1, 0x6BD6, 0xB1D2, 0x5E01, 0xB1D3, 0x5E87, 0xB1D4, 0x75F9, 0xB1D5, 0x95ED, + 0xB1D6, 0x655D, 0xB1D7, 0x5F0A, 0xB1D8, 0x5FC5, 0xB1D9, 0x8F9F, 0xB1DA, 0x58C1, 0xB1DB, 0x81C2, 0xB1DC, 0x907F, 0xB1DD, 0x965B, + 0xB1DE, 0x97AD, 0xB1DF, 0x8FB9, 0xB1E0, 0x7F16, 0xB1E1, 0x8D2C, 0xB1E2, 0x6241, 0xB1E3, 0x4FBF, 0xB1E4, 0x53D8, 0xB1E5, 0x535E, + 0xB1E6, 0x8FA8, 0xB1E7, 0x8FA9, 0xB1E8, 0x8FAB, 0xB1E9, 0x904D, 0xB1EA, 0x6807, 0xB1EB, 0x5F6A, 0xB1EC, 0x8198, 0xB1ED, 0x8868, + 0xB1EE, 0x9CD6, 0xB1EF, 0x618B, 0xB1F0, 0x522B, 0xB1F1, 0x762A, 0xB1F2, 0x5F6C, 0xB1F3, 0x658C, 0xB1F4, 0x6FD2, 0xB1F5, 0x6EE8, + 0xB1F6, 0x5BBE, 0xB1F7, 0x6448, 0xB1F8, 0x5175, 0xB1F9, 0x51B0, 0xB1FA, 0x67C4, 0xB1FB, 0x4E19, 0xB1FC, 0x79C9, 0xB1FD, 0x997C, + 0xB1FE, 0x70B3, 0xB240, 0x775D, 0xB241, 0x775E, 0xB242, 0x775F, 0xB243, 0x7760, 0xB244, 0x7764, 0xB245, 0x7767, 0xB246, 0x7769, + 0xB247, 0x776A, 0xB248, 0x776D, 0xB249, 0x776E, 0xB24A, 0x776F, 0xB24B, 0x7770, 0xB24C, 0x7771, 0xB24D, 0x7772, 0xB24E, 0x7773, + 0xB24F, 0x7774, 0xB250, 0x7775, 0xB251, 0x7776, 0xB252, 0x7777, 0xB253, 0x7778, 0xB254, 0x777A, 0xB255, 0x777B, 0xB256, 0x777C, + 0xB257, 0x7781, 0xB258, 0x7782, 0xB259, 0x7783, 0xB25A, 0x7786, 0xB25B, 0x7787, 0xB25C, 0x7788, 0xB25D, 0x7789, 0xB25E, 0x778A, + 0xB25F, 0x778B, 0xB260, 0x778F, 0xB261, 0x7790, 0xB262, 0x7793, 0xB263, 0x7794, 0xB264, 0x7795, 0xB265, 0x7796, 0xB266, 0x7797, + 0xB267, 0x7798, 0xB268, 0x7799, 0xB269, 0x779A, 0xB26A, 0x779B, 0xB26B, 0x779C, 0xB26C, 0x779D, 0xB26D, 0x779E, 0xB26E, 0x77A1, + 0xB26F, 0x77A3, 0xB270, 0x77A4, 0xB271, 0x77A6, 0xB272, 0x77A8, 0xB273, 0x77AB, 0xB274, 0x77AD, 0xB275, 0x77AE, 0xB276, 0x77AF, + 0xB277, 0x77B1, 0xB278, 0x77B2, 0xB279, 0x77B4, 0xB27A, 0x77B6, 0xB27B, 0x77B7, 0xB27C, 0x77B8, 0xB27D, 0x77B9, 0xB27E, 0x77BA, + 0xB280, 0x77BC, 0xB281, 0x77BE, 0xB282, 0x77C0, 0xB283, 0x77C1, 0xB284, 0x77C2, 0xB285, 0x77C3, 0xB286, 0x77C4, 0xB287, 0x77C5, + 0xB288, 0x77C6, 0xB289, 0x77C7, 0xB28A, 0x77C8, 0xB28B, 0x77C9, 0xB28C, 0x77CA, 0xB28D, 0x77CB, 0xB28E, 0x77CC, 0xB28F, 0x77CE, + 0xB290, 0x77CF, 0xB291, 0x77D0, 0xB292, 0x77D1, 0xB293, 0x77D2, 0xB294, 0x77D3, 0xB295, 0x77D4, 0xB296, 0x77D5, 0xB297, 0x77D6, + 0xB298, 0x77D8, 0xB299, 0x77D9, 0xB29A, 0x77DA, 0xB29B, 0x77DD, 0xB29C, 0x77DE, 0xB29D, 0x77DF, 0xB29E, 0x77E0, 0xB29F, 0x77E1, + 0xB2A0, 0x77E4, 0xB2A1, 0x75C5, 0xB2A2, 0x5E76, 0xB2A3, 0x73BB, 0xB2A4, 0x83E0, 0xB2A5, 0x64AD, 0xB2A6, 0x62E8, 0xB2A7, 0x94B5, + 0xB2A8, 0x6CE2, 0xB2A9, 0x535A, 0xB2AA, 0x52C3, 0xB2AB, 0x640F, 0xB2AC, 0x94C2, 0xB2AD, 0x7B94, 0xB2AE, 0x4F2F, 0xB2AF, 0x5E1B, + 0xB2B0, 0x8236, 0xB2B1, 0x8116, 0xB2B2, 0x818A, 0xB2B3, 0x6E24, 0xB2B4, 0x6CCA, 0xB2B5, 0x9A73, 0xB2B6, 0x6355, 0xB2B7, 0x535C, + 0xB2B8, 0x54FA, 0xB2B9, 0x8865, 0xB2BA, 0x57E0, 0xB2BB, 0x4E0D, 0xB2BC, 0x5E03, 0xB2BD, 0x6B65, 0xB2BE, 0x7C3F, 0xB2BF, 0x90E8, + 0xB2C0, 0x6016, 0xB2C1, 0x64E6, 0xB2C2, 0x731C, 0xB2C3, 0x88C1, 0xB2C4, 0x6750, 0xB2C5, 0x624D, 0xB2C6, 0x8D22, 0xB2C7, 0x776C, + 0xB2C8, 0x8E29, 0xB2C9, 0x91C7, 0xB2CA, 0x5F69, 0xB2CB, 0x83DC, 0xB2CC, 0x8521, 0xB2CD, 0x9910, 0xB2CE, 0x53C2, 0xB2CF, 0x8695, + 0xB2D0, 0x6B8B, 0xB2D1, 0x60ED, 0xB2D2, 0x60E8, 0xB2D3, 0x707F, 0xB2D4, 0x82CD, 0xB2D5, 0x8231, 0xB2D6, 0x4ED3, 0xB2D7, 0x6CA7, + 0xB2D8, 0x85CF, 0xB2D9, 0x64CD, 0xB2DA, 0x7CD9, 0xB2DB, 0x69FD, 0xB2DC, 0x66F9, 0xB2DD, 0x8349, 0xB2DE, 0x5395, 0xB2DF, 0x7B56, + 0xB2E0, 0x4FA7, 0xB2E1, 0x518C, 0xB2E2, 0x6D4B, 0xB2E3, 0x5C42, 0xB2E4, 0x8E6D, 0xB2E5, 0x63D2, 0xB2E6, 0x53C9, 0xB2E7, 0x832C, + 0xB2E8, 0x8336, 0xB2E9, 0x67E5, 0xB2EA, 0x78B4, 0xB2EB, 0x643D, 0xB2EC, 0x5BDF, 0xB2ED, 0x5C94, 0xB2EE, 0x5DEE, 0xB2EF, 0x8BE7, + 0xB2F0, 0x62C6, 0xB2F1, 0x67F4, 0xB2F2, 0x8C7A, 0xB2F3, 0x6400, 0xB2F4, 0x63BA, 0xB2F5, 0x8749, 0xB2F6, 0x998B, 0xB2F7, 0x8C17, + 0xB2F8, 0x7F20, 0xB2F9, 0x94F2, 0xB2FA, 0x4EA7, 0xB2FB, 0x9610, 0xB2FC, 0x98A4, 0xB2FD, 0x660C, 0xB2FE, 0x7316, 0xB340, 0x77E6, + 0xB341, 0x77E8, 0xB342, 0x77EA, 0xB343, 0x77EF, 0xB344, 0x77F0, 0xB345, 0x77F1, 0xB346, 0x77F2, 0xB347, 0x77F4, 0xB348, 0x77F5, + 0xB349, 0x77F7, 0xB34A, 0x77F9, 0xB34B, 0x77FA, 0xB34C, 0x77FB, 0xB34D, 0x77FC, 0xB34E, 0x7803, 0xB34F, 0x7804, 0xB350, 0x7805, + 0xB351, 0x7806, 0xB352, 0x7807, 0xB353, 0x7808, 0xB354, 0x780A, 0xB355, 0x780B, 0xB356, 0x780E, 0xB357, 0x780F, 0xB358, 0x7810, + 0xB359, 0x7813, 0xB35A, 0x7815, 0xB35B, 0x7819, 0xB35C, 0x781B, 0xB35D, 0x781E, 0xB35E, 0x7820, 0xB35F, 0x7821, 0xB360, 0x7822, + 0xB361, 0x7824, 0xB362, 0x7828, 0xB363, 0x782A, 0xB364, 0x782B, 0xB365, 0x782E, 0xB366, 0x782F, 0xB367, 0x7831, 0xB368, 0x7832, + 0xB369, 0x7833, 0xB36A, 0x7835, 0xB36B, 0x7836, 0xB36C, 0x783D, 0xB36D, 0x783F, 0xB36E, 0x7841, 0xB36F, 0x7842, 0xB370, 0x7843, + 0xB371, 0x7844, 0xB372, 0x7846, 0xB373, 0x7848, 0xB374, 0x7849, 0xB375, 0x784A, 0xB376, 0x784B, 0xB377, 0x784D, 0xB378, 0x784F, + 0xB379, 0x7851, 0xB37A, 0x7853, 0xB37B, 0x7854, 0xB37C, 0x7858, 0xB37D, 0x7859, 0xB37E, 0x785A, 0xB380, 0x785B, 0xB381, 0x785C, + 0xB382, 0x785E, 0xB383, 0x785F, 0xB384, 0x7860, 0xB385, 0x7861, 0xB386, 0x7862, 0xB387, 0x7863, 0xB388, 0x7864, 0xB389, 0x7865, + 0xB38A, 0x7866, 0xB38B, 0x7867, 0xB38C, 0x7868, 0xB38D, 0x7869, 0xB38E, 0x786F, 0xB38F, 0x7870, 0xB390, 0x7871, 0xB391, 0x7872, + 0xB392, 0x7873, 0xB393, 0x7874, 0xB394, 0x7875, 0xB395, 0x7876, 0xB396, 0x7878, 0xB397, 0x7879, 0xB398, 0x787A, 0xB399, 0x787B, + 0xB39A, 0x787D, 0xB39B, 0x787E, 0xB39C, 0x787F, 0xB39D, 0x7880, 0xB39E, 0x7881, 0xB39F, 0x7882, 0xB3A0, 0x7883, 0xB3A1, 0x573A, + 0xB3A2, 0x5C1D, 0xB3A3, 0x5E38, 0xB3A4, 0x957F, 0xB3A5, 0x507F, 0xB3A6, 0x80A0, 0xB3A7, 0x5382, 0xB3A8, 0x655E, 0xB3A9, 0x7545, + 0xB3AA, 0x5531, 0xB3AB, 0x5021, 0xB3AC, 0x8D85, 0xB3AD, 0x6284, 0xB3AE, 0x949E, 0xB3AF, 0x671D, 0xB3B0, 0x5632, 0xB3B1, 0x6F6E, + 0xB3B2, 0x5DE2, 0xB3B3, 0x5435, 0xB3B4, 0x7092, 0xB3B5, 0x8F66, 0xB3B6, 0x626F, 0xB3B7, 0x64A4, 0xB3B8, 0x63A3, 0xB3B9, 0x5F7B, + 0xB3BA, 0x6F88, 0xB3BB, 0x90F4, 0xB3BC, 0x81E3, 0xB3BD, 0x8FB0, 0xB3BE, 0x5C18, 0xB3BF, 0x6668, 0xB3C0, 0x5FF1, 0xB3C1, 0x6C89, + 0xB3C2, 0x9648, 0xB3C3, 0x8D81, 0xB3C4, 0x886C, 0xB3C5, 0x6491, 0xB3C6, 0x79F0, 0xB3C7, 0x57CE, 0xB3C8, 0x6A59, 0xB3C9, 0x6210, + 0xB3CA, 0x5448, 0xB3CB, 0x4E58, 0xB3CC, 0x7A0B, 0xB3CD, 0x60E9, 0xB3CE, 0x6F84, 0xB3CF, 0x8BDA, 0xB3D0, 0x627F, 0xB3D1, 0x901E, + 0xB3D2, 0x9A8B, 0xB3D3, 0x79E4, 0xB3D4, 0x5403, 0xB3D5, 0x75F4, 0xB3D6, 0x6301, 0xB3D7, 0x5319, 0xB3D8, 0x6C60, 0xB3D9, 0x8FDF, + 0xB3DA, 0x5F1B, 0xB3DB, 0x9A70, 0xB3DC, 0x803B, 0xB3DD, 0x9F7F, 0xB3DE, 0x4F88, 0xB3DF, 0x5C3A, 0xB3E0, 0x8D64, 0xB3E1, 0x7FC5, + 0xB3E2, 0x65A5, 0xB3E3, 0x70BD, 0xB3E4, 0x5145, 0xB3E5, 0x51B2, 0xB3E6, 0x866B, 0xB3E7, 0x5D07, 0xB3E8, 0x5BA0, 0xB3E9, 0x62BD, + 0xB3EA, 0x916C, 0xB3EB, 0x7574, 0xB3EC, 0x8E0C, 0xB3ED, 0x7A20, 0xB3EE, 0x6101, 0xB3EF, 0x7B79, 0xB3F0, 0x4EC7, 0xB3F1, 0x7EF8, + 0xB3F2, 0x7785, 0xB3F3, 0x4E11, 0xB3F4, 0x81ED, 0xB3F5, 0x521D, 0xB3F6, 0x51FA, 0xB3F7, 0x6A71, 0xB3F8, 0x53A8, 0xB3F9, 0x8E87, + 0xB3FA, 0x9504, 0xB3FB, 0x96CF, 0xB3FC, 0x6EC1, 0xB3FD, 0x9664, 0xB3FE, 0x695A, 0xB440, 0x7884, 0xB441, 0x7885, 0xB442, 0x7886, + 0xB443, 0x7888, 0xB444, 0x788A, 0xB445, 0x788B, 0xB446, 0x788F, 0xB447, 0x7890, 0xB448, 0x7892, 0xB449, 0x7894, 0xB44A, 0x7895, + 0xB44B, 0x7896, 0xB44C, 0x7899, 0xB44D, 0x789D, 0xB44E, 0x789E, 0xB44F, 0x78A0, 0xB450, 0x78A2, 0xB451, 0x78A4, 0xB452, 0x78A6, + 0xB453, 0x78A8, 0xB454, 0x78A9, 0xB455, 0x78AA, 0xB456, 0x78AB, 0xB457, 0x78AC, 0xB458, 0x78AD, 0xB459, 0x78AE, 0xB45A, 0x78AF, + 0xB45B, 0x78B5, 0xB45C, 0x78B6, 0xB45D, 0x78B7, 0xB45E, 0x78B8, 0xB45F, 0x78BA, 0xB460, 0x78BB, 0xB461, 0x78BC, 0xB462, 0x78BD, + 0xB463, 0x78BF, 0xB464, 0x78C0, 0xB465, 0x78C2, 0xB466, 0x78C3, 0xB467, 0x78C4, 0xB468, 0x78C6, 0xB469, 0x78C7, 0xB46A, 0x78C8, + 0xB46B, 0x78CC, 0xB46C, 0x78CD, 0xB46D, 0x78CE, 0xB46E, 0x78CF, 0xB46F, 0x78D1, 0xB470, 0x78D2, 0xB471, 0x78D3, 0xB472, 0x78D6, + 0xB473, 0x78D7, 0xB474, 0x78D8, 0xB475, 0x78DA, 0xB476, 0x78DB, 0xB477, 0x78DC, 0xB478, 0x78DD, 0xB479, 0x78DE, 0xB47A, 0x78DF, + 0xB47B, 0x78E0, 0xB47C, 0x78E1, 0xB47D, 0x78E2, 0xB47E, 0x78E3, 0xB480, 0x78E4, 0xB481, 0x78E5, 0xB482, 0x78E6, 0xB483, 0x78E7, + 0xB484, 0x78E9, 0xB485, 0x78EA, 0xB486, 0x78EB, 0xB487, 0x78ED, 0xB488, 0x78EE, 0xB489, 0x78EF, 0xB48A, 0x78F0, 0xB48B, 0x78F1, + 0xB48C, 0x78F3, 0xB48D, 0x78F5, 0xB48E, 0x78F6, 0xB48F, 0x78F8, 0xB490, 0x78F9, 0xB491, 0x78FB, 0xB492, 0x78FC, 0xB493, 0x78FD, + 0xB494, 0x78FE, 0xB495, 0x78FF, 0xB496, 0x7900, 0xB497, 0x7902, 0xB498, 0x7903, 0xB499, 0x7904, 0xB49A, 0x7906, 0xB49B, 0x7907, + 0xB49C, 0x7908, 0xB49D, 0x7909, 0xB49E, 0x790A, 0xB49F, 0x790B, 0xB4A0, 0x790C, 0xB4A1, 0x7840, 0xB4A2, 0x50A8, 0xB4A3, 0x77D7, + 0xB4A4, 0x6410, 0xB4A5, 0x89E6, 0xB4A6, 0x5904, 0xB4A7, 0x63E3, 0xB4A8, 0x5DDD, 0xB4A9, 0x7A7F, 0xB4AA, 0x693D, 0xB4AB, 0x4F20, + 0xB4AC, 0x8239, 0xB4AD, 0x5598, 0xB4AE, 0x4E32, 0xB4AF, 0x75AE, 0xB4B0, 0x7A97, 0xB4B1, 0x5E62, 0xB4B2, 0x5E8A, 0xB4B3, 0x95EF, + 0xB4B4, 0x521B, 0xB4B5, 0x5439, 0xB4B6, 0x708A, 0xB4B7, 0x6376, 0xB4B8, 0x9524, 0xB4B9, 0x5782, 0xB4BA, 0x6625, 0xB4BB, 0x693F, + 0xB4BC, 0x9187, 0xB4BD, 0x5507, 0xB4BE, 0x6DF3, 0xB4BF, 0x7EAF, 0xB4C0, 0x8822, 0xB4C1, 0x6233, 0xB4C2, 0x7EF0, 0xB4C3, 0x75B5, + 0xB4C4, 0x8328, 0xB4C5, 0x78C1, 0xB4C6, 0x96CC, 0xB4C7, 0x8F9E, 0xB4C8, 0x6148, 0xB4C9, 0x74F7, 0xB4CA, 0x8BCD, 0xB4CB, 0x6B64, + 0xB4CC, 0x523A, 0xB4CD, 0x8D50, 0xB4CE, 0x6B21, 0xB4CF, 0x806A, 0xB4D0, 0x8471, 0xB4D1, 0x56F1, 0xB4D2, 0x5306, 0xB4D3, 0x4ECE, + 0xB4D4, 0x4E1B, 0xB4D5, 0x51D1, 0xB4D6, 0x7C97, 0xB4D7, 0x918B, 0xB4D8, 0x7C07, 0xB4D9, 0x4FC3, 0xB4DA, 0x8E7F, 0xB4DB, 0x7BE1, + 0xB4DC, 0x7A9C, 0xB4DD, 0x6467, 0xB4DE, 0x5D14, 0xB4DF, 0x50AC, 0xB4E0, 0x8106, 0xB4E1, 0x7601, 0xB4E2, 0x7CB9, 0xB4E3, 0x6DEC, + 0xB4E4, 0x7FE0, 0xB4E5, 0x6751, 0xB4E6, 0x5B58, 0xB4E7, 0x5BF8, 0xB4E8, 0x78CB, 0xB4E9, 0x64AE, 0xB4EA, 0x6413, 0xB4EB, 0x63AA, + 0xB4EC, 0x632B, 0xB4ED, 0x9519, 0xB4EE, 0x642D, 0xB4EF, 0x8FBE, 0xB4F0, 0x7B54, 0xB4F1, 0x7629, 0xB4F2, 0x6253, 0xB4F3, 0x5927, + 0xB4F4, 0x5446, 0xB4F5, 0x6B79, 0xB4F6, 0x50A3, 0xB4F7, 0x6234, 0xB4F8, 0x5E26, 0xB4F9, 0x6B86, 0xB4FA, 0x4EE3, 0xB4FB, 0x8D37, + 0xB4FC, 0x888B, 0xB4FD, 0x5F85, 0xB4FE, 0x902E, 0xB540, 0x790D, 0xB541, 0x790E, 0xB542, 0x790F, 0xB543, 0x7910, 0xB544, 0x7911, + 0xB545, 0x7912, 0xB546, 0x7914, 0xB547, 0x7915, 0xB548, 0x7916, 0xB549, 0x7917, 0xB54A, 0x7918, 0xB54B, 0x7919, 0xB54C, 0x791A, + 0xB54D, 0x791B, 0xB54E, 0x791C, 0xB54F, 0x791D, 0xB550, 0x791F, 0xB551, 0x7920, 0xB552, 0x7921, 0xB553, 0x7922, 0xB554, 0x7923, + 0xB555, 0x7925, 0xB556, 0x7926, 0xB557, 0x7927, 0xB558, 0x7928, 0xB559, 0x7929, 0xB55A, 0x792A, 0xB55B, 0x792B, 0xB55C, 0x792C, + 0xB55D, 0x792D, 0xB55E, 0x792E, 0xB55F, 0x792F, 0xB560, 0x7930, 0xB561, 0x7931, 0xB562, 0x7932, 0xB563, 0x7933, 0xB564, 0x7935, + 0xB565, 0x7936, 0xB566, 0x7937, 0xB567, 0x7938, 0xB568, 0x7939, 0xB569, 0x793D, 0xB56A, 0x793F, 0xB56B, 0x7942, 0xB56C, 0x7943, + 0xB56D, 0x7944, 0xB56E, 0x7945, 0xB56F, 0x7947, 0xB570, 0x794A, 0xB571, 0x794B, 0xB572, 0x794C, 0xB573, 0x794D, 0xB574, 0x794E, + 0xB575, 0x794F, 0xB576, 0x7950, 0xB577, 0x7951, 0xB578, 0x7952, 0xB579, 0x7954, 0xB57A, 0x7955, 0xB57B, 0x7958, 0xB57C, 0x7959, + 0xB57D, 0x7961, 0xB57E, 0x7963, 0xB580, 0x7964, 0xB581, 0x7966, 0xB582, 0x7969, 0xB583, 0x796A, 0xB584, 0x796B, 0xB585, 0x796C, + 0xB586, 0x796E, 0xB587, 0x7970, 0xB588, 0x7971, 0xB589, 0x7972, 0xB58A, 0x7973, 0xB58B, 0x7974, 0xB58C, 0x7975, 0xB58D, 0x7976, + 0xB58E, 0x7979, 0xB58F, 0x797B, 0xB590, 0x797C, 0xB591, 0x797D, 0xB592, 0x797E, 0xB593, 0x797F, 0xB594, 0x7982, 0xB595, 0x7983, + 0xB596, 0x7986, 0xB597, 0x7987, 0xB598, 0x7988, 0xB599, 0x7989, 0xB59A, 0x798B, 0xB59B, 0x798C, 0xB59C, 0x798D, 0xB59D, 0x798E, + 0xB59E, 0x7990, 0xB59F, 0x7991, 0xB5A0, 0x7992, 0xB5A1, 0x6020, 0xB5A2, 0x803D, 0xB5A3, 0x62C5, 0xB5A4, 0x4E39, 0xB5A5, 0x5355, + 0xB5A6, 0x90F8, 0xB5A7, 0x63B8, 0xB5A8, 0x80C6, 0xB5A9, 0x65E6, 0xB5AA, 0x6C2E, 0xB5AB, 0x4F46, 0xB5AC, 0x60EE, 0xB5AD, 0x6DE1, + 0xB5AE, 0x8BDE, 0xB5AF, 0x5F39, 0xB5B0, 0x86CB, 0xB5B1, 0x5F53, 0xB5B2, 0x6321, 0xB5B3, 0x515A, 0xB5B4, 0x8361, 0xB5B5, 0x6863, + 0xB5B6, 0x5200, 0xB5B7, 0x6363, 0xB5B8, 0x8E48, 0xB5B9, 0x5012, 0xB5BA, 0x5C9B, 0xB5BB, 0x7977, 0xB5BC, 0x5BFC, 0xB5BD, 0x5230, + 0xB5BE, 0x7A3B, 0xB5BF, 0x60BC, 0xB5C0, 0x9053, 0xB5C1, 0x76D7, 0xB5C2, 0x5FB7, 0xB5C3, 0x5F97, 0xB5C4, 0x7684, 0xB5C5, 0x8E6C, + 0xB5C6, 0x706F, 0xB5C7, 0x767B, 0xB5C8, 0x7B49, 0xB5C9, 0x77AA, 0xB5CA, 0x51F3, 0xB5CB, 0x9093, 0xB5CC, 0x5824, 0xB5CD, 0x4F4E, + 0xB5CE, 0x6EF4, 0xB5CF, 0x8FEA, 0xB5D0, 0x654C, 0xB5D1, 0x7B1B, 0xB5D2, 0x72C4, 0xB5D3, 0x6DA4, 0xB5D4, 0x7FDF, 0xB5D5, 0x5AE1, + 0xB5D6, 0x62B5, 0xB5D7, 0x5E95, 0xB5D8, 0x5730, 0xB5D9, 0x8482, 0xB5DA, 0x7B2C, 0xB5DB, 0x5E1D, 0xB5DC, 0x5F1F, 0xB5DD, 0x9012, + 0xB5DE, 0x7F14, 0xB5DF, 0x98A0, 0xB5E0, 0x6382, 0xB5E1, 0x6EC7, 0xB5E2, 0x7898, 0xB5E3, 0x70B9, 0xB5E4, 0x5178, 0xB5E5, 0x975B, + 0xB5E6, 0x57AB, 0xB5E7, 0x7535, 0xB5E8, 0x4F43, 0xB5E9, 0x7538, 0xB5EA, 0x5E97, 0xB5EB, 0x60E6, 0xB5EC, 0x5960, 0xB5ED, 0x6DC0, + 0xB5EE, 0x6BBF, 0xB5EF, 0x7889, 0xB5F0, 0x53FC, 0xB5F1, 0x96D5, 0xB5F2, 0x51CB, 0xB5F3, 0x5201, 0xB5F4, 0x6389, 0xB5F5, 0x540A, + 0xB5F6, 0x9493, 0xB5F7, 0x8C03, 0xB5F8, 0x8DCC, 0xB5F9, 0x7239, 0xB5FA, 0x789F, 0xB5FB, 0x8776, 0xB5FC, 0x8FED, 0xB5FD, 0x8C0D, + 0xB5FE, 0x53E0, 0xB640, 0x7993, 0xB641, 0x7994, 0xB642, 0x7995, 0xB643, 0x7996, 0xB644, 0x7997, 0xB645, 0x7998, 0xB646, 0x7999, + 0xB647, 0x799B, 0xB648, 0x799C, 0xB649, 0x799D, 0xB64A, 0x799E, 0xB64B, 0x799F, 0xB64C, 0x79A0, 0xB64D, 0x79A1, 0xB64E, 0x79A2, + 0xB64F, 0x79A3, 0xB650, 0x79A4, 0xB651, 0x79A5, 0xB652, 0x79A6, 0xB653, 0x79A8, 0xB654, 0x79A9, 0xB655, 0x79AA, 0xB656, 0x79AB, + 0xB657, 0x79AC, 0xB658, 0x79AD, 0xB659, 0x79AE, 0xB65A, 0x79AF, 0xB65B, 0x79B0, 0xB65C, 0x79B1, 0xB65D, 0x79B2, 0xB65E, 0x79B4, + 0xB65F, 0x79B5, 0xB660, 0x79B6, 0xB661, 0x79B7, 0xB662, 0x79B8, 0xB663, 0x79BC, 0xB664, 0x79BF, 0xB665, 0x79C2, 0xB666, 0x79C4, + 0xB667, 0x79C5, 0xB668, 0x79C7, 0xB669, 0x79C8, 0xB66A, 0x79CA, 0xB66B, 0x79CC, 0xB66C, 0x79CE, 0xB66D, 0x79CF, 0xB66E, 0x79D0, + 0xB66F, 0x79D3, 0xB670, 0x79D4, 0xB671, 0x79D6, 0xB672, 0x79D7, 0xB673, 0x79D9, 0xB674, 0x79DA, 0xB675, 0x79DB, 0xB676, 0x79DC, + 0xB677, 0x79DD, 0xB678, 0x79DE, 0xB679, 0x79E0, 0xB67A, 0x79E1, 0xB67B, 0x79E2, 0xB67C, 0x79E5, 0xB67D, 0x79E8, 0xB67E, 0x79EA, + 0xB680, 0x79EC, 0xB681, 0x79EE, 0xB682, 0x79F1, 0xB683, 0x79F2, 0xB684, 0x79F3, 0xB685, 0x79F4, 0xB686, 0x79F5, 0xB687, 0x79F6, + 0xB688, 0x79F7, 0xB689, 0x79F9, 0xB68A, 0x79FA, 0xB68B, 0x79FC, 0xB68C, 0x79FE, 0xB68D, 0x79FF, 0xB68E, 0x7A01, 0xB68F, 0x7A04, + 0xB690, 0x7A05, 0xB691, 0x7A07, 0xB692, 0x7A08, 0xB693, 0x7A09, 0xB694, 0x7A0A, 0xB695, 0x7A0C, 0xB696, 0x7A0F, 0xB697, 0x7A10, + 0xB698, 0x7A11, 0xB699, 0x7A12, 0xB69A, 0x7A13, 0xB69B, 0x7A15, 0xB69C, 0x7A16, 0xB69D, 0x7A18, 0xB69E, 0x7A19, 0xB69F, 0x7A1B, + 0xB6A0, 0x7A1C, 0xB6A1, 0x4E01, 0xB6A2, 0x76EF, 0xB6A3, 0x53EE, 0xB6A4, 0x9489, 0xB6A5, 0x9876, 0xB6A6, 0x9F0E, 0xB6A7, 0x952D, + 0xB6A8, 0x5B9A, 0xB6A9, 0x8BA2, 0xB6AA, 0x4E22, 0xB6AB, 0x4E1C, 0xB6AC, 0x51AC, 0xB6AD, 0x8463, 0xB6AE, 0x61C2, 0xB6AF, 0x52A8, + 0xB6B0, 0x680B, 0xB6B1, 0x4F97, 0xB6B2, 0x606B, 0xB6B3, 0x51BB, 0xB6B4, 0x6D1E, 0xB6B5, 0x515C, 0xB6B6, 0x6296, 0xB6B7, 0x6597, + 0xB6B8, 0x9661, 0xB6B9, 0x8C46, 0xB6BA, 0x9017, 0xB6BB, 0x75D8, 0xB6BC, 0x90FD, 0xB6BD, 0x7763, 0xB6BE, 0x6BD2, 0xB6BF, 0x728A, + 0xB6C0, 0x72EC, 0xB6C1, 0x8BFB, 0xB6C2, 0x5835, 0xB6C3, 0x7779, 0xB6C4, 0x8D4C, 0xB6C5, 0x675C, 0xB6C6, 0x9540, 0xB6C7, 0x809A, + 0xB6C8, 0x5EA6, 0xB6C9, 0x6E21, 0xB6CA, 0x5992, 0xB6CB, 0x7AEF, 0xB6CC, 0x77ED, 0xB6CD, 0x953B, 0xB6CE, 0x6BB5, 0xB6CF, 0x65AD, + 0xB6D0, 0x7F0E, 0xB6D1, 0x5806, 0xB6D2, 0x5151, 0xB6D3, 0x961F, 0xB6D4, 0x5BF9, 0xB6D5, 0x58A9, 0xB6D6, 0x5428, 0xB6D7, 0x8E72, + 0xB6D8, 0x6566, 0xB6D9, 0x987F, 0xB6DA, 0x56E4, 0xB6DB, 0x949D, 0xB6DC, 0x76FE, 0xB6DD, 0x9041, 0xB6DE, 0x6387, 0xB6DF, 0x54C6, + 0xB6E0, 0x591A, 0xB6E1, 0x593A, 0xB6E2, 0x579B, 0xB6E3, 0x8EB2, 0xB6E4, 0x6735, 0xB6E5, 0x8DFA, 0xB6E6, 0x8235, 0xB6E7, 0x5241, + 0xB6E8, 0x60F0, 0xB6E9, 0x5815, 0xB6EA, 0x86FE, 0xB6EB, 0x5CE8, 0xB6EC, 0x9E45, 0xB6ED, 0x4FC4, 0xB6EE, 0x989D, 0xB6EF, 0x8BB9, + 0xB6F0, 0x5A25, 0xB6F1, 0x6076, 0xB6F2, 0x5384, 0xB6F3, 0x627C, 0xB6F4, 0x904F, 0xB6F5, 0x9102, 0xB6F6, 0x997F, 0xB6F7, 0x6069, + 0xB6F8, 0x800C, 0xB6F9, 0x513F, 0xB6FA, 0x8033, 0xB6FB, 0x5C14, 0xB6FC, 0x9975, 0xB6FD, 0x6D31, 0xB6FE, 0x4E8C, 0xB740, 0x7A1D, + 0xB741, 0x7A1F, 0xB742, 0x7A21, 0xB743, 0x7A22, 0xB744, 0x7A24, 0xB745, 0x7A25, 0xB746, 0x7A26, 0xB747, 0x7A27, 0xB748, 0x7A28, + 0xB749, 0x7A29, 0xB74A, 0x7A2A, 0xB74B, 0x7A2B, 0xB74C, 0x7A2C, 0xB74D, 0x7A2D, 0xB74E, 0x7A2E, 0xB74F, 0x7A2F, 0xB750, 0x7A30, + 0xB751, 0x7A31, 0xB752, 0x7A32, 0xB753, 0x7A34, 0xB754, 0x7A35, 0xB755, 0x7A36, 0xB756, 0x7A38, 0xB757, 0x7A3A, 0xB758, 0x7A3E, + 0xB759, 0x7A40, 0xB75A, 0x7A41, 0xB75B, 0x7A42, 0xB75C, 0x7A43, 0xB75D, 0x7A44, 0xB75E, 0x7A45, 0xB75F, 0x7A47, 0xB760, 0x7A48, + 0xB761, 0x7A49, 0xB762, 0x7A4A, 0xB763, 0x7A4B, 0xB764, 0x7A4C, 0xB765, 0x7A4D, 0xB766, 0x7A4E, 0xB767, 0x7A4F, 0xB768, 0x7A50, + 0xB769, 0x7A52, 0xB76A, 0x7A53, 0xB76B, 0x7A54, 0xB76C, 0x7A55, 0xB76D, 0x7A56, 0xB76E, 0x7A58, 0xB76F, 0x7A59, 0xB770, 0x7A5A, + 0xB771, 0x7A5B, 0xB772, 0x7A5C, 0xB773, 0x7A5D, 0xB774, 0x7A5E, 0xB775, 0x7A5F, 0xB776, 0x7A60, 0xB777, 0x7A61, 0xB778, 0x7A62, + 0xB779, 0x7A63, 0xB77A, 0x7A64, 0xB77B, 0x7A65, 0xB77C, 0x7A66, 0xB77D, 0x7A67, 0xB77E, 0x7A68, 0xB780, 0x7A69, 0xB781, 0x7A6A, + 0xB782, 0x7A6B, 0xB783, 0x7A6C, 0xB784, 0x7A6D, 0xB785, 0x7A6E, 0xB786, 0x7A6F, 0xB787, 0x7A71, 0xB788, 0x7A72, 0xB789, 0x7A73, + 0xB78A, 0x7A75, 0xB78B, 0x7A7B, 0xB78C, 0x7A7C, 0xB78D, 0x7A7D, 0xB78E, 0x7A7E, 0xB78F, 0x7A82, 0xB790, 0x7A85, 0xB791, 0x7A87, + 0xB792, 0x7A89, 0xB793, 0x7A8A, 0xB794, 0x7A8B, 0xB795, 0x7A8C, 0xB796, 0x7A8E, 0xB797, 0x7A8F, 0xB798, 0x7A90, 0xB799, 0x7A93, + 0xB79A, 0x7A94, 0xB79B, 0x7A99, 0xB79C, 0x7A9A, 0xB79D, 0x7A9B, 0xB79E, 0x7A9E, 0xB79F, 0x7AA1, 0xB7A0, 0x7AA2, 0xB7A1, 0x8D30, + 0xB7A2, 0x53D1, 0xB7A3, 0x7F5A, 0xB7A4, 0x7B4F, 0xB7A5, 0x4F10, 0xB7A6, 0x4E4F, 0xB7A7, 0x9600, 0xB7A8, 0x6CD5, 0xB7A9, 0x73D0, + 0xB7AA, 0x85E9, 0xB7AB, 0x5E06, 0xB7AC, 0x756A, 0xB7AD, 0x7FFB, 0xB7AE, 0x6A0A, 0xB7AF, 0x77FE, 0xB7B0, 0x9492, 0xB7B1, 0x7E41, + 0xB7B2, 0x51E1, 0xB7B3, 0x70E6, 0xB7B4, 0x53CD, 0xB7B5, 0x8FD4, 0xB7B6, 0x8303, 0xB7B7, 0x8D29, 0xB7B8, 0x72AF, 0xB7B9, 0x996D, + 0xB7BA, 0x6CDB, 0xB7BB, 0x574A, 0xB7BC, 0x82B3, 0xB7BD, 0x65B9, 0xB7BE, 0x80AA, 0xB7BF, 0x623F, 0xB7C0, 0x9632, 0xB7C1, 0x59A8, + 0xB7C2, 0x4EFF, 0xB7C3, 0x8BBF, 0xB7C4, 0x7EBA, 0xB7C5, 0x653E, 0xB7C6, 0x83F2, 0xB7C7, 0x975E, 0xB7C8, 0x5561, 0xB7C9, 0x98DE, + 0xB7CA, 0x80A5, 0xB7CB, 0x532A, 0xB7CC, 0x8BFD, 0xB7CD, 0x5420, 0xB7CE, 0x80BA, 0xB7CF, 0x5E9F, 0xB7D0, 0x6CB8, 0xB7D1, 0x8D39, + 0xB7D2, 0x82AC, 0xB7D3, 0x915A, 0xB7D4, 0x5429, 0xB7D5, 0x6C1B, 0xB7D6, 0x5206, 0xB7D7, 0x7EB7, 0xB7D8, 0x575F, 0xB7D9, 0x711A, + 0xB7DA, 0x6C7E, 0xB7DB, 0x7C89, 0xB7DC, 0x594B, 0xB7DD, 0x4EFD, 0xB7DE, 0x5FFF, 0xB7DF, 0x6124, 0xB7E0, 0x7CAA, 0xB7E1, 0x4E30, + 0xB7E2, 0x5C01, 0xB7E3, 0x67AB, 0xB7E4, 0x8702, 0xB7E5, 0x5CF0, 0xB7E6, 0x950B, 0xB7E7, 0x98CE, 0xB7E8, 0x75AF, 0xB7E9, 0x70FD, + 0xB7EA, 0x9022, 0xB7EB, 0x51AF, 0xB7EC, 0x7F1D, 0xB7ED, 0x8BBD, 0xB7EE, 0x5949, 0xB7EF, 0x51E4, 0xB7F0, 0x4F5B, 0xB7F1, 0x5426, + 0xB7F2, 0x592B, 0xB7F3, 0x6577, 0xB7F4, 0x80A4, 0xB7F5, 0x5B75, 0xB7F6, 0x6276, 0xB7F7, 0x62C2, 0xB7F8, 0x8F90, 0xB7F9, 0x5E45, + 0xB7FA, 0x6C1F, 0xB7FB, 0x7B26, 0xB7FC, 0x4F0F, 0xB7FD, 0x4FD8, 0xB7FE, 0x670D, 0xB840, 0x7AA3, 0xB841, 0x7AA4, 0xB842, 0x7AA7, + 0xB843, 0x7AA9, 0xB844, 0x7AAA, 0xB845, 0x7AAB, 0xB846, 0x7AAE, 0xB847, 0x7AAF, 0xB848, 0x7AB0, 0xB849, 0x7AB1, 0xB84A, 0x7AB2, + 0xB84B, 0x7AB4, 0xB84C, 0x7AB5, 0xB84D, 0x7AB6, 0xB84E, 0x7AB7, 0xB84F, 0x7AB8, 0xB850, 0x7AB9, 0xB851, 0x7ABA, 0xB852, 0x7ABB, + 0xB853, 0x7ABC, 0xB854, 0x7ABD, 0xB855, 0x7ABE, 0xB856, 0x7AC0, 0xB857, 0x7AC1, 0xB858, 0x7AC2, 0xB859, 0x7AC3, 0xB85A, 0x7AC4, + 0xB85B, 0x7AC5, 0xB85C, 0x7AC6, 0xB85D, 0x7AC7, 0xB85E, 0x7AC8, 0xB85F, 0x7AC9, 0xB860, 0x7ACA, 0xB861, 0x7ACC, 0xB862, 0x7ACD, + 0xB863, 0x7ACE, 0xB864, 0x7ACF, 0xB865, 0x7AD0, 0xB866, 0x7AD1, 0xB867, 0x7AD2, 0xB868, 0x7AD3, 0xB869, 0x7AD4, 0xB86A, 0x7AD5, + 0xB86B, 0x7AD7, 0xB86C, 0x7AD8, 0xB86D, 0x7ADA, 0xB86E, 0x7ADB, 0xB86F, 0x7ADC, 0xB870, 0x7ADD, 0xB871, 0x7AE1, 0xB872, 0x7AE2, + 0xB873, 0x7AE4, 0xB874, 0x7AE7, 0xB875, 0x7AE8, 0xB876, 0x7AE9, 0xB877, 0x7AEA, 0xB878, 0x7AEB, 0xB879, 0x7AEC, 0xB87A, 0x7AEE, + 0xB87B, 0x7AF0, 0xB87C, 0x7AF1, 0xB87D, 0x7AF2, 0xB87E, 0x7AF3, 0xB880, 0x7AF4, 0xB881, 0x7AF5, 0xB882, 0x7AF6, 0xB883, 0x7AF7, + 0xB884, 0x7AF8, 0xB885, 0x7AFB, 0xB886, 0x7AFC, 0xB887, 0x7AFE, 0xB888, 0x7B00, 0xB889, 0x7B01, 0xB88A, 0x7B02, 0xB88B, 0x7B05, + 0xB88C, 0x7B07, 0xB88D, 0x7B09, 0xB88E, 0x7B0C, 0xB88F, 0x7B0D, 0xB890, 0x7B0E, 0xB891, 0x7B10, 0xB892, 0x7B12, 0xB893, 0x7B13, + 0xB894, 0x7B16, 0xB895, 0x7B17, 0xB896, 0x7B18, 0xB897, 0x7B1A, 0xB898, 0x7B1C, 0xB899, 0x7B1D, 0xB89A, 0x7B1F, 0xB89B, 0x7B21, + 0xB89C, 0x7B22, 0xB89D, 0x7B23, 0xB89E, 0x7B27, 0xB89F, 0x7B29, 0xB8A0, 0x7B2D, 0xB8A1, 0x6D6E, 0xB8A2, 0x6DAA, 0xB8A3, 0x798F, + 0xB8A4, 0x88B1, 0xB8A5, 0x5F17, 0xB8A6, 0x752B, 0xB8A7, 0x629A, 0xB8A8, 0x8F85, 0xB8A9, 0x4FEF, 0xB8AA, 0x91DC, 0xB8AB, 0x65A7, + 0xB8AC, 0x812F, 0xB8AD, 0x8151, 0xB8AE, 0x5E9C, 0xB8AF, 0x8150, 0xB8B0, 0x8D74, 0xB8B1, 0x526F, 0xB8B2, 0x8986, 0xB8B3, 0x8D4B, + 0xB8B4, 0x590D, 0xB8B5, 0x5085, 0xB8B6, 0x4ED8, 0xB8B7, 0x961C, 0xB8B8, 0x7236, 0xB8B9, 0x8179, 0xB8BA, 0x8D1F, 0xB8BB, 0x5BCC, + 0xB8BC, 0x8BA3, 0xB8BD, 0x9644, 0xB8BE, 0x5987, 0xB8BF, 0x7F1A, 0xB8C0, 0x5490, 0xB8C1, 0x5676, 0xB8C2, 0x560E, 0xB8C3, 0x8BE5, + 0xB8C4, 0x6539, 0xB8C5, 0x6982, 0xB8C6, 0x9499, 0xB8C7, 0x76D6, 0xB8C8, 0x6E89, 0xB8C9, 0x5E72, 0xB8CA, 0x7518, 0xB8CB, 0x6746, + 0xB8CC, 0x67D1, 0xB8CD, 0x7AFF, 0xB8CE, 0x809D, 0xB8CF, 0x8D76, 0xB8D0, 0x611F, 0xB8D1, 0x79C6, 0xB8D2, 0x6562, 0xB8D3, 0x8D63, + 0xB8D4, 0x5188, 0xB8D5, 0x521A, 0xB8D6, 0x94A2, 0xB8D7, 0x7F38, 0xB8D8, 0x809B, 0xB8D9, 0x7EB2, 0xB8DA, 0x5C97, 0xB8DB, 0x6E2F, + 0xB8DC, 0x6760, 0xB8DD, 0x7BD9, 0xB8DE, 0x768B, 0xB8DF, 0x9AD8, 0xB8E0, 0x818F, 0xB8E1, 0x7F94, 0xB8E2, 0x7CD5, 0xB8E3, 0x641E, + 0xB8E4, 0x9550, 0xB8E5, 0x7A3F, 0xB8E6, 0x544A, 0xB8E7, 0x54E5, 0xB8E8, 0x6B4C, 0xB8E9, 0x6401, 0xB8EA, 0x6208, 0xB8EB, 0x9E3D, + 0xB8EC, 0x80F3, 0xB8ED, 0x7599, 0xB8EE, 0x5272, 0xB8EF, 0x9769, 0xB8F0, 0x845B, 0xB8F1, 0x683C, 0xB8F2, 0x86E4, 0xB8F3, 0x9601, + 0xB8F4, 0x9694, 0xB8F5, 0x94EC, 0xB8F6, 0x4E2A, 0xB8F7, 0x5404, 0xB8F8, 0x7ED9, 0xB8F9, 0x6839, 0xB8FA, 0x8DDF, 0xB8FB, 0x8015, + 0xB8FC, 0x66F4, 0xB8FD, 0x5E9A, 0xB8FE, 0x7FB9, 0xB940, 0x7B2F, 0xB941, 0x7B30, 0xB942, 0x7B32, 0xB943, 0x7B34, 0xB944, 0x7B35, + 0xB945, 0x7B36, 0xB946, 0x7B37, 0xB947, 0x7B39, 0xB948, 0x7B3B, 0xB949, 0x7B3D, 0xB94A, 0x7B3F, 0xB94B, 0x7B40, 0xB94C, 0x7B41, + 0xB94D, 0x7B42, 0xB94E, 0x7B43, 0xB94F, 0x7B44, 0xB950, 0x7B46, 0xB951, 0x7B48, 0xB952, 0x7B4A, 0xB953, 0x7B4D, 0xB954, 0x7B4E, + 0xB955, 0x7B53, 0xB956, 0x7B55, 0xB957, 0x7B57, 0xB958, 0x7B59, 0xB959, 0x7B5C, 0xB95A, 0x7B5E, 0xB95B, 0x7B5F, 0xB95C, 0x7B61, + 0xB95D, 0x7B63, 0xB95E, 0x7B64, 0xB95F, 0x7B65, 0xB960, 0x7B66, 0xB961, 0x7B67, 0xB962, 0x7B68, 0xB963, 0x7B69, 0xB964, 0x7B6A, + 0xB965, 0x7B6B, 0xB966, 0x7B6C, 0xB967, 0x7B6D, 0xB968, 0x7B6F, 0xB969, 0x7B70, 0xB96A, 0x7B73, 0xB96B, 0x7B74, 0xB96C, 0x7B76, + 0xB96D, 0x7B78, 0xB96E, 0x7B7A, 0xB96F, 0x7B7C, 0xB970, 0x7B7D, 0xB971, 0x7B7F, 0xB972, 0x7B81, 0xB973, 0x7B82, 0xB974, 0x7B83, + 0xB975, 0x7B84, 0xB976, 0x7B86, 0xB977, 0x7B87, 0xB978, 0x7B88, 0xB979, 0x7B89, 0xB97A, 0x7B8A, 0xB97B, 0x7B8B, 0xB97C, 0x7B8C, + 0xB97D, 0x7B8E, 0xB97E, 0x7B8F, 0xB980, 0x7B91, 0xB981, 0x7B92, 0xB982, 0x7B93, 0xB983, 0x7B96, 0xB984, 0x7B98, 0xB985, 0x7B99, + 0xB986, 0x7B9A, 0xB987, 0x7B9B, 0xB988, 0x7B9E, 0xB989, 0x7B9F, 0xB98A, 0x7BA0, 0xB98B, 0x7BA3, 0xB98C, 0x7BA4, 0xB98D, 0x7BA5, + 0xB98E, 0x7BAE, 0xB98F, 0x7BAF, 0xB990, 0x7BB0, 0xB991, 0x7BB2, 0xB992, 0x7BB3, 0xB993, 0x7BB5, 0xB994, 0x7BB6, 0xB995, 0x7BB7, + 0xB996, 0x7BB9, 0xB997, 0x7BBA, 0xB998, 0x7BBB, 0xB999, 0x7BBC, 0xB99A, 0x7BBD, 0xB99B, 0x7BBE, 0xB99C, 0x7BBF, 0xB99D, 0x7BC0, + 0xB99E, 0x7BC2, 0xB99F, 0x7BC3, 0xB9A0, 0x7BC4, 0xB9A1, 0x57C2, 0xB9A2, 0x803F, 0xB9A3, 0x6897, 0xB9A4, 0x5DE5, 0xB9A5, 0x653B, + 0xB9A6, 0x529F, 0xB9A7, 0x606D, 0xB9A8, 0x9F9A, 0xB9A9, 0x4F9B, 0xB9AA, 0x8EAC, 0xB9AB, 0x516C, 0xB9AC, 0x5BAB, 0xB9AD, 0x5F13, + 0xB9AE, 0x5DE9, 0xB9AF, 0x6C5E, 0xB9B0, 0x62F1, 0xB9B1, 0x8D21, 0xB9B2, 0x5171, 0xB9B3, 0x94A9, 0xB9B4, 0x52FE, 0xB9B5, 0x6C9F, + 0xB9B6, 0x82DF, 0xB9B7, 0x72D7, 0xB9B8, 0x57A2, 0xB9B9, 0x6784, 0xB9BA, 0x8D2D, 0xB9BB, 0x591F, 0xB9BC, 0x8F9C, 0xB9BD, 0x83C7, + 0xB9BE, 0x5495, 0xB9BF, 0x7B8D, 0xB9C0, 0x4F30, 0xB9C1, 0x6CBD, 0xB9C2, 0x5B64, 0xB9C3, 0x59D1, 0xB9C4, 0x9F13, 0xB9C5, 0x53E4, + 0xB9C6, 0x86CA, 0xB9C7, 0x9AA8, 0xB9C8, 0x8C37, 0xB9C9, 0x80A1, 0xB9CA, 0x6545, 0xB9CB, 0x987E, 0xB9CC, 0x56FA, 0xB9CD, 0x96C7, + 0xB9CE, 0x522E, 0xB9CF, 0x74DC, 0xB9D0, 0x5250, 0xB9D1, 0x5BE1, 0xB9D2, 0x6302, 0xB9D3, 0x8902, 0xB9D4, 0x4E56, 0xB9D5, 0x62D0, + 0xB9D6, 0x602A, 0xB9D7, 0x68FA, 0xB9D8, 0x5173, 0xB9D9, 0x5B98, 0xB9DA, 0x51A0, 0xB9DB, 0x89C2, 0xB9DC, 0x7BA1, 0xB9DD, 0x9986, + 0xB9DE, 0x7F50, 0xB9DF, 0x60EF, 0xB9E0, 0x704C, 0xB9E1, 0x8D2F, 0xB9E2, 0x5149, 0xB9E3, 0x5E7F, 0xB9E4, 0x901B, 0xB9E5, 0x7470, + 0xB9E6, 0x89C4, 0xB9E7, 0x572D, 0xB9E8, 0x7845, 0xB9E9, 0x5F52, 0xB9EA, 0x9F9F, 0xB9EB, 0x95FA, 0xB9EC, 0x8F68, 0xB9ED, 0x9B3C, + 0xB9EE, 0x8BE1, 0xB9EF, 0x7678, 0xB9F0, 0x6842, 0xB9F1, 0x67DC, 0xB9F2, 0x8DEA, 0xB9F3, 0x8D35, 0xB9F4, 0x523D, 0xB9F5, 0x8F8A, + 0xB9F6, 0x6EDA, 0xB9F7, 0x68CD, 0xB9F8, 0x9505, 0xB9F9, 0x90ED, 0xB9FA, 0x56FD, 0xB9FB, 0x679C, 0xB9FC, 0x88F9, 0xB9FD, 0x8FC7, + 0xB9FE, 0x54C8, 0xBA40, 0x7BC5, 0xBA41, 0x7BC8, 0xBA42, 0x7BC9, 0xBA43, 0x7BCA, 0xBA44, 0x7BCB, 0xBA45, 0x7BCD, 0xBA46, 0x7BCE, + 0xBA47, 0x7BCF, 0xBA48, 0x7BD0, 0xBA49, 0x7BD2, 0xBA4A, 0x7BD4, 0xBA4B, 0x7BD5, 0xBA4C, 0x7BD6, 0xBA4D, 0x7BD7, 0xBA4E, 0x7BD8, + 0xBA4F, 0x7BDB, 0xBA50, 0x7BDC, 0xBA51, 0x7BDE, 0xBA52, 0x7BDF, 0xBA53, 0x7BE0, 0xBA54, 0x7BE2, 0xBA55, 0x7BE3, 0xBA56, 0x7BE4, + 0xBA57, 0x7BE7, 0xBA58, 0x7BE8, 0xBA59, 0x7BE9, 0xBA5A, 0x7BEB, 0xBA5B, 0x7BEC, 0xBA5C, 0x7BED, 0xBA5D, 0x7BEF, 0xBA5E, 0x7BF0, + 0xBA5F, 0x7BF2, 0xBA60, 0x7BF3, 0xBA61, 0x7BF4, 0xBA62, 0x7BF5, 0xBA63, 0x7BF6, 0xBA64, 0x7BF8, 0xBA65, 0x7BF9, 0xBA66, 0x7BFA, + 0xBA67, 0x7BFB, 0xBA68, 0x7BFD, 0xBA69, 0x7BFF, 0xBA6A, 0x7C00, 0xBA6B, 0x7C01, 0xBA6C, 0x7C02, 0xBA6D, 0x7C03, 0xBA6E, 0x7C04, + 0xBA6F, 0x7C05, 0xBA70, 0x7C06, 0xBA71, 0x7C08, 0xBA72, 0x7C09, 0xBA73, 0x7C0A, 0xBA74, 0x7C0D, 0xBA75, 0x7C0E, 0xBA76, 0x7C10, + 0xBA77, 0x7C11, 0xBA78, 0x7C12, 0xBA79, 0x7C13, 0xBA7A, 0x7C14, 0xBA7B, 0x7C15, 0xBA7C, 0x7C17, 0xBA7D, 0x7C18, 0xBA7E, 0x7C19, + 0xBA80, 0x7C1A, 0xBA81, 0x7C1B, 0xBA82, 0x7C1C, 0xBA83, 0x7C1D, 0xBA84, 0x7C1E, 0xBA85, 0x7C20, 0xBA86, 0x7C21, 0xBA87, 0x7C22, + 0xBA88, 0x7C23, 0xBA89, 0x7C24, 0xBA8A, 0x7C25, 0xBA8B, 0x7C28, 0xBA8C, 0x7C29, 0xBA8D, 0x7C2B, 0xBA8E, 0x7C2C, 0xBA8F, 0x7C2D, + 0xBA90, 0x7C2E, 0xBA91, 0x7C2F, 0xBA92, 0x7C30, 0xBA93, 0x7C31, 0xBA94, 0x7C32, 0xBA95, 0x7C33, 0xBA96, 0x7C34, 0xBA97, 0x7C35, + 0xBA98, 0x7C36, 0xBA99, 0x7C37, 0xBA9A, 0x7C39, 0xBA9B, 0x7C3A, 0xBA9C, 0x7C3B, 0xBA9D, 0x7C3C, 0xBA9E, 0x7C3D, 0xBA9F, 0x7C3E, + 0xBAA0, 0x7C42, 0xBAA1, 0x9AB8, 0xBAA2, 0x5B69, 0xBAA3, 0x6D77, 0xBAA4, 0x6C26, 0xBAA5, 0x4EA5, 0xBAA6, 0x5BB3, 0xBAA7, 0x9A87, + 0xBAA8, 0x9163, 0xBAA9, 0x61A8, 0xBAAA, 0x90AF, 0xBAAB, 0x97E9, 0xBAAC, 0x542B, 0xBAAD, 0x6DB5, 0xBAAE, 0x5BD2, 0xBAAF, 0x51FD, + 0xBAB0, 0x558A, 0xBAB1, 0x7F55, 0xBAB2, 0x7FF0, 0xBAB3, 0x64BC, 0xBAB4, 0x634D, 0xBAB5, 0x65F1, 0xBAB6, 0x61BE, 0xBAB7, 0x608D, + 0xBAB8, 0x710A, 0xBAB9, 0x6C57, 0xBABA, 0x6C49, 0xBABB, 0x592F, 0xBABC, 0x676D, 0xBABD, 0x822A, 0xBABE, 0x58D5, 0xBABF, 0x568E, + 0xBAC0, 0x8C6A, 0xBAC1, 0x6BEB, 0xBAC2, 0x90DD, 0xBAC3, 0x597D, 0xBAC4, 0x8017, 0xBAC5, 0x53F7, 0xBAC6, 0x6D69, 0xBAC7, 0x5475, + 0xBAC8, 0x559D, 0xBAC9, 0x8377, 0xBACA, 0x83CF, 0xBACB, 0x6838, 0xBACC, 0x79BE, 0xBACD, 0x548C, 0xBACE, 0x4F55, 0xBACF, 0x5408, + 0xBAD0, 0x76D2, 0xBAD1, 0x8C89, 0xBAD2, 0x9602, 0xBAD3, 0x6CB3, 0xBAD4, 0x6DB8, 0xBAD5, 0x8D6B, 0xBAD6, 0x8910, 0xBAD7, 0x9E64, + 0xBAD8, 0x8D3A, 0xBAD9, 0x563F, 0xBADA, 0x9ED1, 0xBADB, 0x75D5, 0xBADC, 0x5F88, 0xBADD, 0x72E0, 0xBADE, 0x6068, 0xBADF, 0x54FC, + 0xBAE0, 0x4EA8, 0xBAE1, 0x6A2A, 0xBAE2, 0x8861, 0xBAE3, 0x6052, 0xBAE4, 0x8F70, 0xBAE5, 0x54C4, 0xBAE6, 0x70D8, 0xBAE7, 0x8679, + 0xBAE8, 0x9E3F, 0xBAE9, 0x6D2A, 0xBAEA, 0x5B8F, 0xBAEB, 0x5F18, 0xBAEC, 0x7EA2, 0xBAED, 0x5589, 0xBAEE, 0x4FAF, 0xBAEF, 0x7334, + 0xBAF0, 0x543C, 0xBAF1, 0x539A, 0xBAF2, 0x5019, 0xBAF3, 0x540E, 0xBAF4, 0x547C, 0xBAF5, 0x4E4E, 0xBAF6, 0x5FFD, 0xBAF7, 0x745A, + 0xBAF8, 0x58F6, 0xBAF9, 0x846B, 0xBAFA, 0x80E1, 0xBAFB, 0x8774, 0xBAFC, 0x72D0, 0xBAFD, 0x7CCA, 0xBAFE, 0x6E56, 0xBB40, 0x7C43, + 0xBB41, 0x7C44, 0xBB42, 0x7C45, 0xBB43, 0x7C46, 0xBB44, 0x7C47, 0xBB45, 0x7C48, 0xBB46, 0x7C49, 0xBB47, 0x7C4A, 0xBB48, 0x7C4B, + 0xBB49, 0x7C4C, 0xBB4A, 0x7C4E, 0xBB4B, 0x7C4F, 0xBB4C, 0x7C50, 0xBB4D, 0x7C51, 0xBB4E, 0x7C52, 0xBB4F, 0x7C53, 0xBB50, 0x7C54, + 0xBB51, 0x7C55, 0xBB52, 0x7C56, 0xBB53, 0x7C57, 0xBB54, 0x7C58, 0xBB55, 0x7C59, 0xBB56, 0x7C5A, 0xBB57, 0x7C5B, 0xBB58, 0x7C5C, + 0xBB59, 0x7C5D, 0xBB5A, 0x7C5E, 0xBB5B, 0x7C5F, 0xBB5C, 0x7C60, 0xBB5D, 0x7C61, 0xBB5E, 0x7C62, 0xBB5F, 0x7C63, 0xBB60, 0x7C64, + 0xBB61, 0x7C65, 0xBB62, 0x7C66, 0xBB63, 0x7C67, 0xBB64, 0x7C68, 0xBB65, 0x7C69, 0xBB66, 0x7C6A, 0xBB67, 0x7C6B, 0xBB68, 0x7C6C, + 0xBB69, 0x7C6D, 0xBB6A, 0x7C6E, 0xBB6B, 0x7C6F, 0xBB6C, 0x7C70, 0xBB6D, 0x7C71, 0xBB6E, 0x7C72, 0xBB6F, 0x7C75, 0xBB70, 0x7C76, + 0xBB71, 0x7C77, 0xBB72, 0x7C78, 0xBB73, 0x7C79, 0xBB74, 0x7C7A, 0xBB75, 0x7C7E, 0xBB76, 0x7C7F, 0xBB77, 0x7C80, 0xBB78, 0x7C81, + 0xBB79, 0x7C82, 0xBB7A, 0x7C83, 0xBB7B, 0x7C84, 0xBB7C, 0x7C85, 0xBB7D, 0x7C86, 0xBB7E, 0x7C87, 0xBB80, 0x7C88, 0xBB81, 0x7C8A, + 0xBB82, 0x7C8B, 0xBB83, 0x7C8C, 0xBB84, 0x7C8D, 0xBB85, 0x7C8E, 0xBB86, 0x7C8F, 0xBB87, 0x7C90, 0xBB88, 0x7C93, 0xBB89, 0x7C94, + 0xBB8A, 0x7C96, 0xBB8B, 0x7C99, 0xBB8C, 0x7C9A, 0xBB8D, 0x7C9B, 0xBB8E, 0x7CA0, 0xBB8F, 0x7CA1, 0xBB90, 0x7CA3, 0xBB91, 0x7CA6, + 0xBB92, 0x7CA7, 0xBB93, 0x7CA8, 0xBB94, 0x7CA9, 0xBB95, 0x7CAB, 0xBB96, 0x7CAC, 0xBB97, 0x7CAD, 0xBB98, 0x7CAF, 0xBB99, 0x7CB0, + 0xBB9A, 0x7CB4, 0xBB9B, 0x7CB5, 0xBB9C, 0x7CB6, 0xBB9D, 0x7CB7, 0xBB9E, 0x7CB8, 0xBB9F, 0x7CBA, 0xBBA0, 0x7CBB, 0xBBA1, 0x5F27, + 0xBBA2, 0x864E, 0xBBA3, 0x552C, 0xBBA4, 0x62A4, 0xBBA5, 0x4E92, 0xBBA6, 0x6CAA, 0xBBA7, 0x6237, 0xBBA8, 0x82B1, 0xBBA9, 0x54D7, + 0xBBAA, 0x534E, 0xBBAB, 0x733E, 0xBBAC, 0x6ED1, 0xBBAD, 0x753B, 0xBBAE, 0x5212, 0xBBAF, 0x5316, 0xBBB0, 0x8BDD, 0xBBB1, 0x69D0, + 0xBBB2, 0x5F8A, 0xBBB3, 0x6000, 0xBBB4, 0x6DEE, 0xBBB5, 0x574F, 0xBBB6, 0x6B22, 0xBBB7, 0x73AF, 0xBBB8, 0x6853, 0xBBB9, 0x8FD8, + 0xBBBA, 0x7F13, 0xBBBB, 0x6362, 0xBBBC, 0x60A3, 0xBBBD, 0x5524, 0xBBBE, 0x75EA, 0xBBBF, 0x8C62, 0xBBC0, 0x7115, 0xBBC1, 0x6DA3, + 0xBBC2, 0x5BA6, 0xBBC3, 0x5E7B, 0xBBC4, 0x8352, 0xBBC5, 0x614C, 0xBBC6, 0x9EC4, 0xBBC7, 0x78FA, 0xBBC8, 0x8757, 0xBBC9, 0x7C27, + 0xBBCA, 0x7687, 0xBBCB, 0x51F0, 0xBBCC, 0x60F6, 0xBBCD, 0x714C, 0xBBCE, 0x6643, 0xBBCF, 0x5E4C, 0xBBD0, 0x604D, 0xBBD1, 0x8C0E, + 0xBBD2, 0x7070, 0xBBD3, 0x6325, 0xBBD4, 0x8F89, 0xBBD5, 0x5FBD, 0xBBD6, 0x6062, 0xBBD7, 0x86D4, 0xBBD8, 0x56DE, 0xBBD9, 0x6BC1, + 0xBBDA, 0x6094, 0xBBDB, 0x6167, 0xBBDC, 0x5349, 0xBBDD, 0x60E0, 0xBBDE, 0x6666, 0xBBDF, 0x8D3F, 0xBBE0, 0x79FD, 0xBBE1, 0x4F1A, + 0xBBE2, 0x70E9, 0xBBE3, 0x6C47, 0xBBE4, 0x8BB3, 0xBBE5, 0x8BF2, 0xBBE6, 0x7ED8, 0xBBE7, 0x8364, 0xBBE8, 0x660F, 0xBBE9, 0x5A5A, + 0xBBEA, 0x9B42, 0xBBEB, 0x6D51, 0xBBEC, 0x6DF7, 0xBBED, 0x8C41, 0xBBEE, 0x6D3B, 0xBBEF, 0x4F19, 0xBBF0, 0x706B, 0xBBF1, 0x83B7, + 0xBBF2, 0x6216, 0xBBF3, 0x60D1, 0xBBF4, 0x970D, 0xBBF5, 0x8D27, 0xBBF6, 0x7978, 0xBBF7, 0x51FB, 0xBBF8, 0x573E, 0xBBF9, 0x57FA, + 0xBBFA, 0x673A, 0xBBFB, 0x7578, 0xBBFC, 0x7A3D, 0xBBFD, 0x79EF, 0xBBFE, 0x7B95, 0xBC40, 0x7CBF, 0xBC41, 0x7CC0, 0xBC42, 0x7CC2, + 0xBC43, 0x7CC3, 0xBC44, 0x7CC4, 0xBC45, 0x7CC6, 0xBC46, 0x7CC9, 0xBC47, 0x7CCB, 0xBC48, 0x7CCE, 0xBC49, 0x7CCF, 0xBC4A, 0x7CD0, + 0xBC4B, 0x7CD1, 0xBC4C, 0x7CD2, 0xBC4D, 0x7CD3, 0xBC4E, 0x7CD4, 0xBC4F, 0x7CD8, 0xBC50, 0x7CDA, 0xBC51, 0x7CDB, 0xBC52, 0x7CDD, + 0xBC53, 0x7CDE, 0xBC54, 0x7CE1, 0xBC55, 0x7CE2, 0xBC56, 0x7CE3, 0xBC57, 0x7CE4, 0xBC58, 0x7CE5, 0xBC59, 0x7CE6, 0xBC5A, 0x7CE7, + 0xBC5B, 0x7CE9, 0xBC5C, 0x7CEA, 0xBC5D, 0x7CEB, 0xBC5E, 0x7CEC, 0xBC5F, 0x7CED, 0xBC60, 0x7CEE, 0xBC61, 0x7CF0, 0xBC62, 0x7CF1, + 0xBC63, 0x7CF2, 0xBC64, 0x7CF3, 0xBC65, 0x7CF4, 0xBC66, 0x7CF5, 0xBC67, 0x7CF6, 0xBC68, 0x7CF7, 0xBC69, 0x7CF9, 0xBC6A, 0x7CFA, + 0xBC6B, 0x7CFC, 0xBC6C, 0x7CFD, 0xBC6D, 0x7CFE, 0xBC6E, 0x7CFF, 0xBC6F, 0x7D00, 0xBC70, 0x7D01, 0xBC71, 0x7D02, 0xBC72, 0x7D03, + 0xBC73, 0x7D04, 0xBC74, 0x7D05, 0xBC75, 0x7D06, 0xBC76, 0x7D07, 0xBC77, 0x7D08, 0xBC78, 0x7D09, 0xBC79, 0x7D0B, 0xBC7A, 0x7D0C, + 0xBC7B, 0x7D0D, 0xBC7C, 0x7D0E, 0xBC7D, 0x7D0F, 0xBC7E, 0x7D10, 0xBC80, 0x7D11, 0xBC81, 0x7D12, 0xBC82, 0x7D13, 0xBC83, 0x7D14, + 0xBC84, 0x7D15, 0xBC85, 0x7D16, 0xBC86, 0x7D17, 0xBC87, 0x7D18, 0xBC88, 0x7D19, 0xBC89, 0x7D1A, 0xBC8A, 0x7D1B, 0xBC8B, 0x7D1C, + 0xBC8C, 0x7D1D, 0xBC8D, 0x7D1E, 0xBC8E, 0x7D1F, 0xBC8F, 0x7D21, 0xBC90, 0x7D23, 0xBC91, 0x7D24, 0xBC92, 0x7D25, 0xBC93, 0x7D26, + 0xBC94, 0x7D28, 0xBC95, 0x7D29, 0xBC96, 0x7D2A, 0xBC97, 0x7D2C, 0xBC98, 0x7D2D, 0xBC99, 0x7D2E, 0xBC9A, 0x7D30, 0xBC9B, 0x7D31, + 0xBC9C, 0x7D32, 0xBC9D, 0x7D33, 0xBC9E, 0x7D34, 0xBC9F, 0x7D35, 0xBCA0, 0x7D36, 0xBCA1, 0x808C, 0xBCA2, 0x9965, 0xBCA3, 0x8FF9, + 0xBCA4, 0x6FC0, 0xBCA5, 0x8BA5, 0xBCA6, 0x9E21, 0xBCA7, 0x59EC, 0xBCA8, 0x7EE9, 0xBCA9, 0x7F09, 0xBCAA, 0x5409, 0xBCAB, 0x6781, + 0xBCAC, 0x68D8, 0xBCAD, 0x8F91, 0xBCAE, 0x7C4D, 0xBCAF, 0x96C6, 0xBCB0, 0x53CA, 0xBCB1, 0x6025, 0xBCB2, 0x75BE, 0xBCB3, 0x6C72, + 0xBCB4, 0x5373, 0xBCB5, 0x5AC9, 0xBCB6, 0x7EA7, 0xBCB7, 0x6324, 0xBCB8, 0x51E0, 0xBCB9, 0x810A, 0xBCBA, 0x5DF1, 0xBCBB, 0x84DF, + 0xBCBC, 0x6280, 0xBCBD, 0x5180, 0xBCBE, 0x5B63, 0xBCBF, 0x4F0E, 0xBCC0, 0x796D, 0xBCC1, 0x5242, 0xBCC2, 0x60B8, 0xBCC3, 0x6D4E, + 0xBCC4, 0x5BC4, 0xBCC5, 0x5BC2, 0xBCC6, 0x8BA1, 0xBCC7, 0x8BB0, 0xBCC8, 0x65E2, 0xBCC9, 0x5FCC, 0xBCCA, 0x9645, 0xBCCB, 0x5993, + 0xBCCC, 0x7EE7, 0xBCCD, 0x7EAA, 0xBCCE, 0x5609, 0xBCCF, 0x67B7, 0xBCD0, 0x5939, 0xBCD1, 0x4F73, 0xBCD2, 0x5BB6, 0xBCD3, 0x52A0, + 0xBCD4, 0x835A, 0xBCD5, 0x988A, 0xBCD6, 0x8D3E, 0xBCD7, 0x7532, 0xBCD8, 0x94BE, 0xBCD9, 0x5047, 0xBCDA, 0x7A3C, 0xBCDB, 0x4EF7, + 0xBCDC, 0x67B6, 0xBCDD, 0x9A7E, 0xBCDE, 0x5AC1, 0xBCDF, 0x6B7C, 0xBCE0, 0x76D1, 0xBCE1, 0x575A, 0xBCE2, 0x5C16, 0xBCE3, 0x7B3A, + 0xBCE4, 0x95F4, 0xBCE5, 0x714E, 0xBCE6, 0x517C, 0xBCE7, 0x80A9, 0xBCE8, 0x8270, 0xBCE9, 0x5978, 0xBCEA, 0x7F04, 0xBCEB, 0x8327, + 0xBCEC, 0x68C0, 0xBCED, 0x67EC, 0xBCEE, 0x78B1, 0xBCEF, 0x7877, 0xBCF0, 0x62E3, 0xBCF1, 0x6361, 0xBCF2, 0x7B80, 0xBCF3, 0x4FED, + 0xBCF4, 0x526A, 0xBCF5, 0x51CF, 0xBCF6, 0x8350, 0xBCF7, 0x69DB, 0xBCF8, 0x9274, 0xBCF9, 0x8DF5, 0xBCFA, 0x8D31, 0xBCFB, 0x89C1, + 0xBCFC, 0x952E, 0xBCFD, 0x7BAD, 0xBCFE, 0x4EF6, 0xBD40, 0x7D37, 0xBD41, 0x7D38, 0xBD42, 0x7D39, 0xBD43, 0x7D3A, 0xBD44, 0x7D3B, + 0xBD45, 0x7D3C, 0xBD46, 0x7D3D, 0xBD47, 0x7D3E, 0xBD48, 0x7D3F, 0xBD49, 0x7D40, 0xBD4A, 0x7D41, 0xBD4B, 0x7D42, 0xBD4C, 0x7D43, + 0xBD4D, 0x7D44, 0xBD4E, 0x7D45, 0xBD4F, 0x7D46, 0xBD50, 0x7D47, 0xBD51, 0x7D48, 0xBD52, 0x7D49, 0xBD53, 0x7D4A, 0xBD54, 0x7D4B, + 0xBD55, 0x7D4C, 0xBD56, 0x7D4D, 0xBD57, 0x7D4E, 0xBD58, 0x7D4F, 0xBD59, 0x7D50, 0xBD5A, 0x7D51, 0xBD5B, 0x7D52, 0xBD5C, 0x7D53, + 0xBD5D, 0x7D54, 0xBD5E, 0x7D55, 0xBD5F, 0x7D56, 0xBD60, 0x7D57, 0xBD61, 0x7D58, 0xBD62, 0x7D59, 0xBD63, 0x7D5A, 0xBD64, 0x7D5B, + 0xBD65, 0x7D5C, 0xBD66, 0x7D5D, 0xBD67, 0x7D5E, 0xBD68, 0x7D5F, 0xBD69, 0x7D60, 0xBD6A, 0x7D61, 0xBD6B, 0x7D62, 0xBD6C, 0x7D63, + 0xBD6D, 0x7D64, 0xBD6E, 0x7D65, 0xBD6F, 0x7D66, 0xBD70, 0x7D67, 0xBD71, 0x7D68, 0xBD72, 0x7D69, 0xBD73, 0x7D6A, 0xBD74, 0x7D6B, + 0xBD75, 0x7D6C, 0xBD76, 0x7D6D, 0xBD77, 0x7D6F, 0xBD78, 0x7D70, 0xBD79, 0x7D71, 0xBD7A, 0x7D72, 0xBD7B, 0x7D73, 0xBD7C, 0x7D74, + 0xBD7D, 0x7D75, 0xBD7E, 0x7D76, 0xBD80, 0x7D78, 0xBD81, 0x7D79, 0xBD82, 0x7D7A, 0xBD83, 0x7D7B, 0xBD84, 0x7D7C, 0xBD85, 0x7D7D, + 0xBD86, 0x7D7E, 0xBD87, 0x7D7F, 0xBD88, 0x7D80, 0xBD89, 0x7D81, 0xBD8A, 0x7D82, 0xBD8B, 0x7D83, 0xBD8C, 0x7D84, 0xBD8D, 0x7D85, + 0xBD8E, 0x7D86, 0xBD8F, 0x7D87, 0xBD90, 0x7D88, 0xBD91, 0x7D89, 0xBD92, 0x7D8A, 0xBD93, 0x7D8B, 0xBD94, 0x7D8C, 0xBD95, 0x7D8D, + 0xBD96, 0x7D8E, 0xBD97, 0x7D8F, 0xBD98, 0x7D90, 0xBD99, 0x7D91, 0xBD9A, 0x7D92, 0xBD9B, 0x7D93, 0xBD9C, 0x7D94, 0xBD9D, 0x7D95, + 0xBD9E, 0x7D96, 0xBD9F, 0x7D97, 0xBDA0, 0x7D98, 0xBDA1, 0x5065, 0xBDA2, 0x8230, 0xBDA3, 0x5251, 0xBDA4, 0x996F, 0xBDA5, 0x6E10, + 0xBDA6, 0x6E85, 0xBDA7, 0x6DA7, 0xBDA8, 0x5EFA, 0xBDA9, 0x50F5, 0xBDAA, 0x59DC, 0xBDAB, 0x5C06, 0xBDAC, 0x6D46, 0xBDAD, 0x6C5F, + 0xBDAE, 0x7586, 0xBDAF, 0x848B, 0xBDB0, 0x6868, 0xBDB1, 0x5956, 0xBDB2, 0x8BB2, 0xBDB3, 0x5320, 0xBDB4, 0x9171, 0xBDB5, 0x964D, + 0xBDB6, 0x8549, 0xBDB7, 0x6912, 0xBDB8, 0x7901, 0xBDB9, 0x7126, 0xBDBA, 0x80F6, 0xBDBB, 0x4EA4, 0xBDBC, 0x90CA, 0xBDBD, 0x6D47, + 0xBDBE, 0x9A84, 0xBDBF, 0x5A07, 0xBDC0, 0x56BC, 0xBDC1, 0x6405, 0xBDC2, 0x94F0, 0xBDC3, 0x77EB, 0xBDC4, 0x4FA5, 0xBDC5, 0x811A, + 0xBDC6, 0x72E1, 0xBDC7, 0x89D2, 0xBDC8, 0x997A, 0xBDC9, 0x7F34, 0xBDCA, 0x7EDE, 0xBDCB, 0x527F, 0xBDCC, 0x6559, 0xBDCD, 0x9175, + 0xBDCE, 0x8F7F, 0xBDCF, 0x8F83, 0xBDD0, 0x53EB, 0xBDD1, 0x7A96, 0xBDD2, 0x63ED, 0xBDD3, 0x63A5, 0xBDD4, 0x7686, 0xBDD5, 0x79F8, + 0xBDD6, 0x8857, 0xBDD7, 0x9636, 0xBDD8, 0x622A, 0xBDD9, 0x52AB, 0xBDDA, 0x8282, 0xBDDB, 0x6854, 0xBDDC, 0x6770, 0xBDDD, 0x6377, + 0xBDDE, 0x776B, 0xBDDF, 0x7AED, 0xBDE0, 0x6D01, 0xBDE1, 0x7ED3, 0xBDE2, 0x89E3, 0xBDE3, 0x59D0, 0xBDE4, 0x6212, 0xBDE5, 0x85C9, + 0xBDE6, 0x82A5, 0xBDE7, 0x754C, 0xBDE8, 0x501F, 0xBDE9, 0x4ECB, 0xBDEA, 0x75A5, 0xBDEB, 0x8BEB, 0xBDEC, 0x5C4A, 0xBDED, 0x5DFE, + 0xBDEE, 0x7B4B, 0xBDEF, 0x65A4, 0xBDF0, 0x91D1, 0xBDF1, 0x4ECA, 0xBDF2, 0x6D25, 0xBDF3, 0x895F, 0xBDF4, 0x7D27, 0xBDF5, 0x9526, + 0xBDF6, 0x4EC5, 0xBDF7, 0x8C28, 0xBDF8, 0x8FDB, 0xBDF9, 0x9773, 0xBDFA, 0x664B, 0xBDFB, 0x7981, 0xBDFC, 0x8FD1, 0xBDFD, 0x70EC, + 0xBDFE, 0x6D78, 0xBE40, 0x7D99, 0xBE41, 0x7D9A, 0xBE42, 0x7D9B, 0xBE43, 0x7D9C, 0xBE44, 0x7D9D, 0xBE45, 0x7D9E, 0xBE46, 0x7D9F, + 0xBE47, 0x7DA0, 0xBE48, 0x7DA1, 0xBE49, 0x7DA2, 0xBE4A, 0x7DA3, 0xBE4B, 0x7DA4, 0xBE4C, 0x7DA5, 0xBE4D, 0x7DA7, 0xBE4E, 0x7DA8, + 0xBE4F, 0x7DA9, 0xBE50, 0x7DAA, 0xBE51, 0x7DAB, 0xBE52, 0x7DAC, 0xBE53, 0x7DAD, 0xBE54, 0x7DAF, 0xBE55, 0x7DB0, 0xBE56, 0x7DB1, + 0xBE57, 0x7DB2, 0xBE58, 0x7DB3, 0xBE59, 0x7DB4, 0xBE5A, 0x7DB5, 0xBE5B, 0x7DB6, 0xBE5C, 0x7DB7, 0xBE5D, 0x7DB8, 0xBE5E, 0x7DB9, + 0xBE5F, 0x7DBA, 0xBE60, 0x7DBB, 0xBE61, 0x7DBC, 0xBE62, 0x7DBD, 0xBE63, 0x7DBE, 0xBE64, 0x7DBF, 0xBE65, 0x7DC0, 0xBE66, 0x7DC1, + 0xBE67, 0x7DC2, 0xBE68, 0x7DC3, 0xBE69, 0x7DC4, 0xBE6A, 0x7DC5, 0xBE6B, 0x7DC6, 0xBE6C, 0x7DC7, 0xBE6D, 0x7DC8, 0xBE6E, 0x7DC9, + 0xBE6F, 0x7DCA, 0xBE70, 0x7DCB, 0xBE71, 0x7DCC, 0xBE72, 0x7DCD, 0xBE73, 0x7DCE, 0xBE74, 0x7DCF, 0xBE75, 0x7DD0, 0xBE76, 0x7DD1, + 0xBE77, 0x7DD2, 0xBE78, 0x7DD3, 0xBE79, 0x7DD4, 0xBE7A, 0x7DD5, 0xBE7B, 0x7DD6, 0xBE7C, 0x7DD7, 0xBE7D, 0x7DD8, 0xBE7E, 0x7DD9, + 0xBE80, 0x7DDA, 0xBE81, 0x7DDB, 0xBE82, 0x7DDC, 0xBE83, 0x7DDD, 0xBE84, 0x7DDE, 0xBE85, 0x7DDF, 0xBE86, 0x7DE0, 0xBE87, 0x7DE1, + 0xBE88, 0x7DE2, 0xBE89, 0x7DE3, 0xBE8A, 0x7DE4, 0xBE8B, 0x7DE5, 0xBE8C, 0x7DE6, 0xBE8D, 0x7DE7, 0xBE8E, 0x7DE8, 0xBE8F, 0x7DE9, + 0xBE90, 0x7DEA, 0xBE91, 0x7DEB, 0xBE92, 0x7DEC, 0xBE93, 0x7DED, 0xBE94, 0x7DEE, 0xBE95, 0x7DEF, 0xBE96, 0x7DF0, 0xBE97, 0x7DF1, + 0xBE98, 0x7DF2, 0xBE99, 0x7DF3, 0xBE9A, 0x7DF4, 0xBE9B, 0x7DF5, 0xBE9C, 0x7DF6, 0xBE9D, 0x7DF7, 0xBE9E, 0x7DF8, 0xBE9F, 0x7DF9, + 0xBEA0, 0x7DFA, 0xBEA1, 0x5C3D, 0xBEA2, 0x52B2, 0xBEA3, 0x8346, 0xBEA4, 0x5162, 0xBEA5, 0x830E, 0xBEA6, 0x775B, 0xBEA7, 0x6676, + 0xBEA8, 0x9CB8, 0xBEA9, 0x4EAC, 0xBEAA, 0x60CA, 0xBEAB, 0x7CBE, 0xBEAC, 0x7CB3, 0xBEAD, 0x7ECF, 0xBEAE, 0x4E95, 0xBEAF, 0x8B66, + 0xBEB0, 0x666F, 0xBEB1, 0x9888, 0xBEB2, 0x9759, 0xBEB3, 0x5883, 0xBEB4, 0x656C, 0xBEB5, 0x955C, 0xBEB6, 0x5F84, 0xBEB7, 0x75C9, + 0xBEB8, 0x9756, 0xBEB9, 0x7ADF, 0xBEBA, 0x7ADE, 0xBEBB, 0x51C0, 0xBEBC, 0x70AF, 0xBEBD, 0x7A98, 0xBEBE, 0x63EA, 0xBEBF, 0x7A76, + 0xBEC0, 0x7EA0, 0xBEC1, 0x7396, 0xBEC2, 0x97ED, 0xBEC3, 0x4E45, 0xBEC4, 0x7078, 0xBEC5, 0x4E5D, 0xBEC6, 0x9152, 0xBEC7, 0x53A9, + 0xBEC8, 0x6551, 0xBEC9, 0x65E7, 0xBECA, 0x81FC, 0xBECB, 0x8205, 0xBECC, 0x548E, 0xBECD, 0x5C31, 0xBECE, 0x759A, 0xBECF, 0x97A0, + 0xBED0, 0x62D8, 0xBED1, 0x72D9, 0xBED2, 0x75BD, 0xBED3, 0x5C45, 0xBED4, 0x9A79, 0xBED5, 0x83CA, 0xBED6, 0x5C40, 0xBED7, 0x5480, + 0xBED8, 0x77E9, 0xBED9, 0x4E3E, 0xBEDA, 0x6CAE, 0xBEDB, 0x805A, 0xBEDC, 0x62D2, 0xBEDD, 0x636E, 0xBEDE, 0x5DE8, 0xBEDF, 0x5177, + 0xBEE0, 0x8DDD, 0xBEE1, 0x8E1E, 0xBEE2, 0x952F, 0xBEE3, 0x4FF1, 0xBEE4, 0x53E5, 0xBEE5, 0x60E7, 0xBEE6, 0x70AC, 0xBEE7, 0x5267, + 0xBEE8, 0x6350, 0xBEE9, 0x9E43, 0xBEEA, 0x5A1F, 0xBEEB, 0x5026, 0xBEEC, 0x7737, 0xBEED, 0x5377, 0xBEEE, 0x7EE2, 0xBEEF, 0x6485, + 0xBEF0, 0x652B, 0xBEF1, 0x6289, 0xBEF2, 0x6398, 0xBEF3, 0x5014, 0xBEF4, 0x7235, 0xBEF5, 0x89C9, 0xBEF6, 0x51B3, 0xBEF7, 0x8BC0, + 0xBEF8, 0x7EDD, 0xBEF9, 0x5747, 0xBEFA, 0x83CC, 0xBEFB, 0x94A7, 0xBEFC, 0x519B, 0xBEFD, 0x541B, 0xBEFE, 0x5CFB, 0xBF40, 0x7DFB, + 0xBF41, 0x7DFC, 0xBF42, 0x7DFD, 0xBF43, 0x7DFE, 0xBF44, 0x7DFF, 0xBF45, 0x7E00, 0xBF46, 0x7E01, 0xBF47, 0x7E02, 0xBF48, 0x7E03, + 0xBF49, 0x7E04, 0xBF4A, 0x7E05, 0xBF4B, 0x7E06, 0xBF4C, 0x7E07, 0xBF4D, 0x7E08, 0xBF4E, 0x7E09, 0xBF4F, 0x7E0A, 0xBF50, 0x7E0B, + 0xBF51, 0x7E0C, 0xBF52, 0x7E0D, 0xBF53, 0x7E0E, 0xBF54, 0x7E0F, 0xBF55, 0x7E10, 0xBF56, 0x7E11, 0xBF57, 0x7E12, 0xBF58, 0x7E13, + 0xBF59, 0x7E14, 0xBF5A, 0x7E15, 0xBF5B, 0x7E16, 0xBF5C, 0x7E17, 0xBF5D, 0x7E18, 0xBF5E, 0x7E19, 0xBF5F, 0x7E1A, 0xBF60, 0x7E1B, + 0xBF61, 0x7E1C, 0xBF62, 0x7E1D, 0xBF63, 0x7E1E, 0xBF64, 0x7E1F, 0xBF65, 0x7E20, 0xBF66, 0x7E21, 0xBF67, 0x7E22, 0xBF68, 0x7E23, + 0xBF69, 0x7E24, 0xBF6A, 0x7E25, 0xBF6B, 0x7E26, 0xBF6C, 0x7E27, 0xBF6D, 0x7E28, 0xBF6E, 0x7E29, 0xBF6F, 0x7E2A, 0xBF70, 0x7E2B, + 0xBF71, 0x7E2C, 0xBF72, 0x7E2D, 0xBF73, 0x7E2E, 0xBF74, 0x7E2F, 0xBF75, 0x7E30, 0xBF76, 0x7E31, 0xBF77, 0x7E32, 0xBF78, 0x7E33, + 0xBF79, 0x7E34, 0xBF7A, 0x7E35, 0xBF7B, 0x7E36, 0xBF7C, 0x7E37, 0xBF7D, 0x7E38, 0xBF7E, 0x7E39, 0xBF80, 0x7E3A, 0xBF81, 0x7E3C, + 0xBF82, 0x7E3D, 0xBF83, 0x7E3E, 0xBF84, 0x7E3F, 0xBF85, 0x7E40, 0xBF86, 0x7E42, 0xBF87, 0x7E43, 0xBF88, 0x7E44, 0xBF89, 0x7E45, + 0xBF8A, 0x7E46, 0xBF8B, 0x7E48, 0xBF8C, 0x7E49, 0xBF8D, 0x7E4A, 0xBF8E, 0x7E4B, 0xBF8F, 0x7E4C, 0xBF90, 0x7E4D, 0xBF91, 0x7E4E, + 0xBF92, 0x7E4F, 0xBF93, 0x7E50, 0xBF94, 0x7E51, 0xBF95, 0x7E52, 0xBF96, 0x7E53, 0xBF97, 0x7E54, 0xBF98, 0x7E55, 0xBF99, 0x7E56, + 0xBF9A, 0x7E57, 0xBF9B, 0x7E58, 0xBF9C, 0x7E59, 0xBF9D, 0x7E5A, 0xBF9E, 0x7E5B, 0xBF9F, 0x7E5C, 0xBFA0, 0x7E5D, 0xBFA1, 0x4FCA, + 0xBFA2, 0x7AE3, 0xBFA3, 0x6D5A, 0xBFA4, 0x90E1, 0xBFA5, 0x9A8F, 0xBFA6, 0x5580, 0xBFA7, 0x5496, 0xBFA8, 0x5361, 0xBFA9, 0x54AF, + 0xBFAA, 0x5F00, 0xBFAB, 0x63E9, 0xBFAC, 0x6977, 0xBFAD, 0x51EF, 0xBFAE, 0x6168, 0xBFAF, 0x520A, 0xBFB0, 0x582A, 0xBFB1, 0x52D8, + 0xBFB2, 0x574E, 0xBFB3, 0x780D, 0xBFB4, 0x770B, 0xBFB5, 0x5EB7, 0xBFB6, 0x6177, 0xBFB7, 0x7CE0, 0xBFB8, 0x625B, 0xBFB9, 0x6297, + 0xBFBA, 0x4EA2, 0xBFBB, 0x7095, 0xBFBC, 0x8003, 0xBFBD, 0x62F7, 0xBFBE, 0x70E4, 0xBFBF, 0x9760, 0xBFC0, 0x5777, 0xBFC1, 0x82DB, + 0xBFC2, 0x67EF, 0xBFC3, 0x68F5, 0xBFC4, 0x78D5, 0xBFC5, 0x9897, 0xBFC6, 0x79D1, 0xBFC7, 0x58F3, 0xBFC8, 0x54B3, 0xBFC9, 0x53EF, + 0xBFCA, 0x6E34, 0xBFCB, 0x514B, 0xBFCC, 0x523B, 0xBFCD, 0x5BA2, 0xBFCE, 0x8BFE, 0xBFCF, 0x80AF, 0xBFD0, 0x5543, 0xBFD1, 0x57A6, + 0xBFD2, 0x6073, 0xBFD3, 0x5751, 0xBFD4, 0x542D, 0xBFD5, 0x7A7A, 0xBFD6, 0x6050, 0xBFD7, 0x5B54, 0xBFD8, 0x63A7, 0xBFD9, 0x62A0, + 0xBFDA, 0x53E3, 0xBFDB, 0x6263, 0xBFDC, 0x5BC7, 0xBFDD, 0x67AF, 0xBFDE, 0x54ED, 0xBFDF, 0x7A9F, 0xBFE0, 0x82E6, 0xBFE1, 0x9177, + 0xBFE2, 0x5E93, 0xBFE3, 0x88E4, 0xBFE4, 0x5938, 0xBFE5, 0x57AE, 0xBFE6, 0x630E, 0xBFE7, 0x8DE8, 0xBFE8, 0x80EF, 0xBFE9, 0x5757, + 0xBFEA, 0x7B77, 0xBFEB, 0x4FA9, 0xBFEC, 0x5FEB, 0xBFED, 0x5BBD, 0xBFEE, 0x6B3E, 0xBFEF, 0x5321, 0xBFF0, 0x7B50, 0xBFF1, 0x72C2, + 0xBFF2, 0x6846, 0xBFF3, 0x77FF, 0xBFF4, 0x7736, 0xBFF5, 0x65F7, 0xBFF6, 0x51B5, 0xBFF7, 0x4E8F, 0xBFF8, 0x76D4, 0xBFF9, 0x5CBF, + 0xBFFA, 0x7AA5, 0xBFFB, 0x8475, 0xBFFC, 0x594E, 0xBFFD, 0x9B41, 0xBFFE, 0x5080, 0xC040, 0x7E5E, 0xC041, 0x7E5F, 0xC042, 0x7E60, + 0xC043, 0x7E61, 0xC044, 0x7E62, 0xC045, 0x7E63, 0xC046, 0x7E64, 0xC047, 0x7E65, 0xC048, 0x7E66, 0xC049, 0x7E67, 0xC04A, 0x7E68, + 0xC04B, 0x7E69, 0xC04C, 0x7E6A, 0xC04D, 0x7E6B, 0xC04E, 0x7E6C, 0xC04F, 0x7E6D, 0xC050, 0x7E6E, 0xC051, 0x7E6F, 0xC052, 0x7E70, + 0xC053, 0x7E71, 0xC054, 0x7E72, 0xC055, 0x7E73, 0xC056, 0x7E74, 0xC057, 0x7E75, 0xC058, 0x7E76, 0xC059, 0x7E77, 0xC05A, 0x7E78, + 0xC05B, 0x7E79, 0xC05C, 0x7E7A, 0xC05D, 0x7E7B, 0xC05E, 0x7E7C, 0xC05F, 0x7E7D, 0xC060, 0x7E7E, 0xC061, 0x7E7F, 0xC062, 0x7E80, + 0xC063, 0x7E81, 0xC064, 0x7E83, 0xC065, 0x7E84, 0xC066, 0x7E85, 0xC067, 0x7E86, 0xC068, 0x7E87, 0xC069, 0x7E88, 0xC06A, 0x7E89, + 0xC06B, 0x7E8A, 0xC06C, 0x7E8B, 0xC06D, 0x7E8C, 0xC06E, 0x7E8D, 0xC06F, 0x7E8E, 0xC070, 0x7E8F, 0xC071, 0x7E90, 0xC072, 0x7E91, + 0xC073, 0x7E92, 0xC074, 0x7E93, 0xC075, 0x7E94, 0xC076, 0x7E95, 0xC077, 0x7E96, 0xC078, 0x7E97, 0xC079, 0x7E98, 0xC07A, 0x7E99, + 0xC07B, 0x7E9A, 0xC07C, 0x7E9C, 0xC07D, 0x7E9D, 0xC07E, 0x7E9E, 0xC080, 0x7EAE, 0xC081, 0x7EB4, 0xC082, 0x7EBB, 0xC083, 0x7EBC, + 0xC084, 0x7ED6, 0xC085, 0x7EE4, 0xC086, 0x7EEC, 0xC087, 0x7EF9, 0xC088, 0x7F0A, 0xC089, 0x7F10, 0xC08A, 0x7F1E, 0xC08B, 0x7F37, + 0xC08C, 0x7F39, 0xC08D, 0x7F3B, 0xC08E, 0x7F3C, 0xC08F, 0x7F3D, 0xC090, 0x7F3E, 0xC091, 0x7F3F, 0xC092, 0x7F40, 0xC093, 0x7F41, + 0xC094, 0x7F43, 0xC095, 0x7F46, 0xC096, 0x7F47, 0xC097, 0x7F48, 0xC098, 0x7F49, 0xC099, 0x7F4A, 0xC09A, 0x7F4B, 0xC09B, 0x7F4C, + 0xC09C, 0x7F4D, 0xC09D, 0x7F4E, 0xC09E, 0x7F4F, 0xC09F, 0x7F52, 0xC0A0, 0x7F53, 0xC0A1, 0x9988, 0xC0A2, 0x6127, 0xC0A3, 0x6E83, + 0xC0A4, 0x5764, 0xC0A5, 0x6606, 0xC0A6, 0x6346, 0xC0A7, 0x56F0, 0xC0A8, 0x62EC, 0xC0A9, 0x6269, 0xC0AA, 0x5ED3, 0xC0AB, 0x9614, + 0xC0AC, 0x5783, 0xC0AD, 0x62C9, 0xC0AE, 0x5587, 0xC0AF, 0x8721, 0xC0B0, 0x814A, 0xC0B1, 0x8FA3, 0xC0B2, 0x5566, 0xC0B3, 0x83B1, + 0xC0B4, 0x6765, 0xC0B5, 0x8D56, 0xC0B6, 0x84DD, 0xC0B7, 0x5A6A, 0xC0B8, 0x680F, 0xC0B9, 0x62E6, 0xC0BA, 0x7BEE, 0xC0BB, 0x9611, + 0xC0BC, 0x5170, 0xC0BD, 0x6F9C, 0xC0BE, 0x8C30, 0xC0BF, 0x63FD, 0xC0C0, 0x89C8, 0xC0C1, 0x61D2, 0xC0C2, 0x7F06, 0xC0C3, 0x70C2, + 0xC0C4, 0x6EE5, 0xC0C5, 0x7405, 0xC0C6, 0x6994, 0xC0C7, 0x72FC, 0xC0C8, 0x5ECA, 0xC0C9, 0x90CE, 0xC0CA, 0x6717, 0xC0CB, 0x6D6A, + 0xC0CC, 0x635E, 0xC0CD, 0x52B3, 0xC0CE, 0x7262, 0xC0CF, 0x8001, 0xC0D0, 0x4F6C, 0xC0D1, 0x59E5, 0xC0D2, 0x916A, 0xC0D3, 0x70D9, + 0xC0D4, 0x6D9D, 0xC0D5, 0x52D2, 0xC0D6, 0x4E50, 0xC0D7, 0x96F7, 0xC0D8, 0x956D, 0xC0D9, 0x857E, 0xC0DA, 0x78CA, 0xC0DB, 0x7D2F, + 0xC0DC, 0x5121, 0xC0DD, 0x5792, 0xC0DE, 0x64C2, 0xC0DF, 0x808B, 0xC0E0, 0x7C7B, 0xC0E1, 0x6CEA, 0xC0E2, 0x68F1, 0xC0E3, 0x695E, + 0xC0E4, 0x51B7, 0xC0E5, 0x5398, 0xC0E6, 0x68A8, 0xC0E7, 0x7281, 0xC0E8, 0x9ECE, 0xC0E9, 0x7BF1, 0xC0EA, 0x72F8, 0xC0EB, 0x79BB, + 0xC0EC, 0x6F13, 0xC0ED, 0x7406, 0xC0EE, 0x674E, 0xC0EF, 0x91CC, 0xC0F0, 0x9CA4, 0xC0F1, 0x793C, 0xC0F2, 0x8389, 0xC0F3, 0x8354, + 0xC0F4, 0x540F, 0xC0F5, 0x6817, 0xC0F6, 0x4E3D, 0xC0F7, 0x5389, 0xC0F8, 0x52B1, 0xC0F9, 0x783E, 0xC0FA, 0x5386, 0xC0FB, 0x5229, + 0xC0FC, 0x5088, 0xC0FD, 0x4F8B, 0xC0FE, 0x4FD0, 0xC140, 0x7F56, 0xC141, 0x7F59, 0xC142, 0x7F5B, 0xC143, 0x7F5C, 0xC144, 0x7F5D, + 0xC145, 0x7F5E, 0xC146, 0x7F60, 0xC147, 0x7F63, 0xC148, 0x7F64, 0xC149, 0x7F65, 0xC14A, 0x7F66, 0xC14B, 0x7F67, 0xC14C, 0x7F6B, + 0xC14D, 0x7F6C, 0xC14E, 0x7F6D, 0xC14F, 0x7F6F, 0xC150, 0x7F70, 0xC151, 0x7F73, 0xC152, 0x7F75, 0xC153, 0x7F76, 0xC154, 0x7F77, + 0xC155, 0x7F78, 0xC156, 0x7F7A, 0xC157, 0x7F7B, 0xC158, 0x7F7C, 0xC159, 0x7F7D, 0xC15A, 0x7F7F, 0xC15B, 0x7F80, 0xC15C, 0x7F82, + 0xC15D, 0x7F83, 0xC15E, 0x7F84, 0xC15F, 0x7F85, 0xC160, 0x7F86, 0xC161, 0x7F87, 0xC162, 0x7F88, 0xC163, 0x7F89, 0xC164, 0x7F8B, + 0xC165, 0x7F8D, 0xC166, 0x7F8F, 0xC167, 0x7F90, 0xC168, 0x7F91, 0xC169, 0x7F92, 0xC16A, 0x7F93, 0xC16B, 0x7F95, 0xC16C, 0x7F96, + 0xC16D, 0x7F97, 0xC16E, 0x7F98, 0xC16F, 0x7F99, 0xC170, 0x7F9B, 0xC171, 0x7F9C, 0xC172, 0x7FA0, 0xC173, 0x7FA2, 0xC174, 0x7FA3, + 0xC175, 0x7FA5, 0xC176, 0x7FA6, 0xC177, 0x7FA8, 0xC178, 0x7FA9, 0xC179, 0x7FAA, 0xC17A, 0x7FAB, 0xC17B, 0x7FAC, 0xC17C, 0x7FAD, + 0xC17D, 0x7FAE, 0xC17E, 0x7FB1, 0xC180, 0x7FB3, 0xC181, 0x7FB4, 0xC182, 0x7FB5, 0xC183, 0x7FB6, 0xC184, 0x7FB7, 0xC185, 0x7FBA, + 0xC186, 0x7FBB, 0xC187, 0x7FBE, 0xC188, 0x7FC0, 0xC189, 0x7FC2, 0xC18A, 0x7FC3, 0xC18B, 0x7FC4, 0xC18C, 0x7FC6, 0xC18D, 0x7FC7, + 0xC18E, 0x7FC8, 0xC18F, 0x7FC9, 0xC190, 0x7FCB, 0xC191, 0x7FCD, 0xC192, 0x7FCF, 0xC193, 0x7FD0, 0xC194, 0x7FD1, 0xC195, 0x7FD2, + 0xC196, 0x7FD3, 0xC197, 0x7FD6, 0xC198, 0x7FD7, 0xC199, 0x7FD9, 0xC19A, 0x7FDA, 0xC19B, 0x7FDB, 0xC19C, 0x7FDC, 0xC19D, 0x7FDD, + 0xC19E, 0x7FDE, 0xC19F, 0x7FE2, 0xC1A0, 0x7FE3, 0xC1A1, 0x75E2, 0xC1A2, 0x7ACB, 0xC1A3, 0x7C92, 0xC1A4, 0x6CA5, 0xC1A5, 0x96B6, + 0xC1A6, 0x529B, 0xC1A7, 0x7483, 0xC1A8, 0x54E9, 0xC1A9, 0x4FE9, 0xC1AA, 0x8054, 0xC1AB, 0x83B2, 0xC1AC, 0x8FDE, 0xC1AD, 0x9570, + 0xC1AE, 0x5EC9, 0xC1AF, 0x601C, 0xC1B0, 0x6D9F, 0xC1B1, 0x5E18, 0xC1B2, 0x655B, 0xC1B3, 0x8138, 0xC1B4, 0x94FE, 0xC1B5, 0x604B, + 0xC1B6, 0x70BC, 0xC1B7, 0x7EC3, 0xC1B8, 0x7CAE, 0xC1B9, 0x51C9, 0xC1BA, 0x6881, 0xC1BB, 0x7CB1, 0xC1BC, 0x826F, 0xC1BD, 0x4E24, + 0xC1BE, 0x8F86, 0xC1BF, 0x91CF, 0xC1C0, 0x667E, 0xC1C1, 0x4EAE, 0xC1C2, 0x8C05, 0xC1C3, 0x64A9, 0xC1C4, 0x804A, 0xC1C5, 0x50DA, + 0xC1C6, 0x7597, 0xC1C7, 0x71CE, 0xC1C8, 0x5BE5, 0xC1C9, 0x8FBD, 0xC1CA, 0x6F66, 0xC1CB, 0x4E86, 0xC1CC, 0x6482, 0xC1CD, 0x9563, + 0xC1CE, 0x5ED6, 0xC1CF, 0x6599, 0xC1D0, 0x5217, 0xC1D1, 0x88C2, 0xC1D2, 0x70C8, 0xC1D3, 0x52A3, 0xC1D4, 0x730E, 0xC1D5, 0x7433, + 0xC1D6, 0x6797, 0xC1D7, 0x78F7, 0xC1D8, 0x9716, 0xC1D9, 0x4E34, 0xC1DA, 0x90BB, 0xC1DB, 0x9CDE, 0xC1DC, 0x6DCB, 0xC1DD, 0x51DB, + 0xC1DE, 0x8D41, 0xC1DF, 0x541D, 0xC1E0, 0x62CE, 0xC1E1, 0x73B2, 0xC1E2, 0x83F1, 0xC1E3, 0x96F6, 0xC1E4, 0x9F84, 0xC1E5, 0x94C3, + 0xC1E6, 0x4F36, 0xC1E7, 0x7F9A, 0xC1E8, 0x51CC, 0xC1E9, 0x7075, 0xC1EA, 0x9675, 0xC1EB, 0x5CAD, 0xC1EC, 0x9886, 0xC1ED, 0x53E6, + 0xC1EE, 0x4EE4, 0xC1EF, 0x6E9C, 0xC1F0, 0x7409, 0xC1F1, 0x69B4, 0xC1F2, 0x786B, 0xC1F3, 0x998F, 0xC1F4, 0x7559, 0xC1F5, 0x5218, + 0xC1F6, 0x7624, 0xC1F7, 0x6D41, 0xC1F8, 0x67F3, 0xC1F9, 0x516D, 0xC1FA, 0x9F99, 0xC1FB, 0x804B, 0xC1FC, 0x5499, 0xC1FD, 0x7B3C, + 0xC1FE, 0x7ABF, 0xC240, 0x7FE4, 0xC241, 0x7FE7, 0xC242, 0x7FE8, 0xC243, 0x7FEA, 0xC244, 0x7FEB, 0xC245, 0x7FEC, 0xC246, 0x7FED, + 0xC247, 0x7FEF, 0xC248, 0x7FF2, 0xC249, 0x7FF4, 0xC24A, 0x7FF5, 0xC24B, 0x7FF6, 0xC24C, 0x7FF7, 0xC24D, 0x7FF8, 0xC24E, 0x7FF9, + 0xC24F, 0x7FFA, 0xC250, 0x7FFD, 0xC251, 0x7FFE, 0xC252, 0x7FFF, 0xC253, 0x8002, 0xC254, 0x8007, 0xC255, 0x8008, 0xC256, 0x8009, + 0xC257, 0x800A, 0xC258, 0x800E, 0xC259, 0x800F, 0xC25A, 0x8011, 0xC25B, 0x8013, 0xC25C, 0x801A, 0xC25D, 0x801B, 0xC25E, 0x801D, + 0xC25F, 0x801E, 0xC260, 0x801F, 0xC261, 0x8021, 0xC262, 0x8023, 0xC263, 0x8024, 0xC264, 0x802B, 0xC265, 0x802C, 0xC266, 0x802D, + 0xC267, 0x802E, 0xC268, 0x802F, 0xC269, 0x8030, 0xC26A, 0x8032, 0xC26B, 0x8034, 0xC26C, 0x8039, 0xC26D, 0x803A, 0xC26E, 0x803C, + 0xC26F, 0x803E, 0xC270, 0x8040, 0xC271, 0x8041, 0xC272, 0x8044, 0xC273, 0x8045, 0xC274, 0x8047, 0xC275, 0x8048, 0xC276, 0x8049, + 0xC277, 0x804E, 0xC278, 0x804F, 0xC279, 0x8050, 0xC27A, 0x8051, 0xC27B, 0x8053, 0xC27C, 0x8055, 0xC27D, 0x8056, 0xC27E, 0x8057, + 0xC280, 0x8059, 0xC281, 0x805B, 0xC282, 0x805C, 0xC283, 0x805D, 0xC284, 0x805E, 0xC285, 0x805F, 0xC286, 0x8060, 0xC287, 0x8061, + 0xC288, 0x8062, 0xC289, 0x8063, 0xC28A, 0x8064, 0xC28B, 0x8065, 0xC28C, 0x8066, 0xC28D, 0x8067, 0xC28E, 0x8068, 0xC28F, 0x806B, + 0xC290, 0x806C, 0xC291, 0x806D, 0xC292, 0x806E, 0xC293, 0x806F, 0xC294, 0x8070, 0xC295, 0x8072, 0xC296, 0x8073, 0xC297, 0x8074, + 0xC298, 0x8075, 0xC299, 0x8076, 0xC29A, 0x8077, 0xC29B, 0x8078, 0xC29C, 0x8079, 0xC29D, 0x807A, 0xC29E, 0x807B, 0xC29F, 0x807C, + 0xC2A0, 0x807D, 0xC2A1, 0x9686, 0xC2A2, 0x5784, 0xC2A3, 0x62E2, 0xC2A4, 0x9647, 0xC2A5, 0x697C, 0xC2A6, 0x5A04, 0xC2A7, 0x6402, + 0xC2A8, 0x7BD3, 0xC2A9, 0x6F0F, 0xC2AA, 0x964B, 0xC2AB, 0x82A6, 0xC2AC, 0x5362, 0xC2AD, 0x9885, 0xC2AE, 0x5E90, 0xC2AF, 0x7089, + 0xC2B0, 0x63B3, 0xC2B1, 0x5364, 0xC2B2, 0x864F, 0xC2B3, 0x9C81, 0xC2B4, 0x9E93, 0xC2B5, 0x788C, 0xC2B6, 0x9732, 0xC2B7, 0x8DEF, + 0xC2B8, 0x8D42, 0xC2B9, 0x9E7F, 0xC2BA, 0x6F5E, 0xC2BB, 0x7984, 0xC2BC, 0x5F55, 0xC2BD, 0x9646, 0xC2BE, 0x622E, 0xC2BF, 0x9A74, + 0xC2C0, 0x5415, 0xC2C1, 0x94DD, 0xC2C2, 0x4FA3, 0xC2C3, 0x65C5, 0xC2C4, 0x5C65, 0xC2C5, 0x5C61, 0xC2C6, 0x7F15, 0xC2C7, 0x8651, + 0xC2C8, 0x6C2F, 0xC2C9, 0x5F8B, 0xC2CA, 0x7387, 0xC2CB, 0x6EE4, 0xC2CC, 0x7EFF, 0xC2CD, 0x5CE6, 0xC2CE, 0x631B, 0xC2CF, 0x5B6A, + 0xC2D0, 0x6EE6, 0xC2D1, 0x5375, 0xC2D2, 0x4E71, 0xC2D3, 0x63A0, 0xC2D4, 0x7565, 0xC2D5, 0x62A1, 0xC2D6, 0x8F6E, 0xC2D7, 0x4F26, + 0xC2D8, 0x4ED1, 0xC2D9, 0x6CA6, 0xC2DA, 0x7EB6, 0xC2DB, 0x8BBA, 0xC2DC, 0x841D, 0xC2DD, 0x87BA, 0xC2DE, 0x7F57, 0xC2DF, 0x903B, + 0xC2E0, 0x9523, 0xC2E1, 0x7BA9, 0xC2E2, 0x9AA1, 0xC2E3, 0x88F8, 0xC2E4, 0x843D, 0xC2E5, 0x6D1B, 0xC2E6, 0x9A86, 0xC2E7, 0x7EDC, + 0xC2E8, 0x5988, 0xC2E9, 0x9EBB, 0xC2EA, 0x739B, 0xC2EB, 0x7801, 0xC2EC, 0x8682, 0xC2ED, 0x9A6C, 0xC2EE, 0x9A82, 0xC2EF, 0x561B, + 0xC2F0, 0x5417, 0xC2F1, 0x57CB, 0xC2F2, 0x4E70, 0xC2F3, 0x9EA6, 0xC2F4, 0x5356, 0xC2F5, 0x8FC8, 0xC2F6, 0x8109, 0xC2F7, 0x7792, + 0xC2F8, 0x9992, 0xC2F9, 0x86EE, 0xC2FA, 0x6EE1, 0xC2FB, 0x8513, 0xC2FC, 0x66FC, 0xC2FD, 0x6162, 0xC2FE, 0x6F2B, 0xC340, 0x807E, + 0xC341, 0x8081, 0xC342, 0x8082, 0xC343, 0x8085, 0xC344, 0x8088, 0xC345, 0x808A, 0xC346, 0x808D, 0xC347, 0x808E, 0xC348, 0x808F, + 0xC349, 0x8090, 0xC34A, 0x8091, 0xC34B, 0x8092, 0xC34C, 0x8094, 0xC34D, 0x8095, 0xC34E, 0x8097, 0xC34F, 0x8099, 0xC350, 0x809E, + 0xC351, 0x80A3, 0xC352, 0x80A6, 0xC353, 0x80A7, 0xC354, 0x80A8, 0xC355, 0x80AC, 0xC356, 0x80B0, 0xC357, 0x80B3, 0xC358, 0x80B5, + 0xC359, 0x80B6, 0xC35A, 0x80B8, 0xC35B, 0x80B9, 0xC35C, 0x80BB, 0xC35D, 0x80C5, 0xC35E, 0x80C7, 0xC35F, 0x80C8, 0xC360, 0x80C9, + 0xC361, 0x80CA, 0xC362, 0x80CB, 0xC363, 0x80CF, 0xC364, 0x80D0, 0xC365, 0x80D1, 0xC366, 0x80D2, 0xC367, 0x80D3, 0xC368, 0x80D4, + 0xC369, 0x80D5, 0xC36A, 0x80D8, 0xC36B, 0x80DF, 0xC36C, 0x80E0, 0xC36D, 0x80E2, 0xC36E, 0x80E3, 0xC36F, 0x80E6, 0xC370, 0x80EE, + 0xC371, 0x80F5, 0xC372, 0x80F7, 0xC373, 0x80F9, 0xC374, 0x80FB, 0xC375, 0x80FE, 0xC376, 0x80FF, 0xC377, 0x8100, 0xC378, 0x8101, + 0xC379, 0x8103, 0xC37A, 0x8104, 0xC37B, 0x8105, 0xC37C, 0x8107, 0xC37D, 0x8108, 0xC37E, 0x810B, 0xC380, 0x810C, 0xC381, 0x8115, + 0xC382, 0x8117, 0xC383, 0x8119, 0xC384, 0x811B, 0xC385, 0x811C, 0xC386, 0x811D, 0xC387, 0x811F, 0xC388, 0x8120, 0xC389, 0x8121, + 0xC38A, 0x8122, 0xC38B, 0x8123, 0xC38C, 0x8124, 0xC38D, 0x8125, 0xC38E, 0x8126, 0xC38F, 0x8127, 0xC390, 0x8128, 0xC391, 0x8129, + 0xC392, 0x812A, 0xC393, 0x812B, 0xC394, 0x812D, 0xC395, 0x812E, 0xC396, 0x8130, 0xC397, 0x8133, 0xC398, 0x8134, 0xC399, 0x8135, + 0xC39A, 0x8137, 0xC39B, 0x8139, 0xC39C, 0x813A, 0xC39D, 0x813B, 0xC39E, 0x813C, 0xC39F, 0x813D, 0xC3A0, 0x813F, 0xC3A1, 0x8C29, + 0xC3A2, 0x8292, 0xC3A3, 0x832B, 0xC3A4, 0x76F2, 0xC3A5, 0x6C13, 0xC3A6, 0x5FD9, 0xC3A7, 0x83BD, 0xC3A8, 0x732B, 0xC3A9, 0x8305, + 0xC3AA, 0x951A, 0xC3AB, 0x6BDB, 0xC3AC, 0x77DB, 0xC3AD, 0x94C6, 0xC3AE, 0x536F, 0xC3AF, 0x8302, 0xC3B0, 0x5192, 0xC3B1, 0x5E3D, + 0xC3B2, 0x8C8C, 0xC3B3, 0x8D38, 0xC3B4, 0x4E48, 0xC3B5, 0x73AB, 0xC3B6, 0x679A, 0xC3B7, 0x6885, 0xC3B8, 0x9176, 0xC3B9, 0x9709, + 0xC3BA, 0x7164, 0xC3BB, 0x6CA1, 0xC3BC, 0x7709, 0xC3BD, 0x5A92, 0xC3BE, 0x9541, 0xC3BF, 0x6BCF, 0xC3C0, 0x7F8E, 0xC3C1, 0x6627, + 0xC3C2, 0x5BD0, 0xC3C3, 0x59B9, 0xC3C4, 0x5A9A, 0xC3C5, 0x95E8, 0xC3C6, 0x95F7, 0xC3C7, 0x4EEC, 0xC3C8, 0x840C, 0xC3C9, 0x8499, + 0xC3CA, 0x6AAC, 0xC3CB, 0x76DF, 0xC3CC, 0x9530, 0xC3CD, 0x731B, 0xC3CE, 0x68A6, 0xC3CF, 0x5B5F, 0xC3D0, 0x772F, 0xC3D1, 0x919A, + 0xC3D2, 0x9761, 0xC3D3, 0x7CDC, 0xC3D4, 0x8FF7, 0xC3D5, 0x8C1C, 0xC3D6, 0x5F25, 0xC3D7, 0x7C73, 0xC3D8, 0x79D8, 0xC3D9, 0x89C5, + 0xC3DA, 0x6CCC, 0xC3DB, 0x871C, 0xC3DC, 0x5BC6, 0xC3DD, 0x5E42, 0xC3DE, 0x68C9, 0xC3DF, 0x7720, 0xC3E0, 0x7EF5, 0xC3E1, 0x5195, + 0xC3E2, 0x514D, 0xC3E3, 0x52C9, 0xC3E4, 0x5A29, 0xC3E5, 0x7F05, 0xC3E6, 0x9762, 0xC3E7, 0x82D7, 0xC3E8, 0x63CF, 0xC3E9, 0x7784, + 0xC3EA, 0x85D0, 0xC3EB, 0x79D2, 0xC3EC, 0x6E3A, 0xC3ED, 0x5E99, 0xC3EE, 0x5999, 0xC3EF, 0x8511, 0xC3F0, 0x706D, 0xC3F1, 0x6C11, + 0xC3F2, 0x62BF, 0xC3F3, 0x76BF, 0xC3F4, 0x654F, 0xC3F5, 0x60AF, 0xC3F6, 0x95FD, 0xC3F7, 0x660E, 0xC3F8, 0x879F, 0xC3F9, 0x9E23, + 0xC3FA, 0x94ED, 0xC3FB, 0x540D, 0xC3FC, 0x547D, 0xC3FD, 0x8C2C, 0xC3FE, 0x6478, 0xC440, 0x8140, 0xC441, 0x8141, 0xC442, 0x8142, + 0xC443, 0x8143, 0xC444, 0x8144, 0xC445, 0x8145, 0xC446, 0x8147, 0xC447, 0x8149, 0xC448, 0x814D, 0xC449, 0x814E, 0xC44A, 0x814F, + 0xC44B, 0x8152, 0xC44C, 0x8156, 0xC44D, 0x8157, 0xC44E, 0x8158, 0xC44F, 0x815B, 0xC450, 0x815C, 0xC451, 0x815D, 0xC452, 0x815E, + 0xC453, 0x815F, 0xC454, 0x8161, 0xC455, 0x8162, 0xC456, 0x8163, 0xC457, 0x8164, 0xC458, 0x8166, 0xC459, 0x8168, 0xC45A, 0x816A, + 0xC45B, 0x816B, 0xC45C, 0x816C, 0xC45D, 0x816F, 0xC45E, 0x8172, 0xC45F, 0x8173, 0xC460, 0x8175, 0xC461, 0x8176, 0xC462, 0x8177, + 0xC463, 0x8178, 0xC464, 0x8181, 0xC465, 0x8183, 0xC466, 0x8184, 0xC467, 0x8185, 0xC468, 0x8186, 0xC469, 0x8187, 0xC46A, 0x8189, + 0xC46B, 0x818B, 0xC46C, 0x818C, 0xC46D, 0x818D, 0xC46E, 0x818E, 0xC46F, 0x8190, 0xC470, 0x8192, 0xC471, 0x8193, 0xC472, 0x8194, + 0xC473, 0x8195, 0xC474, 0x8196, 0xC475, 0x8197, 0xC476, 0x8199, 0xC477, 0x819A, 0xC478, 0x819E, 0xC479, 0x819F, 0xC47A, 0x81A0, + 0xC47B, 0x81A1, 0xC47C, 0x81A2, 0xC47D, 0x81A4, 0xC47E, 0x81A5, 0xC480, 0x81A7, 0xC481, 0x81A9, 0xC482, 0x81AB, 0xC483, 0x81AC, + 0xC484, 0x81AD, 0xC485, 0x81AE, 0xC486, 0x81AF, 0xC487, 0x81B0, 0xC488, 0x81B1, 0xC489, 0x81B2, 0xC48A, 0x81B4, 0xC48B, 0x81B5, + 0xC48C, 0x81B6, 0xC48D, 0x81B7, 0xC48E, 0x81B8, 0xC48F, 0x81B9, 0xC490, 0x81BC, 0xC491, 0x81BD, 0xC492, 0x81BE, 0xC493, 0x81BF, + 0xC494, 0x81C4, 0xC495, 0x81C5, 0xC496, 0x81C7, 0xC497, 0x81C8, 0xC498, 0x81C9, 0xC499, 0x81CB, 0xC49A, 0x81CD, 0xC49B, 0x81CE, + 0xC49C, 0x81CF, 0xC49D, 0x81D0, 0xC49E, 0x81D1, 0xC49F, 0x81D2, 0xC4A0, 0x81D3, 0xC4A1, 0x6479, 0xC4A2, 0x8611, 0xC4A3, 0x6A21, + 0xC4A4, 0x819C, 0xC4A5, 0x78E8, 0xC4A6, 0x6469, 0xC4A7, 0x9B54, 0xC4A8, 0x62B9, 0xC4A9, 0x672B, 0xC4AA, 0x83AB, 0xC4AB, 0x58A8, + 0xC4AC, 0x9ED8, 0xC4AD, 0x6CAB, 0xC4AE, 0x6F20, 0xC4AF, 0x5BDE, 0xC4B0, 0x964C, 0xC4B1, 0x8C0B, 0xC4B2, 0x725F, 0xC4B3, 0x67D0, + 0xC4B4, 0x62C7, 0xC4B5, 0x7261, 0xC4B6, 0x4EA9, 0xC4B7, 0x59C6, 0xC4B8, 0x6BCD, 0xC4B9, 0x5893, 0xC4BA, 0x66AE, 0xC4BB, 0x5E55, + 0xC4BC, 0x52DF, 0xC4BD, 0x6155, 0xC4BE, 0x6728, 0xC4BF, 0x76EE, 0xC4C0, 0x7766, 0xC4C1, 0x7267, 0xC4C2, 0x7A46, 0xC4C3, 0x62FF, + 0xC4C4, 0x54EA, 0xC4C5, 0x5450, 0xC4C6, 0x94A0, 0xC4C7, 0x90A3, 0xC4C8, 0x5A1C, 0xC4C9, 0x7EB3, 0xC4CA, 0x6C16, 0xC4CB, 0x4E43, + 0xC4CC, 0x5976, 0xC4CD, 0x8010, 0xC4CE, 0x5948, 0xC4CF, 0x5357, 0xC4D0, 0x7537, 0xC4D1, 0x96BE, 0xC4D2, 0x56CA, 0xC4D3, 0x6320, + 0xC4D4, 0x8111, 0xC4D5, 0x607C, 0xC4D6, 0x95F9, 0xC4D7, 0x6DD6, 0xC4D8, 0x5462, 0xC4D9, 0x9981, 0xC4DA, 0x5185, 0xC4DB, 0x5AE9, + 0xC4DC, 0x80FD, 0xC4DD, 0x59AE, 0xC4DE, 0x9713, 0xC4DF, 0x502A, 0xC4E0, 0x6CE5, 0xC4E1, 0x5C3C, 0xC4E2, 0x62DF, 0xC4E3, 0x4F60, + 0xC4E4, 0x533F, 0xC4E5, 0x817B, 0xC4E6, 0x9006, 0xC4E7, 0x6EBA, 0xC4E8, 0x852B, 0xC4E9, 0x62C8, 0xC4EA, 0x5E74, 0xC4EB, 0x78BE, + 0xC4EC, 0x64B5, 0xC4ED, 0x637B, 0xC4EE, 0x5FF5, 0xC4EF, 0x5A18, 0xC4F0, 0x917F, 0xC4F1, 0x9E1F, 0xC4F2, 0x5C3F, 0xC4F3, 0x634F, + 0xC4F4, 0x8042, 0xC4F5, 0x5B7D, 0xC4F6, 0x556E, 0xC4F7, 0x954A, 0xC4F8, 0x954D, 0xC4F9, 0x6D85, 0xC4FA, 0x60A8, 0xC4FB, 0x67E0, + 0xC4FC, 0x72DE, 0xC4FD, 0x51DD, 0xC4FE, 0x5B81, 0xC540, 0x81D4, 0xC541, 0x81D5, 0xC542, 0x81D6, 0xC543, 0x81D7, 0xC544, 0x81D8, + 0xC545, 0x81D9, 0xC546, 0x81DA, 0xC547, 0x81DB, 0xC548, 0x81DC, 0xC549, 0x81DD, 0xC54A, 0x81DE, 0xC54B, 0x81DF, 0xC54C, 0x81E0, + 0xC54D, 0x81E1, 0xC54E, 0x81E2, 0xC54F, 0x81E4, 0xC550, 0x81E5, 0xC551, 0x81E6, 0xC552, 0x81E8, 0xC553, 0x81E9, 0xC554, 0x81EB, + 0xC555, 0x81EE, 0xC556, 0x81EF, 0xC557, 0x81F0, 0xC558, 0x81F1, 0xC559, 0x81F2, 0xC55A, 0x81F5, 0xC55B, 0x81F6, 0xC55C, 0x81F7, + 0xC55D, 0x81F8, 0xC55E, 0x81F9, 0xC55F, 0x81FA, 0xC560, 0x81FD, 0xC561, 0x81FF, 0xC562, 0x8203, 0xC563, 0x8207, 0xC564, 0x8208, + 0xC565, 0x8209, 0xC566, 0x820A, 0xC567, 0x820B, 0xC568, 0x820E, 0xC569, 0x820F, 0xC56A, 0x8211, 0xC56B, 0x8213, 0xC56C, 0x8215, + 0xC56D, 0x8216, 0xC56E, 0x8217, 0xC56F, 0x8218, 0xC570, 0x8219, 0xC571, 0x821A, 0xC572, 0x821D, 0xC573, 0x8220, 0xC574, 0x8224, + 0xC575, 0x8225, 0xC576, 0x8226, 0xC577, 0x8227, 0xC578, 0x8229, 0xC579, 0x822E, 0xC57A, 0x8232, 0xC57B, 0x823A, 0xC57C, 0x823C, + 0xC57D, 0x823D, 0xC57E, 0x823F, 0xC580, 0x8240, 0xC581, 0x8241, 0xC582, 0x8242, 0xC583, 0x8243, 0xC584, 0x8245, 0xC585, 0x8246, + 0xC586, 0x8248, 0xC587, 0x824A, 0xC588, 0x824C, 0xC589, 0x824D, 0xC58A, 0x824E, 0xC58B, 0x8250, 0xC58C, 0x8251, 0xC58D, 0x8252, + 0xC58E, 0x8253, 0xC58F, 0x8254, 0xC590, 0x8255, 0xC591, 0x8256, 0xC592, 0x8257, 0xC593, 0x8259, 0xC594, 0x825B, 0xC595, 0x825C, + 0xC596, 0x825D, 0xC597, 0x825E, 0xC598, 0x8260, 0xC599, 0x8261, 0xC59A, 0x8262, 0xC59B, 0x8263, 0xC59C, 0x8264, 0xC59D, 0x8265, + 0xC59E, 0x8266, 0xC59F, 0x8267, 0xC5A0, 0x8269, 0xC5A1, 0x62E7, 0xC5A2, 0x6CDE, 0xC5A3, 0x725B, 0xC5A4, 0x626D, 0xC5A5, 0x94AE, + 0xC5A6, 0x7EBD, 0xC5A7, 0x8113, 0xC5A8, 0x6D53, 0xC5A9, 0x519C, 0xC5AA, 0x5F04, 0xC5AB, 0x5974, 0xC5AC, 0x52AA, 0xC5AD, 0x6012, + 0xC5AE, 0x5973, 0xC5AF, 0x6696, 0xC5B0, 0x8650, 0xC5B1, 0x759F, 0xC5B2, 0x632A, 0xC5B3, 0x61E6, 0xC5B4, 0x7CEF, 0xC5B5, 0x8BFA, + 0xC5B6, 0x54E6, 0xC5B7, 0x6B27, 0xC5B8, 0x9E25, 0xC5B9, 0x6BB4, 0xC5BA, 0x85D5, 0xC5BB, 0x5455, 0xC5BC, 0x5076, 0xC5BD, 0x6CA4, + 0xC5BE, 0x556A, 0xC5BF, 0x8DB4, 0xC5C0, 0x722C, 0xC5C1, 0x5E15, 0xC5C2, 0x6015, 0xC5C3, 0x7436, 0xC5C4, 0x62CD, 0xC5C5, 0x6392, + 0xC5C6, 0x724C, 0xC5C7, 0x5F98, 0xC5C8, 0x6E43, 0xC5C9, 0x6D3E, 0xC5CA, 0x6500, 0xC5CB, 0x6F58, 0xC5CC, 0x76D8, 0xC5CD, 0x78D0, + 0xC5CE, 0x76FC, 0xC5CF, 0x7554, 0xC5D0, 0x5224, 0xC5D1, 0x53DB, 0xC5D2, 0x4E53, 0xC5D3, 0x5E9E, 0xC5D4, 0x65C1, 0xC5D5, 0x802A, + 0xC5D6, 0x80D6, 0xC5D7, 0x629B, 0xC5D8, 0x5486, 0xC5D9, 0x5228, 0xC5DA, 0x70AE, 0xC5DB, 0x888D, 0xC5DC, 0x8DD1, 0xC5DD, 0x6CE1, + 0xC5DE, 0x5478, 0xC5DF, 0x80DA, 0xC5E0, 0x57F9, 0xC5E1, 0x88F4, 0xC5E2, 0x8D54, 0xC5E3, 0x966A, 0xC5E4, 0x914D, 0xC5E5, 0x4F69, + 0xC5E6, 0x6C9B, 0xC5E7, 0x55B7, 0xC5E8, 0x76C6, 0xC5E9, 0x7830, 0xC5EA, 0x62A8, 0xC5EB, 0x70F9, 0xC5EC, 0x6F8E, 0xC5ED, 0x5F6D, + 0xC5EE, 0x84EC, 0xC5EF, 0x68DA, 0xC5F0, 0x787C, 0xC5F1, 0x7BF7, 0xC5F2, 0x81A8, 0xC5F3, 0x670B, 0xC5F4, 0x9E4F, 0xC5F5, 0x6367, + 0xC5F6, 0x78B0, 0xC5F7, 0x576F, 0xC5F8, 0x7812, 0xC5F9, 0x9739, 0xC5FA, 0x6279, 0xC5FB, 0x62AB, 0xC5FC, 0x5288, 0xC5FD, 0x7435, + 0xC5FE, 0x6BD7, 0xC640, 0x826A, 0xC641, 0x826B, 0xC642, 0x826C, 0xC643, 0x826D, 0xC644, 0x8271, 0xC645, 0x8275, 0xC646, 0x8276, + 0xC647, 0x8277, 0xC648, 0x8278, 0xC649, 0x827B, 0xC64A, 0x827C, 0xC64B, 0x8280, 0xC64C, 0x8281, 0xC64D, 0x8283, 0xC64E, 0x8285, + 0xC64F, 0x8286, 0xC650, 0x8287, 0xC651, 0x8289, 0xC652, 0x828C, 0xC653, 0x8290, 0xC654, 0x8293, 0xC655, 0x8294, 0xC656, 0x8295, + 0xC657, 0x8296, 0xC658, 0x829A, 0xC659, 0x829B, 0xC65A, 0x829E, 0xC65B, 0x82A0, 0xC65C, 0x82A2, 0xC65D, 0x82A3, 0xC65E, 0x82A7, + 0xC65F, 0x82B2, 0xC660, 0x82B5, 0xC661, 0x82B6, 0xC662, 0x82BA, 0xC663, 0x82BB, 0xC664, 0x82BC, 0xC665, 0x82BF, 0xC666, 0x82C0, + 0xC667, 0x82C2, 0xC668, 0x82C3, 0xC669, 0x82C5, 0xC66A, 0x82C6, 0xC66B, 0x82C9, 0xC66C, 0x82D0, 0xC66D, 0x82D6, 0xC66E, 0x82D9, + 0xC66F, 0x82DA, 0xC670, 0x82DD, 0xC671, 0x82E2, 0xC672, 0x82E7, 0xC673, 0x82E8, 0xC674, 0x82E9, 0xC675, 0x82EA, 0xC676, 0x82EC, + 0xC677, 0x82ED, 0xC678, 0x82EE, 0xC679, 0x82F0, 0xC67A, 0x82F2, 0xC67B, 0x82F3, 0xC67C, 0x82F5, 0xC67D, 0x82F6, 0xC67E, 0x82F8, + 0xC680, 0x82FA, 0xC681, 0x82FC, 0xC682, 0x82FD, 0xC683, 0x82FE, 0xC684, 0x82FF, 0xC685, 0x8300, 0xC686, 0x830A, 0xC687, 0x830B, + 0xC688, 0x830D, 0xC689, 0x8310, 0xC68A, 0x8312, 0xC68B, 0x8313, 0xC68C, 0x8316, 0xC68D, 0x8318, 0xC68E, 0x8319, 0xC68F, 0x831D, + 0xC690, 0x831E, 0xC691, 0x831F, 0xC692, 0x8320, 0xC693, 0x8321, 0xC694, 0x8322, 0xC695, 0x8323, 0xC696, 0x8324, 0xC697, 0x8325, + 0xC698, 0x8326, 0xC699, 0x8329, 0xC69A, 0x832A, 0xC69B, 0x832E, 0xC69C, 0x8330, 0xC69D, 0x8332, 0xC69E, 0x8337, 0xC69F, 0x833B, + 0xC6A0, 0x833D, 0xC6A1, 0x5564, 0xC6A2, 0x813E, 0xC6A3, 0x75B2, 0xC6A4, 0x76AE, 0xC6A5, 0x5339, 0xC6A6, 0x75DE, 0xC6A7, 0x50FB, + 0xC6A8, 0x5C41, 0xC6A9, 0x8B6C, 0xC6AA, 0x7BC7, 0xC6AB, 0x504F, 0xC6AC, 0x7247, 0xC6AD, 0x9A97, 0xC6AE, 0x98D8, 0xC6AF, 0x6F02, + 0xC6B0, 0x74E2, 0xC6B1, 0x7968, 0xC6B2, 0x6487, 0xC6B3, 0x77A5, 0xC6B4, 0x62FC, 0xC6B5, 0x9891, 0xC6B6, 0x8D2B, 0xC6B7, 0x54C1, + 0xC6B8, 0x8058, 0xC6B9, 0x4E52, 0xC6BA, 0x576A, 0xC6BB, 0x82F9, 0xC6BC, 0x840D, 0xC6BD, 0x5E73, 0xC6BE, 0x51ED, 0xC6BF, 0x74F6, + 0xC6C0, 0x8BC4, 0xC6C1, 0x5C4F, 0xC6C2, 0x5761, 0xC6C3, 0x6CFC, 0xC6C4, 0x9887, 0xC6C5, 0x5A46, 0xC6C6, 0x7834, 0xC6C7, 0x9B44, + 0xC6C8, 0x8FEB, 0xC6C9, 0x7C95, 0xC6CA, 0x5256, 0xC6CB, 0x6251, 0xC6CC, 0x94FA, 0xC6CD, 0x4EC6, 0xC6CE, 0x8386, 0xC6CF, 0x8461, + 0xC6D0, 0x83E9, 0xC6D1, 0x84B2, 0xC6D2, 0x57D4, 0xC6D3, 0x6734, 0xC6D4, 0x5703, 0xC6D5, 0x666E, 0xC6D6, 0x6D66, 0xC6D7, 0x8C31, + 0xC6D8, 0x66DD, 0xC6D9, 0x7011, 0xC6DA, 0x671F, 0xC6DB, 0x6B3A, 0xC6DC, 0x6816, 0xC6DD, 0x621A, 0xC6DE, 0x59BB, 0xC6DF, 0x4E03, + 0xC6E0, 0x51C4, 0xC6E1, 0x6F06, 0xC6E2, 0x67D2, 0xC6E3, 0x6C8F, 0xC6E4, 0x5176, 0xC6E5, 0x68CB, 0xC6E6, 0x5947, 0xC6E7, 0x6B67, + 0xC6E8, 0x7566, 0xC6E9, 0x5D0E, 0xC6EA, 0x8110, 0xC6EB, 0x9F50, 0xC6EC, 0x65D7, 0xC6ED, 0x7948, 0xC6EE, 0x7941, 0xC6EF, 0x9A91, + 0xC6F0, 0x8D77, 0xC6F1, 0x5C82, 0xC6F2, 0x4E5E, 0xC6F3, 0x4F01, 0xC6F4, 0x542F, 0xC6F5, 0x5951, 0xC6F6, 0x780C, 0xC6F7, 0x5668, + 0xC6F8, 0x6C14, 0xC6F9, 0x8FC4, 0xC6FA, 0x5F03, 0xC6FB, 0x6C7D, 0xC6FC, 0x6CE3, 0xC6FD, 0x8BAB, 0xC6FE, 0x6390, 0xC740, 0x833E, + 0xC741, 0x833F, 0xC742, 0x8341, 0xC743, 0x8342, 0xC744, 0x8344, 0xC745, 0x8345, 0xC746, 0x8348, 0xC747, 0x834A, 0xC748, 0x834B, + 0xC749, 0x834C, 0xC74A, 0x834D, 0xC74B, 0x834E, 0xC74C, 0x8353, 0xC74D, 0x8355, 0xC74E, 0x8356, 0xC74F, 0x8357, 0xC750, 0x8358, + 0xC751, 0x8359, 0xC752, 0x835D, 0xC753, 0x8362, 0xC754, 0x8370, 0xC755, 0x8371, 0xC756, 0x8372, 0xC757, 0x8373, 0xC758, 0x8374, + 0xC759, 0x8375, 0xC75A, 0x8376, 0xC75B, 0x8379, 0xC75C, 0x837A, 0xC75D, 0x837E, 0xC75E, 0x837F, 0xC75F, 0x8380, 0xC760, 0x8381, + 0xC761, 0x8382, 0xC762, 0x8383, 0xC763, 0x8384, 0xC764, 0x8387, 0xC765, 0x8388, 0xC766, 0x838A, 0xC767, 0x838B, 0xC768, 0x838C, + 0xC769, 0x838D, 0xC76A, 0x838F, 0xC76B, 0x8390, 0xC76C, 0x8391, 0xC76D, 0x8394, 0xC76E, 0x8395, 0xC76F, 0x8396, 0xC770, 0x8397, + 0xC771, 0x8399, 0xC772, 0x839A, 0xC773, 0x839D, 0xC774, 0x839F, 0xC775, 0x83A1, 0xC776, 0x83A2, 0xC777, 0x83A3, 0xC778, 0x83A4, + 0xC779, 0x83A5, 0xC77A, 0x83A6, 0xC77B, 0x83A7, 0xC77C, 0x83AC, 0xC77D, 0x83AD, 0xC77E, 0x83AE, 0xC780, 0x83AF, 0xC781, 0x83B5, + 0xC782, 0x83BB, 0xC783, 0x83BE, 0xC784, 0x83BF, 0xC785, 0x83C2, 0xC786, 0x83C3, 0xC787, 0x83C4, 0xC788, 0x83C6, 0xC789, 0x83C8, + 0xC78A, 0x83C9, 0xC78B, 0x83CB, 0xC78C, 0x83CD, 0xC78D, 0x83CE, 0xC78E, 0x83D0, 0xC78F, 0x83D1, 0xC790, 0x83D2, 0xC791, 0x83D3, + 0xC792, 0x83D5, 0xC793, 0x83D7, 0xC794, 0x83D9, 0xC795, 0x83DA, 0xC796, 0x83DB, 0xC797, 0x83DE, 0xC798, 0x83E2, 0xC799, 0x83E3, + 0xC79A, 0x83E4, 0xC79B, 0x83E6, 0xC79C, 0x83E7, 0xC79D, 0x83E8, 0xC79E, 0x83EB, 0xC79F, 0x83EC, 0xC7A0, 0x83ED, 0xC7A1, 0x6070, + 0xC7A2, 0x6D3D, 0xC7A3, 0x7275, 0xC7A4, 0x6266, 0xC7A5, 0x948E, 0xC7A6, 0x94C5, 0xC7A7, 0x5343, 0xC7A8, 0x8FC1, 0xC7A9, 0x7B7E, + 0xC7AA, 0x4EDF, 0xC7AB, 0x8C26, 0xC7AC, 0x4E7E, 0xC7AD, 0x9ED4, 0xC7AE, 0x94B1, 0xC7AF, 0x94B3, 0xC7B0, 0x524D, 0xC7B1, 0x6F5C, + 0xC7B2, 0x9063, 0xC7B3, 0x6D45, 0xC7B4, 0x8C34, 0xC7B5, 0x5811, 0xC7B6, 0x5D4C, 0xC7B7, 0x6B20, 0xC7B8, 0x6B49, 0xC7B9, 0x67AA, + 0xC7BA, 0x545B, 0xC7BB, 0x8154, 0xC7BC, 0x7F8C, 0xC7BD, 0x5899, 0xC7BE, 0x8537, 0xC7BF, 0x5F3A, 0xC7C0, 0x62A2, 0xC7C1, 0x6A47, + 0xC7C2, 0x9539, 0xC7C3, 0x6572, 0xC7C4, 0x6084, 0xC7C5, 0x6865, 0xC7C6, 0x77A7, 0xC7C7, 0x4E54, 0xC7C8, 0x4FA8, 0xC7C9, 0x5DE7, + 0xC7CA, 0x9798, 0xC7CB, 0x64AC, 0xC7CC, 0x7FD8, 0xC7CD, 0x5CED, 0xC7CE, 0x4FCF, 0xC7CF, 0x7A8D, 0xC7D0, 0x5207, 0xC7D1, 0x8304, + 0xC7D2, 0x4E14, 0xC7D3, 0x602F, 0xC7D4, 0x7A83, 0xC7D5, 0x94A6, 0xC7D6, 0x4FB5, 0xC7D7, 0x4EB2, 0xC7D8, 0x79E6, 0xC7D9, 0x7434, + 0xC7DA, 0x52E4, 0xC7DB, 0x82B9, 0xC7DC, 0x64D2, 0xC7DD, 0x79BD, 0xC7DE, 0x5BDD, 0xC7DF, 0x6C81, 0xC7E0, 0x9752, 0xC7E1, 0x8F7B, + 0xC7E2, 0x6C22, 0xC7E3, 0x503E, 0xC7E4, 0x537F, 0xC7E5, 0x6E05, 0xC7E6, 0x64CE, 0xC7E7, 0x6674, 0xC7E8, 0x6C30, 0xC7E9, 0x60C5, + 0xC7EA, 0x9877, 0xC7EB, 0x8BF7, 0xC7EC, 0x5E86, 0xC7ED, 0x743C, 0xC7EE, 0x7A77, 0xC7EF, 0x79CB, 0xC7F0, 0x4E18, 0xC7F1, 0x90B1, + 0xC7F2, 0x7403, 0xC7F3, 0x6C42, 0xC7F4, 0x56DA, 0xC7F5, 0x914B, 0xC7F6, 0x6CC5, 0xC7F7, 0x8D8B, 0xC7F8, 0x533A, 0xC7F9, 0x86C6, + 0xC7FA, 0x66F2, 0xC7FB, 0x8EAF, 0xC7FC, 0x5C48, 0xC7FD, 0x9A71, 0xC7FE, 0x6E20, 0xC840, 0x83EE, 0xC841, 0x83EF, 0xC842, 0x83F3, + 0xC843, 0x83F4, 0xC844, 0x83F5, 0xC845, 0x83F6, 0xC846, 0x83F7, 0xC847, 0x83FA, 0xC848, 0x83FB, 0xC849, 0x83FC, 0xC84A, 0x83FE, + 0xC84B, 0x83FF, 0xC84C, 0x8400, 0xC84D, 0x8402, 0xC84E, 0x8405, 0xC84F, 0x8407, 0xC850, 0x8408, 0xC851, 0x8409, 0xC852, 0x840A, + 0xC853, 0x8410, 0xC854, 0x8412, 0xC855, 0x8413, 0xC856, 0x8414, 0xC857, 0x8415, 0xC858, 0x8416, 0xC859, 0x8417, 0xC85A, 0x8419, + 0xC85B, 0x841A, 0xC85C, 0x841B, 0xC85D, 0x841E, 0xC85E, 0x841F, 0xC85F, 0x8420, 0xC860, 0x8421, 0xC861, 0x8422, 0xC862, 0x8423, + 0xC863, 0x8429, 0xC864, 0x842A, 0xC865, 0x842B, 0xC866, 0x842C, 0xC867, 0x842D, 0xC868, 0x842E, 0xC869, 0x842F, 0xC86A, 0x8430, + 0xC86B, 0x8432, 0xC86C, 0x8433, 0xC86D, 0x8434, 0xC86E, 0x8435, 0xC86F, 0x8436, 0xC870, 0x8437, 0xC871, 0x8439, 0xC872, 0x843A, + 0xC873, 0x843B, 0xC874, 0x843E, 0xC875, 0x843F, 0xC876, 0x8440, 0xC877, 0x8441, 0xC878, 0x8442, 0xC879, 0x8443, 0xC87A, 0x8444, + 0xC87B, 0x8445, 0xC87C, 0x8447, 0xC87D, 0x8448, 0xC87E, 0x8449, 0xC880, 0x844A, 0xC881, 0x844B, 0xC882, 0x844C, 0xC883, 0x844D, + 0xC884, 0x844E, 0xC885, 0x844F, 0xC886, 0x8450, 0xC887, 0x8452, 0xC888, 0x8453, 0xC889, 0x8454, 0xC88A, 0x8455, 0xC88B, 0x8456, + 0xC88C, 0x8458, 0xC88D, 0x845D, 0xC88E, 0x845E, 0xC88F, 0x845F, 0xC890, 0x8460, 0xC891, 0x8462, 0xC892, 0x8464, 0xC893, 0x8465, + 0xC894, 0x8466, 0xC895, 0x8467, 0xC896, 0x8468, 0xC897, 0x846A, 0xC898, 0x846E, 0xC899, 0x846F, 0xC89A, 0x8470, 0xC89B, 0x8472, + 0xC89C, 0x8474, 0xC89D, 0x8477, 0xC89E, 0x8479, 0xC89F, 0x847B, 0xC8A0, 0x847C, 0xC8A1, 0x53D6, 0xC8A2, 0x5A36, 0xC8A3, 0x9F8B, + 0xC8A4, 0x8DA3, 0xC8A5, 0x53BB, 0xC8A6, 0x5708, 0xC8A7, 0x98A7, 0xC8A8, 0x6743, 0xC8A9, 0x919B, 0xC8AA, 0x6CC9, 0xC8AB, 0x5168, + 0xC8AC, 0x75CA, 0xC8AD, 0x62F3, 0xC8AE, 0x72AC, 0xC8AF, 0x5238, 0xC8B0, 0x529D, 0xC8B1, 0x7F3A, 0xC8B2, 0x7094, 0xC8B3, 0x7638, + 0xC8B4, 0x5374, 0xC8B5, 0x9E4A, 0xC8B6, 0x69B7, 0xC8B7, 0x786E, 0xC8B8, 0x96C0, 0xC8B9, 0x88D9, 0xC8BA, 0x7FA4, 0xC8BB, 0x7136, + 0xC8BC, 0x71C3, 0xC8BD, 0x5189, 0xC8BE, 0x67D3, 0xC8BF, 0x74E4, 0xC8C0, 0x58E4, 0xC8C1, 0x6518, 0xC8C2, 0x56B7, 0xC8C3, 0x8BA9, + 0xC8C4, 0x9976, 0xC8C5, 0x6270, 0xC8C6, 0x7ED5, 0xC8C7, 0x60F9, 0xC8C8, 0x70ED, 0xC8C9, 0x58EC, 0xC8CA, 0x4EC1, 0xC8CB, 0x4EBA, + 0xC8CC, 0x5FCD, 0xC8CD, 0x97E7, 0xC8CE, 0x4EFB, 0xC8CF, 0x8BA4, 0xC8D0, 0x5203, 0xC8D1, 0x598A, 0xC8D2, 0x7EAB, 0xC8D3, 0x6254, + 0xC8D4, 0x4ECD, 0xC8D5, 0x65E5, 0xC8D6, 0x620E, 0xC8D7, 0x8338, 0xC8D8, 0x84C9, 0xC8D9, 0x8363, 0xC8DA, 0x878D, 0xC8DB, 0x7194, + 0xC8DC, 0x6EB6, 0xC8DD, 0x5BB9, 0xC8DE, 0x7ED2, 0xC8DF, 0x5197, 0xC8E0, 0x63C9, 0xC8E1, 0x67D4, 0xC8E2, 0x8089, 0xC8E3, 0x8339, + 0xC8E4, 0x8815, 0xC8E5, 0x5112, 0xC8E6, 0x5B7A, 0xC8E7, 0x5982, 0xC8E8, 0x8FB1, 0xC8E9, 0x4E73, 0xC8EA, 0x6C5D, 0xC8EB, 0x5165, + 0xC8EC, 0x8925, 0xC8ED, 0x8F6F, 0xC8EE, 0x962E, 0xC8EF, 0x854A, 0xC8F0, 0x745E, 0xC8F1, 0x9510, 0xC8F2, 0x95F0, 0xC8F3, 0x6DA6, + 0xC8F4, 0x82E5, 0xC8F5, 0x5F31, 0xC8F6, 0x6492, 0xC8F7, 0x6D12, 0xC8F8, 0x8428, 0xC8F9, 0x816E, 0xC8FA, 0x9CC3, 0xC8FB, 0x585E, + 0xC8FC, 0x8D5B, 0xC8FD, 0x4E09, 0xC8FE, 0x53C1, 0xC940, 0x847D, 0xC941, 0x847E, 0xC942, 0x847F, 0xC943, 0x8480, 0xC944, 0x8481, + 0xC945, 0x8483, 0xC946, 0x8484, 0xC947, 0x8485, 0xC948, 0x8486, 0xC949, 0x848A, 0xC94A, 0x848D, 0xC94B, 0x848F, 0xC94C, 0x8490, + 0xC94D, 0x8491, 0xC94E, 0x8492, 0xC94F, 0x8493, 0xC950, 0x8494, 0xC951, 0x8495, 0xC952, 0x8496, 0xC953, 0x8498, 0xC954, 0x849A, + 0xC955, 0x849B, 0xC956, 0x849D, 0xC957, 0x849E, 0xC958, 0x849F, 0xC959, 0x84A0, 0xC95A, 0x84A2, 0xC95B, 0x84A3, 0xC95C, 0x84A4, + 0xC95D, 0x84A5, 0xC95E, 0x84A6, 0xC95F, 0x84A7, 0xC960, 0x84A8, 0xC961, 0x84A9, 0xC962, 0x84AA, 0xC963, 0x84AB, 0xC964, 0x84AC, + 0xC965, 0x84AD, 0xC966, 0x84AE, 0xC967, 0x84B0, 0xC968, 0x84B1, 0xC969, 0x84B3, 0xC96A, 0x84B5, 0xC96B, 0x84B6, 0xC96C, 0x84B7, + 0xC96D, 0x84BB, 0xC96E, 0x84BC, 0xC96F, 0x84BE, 0xC970, 0x84C0, 0xC971, 0x84C2, 0xC972, 0x84C3, 0xC973, 0x84C5, 0xC974, 0x84C6, + 0xC975, 0x84C7, 0xC976, 0x84C8, 0xC977, 0x84CB, 0xC978, 0x84CC, 0xC979, 0x84CE, 0xC97A, 0x84CF, 0xC97B, 0x84D2, 0xC97C, 0x84D4, + 0xC97D, 0x84D5, 0xC97E, 0x84D7, 0xC980, 0x84D8, 0xC981, 0x84D9, 0xC982, 0x84DA, 0xC983, 0x84DB, 0xC984, 0x84DC, 0xC985, 0x84DE, + 0xC986, 0x84E1, 0xC987, 0x84E2, 0xC988, 0x84E4, 0xC989, 0x84E7, 0xC98A, 0x84E8, 0xC98B, 0x84E9, 0xC98C, 0x84EA, 0xC98D, 0x84EB, + 0xC98E, 0x84ED, 0xC98F, 0x84EE, 0xC990, 0x84EF, 0xC991, 0x84F1, 0xC992, 0x84F2, 0xC993, 0x84F3, 0xC994, 0x84F4, 0xC995, 0x84F5, + 0xC996, 0x84F6, 0xC997, 0x84F7, 0xC998, 0x84F8, 0xC999, 0x84F9, 0xC99A, 0x84FA, 0xC99B, 0x84FB, 0xC99C, 0x84FD, 0xC99D, 0x84FE, + 0xC99E, 0x8500, 0xC99F, 0x8501, 0xC9A0, 0x8502, 0xC9A1, 0x4F1E, 0xC9A2, 0x6563, 0xC9A3, 0x6851, 0xC9A4, 0x55D3, 0xC9A5, 0x4E27, + 0xC9A6, 0x6414, 0xC9A7, 0x9A9A, 0xC9A8, 0x626B, 0xC9A9, 0x5AC2, 0xC9AA, 0x745F, 0xC9AB, 0x8272, 0xC9AC, 0x6DA9, 0xC9AD, 0x68EE, + 0xC9AE, 0x50E7, 0xC9AF, 0x838E, 0xC9B0, 0x7802, 0xC9B1, 0x6740, 0xC9B2, 0x5239, 0xC9B3, 0x6C99, 0xC9B4, 0x7EB1, 0xC9B5, 0x50BB, + 0xC9B6, 0x5565, 0xC9B7, 0x715E, 0xC9B8, 0x7B5B, 0xC9B9, 0x6652, 0xC9BA, 0x73CA, 0xC9BB, 0x82EB, 0xC9BC, 0x6749, 0xC9BD, 0x5C71, + 0xC9BE, 0x5220, 0xC9BF, 0x717D, 0xC9C0, 0x886B, 0xC9C1, 0x95EA, 0xC9C2, 0x9655, 0xC9C3, 0x64C5, 0xC9C4, 0x8D61, 0xC9C5, 0x81B3, + 0xC9C6, 0x5584, 0xC9C7, 0x6C55, 0xC9C8, 0x6247, 0xC9C9, 0x7F2E, 0xC9CA, 0x5892, 0xC9CB, 0x4F24, 0xC9CC, 0x5546, 0xC9CD, 0x8D4F, + 0xC9CE, 0x664C, 0xC9CF, 0x4E0A, 0xC9D0, 0x5C1A, 0xC9D1, 0x88F3, 0xC9D2, 0x68A2, 0xC9D3, 0x634E, 0xC9D4, 0x7A0D, 0xC9D5, 0x70E7, + 0xC9D6, 0x828D, 0xC9D7, 0x52FA, 0xC9D8, 0x97F6, 0xC9D9, 0x5C11, 0xC9DA, 0x54E8, 0xC9DB, 0x90B5, 0xC9DC, 0x7ECD, 0xC9DD, 0x5962, + 0xC9DE, 0x8D4A, 0xC9DF, 0x86C7, 0xC9E0, 0x820C, 0xC9E1, 0x820D, 0xC9E2, 0x8D66, 0xC9E3, 0x6444, 0xC9E4, 0x5C04, 0xC9E5, 0x6151, + 0xC9E6, 0x6D89, 0xC9E7, 0x793E, 0xC9E8, 0x8BBE, 0xC9E9, 0x7837, 0xC9EA, 0x7533, 0xC9EB, 0x547B, 0xC9EC, 0x4F38, 0xC9ED, 0x8EAB, + 0xC9EE, 0x6DF1, 0xC9EF, 0x5A20, 0xC9F0, 0x7EC5, 0xC9F1, 0x795E, 0xC9F2, 0x6C88, 0xC9F3, 0x5BA1, 0xC9F4, 0x5A76, 0xC9F5, 0x751A, + 0xC9F6, 0x80BE, 0xC9F7, 0x614E, 0xC9F8, 0x6E17, 0xC9F9, 0x58F0, 0xC9FA, 0x751F, 0xC9FB, 0x7525, 0xC9FC, 0x7272, 0xC9FD, 0x5347, + 0xC9FE, 0x7EF3, 0xCA40, 0x8503, 0xCA41, 0x8504, 0xCA42, 0x8505, 0xCA43, 0x8506, 0xCA44, 0x8507, 0xCA45, 0x8508, 0xCA46, 0x8509, + 0xCA47, 0x850A, 0xCA48, 0x850B, 0xCA49, 0x850D, 0xCA4A, 0x850E, 0xCA4B, 0x850F, 0xCA4C, 0x8510, 0xCA4D, 0x8512, 0xCA4E, 0x8514, + 0xCA4F, 0x8515, 0xCA50, 0x8516, 0xCA51, 0x8518, 0xCA52, 0x8519, 0xCA53, 0x851B, 0xCA54, 0x851C, 0xCA55, 0x851D, 0xCA56, 0x851E, + 0xCA57, 0x8520, 0xCA58, 0x8522, 0xCA59, 0x8523, 0xCA5A, 0x8524, 0xCA5B, 0x8525, 0xCA5C, 0x8526, 0xCA5D, 0x8527, 0xCA5E, 0x8528, + 0xCA5F, 0x8529, 0xCA60, 0x852A, 0xCA61, 0x852D, 0xCA62, 0x852E, 0xCA63, 0x852F, 0xCA64, 0x8530, 0xCA65, 0x8531, 0xCA66, 0x8532, + 0xCA67, 0x8533, 0xCA68, 0x8534, 0xCA69, 0x8535, 0xCA6A, 0x8536, 0xCA6B, 0x853E, 0xCA6C, 0x853F, 0xCA6D, 0x8540, 0xCA6E, 0x8541, + 0xCA6F, 0x8542, 0xCA70, 0x8544, 0xCA71, 0x8545, 0xCA72, 0x8546, 0xCA73, 0x8547, 0xCA74, 0x854B, 0xCA75, 0x854C, 0xCA76, 0x854D, + 0xCA77, 0x854E, 0xCA78, 0x854F, 0xCA79, 0x8550, 0xCA7A, 0x8551, 0xCA7B, 0x8552, 0xCA7C, 0x8553, 0xCA7D, 0x8554, 0xCA7E, 0x8555, + 0xCA80, 0x8557, 0xCA81, 0x8558, 0xCA82, 0x855A, 0xCA83, 0x855B, 0xCA84, 0x855C, 0xCA85, 0x855D, 0xCA86, 0x855F, 0xCA87, 0x8560, + 0xCA88, 0x8561, 0xCA89, 0x8562, 0xCA8A, 0x8563, 0xCA8B, 0x8565, 0xCA8C, 0x8566, 0xCA8D, 0x8567, 0xCA8E, 0x8569, 0xCA8F, 0x856A, + 0xCA90, 0x856B, 0xCA91, 0x856C, 0xCA92, 0x856D, 0xCA93, 0x856E, 0xCA94, 0x856F, 0xCA95, 0x8570, 0xCA96, 0x8571, 0xCA97, 0x8573, + 0xCA98, 0x8575, 0xCA99, 0x8576, 0xCA9A, 0x8577, 0xCA9B, 0x8578, 0xCA9C, 0x857C, 0xCA9D, 0x857D, 0xCA9E, 0x857F, 0xCA9F, 0x8580, + 0xCAA0, 0x8581, 0xCAA1, 0x7701, 0xCAA2, 0x76DB, 0xCAA3, 0x5269, 0xCAA4, 0x80DC, 0xCAA5, 0x5723, 0xCAA6, 0x5E08, 0xCAA7, 0x5931, + 0xCAA8, 0x72EE, 0xCAA9, 0x65BD, 0xCAAA, 0x6E7F, 0xCAAB, 0x8BD7, 0xCAAC, 0x5C38, 0xCAAD, 0x8671, 0xCAAE, 0x5341, 0xCAAF, 0x77F3, + 0xCAB0, 0x62FE, 0xCAB1, 0x65F6, 0xCAB2, 0x4EC0, 0xCAB3, 0x98DF, 0xCAB4, 0x8680, 0xCAB5, 0x5B9E, 0xCAB6, 0x8BC6, 0xCAB7, 0x53F2, + 0xCAB8, 0x77E2, 0xCAB9, 0x4F7F, 0xCABA, 0x5C4E, 0xCABB, 0x9A76, 0xCABC, 0x59CB, 0xCABD, 0x5F0F, 0xCABE, 0x793A, 0xCABF, 0x58EB, + 0xCAC0, 0x4E16, 0xCAC1, 0x67FF, 0xCAC2, 0x4E8B, 0xCAC3, 0x62ED, 0xCAC4, 0x8A93, 0xCAC5, 0x901D, 0xCAC6, 0x52BF, 0xCAC7, 0x662F, + 0xCAC8, 0x55DC, 0xCAC9, 0x566C, 0xCACA, 0x9002, 0xCACB, 0x4ED5, 0xCACC, 0x4F8D, 0xCACD, 0x91CA, 0xCACE, 0x9970, 0xCACF, 0x6C0F, + 0xCAD0, 0x5E02, 0xCAD1, 0x6043, 0xCAD2, 0x5BA4, 0xCAD3, 0x89C6, 0xCAD4, 0x8BD5, 0xCAD5, 0x6536, 0xCAD6, 0x624B, 0xCAD7, 0x9996, + 0xCAD8, 0x5B88, 0xCAD9, 0x5BFF, 0xCADA, 0x6388, 0xCADB, 0x552E, 0xCADC, 0x53D7, 0xCADD, 0x7626, 0xCADE, 0x517D, 0xCADF, 0x852C, + 0xCAE0, 0x67A2, 0xCAE1, 0x68B3, 0xCAE2, 0x6B8A, 0xCAE3, 0x6292, 0xCAE4, 0x8F93, 0xCAE5, 0x53D4, 0xCAE6, 0x8212, 0xCAE7, 0x6DD1, + 0xCAE8, 0x758F, 0xCAE9, 0x4E66, 0xCAEA, 0x8D4E, 0xCAEB, 0x5B70, 0xCAEC, 0x719F, 0xCAED, 0x85AF, 0xCAEE, 0x6691, 0xCAEF, 0x66D9, + 0xCAF0, 0x7F72, 0xCAF1, 0x8700, 0xCAF2, 0x9ECD, 0xCAF3, 0x9F20, 0xCAF4, 0x5C5E, 0xCAF5, 0x672F, 0xCAF6, 0x8FF0, 0xCAF7, 0x6811, + 0xCAF8, 0x675F, 0xCAF9, 0x620D, 0xCAFA, 0x7AD6, 0xCAFB, 0x5885, 0xCAFC, 0x5EB6, 0xCAFD, 0x6570, 0xCAFE, 0x6F31, 0xCB40, 0x8582, + 0xCB41, 0x8583, 0xCB42, 0x8586, 0xCB43, 0x8588, 0xCB44, 0x8589, 0xCB45, 0x858A, 0xCB46, 0x858B, 0xCB47, 0x858C, 0xCB48, 0x858D, + 0xCB49, 0x858E, 0xCB4A, 0x8590, 0xCB4B, 0x8591, 0xCB4C, 0x8592, 0xCB4D, 0x8593, 0xCB4E, 0x8594, 0xCB4F, 0x8595, 0xCB50, 0x8596, + 0xCB51, 0x8597, 0xCB52, 0x8598, 0xCB53, 0x8599, 0xCB54, 0x859A, 0xCB55, 0x859D, 0xCB56, 0x859E, 0xCB57, 0x859F, 0xCB58, 0x85A0, + 0xCB59, 0x85A1, 0xCB5A, 0x85A2, 0xCB5B, 0x85A3, 0xCB5C, 0x85A5, 0xCB5D, 0x85A6, 0xCB5E, 0x85A7, 0xCB5F, 0x85A9, 0xCB60, 0x85AB, + 0xCB61, 0x85AC, 0xCB62, 0x85AD, 0xCB63, 0x85B1, 0xCB64, 0x85B2, 0xCB65, 0x85B3, 0xCB66, 0x85B4, 0xCB67, 0x85B5, 0xCB68, 0x85B6, + 0xCB69, 0x85B8, 0xCB6A, 0x85BA, 0xCB6B, 0x85BB, 0xCB6C, 0x85BC, 0xCB6D, 0x85BD, 0xCB6E, 0x85BE, 0xCB6F, 0x85BF, 0xCB70, 0x85C0, + 0xCB71, 0x85C2, 0xCB72, 0x85C3, 0xCB73, 0x85C4, 0xCB74, 0x85C5, 0xCB75, 0x85C6, 0xCB76, 0x85C7, 0xCB77, 0x85C8, 0xCB78, 0x85CA, + 0xCB79, 0x85CB, 0xCB7A, 0x85CC, 0xCB7B, 0x85CD, 0xCB7C, 0x85CE, 0xCB7D, 0x85D1, 0xCB7E, 0x85D2, 0xCB80, 0x85D4, 0xCB81, 0x85D6, + 0xCB82, 0x85D7, 0xCB83, 0x85D8, 0xCB84, 0x85D9, 0xCB85, 0x85DA, 0xCB86, 0x85DB, 0xCB87, 0x85DD, 0xCB88, 0x85DE, 0xCB89, 0x85DF, + 0xCB8A, 0x85E0, 0xCB8B, 0x85E1, 0xCB8C, 0x85E2, 0xCB8D, 0x85E3, 0xCB8E, 0x85E5, 0xCB8F, 0x85E6, 0xCB90, 0x85E7, 0xCB91, 0x85E8, + 0xCB92, 0x85EA, 0xCB93, 0x85EB, 0xCB94, 0x85EC, 0xCB95, 0x85ED, 0xCB96, 0x85EE, 0xCB97, 0x85EF, 0xCB98, 0x85F0, 0xCB99, 0x85F1, + 0xCB9A, 0x85F2, 0xCB9B, 0x85F3, 0xCB9C, 0x85F4, 0xCB9D, 0x85F5, 0xCB9E, 0x85F6, 0xCB9F, 0x85F7, 0xCBA0, 0x85F8, 0xCBA1, 0x6055, + 0xCBA2, 0x5237, 0xCBA3, 0x800D, 0xCBA4, 0x6454, 0xCBA5, 0x8870, 0xCBA6, 0x7529, 0xCBA7, 0x5E05, 0xCBA8, 0x6813, 0xCBA9, 0x62F4, + 0xCBAA, 0x971C, 0xCBAB, 0x53CC, 0xCBAC, 0x723D, 0xCBAD, 0x8C01, 0xCBAE, 0x6C34, 0xCBAF, 0x7761, 0xCBB0, 0x7A0E, 0xCBB1, 0x542E, + 0xCBB2, 0x77AC, 0xCBB3, 0x987A, 0xCBB4, 0x821C, 0xCBB5, 0x8BF4, 0xCBB6, 0x7855, 0xCBB7, 0x6714, 0xCBB8, 0x70C1, 0xCBB9, 0x65AF, + 0xCBBA, 0x6495, 0xCBBB, 0x5636, 0xCBBC, 0x601D, 0xCBBD, 0x79C1, 0xCBBE, 0x53F8, 0xCBBF, 0x4E1D, 0xCBC0, 0x6B7B, 0xCBC1, 0x8086, + 0xCBC2, 0x5BFA, 0xCBC3, 0x55E3, 0xCBC4, 0x56DB, 0xCBC5, 0x4F3A, 0xCBC6, 0x4F3C, 0xCBC7, 0x9972, 0xCBC8, 0x5DF3, 0xCBC9, 0x677E, + 0xCBCA, 0x8038, 0xCBCB, 0x6002, 0xCBCC, 0x9882, 0xCBCD, 0x9001, 0xCBCE, 0x5B8B, 0xCBCF, 0x8BBC, 0xCBD0, 0x8BF5, 0xCBD1, 0x641C, + 0xCBD2, 0x8258, 0xCBD3, 0x64DE, 0xCBD4, 0x55FD, 0xCBD5, 0x82CF, 0xCBD6, 0x9165, 0xCBD7, 0x4FD7, 0xCBD8, 0x7D20, 0xCBD9, 0x901F, + 0xCBDA, 0x7C9F, 0xCBDB, 0x50F3, 0xCBDC, 0x5851, 0xCBDD, 0x6EAF, 0xCBDE, 0x5BBF, 0xCBDF, 0x8BC9, 0xCBE0, 0x8083, 0xCBE1, 0x9178, + 0xCBE2, 0x849C, 0xCBE3, 0x7B97, 0xCBE4, 0x867D, 0xCBE5, 0x968B, 0xCBE6, 0x968F, 0xCBE7, 0x7EE5, 0xCBE8, 0x9AD3, 0xCBE9, 0x788E, + 0xCBEA, 0x5C81, 0xCBEB, 0x7A57, 0xCBEC, 0x9042, 0xCBED, 0x96A7, 0xCBEE, 0x795F, 0xCBEF, 0x5B59, 0xCBF0, 0x635F, 0xCBF1, 0x7B0B, + 0xCBF2, 0x84D1, 0xCBF3, 0x68AD, 0xCBF4, 0x5506, 0xCBF5, 0x7F29, 0xCBF6, 0x7410, 0xCBF7, 0x7D22, 0xCBF8, 0x9501, 0xCBF9, 0x6240, + 0xCBFA, 0x584C, 0xCBFB, 0x4ED6, 0xCBFC, 0x5B83, 0xCBFD, 0x5979, 0xCBFE, 0x5854, 0xCC40, 0x85F9, 0xCC41, 0x85FA, 0xCC42, 0x85FC, + 0xCC43, 0x85FD, 0xCC44, 0x85FE, 0xCC45, 0x8600, 0xCC46, 0x8601, 0xCC47, 0x8602, 0xCC48, 0x8603, 0xCC49, 0x8604, 0xCC4A, 0x8606, + 0xCC4B, 0x8607, 0xCC4C, 0x8608, 0xCC4D, 0x8609, 0xCC4E, 0x860A, 0xCC4F, 0x860B, 0xCC50, 0x860C, 0xCC51, 0x860D, 0xCC52, 0x860E, + 0xCC53, 0x860F, 0xCC54, 0x8610, 0xCC55, 0x8612, 0xCC56, 0x8613, 0xCC57, 0x8614, 0xCC58, 0x8615, 0xCC59, 0x8617, 0xCC5A, 0x8618, + 0xCC5B, 0x8619, 0xCC5C, 0x861A, 0xCC5D, 0x861B, 0xCC5E, 0x861C, 0xCC5F, 0x861D, 0xCC60, 0x861E, 0xCC61, 0x861F, 0xCC62, 0x8620, + 0xCC63, 0x8621, 0xCC64, 0x8622, 0xCC65, 0x8623, 0xCC66, 0x8624, 0xCC67, 0x8625, 0xCC68, 0x8626, 0xCC69, 0x8628, 0xCC6A, 0x862A, + 0xCC6B, 0x862B, 0xCC6C, 0x862C, 0xCC6D, 0x862D, 0xCC6E, 0x862E, 0xCC6F, 0x862F, 0xCC70, 0x8630, 0xCC71, 0x8631, 0xCC72, 0x8632, + 0xCC73, 0x8633, 0xCC74, 0x8634, 0xCC75, 0x8635, 0xCC76, 0x8636, 0xCC77, 0x8637, 0xCC78, 0x8639, 0xCC79, 0x863A, 0xCC7A, 0x863B, + 0xCC7B, 0x863D, 0xCC7C, 0x863E, 0xCC7D, 0x863F, 0xCC7E, 0x8640, 0xCC80, 0x8641, 0xCC81, 0x8642, 0xCC82, 0x8643, 0xCC83, 0x8644, + 0xCC84, 0x8645, 0xCC85, 0x8646, 0xCC86, 0x8647, 0xCC87, 0x8648, 0xCC88, 0x8649, 0xCC89, 0x864A, 0xCC8A, 0x864B, 0xCC8B, 0x864C, + 0xCC8C, 0x8652, 0xCC8D, 0x8653, 0xCC8E, 0x8655, 0xCC8F, 0x8656, 0xCC90, 0x8657, 0xCC91, 0x8658, 0xCC92, 0x8659, 0xCC93, 0x865B, + 0xCC94, 0x865C, 0xCC95, 0x865D, 0xCC96, 0x865F, 0xCC97, 0x8660, 0xCC98, 0x8661, 0xCC99, 0x8663, 0xCC9A, 0x8664, 0xCC9B, 0x8665, + 0xCC9C, 0x8666, 0xCC9D, 0x8667, 0xCC9E, 0x8668, 0xCC9F, 0x8669, 0xCCA0, 0x866A, 0xCCA1, 0x736D, 0xCCA2, 0x631E, 0xCCA3, 0x8E4B, + 0xCCA4, 0x8E0F, 0xCCA5, 0x80CE, 0xCCA6, 0x82D4, 0xCCA7, 0x62AC, 0xCCA8, 0x53F0, 0xCCA9, 0x6CF0, 0xCCAA, 0x915E, 0xCCAB, 0x592A, + 0xCCAC, 0x6001, 0xCCAD, 0x6C70, 0xCCAE, 0x574D, 0xCCAF, 0x644A, 0xCCB0, 0x8D2A, 0xCCB1, 0x762B, 0xCCB2, 0x6EE9, 0xCCB3, 0x575B, + 0xCCB4, 0x6A80, 0xCCB5, 0x75F0, 0xCCB6, 0x6F6D, 0xCCB7, 0x8C2D, 0xCCB8, 0x8C08, 0xCCB9, 0x5766, 0xCCBA, 0x6BEF, 0xCCBB, 0x8892, + 0xCCBC, 0x78B3, 0xCCBD, 0x63A2, 0xCCBE, 0x53F9, 0xCCBF, 0x70AD, 0xCCC0, 0x6C64, 0xCCC1, 0x5858, 0xCCC2, 0x642A, 0xCCC3, 0x5802, + 0xCCC4, 0x68E0, 0xCCC5, 0x819B, 0xCCC6, 0x5510, 0xCCC7, 0x7CD6, 0xCCC8, 0x5018, 0xCCC9, 0x8EBA, 0xCCCA, 0x6DCC, 0xCCCB, 0x8D9F, + 0xCCCC, 0x70EB, 0xCCCD, 0x638F, 0xCCCE, 0x6D9B, 0xCCCF, 0x6ED4, 0xCCD0, 0x7EE6, 0xCCD1, 0x8404, 0xCCD2, 0x6843, 0xCCD3, 0x9003, + 0xCCD4, 0x6DD8, 0xCCD5, 0x9676, 0xCCD6, 0x8BA8, 0xCCD7, 0x5957, 0xCCD8, 0x7279, 0xCCD9, 0x85E4, 0xCCDA, 0x817E, 0xCCDB, 0x75BC, + 0xCCDC, 0x8A8A, 0xCCDD, 0x68AF, 0xCCDE, 0x5254, 0xCCDF, 0x8E22, 0xCCE0, 0x9511, 0xCCE1, 0x63D0, 0xCCE2, 0x9898, 0xCCE3, 0x8E44, + 0xCCE4, 0x557C, 0xCCE5, 0x4F53, 0xCCE6, 0x66FF, 0xCCE7, 0x568F, 0xCCE8, 0x60D5, 0xCCE9, 0x6D95, 0xCCEA, 0x5243, 0xCCEB, 0x5C49, + 0xCCEC, 0x5929, 0xCCED, 0x6DFB, 0xCCEE, 0x586B, 0xCCEF, 0x7530, 0xCCF0, 0x751C, 0xCCF1, 0x606C, 0xCCF2, 0x8214, 0xCCF3, 0x8146, + 0xCCF4, 0x6311, 0xCCF5, 0x6761, 0xCCF6, 0x8FE2, 0xCCF7, 0x773A, 0xCCF8, 0x8DF3, 0xCCF9, 0x8D34, 0xCCFA, 0x94C1, 0xCCFB, 0x5E16, + 0xCCFC, 0x5385, 0xCCFD, 0x542C, 0xCCFE, 0x70C3, 0xCD40, 0x866D, 0xCD41, 0x866F, 0xCD42, 0x8670, 0xCD43, 0x8672, 0xCD44, 0x8673, + 0xCD45, 0x8674, 0xCD46, 0x8675, 0xCD47, 0x8676, 0xCD48, 0x8677, 0xCD49, 0x8678, 0xCD4A, 0x8683, 0xCD4B, 0x8684, 0xCD4C, 0x8685, + 0xCD4D, 0x8686, 0xCD4E, 0x8687, 0xCD4F, 0x8688, 0xCD50, 0x8689, 0xCD51, 0x868E, 0xCD52, 0x868F, 0xCD53, 0x8690, 0xCD54, 0x8691, + 0xCD55, 0x8692, 0xCD56, 0x8694, 0xCD57, 0x8696, 0xCD58, 0x8697, 0xCD59, 0x8698, 0xCD5A, 0x8699, 0xCD5B, 0x869A, 0xCD5C, 0x869B, + 0xCD5D, 0x869E, 0xCD5E, 0x869F, 0xCD5F, 0x86A0, 0xCD60, 0x86A1, 0xCD61, 0x86A2, 0xCD62, 0x86A5, 0xCD63, 0x86A6, 0xCD64, 0x86AB, + 0xCD65, 0x86AD, 0xCD66, 0x86AE, 0xCD67, 0x86B2, 0xCD68, 0x86B3, 0xCD69, 0x86B7, 0xCD6A, 0x86B8, 0xCD6B, 0x86B9, 0xCD6C, 0x86BB, + 0xCD6D, 0x86BC, 0xCD6E, 0x86BD, 0xCD6F, 0x86BE, 0xCD70, 0x86BF, 0xCD71, 0x86C1, 0xCD72, 0x86C2, 0xCD73, 0x86C3, 0xCD74, 0x86C5, + 0xCD75, 0x86C8, 0xCD76, 0x86CC, 0xCD77, 0x86CD, 0xCD78, 0x86D2, 0xCD79, 0x86D3, 0xCD7A, 0x86D5, 0xCD7B, 0x86D6, 0xCD7C, 0x86D7, + 0xCD7D, 0x86DA, 0xCD7E, 0x86DC, 0xCD80, 0x86DD, 0xCD81, 0x86E0, 0xCD82, 0x86E1, 0xCD83, 0x86E2, 0xCD84, 0x86E3, 0xCD85, 0x86E5, + 0xCD86, 0x86E6, 0xCD87, 0x86E7, 0xCD88, 0x86E8, 0xCD89, 0x86EA, 0xCD8A, 0x86EB, 0xCD8B, 0x86EC, 0xCD8C, 0x86EF, 0xCD8D, 0x86F5, + 0xCD8E, 0x86F6, 0xCD8F, 0x86F7, 0xCD90, 0x86FA, 0xCD91, 0x86FB, 0xCD92, 0x86FC, 0xCD93, 0x86FD, 0xCD94, 0x86FF, 0xCD95, 0x8701, + 0xCD96, 0x8704, 0xCD97, 0x8705, 0xCD98, 0x8706, 0xCD99, 0x870B, 0xCD9A, 0x870C, 0xCD9B, 0x870E, 0xCD9C, 0x870F, 0xCD9D, 0x8710, + 0xCD9E, 0x8711, 0xCD9F, 0x8714, 0xCDA0, 0x8716, 0xCDA1, 0x6C40, 0xCDA2, 0x5EF7, 0xCDA3, 0x505C, 0xCDA4, 0x4EAD, 0xCDA5, 0x5EAD, + 0xCDA6, 0x633A, 0xCDA7, 0x8247, 0xCDA8, 0x901A, 0xCDA9, 0x6850, 0xCDAA, 0x916E, 0xCDAB, 0x77B3, 0xCDAC, 0x540C, 0xCDAD, 0x94DC, + 0xCDAE, 0x5F64, 0xCDAF, 0x7AE5, 0xCDB0, 0x6876, 0xCDB1, 0x6345, 0xCDB2, 0x7B52, 0xCDB3, 0x7EDF, 0xCDB4, 0x75DB, 0xCDB5, 0x5077, + 0xCDB6, 0x6295, 0xCDB7, 0x5934, 0xCDB8, 0x900F, 0xCDB9, 0x51F8, 0xCDBA, 0x79C3, 0xCDBB, 0x7A81, 0xCDBC, 0x56FE, 0xCDBD, 0x5F92, + 0xCDBE, 0x9014, 0xCDBF, 0x6D82, 0xCDC0, 0x5C60, 0xCDC1, 0x571F, 0xCDC2, 0x5410, 0xCDC3, 0x5154, 0xCDC4, 0x6E4D, 0xCDC5, 0x56E2, + 0xCDC6, 0x63A8, 0xCDC7, 0x9893, 0xCDC8, 0x817F, 0xCDC9, 0x8715, 0xCDCA, 0x892A, 0xCDCB, 0x9000, 0xCDCC, 0x541E, 0xCDCD, 0x5C6F, + 0xCDCE, 0x81C0, 0xCDCF, 0x62D6, 0xCDD0, 0x6258, 0xCDD1, 0x8131, 0xCDD2, 0x9E35, 0xCDD3, 0x9640, 0xCDD4, 0x9A6E, 0xCDD5, 0x9A7C, + 0xCDD6, 0x692D, 0xCDD7, 0x59A5, 0xCDD8, 0x62D3, 0xCDD9, 0x553E, 0xCDDA, 0x6316, 0xCDDB, 0x54C7, 0xCDDC, 0x86D9, 0xCDDD, 0x6D3C, + 0xCDDE, 0x5A03, 0xCDDF, 0x74E6, 0xCDE0, 0x889C, 0xCDE1, 0x6B6A, 0xCDE2, 0x5916, 0xCDE3, 0x8C4C, 0xCDE4, 0x5F2F, 0xCDE5, 0x6E7E, + 0xCDE6, 0x73A9, 0xCDE7, 0x987D, 0xCDE8, 0x4E38, 0xCDE9, 0x70F7, 0xCDEA, 0x5B8C, 0xCDEB, 0x7897, 0xCDEC, 0x633D, 0xCDED, 0x665A, + 0xCDEE, 0x7696, 0xCDEF, 0x60CB, 0xCDF0, 0x5B9B, 0xCDF1, 0x5A49, 0xCDF2, 0x4E07, 0xCDF3, 0x8155, 0xCDF4, 0x6C6A, 0xCDF5, 0x738B, + 0xCDF6, 0x4EA1, 0xCDF7, 0x6789, 0xCDF8, 0x7F51, 0xCDF9, 0x5F80, 0xCDFA, 0x65FA, 0xCDFB, 0x671B, 0xCDFC, 0x5FD8, 0xCDFD, 0x5984, + 0xCDFE, 0x5A01, 0xCE40, 0x8719, 0xCE41, 0x871B, 0xCE42, 0x871D, 0xCE43, 0x871F, 0xCE44, 0x8720, 0xCE45, 0x8724, 0xCE46, 0x8726, + 0xCE47, 0x8727, 0xCE48, 0x8728, 0xCE49, 0x872A, 0xCE4A, 0x872B, 0xCE4B, 0x872C, 0xCE4C, 0x872D, 0xCE4D, 0x872F, 0xCE4E, 0x8730, + 0xCE4F, 0x8732, 0xCE50, 0x8733, 0xCE51, 0x8735, 0xCE52, 0x8736, 0xCE53, 0x8738, 0xCE54, 0x8739, 0xCE55, 0x873A, 0xCE56, 0x873C, + 0xCE57, 0x873D, 0xCE58, 0x8740, 0xCE59, 0x8741, 0xCE5A, 0x8742, 0xCE5B, 0x8743, 0xCE5C, 0x8744, 0xCE5D, 0x8745, 0xCE5E, 0x8746, + 0xCE5F, 0x874A, 0xCE60, 0x874B, 0xCE61, 0x874D, 0xCE62, 0x874F, 0xCE63, 0x8750, 0xCE64, 0x8751, 0xCE65, 0x8752, 0xCE66, 0x8754, + 0xCE67, 0x8755, 0xCE68, 0x8756, 0xCE69, 0x8758, 0xCE6A, 0x875A, 0xCE6B, 0x875B, 0xCE6C, 0x875C, 0xCE6D, 0x875D, 0xCE6E, 0x875E, + 0xCE6F, 0x875F, 0xCE70, 0x8761, 0xCE71, 0x8762, 0xCE72, 0x8766, 0xCE73, 0x8767, 0xCE74, 0x8768, 0xCE75, 0x8769, 0xCE76, 0x876A, + 0xCE77, 0x876B, 0xCE78, 0x876C, 0xCE79, 0x876D, 0xCE7A, 0x876F, 0xCE7B, 0x8771, 0xCE7C, 0x8772, 0xCE7D, 0x8773, 0xCE7E, 0x8775, + 0xCE80, 0x8777, 0xCE81, 0x8778, 0xCE82, 0x8779, 0xCE83, 0x877A, 0xCE84, 0x877F, 0xCE85, 0x8780, 0xCE86, 0x8781, 0xCE87, 0x8784, + 0xCE88, 0x8786, 0xCE89, 0x8787, 0xCE8A, 0x8789, 0xCE8B, 0x878A, 0xCE8C, 0x878C, 0xCE8D, 0x878E, 0xCE8E, 0x878F, 0xCE8F, 0x8790, + 0xCE90, 0x8791, 0xCE91, 0x8792, 0xCE92, 0x8794, 0xCE93, 0x8795, 0xCE94, 0x8796, 0xCE95, 0x8798, 0xCE96, 0x8799, 0xCE97, 0x879A, + 0xCE98, 0x879B, 0xCE99, 0x879C, 0xCE9A, 0x879D, 0xCE9B, 0x879E, 0xCE9C, 0x87A0, 0xCE9D, 0x87A1, 0xCE9E, 0x87A2, 0xCE9F, 0x87A3, + 0xCEA0, 0x87A4, 0xCEA1, 0x5DCD, 0xCEA2, 0x5FAE, 0xCEA3, 0x5371, 0xCEA4, 0x97E6, 0xCEA5, 0x8FDD, 0xCEA6, 0x6845, 0xCEA7, 0x56F4, + 0xCEA8, 0x552F, 0xCEA9, 0x60DF, 0xCEAA, 0x4E3A, 0xCEAB, 0x6F4D, 0xCEAC, 0x7EF4, 0xCEAD, 0x82C7, 0xCEAE, 0x840E, 0xCEAF, 0x59D4, + 0xCEB0, 0x4F1F, 0xCEB1, 0x4F2A, 0xCEB2, 0x5C3E, 0xCEB3, 0x7EAC, 0xCEB4, 0x672A, 0xCEB5, 0x851A, 0xCEB6, 0x5473, 0xCEB7, 0x754F, + 0xCEB8, 0x80C3, 0xCEB9, 0x5582, 0xCEBA, 0x9B4F, 0xCEBB, 0x4F4D, 0xCEBC, 0x6E2D, 0xCEBD, 0x8C13, 0xCEBE, 0x5C09, 0xCEBF, 0x6170, + 0xCEC0, 0x536B, 0xCEC1, 0x761F, 0xCEC2, 0x6E29, 0xCEC3, 0x868A, 0xCEC4, 0x6587, 0xCEC5, 0x95FB, 0xCEC6, 0x7EB9, 0xCEC7, 0x543B, + 0xCEC8, 0x7A33, 0xCEC9, 0x7D0A, 0xCECA, 0x95EE, 0xCECB, 0x55E1, 0xCECC, 0x7FC1, 0xCECD, 0x74EE, 0xCECE, 0x631D, 0xCECF, 0x8717, + 0xCED0, 0x6DA1, 0xCED1, 0x7A9D, 0xCED2, 0x6211, 0xCED3, 0x65A1, 0xCED4, 0x5367, 0xCED5, 0x63E1, 0xCED6, 0x6C83, 0xCED7, 0x5DEB, + 0xCED8, 0x545C, 0xCED9, 0x94A8, 0xCEDA, 0x4E4C, 0xCEDB, 0x6C61, 0xCEDC, 0x8BEC, 0xCEDD, 0x5C4B, 0xCEDE, 0x65E0, 0xCEDF, 0x829C, + 0xCEE0, 0x68A7, 0xCEE1, 0x543E, 0xCEE2, 0x5434, 0xCEE3, 0x6BCB, 0xCEE4, 0x6B66, 0xCEE5, 0x4E94, 0xCEE6, 0x6342, 0xCEE7, 0x5348, + 0xCEE8, 0x821E, 0xCEE9, 0x4F0D, 0xCEEA, 0x4FAE, 0xCEEB, 0x575E, 0xCEEC, 0x620A, 0xCEED, 0x96FE, 0xCEEE, 0x6664, 0xCEEF, 0x7269, + 0xCEF0, 0x52FF, 0xCEF1, 0x52A1, 0xCEF2, 0x609F, 0xCEF3, 0x8BEF, 0xCEF4, 0x6614, 0xCEF5, 0x7199, 0xCEF6, 0x6790, 0xCEF7, 0x897F, + 0xCEF8, 0x7852, 0xCEF9, 0x77FD, 0xCEFA, 0x6670, 0xCEFB, 0x563B, 0xCEFC, 0x5438, 0xCEFD, 0x9521, 0xCEFE, 0x727A, 0xCF40, 0x87A5, + 0xCF41, 0x87A6, 0xCF42, 0x87A7, 0xCF43, 0x87A9, 0xCF44, 0x87AA, 0xCF45, 0x87AE, 0xCF46, 0x87B0, 0xCF47, 0x87B1, 0xCF48, 0x87B2, + 0xCF49, 0x87B4, 0xCF4A, 0x87B6, 0xCF4B, 0x87B7, 0xCF4C, 0x87B8, 0xCF4D, 0x87B9, 0xCF4E, 0x87BB, 0xCF4F, 0x87BC, 0xCF50, 0x87BE, + 0xCF51, 0x87BF, 0xCF52, 0x87C1, 0xCF53, 0x87C2, 0xCF54, 0x87C3, 0xCF55, 0x87C4, 0xCF56, 0x87C5, 0xCF57, 0x87C7, 0xCF58, 0x87C8, + 0xCF59, 0x87C9, 0xCF5A, 0x87CC, 0xCF5B, 0x87CD, 0xCF5C, 0x87CE, 0xCF5D, 0x87CF, 0xCF5E, 0x87D0, 0xCF5F, 0x87D4, 0xCF60, 0x87D5, + 0xCF61, 0x87D6, 0xCF62, 0x87D7, 0xCF63, 0x87D8, 0xCF64, 0x87D9, 0xCF65, 0x87DA, 0xCF66, 0x87DC, 0xCF67, 0x87DD, 0xCF68, 0x87DE, + 0xCF69, 0x87DF, 0xCF6A, 0x87E1, 0xCF6B, 0x87E2, 0xCF6C, 0x87E3, 0xCF6D, 0x87E4, 0xCF6E, 0x87E6, 0xCF6F, 0x87E7, 0xCF70, 0x87E8, + 0xCF71, 0x87E9, 0xCF72, 0x87EB, 0xCF73, 0x87EC, 0xCF74, 0x87ED, 0xCF75, 0x87EF, 0xCF76, 0x87F0, 0xCF77, 0x87F1, 0xCF78, 0x87F2, + 0xCF79, 0x87F3, 0xCF7A, 0x87F4, 0xCF7B, 0x87F5, 0xCF7C, 0x87F6, 0xCF7D, 0x87F7, 0xCF7E, 0x87F8, 0xCF80, 0x87FA, 0xCF81, 0x87FB, + 0xCF82, 0x87FC, 0xCF83, 0x87FD, 0xCF84, 0x87FF, 0xCF85, 0x8800, 0xCF86, 0x8801, 0xCF87, 0x8802, 0xCF88, 0x8804, 0xCF89, 0x8805, + 0xCF8A, 0x8806, 0xCF8B, 0x8807, 0xCF8C, 0x8808, 0xCF8D, 0x8809, 0xCF8E, 0x880B, 0xCF8F, 0x880C, 0xCF90, 0x880D, 0xCF91, 0x880E, + 0xCF92, 0x880F, 0xCF93, 0x8810, 0xCF94, 0x8811, 0xCF95, 0x8812, 0xCF96, 0x8814, 0xCF97, 0x8817, 0xCF98, 0x8818, 0xCF99, 0x8819, + 0xCF9A, 0x881A, 0xCF9B, 0x881C, 0xCF9C, 0x881D, 0xCF9D, 0x881E, 0xCF9E, 0x881F, 0xCF9F, 0x8820, 0xCFA0, 0x8823, 0xCFA1, 0x7A00, + 0xCFA2, 0x606F, 0xCFA3, 0x5E0C, 0xCFA4, 0x6089, 0xCFA5, 0x819D, 0xCFA6, 0x5915, 0xCFA7, 0x60DC, 0xCFA8, 0x7184, 0xCFA9, 0x70EF, + 0xCFAA, 0x6EAA, 0xCFAB, 0x6C50, 0xCFAC, 0x7280, 0xCFAD, 0x6A84, 0xCFAE, 0x88AD, 0xCFAF, 0x5E2D, 0xCFB0, 0x4E60, 0xCFB1, 0x5AB3, + 0xCFB2, 0x559C, 0xCFB3, 0x94E3, 0xCFB4, 0x6D17, 0xCFB5, 0x7CFB, 0xCFB6, 0x9699, 0xCFB7, 0x620F, 0xCFB8, 0x7EC6, 0xCFB9, 0x778E, + 0xCFBA, 0x867E, 0xCFBB, 0x5323, 0xCFBC, 0x971E, 0xCFBD, 0x8F96, 0xCFBE, 0x6687, 0xCFBF, 0x5CE1, 0xCFC0, 0x4FA0, 0xCFC1, 0x72ED, + 0xCFC2, 0x4E0B, 0xCFC3, 0x53A6, 0xCFC4, 0x590F, 0xCFC5, 0x5413, 0xCFC6, 0x6380, 0xCFC7, 0x9528, 0xCFC8, 0x5148, 0xCFC9, 0x4ED9, + 0xCFCA, 0x9C9C, 0xCFCB, 0x7EA4, 0xCFCC, 0x54B8, 0xCFCD, 0x8D24, 0xCFCE, 0x8854, 0xCFCF, 0x8237, 0xCFD0, 0x95F2, 0xCFD1, 0x6D8E, + 0xCFD2, 0x5F26, 0xCFD3, 0x5ACC, 0xCFD4, 0x663E, 0xCFD5, 0x9669, 0xCFD6, 0x73B0, 0xCFD7, 0x732E, 0xCFD8, 0x53BF, 0xCFD9, 0x817A, + 0xCFDA, 0x9985, 0xCFDB, 0x7FA1, 0xCFDC, 0x5BAA, 0xCFDD, 0x9677, 0xCFDE, 0x9650, 0xCFDF, 0x7EBF, 0xCFE0, 0x76F8, 0xCFE1, 0x53A2, + 0xCFE2, 0x9576, 0xCFE3, 0x9999, 0xCFE4, 0x7BB1, 0xCFE5, 0x8944, 0xCFE6, 0x6E58, 0xCFE7, 0x4E61, 0xCFE8, 0x7FD4, 0xCFE9, 0x7965, + 0xCFEA, 0x8BE6, 0xCFEB, 0x60F3, 0xCFEC, 0x54CD, 0xCFED, 0x4EAB, 0xCFEE, 0x9879, 0xCFEF, 0x5DF7, 0xCFF0, 0x6A61, 0xCFF1, 0x50CF, + 0xCFF2, 0x5411, 0xCFF3, 0x8C61, 0xCFF4, 0x8427, 0xCFF5, 0x785D, 0xCFF6, 0x9704, 0xCFF7, 0x524A, 0xCFF8, 0x54EE, 0xCFF9, 0x56A3, + 0xCFFA, 0x9500, 0xCFFB, 0x6D88, 0xCFFC, 0x5BB5, 0xCFFD, 0x6DC6, 0xCFFE, 0x6653, 0xD040, 0x8824, 0xD041, 0x8825, 0xD042, 0x8826, + 0xD043, 0x8827, 0xD044, 0x8828, 0xD045, 0x8829, 0xD046, 0x882A, 0xD047, 0x882B, 0xD048, 0x882C, 0xD049, 0x882D, 0xD04A, 0x882E, + 0xD04B, 0x882F, 0xD04C, 0x8830, 0xD04D, 0x8831, 0xD04E, 0x8833, 0xD04F, 0x8834, 0xD050, 0x8835, 0xD051, 0x8836, 0xD052, 0x8837, + 0xD053, 0x8838, 0xD054, 0x883A, 0xD055, 0x883B, 0xD056, 0x883D, 0xD057, 0x883E, 0xD058, 0x883F, 0xD059, 0x8841, 0xD05A, 0x8842, + 0xD05B, 0x8843, 0xD05C, 0x8846, 0xD05D, 0x8847, 0xD05E, 0x8848, 0xD05F, 0x8849, 0xD060, 0x884A, 0xD061, 0x884B, 0xD062, 0x884E, + 0xD063, 0x884F, 0xD064, 0x8850, 0xD065, 0x8851, 0xD066, 0x8852, 0xD067, 0x8853, 0xD068, 0x8855, 0xD069, 0x8856, 0xD06A, 0x8858, + 0xD06B, 0x885A, 0xD06C, 0x885B, 0xD06D, 0x885C, 0xD06E, 0x885D, 0xD06F, 0x885E, 0xD070, 0x885F, 0xD071, 0x8860, 0xD072, 0x8866, + 0xD073, 0x8867, 0xD074, 0x886A, 0xD075, 0x886D, 0xD076, 0x886F, 0xD077, 0x8871, 0xD078, 0x8873, 0xD079, 0x8874, 0xD07A, 0x8875, + 0xD07B, 0x8876, 0xD07C, 0x8878, 0xD07D, 0x8879, 0xD07E, 0x887A, 0xD080, 0x887B, 0xD081, 0x887C, 0xD082, 0x8880, 0xD083, 0x8883, + 0xD084, 0x8886, 0xD085, 0x8887, 0xD086, 0x8889, 0xD087, 0x888A, 0xD088, 0x888C, 0xD089, 0x888E, 0xD08A, 0x888F, 0xD08B, 0x8890, + 0xD08C, 0x8891, 0xD08D, 0x8893, 0xD08E, 0x8894, 0xD08F, 0x8895, 0xD090, 0x8897, 0xD091, 0x8898, 0xD092, 0x8899, 0xD093, 0x889A, + 0xD094, 0x889B, 0xD095, 0x889D, 0xD096, 0x889E, 0xD097, 0x889F, 0xD098, 0x88A0, 0xD099, 0x88A1, 0xD09A, 0x88A3, 0xD09B, 0x88A5, + 0xD09C, 0x88A6, 0xD09D, 0x88A7, 0xD09E, 0x88A8, 0xD09F, 0x88A9, 0xD0A0, 0x88AA, 0xD0A1, 0x5C0F, 0xD0A2, 0x5B5D, 0xD0A3, 0x6821, + 0xD0A4, 0x8096, 0xD0A5, 0x5578, 0xD0A6, 0x7B11, 0xD0A7, 0x6548, 0xD0A8, 0x6954, 0xD0A9, 0x4E9B, 0xD0AA, 0x6B47, 0xD0AB, 0x874E, + 0xD0AC, 0x978B, 0xD0AD, 0x534F, 0xD0AE, 0x631F, 0xD0AF, 0x643A, 0xD0B0, 0x90AA, 0xD0B1, 0x659C, 0xD0B2, 0x80C1, 0xD0B3, 0x8C10, + 0xD0B4, 0x5199, 0xD0B5, 0x68B0, 0xD0B6, 0x5378, 0xD0B7, 0x87F9, 0xD0B8, 0x61C8, 0xD0B9, 0x6CC4, 0xD0BA, 0x6CFB, 0xD0BB, 0x8C22, + 0xD0BC, 0x5C51, 0xD0BD, 0x85AA, 0xD0BE, 0x82AF, 0xD0BF, 0x950C, 0xD0C0, 0x6B23, 0xD0C1, 0x8F9B, 0xD0C2, 0x65B0, 0xD0C3, 0x5FFB, + 0xD0C4, 0x5FC3, 0xD0C5, 0x4FE1, 0xD0C6, 0x8845, 0xD0C7, 0x661F, 0xD0C8, 0x8165, 0xD0C9, 0x7329, 0xD0CA, 0x60FA, 0xD0CB, 0x5174, + 0xD0CC, 0x5211, 0xD0CD, 0x578B, 0xD0CE, 0x5F62, 0xD0CF, 0x90A2, 0xD0D0, 0x884C, 0xD0D1, 0x9192, 0xD0D2, 0x5E78, 0xD0D3, 0x674F, + 0xD0D4, 0x6027, 0xD0D5, 0x59D3, 0xD0D6, 0x5144, 0xD0D7, 0x51F6, 0xD0D8, 0x80F8, 0xD0D9, 0x5308, 0xD0DA, 0x6C79, 0xD0DB, 0x96C4, + 0xD0DC, 0x718A, 0xD0DD, 0x4F11, 0xD0DE, 0x4FEE, 0xD0DF, 0x7F9E, 0xD0E0, 0x673D, 0xD0E1, 0x55C5, 0xD0E2, 0x9508, 0xD0E3, 0x79C0, + 0xD0E4, 0x8896, 0xD0E5, 0x7EE3, 0xD0E6, 0x589F, 0xD0E7, 0x620C, 0xD0E8, 0x9700, 0xD0E9, 0x865A, 0xD0EA, 0x5618, 0xD0EB, 0x987B, + 0xD0EC, 0x5F90, 0xD0ED, 0x8BB8, 0xD0EE, 0x84C4, 0xD0EF, 0x9157, 0xD0F0, 0x53D9, 0xD0F1, 0x65ED, 0xD0F2, 0x5E8F, 0xD0F3, 0x755C, + 0xD0F4, 0x6064, 0xD0F5, 0x7D6E, 0xD0F6, 0x5A7F, 0xD0F7, 0x7EEA, 0xD0F8, 0x7EED, 0xD0F9, 0x8F69, 0xD0FA, 0x55A7, 0xD0FB, 0x5BA3, + 0xD0FC, 0x60AC, 0xD0FD, 0x65CB, 0xD0FE, 0x7384, 0xD140, 0x88AC, 0xD141, 0x88AE, 0xD142, 0x88AF, 0xD143, 0x88B0, 0xD144, 0x88B2, + 0xD145, 0x88B3, 0xD146, 0x88B4, 0xD147, 0x88B5, 0xD148, 0x88B6, 0xD149, 0x88B8, 0xD14A, 0x88B9, 0xD14B, 0x88BA, 0xD14C, 0x88BB, + 0xD14D, 0x88BD, 0xD14E, 0x88BE, 0xD14F, 0x88BF, 0xD150, 0x88C0, 0xD151, 0x88C3, 0xD152, 0x88C4, 0xD153, 0x88C7, 0xD154, 0x88C8, + 0xD155, 0x88CA, 0xD156, 0x88CB, 0xD157, 0x88CC, 0xD158, 0x88CD, 0xD159, 0x88CF, 0xD15A, 0x88D0, 0xD15B, 0x88D1, 0xD15C, 0x88D3, + 0xD15D, 0x88D6, 0xD15E, 0x88D7, 0xD15F, 0x88DA, 0xD160, 0x88DB, 0xD161, 0x88DC, 0xD162, 0x88DD, 0xD163, 0x88DE, 0xD164, 0x88E0, + 0xD165, 0x88E1, 0xD166, 0x88E6, 0xD167, 0x88E7, 0xD168, 0x88E9, 0xD169, 0x88EA, 0xD16A, 0x88EB, 0xD16B, 0x88EC, 0xD16C, 0x88ED, + 0xD16D, 0x88EE, 0xD16E, 0x88EF, 0xD16F, 0x88F2, 0xD170, 0x88F5, 0xD171, 0x88F6, 0xD172, 0x88F7, 0xD173, 0x88FA, 0xD174, 0x88FB, + 0xD175, 0x88FD, 0xD176, 0x88FF, 0xD177, 0x8900, 0xD178, 0x8901, 0xD179, 0x8903, 0xD17A, 0x8904, 0xD17B, 0x8905, 0xD17C, 0x8906, + 0xD17D, 0x8907, 0xD17E, 0x8908, 0xD180, 0x8909, 0xD181, 0x890B, 0xD182, 0x890C, 0xD183, 0x890D, 0xD184, 0x890E, 0xD185, 0x890F, + 0xD186, 0x8911, 0xD187, 0x8914, 0xD188, 0x8915, 0xD189, 0x8916, 0xD18A, 0x8917, 0xD18B, 0x8918, 0xD18C, 0x891C, 0xD18D, 0x891D, + 0xD18E, 0x891E, 0xD18F, 0x891F, 0xD190, 0x8920, 0xD191, 0x8922, 0xD192, 0x8923, 0xD193, 0x8924, 0xD194, 0x8926, 0xD195, 0x8927, + 0xD196, 0x8928, 0xD197, 0x8929, 0xD198, 0x892C, 0xD199, 0x892D, 0xD19A, 0x892E, 0xD19B, 0x892F, 0xD19C, 0x8931, 0xD19D, 0x8932, + 0xD19E, 0x8933, 0xD19F, 0x8935, 0xD1A0, 0x8937, 0xD1A1, 0x9009, 0xD1A2, 0x7663, 0xD1A3, 0x7729, 0xD1A4, 0x7EDA, 0xD1A5, 0x9774, + 0xD1A6, 0x859B, 0xD1A7, 0x5B66, 0xD1A8, 0x7A74, 0xD1A9, 0x96EA, 0xD1AA, 0x8840, 0xD1AB, 0x52CB, 0xD1AC, 0x718F, 0xD1AD, 0x5FAA, + 0xD1AE, 0x65EC, 0xD1AF, 0x8BE2, 0xD1B0, 0x5BFB, 0xD1B1, 0x9A6F, 0xD1B2, 0x5DE1, 0xD1B3, 0x6B89, 0xD1B4, 0x6C5B, 0xD1B5, 0x8BAD, + 0xD1B6, 0x8BAF, 0xD1B7, 0x900A, 0xD1B8, 0x8FC5, 0xD1B9, 0x538B, 0xD1BA, 0x62BC, 0xD1BB, 0x9E26, 0xD1BC, 0x9E2D, 0xD1BD, 0x5440, + 0xD1BE, 0x4E2B, 0xD1BF, 0x82BD, 0xD1C0, 0x7259, 0xD1C1, 0x869C, 0xD1C2, 0x5D16, 0xD1C3, 0x8859, 0xD1C4, 0x6DAF, 0xD1C5, 0x96C5, + 0xD1C6, 0x54D1, 0xD1C7, 0x4E9A, 0xD1C8, 0x8BB6, 0xD1C9, 0x7109, 0xD1CA, 0x54BD, 0xD1CB, 0x9609, 0xD1CC, 0x70DF, 0xD1CD, 0x6DF9, + 0xD1CE, 0x76D0, 0xD1CF, 0x4E25, 0xD1D0, 0x7814, 0xD1D1, 0x8712, 0xD1D2, 0x5CA9, 0xD1D3, 0x5EF6, 0xD1D4, 0x8A00, 0xD1D5, 0x989C, + 0xD1D6, 0x960E, 0xD1D7, 0x708E, 0xD1D8, 0x6CBF, 0xD1D9, 0x5944, 0xD1DA, 0x63A9, 0xD1DB, 0x773C, 0xD1DC, 0x884D, 0xD1DD, 0x6F14, + 0xD1DE, 0x8273, 0xD1DF, 0x5830, 0xD1E0, 0x71D5, 0xD1E1, 0x538C, 0xD1E2, 0x781A, 0xD1E3, 0x96C1, 0xD1E4, 0x5501, 0xD1E5, 0x5F66, + 0xD1E6, 0x7130, 0xD1E7, 0x5BB4, 0xD1E8, 0x8C1A, 0xD1E9, 0x9A8C, 0xD1EA, 0x6B83, 0xD1EB, 0x592E, 0xD1EC, 0x9E2F, 0xD1ED, 0x79E7, + 0xD1EE, 0x6768, 0xD1EF, 0x626C, 0xD1F0, 0x4F6F, 0xD1F1, 0x75A1, 0xD1F2, 0x7F8A, 0xD1F3, 0x6D0B, 0xD1F4, 0x9633, 0xD1F5, 0x6C27, + 0xD1F6, 0x4EF0, 0xD1F7, 0x75D2, 0xD1F8, 0x517B, 0xD1F9, 0x6837, 0xD1FA, 0x6F3E, 0xD1FB, 0x9080, 0xD1FC, 0x8170, 0xD1FD, 0x5996, + 0xD1FE, 0x7476, 0xD240, 0x8938, 0xD241, 0x8939, 0xD242, 0x893A, 0xD243, 0x893B, 0xD244, 0x893C, 0xD245, 0x893D, 0xD246, 0x893E, + 0xD247, 0x893F, 0xD248, 0x8940, 0xD249, 0x8942, 0xD24A, 0x8943, 0xD24B, 0x8945, 0xD24C, 0x8946, 0xD24D, 0x8947, 0xD24E, 0x8948, + 0xD24F, 0x8949, 0xD250, 0x894A, 0xD251, 0x894B, 0xD252, 0x894C, 0xD253, 0x894D, 0xD254, 0x894E, 0xD255, 0x894F, 0xD256, 0x8950, + 0xD257, 0x8951, 0xD258, 0x8952, 0xD259, 0x8953, 0xD25A, 0x8954, 0xD25B, 0x8955, 0xD25C, 0x8956, 0xD25D, 0x8957, 0xD25E, 0x8958, + 0xD25F, 0x8959, 0xD260, 0x895A, 0xD261, 0x895B, 0xD262, 0x895C, 0xD263, 0x895D, 0xD264, 0x8960, 0xD265, 0x8961, 0xD266, 0x8962, + 0xD267, 0x8963, 0xD268, 0x8964, 0xD269, 0x8965, 0xD26A, 0x8967, 0xD26B, 0x8968, 0xD26C, 0x8969, 0xD26D, 0x896A, 0xD26E, 0x896B, + 0xD26F, 0x896C, 0xD270, 0x896D, 0xD271, 0x896E, 0xD272, 0x896F, 0xD273, 0x8970, 0xD274, 0x8971, 0xD275, 0x8972, 0xD276, 0x8973, + 0xD277, 0x8974, 0xD278, 0x8975, 0xD279, 0x8976, 0xD27A, 0x8977, 0xD27B, 0x8978, 0xD27C, 0x8979, 0xD27D, 0x897A, 0xD27E, 0x897C, + 0xD280, 0x897D, 0xD281, 0x897E, 0xD282, 0x8980, 0xD283, 0x8982, 0xD284, 0x8984, 0xD285, 0x8985, 0xD286, 0x8987, 0xD287, 0x8988, + 0xD288, 0x8989, 0xD289, 0x898A, 0xD28A, 0x898B, 0xD28B, 0x898C, 0xD28C, 0x898D, 0xD28D, 0x898E, 0xD28E, 0x898F, 0xD28F, 0x8990, + 0xD290, 0x8991, 0xD291, 0x8992, 0xD292, 0x8993, 0xD293, 0x8994, 0xD294, 0x8995, 0xD295, 0x8996, 0xD296, 0x8997, 0xD297, 0x8998, + 0xD298, 0x8999, 0xD299, 0x899A, 0xD29A, 0x899B, 0xD29B, 0x899C, 0xD29C, 0x899D, 0xD29D, 0x899E, 0xD29E, 0x899F, 0xD29F, 0x89A0, + 0xD2A0, 0x89A1, 0xD2A1, 0x6447, 0xD2A2, 0x5C27, 0xD2A3, 0x9065, 0xD2A4, 0x7A91, 0xD2A5, 0x8C23, 0xD2A6, 0x59DA, 0xD2A7, 0x54AC, + 0xD2A8, 0x8200, 0xD2A9, 0x836F, 0xD2AA, 0x8981, 0xD2AB, 0x8000, 0xD2AC, 0x6930, 0xD2AD, 0x564E, 0xD2AE, 0x8036, 0xD2AF, 0x7237, + 0xD2B0, 0x91CE, 0xD2B1, 0x51B6, 0xD2B2, 0x4E5F, 0xD2B3, 0x9875, 0xD2B4, 0x6396, 0xD2B5, 0x4E1A, 0xD2B6, 0x53F6, 0xD2B7, 0x66F3, + 0xD2B8, 0x814B, 0xD2B9, 0x591C, 0xD2BA, 0x6DB2, 0xD2BB, 0x4E00, 0xD2BC, 0x58F9, 0xD2BD, 0x533B, 0xD2BE, 0x63D6, 0xD2BF, 0x94F1, + 0xD2C0, 0x4F9D, 0xD2C1, 0x4F0A, 0xD2C2, 0x8863, 0xD2C3, 0x9890, 0xD2C4, 0x5937, 0xD2C5, 0x9057, 0xD2C6, 0x79FB, 0xD2C7, 0x4EEA, + 0xD2C8, 0x80F0, 0xD2C9, 0x7591, 0xD2CA, 0x6C82, 0xD2CB, 0x5B9C, 0xD2CC, 0x59E8, 0xD2CD, 0x5F5D, 0xD2CE, 0x6905, 0xD2CF, 0x8681, + 0xD2D0, 0x501A, 0xD2D1, 0x5DF2, 0xD2D2, 0x4E59, 0xD2D3, 0x77E3, 0xD2D4, 0x4EE5, 0xD2D5, 0x827A, 0xD2D6, 0x6291, 0xD2D7, 0x6613, + 0xD2D8, 0x9091, 0xD2D9, 0x5C79, 0xD2DA, 0x4EBF, 0xD2DB, 0x5F79, 0xD2DC, 0x81C6, 0xD2DD, 0x9038, 0xD2DE, 0x8084, 0xD2DF, 0x75AB, + 0xD2E0, 0x4EA6, 0xD2E1, 0x88D4, 0xD2E2, 0x610F, 0xD2E3, 0x6BC5, 0xD2E4, 0x5FC6, 0xD2E5, 0x4E49, 0xD2E6, 0x76CA, 0xD2E7, 0x6EA2, + 0xD2E8, 0x8BE3, 0xD2E9, 0x8BAE, 0xD2EA, 0x8C0A, 0xD2EB, 0x8BD1, 0xD2EC, 0x5F02, 0xD2ED, 0x7FFC, 0xD2EE, 0x7FCC, 0xD2EF, 0x7ECE, + 0xD2F0, 0x8335, 0xD2F1, 0x836B, 0xD2F2, 0x56E0, 0xD2F3, 0x6BB7, 0xD2F4, 0x97F3, 0xD2F5, 0x9634, 0xD2F6, 0x59FB, 0xD2F7, 0x541F, + 0xD2F8, 0x94F6, 0xD2F9, 0x6DEB, 0xD2FA, 0x5BC5, 0xD2FB, 0x996E, 0xD2FC, 0x5C39, 0xD2FD, 0x5F15, 0xD2FE, 0x9690, 0xD340, 0x89A2, + 0xD341, 0x89A3, 0xD342, 0x89A4, 0xD343, 0x89A5, 0xD344, 0x89A6, 0xD345, 0x89A7, 0xD346, 0x89A8, 0xD347, 0x89A9, 0xD348, 0x89AA, + 0xD349, 0x89AB, 0xD34A, 0x89AC, 0xD34B, 0x89AD, 0xD34C, 0x89AE, 0xD34D, 0x89AF, 0xD34E, 0x89B0, 0xD34F, 0x89B1, 0xD350, 0x89B2, + 0xD351, 0x89B3, 0xD352, 0x89B4, 0xD353, 0x89B5, 0xD354, 0x89B6, 0xD355, 0x89B7, 0xD356, 0x89B8, 0xD357, 0x89B9, 0xD358, 0x89BA, + 0xD359, 0x89BB, 0xD35A, 0x89BC, 0xD35B, 0x89BD, 0xD35C, 0x89BE, 0xD35D, 0x89BF, 0xD35E, 0x89C0, 0xD35F, 0x89C3, 0xD360, 0x89CD, + 0xD361, 0x89D3, 0xD362, 0x89D4, 0xD363, 0x89D5, 0xD364, 0x89D7, 0xD365, 0x89D8, 0xD366, 0x89D9, 0xD367, 0x89DB, 0xD368, 0x89DD, + 0xD369, 0x89DF, 0xD36A, 0x89E0, 0xD36B, 0x89E1, 0xD36C, 0x89E2, 0xD36D, 0x89E4, 0xD36E, 0x89E7, 0xD36F, 0x89E8, 0xD370, 0x89E9, + 0xD371, 0x89EA, 0xD372, 0x89EC, 0xD373, 0x89ED, 0xD374, 0x89EE, 0xD375, 0x89F0, 0xD376, 0x89F1, 0xD377, 0x89F2, 0xD378, 0x89F4, + 0xD379, 0x89F5, 0xD37A, 0x89F6, 0xD37B, 0x89F7, 0xD37C, 0x89F8, 0xD37D, 0x89F9, 0xD37E, 0x89FA, 0xD380, 0x89FB, 0xD381, 0x89FC, + 0xD382, 0x89FD, 0xD383, 0x89FE, 0xD384, 0x89FF, 0xD385, 0x8A01, 0xD386, 0x8A02, 0xD387, 0x8A03, 0xD388, 0x8A04, 0xD389, 0x8A05, + 0xD38A, 0x8A06, 0xD38B, 0x8A08, 0xD38C, 0x8A09, 0xD38D, 0x8A0A, 0xD38E, 0x8A0B, 0xD38F, 0x8A0C, 0xD390, 0x8A0D, 0xD391, 0x8A0E, + 0xD392, 0x8A0F, 0xD393, 0x8A10, 0xD394, 0x8A11, 0xD395, 0x8A12, 0xD396, 0x8A13, 0xD397, 0x8A14, 0xD398, 0x8A15, 0xD399, 0x8A16, + 0xD39A, 0x8A17, 0xD39B, 0x8A18, 0xD39C, 0x8A19, 0xD39D, 0x8A1A, 0xD39E, 0x8A1B, 0xD39F, 0x8A1C, 0xD3A0, 0x8A1D, 0xD3A1, 0x5370, + 0xD3A2, 0x82F1, 0xD3A3, 0x6A31, 0xD3A4, 0x5A74, 0xD3A5, 0x9E70, 0xD3A6, 0x5E94, 0xD3A7, 0x7F28, 0xD3A8, 0x83B9, 0xD3A9, 0x8424, + 0xD3AA, 0x8425, 0xD3AB, 0x8367, 0xD3AC, 0x8747, 0xD3AD, 0x8FCE, 0xD3AE, 0x8D62, 0xD3AF, 0x76C8, 0xD3B0, 0x5F71, 0xD3B1, 0x9896, + 0xD3B2, 0x786C, 0xD3B3, 0x6620, 0xD3B4, 0x54DF, 0xD3B5, 0x62E5, 0xD3B6, 0x4F63, 0xD3B7, 0x81C3, 0xD3B8, 0x75C8, 0xD3B9, 0x5EB8, + 0xD3BA, 0x96CD, 0xD3BB, 0x8E0A, 0xD3BC, 0x86F9, 0xD3BD, 0x548F, 0xD3BE, 0x6CF3, 0xD3BF, 0x6D8C, 0xD3C0, 0x6C38, 0xD3C1, 0x607F, + 0xD3C2, 0x52C7, 0xD3C3, 0x7528, 0xD3C4, 0x5E7D, 0xD3C5, 0x4F18, 0xD3C6, 0x60A0, 0xD3C7, 0x5FE7, 0xD3C8, 0x5C24, 0xD3C9, 0x7531, + 0xD3CA, 0x90AE, 0xD3CB, 0x94C0, 0xD3CC, 0x72B9, 0xD3CD, 0x6CB9, 0xD3CE, 0x6E38, 0xD3CF, 0x9149, 0xD3D0, 0x6709, 0xD3D1, 0x53CB, + 0xD3D2, 0x53F3, 0xD3D3, 0x4F51, 0xD3D4, 0x91C9, 0xD3D5, 0x8BF1, 0xD3D6, 0x53C8, 0xD3D7, 0x5E7C, 0xD3D8, 0x8FC2, 0xD3D9, 0x6DE4, + 0xD3DA, 0x4E8E, 0xD3DB, 0x76C2, 0xD3DC, 0x6986, 0xD3DD, 0x865E, 0xD3DE, 0x611A, 0xD3DF, 0x8206, 0xD3E0, 0x4F59, 0xD3E1, 0x4FDE, + 0xD3E2, 0x903E, 0xD3E3, 0x9C7C, 0xD3E4, 0x6109, 0xD3E5, 0x6E1D, 0xD3E6, 0x6E14, 0xD3E7, 0x9685, 0xD3E8, 0x4E88, 0xD3E9, 0x5A31, + 0xD3EA, 0x96E8, 0xD3EB, 0x4E0E, 0xD3EC, 0x5C7F, 0xD3ED, 0x79B9, 0xD3EE, 0x5B87, 0xD3EF, 0x8BED, 0xD3F0, 0x7FBD, 0xD3F1, 0x7389, + 0xD3F2, 0x57DF, 0xD3F3, 0x828B, 0xD3F4, 0x90C1, 0xD3F5, 0x5401, 0xD3F6, 0x9047, 0xD3F7, 0x55BB, 0xD3F8, 0x5CEA, 0xD3F9, 0x5FA1, + 0xD3FA, 0x6108, 0xD3FB, 0x6B32, 0xD3FC, 0x72F1, 0xD3FD, 0x80B2, 0xD3FE, 0x8A89, 0xD440, 0x8A1E, 0xD441, 0x8A1F, 0xD442, 0x8A20, + 0xD443, 0x8A21, 0xD444, 0x8A22, 0xD445, 0x8A23, 0xD446, 0x8A24, 0xD447, 0x8A25, 0xD448, 0x8A26, 0xD449, 0x8A27, 0xD44A, 0x8A28, + 0xD44B, 0x8A29, 0xD44C, 0x8A2A, 0xD44D, 0x8A2B, 0xD44E, 0x8A2C, 0xD44F, 0x8A2D, 0xD450, 0x8A2E, 0xD451, 0x8A2F, 0xD452, 0x8A30, + 0xD453, 0x8A31, 0xD454, 0x8A32, 0xD455, 0x8A33, 0xD456, 0x8A34, 0xD457, 0x8A35, 0xD458, 0x8A36, 0xD459, 0x8A37, 0xD45A, 0x8A38, + 0xD45B, 0x8A39, 0xD45C, 0x8A3A, 0xD45D, 0x8A3B, 0xD45E, 0x8A3C, 0xD45F, 0x8A3D, 0xD460, 0x8A3F, 0xD461, 0x8A40, 0xD462, 0x8A41, + 0xD463, 0x8A42, 0xD464, 0x8A43, 0xD465, 0x8A44, 0xD466, 0x8A45, 0xD467, 0x8A46, 0xD468, 0x8A47, 0xD469, 0x8A49, 0xD46A, 0x8A4A, + 0xD46B, 0x8A4B, 0xD46C, 0x8A4C, 0xD46D, 0x8A4D, 0xD46E, 0x8A4E, 0xD46F, 0x8A4F, 0xD470, 0x8A50, 0xD471, 0x8A51, 0xD472, 0x8A52, + 0xD473, 0x8A53, 0xD474, 0x8A54, 0xD475, 0x8A55, 0xD476, 0x8A56, 0xD477, 0x8A57, 0xD478, 0x8A58, 0xD479, 0x8A59, 0xD47A, 0x8A5A, + 0xD47B, 0x8A5B, 0xD47C, 0x8A5C, 0xD47D, 0x8A5D, 0xD47E, 0x8A5E, 0xD480, 0x8A5F, 0xD481, 0x8A60, 0xD482, 0x8A61, 0xD483, 0x8A62, + 0xD484, 0x8A63, 0xD485, 0x8A64, 0xD486, 0x8A65, 0xD487, 0x8A66, 0xD488, 0x8A67, 0xD489, 0x8A68, 0xD48A, 0x8A69, 0xD48B, 0x8A6A, + 0xD48C, 0x8A6B, 0xD48D, 0x8A6C, 0xD48E, 0x8A6D, 0xD48F, 0x8A6E, 0xD490, 0x8A6F, 0xD491, 0x8A70, 0xD492, 0x8A71, 0xD493, 0x8A72, + 0xD494, 0x8A73, 0xD495, 0x8A74, 0xD496, 0x8A75, 0xD497, 0x8A76, 0xD498, 0x8A77, 0xD499, 0x8A78, 0xD49A, 0x8A7A, 0xD49B, 0x8A7B, + 0xD49C, 0x8A7C, 0xD49D, 0x8A7D, 0xD49E, 0x8A7E, 0xD49F, 0x8A7F, 0xD4A0, 0x8A80, 0xD4A1, 0x6D74, 0xD4A2, 0x5BD3, 0xD4A3, 0x88D5, + 0xD4A4, 0x9884, 0xD4A5, 0x8C6B, 0xD4A6, 0x9A6D, 0xD4A7, 0x9E33, 0xD4A8, 0x6E0A, 0xD4A9, 0x51A4, 0xD4AA, 0x5143, 0xD4AB, 0x57A3, + 0xD4AC, 0x8881, 0xD4AD, 0x539F, 0xD4AE, 0x63F4, 0xD4AF, 0x8F95, 0xD4B0, 0x56ED, 0xD4B1, 0x5458, 0xD4B2, 0x5706, 0xD4B3, 0x733F, + 0xD4B4, 0x6E90, 0xD4B5, 0x7F18, 0xD4B6, 0x8FDC, 0xD4B7, 0x82D1, 0xD4B8, 0x613F, 0xD4B9, 0x6028, 0xD4BA, 0x9662, 0xD4BB, 0x66F0, + 0xD4BC, 0x7EA6, 0xD4BD, 0x8D8A, 0xD4BE, 0x8DC3, 0xD4BF, 0x94A5, 0xD4C0, 0x5CB3, 0xD4C1, 0x7CA4, 0xD4C2, 0x6708, 0xD4C3, 0x60A6, + 0xD4C4, 0x9605, 0xD4C5, 0x8018, 0xD4C6, 0x4E91, 0xD4C7, 0x90E7, 0xD4C8, 0x5300, 0xD4C9, 0x9668, 0xD4CA, 0x5141, 0xD4CB, 0x8FD0, + 0xD4CC, 0x8574, 0xD4CD, 0x915D, 0xD4CE, 0x6655, 0xD4CF, 0x97F5, 0xD4D0, 0x5B55, 0xD4D1, 0x531D, 0xD4D2, 0x7838, 0xD4D3, 0x6742, + 0xD4D4, 0x683D, 0xD4D5, 0x54C9, 0xD4D6, 0x707E, 0xD4D7, 0x5BB0, 0xD4D8, 0x8F7D, 0xD4D9, 0x518D, 0xD4DA, 0x5728, 0xD4DB, 0x54B1, + 0xD4DC, 0x6512, 0xD4DD, 0x6682, 0xD4DE, 0x8D5E, 0xD4DF, 0x8D43, 0xD4E0, 0x810F, 0xD4E1, 0x846C, 0xD4E2, 0x906D, 0xD4E3, 0x7CDF, + 0xD4E4, 0x51FF, 0xD4E5, 0x85FB, 0xD4E6, 0x67A3, 0xD4E7, 0x65E9, 0xD4E8, 0x6FA1, 0xD4E9, 0x86A4, 0xD4EA, 0x8E81, 0xD4EB, 0x566A, + 0xD4EC, 0x9020, 0xD4ED, 0x7682, 0xD4EE, 0x7076, 0xD4EF, 0x71E5, 0xD4F0, 0x8D23, 0xD4F1, 0x62E9, 0xD4F2, 0x5219, 0xD4F3, 0x6CFD, + 0xD4F4, 0x8D3C, 0xD4F5, 0x600E, 0xD4F6, 0x589E, 0xD4F7, 0x618E, 0xD4F8, 0x66FE, 0xD4F9, 0x8D60, 0xD4FA, 0x624E, 0xD4FB, 0x55B3, + 0xD4FC, 0x6E23, 0xD4FD, 0x672D, 0xD4FE, 0x8F67, 0xD540, 0x8A81, 0xD541, 0x8A82, 0xD542, 0x8A83, 0xD543, 0x8A84, 0xD544, 0x8A85, + 0xD545, 0x8A86, 0xD546, 0x8A87, 0xD547, 0x8A88, 0xD548, 0x8A8B, 0xD549, 0x8A8C, 0xD54A, 0x8A8D, 0xD54B, 0x8A8E, 0xD54C, 0x8A8F, + 0xD54D, 0x8A90, 0xD54E, 0x8A91, 0xD54F, 0x8A92, 0xD550, 0x8A94, 0xD551, 0x8A95, 0xD552, 0x8A96, 0xD553, 0x8A97, 0xD554, 0x8A98, + 0xD555, 0x8A99, 0xD556, 0x8A9A, 0xD557, 0x8A9B, 0xD558, 0x8A9C, 0xD559, 0x8A9D, 0xD55A, 0x8A9E, 0xD55B, 0x8A9F, 0xD55C, 0x8AA0, + 0xD55D, 0x8AA1, 0xD55E, 0x8AA2, 0xD55F, 0x8AA3, 0xD560, 0x8AA4, 0xD561, 0x8AA5, 0xD562, 0x8AA6, 0xD563, 0x8AA7, 0xD564, 0x8AA8, + 0xD565, 0x8AA9, 0xD566, 0x8AAA, 0xD567, 0x8AAB, 0xD568, 0x8AAC, 0xD569, 0x8AAD, 0xD56A, 0x8AAE, 0xD56B, 0x8AAF, 0xD56C, 0x8AB0, + 0xD56D, 0x8AB1, 0xD56E, 0x8AB2, 0xD56F, 0x8AB3, 0xD570, 0x8AB4, 0xD571, 0x8AB5, 0xD572, 0x8AB6, 0xD573, 0x8AB7, 0xD574, 0x8AB8, + 0xD575, 0x8AB9, 0xD576, 0x8ABA, 0xD577, 0x8ABB, 0xD578, 0x8ABC, 0xD579, 0x8ABD, 0xD57A, 0x8ABE, 0xD57B, 0x8ABF, 0xD57C, 0x8AC0, + 0xD57D, 0x8AC1, 0xD57E, 0x8AC2, 0xD580, 0x8AC3, 0xD581, 0x8AC4, 0xD582, 0x8AC5, 0xD583, 0x8AC6, 0xD584, 0x8AC7, 0xD585, 0x8AC8, + 0xD586, 0x8AC9, 0xD587, 0x8ACA, 0xD588, 0x8ACB, 0xD589, 0x8ACC, 0xD58A, 0x8ACD, 0xD58B, 0x8ACE, 0xD58C, 0x8ACF, 0xD58D, 0x8AD0, + 0xD58E, 0x8AD1, 0xD58F, 0x8AD2, 0xD590, 0x8AD3, 0xD591, 0x8AD4, 0xD592, 0x8AD5, 0xD593, 0x8AD6, 0xD594, 0x8AD7, 0xD595, 0x8AD8, + 0xD596, 0x8AD9, 0xD597, 0x8ADA, 0xD598, 0x8ADB, 0xD599, 0x8ADC, 0xD59A, 0x8ADD, 0xD59B, 0x8ADE, 0xD59C, 0x8ADF, 0xD59D, 0x8AE0, + 0xD59E, 0x8AE1, 0xD59F, 0x8AE2, 0xD5A0, 0x8AE3, 0xD5A1, 0x94E1, 0xD5A2, 0x95F8, 0xD5A3, 0x7728, 0xD5A4, 0x6805, 0xD5A5, 0x69A8, + 0xD5A6, 0x548B, 0xD5A7, 0x4E4D, 0xD5A8, 0x70B8, 0xD5A9, 0x8BC8, 0xD5AA, 0x6458, 0xD5AB, 0x658B, 0xD5AC, 0x5B85, 0xD5AD, 0x7A84, + 0xD5AE, 0x503A, 0xD5AF, 0x5BE8, 0xD5B0, 0x77BB, 0xD5B1, 0x6BE1, 0xD5B2, 0x8A79, 0xD5B3, 0x7C98, 0xD5B4, 0x6CBE, 0xD5B5, 0x76CF, + 0xD5B6, 0x65A9, 0xD5B7, 0x8F97, 0xD5B8, 0x5D2D, 0xD5B9, 0x5C55, 0xD5BA, 0x8638, 0xD5BB, 0x6808, 0xD5BC, 0x5360, 0xD5BD, 0x6218, + 0xD5BE, 0x7AD9, 0xD5BF, 0x6E5B, 0xD5C0, 0x7EFD, 0xD5C1, 0x6A1F, 0xD5C2, 0x7AE0, 0xD5C3, 0x5F70, 0xD5C4, 0x6F33, 0xD5C5, 0x5F20, + 0xD5C6, 0x638C, 0xD5C7, 0x6DA8, 0xD5C8, 0x6756, 0xD5C9, 0x4E08, 0xD5CA, 0x5E10, 0xD5CB, 0x8D26, 0xD5CC, 0x4ED7, 0xD5CD, 0x80C0, + 0xD5CE, 0x7634, 0xD5CF, 0x969C, 0xD5D0, 0x62DB, 0xD5D1, 0x662D, 0xD5D2, 0x627E, 0xD5D3, 0x6CBC, 0xD5D4, 0x8D75, 0xD5D5, 0x7167, + 0xD5D6, 0x7F69, 0xD5D7, 0x5146, 0xD5D8, 0x8087, 0xD5D9, 0x53EC, 0xD5DA, 0x906E, 0xD5DB, 0x6298, 0xD5DC, 0x54F2, 0xD5DD, 0x86F0, + 0xD5DE, 0x8F99, 0xD5DF, 0x8005, 0xD5E0, 0x9517, 0xD5E1, 0x8517, 0xD5E2, 0x8FD9, 0xD5E3, 0x6D59, 0xD5E4, 0x73CD, 0xD5E5, 0x659F, + 0xD5E6, 0x771F, 0xD5E7, 0x7504, 0xD5E8, 0x7827, 0xD5E9, 0x81FB, 0xD5EA, 0x8D1E, 0xD5EB, 0x9488, 0xD5EC, 0x4FA6, 0xD5ED, 0x6795, + 0xD5EE, 0x75B9, 0xD5EF, 0x8BCA, 0xD5F0, 0x9707, 0xD5F1, 0x632F, 0xD5F2, 0x9547, 0xD5F3, 0x9635, 0xD5F4, 0x84B8, 0xD5F5, 0x6323, + 0xD5F6, 0x7741, 0xD5F7, 0x5F81, 0xD5F8, 0x72F0, 0xD5F9, 0x4E89, 0xD5FA, 0x6014, 0xD5FB, 0x6574, 0xD5FC, 0x62EF, 0xD5FD, 0x6B63, + 0xD5FE, 0x653F, 0xD640, 0x8AE4, 0xD641, 0x8AE5, 0xD642, 0x8AE6, 0xD643, 0x8AE7, 0xD644, 0x8AE8, 0xD645, 0x8AE9, 0xD646, 0x8AEA, + 0xD647, 0x8AEB, 0xD648, 0x8AEC, 0xD649, 0x8AED, 0xD64A, 0x8AEE, 0xD64B, 0x8AEF, 0xD64C, 0x8AF0, 0xD64D, 0x8AF1, 0xD64E, 0x8AF2, + 0xD64F, 0x8AF3, 0xD650, 0x8AF4, 0xD651, 0x8AF5, 0xD652, 0x8AF6, 0xD653, 0x8AF7, 0xD654, 0x8AF8, 0xD655, 0x8AF9, 0xD656, 0x8AFA, + 0xD657, 0x8AFB, 0xD658, 0x8AFC, 0xD659, 0x8AFD, 0xD65A, 0x8AFE, 0xD65B, 0x8AFF, 0xD65C, 0x8B00, 0xD65D, 0x8B01, 0xD65E, 0x8B02, + 0xD65F, 0x8B03, 0xD660, 0x8B04, 0xD661, 0x8B05, 0xD662, 0x8B06, 0xD663, 0x8B08, 0xD664, 0x8B09, 0xD665, 0x8B0A, 0xD666, 0x8B0B, + 0xD667, 0x8B0C, 0xD668, 0x8B0D, 0xD669, 0x8B0E, 0xD66A, 0x8B0F, 0xD66B, 0x8B10, 0xD66C, 0x8B11, 0xD66D, 0x8B12, 0xD66E, 0x8B13, + 0xD66F, 0x8B14, 0xD670, 0x8B15, 0xD671, 0x8B16, 0xD672, 0x8B17, 0xD673, 0x8B18, 0xD674, 0x8B19, 0xD675, 0x8B1A, 0xD676, 0x8B1B, + 0xD677, 0x8B1C, 0xD678, 0x8B1D, 0xD679, 0x8B1E, 0xD67A, 0x8B1F, 0xD67B, 0x8B20, 0xD67C, 0x8B21, 0xD67D, 0x8B22, 0xD67E, 0x8B23, + 0xD680, 0x8B24, 0xD681, 0x8B25, 0xD682, 0x8B27, 0xD683, 0x8B28, 0xD684, 0x8B29, 0xD685, 0x8B2A, 0xD686, 0x8B2B, 0xD687, 0x8B2C, + 0xD688, 0x8B2D, 0xD689, 0x8B2E, 0xD68A, 0x8B2F, 0xD68B, 0x8B30, 0xD68C, 0x8B31, 0xD68D, 0x8B32, 0xD68E, 0x8B33, 0xD68F, 0x8B34, + 0xD690, 0x8B35, 0xD691, 0x8B36, 0xD692, 0x8B37, 0xD693, 0x8B38, 0xD694, 0x8B39, 0xD695, 0x8B3A, 0xD696, 0x8B3B, 0xD697, 0x8B3C, + 0xD698, 0x8B3D, 0xD699, 0x8B3E, 0xD69A, 0x8B3F, 0xD69B, 0x8B40, 0xD69C, 0x8B41, 0xD69D, 0x8B42, 0xD69E, 0x8B43, 0xD69F, 0x8B44, + 0xD6A0, 0x8B45, 0xD6A1, 0x5E27, 0xD6A2, 0x75C7, 0xD6A3, 0x90D1, 0xD6A4, 0x8BC1, 0xD6A5, 0x829D, 0xD6A6, 0x679D, 0xD6A7, 0x652F, + 0xD6A8, 0x5431, 0xD6A9, 0x8718, 0xD6AA, 0x77E5, 0xD6AB, 0x80A2, 0xD6AC, 0x8102, 0xD6AD, 0x6C41, 0xD6AE, 0x4E4B, 0xD6AF, 0x7EC7, + 0xD6B0, 0x804C, 0xD6B1, 0x76F4, 0xD6B2, 0x690D, 0xD6B3, 0x6B96, 0xD6B4, 0x6267, 0xD6B5, 0x503C, 0xD6B6, 0x4F84, 0xD6B7, 0x5740, + 0xD6B8, 0x6307, 0xD6B9, 0x6B62, 0xD6BA, 0x8DBE, 0xD6BB, 0x53EA, 0xD6BC, 0x65E8, 0xD6BD, 0x7EB8, 0xD6BE, 0x5FD7, 0xD6BF, 0x631A, + 0xD6C0, 0x63B7, 0xD6C1, 0x81F3, 0xD6C2, 0x81F4, 0xD6C3, 0x7F6E, 0xD6C4, 0x5E1C, 0xD6C5, 0x5CD9, 0xD6C6, 0x5236, 0xD6C7, 0x667A, + 0xD6C8, 0x79E9, 0xD6C9, 0x7A1A, 0xD6CA, 0x8D28, 0xD6CB, 0x7099, 0xD6CC, 0x75D4, 0xD6CD, 0x6EDE, 0xD6CE, 0x6CBB, 0xD6CF, 0x7A92, + 0xD6D0, 0x4E2D, 0xD6D1, 0x76C5, 0xD6D2, 0x5FE0, 0xD6D3, 0x949F, 0xD6D4, 0x8877, 0xD6D5, 0x7EC8, 0xD6D6, 0x79CD, 0xD6D7, 0x80BF, + 0xD6D8, 0x91CD, 0xD6D9, 0x4EF2, 0xD6DA, 0x4F17, 0xD6DB, 0x821F, 0xD6DC, 0x5468, 0xD6DD, 0x5DDE, 0xD6DE, 0x6D32, 0xD6DF, 0x8BCC, + 0xD6E0, 0x7CA5, 0xD6E1, 0x8F74, 0xD6E2, 0x8098, 0xD6E3, 0x5E1A, 0xD6E4, 0x5492, 0xD6E5, 0x76B1, 0xD6E6, 0x5B99, 0xD6E7, 0x663C, + 0xD6E8, 0x9AA4, 0xD6E9, 0x73E0, 0xD6EA, 0x682A, 0xD6EB, 0x86DB, 0xD6EC, 0x6731, 0xD6ED, 0x732A, 0xD6EE, 0x8BF8, 0xD6EF, 0x8BDB, + 0xD6F0, 0x9010, 0xD6F1, 0x7AF9, 0xD6F2, 0x70DB, 0xD6F3, 0x716E, 0xD6F4, 0x62C4, 0xD6F5, 0x77A9, 0xD6F6, 0x5631, 0xD6F7, 0x4E3B, + 0xD6F8, 0x8457, 0xD6F9, 0x67F1, 0xD6FA, 0x52A9, 0xD6FB, 0x86C0, 0xD6FC, 0x8D2E, 0xD6FD, 0x94F8, 0xD6FE, 0x7B51, 0xD740, 0x8B46, + 0xD741, 0x8B47, 0xD742, 0x8B48, 0xD743, 0x8B49, 0xD744, 0x8B4A, 0xD745, 0x8B4B, 0xD746, 0x8B4C, 0xD747, 0x8B4D, 0xD748, 0x8B4E, + 0xD749, 0x8B4F, 0xD74A, 0x8B50, 0xD74B, 0x8B51, 0xD74C, 0x8B52, 0xD74D, 0x8B53, 0xD74E, 0x8B54, 0xD74F, 0x8B55, 0xD750, 0x8B56, + 0xD751, 0x8B57, 0xD752, 0x8B58, 0xD753, 0x8B59, 0xD754, 0x8B5A, 0xD755, 0x8B5B, 0xD756, 0x8B5C, 0xD757, 0x8B5D, 0xD758, 0x8B5E, + 0xD759, 0x8B5F, 0xD75A, 0x8B60, 0xD75B, 0x8B61, 0xD75C, 0x8B62, 0xD75D, 0x8B63, 0xD75E, 0x8B64, 0xD75F, 0x8B65, 0xD760, 0x8B67, + 0xD761, 0x8B68, 0xD762, 0x8B69, 0xD763, 0x8B6A, 0xD764, 0x8B6B, 0xD765, 0x8B6D, 0xD766, 0x8B6E, 0xD767, 0x8B6F, 0xD768, 0x8B70, + 0xD769, 0x8B71, 0xD76A, 0x8B72, 0xD76B, 0x8B73, 0xD76C, 0x8B74, 0xD76D, 0x8B75, 0xD76E, 0x8B76, 0xD76F, 0x8B77, 0xD770, 0x8B78, + 0xD771, 0x8B79, 0xD772, 0x8B7A, 0xD773, 0x8B7B, 0xD774, 0x8B7C, 0xD775, 0x8B7D, 0xD776, 0x8B7E, 0xD777, 0x8B7F, 0xD778, 0x8B80, + 0xD779, 0x8B81, 0xD77A, 0x8B82, 0xD77B, 0x8B83, 0xD77C, 0x8B84, 0xD77D, 0x8B85, 0xD77E, 0x8B86, 0xD780, 0x8B87, 0xD781, 0x8B88, + 0xD782, 0x8B89, 0xD783, 0x8B8A, 0xD784, 0x8B8B, 0xD785, 0x8B8C, 0xD786, 0x8B8D, 0xD787, 0x8B8E, 0xD788, 0x8B8F, 0xD789, 0x8B90, + 0xD78A, 0x8B91, 0xD78B, 0x8B92, 0xD78C, 0x8B93, 0xD78D, 0x8B94, 0xD78E, 0x8B95, 0xD78F, 0x8B96, 0xD790, 0x8B97, 0xD791, 0x8B98, + 0xD792, 0x8B99, 0xD793, 0x8B9A, 0xD794, 0x8B9B, 0xD795, 0x8B9C, 0xD796, 0x8B9D, 0xD797, 0x8B9E, 0xD798, 0x8B9F, 0xD799, 0x8BAC, + 0xD79A, 0x8BB1, 0xD79B, 0x8BBB, 0xD79C, 0x8BC7, 0xD79D, 0x8BD0, 0xD79E, 0x8BEA, 0xD79F, 0x8C09, 0xD7A0, 0x8C1E, 0xD7A1, 0x4F4F, + 0xD7A2, 0x6CE8, 0xD7A3, 0x795D, 0xD7A4, 0x9A7B, 0xD7A5, 0x6293, 0xD7A6, 0x722A, 0xD7A7, 0x62FD, 0xD7A8, 0x4E13, 0xD7A9, 0x7816, + 0xD7AA, 0x8F6C, 0xD7AB, 0x64B0, 0xD7AC, 0x8D5A, 0xD7AD, 0x7BC6, 0xD7AE, 0x6869, 0xD7AF, 0x5E84, 0xD7B0, 0x88C5, 0xD7B1, 0x5986, + 0xD7B2, 0x649E, 0xD7B3, 0x58EE, 0xD7B4, 0x72B6, 0xD7B5, 0x690E, 0xD7B6, 0x9525, 0xD7B7, 0x8FFD, 0xD7B8, 0x8D58, 0xD7B9, 0x5760, + 0xD7BA, 0x7F00, 0xD7BB, 0x8C06, 0xD7BC, 0x51C6, 0xD7BD, 0x6349, 0xD7BE, 0x62D9, 0xD7BF, 0x5353, 0xD7C0, 0x684C, 0xD7C1, 0x7422, + 0xD7C2, 0x8301, 0xD7C3, 0x914C, 0xD7C4, 0x5544, 0xD7C5, 0x7740, 0xD7C6, 0x707C, 0xD7C7, 0x6D4A, 0xD7C8, 0x5179, 0xD7C9, 0x54A8, + 0xD7CA, 0x8D44, 0xD7CB, 0x59FF, 0xD7CC, 0x6ECB, 0xD7CD, 0x6DC4, 0xD7CE, 0x5B5C, 0xD7CF, 0x7D2B, 0xD7D0, 0x4ED4, 0xD7D1, 0x7C7D, + 0xD7D2, 0x6ED3, 0xD7D3, 0x5B50, 0xD7D4, 0x81EA, 0xD7D5, 0x6E0D, 0xD7D6, 0x5B57, 0xD7D7, 0x9B03, 0xD7D8, 0x68D5, 0xD7D9, 0x8E2A, + 0xD7DA, 0x5B97, 0xD7DB, 0x7EFC, 0xD7DC, 0x603B, 0xD7DD, 0x7EB5, 0xD7DE, 0x90B9, 0xD7DF, 0x8D70, 0xD7E0, 0x594F, 0xD7E1, 0x63CD, + 0xD7E2, 0x79DF, 0xD7E3, 0x8DB3, 0xD7E4, 0x5352, 0xD7E5, 0x65CF, 0xD7E6, 0x7956, 0xD7E7, 0x8BC5, 0xD7E8, 0x963B, 0xD7E9, 0x7EC4, + 0xD7EA, 0x94BB, 0xD7EB, 0x7E82, 0xD7EC, 0x5634, 0xD7ED, 0x9189, 0xD7EE, 0x6700, 0xD7EF, 0x7F6A, 0xD7F0, 0x5C0A, 0xD7F1, 0x9075, + 0xD7F2, 0x6628, 0xD7F3, 0x5DE6, 0xD7F4, 0x4F50, 0xD7F5, 0x67DE, 0xD7F6, 0x505A, 0xD7F7, 0x4F5C, 0xD7F8, 0x5750, 0xD7F9, 0x5EA7, + 0xD840, 0x8C38, 0xD841, 0x8C39, 0xD842, 0x8C3A, 0xD843, 0x8C3B, 0xD844, 0x8C3C, 0xD845, 0x8C3D, 0xD846, 0x8C3E, 0xD847, 0x8C3F, + 0xD848, 0x8C40, 0xD849, 0x8C42, 0xD84A, 0x8C43, 0xD84B, 0x8C44, 0xD84C, 0x8C45, 0xD84D, 0x8C48, 0xD84E, 0x8C4A, 0xD84F, 0x8C4B, + 0xD850, 0x8C4D, 0xD851, 0x8C4E, 0xD852, 0x8C4F, 0xD853, 0x8C50, 0xD854, 0x8C51, 0xD855, 0x8C52, 0xD856, 0x8C53, 0xD857, 0x8C54, + 0xD858, 0x8C56, 0xD859, 0x8C57, 0xD85A, 0x8C58, 0xD85B, 0x8C59, 0xD85C, 0x8C5B, 0xD85D, 0x8C5C, 0xD85E, 0x8C5D, 0xD85F, 0x8C5E, + 0xD860, 0x8C5F, 0xD861, 0x8C60, 0xD862, 0x8C63, 0xD863, 0x8C64, 0xD864, 0x8C65, 0xD865, 0x8C66, 0xD866, 0x8C67, 0xD867, 0x8C68, + 0xD868, 0x8C69, 0xD869, 0x8C6C, 0xD86A, 0x8C6D, 0xD86B, 0x8C6E, 0xD86C, 0x8C6F, 0xD86D, 0x8C70, 0xD86E, 0x8C71, 0xD86F, 0x8C72, + 0xD870, 0x8C74, 0xD871, 0x8C75, 0xD872, 0x8C76, 0xD873, 0x8C77, 0xD874, 0x8C7B, 0xD875, 0x8C7C, 0xD876, 0x8C7D, 0xD877, 0x8C7E, + 0xD878, 0x8C7F, 0xD879, 0x8C80, 0xD87A, 0x8C81, 0xD87B, 0x8C83, 0xD87C, 0x8C84, 0xD87D, 0x8C86, 0xD87E, 0x8C87, 0xD880, 0x8C88, + 0xD881, 0x8C8B, 0xD882, 0x8C8D, 0xD883, 0x8C8E, 0xD884, 0x8C8F, 0xD885, 0x8C90, 0xD886, 0x8C91, 0xD887, 0x8C92, 0xD888, 0x8C93, + 0xD889, 0x8C95, 0xD88A, 0x8C96, 0xD88B, 0x8C97, 0xD88C, 0x8C99, 0xD88D, 0x8C9A, 0xD88E, 0x8C9B, 0xD88F, 0x8C9C, 0xD890, 0x8C9D, + 0xD891, 0x8C9E, 0xD892, 0x8C9F, 0xD893, 0x8CA0, 0xD894, 0x8CA1, 0xD895, 0x8CA2, 0xD896, 0x8CA3, 0xD897, 0x8CA4, 0xD898, 0x8CA5, + 0xD899, 0x8CA6, 0xD89A, 0x8CA7, 0xD89B, 0x8CA8, 0xD89C, 0x8CA9, 0xD89D, 0x8CAA, 0xD89E, 0x8CAB, 0xD89F, 0x8CAC, 0xD8A0, 0x8CAD, + 0xD8A1, 0x4E8D, 0xD8A2, 0x4E0C, 0xD8A3, 0x5140, 0xD8A4, 0x4E10, 0xD8A5, 0x5EFF, 0xD8A6, 0x5345, 0xD8A7, 0x4E15, 0xD8A8, 0x4E98, + 0xD8A9, 0x4E1E, 0xD8AA, 0x9B32, 0xD8AB, 0x5B6C, 0xD8AC, 0x5669, 0xD8AD, 0x4E28, 0xD8AE, 0x79BA, 0xD8AF, 0x4E3F, 0xD8B0, 0x5315, + 0xD8B1, 0x4E47, 0xD8B2, 0x592D, 0xD8B3, 0x723B, 0xD8B4, 0x536E, 0xD8B5, 0x6C10, 0xD8B6, 0x56DF, 0xD8B7, 0x80E4, 0xD8B8, 0x9997, + 0xD8B9, 0x6BD3, 0xD8BA, 0x777E, 0xD8BB, 0x9F17, 0xD8BC, 0x4E36, 0xD8BD, 0x4E9F, 0xD8BE, 0x9F10, 0xD8BF, 0x4E5C, 0xD8C0, 0x4E69, + 0xD8C1, 0x4E93, 0xD8C2, 0x8288, 0xD8C3, 0x5B5B, 0xD8C4, 0x556C, 0xD8C5, 0x560F, 0xD8C6, 0x4EC4, 0xD8C7, 0x538D, 0xD8C8, 0x539D, + 0xD8C9, 0x53A3, 0xD8CA, 0x53A5, 0xD8CB, 0x53AE, 0xD8CC, 0x9765, 0xD8CD, 0x8D5D, 0xD8CE, 0x531A, 0xD8CF, 0x53F5, 0xD8D0, 0x5326, + 0xD8D1, 0x532E, 0xD8D2, 0x533E, 0xD8D3, 0x8D5C, 0xD8D4, 0x5366, 0xD8D5, 0x5363, 0xD8D6, 0x5202, 0xD8D7, 0x5208, 0xD8D8, 0x520E, + 0xD8D9, 0x522D, 0xD8DA, 0x5233, 0xD8DB, 0x523F, 0xD8DC, 0x5240, 0xD8DD, 0x524C, 0xD8DE, 0x525E, 0xD8DF, 0x5261, 0xD8E0, 0x525C, + 0xD8E1, 0x84AF, 0xD8E2, 0x527D, 0xD8E3, 0x5282, 0xD8E4, 0x5281, 0xD8E5, 0x5290, 0xD8E6, 0x5293, 0xD8E7, 0x5182, 0xD8E8, 0x7F54, + 0xD8E9, 0x4EBB, 0xD8EA, 0x4EC3, 0xD8EB, 0x4EC9, 0xD8EC, 0x4EC2, 0xD8ED, 0x4EE8, 0xD8EE, 0x4EE1, 0xD8EF, 0x4EEB, 0xD8F0, 0x4EDE, + 0xD8F1, 0x4F1B, 0xD8F2, 0x4EF3, 0xD8F3, 0x4F22, 0xD8F4, 0x4F64, 0xD8F5, 0x4EF5, 0xD8F6, 0x4F25, 0xD8F7, 0x4F27, 0xD8F8, 0x4F09, + 0xD8F9, 0x4F2B, 0xD8FA, 0x4F5E, 0xD8FB, 0x4F67, 0xD8FC, 0x6538, 0xD8FD, 0x4F5A, 0xD8FE, 0x4F5D, 0xD940, 0x8CAE, 0xD941, 0x8CAF, + 0xD942, 0x8CB0, 0xD943, 0x8CB1, 0xD944, 0x8CB2, 0xD945, 0x8CB3, 0xD946, 0x8CB4, 0xD947, 0x8CB5, 0xD948, 0x8CB6, 0xD949, 0x8CB7, + 0xD94A, 0x8CB8, 0xD94B, 0x8CB9, 0xD94C, 0x8CBA, 0xD94D, 0x8CBB, 0xD94E, 0x8CBC, 0xD94F, 0x8CBD, 0xD950, 0x8CBE, 0xD951, 0x8CBF, + 0xD952, 0x8CC0, 0xD953, 0x8CC1, 0xD954, 0x8CC2, 0xD955, 0x8CC3, 0xD956, 0x8CC4, 0xD957, 0x8CC5, 0xD958, 0x8CC6, 0xD959, 0x8CC7, + 0xD95A, 0x8CC8, 0xD95B, 0x8CC9, 0xD95C, 0x8CCA, 0xD95D, 0x8CCB, 0xD95E, 0x8CCC, 0xD95F, 0x8CCD, 0xD960, 0x8CCE, 0xD961, 0x8CCF, + 0xD962, 0x8CD0, 0xD963, 0x8CD1, 0xD964, 0x8CD2, 0xD965, 0x8CD3, 0xD966, 0x8CD4, 0xD967, 0x8CD5, 0xD968, 0x8CD6, 0xD969, 0x8CD7, + 0xD96A, 0x8CD8, 0xD96B, 0x8CD9, 0xD96C, 0x8CDA, 0xD96D, 0x8CDB, 0xD96E, 0x8CDC, 0xD96F, 0x8CDD, 0xD970, 0x8CDE, 0xD971, 0x8CDF, + 0xD972, 0x8CE0, 0xD973, 0x8CE1, 0xD974, 0x8CE2, 0xD975, 0x8CE3, 0xD976, 0x8CE4, 0xD977, 0x8CE5, 0xD978, 0x8CE6, 0xD979, 0x8CE7, + 0xD97A, 0x8CE8, 0xD97B, 0x8CE9, 0xD97C, 0x8CEA, 0xD97D, 0x8CEB, 0xD97E, 0x8CEC, 0xD980, 0x8CED, 0xD981, 0x8CEE, 0xD982, 0x8CEF, + 0xD983, 0x8CF0, 0xD984, 0x8CF1, 0xD985, 0x8CF2, 0xD986, 0x8CF3, 0xD987, 0x8CF4, 0xD988, 0x8CF5, 0xD989, 0x8CF6, 0xD98A, 0x8CF7, + 0xD98B, 0x8CF8, 0xD98C, 0x8CF9, 0xD98D, 0x8CFA, 0xD98E, 0x8CFB, 0xD98F, 0x8CFC, 0xD990, 0x8CFD, 0xD991, 0x8CFE, 0xD992, 0x8CFF, + 0xD993, 0x8D00, 0xD994, 0x8D01, 0xD995, 0x8D02, 0xD996, 0x8D03, 0xD997, 0x8D04, 0xD998, 0x8D05, 0xD999, 0x8D06, 0xD99A, 0x8D07, + 0xD99B, 0x8D08, 0xD99C, 0x8D09, 0xD99D, 0x8D0A, 0xD99E, 0x8D0B, 0xD99F, 0x8D0C, 0xD9A0, 0x8D0D, 0xD9A1, 0x4F5F, 0xD9A2, 0x4F57, + 0xD9A3, 0x4F32, 0xD9A4, 0x4F3D, 0xD9A5, 0x4F76, 0xD9A6, 0x4F74, 0xD9A7, 0x4F91, 0xD9A8, 0x4F89, 0xD9A9, 0x4F83, 0xD9AA, 0x4F8F, + 0xD9AB, 0x4F7E, 0xD9AC, 0x4F7B, 0xD9AD, 0x4FAA, 0xD9AE, 0x4F7C, 0xD9AF, 0x4FAC, 0xD9B0, 0x4F94, 0xD9B1, 0x4FE6, 0xD9B2, 0x4FE8, + 0xD9B3, 0x4FEA, 0xD9B4, 0x4FC5, 0xD9B5, 0x4FDA, 0xD9B6, 0x4FE3, 0xD9B7, 0x4FDC, 0xD9B8, 0x4FD1, 0xD9B9, 0x4FDF, 0xD9BA, 0x4FF8, + 0xD9BB, 0x5029, 0xD9BC, 0x504C, 0xD9BD, 0x4FF3, 0xD9BE, 0x502C, 0xD9BF, 0x500F, 0xD9C0, 0x502E, 0xD9C1, 0x502D, 0xD9C2, 0x4FFE, + 0xD9C3, 0x501C, 0xD9C4, 0x500C, 0xD9C5, 0x5025, 0xD9C6, 0x5028, 0xD9C7, 0x507E, 0xD9C8, 0x5043, 0xD9C9, 0x5055, 0xD9CA, 0x5048, + 0xD9CB, 0x504E, 0xD9CC, 0x506C, 0xD9CD, 0x507B, 0xD9CE, 0x50A5, 0xD9CF, 0x50A7, 0xD9D0, 0x50A9, 0xD9D1, 0x50BA, 0xD9D2, 0x50D6, + 0xD9D3, 0x5106, 0xD9D4, 0x50ED, 0xD9D5, 0x50EC, 0xD9D6, 0x50E6, 0xD9D7, 0x50EE, 0xD9D8, 0x5107, 0xD9D9, 0x510B, 0xD9DA, 0x4EDD, + 0xD9DB, 0x6C3D, 0xD9DC, 0x4F58, 0xD9DD, 0x4F65, 0xD9DE, 0x4FCE, 0xD9DF, 0x9FA0, 0xD9E0, 0x6C46, 0xD9E1, 0x7C74, 0xD9E2, 0x516E, + 0xD9E3, 0x5DFD, 0xD9E4, 0x9EC9, 0xD9E5, 0x9998, 0xD9E6, 0x5181, 0xD9E7, 0x5914, 0xD9E8, 0x52F9, 0xD9E9, 0x530D, 0xD9EA, 0x8A07, + 0xD9EB, 0x5310, 0xD9EC, 0x51EB, 0xD9ED, 0x5919, 0xD9EE, 0x5155, 0xD9EF, 0x4EA0, 0xD9F0, 0x5156, 0xD9F1, 0x4EB3, 0xD9F2, 0x886E, + 0xD9F3, 0x88A4, 0xD9F4, 0x4EB5, 0xD9F5, 0x8114, 0xD9F6, 0x88D2, 0xD9F7, 0x7980, 0xD9F8, 0x5B34, 0xD9F9, 0x8803, 0xD9FA, 0x7FB8, + 0xD9FB, 0x51AB, 0xD9FC, 0x51B1, 0xD9FD, 0x51BD, 0xD9FE, 0x51BC, 0xDA40, 0x8D0E, 0xDA41, 0x8D0F, 0xDA42, 0x8D10, 0xDA43, 0x8D11, + 0xDA44, 0x8D12, 0xDA45, 0x8D13, 0xDA46, 0x8D14, 0xDA47, 0x8D15, 0xDA48, 0x8D16, 0xDA49, 0x8D17, 0xDA4A, 0x8D18, 0xDA4B, 0x8D19, + 0xDA4C, 0x8D1A, 0xDA4D, 0x8D1B, 0xDA4E, 0x8D1C, 0xDA4F, 0x8D20, 0xDA50, 0x8D51, 0xDA51, 0x8D52, 0xDA52, 0x8D57, 0xDA53, 0x8D5F, + 0xDA54, 0x8D65, 0xDA55, 0x8D68, 0xDA56, 0x8D69, 0xDA57, 0x8D6A, 0xDA58, 0x8D6C, 0xDA59, 0x8D6E, 0xDA5A, 0x8D6F, 0xDA5B, 0x8D71, + 0xDA5C, 0x8D72, 0xDA5D, 0x8D78, 0xDA5E, 0x8D79, 0xDA5F, 0x8D7A, 0xDA60, 0x8D7B, 0xDA61, 0x8D7C, 0xDA62, 0x8D7D, 0xDA63, 0x8D7E, + 0xDA64, 0x8D7F, 0xDA65, 0x8D80, 0xDA66, 0x8D82, 0xDA67, 0x8D83, 0xDA68, 0x8D86, 0xDA69, 0x8D87, 0xDA6A, 0x8D88, 0xDA6B, 0x8D89, + 0xDA6C, 0x8D8C, 0xDA6D, 0x8D8D, 0xDA6E, 0x8D8E, 0xDA6F, 0x8D8F, 0xDA70, 0x8D90, 0xDA71, 0x8D92, 0xDA72, 0x8D93, 0xDA73, 0x8D95, + 0xDA74, 0x8D96, 0xDA75, 0x8D97, 0xDA76, 0x8D98, 0xDA77, 0x8D99, 0xDA78, 0x8D9A, 0xDA79, 0x8D9B, 0xDA7A, 0x8D9C, 0xDA7B, 0x8D9D, + 0xDA7C, 0x8D9E, 0xDA7D, 0x8DA0, 0xDA7E, 0x8DA1, 0xDA80, 0x8DA2, 0xDA81, 0x8DA4, 0xDA82, 0x8DA5, 0xDA83, 0x8DA6, 0xDA84, 0x8DA7, + 0xDA85, 0x8DA8, 0xDA86, 0x8DA9, 0xDA87, 0x8DAA, 0xDA88, 0x8DAB, 0xDA89, 0x8DAC, 0xDA8A, 0x8DAD, 0xDA8B, 0x8DAE, 0xDA8C, 0x8DAF, + 0xDA8D, 0x8DB0, 0xDA8E, 0x8DB2, 0xDA8F, 0x8DB6, 0xDA90, 0x8DB7, 0xDA91, 0x8DB9, 0xDA92, 0x8DBB, 0xDA93, 0x8DBD, 0xDA94, 0x8DC0, + 0xDA95, 0x8DC1, 0xDA96, 0x8DC2, 0xDA97, 0x8DC5, 0xDA98, 0x8DC7, 0xDA99, 0x8DC8, 0xDA9A, 0x8DC9, 0xDA9B, 0x8DCA, 0xDA9C, 0x8DCD, + 0xDA9D, 0x8DD0, 0xDA9E, 0x8DD2, 0xDA9F, 0x8DD3, 0xDAA0, 0x8DD4, 0xDAA1, 0x51C7, 0xDAA2, 0x5196, 0xDAA3, 0x51A2, 0xDAA4, 0x51A5, + 0xDAA5, 0x8BA0, 0xDAA6, 0x8BA6, 0xDAA7, 0x8BA7, 0xDAA8, 0x8BAA, 0xDAA9, 0x8BB4, 0xDAAA, 0x8BB5, 0xDAAB, 0x8BB7, 0xDAAC, 0x8BC2, + 0xDAAD, 0x8BC3, 0xDAAE, 0x8BCB, 0xDAAF, 0x8BCF, 0xDAB0, 0x8BCE, 0xDAB1, 0x8BD2, 0xDAB2, 0x8BD3, 0xDAB3, 0x8BD4, 0xDAB4, 0x8BD6, + 0xDAB5, 0x8BD8, 0xDAB6, 0x8BD9, 0xDAB7, 0x8BDC, 0xDAB8, 0x8BDF, 0xDAB9, 0x8BE0, 0xDABA, 0x8BE4, 0xDABB, 0x8BE8, 0xDABC, 0x8BE9, + 0xDABD, 0x8BEE, 0xDABE, 0x8BF0, 0xDABF, 0x8BF3, 0xDAC0, 0x8BF6, 0xDAC1, 0x8BF9, 0xDAC2, 0x8BFC, 0xDAC3, 0x8BFF, 0xDAC4, 0x8C00, + 0xDAC5, 0x8C02, 0xDAC6, 0x8C04, 0xDAC7, 0x8C07, 0xDAC8, 0x8C0C, 0xDAC9, 0x8C0F, 0xDACA, 0x8C11, 0xDACB, 0x8C12, 0xDACC, 0x8C14, + 0xDACD, 0x8C15, 0xDACE, 0x8C16, 0xDACF, 0x8C19, 0xDAD0, 0x8C1B, 0xDAD1, 0x8C18, 0xDAD2, 0x8C1D, 0xDAD3, 0x8C1F, 0xDAD4, 0x8C20, + 0xDAD5, 0x8C21, 0xDAD6, 0x8C25, 0xDAD7, 0x8C27, 0xDAD8, 0x8C2A, 0xDAD9, 0x8C2B, 0xDADA, 0x8C2E, 0xDADB, 0x8C2F, 0xDADC, 0x8C32, + 0xDADD, 0x8C33, 0xDADE, 0x8C35, 0xDADF, 0x8C36, 0xDAE0, 0x5369, 0xDAE1, 0x537A, 0xDAE2, 0x961D, 0xDAE3, 0x9622, 0xDAE4, 0x9621, + 0xDAE5, 0x9631, 0xDAE6, 0x962A, 0xDAE7, 0x963D, 0xDAE8, 0x963C, 0xDAE9, 0x9642, 0xDAEA, 0x9649, 0xDAEB, 0x9654, 0xDAEC, 0x965F, + 0xDAED, 0x9667, 0xDAEE, 0x966C, 0xDAEF, 0x9672, 0xDAF0, 0x9674, 0xDAF1, 0x9688, 0xDAF2, 0x968D, 0xDAF3, 0x9697, 0xDAF4, 0x96B0, + 0xDAF5, 0x9097, 0xDAF6, 0x909B, 0xDAF7, 0x909D, 0xDAF8, 0x9099, 0xDAF9, 0x90AC, 0xDAFA, 0x90A1, 0xDAFB, 0x90B4, 0xDAFC, 0x90B3, + 0xDAFD, 0x90B6, 0xDAFE, 0x90BA, 0xDB40, 0x8DD5, 0xDB41, 0x8DD8, 0xDB42, 0x8DD9, 0xDB43, 0x8DDC, 0xDB44, 0x8DE0, 0xDB45, 0x8DE1, + 0xDB46, 0x8DE2, 0xDB47, 0x8DE5, 0xDB48, 0x8DE6, 0xDB49, 0x8DE7, 0xDB4A, 0x8DE9, 0xDB4B, 0x8DED, 0xDB4C, 0x8DEE, 0xDB4D, 0x8DF0, + 0xDB4E, 0x8DF1, 0xDB4F, 0x8DF2, 0xDB50, 0x8DF4, 0xDB51, 0x8DF6, 0xDB52, 0x8DFC, 0xDB53, 0x8DFE, 0xDB54, 0x8DFF, 0xDB55, 0x8E00, + 0xDB56, 0x8E01, 0xDB57, 0x8E02, 0xDB58, 0x8E03, 0xDB59, 0x8E04, 0xDB5A, 0x8E06, 0xDB5B, 0x8E07, 0xDB5C, 0x8E08, 0xDB5D, 0x8E0B, + 0xDB5E, 0x8E0D, 0xDB5F, 0x8E0E, 0xDB60, 0x8E10, 0xDB61, 0x8E11, 0xDB62, 0x8E12, 0xDB63, 0x8E13, 0xDB64, 0x8E15, 0xDB65, 0x8E16, + 0xDB66, 0x8E17, 0xDB67, 0x8E18, 0xDB68, 0x8E19, 0xDB69, 0x8E1A, 0xDB6A, 0x8E1B, 0xDB6B, 0x8E1C, 0xDB6C, 0x8E20, 0xDB6D, 0x8E21, + 0xDB6E, 0x8E24, 0xDB6F, 0x8E25, 0xDB70, 0x8E26, 0xDB71, 0x8E27, 0xDB72, 0x8E28, 0xDB73, 0x8E2B, 0xDB74, 0x8E2D, 0xDB75, 0x8E30, + 0xDB76, 0x8E32, 0xDB77, 0x8E33, 0xDB78, 0x8E34, 0xDB79, 0x8E36, 0xDB7A, 0x8E37, 0xDB7B, 0x8E38, 0xDB7C, 0x8E3B, 0xDB7D, 0x8E3C, + 0xDB7E, 0x8E3E, 0xDB80, 0x8E3F, 0xDB81, 0x8E43, 0xDB82, 0x8E45, 0xDB83, 0x8E46, 0xDB84, 0x8E4C, 0xDB85, 0x8E4D, 0xDB86, 0x8E4E, + 0xDB87, 0x8E4F, 0xDB88, 0x8E50, 0xDB89, 0x8E53, 0xDB8A, 0x8E54, 0xDB8B, 0x8E55, 0xDB8C, 0x8E56, 0xDB8D, 0x8E57, 0xDB8E, 0x8E58, + 0xDB8F, 0x8E5A, 0xDB90, 0x8E5B, 0xDB91, 0x8E5C, 0xDB92, 0x8E5D, 0xDB93, 0x8E5E, 0xDB94, 0x8E5F, 0xDB95, 0x8E60, 0xDB96, 0x8E61, + 0xDB97, 0x8E62, 0xDB98, 0x8E63, 0xDB99, 0x8E64, 0xDB9A, 0x8E65, 0xDB9B, 0x8E67, 0xDB9C, 0x8E68, 0xDB9D, 0x8E6A, 0xDB9E, 0x8E6B, + 0xDB9F, 0x8E6E, 0xDBA0, 0x8E71, 0xDBA1, 0x90B8, 0xDBA2, 0x90B0, 0xDBA3, 0x90CF, 0xDBA4, 0x90C5, 0xDBA5, 0x90BE, 0xDBA6, 0x90D0, + 0xDBA7, 0x90C4, 0xDBA8, 0x90C7, 0xDBA9, 0x90D3, 0xDBAA, 0x90E6, 0xDBAB, 0x90E2, 0xDBAC, 0x90DC, 0xDBAD, 0x90D7, 0xDBAE, 0x90DB, + 0xDBAF, 0x90EB, 0xDBB0, 0x90EF, 0xDBB1, 0x90FE, 0xDBB2, 0x9104, 0xDBB3, 0x9122, 0xDBB4, 0x911E, 0xDBB5, 0x9123, 0xDBB6, 0x9131, + 0xDBB7, 0x912F, 0xDBB8, 0x9139, 0xDBB9, 0x9143, 0xDBBA, 0x9146, 0xDBBB, 0x520D, 0xDBBC, 0x5942, 0xDBBD, 0x52A2, 0xDBBE, 0x52AC, + 0xDBBF, 0x52AD, 0xDBC0, 0x52BE, 0xDBC1, 0x54FF, 0xDBC2, 0x52D0, 0xDBC3, 0x52D6, 0xDBC4, 0x52F0, 0xDBC5, 0x53DF, 0xDBC6, 0x71EE, + 0xDBC7, 0x77CD, 0xDBC8, 0x5EF4, 0xDBC9, 0x51F5, 0xDBCA, 0x51FC, 0xDBCB, 0x9B2F, 0xDBCC, 0x53B6, 0xDBCD, 0x5F01, 0xDBCE, 0x755A, + 0xDBCF, 0x5DEF, 0xDBD0, 0x574C, 0xDBD1, 0x57A9, 0xDBD2, 0x57A1, 0xDBD3, 0x587E, 0xDBD4, 0x58BC, 0xDBD5, 0x58C5, 0xDBD6, 0x58D1, + 0xDBD7, 0x5729, 0xDBD8, 0x572C, 0xDBD9, 0x572A, 0xDBDA, 0x5733, 0xDBDB, 0x5739, 0xDBDC, 0x572E, 0xDBDD, 0x572F, 0xDBDE, 0x575C, + 0xDBDF, 0x573B, 0xDBE0, 0x5742, 0xDBE1, 0x5769, 0xDBE2, 0x5785, 0xDBE3, 0x576B, 0xDBE4, 0x5786, 0xDBE5, 0x577C, 0xDBE6, 0x577B, + 0xDBE7, 0x5768, 0xDBE8, 0x576D, 0xDBE9, 0x5776, 0xDBEA, 0x5773, 0xDBEB, 0x57AD, 0xDBEC, 0x57A4, 0xDBED, 0x578C, 0xDBEE, 0x57B2, + 0xDBEF, 0x57CF, 0xDBF0, 0x57A7, 0xDBF1, 0x57B4, 0xDBF2, 0x5793, 0xDBF3, 0x57A0, 0xDBF4, 0x57D5, 0xDBF5, 0x57D8, 0xDBF6, 0x57DA, + 0xDBF7, 0x57D9, 0xDBF8, 0x57D2, 0xDBF9, 0x57B8, 0xDBFA, 0x57F4, 0xDBFB, 0x57EF, 0xDBFC, 0x57F8, 0xDBFD, 0x57E4, 0xDBFE, 0x57DD, + 0xDC40, 0x8E73, 0xDC41, 0x8E75, 0xDC42, 0x8E77, 0xDC43, 0x8E78, 0xDC44, 0x8E79, 0xDC45, 0x8E7A, 0xDC46, 0x8E7B, 0xDC47, 0x8E7D, + 0xDC48, 0x8E7E, 0xDC49, 0x8E80, 0xDC4A, 0x8E82, 0xDC4B, 0x8E83, 0xDC4C, 0x8E84, 0xDC4D, 0x8E86, 0xDC4E, 0x8E88, 0xDC4F, 0x8E89, + 0xDC50, 0x8E8A, 0xDC51, 0x8E8B, 0xDC52, 0x8E8C, 0xDC53, 0x8E8D, 0xDC54, 0x8E8E, 0xDC55, 0x8E91, 0xDC56, 0x8E92, 0xDC57, 0x8E93, + 0xDC58, 0x8E95, 0xDC59, 0x8E96, 0xDC5A, 0x8E97, 0xDC5B, 0x8E98, 0xDC5C, 0x8E99, 0xDC5D, 0x8E9A, 0xDC5E, 0x8E9B, 0xDC5F, 0x8E9D, + 0xDC60, 0x8E9F, 0xDC61, 0x8EA0, 0xDC62, 0x8EA1, 0xDC63, 0x8EA2, 0xDC64, 0x8EA3, 0xDC65, 0x8EA4, 0xDC66, 0x8EA5, 0xDC67, 0x8EA6, + 0xDC68, 0x8EA7, 0xDC69, 0x8EA8, 0xDC6A, 0x8EA9, 0xDC6B, 0x8EAA, 0xDC6C, 0x8EAD, 0xDC6D, 0x8EAE, 0xDC6E, 0x8EB0, 0xDC6F, 0x8EB1, + 0xDC70, 0x8EB3, 0xDC71, 0x8EB4, 0xDC72, 0x8EB5, 0xDC73, 0x8EB6, 0xDC74, 0x8EB7, 0xDC75, 0x8EB8, 0xDC76, 0x8EB9, 0xDC77, 0x8EBB, + 0xDC78, 0x8EBC, 0xDC79, 0x8EBD, 0xDC7A, 0x8EBE, 0xDC7B, 0x8EBF, 0xDC7C, 0x8EC0, 0xDC7D, 0x8EC1, 0xDC7E, 0x8EC2, 0xDC80, 0x8EC3, + 0xDC81, 0x8EC4, 0xDC82, 0x8EC5, 0xDC83, 0x8EC6, 0xDC84, 0x8EC7, 0xDC85, 0x8EC8, 0xDC86, 0x8EC9, 0xDC87, 0x8ECA, 0xDC88, 0x8ECB, + 0xDC89, 0x8ECC, 0xDC8A, 0x8ECD, 0xDC8B, 0x8ECF, 0xDC8C, 0x8ED0, 0xDC8D, 0x8ED1, 0xDC8E, 0x8ED2, 0xDC8F, 0x8ED3, 0xDC90, 0x8ED4, + 0xDC91, 0x8ED5, 0xDC92, 0x8ED6, 0xDC93, 0x8ED7, 0xDC94, 0x8ED8, 0xDC95, 0x8ED9, 0xDC96, 0x8EDA, 0xDC97, 0x8EDB, 0xDC98, 0x8EDC, + 0xDC99, 0x8EDD, 0xDC9A, 0x8EDE, 0xDC9B, 0x8EDF, 0xDC9C, 0x8EE0, 0xDC9D, 0x8EE1, 0xDC9E, 0x8EE2, 0xDC9F, 0x8EE3, 0xDCA0, 0x8EE4, + 0xDCA1, 0x580B, 0xDCA2, 0x580D, 0xDCA3, 0x57FD, 0xDCA4, 0x57ED, 0xDCA5, 0x5800, 0xDCA6, 0x581E, 0xDCA7, 0x5819, 0xDCA8, 0x5844, + 0xDCA9, 0x5820, 0xDCAA, 0x5865, 0xDCAB, 0x586C, 0xDCAC, 0x5881, 0xDCAD, 0x5889, 0xDCAE, 0x589A, 0xDCAF, 0x5880, 0xDCB0, 0x99A8, + 0xDCB1, 0x9F19, 0xDCB2, 0x61FF, 0xDCB3, 0x8279, 0xDCB4, 0x827D, 0xDCB5, 0x827F, 0xDCB6, 0x828F, 0xDCB7, 0x828A, 0xDCB8, 0x82A8, + 0xDCB9, 0x8284, 0xDCBA, 0x828E, 0xDCBB, 0x8291, 0xDCBC, 0x8297, 0xDCBD, 0x8299, 0xDCBE, 0x82AB, 0xDCBF, 0x82B8, 0xDCC0, 0x82BE, + 0xDCC1, 0x82B0, 0xDCC2, 0x82C8, 0xDCC3, 0x82CA, 0xDCC4, 0x82E3, 0xDCC5, 0x8298, 0xDCC6, 0x82B7, 0xDCC7, 0x82AE, 0xDCC8, 0x82CB, + 0xDCC9, 0x82CC, 0xDCCA, 0x82C1, 0xDCCB, 0x82A9, 0xDCCC, 0x82B4, 0xDCCD, 0x82A1, 0xDCCE, 0x82AA, 0xDCCF, 0x829F, 0xDCD0, 0x82C4, + 0xDCD1, 0x82CE, 0xDCD2, 0x82A4, 0xDCD3, 0x82E1, 0xDCD4, 0x8309, 0xDCD5, 0x82F7, 0xDCD6, 0x82E4, 0xDCD7, 0x830F, 0xDCD8, 0x8307, + 0xDCD9, 0x82DC, 0xDCDA, 0x82F4, 0xDCDB, 0x82D2, 0xDCDC, 0x82D8, 0xDCDD, 0x830C, 0xDCDE, 0x82FB, 0xDCDF, 0x82D3, 0xDCE0, 0x8311, + 0xDCE1, 0x831A, 0xDCE2, 0x8306, 0xDCE3, 0x8314, 0xDCE4, 0x8315, 0xDCE5, 0x82E0, 0xDCE6, 0x82D5, 0xDCE7, 0x831C, 0xDCE8, 0x8351, + 0xDCE9, 0x835B, 0xDCEA, 0x835C, 0xDCEB, 0x8308, 0xDCEC, 0x8392, 0xDCED, 0x833C, 0xDCEE, 0x8334, 0xDCEF, 0x8331, 0xDCF0, 0x839B, + 0xDCF1, 0x835E, 0xDCF2, 0x832F, 0xDCF3, 0x834F, 0xDCF4, 0x8347, 0xDCF5, 0x8343, 0xDCF6, 0x835F, 0xDCF7, 0x8340, 0xDCF8, 0x8317, + 0xDCF9, 0x8360, 0xDCFA, 0x832D, 0xDCFB, 0x833A, 0xDCFC, 0x8333, 0xDCFD, 0x8366, 0xDCFE, 0x8365, 0xDD40, 0x8EE5, 0xDD41, 0x8EE6, + 0xDD42, 0x8EE7, 0xDD43, 0x8EE8, 0xDD44, 0x8EE9, 0xDD45, 0x8EEA, 0xDD46, 0x8EEB, 0xDD47, 0x8EEC, 0xDD48, 0x8EED, 0xDD49, 0x8EEE, + 0xDD4A, 0x8EEF, 0xDD4B, 0x8EF0, 0xDD4C, 0x8EF1, 0xDD4D, 0x8EF2, 0xDD4E, 0x8EF3, 0xDD4F, 0x8EF4, 0xDD50, 0x8EF5, 0xDD51, 0x8EF6, + 0xDD52, 0x8EF7, 0xDD53, 0x8EF8, 0xDD54, 0x8EF9, 0xDD55, 0x8EFA, 0xDD56, 0x8EFB, 0xDD57, 0x8EFC, 0xDD58, 0x8EFD, 0xDD59, 0x8EFE, + 0xDD5A, 0x8EFF, 0xDD5B, 0x8F00, 0xDD5C, 0x8F01, 0xDD5D, 0x8F02, 0xDD5E, 0x8F03, 0xDD5F, 0x8F04, 0xDD60, 0x8F05, 0xDD61, 0x8F06, + 0xDD62, 0x8F07, 0xDD63, 0x8F08, 0xDD64, 0x8F09, 0xDD65, 0x8F0A, 0xDD66, 0x8F0B, 0xDD67, 0x8F0C, 0xDD68, 0x8F0D, 0xDD69, 0x8F0E, + 0xDD6A, 0x8F0F, 0xDD6B, 0x8F10, 0xDD6C, 0x8F11, 0xDD6D, 0x8F12, 0xDD6E, 0x8F13, 0xDD6F, 0x8F14, 0xDD70, 0x8F15, 0xDD71, 0x8F16, + 0xDD72, 0x8F17, 0xDD73, 0x8F18, 0xDD74, 0x8F19, 0xDD75, 0x8F1A, 0xDD76, 0x8F1B, 0xDD77, 0x8F1C, 0xDD78, 0x8F1D, 0xDD79, 0x8F1E, + 0xDD7A, 0x8F1F, 0xDD7B, 0x8F20, 0xDD7C, 0x8F21, 0xDD7D, 0x8F22, 0xDD7E, 0x8F23, 0xDD80, 0x8F24, 0xDD81, 0x8F25, 0xDD82, 0x8F26, + 0xDD83, 0x8F27, 0xDD84, 0x8F28, 0xDD85, 0x8F29, 0xDD86, 0x8F2A, 0xDD87, 0x8F2B, 0xDD88, 0x8F2C, 0xDD89, 0x8F2D, 0xDD8A, 0x8F2E, + 0xDD8B, 0x8F2F, 0xDD8C, 0x8F30, 0xDD8D, 0x8F31, 0xDD8E, 0x8F32, 0xDD8F, 0x8F33, 0xDD90, 0x8F34, 0xDD91, 0x8F35, 0xDD92, 0x8F36, + 0xDD93, 0x8F37, 0xDD94, 0x8F38, 0xDD95, 0x8F39, 0xDD96, 0x8F3A, 0xDD97, 0x8F3B, 0xDD98, 0x8F3C, 0xDD99, 0x8F3D, 0xDD9A, 0x8F3E, + 0xDD9B, 0x8F3F, 0xDD9C, 0x8F40, 0xDD9D, 0x8F41, 0xDD9E, 0x8F42, 0xDD9F, 0x8F43, 0xDDA0, 0x8F44, 0xDDA1, 0x8368, 0xDDA2, 0x831B, + 0xDDA3, 0x8369, 0xDDA4, 0x836C, 0xDDA5, 0x836A, 0xDDA6, 0x836D, 0xDDA7, 0x836E, 0xDDA8, 0x83B0, 0xDDA9, 0x8378, 0xDDAA, 0x83B3, + 0xDDAB, 0x83B4, 0xDDAC, 0x83A0, 0xDDAD, 0x83AA, 0xDDAE, 0x8393, 0xDDAF, 0x839C, 0xDDB0, 0x8385, 0xDDB1, 0x837C, 0xDDB2, 0x83B6, + 0xDDB3, 0x83A9, 0xDDB4, 0x837D, 0xDDB5, 0x83B8, 0xDDB6, 0x837B, 0xDDB7, 0x8398, 0xDDB8, 0x839E, 0xDDB9, 0x83A8, 0xDDBA, 0x83BA, + 0xDDBB, 0x83BC, 0xDDBC, 0x83C1, 0xDDBD, 0x8401, 0xDDBE, 0x83E5, 0xDDBF, 0x83D8, 0xDDC0, 0x5807, 0xDDC1, 0x8418, 0xDDC2, 0x840B, + 0xDDC3, 0x83DD, 0xDDC4, 0x83FD, 0xDDC5, 0x83D6, 0xDDC6, 0x841C, 0xDDC7, 0x8438, 0xDDC8, 0x8411, 0xDDC9, 0x8406, 0xDDCA, 0x83D4, + 0xDDCB, 0x83DF, 0xDDCC, 0x840F, 0xDDCD, 0x8403, 0xDDCE, 0x83F8, 0xDDCF, 0x83F9, 0xDDD0, 0x83EA, 0xDDD1, 0x83C5, 0xDDD2, 0x83C0, + 0xDDD3, 0x8426, 0xDDD4, 0x83F0, 0xDDD5, 0x83E1, 0xDDD6, 0x845C, 0xDDD7, 0x8451, 0xDDD8, 0x845A, 0xDDD9, 0x8459, 0xDDDA, 0x8473, + 0xDDDB, 0x8487, 0xDDDC, 0x8488, 0xDDDD, 0x847A, 0xDDDE, 0x8489, 0xDDDF, 0x8478, 0xDDE0, 0x843C, 0xDDE1, 0x8446, 0xDDE2, 0x8469, + 0xDDE3, 0x8476, 0xDDE4, 0x848C, 0xDDE5, 0x848E, 0xDDE6, 0x8431, 0xDDE7, 0x846D, 0xDDE8, 0x84C1, 0xDDE9, 0x84CD, 0xDDEA, 0x84D0, + 0xDDEB, 0x84E6, 0xDDEC, 0x84BD, 0xDDED, 0x84D3, 0xDDEE, 0x84CA, 0xDDEF, 0x84BF, 0xDDF0, 0x84BA, 0xDDF1, 0x84E0, 0xDDF2, 0x84A1, + 0xDDF3, 0x84B9, 0xDDF4, 0x84B4, 0xDDF5, 0x8497, 0xDDF6, 0x84E5, 0xDDF7, 0x84E3, 0xDDF8, 0x850C, 0xDDF9, 0x750D, 0xDDFA, 0x8538, + 0xDDFB, 0x84F0, 0xDDFC, 0x8539, 0xDDFD, 0x851F, 0xDDFE, 0x853A, 0xDE40, 0x8F45, 0xDE41, 0x8F46, 0xDE42, 0x8F47, 0xDE43, 0x8F48, + 0xDE44, 0x8F49, 0xDE45, 0x8F4A, 0xDE46, 0x8F4B, 0xDE47, 0x8F4C, 0xDE48, 0x8F4D, 0xDE49, 0x8F4E, 0xDE4A, 0x8F4F, 0xDE4B, 0x8F50, + 0xDE4C, 0x8F51, 0xDE4D, 0x8F52, 0xDE4E, 0x8F53, 0xDE4F, 0x8F54, 0xDE50, 0x8F55, 0xDE51, 0x8F56, 0xDE52, 0x8F57, 0xDE53, 0x8F58, + 0xDE54, 0x8F59, 0xDE55, 0x8F5A, 0xDE56, 0x8F5B, 0xDE57, 0x8F5C, 0xDE58, 0x8F5D, 0xDE59, 0x8F5E, 0xDE5A, 0x8F5F, 0xDE5B, 0x8F60, + 0xDE5C, 0x8F61, 0xDE5D, 0x8F62, 0xDE5E, 0x8F63, 0xDE5F, 0x8F64, 0xDE60, 0x8F65, 0xDE61, 0x8F6A, 0xDE62, 0x8F80, 0xDE63, 0x8F8C, + 0xDE64, 0x8F92, 0xDE65, 0x8F9D, 0xDE66, 0x8FA0, 0xDE67, 0x8FA1, 0xDE68, 0x8FA2, 0xDE69, 0x8FA4, 0xDE6A, 0x8FA5, 0xDE6B, 0x8FA6, + 0xDE6C, 0x8FA7, 0xDE6D, 0x8FAA, 0xDE6E, 0x8FAC, 0xDE6F, 0x8FAD, 0xDE70, 0x8FAE, 0xDE71, 0x8FAF, 0xDE72, 0x8FB2, 0xDE73, 0x8FB3, + 0xDE74, 0x8FB4, 0xDE75, 0x8FB5, 0xDE76, 0x8FB7, 0xDE77, 0x8FB8, 0xDE78, 0x8FBA, 0xDE79, 0x8FBB, 0xDE7A, 0x8FBC, 0xDE7B, 0x8FBF, + 0xDE7C, 0x8FC0, 0xDE7D, 0x8FC3, 0xDE7E, 0x8FC6, 0xDE80, 0x8FC9, 0xDE81, 0x8FCA, 0xDE82, 0x8FCB, 0xDE83, 0x8FCC, 0xDE84, 0x8FCD, + 0xDE85, 0x8FCF, 0xDE86, 0x8FD2, 0xDE87, 0x8FD6, 0xDE88, 0x8FD7, 0xDE89, 0x8FDA, 0xDE8A, 0x8FE0, 0xDE8B, 0x8FE1, 0xDE8C, 0x8FE3, + 0xDE8D, 0x8FE7, 0xDE8E, 0x8FEC, 0xDE8F, 0x8FEF, 0xDE90, 0x8FF1, 0xDE91, 0x8FF2, 0xDE92, 0x8FF4, 0xDE93, 0x8FF5, 0xDE94, 0x8FF6, + 0xDE95, 0x8FFA, 0xDE96, 0x8FFB, 0xDE97, 0x8FFC, 0xDE98, 0x8FFE, 0xDE99, 0x8FFF, 0xDE9A, 0x9007, 0xDE9B, 0x9008, 0xDE9C, 0x900C, + 0xDE9D, 0x900E, 0xDE9E, 0x9013, 0xDE9F, 0x9015, 0xDEA0, 0x9018, 0xDEA1, 0x8556, 0xDEA2, 0x853B, 0xDEA3, 0x84FF, 0xDEA4, 0x84FC, + 0xDEA5, 0x8559, 0xDEA6, 0x8548, 0xDEA7, 0x8568, 0xDEA8, 0x8564, 0xDEA9, 0x855E, 0xDEAA, 0x857A, 0xDEAB, 0x77A2, 0xDEAC, 0x8543, + 0xDEAD, 0x8572, 0xDEAE, 0x857B, 0xDEAF, 0x85A4, 0xDEB0, 0x85A8, 0xDEB1, 0x8587, 0xDEB2, 0x858F, 0xDEB3, 0x8579, 0xDEB4, 0x85AE, + 0xDEB5, 0x859C, 0xDEB6, 0x8585, 0xDEB7, 0x85B9, 0xDEB8, 0x85B7, 0xDEB9, 0x85B0, 0xDEBA, 0x85D3, 0xDEBB, 0x85C1, 0xDEBC, 0x85DC, + 0xDEBD, 0x85FF, 0xDEBE, 0x8627, 0xDEBF, 0x8605, 0xDEC0, 0x8629, 0xDEC1, 0x8616, 0xDEC2, 0x863C, 0xDEC3, 0x5EFE, 0xDEC4, 0x5F08, + 0xDEC5, 0x593C, 0xDEC6, 0x5941, 0xDEC7, 0x8037, 0xDEC8, 0x5955, 0xDEC9, 0x595A, 0xDECA, 0x5958, 0xDECB, 0x530F, 0xDECC, 0x5C22, + 0xDECD, 0x5C25, 0xDECE, 0x5C2C, 0xDECF, 0x5C34, 0xDED0, 0x624C, 0xDED1, 0x626A, 0xDED2, 0x629F, 0xDED3, 0x62BB, 0xDED4, 0x62CA, + 0xDED5, 0x62DA, 0xDED6, 0x62D7, 0xDED7, 0x62EE, 0xDED8, 0x6322, 0xDED9, 0x62F6, 0xDEDA, 0x6339, 0xDEDB, 0x634B, 0xDEDC, 0x6343, + 0xDEDD, 0x63AD, 0xDEDE, 0x63F6, 0xDEDF, 0x6371, 0xDEE0, 0x637A, 0xDEE1, 0x638E, 0xDEE2, 0x63B4, 0xDEE3, 0x636D, 0xDEE4, 0x63AC, + 0xDEE5, 0x638A, 0xDEE6, 0x6369, 0xDEE7, 0x63AE, 0xDEE8, 0x63BC, 0xDEE9, 0x63F2, 0xDEEA, 0x63F8, 0xDEEB, 0x63E0, 0xDEEC, 0x63FF, + 0xDEED, 0x63C4, 0xDEEE, 0x63DE, 0xDEEF, 0x63CE, 0xDEF0, 0x6452, 0xDEF1, 0x63C6, 0xDEF2, 0x63BE, 0xDEF3, 0x6445, 0xDEF4, 0x6441, + 0xDEF5, 0x640B, 0xDEF6, 0x641B, 0xDEF7, 0x6420, 0xDEF8, 0x640C, 0xDEF9, 0x6426, 0xDEFA, 0x6421, 0xDEFB, 0x645E, 0xDEFC, 0x6484, + 0xDEFD, 0x646D, 0xDEFE, 0x6496, 0xDF40, 0x9019, 0xDF41, 0x901C, 0xDF42, 0x9023, 0xDF43, 0x9024, 0xDF44, 0x9025, 0xDF45, 0x9027, + 0xDF46, 0x9028, 0xDF47, 0x9029, 0xDF48, 0x902A, 0xDF49, 0x902B, 0xDF4A, 0x902C, 0xDF4B, 0x9030, 0xDF4C, 0x9031, 0xDF4D, 0x9032, + 0xDF4E, 0x9033, 0xDF4F, 0x9034, 0xDF50, 0x9037, 0xDF51, 0x9039, 0xDF52, 0x903A, 0xDF53, 0x903D, 0xDF54, 0x903F, 0xDF55, 0x9040, + 0xDF56, 0x9043, 0xDF57, 0x9045, 0xDF58, 0x9046, 0xDF59, 0x9048, 0xDF5A, 0x9049, 0xDF5B, 0x904A, 0xDF5C, 0x904B, 0xDF5D, 0x904C, + 0xDF5E, 0x904E, 0xDF5F, 0x9054, 0xDF60, 0x9055, 0xDF61, 0x9056, 0xDF62, 0x9059, 0xDF63, 0x905A, 0xDF64, 0x905C, 0xDF65, 0x905D, + 0xDF66, 0x905E, 0xDF67, 0x905F, 0xDF68, 0x9060, 0xDF69, 0x9061, 0xDF6A, 0x9064, 0xDF6B, 0x9066, 0xDF6C, 0x9067, 0xDF6D, 0x9069, + 0xDF6E, 0x906A, 0xDF6F, 0x906B, 0xDF70, 0x906C, 0xDF71, 0x906F, 0xDF72, 0x9070, 0xDF73, 0x9071, 0xDF74, 0x9072, 0xDF75, 0x9073, + 0xDF76, 0x9076, 0xDF77, 0x9077, 0xDF78, 0x9078, 0xDF79, 0x9079, 0xDF7A, 0x907A, 0xDF7B, 0x907B, 0xDF7C, 0x907C, 0xDF7D, 0x907E, + 0xDF7E, 0x9081, 0xDF80, 0x9084, 0xDF81, 0x9085, 0xDF82, 0x9086, 0xDF83, 0x9087, 0xDF84, 0x9089, 0xDF85, 0x908A, 0xDF86, 0x908C, + 0xDF87, 0x908D, 0xDF88, 0x908E, 0xDF89, 0x908F, 0xDF8A, 0x9090, 0xDF8B, 0x9092, 0xDF8C, 0x9094, 0xDF8D, 0x9096, 0xDF8E, 0x9098, + 0xDF8F, 0x909A, 0xDF90, 0x909C, 0xDF91, 0x909E, 0xDF92, 0x909F, 0xDF93, 0x90A0, 0xDF94, 0x90A4, 0xDF95, 0x90A5, 0xDF96, 0x90A7, + 0xDF97, 0x90A8, 0xDF98, 0x90A9, 0xDF99, 0x90AB, 0xDF9A, 0x90AD, 0xDF9B, 0x90B2, 0xDF9C, 0x90B7, 0xDF9D, 0x90BC, 0xDF9E, 0x90BD, + 0xDF9F, 0x90BF, 0xDFA0, 0x90C0, 0xDFA1, 0x647A, 0xDFA2, 0x64B7, 0xDFA3, 0x64B8, 0xDFA4, 0x6499, 0xDFA5, 0x64BA, 0xDFA6, 0x64C0, + 0xDFA7, 0x64D0, 0xDFA8, 0x64D7, 0xDFA9, 0x64E4, 0xDFAA, 0x64E2, 0xDFAB, 0x6509, 0xDFAC, 0x6525, 0xDFAD, 0x652E, 0xDFAE, 0x5F0B, + 0xDFAF, 0x5FD2, 0xDFB0, 0x7519, 0xDFB1, 0x5F11, 0xDFB2, 0x535F, 0xDFB3, 0x53F1, 0xDFB4, 0x53FD, 0xDFB5, 0x53E9, 0xDFB6, 0x53E8, + 0xDFB7, 0x53FB, 0xDFB8, 0x5412, 0xDFB9, 0x5416, 0xDFBA, 0x5406, 0xDFBB, 0x544B, 0xDFBC, 0x5452, 0xDFBD, 0x5453, 0xDFBE, 0x5454, + 0xDFBF, 0x5456, 0xDFC0, 0x5443, 0xDFC1, 0x5421, 0xDFC2, 0x5457, 0xDFC3, 0x5459, 0xDFC4, 0x5423, 0xDFC5, 0x5432, 0xDFC6, 0x5482, + 0xDFC7, 0x5494, 0xDFC8, 0x5477, 0xDFC9, 0x5471, 0xDFCA, 0x5464, 0xDFCB, 0x549A, 0xDFCC, 0x549B, 0xDFCD, 0x5484, 0xDFCE, 0x5476, + 0xDFCF, 0x5466, 0xDFD0, 0x549D, 0xDFD1, 0x54D0, 0xDFD2, 0x54AD, 0xDFD3, 0x54C2, 0xDFD4, 0x54B4, 0xDFD5, 0x54D2, 0xDFD6, 0x54A7, + 0xDFD7, 0x54A6, 0xDFD8, 0x54D3, 0xDFD9, 0x54D4, 0xDFDA, 0x5472, 0xDFDB, 0x54A3, 0xDFDC, 0x54D5, 0xDFDD, 0x54BB, 0xDFDE, 0x54BF, + 0xDFDF, 0x54CC, 0xDFE0, 0x54D9, 0xDFE1, 0x54DA, 0xDFE2, 0x54DC, 0xDFE3, 0x54A9, 0xDFE4, 0x54AA, 0xDFE5, 0x54A4, 0xDFE6, 0x54DD, + 0xDFE7, 0x54CF, 0xDFE8, 0x54DE, 0xDFE9, 0x551B, 0xDFEA, 0x54E7, 0xDFEB, 0x5520, 0xDFEC, 0x54FD, 0xDFED, 0x5514, 0xDFEE, 0x54F3, + 0xDFEF, 0x5522, 0xDFF0, 0x5523, 0xDFF1, 0x550F, 0xDFF2, 0x5511, 0xDFF3, 0x5527, 0xDFF4, 0x552A, 0xDFF5, 0x5567, 0xDFF6, 0x558F, + 0xDFF7, 0x55B5, 0xDFF8, 0x5549, 0xDFF9, 0x556D, 0xDFFA, 0x5541, 0xDFFB, 0x5555, 0xDFFC, 0x553F, 0xDFFD, 0x5550, 0xDFFE, 0x553C, + 0xE040, 0x90C2, 0xE041, 0x90C3, 0xE042, 0x90C6, 0xE043, 0x90C8, 0xE044, 0x90C9, 0xE045, 0x90CB, 0xE046, 0x90CC, 0xE047, 0x90CD, + 0xE048, 0x90D2, 0xE049, 0x90D4, 0xE04A, 0x90D5, 0xE04B, 0x90D6, 0xE04C, 0x90D8, 0xE04D, 0x90D9, 0xE04E, 0x90DA, 0xE04F, 0x90DE, + 0xE050, 0x90DF, 0xE051, 0x90E0, 0xE052, 0x90E3, 0xE053, 0x90E4, 0xE054, 0x90E5, 0xE055, 0x90E9, 0xE056, 0x90EA, 0xE057, 0x90EC, + 0xE058, 0x90EE, 0xE059, 0x90F0, 0xE05A, 0x90F1, 0xE05B, 0x90F2, 0xE05C, 0x90F3, 0xE05D, 0x90F5, 0xE05E, 0x90F6, 0xE05F, 0x90F7, + 0xE060, 0x90F9, 0xE061, 0x90FA, 0xE062, 0x90FB, 0xE063, 0x90FC, 0xE064, 0x90FF, 0xE065, 0x9100, 0xE066, 0x9101, 0xE067, 0x9103, + 0xE068, 0x9105, 0xE069, 0x9106, 0xE06A, 0x9107, 0xE06B, 0x9108, 0xE06C, 0x9109, 0xE06D, 0x910A, 0xE06E, 0x910B, 0xE06F, 0x910C, + 0xE070, 0x910D, 0xE071, 0x910E, 0xE072, 0x910F, 0xE073, 0x9110, 0xE074, 0x9111, 0xE075, 0x9112, 0xE076, 0x9113, 0xE077, 0x9114, + 0xE078, 0x9115, 0xE079, 0x9116, 0xE07A, 0x9117, 0xE07B, 0x9118, 0xE07C, 0x911A, 0xE07D, 0x911B, 0xE07E, 0x911C, 0xE080, 0x911D, + 0xE081, 0x911F, 0xE082, 0x9120, 0xE083, 0x9121, 0xE084, 0x9124, 0xE085, 0x9125, 0xE086, 0x9126, 0xE087, 0x9127, 0xE088, 0x9128, + 0xE089, 0x9129, 0xE08A, 0x912A, 0xE08B, 0x912B, 0xE08C, 0x912C, 0xE08D, 0x912D, 0xE08E, 0x912E, 0xE08F, 0x9130, 0xE090, 0x9132, + 0xE091, 0x9133, 0xE092, 0x9134, 0xE093, 0x9135, 0xE094, 0x9136, 0xE095, 0x9137, 0xE096, 0x9138, 0xE097, 0x913A, 0xE098, 0x913B, + 0xE099, 0x913C, 0xE09A, 0x913D, 0xE09B, 0x913E, 0xE09C, 0x913F, 0xE09D, 0x9140, 0xE09E, 0x9141, 0xE09F, 0x9142, 0xE0A0, 0x9144, + 0xE0A1, 0x5537, 0xE0A2, 0x5556, 0xE0A3, 0x5575, 0xE0A4, 0x5576, 0xE0A5, 0x5577, 0xE0A6, 0x5533, 0xE0A7, 0x5530, 0xE0A8, 0x555C, + 0xE0A9, 0x558B, 0xE0AA, 0x55D2, 0xE0AB, 0x5583, 0xE0AC, 0x55B1, 0xE0AD, 0x55B9, 0xE0AE, 0x5588, 0xE0AF, 0x5581, 0xE0B0, 0x559F, + 0xE0B1, 0x557E, 0xE0B2, 0x55D6, 0xE0B3, 0x5591, 0xE0B4, 0x557B, 0xE0B5, 0x55DF, 0xE0B6, 0x55BD, 0xE0B7, 0x55BE, 0xE0B8, 0x5594, + 0xE0B9, 0x5599, 0xE0BA, 0x55EA, 0xE0BB, 0x55F7, 0xE0BC, 0x55C9, 0xE0BD, 0x561F, 0xE0BE, 0x55D1, 0xE0BF, 0x55EB, 0xE0C0, 0x55EC, + 0xE0C1, 0x55D4, 0xE0C2, 0x55E6, 0xE0C3, 0x55DD, 0xE0C4, 0x55C4, 0xE0C5, 0x55EF, 0xE0C6, 0x55E5, 0xE0C7, 0x55F2, 0xE0C8, 0x55F3, + 0xE0C9, 0x55CC, 0xE0CA, 0x55CD, 0xE0CB, 0x55E8, 0xE0CC, 0x55F5, 0xE0CD, 0x55E4, 0xE0CE, 0x8F94, 0xE0CF, 0x561E, 0xE0D0, 0x5608, + 0xE0D1, 0x560C, 0xE0D2, 0x5601, 0xE0D3, 0x5624, 0xE0D4, 0x5623, 0xE0D5, 0x55FE, 0xE0D6, 0x5600, 0xE0D7, 0x5627, 0xE0D8, 0x562D, + 0xE0D9, 0x5658, 0xE0DA, 0x5639, 0xE0DB, 0x5657, 0xE0DC, 0x562C, 0xE0DD, 0x564D, 0xE0DE, 0x5662, 0xE0DF, 0x5659, 0xE0E0, 0x565C, + 0xE0E1, 0x564C, 0xE0E2, 0x5654, 0xE0E3, 0x5686, 0xE0E4, 0x5664, 0xE0E5, 0x5671, 0xE0E6, 0x566B, 0xE0E7, 0x567B, 0xE0E8, 0x567C, + 0xE0E9, 0x5685, 0xE0EA, 0x5693, 0xE0EB, 0x56AF, 0xE0EC, 0x56D4, 0xE0ED, 0x56D7, 0xE0EE, 0x56DD, 0xE0EF, 0x56E1, 0xE0F0, 0x56F5, + 0xE0F1, 0x56EB, 0xE0F2, 0x56F9, 0xE0F3, 0x56FF, 0xE0F4, 0x5704, 0xE0F5, 0x570A, 0xE0F6, 0x5709, 0xE0F7, 0x571C, 0xE0F8, 0x5E0F, + 0xE0F9, 0x5E19, 0xE0FA, 0x5E14, 0xE0FB, 0x5E11, 0xE0FC, 0x5E31, 0xE0FD, 0x5E3B, 0xE0FE, 0x5E3C, 0xE140, 0x9145, 0xE141, 0x9147, + 0xE142, 0x9148, 0xE143, 0x9151, 0xE144, 0x9153, 0xE145, 0x9154, 0xE146, 0x9155, 0xE147, 0x9156, 0xE148, 0x9158, 0xE149, 0x9159, + 0xE14A, 0x915B, 0xE14B, 0x915C, 0xE14C, 0x915F, 0xE14D, 0x9160, 0xE14E, 0x9166, 0xE14F, 0x9167, 0xE150, 0x9168, 0xE151, 0x916B, + 0xE152, 0x916D, 0xE153, 0x9173, 0xE154, 0x917A, 0xE155, 0x917B, 0xE156, 0x917C, 0xE157, 0x9180, 0xE158, 0x9181, 0xE159, 0x9182, + 0xE15A, 0x9183, 0xE15B, 0x9184, 0xE15C, 0x9186, 0xE15D, 0x9188, 0xE15E, 0x918A, 0xE15F, 0x918E, 0xE160, 0x918F, 0xE161, 0x9193, + 0xE162, 0x9194, 0xE163, 0x9195, 0xE164, 0x9196, 0xE165, 0x9197, 0xE166, 0x9198, 0xE167, 0x9199, 0xE168, 0x919C, 0xE169, 0x919D, + 0xE16A, 0x919E, 0xE16B, 0x919F, 0xE16C, 0x91A0, 0xE16D, 0x91A1, 0xE16E, 0x91A4, 0xE16F, 0x91A5, 0xE170, 0x91A6, 0xE171, 0x91A7, + 0xE172, 0x91A8, 0xE173, 0x91A9, 0xE174, 0x91AB, 0xE175, 0x91AC, 0xE176, 0x91B0, 0xE177, 0x91B1, 0xE178, 0x91B2, 0xE179, 0x91B3, + 0xE17A, 0x91B6, 0xE17B, 0x91B7, 0xE17C, 0x91B8, 0xE17D, 0x91B9, 0xE17E, 0x91BB, 0xE180, 0x91BC, 0xE181, 0x91BD, 0xE182, 0x91BE, + 0xE183, 0x91BF, 0xE184, 0x91C0, 0xE185, 0x91C1, 0xE186, 0x91C2, 0xE187, 0x91C3, 0xE188, 0x91C4, 0xE189, 0x91C5, 0xE18A, 0x91C6, + 0xE18B, 0x91C8, 0xE18C, 0x91CB, 0xE18D, 0x91D0, 0xE18E, 0x91D2, 0xE18F, 0x91D3, 0xE190, 0x91D4, 0xE191, 0x91D5, 0xE192, 0x91D6, + 0xE193, 0x91D7, 0xE194, 0x91D8, 0xE195, 0x91D9, 0xE196, 0x91DA, 0xE197, 0x91DB, 0xE198, 0x91DD, 0xE199, 0x91DE, 0xE19A, 0x91DF, + 0xE19B, 0x91E0, 0xE19C, 0x91E1, 0xE19D, 0x91E2, 0xE19E, 0x91E3, 0xE19F, 0x91E4, 0xE1A0, 0x91E5, 0xE1A1, 0x5E37, 0xE1A2, 0x5E44, + 0xE1A3, 0x5E54, 0xE1A4, 0x5E5B, 0xE1A5, 0x5E5E, 0xE1A6, 0x5E61, 0xE1A7, 0x5C8C, 0xE1A8, 0x5C7A, 0xE1A9, 0x5C8D, 0xE1AA, 0x5C90, + 0xE1AB, 0x5C96, 0xE1AC, 0x5C88, 0xE1AD, 0x5C98, 0xE1AE, 0x5C99, 0xE1AF, 0x5C91, 0xE1B0, 0x5C9A, 0xE1B1, 0x5C9C, 0xE1B2, 0x5CB5, + 0xE1B3, 0x5CA2, 0xE1B4, 0x5CBD, 0xE1B5, 0x5CAC, 0xE1B6, 0x5CAB, 0xE1B7, 0x5CB1, 0xE1B8, 0x5CA3, 0xE1B9, 0x5CC1, 0xE1BA, 0x5CB7, + 0xE1BB, 0x5CC4, 0xE1BC, 0x5CD2, 0xE1BD, 0x5CE4, 0xE1BE, 0x5CCB, 0xE1BF, 0x5CE5, 0xE1C0, 0x5D02, 0xE1C1, 0x5D03, 0xE1C2, 0x5D27, + 0xE1C3, 0x5D26, 0xE1C4, 0x5D2E, 0xE1C5, 0x5D24, 0xE1C6, 0x5D1E, 0xE1C7, 0x5D06, 0xE1C8, 0x5D1B, 0xE1C9, 0x5D58, 0xE1CA, 0x5D3E, + 0xE1CB, 0x5D34, 0xE1CC, 0x5D3D, 0xE1CD, 0x5D6C, 0xE1CE, 0x5D5B, 0xE1CF, 0x5D6F, 0xE1D0, 0x5D5D, 0xE1D1, 0x5D6B, 0xE1D2, 0x5D4B, + 0xE1D3, 0x5D4A, 0xE1D4, 0x5D69, 0xE1D5, 0x5D74, 0xE1D6, 0x5D82, 0xE1D7, 0x5D99, 0xE1D8, 0x5D9D, 0xE1D9, 0x8C73, 0xE1DA, 0x5DB7, + 0xE1DB, 0x5DC5, 0xE1DC, 0x5F73, 0xE1DD, 0x5F77, 0xE1DE, 0x5F82, 0xE1DF, 0x5F87, 0xE1E0, 0x5F89, 0xE1E1, 0x5F8C, 0xE1E2, 0x5F95, + 0xE1E3, 0x5F99, 0xE1E4, 0x5F9C, 0xE1E5, 0x5FA8, 0xE1E6, 0x5FAD, 0xE1E7, 0x5FB5, 0xE1E8, 0x5FBC, 0xE1E9, 0x8862, 0xE1EA, 0x5F61, + 0xE1EB, 0x72AD, 0xE1EC, 0x72B0, 0xE1ED, 0x72B4, 0xE1EE, 0x72B7, 0xE1EF, 0x72B8, 0xE1F0, 0x72C3, 0xE1F1, 0x72C1, 0xE1F2, 0x72CE, + 0xE1F3, 0x72CD, 0xE1F4, 0x72D2, 0xE1F5, 0x72E8, 0xE1F6, 0x72EF, 0xE1F7, 0x72E9, 0xE1F8, 0x72F2, 0xE1F9, 0x72F4, 0xE1FA, 0x72F7, + 0xE1FB, 0x7301, 0xE1FC, 0x72F3, 0xE1FD, 0x7303, 0xE1FE, 0x72FA, 0xE240, 0x91E6, 0xE241, 0x91E7, 0xE242, 0x91E8, 0xE243, 0x91E9, + 0xE244, 0x91EA, 0xE245, 0x91EB, 0xE246, 0x91EC, 0xE247, 0x91ED, 0xE248, 0x91EE, 0xE249, 0x91EF, 0xE24A, 0x91F0, 0xE24B, 0x91F1, + 0xE24C, 0x91F2, 0xE24D, 0x91F3, 0xE24E, 0x91F4, 0xE24F, 0x91F5, 0xE250, 0x91F6, 0xE251, 0x91F7, 0xE252, 0x91F8, 0xE253, 0x91F9, + 0xE254, 0x91FA, 0xE255, 0x91FB, 0xE256, 0x91FC, 0xE257, 0x91FD, 0xE258, 0x91FE, 0xE259, 0x91FF, 0xE25A, 0x9200, 0xE25B, 0x9201, + 0xE25C, 0x9202, 0xE25D, 0x9203, 0xE25E, 0x9204, 0xE25F, 0x9205, 0xE260, 0x9206, 0xE261, 0x9207, 0xE262, 0x9208, 0xE263, 0x9209, + 0xE264, 0x920A, 0xE265, 0x920B, 0xE266, 0x920C, 0xE267, 0x920D, 0xE268, 0x920E, 0xE269, 0x920F, 0xE26A, 0x9210, 0xE26B, 0x9211, + 0xE26C, 0x9212, 0xE26D, 0x9213, 0xE26E, 0x9214, 0xE26F, 0x9215, 0xE270, 0x9216, 0xE271, 0x9217, 0xE272, 0x9218, 0xE273, 0x9219, + 0xE274, 0x921A, 0xE275, 0x921B, 0xE276, 0x921C, 0xE277, 0x921D, 0xE278, 0x921E, 0xE279, 0x921F, 0xE27A, 0x9220, 0xE27B, 0x9221, + 0xE27C, 0x9222, 0xE27D, 0x9223, 0xE27E, 0x9224, 0xE280, 0x9225, 0xE281, 0x9226, 0xE282, 0x9227, 0xE283, 0x9228, 0xE284, 0x9229, + 0xE285, 0x922A, 0xE286, 0x922B, 0xE287, 0x922C, 0xE288, 0x922D, 0xE289, 0x922E, 0xE28A, 0x922F, 0xE28B, 0x9230, 0xE28C, 0x9231, + 0xE28D, 0x9232, 0xE28E, 0x9233, 0xE28F, 0x9234, 0xE290, 0x9235, 0xE291, 0x9236, 0xE292, 0x9237, 0xE293, 0x9238, 0xE294, 0x9239, + 0xE295, 0x923A, 0xE296, 0x923B, 0xE297, 0x923C, 0xE298, 0x923D, 0xE299, 0x923E, 0xE29A, 0x923F, 0xE29B, 0x9240, 0xE29C, 0x9241, + 0xE29D, 0x9242, 0xE29E, 0x9243, 0xE29F, 0x9244, 0xE2A0, 0x9245, 0xE2A1, 0x72FB, 0xE2A2, 0x7317, 0xE2A3, 0x7313, 0xE2A4, 0x7321, + 0xE2A5, 0x730A, 0xE2A6, 0x731E, 0xE2A7, 0x731D, 0xE2A8, 0x7315, 0xE2A9, 0x7322, 0xE2AA, 0x7339, 0xE2AB, 0x7325, 0xE2AC, 0x732C, + 0xE2AD, 0x7338, 0xE2AE, 0x7331, 0xE2AF, 0x7350, 0xE2B0, 0x734D, 0xE2B1, 0x7357, 0xE2B2, 0x7360, 0xE2B3, 0x736C, 0xE2B4, 0x736F, + 0xE2B5, 0x737E, 0xE2B6, 0x821B, 0xE2B7, 0x5925, 0xE2B8, 0x98E7, 0xE2B9, 0x5924, 0xE2BA, 0x5902, 0xE2BB, 0x9963, 0xE2BC, 0x9967, + 0xE2BD, 0x9968, 0xE2BE, 0x9969, 0xE2BF, 0x996A, 0xE2C0, 0x996B, 0xE2C1, 0x996C, 0xE2C2, 0x9974, 0xE2C3, 0x9977, 0xE2C4, 0x997D, + 0xE2C5, 0x9980, 0xE2C6, 0x9984, 0xE2C7, 0x9987, 0xE2C8, 0x998A, 0xE2C9, 0x998D, 0xE2CA, 0x9990, 0xE2CB, 0x9991, 0xE2CC, 0x9993, + 0xE2CD, 0x9994, 0xE2CE, 0x9995, 0xE2CF, 0x5E80, 0xE2D0, 0x5E91, 0xE2D1, 0x5E8B, 0xE2D2, 0x5E96, 0xE2D3, 0x5EA5, 0xE2D4, 0x5EA0, + 0xE2D5, 0x5EB9, 0xE2D6, 0x5EB5, 0xE2D7, 0x5EBE, 0xE2D8, 0x5EB3, 0xE2D9, 0x8D53, 0xE2DA, 0x5ED2, 0xE2DB, 0x5ED1, 0xE2DC, 0x5EDB, + 0xE2DD, 0x5EE8, 0xE2DE, 0x5EEA, 0xE2DF, 0x81BA, 0xE2E0, 0x5FC4, 0xE2E1, 0x5FC9, 0xE2E2, 0x5FD6, 0xE2E3, 0x5FCF, 0xE2E4, 0x6003, + 0xE2E5, 0x5FEE, 0xE2E6, 0x6004, 0xE2E7, 0x5FE1, 0xE2E8, 0x5FE4, 0xE2E9, 0x5FFE, 0xE2EA, 0x6005, 0xE2EB, 0x6006, 0xE2EC, 0x5FEA, + 0xE2ED, 0x5FED, 0xE2EE, 0x5FF8, 0xE2EF, 0x6019, 0xE2F0, 0x6035, 0xE2F1, 0x6026, 0xE2F2, 0x601B, 0xE2F3, 0x600F, 0xE2F4, 0x600D, + 0xE2F5, 0x6029, 0xE2F6, 0x602B, 0xE2F7, 0x600A, 0xE2F8, 0x603F, 0xE2F9, 0x6021, 0xE2FA, 0x6078, 0xE2FB, 0x6079, 0xE2FC, 0x607B, + 0xE2FD, 0x607A, 0xE2FE, 0x6042, 0xE340, 0x9246, 0xE341, 0x9247, 0xE342, 0x9248, 0xE343, 0x9249, 0xE344, 0x924A, 0xE345, 0x924B, + 0xE346, 0x924C, 0xE347, 0x924D, 0xE348, 0x924E, 0xE349, 0x924F, 0xE34A, 0x9250, 0xE34B, 0x9251, 0xE34C, 0x9252, 0xE34D, 0x9253, + 0xE34E, 0x9254, 0xE34F, 0x9255, 0xE350, 0x9256, 0xE351, 0x9257, 0xE352, 0x9258, 0xE353, 0x9259, 0xE354, 0x925A, 0xE355, 0x925B, + 0xE356, 0x925C, 0xE357, 0x925D, 0xE358, 0x925E, 0xE359, 0x925F, 0xE35A, 0x9260, 0xE35B, 0x9261, 0xE35C, 0x9262, 0xE35D, 0x9263, + 0xE35E, 0x9264, 0xE35F, 0x9265, 0xE360, 0x9266, 0xE361, 0x9267, 0xE362, 0x9268, 0xE363, 0x9269, 0xE364, 0x926A, 0xE365, 0x926B, + 0xE366, 0x926C, 0xE367, 0x926D, 0xE368, 0x926E, 0xE369, 0x926F, 0xE36A, 0x9270, 0xE36B, 0x9271, 0xE36C, 0x9272, 0xE36D, 0x9273, + 0xE36E, 0x9275, 0xE36F, 0x9276, 0xE370, 0x9277, 0xE371, 0x9278, 0xE372, 0x9279, 0xE373, 0x927A, 0xE374, 0x927B, 0xE375, 0x927C, + 0xE376, 0x927D, 0xE377, 0x927E, 0xE378, 0x927F, 0xE379, 0x9280, 0xE37A, 0x9281, 0xE37B, 0x9282, 0xE37C, 0x9283, 0xE37D, 0x9284, + 0xE37E, 0x9285, 0xE380, 0x9286, 0xE381, 0x9287, 0xE382, 0x9288, 0xE383, 0x9289, 0xE384, 0x928A, 0xE385, 0x928B, 0xE386, 0x928C, + 0xE387, 0x928D, 0xE388, 0x928F, 0xE389, 0x9290, 0xE38A, 0x9291, 0xE38B, 0x9292, 0xE38C, 0x9293, 0xE38D, 0x9294, 0xE38E, 0x9295, + 0xE38F, 0x9296, 0xE390, 0x9297, 0xE391, 0x9298, 0xE392, 0x9299, 0xE393, 0x929A, 0xE394, 0x929B, 0xE395, 0x929C, 0xE396, 0x929D, + 0xE397, 0x929E, 0xE398, 0x929F, 0xE399, 0x92A0, 0xE39A, 0x92A1, 0xE39B, 0x92A2, 0xE39C, 0x92A3, 0xE39D, 0x92A4, 0xE39E, 0x92A5, + 0xE39F, 0x92A6, 0xE3A0, 0x92A7, 0xE3A1, 0x606A, 0xE3A2, 0x607D, 0xE3A3, 0x6096, 0xE3A4, 0x609A, 0xE3A5, 0x60AD, 0xE3A6, 0x609D, + 0xE3A7, 0x6083, 0xE3A8, 0x6092, 0xE3A9, 0x608C, 0xE3AA, 0x609B, 0xE3AB, 0x60EC, 0xE3AC, 0x60BB, 0xE3AD, 0x60B1, 0xE3AE, 0x60DD, + 0xE3AF, 0x60D8, 0xE3B0, 0x60C6, 0xE3B1, 0x60DA, 0xE3B2, 0x60B4, 0xE3B3, 0x6120, 0xE3B4, 0x6126, 0xE3B5, 0x6115, 0xE3B6, 0x6123, + 0xE3B7, 0x60F4, 0xE3B8, 0x6100, 0xE3B9, 0x610E, 0xE3BA, 0x612B, 0xE3BB, 0x614A, 0xE3BC, 0x6175, 0xE3BD, 0x61AC, 0xE3BE, 0x6194, + 0xE3BF, 0x61A7, 0xE3C0, 0x61B7, 0xE3C1, 0x61D4, 0xE3C2, 0x61F5, 0xE3C3, 0x5FDD, 0xE3C4, 0x96B3, 0xE3C5, 0x95E9, 0xE3C6, 0x95EB, + 0xE3C7, 0x95F1, 0xE3C8, 0x95F3, 0xE3C9, 0x95F5, 0xE3CA, 0x95F6, 0xE3CB, 0x95FC, 0xE3CC, 0x95FE, 0xE3CD, 0x9603, 0xE3CE, 0x9604, + 0xE3CF, 0x9606, 0xE3D0, 0x9608, 0xE3D1, 0x960A, 0xE3D2, 0x960B, 0xE3D3, 0x960C, 0xE3D4, 0x960D, 0xE3D5, 0x960F, 0xE3D6, 0x9612, + 0xE3D7, 0x9615, 0xE3D8, 0x9616, 0xE3D9, 0x9617, 0xE3DA, 0x9619, 0xE3DB, 0x961A, 0xE3DC, 0x4E2C, 0xE3DD, 0x723F, 0xE3DE, 0x6215, + 0xE3DF, 0x6C35, 0xE3E0, 0x6C54, 0xE3E1, 0x6C5C, 0xE3E2, 0x6C4A, 0xE3E3, 0x6CA3, 0xE3E4, 0x6C85, 0xE3E5, 0x6C90, 0xE3E6, 0x6C94, + 0xE3E7, 0x6C8C, 0xE3E8, 0x6C68, 0xE3E9, 0x6C69, 0xE3EA, 0x6C74, 0xE3EB, 0x6C76, 0xE3EC, 0x6C86, 0xE3ED, 0x6CA9, 0xE3EE, 0x6CD0, + 0xE3EF, 0x6CD4, 0xE3F0, 0x6CAD, 0xE3F1, 0x6CF7, 0xE3F2, 0x6CF8, 0xE3F3, 0x6CF1, 0xE3F4, 0x6CD7, 0xE3F5, 0x6CB2, 0xE3F6, 0x6CE0, + 0xE3F7, 0x6CD6, 0xE3F8, 0x6CFA, 0xE3F9, 0x6CEB, 0xE3FA, 0x6CEE, 0xE3FB, 0x6CB1, 0xE3FC, 0x6CD3, 0xE3FD, 0x6CEF, 0xE3FE, 0x6CFE, + 0xE440, 0x92A8, 0xE441, 0x92A9, 0xE442, 0x92AA, 0xE443, 0x92AB, 0xE444, 0x92AC, 0xE445, 0x92AD, 0xE446, 0x92AF, 0xE447, 0x92B0, + 0xE448, 0x92B1, 0xE449, 0x92B2, 0xE44A, 0x92B3, 0xE44B, 0x92B4, 0xE44C, 0x92B5, 0xE44D, 0x92B6, 0xE44E, 0x92B7, 0xE44F, 0x92B8, + 0xE450, 0x92B9, 0xE451, 0x92BA, 0xE452, 0x92BB, 0xE453, 0x92BC, 0xE454, 0x92BD, 0xE455, 0x92BE, 0xE456, 0x92BF, 0xE457, 0x92C0, + 0xE458, 0x92C1, 0xE459, 0x92C2, 0xE45A, 0x92C3, 0xE45B, 0x92C4, 0xE45C, 0x92C5, 0xE45D, 0x92C6, 0xE45E, 0x92C7, 0xE45F, 0x92C9, + 0xE460, 0x92CA, 0xE461, 0x92CB, 0xE462, 0x92CC, 0xE463, 0x92CD, 0xE464, 0x92CE, 0xE465, 0x92CF, 0xE466, 0x92D0, 0xE467, 0x92D1, + 0xE468, 0x92D2, 0xE469, 0x92D3, 0xE46A, 0x92D4, 0xE46B, 0x92D5, 0xE46C, 0x92D6, 0xE46D, 0x92D7, 0xE46E, 0x92D8, 0xE46F, 0x92D9, + 0xE470, 0x92DA, 0xE471, 0x92DB, 0xE472, 0x92DC, 0xE473, 0x92DD, 0xE474, 0x92DE, 0xE475, 0x92DF, 0xE476, 0x92E0, 0xE477, 0x92E1, + 0xE478, 0x92E2, 0xE479, 0x92E3, 0xE47A, 0x92E4, 0xE47B, 0x92E5, 0xE47C, 0x92E6, 0xE47D, 0x92E7, 0xE47E, 0x92E8, 0xE480, 0x92E9, + 0xE481, 0x92EA, 0xE482, 0x92EB, 0xE483, 0x92EC, 0xE484, 0x92ED, 0xE485, 0x92EE, 0xE486, 0x92EF, 0xE487, 0x92F0, 0xE488, 0x92F1, + 0xE489, 0x92F2, 0xE48A, 0x92F3, 0xE48B, 0x92F4, 0xE48C, 0x92F5, 0xE48D, 0x92F6, 0xE48E, 0x92F7, 0xE48F, 0x92F8, 0xE490, 0x92F9, + 0xE491, 0x92FA, 0xE492, 0x92FB, 0xE493, 0x92FC, 0xE494, 0x92FD, 0xE495, 0x92FE, 0xE496, 0x92FF, 0xE497, 0x9300, 0xE498, 0x9301, + 0xE499, 0x9302, 0xE49A, 0x9303, 0xE49B, 0x9304, 0xE49C, 0x9305, 0xE49D, 0x9306, 0xE49E, 0x9307, 0xE49F, 0x9308, 0xE4A0, 0x9309, + 0xE4A1, 0x6D39, 0xE4A2, 0x6D27, 0xE4A3, 0x6D0C, 0xE4A4, 0x6D43, 0xE4A5, 0x6D48, 0xE4A6, 0x6D07, 0xE4A7, 0x6D04, 0xE4A8, 0x6D19, + 0xE4A9, 0x6D0E, 0xE4AA, 0x6D2B, 0xE4AB, 0x6D4D, 0xE4AC, 0x6D2E, 0xE4AD, 0x6D35, 0xE4AE, 0x6D1A, 0xE4AF, 0x6D4F, 0xE4B0, 0x6D52, + 0xE4B1, 0x6D54, 0xE4B2, 0x6D33, 0xE4B3, 0x6D91, 0xE4B4, 0x6D6F, 0xE4B5, 0x6D9E, 0xE4B6, 0x6DA0, 0xE4B7, 0x6D5E, 0xE4B8, 0x6D93, + 0xE4B9, 0x6D94, 0xE4BA, 0x6D5C, 0xE4BB, 0x6D60, 0xE4BC, 0x6D7C, 0xE4BD, 0x6D63, 0xE4BE, 0x6E1A, 0xE4BF, 0x6DC7, 0xE4C0, 0x6DC5, + 0xE4C1, 0x6DDE, 0xE4C2, 0x6E0E, 0xE4C3, 0x6DBF, 0xE4C4, 0x6DE0, 0xE4C5, 0x6E11, 0xE4C6, 0x6DE6, 0xE4C7, 0x6DDD, 0xE4C8, 0x6DD9, + 0xE4C9, 0x6E16, 0xE4CA, 0x6DAB, 0xE4CB, 0x6E0C, 0xE4CC, 0x6DAE, 0xE4CD, 0x6E2B, 0xE4CE, 0x6E6E, 0xE4CF, 0x6E4E, 0xE4D0, 0x6E6B, + 0xE4D1, 0x6EB2, 0xE4D2, 0x6E5F, 0xE4D3, 0x6E86, 0xE4D4, 0x6E53, 0xE4D5, 0x6E54, 0xE4D6, 0x6E32, 0xE4D7, 0x6E25, 0xE4D8, 0x6E44, + 0xE4D9, 0x6EDF, 0xE4DA, 0x6EB1, 0xE4DB, 0x6E98, 0xE4DC, 0x6EE0, 0xE4DD, 0x6F2D, 0xE4DE, 0x6EE2, 0xE4DF, 0x6EA5, 0xE4E0, 0x6EA7, + 0xE4E1, 0x6EBD, 0xE4E2, 0x6EBB, 0xE4E3, 0x6EB7, 0xE4E4, 0x6ED7, 0xE4E5, 0x6EB4, 0xE4E6, 0x6ECF, 0xE4E7, 0x6E8F, 0xE4E8, 0x6EC2, + 0xE4E9, 0x6E9F, 0xE4EA, 0x6F62, 0xE4EB, 0x6F46, 0xE4EC, 0x6F47, 0xE4ED, 0x6F24, 0xE4EE, 0x6F15, 0xE4EF, 0x6EF9, 0xE4F0, 0x6F2F, + 0xE4F1, 0x6F36, 0xE4F2, 0x6F4B, 0xE4F3, 0x6F74, 0xE4F4, 0x6F2A, 0xE4F5, 0x6F09, 0xE4F6, 0x6F29, 0xE4F7, 0x6F89, 0xE4F8, 0x6F8D, + 0xE4F9, 0x6F8C, 0xE4FA, 0x6F78, 0xE4FB, 0x6F72, 0xE4FC, 0x6F7C, 0xE4FD, 0x6F7A, 0xE4FE, 0x6FD1, 0xE540, 0x930A, 0xE541, 0x930B, + 0xE542, 0x930C, 0xE543, 0x930D, 0xE544, 0x930E, 0xE545, 0x930F, 0xE546, 0x9310, 0xE547, 0x9311, 0xE548, 0x9312, 0xE549, 0x9313, + 0xE54A, 0x9314, 0xE54B, 0x9315, 0xE54C, 0x9316, 0xE54D, 0x9317, 0xE54E, 0x9318, 0xE54F, 0x9319, 0xE550, 0x931A, 0xE551, 0x931B, + 0xE552, 0x931C, 0xE553, 0x931D, 0xE554, 0x931E, 0xE555, 0x931F, 0xE556, 0x9320, 0xE557, 0x9321, 0xE558, 0x9322, 0xE559, 0x9323, + 0xE55A, 0x9324, 0xE55B, 0x9325, 0xE55C, 0x9326, 0xE55D, 0x9327, 0xE55E, 0x9328, 0xE55F, 0x9329, 0xE560, 0x932A, 0xE561, 0x932B, + 0xE562, 0x932C, 0xE563, 0x932D, 0xE564, 0x932E, 0xE565, 0x932F, 0xE566, 0x9330, 0xE567, 0x9331, 0xE568, 0x9332, 0xE569, 0x9333, + 0xE56A, 0x9334, 0xE56B, 0x9335, 0xE56C, 0x9336, 0xE56D, 0x9337, 0xE56E, 0x9338, 0xE56F, 0x9339, 0xE570, 0x933A, 0xE571, 0x933B, + 0xE572, 0x933C, 0xE573, 0x933D, 0xE574, 0x933F, 0xE575, 0x9340, 0xE576, 0x9341, 0xE577, 0x9342, 0xE578, 0x9343, 0xE579, 0x9344, + 0xE57A, 0x9345, 0xE57B, 0x9346, 0xE57C, 0x9347, 0xE57D, 0x9348, 0xE57E, 0x9349, 0xE580, 0x934A, 0xE581, 0x934B, 0xE582, 0x934C, + 0xE583, 0x934D, 0xE584, 0x934E, 0xE585, 0x934F, 0xE586, 0x9350, 0xE587, 0x9351, 0xE588, 0x9352, 0xE589, 0x9353, 0xE58A, 0x9354, + 0xE58B, 0x9355, 0xE58C, 0x9356, 0xE58D, 0x9357, 0xE58E, 0x9358, 0xE58F, 0x9359, 0xE590, 0x935A, 0xE591, 0x935B, 0xE592, 0x935C, + 0xE593, 0x935D, 0xE594, 0x935E, 0xE595, 0x935F, 0xE596, 0x9360, 0xE597, 0x9361, 0xE598, 0x9362, 0xE599, 0x9363, 0xE59A, 0x9364, + 0xE59B, 0x9365, 0xE59C, 0x9366, 0xE59D, 0x9367, 0xE59E, 0x9368, 0xE59F, 0x9369, 0xE5A0, 0x936B, 0xE5A1, 0x6FC9, 0xE5A2, 0x6FA7, + 0xE5A3, 0x6FB9, 0xE5A4, 0x6FB6, 0xE5A5, 0x6FC2, 0xE5A6, 0x6FE1, 0xE5A7, 0x6FEE, 0xE5A8, 0x6FDE, 0xE5A9, 0x6FE0, 0xE5AA, 0x6FEF, + 0xE5AB, 0x701A, 0xE5AC, 0x7023, 0xE5AD, 0x701B, 0xE5AE, 0x7039, 0xE5AF, 0x7035, 0xE5B0, 0x704F, 0xE5B1, 0x705E, 0xE5B2, 0x5B80, + 0xE5B3, 0x5B84, 0xE5B4, 0x5B95, 0xE5B5, 0x5B93, 0xE5B6, 0x5BA5, 0xE5B7, 0x5BB8, 0xE5B8, 0x752F, 0xE5B9, 0x9A9E, 0xE5BA, 0x6434, + 0xE5BB, 0x5BE4, 0xE5BC, 0x5BEE, 0xE5BD, 0x8930, 0xE5BE, 0x5BF0, 0xE5BF, 0x8E47, 0xE5C0, 0x8B07, 0xE5C1, 0x8FB6, 0xE5C2, 0x8FD3, + 0xE5C3, 0x8FD5, 0xE5C4, 0x8FE5, 0xE5C5, 0x8FEE, 0xE5C6, 0x8FE4, 0xE5C7, 0x8FE9, 0xE5C8, 0x8FE6, 0xE5C9, 0x8FF3, 0xE5CA, 0x8FE8, + 0xE5CB, 0x9005, 0xE5CC, 0x9004, 0xE5CD, 0x900B, 0xE5CE, 0x9026, 0xE5CF, 0x9011, 0xE5D0, 0x900D, 0xE5D1, 0x9016, 0xE5D2, 0x9021, + 0xE5D3, 0x9035, 0xE5D4, 0x9036, 0xE5D5, 0x902D, 0xE5D6, 0x902F, 0xE5D7, 0x9044, 0xE5D8, 0x9051, 0xE5D9, 0x9052, 0xE5DA, 0x9050, + 0xE5DB, 0x9068, 0xE5DC, 0x9058, 0xE5DD, 0x9062, 0xE5DE, 0x905B, 0xE5DF, 0x66B9, 0xE5E0, 0x9074, 0xE5E1, 0x907D, 0xE5E2, 0x9082, + 0xE5E3, 0x9088, 0xE5E4, 0x9083, 0xE5E5, 0x908B, 0xE5E6, 0x5F50, 0xE5E7, 0x5F57, 0xE5E8, 0x5F56, 0xE5E9, 0x5F58, 0xE5EA, 0x5C3B, + 0xE5EB, 0x54AB, 0xE5EC, 0x5C50, 0xE5ED, 0x5C59, 0xE5EE, 0x5B71, 0xE5EF, 0x5C63, 0xE5F0, 0x5C66, 0xE5F1, 0x7FBC, 0xE5F2, 0x5F2A, + 0xE5F3, 0x5F29, 0xE5F4, 0x5F2D, 0xE5F5, 0x8274, 0xE5F6, 0x5F3C, 0xE5F7, 0x9B3B, 0xE5F8, 0x5C6E, 0xE5F9, 0x5981, 0xE5FA, 0x5983, + 0xE5FB, 0x598D, 0xE5FC, 0x59A9, 0xE5FD, 0x59AA, 0xE5FE, 0x59A3, 0xE640, 0x936C, 0xE641, 0x936D, 0xE642, 0x936E, 0xE643, 0x936F, + 0xE644, 0x9370, 0xE645, 0x9371, 0xE646, 0x9372, 0xE647, 0x9373, 0xE648, 0x9374, 0xE649, 0x9375, 0xE64A, 0x9376, 0xE64B, 0x9377, + 0xE64C, 0x9378, 0xE64D, 0x9379, 0xE64E, 0x937A, 0xE64F, 0x937B, 0xE650, 0x937C, 0xE651, 0x937D, 0xE652, 0x937E, 0xE653, 0x937F, + 0xE654, 0x9380, 0xE655, 0x9381, 0xE656, 0x9382, 0xE657, 0x9383, 0xE658, 0x9384, 0xE659, 0x9385, 0xE65A, 0x9386, 0xE65B, 0x9387, + 0xE65C, 0x9388, 0xE65D, 0x9389, 0xE65E, 0x938A, 0xE65F, 0x938B, 0xE660, 0x938C, 0xE661, 0x938D, 0xE662, 0x938E, 0xE663, 0x9390, + 0xE664, 0x9391, 0xE665, 0x9392, 0xE666, 0x9393, 0xE667, 0x9394, 0xE668, 0x9395, 0xE669, 0x9396, 0xE66A, 0x9397, 0xE66B, 0x9398, + 0xE66C, 0x9399, 0xE66D, 0x939A, 0xE66E, 0x939B, 0xE66F, 0x939C, 0xE670, 0x939D, 0xE671, 0x939E, 0xE672, 0x939F, 0xE673, 0x93A0, + 0xE674, 0x93A1, 0xE675, 0x93A2, 0xE676, 0x93A3, 0xE677, 0x93A4, 0xE678, 0x93A5, 0xE679, 0x93A6, 0xE67A, 0x93A7, 0xE67B, 0x93A8, + 0xE67C, 0x93A9, 0xE67D, 0x93AA, 0xE67E, 0x93AB, 0xE680, 0x93AC, 0xE681, 0x93AD, 0xE682, 0x93AE, 0xE683, 0x93AF, 0xE684, 0x93B0, + 0xE685, 0x93B1, 0xE686, 0x93B2, 0xE687, 0x93B3, 0xE688, 0x93B4, 0xE689, 0x93B5, 0xE68A, 0x93B6, 0xE68B, 0x93B7, 0xE68C, 0x93B8, + 0xE68D, 0x93B9, 0xE68E, 0x93BA, 0xE68F, 0x93BB, 0xE690, 0x93BC, 0xE691, 0x93BD, 0xE692, 0x93BE, 0xE693, 0x93BF, 0xE694, 0x93C0, + 0xE695, 0x93C1, 0xE696, 0x93C2, 0xE697, 0x93C3, 0xE698, 0x93C4, 0xE699, 0x93C5, 0xE69A, 0x93C6, 0xE69B, 0x93C7, 0xE69C, 0x93C8, + 0xE69D, 0x93C9, 0xE69E, 0x93CB, 0xE69F, 0x93CC, 0xE6A0, 0x93CD, 0xE6A1, 0x5997, 0xE6A2, 0x59CA, 0xE6A3, 0x59AB, 0xE6A4, 0x599E, + 0xE6A5, 0x59A4, 0xE6A6, 0x59D2, 0xE6A7, 0x59B2, 0xE6A8, 0x59AF, 0xE6A9, 0x59D7, 0xE6AA, 0x59BE, 0xE6AB, 0x5A05, 0xE6AC, 0x5A06, + 0xE6AD, 0x59DD, 0xE6AE, 0x5A08, 0xE6AF, 0x59E3, 0xE6B0, 0x59D8, 0xE6B1, 0x59F9, 0xE6B2, 0x5A0C, 0xE6B3, 0x5A09, 0xE6B4, 0x5A32, + 0xE6B5, 0x5A34, 0xE6B6, 0x5A11, 0xE6B7, 0x5A23, 0xE6B8, 0x5A13, 0xE6B9, 0x5A40, 0xE6BA, 0x5A67, 0xE6BB, 0x5A4A, 0xE6BC, 0x5A55, + 0xE6BD, 0x5A3C, 0xE6BE, 0x5A62, 0xE6BF, 0x5A75, 0xE6C0, 0x80EC, 0xE6C1, 0x5AAA, 0xE6C2, 0x5A9B, 0xE6C3, 0x5A77, 0xE6C4, 0x5A7A, + 0xE6C5, 0x5ABE, 0xE6C6, 0x5AEB, 0xE6C7, 0x5AB2, 0xE6C8, 0x5AD2, 0xE6C9, 0x5AD4, 0xE6CA, 0x5AB8, 0xE6CB, 0x5AE0, 0xE6CC, 0x5AE3, + 0xE6CD, 0x5AF1, 0xE6CE, 0x5AD6, 0xE6CF, 0x5AE6, 0xE6D0, 0x5AD8, 0xE6D1, 0x5ADC, 0xE6D2, 0x5B09, 0xE6D3, 0x5B17, 0xE6D4, 0x5B16, + 0xE6D5, 0x5B32, 0xE6D6, 0x5B37, 0xE6D7, 0x5B40, 0xE6D8, 0x5C15, 0xE6D9, 0x5C1C, 0xE6DA, 0x5B5A, 0xE6DB, 0x5B65, 0xE6DC, 0x5B73, + 0xE6DD, 0x5B51, 0xE6DE, 0x5B53, 0xE6DF, 0x5B62, 0xE6E0, 0x9A75, 0xE6E1, 0x9A77, 0xE6E2, 0x9A78, 0xE6E3, 0x9A7A, 0xE6E4, 0x9A7F, + 0xE6E5, 0x9A7D, 0xE6E6, 0x9A80, 0xE6E7, 0x9A81, 0xE6E8, 0x9A85, 0xE6E9, 0x9A88, 0xE6EA, 0x9A8A, 0xE6EB, 0x9A90, 0xE6EC, 0x9A92, + 0xE6ED, 0x9A93, 0xE6EE, 0x9A96, 0xE6EF, 0x9A98, 0xE6F0, 0x9A9B, 0xE6F1, 0x9A9C, 0xE6F2, 0x9A9D, 0xE6F3, 0x9A9F, 0xE6F4, 0x9AA0, + 0xE6F5, 0x9AA2, 0xE6F6, 0x9AA3, 0xE6F7, 0x9AA5, 0xE6F8, 0x9AA7, 0xE6F9, 0x7E9F, 0xE6FA, 0x7EA1, 0xE6FB, 0x7EA3, 0xE6FC, 0x7EA5, + 0xE6FD, 0x7EA8, 0xE6FE, 0x7EA9, 0xE740, 0x93CE, 0xE741, 0x93CF, 0xE742, 0x93D0, 0xE743, 0x93D1, 0xE744, 0x93D2, 0xE745, 0x93D3, + 0xE746, 0x93D4, 0xE747, 0x93D5, 0xE748, 0x93D7, 0xE749, 0x93D8, 0xE74A, 0x93D9, 0xE74B, 0x93DA, 0xE74C, 0x93DB, 0xE74D, 0x93DC, + 0xE74E, 0x93DD, 0xE74F, 0x93DE, 0xE750, 0x93DF, 0xE751, 0x93E0, 0xE752, 0x93E1, 0xE753, 0x93E2, 0xE754, 0x93E3, 0xE755, 0x93E4, + 0xE756, 0x93E5, 0xE757, 0x93E6, 0xE758, 0x93E7, 0xE759, 0x93E8, 0xE75A, 0x93E9, 0xE75B, 0x93EA, 0xE75C, 0x93EB, 0xE75D, 0x93EC, + 0xE75E, 0x93ED, 0xE75F, 0x93EE, 0xE760, 0x93EF, 0xE761, 0x93F0, 0xE762, 0x93F1, 0xE763, 0x93F2, 0xE764, 0x93F3, 0xE765, 0x93F4, + 0xE766, 0x93F5, 0xE767, 0x93F6, 0xE768, 0x93F7, 0xE769, 0x93F8, 0xE76A, 0x93F9, 0xE76B, 0x93FA, 0xE76C, 0x93FB, 0xE76D, 0x93FC, + 0xE76E, 0x93FD, 0xE76F, 0x93FE, 0xE770, 0x93FF, 0xE771, 0x9400, 0xE772, 0x9401, 0xE773, 0x9402, 0xE774, 0x9403, 0xE775, 0x9404, + 0xE776, 0x9405, 0xE777, 0x9406, 0xE778, 0x9407, 0xE779, 0x9408, 0xE77A, 0x9409, 0xE77B, 0x940A, 0xE77C, 0x940B, 0xE77D, 0x940C, + 0xE77E, 0x940D, 0xE780, 0x940E, 0xE781, 0x940F, 0xE782, 0x9410, 0xE783, 0x9411, 0xE784, 0x9412, 0xE785, 0x9413, 0xE786, 0x9414, + 0xE787, 0x9415, 0xE788, 0x9416, 0xE789, 0x9417, 0xE78A, 0x9418, 0xE78B, 0x9419, 0xE78C, 0x941A, 0xE78D, 0x941B, 0xE78E, 0x941C, + 0xE78F, 0x941D, 0xE790, 0x941E, 0xE791, 0x941F, 0xE792, 0x9420, 0xE793, 0x9421, 0xE794, 0x9422, 0xE795, 0x9423, 0xE796, 0x9424, + 0xE797, 0x9425, 0xE798, 0x9426, 0xE799, 0x9427, 0xE79A, 0x9428, 0xE79B, 0x9429, 0xE79C, 0x942A, 0xE79D, 0x942B, 0xE79E, 0x942C, + 0xE79F, 0x942D, 0xE7A0, 0x942E, 0xE7A1, 0x7EAD, 0xE7A2, 0x7EB0, 0xE7A3, 0x7EBE, 0xE7A4, 0x7EC0, 0xE7A5, 0x7EC1, 0xE7A6, 0x7EC2, + 0xE7A7, 0x7EC9, 0xE7A8, 0x7ECB, 0xE7A9, 0x7ECC, 0xE7AA, 0x7ED0, 0xE7AB, 0x7ED4, 0xE7AC, 0x7ED7, 0xE7AD, 0x7EDB, 0xE7AE, 0x7EE0, + 0xE7AF, 0x7EE1, 0xE7B0, 0x7EE8, 0xE7B1, 0x7EEB, 0xE7B2, 0x7EEE, 0xE7B3, 0x7EEF, 0xE7B4, 0x7EF1, 0xE7B5, 0x7EF2, 0xE7B6, 0x7F0D, + 0xE7B7, 0x7EF6, 0xE7B8, 0x7EFA, 0xE7B9, 0x7EFB, 0xE7BA, 0x7EFE, 0xE7BB, 0x7F01, 0xE7BC, 0x7F02, 0xE7BD, 0x7F03, 0xE7BE, 0x7F07, + 0xE7BF, 0x7F08, 0xE7C0, 0x7F0B, 0xE7C1, 0x7F0C, 0xE7C2, 0x7F0F, 0xE7C3, 0x7F11, 0xE7C4, 0x7F12, 0xE7C5, 0x7F17, 0xE7C6, 0x7F19, + 0xE7C7, 0x7F1C, 0xE7C8, 0x7F1B, 0xE7C9, 0x7F1F, 0xE7CA, 0x7F21, 0xE7CB, 0x7F22, 0xE7CC, 0x7F23, 0xE7CD, 0x7F24, 0xE7CE, 0x7F25, + 0xE7CF, 0x7F26, 0xE7D0, 0x7F27, 0xE7D1, 0x7F2A, 0xE7D2, 0x7F2B, 0xE7D3, 0x7F2C, 0xE7D4, 0x7F2D, 0xE7D5, 0x7F2F, 0xE7D6, 0x7F30, + 0xE7D7, 0x7F31, 0xE7D8, 0x7F32, 0xE7D9, 0x7F33, 0xE7DA, 0x7F35, 0xE7DB, 0x5E7A, 0xE7DC, 0x757F, 0xE7DD, 0x5DDB, 0xE7DE, 0x753E, + 0xE7DF, 0x9095, 0xE7E0, 0x738E, 0xE7E1, 0x7391, 0xE7E2, 0x73AE, 0xE7E3, 0x73A2, 0xE7E4, 0x739F, 0xE7E5, 0x73CF, 0xE7E6, 0x73C2, + 0xE7E7, 0x73D1, 0xE7E8, 0x73B7, 0xE7E9, 0x73B3, 0xE7EA, 0x73C0, 0xE7EB, 0x73C9, 0xE7EC, 0x73C8, 0xE7ED, 0x73E5, 0xE7EE, 0x73D9, + 0xE7EF, 0x987C, 0xE7F0, 0x740A, 0xE7F1, 0x73E9, 0xE7F2, 0x73E7, 0xE7F3, 0x73DE, 0xE7F4, 0x73BA, 0xE7F5, 0x73F2, 0xE7F6, 0x740F, + 0xE7F7, 0x742A, 0xE7F8, 0x745B, 0xE7F9, 0x7426, 0xE7FA, 0x7425, 0xE7FB, 0x7428, 0xE7FC, 0x7430, 0xE7FD, 0x742E, 0xE7FE, 0x742C, + 0xE840, 0x942F, 0xE841, 0x9430, 0xE842, 0x9431, 0xE843, 0x9432, 0xE844, 0x9433, 0xE845, 0x9434, 0xE846, 0x9435, 0xE847, 0x9436, + 0xE848, 0x9437, 0xE849, 0x9438, 0xE84A, 0x9439, 0xE84B, 0x943A, 0xE84C, 0x943B, 0xE84D, 0x943C, 0xE84E, 0x943D, 0xE84F, 0x943F, + 0xE850, 0x9440, 0xE851, 0x9441, 0xE852, 0x9442, 0xE853, 0x9443, 0xE854, 0x9444, 0xE855, 0x9445, 0xE856, 0x9446, 0xE857, 0x9447, + 0xE858, 0x9448, 0xE859, 0x9449, 0xE85A, 0x944A, 0xE85B, 0x944B, 0xE85C, 0x944C, 0xE85D, 0x944D, 0xE85E, 0x944E, 0xE85F, 0x944F, + 0xE860, 0x9450, 0xE861, 0x9451, 0xE862, 0x9452, 0xE863, 0x9453, 0xE864, 0x9454, 0xE865, 0x9455, 0xE866, 0x9456, 0xE867, 0x9457, + 0xE868, 0x9458, 0xE869, 0x9459, 0xE86A, 0x945A, 0xE86B, 0x945B, 0xE86C, 0x945C, 0xE86D, 0x945D, 0xE86E, 0x945E, 0xE86F, 0x945F, + 0xE870, 0x9460, 0xE871, 0x9461, 0xE872, 0x9462, 0xE873, 0x9463, 0xE874, 0x9464, 0xE875, 0x9465, 0xE876, 0x9466, 0xE877, 0x9467, + 0xE878, 0x9468, 0xE879, 0x9469, 0xE87A, 0x946A, 0xE87B, 0x946C, 0xE87C, 0x946D, 0xE87D, 0x946E, 0xE87E, 0x946F, 0xE880, 0x9470, + 0xE881, 0x9471, 0xE882, 0x9472, 0xE883, 0x9473, 0xE884, 0x9474, 0xE885, 0x9475, 0xE886, 0x9476, 0xE887, 0x9477, 0xE888, 0x9478, + 0xE889, 0x9479, 0xE88A, 0x947A, 0xE88B, 0x947B, 0xE88C, 0x947C, 0xE88D, 0x947D, 0xE88E, 0x947E, 0xE88F, 0x947F, 0xE890, 0x9480, + 0xE891, 0x9481, 0xE892, 0x9482, 0xE893, 0x9483, 0xE894, 0x9484, 0xE895, 0x9491, 0xE896, 0x9496, 0xE897, 0x9498, 0xE898, 0x94C7, + 0xE899, 0x94CF, 0xE89A, 0x94D3, 0xE89B, 0x94D4, 0xE89C, 0x94DA, 0xE89D, 0x94E6, 0xE89E, 0x94FB, 0xE89F, 0x951C, 0xE8A0, 0x9520, + 0xE8A1, 0x741B, 0xE8A2, 0x741A, 0xE8A3, 0x7441, 0xE8A4, 0x745C, 0xE8A5, 0x7457, 0xE8A6, 0x7455, 0xE8A7, 0x7459, 0xE8A8, 0x7477, + 0xE8A9, 0x746D, 0xE8AA, 0x747E, 0xE8AB, 0x749C, 0xE8AC, 0x748E, 0xE8AD, 0x7480, 0xE8AE, 0x7481, 0xE8AF, 0x7487, 0xE8B0, 0x748B, + 0xE8B1, 0x749E, 0xE8B2, 0x74A8, 0xE8B3, 0x74A9, 0xE8B4, 0x7490, 0xE8B5, 0x74A7, 0xE8B6, 0x74D2, 0xE8B7, 0x74BA, 0xE8B8, 0x97EA, + 0xE8B9, 0x97EB, 0xE8BA, 0x97EC, 0xE8BB, 0x674C, 0xE8BC, 0x6753, 0xE8BD, 0x675E, 0xE8BE, 0x6748, 0xE8BF, 0x6769, 0xE8C0, 0x67A5, + 0xE8C1, 0x6787, 0xE8C2, 0x676A, 0xE8C3, 0x6773, 0xE8C4, 0x6798, 0xE8C5, 0x67A7, 0xE8C6, 0x6775, 0xE8C7, 0x67A8, 0xE8C8, 0x679E, + 0xE8C9, 0x67AD, 0xE8CA, 0x678B, 0xE8CB, 0x6777, 0xE8CC, 0x677C, 0xE8CD, 0x67F0, 0xE8CE, 0x6809, 0xE8CF, 0x67D8, 0xE8D0, 0x680A, + 0xE8D1, 0x67E9, 0xE8D2, 0x67B0, 0xE8D3, 0x680C, 0xE8D4, 0x67D9, 0xE8D5, 0x67B5, 0xE8D6, 0x67DA, 0xE8D7, 0x67B3, 0xE8D8, 0x67DD, + 0xE8D9, 0x6800, 0xE8DA, 0x67C3, 0xE8DB, 0x67B8, 0xE8DC, 0x67E2, 0xE8DD, 0x680E, 0xE8DE, 0x67C1, 0xE8DF, 0x67FD, 0xE8E0, 0x6832, + 0xE8E1, 0x6833, 0xE8E2, 0x6860, 0xE8E3, 0x6861, 0xE8E4, 0x684E, 0xE8E5, 0x6862, 0xE8E6, 0x6844, 0xE8E7, 0x6864, 0xE8E8, 0x6883, + 0xE8E9, 0x681D, 0xE8EA, 0x6855, 0xE8EB, 0x6866, 0xE8EC, 0x6841, 0xE8ED, 0x6867, 0xE8EE, 0x6840, 0xE8EF, 0x683E, 0xE8F0, 0x684A, + 0xE8F1, 0x6849, 0xE8F2, 0x6829, 0xE8F3, 0x68B5, 0xE8F4, 0x688F, 0xE8F5, 0x6874, 0xE8F6, 0x6877, 0xE8F7, 0x6893, 0xE8F8, 0x686B, + 0xE8F9, 0x68C2, 0xE8FA, 0x696E, 0xE8FB, 0x68FC, 0xE8FC, 0x691F, 0xE8FD, 0x6920, 0xE8FE, 0x68F9, 0xE940, 0x9527, 0xE941, 0x9533, + 0xE942, 0x953D, 0xE943, 0x9543, 0xE944, 0x9548, 0xE945, 0x954B, 0xE946, 0x9555, 0xE947, 0x955A, 0xE948, 0x9560, 0xE949, 0x956E, + 0xE94A, 0x9574, 0xE94B, 0x9575, 0xE94C, 0x9577, 0xE94D, 0x9578, 0xE94E, 0x9579, 0xE94F, 0x957A, 0xE950, 0x957B, 0xE951, 0x957C, + 0xE952, 0x957D, 0xE953, 0x957E, 0xE954, 0x9580, 0xE955, 0x9581, 0xE956, 0x9582, 0xE957, 0x9583, 0xE958, 0x9584, 0xE959, 0x9585, + 0xE95A, 0x9586, 0xE95B, 0x9587, 0xE95C, 0x9588, 0xE95D, 0x9589, 0xE95E, 0x958A, 0xE95F, 0x958B, 0xE960, 0x958C, 0xE961, 0x958D, + 0xE962, 0x958E, 0xE963, 0x958F, 0xE964, 0x9590, 0xE965, 0x9591, 0xE966, 0x9592, 0xE967, 0x9593, 0xE968, 0x9594, 0xE969, 0x9595, + 0xE96A, 0x9596, 0xE96B, 0x9597, 0xE96C, 0x9598, 0xE96D, 0x9599, 0xE96E, 0x959A, 0xE96F, 0x959B, 0xE970, 0x959C, 0xE971, 0x959D, + 0xE972, 0x959E, 0xE973, 0x959F, 0xE974, 0x95A0, 0xE975, 0x95A1, 0xE976, 0x95A2, 0xE977, 0x95A3, 0xE978, 0x95A4, 0xE979, 0x95A5, + 0xE97A, 0x95A6, 0xE97B, 0x95A7, 0xE97C, 0x95A8, 0xE97D, 0x95A9, 0xE97E, 0x95AA, 0xE980, 0x95AB, 0xE981, 0x95AC, 0xE982, 0x95AD, + 0xE983, 0x95AE, 0xE984, 0x95AF, 0xE985, 0x95B0, 0xE986, 0x95B1, 0xE987, 0x95B2, 0xE988, 0x95B3, 0xE989, 0x95B4, 0xE98A, 0x95B5, + 0xE98B, 0x95B6, 0xE98C, 0x95B7, 0xE98D, 0x95B8, 0xE98E, 0x95B9, 0xE98F, 0x95BA, 0xE990, 0x95BB, 0xE991, 0x95BC, 0xE992, 0x95BD, + 0xE993, 0x95BE, 0xE994, 0x95BF, 0xE995, 0x95C0, 0xE996, 0x95C1, 0xE997, 0x95C2, 0xE998, 0x95C3, 0xE999, 0x95C4, 0xE99A, 0x95C5, + 0xE99B, 0x95C6, 0xE99C, 0x95C7, 0xE99D, 0x95C8, 0xE99E, 0x95C9, 0xE99F, 0x95CA, 0xE9A0, 0x95CB, 0xE9A1, 0x6924, 0xE9A2, 0x68F0, + 0xE9A3, 0x690B, 0xE9A4, 0x6901, 0xE9A5, 0x6957, 0xE9A6, 0x68E3, 0xE9A7, 0x6910, 0xE9A8, 0x6971, 0xE9A9, 0x6939, 0xE9AA, 0x6960, + 0xE9AB, 0x6942, 0xE9AC, 0x695D, 0xE9AD, 0x6984, 0xE9AE, 0x696B, 0xE9AF, 0x6980, 0xE9B0, 0x6998, 0xE9B1, 0x6978, 0xE9B2, 0x6934, + 0xE9B3, 0x69CC, 0xE9B4, 0x6987, 0xE9B5, 0x6988, 0xE9B6, 0x69CE, 0xE9B7, 0x6989, 0xE9B8, 0x6966, 0xE9B9, 0x6963, 0xE9BA, 0x6979, + 0xE9BB, 0x699B, 0xE9BC, 0x69A7, 0xE9BD, 0x69BB, 0xE9BE, 0x69AB, 0xE9BF, 0x69AD, 0xE9C0, 0x69D4, 0xE9C1, 0x69B1, 0xE9C2, 0x69C1, + 0xE9C3, 0x69CA, 0xE9C4, 0x69DF, 0xE9C5, 0x6995, 0xE9C6, 0x69E0, 0xE9C7, 0x698D, 0xE9C8, 0x69FF, 0xE9C9, 0x6A2F, 0xE9CA, 0x69ED, + 0xE9CB, 0x6A17, 0xE9CC, 0x6A18, 0xE9CD, 0x6A65, 0xE9CE, 0x69F2, 0xE9CF, 0x6A44, 0xE9D0, 0x6A3E, 0xE9D1, 0x6AA0, 0xE9D2, 0x6A50, + 0xE9D3, 0x6A5B, 0xE9D4, 0x6A35, 0xE9D5, 0x6A8E, 0xE9D6, 0x6A79, 0xE9D7, 0x6A3D, 0xE9D8, 0x6A28, 0xE9D9, 0x6A58, 0xE9DA, 0x6A7C, + 0xE9DB, 0x6A91, 0xE9DC, 0x6A90, 0xE9DD, 0x6AA9, 0xE9DE, 0x6A97, 0xE9DF, 0x6AAB, 0xE9E0, 0x7337, 0xE9E1, 0x7352, 0xE9E2, 0x6B81, + 0xE9E3, 0x6B82, 0xE9E4, 0x6B87, 0xE9E5, 0x6B84, 0xE9E6, 0x6B92, 0xE9E7, 0x6B93, 0xE9E8, 0x6B8D, 0xE9E9, 0x6B9A, 0xE9EA, 0x6B9B, + 0xE9EB, 0x6BA1, 0xE9EC, 0x6BAA, 0xE9ED, 0x8F6B, 0xE9EE, 0x8F6D, 0xE9EF, 0x8F71, 0xE9F0, 0x8F72, 0xE9F1, 0x8F73, 0xE9F2, 0x8F75, + 0xE9F3, 0x8F76, 0xE9F4, 0x8F78, 0xE9F5, 0x8F77, 0xE9F6, 0x8F79, 0xE9F7, 0x8F7A, 0xE9F8, 0x8F7C, 0xE9F9, 0x8F7E, 0xE9FA, 0x8F81, + 0xE9FB, 0x8F82, 0xE9FC, 0x8F84, 0xE9FD, 0x8F87, 0xE9FE, 0x8F8B, 0xEA40, 0x95CC, 0xEA41, 0x95CD, 0xEA42, 0x95CE, 0xEA43, 0x95CF, + 0xEA44, 0x95D0, 0xEA45, 0x95D1, 0xEA46, 0x95D2, 0xEA47, 0x95D3, 0xEA48, 0x95D4, 0xEA49, 0x95D5, 0xEA4A, 0x95D6, 0xEA4B, 0x95D7, + 0xEA4C, 0x95D8, 0xEA4D, 0x95D9, 0xEA4E, 0x95DA, 0xEA4F, 0x95DB, 0xEA50, 0x95DC, 0xEA51, 0x95DD, 0xEA52, 0x95DE, 0xEA53, 0x95DF, + 0xEA54, 0x95E0, 0xEA55, 0x95E1, 0xEA56, 0x95E2, 0xEA57, 0x95E3, 0xEA58, 0x95E4, 0xEA59, 0x95E5, 0xEA5A, 0x95E6, 0xEA5B, 0x95E7, + 0xEA5C, 0x95EC, 0xEA5D, 0x95FF, 0xEA5E, 0x9607, 0xEA5F, 0x9613, 0xEA60, 0x9618, 0xEA61, 0x961B, 0xEA62, 0x961E, 0xEA63, 0x9620, + 0xEA64, 0x9623, 0xEA65, 0x9624, 0xEA66, 0x9625, 0xEA67, 0x9626, 0xEA68, 0x9627, 0xEA69, 0x9628, 0xEA6A, 0x9629, 0xEA6B, 0x962B, + 0xEA6C, 0x962C, 0xEA6D, 0x962D, 0xEA6E, 0x962F, 0xEA6F, 0x9630, 0xEA70, 0x9637, 0xEA71, 0x9638, 0xEA72, 0x9639, 0xEA73, 0x963A, + 0xEA74, 0x963E, 0xEA75, 0x9641, 0xEA76, 0x9643, 0xEA77, 0x964A, 0xEA78, 0x964E, 0xEA79, 0x964F, 0xEA7A, 0x9651, 0xEA7B, 0x9652, + 0xEA7C, 0x9653, 0xEA7D, 0x9656, 0xEA7E, 0x9657, 0xEA80, 0x9658, 0xEA81, 0x9659, 0xEA82, 0x965A, 0xEA83, 0x965C, 0xEA84, 0x965D, + 0xEA85, 0x965E, 0xEA86, 0x9660, 0xEA87, 0x9663, 0xEA88, 0x9665, 0xEA89, 0x9666, 0xEA8A, 0x966B, 0xEA8B, 0x966D, 0xEA8C, 0x966E, + 0xEA8D, 0x966F, 0xEA8E, 0x9670, 0xEA8F, 0x9671, 0xEA90, 0x9673, 0xEA91, 0x9678, 0xEA92, 0x9679, 0xEA93, 0x967A, 0xEA94, 0x967B, + 0xEA95, 0x967C, 0xEA96, 0x967D, 0xEA97, 0x967E, 0xEA98, 0x967F, 0xEA99, 0x9680, 0xEA9A, 0x9681, 0xEA9B, 0x9682, 0xEA9C, 0x9683, + 0xEA9D, 0x9684, 0xEA9E, 0x9687, 0xEA9F, 0x9689, 0xEAA0, 0x968A, 0xEAA1, 0x8F8D, 0xEAA2, 0x8F8E, 0xEAA3, 0x8F8F, 0xEAA4, 0x8F98, + 0xEAA5, 0x8F9A, 0xEAA6, 0x8ECE, 0xEAA7, 0x620B, 0xEAA8, 0x6217, 0xEAA9, 0x621B, 0xEAAA, 0x621F, 0xEAAB, 0x6222, 0xEAAC, 0x6221, + 0xEAAD, 0x6225, 0xEAAE, 0x6224, 0xEAAF, 0x622C, 0xEAB0, 0x81E7, 0xEAB1, 0x74EF, 0xEAB2, 0x74F4, 0xEAB3, 0x74FF, 0xEAB4, 0x750F, + 0xEAB5, 0x7511, 0xEAB6, 0x7513, 0xEAB7, 0x6534, 0xEAB8, 0x65EE, 0xEAB9, 0x65EF, 0xEABA, 0x65F0, 0xEABB, 0x660A, 0xEABC, 0x6619, + 0xEABD, 0x6772, 0xEABE, 0x6603, 0xEABF, 0x6615, 0xEAC0, 0x6600, 0xEAC1, 0x7085, 0xEAC2, 0x66F7, 0xEAC3, 0x661D, 0xEAC4, 0x6634, + 0xEAC5, 0x6631, 0xEAC6, 0x6636, 0xEAC7, 0x6635, 0xEAC8, 0x8006, 0xEAC9, 0x665F, 0xEACA, 0x6654, 0xEACB, 0x6641, 0xEACC, 0x664F, + 0xEACD, 0x6656, 0xEACE, 0x6661, 0xEACF, 0x6657, 0xEAD0, 0x6677, 0xEAD1, 0x6684, 0xEAD2, 0x668C, 0xEAD3, 0x66A7, 0xEAD4, 0x669D, + 0xEAD5, 0x66BE, 0xEAD6, 0x66DB, 0xEAD7, 0x66DC, 0xEAD8, 0x66E6, 0xEAD9, 0x66E9, 0xEADA, 0x8D32, 0xEADB, 0x8D33, 0xEADC, 0x8D36, + 0xEADD, 0x8D3B, 0xEADE, 0x8D3D, 0xEADF, 0x8D40, 0xEAE0, 0x8D45, 0xEAE1, 0x8D46, 0xEAE2, 0x8D48, 0xEAE3, 0x8D49, 0xEAE4, 0x8D47, + 0xEAE5, 0x8D4D, 0xEAE6, 0x8D55, 0xEAE7, 0x8D59, 0xEAE8, 0x89C7, 0xEAE9, 0x89CA, 0xEAEA, 0x89CB, 0xEAEB, 0x89CC, 0xEAEC, 0x89CE, + 0xEAED, 0x89CF, 0xEAEE, 0x89D0, 0xEAEF, 0x89D1, 0xEAF0, 0x726E, 0xEAF1, 0x729F, 0xEAF2, 0x725D, 0xEAF3, 0x7266, 0xEAF4, 0x726F, + 0xEAF5, 0x727E, 0xEAF6, 0x727F, 0xEAF7, 0x7284, 0xEAF8, 0x728B, 0xEAF9, 0x728D, 0xEAFA, 0x728F, 0xEAFB, 0x7292, 0xEAFC, 0x6308, + 0xEAFD, 0x6332, 0xEAFE, 0x63B0, 0xEB40, 0x968C, 0xEB41, 0x968E, 0xEB42, 0x9691, 0xEB43, 0x9692, 0xEB44, 0x9693, 0xEB45, 0x9695, + 0xEB46, 0x9696, 0xEB47, 0x969A, 0xEB48, 0x969B, 0xEB49, 0x969D, 0xEB4A, 0x969E, 0xEB4B, 0x969F, 0xEB4C, 0x96A0, 0xEB4D, 0x96A1, + 0xEB4E, 0x96A2, 0xEB4F, 0x96A3, 0xEB50, 0x96A4, 0xEB51, 0x96A5, 0xEB52, 0x96A6, 0xEB53, 0x96A8, 0xEB54, 0x96A9, 0xEB55, 0x96AA, + 0xEB56, 0x96AB, 0xEB57, 0x96AC, 0xEB58, 0x96AD, 0xEB59, 0x96AE, 0xEB5A, 0x96AF, 0xEB5B, 0x96B1, 0xEB5C, 0x96B2, 0xEB5D, 0x96B4, + 0xEB5E, 0x96B5, 0xEB5F, 0x96B7, 0xEB60, 0x96B8, 0xEB61, 0x96BA, 0xEB62, 0x96BB, 0xEB63, 0x96BF, 0xEB64, 0x96C2, 0xEB65, 0x96C3, + 0xEB66, 0x96C8, 0xEB67, 0x96CA, 0xEB68, 0x96CB, 0xEB69, 0x96D0, 0xEB6A, 0x96D1, 0xEB6B, 0x96D3, 0xEB6C, 0x96D4, 0xEB6D, 0x96D6, + 0xEB6E, 0x96D7, 0xEB6F, 0x96D8, 0xEB70, 0x96D9, 0xEB71, 0x96DA, 0xEB72, 0x96DB, 0xEB73, 0x96DC, 0xEB74, 0x96DD, 0xEB75, 0x96DE, + 0xEB76, 0x96DF, 0xEB77, 0x96E1, 0xEB78, 0x96E2, 0xEB79, 0x96E3, 0xEB7A, 0x96E4, 0xEB7B, 0x96E5, 0xEB7C, 0x96E6, 0xEB7D, 0x96E7, + 0xEB7E, 0x96EB, 0xEB80, 0x96EC, 0xEB81, 0x96ED, 0xEB82, 0x96EE, 0xEB83, 0x96F0, 0xEB84, 0x96F1, 0xEB85, 0x96F2, 0xEB86, 0x96F4, + 0xEB87, 0x96F5, 0xEB88, 0x96F8, 0xEB89, 0x96FA, 0xEB8A, 0x96FB, 0xEB8B, 0x96FC, 0xEB8C, 0x96FD, 0xEB8D, 0x96FF, 0xEB8E, 0x9702, + 0xEB8F, 0x9703, 0xEB90, 0x9705, 0xEB91, 0x970A, 0xEB92, 0x970B, 0xEB93, 0x970C, 0xEB94, 0x9710, 0xEB95, 0x9711, 0xEB96, 0x9712, + 0xEB97, 0x9714, 0xEB98, 0x9715, 0xEB99, 0x9717, 0xEB9A, 0x9718, 0xEB9B, 0x9719, 0xEB9C, 0x971A, 0xEB9D, 0x971B, 0xEB9E, 0x971D, + 0xEB9F, 0x971F, 0xEBA0, 0x9720, 0xEBA1, 0x643F, 0xEBA2, 0x64D8, 0xEBA3, 0x8004, 0xEBA4, 0x6BEA, 0xEBA5, 0x6BF3, 0xEBA6, 0x6BFD, + 0xEBA7, 0x6BF5, 0xEBA8, 0x6BF9, 0xEBA9, 0x6C05, 0xEBAA, 0x6C07, 0xEBAB, 0x6C06, 0xEBAC, 0x6C0D, 0xEBAD, 0x6C15, 0xEBAE, 0x6C18, + 0xEBAF, 0x6C19, 0xEBB0, 0x6C1A, 0xEBB1, 0x6C21, 0xEBB2, 0x6C29, 0xEBB3, 0x6C24, 0xEBB4, 0x6C2A, 0xEBB5, 0x6C32, 0xEBB6, 0x6535, + 0xEBB7, 0x6555, 0xEBB8, 0x656B, 0xEBB9, 0x724D, 0xEBBA, 0x7252, 0xEBBB, 0x7256, 0xEBBC, 0x7230, 0xEBBD, 0x8662, 0xEBBE, 0x5216, + 0xEBBF, 0x809F, 0xEBC0, 0x809C, 0xEBC1, 0x8093, 0xEBC2, 0x80BC, 0xEBC3, 0x670A, 0xEBC4, 0x80BD, 0xEBC5, 0x80B1, 0xEBC6, 0x80AB, + 0xEBC7, 0x80AD, 0xEBC8, 0x80B4, 0xEBC9, 0x80B7, 0xEBCA, 0x80E7, 0xEBCB, 0x80E8, 0xEBCC, 0x80E9, 0xEBCD, 0x80EA, 0xEBCE, 0x80DB, + 0xEBCF, 0x80C2, 0xEBD0, 0x80C4, 0xEBD1, 0x80D9, 0xEBD2, 0x80CD, 0xEBD3, 0x80D7, 0xEBD4, 0x6710, 0xEBD5, 0x80DD, 0xEBD6, 0x80EB, + 0xEBD7, 0x80F1, 0xEBD8, 0x80F4, 0xEBD9, 0x80ED, 0xEBDA, 0x810D, 0xEBDB, 0x810E, 0xEBDC, 0x80F2, 0xEBDD, 0x80FC, 0xEBDE, 0x6715, + 0xEBDF, 0x8112, 0xEBE0, 0x8C5A, 0xEBE1, 0x8136, 0xEBE2, 0x811E, 0xEBE3, 0x812C, 0xEBE4, 0x8118, 0xEBE5, 0x8132, 0xEBE6, 0x8148, + 0xEBE7, 0x814C, 0xEBE8, 0x8153, 0xEBE9, 0x8174, 0xEBEA, 0x8159, 0xEBEB, 0x815A, 0xEBEC, 0x8171, 0xEBED, 0x8160, 0xEBEE, 0x8169, + 0xEBEF, 0x817C, 0xEBF0, 0x817D, 0xEBF1, 0x816D, 0xEBF2, 0x8167, 0xEBF3, 0x584D, 0xEBF4, 0x5AB5, 0xEBF5, 0x8188, 0xEBF6, 0x8182, + 0xEBF7, 0x8191, 0xEBF8, 0x6ED5, 0xEBF9, 0x81A3, 0xEBFA, 0x81AA, 0xEBFB, 0x81CC, 0xEBFC, 0x6726, 0xEBFD, 0x81CA, 0xEBFE, 0x81BB, + 0xEC40, 0x9721, 0xEC41, 0x9722, 0xEC42, 0x9723, 0xEC43, 0x9724, 0xEC44, 0x9725, 0xEC45, 0x9726, 0xEC46, 0x9727, 0xEC47, 0x9728, + 0xEC48, 0x9729, 0xEC49, 0x972B, 0xEC4A, 0x972C, 0xEC4B, 0x972E, 0xEC4C, 0x972F, 0xEC4D, 0x9731, 0xEC4E, 0x9733, 0xEC4F, 0x9734, + 0xEC50, 0x9735, 0xEC51, 0x9736, 0xEC52, 0x9737, 0xEC53, 0x973A, 0xEC54, 0x973B, 0xEC55, 0x973C, 0xEC56, 0x973D, 0xEC57, 0x973F, + 0xEC58, 0x9740, 0xEC59, 0x9741, 0xEC5A, 0x9742, 0xEC5B, 0x9743, 0xEC5C, 0x9744, 0xEC5D, 0x9745, 0xEC5E, 0x9746, 0xEC5F, 0x9747, + 0xEC60, 0x9748, 0xEC61, 0x9749, 0xEC62, 0x974A, 0xEC63, 0x974B, 0xEC64, 0x974C, 0xEC65, 0x974D, 0xEC66, 0x974E, 0xEC67, 0x974F, + 0xEC68, 0x9750, 0xEC69, 0x9751, 0xEC6A, 0x9754, 0xEC6B, 0x9755, 0xEC6C, 0x9757, 0xEC6D, 0x9758, 0xEC6E, 0x975A, 0xEC6F, 0x975C, + 0xEC70, 0x975D, 0xEC71, 0x975F, 0xEC72, 0x9763, 0xEC73, 0x9764, 0xEC74, 0x9766, 0xEC75, 0x9767, 0xEC76, 0x9768, 0xEC77, 0x976A, + 0xEC78, 0x976B, 0xEC79, 0x976C, 0xEC7A, 0x976D, 0xEC7B, 0x976E, 0xEC7C, 0x976F, 0xEC7D, 0x9770, 0xEC7E, 0x9771, 0xEC80, 0x9772, + 0xEC81, 0x9775, 0xEC82, 0x9777, 0xEC83, 0x9778, 0xEC84, 0x9779, 0xEC85, 0x977A, 0xEC86, 0x977B, 0xEC87, 0x977D, 0xEC88, 0x977E, + 0xEC89, 0x977F, 0xEC8A, 0x9780, 0xEC8B, 0x9781, 0xEC8C, 0x9782, 0xEC8D, 0x9783, 0xEC8E, 0x9784, 0xEC8F, 0x9786, 0xEC90, 0x9787, + 0xEC91, 0x9788, 0xEC92, 0x9789, 0xEC93, 0x978A, 0xEC94, 0x978C, 0xEC95, 0x978E, 0xEC96, 0x978F, 0xEC97, 0x9790, 0xEC98, 0x9793, + 0xEC99, 0x9795, 0xEC9A, 0x9796, 0xEC9B, 0x9797, 0xEC9C, 0x9799, 0xEC9D, 0x979A, 0xEC9E, 0x979B, 0xEC9F, 0x979C, 0xECA0, 0x979D, + 0xECA1, 0x81C1, 0xECA2, 0x81A6, 0xECA3, 0x6B24, 0xECA4, 0x6B37, 0xECA5, 0x6B39, 0xECA6, 0x6B43, 0xECA7, 0x6B46, 0xECA8, 0x6B59, + 0xECA9, 0x98D1, 0xECAA, 0x98D2, 0xECAB, 0x98D3, 0xECAC, 0x98D5, 0xECAD, 0x98D9, 0xECAE, 0x98DA, 0xECAF, 0x6BB3, 0xECB0, 0x5F40, + 0xECB1, 0x6BC2, 0xECB2, 0x89F3, 0xECB3, 0x6590, 0xECB4, 0x9F51, 0xECB5, 0x6593, 0xECB6, 0x65BC, 0xECB7, 0x65C6, 0xECB8, 0x65C4, + 0xECB9, 0x65C3, 0xECBA, 0x65CC, 0xECBB, 0x65CE, 0xECBC, 0x65D2, 0xECBD, 0x65D6, 0xECBE, 0x7080, 0xECBF, 0x709C, 0xECC0, 0x7096, + 0xECC1, 0x709D, 0xECC2, 0x70BB, 0xECC3, 0x70C0, 0xECC4, 0x70B7, 0xECC5, 0x70AB, 0xECC6, 0x70B1, 0xECC7, 0x70E8, 0xECC8, 0x70CA, + 0xECC9, 0x7110, 0xECCA, 0x7113, 0xECCB, 0x7116, 0xECCC, 0x712F, 0xECCD, 0x7131, 0xECCE, 0x7173, 0xECCF, 0x715C, 0xECD0, 0x7168, + 0xECD1, 0x7145, 0xECD2, 0x7172, 0xECD3, 0x714A, 0xECD4, 0x7178, 0xECD5, 0x717A, 0xECD6, 0x7198, 0xECD7, 0x71B3, 0xECD8, 0x71B5, + 0xECD9, 0x71A8, 0xECDA, 0x71A0, 0xECDB, 0x71E0, 0xECDC, 0x71D4, 0xECDD, 0x71E7, 0xECDE, 0x71F9, 0xECDF, 0x721D, 0xECE0, 0x7228, + 0xECE1, 0x706C, 0xECE2, 0x7118, 0xECE3, 0x7166, 0xECE4, 0x71B9, 0xECE5, 0x623E, 0xECE6, 0x623D, 0xECE7, 0x6243, 0xECE8, 0x6248, + 0xECE9, 0x6249, 0xECEA, 0x793B, 0xECEB, 0x7940, 0xECEC, 0x7946, 0xECED, 0x7949, 0xECEE, 0x795B, 0xECEF, 0x795C, 0xECF0, 0x7953, + 0xECF1, 0x795A, 0xECF2, 0x7962, 0xECF3, 0x7957, 0xECF4, 0x7960, 0xECF5, 0x796F, 0xECF6, 0x7967, 0xECF7, 0x797A, 0xECF8, 0x7985, + 0xECF9, 0x798A, 0xECFA, 0x799A, 0xECFB, 0x79A7, 0xECFC, 0x79B3, 0xECFD, 0x5FD1, 0xECFE, 0x5FD0, 0xED40, 0x979E, 0xED41, 0x979F, + 0xED42, 0x97A1, 0xED43, 0x97A2, 0xED44, 0x97A4, 0xED45, 0x97A5, 0xED46, 0x97A6, 0xED47, 0x97A7, 0xED48, 0x97A8, 0xED49, 0x97A9, + 0xED4A, 0x97AA, 0xED4B, 0x97AC, 0xED4C, 0x97AE, 0xED4D, 0x97B0, 0xED4E, 0x97B1, 0xED4F, 0x97B3, 0xED50, 0x97B5, 0xED51, 0x97B6, + 0xED52, 0x97B7, 0xED53, 0x97B8, 0xED54, 0x97B9, 0xED55, 0x97BA, 0xED56, 0x97BB, 0xED57, 0x97BC, 0xED58, 0x97BD, 0xED59, 0x97BE, + 0xED5A, 0x97BF, 0xED5B, 0x97C0, 0xED5C, 0x97C1, 0xED5D, 0x97C2, 0xED5E, 0x97C3, 0xED5F, 0x97C4, 0xED60, 0x97C5, 0xED61, 0x97C6, + 0xED62, 0x97C7, 0xED63, 0x97C8, 0xED64, 0x97C9, 0xED65, 0x97CA, 0xED66, 0x97CB, 0xED67, 0x97CC, 0xED68, 0x97CD, 0xED69, 0x97CE, + 0xED6A, 0x97CF, 0xED6B, 0x97D0, 0xED6C, 0x97D1, 0xED6D, 0x97D2, 0xED6E, 0x97D3, 0xED6F, 0x97D4, 0xED70, 0x97D5, 0xED71, 0x97D6, + 0xED72, 0x97D7, 0xED73, 0x97D8, 0xED74, 0x97D9, 0xED75, 0x97DA, 0xED76, 0x97DB, 0xED77, 0x97DC, 0xED78, 0x97DD, 0xED79, 0x97DE, + 0xED7A, 0x97DF, 0xED7B, 0x97E0, 0xED7C, 0x97E1, 0xED7D, 0x97E2, 0xED7E, 0x97E3, 0xED80, 0x97E4, 0xED81, 0x97E5, 0xED82, 0x97E8, + 0xED83, 0x97EE, 0xED84, 0x97EF, 0xED85, 0x97F0, 0xED86, 0x97F1, 0xED87, 0x97F2, 0xED88, 0x97F4, 0xED89, 0x97F7, 0xED8A, 0x97F8, + 0xED8B, 0x97F9, 0xED8C, 0x97FA, 0xED8D, 0x97FB, 0xED8E, 0x97FC, 0xED8F, 0x97FD, 0xED90, 0x97FE, 0xED91, 0x97FF, 0xED92, 0x9800, + 0xED93, 0x9801, 0xED94, 0x9802, 0xED95, 0x9803, 0xED96, 0x9804, 0xED97, 0x9805, 0xED98, 0x9806, 0xED99, 0x9807, 0xED9A, 0x9808, + 0xED9B, 0x9809, 0xED9C, 0x980A, 0xED9D, 0x980B, 0xED9E, 0x980C, 0xED9F, 0x980D, 0xEDA0, 0x980E, 0xEDA1, 0x603C, 0xEDA2, 0x605D, + 0xEDA3, 0x605A, 0xEDA4, 0x6067, 0xEDA5, 0x6041, 0xEDA6, 0x6059, 0xEDA7, 0x6063, 0xEDA8, 0x60AB, 0xEDA9, 0x6106, 0xEDAA, 0x610D, + 0xEDAB, 0x615D, 0xEDAC, 0x61A9, 0xEDAD, 0x619D, 0xEDAE, 0x61CB, 0xEDAF, 0x61D1, 0xEDB0, 0x6206, 0xEDB1, 0x8080, 0xEDB2, 0x807F, + 0xEDB3, 0x6C93, 0xEDB4, 0x6CF6, 0xEDB5, 0x6DFC, 0xEDB6, 0x77F6, 0xEDB7, 0x77F8, 0xEDB8, 0x7800, 0xEDB9, 0x7809, 0xEDBA, 0x7817, + 0xEDBB, 0x7818, 0xEDBC, 0x7811, 0xEDBD, 0x65AB, 0xEDBE, 0x782D, 0xEDBF, 0x781C, 0xEDC0, 0x781D, 0xEDC1, 0x7839, 0xEDC2, 0x783A, + 0xEDC3, 0x783B, 0xEDC4, 0x781F, 0xEDC5, 0x783C, 0xEDC6, 0x7825, 0xEDC7, 0x782C, 0xEDC8, 0x7823, 0xEDC9, 0x7829, 0xEDCA, 0x784E, + 0xEDCB, 0x786D, 0xEDCC, 0x7856, 0xEDCD, 0x7857, 0xEDCE, 0x7826, 0xEDCF, 0x7850, 0xEDD0, 0x7847, 0xEDD1, 0x784C, 0xEDD2, 0x786A, + 0xEDD3, 0x789B, 0xEDD4, 0x7893, 0xEDD5, 0x789A, 0xEDD6, 0x7887, 0xEDD7, 0x789C, 0xEDD8, 0x78A1, 0xEDD9, 0x78A3, 0xEDDA, 0x78B2, + 0xEDDB, 0x78B9, 0xEDDC, 0x78A5, 0xEDDD, 0x78D4, 0xEDDE, 0x78D9, 0xEDDF, 0x78C9, 0xEDE0, 0x78EC, 0xEDE1, 0x78F2, 0xEDE2, 0x7905, + 0xEDE3, 0x78F4, 0xEDE4, 0x7913, 0xEDE5, 0x7924, 0xEDE6, 0x791E, 0xEDE7, 0x7934, 0xEDE8, 0x9F9B, 0xEDE9, 0x9EF9, 0xEDEA, 0x9EFB, + 0xEDEB, 0x9EFC, 0xEDEC, 0x76F1, 0xEDED, 0x7704, 0xEDEE, 0x770D, 0xEDEF, 0x76F9, 0xEDF0, 0x7707, 0xEDF1, 0x7708, 0xEDF2, 0x771A, + 0xEDF3, 0x7722, 0xEDF4, 0x7719, 0xEDF5, 0x772D, 0xEDF6, 0x7726, 0xEDF7, 0x7735, 0xEDF8, 0x7738, 0xEDF9, 0x7750, 0xEDFA, 0x7751, + 0xEDFB, 0x7747, 0xEDFC, 0x7743, 0xEDFD, 0x775A, 0xEDFE, 0x7768, 0xEE40, 0x980F, 0xEE41, 0x9810, 0xEE42, 0x9811, 0xEE43, 0x9812, + 0xEE44, 0x9813, 0xEE45, 0x9814, 0xEE46, 0x9815, 0xEE47, 0x9816, 0xEE48, 0x9817, 0xEE49, 0x9818, 0xEE4A, 0x9819, 0xEE4B, 0x981A, + 0xEE4C, 0x981B, 0xEE4D, 0x981C, 0xEE4E, 0x981D, 0xEE4F, 0x981E, 0xEE50, 0x981F, 0xEE51, 0x9820, 0xEE52, 0x9821, 0xEE53, 0x9822, + 0xEE54, 0x9823, 0xEE55, 0x9824, 0xEE56, 0x9825, 0xEE57, 0x9826, 0xEE58, 0x9827, 0xEE59, 0x9828, 0xEE5A, 0x9829, 0xEE5B, 0x982A, + 0xEE5C, 0x982B, 0xEE5D, 0x982C, 0xEE5E, 0x982D, 0xEE5F, 0x982E, 0xEE60, 0x982F, 0xEE61, 0x9830, 0xEE62, 0x9831, 0xEE63, 0x9832, + 0xEE64, 0x9833, 0xEE65, 0x9834, 0xEE66, 0x9835, 0xEE67, 0x9836, 0xEE68, 0x9837, 0xEE69, 0x9838, 0xEE6A, 0x9839, 0xEE6B, 0x983A, + 0xEE6C, 0x983B, 0xEE6D, 0x983C, 0xEE6E, 0x983D, 0xEE6F, 0x983E, 0xEE70, 0x983F, 0xEE71, 0x9840, 0xEE72, 0x9841, 0xEE73, 0x9842, + 0xEE74, 0x9843, 0xEE75, 0x9844, 0xEE76, 0x9845, 0xEE77, 0x9846, 0xEE78, 0x9847, 0xEE79, 0x9848, 0xEE7A, 0x9849, 0xEE7B, 0x984A, + 0xEE7C, 0x984B, 0xEE7D, 0x984C, 0xEE7E, 0x984D, 0xEE80, 0x984E, 0xEE81, 0x984F, 0xEE82, 0x9850, 0xEE83, 0x9851, 0xEE84, 0x9852, + 0xEE85, 0x9853, 0xEE86, 0x9854, 0xEE87, 0x9855, 0xEE88, 0x9856, 0xEE89, 0x9857, 0xEE8A, 0x9858, 0xEE8B, 0x9859, 0xEE8C, 0x985A, + 0xEE8D, 0x985B, 0xEE8E, 0x985C, 0xEE8F, 0x985D, 0xEE90, 0x985E, 0xEE91, 0x985F, 0xEE92, 0x9860, 0xEE93, 0x9861, 0xEE94, 0x9862, + 0xEE95, 0x9863, 0xEE96, 0x9864, 0xEE97, 0x9865, 0xEE98, 0x9866, 0xEE99, 0x9867, 0xEE9A, 0x9868, 0xEE9B, 0x9869, 0xEE9C, 0x986A, + 0xEE9D, 0x986B, 0xEE9E, 0x986C, 0xEE9F, 0x986D, 0xEEA0, 0x986E, 0xEEA1, 0x7762, 0xEEA2, 0x7765, 0xEEA3, 0x777F, 0xEEA4, 0x778D, + 0xEEA5, 0x777D, 0xEEA6, 0x7780, 0xEEA7, 0x778C, 0xEEA8, 0x7791, 0xEEA9, 0x779F, 0xEEAA, 0x77A0, 0xEEAB, 0x77B0, 0xEEAC, 0x77B5, + 0xEEAD, 0x77BD, 0xEEAE, 0x753A, 0xEEAF, 0x7540, 0xEEB0, 0x754E, 0xEEB1, 0x754B, 0xEEB2, 0x7548, 0xEEB3, 0x755B, 0xEEB4, 0x7572, + 0xEEB5, 0x7579, 0xEEB6, 0x7583, 0xEEB7, 0x7F58, 0xEEB8, 0x7F61, 0xEEB9, 0x7F5F, 0xEEBA, 0x8A48, 0xEEBB, 0x7F68, 0xEEBC, 0x7F74, + 0xEEBD, 0x7F71, 0xEEBE, 0x7F79, 0xEEBF, 0x7F81, 0xEEC0, 0x7F7E, 0xEEC1, 0x76CD, 0xEEC2, 0x76E5, 0xEEC3, 0x8832, 0xEEC4, 0x9485, + 0xEEC5, 0x9486, 0xEEC6, 0x9487, 0xEEC7, 0x948B, 0xEEC8, 0x948A, 0xEEC9, 0x948C, 0xEECA, 0x948D, 0xEECB, 0x948F, 0xEECC, 0x9490, + 0xEECD, 0x9494, 0xEECE, 0x9497, 0xEECF, 0x9495, 0xEED0, 0x949A, 0xEED1, 0x949B, 0xEED2, 0x949C, 0xEED3, 0x94A3, 0xEED4, 0x94A4, + 0xEED5, 0x94AB, 0xEED6, 0x94AA, 0xEED7, 0x94AD, 0xEED8, 0x94AC, 0xEED9, 0x94AF, 0xEEDA, 0x94B0, 0xEEDB, 0x94B2, 0xEEDC, 0x94B4, + 0xEEDD, 0x94B6, 0xEEDE, 0x94B7, 0xEEDF, 0x94B8, 0xEEE0, 0x94B9, 0xEEE1, 0x94BA, 0xEEE2, 0x94BC, 0xEEE3, 0x94BD, 0xEEE4, 0x94BF, + 0xEEE5, 0x94C4, 0xEEE6, 0x94C8, 0xEEE7, 0x94C9, 0xEEE8, 0x94CA, 0xEEE9, 0x94CB, 0xEEEA, 0x94CC, 0xEEEB, 0x94CD, 0xEEEC, 0x94CE, + 0xEEED, 0x94D0, 0xEEEE, 0x94D1, 0xEEEF, 0x94D2, 0xEEF0, 0x94D5, 0xEEF1, 0x94D6, 0xEEF2, 0x94D7, 0xEEF3, 0x94D9, 0xEEF4, 0x94D8, + 0xEEF5, 0x94DB, 0xEEF6, 0x94DE, 0xEEF7, 0x94DF, 0xEEF8, 0x94E0, 0xEEF9, 0x94E2, 0xEEFA, 0x94E4, 0xEEFB, 0x94E5, 0xEEFC, 0x94E7, + 0xEEFD, 0x94E8, 0xEEFE, 0x94EA, 0xEF40, 0x986F, 0xEF41, 0x9870, 0xEF42, 0x9871, 0xEF43, 0x9872, 0xEF44, 0x9873, 0xEF45, 0x9874, + 0xEF46, 0x988B, 0xEF47, 0x988E, 0xEF48, 0x9892, 0xEF49, 0x9895, 0xEF4A, 0x9899, 0xEF4B, 0x98A3, 0xEF4C, 0x98A8, 0xEF4D, 0x98A9, + 0xEF4E, 0x98AA, 0xEF4F, 0x98AB, 0xEF50, 0x98AC, 0xEF51, 0x98AD, 0xEF52, 0x98AE, 0xEF53, 0x98AF, 0xEF54, 0x98B0, 0xEF55, 0x98B1, + 0xEF56, 0x98B2, 0xEF57, 0x98B3, 0xEF58, 0x98B4, 0xEF59, 0x98B5, 0xEF5A, 0x98B6, 0xEF5B, 0x98B7, 0xEF5C, 0x98B8, 0xEF5D, 0x98B9, + 0xEF5E, 0x98BA, 0xEF5F, 0x98BB, 0xEF60, 0x98BC, 0xEF61, 0x98BD, 0xEF62, 0x98BE, 0xEF63, 0x98BF, 0xEF64, 0x98C0, 0xEF65, 0x98C1, + 0xEF66, 0x98C2, 0xEF67, 0x98C3, 0xEF68, 0x98C4, 0xEF69, 0x98C5, 0xEF6A, 0x98C6, 0xEF6B, 0x98C7, 0xEF6C, 0x98C8, 0xEF6D, 0x98C9, + 0xEF6E, 0x98CA, 0xEF6F, 0x98CB, 0xEF70, 0x98CC, 0xEF71, 0x98CD, 0xEF72, 0x98CF, 0xEF73, 0x98D0, 0xEF74, 0x98D4, 0xEF75, 0x98D6, + 0xEF76, 0x98D7, 0xEF77, 0x98DB, 0xEF78, 0x98DC, 0xEF79, 0x98DD, 0xEF7A, 0x98E0, 0xEF7B, 0x98E1, 0xEF7C, 0x98E2, 0xEF7D, 0x98E3, + 0xEF7E, 0x98E4, 0xEF80, 0x98E5, 0xEF81, 0x98E6, 0xEF82, 0x98E9, 0xEF83, 0x98EA, 0xEF84, 0x98EB, 0xEF85, 0x98EC, 0xEF86, 0x98ED, + 0xEF87, 0x98EE, 0xEF88, 0x98EF, 0xEF89, 0x98F0, 0xEF8A, 0x98F1, 0xEF8B, 0x98F2, 0xEF8C, 0x98F3, 0xEF8D, 0x98F4, 0xEF8E, 0x98F5, + 0xEF8F, 0x98F6, 0xEF90, 0x98F7, 0xEF91, 0x98F8, 0xEF92, 0x98F9, 0xEF93, 0x98FA, 0xEF94, 0x98FB, 0xEF95, 0x98FC, 0xEF96, 0x98FD, + 0xEF97, 0x98FE, 0xEF98, 0x98FF, 0xEF99, 0x9900, 0xEF9A, 0x9901, 0xEF9B, 0x9902, 0xEF9C, 0x9903, 0xEF9D, 0x9904, 0xEF9E, 0x9905, + 0xEF9F, 0x9906, 0xEFA0, 0x9907, 0xEFA1, 0x94E9, 0xEFA2, 0x94EB, 0xEFA3, 0x94EE, 0xEFA4, 0x94EF, 0xEFA5, 0x94F3, 0xEFA6, 0x94F4, + 0xEFA7, 0x94F5, 0xEFA8, 0x94F7, 0xEFA9, 0x94F9, 0xEFAA, 0x94FC, 0xEFAB, 0x94FD, 0xEFAC, 0x94FF, 0xEFAD, 0x9503, 0xEFAE, 0x9502, + 0xEFAF, 0x9506, 0xEFB0, 0x9507, 0xEFB1, 0x9509, 0xEFB2, 0x950A, 0xEFB3, 0x950D, 0xEFB4, 0x950E, 0xEFB5, 0x950F, 0xEFB6, 0x9512, + 0xEFB7, 0x9513, 0xEFB8, 0x9514, 0xEFB9, 0x9515, 0xEFBA, 0x9516, 0xEFBB, 0x9518, 0xEFBC, 0x951B, 0xEFBD, 0x951D, 0xEFBE, 0x951E, + 0xEFBF, 0x951F, 0xEFC0, 0x9522, 0xEFC1, 0x952A, 0xEFC2, 0x952B, 0xEFC3, 0x9529, 0xEFC4, 0x952C, 0xEFC5, 0x9531, 0xEFC6, 0x9532, + 0xEFC7, 0x9534, 0xEFC8, 0x9536, 0xEFC9, 0x9537, 0xEFCA, 0x9538, 0xEFCB, 0x953C, 0xEFCC, 0x953E, 0xEFCD, 0x953F, 0xEFCE, 0x9542, + 0xEFCF, 0x9535, 0xEFD0, 0x9544, 0xEFD1, 0x9545, 0xEFD2, 0x9546, 0xEFD3, 0x9549, 0xEFD4, 0x954C, 0xEFD5, 0x954E, 0xEFD6, 0x954F, + 0xEFD7, 0x9552, 0xEFD8, 0x9553, 0xEFD9, 0x9554, 0xEFDA, 0x9556, 0xEFDB, 0x9557, 0xEFDC, 0x9558, 0xEFDD, 0x9559, 0xEFDE, 0x955B, + 0xEFDF, 0x955E, 0xEFE0, 0x955F, 0xEFE1, 0x955D, 0xEFE2, 0x9561, 0xEFE3, 0x9562, 0xEFE4, 0x9564, 0xEFE5, 0x9565, 0xEFE6, 0x9566, + 0xEFE7, 0x9567, 0xEFE8, 0x9568, 0xEFE9, 0x9569, 0xEFEA, 0x956A, 0xEFEB, 0x956B, 0xEFEC, 0x956C, 0xEFED, 0x956F, 0xEFEE, 0x9571, + 0xEFEF, 0x9572, 0xEFF0, 0x9573, 0xEFF1, 0x953A, 0xEFF2, 0x77E7, 0xEFF3, 0x77EC, 0xEFF4, 0x96C9, 0xEFF5, 0x79D5, 0xEFF6, 0x79ED, + 0xEFF7, 0x79E3, 0xEFF8, 0x79EB, 0xEFF9, 0x7A06, 0xEFFA, 0x5D47, 0xEFFB, 0x7A03, 0xEFFC, 0x7A02, 0xEFFD, 0x7A1E, 0xEFFE, 0x7A14, + 0xF040, 0x9908, 0xF041, 0x9909, 0xF042, 0x990A, 0xF043, 0x990B, 0xF044, 0x990C, 0xF045, 0x990E, 0xF046, 0x990F, 0xF047, 0x9911, + 0xF048, 0x9912, 0xF049, 0x9913, 0xF04A, 0x9914, 0xF04B, 0x9915, 0xF04C, 0x9916, 0xF04D, 0x9917, 0xF04E, 0x9918, 0xF04F, 0x9919, + 0xF050, 0x991A, 0xF051, 0x991B, 0xF052, 0x991C, 0xF053, 0x991D, 0xF054, 0x991E, 0xF055, 0x991F, 0xF056, 0x9920, 0xF057, 0x9921, + 0xF058, 0x9922, 0xF059, 0x9923, 0xF05A, 0x9924, 0xF05B, 0x9925, 0xF05C, 0x9926, 0xF05D, 0x9927, 0xF05E, 0x9928, 0xF05F, 0x9929, + 0xF060, 0x992A, 0xF061, 0x992B, 0xF062, 0x992C, 0xF063, 0x992D, 0xF064, 0x992F, 0xF065, 0x9930, 0xF066, 0x9931, 0xF067, 0x9932, + 0xF068, 0x9933, 0xF069, 0x9934, 0xF06A, 0x9935, 0xF06B, 0x9936, 0xF06C, 0x9937, 0xF06D, 0x9938, 0xF06E, 0x9939, 0xF06F, 0x993A, + 0xF070, 0x993B, 0xF071, 0x993C, 0xF072, 0x993D, 0xF073, 0x993E, 0xF074, 0x993F, 0xF075, 0x9940, 0xF076, 0x9941, 0xF077, 0x9942, + 0xF078, 0x9943, 0xF079, 0x9944, 0xF07A, 0x9945, 0xF07B, 0x9946, 0xF07C, 0x9947, 0xF07D, 0x9948, 0xF07E, 0x9949, 0xF080, 0x994A, + 0xF081, 0x994B, 0xF082, 0x994C, 0xF083, 0x994D, 0xF084, 0x994E, 0xF085, 0x994F, 0xF086, 0x9950, 0xF087, 0x9951, 0xF088, 0x9952, + 0xF089, 0x9953, 0xF08A, 0x9956, 0xF08B, 0x9957, 0xF08C, 0x9958, 0xF08D, 0x9959, 0xF08E, 0x995A, 0xF08F, 0x995B, 0xF090, 0x995C, + 0xF091, 0x995D, 0xF092, 0x995E, 0xF093, 0x995F, 0xF094, 0x9960, 0xF095, 0x9961, 0xF096, 0x9962, 0xF097, 0x9964, 0xF098, 0x9966, + 0xF099, 0x9973, 0xF09A, 0x9978, 0xF09B, 0x9979, 0xF09C, 0x997B, 0xF09D, 0x997E, 0xF09E, 0x9982, 0xF09F, 0x9983, 0xF0A0, 0x9989, + 0xF0A1, 0x7A39, 0xF0A2, 0x7A37, 0xF0A3, 0x7A51, 0xF0A4, 0x9ECF, 0xF0A5, 0x99A5, 0xF0A6, 0x7A70, 0xF0A7, 0x7688, 0xF0A8, 0x768E, + 0xF0A9, 0x7693, 0xF0AA, 0x7699, 0xF0AB, 0x76A4, 0xF0AC, 0x74DE, 0xF0AD, 0x74E0, 0xF0AE, 0x752C, 0xF0AF, 0x9E20, 0xF0B0, 0x9E22, + 0xF0B1, 0x9E28, 0xF0B2, 0x9E29, 0xF0B3, 0x9E2A, 0xF0B4, 0x9E2B, 0xF0B5, 0x9E2C, 0xF0B6, 0x9E32, 0xF0B7, 0x9E31, 0xF0B8, 0x9E36, + 0xF0B9, 0x9E38, 0xF0BA, 0x9E37, 0xF0BB, 0x9E39, 0xF0BC, 0x9E3A, 0xF0BD, 0x9E3E, 0xF0BE, 0x9E41, 0xF0BF, 0x9E42, 0xF0C0, 0x9E44, + 0xF0C1, 0x9E46, 0xF0C2, 0x9E47, 0xF0C3, 0x9E48, 0xF0C4, 0x9E49, 0xF0C5, 0x9E4B, 0xF0C6, 0x9E4C, 0xF0C7, 0x9E4E, 0xF0C8, 0x9E51, + 0xF0C9, 0x9E55, 0xF0CA, 0x9E57, 0xF0CB, 0x9E5A, 0xF0CC, 0x9E5B, 0xF0CD, 0x9E5C, 0xF0CE, 0x9E5E, 0xF0CF, 0x9E63, 0xF0D0, 0x9E66, + 0xF0D1, 0x9E67, 0xF0D2, 0x9E68, 0xF0D3, 0x9E69, 0xF0D4, 0x9E6A, 0xF0D5, 0x9E6B, 0xF0D6, 0x9E6C, 0xF0D7, 0x9E71, 0xF0D8, 0x9E6D, + 0xF0D9, 0x9E73, 0xF0DA, 0x7592, 0xF0DB, 0x7594, 0xF0DC, 0x7596, 0xF0DD, 0x75A0, 0xF0DE, 0x759D, 0xF0DF, 0x75AC, 0xF0E0, 0x75A3, + 0xF0E1, 0x75B3, 0xF0E2, 0x75B4, 0xF0E3, 0x75B8, 0xF0E4, 0x75C4, 0xF0E5, 0x75B1, 0xF0E6, 0x75B0, 0xF0E7, 0x75C3, 0xF0E8, 0x75C2, + 0xF0E9, 0x75D6, 0xF0EA, 0x75CD, 0xF0EB, 0x75E3, 0xF0EC, 0x75E8, 0xF0ED, 0x75E6, 0xF0EE, 0x75E4, 0xF0EF, 0x75EB, 0xF0F0, 0x75E7, + 0xF0F1, 0x7603, 0xF0F2, 0x75F1, 0xF0F3, 0x75FC, 0xF0F4, 0x75FF, 0xF0F5, 0x7610, 0xF0F6, 0x7600, 0xF0F7, 0x7605, 0xF0F8, 0x760C, + 0xF0F9, 0x7617, 0xF0FA, 0x760A, 0xF0FB, 0x7625, 0xF0FC, 0x7618, 0xF0FD, 0x7615, 0xF0FE, 0x7619, 0xF140, 0x998C, 0xF141, 0x998E, + 0xF142, 0x999A, 0xF143, 0x999B, 0xF144, 0x999C, 0xF145, 0x999D, 0xF146, 0x999E, 0xF147, 0x999F, 0xF148, 0x99A0, 0xF149, 0x99A1, + 0xF14A, 0x99A2, 0xF14B, 0x99A3, 0xF14C, 0x99A4, 0xF14D, 0x99A6, 0xF14E, 0x99A7, 0xF14F, 0x99A9, 0xF150, 0x99AA, 0xF151, 0x99AB, + 0xF152, 0x99AC, 0xF153, 0x99AD, 0xF154, 0x99AE, 0xF155, 0x99AF, 0xF156, 0x99B0, 0xF157, 0x99B1, 0xF158, 0x99B2, 0xF159, 0x99B3, + 0xF15A, 0x99B4, 0xF15B, 0x99B5, 0xF15C, 0x99B6, 0xF15D, 0x99B7, 0xF15E, 0x99B8, 0xF15F, 0x99B9, 0xF160, 0x99BA, 0xF161, 0x99BB, + 0xF162, 0x99BC, 0xF163, 0x99BD, 0xF164, 0x99BE, 0xF165, 0x99BF, 0xF166, 0x99C0, 0xF167, 0x99C1, 0xF168, 0x99C2, 0xF169, 0x99C3, + 0xF16A, 0x99C4, 0xF16B, 0x99C5, 0xF16C, 0x99C6, 0xF16D, 0x99C7, 0xF16E, 0x99C8, 0xF16F, 0x99C9, 0xF170, 0x99CA, 0xF171, 0x99CB, + 0xF172, 0x99CC, 0xF173, 0x99CD, 0xF174, 0x99CE, 0xF175, 0x99CF, 0xF176, 0x99D0, 0xF177, 0x99D1, 0xF178, 0x99D2, 0xF179, 0x99D3, + 0xF17A, 0x99D4, 0xF17B, 0x99D5, 0xF17C, 0x99D6, 0xF17D, 0x99D7, 0xF17E, 0x99D8, 0xF180, 0x99D9, 0xF181, 0x99DA, 0xF182, 0x99DB, + 0xF183, 0x99DC, 0xF184, 0x99DD, 0xF185, 0x99DE, 0xF186, 0x99DF, 0xF187, 0x99E0, 0xF188, 0x99E1, 0xF189, 0x99E2, 0xF18A, 0x99E3, + 0xF18B, 0x99E4, 0xF18C, 0x99E5, 0xF18D, 0x99E6, 0xF18E, 0x99E7, 0xF18F, 0x99E8, 0xF190, 0x99E9, 0xF191, 0x99EA, 0xF192, 0x99EB, + 0xF193, 0x99EC, 0xF194, 0x99ED, 0xF195, 0x99EE, 0xF196, 0x99EF, 0xF197, 0x99F0, 0xF198, 0x99F1, 0xF199, 0x99F2, 0xF19A, 0x99F3, + 0xF19B, 0x99F4, 0xF19C, 0x99F5, 0xF19D, 0x99F6, 0xF19E, 0x99F7, 0xF19F, 0x99F8, 0xF1A0, 0x99F9, 0xF1A1, 0x761B, 0xF1A2, 0x763C, + 0xF1A3, 0x7622, 0xF1A4, 0x7620, 0xF1A5, 0x7640, 0xF1A6, 0x762D, 0xF1A7, 0x7630, 0xF1A8, 0x763F, 0xF1A9, 0x7635, 0xF1AA, 0x7643, + 0xF1AB, 0x763E, 0xF1AC, 0x7633, 0xF1AD, 0x764D, 0xF1AE, 0x765E, 0xF1AF, 0x7654, 0xF1B0, 0x765C, 0xF1B1, 0x7656, 0xF1B2, 0x766B, + 0xF1B3, 0x766F, 0xF1B4, 0x7FCA, 0xF1B5, 0x7AE6, 0xF1B6, 0x7A78, 0xF1B7, 0x7A79, 0xF1B8, 0x7A80, 0xF1B9, 0x7A86, 0xF1BA, 0x7A88, + 0xF1BB, 0x7A95, 0xF1BC, 0x7AA6, 0xF1BD, 0x7AA0, 0xF1BE, 0x7AAC, 0xF1BF, 0x7AA8, 0xF1C0, 0x7AAD, 0xF1C1, 0x7AB3, 0xF1C2, 0x8864, + 0xF1C3, 0x8869, 0xF1C4, 0x8872, 0xF1C5, 0x887D, 0xF1C6, 0x887F, 0xF1C7, 0x8882, 0xF1C8, 0x88A2, 0xF1C9, 0x88C6, 0xF1CA, 0x88B7, + 0xF1CB, 0x88BC, 0xF1CC, 0x88C9, 0xF1CD, 0x88E2, 0xF1CE, 0x88CE, 0xF1CF, 0x88E3, 0xF1D0, 0x88E5, 0xF1D1, 0x88F1, 0xF1D2, 0x891A, + 0xF1D3, 0x88FC, 0xF1D4, 0x88E8, 0xF1D5, 0x88FE, 0xF1D6, 0x88F0, 0xF1D7, 0x8921, 0xF1D8, 0x8919, 0xF1D9, 0x8913, 0xF1DA, 0x891B, + 0xF1DB, 0x890A, 0xF1DC, 0x8934, 0xF1DD, 0x892B, 0xF1DE, 0x8936, 0xF1DF, 0x8941, 0xF1E0, 0x8966, 0xF1E1, 0x897B, 0xF1E2, 0x758B, + 0xF1E3, 0x80E5, 0xF1E4, 0x76B2, 0xF1E5, 0x76B4, 0xF1E6, 0x77DC, 0xF1E7, 0x8012, 0xF1E8, 0x8014, 0xF1E9, 0x8016, 0xF1EA, 0x801C, + 0xF1EB, 0x8020, 0xF1EC, 0x8022, 0xF1ED, 0x8025, 0xF1EE, 0x8026, 0xF1EF, 0x8027, 0xF1F0, 0x8029, 0xF1F1, 0x8028, 0xF1F2, 0x8031, + 0xF1F3, 0x800B, 0xF1F4, 0x8035, 0xF1F5, 0x8043, 0xF1F6, 0x8046, 0xF1F7, 0x804D, 0xF1F8, 0x8052, 0xF1F9, 0x8069, 0xF1FA, 0x8071, + 0xF1FB, 0x8983, 0xF1FC, 0x9878, 0xF1FD, 0x9880, 0xF1FE, 0x9883, 0xF240, 0x99FA, 0xF241, 0x99FB, 0xF242, 0x99FC, 0xF243, 0x99FD, + 0xF244, 0x99FE, 0xF245, 0x99FF, 0xF246, 0x9A00, 0xF247, 0x9A01, 0xF248, 0x9A02, 0xF249, 0x9A03, 0xF24A, 0x9A04, 0xF24B, 0x9A05, + 0xF24C, 0x9A06, 0xF24D, 0x9A07, 0xF24E, 0x9A08, 0xF24F, 0x9A09, 0xF250, 0x9A0A, 0xF251, 0x9A0B, 0xF252, 0x9A0C, 0xF253, 0x9A0D, + 0xF254, 0x9A0E, 0xF255, 0x9A0F, 0xF256, 0x9A10, 0xF257, 0x9A11, 0xF258, 0x9A12, 0xF259, 0x9A13, 0xF25A, 0x9A14, 0xF25B, 0x9A15, + 0xF25C, 0x9A16, 0xF25D, 0x9A17, 0xF25E, 0x9A18, 0xF25F, 0x9A19, 0xF260, 0x9A1A, 0xF261, 0x9A1B, 0xF262, 0x9A1C, 0xF263, 0x9A1D, + 0xF264, 0x9A1E, 0xF265, 0x9A1F, 0xF266, 0x9A20, 0xF267, 0x9A21, 0xF268, 0x9A22, 0xF269, 0x9A23, 0xF26A, 0x9A24, 0xF26B, 0x9A25, + 0xF26C, 0x9A26, 0xF26D, 0x9A27, 0xF26E, 0x9A28, 0xF26F, 0x9A29, 0xF270, 0x9A2A, 0xF271, 0x9A2B, 0xF272, 0x9A2C, 0xF273, 0x9A2D, + 0xF274, 0x9A2E, 0xF275, 0x9A2F, 0xF276, 0x9A30, 0xF277, 0x9A31, 0xF278, 0x9A32, 0xF279, 0x9A33, 0xF27A, 0x9A34, 0xF27B, 0x9A35, + 0xF27C, 0x9A36, 0xF27D, 0x9A37, 0xF27E, 0x9A38, 0xF280, 0x9A39, 0xF281, 0x9A3A, 0xF282, 0x9A3B, 0xF283, 0x9A3C, 0xF284, 0x9A3D, + 0xF285, 0x9A3E, 0xF286, 0x9A3F, 0xF287, 0x9A40, 0xF288, 0x9A41, 0xF289, 0x9A42, 0xF28A, 0x9A43, 0xF28B, 0x9A44, 0xF28C, 0x9A45, + 0xF28D, 0x9A46, 0xF28E, 0x9A47, 0xF28F, 0x9A48, 0xF290, 0x9A49, 0xF291, 0x9A4A, 0xF292, 0x9A4B, 0xF293, 0x9A4C, 0xF294, 0x9A4D, + 0xF295, 0x9A4E, 0xF296, 0x9A4F, 0xF297, 0x9A50, 0xF298, 0x9A51, 0xF299, 0x9A52, 0xF29A, 0x9A53, 0xF29B, 0x9A54, 0xF29C, 0x9A55, + 0xF29D, 0x9A56, 0xF29E, 0x9A57, 0xF29F, 0x9A58, 0xF2A0, 0x9A59, 0xF2A1, 0x9889, 0xF2A2, 0x988C, 0xF2A3, 0x988D, 0xF2A4, 0x988F, + 0xF2A5, 0x9894, 0xF2A6, 0x989A, 0xF2A7, 0x989B, 0xF2A8, 0x989E, 0xF2A9, 0x989F, 0xF2AA, 0x98A1, 0xF2AB, 0x98A2, 0xF2AC, 0x98A5, + 0xF2AD, 0x98A6, 0xF2AE, 0x864D, 0xF2AF, 0x8654, 0xF2B0, 0x866C, 0xF2B1, 0x866E, 0xF2B2, 0x867F, 0xF2B3, 0x867A, 0xF2B4, 0x867C, + 0xF2B5, 0x867B, 0xF2B6, 0x86A8, 0xF2B7, 0x868D, 0xF2B8, 0x868B, 0xF2B9, 0x86AC, 0xF2BA, 0x869D, 0xF2BB, 0x86A7, 0xF2BC, 0x86A3, + 0xF2BD, 0x86AA, 0xF2BE, 0x8693, 0xF2BF, 0x86A9, 0xF2C0, 0x86B6, 0xF2C1, 0x86C4, 0xF2C2, 0x86B5, 0xF2C3, 0x86CE, 0xF2C4, 0x86B0, + 0xF2C5, 0x86BA, 0xF2C6, 0x86B1, 0xF2C7, 0x86AF, 0xF2C8, 0x86C9, 0xF2C9, 0x86CF, 0xF2CA, 0x86B4, 0xF2CB, 0x86E9, 0xF2CC, 0x86F1, + 0xF2CD, 0x86F2, 0xF2CE, 0x86ED, 0xF2CF, 0x86F3, 0xF2D0, 0x86D0, 0xF2D1, 0x8713, 0xF2D2, 0x86DE, 0xF2D3, 0x86F4, 0xF2D4, 0x86DF, + 0xF2D5, 0x86D8, 0xF2D6, 0x86D1, 0xF2D7, 0x8703, 0xF2D8, 0x8707, 0xF2D9, 0x86F8, 0xF2DA, 0x8708, 0xF2DB, 0x870A, 0xF2DC, 0x870D, + 0xF2DD, 0x8709, 0xF2DE, 0x8723, 0xF2DF, 0x873B, 0xF2E0, 0x871E, 0xF2E1, 0x8725, 0xF2E2, 0x872E, 0xF2E3, 0x871A, 0xF2E4, 0x873E, + 0xF2E5, 0x8748, 0xF2E6, 0x8734, 0xF2E7, 0x8731, 0xF2E8, 0x8729, 0xF2E9, 0x8737, 0xF2EA, 0x873F, 0xF2EB, 0x8782, 0xF2EC, 0x8722, + 0xF2ED, 0x877D, 0xF2EE, 0x877E, 0xF2EF, 0x877B, 0xF2F0, 0x8760, 0xF2F1, 0x8770, 0xF2F2, 0x874C, 0xF2F3, 0x876E, 0xF2F4, 0x878B, + 0xF2F5, 0x8753, 0xF2F6, 0x8763, 0xF2F7, 0x877C, 0xF2F8, 0x8764, 0xF2F9, 0x8759, 0xF2FA, 0x8765, 0xF2FB, 0x8793, 0xF2FC, 0x87AF, + 0xF2FD, 0x87A8, 0xF2FE, 0x87D2, 0xF340, 0x9A5A, 0xF341, 0x9A5B, 0xF342, 0x9A5C, 0xF343, 0x9A5D, 0xF344, 0x9A5E, 0xF345, 0x9A5F, + 0xF346, 0x9A60, 0xF347, 0x9A61, 0xF348, 0x9A62, 0xF349, 0x9A63, 0xF34A, 0x9A64, 0xF34B, 0x9A65, 0xF34C, 0x9A66, 0xF34D, 0x9A67, + 0xF34E, 0x9A68, 0xF34F, 0x9A69, 0xF350, 0x9A6A, 0xF351, 0x9A6B, 0xF352, 0x9A72, 0xF353, 0x9A83, 0xF354, 0x9A89, 0xF355, 0x9A8D, + 0xF356, 0x9A8E, 0xF357, 0x9A94, 0xF358, 0x9A95, 0xF359, 0x9A99, 0xF35A, 0x9AA6, 0xF35B, 0x9AA9, 0xF35C, 0x9AAA, 0xF35D, 0x9AAB, + 0xF35E, 0x9AAC, 0xF35F, 0x9AAD, 0xF360, 0x9AAE, 0xF361, 0x9AAF, 0xF362, 0x9AB2, 0xF363, 0x9AB3, 0xF364, 0x9AB4, 0xF365, 0x9AB5, + 0xF366, 0x9AB9, 0xF367, 0x9ABB, 0xF368, 0x9ABD, 0xF369, 0x9ABE, 0xF36A, 0x9ABF, 0xF36B, 0x9AC3, 0xF36C, 0x9AC4, 0xF36D, 0x9AC6, + 0xF36E, 0x9AC7, 0xF36F, 0x9AC8, 0xF370, 0x9AC9, 0xF371, 0x9ACA, 0xF372, 0x9ACD, 0xF373, 0x9ACE, 0xF374, 0x9ACF, 0xF375, 0x9AD0, + 0xF376, 0x9AD2, 0xF377, 0x9AD4, 0xF378, 0x9AD5, 0xF379, 0x9AD6, 0xF37A, 0x9AD7, 0xF37B, 0x9AD9, 0xF37C, 0x9ADA, 0xF37D, 0x9ADB, + 0xF37E, 0x9ADC, 0xF380, 0x9ADD, 0xF381, 0x9ADE, 0xF382, 0x9AE0, 0xF383, 0x9AE2, 0xF384, 0x9AE3, 0xF385, 0x9AE4, 0xF386, 0x9AE5, + 0xF387, 0x9AE7, 0xF388, 0x9AE8, 0xF389, 0x9AE9, 0xF38A, 0x9AEA, 0xF38B, 0x9AEC, 0xF38C, 0x9AEE, 0xF38D, 0x9AF0, 0xF38E, 0x9AF1, + 0xF38F, 0x9AF2, 0xF390, 0x9AF3, 0xF391, 0x9AF4, 0xF392, 0x9AF5, 0xF393, 0x9AF6, 0xF394, 0x9AF7, 0xF395, 0x9AF8, 0xF396, 0x9AFA, + 0xF397, 0x9AFC, 0xF398, 0x9AFD, 0xF399, 0x9AFE, 0xF39A, 0x9AFF, 0xF39B, 0x9B00, 0xF39C, 0x9B01, 0xF39D, 0x9B02, 0xF39E, 0x9B04, + 0xF39F, 0x9B05, 0xF3A0, 0x9B06, 0xF3A1, 0x87C6, 0xF3A2, 0x8788, 0xF3A3, 0x8785, 0xF3A4, 0x87AD, 0xF3A5, 0x8797, 0xF3A6, 0x8783, + 0xF3A7, 0x87AB, 0xF3A8, 0x87E5, 0xF3A9, 0x87AC, 0xF3AA, 0x87B5, 0xF3AB, 0x87B3, 0xF3AC, 0x87CB, 0xF3AD, 0x87D3, 0xF3AE, 0x87BD, + 0xF3AF, 0x87D1, 0xF3B0, 0x87C0, 0xF3B1, 0x87CA, 0xF3B2, 0x87DB, 0xF3B3, 0x87EA, 0xF3B4, 0x87E0, 0xF3B5, 0x87EE, 0xF3B6, 0x8816, + 0xF3B7, 0x8813, 0xF3B8, 0x87FE, 0xF3B9, 0x880A, 0xF3BA, 0x881B, 0xF3BB, 0x8821, 0xF3BC, 0x8839, 0xF3BD, 0x883C, 0xF3BE, 0x7F36, + 0xF3BF, 0x7F42, 0xF3C0, 0x7F44, 0xF3C1, 0x7F45, 0xF3C2, 0x8210, 0xF3C3, 0x7AFA, 0xF3C4, 0x7AFD, 0xF3C5, 0x7B08, 0xF3C6, 0x7B03, + 0xF3C7, 0x7B04, 0xF3C8, 0x7B15, 0xF3C9, 0x7B0A, 0xF3CA, 0x7B2B, 0xF3CB, 0x7B0F, 0xF3CC, 0x7B47, 0xF3CD, 0x7B38, 0xF3CE, 0x7B2A, + 0xF3CF, 0x7B19, 0xF3D0, 0x7B2E, 0xF3D1, 0x7B31, 0xF3D2, 0x7B20, 0xF3D3, 0x7B25, 0xF3D4, 0x7B24, 0xF3D5, 0x7B33, 0xF3D6, 0x7B3E, + 0xF3D7, 0x7B1E, 0xF3D8, 0x7B58, 0xF3D9, 0x7B5A, 0xF3DA, 0x7B45, 0xF3DB, 0x7B75, 0xF3DC, 0x7B4C, 0xF3DD, 0x7B5D, 0xF3DE, 0x7B60, + 0xF3DF, 0x7B6E, 0xF3E0, 0x7B7B, 0xF3E1, 0x7B62, 0xF3E2, 0x7B72, 0xF3E3, 0x7B71, 0xF3E4, 0x7B90, 0xF3E5, 0x7BA6, 0xF3E6, 0x7BA7, + 0xF3E7, 0x7BB8, 0xF3E8, 0x7BAC, 0xF3E9, 0x7B9D, 0xF3EA, 0x7BA8, 0xF3EB, 0x7B85, 0xF3EC, 0x7BAA, 0xF3ED, 0x7B9C, 0xF3EE, 0x7BA2, + 0xF3EF, 0x7BAB, 0xF3F0, 0x7BB4, 0xF3F1, 0x7BD1, 0xF3F2, 0x7BC1, 0xF3F3, 0x7BCC, 0xF3F4, 0x7BDD, 0xF3F5, 0x7BDA, 0xF3F6, 0x7BE5, + 0xF3F7, 0x7BE6, 0xF3F8, 0x7BEA, 0xF3F9, 0x7C0C, 0xF3FA, 0x7BFE, 0xF3FB, 0x7BFC, 0xF3FC, 0x7C0F, 0xF3FD, 0x7C16, 0xF3FE, 0x7C0B, + 0xF440, 0x9B07, 0xF441, 0x9B09, 0xF442, 0x9B0A, 0xF443, 0x9B0B, 0xF444, 0x9B0C, 0xF445, 0x9B0D, 0xF446, 0x9B0E, 0xF447, 0x9B10, + 0xF448, 0x9B11, 0xF449, 0x9B12, 0xF44A, 0x9B14, 0xF44B, 0x9B15, 0xF44C, 0x9B16, 0xF44D, 0x9B17, 0xF44E, 0x9B18, 0xF44F, 0x9B19, + 0xF450, 0x9B1A, 0xF451, 0x9B1B, 0xF452, 0x9B1C, 0xF453, 0x9B1D, 0xF454, 0x9B1E, 0xF455, 0x9B20, 0xF456, 0x9B21, 0xF457, 0x9B22, + 0xF458, 0x9B24, 0xF459, 0x9B25, 0xF45A, 0x9B26, 0xF45B, 0x9B27, 0xF45C, 0x9B28, 0xF45D, 0x9B29, 0xF45E, 0x9B2A, 0xF45F, 0x9B2B, + 0xF460, 0x9B2C, 0xF461, 0x9B2D, 0xF462, 0x9B2E, 0xF463, 0x9B30, 0xF464, 0x9B31, 0xF465, 0x9B33, 0xF466, 0x9B34, 0xF467, 0x9B35, + 0xF468, 0x9B36, 0xF469, 0x9B37, 0xF46A, 0x9B38, 0xF46B, 0x9B39, 0xF46C, 0x9B3A, 0xF46D, 0x9B3D, 0xF46E, 0x9B3E, 0xF46F, 0x9B3F, + 0xF470, 0x9B40, 0xF471, 0x9B46, 0xF472, 0x9B4A, 0xF473, 0x9B4B, 0xF474, 0x9B4C, 0xF475, 0x9B4E, 0xF476, 0x9B50, 0xF477, 0x9B52, + 0xF478, 0x9B53, 0xF479, 0x9B55, 0xF47A, 0x9B56, 0xF47B, 0x9B57, 0xF47C, 0x9B58, 0xF47D, 0x9B59, 0xF47E, 0x9B5A, 0xF480, 0x9B5B, + 0xF481, 0x9B5C, 0xF482, 0x9B5D, 0xF483, 0x9B5E, 0xF484, 0x9B5F, 0xF485, 0x9B60, 0xF486, 0x9B61, 0xF487, 0x9B62, 0xF488, 0x9B63, + 0xF489, 0x9B64, 0xF48A, 0x9B65, 0xF48B, 0x9B66, 0xF48C, 0x9B67, 0xF48D, 0x9B68, 0xF48E, 0x9B69, 0xF48F, 0x9B6A, 0xF490, 0x9B6B, + 0xF491, 0x9B6C, 0xF492, 0x9B6D, 0xF493, 0x9B6E, 0xF494, 0x9B6F, 0xF495, 0x9B70, 0xF496, 0x9B71, 0xF497, 0x9B72, 0xF498, 0x9B73, + 0xF499, 0x9B74, 0xF49A, 0x9B75, 0xF49B, 0x9B76, 0xF49C, 0x9B77, 0xF49D, 0x9B78, 0xF49E, 0x9B79, 0xF49F, 0x9B7A, 0xF4A0, 0x9B7B, + 0xF4A1, 0x7C1F, 0xF4A2, 0x7C2A, 0xF4A3, 0x7C26, 0xF4A4, 0x7C38, 0xF4A5, 0x7C41, 0xF4A6, 0x7C40, 0xF4A7, 0x81FE, 0xF4A8, 0x8201, + 0xF4A9, 0x8202, 0xF4AA, 0x8204, 0xF4AB, 0x81EC, 0xF4AC, 0x8844, 0xF4AD, 0x8221, 0xF4AE, 0x8222, 0xF4AF, 0x8223, 0xF4B0, 0x822D, + 0xF4B1, 0x822F, 0xF4B2, 0x8228, 0xF4B3, 0x822B, 0xF4B4, 0x8238, 0xF4B5, 0x823B, 0xF4B6, 0x8233, 0xF4B7, 0x8234, 0xF4B8, 0x823E, + 0xF4B9, 0x8244, 0xF4BA, 0x8249, 0xF4BB, 0x824B, 0xF4BC, 0x824F, 0xF4BD, 0x825A, 0xF4BE, 0x825F, 0xF4BF, 0x8268, 0xF4C0, 0x887E, + 0xF4C1, 0x8885, 0xF4C2, 0x8888, 0xF4C3, 0x88D8, 0xF4C4, 0x88DF, 0xF4C5, 0x895E, 0xF4C6, 0x7F9D, 0xF4C7, 0x7F9F, 0xF4C8, 0x7FA7, + 0xF4C9, 0x7FAF, 0xF4CA, 0x7FB0, 0xF4CB, 0x7FB2, 0xF4CC, 0x7C7C, 0xF4CD, 0x6549, 0xF4CE, 0x7C91, 0xF4CF, 0x7C9D, 0xF4D0, 0x7C9C, + 0xF4D1, 0x7C9E, 0xF4D2, 0x7CA2, 0xF4D3, 0x7CB2, 0xF4D4, 0x7CBC, 0xF4D5, 0x7CBD, 0xF4D6, 0x7CC1, 0xF4D7, 0x7CC7, 0xF4D8, 0x7CCC, + 0xF4D9, 0x7CCD, 0xF4DA, 0x7CC8, 0xF4DB, 0x7CC5, 0xF4DC, 0x7CD7, 0xF4DD, 0x7CE8, 0xF4DE, 0x826E, 0xF4DF, 0x66A8, 0xF4E0, 0x7FBF, + 0xF4E1, 0x7FCE, 0xF4E2, 0x7FD5, 0xF4E3, 0x7FE5, 0xF4E4, 0x7FE1, 0xF4E5, 0x7FE6, 0xF4E6, 0x7FE9, 0xF4E7, 0x7FEE, 0xF4E8, 0x7FF3, + 0xF4E9, 0x7CF8, 0xF4EA, 0x7D77, 0xF4EB, 0x7DA6, 0xF4EC, 0x7DAE, 0xF4ED, 0x7E47, 0xF4EE, 0x7E9B, 0xF4EF, 0x9EB8, 0xF4F0, 0x9EB4, + 0xF4F1, 0x8D73, 0xF4F2, 0x8D84, 0xF4F3, 0x8D94, 0xF4F4, 0x8D91, 0xF4F5, 0x8DB1, 0xF4F6, 0x8D67, 0xF4F7, 0x8D6D, 0xF4F8, 0x8C47, + 0xF4F9, 0x8C49, 0xF4FA, 0x914A, 0xF4FB, 0x9150, 0xF4FC, 0x914E, 0xF4FD, 0x914F, 0xF4FE, 0x9164, 0xF540, 0x9B7C, 0xF541, 0x9B7D, + 0xF542, 0x9B7E, 0xF543, 0x9B7F, 0xF544, 0x9B80, 0xF545, 0x9B81, 0xF546, 0x9B82, 0xF547, 0x9B83, 0xF548, 0x9B84, 0xF549, 0x9B85, + 0xF54A, 0x9B86, 0xF54B, 0x9B87, 0xF54C, 0x9B88, 0xF54D, 0x9B89, 0xF54E, 0x9B8A, 0xF54F, 0x9B8B, 0xF550, 0x9B8C, 0xF551, 0x9B8D, + 0xF552, 0x9B8E, 0xF553, 0x9B8F, 0xF554, 0x9B90, 0xF555, 0x9B91, 0xF556, 0x9B92, 0xF557, 0x9B93, 0xF558, 0x9B94, 0xF559, 0x9B95, + 0xF55A, 0x9B96, 0xF55B, 0x9B97, 0xF55C, 0x9B98, 0xF55D, 0x9B99, 0xF55E, 0x9B9A, 0xF55F, 0x9B9B, 0xF560, 0x9B9C, 0xF561, 0x9B9D, + 0xF562, 0x9B9E, 0xF563, 0x9B9F, 0xF564, 0x9BA0, 0xF565, 0x9BA1, 0xF566, 0x9BA2, 0xF567, 0x9BA3, 0xF568, 0x9BA4, 0xF569, 0x9BA5, + 0xF56A, 0x9BA6, 0xF56B, 0x9BA7, 0xF56C, 0x9BA8, 0xF56D, 0x9BA9, 0xF56E, 0x9BAA, 0xF56F, 0x9BAB, 0xF570, 0x9BAC, 0xF571, 0x9BAD, + 0xF572, 0x9BAE, 0xF573, 0x9BAF, 0xF574, 0x9BB0, 0xF575, 0x9BB1, 0xF576, 0x9BB2, 0xF577, 0x9BB3, 0xF578, 0x9BB4, 0xF579, 0x9BB5, + 0xF57A, 0x9BB6, 0xF57B, 0x9BB7, 0xF57C, 0x9BB8, 0xF57D, 0x9BB9, 0xF57E, 0x9BBA, 0xF580, 0x9BBB, 0xF581, 0x9BBC, 0xF582, 0x9BBD, + 0xF583, 0x9BBE, 0xF584, 0x9BBF, 0xF585, 0x9BC0, 0xF586, 0x9BC1, 0xF587, 0x9BC2, 0xF588, 0x9BC3, 0xF589, 0x9BC4, 0xF58A, 0x9BC5, + 0xF58B, 0x9BC6, 0xF58C, 0x9BC7, 0xF58D, 0x9BC8, 0xF58E, 0x9BC9, 0xF58F, 0x9BCA, 0xF590, 0x9BCB, 0xF591, 0x9BCC, 0xF592, 0x9BCD, + 0xF593, 0x9BCE, 0xF594, 0x9BCF, 0xF595, 0x9BD0, 0xF596, 0x9BD1, 0xF597, 0x9BD2, 0xF598, 0x9BD3, 0xF599, 0x9BD4, 0xF59A, 0x9BD5, + 0xF59B, 0x9BD6, 0xF59C, 0x9BD7, 0xF59D, 0x9BD8, 0xF59E, 0x9BD9, 0xF59F, 0x9BDA, 0xF5A0, 0x9BDB, 0xF5A1, 0x9162, 0xF5A2, 0x9161, + 0xF5A3, 0x9170, 0xF5A4, 0x9169, 0xF5A5, 0x916F, 0xF5A6, 0x917D, 0xF5A7, 0x917E, 0xF5A8, 0x9172, 0xF5A9, 0x9174, 0xF5AA, 0x9179, + 0xF5AB, 0x918C, 0xF5AC, 0x9185, 0xF5AD, 0x9190, 0xF5AE, 0x918D, 0xF5AF, 0x9191, 0xF5B0, 0x91A2, 0xF5B1, 0x91A3, 0xF5B2, 0x91AA, + 0xF5B3, 0x91AD, 0xF5B4, 0x91AE, 0xF5B5, 0x91AF, 0xF5B6, 0x91B5, 0xF5B7, 0x91B4, 0xF5B8, 0x91BA, 0xF5B9, 0x8C55, 0xF5BA, 0x9E7E, + 0xF5BB, 0x8DB8, 0xF5BC, 0x8DEB, 0xF5BD, 0x8E05, 0xF5BE, 0x8E59, 0xF5BF, 0x8E69, 0xF5C0, 0x8DB5, 0xF5C1, 0x8DBF, 0xF5C2, 0x8DBC, + 0xF5C3, 0x8DBA, 0xF5C4, 0x8DC4, 0xF5C5, 0x8DD6, 0xF5C6, 0x8DD7, 0xF5C7, 0x8DDA, 0xF5C8, 0x8DDE, 0xF5C9, 0x8DCE, 0xF5CA, 0x8DCF, + 0xF5CB, 0x8DDB, 0xF5CC, 0x8DC6, 0xF5CD, 0x8DEC, 0xF5CE, 0x8DF7, 0xF5CF, 0x8DF8, 0xF5D0, 0x8DE3, 0xF5D1, 0x8DF9, 0xF5D2, 0x8DFB, + 0xF5D3, 0x8DE4, 0xF5D4, 0x8E09, 0xF5D5, 0x8DFD, 0xF5D6, 0x8E14, 0xF5D7, 0x8E1D, 0xF5D8, 0x8E1F, 0xF5D9, 0x8E2C, 0xF5DA, 0x8E2E, + 0xF5DB, 0x8E23, 0xF5DC, 0x8E2F, 0xF5DD, 0x8E3A, 0xF5DE, 0x8E40, 0xF5DF, 0x8E39, 0xF5E0, 0x8E35, 0xF5E1, 0x8E3D, 0xF5E2, 0x8E31, + 0xF5E3, 0x8E49, 0xF5E4, 0x8E41, 0xF5E5, 0x8E42, 0xF5E6, 0x8E51, 0xF5E7, 0x8E52, 0xF5E8, 0x8E4A, 0xF5E9, 0x8E70, 0xF5EA, 0x8E76, + 0xF5EB, 0x8E7C, 0xF5EC, 0x8E6F, 0xF5ED, 0x8E74, 0xF5EE, 0x8E85, 0xF5EF, 0x8E8F, 0xF5F0, 0x8E94, 0xF5F1, 0x8E90, 0xF5F2, 0x8E9C, + 0xF5F3, 0x8E9E, 0xF5F4, 0x8C78, 0xF5F5, 0x8C82, 0xF5F6, 0x8C8A, 0xF5F7, 0x8C85, 0xF5F8, 0x8C98, 0xF5F9, 0x8C94, 0xF5FA, 0x659B, + 0xF5FB, 0x89D6, 0xF5FC, 0x89DE, 0xF5FD, 0x89DA, 0xF5FE, 0x89DC, 0xF640, 0x9BDC, 0xF641, 0x9BDD, 0xF642, 0x9BDE, 0xF643, 0x9BDF, + 0xF644, 0x9BE0, 0xF645, 0x9BE1, 0xF646, 0x9BE2, 0xF647, 0x9BE3, 0xF648, 0x9BE4, 0xF649, 0x9BE5, 0xF64A, 0x9BE6, 0xF64B, 0x9BE7, + 0xF64C, 0x9BE8, 0xF64D, 0x9BE9, 0xF64E, 0x9BEA, 0xF64F, 0x9BEB, 0xF650, 0x9BEC, 0xF651, 0x9BED, 0xF652, 0x9BEE, 0xF653, 0x9BEF, + 0xF654, 0x9BF0, 0xF655, 0x9BF1, 0xF656, 0x9BF2, 0xF657, 0x9BF3, 0xF658, 0x9BF4, 0xF659, 0x9BF5, 0xF65A, 0x9BF6, 0xF65B, 0x9BF7, + 0xF65C, 0x9BF8, 0xF65D, 0x9BF9, 0xF65E, 0x9BFA, 0xF65F, 0x9BFB, 0xF660, 0x9BFC, 0xF661, 0x9BFD, 0xF662, 0x9BFE, 0xF663, 0x9BFF, + 0xF664, 0x9C00, 0xF665, 0x9C01, 0xF666, 0x9C02, 0xF667, 0x9C03, 0xF668, 0x9C04, 0xF669, 0x9C05, 0xF66A, 0x9C06, 0xF66B, 0x9C07, + 0xF66C, 0x9C08, 0xF66D, 0x9C09, 0xF66E, 0x9C0A, 0xF66F, 0x9C0B, 0xF670, 0x9C0C, 0xF671, 0x9C0D, 0xF672, 0x9C0E, 0xF673, 0x9C0F, + 0xF674, 0x9C10, 0xF675, 0x9C11, 0xF676, 0x9C12, 0xF677, 0x9C13, 0xF678, 0x9C14, 0xF679, 0x9C15, 0xF67A, 0x9C16, 0xF67B, 0x9C17, + 0xF67C, 0x9C18, 0xF67D, 0x9C19, 0xF67E, 0x9C1A, 0xF680, 0x9C1B, 0xF681, 0x9C1C, 0xF682, 0x9C1D, 0xF683, 0x9C1E, 0xF684, 0x9C1F, + 0xF685, 0x9C20, 0xF686, 0x9C21, 0xF687, 0x9C22, 0xF688, 0x9C23, 0xF689, 0x9C24, 0xF68A, 0x9C25, 0xF68B, 0x9C26, 0xF68C, 0x9C27, + 0xF68D, 0x9C28, 0xF68E, 0x9C29, 0xF68F, 0x9C2A, 0xF690, 0x9C2B, 0xF691, 0x9C2C, 0xF692, 0x9C2D, 0xF693, 0x9C2E, 0xF694, 0x9C2F, + 0xF695, 0x9C30, 0xF696, 0x9C31, 0xF697, 0x9C32, 0xF698, 0x9C33, 0xF699, 0x9C34, 0xF69A, 0x9C35, 0xF69B, 0x9C36, 0xF69C, 0x9C37, + 0xF69D, 0x9C38, 0xF69E, 0x9C39, 0xF69F, 0x9C3A, 0xF6A0, 0x9C3B, 0xF6A1, 0x89E5, 0xF6A2, 0x89EB, 0xF6A3, 0x89EF, 0xF6A4, 0x8A3E, + 0xF6A5, 0x8B26, 0xF6A6, 0x9753, 0xF6A7, 0x96E9, 0xF6A8, 0x96F3, 0xF6A9, 0x96EF, 0xF6AA, 0x9706, 0xF6AB, 0x9701, 0xF6AC, 0x9708, + 0xF6AD, 0x970F, 0xF6AE, 0x970E, 0xF6AF, 0x972A, 0xF6B0, 0x972D, 0xF6B1, 0x9730, 0xF6B2, 0x973E, 0xF6B3, 0x9F80, 0xF6B4, 0x9F83, + 0xF6B5, 0x9F85, 0xF6B6, 0x9F86, 0xF6B7, 0x9F87, 0xF6B8, 0x9F88, 0xF6B9, 0x9F89, 0xF6BA, 0x9F8A, 0xF6BB, 0x9F8C, 0xF6BC, 0x9EFE, + 0xF6BD, 0x9F0B, 0xF6BE, 0x9F0D, 0xF6BF, 0x96B9, 0xF6C0, 0x96BC, 0xF6C1, 0x96BD, 0xF6C2, 0x96CE, 0xF6C3, 0x96D2, 0xF6C4, 0x77BF, + 0xF6C5, 0x96E0, 0xF6C6, 0x928E, 0xF6C7, 0x92AE, 0xF6C8, 0x92C8, 0xF6C9, 0x933E, 0xF6CA, 0x936A, 0xF6CB, 0x93CA, 0xF6CC, 0x938F, + 0xF6CD, 0x943E, 0xF6CE, 0x946B, 0xF6CF, 0x9C7F, 0xF6D0, 0x9C82, 0xF6D1, 0x9C85, 0xF6D2, 0x9C86, 0xF6D3, 0x9C87, 0xF6D4, 0x9C88, + 0xF6D5, 0x7A23, 0xF6D6, 0x9C8B, 0xF6D7, 0x9C8E, 0xF6D8, 0x9C90, 0xF6D9, 0x9C91, 0xF6DA, 0x9C92, 0xF6DB, 0x9C94, 0xF6DC, 0x9C95, + 0xF6DD, 0x9C9A, 0xF6DE, 0x9C9B, 0xF6DF, 0x9C9E, 0xF6E0, 0x9C9F, 0xF6E1, 0x9CA0, 0xF6E2, 0x9CA1, 0xF6E3, 0x9CA2, 0xF6E4, 0x9CA3, + 0xF6E5, 0x9CA5, 0xF6E6, 0x9CA6, 0xF6E7, 0x9CA7, 0xF6E8, 0x9CA8, 0xF6E9, 0x9CA9, 0xF6EA, 0x9CAB, 0xF6EB, 0x9CAD, 0xF6EC, 0x9CAE, + 0xF6ED, 0x9CB0, 0xF6EE, 0x9CB1, 0xF6EF, 0x9CB2, 0xF6F0, 0x9CB3, 0xF6F1, 0x9CB4, 0xF6F2, 0x9CB5, 0xF6F3, 0x9CB6, 0xF6F4, 0x9CB7, + 0xF6F5, 0x9CBA, 0xF6F6, 0x9CBB, 0xF6F7, 0x9CBC, 0xF6F8, 0x9CBD, 0xF6F9, 0x9CC4, 0xF6FA, 0x9CC5, 0xF6FB, 0x9CC6, 0xF6FC, 0x9CC7, + 0xF6FD, 0x9CCA, 0xF6FE, 0x9CCB, 0xF740, 0x9C3C, 0xF741, 0x9C3D, 0xF742, 0x9C3E, 0xF743, 0x9C3F, 0xF744, 0x9C40, 0xF745, 0x9C41, + 0xF746, 0x9C42, 0xF747, 0x9C43, 0xF748, 0x9C44, 0xF749, 0x9C45, 0xF74A, 0x9C46, 0xF74B, 0x9C47, 0xF74C, 0x9C48, 0xF74D, 0x9C49, + 0xF74E, 0x9C4A, 0xF74F, 0x9C4B, 0xF750, 0x9C4C, 0xF751, 0x9C4D, 0xF752, 0x9C4E, 0xF753, 0x9C4F, 0xF754, 0x9C50, 0xF755, 0x9C51, + 0xF756, 0x9C52, 0xF757, 0x9C53, 0xF758, 0x9C54, 0xF759, 0x9C55, 0xF75A, 0x9C56, 0xF75B, 0x9C57, 0xF75C, 0x9C58, 0xF75D, 0x9C59, + 0xF75E, 0x9C5A, 0xF75F, 0x9C5B, 0xF760, 0x9C5C, 0xF761, 0x9C5D, 0xF762, 0x9C5E, 0xF763, 0x9C5F, 0xF764, 0x9C60, 0xF765, 0x9C61, + 0xF766, 0x9C62, 0xF767, 0x9C63, 0xF768, 0x9C64, 0xF769, 0x9C65, 0xF76A, 0x9C66, 0xF76B, 0x9C67, 0xF76C, 0x9C68, 0xF76D, 0x9C69, + 0xF76E, 0x9C6A, 0xF76F, 0x9C6B, 0xF770, 0x9C6C, 0xF771, 0x9C6D, 0xF772, 0x9C6E, 0xF773, 0x9C6F, 0xF774, 0x9C70, 0xF775, 0x9C71, + 0xF776, 0x9C72, 0xF777, 0x9C73, 0xF778, 0x9C74, 0xF779, 0x9C75, 0xF77A, 0x9C76, 0xF77B, 0x9C77, 0xF77C, 0x9C78, 0xF77D, 0x9C79, + 0xF77E, 0x9C7A, 0xF780, 0x9C7B, 0xF781, 0x9C7D, 0xF782, 0x9C7E, 0xF783, 0x9C80, 0xF784, 0x9C83, 0xF785, 0x9C84, 0xF786, 0x9C89, + 0xF787, 0x9C8A, 0xF788, 0x9C8C, 0xF789, 0x9C8F, 0xF78A, 0x9C93, 0xF78B, 0x9C96, 0xF78C, 0x9C97, 0xF78D, 0x9C98, 0xF78E, 0x9C99, + 0xF78F, 0x9C9D, 0xF790, 0x9CAA, 0xF791, 0x9CAC, 0xF792, 0x9CAF, 0xF793, 0x9CB9, 0xF794, 0x9CBE, 0xF795, 0x9CBF, 0xF796, 0x9CC0, + 0xF797, 0x9CC1, 0xF798, 0x9CC2, 0xF799, 0x9CC8, 0xF79A, 0x9CC9, 0xF79B, 0x9CD1, 0xF79C, 0x9CD2, 0xF79D, 0x9CDA, 0xF79E, 0x9CDB, + 0xF79F, 0x9CE0, 0xF7A0, 0x9CE1, 0xF7A1, 0x9CCC, 0xF7A2, 0x9CCD, 0xF7A3, 0x9CCE, 0xF7A4, 0x9CCF, 0xF7A5, 0x9CD0, 0xF7A6, 0x9CD3, + 0xF7A7, 0x9CD4, 0xF7A8, 0x9CD5, 0xF7A9, 0x9CD7, 0xF7AA, 0x9CD8, 0xF7AB, 0x9CD9, 0xF7AC, 0x9CDC, 0xF7AD, 0x9CDD, 0xF7AE, 0x9CDF, + 0xF7AF, 0x9CE2, 0xF7B0, 0x977C, 0xF7B1, 0x9785, 0xF7B2, 0x9791, 0xF7B3, 0x9792, 0xF7B4, 0x9794, 0xF7B5, 0x97AF, 0xF7B6, 0x97AB, + 0xF7B7, 0x97A3, 0xF7B8, 0x97B2, 0xF7B9, 0x97B4, 0xF7BA, 0x9AB1, 0xF7BB, 0x9AB0, 0xF7BC, 0x9AB7, 0xF7BD, 0x9E58, 0xF7BE, 0x9AB6, + 0xF7BF, 0x9ABA, 0xF7C0, 0x9ABC, 0xF7C1, 0x9AC1, 0xF7C2, 0x9AC0, 0xF7C3, 0x9AC5, 0xF7C4, 0x9AC2, 0xF7C5, 0x9ACB, 0xF7C6, 0x9ACC, + 0xF7C7, 0x9AD1, 0xF7C8, 0x9B45, 0xF7C9, 0x9B43, 0xF7CA, 0x9B47, 0xF7CB, 0x9B49, 0xF7CC, 0x9B48, 0xF7CD, 0x9B4D, 0xF7CE, 0x9B51, + 0xF7CF, 0x98E8, 0xF7D0, 0x990D, 0xF7D1, 0x992E, 0xF7D2, 0x9955, 0xF7D3, 0x9954, 0xF7D4, 0x9ADF, 0xF7D5, 0x9AE1, 0xF7D6, 0x9AE6, + 0xF7D7, 0x9AEF, 0xF7D8, 0x9AEB, 0xF7D9, 0x9AFB, 0xF7DA, 0x9AED, 0xF7DB, 0x9AF9, 0xF7DC, 0x9B08, 0xF7DD, 0x9B0F, 0xF7DE, 0x9B13, + 0xF7DF, 0x9B1F, 0xF7E0, 0x9B23, 0xF7E1, 0x9EBD, 0xF7E2, 0x9EBE, 0xF7E3, 0x7E3B, 0xF7E4, 0x9E82, 0xF7E5, 0x9E87, 0xF7E6, 0x9E88, + 0xF7E7, 0x9E8B, 0xF7E8, 0x9E92, 0xF7E9, 0x93D6, 0xF7EA, 0x9E9D, 0xF7EB, 0x9E9F, 0xF7EC, 0x9EDB, 0xF7ED, 0x9EDC, 0xF7EE, 0x9EDD, + 0xF7EF, 0x9EE0, 0xF7F0, 0x9EDF, 0xF7F1, 0x9EE2, 0xF7F2, 0x9EE9, 0xF7F3, 0x9EE7, 0xF7F4, 0x9EE5, 0xF7F5, 0x9EEA, 0xF7F6, 0x9EEF, + 0xF7F7, 0x9F22, 0xF7F8, 0x9F2C, 0xF7F9, 0x9F2F, 0xF7FA, 0x9F39, 0xF7FB, 0x9F37, 0xF7FC, 0x9F3D, 0xF7FD, 0x9F3E, 0xF7FE, 0x9F44, + 0xF840, 0x9CE3, 0xF841, 0x9CE4, 0xF842, 0x9CE5, 0xF843, 0x9CE6, 0xF844, 0x9CE7, 0xF845, 0x9CE8, 0xF846, 0x9CE9, 0xF847, 0x9CEA, + 0xF848, 0x9CEB, 0xF849, 0x9CEC, 0xF84A, 0x9CED, 0xF84B, 0x9CEE, 0xF84C, 0x9CEF, 0xF84D, 0x9CF0, 0xF84E, 0x9CF1, 0xF84F, 0x9CF2, + 0xF850, 0x9CF3, 0xF851, 0x9CF4, 0xF852, 0x9CF5, 0xF853, 0x9CF6, 0xF854, 0x9CF7, 0xF855, 0x9CF8, 0xF856, 0x9CF9, 0xF857, 0x9CFA, + 0xF858, 0x9CFB, 0xF859, 0x9CFC, 0xF85A, 0x9CFD, 0xF85B, 0x9CFE, 0xF85C, 0x9CFF, 0xF85D, 0x9D00, 0xF85E, 0x9D01, 0xF85F, 0x9D02, + 0xF860, 0x9D03, 0xF861, 0x9D04, 0xF862, 0x9D05, 0xF863, 0x9D06, 0xF864, 0x9D07, 0xF865, 0x9D08, 0xF866, 0x9D09, 0xF867, 0x9D0A, + 0xF868, 0x9D0B, 0xF869, 0x9D0C, 0xF86A, 0x9D0D, 0xF86B, 0x9D0E, 0xF86C, 0x9D0F, 0xF86D, 0x9D10, 0xF86E, 0x9D11, 0xF86F, 0x9D12, + 0xF870, 0x9D13, 0xF871, 0x9D14, 0xF872, 0x9D15, 0xF873, 0x9D16, 0xF874, 0x9D17, 0xF875, 0x9D18, 0xF876, 0x9D19, 0xF877, 0x9D1A, + 0xF878, 0x9D1B, 0xF879, 0x9D1C, 0xF87A, 0x9D1D, 0xF87B, 0x9D1E, 0xF87C, 0x9D1F, 0xF87D, 0x9D20, 0xF87E, 0x9D21, 0xF880, 0x9D22, + 0xF881, 0x9D23, 0xF882, 0x9D24, 0xF883, 0x9D25, 0xF884, 0x9D26, 0xF885, 0x9D27, 0xF886, 0x9D28, 0xF887, 0x9D29, 0xF888, 0x9D2A, + 0xF889, 0x9D2B, 0xF88A, 0x9D2C, 0xF88B, 0x9D2D, 0xF88C, 0x9D2E, 0xF88D, 0x9D2F, 0xF88E, 0x9D30, 0xF88F, 0x9D31, 0xF890, 0x9D32, + 0xF891, 0x9D33, 0xF892, 0x9D34, 0xF893, 0x9D35, 0xF894, 0x9D36, 0xF895, 0x9D37, 0xF896, 0x9D38, 0xF897, 0x9D39, 0xF898, 0x9D3A, + 0xF899, 0x9D3B, 0xF89A, 0x9D3C, 0xF89B, 0x9D3D, 0xF89C, 0x9D3E, 0xF89D, 0x9D3F, 0xF89E, 0x9D40, 0xF89F, 0x9D41, 0xF8A0, 0x9D42, + 0xF940, 0x9D43, 0xF941, 0x9D44, 0xF942, 0x9D45, 0xF943, 0x9D46, 0xF944, 0x9D47, 0xF945, 0x9D48, 0xF946, 0x9D49, 0xF947, 0x9D4A, + 0xF948, 0x9D4B, 0xF949, 0x9D4C, 0xF94A, 0x9D4D, 0xF94B, 0x9D4E, 0xF94C, 0x9D4F, 0xF94D, 0x9D50, 0xF94E, 0x9D51, 0xF94F, 0x9D52, + 0xF950, 0x9D53, 0xF951, 0x9D54, 0xF952, 0x9D55, 0xF953, 0x9D56, 0xF954, 0x9D57, 0xF955, 0x9D58, 0xF956, 0x9D59, 0xF957, 0x9D5A, + 0xF958, 0x9D5B, 0xF959, 0x9D5C, 0xF95A, 0x9D5D, 0xF95B, 0x9D5E, 0xF95C, 0x9D5F, 0xF95D, 0x9D60, 0xF95E, 0x9D61, 0xF95F, 0x9D62, + 0xF960, 0x9D63, 0xF961, 0x9D64, 0xF962, 0x9D65, 0xF963, 0x9D66, 0xF964, 0x9D67, 0xF965, 0x9D68, 0xF966, 0x9D69, 0xF967, 0x9D6A, + 0xF968, 0x9D6B, 0xF969, 0x9D6C, 0xF96A, 0x9D6D, 0xF96B, 0x9D6E, 0xF96C, 0x9D6F, 0xF96D, 0x9D70, 0xF96E, 0x9D71, 0xF96F, 0x9D72, + 0xF970, 0x9D73, 0xF971, 0x9D74, 0xF972, 0x9D75, 0xF973, 0x9D76, 0xF974, 0x9D77, 0xF975, 0x9D78, 0xF976, 0x9D79, 0xF977, 0x9D7A, + 0xF978, 0x9D7B, 0xF979, 0x9D7C, 0xF97A, 0x9D7D, 0xF97B, 0x9D7E, 0xF97C, 0x9D7F, 0xF97D, 0x9D80, 0xF97E, 0x9D81, 0xF980, 0x9D82, + 0xF981, 0x9D83, 0xF982, 0x9D84, 0xF983, 0x9D85, 0xF984, 0x9D86, 0xF985, 0x9D87, 0xF986, 0x9D88, 0xF987, 0x9D89, 0xF988, 0x9D8A, + 0xF989, 0x9D8B, 0xF98A, 0x9D8C, 0xF98B, 0x9D8D, 0xF98C, 0x9D8E, 0xF98D, 0x9D8F, 0xF98E, 0x9D90, 0xF98F, 0x9D91, 0xF990, 0x9D92, + 0xF991, 0x9D93, 0xF992, 0x9D94, 0xF993, 0x9D95, 0xF994, 0x9D96, 0xF995, 0x9D97, 0xF996, 0x9D98, 0xF997, 0x9D99, 0xF998, 0x9D9A, + 0xF999, 0x9D9B, 0xF99A, 0x9D9C, 0xF99B, 0x9D9D, 0xF99C, 0x9D9E, 0xF99D, 0x9D9F, 0xF99E, 0x9DA0, 0xF99F, 0x9DA1, 0xF9A0, 0x9DA2, + 0xFA40, 0x9DA3, 0xFA41, 0x9DA4, 0xFA42, 0x9DA5, 0xFA43, 0x9DA6, 0xFA44, 0x9DA7, 0xFA45, 0x9DA8, 0xFA46, 0x9DA9, 0xFA47, 0x9DAA, + 0xFA48, 0x9DAB, 0xFA49, 0x9DAC, 0xFA4A, 0x9DAD, 0xFA4B, 0x9DAE, 0xFA4C, 0x9DAF, 0xFA4D, 0x9DB0, 0xFA4E, 0x9DB1, 0xFA4F, 0x9DB2, + 0xFA50, 0x9DB3, 0xFA51, 0x9DB4, 0xFA52, 0x9DB5, 0xFA53, 0x9DB6, 0xFA54, 0x9DB7, 0xFA55, 0x9DB8, 0xFA56, 0x9DB9, 0xFA57, 0x9DBA, + 0xFA58, 0x9DBB, 0xFA59, 0x9DBC, 0xFA5A, 0x9DBD, 0xFA5B, 0x9DBE, 0xFA5C, 0x9DBF, 0xFA5D, 0x9DC0, 0xFA5E, 0x9DC1, 0xFA5F, 0x9DC2, + 0xFA60, 0x9DC3, 0xFA61, 0x9DC4, 0xFA62, 0x9DC5, 0xFA63, 0x9DC6, 0xFA64, 0x9DC7, 0xFA65, 0x9DC8, 0xFA66, 0x9DC9, 0xFA67, 0x9DCA, + 0xFA68, 0x9DCB, 0xFA69, 0x9DCC, 0xFA6A, 0x9DCD, 0xFA6B, 0x9DCE, 0xFA6C, 0x9DCF, 0xFA6D, 0x9DD0, 0xFA6E, 0x9DD1, 0xFA6F, 0x9DD2, + 0xFA70, 0x9DD3, 0xFA71, 0x9DD4, 0xFA72, 0x9DD5, 0xFA73, 0x9DD6, 0xFA74, 0x9DD7, 0xFA75, 0x9DD8, 0xFA76, 0x9DD9, 0xFA77, 0x9DDA, + 0xFA78, 0x9DDB, 0xFA79, 0x9DDC, 0xFA7A, 0x9DDD, 0xFA7B, 0x9DDE, 0xFA7C, 0x9DDF, 0xFA7D, 0x9DE0, 0xFA7E, 0x9DE1, 0xFA80, 0x9DE2, + 0xFA81, 0x9DE3, 0xFA82, 0x9DE4, 0xFA83, 0x9DE5, 0xFA84, 0x9DE6, 0xFA85, 0x9DE7, 0xFA86, 0x9DE8, 0xFA87, 0x9DE9, 0xFA88, 0x9DEA, + 0xFA89, 0x9DEB, 0xFA8A, 0x9DEC, 0xFA8B, 0x9DED, 0xFA8C, 0x9DEE, 0xFA8D, 0x9DEF, 0xFA8E, 0x9DF0, 0xFA8F, 0x9DF1, 0xFA90, 0x9DF2, + 0xFA91, 0x9DF3, 0xFA92, 0x9DF4, 0xFA93, 0x9DF5, 0xFA94, 0x9DF6, 0xFA95, 0x9DF7, 0xFA96, 0x9DF8, 0xFA97, 0x9DF9, 0xFA98, 0x9DFA, + 0xFA99, 0x9DFB, 0xFA9A, 0x9DFC, 0xFA9B, 0x9DFD, 0xFA9C, 0x9DFE, 0xFA9D, 0x9DFF, 0xFA9E, 0x9E00, 0xFA9F, 0x9E01, 0xFAA0, 0x9E02, + 0xFB40, 0x9E03, 0xFB41, 0x9E04, 0xFB42, 0x9E05, 0xFB43, 0x9E06, 0xFB44, 0x9E07, 0xFB45, 0x9E08, 0xFB46, 0x9E09, 0xFB47, 0x9E0A, + 0xFB48, 0x9E0B, 0xFB49, 0x9E0C, 0xFB4A, 0x9E0D, 0xFB4B, 0x9E0E, 0xFB4C, 0x9E0F, 0xFB4D, 0x9E10, 0xFB4E, 0x9E11, 0xFB4F, 0x9E12, + 0xFB50, 0x9E13, 0xFB51, 0x9E14, 0xFB52, 0x9E15, 0xFB53, 0x9E16, 0xFB54, 0x9E17, 0xFB55, 0x9E18, 0xFB56, 0x9E19, 0xFB57, 0x9E1A, + 0xFB58, 0x9E1B, 0xFB59, 0x9E1C, 0xFB5A, 0x9E1D, 0xFB5B, 0x9E1E, 0xFB5C, 0x9E24, 0xFB5D, 0x9E27, 0xFB5E, 0x9E2E, 0xFB5F, 0x9E30, + 0xFB60, 0x9E34, 0xFB61, 0x9E3B, 0xFB62, 0x9E3C, 0xFB63, 0x9E40, 0xFB64, 0x9E4D, 0xFB65, 0x9E50, 0xFB66, 0x9E52, 0xFB67, 0x9E53, + 0xFB68, 0x9E54, 0xFB69, 0x9E56, 0xFB6A, 0x9E59, 0xFB6B, 0x9E5D, 0xFB6C, 0x9E5F, 0xFB6D, 0x9E60, 0xFB6E, 0x9E61, 0xFB6F, 0x9E62, + 0xFB70, 0x9E65, 0xFB71, 0x9E6E, 0xFB72, 0x9E6F, 0xFB73, 0x9E72, 0xFB74, 0x9E74, 0xFB75, 0x9E75, 0xFB76, 0x9E76, 0xFB77, 0x9E77, + 0xFB78, 0x9E78, 0xFB79, 0x9E79, 0xFB7A, 0x9E7A, 0xFB7B, 0x9E7B, 0xFB7C, 0x9E7C, 0xFB7D, 0x9E7D, 0xFB7E, 0x9E80, 0xFB80, 0x9E81, + 0xFB81, 0x9E83, 0xFB82, 0x9E84, 0xFB83, 0x9E85, 0xFB84, 0x9E86, 0xFB85, 0x9E89, 0xFB86, 0x9E8A, 0xFB87, 0x9E8C, 0xFB88, 0x9E8D, + 0xFB89, 0x9E8E, 0xFB8A, 0x9E8F, 0xFB8B, 0x9E90, 0xFB8C, 0x9E91, 0xFB8D, 0x9E94, 0xFB8E, 0x9E95, 0xFB8F, 0x9E96, 0xFB90, 0x9E97, + 0xFB91, 0x9E98, 0xFB92, 0x9E99, 0xFB93, 0x9E9A, 0xFB94, 0x9E9B, 0xFB95, 0x9E9C, 0xFB96, 0x9E9E, 0xFB97, 0x9EA0, 0xFB98, 0x9EA1, + 0xFB99, 0x9EA2, 0xFB9A, 0x9EA3, 0xFB9B, 0x9EA4, 0xFB9C, 0x9EA5, 0xFB9D, 0x9EA7, 0xFB9E, 0x9EA8, 0xFB9F, 0x9EA9, 0xFBA0, 0x9EAA, + 0xFC40, 0x9EAB, 0xFC41, 0x9EAC, 0xFC42, 0x9EAD, 0xFC43, 0x9EAE, 0xFC44, 0x9EAF, 0xFC45, 0x9EB0, 0xFC46, 0x9EB1, 0xFC47, 0x9EB2, + 0xFC48, 0x9EB3, 0xFC49, 0x9EB5, 0xFC4A, 0x9EB6, 0xFC4B, 0x9EB7, 0xFC4C, 0x9EB9, 0xFC4D, 0x9EBA, 0xFC4E, 0x9EBC, 0xFC4F, 0x9EBF, + 0xFC50, 0x9EC0, 0xFC51, 0x9EC1, 0xFC52, 0x9EC2, 0xFC53, 0x9EC3, 0xFC54, 0x9EC5, 0xFC55, 0x9EC6, 0xFC56, 0x9EC7, 0xFC57, 0x9EC8, + 0xFC58, 0x9ECA, 0xFC59, 0x9ECB, 0xFC5A, 0x9ECC, 0xFC5B, 0x9ED0, 0xFC5C, 0x9ED2, 0xFC5D, 0x9ED3, 0xFC5E, 0x9ED5, 0xFC5F, 0x9ED6, + 0xFC60, 0x9ED7, 0xFC61, 0x9ED9, 0xFC62, 0x9EDA, 0xFC63, 0x9EDE, 0xFC64, 0x9EE1, 0xFC65, 0x9EE3, 0xFC66, 0x9EE4, 0xFC67, 0x9EE6, + 0xFC68, 0x9EE8, 0xFC69, 0x9EEB, 0xFC6A, 0x9EEC, 0xFC6B, 0x9EED, 0xFC6C, 0x9EEE, 0xFC6D, 0x9EF0, 0xFC6E, 0x9EF1, 0xFC6F, 0x9EF2, + 0xFC70, 0x9EF3, 0xFC71, 0x9EF4, 0xFC72, 0x9EF5, 0xFC73, 0x9EF6, 0xFC74, 0x9EF7, 0xFC75, 0x9EF8, 0xFC76, 0x9EFA, 0xFC77, 0x9EFD, + 0xFC78, 0x9EFF, 0xFC79, 0x9F00, 0xFC7A, 0x9F01, 0xFC7B, 0x9F02, 0xFC7C, 0x9F03, 0xFC7D, 0x9F04, 0xFC7E, 0x9F05, 0xFC80, 0x9F06, + 0xFC81, 0x9F07, 0xFC82, 0x9F08, 0xFC83, 0x9F09, 0xFC84, 0x9F0A, 0xFC85, 0x9F0C, 0xFC86, 0x9F0F, 0xFC87, 0x9F11, 0xFC88, 0x9F12, + 0xFC89, 0x9F14, 0xFC8A, 0x9F15, 0xFC8B, 0x9F16, 0xFC8C, 0x9F18, 0xFC8D, 0x9F1A, 0xFC8E, 0x9F1B, 0xFC8F, 0x9F1C, 0xFC90, 0x9F1D, + 0xFC91, 0x9F1E, 0xFC92, 0x9F1F, 0xFC93, 0x9F21, 0xFC94, 0x9F23, 0xFC95, 0x9F24, 0xFC96, 0x9F25, 0xFC97, 0x9F26, 0xFC98, 0x9F27, + 0xFC99, 0x9F28, 0xFC9A, 0x9F29, 0xFC9B, 0x9F2A, 0xFC9C, 0x9F2B, 0xFC9D, 0x9F2D, 0xFC9E, 0x9F2E, 0xFC9F, 0x9F30, 0xFCA0, 0x9F31, + 0xFD40, 0x9F32, 0xFD41, 0x9F33, 0xFD42, 0x9F34, 0xFD43, 0x9F35, 0xFD44, 0x9F36, 0xFD45, 0x9F38, 0xFD46, 0x9F3A, 0xFD47, 0x9F3C, + 0xFD48, 0x9F3F, 0xFD49, 0x9F40, 0xFD4A, 0x9F41, 0xFD4B, 0x9F42, 0xFD4C, 0x9F43, 0xFD4D, 0x9F45, 0xFD4E, 0x9F46, 0xFD4F, 0x9F47, + 0xFD50, 0x9F48, 0xFD51, 0x9F49, 0xFD52, 0x9F4A, 0xFD53, 0x9F4B, 0xFD54, 0x9F4C, 0xFD55, 0x9F4D, 0xFD56, 0x9F4E, 0xFD57, 0x9F4F, + 0xFD58, 0x9F52, 0xFD59, 0x9F53, 0xFD5A, 0x9F54, 0xFD5B, 0x9F55, 0xFD5C, 0x9F56, 0xFD5D, 0x9F57, 0xFD5E, 0x9F58, 0xFD5F, 0x9F59, + 0xFD60, 0x9F5A, 0xFD61, 0x9F5B, 0xFD62, 0x9F5C, 0xFD63, 0x9F5D, 0xFD64, 0x9F5E, 0xFD65, 0x9F5F, 0xFD66, 0x9F60, 0xFD67, 0x9F61, + 0xFD68, 0x9F62, 0xFD69, 0x9F63, 0xFD6A, 0x9F64, 0xFD6B, 0x9F65, 0xFD6C, 0x9F66, 0xFD6D, 0x9F67, 0xFD6E, 0x9F68, 0xFD6F, 0x9F69, + 0xFD70, 0x9F6A, 0xFD71, 0x9F6B, 0xFD72, 0x9F6C, 0xFD73, 0x9F6D, 0xFD74, 0x9F6E, 0xFD75, 0x9F6F, 0xFD76, 0x9F70, 0xFD77, 0x9F71, + 0xFD78, 0x9F72, 0xFD79, 0x9F73, 0xFD7A, 0x9F74, 0xFD7B, 0x9F75, 0xFD7C, 0x9F76, 0xFD7D, 0x9F77, 0xFD7E, 0x9F78, 0xFD80, 0x9F79, + 0xFD81, 0x9F7A, 0xFD82, 0x9F7B, 0xFD83, 0x9F7C, 0xFD84, 0x9F7D, 0xFD85, 0x9F7E, 0xFD86, 0x9F81, 0xFD87, 0x9F82, 0xFD88, 0x9F8D, + 0xFD89, 0x9F8E, 0xFD8A, 0x9F8F, 0xFD8B, 0x9F90, 0xFD8C, 0x9F91, 0xFD8D, 0x9F92, 0xFD8E, 0x9F93, 0xFD8F, 0x9F94, 0xFD90, 0x9F95, + 0xFD91, 0x9F96, 0xFD92, 0x9F97, 0xFD93, 0x9F98, 0xFD94, 0x9F9C, 0xFD95, 0x9F9D, 0xFD96, 0x9F9E, 0xFD97, 0x9FA1, 0xFD98, 0x9FA2, + 0xFD99, 0x9FA3, 0xFD9A, 0x9FA4, 0xFD9B, 0x9FA5, 0xFD9C, 0xF92C, 0xFD9D, 0xF979, 0xFD9E, 0xF995, 0xFD9F, 0xF9E7, 0xFDA0, 0xF9F1, + 0xFE40, 0xFA0C, 0xFE41, 0xFA0D, 0xFE42, 0xFA0E, 0xFE43, 0xFA0F, 0xFE44, 0xFA11, 0xFE45, 0xFA13, 0xFE46, 0xFA14, 0xFE47, 0xFA18, + 0xFE48, 0xFA1F, 0xFE49, 0xFA20, 0xFE4A, 0xFA21, 0xFE4B, 0xFA23, 0xFE4C, 0xFA24, 0xFE4D, 0xFA27, 0xFE4E, 0xFA28, 0xFE4F, 0xFA29, + 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 949 || FF_CODE_PAGE == 0 /* Korean */ +static const WCHAR uni2oem949[] = { /* Unicode --> Korean pairs */ + 0x00A1, 0xA2AE, 0x00A4, 0xA2B4, 0x00A7, 0xA1D7, 0x00A8, 0xA1A7, 0x00AA, 0xA8A3, 0x00AD, 0xA1A9, 0x00AE, 0xA2E7, 0x00B0, 0xA1C6, + 0x00B1, 0xA1BE, 0x00B2, 0xA9F7, 0x00B3, 0xA9F8, 0x00B4, 0xA2A5, 0x00B6, 0xA2D2, 0x00B7, 0xA1A4, 0x00B8, 0xA2AC, 0x00B9, 0xA9F6, + 0x00BA, 0xA8AC, 0x00BC, 0xA8F9, 0x00BD, 0xA8F6, 0x00BE, 0xA8FA, 0x00BF, 0xA2AF, 0x00C6, 0xA8A1, 0x00D0, 0xA8A2, 0x00D7, 0xA1BF, + 0x00D8, 0xA8AA, 0x00DE, 0xA8AD, 0x00DF, 0xA9AC, 0x00E6, 0xA9A1, 0x00F0, 0xA9A3, 0x00F7, 0xA1C0, 0x00F8, 0xA9AA, 0x00FE, 0xA9AD, + 0x0111, 0xA9A2, 0x0126, 0xA8A4, 0x0127, 0xA9A4, 0x0131, 0xA9A5, 0x0132, 0xA8A6, 0x0133, 0xA9A6, 0x0138, 0xA9A7, 0x013F, 0xA8A8, + 0x0140, 0xA9A8, 0x0141, 0xA8A9, 0x0142, 0xA9A9, 0x0149, 0xA9B0, 0x014A, 0xA8AF, 0x014B, 0xA9AF, 0x0152, 0xA8AB, 0x0153, 0xA9AB, + 0x0166, 0xA8AE, 0x0167, 0xA9AE, 0x02C7, 0xA2A7, 0x02D0, 0xA2B0, 0x02D8, 0xA2A8, 0x02D9, 0xA2AB, 0x02DA, 0xA2AA, 0x02DB, 0xA2AD, + 0x02DD, 0xA2A9, 0x0391, 0xA5C1, 0x0392, 0xA5C2, 0x0393, 0xA5C3, 0x0394, 0xA5C4, 0x0395, 0xA5C5, 0x0396, 0xA5C6, 0x0397, 0xA5C7, + 0x0398, 0xA5C8, 0x0399, 0xA5C9, 0x039A, 0xA5CA, 0x039B, 0xA5CB, 0x039C, 0xA5CC, 0x039D, 0xA5CD, 0x039E, 0xA5CE, 0x039F, 0xA5CF, + 0x03A0, 0xA5D0, 0x03A1, 0xA5D1, 0x03A3, 0xA5D2, 0x03A4, 0xA5D3, 0x03A5, 0xA5D4, 0x03A6, 0xA5D5, 0x03A7, 0xA5D6, 0x03A8, 0xA5D7, + 0x03A9, 0xA5D8, 0x03B1, 0xA5E1, 0x03B2, 0xA5E2, 0x03B3, 0xA5E3, 0x03B4, 0xA5E4, 0x03B5, 0xA5E5, 0x03B6, 0xA5E6, 0x03B7, 0xA5E7, + 0x03B8, 0xA5E8, 0x03B9, 0xA5E9, 0x03BA, 0xA5EA, 0x03BB, 0xA5EB, 0x03BC, 0xA5EC, 0x03BD, 0xA5ED, 0x03BE, 0xA5EE, 0x03BF, 0xA5EF, + 0x03C0, 0xA5F0, 0x03C1, 0xA5F1, 0x03C3, 0xA5F2, 0x03C4, 0xA5F3, 0x03C5, 0xA5F4, 0x03C6, 0xA5F5, 0x03C7, 0xA5F6, 0x03C8, 0xA5F7, + 0x03C9, 0xA5F8, 0x0401, 0xACA7, 0x0410, 0xACA1, 0x0411, 0xACA2, 0x0412, 0xACA3, 0x0413, 0xACA4, 0x0414, 0xACA5, 0x0415, 0xACA6, + 0x0416, 0xACA8, 0x0417, 0xACA9, 0x0418, 0xACAA, 0x0419, 0xACAB, 0x041A, 0xACAC, 0x041B, 0xACAD, 0x041C, 0xACAE, 0x041D, 0xACAF, + 0x041E, 0xACB0, 0x041F, 0xACB1, 0x0420, 0xACB2, 0x0421, 0xACB3, 0x0422, 0xACB4, 0x0423, 0xACB5, 0x0424, 0xACB6, 0x0425, 0xACB7, + 0x0426, 0xACB8, 0x0427, 0xACB9, 0x0428, 0xACBA, 0x0429, 0xACBB, 0x042A, 0xACBC, 0x042B, 0xACBD, 0x042C, 0xACBE, 0x042D, 0xACBF, + 0x042E, 0xACC0, 0x042F, 0xACC1, 0x0430, 0xACD1, 0x0431, 0xACD2, 0x0432, 0xACD3, 0x0433, 0xACD4, 0x0434, 0xACD5, 0x0435, 0xACD6, + 0x0436, 0xACD8, 0x0437, 0xACD9, 0x0438, 0xACDA, 0x0439, 0xACDB, 0x043A, 0xACDC, 0x043B, 0xACDD, 0x043C, 0xACDE, 0x043D, 0xACDF, + 0x043E, 0xACE0, 0x043F, 0xACE1, 0x0440, 0xACE2, 0x0441, 0xACE3, 0x0442, 0xACE4, 0x0443, 0xACE5, 0x0444, 0xACE6, 0x0445, 0xACE7, + 0x0446, 0xACE8, 0x0447, 0xACE9, 0x0448, 0xACEA, 0x0449, 0xACEB, 0x044A, 0xACEC, 0x044B, 0xACED, 0x044C, 0xACEE, 0x044D, 0xACEF, + 0x044E, 0xACF0, 0x044F, 0xACF1, 0x0451, 0xACD7, 0x2015, 0xA1AA, 0x2018, 0xA1AE, 0x2019, 0xA1AF, 0x201C, 0xA1B0, 0x201D, 0xA1B1, + 0x2020, 0xA2D3, 0x2021, 0xA2D4, 0x2025, 0xA1A5, 0x2026, 0xA1A6, 0x2030, 0xA2B6, 0x2032, 0xA1C7, 0x2033, 0xA1C8, 0x203B, 0xA1D8, + 0x2074, 0xA9F9, 0x207F, 0xA9FA, 0x2081, 0xA9FB, 0x2082, 0xA9FC, 0x2083, 0xA9FD, 0x2084, 0xA9FE, 0x20AC, 0xA2E6, 0x2103, 0xA1C9, + 0x2109, 0xA2B5, 0x2113, 0xA7A4, 0x2116, 0xA2E0, 0x2121, 0xA2E5, 0x2122, 0xA2E2, 0x2126, 0xA7D9, 0x212B, 0xA1CA, 0x2153, 0xA8F7, + 0x2154, 0xA8F8, 0x215B, 0xA8FB, 0x215C, 0xA8FC, 0x215D, 0xA8FD, 0x215E, 0xA8FE, 0x2160, 0xA5B0, 0x2161, 0xA5B1, 0x2162, 0xA5B2, + 0x2163, 0xA5B3, 0x2164, 0xA5B4, 0x2165, 0xA5B5, 0x2166, 0xA5B6, 0x2167, 0xA5B7, 0x2168, 0xA5B8, 0x2169, 0xA5B9, 0x2170, 0xA5A1, + 0x2171, 0xA5A2, 0x2172, 0xA5A3, 0x2173, 0xA5A4, 0x2174, 0xA5A5, 0x2175, 0xA5A6, 0x2176, 0xA5A7, 0x2177, 0xA5A8, 0x2178, 0xA5A9, + 0x2179, 0xA5AA, 0x2190, 0xA1E7, 0x2191, 0xA1E8, 0x2192, 0xA1E6, 0x2193, 0xA1E9, 0x2194, 0xA1EA, 0x2195, 0xA2D5, 0x2196, 0xA2D8, + 0x2197, 0xA2D6, 0x2198, 0xA2D9, 0x2199, 0xA2D7, 0x21D2, 0xA2A1, 0x21D4, 0xA2A2, 0x2200, 0xA2A3, 0x2202, 0xA1D3, 0x2203, 0xA2A4, + 0x2207, 0xA1D4, 0x2208, 0xA1F4, 0x220B, 0xA1F5, 0x220F, 0xA2B3, 0x2211, 0xA2B2, 0x221A, 0xA1EE, 0x221D, 0xA1F0, 0x221E, 0xA1C4, + 0x2220, 0xA1D0, 0x2225, 0xA1AB, 0x2227, 0xA1FC, 0x2228, 0xA1FD, 0x2229, 0xA1FB, 0x222A, 0xA1FA, 0x222B, 0xA1F2, 0x222C, 0xA1F3, + 0x222E, 0xA2B1, 0x2234, 0xA1C5, 0x2235, 0xA1F1, 0x223C, 0xA1AD, 0x223D, 0xA1EF, 0x2252, 0xA1D6, 0x2260, 0xA1C1, 0x2261, 0xA1D5, + 0x2264, 0xA1C2, 0x2265, 0xA1C3, 0x226A, 0xA1EC, 0x226B, 0xA1ED, 0x2282, 0xA1F8, 0x2283, 0xA1F9, 0x2286, 0xA1F6, 0x2287, 0xA1F7, + 0x2299, 0xA2C1, 0x22A5, 0xA1D1, 0x2312, 0xA1D2, 0x2460, 0xA8E7, 0x2461, 0xA8E8, 0x2462, 0xA8E9, 0x2463, 0xA8EA, 0x2464, 0xA8EB, + 0x2465, 0xA8EC, 0x2466, 0xA8ED, 0x2467, 0xA8EE, 0x2468, 0xA8EF, 0x2469, 0xA8F0, 0x246A, 0xA8F1, 0x246B, 0xA8F2, 0x246C, 0xA8F3, + 0x246D, 0xA8F4, 0x246E, 0xA8F5, 0x2474, 0xA9E7, 0x2475, 0xA9E8, 0x2476, 0xA9E9, 0x2477, 0xA9EA, 0x2478, 0xA9EB, 0x2479, 0xA9EC, + 0x247A, 0xA9ED, 0x247B, 0xA9EE, 0x247C, 0xA9EF, 0x247D, 0xA9F0, 0x247E, 0xA9F1, 0x247F, 0xA9F2, 0x2480, 0xA9F3, 0x2481, 0xA9F4, + 0x2482, 0xA9F5, 0x249C, 0xA9CD, 0x249D, 0xA9CE, 0x249E, 0xA9CF, 0x249F, 0xA9D0, 0x24A0, 0xA9D1, 0x24A1, 0xA9D2, 0x24A2, 0xA9D3, + 0x24A3, 0xA9D4, 0x24A4, 0xA9D5, 0x24A5, 0xA9D6, 0x24A6, 0xA9D7, 0x24A7, 0xA9D8, 0x24A8, 0xA9D9, 0x24A9, 0xA9DA, 0x24AA, 0xA9DB, + 0x24AB, 0xA9DC, 0x24AC, 0xA9DD, 0x24AD, 0xA9DE, 0x24AE, 0xA9DF, 0x24AF, 0xA9E0, 0x24B0, 0xA9E1, 0x24B1, 0xA9E2, 0x24B2, 0xA9E3, + 0x24B3, 0xA9E4, 0x24B4, 0xA9E5, 0x24B5, 0xA9E6, 0x24D0, 0xA8CD, 0x24D1, 0xA8CE, 0x24D2, 0xA8CF, 0x24D3, 0xA8D0, 0x24D4, 0xA8D1, + 0x24D5, 0xA8D2, 0x24D6, 0xA8D3, 0x24D7, 0xA8D4, 0x24D8, 0xA8D5, 0x24D9, 0xA8D6, 0x24DA, 0xA8D7, 0x24DB, 0xA8D8, 0x24DC, 0xA8D9, + 0x24DD, 0xA8DA, 0x24DE, 0xA8DB, 0x24DF, 0xA8DC, 0x24E0, 0xA8DD, 0x24E1, 0xA8DE, 0x24E2, 0xA8DF, 0x24E3, 0xA8E0, 0x24E4, 0xA8E1, + 0x24E5, 0xA8E2, 0x24E6, 0xA8E3, 0x24E7, 0xA8E4, 0x24E8, 0xA8E5, 0x24E9, 0xA8E6, 0x2500, 0xA6A1, 0x2501, 0xA6AC, 0x2502, 0xA6A2, + 0x2503, 0xA6AD, 0x250C, 0xA6A3, 0x250D, 0xA6C8, 0x250E, 0xA6C7, 0x250F, 0xA6AE, 0x2510, 0xA6A4, 0x2511, 0xA6C2, 0x2512, 0xA6C1, + 0x2513, 0xA6AF, 0x2514, 0xA6A6, 0x2515, 0xA6C6, 0x2516, 0xA6C5, 0x2517, 0xA6B1, 0x2518, 0xA6A5, 0x2519, 0xA6C4, 0x251A, 0xA6C3, + 0x251B, 0xA6B0, 0x251C, 0xA6A7, 0x251D, 0xA6BC, 0x251E, 0xA6C9, 0x251F, 0xA6CA, 0x2520, 0xA6B7, 0x2521, 0xA6CB, 0x2522, 0xA6CC, + 0x2523, 0xA6B2, 0x2524, 0xA6A9, 0x2525, 0xA6BE, 0x2526, 0xA6CD, 0x2527, 0xA6CE, 0x2528, 0xA6B9, 0x2529, 0xA6CF, 0x252A, 0xA6D0, + 0x252B, 0xA6B4, 0x252C, 0xA6A8, 0x252D, 0xA6D1, 0x252E, 0xA6D2, 0x252F, 0xA6B8, 0x2530, 0xA6BD, 0x2531, 0xA6D3, 0x2532, 0xA6D4, + 0x2533, 0xA6B3, 0x2534, 0xA6AA, 0x2535, 0xA6D5, 0x2536, 0xA6D6, 0x2537, 0xA6BA, 0x2538, 0xA6BF, 0x2539, 0xA6D7, 0x253A, 0xA6D8, + 0x253B, 0xA6B5, 0x253C, 0xA6AB, 0x253D, 0xA6D9, 0x253E, 0xA6DA, 0x253F, 0xA6BB, 0x2540, 0xA6DB, 0x2541, 0xA6DC, 0x2542, 0xA6C0, + 0x2543, 0xA6DD, 0x2544, 0xA6DE, 0x2545, 0xA6DF, 0x2546, 0xA6E0, 0x2547, 0xA6E1, 0x2548, 0xA6E2, 0x2549, 0xA6E3, 0x254A, 0xA6E4, + 0x254B, 0xA6B6, 0x2592, 0xA2C6, 0x25A0, 0xA1E1, 0x25A1, 0xA1E0, 0x25A3, 0xA2C3, 0x25A4, 0xA2C7, 0x25A5, 0xA2C8, 0x25A6, 0xA2CB, + 0x25A7, 0xA2CA, 0x25A8, 0xA2C9, 0x25A9, 0xA2CC, 0x25B2, 0xA1E3, 0x25B3, 0xA1E2, 0x25B6, 0xA2BA, 0x25B7, 0xA2B9, 0x25BC, 0xA1E5, + 0x25BD, 0xA1E4, 0x25C0, 0xA2B8, 0x25C1, 0xA2B7, 0x25C6, 0xA1DF, 0x25C7, 0xA1DE, 0x25C8, 0xA2C2, 0x25CB, 0xA1DB, 0x25CE, 0xA1DD, + 0x25CF, 0xA1DC, 0x25D0, 0xA2C4, 0x25D1, 0xA2C5, 0x2605, 0xA1DA, 0x2606, 0xA1D9, 0x260E, 0xA2CF, 0x260F, 0xA2CE, 0x261C, 0xA2D0, + 0x261E, 0xA2D1, 0x2640, 0xA1CF, 0x2642, 0xA1CE, 0x2660, 0xA2BC, 0x2661, 0xA2BD, 0x2663, 0xA2C0, 0x2664, 0xA2BB, 0x2665, 0xA2BE, + 0x2667, 0xA2BF, 0x2668, 0xA2CD, 0x2669, 0xA2DB, 0x266A, 0xA2DC, 0x266C, 0xA2DD, 0x266D, 0xA2DA, 0x3000, 0xA1A1, 0x3001, 0xA1A2, + 0x3002, 0xA1A3, 0x3003, 0xA1A8, 0x3008, 0xA1B4, 0x3009, 0xA1B5, 0x300A, 0xA1B6, 0x300B, 0xA1B7, 0x300C, 0xA1B8, 0x300D, 0xA1B9, + 0x300E, 0xA1BA, 0x300F, 0xA1BB, 0x3010, 0xA1BC, 0x3011, 0xA1BD, 0x3013, 0xA1EB, 0x3014, 0xA1B2, 0x3015, 0xA1B3, 0x3041, 0xAAA1, + 0x3042, 0xAAA2, 0x3043, 0xAAA3, 0x3044, 0xAAA4, 0x3045, 0xAAA5, 0x3046, 0xAAA6, 0x3047, 0xAAA7, 0x3048, 0xAAA8, 0x3049, 0xAAA9, + 0x304A, 0xAAAA, 0x304B, 0xAAAB, 0x304C, 0xAAAC, 0x304D, 0xAAAD, 0x304E, 0xAAAE, 0x304F, 0xAAAF, 0x3050, 0xAAB0, 0x3051, 0xAAB1, + 0x3052, 0xAAB2, 0x3053, 0xAAB3, 0x3054, 0xAAB4, 0x3055, 0xAAB5, 0x3056, 0xAAB6, 0x3057, 0xAAB7, 0x3058, 0xAAB8, 0x3059, 0xAAB9, + 0x305A, 0xAABA, 0x305B, 0xAABB, 0x305C, 0xAABC, 0x305D, 0xAABD, 0x305E, 0xAABE, 0x305F, 0xAABF, 0x3060, 0xAAC0, 0x3061, 0xAAC1, + 0x3062, 0xAAC2, 0x3063, 0xAAC3, 0x3064, 0xAAC4, 0x3065, 0xAAC5, 0x3066, 0xAAC6, 0x3067, 0xAAC7, 0x3068, 0xAAC8, 0x3069, 0xAAC9, + 0x306A, 0xAACA, 0x306B, 0xAACB, 0x306C, 0xAACC, 0x306D, 0xAACD, 0x306E, 0xAACE, 0x306F, 0xAACF, 0x3070, 0xAAD0, 0x3071, 0xAAD1, + 0x3072, 0xAAD2, 0x3073, 0xAAD3, 0x3074, 0xAAD4, 0x3075, 0xAAD5, 0x3076, 0xAAD6, 0x3077, 0xAAD7, 0x3078, 0xAAD8, 0x3079, 0xAAD9, + 0x307A, 0xAADA, 0x307B, 0xAADB, 0x307C, 0xAADC, 0x307D, 0xAADD, 0x307E, 0xAADE, 0x307F, 0xAADF, 0x3080, 0xAAE0, 0x3081, 0xAAE1, + 0x3082, 0xAAE2, 0x3083, 0xAAE3, 0x3084, 0xAAE4, 0x3085, 0xAAE5, 0x3086, 0xAAE6, 0x3087, 0xAAE7, 0x3088, 0xAAE8, 0x3089, 0xAAE9, + 0x308A, 0xAAEA, 0x308B, 0xAAEB, 0x308C, 0xAAEC, 0x308D, 0xAAED, 0x308E, 0xAAEE, 0x308F, 0xAAEF, 0x3090, 0xAAF0, 0x3091, 0xAAF1, + 0x3092, 0xAAF2, 0x3093, 0xAAF3, 0x30A1, 0xABA1, 0x30A2, 0xABA2, 0x30A3, 0xABA3, 0x30A4, 0xABA4, 0x30A5, 0xABA5, 0x30A6, 0xABA6, + 0x30A7, 0xABA7, 0x30A8, 0xABA8, 0x30A9, 0xABA9, 0x30AA, 0xABAA, 0x30AB, 0xABAB, 0x30AC, 0xABAC, 0x30AD, 0xABAD, 0x30AE, 0xABAE, + 0x30AF, 0xABAF, 0x30B0, 0xABB0, 0x30B1, 0xABB1, 0x30B2, 0xABB2, 0x30B3, 0xABB3, 0x30B4, 0xABB4, 0x30B5, 0xABB5, 0x30B6, 0xABB6, + 0x30B7, 0xABB7, 0x30B8, 0xABB8, 0x30B9, 0xABB9, 0x30BA, 0xABBA, 0x30BB, 0xABBB, 0x30BC, 0xABBC, 0x30BD, 0xABBD, 0x30BE, 0xABBE, + 0x30BF, 0xABBF, 0x30C0, 0xABC0, 0x30C1, 0xABC1, 0x30C2, 0xABC2, 0x30C3, 0xABC3, 0x30C4, 0xABC4, 0x30C5, 0xABC5, 0x30C6, 0xABC6, + 0x30C7, 0xABC7, 0x30C8, 0xABC8, 0x30C9, 0xABC9, 0x30CA, 0xABCA, 0x30CB, 0xABCB, 0x30CC, 0xABCC, 0x30CD, 0xABCD, 0x30CE, 0xABCE, + 0x30CF, 0xABCF, 0x30D0, 0xABD0, 0x30D1, 0xABD1, 0x30D2, 0xABD2, 0x30D3, 0xABD3, 0x30D4, 0xABD4, 0x30D5, 0xABD5, 0x30D6, 0xABD6, + 0x30D7, 0xABD7, 0x30D8, 0xABD8, 0x30D9, 0xABD9, 0x30DA, 0xABDA, 0x30DB, 0xABDB, 0x30DC, 0xABDC, 0x30DD, 0xABDD, 0x30DE, 0xABDE, + 0x30DF, 0xABDF, 0x30E0, 0xABE0, 0x30E1, 0xABE1, 0x30E2, 0xABE2, 0x30E3, 0xABE3, 0x30E4, 0xABE4, 0x30E5, 0xABE5, 0x30E6, 0xABE6, + 0x30E7, 0xABE7, 0x30E8, 0xABE8, 0x30E9, 0xABE9, 0x30EA, 0xABEA, 0x30EB, 0xABEB, 0x30EC, 0xABEC, 0x30ED, 0xABED, 0x30EE, 0xABEE, + 0x30EF, 0xABEF, 0x30F0, 0xABF0, 0x30F1, 0xABF1, 0x30F2, 0xABF2, 0x30F3, 0xABF3, 0x30F4, 0xABF4, 0x30F5, 0xABF5, 0x30F6, 0xABF6, + 0x3131, 0xA4A1, 0x3132, 0xA4A2, 0x3133, 0xA4A3, 0x3134, 0xA4A4, 0x3135, 0xA4A5, 0x3136, 0xA4A6, 0x3137, 0xA4A7, 0x3138, 0xA4A8, + 0x3139, 0xA4A9, 0x313A, 0xA4AA, 0x313B, 0xA4AB, 0x313C, 0xA4AC, 0x313D, 0xA4AD, 0x313E, 0xA4AE, 0x313F, 0xA4AF, 0x3140, 0xA4B0, + 0x3141, 0xA4B1, 0x3142, 0xA4B2, 0x3143, 0xA4B3, 0x3144, 0xA4B4, 0x3145, 0xA4B5, 0x3146, 0xA4B6, 0x3147, 0xA4B7, 0x3148, 0xA4B8, + 0x3149, 0xA4B9, 0x314A, 0xA4BA, 0x314B, 0xA4BB, 0x314C, 0xA4BC, 0x314D, 0xA4BD, 0x314E, 0xA4BE, 0x314F, 0xA4BF, 0x3150, 0xA4C0, + 0x3151, 0xA4C1, 0x3152, 0xA4C2, 0x3153, 0xA4C3, 0x3154, 0xA4C4, 0x3155, 0xA4C5, 0x3156, 0xA4C6, 0x3157, 0xA4C7, 0x3158, 0xA4C8, + 0x3159, 0xA4C9, 0x315A, 0xA4CA, 0x315B, 0xA4CB, 0x315C, 0xA4CC, 0x315D, 0xA4CD, 0x315E, 0xA4CE, 0x315F, 0xA4CF, 0x3160, 0xA4D0, + 0x3161, 0xA4D1, 0x3162, 0xA4D2, 0x3163, 0xA4D3, 0x3164, 0xA4D4, 0x3165, 0xA4D5, 0x3166, 0xA4D6, 0x3167, 0xA4D7, 0x3168, 0xA4D8, + 0x3169, 0xA4D9, 0x316A, 0xA4DA, 0x316B, 0xA4DB, 0x316C, 0xA4DC, 0x316D, 0xA4DD, 0x316E, 0xA4DE, 0x316F, 0xA4DF, 0x3170, 0xA4E0, + 0x3171, 0xA4E1, 0x3172, 0xA4E2, 0x3173, 0xA4E3, 0x3174, 0xA4E4, 0x3175, 0xA4E5, 0x3176, 0xA4E6, 0x3177, 0xA4E7, 0x3178, 0xA4E8, + 0x3179, 0xA4E9, 0x317A, 0xA4EA, 0x317B, 0xA4EB, 0x317C, 0xA4EC, 0x317D, 0xA4ED, 0x317E, 0xA4EE, 0x317F, 0xA4EF, 0x3180, 0xA4F0, + 0x3181, 0xA4F1, 0x3182, 0xA4F2, 0x3183, 0xA4F3, 0x3184, 0xA4F4, 0x3185, 0xA4F5, 0x3186, 0xA4F6, 0x3187, 0xA4F7, 0x3188, 0xA4F8, + 0x3189, 0xA4F9, 0x318A, 0xA4FA, 0x318B, 0xA4FB, 0x318C, 0xA4FC, 0x318D, 0xA4FD, 0x318E, 0xA4FE, 0x3200, 0xA9B1, 0x3201, 0xA9B2, + 0x3202, 0xA9B3, 0x3203, 0xA9B4, 0x3204, 0xA9B5, 0x3205, 0xA9B6, 0x3206, 0xA9B7, 0x3207, 0xA9B8, 0x3208, 0xA9B9, 0x3209, 0xA9BA, + 0x320A, 0xA9BB, 0x320B, 0xA9BC, 0x320C, 0xA9BD, 0x320D, 0xA9BE, 0x320E, 0xA9BF, 0x320F, 0xA9C0, 0x3210, 0xA9C1, 0x3211, 0xA9C2, + 0x3212, 0xA9C3, 0x3213, 0xA9C4, 0x3214, 0xA9C5, 0x3215, 0xA9C6, 0x3216, 0xA9C7, 0x3217, 0xA9C8, 0x3218, 0xA9C9, 0x3219, 0xA9CA, + 0x321A, 0xA9CB, 0x321B, 0xA9CC, 0x321C, 0xA2DF, 0x3260, 0xA8B1, 0x3261, 0xA8B2, 0x3262, 0xA8B3, 0x3263, 0xA8B4, 0x3264, 0xA8B5, + 0x3265, 0xA8B6, 0x3266, 0xA8B7, 0x3267, 0xA8B8, 0x3268, 0xA8B9, 0x3269, 0xA8BA, 0x326A, 0xA8BB, 0x326B, 0xA8BC, 0x326C, 0xA8BD, + 0x326D, 0xA8BE, 0x326E, 0xA8BF, 0x326F, 0xA8C0, 0x3270, 0xA8C1, 0x3271, 0xA8C2, 0x3272, 0xA8C3, 0x3273, 0xA8C4, 0x3274, 0xA8C5, + 0x3275, 0xA8C6, 0x3276, 0xA8C7, 0x3277, 0xA8C8, 0x3278, 0xA8C9, 0x3279, 0xA8CA, 0x327A, 0xA8CB, 0x327B, 0xA8CC, 0x327F, 0xA2DE, + 0x3380, 0xA7C9, 0x3381, 0xA7CA, 0x3382, 0xA7CB, 0x3383, 0xA7CC, 0x3384, 0xA7CD, 0x3388, 0xA7BA, 0x3389, 0xA7BB, 0x338A, 0xA7DC, + 0x338B, 0xA7DD, 0x338C, 0xA7DE, 0x338D, 0xA7B6, 0x338E, 0xA7B7, 0x338F, 0xA7B8, 0x3390, 0xA7D4, 0x3391, 0xA7D5, 0x3392, 0xA7D6, + 0x3393, 0xA7D7, 0x3394, 0xA7D8, 0x3395, 0xA7A1, 0x3396, 0xA7A2, 0x3397, 0xA7A3, 0x3398, 0xA7A5, 0x3399, 0xA7AB, 0x339A, 0xA7AC, + 0x339B, 0xA7AD, 0x339C, 0xA7AE, 0x339D, 0xA7AF, 0x339E, 0xA7B0, 0x339F, 0xA7B1, 0x33A0, 0xA7B2, 0x33A1, 0xA7B3, 0x33A2, 0xA7B4, + 0x33A3, 0xA7A7, 0x33A4, 0xA7A8, 0x33A5, 0xA7A9, 0x33A6, 0xA7AA, 0x33A7, 0xA7BD, 0x33A8, 0xA7BE, 0x33A9, 0xA7E5, 0x33AA, 0xA7E6, + 0x33AB, 0xA7E7, 0x33AC, 0xA7E8, 0x33AD, 0xA7E1, 0x33AE, 0xA7E2, 0x33AF, 0xA7E3, 0x33B0, 0xA7BF, 0x33B1, 0xA7C0, 0x33B2, 0xA7C1, + 0x33B3, 0xA7C2, 0x33B4, 0xA7C3, 0x33B5, 0xA7C4, 0x33B6, 0xA7C5, 0x33B7, 0xA7C6, 0x33B8, 0xA7C7, 0x33B9, 0xA7C8, 0x33BA, 0xA7CE, + 0x33BB, 0xA7CF, 0x33BC, 0xA7D0, 0x33BD, 0xA7D1, 0x33BE, 0xA7D2, 0x33BF, 0xA7D3, 0x33C0, 0xA7DA, 0x33C1, 0xA7DB, 0x33C2, 0xA2E3, + 0x33C3, 0xA7EC, 0x33C4, 0xA7A6, 0x33C5, 0xA7E0, 0x33C6, 0xA7EF, 0x33C7, 0xA2E1, 0x33C8, 0xA7BC, 0x33C9, 0xA7ED, 0x33CA, 0xA7B5, + 0x33CF, 0xA7B9, 0x33D0, 0xA7EA, 0x33D3, 0xA7EB, 0x33D6, 0xA7DF, 0x33D8, 0xA2E4, 0x33DB, 0xA7E4, 0x33DC, 0xA7EE, 0x33DD, 0xA7E9, + 0x4E00, 0xECE9, 0x4E01, 0xEFCB, 0x4E03, 0xF6D2, 0x4E07, 0xD8B2, 0x4E08, 0xEDDB, 0x4E09, 0xDFB2, 0x4E0A, 0xDFBE, 0x4E0B, 0xF9BB, + 0x4E0D, 0xDCF4, 0x4E11, 0xF5E4, 0x4E14, 0xF3A6, 0x4E15, 0xDDE0, 0x4E16, 0xE1A6, 0x4E18, 0xCEF8, 0x4E19, 0xDCB0, 0x4E1E, 0xE3AA, + 0x4E2D, 0xF1E9, 0x4E32, 0xCDFA, 0x4E38, 0xFCAF, 0x4E39, 0xD3A1, 0x4E3B, 0xF1AB, 0x4E42, 0xE7D1, 0x4E43, 0xD2AC, 0x4E45, 0xCEF9, + 0x4E4B, 0xF1FD, 0x4E4D, 0xDEBF, 0x4E4E, 0xFBBA, 0x4E4F, 0xF9B9, 0x4E56, 0xCED2, 0x4E58, 0xE3AB, 0x4E59, 0xEBE0, 0x4E5D, 0xCEFA, + 0x4E5E, 0xCBF7, 0x4E5F, 0xE5A5, 0x4E6B, 0xCAE1, 0x4E6D, 0xD4CC, 0x4E73, 0xEAE1, 0x4E76, 0xDCE3, 0x4E77, 0xDFAD, 0x4E7E, 0xCBEB, + 0x4E82, 0xD5AF, 0x4E86, 0xD6F5, 0x4E88, 0xE5F8, 0x4E8B, 0xDEC0, 0x4E8C, 0xECA3, 0x4E8E, 0xE9CD, 0x4E90, 0xEAA7, 0x4E91, 0xE9F6, + 0x4E92, 0xFBBB, 0x4E94, 0xE7E9, 0x4E95, 0xEFCC, 0x4E98, 0xD0E6, 0x4E9B, 0xDEC1, 0x4E9E, 0xE4AC, 0x4EA1, 0xD8CC, 0x4EA2, 0xF9F1, + 0x4EA4, 0xCEDF, 0x4EA5, 0xFAA4, 0x4EA6, 0xE6B2, 0x4EA8, 0xFAFB, 0x4EAB, 0xFABD, 0x4EAC, 0xCCC8, 0x4EAD, 0xEFCD, 0x4EAE, 0xD5D5, + 0x4EB6, 0xD3A2, 0x4EBA, 0xECD1, 0x4EC0, 0xE4A7, 0x4EC1, 0xECD2, 0x4EC4, 0xF6B1, 0x4EC7, 0xCEFB, 0x4ECA, 0xD0D1, 0x4ECB, 0xCBBF, + 0x4ECD, 0xEDA4, 0x4ED4, 0xEDA8, 0x4ED5, 0xDEC2, 0x4ED6, 0xF6E2, 0x4ED7, 0xEDDC, 0x4ED8, 0xDCF5, 0x4ED9, 0xE0B9, 0x4EDD, 0xD4CE, + 0x4EDF, 0xF4B5, 0x4EE3, 0xD3DB, 0x4EE4, 0xD6B5, 0x4EE5, 0xECA4, 0x4EF0, 0xE4E6, 0x4EF2, 0xF1EA, 0x4EF6, 0xCBEC, 0x4EF7, 0xCBC0, + 0x4EFB, 0xECF2, 0x4F01, 0xD0EA, 0x4F09, 0xF9F2, 0x4F0A, 0xECA5, 0x4F0B, 0xD0DF, 0x4F0D, 0xE7EA, 0x4F0E, 0xD0EB, 0x4F0F, 0xDCD1, + 0x4F10, 0xDBE9, 0x4F11, 0xFDCC, 0x4F2F, 0xDBD7, 0x4F34, 0xDAE1, 0x4F36, 0xD6B6, 0x4F38, 0xE3DF, 0x4F3A, 0xDEC3, 0x4F3C, 0xDEC4, + 0x4F3D, 0xCAA1, 0x4F43, 0xEEEC, 0x4F46, 0xD3A3, 0x4F47, 0xEEB7, 0x4F48, 0xF8CF, 0x4F4D, 0xEAC8, 0x4F4E, 0xEEB8, 0x4F4F, 0xF1AC, + 0x4F50, 0xF1A5, 0x4F51, 0xE9CE, 0x4F55, 0xF9BC, 0x4F59, 0xE5F9, 0x4F5A, 0xECEA, 0x4F5B, 0xDDD6, 0x4F5C, 0xEDC2, 0x4F69, 0xF8A5, + 0x4F6F, 0xE5BA, 0x4F70, 0xDBD8, 0x4F73, 0xCAA2, 0x4F76, 0xD1CD, 0x4F7A, 0xEEED, 0x4F7E, 0xECEB, 0x4F7F, 0xDEC5, 0x4F81, 0xE3E0, + 0x4F83, 0xCAC9, 0x4F84, 0xF2E9, 0x4F86, 0xD5CE, 0x4F88, 0xF6B6, 0x4F8A, 0xCEC2, 0x4F8B, 0xD6C7, 0x4F8D, 0xE3B4, 0x4F8F, 0xF1AD, + 0x4F91, 0xEAE2, 0x4F96, 0xD7C2, 0x4F98, 0xF3A7, 0x4F9B, 0xCDEA, 0x4F9D, 0xEBEE, 0x4FAE, 0xD9B2, 0x4FAF, 0xFDA5, 0x4FB5, 0xF6D5, + 0x4FB6, 0xD5E2, 0x4FBF, 0xF8B5, 0x4FC2, 0xCCF5, 0x4FC3, 0xF5B5, 0x4FC4, 0xE4AD, 0x4FC9, 0xE7EB, 0x4FCA, 0xF1D5, 0x4FCE, 0xF0BB, + 0x4FD1, 0xE9B5, 0x4FD3, 0xCCC9, 0x4FD4, 0xFAD5, 0x4FD7, 0xE1D4, 0x4FDA, 0xD7D6, 0x4FDD, 0xDCC1, 0x4FDF, 0xDEC6, 0x4FE0, 0xFAEF, + 0x4FE1, 0xE3E1, 0x4FEE, 0xE1F3, 0x4FEF, 0xDCF6, 0x4FF1, 0xCEFC, 0x4FF3, 0xDBC4, 0x4FF5, 0xF8F1, 0x4FF8, 0xDCE4, 0x4FFA, 0xE5EF, + 0x5002, 0xDCB1, 0x5006, 0xD5D6, 0x5009, 0xF3DA, 0x500B, 0xCBC1, 0x500D, 0xDBC3, 0x5011, 0xD9FA, 0x5012, 0xD3EE, 0x5016, 0xFAB8, + 0x5019, 0xFDA6, 0x501A, 0xEBEF, 0x501C, 0xF4A6, 0x501E, 0xCCCA, 0x501F, 0xF3A8, 0x5021, 0xF3DB, 0x5023, 0xDBA7, 0x5024, 0xF6B7, + 0x5026, 0xCFE6, 0x5027, 0xF0F2, 0x5028, 0xCBDA, 0x502A, 0xE7D2, 0x502B, 0xD7C3, 0x502C, 0xF6F0, 0x502D, 0xE8DE, 0x503B, 0xE5A6, + 0x5043, 0xE5E7, 0x5047, 0xCAA3, 0x5048, 0xCCA7, 0x5049, 0xEAC9, 0x504F, 0xF8B6, 0x5055, 0xFAA5, 0x505A, 0xF1AE, 0x505C, 0xEFCE, + 0x5065, 0xCBED, 0x5074, 0xF6B0, 0x5075, 0xEFCF, 0x5076, 0xE9CF, 0x5078, 0xF7DE, 0x5080, 0xCED3, 0x5085, 0xDCF7, 0x508D, 0xDBA8, + 0x5091, 0xCBF8, 0x5098, 0xDFA1, 0x5099, 0xDDE1, 0x50AC, 0xF5CA, 0x50AD, 0xE9B6, 0x50B2, 0xE7EC, 0x50B3, 0xEEEE, 0x50B5, 0xF3F0, + 0x50B7, 0xDFBF, 0x50BE, 0xCCCB, 0x50C5, 0xD0C1, 0x50C9, 0xF4D2, 0x50CA, 0xE0BA, 0x50CF, 0xDFC0, 0x50D1, 0xCEE0, 0x50D5, 0xDCD2, + 0x50D6, 0xFDEA, 0x50DA, 0xD6F6, 0x50DE, 0xEACA, 0x50E5, 0xE8E9, 0x50E7, 0xE3AC, 0x50ED, 0xF3D0, 0x50F9, 0xCAA4, 0x50FB, 0xDBF8, + 0x50FF, 0xDEC7, 0x5100, 0xEBF0, 0x5101, 0xF1D6, 0x5104, 0xE5E2, 0x5106, 0xCCCC, 0x5109, 0xCBFB, 0x5112, 0xEAE3, 0x511F, 0xDFC1, + 0x5121, 0xD6ED, 0x512A, 0xE9D0, 0x5132, 0xEEB9, 0x5137, 0xD5E3, 0x513A, 0xD1D3, 0x513C, 0xE5F0, 0x5140, 0xE8B4, 0x5141, 0xEBC3, + 0x5143, 0xEAAA, 0x5144, 0xFAFC, 0x5145, 0xF5F6, 0x5146, 0xF0BC, 0x5147, 0xFDD4, 0x5148, 0xE0BB, 0x5149, 0xCEC3, 0x514B, 0xD0BA, + 0x514C, 0xF7BA, 0x514D, 0xD8F3, 0x514E, 0xF7CD, 0x5152, 0xE4AE, 0x515C, 0xD4DF, 0x5162, 0xD0E7, 0x5165, 0xECFD, 0x5167, 0xD2AE, + 0x5168, 0xEEEF, 0x5169, 0xD5D7, 0x516A, 0xEAE4, 0x516B, 0xF8A2, 0x516C, 0xCDEB, 0x516D, 0xD7BF, 0x516E, 0xFBB1, 0x5171, 0xCDEC, + 0x5175, 0xDCB2, 0x5176, 0xD0EC, 0x5177, 0xCEFD, 0x5178, 0xEEF0, 0x517C, 0xCCC2, 0x5180, 0xD0ED, 0x5186, 0xE5F7, 0x518A, 0xF3FC, + 0x518D, 0xEEA2, 0x5192, 0xD9B3, 0x5195, 0xD8F4, 0x5197, 0xE9B7, 0x51A0, 0xCEAE, 0x51A5, 0xD9A2, 0x51AA, 0xD8F1, 0x51AC, 0xD4CF, + 0x51B6, 0xE5A7, 0x51B7, 0xD5D2, 0x51BD, 0xD6A9, 0x51C4, 0xF4A2, 0x51C6, 0xF1D7, 0x51C9, 0xD5D8, 0x51CB, 0xF0BD, 0x51CC, 0xD7D0, + 0x51CD, 0xD4D0, 0x51DC, 0xD7CF, 0x51DD, 0xEBEA, 0x51DE, 0xFDEB, 0x51E1, 0xDBED, 0x51F0, 0xFCC5, 0x51F1, 0xCBC2, 0x51F6, 0xFDD5, + 0x51F8, 0xF4C8, 0x51F9, 0xE8EA, 0x51FA, 0xF5F3, 0x51FD, 0xF9DE, 0x5200, 0xD3EF, 0x5203, 0xECD3, 0x5206, 0xDDC2, 0x5207, 0xEFB7, + 0x5208, 0xE7D4, 0x520A, 0xCACA, 0x520E, 0xD9FB, 0x5211, 0xFAFD, 0x5217, 0xD6AA, 0x521D, 0xF4F8, 0x5224, 0xF7F7, 0x5225, 0xDCAC, + 0x5229, 0xD7D7, 0x522A, 0xDFA2, 0x522E, 0xCEBE, 0x5230, 0xD3F0, 0x5236, 0xF0A4, 0x5237, 0xE1EC, 0x5238, 0xCFE7, 0x5239, 0xF3CB, + 0x523A, 0xEDA9, 0x523B, 0xCABE, 0x5243, 0xF4EF, 0x5247, 0xF6CE, 0x524A, 0xDEFB, 0x524B, 0xD0BB, 0x524C, 0xD5B7, 0x524D, 0xEEF1, + 0x5254, 0xF4A8, 0x5256, 0xDCF8, 0x525B, 0xCBA7, 0x525D, 0xDACE, 0x5261, 0xE0E6, 0x5269, 0xEDA5, 0x526A, 0xEEF2, 0x526F, 0xDCF9, + 0x5272, 0xF9DC, 0x5275, 0xF3DC, 0x527D, 0xF8F2, 0x527F, 0xF4F9, 0x5283, 0xFCF1, 0x5287, 0xD0BC, 0x5288, 0xDBF9, 0x5289, 0xD7B1, + 0x528D, 0xCBFC, 0x5291, 0xF0A5, 0x5292, 0xCBFD, 0x529B, 0xD5F4, 0x529F, 0xCDED, 0x52A0, 0xCAA5, 0x52A3, 0xD6AB, 0x52A4, 0xD0C2, + 0x52A9, 0xF0BE, 0x52AA, 0xD2BD, 0x52AB, 0xCCA4, 0x52BE, 0xFAB6, 0x52C1, 0xCCCD, 0x52C3, 0xDAFA, 0x52C5, 0xF6CF, 0x52C7, 0xE9B8, + 0x52C9, 0xD8F5, 0x52CD, 0xCCCE, 0x52D2, 0xD7CD, 0x52D5, 0xD4D1, 0x52D6, 0xE9ED, 0x52D8, 0xCAEB, 0x52D9, 0xD9E2, 0x52DB, 0xFDB2, + 0x52DD, 0xE3AD, 0x52DE, 0xD6CC, 0x52DF, 0xD9B4, 0x52E2, 0xE1A7, 0x52E3, 0xEED3, 0x52E4, 0xD0C3, 0x52F3, 0xFDB3, 0x52F5, 0xD5E4, + 0x52F8, 0xCFE8, 0x52FA, 0xEDC3, 0x52FB, 0xD0B2, 0x52FE, 0xCEFE, 0x52FF, 0xDAA8, 0x5305, 0xF8D0, 0x5308, 0xFDD6, 0x530D, 0xF8D1, + 0x530F, 0xF8D2, 0x5310, 0xDCD3, 0x5315, 0xDDE2, 0x5316, 0xFBF9, 0x5317, 0xDDC1, 0x5319, 0xE3B5, 0x5320, 0xEDDD, 0x5321, 0xCEC4, + 0x5323, 0xCBA1, 0x532A, 0xDDE3, 0x532F, 0xFCDD, 0x5339, 0xF9AF, 0x533F, 0xD2FB, 0x5340, 0xCFA1, 0x5341, 0xE4A8, 0x5343, 0xF4B6, + 0x5344, 0xECFE, 0x5347, 0xE3AE, 0x5348, 0xE7ED, 0x5349, 0xFDC1, 0x534A, 0xDAE2, 0x534D, 0xD8B3, 0x5351, 0xDDE4, 0x5352, 0xF0EF, + 0x5353, 0xF6F1, 0x5354, 0xFAF0, 0x5357, 0xD1F5, 0x535A, 0xDACF, 0x535C, 0xDCD4, 0x535E, 0xDCA6, 0x5360, 0xEFBF, 0x5366, 0xCECF, + 0x5368, 0xE0D9, 0x536F, 0xD9D6, 0x5370, 0xECD4, 0x5371, 0xEACB, 0x5374, 0xCABF, 0x5375, 0xD5B0, 0x5377, 0xCFE9, 0x537D, 0xF1ED, + 0x537F, 0xCCCF, 0x5384, 0xE4F8, 0x5393, 0xE4ED, 0x5398, 0xD7D8, 0x539A, 0xFDA7, 0x539F, 0xEAAB, 0x53A0, 0xF6B2, 0x53A5, 0xCFF0, + 0x53A6, 0xF9BD, 0x53AD, 0xE6F4, 0x53BB, 0xCBDB, 0x53C3, 0xF3D1, 0x53C8, 0xE9D1, 0x53C9, 0xF3A9, 0x53CA, 0xD0E0, 0x53CB, 0xE9D2, + 0x53CD, 0xDAE3, 0x53D4, 0xE2D2, 0x53D6, 0xF6A2, 0x53D7, 0xE1F4, 0x53DB, 0xDAE4, 0x53E1, 0xE7D5, 0x53E2, 0xF5BF, 0x53E3, 0xCFA2, + 0x53E4, 0xCDAF, 0x53E5, 0xCFA3, 0x53E9, 0xCDB0, 0x53EA, 0xF1FE, 0x53EB, 0xD0A3, 0x53EC, 0xE1AF, 0x53ED, 0xF8A3, 0x53EF, 0xCAA6, + 0x53F0, 0xF7BB, 0x53F1, 0xF2EA, 0x53F2, 0xDEC8, 0x53F3, 0xE9D3, 0x53F8, 0xDEC9, 0x5403, 0xFDDE, 0x5404, 0xCAC0, 0x5408, 0xF9EA, + 0x5409, 0xD1CE, 0x540A, 0xEED4, 0x540C, 0xD4D2, 0x540D, 0xD9A3, 0x540E, 0xFDA8, 0x540F, 0xD7D9, 0x5410, 0xF7CE, 0x5411, 0xFABE, + 0x541B, 0xCFD6, 0x541D, 0xD7F0, 0x541F, 0xEBE1, 0x5420, 0xF8C5, 0x5426, 0xDCFA, 0x5429, 0xDDC3, 0x542B, 0xF9DF, 0x5433, 0xE7EF, + 0x5438, 0xFDE5, 0x5439, 0xF6A3, 0x543B, 0xD9FC, 0x543C, 0xFDA9, 0x543E, 0xE7EE, 0x5442, 0xD5E5, 0x5448, 0xEFD0, 0x544A, 0xCDB1, + 0x5451, 0xF7A2, 0x5468, 0xF1B2, 0x546A, 0xF1B1, 0x5471, 0xCDB2, 0x5473, 0xDAAB, 0x5475, 0xCAA7, 0x547B, 0xE3E2, 0x547C, 0xFBBC, + 0x547D, 0xD9A4, 0x5480, 0xEEBA, 0x5486, 0xF8D3, 0x548C, 0xFBFA, 0x548E, 0xCFA4, 0x5490, 0xDCFB, 0x54A4, 0xF6E3, 0x54A8, 0xEDAA, + 0x54AB, 0xF2A1, 0x54AC, 0xCEE1, 0x54B3, 0xFAA6, 0x54B8, 0xF9E0, 0x54BD, 0xECD6, 0x54C0, 0xE4EE, 0x54C1, 0xF9A1, 0x54C4, 0xFBEF, + 0x54C8, 0xF9EB, 0x54C9, 0xEEA3, 0x54E1, 0xEAAC, 0x54E5, 0xCAA8, 0x54E8, 0xF4FA, 0x54ED, 0xCDD6, 0x54EE, 0xFCF6, 0x54F2, 0xF4C9, + 0x54FA, 0xF8D4, 0x5504, 0xF8A6, 0x5506, 0xDECA, 0x5507, 0xF2C6, 0x550E, 0xD7DA, 0x5510, 0xD3D0, 0x551C, 0xD8C5, 0x552F, 0xEAE6, + 0x5531, 0xF3DD, 0x5535, 0xE4DA, 0x553E, 0xF6E4, 0x5544, 0xF6F2, 0x5546, 0xDFC2, 0x554F, 0xD9FD, 0x5553, 0xCCF6, 0x5556, 0xD3BA, + 0x555E, 0xE4AF, 0x5563, 0xF9E1, 0x557C, 0xF0A6, 0x5580, 0xCBD3, 0x5584, 0xE0BC, 0x5586, 0xF4CA, 0x5587, 0xD4FA, 0x5589, 0xFDAA, + 0x558A, 0xF9E2, 0x5598, 0xF4B7, 0x5599, 0xFDC2, 0x559A, 0xFCB0, 0x559C, 0xFDEC, 0x559D, 0xCAE2, 0x55A7, 0xFDBD, 0x55A9, 0xEAE7, + 0x55AA, 0xDFC3, 0x55AB, 0xD1D2, 0x55AC, 0xCEE2, 0x55AE, 0xD3A4, 0x55C5, 0xFDAB, 0x55C7, 0xDFE0, 0x55D4, 0xF2C7, 0x55DA, 0xE7F0, + 0x55DC, 0xD0EE, 0x55DF, 0xF3AA, 0x55E3, 0xDECB, 0x55E4, 0xF6B8, 0x55FD, 0xE1F5, 0x55FE, 0xF1B3, 0x5606, 0xF7A3, 0x5609, 0xCAA9, + 0x5614, 0xCFA5, 0x5617, 0xDFC4, 0x562F, 0xE1B0, 0x5632, 0xF0BF, 0x5634, 0xF6A4, 0x5636, 0xE3B6, 0x5653, 0xFAC6, 0x5668, 0xD0EF, + 0x566B, 0xFDED, 0x5674, 0xDDC4, 0x5686, 0xFCF7, 0x56A5, 0xE6BF, 0x56AC, 0xDEAD, 0x56AE, 0xFABF, 0x56B4, 0xE5F1, 0x56BC, 0xEDC4, + 0x56CA, 0xD2A5, 0x56CD, 0xFDEE, 0x56D1, 0xF5B6, 0x56DA, 0xE1F6, 0x56DB, 0xDECC, 0x56DE, 0xFCDE, 0x56E0, 0xECD7, 0x56F0, 0xCDDD, + 0x56F9, 0xD6B7, 0x56FA, 0xCDB3, 0x5703, 0xF8D5, 0x5704, 0xE5D8, 0x5708, 0xCFEA, 0x570B, 0xCFD0, 0x570D, 0xEACC, 0x5712, 0xEAAE, + 0x5713, 0xEAAD, 0x5716, 0xD3F1, 0x5718, 0xD3A5, 0x571F, 0xF7CF, 0x5728, 0xEEA4, 0x572D, 0xD0A4, 0x5730, 0xF2A2, 0x573B, 0xD0F0, + 0x5740, 0xF2A3, 0x5742, 0xF7F8, 0x5747, 0xD0B3, 0x574A, 0xDBA9, 0x574D, 0xD3BB, 0x574E, 0xCAEC, 0x5750, 0xF1A6, 0x5751, 0xCBD5, + 0x5761, 0xF7E7, 0x5764, 0xCDDE, 0x5766, 0xF7A4, 0x576A, 0xF8C0, 0x576E, 0xD3DD, 0x5770, 0xCCD0, 0x5775, 0xCFA6, 0x577C, 0xF6F3, + 0x5782, 0xE1F7, 0x5788, 0xD3DC, 0x578B, 0xFAFE, 0x5793, 0xFAA7, 0x57A0, 0xEBD9, 0x57A2, 0xCFA7, 0x57A3, 0xEAAF, 0x57C3, 0xE4EF, + 0x57C7, 0xE9B9, 0x57C8, 0xF1D8, 0x57CB, 0xD8D8, 0x57CE, 0xE0F2, 0x57DF, 0xE6B4, 0x57E0, 0xDCFC, 0x57F0, 0xF3F1, 0x57F4, 0xE3D0, + 0x57F7, 0xF2FB, 0x57F9, 0xDBC6, 0x57FA, 0xD0F1, 0x57FC, 0xD0F2, 0x5800, 0xCFDC, 0x5802, 0xD3D1, 0x5805, 0xCCB1, 0x5806, 0xF7D8, + 0x5808, 0xCBA8, 0x5809, 0xEBBC, 0x580A, 0xE4BE, 0x581E, 0xF4DC, 0x5821, 0xDCC2, 0x5824, 0xF0A7, 0x5827, 0xE6C0, 0x582A, 0xCAED, + 0x582F, 0xE8EB, 0x5830, 0xE5E8, 0x5831, 0xDCC3, 0x5834, 0xEDDE, 0x5835, 0xD3F2, 0x583A, 0xCCF7, 0x584A, 0xCED4, 0x584B, 0xE7AB, + 0x584F, 0xCBC3, 0x5851, 0xE1B1, 0x5854, 0xF7B2, 0x5857, 0xD3F3, 0x5858, 0xD3D2, 0x585A, 0xF5C0, 0x585E, 0xDFDD, 0x5861, 0xEEF3, + 0x5862, 0xE7F1, 0x5864, 0xFDB4, 0x5875, 0xF2C8, 0x5879, 0xF3D2, 0x587C, 0xEEF4, 0x587E, 0xE2D3, 0x5883, 0xCCD1, 0x5885, 0xDFEA, + 0x5889, 0xE9BA, 0x5893, 0xD9D7, 0x589C, 0xF5CD, 0x589E, 0xF1F2, 0x589F, 0xFAC7, 0x58A8, 0xD9F8, 0x58A9, 0xD4C2, 0x58AE, 0xF6E5, + 0x58B3, 0xDDC5, 0x58BA, 0xE7F2, 0x58BB, 0xEDDF, 0x58BE, 0xCACB, 0x58C1, 0xDBFA, 0x58C5, 0xE8B5, 0x58C7, 0xD3A6, 0x58CE, 0xFDB5, + 0x58D1, 0xF9C9, 0x58D3, 0xE4E2, 0x58D5, 0xFBBD, 0x58D8, 0xD7A4, 0x58D9, 0xCEC5, 0x58DE, 0xCED5, 0x58DF, 0xD6E6, 0x58E4, 0xE5BD, + 0x58EB, 0xDECD, 0x58EC, 0xECF3, 0x58EF, 0xEDE0, 0x58F9, 0xECEC, 0x58FA, 0xFBBE, 0x58FB, 0xDFEB, 0x58FD, 0xE1F8, 0x590F, 0xF9BE, + 0x5914, 0xD0F3, 0x5915, 0xE0AA, 0x5916, 0xE8E2, 0x5919, 0xE2D4, 0x591A, 0xD2FD, 0x591C, 0xE5A8, 0x5922, 0xD9D3, 0x5927, 0xD3DE, + 0x5929, 0xF4B8, 0x592A, 0xF7BC, 0x592B, 0xDCFD, 0x592D, 0xE8EC, 0x592E, 0xE4E7, 0x5931, 0xE3F7, 0x5937, 0xECA8, 0x593E, 0xFAF1, + 0x5944, 0xE5F2, 0x5947, 0xD0F4, 0x5948, 0xD2AF, 0x5949, 0xDCE5, 0x594E, 0xD0A5, 0x594F, 0xF1B4, 0x5950, 0xFCB1, 0x5951, 0xCCF8, + 0x5954, 0xDDC6, 0x5955, 0xFAD1, 0x5957, 0xF7DF, 0x595A, 0xFAA8, 0x5960, 0xEEF5, 0x5962, 0xDECE, 0x5967, 0xE7F3, 0x596A, 0xF7AC, + 0x596B, 0xEBC4, 0x596C, 0xEDE1, 0x596D, 0xE0AB, 0x596E, 0xDDC7, 0x5973, 0xD2B3, 0x5974, 0xD2BF, 0x5978, 0xCACC, 0x597D, 0xFBBF, + 0x5982, 0xE5FD, 0x5983, 0xDDE5, 0x5984, 0xD8CD, 0x598A, 0xECF4, 0x5993, 0xD0F5, 0x5996, 0xE8ED, 0x5997, 0xD0D2, 0x5999, 0xD9D8, + 0x59A5, 0xF6E6, 0x59A8, 0xDBAA, 0x59AC, 0xF7E0, 0x59B9, 0xD8D9, 0x59BB, 0xF4A3, 0x59BE, 0xF4DD, 0x59C3, 0xEFD1, 0x59C6, 0xD9B5, + 0x59C9, 0xEDAB, 0x59CB, 0xE3B7, 0x59D0, 0xEEBB, 0x59D1, 0xCDB4, 0x59D3, 0xE0F3, 0x59D4, 0xEACD, 0x59D9, 0xECF5, 0x59DA, 0xE8EE, + 0x59DC, 0xCBA9, 0x59DD, 0xF1AF, 0x59E6, 0xCACD, 0x59E8, 0xECA9, 0x59EA, 0xF2EB, 0x59EC, 0xFDEF, 0x59EE, 0xF9F3, 0x59F8, 0xE6C1, + 0x59FB, 0xECD8, 0x59FF, 0xEDAC, 0x5A01, 0xEACE, 0x5A03, 0xE8DF, 0x5A11, 0xDECF, 0x5A18, 0xD2A6, 0x5A1B, 0xE7F4, 0x5A1C, 0xD1D6, + 0x5A1F, 0xE6C2, 0x5A20, 0xE3E3, 0x5A25, 0xE4B0, 0x5A29, 0xD8B4, 0x5A36, 0xF6A5, 0x5A3C, 0xF3DE, 0x5A41, 0xD7A5, 0x5A46, 0xF7E8, + 0x5A49, 0xE8C6, 0x5A5A, 0xFBE6, 0x5A62, 0xDDE6, 0x5A66, 0xDCFE, 0x5A92, 0xD8DA, 0x5A9A, 0xDAAC, 0x5A9B, 0xEAB0, 0x5AA4, 0xE3B8, + 0x5AC1, 0xCAAA, 0x5AC2, 0xE1F9, 0x5AC4, 0xEAB1, 0x5AC9, 0xF2EC, 0x5ACC, 0xFAEE, 0x5AE1, 0xEED5, 0x5AE6, 0xF9F4, 0x5AE9, 0xD2EC, + 0x5B05, 0xFBFB, 0x5B09, 0xFDF0, 0x5B0B, 0xE0BD, 0x5B0C, 0xCEE3, 0x5B16, 0xF8C6, 0x5B2A, 0xDEAE, 0x5B40, 0xDFC5, 0x5B43, 0xE5BE, + 0x5B50, 0xEDAD, 0x5B51, 0xFAEA, 0x5B54, 0xCDEE, 0x5B55, 0xEDA6, 0x5B57, 0xEDAE, 0x5B58, 0xF0ED, 0x5B5A, 0xDDA1, 0x5B5C, 0xEDAF, + 0x5B5D, 0xFCF8, 0x5B5F, 0xD8EB, 0x5B63, 0xCCF9, 0x5B64, 0xCDB5, 0x5B69, 0xFAA9, 0x5B6B, 0xE1DD, 0x5B70, 0xE2D5, 0x5B71, 0xEDCF, + 0x5B75, 0xDDA2, 0x5B78, 0xF9CA, 0x5B7A, 0xEAE8, 0x5B7C, 0xE5ED, 0x5B85, 0xD3EB, 0x5B87, 0xE9D4, 0x5B88, 0xE1FA, 0x5B89, 0xE4CC, + 0x5B8B, 0xE1E4, 0x5B8C, 0xE8C7, 0x5B8F, 0xCEDB, 0x5B93, 0xDCD5, 0x5B95, 0xF7B5, 0x5B96, 0xFCF3, 0x5B97, 0xF0F3, 0x5B98, 0xCEAF, + 0x5B99, 0xF1B5, 0x5B9A, 0xEFD2, 0x5B9B, 0xE8C8, 0x5B9C, 0xEBF1, 0x5BA2, 0xCBD4, 0x5BA3, 0xE0BE, 0x5BA4, 0xE3F8, 0x5BA5, 0xEAE9, + 0x5BA6, 0xFCB2, 0x5BAC, 0xE0F4, 0x5BAE, 0xCFE0, 0x5BB0, 0xEEA5, 0x5BB3, 0xFAAA, 0x5BB4, 0xE6C3, 0x5BB5, 0xE1B2, 0x5BB6, 0xCAAB, + 0x5BB8, 0xE3E4, 0x5BB9, 0xE9BB, 0x5BBF, 0xE2D6, 0x5BC0, 0xF3F2, 0x5BC2, 0xEED6, 0x5BC3, 0xEAB2, 0x5BC4, 0xD0F6, 0x5BC5, 0xECD9, + 0x5BC6, 0xDACB, 0x5BC7, 0xCFA8, 0x5BCC, 0xDDA3, 0x5BD0, 0xD8DB, 0x5BD2, 0xF9CE, 0x5BD3, 0xE9D5, 0x5BD4, 0xE3D1, 0x5BD7, 0xD2BC, + 0x5BDE, 0xD8AC, 0x5BDF, 0xF3CC, 0x5BE1, 0xCDFB, 0x5BE2, 0xF6D6, 0x5BE4, 0xE7F5, 0x5BE5, 0xE8EF, 0x5BE6, 0xE3F9, 0x5BE7, 0xD2BB, + 0x5BE8, 0xF3F3, 0x5BE9, 0xE3FB, 0x5BEB, 0xDED0, 0x5BEC, 0xCEB0, 0x5BEE, 0xD6F7, 0x5BEF, 0xF1D9, 0x5BF5, 0xF5C1, 0x5BF6, 0xDCC4, + 0x5BF8, 0xF5BB, 0x5BFA, 0xDED1, 0x5C01, 0xDCE6, 0x5C04, 0xDED2, 0x5C07, 0xEDE2, 0x5C08, 0xEEF6, 0x5C09, 0xEACF, 0x5C0A, 0xF0EE, + 0x5C0B, 0xE3FC, 0x5C0D, 0xD3DF, 0x5C0E, 0xD3F4, 0x5C0F, 0xE1B3, 0x5C11, 0xE1B4, 0x5C16, 0xF4D3, 0x5C19, 0xDFC6, 0x5C24, 0xE9D6, + 0x5C28, 0xDBAB, 0x5C31, 0xF6A6, 0x5C38, 0xE3B9, 0x5C39, 0xEBC5, 0x5C3A, 0xF4A9, 0x5C3B, 0xCDB6, 0x5C3C, 0xD2F9, 0x5C3E, 0xDAAD, + 0x5C3F, 0xD2E3, 0x5C40, 0xCFD1, 0x5C45, 0xCBDC, 0x5C46, 0xCCFA, 0x5C48, 0xCFDD, 0x5C4B, 0xE8A9, 0x5C4D, 0xE3BB, 0x5C4E, 0xE3BA, + 0x5C51, 0xE0DA, 0x5C55, 0xEEF7, 0x5C5B, 0xDCB3, 0x5C60, 0xD3F5, 0x5C62, 0xD7A6, 0x5C64, 0xF6B5, 0x5C65, 0xD7DB, 0x5C6C, 0xE1D5, + 0x5C6F, 0xD4EA, 0x5C71, 0xDFA3, 0x5C79, 0xFDDF, 0x5C90, 0xD0F7, 0x5C91, 0xEDD4, 0x5CA1, 0xCBAA, 0x5CA9, 0xE4DB, 0x5CAB, 0xE1FB, + 0x5CAC, 0xCBA2, 0x5CB1, 0xD3E0, 0x5CB3, 0xE4BF, 0x5CB5, 0xFBC0, 0x5CB7, 0xDABE, 0x5CB8, 0xE4CD, 0x5CBA, 0xD6B9, 0x5CBE, 0xEFC0, + 0x5CC0, 0xE1FC, 0x5CD9, 0xF6B9, 0x5CE0, 0xDFC7, 0x5CE8, 0xE4B1, 0x5CEF, 0xDCE7, 0x5CF0, 0xDCE8, 0x5CF4, 0xFAD6, 0x5CF6, 0xD3F6, + 0x5CFB, 0xF1DA, 0x5CFD, 0xFAF2, 0x5D07, 0xE2FD, 0x5D0D, 0xD5CF, 0x5D0E, 0xD0F8, 0x5D11, 0xCDDF, 0x5D14, 0xF5CB, 0x5D16, 0xE4F0, + 0x5D17, 0xCBAB, 0x5D19, 0xD7C4, 0x5D27, 0xE2FE, 0x5D29, 0xDDDA, 0x5D4B, 0xDAAE, 0x5D4C, 0xCAEE, 0x5D50, 0xD5B9, 0x5D69, 0xE3A1, + 0x5D6C, 0xE8E3, 0x5D6F, 0xF3AB, 0x5D87, 0xCFA9, 0x5D8B, 0xD3F7, 0x5D9D, 0xD4F1, 0x5DA0, 0xCEE4, 0x5DA2, 0xE8F2, 0x5DAA, 0xE5F5, + 0x5DB8, 0xE7AE, 0x5DBA, 0xD6BA, 0x5DBC, 0xDFEC, 0x5DBD, 0xE4C0, 0x5DCD, 0xE8E4, 0x5DD2, 0xD8B5, 0x5DD6, 0xE4DC, 0x5DDD, 0xF4B9, + 0x5DDE, 0xF1B6, 0x5DE1, 0xE2DE, 0x5DE2, 0xE1B5, 0x5DE5, 0xCDEF, 0x5DE6, 0xF1A7, 0x5DE7, 0xCEE5, 0x5DE8, 0xCBDD, 0x5DEB, 0xD9E3, + 0x5DEE, 0xF3AC, 0x5DF1, 0xD0F9, 0x5DF2, 0xECAB, 0x5DF3, 0xDED3, 0x5DF4, 0xF7E9, 0x5DF7, 0xF9F5, 0x5DFD, 0xE1DE, 0x5DFE, 0xCBEE, + 0x5E02, 0xE3BC, 0x5E03, 0xF8D6, 0x5E06, 0xDBEE, 0x5E0C, 0xFDF1, 0x5E11, 0xF7B6, 0x5E16, 0xF4DE, 0x5E19, 0xF2ED, 0x5E1B, 0xDBD9, + 0x5E1D, 0xF0A8, 0x5E25, 0xE1FD, 0x5E2B, 0xDED4, 0x5E2D, 0xE0AC, 0x5E33, 0xEDE3, 0x5E36, 0xD3E1, 0x5E38, 0xDFC8, 0x5E3D, 0xD9B6, + 0x5E3F, 0xFDAC, 0x5E40, 0xEFD3, 0x5E44, 0xE4C1, 0x5E45, 0xF8EB, 0x5E47, 0xDBAC, 0x5E4C, 0xFCC6, 0x5E55, 0xD8AD, 0x5E5F, 0xF6BA, + 0x5E61, 0xDBDF, 0x5E62, 0xD3D3, 0x5E63, 0xF8C7, 0x5E72, 0xCACE, 0x5E73, 0xF8C1, 0x5E74, 0xD2B4, 0x5E77, 0xDCB4, 0x5E78, 0xFAB9, + 0x5E79, 0xCACF, 0x5E7B, 0xFCB3, 0x5E7C, 0xEAEA, 0x5E7D, 0xEAEB, 0x5E7E, 0xD0FA, 0x5E84, 0xEDE4, 0x5E87, 0xDDE7, 0x5E8A, 0xDFC9, + 0x5E8F, 0xDFED, 0x5E95, 0xEEBC, 0x5E97, 0xEFC1, 0x5E9A, 0xCCD2, 0x5E9C, 0xDDA4, 0x5EA0, 0xDFCA, 0x5EA6, 0xD3F8, 0x5EA7, 0xF1A8, + 0x5EAB, 0xCDB7, 0x5EAD, 0xEFD4, 0x5EB5, 0xE4DD, 0x5EB6, 0xDFEE, 0x5EB7, 0xCBAC, 0x5EB8, 0xE9BC, 0x5EBE, 0xEAEC, 0x5EC2, 0xDFCB, + 0x5EC8, 0xF9BF, 0x5EC9, 0xD6AF, 0x5ECA, 0xD5C6, 0x5ED0, 0xCFAA, 0x5ED3, 0xCEA9, 0x5ED6, 0xD6F8, 0x5EDA, 0xF1B7, 0x5EDB, 0xEEF8, + 0x5EDF, 0xD9D9, 0x5EE0, 0xF3DF, 0x5EE2, 0xF8C8, 0x5EE3, 0xCEC6, 0x5EEC, 0xD5E6, 0x5EF3, 0xF4E6, 0x5EF6, 0xE6C5, 0x5EF7, 0xEFD5, + 0x5EFA, 0xCBEF, 0x5EFB, 0xFCDF, 0x5F01, 0xDCA7, 0x5F04, 0xD6E7, 0x5F0A, 0xF8C9, 0x5F0F, 0xE3D2, 0x5F11, 0xE3BD, 0x5F13, 0xCFE1, + 0x5F14, 0xF0C0, 0x5F15, 0xECDA, 0x5F17, 0xDDD7, 0x5F18, 0xFBF0, 0x5F1B, 0xECAC, 0x5F1F, 0xF0A9, 0x5F26, 0xFAD7, 0x5F27, 0xFBC1, + 0x5F29, 0xD2C0, 0x5F31, 0xE5B0, 0x5F35, 0xEDE5, 0x5F3A, 0xCBAD, 0x5F3C, 0xF9B0, 0x5F48, 0xF7A5, 0x5F4A, 0xCBAE, 0x5F4C, 0xDAAF, + 0x5F4E, 0xD8B6, 0x5F56, 0xD3A7, 0x5F57, 0xFBB2, 0x5F59, 0xFDC4, 0x5F5B, 0xECAD, 0x5F62, 0xFBA1, 0x5F66, 0xE5E9, 0x5F67, 0xE9EE, + 0x5F69, 0xF3F4, 0x5F6A, 0xF8F3, 0x5F6B, 0xF0C1, 0x5F6C, 0xDEAF, 0x5F6D, 0xF8B0, 0x5F70, 0xF3E0, 0x5F71, 0xE7AF, 0x5F77, 0xDBAD, + 0x5F79, 0xE6B5, 0x5F7C, 0xF9A8, 0x5F7F, 0xDDD8, 0x5F80, 0xE8D9, 0x5F81, 0xEFD6, 0x5F85, 0xD3E2, 0x5F87, 0xE2DF, 0x5F8A, 0xFCE0, + 0x5F8B, 0xD7C8, 0x5F8C, 0xFDAD, 0x5F90, 0xDFEF, 0x5F91, 0xCCD3, 0x5F92, 0xD3F9, 0x5F97, 0xD4F0, 0x5F98, 0xDBC7, 0x5F99, 0xDED5, + 0x5F9E, 0xF0F4, 0x5FA0, 0xD5D0, 0x5FA1, 0xE5D9, 0x5FA8, 0xFCC7, 0x5FA9, 0xDCD6, 0x5FAA, 0xE2E0, 0x5FAE, 0xDAB0, 0x5FB5, 0xF3A3, + 0x5FB7, 0xD3EC, 0x5FB9, 0xF4CB, 0x5FBD, 0xFDC5, 0x5FC3, 0xE3FD, 0x5FC5, 0xF9B1, 0x5FCC, 0xD0FB, 0x5FCD, 0xECDB, 0x5FD6, 0xF5BC, + 0x5FD7, 0xF2A4, 0x5FD8, 0xD8CE, 0x5FD9, 0xD8CF, 0x5FE0, 0xF5F7, 0x5FEB, 0xF6E1, 0x5FF5, 0xD2B7, 0x5FFD, 0xFBEC, 0x5FFF, 0xDDC8, + 0x600F, 0xE4E8, 0x6012, 0xD2C1, 0x6016, 0xF8D7, 0x601C, 0xD6BB, 0x601D, 0xDED6, 0x6020, 0xF7BD, 0x6021, 0xECAE, 0x6025, 0xD0E1, + 0x6027, 0xE0F5, 0x6028, 0xEAB3, 0x602A, 0xCED6, 0x602F, 0xCCA5, 0x6041, 0xECF6, 0x6042, 0xE2E1, 0x6043, 0xE3BE, 0x604D, 0xFCC8, + 0x6050, 0xCDF0, 0x6052, 0xF9F6, 0x6055, 0xDFF0, 0x6059, 0xE5BF, 0x605D, 0xCEBF, 0x6062, 0xFCE1, 0x6063, 0xEDB0, 0x6064, 0xFDD1, + 0x6065, 0xF6BB, 0x6068, 0xF9CF, 0x6069, 0xEBDA, 0x606A, 0xCAC1, 0x606C, 0xD2B8, 0x606D, 0xCDF1, 0x606F, 0xE3D3, 0x6070, 0xFDE6, + 0x6085, 0xE6ED, 0x6089, 0xE3FA, 0x608C, 0xF0AA, 0x608D, 0xF9D0, 0x6094, 0xFCE2, 0x6096, 0xF8A7, 0x609A, 0xE1E5, 0x609B, 0xEEF9, + 0x609F, 0xE7F6, 0x60A0, 0xEAED, 0x60A3, 0xFCB4, 0x60A4, 0xF5C2, 0x60A7, 0xD7DC, 0x60B0, 0xF0F5, 0x60B2, 0xDDE8, 0x60B3, 0xD3ED, + 0x60B4, 0xF5FC, 0x60B6, 0xDABF, 0x60B8, 0xCCFB, 0x60BC, 0xD3FA, 0x60BD, 0xF4A4, 0x60C5, 0xEFD7, 0x60C7, 0xD4C3, 0x60D1, 0xFBE3, + 0x60DA, 0xFBED, 0x60DC, 0xE0AD, 0x60DF, 0xEAEE, 0x60E0, 0xFBB3, 0x60E1, 0xE4C2, 0x60F0, 0xF6E7, 0x60F1, 0xD2DD, 0x60F3, 0xDFCC, + 0x60F6, 0xFCC9, 0x60F9, 0xE5A9, 0x60FA, 0xE0F6, 0x60FB, 0xF6B3, 0x6101, 0xE1FE, 0x6106, 0xCBF0, 0x6108, 0xEAEF, 0x6109, 0xEAF0, + 0x610D, 0xDAC0, 0x610E, 0xF8B4, 0x610F, 0xEBF2, 0x6115, 0xE4C3, 0x611A, 0xE9D7, 0x611B, 0xE4F1, 0x611F, 0xCAEF, 0x6127, 0xCED7, + 0x6130, 0xFCCA, 0x6134, 0xF3E1, 0x6137, 0xCBC4, 0x613C, 0xE3E5, 0x613E, 0xCBC5, 0x613F, 0xEAB4, 0x6142, 0xE9BD, 0x6144, 0xD7C9, + 0x6147, 0xEBDB, 0x6148, 0xEDB1, 0x614A, 0xCCC3, 0x614B, 0xF7BE, 0x614C, 0xFCCB, 0x6153, 0xF8F4, 0x6155, 0xD9B7, 0x6158, 0xF3D3, + 0x6159, 0xF3D4, 0x615D, 0xF7E4, 0x615F, 0xF7D1, 0x6162, 0xD8B7, 0x6163, 0xCEB1, 0x6164, 0xCAC2, 0x6167, 0xFBB4, 0x6168, 0xCBC6, + 0x616B, 0xF0F6, 0x616E, 0xD5E7, 0x6170, 0xEAD0, 0x6176, 0xCCD4, 0x6177, 0xCBAF, 0x617D, 0xF4AA, 0x617E, 0xE9AF, 0x6181, 0xF5C3, + 0x6182, 0xE9D8, 0x618A, 0xDDE9, 0x618E, 0xF1F3, 0x6190, 0xD5FB, 0x6191, 0xDEBB, 0x6194, 0xF4FB, 0x6198, 0xFDF3, 0x6199, 0xFDF2, + 0x619A, 0xF7A6, 0x61A4, 0xDDC9, 0x61A7, 0xD4D3, 0x61A9, 0xCCA8, 0x61AB, 0xDAC1, 0x61AC, 0xCCD5, 0x61AE, 0xD9E4, 0x61B2, 0xFACA, + 0x61B6, 0xE5E3, 0x61BA, 0xD3BC, 0x61BE, 0xCAF0, 0x61C3, 0xD0C4, 0x61C7, 0xCAD0, 0x61C8, 0xFAAB, 0x61C9, 0xEBEB, 0x61CA, 0xE7F8, + 0x61CB, 0xD9E5, 0x61E6, 0xD1D7, 0x61F2, 0xF3A4, 0x61F6, 0xD4FB, 0x61F7, 0xFCE3, 0x61F8, 0xFAD8, 0x61FA, 0xF3D5, 0x61FC, 0xCFAB, + 0x61FF, 0xEBF3, 0x6200, 0xD5FC, 0x6207, 0xD3D4, 0x6208, 0xCDFC, 0x620A, 0xD9E6, 0x620C, 0xE2F9, 0x620D, 0xE2A1, 0x620E, 0xEBD4, + 0x6210, 0xE0F7, 0x6211, 0xE4B2, 0x6212, 0xCCFC, 0x6216, 0xFBE4, 0x621A, 0xF4AB, 0x621F, 0xD0BD, 0x6221, 0xCAF1, 0x622A, 0xEFB8, + 0x622E, 0xD7C0, 0x6230, 0xEEFA, 0x6231, 0xFDF4, 0x6234, 0xD3E3, 0x6236, 0xFBC2, 0x623E, 0xD5E8, 0x623F, 0xDBAE, 0x6240, 0xE1B6, + 0x6241, 0xF8B7, 0x6247, 0xE0BF, 0x6248, 0xFBC3, 0x6249, 0xDDEA, 0x624B, 0xE2A2, 0x624D, 0xEEA6, 0x6253, 0xF6E8, 0x6258, 0xF6F5, + 0x626E, 0xDDCA, 0x6271, 0xD0E2, 0x6276, 0xDDA6, 0x6279, 0xDDEB, 0x627C, 0xE4F9, 0x627F, 0xE3AF, 0x6280, 0xD0FC, 0x6284, 0xF4FC, + 0x6289, 0xCCBC, 0x628A, 0xF7EA, 0x6291, 0xE5E4, 0x6292, 0xDFF1, 0x6295, 0xF7E1, 0x6297, 0xF9F7, 0x6298, 0xEFB9, 0x629B, 0xF8D8, + 0x62AB, 0xF9A9, 0x62B1, 0xF8D9, 0x62B5, 0xEEBD, 0x62B9, 0xD8C6, 0x62BC, 0xE4E3, 0x62BD, 0xF5CE, 0x62C2, 0xDDD9, 0x62C7, 0xD9E7, + 0x62C8, 0xD2B9, 0x62C9, 0xD5C3, 0x62CC, 0xDAE5, 0x62CD, 0xDAD0, 0x62CF, 0xD1D9, 0x62D0, 0xCED8, 0x62D2, 0xCBDE, 0x62D3, 0xF4AC, + 0x62D4, 0xDAFB, 0x62D6, 0xF6E9, 0x62D7, 0xE8F3, 0x62D8, 0xCFAC, 0x62D9, 0xF0F0, 0x62DB, 0xF4FD, 0x62DC, 0xDBC8, 0x62EC, 0xCEC0, + 0x62ED, 0xE3D4, 0x62EE, 0xD1CF, 0x62EF, 0xF1F5, 0x62F1, 0xCDF2, 0x62F3, 0xCFEB, 0x62F7, 0xCDB8, 0x62FE, 0xE3A6, 0x62FF, 0xD1DA, + 0x6301, 0xF2A5, 0x6307, 0xF2A6, 0x6309, 0xE4CE, 0x6311, 0xD3FB, 0x632B, 0xF1A9, 0x632F, 0xF2C9, 0x633A, 0xEFD8, 0x633B, 0xE6C9, + 0x633D, 0xD8B8, 0x633E, 0xFAF3, 0x6349, 0xF3B5, 0x634C, 0xF8A4, 0x634F, 0xD1F3, 0x6350, 0xE6C8, 0x6355, 0xF8DA, 0x6367, 0xDCE9, + 0x6368, 0xDED7, 0x636E, 0xCBDF, 0x6372, 0xCFEC, 0x6377, 0xF4DF, 0x637A, 0xD1F4, 0x637B, 0xD2BA, 0x637F, 0xDFF2, 0x6383, 0xE1B7, + 0x6388, 0xE2A3, 0x6389, 0xD3FC, 0x638C, 0xEDE6, 0x6392, 0xDBC9, 0x6396, 0xE4FA, 0x6398, 0xCFDE, 0x639B, 0xCED0, 0x63A0, 0xD5D3, + 0x63A1, 0xF3F5, 0x63A2, 0xF7AE, 0x63A5, 0xEFC8, 0x63A7, 0xCDF3, 0x63A8, 0xF5CF, 0x63A9, 0xE5F3, 0x63AA, 0xF0C2, 0x63C0, 0xCAD1, + 0x63C4, 0xEAF1, 0x63C6, 0xD0A6, 0x63CF, 0xD9DA, 0x63D0, 0xF0AB, 0x63D6, 0xEBE7, 0x63DA, 0xE5C0, 0x63DB, 0xFCB5, 0x63E1, 0xE4C4, + 0x63ED, 0xCCA9, 0x63EE, 0xFDC6, 0x63F4, 0xEAB5, 0x63F6, 0xE5AA, 0x63F7, 0xDFBA, 0x640D, 0xE1DF, 0x640F, 0xDAD1, 0x6414, 0xE1B8, + 0x6416, 0xE8F4, 0x6417, 0xD3FD, 0x641C, 0xE2A4, 0x6422, 0xF2CA, 0x642C, 0xDAE6, 0x642D, 0xF7B3, 0x643A, 0xFDCD, 0x643E, 0xF3B6, + 0x6458, 0xEED7, 0x6460, 0xF5C4, 0x6469, 0xD8A4, 0x646F, 0xF2A7, 0x6478, 0xD9B8, 0x6479, 0xD9B9, 0x647A, 0xEFC9, 0x6488, 0xD6CE, + 0x6491, 0xF7CB, 0x6492, 0xDFAE, 0x6493, 0xE8F5, 0x649A, 0xD2B5, 0x649E, 0xD3D5, 0x64A4, 0xF4CC, 0x64A5, 0xDAFC, 0x64AB, 0xD9E8, + 0x64AD, 0xF7EB, 0x64AE, 0xF5C9, 0x64B0, 0xF3BC, 0x64B2, 0xDAD2, 0x64BB, 0xD3B5, 0x64C1, 0xE8B6, 0x64C4, 0xD6CF, 0x64C5, 0xF4BA, + 0x64C7, 0xF7C9, 0x64CA, 0xCCAA, 0x64CD, 0xF0C3, 0x64CE, 0xCCD6, 0x64D2, 0xD0D3, 0x64D4, 0xD3BD, 0x64D8, 0xDBFB, 0x64DA, 0xCBE0, + 0x64E1, 0xD3E4, 0x64E2, 0xF6F7, 0x64E5, 0xD5BA, 0x64E6, 0xF3CD, 0x64E7, 0xCBE1, 0x64EC, 0xEBF4, 0x64F2, 0xF4AD, 0x64F4, 0xFCAA, + 0x64FA, 0xF7EC, 0x64FE, 0xE8F6, 0x6500, 0xDAE7, 0x6504, 0xF7CC, 0x6518, 0xE5C1, 0x651D, 0xE0EE, 0x6523, 0xD5FD, 0x652A, 0xCEE6, + 0x652B, 0xFCAB, 0x652C, 0xD5BB, 0x652F, 0xF2A8, 0x6536, 0xE2A5, 0x6537, 0xCDB9, 0x6538, 0xEAF2, 0x6539, 0xCBC7, 0x653B, 0xCDF4, + 0x653E, 0xDBAF, 0x653F, 0xEFD9, 0x6545, 0xCDBA, 0x6548, 0xFCF9, 0x654D, 0xDFF3, 0x654E, 0xCEE7, 0x654F, 0xDAC2, 0x6551, 0xCFAD, + 0x6556, 0xE7F9, 0x6557, 0xF8A8, 0x655E, 0xF3E2, 0x6562, 0xCAF2, 0x6563, 0xDFA4, 0x6566, 0xD4C4, 0x656C, 0xCCD7, 0x656D, 0xE5C2, + 0x6572, 0xCDBB, 0x6574, 0xEFDA, 0x6575, 0xEED8, 0x6577, 0xDDA7, 0x6578, 0xE2A6, 0x657E, 0xE0C0, 0x6582, 0xD6B0, 0x6583, 0xF8CA, + 0x6585, 0xFCFA, 0x6587, 0xD9FE, 0x658C, 0xDEB0, 0x6590, 0xDDEC, 0x6591, 0xDAE8, 0x6597, 0xD4E0, 0x6599, 0xD6F9, 0x659B, 0xCDD7, + 0x659C, 0xDED8, 0x659F, 0xF2F8, 0x65A1, 0xE4D6, 0x65A4, 0xD0C5, 0x65A5, 0xF4AE, 0x65A7, 0xDDA8, 0x65AB, 0xEDC5, 0x65AC, 0xF3D6, + 0x65AF, 0xDED9, 0x65B0, 0xE3E6, 0x65B7, 0xD3A8, 0x65B9, 0xDBB0, 0x65BC, 0xE5DA, 0x65BD, 0xE3BF, 0x65C1, 0xDBB1, 0x65C5, 0xD5E9, + 0x65CB, 0xE0C1, 0x65CC, 0xEFDB, 0x65CF, 0xF0E9, 0x65D2, 0xD7B2, 0x65D7, 0xD0FD, 0x65E0, 0xD9E9, 0x65E3, 0xD0FE, 0x65E5, 0xECED, + 0x65E6, 0xD3A9, 0x65E8, 0xF2A9, 0x65E9, 0xF0C4, 0x65EC, 0xE2E2, 0x65ED, 0xE9EF, 0x65F1, 0xF9D1, 0x65F4, 0xE9D9, 0x65FA, 0xE8DA, + 0x65FB, 0xDAC3, 0x65FC, 0xDAC4, 0x65FD, 0xD4C5, 0x65FF, 0xE7FA, 0x6606, 0xCDE0, 0x6607, 0xE3B0, 0x6609, 0xDBB2, 0x660A, 0xFBC4, + 0x660C, 0xF3E3, 0x660E, 0xD9A5, 0x660F, 0xFBE7, 0x6610, 0xDDCB, 0x6611, 0xD0D4, 0x6613, 0xE6B6, 0x6614, 0xE0AE, 0x6615, 0xFDDA, + 0x661E, 0xDCB5, 0x661F, 0xE0F8, 0x6620, 0xE7B1, 0x6625, 0xF5F0, 0x6627, 0xD8DC, 0x6628, 0xEDC6, 0x662D, 0xE1B9, 0x662F, 0xE3C0, + 0x6630, 0xF9C0, 0x6631, 0xE9F0, 0x6634, 0xD9DB, 0x6636, 0xF3E4, 0x663A, 0xDCB6, 0x663B, 0xE4E9, 0x6641, 0xF0C5, 0x6642, 0xE3C1, + 0x6643, 0xFCCC, 0x6644, 0xFCCD, 0x6649, 0xF2CB, 0x664B, 0xF2CC, 0x664F, 0xE4CF, 0x6659, 0xF1DB, 0x665B, 0xFAD9, 0x665D, 0xF1B8, + 0x665E, 0xFDF5, 0x665F, 0xE0F9, 0x6664, 0xE7FB, 0x6665, 0xFCB7, 0x6666, 0xFCE4, 0x6667, 0xFBC5, 0x6668, 0xE3E7, 0x6669, 0xD8B9, + 0x666B, 0xF6F8, 0x666E, 0xDCC5, 0x666F, 0xCCD8, 0x6673, 0xE0AF, 0x6674, 0xF4E7, 0x6676, 0xEFDC, 0x6677, 0xCFFC, 0x6678, 0xEFDD, + 0x667A, 0xF2AA, 0x6684, 0xFDBE, 0x6687, 0xCAAC, 0x6688, 0xFDBB, 0x6689, 0xFDC7, 0x668E, 0xE7B2, 0x6690, 0xEAD1, 0x6691, 0xDFF4, + 0x6696, 0xD1EC, 0x6697, 0xE4DE, 0x6698, 0xE5C3, 0x669D, 0xD9A6, 0x66A0, 0xCDBC, 0x66A2, 0xF3E5, 0x66AB, 0xEDD5, 0x66AE, 0xD9BA, + 0x66B2, 0xEDE7, 0x66B3, 0xFBB5, 0x66B4, 0xF8EC, 0x66B9, 0xE0E7, 0x66BB, 0xCCD9, 0x66BE, 0xD4C6, 0x66C4, 0xE7A5, 0x66C6, 0xD5F5, + 0x66C7, 0xD3BE, 0x66C9, 0xFCFB, 0x66D6, 0xE4F2, 0x66D9, 0xDFF5, 0x66DC, 0xE8F8, 0x66DD, 0xF8ED, 0x66E0, 0xCEC7, 0x66E6, 0xFDF6, + 0x66F0, 0xE8D8, 0x66F2, 0xCDD8, 0x66F3, 0xE7D6, 0x66F4, 0xCCDA, 0x66F7, 0xCAE3, 0x66F8, 0xDFF6, 0x66F9, 0xF0C7, 0x66FA, 0xF0C6, + 0x66FC, 0xD8BA, 0x66FE, 0xF1F4, 0x66FF, 0xF4F0, 0x6700, 0xF5CC, 0x6703, 0xFCE5, 0x6708, 0xEAC5, 0x6709, 0xEAF3, 0x670B, 0xDDDB, + 0x670D, 0xDCD7, 0x6714, 0xDEFD, 0x6715, 0xF2F9, 0x6717, 0xD5C7, 0x671B, 0xD8D0, 0x671D, 0xF0C8, 0x671E, 0xD1A1, 0x671F, 0xD1A2, + 0x6726, 0xD9D4, 0x6727, 0xD6E8, 0x6728, 0xD9CA, 0x672A, 0xDAB1, 0x672B, 0xD8C7, 0x672C, 0xDCE2, 0x672D, 0xF3CE, 0x672E, 0xF5F4, + 0x6731, 0xF1B9, 0x6734, 0xDAD3, 0x6736, 0xF6EA, 0x673A, 0xCFF5, 0x673D, 0xFDAE, 0x6746, 0xCAD2, 0x6749, 0xDFB4, 0x674E, 0xD7DD, + 0x674F, 0xFABA, 0x6750, 0xEEA7, 0x6751, 0xF5BD, 0x6753, 0xF8F5, 0x6756, 0xEDE8, 0x675C, 0xD4E1, 0x675E, 0xD1A3, 0x675F, 0xE1D6, + 0x676D, 0xF9F8, 0x676F, 0xDBCA, 0x6770, 0xCBF9, 0x6771, 0xD4D4, 0x6773, 0xD9DC, 0x6775, 0xEEBE, 0x6777, 0xF7ED, 0x677B, 0xD2EE, + 0x677E, 0xE1E6, 0x677F, 0xF7F9, 0x6787, 0xDDED, 0x6789, 0xE8DB, 0x678B, 0xDBB3, 0x678F, 0xD1F7, 0x6790, 0xE0B0, 0x6793, 0xD4E2, + 0x6795, 0xF6D7, 0x6797, 0xD7F9, 0x679A, 0xD8DD, 0x679C, 0xCDFD, 0x679D, 0xF2AB, 0x67AF, 0xCDBD, 0x67B0, 0xF8C2, 0x67B3, 0xF2AC, + 0x67B6, 0xCAAD, 0x67B7, 0xCAAE, 0x67B8, 0xCFAE, 0x67BE, 0xE3C2, 0x67C4, 0xDCB7, 0x67CF, 0xDBDA, 0x67D0, 0xD9BB, 0x67D1, 0xCAF3, + 0x67D2, 0xF6D3, 0x67D3, 0xE6F8, 0x67D4, 0xEAF5, 0x67DA, 0xEAF6, 0x67DD, 0xF6F9, 0x67E9, 0xCFAF, 0x67EC, 0xCAD3, 0x67EF, 0xCAAF, + 0x67F0, 0xD2B0, 0x67F1, 0xF1BA, 0x67F3, 0xD7B3, 0x67F4, 0xE3C3, 0x67F5, 0xF3FD, 0x67F6, 0xDEDA, 0x67FB, 0xDEDB, 0x67FE, 0xEFDE, + 0x6812, 0xE2E3, 0x6813, 0xEEFB, 0x6816, 0xDFF7, 0x6817, 0xD7CA, 0x6821, 0xCEE8, 0x6822, 0xDBDB, 0x682A, 0xF1BB, 0x682F, 0xE9F1, + 0x6838, 0xFAB7, 0x6839, 0xD0C6, 0x683C, 0xCCAB, 0x683D, 0xEEA8, 0x6840, 0xCBFA, 0x6841, 0xF9F9, 0x6842, 0xCCFD, 0x6843, 0xD3FE, + 0x6848, 0xE4D0, 0x684E, 0xF2EE, 0x6850, 0xD4D5, 0x6851, 0xDFCD, 0x6853, 0xFCB8, 0x6854, 0xD1D0, 0x686D, 0xF2CD, 0x6876, 0xF7D2, + 0x687F, 0xCAD4, 0x6881, 0xD5D9, 0x6885, 0xD8DE, 0x688F, 0xCDD9, 0x6893, 0xEEA9, 0x6894, 0xF6BC, 0x6897, 0xCCDB, 0x689D, 0xF0C9, + 0x689F, 0xFCFC, 0x68A1, 0xE8C9, 0x68A2, 0xF4FE, 0x68A7, 0xE7FC, 0x68A8, 0xD7DE, 0x68AD, 0xDEDC, 0x68AF, 0xF0AC, 0x68B0, 0xCCFE, + 0x68B1, 0xCDE1, 0x68B3, 0xE1BA, 0x68B5, 0xDBEF, 0x68B6, 0xDAB2, 0x68C4, 0xD1A5, 0x68C5, 0xDCB8, 0x68C9, 0xD8F6, 0x68CB, 0xD1A4, + 0x68CD, 0xCDE2, 0x68D2, 0xDCEA, 0x68D5, 0xF0F7, 0x68D7, 0xF0CA, 0x68D8, 0xD0BE, 0x68DA, 0xDDDC, 0x68DF, 0xD4D6, 0x68E0, 0xD3D6, + 0x68E7, 0xEDD0, 0x68E8, 0xCDA1, 0x68EE, 0xDFB5, 0x68F2, 0xDFF8, 0x68F9, 0xD4A1, 0x68FA, 0xCEB2, 0x6900, 0xE8CA, 0x6905, 0xEBF5, + 0x690D, 0xE3D5, 0x690E, 0xF5D0, 0x6912, 0xF5A1, 0x6927, 0xD9A7, 0x6930, 0xE5AB, 0x693D, 0xE6CB, 0x693F, 0xF5F1, 0x694A, 0xE5C5, + 0x6953, 0xF9A3, 0x6954, 0xE0DB, 0x6955, 0xF6EB, 0x6957, 0xCBF1, 0x6959, 0xD9EA, 0x695A, 0xF5A2, 0x695E, 0xD7D1, 0x6960, 0xD1F8, + 0x6961, 0xEAF8, 0x6962, 0xEAF9, 0x6963, 0xDAB3, 0x6968, 0xEFDF, 0x696B, 0xF1EF, 0x696D, 0xE5F6, 0x696E, 0xEEBF, 0x696F, 0xE2E4, + 0x6975, 0xD0BF, 0x6977, 0xFAAC, 0x6978, 0xF5D1, 0x6979, 0xE7B3, 0x6995, 0xE9BE, 0x699B, 0xF2CE, 0x699C, 0xDBB4, 0x69A5, 0xFCCE, + 0x69A7, 0xDDEE, 0x69AE, 0xE7B4, 0x69B4, 0xD7B4, 0x69BB, 0xF7B4, 0x69C1, 0xCDBE, 0x69C3, 0xDAE9, 0x69CB, 0xCFB0, 0x69CC, 0xF7D9, + 0x69CD, 0xF3E6, 0x69D0, 0xCED9, 0x69E8, 0xCEAA, 0x69EA, 0xCBC8, 0x69FB, 0xD0A7, 0x69FD, 0xF0CB, 0x69FF, 0xD0C7, 0x6A02, 0xE4C5, + 0x6A0A, 0xDBE0, 0x6A11, 0xD5DA, 0x6A13, 0xD7A7, 0x6A17, 0xEEC0, 0x6A19, 0xF8F6, 0x6A1E, 0xF5D2, 0x6A1F, 0xEDE9, 0x6A21, 0xD9BC, + 0x6A23, 0xE5C6, 0x6A35, 0xF5A3, 0x6A38, 0xDAD4, 0x6A39, 0xE2A7, 0x6A3A, 0xFBFC, 0x6A3D, 0xF1DC, 0x6A44, 0xCAF4, 0x6A48, 0xE8FA, + 0x6A4B, 0xCEE9, 0x6A52, 0xE9F8, 0x6A53, 0xE2E5, 0x6A58, 0xD0B9, 0x6A59, 0xD4F2, 0x6A5F, 0xD1A6, 0x6A61, 0xDFCE, 0x6A6B, 0xFCF4, + 0x6A80, 0xD3AA, 0x6A84, 0xCCAC, 0x6A89, 0xEFE0, 0x6A8D, 0xE5E5, 0x6A8E, 0xD0D5, 0x6A97, 0xDBFC, 0x6A9C, 0xFCE6, 0x6AA2, 0xCBFE, + 0x6AA3, 0xEDEA, 0x6AB3, 0xDEB1, 0x6ABB, 0xF9E3, 0x6AC2, 0xD4A2, 0x6AC3, 0xCFF6, 0x6AD3, 0xD6D0, 0x6ADA, 0xD5EA, 0x6ADB, 0xF1EE, + 0x6AF6, 0xFACB, 0x6AFB, 0xE5A1, 0x6B04, 0xD5B1, 0x6B0A, 0xCFED, 0x6B0C, 0xEDEB, 0x6B12, 0xD5B2, 0x6B16, 0xD5BC, 0x6B20, 0xFDE2, + 0x6B21, 0xF3AD, 0x6B23, 0xFDDB, 0x6B32, 0xE9B0, 0x6B3A, 0xD1A7, 0x6B3D, 0xFDE3, 0x6B3E, 0xCEB3, 0x6B46, 0xFDE4, 0x6B47, 0xFACE, + 0x6B4C, 0xCAB0, 0x6B4E, 0xF7A7, 0x6B50, 0xCFB1, 0x6B5F, 0xE6A2, 0x6B61, 0xFCB6, 0x6B62, 0xF2AD, 0x6B63, 0xEFE1, 0x6B64, 0xF3AE, + 0x6B65, 0xDCC6, 0x6B66, 0xD9EB, 0x6B6A, 0xE8E0, 0x6B72, 0xE1A8, 0x6B77, 0xD5F6, 0x6B78, 0xCFFD, 0x6B7B, 0xDEDD, 0x6B7F, 0xD9D1, + 0x6B83, 0xE4EA, 0x6B84, 0xF2CF, 0x6B86, 0xF7BF, 0x6B89, 0xE2E6, 0x6B8A, 0xE2A8, 0x6B96, 0xE3D6, 0x6B98, 0xEDD1, 0x6B9E, 0xE9F9, + 0x6BAE, 0xD6B1, 0x6BAF, 0xDEB2, 0x6BB2, 0xE0E8, 0x6BB5, 0xD3AB, 0x6BB7, 0xEBDC, 0x6BBA, 0xDFAF, 0x6BBC, 0xCAC3, 0x6BBF, 0xEEFC, + 0x6BC1, 0xFDC3, 0x6BC5, 0xEBF6, 0x6BC6, 0xCFB2, 0x6BCB, 0xD9EC, 0x6BCD, 0xD9BD, 0x6BCF, 0xD8DF, 0x6BD2, 0xD4B8, 0x6BD3, 0xEBBE, + 0x6BD4, 0xDDEF, 0x6BD6, 0xDDF0, 0x6BD7, 0xDDF1, 0x6BD8, 0xDDF2, 0x6BDB, 0xD9BE, 0x6BEB, 0xFBC6, 0x6BEC, 0xCFB3, 0x6C08, 0xEEFD, + 0x6C0F, 0xE4AB, 0x6C11, 0xDAC5, 0x6C13, 0xD8EC, 0x6C23, 0xD1A8, 0x6C34, 0xE2A9, 0x6C37, 0xDEBC, 0x6C38, 0xE7B5, 0x6C3E, 0xDBF0, + 0x6C40, 0xEFE2, 0x6C41, 0xF1F0, 0x6C42, 0xCFB4, 0x6C4E, 0xDBF1, 0x6C50, 0xE0B1, 0x6C55, 0xDFA5, 0x6C57, 0xF9D2, 0x6C5A, 0xE7FD, + 0x6C5D, 0xE6A3, 0x6C5E, 0xFBF1, 0x6C5F, 0xCBB0, 0x6C60, 0xF2AE, 0x6C68, 0xCDE7, 0x6C6A, 0xE8DC, 0x6C6D, 0xE7D7, 0x6C70, 0xF7C0, + 0x6C72, 0xD0E3, 0x6C76, 0xDAA1, 0x6C7A, 0xCCBD, 0x6C7D, 0xD1A9, 0x6C7E, 0xDDCC, 0x6C81, 0xE3FE, 0x6C82, 0xD1AA, 0x6C83, 0xE8AA, + 0x6C85, 0xEAB6, 0x6C86, 0xF9FA, 0x6C87, 0xE6CC, 0x6C88, 0xF6D8, 0x6C8C, 0xD4C7, 0x6C90, 0xD9CB, 0x6C92, 0xD9D2, 0x6C93, 0xD3CB, + 0x6C94, 0xD8F7, 0x6C95, 0xDAA9, 0x6C96, 0xF5F8, 0x6C99, 0xDEDE, 0x6C9A, 0xF2AF, 0x6C9B, 0xF8A9, 0x6CAB, 0xD8C8, 0x6CAE, 0xEEC1, + 0x6CB3, 0xF9C1, 0x6CB8, 0xDDF3, 0x6CB9, 0xEAFA, 0x6CBB, 0xF6BD, 0x6CBC, 0xE1BB, 0x6CBD, 0xCDBF, 0x6CBE, 0xF4D4, 0x6CBF, 0xE6CD, + 0x6CC1, 0xFCCF, 0x6CC2, 0xFBA2, 0x6CC4, 0xE0DC, 0x6CC9, 0xF4BB, 0x6CCA, 0xDAD5, 0x6CCC, 0xF9B2, 0x6CD3, 0xFBF2, 0x6CD5, 0xDBF6, + 0x6CD7, 0xDEDF, 0x6CDB, 0xDBF2, 0x6CE1, 0xF8DC, 0x6CE2, 0xF7EE, 0x6CE3, 0xEBE8, 0x6CE5, 0xD2FA, 0x6CE8, 0xF1BC, 0x6CEB, 0xFADA, + 0x6CEE, 0xDAEA, 0x6CEF, 0xDAC6, 0x6CF0, 0xF7C1, 0x6CF3, 0xE7B6, 0x6D0B, 0xE5C7, 0x6D0C, 0xD6AC, 0x6D11, 0xDCC7, 0x6D17, 0xE1A9, + 0x6D19, 0xE2AA, 0x6D1B, 0xD5A6, 0x6D1E, 0xD4D7, 0x6D25, 0xF2D0, 0x6D27, 0xEAFB, 0x6D29, 0xE0DD, 0x6D2A, 0xFBF3, 0x6D32, 0xF1BD, + 0x6D35, 0xE2E7, 0x6D36, 0xFDD7, 0x6D38, 0xCEC8, 0x6D39, 0xEAB7, 0x6D3B, 0xFCC0, 0x6D3D, 0xFDE7, 0x6D3E, 0xF7EF, 0x6D41, 0xD7B5, + 0x6D59, 0xEFBA, 0x6D5A, 0xF1DD, 0x6D5C, 0xDEB3, 0x6D63, 0xE8CB, 0x6D66, 0xF8DD, 0x6D69, 0xFBC7, 0x6D6A, 0xD5C8, 0x6D6C, 0xD7DF, + 0x6D6E, 0xDDA9, 0x6D74, 0xE9B1, 0x6D77, 0xFAAD, 0x6D78, 0xF6D9, 0x6D79, 0xFAF4, 0x6D7F, 0xF8AA, 0x6D85, 0xE6EE, 0x6D87, 0xCCDC, + 0x6D88, 0xE1BC, 0x6D89, 0xE0EF, 0x6D8C, 0xE9BF, 0x6D8D, 0xFCFD, 0x6D8E, 0xE6CE, 0x6D91, 0xE1D7, 0x6D93, 0xE6CF, 0x6D95, 0xF4F1, + 0x6DAF, 0xE4F3, 0x6DB2, 0xE4FB, 0x6DB5, 0xF9E4, 0x6DC0, 0xEFE3, 0x6DC3, 0xCFEE, 0x6DC4, 0xF6BE, 0x6DC5, 0xE0B2, 0x6DC6, 0xFCFE, + 0x6DC7, 0xD1AB, 0x6DCB, 0xD7FA, 0x6DCF, 0xFBC8, 0x6DD1, 0xE2D7, 0x6DD8, 0xD4A3, 0x6DD9, 0xF0F8, 0x6DDA, 0xD7A8, 0x6DDE, 0xE1E7, + 0x6DE1, 0xD3BF, 0x6DE8, 0xEFE4, 0x6DEA, 0xD7C5, 0x6DEB, 0xEBE2, 0x6DEE, 0xFCE7, 0x6DF1, 0xE4A2, 0x6DF3, 0xE2E8, 0x6DF5, 0xE6D0, + 0x6DF7, 0xFBE8, 0x6DF8, 0xF4E8, 0x6DF9, 0xE5F4, 0x6DFA, 0xF4BC, 0x6DFB, 0xF4D5, 0x6E17, 0xDFB6, 0x6E19, 0xFCB9, 0x6E1A, 0xEEC2, + 0x6E1B, 0xCAF5, 0x6E1F, 0xEFE5, 0x6E20, 0xCBE2, 0x6E21, 0xD4A4, 0x6E23, 0xDEE0, 0x6E24, 0xDAFD, 0x6E25, 0xE4C6, 0x6E26, 0xE8BE, + 0x6E2B, 0xE0DE, 0x6E2C, 0xF6B4, 0x6E2D, 0xEAD2, 0x6E2F, 0xF9FB, 0x6E32, 0xE0C2, 0x6E34, 0xCAE4, 0x6E36, 0xE7B7, 0x6E38, 0xEAFD, + 0x6E3A, 0xD9DD, 0x6E3C, 0xDAB4, 0x6E3D, 0xEEAA, 0x6E3E, 0xFBE9, 0x6E43, 0xDBCB, 0x6E44, 0xDAB5, 0x6E4A, 0xF1BE, 0x6E4D, 0xD3AC, + 0x6E56, 0xFBC9, 0x6E58, 0xDFCF, 0x6E5B, 0xD3C0, 0x6E5C, 0xE3D7, 0x6E5E, 0xEFE6, 0x6E5F, 0xFCD0, 0x6E67, 0xE9C0, 0x6E6B, 0xF5D3, + 0x6E6E, 0xECDC, 0x6E6F, 0xF7B7, 0x6E72, 0xEAB8, 0x6E73, 0xD1F9, 0x6E7A, 0xDCC8, 0x6E90, 0xEAB9, 0x6E96, 0xF1DE, 0x6E9C, 0xD7B6, + 0x6E9D, 0xCFB5, 0x6E9F, 0xD9A8, 0x6EA2, 0xECEE, 0x6EA5, 0xDDAA, 0x6EAA, 0xCDA2, 0x6EAB, 0xE8AE, 0x6EAF, 0xE1BD, 0x6EB1, 0xF2D1, + 0x6EB6, 0xE9C1, 0x6EBA, 0xD2FC, 0x6EC2, 0xDBB5, 0x6EC4, 0xF3E7, 0x6EC5, 0xD8FE, 0x6EC9, 0xFCD1, 0x6ECB, 0xEDB2, 0x6ECC, 0xF4AF, + 0x6ECE, 0xFBA3, 0x6ED1, 0xFCC1, 0x6ED3, 0xEEAB, 0x6ED4, 0xD4A5, 0x6EEF, 0xF4F2, 0x6EF4, 0xEED9, 0x6EF8, 0xFBCA, 0x6EFE, 0xCDE3, + 0x6EFF, 0xD8BB, 0x6F01, 0xE5DB, 0x6F02, 0xF8F7, 0x6F06, 0xF6D4, 0x6F0F, 0xD7A9, 0x6F11, 0xCBC9, 0x6F14, 0xE6D1, 0x6F15, 0xF0CC, + 0x6F20, 0xD8AE, 0x6F22, 0xF9D3, 0x6F23, 0xD5FE, 0x6F2B, 0xD8BC, 0x6F2C, 0xF2B0, 0x6F31, 0xE2AB, 0x6F32, 0xF3E8, 0x6F38, 0xEFC2, + 0x6F3F, 0xEDEC, 0x6F41, 0xE7B8, 0x6F51, 0xDAFE, 0x6F54, 0xCCBE, 0x6F57, 0xF2FC, 0x6F58, 0xDAEB, 0x6F5A, 0xE2D8, 0x6F5B, 0xEDD6, + 0x6F5E, 0xD6D1, 0x6F5F, 0xE0B3, 0x6F62, 0xFCD2, 0x6F64, 0xEBC8, 0x6F6D, 0xD3C1, 0x6F6E, 0xF0CD, 0x6F70, 0xCFF7, 0x6F7A, 0xEDD2, + 0x6F7C, 0xD4D8, 0x6F7D, 0xDCC9, 0x6F7E, 0xD7F1, 0x6F81, 0xDFBB, 0x6F84, 0xF3A5, 0x6F88, 0xF4CD, 0x6F8D, 0xF1BF, 0x6F8E, 0xF8B1, + 0x6F90, 0xE9FA, 0x6F94, 0xFBCB, 0x6F97, 0xCAD5, 0x6FA3, 0xF9D4, 0x6FA4, 0xF7CA, 0x6FA7, 0xD6C8, 0x6FAE, 0xFCE8, 0x6FAF, 0xF3BD, + 0x6FB1, 0xEEFE, 0x6FB3, 0xE7FE, 0x6FB9, 0xD3C2, 0x6FBE, 0xD3B6, 0x6FC0, 0xCCAD, 0x6FC1, 0xF6FA, 0x6FC2, 0xD6B2, 0x6FC3, 0xD2D8, + 0x6FCA, 0xE7D8, 0x6FD5, 0xE3A5, 0x6FDA, 0xE7B9, 0x6FDF, 0xF0AD, 0x6FE0, 0xFBCC, 0x6FE1, 0xEBA1, 0x6FE4, 0xD4A6, 0x6FE9, 0xFBCD, + 0x6FEB, 0xD5BD, 0x6FEC, 0xF1DF, 0x6FEF, 0xF6FB, 0x6FF1, 0xDEB4, 0x6FFE, 0xD5EB, 0x7001, 0xE5C8, 0x7005, 0xFBA4, 0x7006, 0xD4B9, + 0x7009, 0xDEE1, 0x700B, 0xE4A3, 0x700F, 0xD7B7, 0x7011, 0xF8EE, 0x7015, 0xDEB5, 0x7018, 0xD6D2, 0x701A, 0xF9D5, 0x701B, 0xE7BA, + 0x701C, 0xEBD5, 0x701D, 0xD5F7, 0x701E, 0xEFE7, 0x701F, 0xE1BE, 0x7023, 0xFAAE, 0x7027, 0xD6E9, 0x7028, 0xD6EE, 0x702F, 0xE7BB, + 0x7037, 0xECCB, 0x703E, 0xD5B3, 0x704C, 0xCEB4, 0x7050, 0xFBA5, 0x7051, 0xE1EE, 0x7058, 0xF7A8, 0x705D, 0xFBCE, 0x7063, 0xD8BD, + 0x706B, 0xFBFD, 0x7070, 0xFCE9, 0x7078, 0xCFB6, 0x707C, 0xEDC7, 0x707D, 0xEEAC, 0x7085, 0xCCDD, 0x708A, 0xF6A7, 0x708E, 0xE6FA, + 0x7092, 0xF5A4, 0x7098, 0xFDDC, 0x7099, 0xEDB3, 0x709A, 0xCEC9, 0x70A1, 0xEFE8, 0x70A4, 0xE1BF, 0x70AB, 0xFADB, 0x70AC, 0xCBE3, + 0x70AD, 0xF7A9, 0x70AF, 0xFBA6, 0x70B3, 0xDCB9, 0x70B7, 0xF1C0, 0x70B8, 0xEDC8, 0x70B9, 0xEFC3, 0x70C8, 0xD6AD, 0x70CB, 0xFDCE, + 0x70CF, 0xE8A1, 0x70D8, 0xFBF4, 0x70D9, 0xD5A7, 0x70DD, 0xF1F6, 0x70DF, 0xE6D3, 0x70F1, 0xCCDE, 0x70F9, 0xF8B2, 0x70FD, 0xDCEB, + 0x7104, 0xFDB6, 0x7109, 0xE5EA, 0x710C, 0xF1E0, 0x7119, 0xDBCC, 0x711A, 0xDDCD, 0x711E, 0xD4C8, 0x7121, 0xD9ED, 0x7126, 0xF5A5, + 0x7130, 0xE6FB, 0x7136, 0xE6D4, 0x7147, 0xFDC8, 0x7149, 0xD6A1, 0x714A, 0xFDBF, 0x714C, 0xFCD3, 0x714E, 0xEFA1, 0x7150, 0xE7BC, + 0x7156, 0xD1EE, 0x7159, 0xE6D5, 0x715C, 0xE9F2, 0x715E, 0xDFB0, 0x7164, 0xD8E0, 0x7165, 0xFCBA, 0x7166, 0xFDAF, 0x7167, 0xF0CE, + 0x7169, 0xDBE1, 0x716C, 0xE5C9, 0x716E, 0xEDB4, 0x717D, 0xE0C3, 0x7184, 0xE3D8, 0x7189, 0xE9FB, 0x718A, 0xEAA8, 0x718F, 0xFDB7, + 0x7192, 0xFBA7, 0x7194, 0xE9C2, 0x7199, 0xFDF7, 0x719F, 0xE2D9, 0x71A2, 0xDCEC, 0x71AC, 0xE8A2, 0x71B1, 0xE6F0, 0x71B9, 0xFDF8, + 0x71BA, 0xFDF9, 0x71BE, 0xF6BF, 0x71C1, 0xE7A7, 0x71C3, 0xE6D7, 0x71C8, 0xD4F3, 0x71C9, 0xD4C9, 0x71CE, 0xD6FA, 0x71D0, 0xD7F2, + 0x71D2, 0xE1C0, 0x71D4, 0xDBE2, 0x71D5, 0xE6D8, 0x71DF, 0xE7BD, 0x71E5, 0xF0CF, 0x71E6, 0xF3BE, 0x71E7, 0xE2AC, 0x71ED, 0xF5B7, + 0x71EE, 0xE0F0, 0x71FB, 0xFDB8, 0x71FC, 0xE3E8, 0x71FE, 0xD4A7, 0x71FF, 0xE8FC, 0x7200, 0xFAD2, 0x7206, 0xF8EF, 0x7210, 0xD6D3, + 0x721B, 0xD5B4, 0x722A, 0xF0D0, 0x722C, 0xF7F0, 0x722D, 0xEEB3, 0x7230, 0xEABA, 0x7232, 0xEAD3, 0x7235, 0xEDC9, 0x7236, 0xDDAB, + 0x723A, 0xE5AC, 0x723B, 0xFDA1, 0x723D, 0xDFD0, 0x723E, 0xECB3, 0x7240, 0xDFD1, 0x7246, 0xEDED, 0x7247, 0xF8B8, 0x7248, 0xF7FA, + 0x724C, 0xF8AB, 0x7252, 0xF4E0, 0x7258, 0xD4BA, 0x7259, 0xE4B3, 0x725B, 0xE9DA, 0x725D, 0xDEB6, 0x725F, 0xD9BF, 0x7261, 0xD9C0, + 0x7262, 0xD6EF, 0x7267, 0xD9CC, 0x7269, 0xDAAA, 0x7272, 0xDFE5, 0x7279, 0xF7E5, 0x727D, 0xCCB2, 0x7280, 0xDFF9, 0x7281, 0xD7E0, + 0x72A2, 0xD4BB, 0x72A7, 0xFDFA, 0x72AC, 0xCCB3, 0x72AF, 0xDBF3, 0x72C0, 0xDFD2, 0x72C2, 0xCECA, 0x72C4, 0xEEDA, 0x72CE, 0xE4E4, + 0x72D0, 0xFBCF, 0x72D7, 0xCFB7, 0x72D9, 0xEEC3, 0x72E1, 0xCEEA, 0x72E9, 0xE2AD, 0x72F8, 0xD7E1, 0x72F9, 0xFAF5, 0x72FC, 0xD5C9, + 0x72FD, 0xF8AC, 0x730A, 0xE7D9, 0x7316, 0xF3E9, 0x731B, 0xD8ED, 0x731C, 0xE3C4, 0x731D, 0xF0F1, 0x7325, 0xE8E5, 0x7329, 0xE0FA, + 0x732A, 0xEEC4, 0x732B, 0xD9DE, 0x7336, 0xEBA2, 0x7337, 0xEBA3, 0x733E, 0xFCC2, 0x733F, 0xEABB, 0x7344, 0xE8AB, 0x7345, 0xDEE2, + 0x7350, 0xEDEF, 0x7352, 0xE8A3, 0x7357, 0xCFF1, 0x7368, 0xD4BC, 0x736A, 0xFCEA, 0x7370, 0xE7BE, 0x7372, 0xFCF2, 0x7375, 0xD6B4, + 0x7378, 0xE2AE, 0x737A, 0xD3B7, 0x737B, 0xFACC, 0x7384, 0xFADC, 0x7386, 0xEDB5, 0x7387, 0xE1E3, 0x7389, 0xE8AC, 0x738B, 0xE8DD, + 0x738E, 0xEFE9, 0x7394, 0xF4BD, 0x7396, 0xCFB8, 0x7397, 0xE9DB, 0x7398, 0xD1AC, 0x739F, 0xDAC7, 0x73A7, 0xEBC9, 0x73A9, 0xE8CC, + 0x73AD, 0xDEB7, 0x73B2, 0xD6BC, 0x73B3, 0xD3E5, 0x73B9, 0xFADD, 0x73C0, 0xDAD6, 0x73C2, 0xCAB1, 0x73C9, 0xDAC8, 0x73CA, 0xDFA6, + 0x73CC, 0xF9B3, 0x73CD, 0xF2D2, 0x73CF, 0xCAC4, 0x73D6, 0xCECB, 0x73D9, 0xCDF5, 0x73DD, 0xFDB0, 0x73DE, 0xD5A8, 0x73E0, 0xF1C1, + 0x73E3, 0xE2E9, 0x73E4, 0xDCCA, 0x73E5, 0xECB4, 0x73E6, 0xFAC0, 0x73E9, 0xFBA8, 0x73EA, 0xD0A8, 0x73ED, 0xDAEC, 0x73F7, 0xD9EE, + 0x73F9, 0xE0FB, 0x73FD, 0xEFEA, 0x73FE, 0xFADE, 0x7401, 0xE0C4, 0x7403, 0xCFB9, 0x7405, 0xD5CA, 0x7406, 0xD7E2, 0x7407, 0xE2AF, + 0x7409, 0xD7B8, 0x7413, 0xE8CD, 0x741B, 0xF6DA, 0x7420, 0xEFA2, 0x7421, 0xE2DA, 0x7422, 0xF6FC, 0x7425, 0xFBD0, 0x7426, 0xD1AD, + 0x7428, 0xCDE4, 0x742A, 0xD1AE, 0x742B, 0xDCED, 0x742C, 0xE8CE, 0x742E, 0xF0F9, 0x742F, 0xCEB5, 0x7430, 0xE6FC, 0x7433, 0xD7FB, + 0x7434, 0xD0D6, 0x7435, 0xDDF5, 0x7436, 0xF7F1, 0x7438, 0xF6FD, 0x743A, 0xDBF7, 0x743F, 0xFBEA, 0x7440, 0xE9DC, 0x7441, 0xD9C1, + 0x7443, 0xF5F2, 0x7444, 0xE0C5, 0x744B, 0xEAD4, 0x7455, 0xF9C2, 0x7457, 0xEABC, 0x7459, 0xD2C5, 0x745A, 0xFBD1, 0x745B, 0xE7C0, + 0x745C, 0xEBA5, 0x745E, 0xDFFA, 0x745F, 0xE3A2, 0x7460, 0xD7B9, 0x7462, 0xE9C3, 0x7464, 0xE8FD, 0x7465, 0xE8AF, 0x7468, 0xF2D3, + 0x7469, 0xFBA9, 0x746A, 0xD8A5, 0x746F, 0xD5CB, 0x747E, 0xD0C8, 0x7482, 0xD1AF, 0x7483, 0xD7E3, 0x7487, 0xE0C6, 0x7489, 0xD6A2, + 0x748B, 0xEDF0, 0x7498, 0xD7F3, 0x749C, 0xFCD4, 0x749E, 0xDAD7, 0x749F, 0xCCDF, 0x74A1, 0xF2D4, 0x74A3, 0xD1B0, 0x74A5, 0xCCE0, + 0x74A7, 0xDBFD, 0x74A8, 0xF3BF, 0x74AA, 0xF0D1, 0x74B0, 0xFCBB, 0x74B2, 0xE2B0, 0x74B5, 0xE6A5, 0x74B9, 0xE2DB, 0x74BD, 0xDFDE, + 0x74BF, 0xE0C7, 0x74C6, 0xF2EF, 0x74CA, 0xCCE1, 0x74CF, 0xD6EA, 0x74D4, 0xE7C2, 0x74D8, 0xCEB6, 0x74DA, 0xF3C0, 0x74DC, 0xCDFE, + 0x74E0, 0xFBD2, 0x74E2, 0xF8F8, 0x74E3, 0xF7FB, 0x74E6, 0xE8BF, 0x74EE, 0xE8B7, 0x74F7, 0xEDB6, 0x7501, 0xDCBA, 0x7504, 0xCCB4, + 0x7511, 0xF1F7, 0x7515, 0xE8B8, 0x7518, 0xCAF6, 0x751A, 0xE4A4, 0x751B, 0xF4D6, 0x751F, 0xDFE6, 0x7523, 0xDFA7, 0x7525, 0xDFE7, + 0x7526, 0xE1C1, 0x7528, 0xE9C4, 0x752B, 0xDCCB, 0x752C, 0xE9C5, 0x7530, 0xEFA3, 0x7531, 0xEBA6, 0x7532, 0xCBA3, 0x7533, 0xE3E9, + 0x7537, 0xD1FB, 0x7538, 0xEFA4, 0x753A, 0xEFEB, 0x7547, 0xD0B4, 0x754C, 0xCDA3, 0x754F, 0xE8E6, 0x7551, 0xEFA5, 0x7553, 0xD3CC, + 0x7554, 0xDAED, 0x7559, 0xD7BA, 0x755B, 0xF2D5, 0x755C, 0xF5E5, 0x755D, 0xD9EF, 0x7562, 0xF9B4, 0x7565, 0xD5D4, 0x7566, 0xFDCF, + 0x756A, 0xDBE3, 0x756F, 0xF1E1, 0x7570, 0xECB6, 0x7575, 0xFBFE, 0x7576, 0xD3D7, 0x7578, 0xD1B1, 0x757A, 0xCBB1, 0x757F, 0xD1B2, + 0x7586, 0xCBB2, 0x7587, 0xF1C2, 0x758A, 0xF4E1, 0x758B, 0xF9B5, 0x758E, 0xE1C3, 0x758F, 0xE1C2, 0x7591, 0xEBF7, 0x759D, 0xDFA8, + 0x75A5, 0xCBCA, 0x75AB, 0xE6B9, 0x75B1, 0xF8DE, 0x75B2, 0xF9AA, 0x75B3, 0xCAF7, 0x75B5, 0xEDB7, 0x75B8, 0xD3B8, 0x75B9, 0xF2D6, + 0x75BC, 0xD4D9, 0x75BD, 0xEEC5, 0x75BE, 0xF2F0, 0x75C2, 0xCAB2, 0x75C5, 0xDCBB, 0x75C7, 0xF1F8, 0x75CD, 0xECB7, 0x75D2, 0xE5CA, + 0x75D4, 0xF6C0, 0x75D5, 0xFDDD, 0x75D8, 0xD4E3, 0x75D9, 0xCCE2, 0x75DB, 0xF7D4, 0x75E2, 0xD7E5, 0x75F0, 0xD3C3, 0x75F2, 0xD8A6, + 0x75F4, 0xF6C1, 0x75FA, 0xDDF6, 0x75FC, 0xCDC0, 0x7600, 0xE5DC, 0x760D, 0xE5CB, 0x7619, 0xE1C4, 0x761F, 0xE8B0, 0x7620, 0xF4B0, + 0x7621, 0xF3EA, 0x7622, 0xDAEE, 0x7624, 0xD7BB, 0x7626, 0xE2B1, 0x763B, 0xD7AA, 0x7642, 0xD6FB, 0x764C, 0xE4DF, 0x764E, 0xCAD6, + 0x7652, 0xEBA8, 0x7656, 0xDBFE, 0x7661, 0xF6C2, 0x7664, 0xEFBB, 0x7669, 0xD4FD, 0x766C, 0xE0C8, 0x7670, 0xE8B9, 0x7672, 0xEFA6, + 0x7678, 0xCDA4, 0x767B, 0xD4F4, 0x767C, 0xDBA1, 0x767D, 0xDBDC, 0x767E, 0xDBDD, 0x7684, 0xEEDC, 0x7686, 0xCBCB, 0x7687, 0xFCD5, + 0x768E, 0xCEEB, 0x7690, 0xCDC1, 0x7693, 0xFBD3, 0x76AE, 0xF9AB, 0x76BA, 0xF5D4, 0x76BF, 0xD9A9, 0x76C2, 0xE9DD, 0x76C3, 0xDBCD, + 0x76C6, 0xDDCE, 0x76C8, 0xE7C3, 0x76CA, 0xECCC, 0x76D2, 0xF9EC, 0x76D6, 0xCBCC, 0x76DB, 0xE0FC, 0x76DC, 0xD4A8, 0x76DE, 0xEDD3, + 0x76DF, 0xD8EF, 0x76E1, 0xF2D7, 0x76E3, 0xCAF8, 0x76E4, 0xDAEF, 0x76E7, 0xD6D4, 0x76EE, 0xD9CD, 0x76F2, 0xD8EE, 0x76F4, 0xF2C1, + 0x76F8, 0xDFD3, 0x76FC, 0xDAF0, 0x76FE, 0xE2EA, 0x7701, 0xE0FD, 0x7704, 0xD8F8, 0x7708, 0xF7AF, 0x7709, 0xDAB6, 0x770B, 0xCAD7, + 0x771E, 0xF2D8, 0x7720, 0xD8F9, 0x7729, 0xFADF, 0x7737, 0xCFEF, 0x7738, 0xD9C2, 0x773A, 0xF0D2, 0x773C, 0xE4D1, 0x7740, 0xF3B7, + 0x774D, 0xFAE0, 0x775B, 0xEFEC, 0x7761, 0xE2B2, 0x7763, 0xD4BD, 0x7766, 0xD9CE, 0x776B, 0xF4E2, 0x7779, 0xD4A9, 0x777E, 0xCDC2, + 0x777F, 0xE7DA, 0x778B, 0xF2D9, 0x7791, 0xD9AA, 0x779E, 0xD8BE, 0x77A5, 0xDCAD, 0x77AC, 0xE2EB, 0x77AD, 0xD6FC, 0x77B0, 0xCAF9, + 0x77B3, 0xD4DA, 0x77BB, 0xF4D7, 0x77BC, 0xCCA1, 0x77BF, 0xCFBA, 0x77D7, 0xF5B8, 0x77DB, 0xD9C3, 0x77DC, 0xD0E8, 0x77E2, 0xE3C5, + 0x77E3, 0xEBF8, 0x77E5, 0xF2B1, 0x77E9, 0xCFBB, 0x77ED, 0xD3AD, 0x77EE, 0xE8E1, 0x77EF, 0xCEEC, 0x77F3, 0xE0B4, 0x7802, 0xDEE3, + 0x7812, 0xDDF7, 0x7825, 0xF2B2, 0x7826, 0xF3F6, 0x7827, 0xF6DB, 0x782C, 0xD7FE, 0x7832, 0xF8DF, 0x7834, 0xF7F2, 0x7845, 0xD0A9, + 0x784F, 0xE6DA, 0x785D, 0xF5A6, 0x786B, 0xD7BC, 0x786C, 0xCCE3, 0x786F, 0xE6DB, 0x787C, 0xDDDD, 0x7881, 0xD1B3, 0x7887, 0xEFED, + 0x788C, 0xD6DE, 0x788D, 0xE4F4, 0x788E, 0xE1EF, 0x7891, 0xDDF8, 0x7897, 0xE8CF, 0x78A3, 0xCAE5, 0x78A7, 0xDCA1, 0x78A9, 0xE0B5, + 0x78BA, 0xFCAC, 0x78BB, 0xFCAD, 0x78BC, 0xD8A7, 0x78C1, 0xEDB8, 0x78C5, 0xDBB6, 0x78CA, 0xD6F0, 0x78CB, 0xF3AF, 0x78CE, 0xCDA5, + 0x78D0, 0xDAF1, 0x78E8, 0xD8A8, 0x78EC, 0xCCE4, 0x78EF, 0xD1B4, 0x78F5, 0xCAD8, 0x78FB, 0xDAF2, 0x7901, 0xF5A7, 0x790E, 0xF5A8, + 0x7916, 0xE6A6, 0x792A, 0xD5EC, 0x792B, 0xD5F8, 0x792C, 0xDAF3, 0x793A, 0xE3C6, 0x793E, 0xDEE4, 0x7940, 0xDEE5, 0x7941, 0xD1B5, + 0x7947, 0xD1B6, 0x7948, 0xD1B7, 0x7949, 0xF2B3, 0x7950, 0xE9DE, 0x7956, 0xF0D3, 0x7957, 0xF2B4, 0x795A, 0xF0D4, 0x795B, 0xCBE4, + 0x795C, 0xFBD4, 0x795D, 0xF5E6, 0x795E, 0xE3EA, 0x7960, 0xDEE6, 0x7965, 0xDFD4, 0x7968, 0xF8F9, 0x796D, 0xF0AE, 0x797A, 0xD1B8, + 0x797F, 0xD6DF, 0x7981, 0xD0D7, 0x798D, 0xFCA1, 0x798E, 0xEFEE, 0x798F, 0xDCD8, 0x7991, 0xE9DF, 0x79A6, 0xE5DD, 0x79A7, 0xFDFB, + 0x79AA, 0xE0C9, 0x79AE, 0xD6C9, 0x79B1, 0xD4AA, 0x79B3, 0xE5CC, 0x79B9, 0xE9E0, 0x79BD, 0xD0D8, 0x79BE, 0xFCA2, 0x79BF, 0xD4BE, + 0x79C0, 0xE2B3, 0x79C1, 0xDEE7, 0x79C9, 0xDCBC, 0x79CA, 0xD2B6, 0x79CB, 0xF5D5, 0x79D1, 0xCEA1, 0x79D2, 0xF5A9, 0x79D5, 0xDDF9, + 0x79D8, 0xDDFA, 0x79DF, 0xF0D5, 0x79E4, 0xF6DF, 0x79E6, 0xF2DA, 0x79E7, 0xE4EB, 0x79E9, 0xF2F1, 0x79FB, 0xECB9, 0x7A00, 0xFDFC, + 0x7A05, 0xE1AA, 0x7A08, 0xCAD9, 0x7A0B, 0xEFEF, 0x7A0D, 0xF5AA, 0x7A14, 0xECF9, 0x7A17, 0xF8AD, 0x7A19, 0xF2C2, 0x7A1A, 0xF6C3, + 0x7A1C, 0xD7D2, 0x7A1F, 0xF9A2, 0x7A20, 0xF0D6, 0x7A2E, 0xF0FA, 0x7A31, 0xF6E0, 0x7A36, 0xE9F3, 0x7A37, 0xF2C3, 0x7A3B, 0xD4AB, + 0x7A3C, 0xCAB3, 0x7A3D, 0xCDA6, 0x7A3F, 0xCDC3, 0x7A40, 0xCDDA, 0x7A46, 0xD9CF, 0x7A49, 0xF6C4, 0x7A4D, 0xEEDD, 0x7A4E, 0xE7C4, + 0x7A57, 0xE2B4, 0x7A61, 0xDFE2, 0x7A62, 0xE7DB, 0x7A69, 0xE8B1, 0x7A6B, 0xFCAE, 0x7A70, 0xE5CD, 0x7A74, 0xFAEB, 0x7A76, 0xCFBC, + 0x7A79, 0xCFE2, 0x7A7A, 0xCDF6, 0x7A7D, 0xEFF0, 0x7A7F, 0xF4BE, 0x7A81, 0xD4CD, 0x7A84, 0xF3B8, 0x7A88, 0xE9A1, 0x7A92, 0xF2F2, + 0x7A93, 0xF3EB, 0x7A95, 0xF0D7, 0x7A98, 0xCFD7, 0x7A9F, 0xCFDF, 0x7AA9, 0xE8C0, 0x7AAA, 0xE8C1, 0x7AAE, 0xCFE3, 0x7AAF, 0xE9A2, + 0x7ABA, 0xD0AA, 0x7AC4, 0xF3C1, 0x7AC5, 0xD0AB, 0x7AC7, 0xD4E4, 0x7ACA, 0xEFBC, 0x7ACB, 0xD8A1, 0x7AD7, 0xD9DF, 0x7AD9, 0xF3D7, + 0x7ADD, 0xDCBD, 0x7ADF, 0xCCE5, 0x7AE0, 0xEDF1, 0x7AE3, 0xF1E2, 0x7AE5, 0xD4DB, 0x7AEA, 0xE2B5, 0x7AED, 0xCAE6, 0x7AEF, 0xD3AE, + 0x7AF6, 0xCCE6, 0x7AF9, 0xF1D3, 0x7AFA, 0xF5E7, 0x7AFF, 0xCADA, 0x7B0F, 0xFBEE, 0x7B11, 0xE1C5, 0x7B19, 0xDFE9, 0x7B1B, 0xEEDE, + 0x7B1E, 0xF7C2, 0x7B20, 0xD8A2, 0x7B26, 0xDDAC, 0x7B2C, 0xF0AF, 0x7B2D, 0xD6BD, 0x7B39, 0xE1AB, 0x7B46, 0xF9B6, 0x7B49, 0xD4F5, + 0x7B4B, 0xD0C9, 0x7B4C, 0xEFA7, 0x7B4D, 0xE2EC, 0x7B4F, 0xDBEA, 0x7B50, 0xCECC, 0x7B51, 0xF5E8, 0x7B52, 0xF7D5, 0x7B54, 0xD3CD, + 0x7B56, 0xF3FE, 0x7B60, 0xD0B5, 0x7B6C, 0xE0FE, 0x7B6E, 0xDFFB, 0x7B75, 0xE6DD, 0x7B7D, 0xE8A4, 0x7B87, 0xCBCD, 0x7B8B, 0xEFA8, + 0x7B8F, 0xEEB4, 0x7B94, 0xDAD8, 0x7B95, 0xD1B9, 0x7B97, 0xDFA9, 0x7B9A, 0xF3B0, 0x7B9D, 0xCCC4, 0x7BA1, 0xCEB7, 0x7BAD, 0xEFA9, + 0x7BB1, 0xDFD5, 0x7BB4, 0xEDD7, 0x7BB8, 0xEEC6, 0x7BC0, 0xEFBD, 0x7BC1, 0xFCD6, 0x7BC4, 0xDBF4, 0x7BC6, 0xEFAA, 0x7BC7, 0xF8B9, + 0x7BC9, 0xF5E9, 0x7BD2, 0xE3D9, 0x7BE0, 0xE1C6, 0x7BE4, 0xD4BF, 0x7BE9, 0xDEE8, 0x7C07, 0xF0EA, 0x7C12, 0xF3C2, 0x7C1E, 0xD3AF, + 0x7C21, 0xCADB, 0x7C27, 0xFCD7, 0x7C2A, 0xEDD8, 0x7C2B, 0xE1C7, 0x7C3D, 0xF4D8, 0x7C3E, 0xD6B3, 0x7C3F, 0xDDAD, 0x7C43, 0xD5BE, + 0x7C4C, 0xF1C3, 0x7C4D, 0xEEDF, 0x7C60, 0xD6EB, 0x7C64, 0xF4D9, 0x7C6C, 0xD7E6, 0x7C73, 0xDAB7, 0x7C83, 0xDDFB, 0x7C89, 0xDDCF, + 0x7C92, 0xD8A3, 0x7C95, 0xDAD9, 0x7C97, 0xF0D8, 0x7C98, 0xEFC4, 0x7C9F, 0xE1D8, 0x7CA5, 0xF1D4, 0x7CA7, 0xEDF2, 0x7CAE, 0xD5DB, + 0x7CB1, 0xD5DC, 0x7CB2, 0xF3C4, 0x7CB3, 0xCBD7, 0x7CB9, 0xE2B6, 0x7CBE, 0xEFF1, 0x7CCA, 0xFBD5, 0x7CD6, 0xD3D8, 0x7CDE, 0xDDD0, + 0x7CDF, 0xF0D9, 0x7CE0, 0xCBB3, 0x7CE7, 0xD5DD, 0x7CFB, 0xCDA7, 0x7CFE, 0xD0AC, 0x7D00, 0xD1BA, 0x7D02, 0xF1C4, 0x7D04, 0xE5B3, + 0x7D05, 0xFBF5, 0x7D06, 0xE9E1, 0x7D07, 0xFDE0, 0x7D08, 0xFCBC, 0x7D0A, 0xDAA2, 0x7D0B, 0xDAA3, 0x7D0D, 0xD2A1, 0x7D10, 0xD2EF, + 0x7D14, 0xE2ED, 0x7D17, 0xDEE9, 0x7D18, 0xCEDC, 0x7D19, 0xF2B5, 0x7D1A, 0xD0E4, 0x7D1B, 0xDDD1, 0x7D20, 0xE1C8, 0x7D21, 0xDBB7, + 0x7D22, 0xDFE3, 0x7D2B, 0xEDB9, 0x7D2C, 0xF1C5, 0x7D2E, 0xF3CF, 0x7D2F, 0xD7AB, 0x7D30, 0xE1AC, 0x7D33, 0xE3EB, 0x7D35, 0xEEC7, + 0x7D39, 0xE1C9, 0x7D3A, 0xCAFA, 0x7D42, 0xF0FB, 0x7D43, 0xFAE1, 0x7D44, 0xF0DA, 0x7D45, 0xCCE7, 0x7D46, 0xDAF4, 0x7D50, 0xCCBF, + 0x7D5E, 0xCEED, 0x7D61, 0xD5A9, 0x7D62, 0xFAE2, 0x7D66, 0xD0E5, 0x7D68, 0xEBD6, 0x7D6A, 0xECDF, 0x7D6E, 0xDFFC, 0x7D71, 0xF7D6, + 0x7D72, 0xDEEA, 0x7D73, 0xCBB4, 0x7D76, 0xEFBE, 0x7D79, 0xCCB5, 0x7D7F, 0xCFBD, 0x7D8E, 0xEFF2, 0x7D8F, 0xE2B7, 0x7D93, 0xCCE8, + 0x7D9C, 0xF0FC, 0x7DA0, 0xD6E0, 0x7DA2, 0xF1C6, 0x7DAC, 0xE2B8, 0x7DAD, 0xEBAB, 0x7DB1, 0xCBB5, 0x7DB2, 0xD8D1, 0x7DB4, 0xF4CE, + 0x7DB5, 0xF3F7, 0x7DB8, 0xD7C6, 0x7DBA, 0xD1BB, 0x7DBB, 0xF7AA, 0x7DBD, 0xEDCA, 0x7DBE, 0xD7D3, 0x7DBF, 0xD8FA, 0x7DC7, 0xF6C5, + 0x7DCA, 0xD1CC, 0x7DCB, 0xDDFC, 0x7DD6, 0xDFFD, 0x7DD8, 0xF9E5, 0x7DDA, 0xE0CA, 0x7DDD, 0xF2FD, 0x7DDE, 0xD3B0, 0x7DE0, 0xF4F3, + 0x7DE1, 0xDAC9, 0x7DE3, 0xE6DE, 0x7DE8, 0xF8BA, 0x7DE9, 0xE8D0, 0x7DEC, 0xD8FB, 0x7DEF, 0xEAD5, 0x7DF4, 0xD6A3, 0x7DFB, 0xF6C6, + 0x7E09, 0xF2DB, 0x7E0A, 0xE4FC, 0x7E15, 0xE8B2, 0x7E1B, 0xDADA, 0x7E1D, 0xF2DC, 0x7E1E, 0xFBD6, 0x7E1F, 0xE9B2, 0x7E21, 0xEEAD, + 0x7E23, 0xFAE3, 0x7E2B, 0xDCEE, 0x7E2E, 0xF5EA, 0x7E2F, 0xE6E0, 0x7E31, 0xF0FD, 0x7E37, 0xD7AC, 0x7E3D, 0xF5C5, 0x7E3E, 0xEEE0, + 0x7E41, 0xDBE5, 0x7E43, 0xDDDE, 0x7E46, 0xD9F0, 0x7E47, 0xE9A3, 0x7E52, 0xF1F9, 0x7E54, 0xF2C4, 0x7E55, 0xE0CB, 0x7E5E, 0xE9A4, + 0x7E61, 0xE2B9, 0x7E69, 0xE3B1, 0x7E6A, 0xFCEB, 0x7E6B, 0xCDA8, 0x7E6D, 0xCCB6, 0x7E70, 0xF0DB, 0x7E79, 0xE6BA, 0x7E7C, 0xCDA9, + 0x7E82, 0xF3C3, 0x7E8C, 0xE1D9, 0x7E8F, 0xEFAB, 0x7E93, 0xE7C5, 0x7E96, 0xE0E9, 0x7E98, 0xF3C5, 0x7E9B, 0xD4C0, 0x7E9C, 0xD5BF, + 0x7F36, 0xDDAE, 0x7F38, 0xF9FC, 0x7F3A, 0xCCC0, 0x7F4C, 0xE5A2, 0x7F50, 0xCEB8, 0x7F54, 0xD8D2, 0x7F55, 0xF9D6, 0x7F6A, 0xF1AA, + 0x7F6B, 0xCED1, 0x7F6E, 0xF6C7, 0x7F70, 0xDBEB, 0x7F72, 0xDFFE, 0x7F75, 0xD8E1, 0x7F77, 0xF7F3, 0x7F79, 0xD7E7, 0x7F85, 0xD4FE, + 0x7F88, 0xD1BC, 0x7F8A, 0xE5CF, 0x7F8C, 0xCBB6, 0x7F8E, 0xDAB8, 0x7F94, 0xCDC4, 0x7F9A, 0xD6BE, 0x7F9E, 0xE2BA, 0x7FA4, 0xCFD8, + 0x7FA8, 0xE0CC, 0x7FA9, 0xEBF9, 0x7FB2, 0xFDFD, 0x7FB8, 0xD7E8, 0x7FB9, 0xCBD8, 0x7FBD, 0xE9E2, 0x7FC1, 0xE8BA, 0x7FC5, 0xE3C7, + 0x7FCA, 0xECCD, 0x7FCC, 0xECCE, 0x7FCE, 0xD6BF, 0x7FD2, 0xE3A7, 0x7FD4, 0xDFD6, 0x7FD5, 0xFDE8, 0x7FDF, 0xEEE1, 0x7FE0, 0xF6A8, + 0x7FE1, 0xDDFD, 0x7FE9, 0xF8BB, 0x7FEB, 0xE8D1, 0x7FF0, 0xF9D7, 0x7FF9, 0xCEEE, 0x7FFC, 0xECCF, 0x8000, 0xE9A5, 0x8001, 0xD6D5, + 0x8003, 0xCDC5, 0x8005, 0xEDBA, 0x8006, 0xD1BD, 0x8009, 0xCFBE, 0x800C, 0xECBB, 0x8010, 0xD2B1, 0x8015, 0xCCE9, 0x8017, 0xD9C4, + 0x8018, 0xE9FC, 0x802D, 0xD1BE, 0x8033, 0xECBC, 0x8036, 0xE5AD, 0x803D, 0xF7B0, 0x803F, 0xCCEA, 0x8043, 0xD3C4, 0x8046, 0xD6C0, + 0x804A, 0xD6FD, 0x8056, 0xE1A1, 0x8058, 0xDEBD, 0x805A, 0xF6A9, 0x805E, 0xDAA4, 0x806F, 0xD6A4, 0x8070, 0xF5C6, 0x8072, 0xE1A2, + 0x8073, 0xE9C6, 0x8077, 0xF2C5, 0x807D, 0xF4E9, 0x807E, 0xD6EC, 0x807F, 0xEBD3, 0x8084, 0xECBD, 0x8085, 0xE2DC, 0x8086, 0xDEEB, + 0x8087, 0xF0DC, 0x8089, 0xEBBF, 0x808B, 0xD7CE, 0x808C, 0xD1BF, 0x8096, 0xF5AB, 0x809B, 0xF9FD, 0x809D, 0xCADC, 0x80A1, 0xCDC6, + 0x80A2, 0xF2B6, 0x80A5, 0xDDFE, 0x80A9, 0xCCB7, 0x80AA, 0xDBB8, 0x80AF, 0xD0E9, 0x80B1, 0xCEDD, 0x80B2, 0xEBC0, 0x80B4, 0xFDA2, + 0x80BA, 0xF8CB, 0x80C3, 0xEAD6, 0x80C4, 0xF1B0, 0x80CC, 0xDBCE, 0x80CE, 0xF7C3, 0x80DA, 0xDBCF, 0x80DB, 0xCBA4, 0x80DE, 0xF8E0, + 0x80E1, 0xFBD7, 0x80E4, 0xEBCA, 0x80E5, 0xE0A1, 0x80F1, 0xCECD, 0x80F4, 0xD4DC, 0x80F8, 0xFDD8, 0x80FD, 0xD2F6, 0x8102, 0xF2B7, + 0x8105, 0xFAF6, 0x8106, 0xF6AA, 0x8107, 0xFAF7, 0x8108, 0xD8E6, 0x810A, 0xF4B1, 0x8118, 0xE8D2, 0x811A, 0xCAC5, 0x811B, 0xCCEB, + 0x8123, 0xE2EE, 0x8129, 0xE2BB, 0x812B, 0xF7AD, 0x812F, 0xF8E1, 0x8139, 0xF3EC, 0x813E, 0xDEA1, 0x814B, 0xE4FD, 0x814E, 0xE3EC, + 0x8150, 0xDDAF, 0x8151, 0xDDB0, 0x8154, 0xCBB7, 0x8155, 0xE8D3, 0x8165, 0xE1A3, 0x8166, 0xD2E0, 0x816B, 0xF0FE, 0x8170, 0xE9A6, + 0x8171, 0xCBF2, 0x8178, 0xEDF3, 0x8179, 0xDCD9, 0x817A, 0xE0CD, 0x817F, 0xF7DA, 0x8180, 0xDBB9, 0x8188, 0xCCAE, 0x818A, 0xDADB, + 0x818F, 0xCDC7, 0x819A, 0xDDB1, 0x819C, 0xD8AF, 0x819D, 0xE3A3, 0x81A0, 0xCEEF, 0x81A3, 0xF2F3, 0x81A8, 0xF8B3, 0x81B3, 0xE0CE, + 0x81B5, 0xF5FD, 0x81BA, 0xEBEC, 0x81BD, 0xD3C5, 0x81BE, 0xFCEC, 0x81BF, 0xD2DB, 0x81C0, 0xD4EB, 0x81C2, 0xDEA2, 0x81C6, 0xE5E6, + 0x81CD, 0xF0B0, 0x81D8, 0xD5C4, 0x81DF, 0xEDF4, 0x81E3, 0xE3ED, 0x81E5, 0xE8C2, 0x81E7, 0xEDF5, 0x81E8, 0xD7FC, 0x81EA, 0xEDBB, + 0x81ED, 0xF6AB, 0x81F3, 0xF2B8, 0x81F4, 0xF6C8, 0x81FA, 0xD3E6, 0x81FB, 0xF2DD, 0x81FC, 0xCFBF, 0x81FE, 0xEBAC, 0x8205, 0xCFC0, + 0x8207, 0xE6A8, 0x8208, 0xFDE9, 0x820A, 0xCFC1, 0x820C, 0xE0DF, 0x820D, 0xDEEC, 0x8212, 0xE0A2, 0x821B, 0xF4BF, 0x821C, 0xE2EF, + 0x821E, 0xD9F1, 0x821F, 0xF1C7, 0x8221, 0xCBB8, 0x822A, 0xF9FE, 0x822B, 0xDBBA, 0x822C, 0xDAF5, 0x8235, 0xF6EC, 0x8236, 0xDADC, + 0x8237, 0xFAE4, 0x8239, 0xE0CF, 0x8240, 0xDDB2, 0x8245, 0xE6A9, 0x8247, 0xEFF3, 0x8259, 0xF3ED, 0x8264, 0xEBFA, 0x8266, 0xF9E6, + 0x826E, 0xCADD, 0x826F, 0xD5DE, 0x8271, 0xCADE, 0x8272, 0xDFE4, 0x8276, 0xE6FD, 0x8278, 0xF5AC, 0x827E, 0xE4F5, 0x828B, 0xE9E3, + 0x828D, 0xEDCB, 0x828E, 0xCFE4, 0x8292, 0xD8D3, 0x8299, 0xDDB3, 0x829A, 0xD4EC, 0x829D, 0xF2B9, 0x829F, 0xDFB7, 0x82A5, 0xCBCE, + 0x82A6, 0xFBD8, 0x82A9, 0xD0D9, 0x82AC, 0xDDD2, 0x82AD, 0xF7F4, 0x82AE, 0xE7DC, 0x82AF, 0xE4A5, 0x82B1, 0xFCA3, 0x82B3, 0xDBBB, + 0x82B7, 0xF2BA, 0x82B8, 0xE9FD, 0x82B9, 0xD0CA, 0x82BB, 0xF5D6, 0x82BC, 0xD9C5, 0x82BD, 0xE4B4, 0x82BF, 0xEDA7, 0x82D1, 0xEABD, + 0x82D2, 0xE6FE, 0x82D4, 0xF7C4, 0x82D5, 0xF5AD, 0x82D7, 0xD9E0, 0x82DB, 0xCAB4, 0x82DE, 0xF8E2, 0x82DF, 0xCFC2, 0x82E1, 0xECBE, + 0x82E5, 0xE5B4, 0x82E6, 0xCDC8, 0x82E7, 0xEEC8, 0x82F1, 0xE7C8, 0x82FD, 0xCDC9, 0x82FE, 0xF9B7, 0x8301, 0xF1E8, 0x8302, 0xD9F2, + 0x8303, 0xDBF5, 0x8304, 0xCAB5, 0x8305, 0xD9C6, 0x8309, 0xD8C9, 0x8317, 0xD9AB, 0x8328, 0xEDBC, 0x832B, 0xD8D4, 0x832F, 0xDCDA, + 0x8331, 0xE2BC, 0x8334, 0xFCED, 0x8335, 0xECE0, 0x8336, 0xD2FE, 0x8338, 0xE9C7, 0x8339, 0xE6AA, 0x8340, 0xE2F0, 0x8347, 0xFABB, + 0x8349, 0xF5AE, 0x834A, 0xFBAA, 0x834F, 0xECFB, 0x8351, 0xECBF, 0x8352, 0xFCD8, 0x8373, 0xD4E5, 0x8377, 0xF9C3, 0x837B, 0xEEE2, + 0x8389, 0xD7E9, 0x838A, 0xEDF6, 0x838E, 0xDEED, 0x8396, 0xCCEC, 0x8398, 0xE3EE, 0x839E, 0xE8D4, 0x83A2, 0xFAF8, 0x83A9, 0xDDB4, + 0x83AA, 0xE4B5, 0x83AB, 0xD8B0, 0x83BD, 0xD8D5, 0x83C1, 0xF4EA, 0x83C5, 0xCEB9, 0x83C9, 0xD6E1, 0x83CA, 0xCFD2, 0x83CC, 0xD0B6, + 0x83D3, 0xCEA2, 0x83D6, 0xF3EE, 0x83DC, 0xF3F8, 0x83E9, 0xDCCC, 0x83EB, 0xD0CB, 0x83EF, 0xFCA4, 0x83F0, 0xCDCA, 0x83F1, 0xD7D4, + 0x83F2, 0xDEA3, 0x83F4, 0xE4E0, 0x83F9, 0xEEC9, 0x83FD, 0xE2DD, 0x8403, 0xF5FE, 0x8404, 0xD4AC, 0x840A, 0xD5D1, 0x840C, 0xD8F0, + 0x840D, 0xF8C3, 0x840E, 0xEAD7, 0x8429, 0xF5D7, 0x842C, 0xD8BF, 0x8431, 0xFDC0, 0x8438, 0xEBAD, 0x843D, 0xD5AA, 0x8449, 0xE7A8, + 0x8457, 0xEECA, 0x845B, 0xCAE7, 0x8461, 0xF8E3, 0x8463, 0xD4DD, 0x8466, 0xEAD8, 0x846B, 0xFBD9, 0x846C, 0xEDF7, 0x846F, 0xE5B5, + 0x8475, 0xD0AD, 0x847A, 0xF1F1, 0x8490, 0xE2BD, 0x8494, 0xE3C8, 0x8499, 0xD9D5, 0x849C, 0xDFAA, 0x84A1, 0xDBBC, 0x84B2, 0xF8E4, + 0x84B8, 0xF1FA, 0x84BB, 0xE5B6, 0x84BC, 0xF3EF, 0x84BF, 0xFBDA, 0x84C0, 0xE1E0, 0x84C2, 0xD9AC, 0x84C4, 0xF5EB, 0x84C6, 0xE0B6, + 0x84C9, 0xE9C8, 0x84CB, 0xCBCF, 0x84CD, 0xE3C9, 0x84D1, 0xDEEE, 0x84DA, 0xE2BE, 0x84EC, 0xDCEF, 0x84EE, 0xD6A5, 0x84F4, 0xE2F1, + 0x84FC, 0xD6FE, 0x8511, 0xD9A1, 0x8513, 0xD8C0, 0x8514, 0xDCDB, 0x8517, 0xEDBD, 0x8518, 0xDFB8, 0x851A, 0xEAA5, 0x851E, 0xD7AD, + 0x8521, 0xF3F9, 0x8523, 0xEDF8, 0x8525, 0xF5C7, 0x852C, 0xE1CA, 0x852D, 0xEBE3, 0x852F, 0xF2DE, 0x853D, 0xF8CC, 0x853F, 0xEAD9, + 0x8541, 0xD3C6, 0x8543, 0xDBE6, 0x8549, 0xF5AF, 0x854E, 0xCEF0, 0x8553, 0xE9FE, 0x8559, 0xFBB6, 0x8563, 0xE2F2, 0x8568, 0xCFF2, + 0x8569, 0xF7B9, 0x856A, 0xD9F3, 0x856D, 0xE1CB, 0x8584, 0xDADD, 0x8587, 0xDAB9, 0x858F, 0xEBFB, 0x8591, 0xCBB9, 0x8594, 0xEDF9, + 0x859B, 0xE0E0, 0x85A6, 0xF4C0, 0x85A8, 0xFDBC, 0x85A9, 0xDFB1, 0x85AA, 0xE3EF, 0x85AF, 0xE0A3, 0x85B0, 0xFDB9, 0x85BA, 0xF0B1, + 0x85C1, 0xCDCB, 0x85C9, 0xEDBE, 0x85CD, 0xD5C0, 0x85CE, 0xE3F0, 0x85CF, 0xEDFA, 0x85D5, 0xE9E4, 0x85DC, 0xD5ED, 0x85DD, 0xE7DD, + 0x85E4, 0xD4F6, 0x85E5, 0xE5B7, 0x85E9, 0xDBE7, 0x85EA, 0xE2BF, 0x85F7, 0xEECB, 0x85FA, 0xD7F4, 0x85FB, 0xF0DD, 0x85FF, 0xCEAB, + 0x8602, 0xE7DE, 0x8606, 0xD6D6, 0x8607, 0xE1CC, 0x860A, 0xE8B3, 0x8616, 0xE5EE, 0x8617, 0xDCA2, 0x861A, 0xE0D0, 0x862D, 0xD5B5, + 0x863F, 0xD5A1, 0x864E, 0xFBDB, 0x8650, 0xF9CB, 0x8654, 0xCBF3, 0x8655, 0xF4A5, 0x865B, 0xFAC8, 0x865C, 0xD6D7, 0x865E, 0xE9E5, + 0x865F, 0xFBDC, 0x8667, 0xFDD0, 0x8679, 0xFBF6, 0x868A, 0xDAA5, 0x868C, 0xDBBD, 0x8693, 0xECE2, 0x86A3, 0xCDF7, 0x86A4, 0xF0DE, + 0x86A9, 0xF6C9, 0x86C7, 0xDEEF, 0x86CB, 0xD3B1, 0x86D4, 0xFCEE, 0x86D9, 0xE8C3, 0x86DB, 0xF1C8, 0x86DF, 0xCEF1, 0x86E4, 0xF9ED, + 0x86ED, 0xF2F4, 0x86FE, 0xE4B6, 0x8700, 0xF5B9, 0x8702, 0xDCF0, 0x8703, 0xE3F1, 0x8708, 0xE8A5, 0x8718, 0xF2BB, 0x871A, 0xDEA4, + 0x871C, 0xDACC, 0x874E, 0xCAE9, 0x8755, 0xE3DA, 0x8757, 0xFCD9, 0x875F, 0xEADA, 0x8766, 0xF9C4, 0x8768, 0xE3A4, 0x8774, 0xFBDD, + 0x8776, 0xEFCA, 0x8778, 0xE8C4, 0x8782, 0xD5CC, 0x878D, 0xEBD7, 0x879F, 0xD9AD, 0x87A2, 0xFBAB, 0x87B3, 0xD3D9, 0x87BA, 0xD5A2, + 0x87C4, 0xF6DE, 0x87E0, 0xDAF6, 0x87EC, 0xE0D1, 0x87EF, 0xE9A8, 0x87F2, 0xF5F9, 0x87F9, 0xFAAF, 0x87FB, 0xEBFC, 0x87FE, 0xE0EA, + 0x8805, 0xE3B2, 0x881F, 0xD5C5, 0x8822, 0xF1E3, 0x8823, 0xD5EE, 0x8831, 0xCDCC, 0x8836, 0xEDD9, 0x883B, 0xD8C1, 0x8840, 0xFAEC, + 0x8846, 0xF1EB, 0x884C, 0xFABC, 0x884D, 0xE6E2, 0x8852, 0xFAE5, 0x8853, 0xE2FA, 0x8857, 0xCAB6, 0x8859, 0xE4B7, 0x885B, 0xEADB, + 0x885D, 0xF5FA, 0x8861, 0xFBAC, 0x8862, 0xCFC3, 0x8863, 0xEBFD, 0x8868, 0xF8FA, 0x886B, 0xDFB9, 0x8870, 0xE1F1, 0x8872, 0xD2A4, + 0x8877, 0xF5FB, 0x887E, 0xD0DA, 0x887F, 0xD0DB, 0x8881, 0xEABE, 0x8882, 0xD9B1, 0x8888, 0xCAB7, 0x888B, 0xD3E7, 0x888D, 0xF8E5, + 0x8892, 0xD3B2, 0x8896, 0xE2C0, 0x8897, 0xF2DF, 0x889E, 0xCDE5, 0x88AB, 0xF9AC, 0x88B4, 0xCDCD, 0x88C1, 0xEEAE, 0x88C2, 0xD6AE, + 0x88CF, 0xD7EA, 0x88D4, 0xE7E0, 0x88D5, 0xEBAE, 0x88D9, 0xCFD9, 0x88DC, 0xDCCD, 0x88DD, 0xEDFB, 0x88DF, 0xDEF0, 0x88E1, 0xD7EB, + 0x88E8, 0xDEA5, 0x88F3, 0xDFD7, 0x88F4, 0xDBD0, 0x88F5, 0xDBD1, 0x88F8, 0xD5A3, 0x88FD, 0xF0B2, 0x8907, 0xDCDC, 0x8910, 0xCAE8, + 0x8912, 0xF8E6, 0x8913, 0xDCCE, 0x8918, 0xEADC, 0x8919, 0xDBD2, 0x8925, 0xE9B3, 0x892A, 0xF7DB, 0x8936, 0xE3A8, 0x8938, 0xD7AE, + 0x893B, 0xE0E1, 0x8941, 0xCBBA, 0x8944, 0xE5D1, 0x895F, 0xD0DC, 0x8964, 0xD5C1, 0x896A, 0xD8CA, 0x8972, 0xE3A9, 0x897F, 0xE0A4, + 0x8981, 0xE9A9, 0x8983, 0xD3C7, 0x8986, 0xDCDD, 0x8987, 0xF8AE, 0x898B, 0xCCB8, 0x898F, 0xD0AE, 0x8993, 0xD8F2, 0x8996, 0xE3CA, + 0x89A1, 0xCCAF, 0x89A9, 0xD4AD, 0x89AA, 0xF6D1, 0x89B2, 0xD0CC, 0x89BA, 0xCAC6, 0x89BD, 0xD5C2, 0x89C0, 0xCEBA, 0x89D2, 0xCAC7, + 0x89E3, 0xFAB0, 0x89F4, 0xDFD8, 0x89F8, 0xF5BA, 0x8A00, 0xE5EB, 0x8A02, 0xEFF4, 0x8A03, 0xDDB5, 0x8A08, 0xCDAA, 0x8A0A, 0xE3F2, + 0x8A0C, 0xFBF7, 0x8A0E, 0xF7D0, 0x8A13, 0xFDBA, 0x8A16, 0xFDE1, 0x8A17, 0xF6FE, 0x8A18, 0xD1C0, 0x8A1B, 0xE8C5, 0x8A1D, 0xE4B8, + 0x8A1F, 0xE1E8, 0x8A23, 0xCCC1, 0x8A25, 0xD2ED, 0x8A2A, 0xDBBE, 0x8A2D, 0xE0E2, 0x8A31, 0xFAC9, 0x8A34, 0xE1CD, 0x8A36, 0xCAB8, + 0x8A3A, 0xF2E0, 0x8A3B, 0xF1C9, 0x8A50, 0xDEF1, 0x8A54, 0xF0DF, 0x8A55, 0xF8C4, 0x8A5B, 0xEECC, 0x8A5E, 0xDEF2, 0x8A60, 0xE7C9, + 0x8A62, 0xE2F3, 0x8A63, 0xE7E1, 0x8A66, 0xE3CB, 0x8A69, 0xE3CC, 0x8A6D, 0xCFF8, 0x8A6E, 0xEFAC, 0x8A70, 0xFDFE, 0x8A71, 0xFCA5, + 0x8A72, 0xFAB1, 0x8A73, 0xDFD9, 0x8A75, 0xE0D2, 0x8A79, 0xF4DA, 0x8A85, 0xF1CA, 0x8A87, 0xCEA3, 0x8A8C, 0xF2BC, 0x8A8D, 0xECE3, + 0x8A93, 0xE0A5, 0x8A95, 0xF7AB, 0x8A98, 0xEBAF, 0x8A9E, 0xE5DE, 0x8AA0, 0xE1A4, 0x8AA1, 0xCDAB, 0x8AA3, 0xD9F4, 0x8AA4, 0xE8A6, + 0x8AA5, 0xCDCE, 0x8AA6, 0xE1E9, 0x8AA8, 0xFCEF, 0x8AAA, 0xE0E3, 0x8AB0, 0xE2C1, 0x8AB2, 0xCEA4, 0x8AB9, 0xDEA6, 0x8ABC, 0xEBFE, + 0x8ABE, 0xEBDD, 0x8ABF, 0xF0E0, 0x8AC2, 0xF4DB, 0x8AC4, 0xE2F4, 0x8AC7, 0xD3C8, 0x8ACB, 0xF4EB, 0x8ACD, 0xEEB5, 0x8ACF, 0xF5D8, + 0x8AD2, 0xD5DF, 0x8AD6, 0xD6E5, 0x8ADB, 0xEBB0, 0x8ADC, 0xF4E3, 0x8AE1, 0xE3CD, 0x8AE6, 0xF4F4, 0x8AE7, 0xFAB2, 0x8AEA, 0xEFF5, + 0x8AEB, 0xCADF, 0x8AED, 0xEBB1, 0x8AEE, 0xEDBF, 0x8AF1, 0xFDC9, 0x8AF6, 0xE4A6, 0x8AF7, 0xF9A4, 0x8AF8, 0xF0B3, 0x8AFA, 0xE5EC, + 0x8AFE, 0xD1E7, 0x8B00, 0xD9C7, 0x8B01, 0xE4D7, 0x8B02, 0xEADD, 0x8B04, 0xD4F7, 0x8B0E, 0xDABA, 0x8B10, 0xDACD, 0x8B14, 0xF9CC, + 0x8B16, 0xE1DA, 0x8B17, 0xDBBF, 0x8B19, 0xCCC5, 0x8B1A, 0xECD0, 0x8B1B, 0xCBBB, 0x8B1D, 0xDEF3, 0x8B20, 0xE9AA, 0x8B28, 0xD9C8, + 0x8B2B, 0xEEE3, 0x8B2C, 0xD7BD, 0x8B33, 0xCFC4, 0x8B39, 0xD0CD, 0x8B41, 0xFCA6, 0x8B49, 0xF1FB, 0x8B4E, 0xFDD2, 0x8B4F, 0xD1C1, + 0x8B58, 0xE3DB, 0x8B5A, 0xD3C9, 0x8B5C, 0xDCCF, 0x8B66, 0xCCED, 0x8B6C, 0xDEA7, 0x8B6F, 0xE6BB, 0x8B70, 0xECA1, 0x8B74, 0xCCB9, + 0x8B77, 0xFBDE, 0x8B7D, 0xE7E2, 0x8B80, 0xD4C1, 0x8B8A, 0xDCA8, 0x8B90, 0xE2C2, 0x8B92, 0xF3D8, 0x8B93, 0xE5D3, 0x8B96, 0xF3D9, + 0x8B9A, 0xF3C6, 0x8C37, 0xCDDB, 0x8C3F, 0xCDAC, 0x8C41, 0xFCC3, 0x8C46, 0xD4E7, 0x8C48, 0xD1C2, 0x8C4A, 0xF9A5, 0x8C4C, 0xE8D5, + 0x8C55, 0xE3CE, 0x8C5A, 0xD4CA, 0x8C61, 0xDFDA, 0x8C6A, 0xFBDF, 0x8C6B, 0xE7E3, 0x8C79, 0xF8FB, 0x8C7A, 0xE3CF, 0x8C82, 0xF5B0, + 0x8C8A, 0xD8E7, 0x8C8C, 0xD9C9, 0x8C9D, 0xF8AF, 0x8C9E, 0xEFF6, 0x8CA0, 0xDDB6, 0x8CA1, 0xEEAF, 0x8CA2, 0xCDF8, 0x8CA7, 0xDEB8, + 0x8CA8, 0xFCA7, 0x8CA9, 0xF7FC, 0x8CAA, 0xF7B1, 0x8CAB, 0xCEBB, 0x8CAC, 0xF4A1, 0x8CAF, 0xEECD, 0x8CB0, 0xE1AE, 0x8CB3, 0xECC3, + 0x8CB4, 0xCFFE, 0x8CB6, 0xF8BF, 0x8CB7, 0xD8E2, 0x8CB8, 0xD3E8, 0x8CBB, 0xDEA8, 0x8CBC, 0xF4E4, 0x8CBD, 0xECC2, 0x8CBF, 0xD9F5, + 0x8CC0, 0xF9C5, 0x8CC1, 0xDDD3, 0x8CC2, 0xD6F1, 0x8CC3, 0xECFC, 0x8CC4, 0xFCF0, 0x8CC7, 0xEDC0, 0x8CC8, 0xCAB9, 0x8CCA, 0xEEE4, + 0x8CD1, 0xF2E1, 0x8CD3, 0xDEB9, 0x8CDA, 0xD6F2, 0x8CDC, 0xDEF4, 0x8CDE, 0xDFDB, 0x8CE0, 0xDBD3, 0x8CE2, 0xFAE7, 0x8CE3, 0xD8E3, + 0x8CE4, 0xF4C1, 0x8CE6, 0xDDB7, 0x8CEA, 0xF2F5, 0x8CED, 0xD4AE, 0x8CF4, 0xD6F3, 0x8CFB, 0xDDB8, 0x8CFC, 0xCFC5, 0x8CFD, 0xDFDF, + 0x8D04, 0xF2BE, 0x8D05, 0xF6A1, 0x8D07, 0xEBCB, 0x8D08, 0xF1FC, 0x8D0A, 0xF3C7, 0x8D0D, 0xE0EB, 0x8D13, 0xEDFC, 0x8D16, 0xE1DB, + 0x8D64, 0xEEE5, 0x8D66, 0xDEF5, 0x8D6B, 0xFAD3, 0x8D70, 0xF1CB, 0x8D73, 0xD0AF, 0x8D74, 0xDDB9, 0x8D77, 0xD1C3, 0x8D85, 0xF5B1, + 0x8D8A, 0xEAC6, 0x8D99, 0xF0E1, 0x8DA3, 0xF6AC, 0x8DA8, 0xF5D9, 0x8DB3, 0xF0EB, 0x8DBA, 0xDDBA, 0x8DBE, 0xF2BF, 0x8DC6, 0xF7C5, + 0x8DCB, 0xDBA2, 0x8DCC, 0xF2F6, 0x8DCF, 0xCABA, 0x8DDB, 0xF7F5, 0x8DDD, 0xCBE5, 0x8DE1, 0xEEE6, 0x8DE3, 0xE0D3, 0x8DE8, 0xCEA5, + 0x8DEF, 0xD6D8, 0x8DF3, 0xD4AF, 0x8E0A, 0xE9C9, 0x8E0F, 0xD3CE, 0x8E10, 0xF4C2, 0x8E1E, 0xCBE6, 0x8E2A, 0xF1A1, 0x8E30, 0xEBB2, + 0x8E35, 0xF1A2, 0x8E42, 0xEBB3, 0x8E44, 0xF0B4, 0x8E47, 0xCBF4, 0x8E48, 0xD4B0, 0x8E49, 0xF3B2, 0x8E4A, 0xFBB7, 0x8E59, 0xF5EC, + 0x8E5F, 0xEEE7, 0x8E60, 0xF4B2, 0x8E74, 0xF5ED, 0x8E76, 0xCFF3, 0x8E81, 0xF0E2, 0x8E87, 0xEECE, 0x8E8A, 0xF1CC, 0x8E8D, 0xE5B8, + 0x8EAA, 0xD7F5, 0x8EAB, 0xE3F3, 0x8EAC, 0xCFE5, 0x8EC0, 0xCFC6, 0x8ECA, 0xF3B3, 0x8ECB, 0xE4D8, 0x8ECC, 0xCFF9, 0x8ECD, 0xCFDA, + 0x8ED2, 0xFACD, 0x8EDF, 0xE6E3, 0x8EEB, 0xF2E2, 0x8EF8, 0xF5EE, 0x8EFB, 0xCABB, 0x8EFE, 0xE3DC, 0x8F03, 0xCEF2, 0x8F05, 0xD6D9, + 0x8F09, 0xEEB0, 0x8F12, 0xF4E5, 0x8F13, 0xD8C2, 0x8F14, 0xDCD0, 0x8F15, 0xCCEE, 0x8F1B, 0xD5E0, 0x8F1C, 0xF6CA, 0x8F1D, 0xFDCA, + 0x8F1E, 0xD8D6, 0x8F1F, 0xF4CF, 0x8F26, 0xD6A6, 0x8F27, 0xDCBE, 0x8F29, 0xDBD4, 0x8F2A, 0xD7C7, 0x8F2F, 0xF2FE, 0x8F33, 0xF1CD, + 0x8F38, 0xE2C3, 0x8F39, 0xDCDE, 0x8F3B, 0xDCDF, 0x8F3E, 0xEFAD, 0x8F3F, 0xE6AB, 0x8F44, 0xF9DD, 0x8F45, 0xEABF, 0x8F49, 0xEFAE, + 0x8F4D, 0xF4D0, 0x8F4E, 0xCEF3, 0x8F5D, 0xE6AC, 0x8F5F, 0xCEDE, 0x8F62, 0xD5F9, 0x8F9B, 0xE3F4, 0x8F9C, 0xCDD0, 0x8FA3, 0xD5B8, + 0x8FA6, 0xF7FD, 0x8FA8, 0xDCA9, 0x8FAD, 0xDEF6, 0x8FAF, 0xDCAA, 0x8FB0, 0xF2E3, 0x8FB1, 0xE9B4, 0x8FB2, 0xD2DC, 0x8FC2, 0xE9E6, + 0x8FC5, 0xE3F6, 0x8FCE, 0xE7CA, 0x8FD1, 0xD0CE, 0x8FD4, 0xDAF7, 0x8FE6, 0xCABC, 0x8FEA, 0xEEE8, 0x8FEB, 0xDADE, 0x8FED, 0xF2F7, + 0x8FF0, 0xE2FB, 0x8FF2, 0xCCA6, 0x8FF7, 0xDABB, 0x8FF9, 0xEEE9, 0x8FFD, 0xF5DA, 0x9000, 0xF7DC, 0x9001, 0xE1EA, 0x9002, 0xCEC1, + 0x9003, 0xD4B1, 0x9005, 0xFDB1, 0x9006, 0xE6BD, 0x9008, 0xFBAD, 0x900B, 0xF8E7, 0x900D, 0xE1CE, 0x900F, 0xF7E2, 0x9010, 0xF5EF, + 0x9011, 0xCFC7, 0x9014, 0xD4B2, 0x9015, 0xCCEF, 0x9017, 0xD4E8, 0x9019, 0xEECF, 0x901A, 0xF7D7, 0x901D, 0xE0A6, 0x901E, 0xD6C1, + 0x901F, 0xE1DC, 0x9020, 0xF0E3, 0x9021, 0xF1E4, 0x9022, 0xDCF1, 0x9023, 0xD6A7, 0x902E, 0xF4F5, 0x9031, 0xF1CE, 0x9032, 0xF2E4, + 0x9035, 0xD0B0, 0x9038, 0xECEF, 0x903C, 0xF9BA, 0x903E, 0xEBB5, 0x9041, 0xD4ED, 0x9042, 0xE2C4, 0x9047, 0xE9E7, 0x904A, 0xEBB4, + 0x904B, 0xEAA1, 0x904D, 0xF8BC, 0x904E, 0xCEA6, 0x9050, 0xF9C6, 0x9051, 0xFCDA, 0x9053, 0xD4B3, 0x9054, 0xD3B9, 0x9055, 0xEADE, + 0x9059, 0xE9AB, 0x905C, 0xE1E1, 0x905D, 0xD3CF, 0x905E, 0xF4F6, 0x9060, 0xEAC0, 0x9061, 0xE1CF, 0x9063, 0xCCBA, 0x9069, 0xEEEA, + 0x906D, 0xF0E4, 0x906E, 0xF3B4, 0x906F, 0xD4EE, 0x9072, 0xF2C0, 0x9075, 0xF1E5, 0x9077, 0xF4C3, 0x9078, 0xE0D4, 0x907A, 0xEBB6, + 0x907C, 0xD7A1, 0x907D, 0xCBE8, 0x907F, 0xF9AD, 0x9080, 0xE9AD, 0x9081, 0xD8E4, 0x9082, 0xFAB3, 0x9083, 0xE2C5, 0x9084, 0xFCBD, + 0x9087, 0xECC4, 0x9088, 0xD8B1, 0x908A, 0xDCAB, 0x908F, 0xD5A4, 0x9091, 0xEBE9, 0x9095, 0xE8BB, 0x9099, 0xD8D7, 0x90A2, 0xFBAE, + 0x90A3, 0xD1E1, 0x90A6, 0xDBC0, 0x90A8, 0xF5BE, 0x90AA, 0xDEF7, 0x90AF, 0xCAFB, 0x90B0, 0xF7C6, 0x90B1, 0xCFC8, 0x90B5, 0xE1D0, + 0x90B8, 0xEED0, 0x90C1, 0xE9F4, 0x90CA, 0xCEF4, 0x90DE, 0xD5CD, 0x90E1, 0xCFDB, 0x90E8, 0xDDBB, 0x90ED, 0xCEAC, 0x90F5, 0xE9E8, + 0x90FD, 0xD4B4, 0x9102, 0xE4C7, 0x9112, 0xF5DB, 0x9115, 0xFAC1, 0x9119, 0xDEA9, 0x9127, 0xD4F8, 0x912D, 0xEFF7, 0x9132, 0xD3B3, + 0x9149, 0xEBB7, 0x914A, 0xEFF8, 0x914B, 0xF5DC, 0x914C, 0xEDCC, 0x914D, 0xDBD5, 0x914E, 0xF1CF, 0x9152, 0xF1D0, 0x9162, 0xF5B2, + 0x9169, 0xD9AE, 0x916A, 0xD5AC, 0x916C, 0xE2C6, 0x9175, 0xFDA3, 0x9177, 0xFBE5, 0x9178, 0xDFAB, 0x9187, 0xE2F5, 0x9189, 0xF6AD, + 0x918B, 0xF5B3, 0x918D, 0xF0B5, 0x9192, 0xE1A5, 0x919C, 0xF5DD, 0x91AB, 0xECA2, 0x91AC, 0xEDFD, 0x91AE, 0xF5B4, 0x91AF, 0xFBB8, + 0x91B1, 0xDBA3, 0x91B4, 0xD6CA, 0x91B5, 0xCBD9, 0x91C0, 0xE5D4, 0x91C7, 0xF3FA, 0x91C9, 0xEBB8, 0x91CB, 0xE0B7, 0x91CC, 0xD7EC, + 0x91CD, 0xF1EC, 0x91CE, 0xE5AF, 0x91CF, 0xD5E1, 0x91D0, 0xD7ED, 0x91D1, 0xD1D1, 0x91D7, 0xE1F2, 0x91D8, 0xEFF9, 0x91DC, 0xDDBC, + 0x91DD, 0xF6DC, 0x91E3, 0xF0E5, 0x91E7, 0xF4C4, 0x91EA, 0xE9E9, 0x91F5, 0xF3FB, 0x920D, 0xD4EF, 0x9210, 0xCCA2, 0x9211, 0xF7FE, + 0x9212, 0xDFBC, 0x9217, 0xEBCD, 0x921E, 0xD0B7, 0x9234, 0xD6C2, 0x923A, 0xE8AD, 0x923F, 0xEFAF, 0x9240, 0xCBA5, 0x9245, 0xCBE9, + 0x9249, 0xFAE8, 0x9257, 0xCCC6, 0x925B, 0xE6E7, 0x925E, 0xEAC7, 0x9262, 0xDBA4, 0x9264, 0xCFC9, 0x9265, 0xE2FC, 0x9266, 0xEFFA, + 0x9280, 0xEBDE, 0x9283, 0xF5C8, 0x9285, 0xD4DE, 0x9291, 0xE0D5, 0x9293, 0xEFB0, 0x9296, 0xE2C7, 0x9298, 0xD9AF, 0x929C, 0xF9E7, + 0x92B3, 0xE7E5, 0x92B6, 0xCFCA, 0x92B7, 0xE1D1, 0x92B9, 0xE2C8, 0x92CC, 0xEFFB, 0x92CF, 0xFAF9, 0x92D2, 0xDCF2, 0x92E4, 0xE0A7, + 0x92EA, 0xF8E8, 0x92F8, 0xCBEA, 0x92FC, 0xCBBC, 0x9304, 0xD6E2, 0x9310, 0xF5DE, 0x9318, 0xF5DF, 0x931A, 0xEEB6, 0x931E, 0xE2F6, + 0x931F, 0xD3CA, 0x9320, 0xEFFC, 0x9321, 0xD1C4, 0x9322, 0xEFB1, 0x9324, 0xD1C5, 0x9326, 0xD0DE, 0x9328, 0xD9E1, 0x932B, 0xE0B8, + 0x932E, 0xCDD1, 0x932F, 0xF3B9, 0x9348, 0xE7CC, 0x934A, 0xD6A8, 0x934B, 0xCEA7, 0x934D, 0xD4B5, 0x9354, 0xE4C8, 0x935B, 0xD3B4, + 0x936E, 0xEBB9, 0x9375, 0xCBF5, 0x937C, 0xF6DD, 0x937E, 0xF1A3, 0x938C, 0xCCC7, 0x9394, 0xE9CA, 0x9396, 0xE1F0, 0x939A, 0xF5E0, + 0x93A3, 0xFBAF, 0x93A7, 0xCBD1, 0x93AC, 0xFBE0, 0x93AD, 0xF2E5, 0x93B0, 0xECF0, 0x93C3, 0xF0EC, 0x93D1, 0xEEEB, 0x93DE, 0xE9CB, + 0x93E1, 0xCCF0, 0x93E4, 0xD7AF, 0x93F6, 0xF3A1, 0x9404, 0xFCF5, 0x9418, 0xF1A4, 0x9425, 0xE0D6, 0x942B, 0xEFB2, 0x9435, 0xF4D1, + 0x9438, 0xF7A1, 0x9444, 0xF1D1, 0x9451, 0xCAFC, 0x9452, 0xCAFD, 0x945B, 0xCECE, 0x947D, 0xF3C8, 0x947F, 0xF3BA, 0x9577, 0xEDFE, + 0x9580, 0xDAA6, 0x9583, 0xE0EC, 0x9589, 0xF8CD, 0x958B, 0xCBD2, 0x958F, 0xEBCE, 0x9591, 0xF9D8, 0x9592, 0xF9D9, 0x9593, 0xCAE0, + 0x9594, 0xDACA, 0x9598, 0xCBA6, 0x95A3, 0xCAC8, 0x95A4, 0xF9EE, 0x95A5, 0xDBEC, 0x95A8, 0xD0B1, 0x95AD, 0xD5EF, 0x95B1, 0xE6F3, + 0x95BB, 0xE7A2, 0x95BC, 0xE4D9, 0x95C7, 0xE4E1, 0x95CA, 0xFCC4, 0x95D4, 0xF9EF, 0x95D5, 0xCFF4, 0x95D6, 0xF7E6, 0x95DC, 0xCEBC, + 0x95E1, 0xF4C5, 0x95E2, 0xDCA3, 0x961C, 0xDDBD, 0x9621, 0xF4C6, 0x962A, 0xF8A1, 0x962E, 0xE8D6, 0x9632, 0xDBC1, 0x963B, 0xF0E6, + 0x963F, 0xE4B9, 0x9640, 0xF6ED, 0x9642, 0xF9AE, 0x9644, 0xDDBE, 0x964B, 0xD7B0, 0x964C, 0xD8E8, 0x964D, 0xCBBD, 0x9650, 0xF9DA, + 0x965B, 0xF8CE, 0x965C, 0xF9F0, 0x965D, 0xE0ED, 0x965E, 0xE3B3, 0x965F, 0xF4B3, 0x9662, 0xEAC2, 0x9663, 0xF2E6, 0x9664, 0xF0B6, + 0x966A, 0xDBD6, 0x9670, 0xEBE4, 0x9673, 0xF2E7, 0x9675, 0xD7D5, 0x9676, 0xD4B6, 0x9677, 0xF9E8, 0x9678, 0xD7C1, 0x967D, 0xE5D5, + 0x9685, 0xE9EA, 0x9686, 0xD7CC, 0x968A, 0xD3E9, 0x968B, 0xE2C9, 0x968D, 0xFCDB, 0x968E, 0xCDAD, 0x9694, 0xCCB0, 0x9695, 0xEAA2, + 0x9698, 0xE4F6, 0x9699, 0xD0C0, 0x969B, 0xF0B7, 0x969C, 0xEEA1, 0x96A3, 0xD7F6, 0x96A7, 0xE2CA, 0x96A8, 0xE2CB, 0x96AA, 0xFACF, + 0x96B1, 0xEBDF, 0x96B7, 0xD6CB, 0x96BB, 0xF4B4, 0x96C0, 0xEDCD, 0x96C1, 0xE4D2, 0x96C4, 0xEAA9, 0x96C5, 0xE4BA, 0x96C6, 0xF3A2, + 0x96C7, 0xCDD2, 0x96C9, 0xF6CB, 0x96CB, 0xF1E6, 0x96CC, 0xEDC1, 0x96CD, 0xE8BC, 0x96CE, 0xEED1, 0x96D5, 0xF0E7, 0x96D6, 0xE2CC, + 0x96D9, 0xE4AA, 0x96DB, 0xF5E1, 0x96DC, 0xEDDA, 0x96E2, 0xD7EE, 0x96E3, 0xD1F1, 0x96E8, 0xE9EB, 0x96E9, 0xE9EC, 0x96EA, 0xE0E4, + 0x96EF, 0xDAA7, 0x96F0, 0xDDD4, 0x96F2, 0xEAA3, 0x96F6, 0xD6C3, 0x96F7, 0xD6F4, 0x96F9, 0xDADF, 0x96FB, 0xEFB3, 0x9700, 0xE2CD, + 0x9706, 0xEFFD, 0x9707, 0xF2E8, 0x9711, 0xEFC5, 0x9713, 0xE7E7, 0x9716, 0xD7FD, 0x9719, 0xE7CE, 0x971C, 0xDFDC, 0x971E, 0xF9C7, + 0x9727, 0xD9F6, 0x9730, 0xDFAC, 0x9732, 0xD6DA, 0x9739, 0xDCA4, 0x973D, 0xF0B8, 0x9742, 0xD5FA, 0x9744, 0xE4F7, 0x9748, 0xD6C4, + 0x9751, 0xF4EC, 0x9756, 0xEFFE, 0x975C, 0xF0A1, 0x975E, 0xDEAA, 0x9761, 0xDABC, 0x9762, 0xD8FC, 0x9769, 0xFAD4, 0x976D, 0xECE5, + 0x9774, 0xFCA8, 0x9777, 0xECE6, 0x977A, 0xD8CB, 0x978B, 0xFBB9, 0x978D, 0xE4D3, 0x978F, 0xCDF9, 0x97A0, 0xCFD3, 0x97A8, 0xCAEA, + 0x97AB, 0xCFD4, 0x97AD, 0xF8BD, 0x97C6, 0xF4C7, 0x97CB, 0xEADF, 0x97D3, 0xF9DB, 0x97DC, 0xD4B7, 0x97F3, 0xEBE5, 0x97F6, 0xE1D2, + 0x97FB, 0xEAA4, 0x97FF, 0xFAC2, 0x9800, 0xFBE1, 0x9801, 0xFAED, 0x9802, 0xF0A2, 0x9803, 0xCCF1, 0x9805, 0xFAA3, 0x9806, 0xE2F7, + 0x9808, 0xE2CE, 0x980A, 0xE9F5, 0x980C, 0xE1EB, 0x9810, 0xE7E8, 0x9811, 0xE8D7, 0x9812, 0xDAF8, 0x9813, 0xD4CB, 0x9817, 0xF7F6, + 0x9818, 0xD6C5, 0x982D, 0xD4E9, 0x9830, 0xFAFA, 0x9838, 0xCCF2, 0x9839, 0xF7DD, 0x983B, 0xDEBA, 0x9846, 0xCEA8, 0x984C, 0xF0B9, + 0x984D, 0xE4FE, 0x984E, 0xE4C9, 0x9854, 0xE4D4, 0x9858, 0xEAC3, 0x985A, 0xEFB4, 0x985E, 0xD7BE, 0x9865, 0xFBE2, 0x9867, 0xCDD3, + 0x986B, 0xEFB5, 0x986F, 0xFAE9, 0x98A8, 0xF9A6, 0x98AF, 0xDFBD, 0x98B1, 0xF7C7, 0x98C4, 0xF8FD, 0x98C7, 0xF8FC, 0x98DB, 0xDEAB, + 0x98DC, 0xDBE8, 0x98DF, 0xE3DD, 0x98E1, 0xE1E2, 0x98E2, 0xD1C6, 0x98ED, 0xF6D0, 0x98EE, 0xEBE6, 0x98EF, 0xDAF9, 0x98F4, 0xECC7, + 0x98FC, 0xDEF8, 0x98FD, 0xF8E9, 0x98FE, 0xE3DE, 0x9903, 0xCEF5, 0x9909, 0xFAC3, 0x990A, 0xE5D7, 0x990C, 0xECC8, 0x9910, 0xF3C9, + 0x9913, 0xE4BB, 0x9918, 0xE6AE, 0x991E, 0xEFB6, 0x9920, 0xDCBF, 0x9928, 0xCEBD, 0x9945, 0xD8C3, 0x9949, 0xD0CF, 0x994B, 0xCFFA, + 0x994C, 0xF3CA, 0x994D, 0xE0D7, 0x9951, 0xD1C7, 0x9952, 0xE9AE, 0x9954, 0xE8BD, 0x9957, 0xFAC4, 0x9996, 0xE2CF, 0x9999, 0xFAC5, + 0x999D, 0xF9B8, 0x99A5, 0xDCE0, 0x99A8, 0xFBB0, 0x99AC, 0xD8A9, 0x99AD, 0xE5DF, 0x99AE, 0xF9A7, 0x99B1, 0xF6EE, 0x99B3, 0xF6CC, + 0x99B4, 0xE2F8, 0x99B9, 0xECF1, 0x99C1, 0xDAE0, 0x99D0, 0xF1D2, 0x99D1, 0xD2CC, 0x99D2, 0xCFCB, 0x99D5, 0xCABD, 0x99D9, 0xDDBF, + 0x99DD, 0xF6EF, 0x99DF, 0xDEF9, 0x99ED, 0xFAB4, 0x99F1, 0xD5AD, 0x99FF, 0xF1E7, 0x9A01, 0xDEBE, 0x9A08, 0xDCC0, 0x9A0E, 0xD1C8, + 0x9A0F, 0xD1C9, 0x9A19, 0xF8BE, 0x9A2B, 0xCBF6, 0x9A30, 0xD4F9, 0x9A36, 0xF5E2, 0x9A37, 0xE1D3, 0x9A40, 0xD8E9, 0x9A43, 0xF8FE, + 0x9A45, 0xCFCC, 0x9A4D, 0xFDA4, 0x9A55, 0xCEF6, 0x9A57, 0xFAD0, 0x9A5A, 0xCCF3, 0x9A5B, 0xE6BE, 0x9A5F, 0xF6AE, 0x9A62, 0xD5F0, + 0x9A65, 0xD1CA, 0x9A69, 0xFCBE, 0x9A6A, 0xD5F1, 0x9AA8, 0xCDE9, 0x9AB8, 0xFAB5, 0x9AD3, 0xE2D0, 0x9AD4, 0xF4F7, 0x9AD8, 0xCDD4, + 0x9AE5, 0xE7A3, 0x9AEE, 0xDBA5, 0x9B1A, 0xE2D1, 0x9B27, 0xD7A2, 0x9B2A, 0xF7E3, 0x9B31, 0xEAA6, 0x9B3C, 0xD0A1, 0x9B41, 0xCEDA, + 0x9B42, 0xFBEB, 0x9B43, 0xDBA6, 0x9B44, 0xDBDE, 0x9B45, 0xD8E5, 0x9B4F, 0xEAE0, 0x9B54, 0xD8AA, 0x9B5A, 0xE5E0, 0x9B6F, 0xD6DB, + 0x9B8E, 0xEFC6, 0x9B91, 0xF8EA, 0x9B9F, 0xE4D5, 0x9BAB, 0xCEF7, 0x9BAE, 0xE0D8, 0x9BC9, 0xD7EF, 0x9BD6, 0xF4ED, 0x9BE4, 0xCDE6, + 0x9BE8, 0xCCF4, 0x9C0D, 0xF5E3, 0x9C10, 0xE4CA, 0x9C12, 0xDCE1, 0x9C15, 0xF9C8, 0x9C25, 0xFCBF, 0x9C32, 0xE8A7, 0x9C3B, 0xD8C4, + 0x9C47, 0xCBBE, 0x9C49, 0xDCAE, 0x9C57, 0xD7F7, 0x9CE5, 0xF0E8, 0x9CE7, 0xDDC0, 0x9CE9, 0xCFCD, 0x9CF3, 0xDCF3, 0x9CF4, 0xD9B0, + 0x9CF6, 0xE6E9, 0x9D09, 0xE4BC, 0x9D1B, 0xEAC4, 0x9D26, 0xE4EC, 0x9D28, 0xE4E5, 0x9D3B, 0xFBF8, 0x9D51, 0xCCBB, 0x9D5D, 0xE4BD, + 0x9D60, 0xCDDC, 0x9D61, 0xD9F7, 0x9D6C, 0xDDDF, 0x9D72, 0xEDCE, 0x9DA9, 0xD9D0, 0x9DAF, 0xE5A3, 0x9DB4, 0xF9CD, 0x9DC4, 0xCDAE, + 0x9DD7, 0xCFCE, 0x9DF2, 0xF6AF, 0x9DF8, 0xFDD3, 0x9DF9, 0xEBED, 0x9DFA, 0xD6DC, 0x9E1A, 0xE5A4, 0x9E1E, 0xD5B6, 0x9E75, 0xD6DD, + 0x9E79, 0xF9E9, 0x9E7D, 0xE7A4, 0x9E7F, 0xD6E3, 0x9E92, 0xD1CB, 0x9E93, 0xD6E4, 0x9E97, 0xD5F2, 0x9E9D, 0xDEFA, 0x9E9F, 0xD7F8, + 0x9EA5, 0xD8EA, 0x9EB4, 0xCFD5, 0x9EB5, 0xD8FD, 0x9EBB, 0xD8AB, 0x9EBE, 0xFDCB, 0x9EC3, 0xFCDC, 0x9ECD, 0xE0A8, 0x9ECE, 0xD5F3, + 0x9ED1, 0xFDD9, 0x9ED4, 0xCCA3, 0x9ED8, 0xD9F9, 0x9EDB, 0xD3EA, 0x9EDC, 0xF5F5, 0x9EDE, 0xEFC7, 0x9EE8, 0xD3DA, 0x9EF4, 0xDABD, + 0x9F07, 0xE8A8, 0x9F08, 0xDCAF, 0x9F0E, 0xF0A3, 0x9F13, 0xCDD5, 0x9F20, 0xE0A9, 0x9F3B, 0xDEAC, 0x9F4A, 0xF0BA, 0x9F4B, 0xEEB1, + 0x9F4E, 0xEEB2, 0x9F52, 0xF6CD, 0x9F5F, 0xEED2, 0x9F61, 0xD6C6, 0x9F67, 0xE0E5, 0x9F6A, 0xF3BB, 0x9F6C, 0xE5E1, 0x9F77, 0xE4CB, + 0x9F8D, 0xD7A3, 0x9F90, 0xDBC2, 0x9F95, 0xCAFE, 0x9F9C, 0xCFCF, 0xAC00, 0xB0A1, 0xAC01, 0xB0A2, 0xAC02, 0x8141, 0xAC03, 0x8142, + 0xAC04, 0xB0A3, 0xAC05, 0x8143, 0xAC06, 0x8144, 0xAC07, 0xB0A4, 0xAC08, 0xB0A5, 0xAC09, 0xB0A6, 0xAC0A, 0xB0A7, 0xAC0B, 0x8145, + 0xAC0C, 0x8146, 0xAC0D, 0x8147, 0xAC0E, 0x8148, 0xAC0F, 0x8149, 0xAC10, 0xB0A8, 0xAC11, 0xB0A9, 0xAC12, 0xB0AA, 0xAC13, 0xB0AB, + 0xAC14, 0xB0AC, 0xAC15, 0xB0AD, 0xAC16, 0xB0AE, 0xAC17, 0xB0AF, 0xAC18, 0x814A, 0xAC19, 0xB0B0, 0xAC1A, 0xB0B1, 0xAC1B, 0xB0B2, + 0xAC1C, 0xB0B3, 0xAC1D, 0xB0B4, 0xAC1E, 0x814B, 0xAC1F, 0x814C, 0xAC20, 0xB0B5, 0xAC21, 0x814D, 0xAC22, 0x814E, 0xAC23, 0x814F, + 0xAC24, 0xB0B6, 0xAC25, 0x8150, 0xAC26, 0x8151, 0xAC27, 0x8152, 0xAC28, 0x8153, 0xAC29, 0x8154, 0xAC2A, 0x8155, 0xAC2B, 0x8156, + 0xAC2C, 0xB0B7, 0xAC2D, 0xB0B8, 0xAC2E, 0x8157, 0xAC2F, 0xB0B9, 0xAC30, 0xB0BA, 0xAC31, 0xB0BB, 0xAC32, 0x8158, 0xAC33, 0x8159, + 0xAC34, 0x815A, 0xAC35, 0x8161, 0xAC36, 0x8162, 0xAC37, 0x8163, 0xAC38, 0xB0BC, 0xAC39, 0xB0BD, 0xAC3A, 0x8164, 0xAC3B, 0x8165, + 0xAC3C, 0xB0BE, 0xAC3D, 0x8166, 0xAC3E, 0x8167, 0xAC3F, 0x8168, 0xAC40, 0xB0BF, 0xAC41, 0x8169, 0xAC42, 0x816A, 0xAC43, 0x816B, + 0xAC44, 0x816C, 0xAC45, 0x816D, 0xAC46, 0x816E, 0xAC47, 0x816F, 0xAC48, 0x8170, 0xAC49, 0x8171, 0xAC4A, 0x8172, 0xAC4B, 0xB0C0, + 0xAC4C, 0x8173, 0xAC4D, 0xB0C1, 0xAC4E, 0x8174, 0xAC4F, 0x8175, 0xAC50, 0x8176, 0xAC51, 0x8177, 0xAC52, 0x8178, 0xAC53, 0x8179, + 0xAC54, 0xB0C2, 0xAC55, 0x817A, 0xAC56, 0x8181, 0xAC57, 0x8182, 0xAC58, 0xB0C3, 0xAC59, 0x8183, 0xAC5A, 0x8184, 0xAC5B, 0x8185, + 0xAC5C, 0xB0C4, 0xAC5D, 0x8186, 0xAC5E, 0x8187, 0xAC5F, 0x8188, 0xAC60, 0x8189, 0xAC61, 0x818A, 0xAC62, 0x818B, 0xAC63, 0x818C, + 0xAC64, 0x818D, 0xAC65, 0x818E, 0xAC66, 0x818F, 0xAC67, 0x8190, 0xAC68, 0x8191, 0xAC69, 0x8192, 0xAC6A, 0x8193, 0xAC6B, 0x8194, + 0xAC6C, 0x8195, 0xAC6D, 0x8196, 0xAC6E, 0x8197, 0xAC6F, 0x8198, 0xAC70, 0xB0C5, 0xAC71, 0xB0C6, 0xAC72, 0x8199, 0xAC73, 0x819A, + 0xAC74, 0xB0C7, 0xAC75, 0x819B, 0xAC76, 0x819C, 0xAC77, 0xB0C8, 0xAC78, 0xB0C9, 0xAC79, 0x819D, 0xAC7A, 0xB0CA, 0xAC7B, 0x819E, + 0xAC7C, 0x819F, 0xAC7D, 0x81A0, 0xAC7E, 0x81A1, 0xAC7F, 0x81A2, 0xAC80, 0xB0CB, 0xAC81, 0xB0CC, 0xAC82, 0x81A3, 0xAC83, 0xB0CD, + 0xAC84, 0xB0CE, 0xAC85, 0xB0CF, 0xAC86, 0xB0D0, 0xAC87, 0x81A4, 0xAC88, 0x81A5, 0xAC89, 0xB0D1, 0xAC8A, 0xB0D2, 0xAC8B, 0xB0D3, + 0xAC8C, 0xB0D4, 0xAC8D, 0x81A6, 0xAC8E, 0x81A7, 0xAC8F, 0x81A8, 0xAC90, 0xB0D5, 0xAC91, 0x81A9, 0xAC92, 0x81AA, 0xAC93, 0x81AB, + 0xAC94, 0xB0D6, 0xAC95, 0x81AC, 0xAC96, 0x81AD, 0xAC97, 0x81AE, 0xAC98, 0x81AF, 0xAC99, 0x81B0, 0xAC9A, 0x81B1, 0xAC9B, 0x81B2, + 0xAC9C, 0xB0D7, 0xAC9D, 0xB0D8, 0xAC9E, 0x81B3, 0xAC9F, 0xB0D9, 0xACA0, 0xB0DA, 0xACA1, 0xB0DB, 0xACA2, 0x81B4, 0xACA3, 0x81B5, + 0xACA4, 0x81B6, 0xACA5, 0x81B7, 0xACA6, 0x81B8, 0xACA7, 0x81B9, 0xACA8, 0xB0DC, 0xACA9, 0xB0DD, 0xACAA, 0xB0DE, 0xACAB, 0x81BA, + 0xACAC, 0xB0DF, 0xACAD, 0x81BB, 0xACAE, 0x81BC, 0xACAF, 0xB0E0, 0xACB0, 0xB0E1, 0xACB1, 0x81BD, 0xACB2, 0x81BE, 0xACB3, 0x81BF, + 0xACB4, 0x81C0, 0xACB5, 0x81C1, 0xACB6, 0x81C2, 0xACB7, 0x81C3, 0xACB8, 0xB0E2, 0xACB9, 0xB0E3, 0xACBA, 0x81C4, 0xACBB, 0xB0E4, + 0xACBC, 0xB0E5, 0xACBD, 0xB0E6, 0xACBE, 0x81C5, 0xACBF, 0x81C6, 0xACC0, 0x81C7, 0xACC1, 0xB0E7, 0xACC2, 0x81C8, 0xACC3, 0x81C9, + 0xACC4, 0xB0E8, 0xACC5, 0x81CA, 0xACC6, 0x81CB, 0xACC7, 0x81CC, 0xACC8, 0xB0E9, 0xACC9, 0x81CD, 0xACCA, 0x81CE, 0xACCB, 0x81CF, + 0xACCC, 0xB0EA, 0xACCD, 0x81D0, 0xACCE, 0x81D1, 0xACCF, 0x81D2, 0xACD0, 0x81D3, 0xACD1, 0x81D4, 0xACD2, 0x81D5, 0xACD3, 0x81D6, + 0xACD4, 0x81D7, 0xACD5, 0xB0EB, 0xACD6, 0x81D8, 0xACD7, 0xB0EC, 0xACD8, 0x81D9, 0xACD9, 0x81DA, 0xACDA, 0x81DB, 0xACDB, 0x81DC, + 0xACDC, 0x81DD, 0xACDD, 0x81DE, 0xACDE, 0x81DF, 0xACDF, 0x81E0, 0xACE0, 0xB0ED, 0xACE1, 0xB0EE, 0xACE2, 0x81E1, 0xACE3, 0x81E2, + 0xACE4, 0xB0EF, 0xACE5, 0x81E3, 0xACE6, 0x81E4, 0xACE7, 0xB0F0, 0xACE8, 0xB0F1, 0xACE9, 0x81E5, 0xACEA, 0xB0F2, 0xACEB, 0x81E6, + 0xACEC, 0xB0F3, 0xACED, 0x81E7, 0xACEE, 0x81E8, 0xACEF, 0xB0F4, 0xACF0, 0xB0F5, 0xACF1, 0xB0F6, 0xACF2, 0x81E9, 0xACF3, 0xB0F7, + 0xACF4, 0x81EA, 0xACF5, 0xB0F8, 0xACF6, 0xB0F9, 0xACF7, 0x81EB, 0xACF8, 0x81EC, 0xACF9, 0x81ED, 0xACFA, 0x81EE, 0xACFB, 0x81EF, + 0xACFC, 0xB0FA, 0xACFD, 0xB0FB, 0xACFE, 0x81F0, 0xACFF, 0x81F1, 0xAD00, 0xB0FC, 0xAD01, 0x81F2, 0xAD02, 0x81F3, 0xAD03, 0x81F4, + 0xAD04, 0xB0FD, 0xAD05, 0x81F5, 0xAD06, 0xB0FE, 0xAD07, 0x81F6, 0xAD08, 0x81F7, 0xAD09, 0x81F8, 0xAD0A, 0x81F9, 0xAD0B, 0x81FA, + 0xAD0C, 0xB1A1, 0xAD0D, 0xB1A2, 0xAD0E, 0x81FB, 0xAD0F, 0xB1A3, 0xAD10, 0x81FC, 0xAD11, 0xB1A4, 0xAD12, 0x81FD, 0xAD13, 0x81FE, + 0xAD14, 0x8241, 0xAD15, 0x8242, 0xAD16, 0x8243, 0xAD17, 0x8244, 0xAD18, 0xB1A5, 0xAD19, 0x8245, 0xAD1A, 0x8246, 0xAD1B, 0x8247, + 0xAD1C, 0xB1A6, 0xAD1D, 0x8248, 0xAD1E, 0x8249, 0xAD1F, 0x824A, 0xAD20, 0xB1A7, 0xAD21, 0x824B, 0xAD22, 0x824C, 0xAD23, 0x824D, + 0xAD24, 0x824E, 0xAD25, 0x824F, 0xAD26, 0x8250, 0xAD27, 0x8251, 0xAD28, 0x8252, 0xAD29, 0xB1A8, 0xAD2A, 0x8253, 0xAD2B, 0x8254, + 0xAD2C, 0xB1A9, 0xAD2D, 0xB1AA, 0xAD2E, 0x8255, 0xAD2F, 0x8256, 0xAD30, 0x8257, 0xAD31, 0x8258, 0xAD32, 0x8259, 0xAD33, 0x825A, + 0xAD34, 0xB1AB, 0xAD35, 0xB1AC, 0xAD36, 0x8261, 0xAD37, 0x8262, 0xAD38, 0xB1AD, 0xAD39, 0x8263, 0xAD3A, 0x8264, 0xAD3B, 0x8265, + 0xAD3C, 0xB1AE, 0xAD3D, 0x8266, 0xAD3E, 0x8267, 0xAD3F, 0x8268, 0xAD40, 0x8269, 0xAD41, 0x826A, 0xAD42, 0x826B, 0xAD43, 0x826C, + 0xAD44, 0xB1AF, 0xAD45, 0xB1B0, 0xAD46, 0x826D, 0xAD47, 0xB1B1, 0xAD48, 0x826E, 0xAD49, 0xB1B2, 0xAD4A, 0x826F, 0xAD4B, 0x8270, + 0xAD4C, 0x8271, 0xAD4D, 0x8272, 0xAD4E, 0x8273, 0xAD4F, 0x8274, 0xAD50, 0xB1B3, 0xAD51, 0x8275, 0xAD52, 0x8276, 0xAD53, 0x8277, + 0xAD54, 0xB1B4, 0xAD55, 0x8278, 0xAD56, 0x8279, 0xAD57, 0x827A, 0xAD58, 0xB1B5, 0xAD59, 0x8281, 0xAD5A, 0x8282, 0xAD5B, 0x8283, + 0xAD5C, 0x8284, 0xAD5D, 0x8285, 0xAD5E, 0x8286, 0xAD5F, 0x8287, 0xAD60, 0x8288, 0xAD61, 0xB1B6, 0xAD62, 0x8289, 0xAD63, 0xB1B7, + 0xAD64, 0x828A, 0xAD65, 0x828B, 0xAD66, 0x828C, 0xAD67, 0x828D, 0xAD68, 0x828E, 0xAD69, 0x828F, 0xAD6A, 0x8290, 0xAD6B, 0x8291, + 0xAD6C, 0xB1B8, 0xAD6D, 0xB1B9, 0xAD6E, 0x8292, 0xAD6F, 0x8293, 0xAD70, 0xB1BA, 0xAD71, 0x8294, 0xAD72, 0x8295, 0xAD73, 0xB1BB, + 0xAD74, 0xB1BC, 0xAD75, 0xB1BD, 0xAD76, 0xB1BE, 0xAD77, 0x8296, 0xAD78, 0x8297, 0xAD79, 0x8298, 0xAD7A, 0x8299, 0xAD7B, 0xB1BF, + 0xAD7C, 0xB1C0, 0xAD7D, 0xB1C1, 0xAD7E, 0x829A, 0xAD7F, 0xB1C2, 0xAD80, 0x829B, 0xAD81, 0xB1C3, 0xAD82, 0xB1C4, 0xAD83, 0x829C, + 0xAD84, 0x829D, 0xAD85, 0x829E, 0xAD86, 0x829F, 0xAD87, 0x82A0, 0xAD88, 0xB1C5, 0xAD89, 0xB1C6, 0xAD8A, 0x82A1, 0xAD8B, 0x82A2, + 0xAD8C, 0xB1C7, 0xAD8D, 0x82A3, 0xAD8E, 0x82A4, 0xAD8F, 0x82A5, 0xAD90, 0xB1C8, 0xAD91, 0x82A6, 0xAD92, 0x82A7, 0xAD93, 0x82A8, + 0xAD94, 0x82A9, 0xAD95, 0x82AA, 0xAD96, 0x82AB, 0xAD97, 0x82AC, 0xAD98, 0x82AD, 0xAD99, 0x82AE, 0xAD9A, 0x82AF, 0xAD9B, 0x82B0, + 0xAD9C, 0xB1C9, 0xAD9D, 0xB1CA, 0xAD9E, 0x82B1, 0xAD9F, 0x82B2, 0xADA0, 0x82B3, 0xADA1, 0x82B4, 0xADA2, 0x82B5, 0xADA3, 0x82B6, + 0xADA4, 0xB1CB, 0xADA5, 0x82B7, 0xADA6, 0x82B8, 0xADA7, 0x82B9, 0xADA8, 0x82BA, 0xADA9, 0x82BB, 0xADAA, 0x82BC, 0xADAB, 0x82BD, + 0xADAC, 0x82BE, 0xADAD, 0x82BF, 0xADAE, 0x82C0, 0xADAF, 0x82C1, 0xADB0, 0x82C2, 0xADB1, 0x82C3, 0xADB2, 0x82C4, 0xADB3, 0x82C5, + 0xADB4, 0x82C6, 0xADB5, 0x82C7, 0xADB6, 0x82C8, 0xADB7, 0xB1CC, 0xADB8, 0x82C9, 0xADB9, 0x82CA, 0xADBA, 0x82CB, 0xADBB, 0x82CC, + 0xADBC, 0x82CD, 0xADBD, 0x82CE, 0xADBE, 0x82CF, 0xADBF, 0x82D0, 0xADC0, 0xB1CD, 0xADC1, 0xB1CE, 0xADC2, 0x82D1, 0xADC3, 0x82D2, + 0xADC4, 0xB1CF, 0xADC5, 0x82D3, 0xADC6, 0x82D4, 0xADC7, 0x82D5, 0xADC8, 0xB1D0, 0xADC9, 0x82D6, 0xADCA, 0x82D7, 0xADCB, 0x82D8, + 0xADCC, 0x82D9, 0xADCD, 0x82DA, 0xADCE, 0x82DB, 0xADCF, 0x82DC, 0xADD0, 0xB1D1, 0xADD1, 0xB1D2, 0xADD2, 0x82DD, 0xADD3, 0xB1D3, + 0xADD4, 0x82DE, 0xADD5, 0x82DF, 0xADD6, 0x82E0, 0xADD7, 0x82E1, 0xADD8, 0x82E2, 0xADD9, 0x82E3, 0xADDA, 0x82E4, 0xADDB, 0x82E5, + 0xADDC, 0xB1D4, 0xADDD, 0x82E6, 0xADDE, 0x82E7, 0xADDF, 0x82E8, 0xADE0, 0xB1D5, 0xADE1, 0x82E9, 0xADE2, 0x82EA, 0xADE3, 0x82EB, + 0xADE4, 0xB1D6, 0xADE5, 0x82EC, 0xADE6, 0x82ED, 0xADE7, 0x82EE, 0xADE8, 0x82EF, 0xADE9, 0x82F0, 0xADEA, 0x82F1, 0xADEB, 0x82F2, + 0xADEC, 0x82F3, 0xADED, 0x82F4, 0xADEE, 0x82F5, 0xADEF, 0x82F6, 0xADF0, 0x82F7, 0xADF1, 0x82F8, 0xADF2, 0x82F9, 0xADF3, 0x82FA, + 0xADF4, 0x82FB, 0xADF5, 0x82FC, 0xADF6, 0x82FD, 0xADF7, 0x82FE, 0xADF8, 0xB1D7, 0xADF9, 0xB1D8, 0xADFA, 0x8341, 0xADFB, 0x8342, + 0xADFC, 0xB1D9, 0xADFD, 0x8343, 0xADFE, 0x8344, 0xADFF, 0xB1DA, 0xAE00, 0xB1DB, 0xAE01, 0xB1DC, 0xAE02, 0x8345, 0xAE03, 0x8346, + 0xAE04, 0x8347, 0xAE05, 0x8348, 0xAE06, 0x8349, 0xAE07, 0x834A, 0xAE08, 0xB1DD, 0xAE09, 0xB1DE, 0xAE0A, 0x834B, 0xAE0B, 0xB1DF, + 0xAE0C, 0x834C, 0xAE0D, 0xB1E0, 0xAE0E, 0x834D, 0xAE0F, 0x834E, 0xAE10, 0x834F, 0xAE11, 0x8350, 0xAE12, 0x8351, 0xAE13, 0x8352, + 0xAE14, 0xB1E1, 0xAE15, 0x8353, 0xAE16, 0x8354, 0xAE17, 0x8355, 0xAE18, 0x8356, 0xAE19, 0x8357, 0xAE1A, 0x8358, 0xAE1B, 0x8359, + 0xAE1C, 0x835A, 0xAE1D, 0x8361, 0xAE1E, 0x8362, 0xAE1F, 0x8363, 0xAE20, 0x8364, 0xAE21, 0x8365, 0xAE22, 0x8366, 0xAE23, 0x8367, + 0xAE24, 0x8368, 0xAE25, 0x8369, 0xAE26, 0x836A, 0xAE27, 0x836B, 0xAE28, 0x836C, 0xAE29, 0x836D, 0xAE2A, 0x836E, 0xAE2B, 0x836F, + 0xAE2C, 0x8370, 0xAE2D, 0x8371, 0xAE2E, 0x8372, 0xAE2F, 0x8373, 0xAE30, 0xB1E2, 0xAE31, 0xB1E3, 0xAE32, 0x8374, 0xAE33, 0x8375, + 0xAE34, 0xB1E4, 0xAE35, 0x8376, 0xAE36, 0x8377, 0xAE37, 0xB1E5, 0xAE38, 0xB1E6, 0xAE39, 0x8378, 0xAE3A, 0xB1E7, 0xAE3B, 0x8379, + 0xAE3C, 0x837A, 0xAE3D, 0x8381, 0xAE3E, 0x8382, 0xAE3F, 0x8383, 0xAE40, 0xB1E8, 0xAE41, 0xB1E9, 0xAE42, 0x8384, 0xAE43, 0xB1EA, + 0xAE44, 0x8385, 0xAE45, 0xB1EB, 0xAE46, 0xB1EC, 0xAE47, 0x8386, 0xAE48, 0x8387, 0xAE49, 0x8388, 0xAE4A, 0xB1ED, 0xAE4B, 0x8389, + 0xAE4C, 0xB1EE, 0xAE4D, 0xB1EF, 0xAE4E, 0xB1F0, 0xAE4F, 0x838A, 0xAE50, 0xB1F1, 0xAE51, 0x838B, 0xAE52, 0x838C, 0xAE53, 0x838D, + 0xAE54, 0xB1F2, 0xAE55, 0x838E, 0xAE56, 0xB1F3, 0xAE57, 0x838F, 0xAE58, 0x8390, 0xAE59, 0x8391, 0xAE5A, 0x8392, 0xAE5B, 0x8393, + 0xAE5C, 0xB1F4, 0xAE5D, 0xB1F5, 0xAE5E, 0x8394, 0xAE5F, 0xB1F6, 0xAE60, 0xB1F7, 0xAE61, 0xB1F8, 0xAE62, 0x8395, 0xAE63, 0x8396, + 0xAE64, 0x8397, 0xAE65, 0xB1F9, 0xAE66, 0x8398, 0xAE67, 0x8399, 0xAE68, 0xB1FA, 0xAE69, 0xB1FB, 0xAE6A, 0x839A, 0xAE6B, 0x839B, + 0xAE6C, 0xB1FC, 0xAE6D, 0x839C, 0xAE6E, 0x839D, 0xAE6F, 0x839E, 0xAE70, 0xB1FD, 0xAE71, 0x839F, 0xAE72, 0x83A0, 0xAE73, 0x83A1, + 0xAE74, 0x83A2, 0xAE75, 0x83A3, 0xAE76, 0x83A4, 0xAE77, 0x83A5, 0xAE78, 0xB1FE, 0xAE79, 0xB2A1, 0xAE7A, 0x83A6, 0xAE7B, 0xB2A2, + 0xAE7C, 0xB2A3, 0xAE7D, 0xB2A4, 0xAE7E, 0x83A7, 0xAE7F, 0x83A8, 0xAE80, 0x83A9, 0xAE81, 0x83AA, 0xAE82, 0x83AB, 0xAE83, 0x83AC, + 0xAE84, 0xB2A5, 0xAE85, 0xB2A6, 0xAE86, 0x83AD, 0xAE87, 0x83AE, 0xAE88, 0x83AF, 0xAE89, 0x83B0, 0xAE8A, 0x83B1, 0xAE8B, 0x83B2, + 0xAE8C, 0xB2A7, 0xAE8D, 0x83B3, 0xAE8E, 0x83B4, 0xAE8F, 0x83B5, 0xAE90, 0x83B6, 0xAE91, 0x83B7, 0xAE92, 0x83B8, 0xAE93, 0x83B9, + 0xAE94, 0x83BA, 0xAE95, 0x83BB, 0xAE96, 0x83BC, 0xAE97, 0x83BD, 0xAE98, 0x83BE, 0xAE99, 0x83BF, 0xAE9A, 0x83C0, 0xAE9B, 0x83C1, + 0xAE9C, 0x83C2, 0xAE9D, 0x83C3, 0xAE9E, 0x83C4, 0xAE9F, 0x83C5, 0xAEA0, 0x83C6, 0xAEA1, 0x83C7, 0xAEA2, 0x83C8, 0xAEA3, 0x83C9, + 0xAEA4, 0x83CA, 0xAEA5, 0x83CB, 0xAEA6, 0x83CC, 0xAEA7, 0x83CD, 0xAEA8, 0x83CE, 0xAEA9, 0x83CF, 0xAEAA, 0x83D0, 0xAEAB, 0x83D1, + 0xAEAC, 0x83D2, 0xAEAD, 0x83D3, 0xAEAE, 0x83D4, 0xAEAF, 0x83D5, 0xAEB0, 0x83D6, 0xAEB1, 0x83D7, 0xAEB2, 0x83D8, 0xAEB3, 0x83D9, + 0xAEB4, 0x83DA, 0xAEB5, 0x83DB, 0xAEB6, 0x83DC, 0xAEB7, 0x83DD, 0xAEB8, 0x83DE, 0xAEB9, 0x83DF, 0xAEBA, 0x83E0, 0xAEBB, 0x83E1, + 0xAEBC, 0xB2A8, 0xAEBD, 0xB2A9, 0xAEBE, 0xB2AA, 0xAEBF, 0x83E2, 0xAEC0, 0xB2AB, 0xAEC1, 0x83E3, 0xAEC2, 0x83E4, 0xAEC3, 0x83E5, + 0xAEC4, 0xB2AC, 0xAEC5, 0x83E6, 0xAEC6, 0x83E7, 0xAEC7, 0x83E8, 0xAEC8, 0x83E9, 0xAEC9, 0x83EA, 0xAECA, 0x83EB, 0xAECB, 0x83EC, + 0xAECC, 0xB2AD, 0xAECD, 0xB2AE, 0xAECE, 0x83ED, 0xAECF, 0xB2AF, 0xAED0, 0xB2B0, 0xAED1, 0xB2B1, 0xAED2, 0x83EE, 0xAED3, 0x83EF, + 0xAED4, 0x83F0, 0xAED5, 0x83F1, 0xAED6, 0x83F2, 0xAED7, 0x83F3, 0xAED8, 0xB2B2, 0xAED9, 0xB2B3, 0xAEDA, 0x83F4, 0xAEDB, 0x83F5, + 0xAEDC, 0xB2B4, 0xAEDD, 0x83F6, 0xAEDE, 0x83F7, 0xAEDF, 0x83F8, 0xAEE0, 0x83F9, 0xAEE1, 0x83FA, 0xAEE2, 0x83FB, 0xAEE3, 0x83FC, + 0xAEE4, 0x83FD, 0xAEE5, 0x83FE, 0xAEE6, 0x8441, 0xAEE7, 0x8442, 0xAEE8, 0xB2B5, 0xAEE9, 0x8443, 0xAEEA, 0x8444, 0xAEEB, 0xB2B6, + 0xAEEC, 0x8445, 0xAEED, 0xB2B7, 0xAEEE, 0x8446, 0xAEEF, 0x8447, 0xAEF0, 0x8448, 0xAEF1, 0x8449, 0xAEF2, 0x844A, 0xAEF3, 0x844B, + 0xAEF4, 0xB2B8, 0xAEF5, 0x844C, 0xAEF6, 0x844D, 0xAEF7, 0x844E, 0xAEF8, 0xB2B9, 0xAEF9, 0x844F, 0xAEFA, 0x8450, 0xAEFB, 0x8451, + 0xAEFC, 0xB2BA, 0xAEFD, 0x8452, 0xAEFE, 0x8453, 0xAEFF, 0x8454, 0xAF00, 0x8455, 0xAF01, 0x8456, 0xAF02, 0x8457, 0xAF03, 0x8458, + 0xAF04, 0x8459, 0xAF05, 0x845A, 0xAF06, 0x8461, 0xAF07, 0xB2BB, 0xAF08, 0xB2BC, 0xAF09, 0x8462, 0xAF0A, 0x8463, 0xAF0B, 0x8464, + 0xAF0C, 0x8465, 0xAF0D, 0xB2BD, 0xAF0E, 0x8466, 0xAF0F, 0x8467, 0xAF10, 0xB2BE, 0xAF11, 0x8468, 0xAF12, 0x8469, 0xAF13, 0x846A, + 0xAF14, 0x846B, 0xAF15, 0x846C, 0xAF16, 0x846D, 0xAF17, 0x846E, 0xAF18, 0x846F, 0xAF19, 0x8470, 0xAF1A, 0x8471, 0xAF1B, 0x8472, + 0xAF1C, 0x8473, 0xAF1D, 0x8474, 0xAF1E, 0x8475, 0xAF1F, 0x8476, 0xAF20, 0x8477, 0xAF21, 0x8478, 0xAF22, 0x8479, 0xAF23, 0x847A, + 0xAF24, 0x8481, 0xAF25, 0x8482, 0xAF26, 0x8483, 0xAF27, 0x8484, 0xAF28, 0x8485, 0xAF29, 0x8486, 0xAF2A, 0x8487, 0xAF2B, 0x8488, + 0xAF2C, 0xB2BF, 0xAF2D, 0xB2C0, 0xAF2E, 0x8489, 0xAF2F, 0x848A, 0xAF30, 0xB2C1, 0xAF31, 0x848B, 0xAF32, 0xB2C2, 0xAF33, 0x848C, + 0xAF34, 0xB2C3, 0xAF35, 0x848D, 0xAF36, 0x848E, 0xAF37, 0x848F, 0xAF38, 0x8490, 0xAF39, 0x8491, 0xAF3A, 0x8492, 0xAF3B, 0x8493, + 0xAF3C, 0xB2C4, 0xAF3D, 0xB2C5, 0xAF3E, 0x8494, 0xAF3F, 0xB2C6, 0xAF40, 0x8495, 0xAF41, 0xB2C7, 0xAF42, 0xB2C8, 0xAF43, 0xB2C9, + 0xAF44, 0x8496, 0xAF45, 0x8497, 0xAF46, 0x8498, 0xAF47, 0x8499, 0xAF48, 0xB2CA, 0xAF49, 0xB2CB, 0xAF4A, 0x849A, 0xAF4B, 0x849B, + 0xAF4C, 0x849C, 0xAF4D, 0x849D, 0xAF4E, 0x849E, 0xAF4F, 0x849F, 0xAF50, 0xB2CC, 0xAF51, 0x84A0, 0xAF52, 0x84A1, 0xAF53, 0x84A2, + 0xAF54, 0x84A3, 0xAF55, 0x84A4, 0xAF56, 0x84A5, 0xAF57, 0x84A6, 0xAF58, 0x84A7, 0xAF59, 0x84A8, 0xAF5A, 0x84A9, 0xAF5B, 0x84AA, + 0xAF5C, 0xB2CD, 0xAF5D, 0xB2CE, 0xAF5E, 0x84AB, 0xAF5F, 0x84AC, 0xAF60, 0x84AD, 0xAF61, 0x84AE, 0xAF62, 0x84AF, 0xAF63, 0x84B0, + 0xAF64, 0xB2CF, 0xAF65, 0xB2D0, 0xAF66, 0x84B1, 0xAF67, 0x84B2, 0xAF68, 0x84B3, 0xAF69, 0x84B4, 0xAF6A, 0x84B5, 0xAF6B, 0x84B6, + 0xAF6C, 0x84B7, 0xAF6D, 0x84B8, 0xAF6E, 0x84B9, 0xAF6F, 0x84BA, 0xAF70, 0x84BB, 0xAF71, 0x84BC, 0xAF72, 0x84BD, 0xAF73, 0x84BE, + 0xAF74, 0x84BF, 0xAF75, 0x84C0, 0xAF76, 0x84C1, 0xAF77, 0x84C2, 0xAF78, 0x84C3, 0xAF79, 0xB2D1, 0xAF7A, 0x84C4, 0xAF7B, 0x84C5, + 0xAF7C, 0x84C6, 0xAF7D, 0x84C7, 0xAF7E, 0x84C8, 0xAF7F, 0x84C9, 0xAF80, 0xB2D2, 0xAF81, 0x84CA, 0xAF82, 0x84CB, 0xAF83, 0x84CC, + 0xAF84, 0xB2D3, 0xAF85, 0x84CD, 0xAF86, 0x84CE, 0xAF87, 0x84CF, 0xAF88, 0xB2D4, 0xAF89, 0x84D0, 0xAF8A, 0x84D1, 0xAF8B, 0x84D2, + 0xAF8C, 0x84D3, 0xAF8D, 0x84D4, 0xAF8E, 0x84D5, 0xAF8F, 0x84D6, 0xAF90, 0xB2D5, 0xAF91, 0xB2D6, 0xAF92, 0x84D7, 0xAF93, 0x84D8, + 0xAF94, 0x84D9, 0xAF95, 0xB2D7, 0xAF96, 0x84DA, 0xAF97, 0x84DB, 0xAF98, 0x84DC, 0xAF99, 0x84DD, 0xAF9A, 0x84DE, 0xAF9B, 0x84DF, + 0xAF9C, 0xB2D8, 0xAF9D, 0x84E0, 0xAF9E, 0x84E1, 0xAF9F, 0x84E2, 0xAFA0, 0x84E3, 0xAFA1, 0x84E4, 0xAFA2, 0x84E5, 0xAFA3, 0x84E6, + 0xAFA4, 0x84E7, 0xAFA5, 0x84E8, 0xAFA6, 0x84E9, 0xAFA7, 0x84EA, 0xAFA8, 0x84EB, 0xAFA9, 0x84EC, 0xAFAA, 0x84ED, 0xAFAB, 0x84EE, + 0xAFAC, 0x84EF, 0xAFAD, 0x84F0, 0xAFAE, 0x84F1, 0xAFAF, 0x84F2, 0xAFB0, 0x84F3, 0xAFB1, 0x84F4, 0xAFB2, 0x84F5, 0xAFB3, 0x84F6, + 0xAFB4, 0x84F7, 0xAFB5, 0x84F8, 0xAFB6, 0x84F9, 0xAFB7, 0x84FA, 0xAFB8, 0xB2D9, 0xAFB9, 0xB2DA, 0xAFBA, 0x84FB, 0xAFBB, 0x84FC, + 0xAFBC, 0xB2DB, 0xAFBD, 0x84FD, 0xAFBE, 0x84FE, 0xAFBF, 0x8541, 0xAFC0, 0xB2DC, 0xAFC1, 0x8542, 0xAFC2, 0x8543, 0xAFC3, 0x8544, + 0xAFC4, 0x8545, 0xAFC5, 0x8546, 0xAFC6, 0x8547, 0xAFC7, 0xB2DD, 0xAFC8, 0xB2DE, 0xAFC9, 0xB2DF, 0xAFCA, 0x8548, 0xAFCB, 0xB2E0, + 0xAFCC, 0x8549, 0xAFCD, 0xB2E1, 0xAFCE, 0xB2E2, 0xAFCF, 0x854A, 0xAFD0, 0x854B, 0xAFD1, 0x854C, 0xAFD2, 0x854D, 0xAFD3, 0x854E, + 0xAFD4, 0xB2E3, 0xAFD5, 0x854F, 0xAFD6, 0x8550, 0xAFD7, 0x8551, 0xAFD8, 0x8552, 0xAFD9, 0x8553, 0xAFDA, 0x8554, 0xAFDB, 0x8555, + 0xAFDC, 0xB2E4, 0xAFDD, 0x8556, 0xAFDE, 0x8557, 0xAFDF, 0x8558, 0xAFE0, 0x8559, 0xAFE1, 0x855A, 0xAFE2, 0x8561, 0xAFE3, 0x8562, + 0xAFE4, 0x8563, 0xAFE5, 0x8564, 0xAFE6, 0x8565, 0xAFE7, 0x8566, 0xAFE8, 0xB2E5, 0xAFE9, 0xB2E6, 0xAFEA, 0x8567, 0xAFEB, 0x8568, + 0xAFEC, 0x8569, 0xAFED, 0x856A, 0xAFEE, 0x856B, 0xAFEF, 0x856C, 0xAFF0, 0xB2E7, 0xAFF1, 0xB2E8, 0xAFF2, 0x856D, 0xAFF3, 0x856E, + 0xAFF4, 0xB2E9, 0xAFF5, 0x856F, 0xAFF6, 0x8570, 0xAFF7, 0x8571, 0xAFF8, 0xB2EA, 0xAFF9, 0x8572, 0xAFFA, 0x8573, 0xAFFB, 0x8574, + 0xAFFC, 0x8575, 0xAFFD, 0x8576, 0xAFFE, 0x8577, 0xAFFF, 0x8578, 0xB000, 0xB2EB, 0xB001, 0xB2EC, 0xB002, 0x8579, 0xB003, 0x857A, + 0xB004, 0xB2ED, 0xB005, 0x8581, 0xB006, 0x8582, 0xB007, 0x8583, 0xB008, 0x8584, 0xB009, 0x8585, 0xB00A, 0x8586, 0xB00B, 0x8587, + 0xB00C, 0xB2EE, 0xB00D, 0x8588, 0xB00E, 0x8589, 0xB00F, 0x858A, 0xB010, 0xB2EF, 0xB011, 0x858B, 0xB012, 0x858C, 0xB013, 0x858D, + 0xB014, 0xB2F0, 0xB015, 0x858E, 0xB016, 0x858F, 0xB017, 0x8590, 0xB018, 0x8591, 0xB019, 0x8592, 0xB01A, 0x8593, 0xB01B, 0x8594, + 0xB01C, 0xB2F1, 0xB01D, 0xB2F2, 0xB01E, 0x8595, 0xB01F, 0x8596, 0xB020, 0x8597, 0xB021, 0x8598, 0xB022, 0x8599, 0xB023, 0x859A, + 0xB024, 0x859B, 0xB025, 0x859C, 0xB026, 0x859D, 0xB027, 0x859E, 0xB028, 0xB2F3, 0xB029, 0x859F, 0xB02A, 0x85A0, 0xB02B, 0x85A1, + 0xB02C, 0x85A2, 0xB02D, 0x85A3, 0xB02E, 0x85A4, 0xB02F, 0x85A5, 0xB030, 0x85A6, 0xB031, 0x85A7, 0xB032, 0x85A8, 0xB033, 0x85A9, + 0xB034, 0x85AA, 0xB035, 0x85AB, 0xB036, 0x85AC, 0xB037, 0x85AD, 0xB038, 0x85AE, 0xB039, 0x85AF, 0xB03A, 0x85B0, 0xB03B, 0x85B1, + 0xB03C, 0x85B2, 0xB03D, 0x85B3, 0xB03E, 0x85B4, 0xB03F, 0x85B5, 0xB040, 0x85B6, 0xB041, 0x85B7, 0xB042, 0x85B8, 0xB043, 0x85B9, + 0xB044, 0xB2F4, 0xB045, 0xB2F5, 0xB046, 0x85BA, 0xB047, 0x85BB, 0xB048, 0xB2F6, 0xB049, 0x85BC, 0xB04A, 0xB2F7, 0xB04B, 0x85BD, + 0xB04C, 0xB2F8, 0xB04D, 0x85BE, 0xB04E, 0xB2F9, 0xB04F, 0x85BF, 0xB050, 0x85C0, 0xB051, 0x85C1, 0xB052, 0x85C2, 0xB053, 0xB2FA, + 0xB054, 0xB2FB, 0xB055, 0xB2FC, 0xB056, 0x85C3, 0xB057, 0xB2FD, 0xB058, 0x85C4, 0xB059, 0xB2FE, 0xB05A, 0x85C5, 0xB05B, 0x85C6, + 0xB05C, 0x85C7, 0xB05D, 0xB3A1, 0xB05E, 0x85C8, 0xB05F, 0x85C9, 0xB060, 0x85CA, 0xB061, 0x85CB, 0xB062, 0x85CC, 0xB063, 0x85CD, + 0xB064, 0x85CE, 0xB065, 0x85CF, 0xB066, 0x85D0, 0xB067, 0x85D1, 0xB068, 0x85D2, 0xB069, 0x85D3, 0xB06A, 0x85D4, 0xB06B, 0x85D5, + 0xB06C, 0x85D6, 0xB06D, 0x85D7, 0xB06E, 0x85D8, 0xB06F, 0x85D9, 0xB070, 0x85DA, 0xB071, 0x85DB, 0xB072, 0x85DC, 0xB073, 0x85DD, + 0xB074, 0x85DE, 0xB075, 0x85DF, 0xB076, 0x85E0, 0xB077, 0x85E1, 0xB078, 0x85E2, 0xB079, 0x85E3, 0xB07A, 0x85E4, 0xB07B, 0x85E5, + 0xB07C, 0xB3A2, 0xB07D, 0xB3A3, 0xB07E, 0x85E6, 0xB07F, 0x85E7, 0xB080, 0xB3A4, 0xB081, 0x85E8, 0xB082, 0x85E9, 0xB083, 0x85EA, + 0xB084, 0xB3A5, 0xB085, 0x85EB, 0xB086, 0x85EC, 0xB087, 0x85ED, 0xB088, 0x85EE, 0xB089, 0x85EF, 0xB08A, 0x85F0, 0xB08B, 0x85F1, + 0xB08C, 0xB3A6, 0xB08D, 0xB3A7, 0xB08E, 0x85F2, 0xB08F, 0xB3A8, 0xB090, 0x85F3, 0xB091, 0xB3A9, 0xB092, 0x85F4, 0xB093, 0x85F5, + 0xB094, 0x85F6, 0xB095, 0x85F7, 0xB096, 0x85F8, 0xB097, 0x85F9, 0xB098, 0xB3AA, 0xB099, 0xB3AB, 0xB09A, 0xB3AC, 0xB09B, 0x85FA, + 0xB09C, 0xB3AD, 0xB09D, 0x85FB, 0xB09E, 0x85FC, 0xB09F, 0xB3AE, 0xB0A0, 0xB3AF, 0xB0A1, 0xB3B0, 0xB0A2, 0xB3B1, 0xB0A3, 0x85FD, + 0xB0A4, 0x85FE, 0xB0A5, 0x8641, 0xB0A6, 0x8642, 0xB0A7, 0x8643, 0xB0A8, 0xB3B2, 0xB0A9, 0xB3B3, 0xB0AA, 0x8644, 0xB0AB, 0xB3B4, + 0xB0AC, 0xB3B5, 0xB0AD, 0xB3B6, 0xB0AE, 0xB3B7, 0xB0AF, 0xB3B8, 0xB0B0, 0x8645, 0xB0B1, 0xB3B9, 0xB0B2, 0x8646, 0xB0B3, 0xB3BA, + 0xB0B4, 0xB3BB, 0xB0B5, 0xB3BC, 0xB0B6, 0x8647, 0xB0B7, 0x8648, 0xB0B8, 0xB3BD, 0xB0B9, 0x8649, 0xB0BA, 0x864A, 0xB0BB, 0x864B, + 0xB0BC, 0xB3BE, 0xB0BD, 0x864C, 0xB0BE, 0x864D, 0xB0BF, 0x864E, 0xB0C0, 0x864F, 0xB0C1, 0x8650, 0xB0C2, 0x8651, 0xB0C3, 0x8652, + 0xB0C4, 0xB3BF, 0xB0C5, 0xB3C0, 0xB0C6, 0x8653, 0xB0C7, 0xB3C1, 0xB0C8, 0xB3C2, 0xB0C9, 0xB3C3, 0xB0CA, 0x8654, 0xB0CB, 0x8655, + 0xB0CC, 0x8656, 0xB0CD, 0x8657, 0xB0CE, 0x8658, 0xB0CF, 0x8659, 0xB0D0, 0xB3C4, 0xB0D1, 0xB3C5, 0xB0D2, 0x865A, 0xB0D3, 0x8661, + 0xB0D4, 0xB3C6, 0xB0D5, 0x8662, 0xB0D6, 0x8663, 0xB0D7, 0x8664, 0xB0D8, 0xB3C7, 0xB0D9, 0x8665, 0xB0DA, 0x8666, 0xB0DB, 0x8667, + 0xB0DC, 0x8668, 0xB0DD, 0x8669, 0xB0DE, 0x866A, 0xB0DF, 0x866B, 0xB0E0, 0xB3C8, 0xB0E1, 0x866C, 0xB0E2, 0x866D, 0xB0E3, 0x866E, + 0xB0E4, 0x866F, 0xB0E5, 0xB3C9, 0xB0E6, 0x8670, 0xB0E7, 0x8671, 0xB0E8, 0x8672, 0xB0E9, 0x8673, 0xB0EA, 0x8674, 0xB0EB, 0x8675, + 0xB0EC, 0x8676, 0xB0ED, 0x8677, 0xB0EE, 0x8678, 0xB0EF, 0x8679, 0xB0F0, 0x867A, 0xB0F1, 0x8681, 0xB0F2, 0x8682, 0xB0F3, 0x8683, + 0xB0F4, 0x8684, 0xB0F5, 0x8685, 0xB0F6, 0x8686, 0xB0F7, 0x8687, 0xB0F8, 0x8688, 0xB0F9, 0x8689, 0xB0FA, 0x868A, 0xB0FB, 0x868B, + 0xB0FC, 0x868C, 0xB0FD, 0x868D, 0xB0FE, 0x868E, 0xB0FF, 0x868F, 0xB100, 0x8690, 0xB101, 0x8691, 0xB102, 0x8692, 0xB103, 0x8693, + 0xB104, 0x8694, 0xB105, 0x8695, 0xB106, 0x8696, 0xB107, 0x8697, 0xB108, 0xB3CA, 0xB109, 0xB3CB, 0xB10A, 0x8698, 0xB10B, 0xB3CC, + 0xB10C, 0xB3CD, 0xB10D, 0x8699, 0xB10E, 0x869A, 0xB10F, 0x869B, 0xB110, 0xB3CE, 0xB111, 0x869C, 0xB112, 0xB3CF, 0xB113, 0xB3D0, + 0xB114, 0x869D, 0xB115, 0x869E, 0xB116, 0x869F, 0xB117, 0x86A0, 0xB118, 0xB3D1, 0xB119, 0xB3D2, 0xB11A, 0x86A1, 0xB11B, 0xB3D3, + 0xB11C, 0xB3D4, 0xB11D, 0xB3D5, 0xB11E, 0x86A2, 0xB11F, 0x86A3, 0xB120, 0x86A4, 0xB121, 0x86A5, 0xB122, 0x86A6, 0xB123, 0xB3D6, + 0xB124, 0xB3D7, 0xB125, 0xB3D8, 0xB126, 0x86A7, 0xB127, 0x86A8, 0xB128, 0xB3D9, 0xB129, 0x86A9, 0xB12A, 0x86AA, 0xB12B, 0x86AB, + 0xB12C, 0xB3DA, 0xB12D, 0x86AC, 0xB12E, 0x86AD, 0xB12F, 0x86AE, 0xB130, 0x86AF, 0xB131, 0x86B0, 0xB132, 0x86B1, 0xB133, 0x86B2, + 0xB134, 0xB3DB, 0xB135, 0xB3DC, 0xB136, 0x86B3, 0xB137, 0xB3DD, 0xB138, 0xB3DE, 0xB139, 0xB3DF, 0xB13A, 0x86B4, 0xB13B, 0x86B5, + 0xB13C, 0x86B6, 0xB13D, 0x86B7, 0xB13E, 0x86B8, 0xB13F, 0x86B9, 0xB140, 0xB3E0, 0xB141, 0xB3E1, 0xB142, 0x86BA, 0xB143, 0x86BB, + 0xB144, 0xB3E2, 0xB145, 0x86BC, 0xB146, 0x86BD, 0xB147, 0x86BE, 0xB148, 0xB3E3, 0xB149, 0x86BF, 0xB14A, 0x86C0, 0xB14B, 0x86C1, + 0xB14C, 0x86C2, 0xB14D, 0x86C3, 0xB14E, 0x86C4, 0xB14F, 0x86C5, 0xB150, 0xB3E4, 0xB151, 0xB3E5, 0xB152, 0x86C6, 0xB153, 0x86C7, + 0xB154, 0xB3E6, 0xB155, 0xB3E7, 0xB156, 0x86C8, 0xB157, 0x86C9, 0xB158, 0xB3E8, 0xB159, 0x86CA, 0xB15A, 0x86CB, 0xB15B, 0x86CC, + 0xB15C, 0xB3E9, 0xB15D, 0x86CD, 0xB15E, 0x86CE, 0xB15F, 0x86CF, 0xB160, 0xB3EA, 0xB161, 0x86D0, 0xB162, 0x86D1, 0xB163, 0x86D2, + 0xB164, 0x86D3, 0xB165, 0x86D4, 0xB166, 0x86D5, 0xB167, 0x86D6, 0xB168, 0x86D7, 0xB169, 0x86D8, 0xB16A, 0x86D9, 0xB16B, 0x86DA, + 0xB16C, 0x86DB, 0xB16D, 0x86DC, 0xB16E, 0x86DD, 0xB16F, 0x86DE, 0xB170, 0x86DF, 0xB171, 0x86E0, 0xB172, 0x86E1, 0xB173, 0x86E2, + 0xB174, 0x86E3, 0xB175, 0x86E4, 0xB176, 0x86E5, 0xB177, 0x86E6, 0xB178, 0xB3EB, 0xB179, 0xB3EC, 0xB17A, 0x86E7, 0xB17B, 0x86E8, + 0xB17C, 0xB3ED, 0xB17D, 0x86E9, 0xB17E, 0x86EA, 0xB17F, 0x86EB, 0xB180, 0xB3EE, 0xB181, 0x86EC, 0xB182, 0xB3EF, 0xB183, 0x86ED, + 0xB184, 0x86EE, 0xB185, 0x86EF, 0xB186, 0x86F0, 0xB187, 0x86F1, 0xB188, 0xB3F0, 0xB189, 0xB3F1, 0xB18A, 0x86F2, 0xB18B, 0xB3F2, + 0xB18C, 0x86F3, 0xB18D, 0xB3F3, 0xB18E, 0x86F4, 0xB18F, 0x86F5, 0xB190, 0x86F6, 0xB191, 0x86F7, 0xB192, 0xB3F4, 0xB193, 0xB3F5, + 0xB194, 0xB3F6, 0xB195, 0x86F8, 0xB196, 0x86F9, 0xB197, 0x86FA, 0xB198, 0xB3F7, 0xB199, 0x86FB, 0xB19A, 0x86FC, 0xB19B, 0x86FD, + 0xB19C, 0xB3F8, 0xB19D, 0x86FE, 0xB19E, 0x8741, 0xB19F, 0x8742, 0xB1A0, 0x8743, 0xB1A1, 0x8744, 0xB1A2, 0x8745, 0xB1A3, 0x8746, + 0xB1A4, 0x8747, 0xB1A5, 0x8748, 0xB1A6, 0x8749, 0xB1A7, 0x874A, 0xB1A8, 0xB3F9, 0xB1A9, 0x874B, 0xB1AA, 0x874C, 0xB1AB, 0x874D, + 0xB1AC, 0x874E, 0xB1AD, 0x874F, 0xB1AE, 0x8750, 0xB1AF, 0x8751, 0xB1B0, 0x8752, 0xB1B1, 0x8753, 0xB1B2, 0x8754, 0xB1B3, 0x8755, + 0xB1B4, 0x8756, 0xB1B5, 0x8757, 0xB1B6, 0x8758, 0xB1B7, 0x8759, 0xB1B8, 0x875A, 0xB1B9, 0x8761, 0xB1BA, 0x8762, 0xB1BB, 0x8763, + 0xB1BC, 0x8764, 0xB1BD, 0x8765, 0xB1BE, 0x8766, 0xB1BF, 0x8767, 0xB1C0, 0x8768, 0xB1C1, 0x8769, 0xB1C2, 0x876A, 0xB1C3, 0x876B, + 0xB1C4, 0x876C, 0xB1C5, 0x876D, 0xB1C6, 0x876E, 0xB1C7, 0x876F, 0xB1C8, 0x8770, 0xB1C9, 0x8771, 0xB1CA, 0x8772, 0xB1CB, 0x8773, + 0xB1CC, 0xB3FA, 0xB1CD, 0x8774, 0xB1CE, 0x8775, 0xB1CF, 0x8776, 0xB1D0, 0xB3FB, 0xB1D1, 0x8777, 0xB1D2, 0x8778, 0xB1D3, 0x8779, + 0xB1D4, 0xB3FC, 0xB1D5, 0x877A, 0xB1D6, 0x8781, 0xB1D7, 0x8782, 0xB1D8, 0x8783, 0xB1D9, 0x8784, 0xB1DA, 0x8785, 0xB1DB, 0x8786, + 0xB1DC, 0xB3FD, 0xB1DD, 0xB3FE, 0xB1DE, 0x8787, 0xB1DF, 0xB4A1, 0xB1E0, 0x8788, 0xB1E1, 0x8789, 0xB1E2, 0x878A, 0xB1E3, 0x878B, + 0xB1E4, 0x878C, 0xB1E5, 0x878D, 0xB1E6, 0x878E, 0xB1E7, 0x878F, 0xB1E8, 0xB4A2, 0xB1E9, 0xB4A3, 0xB1EA, 0x8790, 0xB1EB, 0x8791, + 0xB1EC, 0xB4A4, 0xB1ED, 0x8792, 0xB1EE, 0x8793, 0xB1EF, 0x8794, 0xB1F0, 0xB4A5, 0xB1F1, 0x8795, 0xB1F2, 0x8796, 0xB1F3, 0x8797, + 0xB1F4, 0x8798, 0xB1F5, 0x8799, 0xB1F6, 0x879A, 0xB1F7, 0x879B, 0xB1F8, 0x879C, 0xB1F9, 0xB4A6, 0xB1FA, 0x879D, 0xB1FB, 0xB4A7, + 0xB1FC, 0x879E, 0xB1FD, 0xB4A8, 0xB1FE, 0x879F, 0xB1FF, 0x87A0, 0xB200, 0x87A1, 0xB201, 0x87A2, 0xB202, 0x87A3, 0xB203, 0x87A4, + 0xB204, 0xB4A9, 0xB205, 0xB4AA, 0xB206, 0x87A5, 0xB207, 0x87A6, 0xB208, 0xB4AB, 0xB209, 0x87A7, 0xB20A, 0x87A8, 0xB20B, 0xB4AC, + 0xB20C, 0xB4AD, 0xB20D, 0x87A9, 0xB20E, 0x87AA, 0xB20F, 0x87AB, 0xB210, 0x87AC, 0xB211, 0x87AD, 0xB212, 0x87AE, 0xB213, 0x87AF, + 0xB214, 0xB4AE, 0xB215, 0xB4AF, 0xB216, 0x87B0, 0xB217, 0xB4B0, 0xB218, 0x87B1, 0xB219, 0xB4B1, 0xB21A, 0x87B2, 0xB21B, 0x87B3, + 0xB21C, 0x87B4, 0xB21D, 0x87B5, 0xB21E, 0x87B6, 0xB21F, 0x87B7, 0xB220, 0xB4B2, 0xB221, 0x87B8, 0xB222, 0x87B9, 0xB223, 0x87BA, + 0xB224, 0x87BB, 0xB225, 0x87BC, 0xB226, 0x87BD, 0xB227, 0x87BE, 0xB228, 0x87BF, 0xB229, 0x87C0, 0xB22A, 0x87C1, 0xB22B, 0x87C2, + 0xB22C, 0x87C3, 0xB22D, 0x87C4, 0xB22E, 0x87C5, 0xB22F, 0x87C6, 0xB230, 0x87C7, 0xB231, 0x87C8, 0xB232, 0x87C9, 0xB233, 0x87CA, + 0xB234, 0xB4B3, 0xB235, 0x87CB, 0xB236, 0x87CC, 0xB237, 0x87CD, 0xB238, 0x87CE, 0xB239, 0x87CF, 0xB23A, 0x87D0, 0xB23B, 0x87D1, + 0xB23C, 0xB4B4, 0xB23D, 0x87D2, 0xB23E, 0x87D3, 0xB23F, 0x87D4, 0xB240, 0x87D5, 0xB241, 0x87D6, 0xB242, 0x87D7, 0xB243, 0x87D8, + 0xB244, 0x87D9, 0xB245, 0x87DA, 0xB246, 0x87DB, 0xB247, 0x87DC, 0xB248, 0x87DD, 0xB249, 0x87DE, 0xB24A, 0x87DF, 0xB24B, 0x87E0, + 0xB24C, 0x87E1, 0xB24D, 0x87E2, 0xB24E, 0x87E3, 0xB24F, 0x87E4, 0xB250, 0x87E5, 0xB251, 0x87E6, 0xB252, 0x87E7, 0xB253, 0x87E8, + 0xB254, 0x87E9, 0xB255, 0x87EA, 0xB256, 0x87EB, 0xB257, 0x87EC, 0xB258, 0xB4B5, 0xB259, 0x87ED, 0xB25A, 0x87EE, 0xB25B, 0x87EF, + 0xB25C, 0xB4B6, 0xB25D, 0x87F0, 0xB25E, 0x87F1, 0xB25F, 0x87F2, 0xB260, 0xB4B7, 0xB261, 0x87F3, 0xB262, 0x87F4, 0xB263, 0x87F5, + 0xB264, 0x87F6, 0xB265, 0x87F7, 0xB266, 0x87F8, 0xB267, 0x87F9, 0xB268, 0xB4B8, 0xB269, 0xB4B9, 0xB26A, 0x87FA, 0xB26B, 0x87FB, + 0xB26C, 0x87FC, 0xB26D, 0x87FD, 0xB26E, 0x87FE, 0xB26F, 0x8841, 0xB270, 0x8842, 0xB271, 0x8843, 0xB272, 0x8844, 0xB273, 0x8845, + 0xB274, 0xB4BA, 0xB275, 0xB4BB, 0xB276, 0x8846, 0xB277, 0x8847, 0xB278, 0x8848, 0xB279, 0x8849, 0xB27A, 0x884A, 0xB27B, 0x884B, + 0xB27C, 0xB4BC, 0xB27D, 0x884C, 0xB27E, 0x884D, 0xB27F, 0x884E, 0xB280, 0x884F, 0xB281, 0x8850, 0xB282, 0x8851, 0xB283, 0x8852, + 0xB284, 0xB4BD, 0xB285, 0xB4BE, 0xB286, 0x8853, 0xB287, 0x8854, 0xB288, 0x8855, 0xB289, 0xB4BF, 0xB28A, 0x8856, 0xB28B, 0x8857, + 0xB28C, 0x8858, 0xB28D, 0x8859, 0xB28E, 0x885A, 0xB28F, 0x8861, 0xB290, 0xB4C0, 0xB291, 0xB4C1, 0xB292, 0x8862, 0xB293, 0x8863, + 0xB294, 0xB4C2, 0xB295, 0x8864, 0xB296, 0x8865, 0xB297, 0x8866, 0xB298, 0xB4C3, 0xB299, 0xB4C4, 0xB29A, 0xB4C5, 0xB29B, 0x8867, + 0xB29C, 0x8868, 0xB29D, 0x8869, 0xB29E, 0x886A, 0xB29F, 0x886B, 0xB2A0, 0xB4C6, 0xB2A1, 0xB4C7, 0xB2A2, 0x886C, 0xB2A3, 0xB4C8, + 0xB2A4, 0x886D, 0xB2A5, 0xB4C9, 0xB2A6, 0xB4CA, 0xB2A7, 0x886E, 0xB2A8, 0x886F, 0xB2A9, 0x8870, 0xB2AA, 0xB4CB, 0xB2AB, 0x8871, + 0xB2AC, 0xB4CC, 0xB2AD, 0x8872, 0xB2AE, 0x8873, 0xB2AF, 0x8874, 0xB2B0, 0xB4CD, 0xB2B1, 0x8875, 0xB2B2, 0x8876, 0xB2B3, 0x8877, + 0xB2B4, 0xB4CE, 0xB2B5, 0x8878, 0xB2B6, 0x8879, 0xB2B7, 0x887A, 0xB2B8, 0x8881, 0xB2B9, 0x8882, 0xB2BA, 0x8883, 0xB2BB, 0x8884, + 0xB2BC, 0x8885, 0xB2BD, 0x8886, 0xB2BE, 0x8887, 0xB2BF, 0x8888, 0xB2C0, 0x8889, 0xB2C1, 0x888A, 0xB2C2, 0x888B, 0xB2C3, 0x888C, + 0xB2C4, 0x888D, 0xB2C5, 0x888E, 0xB2C6, 0x888F, 0xB2C7, 0x8890, 0xB2C8, 0xB4CF, 0xB2C9, 0xB4D0, 0xB2CA, 0x8891, 0xB2CB, 0x8892, + 0xB2CC, 0xB4D1, 0xB2CD, 0x8893, 0xB2CE, 0x8894, 0xB2CF, 0x8895, 0xB2D0, 0xB4D2, 0xB2D1, 0x8896, 0xB2D2, 0xB4D3, 0xB2D3, 0x8897, + 0xB2D4, 0x8898, 0xB2D5, 0x8899, 0xB2D6, 0x889A, 0xB2D7, 0x889B, 0xB2D8, 0xB4D4, 0xB2D9, 0xB4D5, 0xB2DA, 0x889C, 0xB2DB, 0xB4D6, + 0xB2DC, 0x889D, 0xB2DD, 0xB4D7, 0xB2DE, 0x889E, 0xB2DF, 0x889F, 0xB2E0, 0x88A0, 0xB2E1, 0x88A1, 0xB2E2, 0xB4D8, 0xB2E3, 0x88A2, + 0xB2E4, 0xB4D9, 0xB2E5, 0xB4DA, 0xB2E6, 0xB4DB, 0xB2E7, 0x88A3, 0xB2E8, 0xB4DC, 0xB2E9, 0x88A4, 0xB2EA, 0x88A5, 0xB2EB, 0xB4DD, + 0xB2EC, 0xB4DE, 0xB2ED, 0xB4DF, 0xB2EE, 0xB4E0, 0xB2EF, 0xB4E1, 0xB2F0, 0x88A6, 0xB2F1, 0x88A7, 0xB2F2, 0x88A8, 0xB2F3, 0xB4E2, + 0xB2F4, 0xB4E3, 0xB2F5, 0xB4E4, 0xB2F6, 0x88A9, 0xB2F7, 0xB4E5, 0xB2F8, 0xB4E6, 0xB2F9, 0xB4E7, 0xB2FA, 0xB4E8, 0xB2FB, 0xB4E9, + 0xB2FC, 0x88AA, 0xB2FD, 0x88AB, 0xB2FE, 0x88AC, 0xB2FF, 0xB4EA, 0xB300, 0xB4EB, 0xB301, 0xB4EC, 0xB302, 0x88AD, 0xB303, 0x88AE, + 0xB304, 0xB4ED, 0xB305, 0x88AF, 0xB306, 0x88B0, 0xB307, 0x88B1, 0xB308, 0xB4EE, 0xB309, 0x88B2, 0xB30A, 0x88B3, 0xB30B, 0x88B4, + 0xB30C, 0x88B5, 0xB30D, 0x88B6, 0xB30E, 0x88B7, 0xB30F, 0x88B8, 0xB310, 0xB4EF, 0xB311, 0xB4F0, 0xB312, 0x88B9, 0xB313, 0xB4F1, + 0xB314, 0xB4F2, 0xB315, 0xB4F3, 0xB316, 0x88BA, 0xB317, 0x88BB, 0xB318, 0x88BC, 0xB319, 0x88BD, 0xB31A, 0x88BE, 0xB31B, 0x88BF, + 0xB31C, 0xB4F4, 0xB31D, 0x88C0, 0xB31E, 0x88C1, 0xB31F, 0x88C2, 0xB320, 0x88C3, 0xB321, 0x88C4, 0xB322, 0x88C5, 0xB323, 0x88C6, + 0xB324, 0x88C7, 0xB325, 0x88C8, 0xB326, 0x88C9, 0xB327, 0x88CA, 0xB328, 0x88CB, 0xB329, 0x88CC, 0xB32A, 0x88CD, 0xB32B, 0x88CE, + 0xB32C, 0x88CF, 0xB32D, 0x88D0, 0xB32E, 0x88D1, 0xB32F, 0x88D2, 0xB330, 0x88D3, 0xB331, 0x88D4, 0xB332, 0x88D5, 0xB333, 0x88D6, + 0xB334, 0x88D7, 0xB335, 0x88D8, 0xB336, 0x88D9, 0xB337, 0x88DA, 0xB338, 0x88DB, 0xB339, 0x88DC, 0xB33A, 0x88DD, 0xB33B, 0x88DE, + 0xB33C, 0x88DF, 0xB33D, 0x88E0, 0xB33E, 0x88E1, 0xB33F, 0x88E2, 0xB340, 0x88E3, 0xB341, 0x88E4, 0xB342, 0x88E5, 0xB343, 0x88E6, + 0xB344, 0x88E7, 0xB345, 0x88E8, 0xB346, 0x88E9, 0xB347, 0x88EA, 0xB348, 0x88EB, 0xB349, 0x88EC, 0xB34A, 0x88ED, 0xB34B, 0x88EE, + 0xB34C, 0x88EF, 0xB34D, 0x88F0, 0xB34E, 0x88F1, 0xB34F, 0x88F2, 0xB350, 0x88F3, 0xB351, 0x88F4, 0xB352, 0x88F5, 0xB353, 0x88F6, + 0xB354, 0xB4F5, 0xB355, 0xB4F6, 0xB356, 0xB4F7, 0xB357, 0x88F7, 0xB358, 0xB4F8, 0xB359, 0x88F8, 0xB35A, 0x88F9, 0xB35B, 0xB4F9, + 0xB35C, 0xB4FA, 0xB35D, 0x88FA, 0xB35E, 0xB4FB, 0xB35F, 0xB4FC, 0xB360, 0x88FB, 0xB361, 0x88FC, 0xB362, 0x88FD, 0xB363, 0x88FE, + 0xB364, 0xB4FD, 0xB365, 0xB4FE, 0xB366, 0x8941, 0xB367, 0xB5A1, 0xB368, 0x8942, 0xB369, 0xB5A2, 0xB36A, 0x8943, 0xB36B, 0xB5A3, + 0xB36C, 0x8944, 0xB36D, 0x8945, 0xB36E, 0xB5A4, 0xB36F, 0x8946, 0xB370, 0xB5A5, 0xB371, 0xB5A6, 0xB372, 0x8947, 0xB373, 0x8948, + 0xB374, 0xB5A7, 0xB375, 0x8949, 0xB376, 0x894A, 0xB377, 0x894B, 0xB378, 0xB5A8, 0xB379, 0x894C, 0xB37A, 0x894D, 0xB37B, 0x894E, + 0xB37C, 0x894F, 0xB37D, 0x8950, 0xB37E, 0x8951, 0xB37F, 0x8952, 0xB380, 0xB5A9, 0xB381, 0xB5AA, 0xB382, 0x8953, 0xB383, 0xB5AB, + 0xB384, 0xB5AC, 0xB385, 0xB5AD, 0xB386, 0x8954, 0xB387, 0x8955, 0xB388, 0x8956, 0xB389, 0x8957, 0xB38A, 0x8958, 0xB38B, 0x8959, + 0xB38C, 0xB5AE, 0xB38D, 0x895A, 0xB38E, 0x8961, 0xB38F, 0x8962, 0xB390, 0xB5AF, 0xB391, 0x8963, 0xB392, 0x8964, 0xB393, 0x8965, + 0xB394, 0xB5B0, 0xB395, 0x8966, 0xB396, 0x8967, 0xB397, 0x8968, 0xB398, 0x8969, 0xB399, 0x896A, 0xB39A, 0x896B, 0xB39B, 0x896C, + 0xB39C, 0x896D, 0xB39D, 0x896E, 0xB39E, 0x896F, 0xB39F, 0x8970, 0xB3A0, 0xB5B1, 0xB3A1, 0xB5B2, 0xB3A2, 0x8971, 0xB3A3, 0x8972, + 0xB3A4, 0x8973, 0xB3A5, 0x8974, 0xB3A6, 0x8975, 0xB3A7, 0x8976, 0xB3A8, 0xB5B3, 0xB3A9, 0x8977, 0xB3AA, 0x8978, 0xB3AB, 0x8979, + 0xB3AC, 0xB5B4, 0xB3AD, 0x897A, 0xB3AE, 0x8981, 0xB3AF, 0x8982, 0xB3B0, 0x8983, 0xB3B1, 0x8984, 0xB3B2, 0x8985, 0xB3B3, 0x8986, + 0xB3B4, 0x8987, 0xB3B5, 0x8988, 0xB3B6, 0x8989, 0xB3B7, 0x898A, 0xB3B8, 0x898B, 0xB3B9, 0x898C, 0xB3BA, 0x898D, 0xB3BB, 0x898E, + 0xB3BC, 0x898F, 0xB3BD, 0x8990, 0xB3BE, 0x8991, 0xB3BF, 0x8992, 0xB3C0, 0x8993, 0xB3C1, 0x8994, 0xB3C2, 0x8995, 0xB3C3, 0x8996, + 0xB3C4, 0xB5B5, 0xB3C5, 0xB5B6, 0xB3C6, 0x8997, 0xB3C7, 0x8998, 0xB3C8, 0xB5B7, 0xB3C9, 0x8999, 0xB3CA, 0x899A, 0xB3CB, 0xB5B8, + 0xB3CC, 0xB5B9, 0xB3CD, 0x899B, 0xB3CE, 0xB5BA, 0xB3CF, 0x899C, 0xB3D0, 0xB5BB, 0xB3D1, 0x899D, 0xB3D2, 0x899E, 0xB3D3, 0x899F, + 0xB3D4, 0xB5BC, 0xB3D5, 0xB5BD, 0xB3D6, 0x89A0, 0xB3D7, 0xB5BE, 0xB3D8, 0x89A1, 0xB3D9, 0xB5BF, 0xB3DA, 0x89A2, 0xB3DB, 0xB5C0, + 0xB3DC, 0x89A3, 0xB3DD, 0xB5C1, 0xB3DE, 0x89A4, 0xB3DF, 0x89A5, 0xB3E0, 0xB5C2, 0xB3E1, 0x89A6, 0xB3E2, 0x89A7, 0xB3E3, 0x89A8, + 0xB3E4, 0xB5C3, 0xB3E5, 0x89A9, 0xB3E6, 0x89AA, 0xB3E7, 0x89AB, 0xB3E8, 0xB5C4, 0xB3E9, 0x89AC, 0xB3EA, 0x89AD, 0xB3EB, 0x89AE, + 0xB3EC, 0x89AF, 0xB3ED, 0x89B0, 0xB3EE, 0x89B1, 0xB3EF, 0x89B2, 0xB3F0, 0x89B3, 0xB3F1, 0x89B4, 0xB3F2, 0x89B5, 0xB3F3, 0x89B6, + 0xB3F4, 0x89B7, 0xB3F5, 0x89B8, 0xB3F6, 0x89B9, 0xB3F7, 0x89BA, 0xB3F8, 0x89BB, 0xB3F9, 0x89BC, 0xB3FA, 0x89BD, 0xB3FB, 0x89BE, + 0xB3FC, 0xB5C5, 0xB3FD, 0x89BF, 0xB3FE, 0x89C0, 0xB3FF, 0x89C1, 0xB400, 0x89C2, 0xB401, 0x89C3, 0xB402, 0x89C4, 0xB403, 0x89C5, + 0xB404, 0x89C6, 0xB405, 0x89C7, 0xB406, 0x89C8, 0xB407, 0x89C9, 0xB408, 0x89CA, 0xB409, 0x89CB, 0xB40A, 0x89CC, 0xB40B, 0x89CD, + 0xB40C, 0x89CE, 0xB40D, 0x89CF, 0xB40E, 0x89D0, 0xB40F, 0x89D1, 0xB410, 0xB5C6, 0xB411, 0x89D2, 0xB412, 0x89D3, 0xB413, 0x89D4, + 0xB414, 0x89D5, 0xB415, 0x89D6, 0xB416, 0x89D7, 0xB417, 0x89D8, 0xB418, 0xB5C7, 0xB419, 0x89D9, 0xB41A, 0x89DA, 0xB41B, 0x89DB, + 0xB41C, 0xB5C8, 0xB41D, 0x89DC, 0xB41E, 0x89DD, 0xB41F, 0x89DE, 0xB420, 0xB5C9, 0xB421, 0x89DF, 0xB422, 0x89E0, 0xB423, 0x89E1, + 0xB424, 0x89E2, 0xB425, 0x89E3, 0xB426, 0x89E4, 0xB427, 0x89E5, 0xB428, 0xB5CA, 0xB429, 0xB5CB, 0xB42A, 0x89E6, 0xB42B, 0xB5CC, + 0xB42C, 0x89E7, 0xB42D, 0x89E8, 0xB42E, 0x89E9, 0xB42F, 0x89EA, 0xB430, 0x89EB, 0xB431, 0x89EC, 0xB432, 0x89ED, 0xB433, 0x89EE, + 0xB434, 0xB5CD, 0xB435, 0x89EF, 0xB436, 0x89F0, 0xB437, 0x89F1, 0xB438, 0x89F2, 0xB439, 0x89F3, 0xB43A, 0x89F4, 0xB43B, 0x89F5, + 0xB43C, 0x89F6, 0xB43D, 0x89F7, 0xB43E, 0x89F8, 0xB43F, 0x89F9, 0xB440, 0x89FA, 0xB441, 0x89FB, 0xB442, 0x89FC, 0xB443, 0x89FD, + 0xB444, 0x89FE, 0xB445, 0x8A41, 0xB446, 0x8A42, 0xB447, 0x8A43, 0xB448, 0x8A44, 0xB449, 0x8A45, 0xB44A, 0x8A46, 0xB44B, 0x8A47, + 0xB44C, 0x8A48, 0xB44D, 0x8A49, 0xB44E, 0x8A4A, 0xB44F, 0x8A4B, 0xB450, 0xB5CE, 0xB451, 0xB5CF, 0xB452, 0x8A4C, 0xB453, 0x8A4D, + 0xB454, 0xB5D0, 0xB455, 0x8A4E, 0xB456, 0x8A4F, 0xB457, 0x8A50, 0xB458, 0xB5D1, 0xB459, 0x8A51, 0xB45A, 0x8A52, 0xB45B, 0x8A53, + 0xB45C, 0x8A54, 0xB45D, 0x8A55, 0xB45E, 0x8A56, 0xB45F, 0x8A57, 0xB460, 0xB5D2, 0xB461, 0xB5D3, 0xB462, 0x8A58, 0xB463, 0xB5D4, + 0xB464, 0x8A59, 0xB465, 0xB5D5, 0xB466, 0x8A5A, 0xB467, 0x8A61, 0xB468, 0x8A62, 0xB469, 0x8A63, 0xB46A, 0x8A64, 0xB46B, 0x8A65, + 0xB46C, 0xB5D6, 0xB46D, 0x8A66, 0xB46E, 0x8A67, 0xB46F, 0x8A68, 0xB470, 0x8A69, 0xB471, 0x8A6A, 0xB472, 0x8A6B, 0xB473, 0x8A6C, + 0xB474, 0x8A6D, 0xB475, 0x8A6E, 0xB476, 0x8A6F, 0xB477, 0x8A70, 0xB478, 0x8A71, 0xB479, 0x8A72, 0xB47A, 0x8A73, 0xB47B, 0x8A74, + 0xB47C, 0x8A75, 0xB47D, 0x8A76, 0xB47E, 0x8A77, 0xB47F, 0x8A78, 0xB480, 0xB5D7, 0xB481, 0x8A79, 0xB482, 0x8A7A, 0xB483, 0x8A81, + 0xB484, 0x8A82, 0xB485, 0x8A83, 0xB486, 0x8A84, 0xB487, 0x8A85, 0xB488, 0xB5D8, 0xB489, 0x8A86, 0xB48A, 0x8A87, 0xB48B, 0x8A88, + 0xB48C, 0x8A89, 0xB48D, 0x8A8A, 0xB48E, 0x8A8B, 0xB48F, 0x8A8C, 0xB490, 0x8A8D, 0xB491, 0x8A8E, 0xB492, 0x8A8F, 0xB493, 0x8A90, + 0xB494, 0x8A91, 0xB495, 0x8A92, 0xB496, 0x8A93, 0xB497, 0x8A94, 0xB498, 0x8A95, 0xB499, 0x8A96, 0xB49A, 0x8A97, 0xB49B, 0x8A98, + 0xB49C, 0x8A99, 0xB49D, 0xB5D9, 0xB49E, 0x8A9A, 0xB49F, 0x8A9B, 0xB4A0, 0x8A9C, 0xB4A1, 0x8A9D, 0xB4A2, 0x8A9E, 0xB4A3, 0x8A9F, + 0xB4A4, 0xB5DA, 0xB4A5, 0x8AA0, 0xB4A6, 0x8AA1, 0xB4A7, 0x8AA2, 0xB4A8, 0xB5DB, 0xB4A9, 0x8AA3, 0xB4AA, 0x8AA4, 0xB4AB, 0x8AA5, + 0xB4AC, 0xB5DC, 0xB4AD, 0x8AA6, 0xB4AE, 0x8AA7, 0xB4AF, 0x8AA8, 0xB4B0, 0x8AA9, 0xB4B1, 0x8AAA, 0xB4B2, 0x8AAB, 0xB4B3, 0x8AAC, + 0xB4B4, 0x8AAD, 0xB4B5, 0xB5DD, 0xB4B6, 0x8AAE, 0xB4B7, 0xB5DE, 0xB4B8, 0x8AAF, 0xB4B9, 0xB5DF, 0xB4BA, 0x8AB0, 0xB4BB, 0x8AB1, + 0xB4BC, 0x8AB2, 0xB4BD, 0x8AB3, 0xB4BE, 0x8AB4, 0xB4BF, 0x8AB5, 0xB4C0, 0xB5E0, 0xB4C1, 0x8AB6, 0xB4C2, 0x8AB7, 0xB4C3, 0x8AB8, + 0xB4C4, 0xB5E1, 0xB4C5, 0x8AB9, 0xB4C6, 0x8ABA, 0xB4C7, 0x8ABB, 0xB4C8, 0xB5E2, 0xB4C9, 0x8ABC, 0xB4CA, 0x8ABD, 0xB4CB, 0x8ABE, + 0xB4CC, 0x8ABF, 0xB4CD, 0x8AC0, 0xB4CE, 0x8AC1, 0xB4CF, 0x8AC2, 0xB4D0, 0xB5E3, 0xB4D1, 0x8AC3, 0xB4D2, 0x8AC4, 0xB4D3, 0x8AC5, + 0xB4D4, 0x8AC6, 0xB4D5, 0xB5E4, 0xB4D6, 0x8AC7, 0xB4D7, 0x8AC8, 0xB4D8, 0x8AC9, 0xB4D9, 0x8ACA, 0xB4DA, 0x8ACB, 0xB4DB, 0x8ACC, + 0xB4DC, 0xB5E5, 0xB4DD, 0xB5E6, 0xB4DE, 0x8ACD, 0xB4DF, 0x8ACE, 0xB4E0, 0xB5E7, 0xB4E1, 0x8ACF, 0xB4E2, 0x8AD0, 0xB4E3, 0xB5E8, + 0xB4E4, 0xB5E9, 0xB4E5, 0x8AD1, 0xB4E6, 0xB5EA, 0xB4E7, 0x8AD2, 0xB4E8, 0x8AD3, 0xB4E9, 0x8AD4, 0xB4EA, 0x8AD5, 0xB4EB, 0x8AD6, + 0xB4EC, 0xB5EB, 0xB4ED, 0xB5EC, 0xB4EE, 0x8AD7, 0xB4EF, 0xB5ED, 0xB4F0, 0x8AD8, 0xB4F1, 0xB5EE, 0xB4F2, 0x8AD9, 0xB4F3, 0x8ADA, + 0xB4F4, 0x8ADB, 0xB4F5, 0x8ADC, 0xB4F6, 0x8ADD, 0xB4F7, 0x8ADE, 0xB4F8, 0xB5EF, 0xB4F9, 0x8ADF, 0xB4FA, 0x8AE0, 0xB4FB, 0x8AE1, + 0xB4FC, 0x8AE2, 0xB4FD, 0x8AE3, 0xB4FE, 0x8AE4, 0xB4FF, 0x8AE5, 0xB500, 0x8AE6, 0xB501, 0x8AE7, 0xB502, 0x8AE8, 0xB503, 0x8AE9, + 0xB504, 0x8AEA, 0xB505, 0x8AEB, 0xB506, 0x8AEC, 0xB507, 0x8AED, 0xB508, 0x8AEE, 0xB509, 0x8AEF, 0xB50A, 0x8AF0, 0xB50B, 0x8AF1, + 0xB50C, 0x8AF2, 0xB50D, 0x8AF3, 0xB50E, 0x8AF4, 0xB50F, 0x8AF5, 0xB510, 0x8AF6, 0xB511, 0x8AF7, 0xB512, 0x8AF8, 0xB513, 0x8AF9, + 0xB514, 0xB5F0, 0xB515, 0xB5F1, 0xB516, 0x8AFA, 0xB517, 0x8AFB, 0xB518, 0xB5F2, 0xB519, 0x8AFC, 0xB51A, 0x8AFD, 0xB51B, 0xB5F3, + 0xB51C, 0xB5F4, 0xB51D, 0x8AFE, 0xB51E, 0x8B41, 0xB51F, 0x8B42, 0xB520, 0x8B43, 0xB521, 0x8B44, 0xB522, 0x8B45, 0xB523, 0x8B46, + 0xB524, 0xB5F5, 0xB525, 0xB5F6, 0xB526, 0x8B47, 0xB527, 0xB5F7, 0xB528, 0xB5F8, 0xB529, 0xB5F9, 0xB52A, 0xB5FA, 0xB52B, 0x8B48, + 0xB52C, 0x8B49, 0xB52D, 0x8B4A, 0xB52E, 0x8B4B, 0xB52F, 0x8B4C, 0xB530, 0xB5FB, 0xB531, 0xB5FC, 0xB532, 0x8B4D, 0xB533, 0x8B4E, + 0xB534, 0xB5FD, 0xB535, 0x8B4F, 0xB536, 0x8B50, 0xB537, 0x8B51, 0xB538, 0xB5FE, 0xB539, 0x8B52, 0xB53A, 0x8B53, 0xB53B, 0x8B54, + 0xB53C, 0x8B55, 0xB53D, 0x8B56, 0xB53E, 0x8B57, 0xB53F, 0x8B58, 0xB540, 0xB6A1, 0xB541, 0xB6A2, 0xB542, 0x8B59, 0xB543, 0xB6A3, + 0xB544, 0xB6A4, 0xB545, 0xB6A5, 0xB546, 0x8B5A, 0xB547, 0x8B61, 0xB548, 0x8B62, 0xB549, 0x8B63, 0xB54A, 0x8B64, 0xB54B, 0xB6A6, + 0xB54C, 0xB6A7, 0xB54D, 0xB6A8, 0xB54E, 0x8B65, 0xB54F, 0x8B66, 0xB550, 0xB6A9, 0xB551, 0x8B67, 0xB552, 0x8B68, 0xB553, 0x8B69, + 0xB554, 0xB6AA, 0xB555, 0x8B6A, 0xB556, 0x8B6B, 0xB557, 0x8B6C, 0xB558, 0x8B6D, 0xB559, 0x8B6E, 0xB55A, 0x8B6F, 0xB55B, 0x8B70, + 0xB55C, 0xB6AB, 0xB55D, 0xB6AC, 0xB55E, 0x8B71, 0xB55F, 0xB6AD, 0xB560, 0xB6AE, 0xB561, 0xB6AF, 0xB562, 0x8B72, 0xB563, 0x8B73, + 0xB564, 0x8B74, 0xB565, 0x8B75, 0xB566, 0x8B76, 0xB567, 0x8B77, 0xB568, 0x8B78, 0xB569, 0x8B79, 0xB56A, 0x8B7A, 0xB56B, 0x8B81, + 0xB56C, 0x8B82, 0xB56D, 0x8B83, 0xB56E, 0x8B84, 0xB56F, 0x8B85, 0xB570, 0x8B86, 0xB571, 0x8B87, 0xB572, 0x8B88, 0xB573, 0x8B89, + 0xB574, 0x8B8A, 0xB575, 0x8B8B, 0xB576, 0x8B8C, 0xB577, 0x8B8D, 0xB578, 0x8B8E, 0xB579, 0x8B8F, 0xB57A, 0x8B90, 0xB57B, 0x8B91, + 0xB57C, 0x8B92, 0xB57D, 0x8B93, 0xB57E, 0x8B94, 0xB57F, 0x8B95, 0xB580, 0x8B96, 0xB581, 0x8B97, 0xB582, 0x8B98, 0xB583, 0x8B99, + 0xB584, 0x8B9A, 0xB585, 0x8B9B, 0xB586, 0x8B9C, 0xB587, 0x8B9D, 0xB588, 0x8B9E, 0xB589, 0x8B9F, 0xB58A, 0x8BA0, 0xB58B, 0x8BA1, + 0xB58C, 0x8BA2, 0xB58D, 0x8BA3, 0xB58E, 0x8BA4, 0xB58F, 0x8BA5, 0xB590, 0x8BA6, 0xB591, 0x8BA7, 0xB592, 0x8BA8, 0xB593, 0x8BA9, + 0xB594, 0x8BAA, 0xB595, 0x8BAB, 0xB596, 0x8BAC, 0xB597, 0x8BAD, 0xB598, 0x8BAE, 0xB599, 0x8BAF, 0xB59A, 0x8BB0, 0xB59B, 0x8BB1, + 0xB59C, 0x8BB2, 0xB59D, 0x8BB3, 0xB59E, 0x8BB4, 0xB59F, 0x8BB5, 0xB5A0, 0xB6B0, 0xB5A1, 0xB6B1, 0xB5A2, 0x8BB6, 0xB5A3, 0x8BB7, + 0xB5A4, 0xB6B2, 0xB5A5, 0x8BB8, 0xB5A6, 0x8BB9, 0xB5A7, 0x8BBA, 0xB5A8, 0xB6B3, 0xB5A9, 0x8BBB, 0xB5AA, 0xB6B4, 0xB5AB, 0xB6B5, + 0xB5AC, 0x8BBC, 0xB5AD, 0x8BBD, 0xB5AE, 0x8BBE, 0xB5AF, 0x8BBF, 0xB5B0, 0xB6B6, 0xB5B1, 0xB6B7, 0xB5B2, 0x8BC0, 0xB5B3, 0xB6B8, + 0xB5B4, 0xB6B9, 0xB5B5, 0xB6BA, 0xB5B6, 0x8BC1, 0xB5B7, 0x8BC2, 0xB5B8, 0x8BC3, 0xB5B9, 0x8BC4, 0xB5BA, 0x8BC5, 0xB5BB, 0xB6BB, + 0xB5BC, 0xB6BC, 0xB5BD, 0xB6BD, 0xB5BE, 0x8BC6, 0xB5BF, 0x8BC7, 0xB5C0, 0xB6BE, 0xB5C1, 0x8BC8, 0xB5C2, 0x8BC9, 0xB5C3, 0x8BCA, + 0xB5C4, 0xB6BF, 0xB5C5, 0x8BCB, 0xB5C6, 0x8BCC, 0xB5C7, 0x8BCD, 0xB5C8, 0x8BCE, 0xB5C9, 0x8BCF, 0xB5CA, 0x8BD0, 0xB5CB, 0x8BD1, + 0xB5CC, 0xB6C0, 0xB5CD, 0xB6C1, 0xB5CE, 0x8BD2, 0xB5CF, 0xB6C2, 0xB5D0, 0xB6C3, 0xB5D1, 0xB6C4, 0xB5D2, 0x8BD3, 0xB5D3, 0x8BD4, + 0xB5D4, 0x8BD5, 0xB5D5, 0x8BD6, 0xB5D6, 0x8BD7, 0xB5D7, 0x8BD8, 0xB5D8, 0xB6C5, 0xB5D9, 0x8BD9, 0xB5DA, 0x8BDA, 0xB5DB, 0x8BDB, + 0xB5DC, 0x8BDC, 0xB5DD, 0x8BDD, 0xB5DE, 0x8BDE, 0xB5DF, 0x8BDF, 0xB5E0, 0x8BE0, 0xB5E1, 0x8BE1, 0xB5E2, 0x8BE2, 0xB5E3, 0x8BE3, + 0xB5E4, 0x8BE4, 0xB5E5, 0x8BE5, 0xB5E6, 0x8BE6, 0xB5E7, 0x8BE7, 0xB5E8, 0x8BE8, 0xB5E9, 0x8BE9, 0xB5EA, 0x8BEA, 0xB5EB, 0x8BEB, + 0xB5EC, 0xB6C6, 0xB5ED, 0x8BEC, 0xB5EE, 0x8BED, 0xB5EF, 0x8BEE, 0xB5F0, 0x8BEF, 0xB5F1, 0x8BF0, 0xB5F2, 0x8BF1, 0xB5F3, 0x8BF2, + 0xB5F4, 0x8BF3, 0xB5F5, 0x8BF4, 0xB5F6, 0x8BF5, 0xB5F7, 0x8BF6, 0xB5F8, 0x8BF7, 0xB5F9, 0x8BF8, 0xB5FA, 0x8BF9, 0xB5FB, 0x8BFA, + 0xB5FC, 0x8BFB, 0xB5FD, 0x8BFC, 0xB5FE, 0x8BFD, 0xB5FF, 0x8BFE, 0xB600, 0x8C41, 0xB601, 0x8C42, 0xB602, 0x8C43, 0xB603, 0x8C44, + 0xB604, 0x8C45, 0xB605, 0x8C46, 0xB606, 0x8C47, 0xB607, 0x8C48, 0xB608, 0x8C49, 0xB609, 0x8C4A, 0xB60A, 0x8C4B, 0xB60B, 0x8C4C, + 0xB60C, 0x8C4D, 0xB60D, 0x8C4E, 0xB60E, 0x8C4F, 0xB60F, 0x8C50, 0xB610, 0xB6C7, 0xB611, 0xB6C8, 0xB612, 0x8C51, 0xB613, 0x8C52, + 0xB614, 0xB6C9, 0xB615, 0x8C53, 0xB616, 0x8C54, 0xB617, 0x8C55, 0xB618, 0xB6CA, 0xB619, 0x8C56, 0xB61A, 0x8C57, 0xB61B, 0x8C58, + 0xB61C, 0x8C59, 0xB61D, 0x8C5A, 0xB61E, 0x8C61, 0xB61F, 0x8C62, 0xB620, 0x8C63, 0xB621, 0x8C64, 0xB622, 0x8C65, 0xB623, 0x8C66, + 0xB624, 0x8C67, 0xB625, 0xB6CB, 0xB626, 0x8C68, 0xB627, 0x8C69, 0xB628, 0x8C6A, 0xB629, 0x8C6B, 0xB62A, 0x8C6C, 0xB62B, 0x8C6D, + 0xB62C, 0xB6CC, 0xB62D, 0x8C6E, 0xB62E, 0x8C6F, 0xB62F, 0x8C70, 0xB630, 0x8C71, 0xB631, 0x8C72, 0xB632, 0x8C73, 0xB633, 0x8C74, + 0xB634, 0xB6CD, 0xB635, 0x8C75, 0xB636, 0x8C76, 0xB637, 0x8C77, 0xB638, 0x8C78, 0xB639, 0x8C79, 0xB63A, 0x8C7A, 0xB63B, 0x8C81, + 0xB63C, 0x8C82, 0xB63D, 0x8C83, 0xB63E, 0x8C84, 0xB63F, 0x8C85, 0xB640, 0x8C86, 0xB641, 0x8C87, 0xB642, 0x8C88, 0xB643, 0x8C89, + 0xB644, 0x8C8A, 0xB645, 0x8C8B, 0xB646, 0x8C8C, 0xB647, 0x8C8D, 0xB648, 0xB6CE, 0xB649, 0x8C8E, 0xB64A, 0x8C8F, 0xB64B, 0x8C90, + 0xB64C, 0x8C91, 0xB64D, 0x8C92, 0xB64E, 0x8C93, 0xB64F, 0x8C94, 0xB650, 0x8C95, 0xB651, 0x8C96, 0xB652, 0x8C97, 0xB653, 0x8C98, + 0xB654, 0x8C99, 0xB655, 0x8C9A, 0xB656, 0x8C9B, 0xB657, 0x8C9C, 0xB658, 0x8C9D, 0xB659, 0x8C9E, 0xB65A, 0x8C9F, 0xB65B, 0x8CA0, + 0xB65C, 0x8CA1, 0xB65D, 0x8CA2, 0xB65E, 0x8CA3, 0xB65F, 0x8CA4, 0xB660, 0x8CA5, 0xB661, 0x8CA6, 0xB662, 0x8CA7, 0xB663, 0x8CA8, + 0xB664, 0xB6CF, 0xB665, 0x8CA9, 0xB666, 0x8CAA, 0xB667, 0x8CAB, 0xB668, 0xB6D0, 0xB669, 0x8CAC, 0xB66A, 0x8CAD, 0xB66B, 0x8CAE, + 0xB66C, 0x8CAF, 0xB66D, 0x8CB0, 0xB66E, 0x8CB1, 0xB66F, 0x8CB2, 0xB670, 0x8CB3, 0xB671, 0x8CB4, 0xB672, 0x8CB5, 0xB673, 0x8CB6, + 0xB674, 0x8CB7, 0xB675, 0x8CB8, 0xB676, 0x8CB9, 0xB677, 0x8CBA, 0xB678, 0x8CBB, 0xB679, 0x8CBC, 0xB67A, 0x8CBD, 0xB67B, 0x8CBE, + 0xB67C, 0x8CBF, 0xB67D, 0x8CC0, 0xB67E, 0x8CC1, 0xB67F, 0x8CC2, 0xB680, 0x8CC3, 0xB681, 0x8CC4, 0xB682, 0x8CC5, 0xB683, 0x8CC6, + 0xB684, 0x8CC7, 0xB685, 0x8CC8, 0xB686, 0x8CC9, 0xB687, 0x8CCA, 0xB688, 0x8CCB, 0xB689, 0x8CCC, 0xB68A, 0x8CCD, 0xB68B, 0x8CCE, + 0xB68C, 0x8CCF, 0xB68D, 0x8CD0, 0xB68E, 0x8CD1, 0xB68F, 0x8CD2, 0xB690, 0x8CD3, 0xB691, 0x8CD4, 0xB692, 0x8CD5, 0xB693, 0x8CD6, + 0xB694, 0x8CD7, 0xB695, 0x8CD8, 0xB696, 0x8CD9, 0xB697, 0x8CDA, 0xB698, 0x8CDB, 0xB699, 0x8CDC, 0xB69A, 0x8CDD, 0xB69B, 0x8CDE, + 0xB69C, 0xB6D1, 0xB69D, 0xB6D2, 0xB69E, 0x8CDF, 0xB69F, 0x8CE0, 0xB6A0, 0xB6D3, 0xB6A1, 0x8CE1, 0xB6A2, 0x8CE2, 0xB6A3, 0x8CE3, + 0xB6A4, 0xB6D4, 0xB6A5, 0x8CE4, 0xB6A6, 0x8CE5, 0xB6A7, 0x8CE6, 0xB6A8, 0x8CE7, 0xB6A9, 0x8CE8, 0xB6AA, 0x8CE9, 0xB6AB, 0xB6D5, + 0xB6AC, 0xB6D6, 0xB6AD, 0x8CEA, 0xB6AE, 0x8CEB, 0xB6AF, 0x8CEC, 0xB6B0, 0x8CED, 0xB6B1, 0xB6D7, 0xB6B2, 0x8CEE, 0xB6B3, 0x8CEF, + 0xB6B4, 0x8CF0, 0xB6B5, 0x8CF1, 0xB6B6, 0x8CF2, 0xB6B7, 0x8CF3, 0xB6B8, 0x8CF4, 0xB6B9, 0x8CF5, 0xB6BA, 0x8CF6, 0xB6BB, 0x8CF7, + 0xB6BC, 0x8CF8, 0xB6BD, 0x8CF9, 0xB6BE, 0x8CFA, 0xB6BF, 0x8CFB, 0xB6C0, 0x8CFC, 0xB6C1, 0x8CFD, 0xB6C2, 0x8CFE, 0xB6C3, 0x8D41, + 0xB6C4, 0x8D42, 0xB6C5, 0x8D43, 0xB6C6, 0x8D44, 0xB6C7, 0x8D45, 0xB6C8, 0x8D46, 0xB6C9, 0x8D47, 0xB6CA, 0x8D48, 0xB6CB, 0x8D49, + 0xB6CC, 0x8D4A, 0xB6CD, 0x8D4B, 0xB6CE, 0x8D4C, 0xB6CF, 0x8D4D, 0xB6D0, 0x8D4E, 0xB6D1, 0x8D4F, 0xB6D2, 0x8D50, 0xB6D3, 0x8D51, + 0xB6D4, 0xB6D8, 0xB6D5, 0x8D52, 0xB6D6, 0x8D53, 0xB6D7, 0x8D54, 0xB6D8, 0x8D55, 0xB6D9, 0x8D56, 0xB6DA, 0x8D57, 0xB6DB, 0x8D58, + 0xB6DC, 0x8D59, 0xB6DD, 0x8D5A, 0xB6DE, 0x8D61, 0xB6DF, 0x8D62, 0xB6E0, 0x8D63, 0xB6E1, 0x8D64, 0xB6E2, 0x8D65, 0xB6E3, 0x8D66, + 0xB6E4, 0x8D67, 0xB6E5, 0x8D68, 0xB6E6, 0x8D69, 0xB6E7, 0x8D6A, 0xB6E8, 0x8D6B, 0xB6E9, 0x8D6C, 0xB6EA, 0x8D6D, 0xB6EB, 0x8D6E, + 0xB6EC, 0x8D6F, 0xB6ED, 0x8D70, 0xB6EE, 0x8D71, 0xB6EF, 0x8D72, 0xB6F0, 0xB6D9, 0xB6F1, 0x8D73, 0xB6F2, 0x8D74, 0xB6F3, 0x8D75, + 0xB6F4, 0xB6DA, 0xB6F5, 0x8D76, 0xB6F6, 0x8D77, 0xB6F7, 0x8D78, 0xB6F8, 0xB6DB, 0xB6F9, 0x8D79, 0xB6FA, 0x8D7A, 0xB6FB, 0x8D81, + 0xB6FC, 0x8D82, 0xB6FD, 0x8D83, 0xB6FE, 0x8D84, 0xB6FF, 0x8D85, 0xB700, 0xB6DC, 0xB701, 0xB6DD, 0xB702, 0x8D86, 0xB703, 0x8D87, + 0xB704, 0x8D88, 0xB705, 0xB6DE, 0xB706, 0x8D89, 0xB707, 0x8D8A, 0xB708, 0x8D8B, 0xB709, 0x8D8C, 0xB70A, 0x8D8D, 0xB70B, 0x8D8E, + 0xB70C, 0x8D8F, 0xB70D, 0x8D90, 0xB70E, 0x8D91, 0xB70F, 0x8D92, 0xB710, 0x8D93, 0xB711, 0x8D94, 0xB712, 0x8D95, 0xB713, 0x8D96, + 0xB714, 0x8D97, 0xB715, 0x8D98, 0xB716, 0x8D99, 0xB717, 0x8D9A, 0xB718, 0x8D9B, 0xB719, 0x8D9C, 0xB71A, 0x8D9D, 0xB71B, 0x8D9E, + 0xB71C, 0x8D9F, 0xB71D, 0x8DA0, 0xB71E, 0x8DA1, 0xB71F, 0x8DA2, 0xB720, 0x8DA3, 0xB721, 0x8DA4, 0xB722, 0x8DA5, 0xB723, 0x8DA6, + 0xB724, 0x8DA7, 0xB725, 0x8DA8, 0xB726, 0x8DA9, 0xB727, 0x8DAA, 0xB728, 0xB6DF, 0xB729, 0xB6E0, 0xB72A, 0x8DAB, 0xB72B, 0x8DAC, + 0xB72C, 0xB6E1, 0xB72D, 0x8DAD, 0xB72E, 0x8DAE, 0xB72F, 0xB6E2, 0xB730, 0xB6E3, 0xB731, 0x8DAF, 0xB732, 0x8DB0, 0xB733, 0x8DB1, + 0xB734, 0x8DB2, 0xB735, 0x8DB3, 0xB736, 0x8DB4, 0xB737, 0x8DB5, 0xB738, 0xB6E4, 0xB739, 0xB6E5, 0xB73A, 0x8DB6, 0xB73B, 0xB6E6, + 0xB73C, 0x8DB7, 0xB73D, 0x8DB8, 0xB73E, 0x8DB9, 0xB73F, 0x8DBA, 0xB740, 0x8DBB, 0xB741, 0x8DBC, 0xB742, 0x8DBD, 0xB743, 0x8DBE, + 0xB744, 0xB6E7, 0xB745, 0x8DBF, 0xB746, 0x8DC0, 0xB747, 0x8DC1, 0xB748, 0xB6E8, 0xB749, 0x8DC2, 0xB74A, 0x8DC3, 0xB74B, 0x8DC4, + 0xB74C, 0xB6E9, 0xB74D, 0x8DC5, 0xB74E, 0x8DC6, 0xB74F, 0x8DC7, 0xB750, 0x8DC8, 0xB751, 0x8DC9, 0xB752, 0x8DCA, 0xB753, 0x8DCB, + 0xB754, 0xB6EA, 0xB755, 0xB6EB, 0xB756, 0x8DCC, 0xB757, 0x8DCD, 0xB758, 0x8DCE, 0xB759, 0x8DCF, 0xB75A, 0x8DD0, 0xB75B, 0x8DD1, + 0xB75C, 0x8DD2, 0xB75D, 0x8DD3, 0xB75E, 0x8DD4, 0xB75F, 0x8DD5, 0xB760, 0xB6EC, 0xB761, 0x8DD6, 0xB762, 0x8DD7, 0xB763, 0x8DD8, + 0xB764, 0xB6ED, 0xB765, 0x8DD9, 0xB766, 0x8DDA, 0xB767, 0x8DDB, 0xB768, 0xB6EE, 0xB769, 0x8DDC, 0xB76A, 0x8DDD, 0xB76B, 0x8DDE, + 0xB76C, 0x8DDF, 0xB76D, 0x8DE0, 0xB76E, 0x8DE1, 0xB76F, 0x8DE2, 0xB770, 0xB6EF, 0xB771, 0xB6F0, 0xB772, 0x8DE3, 0xB773, 0xB6F1, + 0xB774, 0x8DE4, 0xB775, 0xB6F2, 0xB776, 0x8DE5, 0xB777, 0x8DE6, 0xB778, 0x8DE7, 0xB779, 0x8DE8, 0xB77A, 0x8DE9, 0xB77B, 0x8DEA, + 0xB77C, 0xB6F3, 0xB77D, 0xB6F4, 0xB77E, 0x8DEB, 0xB77F, 0x8DEC, 0xB780, 0xB6F5, 0xB781, 0x8DED, 0xB782, 0x8DEE, 0xB783, 0x8DEF, + 0xB784, 0xB6F6, 0xB785, 0x8DF0, 0xB786, 0x8DF1, 0xB787, 0x8DF2, 0xB788, 0x8DF3, 0xB789, 0x8DF4, 0xB78A, 0x8DF5, 0xB78B, 0x8DF6, + 0xB78C, 0xB6F7, 0xB78D, 0xB6F8, 0xB78E, 0x8DF7, 0xB78F, 0xB6F9, 0xB790, 0xB6FA, 0xB791, 0xB6FB, 0xB792, 0xB6FC, 0xB793, 0x8DF8, + 0xB794, 0x8DF9, 0xB795, 0x8DFA, 0xB796, 0xB6FD, 0xB797, 0xB6FE, 0xB798, 0xB7A1, 0xB799, 0xB7A2, 0xB79A, 0x8DFB, 0xB79B, 0x8DFC, + 0xB79C, 0xB7A3, 0xB79D, 0x8DFD, 0xB79E, 0x8DFE, 0xB79F, 0x8E41, 0xB7A0, 0xB7A4, 0xB7A1, 0x8E42, 0xB7A2, 0x8E43, 0xB7A3, 0x8E44, + 0xB7A4, 0x8E45, 0xB7A5, 0x8E46, 0xB7A6, 0x8E47, 0xB7A7, 0x8E48, 0xB7A8, 0xB7A5, 0xB7A9, 0xB7A6, 0xB7AA, 0x8E49, 0xB7AB, 0xB7A7, + 0xB7AC, 0xB7A8, 0xB7AD, 0xB7A9, 0xB7AE, 0x8E4A, 0xB7AF, 0x8E4B, 0xB7B0, 0x8E4C, 0xB7B1, 0x8E4D, 0xB7B2, 0x8E4E, 0xB7B3, 0x8E4F, + 0xB7B4, 0xB7AA, 0xB7B5, 0xB7AB, 0xB7B6, 0x8E50, 0xB7B7, 0x8E51, 0xB7B8, 0xB7AC, 0xB7B9, 0x8E52, 0xB7BA, 0x8E53, 0xB7BB, 0x8E54, + 0xB7BC, 0x8E55, 0xB7BD, 0x8E56, 0xB7BE, 0x8E57, 0xB7BF, 0x8E58, 0xB7C0, 0x8E59, 0xB7C1, 0x8E5A, 0xB7C2, 0x8E61, 0xB7C3, 0x8E62, + 0xB7C4, 0x8E63, 0xB7C5, 0x8E64, 0xB7C6, 0x8E65, 0xB7C7, 0xB7AD, 0xB7C8, 0x8E66, 0xB7C9, 0xB7AE, 0xB7CA, 0x8E67, 0xB7CB, 0x8E68, + 0xB7CC, 0x8E69, 0xB7CD, 0x8E6A, 0xB7CE, 0x8E6B, 0xB7CF, 0x8E6C, 0xB7D0, 0x8E6D, 0xB7D1, 0x8E6E, 0xB7D2, 0x8E6F, 0xB7D3, 0x8E70, + 0xB7D4, 0x8E71, 0xB7D5, 0x8E72, 0xB7D6, 0x8E73, 0xB7D7, 0x8E74, 0xB7D8, 0x8E75, 0xB7D9, 0x8E76, 0xB7DA, 0x8E77, 0xB7DB, 0x8E78, + 0xB7DC, 0x8E79, 0xB7DD, 0x8E7A, 0xB7DE, 0x8E81, 0xB7DF, 0x8E82, 0xB7E0, 0x8E83, 0xB7E1, 0x8E84, 0xB7E2, 0x8E85, 0xB7E3, 0x8E86, + 0xB7E4, 0x8E87, 0xB7E5, 0x8E88, 0xB7E6, 0x8E89, 0xB7E7, 0x8E8A, 0xB7E8, 0x8E8B, 0xB7E9, 0x8E8C, 0xB7EA, 0x8E8D, 0xB7EB, 0x8E8E, + 0xB7EC, 0xB7AF, 0xB7ED, 0xB7B0, 0xB7EE, 0x8E8F, 0xB7EF, 0x8E90, 0xB7F0, 0xB7B1, 0xB7F1, 0x8E91, 0xB7F2, 0x8E92, 0xB7F3, 0x8E93, + 0xB7F4, 0xB7B2, 0xB7F5, 0x8E94, 0xB7F6, 0x8E95, 0xB7F7, 0x8E96, 0xB7F8, 0x8E97, 0xB7F9, 0x8E98, 0xB7FA, 0x8E99, 0xB7FB, 0x8E9A, + 0xB7FC, 0xB7B3, 0xB7FD, 0xB7B4, 0xB7FE, 0x8E9B, 0xB7FF, 0xB7B5, 0xB800, 0xB7B6, 0xB801, 0xB7B7, 0xB802, 0x8E9C, 0xB803, 0x8E9D, + 0xB804, 0x8E9E, 0xB805, 0x8E9F, 0xB806, 0x8EA0, 0xB807, 0xB7B8, 0xB808, 0xB7B9, 0xB809, 0xB7BA, 0xB80A, 0x8EA1, 0xB80B, 0x8EA2, + 0xB80C, 0xB7BB, 0xB80D, 0x8EA3, 0xB80E, 0x8EA4, 0xB80F, 0x8EA5, 0xB810, 0xB7BC, 0xB811, 0x8EA6, 0xB812, 0x8EA7, 0xB813, 0x8EA8, + 0xB814, 0x8EA9, 0xB815, 0x8EAA, 0xB816, 0x8EAB, 0xB817, 0x8EAC, 0xB818, 0xB7BD, 0xB819, 0xB7BE, 0xB81A, 0x8EAD, 0xB81B, 0xB7BF, + 0xB81C, 0x8EAE, 0xB81D, 0xB7C0, 0xB81E, 0x8EAF, 0xB81F, 0x8EB0, 0xB820, 0x8EB1, 0xB821, 0x8EB2, 0xB822, 0x8EB3, 0xB823, 0x8EB4, + 0xB824, 0xB7C1, 0xB825, 0xB7C2, 0xB826, 0x8EB5, 0xB827, 0x8EB6, 0xB828, 0xB7C3, 0xB829, 0x8EB7, 0xB82A, 0x8EB8, 0xB82B, 0x8EB9, + 0xB82C, 0xB7C4, 0xB82D, 0x8EBA, 0xB82E, 0x8EBB, 0xB82F, 0x8EBC, 0xB830, 0x8EBD, 0xB831, 0x8EBE, 0xB832, 0x8EBF, 0xB833, 0x8EC0, + 0xB834, 0xB7C5, 0xB835, 0xB7C6, 0xB836, 0x8EC1, 0xB837, 0xB7C7, 0xB838, 0xB7C8, 0xB839, 0xB7C9, 0xB83A, 0x8EC2, 0xB83B, 0x8EC3, + 0xB83C, 0x8EC4, 0xB83D, 0x8EC5, 0xB83E, 0x8EC6, 0xB83F, 0x8EC7, 0xB840, 0xB7CA, 0xB841, 0x8EC8, 0xB842, 0x8EC9, 0xB843, 0x8ECA, + 0xB844, 0xB7CB, 0xB845, 0x8ECB, 0xB846, 0x8ECC, 0xB847, 0x8ECD, 0xB848, 0x8ECE, 0xB849, 0x8ECF, 0xB84A, 0x8ED0, 0xB84B, 0x8ED1, + 0xB84C, 0x8ED2, 0xB84D, 0x8ED3, 0xB84E, 0x8ED4, 0xB84F, 0x8ED5, 0xB850, 0x8ED6, 0xB851, 0xB7CC, 0xB852, 0x8ED7, 0xB853, 0xB7CD, + 0xB854, 0x8ED8, 0xB855, 0x8ED9, 0xB856, 0x8EDA, 0xB857, 0x8EDB, 0xB858, 0x8EDC, 0xB859, 0x8EDD, 0xB85A, 0x8EDE, 0xB85B, 0x8EDF, + 0xB85C, 0xB7CE, 0xB85D, 0xB7CF, 0xB85E, 0x8EE0, 0xB85F, 0x8EE1, 0xB860, 0xB7D0, 0xB861, 0x8EE2, 0xB862, 0x8EE3, 0xB863, 0x8EE4, + 0xB864, 0xB7D1, 0xB865, 0x8EE5, 0xB866, 0x8EE6, 0xB867, 0x8EE7, 0xB868, 0x8EE8, 0xB869, 0x8EE9, 0xB86A, 0x8EEA, 0xB86B, 0x8EEB, + 0xB86C, 0xB7D2, 0xB86D, 0xB7D3, 0xB86E, 0x8EEC, 0xB86F, 0xB7D4, 0xB870, 0x8EED, 0xB871, 0xB7D5, 0xB872, 0x8EEE, 0xB873, 0x8EEF, + 0xB874, 0x8EF0, 0xB875, 0x8EF1, 0xB876, 0x8EF2, 0xB877, 0x8EF3, 0xB878, 0xB7D6, 0xB879, 0x8EF4, 0xB87A, 0x8EF5, 0xB87B, 0x8EF6, + 0xB87C, 0xB7D7, 0xB87D, 0x8EF7, 0xB87E, 0x8EF8, 0xB87F, 0x8EF9, 0xB880, 0x8EFA, 0xB881, 0x8EFB, 0xB882, 0x8EFC, 0xB883, 0x8EFD, + 0xB884, 0x8EFE, 0xB885, 0x8F41, 0xB886, 0x8F42, 0xB887, 0x8F43, 0xB888, 0x8F44, 0xB889, 0x8F45, 0xB88A, 0x8F46, 0xB88B, 0x8F47, + 0xB88C, 0x8F48, 0xB88D, 0xB7D8, 0xB88E, 0x8F49, 0xB88F, 0x8F4A, 0xB890, 0x8F4B, 0xB891, 0x8F4C, 0xB892, 0x8F4D, 0xB893, 0x8F4E, + 0xB894, 0x8F4F, 0xB895, 0x8F50, 0xB896, 0x8F51, 0xB897, 0x8F52, 0xB898, 0x8F53, 0xB899, 0x8F54, 0xB89A, 0x8F55, 0xB89B, 0x8F56, + 0xB89C, 0x8F57, 0xB89D, 0x8F58, 0xB89E, 0x8F59, 0xB89F, 0x8F5A, 0xB8A0, 0x8F61, 0xB8A1, 0x8F62, 0xB8A2, 0x8F63, 0xB8A3, 0x8F64, + 0xB8A4, 0x8F65, 0xB8A5, 0x8F66, 0xB8A6, 0x8F67, 0xB8A7, 0x8F68, 0xB8A8, 0xB7D9, 0xB8A9, 0x8F69, 0xB8AA, 0x8F6A, 0xB8AB, 0x8F6B, + 0xB8AC, 0x8F6C, 0xB8AD, 0x8F6D, 0xB8AE, 0x8F6E, 0xB8AF, 0x8F6F, 0xB8B0, 0xB7DA, 0xB8B1, 0x8F70, 0xB8B2, 0x8F71, 0xB8B3, 0x8F72, + 0xB8B4, 0xB7DB, 0xB8B5, 0x8F73, 0xB8B6, 0x8F74, 0xB8B7, 0x8F75, 0xB8B8, 0xB7DC, 0xB8B9, 0x8F76, 0xB8BA, 0x8F77, 0xB8BB, 0x8F78, + 0xB8BC, 0x8F79, 0xB8BD, 0x8F7A, 0xB8BE, 0x8F81, 0xB8BF, 0x8F82, 0xB8C0, 0xB7DD, 0xB8C1, 0xB7DE, 0xB8C2, 0x8F83, 0xB8C3, 0xB7DF, + 0xB8C4, 0x8F84, 0xB8C5, 0xB7E0, 0xB8C6, 0x8F85, 0xB8C7, 0x8F86, 0xB8C8, 0x8F87, 0xB8C9, 0x8F88, 0xB8CA, 0x8F89, 0xB8CB, 0x8F8A, + 0xB8CC, 0xB7E1, 0xB8CD, 0x8F8B, 0xB8CE, 0x8F8C, 0xB8CF, 0x8F8D, 0xB8D0, 0xB7E2, 0xB8D1, 0x8F8E, 0xB8D2, 0x8F8F, 0xB8D3, 0x8F90, + 0xB8D4, 0xB7E3, 0xB8D5, 0x8F91, 0xB8D6, 0x8F92, 0xB8D7, 0x8F93, 0xB8D8, 0x8F94, 0xB8D9, 0x8F95, 0xB8DA, 0x8F96, 0xB8DB, 0x8F97, + 0xB8DC, 0x8F98, 0xB8DD, 0xB7E4, 0xB8DE, 0x8F99, 0xB8DF, 0xB7E5, 0xB8E0, 0x8F9A, 0xB8E1, 0xB7E6, 0xB8E2, 0x8F9B, 0xB8E3, 0x8F9C, + 0xB8E4, 0x8F9D, 0xB8E5, 0x8F9E, 0xB8E6, 0x8F9F, 0xB8E7, 0x8FA0, 0xB8E8, 0xB7E7, 0xB8E9, 0xB7E8, 0xB8EA, 0x8FA1, 0xB8EB, 0x8FA2, + 0xB8EC, 0xB7E9, 0xB8ED, 0x8FA3, 0xB8EE, 0x8FA4, 0xB8EF, 0x8FA5, 0xB8F0, 0xB7EA, 0xB8F1, 0x8FA6, 0xB8F2, 0x8FA7, 0xB8F3, 0x8FA8, + 0xB8F4, 0x8FA9, 0xB8F5, 0x8FAA, 0xB8F6, 0x8FAB, 0xB8F7, 0x8FAC, 0xB8F8, 0xB7EB, 0xB8F9, 0xB7EC, 0xB8FA, 0x8FAD, 0xB8FB, 0xB7ED, + 0xB8FC, 0x8FAE, 0xB8FD, 0xB7EE, 0xB8FE, 0x8FAF, 0xB8FF, 0x8FB0, 0xB900, 0x8FB1, 0xB901, 0x8FB2, 0xB902, 0x8FB3, 0xB903, 0x8FB4, + 0xB904, 0xB7EF, 0xB905, 0x8FB5, 0xB906, 0x8FB6, 0xB907, 0x8FB7, 0xB908, 0x8FB8, 0xB909, 0x8FB9, 0xB90A, 0x8FBA, 0xB90B, 0x8FBB, + 0xB90C, 0x8FBC, 0xB90D, 0x8FBD, 0xB90E, 0x8FBE, 0xB90F, 0x8FBF, 0xB910, 0x8FC0, 0xB911, 0x8FC1, 0xB912, 0x8FC2, 0xB913, 0x8FC3, + 0xB914, 0x8FC4, 0xB915, 0x8FC5, 0xB916, 0x8FC6, 0xB917, 0x8FC7, 0xB918, 0xB7F0, 0xB919, 0x8FC8, 0xB91A, 0x8FC9, 0xB91B, 0x8FCA, + 0xB91C, 0x8FCB, 0xB91D, 0x8FCC, 0xB91E, 0x8FCD, 0xB91F, 0x8FCE, 0xB920, 0xB7F1, 0xB921, 0x8FCF, 0xB922, 0x8FD0, 0xB923, 0x8FD1, + 0xB924, 0x8FD2, 0xB925, 0x8FD3, 0xB926, 0x8FD4, 0xB927, 0x8FD5, 0xB928, 0x8FD6, 0xB929, 0x8FD7, 0xB92A, 0x8FD8, 0xB92B, 0x8FD9, + 0xB92C, 0x8FDA, 0xB92D, 0x8FDB, 0xB92E, 0x8FDC, 0xB92F, 0x8FDD, 0xB930, 0x8FDE, 0xB931, 0x8FDF, 0xB932, 0x8FE0, 0xB933, 0x8FE1, + 0xB934, 0x8FE2, 0xB935, 0x8FE3, 0xB936, 0x8FE4, 0xB937, 0x8FE5, 0xB938, 0x8FE6, 0xB939, 0x8FE7, 0xB93A, 0x8FE8, 0xB93B, 0x8FE9, + 0xB93C, 0xB7F2, 0xB93D, 0xB7F3, 0xB93E, 0x8FEA, 0xB93F, 0x8FEB, 0xB940, 0xB7F4, 0xB941, 0x8FEC, 0xB942, 0x8FED, 0xB943, 0x8FEE, + 0xB944, 0xB7F5, 0xB945, 0x8FEF, 0xB946, 0x8FF0, 0xB947, 0x8FF1, 0xB948, 0x8FF2, 0xB949, 0x8FF3, 0xB94A, 0x8FF4, 0xB94B, 0x8FF5, + 0xB94C, 0xB7F6, 0xB94D, 0x8FF6, 0xB94E, 0x8FF7, 0xB94F, 0xB7F7, 0xB950, 0x8FF8, 0xB951, 0xB7F8, 0xB952, 0x8FF9, 0xB953, 0x8FFA, + 0xB954, 0x8FFB, 0xB955, 0x8FFC, 0xB956, 0x8FFD, 0xB957, 0x8FFE, 0xB958, 0xB7F9, 0xB959, 0xB7FA, 0xB95A, 0x9041, 0xB95B, 0x9042, + 0xB95C, 0xB7FB, 0xB95D, 0x9043, 0xB95E, 0x9044, 0xB95F, 0x9045, 0xB960, 0xB7FC, 0xB961, 0x9046, 0xB962, 0x9047, 0xB963, 0x9048, + 0xB964, 0x9049, 0xB965, 0x904A, 0xB966, 0x904B, 0xB967, 0x904C, 0xB968, 0xB7FD, 0xB969, 0xB7FE, 0xB96A, 0x904D, 0xB96B, 0xB8A1, + 0xB96C, 0x904E, 0xB96D, 0xB8A2, 0xB96E, 0x904F, 0xB96F, 0x9050, 0xB970, 0x9051, 0xB971, 0x9052, 0xB972, 0x9053, 0xB973, 0x9054, + 0xB974, 0xB8A3, 0xB975, 0xB8A4, 0xB976, 0x9055, 0xB977, 0x9056, 0xB978, 0xB8A5, 0xB979, 0x9057, 0xB97A, 0x9058, 0xB97B, 0x9059, + 0xB97C, 0xB8A6, 0xB97D, 0x905A, 0xB97E, 0x9061, 0xB97F, 0x9062, 0xB980, 0x9063, 0xB981, 0x9064, 0xB982, 0x9065, 0xB983, 0x9066, + 0xB984, 0xB8A7, 0xB985, 0xB8A8, 0xB986, 0x9067, 0xB987, 0xB8A9, 0xB988, 0x9068, 0xB989, 0xB8AA, 0xB98A, 0xB8AB, 0xB98B, 0x9069, + 0xB98C, 0x906A, 0xB98D, 0xB8AC, 0xB98E, 0xB8AD, 0xB98F, 0x906B, 0xB990, 0x906C, 0xB991, 0x906D, 0xB992, 0x906E, 0xB993, 0x906F, + 0xB994, 0x9070, 0xB995, 0x9071, 0xB996, 0x9072, 0xB997, 0x9073, 0xB998, 0x9074, 0xB999, 0x9075, 0xB99A, 0x9076, 0xB99B, 0x9077, + 0xB99C, 0x9078, 0xB99D, 0x9079, 0xB99E, 0x907A, 0xB99F, 0x9081, 0xB9A0, 0x9082, 0xB9A1, 0x9083, 0xB9A2, 0x9084, 0xB9A3, 0x9085, + 0xB9A4, 0x9086, 0xB9A5, 0x9087, 0xB9A6, 0x9088, 0xB9A7, 0x9089, 0xB9A8, 0x908A, 0xB9A9, 0x908B, 0xB9AA, 0x908C, 0xB9AB, 0x908D, + 0xB9AC, 0xB8AE, 0xB9AD, 0xB8AF, 0xB9AE, 0x908E, 0xB9AF, 0x908F, 0xB9B0, 0xB8B0, 0xB9B1, 0x9090, 0xB9B2, 0x9091, 0xB9B3, 0x9092, + 0xB9B4, 0xB8B1, 0xB9B5, 0x9093, 0xB9B6, 0x9094, 0xB9B7, 0x9095, 0xB9B8, 0x9096, 0xB9B9, 0x9097, 0xB9BA, 0x9098, 0xB9BB, 0x9099, + 0xB9BC, 0xB8B2, 0xB9BD, 0xB8B3, 0xB9BE, 0x909A, 0xB9BF, 0xB8B4, 0xB9C0, 0x909B, 0xB9C1, 0xB8B5, 0xB9C2, 0x909C, 0xB9C3, 0x909D, + 0xB9C4, 0x909E, 0xB9C5, 0x909F, 0xB9C6, 0x90A0, 0xB9C7, 0x90A1, 0xB9C8, 0xB8B6, 0xB9C9, 0xB8B7, 0xB9CA, 0x90A2, 0xB9CB, 0x90A3, + 0xB9CC, 0xB8B8, 0xB9CD, 0x90A4, 0xB9CE, 0xB8B9, 0xB9CF, 0xB8BA, 0xB9D0, 0xB8BB, 0xB9D1, 0xB8BC, 0xB9D2, 0xB8BD, 0xB9D3, 0x90A5, + 0xB9D4, 0x90A6, 0xB9D5, 0x90A7, 0xB9D6, 0x90A8, 0xB9D7, 0x90A9, 0xB9D8, 0xB8BE, 0xB9D9, 0xB8BF, 0xB9DA, 0x90AA, 0xB9DB, 0xB8C0, + 0xB9DC, 0x90AB, 0xB9DD, 0xB8C1, 0xB9DE, 0xB8C2, 0xB9DF, 0x90AC, 0xB9E0, 0x90AD, 0xB9E1, 0xB8C3, 0xB9E2, 0x90AE, 0xB9E3, 0xB8C4, + 0xB9E4, 0xB8C5, 0xB9E5, 0xB8C6, 0xB9E6, 0x90AF, 0xB9E7, 0x90B0, 0xB9E8, 0xB8C7, 0xB9E9, 0x90B1, 0xB9EA, 0x90B2, 0xB9EB, 0x90B3, + 0xB9EC, 0xB8C8, 0xB9ED, 0x90B4, 0xB9EE, 0x90B5, 0xB9EF, 0x90B6, 0xB9F0, 0x90B7, 0xB9F1, 0x90B8, 0xB9F2, 0x90B9, 0xB9F3, 0x90BA, + 0xB9F4, 0xB8C9, 0xB9F5, 0xB8CA, 0xB9F6, 0x90BB, 0xB9F7, 0xB8CB, 0xB9F8, 0xB8CC, 0xB9F9, 0xB8CD, 0xB9FA, 0xB8CE, 0xB9FB, 0x90BC, + 0xB9FC, 0x90BD, 0xB9FD, 0x90BE, 0xB9FE, 0x90BF, 0xB9FF, 0x90C0, 0xBA00, 0xB8CF, 0xBA01, 0xB8D0, 0xBA02, 0x90C1, 0xBA03, 0x90C2, + 0xBA04, 0x90C3, 0xBA05, 0x90C4, 0xBA06, 0x90C5, 0xBA07, 0x90C6, 0xBA08, 0xB8D1, 0xBA09, 0x90C7, 0xBA0A, 0x90C8, 0xBA0B, 0x90C9, + 0xBA0C, 0x90CA, 0xBA0D, 0x90CB, 0xBA0E, 0x90CC, 0xBA0F, 0x90CD, 0xBA10, 0x90CE, 0xBA11, 0x90CF, 0xBA12, 0x90D0, 0xBA13, 0x90D1, + 0xBA14, 0x90D2, 0xBA15, 0xB8D2, 0xBA16, 0x90D3, 0xBA17, 0x90D4, 0xBA18, 0x90D5, 0xBA19, 0x90D6, 0xBA1A, 0x90D7, 0xBA1B, 0x90D8, + 0xBA1C, 0x90D9, 0xBA1D, 0x90DA, 0xBA1E, 0x90DB, 0xBA1F, 0x90DC, 0xBA20, 0x90DD, 0xBA21, 0x90DE, 0xBA22, 0x90DF, 0xBA23, 0x90E0, + 0xBA24, 0x90E1, 0xBA25, 0x90E2, 0xBA26, 0x90E3, 0xBA27, 0x90E4, 0xBA28, 0x90E5, 0xBA29, 0x90E6, 0xBA2A, 0x90E7, 0xBA2B, 0x90E8, + 0xBA2C, 0x90E9, 0xBA2D, 0x90EA, 0xBA2E, 0x90EB, 0xBA2F, 0x90EC, 0xBA30, 0x90ED, 0xBA31, 0x90EE, 0xBA32, 0x90EF, 0xBA33, 0x90F0, + 0xBA34, 0x90F1, 0xBA35, 0x90F2, 0xBA36, 0x90F3, 0xBA37, 0x90F4, 0xBA38, 0xB8D3, 0xBA39, 0xB8D4, 0xBA3A, 0x90F5, 0xBA3B, 0x90F6, + 0xBA3C, 0xB8D5, 0xBA3D, 0x90F7, 0xBA3E, 0x90F8, 0xBA3F, 0x90F9, 0xBA40, 0xB8D6, 0xBA41, 0x90FA, 0xBA42, 0xB8D7, 0xBA43, 0x90FB, + 0xBA44, 0x90FC, 0xBA45, 0x90FD, 0xBA46, 0x90FE, 0xBA47, 0x9141, 0xBA48, 0xB8D8, 0xBA49, 0xB8D9, 0xBA4A, 0x9142, 0xBA4B, 0xB8DA, + 0xBA4C, 0x9143, 0xBA4D, 0xB8DB, 0xBA4E, 0xB8DC, 0xBA4F, 0x9144, 0xBA50, 0x9145, 0xBA51, 0x9146, 0xBA52, 0x9147, 0xBA53, 0xB8DD, + 0xBA54, 0xB8DE, 0xBA55, 0xB8DF, 0xBA56, 0x9148, 0xBA57, 0x9149, 0xBA58, 0xB8E0, 0xBA59, 0x914A, 0xBA5A, 0x914B, 0xBA5B, 0x914C, + 0xBA5C, 0xB8E1, 0xBA5D, 0x914D, 0xBA5E, 0x914E, 0xBA5F, 0x914F, 0xBA60, 0x9150, 0xBA61, 0x9151, 0xBA62, 0x9152, 0xBA63, 0x9153, + 0xBA64, 0xB8E2, 0xBA65, 0xB8E3, 0xBA66, 0x9154, 0xBA67, 0xB8E4, 0xBA68, 0xB8E5, 0xBA69, 0xB8E6, 0xBA6A, 0x9155, 0xBA6B, 0x9156, + 0xBA6C, 0x9157, 0xBA6D, 0x9158, 0xBA6E, 0x9159, 0xBA6F, 0x915A, 0xBA70, 0xB8E7, 0xBA71, 0xB8E8, 0xBA72, 0x9161, 0xBA73, 0x9162, + 0xBA74, 0xB8E9, 0xBA75, 0x9163, 0xBA76, 0x9164, 0xBA77, 0x9165, 0xBA78, 0xB8EA, 0xBA79, 0x9166, 0xBA7A, 0x9167, 0xBA7B, 0x9168, + 0xBA7C, 0x9169, 0xBA7D, 0x916A, 0xBA7E, 0x916B, 0xBA7F, 0x916C, 0xBA80, 0x916D, 0xBA81, 0x916E, 0xBA82, 0x916F, 0xBA83, 0xB8EB, + 0xBA84, 0xB8EC, 0xBA85, 0xB8ED, 0xBA86, 0x9170, 0xBA87, 0xB8EE, 0xBA88, 0x9171, 0xBA89, 0x9172, 0xBA8A, 0x9173, 0xBA8B, 0x9174, + 0xBA8C, 0xB8EF, 0xBA8D, 0x9175, 0xBA8E, 0x9176, 0xBA8F, 0x9177, 0xBA90, 0x9178, 0xBA91, 0x9179, 0xBA92, 0x917A, 0xBA93, 0x9181, + 0xBA94, 0x9182, 0xBA95, 0x9183, 0xBA96, 0x9184, 0xBA97, 0x9185, 0xBA98, 0x9186, 0xBA99, 0x9187, 0xBA9A, 0x9188, 0xBA9B, 0x9189, + 0xBA9C, 0x918A, 0xBA9D, 0x918B, 0xBA9E, 0x918C, 0xBA9F, 0x918D, 0xBAA0, 0x918E, 0xBAA1, 0x918F, 0xBAA2, 0x9190, 0xBAA3, 0x9191, + 0xBAA4, 0x9192, 0xBAA5, 0x9193, 0xBAA6, 0x9194, 0xBAA7, 0x9195, 0xBAA8, 0xB8F0, 0xBAA9, 0xB8F1, 0xBAAA, 0x9196, 0xBAAB, 0xB8F2, + 0xBAAC, 0xB8F3, 0xBAAD, 0x9197, 0xBAAE, 0x9198, 0xBAAF, 0x9199, 0xBAB0, 0xB8F4, 0xBAB1, 0x919A, 0xBAB2, 0xB8F5, 0xBAB3, 0x919B, + 0xBAB4, 0x919C, 0xBAB5, 0x919D, 0xBAB6, 0x919E, 0xBAB7, 0x919F, 0xBAB8, 0xB8F6, 0xBAB9, 0xB8F7, 0xBABA, 0x91A0, 0xBABB, 0xB8F8, + 0xBABC, 0x91A1, 0xBABD, 0xB8F9, 0xBABE, 0x91A2, 0xBABF, 0x91A3, 0xBAC0, 0x91A4, 0xBAC1, 0x91A5, 0xBAC2, 0x91A6, 0xBAC3, 0x91A7, + 0xBAC4, 0xB8FA, 0xBAC5, 0x91A8, 0xBAC6, 0x91A9, 0xBAC7, 0x91AA, 0xBAC8, 0xB8FB, 0xBAC9, 0x91AB, 0xBACA, 0x91AC, 0xBACB, 0x91AD, + 0xBACC, 0x91AE, 0xBACD, 0x91AF, 0xBACE, 0x91B0, 0xBACF, 0x91B1, 0xBAD0, 0x91B2, 0xBAD1, 0x91B3, 0xBAD2, 0x91B4, 0xBAD3, 0x91B5, + 0xBAD4, 0x91B6, 0xBAD5, 0x91B7, 0xBAD6, 0x91B8, 0xBAD7, 0x91B9, 0xBAD8, 0xB8FC, 0xBAD9, 0xB8FD, 0xBADA, 0x91BA, 0xBADB, 0x91BB, + 0xBADC, 0x91BC, 0xBADD, 0x91BD, 0xBADE, 0x91BE, 0xBADF, 0x91BF, 0xBAE0, 0x91C0, 0xBAE1, 0x91C1, 0xBAE2, 0x91C2, 0xBAE3, 0x91C3, + 0xBAE4, 0x91C4, 0xBAE5, 0x91C5, 0xBAE6, 0x91C6, 0xBAE7, 0x91C7, 0xBAE8, 0x91C8, 0xBAE9, 0x91C9, 0xBAEA, 0x91CA, 0xBAEB, 0x91CB, + 0xBAEC, 0x91CC, 0xBAED, 0x91CD, 0xBAEE, 0x91CE, 0xBAEF, 0x91CF, 0xBAF0, 0x91D0, 0xBAF1, 0x91D1, 0xBAF2, 0x91D2, 0xBAF3, 0x91D3, + 0xBAF4, 0x91D4, 0xBAF5, 0x91D5, 0xBAF6, 0x91D6, 0xBAF7, 0x91D7, 0xBAF8, 0x91D8, 0xBAF9, 0x91D9, 0xBAFA, 0x91DA, 0xBAFB, 0x91DB, + 0xBAFC, 0xB8FE, 0xBAFD, 0x91DC, 0xBAFE, 0x91DD, 0xBAFF, 0x91DE, 0xBB00, 0xB9A1, 0xBB01, 0x91DF, 0xBB02, 0x91E0, 0xBB03, 0x91E1, + 0xBB04, 0xB9A2, 0xBB05, 0x91E2, 0xBB06, 0x91E3, 0xBB07, 0x91E4, 0xBB08, 0x91E5, 0xBB09, 0x91E6, 0xBB0A, 0x91E7, 0xBB0B, 0x91E8, + 0xBB0C, 0x91E9, 0xBB0D, 0xB9A3, 0xBB0E, 0x91EA, 0xBB0F, 0xB9A4, 0xBB10, 0x91EB, 0xBB11, 0xB9A5, 0xBB12, 0x91EC, 0xBB13, 0x91ED, + 0xBB14, 0x91EE, 0xBB15, 0x91EF, 0xBB16, 0x91F0, 0xBB17, 0x91F1, 0xBB18, 0xB9A6, 0xBB19, 0x91F2, 0xBB1A, 0x91F3, 0xBB1B, 0x91F4, + 0xBB1C, 0xB9A7, 0xBB1D, 0x91F5, 0xBB1E, 0x91F6, 0xBB1F, 0x91F7, 0xBB20, 0xB9A8, 0xBB21, 0x91F8, 0xBB22, 0x91F9, 0xBB23, 0x91FA, + 0xBB24, 0x91FB, 0xBB25, 0x91FC, 0xBB26, 0x91FD, 0xBB27, 0x91FE, 0xBB28, 0x9241, 0xBB29, 0xB9A9, 0xBB2A, 0x9242, 0xBB2B, 0xB9AA, + 0xBB2C, 0x9243, 0xBB2D, 0x9244, 0xBB2E, 0x9245, 0xBB2F, 0x9246, 0xBB30, 0x9247, 0xBB31, 0x9248, 0xBB32, 0x9249, 0xBB33, 0x924A, + 0xBB34, 0xB9AB, 0xBB35, 0xB9AC, 0xBB36, 0xB9AD, 0xBB37, 0x924B, 0xBB38, 0xB9AE, 0xBB39, 0x924C, 0xBB3A, 0x924D, 0xBB3B, 0xB9AF, + 0xBB3C, 0xB9B0, 0xBB3D, 0xB9B1, 0xBB3E, 0xB9B2, 0xBB3F, 0x924E, 0xBB40, 0x924F, 0xBB41, 0x9250, 0xBB42, 0x9251, 0xBB43, 0x9252, + 0xBB44, 0xB9B3, 0xBB45, 0xB9B4, 0xBB46, 0x9253, 0xBB47, 0xB9B5, 0xBB48, 0x9254, 0xBB49, 0xB9B6, 0xBB4A, 0x9255, 0xBB4B, 0x9256, + 0xBB4C, 0x9257, 0xBB4D, 0xB9B7, 0xBB4E, 0x9258, 0xBB4F, 0xB9B8, 0xBB50, 0xB9B9, 0xBB51, 0x9259, 0xBB52, 0x925A, 0xBB53, 0x9261, + 0xBB54, 0xB9BA, 0xBB55, 0x9262, 0xBB56, 0x9263, 0xBB57, 0x9264, 0xBB58, 0xB9BB, 0xBB59, 0x9265, 0xBB5A, 0x9266, 0xBB5B, 0x9267, + 0xBB5C, 0x9268, 0xBB5D, 0x9269, 0xBB5E, 0x926A, 0xBB5F, 0x926B, 0xBB60, 0x926C, 0xBB61, 0xB9BC, 0xBB62, 0x926D, 0xBB63, 0xB9BD, + 0xBB64, 0x926E, 0xBB65, 0x926F, 0xBB66, 0x9270, 0xBB67, 0x9271, 0xBB68, 0x9272, 0xBB69, 0x9273, 0xBB6A, 0x9274, 0xBB6B, 0x9275, + 0xBB6C, 0xB9BE, 0xBB6D, 0x9276, 0xBB6E, 0x9277, 0xBB6F, 0x9278, 0xBB70, 0x9279, 0xBB71, 0x927A, 0xBB72, 0x9281, 0xBB73, 0x9282, + 0xBB74, 0x9283, 0xBB75, 0x9284, 0xBB76, 0x9285, 0xBB77, 0x9286, 0xBB78, 0x9287, 0xBB79, 0x9288, 0xBB7A, 0x9289, 0xBB7B, 0x928A, + 0xBB7C, 0x928B, 0xBB7D, 0x928C, 0xBB7E, 0x928D, 0xBB7F, 0x928E, 0xBB80, 0x928F, 0xBB81, 0x9290, 0xBB82, 0x9291, 0xBB83, 0x9292, + 0xBB84, 0x9293, 0xBB85, 0x9294, 0xBB86, 0x9295, 0xBB87, 0x9296, 0xBB88, 0xB9BF, 0xBB89, 0x9297, 0xBB8A, 0x9298, 0xBB8B, 0x9299, + 0xBB8C, 0xB9C0, 0xBB8D, 0x929A, 0xBB8E, 0x929B, 0xBB8F, 0x929C, 0xBB90, 0xB9C1, 0xBB91, 0x929D, 0xBB92, 0x929E, 0xBB93, 0x929F, + 0xBB94, 0x92A0, 0xBB95, 0x92A1, 0xBB96, 0x92A2, 0xBB97, 0x92A3, 0xBB98, 0x92A4, 0xBB99, 0x92A5, 0xBB9A, 0x92A6, 0xBB9B, 0x92A7, + 0xBB9C, 0x92A8, 0xBB9D, 0x92A9, 0xBB9E, 0x92AA, 0xBB9F, 0x92AB, 0xBBA0, 0x92AC, 0xBBA1, 0x92AD, 0xBBA2, 0x92AE, 0xBBA3, 0x92AF, + 0xBBA4, 0xB9C2, 0xBBA5, 0x92B0, 0xBBA6, 0x92B1, 0xBBA7, 0x92B2, 0xBBA8, 0xB9C3, 0xBBA9, 0x92B3, 0xBBAA, 0x92B4, 0xBBAB, 0x92B5, + 0xBBAC, 0xB9C4, 0xBBAD, 0x92B6, 0xBBAE, 0x92B7, 0xBBAF, 0x92B8, 0xBBB0, 0x92B9, 0xBBB1, 0x92BA, 0xBBB2, 0x92BB, 0xBBB3, 0x92BC, + 0xBBB4, 0xB9C5, 0xBBB5, 0x92BD, 0xBBB6, 0x92BE, 0xBBB7, 0xB9C6, 0xBBB8, 0x92BF, 0xBBB9, 0x92C0, 0xBBBA, 0x92C1, 0xBBBB, 0x92C2, + 0xBBBC, 0x92C3, 0xBBBD, 0x92C4, 0xBBBE, 0x92C5, 0xBBBF, 0x92C6, 0xBBC0, 0xB9C7, 0xBBC1, 0x92C7, 0xBBC2, 0x92C8, 0xBBC3, 0x92C9, + 0xBBC4, 0xB9C8, 0xBBC5, 0x92CA, 0xBBC6, 0x92CB, 0xBBC7, 0x92CC, 0xBBC8, 0xB9C9, 0xBBC9, 0x92CD, 0xBBCA, 0x92CE, 0xBBCB, 0x92CF, + 0xBBCC, 0x92D0, 0xBBCD, 0x92D1, 0xBBCE, 0x92D2, 0xBBCF, 0x92D3, 0xBBD0, 0xB9CA, 0xBBD1, 0x92D4, 0xBBD2, 0x92D5, 0xBBD3, 0xB9CB, + 0xBBD4, 0x92D6, 0xBBD5, 0x92D7, 0xBBD6, 0x92D8, 0xBBD7, 0x92D9, 0xBBD8, 0x92DA, 0xBBD9, 0x92DB, 0xBBDA, 0x92DC, 0xBBDB, 0x92DD, + 0xBBDC, 0x92DE, 0xBBDD, 0x92DF, 0xBBDE, 0x92E0, 0xBBDF, 0x92E1, 0xBBE0, 0x92E2, 0xBBE1, 0x92E3, 0xBBE2, 0x92E4, 0xBBE3, 0x92E5, + 0xBBE4, 0x92E6, 0xBBE5, 0x92E7, 0xBBE6, 0x92E8, 0xBBE7, 0x92E9, 0xBBE8, 0x92EA, 0xBBE9, 0x92EB, 0xBBEA, 0x92EC, 0xBBEB, 0x92ED, + 0xBBEC, 0x92EE, 0xBBED, 0x92EF, 0xBBEE, 0x92F0, 0xBBEF, 0x92F1, 0xBBF0, 0x92F2, 0xBBF1, 0x92F3, 0xBBF2, 0x92F4, 0xBBF3, 0x92F5, + 0xBBF4, 0x92F6, 0xBBF5, 0x92F7, 0xBBF6, 0x92F8, 0xBBF7, 0x92F9, 0xBBF8, 0xB9CC, 0xBBF9, 0xB9CD, 0xBBFA, 0x92FA, 0xBBFB, 0x92FB, + 0xBBFC, 0xB9CE, 0xBBFD, 0x92FC, 0xBBFE, 0x92FD, 0xBBFF, 0xB9CF, 0xBC00, 0xB9D0, 0xBC01, 0x92FE, 0xBC02, 0xB9D1, 0xBC03, 0x9341, + 0xBC04, 0x9342, 0xBC05, 0x9343, 0xBC06, 0x9344, 0xBC07, 0x9345, 0xBC08, 0xB9D2, 0xBC09, 0xB9D3, 0xBC0A, 0x9346, 0xBC0B, 0xB9D4, + 0xBC0C, 0xB9D5, 0xBC0D, 0xB9D6, 0xBC0E, 0x9347, 0xBC0F, 0xB9D7, 0xBC10, 0x9348, 0xBC11, 0xB9D8, 0xBC12, 0x9349, 0xBC13, 0x934A, + 0xBC14, 0xB9D9, 0xBC15, 0xB9DA, 0xBC16, 0xB9DB, 0xBC17, 0xB9DC, 0xBC18, 0xB9DD, 0xBC19, 0x934B, 0xBC1A, 0x934C, 0xBC1B, 0xB9DE, + 0xBC1C, 0xB9DF, 0xBC1D, 0xB9E0, 0xBC1E, 0xB9E1, 0xBC1F, 0xB9E2, 0xBC20, 0x934D, 0xBC21, 0x934E, 0xBC22, 0x934F, 0xBC23, 0x9350, + 0xBC24, 0xB9E3, 0xBC25, 0xB9E4, 0xBC26, 0x9351, 0xBC27, 0xB9E5, 0xBC28, 0x9352, 0xBC29, 0xB9E6, 0xBC2A, 0x9353, 0xBC2B, 0x9354, + 0xBC2C, 0x9355, 0xBC2D, 0xB9E7, 0xBC2E, 0x9356, 0xBC2F, 0x9357, 0xBC30, 0xB9E8, 0xBC31, 0xB9E9, 0xBC32, 0x9358, 0xBC33, 0x9359, + 0xBC34, 0xB9EA, 0xBC35, 0x935A, 0xBC36, 0x9361, 0xBC37, 0x9362, 0xBC38, 0xB9EB, 0xBC39, 0x9363, 0xBC3A, 0x9364, 0xBC3B, 0x9365, + 0xBC3C, 0x9366, 0xBC3D, 0x9367, 0xBC3E, 0x9368, 0xBC3F, 0x9369, 0xBC40, 0xB9EC, 0xBC41, 0xB9ED, 0xBC42, 0x936A, 0xBC43, 0xB9EE, + 0xBC44, 0xB9EF, 0xBC45, 0xB9F0, 0xBC46, 0x936B, 0xBC47, 0x936C, 0xBC48, 0x936D, 0xBC49, 0xB9F1, 0xBC4A, 0x936E, 0xBC4B, 0x936F, + 0xBC4C, 0xB9F2, 0xBC4D, 0xB9F3, 0xBC4E, 0x9370, 0xBC4F, 0x9371, 0xBC50, 0xB9F4, 0xBC51, 0x9372, 0xBC52, 0x9373, 0xBC53, 0x9374, + 0xBC54, 0x9375, 0xBC55, 0x9376, 0xBC56, 0x9377, 0xBC57, 0x9378, 0xBC58, 0x9379, 0xBC59, 0x937A, 0xBC5A, 0x9381, 0xBC5B, 0x9382, + 0xBC5C, 0x9383, 0xBC5D, 0xB9F5, 0xBC5E, 0x9384, 0xBC5F, 0x9385, 0xBC60, 0x9386, 0xBC61, 0x9387, 0xBC62, 0x9388, 0xBC63, 0x9389, + 0xBC64, 0x938A, 0xBC65, 0x938B, 0xBC66, 0x938C, 0xBC67, 0x938D, 0xBC68, 0x938E, 0xBC69, 0x938F, 0xBC6A, 0x9390, 0xBC6B, 0x9391, + 0xBC6C, 0x9392, 0xBC6D, 0x9393, 0xBC6E, 0x9394, 0xBC6F, 0x9395, 0xBC70, 0x9396, 0xBC71, 0x9397, 0xBC72, 0x9398, 0xBC73, 0x9399, + 0xBC74, 0x939A, 0xBC75, 0x939B, 0xBC76, 0x939C, 0xBC77, 0x939D, 0xBC78, 0x939E, 0xBC79, 0x939F, 0xBC7A, 0x93A0, 0xBC7B, 0x93A1, + 0xBC7C, 0x93A2, 0xBC7D, 0x93A3, 0xBC7E, 0x93A4, 0xBC7F, 0x93A5, 0xBC80, 0x93A6, 0xBC81, 0x93A7, 0xBC82, 0x93A8, 0xBC83, 0x93A9, + 0xBC84, 0xB9F6, 0xBC85, 0xB9F7, 0xBC86, 0x93AA, 0xBC87, 0x93AB, 0xBC88, 0xB9F8, 0xBC89, 0x93AC, 0xBC8A, 0x93AD, 0xBC8B, 0xB9F9, + 0xBC8C, 0xB9FA, 0xBC8D, 0x93AE, 0xBC8E, 0xB9FB, 0xBC8F, 0x93AF, 0xBC90, 0x93B0, 0xBC91, 0x93B1, 0xBC92, 0x93B2, 0xBC93, 0x93B3, + 0xBC94, 0xB9FC, 0xBC95, 0xB9FD, 0xBC96, 0x93B4, 0xBC97, 0xB9FE, 0xBC98, 0x93B5, 0xBC99, 0xBAA1, 0xBC9A, 0xBAA2, 0xBC9B, 0x93B6, + 0xBC9C, 0x93B7, 0xBC9D, 0x93B8, 0xBC9E, 0x93B9, 0xBC9F, 0x93BA, 0xBCA0, 0xBAA3, 0xBCA1, 0xBAA4, 0xBCA2, 0x93BB, 0xBCA3, 0x93BC, + 0xBCA4, 0xBAA5, 0xBCA5, 0x93BD, 0xBCA6, 0x93BE, 0xBCA7, 0xBAA6, 0xBCA8, 0xBAA7, 0xBCA9, 0x93BF, 0xBCAA, 0x93C0, 0xBCAB, 0x93C1, + 0xBCAC, 0x93C2, 0xBCAD, 0x93C3, 0xBCAE, 0x93C4, 0xBCAF, 0x93C5, 0xBCB0, 0xBAA8, 0xBCB1, 0xBAA9, 0xBCB2, 0x93C6, 0xBCB3, 0xBAAA, + 0xBCB4, 0xBAAB, 0xBCB5, 0xBAAC, 0xBCB6, 0x93C7, 0xBCB7, 0x93C8, 0xBCB8, 0x93C9, 0xBCB9, 0x93CA, 0xBCBA, 0x93CB, 0xBCBB, 0x93CC, + 0xBCBC, 0xBAAD, 0xBCBD, 0xBAAE, 0xBCBE, 0x93CD, 0xBCBF, 0x93CE, 0xBCC0, 0xBAAF, 0xBCC1, 0x93CF, 0xBCC2, 0x93D0, 0xBCC3, 0x93D1, + 0xBCC4, 0xBAB0, 0xBCC5, 0x93D2, 0xBCC6, 0x93D3, 0xBCC7, 0x93D4, 0xBCC8, 0x93D5, 0xBCC9, 0x93D6, 0xBCCA, 0x93D7, 0xBCCB, 0x93D8, + 0xBCCC, 0x93D9, 0xBCCD, 0xBAB1, 0xBCCE, 0x93DA, 0xBCCF, 0xBAB2, 0xBCD0, 0xBAB3, 0xBCD1, 0xBAB4, 0xBCD2, 0x93DB, 0xBCD3, 0x93DC, + 0xBCD4, 0x93DD, 0xBCD5, 0xBAB5, 0xBCD6, 0x93DE, 0xBCD7, 0x93DF, 0xBCD8, 0xBAB6, 0xBCD9, 0x93E0, 0xBCDA, 0x93E1, 0xBCDB, 0x93E2, + 0xBCDC, 0xBAB7, 0xBCDD, 0x93E3, 0xBCDE, 0x93E4, 0xBCDF, 0x93E5, 0xBCE0, 0x93E6, 0xBCE1, 0x93E7, 0xBCE2, 0x93E8, 0xBCE3, 0x93E9, + 0xBCE4, 0x93EA, 0xBCE5, 0x93EB, 0xBCE6, 0x93EC, 0xBCE7, 0x93ED, 0xBCE8, 0x93EE, 0xBCE9, 0x93EF, 0xBCEA, 0x93F0, 0xBCEB, 0x93F1, + 0xBCEC, 0x93F2, 0xBCED, 0x93F3, 0xBCEE, 0x93F4, 0xBCEF, 0x93F5, 0xBCF0, 0x93F6, 0xBCF1, 0x93F7, 0xBCF2, 0x93F8, 0xBCF3, 0x93F9, + 0xBCF4, 0xBAB8, 0xBCF5, 0xBAB9, 0xBCF6, 0xBABA, 0xBCF7, 0x93FA, 0xBCF8, 0xBABB, 0xBCF9, 0x93FB, 0xBCFA, 0x93FC, 0xBCFB, 0x93FD, + 0xBCFC, 0xBABC, 0xBCFD, 0x93FE, 0xBCFE, 0x9441, 0xBCFF, 0x9442, 0xBD00, 0x9443, 0xBD01, 0x9444, 0xBD02, 0x9445, 0xBD03, 0x9446, + 0xBD04, 0xBABD, 0xBD05, 0xBABE, 0xBD06, 0x9447, 0xBD07, 0xBABF, 0xBD08, 0x9448, 0xBD09, 0xBAC0, 0xBD0A, 0x9449, 0xBD0B, 0x944A, + 0xBD0C, 0x944B, 0xBD0D, 0x944C, 0xBD0E, 0x944D, 0xBD0F, 0x944E, 0xBD10, 0xBAC1, 0xBD11, 0x944F, 0xBD12, 0x9450, 0xBD13, 0x9451, + 0xBD14, 0xBAC2, 0xBD15, 0x9452, 0xBD16, 0x9453, 0xBD17, 0x9454, 0xBD18, 0x9455, 0xBD19, 0x9456, 0xBD1A, 0x9457, 0xBD1B, 0x9458, + 0xBD1C, 0x9459, 0xBD1D, 0x945A, 0xBD1E, 0x9461, 0xBD1F, 0x9462, 0xBD20, 0x9463, 0xBD21, 0x9464, 0xBD22, 0x9465, 0xBD23, 0x9466, + 0xBD24, 0xBAC3, 0xBD25, 0x9467, 0xBD26, 0x9468, 0xBD27, 0x9469, 0xBD28, 0x946A, 0xBD29, 0x946B, 0xBD2A, 0x946C, 0xBD2B, 0x946D, + 0xBD2C, 0xBAC4, 0xBD2D, 0x946E, 0xBD2E, 0x946F, 0xBD2F, 0x9470, 0xBD30, 0x9471, 0xBD31, 0x9472, 0xBD32, 0x9473, 0xBD33, 0x9474, + 0xBD34, 0x9475, 0xBD35, 0x9476, 0xBD36, 0x9477, 0xBD37, 0x9478, 0xBD38, 0x9479, 0xBD39, 0x947A, 0xBD3A, 0x9481, 0xBD3B, 0x9482, + 0xBD3C, 0x9483, 0xBD3D, 0x9484, 0xBD3E, 0x9485, 0xBD3F, 0x9486, 0xBD40, 0xBAC5, 0xBD41, 0x9487, 0xBD42, 0x9488, 0xBD43, 0x9489, + 0xBD44, 0x948A, 0xBD45, 0x948B, 0xBD46, 0x948C, 0xBD47, 0x948D, 0xBD48, 0xBAC6, 0xBD49, 0xBAC7, 0xBD4A, 0x948E, 0xBD4B, 0x948F, + 0xBD4C, 0xBAC8, 0xBD4D, 0x9490, 0xBD4E, 0x9491, 0xBD4F, 0x9492, 0xBD50, 0xBAC9, 0xBD51, 0x9493, 0xBD52, 0x9494, 0xBD53, 0x9495, + 0xBD54, 0x9496, 0xBD55, 0x9497, 0xBD56, 0x9498, 0xBD57, 0x9499, 0xBD58, 0xBACA, 0xBD59, 0xBACB, 0xBD5A, 0x949A, 0xBD5B, 0x949B, + 0xBD5C, 0x949C, 0xBD5D, 0x949D, 0xBD5E, 0x949E, 0xBD5F, 0x949F, 0xBD60, 0x94A0, 0xBD61, 0x94A1, 0xBD62, 0x94A2, 0xBD63, 0x94A3, + 0xBD64, 0xBACC, 0xBD65, 0x94A4, 0xBD66, 0x94A5, 0xBD67, 0x94A6, 0xBD68, 0xBACD, 0xBD69, 0x94A7, 0xBD6A, 0x94A8, 0xBD6B, 0x94A9, + 0xBD6C, 0x94AA, 0xBD6D, 0x94AB, 0xBD6E, 0x94AC, 0xBD6F, 0x94AD, 0xBD70, 0x94AE, 0xBD71, 0x94AF, 0xBD72, 0x94B0, 0xBD73, 0x94B1, + 0xBD74, 0x94B2, 0xBD75, 0x94B3, 0xBD76, 0x94B4, 0xBD77, 0x94B5, 0xBD78, 0x94B6, 0xBD79, 0x94B7, 0xBD7A, 0x94B8, 0xBD7B, 0x94B9, + 0xBD7C, 0x94BA, 0xBD7D, 0x94BB, 0xBD7E, 0x94BC, 0xBD7F, 0x94BD, 0xBD80, 0xBACE, 0xBD81, 0xBACF, 0xBD82, 0x94BE, 0xBD83, 0x94BF, + 0xBD84, 0xBAD0, 0xBD85, 0x94C0, 0xBD86, 0x94C1, 0xBD87, 0xBAD1, 0xBD88, 0xBAD2, 0xBD89, 0xBAD3, 0xBD8A, 0xBAD4, 0xBD8B, 0x94C2, + 0xBD8C, 0x94C3, 0xBD8D, 0x94C4, 0xBD8E, 0x94C5, 0xBD8F, 0x94C6, 0xBD90, 0xBAD5, 0xBD91, 0xBAD6, 0xBD92, 0x94C7, 0xBD93, 0xBAD7, + 0xBD94, 0x94C8, 0xBD95, 0xBAD8, 0xBD96, 0x94C9, 0xBD97, 0x94CA, 0xBD98, 0x94CB, 0xBD99, 0xBAD9, 0xBD9A, 0xBADA, 0xBD9B, 0x94CC, + 0xBD9C, 0xBADB, 0xBD9D, 0x94CD, 0xBD9E, 0x94CE, 0xBD9F, 0x94CF, 0xBDA0, 0x94D0, 0xBDA1, 0x94D1, 0xBDA2, 0x94D2, 0xBDA3, 0x94D3, + 0xBDA4, 0xBADC, 0xBDA5, 0x94D4, 0xBDA6, 0x94D5, 0xBDA7, 0x94D6, 0xBDA8, 0x94D7, 0xBDA9, 0x94D8, 0xBDAA, 0x94D9, 0xBDAB, 0x94DA, + 0xBDAC, 0x94DB, 0xBDAD, 0x94DC, 0xBDAE, 0x94DD, 0xBDAF, 0x94DE, 0xBDB0, 0xBADD, 0xBDB1, 0x94DF, 0xBDB2, 0x94E0, 0xBDB3, 0x94E1, + 0xBDB4, 0x94E2, 0xBDB5, 0x94E3, 0xBDB6, 0x94E4, 0xBDB7, 0x94E5, 0xBDB8, 0xBADE, 0xBDB9, 0x94E6, 0xBDBA, 0x94E7, 0xBDBB, 0x94E8, + 0xBDBC, 0x94E9, 0xBDBD, 0x94EA, 0xBDBE, 0x94EB, 0xBDBF, 0x94EC, 0xBDC0, 0x94ED, 0xBDC1, 0x94EE, 0xBDC2, 0x94EF, 0xBDC3, 0x94F0, + 0xBDC4, 0x94F1, 0xBDC5, 0x94F2, 0xBDC6, 0x94F3, 0xBDC7, 0x94F4, 0xBDC8, 0x94F5, 0xBDC9, 0x94F6, 0xBDCA, 0x94F7, 0xBDCB, 0x94F8, + 0xBDCC, 0x94F9, 0xBDCD, 0x94FA, 0xBDCE, 0x94FB, 0xBDCF, 0x94FC, 0xBDD0, 0x94FD, 0xBDD1, 0x94FE, 0xBDD2, 0x9541, 0xBDD3, 0x9542, + 0xBDD4, 0xBADF, 0xBDD5, 0xBAE0, 0xBDD6, 0x9543, 0xBDD7, 0x9544, 0xBDD8, 0xBAE1, 0xBDD9, 0x9545, 0xBDDA, 0x9546, 0xBDDB, 0x9547, + 0xBDDC, 0xBAE2, 0xBDDD, 0x9548, 0xBDDE, 0x9549, 0xBDDF, 0x954A, 0xBDE0, 0x954B, 0xBDE1, 0x954C, 0xBDE2, 0x954D, 0xBDE3, 0x954E, + 0xBDE4, 0x954F, 0xBDE5, 0x9550, 0xBDE6, 0x9551, 0xBDE7, 0x9552, 0xBDE8, 0x9553, 0xBDE9, 0xBAE3, 0xBDEA, 0x9554, 0xBDEB, 0x9555, + 0xBDEC, 0x9556, 0xBDED, 0x9557, 0xBDEE, 0x9558, 0xBDEF, 0x9559, 0xBDF0, 0xBAE4, 0xBDF1, 0x955A, 0xBDF2, 0x9561, 0xBDF3, 0x9562, + 0xBDF4, 0xBAE5, 0xBDF5, 0x9563, 0xBDF6, 0x9564, 0xBDF7, 0x9565, 0xBDF8, 0xBAE6, 0xBDF9, 0x9566, 0xBDFA, 0x9567, 0xBDFB, 0x9568, + 0xBDFC, 0x9569, 0xBDFD, 0x956A, 0xBDFE, 0x956B, 0xBDFF, 0x956C, 0xBE00, 0xBAE7, 0xBE01, 0x956D, 0xBE02, 0x956E, 0xBE03, 0xBAE8, + 0xBE04, 0x956F, 0xBE05, 0xBAE9, 0xBE06, 0x9570, 0xBE07, 0x9571, 0xBE08, 0x9572, 0xBE09, 0x9573, 0xBE0A, 0x9574, 0xBE0B, 0x9575, + 0xBE0C, 0xBAEA, 0xBE0D, 0xBAEB, 0xBE0E, 0x9576, 0xBE0F, 0x9577, 0xBE10, 0xBAEC, 0xBE11, 0x9578, 0xBE12, 0x9579, 0xBE13, 0x957A, + 0xBE14, 0xBAED, 0xBE15, 0x9581, 0xBE16, 0x9582, 0xBE17, 0x9583, 0xBE18, 0x9584, 0xBE19, 0x9585, 0xBE1A, 0x9586, 0xBE1B, 0x9587, + 0xBE1C, 0xBAEE, 0xBE1D, 0xBAEF, 0xBE1E, 0x9588, 0xBE1F, 0xBAF0, 0xBE20, 0x9589, 0xBE21, 0x958A, 0xBE22, 0x958B, 0xBE23, 0x958C, + 0xBE24, 0x958D, 0xBE25, 0x958E, 0xBE26, 0x958F, 0xBE27, 0x9590, 0xBE28, 0x9591, 0xBE29, 0x9592, 0xBE2A, 0x9593, 0xBE2B, 0x9594, + 0xBE2C, 0x9595, 0xBE2D, 0x9596, 0xBE2E, 0x9597, 0xBE2F, 0x9598, 0xBE30, 0x9599, 0xBE31, 0x959A, 0xBE32, 0x959B, 0xBE33, 0x959C, + 0xBE34, 0x959D, 0xBE35, 0x959E, 0xBE36, 0x959F, 0xBE37, 0x95A0, 0xBE38, 0x95A1, 0xBE39, 0x95A2, 0xBE3A, 0x95A3, 0xBE3B, 0x95A4, + 0xBE3C, 0x95A5, 0xBE3D, 0x95A6, 0xBE3E, 0x95A7, 0xBE3F, 0x95A8, 0xBE40, 0x95A9, 0xBE41, 0x95AA, 0xBE42, 0x95AB, 0xBE43, 0x95AC, + 0xBE44, 0xBAF1, 0xBE45, 0xBAF2, 0xBE46, 0x95AD, 0xBE47, 0x95AE, 0xBE48, 0xBAF3, 0xBE49, 0x95AF, 0xBE4A, 0x95B0, 0xBE4B, 0x95B1, + 0xBE4C, 0xBAF4, 0xBE4D, 0x95B2, 0xBE4E, 0xBAF5, 0xBE4F, 0x95B3, 0xBE50, 0x95B4, 0xBE51, 0x95B5, 0xBE52, 0x95B6, 0xBE53, 0x95B7, + 0xBE54, 0xBAF6, 0xBE55, 0xBAF7, 0xBE56, 0x95B8, 0xBE57, 0xBAF8, 0xBE58, 0x95B9, 0xBE59, 0xBAF9, 0xBE5A, 0xBAFA, 0xBE5B, 0xBAFB, + 0xBE5C, 0x95BA, 0xBE5D, 0x95BB, 0xBE5E, 0x95BC, 0xBE5F, 0x95BD, 0xBE60, 0xBAFC, 0xBE61, 0xBAFD, 0xBE62, 0x95BE, 0xBE63, 0x95BF, + 0xBE64, 0xBAFE, 0xBE65, 0x95C0, 0xBE66, 0x95C1, 0xBE67, 0x95C2, 0xBE68, 0xBBA1, 0xBE69, 0x95C3, 0xBE6A, 0xBBA2, 0xBE6B, 0x95C4, + 0xBE6C, 0x95C5, 0xBE6D, 0x95C6, 0xBE6E, 0x95C7, 0xBE6F, 0x95C8, 0xBE70, 0xBBA3, 0xBE71, 0xBBA4, 0xBE72, 0x95C9, 0xBE73, 0xBBA5, + 0xBE74, 0xBBA6, 0xBE75, 0xBBA7, 0xBE76, 0x95CA, 0xBE77, 0x95CB, 0xBE78, 0x95CC, 0xBE79, 0x95CD, 0xBE7A, 0x95CE, 0xBE7B, 0xBBA8, + 0xBE7C, 0xBBA9, 0xBE7D, 0xBBAA, 0xBE7E, 0x95CF, 0xBE7F, 0x95D0, 0xBE80, 0xBBAB, 0xBE81, 0x95D1, 0xBE82, 0x95D2, 0xBE83, 0x95D3, + 0xBE84, 0xBBAC, 0xBE85, 0x95D4, 0xBE86, 0x95D5, 0xBE87, 0x95D6, 0xBE88, 0x95D7, 0xBE89, 0x95D8, 0xBE8A, 0x95D9, 0xBE8B, 0x95DA, + 0xBE8C, 0xBBAD, 0xBE8D, 0xBBAE, 0xBE8E, 0x95DB, 0xBE8F, 0xBBAF, 0xBE90, 0xBBB0, 0xBE91, 0xBBB1, 0xBE92, 0x95DC, 0xBE93, 0x95DD, + 0xBE94, 0x95DE, 0xBE95, 0x95DF, 0xBE96, 0x95E0, 0xBE97, 0x95E1, 0xBE98, 0xBBB2, 0xBE99, 0xBBB3, 0xBE9A, 0x95E2, 0xBE9B, 0x95E3, + 0xBE9C, 0x95E4, 0xBE9D, 0x95E5, 0xBE9E, 0x95E6, 0xBE9F, 0x95E7, 0xBEA0, 0x95E8, 0xBEA1, 0x95E9, 0xBEA2, 0x95EA, 0xBEA3, 0x95EB, + 0xBEA4, 0x95EC, 0xBEA5, 0x95ED, 0xBEA6, 0x95EE, 0xBEA7, 0x95EF, 0xBEA8, 0xBBB4, 0xBEA9, 0x95F0, 0xBEAA, 0x95F1, 0xBEAB, 0x95F2, + 0xBEAC, 0x95F3, 0xBEAD, 0x95F4, 0xBEAE, 0x95F5, 0xBEAF, 0x95F6, 0xBEB0, 0x95F7, 0xBEB1, 0x95F8, 0xBEB2, 0x95F9, 0xBEB3, 0x95FA, + 0xBEB4, 0x95FB, 0xBEB5, 0x95FC, 0xBEB6, 0x95FD, 0xBEB7, 0x95FE, 0xBEB8, 0x9641, 0xBEB9, 0x9642, 0xBEBA, 0x9643, 0xBEBB, 0x9644, + 0xBEBC, 0x9645, 0xBEBD, 0x9646, 0xBEBE, 0x9647, 0xBEBF, 0x9648, 0xBEC0, 0x9649, 0xBEC1, 0x964A, 0xBEC2, 0x964B, 0xBEC3, 0x964C, + 0xBEC4, 0x964D, 0xBEC5, 0x964E, 0xBEC6, 0x964F, 0xBEC7, 0x9650, 0xBEC8, 0x9651, 0xBEC9, 0x9652, 0xBECA, 0x9653, 0xBECB, 0x9654, + 0xBECC, 0x9655, 0xBECD, 0x9656, 0xBECE, 0x9657, 0xBECF, 0x9658, 0xBED0, 0xBBB5, 0xBED1, 0xBBB6, 0xBED2, 0x9659, 0xBED3, 0x965A, + 0xBED4, 0xBBB7, 0xBED5, 0x9661, 0xBED6, 0x9662, 0xBED7, 0xBBB8, 0xBED8, 0xBBB9, 0xBED9, 0x9663, 0xBEDA, 0x9664, 0xBEDB, 0x9665, + 0xBEDC, 0x9666, 0xBEDD, 0x9667, 0xBEDE, 0x9668, 0xBEDF, 0x9669, 0xBEE0, 0xBBBA, 0xBEE1, 0x966A, 0xBEE2, 0x966B, 0xBEE3, 0xBBBB, + 0xBEE4, 0xBBBC, 0xBEE5, 0xBBBD, 0xBEE6, 0x966C, 0xBEE7, 0x966D, 0xBEE8, 0x966E, 0xBEE9, 0x966F, 0xBEEA, 0x9670, 0xBEEB, 0x9671, + 0xBEEC, 0xBBBE, 0xBEED, 0x9672, 0xBEEE, 0x9673, 0xBEEF, 0x9674, 0xBEF0, 0x9675, 0xBEF1, 0x9676, 0xBEF2, 0x9677, 0xBEF3, 0x9678, + 0xBEF4, 0x9679, 0xBEF5, 0x967A, 0xBEF6, 0x9681, 0xBEF7, 0x9682, 0xBEF8, 0x9683, 0xBEF9, 0x9684, 0xBEFA, 0x9685, 0xBEFB, 0x9686, + 0xBEFC, 0x9687, 0xBEFD, 0x9688, 0xBEFE, 0x9689, 0xBEFF, 0x968A, 0xBF00, 0x968B, 0xBF01, 0xBBBF, 0xBF02, 0x968C, 0xBF03, 0x968D, + 0xBF04, 0x968E, 0xBF05, 0x968F, 0xBF06, 0x9690, 0xBF07, 0x9691, 0xBF08, 0xBBC0, 0xBF09, 0xBBC1, 0xBF0A, 0x9692, 0xBF0B, 0x9693, + 0xBF0C, 0x9694, 0xBF0D, 0x9695, 0xBF0E, 0x9696, 0xBF0F, 0x9697, 0xBF10, 0x9698, 0xBF11, 0x9699, 0xBF12, 0x969A, 0xBF13, 0x969B, + 0xBF14, 0x969C, 0xBF15, 0x969D, 0xBF16, 0x969E, 0xBF17, 0x969F, 0xBF18, 0xBBC2, 0xBF19, 0xBBC3, 0xBF1A, 0x96A0, 0xBF1B, 0xBBC4, + 0xBF1C, 0xBBC5, 0xBF1D, 0xBBC6, 0xBF1E, 0x96A1, 0xBF1F, 0x96A2, 0xBF20, 0x96A3, 0xBF21, 0x96A4, 0xBF22, 0x96A5, 0xBF23, 0x96A6, + 0xBF24, 0x96A7, 0xBF25, 0x96A8, 0xBF26, 0x96A9, 0xBF27, 0x96AA, 0xBF28, 0x96AB, 0xBF29, 0x96AC, 0xBF2A, 0x96AD, 0xBF2B, 0x96AE, + 0xBF2C, 0x96AF, 0xBF2D, 0x96B0, 0xBF2E, 0x96B1, 0xBF2F, 0x96B2, 0xBF30, 0x96B3, 0xBF31, 0x96B4, 0xBF32, 0x96B5, 0xBF33, 0x96B6, + 0xBF34, 0x96B7, 0xBF35, 0x96B8, 0xBF36, 0x96B9, 0xBF37, 0x96BA, 0xBF38, 0x96BB, 0xBF39, 0x96BC, 0xBF3A, 0x96BD, 0xBF3B, 0x96BE, + 0xBF3C, 0x96BF, 0xBF3D, 0x96C0, 0xBF3E, 0x96C1, 0xBF3F, 0x96C2, 0xBF40, 0xBBC7, 0xBF41, 0xBBC8, 0xBF42, 0x96C3, 0xBF43, 0x96C4, + 0xBF44, 0xBBC9, 0xBF45, 0x96C5, 0xBF46, 0x96C6, 0xBF47, 0x96C7, 0xBF48, 0xBBCA, 0xBF49, 0x96C8, 0xBF4A, 0x96C9, 0xBF4B, 0x96CA, + 0xBF4C, 0x96CB, 0xBF4D, 0x96CC, 0xBF4E, 0x96CD, 0xBF4F, 0x96CE, 0xBF50, 0xBBCB, 0xBF51, 0xBBCC, 0xBF52, 0x96CF, 0xBF53, 0x96D0, + 0xBF54, 0x96D1, 0xBF55, 0xBBCD, 0xBF56, 0x96D2, 0xBF57, 0x96D3, 0xBF58, 0x96D4, 0xBF59, 0x96D5, 0xBF5A, 0x96D6, 0xBF5B, 0x96D7, + 0xBF5C, 0x96D8, 0xBF5D, 0x96D9, 0xBF5E, 0x96DA, 0xBF5F, 0x96DB, 0xBF60, 0x96DC, 0xBF61, 0x96DD, 0xBF62, 0x96DE, 0xBF63, 0x96DF, + 0xBF64, 0x96E0, 0xBF65, 0x96E1, 0xBF66, 0x96E2, 0xBF67, 0x96E3, 0xBF68, 0x96E4, 0xBF69, 0x96E5, 0xBF6A, 0x96E6, 0xBF6B, 0x96E7, + 0xBF6C, 0x96E8, 0xBF6D, 0x96E9, 0xBF6E, 0x96EA, 0xBF6F, 0x96EB, 0xBF70, 0x96EC, 0xBF71, 0x96ED, 0xBF72, 0x96EE, 0xBF73, 0x96EF, + 0xBF74, 0x96F0, 0xBF75, 0x96F1, 0xBF76, 0x96F2, 0xBF77, 0x96F3, 0xBF78, 0x96F4, 0xBF79, 0x96F5, 0xBF7A, 0x96F6, 0xBF7B, 0x96F7, + 0xBF7C, 0x96F8, 0xBF7D, 0x96F9, 0xBF7E, 0x96FA, 0xBF7F, 0x96FB, 0xBF80, 0x96FC, 0xBF81, 0x96FD, 0xBF82, 0x96FE, 0xBF83, 0x9741, + 0xBF84, 0x9742, 0xBF85, 0x9743, 0xBF86, 0x9744, 0xBF87, 0x9745, 0xBF88, 0x9746, 0xBF89, 0x9747, 0xBF8A, 0x9748, 0xBF8B, 0x9749, + 0xBF8C, 0x974A, 0xBF8D, 0x974B, 0xBF8E, 0x974C, 0xBF8F, 0x974D, 0xBF90, 0x974E, 0xBF91, 0x974F, 0xBF92, 0x9750, 0xBF93, 0x9751, + 0xBF94, 0xBBCE, 0xBF95, 0x9752, 0xBF96, 0x9753, 0xBF97, 0x9754, 0xBF98, 0x9755, 0xBF99, 0x9756, 0xBF9A, 0x9757, 0xBF9B, 0x9758, + 0xBF9C, 0x9759, 0xBF9D, 0x975A, 0xBF9E, 0x9761, 0xBF9F, 0x9762, 0xBFA0, 0x9763, 0xBFA1, 0x9764, 0xBFA2, 0x9765, 0xBFA3, 0x9766, + 0xBFA4, 0x9767, 0xBFA5, 0x9768, 0xBFA6, 0x9769, 0xBFA7, 0x976A, 0xBFA8, 0x976B, 0xBFA9, 0x976C, 0xBFAA, 0x976D, 0xBFAB, 0x976E, + 0xBFAC, 0x976F, 0xBFAD, 0x9770, 0xBFAE, 0x9771, 0xBFAF, 0x9772, 0xBFB0, 0xBBCF, 0xBFB1, 0x9773, 0xBFB2, 0x9774, 0xBFB3, 0x9775, + 0xBFB4, 0x9776, 0xBFB5, 0x9777, 0xBFB6, 0x9778, 0xBFB7, 0x9779, 0xBFB8, 0x977A, 0xBFB9, 0x9781, 0xBFBA, 0x9782, 0xBFBB, 0x9783, + 0xBFBC, 0x9784, 0xBFBD, 0x9785, 0xBFBE, 0x9786, 0xBFBF, 0x9787, 0xBFC0, 0x9788, 0xBFC1, 0x9789, 0xBFC2, 0x978A, 0xBFC3, 0x978B, + 0xBFC4, 0x978C, 0xBFC5, 0xBBD0, 0xBFC6, 0x978D, 0xBFC7, 0x978E, 0xBFC8, 0x978F, 0xBFC9, 0x9790, 0xBFCA, 0x9791, 0xBFCB, 0x9792, + 0xBFCC, 0xBBD1, 0xBFCD, 0xBBD2, 0xBFCE, 0x9793, 0xBFCF, 0x9794, 0xBFD0, 0xBBD3, 0xBFD1, 0x9795, 0xBFD2, 0x9796, 0xBFD3, 0x9797, + 0xBFD4, 0xBBD4, 0xBFD5, 0x9798, 0xBFD6, 0x9799, 0xBFD7, 0x979A, 0xBFD8, 0x979B, 0xBFD9, 0x979C, 0xBFDA, 0x979D, 0xBFDB, 0x979E, + 0xBFDC, 0xBBD5, 0xBFDD, 0x979F, 0xBFDE, 0x97A0, 0xBFDF, 0xBBD6, 0xBFE0, 0x97A1, 0xBFE1, 0xBBD7, 0xBFE2, 0x97A2, 0xBFE3, 0x97A3, + 0xBFE4, 0x97A4, 0xBFE5, 0x97A5, 0xBFE6, 0x97A6, 0xBFE7, 0x97A7, 0xBFE8, 0x97A8, 0xBFE9, 0x97A9, 0xBFEA, 0x97AA, 0xBFEB, 0x97AB, + 0xBFEC, 0x97AC, 0xBFED, 0x97AD, 0xBFEE, 0x97AE, 0xBFEF, 0x97AF, 0xBFF0, 0x97B0, 0xBFF1, 0x97B1, 0xBFF2, 0x97B2, 0xBFF3, 0x97B3, + 0xBFF4, 0x97B4, 0xBFF5, 0x97B5, 0xBFF6, 0x97B6, 0xBFF7, 0x97B7, 0xBFF8, 0x97B8, 0xBFF9, 0x97B9, 0xBFFA, 0x97BA, 0xBFFB, 0x97BB, + 0xBFFC, 0x97BC, 0xBFFD, 0x97BD, 0xBFFE, 0x97BE, 0xBFFF, 0x97BF, 0xC000, 0x97C0, 0xC001, 0x97C1, 0xC002, 0x97C2, 0xC003, 0x97C3, + 0xC004, 0x97C4, 0xC005, 0x97C5, 0xC006, 0x97C6, 0xC007, 0x97C7, 0xC008, 0x97C8, 0xC009, 0x97C9, 0xC00A, 0x97CA, 0xC00B, 0x97CB, + 0xC00C, 0x97CC, 0xC00D, 0x97CD, 0xC00E, 0x97CE, 0xC00F, 0x97CF, 0xC010, 0x97D0, 0xC011, 0x97D1, 0xC012, 0x97D2, 0xC013, 0x97D3, + 0xC014, 0x97D4, 0xC015, 0x97D5, 0xC016, 0x97D6, 0xC017, 0x97D7, 0xC018, 0x97D8, 0xC019, 0x97D9, 0xC01A, 0x97DA, 0xC01B, 0x97DB, + 0xC01C, 0x97DC, 0xC01D, 0x97DD, 0xC01E, 0x97DE, 0xC01F, 0x97DF, 0xC020, 0x97E0, 0xC021, 0x97E1, 0xC022, 0x97E2, 0xC023, 0x97E3, + 0xC024, 0x97E4, 0xC025, 0x97E5, 0xC026, 0x97E6, 0xC027, 0x97E7, 0xC028, 0x97E8, 0xC029, 0x97E9, 0xC02A, 0x97EA, 0xC02B, 0x97EB, + 0xC02C, 0x97EC, 0xC02D, 0x97ED, 0xC02E, 0x97EE, 0xC02F, 0x97EF, 0xC030, 0x97F0, 0xC031, 0x97F1, 0xC032, 0x97F2, 0xC033, 0x97F3, + 0xC034, 0x97F4, 0xC035, 0x97F5, 0xC036, 0x97F6, 0xC037, 0x97F7, 0xC038, 0x97F8, 0xC039, 0x97F9, 0xC03A, 0x97FA, 0xC03B, 0x97FB, + 0xC03C, 0xBBD8, 0xC03D, 0x97FC, 0xC03E, 0x97FD, 0xC03F, 0x97FE, 0xC040, 0x9841, 0xC041, 0x9842, 0xC042, 0x9843, 0xC043, 0x9844, + 0xC044, 0x9845, 0xC045, 0x9846, 0xC046, 0x9847, 0xC047, 0x9848, 0xC048, 0x9849, 0xC049, 0x984A, 0xC04A, 0x984B, 0xC04B, 0x984C, + 0xC04C, 0x984D, 0xC04D, 0x984E, 0xC04E, 0x984F, 0xC04F, 0x9850, 0xC050, 0x9851, 0xC051, 0xBBD9, 0xC052, 0x9852, 0xC053, 0x9853, + 0xC054, 0x9854, 0xC055, 0x9855, 0xC056, 0x9856, 0xC057, 0x9857, 0xC058, 0xBBDA, 0xC059, 0x9858, 0xC05A, 0x9859, 0xC05B, 0x985A, + 0xC05C, 0xBBDB, 0xC05D, 0x9861, 0xC05E, 0x9862, 0xC05F, 0x9863, 0xC060, 0xBBDC, 0xC061, 0x9864, 0xC062, 0x9865, 0xC063, 0x9866, + 0xC064, 0x9867, 0xC065, 0x9868, 0xC066, 0x9869, 0xC067, 0x986A, 0xC068, 0xBBDD, 0xC069, 0xBBDE, 0xC06A, 0x986B, 0xC06B, 0x986C, + 0xC06C, 0x986D, 0xC06D, 0x986E, 0xC06E, 0x986F, 0xC06F, 0x9870, 0xC070, 0x9871, 0xC071, 0x9872, 0xC072, 0x9873, 0xC073, 0x9874, + 0xC074, 0x9875, 0xC075, 0x9876, 0xC076, 0x9877, 0xC077, 0x9878, 0xC078, 0x9879, 0xC079, 0x987A, 0xC07A, 0x9881, 0xC07B, 0x9882, + 0xC07C, 0x9883, 0xC07D, 0x9884, 0xC07E, 0x9885, 0xC07F, 0x9886, 0xC080, 0x9887, 0xC081, 0x9888, 0xC082, 0x9889, 0xC083, 0x988A, + 0xC084, 0x988B, 0xC085, 0x988C, 0xC086, 0x988D, 0xC087, 0x988E, 0xC088, 0x988F, 0xC089, 0x9890, 0xC08A, 0x9891, 0xC08B, 0x9892, + 0xC08C, 0x9893, 0xC08D, 0x9894, 0xC08E, 0x9895, 0xC08F, 0x9896, 0xC090, 0xBBDF, 0xC091, 0xBBE0, 0xC092, 0x9897, 0xC093, 0x9898, + 0xC094, 0xBBE1, 0xC095, 0x9899, 0xC096, 0x989A, 0xC097, 0x989B, 0xC098, 0xBBE2, 0xC099, 0x989C, 0xC09A, 0x989D, 0xC09B, 0x989E, + 0xC09C, 0x989F, 0xC09D, 0x98A0, 0xC09E, 0x98A1, 0xC09F, 0x98A2, 0xC0A0, 0xBBE3, 0xC0A1, 0xBBE4, 0xC0A2, 0x98A3, 0xC0A3, 0xBBE5, + 0xC0A4, 0x98A4, 0xC0A5, 0xBBE6, 0xC0A6, 0x98A5, 0xC0A7, 0x98A6, 0xC0A8, 0x98A7, 0xC0A9, 0x98A8, 0xC0AA, 0x98A9, 0xC0AB, 0x98AA, + 0xC0AC, 0xBBE7, 0xC0AD, 0xBBE8, 0xC0AE, 0x98AB, 0xC0AF, 0xBBE9, 0xC0B0, 0xBBEA, 0xC0B1, 0x98AC, 0xC0B2, 0x98AD, 0xC0B3, 0xBBEB, + 0xC0B4, 0xBBEC, 0xC0B5, 0xBBED, 0xC0B6, 0xBBEE, 0xC0B7, 0x98AE, 0xC0B8, 0x98AF, 0xC0B9, 0x98B0, 0xC0BA, 0x98B1, 0xC0BB, 0x98B2, + 0xC0BC, 0xBBEF, 0xC0BD, 0xBBF0, 0xC0BE, 0x98B3, 0xC0BF, 0xBBF1, 0xC0C0, 0xBBF2, 0xC0C1, 0xBBF3, 0xC0C2, 0x98B4, 0xC0C3, 0x98B5, + 0xC0C4, 0x98B6, 0xC0C5, 0xBBF4, 0xC0C6, 0x98B7, 0xC0C7, 0x98B8, 0xC0C8, 0xBBF5, 0xC0C9, 0xBBF6, 0xC0CA, 0x98B9, 0xC0CB, 0x98BA, + 0xC0CC, 0xBBF7, 0xC0CD, 0x98BB, 0xC0CE, 0x98BC, 0xC0CF, 0x98BD, 0xC0D0, 0xBBF8, 0xC0D1, 0x98BE, 0xC0D2, 0x98BF, 0xC0D3, 0x98C0, + 0xC0D4, 0x98C1, 0xC0D5, 0x98C2, 0xC0D6, 0x98C3, 0xC0D7, 0x98C4, 0xC0D8, 0xBBF9, 0xC0D9, 0xBBFA, 0xC0DA, 0x98C5, 0xC0DB, 0xBBFB, + 0xC0DC, 0xBBFC, 0xC0DD, 0xBBFD, 0xC0DE, 0x98C6, 0xC0DF, 0x98C7, 0xC0E0, 0x98C8, 0xC0E1, 0x98C9, 0xC0E2, 0x98CA, 0xC0E3, 0x98CB, + 0xC0E4, 0xBBFE, 0xC0E5, 0xBCA1, 0xC0E6, 0x98CC, 0xC0E7, 0x98CD, 0xC0E8, 0xBCA2, 0xC0E9, 0x98CE, 0xC0EA, 0x98CF, 0xC0EB, 0x98D0, + 0xC0EC, 0xBCA3, 0xC0ED, 0x98D1, 0xC0EE, 0x98D2, 0xC0EF, 0x98D3, 0xC0F0, 0x98D4, 0xC0F1, 0x98D5, 0xC0F2, 0x98D6, 0xC0F3, 0x98D7, + 0xC0F4, 0xBCA4, 0xC0F5, 0xBCA5, 0xC0F6, 0x98D8, 0xC0F7, 0xBCA6, 0xC0F8, 0x98D9, 0xC0F9, 0xBCA7, 0xC0FA, 0x98DA, 0xC0FB, 0x98DB, + 0xC0FC, 0x98DC, 0xC0FD, 0x98DD, 0xC0FE, 0x98DE, 0xC0FF, 0x98DF, 0xC100, 0xBCA8, 0xC101, 0x98E0, 0xC102, 0x98E1, 0xC103, 0x98E2, + 0xC104, 0xBCA9, 0xC105, 0x98E3, 0xC106, 0x98E4, 0xC107, 0x98E5, 0xC108, 0xBCAA, 0xC109, 0x98E6, 0xC10A, 0x98E7, 0xC10B, 0x98E8, + 0xC10C, 0x98E9, 0xC10D, 0x98EA, 0xC10E, 0x98EB, 0xC10F, 0x98EC, 0xC110, 0xBCAB, 0xC111, 0x98ED, 0xC112, 0x98EE, 0xC113, 0x98EF, + 0xC114, 0x98F0, 0xC115, 0xBCAC, 0xC116, 0x98F1, 0xC117, 0x98F2, 0xC118, 0x98F3, 0xC119, 0x98F4, 0xC11A, 0x98F5, 0xC11B, 0x98F6, + 0xC11C, 0xBCAD, 0xC11D, 0xBCAE, 0xC11E, 0xBCAF, 0xC11F, 0xBCB0, 0xC120, 0xBCB1, 0xC121, 0x98F7, 0xC122, 0x98F8, 0xC123, 0xBCB2, + 0xC124, 0xBCB3, 0xC125, 0x98F9, 0xC126, 0xBCB4, 0xC127, 0xBCB5, 0xC128, 0x98FA, 0xC129, 0x98FB, 0xC12A, 0x98FC, 0xC12B, 0x98FD, + 0xC12C, 0xBCB6, 0xC12D, 0xBCB7, 0xC12E, 0x98FE, 0xC12F, 0xBCB8, 0xC130, 0xBCB9, 0xC131, 0xBCBA, 0xC132, 0x9941, 0xC133, 0x9942, + 0xC134, 0x9943, 0xC135, 0x9944, 0xC136, 0xBCBB, 0xC137, 0x9945, 0xC138, 0xBCBC, 0xC139, 0xBCBD, 0xC13A, 0x9946, 0xC13B, 0x9947, + 0xC13C, 0xBCBE, 0xC13D, 0x9948, 0xC13E, 0x9949, 0xC13F, 0x994A, 0xC140, 0xBCBF, 0xC141, 0x994B, 0xC142, 0x994C, 0xC143, 0x994D, + 0xC144, 0x994E, 0xC145, 0x994F, 0xC146, 0x9950, 0xC147, 0x9951, 0xC148, 0xBCC0, 0xC149, 0xBCC1, 0xC14A, 0x9952, 0xC14B, 0xBCC2, + 0xC14C, 0xBCC3, 0xC14D, 0xBCC4, 0xC14E, 0x9953, 0xC14F, 0x9954, 0xC150, 0x9955, 0xC151, 0x9956, 0xC152, 0x9957, 0xC153, 0x9958, + 0xC154, 0xBCC5, 0xC155, 0xBCC6, 0xC156, 0x9959, 0xC157, 0x995A, 0xC158, 0xBCC7, 0xC159, 0x9961, 0xC15A, 0x9962, 0xC15B, 0x9963, + 0xC15C, 0xBCC8, 0xC15D, 0x9964, 0xC15E, 0x9965, 0xC15F, 0x9966, 0xC160, 0x9967, 0xC161, 0x9968, 0xC162, 0x9969, 0xC163, 0x996A, + 0xC164, 0xBCC9, 0xC165, 0xBCCA, 0xC166, 0x996B, 0xC167, 0xBCCB, 0xC168, 0xBCCC, 0xC169, 0xBCCD, 0xC16A, 0x996C, 0xC16B, 0x996D, + 0xC16C, 0x996E, 0xC16D, 0x996F, 0xC16E, 0x9970, 0xC16F, 0x9971, 0xC170, 0xBCCE, 0xC171, 0x9972, 0xC172, 0x9973, 0xC173, 0x9974, + 0xC174, 0xBCCF, 0xC175, 0x9975, 0xC176, 0x9976, 0xC177, 0x9977, 0xC178, 0xBCD0, 0xC179, 0x9978, 0xC17A, 0x9979, 0xC17B, 0x997A, + 0xC17C, 0x9981, 0xC17D, 0x9982, 0xC17E, 0x9983, 0xC17F, 0x9984, 0xC180, 0x9985, 0xC181, 0x9986, 0xC182, 0x9987, 0xC183, 0x9988, + 0xC184, 0x9989, 0xC185, 0xBCD1, 0xC186, 0x998A, 0xC187, 0x998B, 0xC188, 0x998C, 0xC189, 0x998D, 0xC18A, 0x998E, 0xC18B, 0x998F, + 0xC18C, 0xBCD2, 0xC18D, 0xBCD3, 0xC18E, 0xBCD4, 0xC18F, 0x9990, 0xC190, 0xBCD5, 0xC191, 0x9991, 0xC192, 0x9992, 0xC193, 0x9993, + 0xC194, 0xBCD6, 0xC195, 0x9994, 0xC196, 0xBCD7, 0xC197, 0x9995, 0xC198, 0x9996, 0xC199, 0x9997, 0xC19A, 0x9998, 0xC19B, 0x9999, + 0xC19C, 0xBCD8, 0xC19D, 0xBCD9, 0xC19E, 0x999A, 0xC19F, 0xBCDA, 0xC1A0, 0x999B, 0xC1A1, 0xBCDB, 0xC1A2, 0x999C, 0xC1A3, 0x999D, + 0xC1A4, 0x999E, 0xC1A5, 0xBCDC, 0xC1A6, 0x999F, 0xC1A7, 0x99A0, 0xC1A8, 0xBCDD, 0xC1A9, 0xBCDE, 0xC1AA, 0x99A1, 0xC1AB, 0x99A2, + 0xC1AC, 0xBCDF, 0xC1AD, 0x99A3, 0xC1AE, 0x99A4, 0xC1AF, 0x99A5, 0xC1B0, 0xBCE0, 0xC1B1, 0x99A6, 0xC1B2, 0x99A7, 0xC1B3, 0x99A8, + 0xC1B4, 0x99A9, 0xC1B5, 0x99AA, 0xC1B6, 0x99AB, 0xC1B7, 0x99AC, 0xC1B8, 0x99AD, 0xC1B9, 0x99AE, 0xC1BA, 0x99AF, 0xC1BB, 0x99B0, + 0xC1BC, 0x99B1, 0xC1BD, 0xBCE1, 0xC1BE, 0x99B2, 0xC1BF, 0x99B3, 0xC1C0, 0x99B4, 0xC1C1, 0x99B5, 0xC1C2, 0x99B6, 0xC1C3, 0x99B7, + 0xC1C4, 0xBCE2, 0xC1C5, 0x99B8, 0xC1C6, 0x99B9, 0xC1C7, 0x99BA, 0xC1C8, 0xBCE3, 0xC1C9, 0x99BB, 0xC1CA, 0x99BC, 0xC1CB, 0x99BD, + 0xC1CC, 0xBCE4, 0xC1CD, 0x99BE, 0xC1CE, 0x99BF, 0xC1CF, 0x99C0, 0xC1D0, 0x99C1, 0xC1D1, 0x99C2, 0xC1D2, 0x99C3, 0xC1D3, 0x99C4, + 0xC1D4, 0xBCE5, 0xC1D5, 0x99C5, 0xC1D6, 0x99C6, 0xC1D7, 0xBCE6, 0xC1D8, 0xBCE7, 0xC1D9, 0x99C7, 0xC1DA, 0x99C8, 0xC1DB, 0x99C9, + 0xC1DC, 0x99CA, 0xC1DD, 0x99CB, 0xC1DE, 0x99CC, 0xC1DF, 0x99CD, 0xC1E0, 0xBCE8, 0xC1E1, 0x99CE, 0xC1E2, 0x99CF, 0xC1E3, 0x99D0, + 0xC1E4, 0xBCE9, 0xC1E5, 0x99D1, 0xC1E6, 0x99D2, 0xC1E7, 0x99D3, 0xC1E8, 0xBCEA, 0xC1E9, 0x99D4, 0xC1EA, 0x99D5, 0xC1EB, 0x99D6, + 0xC1EC, 0x99D7, 0xC1ED, 0x99D8, 0xC1EE, 0x99D9, 0xC1EF, 0x99DA, 0xC1F0, 0xBCEB, 0xC1F1, 0xBCEC, 0xC1F2, 0x99DB, 0xC1F3, 0xBCED, + 0xC1F4, 0x99DC, 0xC1F5, 0x99DD, 0xC1F6, 0x99DE, 0xC1F7, 0x99DF, 0xC1F8, 0x99E0, 0xC1F9, 0x99E1, 0xC1FA, 0x99E2, 0xC1FB, 0x99E3, + 0xC1FC, 0xBCEE, 0xC1FD, 0xBCEF, 0xC1FE, 0x99E4, 0xC1FF, 0x99E5, 0xC200, 0xBCF0, 0xC201, 0x99E6, 0xC202, 0x99E7, 0xC203, 0x99E8, + 0xC204, 0xBCF1, 0xC205, 0x99E9, 0xC206, 0x99EA, 0xC207, 0x99EB, 0xC208, 0x99EC, 0xC209, 0x99ED, 0xC20A, 0x99EE, 0xC20B, 0x99EF, + 0xC20C, 0xBCF2, 0xC20D, 0xBCF3, 0xC20E, 0x99F0, 0xC20F, 0xBCF4, 0xC210, 0x99F1, 0xC211, 0xBCF5, 0xC212, 0x99F2, 0xC213, 0x99F3, + 0xC214, 0x99F4, 0xC215, 0x99F5, 0xC216, 0x99F6, 0xC217, 0x99F7, 0xC218, 0xBCF6, 0xC219, 0xBCF7, 0xC21A, 0x99F8, 0xC21B, 0x99F9, + 0xC21C, 0xBCF8, 0xC21D, 0x99FA, 0xC21E, 0x99FB, 0xC21F, 0xBCF9, 0xC220, 0xBCFA, 0xC221, 0x99FC, 0xC222, 0x99FD, 0xC223, 0x99FE, + 0xC224, 0x9A41, 0xC225, 0x9A42, 0xC226, 0x9A43, 0xC227, 0x9A44, 0xC228, 0xBCFB, 0xC229, 0xBCFC, 0xC22A, 0x9A45, 0xC22B, 0xBCFD, + 0xC22C, 0x9A46, 0xC22D, 0xBCFE, 0xC22E, 0x9A47, 0xC22F, 0xBDA1, 0xC230, 0x9A48, 0xC231, 0xBDA2, 0xC232, 0xBDA3, 0xC233, 0x9A49, + 0xC234, 0xBDA4, 0xC235, 0x9A4A, 0xC236, 0x9A4B, 0xC237, 0x9A4C, 0xC238, 0x9A4D, 0xC239, 0x9A4E, 0xC23A, 0x9A4F, 0xC23B, 0x9A50, + 0xC23C, 0x9A51, 0xC23D, 0x9A52, 0xC23E, 0x9A53, 0xC23F, 0x9A54, 0xC240, 0x9A55, 0xC241, 0x9A56, 0xC242, 0x9A57, 0xC243, 0x9A58, + 0xC244, 0x9A59, 0xC245, 0x9A5A, 0xC246, 0x9A61, 0xC247, 0x9A62, 0xC248, 0xBDA5, 0xC249, 0x9A63, 0xC24A, 0x9A64, 0xC24B, 0x9A65, + 0xC24C, 0x9A66, 0xC24D, 0x9A67, 0xC24E, 0x9A68, 0xC24F, 0x9A69, 0xC250, 0xBDA6, 0xC251, 0xBDA7, 0xC252, 0x9A6A, 0xC253, 0x9A6B, + 0xC254, 0xBDA8, 0xC255, 0x9A6C, 0xC256, 0x9A6D, 0xC257, 0x9A6E, 0xC258, 0xBDA9, 0xC259, 0x9A6F, 0xC25A, 0x9A70, 0xC25B, 0x9A71, + 0xC25C, 0x9A72, 0xC25D, 0x9A73, 0xC25E, 0x9A74, 0xC25F, 0x9A75, 0xC260, 0xBDAA, 0xC261, 0x9A76, 0xC262, 0x9A77, 0xC263, 0x9A78, + 0xC264, 0x9A79, 0xC265, 0xBDAB, 0xC266, 0x9A7A, 0xC267, 0x9A81, 0xC268, 0x9A82, 0xC269, 0x9A83, 0xC26A, 0x9A84, 0xC26B, 0x9A85, + 0xC26C, 0xBDAC, 0xC26D, 0xBDAD, 0xC26E, 0x9A86, 0xC26F, 0x9A87, 0xC270, 0xBDAE, 0xC271, 0x9A88, 0xC272, 0x9A89, 0xC273, 0x9A8A, + 0xC274, 0xBDAF, 0xC275, 0x9A8B, 0xC276, 0x9A8C, 0xC277, 0x9A8D, 0xC278, 0x9A8E, 0xC279, 0x9A8F, 0xC27A, 0x9A90, 0xC27B, 0x9A91, + 0xC27C, 0xBDB0, 0xC27D, 0xBDB1, 0xC27E, 0x9A92, 0xC27F, 0xBDB2, 0xC280, 0x9A93, 0xC281, 0xBDB3, 0xC282, 0x9A94, 0xC283, 0x9A95, + 0xC284, 0x9A96, 0xC285, 0x9A97, 0xC286, 0x9A98, 0xC287, 0x9A99, 0xC288, 0xBDB4, 0xC289, 0xBDB5, 0xC28A, 0x9A9A, 0xC28B, 0x9A9B, + 0xC28C, 0x9A9C, 0xC28D, 0x9A9D, 0xC28E, 0x9A9E, 0xC28F, 0x9A9F, 0xC290, 0xBDB6, 0xC291, 0x9AA0, 0xC292, 0x9AA1, 0xC293, 0x9AA2, + 0xC294, 0x9AA3, 0xC295, 0x9AA4, 0xC296, 0x9AA5, 0xC297, 0x9AA6, 0xC298, 0xBDB7, 0xC299, 0x9AA7, 0xC29A, 0x9AA8, 0xC29B, 0xBDB8, + 0xC29C, 0x9AA9, 0xC29D, 0xBDB9, 0xC29E, 0x9AAA, 0xC29F, 0x9AAB, 0xC2A0, 0x9AAC, 0xC2A1, 0x9AAD, 0xC2A2, 0x9AAE, 0xC2A3, 0x9AAF, + 0xC2A4, 0xBDBA, 0xC2A5, 0xBDBB, 0xC2A6, 0x9AB0, 0xC2A7, 0x9AB1, 0xC2A8, 0xBDBC, 0xC2A9, 0x9AB2, 0xC2AA, 0x9AB3, 0xC2AB, 0x9AB4, + 0xC2AC, 0xBDBD, 0xC2AD, 0xBDBE, 0xC2AE, 0x9AB5, 0xC2AF, 0x9AB6, 0xC2B0, 0x9AB7, 0xC2B1, 0x9AB8, 0xC2B2, 0x9AB9, 0xC2B3, 0x9ABA, + 0xC2B4, 0xBDBF, 0xC2B5, 0xBDC0, 0xC2B6, 0x9ABB, 0xC2B7, 0xBDC1, 0xC2B8, 0x9ABC, 0xC2B9, 0xBDC2, 0xC2BA, 0x9ABD, 0xC2BB, 0x9ABE, + 0xC2BC, 0x9ABF, 0xC2BD, 0x9AC0, 0xC2BE, 0x9AC1, 0xC2BF, 0x9AC2, 0xC2C0, 0x9AC3, 0xC2C1, 0x9AC4, 0xC2C2, 0x9AC5, 0xC2C3, 0x9AC6, + 0xC2C4, 0x9AC7, 0xC2C5, 0x9AC8, 0xC2C6, 0x9AC9, 0xC2C7, 0x9ACA, 0xC2C8, 0x9ACB, 0xC2C9, 0x9ACC, 0xC2CA, 0x9ACD, 0xC2CB, 0x9ACE, + 0xC2CC, 0x9ACF, 0xC2CD, 0x9AD0, 0xC2CE, 0x9AD1, 0xC2CF, 0x9AD2, 0xC2D0, 0x9AD3, 0xC2D1, 0x9AD4, 0xC2D2, 0x9AD5, 0xC2D3, 0x9AD6, + 0xC2D4, 0x9AD7, 0xC2D5, 0x9AD8, 0xC2D6, 0x9AD9, 0xC2D7, 0x9ADA, 0xC2D8, 0x9ADB, 0xC2D9, 0x9ADC, 0xC2DA, 0x9ADD, 0xC2DB, 0x9ADE, + 0xC2DC, 0xBDC3, 0xC2DD, 0xBDC4, 0xC2DE, 0x9ADF, 0xC2DF, 0x9AE0, 0xC2E0, 0xBDC5, 0xC2E1, 0x9AE1, 0xC2E2, 0x9AE2, 0xC2E3, 0xBDC6, + 0xC2E4, 0xBDC7, 0xC2E5, 0x9AE3, 0xC2E6, 0x9AE4, 0xC2E7, 0x9AE5, 0xC2E8, 0x9AE6, 0xC2E9, 0x9AE7, 0xC2EA, 0x9AE8, 0xC2EB, 0xBDC8, + 0xC2EC, 0xBDC9, 0xC2ED, 0xBDCA, 0xC2EE, 0x9AE9, 0xC2EF, 0xBDCB, 0xC2F0, 0x9AEA, 0xC2F1, 0xBDCC, 0xC2F2, 0x9AEB, 0xC2F3, 0x9AEC, + 0xC2F4, 0x9AED, 0xC2F5, 0x9AEE, 0xC2F6, 0xBDCD, 0xC2F7, 0x9AEF, 0xC2F8, 0xBDCE, 0xC2F9, 0xBDCF, 0xC2FA, 0x9AF0, 0xC2FB, 0xBDD0, + 0xC2FC, 0xBDD1, 0xC2FD, 0x9AF1, 0xC2FE, 0x9AF2, 0xC2FF, 0x9AF3, 0xC300, 0xBDD2, 0xC301, 0x9AF4, 0xC302, 0x9AF5, 0xC303, 0x9AF6, + 0xC304, 0x9AF7, 0xC305, 0x9AF8, 0xC306, 0x9AF9, 0xC307, 0x9AFA, 0xC308, 0xBDD3, 0xC309, 0xBDD4, 0xC30A, 0x9AFB, 0xC30B, 0x9AFC, + 0xC30C, 0xBDD5, 0xC30D, 0xBDD6, 0xC30E, 0x9AFD, 0xC30F, 0x9AFE, 0xC310, 0x9B41, 0xC311, 0x9B42, 0xC312, 0x9B43, 0xC313, 0xBDD7, + 0xC314, 0xBDD8, 0xC315, 0xBDD9, 0xC316, 0x9B44, 0xC317, 0x9B45, 0xC318, 0xBDDA, 0xC319, 0x9B46, 0xC31A, 0x9B47, 0xC31B, 0x9B48, + 0xC31C, 0xBDDB, 0xC31D, 0x9B49, 0xC31E, 0x9B4A, 0xC31F, 0x9B4B, 0xC320, 0x9B4C, 0xC321, 0x9B4D, 0xC322, 0x9B4E, 0xC323, 0x9B4F, + 0xC324, 0xBDDC, 0xC325, 0xBDDD, 0xC326, 0x9B50, 0xC327, 0x9B51, 0xC328, 0xBDDE, 0xC329, 0xBDDF, 0xC32A, 0x9B52, 0xC32B, 0x9B53, + 0xC32C, 0x9B54, 0xC32D, 0x9B55, 0xC32E, 0x9B56, 0xC32F, 0x9B57, 0xC330, 0x9B58, 0xC331, 0x9B59, 0xC332, 0x9B5A, 0xC333, 0x9B61, + 0xC334, 0x9B62, 0xC335, 0x9B63, 0xC336, 0x9B64, 0xC337, 0x9B65, 0xC338, 0x9B66, 0xC339, 0x9B67, 0xC33A, 0x9B68, 0xC33B, 0x9B69, + 0xC33C, 0x9B6A, 0xC33D, 0x9B6B, 0xC33E, 0x9B6C, 0xC33F, 0x9B6D, 0xC340, 0x9B6E, 0xC341, 0x9B6F, 0xC342, 0x9B70, 0xC343, 0x9B71, + 0xC344, 0x9B72, 0xC345, 0xBDE0, 0xC346, 0x9B73, 0xC347, 0x9B74, 0xC348, 0x9B75, 0xC349, 0x9B76, 0xC34A, 0x9B77, 0xC34B, 0x9B78, + 0xC34C, 0x9B79, 0xC34D, 0x9B7A, 0xC34E, 0x9B81, 0xC34F, 0x9B82, 0xC350, 0x9B83, 0xC351, 0x9B84, 0xC352, 0x9B85, 0xC353, 0x9B86, + 0xC354, 0x9B87, 0xC355, 0x9B88, 0xC356, 0x9B89, 0xC357, 0x9B8A, 0xC358, 0x9B8B, 0xC359, 0x9B8C, 0xC35A, 0x9B8D, 0xC35B, 0x9B8E, + 0xC35C, 0x9B8F, 0xC35D, 0x9B90, 0xC35E, 0x9B91, 0xC35F, 0x9B92, 0xC360, 0x9B93, 0xC361, 0x9B94, 0xC362, 0x9B95, 0xC363, 0x9B96, + 0xC364, 0x9B97, 0xC365, 0x9B98, 0xC366, 0x9B99, 0xC367, 0x9B9A, 0xC368, 0xBDE1, 0xC369, 0xBDE2, 0xC36A, 0x9B9B, 0xC36B, 0x9B9C, + 0xC36C, 0xBDE3, 0xC36D, 0x9B9D, 0xC36E, 0x9B9E, 0xC36F, 0x9B9F, 0xC370, 0xBDE4, 0xC371, 0x9BA0, 0xC372, 0xBDE5, 0xC373, 0x9BA1, + 0xC374, 0x9BA2, 0xC375, 0x9BA3, 0xC376, 0x9BA4, 0xC377, 0x9BA5, 0xC378, 0xBDE6, 0xC379, 0xBDE7, 0xC37A, 0x9BA6, 0xC37B, 0x9BA7, + 0xC37C, 0xBDE8, 0xC37D, 0xBDE9, 0xC37E, 0x9BA8, 0xC37F, 0x9BA9, 0xC380, 0x9BAA, 0xC381, 0x9BAB, 0xC382, 0x9BAC, 0xC383, 0x9BAD, + 0xC384, 0xBDEA, 0xC385, 0x9BAE, 0xC386, 0x9BAF, 0xC387, 0x9BB0, 0xC388, 0xBDEB, 0xC389, 0x9BB1, 0xC38A, 0x9BB2, 0xC38B, 0x9BB3, + 0xC38C, 0xBDEC, 0xC38D, 0x9BB4, 0xC38E, 0x9BB5, 0xC38F, 0x9BB6, 0xC390, 0x9BB7, 0xC391, 0x9BB8, 0xC392, 0x9BB9, 0xC393, 0x9BBA, + 0xC394, 0x9BBB, 0xC395, 0x9BBC, 0xC396, 0x9BBD, 0xC397, 0x9BBE, 0xC398, 0x9BBF, 0xC399, 0x9BC0, 0xC39A, 0x9BC1, 0xC39B, 0x9BC2, + 0xC39C, 0x9BC3, 0xC39D, 0x9BC4, 0xC39E, 0x9BC5, 0xC39F, 0x9BC6, 0xC3A0, 0x9BC7, 0xC3A1, 0x9BC8, 0xC3A2, 0x9BC9, 0xC3A3, 0x9BCA, + 0xC3A4, 0x9BCB, 0xC3A5, 0x9BCC, 0xC3A6, 0x9BCD, 0xC3A7, 0x9BCE, 0xC3A8, 0x9BCF, 0xC3A9, 0x9BD0, 0xC3AA, 0x9BD1, 0xC3AB, 0x9BD2, + 0xC3AC, 0x9BD3, 0xC3AD, 0x9BD4, 0xC3AE, 0x9BD5, 0xC3AF, 0x9BD6, 0xC3B0, 0x9BD7, 0xC3B1, 0x9BD8, 0xC3B2, 0x9BD9, 0xC3B3, 0x9BDA, + 0xC3B4, 0x9BDB, 0xC3B5, 0x9BDC, 0xC3B6, 0x9BDD, 0xC3B7, 0x9BDE, 0xC3B8, 0x9BDF, 0xC3B9, 0x9BE0, 0xC3BA, 0x9BE1, 0xC3BB, 0x9BE2, + 0xC3BC, 0x9BE3, 0xC3BD, 0x9BE4, 0xC3BE, 0x9BE5, 0xC3BF, 0x9BE6, 0xC3C0, 0xBDED, 0xC3C1, 0x9BE7, 0xC3C2, 0x9BE8, 0xC3C3, 0x9BE9, + 0xC3C4, 0x9BEA, 0xC3C5, 0x9BEB, 0xC3C6, 0x9BEC, 0xC3C7, 0x9BED, 0xC3C8, 0x9BEE, 0xC3C9, 0x9BEF, 0xC3CA, 0x9BF0, 0xC3CB, 0x9BF1, + 0xC3CC, 0x9BF2, 0xC3CD, 0x9BF3, 0xC3CE, 0x9BF4, 0xC3CF, 0x9BF5, 0xC3D0, 0x9BF6, 0xC3D1, 0x9BF7, 0xC3D2, 0x9BF8, 0xC3D3, 0x9BF9, + 0xC3D4, 0x9BFA, 0xC3D5, 0x9BFB, 0xC3D6, 0x9BFC, 0xC3D7, 0x9BFD, 0xC3D8, 0xBDEE, 0xC3D9, 0xBDEF, 0xC3DA, 0x9BFE, 0xC3DB, 0x9C41, + 0xC3DC, 0xBDF0, 0xC3DD, 0x9C42, 0xC3DE, 0x9C43, 0xC3DF, 0xBDF1, 0xC3E0, 0xBDF2, 0xC3E1, 0x9C44, 0xC3E2, 0xBDF3, 0xC3E3, 0x9C45, + 0xC3E4, 0x9C46, 0xC3E5, 0x9C47, 0xC3E6, 0x9C48, 0xC3E7, 0x9C49, 0xC3E8, 0xBDF4, 0xC3E9, 0xBDF5, 0xC3EA, 0x9C4A, 0xC3EB, 0x9C4B, + 0xC3EC, 0x9C4C, 0xC3ED, 0xBDF6, 0xC3EE, 0x9C4D, 0xC3EF, 0x9C4E, 0xC3F0, 0x9C4F, 0xC3F1, 0x9C50, 0xC3F2, 0x9C51, 0xC3F3, 0x9C52, + 0xC3F4, 0xBDF7, 0xC3F5, 0xBDF8, 0xC3F6, 0x9C53, 0xC3F7, 0x9C54, 0xC3F8, 0xBDF9, 0xC3F9, 0x9C55, 0xC3FA, 0x9C56, 0xC3FB, 0x9C57, + 0xC3FC, 0x9C58, 0xC3FD, 0x9C59, 0xC3FE, 0x9C5A, 0xC3FF, 0x9C61, 0xC400, 0x9C62, 0xC401, 0x9C63, 0xC402, 0x9C64, 0xC403, 0x9C65, + 0xC404, 0x9C66, 0xC405, 0x9C67, 0xC406, 0x9C68, 0xC407, 0x9C69, 0xC408, 0xBDFA, 0xC409, 0x9C6A, 0xC40A, 0x9C6B, 0xC40B, 0x9C6C, + 0xC40C, 0x9C6D, 0xC40D, 0x9C6E, 0xC40E, 0x9C6F, 0xC40F, 0x9C70, 0xC410, 0xBDFB, 0xC411, 0x9C71, 0xC412, 0x9C72, 0xC413, 0x9C73, + 0xC414, 0x9C74, 0xC415, 0x9C75, 0xC416, 0x9C76, 0xC417, 0x9C77, 0xC418, 0x9C78, 0xC419, 0x9C79, 0xC41A, 0x9C7A, 0xC41B, 0x9C81, + 0xC41C, 0x9C82, 0xC41D, 0x9C83, 0xC41E, 0x9C84, 0xC41F, 0x9C85, 0xC420, 0x9C86, 0xC421, 0x9C87, 0xC422, 0x9C88, 0xC423, 0x9C89, + 0xC424, 0xBDFC, 0xC425, 0x9C8A, 0xC426, 0x9C8B, 0xC427, 0x9C8C, 0xC428, 0x9C8D, 0xC429, 0x9C8E, 0xC42A, 0x9C8F, 0xC42B, 0x9C90, + 0xC42C, 0xBDFD, 0xC42D, 0x9C91, 0xC42E, 0x9C92, 0xC42F, 0x9C93, 0xC430, 0xBDFE, 0xC431, 0x9C94, 0xC432, 0x9C95, 0xC433, 0x9C96, + 0xC434, 0xBEA1, 0xC435, 0x9C97, 0xC436, 0x9C98, 0xC437, 0x9C99, 0xC438, 0x9C9A, 0xC439, 0x9C9B, 0xC43A, 0x9C9C, 0xC43B, 0x9C9D, + 0xC43C, 0xBEA2, 0xC43D, 0xBEA3, 0xC43E, 0x9C9E, 0xC43F, 0x9C9F, 0xC440, 0x9CA0, 0xC441, 0x9CA1, 0xC442, 0x9CA2, 0xC443, 0x9CA3, + 0xC444, 0x9CA4, 0xC445, 0x9CA5, 0xC446, 0x9CA6, 0xC447, 0x9CA7, 0xC448, 0xBEA4, 0xC449, 0x9CA8, 0xC44A, 0x9CA9, 0xC44B, 0x9CAA, + 0xC44C, 0x9CAB, 0xC44D, 0x9CAC, 0xC44E, 0x9CAD, 0xC44F, 0x9CAE, 0xC450, 0x9CAF, 0xC451, 0x9CB0, 0xC452, 0x9CB1, 0xC453, 0x9CB2, + 0xC454, 0x9CB3, 0xC455, 0x9CB4, 0xC456, 0x9CB5, 0xC457, 0x9CB6, 0xC458, 0x9CB7, 0xC459, 0x9CB8, 0xC45A, 0x9CB9, 0xC45B, 0x9CBA, + 0xC45C, 0x9CBB, 0xC45D, 0x9CBC, 0xC45E, 0x9CBD, 0xC45F, 0x9CBE, 0xC460, 0x9CBF, 0xC461, 0x9CC0, 0xC462, 0x9CC1, 0xC463, 0x9CC2, + 0xC464, 0xBEA5, 0xC465, 0xBEA6, 0xC466, 0x9CC3, 0xC467, 0x9CC4, 0xC468, 0xBEA7, 0xC469, 0x9CC5, 0xC46A, 0x9CC6, 0xC46B, 0x9CC7, + 0xC46C, 0xBEA8, 0xC46D, 0x9CC8, 0xC46E, 0x9CC9, 0xC46F, 0x9CCA, 0xC470, 0x9CCB, 0xC471, 0x9CCC, 0xC472, 0x9CCD, 0xC473, 0x9CCE, + 0xC474, 0xBEA9, 0xC475, 0xBEAA, 0xC476, 0x9CCF, 0xC477, 0x9CD0, 0xC478, 0x9CD1, 0xC479, 0xBEAB, 0xC47A, 0x9CD2, 0xC47B, 0x9CD3, + 0xC47C, 0x9CD4, 0xC47D, 0x9CD5, 0xC47E, 0x9CD6, 0xC47F, 0x9CD7, 0xC480, 0xBEAC, 0xC481, 0x9CD8, 0xC482, 0x9CD9, 0xC483, 0x9CDA, + 0xC484, 0x9CDB, 0xC485, 0x9CDC, 0xC486, 0x9CDD, 0xC487, 0x9CDE, 0xC488, 0x9CDF, 0xC489, 0x9CE0, 0xC48A, 0x9CE1, 0xC48B, 0x9CE2, + 0xC48C, 0x9CE3, 0xC48D, 0x9CE4, 0xC48E, 0x9CE5, 0xC48F, 0x9CE6, 0xC490, 0x9CE7, 0xC491, 0x9CE8, 0xC492, 0x9CE9, 0xC493, 0x9CEA, + 0xC494, 0xBEAD, 0xC495, 0x9CEB, 0xC496, 0x9CEC, 0xC497, 0x9CED, 0xC498, 0x9CEE, 0xC499, 0x9CEF, 0xC49A, 0x9CF0, 0xC49B, 0x9CF1, + 0xC49C, 0xBEAE, 0xC49D, 0x9CF2, 0xC49E, 0x9CF3, 0xC49F, 0x9CF4, 0xC4A0, 0x9CF5, 0xC4A1, 0x9CF6, 0xC4A2, 0x9CF7, 0xC4A3, 0x9CF8, + 0xC4A4, 0x9CF9, 0xC4A5, 0x9CFA, 0xC4A6, 0x9CFB, 0xC4A7, 0x9CFC, 0xC4A8, 0x9CFD, 0xC4A9, 0x9CFE, 0xC4AA, 0x9D41, 0xC4AB, 0x9D42, + 0xC4AC, 0x9D43, 0xC4AD, 0x9D44, 0xC4AE, 0x9D45, 0xC4AF, 0x9D46, 0xC4B0, 0x9D47, 0xC4B1, 0x9D48, 0xC4B2, 0x9D49, 0xC4B3, 0x9D4A, + 0xC4B4, 0x9D4B, 0xC4B5, 0x9D4C, 0xC4B6, 0x9D4D, 0xC4B7, 0x9D4E, 0xC4B8, 0xBEAF, 0xC4B9, 0x9D4F, 0xC4BA, 0x9D50, 0xC4BB, 0x9D51, + 0xC4BC, 0xBEB0, 0xC4BD, 0x9D52, 0xC4BE, 0x9D53, 0xC4BF, 0x9D54, 0xC4C0, 0x9D55, 0xC4C1, 0x9D56, 0xC4C2, 0x9D57, 0xC4C3, 0x9D58, + 0xC4C4, 0x9D59, 0xC4C5, 0x9D5A, 0xC4C6, 0x9D61, 0xC4C7, 0x9D62, 0xC4C8, 0x9D63, 0xC4C9, 0x9D64, 0xC4CA, 0x9D65, 0xC4CB, 0x9D66, + 0xC4CC, 0x9D67, 0xC4CD, 0x9D68, 0xC4CE, 0x9D69, 0xC4CF, 0x9D6A, 0xC4D0, 0x9D6B, 0xC4D1, 0x9D6C, 0xC4D2, 0x9D6D, 0xC4D3, 0x9D6E, + 0xC4D4, 0x9D6F, 0xC4D5, 0x9D70, 0xC4D6, 0x9D71, 0xC4D7, 0x9D72, 0xC4D8, 0x9D73, 0xC4D9, 0x9D74, 0xC4DA, 0x9D75, 0xC4DB, 0x9D76, + 0xC4DC, 0x9D77, 0xC4DD, 0x9D78, 0xC4DE, 0x9D79, 0xC4DF, 0x9D7A, 0xC4E0, 0x9D81, 0xC4E1, 0x9D82, 0xC4E2, 0x9D83, 0xC4E3, 0x9D84, + 0xC4E4, 0x9D85, 0xC4E5, 0x9D86, 0xC4E6, 0x9D87, 0xC4E7, 0x9D88, 0xC4E8, 0x9D89, 0xC4E9, 0xBEB1, 0xC4EA, 0x9D8A, 0xC4EB, 0x9D8B, + 0xC4EC, 0x9D8C, 0xC4ED, 0x9D8D, 0xC4EE, 0x9D8E, 0xC4EF, 0x9D8F, 0xC4F0, 0xBEB2, 0xC4F1, 0xBEB3, 0xC4F2, 0x9D90, 0xC4F3, 0x9D91, + 0xC4F4, 0xBEB4, 0xC4F5, 0x9D92, 0xC4F6, 0x9D93, 0xC4F7, 0x9D94, 0xC4F8, 0xBEB5, 0xC4F9, 0x9D95, 0xC4FA, 0xBEB6, 0xC4FB, 0x9D96, + 0xC4FC, 0x9D97, 0xC4FD, 0x9D98, 0xC4FE, 0x9D99, 0xC4FF, 0xBEB7, 0xC500, 0xBEB8, 0xC501, 0xBEB9, 0xC502, 0x9D9A, 0xC503, 0x9D9B, + 0xC504, 0x9D9C, 0xC505, 0x9D9D, 0xC506, 0x9D9E, 0xC507, 0x9D9F, 0xC508, 0x9DA0, 0xC509, 0x9DA1, 0xC50A, 0x9DA2, 0xC50B, 0x9DA3, + 0xC50C, 0xBEBA, 0xC50D, 0x9DA4, 0xC50E, 0x9DA5, 0xC50F, 0x9DA6, 0xC510, 0xBEBB, 0xC511, 0x9DA7, 0xC512, 0x9DA8, 0xC513, 0x9DA9, + 0xC514, 0xBEBC, 0xC515, 0x9DAA, 0xC516, 0x9DAB, 0xC517, 0x9DAC, 0xC518, 0x9DAD, 0xC519, 0x9DAE, 0xC51A, 0x9DAF, 0xC51B, 0x9DB0, + 0xC51C, 0xBEBD, 0xC51D, 0x9DB1, 0xC51E, 0x9DB2, 0xC51F, 0x9DB3, 0xC520, 0x9DB4, 0xC521, 0x9DB5, 0xC522, 0x9DB6, 0xC523, 0x9DB7, + 0xC524, 0x9DB8, 0xC525, 0x9DB9, 0xC526, 0x9DBA, 0xC527, 0x9DBB, 0xC528, 0xBEBE, 0xC529, 0xBEBF, 0xC52A, 0x9DBC, 0xC52B, 0x9DBD, + 0xC52C, 0xBEC0, 0xC52D, 0x9DBE, 0xC52E, 0x9DBF, 0xC52F, 0x9DC0, 0xC530, 0xBEC1, 0xC531, 0x9DC1, 0xC532, 0x9DC2, 0xC533, 0x9DC3, + 0xC534, 0x9DC4, 0xC535, 0x9DC5, 0xC536, 0x9DC6, 0xC537, 0x9DC7, 0xC538, 0xBEC2, 0xC539, 0xBEC3, 0xC53A, 0x9DC8, 0xC53B, 0xBEC4, + 0xC53C, 0x9DC9, 0xC53D, 0xBEC5, 0xC53E, 0x9DCA, 0xC53F, 0x9DCB, 0xC540, 0x9DCC, 0xC541, 0x9DCD, 0xC542, 0x9DCE, 0xC543, 0x9DCF, + 0xC544, 0xBEC6, 0xC545, 0xBEC7, 0xC546, 0x9DD0, 0xC547, 0x9DD1, 0xC548, 0xBEC8, 0xC549, 0xBEC9, 0xC54A, 0xBECA, 0xC54B, 0x9DD2, + 0xC54C, 0xBECB, 0xC54D, 0xBECC, 0xC54E, 0xBECD, 0xC54F, 0x9DD3, 0xC550, 0x9DD4, 0xC551, 0x9DD5, 0xC552, 0x9DD6, 0xC553, 0xBECE, + 0xC554, 0xBECF, 0xC555, 0xBED0, 0xC556, 0x9DD7, 0xC557, 0xBED1, 0xC558, 0xBED2, 0xC559, 0xBED3, 0xC55A, 0x9DD8, 0xC55B, 0x9DD9, + 0xC55C, 0x9DDA, 0xC55D, 0xBED4, 0xC55E, 0xBED5, 0xC55F, 0x9DDB, 0xC560, 0xBED6, 0xC561, 0xBED7, 0xC562, 0x9DDC, 0xC563, 0x9DDD, + 0xC564, 0xBED8, 0xC565, 0x9DDE, 0xC566, 0x9DDF, 0xC567, 0x9DE0, 0xC568, 0xBED9, 0xC569, 0x9DE1, 0xC56A, 0x9DE2, 0xC56B, 0x9DE3, + 0xC56C, 0x9DE4, 0xC56D, 0x9DE5, 0xC56E, 0x9DE6, 0xC56F, 0x9DE7, 0xC570, 0xBEDA, 0xC571, 0xBEDB, 0xC572, 0x9DE8, 0xC573, 0xBEDC, + 0xC574, 0xBEDD, 0xC575, 0xBEDE, 0xC576, 0x9DE9, 0xC577, 0x9DEA, 0xC578, 0x9DEB, 0xC579, 0x9DEC, 0xC57A, 0x9DED, 0xC57B, 0x9DEE, + 0xC57C, 0xBEDF, 0xC57D, 0xBEE0, 0xC57E, 0x9DEF, 0xC57F, 0x9DF0, 0xC580, 0xBEE1, 0xC581, 0x9DF1, 0xC582, 0x9DF2, 0xC583, 0x9DF3, + 0xC584, 0xBEE2, 0xC585, 0x9DF4, 0xC586, 0x9DF5, 0xC587, 0xBEE3, 0xC588, 0x9DF6, 0xC589, 0x9DF7, 0xC58A, 0x9DF8, 0xC58B, 0x9DF9, + 0xC58C, 0xBEE4, 0xC58D, 0xBEE5, 0xC58E, 0x9DFA, 0xC58F, 0xBEE6, 0xC590, 0x9DFB, 0xC591, 0xBEE7, 0xC592, 0x9DFC, 0xC593, 0x9DFD, + 0xC594, 0x9DFE, 0xC595, 0xBEE8, 0xC596, 0x9E41, 0xC597, 0xBEE9, 0xC598, 0xBEEA, 0xC599, 0x9E42, 0xC59A, 0x9E43, 0xC59B, 0x9E44, + 0xC59C, 0xBEEB, 0xC59D, 0x9E45, 0xC59E, 0x9E46, 0xC59F, 0x9E47, 0xC5A0, 0xBEEC, 0xC5A1, 0x9E48, 0xC5A2, 0x9E49, 0xC5A3, 0x9E4A, + 0xC5A4, 0x9E4B, 0xC5A5, 0x9E4C, 0xC5A6, 0x9E4D, 0xC5A7, 0x9E4E, 0xC5A8, 0x9E4F, 0xC5A9, 0xBEED, 0xC5AA, 0x9E50, 0xC5AB, 0x9E51, + 0xC5AC, 0x9E52, 0xC5AD, 0x9E53, 0xC5AE, 0x9E54, 0xC5AF, 0x9E55, 0xC5B0, 0x9E56, 0xC5B1, 0x9E57, 0xC5B2, 0x9E58, 0xC5B3, 0x9E59, + 0xC5B4, 0xBEEE, 0xC5B5, 0xBEEF, 0xC5B6, 0x9E5A, 0xC5B7, 0x9E61, 0xC5B8, 0xBEF0, 0xC5B9, 0xBEF1, 0xC5BA, 0x9E62, 0xC5BB, 0xBEF2, + 0xC5BC, 0xBEF3, 0xC5BD, 0xBEF4, 0xC5BE, 0xBEF5, 0xC5BF, 0x9E63, 0xC5C0, 0x9E64, 0xC5C1, 0x9E65, 0xC5C2, 0x9E66, 0xC5C3, 0x9E67, + 0xC5C4, 0xBEF6, 0xC5C5, 0xBEF7, 0xC5C6, 0xBEF8, 0xC5C7, 0xBEF9, 0xC5C8, 0xBEFA, 0xC5C9, 0xBEFB, 0xC5CA, 0xBEFC, 0xC5CB, 0x9E68, + 0xC5CC, 0xBEFD, 0xC5CD, 0x9E69, 0xC5CE, 0xBEFE, 0xC5CF, 0x9E6A, 0xC5D0, 0xBFA1, 0xC5D1, 0xBFA2, 0xC5D2, 0x9E6B, 0xC5D3, 0x9E6C, + 0xC5D4, 0xBFA3, 0xC5D5, 0x9E6D, 0xC5D6, 0x9E6E, 0xC5D7, 0x9E6F, 0xC5D8, 0xBFA4, 0xC5D9, 0x9E70, 0xC5DA, 0x9E71, 0xC5DB, 0x9E72, + 0xC5DC, 0x9E73, 0xC5DD, 0x9E74, 0xC5DE, 0x9E75, 0xC5DF, 0x9E76, 0xC5E0, 0xBFA5, 0xC5E1, 0xBFA6, 0xC5E2, 0x9E77, 0xC5E3, 0xBFA7, + 0xC5E4, 0x9E78, 0xC5E5, 0xBFA8, 0xC5E6, 0x9E79, 0xC5E7, 0x9E7A, 0xC5E8, 0x9E81, 0xC5E9, 0x9E82, 0xC5EA, 0x9E83, 0xC5EB, 0x9E84, + 0xC5EC, 0xBFA9, 0xC5ED, 0xBFAA, 0xC5EE, 0xBFAB, 0xC5EF, 0x9E85, 0xC5F0, 0xBFAC, 0xC5F1, 0x9E86, 0xC5F2, 0x9E87, 0xC5F3, 0x9E88, + 0xC5F4, 0xBFAD, 0xC5F5, 0x9E89, 0xC5F6, 0xBFAE, 0xC5F7, 0xBFAF, 0xC5F8, 0x9E8A, 0xC5F9, 0x9E8B, 0xC5FA, 0x9E8C, 0xC5FB, 0x9E8D, + 0xC5FC, 0xBFB0, 0xC5FD, 0xBFB1, 0xC5FE, 0xBFB2, 0xC5FF, 0xBFB3, 0xC600, 0xBFB4, 0xC601, 0xBFB5, 0xC602, 0x9E8E, 0xC603, 0x9E8F, + 0xC604, 0x9E90, 0xC605, 0xBFB6, 0xC606, 0xBFB7, 0xC607, 0xBFB8, 0xC608, 0xBFB9, 0xC609, 0x9E91, 0xC60A, 0x9E92, 0xC60B, 0x9E93, + 0xC60C, 0xBFBA, 0xC60D, 0x9E94, 0xC60E, 0x9E95, 0xC60F, 0x9E96, 0xC610, 0xBFBB, 0xC611, 0x9E97, 0xC612, 0x9E98, 0xC613, 0x9E99, + 0xC614, 0x9E9A, 0xC615, 0x9E9B, 0xC616, 0x9E9C, 0xC617, 0x9E9D, 0xC618, 0xBFBC, 0xC619, 0xBFBD, 0xC61A, 0x9E9E, 0xC61B, 0xBFBE, + 0xC61C, 0xBFBF, 0xC61D, 0x9E9F, 0xC61E, 0x9EA0, 0xC61F, 0x9EA1, 0xC620, 0x9EA2, 0xC621, 0x9EA3, 0xC622, 0x9EA4, 0xC623, 0x9EA5, + 0xC624, 0xBFC0, 0xC625, 0xBFC1, 0xC626, 0x9EA6, 0xC627, 0x9EA7, 0xC628, 0xBFC2, 0xC629, 0x9EA8, 0xC62A, 0x9EA9, 0xC62B, 0x9EAA, + 0xC62C, 0xBFC3, 0xC62D, 0xBFC4, 0xC62E, 0xBFC5, 0xC62F, 0x9EAB, 0xC630, 0xBFC6, 0xC631, 0x9EAC, 0xC632, 0x9EAD, 0xC633, 0xBFC7, + 0xC634, 0xBFC8, 0xC635, 0xBFC9, 0xC636, 0x9EAE, 0xC637, 0xBFCA, 0xC638, 0x9EAF, 0xC639, 0xBFCB, 0xC63A, 0x9EB0, 0xC63B, 0xBFCC, + 0xC63C, 0x9EB1, 0xC63D, 0x9EB2, 0xC63E, 0x9EB3, 0xC63F, 0x9EB4, 0xC640, 0xBFCD, 0xC641, 0xBFCE, 0xC642, 0x9EB5, 0xC643, 0x9EB6, + 0xC644, 0xBFCF, 0xC645, 0x9EB7, 0xC646, 0x9EB8, 0xC647, 0x9EB9, 0xC648, 0xBFD0, 0xC649, 0x9EBA, 0xC64A, 0x9EBB, 0xC64B, 0x9EBC, + 0xC64C, 0x9EBD, 0xC64D, 0x9EBE, 0xC64E, 0x9EBF, 0xC64F, 0x9EC0, 0xC650, 0xBFD1, 0xC651, 0xBFD2, 0xC652, 0x9EC1, 0xC653, 0xBFD3, + 0xC654, 0xBFD4, 0xC655, 0xBFD5, 0xC656, 0x9EC2, 0xC657, 0x9EC3, 0xC658, 0x9EC4, 0xC659, 0x9EC5, 0xC65A, 0x9EC6, 0xC65B, 0x9EC7, + 0xC65C, 0xBFD6, 0xC65D, 0xBFD7, 0xC65E, 0x9EC8, 0xC65F, 0x9EC9, 0xC660, 0xBFD8, 0xC661, 0x9ECA, 0xC662, 0x9ECB, 0xC663, 0x9ECC, + 0xC664, 0x9ECD, 0xC665, 0x9ECE, 0xC666, 0x9ECF, 0xC667, 0x9ED0, 0xC668, 0x9ED1, 0xC669, 0x9ED2, 0xC66A, 0x9ED3, 0xC66B, 0x9ED4, + 0xC66C, 0xBFD9, 0xC66D, 0x9ED5, 0xC66E, 0x9ED6, 0xC66F, 0xBFDA, 0xC670, 0x9ED7, 0xC671, 0xBFDB, 0xC672, 0x9ED8, 0xC673, 0x9ED9, + 0xC674, 0x9EDA, 0xC675, 0x9EDB, 0xC676, 0x9EDC, 0xC677, 0x9EDD, 0xC678, 0xBFDC, 0xC679, 0xBFDD, 0xC67A, 0x9EDE, 0xC67B, 0x9EDF, + 0xC67C, 0xBFDE, 0xC67D, 0x9EE0, 0xC67E, 0x9EE1, 0xC67F, 0x9EE2, 0xC680, 0xBFDF, 0xC681, 0x9EE3, 0xC682, 0x9EE4, 0xC683, 0x9EE5, + 0xC684, 0x9EE6, 0xC685, 0x9EE7, 0xC686, 0x9EE8, 0xC687, 0x9EE9, 0xC688, 0xBFE0, 0xC689, 0xBFE1, 0xC68A, 0x9EEA, 0xC68B, 0xBFE2, + 0xC68C, 0x9EEB, 0xC68D, 0xBFE3, 0xC68E, 0x9EEC, 0xC68F, 0x9EED, 0xC690, 0x9EEE, 0xC691, 0x9EEF, 0xC692, 0x9EF0, 0xC693, 0x9EF1, + 0xC694, 0xBFE4, 0xC695, 0xBFE5, 0xC696, 0x9EF2, 0xC697, 0x9EF3, 0xC698, 0xBFE6, 0xC699, 0x9EF4, 0xC69A, 0x9EF5, 0xC69B, 0x9EF6, + 0xC69C, 0xBFE7, 0xC69D, 0x9EF7, 0xC69E, 0x9EF8, 0xC69F, 0x9EF9, 0xC6A0, 0x9EFA, 0xC6A1, 0x9EFB, 0xC6A2, 0x9EFC, 0xC6A3, 0x9EFD, + 0xC6A4, 0xBFE8, 0xC6A5, 0xBFE9, 0xC6A6, 0x9EFE, 0xC6A7, 0xBFEA, 0xC6A8, 0x9F41, 0xC6A9, 0xBFEB, 0xC6AA, 0x9F42, 0xC6AB, 0x9F43, + 0xC6AC, 0x9F44, 0xC6AD, 0x9F45, 0xC6AE, 0x9F46, 0xC6AF, 0x9F47, 0xC6B0, 0xBFEC, 0xC6B1, 0xBFED, 0xC6B2, 0x9F48, 0xC6B3, 0x9F49, + 0xC6B4, 0xBFEE, 0xC6B5, 0x9F4A, 0xC6B6, 0x9F4B, 0xC6B7, 0x9F4C, 0xC6B8, 0xBFEF, 0xC6B9, 0xBFF0, 0xC6BA, 0xBFF1, 0xC6BB, 0x9F4D, + 0xC6BC, 0x9F4E, 0xC6BD, 0x9F4F, 0xC6BE, 0x9F50, 0xC6BF, 0x9F51, 0xC6C0, 0xBFF2, 0xC6C1, 0xBFF3, 0xC6C2, 0x9F52, 0xC6C3, 0xBFF4, + 0xC6C4, 0x9F53, 0xC6C5, 0xBFF5, 0xC6C6, 0x9F54, 0xC6C7, 0x9F55, 0xC6C8, 0x9F56, 0xC6C9, 0x9F57, 0xC6CA, 0x9F58, 0xC6CB, 0x9F59, + 0xC6CC, 0xBFF6, 0xC6CD, 0xBFF7, 0xC6CE, 0x9F5A, 0xC6CF, 0x9F61, 0xC6D0, 0xBFF8, 0xC6D1, 0x9F62, 0xC6D2, 0x9F63, 0xC6D3, 0x9F64, + 0xC6D4, 0xBFF9, 0xC6D5, 0x9F65, 0xC6D6, 0x9F66, 0xC6D7, 0x9F67, 0xC6D8, 0x9F68, 0xC6D9, 0x9F69, 0xC6DA, 0x9F6A, 0xC6DB, 0x9F6B, + 0xC6DC, 0xBFFA, 0xC6DD, 0xBFFB, 0xC6DE, 0x9F6C, 0xC6DF, 0x9F6D, 0xC6E0, 0xBFFC, 0xC6E1, 0xBFFD, 0xC6E2, 0x9F6E, 0xC6E3, 0x9F6F, + 0xC6E4, 0x9F70, 0xC6E5, 0x9F71, 0xC6E6, 0x9F72, 0xC6E7, 0x9F73, 0xC6E8, 0xBFFE, 0xC6E9, 0xC0A1, 0xC6EA, 0x9F74, 0xC6EB, 0x9F75, + 0xC6EC, 0xC0A2, 0xC6ED, 0x9F76, 0xC6EE, 0x9F77, 0xC6EF, 0x9F78, 0xC6F0, 0xC0A3, 0xC6F1, 0x9F79, 0xC6F2, 0x9F7A, 0xC6F3, 0x9F81, + 0xC6F4, 0x9F82, 0xC6F5, 0x9F83, 0xC6F6, 0x9F84, 0xC6F7, 0x9F85, 0xC6F8, 0xC0A4, 0xC6F9, 0xC0A5, 0xC6FA, 0x9F86, 0xC6FB, 0x9F87, + 0xC6FC, 0x9F88, 0xC6FD, 0xC0A6, 0xC6FE, 0x9F89, 0xC6FF, 0x9F8A, 0xC700, 0x9F8B, 0xC701, 0x9F8C, 0xC702, 0x9F8D, 0xC703, 0x9F8E, + 0xC704, 0xC0A7, 0xC705, 0xC0A8, 0xC706, 0x9F8F, 0xC707, 0x9F90, 0xC708, 0xC0A9, 0xC709, 0x9F91, 0xC70A, 0x9F92, 0xC70B, 0x9F93, + 0xC70C, 0xC0AA, 0xC70D, 0x9F94, 0xC70E, 0x9F95, 0xC70F, 0x9F96, 0xC710, 0x9F97, 0xC711, 0x9F98, 0xC712, 0x9F99, 0xC713, 0x9F9A, + 0xC714, 0xC0AB, 0xC715, 0xC0AC, 0xC716, 0x9F9B, 0xC717, 0xC0AD, 0xC718, 0x9F9C, 0xC719, 0xC0AE, 0xC71A, 0x9F9D, 0xC71B, 0x9F9E, + 0xC71C, 0x9F9F, 0xC71D, 0x9FA0, 0xC71E, 0x9FA1, 0xC71F, 0x9FA2, 0xC720, 0xC0AF, 0xC721, 0xC0B0, 0xC722, 0x9FA3, 0xC723, 0x9FA4, + 0xC724, 0xC0B1, 0xC725, 0x9FA5, 0xC726, 0x9FA6, 0xC727, 0x9FA7, 0xC728, 0xC0B2, 0xC729, 0x9FA8, 0xC72A, 0x9FA9, 0xC72B, 0x9FAA, + 0xC72C, 0x9FAB, 0xC72D, 0x9FAC, 0xC72E, 0x9FAD, 0xC72F, 0x9FAE, 0xC730, 0xC0B3, 0xC731, 0xC0B4, 0xC732, 0x9FAF, 0xC733, 0xC0B5, + 0xC734, 0x9FB0, 0xC735, 0xC0B6, 0xC736, 0x9FB1, 0xC737, 0xC0B7, 0xC738, 0x9FB2, 0xC739, 0x9FB3, 0xC73A, 0x9FB4, 0xC73B, 0x9FB5, + 0xC73C, 0xC0B8, 0xC73D, 0xC0B9, 0xC73E, 0x9FB6, 0xC73F, 0x9FB7, 0xC740, 0xC0BA, 0xC741, 0x9FB8, 0xC742, 0x9FB9, 0xC743, 0x9FBA, + 0xC744, 0xC0BB, 0xC745, 0x9FBB, 0xC746, 0x9FBC, 0xC747, 0x9FBD, 0xC748, 0x9FBE, 0xC749, 0x9FBF, 0xC74A, 0xC0BC, 0xC74B, 0x9FC0, + 0xC74C, 0xC0BD, 0xC74D, 0xC0BE, 0xC74E, 0x9FC1, 0xC74F, 0xC0BF, 0xC750, 0x9FC2, 0xC751, 0xC0C0, 0xC752, 0xC0C1, 0xC753, 0xC0C2, + 0xC754, 0xC0C3, 0xC755, 0xC0C4, 0xC756, 0xC0C5, 0xC757, 0xC0C6, 0xC758, 0xC0C7, 0xC759, 0x9FC3, 0xC75A, 0x9FC4, 0xC75B, 0x9FC5, + 0xC75C, 0xC0C8, 0xC75D, 0x9FC6, 0xC75E, 0x9FC7, 0xC75F, 0x9FC8, 0xC760, 0xC0C9, 0xC761, 0x9FC9, 0xC762, 0x9FCA, 0xC763, 0x9FCB, + 0xC764, 0x9FCC, 0xC765, 0x9FCD, 0xC766, 0x9FCE, 0xC767, 0x9FCF, 0xC768, 0xC0CA, 0xC769, 0x9FD0, 0xC76A, 0x9FD1, 0xC76B, 0xC0CB, + 0xC76C, 0x9FD2, 0xC76D, 0x9FD3, 0xC76E, 0x9FD4, 0xC76F, 0x9FD5, 0xC770, 0x9FD6, 0xC771, 0x9FD7, 0xC772, 0x9FD8, 0xC773, 0x9FD9, + 0xC774, 0xC0CC, 0xC775, 0xC0CD, 0xC776, 0x9FDA, 0xC777, 0x9FDB, 0xC778, 0xC0CE, 0xC779, 0x9FDC, 0xC77A, 0x9FDD, 0xC77B, 0x9FDE, + 0xC77C, 0xC0CF, 0xC77D, 0xC0D0, 0xC77E, 0xC0D1, 0xC77F, 0x9FDF, 0xC780, 0x9FE0, 0xC781, 0x9FE1, 0xC782, 0x9FE2, 0xC783, 0xC0D2, + 0xC784, 0xC0D3, 0xC785, 0xC0D4, 0xC786, 0x9FE3, 0xC787, 0xC0D5, 0xC788, 0xC0D6, 0xC789, 0xC0D7, 0xC78A, 0xC0D8, 0xC78B, 0x9FE4, + 0xC78C, 0x9FE5, 0xC78D, 0x9FE6, 0xC78E, 0xC0D9, 0xC78F, 0x9FE7, 0xC790, 0xC0DA, 0xC791, 0xC0DB, 0xC792, 0x9FE8, 0xC793, 0x9FE9, + 0xC794, 0xC0DC, 0xC795, 0x9FEA, 0xC796, 0xC0DD, 0xC797, 0xC0DE, 0xC798, 0xC0DF, 0xC799, 0x9FEB, 0xC79A, 0xC0E0, 0xC79B, 0x9FEC, + 0xC79C, 0x9FED, 0xC79D, 0x9FEE, 0xC79E, 0x9FEF, 0xC79F, 0x9FF0, 0xC7A0, 0xC0E1, 0xC7A1, 0xC0E2, 0xC7A2, 0x9FF1, 0xC7A3, 0xC0E3, + 0xC7A4, 0xC0E4, 0xC7A5, 0xC0E5, 0xC7A6, 0xC0E6, 0xC7A7, 0x9FF2, 0xC7A8, 0x9FF3, 0xC7A9, 0x9FF4, 0xC7AA, 0x9FF5, 0xC7AB, 0x9FF6, + 0xC7AC, 0xC0E7, 0xC7AD, 0xC0E8, 0xC7AE, 0x9FF7, 0xC7AF, 0x9FF8, 0xC7B0, 0xC0E9, 0xC7B1, 0x9FF9, 0xC7B2, 0x9FFA, 0xC7B3, 0x9FFB, + 0xC7B4, 0xC0EA, 0xC7B5, 0x9FFC, 0xC7B6, 0x9FFD, 0xC7B7, 0x9FFE, 0xC7B8, 0xA041, 0xC7B9, 0xA042, 0xC7BA, 0xA043, 0xC7BB, 0xA044, + 0xC7BC, 0xC0EB, 0xC7BD, 0xC0EC, 0xC7BE, 0xA045, 0xC7BF, 0xC0ED, 0xC7C0, 0xC0EE, 0xC7C1, 0xC0EF, 0xC7C2, 0xA046, 0xC7C3, 0xA047, + 0xC7C4, 0xA048, 0xC7C5, 0xA049, 0xC7C6, 0xA04A, 0xC7C7, 0xA04B, 0xC7C8, 0xC0F0, 0xC7C9, 0xC0F1, 0xC7CA, 0xA04C, 0xC7CB, 0xA04D, + 0xC7CC, 0xC0F2, 0xC7CD, 0xA04E, 0xC7CE, 0xC0F3, 0xC7CF, 0xA04F, 0xC7D0, 0xC0F4, 0xC7D1, 0xA050, 0xC7D2, 0xA051, 0xC7D3, 0xA052, + 0xC7D4, 0xA053, 0xC7D5, 0xA054, 0xC7D6, 0xA055, 0xC7D7, 0xA056, 0xC7D8, 0xC0F5, 0xC7D9, 0xA057, 0xC7DA, 0xA058, 0xC7DB, 0xA059, + 0xC7DC, 0xA05A, 0xC7DD, 0xC0F6, 0xC7DE, 0xA061, 0xC7DF, 0xA062, 0xC7E0, 0xA063, 0xC7E1, 0xA064, 0xC7E2, 0xA065, 0xC7E3, 0xA066, + 0xC7E4, 0xC0F7, 0xC7E5, 0xA067, 0xC7E6, 0xA068, 0xC7E7, 0xA069, 0xC7E8, 0xC0F8, 0xC7E9, 0xA06A, 0xC7EA, 0xA06B, 0xC7EB, 0xA06C, + 0xC7EC, 0xC0F9, 0xC7ED, 0xA06D, 0xC7EE, 0xA06E, 0xC7EF, 0xA06F, 0xC7F0, 0xA070, 0xC7F1, 0xA071, 0xC7F2, 0xA072, 0xC7F3, 0xA073, + 0xC7F4, 0xA074, 0xC7F5, 0xA075, 0xC7F6, 0xA076, 0xC7F7, 0xA077, 0xC7F8, 0xA078, 0xC7F9, 0xA079, 0xC7FA, 0xA07A, 0xC7FB, 0xA081, + 0xC7FC, 0xA082, 0xC7FD, 0xA083, 0xC7FE, 0xA084, 0xC7FF, 0xA085, 0xC800, 0xC0FA, 0xC801, 0xC0FB, 0xC802, 0xA086, 0xC803, 0xA087, + 0xC804, 0xC0FC, 0xC805, 0xA088, 0xC806, 0xA089, 0xC807, 0xA08A, 0xC808, 0xC0FD, 0xC809, 0xA08B, 0xC80A, 0xC0FE, 0xC80B, 0xA08C, + 0xC80C, 0xA08D, 0xC80D, 0xA08E, 0xC80E, 0xA08F, 0xC80F, 0xA090, 0xC810, 0xC1A1, 0xC811, 0xC1A2, 0xC812, 0xA091, 0xC813, 0xC1A3, + 0xC814, 0xA092, 0xC815, 0xC1A4, 0xC816, 0xC1A5, 0xC817, 0xA093, 0xC818, 0xA094, 0xC819, 0xA095, 0xC81A, 0xA096, 0xC81B, 0xA097, + 0xC81C, 0xC1A6, 0xC81D, 0xC1A7, 0xC81E, 0xA098, 0xC81F, 0xA099, 0xC820, 0xC1A8, 0xC821, 0xA09A, 0xC822, 0xA09B, 0xC823, 0xA09C, + 0xC824, 0xC1A9, 0xC825, 0xA09D, 0xC826, 0xA09E, 0xC827, 0xA09F, 0xC828, 0xA0A0, 0xC829, 0xA0A1, 0xC82A, 0xA0A2, 0xC82B, 0xA0A3, + 0xC82C, 0xC1AA, 0xC82D, 0xC1AB, 0xC82E, 0xA0A4, 0xC82F, 0xC1AC, 0xC830, 0xA0A5, 0xC831, 0xC1AD, 0xC832, 0xA0A6, 0xC833, 0xA0A7, + 0xC834, 0xA0A8, 0xC835, 0xA0A9, 0xC836, 0xA0AA, 0xC837, 0xA0AB, 0xC838, 0xC1AE, 0xC839, 0xA0AC, 0xC83A, 0xA0AD, 0xC83B, 0xA0AE, + 0xC83C, 0xC1AF, 0xC83D, 0xA0AF, 0xC83E, 0xA0B0, 0xC83F, 0xA0B1, 0xC840, 0xC1B0, 0xC841, 0xA0B2, 0xC842, 0xA0B3, 0xC843, 0xA0B4, + 0xC844, 0xA0B5, 0xC845, 0xA0B6, 0xC846, 0xA0B7, 0xC847, 0xA0B8, 0xC848, 0xC1B1, 0xC849, 0xC1B2, 0xC84A, 0xA0B9, 0xC84B, 0xA0BA, + 0xC84C, 0xC1B3, 0xC84D, 0xC1B4, 0xC84E, 0xA0BB, 0xC84F, 0xA0BC, 0xC850, 0xA0BD, 0xC851, 0xA0BE, 0xC852, 0xA0BF, 0xC853, 0xA0C0, + 0xC854, 0xC1B5, 0xC855, 0xA0C1, 0xC856, 0xA0C2, 0xC857, 0xA0C3, 0xC858, 0xA0C4, 0xC859, 0xA0C5, 0xC85A, 0xA0C6, 0xC85B, 0xA0C7, + 0xC85C, 0xA0C8, 0xC85D, 0xA0C9, 0xC85E, 0xA0CA, 0xC85F, 0xA0CB, 0xC860, 0xA0CC, 0xC861, 0xA0CD, 0xC862, 0xA0CE, 0xC863, 0xA0CF, + 0xC864, 0xA0D0, 0xC865, 0xA0D1, 0xC866, 0xA0D2, 0xC867, 0xA0D3, 0xC868, 0xA0D4, 0xC869, 0xA0D5, 0xC86A, 0xA0D6, 0xC86B, 0xA0D7, + 0xC86C, 0xA0D8, 0xC86D, 0xA0D9, 0xC86E, 0xA0DA, 0xC86F, 0xA0DB, 0xC870, 0xC1B6, 0xC871, 0xC1B7, 0xC872, 0xA0DC, 0xC873, 0xA0DD, + 0xC874, 0xC1B8, 0xC875, 0xA0DE, 0xC876, 0xA0DF, 0xC877, 0xA0E0, 0xC878, 0xC1B9, 0xC879, 0xA0E1, 0xC87A, 0xC1BA, 0xC87B, 0xA0E2, + 0xC87C, 0xA0E3, 0xC87D, 0xA0E4, 0xC87E, 0xA0E5, 0xC87F, 0xA0E6, 0xC880, 0xC1BB, 0xC881, 0xC1BC, 0xC882, 0xA0E7, 0xC883, 0xC1BD, + 0xC884, 0xA0E8, 0xC885, 0xC1BE, 0xC886, 0xC1BF, 0xC887, 0xC1C0, 0xC888, 0xA0E9, 0xC889, 0xA0EA, 0xC88A, 0xA0EB, 0xC88B, 0xC1C1, + 0xC88C, 0xC1C2, 0xC88D, 0xC1C3, 0xC88E, 0xA0EC, 0xC88F, 0xA0ED, 0xC890, 0xA0EE, 0xC891, 0xA0EF, 0xC892, 0xA0F0, 0xC893, 0xA0F1, + 0xC894, 0xC1C4, 0xC895, 0xA0F2, 0xC896, 0xA0F3, 0xC897, 0xA0F4, 0xC898, 0xA0F5, 0xC899, 0xA0F6, 0xC89A, 0xA0F7, 0xC89B, 0xA0F8, + 0xC89C, 0xA0F9, 0xC89D, 0xC1C5, 0xC89E, 0xA0FA, 0xC89F, 0xC1C6, 0xC8A0, 0xA0FB, 0xC8A1, 0xC1C7, 0xC8A2, 0xA0FC, 0xC8A3, 0xA0FD, + 0xC8A4, 0xA0FE, 0xC8A5, 0xA141, 0xC8A6, 0xA142, 0xC8A7, 0xA143, 0xC8A8, 0xC1C8, 0xC8A9, 0xA144, 0xC8AA, 0xA145, 0xC8AB, 0xA146, + 0xC8AC, 0xA147, 0xC8AD, 0xA148, 0xC8AE, 0xA149, 0xC8AF, 0xA14A, 0xC8B0, 0xA14B, 0xC8B1, 0xA14C, 0xC8B2, 0xA14D, 0xC8B3, 0xA14E, + 0xC8B4, 0xA14F, 0xC8B5, 0xA150, 0xC8B6, 0xA151, 0xC8B7, 0xA152, 0xC8B8, 0xA153, 0xC8B9, 0xA154, 0xC8BA, 0xA155, 0xC8BB, 0xA156, + 0xC8BC, 0xC1C9, 0xC8BD, 0xC1CA, 0xC8BE, 0xA157, 0xC8BF, 0xA158, 0xC8C0, 0xA159, 0xC8C1, 0xA15A, 0xC8C2, 0xA161, 0xC8C3, 0xA162, + 0xC8C4, 0xC1CB, 0xC8C5, 0xA163, 0xC8C6, 0xA164, 0xC8C7, 0xA165, 0xC8C8, 0xC1CC, 0xC8C9, 0xA166, 0xC8CA, 0xA167, 0xC8CB, 0xA168, + 0xC8CC, 0xC1CD, 0xC8CD, 0xA169, 0xC8CE, 0xA16A, 0xC8CF, 0xA16B, 0xC8D0, 0xA16C, 0xC8D1, 0xA16D, 0xC8D2, 0xA16E, 0xC8D3, 0xA16F, + 0xC8D4, 0xC1CE, 0xC8D5, 0xC1CF, 0xC8D6, 0xA170, 0xC8D7, 0xC1D0, 0xC8D8, 0xA171, 0xC8D9, 0xC1D1, 0xC8DA, 0xA172, 0xC8DB, 0xA173, + 0xC8DC, 0xA174, 0xC8DD, 0xA175, 0xC8DE, 0xA176, 0xC8DF, 0xA177, 0xC8E0, 0xC1D2, 0xC8E1, 0xC1D3, 0xC8E2, 0xA178, 0xC8E3, 0xA179, + 0xC8E4, 0xC1D4, 0xC8E5, 0xA17A, 0xC8E6, 0xA181, 0xC8E7, 0xA182, 0xC8E8, 0xA183, 0xC8E9, 0xA184, 0xC8EA, 0xA185, 0xC8EB, 0xA186, + 0xC8EC, 0xA187, 0xC8ED, 0xA188, 0xC8EE, 0xA189, 0xC8EF, 0xA18A, 0xC8F0, 0xA18B, 0xC8F1, 0xA18C, 0xC8F2, 0xA18D, 0xC8F3, 0xA18E, + 0xC8F4, 0xA18F, 0xC8F5, 0xC1D5, 0xC8F6, 0xA190, 0xC8F7, 0xA191, 0xC8F8, 0xA192, 0xC8F9, 0xA193, 0xC8FA, 0xA194, 0xC8FB, 0xA195, + 0xC8FC, 0xC1D6, 0xC8FD, 0xC1D7, 0xC8FE, 0xA196, 0xC8FF, 0xA197, 0xC900, 0xC1D8, 0xC901, 0xA198, 0xC902, 0xA199, 0xC903, 0xA19A, + 0xC904, 0xC1D9, 0xC905, 0xC1DA, 0xC906, 0xC1DB, 0xC907, 0xA19B, 0xC908, 0xA19C, 0xC909, 0xA19D, 0xC90A, 0xA19E, 0xC90B, 0xA19F, + 0xC90C, 0xC1DC, 0xC90D, 0xC1DD, 0xC90E, 0xA1A0, 0xC90F, 0xC1DE, 0xC910, 0xA241, 0xC911, 0xC1DF, 0xC912, 0xA242, 0xC913, 0xA243, + 0xC914, 0xA244, 0xC915, 0xA245, 0xC916, 0xA246, 0xC917, 0xA247, 0xC918, 0xC1E0, 0xC919, 0xA248, 0xC91A, 0xA249, 0xC91B, 0xA24A, + 0xC91C, 0xA24B, 0xC91D, 0xA24C, 0xC91E, 0xA24D, 0xC91F, 0xA24E, 0xC920, 0xA24F, 0xC921, 0xA250, 0xC922, 0xA251, 0xC923, 0xA252, + 0xC924, 0xA253, 0xC925, 0xA254, 0xC926, 0xA255, 0xC927, 0xA256, 0xC928, 0xA257, 0xC929, 0xA258, 0xC92A, 0xA259, 0xC92B, 0xA25A, + 0xC92C, 0xC1E1, 0xC92D, 0xA261, 0xC92E, 0xA262, 0xC92F, 0xA263, 0xC930, 0xA264, 0xC931, 0xA265, 0xC932, 0xA266, 0xC933, 0xA267, + 0xC934, 0xC1E2, 0xC935, 0xA268, 0xC936, 0xA269, 0xC937, 0xA26A, 0xC938, 0xA26B, 0xC939, 0xA26C, 0xC93A, 0xA26D, 0xC93B, 0xA26E, + 0xC93C, 0xA26F, 0xC93D, 0xA270, 0xC93E, 0xA271, 0xC93F, 0xA272, 0xC940, 0xA273, 0xC941, 0xA274, 0xC942, 0xA275, 0xC943, 0xA276, + 0xC944, 0xA277, 0xC945, 0xA278, 0xC946, 0xA279, 0xC947, 0xA27A, 0xC948, 0xA281, 0xC949, 0xA282, 0xC94A, 0xA283, 0xC94B, 0xA284, + 0xC94C, 0xA285, 0xC94D, 0xA286, 0xC94E, 0xA287, 0xC94F, 0xA288, 0xC950, 0xC1E3, 0xC951, 0xC1E4, 0xC952, 0xA289, 0xC953, 0xA28A, + 0xC954, 0xC1E5, 0xC955, 0xA28B, 0xC956, 0xA28C, 0xC957, 0xA28D, 0xC958, 0xC1E6, 0xC959, 0xA28E, 0xC95A, 0xA28F, 0xC95B, 0xA290, + 0xC95C, 0xA291, 0xC95D, 0xA292, 0xC95E, 0xA293, 0xC95F, 0xA294, 0xC960, 0xC1E7, 0xC961, 0xC1E8, 0xC962, 0xA295, 0xC963, 0xC1E9, + 0xC964, 0xA296, 0xC965, 0xA297, 0xC966, 0xA298, 0xC967, 0xA299, 0xC968, 0xA29A, 0xC969, 0xA29B, 0xC96A, 0xA29C, 0xC96B, 0xA29D, + 0xC96C, 0xC1EA, 0xC96D, 0xA29E, 0xC96E, 0xA29F, 0xC96F, 0xA2A0, 0xC970, 0xC1EB, 0xC971, 0xA341, 0xC972, 0xA342, 0xC973, 0xA343, + 0xC974, 0xC1EC, 0xC975, 0xA344, 0xC976, 0xA345, 0xC977, 0xA346, 0xC978, 0xA347, 0xC979, 0xA348, 0xC97A, 0xA349, 0xC97B, 0xA34A, + 0xC97C, 0xC1ED, 0xC97D, 0xA34B, 0xC97E, 0xA34C, 0xC97F, 0xA34D, 0xC980, 0xA34E, 0xC981, 0xA34F, 0xC982, 0xA350, 0xC983, 0xA351, + 0xC984, 0xA352, 0xC985, 0xA353, 0xC986, 0xA354, 0xC987, 0xA355, 0xC988, 0xC1EE, 0xC989, 0xC1EF, 0xC98A, 0xA356, 0xC98B, 0xA357, + 0xC98C, 0xC1F0, 0xC98D, 0xA358, 0xC98E, 0xA359, 0xC98F, 0xA35A, 0xC990, 0xC1F1, 0xC991, 0xA361, 0xC992, 0xA362, 0xC993, 0xA363, + 0xC994, 0xA364, 0xC995, 0xA365, 0xC996, 0xA366, 0xC997, 0xA367, 0xC998, 0xC1F2, 0xC999, 0xC1F3, 0xC99A, 0xA368, 0xC99B, 0xC1F4, + 0xC99C, 0xA369, 0xC99D, 0xC1F5, 0xC99E, 0xA36A, 0xC99F, 0xA36B, 0xC9A0, 0xA36C, 0xC9A1, 0xA36D, 0xC9A2, 0xA36E, 0xC9A3, 0xA36F, + 0xC9A4, 0xA370, 0xC9A5, 0xA371, 0xC9A6, 0xA372, 0xC9A7, 0xA373, 0xC9A8, 0xA374, 0xC9A9, 0xA375, 0xC9AA, 0xA376, 0xC9AB, 0xA377, + 0xC9AC, 0xA378, 0xC9AD, 0xA379, 0xC9AE, 0xA37A, 0xC9AF, 0xA381, 0xC9B0, 0xA382, 0xC9B1, 0xA383, 0xC9B2, 0xA384, 0xC9B3, 0xA385, + 0xC9B4, 0xA386, 0xC9B5, 0xA387, 0xC9B6, 0xA388, 0xC9B7, 0xA389, 0xC9B8, 0xA38A, 0xC9B9, 0xA38B, 0xC9BA, 0xA38C, 0xC9BB, 0xA38D, + 0xC9BC, 0xA38E, 0xC9BD, 0xA38F, 0xC9BE, 0xA390, 0xC9BF, 0xA391, 0xC9C0, 0xC1F6, 0xC9C1, 0xC1F7, 0xC9C2, 0xA392, 0xC9C3, 0xA393, + 0xC9C4, 0xC1F8, 0xC9C5, 0xA394, 0xC9C6, 0xA395, 0xC9C7, 0xC1F9, 0xC9C8, 0xC1FA, 0xC9C9, 0xA396, 0xC9CA, 0xC1FB, 0xC9CB, 0xA397, + 0xC9CC, 0xA398, 0xC9CD, 0xA399, 0xC9CE, 0xA39A, 0xC9CF, 0xA39B, 0xC9D0, 0xC1FC, 0xC9D1, 0xC1FD, 0xC9D2, 0xA39C, 0xC9D3, 0xC1FE, + 0xC9D4, 0xA39D, 0xC9D5, 0xC2A1, 0xC9D6, 0xC2A2, 0xC9D7, 0xA39E, 0xC9D8, 0xA39F, 0xC9D9, 0xC2A3, 0xC9DA, 0xC2A4, 0xC9DB, 0xA3A0, + 0xC9DC, 0xC2A5, 0xC9DD, 0xC2A6, 0xC9DE, 0xA441, 0xC9DF, 0xA442, 0xC9E0, 0xC2A7, 0xC9E1, 0xA443, 0xC9E2, 0xC2A8, 0xC9E3, 0xA444, + 0xC9E4, 0xC2A9, 0xC9E5, 0xA445, 0xC9E6, 0xA446, 0xC9E7, 0xC2AA, 0xC9E8, 0xA447, 0xC9E9, 0xA448, 0xC9EA, 0xA449, 0xC9EB, 0xA44A, + 0xC9EC, 0xC2AB, 0xC9ED, 0xC2AC, 0xC9EE, 0xA44B, 0xC9EF, 0xC2AD, 0xC9F0, 0xC2AE, 0xC9F1, 0xC2AF, 0xC9F2, 0xA44C, 0xC9F3, 0xA44D, + 0xC9F4, 0xA44E, 0xC9F5, 0xA44F, 0xC9F6, 0xA450, 0xC9F7, 0xA451, 0xC9F8, 0xC2B0, 0xC9F9, 0xC2B1, 0xC9FA, 0xA452, 0xC9FB, 0xA453, + 0xC9FC, 0xC2B2, 0xC9FD, 0xA454, 0xC9FE, 0xA455, 0xC9FF, 0xA456, 0xCA00, 0xC2B3, 0xCA01, 0xA457, 0xCA02, 0xA458, 0xCA03, 0xA459, + 0xCA04, 0xA45A, 0xCA05, 0xA461, 0xCA06, 0xA462, 0xCA07, 0xA463, 0xCA08, 0xC2B4, 0xCA09, 0xC2B5, 0xCA0A, 0xA464, 0xCA0B, 0xC2B6, + 0xCA0C, 0xC2B7, 0xCA0D, 0xC2B8, 0xCA0E, 0xA465, 0xCA0F, 0xA466, 0xCA10, 0xA467, 0xCA11, 0xA468, 0xCA12, 0xA469, 0xCA13, 0xA46A, + 0xCA14, 0xC2B9, 0xCA15, 0xA46B, 0xCA16, 0xA46C, 0xCA17, 0xA46D, 0xCA18, 0xC2BA, 0xCA19, 0xA46E, 0xCA1A, 0xA46F, 0xCA1B, 0xA470, + 0xCA1C, 0xA471, 0xCA1D, 0xA472, 0xCA1E, 0xA473, 0xCA1F, 0xA474, 0xCA20, 0xA475, 0xCA21, 0xA476, 0xCA22, 0xA477, 0xCA23, 0xA478, + 0xCA24, 0xA479, 0xCA25, 0xA47A, 0xCA26, 0xA481, 0xCA27, 0xA482, 0xCA28, 0xA483, 0xCA29, 0xC2BB, 0xCA2A, 0xA484, 0xCA2B, 0xA485, + 0xCA2C, 0xA486, 0xCA2D, 0xA487, 0xCA2E, 0xA488, 0xCA2F, 0xA489, 0xCA30, 0xA48A, 0xCA31, 0xA48B, 0xCA32, 0xA48C, 0xCA33, 0xA48D, + 0xCA34, 0xA48E, 0xCA35, 0xA48F, 0xCA36, 0xA490, 0xCA37, 0xA491, 0xCA38, 0xA492, 0xCA39, 0xA493, 0xCA3A, 0xA494, 0xCA3B, 0xA495, + 0xCA3C, 0xA496, 0xCA3D, 0xA497, 0xCA3E, 0xA498, 0xCA3F, 0xA499, 0xCA40, 0xA49A, 0xCA41, 0xA49B, 0xCA42, 0xA49C, 0xCA43, 0xA49D, + 0xCA44, 0xA49E, 0xCA45, 0xA49F, 0xCA46, 0xA4A0, 0xCA47, 0xA541, 0xCA48, 0xA542, 0xCA49, 0xA543, 0xCA4A, 0xA544, 0xCA4B, 0xA545, + 0xCA4C, 0xC2BC, 0xCA4D, 0xC2BD, 0xCA4E, 0xA546, 0xCA4F, 0xA547, 0xCA50, 0xC2BE, 0xCA51, 0xA548, 0xCA52, 0xA549, 0xCA53, 0xA54A, + 0xCA54, 0xC2BF, 0xCA55, 0xA54B, 0xCA56, 0xA54C, 0xCA57, 0xA54D, 0xCA58, 0xA54E, 0xCA59, 0xA54F, 0xCA5A, 0xA550, 0xCA5B, 0xA551, + 0xCA5C, 0xC2C0, 0xCA5D, 0xC2C1, 0xCA5E, 0xA552, 0xCA5F, 0xC2C2, 0xCA60, 0xC2C3, 0xCA61, 0xC2C4, 0xCA62, 0xA553, 0xCA63, 0xA554, + 0xCA64, 0xA555, 0xCA65, 0xA556, 0xCA66, 0xA557, 0xCA67, 0xA558, 0xCA68, 0xC2C5, 0xCA69, 0xA559, 0xCA6A, 0xA55A, 0xCA6B, 0xA561, + 0xCA6C, 0xA562, 0xCA6D, 0xA563, 0xCA6E, 0xA564, 0xCA6F, 0xA565, 0xCA70, 0xA566, 0xCA71, 0xA567, 0xCA72, 0xA568, 0xCA73, 0xA569, + 0xCA74, 0xA56A, 0xCA75, 0xA56B, 0xCA76, 0xA56C, 0xCA77, 0xA56D, 0xCA78, 0xA56E, 0xCA79, 0xA56F, 0xCA7A, 0xA570, 0xCA7B, 0xA571, + 0xCA7C, 0xA572, 0xCA7D, 0xC2C6, 0xCA7E, 0xA573, 0xCA7F, 0xA574, 0xCA80, 0xA575, 0xCA81, 0xA576, 0xCA82, 0xA577, 0xCA83, 0xA578, + 0xCA84, 0xC2C7, 0xCA85, 0xA579, 0xCA86, 0xA57A, 0xCA87, 0xA581, 0xCA88, 0xA582, 0xCA89, 0xA583, 0xCA8A, 0xA584, 0xCA8B, 0xA585, + 0xCA8C, 0xA586, 0xCA8D, 0xA587, 0xCA8E, 0xA588, 0xCA8F, 0xA589, 0xCA90, 0xA58A, 0xCA91, 0xA58B, 0xCA92, 0xA58C, 0xCA93, 0xA58D, + 0xCA94, 0xA58E, 0xCA95, 0xA58F, 0xCA96, 0xA590, 0xCA97, 0xA591, 0xCA98, 0xC2C8, 0xCA99, 0xA592, 0xCA9A, 0xA593, 0xCA9B, 0xA594, + 0xCA9C, 0xA595, 0xCA9D, 0xA596, 0xCA9E, 0xA597, 0xCA9F, 0xA598, 0xCAA0, 0xA599, 0xCAA1, 0xA59A, 0xCAA2, 0xA59B, 0xCAA3, 0xA59C, + 0xCAA4, 0xA59D, 0xCAA5, 0xA59E, 0xCAA6, 0xA59F, 0xCAA7, 0xA5A0, 0xCAA8, 0xA641, 0xCAA9, 0xA642, 0xCAAA, 0xA643, 0xCAAB, 0xA644, + 0xCAAC, 0xA645, 0xCAAD, 0xA646, 0xCAAE, 0xA647, 0xCAAF, 0xA648, 0xCAB0, 0xA649, 0xCAB1, 0xA64A, 0xCAB2, 0xA64B, 0xCAB3, 0xA64C, + 0xCAB4, 0xA64D, 0xCAB5, 0xA64E, 0xCAB6, 0xA64F, 0xCAB7, 0xA650, 0xCAB8, 0xA651, 0xCAB9, 0xA652, 0xCABA, 0xA653, 0xCABB, 0xA654, + 0xCABC, 0xC2C9, 0xCABD, 0xC2CA, 0xCABE, 0xA655, 0xCABF, 0xA656, 0xCAC0, 0xC2CB, 0xCAC1, 0xA657, 0xCAC2, 0xA658, 0xCAC3, 0xA659, + 0xCAC4, 0xC2CC, 0xCAC5, 0xA65A, 0xCAC6, 0xA661, 0xCAC7, 0xA662, 0xCAC8, 0xA663, 0xCAC9, 0xA664, 0xCACA, 0xA665, 0xCACB, 0xA666, + 0xCACC, 0xC2CD, 0xCACD, 0xC2CE, 0xCACE, 0xA667, 0xCACF, 0xC2CF, 0xCAD0, 0xA668, 0xCAD1, 0xC2D0, 0xCAD2, 0xA669, 0xCAD3, 0xC2D1, + 0xCAD4, 0xA66A, 0xCAD5, 0xA66B, 0xCAD6, 0xA66C, 0xCAD7, 0xA66D, 0xCAD8, 0xC2D2, 0xCAD9, 0xC2D3, 0xCADA, 0xA66E, 0xCADB, 0xA66F, + 0xCADC, 0xA670, 0xCADD, 0xA671, 0xCADE, 0xA672, 0xCADF, 0xA673, 0xCAE0, 0xC2D4, 0xCAE1, 0xA674, 0xCAE2, 0xA675, 0xCAE3, 0xA676, + 0xCAE4, 0xA677, 0xCAE5, 0xA678, 0xCAE6, 0xA679, 0xCAE7, 0xA67A, 0xCAE8, 0xA681, 0xCAE9, 0xA682, 0xCAEA, 0xA683, 0xCAEB, 0xA684, + 0xCAEC, 0xC2D5, 0xCAED, 0xA685, 0xCAEE, 0xA686, 0xCAEF, 0xA687, 0xCAF0, 0xA688, 0xCAF1, 0xA689, 0xCAF2, 0xA68A, 0xCAF3, 0xA68B, + 0xCAF4, 0xC2D6, 0xCAF5, 0xA68C, 0xCAF6, 0xA68D, 0xCAF7, 0xA68E, 0xCAF8, 0xA68F, 0xCAF9, 0xA690, 0xCAFA, 0xA691, 0xCAFB, 0xA692, + 0xCAFC, 0xA693, 0xCAFD, 0xA694, 0xCAFE, 0xA695, 0xCAFF, 0xA696, 0xCB00, 0xA697, 0xCB01, 0xA698, 0xCB02, 0xA699, 0xCB03, 0xA69A, + 0xCB04, 0xA69B, 0xCB05, 0xA69C, 0xCB06, 0xA69D, 0xCB07, 0xA69E, 0xCB08, 0xC2D7, 0xCB09, 0xA69F, 0xCB0A, 0xA6A0, 0xCB0B, 0xA741, + 0xCB0C, 0xA742, 0xCB0D, 0xA743, 0xCB0E, 0xA744, 0xCB0F, 0xA745, 0xCB10, 0xC2D8, 0xCB11, 0xA746, 0xCB12, 0xA747, 0xCB13, 0xA748, + 0xCB14, 0xC2D9, 0xCB15, 0xA749, 0xCB16, 0xA74A, 0xCB17, 0xA74B, 0xCB18, 0xC2DA, 0xCB19, 0xA74C, 0xCB1A, 0xA74D, 0xCB1B, 0xA74E, + 0xCB1C, 0xA74F, 0xCB1D, 0xA750, 0xCB1E, 0xA751, 0xCB1F, 0xA752, 0xCB20, 0xC2DB, 0xCB21, 0xC2DC, 0xCB22, 0xA753, 0xCB23, 0xA754, + 0xCB24, 0xA755, 0xCB25, 0xA756, 0xCB26, 0xA757, 0xCB27, 0xA758, 0xCB28, 0xA759, 0xCB29, 0xA75A, 0xCB2A, 0xA761, 0xCB2B, 0xA762, + 0xCB2C, 0xA763, 0xCB2D, 0xA764, 0xCB2E, 0xA765, 0xCB2F, 0xA766, 0xCB30, 0xA767, 0xCB31, 0xA768, 0xCB32, 0xA769, 0xCB33, 0xA76A, + 0xCB34, 0xA76B, 0xCB35, 0xA76C, 0xCB36, 0xA76D, 0xCB37, 0xA76E, 0xCB38, 0xA76F, 0xCB39, 0xA770, 0xCB3A, 0xA771, 0xCB3B, 0xA772, + 0xCB3C, 0xA773, 0xCB3D, 0xA774, 0xCB3E, 0xA775, 0xCB3F, 0xA776, 0xCB40, 0xA777, 0xCB41, 0xC2DD, 0xCB42, 0xA778, 0xCB43, 0xA779, + 0xCB44, 0xA77A, 0xCB45, 0xA781, 0xCB46, 0xA782, 0xCB47, 0xA783, 0xCB48, 0xC2DE, 0xCB49, 0xC2DF, 0xCB4A, 0xA784, 0xCB4B, 0xA785, + 0xCB4C, 0xC2E0, 0xCB4D, 0xA786, 0xCB4E, 0xA787, 0xCB4F, 0xA788, 0xCB50, 0xC2E1, 0xCB51, 0xA789, 0xCB52, 0xA78A, 0xCB53, 0xA78B, + 0xCB54, 0xA78C, 0xCB55, 0xA78D, 0xCB56, 0xA78E, 0xCB57, 0xA78F, 0xCB58, 0xC2E2, 0xCB59, 0xC2E3, 0xCB5A, 0xA790, 0xCB5B, 0xA791, + 0xCB5C, 0xA792, 0xCB5D, 0xC2E4, 0xCB5E, 0xA793, 0xCB5F, 0xA794, 0xCB60, 0xA795, 0xCB61, 0xA796, 0xCB62, 0xA797, 0xCB63, 0xA798, + 0xCB64, 0xC2E5, 0xCB65, 0xA799, 0xCB66, 0xA79A, 0xCB67, 0xA79B, 0xCB68, 0xA79C, 0xCB69, 0xA79D, 0xCB6A, 0xA79E, 0xCB6B, 0xA79F, + 0xCB6C, 0xA7A0, 0xCB6D, 0xA841, 0xCB6E, 0xA842, 0xCB6F, 0xA843, 0xCB70, 0xA844, 0xCB71, 0xA845, 0xCB72, 0xA846, 0xCB73, 0xA847, + 0xCB74, 0xA848, 0xCB75, 0xA849, 0xCB76, 0xA84A, 0xCB77, 0xA84B, 0xCB78, 0xC2E6, 0xCB79, 0xC2E7, 0xCB7A, 0xA84C, 0xCB7B, 0xA84D, + 0xCB7C, 0xA84E, 0xCB7D, 0xA84F, 0xCB7E, 0xA850, 0xCB7F, 0xA851, 0xCB80, 0xA852, 0xCB81, 0xA853, 0xCB82, 0xA854, 0xCB83, 0xA855, + 0xCB84, 0xA856, 0xCB85, 0xA857, 0xCB86, 0xA858, 0xCB87, 0xA859, 0xCB88, 0xA85A, 0xCB89, 0xA861, 0xCB8A, 0xA862, 0xCB8B, 0xA863, + 0xCB8C, 0xA864, 0xCB8D, 0xA865, 0xCB8E, 0xA866, 0xCB8F, 0xA867, 0xCB90, 0xA868, 0xCB91, 0xA869, 0xCB92, 0xA86A, 0xCB93, 0xA86B, + 0xCB94, 0xA86C, 0xCB95, 0xA86D, 0xCB96, 0xA86E, 0xCB97, 0xA86F, 0xCB98, 0xA870, 0xCB99, 0xA871, 0xCB9A, 0xA872, 0xCB9B, 0xA873, + 0xCB9C, 0xC2E8, 0xCB9D, 0xA874, 0xCB9E, 0xA875, 0xCB9F, 0xA876, 0xCBA0, 0xA877, 0xCBA1, 0xA878, 0xCBA2, 0xA879, 0xCBA3, 0xA87A, + 0xCBA4, 0xA881, 0xCBA5, 0xA882, 0xCBA6, 0xA883, 0xCBA7, 0xA884, 0xCBA8, 0xA885, 0xCBA9, 0xA886, 0xCBAA, 0xA887, 0xCBAB, 0xA888, + 0xCBAC, 0xA889, 0xCBAD, 0xA88A, 0xCBAE, 0xA88B, 0xCBAF, 0xA88C, 0xCBB0, 0xA88D, 0xCBB1, 0xA88E, 0xCBB2, 0xA88F, 0xCBB3, 0xA890, + 0xCBB4, 0xA891, 0xCBB5, 0xA892, 0xCBB6, 0xA893, 0xCBB7, 0xA894, 0xCBB8, 0xC2E9, 0xCBB9, 0xA895, 0xCBBA, 0xA896, 0xCBBB, 0xA897, + 0xCBBC, 0xA898, 0xCBBD, 0xA899, 0xCBBE, 0xA89A, 0xCBBF, 0xA89B, 0xCBC0, 0xA89C, 0xCBC1, 0xA89D, 0xCBC2, 0xA89E, 0xCBC3, 0xA89F, + 0xCBC4, 0xA8A0, 0xCBC5, 0xA941, 0xCBC6, 0xA942, 0xCBC7, 0xA943, 0xCBC8, 0xA944, 0xCBC9, 0xA945, 0xCBCA, 0xA946, 0xCBCB, 0xA947, + 0xCBCC, 0xA948, 0xCBCD, 0xA949, 0xCBCE, 0xA94A, 0xCBCF, 0xA94B, 0xCBD0, 0xA94C, 0xCBD1, 0xA94D, 0xCBD2, 0xA94E, 0xCBD3, 0xA94F, + 0xCBD4, 0xC2EA, 0xCBD5, 0xA950, 0xCBD6, 0xA951, 0xCBD7, 0xA952, 0xCBD8, 0xA953, 0xCBD9, 0xA954, 0xCBDA, 0xA955, 0xCBDB, 0xA956, + 0xCBDC, 0xA957, 0xCBDD, 0xA958, 0xCBDE, 0xA959, 0xCBDF, 0xA95A, 0xCBE0, 0xA961, 0xCBE1, 0xA962, 0xCBE2, 0xA963, 0xCBE3, 0xA964, + 0xCBE4, 0xC2EB, 0xCBE5, 0xA965, 0xCBE6, 0xA966, 0xCBE7, 0xC2EC, 0xCBE8, 0xA967, 0xCBE9, 0xC2ED, 0xCBEA, 0xA968, 0xCBEB, 0xA969, + 0xCBEC, 0xA96A, 0xCBED, 0xA96B, 0xCBEE, 0xA96C, 0xCBEF, 0xA96D, 0xCBF0, 0xA96E, 0xCBF1, 0xA96F, 0xCBF2, 0xA970, 0xCBF3, 0xA971, + 0xCBF4, 0xA972, 0xCBF5, 0xA973, 0xCBF6, 0xA974, 0xCBF7, 0xA975, 0xCBF8, 0xA976, 0xCBF9, 0xA977, 0xCBFA, 0xA978, 0xCBFB, 0xA979, + 0xCBFC, 0xA97A, 0xCBFD, 0xA981, 0xCBFE, 0xA982, 0xCBFF, 0xA983, 0xCC00, 0xA984, 0xCC01, 0xA985, 0xCC02, 0xA986, 0xCC03, 0xA987, + 0xCC04, 0xA988, 0xCC05, 0xA989, 0xCC06, 0xA98A, 0xCC07, 0xA98B, 0xCC08, 0xA98C, 0xCC09, 0xA98D, 0xCC0A, 0xA98E, 0xCC0B, 0xA98F, + 0xCC0C, 0xC2EE, 0xCC0D, 0xC2EF, 0xCC0E, 0xA990, 0xCC0F, 0xA991, 0xCC10, 0xC2F0, 0xCC11, 0xA992, 0xCC12, 0xA993, 0xCC13, 0xA994, + 0xCC14, 0xC2F1, 0xCC15, 0xA995, 0xCC16, 0xA996, 0xCC17, 0xA997, 0xCC18, 0xA998, 0xCC19, 0xA999, 0xCC1A, 0xA99A, 0xCC1B, 0xA99B, + 0xCC1C, 0xC2F2, 0xCC1D, 0xC2F3, 0xCC1E, 0xA99C, 0xCC1F, 0xA99D, 0xCC20, 0xA99E, 0xCC21, 0xC2F4, 0xCC22, 0xC2F5, 0xCC23, 0xA99F, + 0xCC24, 0xA9A0, 0xCC25, 0xAA41, 0xCC26, 0xAA42, 0xCC27, 0xC2F6, 0xCC28, 0xC2F7, 0xCC29, 0xC2F8, 0xCC2A, 0xAA43, 0xCC2B, 0xAA44, + 0xCC2C, 0xC2F9, 0xCC2D, 0xAA45, 0xCC2E, 0xC2FA, 0xCC2F, 0xAA46, 0xCC30, 0xC2FB, 0xCC31, 0xAA47, 0xCC32, 0xAA48, 0xCC33, 0xAA49, + 0xCC34, 0xAA4A, 0xCC35, 0xAA4B, 0xCC36, 0xAA4C, 0xCC37, 0xAA4D, 0xCC38, 0xC2FC, 0xCC39, 0xC2FD, 0xCC3A, 0xAA4E, 0xCC3B, 0xC2FE, + 0xCC3C, 0xC3A1, 0xCC3D, 0xC3A2, 0xCC3E, 0xC3A3, 0xCC3F, 0xAA4F, 0xCC40, 0xAA50, 0xCC41, 0xAA51, 0xCC42, 0xAA52, 0xCC43, 0xAA53, + 0xCC44, 0xC3A4, 0xCC45, 0xC3A5, 0xCC46, 0xAA54, 0xCC47, 0xAA55, 0xCC48, 0xC3A6, 0xCC49, 0xAA56, 0xCC4A, 0xAA57, 0xCC4B, 0xAA58, + 0xCC4C, 0xC3A7, 0xCC4D, 0xAA59, 0xCC4E, 0xAA5A, 0xCC4F, 0xAA61, 0xCC50, 0xAA62, 0xCC51, 0xAA63, 0xCC52, 0xAA64, 0xCC53, 0xAA65, + 0xCC54, 0xC3A8, 0xCC55, 0xC3A9, 0xCC56, 0xAA66, 0xCC57, 0xC3AA, 0xCC58, 0xC3AB, 0xCC59, 0xC3AC, 0xCC5A, 0xAA67, 0xCC5B, 0xAA68, + 0xCC5C, 0xAA69, 0xCC5D, 0xAA6A, 0xCC5E, 0xAA6B, 0xCC5F, 0xAA6C, 0xCC60, 0xC3AD, 0xCC61, 0xAA6D, 0xCC62, 0xAA6E, 0xCC63, 0xAA6F, + 0xCC64, 0xC3AE, 0xCC65, 0xAA70, 0xCC66, 0xC3AF, 0xCC67, 0xAA71, 0xCC68, 0xC3B0, 0xCC69, 0xAA72, 0xCC6A, 0xAA73, 0xCC6B, 0xAA74, + 0xCC6C, 0xAA75, 0xCC6D, 0xAA76, 0xCC6E, 0xAA77, 0xCC6F, 0xAA78, 0xCC70, 0xC3B1, 0xCC71, 0xAA79, 0xCC72, 0xAA7A, 0xCC73, 0xAA81, + 0xCC74, 0xAA82, 0xCC75, 0xC3B2, 0xCC76, 0xAA83, 0xCC77, 0xAA84, 0xCC78, 0xAA85, 0xCC79, 0xAA86, 0xCC7A, 0xAA87, 0xCC7B, 0xAA88, + 0xCC7C, 0xAA89, 0xCC7D, 0xAA8A, 0xCC7E, 0xAA8B, 0xCC7F, 0xAA8C, 0xCC80, 0xAA8D, 0xCC81, 0xAA8E, 0xCC82, 0xAA8F, 0xCC83, 0xAA90, + 0xCC84, 0xAA91, 0xCC85, 0xAA92, 0xCC86, 0xAA93, 0xCC87, 0xAA94, 0xCC88, 0xAA95, 0xCC89, 0xAA96, 0xCC8A, 0xAA97, 0xCC8B, 0xAA98, + 0xCC8C, 0xAA99, 0xCC8D, 0xAA9A, 0xCC8E, 0xAA9B, 0xCC8F, 0xAA9C, 0xCC90, 0xAA9D, 0xCC91, 0xAA9E, 0xCC92, 0xAA9F, 0xCC93, 0xAAA0, + 0xCC94, 0xAB41, 0xCC95, 0xAB42, 0xCC96, 0xAB43, 0xCC97, 0xAB44, 0xCC98, 0xC3B3, 0xCC99, 0xC3B4, 0xCC9A, 0xAB45, 0xCC9B, 0xAB46, + 0xCC9C, 0xC3B5, 0xCC9D, 0xAB47, 0xCC9E, 0xAB48, 0xCC9F, 0xAB49, 0xCCA0, 0xC3B6, 0xCCA1, 0xAB4A, 0xCCA2, 0xAB4B, 0xCCA3, 0xAB4C, + 0xCCA4, 0xAB4D, 0xCCA5, 0xAB4E, 0xCCA6, 0xAB4F, 0xCCA7, 0xAB50, 0xCCA8, 0xC3B7, 0xCCA9, 0xC3B8, 0xCCAA, 0xAB51, 0xCCAB, 0xC3B9, + 0xCCAC, 0xC3BA, 0xCCAD, 0xC3BB, 0xCCAE, 0xAB52, 0xCCAF, 0xAB53, 0xCCB0, 0xAB54, 0xCCB1, 0xAB55, 0xCCB2, 0xAB56, 0xCCB3, 0xAB57, + 0xCCB4, 0xC3BC, 0xCCB5, 0xC3BD, 0xCCB6, 0xAB58, 0xCCB7, 0xAB59, 0xCCB8, 0xC3BE, 0xCCB9, 0xAB5A, 0xCCBA, 0xAB61, 0xCCBB, 0xAB62, + 0xCCBC, 0xC3BF, 0xCCBD, 0xAB63, 0xCCBE, 0xAB64, 0xCCBF, 0xAB65, 0xCCC0, 0xAB66, 0xCCC1, 0xAB67, 0xCCC2, 0xAB68, 0xCCC3, 0xAB69, + 0xCCC4, 0xC3C0, 0xCCC5, 0xC3C1, 0xCCC6, 0xAB6A, 0xCCC7, 0xC3C2, 0xCCC8, 0xAB6B, 0xCCC9, 0xC3C3, 0xCCCA, 0xAB6C, 0xCCCB, 0xAB6D, + 0xCCCC, 0xAB6E, 0xCCCD, 0xAB6F, 0xCCCE, 0xAB70, 0xCCCF, 0xAB71, 0xCCD0, 0xC3C4, 0xCCD1, 0xAB72, 0xCCD2, 0xAB73, 0xCCD3, 0xAB74, + 0xCCD4, 0xC3C5, 0xCCD5, 0xAB75, 0xCCD6, 0xAB76, 0xCCD7, 0xAB77, 0xCCD8, 0xAB78, 0xCCD9, 0xAB79, 0xCCDA, 0xAB7A, 0xCCDB, 0xAB81, + 0xCCDC, 0xAB82, 0xCCDD, 0xAB83, 0xCCDE, 0xAB84, 0xCCDF, 0xAB85, 0xCCE0, 0xAB86, 0xCCE1, 0xAB87, 0xCCE2, 0xAB88, 0xCCE3, 0xAB89, + 0xCCE4, 0xC3C6, 0xCCE5, 0xAB8A, 0xCCE6, 0xAB8B, 0xCCE7, 0xAB8C, 0xCCE8, 0xAB8D, 0xCCE9, 0xAB8E, 0xCCEA, 0xAB8F, 0xCCEB, 0xAB90, + 0xCCEC, 0xC3C7, 0xCCED, 0xAB91, 0xCCEE, 0xAB92, 0xCCEF, 0xAB93, 0xCCF0, 0xC3C8, 0xCCF1, 0xAB94, 0xCCF2, 0xAB95, 0xCCF3, 0xAB96, + 0xCCF4, 0xAB97, 0xCCF5, 0xAB98, 0xCCF6, 0xAB99, 0xCCF7, 0xAB9A, 0xCCF8, 0xAB9B, 0xCCF9, 0xAB9C, 0xCCFA, 0xAB9D, 0xCCFB, 0xAB9E, + 0xCCFC, 0xAB9F, 0xCCFD, 0xABA0, 0xCCFE, 0xAC41, 0xCCFF, 0xAC42, 0xCD00, 0xAC43, 0xCD01, 0xC3C9, 0xCD02, 0xAC44, 0xCD03, 0xAC45, + 0xCD04, 0xAC46, 0xCD05, 0xAC47, 0xCD06, 0xAC48, 0xCD07, 0xAC49, 0xCD08, 0xC3CA, 0xCD09, 0xC3CB, 0xCD0A, 0xAC4A, 0xCD0B, 0xAC4B, + 0xCD0C, 0xC3CC, 0xCD0D, 0xAC4C, 0xCD0E, 0xAC4D, 0xCD0F, 0xAC4E, 0xCD10, 0xC3CD, 0xCD11, 0xAC4F, 0xCD12, 0xAC50, 0xCD13, 0xAC51, + 0xCD14, 0xAC52, 0xCD15, 0xAC53, 0xCD16, 0xAC54, 0xCD17, 0xAC55, 0xCD18, 0xC3CE, 0xCD19, 0xC3CF, 0xCD1A, 0xAC56, 0xCD1B, 0xC3D0, + 0xCD1C, 0xAC57, 0xCD1D, 0xC3D1, 0xCD1E, 0xAC58, 0xCD1F, 0xAC59, 0xCD20, 0xAC5A, 0xCD21, 0xAC61, 0xCD22, 0xAC62, 0xCD23, 0xAC63, + 0xCD24, 0xC3D2, 0xCD25, 0xAC64, 0xCD26, 0xAC65, 0xCD27, 0xAC66, 0xCD28, 0xC3D3, 0xCD29, 0xAC67, 0xCD2A, 0xAC68, 0xCD2B, 0xAC69, + 0xCD2C, 0xC3D4, 0xCD2D, 0xAC6A, 0xCD2E, 0xAC6B, 0xCD2F, 0xAC6C, 0xCD30, 0xAC6D, 0xCD31, 0xAC6E, 0xCD32, 0xAC6F, 0xCD33, 0xAC70, + 0xCD34, 0xAC71, 0xCD35, 0xAC72, 0xCD36, 0xAC73, 0xCD37, 0xAC74, 0xCD38, 0xAC75, 0xCD39, 0xC3D5, 0xCD3A, 0xAC76, 0xCD3B, 0xAC77, + 0xCD3C, 0xAC78, 0xCD3D, 0xAC79, 0xCD3E, 0xAC7A, 0xCD3F, 0xAC81, 0xCD40, 0xAC82, 0xCD41, 0xAC83, 0xCD42, 0xAC84, 0xCD43, 0xAC85, + 0xCD44, 0xAC86, 0xCD45, 0xAC87, 0xCD46, 0xAC88, 0xCD47, 0xAC89, 0xCD48, 0xAC8A, 0xCD49, 0xAC8B, 0xCD4A, 0xAC8C, 0xCD4B, 0xAC8D, + 0xCD4C, 0xAC8E, 0xCD4D, 0xAC8F, 0xCD4E, 0xAC90, 0xCD4F, 0xAC91, 0xCD50, 0xAC92, 0xCD51, 0xAC93, 0xCD52, 0xAC94, 0xCD53, 0xAC95, + 0xCD54, 0xAC96, 0xCD55, 0xAC97, 0xCD56, 0xAC98, 0xCD57, 0xAC99, 0xCD58, 0xAC9A, 0xCD59, 0xAC9B, 0xCD5A, 0xAC9C, 0xCD5B, 0xAC9D, + 0xCD5C, 0xC3D6, 0xCD5D, 0xAC9E, 0xCD5E, 0xAC9F, 0xCD5F, 0xACA0, 0xCD60, 0xC3D7, 0xCD61, 0xAD41, 0xCD62, 0xAD42, 0xCD63, 0xAD43, + 0xCD64, 0xC3D8, 0xCD65, 0xAD44, 0xCD66, 0xAD45, 0xCD67, 0xAD46, 0xCD68, 0xAD47, 0xCD69, 0xAD48, 0xCD6A, 0xAD49, 0xCD6B, 0xAD4A, + 0xCD6C, 0xC3D9, 0xCD6D, 0xC3DA, 0xCD6E, 0xAD4B, 0xCD6F, 0xC3DB, 0xCD70, 0xAD4C, 0xCD71, 0xC3DC, 0xCD72, 0xAD4D, 0xCD73, 0xAD4E, + 0xCD74, 0xAD4F, 0xCD75, 0xAD50, 0xCD76, 0xAD51, 0xCD77, 0xAD52, 0xCD78, 0xC3DD, 0xCD79, 0xAD53, 0xCD7A, 0xAD54, 0xCD7B, 0xAD55, + 0xCD7C, 0xAD56, 0xCD7D, 0xAD57, 0xCD7E, 0xAD58, 0xCD7F, 0xAD59, 0xCD80, 0xAD5A, 0xCD81, 0xAD61, 0xCD82, 0xAD62, 0xCD83, 0xAD63, + 0xCD84, 0xAD64, 0xCD85, 0xAD65, 0xCD86, 0xAD66, 0xCD87, 0xAD67, 0xCD88, 0xC3DE, 0xCD89, 0xAD68, 0xCD8A, 0xAD69, 0xCD8B, 0xAD6A, + 0xCD8C, 0xAD6B, 0xCD8D, 0xAD6C, 0xCD8E, 0xAD6D, 0xCD8F, 0xAD6E, 0xCD90, 0xAD6F, 0xCD91, 0xAD70, 0xCD92, 0xAD71, 0xCD93, 0xAD72, + 0xCD94, 0xC3DF, 0xCD95, 0xC3E0, 0xCD96, 0xAD73, 0xCD97, 0xAD74, 0xCD98, 0xC3E1, 0xCD99, 0xAD75, 0xCD9A, 0xAD76, 0xCD9B, 0xAD77, + 0xCD9C, 0xC3E2, 0xCD9D, 0xAD78, 0xCD9E, 0xAD79, 0xCD9F, 0xAD7A, 0xCDA0, 0xAD81, 0xCDA1, 0xAD82, 0xCDA2, 0xAD83, 0xCDA3, 0xAD84, + 0xCDA4, 0xC3E3, 0xCDA5, 0xC3E4, 0xCDA6, 0xAD85, 0xCDA7, 0xC3E5, 0xCDA8, 0xAD86, 0xCDA9, 0xC3E6, 0xCDAA, 0xAD87, 0xCDAB, 0xAD88, + 0xCDAC, 0xAD89, 0xCDAD, 0xAD8A, 0xCDAE, 0xAD8B, 0xCDAF, 0xAD8C, 0xCDB0, 0xC3E7, 0xCDB1, 0xAD8D, 0xCDB2, 0xAD8E, 0xCDB3, 0xAD8F, + 0xCDB4, 0xAD90, 0xCDB5, 0xAD91, 0xCDB6, 0xAD92, 0xCDB7, 0xAD93, 0xCDB8, 0xAD94, 0xCDB9, 0xAD95, 0xCDBA, 0xAD96, 0xCDBB, 0xAD97, + 0xCDBC, 0xAD98, 0xCDBD, 0xAD99, 0xCDBE, 0xAD9A, 0xCDBF, 0xAD9B, 0xCDC0, 0xAD9C, 0xCDC1, 0xAD9D, 0xCDC2, 0xAD9E, 0xCDC3, 0xAD9F, + 0xCDC4, 0xC3E8, 0xCDC5, 0xADA0, 0xCDC6, 0xAE41, 0xCDC7, 0xAE42, 0xCDC8, 0xAE43, 0xCDC9, 0xAE44, 0xCDCA, 0xAE45, 0xCDCB, 0xAE46, + 0xCDCC, 0xC3E9, 0xCDCD, 0xAE47, 0xCDCE, 0xAE48, 0xCDCF, 0xAE49, 0xCDD0, 0xC3EA, 0xCDD1, 0xAE4A, 0xCDD2, 0xAE4B, 0xCDD3, 0xAE4C, + 0xCDD4, 0xAE4D, 0xCDD5, 0xAE4E, 0xCDD6, 0xAE4F, 0xCDD7, 0xAE50, 0xCDD8, 0xAE51, 0xCDD9, 0xAE52, 0xCDDA, 0xAE53, 0xCDDB, 0xAE54, + 0xCDDC, 0xAE55, 0xCDDD, 0xAE56, 0xCDDE, 0xAE57, 0xCDDF, 0xAE58, 0xCDE0, 0xAE59, 0xCDE1, 0xAE5A, 0xCDE2, 0xAE61, 0xCDE3, 0xAE62, + 0xCDE4, 0xAE63, 0xCDE5, 0xAE64, 0xCDE6, 0xAE65, 0xCDE7, 0xAE66, 0xCDE8, 0xC3EB, 0xCDE9, 0xAE67, 0xCDEA, 0xAE68, 0xCDEB, 0xAE69, + 0xCDEC, 0xC3EC, 0xCDED, 0xAE6A, 0xCDEE, 0xAE6B, 0xCDEF, 0xAE6C, 0xCDF0, 0xC3ED, 0xCDF1, 0xAE6D, 0xCDF2, 0xAE6E, 0xCDF3, 0xAE6F, + 0xCDF4, 0xAE70, 0xCDF5, 0xAE71, 0xCDF6, 0xAE72, 0xCDF7, 0xAE73, 0xCDF8, 0xC3EE, 0xCDF9, 0xC3EF, 0xCDFA, 0xAE74, 0xCDFB, 0xC3F0, + 0xCDFC, 0xAE75, 0xCDFD, 0xC3F1, 0xCDFE, 0xAE76, 0xCDFF, 0xAE77, 0xCE00, 0xAE78, 0xCE01, 0xAE79, 0xCE02, 0xAE7A, 0xCE03, 0xAE81, + 0xCE04, 0xC3F2, 0xCE05, 0xAE82, 0xCE06, 0xAE83, 0xCE07, 0xAE84, 0xCE08, 0xC3F3, 0xCE09, 0xAE85, 0xCE0A, 0xAE86, 0xCE0B, 0xAE87, + 0xCE0C, 0xC3F4, 0xCE0D, 0xAE88, 0xCE0E, 0xAE89, 0xCE0F, 0xAE8A, 0xCE10, 0xAE8B, 0xCE11, 0xAE8C, 0xCE12, 0xAE8D, 0xCE13, 0xAE8E, + 0xCE14, 0xC3F5, 0xCE15, 0xAE8F, 0xCE16, 0xAE90, 0xCE17, 0xAE91, 0xCE18, 0xAE92, 0xCE19, 0xC3F6, 0xCE1A, 0xAE93, 0xCE1B, 0xAE94, + 0xCE1C, 0xAE95, 0xCE1D, 0xAE96, 0xCE1E, 0xAE97, 0xCE1F, 0xAE98, 0xCE20, 0xC3F7, 0xCE21, 0xC3F8, 0xCE22, 0xAE99, 0xCE23, 0xAE9A, + 0xCE24, 0xC3F9, 0xCE25, 0xAE9B, 0xCE26, 0xAE9C, 0xCE27, 0xAE9D, 0xCE28, 0xC3FA, 0xCE29, 0xAE9E, 0xCE2A, 0xAE9F, 0xCE2B, 0xAEA0, + 0xCE2C, 0xAF41, 0xCE2D, 0xAF42, 0xCE2E, 0xAF43, 0xCE2F, 0xAF44, 0xCE30, 0xC3FB, 0xCE31, 0xC3FC, 0xCE32, 0xAF45, 0xCE33, 0xC3FD, + 0xCE34, 0xAF46, 0xCE35, 0xC3FE, 0xCE36, 0xAF47, 0xCE37, 0xAF48, 0xCE38, 0xAF49, 0xCE39, 0xAF4A, 0xCE3A, 0xAF4B, 0xCE3B, 0xAF4C, + 0xCE3C, 0xAF4D, 0xCE3D, 0xAF4E, 0xCE3E, 0xAF4F, 0xCE3F, 0xAF50, 0xCE40, 0xAF51, 0xCE41, 0xAF52, 0xCE42, 0xAF53, 0xCE43, 0xAF54, + 0xCE44, 0xAF55, 0xCE45, 0xAF56, 0xCE46, 0xAF57, 0xCE47, 0xAF58, 0xCE48, 0xAF59, 0xCE49, 0xAF5A, 0xCE4A, 0xAF61, 0xCE4B, 0xAF62, + 0xCE4C, 0xAF63, 0xCE4D, 0xAF64, 0xCE4E, 0xAF65, 0xCE4F, 0xAF66, 0xCE50, 0xAF67, 0xCE51, 0xAF68, 0xCE52, 0xAF69, 0xCE53, 0xAF6A, + 0xCE54, 0xAF6B, 0xCE55, 0xAF6C, 0xCE56, 0xAF6D, 0xCE57, 0xAF6E, 0xCE58, 0xC4A1, 0xCE59, 0xC4A2, 0xCE5A, 0xAF6F, 0xCE5B, 0xAF70, + 0xCE5C, 0xC4A3, 0xCE5D, 0xAF71, 0xCE5E, 0xAF72, 0xCE5F, 0xC4A4, 0xCE60, 0xC4A5, 0xCE61, 0xC4A6, 0xCE62, 0xAF73, 0xCE63, 0xAF74, + 0xCE64, 0xAF75, 0xCE65, 0xAF76, 0xCE66, 0xAF77, 0xCE67, 0xAF78, 0xCE68, 0xC4A7, 0xCE69, 0xC4A8, 0xCE6A, 0xAF79, 0xCE6B, 0xC4A9, + 0xCE6C, 0xAF7A, 0xCE6D, 0xC4AA, 0xCE6E, 0xAF81, 0xCE6F, 0xAF82, 0xCE70, 0xAF83, 0xCE71, 0xAF84, 0xCE72, 0xAF85, 0xCE73, 0xAF86, + 0xCE74, 0xC4AB, 0xCE75, 0xC4AC, 0xCE76, 0xAF87, 0xCE77, 0xAF88, 0xCE78, 0xC4AD, 0xCE79, 0xAF89, 0xCE7A, 0xAF8A, 0xCE7B, 0xAF8B, + 0xCE7C, 0xC4AE, 0xCE7D, 0xAF8C, 0xCE7E, 0xAF8D, 0xCE7F, 0xAF8E, 0xCE80, 0xAF8F, 0xCE81, 0xAF90, 0xCE82, 0xAF91, 0xCE83, 0xAF92, + 0xCE84, 0xC4AF, 0xCE85, 0xC4B0, 0xCE86, 0xAF93, 0xCE87, 0xC4B1, 0xCE88, 0xAF94, 0xCE89, 0xC4B2, 0xCE8A, 0xAF95, 0xCE8B, 0xAF96, + 0xCE8C, 0xAF97, 0xCE8D, 0xAF98, 0xCE8E, 0xAF99, 0xCE8F, 0xAF9A, 0xCE90, 0xC4B3, 0xCE91, 0xC4B4, 0xCE92, 0xAF9B, 0xCE93, 0xAF9C, + 0xCE94, 0xC4B5, 0xCE95, 0xAF9D, 0xCE96, 0xAF9E, 0xCE97, 0xAF9F, 0xCE98, 0xC4B6, 0xCE99, 0xAFA0, 0xCE9A, 0xB041, 0xCE9B, 0xB042, + 0xCE9C, 0xB043, 0xCE9D, 0xB044, 0xCE9E, 0xB045, 0xCE9F, 0xB046, 0xCEA0, 0xC4B7, 0xCEA1, 0xC4B8, 0xCEA2, 0xB047, 0xCEA3, 0xC4B9, + 0xCEA4, 0xC4BA, 0xCEA5, 0xC4BB, 0xCEA6, 0xB048, 0xCEA7, 0xB049, 0xCEA8, 0xB04A, 0xCEA9, 0xB04B, 0xCEAA, 0xB04C, 0xCEAB, 0xB04D, + 0xCEAC, 0xC4BC, 0xCEAD, 0xC4BD, 0xCEAE, 0xB04E, 0xCEAF, 0xB04F, 0xCEB0, 0xB050, 0xCEB1, 0xB051, 0xCEB2, 0xB052, 0xCEB3, 0xB053, + 0xCEB4, 0xB054, 0xCEB5, 0xB055, 0xCEB6, 0xB056, 0xCEB7, 0xB057, 0xCEB8, 0xB058, 0xCEB9, 0xB059, 0xCEBA, 0xB05A, 0xCEBB, 0xB061, + 0xCEBC, 0xB062, 0xCEBD, 0xB063, 0xCEBE, 0xB064, 0xCEBF, 0xB065, 0xCEC0, 0xB066, 0xCEC1, 0xC4BE, 0xCEC2, 0xB067, 0xCEC3, 0xB068, + 0xCEC4, 0xB069, 0xCEC5, 0xB06A, 0xCEC6, 0xB06B, 0xCEC7, 0xB06C, 0xCEC8, 0xB06D, 0xCEC9, 0xB06E, 0xCECA, 0xB06F, 0xCECB, 0xB070, + 0xCECC, 0xB071, 0xCECD, 0xB072, 0xCECE, 0xB073, 0xCECF, 0xB074, 0xCED0, 0xB075, 0xCED1, 0xB076, 0xCED2, 0xB077, 0xCED3, 0xB078, + 0xCED4, 0xB079, 0xCED5, 0xB07A, 0xCED6, 0xB081, 0xCED7, 0xB082, 0xCED8, 0xB083, 0xCED9, 0xB084, 0xCEDA, 0xB085, 0xCEDB, 0xB086, + 0xCEDC, 0xB087, 0xCEDD, 0xB088, 0xCEDE, 0xB089, 0xCEDF, 0xB08A, 0xCEE0, 0xB08B, 0xCEE1, 0xB08C, 0xCEE2, 0xB08D, 0xCEE3, 0xB08E, + 0xCEE4, 0xC4BF, 0xCEE5, 0xC4C0, 0xCEE6, 0xB08F, 0xCEE7, 0xB090, 0xCEE8, 0xC4C1, 0xCEE9, 0xB091, 0xCEEA, 0xB092, 0xCEEB, 0xC4C2, + 0xCEEC, 0xC4C3, 0xCEED, 0xB093, 0xCEEE, 0xB094, 0xCEEF, 0xB095, 0xCEF0, 0xB096, 0xCEF1, 0xB097, 0xCEF2, 0xB098, 0xCEF3, 0xB099, + 0xCEF4, 0xC4C4, 0xCEF5, 0xC4C5, 0xCEF6, 0xB09A, 0xCEF7, 0xC4C6, 0xCEF8, 0xC4C7, 0xCEF9, 0xC4C8, 0xCEFA, 0xB09B, 0xCEFB, 0xB09C, + 0xCEFC, 0xB09D, 0xCEFD, 0xB09E, 0xCEFE, 0xB09F, 0xCEFF, 0xB0A0, 0xCF00, 0xC4C9, 0xCF01, 0xC4CA, 0xCF02, 0xB141, 0xCF03, 0xB142, + 0xCF04, 0xC4CB, 0xCF05, 0xB143, 0xCF06, 0xB144, 0xCF07, 0xB145, 0xCF08, 0xC4CC, 0xCF09, 0xB146, 0xCF0A, 0xB147, 0xCF0B, 0xB148, + 0xCF0C, 0xB149, 0xCF0D, 0xB14A, 0xCF0E, 0xB14B, 0xCF0F, 0xB14C, 0xCF10, 0xC4CD, 0xCF11, 0xC4CE, 0xCF12, 0xB14D, 0xCF13, 0xC4CF, + 0xCF14, 0xB14E, 0xCF15, 0xC4D0, 0xCF16, 0xB14F, 0xCF17, 0xB150, 0xCF18, 0xB151, 0xCF19, 0xB152, 0xCF1A, 0xB153, 0xCF1B, 0xB154, + 0xCF1C, 0xC4D1, 0xCF1D, 0xB155, 0xCF1E, 0xB156, 0xCF1F, 0xB157, 0xCF20, 0xC4D2, 0xCF21, 0xB158, 0xCF22, 0xB159, 0xCF23, 0xB15A, + 0xCF24, 0xC4D3, 0xCF25, 0xB161, 0xCF26, 0xB162, 0xCF27, 0xB163, 0xCF28, 0xB164, 0xCF29, 0xB165, 0xCF2A, 0xB166, 0xCF2B, 0xB167, + 0xCF2C, 0xC4D4, 0xCF2D, 0xC4D5, 0xCF2E, 0xB168, 0xCF2F, 0xC4D6, 0xCF30, 0xC4D7, 0xCF31, 0xC4D8, 0xCF32, 0xB169, 0xCF33, 0xB16A, + 0xCF34, 0xB16B, 0xCF35, 0xB16C, 0xCF36, 0xB16D, 0xCF37, 0xB16E, 0xCF38, 0xC4D9, 0xCF39, 0xB16F, 0xCF3A, 0xB170, 0xCF3B, 0xB171, + 0xCF3C, 0xB172, 0xCF3D, 0xB173, 0xCF3E, 0xB174, 0xCF3F, 0xB175, 0xCF40, 0xB176, 0xCF41, 0xB177, 0xCF42, 0xB178, 0xCF43, 0xB179, + 0xCF44, 0xB17A, 0xCF45, 0xB181, 0xCF46, 0xB182, 0xCF47, 0xB183, 0xCF48, 0xB184, 0xCF49, 0xB185, 0xCF4A, 0xB186, 0xCF4B, 0xB187, + 0xCF4C, 0xB188, 0xCF4D, 0xB189, 0xCF4E, 0xB18A, 0xCF4F, 0xB18B, 0xCF50, 0xB18C, 0xCF51, 0xB18D, 0xCF52, 0xB18E, 0xCF53, 0xB18F, + 0xCF54, 0xC4DA, 0xCF55, 0xC4DB, 0xCF56, 0xB190, 0xCF57, 0xB191, 0xCF58, 0xC4DC, 0xCF59, 0xB192, 0xCF5A, 0xB193, 0xCF5B, 0xB194, + 0xCF5C, 0xC4DD, 0xCF5D, 0xB195, 0xCF5E, 0xB196, 0xCF5F, 0xB197, 0xCF60, 0xB198, 0xCF61, 0xB199, 0xCF62, 0xB19A, 0xCF63, 0xB19B, + 0xCF64, 0xC4DE, 0xCF65, 0xC4DF, 0xCF66, 0xB19C, 0xCF67, 0xC4E0, 0xCF68, 0xB19D, 0xCF69, 0xC4E1, 0xCF6A, 0xB19E, 0xCF6B, 0xB19F, + 0xCF6C, 0xB1A0, 0xCF6D, 0xB241, 0xCF6E, 0xB242, 0xCF6F, 0xB243, 0xCF70, 0xC4E2, 0xCF71, 0xC4E3, 0xCF72, 0xB244, 0xCF73, 0xB245, + 0xCF74, 0xC4E4, 0xCF75, 0xB246, 0xCF76, 0xB247, 0xCF77, 0xB248, 0xCF78, 0xC4E5, 0xCF79, 0xB249, 0xCF7A, 0xB24A, 0xCF7B, 0xB24B, + 0xCF7C, 0xB24C, 0xCF7D, 0xB24D, 0xCF7E, 0xB24E, 0xCF7F, 0xB24F, 0xCF80, 0xC4E6, 0xCF81, 0xB250, 0xCF82, 0xB251, 0xCF83, 0xB252, + 0xCF84, 0xB253, 0xCF85, 0xC4E7, 0xCF86, 0xB254, 0xCF87, 0xB255, 0xCF88, 0xB256, 0xCF89, 0xB257, 0xCF8A, 0xB258, 0xCF8B, 0xB259, + 0xCF8C, 0xC4E8, 0xCF8D, 0xB25A, 0xCF8E, 0xB261, 0xCF8F, 0xB262, 0xCF90, 0xB263, 0xCF91, 0xB264, 0xCF92, 0xB265, 0xCF93, 0xB266, + 0xCF94, 0xB267, 0xCF95, 0xB268, 0xCF96, 0xB269, 0xCF97, 0xB26A, 0xCF98, 0xB26B, 0xCF99, 0xB26C, 0xCF9A, 0xB26D, 0xCF9B, 0xB26E, + 0xCF9C, 0xB26F, 0xCF9D, 0xB270, 0xCF9E, 0xB271, 0xCF9F, 0xB272, 0xCFA0, 0xB273, 0xCFA1, 0xC4E9, 0xCFA2, 0xB274, 0xCFA3, 0xB275, + 0xCFA4, 0xB276, 0xCFA5, 0xB277, 0xCFA6, 0xB278, 0xCFA7, 0xB279, 0xCFA8, 0xC4EA, 0xCFA9, 0xB27A, 0xCFAA, 0xB281, 0xCFAB, 0xB282, + 0xCFAC, 0xB283, 0xCFAD, 0xB284, 0xCFAE, 0xB285, 0xCFAF, 0xB286, 0xCFB0, 0xC4EB, 0xCFB1, 0xB287, 0xCFB2, 0xB288, 0xCFB3, 0xB289, + 0xCFB4, 0xB28A, 0xCFB5, 0xB28B, 0xCFB6, 0xB28C, 0xCFB7, 0xB28D, 0xCFB8, 0xB28E, 0xCFB9, 0xB28F, 0xCFBA, 0xB290, 0xCFBB, 0xB291, + 0xCFBC, 0xB292, 0xCFBD, 0xB293, 0xCFBE, 0xB294, 0xCFBF, 0xB295, 0xCFC0, 0xB296, 0xCFC1, 0xB297, 0xCFC2, 0xB298, 0xCFC3, 0xB299, + 0xCFC4, 0xC4EC, 0xCFC5, 0xB29A, 0xCFC6, 0xB29B, 0xCFC7, 0xB29C, 0xCFC8, 0xB29D, 0xCFC9, 0xB29E, 0xCFCA, 0xB29F, 0xCFCB, 0xB2A0, + 0xCFCC, 0xB341, 0xCFCD, 0xB342, 0xCFCE, 0xB343, 0xCFCF, 0xB344, 0xCFD0, 0xB345, 0xCFD1, 0xB346, 0xCFD2, 0xB347, 0xCFD3, 0xB348, + 0xCFD4, 0xB349, 0xCFD5, 0xB34A, 0xCFD6, 0xB34B, 0xCFD7, 0xB34C, 0xCFD8, 0xB34D, 0xCFD9, 0xB34E, 0xCFDA, 0xB34F, 0xCFDB, 0xB350, + 0xCFDC, 0xB351, 0xCFDD, 0xB352, 0xCFDE, 0xB353, 0xCFDF, 0xB354, 0xCFE0, 0xC4ED, 0xCFE1, 0xC4EE, 0xCFE2, 0xB355, 0xCFE3, 0xB356, + 0xCFE4, 0xC4EF, 0xCFE5, 0xB357, 0xCFE6, 0xB358, 0xCFE7, 0xB359, 0xCFE8, 0xC4F0, 0xCFE9, 0xB35A, 0xCFEA, 0xB361, 0xCFEB, 0xB362, + 0xCFEC, 0xB363, 0xCFED, 0xB364, 0xCFEE, 0xB365, 0xCFEF, 0xB366, 0xCFF0, 0xC4F1, 0xCFF1, 0xC4F2, 0xCFF2, 0xB367, 0xCFF3, 0xC4F3, + 0xCFF4, 0xB368, 0xCFF5, 0xC4F4, 0xCFF6, 0xB369, 0xCFF7, 0xB36A, 0xCFF8, 0xB36B, 0xCFF9, 0xB36C, 0xCFFA, 0xB36D, 0xCFFB, 0xB36E, + 0xCFFC, 0xC4F5, 0xCFFD, 0xB36F, 0xCFFE, 0xB370, 0xCFFF, 0xB371, 0xD000, 0xC4F6, 0xD001, 0xB372, 0xD002, 0xB373, 0xD003, 0xB374, + 0xD004, 0xC4F7, 0xD005, 0xB375, 0xD006, 0xB376, 0xD007, 0xB377, 0xD008, 0xB378, 0xD009, 0xB379, 0xD00A, 0xB37A, 0xD00B, 0xB381, + 0xD00C, 0xB382, 0xD00D, 0xB383, 0xD00E, 0xB384, 0xD00F, 0xB385, 0xD010, 0xB386, 0xD011, 0xC4F8, 0xD012, 0xB387, 0xD013, 0xB388, + 0xD014, 0xB389, 0xD015, 0xB38A, 0xD016, 0xB38B, 0xD017, 0xB38C, 0xD018, 0xC4F9, 0xD019, 0xB38D, 0xD01A, 0xB38E, 0xD01B, 0xB38F, + 0xD01C, 0xB390, 0xD01D, 0xB391, 0xD01E, 0xB392, 0xD01F, 0xB393, 0xD020, 0xB394, 0xD021, 0xB395, 0xD022, 0xB396, 0xD023, 0xB397, + 0xD024, 0xB398, 0xD025, 0xB399, 0xD026, 0xB39A, 0xD027, 0xB39B, 0xD028, 0xB39C, 0xD029, 0xB39D, 0xD02A, 0xB39E, 0xD02B, 0xB39F, + 0xD02C, 0xB3A0, 0xD02D, 0xC4FA, 0xD02E, 0xB441, 0xD02F, 0xB442, 0xD030, 0xB443, 0xD031, 0xB444, 0xD032, 0xB445, 0xD033, 0xB446, + 0xD034, 0xC4FB, 0xD035, 0xC4FC, 0xD036, 0xB447, 0xD037, 0xB448, 0xD038, 0xC4FD, 0xD039, 0xB449, 0xD03A, 0xB44A, 0xD03B, 0xB44B, + 0xD03C, 0xC4FE, 0xD03D, 0xB44C, 0xD03E, 0xB44D, 0xD03F, 0xB44E, 0xD040, 0xB44F, 0xD041, 0xB450, 0xD042, 0xB451, 0xD043, 0xB452, + 0xD044, 0xC5A1, 0xD045, 0xC5A2, 0xD046, 0xB453, 0xD047, 0xC5A3, 0xD048, 0xB454, 0xD049, 0xC5A4, 0xD04A, 0xB455, 0xD04B, 0xB456, + 0xD04C, 0xB457, 0xD04D, 0xB458, 0xD04E, 0xB459, 0xD04F, 0xB45A, 0xD050, 0xC5A5, 0xD051, 0xB461, 0xD052, 0xB462, 0xD053, 0xB463, + 0xD054, 0xC5A6, 0xD055, 0xB464, 0xD056, 0xB465, 0xD057, 0xB466, 0xD058, 0xC5A7, 0xD059, 0xB467, 0xD05A, 0xB468, 0xD05B, 0xB469, + 0xD05C, 0xB46A, 0xD05D, 0xB46B, 0xD05E, 0xB46C, 0xD05F, 0xB46D, 0xD060, 0xC5A8, 0xD061, 0xB46E, 0xD062, 0xB46F, 0xD063, 0xB470, + 0xD064, 0xB471, 0xD065, 0xB472, 0xD066, 0xB473, 0xD067, 0xB474, 0xD068, 0xB475, 0xD069, 0xB476, 0xD06A, 0xB477, 0xD06B, 0xB478, + 0xD06C, 0xC5A9, 0xD06D, 0xC5AA, 0xD06E, 0xB479, 0xD06F, 0xB47A, 0xD070, 0xC5AB, 0xD071, 0xB481, 0xD072, 0xB482, 0xD073, 0xB483, + 0xD074, 0xC5AC, 0xD075, 0xB484, 0xD076, 0xB485, 0xD077, 0xB486, 0xD078, 0xB487, 0xD079, 0xB488, 0xD07A, 0xB489, 0xD07B, 0xB48A, + 0xD07C, 0xC5AD, 0xD07D, 0xC5AE, 0xD07E, 0xB48B, 0xD07F, 0xB48C, 0xD080, 0xB48D, 0xD081, 0xC5AF, 0xD082, 0xB48E, 0xD083, 0xB48F, + 0xD084, 0xB490, 0xD085, 0xB491, 0xD086, 0xB492, 0xD087, 0xB493, 0xD088, 0xB494, 0xD089, 0xB495, 0xD08A, 0xB496, 0xD08B, 0xB497, + 0xD08C, 0xB498, 0xD08D, 0xB499, 0xD08E, 0xB49A, 0xD08F, 0xB49B, 0xD090, 0xB49C, 0xD091, 0xB49D, 0xD092, 0xB49E, 0xD093, 0xB49F, + 0xD094, 0xB4A0, 0xD095, 0xB541, 0xD096, 0xB542, 0xD097, 0xB543, 0xD098, 0xB544, 0xD099, 0xB545, 0xD09A, 0xB546, 0xD09B, 0xB547, + 0xD09C, 0xB548, 0xD09D, 0xB549, 0xD09E, 0xB54A, 0xD09F, 0xB54B, 0xD0A0, 0xB54C, 0xD0A1, 0xB54D, 0xD0A2, 0xB54E, 0xD0A3, 0xB54F, + 0xD0A4, 0xC5B0, 0xD0A5, 0xC5B1, 0xD0A6, 0xB550, 0xD0A7, 0xB551, 0xD0A8, 0xC5B2, 0xD0A9, 0xB552, 0xD0AA, 0xB553, 0xD0AB, 0xB554, + 0xD0AC, 0xC5B3, 0xD0AD, 0xB555, 0xD0AE, 0xB556, 0xD0AF, 0xB557, 0xD0B0, 0xB558, 0xD0B1, 0xB559, 0xD0B2, 0xB55A, 0xD0B3, 0xB561, + 0xD0B4, 0xC5B4, 0xD0B5, 0xC5B5, 0xD0B6, 0xB562, 0xD0B7, 0xC5B6, 0xD0B8, 0xB563, 0xD0B9, 0xC5B7, 0xD0BA, 0xB564, 0xD0BB, 0xB565, + 0xD0BC, 0xB566, 0xD0BD, 0xB567, 0xD0BE, 0xB568, 0xD0BF, 0xB569, 0xD0C0, 0xC5B8, 0xD0C1, 0xC5B9, 0xD0C2, 0xB56A, 0xD0C3, 0xB56B, + 0xD0C4, 0xC5BA, 0xD0C5, 0xB56C, 0xD0C6, 0xB56D, 0xD0C7, 0xB56E, 0xD0C8, 0xC5BB, 0xD0C9, 0xC5BC, 0xD0CA, 0xB56F, 0xD0CB, 0xB570, + 0xD0CC, 0xB571, 0xD0CD, 0xB572, 0xD0CE, 0xB573, 0xD0CF, 0xB574, 0xD0D0, 0xC5BD, 0xD0D1, 0xC5BE, 0xD0D2, 0xB575, 0xD0D3, 0xC5BF, + 0xD0D4, 0xC5C0, 0xD0D5, 0xC5C1, 0xD0D6, 0xB576, 0xD0D7, 0xB577, 0xD0D8, 0xB578, 0xD0D9, 0xB579, 0xD0DA, 0xB57A, 0xD0DB, 0xB581, + 0xD0DC, 0xC5C2, 0xD0DD, 0xC5C3, 0xD0DE, 0xB582, 0xD0DF, 0xB583, 0xD0E0, 0xC5C4, 0xD0E1, 0xB584, 0xD0E2, 0xB585, 0xD0E3, 0xB586, + 0xD0E4, 0xC5C5, 0xD0E5, 0xB587, 0xD0E6, 0xB588, 0xD0E7, 0xB589, 0xD0E8, 0xB58A, 0xD0E9, 0xB58B, 0xD0EA, 0xB58C, 0xD0EB, 0xB58D, + 0xD0EC, 0xC5C6, 0xD0ED, 0xC5C7, 0xD0EE, 0xB58E, 0xD0EF, 0xC5C8, 0xD0F0, 0xC5C9, 0xD0F1, 0xC5CA, 0xD0F2, 0xB58F, 0xD0F3, 0xB590, + 0xD0F4, 0xB591, 0xD0F5, 0xB592, 0xD0F6, 0xB593, 0xD0F7, 0xB594, 0xD0F8, 0xC5CB, 0xD0F9, 0xB595, 0xD0FA, 0xB596, 0xD0FB, 0xB597, + 0xD0FC, 0xB598, 0xD0FD, 0xB599, 0xD0FE, 0xB59A, 0xD0FF, 0xB59B, 0xD100, 0xB59C, 0xD101, 0xB59D, 0xD102, 0xB59E, 0xD103, 0xB59F, + 0xD104, 0xB5A0, 0xD105, 0xB641, 0xD106, 0xB642, 0xD107, 0xB643, 0xD108, 0xB644, 0xD109, 0xB645, 0xD10A, 0xB646, 0xD10B, 0xB647, + 0xD10C, 0xB648, 0xD10D, 0xC5CC, 0xD10E, 0xB649, 0xD10F, 0xB64A, 0xD110, 0xB64B, 0xD111, 0xB64C, 0xD112, 0xB64D, 0xD113, 0xB64E, + 0xD114, 0xB64F, 0xD115, 0xB650, 0xD116, 0xB651, 0xD117, 0xB652, 0xD118, 0xB653, 0xD119, 0xB654, 0xD11A, 0xB655, 0xD11B, 0xB656, + 0xD11C, 0xB657, 0xD11D, 0xB658, 0xD11E, 0xB659, 0xD11F, 0xB65A, 0xD120, 0xB661, 0xD121, 0xB662, 0xD122, 0xB663, 0xD123, 0xB664, + 0xD124, 0xB665, 0xD125, 0xB666, 0xD126, 0xB667, 0xD127, 0xB668, 0xD128, 0xB669, 0xD129, 0xB66A, 0xD12A, 0xB66B, 0xD12B, 0xB66C, + 0xD12C, 0xB66D, 0xD12D, 0xB66E, 0xD12E, 0xB66F, 0xD12F, 0xB670, 0xD130, 0xC5CD, 0xD131, 0xC5CE, 0xD132, 0xB671, 0xD133, 0xB672, + 0xD134, 0xC5CF, 0xD135, 0xB673, 0xD136, 0xB674, 0xD137, 0xB675, 0xD138, 0xC5D0, 0xD139, 0xB676, 0xD13A, 0xC5D1, 0xD13B, 0xB677, + 0xD13C, 0xB678, 0xD13D, 0xB679, 0xD13E, 0xB67A, 0xD13F, 0xB681, 0xD140, 0xC5D2, 0xD141, 0xC5D3, 0xD142, 0xB682, 0xD143, 0xC5D4, + 0xD144, 0xC5D5, 0xD145, 0xC5D6, 0xD146, 0xB683, 0xD147, 0xB684, 0xD148, 0xB685, 0xD149, 0xB686, 0xD14A, 0xB687, 0xD14B, 0xB688, + 0xD14C, 0xC5D7, 0xD14D, 0xC5D8, 0xD14E, 0xB689, 0xD14F, 0xB68A, 0xD150, 0xC5D9, 0xD151, 0xB68B, 0xD152, 0xB68C, 0xD153, 0xB68D, + 0xD154, 0xC5DA, 0xD155, 0xB68E, 0xD156, 0xB68F, 0xD157, 0xB690, 0xD158, 0xB691, 0xD159, 0xB692, 0xD15A, 0xB693, 0xD15B, 0xB694, + 0xD15C, 0xC5DB, 0xD15D, 0xC5DC, 0xD15E, 0xB695, 0xD15F, 0xC5DD, 0xD160, 0xB696, 0xD161, 0xC5DE, 0xD162, 0xB697, 0xD163, 0xB698, + 0xD164, 0xB699, 0xD165, 0xB69A, 0xD166, 0xB69B, 0xD167, 0xB69C, 0xD168, 0xC5DF, 0xD169, 0xB69D, 0xD16A, 0xB69E, 0xD16B, 0xB69F, + 0xD16C, 0xC5E0, 0xD16D, 0xB6A0, 0xD16E, 0xB741, 0xD16F, 0xB742, 0xD170, 0xB743, 0xD171, 0xB744, 0xD172, 0xB745, 0xD173, 0xB746, + 0xD174, 0xB747, 0xD175, 0xB748, 0xD176, 0xB749, 0xD177, 0xB74A, 0xD178, 0xB74B, 0xD179, 0xB74C, 0xD17A, 0xB74D, 0xD17B, 0xB74E, + 0xD17C, 0xC5E1, 0xD17D, 0xB74F, 0xD17E, 0xB750, 0xD17F, 0xB751, 0xD180, 0xB752, 0xD181, 0xB753, 0xD182, 0xB754, 0xD183, 0xB755, + 0xD184, 0xC5E2, 0xD185, 0xB756, 0xD186, 0xB757, 0xD187, 0xB758, 0xD188, 0xC5E3, 0xD189, 0xB759, 0xD18A, 0xB75A, 0xD18B, 0xB761, + 0xD18C, 0xB762, 0xD18D, 0xB763, 0xD18E, 0xB764, 0xD18F, 0xB765, 0xD190, 0xB766, 0xD191, 0xB767, 0xD192, 0xB768, 0xD193, 0xB769, + 0xD194, 0xB76A, 0xD195, 0xB76B, 0xD196, 0xB76C, 0xD197, 0xB76D, 0xD198, 0xB76E, 0xD199, 0xB76F, 0xD19A, 0xB770, 0xD19B, 0xB771, + 0xD19C, 0xB772, 0xD19D, 0xB773, 0xD19E, 0xB774, 0xD19F, 0xB775, 0xD1A0, 0xC5E4, 0xD1A1, 0xC5E5, 0xD1A2, 0xB776, 0xD1A3, 0xB777, + 0xD1A4, 0xC5E6, 0xD1A5, 0xB778, 0xD1A6, 0xB779, 0xD1A7, 0xB77A, 0xD1A8, 0xC5E7, 0xD1A9, 0xB781, 0xD1AA, 0xB782, 0xD1AB, 0xB783, + 0xD1AC, 0xB784, 0xD1AD, 0xB785, 0xD1AE, 0xB786, 0xD1AF, 0xB787, 0xD1B0, 0xC5E8, 0xD1B1, 0xC5E9, 0xD1B2, 0xB788, 0xD1B3, 0xC5EA, + 0xD1B4, 0xB789, 0xD1B5, 0xC5EB, 0xD1B6, 0xB78A, 0xD1B7, 0xB78B, 0xD1B8, 0xB78C, 0xD1B9, 0xB78D, 0xD1BA, 0xC5EC, 0xD1BB, 0xB78E, + 0xD1BC, 0xC5ED, 0xD1BD, 0xB78F, 0xD1BE, 0xB790, 0xD1BF, 0xB791, 0xD1C0, 0xC5EE, 0xD1C1, 0xB792, 0xD1C2, 0xB793, 0xD1C3, 0xB794, + 0xD1C4, 0xB795, 0xD1C5, 0xB796, 0xD1C6, 0xB797, 0xD1C7, 0xB798, 0xD1C8, 0xB799, 0xD1C9, 0xB79A, 0xD1CA, 0xB79B, 0xD1CB, 0xB79C, + 0xD1CC, 0xB79D, 0xD1CD, 0xB79E, 0xD1CE, 0xB79F, 0xD1CF, 0xB7A0, 0xD1D0, 0xB841, 0xD1D1, 0xB842, 0xD1D2, 0xB843, 0xD1D3, 0xB844, + 0xD1D4, 0xB845, 0xD1D5, 0xB846, 0xD1D6, 0xB847, 0xD1D7, 0xB848, 0xD1D8, 0xC5EF, 0xD1D9, 0xB849, 0xD1DA, 0xB84A, 0xD1DB, 0xB84B, + 0xD1DC, 0xB84C, 0xD1DD, 0xB84D, 0xD1DE, 0xB84E, 0xD1DF, 0xB84F, 0xD1E0, 0xB850, 0xD1E1, 0xB851, 0xD1E2, 0xB852, 0xD1E3, 0xB853, + 0xD1E4, 0xB854, 0xD1E5, 0xB855, 0xD1E6, 0xB856, 0xD1E7, 0xB857, 0xD1E8, 0xB858, 0xD1E9, 0xB859, 0xD1EA, 0xB85A, 0xD1EB, 0xB861, + 0xD1EC, 0xB862, 0xD1ED, 0xB863, 0xD1EE, 0xB864, 0xD1EF, 0xB865, 0xD1F0, 0xB866, 0xD1F1, 0xB867, 0xD1F2, 0xB868, 0xD1F3, 0xB869, + 0xD1F4, 0xC5F0, 0xD1F5, 0xB86A, 0xD1F6, 0xB86B, 0xD1F7, 0xB86C, 0xD1F8, 0xC5F1, 0xD1F9, 0xB86D, 0xD1FA, 0xB86E, 0xD1FB, 0xB86F, + 0xD1FC, 0xB870, 0xD1FD, 0xB871, 0xD1FE, 0xB872, 0xD1FF, 0xB873, 0xD200, 0xB874, 0xD201, 0xB875, 0xD202, 0xB876, 0xD203, 0xB877, + 0xD204, 0xB878, 0xD205, 0xB879, 0xD206, 0xB87A, 0xD207, 0xC5F2, 0xD208, 0xB881, 0xD209, 0xC5F3, 0xD20A, 0xB882, 0xD20B, 0xB883, + 0xD20C, 0xB884, 0xD20D, 0xB885, 0xD20E, 0xB886, 0xD20F, 0xB887, 0xD210, 0xC5F4, 0xD211, 0xB888, 0xD212, 0xB889, 0xD213, 0xB88A, + 0xD214, 0xB88B, 0xD215, 0xB88C, 0xD216, 0xB88D, 0xD217, 0xB88E, 0xD218, 0xB88F, 0xD219, 0xB890, 0xD21A, 0xB891, 0xD21B, 0xB892, + 0xD21C, 0xB893, 0xD21D, 0xB894, 0xD21E, 0xB895, 0xD21F, 0xB896, 0xD220, 0xB897, 0xD221, 0xB898, 0xD222, 0xB899, 0xD223, 0xB89A, + 0xD224, 0xB89B, 0xD225, 0xB89C, 0xD226, 0xB89D, 0xD227, 0xB89E, 0xD228, 0xB89F, 0xD229, 0xB8A0, 0xD22A, 0xB941, 0xD22B, 0xB942, + 0xD22C, 0xC5F5, 0xD22D, 0xC5F6, 0xD22E, 0xB943, 0xD22F, 0xB944, 0xD230, 0xC5F7, 0xD231, 0xB945, 0xD232, 0xB946, 0xD233, 0xB947, + 0xD234, 0xC5F8, 0xD235, 0xB948, 0xD236, 0xB949, 0xD237, 0xB94A, 0xD238, 0xB94B, 0xD239, 0xB94C, 0xD23A, 0xB94D, 0xD23B, 0xB94E, + 0xD23C, 0xC5F9, 0xD23D, 0xC5FA, 0xD23E, 0xB94F, 0xD23F, 0xC5FB, 0xD240, 0xB950, 0xD241, 0xC5FC, 0xD242, 0xB951, 0xD243, 0xB952, + 0xD244, 0xB953, 0xD245, 0xB954, 0xD246, 0xB955, 0xD247, 0xB956, 0xD248, 0xC5FD, 0xD249, 0xB957, 0xD24A, 0xB958, 0xD24B, 0xB959, + 0xD24C, 0xB95A, 0xD24D, 0xB961, 0xD24E, 0xB962, 0xD24F, 0xB963, 0xD250, 0xB964, 0xD251, 0xB965, 0xD252, 0xB966, 0xD253, 0xB967, + 0xD254, 0xB968, 0xD255, 0xB969, 0xD256, 0xB96A, 0xD257, 0xB96B, 0xD258, 0xB96C, 0xD259, 0xB96D, 0xD25A, 0xB96E, 0xD25B, 0xB96F, + 0xD25C, 0xC5FE, 0xD25D, 0xB970, 0xD25E, 0xB971, 0xD25F, 0xB972, 0xD260, 0xB973, 0xD261, 0xB974, 0xD262, 0xB975, 0xD263, 0xB976, + 0xD264, 0xC6A1, 0xD265, 0xB977, 0xD266, 0xB978, 0xD267, 0xB979, 0xD268, 0xB97A, 0xD269, 0xB981, 0xD26A, 0xB982, 0xD26B, 0xB983, + 0xD26C, 0xB984, 0xD26D, 0xB985, 0xD26E, 0xB986, 0xD26F, 0xB987, 0xD270, 0xB988, 0xD271, 0xB989, 0xD272, 0xB98A, 0xD273, 0xB98B, + 0xD274, 0xB98C, 0xD275, 0xB98D, 0xD276, 0xB98E, 0xD277, 0xB98F, 0xD278, 0xB990, 0xD279, 0xB991, 0xD27A, 0xB992, 0xD27B, 0xB993, + 0xD27C, 0xB994, 0xD27D, 0xB995, 0xD27E, 0xB996, 0xD27F, 0xB997, 0xD280, 0xC6A2, 0xD281, 0xC6A3, 0xD282, 0xB998, 0xD283, 0xB999, + 0xD284, 0xC6A4, 0xD285, 0xB99A, 0xD286, 0xB99B, 0xD287, 0xB99C, 0xD288, 0xC6A5, 0xD289, 0xB99D, 0xD28A, 0xB99E, 0xD28B, 0xB99F, + 0xD28C, 0xB9A0, 0xD28D, 0xBA41, 0xD28E, 0xBA42, 0xD28F, 0xBA43, 0xD290, 0xC6A6, 0xD291, 0xC6A7, 0xD292, 0xBA44, 0xD293, 0xBA45, + 0xD294, 0xBA46, 0xD295, 0xC6A8, 0xD296, 0xBA47, 0xD297, 0xBA48, 0xD298, 0xBA49, 0xD299, 0xBA4A, 0xD29A, 0xBA4B, 0xD29B, 0xBA4C, + 0xD29C, 0xC6A9, 0xD29D, 0xBA4D, 0xD29E, 0xBA4E, 0xD29F, 0xBA4F, 0xD2A0, 0xC6AA, 0xD2A1, 0xBA50, 0xD2A2, 0xBA51, 0xD2A3, 0xBA52, + 0xD2A4, 0xC6AB, 0xD2A5, 0xBA53, 0xD2A6, 0xBA54, 0xD2A7, 0xBA55, 0xD2A8, 0xBA56, 0xD2A9, 0xBA57, 0xD2AA, 0xBA58, 0xD2AB, 0xBA59, + 0xD2AC, 0xC6AC, 0xD2AD, 0xBA5A, 0xD2AE, 0xBA61, 0xD2AF, 0xBA62, 0xD2B0, 0xBA63, 0xD2B1, 0xC6AD, 0xD2B2, 0xBA64, 0xD2B3, 0xBA65, + 0xD2B4, 0xBA66, 0xD2B5, 0xBA67, 0xD2B6, 0xBA68, 0xD2B7, 0xBA69, 0xD2B8, 0xC6AE, 0xD2B9, 0xC6AF, 0xD2BA, 0xBA6A, 0xD2BB, 0xBA6B, + 0xD2BC, 0xC6B0, 0xD2BD, 0xBA6C, 0xD2BE, 0xBA6D, 0xD2BF, 0xC6B1, 0xD2C0, 0xC6B2, 0xD2C1, 0xBA6E, 0xD2C2, 0xC6B3, 0xD2C3, 0xBA6F, + 0xD2C4, 0xBA70, 0xD2C5, 0xBA71, 0xD2C6, 0xBA72, 0xD2C7, 0xBA73, 0xD2C8, 0xC6B4, 0xD2C9, 0xC6B5, 0xD2CA, 0xBA74, 0xD2CB, 0xC6B6, + 0xD2CC, 0xBA75, 0xD2CD, 0xBA76, 0xD2CE, 0xBA77, 0xD2CF, 0xBA78, 0xD2D0, 0xBA79, 0xD2D1, 0xBA7A, 0xD2D2, 0xBA81, 0xD2D3, 0xBA82, + 0xD2D4, 0xC6B7, 0xD2D5, 0xBA83, 0xD2D6, 0xBA84, 0xD2D7, 0xBA85, 0xD2D8, 0xC6B8, 0xD2D9, 0xBA86, 0xD2DA, 0xBA87, 0xD2DB, 0xBA88, + 0xD2DC, 0xC6B9, 0xD2DD, 0xBA89, 0xD2DE, 0xBA8A, 0xD2DF, 0xBA8B, 0xD2E0, 0xBA8C, 0xD2E1, 0xBA8D, 0xD2E2, 0xBA8E, 0xD2E3, 0xBA8F, + 0xD2E4, 0xC6BA, 0xD2E5, 0xC6BB, 0xD2E6, 0xBA90, 0xD2E7, 0xBA91, 0xD2E8, 0xBA92, 0xD2E9, 0xBA93, 0xD2EA, 0xBA94, 0xD2EB, 0xBA95, + 0xD2EC, 0xBA96, 0xD2ED, 0xBA97, 0xD2EE, 0xBA98, 0xD2EF, 0xBA99, 0xD2F0, 0xC6BC, 0xD2F1, 0xC6BD, 0xD2F2, 0xBA9A, 0xD2F3, 0xBA9B, + 0xD2F4, 0xC6BE, 0xD2F5, 0xBA9C, 0xD2F6, 0xBA9D, 0xD2F7, 0xBA9E, 0xD2F8, 0xC6BF, 0xD2F9, 0xBA9F, 0xD2FA, 0xBAA0, 0xD2FB, 0xBB41, + 0xD2FC, 0xBB42, 0xD2FD, 0xBB43, 0xD2FE, 0xBB44, 0xD2FF, 0xBB45, 0xD300, 0xC6C0, 0xD301, 0xC6C1, 0xD302, 0xBB46, 0xD303, 0xC6C2, + 0xD304, 0xBB47, 0xD305, 0xC6C3, 0xD306, 0xBB48, 0xD307, 0xBB49, 0xD308, 0xBB4A, 0xD309, 0xBB4B, 0xD30A, 0xBB4C, 0xD30B, 0xBB4D, + 0xD30C, 0xC6C4, 0xD30D, 0xC6C5, 0xD30E, 0xC6C6, 0xD30F, 0xBB4E, 0xD310, 0xC6C7, 0xD311, 0xBB4F, 0xD312, 0xBB50, 0xD313, 0xBB51, + 0xD314, 0xC6C8, 0xD315, 0xBB52, 0xD316, 0xC6C9, 0xD317, 0xBB53, 0xD318, 0xBB54, 0xD319, 0xBB55, 0xD31A, 0xBB56, 0xD31B, 0xBB57, + 0xD31C, 0xC6CA, 0xD31D, 0xC6CB, 0xD31E, 0xBB58, 0xD31F, 0xC6CC, 0xD320, 0xC6CD, 0xD321, 0xC6CE, 0xD322, 0xBB59, 0xD323, 0xBB5A, + 0xD324, 0xBB61, 0xD325, 0xC6CF, 0xD326, 0xBB62, 0xD327, 0xBB63, 0xD328, 0xC6D0, 0xD329, 0xC6D1, 0xD32A, 0xBB64, 0xD32B, 0xBB65, + 0xD32C, 0xC6D2, 0xD32D, 0xBB66, 0xD32E, 0xBB67, 0xD32F, 0xBB68, 0xD330, 0xC6D3, 0xD331, 0xBB69, 0xD332, 0xBB6A, 0xD333, 0xBB6B, + 0xD334, 0xBB6C, 0xD335, 0xBB6D, 0xD336, 0xBB6E, 0xD337, 0xBB6F, 0xD338, 0xC6D4, 0xD339, 0xC6D5, 0xD33A, 0xBB70, 0xD33B, 0xC6D6, + 0xD33C, 0xC6D7, 0xD33D, 0xC6D8, 0xD33E, 0xBB71, 0xD33F, 0xBB72, 0xD340, 0xBB73, 0xD341, 0xBB74, 0xD342, 0xBB75, 0xD343, 0xBB76, + 0xD344, 0xC6D9, 0xD345, 0xC6DA, 0xD346, 0xBB77, 0xD347, 0xBB78, 0xD348, 0xBB79, 0xD349, 0xBB7A, 0xD34A, 0xBB81, 0xD34B, 0xBB82, + 0xD34C, 0xBB83, 0xD34D, 0xBB84, 0xD34E, 0xBB85, 0xD34F, 0xBB86, 0xD350, 0xBB87, 0xD351, 0xBB88, 0xD352, 0xBB89, 0xD353, 0xBB8A, + 0xD354, 0xBB8B, 0xD355, 0xBB8C, 0xD356, 0xBB8D, 0xD357, 0xBB8E, 0xD358, 0xBB8F, 0xD359, 0xBB90, 0xD35A, 0xBB91, 0xD35B, 0xBB92, + 0xD35C, 0xBB93, 0xD35D, 0xBB94, 0xD35E, 0xBB95, 0xD35F, 0xBB96, 0xD360, 0xBB97, 0xD361, 0xBB98, 0xD362, 0xBB99, 0xD363, 0xBB9A, + 0xD364, 0xBB9B, 0xD365, 0xBB9C, 0xD366, 0xBB9D, 0xD367, 0xBB9E, 0xD368, 0xBB9F, 0xD369, 0xBBA0, 0xD36A, 0xBC41, 0xD36B, 0xBC42, + 0xD36C, 0xBC43, 0xD36D, 0xBC44, 0xD36E, 0xBC45, 0xD36F, 0xBC46, 0xD370, 0xBC47, 0xD371, 0xBC48, 0xD372, 0xBC49, 0xD373, 0xBC4A, + 0xD374, 0xBC4B, 0xD375, 0xBC4C, 0xD376, 0xBC4D, 0xD377, 0xBC4E, 0xD378, 0xBC4F, 0xD379, 0xBC50, 0xD37A, 0xBC51, 0xD37B, 0xBC52, + 0xD37C, 0xC6DB, 0xD37D, 0xC6DC, 0xD37E, 0xBC53, 0xD37F, 0xBC54, 0xD380, 0xC6DD, 0xD381, 0xBC55, 0xD382, 0xBC56, 0xD383, 0xBC57, + 0xD384, 0xC6DE, 0xD385, 0xBC58, 0xD386, 0xBC59, 0xD387, 0xBC5A, 0xD388, 0xBC61, 0xD389, 0xBC62, 0xD38A, 0xBC63, 0xD38B, 0xBC64, + 0xD38C, 0xC6DF, 0xD38D, 0xC6E0, 0xD38E, 0xBC65, 0xD38F, 0xC6E1, 0xD390, 0xC6E2, 0xD391, 0xC6E3, 0xD392, 0xBC66, 0xD393, 0xBC67, + 0xD394, 0xBC68, 0xD395, 0xBC69, 0xD396, 0xBC6A, 0xD397, 0xBC6B, 0xD398, 0xC6E4, 0xD399, 0xC6E5, 0xD39A, 0xBC6C, 0xD39B, 0xBC6D, + 0xD39C, 0xC6E6, 0xD39D, 0xBC6E, 0xD39E, 0xBC6F, 0xD39F, 0xBC70, 0xD3A0, 0xC6E7, 0xD3A1, 0xBC71, 0xD3A2, 0xBC72, 0xD3A3, 0xBC73, + 0xD3A4, 0xBC74, 0xD3A5, 0xBC75, 0xD3A6, 0xBC76, 0xD3A7, 0xBC77, 0xD3A8, 0xC6E8, 0xD3A9, 0xC6E9, 0xD3AA, 0xBC78, 0xD3AB, 0xC6EA, + 0xD3AC, 0xBC79, 0xD3AD, 0xC6EB, 0xD3AE, 0xBC7A, 0xD3AF, 0xBC81, 0xD3B0, 0xBC82, 0xD3B1, 0xBC83, 0xD3B2, 0xBC84, 0xD3B3, 0xBC85, + 0xD3B4, 0xC6EC, 0xD3B5, 0xBC86, 0xD3B6, 0xBC87, 0xD3B7, 0xBC88, 0xD3B8, 0xC6ED, 0xD3B9, 0xBC89, 0xD3BA, 0xBC8A, 0xD3BB, 0xBC8B, + 0xD3BC, 0xC6EE, 0xD3BD, 0xBC8C, 0xD3BE, 0xBC8D, 0xD3BF, 0xBC8E, 0xD3C0, 0xBC8F, 0xD3C1, 0xBC90, 0xD3C2, 0xBC91, 0xD3C3, 0xBC92, + 0xD3C4, 0xC6EF, 0xD3C5, 0xC6F0, 0xD3C6, 0xBC93, 0xD3C7, 0xBC94, 0xD3C8, 0xC6F1, 0xD3C9, 0xC6F2, 0xD3CA, 0xBC95, 0xD3CB, 0xBC96, + 0xD3CC, 0xBC97, 0xD3CD, 0xBC98, 0xD3CE, 0xBC99, 0xD3CF, 0xBC9A, 0xD3D0, 0xC6F3, 0xD3D1, 0xBC9B, 0xD3D2, 0xBC9C, 0xD3D3, 0xBC9D, + 0xD3D4, 0xBC9E, 0xD3D5, 0xBC9F, 0xD3D6, 0xBCA0, 0xD3D7, 0xBD41, 0xD3D8, 0xC6F4, 0xD3D9, 0xBD42, 0xD3DA, 0xBD43, 0xD3DB, 0xBD44, + 0xD3DC, 0xBD45, 0xD3DD, 0xBD46, 0xD3DE, 0xBD47, 0xD3DF, 0xBD48, 0xD3E0, 0xBD49, 0xD3E1, 0xC6F5, 0xD3E2, 0xBD4A, 0xD3E3, 0xC6F6, + 0xD3E4, 0xBD4B, 0xD3E5, 0xBD4C, 0xD3E6, 0xBD4D, 0xD3E7, 0xBD4E, 0xD3E8, 0xBD4F, 0xD3E9, 0xBD50, 0xD3EA, 0xBD51, 0xD3EB, 0xBD52, + 0xD3EC, 0xC6F7, 0xD3ED, 0xC6F8, 0xD3EE, 0xBD53, 0xD3EF, 0xBD54, 0xD3F0, 0xC6F9, 0xD3F1, 0xBD55, 0xD3F2, 0xBD56, 0xD3F3, 0xBD57, + 0xD3F4, 0xC6FA, 0xD3F5, 0xBD58, 0xD3F6, 0xBD59, 0xD3F7, 0xBD5A, 0xD3F8, 0xBD61, 0xD3F9, 0xBD62, 0xD3FA, 0xBD63, 0xD3FB, 0xBD64, + 0xD3FC, 0xC6FB, 0xD3FD, 0xC6FC, 0xD3FE, 0xBD65, 0xD3FF, 0xC6FD, 0xD400, 0xBD66, 0xD401, 0xC6FE, 0xD402, 0xBD67, 0xD403, 0xBD68, + 0xD404, 0xBD69, 0xD405, 0xBD6A, 0xD406, 0xBD6B, 0xD407, 0xBD6C, 0xD408, 0xC7A1, 0xD409, 0xBD6D, 0xD40A, 0xBD6E, 0xD40B, 0xBD6F, + 0xD40C, 0xBD70, 0xD40D, 0xBD71, 0xD40E, 0xBD72, 0xD40F, 0xBD73, 0xD410, 0xBD74, 0xD411, 0xBD75, 0xD412, 0xBD76, 0xD413, 0xBD77, + 0xD414, 0xBD78, 0xD415, 0xBD79, 0xD416, 0xBD7A, 0xD417, 0xBD81, 0xD418, 0xBD82, 0xD419, 0xBD83, 0xD41A, 0xBD84, 0xD41B, 0xBD85, + 0xD41C, 0xBD86, 0xD41D, 0xC7A2, 0xD41E, 0xBD87, 0xD41F, 0xBD88, 0xD420, 0xBD89, 0xD421, 0xBD8A, 0xD422, 0xBD8B, 0xD423, 0xBD8C, + 0xD424, 0xBD8D, 0xD425, 0xBD8E, 0xD426, 0xBD8F, 0xD427, 0xBD90, 0xD428, 0xBD91, 0xD429, 0xBD92, 0xD42A, 0xBD93, 0xD42B, 0xBD94, + 0xD42C, 0xBD95, 0xD42D, 0xBD96, 0xD42E, 0xBD97, 0xD42F, 0xBD98, 0xD430, 0xBD99, 0xD431, 0xBD9A, 0xD432, 0xBD9B, 0xD433, 0xBD9C, + 0xD434, 0xBD9D, 0xD435, 0xBD9E, 0xD436, 0xBD9F, 0xD437, 0xBDA0, 0xD438, 0xBE41, 0xD439, 0xBE42, 0xD43A, 0xBE43, 0xD43B, 0xBE44, + 0xD43C, 0xBE45, 0xD43D, 0xBE46, 0xD43E, 0xBE47, 0xD43F, 0xBE48, 0xD440, 0xC7A3, 0xD441, 0xBE49, 0xD442, 0xBE4A, 0xD443, 0xBE4B, + 0xD444, 0xC7A4, 0xD445, 0xBE4C, 0xD446, 0xBE4D, 0xD447, 0xBE4E, 0xD448, 0xBE4F, 0xD449, 0xBE50, 0xD44A, 0xBE51, 0xD44B, 0xBE52, + 0xD44C, 0xBE53, 0xD44D, 0xBE54, 0xD44E, 0xBE55, 0xD44F, 0xBE56, 0xD450, 0xBE57, 0xD451, 0xBE58, 0xD452, 0xBE59, 0xD453, 0xBE5A, + 0xD454, 0xBE61, 0xD455, 0xBE62, 0xD456, 0xBE63, 0xD457, 0xBE64, 0xD458, 0xBE65, 0xD459, 0xBE66, 0xD45A, 0xBE67, 0xD45B, 0xBE68, + 0xD45C, 0xC7A5, 0xD45D, 0xBE69, 0xD45E, 0xBE6A, 0xD45F, 0xBE6B, 0xD460, 0xC7A6, 0xD461, 0xBE6C, 0xD462, 0xBE6D, 0xD463, 0xBE6E, + 0xD464, 0xC7A7, 0xD465, 0xBE6F, 0xD466, 0xBE70, 0xD467, 0xBE71, 0xD468, 0xBE72, 0xD469, 0xBE73, 0xD46A, 0xBE74, 0xD46B, 0xBE75, + 0xD46C, 0xBE76, 0xD46D, 0xC7A8, 0xD46E, 0xBE77, 0xD46F, 0xC7A9, 0xD470, 0xBE78, 0xD471, 0xBE79, 0xD472, 0xBE7A, 0xD473, 0xBE81, + 0xD474, 0xBE82, 0xD475, 0xBE83, 0xD476, 0xBE84, 0xD477, 0xBE85, 0xD478, 0xC7AA, 0xD479, 0xC7AB, 0xD47A, 0xBE86, 0xD47B, 0xBE87, + 0xD47C, 0xC7AC, 0xD47D, 0xBE88, 0xD47E, 0xBE89, 0xD47F, 0xC7AD, 0xD480, 0xC7AE, 0xD481, 0xBE8A, 0xD482, 0xC7AF, 0xD483, 0xBE8B, + 0xD484, 0xBE8C, 0xD485, 0xBE8D, 0xD486, 0xBE8E, 0xD487, 0xBE8F, 0xD488, 0xC7B0, 0xD489, 0xC7B1, 0xD48A, 0xBE90, 0xD48B, 0xC7B2, + 0xD48C, 0xBE91, 0xD48D, 0xC7B3, 0xD48E, 0xBE92, 0xD48F, 0xBE93, 0xD490, 0xBE94, 0xD491, 0xBE95, 0xD492, 0xBE96, 0xD493, 0xBE97, + 0xD494, 0xC7B4, 0xD495, 0xBE98, 0xD496, 0xBE99, 0xD497, 0xBE9A, 0xD498, 0xBE9B, 0xD499, 0xBE9C, 0xD49A, 0xBE9D, 0xD49B, 0xBE9E, + 0xD49C, 0xBE9F, 0xD49D, 0xBEA0, 0xD49E, 0xBF41, 0xD49F, 0xBF42, 0xD4A0, 0xBF43, 0xD4A1, 0xBF44, 0xD4A2, 0xBF45, 0xD4A3, 0xBF46, + 0xD4A4, 0xBF47, 0xD4A5, 0xBF48, 0xD4A6, 0xBF49, 0xD4A7, 0xBF4A, 0xD4A8, 0xBF4B, 0xD4A9, 0xC7B5, 0xD4AA, 0xBF4C, 0xD4AB, 0xBF4D, + 0xD4AC, 0xBF4E, 0xD4AD, 0xBF4F, 0xD4AE, 0xBF50, 0xD4AF, 0xBF51, 0xD4B0, 0xBF52, 0xD4B1, 0xBF53, 0xD4B2, 0xBF54, 0xD4B3, 0xBF55, + 0xD4B4, 0xBF56, 0xD4B5, 0xBF57, 0xD4B6, 0xBF58, 0xD4B7, 0xBF59, 0xD4B8, 0xBF5A, 0xD4B9, 0xBF61, 0xD4BA, 0xBF62, 0xD4BB, 0xBF63, + 0xD4BC, 0xBF64, 0xD4BD, 0xBF65, 0xD4BE, 0xBF66, 0xD4BF, 0xBF67, 0xD4C0, 0xBF68, 0xD4C1, 0xBF69, 0xD4C2, 0xBF6A, 0xD4C3, 0xBF6B, + 0xD4C4, 0xBF6C, 0xD4C5, 0xBF6D, 0xD4C6, 0xBF6E, 0xD4C7, 0xBF6F, 0xD4C8, 0xBF70, 0xD4C9, 0xBF71, 0xD4CA, 0xBF72, 0xD4CB, 0xBF73, + 0xD4CC, 0xC7B6, 0xD4CD, 0xBF74, 0xD4CE, 0xBF75, 0xD4CF, 0xBF76, 0xD4D0, 0xC7B7, 0xD4D1, 0xBF77, 0xD4D2, 0xBF78, 0xD4D3, 0xBF79, + 0xD4D4, 0xC7B8, 0xD4D5, 0xBF7A, 0xD4D6, 0xBF81, 0xD4D7, 0xBF82, 0xD4D8, 0xBF83, 0xD4D9, 0xBF84, 0xD4DA, 0xBF85, 0xD4DB, 0xBF86, + 0xD4DC, 0xC7B9, 0xD4DD, 0xBF87, 0xD4DE, 0xBF88, 0xD4DF, 0xC7BA, 0xD4E0, 0xBF89, 0xD4E1, 0xBF8A, 0xD4E2, 0xBF8B, 0xD4E3, 0xBF8C, + 0xD4E4, 0xBF8D, 0xD4E5, 0xBF8E, 0xD4E6, 0xBF8F, 0xD4E7, 0xBF90, 0xD4E8, 0xC7BB, 0xD4E9, 0xBF91, 0xD4EA, 0xBF92, 0xD4EB, 0xBF93, + 0xD4EC, 0xC7BC, 0xD4ED, 0xBF94, 0xD4EE, 0xBF95, 0xD4EF, 0xBF96, 0xD4F0, 0xC7BD, 0xD4F1, 0xBF97, 0xD4F2, 0xBF98, 0xD4F3, 0xBF99, + 0xD4F4, 0xBF9A, 0xD4F5, 0xBF9B, 0xD4F6, 0xBF9C, 0xD4F7, 0xBF9D, 0xD4F8, 0xC7BE, 0xD4F9, 0xBF9E, 0xD4FA, 0xBF9F, 0xD4FB, 0xC7BF, + 0xD4FC, 0xBFA0, 0xD4FD, 0xC7C0, 0xD4FE, 0xC041, 0xD4FF, 0xC042, 0xD500, 0xC043, 0xD501, 0xC044, 0xD502, 0xC045, 0xD503, 0xC046, + 0xD504, 0xC7C1, 0xD505, 0xC047, 0xD506, 0xC048, 0xD507, 0xC049, 0xD508, 0xC7C2, 0xD509, 0xC04A, 0xD50A, 0xC04B, 0xD50B, 0xC04C, + 0xD50C, 0xC7C3, 0xD50D, 0xC04D, 0xD50E, 0xC04E, 0xD50F, 0xC04F, 0xD510, 0xC050, 0xD511, 0xC051, 0xD512, 0xC052, 0xD513, 0xC053, + 0xD514, 0xC7C4, 0xD515, 0xC7C5, 0xD516, 0xC054, 0xD517, 0xC7C6, 0xD518, 0xC055, 0xD519, 0xC056, 0xD51A, 0xC057, 0xD51B, 0xC058, + 0xD51C, 0xC059, 0xD51D, 0xC05A, 0xD51E, 0xC061, 0xD51F, 0xC062, 0xD520, 0xC063, 0xD521, 0xC064, 0xD522, 0xC065, 0xD523, 0xC066, + 0xD524, 0xC067, 0xD525, 0xC068, 0xD526, 0xC069, 0xD527, 0xC06A, 0xD528, 0xC06B, 0xD529, 0xC06C, 0xD52A, 0xC06D, 0xD52B, 0xC06E, + 0xD52C, 0xC06F, 0xD52D, 0xC070, 0xD52E, 0xC071, 0xD52F, 0xC072, 0xD530, 0xC073, 0xD531, 0xC074, 0xD532, 0xC075, 0xD533, 0xC076, + 0xD534, 0xC077, 0xD535, 0xC078, 0xD536, 0xC079, 0xD537, 0xC07A, 0xD538, 0xC081, 0xD539, 0xC082, 0xD53A, 0xC083, 0xD53B, 0xC084, + 0xD53C, 0xC7C7, 0xD53D, 0xC7C8, 0xD53E, 0xC085, 0xD53F, 0xC086, 0xD540, 0xC7C9, 0xD541, 0xC087, 0xD542, 0xC088, 0xD543, 0xC089, + 0xD544, 0xC7CA, 0xD545, 0xC08A, 0xD546, 0xC08B, 0xD547, 0xC08C, 0xD548, 0xC08D, 0xD549, 0xC08E, 0xD54A, 0xC08F, 0xD54B, 0xC090, + 0xD54C, 0xC7CB, 0xD54D, 0xC7CC, 0xD54E, 0xC091, 0xD54F, 0xC7CD, 0xD550, 0xC092, 0xD551, 0xC7CE, 0xD552, 0xC093, 0xD553, 0xC094, + 0xD554, 0xC095, 0xD555, 0xC096, 0xD556, 0xC097, 0xD557, 0xC098, 0xD558, 0xC7CF, 0xD559, 0xC7D0, 0xD55A, 0xC099, 0xD55B, 0xC09A, + 0xD55C, 0xC7D1, 0xD55D, 0xC09B, 0xD55E, 0xC09C, 0xD55F, 0xC09D, 0xD560, 0xC7D2, 0xD561, 0xC09E, 0xD562, 0xC09F, 0xD563, 0xC0A0, + 0xD564, 0xC141, 0xD565, 0xC7D3, 0xD566, 0xC142, 0xD567, 0xC143, 0xD568, 0xC7D4, 0xD569, 0xC7D5, 0xD56A, 0xC144, 0xD56B, 0xC7D6, + 0xD56C, 0xC145, 0xD56D, 0xC7D7, 0xD56E, 0xC146, 0xD56F, 0xC147, 0xD570, 0xC148, 0xD571, 0xC149, 0xD572, 0xC14A, 0xD573, 0xC14B, + 0xD574, 0xC7D8, 0xD575, 0xC7D9, 0xD576, 0xC14C, 0xD577, 0xC14D, 0xD578, 0xC7DA, 0xD579, 0xC14E, 0xD57A, 0xC14F, 0xD57B, 0xC150, + 0xD57C, 0xC7DB, 0xD57D, 0xC151, 0xD57E, 0xC152, 0xD57F, 0xC153, 0xD580, 0xC154, 0xD581, 0xC155, 0xD582, 0xC156, 0xD583, 0xC157, + 0xD584, 0xC7DC, 0xD585, 0xC7DD, 0xD586, 0xC158, 0xD587, 0xC7DE, 0xD588, 0xC7DF, 0xD589, 0xC7E0, 0xD58A, 0xC159, 0xD58B, 0xC15A, + 0xD58C, 0xC161, 0xD58D, 0xC162, 0xD58E, 0xC163, 0xD58F, 0xC164, 0xD590, 0xC7E1, 0xD591, 0xC165, 0xD592, 0xC166, 0xD593, 0xC167, + 0xD594, 0xC168, 0xD595, 0xC169, 0xD596, 0xC16A, 0xD597, 0xC16B, 0xD598, 0xC16C, 0xD599, 0xC16D, 0xD59A, 0xC16E, 0xD59B, 0xC16F, + 0xD59C, 0xC170, 0xD59D, 0xC171, 0xD59E, 0xC172, 0xD59F, 0xC173, 0xD5A0, 0xC174, 0xD5A1, 0xC175, 0xD5A2, 0xC176, 0xD5A3, 0xC177, + 0xD5A4, 0xC178, 0xD5A5, 0xC7E2, 0xD5A6, 0xC179, 0xD5A7, 0xC17A, 0xD5A8, 0xC181, 0xD5A9, 0xC182, 0xD5AA, 0xC183, 0xD5AB, 0xC184, + 0xD5AC, 0xC185, 0xD5AD, 0xC186, 0xD5AE, 0xC187, 0xD5AF, 0xC188, 0xD5B0, 0xC189, 0xD5B1, 0xC18A, 0xD5B2, 0xC18B, 0xD5B3, 0xC18C, + 0xD5B4, 0xC18D, 0xD5B5, 0xC18E, 0xD5B6, 0xC18F, 0xD5B7, 0xC190, 0xD5B8, 0xC191, 0xD5B9, 0xC192, 0xD5BA, 0xC193, 0xD5BB, 0xC194, + 0xD5BC, 0xC195, 0xD5BD, 0xC196, 0xD5BE, 0xC197, 0xD5BF, 0xC198, 0xD5C0, 0xC199, 0xD5C1, 0xC19A, 0xD5C2, 0xC19B, 0xD5C3, 0xC19C, + 0xD5C4, 0xC19D, 0xD5C5, 0xC19E, 0xD5C6, 0xC19F, 0xD5C7, 0xC1A0, 0xD5C8, 0xC7E3, 0xD5C9, 0xC7E4, 0xD5CA, 0xC241, 0xD5CB, 0xC242, + 0xD5CC, 0xC7E5, 0xD5CD, 0xC243, 0xD5CE, 0xC244, 0xD5CF, 0xC245, 0xD5D0, 0xC7E6, 0xD5D1, 0xC246, 0xD5D2, 0xC7E7, 0xD5D3, 0xC247, + 0xD5D4, 0xC248, 0xD5D5, 0xC249, 0xD5D6, 0xC24A, 0xD5D7, 0xC24B, 0xD5D8, 0xC7E8, 0xD5D9, 0xC7E9, 0xD5DA, 0xC24C, 0xD5DB, 0xC7EA, + 0xD5DC, 0xC24D, 0xD5DD, 0xC7EB, 0xD5DE, 0xC24E, 0xD5DF, 0xC24F, 0xD5E0, 0xC250, 0xD5E1, 0xC251, 0xD5E2, 0xC252, 0xD5E3, 0xC253, + 0xD5E4, 0xC7EC, 0xD5E5, 0xC7ED, 0xD5E6, 0xC254, 0xD5E7, 0xC255, 0xD5E8, 0xC7EE, 0xD5E9, 0xC256, 0xD5EA, 0xC257, 0xD5EB, 0xC258, + 0xD5EC, 0xC7EF, 0xD5ED, 0xC259, 0xD5EE, 0xC25A, 0xD5EF, 0xC261, 0xD5F0, 0xC262, 0xD5F1, 0xC263, 0xD5F2, 0xC264, 0xD5F3, 0xC265, + 0xD5F4, 0xC7F0, 0xD5F5, 0xC7F1, 0xD5F6, 0xC266, 0xD5F7, 0xC7F2, 0xD5F8, 0xC267, 0xD5F9, 0xC7F3, 0xD5FA, 0xC268, 0xD5FB, 0xC269, + 0xD5FC, 0xC26A, 0xD5FD, 0xC26B, 0xD5FE, 0xC26C, 0xD5FF, 0xC26D, 0xD600, 0xC7F4, 0xD601, 0xC7F5, 0xD602, 0xC26E, 0xD603, 0xC26F, + 0xD604, 0xC7F6, 0xD605, 0xC270, 0xD606, 0xC271, 0xD607, 0xC272, 0xD608, 0xC7F7, 0xD609, 0xC273, 0xD60A, 0xC274, 0xD60B, 0xC275, + 0xD60C, 0xC276, 0xD60D, 0xC277, 0xD60E, 0xC278, 0xD60F, 0xC279, 0xD610, 0xC7F8, 0xD611, 0xC7F9, 0xD612, 0xC27A, 0xD613, 0xC7FA, + 0xD614, 0xC7FB, 0xD615, 0xC7FC, 0xD616, 0xC281, 0xD617, 0xC282, 0xD618, 0xC283, 0xD619, 0xC284, 0xD61A, 0xC285, 0xD61B, 0xC286, + 0xD61C, 0xC7FD, 0xD61D, 0xC287, 0xD61E, 0xC288, 0xD61F, 0xC289, 0xD620, 0xC7FE, 0xD621, 0xC28A, 0xD622, 0xC28B, 0xD623, 0xC28C, + 0xD624, 0xC8A1, 0xD625, 0xC28D, 0xD626, 0xC28E, 0xD627, 0xC28F, 0xD628, 0xC290, 0xD629, 0xC291, 0xD62A, 0xC292, 0xD62B, 0xC293, + 0xD62C, 0xC294, 0xD62D, 0xC8A2, 0xD62E, 0xC295, 0xD62F, 0xC296, 0xD630, 0xC297, 0xD631, 0xC298, 0xD632, 0xC299, 0xD633, 0xC29A, + 0xD634, 0xC29B, 0xD635, 0xC29C, 0xD636, 0xC29D, 0xD637, 0xC29E, 0xD638, 0xC8A3, 0xD639, 0xC8A4, 0xD63A, 0xC29F, 0xD63B, 0xC2A0, + 0xD63C, 0xC8A5, 0xD63D, 0xC341, 0xD63E, 0xC342, 0xD63F, 0xC343, 0xD640, 0xC8A6, 0xD641, 0xC344, 0xD642, 0xC345, 0xD643, 0xC346, + 0xD644, 0xC347, 0xD645, 0xC8A7, 0xD646, 0xC348, 0xD647, 0xC349, 0xD648, 0xC8A8, 0xD649, 0xC8A9, 0xD64A, 0xC34A, 0xD64B, 0xC8AA, + 0xD64C, 0xC34B, 0xD64D, 0xC8AB, 0xD64E, 0xC34C, 0xD64F, 0xC34D, 0xD650, 0xC34E, 0xD651, 0xC8AC, 0xD652, 0xC34F, 0xD653, 0xC350, + 0xD654, 0xC8AD, 0xD655, 0xC8AE, 0xD656, 0xC351, 0xD657, 0xC352, 0xD658, 0xC8AF, 0xD659, 0xC353, 0xD65A, 0xC354, 0xD65B, 0xC355, + 0xD65C, 0xC8B0, 0xD65D, 0xC356, 0xD65E, 0xC357, 0xD65F, 0xC358, 0xD660, 0xC359, 0xD661, 0xC35A, 0xD662, 0xC361, 0xD663, 0xC362, + 0xD664, 0xC363, 0xD665, 0xC364, 0xD666, 0xC365, 0xD667, 0xC8B1, 0xD668, 0xC366, 0xD669, 0xC8B2, 0xD66A, 0xC367, 0xD66B, 0xC368, + 0xD66C, 0xC369, 0xD66D, 0xC36A, 0xD66E, 0xC36B, 0xD66F, 0xC36C, 0xD670, 0xC8B3, 0xD671, 0xC8B4, 0xD672, 0xC36D, 0xD673, 0xC36E, + 0xD674, 0xC8B5, 0xD675, 0xC36F, 0xD676, 0xC370, 0xD677, 0xC371, 0xD678, 0xC372, 0xD679, 0xC373, 0xD67A, 0xC374, 0xD67B, 0xC375, + 0xD67C, 0xC376, 0xD67D, 0xC377, 0xD67E, 0xC378, 0xD67F, 0xC379, 0xD680, 0xC37A, 0xD681, 0xC381, 0xD682, 0xC382, 0xD683, 0xC8B6, + 0xD684, 0xC383, 0xD685, 0xC8B7, 0xD686, 0xC384, 0xD687, 0xC385, 0xD688, 0xC386, 0xD689, 0xC387, 0xD68A, 0xC388, 0xD68B, 0xC389, + 0xD68C, 0xC8B8, 0xD68D, 0xC8B9, 0xD68E, 0xC38A, 0xD68F, 0xC38B, 0xD690, 0xC8BA, 0xD691, 0xC38C, 0xD692, 0xC38D, 0xD693, 0xC38E, + 0xD694, 0xC8BB, 0xD695, 0xC38F, 0xD696, 0xC390, 0xD697, 0xC391, 0xD698, 0xC392, 0xD699, 0xC393, 0xD69A, 0xC394, 0xD69B, 0xC395, + 0xD69C, 0xC396, 0xD69D, 0xC8BC, 0xD69E, 0xC397, 0xD69F, 0xC8BD, 0xD6A0, 0xC398, 0xD6A1, 0xC8BE, 0xD6A2, 0xC399, 0xD6A3, 0xC39A, + 0xD6A4, 0xC39B, 0xD6A5, 0xC39C, 0xD6A6, 0xC39D, 0xD6A7, 0xC39E, 0xD6A8, 0xC8BF, 0xD6A9, 0xC39F, 0xD6AA, 0xC3A0, 0xD6AB, 0xC441, + 0xD6AC, 0xC8C0, 0xD6AD, 0xC442, 0xD6AE, 0xC443, 0xD6AF, 0xC444, 0xD6B0, 0xC8C1, 0xD6B1, 0xC445, 0xD6B2, 0xC446, 0xD6B3, 0xC447, + 0xD6B4, 0xC448, 0xD6B5, 0xC449, 0xD6B6, 0xC44A, 0xD6B7, 0xC44B, 0xD6B8, 0xC44C, 0xD6B9, 0xC8C2, 0xD6BA, 0xC44D, 0xD6BB, 0xC8C3, + 0xD6BC, 0xC44E, 0xD6BD, 0xC44F, 0xD6BE, 0xC450, 0xD6BF, 0xC451, 0xD6C0, 0xC452, 0xD6C1, 0xC453, 0xD6C2, 0xC454, 0xD6C3, 0xC455, + 0xD6C4, 0xC8C4, 0xD6C5, 0xC8C5, 0xD6C6, 0xC456, 0xD6C7, 0xC457, 0xD6C8, 0xC8C6, 0xD6C9, 0xC458, 0xD6CA, 0xC459, 0xD6CB, 0xC45A, + 0xD6CC, 0xC8C7, 0xD6CD, 0xC461, 0xD6CE, 0xC462, 0xD6CF, 0xC463, 0xD6D0, 0xC464, 0xD6D1, 0xC8C8, 0xD6D2, 0xC465, 0xD6D3, 0xC466, + 0xD6D4, 0xC8C9, 0xD6D5, 0xC467, 0xD6D6, 0xC468, 0xD6D7, 0xC8CA, 0xD6D8, 0xC469, 0xD6D9, 0xC8CB, 0xD6DA, 0xC46A, 0xD6DB, 0xC46B, + 0xD6DC, 0xC46C, 0xD6DD, 0xC46D, 0xD6DE, 0xC46E, 0xD6DF, 0xC46F, 0xD6E0, 0xC8CC, 0xD6E1, 0xC470, 0xD6E2, 0xC471, 0xD6E3, 0xC472, + 0xD6E4, 0xC8CD, 0xD6E5, 0xC473, 0xD6E6, 0xC474, 0xD6E7, 0xC475, 0xD6E8, 0xC8CE, 0xD6E9, 0xC476, 0xD6EA, 0xC477, 0xD6EB, 0xC478, + 0xD6EC, 0xC479, 0xD6ED, 0xC47A, 0xD6EE, 0xC481, 0xD6EF, 0xC482, 0xD6F0, 0xC8CF, 0xD6F1, 0xC483, 0xD6F2, 0xC484, 0xD6F3, 0xC485, + 0xD6F4, 0xC486, 0xD6F5, 0xC8D0, 0xD6F6, 0xC487, 0xD6F7, 0xC488, 0xD6F8, 0xC489, 0xD6F9, 0xC48A, 0xD6FA, 0xC48B, 0xD6FB, 0xC48C, + 0xD6FC, 0xC8D1, 0xD6FD, 0xC8D2, 0xD6FE, 0xC48D, 0xD6FF, 0xC48E, 0xD700, 0xC8D3, 0xD701, 0xC48F, 0xD702, 0xC490, 0xD703, 0xC491, + 0xD704, 0xC8D4, 0xD705, 0xC492, 0xD706, 0xC493, 0xD707, 0xC494, 0xD708, 0xC495, 0xD709, 0xC496, 0xD70A, 0xC497, 0xD70B, 0xC498, + 0xD70C, 0xC499, 0xD70D, 0xC49A, 0xD70E, 0xC49B, 0xD70F, 0xC49C, 0xD710, 0xC49D, 0xD711, 0xC8D5, 0xD712, 0xC49E, 0xD713, 0xC49F, + 0xD714, 0xC4A0, 0xD715, 0xC541, 0xD716, 0xC542, 0xD717, 0xC543, 0xD718, 0xC8D6, 0xD719, 0xC8D7, 0xD71A, 0xC544, 0xD71B, 0xC545, + 0xD71C, 0xC8D8, 0xD71D, 0xC546, 0xD71E, 0xC547, 0xD71F, 0xC548, 0xD720, 0xC8D9, 0xD721, 0xC549, 0xD722, 0xC54A, 0xD723, 0xC54B, + 0xD724, 0xC54C, 0xD725, 0xC54D, 0xD726, 0xC54E, 0xD727, 0xC54F, 0xD728, 0xC8DA, 0xD729, 0xC8DB, 0xD72A, 0xC550, 0xD72B, 0xC8DC, + 0xD72C, 0xC551, 0xD72D, 0xC8DD, 0xD72E, 0xC552, 0xD72F, 0xC553, 0xD730, 0xC554, 0xD731, 0xC555, 0xD732, 0xC556, 0xD733, 0xC557, + 0xD734, 0xC8DE, 0xD735, 0xC8DF, 0xD736, 0xC558, 0xD737, 0xC559, 0xD738, 0xC8E0, 0xD739, 0xC55A, 0xD73A, 0xC561, 0xD73B, 0xC562, + 0xD73C, 0xC8E1, 0xD73D, 0xC563, 0xD73E, 0xC564, 0xD73F, 0xC565, 0xD740, 0xC566, 0xD741, 0xC567, 0xD742, 0xC568, 0xD743, 0xC569, + 0xD744, 0xC8E2, 0xD745, 0xC56A, 0xD746, 0xC56B, 0xD747, 0xC8E3, 0xD748, 0xC56C, 0xD749, 0xC8E4, 0xD74A, 0xC56D, 0xD74B, 0xC56E, + 0xD74C, 0xC56F, 0xD74D, 0xC570, 0xD74E, 0xC571, 0xD74F, 0xC572, 0xD750, 0xC8E5, 0xD751, 0xC8E6, 0xD752, 0xC573, 0xD753, 0xC574, + 0xD754, 0xC8E7, 0xD755, 0xC575, 0xD756, 0xC8E8, 0xD757, 0xC8E9, 0xD758, 0xC8EA, 0xD759, 0xC8EB, 0xD75A, 0xC576, 0xD75B, 0xC577, + 0xD75C, 0xC578, 0xD75D, 0xC579, 0xD75E, 0xC57A, 0xD75F, 0xC581, 0xD760, 0xC8EC, 0xD761, 0xC8ED, 0xD762, 0xC582, 0xD763, 0xC8EE, + 0xD764, 0xC583, 0xD765, 0xC8EF, 0xD766, 0xC584, 0xD767, 0xC585, 0xD768, 0xC586, 0xD769, 0xC8F0, 0xD76A, 0xC587, 0xD76B, 0xC588, + 0xD76C, 0xC8F1, 0xD76D, 0xC589, 0xD76E, 0xC58A, 0xD76F, 0xC58B, 0xD770, 0xC8F2, 0xD771, 0xC58C, 0xD772, 0xC58D, 0xD773, 0xC58E, + 0xD774, 0xC8F3, 0xD775, 0xC58F, 0xD776, 0xC590, 0xD777, 0xC591, 0xD778, 0xC592, 0xD779, 0xC593, 0xD77A, 0xC594, 0xD77B, 0xC595, + 0xD77C, 0xC8F4, 0xD77D, 0xC8F5, 0xD77E, 0xC596, 0xD77F, 0xC597, 0xD780, 0xC598, 0xD781, 0xC8F6, 0xD782, 0xC599, 0xD783, 0xC59A, + 0xD784, 0xC59B, 0xD785, 0xC59C, 0xD786, 0xC59D, 0xD787, 0xC59E, 0xD788, 0xC8F7, 0xD789, 0xC8F8, 0xD78A, 0xC59F, 0xD78B, 0xC5A0, + 0xD78C, 0xC8F9, 0xD78D, 0xC641, 0xD78E, 0xC642, 0xD78F, 0xC643, 0xD790, 0xC8FA, 0xD791, 0xC644, 0xD792, 0xC645, 0xD793, 0xC646, + 0xD794, 0xC647, 0xD795, 0xC648, 0xD796, 0xC649, 0xD797, 0xC64A, 0xD798, 0xC8FB, 0xD799, 0xC8FC, 0xD79A, 0xC64B, 0xD79B, 0xC8FD, + 0xD79C, 0xC64C, 0xD79D, 0xC8FE, 0xD79E, 0xC64D, 0xD79F, 0xC64E, 0xD7A0, 0xC64F, 0xD7A1, 0xC650, 0xD7A2, 0xC651, 0xD7A3, 0xC652, + 0xF900, 0xCBD0, 0xF901, 0xCBD6, 0xF902, 0xCBE7, 0xF903, 0xCDCF, 0xF904, 0xCDE8, 0xF905, 0xCEAD, 0xF906, 0xCFFB, 0xF907, 0xD0A2, + 0xF908, 0xD0B8, 0xF909, 0xD0D0, 0xF90A, 0xD0DD, 0xF90B, 0xD1D4, 0xF90C, 0xD1D5, 0xF90D, 0xD1D8, 0xF90E, 0xD1DB, 0xF90F, 0xD1DC, + 0xF910, 0xD1DD, 0xF911, 0xD1DE, 0xF912, 0xD1DF, 0xF913, 0xD1E0, 0xF914, 0xD1E2, 0xF915, 0xD1E3, 0xF916, 0xD1E4, 0xF917, 0xD1E5, + 0xF918, 0xD1E6, 0xF919, 0xD1E8, 0xF91A, 0xD1E9, 0xF91B, 0xD1EA, 0xF91C, 0xD1EB, 0xF91D, 0xD1ED, 0xF91E, 0xD1EF, 0xF91F, 0xD1F0, + 0xF920, 0xD1F2, 0xF921, 0xD1F6, 0xF922, 0xD1FA, 0xF923, 0xD1FC, 0xF924, 0xD1FD, 0xF925, 0xD1FE, 0xF926, 0xD2A2, 0xF927, 0xD2A3, + 0xF928, 0xD2A7, 0xF929, 0xD2A8, 0xF92A, 0xD2A9, 0xF92B, 0xD2AA, 0xF92C, 0xD2AB, 0xF92D, 0xD2AD, 0xF92E, 0xD2B2, 0xF92F, 0xD2BE, + 0xF930, 0xD2C2, 0xF931, 0xD2C3, 0xF932, 0xD2C4, 0xF933, 0xD2C6, 0xF934, 0xD2C7, 0xF935, 0xD2C8, 0xF936, 0xD2C9, 0xF937, 0xD2CA, + 0xF938, 0xD2CB, 0xF939, 0xD2CD, 0xF93A, 0xD2CE, 0xF93B, 0xD2CF, 0xF93C, 0xD2D0, 0xF93D, 0xD2D1, 0xF93E, 0xD2D2, 0xF93F, 0xD2D3, + 0xF940, 0xD2D4, 0xF941, 0xD2D5, 0xF942, 0xD2D6, 0xF943, 0xD2D7, 0xF944, 0xD2D9, 0xF945, 0xD2DA, 0xF946, 0xD2DE, 0xF947, 0xD2DF, + 0xF948, 0xD2E1, 0xF949, 0xD2E2, 0xF94A, 0xD2E4, 0xF94B, 0xD2E5, 0xF94C, 0xD2E6, 0xF94D, 0xD2E7, 0xF94E, 0xD2E8, 0xF94F, 0xD2E9, + 0xF950, 0xD2EA, 0xF951, 0xD2EB, 0xF952, 0xD2F0, 0xF953, 0xD2F1, 0xF954, 0xD2F2, 0xF955, 0xD2F3, 0xF956, 0xD2F4, 0xF957, 0xD2F5, + 0xF958, 0xD2F7, 0xF959, 0xD2F8, 0xF95A, 0xD4E6, 0xF95B, 0xD4FC, 0xF95C, 0xD5A5, 0xF95D, 0xD5AB, 0xF95E, 0xD5AE, 0xF95F, 0xD6B8, + 0xF960, 0xD6CD, 0xF961, 0xD7CB, 0xF962, 0xD7E4, 0xF963, 0xDBC5, 0xF964, 0xDBE4, 0xF965, 0xDCA5, 0xF966, 0xDDA5, 0xF967, 0xDDD5, + 0xF968, 0xDDF4, 0xF969, 0xDEFC, 0xF96A, 0xDEFE, 0xF96B, 0xDFB3, 0xF96C, 0xDFE1, 0xF96D, 0xDFE8, 0xF96E, 0xE0F1, 0xF96F, 0xE1AD, + 0xF970, 0xE1ED, 0xF971, 0xE3F5, 0xF972, 0xE4A1, 0xF973, 0xE4A9, 0xF974, 0xE5AE, 0xF975, 0xE5B1, 0xF976, 0xE5B2, 0xF977, 0xE5B9, + 0xF978, 0xE5BB, 0xF979, 0xE5BC, 0xF97A, 0xE5C4, 0xF97B, 0xE5CE, 0xF97C, 0xE5D0, 0xF97D, 0xE5D2, 0xF97E, 0xE5D6, 0xF97F, 0xE5FA, + 0xF980, 0xE5FB, 0xF981, 0xE5FC, 0xF982, 0xE5FE, 0xF983, 0xE6A1, 0xF984, 0xE6A4, 0xF985, 0xE6A7, 0xF986, 0xE6AD, 0xF987, 0xE6AF, + 0xF988, 0xE6B0, 0xF989, 0xE6B1, 0xF98A, 0xE6B3, 0xF98B, 0xE6B7, 0xF98C, 0xE6B8, 0xF98D, 0xE6BC, 0xF98E, 0xE6C4, 0xF98F, 0xE6C6, + 0xF990, 0xE6C7, 0xF991, 0xE6CA, 0xF992, 0xE6D2, 0xF993, 0xE6D6, 0xF994, 0xE6D9, 0xF995, 0xE6DC, 0xF996, 0xE6DF, 0xF997, 0xE6E1, + 0xF998, 0xE6E4, 0xF999, 0xE6E5, 0xF99A, 0xE6E6, 0xF99B, 0xE6E8, 0xF99C, 0xE6EA, 0xF99D, 0xE6EB, 0xF99E, 0xE6EC, 0xF99F, 0xE6EF, + 0xF9A0, 0xE6F1, 0xF9A1, 0xE6F2, 0xF9A2, 0xE6F5, 0xF9A3, 0xE6F6, 0xF9A4, 0xE6F7, 0xF9A5, 0xE6F9, 0xF9A6, 0xE7A1, 0xF9A7, 0xE7A6, + 0xF9A8, 0xE7A9, 0xF9A9, 0xE7AA, 0xF9AA, 0xE7AC, 0xF9AB, 0xE7AD, 0xF9AC, 0xE7B0, 0xF9AD, 0xE7BF, 0xF9AE, 0xE7C1, 0xF9AF, 0xE7C6, + 0xF9B0, 0xE7C7, 0xF9B1, 0xE7CB, 0xF9B2, 0xE7CD, 0xF9B3, 0xE7CF, 0xF9B4, 0xE7D0, 0xF9B5, 0xE7D3, 0xF9B6, 0xE7DF, 0xF9B7, 0xE7E4, + 0xF9B8, 0xE7E6, 0xF9B9, 0xE7F7, 0xF9BA, 0xE8E7, 0xF9BB, 0xE8E8, 0xF9BC, 0xE8F0, 0xF9BD, 0xE8F1, 0xF9BE, 0xE8F7, 0xF9BF, 0xE8F9, + 0xF9C0, 0xE8FB, 0xF9C1, 0xE8FE, 0xF9C2, 0xE9A7, 0xF9C3, 0xE9AC, 0xF9C4, 0xE9CC, 0xF9C5, 0xE9F7, 0xF9C6, 0xEAC1, 0xF9C7, 0xEAE5, + 0xF9C8, 0xEAF4, 0xF9C9, 0xEAF7, 0xF9CA, 0xEAFC, 0xF9CB, 0xEAFE, 0xF9CC, 0xEBA4, 0xF9CD, 0xEBA7, 0xF9CE, 0xEBA9, 0xF9CF, 0xEBAA, + 0xF9D0, 0xEBBA, 0xF9D1, 0xEBBB, 0xF9D2, 0xEBBD, 0xF9D3, 0xEBC1, 0xF9D4, 0xEBC2, 0xF9D5, 0xEBC6, 0xF9D6, 0xEBC7, 0xF9D7, 0xEBCC, + 0xF9D8, 0xEBCF, 0xF9D9, 0xEBD0, 0xF9DA, 0xEBD1, 0xF9DB, 0xEBD2, 0xF9DC, 0xEBD8, 0xF9DD, 0xECA6, 0xF9DE, 0xECA7, 0xF9DF, 0xECAA, + 0xF9E0, 0xECAF, 0xF9E1, 0xECB0, 0xF9E2, 0xECB1, 0xF9E3, 0xECB2, 0xF9E4, 0xECB5, 0xF9E5, 0xECB8, 0xF9E6, 0xECBA, 0xF9E7, 0xECC0, + 0xF9E8, 0xECC1, 0xF9E9, 0xECC5, 0xF9EA, 0xECC6, 0xF9EB, 0xECC9, 0xF9EC, 0xECCA, 0xF9ED, 0xECD5, 0xF9EE, 0xECDD, 0xF9EF, 0xECDE, + 0xF9F0, 0xECE1, 0xF9F1, 0xECE4, 0xF9F2, 0xECE7, 0xF9F3, 0xECE8, 0xF9F4, 0xECF7, 0xF9F5, 0xECF8, 0xF9F6, 0xECFA, 0xF9F7, 0xEDA1, + 0xF9F8, 0xEDA2, 0xF9F9, 0xEDA3, 0xF9FA, 0xEDEE, 0xF9FB, 0xEEDB, 0xF9FC, 0xF2BD, 0xF9FD, 0xF2FA, 0xF9FE, 0xF3B1, 0xF9FF, 0xF4A7, + 0xFA00, 0xF4EE, 0xFA01, 0xF6F4, 0xFA02, 0xF6F6, 0xFA03, 0xF7B8, 0xFA04, 0xF7C8, 0xFA05, 0xF7D3, 0xFA06, 0xF8DB, 0xFA07, 0xF8F0, + 0xFA08, 0xFAA1, 0xFA09, 0xFAA2, 0xFA0A, 0xFAE6, 0xFA0B, 0xFCA9, 0xFF01, 0xA3A1, 0xFF02, 0xA3A2, 0xFF03, 0xA3A3, 0xFF04, 0xA3A4, + 0xFF05, 0xA3A5, 0xFF06, 0xA3A6, 0xFF07, 0xA3A7, 0xFF08, 0xA3A8, 0xFF09, 0xA3A9, 0xFF0A, 0xA3AA, 0xFF0B, 0xA3AB, 0xFF0C, 0xA3AC, + 0xFF0D, 0xA3AD, 0xFF0E, 0xA3AE, 0xFF0F, 0xA3AF, 0xFF10, 0xA3B0, 0xFF11, 0xA3B1, 0xFF12, 0xA3B2, 0xFF13, 0xA3B3, 0xFF14, 0xA3B4, + 0xFF15, 0xA3B5, 0xFF16, 0xA3B6, 0xFF17, 0xA3B7, 0xFF18, 0xA3B8, 0xFF19, 0xA3B9, 0xFF1A, 0xA3BA, 0xFF1B, 0xA3BB, 0xFF1C, 0xA3BC, + 0xFF1D, 0xA3BD, 0xFF1E, 0xA3BE, 0xFF1F, 0xA3BF, 0xFF20, 0xA3C0, 0xFF21, 0xA3C1, 0xFF22, 0xA3C2, 0xFF23, 0xA3C3, 0xFF24, 0xA3C4, + 0xFF25, 0xA3C5, 0xFF26, 0xA3C6, 0xFF27, 0xA3C7, 0xFF28, 0xA3C8, 0xFF29, 0xA3C9, 0xFF2A, 0xA3CA, 0xFF2B, 0xA3CB, 0xFF2C, 0xA3CC, + 0xFF2D, 0xA3CD, 0xFF2E, 0xA3CE, 0xFF2F, 0xA3CF, 0xFF30, 0xA3D0, 0xFF31, 0xA3D1, 0xFF32, 0xA3D2, 0xFF33, 0xA3D3, 0xFF34, 0xA3D4, + 0xFF35, 0xA3D5, 0xFF36, 0xA3D6, 0xFF37, 0xA3D7, 0xFF38, 0xA3D8, 0xFF39, 0xA3D9, 0xFF3A, 0xA3DA, 0xFF3B, 0xA3DB, 0xFF3C, 0xA1AC, + 0xFF3D, 0xA3DD, 0xFF3E, 0xA3DE, 0xFF3F, 0xA3DF, 0xFF40, 0xA3E0, 0xFF41, 0xA3E1, 0xFF42, 0xA3E2, 0xFF43, 0xA3E3, 0xFF44, 0xA3E4, + 0xFF45, 0xA3E5, 0xFF46, 0xA3E6, 0xFF47, 0xA3E7, 0xFF48, 0xA3E8, 0xFF49, 0xA3E9, 0xFF4A, 0xA3EA, 0xFF4B, 0xA3EB, 0xFF4C, 0xA3EC, + 0xFF4D, 0xA3ED, 0xFF4E, 0xA3EE, 0xFF4F, 0xA3EF, 0xFF50, 0xA3F0, 0xFF51, 0xA3F1, 0xFF52, 0xA3F2, 0xFF53, 0xA3F3, 0xFF54, 0xA3F4, + 0xFF55, 0xA3F5, 0xFF56, 0xA3F6, 0xFF57, 0xA3F7, 0xFF58, 0xA3F8, 0xFF59, 0xA3F9, 0xFF5A, 0xA3FA, 0xFF5B, 0xA3FB, 0xFF5C, 0xA3FC, + 0xFF5D, 0xA3FD, 0xFF5E, 0xA2A6, 0xFFE0, 0xA1CB, 0xFFE1, 0xA1CC, 0xFFE2, 0xA1FE, 0xFFE3, 0xA3FE, 0xFFE5, 0xA1CD, 0xFFE6, 0xA3DC, + 0, 0 +}; + +static const WCHAR oem2uni949[] = { /* Korean --> Unicode pairs */ + 0x8141, 0xAC02, 0x8142, 0xAC03, 0x8143, 0xAC05, 0x8144, 0xAC06, 0x8145, 0xAC0B, 0x8146, 0xAC0C, 0x8147, 0xAC0D, 0x8148, 0xAC0E, + 0x8149, 0xAC0F, 0x814A, 0xAC18, 0x814B, 0xAC1E, 0x814C, 0xAC1F, 0x814D, 0xAC21, 0x814E, 0xAC22, 0x814F, 0xAC23, 0x8150, 0xAC25, + 0x8151, 0xAC26, 0x8152, 0xAC27, 0x8153, 0xAC28, 0x8154, 0xAC29, 0x8155, 0xAC2A, 0x8156, 0xAC2B, 0x8157, 0xAC2E, 0x8158, 0xAC32, + 0x8159, 0xAC33, 0x815A, 0xAC34, 0x8161, 0xAC35, 0x8162, 0xAC36, 0x8163, 0xAC37, 0x8164, 0xAC3A, 0x8165, 0xAC3B, 0x8166, 0xAC3D, + 0x8167, 0xAC3E, 0x8168, 0xAC3F, 0x8169, 0xAC41, 0x816A, 0xAC42, 0x816B, 0xAC43, 0x816C, 0xAC44, 0x816D, 0xAC45, 0x816E, 0xAC46, + 0x816F, 0xAC47, 0x8170, 0xAC48, 0x8171, 0xAC49, 0x8172, 0xAC4A, 0x8173, 0xAC4C, 0x8174, 0xAC4E, 0x8175, 0xAC4F, 0x8176, 0xAC50, + 0x8177, 0xAC51, 0x8178, 0xAC52, 0x8179, 0xAC53, 0x817A, 0xAC55, 0x8181, 0xAC56, 0x8182, 0xAC57, 0x8183, 0xAC59, 0x8184, 0xAC5A, + 0x8185, 0xAC5B, 0x8186, 0xAC5D, 0x8187, 0xAC5E, 0x8188, 0xAC5F, 0x8189, 0xAC60, 0x818A, 0xAC61, 0x818B, 0xAC62, 0x818C, 0xAC63, + 0x818D, 0xAC64, 0x818E, 0xAC65, 0x818F, 0xAC66, 0x8190, 0xAC67, 0x8191, 0xAC68, 0x8192, 0xAC69, 0x8193, 0xAC6A, 0x8194, 0xAC6B, + 0x8195, 0xAC6C, 0x8196, 0xAC6D, 0x8197, 0xAC6E, 0x8198, 0xAC6F, 0x8199, 0xAC72, 0x819A, 0xAC73, 0x819B, 0xAC75, 0x819C, 0xAC76, + 0x819D, 0xAC79, 0x819E, 0xAC7B, 0x819F, 0xAC7C, 0x81A0, 0xAC7D, 0x81A1, 0xAC7E, 0x81A2, 0xAC7F, 0x81A3, 0xAC82, 0x81A4, 0xAC87, + 0x81A5, 0xAC88, 0x81A6, 0xAC8D, 0x81A7, 0xAC8E, 0x81A8, 0xAC8F, 0x81A9, 0xAC91, 0x81AA, 0xAC92, 0x81AB, 0xAC93, 0x81AC, 0xAC95, + 0x81AD, 0xAC96, 0x81AE, 0xAC97, 0x81AF, 0xAC98, 0x81B0, 0xAC99, 0x81B1, 0xAC9A, 0x81B2, 0xAC9B, 0x81B3, 0xAC9E, 0x81B4, 0xACA2, + 0x81B5, 0xACA3, 0x81B6, 0xACA4, 0x81B7, 0xACA5, 0x81B8, 0xACA6, 0x81B9, 0xACA7, 0x81BA, 0xACAB, 0x81BB, 0xACAD, 0x81BC, 0xACAE, + 0x81BD, 0xACB1, 0x81BE, 0xACB2, 0x81BF, 0xACB3, 0x81C0, 0xACB4, 0x81C1, 0xACB5, 0x81C2, 0xACB6, 0x81C3, 0xACB7, 0x81C4, 0xACBA, + 0x81C5, 0xACBE, 0x81C6, 0xACBF, 0x81C7, 0xACC0, 0x81C8, 0xACC2, 0x81C9, 0xACC3, 0x81CA, 0xACC5, 0x81CB, 0xACC6, 0x81CC, 0xACC7, + 0x81CD, 0xACC9, 0x81CE, 0xACCA, 0x81CF, 0xACCB, 0x81D0, 0xACCD, 0x81D1, 0xACCE, 0x81D2, 0xACCF, 0x81D3, 0xACD0, 0x81D4, 0xACD1, + 0x81D5, 0xACD2, 0x81D6, 0xACD3, 0x81D7, 0xACD4, 0x81D8, 0xACD6, 0x81D9, 0xACD8, 0x81DA, 0xACD9, 0x81DB, 0xACDA, 0x81DC, 0xACDB, + 0x81DD, 0xACDC, 0x81DE, 0xACDD, 0x81DF, 0xACDE, 0x81E0, 0xACDF, 0x81E1, 0xACE2, 0x81E2, 0xACE3, 0x81E3, 0xACE5, 0x81E4, 0xACE6, + 0x81E5, 0xACE9, 0x81E6, 0xACEB, 0x81E7, 0xACED, 0x81E8, 0xACEE, 0x81E9, 0xACF2, 0x81EA, 0xACF4, 0x81EB, 0xACF7, 0x81EC, 0xACF8, + 0x81ED, 0xACF9, 0x81EE, 0xACFA, 0x81EF, 0xACFB, 0x81F0, 0xACFE, 0x81F1, 0xACFF, 0x81F2, 0xAD01, 0x81F3, 0xAD02, 0x81F4, 0xAD03, + 0x81F5, 0xAD05, 0x81F6, 0xAD07, 0x81F7, 0xAD08, 0x81F8, 0xAD09, 0x81F9, 0xAD0A, 0x81FA, 0xAD0B, 0x81FB, 0xAD0E, 0x81FC, 0xAD10, + 0x81FD, 0xAD12, 0x81FE, 0xAD13, 0x8241, 0xAD14, 0x8242, 0xAD15, 0x8243, 0xAD16, 0x8244, 0xAD17, 0x8245, 0xAD19, 0x8246, 0xAD1A, + 0x8247, 0xAD1B, 0x8248, 0xAD1D, 0x8249, 0xAD1E, 0x824A, 0xAD1F, 0x824B, 0xAD21, 0x824C, 0xAD22, 0x824D, 0xAD23, 0x824E, 0xAD24, + 0x824F, 0xAD25, 0x8250, 0xAD26, 0x8251, 0xAD27, 0x8252, 0xAD28, 0x8253, 0xAD2A, 0x8254, 0xAD2B, 0x8255, 0xAD2E, 0x8256, 0xAD2F, + 0x8257, 0xAD30, 0x8258, 0xAD31, 0x8259, 0xAD32, 0x825A, 0xAD33, 0x8261, 0xAD36, 0x8262, 0xAD37, 0x8263, 0xAD39, 0x8264, 0xAD3A, + 0x8265, 0xAD3B, 0x8266, 0xAD3D, 0x8267, 0xAD3E, 0x8268, 0xAD3F, 0x8269, 0xAD40, 0x826A, 0xAD41, 0x826B, 0xAD42, 0x826C, 0xAD43, + 0x826D, 0xAD46, 0x826E, 0xAD48, 0x826F, 0xAD4A, 0x8270, 0xAD4B, 0x8271, 0xAD4C, 0x8272, 0xAD4D, 0x8273, 0xAD4E, 0x8274, 0xAD4F, + 0x8275, 0xAD51, 0x8276, 0xAD52, 0x8277, 0xAD53, 0x8278, 0xAD55, 0x8279, 0xAD56, 0x827A, 0xAD57, 0x8281, 0xAD59, 0x8282, 0xAD5A, + 0x8283, 0xAD5B, 0x8284, 0xAD5C, 0x8285, 0xAD5D, 0x8286, 0xAD5E, 0x8287, 0xAD5F, 0x8288, 0xAD60, 0x8289, 0xAD62, 0x828A, 0xAD64, + 0x828B, 0xAD65, 0x828C, 0xAD66, 0x828D, 0xAD67, 0x828E, 0xAD68, 0x828F, 0xAD69, 0x8290, 0xAD6A, 0x8291, 0xAD6B, 0x8292, 0xAD6E, + 0x8293, 0xAD6F, 0x8294, 0xAD71, 0x8295, 0xAD72, 0x8296, 0xAD77, 0x8297, 0xAD78, 0x8298, 0xAD79, 0x8299, 0xAD7A, 0x829A, 0xAD7E, + 0x829B, 0xAD80, 0x829C, 0xAD83, 0x829D, 0xAD84, 0x829E, 0xAD85, 0x829F, 0xAD86, 0x82A0, 0xAD87, 0x82A1, 0xAD8A, 0x82A2, 0xAD8B, + 0x82A3, 0xAD8D, 0x82A4, 0xAD8E, 0x82A5, 0xAD8F, 0x82A6, 0xAD91, 0x82A7, 0xAD92, 0x82A8, 0xAD93, 0x82A9, 0xAD94, 0x82AA, 0xAD95, + 0x82AB, 0xAD96, 0x82AC, 0xAD97, 0x82AD, 0xAD98, 0x82AE, 0xAD99, 0x82AF, 0xAD9A, 0x82B0, 0xAD9B, 0x82B1, 0xAD9E, 0x82B2, 0xAD9F, + 0x82B3, 0xADA0, 0x82B4, 0xADA1, 0x82B5, 0xADA2, 0x82B6, 0xADA3, 0x82B7, 0xADA5, 0x82B8, 0xADA6, 0x82B9, 0xADA7, 0x82BA, 0xADA8, + 0x82BB, 0xADA9, 0x82BC, 0xADAA, 0x82BD, 0xADAB, 0x82BE, 0xADAC, 0x82BF, 0xADAD, 0x82C0, 0xADAE, 0x82C1, 0xADAF, 0x82C2, 0xADB0, + 0x82C3, 0xADB1, 0x82C4, 0xADB2, 0x82C5, 0xADB3, 0x82C6, 0xADB4, 0x82C7, 0xADB5, 0x82C8, 0xADB6, 0x82C9, 0xADB8, 0x82CA, 0xADB9, + 0x82CB, 0xADBA, 0x82CC, 0xADBB, 0x82CD, 0xADBC, 0x82CE, 0xADBD, 0x82CF, 0xADBE, 0x82D0, 0xADBF, 0x82D1, 0xADC2, 0x82D2, 0xADC3, + 0x82D3, 0xADC5, 0x82D4, 0xADC6, 0x82D5, 0xADC7, 0x82D6, 0xADC9, 0x82D7, 0xADCA, 0x82D8, 0xADCB, 0x82D9, 0xADCC, 0x82DA, 0xADCD, + 0x82DB, 0xADCE, 0x82DC, 0xADCF, 0x82DD, 0xADD2, 0x82DE, 0xADD4, 0x82DF, 0xADD5, 0x82E0, 0xADD6, 0x82E1, 0xADD7, 0x82E2, 0xADD8, + 0x82E3, 0xADD9, 0x82E4, 0xADDA, 0x82E5, 0xADDB, 0x82E6, 0xADDD, 0x82E7, 0xADDE, 0x82E8, 0xADDF, 0x82E9, 0xADE1, 0x82EA, 0xADE2, + 0x82EB, 0xADE3, 0x82EC, 0xADE5, 0x82ED, 0xADE6, 0x82EE, 0xADE7, 0x82EF, 0xADE8, 0x82F0, 0xADE9, 0x82F1, 0xADEA, 0x82F2, 0xADEB, + 0x82F3, 0xADEC, 0x82F4, 0xADED, 0x82F5, 0xADEE, 0x82F6, 0xADEF, 0x82F7, 0xADF0, 0x82F8, 0xADF1, 0x82F9, 0xADF2, 0x82FA, 0xADF3, + 0x82FB, 0xADF4, 0x82FC, 0xADF5, 0x82FD, 0xADF6, 0x82FE, 0xADF7, 0x8341, 0xADFA, 0x8342, 0xADFB, 0x8343, 0xADFD, 0x8344, 0xADFE, + 0x8345, 0xAE02, 0x8346, 0xAE03, 0x8347, 0xAE04, 0x8348, 0xAE05, 0x8349, 0xAE06, 0x834A, 0xAE07, 0x834B, 0xAE0A, 0x834C, 0xAE0C, + 0x834D, 0xAE0E, 0x834E, 0xAE0F, 0x834F, 0xAE10, 0x8350, 0xAE11, 0x8351, 0xAE12, 0x8352, 0xAE13, 0x8353, 0xAE15, 0x8354, 0xAE16, + 0x8355, 0xAE17, 0x8356, 0xAE18, 0x8357, 0xAE19, 0x8358, 0xAE1A, 0x8359, 0xAE1B, 0x835A, 0xAE1C, 0x8361, 0xAE1D, 0x8362, 0xAE1E, + 0x8363, 0xAE1F, 0x8364, 0xAE20, 0x8365, 0xAE21, 0x8366, 0xAE22, 0x8367, 0xAE23, 0x8368, 0xAE24, 0x8369, 0xAE25, 0x836A, 0xAE26, + 0x836B, 0xAE27, 0x836C, 0xAE28, 0x836D, 0xAE29, 0x836E, 0xAE2A, 0x836F, 0xAE2B, 0x8370, 0xAE2C, 0x8371, 0xAE2D, 0x8372, 0xAE2E, + 0x8373, 0xAE2F, 0x8374, 0xAE32, 0x8375, 0xAE33, 0x8376, 0xAE35, 0x8377, 0xAE36, 0x8378, 0xAE39, 0x8379, 0xAE3B, 0x837A, 0xAE3C, + 0x8381, 0xAE3D, 0x8382, 0xAE3E, 0x8383, 0xAE3F, 0x8384, 0xAE42, 0x8385, 0xAE44, 0x8386, 0xAE47, 0x8387, 0xAE48, 0x8388, 0xAE49, + 0x8389, 0xAE4B, 0x838A, 0xAE4F, 0x838B, 0xAE51, 0x838C, 0xAE52, 0x838D, 0xAE53, 0x838E, 0xAE55, 0x838F, 0xAE57, 0x8390, 0xAE58, + 0x8391, 0xAE59, 0x8392, 0xAE5A, 0x8393, 0xAE5B, 0x8394, 0xAE5E, 0x8395, 0xAE62, 0x8396, 0xAE63, 0x8397, 0xAE64, 0x8398, 0xAE66, + 0x8399, 0xAE67, 0x839A, 0xAE6A, 0x839B, 0xAE6B, 0x839C, 0xAE6D, 0x839D, 0xAE6E, 0x839E, 0xAE6F, 0x839F, 0xAE71, 0x83A0, 0xAE72, + 0x83A1, 0xAE73, 0x83A2, 0xAE74, 0x83A3, 0xAE75, 0x83A4, 0xAE76, 0x83A5, 0xAE77, 0x83A6, 0xAE7A, 0x83A7, 0xAE7E, 0x83A8, 0xAE7F, + 0x83A9, 0xAE80, 0x83AA, 0xAE81, 0x83AB, 0xAE82, 0x83AC, 0xAE83, 0x83AD, 0xAE86, 0x83AE, 0xAE87, 0x83AF, 0xAE88, 0x83B0, 0xAE89, + 0x83B1, 0xAE8A, 0x83B2, 0xAE8B, 0x83B3, 0xAE8D, 0x83B4, 0xAE8E, 0x83B5, 0xAE8F, 0x83B6, 0xAE90, 0x83B7, 0xAE91, 0x83B8, 0xAE92, + 0x83B9, 0xAE93, 0x83BA, 0xAE94, 0x83BB, 0xAE95, 0x83BC, 0xAE96, 0x83BD, 0xAE97, 0x83BE, 0xAE98, 0x83BF, 0xAE99, 0x83C0, 0xAE9A, + 0x83C1, 0xAE9B, 0x83C2, 0xAE9C, 0x83C3, 0xAE9D, 0x83C4, 0xAE9E, 0x83C5, 0xAE9F, 0x83C6, 0xAEA0, 0x83C7, 0xAEA1, 0x83C8, 0xAEA2, + 0x83C9, 0xAEA3, 0x83CA, 0xAEA4, 0x83CB, 0xAEA5, 0x83CC, 0xAEA6, 0x83CD, 0xAEA7, 0x83CE, 0xAEA8, 0x83CF, 0xAEA9, 0x83D0, 0xAEAA, + 0x83D1, 0xAEAB, 0x83D2, 0xAEAC, 0x83D3, 0xAEAD, 0x83D4, 0xAEAE, 0x83D5, 0xAEAF, 0x83D6, 0xAEB0, 0x83D7, 0xAEB1, 0x83D8, 0xAEB2, + 0x83D9, 0xAEB3, 0x83DA, 0xAEB4, 0x83DB, 0xAEB5, 0x83DC, 0xAEB6, 0x83DD, 0xAEB7, 0x83DE, 0xAEB8, 0x83DF, 0xAEB9, 0x83E0, 0xAEBA, + 0x83E1, 0xAEBB, 0x83E2, 0xAEBF, 0x83E3, 0xAEC1, 0x83E4, 0xAEC2, 0x83E5, 0xAEC3, 0x83E6, 0xAEC5, 0x83E7, 0xAEC6, 0x83E8, 0xAEC7, + 0x83E9, 0xAEC8, 0x83EA, 0xAEC9, 0x83EB, 0xAECA, 0x83EC, 0xAECB, 0x83ED, 0xAECE, 0x83EE, 0xAED2, 0x83EF, 0xAED3, 0x83F0, 0xAED4, + 0x83F1, 0xAED5, 0x83F2, 0xAED6, 0x83F3, 0xAED7, 0x83F4, 0xAEDA, 0x83F5, 0xAEDB, 0x83F6, 0xAEDD, 0x83F7, 0xAEDE, 0x83F8, 0xAEDF, + 0x83F9, 0xAEE0, 0x83FA, 0xAEE1, 0x83FB, 0xAEE2, 0x83FC, 0xAEE3, 0x83FD, 0xAEE4, 0x83FE, 0xAEE5, 0x8441, 0xAEE6, 0x8442, 0xAEE7, + 0x8443, 0xAEE9, 0x8444, 0xAEEA, 0x8445, 0xAEEC, 0x8446, 0xAEEE, 0x8447, 0xAEEF, 0x8448, 0xAEF0, 0x8449, 0xAEF1, 0x844A, 0xAEF2, + 0x844B, 0xAEF3, 0x844C, 0xAEF5, 0x844D, 0xAEF6, 0x844E, 0xAEF7, 0x844F, 0xAEF9, 0x8450, 0xAEFA, 0x8451, 0xAEFB, 0x8452, 0xAEFD, + 0x8453, 0xAEFE, 0x8454, 0xAEFF, 0x8455, 0xAF00, 0x8456, 0xAF01, 0x8457, 0xAF02, 0x8458, 0xAF03, 0x8459, 0xAF04, 0x845A, 0xAF05, + 0x8461, 0xAF06, 0x8462, 0xAF09, 0x8463, 0xAF0A, 0x8464, 0xAF0B, 0x8465, 0xAF0C, 0x8466, 0xAF0E, 0x8467, 0xAF0F, 0x8468, 0xAF11, + 0x8469, 0xAF12, 0x846A, 0xAF13, 0x846B, 0xAF14, 0x846C, 0xAF15, 0x846D, 0xAF16, 0x846E, 0xAF17, 0x846F, 0xAF18, 0x8470, 0xAF19, + 0x8471, 0xAF1A, 0x8472, 0xAF1B, 0x8473, 0xAF1C, 0x8474, 0xAF1D, 0x8475, 0xAF1E, 0x8476, 0xAF1F, 0x8477, 0xAF20, 0x8478, 0xAF21, + 0x8479, 0xAF22, 0x847A, 0xAF23, 0x8481, 0xAF24, 0x8482, 0xAF25, 0x8483, 0xAF26, 0x8484, 0xAF27, 0x8485, 0xAF28, 0x8486, 0xAF29, + 0x8487, 0xAF2A, 0x8488, 0xAF2B, 0x8489, 0xAF2E, 0x848A, 0xAF2F, 0x848B, 0xAF31, 0x848C, 0xAF33, 0x848D, 0xAF35, 0x848E, 0xAF36, + 0x848F, 0xAF37, 0x8490, 0xAF38, 0x8491, 0xAF39, 0x8492, 0xAF3A, 0x8493, 0xAF3B, 0x8494, 0xAF3E, 0x8495, 0xAF40, 0x8496, 0xAF44, + 0x8497, 0xAF45, 0x8498, 0xAF46, 0x8499, 0xAF47, 0x849A, 0xAF4A, 0x849B, 0xAF4B, 0x849C, 0xAF4C, 0x849D, 0xAF4D, 0x849E, 0xAF4E, + 0x849F, 0xAF4F, 0x84A0, 0xAF51, 0x84A1, 0xAF52, 0x84A2, 0xAF53, 0x84A3, 0xAF54, 0x84A4, 0xAF55, 0x84A5, 0xAF56, 0x84A6, 0xAF57, + 0x84A7, 0xAF58, 0x84A8, 0xAF59, 0x84A9, 0xAF5A, 0x84AA, 0xAF5B, 0x84AB, 0xAF5E, 0x84AC, 0xAF5F, 0x84AD, 0xAF60, 0x84AE, 0xAF61, + 0x84AF, 0xAF62, 0x84B0, 0xAF63, 0x84B1, 0xAF66, 0x84B2, 0xAF67, 0x84B3, 0xAF68, 0x84B4, 0xAF69, 0x84B5, 0xAF6A, 0x84B6, 0xAF6B, + 0x84B7, 0xAF6C, 0x84B8, 0xAF6D, 0x84B9, 0xAF6E, 0x84BA, 0xAF6F, 0x84BB, 0xAF70, 0x84BC, 0xAF71, 0x84BD, 0xAF72, 0x84BE, 0xAF73, + 0x84BF, 0xAF74, 0x84C0, 0xAF75, 0x84C1, 0xAF76, 0x84C2, 0xAF77, 0x84C3, 0xAF78, 0x84C4, 0xAF7A, 0x84C5, 0xAF7B, 0x84C6, 0xAF7C, + 0x84C7, 0xAF7D, 0x84C8, 0xAF7E, 0x84C9, 0xAF7F, 0x84CA, 0xAF81, 0x84CB, 0xAF82, 0x84CC, 0xAF83, 0x84CD, 0xAF85, 0x84CE, 0xAF86, + 0x84CF, 0xAF87, 0x84D0, 0xAF89, 0x84D1, 0xAF8A, 0x84D2, 0xAF8B, 0x84D3, 0xAF8C, 0x84D4, 0xAF8D, 0x84D5, 0xAF8E, 0x84D6, 0xAF8F, + 0x84D7, 0xAF92, 0x84D8, 0xAF93, 0x84D9, 0xAF94, 0x84DA, 0xAF96, 0x84DB, 0xAF97, 0x84DC, 0xAF98, 0x84DD, 0xAF99, 0x84DE, 0xAF9A, + 0x84DF, 0xAF9B, 0x84E0, 0xAF9D, 0x84E1, 0xAF9E, 0x84E2, 0xAF9F, 0x84E3, 0xAFA0, 0x84E4, 0xAFA1, 0x84E5, 0xAFA2, 0x84E6, 0xAFA3, + 0x84E7, 0xAFA4, 0x84E8, 0xAFA5, 0x84E9, 0xAFA6, 0x84EA, 0xAFA7, 0x84EB, 0xAFA8, 0x84EC, 0xAFA9, 0x84ED, 0xAFAA, 0x84EE, 0xAFAB, + 0x84EF, 0xAFAC, 0x84F0, 0xAFAD, 0x84F1, 0xAFAE, 0x84F2, 0xAFAF, 0x84F3, 0xAFB0, 0x84F4, 0xAFB1, 0x84F5, 0xAFB2, 0x84F6, 0xAFB3, + 0x84F7, 0xAFB4, 0x84F8, 0xAFB5, 0x84F9, 0xAFB6, 0x84FA, 0xAFB7, 0x84FB, 0xAFBA, 0x84FC, 0xAFBB, 0x84FD, 0xAFBD, 0x84FE, 0xAFBE, + 0x8541, 0xAFBF, 0x8542, 0xAFC1, 0x8543, 0xAFC2, 0x8544, 0xAFC3, 0x8545, 0xAFC4, 0x8546, 0xAFC5, 0x8547, 0xAFC6, 0x8548, 0xAFCA, + 0x8549, 0xAFCC, 0x854A, 0xAFCF, 0x854B, 0xAFD0, 0x854C, 0xAFD1, 0x854D, 0xAFD2, 0x854E, 0xAFD3, 0x854F, 0xAFD5, 0x8550, 0xAFD6, + 0x8551, 0xAFD7, 0x8552, 0xAFD8, 0x8553, 0xAFD9, 0x8554, 0xAFDA, 0x8555, 0xAFDB, 0x8556, 0xAFDD, 0x8557, 0xAFDE, 0x8558, 0xAFDF, + 0x8559, 0xAFE0, 0x855A, 0xAFE1, 0x8561, 0xAFE2, 0x8562, 0xAFE3, 0x8563, 0xAFE4, 0x8564, 0xAFE5, 0x8565, 0xAFE6, 0x8566, 0xAFE7, + 0x8567, 0xAFEA, 0x8568, 0xAFEB, 0x8569, 0xAFEC, 0x856A, 0xAFED, 0x856B, 0xAFEE, 0x856C, 0xAFEF, 0x856D, 0xAFF2, 0x856E, 0xAFF3, + 0x856F, 0xAFF5, 0x8570, 0xAFF6, 0x8571, 0xAFF7, 0x8572, 0xAFF9, 0x8573, 0xAFFA, 0x8574, 0xAFFB, 0x8575, 0xAFFC, 0x8576, 0xAFFD, + 0x8577, 0xAFFE, 0x8578, 0xAFFF, 0x8579, 0xB002, 0x857A, 0xB003, 0x8581, 0xB005, 0x8582, 0xB006, 0x8583, 0xB007, 0x8584, 0xB008, + 0x8585, 0xB009, 0x8586, 0xB00A, 0x8587, 0xB00B, 0x8588, 0xB00D, 0x8589, 0xB00E, 0x858A, 0xB00F, 0x858B, 0xB011, 0x858C, 0xB012, + 0x858D, 0xB013, 0x858E, 0xB015, 0x858F, 0xB016, 0x8590, 0xB017, 0x8591, 0xB018, 0x8592, 0xB019, 0x8593, 0xB01A, 0x8594, 0xB01B, + 0x8595, 0xB01E, 0x8596, 0xB01F, 0x8597, 0xB020, 0x8598, 0xB021, 0x8599, 0xB022, 0x859A, 0xB023, 0x859B, 0xB024, 0x859C, 0xB025, + 0x859D, 0xB026, 0x859E, 0xB027, 0x859F, 0xB029, 0x85A0, 0xB02A, 0x85A1, 0xB02B, 0x85A2, 0xB02C, 0x85A3, 0xB02D, 0x85A4, 0xB02E, + 0x85A5, 0xB02F, 0x85A6, 0xB030, 0x85A7, 0xB031, 0x85A8, 0xB032, 0x85A9, 0xB033, 0x85AA, 0xB034, 0x85AB, 0xB035, 0x85AC, 0xB036, + 0x85AD, 0xB037, 0x85AE, 0xB038, 0x85AF, 0xB039, 0x85B0, 0xB03A, 0x85B1, 0xB03B, 0x85B2, 0xB03C, 0x85B3, 0xB03D, 0x85B4, 0xB03E, + 0x85B5, 0xB03F, 0x85B6, 0xB040, 0x85B7, 0xB041, 0x85B8, 0xB042, 0x85B9, 0xB043, 0x85BA, 0xB046, 0x85BB, 0xB047, 0x85BC, 0xB049, + 0x85BD, 0xB04B, 0x85BE, 0xB04D, 0x85BF, 0xB04F, 0x85C0, 0xB050, 0x85C1, 0xB051, 0x85C2, 0xB052, 0x85C3, 0xB056, 0x85C4, 0xB058, + 0x85C5, 0xB05A, 0x85C6, 0xB05B, 0x85C7, 0xB05C, 0x85C8, 0xB05E, 0x85C9, 0xB05F, 0x85CA, 0xB060, 0x85CB, 0xB061, 0x85CC, 0xB062, + 0x85CD, 0xB063, 0x85CE, 0xB064, 0x85CF, 0xB065, 0x85D0, 0xB066, 0x85D1, 0xB067, 0x85D2, 0xB068, 0x85D3, 0xB069, 0x85D4, 0xB06A, + 0x85D5, 0xB06B, 0x85D6, 0xB06C, 0x85D7, 0xB06D, 0x85D8, 0xB06E, 0x85D9, 0xB06F, 0x85DA, 0xB070, 0x85DB, 0xB071, 0x85DC, 0xB072, + 0x85DD, 0xB073, 0x85DE, 0xB074, 0x85DF, 0xB075, 0x85E0, 0xB076, 0x85E1, 0xB077, 0x85E2, 0xB078, 0x85E3, 0xB079, 0x85E4, 0xB07A, + 0x85E5, 0xB07B, 0x85E6, 0xB07E, 0x85E7, 0xB07F, 0x85E8, 0xB081, 0x85E9, 0xB082, 0x85EA, 0xB083, 0x85EB, 0xB085, 0x85EC, 0xB086, + 0x85ED, 0xB087, 0x85EE, 0xB088, 0x85EF, 0xB089, 0x85F0, 0xB08A, 0x85F1, 0xB08B, 0x85F2, 0xB08E, 0x85F3, 0xB090, 0x85F4, 0xB092, + 0x85F5, 0xB093, 0x85F6, 0xB094, 0x85F7, 0xB095, 0x85F8, 0xB096, 0x85F9, 0xB097, 0x85FA, 0xB09B, 0x85FB, 0xB09D, 0x85FC, 0xB09E, + 0x85FD, 0xB0A3, 0x85FE, 0xB0A4, 0x8641, 0xB0A5, 0x8642, 0xB0A6, 0x8643, 0xB0A7, 0x8644, 0xB0AA, 0x8645, 0xB0B0, 0x8646, 0xB0B2, + 0x8647, 0xB0B6, 0x8648, 0xB0B7, 0x8649, 0xB0B9, 0x864A, 0xB0BA, 0x864B, 0xB0BB, 0x864C, 0xB0BD, 0x864D, 0xB0BE, 0x864E, 0xB0BF, + 0x864F, 0xB0C0, 0x8650, 0xB0C1, 0x8651, 0xB0C2, 0x8652, 0xB0C3, 0x8653, 0xB0C6, 0x8654, 0xB0CA, 0x8655, 0xB0CB, 0x8656, 0xB0CC, + 0x8657, 0xB0CD, 0x8658, 0xB0CE, 0x8659, 0xB0CF, 0x865A, 0xB0D2, 0x8661, 0xB0D3, 0x8662, 0xB0D5, 0x8663, 0xB0D6, 0x8664, 0xB0D7, + 0x8665, 0xB0D9, 0x8666, 0xB0DA, 0x8667, 0xB0DB, 0x8668, 0xB0DC, 0x8669, 0xB0DD, 0x866A, 0xB0DE, 0x866B, 0xB0DF, 0x866C, 0xB0E1, + 0x866D, 0xB0E2, 0x866E, 0xB0E3, 0x866F, 0xB0E4, 0x8670, 0xB0E6, 0x8671, 0xB0E7, 0x8672, 0xB0E8, 0x8673, 0xB0E9, 0x8674, 0xB0EA, + 0x8675, 0xB0EB, 0x8676, 0xB0EC, 0x8677, 0xB0ED, 0x8678, 0xB0EE, 0x8679, 0xB0EF, 0x867A, 0xB0F0, 0x8681, 0xB0F1, 0x8682, 0xB0F2, + 0x8683, 0xB0F3, 0x8684, 0xB0F4, 0x8685, 0xB0F5, 0x8686, 0xB0F6, 0x8687, 0xB0F7, 0x8688, 0xB0F8, 0x8689, 0xB0F9, 0x868A, 0xB0FA, + 0x868B, 0xB0FB, 0x868C, 0xB0FC, 0x868D, 0xB0FD, 0x868E, 0xB0FE, 0x868F, 0xB0FF, 0x8690, 0xB100, 0x8691, 0xB101, 0x8692, 0xB102, + 0x8693, 0xB103, 0x8694, 0xB104, 0x8695, 0xB105, 0x8696, 0xB106, 0x8697, 0xB107, 0x8698, 0xB10A, 0x8699, 0xB10D, 0x869A, 0xB10E, + 0x869B, 0xB10F, 0x869C, 0xB111, 0x869D, 0xB114, 0x869E, 0xB115, 0x869F, 0xB116, 0x86A0, 0xB117, 0x86A1, 0xB11A, 0x86A2, 0xB11E, + 0x86A3, 0xB11F, 0x86A4, 0xB120, 0x86A5, 0xB121, 0x86A6, 0xB122, 0x86A7, 0xB126, 0x86A8, 0xB127, 0x86A9, 0xB129, 0x86AA, 0xB12A, + 0x86AB, 0xB12B, 0x86AC, 0xB12D, 0x86AD, 0xB12E, 0x86AE, 0xB12F, 0x86AF, 0xB130, 0x86B0, 0xB131, 0x86B1, 0xB132, 0x86B2, 0xB133, + 0x86B3, 0xB136, 0x86B4, 0xB13A, 0x86B5, 0xB13B, 0x86B6, 0xB13C, 0x86B7, 0xB13D, 0x86B8, 0xB13E, 0x86B9, 0xB13F, 0x86BA, 0xB142, + 0x86BB, 0xB143, 0x86BC, 0xB145, 0x86BD, 0xB146, 0x86BE, 0xB147, 0x86BF, 0xB149, 0x86C0, 0xB14A, 0x86C1, 0xB14B, 0x86C2, 0xB14C, + 0x86C3, 0xB14D, 0x86C4, 0xB14E, 0x86C5, 0xB14F, 0x86C6, 0xB152, 0x86C7, 0xB153, 0x86C8, 0xB156, 0x86C9, 0xB157, 0x86CA, 0xB159, + 0x86CB, 0xB15A, 0x86CC, 0xB15B, 0x86CD, 0xB15D, 0x86CE, 0xB15E, 0x86CF, 0xB15F, 0x86D0, 0xB161, 0x86D1, 0xB162, 0x86D2, 0xB163, + 0x86D3, 0xB164, 0x86D4, 0xB165, 0x86D5, 0xB166, 0x86D6, 0xB167, 0x86D7, 0xB168, 0x86D8, 0xB169, 0x86D9, 0xB16A, 0x86DA, 0xB16B, + 0x86DB, 0xB16C, 0x86DC, 0xB16D, 0x86DD, 0xB16E, 0x86DE, 0xB16F, 0x86DF, 0xB170, 0x86E0, 0xB171, 0x86E1, 0xB172, 0x86E2, 0xB173, + 0x86E3, 0xB174, 0x86E4, 0xB175, 0x86E5, 0xB176, 0x86E6, 0xB177, 0x86E7, 0xB17A, 0x86E8, 0xB17B, 0x86E9, 0xB17D, 0x86EA, 0xB17E, + 0x86EB, 0xB17F, 0x86EC, 0xB181, 0x86ED, 0xB183, 0x86EE, 0xB184, 0x86EF, 0xB185, 0x86F0, 0xB186, 0x86F1, 0xB187, 0x86F2, 0xB18A, + 0x86F3, 0xB18C, 0x86F4, 0xB18E, 0x86F5, 0xB18F, 0x86F6, 0xB190, 0x86F7, 0xB191, 0x86F8, 0xB195, 0x86F9, 0xB196, 0x86FA, 0xB197, + 0x86FB, 0xB199, 0x86FC, 0xB19A, 0x86FD, 0xB19B, 0x86FE, 0xB19D, 0x8741, 0xB19E, 0x8742, 0xB19F, 0x8743, 0xB1A0, 0x8744, 0xB1A1, + 0x8745, 0xB1A2, 0x8746, 0xB1A3, 0x8747, 0xB1A4, 0x8748, 0xB1A5, 0x8749, 0xB1A6, 0x874A, 0xB1A7, 0x874B, 0xB1A9, 0x874C, 0xB1AA, + 0x874D, 0xB1AB, 0x874E, 0xB1AC, 0x874F, 0xB1AD, 0x8750, 0xB1AE, 0x8751, 0xB1AF, 0x8752, 0xB1B0, 0x8753, 0xB1B1, 0x8754, 0xB1B2, + 0x8755, 0xB1B3, 0x8756, 0xB1B4, 0x8757, 0xB1B5, 0x8758, 0xB1B6, 0x8759, 0xB1B7, 0x875A, 0xB1B8, 0x8761, 0xB1B9, 0x8762, 0xB1BA, + 0x8763, 0xB1BB, 0x8764, 0xB1BC, 0x8765, 0xB1BD, 0x8766, 0xB1BE, 0x8767, 0xB1BF, 0x8768, 0xB1C0, 0x8769, 0xB1C1, 0x876A, 0xB1C2, + 0x876B, 0xB1C3, 0x876C, 0xB1C4, 0x876D, 0xB1C5, 0x876E, 0xB1C6, 0x876F, 0xB1C7, 0x8770, 0xB1C8, 0x8771, 0xB1C9, 0x8772, 0xB1CA, + 0x8773, 0xB1CB, 0x8774, 0xB1CD, 0x8775, 0xB1CE, 0x8776, 0xB1CF, 0x8777, 0xB1D1, 0x8778, 0xB1D2, 0x8779, 0xB1D3, 0x877A, 0xB1D5, + 0x8781, 0xB1D6, 0x8782, 0xB1D7, 0x8783, 0xB1D8, 0x8784, 0xB1D9, 0x8785, 0xB1DA, 0x8786, 0xB1DB, 0x8787, 0xB1DE, 0x8788, 0xB1E0, + 0x8789, 0xB1E1, 0x878A, 0xB1E2, 0x878B, 0xB1E3, 0x878C, 0xB1E4, 0x878D, 0xB1E5, 0x878E, 0xB1E6, 0x878F, 0xB1E7, 0x8790, 0xB1EA, + 0x8791, 0xB1EB, 0x8792, 0xB1ED, 0x8793, 0xB1EE, 0x8794, 0xB1EF, 0x8795, 0xB1F1, 0x8796, 0xB1F2, 0x8797, 0xB1F3, 0x8798, 0xB1F4, + 0x8799, 0xB1F5, 0x879A, 0xB1F6, 0x879B, 0xB1F7, 0x879C, 0xB1F8, 0x879D, 0xB1FA, 0x879E, 0xB1FC, 0x879F, 0xB1FE, 0x87A0, 0xB1FF, + 0x87A1, 0xB200, 0x87A2, 0xB201, 0x87A3, 0xB202, 0x87A4, 0xB203, 0x87A5, 0xB206, 0x87A6, 0xB207, 0x87A7, 0xB209, 0x87A8, 0xB20A, + 0x87A9, 0xB20D, 0x87AA, 0xB20E, 0x87AB, 0xB20F, 0x87AC, 0xB210, 0x87AD, 0xB211, 0x87AE, 0xB212, 0x87AF, 0xB213, 0x87B0, 0xB216, + 0x87B1, 0xB218, 0x87B2, 0xB21A, 0x87B3, 0xB21B, 0x87B4, 0xB21C, 0x87B5, 0xB21D, 0x87B6, 0xB21E, 0x87B7, 0xB21F, 0x87B8, 0xB221, + 0x87B9, 0xB222, 0x87BA, 0xB223, 0x87BB, 0xB224, 0x87BC, 0xB225, 0x87BD, 0xB226, 0x87BE, 0xB227, 0x87BF, 0xB228, 0x87C0, 0xB229, + 0x87C1, 0xB22A, 0x87C2, 0xB22B, 0x87C3, 0xB22C, 0x87C4, 0xB22D, 0x87C5, 0xB22E, 0x87C6, 0xB22F, 0x87C7, 0xB230, 0x87C8, 0xB231, + 0x87C9, 0xB232, 0x87CA, 0xB233, 0x87CB, 0xB235, 0x87CC, 0xB236, 0x87CD, 0xB237, 0x87CE, 0xB238, 0x87CF, 0xB239, 0x87D0, 0xB23A, + 0x87D1, 0xB23B, 0x87D2, 0xB23D, 0x87D3, 0xB23E, 0x87D4, 0xB23F, 0x87D5, 0xB240, 0x87D6, 0xB241, 0x87D7, 0xB242, 0x87D8, 0xB243, + 0x87D9, 0xB244, 0x87DA, 0xB245, 0x87DB, 0xB246, 0x87DC, 0xB247, 0x87DD, 0xB248, 0x87DE, 0xB249, 0x87DF, 0xB24A, 0x87E0, 0xB24B, + 0x87E1, 0xB24C, 0x87E2, 0xB24D, 0x87E3, 0xB24E, 0x87E4, 0xB24F, 0x87E5, 0xB250, 0x87E6, 0xB251, 0x87E7, 0xB252, 0x87E8, 0xB253, + 0x87E9, 0xB254, 0x87EA, 0xB255, 0x87EB, 0xB256, 0x87EC, 0xB257, 0x87ED, 0xB259, 0x87EE, 0xB25A, 0x87EF, 0xB25B, 0x87F0, 0xB25D, + 0x87F1, 0xB25E, 0x87F2, 0xB25F, 0x87F3, 0xB261, 0x87F4, 0xB262, 0x87F5, 0xB263, 0x87F6, 0xB264, 0x87F7, 0xB265, 0x87F8, 0xB266, + 0x87F9, 0xB267, 0x87FA, 0xB26A, 0x87FB, 0xB26B, 0x87FC, 0xB26C, 0x87FD, 0xB26D, 0x87FE, 0xB26E, 0x8841, 0xB26F, 0x8842, 0xB270, + 0x8843, 0xB271, 0x8844, 0xB272, 0x8845, 0xB273, 0x8846, 0xB276, 0x8847, 0xB277, 0x8848, 0xB278, 0x8849, 0xB279, 0x884A, 0xB27A, + 0x884B, 0xB27B, 0x884C, 0xB27D, 0x884D, 0xB27E, 0x884E, 0xB27F, 0x884F, 0xB280, 0x8850, 0xB281, 0x8851, 0xB282, 0x8852, 0xB283, + 0x8853, 0xB286, 0x8854, 0xB287, 0x8855, 0xB288, 0x8856, 0xB28A, 0x8857, 0xB28B, 0x8858, 0xB28C, 0x8859, 0xB28D, 0x885A, 0xB28E, + 0x8861, 0xB28F, 0x8862, 0xB292, 0x8863, 0xB293, 0x8864, 0xB295, 0x8865, 0xB296, 0x8866, 0xB297, 0x8867, 0xB29B, 0x8868, 0xB29C, + 0x8869, 0xB29D, 0x886A, 0xB29E, 0x886B, 0xB29F, 0x886C, 0xB2A2, 0x886D, 0xB2A4, 0x886E, 0xB2A7, 0x886F, 0xB2A8, 0x8870, 0xB2A9, + 0x8871, 0xB2AB, 0x8872, 0xB2AD, 0x8873, 0xB2AE, 0x8874, 0xB2AF, 0x8875, 0xB2B1, 0x8876, 0xB2B2, 0x8877, 0xB2B3, 0x8878, 0xB2B5, + 0x8879, 0xB2B6, 0x887A, 0xB2B7, 0x8881, 0xB2B8, 0x8882, 0xB2B9, 0x8883, 0xB2BA, 0x8884, 0xB2BB, 0x8885, 0xB2BC, 0x8886, 0xB2BD, + 0x8887, 0xB2BE, 0x8888, 0xB2BF, 0x8889, 0xB2C0, 0x888A, 0xB2C1, 0x888B, 0xB2C2, 0x888C, 0xB2C3, 0x888D, 0xB2C4, 0x888E, 0xB2C5, + 0x888F, 0xB2C6, 0x8890, 0xB2C7, 0x8891, 0xB2CA, 0x8892, 0xB2CB, 0x8893, 0xB2CD, 0x8894, 0xB2CE, 0x8895, 0xB2CF, 0x8896, 0xB2D1, + 0x8897, 0xB2D3, 0x8898, 0xB2D4, 0x8899, 0xB2D5, 0x889A, 0xB2D6, 0x889B, 0xB2D7, 0x889C, 0xB2DA, 0x889D, 0xB2DC, 0x889E, 0xB2DE, + 0x889F, 0xB2DF, 0x88A0, 0xB2E0, 0x88A1, 0xB2E1, 0x88A2, 0xB2E3, 0x88A3, 0xB2E7, 0x88A4, 0xB2E9, 0x88A5, 0xB2EA, 0x88A6, 0xB2F0, + 0x88A7, 0xB2F1, 0x88A8, 0xB2F2, 0x88A9, 0xB2F6, 0x88AA, 0xB2FC, 0x88AB, 0xB2FD, 0x88AC, 0xB2FE, 0x88AD, 0xB302, 0x88AE, 0xB303, + 0x88AF, 0xB305, 0x88B0, 0xB306, 0x88B1, 0xB307, 0x88B2, 0xB309, 0x88B3, 0xB30A, 0x88B4, 0xB30B, 0x88B5, 0xB30C, 0x88B6, 0xB30D, + 0x88B7, 0xB30E, 0x88B8, 0xB30F, 0x88B9, 0xB312, 0x88BA, 0xB316, 0x88BB, 0xB317, 0x88BC, 0xB318, 0x88BD, 0xB319, 0x88BE, 0xB31A, + 0x88BF, 0xB31B, 0x88C0, 0xB31D, 0x88C1, 0xB31E, 0x88C2, 0xB31F, 0x88C3, 0xB320, 0x88C4, 0xB321, 0x88C5, 0xB322, 0x88C6, 0xB323, + 0x88C7, 0xB324, 0x88C8, 0xB325, 0x88C9, 0xB326, 0x88CA, 0xB327, 0x88CB, 0xB328, 0x88CC, 0xB329, 0x88CD, 0xB32A, 0x88CE, 0xB32B, + 0x88CF, 0xB32C, 0x88D0, 0xB32D, 0x88D1, 0xB32E, 0x88D2, 0xB32F, 0x88D3, 0xB330, 0x88D4, 0xB331, 0x88D5, 0xB332, 0x88D6, 0xB333, + 0x88D7, 0xB334, 0x88D8, 0xB335, 0x88D9, 0xB336, 0x88DA, 0xB337, 0x88DB, 0xB338, 0x88DC, 0xB339, 0x88DD, 0xB33A, 0x88DE, 0xB33B, + 0x88DF, 0xB33C, 0x88E0, 0xB33D, 0x88E1, 0xB33E, 0x88E2, 0xB33F, 0x88E3, 0xB340, 0x88E4, 0xB341, 0x88E5, 0xB342, 0x88E6, 0xB343, + 0x88E7, 0xB344, 0x88E8, 0xB345, 0x88E9, 0xB346, 0x88EA, 0xB347, 0x88EB, 0xB348, 0x88EC, 0xB349, 0x88ED, 0xB34A, 0x88EE, 0xB34B, + 0x88EF, 0xB34C, 0x88F0, 0xB34D, 0x88F1, 0xB34E, 0x88F2, 0xB34F, 0x88F3, 0xB350, 0x88F4, 0xB351, 0x88F5, 0xB352, 0x88F6, 0xB353, + 0x88F7, 0xB357, 0x88F8, 0xB359, 0x88F9, 0xB35A, 0x88FA, 0xB35D, 0x88FB, 0xB360, 0x88FC, 0xB361, 0x88FD, 0xB362, 0x88FE, 0xB363, + 0x8941, 0xB366, 0x8942, 0xB368, 0x8943, 0xB36A, 0x8944, 0xB36C, 0x8945, 0xB36D, 0x8946, 0xB36F, 0x8947, 0xB372, 0x8948, 0xB373, + 0x8949, 0xB375, 0x894A, 0xB376, 0x894B, 0xB377, 0x894C, 0xB379, 0x894D, 0xB37A, 0x894E, 0xB37B, 0x894F, 0xB37C, 0x8950, 0xB37D, + 0x8951, 0xB37E, 0x8952, 0xB37F, 0x8953, 0xB382, 0x8954, 0xB386, 0x8955, 0xB387, 0x8956, 0xB388, 0x8957, 0xB389, 0x8958, 0xB38A, + 0x8959, 0xB38B, 0x895A, 0xB38D, 0x8961, 0xB38E, 0x8962, 0xB38F, 0x8963, 0xB391, 0x8964, 0xB392, 0x8965, 0xB393, 0x8966, 0xB395, + 0x8967, 0xB396, 0x8968, 0xB397, 0x8969, 0xB398, 0x896A, 0xB399, 0x896B, 0xB39A, 0x896C, 0xB39B, 0x896D, 0xB39C, 0x896E, 0xB39D, + 0x896F, 0xB39E, 0x8970, 0xB39F, 0x8971, 0xB3A2, 0x8972, 0xB3A3, 0x8973, 0xB3A4, 0x8974, 0xB3A5, 0x8975, 0xB3A6, 0x8976, 0xB3A7, + 0x8977, 0xB3A9, 0x8978, 0xB3AA, 0x8979, 0xB3AB, 0x897A, 0xB3AD, 0x8981, 0xB3AE, 0x8982, 0xB3AF, 0x8983, 0xB3B0, 0x8984, 0xB3B1, + 0x8985, 0xB3B2, 0x8986, 0xB3B3, 0x8987, 0xB3B4, 0x8988, 0xB3B5, 0x8989, 0xB3B6, 0x898A, 0xB3B7, 0x898B, 0xB3B8, 0x898C, 0xB3B9, + 0x898D, 0xB3BA, 0x898E, 0xB3BB, 0x898F, 0xB3BC, 0x8990, 0xB3BD, 0x8991, 0xB3BE, 0x8992, 0xB3BF, 0x8993, 0xB3C0, 0x8994, 0xB3C1, + 0x8995, 0xB3C2, 0x8996, 0xB3C3, 0x8997, 0xB3C6, 0x8998, 0xB3C7, 0x8999, 0xB3C9, 0x899A, 0xB3CA, 0x899B, 0xB3CD, 0x899C, 0xB3CF, + 0x899D, 0xB3D1, 0x899E, 0xB3D2, 0x899F, 0xB3D3, 0x89A0, 0xB3D6, 0x89A1, 0xB3D8, 0x89A2, 0xB3DA, 0x89A3, 0xB3DC, 0x89A4, 0xB3DE, + 0x89A5, 0xB3DF, 0x89A6, 0xB3E1, 0x89A7, 0xB3E2, 0x89A8, 0xB3E3, 0x89A9, 0xB3E5, 0x89AA, 0xB3E6, 0x89AB, 0xB3E7, 0x89AC, 0xB3E9, + 0x89AD, 0xB3EA, 0x89AE, 0xB3EB, 0x89AF, 0xB3EC, 0x89B0, 0xB3ED, 0x89B1, 0xB3EE, 0x89B2, 0xB3EF, 0x89B3, 0xB3F0, 0x89B4, 0xB3F1, + 0x89B5, 0xB3F2, 0x89B6, 0xB3F3, 0x89B7, 0xB3F4, 0x89B8, 0xB3F5, 0x89B9, 0xB3F6, 0x89BA, 0xB3F7, 0x89BB, 0xB3F8, 0x89BC, 0xB3F9, + 0x89BD, 0xB3FA, 0x89BE, 0xB3FB, 0x89BF, 0xB3FD, 0x89C0, 0xB3FE, 0x89C1, 0xB3FF, 0x89C2, 0xB400, 0x89C3, 0xB401, 0x89C4, 0xB402, + 0x89C5, 0xB403, 0x89C6, 0xB404, 0x89C7, 0xB405, 0x89C8, 0xB406, 0x89C9, 0xB407, 0x89CA, 0xB408, 0x89CB, 0xB409, 0x89CC, 0xB40A, + 0x89CD, 0xB40B, 0x89CE, 0xB40C, 0x89CF, 0xB40D, 0x89D0, 0xB40E, 0x89D1, 0xB40F, 0x89D2, 0xB411, 0x89D3, 0xB412, 0x89D4, 0xB413, + 0x89D5, 0xB414, 0x89D6, 0xB415, 0x89D7, 0xB416, 0x89D8, 0xB417, 0x89D9, 0xB419, 0x89DA, 0xB41A, 0x89DB, 0xB41B, 0x89DC, 0xB41D, + 0x89DD, 0xB41E, 0x89DE, 0xB41F, 0x89DF, 0xB421, 0x89E0, 0xB422, 0x89E1, 0xB423, 0x89E2, 0xB424, 0x89E3, 0xB425, 0x89E4, 0xB426, + 0x89E5, 0xB427, 0x89E6, 0xB42A, 0x89E7, 0xB42C, 0x89E8, 0xB42D, 0x89E9, 0xB42E, 0x89EA, 0xB42F, 0x89EB, 0xB430, 0x89EC, 0xB431, + 0x89ED, 0xB432, 0x89EE, 0xB433, 0x89EF, 0xB435, 0x89F0, 0xB436, 0x89F1, 0xB437, 0x89F2, 0xB438, 0x89F3, 0xB439, 0x89F4, 0xB43A, + 0x89F5, 0xB43B, 0x89F6, 0xB43C, 0x89F7, 0xB43D, 0x89F8, 0xB43E, 0x89F9, 0xB43F, 0x89FA, 0xB440, 0x89FB, 0xB441, 0x89FC, 0xB442, + 0x89FD, 0xB443, 0x89FE, 0xB444, 0x8A41, 0xB445, 0x8A42, 0xB446, 0x8A43, 0xB447, 0x8A44, 0xB448, 0x8A45, 0xB449, 0x8A46, 0xB44A, + 0x8A47, 0xB44B, 0x8A48, 0xB44C, 0x8A49, 0xB44D, 0x8A4A, 0xB44E, 0x8A4B, 0xB44F, 0x8A4C, 0xB452, 0x8A4D, 0xB453, 0x8A4E, 0xB455, + 0x8A4F, 0xB456, 0x8A50, 0xB457, 0x8A51, 0xB459, 0x8A52, 0xB45A, 0x8A53, 0xB45B, 0x8A54, 0xB45C, 0x8A55, 0xB45D, 0x8A56, 0xB45E, + 0x8A57, 0xB45F, 0x8A58, 0xB462, 0x8A59, 0xB464, 0x8A5A, 0xB466, 0x8A61, 0xB467, 0x8A62, 0xB468, 0x8A63, 0xB469, 0x8A64, 0xB46A, + 0x8A65, 0xB46B, 0x8A66, 0xB46D, 0x8A67, 0xB46E, 0x8A68, 0xB46F, 0x8A69, 0xB470, 0x8A6A, 0xB471, 0x8A6B, 0xB472, 0x8A6C, 0xB473, + 0x8A6D, 0xB474, 0x8A6E, 0xB475, 0x8A6F, 0xB476, 0x8A70, 0xB477, 0x8A71, 0xB478, 0x8A72, 0xB479, 0x8A73, 0xB47A, 0x8A74, 0xB47B, + 0x8A75, 0xB47C, 0x8A76, 0xB47D, 0x8A77, 0xB47E, 0x8A78, 0xB47F, 0x8A79, 0xB481, 0x8A7A, 0xB482, 0x8A81, 0xB483, 0x8A82, 0xB484, + 0x8A83, 0xB485, 0x8A84, 0xB486, 0x8A85, 0xB487, 0x8A86, 0xB489, 0x8A87, 0xB48A, 0x8A88, 0xB48B, 0x8A89, 0xB48C, 0x8A8A, 0xB48D, + 0x8A8B, 0xB48E, 0x8A8C, 0xB48F, 0x8A8D, 0xB490, 0x8A8E, 0xB491, 0x8A8F, 0xB492, 0x8A90, 0xB493, 0x8A91, 0xB494, 0x8A92, 0xB495, + 0x8A93, 0xB496, 0x8A94, 0xB497, 0x8A95, 0xB498, 0x8A96, 0xB499, 0x8A97, 0xB49A, 0x8A98, 0xB49B, 0x8A99, 0xB49C, 0x8A9A, 0xB49E, + 0x8A9B, 0xB49F, 0x8A9C, 0xB4A0, 0x8A9D, 0xB4A1, 0x8A9E, 0xB4A2, 0x8A9F, 0xB4A3, 0x8AA0, 0xB4A5, 0x8AA1, 0xB4A6, 0x8AA2, 0xB4A7, + 0x8AA3, 0xB4A9, 0x8AA4, 0xB4AA, 0x8AA5, 0xB4AB, 0x8AA6, 0xB4AD, 0x8AA7, 0xB4AE, 0x8AA8, 0xB4AF, 0x8AA9, 0xB4B0, 0x8AAA, 0xB4B1, + 0x8AAB, 0xB4B2, 0x8AAC, 0xB4B3, 0x8AAD, 0xB4B4, 0x8AAE, 0xB4B6, 0x8AAF, 0xB4B8, 0x8AB0, 0xB4BA, 0x8AB1, 0xB4BB, 0x8AB2, 0xB4BC, + 0x8AB3, 0xB4BD, 0x8AB4, 0xB4BE, 0x8AB5, 0xB4BF, 0x8AB6, 0xB4C1, 0x8AB7, 0xB4C2, 0x8AB8, 0xB4C3, 0x8AB9, 0xB4C5, 0x8ABA, 0xB4C6, + 0x8ABB, 0xB4C7, 0x8ABC, 0xB4C9, 0x8ABD, 0xB4CA, 0x8ABE, 0xB4CB, 0x8ABF, 0xB4CC, 0x8AC0, 0xB4CD, 0x8AC1, 0xB4CE, 0x8AC2, 0xB4CF, + 0x8AC3, 0xB4D1, 0x8AC4, 0xB4D2, 0x8AC5, 0xB4D3, 0x8AC6, 0xB4D4, 0x8AC7, 0xB4D6, 0x8AC8, 0xB4D7, 0x8AC9, 0xB4D8, 0x8ACA, 0xB4D9, + 0x8ACB, 0xB4DA, 0x8ACC, 0xB4DB, 0x8ACD, 0xB4DE, 0x8ACE, 0xB4DF, 0x8ACF, 0xB4E1, 0x8AD0, 0xB4E2, 0x8AD1, 0xB4E5, 0x8AD2, 0xB4E7, + 0x8AD3, 0xB4E8, 0x8AD4, 0xB4E9, 0x8AD5, 0xB4EA, 0x8AD6, 0xB4EB, 0x8AD7, 0xB4EE, 0x8AD8, 0xB4F0, 0x8AD9, 0xB4F2, 0x8ADA, 0xB4F3, + 0x8ADB, 0xB4F4, 0x8ADC, 0xB4F5, 0x8ADD, 0xB4F6, 0x8ADE, 0xB4F7, 0x8ADF, 0xB4F9, 0x8AE0, 0xB4FA, 0x8AE1, 0xB4FB, 0x8AE2, 0xB4FC, + 0x8AE3, 0xB4FD, 0x8AE4, 0xB4FE, 0x8AE5, 0xB4FF, 0x8AE6, 0xB500, 0x8AE7, 0xB501, 0x8AE8, 0xB502, 0x8AE9, 0xB503, 0x8AEA, 0xB504, + 0x8AEB, 0xB505, 0x8AEC, 0xB506, 0x8AED, 0xB507, 0x8AEE, 0xB508, 0x8AEF, 0xB509, 0x8AF0, 0xB50A, 0x8AF1, 0xB50B, 0x8AF2, 0xB50C, + 0x8AF3, 0xB50D, 0x8AF4, 0xB50E, 0x8AF5, 0xB50F, 0x8AF6, 0xB510, 0x8AF7, 0xB511, 0x8AF8, 0xB512, 0x8AF9, 0xB513, 0x8AFA, 0xB516, + 0x8AFB, 0xB517, 0x8AFC, 0xB519, 0x8AFD, 0xB51A, 0x8AFE, 0xB51D, 0x8B41, 0xB51E, 0x8B42, 0xB51F, 0x8B43, 0xB520, 0x8B44, 0xB521, + 0x8B45, 0xB522, 0x8B46, 0xB523, 0x8B47, 0xB526, 0x8B48, 0xB52B, 0x8B49, 0xB52C, 0x8B4A, 0xB52D, 0x8B4B, 0xB52E, 0x8B4C, 0xB52F, + 0x8B4D, 0xB532, 0x8B4E, 0xB533, 0x8B4F, 0xB535, 0x8B50, 0xB536, 0x8B51, 0xB537, 0x8B52, 0xB539, 0x8B53, 0xB53A, 0x8B54, 0xB53B, + 0x8B55, 0xB53C, 0x8B56, 0xB53D, 0x8B57, 0xB53E, 0x8B58, 0xB53F, 0x8B59, 0xB542, 0x8B5A, 0xB546, 0x8B61, 0xB547, 0x8B62, 0xB548, + 0x8B63, 0xB549, 0x8B64, 0xB54A, 0x8B65, 0xB54E, 0x8B66, 0xB54F, 0x8B67, 0xB551, 0x8B68, 0xB552, 0x8B69, 0xB553, 0x8B6A, 0xB555, + 0x8B6B, 0xB556, 0x8B6C, 0xB557, 0x8B6D, 0xB558, 0x8B6E, 0xB559, 0x8B6F, 0xB55A, 0x8B70, 0xB55B, 0x8B71, 0xB55E, 0x8B72, 0xB562, + 0x8B73, 0xB563, 0x8B74, 0xB564, 0x8B75, 0xB565, 0x8B76, 0xB566, 0x8B77, 0xB567, 0x8B78, 0xB568, 0x8B79, 0xB569, 0x8B7A, 0xB56A, + 0x8B81, 0xB56B, 0x8B82, 0xB56C, 0x8B83, 0xB56D, 0x8B84, 0xB56E, 0x8B85, 0xB56F, 0x8B86, 0xB570, 0x8B87, 0xB571, 0x8B88, 0xB572, + 0x8B89, 0xB573, 0x8B8A, 0xB574, 0x8B8B, 0xB575, 0x8B8C, 0xB576, 0x8B8D, 0xB577, 0x8B8E, 0xB578, 0x8B8F, 0xB579, 0x8B90, 0xB57A, + 0x8B91, 0xB57B, 0x8B92, 0xB57C, 0x8B93, 0xB57D, 0x8B94, 0xB57E, 0x8B95, 0xB57F, 0x8B96, 0xB580, 0x8B97, 0xB581, 0x8B98, 0xB582, + 0x8B99, 0xB583, 0x8B9A, 0xB584, 0x8B9B, 0xB585, 0x8B9C, 0xB586, 0x8B9D, 0xB587, 0x8B9E, 0xB588, 0x8B9F, 0xB589, 0x8BA0, 0xB58A, + 0x8BA1, 0xB58B, 0x8BA2, 0xB58C, 0x8BA3, 0xB58D, 0x8BA4, 0xB58E, 0x8BA5, 0xB58F, 0x8BA6, 0xB590, 0x8BA7, 0xB591, 0x8BA8, 0xB592, + 0x8BA9, 0xB593, 0x8BAA, 0xB594, 0x8BAB, 0xB595, 0x8BAC, 0xB596, 0x8BAD, 0xB597, 0x8BAE, 0xB598, 0x8BAF, 0xB599, 0x8BB0, 0xB59A, + 0x8BB1, 0xB59B, 0x8BB2, 0xB59C, 0x8BB3, 0xB59D, 0x8BB4, 0xB59E, 0x8BB5, 0xB59F, 0x8BB6, 0xB5A2, 0x8BB7, 0xB5A3, 0x8BB8, 0xB5A5, + 0x8BB9, 0xB5A6, 0x8BBA, 0xB5A7, 0x8BBB, 0xB5A9, 0x8BBC, 0xB5AC, 0x8BBD, 0xB5AD, 0x8BBE, 0xB5AE, 0x8BBF, 0xB5AF, 0x8BC0, 0xB5B2, + 0x8BC1, 0xB5B6, 0x8BC2, 0xB5B7, 0x8BC3, 0xB5B8, 0x8BC4, 0xB5B9, 0x8BC5, 0xB5BA, 0x8BC6, 0xB5BE, 0x8BC7, 0xB5BF, 0x8BC8, 0xB5C1, + 0x8BC9, 0xB5C2, 0x8BCA, 0xB5C3, 0x8BCB, 0xB5C5, 0x8BCC, 0xB5C6, 0x8BCD, 0xB5C7, 0x8BCE, 0xB5C8, 0x8BCF, 0xB5C9, 0x8BD0, 0xB5CA, + 0x8BD1, 0xB5CB, 0x8BD2, 0xB5CE, 0x8BD3, 0xB5D2, 0x8BD4, 0xB5D3, 0x8BD5, 0xB5D4, 0x8BD6, 0xB5D5, 0x8BD7, 0xB5D6, 0x8BD8, 0xB5D7, + 0x8BD9, 0xB5D9, 0x8BDA, 0xB5DA, 0x8BDB, 0xB5DB, 0x8BDC, 0xB5DC, 0x8BDD, 0xB5DD, 0x8BDE, 0xB5DE, 0x8BDF, 0xB5DF, 0x8BE0, 0xB5E0, + 0x8BE1, 0xB5E1, 0x8BE2, 0xB5E2, 0x8BE3, 0xB5E3, 0x8BE4, 0xB5E4, 0x8BE5, 0xB5E5, 0x8BE6, 0xB5E6, 0x8BE7, 0xB5E7, 0x8BE8, 0xB5E8, + 0x8BE9, 0xB5E9, 0x8BEA, 0xB5EA, 0x8BEB, 0xB5EB, 0x8BEC, 0xB5ED, 0x8BED, 0xB5EE, 0x8BEE, 0xB5EF, 0x8BEF, 0xB5F0, 0x8BF0, 0xB5F1, + 0x8BF1, 0xB5F2, 0x8BF2, 0xB5F3, 0x8BF3, 0xB5F4, 0x8BF4, 0xB5F5, 0x8BF5, 0xB5F6, 0x8BF6, 0xB5F7, 0x8BF7, 0xB5F8, 0x8BF8, 0xB5F9, + 0x8BF9, 0xB5FA, 0x8BFA, 0xB5FB, 0x8BFB, 0xB5FC, 0x8BFC, 0xB5FD, 0x8BFD, 0xB5FE, 0x8BFE, 0xB5FF, 0x8C41, 0xB600, 0x8C42, 0xB601, + 0x8C43, 0xB602, 0x8C44, 0xB603, 0x8C45, 0xB604, 0x8C46, 0xB605, 0x8C47, 0xB606, 0x8C48, 0xB607, 0x8C49, 0xB608, 0x8C4A, 0xB609, + 0x8C4B, 0xB60A, 0x8C4C, 0xB60B, 0x8C4D, 0xB60C, 0x8C4E, 0xB60D, 0x8C4F, 0xB60E, 0x8C50, 0xB60F, 0x8C51, 0xB612, 0x8C52, 0xB613, + 0x8C53, 0xB615, 0x8C54, 0xB616, 0x8C55, 0xB617, 0x8C56, 0xB619, 0x8C57, 0xB61A, 0x8C58, 0xB61B, 0x8C59, 0xB61C, 0x8C5A, 0xB61D, + 0x8C61, 0xB61E, 0x8C62, 0xB61F, 0x8C63, 0xB620, 0x8C64, 0xB621, 0x8C65, 0xB622, 0x8C66, 0xB623, 0x8C67, 0xB624, 0x8C68, 0xB626, + 0x8C69, 0xB627, 0x8C6A, 0xB628, 0x8C6B, 0xB629, 0x8C6C, 0xB62A, 0x8C6D, 0xB62B, 0x8C6E, 0xB62D, 0x8C6F, 0xB62E, 0x8C70, 0xB62F, + 0x8C71, 0xB630, 0x8C72, 0xB631, 0x8C73, 0xB632, 0x8C74, 0xB633, 0x8C75, 0xB635, 0x8C76, 0xB636, 0x8C77, 0xB637, 0x8C78, 0xB638, + 0x8C79, 0xB639, 0x8C7A, 0xB63A, 0x8C81, 0xB63B, 0x8C82, 0xB63C, 0x8C83, 0xB63D, 0x8C84, 0xB63E, 0x8C85, 0xB63F, 0x8C86, 0xB640, + 0x8C87, 0xB641, 0x8C88, 0xB642, 0x8C89, 0xB643, 0x8C8A, 0xB644, 0x8C8B, 0xB645, 0x8C8C, 0xB646, 0x8C8D, 0xB647, 0x8C8E, 0xB649, + 0x8C8F, 0xB64A, 0x8C90, 0xB64B, 0x8C91, 0xB64C, 0x8C92, 0xB64D, 0x8C93, 0xB64E, 0x8C94, 0xB64F, 0x8C95, 0xB650, 0x8C96, 0xB651, + 0x8C97, 0xB652, 0x8C98, 0xB653, 0x8C99, 0xB654, 0x8C9A, 0xB655, 0x8C9B, 0xB656, 0x8C9C, 0xB657, 0x8C9D, 0xB658, 0x8C9E, 0xB659, + 0x8C9F, 0xB65A, 0x8CA0, 0xB65B, 0x8CA1, 0xB65C, 0x8CA2, 0xB65D, 0x8CA3, 0xB65E, 0x8CA4, 0xB65F, 0x8CA5, 0xB660, 0x8CA6, 0xB661, + 0x8CA7, 0xB662, 0x8CA8, 0xB663, 0x8CA9, 0xB665, 0x8CAA, 0xB666, 0x8CAB, 0xB667, 0x8CAC, 0xB669, 0x8CAD, 0xB66A, 0x8CAE, 0xB66B, + 0x8CAF, 0xB66C, 0x8CB0, 0xB66D, 0x8CB1, 0xB66E, 0x8CB2, 0xB66F, 0x8CB3, 0xB670, 0x8CB4, 0xB671, 0x8CB5, 0xB672, 0x8CB6, 0xB673, + 0x8CB7, 0xB674, 0x8CB8, 0xB675, 0x8CB9, 0xB676, 0x8CBA, 0xB677, 0x8CBB, 0xB678, 0x8CBC, 0xB679, 0x8CBD, 0xB67A, 0x8CBE, 0xB67B, + 0x8CBF, 0xB67C, 0x8CC0, 0xB67D, 0x8CC1, 0xB67E, 0x8CC2, 0xB67F, 0x8CC3, 0xB680, 0x8CC4, 0xB681, 0x8CC5, 0xB682, 0x8CC6, 0xB683, + 0x8CC7, 0xB684, 0x8CC8, 0xB685, 0x8CC9, 0xB686, 0x8CCA, 0xB687, 0x8CCB, 0xB688, 0x8CCC, 0xB689, 0x8CCD, 0xB68A, 0x8CCE, 0xB68B, + 0x8CCF, 0xB68C, 0x8CD0, 0xB68D, 0x8CD1, 0xB68E, 0x8CD2, 0xB68F, 0x8CD3, 0xB690, 0x8CD4, 0xB691, 0x8CD5, 0xB692, 0x8CD6, 0xB693, + 0x8CD7, 0xB694, 0x8CD8, 0xB695, 0x8CD9, 0xB696, 0x8CDA, 0xB697, 0x8CDB, 0xB698, 0x8CDC, 0xB699, 0x8CDD, 0xB69A, 0x8CDE, 0xB69B, + 0x8CDF, 0xB69E, 0x8CE0, 0xB69F, 0x8CE1, 0xB6A1, 0x8CE2, 0xB6A2, 0x8CE3, 0xB6A3, 0x8CE4, 0xB6A5, 0x8CE5, 0xB6A6, 0x8CE6, 0xB6A7, + 0x8CE7, 0xB6A8, 0x8CE8, 0xB6A9, 0x8CE9, 0xB6AA, 0x8CEA, 0xB6AD, 0x8CEB, 0xB6AE, 0x8CEC, 0xB6AF, 0x8CED, 0xB6B0, 0x8CEE, 0xB6B2, + 0x8CEF, 0xB6B3, 0x8CF0, 0xB6B4, 0x8CF1, 0xB6B5, 0x8CF2, 0xB6B6, 0x8CF3, 0xB6B7, 0x8CF4, 0xB6B8, 0x8CF5, 0xB6B9, 0x8CF6, 0xB6BA, + 0x8CF7, 0xB6BB, 0x8CF8, 0xB6BC, 0x8CF9, 0xB6BD, 0x8CFA, 0xB6BE, 0x8CFB, 0xB6BF, 0x8CFC, 0xB6C0, 0x8CFD, 0xB6C1, 0x8CFE, 0xB6C2, + 0x8D41, 0xB6C3, 0x8D42, 0xB6C4, 0x8D43, 0xB6C5, 0x8D44, 0xB6C6, 0x8D45, 0xB6C7, 0x8D46, 0xB6C8, 0x8D47, 0xB6C9, 0x8D48, 0xB6CA, + 0x8D49, 0xB6CB, 0x8D4A, 0xB6CC, 0x8D4B, 0xB6CD, 0x8D4C, 0xB6CE, 0x8D4D, 0xB6CF, 0x8D4E, 0xB6D0, 0x8D4F, 0xB6D1, 0x8D50, 0xB6D2, + 0x8D51, 0xB6D3, 0x8D52, 0xB6D5, 0x8D53, 0xB6D6, 0x8D54, 0xB6D7, 0x8D55, 0xB6D8, 0x8D56, 0xB6D9, 0x8D57, 0xB6DA, 0x8D58, 0xB6DB, + 0x8D59, 0xB6DC, 0x8D5A, 0xB6DD, 0x8D61, 0xB6DE, 0x8D62, 0xB6DF, 0x8D63, 0xB6E0, 0x8D64, 0xB6E1, 0x8D65, 0xB6E2, 0x8D66, 0xB6E3, + 0x8D67, 0xB6E4, 0x8D68, 0xB6E5, 0x8D69, 0xB6E6, 0x8D6A, 0xB6E7, 0x8D6B, 0xB6E8, 0x8D6C, 0xB6E9, 0x8D6D, 0xB6EA, 0x8D6E, 0xB6EB, + 0x8D6F, 0xB6EC, 0x8D70, 0xB6ED, 0x8D71, 0xB6EE, 0x8D72, 0xB6EF, 0x8D73, 0xB6F1, 0x8D74, 0xB6F2, 0x8D75, 0xB6F3, 0x8D76, 0xB6F5, + 0x8D77, 0xB6F6, 0x8D78, 0xB6F7, 0x8D79, 0xB6F9, 0x8D7A, 0xB6FA, 0x8D81, 0xB6FB, 0x8D82, 0xB6FC, 0x8D83, 0xB6FD, 0x8D84, 0xB6FE, + 0x8D85, 0xB6FF, 0x8D86, 0xB702, 0x8D87, 0xB703, 0x8D88, 0xB704, 0x8D89, 0xB706, 0x8D8A, 0xB707, 0x8D8B, 0xB708, 0x8D8C, 0xB709, + 0x8D8D, 0xB70A, 0x8D8E, 0xB70B, 0x8D8F, 0xB70C, 0x8D90, 0xB70D, 0x8D91, 0xB70E, 0x8D92, 0xB70F, 0x8D93, 0xB710, 0x8D94, 0xB711, + 0x8D95, 0xB712, 0x8D96, 0xB713, 0x8D97, 0xB714, 0x8D98, 0xB715, 0x8D99, 0xB716, 0x8D9A, 0xB717, 0x8D9B, 0xB718, 0x8D9C, 0xB719, + 0x8D9D, 0xB71A, 0x8D9E, 0xB71B, 0x8D9F, 0xB71C, 0x8DA0, 0xB71D, 0x8DA1, 0xB71E, 0x8DA2, 0xB71F, 0x8DA3, 0xB720, 0x8DA4, 0xB721, + 0x8DA5, 0xB722, 0x8DA6, 0xB723, 0x8DA7, 0xB724, 0x8DA8, 0xB725, 0x8DA9, 0xB726, 0x8DAA, 0xB727, 0x8DAB, 0xB72A, 0x8DAC, 0xB72B, + 0x8DAD, 0xB72D, 0x8DAE, 0xB72E, 0x8DAF, 0xB731, 0x8DB0, 0xB732, 0x8DB1, 0xB733, 0x8DB2, 0xB734, 0x8DB3, 0xB735, 0x8DB4, 0xB736, + 0x8DB5, 0xB737, 0x8DB6, 0xB73A, 0x8DB7, 0xB73C, 0x8DB8, 0xB73D, 0x8DB9, 0xB73E, 0x8DBA, 0xB73F, 0x8DBB, 0xB740, 0x8DBC, 0xB741, + 0x8DBD, 0xB742, 0x8DBE, 0xB743, 0x8DBF, 0xB745, 0x8DC0, 0xB746, 0x8DC1, 0xB747, 0x8DC2, 0xB749, 0x8DC3, 0xB74A, 0x8DC4, 0xB74B, + 0x8DC5, 0xB74D, 0x8DC6, 0xB74E, 0x8DC7, 0xB74F, 0x8DC8, 0xB750, 0x8DC9, 0xB751, 0x8DCA, 0xB752, 0x8DCB, 0xB753, 0x8DCC, 0xB756, + 0x8DCD, 0xB757, 0x8DCE, 0xB758, 0x8DCF, 0xB759, 0x8DD0, 0xB75A, 0x8DD1, 0xB75B, 0x8DD2, 0xB75C, 0x8DD3, 0xB75D, 0x8DD4, 0xB75E, + 0x8DD5, 0xB75F, 0x8DD6, 0xB761, 0x8DD7, 0xB762, 0x8DD8, 0xB763, 0x8DD9, 0xB765, 0x8DDA, 0xB766, 0x8DDB, 0xB767, 0x8DDC, 0xB769, + 0x8DDD, 0xB76A, 0x8DDE, 0xB76B, 0x8DDF, 0xB76C, 0x8DE0, 0xB76D, 0x8DE1, 0xB76E, 0x8DE2, 0xB76F, 0x8DE3, 0xB772, 0x8DE4, 0xB774, + 0x8DE5, 0xB776, 0x8DE6, 0xB777, 0x8DE7, 0xB778, 0x8DE8, 0xB779, 0x8DE9, 0xB77A, 0x8DEA, 0xB77B, 0x8DEB, 0xB77E, 0x8DEC, 0xB77F, + 0x8DED, 0xB781, 0x8DEE, 0xB782, 0x8DEF, 0xB783, 0x8DF0, 0xB785, 0x8DF1, 0xB786, 0x8DF2, 0xB787, 0x8DF3, 0xB788, 0x8DF4, 0xB789, + 0x8DF5, 0xB78A, 0x8DF6, 0xB78B, 0x8DF7, 0xB78E, 0x8DF8, 0xB793, 0x8DF9, 0xB794, 0x8DFA, 0xB795, 0x8DFB, 0xB79A, 0x8DFC, 0xB79B, + 0x8DFD, 0xB79D, 0x8DFE, 0xB79E, 0x8E41, 0xB79F, 0x8E42, 0xB7A1, 0x8E43, 0xB7A2, 0x8E44, 0xB7A3, 0x8E45, 0xB7A4, 0x8E46, 0xB7A5, + 0x8E47, 0xB7A6, 0x8E48, 0xB7A7, 0x8E49, 0xB7AA, 0x8E4A, 0xB7AE, 0x8E4B, 0xB7AF, 0x8E4C, 0xB7B0, 0x8E4D, 0xB7B1, 0x8E4E, 0xB7B2, + 0x8E4F, 0xB7B3, 0x8E50, 0xB7B6, 0x8E51, 0xB7B7, 0x8E52, 0xB7B9, 0x8E53, 0xB7BA, 0x8E54, 0xB7BB, 0x8E55, 0xB7BC, 0x8E56, 0xB7BD, + 0x8E57, 0xB7BE, 0x8E58, 0xB7BF, 0x8E59, 0xB7C0, 0x8E5A, 0xB7C1, 0x8E61, 0xB7C2, 0x8E62, 0xB7C3, 0x8E63, 0xB7C4, 0x8E64, 0xB7C5, + 0x8E65, 0xB7C6, 0x8E66, 0xB7C8, 0x8E67, 0xB7CA, 0x8E68, 0xB7CB, 0x8E69, 0xB7CC, 0x8E6A, 0xB7CD, 0x8E6B, 0xB7CE, 0x8E6C, 0xB7CF, + 0x8E6D, 0xB7D0, 0x8E6E, 0xB7D1, 0x8E6F, 0xB7D2, 0x8E70, 0xB7D3, 0x8E71, 0xB7D4, 0x8E72, 0xB7D5, 0x8E73, 0xB7D6, 0x8E74, 0xB7D7, + 0x8E75, 0xB7D8, 0x8E76, 0xB7D9, 0x8E77, 0xB7DA, 0x8E78, 0xB7DB, 0x8E79, 0xB7DC, 0x8E7A, 0xB7DD, 0x8E81, 0xB7DE, 0x8E82, 0xB7DF, + 0x8E83, 0xB7E0, 0x8E84, 0xB7E1, 0x8E85, 0xB7E2, 0x8E86, 0xB7E3, 0x8E87, 0xB7E4, 0x8E88, 0xB7E5, 0x8E89, 0xB7E6, 0x8E8A, 0xB7E7, + 0x8E8B, 0xB7E8, 0x8E8C, 0xB7E9, 0x8E8D, 0xB7EA, 0x8E8E, 0xB7EB, 0x8E8F, 0xB7EE, 0x8E90, 0xB7EF, 0x8E91, 0xB7F1, 0x8E92, 0xB7F2, + 0x8E93, 0xB7F3, 0x8E94, 0xB7F5, 0x8E95, 0xB7F6, 0x8E96, 0xB7F7, 0x8E97, 0xB7F8, 0x8E98, 0xB7F9, 0x8E99, 0xB7FA, 0x8E9A, 0xB7FB, + 0x8E9B, 0xB7FE, 0x8E9C, 0xB802, 0x8E9D, 0xB803, 0x8E9E, 0xB804, 0x8E9F, 0xB805, 0x8EA0, 0xB806, 0x8EA1, 0xB80A, 0x8EA2, 0xB80B, + 0x8EA3, 0xB80D, 0x8EA4, 0xB80E, 0x8EA5, 0xB80F, 0x8EA6, 0xB811, 0x8EA7, 0xB812, 0x8EA8, 0xB813, 0x8EA9, 0xB814, 0x8EAA, 0xB815, + 0x8EAB, 0xB816, 0x8EAC, 0xB817, 0x8EAD, 0xB81A, 0x8EAE, 0xB81C, 0x8EAF, 0xB81E, 0x8EB0, 0xB81F, 0x8EB1, 0xB820, 0x8EB2, 0xB821, + 0x8EB3, 0xB822, 0x8EB4, 0xB823, 0x8EB5, 0xB826, 0x8EB6, 0xB827, 0x8EB7, 0xB829, 0x8EB8, 0xB82A, 0x8EB9, 0xB82B, 0x8EBA, 0xB82D, + 0x8EBB, 0xB82E, 0x8EBC, 0xB82F, 0x8EBD, 0xB830, 0x8EBE, 0xB831, 0x8EBF, 0xB832, 0x8EC0, 0xB833, 0x8EC1, 0xB836, 0x8EC2, 0xB83A, + 0x8EC3, 0xB83B, 0x8EC4, 0xB83C, 0x8EC5, 0xB83D, 0x8EC6, 0xB83E, 0x8EC7, 0xB83F, 0x8EC8, 0xB841, 0x8EC9, 0xB842, 0x8ECA, 0xB843, + 0x8ECB, 0xB845, 0x8ECC, 0xB846, 0x8ECD, 0xB847, 0x8ECE, 0xB848, 0x8ECF, 0xB849, 0x8ED0, 0xB84A, 0x8ED1, 0xB84B, 0x8ED2, 0xB84C, + 0x8ED3, 0xB84D, 0x8ED4, 0xB84E, 0x8ED5, 0xB84F, 0x8ED6, 0xB850, 0x8ED7, 0xB852, 0x8ED8, 0xB854, 0x8ED9, 0xB855, 0x8EDA, 0xB856, + 0x8EDB, 0xB857, 0x8EDC, 0xB858, 0x8EDD, 0xB859, 0x8EDE, 0xB85A, 0x8EDF, 0xB85B, 0x8EE0, 0xB85E, 0x8EE1, 0xB85F, 0x8EE2, 0xB861, + 0x8EE3, 0xB862, 0x8EE4, 0xB863, 0x8EE5, 0xB865, 0x8EE6, 0xB866, 0x8EE7, 0xB867, 0x8EE8, 0xB868, 0x8EE9, 0xB869, 0x8EEA, 0xB86A, + 0x8EEB, 0xB86B, 0x8EEC, 0xB86E, 0x8EED, 0xB870, 0x8EEE, 0xB872, 0x8EEF, 0xB873, 0x8EF0, 0xB874, 0x8EF1, 0xB875, 0x8EF2, 0xB876, + 0x8EF3, 0xB877, 0x8EF4, 0xB879, 0x8EF5, 0xB87A, 0x8EF6, 0xB87B, 0x8EF7, 0xB87D, 0x8EF8, 0xB87E, 0x8EF9, 0xB87F, 0x8EFA, 0xB880, + 0x8EFB, 0xB881, 0x8EFC, 0xB882, 0x8EFD, 0xB883, 0x8EFE, 0xB884, 0x8F41, 0xB885, 0x8F42, 0xB886, 0x8F43, 0xB887, 0x8F44, 0xB888, + 0x8F45, 0xB889, 0x8F46, 0xB88A, 0x8F47, 0xB88B, 0x8F48, 0xB88C, 0x8F49, 0xB88E, 0x8F4A, 0xB88F, 0x8F4B, 0xB890, 0x8F4C, 0xB891, + 0x8F4D, 0xB892, 0x8F4E, 0xB893, 0x8F4F, 0xB894, 0x8F50, 0xB895, 0x8F51, 0xB896, 0x8F52, 0xB897, 0x8F53, 0xB898, 0x8F54, 0xB899, + 0x8F55, 0xB89A, 0x8F56, 0xB89B, 0x8F57, 0xB89C, 0x8F58, 0xB89D, 0x8F59, 0xB89E, 0x8F5A, 0xB89F, 0x8F61, 0xB8A0, 0x8F62, 0xB8A1, + 0x8F63, 0xB8A2, 0x8F64, 0xB8A3, 0x8F65, 0xB8A4, 0x8F66, 0xB8A5, 0x8F67, 0xB8A6, 0x8F68, 0xB8A7, 0x8F69, 0xB8A9, 0x8F6A, 0xB8AA, + 0x8F6B, 0xB8AB, 0x8F6C, 0xB8AC, 0x8F6D, 0xB8AD, 0x8F6E, 0xB8AE, 0x8F6F, 0xB8AF, 0x8F70, 0xB8B1, 0x8F71, 0xB8B2, 0x8F72, 0xB8B3, + 0x8F73, 0xB8B5, 0x8F74, 0xB8B6, 0x8F75, 0xB8B7, 0x8F76, 0xB8B9, 0x8F77, 0xB8BA, 0x8F78, 0xB8BB, 0x8F79, 0xB8BC, 0x8F7A, 0xB8BD, + 0x8F81, 0xB8BE, 0x8F82, 0xB8BF, 0x8F83, 0xB8C2, 0x8F84, 0xB8C4, 0x8F85, 0xB8C6, 0x8F86, 0xB8C7, 0x8F87, 0xB8C8, 0x8F88, 0xB8C9, + 0x8F89, 0xB8CA, 0x8F8A, 0xB8CB, 0x8F8B, 0xB8CD, 0x8F8C, 0xB8CE, 0x8F8D, 0xB8CF, 0x8F8E, 0xB8D1, 0x8F8F, 0xB8D2, 0x8F90, 0xB8D3, + 0x8F91, 0xB8D5, 0x8F92, 0xB8D6, 0x8F93, 0xB8D7, 0x8F94, 0xB8D8, 0x8F95, 0xB8D9, 0x8F96, 0xB8DA, 0x8F97, 0xB8DB, 0x8F98, 0xB8DC, + 0x8F99, 0xB8DE, 0x8F9A, 0xB8E0, 0x8F9B, 0xB8E2, 0x8F9C, 0xB8E3, 0x8F9D, 0xB8E4, 0x8F9E, 0xB8E5, 0x8F9F, 0xB8E6, 0x8FA0, 0xB8E7, + 0x8FA1, 0xB8EA, 0x8FA2, 0xB8EB, 0x8FA3, 0xB8ED, 0x8FA4, 0xB8EE, 0x8FA5, 0xB8EF, 0x8FA6, 0xB8F1, 0x8FA7, 0xB8F2, 0x8FA8, 0xB8F3, + 0x8FA9, 0xB8F4, 0x8FAA, 0xB8F5, 0x8FAB, 0xB8F6, 0x8FAC, 0xB8F7, 0x8FAD, 0xB8FA, 0x8FAE, 0xB8FC, 0x8FAF, 0xB8FE, 0x8FB0, 0xB8FF, + 0x8FB1, 0xB900, 0x8FB2, 0xB901, 0x8FB3, 0xB902, 0x8FB4, 0xB903, 0x8FB5, 0xB905, 0x8FB6, 0xB906, 0x8FB7, 0xB907, 0x8FB8, 0xB908, + 0x8FB9, 0xB909, 0x8FBA, 0xB90A, 0x8FBB, 0xB90B, 0x8FBC, 0xB90C, 0x8FBD, 0xB90D, 0x8FBE, 0xB90E, 0x8FBF, 0xB90F, 0x8FC0, 0xB910, + 0x8FC1, 0xB911, 0x8FC2, 0xB912, 0x8FC3, 0xB913, 0x8FC4, 0xB914, 0x8FC5, 0xB915, 0x8FC6, 0xB916, 0x8FC7, 0xB917, 0x8FC8, 0xB919, + 0x8FC9, 0xB91A, 0x8FCA, 0xB91B, 0x8FCB, 0xB91C, 0x8FCC, 0xB91D, 0x8FCD, 0xB91E, 0x8FCE, 0xB91F, 0x8FCF, 0xB921, 0x8FD0, 0xB922, + 0x8FD1, 0xB923, 0x8FD2, 0xB924, 0x8FD3, 0xB925, 0x8FD4, 0xB926, 0x8FD5, 0xB927, 0x8FD6, 0xB928, 0x8FD7, 0xB929, 0x8FD8, 0xB92A, + 0x8FD9, 0xB92B, 0x8FDA, 0xB92C, 0x8FDB, 0xB92D, 0x8FDC, 0xB92E, 0x8FDD, 0xB92F, 0x8FDE, 0xB930, 0x8FDF, 0xB931, 0x8FE0, 0xB932, + 0x8FE1, 0xB933, 0x8FE2, 0xB934, 0x8FE3, 0xB935, 0x8FE4, 0xB936, 0x8FE5, 0xB937, 0x8FE6, 0xB938, 0x8FE7, 0xB939, 0x8FE8, 0xB93A, + 0x8FE9, 0xB93B, 0x8FEA, 0xB93E, 0x8FEB, 0xB93F, 0x8FEC, 0xB941, 0x8FED, 0xB942, 0x8FEE, 0xB943, 0x8FEF, 0xB945, 0x8FF0, 0xB946, + 0x8FF1, 0xB947, 0x8FF2, 0xB948, 0x8FF3, 0xB949, 0x8FF4, 0xB94A, 0x8FF5, 0xB94B, 0x8FF6, 0xB94D, 0x8FF7, 0xB94E, 0x8FF8, 0xB950, + 0x8FF9, 0xB952, 0x8FFA, 0xB953, 0x8FFB, 0xB954, 0x8FFC, 0xB955, 0x8FFD, 0xB956, 0x8FFE, 0xB957, 0x9041, 0xB95A, 0x9042, 0xB95B, + 0x9043, 0xB95D, 0x9044, 0xB95E, 0x9045, 0xB95F, 0x9046, 0xB961, 0x9047, 0xB962, 0x9048, 0xB963, 0x9049, 0xB964, 0x904A, 0xB965, + 0x904B, 0xB966, 0x904C, 0xB967, 0x904D, 0xB96A, 0x904E, 0xB96C, 0x904F, 0xB96E, 0x9050, 0xB96F, 0x9051, 0xB970, 0x9052, 0xB971, + 0x9053, 0xB972, 0x9054, 0xB973, 0x9055, 0xB976, 0x9056, 0xB977, 0x9057, 0xB979, 0x9058, 0xB97A, 0x9059, 0xB97B, 0x905A, 0xB97D, + 0x9061, 0xB97E, 0x9062, 0xB97F, 0x9063, 0xB980, 0x9064, 0xB981, 0x9065, 0xB982, 0x9066, 0xB983, 0x9067, 0xB986, 0x9068, 0xB988, + 0x9069, 0xB98B, 0x906A, 0xB98C, 0x906B, 0xB98F, 0x906C, 0xB990, 0x906D, 0xB991, 0x906E, 0xB992, 0x906F, 0xB993, 0x9070, 0xB994, + 0x9071, 0xB995, 0x9072, 0xB996, 0x9073, 0xB997, 0x9074, 0xB998, 0x9075, 0xB999, 0x9076, 0xB99A, 0x9077, 0xB99B, 0x9078, 0xB99C, + 0x9079, 0xB99D, 0x907A, 0xB99E, 0x9081, 0xB99F, 0x9082, 0xB9A0, 0x9083, 0xB9A1, 0x9084, 0xB9A2, 0x9085, 0xB9A3, 0x9086, 0xB9A4, + 0x9087, 0xB9A5, 0x9088, 0xB9A6, 0x9089, 0xB9A7, 0x908A, 0xB9A8, 0x908B, 0xB9A9, 0x908C, 0xB9AA, 0x908D, 0xB9AB, 0x908E, 0xB9AE, + 0x908F, 0xB9AF, 0x9090, 0xB9B1, 0x9091, 0xB9B2, 0x9092, 0xB9B3, 0x9093, 0xB9B5, 0x9094, 0xB9B6, 0x9095, 0xB9B7, 0x9096, 0xB9B8, + 0x9097, 0xB9B9, 0x9098, 0xB9BA, 0x9099, 0xB9BB, 0x909A, 0xB9BE, 0x909B, 0xB9C0, 0x909C, 0xB9C2, 0x909D, 0xB9C3, 0x909E, 0xB9C4, + 0x909F, 0xB9C5, 0x90A0, 0xB9C6, 0x90A1, 0xB9C7, 0x90A2, 0xB9CA, 0x90A3, 0xB9CB, 0x90A4, 0xB9CD, 0x90A5, 0xB9D3, 0x90A6, 0xB9D4, + 0x90A7, 0xB9D5, 0x90A8, 0xB9D6, 0x90A9, 0xB9D7, 0x90AA, 0xB9DA, 0x90AB, 0xB9DC, 0x90AC, 0xB9DF, 0x90AD, 0xB9E0, 0x90AE, 0xB9E2, + 0x90AF, 0xB9E6, 0x90B0, 0xB9E7, 0x90B1, 0xB9E9, 0x90B2, 0xB9EA, 0x90B3, 0xB9EB, 0x90B4, 0xB9ED, 0x90B5, 0xB9EE, 0x90B6, 0xB9EF, + 0x90B7, 0xB9F0, 0x90B8, 0xB9F1, 0x90B9, 0xB9F2, 0x90BA, 0xB9F3, 0x90BB, 0xB9F6, 0x90BC, 0xB9FB, 0x90BD, 0xB9FC, 0x90BE, 0xB9FD, + 0x90BF, 0xB9FE, 0x90C0, 0xB9FF, 0x90C1, 0xBA02, 0x90C2, 0xBA03, 0x90C3, 0xBA04, 0x90C4, 0xBA05, 0x90C5, 0xBA06, 0x90C6, 0xBA07, + 0x90C7, 0xBA09, 0x90C8, 0xBA0A, 0x90C9, 0xBA0B, 0x90CA, 0xBA0C, 0x90CB, 0xBA0D, 0x90CC, 0xBA0E, 0x90CD, 0xBA0F, 0x90CE, 0xBA10, + 0x90CF, 0xBA11, 0x90D0, 0xBA12, 0x90D1, 0xBA13, 0x90D2, 0xBA14, 0x90D3, 0xBA16, 0x90D4, 0xBA17, 0x90D5, 0xBA18, 0x90D6, 0xBA19, + 0x90D7, 0xBA1A, 0x90D8, 0xBA1B, 0x90D9, 0xBA1C, 0x90DA, 0xBA1D, 0x90DB, 0xBA1E, 0x90DC, 0xBA1F, 0x90DD, 0xBA20, 0x90DE, 0xBA21, + 0x90DF, 0xBA22, 0x90E0, 0xBA23, 0x90E1, 0xBA24, 0x90E2, 0xBA25, 0x90E3, 0xBA26, 0x90E4, 0xBA27, 0x90E5, 0xBA28, 0x90E6, 0xBA29, + 0x90E7, 0xBA2A, 0x90E8, 0xBA2B, 0x90E9, 0xBA2C, 0x90EA, 0xBA2D, 0x90EB, 0xBA2E, 0x90EC, 0xBA2F, 0x90ED, 0xBA30, 0x90EE, 0xBA31, + 0x90EF, 0xBA32, 0x90F0, 0xBA33, 0x90F1, 0xBA34, 0x90F2, 0xBA35, 0x90F3, 0xBA36, 0x90F4, 0xBA37, 0x90F5, 0xBA3A, 0x90F6, 0xBA3B, + 0x90F7, 0xBA3D, 0x90F8, 0xBA3E, 0x90F9, 0xBA3F, 0x90FA, 0xBA41, 0x90FB, 0xBA43, 0x90FC, 0xBA44, 0x90FD, 0xBA45, 0x90FE, 0xBA46, + 0x9141, 0xBA47, 0x9142, 0xBA4A, 0x9143, 0xBA4C, 0x9144, 0xBA4F, 0x9145, 0xBA50, 0x9146, 0xBA51, 0x9147, 0xBA52, 0x9148, 0xBA56, + 0x9149, 0xBA57, 0x914A, 0xBA59, 0x914B, 0xBA5A, 0x914C, 0xBA5B, 0x914D, 0xBA5D, 0x914E, 0xBA5E, 0x914F, 0xBA5F, 0x9150, 0xBA60, + 0x9151, 0xBA61, 0x9152, 0xBA62, 0x9153, 0xBA63, 0x9154, 0xBA66, 0x9155, 0xBA6A, 0x9156, 0xBA6B, 0x9157, 0xBA6C, 0x9158, 0xBA6D, + 0x9159, 0xBA6E, 0x915A, 0xBA6F, 0x9161, 0xBA72, 0x9162, 0xBA73, 0x9163, 0xBA75, 0x9164, 0xBA76, 0x9165, 0xBA77, 0x9166, 0xBA79, + 0x9167, 0xBA7A, 0x9168, 0xBA7B, 0x9169, 0xBA7C, 0x916A, 0xBA7D, 0x916B, 0xBA7E, 0x916C, 0xBA7F, 0x916D, 0xBA80, 0x916E, 0xBA81, + 0x916F, 0xBA82, 0x9170, 0xBA86, 0x9171, 0xBA88, 0x9172, 0xBA89, 0x9173, 0xBA8A, 0x9174, 0xBA8B, 0x9175, 0xBA8D, 0x9176, 0xBA8E, + 0x9177, 0xBA8F, 0x9178, 0xBA90, 0x9179, 0xBA91, 0x917A, 0xBA92, 0x9181, 0xBA93, 0x9182, 0xBA94, 0x9183, 0xBA95, 0x9184, 0xBA96, + 0x9185, 0xBA97, 0x9186, 0xBA98, 0x9187, 0xBA99, 0x9188, 0xBA9A, 0x9189, 0xBA9B, 0x918A, 0xBA9C, 0x918B, 0xBA9D, 0x918C, 0xBA9E, + 0x918D, 0xBA9F, 0x918E, 0xBAA0, 0x918F, 0xBAA1, 0x9190, 0xBAA2, 0x9191, 0xBAA3, 0x9192, 0xBAA4, 0x9193, 0xBAA5, 0x9194, 0xBAA6, + 0x9195, 0xBAA7, 0x9196, 0xBAAA, 0x9197, 0xBAAD, 0x9198, 0xBAAE, 0x9199, 0xBAAF, 0x919A, 0xBAB1, 0x919B, 0xBAB3, 0x919C, 0xBAB4, + 0x919D, 0xBAB5, 0x919E, 0xBAB6, 0x919F, 0xBAB7, 0x91A0, 0xBABA, 0x91A1, 0xBABC, 0x91A2, 0xBABE, 0x91A3, 0xBABF, 0x91A4, 0xBAC0, + 0x91A5, 0xBAC1, 0x91A6, 0xBAC2, 0x91A7, 0xBAC3, 0x91A8, 0xBAC5, 0x91A9, 0xBAC6, 0x91AA, 0xBAC7, 0x91AB, 0xBAC9, 0x91AC, 0xBACA, + 0x91AD, 0xBACB, 0x91AE, 0xBACC, 0x91AF, 0xBACD, 0x91B0, 0xBACE, 0x91B1, 0xBACF, 0x91B2, 0xBAD0, 0x91B3, 0xBAD1, 0x91B4, 0xBAD2, + 0x91B5, 0xBAD3, 0x91B6, 0xBAD4, 0x91B7, 0xBAD5, 0x91B8, 0xBAD6, 0x91B9, 0xBAD7, 0x91BA, 0xBADA, 0x91BB, 0xBADB, 0x91BC, 0xBADC, + 0x91BD, 0xBADD, 0x91BE, 0xBADE, 0x91BF, 0xBADF, 0x91C0, 0xBAE0, 0x91C1, 0xBAE1, 0x91C2, 0xBAE2, 0x91C3, 0xBAE3, 0x91C4, 0xBAE4, + 0x91C5, 0xBAE5, 0x91C6, 0xBAE6, 0x91C7, 0xBAE7, 0x91C8, 0xBAE8, 0x91C9, 0xBAE9, 0x91CA, 0xBAEA, 0x91CB, 0xBAEB, 0x91CC, 0xBAEC, + 0x91CD, 0xBAED, 0x91CE, 0xBAEE, 0x91CF, 0xBAEF, 0x91D0, 0xBAF0, 0x91D1, 0xBAF1, 0x91D2, 0xBAF2, 0x91D3, 0xBAF3, 0x91D4, 0xBAF4, + 0x91D5, 0xBAF5, 0x91D6, 0xBAF6, 0x91D7, 0xBAF7, 0x91D8, 0xBAF8, 0x91D9, 0xBAF9, 0x91DA, 0xBAFA, 0x91DB, 0xBAFB, 0x91DC, 0xBAFD, + 0x91DD, 0xBAFE, 0x91DE, 0xBAFF, 0x91DF, 0xBB01, 0x91E0, 0xBB02, 0x91E1, 0xBB03, 0x91E2, 0xBB05, 0x91E3, 0xBB06, 0x91E4, 0xBB07, + 0x91E5, 0xBB08, 0x91E6, 0xBB09, 0x91E7, 0xBB0A, 0x91E8, 0xBB0B, 0x91E9, 0xBB0C, 0x91EA, 0xBB0E, 0x91EB, 0xBB10, 0x91EC, 0xBB12, + 0x91ED, 0xBB13, 0x91EE, 0xBB14, 0x91EF, 0xBB15, 0x91F0, 0xBB16, 0x91F1, 0xBB17, 0x91F2, 0xBB19, 0x91F3, 0xBB1A, 0x91F4, 0xBB1B, + 0x91F5, 0xBB1D, 0x91F6, 0xBB1E, 0x91F7, 0xBB1F, 0x91F8, 0xBB21, 0x91F9, 0xBB22, 0x91FA, 0xBB23, 0x91FB, 0xBB24, 0x91FC, 0xBB25, + 0x91FD, 0xBB26, 0x91FE, 0xBB27, 0x9241, 0xBB28, 0x9242, 0xBB2A, 0x9243, 0xBB2C, 0x9244, 0xBB2D, 0x9245, 0xBB2E, 0x9246, 0xBB2F, + 0x9247, 0xBB30, 0x9248, 0xBB31, 0x9249, 0xBB32, 0x924A, 0xBB33, 0x924B, 0xBB37, 0x924C, 0xBB39, 0x924D, 0xBB3A, 0x924E, 0xBB3F, + 0x924F, 0xBB40, 0x9250, 0xBB41, 0x9251, 0xBB42, 0x9252, 0xBB43, 0x9253, 0xBB46, 0x9254, 0xBB48, 0x9255, 0xBB4A, 0x9256, 0xBB4B, + 0x9257, 0xBB4C, 0x9258, 0xBB4E, 0x9259, 0xBB51, 0x925A, 0xBB52, 0x9261, 0xBB53, 0x9262, 0xBB55, 0x9263, 0xBB56, 0x9264, 0xBB57, + 0x9265, 0xBB59, 0x9266, 0xBB5A, 0x9267, 0xBB5B, 0x9268, 0xBB5C, 0x9269, 0xBB5D, 0x926A, 0xBB5E, 0x926B, 0xBB5F, 0x926C, 0xBB60, + 0x926D, 0xBB62, 0x926E, 0xBB64, 0x926F, 0xBB65, 0x9270, 0xBB66, 0x9271, 0xBB67, 0x9272, 0xBB68, 0x9273, 0xBB69, 0x9274, 0xBB6A, + 0x9275, 0xBB6B, 0x9276, 0xBB6D, 0x9277, 0xBB6E, 0x9278, 0xBB6F, 0x9279, 0xBB70, 0x927A, 0xBB71, 0x9281, 0xBB72, 0x9282, 0xBB73, + 0x9283, 0xBB74, 0x9284, 0xBB75, 0x9285, 0xBB76, 0x9286, 0xBB77, 0x9287, 0xBB78, 0x9288, 0xBB79, 0x9289, 0xBB7A, 0x928A, 0xBB7B, + 0x928B, 0xBB7C, 0x928C, 0xBB7D, 0x928D, 0xBB7E, 0x928E, 0xBB7F, 0x928F, 0xBB80, 0x9290, 0xBB81, 0x9291, 0xBB82, 0x9292, 0xBB83, + 0x9293, 0xBB84, 0x9294, 0xBB85, 0x9295, 0xBB86, 0x9296, 0xBB87, 0x9297, 0xBB89, 0x9298, 0xBB8A, 0x9299, 0xBB8B, 0x929A, 0xBB8D, + 0x929B, 0xBB8E, 0x929C, 0xBB8F, 0x929D, 0xBB91, 0x929E, 0xBB92, 0x929F, 0xBB93, 0x92A0, 0xBB94, 0x92A1, 0xBB95, 0x92A2, 0xBB96, + 0x92A3, 0xBB97, 0x92A4, 0xBB98, 0x92A5, 0xBB99, 0x92A6, 0xBB9A, 0x92A7, 0xBB9B, 0x92A8, 0xBB9C, 0x92A9, 0xBB9D, 0x92AA, 0xBB9E, + 0x92AB, 0xBB9F, 0x92AC, 0xBBA0, 0x92AD, 0xBBA1, 0x92AE, 0xBBA2, 0x92AF, 0xBBA3, 0x92B0, 0xBBA5, 0x92B1, 0xBBA6, 0x92B2, 0xBBA7, + 0x92B3, 0xBBA9, 0x92B4, 0xBBAA, 0x92B5, 0xBBAB, 0x92B6, 0xBBAD, 0x92B7, 0xBBAE, 0x92B8, 0xBBAF, 0x92B9, 0xBBB0, 0x92BA, 0xBBB1, + 0x92BB, 0xBBB2, 0x92BC, 0xBBB3, 0x92BD, 0xBBB5, 0x92BE, 0xBBB6, 0x92BF, 0xBBB8, 0x92C0, 0xBBB9, 0x92C1, 0xBBBA, 0x92C2, 0xBBBB, + 0x92C3, 0xBBBC, 0x92C4, 0xBBBD, 0x92C5, 0xBBBE, 0x92C6, 0xBBBF, 0x92C7, 0xBBC1, 0x92C8, 0xBBC2, 0x92C9, 0xBBC3, 0x92CA, 0xBBC5, + 0x92CB, 0xBBC6, 0x92CC, 0xBBC7, 0x92CD, 0xBBC9, 0x92CE, 0xBBCA, 0x92CF, 0xBBCB, 0x92D0, 0xBBCC, 0x92D1, 0xBBCD, 0x92D2, 0xBBCE, + 0x92D3, 0xBBCF, 0x92D4, 0xBBD1, 0x92D5, 0xBBD2, 0x92D6, 0xBBD4, 0x92D7, 0xBBD5, 0x92D8, 0xBBD6, 0x92D9, 0xBBD7, 0x92DA, 0xBBD8, + 0x92DB, 0xBBD9, 0x92DC, 0xBBDA, 0x92DD, 0xBBDB, 0x92DE, 0xBBDC, 0x92DF, 0xBBDD, 0x92E0, 0xBBDE, 0x92E1, 0xBBDF, 0x92E2, 0xBBE0, + 0x92E3, 0xBBE1, 0x92E4, 0xBBE2, 0x92E5, 0xBBE3, 0x92E6, 0xBBE4, 0x92E7, 0xBBE5, 0x92E8, 0xBBE6, 0x92E9, 0xBBE7, 0x92EA, 0xBBE8, + 0x92EB, 0xBBE9, 0x92EC, 0xBBEA, 0x92ED, 0xBBEB, 0x92EE, 0xBBEC, 0x92EF, 0xBBED, 0x92F0, 0xBBEE, 0x92F1, 0xBBEF, 0x92F2, 0xBBF0, + 0x92F3, 0xBBF1, 0x92F4, 0xBBF2, 0x92F5, 0xBBF3, 0x92F6, 0xBBF4, 0x92F7, 0xBBF5, 0x92F8, 0xBBF6, 0x92F9, 0xBBF7, 0x92FA, 0xBBFA, + 0x92FB, 0xBBFB, 0x92FC, 0xBBFD, 0x92FD, 0xBBFE, 0x92FE, 0xBC01, 0x9341, 0xBC03, 0x9342, 0xBC04, 0x9343, 0xBC05, 0x9344, 0xBC06, + 0x9345, 0xBC07, 0x9346, 0xBC0A, 0x9347, 0xBC0E, 0x9348, 0xBC10, 0x9349, 0xBC12, 0x934A, 0xBC13, 0x934B, 0xBC19, 0x934C, 0xBC1A, + 0x934D, 0xBC20, 0x934E, 0xBC21, 0x934F, 0xBC22, 0x9350, 0xBC23, 0x9351, 0xBC26, 0x9352, 0xBC28, 0x9353, 0xBC2A, 0x9354, 0xBC2B, + 0x9355, 0xBC2C, 0x9356, 0xBC2E, 0x9357, 0xBC2F, 0x9358, 0xBC32, 0x9359, 0xBC33, 0x935A, 0xBC35, 0x9361, 0xBC36, 0x9362, 0xBC37, + 0x9363, 0xBC39, 0x9364, 0xBC3A, 0x9365, 0xBC3B, 0x9366, 0xBC3C, 0x9367, 0xBC3D, 0x9368, 0xBC3E, 0x9369, 0xBC3F, 0x936A, 0xBC42, + 0x936B, 0xBC46, 0x936C, 0xBC47, 0x936D, 0xBC48, 0x936E, 0xBC4A, 0x936F, 0xBC4B, 0x9370, 0xBC4E, 0x9371, 0xBC4F, 0x9372, 0xBC51, + 0x9373, 0xBC52, 0x9374, 0xBC53, 0x9375, 0xBC54, 0x9376, 0xBC55, 0x9377, 0xBC56, 0x9378, 0xBC57, 0x9379, 0xBC58, 0x937A, 0xBC59, + 0x9381, 0xBC5A, 0x9382, 0xBC5B, 0x9383, 0xBC5C, 0x9384, 0xBC5E, 0x9385, 0xBC5F, 0x9386, 0xBC60, 0x9387, 0xBC61, 0x9388, 0xBC62, + 0x9389, 0xBC63, 0x938A, 0xBC64, 0x938B, 0xBC65, 0x938C, 0xBC66, 0x938D, 0xBC67, 0x938E, 0xBC68, 0x938F, 0xBC69, 0x9390, 0xBC6A, + 0x9391, 0xBC6B, 0x9392, 0xBC6C, 0x9393, 0xBC6D, 0x9394, 0xBC6E, 0x9395, 0xBC6F, 0x9396, 0xBC70, 0x9397, 0xBC71, 0x9398, 0xBC72, + 0x9399, 0xBC73, 0x939A, 0xBC74, 0x939B, 0xBC75, 0x939C, 0xBC76, 0x939D, 0xBC77, 0x939E, 0xBC78, 0x939F, 0xBC79, 0x93A0, 0xBC7A, + 0x93A1, 0xBC7B, 0x93A2, 0xBC7C, 0x93A3, 0xBC7D, 0x93A4, 0xBC7E, 0x93A5, 0xBC7F, 0x93A6, 0xBC80, 0x93A7, 0xBC81, 0x93A8, 0xBC82, + 0x93A9, 0xBC83, 0x93AA, 0xBC86, 0x93AB, 0xBC87, 0x93AC, 0xBC89, 0x93AD, 0xBC8A, 0x93AE, 0xBC8D, 0x93AF, 0xBC8F, 0x93B0, 0xBC90, + 0x93B1, 0xBC91, 0x93B2, 0xBC92, 0x93B3, 0xBC93, 0x93B4, 0xBC96, 0x93B5, 0xBC98, 0x93B6, 0xBC9B, 0x93B7, 0xBC9C, 0x93B8, 0xBC9D, + 0x93B9, 0xBC9E, 0x93BA, 0xBC9F, 0x93BB, 0xBCA2, 0x93BC, 0xBCA3, 0x93BD, 0xBCA5, 0x93BE, 0xBCA6, 0x93BF, 0xBCA9, 0x93C0, 0xBCAA, + 0x93C1, 0xBCAB, 0x93C2, 0xBCAC, 0x93C3, 0xBCAD, 0x93C4, 0xBCAE, 0x93C5, 0xBCAF, 0x93C6, 0xBCB2, 0x93C7, 0xBCB6, 0x93C8, 0xBCB7, + 0x93C9, 0xBCB8, 0x93CA, 0xBCB9, 0x93CB, 0xBCBA, 0x93CC, 0xBCBB, 0x93CD, 0xBCBE, 0x93CE, 0xBCBF, 0x93CF, 0xBCC1, 0x93D0, 0xBCC2, + 0x93D1, 0xBCC3, 0x93D2, 0xBCC5, 0x93D3, 0xBCC6, 0x93D4, 0xBCC7, 0x93D5, 0xBCC8, 0x93D6, 0xBCC9, 0x93D7, 0xBCCA, 0x93D8, 0xBCCB, + 0x93D9, 0xBCCC, 0x93DA, 0xBCCE, 0x93DB, 0xBCD2, 0x93DC, 0xBCD3, 0x93DD, 0xBCD4, 0x93DE, 0xBCD6, 0x93DF, 0xBCD7, 0x93E0, 0xBCD9, + 0x93E1, 0xBCDA, 0x93E2, 0xBCDB, 0x93E3, 0xBCDD, 0x93E4, 0xBCDE, 0x93E5, 0xBCDF, 0x93E6, 0xBCE0, 0x93E7, 0xBCE1, 0x93E8, 0xBCE2, + 0x93E9, 0xBCE3, 0x93EA, 0xBCE4, 0x93EB, 0xBCE5, 0x93EC, 0xBCE6, 0x93ED, 0xBCE7, 0x93EE, 0xBCE8, 0x93EF, 0xBCE9, 0x93F0, 0xBCEA, + 0x93F1, 0xBCEB, 0x93F2, 0xBCEC, 0x93F3, 0xBCED, 0x93F4, 0xBCEE, 0x93F5, 0xBCEF, 0x93F6, 0xBCF0, 0x93F7, 0xBCF1, 0x93F8, 0xBCF2, + 0x93F9, 0xBCF3, 0x93FA, 0xBCF7, 0x93FB, 0xBCF9, 0x93FC, 0xBCFA, 0x93FD, 0xBCFB, 0x93FE, 0xBCFD, 0x9441, 0xBCFE, 0x9442, 0xBCFF, + 0x9443, 0xBD00, 0x9444, 0xBD01, 0x9445, 0xBD02, 0x9446, 0xBD03, 0x9447, 0xBD06, 0x9448, 0xBD08, 0x9449, 0xBD0A, 0x944A, 0xBD0B, + 0x944B, 0xBD0C, 0x944C, 0xBD0D, 0x944D, 0xBD0E, 0x944E, 0xBD0F, 0x944F, 0xBD11, 0x9450, 0xBD12, 0x9451, 0xBD13, 0x9452, 0xBD15, + 0x9453, 0xBD16, 0x9454, 0xBD17, 0x9455, 0xBD18, 0x9456, 0xBD19, 0x9457, 0xBD1A, 0x9458, 0xBD1B, 0x9459, 0xBD1C, 0x945A, 0xBD1D, + 0x9461, 0xBD1E, 0x9462, 0xBD1F, 0x9463, 0xBD20, 0x9464, 0xBD21, 0x9465, 0xBD22, 0x9466, 0xBD23, 0x9467, 0xBD25, 0x9468, 0xBD26, + 0x9469, 0xBD27, 0x946A, 0xBD28, 0x946B, 0xBD29, 0x946C, 0xBD2A, 0x946D, 0xBD2B, 0x946E, 0xBD2D, 0x946F, 0xBD2E, 0x9470, 0xBD2F, + 0x9471, 0xBD30, 0x9472, 0xBD31, 0x9473, 0xBD32, 0x9474, 0xBD33, 0x9475, 0xBD34, 0x9476, 0xBD35, 0x9477, 0xBD36, 0x9478, 0xBD37, + 0x9479, 0xBD38, 0x947A, 0xBD39, 0x9481, 0xBD3A, 0x9482, 0xBD3B, 0x9483, 0xBD3C, 0x9484, 0xBD3D, 0x9485, 0xBD3E, 0x9486, 0xBD3F, + 0x9487, 0xBD41, 0x9488, 0xBD42, 0x9489, 0xBD43, 0x948A, 0xBD44, 0x948B, 0xBD45, 0x948C, 0xBD46, 0x948D, 0xBD47, 0x948E, 0xBD4A, + 0x948F, 0xBD4B, 0x9490, 0xBD4D, 0x9491, 0xBD4E, 0x9492, 0xBD4F, 0x9493, 0xBD51, 0x9494, 0xBD52, 0x9495, 0xBD53, 0x9496, 0xBD54, + 0x9497, 0xBD55, 0x9498, 0xBD56, 0x9499, 0xBD57, 0x949A, 0xBD5A, 0x949B, 0xBD5B, 0x949C, 0xBD5C, 0x949D, 0xBD5D, 0x949E, 0xBD5E, + 0x949F, 0xBD5F, 0x94A0, 0xBD60, 0x94A1, 0xBD61, 0x94A2, 0xBD62, 0x94A3, 0xBD63, 0x94A4, 0xBD65, 0x94A5, 0xBD66, 0x94A6, 0xBD67, + 0x94A7, 0xBD69, 0x94A8, 0xBD6A, 0x94A9, 0xBD6B, 0x94AA, 0xBD6C, 0x94AB, 0xBD6D, 0x94AC, 0xBD6E, 0x94AD, 0xBD6F, 0x94AE, 0xBD70, + 0x94AF, 0xBD71, 0x94B0, 0xBD72, 0x94B1, 0xBD73, 0x94B2, 0xBD74, 0x94B3, 0xBD75, 0x94B4, 0xBD76, 0x94B5, 0xBD77, 0x94B6, 0xBD78, + 0x94B7, 0xBD79, 0x94B8, 0xBD7A, 0x94B9, 0xBD7B, 0x94BA, 0xBD7C, 0x94BB, 0xBD7D, 0x94BC, 0xBD7E, 0x94BD, 0xBD7F, 0x94BE, 0xBD82, + 0x94BF, 0xBD83, 0x94C0, 0xBD85, 0x94C1, 0xBD86, 0x94C2, 0xBD8B, 0x94C3, 0xBD8C, 0x94C4, 0xBD8D, 0x94C5, 0xBD8E, 0x94C6, 0xBD8F, + 0x94C7, 0xBD92, 0x94C8, 0xBD94, 0x94C9, 0xBD96, 0x94CA, 0xBD97, 0x94CB, 0xBD98, 0x94CC, 0xBD9B, 0x94CD, 0xBD9D, 0x94CE, 0xBD9E, + 0x94CF, 0xBD9F, 0x94D0, 0xBDA0, 0x94D1, 0xBDA1, 0x94D2, 0xBDA2, 0x94D3, 0xBDA3, 0x94D4, 0xBDA5, 0x94D5, 0xBDA6, 0x94D6, 0xBDA7, + 0x94D7, 0xBDA8, 0x94D8, 0xBDA9, 0x94D9, 0xBDAA, 0x94DA, 0xBDAB, 0x94DB, 0xBDAC, 0x94DC, 0xBDAD, 0x94DD, 0xBDAE, 0x94DE, 0xBDAF, + 0x94DF, 0xBDB1, 0x94E0, 0xBDB2, 0x94E1, 0xBDB3, 0x94E2, 0xBDB4, 0x94E3, 0xBDB5, 0x94E4, 0xBDB6, 0x94E5, 0xBDB7, 0x94E6, 0xBDB9, + 0x94E7, 0xBDBA, 0x94E8, 0xBDBB, 0x94E9, 0xBDBC, 0x94EA, 0xBDBD, 0x94EB, 0xBDBE, 0x94EC, 0xBDBF, 0x94ED, 0xBDC0, 0x94EE, 0xBDC1, + 0x94EF, 0xBDC2, 0x94F0, 0xBDC3, 0x94F1, 0xBDC4, 0x94F2, 0xBDC5, 0x94F3, 0xBDC6, 0x94F4, 0xBDC7, 0x94F5, 0xBDC8, 0x94F6, 0xBDC9, + 0x94F7, 0xBDCA, 0x94F8, 0xBDCB, 0x94F9, 0xBDCC, 0x94FA, 0xBDCD, 0x94FB, 0xBDCE, 0x94FC, 0xBDCF, 0x94FD, 0xBDD0, 0x94FE, 0xBDD1, + 0x9541, 0xBDD2, 0x9542, 0xBDD3, 0x9543, 0xBDD6, 0x9544, 0xBDD7, 0x9545, 0xBDD9, 0x9546, 0xBDDA, 0x9547, 0xBDDB, 0x9548, 0xBDDD, + 0x9549, 0xBDDE, 0x954A, 0xBDDF, 0x954B, 0xBDE0, 0x954C, 0xBDE1, 0x954D, 0xBDE2, 0x954E, 0xBDE3, 0x954F, 0xBDE4, 0x9550, 0xBDE5, + 0x9551, 0xBDE6, 0x9552, 0xBDE7, 0x9553, 0xBDE8, 0x9554, 0xBDEA, 0x9555, 0xBDEB, 0x9556, 0xBDEC, 0x9557, 0xBDED, 0x9558, 0xBDEE, + 0x9559, 0xBDEF, 0x955A, 0xBDF1, 0x9561, 0xBDF2, 0x9562, 0xBDF3, 0x9563, 0xBDF5, 0x9564, 0xBDF6, 0x9565, 0xBDF7, 0x9566, 0xBDF9, + 0x9567, 0xBDFA, 0x9568, 0xBDFB, 0x9569, 0xBDFC, 0x956A, 0xBDFD, 0x956B, 0xBDFE, 0x956C, 0xBDFF, 0x956D, 0xBE01, 0x956E, 0xBE02, + 0x956F, 0xBE04, 0x9570, 0xBE06, 0x9571, 0xBE07, 0x9572, 0xBE08, 0x9573, 0xBE09, 0x9574, 0xBE0A, 0x9575, 0xBE0B, 0x9576, 0xBE0E, + 0x9577, 0xBE0F, 0x9578, 0xBE11, 0x9579, 0xBE12, 0x957A, 0xBE13, 0x9581, 0xBE15, 0x9582, 0xBE16, 0x9583, 0xBE17, 0x9584, 0xBE18, + 0x9585, 0xBE19, 0x9586, 0xBE1A, 0x9587, 0xBE1B, 0x9588, 0xBE1E, 0x9589, 0xBE20, 0x958A, 0xBE21, 0x958B, 0xBE22, 0x958C, 0xBE23, + 0x958D, 0xBE24, 0x958E, 0xBE25, 0x958F, 0xBE26, 0x9590, 0xBE27, 0x9591, 0xBE28, 0x9592, 0xBE29, 0x9593, 0xBE2A, 0x9594, 0xBE2B, + 0x9595, 0xBE2C, 0x9596, 0xBE2D, 0x9597, 0xBE2E, 0x9598, 0xBE2F, 0x9599, 0xBE30, 0x959A, 0xBE31, 0x959B, 0xBE32, 0x959C, 0xBE33, + 0x959D, 0xBE34, 0x959E, 0xBE35, 0x959F, 0xBE36, 0x95A0, 0xBE37, 0x95A1, 0xBE38, 0x95A2, 0xBE39, 0x95A3, 0xBE3A, 0x95A4, 0xBE3B, + 0x95A5, 0xBE3C, 0x95A6, 0xBE3D, 0x95A7, 0xBE3E, 0x95A8, 0xBE3F, 0x95A9, 0xBE40, 0x95AA, 0xBE41, 0x95AB, 0xBE42, 0x95AC, 0xBE43, + 0x95AD, 0xBE46, 0x95AE, 0xBE47, 0x95AF, 0xBE49, 0x95B0, 0xBE4A, 0x95B1, 0xBE4B, 0x95B2, 0xBE4D, 0x95B3, 0xBE4F, 0x95B4, 0xBE50, + 0x95B5, 0xBE51, 0x95B6, 0xBE52, 0x95B7, 0xBE53, 0x95B8, 0xBE56, 0x95B9, 0xBE58, 0x95BA, 0xBE5C, 0x95BB, 0xBE5D, 0x95BC, 0xBE5E, + 0x95BD, 0xBE5F, 0x95BE, 0xBE62, 0x95BF, 0xBE63, 0x95C0, 0xBE65, 0x95C1, 0xBE66, 0x95C2, 0xBE67, 0x95C3, 0xBE69, 0x95C4, 0xBE6B, + 0x95C5, 0xBE6C, 0x95C6, 0xBE6D, 0x95C7, 0xBE6E, 0x95C8, 0xBE6F, 0x95C9, 0xBE72, 0x95CA, 0xBE76, 0x95CB, 0xBE77, 0x95CC, 0xBE78, + 0x95CD, 0xBE79, 0x95CE, 0xBE7A, 0x95CF, 0xBE7E, 0x95D0, 0xBE7F, 0x95D1, 0xBE81, 0x95D2, 0xBE82, 0x95D3, 0xBE83, 0x95D4, 0xBE85, + 0x95D5, 0xBE86, 0x95D6, 0xBE87, 0x95D7, 0xBE88, 0x95D8, 0xBE89, 0x95D9, 0xBE8A, 0x95DA, 0xBE8B, 0x95DB, 0xBE8E, 0x95DC, 0xBE92, + 0x95DD, 0xBE93, 0x95DE, 0xBE94, 0x95DF, 0xBE95, 0x95E0, 0xBE96, 0x95E1, 0xBE97, 0x95E2, 0xBE9A, 0x95E3, 0xBE9B, 0x95E4, 0xBE9C, + 0x95E5, 0xBE9D, 0x95E6, 0xBE9E, 0x95E7, 0xBE9F, 0x95E8, 0xBEA0, 0x95E9, 0xBEA1, 0x95EA, 0xBEA2, 0x95EB, 0xBEA3, 0x95EC, 0xBEA4, + 0x95ED, 0xBEA5, 0x95EE, 0xBEA6, 0x95EF, 0xBEA7, 0x95F0, 0xBEA9, 0x95F1, 0xBEAA, 0x95F2, 0xBEAB, 0x95F3, 0xBEAC, 0x95F4, 0xBEAD, + 0x95F5, 0xBEAE, 0x95F6, 0xBEAF, 0x95F7, 0xBEB0, 0x95F8, 0xBEB1, 0x95F9, 0xBEB2, 0x95FA, 0xBEB3, 0x95FB, 0xBEB4, 0x95FC, 0xBEB5, + 0x95FD, 0xBEB6, 0x95FE, 0xBEB7, 0x9641, 0xBEB8, 0x9642, 0xBEB9, 0x9643, 0xBEBA, 0x9644, 0xBEBB, 0x9645, 0xBEBC, 0x9646, 0xBEBD, + 0x9647, 0xBEBE, 0x9648, 0xBEBF, 0x9649, 0xBEC0, 0x964A, 0xBEC1, 0x964B, 0xBEC2, 0x964C, 0xBEC3, 0x964D, 0xBEC4, 0x964E, 0xBEC5, + 0x964F, 0xBEC6, 0x9650, 0xBEC7, 0x9651, 0xBEC8, 0x9652, 0xBEC9, 0x9653, 0xBECA, 0x9654, 0xBECB, 0x9655, 0xBECC, 0x9656, 0xBECD, + 0x9657, 0xBECE, 0x9658, 0xBECF, 0x9659, 0xBED2, 0x965A, 0xBED3, 0x9661, 0xBED5, 0x9662, 0xBED6, 0x9663, 0xBED9, 0x9664, 0xBEDA, + 0x9665, 0xBEDB, 0x9666, 0xBEDC, 0x9667, 0xBEDD, 0x9668, 0xBEDE, 0x9669, 0xBEDF, 0x966A, 0xBEE1, 0x966B, 0xBEE2, 0x966C, 0xBEE6, + 0x966D, 0xBEE7, 0x966E, 0xBEE8, 0x966F, 0xBEE9, 0x9670, 0xBEEA, 0x9671, 0xBEEB, 0x9672, 0xBEED, 0x9673, 0xBEEE, 0x9674, 0xBEEF, + 0x9675, 0xBEF0, 0x9676, 0xBEF1, 0x9677, 0xBEF2, 0x9678, 0xBEF3, 0x9679, 0xBEF4, 0x967A, 0xBEF5, 0x9681, 0xBEF6, 0x9682, 0xBEF7, + 0x9683, 0xBEF8, 0x9684, 0xBEF9, 0x9685, 0xBEFA, 0x9686, 0xBEFB, 0x9687, 0xBEFC, 0x9688, 0xBEFD, 0x9689, 0xBEFE, 0x968A, 0xBEFF, + 0x968B, 0xBF00, 0x968C, 0xBF02, 0x968D, 0xBF03, 0x968E, 0xBF04, 0x968F, 0xBF05, 0x9690, 0xBF06, 0x9691, 0xBF07, 0x9692, 0xBF0A, + 0x9693, 0xBF0B, 0x9694, 0xBF0C, 0x9695, 0xBF0D, 0x9696, 0xBF0E, 0x9697, 0xBF0F, 0x9698, 0xBF10, 0x9699, 0xBF11, 0x969A, 0xBF12, + 0x969B, 0xBF13, 0x969C, 0xBF14, 0x969D, 0xBF15, 0x969E, 0xBF16, 0x969F, 0xBF17, 0x96A0, 0xBF1A, 0x96A1, 0xBF1E, 0x96A2, 0xBF1F, + 0x96A3, 0xBF20, 0x96A4, 0xBF21, 0x96A5, 0xBF22, 0x96A6, 0xBF23, 0x96A7, 0xBF24, 0x96A8, 0xBF25, 0x96A9, 0xBF26, 0x96AA, 0xBF27, + 0x96AB, 0xBF28, 0x96AC, 0xBF29, 0x96AD, 0xBF2A, 0x96AE, 0xBF2B, 0x96AF, 0xBF2C, 0x96B0, 0xBF2D, 0x96B1, 0xBF2E, 0x96B2, 0xBF2F, + 0x96B3, 0xBF30, 0x96B4, 0xBF31, 0x96B5, 0xBF32, 0x96B6, 0xBF33, 0x96B7, 0xBF34, 0x96B8, 0xBF35, 0x96B9, 0xBF36, 0x96BA, 0xBF37, + 0x96BB, 0xBF38, 0x96BC, 0xBF39, 0x96BD, 0xBF3A, 0x96BE, 0xBF3B, 0x96BF, 0xBF3C, 0x96C0, 0xBF3D, 0x96C1, 0xBF3E, 0x96C2, 0xBF3F, + 0x96C3, 0xBF42, 0x96C4, 0xBF43, 0x96C5, 0xBF45, 0x96C6, 0xBF46, 0x96C7, 0xBF47, 0x96C8, 0xBF49, 0x96C9, 0xBF4A, 0x96CA, 0xBF4B, + 0x96CB, 0xBF4C, 0x96CC, 0xBF4D, 0x96CD, 0xBF4E, 0x96CE, 0xBF4F, 0x96CF, 0xBF52, 0x96D0, 0xBF53, 0x96D1, 0xBF54, 0x96D2, 0xBF56, + 0x96D3, 0xBF57, 0x96D4, 0xBF58, 0x96D5, 0xBF59, 0x96D6, 0xBF5A, 0x96D7, 0xBF5B, 0x96D8, 0xBF5C, 0x96D9, 0xBF5D, 0x96DA, 0xBF5E, + 0x96DB, 0xBF5F, 0x96DC, 0xBF60, 0x96DD, 0xBF61, 0x96DE, 0xBF62, 0x96DF, 0xBF63, 0x96E0, 0xBF64, 0x96E1, 0xBF65, 0x96E2, 0xBF66, + 0x96E3, 0xBF67, 0x96E4, 0xBF68, 0x96E5, 0xBF69, 0x96E6, 0xBF6A, 0x96E7, 0xBF6B, 0x96E8, 0xBF6C, 0x96E9, 0xBF6D, 0x96EA, 0xBF6E, + 0x96EB, 0xBF6F, 0x96EC, 0xBF70, 0x96ED, 0xBF71, 0x96EE, 0xBF72, 0x96EF, 0xBF73, 0x96F0, 0xBF74, 0x96F1, 0xBF75, 0x96F2, 0xBF76, + 0x96F3, 0xBF77, 0x96F4, 0xBF78, 0x96F5, 0xBF79, 0x96F6, 0xBF7A, 0x96F7, 0xBF7B, 0x96F8, 0xBF7C, 0x96F9, 0xBF7D, 0x96FA, 0xBF7E, + 0x96FB, 0xBF7F, 0x96FC, 0xBF80, 0x96FD, 0xBF81, 0x96FE, 0xBF82, 0x9741, 0xBF83, 0x9742, 0xBF84, 0x9743, 0xBF85, 0x9744, 0xBF86, + 0x9745, 0xBF87, 0x9746, 0xBF88, 0x9747, 0xBF89, 0x9748, 0xBF8A, 0x9749, 0xBF8B, 0x974A, 0xBF8C, 0x974B, 0xBF8D, 0x974C, 0xBF8E, + 0x974D, 0xBF8F, 0x974E, 0xBF90, 0x974F, 0xBF91, 0x9750, 0xBF92, 0x9751, 0xBF93, 0x9752, 0xBF95, 0x9753, 0xBF96, 0x9754, 0xBF97, + 0x9755, 0xBF98, 0x9756, 0xBF99, 0x9757, 0xBF9A, 0x9758, 0xBF9B, 0x9759, 0xBF9C, 0x975A, 0xBF9D, 0x9761, 0xBF9E, 0x9762, 0xBF9F, + 0x9763, 0xBFA0, 0x9764, 0xBFA1, 0x9765, 0xBFA2, 0x9766, 0xBFA3, 0x9767, 0xBFA4, 0x9768, 0xBFA5, 0x9769, 0xBFA6, 0x976A, 0xBFA7, + 0x976B, 0xBFA8, 0x976C, 0xBFA9, 0x976D, 0xBFAA, 0x976E, 0xBFAB, 0x976F, 0xBFAC, 0x9770, 0xBFAD, 0x9771, 0xBFAE, 0x9772, 0xBFAF, + 0x9773, 0xBFB1, 0x9774, 0xBFB2, 0x9775, 0xBFB3, 0x9776, 0xBFB4, 0x9777, 0xBFB5, 0x9778, 0xBFB6, 0x9779, 0xBFB7, 0x977A, 0xBFB8, + 0x9781, 0xBFB9, 0x9782, 0xBFBA, 0x9783, 0xBFBB, 0x9784, 0xBFBC, 0x9785, 0xBFBD, 0x9786, 0xBFBE, 0x9787, 0xBFBF, 0x9788, 0xBFC0, + 0x9789, 0xBFC1, 0x978A, 0xBFC2, 0x978B, 0xBFC3, 0x978C, 0xBFC4, 0x978D, 0xBFC6, 0x978E, 0xBFC7, 0x978F, 0xBFC8, 0x9790, 0xBFC9, + 0x9791, 0xBFCA, 0x9792, 0xBFCB, 0x9793, 0xBFCE, 0x9794, 0xBFCF, 0x9795, 0xBFD1, 0x9796, 0xBFD2, 0x9797, 0xBFD3, 0x9798, 0xBFD5, + 0x9799, 0xBFD6, 0x979A, 0xBFD7, 0x979B, 0xBFD8, 0x979C, 0xBFD9, 0x979D, 0xBFDA, 0x979E, 0xBFDB, 0x979F, 0xBFDD, 0x97A0, 0xBFDE, + 0x97A1, 0xBFE0, 0x97A2, 0xBFE2, 0x97A3, 0xBFE3, 0x97A4, 0xBFE4, 0x97A5, 0xBFE5, 0x97A6, 0xBFE6, 0x97A7, 0xBFE7, 0x97A8, 0xBFE8, + 0x97A9, 0xBFE9, 0x97AA, 0xBFEA, 0x97AB, 0xBFEB, 0x97AC, 0xBFEC, 0x97AD, 0xBFED, 0x97AE, 0xBFEE, 0x97AF, 0xBFEF, 0x97B0, 0xBFF0, + 0x97B1, 0xBFF1, 0x97B2, 0xBFF2, 0x97B3, 0xBFF3, 0x97B4, 0xBFF4, 0x97B5, 0xBFF5, 0x97B6, 0xBFF6, 0x97B7, 0xBFF7, 0x97B8, 0xBFF8, + 0x97B9, 0xBFF9, 0x97BA, 0xBFFA, 0x97BB, 0xBFFB, 0x97BC, 0xBFFC, 0x97BD, 0xBFFD, 0x97BE, 0xBFFE, 0x97BF, 0xBFFF, 0x97C0, 0xC000, + 0x97C1, 0xC001, 0x97C2, 0xC002, 0x97C3, 0xC003, 0x97C4, 0xC004, 0x97C5, 0xC005, 0x97C6, 0xC006, 0x97C7, 0xC007, 0x97C8, 0xC008, + 0x97C9, 0xC009, 0x97CA, 0xC00A, 0x97CB, 0xC00B, 0x97CC, 0xC00C, 0x97CD, 0xC00D, 0x97CE, 0xC00E, 0x97CF, 0xC00F, 0x97D0, 0xC010, + 0x97D1, 0xC011, 0x97D2, 0xC012, 0x97D3, 0xC013, 0x97D4, 0xC014, 0x97D5, 0xC015, 0x97D6, 0xC016, 0x97D7, 0xC017, 0x97D8, 0xC018, + 0x97D9, 0xC019, 0x97DA, 0xC01A, 0x97DB, 0xC01B, 0x97DC, 0xC01C, 0x97DD, 0xC01D, 0x97DE, 0xC01E, 0x97DF, 0xC01F, 0x97E0, 0xC020, + 0x97E1, 0xC021, 0x97E2, 0xC022, 0x97E3, 0xC023, 0x97E4, 0xC024, 0x97E5, 0xC025, 0x97E6, 0xC026, 0x97E7, 0xC027, 0x97E8, 0xC028, + 0x97E9, 0xC029, 0x97EA, 0xC02A, 0x97EB, 0xC02B, 0x97EC, 0xC02C, 0x97ED, 0xC02D, 0x97EE, 0xC02E, 0x97EF, 0xC02F, 0x97F0, 0xC030, + 0x97F1, 0xC031, 0x97F2, 0xC032, 0x97F3, 0xC033, 0x97F4, 0xC034, 0x97F5, 0xC035, 0x97F6, 0xC036, 0x97F7, 0xC037, 0x97F8, 0xC038, + 0x97F9, 0xC039, 0x97FA, 0xC03A, 0x97FB, 0xC03B, 0x97FC, 0xC03D, 0x97FD, 0xC03E, 0x97FE, 0xC03F, 0x9841, 0xC040, 0x9842, 0xC041, + 0x9843, 0xC042, 0x9844, 0xC043, 0x9845, 0xC044, 0x9846, 0xC045, 0x9847, 0xC046, 0x9848, 0xC047, 0x9849, 0xC048, 0x984A, 0xC049, + 0x984B, 0xC04A, 0x984C, 0xC04B, 0x984D, 0xC04C, 0x984E, 0xC04D, 0x984F, 0xC04E, 0x9850, 0xC04F, 0x9851, 0xC050, 0x9852, 0xC052, + 0x9853, 0xC053, 0x9854, 0xC054, 0x9855, 0xC055, 0x9856, 0xC056, 0x9857, 0xC057, 0x9858, 0xC059, 0x9859, 0xC05A, 0x985A, 0xC05B, + 0x9861, 0xC05D, 0x9862, 0xC05E, 0x9863, 0xC05F, 0x9864, 0xC061, 0x9865, 0xC062, 0x9866, 0xC063, 0x9867, 0xC064, 0x9868, 0xC065, + 0x9869, 0xC066, 0x986A, 0xC067, 0x986B, 0xC06A, 0x986C, 0xC06B, 0x986D, 0xC06C, 0x986E, 0xC06D, 0x986F, 0xC06E, 0x9870, 0xC06F, + 0x9871, 0xC070, 0x9872, 0xC071, 0x9873, 0xC072, 0x9874, 0xC073, 0x9875, 0xC074, 0x9876, 0xC075, 0x9877, 0xC076, 0x9878, 0xC077, + 0x9879, 0xC078, 0x987A, 0xC079, 0x9881, 0xC07A, 0x9882, 0xC07B, 0x9883, 0xC07C, 0x9884, 0xC07D, 0x9885, 0xC07E, 0x9886, 0xC07F, + 0x9887, 0xC080, 0x9888, 0xC081, 0x9889, 0xC082, 0x988A, 0xC083, 0x988B, 0xC084, 0x988C, 0xC085, 0x988D, 0xC086, 0x988E, 0xC087, + 0x988F, 0xC088, 0x9890, 0xC089, 0x9891, 0xC08A, 0x9892, 0xC08B, 0x9893, 0xC08C, 0x9894, 0xC08D, 0x9895, 0xC08E, 0x9896, 0xC08F, + 0x9897, 0xC092, 0x9898, 0xC093, 0x9899, 0xC095, 0x989A, 0xC096, 0x989B, 0xC097, 0x989C, 0xC099, 0x989D, 0xC09A, 0x989E, 0xC09B, + 0x989F, 0xC09C, 0x98A0, 0xC09D, 0x98A1, 0xC09E, 0x98A2, 0xC09F, 0x98A3, 0xC0A2, 0x98A4, 0xC0A4, 0x98A5, 0xC0A6, 0x98A6, 0xC0A7, + 0x98A7, 0xC0A8, 0x98A8, 0xC0A9, 0x98A9, 0xC0AA, 0x98AA, 0xC0AB, 0x98AB, 0xC0AE, 0x98AC, 0xC0B1, 0x98AD, 0xC0B2, 0x98AE, 0xC0B7, + 0x98AF, 0xC0B8, 0x98B0, 0xC0B9, 0x98B1, 0xC0BA, 0x98B2, 0xC0BB, 0x98B3, 0xC0BE, 0x98B4, 0xC0C2, 0x98B5, 0xC0C3, 0x98B6, 0xC0C4, + 0x98B7, 0xC0C6, 0x98B8, 0xC0C7, 0x98B9, 0xC0CA, 0x98BA, 0xC0CB, 0x98BB, 0xC0CD, 0x98BC, 0xC0CE, 0x98BD, 0xC0CF, 0x98BE, 0xC0D1, + 0x98BF, 0xC0D2, 0x98C0, 0xC0D3, 0x98C1, 0xC0D4, 0x98C2, 0xC0D5, 0x98C3, 0xC0D6, 0x98C4, 0xC0D7, 0x98C5, 0xC0DA, 0x98C6, 0xC0DE, + 0x98C7, 0xC0DF, 0x98C8, 0xC0E0, 0x98C9, 0xC0E1, 0x98CA, 0xC0E2, 0x98CB, 0xC0E3, 0x98CC, 0xC0E6, 0x98CD, 0xC0E7, 0x98CE, 0xC0E9, + 0x98CF, 0xC0EA, 0x98D0, 0xC0EB, 0x98D1, 0xC0ED, 0x98D2, 0xC0EE, 0x98D3, 0xC0EF, 0x98D4, 0xC0F0, 0x98D5, 0xC0F1, 0x98D6, 0xC0F2, + 0x98D7, 0xC0F3, 0x98D8, 0xC0F6, 0x98D9, 0xC0F8, 0x98DA, 0xC0FA, 0x98DB, 0xC0FB, 0x98DC, 0xC0FC, 0x98DD, 0xC0FD, 0x98DE, 0xC0FE, + 0x98DF, 0xC0FF, 0x98E0, 0xC101, 0x98E1, 0xC102, 0x98E2, 0xC103, 0x98E3, 0xC105, 0x98E4, 0xC106, 0x98E5, 0xC107, 0x98E6, 0xC109, + 0x98E7, 0xC10A, 0x98E8, 0xC10B, 0x98E9, 0xC10C, 0x98EA, 0xC10D, 0x98EB, 0xC10E, 0x98EC, 0xC10F, 0x98ED, 0xC111, 0x98EE, 0xC112, + 0x98EF, 0xC113, 0x98F0, 0xC114, 0x98F1, 0xC116, 0x98F2, 0xC117, 0x98F3, 0xC118, 0x98F4, 0xC119, 0x98F5, 0xC11A, 0x98F6, 0xC11B, + 0x98F7, 0xC121, 0x98F8, 0xC122, 0x98F9, 0xC125, 0x98FA, 0xC128, 0x98FB, 0xC129, 0x98FC, 0xC12A, 0x98FD, 0xC12B, 0x98FE, 0xC12E, + 0x9941, 0xC132, 0x9942, 0xC133, 0x9943, 0xC134, 0x9944, 0xC135, 0x9945, 0xC137, 0x9946, 0xC13A, 0x9947, 0xC13B, 0x9948, 0xC13D, + 0x9949, 0xC13E, 0x994A, 0xC13F, 0x994B, 0xC141, 0x994C, 0xC142, 0x994D, 0xC143, 0x994E, 0xC144, 0x994F, 0xC145, 0x9950, 0xC146, + 0x9951, 0xC147, 0x9952, 0xC14A, 0x9953, 0xC14E, 0x9954, 0xC14F, 0x9955, 0xC150, 0x9956, 0xC151, 0x9957, 0xC152, 0x9958, 0xC153, + 0x9959, 0xC156, 0x995A, 0xC157, 0x9961, 0xC159, 0x9962, 0xC15A, 0x9963, 0xC15B, 0x9964, 0xC15D, 0x9965, 0xC15E, 0x9966, 0xC15F, + 0x9967, 0xC160, 0x9968, 0xC161, 0x9969, 0xC162, 0x996A, 0xC163, 0x996B, 0xC166, 0x996C, 0xC16A, 0x996D, 0xC16B, 0x996E, 0xC16C, + 0x996F, 0xC16D, 0x9970, 0xC16E, 0x9971, 0xC16F, 0x9972, 0xC171, 0x9973, 0xC172, 0x9974, 0xC173, 0x9975, 0xC175, 0x9976, 0xC176, + 0x9977, 0xC177, 0x9978, 0xC179, 0x9979, 0xC17A, 0x997A, 0xC17B, 0x9981, 0xC17C, 0x9982, 0xC17D, 0x9983, 0xC17E, 0x9984, 0xC17F, + 0x9985, 0xC180, 0x9986, 0xC181, 0x9987, 0xC182, 0x9988, 0xC183, 0x9989, 0xC184, 0x998A, 0xC186, 0x998B, 0xC187, 0x998C, 0xC188, + 0x998D, 0xC189, 0x998E, 0xC18A, 0x998F, 0xC18B, 0x9990, 0xC18F, 0x9991, 0xC191, 0x9992, 0xC192, 0x9993, 0xC193, 0x9994, 0xC195, + 0x9995, 0xC197, 0x9996, 0xC198, 0x9997, 0xC199, 0x9998, 0xC19A, 0x9999, 0xC19B, 0x999A, 0xC19E, 0x999B, 0xC1A0, 0x999C, 0xC1A2, + 0x999D, 0xC1A3, 0x999E, 0xC1A4, 0x999F, 0xC1A6, 0x99A0, 0xC1A7, 0x99A1, 0xC1AA, 0x99A2, 0xC1AB, 0x99A3, 0xC1AD, 0x99A4, 0xC1AE, + 0x99A5, 0xC1AF, 0x99A6, 0xC1B1, 0x99A7, 0xC1B2, 0x99A8, 0xC1B3, 0x99A9, 0xC1B4, 0x99AA, 0xC1B5, 0x99AB, 0xC1B6, 0x99AC, 0xC1B7, + 0x99AD, 0xC1B8, 0x99AE, 0xC1B9, 0x99AF, 0xC1BA, 0x99B0, 0xC1BB, 0x99B1, 0xC1BC, 0x99B2, 0xC1BE, 0x99B3, 0xC1BF, 0x99B4, 0xC1C0, + 0x99B5, 0xC1C1, 0x99B6, 0xC1C2, 0x99B7, 0xC1C3, 0x99B8, 0xC1C5, 0x99B9, 0xC1C6, 0x99BA, 0xC1C7, 0x99BB, 0xC1C9, 0x99BC, 0xC1CA, + 0x99BD, 0xC1CB, 0x99BE, 0xC1CD, 0x99BF, 0xC1CE, 0x99C0, 0xC1CF, 0x99C1, 0xC1D0, 0x99C2, 0xC1D1, 0x99C3, 0xC1D2, 0x99C4, 0xC1D3, + 0x99C5, 0xC1D5, 0x99C6, 0xC1D6, 0x99C7, 0xC1D9, 0x99C8, 0xC1DA, 0x99C9, 0xC1DB, 0x99CA, 0xC1DC, 0x99CB, 0xC1DD, 0x99CC, 0xC1DE, + 0x99CD, 0xC1DF, 0x99CE, 0xC1E1, 0x99CF, 0xC1E2, 0x99D0, 0xC1E3, 0x99D1, 0xC1E5, 0x99D2, 0xC1E6, 0x99D3, 0xC1E7, 0x99D4, 0xC1E9, + 0x99D5, 0xC1EA, 0x99D6, 0xC1EB, 0x99D7, 0xC1EC, 0x99D8, 0xC1ED, 0x99D9, 0xC1EE, 0x99DA, 0xC1EF, 0x99DB, 0xC1F2, 0x99DC, 0xC1F4, + 0x99DD, 0xC1F5, 0x99DE, 0xC1F6, 0x99DF, 0xC1F7, 0x99E0, 0xC1F8, 0x99E1, 0xC1F9, 0x99E2, 0xC1FA, 0x99E3, 0xC1FB, 0x99E4, 0xC1FE, + 0x99E5, 0xC1FF, 0x99E6, 0xC201, 0x99E7, 0xC202, 0x99E8, 0xC203, 0x99E9, 0xC205, 0x99EA, 0xC206, 0x99EB, 0xC207, 0x99EC, 0xC208, + 0x99ED, 0xC209, 0x99EE, 0xC20A, 0x99EF, 0xC20B, 0x99F0, 0xC20E, 0x99F1, 0xC210, 0x99F2, 0xC212, 0x99F3, 0xC213, 0x99F4, 0xC214, + 0x99F5, 0xC215, 0x99F6, 0xC216, 0x99F7, 0xC217, 0x99F8, 0xC21A, 0x99F9, 0xC21B, 0x99FA, 0xC21D, 0x99FB, 0xC21E, 0x99FC, 0xC221, + 0x99FD, 0xC222, 0x99FE, 0xC223, 0x9A41, 0xC224, 0x9A42, 0xC225, 0x9A43, 0xC226, 0x9A44, 0xC227, 0x9A45, 0xC22A, 0x9A46, 0xC22C, + 0x9A47, 0xC22E, 0x9A48, 0xC230, 0x9A49, 0xC233, 0x9A4A, 0xC235, 0x9A4B, 0xC236, 0x9A4C, 0xC237, 0x9A4D, 0xC238, 0x9A4E, 0xC239, + 0x9A4F, 0xC23A, 0x9A50, 0xC23B, 0x9A51, 0xC23C, 0x9A52, 0xC23D, 0x9A53, 0xC23E, 0x9A54, 0xC23F, 0x9A55, 0xC240, 0x9A56, 0xC241, + 0x9A57, 0xC242, 0x9A58, 0xC243, 0x9A59, 0xC244, 0x9A5A, 0xC245, 0x9A61, 0xC246, 0x9A62, 0xC247, 0x9A63, 0xC249, 0x9A64, 0xC24A, + 0x9A65, 0xC24B, 0x9A66, 0xC24C, 0x9A67, 0xC24D, 0x9A68, 0xC24E, 0x9A69, 0xC24F, 0x9A6A, 0xC252, 0x9A6B, 0xC253, 0x9A6C, 0xC255, + 0x9A6D, 0xC256, 0x9A6E, 0xC257, 0x9A6F, 0xC259, 0x9A70, 0xC25A, 0x9A71, 0xC25B, 0x9A72, 0xC25C, 0x9A73, 0xC25D, 0x9A74, 0xC25E, + 0x9A75, 0xC25F, 0x9A76, 0xC261, 0x9A77, 0xC262, 0x9A78, 0xC263, 0x9A79, 0xC264, 0x9A7A, 0xC266, 0x9A81, 0xC267, 0x9A82, 0xC268, + 0x9A83, 0xC269, 0x9A84, 0xC26A, 0x9A85, 0xC26B, 0x9A86, 0xC26E, 0x9A87, 0xC26F, 0x9A88, 0xC271, 0x9A89, 0xC272, 0x9A8A, 0xC273, + 0x9A8B, 0xC275, 0x9A8C, 0xC276, 0x9A8D, 0xC277, 0x9A8E, 0xC278, 0x9A8F, 0xC279, 0x9A90, 0xC27A, 0x9A91, 0xC27B, 0x9A92, 0xC27E, + 0x9A93, 0xC280, 0x9A94, 0xC282, 0x9A95, 0xC283, 0x9A96, 0xC284, 0x9A97, 0xC285, 0x9A98, 0xC286, 0x9A99, 0xC287, 0x9A9A, 0xC28A, + 0x9A9B, 0xC28B, 0x9A9C, 0xC28C, 0x9A9D, 0xC28D, 0x9A9E, 0xC28E, 0x9A9F, 0xC28F, 0x9AA0, 0xC291, 0x9AA1, 0xC292, 0x9AA2, 0xC293, + 0x9AA3, 0xC294, 0x9AA4, 0xC295, 0x9AA5, 0xC296, 0x9AA6, 0xC297, 0x9AA7, 0xC299, 0x9AA8, 0xC29A, 0x9AA9, 0xC29C, 0x9AAA, 0xC29E, + 0x9AAB, 0xC29F, 0x9AAC, 0xC2A0, 0x9AAD, 0xC2A1, 0x9AAE, 0xC2A2, 0x9AAF, 0xC2A3, 0x9AB0, 0xC2A6, 0x9AB1, 0xC2A7, 0x9AB2, 0xC2A9, + 0x9AB3, 0xC2AA, 0x9AB4, 0xC2AB, 0x9AB5, 0xC2AE, 0x9AB6, 0xC2AF, 0x9AB7, 0xC2B0, 0x9AB8, 0xC2B1, 0x9AB9, 0xC2B2, 0x9ABA, 0xC2B3, + 0x9ABB, 0xC2B6, 0x9ABC, 0xC2B8, 0x9ABD, 0xC2BA, 0x9ABE, 0xC2BB, 0x9ABF, 0xC2BC, 0x9AC0, 0xC2BD, 0x9AC1, 0xC2BE, 0x9AC2, 0xC2BF, + 0x9AC3, 0xC2C0, 0x9AC4, 0xC2C1, 0x9AC5, 0xC2C2, 0x9AC6, 0xC2C3, 0x9AC7, 0xC2C4, 0x9AC8, 0xC2C5, 0x9AC9, 0xC2C6, 0x9ACA, 0xC2C7, + 0x9ACB, 0xC2C8, 0x9ACC, 0xC2C9, 0x9ACD, 0xC2CA, 0x9ACE, 0xC2CB, 0x9ACF, 0xC2CC, 0x9AD0, 0xC2CD, 0x9AD1, 0xC2CE, 0x9AD2, 0xC2CF, + 0x9AD3, 0xC2D0, 0x9AD4, 0xC2D1, 0x9AD5, 0xC2D2, 0x9AD6, 0xC2D3, 0x9AD7, 0xC2D4, 0x9AD8, 0xC2D5, 0x9AD9, 0xC2D6, 0x9ADA, 0xC2D7, + 0x9ADB, 0xC2D8, 0x9ADC, 0xC2D9, 0x9ADD, 0xC2DA, 0x9ADE, 0xC2DB, 0x9ADF, 0xC2DE, 0x9AE0, 0xC2DF, 0x9AE1, 0xC2E1, 0x9AE2, 0xC2E2, + 0x9AE3, 0xC2E5, 0x9AE4, 0xC2E6, 0x9AE5, 0xC2E7, 0x9AE6, 0xC2E8, 0x9AE7, 0xC2E9, 0x9AE8, 0xC2EA, 0x9AE9, 0xC2EE, 0x9AEA, 0xC2F0, + 0x9AEB, 0xC2F2, 0x9AEC, 0xC2F3, 0x9AED, 0xC2F4, 0x9AEE, 0xC2F5, 0x9AEF, 0xC2F7, 0x9AF0, 0xC2FA, 0x9AF1, 0xC2FD, 0x9AF2, 0xC2FE, + 0x9AF3, 0xC2FF, 0x9AF4, 0xC301, 0x9AF5, 0xC302, 0x9AF6, 0xC303, 0x9AF7, 0xC304, 0x9AF8, 0xC305, 0x9AF9, 0xC306, 0x9AFA, 0xC307, + 0x9AFB, 0xC30A, 0x9AFC, 0xC30B, 0x9AFD, 0xC30E, 0x9AFE, 0xC30F, 0x9B41, 0xC310, 0x9B42, 0xC311, 0x9B43, 0xC312, 0x9B44, 0xC316, + 0x9B45, 0xC317, 0x9B46, 0xC319, 0x9B47, 0xC31A, 0x9B48, 0xC31B, 0x9B49, 0xC31D, 0x9B4A, 0xC31E, 0x9B4B, 0xC31F, 0x9B4C, 0xC320, + 0x9B4D, 0xC321, 0x9B4E, 0xC322, 0x9B4F, 0xC323, 0x9B50, 0xC326, 0x9B51, 0xC327, 0x9B52, 0xC32A, 0x9B53, 0xC32B, 0x9B54, 0xC32C, + 0x9B55, 0xC32D, 0x9B56, 0xC32E, 0x9B57, 0xC32F, 0x9B58, 0xC330, 0x9B59, 0xC331, 0x9B5A, 0xC332, 0x9B61, 0xC333, 0x9B62, 0xC334, + 0x9B63, 0xC335, 0x9B64, 0xC336, 0x9B65, 0xC337, 0x9B66, 0xC338, 0x9B67, 0xC339, 0x9B68, 0xC33A, 0x9B69, 0xC33B, 0x9B6A, 0xC33C, + 0x9B6B, 0xC33D, 0x9B6C, 0xC33E, 0x9B6D, 0xC33F, 0x9B6E, 0xC340, 0x9B6F, 0xC341, 0x9B70, 0xC342, 0x9B71, 0xC343, 0x9B72, 0xC344, + 0x9B73, 0xC346, 0x9B74, 0xC347, 0x9B75, 0xC348, 0x9B76, 0xC349, 0x9B77, 0xC34A, 0x9B78, 0xC34B, 0x9B79, 0xC34C, 0x9B7A, 0xC34D, + 0x9B81, 0xC34E, 0x9B82, 0xC34F, 0x9B83, 0xC350, 0x9B84, 0xC351, 0x9B85, 0xC352, 0x9B86, 0xC353, 0x9B87, 0xC354, 0x9B88, 0xC355, + 0x9B89, 0xC356, 0x9B8A, 0xC357, 0x9B8B, 0xC358, 0x9B8C, 0xC359, 0x9B8D, 0xC35A, 0x9B8E, 0xC35B, 0x9B8F, 0xC35C, 0x9B90, 0xC35D, + 0x9B91, 0xC35E, 0x9B92, 0xC35F, 0x9B93, 0xC360, 0x9B94, 0xC361, 0x9B95, 0xC362, 0x9B96, 0xC363, 0x9B97, 0xC364, 0x9B98, 0xC365, + 0x9B99, 0xC366, 0x9B9A, 0xC367, 0x9B9B, 0xC36A, 0x9B9C, 0xC36B, 0x9B9D, 0xC36D, 0x9B9E, 0xC36E, 0x9B9F, 0xC36F, 0x9BA0, 0xC371, + 0x9BA1, 0xC373, 0x9BA2, 0xC374, 0x9BA3, 0xC375, 0x9BA4, 0xC376, 0x9BA5, 0xC377, 0x9BA6, 0xC37A, 0x9BA7, 0xC37B, 0x9BA8, 0xC37E, + 0x9BA9, 0xC37F, 0x9BAA, 0xC380, 0x9BAB, 0xC381, 0x9BAC, 0xC382, 0x9BAD, 0xC383, 0x9BAE, 0xC385, 0x9BAF, 0xC386, 0x9BB0, 0xC387, + 0x9BB1, 0xC389, 0x9BB2, 0xC38A, 0x9BB3, 0xC38B, 0x9BB4, 0xC38D, 0x9BB5, 0xC38E, 0x9BB6, 0xC38F, 0x9BB7, 0xC390, 0x9BB8, 0xC391, + 0x9BB9, 0xC392, 0x9BBA, 0xC393, 0x9BBB, 0xC394, 0x9BBC, 0xC395, 0x9BBD, 0xC396, 0x9BBE, 0xC397, 0x9BBF, 0xC398, 0x9BC0, 0xC399, + 0x9BC1, 0xC39A, 0x9BC2, 0xC39B, 0x9BC3, 0xC39C, 0x9BC4, 0xC39D, 0x9BC5, 0xC39E, 0x9BC6, 0xC39F, 0x9BC7, 0xC3A0, 0x9BC8, 0xC3A1, + 0x9BC9, 0xC3A2, 0x9BCA, 0xC3A3, 0x9BCB, 0xC3A4, 0x9BCC, 0xC3A5, 0x9BCD, 0xC3A6, 0x9BCE, 0xC3A7, 0x9BCF, 0xC3A8, 0x9BD0, 0xC3A9, + 0x9BD1, 0xC3AA, 0x9BD2, 0xC3AB, 0x9BD3, 0xC3AC, 0x9BD4, 0xC3AD, 0x9BD5, 0xC3AE, 0x9BD6, 0xC3AF, 0x9BD7, 0xC3B0, 0x9BD8, 0xC3B1, + 0x9BD9, 0xC3B2, 0x9BDA, 0xC3B3, 0x9BDB, 0xC3B4, 0x9BDC, 0xC3B5, 0x9BDD, 0xC3B6, 0x9BDE, 0xC3B7, 0x9BDF, 0xC3B8, 0x9BE0, 0xC3B9, + 0x9BE1, 0xC3BA, 0x9BE2, 0xC3BB, 0x9BE3, 0xC3BC, 0x9BE4, 0xC3BD, 0x9BE5, 0xC3BE, 0x9BE6, 0xC3BF, 0x9BE7, 0xC3C1, 0x9BE8, 0xC3C2, + 0x9BE9, 0xC3C3, 0x9BEA, 0xC3C4, 0x9BEB, 0xC3C5, 0x9BEC, 0xC3C6, 0x9BED, 0xC3C7, 0x9BEE, 0xC3C8, 0x9BEF, 0xC3C9, 0x9BF0, 0xC3CA, + 0x9BF1, 0xC3CB, 0x9BF2, 0xC3CC, 0x9BF3, 0xC3CD, 0x9BF4, 0xC3CE, 0x9BF5, 0xC3CF, 0x9BF6, 0xC3D0, 0x9BF7, 0xC3D1, 0x9BF8, 0xC3D2, + 0x9BF9, 0xC3D3, 0x9BFA, 0xC3D4, 0x9BFB, 0xC3D5, 0x9BFC, 0xC3D6, 0x9BFD, 0xC3D7, 0x9BFE, 0xC3DA, 0x9C41, 0xC3DB, 0x9C42, 0xC3DD, + 0x9C43, 0xC3DE, 0x9C44, 0xC3E1, 0x9C45, 0xC3E3, 0x9C46, 0xC3E4, 0x9C47, 0xC3E5, 0x9C48, 0xC3E6, 0x9C49, 0xC3E7, 0x9C4A, 0xC3EA, + 0x9C4B, 0xC3EB, 0x9C4C, 0xC3EC, 0x9C4D, 0xC3EE, 0x9C4E, 0xC3EF, 0x9C4F, 0xC3F0, 0x9C50, 0xC3F1, 0x9C51, 0xC3F2, 0x9C52, 0xC3F3, + 0x9C53, 0xC3F6, 0x9C54, 0xC3F7, 0x9C55, 0xC3F9, 0x9C56, 0xC3FA, 0x9C57, 0xC3FB, 0x9C58, 0xC3FC, 0x9C59, 0xC3FD, 0x9C5A, 0xC3FE, + 0x9C61, 0xC3FF, 0x9C62, 0xC400, 0x9C63, 0xC401, 0x9C64, 0xC402, 0x9C65, 0xC403, 0x9C66, 0xC404, 0x9C67, 0xC405, 0x9C68, 0xC406, + 0x9C69, 0xC407, 0x9C6A, 0xC409, 0x9C6B, 0xC40A, 0x9C6C, 0xC40B, 0x9C6D, 0xC40C, 0x9C6E, 0xC40D, 0x9C6F, 0xC40E, 0x9C70, 0xC40F, + 0x9C71, 0xC411, 0x9C72, 0xC412, 0x9C73, 0xC413, 0x9C74, 0xC414, 0x9C75, 0xC415, 0x9C76, 0xC416, 0x9C77, 0xC417, 0x9C78, 0xC418, + 0x9C79, 0xC419, 0x9C7A, 0xC41A, 0x9C81, 0xC41B, 0x9C82, 0xC41C, 0x9C83, 0xC41D, 0x9C84, 0xC41E, 0x9C85, 0xC41F, 0x9C86, 0xC420, + 0x9C87, 0xC421, 0x9C88, 0xC422, 0x9C89, 0xC423, 0x9C8A, 0xC425, 0x9C8B, 0xC426, 0x9C8C, 0xC427, 0x9C8D, 0xC428, 0x9C8E, 0xC429, + 0x9C8F, 0xC42A, 0x9C90, 0xC42B, 0x9C91, 0xC42D, 0x9C92, 0xC42E, 0x9C93, 0xC42F, 0x9C94, 0xC431, 0x9C95, 0xC432, 0x9C96, 0xC433, + 0x9C97, 0xC435, 0x9C98, 0xC436, 0x9C99, 0xC437, 0x9C9A, 0xC438, 0x9C9B, 0xC439, 0x9C9C, 0xC43A, 0x9C9D, 0xC43B, 0x9C9E, 0xC43E, + 0x9C9F, 0xC43F, 0x9CA0, 0xC440, 0x9CA1, 0xC441, 0x9CA2, 0xC442, 0x9CA3, 0xC443, 0x9CA4, 0xC444, 0x9CA5, 0xC445, 0x9CA6, 0xC446, + 0x9CA7, 0xC447, 0x9CA8, 0xC449, 0x9CA9, 0xC44A, 0x9CAA, 0xC44B, 0x9CAB, 0xC44C, 0x9CAC, 0xC44D, 0x9CAD, 0xC44E, 0x9CAE, 0xC44F, + 0x9CAF, 0xC450, 0x9CB0, 0xC451, 0x9CB1, 0xC452, 0x9CB2, 0xC453, 0x9CB3, 0xC454, 0x9CB4, 0xC455, 0x9CB5, 0xC456, 0x9CB6, 0xC457, + 0x9CB7, 0xC458, 0x9CB8, 0xC459, 0x9CB9, 0xC45A, 0x9CBA, 0xC45B, 0x9CBB, 0xC45C, 0x9CBC, 0xC45D, 0x9CBD, 0xC45E, 0x9CBE, 0xC45F, + 0x9CBF, 0xC460, 0x9CC0, 0xC461, 0x9CC1, 0xC462, 0x9CC2, 0xC463, 0x9CC3, 0xC466, 0x9CC4, 0xC467, 0x9CC5, 0xC469, 0x9CC6, 0xC46A, + 0x9CC7, 0xC46B, 0x9CC8, 0xC46D, 0x9CC9, 0xC46E, 0x9CCA, 0xC46F, 0x9CCB, 0xC470, 0x9CCC, 0xC471, 0x9CCD, 0xC472, 0x9CCE, 0xC473, + 0x9CCF, 0xC476, 0x9CD0, 0xC477, 0x9CD1, 0xC478, 0x9CD2, 0xC47A, 0x9CD3, 0xC47B, 0x9CD4, 0xC47C, 0x9CD5, 0xC47D, 0x9CD6, 0xC47E, + 0x9CD7, 0xC47F, 0x9CD8, 0xC481, 0x9CD9, 0xC482, 0x9CDA, 0xC483, 0x9CDB, 0xC484, 0x9CDC, 0xC485, 0x9CDD, 0xC486, 0x9CDE, 0xC487, + 0x9CDF, 0xC488, 0x9CE0, 0xC489, 0x9CE1, 0xC48A, 0x9CE2, 0xC48B, 0x9CE3, 0xC48C, 0x9CE4, 0xC48D, 0x9CE5, 0xC48E, 0x9CE6, 0xC48F, + 0x9CE7, 0xC490, 0x9CE8, 0xC491, 0x9CE9, 0xC492, 0x9CEA, 0xC493, 0x9CEB, 0xC495, 0x9CEC, 0xC496, 0x9CED, 0xC497, 0x9CEE, 0xC498, + 0x9CEF, 0xC499, 0x9CF0, 0xC49A, 0x9CF1, 0xC49B, 0x9CF2, 0xC49D, 0x9CF3, 0xC49E, 0x9CF4, 0xC49F, 0x9CF5, 0xC4A0, 0x9CF6, 0xC4A1, + 0x9CF7, 0xC4A2, 0x9CF8, 0xC4A3, 0x9CF9, 0xC4A4, 0x9CFA, 0xC4A5, 0x9CFB, 0xC4A6, 0x9CFC, 0xC4A7, 0x9CFD, 0xC4A8, 0x9CFE, 0xC4A9, + 0x9D41, 0xC4AA, 0x9D42, 0xC4AB, 0x9D43, 0xC4AC, 0x9D44, 0xC4AD, 0x9D45, 0xC4AE, 0x9D46, 0xC4AF, 0x9D47, 0xC4B0, 0x9D48, 0xC4B1, + 0x9D49, 0xC4B2, 0x9D4A, 0xC4B3, 0x9D4B, 0xC4B4, 0x9D4C, 0xC4B5, 0x9D4D, 0xC4B6, 0x9D4E, 0xC4B7, 0x9D4F, 0xC4B9, 0x9D50, 0xC4BA, + 0x9D51, 0xC4BB, 0x9D52, 0xC4BD, 0x9D53, 0xC4BE, 0x9D54, 0xC4BF, 0x9D55, 0xC4C0, 0x9D56, 0xC4C1, 0x9D57, 0xC4C2, 0x9D58, 0xC4C3, + 0x9D59, 0xC4C4, 0x9D5A, 0xC4C5, 0x9D61, 0xC4C6, 0x9D62, 0xC4C7, 0x9D63, 0xC4C8, 0x9D64, 0xC4C9, 0x9D65, 0xC4CA, 0x9D66, 0xC4CB, + 0x9D67, 0xC4CC, 0x9D68, 0xC4CD, 0x9D69, 0xC4CE, 0x9D6A, 0xC4CF, 0x9D6B, 0xC4D0, 0x9D6C, 0xC4D1, 0x9D6D, 0xC4D2, 0x9D6E, 0xC4D3, + 0x9D6F, 0xC4D4, 0x9D70, 0xC4D5, 0x9D71, 0xC4D6, 0x9D72, 0xC4D7, 0x9D73, 0xC4D8, 0x9D74, 0xC4D9, 0x9D75, 0xC4DA, 0x9D76, 0xC4DB, + 0x9D77, 0xC4DC, 0x9D78, 0xC4DD, 0x9D79, 0xC4DE, 0x9D7A, 0xC4DF, 0x9D81, 0xC4E0, 0x9D82, 0xC4E1, 0x9D83, 0xC4E2, 0x9D84, 0xC4E3, + 0x9D85, 0xC4E4, 0x9D86, 0xC4E5, 0x9D87, 0xC4E6, 0x9D88, 0xC4E7, 0x9D89, 0xC4E8, 0x9D8A, 0xC4EA, 0x9D8B, 0xC4EB, 0x9D8C, 0xC4EC, + 0x9D8D, 0xC4ED, 0x9D8E, 0xC4EE, 0x9D8F, 0xC4EF, 0x9D90, 0xC4F2, 0x9D91, 0xC4F3, 0x9D92, 0xC4F5, 0x9D93, 0xC4F6, 0x9D94, 0xC4F7, + 0x9D95, 0xC4F9, 0x9D96, 0xC4FB, 0x9D97, 0xC4FC, 0x9D98, 0xC4FD, 0x9D99, 0xC4FE, 0x9D9A, 0xC502, 0x9D9B, 0xC503, 0x9D9C, 0xC504, + 0x9D9D, 0xC505, 0x9D9E, 0xC506, 0x9D9F, 0xC507, 0x9DA0, 0xC508, 0x9DA1, 0xC509, 0x9DA2, 0xC50A, 0x9DA3, 0xC50B, 0x9DA4, 0xC50D, + 0x9DA5, 0xC50E, 0x9DA6, 0xC50F, 0x9DA7, 0xC511, 0x9DA8, 0xC512, 0x9DA9, 0xC513, 0x9DAA, 0xC515, 0x9DAB, 0xC516, 0x9DAC, 0xC517, + 0x9DAD, 0xC518, 0x9DAE, 0xC519, 0x9DAF, 0xC51A, 0x9DB0, 0xC51B, 0x9DB1, 0xC51D, 0x9DB2, 0xC51E, 0x9DB3, 0xC51F, 0x9DB4, 0xC520, + 0x9DB5, 0xC521, 0x9DB6, 0xC522, 0x9DB7, 0xC523, 0x9DB8, 0xC524, 0x9DB9, 0xC525, 0x9DBA, 0xC526, 0x9DBB, 0xC527, 0x9DBC, 0xC52A, + 0x9DBD, 0xC52B, 0x9DBE, 0xC52D, 0x9DBF, 0xC52E, 0x9DC0, 0xC52F, 0x9DC1, 0xC531, 0x9DC2, 0xC532, 0x9DC3, 0xC533, 0x9DC4, 0xC534, + 0x9DC5, 0xC535, 0x9DC6, 0xC536, 0x9DC7, 0xC537, 0x9DC8, 0xC53A, 0x9DC9, 0xC53C, 0x9DCA, 0xC53E, 0x9DCB, 0xC53F, 0x9DCC, 0xC540, + 0x9DCD, 0xC541, 0x9DCE, 0xC542, 0x9DCF, 0xC543, 0x9DD0, 0xC546, 0x9DD1, 0xC547, 0x9DD2, 0xC54B, 0x9DD3, 0xC54F, 0x9DD4, 0xC550, + 0x9DD5, 0xC551, 0x9DD6, 0xC552, 0x9DD7, 0xC556, 0x9DD8, 0xC55A, 0x9DD9, 0xC55B, 0x9DDA, 0xC55C, 0x9DDB, 0xC55F, 0x9DDC, 0xC562, + 0x9DDD, 0xC563, 0x9DDE, 0xC565, 0x9DDF, 0xC566, 0x9DE0, 0xC567, 0x9DE1, 0xC569, 0x9DE2, 0xC56A, 0x9DE3, 0xC56B, 0x9DE4, 0xC56C, + 0x9DE5, 0xC56D, 0x9DE6, 0xC56E, 0x9DE7, 0xC56F, 0x9DE8, 0xC572, 0x9DE9, 0xC576, 0x9DEA, 0xC577, 0x9DEB, 0xC578, 0x9DEC, 0xC579, + 0x9DED, 0xC57A, 0x9DEE, 0xC57B, 0x9DEF, 0xC57E, 0x9DF0, 0xC57F, 0x9DF1, 0xC581, 0x9DF2, 0xC582, 0x9DF3, 0xC583, 0x9DF4, 0xC585, + 0x9DF5, 0xC586, 0x9DF6, 0xC588, 0x9DF7, 0xC589, 0x9DF8, 0xC58A, 0x9DF9, 0xC58B, 0x9DFA, 0xC58E, 0x9DFB, 0xC590, 0x9DFC, 0xC592, + 0x9DFD, 0xC593, 0x9DFE, 0xC594, 0x9E41, 0xC596, 0x9E42, 0xC599, 0x9E43, 0xC59A, 0x9E44, 0xC59B, 0x9E45, 0xC59D, 0x9E46, 0xC59E, + 0x9E47, 0xC59F, 0x9E48, 0xC5A1, 0x9E49, 0xC5A2, 0x9E4A, 0xC5A3, 0x9E4B, 0xC5A4, 0x9E4C, 0xC5A5, 0x9E4D, 0xC5A6, 0x9E4E, 0xC5A7, + 0x9E4F, 0xC5A8, 0x9E50, 0xC5AA, 0x9E51, 0xC5AB, 0x9E52, 0xC5AC, 0x9E53, 0xC5AD, 0x9E54, 0xC5AE, 0x9E55, 0xC5AF, 0x9E56, 0xC5B0, + 0x9E57, 0xC5B1, 0x9E58, 0xC5B2, 0x9E59, 0xC5B3, 0x9E5A, 0xC5B6, 0x9E61, 0xC5B7, 0x9E62, 0xC5BA, 0x9E63, 0xC5BF, 0x9E64, 0xC5C0, + 0x9E65, 0xC5C1, 0x9E66, 0xC5C2, 0x9E67, 0xC5C3, 0x9E68, 0xC5CB, 0x9E69, 0xC5CD, 0x9E6A, 0xC5CF, 0x9E6B, 0xC5D2, 0x9E6C, 0xC5D3, + 0x9E6D, 0xC5D5, 0x9E6E, 0xC5D6, 0x9E6F, 0xC5D7, 0x9E70, 0xC5D9, 0x9E71, 0xC5DA, 0x9E72, 0xC5DB, 0x9E73, 0xC5DC, 0x9E74, 0xC5DD, + 0x9E75, 0xC5DE, 0x9E76, 0xC5DF, 0x9E77, 0xC5E2, 0x9E78, 0xC5E4, 0x9E79, 0xC5E6, 0x9E7A, 0xC5E7, 0x9E81, 0xC5E8, 0x9E82, 0xC5E9, + 0x9E83, 0xC5EA, 0x9E84, 0xC5EB, 0x9E85, 0xC5EF, 0x9E86, 0xC5F1, 0x9E87, 0xC5F2, 0x9E88, 0xC5F3, 0x9E89, 0xC5F5, 0x9E8A, 0xC5F8, + 0x9E8B, 0xC5F9, 0x9E8C, 0xC5FA, 0x9E8D, 0xC5FB, 0x9E8E, 0xC602, 0x9E8F, 0xC603, 0x9E90, 0xC604, 0x9E91, 0xC609, 0x9E92, 0xC60A, + 0x9E93, 0xC60B, 0x9E94, 0xC60D, 0x9E95, 0xC60E, 0x9E96, 0xC60F, 0x9E97, 0xC611, 0x9E98, 0xC612, 0x9E99, 0xC613, 0x9E9A, 0xC614, + 0x9E9B, 0xC615, 0x9E9C, 0xC616, 0x9E9D, 0xC617, 0x9E9E, 0xC61A, 0x9E9F, 0xC61D, 0x9EA0, 0xC61E, 0x9EA1, 0xC61F, 0x9EA2, 0xC620, + 0x9EA3, 0xC621, 0x9EA4, 0xC622, 0x9EA5, 0xC623, 0x9EA6, 0xC626, 0x9EA7, 0xC627, 0x9EA8, 0xC629, 0x9EA9, 0xC62A, 0x9EAA, 0xC62B, + 0x9EAB, 0xC62F, 0x9EAC, 0xC631, 0x9EAD, 0xC632, 0x9EAE, 0xC636, 0x9EAF, 0xC638, 0x9EB0, 0xC63A, 0x9EB1, 0xC63C, 0x9EB2, 0xC63D, + 0x9EB3, 0xC63E, 0x9EB4, 0xC63F, 0x9EB5, 0xC642, 0x9EB6, 0xC643, 0x9EB7, 0xC645, 0x9EB8, 0xC646, 0x9EB9, 0xC647, 0x9EBA, 0xC649, + 0x9EBB, 0xC64A, 0x9EBC, 0xC64B, 0x9EBD, 0xC64C, 0x9EBE, 0xC64D, 0x9EBF, 0xC64E, 0x9EC0, 0xC64F, 0x9EC1, 0xC652, 0x9EC2, 0xC656, + 0x9EC3, 0xC657, 0x9EC4, 0xC658, 0x9EC5, 0xC659, 0x9EC6, 0xC65A, 0x9EC7, 0xC65B, 0x9EC8, 0xC65E, 0x9EC9, 0xC65F, 0x9ECA, 0xC661, + 0x9ECB, 0xC662, 0x9ECC, 0xC663, 0x9ECD, 0xC664, 0x9ECE, 0xC665, 0x9ECF, 0xC666, 0x9ED0, 0xC667, 0x9ED1, 0xC668, 0x9ED2, 0xC669, + 0x9ED3, 0xC66A, 0x9ED4, 0xC66B, 0x9ED5, 0xC66D, 0x9ED6, 0xC66E, 0x9ED7, 0xC670, 0x9ED8, 0xC672, 0x9ED9, 0xC673, 0x9EDA, 0xC674, + 0x9EDB, 0xC675, 0x9EDC, 0xC676, 0x9EDD, 0xC677, 0x9EDE, 0xC67A, 0x9EDF, 0xC67B, 0x9EE0, 0xC67D, 0x9EE1, 0xC67E, 0x9EE2, 0xC67F, + 0x9EE3, 0xC681, 0x9EE4, 0xC682, 0x9EE5, 0xC683, 0x9EE6, 0xC684, 0x9EE7, 0xC685, 0x9EE8, 0xC686, 0x9EE9, 0xC687, 0x9EEA, 0xC68A, + 0x9EEB, 0xC68C, 0x9EEC, 0xC68E, 0x9EED, 0xC68F, 0x9EEE, 0xC690, 0x9EEF, 0xC691, 0x9EF0, 0xC692, 0x9EF1, 0xC693, 0x9EF2, 0xC696, + 0x9EF3, 0xC697, 0x9EF4, 0xC699, 0x9EF5, 0xC69A, 0x9EF6, 0xC69B, 0x9EF7, 0xC69D, 0x9EF8, 0xC69E, 0x9EF9, 0xC69F, 0x9EFA, 0xC6A0, + 0x9EFB, 0xC6A1, 0x9EFC, 0xC6A2, 0x9EFD, 0xC6A3, 0x9EFE, 0xC6A6, 0x9F41, 0xC6A8, 0x9F42, 0xC6AA, 0x9F43, 0xC6AB, 0x9F44, 0xC6AC, + 0x9F45, 0xC6AD, 0x9F46, 0xC6AE, 0x9F47, 0xC6AF, 0x9F48, 0xC6B2, 0x9F49, 0xC6B3, 0x9F4A, 0xC6B5, 0x9F4B, 0xC6B6, 0x9F4C, 0xC6B7, + 0x9F4D, 0xC6BB, 0x9F4E, 0xC6BC, 0x9F4F, 0xC6BD, 0x9F50, 0xC6BE, 0x9F51, 0xC6BF, 0x9F52, 0xC6C2, 0x9F53, 0xC6C4, 0x9F54, 0xC6C6, + 0x9F55, 0xC6C7, 0x9F56, 0xC6C8, 0x9F57, 0xC6C9, 0x9F58, 0xC6CA, 0x9F59, 0xC6CB, 0x9F5A, 0xC6CE, 0x9F61, 0xC6CF, 0x9F62, 0xC6D1, + 0x9F63, 0xC6D2, 0x9F64, 0xC6D3, 0x9F65, 0xC6D5, 0x9F66, 0xC6D6, 0x9F67, 0xC6D7, 0x9F68, 0xC6D8, 0x9F69, 0xC6D9, 0x9F6A, 0xC6DA, + 0x9F6B, 0xC6DB, 0x9F6C, 0xC6DE, 0x9F6D, 0xC6DF, 0x9F6E, 0xC6E2, 0x9F6F, 0xC6E3, 0x9F70, 0xC6E4, 0x9F71, 0xC6E5, 0x9F72, 0xC6E6, + 0x9F73, 0xC6E7, 0x9F74, 0xC6EA, 0x9F75, 0xC6EB, 0x9F76, 0xC6ED, 0x9F77, 0xC6EE, 0x9F78, 0xC6EF, 0x9F79, 0xC6F1, 0x9F7A, 0xC6F2, + 0x9F81, 0xC6F3, 0x9F82, 0xC6F4, 0x9F83, 0xC6F5, 0x9F84, 0xC6F6, 0x9F85, 0xC6F7, 0x9F86, 0xC6FA, 0x9F87, 0xC6FB, 0x9F88, 0xC6FC, + 0x9F89, 0xC6FE, 0x9F8A, 0xC6FF, 0x9F8B, 0xC700, 0x9F8C, 0xC701, 0x9F8D, 0xC702, 0x9F8E, 0xC703, 0x9F8F, 0xC706, 0x9F90, 0xC707, + 0x9F91, 0xC709, 0x9F92, 0xC70A, 0x9F93, 0xC70B, 0x9F94, 0xC70D, 0x9F95, 0xC70E, 0x9F96, 0xC70F, 0x9F97, 0xC710, 0x9F98, 0xC711, + 0x9F99, 0xC712, 0x9F9A, 0xC713, 0x9F9B, 0xC716, 0x9F9C, 0xC718, 0x9F9D, 0xC71A, 0x9F9E, 0xC71B, 0x9F9F, 0xC71C, 0x9FA0, 0xC71D, + 0x9FA1, 0xC71E, 0x9FA2, 0xC71F, 0x9FA3, 0xC722, 0x9FA4, 0xC723, 0x9FA5, 0xC725, 0x9FA6, 0xC726, 0x9FA7, 0xC727, 0x9FA8, 0xC729, + 0x9FA9, 0xC72A, 0x9FAA, 0xC72B, 0x9FAB, 0xC72C, 0x9FAC, 0xC72D, 0x9FAD, 0xC72E, 0x9FAE, 0xC72F, 0x9FAF, 0xC732, 0x9FB0, 0xC734, + 0x9FB1, 0xC736, 0x9FB2, 0xC738, 0x9FB3, 0xC739, 0x9FB4, 0xC73A, 0x9FB5, 0xC73B, 0x9FB6, 0xC73E, 0x9FB7, 0xC73F, 0x9FB8, 0xC741, + 0x9FB9, 0xC742, 0x9FBA, 0xC743, 0x9FBB, 0xC745, 0x9FBC, 0xC746, 0x9FBD, 0xC747, 0x9FBE, 0xC748, 0x9FBF, 0xC749, 0x9FC0, 0xC74B, + 0x9FC1, 0xC74E, 0x9FC2, 0xC750, 0x9FC3, 0xC759, 0x9FC4, 0xC75A, 0x9FC5, 0xC75B, 0x9FC6, 0xC75D, 0x9FC7, 0xC75E, 0x9FC8, 0xC75F, + 0x9FC9, 0xC761, 0x9FCA, 0xC762, 0x9FCB, 0xC763, 0x9FCC, 0xC764, 0x9FCD, 0xC765, 0x9FCE, 0xC766, 0x9FCF, 0xC767, 0x9FD0, 0xC769, + 0x9FD1, 0xC76A, 0x9FD2, 0xC76C, 0x9FD3, 0xC76D, 0x9FD4, 0xC76E, 0x9FD5, 0xC76F, 0x9FD6, 0xC770, 0x9FD7, 0xC771, 0x9FD8, 0xC772, + 0x9FD9, 0xC773, 0x9FDA, 0xC776, 0x9FDB, 0xC777, 0x9FDC, 0xC779, 0x9FDD, 0xC77A, 0x9FDE, 0xC77B, 0x9FDF, 0xC77F, 0x9FE0, 0xC780, + 0x9FE1, 0xC781, 0x9FE2, 0xC782, 0x9FE3, 0xC786, 0x9FE4, 0xC78B, 0x9FE5, 0xC78C, 0x9FE6, 0xC78D, 0x9FE7, 0xC78F, 0x9FE8, 0xC792, + 0x9FE9, 0xC793, 0x9FEA, 0xC795, 0x9FEB, 0xC799, 0x9FEC, 0xC79B, 0x9FED, 0xC79C, 0x9FEE, 0xC79D, 0x9FEF, 0xC79E, 0x9FF0, 0xC79F, + 0x9FF1, 0xC7A2, 0x9FF2, 0xC7A7, 0x9FF3, 0xC7A8, 0x9FF4, 0xC7A9, 0x9FF5, 0xC7AA, 0x9FF6, 0xC7AB, 0x9FF7, 0xC7AE, 0x9FF8, 0xC7AF, + 0x9FF9, 0xC7B1, 0x9FFA, 0xC7B2, 0x9FFB, 0xC7B3, 0x9FFC, 0xC7B5, 0x9FFD, 0xC7B6, 0x9FFE, 0xC7B7, 0xA041, 0xC7B8, 0xA042, 0xC7B9, + 0xA043, 0xC7BA, 0xA044, 0xC7BB, 0xA045, 0xC7BE, 0xA046, 0xC7C2, 0xA047, 0xC7C3, 0xA048, 0xC7C4, 0xA049, 0xC7C5, 0xA04A, 0xC7C6, + 0xA04B, 0xC7C7, 0xA04C, 0xC7CA, 0xA04D, 0xC7CB, 0xA04E, 0xC7CD, 0xA04F, 0xC7CF, 0xA050, 0xC7D1, 0xA051, 0xC7D2, 0xA052, 0xC7D3, + 0xA053, 0xC7D4, 0xA054, 0xC7D5, 0xA055, 0xC7D6, 0xA056, 0xC7D7, 0xA057, 0xC7D9, 0xA058, 0xC7DA, 0xA059, 0xC7DB, 0xA05A, 0xC7DC, + 0xA061, 0xC7DE, 0xA062, 0xC7DF, 0xA063, 0xC7E0, 0xA064, 0xC7E1, 0xA065, 0xC7E2, 0xA066, 0xC7E3, 0xA067, 0xC7E5, 0xA068, 0xC7E6, + 0xA069, 0xC7E7, 0xA06A, 0xC7E9, 0xA06B, 0xC7EA, 0xA06C, 0xC7EB, 0xA06D, 0xC7ED, 0xA06E, 0xC7EE, 0xA06F, 0xC7EF, 0xA070, 0xC7F0, + 0xA071, 0xC7F1, 0xA072, 0xC7F2, 0xA073, 0xC7F3, 0xA074, 0xC7F4, 0xA075, 0xC7F5, 0xA076, 0xC7F6, 0xA077, 0xC7F7, 0xA078, 0xC7F8, + 0xA079, 0xC7F9, 0xA07A, 0xC7FA, 0xA081, 0xC7FB, 0xA082, 0xC7FC, 0xA083, 0xC7FD, 0xA084, 0xC7FE, 0xA085, 0xC7FF, 0xA086, 0xC802, + 0xA087, 0xC803, 0xA088, 0xC805, 0xA089, 0xC806, 0xA08A, 0xC807, 0xA08B, 0xC809, 0xA08C, 0xC80B, 0xA08D, 0xC80C, 0xA08E, 0xC80D, + 0xA08F, 0xC80E, 0xA090, 0xC80F, 0xA091, 0xC812, 0xA092, 0xC814, 0xA093, 0xC817, 0xA094, 0xC818, 0xA095, 0xC819, 0xA096, 0xC81A, + 0xA097, 0xC81B, 0xA098, 0xC81E, 0xA099, 0xC81F, 0xA09A, 0xC821, 0xA09B, 0xC822, 0xA09C, 0xC823, 0xA09D, 0xC825, 0xA09E, 0xC826, + 0xA09F, 0xC827, 0xA0A0, 0xC828, 0xA0A1, 0xC829, 0xA0A2, 0xC82A, 0xA0A3, 0xC82B, 0xA0A4, 0xC82E, 0xA0A5, 0xC830, 0xA0A6, 0xC832, + 0xA0A7, 0xC833, 0xA0A8, 0xC834, 0xA0A9, 0xC835, 0xA0AA, 0xC836, 0xA0AB, 0xC837, 0xA0AC, 0xC839, 0xA0AD, 0xC83A, 0xA0AE, 0xC83B, + 0xA0AF, 0xC83D, 0xA0B0, 0xC83E, 0xA0B1, 0xC83F, 0xA0B2, 0xC841, 0xA0B3, 0xC842, 0xA0B4, 0xC843, 0xA0B5, 0xC844, 0xA0B6, 0xC845, + 0xA0B7, 0xC846, 0xA0B8, 0xC847, 0xA0B9, 0xC84A, 0xA0BA, 0xC84B, 0xA0BB, 0xC84E, 0xA0BC, 0xC84F, 0xA0BD, 0xC850, 0xA0BE, 0xC851, + 0xA0BF, 0xC852, 0xA0C0, 0xC853, 0xA0C1, 0xC855, 0xA0C2, 0xC856, 0xA0C3, 0xC857, 0xA0C4, 0xC858, 0xA0C5, 0xC859, 0xA0C6, 0xC85A, + 0xA0C7, 0xC85B, 0xA0C8, 0xC85C, 0xA0C9, 0xC85D, 0xA0CA, 0xC85E, 0xA0CB, 0xC85F, 0xA0CC, 0xC860, 0xA0CD, 0xC861, 0xA0CE, 0xC862, + 0xA0CF, 0xC863, 0xA0D0, 0xC864, 0xA0D1, 0xC865, 0xA0D2, 0xC866, 0xA0D3, 0xC867, 0xA0D4, 0xC868, 0xA0D5, 0xC869, 0xA0D6, 0xC86A, + 0xA0D7, 0xC86B, 0xA0D8, 0xC86C, 0xA0D9, 0xC86D, 0xA0DA, 0xC86E, 0xA0DB, 0xC86F, 0xA0DC, 0xC872, 0xA0DD, 0xC873, 0xA0DE, 0xC875, + 0xA0DF, 0xC876, 0xA0E0, 0xC877, 0xA0E1, 0xC879, 0xA0E2, 0xC87B, 0xA0E3, 0xC87C, 0xA0E4, 0xC87D, 0xA0E5, 0xC87E, 0xA0E6, 0xC87F, + 0xA0E7, 0xC882, 0xA0E8, 0xC884, 0xA0E9, 0xC888, 0xA0EA, 0xC889, 0xA0EB, 0xC88A, 0xA0EC, 0xC88E, 0xA0ED, 0xC88F, 0xA0EE, 0xC890, + 0xA0EF, 0xC891, 0xA0F0, 0xC892, 0xA0F1, 0xC893, 0xA0F2, 0xC895, 0xA0F3, 0xC896, 0xA0F4, 0xC897, 0xA0F5, 0xC898, 0xA0F6, 0xC899, + 0xA0F7, 0xC89A, 0xA0F8, 0xC89B, 0xA0F9, 0xC89C, 0xA0FA, 0xC89E, 0xA0FB, 0xC8A0, 0xA0FC, 0xC8A2, 0xA0FD, 0xC8A3, 0xA0FE, 0xC8A4, + 0xA141, 0xC8A5, 0xA142, 0xC8A6, 0xA143, 0xC8A7, 0xA144, 0xC8A9, 0xA145, 0xC8AA, 0xA146, 0xC8AB, 0xA147, 0xC8AC, 0xA148, 0xC8AD, + 0xA149, 0xC8AE, 0xA14A, 0xC8AF, 0xA14B, 0xC8B0, 0xA14C, 0xC8B1, 0xA14D, 0xC8B2, 0xA14E, 0xC8B3, 0xA14F, 0xC8B4, 0xA150, 0xC8B5, + 0xA151, 0xC8B6, 0xA152, 0xC8B7, 0xA153, 0xC8B8, 0xA154, 0xC8B9, 0xA155, 0xC8BA, 0xA156, 0xC8BB, 0xA157, 0xC8BE, 0xA158, 0xC8BF, + 0xA159, 0xC8C0, 0xA15A, 0xC8C1, 0xA161, 0xC8C2, 0xA162, 0xC8C3, 0xA163, 0xC8C5, 0xA164, 0xC8C6, 0xA165, 0xC8C7, 0xA166, 0xC8C9, + 0xA167, 0xC8CA, 0xA168, 0xC8CB, 0xA169, 0xC8CD, 0xA16A, 0xC8CE, 0xA16B, 0xC8CF, 0xA16C, 0xC8D0, 0xA16D, 0xC8D1, 0xA16E, 0xC8D2, + 0xA16F, 0xC8D3, 0xA170, 0xC8D6, 0xA171, 0xC8D8, 0xA172, 0xC8DA, 0xA173, 0xC8DB, 0xA174, 0xC8DC, 0xA175, 0xC8DD, 0xA176, 0xC8DE, + 0xA177, 0xC8DF, 0xA178, 0xC8E2, 0xA179, 0xC8E3, 0xA17A, 0xC8E5, 0xA181, 0xC8E6, 0xA182, 0xC8E7, 0xA183, 0xC8E8, 0xA184, 0xC8E9, + 0xA185, 0xC8EA, 0xA186, 0xC8EB, 0xA187, 0xC8EC, 0xA188, 0xC8ED, 0xA189, 0xC8EE, 0xA18A, 0xC8EF, 0xA18B, 0xC8F0, 0xA18C, 0xC8F1, + 0xA18D, 0xC8F2, 0xA18E, 0xC8F3, 0xA18F, 0xC8F4, 0xA190, 0xC8F6, 0xA191, 0xC8F7, 0xA192, 0xC8F8, 0xA193, 0xC8F9, 0xA194, 0xC8FA, + 0xA195, 0xC8FB, 0xA196, 0xC8FE, 0xA197, 0xC8FF, 0xA198, 0xC901, 0xA199, 0xC902, 0xA19A, 0xC903, 0xA19B, 0xC907, 0xA19C, 0xC908, + 0xA19D, 0xC909, 0xA19E, 0xC90A, 0xA19F, 0xC90B, 0xA1A0, 0xC90E, 0xA1A1, 0x3000, 0xA1A2, 0x3001, 0xA1A3, 0x3002, 0xA1A4, 0x00B7, + 0xA1A5, 0x2025, 0xA1A6, 0x2026, 0xA1A7, 0x00A8, 0xA1A8, 0x3003, 0xA1A9, 0x00AD, 0xA1AA, 0x2015, 0xA1AB, 0x2225, 0xA1AC, 0xFF3C, + 0xA1AD, 0x223C, 0xA1AE, 0x2018, 0xA1AF, 0x2019, 0xA1B0, 0x201C, 0xA1B1, 0x201D, 0xA1B2, 0x3014, 0xA1B3, 0x3015, 0xA1B4, 0x3008, + 0xA1B5, 0x3009, 0xA1B6, 0x300A, 0xA1B7, 0x300B, 0xA1B8, 0x300C, 0xA1B9, 0x300D, 0xA1BA, 0x300E, 0xA1BB, 0x300F, 0xA1BC, 0x3010, + 0xA1BD, 0x3011, 0xA1BE, 0x00B1, 0xA1BF, 0x00D7, 0xA1C0, 0x00F7, 0xA1C1, 0x2260, 0xA1C2, 0x2264, 0xA1C3, 0x2265, 0xA1C4, 0x221E, + 0xA1C5, 0x2234, 0xA1C6, 0x00B0, 0xA1C7, 0x2032, 0xA1C8, 0x2033, 0xA1C9, 0x2103, 0xA1CA, 0x212B, 0xA1CB, 0xFFE0, 0xA1CC, 0xFFE1, + 0xA1CD, 0xFFE5, 0xA1CE, 0x2642, 0xA1CF, 0x2640, 0xA1D0, 0x2220, 0xA1D1, 0x22A5, 0xA1D2, 0x2312, 0xA1D3, 0x2202, 0xA1D4, 0x2207, + 0xA1D5, 0x2261, 0xA1D6, 0x2252, 0xA1D7, 0x00A7, 0xA1D8, 0x203B, 0xA1D9, 0x2606, 0xA1DA, 0x2605, 0xA1DB, 0x25CB, 0xA1DC, 0x25CF, + 0xA1DD, 0x25CE, 0xA1DE, 0x25C7, 0xA1DF, 0x25C6, 0xA1E0, 0x25A1, 0xA1E1, 0x25A0, 0xA1E2, 0x25B3, 0xA1E3, 0x25B2, 0xA1E4, 0x25BD, + 0xA1E5, 0x25BC, 0xA1E6, 0x2192, 0xA1E7, 0x2190, 0xA1E8, 0x2191, 0xA1E9, 0x2193, 0xA1EA, 0x2194, 0xA1EB, 0x3013, 0xA1EC, 0x226A, + 0xA1ED, 0x226B, 0xA1EE, 0x221A, 0xA1EF, 0x223D, 0xA1F0, 0x221D, 0xA1F1, 0x2235, 0xA1F2, 0x222B, 0xA1F3, 0x222C, 0xA1F4, 0x2208, + 0xA1F5, 0x220B, 0xA1F6, 0x2286, 0xA1F7, 0x2287, 0xA1F8, 0x2282, 0xA1F9, 0x2283, 0xA1FA, 0x222A, 0xA1FB, 0x2229, 0xA1FC, 0x2227, + 0xA1FD, 0x2228, 0xA1FE, 0xFFE2, 0xA241, 0xC910, 0xA242, 0xC912, 0xA243, 0xC913, 0xA244, 0xC914, 0xA245, 0xC915, 0xA246, 0xC916, + 0xA247, 0xC917, 0xA248, 0xC919, 0xA249, 0xC91A, 0xA24A, 0xC91B, 0xA24B, 0xC91C, 0xA24C, 0xC91D, 0xA24D, 0xC91E, 0xA24E, 0xC91F, + 0xA24F, 0xC920, 0xA250, 0xC921, 0xA251, 0xC922, 0xA252, 0xC923, 0xA253, 0xC924, 0xA254, 0xC925, 0xA255, 0xC926, 0xA256, 0xC927, + 0xA257, 0xC928, 0xA258, 0xC929, 0xA259, 0xC92A, 0xA25A, 0xC92B, 0xA261, 0xC92D, 0xA262, 0xC92E, 0xA263, 0xC92F, 0xA264, 0xC930, + 0xA265, 0xC931, 0xA266, 0xC932, 0xA267, 0xC933, 0xA268, 0xC935, 0xA269, 0xC936, 0xA26A, 0xC937, 0xA26B, 0xC938, 0xA26C, 0xC939, + 0xA26D, 0xC93A, 0xA26E, 0xC93B, 0xA26F, 0xC93C, 0xA270, 0xC93D, 0xA271, 0xC93E, 0xA272, 0xC93F, 0xA273, 0xC940, 0xA274, 0xC941, + 0xA275, 0xC942, 0xA276, 0xC943, 0xA277, 0xC944, 0xA278, 0xC945, 0xA279, 0xC946, 0xA27A, 0xC947, 0xA281, 0xC948, 0xA282, 0xC949, + 0xA283, 0xC94A, 0xA284, 0xC94B, 0xA285, 0xC94C, 0xA286, 0xC94D, 0xA287, 0xC94E, 0xA288, 0xC94F, 0xA289, 0xC952, 0xA28A, 0xC953, + 0xA28B, 0xC955, 0xA28C, 0xC956, 0xA28D, 0xC957, 0xA28E, 0xC959, 0xA28F, 0xC95A, 0xA290, 0xC95B, 0xA291, 0xC95C, 0xA292, 0xC95D, + 0xA293, 0xC95E, 0xA294, 0xC95F, 0xA295, 0xC962, 0xA296, 0xC964, 0xA297, 0xC965, 0xA298, 0xC966, 0xA299, 0xC967, 0xA29A, 0xC968, + 0xA29B, 0xC969, 0xA29C, 0xC96A, 0xA29D, 0xC96B, 0xA29E, 0xC96D, 0xA29F, 0xC96E, 0xA2A0, 0xC96F, 0xA2A1, 0x21D2, 0xA2A2, 0x21D4, + 0xA2A3, 0x2200, 0xA2A4, 0x2203, 0xA2A5, 0x00B4, 0xA2A6, 0xFF5E, 0xA2A7, 0x02C7, 0xA2A8, 0x02D8, 0xA2A9, 0x02DD, 0xA2AA, 0x02DA, + 0xA2AB, 0x02D9, 0xA2AC, 0x00B8, 0xA2AD, 0x02DB, 0xA2AE, 0x00A1, 0xA2AF, 0x00BF, 0xA2B0, 0x02D0, 0xA2B1, 0x222E, 0xA2B2, 0x2211, + 0xA2B3, 0x220F, 0xA2B4, 0x00A4, 0xA2B5, 0x2109, 0xA2B6, 0x2030, 0xA2B7, 0x25C1, 0xA2B8, 0x25C0, 0xA2B9, 0x25B7, 0xA2BA, 0x25B6, + 0xA2BB, 0x2664, 0xA2BC, 0x2660, 0xA2BD, 0x2661, 0xA2BE, 0x2665, 0xA2BF, 0x2667, 0xA2C0, 0x2663, 0xA2C1, 0x2299, 0xA2C2, 0x25C8, + 0xA2C3, 0x25A3, 0xA2C4, 0x25D0, 0xA2C5, 0x25D1, 0xA2C6, 0x2592, 0xA2C7, 0x25A4, 0xA2C8, 0x25A5, 0xA2C9, 0x25A8, 0xA2CA, 0x25A7, + 0xA2CB, 0x25A6, 0xA2CC, 0x25A9, 0xA2CD, 0x2668, 0xA2CE, 0x260F, 0xA2CF, 0x260E, 0xA2D0, 0x261C, 0xA2D1, 0x261E, 0xA2D2, 0x00B6, + 0xA2D3, 0x2020, 0xA2D4, 0x2021, 0xA2D5, 0x2195, 0xA2D6, 0x2197, 0xA2D7, 0x2199, 0xA2D8, 0x2196, 0xA2D9, 0x2198, 0xA2DA, 0x266D, + 0xA2DB, 0x2669, 0xA2DC, 0x266A, 0xA2DD, 0x266C, 0xA2DE, 0x327F, 0xA2DF, 0x321C, 0xA2E0, 0x2116, 0xA2E1, 0x33C7, 0xA2E2, 0x2122, + 0xA2E3, 0x33C2, 0xA2E4, 0x33D8, 0xA2E5, 0x2121, 0xA2E6, 0x20AC, 0xA2E7, 0x00AE, 0xA341, 0xC971, 0xA342, 0xC972, 0xA343, 0xC973, + 0xA344, 0xC975, 0xA345, 0xC976, 0xA346, 0xC977, 0xA347, 0xC978, 0xA348, 0xC979, 0xA349, 0xC97A, 0xA34A, 0xC97B, 0xA34B, 0xC97D, + 0xA34C, 0xC97E, 0xA34D, 0xC97F, 0xA34E, 0xC980, 0xA34F, 0xC981, 0xA350, 0xC982, 0xA351, 0xC983, 0xA352, 0xC984, 0xA353, 0xC985, + 0xA354, 0xC986, 0xA355, 0xC987, 0xA356, 0xC98A, 0xA357, 0xC98B, 0xA358, 0xC98D, 0xA359, 0xC98E, 0xA35A, 0xC98F, 0xA361, 0xC991, + 0xA362, 0xC992, 0xA363, 0xC993, 0xA364, 0xC994, 0xA365, 0xC995, 0xA366, 0xC996, 0xA367, 0xC997, 0xA368, 0xC99A, 0xA369, 0xC99C, + 0xA36A, 0xC99E, 0xA36B, 0xC99F, 0xA36C, 0xC9A0, 0xA36D, 0xC9A1, 0xA36E, 0xC9A2, 0xA36F, 0xC9A3, 0xA370, 0xC9A4, 0xA371, 0xC9A5, + 0xA372, 0xC9A6, 0xA373, 0xC9A7, 0xA374, 0xC9A8, 0xA375, 0xC9A9, 0xA376, 0xC9AA, 0xA377, 0xC9AB, 0xA378, 0xC9AC, 0xA379, 0xC9AD, + 0xA37A, 0xC9AE, 0xA381, 0xC9AF, 0xA382, 0xC9B0, 0xA383, 0xC9B1, 0xA384, 0xC9B2, 0xA385, 0xC9B3, 0xA386, 0xC9B4, 0xA387, 0xC9B5, + 0xA388, 0xC9B6, 0xA389, 0xC9B7, 0xA38A, 0xC9B8, 0xA38B, 0xC9B9, 0xA38C, 0xC9BA, 0xA38D, 0xC9BB, 0xA38E, 0xC9BC, 0xA38F, 0xC9BD, + 0xA390, 0xC9BE, 0xA391, 0xC9BF, 0xA392, 0xC9C2, 0xA393, 0xC9C3, 0xA394, 0xC9C5, 0xA395, 0xC9C6, 0xA396, 0xC9C9, 0xA397, 0xC9CB, + 0xA398, 0xC9CC, 0xA399, 0xC9CD, 0xA39A, 0xC9CE, 0xA39B, 0xC9CF, 0xA39C, 0xC9D2, 0xA39D, 0xC9D4, 0xA39E, 0xC9D7, 0xA39F, 0xC9D8, + 0xA3A0, 0xC9DB, 0xA3A1, 0xFF01, 0xA3A2, 0xFF02, 0xA3A3, 0xFF03, 0xA3A4, 0xFF04, 0xA3A5, 0xFF05, 0xA3A6, 0xFF06, 0xA3A7, 0xFF07, + 0xA3A8, 0xFF08, 0xA3A9, 0xFF09, 0xA3AA, 0xFF0A, 0xA3AB, 0xFF0B, 0xA3AC, 0xFF0C, 0xA3AD, 0xFF0D, 0xA3AE, 0xFF0E, 0xA3AF, 0xFF0F, + 0xA3B0, 0xFF10, 0xA3B1, 0xFF11, 0xA3B2, 0xFF12, 0xA3B3, 0xFF13, 0xA3B4, 0xFF14, 0xA3B5, 0xFF15, 0xA3B6, 0xFF16, 0xA3B7, 0xFF17, + 0xA3B8, 0xFF18, 0xA3B9, 0xFF19, 0xA3BA, 0xFF1A, 0xA3BB, 0xFF1B, 0xA3BC, 0xFF1C, 0xA3BD, 0xFF1D, 0xA3BE, 0xFF1E, 0xA3BF, 0xFF1F, + 0xA3C0, 0xFF20, 0xA3C1, 0xFF21, 0xA3C2, 0xFF22, 0xA3C3, 0xFF23, 0xA3C4, 0xFF24, 0xA3C5, 0xFF25, 0xA3C6, 0xFF26, 0xA3C7, 0xFF27, + 0xA3C8, 0xFF28, 0xA3C9, 0xFF29, 0xA3CA, 0xFF2A, 0xA3CB, 0xFF2B, 0xA3CC, 0xFF2C, 0xA3CD, 0xFF2D, 0xA3CE, 0xFF2E, 0xA3CF, 0xFF2F, + 0xA3D0, 0xFF30, 0xA3D1, 0xFF31, 0xA3D2, 0xFF32, 0xA3D3, 0xFF33, 0xA3D4, 0xFF34, 0xA3D5, 0xFF35, 0xA3D6, 0xFF36, 0xA3D7, 0xFF37, + 0xA3D8, 0xFF38, 0xA3D9, 0xFF39, 0xA3DA, 0xFF3A, 0xA3DB, 0xFF3B, 0xA3DC, 0xFFE6, 0xA3DD, 0xFF3D, 0xA3DE, 0xFF3E, 0xA3DF, 0xFF3F, + 0xA3E0, 0xFF40, 0xA3E1, 0xFF41, 0xA3E2, 0xFF42, 0xA3E3, 0xFF43, 0xA3E4, 0xFF44, 0xA3E5, 0xFF45, 0xA3E6, 0xFF46, 0xA3E7, 0xFF47, + 0xA3E8, 0xFF48, 0xA3E9, 0xFF49, 0xA3EA, 0xFF4A, 0xA3EB, 0xFF4B, 0xA3EC, 0xFF4C, 0xA3ED, 0xFF4D, 0xA3EE, 0xFF4E, 0xA3EF, 0xFF4F, + 0xA3F0, 0xFF50, 0xA3F1, 0xFF51, 0xA3F2, 0xFF52, 0xA3F3, 0xFF53, 0xA3F4, 0xFF54, 0xA3F5, 0xFF55, 0xA3F6, 0xFF56, 0xA3F7, 0xFF57, + 0xA3F8, 0xFF58, 0xA3F9, 0xFF59, 0xA3FA, 0xFF5A, 0xA3FB, 0xFF5B, 0xA3FC, 0xFF5C, 0xA3FD, 0xFF5D, 0xA3FE, 0xFFE3, 0xA441, 0xC9DE, + 0xA442, 0xC9DF, 0xA443, 0xC9E1, 0xA444, 0xC9E3, 0xA445, 0xC9E5, 0xA446, 0xC9E6, 0xA447, 0xC9E8, 0xA448, 0xC9E9, 0xA449, 0xC9EA, + 0xA44A, 0xC9EB, 0xA44B, 0xC9EE, 0xA44C, 0xC9F2, 0xA44D, 0xC9F3, 0xA44E, 0xC9F4, 0xA44F, 0xC9F5, 0xA450, 0xC9F6, 0xA451, 0xC9F7, + 0xA452, 0xC9FA, 0xA453, 0xC9FB, 0xA454, 0xC9FD, 0xA455, 0xC9FE, 0xA456, 0xC9FF, 0xA457, 0xCA01, 0xA458, 0xCA02, 0xA459, 0xCA03, + 0xA45A, 0xCA04, 0xA461, 0xCA05, 0xA462, 0xCA06, 0xA463, 0xCA07, 0xA464, 0xCA0A, 0xA465, 0xCA0E, 0xA466, 0xCA0F, 0xA467, 0xCA10, + 0xA468, 0xCA11, 0xA469, 0xCA12, 0xA46A, 0xCA13, 0xA46B, 0xCA15, 0xA46C, 0xCA16, 0xA46D, 0xCA17, 0xA46E, 0xCA19, 0xA46F, 0xCA1A, + 0xA470, 0xCA1B, 0xA471, 0xCA1C, 0xA472, 0xCA1D, 0xA473, 0xCA1E, 0xA474, 0xCA1F, 0xA475, 0xCA20, 0xA476, 0xCA21, 0xA477, 0xCA22, + 0xA478, 0xCA23, 0xA479, 0xCA24, 0xA47A, 0xCA25, 0xA481, 0xCA26, 0xA482, 0xCA27, 0xA483, 0xCA28, 0xA484, 0xCA2A, 0xA485, 0xCA2B, + 0xA486, 0xCA2C, 0xA487, 0xCA2D, 0xA488, 0xCA2E, 0xA489, 0xCA2F, 0xA48A, 0xCA30, 0xA48B, 0xCA31, 0xA48C, 0xCA32, 0xA48D, 0xCA33, + 0xA48E, 0xCA34, 0xA48F, 0xCA35, 0xA490, 0xCA36, 0xA491, 0xCA37, 0xA492, 0xCA38, 0xA493, 0xCA39, 0xA494, 0xCA3A, 0xA495, 0xCA3B, + 0xA496, 0xCA3C, 0xA497, 0xCA3D, 0xA498, 0xCA3E, 0xA499, 0xCA3F, 0xA49A, 0xCA40, 0xA49B, 0xCA41, 0xA49C, 0xCA42, 0xA49D, 0xCA43, + 0xA49E, 0xCA44, 0xA49F, 0xCA45, 0xA4A0, 0xCA46, 0xA4A1, 0x3131, 0xA4A2, 0x3132, 0xA4A3, 0x3133, 0xA4A4, 0x3134, 0xA4A5, 0x3135, + 0xA4A6, 0x3136, 0xA4A7, 0x3137, 0xA4A8, 0x3138, 0xA4A9, 0x3139, 0xA4AA, 0x313A, 0xA4AB, 0x313B, 0xA4AC, 0x313C, 0xA4AD, 0x313D, + 0xA4AE, 0x313E, 0xA4AF, 0x313F, 0xA4B0, 0x3140, 0xA4B1, 0x3141, 0xA4B2, 0x3142, 0xA4B3, 0x3143, 0xA4B4, 0x3144, 0xA4B5, 0x3145, + 0xA4B6, 0x3146, 0xA4B7, 0x3147, 0xA4B8, 0x3148, 0xA4B9, 0x3149, 0xA4BA, 0x314A, 0xA4BB, 0x314B, 0xA4BC, 0x314C, 0xA4BD, 0x314D, + 0xA4BE, 0x314E, 0xA4BF, 0x314F, 0xA4C0, 0x3150, 0xA4C1, 0x3151, 0xA4C2, 0x3152, 0xA4C3, 0x3153, 0xA4C4, 0x3154, 0xA4C5, 0x3155, + 0xA4C6, 0x3156, 0xA4C7, 0x3157, 0xA4C8, 0x3158, 0xA4C9, 0x3159, 0xA4CA, 0x315A, 0xA4CB, 0x315B, 0xA4CC, 0x315C, 0xA4CD, 0x315D, + 0xA4CE, 0x315E, 0xA4CF, 0x315F, 0xA4D0, 0x3160, 0xA4D1, 0x3161, 0xA4D2, 0x3162, 0xA4D3, 0x3163, 0xA4D4, 0x3164, 0xA4D5, 0x3165, + 0xA4D6, 0x3166, 0xA4D7, 0x3167, 0xA4D8, 0x3168, 0xA4D9, 0x3169, 0xA4DA, 0x316A, 0xA4DB, 0x316B, 0xA4DC, 0x316C, 0xA4DD, 0x316D, + 0xA4DE, 0x316E, 0xA4DF, 0x316F, 0xA4E0, 0x3170, 0xA4E1, 0x3171, 0xA4E2, 0x3172, 0xA4E3, 0x3173, 0xA4E4, 0x3174, 0xA4E5, 0x3175, + 0xA4E6, 0x3176, 0xA4E7, 0x3177, 0xA4E8, 0x3178, 0xA4E9, 0x3179, 0xA4EA, 0x317A, 0xA4EB, 0x317B, 0xA4EC, 0x317C, 0xA4ED, 0x317D, + 0xA4EE, 0x317E, 0xA4EF, 0x317F, 0xA4F0, 0x3180, 0xA4F1, 0x3181, 0xA4F2, 0x3182, 0xA4F3, 0x3183, 0xA4F4, 0x3184, 0xA4F5, 0x3185, + 0xA4F6, 0x3186, 0xA4F7, 0x3187, 0xA4F8, 0x3188, 0xA4F9, 0x3189, 0xA4FA, 0x318A, 0xA4FB, 0x318B, 0xA4FC, 0x318C, 0xA4FD, 0x318D, + 0xA4FE, 0x318E, 0xA541, 0xCA47, 0xA542, 0xCA48, 0xA543, 0xCA49, 0xA544, 0xCA4A, 0xA545, 0xCA4B, 0xA546, 0xCA4E, 0xA547, 0xCA4F, + 0xA548, 0xCA51, 0xA549, 0xCA52, 0xA54A, 0xCA53, 0xA54B, 0xCA55, 0xA54C, 0xCA56, 0xA54D, 0xCA57, 0xA54E, 0xCA58, 0xA54F, 0xCA59, + 0xA550, 0xCA5A, 0xA551, 0xCA5B, 0xA552, 0xCA5E, 0xA553, 0xCA62, 0xA554, 0xCA63, 0xA555, 0xCA64, 0xA556, 0xCA65, 0xA557, 0xCA66, + 0xA558, 0xCA67, 0xA559, 0xCA69, 0xA55A, 0xCA6A, 0xA561, 0xCA6B, 0xA562, 0xCA6C, 0xA563, 0xCA6D, 0xA564, 0xCA6E, 0xA565, 0xCA6F, + 0xA566, 0xCA70, 0xA567, 0xCA71, 0xA568, 0xCA72, 0xA569, 0xCA73, 0xA56A, 0xCA74, 0xA56B, 0xCA75, 0xA56C, 0xCA76, 0xA56D, 0xCA77, + 0xA56E, 0xCA78, 0xA56F, 0xCA79, 0xA570, 0xCA7A, 0xA571, 0xCA7B, 0xA572, 0xCA7C, 0xA573, 0xCA7E, 0xA574, 0xCA7F, 0xA575, 0xCA80, + 0xA576, 0xCA81, 0xA577, 0xCA82, 0xA578, 0xCA83, 0xA579, 0xCA85, 0xA57A, 0xCA86, 0xA581, 0xCA87, 0xA582, 0xCA88, 0xA583, 0xCA89, + 0xA584, 0xCA8A, 0xA585, 0xCA8B, 0xA586, 0xCA8C, 0xA587, 0xCA8D, 0xA588, 0xCA8E, 0xA589, 0xCA8F, 0xA58A, 0xCA90, 0xA58B, 0xCA91, + 0xA58C, 0xCA92, 0xA58D, 0xCA93, 0xA58E, 0xCA94, 0xA58F, 0xCA95, 0xA590, 0xCA96, 0xA591, 0xCA97, 0xA592, 0xCA99, 0xA593, 0xCA9A, + 0xA594, 0xCA9B, 0xA595, 0xCA9C, 0xA596, 0xCA9D, 0xA597, 0xCA9E, 0xA598, 0xCA9F, 0xA599, 0xCAA0, 0xA59A, 0xCAA1, 0xA59B, 0xCAA2, + 0xA59C, 0xCAA3, 0xA59D, 0xCAA4, 0xA59E, 0xCAA5, 0xA59F, 0xCAA6, 0xA5A0, 0xCAA7, 0xA5A1, 0x2170, 0xA5A2, 0x2171, 0xA5A3, 0x2172, + 0xA5A4, 0x2173, 0xA5A5, 0x2174, 0xA5A6, 0x2175, 0xA5A7, 0x2176, 0xA5A8, 0x2177, 0xA5A9, 0x2178, 0xA5AA, 0x2179, 0xA5B0, 0x2160, + 0xA5B1, 0x2161, 0xA5B2, 0x2162, 0xA5B3, 0x2163, 0xA5B4, 0x2164, 0xA5B5, 0x2165, 0xA5B6, 0x2166, 0xA5B7, 0x2167, 0xA5B8, 0x2168, + 0xA5B9, 0x2169, 0xA5C1, 0x0391, 0xA5C2, 0x0392, 0xA5C3, 0x0393, 0xA5C4, 0x0394, 0xA5C5, 0x0395, 0xA5C6, 0x0396, 0xA5C7, 0x0397, + 0xA5C8, 0x0398, 0xA5C9, 0x0399, 0xA5CA, 0x039A, 0xA5CB, 0x039B, 0xA5CC, 0x039C, 0xA5CD, 0x039D, 0xA5CE, 0x039E, 0xA5CF, 0x039F, + 0xA5D0, 0x03A0, 0xA5D1, 0x03A1, 0xA5D2, 0x03A3, 0xA5D3, 0x03A4, 0xA5D4, 0x03A5, 0xA5D5, 0x03A6, 0xA5D6, 0x03A7, 0xA5D7, 0x03A8, + 0xA5D8, 0x03A9, 0xA5E1, 0x03B1, 0xA5E2, 0x03B2, 0xA5E3, 0x03B3, 0xA5E4, 0x03B4, 0xA5E5, 0x03B5, 0xA5E6, 0x03B6, 0xA5E7, 0x03B7, + 0xA5E8, 0x03B8, 0xA5E9, 0x03B9, 0xA5EA, 0x03BA, 0xA5EB, 0x03BB, 0xA5EC, 0x03BC, 0xA5ED, 0x03BD, 0xA5EE, 0x03BE, 0xA5EF, 0x03BF, + 0xA5F0, 0x03C0, 0xA5F1, 0x03C1, 0xA5F2, 0x03C3, 0xA5F3, 0x03C4, 0xA5F4, 0x03C5, 0xA5F5, 0x03C6, 0xA5F6, 0x03C7, 0xA5F7, 0x03C8, + 0xA5F8, 0x03C9, 0xA641, 0xCAA8, 0xA642, 0xCAA9, 0xA643, 0xCAAA, 0xA644, 0xCAAB, 0xA645, 0xCAAC, 0xA646, 0xCAAD, 0xA647, 0xCAAE, + 0xA648, 0xCAAF, 0xA649, 0xCAB0, 0xA64A, 0xCAB1, 0xA64B, 0xCAB2, 0xA64C, 0xCAB3, 0xA64D, 0xCAB4, 0xA64E, 0xCAB5, 0xA64F, 0xCAB6, + 0xA650, 0xCAB7, 0xA651, 0xCAB8, 0xA652, 0xCAB9, 0xA653, 0xCABA, 0xA654, 0xCABB, 0xA655, 0xCABE, 0xA656, 0xCABF, 0xA657, 0xCAC1, + 0xA658, 0xCAC2, 0xA659, 0xCAC3, 0xA65A, 0xCAC5, 0xA661, 0xCAC6, 0xA662, 0xCAC7, 0xA663, 0xCAC8, 0xA664, 0xCAC9, 0xA665, 0xCACA, + 0xA666, 0xCACB, 0xA667, 0xCACE, 0xA668, 0xCAD0, 0xA669, 0xCAD2, 0xA66A, 0xCAD4, 0xA66B, 0xCAD5, 0xA66C, 0xCAD6, 0xA66D, 0xCAD7, + 0xA66E, 0xCADA, 0xA66F, 0xCADB, 0xA670, 0xCADC, 0xA671, 0xCADD, 0xA672, 0xCADE, 0xA673, 0xCADF, 0xA674, 0xCAE1, 0xA675, 0xCAE2, + 0xA676, 0xCAE3, 0xA677, 0xCAE4, 0xA678, 0xCAE5, 0xA679, 0xCAE6, 0xA67A, 0xCAE7, 0xA681, 0xCAE8, 0xA682, 0xCAE9, 0xA683, 0xCAEA, + 0xA684, 0xCAEB, 0xA685, 0xCAED, 0xA686, 0xCAEE, 0xA687, 0xCAEF, 0xA688, 0xCAF0, 0xA689, 0xCAF1, 0xA68A, 0xCAF2, 0xA68B, 0xCAF3, + 0xA68C, 0xCAF5, 0xA68D, 0xCAF6, 0xA68E, 0xCAF7, 0xA68F, 0xCAF8, 0xA690, 0xCAF9, 0xA691, 0xCAFA, 0xA692, 0xCAFB, 0xA693, 0xCAFC, + 0xA694, 0xCAFD, 0xA695, 0xCAFE, 0xA696, 0xCAFF, 0xA697, 0xCB00, 0xA698, 0xCB01, 0xA699, 0xCB02, 0xA69A, 0xCB03, 0xA69B, 0xCB04, + 0xA69C, 0xCB05, 0xA69D, 0xCB06, 0xA69E, 0xCB07, 0xA69F, 0xCB09, 0xA6A0, 0xCB0A, 0xA6A1, 0x2500, 0xA6A2, 0x2502, 0xA6A3, 0x250C, + 0xA6A4, 0x2510, 0xA6A5, 0x2518, 0xA6A6, 0x2514, 0xA6A7, 0x251C, 0xA6A8, 0x252C, 0xA6A9, 0x2524, 0xA6AA, 0x2534, 0xA6AB, 0x253C, + 0xA6AC, 0x2501, 0xA6AD, 0x2503, 0xA6AE, 0x250F, 0xA6AF, 0x2513, 0xA6B0, 0x251B, 0xA6B1, 0x2517, 0xA6B2, 0x2523, 0xA6B3, 0x2533, + 0xA6B4, 0x252B, 0xA6B5, 0x253B, 0xA6B6, 0x254B, 0xA6B7, 0x2520, 0xA6B8, 0x252F, 0xA6B9, 0x2528, 0xA6BA, 0x2537, 0xA6BB, 0x253F, + 0xA6BC, 0x251D, 0xA6BD, 0x2530, 0xA6BE, 0x2525, 0xA6BF, 0x2538, 0xA6C0, 0x2542, 0xA6C1, 0x2512, 0xA6C2, 0x2511, 0xA6C3, 0x251A, + 0xA6C4, 0x2519, 0xA6C5, 0x2516, 0xA6C6, 0x2515, 0xA6C7, 0x250E, 0xA6C8, 0x250D, 0xA6C9, 0x251E, 0xA6CA, 0x251F, 0xA6CB, 0x2521, + 0xA6CC, 0x2522, 0xA6CD, 0x2526, 0xA6CE, 0x2527, 0xA6CF, 0x2529, 0xA6D0, 0x252A, 0xA6D1, 0x252D, 0xA6D2, 0x252E, 0xA6D3, 0x2531, + 0xA6D4, 0x2532, 0xA6D5, 0x2535, 0xA6D6, 0x2536, 0xA6D7, 0x2539, 0xA6D8, 0x253A, 0xA6D9, 0x253D, 0xA6DA, 0x253E, 0xA6DB, 0x2540, + 0xA6DC, 0x2541, 0xA6DD, 0x2543, 0xA6DE, 0x2544, 0xA6DF, 0x2545, 0xA6E0, 0x2546, 0xA6E1, 0x2547, 0xA6E2, 0x2548, 0xA6E3, 0x2549, + 0xA6E4, 0x254A, 0xA741, 0xCB0B, 0xA742, 0xCB0C, 0xA743, 0xCB0D, 0xA744, 0xCB0E, 0xA745, 0xCB0F, 0xA746, 0xCB11, 0xA747, 0xCB12, + 0xA748, 0xCB13, 0xA749, 0xCB15, 0xA74A, 0xCB16, 0xA74B, 0xCB17, 0xA74C, 0xCB19, 0xA74D, 0xCB1A, 0xA74E, 0xCB1B, 0xA74F, 0xCB1C, + 0xA750, 0xCB1D, 0xA751, 0xCB1E, 0xA752, 0xCB1F, 0xA753, 0xCB22, 0xA754, 0xCB23, 0xA755, 0xCB24, 0xA756, 0xCB25, 0xA757, 0xCB26, + 0xA758, 0xCB27, 0xA759, 0xCB28, 0xA75A, 0xCB29, 0xA761, 0xCB2A, 0xA762, 0xCB2B, 0xA763, 0xCB2C, 0xA764, 0xCB2D, 0xA765, 0xCB2E, + 0xA766, 0xCB2F, 0xA767, 0xCB30, 0xA768, 0xCB31, 0xA769, 0xCB32, 0xA76A, 0xCB33, 0xA76B, 0xCB34, 0xA76C, 0xCB35, 0xA76D, 0xCB36, + 0xA76E, 0xCB37, 0xA76F, 0xCB38, 0xA770, 0xCB39, 0xA771, 0xCB3A, 0xA772, 0xCB3B, 0xA773, 0xCB3C, 0xA774, 0xCB3D, 0xA775, 0xCB3E, + 0xA776, 0xCB3F, 0xA777, 0xCB40, 0xA778, 0xCB42, 0xA779, 0xCB43, 0xA77A, 0xCB44, 0xA781, 0xCB45, 0xA782, 0xCB46, 0xA783, 0xCB47, + 0xA784, 0xCB4A, 0xA785, 0xCB4B, 0xA786, 0xCB4D, 0xA787, 0xCB4E, 0xA788, 0xCB4F, 0xA789, 0xCB51, 0xA78A, 0xCB52, 0xA78B, 0xCB53, + 0xA78C, 0xCB54, 0xA78D, 0xCB55, 0xA78E, 0xCB56, 0xA78F, 0xCB57, 0xA790, 0xCB5A, 0xA791, 0xCB5B, 0xA792, 0xCB5C, 0xA793, 0xCB5E, + 0xA794, 0xCB5F, 0xA795, 0xCB60, 0xA796, 0xCB61, 0xA797, 0xCB62, 0xA798, 0xCB63, 0xA799, 0xCB65, 0xA79A, 0xCB66, 0xA79B, 0xCB67, + 0xA79C, 0xCB68, 0xA79D, 0xCB69, 0xA79E, 0xCB6A, 0xA79F, 0xCB6B, 0xA7A0, 0xCB6C, 0xA7A1, 0x3395, 0xA7A2, 0x3396, 0xA7A3, 0x3397, + 0xA7A4, 0x2113, 0xA7A5, 0x3398, 0xA7A6, 0x33C4, 0xA7A7, 0x33A3, 0xA7A8, 0x33A4, 0xA7A9, 0x33A5, 0xA7AA, 0x33A6, 0xA7AB, 0x3399, + 0xA7AC, 0x339A, 0xA7AD, 0x339B, 0xA7AE, 0x339C, 0xA7AF, 0x339D, 0xA7B0, 0x339E, 0xA7B1, 0x339F, 0xA7B2, 0x33A0, 0xA7B3, 0x33A1, + 0xA7B4, 0x33A2, 0xA7B5, 0x33CA, 0xA7B6, 0x338D, 0xA7B7, 0x338E, 0xA7B8, 0x338F, 0xA7B9, 0x33CF, 0xA7BA, 0x3388, 0xA7BB, 0x3389, + 0xA7BC, 0x33C8, 0xA7BD, 0x33A7, 0xA7BE, 0x33A8, 0xA7BF, 0x33B0, 0xA7C0, 0x33B1, 0xA7C1, 0x33B2, 0xA7C2, 0x33B3, 0xA7C3, 0x33B4, + 0xA7C4, 0x33B5, 0xA7C5, 0x33B6, 0xA7C6, 0x33B7, 0xA7C7, 0x33B8, 0xA7C8, 0x33B9, 0xA7C9, 0x3380, 0xA7CA, 0x3381, 0xA7CB, 0x3382, + 0xA7CC, 0x3383, 0xA7CD, 0x3384, 0xA7CE, 0x33BA, 0xA7CF, 0x33BB, 0xA7D0, 0x33BC, 0xA7D1, 0x33BD, 0xA7D2, 0x33BE, 0xA7D3, 0x33BF, + 0xA7D4, 0x3390, 0xA7D5, 0x3391, 0xA7D6, 0x3392, 0xA7D7, 0x3393, 0xA7D8, 0x3394, 0xA7D9, 0x2126, 0xA7DA, 0x33C0, 0xA7DB, 0x33C1, + 0xA7DC, 0x338A, 0xA7DD, 0x338B, 0xA7DE, 0x338C, 0xA7DF, 0x33D6, 0xA7E0, 0x33C5, 0xA7E1, 0x33AD, 0xA7E2, 0x33AE, 0xA7E3, 0x33AF, + 0xA7E4, 0x33DB, 0xA7E5, 0x33A9, 0xA7E6, 0x33AA, 0xA7E7, 0x33AB, 0xA7E8, 0x33AC, 0xA7E9, 0x33DD, 0xA7EA, 0x33D0, 0xA7EB, 0x33D3, + 0xA7EC, 0x33C3, 0xA7ED, 0x33C9, 0xA7EE, 0x33DC, 0xA7EF, 0x33C6, 0xA841, 0xCB6D, 0xA842, 0xCB6E, 0xA843, 0xCB6F, 0xA844, 0xCB70, + 0xA845, 0xCB71, 0xA846, 0xCB72, 0xA847, 0xCB73, 0xA848, 0xCB74, 0xA849, 0xCB75, 0xA84A, 0xCB76, 0xA84B, 0xCB77, 0xA84C, 0xCB7A, + 0xA84D, 0xCB7B, 0xA84E, 0xCB7C, 0xA84F, 0xCB7D, 0xA850, 0xCB7E, 0xA851, 0xCB7F, 0xA852, 0xCB80, 0xA853, 0xCB81, 0xA854, 0xCB82, + 0xA855, 0xCB83, 0xA856, 0xCB84, 0xA857, 0xCB85, 0xA858, 0xCB86, 0xA859, 0xCB87, 0xA85A, 0xCB88, 0xA861, 0xCB89, 0xA862, 0xCB8A, + 0xA863, 0xCB8B, 0xA864, 0xCB8C, 0xA865, 0xCB8D, 0xA866, 0xCB8E, 0xA867, 0xCB8F, 0xA868, 0xCB90, 0xA869, 0xCB91, 0xA86A, 0xCB92, + 0xA86B, 0xCB93, 0xA86C, 0xCB94, 0xA86D, 0xCB95, 0xA86E, 0xCB96, 0xA86F, 0xCB97, 0xA870, 0xCB98, 0xA871, 0xCB99, 0xA872, 0xCB9A, + 0xA873, 0xCB9B, 0xA874, 0xCB9D, 0xA875, 0xCB9E, 0xA876, 0xCB9F, 0xA877, 0xCBA0, 0xA878, 0xCBA1, 0xA879, 0xCBA2, 0xA87A, 0xCBA3, + 0xA881, 0xCBA4, 0xA882, 0xCBA5, 0xA883, 0xCBA6, 0xA884, 0xCBA7, 0xA885, 0xCBA8, 0xA886, 0xCBA9, 0xA887, 0xCBAA, 0xA888, 0xCBAB, + 0xA889, 0xCBAC, 0xA88A, 0xCBAD, 0xA88B, 0xCBAE, 0xA88C, 0xCBAF, 0xA88D, 0xCBB0, 0xA88E, 0xCBB1, 0xA88F, 0xCBB2, 0xA890, 0xCBB3, + 0xA891, 0xCBB4, 0xA892, 0xCBB5, 0xA893, 0xCBB6, 0xA894, 0xCBB7, 0xA895, 0xCBB9, 0xA896, 0xCBBA, 0xA897, 0xCBBB, 0xA898, 0xCBBC, + 0xA899, 0xCBBD, 0xA89A, 0xCBBE, 0xA89B, 0xCBBF, 0xA89C, 0xCBC0, 0xA89D, 0xCBC1, 0xA89E, 0xCBC2, 0xA89F, 0xCBC3, 0xA8A0, 0xCBC4, + 0xA8A1, 0x00C6, 0xA8A2, 0x00D0, 0xA8A3, 0x00AA, 0xA8A4, 0x0126, 0xA8A6, 0x0132, 0xA8A8, 0x013F, 0xA8A9, 0x0141, 0xA8AA, 0x00D8, + 0xA8AB, 0x0152, 0xA8AC, 0x00BA, 0xA8AD, 0x00DE, 0xA8AE, 0x0166, 0xA8AF, 0x014A, 0xA8B1, 0x3260, 0xA8B2, 0x3261, 0xA8B3, 0x3262, + 0xA8B4, 0x3263, 0xA8B5, 0x3264, 0xA8B6, 0x3265, 0xA8B7, 0x3266, 0xA8B8, 0x3267, 0xA8B9, 0x3268, 0xA8BA, 0x3269, 0xA8BB, 0x326A, + 0xA8BC, 0x326B, 0xA8BD, 0x326C, 0xA8BE, 0x326D, 0xA8BF, 0x326E, 0xA8C0, 0x326F, 0xA8C1, 0x3270, 0xA8C2, 0x3271, 0xA8C3, 0x3272, + 0xA8C4, 0x3273, 0xA8C5, 0x3274, 0xA8C6, 0x3275, 0xA8C7, 0x3276, 0xA8C8, 0x3277, 0xA8C9, 0x3278, 0xA8CA, 0x3279, 0xA8CB, 0x327A, + 0xA8CC, 0x327B, 0xA8CD, 0x24D0, 0xA8CE, 0x24D1, 0xA8CF, 0x24D2, 0xA8D0, 0x24D3, 0xA8D1, 0x24D4, 0xA8D2, 0x24D5, 0xA8D3, 0x24D6, + 0xA8D4, 0x24D7, 0xA8D5, 0x24D8, 0xA8D6, 0x24D9, 0xA8D7, 0x24DA, 0xA8D8, 0x24DB, 0xA8D9, 0x24DC, 0xA8DA, 0x24DD, 0xA8DB, 0x24DE, + 0xA8DC, 0x24DF, 0xA8DD, 0x24E0, 0xA8DE, 0x24E1, 0xA8DF, 0x24E2, 0xA8E0, 0x24E3, 0xA8E1, 0x24E4, 0xA8E2, 0x24E5, 0xA8E3, 0x24E6, + 0xA8E4, 0x24E7, 0xA8E5, 0x24E8, 0xA8E6, 0x24E9, 0xA8E7, 0x2460, 0xA8E8, 0x2461, 0xA8E9, 0x2462, 0xA8EA, 0x2463, 0xA8EB, 0x2464, + 0xA8EC, 0x2465, 0xA8ED, 0x2466, 0xA8EE, 0x2467, 0xA8EF, 0x2468, 0xA8F0, 0x2469, 0xA8F1, 0x246A, 0xA8F2, 0x246B, 0xA8F3, 0x246C, + 0xA8F4, 0x246D, 0xA8F5, 0x246E, 0xA8F6, 0x00BD, 0xA8F7, 0x2153, 0xA8F8, 0x2154, 0xA8F9, 0x00BC, 0xA8FA, 0x00BE, 0xA8FB, 0x215B, + 0xA8FC, 0x215C, 0xA8FD, 0x215D, 0xA8FE, 0x215E, 0xA941, 0xCBC5, 0xA942, 0xCBC6, 0xA943, 0xCBC7, 0xA944, 0xCBC8, 0xA945, 0xCBC9, + 0xA946, 0xCBCA, 0xA947, 0xCBCB, 0xA948, 0xCBCC, 0xA949, 0xCBCD, 0xA94A, 0xCBCE, 0xA94B, 0xCBCF, 0xA94C, 0xCBD0, 0xA94D, 0xCBD1, + 0xA94E, 0xCBD2, 0xA94F, 0xCBD3, 0xA950, 0xCBD5, 0xA951, 0xCBD6, 0xA952, 0xCBD7, 0xA953, 0xCBD8, 0xA954, 0xCBD9, 0xA955, 0xCBDA, + 0xA956, 0xCBDB, 0xA957, 0xCBDC, 0xA958, 0xCBDD, 0xA959, 0xCBDE, 0xA95A, 0xCBDF, 0xA961, 0xCBE0, 0xA962, 0xCBE1, 0xA963, 0xCBE2, + 0xA964, 0xCBE3, 0xA965, 0xCBE5, 0xA966, 0xCBE6, 0xA967, 0xCBE8, 0xA968, 0xCBEA, 0xA969, 0xCBEB, 0xA96A, 0xCBEC, 0xA96B, 0xCBED, + 0xA96C, 0xCBEE, 0xA96D, 0xCBEF, 0xA96E, 0xCBF0, 0xA96F, 0xCBF1, 0xA970, 0xCBF2, 0xA971, 0xCBF3, 0xA972, 0xCBF4, 0xA973, 0xCBF5, + 0xA974, 0xCBF6, 0xA975, 0xCBF7, 0xA976, 0xCBF8, 0xA977, 0xCBF9, 0xA978, 0xCBFA, 0xA979, 0xCBFB, 0xA97A, 0xCBFC, 0xA981, 0xCBFD, + 0xA982, 0xCBFE, 0xA983, 0xCBFF, 0xA984, 0xCC00, 0xA985, 0xCC01, 0xA986, 0xCC02, 0xA987, 0xCC03, 0xA988, 0xCC04, 0xA989, 0xCC05, + 0xA98A, 0xCC06, 0xA98B, 0xCC07, 0xA98C, 0xCC08, 0xA98D, 0xCC09, 0xA98E, 0xCC0A, 0xA98F, 0xCC0B, 0xA990, 0xCC0E, 0xA991, 0xCC0F, + 0xA992, 0xCC11, 0xA993, 0xCC12, 0xA994, 0xCC13, 0xA995, 0xCC15, 0xA996, 0xCC16, 0xA997, 0xCC17, 0xA998, 0xCC18, 0xA999, 0xCC19, + 0xA99A, 0xCC1A, 0xA99B, 0xCC1B, 0xA99C, 0xCC1E, 0xA99D, 0xCC1F, 0xA99E, 0xCC20, 0xA99F, 0xCC23, 0xA9A0, 0xCC24, 0xA9A1, 0x00E6, + 0xA9A2, 0x0111, 0xA9A3, 0x00F0, 0xA9A4, 0x0127, 0xA9A5, 0x0131, 0xA9A6, 0x0133, 0xA9A7, 0x0138, 0xA9A8, 0x0140, 0xA9A9, 0x0142, + 0xA9AA, 0x00F8, 0xA9AB, 0x0153, 0xA9AC, 0x00DF, 0xA9AD, 0x00FE, 0xA9AE, 0x0167, 0xA9AF, 0x014B, 0xA9B0, 0x0149, 0xA9B1, 0x3200, + 0xA9B2, 0x3201, 0xA9B3, 0x3202, 0xA9B4, 0x3203, 0xA9B5, 0x3204, 0xA9B6, 0x3205, 0xA9B7, 0x3206, 0xA9B8, 0x3207, 0xA9B9, 0x3208, + 0xA9BA, 0x3209, 0xA9BB, 0x320A, 0xA9BC, 0x320B, 0xA9BD, 0x320C, 0xA9BE, 0x320D, 0xA9BF, 0x320E, 0xA9C0, 0x320F, 0xA9C1, 0x3210, + 0xA9C2, 0x3211, 0xA9C3, 0x3212, 0xA9C4, 0x3213, 0xA9C5, 0x3214, 0xA9C6, 0x3215, 0xA9C7, 0x3216, 0xA9C8, 0x3217, 0xA9C9, 0x3218, + 0xA9CA, 0x3219, 0xA9CB, 0x321A, 0xA9CC, 0x321B, 0xA9CD, 0x249C, 0xA9CE, 0x249D, 0xA9CF, 0x249E, 0xA9D0, 0x249F, 0xA9D1, 0x24A0, + 0xA9D2, 0x24A1, 0xA9D3, 0x24A2, 0xA9D4, 0x24A3, 0xA9D5, 0x24A4, 0xA9D6, 0x24A5, 0xA9D7, 0x24A6, 0xA9D8, 0x24A7, 0xA9D9, 0x24A8, + 0xA9DA, 0x24A9, 0xA9DB, 0x24AA, 0xA9DC, 0x24AB, 0xA9DD, 0x24AC, 0xA9DE, 0x24AD, 0xA9DF, 0x24AE, 0xA9E0, 0x24AF, 0xA9E1, 0x24B0, + 0xA9E2, 0x24B1, 0xA9E3, 0x24B2, 0xA9E4, 0x24B3, 0xA9E5, 0x24B4, 0xA9E6, 0x24B5, 0xA9E7, 0x2474, 0xA9E8, 0x2475, 0xA9E9, 0x2476, + 0xA9EA, 0x2477, 0xA9EB, 0x2478, 0xA9EC, 0x2479, 0xA9ED, 0x247A, 0xA9EE, 0x247B, 0xA9EF, 0x247C, 0xA9F0, 0x247D, 0xA9F1, 0x247E, + 0xA9F2, 0x247F, 0xA9F3, 0x2480, 0xA9F4, 0x2481, 0xA9F5, 0x2482, 0xA9F6, 0x00B9, 0xA9F7, 0x00B2, 0xA9F8, 0x00B3, 0xA9F9, 0x2074, + 0xA9FA, 0x207F, 0xA9FB, 0x2081, 0xA9FC, 0x2082, 0xA9FD, 0x2083, 0xA9FE, 0x2084, 0xAA41, 0xCC25, 0xAA42, 0xCC26, 0xAA43, 0xCC2A, + 0xAA44, 0xCC2B, 0xAA45, 0xCC2D, 0xAA46, 0xCC2F, 0xAA47, 0xCC31, 0xAA48, 0xCC32, 0xAA49, 0xCC33, 0xAA4A, 0xCC34, 0xAA4B, 0xCC35, + 0xAA4C, 0xCC36, 0xAA4D, 0xCC37, 0xAA4E, 0xCC3A, 0xAA4F, 0xCC3F, 0xAA50, 0xCC40, 0xAA51, 0xCC41, 0xAA52, 0xCC42, 0xAA53, 0xCC43, + 0xAA54, 0xCC46, 0xAA55, 0xCC47, 0xAA56, 0xCC49, 0xAA57, 0xCC4A, 0xAA58, 0xCC4B, 0xAA59, 0xCC4D, 0xAA5A, 0xCC4E, 0xAA61, 0xCC4F, + 0xAA62, 0xCC50, 0xAA63, 0xCC51, 0xAA64, 0xCC52, 0xAA65, 0xCC53, 0xAA66, 0xCC56, 0xAA67, 0xCC5A, 0xAA68, 0xCC5B, 0xAA69, 0xCC5C, + 0xAA6A, 0xCC5D, 0xAA6B, 0xCC5E, 0xAA6C, 0xCC5F, 0xAA6D, 0xCC61, 0xAA6E, 0xCC62, 0xAA6F, 0xCC63, 0xAA70, 0xCC65, 0xAA71, 0xCC67, + 0xAA72, 0xCC69, 0xAA73, 0xCC6A, 0xAA74, 0xCC6B, 0xAA75, 0xCC6C, 0xAA76, 0xCC6D, 0xAA77, 0xCC6E, 0xAA78, 0xCC6F, 0xAA79, 0xCC71, + 0xAA7A, 0xCC72, 0xAA81, 0xCC73, 0xAA82, 0xCC74, 0xAA83, 0xCC76, 0xAA84, 0xCC77, 0xAA85, 0xCC78, 0xAA86, 0xCC79, 0xAA87, 0xCC7A, + 0xAA88, 0xCC7B, 0xAA89, 0xCC7C, 0xAA8A, 0xCC7D, 0xAA8B, 0xCC7E, 0xAA8C, 0xCC7F, 0xAA8D, 0xCC80, 0xAA8E, 0xCC81, 0xAA8F, 0xCC82, + 0xAA90, 0xCC83, 0xAA91, 0xCC84, 0xAA92, 0xCC85, 0xAA93, 0xCC86, 0xAA94, 0xCC87, 0xAA95, 0xCC88, 0xAA96, 0xCC89, 0xAA97, 0xCC8A, + 0xAA98, 0xCC8B, 0xAA99, 0xCC8C, 0xAA9A, 0xCC8D, 0xAA9B, 0xCC8E, 0xAA9C, 0xCC8F, 0xAA9D, 0xCC90, 0xAA9E, 0xCC91, 0xAA9F, 0xCC92, + 0xAAA0, 0xCC93, 0xAAA1, 0x3041, 0xAAA2, 0x3042, 0xAAA3, 0x3043, 0xAAA4, 0x3044, 0xAAA5, 0x3045, 0xAAA6, 0x3046, 0xAAA7, 0x3047, + 0xAAA8, 0x3048, 0xAAA9, 0x3049, 0xAAAA, 0x304A, 0xAAAB, 0x304B, 0xAAAC, 0x304C, 0xAAAD, 0x304D, 0xAAAE, 0x304E, 0xAAAF, 0x304F, + 0xAAB0, 0x3050, 0xAAB1, 0x3051, 0xAAB2, 0x3052, 0xAAB3, 0x3053, 0xAAB4, 0x3054, 0xAAB5, 0x3055, 0xAAB6, 0x3056, 0xAAB7, 0x3057, + 0xAAB8, 0x3058, 0xAAB9, 0x3059, 0xAABA, 0x305A, 0xAABB, 0x305B, 0xAABC, 0x305C, 0xAABD, 0x305D, 0xAABE, 0x305E, 0xAABF, 0x305F, + 0xAAC0, 0x3060, 0xAAC1, 0x3061, 0xAAC2, 0x3062, 0xAAC3, 0x3063, 0xAAC4, 0x3064, 0xAAC5, 0x3065, 0xAAC6, 0x3066, 0xAAC7, 0x3067, + 0xAAC8, 0x3068, 0xAAC9, 0x3069, 0xAACA, 0x306A, 0xAACB, 0x306B, 0xAACC, 0x306C, 0xAACD, 0x306D, 0xAACE, 0x306E, 0xAACF, 0x306F, + 0xAAD0, 0x3070, 0xAAD1, 0x3071, 0xAAD2, 0x3072, 0xAAD3, 0x3073, 0xAAD4, 0x3074, 0xAAD5, 0x3075, 0xAAD6, 0x3076, 0xAAD7, 0x3077, + 0xAAD8, 0x3078, 0xAAD9, 0x3079, 0xAADA, 0x307A, 0xAADB, 0x307B, 0xAADC, 0x307C, 0xAADD, 0x307D, 0xAADE, 0x307E, 0xAADF, 0x307F, + 0xAAE0, 0x3080, 0xAAE1, 0x3081, 0xAAE2, 0x3082, 0xAAE3, 0x3083, 0xAAE4, 0x3084, 0xAAE5, 0x3085, 0xAAE6, 0x3086, 0xAAE7, 0x3087, + 0xAAE8, 0x3088, 0xAAE9, 0x3089, 0xAAEA, 0x308A, 0xAAEB, 0x308B, 0xAAEC, 0x308C, 0xAAED, 0x308D, 0xAAEE, 0x308E, 0xAAEF, 0x308F, + 0xAAF0, 0x3090, 0xAAF1, 0x3091, 0xAAF2, 0x3092, 0xAAF3, 0x3093, 0xAB41, 0xCC94, 0xAB42, 0xCC95, 0xAB43, 0xCC96, 0xAB44, 0xCC97, + 0xAB45, 0xCC9A, 0xAB46, 0xCC9B, 0xAB47, 0xCC9D, 0xAB48, 0xCC9E, 0xAB49, 0xCC9F, 0xAB4A, 0xCCA1, 0xAB4B, 0xCCA2, 0xAB4C, 0xCCA3, + 0xAB4D, 0xCCA4, 0xAB4E, 0xCCA5, 0xAB4F, 0xCCA6, 0xAB50, 0xCCA7, 0xAB51, 0xCCAA, 0xAB52, 0xCCAE, 0xAB53, 0xCCAF, 0xAB54, 0xCCB0, + 0xAB55, 0xCCB1, 0xAB56, 0xCCB2, 0xAB57, 0xCCB3, 0xAB58, 0xCCB6, 0xAB59, 0xCCB7, 0xAB5A, 0xCCB9, 0xAB61, 0xCCBA, 0xAB62, 0xCCBB, + 0xAB63, 0xCCBD, 0xAB64, 0xCCBE, 0xAB65, 0xCCBF, 0xAB66, 0xCCC0, 0xAB67, 0xCCC1, 0xAB68, 0xCCC2, 0xAB69, 0xCCC3, 0xAB6A, 0xCCC6, + 0xAB6B, 0xCCC8, 0xAB6C, 0xCCCA, 0xAB6D, 0xCCCB, 0xAB6E, 0xCCCC, 0xAB6F, 0xCCCD, 0xAB70, 0xCCCE, 0xAB71, 0xCCCF, 0xAB72, 0xCCD1, + 0xAB73, 0xCCD2, 0xAB74, 0xCCD3, 0xAB75, 0xCCD5, 0xAB76, 0xCCD6, 0xAB77, 0xCCD7, 0xAB78, 0xCCD8, 0xAB79, 0xCCD9, 0xAB7A, 0xCCDA, + 0xAB81, 0xCCDB, 0xAB82, 0xCCDC, 0xAB83, 0xCCDD, 0xAB84, 0xCCDE, 0xAB85, 0xCCDF, 0xAB86, 0xCCE0, 0xAB87, 0xCCE1, 0xAB88, 0xCCE2, + 0xAB89, 0xCCE3, 0xAB8A, 0xCCE5, 0xAB8B, 0xCCE6, 0xAB8C, 0xCCE7, 0xAB8D, 0xCCE8, 0xAB8E, 0xCCE9, 0xAB8F, 0xCCEA, 0xAB90, 0xCCEB, + 0xAB91, 0xCCED, 0xAB92, 0xCCEE, 0xAB93, 0xCCEF, 0xAB94, 0xCCF1, 0xAB95, 0xCCF2, 0xAB96, 0xCCF3, 0xAB97, 0xCCF4, 0xAB98, 0xCCF5, + 0xAB99, 0xCCF6, 0xAB9A, 0xCCF7, 0xAB9B, 0xCCF8, 0xAB9C, 0xCCF9, 0xAB9D, 0xCCFA, 0xAB9E, 0xCCFB, 0xAB9F, 0xCCFC, 0xABA0, 0xCCFD, + 0xABA1, 0x30A1, 0xABA2, 0x30A2, 0xABA3, 0x30A3, 0xABA4, 0x30A4, 0xABA5, 0x30A5, 0xABA6, 0x30A6, 0xABA7, 0x30A7, 0xABA8, 0x30A8, + 0xABA9, 0x30A9, 0xABAA, 0x30AA, 0xABAB, 0x30AB, 0xABAC, 0x30AC, 0xABAD, 0x30AD, 0xABAE, 0x30AE, 0xABAF, 0x30AF, 0xABB0, 0x30B0, + 0xABB1, 0x30B1, 0xABB2, 0x30B2, 0xABB3, 0x30B3, 0xABB4, 0x30B4, 0xABB5, 0x30B5, 0xABB6, 0x30B6, 0xABB7, 0x30B7, 0xABB8, 0x30B8, + 0xABB9, 0x30B9, 0xABBA, 0x30BA, 0xABBB, 0x30BB, 0xABBC, 0x30BC, 0xABBD, 0x30BD, 0xABBE, 0x30BE, 0xABBF, 0x30BF, 0xABC0, 0x30C0, + 0xABC1, 0x30C1, 0xABC2, 0x30C2, 0xABC3, 0x30C3, 0xABC4, 0x30C4, 0xABC5, 0x30C5, 0xABC6, 0x30C6, 0xABC7, 0x30C7, 0xABC8, 0x30C8, + 0xABC9, 0x30C9, 0xABCA, 0x30CA, 0xABCB, 0x30CB, 0xABCC, 0x30CC, 0xABCD, 0x30CD, 0xABCE, 0x30CE, 0xABCF, 0x30CF, 0xABD0, 0x30D0, + 0xABD1, 0x30D1, 0xABD2, 0x30D2, 0xABD3, 0x30D3, 0xABD4, 0x30D4, 0xABD5, 0x30D5, 0xABD6, 0x30D6, 0xABD7, 0x30D7, 0xABD8, 0x30D8, + 0xABD9, 0x30D9, 0xABDA, 0x30DA, 0xABDB, 0x30DB, 0xABDC, 0x30DC, 0xABDD, 0x30DD, 0xABDE, 0x30DE, 0xABDF, 0x30DF, 0xABE0, 0x30E0, + 0xABE1, 0x30E1, 0xABE2, 0x30E2, 0xABE3, 0x30E3, 0xABE4, 0x30E4, 0xABE5, 0x30E5, 0xABE6, 0x30E6, 0xABE7, 0x30E7, 0xABE8, 0x30E8, + 0xABE9, 0x30E9, 0xABEA, 0x30EA, 0xABEB, 0x30EB, 0xABEC, 0x30EC, 0xABED, 0x30ED, 0xABEE, 0x30EE, 0xABEF, 0x30EF, 0xABF0, 0x30F0, + 0xABF1, 0x30F1, 0xABF2, 0x30F2, 0xABF3, 0x30F3, 0xABF4, 0x30F4, 0xABF5, 0x30F5, 0xABF6, 0x30F6, 0xAC41, 0xCCFE, 0xAC42, 0xCCFF, + 0xAC43, 0xCD00, 0xAC44, 0xCD02, 0xAC45, 0xCD03, 0xAC46, 0xCD04, 0xAC47, 0xCD05, 0xAC48, 0xCD06, 0xAC49, 0xCD07, 0xAC4A, 0xCD0A, + 0xAC4B, 0xCD0B, 0xAC4C, 0xCD0D, 0xAC4D, 0xCD0E, 0xAC4E, 0xCD0F, 0xAC4F, 0xCD11, 0xAC50, 0xCD12, 0xAC51, 0xCD13, 0xAC52, 0xCD14, + 0xAC53, 0xCD15, 0xAC54, 0xCD16, 0xAC55, 0xCD17, 0xAC56, 0xCD1A, 0xAC57, 0xCD1C, 0xAC58, 0xCD1E, 0xAC59, 0xCD1F, 0xAC5A, 0xCD20, + 0xAC61, 0xCD21, 0xAC62, 0xCD22, 0xAC63, 0xCD23, 0xAC64, 0xCD25, 0xAC65, 0xCD26, 0xAC66, 0xCD27, 0xAC67, 0xCD29, 0xAC68, 0xCD2A, + 0xAC69, 0xCD2B, 0xAC6A, 0xCD2D, 0xAC6B, 0xCD2E, 0xAC6C, 0xCD2F, 0xAC6D, 0xCD30, 0xAC6E, 0xCD31, 0xAC6F, 0xCD32, 0xAC70, 0xCD33, + 0xAC71, 0xCD34, 0xAC72, 0xCD35, 0xAC73, 0xCD36, 0xAC74, 0xCD37, 0xAC75, 0xCD38, 0xAC76, 0xCD3A, 0xAC77, 0xCD3B, 0xAC78, 0xCD3C, + 0xAC79, 0xCD3D, 0xAC7A, 0xCD3E, 0xAC81, 0xCD3F, 0xAC82, 0xCD40, 0xAC83, 0xCD41, 0xAC84, 0xCD42, 0xAC85, 0xCD43, 0xAC86, 0xCD44, + 0xAC87, 0xCD45, 0xAC88, 0xCD46, 0xAC89, 0xCD47, 0xAC8A, 0xCD48, 0xAC8B, 0xCD49, 0xAC8C, 0xCD4A, 0xAC8D, 0xCD4B, 0xAC8E, 0xCD4C, + 0xAC8F, 0xCD4D, 0xAC90, 0xCD4E, 0xAC91, 0xCD4F, 0xAC92, 0xCD50, 0xAC93, 0xCD51, 0xAC94, 0xCD52, 0xAC95, 0xCD53, 0xAC96, 0xCD54, + 0xAC97, 0xCD55, 0xAC98, 0xCD56, 0xAC99, 0xCD57, 0xAC9A, 0xCD58, 0xAC9B, 0xCD59, 0xAC9C, 0xCD5A, 0xAC9D, 0xCD5B, 0xAC9E, 0xCD5D, + 0xAC9F, 0xCD5E, 0xACA0, 0xCD5F, 0xACA1, 0x0410, 0xACA2, 0x0411, 0xACA3, 0x0412, 0xACA4, 0x0413, 0xACA5, 0x0414, 0xACA6, 0x0415, + 0xACA7, 0x0401, 0xACA8, 0x0416, 0xACA9, 0x0417, 0xACAA, 0x0418, 0xACAB, 0x0419, 0xACAC, 0x041A, 0xACAD, 0x041B, 0xACAE, 0x041C, + 0xACAF, 0x041D, 0xACB0, 0x041E, 0xACB1, 0x041F, 0xACB2, 0x0420, 0xACB3, 0x0421, 0xACB4, 0x0422, 0xACB5, 0x0423, 0xACB6, 0x0424, + 0xACB7, 0x0425, 0xACB8, 0x0426, 0xACB9, 0x0427, 0xACBA, 0x0428, 0xACBB, 0x0429, 0xACBC, 0x042A, 0xACBD, 0x042B, 0xACBE, 0x042C, + 0xACBF, 0x042D, 0xACC0, 0x042E, 0xACC1, 0x042F, 0xACD1, 0x0430, 0xACD2, 0x0431, 0xACD3, 0x0432, 0xACD4, 0x0433, 0xACD5, 0x0434, + 0xACD6, 0x0435, 0xACD7, 0x0451, 0xACD8, 0x0436, 0xACD9, 0x0437, 0xACDA, 0x0438, 0xACDB, 0x0439, 0xACDC, 0x043A, 0xACDD, 0x043B, + 0xACDE, 0x043C, 0xACDF, 0x043D, 0xACE0, 0x043E, 0xACE1, 0x043F, 0xACE2, 0x0440, 0xACE3, 0x0441, 0xACE4, 0x0442, 0xACE5, 0x0443, + 0xACE6, 0x0444, 0xACE7, 0x0445, 0xACE8, 0x0446, 0xACE9, 0x0447, 0xACEA, 0x0448, 0xACEB, 0x0449, 0xACEC, 0x044A, 0xACED, 0x044B, + 0xACEE, 0x044C, 0xACEF, 0x044D, 0xACF0, 0x044E, 0xACF1, 0x044F, 0xAD41, 0xCD61, 0xAD42, 0xCD62, 0xAD43, 0xCD63, 0xAD44, 0xCD65, + 0xAD45, 0xCD66, 0xAD46, 0xCD67, 0xAD47, 0xCD68, 0xAD48, 0xCD69, 0xAD49, 0xCD6A, 0xAD4A, 0xCD6B, 0xAD4B, 0xCD6E, 0xAD4C, 0xCD70, + 0xAD4D, 0xCD72, 0xAD4E, 0xCD73, 0xAD4F, 0xCD74, 0xAD50, 0xCD75, 0xAD51, 0xCD76, 0xAD52, 0xCD77, 0xAD53, 0xCD79, 0xAD54, 0xCD7A, + 0xAD55, 0xCD7B, 0xAD56, 0xCD7C, 0xAD57, 0xCD7D, 0xAD58, 0xCD7E, 0xAD59, 0xCD7F, 0xAD5A, 0xCD80, 0xAD61, 0xCD81, 0xAD62, 0xCD82, + 0xAD63, 0xCD83, 0xAD64, 0xCD84, 0xAD65, 0xCD85, 0xAD66, 0xCD86, 0xAD67, 0xCD87, 0xAD68, 0xCD89, 0xAD69, 0xCD8A, 0xAD6A, 0xCD8B, + 0xAD6B, 0xCD8C, 0xAD6C, 0xCD8D, 0xAD6D, 0xCD8E, 0xAD6E, 0xCD8F, 0xAD6F, 0xCD90, 0xAD70, 0xCD91, 0xAD71, 0xCD92, 0xAD72, 0xCD93, + 0xAD73, 0xCD96, 0xAD74, 0xCD97, 0xAD75, 0xCD99, 0xAD76, 0xCD9A, 0xAD77, 0xCD9B, 0xAD78, 0xCD9D, 0xAD79, 0xCD9E, 0xAD7A, 0xCD9F, + 0xAD81, 0xCDA0, 0xAD82, 0xCDA1, 0xAD83, 0xCDA2, 0xAD84, 0xCDA3, 0xAD85, 0xCDA6, 0xAD86, 0xCDA8, 0xAD87, 0xCDAA, 0xAD88, 0xCDAB, + 0xAD89, 0xCDAC, 0xAD8A, 0xCDAD, 0xAD8B, 0xCDAE, 0xAD8C, 0xCDAF, 0xAD8D, 0xCDB1, 0xAD8E, 0xCDB2, 0xAD8F, 0xCDB3, 0xAD90, 0xCDB4, + 0xAD91, 0xCDB5, 0xAD92, 0xCDB6, 0xAD93, 0xCDB7, 0xAD94, 0xCDB8, 0xAD95, 0xCDB9, 0xAD96, 0xCDBA, 0xAD97, 0xCDBB, 0xAD98, 0xCDBC, + 0xAD99, 0xCDBD, 0xAD9A, 0xCDBE, 0xAD9B, 0xCDBF, 0xAD9C, 0xCDC0, 0xAD9D, 0xCDC1, 0xAD9E, 0xCDC2, 0xAD9F, 0xCDC3, 0xADA0, 0xCDC5, + 0xAE41, 0xCDC6, 0xAE42, 0xCDC7, 0xAE43, 0xCDC8, 0xAE44, 0xCDC9, 0xAE45, 0xCDCA, 0xAE46, 0xCDCB, 0xAE47, 0xCDCD, 0xAE48, 0xCDCE, + 0xAE49, 0xCDCF, 0xAE4A, 0xCDD1, 0xAE4B, 0xCDD2, 0xAE4C, 0xCDD3, 0xAE4D, 0xCDD4, 0xAE4E, 0xCDD5, 0xAE4F, 0xCDD6, 0xAE50, 0xCDD7, + 0xAE51, 0xCDD8, 0xAE52, 0xCDD9, 0xAE53, 0xCDDA, 0xAE54, 0xCDDB, 0xAE55, 0xCDDC, 0xAE56, 0xCDDD, 0xAE57, 0xCDDE, 0xAE58, 0xCDDF, + 0xAE59, 0xCDE0, 0xAE5A, 0xCDE1, 0xAE61, 0xCDE2, 0xAE62, 0xCDE3, 0xAE63, 0xCDE4, 0xAE64, 0xCDE5, 0xAE65, 0xCDE6, 0xAE66, 0xCDE7, + 0xAE67, 0xCDE9, 0xAE68, 0xCDEA, 0xAE69, 0xCDEB, 0xAE6A, 0xCDED, 0xAE6B, 0xCDEE, 0xAE6C, 0xCDEF, 0xAE6D, 0xCDF1, 0xAE6E, 0xCDF2, + 0xAE6F, 0xCDF3, 0xAE70, 0xCDF4, 0xAE71, 0xCDF5, 0xAE72, 0xCDF6, 0xAE73, 0xCDF7, 0xAE74, 0xCDFA, 0xAE75, 0xCDFC, 0xAE76, 0xCDFE, + 0xAE77, 0xCDFF, 0xAE78, 0xCE00, 0xAE79, 0xCE01, 0xAE7A, 0xCE02, 0xAE81, 0xCE03, 0xAE82, 0xCE05, 0xAE83, 0xCE06, 0xAE84, 0xCE07, + 0xAE85, 0xCE09, 0xAE86, 0xCE0A, 0xAE87, 0xCE0B, 0xAE88, 0xCE0D, 0xAE89, 0xCE0E, 0xAE8A, 0xCE0F, 0xAE8B, 0xCE10, 0xAE8C, 0xCE11, + 0xAE8D, 0xCE12, 0xAE8E, 0xCE13, 0xAE8F, 0xCE15, 0xAE90, 0xCE16, 0xAE91, 0xCE17, 0xAE92, 0xCE18, 0xAE93, 0xCE1A, 0xAE94, 0xCE1B, + 0xAE95, 0xCE1C, 0xAE96, 0xCE1D, 0xAE97, 0xCE1E, 0xAE98, 0xCE1F, 0xAE99, 0xCE22, 0xAE9A, 0xCE23, 0xAE9B, 0xCE25, 0xAE9C, 0xCE26, + 0xAE9D, 0xCE27, 0xAE9E, 0xCE29, 0xAE9F, 0xCE2A, 0xAEA0, 0xCE2B, 0xAF41, 0xCE2C, 0xAF42, 0xCE2D, 0xAF43, 0xCE2E, 0xAF44, 0xCE2F, + 0xAF45, 0xCE32, 0xAF46, 0xCE34, 0xAF47, 0xCE36, 0xAF48, 0xCE37, 0xAF49, 0xCE38, 0xAF4A, 0xCE39, 0xAF4B, 0xCE3A, 0xAF4C, 0xCE3B, + 0xAF4D, 0xCE3C, 0xAF4E, 0xCE3D, 0xAF4F, 0xCE3E, 0xAF50, 0xCE3F, 0xAF51, 0xCE40, 0xAF52, 0xCE41, 0xAF53, 0xCE42, 0xAF54, 0xCE43, + 0xAF55, 0xCE44, 0xAF56, 0xCE45, 0xAF57, 0xCE46, 0xAF58, 0xCE47, 0xAF59, 0xCE48, 0xAF5A, 0xCE49, 0xAF61, 0xCE4A, 0xAF62, 0xCE4B, + 0xAF63, 0xCE4C, 0xAF64, 0xCE4D, 0xAF65, 0xCE4E, 0xAF66, 0xCE4F, 0xAF67, 0xCE50, 0xAF68, 0xCE51, 0xAF69, 0xCE52, 0xAF6A, 0xCE53, + 0xAF6B, 0xCE54, 0xAF6C, 0xCE55, 0xAF6D, 0xCE56, 0xAF6E, 0xCE57, 0xAF6F, 0xCE5A, 0xAF70, 0xCE5B, 0xAF71, 0xCE5D, 0xAF72, 0xCE5E, + 0xAF73, 0xCE62, 0xAF74, 0xCE63, 0xAF75, 0xCE64, 0xAF76, 0xCE65, 0xAF77, 0xCE66, 0xAF78, 0xCE67, 0xAF79, 0xCE6A, 0xAF7A, 0xCE6C, + 0xAF81, 0xCE6E, 0xAF82, 0xCE6F, 0xAF83, 0xCE70, 0xAF84, 0xCE71, 0xAF85, 0xCE72, 0xAF86, 0xCE73, 0xAF87, 0xCE76, 0xAF88, 0xCE77, + 0xAF89, 0xCE79, 0xAF8A, 0xCE7A, 0xAF8B, 0xCE7B, 0xAF8C, 0xCE7D, 0xAF8D, 0xCE7E, 0xAF8E, 0xCE7F, 0xAF8F, 0xCE80, 0xAF90, 0xCE81, + 0xAF91, 0xCE82, 0xAF92, 0xCE83, 0xAF93, 0xCE86, 0xAF94, 0xCE88, 0xAF95, 0xCE8A, 0xAF96, 0xCE8B, 0xAF97, 0xCE8C, 0xAF98, 0xCE8D, + 0xAF99, 0xCE8E, 0xAF9A, 0xCE8F, 0xAF9B, 0xCE92, 0xAF9C, 0xCE93, 0xAF9D, 0xCE95, 0xAF9E, 0xCE96, 0xAF9F, 0xCE97, 0xAFA0, 0xCE99, + 0xB041, 0xCE9A, 0xB042, 0xCE9B, 0xB043, 0xCE9C, 0xB044, 0xCE9D, 0xB045, 0xCE9E, 0xB046, 0xCE9F, 0xB047, 0xCEA2, 0xB048, 0xCEA6, + 0xB049, 0xCEA7, 0xB04A, 0xCEA8, 0xB04B, 0xCEA9, 0xB04C, 0xCEAA, 0xB04D, 0xCEAB, 0xB04E, 0xCEAE, 0xB04F, 0xCEAF, 0xB050, 0xCEB0, + 0xB051, 0xCEB1, 0xB052, 0xCEB2, 0xB053, 0xCEB3, 0xB054, 0xCEB4, 0xB055, 0xCEB5, 0xB056, 0xCEB6, 0xB057, 0xCEB7, 0xB058, 0xCEB8, + 0xB059, 0xCEB9, 0xB05A, 0xCEBA, 0xB061, 0xCEBB, 0xB062, 0xCEBC, 0xB063, 0xCEBD, 0xB064, 0xCEBE, 0xB065, 0xCEBF, 0xB066, 0xCEC0, + 0xB067, 0xCEC2, 0xB068, 0xCEC3, 0xB069, 0xCEC4, 0xB06A, 0xCEC5, 0xB06B, 0xCEC6, 0xB06C, 0xCEC7, 0xB06D, 0xCEC8, 0xB06E, 0xCEC9, + 0xB06F, 0xCECA, 0xB070, 0xCECB, 0xB071, 0xCECC, 0xB072, 0xCECD, 0xB073, 0xCECE, 0xB074, 0xCECF, 0xB075, 0xCED0, 0xB076, 0xCED1, + 0xB077, 0xCED2, 0xB078, 0xCED3, 0xB079, 0xCED4, 0xB07A, 0xCED5, 0xB081, 0xCED6, 0xB082, 0xCED7, 0xB083, 0xCED8, 0xB084, 0xCED9, + 0xB085, 0xCEDA, 0xB086, 0xCEDB, 0xB087, 0xCEDC, 0xB088, 0xCEDD, 0xB089, 0xCEDE, 0xB08A, 0xCEDF, 0xB08B, 0xCEE0, 0xB08C, 0xCEE1, + 0xB08D, 0xCEE2, 0xB08E, 0xCEE3, 0xB08F, 0xCEE6, 0xB090, 0xCEE7, 0xB091, 0xCEE9, 0xB092, 0xCEEA, 0xB093, 0xCEED, 0xB094, 0xCEEE, + 0xB095, 0xCEEF, 0xB096, 0xCEF0, 0xB097, 0xCEF1, 0xB098, 0xCEF2, 0xB099, 0xCEF3, 0xB09A, 0xCEF6, 0xB09B, 0xCEFA, 0xB09C, 0xCEFB, + 0xB09D, 0xCEFC, 0xB09E, 0xCEFD, 0xB09F, 0xCEFE, 0xB0A0, 0xCEFF, 0xB0A1, 0xAC00, 0xB0A2, 0xAC01, 0xB0A3, 0xAC04, 0xB0A4, 0xAC07, + 0xB0A5, 0xAC08, 0xB0A6, 0xAC09, 0xB0A7, 0xAC0A, 0xB0A8, 0xAC10, 0xB0A9, 0xAC11, 0xB0AA, 0xAC12, 0xB0AB, 0xAC13, 0xB0AC, 0xAC14, + 0xB0AD, 0xAC15, 0xB0AE, 0xAC16, 0xB0AF, 0xAC17, 0xB0B0, 0xAC19, 0xB0B1, 0xAC1A, 0xB0B2, 0xAC1B, 0xB0B3, 0xAC1C, 0xB0B4, 0xAC1D, + 0xB0B5, 0xAC20, 0xB0B6, 0xAC24, 0xB0B7, 0xAC2C, 0xB0B8, 0xAC2D, 0xB0B9, 0xAC2F, 0xB0BA, 0xAC30, 0xB0BB, 0xAC31, 0xB0BC, 0xAC38, + 0xB0BD, 0xAC39, 0xB0BE, 0xAC3C, 0xB0BF, 0xAC40, 0xB0C0, 0xAC4B, 0xB0C1, 0xAC4D, 0xB0C2, 0xAC54, 0xB0C3, 0xAC58, 0xB0C4, 0xAC5C, + 0xB0C5, 0xAC70, 0xB0C6, 0xAC71, 0xB0C7, 0xAC74, 0xB0C8, 0xAC77, 0xB0C9, 0xAC78, 0xB0CA, 0xAC7A, 0xB0CB, 0xAC80, 0xB0CC, 0xAC81, + 0xB0CD, 0xAC83, 0xB0CE, 0xAC84, 0xB0CF, 0xAC85, 0xB0D0, 0xAC86, 0xB0D1, 0xAC89, 0xB0D2, 0xAC8A, 0xB0D3, 0xAC8B, 0xB0D4, 0xAC8C, + 0xB0D5, 0xAC90, 0xB0D6, 0xAC94, 0xB0D7, 0xAC9C, 0xB0D8, 0xAC9D, 0xB0D9, 0xAC9F, 0xB0DA, 0xACA0, 0xB0DB, 0xACA1, 0xB0DC, 0xACA8, + 0xB0DD, 0xACA9, 0xB0DE, 0xACAA, 0xB0DF, 0xACAC, 0xB0E0, 0xACAF, 0xB0E1, 0xACB0, 0xB0E2, 0xACB8, 0xB0E3, 0xACB9, 0xB0E4, 0xACBB, + 0xB0E5, 0xACBC, 0xB0E6, 0xACBD, 0xB0E7, 0xACC1, 0xB0E8, 0xACC4, 0xB0E9, 0xACC8, 0xB0EA, 0xACCC, 0xB0EB, 0xACD5, 0xB0EC, 0xACD7, + 0xB0ED, 0xACE0, 0xB0EE, 0xACE1, 0xB0EF, 0xACE4, 0xB0F0, 0xACE7, 0xB0F1, 0xACE8, 0xB0F2, 0xACEA, 0xB0F3, 0xACEC, 0xB0F4, 0xACEF, + 0xB0F5, 0xACF0, 0xB0F6, 0xACF1, 0xB0F7, 0xACF3, 0xB0F8, 0xACF5, 0xB0F9, 0xACF6, 0xB0FA, 0xACFC, 0xB0FB, 0xACFD, 0xB0FC, 0xAD00, + 0xB0FD, 0xAD04, 0xB0FE, 0xAD06, 0xB141, 0xCF02, 0xB142, 0xCF03, 0xB143, 0xCF05, 0xB144, 0xCF06, 0xB145, 0xCF07, 0xB146, 0xCF09, + 0xB147, 0xCF0A, 0xB148, 0xCF0B, 0xB149, 0xCF0C, 0xB14A, 0xCF0D, 0xB14B, 0xCF0E, 0xB14C, 0xCF0F, 0xB14D, 0xCF12, 0xB14E, 0xCF14, + 0xB14F, 0xCF16, 0xB150, 0xCF17, 0xB151, 0xCF18, 0xB152, 0xCF19, 0xB153, 0xCF1A, 0xB154, 0xCF1B, 0xB155, 0xCF1D, 0xB156, 0xCF1E, + 0xB157, 0xCF1F, 0xB158, 0xCF21, 0xB159, 0xCF22, 0xB15A, 0xCF23, 0xB161, 0xCF25, 0xB162, 0xCF26, 0xB163, 0xCF27, 0xB164, 0xCF28, + 0xB165, 0xCF29, 0xB166, 0xCF2A, 0xB167, 0xCF2B, 0xB168, 0xCF2E, 0xB169, 0xCF32, 0xB16A, 0xCF33, 0xB16B, 0xCF34, 0xB16C, 0xCF35, + 0xB16D, 0xCF36, 0xB16E, 0xCF37, 0xB16F, 0xCF39, 0xB170, 0xCF3A, 0xB171, 0xCF3B, 0xB172, 0xCF3C, 0xB173, 0xCF3D, 0xB174, 0xCF3E, + 0xB175, 0xCF3F, 0xB176, 0xCF40, 0xB177, 0xCF41, 0xB178, 0xCF42, 0xB179, 0xCF43, 0xB17A, 0xCF44, 0xB181, 0xCF45, 0xB182, 0xCF46, + 0xB183, 0xCF47, 0xB184, 0xCF48, 0xB185, 0xCF49, 0xB186, 0xCF4A, 0xB187, 0xCF4B, 0xB188, 0xCF4C, 0xB189, 0xCF4D, 0xB18A, 0xCF4E, + 0xB18B, 0xCF4F, 0xB18C, 0xCF50, 0xB18D, 0xCF51, 0xB18E, 0xCF52, 0xB18F, 0xCF53, 0xB190, 0xCF56, 0xB191, 0xCF57, 0xB192, 0xCF59, + 0xB193, 0xCF5A, 0xB194, 0xCF5B, 0xB195, 0xCF5D, 0xB196, 0xCF5E, 0xB197, 0xCF5F, 0xB198, 0xCF60, 0xB199, 0xCF61, 0xB19A, 0xCF62, + 0xB19B, 0xCF63, 0xB19C, 0xCF66, 0xB19D, 0xCF68, 0xB19E, 0xCF6A, 0xB19F, 0xCF6B, 0xB1A0, 0xCF6C, 0xB1A1, 0xAD0C, 0xB1A2, 0xAD0D, + 0xB1A3, 0xAD0F, 0xB1A4, 0xAD11, 0xB1A5, 0xAD18, 0xB1A6, 0xAD1C, 0xB1A7, 0xAD20, 0xB1A8, 0xAD29, 0xB1A9, 0xAD2C, 0xB1AA, 0xAD2D, + 0xB1AB, 0xAD34, 0xB1AC, 0xAD35, 0xB1AD, 0xAD38, 0xB1AE, 0xAD3C, 0xB1AF, 0xAD44, 0xB1B0, 0xAD45, 0xB1B1, 0xAD47, 0xB1B2, 0xAD49, + 0xB1B3, 0xAD50, 0xB1B4, 0xAD54, 0xB1B5, 0xAD58, 0xB1B6, 0xAD61, 0xB1B7, 0xAD63, 0xB1B8, 0xAD6C, 0xB1B9, 0xAD6D, 0xB1BA, 0xAD70, + 0xB1BB, 0xAD73, 0xB1BC, 0xAD74, 0xB1BD, 0xAD75, 0xB1BE, 0xAD76, 0xB1BF, 0xAD7B, 0xB1C0, 0xAD7C, 0xB1C1, 0xAD7D, 0xB1C2, 0xAD7F, + 0xB1C3, 0xAD81, 0xB1C4, 0xAD82, 0xB1C5, 0xAD88, 0xB1C6, 0xAD89, 0xB1C7, 0xAD8C, 0xB1C8, 0xAD90, 0xB1C9, 0xAD9C, 0xB1CA, 0xAD9D, + 0xB1CB, 0xADA4, 0xB1CC, 0xADB7, 0xB1CD, 0xADC0, 0xB1CE, 0xADC1, 0xB1CF, 0xADC4, 0xB1D0, 0xADC8, 0xB1D1, 0xADD0, 0xB1D2, 0xADD1, + 0xB1D3, 0xADD3, 0xB1D4, 0xADDC, 0xB1D5, 0xADE0, 0xB1D6, 0xADE4, 0xB1D7, 0xADF8, 0xB1D8, 0xADF9, 0xB1D9, 0xADFC, 0xB1DA, 0xADFF, + 0xB1DB, 0xAE00, 0xB1DC, 0xAE01, 0xB1DD, 0xAE08, 0xB1DE, 0xAE09, 0xB1DF, 0xAE0B, 0xB1E0, 0xAE0D, 0xB1E1, 0xAE14, 0xB1E2, 0xAE30, + 0xB1E3, 0xAE31, 0xB1E4, 0xAE34, 0xB1E5, 0xAE37, 0xB1E6, 0xAE38, 0xB1E7, 0xAE3A, 0xB1E8, 0xAE40, 0xB1E9, 0xAE41, 0xB1EA, 0xAE43, + 0xB1EB, 0xAE45, 0xB1EC, 0xAE46, 0xB1ED, 0xAE4A, 0xB1EE, 0xAE4C, 0xB1EF, 0xAE4D, 0xB1F0, 0xAE4E, 0xB1F1, 0xAE50, 0xB1F2, 0xAE54, + 0xB1F3, 0xAE56, 0xB1F4, 0xAE5C, 0xB1F5, 0xAE5D, 0xB1F6, 0xAE5F, 0xB1F7, 0xAE60, 0xB1F8, 0xAE61, 0xB1F9, 0xAE65, 0xB1FA, 0xAE68, + 0xB1FB, 0xAE69, 0xB1FC, 0xAE6C, 0xB1FD, 0xAE70, 0xB1FE, 0xAE78, 0xB241, 0xCF6D, 0xB242, 0xCF6E, 0xB243, 0xCF6F, 0xB244, 0xCF72, + 0xB245, 0xCF73, 0xB246, 0xCF75, 0xB247, 0xCF76, 0xB248, 0xCF77, 0xB249, 0xCF79, 0xB24A, 0xCF7A, 0xB24B, 0xCF7B, 0xB24C, 0xCF7C, + 0xB24D, 0xCF7D, 0xB24E, 0xCF7E, 0xB24F, 0xCF7F, 0xB250, 0xCF81, 0xB251, 0xCF82, 0xB252, 0xCF83, 0xB253, 0xCF84, 0xB254, 0xCF86, + 0xB255, 0xCF87, 0xB256, 0xCF88, 0xB257, 0xCF89, 0xB258, 0xCF8A, 0xB259, 0xCF8B, 0xB25A, 0xCF8D, 0xB261, 0xCF8E, 0xB262, 0xCF8F, + 0xB263, 0xCF90, 0xB264, 0xCF91, 0xB265, 0xCF92, 0xB266, 0xCF93, 0xB267, 0xCF94, 0xB268, 0xCF95, 0xB269, 0xCF96, 0xB26A, 0xCF97, + 0xB26B, 0xCF98, 0xB26C, 0xCF99, 0xB26D, 0xCF9A, 0xB26E, 0xCF9B, 0xB26F, 0xCF9C, 0xB270, 0xCF9D, 0xB271, 0xCF9E, 0xB272, 0xCF9F, + 0xB273, 0xCFA0, 0xB274, 0xCFA2, 0xB275, 0xCFA3, 0xB276, 0xCFA4, 0xB277, 0xCFA5, 0xB278, 0xCFA6, 0xB279, 0xCFA7, 0xB27A, 0xCFA9, + 0xB281, 0xCFAA, 0xB282, 0xCFAB, 0xB283, 0xCFAC, 0xB284, 0xCFAD, 0xB285, 0xCFAE, 0xB286, 0xCFAF, 0xB287, 0xCFB1, 0xB288, 0xCFB2, + 0xB289, 0xCFB3, 0xB28A, 0xCFB4, 0xB28B, 0xCFB5, 0xB28C, 0xCFB6, 0xB28D, 0xCFB7, 0xB28E, 0xCFB8, 0xB28F, 0xCFB9, 0xB290, 0xCFBA, + 0xB291, 0xCFBB, 0xB292, 0xCFBC, 0xB293, 0xCFBD, 0xB294, 0xCFBE, 0xB295, 0xCFBF, 0xB296, 0xCFC0, 0xB297, 0xCFC1, 0xB298, 0xCFC2, + 0xB299, 0xCFC3, 0xB29A, 0xCFC5, 0xB29B, 0xCFC6, 0xB29C, 0xCFC7, 0xB29D, 0xCFC8, 0xB29E, 0xCFC9, 0xB29F, 0xCFCA, 0xB2A0, 0xCFCB, + 0xB2A1, 0xAE79, 0xB2A2, 0xAE7B, 0xB2A3, 0xAE7C, 0xB2A4, 0xAE7D, 0xB2A5, 0xAE84, 0xB2A6, 0xAE85, 0xB2A7, 0xAE8C, 0xB2A8, 0xAEBC, + 0xB2A9, 0xAEBD, 0xB2AA, 0xAEBE, 0xB2AB, 0xAEC0, 0xB2AC, 0xAEC4, 0xB2AD, 0xAECC, 0xB2AE, 0xAECD, 0xB2AF, 0xAECF, 0xB2B0, 0xAED0, + 0xB2B1, 0xAED1, 0xB2B2, 0xAED8, 0xB2B3, 0xAED9, 0xB2B4, 0xAEDC, 0xB2B5, 0xAEE8, 0xB2B6, 0xAEEB, 0xB2B7, 0xAEED, 0xB2B8, 0xAEF4, + 0xB2B9, 0xAEF8, 0xB2BA, 0xAEFC, 0xB2BB, 0xAF07, 0xB2BC, 0xAF08, 0xB2BD, 0xAF0D, 0xB2BE, 0xAF10, 0xB2BF, 0xAF2C, 0xB2C0, 0xAF2D, + 0xB2C1, 0xAF30, 0xB2C2, 0xAF32, 0xB2C3, 0xAF34, 0xB2C4, 0xAF3C, 0xB2C5, 0xAF3D, 0xB2C6, 0xAF3F, 0xB2C7, 0xAF41, 0xB2C8, 0xAF42, + 0xB2C9, 0xAF43, 0xB2CA, 0xAF48, 0xB2CB, 0xAF49, 0xB2CC, 0xAF50, 0xB2CD, 0xAF5C, 0xB2CE, 0xAF5D, 0xB2CF, 0xAF64, 0xB2D0, 0xAF65, + 0xB2D1, 0xAF79, 0xB2D2, 0xAF80, 0xB2D3, 0xAF84, 0xB2D4, 0xAF88, 0xB2D5, 0xAF90, 0xB2D6, 0xAF91, 0xB2D7, 0xAF95, 0xB2D8, 0xAF9C, + 0xB2D9, 0xAFB8, 0xB2DA, 0xAFB9, 0xB2DB, 0xAFBC, 0xB2DC, 0xAFC0, 0xB2DD, 0xAFC7, 0xB2DE, 0xAFC8, 0xB2DF, 0xAFC9, 0xB2E0, 0xAFCB, + 0xB2E1, 0xAFCD, 0xB2E2, 0xAFCE, 0xB2E3, 0xAFD4, 0xB2E4, 0xAFDC, 0xB2E5, 0xAFE8, 0xB2E6, 0xAFE9, 0xB2E7, 0xAFF0, 0xB2E8, 0xAFF1, + 0xB2E9, 0xAFF4, 0xB2EA, 0xAFF8, 0xB2EB, 0xB000, 0xB2EC, 0xB001, 0xB2ED, 0xB004, 0xB2EE, 0xB00C, 0xB2EF, 0xB010, 0xB2F0, 0xB014, + 0xB2F1, 0xB01C, 0xB2F2, 0xB01D, 0xB2F3, 0xB028, 0xB2F4, 0xB044, 0xB2F5, 0xB045, 0xB2F6, 0xB048, 0xB2F7, 0xB04A, 0xB2F8, 0xB04C, + 0xB2F9, 0xB04E, 0xB2FA, 0xB053, 0xB2FB, 0xB054, 0xB2FC, 0xB055, 0xB2FD, 0xB057, 0xB2FE, 0xB059, 0xB341, 0xCFCC, 0xB342, 0xCFCD, + 0xB343, 0xCFCE, 0xB344, 0xCFCF, 0xB345, 0xCFD0, 0xB346, 0xCFD1, 0xB347, 0xCFD2, 0xB348, 0xCFD3, 0xB349, 0xCFD4, 0xB34A, 0xCFD5, + 0xB34B, 0xCFD6, 0xB34C, 0xCFD7, 0xB34D, 0xCFD8, 0xB34E, 0xCFD9, 0xB34F, 0xCFDA, 0xB350, 0xCFDB, 0xB351, 0xCFDC, 0xB352, 0xCFDD, + 0xB353, 0xCFDE, 0xB354, 0xCFDF, 0xB355, 0xCFE2, 0xB356, 0xCFE3, 0xB357, 0xCFE5, 0xB358, 0xCFE6, 0xB359, 0xCFE7, 0xB35A, 0xCFE9, + 0xB361, 0xCFEA, 0xB362, 0xCFEB, 0xB363, 0xCFEC, 0xB364, 0xCFED, 0xB365, 0xCFEE, 0xB366, 0xCFEF, 0xB367, 0xCFF2, 0xB368, 0xCFF4, + 0xB369, 0xCFF6, 0xB36A, 0xCFF7, 0xB36B, 0xCFF8, 0xB36C, 0xCFF9, 0xB36D, 0xCFFA, 0xB36E, 0xCFFB, 0xB36F, 0xCFFD, 0xB370, 0xCFFE, + 0xB371, 0xCFFF, 0xB372, 0xD001, 0xB373, 0xD002, 0xB374, 0xD003, 0xB375, 0xD005, 0xB376, 0xD006, 0xB377, 0xD007, 0xB378, 0xD008, + 0xB379, 0xD009, 0xB37A, 0xD00A, 0xB381, 0xD00B, 0xB382, 0xD00C, 0xB383, 0xD00D, 0xB384, 0xD00E, 0xB385, 0xD00F, 0xB386, 0xD010, + 0xB387, 0xD012, 0xB388, 0xD013, 0xB389, 0xD014, 0xB38A, 0xD015, 0xB38B, 0xD016, 0xB38C, 0xD017, 0xB38D, 0xD019, 0xB38E, 0xD01A, + 0xB38F, 0xD01B, 0xB390, 0xD01C, 0xB391, 0xD01D, 0xB392, 0xD01E, 0xB393, 0xD01F, 0xB394, 0xD020, 0xB395, 0xD021, 0xB396, 0xD022, + 0xB397, 0xD023, 0xB398, 0xD024, 0xB399, 0xD025, 0xB39A, 0xD026, 0xB39B, 0xD027, 0xB39C, 0xD028, 0xB39D, 0xD029, 0xB39E, 0xD02A, + 0xB39F, 0xD02B, 0xB3A0, 0xD02C, 0xB3A1, 0xB05D, 0xB3A2, 0xB07C, 0xB3A3, 0xB07D, 0xB3A4, 0xB080, 0xB3A5, 0xB084, 0xB3A6, 0xB08C, + 0xB3A7, 0xB08D, 0xB3A8, 0xB08F, 0xB3A9, 0xB091, 0xB3AA, 0xB098, 0xB3AB, 0xB099, 0xB3AC, 0xB09A, 0xB3AD, 0xB09C, 0xB3AE, 0xB09F, + 0xB3AF, 0xB0A0, 0xB3B0, 0xB0A1, 0xB3B1, 0xB0A2, 0xB3B2, 0xB0A8, 0xB3B3, 0xB0A9, 0xB3B4, 0xB0AB, 0xB3B5, 0xB0AC, 0xB3B6, 0xB0AD, + 0xB3B7, 0xB0AE, 0xB3B8, 0xB0AF, 0xB3B9, 0xB0B1, 0xB3BA, 0xB0B3, 0xB3BB, 0xB0B4, 0xB3BC, 0xB0B5, 0xB3BD, 0xB0B8, 0xB3BE, 0xB0BC, + 0xB3BF, 0xB0C4, 0xB3C0, 0xB0C5, 0xB3C1, 0xB0C7, 0xB3C2, 0xB0C8, 0xB3C3, 0xB0C9, 0xB3C4, 0xB0D0, 0xB3C5, 0xB0D1, 0xB3C6, 0xB0D4, + 0xB3C7, 0xB0D8, 0xB3C8, 0xB0E0, 0xB3C9, 0xB0E5, 0xB3CA, 0xB108, 0xB3CB, 0xB109, 0xB3CC, 0xB10B, 0xB3CD, 0xB10C, 0xB3CE, 0xB110, + 0xB3CF, 0xB112, 0xB3D0, 0xB113, 0xB3D1, 0xB118, 0xB3D2, 0xB119, 0xB3D3, 0xB11B, 0xB3D4, 0xB11C, 0xB3D5, 0xB11D, 0xB3D6, 0xB123, + 0xB3D7, 0xB124, 0xB3D8, 0xB125, 0xB3D9, 0xB128, 0xB3DA, 0xB12C, 0xB3DB, 0xB134, 0xB3DC, 0xB135, 0xB3DD, 0xB137, 0xB3DE, 0xB138, + 0xB3DF, 0xB139, 0xB3E0, 0xB140, 0xB3E1, 0xB141, 0xB3E2, 0xB144, 0xB3E3, 0xB148, 0xB3E4, 0xB150, 0xB3E5, 0xB151, 0xB3E6, 0xB154, + 0xB3E7, 0xB155, 0xB3E8, 0xB158, 0xB3E9, 0xB15C, 0xB3EA, 0xB160, 0xB3EB, 0xB178, 0xB3EC, 0xB179, 0xB3ED, 0xB17C, 0xB3EE, 0xB180, + 0xB3EF, 0xB182, 0xB3F0, 0xB188, 0xB3F1, 0xB189, 0xB3F2, 0xB18B, 0xB3F3, 0xB18D, 0xB3F4, 0xB192, 0xB3F5, 0xB193, 0xB3F6, 0xB194, + 0xB3F7, 0xB198, 0xB3F8, 0xB19C, 0xB3F9, 0xB1A8, 0xB3FA, 0xB1CC, 0xB3FB, 0xB1D0, 0xB3FC, 0xB1D4, 0xB3FD, 0xB1DC, 0xB3FE, 0xB1DD, + 0xB441, 0xD02E, 0xB442, 0xD02F, 0xB443, 0xD030, 0xB444, 0xD031, 0xB445, 0xD032, 0xB446, 0xD033, 0xB447, 0xD036, 0xB448, 0xD037, + 0xB449, 0xD039, 0xB44A, 0xD03A, 0xB44B, 0xD03B, 0xB44C, 0xD03D, 0xB44D, 0xD03E, 0xB44E, 0xD03F, 0xB44F, 0xD040, 0xB450, 0xD041, + 0xB451, 0xD042, 0xB452, 0xD043, 0xB453, 0xD046, 0xB454, 0xD048, 0xB455, 0xD04A, 0xB456, 0xD04B, 0xB457, 0xD04C, 0xB458, 0xD04D, + 0xB459, 0xD04E, 0xB45A, 0xD04F, 0xB461, 0xD051, 0xB462, 0xD052, 0xB463, 0xD053, 0xB464, 0xD055, 0xB465, 0xD056, 0xB466, 0xD057, + 0xB467, 0xD059, 0xB468, 0xD05A, 0xB469, 0xD05B, 0xB46A, 0xD05C, 0xB46B, 0xD05D, 0xB46C, 0xD05E, 0xB46D, 0xD05F, 0xB46E, 0xD061, + 0xB46F, 0xD062, 0xB470, 0xD063, 0xB471, 0xD064, 0xB472, 0xD065, 0xB473, 0xD066, 0xB474, 0xD067, 0xB475, 0xD068, 0xB476, 0xD069, + 0xB477, 0xD06A, 0xB478, 0xD06B, 0xB479, 0xD06E, 0xB47A, 0xD06F, 0xB481, 0xD071, 0xB482, 0xD072, 0xB483, 0xD073, 0xB484, 0xD075, + 0xB485, 0xD076, 0xB486, 0xD077, 0xB487, 0xD078, 0xB488, 0xD079, 0xB489, 0xD07A, 0xB48A, 0xD07B, 0xB48B, 0xD07E, 0xB48C, 0xD07F, + 0xB48D, 0xD080, 0xB48E, 0xD082, 0xB48F, 0xD083, 0xB490, 0xD084, 0xB491, 0xD085, 0xB492, 0xD086, 0xB493, 0xD087, 0xB494, 0xD088, + 0xB495, 0xD089, 0xB496, 0xD08A, 0xB497, 0xD08B, 0xB498, 0xD08C, 0xB499, 0xD08D, 0xB49A, 0xD08E, 0xB49B, 0xD08F, 0xB49C, 0xD090, + 0xB49D, 0xD091, 0xB49E, 0xD092, 0xB49F, 0xD093, 0xB4A0, 0xD094, 0xB4A1, 0xB1DF, 0xB4A2, 0xB1E8, 0xB4A3, 0xB1E9, 0xB4A4, 0xB1EC, + 0xB4A5, 0xB1F0, 0xB4A6, 0xB1F9, 0xB4A7, 0xB1FB, 0xB4A8, 0xB1FD, 0xB4A9, 0xB204, 0xB4AA, 0xB205, 0xB4AB, 0xB208, 0xB4AC, 0xB20B, + 0xB4AD, 0xB20C, 0xB4AE, 0xB214, 0xB4AF, 0xB215, 0xB4B0, 0xB217, 0xB4B1, 0xB219, 0xB4B2, 0xB220, 0xB4B3, 0xB234, 0xB4B4, 0xB23C, + 0xB4B5, 0xB258, 0xB4B6, 0xB25C, 0xB4B7, 0xB260, 0xB4B8, 0xB268, 0xB4B9, 0xB269, 0xB4BA, 0xB274, 0xB4BB, 0xB275, 0xB4BC, 0xB27C, + 0xB4BD, 0xB284, 0xB4BE, 0xB285, 0xB4BF, 0xB289, 0xB4C0, 0xB290, 0xB4C1, 0xB291, 0xB4C2, 0xB294, 0xB4C3, 0xB298, 0xB4C4, 0xB299, + 0xB4C5, 0xB29A, 0xB4C6, 0xB2A0, 0xB4C7, 0xB2A1, 0xB4C8, 0xB2A3, 0xB4C9, 0xB2A5, 0xB4CA, 0xB2A6, 0xB4CB, 0xB2AA, 0xB4CC, 0xB2AC, + 0xB4CD, 0xB2B0, 0xB4CE, 0xB2B4, 0xB4CF, 0xB2C8, 0xB4D0, 0xB2C9, 0xB4D1, 0xB2CC, 0xB4D2, 0xB2D0, 0xB4D3, 0xB2D2, 0xB4D4, 0xB2D8, + 0xB4D5, 0xB2D9, 0xB4D6, 0xB2DB, 0xB4D7, 0xB2DD, 0xB4D8, 0xB2E2, 0xB4D9, 0xB2E4, 0xB4DA, 0xB2E5, 0xB4DB, 0xB2E6, 0xB4DC, 0xB2E8, + 0xB4DD, 0xB2EB, 0xB4DE, 0xB2EC, 0xB4DF, 0xB2ED, 0xB4E0, 0xB2EE, 0xB4E1, 0xB2EF, 0xB4E2, 0xB2F3, 0xB4E3, 0xB2F4, 0xB4E4, 0xB2F5, + 0xB4E5, 0xB2F7, 0xB4E6, 0xB2F8, 0xB4E7, 0xB2F9, 0xB4E8, 0xB2FA, 0xB4E9, 0xB2FB, 0xB4EA, 0xB2FF, 0xB4EB, 0xB300, 0xB4EC, 0xB301, + 0xB4ED, 0xB304, 0xB4EE, 0xB308, 0xB4EF, 0xB310, 0xB4F0, 0xB311, 0xB4F1, 0xB313, 0xB4F2, 0xB314, 0xB4F3, 0xB315, 0xB4F4, 0xB31C, + 0xB4F5, 0xB354, 0xB4F6, 0xB355, 0xB4F7, 0xB356, 0xB4F8, 0xB358, 0xB4F9, 0xB35B, 0xB4FA, 0xB35C, 0xB4FB, 0xB35E, 0xB4FC, 0xB35F, + 0xB4FD, 0xB364, 0xB4FE, 0xB365, 0xB541, 0xD095, 0xB542, 0xD096, 0xB543, 0xD097, 0xB544, 0xD098, 0xB545, 0xD099, 0xB546, 0xD09A, + 0xB547, 0xD09B, 0xB548, 0xD09C, 0xB549, 0xD09D, 0xB54A, 0xD09E, 0xB54B, 0xD09F, 0xB54C, 0xD0A0, 0xB54D, 0xD0A1, 0xB54E, 0xD0A2, + 0xB54F, 0xD0A3, 0xB550, 0xD0A6, 0xB551, 0xD0A7, 0xB552, 0xD0A9, 0xB553, 0xD0AA, 0xB554, 0xD0AB, 0xB555, 0xD0AD, 0xB556, 0xD0AE, + 0xB557, 0xD0AF, 0xB558, 0xD0B0, 0xB559, 0xD0B1, 0xB55A, 0xD0B2, 0xB561, 0xD0B3, 0xB562, 0xD0B6, 0xB563, 0xD0B8, 0xB564, 0xD0BA, + 0xB565, 0xD0BB, 0xB566, 0xD0BC, 0xB567, 0xD0BD, 0xB568, 0xD0BE, 0xB569, 0xD0BF, 0xB56A, 0xD0C2, 0xB56B, 0xD0C3, 0xB56C, 0xD0C5, + 0xB56D, 0xD0C6, 0xB56E, 0xD0C7, 0xB56F, 0xD0CA, 0xB570, 0xD0CB, 0xB571, 0xD0CC, 0xB572, 0xD0CD, 0xB573, 0xD0CE, 0xB574, 0xD0CF, + 0xB575, 0xD0D2, 0xB576, 0xD0D6, 0xB577, 0xD0D7, 0xB578, 0xD0D8, 0xB579, 0xD0D9, 0xB57A, 0xD0DA, 0xB581, 0xD0DB, 0xB582, 0xD0DE, + 0xB583, 0xD0DF, 0xB584, 0xD0E1, 0xB585, 0xD0E2, 0xB586, 0xD0E3, 0xB587, 0xD0E5, 0xB588, 0xD0E6, 0xB589, 0xD0E7, 0xB58A, 0xD0E8, + 0xB58B, 0xD0E9, 0xB58C, 0xD0EA, 0xB58D, 0xD0EB, 0xB58E, 0xD0EE, 0xB58F, 0xD0F2, 0xB590, 0xD0F3, 0xB591, 0xD0F4, 0xB592, 0xD0F5, + 0xB593, 0xD0F6, 0xB594, 0xD0F7, 0xB595, 0xD0F9, 0xB596, 0xD0FA, 0xB597, 0xD0FB, 0xB598, 0xD0FC, 0xB599, 0xD0FD, 0xB59A, 0xD0FE, + 0xB59B, 0xD0FF, 0xB59C, 0xD100, 0xB59D, 0xD101, 0xB59E, 0xD102, 0xB59F, 0xD103, 0xB5A0, 0xD104, 0xB5A1, 0xB367, 0xB5A2, 0xB369, + 0xB5A3, 0xB36B, 0xB5A4, 0xB36E, 0xB5A5, 0xB370, 0xB5A6, 0xB371, 0xB5A7, 0xB374, 0xB5A8, 0xB378, 0xB5A9, 0xB380, 0xB5AA, 0xB381, + 0xB5AB, 0xB383, 0xB5AC, 0xB384, 0xB5AD, 0xB385, 0xB5AE, 0xB38C, 0xB5AF, 0xB390, 0xB5B0, 0xB394, 0xB5B1, 0xB3A0, 0xB5B2, 0xB3A1, + 0xB5B3, 0xB3A8, 0xB5B4, 0xB3AC, 0xB5B5, 0xB3C4, 0xB5B6, 0xB3C5, 0xB5B7, 0xB3C8, 0xB5B8, 0xB3CB, 0xB5B9, 0xB3CC, 0xB5BA, 0xB3CE, + 0xB5BB, 0xB3D0, 0xB5BC, 0xB3D4, 0xB5BD, 0xB3D5, 0xB5BE, 0xB3D7, 0xB5BF, 0xB3D9, 0xB5C0, 0xB3DB, 0xB5C1, 0xB3DD, 0xB5C2, 0xB3E0, + 0xB5C3, 0xB3E4, 0xB5C4, 0xB3E8, 0xB5C5, 0xB3FC, 0xB5C6, 0xB410, 0xB5C7, 0xB418, 0xB5C8, 0xB41C, 0xB5C9, 0xB420, 0xB5CA, 0xB428, + 0xB5CB, 0xB429, 0xB5CC, 0xB42B, 0xB5CD, 0xB434, 0xB5CE, 0xB450, 0xB5CF, 0xB451, 0xB5D0, 0xB454, 0xB5D1, 0xB458, 0xB5D2, 0xB460, + 0xB5D3, 0xB461, 0xB5D4, 0xB463, 0xB5D5, 0xB465, 0xB5D6, 0xB46C, 0xB5D7, 0xB480, 0xB5D8, 0xB488, 0xB5D9, 0xB49D, 0xB5DA, 0xB4A4, + 0xB5DB, 0xB4A8, 0xB5DC, 0xB4AC, 0xB5DD, 0xB4B5, 0xB5DE, 0xB4B7, 0xB5DF, 0xB4B9, 0xB5E0, 0xB4C0, 0xB5E1, 0xB4C4, 0xB5E2, 0xB4C8, + 0xB5E3, 0xB4D0, 0xB5E4, 0xB4D5, 0xB5E5, 0xB4DC, 0xB5E6, 0xB4DD, 0xB5E7, 0xB4E0, 0xB5E8, 0xB4E3, 0xB5E9, 0xB4E4, 0xB5EA, 0xB4E6, + 0xB5EB, 0xB4EC, 0xB5EC, 0xB4ED, 0xB5ED, 0xB4EF, 0xB5EE, 0xB4F1, 0xB5EF, 0xB4F8, 0xB5F0, 0xB514, 0xB5F1, 0xB515, 0xB5F2, 0xB518, + 0xB5F3, 0xB51B, 0xB5F4, 0xB51C, 0xB5F5, 0xB524, 0xB5F6, 0xB525, 0xB5F7, 0xB527, 0xB5F8, 0xB528, 0xB5F9, 0xB529, 0xB5FA, 0xB52A, + 0xB5FB, 0xB530, 0xB5FC, 0xB531, 0xB5FD, 0xB534, 0xB5FE, 0xB538, 0xB641, 0xD105, 0xB642, 0xD106, 0xB643, 0xD107, 0xB644, 0xD108, + 0xB645, 0xD109, 0xB646, 0xD10A, 0xB647, 0xD10B, 0xB648, 0xD10C, 0xB649, 0xD10E, 0xB64A, 0xD10F, 0xB64B, 0xD110, 0xB64C, 0xD111, + 0xB64D, 0xD112, 0xB64E, 0xD113, 0xB64F, 0xD114, 0xB650, 0xD115, 0xB651, 0xD116, 0xB652, 0xD117, 0xB653, 0xD118, 0xB654, 0xD119, + 0xB655, 0xD11A, 0xB656, 0xD11B, 0xB657, 0xD11C, 0xB658, 0xD11D, 0xB659, 0xD11E, 0xB65A, 0xD11F, 0xB661, 0xD120, 0xB662, 0xD121, + 0xB663, 0xD122, 0xB664, 0xD123, 0xB665, 0xD124, 0xB666, 0xD125, 0xB667, 0xD126, 0xB668, 0xD127, 0xB669, 0xD128, 0xB66A, 0xD129, + 0xB66B, 0xD12A, 0xB66C, 0xD12B, 0xB66D, 0xD12C, 0xB66E, 0xD12D, 0xB66F, 0xD12E, 0xB670, 0xD12F, 0xB671, 0xD132, 0xB672, 0xD133, + 0xB673, 0xD135, 0xB674, 0xD136, 0xB675, 0xD137, 0xB676, 0xD139, 0xB677, 0xD13B, 0xB678, 0xD13C, 0xB679, 0xD13D, 0xB67A, 0xD13E, + 0xB681, 0xD13F, 0xB682, 0xD142, 0xB683, 0xD146, 0xB684, 0xD147, 0xB685, 0xD148, 0xB686, 0xD149, 0xB687, 0xD14A, 0xB688, 0xD14B, + 0xB689, 0xD14E, 0xB68A, 0xD14F, 0xB68B, 0xD151, 0xB68C, 0xD152, 0xB68D, 0xD153, 0xB68E, 0xD155, 0xB68F, 0xD156, 0xB690, 0xD157, + 0xB691, 0xD158, 0xB692, 0xD159, 0xB693, 0xD15A, 0xB694, 0xD15B, 0xB695, 0xD15E, 0xB696, 0xD160, 0xB697, 0xD162, 0xB698, 0xD163, + 0xB699, 0xD164, 0xB69A, 0xD165, 0xB69B, 0xD166, 0xB69C, 0xD167, 0xB69D, 0xD169, 0xB69E, 0xD16A, 0xB69F, 0xD16B, 0xB6A0, 0xD16D, + 0xB6A1, 0xB540, 0xB6A2, 0xB541, 0xB6A3, 0xB543, 0xB6A4, 0xB544, 0xB6A5, 0xB545, 0xB6A6, 0xB54B, 0xB6A7, 0xB54C, 0xB6A8, 0xB54D, + 0xB6A9, 0xB550, 0xB6AA, 0xB554, 0xB6AB, 0xB55C, 0xB6AC, 0xB55D, 0xB6AD, 0xB55F, 0xB6AE, 0xB560, 0xB6AF, 0xB561, 0xB6B0, 0xB5A0, + 0xB6B1, 0xB5A1, 0xB6B2, 0xB5A4, 0xB6B3, 0xB5A8, 0xB6B4, 0xB5AA, 0xB6B5, 0xB5AB, 0xB6B6, 0xB5B0, 0xB6B7, 0xB5B1, 0xB6B8, 0xB5B3, + 0xB6B9, 0xB5B4, 0xB6BA, 0xB5B5, 0xB6BB, 0xB5BB, 0xB6BC, 0xB5BC, 0xB6BD, 0xB5BD, 0xB6BE, 0xB5C0, 0xB6BF, 0xB5C4, 0xB6C0, 0xB5CC, + 0xB6C1, 0xB5CD, 0xB6C2, 0xB5CF, 0xB6C3, 0xB5D0, 0xB6C4, 0xB5D1, 0xB6C5, 0xB5D8, 0xB6C6, 0xB5EC, 0xB6C7, 0xB610, 0xB6C8, 0xB611, + 0xB6C9, 0xB614, 0xB6CA, 0xB618, 0xB6CB, 0xB625, 0xB6CC, 0xB62C, 0xB6CD, 0xB634, 0xB6CE, 0xB648, 0xB6CF, 0xB664, 0xB6D0, 0xB668, + 0xB6D1, 0xB69C, 0xB6D2, 0xB69D, 0xB6D3, 0xB6A0, 0xB6D4, 0xB6A4, 0xB6D5, 0xB6AB, 0xB6D6, 0xB6AC, 0xB6D7, 0xB6B1, 0xB6D8, 0xB6D4, + 0xB6D9, 0xB6F0, 0xB6DA, 0xB6F4, 0xB6DB, 0xB6F8, 0xB6DC, 0xB700, 0xB6DD, 0xB701, 0xB6DE, 0xB705, 0xB6DF, 0xB728, 0xB6E0, 0xB729, + 0xB6E1, 0xB72C, 0xB6E2, 0xB72F, 0xB6E3, 0xB730, 0xB6E4, 0xB738, 0xB6E5, 0xB739, 0xB6E6, 0xB73B, 0xB6E7, 0xB744, 0xB6E8, 0xB748, + 0xB6E9, 0xB74C, 0xB6EA, 0xB754, 0xB6EB, 0xB755, 0xB6EC, 0xB760, 0xB6ED, 0xB764, 0xB6EE, 0xB768, 0xB6EF, 0xB770, 0xB6F0, 0xB771, + 0xB6F1, 0xB773, 0xB6F2, 0xB775, 0xB6F3, 0xB77C, 0xB6F4, 0xB77D, 0xB6F5, 0xB780, 0xB6F6, 0xB784, 0xB6F7, 0xB78C, 0xB6F8, 0xB78D, + 0xB6F9, 0xB78F, 0xB6FA, 0xB790, 0xB6FB, 0xB791, 0xB6FC, 0xB792, 0xB6FD, 0xB796, 0xB6FE, 0xB797, 0xB741, 0xD16E, 0xB742, 0xD16F, + 0xB743, 0xD170, 0xB744, 0xD171, 0xB745, 0xD172, 0xB746, 0xD173, 0xB747, 0xD174, 0xB748, 0xD175, 0xB749, 0xD176, 0xB74A, 0xD177, + 0xB74B, 0xD178, 0xB74C, 0xD179, 0xB74D, 0xD17A, 0xB74E, 0xD17B, 0xB74F, 0xD17D, 0xB750, 0xD17E, 0xB751, 0xD17F, 0xB752, 0xD180, + 0xB753, 0xD181, 0xB754, 0xD182, 0xB755, 0xD183, 0xB756, 0xD185, 0xB757, 0xD186, 0xB758, 0xD187, 0xB759, 0xD189, 0xB75A, 0xD18A, + 0xB761, 0xD18B, 0xB762, 0xD18C, 0xB763, 0xD18D, 0xB764, 0xD18E, 0xB765, 0xD18F, 0xB766, 0xD190, 0xB767, 0xD191, 0xB768, 0xD192, + 0xB769, 0xD193, 0xB76A, 0xD194, 0xB76B, 0xD195, 0xB76C, 0xD196, 0xB76D, 0xD197, 0xB76E, 0xD198, 0xB76F, 0xD199, 0xB770, 0xD19A, + 0xB771, 0xD19B, 0xB772, 0xD19C, 0xB773, 0xD19D, 0xB774, 0xD19E, 0xB775, 0xD19F, 0xB776, 0xD1A2, 0xB777, 0xD1A3, 0xB778, 0xD1A5, + 0xB779, 0xD1A6, 0xB77A, 0xD1A7, 0xB781, 0xD1A9, 0xB782, 0xD1AA, 0xB783, 0xD1AB, 0xB784, 0xD1AC, 0xB785, 0xD1AD, 0xB786, 0xD1AE, + 0xB787, 0xD1AF, 0xB788, 0xD1B2, 0xB789, 0xD1B4, 0xB78A, 0xD1B6, 0xB78B, 0xD1B7, 0xB78C, 0xD1B8, 0xB78D, 0xD1B9, 0xB78E, 0xD1BB, + 0xB78F, 0xD1BD, 0xB790, 0xD1BE, 0xB791, 0xD1BF, 0xB792, 0xD1C1, 0xB793, 0xD1C2, 0xB794, 0xD1C3, 0xB795, 0xD1C4, 0xB796, 0xD1C5, + 0xB797, 0xD1C6, 0xB798, 0xD1C7, 0xB799, 0xD1C8, 0xB79A, 0xD1C9, 0xB79B, 0xD1CA, 0xB79C, 0xD1CB, 0xB79D, 0xD1CC, 0xB79E, 0xD1CD, + 0xB79F, 0xD1CE, 0xB7A0, 0xD1CF, 0xB7A1, 0xB798, 0xB7A2, 0xB799, 0xB7A3, 0xB79C, 0xB7A4, 0xB7A0, 0xB7A5, 0xB7A8, 0xB7A6, 0xB7A9, + 0xB7A7, 0xB7AB, 0xB7A8, 0xB7AC, 0xB7A9, 0xB7AD, 0xB7AA, 0xB7B4, 0xB7AB, 0xB7B5, 0xB7AC, 0xB7B8, 0xB7AD, 0xB7C7, 0xB7AE, 0xB7C9, + 0xB7AF, 0xB7EC, 0xB7B0, 0xB7ED, 0xB7B1, 0xB7F0, 0xB7B2, 0xB7F4, 0xB7B3, 0xB7FC, 0xB7B4, 0xB7FD, 0xB7B5, 0xB7FF, 0xB7B6, 0xB800, + 0xB7B7, 0xB801, 0xB7B8, 0xB807, 0xB7B9, 0xB808, 0xB7BA, 0xB809, 0xB7BB, 0xB80C, 0xB7BC, 0xB810, 0xB7BD, 0xB818, 0xB7BE, 0xB819, + 0xB7BF, 0xB81B, 0xB7C0, 0xB81D, 0xB7C1, 0xB824, 0xB7C2, 0xB825, 0xB7C3, 0xB828, 0xB7C4, 0xB82C, 0xB7C5, 0xB834, 0xB7C6, 0xB835, + 0xB7C7, 0xB837, 0xB7C8, 0xB838, 0xB7C9, 0xB839, 0xB7CA, 0xB840, 0xB7CB, 0xB844, 0xB7CC, 0xB851, 0xB7CD, 0xB853, 0xB7CE, 0xB85C, + 0xB7CF, 0xB85D, 0xB7D0, 0xB860, 0xB7D1, 0xB864, 0xB7D2, 0xB86C, 0xB7D3, 0xB86D, 0xB7D4, 0xB86F, 0xB7D5, 0xB871, 0xB7D6, 0xB878, + 0xB7D7, 0xB87C, 0xB7D8, 0xB88D, 0xB7D9, 0xB8A8, 0xB7DA, 0xB8B0, 0xB7DB, 0xB8B4, 0xB7DC, 0xB8B8, 0xB7DD, 0xB8C0, 0xB7DE, 0xB8C1, + 0xB7DF, 0xB8C3, 0xB7E0, 0xB8C5, 0xB7E1, 0xB8CC, 0xB7E2, 0xB8D0, 0xB7E3, 0xB8D4, 0xB7E4, 0xB8DD, 0xB7E5, 0xB8DF, 0xB7E6, 0xB8E1, + 0xB7E7, 0xB8E8, 0xB7E8, 0xB8E9, 0xB7E9, 0xB8EC, 0xB7EA, 0xB8F0, 0xB7EB, 0xB8F8, 0xB7EC, 0xB8F9, 0xB7ED, 0xB8FB, 0xB7EE, 0xB8FD, + 0xB7EF, 0xB904, 0xB7F0, 0xB918, 0xB7F1, 0xB920, 0xB7F2, 0xB93C, 0xB7F3, 0xB93D, 0xB7F4, 0xB940, 0xB7F5, 0xB944, 0xB7F6, 0xB94C, + 0xB7F7, 0xB94F, 0xB7F8, 0xB951, 0xB7F9, 0xB958, 0xB7FA, 0xB959, 0xB7FB, 0xB95C, 0xB7FC, 0xB960, 0xB7FD, 0xB968, 0xB7FE, 0xB969, + 0xB841, 0xD1D0, 0xB842, 0xD1D1, 0xB843, 0xD1D2, 0xB844, 0xD1D3, 0xB845, 0xD1D4, 0xB846, 0xD1D5, 0xB847, 0xD1D6, 0xB848, 0xD1D7, + 0xB849, 0xD1D9, 0xB84A, 0xD1DA, 0xB84B, 0xD1DB, 0xB84C, 0xD1DC, 0xB84D, 0xD1DD, 0xB84E, 0xD1DE, 0xB84F, 0xD1DF, 0xB850, 0xD1E0, + 0xB851, 0xD1E1, 0xB852, 0xD1E2, 0xB853, 0xD1E3, 0xB854, 0xD1E4, 0xB855, 0xD1E5, 0xB856, 0xD1E6, 0xB857, 0xD1E7, 0xB858, 0xD1E8, + 0xB859, 0xD1E9, 0xB85A, 0xD1EA, 0xB861, 0xD1EB, 0xB862, 0xD1EC, 0xB863, 0xD1ED, 0xB864, 0xD1EE, 0xB865, 0xD1EF, 0xB866, 0xD1F0, + 0xB867, 0xD1F1, 0xB868, 0xD1F2, 0xB869, 0xD1F3, 0xB86A, 0xD1F5, 0xB86B, 0xD1F6, 0xB86C, 0xD1F7, 0xB86D, 0xD1F9, 0xB86E, 0xD1FA, + 0xB86F, 0xD1FB, 0xB870, 0xD1FC, 0xB871, 0xD1FD, 0xB872, 0xD1FE, 0xB873, 0xD1FF, 0xB874, 0xD200, 0xB875, 0xD201, 0xB876, 0xD202, + 0xB877, 0xD203, 0xB878, 0xD204, 0xB879, 0xD205, 0xB87A, 0xD206, 0xB881, 0xD208, 0xB882, 0xD20A, 0xB883, 0xD20B, 0xB884, 0xD20C, + 0xB885, 0xD20D, 0xB886, 0xD20E, 0xB887, 0xD20F, 0xB888, 0xD211, 0xB889, 0xD212, 0xB88A, 0xD213, 0xB88B, 0xD214, 0xB88C, 0xD215, + 0xB88D, 0xD216, 0xB88E, 0xD217, 0xB88F, 0xD218, 0xB890, 0xD219, 0xB891, 0xD21A, 0xB892, 0xD21B, 0xB893, 0xD21C, 0xB894, 0xD21D, + 0xB895, 0xD21E, 0xB896, 0xD21F, 0xB897, 0xD220, 0xB898, 0xD221, 0xB899, 0xD222, 0xB89A, 0xD223, 0xB89B, 0xD224, 0xB89C, 0xD225, + 0xB89D, 0xD226, 0xB89E, 0xD227, 0xB89F, 0xD228, 0xB8A0, 0xD229, 0xB8A1, 0xB96B, 0xB8A2, 0xB96D, 0xB8A3, 0xB974, 0xB8A4, 0xB975, + 0xB8A5, 0xB978, 0xB8A6, 0xB97C, 0xB8A7, 0xB984, 0xB8A8, 0xB985, 0xB8A9, 0xB987, 0xB8AA, 0xB989, 0xB8AB, 0xB98A, 0xB8AC, 0xB98D, + 0xB8AD, 0xB98E, 0xB8AE, 0xB9AC, 0xB8AF, 0xB9AD, 0xB8B0, 0xB9B0, 0xB8B1, 0xB9B4, 0xB8B2, 0xB9BC, 0xB8B3, 0xB9BD, 0xB8B4, 0xB9BF, + 0xB8B5, 0xB9C1, 0xB8B6, 0xB9C8, 0xB8B7, 0xB9C9, 0xB8B8, 0xB9CC, 0xB8B9, 0xB9CE, 0xB8BA, 0xB9CF, 0xB8BB, 0xB9D0, 0xB8BC, 0xB9D1, + 0xB8BD, 0xB9D2, 0xB8BE, 0xB9D8, 0xB8BF, 0xB9D9, 0xB8C0, 0xB9DB, 0xB8C1, 0xB9DD, 0xB8C2, 0xB9DE, 0xB8C3, 0xB9E1, 0xB8C4, 0xB9E3, + 0xB8C5, 0xB9E4, 0xB8C6, 0xB9E5, 0xB8C7, 0xB9E8, 0xB8C8, 0xB9EC, 0xB8C9, 0xB9F4, 0xB8CA, 0xB9F5, 0xB8CB, 0xB9F7, 0xB8CC, 0xB9F8, + 0xB8CD, 0xB9F9, 0xB8CE, 0xB9FA, 0xB8CF, 0xBA00, 0xB8D0, 0xBA01, 0xB8D1, 0xBA08, 0xB8D2, 0xBA15, 0xB8D3, 0xBA38, 0xB8D4, 0xBA39, + 0xB8D5, 0xBA3C, 0xB8D6, 0xBA40, 0xB8D7, 0xBA42, 0xB8D8, 0xBA48, 0xB8D9, 0xBA49, 0xB8DA, 0xBA4B, 0xB8DB, 0xBA4D, 0xB8DC, 0xBA4E, + 0xB8DD, 0xBA53, 0xB8DE, 0xBA54, 0xB8DF, 0xBA55, 0xB8E0, 0xBA58, 0xB8E1, 0xBA5C, 0xB8E2, 0xBA64, 0xB8E3, 0xBA65, 0xB8E4, 0xBA67, + 0xB8E5, 0xBA68, 0xB8E6, 0xBA69, 0xB8E7, 0xBA70, 0xB8E8, 0xBA71, 0xB8E9, 0xBA74, 0xB8EA, 0xBA78, 0xB8EB, 0xBA83, 0xB8EC, 0xBA84, + 0xB8ED, 0xBA85, 0xB8EE, 0xBA87, 0xB8EF, 0xBA8C, 0xB8F0, 0xBAA8, 0xB8F1, 0xBAA9, 0xB8F2, 0xBAAB, 0xB8F3, 0xBAAC, 0xB8F4, 0xBAB0, + 0xB8F5, 0xBAB2, 0xB8F6, 0xBAB8, 0xB8F7, 0xBAB9, 0xB8F8, 0xBABB, 0xB8F9, 0xBABD, 0xB8FA, 0xBAC4, 0xB8FB, 0xBAC8, 0xB8FC, 0xBAD8, + 0xB8FD, 0xBAD9, 0xB8FE, 0xBAFC, 0xB941, 0xD22A, 0xB942, 0xD22B, 0xB943, 0xD22E, 0xB944, 0xD22F, 0xB945, 0xD231, 0xB946, 0xD232, + 0xB947, 0xD233, 0xB948, 0xD235, 0xB949, 0xD236, 0xB94A, 0xD237, 0xB94B, 0xD238, 0xB94C, 0xD239, 0xB94D, 0xD23A, 0xB94E, 0xD23B, + 0xB94F, 0xD23E, 0xB950, 0xD240, 0xB951, 0xD242, 0xB952, 0xD243, 0xB953, 0xD244, 0xB954, 0xD245, 0xB955, 0xD246, 0xB956, 0xD247, + 0xB957, 0xD249, 0xB958, 0xD24A, 0xB959, 0xD24B, 0xB95A, 0xD24C, 0xB961, 0xD24D, 0xB962, 0xD24E, 0xB963, 0xD24F, 0xB964, 0xD250, + 0xB965, 0xD251, 0xB966, 0xD252, 0xB967, 0xD253, 0xB968, 0xD254, 0xB969, 0xD255, 0xB96A, 0xD256, 0xB96B, 0xD257, 0xB96C, 0xD258, + 0xB96D, 0xD259, 0xB96E, 0xD25A, 0xB96F, 0xD25B, 0xB970, 0xD25D, 0xB971, 0xD25E, 0xB972, 0xD25F, 0xB973, 0xD260, 0xB974, 0xD261, + 0xB975, 0xD262, 0xB976, 0xD263, 0xB977, 0xD265, 0xB978, 0xD266, 0xB979, 0xD267, 0xB97A, 0xD268, 0xB981, 0xD269, 0xB982, 0xD26A, + 0xB983, 0xD26B, 0xB984, 0xD26C, 0xB985, 0xD26D, 0xB986, 0xD26E, 0xB987, 0xD26F, 0xB988, 0xD270, 0xB989, 0xD271, 0xB98A, 0xD272, + 0xB98B, 0xD273, 0xB98C, 0xD274, 0xB98D, 0xD275, 0xB98E, 0xD276, 0xB98F, 0xD277, 0xB990, 0xD278, 0xB991, 0xD279, 0xB992, 0xD27A, + 0xB993, 0xD27B, 0xB994, 0xD27C, 0xB995, 0xD27D, 0xB996, 0xD27E, 0xB997, 0xD27F, 0xB998, 0xD282, 0xB999, 0xD283, 0xB99A, 0xD285, + 0xB99B, 0xD286, 0xB99C, 0xD287, 0xB99D, 0xD289, 0xB99E, 0xD28A, 0xB99F, 0xD28B, 0xB9A0, 0xD28C, 0xB9A1, 0xBB00, 0xB9A2, 0xBB04, + 0xB9A3, 0xBB0D, 0xB9A4, 0xBB0F, 0xB9A5, 0xBB11, 0xB9A6, 0xBB18, 0xB9A7, 0xBB1C, 0xB9A8, 0xBB20, 0xB9A9, 0xBB29, 0xB9AA, 0xBB2B, + 0xB9AB, 0xBB34, 0xB9AC, 0xBB35, 0xB9AD, 0xBB36, 0xB9AE, 0xBB38, 0xB9AF, 0xBB3B, 0xB9B0, 0xBB3C, 0xB9B1, 0xBB3D, 0xB9B2, 0xBB3E, + 0xB9B3, 0xBB44, 0xB9B4, 0xBB45, 0xB9B5, 0xBB47, 0xB9B6, 0xBB49, 0xB9B7, 0xBB4D, 0xB9B8, 0xBB4F, 0xB9B9, 0xBB50, 0xB9BA, 0xBB54, + 0xB9BB, 0xBB58, 0xB9BC, 0xBB61, 0xB9BD, 0xBB63, 0xB9BE, 0xBB6C, 0xB9BF, 0xBB88, 0xB9C0, 0xBB8C, 0xB9C1, 0xBB90, 0xB9C2, 0xBBA4, + 0xB9C3, 0xBBA8, 0xB9C4, 0xBBAC, 0xB9C5, 0xBBB4, 0xB9C6, 0xBBB7, 0xB9C7, 0xBBC0, 0xB9C8, 0xBBC4, 0xB9C9, 0xBBC8, 0xB9CA, 0xBBD0, + 0xB9CB, 0xBBD3, 0xB9CC, 0xBBF8, 0xB9CD, 0xBBF9, 0xB9CE, 0xBBFC, 0xB9CF, 0xBBFF, 0xB9D0, 0xBC00, 0xB9D1, 0xBC02, 0xB9D2, 0xBC08, + 0xB9D3, 0xBC09, 0xB9D4, 0xBC0B, 0xB9D5, 0xBC0C, 0xB9D6, 0xBC0D, 0xB9D7, 0xBC0F, 0xB9D8, 0xBC11, 0xB9D9, 0xBC14, 0xB9DA, 0xBC15, + 0xB9DB, 0xBC16, 0xB9DC, 0xBC17, 0xB9DD, 0xBC18, 0xB9DE, 0xBC1B, 0xB9DF, 0xBC1C, 0xB9E0, 0xBC1D, 0xB9E1, 0xBC1E, 0xB9E2, 0xBC1F, + 0xB9E3, 0xBC24, 0xB9E4, 0xBC25, 0xB9E5, 0xBC27, 0xB9E6, 0xBC29, 0xB9E7, 0xBC2D, 0xB9E8, 0xBC30, 0xB9E9, 0xBC31, 0xB9EA, 0xBC34, + 0xB9EB, 0xBC38, 0xB9EC, 0xBC40, 0xB9ED, 0xBC41, 0xB9EE, 0xBC43, 0xB9EF, 0xBC44, 0xB9F0, 0xBC45, 0xB9F1, 0xBC49, 0xB9F2, 0xBC4C, + 0xB9F3, 0xBC4D, 0xB9F4, 0xBC50, 0xB9F5, 0xBC5D, 0xB9F6, 0xBC84, 0xB9F7, 0xBC85, 0xB9F8, 0xBC88, 0xB9F9, 0xBC8B, 0xB9FA, 0xBC8C, + 0xB9FB, 0xBC8E, 0xB9FC, 0xBC94, 0xB9FD, 0xBC95, 0xB9FE, 0xBC97, 0xBA41, 0xD28D, 0xBA42, 0xD28E, 0xBA43, 0xD28F, 0xBA44, 0xD292, + 0xBA45, 0xD293, 0xBA46, 0xD294, 0xBA47, 0xD296, 0xBA48, 0xD297, 0xBA49, 0xD298, 0xBA4A, 0xD299, 0xBA4B, 0xD29A, 0xBA4C, 0xD29B, + 0xBA4D, 0xD29D, 0xBA4E, 0xD29E, 0xBA4F, 0xD29F, 0xBA50, 0xD2A1, 0xBA51, 0xD2A2, 0xBA52, 0xD2A3, 0xBA53, 0xD2A5, 0xBA54, 0xD2A6, + 0xBA55, 0xD2A7, 0xBA56, 0xD2A8, 0xBA57, 0xD2A9, 0xBA58, 0xD2AA, 0xBA59, 0xD2AB, 0xBA5A, 0xD2AD, 0xBA61, 0xD2AE, 0xBA62, 0xD2AF, + 0xBA63, 0xD2B0, 0xBA64, 0xD2B2, 0xBA65, 0xD2B3, 0xBA66, 0xD2B4, 0xBA67, 0xD2B5, 0xBA68, 0xD2B6, 0xBA69, 0xD2B7, 0xBA6A, 0xD2BA, + 0xBA6B, 0xD2BB, 0xBA6C, 0xD2BD, 0xBA6D, 0xD2BE, 0xBA6E, 0xD2C1, 0xBA6F, 0xD2C3, 0xBA70, 0xD2C4, 0xBA71, 0xD2C5, 0xBA72, 0xD2C6, + 0xBA73, 0xD2C7, 0xBA74, 0xD2CA, 0xBA75, 0xD2CC, 0xBA76, 0xD2CD, 0xBA77, 0xD2CE, 0xBA78, 0xD2CF, 0xBA79, 0xD2D0, 0xBA7A, 0xD2D1, + 0xBA81, 0xD2D2, 0xBA82, 0xD2D3, 0xBA83, 0xD2D5, 0xBA84, 0xD2D6, 0xBA85, 0xD2D7, 0xBA86, 0xD2D9, 0xBA87, 0xD2DA, 0xBA88, 0xD2DB, + 0xBA89, 0xD2DD, 0xBA8A, 0xD2DE, 0xBA8B, 0xD2DF, 0xBA8C, 0xD2E0, 0xBA8D, 0xD2E1, 0xBA8E, 0xD2E2, 0xBA8F, 0xD2E3, 0xBA90, 0xD2E6, + 0xBA91, 0xD2E7, 0xBA92, 0xD2E8, 0xBA93, 0xD2E9, 0xBA94, 0xD2EA, 0xBA95, 0xD2EB, 0xBA96, 0xD2EC, 0xBA97, 0xD2ED, 0xBA98, 0xD2EE, + 0xBA99, 0xD2EF, 0xBA9A, 0xD2F2, 0xBA9B, 0xD2F3, 0xBA9C, 0xD2F5, 0xBA9D, 0xD2F6, 0xBA9E, 0xD2F7, 0xBA9F, 0xD2F9, 0xBAA0, 0xD2FA, + 0xBAA1, 0xBC99, 0xBAA2, 0xBC9A, 0xBAA3, 0xBCA0, 0xBAA4, 0xBCA1, 0xBAA5, 0xBCA4, 0xBAA6, 0xBCA7, 0xBAA7, 0xBCA8, 0xBAA8, 0xBCB0, + 0xBAA9, 0xBCB1, 0xBAAA, 0xBCB3, 0xBAAB, 0xBCB4, 0xBAAC, 0xBCB5, 0xBAAD, 0xBCBC, 0xBAAE, 0xBCBD, 0xBAAF, 0xBCC0, 0xBAB0, 0xBCC4, + 0xBAB1, 0xBCCD, 0xBAB2, 0xBCCF, 0xBAB3, 0xBCD0, 0xBAB4, 0xBCD1, 0xBAB5, 0xBCD5, 0xBAB6, 0xBCD8, 0xBAB7, 0xBCDC, 0xBAB8, 0xBCF4, + 0xBAB9, 0xBCF5, 0xBABA, 0xBCF6, 0xBABB, 0xBCF8, 0xBABC, 0xBCFC, 0xBABD, 0xBD04, 0xBABE, 0xBD05, 0xBABF, 0xBD07, 0xBAC0, 0xBD09, + 0xBAC1, 0xBD10, 0xBAC2, 0xBD14, 0xBAC3, 0xBD24, 0xBAC4, 0xBD2C, 0xBAC5, 0xBD40, 0xBAC6, 0xBD48, 0xBAC7, 0xBD49, 0xBAC8, 0xBD4C, + 0xBAC9, 0xBD50, 0xBACA, 0xBD58, 0xBACB, 0xBD59, 0xBACC, 0xBD64, 0xBACD, 0xBD68, 0xBACE, 0xBD80, 0xBACF, 0xBD81, 0xBAD0, 0xBD84, + 0xBAD1, 0xBD87, 0xBAD2, 0xBD88, 0xBAD3, 0xBD89, 0xBAD4, 0xBD8A, 0xBAD5, 0xBD90, 0xBAD6, 0xBD91, 0xBAD7, 0xBD93, 0xBAD8, 0xBD95, + 0xBAD9, 0xBD99, 0xBADA, 0xBD9A, 0xBADB, 0xBD9C, 0xBADC, 0xBDA4, 0xBADD, 0xBDB0, 0xBADE, 0xBDB8, 0xBADF, 0xBDD4, 0xBAE0, 0xBDD5, + 0xBAE1, 0xBDD8, 0xBAE2, 0xBDDC, 0xBAE3, 0xBDE9, 0xBAE4, 0xBDF0, 0xBAE5, 0xBDF4, 0xBAE6, 0xBDF8, 0xBAE7, 0xBE00, 0xBAE8, 0xBE03, + 0xBAE9, 0xBE05, 0xBAEA, 0xBE0C, 0xBAEB, 0xBE0D, 0xBAEC, 0xBE10, 0xBAED, 0xBE14, 0xBAEE, 0xBE1C, 0xBAEF, 0xBE1D, 0xBAF0, 0xBE1F, + 0xBAF1, 0xBE44, 0xBAF2, 0xBE45, 0xBAF3, 0xBE48, 0xBAF4, 0xBE4C, 0xBAF5, 0xBE4E, 0xBAF6, 0xBE54, 0xBAF7, 0xBE55, 0xBAF8, 0xBE57, + 0xBAF9, 0xBE59, 0xBAFA, 0xBE5A, 0xBAFB, 0xBE5B, 0xBAFC, 0xBE60, 0xBAFD, 0xBE61, 0xBAFE, 0xBE64, 0xBB41, 0xD2FB, 0xBB42, 0xD2FC, + 0xBB43, 0xD2FD, 0xBB44, 0xD2FE, 0xBB45, 0xD2FF, 0xBB46, 0xD302, 0xBB47, 0xD304, 0xBB48, 0xD306, 0xBB49, 0xD307, 0xBB4A, 0xD308, + 0xBB4B, 0xD309, 0xBB4C, 0xD30A, 0xBB4D, 0xD30B, 0xBB4E, 0xD30F, 0xBB4F, 0xD311, 0xBB50, 0xD312, 0xBB51, 0xD313, 0xBB52, 0xD315, + 0xBB53, 0xD317, 0xBB54, 0xD318, 0xBB55, 0xD319, 0xBB56, 0xD31A, 0xBB57, 0xD31B, 0xBB58, 0xD31E, 0xBB59, 0xD322, 0xBB5A, 0xD323, + 0xBB61, 0xD324, 0xBB62, 0xD326, 0xBB63, 0xD327, 0xBB64, 0xD32A, 0xBB65, 0xD32B, 0xBB66, 0xD32D, 0xBB67, 0xD32E, 0xBB68, 0xD32F, + 0xBB69, 0xD331, 0xBB6A, 0xD332, 0xBB6B, 0xD333, 0xBB6C, 0xD334, 0xBB6D, 0xD335, 0xBB6E, 0xD336, 0xBB6F, 0xD337, 0xBB70, 0xD33A, + 0xBB71, 0xD33E, 0xBB72, 0xD33F, 0xBB73, 0xD340, 0xBB74, 0xD341, 0xBB75, 0xD342, 0xBB76, 0xD343, 0xBB77, 0xD346, 0xBB78, 0xD347, + 0xBB79, 0xD348, 0xBB7A, 0xD349, 0xBB81, 0xD34A, 0xBB82, 0xD34B, 0xBB83, 0xD34C, 0xBB84, 0xD34D, 0xBB85, 0xD34E, 0xBB86, 0xD34F, + 0xBB87, 0xD350, 0xBB88, 0xD351, 0xBB89, 0xD352, 0xBB8A, 0xD353, 0xBB8B, 0xD354, 0xBB8C, 0xD355, 0xBB8D, 0xD356, 0xBB8E, 0xD357, + 0xBB8F, 0xD358, 0xBB90, 0xD359, 0xBB91, 0xD35A, 0xBB92, 0xD35B, 0xBB93, 0xD35C, 0xBB94, 0xD35D, 0xBB95, 0xD35E, 0xBB96, 0xD35F, + 0xBB97, 0xD360, 0xBB98, 0xD361, 0xBB99, 0xD362, 0xBB9A, 0xD363, 0xBB9B, 0xD364, 0xBB9C, 0xD365, 0xBB9D, 0xD366, 0xBB9E, 0xD367, + 0xBB9F, 0xD368, 0xBBA0, 0xD369, 0xBBA1, 0xBE68, 0xBBA2, 0xBE6A, 0xBBA3, 0xBE70, 0xBBA4, 0xBE71, 0xBBA5, 0xBE73, 0xBBA6, 0xBE74, + 0xBBA7, 0xBE75, 0xBBA8, 0xBE7B, 0xBBA9, 0xBE7C, 0xBBAA, 0xBE7D, 0xBBAB, 0xBE80, 0xBBAC, 0xBE84, 0xBBAD, 0xBE8C, 0xBBAE, 0xBE8D, + 0xBBAF, 0xBE8F, 0xBBB0, 0xBE90, 0xBBB1, 0xBE91, 0xBBB2, 0xBE98, 0xBBB3, 0xBE99, 0xBBB4, 0xBEA8, 0xBBB5, 0xBED0, 0xBBB6, 0xBED1, + 0xBBB7, 0xBED4, 0xBBB8, 0xBED7, 0xBBB9, 0xBED8, 0xBBBA, 0xBEE0, 0xBBBB, 0xBEE3, 0xBBBC, 0xBEE4, 0xBBBD, 0xBEE5, 0xBBBE, 0xBEEC, + 0xBBBF, 0xBF01, 0xBBC0, 0xBF08, 0xBBC1, 0xBF09, 0xBBC2, 0xBF18, 0xBBC3, 0xBF19, 0xBBC4, 0xBF1B, 0xBBC5, 0xBF1C, 0xBBC6, 0xBF1D, + 0xBBC7, 0xBF40, 0xBBC8, 0xBF41, 0xBBC9, 0xBF44, 0xBBCA, 0xBF48, 0xBBCB, 0xBF50, 0xBBCC, 0xBF51, 0xBBCD, 0xBF55, 0xBBCE, 0xBF94, + 0xBBCF, 0xBFB0, 0xBBD0, 0xBFC5, 0xBBD1, 0xBFCC, 0xBBD2, 0xBFCD, 0xBBD3, 0xBFD0, 0xBBD4, 0xBFD4, 0xBBD5, 0xBFDC, 0xBBD6, 0xBFDF, + 0xBBD7, 0xBFE1, 0xBBD8, 0xC03C, 0xBBD9, 0xC051, 0xBBDA, 0xC058, 0xBBDB, 0xC05C, 0xBBDC, 0xC060, 0xBBDD, 0xC068, 0xBBDE, 0xC069, + 0xBBDF, 0xC090, 0xBBE0, 0xC091, 0xBBE1, 0xC094, 0xBBE2, 0xC098, 0xBBE3, 0xC0A0, 0xBBE4, 0xC0A1, 0xBBE5, 0xC0A3, 0xBBE6, 0xC0A5, + 0xBBE7, 0xC0AC, 0xBBE8, 0xC0AD, 0xBBE9, 0xC0AF, 0xBBEA, 0xC0B0, 0xBBEB, 0xC0B3, 0xBBEC, 0xC0B4, 0xBBED, 0xC0B5, 0xBBEE, 0xC0B6, + 0xBBEF, 0xC0BC, 0xBBF0, 0xC0BD, 0xBBF1, 0xC0BF, 0xBBF2, 0xC0C0, 0xBBF3, 0xC0C1, 0xBBF4, 0xC0C5, 0xBBF5, 0xC0C8, 0xBBF6, 0xC0C9, + 0xBBF7, 0xC0CC, 0xBBF8, 0xC0D0, 0xBBF9, 0xC0D8, 0xBBFA, 0xC0D9, 0xBBFB, 0xC0DB, 0xBBFC, 0xC0DC, 0xBBFD, 0xC0DD, 0xBBFE, 0xC0E4, + 0xBC41, 0xD36A, 0xBC42, 0xD36B, 0xBC43, 0xD36C, 0xBC44, 0xD36D, 0xBC45, 0xD36E, 0xBC46, 0xD36F, 0xBC47, 0xD370, 0xBC48, 0xD371, + 0xBC49, 0xD372, 0xBC4A, 0xD373, 0xBC4B, 0xD374, 0xBC4C, 0xD375, 0xBC4D, 0xD376, 0xBC4E, 0xD377, 0xBC4F, 0xD378, 0xBC50, 0xD379, + 0xBC51, 0xD37A, 0xBC52, 0xD37B, 0xBC53, 0xD37E, 0xBC54, 0xD37F, 0xBC55, 0xD381, 0xBC56, 0xD382, 0xBC57, 0xD383, 0xBC58, 0xD385, + 0xBC59, 0xD386, 0xBC5A, 0xD387, 0xBC61, 0xD388, 0xBC62, 0xD389, 0xBC63, 0xD38A, 0xBC64, 0xD38B, 0xBC65, 0xD38E, 0xBC66, 0xD392, + 0xBC67, 0xD393, 0xBC68, 0xD394, 0xBC69, 0xD395, 0xBC6A, 0xD396, 0xBC6B, 0xD397, 0xBC6C, 0xD39A, 0xBC6D, 0xD39B, 0xBC6E, 0xD39D, + 0xBC6F, 0xD39E, 0xBC70, 0xD39F, 0xBC71, 0xD3A1, 0xBC72, 0xD3A2, 0xBC73, 0xD3A3, 0xBC74, 0xD3A4, 0xBC75, 0xD3A5, 0xBC76, 0xD3A6, + 0xBC77, 0xD3A7, 0xBC78, 0xD3AA, 0xBC79, 0xD3AC, 0xBC7A, 0xD3AE, 0xBC81, 0xD3AF, 0xBC82, 0xD3B0, 0xBC83, 0xD3B1, 0xBC84, 0xD3B2, + 0xBC85, 0xD3B3, 0xBC86, 0xD3B5, 0xBC87, 0xD3B6, 0xBC88, 0xD3B7, 0xBC89, 0xD3B9, 0xBC8A, 0xD3BA, 0xBC8B, 0xD3BB, 0xBC8C, 0xD3BD, + 0xBC8D, 0xD3BE, 0xBC8E, 0xD3BF, 0xBC8F, 0xD3C0, 0xBC90, 0xD3C1, 0xBC91, 0xD3C2, 0xBC92, 0xD3C3, 0xBC93, 0xD3C6, 0xBC94, 0xD3C7, + 0xBC95, 0xD3CA, 0xBC96, 0xD3CB, 0xBC97, 0xD3CC, 0xBC98, 0xD3CD, 0xBC99, 0xD3CE, 0xBC9A, 0xD3CF, 0xBC9B, 0xD3D1, 0xBC9C, 0xD3D2, + 0xBC9D, 0xD3D3, 0xBC9E, 0xD3D4, 0xBC9F, 0xD3D5, 0xBCA0, 0xD3D6, 0xBCA1, 0xC0E5, 0xBCA2, 0xC0E8, 0xBCA3, 0xC0EC, 0xBCA4, 0xC0F4, + 0xBCA5, 0xC0F5, 0xBCA6, 0xC0F7, 0xBCA7, 0xC0F9, 0xBCA8, 0xC100, 0xBCA9, 0xC104, 0xBCAA, 0xC108, 0xBCAB, 0xC110, 0xBCAC, 0xC115, + 0xBCAD, 0xC11C, 0xBCAE, 0xC11D, 0xBCAF, 0xC11E, 0xBCB0, 0xC11F, 0xBCB1, 0xC120, 0xBCB2, 0xC123, 0xBCB3, 0xC124, 0xBCB4, 0xC126, + 0xBCB5, 0xC127, 0xBCB6, 0xC12C, 0xBCB7, 0xC12D, 0xBCB8, 0xC12F, 0xBCB9, 0xC130, 0xBCBA, 0xC131, 0xBCBB, 0xC136, 0xBCBC, 0xC138, + 0xBCBD, 0xC139, 0xBCBE, 0xC13C, 0xBCBF, 0xC140, 0xBCC0, 0xC148, 0xBCC1, 0xC149, 0xBCC2, 0xC14B, 0xBCC3, 0xC14C, 0xBCC4, 0xC14D, + 0xBCC5, 0xC154, 0xBCC6, 0xC155, 0xBCC7, 0xC158, 0xBCC8, 0xC15C, 0xBCC9, 0xC164, 0xBCCA, 0xC165, 0xBCCB, 0xC167, 0xBCCC, 0xC168, + 0xBCCD, 0xC169, 0xBCCE, 0xC170, 0xBCCF, 0xC174, 0xBCD0, 0xC178, 0xBCD1, 0xC185, 0xBCD2, 0xC18C, 0xBCD3, 0xC18D, 0xBCD4, 0xC18E, + 0xBCD5, 0xC190, 0xBCD6, 0xC194, 0xBCD7, 0xC196, 0xBCD8, 0xC19C, 0xBCD9, 0xC19D, 0xBCDA, 0xC19F, 0xBCDB, 0xC1A1, 0xBCDC, 0xC1A5, + 0xBCDD, 0xC1A8, 0xBCDE, 0xC1A9, 0xBCDF, 0xC1AC, 0xBCE0, 0xC1B0, 0xBCE1, 0xC1BD, 0xBCE2, 0xC1C4, 0xBCE3, 0xC1C8, 0xBCE4, 0xC1CC, + 0xBCE5, 0xC1D4, 0xBCE6, 0xC1D7, 0xBCE7, 0xC1D8, 0xBCE8, 0xC1E0, 0xBCE9, 0xC1E4, 0xBCEA, 0xC1E8, 0xBCEB, 0xC1F0, 0xBCEC, 0xC1F1, + 0xBCED, 0xC1F3, 0xBCEE, 0xC1FC, 0xBCEF, 0xC1FD, 0xBCF0, 0xC200, 0xBCF1, 0xC204, 0xBCF2, 0xC20C, 0xBCF3, 0xC20D, 0xBCF4, 0xC20F, + 0xBCF5, 0xC211, 0xBCF6, 0xC218, 0xBCF7, 0xC219, 0xBCF8, 0xC21C, 0xBCF9, 0xC21F, 0xBCFA, 0xC220, 0xBCFB, 0xC228, 0xBCFC, 0xC229, + 0xBCFD, 0xC22B, 0xBCFE, 0xC22D, 0xBD41, 0xD3D7, 0xBD42, 0xD3D9, 0xBD43, 0xD3DA, 0xBD44, 0xD3DB, 0xBD45, 0xD3DC, 0xBD46, 0xD3DD, + 0xBD47, 0xD3DE, 0xBD48, 0xD3DF, 0xBD49, 0xD3E0, 0xBD4A, 0xD3E2, 0xBD4B, 0xD3E4, 0xBD4C, 0xD3E5, 0xBD4D, 0xD3E6, 0xBD4E, 0xD3E7, + 0xBD4F, 0xD3E8, 0xBD50, 0xD3E9, 0xBD51, 0xD3EA, 0xBD52, 0xD3EB, 0xBD53, 0xD3EE, 0xBD54, 0xD3EF, 0xBD55, 0xD3F1, 0xBD56, 0xD3F2, + 0xBD57, 0xD3F3, 0xBD58, 0xD3F5, 0xBD59, 0xD3F6, 0xBD5A, 0xD3F7, 0xBD61, 0xD3F8, 0xBD62, 0xD3F9, 0xBD63, 0xD3FA, 0xBD64, 0xD3FB, + 0xBD65, 0xD3FE, 0xBD66, 0xD400, 0xBD67, 0xD402, 0xBD68, 0xD403, 0xBD69, 0xD404, 0xBD6A, 0xD405, 0xBD6B, 0xD406, 0xBD6C, 0xD407, + 0xBD6D, 0xD409, 0xBD6E, 0xD40A, 0xBD6F, 0xD40B, 0xBD70, 0xD40C, 0xBD71, 0xD40D, 0xBD72, 0xD40E, 0xBD73, 0xD40F, 0xBD74, 0xD410, + 0xBD75, 0xD411, 0xBD76, 0xD412, 0xBD77, 0xD413, 0xBD78, 0xD414, 0xBD79, 0xD415, 0xBD7A, 0xD416, 0xBD81, 0xD417, 0xBD82, 0xD418, + 0xBD83, 0xD419, 0xBD84, 0xD41A, 0xBD85, 0xD41B, 0xBD86, 0xD41C, 0xBD87, 0xD41E, 0xBD88, 0xD41F, 0xBD89, 0xD420, 0xBD8A, 0xD421, + 0xBD8B, 0xD422, 0xBD8C, 0xD423, 0xBD8D, 0xD424, 0xBD8E, 0xD425, 0xBD8F, 0xD426, 0xBD90, 0xD427, 0xBD91, 0xD428, 0xBD92, 0xD429, + 0xBD93, 0xD42A, 0xBD94, 0xD42B, 0xBD95, 0xD42C, 0xBD96, 0xD42D, 0xBD97, 0xD42E, 0xBD98, 0xD42F, 0xBD99, 0xD430, 0xBD9A, 0xD431, + 0xBD9B, 0xD432, 0xBD9C, 0xD433, 0xBD9D, 0xD434, 0xBD9E, 0xD435, 0xBD9F, 0xD436, 0xBDA0, 0xD437, 0xBDA1, 0xC22F, 0xBDA2, 0xC231, + 0xBDA3, 0xC232, 0xBDA4, 0xC234, 0xBDA5, 0xC248, 0xBDA6, 0xC250, 0xBDA7, 0xC251, 0xBDA8, 0xC254, 0xBDA9, 0xC258, 0xBDAA, 0xC260, + 0xBDAB, 0xC265, 0xBDAC, 0xC26C, 0xBDAD, 0xC26D, 0xBDAE, 0xC270, 0xBDAF, 0xC274, 0xBDB0, 0xC27C, 0xBDB1, 0xC27D, 0xBDB2, 0xC27F, + 0xBDB3, 0xC281, 0xBDB4, 0xC288, 0xBDB5, 0xC289, 0xBDB6, 0xC290, 0xBDB7, 0xC298, 0xBDB8, 0xC29B, 0xBDB9, 0xC29D, 0xBDBA, 0xC2A4, + 0xBDBB, 0xC2A5, 0xBDBC, 0xC2A8, 0xBDBD, 0xC2AC, 0xBDBE, 0xC2AD, 0xBDBF, 0xC2B4, 0xBDC0, 0xC2B5, 0xBDC1, 0xC2B7, 0xBDC2, 0xC2B9, + 0xBDC3, 0xC2DC, 0xBDC4, 0xC2DD, 0xBDC5, 0xC2E0, 0xBDC6, 0xC2E3, 0xBDC7, 0xC2E4, 0xBDC8, 0xC2EB, 0xBDC9, 0xC2EC, 0xBDCA, 0xC2ED, + 0xBDCB, 0xC2EF, 0xBDCC, 0xC2F1, 0xBDCD, 0xC2F6, 0xBDCE, 0xC2F8, 0xBDCF, 0xC2F9, 0xBDD0, 0xC2FB, 0xBDD1, 0xC2FC, 0xBDD2, 0xC300, + 0xBDD3, 0xC308, 0xBDD4, 0xC309, 0xBDD5, 0xC30C, 0xBDD6, 0xC30D, 0xBDD7, 0xC313, 0xBDD8, 0xC314, 0xBDD9, 0xC315, 0xBDDA, 0xC318, + 0xBDDB, 0xC31C, 0xBDDC, 0xC324, 0xBDDD, 0xC325, 0xBDDE, 0xC328, 0xBDDF, 0xC329, 0xBDE0, 0xC345, 0xBDE1, 0xC368, 0xBDE2, 0xC369, + 0xBDE3, 0xC36C, 0xBDE4, 0xC370, 0xBDE5, 0xC372, 0xBDE6, 0xC378, 0xBDE7, 0xC379, 0xBDE8, 0xC37C, 0xBDE9, 0xC37D, 0xBDEA, 0xC384, + 0xBDEB, 0xC388, 0xBDEC, 0xC38C, 0xBDED, 0xC3C0, 0xBDEE, 0xC3D8, 0xBDEF, 0xC3D9, 0xBDF0, 0xC3DC, 0xBDF1, 0xC3DF, 0xBDF2, 0xC3E0, + 0xBDF3, 0xC3E2, 0xBDF4, 0xC3E8, 0xBDF5, 0xC3E9, 0xBDF6, 0xC3ED, 0xBDF7, 0xC3F4, 0xBDF8, 0xC3F5, 0xBDF9, 0xC3F8, 0xBDFA, 0xC408, + 0xBDFB, 0xC410, 0xBDFC, 0xC424, 0xBDFD, 0xC42C, 0xBDFE, 0xC430, 0xBE41, 0xD438, 0xBE42, 0xD439, 0xBE43, 0xD43A, 0xBE44, 0xD43B, + 0xBE45, 0xD43C, 0xBE46, 0xD43D, 0xBE47, 0xD43E, 0xBE48, 0xD43F, 0xBE49, 0xD441, 0xBE4A, 0xD442, 0xBE4B, 0xD443, 0xBE4C, 0xD445, + 0xBE4D, 0xD446, 0xBE4E, 0xD447, 0xBE4F, 0xD448, 0xBE50, 0xD449, 0xBE51, 0xD44A, 0xBE52, 0xD44B, 0xBE53, 0xD44C, 0xBE54, 0xD44D, + 0xBE55, 0xD44E, 0xBE56, 0xD44F, 0xBE57, 0xD450, 0xBE58, 0xD451, 0xBE59, 0xD452, 0xBE5A, 0xD453, 0xBE61, 0xD454, 0xBE62, 0xD455, + 0xBE63, 0xD456, 0xBE64, 0xD457, 0xBE65, 0xD458, 0xBE66, 0xD459, 0xBE67, 0xD45A, 0xBE68, 0xD45B, 0xBE69, 0xD45D, 0xBE6A, 0xD45E, + 0xBE6B, 0xD45F, 0xBE6C, 0xD461, 0xBE6D, 0xD462, 0xBE6E, 0xD463, 0xBE6F, 0xD465, 0xBE70, 0xD466, 0xBE71, 0xD467, 0xBE72, 0xD468, + 0xBE73, 0xD469, 0xBE74, 0xD46A, 0xBE75, 0xD46B, 0xBE76, 0xD46C, 0xBE77, 0xD46E, 0xBE78, 0xD470, 0xBE79, 0xD471, 0xBE7A, 0xD472, + 0xBE81, 0xD473, 0xBE82, 0xD474, 0xBE83, 0xD475, 0xBE84, 0xD476, 0xBE85, 0xD477, 0xBE86, 0xD47A, 0xBE87, 0xD47B, 0xBE88, 0xD47D, + 0xBE89, 0xD47E, 0xBE8A, 0xD481, 0xBE8B, 0xD483, 0xBE8C, 0xD484, 0xBE8D, 0xD485, 0xBE8E, 0xD486, 0xBE8F, 0xD487, 0xBE90, 0xD48A, + 0xBE91, 0xD48C, 0xBE92, 0xD48E, 0xBE93, 0xD48F, 0xBE94, 0xD490, 0xBE95, 0xD491, 0xBE96, 0xD492, 0xBE97, 0xD493, 0xBE98, 0xD495, + 0xBE99, 0xD496, 0xBE9A, 0xD497, 0xBE9B, 0xD498, 0xBE9C, 0xD499, 0xBE9D, 0xD49A, 0xBE9E, 0xD49B, 0xBE9F, 0xD49C, 0xBEA0, 0xD49D, + 0xBEA1, 0xC434, 0xBEA2, 0xC43C, 0xBEA3, 0xC43D, 0xBEA4, 0xC448, 0xBEA5, 0xC464, 0xBEA6, 0xC465, 0xBEA7, 0xC468, 0xBEA8, 0xC46C, + 0xBEA9, 0xC474, 0xBEAA, 0xC475, 0xBEAB, 0xC479, 0xBEAC, 0xC480, 0xBEAD, 0xC494, 0xBEAE, 0xC49C, 0xBEAF, 0xC4B8, 0xBEB0, 0xC4BC, + 0xBEB1, 0xC4E9, 0xBEB2, 0xC4F0, 0xBEB3, 0xC4F1, 0xBEB4, 0xC4F4, 0xBEB5, 0xC4F8, 0xBEB6, 0xC4FA, 0xBEB7, 0xC4FF, 0xBEB8, 0xC500, + 0xBEB9, 0xC501, 0xBEBA, 0xC50C, 0xBEBB, 0xC510, 0xBEBC, 0xC514, 0xBEBD, 0xC51C, 0xBEBE, 0xC528, 0xBEBF, 0xC529, 0xBEC0, 0xC52C, + 0xBEC1, 0xC530, 0xBEC2, 0xC538, 0xBEC3, 0xC539, 0xBEC4, 0xC53B, 0xBEC5, 0xC53D, 0xBEC6, 0xC544, 0xBEC7, 0xC545, 0xBEC8, 0xC548, + 0xBEC9, 0xC549, 0xBECA, 0xC54A, 0xBECB, 0xC54C, 0xBECC, 0xC54D, 0xBECD, 0xC54E, 0xBECE, 0xC553, 0xBECF, 0xC554, 0xBED0, 0xC555, + 0xBED1, 0xC557, 0xBED2, 0xC558, 0xBED3, 0xC559, 0xBED4, 0xC55D, 0xBED5, 0xC55E, 0xBED6, 0xC560, 0xBED7, 0xC561, 0xBED8, 0xC564, + 0xBED9, 0xC568, 0xBEDA, 0xC570, 0xBEDB, 0xC571, 0xBEDC, 0xC573, 0xBEDD, 0xC574, 0xBEDE, 0xC575, 0xBEDF, 0xC57C, 0xBEE0, 0xC57D, + 0xBEE1, 0xC580, 0xBEE2, 0xC584, 0xBEE3, 0xC587, 0xBEE4, 0xC58C, 0xBEE5, 0xC58D, 0xBEE6, 0xC58F, 0xBEE7, 0xC591, 0xBEE8, 0xC595, + 0xBEE9, 0xC597, 0xBEEA, 0xC598, 0xBEEB, 0xC59C, 0xBEEC, 0xC5A0, 0xBEED, 0xC5A9, 0xBEEE, 0xC5B4, 0xBEEF, 0xC5B5, 0xBEF0, 0xC5B8, + 0xBEF1, 0xC5B9, 0xBEF2, 0xC5BB, 0xBEF3, 0xC5BC, 0xBEF4, 0xC5BD, 0xBEF5, 0xC5BE, 0xBEF6, 0xC5C4, 0xBEF7, 0xC5C5, 0xBEF8, 0xC5C6, + 0xBEF9, 0xC5C7, 0xBEFA, 0xC5C8, 0xBEFB, 0xC5C9, 0xBEFC, 0xC5CA, 0xBEFD, 0xC5CC, 0xBEFE, 0xC5CE, 0xBF41, 0xD49E, 0xBF42, 0xD49F, + 0xBF43, 0xD4A0, 0xBF44, 0xD4A1, 0xBF45, 0xD4A2, 0xBF46, 0xD4A3, 0xBF47, 0xD4A4, 0xBF48, 0xD4A5, 0xBF49, 0xD4A6, 0xBF4A, 0xD4A7, + 0xBF4B, 0xD4A8, 0xBF4C, 0xD4AA, 0xBF4D, 0xD4AB, 0xBF4E, 0xD4AC, 0xBF4F, 0xD4AD, 0xBF50, 0xD4AE, 0xBF51, 0xD4AF, 0xBF52, 0xD4B0, + 0xBF53, 0xD4B1, 0xBF54, 0xD4B2, 0xBF55, 0xD4B3, 0xBF56, 0xD4B4, 0xBF57, 0xD4B5, 0xBF58, 0xD4B6, 0xBF59, 0xD4B7, 0xBF5A, 0xD4B8, + 0xBF61, 0xD4B9, 0xBF62, 0xD4BA, 0xBF63, 0xD4BB, 0xBF64, 0xD4BC, 0xBF65, 0xD4BD, 0xBF66, 0xD4BE, 0xBF67, 0xD4BF, 0xBF68, 0xD4C0, + 0xBF69, 0xD4C1, 0xBF6A, 0xD4C2, 0xBF6B, 0xD4C3, 0xBF6C, 0xD4C4, 0xBF6D, 0xD4C5, 0xBF6E, 0xD4C6, 0xBF6F, 0xD4C7, 0xBF70, 0xD4C8, + 0xBF71, 0xD4C9, 0xBF72, 0xD4CA, 0xBF73, 0xD4CB, 0xBF74, 0xD4CD, 0xBF75, 0xD4CE, 0xBF76, 0xD4CF, 0xBF77, 0xD4D1, 0xBF78, 0xD4D2, + 0xBF79, 0xD4D3, 0xBF7A, 0xD4D5, 0xBF81, 0xD4D6, 0xBF82, 0xD4D7, 0xBF83, 0xD4D8, 0xBF84, 0xD4D9, 0xBF85, 0xD4DA, 0xBF86, 0xD4DB, + 0xBF87, 0xD4DD, 0xBF88, 0xD4DE, 0xBF89, 0xD4E0, 0xBF8A, 0xD4E1, 0xBF8B, 0xD4E2, 0xBF8C, 0xD4E3, 0xBF8D, 0xD4E4, 0xBF8E, 0xD4E5, + 0xBF8F, 0xD4E6, 0xBF90, 0xD4E7, 0xBF91, 0xD4E9, 0xBF92, 0xD4EA, 0xBF93, 0xD4EB, 0xBF94, 0xD4ED, 0xBF95, 0xD4EE, 0xBF96, 0xD4EF, + 0xBF97, 0xD4F1, 0xBF98, 0xD4F2, 0xBF99, 0xD4F3, 0xBF9A, 0xD4F4, 0xBF9B, 0xD4F5, 0xBF9C, 0xD4F6, 0xBF9D, 0xD4F7, 0xBF9E, 0xD4F9, + 0xBF9F, 0xD4FA, 0xBFA0, 0xD4FC, 0xBFA1, 0xC5D0, 0xBFA2, 0xC5D1, 0xBFA3, 0xC5D4, 0xBFA4, 0xC5D8, 0xBFA5, 0xC5E0, 0xBFA6, 0xC5E1, + 0xBFA7, 0xC5E3, 0xBFA8, 0xC5E5, 0xBFA9, 0xC5EC, 0xBFAA, 0xC5ED, 0xBFAB, 0xC5EE, 0xBFAC, 0xC5F0, 0xBFAD, 0xC5F4, 0xBFAE, 0xC5F6, + 0xBFAF, 0xC5F7, 0xBFB0, 0xC5FC, 0xBFB1, 0xC5FD, 0xBFB2, 0xC5FE, 0xBFB3, 0xC5FF, 0xBFB4, 0xC600, 0xBFB5, 0xC601, 0xBFB6, 0xC605, + 0xBFB7, 0xC606, 0xBFB8, 0xC607, 0xBFB9, 0xC608, 0xBFBA, 0xC60C, 0xBFBB, 0xC610, 0xBFBC, 0xC618, 0xBFBD, 0xC619, 0xBFBE, 0xC61B, + 0xBFBF, 0xC61C, 0xBFC0, 0xC624, 0xBFC1, 0xC625, 0xBFC2, 0xC628, 0xBFC3, 0xC62C, 0xBFC4, 0xC62D, 0xBFC5, 0xC62E, 0xBFC6, 0xC630, + 0xBFC7, 0xC633, 0xBFC8, 0xC634, 0xBFC9, 0xC635, 0xBFCA, 0xC637, 0xBFCB, 0xC639, 0xBFCC, 0xC63B, 0xBFCD, 0xC640, 0xBFCE, 0xC641, + 0xBFCF, 0xC644, 0xBFD0, 0xC648, 0xBFD1, 0xC650, 0xBFD2, 0xC651, 0xBFD3, 0xC653, 0xBFD4, 0xC654, 0xBFD5, 0xC655, 0xBFD6, 0xC65C, + 0xBFD7, 0xC65D, 0xBFD8, 0xC660, 0xBFD9, 0xC66C, 0xBFDA, 0xC66F, 0xBFDB, 0xC671, 0xBFDC, 0xC678, 0xBFDD, 0xC679, 0xBFDE, 0xC67C, + 0xBFDF, 0xC680, 0xBFE0, 0xC688, 0xBFE1, 0xC689, 0xBFE2, 0xC68B, 0xBFE3, 0xC68D, 0xBFE4, 0xC694, 0xBFE5, 0xC695, 0xBFE6, 0xC698, + 0xBFE7, 0xC69C, 0xBFE8, 0xC6A4, 0xBFE9, 0xC6A5, 0xBFEA, 0xC6A7, 0xBFEB, 0xC6A9, 0xBFEC, 0xC6B0, 0xBFED, 0xC6B1, 0xBFEE, 0xC6B4, + 0xBFEF, 0xC6B8, 0xBFF0, 0xC6B9, 0xBFF1, 0xC6BA, 0xBFF2, 0xC6C0, 0xBFF3, 0xC6C1, 0xBFF4, 0xC6C3, 0xBFF5, 0xC6C5, 0xBFF6, 0xC6CC, + 0xBFF7, 0xC6CD, 0xBFF8, 0xC6D0, 0xBFF9, 0xC6D4, 0xBFFA, 0xC6DC, 0xBFFB, 0xC6DD, 0xBFFC, 0xC6E0, 0xBFFD, 0xC6E1, 0xBFFE, 0xC6E8, + 0xC041, 0xD4FE, 0xC042, 0xD4FF, 0xC043, 0xD500, 0xC044, 0xD501, 0xC045, 0xD502, 0xC046, 0xD503, 0xC047, 0xD505, 0xC048, 0xD506, + 0xC049, 0xD507, 0xC04A, 0xD509, 0xC04B, 0xD50A, 0xC04C, 0xD50B, 0xC04D, 0xD50D, 0xC04E, 0xD50E, 0xC04F, 0xD50F, 0xC050, 0xD510, + 0xC051, 0xD511, 0xC052, 0xD512, 0xC053, 0xD513, 0xC054, 0xD516, 0xC055, 0xD518, 0xC056, 0xD519, 0xC057, 0xD51A, 0xC058, 0xD51B, + 0xC059, 0xD51C, 0xC05A, 0xD51D, 0xC061, 0xD51E, 0xC062, 0xD51F, 0xC063, 0xD520, 0xC064, 0xD521, 0xC065, 0xD522, 0xC066, 0xD523, + 0xC067, 0xD524, 0xC068, 0xD525, 0xC069, 0xD526, 0xC06A, 0xD527, 0xC06B, 0xD528, 0xC06C, 0xD529, 0xC06D, 0xD52A, 0xC06E, 0xD52B, + 0xC06F, 0xD52C, 0xC070, 0xD52D, 0xC071, 0xD52E, 0xC072, 0xD52F, 0xC073, 0xD530, 0xC074, 0xD531, 0xC075, 0xD532, 0xC076, 0xD533, + 0xC077, 0xD534, 0xC078, 0xD535, 0xC079, 0xD536, 0xC07A, 0xD537, 0xC081, 0xD538, 0xC082, 0xD539, 0xC083, 0xD53A, 0xC084, 0xD53B, + 0xC085, 0xD53E, 0xC086, 0xD53F, 0xC087, 0xD541, 0xC088, 0xD542, 0xC089, 0xD543, 0xC08A, 0xD545, 0xC08B, 0xD546, 0xC08C, 0xD547, + 0xC08D, 0xD548, 0xC08E, 0xD549, 0xC08F, 0xD54A, 0xC090, 0xD54B, 0xC091, 0xD54E, 0xC092, 0xD550, 0xC093, 0xD552, 0xC094, 0xD553, + 0xC095, 0xD554, 0xC096, 0xD555, 0xC097, 0xD556, 0xC098, 0xD557, 0xC099, 0xD55A, 0xC09A, 0xD55B, 0xC09B, 0xD55D, 0xC09C, 0xD55E, + 0xC09D, 0xD55F, 0xC09E, 0xD561, 0xC09F, 0xD562, 0xC0A0, 0xD563, 0xC0A1, 0xC6E9, 0xC0A2, 0xC6EC, 0xC0A3, 0xC6F0, 0xC0A4, 0xC6F8, + 0xC0A5, 0xC6F9, 0xC0A6, 0xC6FD, 0xC0A7, 0xC704, 0xC0A8, 0xC705, 0xC0A9, 0xC708, 0xC0AA, 0xC70C, 0xC0AB, 0xC714, 0xC0AC, 0xC715, + 0xC0AD, 0xC717, 0xC0AE, 0xC719, 0xC0AF, 0xC720, 0xC0B0, 0xC721, 0xC0B1, 0xC724, 0xC0B2, 0xC728, 0xC0B3, 0xC730, 0xC0B4, 0xC731, + 0xC0B5, 0xC733, 0xC0B6, 0xC735, 0xC0B7, 0xC737, 0xC0B8, 0xC73C, 0xC0B9, 0xC73D, 0xC0BA, 0xC740, 0xC0BB, 0xC744, 0xC0BC, 0xC74A, + 0xC0BD, 0xC74C, 0xC0BE, 0xC74D, 0xC0BF, 0xC74F, 0xC0C0, 0xC751, 0xC0C1, 0xC752, 0xC0C2, 0xC753, 0xC0C3, 0xC754, 0xC0C4, 0xC755, + 0xC0C5, 0xC756, 0xC0C6, 0xC757, 0xC0C7, 0xC758, 0xC0C8, 0xC75C, 0xC0C9, 0xC760, 0xC0CA, 0xC768, 0xC0CB, 0xC76B, 0xC0CC, 0xC774, + 0xC0CD, 0xC775, 0xC0CE, 0xC778, 0xC0CF, 0xC77C, 0xC0D0, 0xC77D, 0xC0D1, 0xC77E, 0xC0D2, 0xC783, 0xC0D3, 0xC784, 0xC0D4, 0xC785, + 0xC0D5, 0xC787, 0xC0D6, 0xC788, 0xC0D7, 0xC789, 0xC0D8, 0xC78A, 0xC0D9, 0xC78E, 0xC0DA, 0xC790, 0xC0DB, 0xC791, 0xC0DC, 0xC794, + 0xC0DD, 0xC796, 0xC0DE, 0xC797, 0xC0DF, 0xC798, 0xC0E0, 0xC79A, 0xC0E1, 0xC7A0, 0xC0E2, 0xC7A1, 0xC0E3, 0xC7A3, 0xC0E4, 0xC7A4, + 0xC0E5, 0xC7A5, 0xC0E6, 0xC7A6, 0xC0E7, 0xC7AC, 0xC0E8, 0xC7AD, 0xC0E9, 0xC7B0, 0xC0EA, 0xC7B4, 0xC0EB, 0xC7BC, 0xC0EC, 0xC7BD, + 0xC0ED, 0xC7BF, 0xC0EE, 0xC7C0, 0xC0EF, 0xC7C1, 0xC0F0, 0xC7C8, 0xC0F1, 0xC7C9, 0xC0F2, 0xC7CC, 0xC0F3, 0xC7CE, 0xC0F4, 0xC7D0, + 0xC0F5, 0xC7D8, 0xC0F6, 0xC7DD, 0xC0F7, 0xC7E4, 0xC0F8, 0xC7E8, 0xC0F9, 0xC7EC, 0xC0FA, 0xC800, 0xC0FB, 0xC801, 0xC0FC, 0xC804, + 0xC0FD, 0xC808, 0xC0FE, 0xC80A, 0xC141, 0xD564, 0xC142, 0xD566, 0xC143, 0xD567, 0xC144, 0xD56A, 0xC145, 0xD56C, 0xC146, 0xD56E, + 0xC147, 0xD56F, 0xC148, 0xD570, 0xC149, 0xD571, 0xC14A, 0xD572, 0xC14B, 0xD573, 0xC14C, 0xD576, 0xC14D, 0xD577, 0xC14E, 0xD579, + 0xC14F, 0xD57A, 0xC150, 0xD57B, 0xC151, 0xD57D, 0xC152, 0xD57E, 0xC153, 0xD57F, 0xC154, 0xD580, 0xC155, 0xD581, 0xC156, 0xD582, + 0xC157, 0xD583, 0xC158, 0xD586, 0xC159, 0xD58A, 0xC15A, 0xD58B, 0xC161, 0xD58C, 0xC162, 0xD58D, 0xC163, 0xD58E, 0xC164, 0xD58F, + 0xC165, 0xD591, 0xC166, 0xD592, 0xC167, 0xD593, 0xC168, 0xD594, 0xC169, 0xD595, 0xC16A, 0xD596, 0xC16B, 0xD597, 0xC16C, 0xD598, + 0xC16D, 0xD599, 0xC16E, 0xD59A, 0xC16F, 0xD59B, 0xC170, 0xD59C, 0xC171, 0xD59D, 0xC172, 0xD59E, 0xC173, 0xD59F, 0xC174, 0xD5A0, + 0xC175, 0xD5A1, 0xC176, 0xD5A2, 0xC177, 0xD5A3, 0xC178, 0xD5A4, 0xC179, 0xD5A6, 0xC17A, 0xD5A7, 0xC181, 0xD5A8, 0xC182, 0xD5A9, + 0xC183, 0xD5AA, 0xC184, 0xD5AB, 0xC185, 0xD5AC, 0xC186, 0xD5AD, 0xC187, 0xD5AE, 0xC188, 0xD5AF, 0xC189, 0xD5B0, 0xC18A, 0xD5B1, + 0xC18B, 0xD5B2, 0xC18C, 0xD5B3, 0xC18D, 0xD5B4, 0xC18E, 0xD5B5, 0xC18F, 0xD5B6, 0xC190, 0xD5B7, 0xC191, 0xD5B8, 0xC192, 0xD5B9, + 0xC193, 0xD5BA, 0xC194, 0xD5BB, 0xC195, 0xD5BC, 0xC196, 0xD5BD, 0xC197, 0xD5BE, 0xC198, 0xD5BF, 0xC199, 0xD5C0, 0xC19A, 0xD5C1, + 0xC19B, 0xD5C2, 0xC19C, 0xD5C3, 0xC19D, 0xD5C4, 0xC19E, 0xD5C5, 0xC19F, 0xD5C6, 0xC1A0, 0xD5C7, 0xC1A1, 0xC810, 0xC1A2, 0xC811, + 0xC1A3, 0xC813, 0xC1A4, 0xC815, 0xC1A5, 0xC816, 0xC1A6, 0xC81C, 0xC1A7, 0xC81D, 0xC1A8, 0xC820, 0xC1A9, 0xC824, 0xC1AA, 0xC82C, + 0xC1AB, 0xC82D, 0xC1AC, 0xC82F, 0xC1AD, 0xC831, 0xC1AE, 0xC838, 0xC1AF, 0xC83C, 0xC1B0, 0xC840, 0xC1B1, 0xC848, 0xC1B2, 0xC849, + 0xC1B3, 0xC84C, 0xC1B4, 0xC84D, 0xC1B5, 0xC854, 0xC1B6, 0xC870, 0xC1B7, 0xC871, 0xC1B8, 0xC874, 0xC1B9, 0xC878, 0xC1BA, 0xC87A, + 0xC1BB, 0xC880, 0xC1BC, 0xC881, 0xC1BD, 0xC883, 0xC1BE, 0xC885, 0xC1BF, 0xC886, 0xC1C0, 0xC887, 0xC1C1, 0xC88B, 0xC1C2, 0xC88C, + 0xC1C3, 0xC88D, 0xC1C4, 0xC894, 0xC1C5, 0xC89D, 0xC1C6, 0xC89F, 0xC1C7, 0xC8A1, 0xC1C8, 0xC8A8, 0xC1C9, 0xC8BC, 0xC1CA, 0xC8BD, + 0xC1CB, 0xC8C4, 0xC1CC, 0xC8C8, 0xC1CD, 0xC8CC, 0xC1CE, 0xC8D4, 0xC1CF, 0xC8D5, 0xC1D0, 0xC8D7, 0xC1D1, 0xC8D9, 0xC1D2, 0xC8E0, + 0xC1D3, 0xC8E1, 0xC1D4, 0xC8E4, 0xC1D5, 0xC8F5, 0xC1D6, 0xC8FC, 0xC1D7, 0xC8FD, 0xC1D8, 0xC900, 0xC1D9, 0xC904, 0xC1DA, 0xC905, + 0xC1DB, 0xC906, 0xC1DC, 0xC90C, 0xC1DD, 0xC90D, 0xC1DE, 0xC90F, 0xC1DF, 0xC911, 0xC1E0, 0xC918, 0xC1E1, 0xC92C, 0xC1E2, 0xC934, + 0xC1E3, 0xC950, 0xC1E4, 0xC951, 0xC1E5, 0xC954, 0xC1E6, 0xC958, 0xC1E7, 0xC960, 0xC1E8, 0xC961, 0xC1E9, 0xC963, 0xC1EA, 0xC96C, + 0xC1EB, 0xC970, 0xC1EC, 0xC974, 0xC1ED, 0xC97C, 0xC1EE, 0xC988, 0xC1EF, 0xC989, 0xC1F0, 0xC98C, 0xC1F1, 0xC990, 0xC1F2, 0xC998, + 0xC1F3, 0xC999, 0xC1F4, 0xC99B, 0xC1F5, 0xC99D, 0xC1F6, 0xC9C0, 0xC1F7, 0xC9C1, 0xC1F8, 0xC9C4, 0xC1F9, 0xC9C7, 0xC1FA, 0xC9C8, + 0xC1FB, 0xC9CA, 0xC1FC, 0xC9D0, 0xC1FD, 0xC9D1, 0xC1FE, 0xC9D3, 0xC241, 0xD5CA, 0xC242, 0xD5CB, 0xC243, 0xD5CD, 0xC244, 0xD5CE, + 0xC245, 0xD5CF, 0xC246, 0xD5D1, 0xC247, 0xD5D3, 0xC248, 0xD5D4, 0xC249, 0xD5D5, 0xC24A, 0xD5D6, 0xC24B, 0xD5D7, 0xC24C, 0xD5DA, + 0xC24D, 0xD5DC, 0xC24E, 0xD5DE, 0xC24F, 0xD5DF, 0xC250, 0xD5E0, 0xC251, 0xD5E1, 0xC252, 0xD5E2, 0xC253, 0xD5E3, 0xC254, 0xD5E6, + 0xC255, 0xD5E7, 0xC256, 0xD5E9, 0xC257, 0xD5EA, 0xC258, 0xD5EB, 0xC259, 0xD5ED, 0xC25A, 0xD5EE, 0xC261, 0xD5EF, 0xC262, 0xD5F0, + 0xC263, 0xD5F1, 0xC264, 0xD5F2, 0xC265, 0xD5F3, 0xC266, 0xD5F6, 0xC267, 0xD5F8, 0xC268, 0xD5FA, 0xC269, 0xD5FB, 0xC26A, 0xD5FC, + 0xC26B, 0xD5FD, 0xC26C, 0xD5FE, 0xC26D, 0xD5FF, 0xC26E, 0xD602, 0xC26F, 0xD603, 0xC270, 0xD605, 0xC271, 0xD606, 0xC272, 0xD607, + 0xC273, 0xD609, 0xC274, 0xD60A, 0xC275, 0xD60B, 0xC276, 0xD60C, 0xC277, 0xD60D, 0xC278, 0xD60E, 0xC279, 0xD60F, 0xC27A, 0xD612, + 0xC281, 0xD616, 0xC282, 0xD617, 0xC283, 0xD618, 0xC284, 0xD619, 0xC285, 0xD61A, 0xC286, 0xD61B, 0xC287, 0xD61D, 0xC288, 0xD61E, + 0xC289, 0xD61F, 0xC28A, 0xD621, 0xC28B, 0xD622, 0xC28C, 0xD623, 0xC28D, 0xD625, 0xC28E, 0xD626, 0xC28F, 0xD627, 0xC290, 0xD628, + 0xC291, 0xD629, 0xC292, 0xD62A, 0xC293, 0xD62B, 0xC294, 0xD62C, 0xC295, 0xD62E, 0xC296, 0xD62F, 0xC297, 0xD630, 0xC298, 0xD631, + 0xC299, 0xD632, 0xC29A, 0xD633, 0xC29B, 0xD634, 0xC29C, 0xD635, 0xC29D, 0xD636, 0xC29E, 0xD637, 0xC29F, 0xD63A, 0xC2A0, 0xD63B, + 0xC2A1, 0xC9D5, 0xC2A2, 0xC9D6, 0xC2A3, 0xC9D9, 0xC2A4, 0xC9DA, 0xC2A5, 0xC9DC, 0xC2A6, 0xC9DD, 0xC2A7, 0xC9E0, 0xC2A8, 0xC9E2, + 0xC2A9, 0xC9E4, 0xC2AA, 0xC9E7, 0xC2AB, 0xC9EC, 0xC2AC, 0xC9ED, 0xC2AD, 0xC9EF, 0xC2AE, 0xC9F0, 0xC2AF, 0xC9F1, 0xC2B0, 0xC9F8, + 0xC2B1, 0xC9F9, 0xC2B2, 0xC9FC, 0xC2B3, 0xCA00, 0xC2B4, 0xCA08, 0xC2B5, 0xCA09, 0xC2B6, 0xCA0B, 0xC2B7, 0xCA0C, 0xC2B8, 0xCA0D, + 0xC2B9, 0xCA14, 0xC2BA, 0xCA18, 0xC2BB, 0xCA29, 0xC2BC, 0xCA4C, 0xC2BD, 0xCA4D, 0xC2BE, 0xCA50, 0xC2BF, 0xCA54, 0xC2C0, 0xCA5C, + 0xC2C1, 0xCA5D, 0xC2C2, 0xCA5F, 0xC2C3, 0xCA60, 0xC2C4, 0xCA61, 0xC2C5, 0xCA68, 0xC2C6, 0xCA7D, 0xC2C7, 0xCA84, 0xC2C8, 0xCA98, + 0xC2C9, 0xCABC, 0xC2CA, 0xCABD, 0xC2CB, 0xCAC0, 0xC2CC, 0xCAC4, 0xC2CD, 0xCACC, 0xC2CE, 0xCACD, 0xC2CF, 0xCACF, 0xC2D0, 0xCAD1, + 0xC2D1, 0xCAD3, 0xC2D2, 0xCAD8, 0xC2D3, 0xCAD9, 0xC2D4, 0xCAE0, 0xC2D5, 0xCAEC, 0xC2D6, 0xCAF4, 0xC2D7, 0xCB08, 0xC2D8, 0xCB10, + 0xC2D9, 0xCB14, 0xC2DA, 0xCB18, 0xC2DB, 0xCB20, 0xC2DC, 0xCB21, 0xC2DD, 0xCB41, 0xC2DE, 0xCB48, 0xC2DF, 0xCB49, 0xC2E0, 0xCB4C, + 0xC2E1, 0xCB50, 0xC2E2, 0xCB58, 0xC2E3, 0xCB59, 0xC2E4, 0xCB5D, 0xC2E5, 0xCB64, 0xC2E6, 0xCB78, 0xC2E7, 0xCB79, 0xC2E8, 0xCB9C, + 0xC2E9, 0xCBB8, 0xC2EA, 0xCBD4, 0xC2EB, 0xCBE4, 0xC2EC, 0xCBE7, 0xC2ED, 0xCBE9, 0xC2EE, 0xCC0C, 0xC2EF, 0xCC0D, 0xC2F0, 0xCC10, + 0xC2F1, 0xCC14, 0xC2F2, 0xCC1C, 0xC2F3, 0xCC1D, 0xC2F4, 0xCC21, 0xC2F5, 0xCC22, 0xC2F6, 0xCC27, 0xC2F7, 0xCC28, 0xC2F8, 0xCC29, + 0xC2F9, 0xCC2C, 0xC2FA, 0xCC2E, 0xC2FB, 0xCC30, 0xC2FC, 0xCC38, 0xC2FD, 0xCC39, 0xC2FE, 0xCC3B, 0xC341, 0xD63D, 0xC342, 0xD63E, + 0xC343, 0xD63F, 0xC344, 0xD641, 0xC345, 0xD642, 0xC346, 0xD643, 0xC347, 0xD644, 0xC348, 0xD646, 0xC349, 0xD647, 0xC34A, 0xD64A, + 0xC34B, 0xD64C, 0xC34C, 0xD64E, 0xC34D, 0xD64F, 0xC34E, 0xD650, 0xC34F, 0xD652, 0xC350, 0xD653, 0xC351, 0xD656, 0xC352, 0xD657, + 0xC353, 0xD659, 0xC354, 0xD65A, 0xC355, 0xD65B, 0xC356, 0xD65D, 0xC357, 0xD65E, 0xC358, 0xD65F, 0xC359, 0xD660, 0xC35A, 0xD661, + 0xC361, 0xD662, 0xC362, 0xD663, 0xC363, 0xD664, 0xC364, 0xD665, 0xC365, 0xD666, 0xC366, 0xD668, 0xC367, 0xD66A, 0xC368, 0xD66B, + 0xC369, 0xD66C, 0xC36A, 0xD66D, 0xC36B, 0xD66E, 0xC36C, 0xD66F, 0xC36D, 0xD672, 0xC36E, 0xD673, 0xC36F, 0xD675, 0xC370, 0xD676, + 0xC371, 0xD677, 0xC372, 0xD678, 0xC373, 0xD679, 0xC374, 0xD67A, 0xC375, 0xD67B, 0xC376, 0xD67C, 0xC377, 0xD67D, 0xC378, 0xD67E, + 0xC379, 0xD67F, 0xC37A, 0xD680, 0xC381, 0xD681, 0xC382, 0xD682, 0xC383, 0xD684, 0xC384, 0xD686, 0xC385, 0xD687, 0xC386, 0xD688, + 0xC387, 0xD689, 0xC388, 0xD68A, 0xC389, 0xD68B, 0xC38A, 0xD68E, 0xC38B, 0xD68F, 0xC38C, 0xD691, 0xC38D, 0xD692, 0xC38E, 0xD693, + 0xC38F, 0xD695, 0xC390, 0xD696, 0xC391, 0xD697, 0xC392, 0xD698, 0xC393, 0xD699, 0xC394, 0xD69A, 0xC395, 0xD69B, 0xC396, 0xD69C, + 0xC397, 0xD69E, 0xC398, 0xD6A0, 0xC399, 0xD6A2, 0xC39A, 0xD6A3, 0xC39B, 0xD6A4, 0xC39C, 0xD6A5, 0xC39D, 0xD6A6, 0xC39E, 0xD6A7, + 0xC39F, 0xD6A9, 0xC3A0, 0xD6AA, 0xC3A1, 0xCC3C, 0xC3A2, 0xCC3D, 0xC3A3, 0xCC3E, 0xC3A4, 0xCC44, 0xC3A5, 0xCC45, 0xC3A6, 0xCC48, + 0xC3A7, 0xCC4C, 0xC3A8, 0xCC54, 0xC3A9, 0xCC55, 0xC3AA, 0xCC57, 0xC3AB, 0xCC58, 0xC3AC, 0xCC59, 0xC3AD, 0xCC60, 0xC3AE, 0xCC64, + 0xC3AF, 0xCC66, 0xC3B0, 0xCC68, 0xC3B1, 0xCC70, 0xC3B2, 0xCC75, 0xC3B3, 0xCC98, 0xC3B4, 0xCC99, 0xC3B5, 0xCC9C, 0xC3B6, 0xCCA0, + 0xC3B7, 0xCCA8, 0xC3B8, 0xCCA9, 0xC3B9, 0xCCAB, 0xC3BA, 0xCCAC, 0xC3BB, 0xCCAD, 0xC3BC, 0xCCB4, 0xC3BD, 0xCCB5, 0xC3BE, 0xCCB8, + 0xC3BF, 0xCCBC, 0xC3C0, 0xCCC4, 0xC3C1, 0xCCC5, 0xC3C2, 0xCCC7, 0xC3C3, 0xCCC9, 0xC3C4, 0xCCD0, 0xC3C5, 0xCCD4, 0xC3C6, 0xCCE4, + 0xC3C7, 0xCCEC, 0xC3C8, 0xCCF0, 0xC3C9, 0xCD01, 0xC3CA, 0xCD08, 0xC3CB, 0xCD09, 0xC3CC, 0xCD0C, 0xC3CD, 0xCD10, 0xC3CE, 0xCD18, + 0xC3CF, 0xCD19, 0xC3D0, 0xCD1B, 0xC3D1, 0xCD1D, 0xC3D2, 0xCD24, 0xC3D3, 0xCD28, 0xC3D4, 0xCD2C, 0xC3D5, 0xCD39, 0xC3D6, 0xCD5C, + 0xC3D7, 0xCD60, 0xC3D8, 0xCD64, 0xC3D9, 0xCD6C, 0xC3DA, 0xCD6D, 0xC3DB, 0xCD6F, 0xC3DC, 0xCD71, 0xC3DD, 0xCD78, 0xC3DE, 0xCD88, + 0xC3DF, 0xCD94, 0xC3E0, 0xCD95, 0xC3E1, 0xCD98, 0xC3E2, 0xCD9C, 0xC3E3, 0xCDA4, 0xC3E4, 0xCDA5, 0xC3E5, 0xCDA7, 0xC3E6, 0xCDA9, + 0xC3E7, 0xCDB0, 0xC3E8, 0xCDC4, 0xC3E9, 0xCDCC, 0xC3EA, 0xCDD0, 0xC3EB, 0xCDE8, 0xC3EC, 0xCDEC, 0xC3ED, 0xCDF0, 0xC3EE, 0xCDF8, + 0xC3EF, 0xCDF9, 0xC3F0, 0xCDFB, 0xC3F1, 0xCDFD, 0xC3F2, 0xCE04, 0xC3F3, 0xCE08, 0xC3F4, 0xCE0C, 0xC3F5, 0xCE14, 0xC3F6, 0xCE19, + 0xC3F7, 0xCE20, 0xC3F8, 0xCE21, 0xC3F9, 0xCE24, 0xC3FA, 0xCE28, 0xC3FB, 0xCE30, 0xC3FC, 0xCE31, 0xC3FD, 0xCE33, 0xC3FE, 0xCE35, + 0xC441, 0xD6AB, 0xC442, 0xD6AD, 0xC443, 0xD6AE, 0xC444, 0xD6AF, 0xC445, 0xD6B1, 0xC446, 0xD6B2, 0xC447, 0xD6B3, 0xC448, 0xD6B4, + 0xC449, 0xD6B5, 0xC44A, 0xD6B6, 0xC44B, 0xD6B7, 0xC44C, 0xD6B8, 0xC44D, 0xD6BA, 0xC44E, 0xD6BC, 0xC44F, 0xD6BD, 0xC450, 0xD6BE, + 0xC451, 0xD6BF, 0xC452, 0xD6C0, 0xC453, 0xD6C1, 0xC454, 0xD6C2, 0xC455, 0xD6C3, 0xC456, 0xD6C6, 0xC457, 0xD6C7, 0xC458, 0xD6C9, + 0xC459, 0xD6CA, 0xC45A, 0xD6CB, 0xC461, 0xD6CD, 0xC462, 0xD6CE, 0xC463, 0xD6CF, 0xC464, 0xD6D0, 0xC465, 0xD6D2, 0xC466, 0xD6D3, + 0xC467, 0xD6D5, 0xC468, 0xD6D6, 0xC469, 0xD6D8, 0xC46A, 0xD6DA, 0xC46B, 0xD6DB, 0xC46C, 0xD6DC, 0xC46D, 0xD6DD, 0xC46E, 0xD6DE, + 0xC46F, 0xD6DF, 0xC470, 0xD6E1, 0xC471, 0xD6E2, 0xC472, 0xD6E3, 0xC473, 0xD6E5, 0xC474, 0xD6E6, 0xC475, 0xD6E7, 0xC476, 0xD6E9, + 0xC477, 0xD6EA, 0xC478, 0xD6EB, 0xC479, 0xD6EC, 0xC47A, 0xD6ED, 0xC481, 0xD6EE, 0xC482, 0xD6EF, 0xC483, 0xD6F1, 0xC484, 0xD6F2, + 0xC485, 0xD6F3, 0xC486, 0xD6F4, 0xC487, 0xD6F6, 0xC488, 0xD6F7, 0xC489, 0xD6F8, 0xC48A, 0xD6F9, 0xC48B, 0xD6FA, 0xC48C, 0xD6FB, + 0xC48D, 0xD6FE, 0xC48E, 0xD6FF, 0xC48F, 0xD701, 0xC490, 0xD702, 0xC491, 0xD703, 0xC492, 0xD705, 0xC493, 0xD706, 0xC494, 0xD707, + 0xC495, 0xD708, 0xC496, 0xD709, 0xC497, 0xD70A, 0xC498, 0xD70B, 0xC499, 0xD70C, 0xC49A, 0xD70D, 0xC49B, 0xD70E, 0xC49C, 0xD70F, + 0xC49D, 0xD710, 0xC49E, 0xD712, 0xC49F, 0xD713, 0xC4A0, 0xD714, 0xC4A1, 0xCE58, 0xC4A2, 0xCE59, 0xC4A3, 0xCE5C, 0xC4A4, 0xCE5F, + 0xC4A5, 0xCE60, 0xC4A6, 0xCE61, 0xC4A7, 0xCE68, 0xC4A8, 0xCE69, 0xC4A9, 0xCE6B, 0xC4AA, 0xCE6D, 0xC4AB, 0xCE74, 0xC4AC, 0xCE75, + 0xC4AD, 0xCE78, 0xC4AE, 0xCE7C, 0xC4AF, 0xCE84, 0xC4B0, 0xCE85, 0xC4B1, 0xCE87, 0xC4B2, 0xCE89, 0xC4B3, 0xCE90, 0xC4B4, 0xCE91, + 0xC4B5, 0xCE94, 0xC4B6, 0xCE98, 0xC4B7, 0xCEA0, 0xC4B8, 0xCEA1, 0xC4B9, 0xCEA3, 0xC4BA, 0xCEA4, 0xC4BB, 0xCEA5, 0xC4BC, 0xCEAC, + 0xC4BD, 0xCEAD, 0xC4BE, 0xCEC1, 0xC4BF, 0xCEE4, 0xC4C0, 0xCEE5, 0xC4C1, 0xCEE8, 0xC4C2, 0xCEEB, 0xC4C3, 0xCEEC, 0xC4C4, 0xCEF4, + 0xC4C5, 0xCEF5, 0xC4C6, 0xCEF7, 0xC4C7, 0xCEF8, 0xC4C8, 0xCEF9, 0xC4C9, 0xCF00, 0xC4CA, 0xCF01, 0xC4CB, 0xCF04, 0xC4CC, 0xCF08, + 0xC4CD, 0xCF10, 0xC4CE, 0xCF11, 0xC4CF, 0xCF13, 0xC4D0, 0xCF15, 0xC4D1, 0xCF1C, 0xC4D2, 0xCF20, 0xC4D3, 0xCF24, 0xC4D4, 0xCF2C, + 0xC4D5, 0xCF2D, 0xC4D6, 0xCF2F, 0xC4D7, 0xCF30, 0xC4D8, 0xCF31, 0xC4D9, 0xCF38, 0xC4DA, 0xCF54, 0xC4DB, 0xCF55, 0xC4DC, 0xCF58, + 0xC4DD, 0xCF5C, 0xC4DE, 0xCF64, 0xC4DF, 0xCF65, 0xC4E0, 0xCF67, 0xC4E1, 0xCF69, 0xC4E2, 0xCF70, 0xC4E3, 0xCF71, 0xC4E4, 0xCF74, + 0xC4E5, 0xCF78, 0xC4E6, 0xCF80, 0xC4E7, 0xCF85, 0xC4E8, 0xCF8C, 0xC4E9, 0xCFA1, 0xC4EA, 0xCFA8, 0xC4EB, 0xCFB0, 0xC4EC, 0xCFC4, + 0xC4ED, 0xCFE0, 0xC4EE, 0xCFE1, 0xC4EF, 0xCFE4, 0xC4F0, 0xCFE8, 0xC4F1, 0xCFF0, 0xC4F2, 0xCFF1, 0xC4F3, 0xCFF3, 0xC4F4, 0xCFF5, + 0xC4F5, 0xCFFC, 0xC4F6, 0xD000, 0xC4F7, 0xD004, 0xC4F8, 0xD011, 0xC4F9, 0xD018, 0xC4FA, 0xD02D, 0xC4FB, 0xD034, 0xC4FC, 0xD035, + 0xC4FD, 0xD038, 0xC4FE, 0xD03C, 0xC541, 0xD715, 0xC542, 0xD716, 0xC543, 0xD717, 0xC544, 0xD71A, 0xC545, 0xD71B, 0xC546, 0xD71D, + 0xC547, 0xD71E, 0xC548, 0xD71F, 0xC549, 0xD721, 0xC54A, 0xD722, 0xC54B, 0xD723, 0xC54C, 0xD724, 0xC54D, 0xD725, 0xC54E, 0xD726, + 0xC54F, 0xD727, 0xC550, 0xD72A, 0xC551, 0xD72C, 0xC552, 0xD72E, 0xC553, 0xD72F, 0xC554, 0xD730, 0xC555, 0xD731, 0xC556, 0xD732, + 0xC557, 0xD733, 0xC558, 0xD736, 0xC559, 0xD737, 0xC55A, 0xD739, 0xC561, 0xD73A, 0xC562, 0xD73B, 0xC563, 0xD73D, 0xC564, 0xD73E, + 0xC565, 0xD73F, 0xC566, 0xD740, 0xC567, 0xD741, 0xC568, 0xD742, 0xC569, 0xD743, 0xC56A, 0xD745, 0xC56B, 0xD746, 0xC56C, 0xD748, + 0xC56D, 0xD74A, 0xC56E, 0xD74B, 0xC56F, 0xD74C, 0xC570, 0xD74D, 0xC571, 0xD74E, 0xC572, 0xD74F, 0xC573, 0xD752, 0xC574, 0xD753, + 0xC575, 0xD755, 0xC576, 0xD75A, 0xC577, 0xD75B, 0xC578, 0xD75C, 0xC579, 0xD75D, 0xC57A, 0xD75E, 0xC581, 0xD75F, 0xC582, 0xD762, + 0xC583, 0xD764, 0xC584, 0xD766, 0xC585, 0xD767, 0xC586, 0xD768, 0xC587, 0xD76A, 0xC588, 0xD76B, 0xC589, 0xD76D, 0xC58A, 0xD76E, + 0xC58B, 0xD76F, 0xC58C, 0xD771, 0xC58D, 0xD772, 0xC58E, 0xD773, 0xC58F, 0xD775, 0xC590, 0xD776, 0xC591, 0xD777, 0xC592, 0xD778, + 0xC593, 0xD779, 0xC594, 0xD77A, 0xC595, 0xD77B, 0xC596, 0xD77E, 0xC597, 0xD77F, 0xC598, 0xD780, 0xC599, 0xD782, 0xC59A, 0xD783, + 0xC59B, 0xD784, 0xC59C, 0xD785, 0xC59D, 0xD786, 0xC59E, 0xD787, 0xC59F, 0xD78A, 0xC5A0, 0xD78B, 0xC5A1, 0xD044, 0xC5A2, 0xD045, + 0xC5A3, 0xD047, 0xC5A4, 0xD049, 0xC5A5, 0xD050, 0xC5A6, 0xD054, 0xC5A7, 0xD058, 0xC5A8, 0xD060, 0xC5A9, 0xD06C, 0xC5AA, 0xD06D, + 0xC5AB, 0xD070, 0xC5AC, 0xD074, 0xC5AD, 0xD07C, 0xC5AE, 0xD07D, 0xC5AF, 0xD081, 0xC5B0, 0xD0A4, 0xC5B1, 0xD0A5, 0xC5B2, 0xD0A8, + 0xC5B3, 0xD0AC, 0xC5B4, 0xD0B4, 0xC5B5, 0xD0B5, 0xC5B6, 0xD0B7, 0xC5B7, 0xD0B9, 0xC5B8, 0xD0C0, 0xC5B9, 0xD0C1, 0xC5BA, 0xD0C4, + 0xC5BB, 0xD0C8, 0xC5BC, 0xD0C9, 0xC5BD, 0xD0D0, 0xC5BE, 0xD0D1, 0xC5BF, 0xD0D3, 0xC5C0, 0xD0D4, 0xC5C1, 0xD0D5, 0xC5C2, 0xD0DC, + 0xC5C3, 0xD0DD, 0xC5C4, 0xD0E0, 0xC5C5, 0xD0E4, 0xC5C6, 0xD0EC, 0xC5C7, 0xD0ED, 0xC5C8, 0xD0EF, 0xC5C9, 0xD0F0, 0xC5CA, 0xD0F1, + 0xC5CB, 0xD0F8, 0xC5CC, 0xD10D, 0xC5CD, 0xD130, 0xC5CE, 0xD131, 0xC5CF, 0xD134, 0xC5D0, 0xD138, 0xC5D1, 0xD13A, 0xC5D2, 0xD140, + 0xC5D3, 0xD141, 0xC5D4, 0xD143, 0xC5D5, 0xD144, 0xC5D6, 0xD145, 0xC5D7, 0xD14C, 0xC5D8, 0xD14D, 0xC5D9, 0xD150, 0xC5DA, 0xD154, + 0xC5DB, 0xD15C, 0xC5DC, 0xD15D, 0xC5DD, 0xD15F, 0xC5DE, 0xD161, 0xC5DF, 0xD168, 0xC5E0, 0xD16C, 0xC5E1, 0xD17C, 0xC5E2, 0xD184, + 0xC5E3, 0xD188, 0xC5E4, 0xD1A0, 0xC5E5, 0xD1A1, 0xC5E6, 0xD1A4, 0xC5E7, 0xD1A8, 0xC5E8, 0xD1B0, 0xC5E9, 0xD1B1, 0xC5EA, 0xD1B3, + 0xC5EB, 0xD1B5, 0xC5EC, 0xD1BA, 0xC5ED, 0xD1BC, 0xC5EE, 0xD1C0, 0xC5EF, 0xD1D8, 0xC5F0, 0xD1F4, 0xC5F1, 0xD1F8, 0xC5F2, 0xD207, + 0xC5F3, 0xD209, 0xC5F4, 0xD210, 0xC5F5, 0xD22C, 0xC5F6, 0xD22D, 0xC5F7, 0xD230, 0xC5F8, 0xD234, 0xC5F9, 0xD23C, 0xC5FA, 0xD23D, + 0xC5FB, 0xD23F, 0xC5FC, 0xD241, 0xC5FD, 0xD248, 0xC5FE, 0xD25C, 0xC641, 0xD78D, 0xC642, 0xD78E, 0xC643, 0xD78F, 0xC644, 0xD791, + 0xC645, 0xD792, 0xC646, 0xD793, 0xC647, 0xD794, 0xC648, 0xD795, 0xC649, 0xD796, 0xC64A, 0xD797, 0xC64B, 0xD79A, 0xC64C, 0xD79C, + 0xC64D, 0xD79E, 0xC64E, 0xD79F, 0xC64F, 0xD7A0, 0xC650, 0xD7A1, 0xC651, 0xD7A2, 0xC652, 0xD7A3, 0xC6A1, 0xD264, 0xC6A2, 0xD280, + 0xC6A3, 0xD281, 0xC6A4, 0xD284, 0xC6A5, 0xD288, 0xC6A6, 0xD290, 0xC6A7, 0xD291, 0xC6A8, 0xD295, 0xC6A9, 0xD29C, 0xC6AA, 0xD2A0, + 0xC6AB, 0xD2A4, 0xC6AC, 0xD2AC, 0xC6AD, 0xD2B1, 0xC6AE, 0xD2B8, 0xC6AF, 0xD2B9, 0xC6B0, 0xD2BC, 0xC6B1, 0xD2BF, 0xC6B2, 0xD2C0, + 0xC6B3, 0xD2C2, 0xC6B4, 0xD2C8, 0xC6B5, 0xD2C9, 0xC6B6, 0xD2CB, 0xC6B7, 0xD2D4, 0xC6B8, 0xD2D8, 0xC6B9, 0xD2DC, 0xC6BA, 0xD2E4, + 0xC6BB, 0xD2E5, 0xC6BC, 0xD2F0, 0xC6BD, 0xD2F1, 0xC6BE, 0xD2F4, 0xC6BF, 0xD2F8, 0xC6C0, 0xD300, 0xC6C1, 0xD301, 0xC6C2, 0xD303, + 0xC6C3, 0xD305, 0xC6C4, 0xD30C, 0xC6C5, 0xD30D, 0xC6C6, 0xD30E, 0xC6C7, 0xD310, 0xC6C8, 0xD314, 0xC6C9, 0xD316, 0xC6CA, 0xD31C, + 0xC6CB, 0xD31D, 0xC6CC, 0xD31F, 0xC6CD, 0xD320, 0xC6CE, 0xD321, 0xC6CF, 0xD325, 0xC6D0, 0xD328, 0xC6D1, 0xD329, 0xC6D2, 0xD32C, + 0xC6D3, 0xD330, 0xC6D4, 0xD338, 0xC6D5, 0xD339, 0xC6D6, 0xD33B, 0xC6D7, 0xD33C, 0xC6D8, 0xD33D, 0xC6D9, 0xD344, 0xC6DA, 0xD345, + 0xC6DB, 0xD37C, 0xC6DC, 0xD37D, 0xC6DD, 0xD380, 0xC6DE, 0xD384, 0xC6DF, 0xD38C, 0xC6E0, 0xD38D, 0xC6E1, 0xD38F, 0xC6E2, 0xD390, + 0xC6E3, 0xD391, 0xC6E4, 0xD398, 0xC6E5, 0xD399, 0xC6E6, 0xD39C, 0xC6E7, 0xD3A0, 0xC6E8, 0xD3A8, 0xC6E9, 0xD3A9, 0xC6EA, 0xD3AB, + 0xC6EB, 0xD3AD, 0xC6EC, 0xD3B4, 0xC6ED, 0xD3B8, 0xC6EE, 0xD3BC, 0xC6EF, 0xD3C4, 0xC6F0, 0xD3C5, 0xC6F1, 0xD3C8, 0xC6F2, 0xD3C9, + 0xC6F3, 0xD3D0, 0xC6F4, 0xD3D8, 0xC6F5, 0xD3E1, 0xC6F6, 0xD3E3, 0xC6F7, 0xD3EC, 0xC6F8, 0xD3ED, 0xC6F9, 0xD3F0, 0xC6FA, 0xD3F4, + 0xC6FB, 0xD3FC, 0xC6FC, 0xD3FD, 0xC6FD, 0xD3FF, 0xC6FE, 0xD401, 0xC7A1, 0xD408, 0xC7A2, 0xD41D, 0xC7A3, 0xD440, 0xC7A4, 0xD444, + 0xC7A5, 0xD45C, 0xC7A6, 0xD460, 0xC7A7, 0xD464, 0xC7A8, 0xD46D, 0xC7A9, 0xD46F, 0xC7AA, 0xD478, 0xC7AB, 0xD479, 0xC7AC, 0xD47C, + 0xC7AD, 0xD47F, 0xC7AE, 0xD480, 0xC7AF, 0xD482, 0xC7B0, 0xD488, 0xC7B1, 0xD489, 0xC7B2, 0xD48B, 0xC7B3, 0xD48D, 0xC7B4, 0xD494, + 0xC7B5, 0xD4A9, 0xC7B6, 0xD4CC, 0xC7B7, 0xD4D0, 0xC7B8, 0xD4D4, 0xC7B9, 0xD4DC, 0xC7BA, 0xD4DF, 0xC7BB, 0xD4E8, 0xC7BC, 0xD4EC, + 0xC7BD, 0xD4F0, 0xC7BE, 0xD4F8, 0xC7BF, 0xD4FB, 0xC7C0, 0xD4FD, 0xC7C1, 0xD504, 0xC7C2, 0xD508, 0xC7C3, 0xD50C, 0xC7C4, 0xD514, + 0xC7C5, 0xD515, 0xC7C6, 0xD517, 0xC7C7, 0xD53C, 0xC7C8, 0xD53D, 0xC7C9, 0xD540, 0xC7CA, 0xD544, 0xC7CB, 0xD54C, 0xC7CC, 0xD54D, + 0xC7CD, 0xD54F, 0xC7CE, 0xD551, 0xC7CF, 0xD558, 0xC7D0, 0xD559, 0xC7D1, 0xD55C, 0xC7D2, 0xD560, 0xC7D3, 0xD565, 0xC7D4, 0xD568, + 0xC7D5, 0xD569, 0xC7D6, 0xD56B, 0xC7D7, 0xD56D, 0xC7D8, 0xD574, 0xC7D9, 0xD575, 0xC7DA, 0xD578, 0xC7DB, 0xD57C, 0xC7DC, 0xD584, + 0xC7DD, 0xD585, 0xC7DE, 0xD587, 0xC7DF, 0xD588, 0xC7E0, 0xD589, 0xC7E1, 0xD590, 0xC7E2, 0xD5A5, 0xC7E3, 0xD5C8, 0xC7E4, 0xD5C9, + 0xC7E5, 0xD5CC, 0xC7E6, 0xD5D0, 0xC7E7, 0xD5D2, 0xC7E8, 0xD5D8, 0xC7E9, 0xD5D9, 0xC7EA, 0xD5DB, 0xC7EB, 0xD5DD, 0xC7EC, 0xD5E4, + 0xC7ED, 0xD5E5, 0xC7EE, 0xD5E8, 0xC7EF, 0xD5EC, 0xC7F0, 0xD5F4, 0xC7F1, 0xD5F5, 0xC7F2, 0xD5F7, 0xC7F3, 0xD5F9, 0xC7F4, 0xD600, + 0xC7F5, 0xD601, 0xC7F6, 0xD604, 0xC7F7, 0xD608, 0xC7F8, 0xD610, 0xC7F9, 0xD611, 0xC7FA, 0xD613, 0xC7FB, 0xD614, 0xC7FC, 0xD615, + 0xC7FD, 0xD61C, 0xC7FE, 0xD620, 0xC8A1, 0xD624, 0xC8A2, 0xD62D, 0xC8A3, 0xD638, 0xC8A4, 0xD639, 0xC8A5, 0xD63C, 0xC8A6, 0xD640, + 0xC8A7, 0xD645, 0xC8A8, 0xD648, 0xC8A9, 0xD649, 0xC8AA, 0xD64B, 0xC8AB, 0xD64D, 0xC8AC, 0xD651, 0xC8AD, 0xD654, 0xC8AE, 0xD655, + 0xC8AF, 0xD658, 0xC8B0, 0xD65C, 0xC8B1, 0xD667, 0xC8B2, 0xD669, 0xC8B3, 0xD670, 0xC8B4, 0xD671, 0xC8B5, 0xD674, 0xC8B6, 0xD683, + 0xC8B7, 0xD685, 0xC8B8, 0xD68C, 0xC8B9, 0xD68D, 0xC8BA, 0xD690, 0xC8BB, 0xD694, 0xC8BC, 0xD69D, 0xC8BD, 0xD69F, 0xC8BE, 0xD6A1, + 0xC8BF, 0xD6A8, 0xC8C0, 0xD6AC, 0xC8C1, 0xD6B0, 0xC8C2, 0xD6B9, 0xC8C3, 0xD6BB, 0xC8C4, 0xD6C4, 0xC8C5, 0xD6C5, 0xC8C6, 0xD6C8, + 0xC8C7, 0xD6CC, 0xC8C8, 0xD6D1, 0xC8C9, 0xD6D4, 0xC8CA, 0xD6D7, 0xC8CB, 0xD6D9, 0xC8CC, 0xD6E0, 0xC8CD, 0xD6E4, 0xC8CE, 0xD6E8, + 0xC8CF, 0xD6F0, 0xC8D0, 0xD6F5, 0xC8D1, 0xD6FC, 0xC8D2, 0xD6FD, 0xC8D3, 0xD700, 0xC8D4, 0xD704, 0xC8D5, 0xD711, 0xC8D6, 0xD718, + 0xC8D7, 0xD719, 0xC8D8, 0xD71C, 0xC8D9, 0xD720, 0xC8DA, 0xD728, 0xC8DB, 0xD729, 0xC8DC, 0xD72B, 0xC8DD, 0xD72D, 0xC8DE, 0xD734, + 0xC8DF, 0xD735, 0xC8E0, 0xD738, 0xC8E1, 0xD73C, 0xC8E2, 0xD744, 0xC8E3, 0xD747, 0xC8E4, 0xD749, 0xC8E5, 0xD750, 0xC8E6, 0xD751, + 0xC8E7, 0xD754, 0xC8E8, 0xD756, 0xC8E9, 0xD757, 0xC8EA, 0xD758, 0xC8EB, 0xD759, 0xC8EC, 0xD760, 0xC8ED, 0xD761, 0xC8EE, 0xD763, + 0xC8EF, 0xD765, 0xC8F0, 0xD769, 0xC8F1, 0xD76C, 0xC8F2, 0xD770, 0xC8F3, 0xD774, 0xC8F4, 0xD77C, 0xC8F5, 0xD77D, 0xC8F6, 0xD781, + 0xC8F7, 0xD788, 0xC8F8, 0xD789, 0xC8F9, 0xD78C, 0xC8FA, 0xD790, 0xC8FB, 0xD798, 0xC8FC, 0xD799, 0xC8FD, 0xD79B, 0xC8FE, 0xD79D, + 0xCAA1, 0x4F3D, 0xCAA2, 0x4F73, 0xCAA3, 0x5047, 0xCAA4, 0x50F9, 0xCAA5, 0x52A0, 0xCAA6, 0x53EF, 0xCAA7, 0x5475, 0xCAA8, 0x54E5, + 0xCAA9, 0x5609, 0xCAAA, 0x5AC1, 0xCAAB, 0x5BB6, 0xCAAC, 0x6687, 0xCAAD, 0x67B6, 0xCAAE, 0x67B7, 0xCAAF, 0x67EF, 0xCAB0, 0x6B4C, + 0xCAB1, 0x73C2, 0xCAB2, 0x75C2, 0xCAB3, 0x7A3C, 0xCAB4, 0x82DB, 0xCAB5, 0x8304, 0xCAB6, 0x8857, 0xCAB7, 0x8888, 0xCAB8, 0x8A36, + 0xCAB9, 0x8CC8, 0xCABA, 0x8DCF, 0xCABB, 0x8EFB, 0xCABC, 0x8FE6, 0xCABD, 0x99D5, 0xCABE, 0x523B, 0xCABF, 0x5374, 0xCAC0, 0x5404, + 0xCAC1, 0x606A, 0xCAC2, 0x6164, 0xCAC3, 0x6BBC, 0xCAC4, 0x73CF, 0xCAC5, 0x811A, 0xCAC6, 0x89BA, 0xCAC7, 0x89D2, 0xCAC8, 0x95A3, + 0xCAC9, 0x4F83, 0xCACA, 0x520A, 0xCACB, 0x58BE, 0xCACC, 0x5978, 0xCACD, 0x59E6, 0xCACE, 0x5E72, 0xCACF, 0x5E79, 0xCAD0, 0x61C7, + 0xCAD1, 0x63C0, 0xCAD2, 0x6746, 0xCAD3, 0x67EC, 0xCAD4, 0x687F, 0xCAD5, 0x6F97, 0xCAD6, 0x764E, 0xCAD7, 0x770B, 0xCAD8, 0x78F5, + 0xCAD9, 0x7A08, 0xCADA, 0x7AFF, 0xCADB, 0x7C21, 0xCADC, 0x809D, 0xCADD, 0x826E, 0xCADE, 0x8271, 0xCADF, 0x8AEB, 0xCAE0, 0x9593, + 0xCAE1, 0x4E6B, 0xCAE2, 0x559D, 0xCAE3, 0x66F7, 0xCAE4, 0x6E34, 0xCAE5, 0x78A3, 0xCAE6, 0x7AED, 0xCAE7, 0x845B, 0xCAE8, 0x8910, + 0xCAE9, 0x874E, 0xCAEA, 0x97A8, 0xCAEB, 0x52D8, 0xCAEC, 0x574E, 0xCAED, 0x582A, 0xCAEE, 0x5D4C, 0xCAEF, 0x611F, 0xCAF0, 0x61BE, + 0xCAF1, 0x6221, 0xCAF2, 0x6562, 0xCAF3, 0x67D1, 0xCAF4, 0x6A44, 0xCAF5, 0x6E1B, 0xCAF6, 0x7518, 0xCAF7, 0x75B3, 0xCAF8, 0x76E3, + 0xCAF9, 0x77B0, 0xCAFA, 0x7D3A, 0xCAFB, 0x90AF, 0xCAFC, 0x9451, 0xCAFD, 0x9452, 0xCAFE, 0x9F95, 0xCBA1, 0x5323, 0xCBA2, 0x5CAC, + 0xCBA3, 0x7532, 0xCBA4, 0x80DB, 0xCBA5, 0x9240, 0xCBA6, 0x9598, 0xCBA7, 0x525B, 0xCBA8, 0x5808, 0xCBA9, 0x59DC, 0xCBAA, 0x5CA1, + 0xCBAB, 0x5D17, 0xCBAC, 0x5EB7, 0xCBAD, 0x5F3A, 0xCBAE, 0x5F4A, 0xCBAF, 0x6177, 0xCBB0, 0x6C5F, 0xCBB1, 0x757A, 0xCBB2, 0x7586, + 0xCBB3, 0x7CE0, 0xCBB4, 0x7D73, 0xCBB5, 0x7DB1, 0xCBB6, 0x7F8C, 0xCBB7, 0x8154, 0xCBB8, 0x8221, 0xCBB9, 0x8591, 0xCBBA, 0x8941, + 0xCBBB, 0x8B1B, 0xCBBC, 0x92FC, 0xCBBD, 0x964D, 0xCBBE, 0x9C47, 0xCBBF, 0x4ECB, 0xCBC0, 0x4EF7, 0xCBC1, 0x500B, 0xCBC2, 0x51F1, + 0xCBC3, 0x584F, 0xCBC4, 0x6137, 0xCBC5, 0x613E, 0xCBC6, 0x6168, 0xCBC7, 0x6539, 0xCBC8, 0x69EA, 0xCBC9, 0x6F11, 0xCBCA, 0x75A5, + 0xCBCB, 0x7686, 0xCBCC, 0x76D6, 0xCBCD, 0x7B87, 0xCBCE, 0x82A5, 0xCBCF, 0x84CB, 0xCBD0, 0xF900, 0xCBD1, 0x93A7, 0xCBD2, 0x958B, + 0xCBD3, 0x5580, 0xCBD4, 0x5BA2, 0xCBD5, 0x5751, 0xCBD6, 0xF901, 0xCBD7, 0x7CB3, 0xCBD8, 0x7FB9, 0xCBD9, 0x91B5, 0xCBDA, 0x5028, + 0xCBDB, 0x53BB, 0xCBDC, 0x5C45, 0xCBDD, 0x5DE8, 0xCBDE, 0x62D2, 0xCBDF, 0x636E, 0xCBE0, 0x64DA, 0xCBE1, 0x64E7, 0xCBE2, 0x6E20, + 0xCBE3, 0x70AC, 0xCBE4, 0x795B, 0xCBE5, 0x8DDD, 0xCBE6, 0x8E1E, 0xCBE7, 0xF902, 0xCBE8, 0x907D, 0xCBE9, 0x9245, 0xCBEA, 0x92F8, + 0xCBEB, 0x4E7E, 0xCBEC, 0x4EF6, 0xCBED, 0x5065, 0xCBEE, 0x5DFE, 0xCBEF, 0x5EFA, 0xCBF0, 0x6106, 0xCBF1, 0x6957, 0xCBF2, 0x8171, + 0xCBF3, 0x8654, 0xCBF4, 0x8E47, 0xCBF5, 0x9375, 0xCBF6, 0x9A2B, 0xCBF7, 0x4E5E, 0xCBF8, 0x5091, 0xCBF9, 0x6770, 0xCBFA, 0x6840, + 0xCBFB, 0x5109, 0xCBFC, 0x528D, 0xCBFD, 0x5292, 0xCBFE, 0x6AA2, 0xCCA1, 0x77BC, 0xCCA2, 0x9210, 0xCCA3, 0x9ED4, 0xCCA4, 0x52AB, + 0xCCA5, 0x602F, 0xCCA6, 0x8FF2, 0xCCA7, 0x5048, 0xCCA8, 0x61A9, 0xCCA9, 0x63ED, 0xCCAA, 0x64CA, 0xCCAB, 0x683C, 0xCCAC, 0x6A84, + 0xCCAD, 0x6FC0, 0xCCAE, 0x8188, 0xCCAF, 0x89A1, 0xCCB0, 0x9694, 0xCCB1, 0x5805, 0xCCB2, 0x727D, 0xCCB3, 0x72AC, 0xCCB4, 0x7504, + 0xCCB5, 0x7D79, 0xCCB6, 0x7E6D, 0xCCB7, 0x80A9, 0xCCB8, 0x898B, 0xCCB9, 0x8B74, 0xCCBA, 0x9063, 0xCCBB, 0x9D51, 0xCCBC, 0x6289, + 0xCCBD, 0x6C7A, 0xCCBE, 0x6F54, 0xCCBF, 0x7D50, 0xCCC0, 0x7F3A, 0xCCC1, 0x8A23, 0xCCC2, 0x517C, 0xCCC3, 0x614A, 0xCCC4, 0x7B9D, + 0xCCC5, 0x8B19, 0xCCC6, 0x9257, 0xCCC7, 0x938C, 0xCCC8, 0x4EAC, 0xCCC9, 0x4FD3, 0xCCCA, 0x501E, 0xCCCB, 0x50BE, 0xCCCC, 0x5106, + 0xCCCD, 0x52C1, 0xCCCE, 0x52CD, 0xCCCF, 0x537F, 0xCCD0, 0x5770, 0xCCD1, 0x5883, 0xCCD2, 0x5E9A, 0xCCD3, 0x5F91, 0xCCD4, 0x6176, + 0xCCD5, 0x61AC, 0xCCD6, 0x64CE, 0xCCD7, 0x656C, 0xCCD8, 0x666F, 0xCCD9, 0x66BB, 0xCCDA, 0x66F4, 0xCCDB, 0x6897, 0xCCDC, 0x6D87, + 0xCCDD, 0x7085, 0xCCDE, 0x70F1, 0xCCDF, 0x749F, 0xCCE0, 0x74A5, 0xCCE1, 0x74CA, 0xCCE2, 0x75D9, 0xCCE3, 0x786C, 0xCCE4, 0x78EC, + 0xCCE5, 0x7ADF, 0xCCE6, 0x7AF6, 0xCCE7, 0x7D45, 0xCCE8, 0x7D93, 0xCCE9, 0x8015, 0xCCEA, 0x803F, 0xCCEB, 0x811B, 0xCCEC, 0x8396, + 0xCCED, 0x8B66, 0xCCEE, 0x8F15, 0xCCEF, 0x9015, 0xCCF0, 0x93E1, 0xCCF1, 0x9803, 0xCCF2, 0x9838, 0xCCF3, 0x9A5A, 0xCCF4, 0x9BE8, + 0xCCF5, 0x4FC2, 0xCCF6, 0x5553, 0xCCF7, 0x583A, 0xCCF8, 0x5951, 0xCCF9, 0x5B63, 0xCCFA, 0x5C46, 0xCCFB, 0x60B8, 0xCCFC, 0x6212, + 0xCCFD, 0x6842, 0xCCFE, 0x68B0, 0xCDA1, 0x68E8, 0xCDA2, 0x6EAA, 0xCDA3, 0x754C, 0xCDA4, 0x7678, 0xCDA5, 0x78CE, 0xCDA6, 0x7A3D, + 0xCDA7, 0x7CFB, 0xCDA8, 0x7E6B, 0xCDA9, 0x7E7C, 0xCDAA, 0x8A08, 0xCDAB, 0x8AA1, 0xCDAC, 0x8C3F, 0xCDAD, 0x968E, 0xCDAE, 0x9DC4, + 0xCDAF, 0x53E4, 0xCDB0, 0x53E9, 0xCDB1, 0x544A, 0xCDB2, 0x5471, 0xCDB3, 0x56FA, 0xCDB4, 0x59D1, 0xCDB5, 0x5B64, 0xCDB6, 0x5C3B, + 0xCDB7, 0x5EAB, 0xCDB8, 0x62F7, 0xCDB9, 0x6537, 0xCDBA, 0x6545, 0xCDBB, 0x6572, 0xCDBC, 0x66A0, 0xCDBD, 0x67AF, 0xCDBE, 0x69C1, + 0xCDBF, 0x6CBD, 0xCDC0, 0x75FC, 0xCDC1, 0x7690, 0xCDC2, 0x777E, 0xCDC3, 0x7A3F, 0xCDC4, 0x7F94, 0xCDC5, 0x8003, 0xCDC6, 0x80A1, + 0xCDC7, 0x818F, 0xCDC8, 0x82E6, 0xCDC9, 0x82FD, 0xCDCA, 0x83F0, 0xCDCB, 0x85C1, 0xCDCC, 0x8831, 0xCDCD, 0x88B4, 0xCDCE, 0x8AA5, + 0xCDCF, 0xF903, 0xCDD0, 0x8F9C, 0xCDD1, 0x932E, 0xCDD2, 0x96C7, 0xCDD3, 0x9867, 0xCDD4, 0x9AD8, 0xCDD5, 0x9F13, 0xCDD6, 0x54ED, + 0xCDD7, 0x659B, 0xCDD8, 0x66F2, 0xCDD9, 0x688F, 0xCDDA, 0x7A40, 0xCDDB, 0x8C37, 0xCDDC, 0x9D60, 0xCDDD, 0x56F0, 0xCDDE, 0x5764, + 0xCDDF, 0x5D11, 0xCDE0, 0x6606, 0xCDE1, 0x68B1, 0xCDE2, 0x68CD, 0xCDE3, 0x6EFE, 0xCDE4, 0x7428, 0xCDE5, 0x889E, 0xCDE6, 0x9BE4, + 0xCDE7, 0x6C68, 0xCDE8, 0xF904, 0xCDE9, 0x9AA8, 0xCDEA, 0x4F9B, 0xCDEB, 0x516C, 0xCDEC, 0x5171, 0xCDED, 0x529F, 0xCDEE, 0x5B54, + 0xCDEF, 0x5DE5, 0xCDF0, 0x6050, 0xCDF1, 0x606D, 0xCDF2, 0x62F1, 0xCDF3, 0x63A7, 0xCDF4, 0x653B, 0xCDF5, 0x73D9, 0xCDF6, 0x7A7A, + 0xCDF7, 0x86A3, 0xCDF8, 0x8CA2, 0xCDF9, 0x978F, 0xCDFA, 0x4E32, 0xCDFB, 0x5BE1, 0xCDFC, 0x6208, 0xCDFD, 0x679C, 0xCDFE, 0x74DC, + 0xCEA1, 0x79D1, 0xCEA2, 0x83D3, 0xCEA3, 0x8A87, 0xCEA4, 0x8AB2, 0xCEA5, 0x8DE8, 0xCEA6, 0x904E, 0xCEA7, 0x934B, 0xCEA8, 0x9846, + 0xCEA9, 0x5ED3, 0xCEAA, 0x69E8, 0xCEAB, 0x85FF, 0xCEAC, 0x90ED, 0xCEAD, 0xF905, 0xCEAE, 0x51A0, 0xCEAF, 0x5B98, 0xCEB0, 0x5BEC, + 0xCEB1, 0x6163, 0xCEB2, 0x68FA, 0xCEB3, 0x6B3E, 0xCEB4, 0x704C, 0xCEB5, 0x742F, 0xCEB6, 0x74D8, 0xCEB7, 0x7BA1, 0xCEB8, 0x7F50, + 0xCEB9, 0x83C5, 0xCEBA, 0x89C0, 0xCEBB, 0x8CAB, 0xCEBC, 0x95DC, 0xCEBD, 0x9928, 0xCEBE, 0x522E, 0xCEBF, 0x605D, 0xCEC0, 0x62EC, + 0xCEC1, 0x9002, 0xCEC2, 0x4F8A, 0xCEC3, 0x5149, 0xCEC4, 0x5321, 0xCEC5, 0x58D9, 0xCEC6, 0x5EE3, 0xCEC7, 0x66E0, 0xCEC8, 0x6D38, + 0xCEC9, 0x709A, 0xCECA, 0x72C2, 0xCECB, 0x73D6, 0xCECC, 0x7B50, 0xCECD, 0x80F1, 0xCECE, 0x945B, 0xCECF, 0x5366, 0xCED0, 0x639B, + 0xCED1, 0x7F6B, 0xCED2, 0x4E56, 0xCED3, 0x5080, 0xCED4, 0x584A, 0xCED5, 0x58DE, 0xCED6, 0x602A, 0xCED7, 0x6127, 0xCED8, 0x62D0, + 0xCED9, 0x69D0, 0xCEDA, 0x9B41, 0xCEDB, 0x5B8F, 0xCEDC, 0x7D18, 0xCEDD, 0x80B1, 0xCEDE, 0x8F5F, 0xCEDF, 0x4EA4, 0xCEE0, 0x50D1, + 0xCEE1, 0x54AC, 0xCEE2, 0x55AC, 0xCEE3, 0x5B0C, 0xCEE4, 0x5DA0, 0xCEE5, 0x5DE7, 0xCEE6, 0x652A, 0xCEE7, 0x654E, 0xCEE8, 0x6821, + 0xCEE9, 0x6A4B, 0xCEEA, 0x72E1, 0xCEEB, 0x768E, 0xCEEC, 0x77EF, 0xCEED, 0x7D5E, 0xCEEE, 0x7FF9, 0xCEEF, 0x81A0, 0xCEF0, 0x854E, + 0xCEF1, 0x86DF, 0xCEF2, 0x8F03, 0xCEF3, 0x8F4E, 0xCEF4, 0x90CA, 0xCEF5, 0x9903, 0xCEF6, 0x9A55, 0xCEF7, 0x9BAB, 0xCEF8, 0x4E18, + 0xCEF9, 0x4E45, 0xCEFA, 0x4E5D, 0xCEFB, 0x4EC7, 0xCEFC, 0x4FF1, 0xCEFD, 0x5177, 0xCEFE, 0x52FE, 0xCFA1, 0x5340, 0xCFA2, 0x53E3, + 0xCFA3, 0x53E5, 0xCFA4, 0x548E, 0xCFA5, 0x5614, 0xCFA6, 0x5775, 0xCFA7, 0x57A2, 0xCFA8, 0x5BC7, 0xCFA9, 0x5D87, 0xCFAA, 0x5ED0, + 0xCFAB, 0x61FC, 0xCFAC, 0x62D8, 0xCFAD, 0x6551, 0xCFAE, 0x67B8, 0xCFAF, 0x67E9, 0xCFB0, 0x69CB, 0xCFB1, 0x6B50, 0xCFB2, 0x6BC6, + 0xCFB3, 0x6BEC, 0xCFB4, 0x6C42, 0xCFB5, 0x6E9D, 0xCFB6, 0x7078, 0xCFB7, 0x72D7, 0xCFB8, 0x7396, 0xCFB9, 0x7403, 0xCFBA, 0x77BF, + 0xCFBB, 0x77E9, 0xCFBC, 0x7A76, 0xCFBD, 0x7D7F, 0xCFBE, 0x8009, 0xCFBF, 0x81FC, 0xCFC0, 0x8205, 0xCFC1, 0x820A, 0xCFC2, 0x82DF, + 0xCFC3, 0x8862, 0xCFC4, 0x8B33, 0xCFC5, 0x8CFC, 0xCFC6, 0x8EC0, 0xCFC7, 0x9011, 0xCFC8, 0x90B1, 0xCFC9, 0x9264, 0xCFCA, 0x92B6, + 0xCFCB, 0x99D2, 0xCFCC, 0x9A45, 0xCFCD, 0x9CE9, 0xCFCE, 0x9DD7, 0xCFCF, 0x9F9C, 0xCFD0, 0x570B, 0xCFD1, 0x5C40, 0xCFD2, 0x83CA, + 0xCFD3, 0x97A0, 0xCFD4, 0x97AB, 0xCFD5, 0x9EB4, 0xCFD6, 0x541B, 0xCFD7, 0x7A98, 0xCFD8, 0x7FA4, 0xCFD9, 0x88D9, 0xCFDA, 0x8ECD, + 0xCFDB, 0x90E1, 0xCFDC, 0x5800, 0xCFDD, 0x5C48, 0xCFDE, 0x6398, 0xCFDF, 0x7A9F, 0xCFE0, 0x5BAE, 0xCFE1, 0x5F13, 0xCFE2, 0x7A79, + 0xCFE3, 0x7AAE, 0xCFE4, 0x828E, 0xCFE5, 0x8EAC, 0xCFE6, 0x5026, 0xCFE7, 0x5238, 0xCFE8, 0x52F8, 0xCFE9, 0x5377, 0xCFEA, 0x5708, + 0xCFEB, 0x62F3, 0xCFEC, 0x6372, 0xCFED, 0x6B0A, 0xCFEE, 0x6DC3, 0xCFEF, 0x7737, 0xCFF0, 0x53A5, 0xCFF1, 0x7357, 0xCFF2, 0x8568, + 0xCFF3, 0x8E76, 0xCFF4, 0x95D5, 0xCFF5, 0x673A, 0xCFF6, 0x6AC3, 0xCFF7, 0x6F70, 0xCFF8, 0x8A6D, 0xCFF9, 0x8ECC, 0xCFFA, 0x994B, + 0xCFFB, 0xF906, 0xCFFC, 0x6677, 0xCFFD, 0x6B78, 0xCFFE, 0x8CB4, 0xD0A1, 0x9B3C, 0xD0A2, 0xF907, 0xD0A3, 0x53EB, 0xD0A4, 0x572D, + 0xD0A5, 0x594E, 0xD0A6, 0x63C6, 0xD0A7, 0x69FB, 0xD0A8, 0x73EA, 0xD0A9, 0x7845, 0xD0AA, 0x7ABA, 0xD0AB, 0x7AC5, 0xD0AC, 0x7CFE, + 0xD0AD, 0x8475, 0xD0AE, 0x898F, 0xD0AF, 0x8D73, 0xD0B0, 0x9035, 0xD0B1, 0x95A8, 0xD0B2, 0x52FB, 0xD0B3, 0x5747, 0xD0B4, 0x7547, + 0xD0B5, 0x7B60, 0xD0B6, 0x83CC, 0xD0B7, 0x921E, 0xD0B8, 0xF908, 0xD0B9, 0x6A58, 0xD0BA, 0x514B, 0xD0BB, 0x524B, 0xD0BC, 0x5287, + 0xD0BD, 0x621F, 0xD0BE, 0x68D8, 0xD0BF, 0x6975, 0xD0C0, 0x9699, 0xD0C1, 0x50C5, 0xD0C2, 0x52A4, 0xD0C3, 0x52E4, 0xD0C4, 0x61C3, + 0xD0C5, 0x65A4, 0xD0C6, 0x6839, 0xD0C7, 0x69FF, 0xD0C8, 0x747E, 0xD0C9, 0x7B4B, 0xD0CA, 0x82B9, 0xD0CB, 0x83EB, 0xD0CC, 0x89B2, + 0xD0CD, 0x8B39, 0xD0CE, 0x8FD1, 0xD0CF, 0x9949, 0xD0D0, 0xF909, 0xD0D1, 0x4ECA, 0xD0D2, 0x5997, 0xD0D3, 0x64D2, 0xD0D4, 0x6611, + 0xD0D5, 0x6A8E, 0xD0D6, 0x7434, 0xD0D7, 0x7981, 0xD0D8, 0x79BD, 0xD0D9, 0x82A9, 0xD0DA, 0x887E, 0xD0DB, 0x887F, 0xD0DC, 0x895F, + 0xD0DD, 0xF90A, 0xD0DE, 0x9326, 0xD0DF, 0x4F0B, 0xD0E0, 0x53CA, 0xD0E1, 0x6025, 0xD0E2, 0x6271, 0xD0E3, 0x6C72, 0xD0E4, 0x7D1A, + 0xD0E5, 0x7D66, 0xD0E6, 0x4E98, 0xD0E7, 0x5162, 0xD0E8, 0x77DC, 0xD0E9, 0x80AF, 0xD0EA, 0x4F01, 0xD0EB, 0x4F0E, 0xD0EC, 0x5176, + 0xD0ED, 0x5180, 0xD0EE, 0x55DC, 0xD0EF, 0x5668, 0xD0F0, 0x573B, 0xD0F1, 0x57FA, 0xD0F2, 0x57FC, 0xD0F3, 0x5914, 0xD0F4, 0x5947, + 0xD0F5, 0x5993, 0xD0F6, 0x5BC4, 0xD0F7, 0x5C90, 0xD0F8, 0x5D0E, 0xD0F9, 0x5DF1, 0xD0FA, 0x5E7E, 0xD0FB, 0x5FCC, 0xD0FC, 0x6280, + 0xD0FD, 0x65D7, 0xD0FE, 0x65E3, 0xD1A1, 0x671E, 0xD1A2, 0x671F, 0xD1A3, 0x675E, 0xD1A4, 0x68CB, 0xD1A5, 0x68C4, 0xD1A6, 0x6A5F, + 0xD1A7, 0x6B3A, 0xD1A8, 0x6C23, 0xD1A9, 0x6C7D, 0xD1AA, 0x6C82, 0xD1AB, 0x6DC7, 0xD1AC, 0x7398, 0xD1AD, 0x7426, 0xD1AE, 0x742A, + 0xD1AF, 0x7482, 0xD1B0, 0x74A3, 0xD1B1, 0x7578, 0xD1B2, 0x757F, 0xD1B3, 0x7881, 0xD1B4, 0x78EF, 0xD1B5, 0x7941, 0xD1B6, 0x7947, + 0xD1B7, 0x7948, 0xD1B8, 0x797A, 0xD1B9, 0x7B95, 0xD1BA, 0x7D00, 0xD1BB, 0x7DBA, 0xD1BC, 0x7F88, 0xD1BD, 0x8006, 0xD1BE, 0x802D, + 0xD1BF, 0x808C, 0xD1C0, 0x8A18, 0xD1C1, 0x8B4F, 0xD1C2, 0x8C48, 0xD1C3, 0x8D77, 0xD1C4, 0x9321, 0xD1C5, 0x9324, 0xD1C6, 0x98E2, + 0xD1C7, 0x9951, 0xD1C8, 0x9A0E, 0xD1C9, 0x9A0F, 0xD1CA, 0x9A65, 0xD1CB, 0x9E92, 0xD1CC, 0x7DCA, 0xD1CD, 0x4F76, 0xD1CE, 0x5409, + 0xD1CF, 0x62EE, 0xD1D0, 0x6854, 0xD1D1, 0x91D1, 0xD1D2, 0x55AB, 0xD1D3, 0x513A, 0xD1D4, 0xF90B, 0xD1D5, 0xF90C, 0xD1D6, 0x5A1C, + 0xD1D7, 0x61E6, 0xD1D8, 0xF90D, 0xD1D9, 0x62CF, 0xD1DA, 0x62FF, 0xD1DB, 0xF90E, 0xD1DC, 0xF90F, 0xD1DD, 0xF910, 0xD1DE, 0xF911, + 0xD1DF, 0xF912, 0xD1E0, 0xF913, 0xD1E1, 0x90A3, 0xD1E2, 0xF914, 0xD1E3, 0xF915, 0xD1E4, 0xF916, 0xD1E5, 0xF917, 0xD1E6, 0xF918, + 0xD1E7, 0x8AFE, 0xD1E8, 0xF919, 0xD1E9, 0xF91A, 0xD1EA, 0xF91B, 0xD1EB, 0xF91C, 0xD1EC, 0x6696, 0xD1ED, 0xF91D, 0xD1EE, 0x7156, + 0xD1EF, 0xF91E, 0xD1F0, 0xF91F, 0xD1F1, 0x96E3, 0xD1F2, 0xF920, 0xD1F3, 0x634F, 0xD1F4, 0x637A, 0xD1F5, 0x5357, 0xD1F6, 0xF921, + 0xD1F7, 0x678F, 0xD1F8, 0x6960, 0xD1F9, 0x6E73, 0xD1FA, 0xF922, 0xD1FB, 0x7537, 0xD1FC, 0xF923, 0xD1FD, 0xF924, 0xD1FE, 0xF925, + 0xD2A1, 0x7D0D, 0xD2A2, 0xF926, 0xD2A3, 0xF927, 0xD2A4, 0x8872, 0xD2A5, 0x56CA, 0xD2A6, 0x5A18, 0xD2A7, 0xF928, 0xD2A8, 0xF929, + 0xD2A9, 0xF92A, 0xD2AA, 0xF92B, 0xD2AB, 0xF92C, 0xD2AC, 0x4E43, 0xD2AD, 0xF92D, 0xD2AE, 0x5167, 0xD2AF, 0x5948, 0xD2B0, 0x67F0, + 0xD2B1, 0x8010, 0xD2B2, 0xF92E, 0xD2B3, 0x5973, 0xD2B4, 0x5E74, 0xD2B5, 0x649A, 0xD2B6, 0x79CA, 0xD2B7, 0x5FF5, 0xD2B8, 0x606C, + 0xD2B9, 0x62C8, 0xD2BA, 0x637B, 0xD2BB, 0x5BE7, 0xD2BC, 0x5BD7, 0xD2BD, 0x52AA, 0xD2BE, 0xF92F, 0xD2BF, 0x5974, 0xD2C0, 0x5F29, + 0xD2C1, 0x6012, 0xD2C2, 0xF930, 0xD2C3, 0xF931, 0xD2C4, 0xF932, 0xD2C5, 0x7459, 0xD2C6, 0xF933, 0xD2C7, 0xF934, 0xD2C8, 0xF935, + 0xD2C9, 0xF936, 0xD2CA, 0xF937, 0xD2CB, 0xF938, 0xD2CC, 0x99D1, 0xD2CD, 0xF939, 0xD2CE, 0xF93A, 0xD2CF, 0xF93B, 0xD2D0, 0xF93C, + 0xD2D1, 0xF93D, 0xD2D2, 0xF93E, 0xD2D3, 0xF93F, 0xD2D4, 0xF940, 0xD2D5, 0xF941, 0xD2D6, 0xF942, 0xD2D7, 0xF943, 0xD2D8, 0x6FC3, + 0xD2D9, 0xF944, 0xD2DA, 0xF945, 0xD2DB, 0x81BF, 0xD2DC, 0x8FB2, 0xD2DD, 0x60F1, 0xD2DE, 0xF946, 0xD2DF, 0xF947, 0xD2E0, 0x8166, + 0xD2E1, 0xF948, 0xD2E2, 0xF949, 0xD2E3, 0x5C3F, 0xD2E4, 0xF94A, 0xD2E5, 0xF94B, 0xD2E6, 0xF94C, 0xD2E7, 0xF94D, 0xD2E8, 0xF94E, + 0xD2E9, 0xF94F, 0xD2EA, 0xF950, 0xD2EB, 0xF951, 0xD2EC, 0x5AE9, 0xD2ED, 0x8A25, 0xD2EE, 0x677B, 0xD2EF, 0x7D10, 0xD2F0, 0xF952, + 0xD2F1, 0xF953, 0xD2F2, 0xF954, 0xD2F3, 0xF955, 0xD2F4, 0xF956, 0xD2F5, 0xF957, 0xD2F6, 0x80FD, 0xD2F7, 0xF958, 0xD2F8, 0xF959, + 0xD2F9, 0x5C3C, 0xD2FA, 0x6CE5, 0xD2FB, 0x533F, 0xD2FC, 0x6EBA, 0xD2FD, 0x591A, 0xD2FE, 0x8336, 0xD3A1, 0x4E39, 0xD3A2, 0x4EB6, + 0xD3A3, 0x4F46, 0xD3A4, 0x55AE, 0xD3A5, 0x5718, 0xD3A6, 0x58C7, 0xD3A7, 0x5F56, 0xD3A8, 0x65B7, 0xD3A9, 0x65E6, 0xD3AA, 0x6A80, + 0xD3AB, 0x6BB5, 0xD3AC, 0x6E4D, 0xD3AD, 0x77ED, 0xD3AE, 0x7AEF, 0xD3AF, 0x7C1E, 0xD3B0, 0x7DDE, 0xD3B1, 0x86CB, 0xD3B2, 0x8892, + 0xD3B3, 0x9132, 0xD3B4, 0x935B, 0xD3B5, 0x64BB, 0xD3B6, 0x6FBE, 0xD3B7, 0x737A, 0xD3B8, 0x75B8, 0xD3B9, 0x9054, 0xD3BA, 0x5556, + 0xD3BB, 0x574D, 0xD3BC, 0x61BA, 0xD3BD, 0x64D4, 0xD3BE, 0x66C7, 0xD3BF, 0x6DE1, 0xD3C0, 0x6E5B, 0xD3C1, 0x6F6D, 0xD3C2, 0x6FB9, + 0xD3C3, 0x75F0, 0xD3C4, 0x8043, 0xD3C5, 0x81BD, 0xD3C6, 0x8541, 0xD3C7, 0x8983, 0xD3C8, 0x8AC7, 0xD3C9, 0x8B5A, 0xD3CA, 0x931F, + 0xD3CB, 0x6C93, 0xD3CC, 0x7553, 0xD3CD, 0x7B54, 0xD3CE, 0x8E0F, 0xD3CF, 0x905D, 0xD3D0, 0x5510, 0xD3D1, 0x5802, 0xD3D2, 0x5858, + 0xD3D3, 0x5E62, 0xD3D4, 0x6207, 0xD3D5, 0x649E, 0xD3D6, 0x68E0, 0xD3D7, 0x7576, 0xD3D8, 0x7CD6, 0xD3D9, 0x87B3, 0xD3DA, 0x9EE8, + 0xD3DB, 0x4EE3, 0xD3DC, 0x5788, 0xD3DD, 0x576E, 0xD3DE, 0x5927, 0xD3DF, 0x5C0D, 0xD3E0, 0x5CB1, 0xD3E1, 0x5E36, 0xD3E2, 0x5F85, + 0xD3E3, 0x6234, 0xD3E4, 0x64E1, 0xD3E5, 0x73B3, 0xD3E6, 0x81FA, 0xD3E7, 0x888B, 0xD3E8, 0x8CB8, 0xD3E9, 0x968A, 0xD3EA, 0x9EDB, + 0xD3EB, 0x5B85, 0xD3EC, 0x5FB7, 0xD3ED, 0x60B3, 0xD3EE, 0x5012, 0xD3EF, 0x5200, 0xD3F0, 0x5230, 0xD3F1, 0x5716, 0xD3F2, 0x5835, + 0xD3F3, 0x5857, 0xD3F4, 0x5C0E, 0xD3F5, 0x5C60, 0xD3F6, 0x5CF6, 0xD3F7, 0x5D8B, 0xD3F8, 0x5EA6, 0xD3F9, 0x5F92, 0xD3FA, 0x60BC, + 0xD3FB, 0x6311, 0xD3FC, 0x6389, 0xD3FD, 0x6417, 0xD3FE, 0x6843, 0xD4A1, 0x68F9, 0xD4A2, 0x6AC2, 0xD4A3, 0x6DD8, 0xD4A4, 0x6E21, + 0xD4A5, 0x6ED4, 0xD4A6, 0x6FE4, 0xD4A7, 0x71FE, 0xD4A8, 0x76DC, 0xD4A9, 0x7779, 0xD4AA, 0x79B1, 0xD4AB, 0x7A3B, 0xD4AC, 0x8404, + 0xD4AD, 0x89A9, 0xD4AE, 0x8CED, 0xD4AF, 0x8DF3, 0xD4B0, 0x8E48, 0xD4B1, 0x9003, 0xD4B2, 0x9014, 0xD4B3, 0x9053, 0xD4B4, 0x90FD, + 0xD4B5, 0x934D, 0xD4B6, 0x9676, 0xD4B7, 0x97DC, 0xD4B8, 0x6BD2, 0xD4B9, 0x7006, 0xD4BA, 0x7258, 0xD4BB, 0x72A2, 0xD4BC, 0x7368, + 0xD4BD, 0x7763, 0xD4BE, 0x79BF, 0xD4BF, 0x7BE4, 0xD4C0, 0x7E9B, 0xD4C1, 0x8B80, 0xD4C2, 0x58A9, 0xD4C3, 0x60C7, 0xD4C4, 0x6566, + 0xD4C5, 0x65FD, 0xD4C6, 0x66BE, 0xD4C7, 0x6C8C, 0xD4C8, 0x711E, 0xD4C9, 0x71C9, 0xD4CA, 0x8C5A, 0xD4CB, 0x9813, 0xD4CC, 0x4E6D, + 0xD4CD, 0x7A81, 0xD4CE, 0x4EDD, 0xD4CF, 0x51AC, 0xD4D0, 0x51CD, 0xD4D1, 0x52D5, 0xD4D2, 0x540C, 0xD4D3, 0x61A7, 0xD4D4, 0x6771, + 0xD4D5, 0x6850, 0xD4D6, 0x68DF, 0xD4D7, 0x6D1E, 0xD4D8, 0x6F7C, 0xD4D9, 0x75BC, 0xD4DA, 0x77B3, 0xD4DB, 0x7AE5, 0xD4DC, 0x80F4, + 0xD4DD, 0x8463, 0xD4DE, 0x9285, 0xD4DF, 0x515C, 0xD4E0, 0x6597, 0xD4E1, 0x675C, 0xD4E2, 0x6793, 0xD4E3, 0x75D8, 0xD4E4, 0x7AC7, + 0xD4E5, 0x8373, 0xD4E6, 0xF95A, 0xD4E7, 0x8C46, 0xD4E8, 0x9017, 0xD4E9, 0x982D, 0xD4EA, 0x5C6F, 0xD4EB, 0x81C0, 0xD4EC, 0x829A, + 0xD4ED, 0x9041, 0xD4EE, 0x906F, 0xD4EF, 0x920D, 0xD4F0, 0x5F97, 0xD4F1, 0x5D9D, 0xD4F2, 0x6A59, 0xD4F3, 0x71C8, 0xD4F4, 0x767B, + 0xD4F5, 0x7B49, 0xD4F6, 0x85E4, 0xD4F7, 0x8B04, 0xD4F8, 0x9127, 0xD4F9, 0x9A30, 0xD4FA, 0x5587, 0xD4FB, 0x61F6, 0xD4FC, 0xF95B, + 0xD4FD, 0x7669, 0xD4FE, 0x7F85, 0xD5A1, 0x863F, 0xD5A2, 0x87BA, 0xD5A3, 0x88F8, 0xD5A4, 0x908F, 0xD5A5, 0xF95C, 0xD5A6, 0x6D1B, + 0xD5A7, 0x70D9, 0xD5A8, 0x73DE, 0xD5A9, 0x7D61, 0xD5AA, 0x843D, 0xD5AB, 0xF95D, 0xD5AC, 0x916A, 0xD5AD, 0x99F1, 0xD5AE, 0xF95E, + 0xD5AF, 0x4E82, 0xD5B0, 0x5375, 0xD5B1, 0x6B04, 0xD5B2, 0x6B12, 0xD5B3, 0x703E, 0xD5B4, 0x721B, 0xD5B5, 0x862D, 0xD5B6, 0x9E1E, + 0xD5B7, 0x524C, 0xD5B8, 0x8FA3, 0xD5B9, 0x5D50, 0xD5BA, 0x64E5, 0xD5BB, 0x652C, 0xD5BC, 0x6B16, 0xD5BD, 0x6FEB, 0xD5BE, 0x7C43, + 0xD5BF, 0x7E9C, 0xD5C0, 0x85CD, 0xD5C1, 0x8964, 0xD5C2, 0x89BD, 0xD5C3, 0x62C9, 0xD5C4, 0x81D8, 0xD5C5, 0x881F, 0xD5C6, 0x5ECA, + 0xD5C7, 0x6717, 0xD5C8, 0x6D6A, 0xD5C9, 0x72FC, 0xD5CA, 0x7405, 0xD5CB, 0x746F, 0xD5CC, 0x8782, 0xD5CD, 0x90DE, 0xD5CE, 0x4F86, + 0xD5CF, 0x5D0D, 0xD5D0, 0x5FA0, 0xD5D1, 0x840A, 0xD5D2, 0x51B7, 0xD5D3, 0x63A0, 0xD5D4, 0x7565, 0xD5D5, 0x4EAE, 0xD5D6, 0x5006, + 0xD5D7, 0x5169, 0xD5D8, 0x51C9, 0xD5D9, 0x6881, 0xD5DA, 0x6A11, 0xD5DB, 0x7CAE, 0xD5DC, 0x7CB1, 0xD5DD, 0x7CE7, 0xD5DE, 0x826F, + 0xD5DF, 0x8AD2, 0xD5E0, 0x8F1B, 0xD5E1, 0x91CF, 0xD5E2, 0x4FB6, 0xD5E3, 0x5137, 0xD5E4, 0x52F5, 0xD5E5, 0x5442, 0xD5E6, 0x5EEC, + 0xD5E7, 0x616E, 0xD5E8, 0x623E, 0xD5E9, 0x65C5, 0xD5EA, 0x6ADA, 0xD5EB, 0x6FFE, 0xD5EC, 0x792A, 0xD5ED, 0x85DC, 0xD5EE, 0x8823, + 0xD5EF, 0x95AD, 0xD5F0, 0x9A62, 0xD5F1, 0x9A6A, 0xD5F2, 0x9E97, 0xD5F3, 0x9ECE, 0xD5F4, 0x529B, 0xD5F5, 0x66C6, 0xD5F6, 0x6B77, + 0xD5F7, 0x701D, 0xD5F8, 0x792B, 0xD5F9, 0x8F62, 0xD5FA, 0x9742, 0xD5FB, 0x6190, 0xD5FC, 0x6200, 0xD5FD, 0x6523, 0xD5FE, 0x6F23, + 0xD6A1, 0x7149, 0xD6A2, 0x7489, 0xD6A3, 0x7DF4, 0xD6A4, 0x806F, 0xD6A5, 0x84EE, 0xD6A6, 0x8F26, 0xD6A7, 0x9023, 0xD6A8, 0x934A, + 0xD6A9, 0x51BD, 0xD6AA, 0x5217, 0xD6AB, 0x52A3, 0xD6AC, 0x6D0C, 0xD6AD, 0x70C8, 0xD6AE, 0x88C2, 0xD6AF, 0x5EC9, 0xD6B0, 0x6582, + 0xD6B1, 0x6BAE, 0xD6B2, 0x6FC2, 0xD6B3, 0x7C3E, 0xD6B4, 0x7375, 0xD6B5, 0x4EE4, 0xD6B6, 0x4F36, 0xD6B7, 0x56F9, 0xD6B8, 0xF95F, + 0xD6B9, 0x5CBA, 0xD6BA, 0x5DBA, 0xD6BB, 0x601C, 0xD6BC, 0x73B2, 0xD6BD, 0x7B2D, 0xD6BE, 0x7F9A, 0xD6BF, 0x7FCE, 0xD6C0, 0x8046, + 0xD6C1, 0x901E, 0xD6C2, 0x9234, 0xD6C3, 0x96F6, 0xD6C4, 0x9748, 0xD6C5, 0x9818, 0xD6C6, 0x9F61, 0xD6C7, 0x4F8B, 0xD6C8, 0x6FA7, + 0xD6C9, 0x79AE, 0xD6CA, 0x91B4, 0xD6CB, 0x96B7, 0xD6CC, 0x52DE, 0xD6CD, 0xF960, 0xD6CE, 0x6488, 0xD6CF, 0x64C4, 0xD6D0, 0x6AD3, + 0xD6D1, 0x6F5E, 0xD6D2, 0x7018, 0xD6D3, 0x7210, 0xD6D4, 0x76E7, 0xD6D5, 0x8001, 0xD6D6, 0x8606, 0xD6D7, 0x865C, 0xD6D8, 0x8DEF, + 0xD6D9, 0x8F05, 0xD6DA, 0x9732, 0xD6DB, 0x9B6F, 0xD6DC, 0x9DFA, 0xD6DD, 0x9E75, 0xD6DE, 0x788C, 0xD6DF, 0x797F, 0xD6E0, 0x7DA0, + 0xD6E1, 0x83C9, 0xD6E2, 0x9304, 0xD6E3, 0x9E7F, 0xD6E4, 0x9E93, 0xD6E5, 0x8AD6, 0xD6E6, 0x58DF, 0xD6E7, 0x5F04, 0xD6E8, 0x6727, + 0xD6E9, 0x7027, 0xD6EA, 0x74CF, 0xD6EB, 0x7C60, 0xD6EC, 0x807E, 0xD6ED, 0x5121, 0xD6EE, 0x7028, 0xD6EF, 0x7262, 0xD6F0, 0x78CA, + 0xD6F1, 0x8CC2, 0xD6F2, 0x8CDA, 0xD6F3, 0x8CF4, 0xD6F4, 0x96F7, 0xD6F5, 0x4E86, 0xD6F6, 0x50DA, 0xD6F7, 0x5BEE, 0xD6F8, 0x5ED6, + 0xD6F9, 0x6599, 0xD6FA, 0x71CE, 0xD6FB, 0x7642, 0xD6FC, 0x77AD, 0xD6FD, 0x804A, 0xD6FE, 0x84FC, 0xD7A1, 0x907C, 0xD7A2, 0x9B27, + 0xD7A3, 0x9F8D, 0xD7A4, 0x58D8, 0xD7A5, 0x5A41, 0xD7A6, 0x5C62, 0xD7A7, 0x6A13, 0xD7A8, 0x6DDA, 0xD7A9, 0x6F0F, 0xD7AA, 0x763B, + 0xD7AB, 0x7D2F, 0xD7AC, 0x7E37, 0xD7AD, 0x851E, 0xD7AE, 0x8938, 0xD7AF, 0x93E4, 0xD7B0, 0x964B, 0xD7B1, 0x5289, 0xD7B2, 0x65D2, + 0xD7B3, 0x67F3, 0xD7B4, 0x69B4, 0xD7B5, 0x6D41, 0xD7B6, 0x6E9C, 0xD7B7, 0x700F, 0xD7B8, 0x7409, 0xD7B9, 0x7460, 0xD7BA, 0x7559, + 0xD7BB, 0x7624, 0xD7BC, 0x786B, 0xD7BD, 0x8B2C, 0xD7BE, 0x985E, 0xD7BF, 0x516D, 0xD7C0, 0x622E, 0xD7C1, 0x9678, 0xD7C2, 0x4F96, + 0xD7C3, 0x502B, 0xD7C4, 0x5D19, 0xD7C5, 0x6DEA, 0xD7C6, 0x7DB8, 0xD7C7, 0x8F2A, 0xD7C8, 0x5F8B, 0xD7C9, 0x6144, 0xD7CA, 0x6817, + 0xD7CB, 0xF961, 0xD7CC, 0x9686, 0xD7CD, 0x52D2, 0xD7CE, 0x808B, 0xD7CF, 0x51DC, 0xD7D0, 0x51CC, 0xD7D1, 0x695E, 0xD7D2, 0x7A1C, + 0xD7D3, 0x7DBE, 0xD7D4, 0x83F1, 0xD7D5, 0x9675, 0xD7D6, 0x4FDA, 0xD7D7, 0x5229, 0xD7D8, 0x5398, 0xD7D9, 0x540F, 0xD7DA, 0x550E, + 0xD7DB, 0x5C65, 0xD7DC, 0x60A7, 0xD7DD, 0x674E, 0xD7DE, 0x68A8, 0xD7DF, 0x6D6C, 0xD7E0, 0x7281, 0xD7E1, 0x72F8, 0xD7E2, 0x7406, + 0xD7E3, 0x7483, 0xD7E4, 0xF962, 0xD7E5, 0x75E2, 0xD7E6, 0x7C6C, 0xD7E7, 0x7F79, 0xD7E8, 0x7FB8, 0xD7E9, 0x8389, 0xD7EA, 0x88CF, + 0xD7EB, 0x88E1, 0xD7EC, 0x91CC, 0xD7ED, 0x91D0, 0xD7EE, 0x96E2, 0xD7EF, 0x9BC9, 0xD7F0, 0x541D, 0xD7F1, 0x6F7E, 0xD7F2, 0x71D0, + 0xD7F3, 0x7498, 0xD7F4, 0x85FA, 0xD7F5, 0x8EAA, 0xD7F6, 0x96A3, 0xD7F7, 0x9C57, 0xD7F8, 0x9E9F, 0xD7F9, 0x6797, 0xD7FA, 0x6DCB, + 0xD7FB, 0x7433, 0xD7FC, 0x81E8, 0xD7FD, 0x9716, 0xD7FE, 0x782C, 0xD8A1, 0x7ACB, 0xD8A2, 0x7B20, 0xD8A3, 0x7C92, 0xD8A4, 0x6469, + 0xD8A5, 0x746A, 0xD8A6, 0x75F2, 0xD8A7, 0x78BC, 0xD8A8, 0x78E8, 0xD8A9, 0x99AC, 0xD8AA, 0x9B54, 0xD8AB, 0x9EBB, 0xD8AC, 0x5BDE, + 0xD8AD, 0x5E55, 0xD8AE, 0x6F20, 0xD8AF, 0x819C, 0xD8B0, 0x83AB, 0xD8B1, 0x9088, 0xD8B2, 0x4E07, 0xD8B3, 0x534D, 0xD8B4, 0x5A29, + 0xD8B5, 0x5DD2, 0xD8B6, 0x5F4E, 0xD8B7, 0x6162, 0xD8B8, 0x633D, 0xD8B9, 0x6669, 0xD8BA, 0x66FC, 0xD8BB, 0x6EFF, 0xD8BC, 0x6F2B, + 0xD8BD, 0x7063, 0xD8BE, 0x779E, 0xD8BF, 0x842C, 0xD8C0, 0x8513, 0xD8C1, 0x883B, 0xD8C2, 0x8F13, 0xD8C3, 0x9945, 0xD8C4, 0x9C3B, + 0xD8C5, 0x551C, 0xD8C6, 0x62B9, 0xD8C7, 0x672B, 0xD8C8, 0x6CAB, 0xD8C9, 0x8309, 0xD8CA, 0x896A, 0xD8CB, 0x977A, 0xD8CC, 0x4EA1, + 0xD8CD, 0x5984, 0xD8CE, 0x5FD8, 0xD8CF, 0x5FD9, 0xD8D0, 0x671B, 0xD8D1, 0x7DB2, 0xD8D2, 0x7F54, 0xD8D3, 0x8292, 0xD8D4, 0x832B, + 0xD8D5, 0x83BD, 0xD8D6, 0x8F1E, 0xD8D7, 0x9099, 0xD8D8, 0x57CB, 0xD8D9, 0x59B9, 0xD8DA, 0x5A92, 0xD8DB, 0x5BD0, 0xD8DC, 0x6627, + 0xD8DD, 0x679A, 0xD8DE, 0x6885, 0xD8DF, 0x6BCF, 0xD8E0, 0x7164, 0xD8E1, 0x7F75, 0xD8E2, 0x8CB7, 0xD8E3, 0x8CE3, 0xD8E4, 0x9081, + 0xD8E5, 0x9B45, 0xD8E6, 0x8108, 0xD8E7, 0x8C8A, 0xD8E8, 0x964C, 0xD8E9, 0x9A40, 0xD8EA, 0x9EA5, 0xD8EB, 0x5B5F, 0xD8EC, 0x6C13, + 0xD8ED, 0x731B, 0xD8EE, 0x76F2, 0xD8EF, 0x76DF, 0xD8F0, 0x840C, 0xD8F1, 0x51AA, 0xD8F2, 0x8993, 0xD8F3, 0x514D, 0xD8F4, 0x5195, + 0xD8F5, 0x52C9, 0xD8F6, 0x68C9, 0xD8F7, 0x6C94, 0xD8F8, 0x7704, 0xD8F9, 0x7720, 0xD8FA, 0x7DBF, 0xD8FB, 0x7DEC, 0xD8FC, 0x9762, + 0xD8FD, 0x9EB5, 0xD8FE, 0x6EC5, 0xD9A1, 0x8511, 0xD9A2, 0x51A5, 0xD9A3, 0x540D, 0xD9A4, 0x547D, 0xD9A5, 0x660E, 0xD9A6, 0x669D, + 0xD9A7, 0x6927, 0xD9A8, 0x6E9F, 0xD9A9, 0x76BF, 0xD9AA, 0x7791, 0xD9AB, 0x8317, 0xD9AC, 0x84C2, 0xD9AD, 0x879F, 0xD9AE, 0x9169, + 0xD9AF, 0x9298, 0xD9B0, 0x9CF4, 0xD9B1, 0x8882, 0xD9B2, 0x4FAE, 0xD9B3, 0x5192, 0xD9B4, 0x52DF, 0xD9B5, 0x59C6, 0xD9B6, 0x5E3D, + 0xD9B7, 0x6155, 0xD9B8, 0x6478, 0xD9B9, 0x6479, 0xD9BA, 0x66AE, 0xD9BB, 0x67D0, 0xD9BC, 0x6A21, 0xD9BD, 0x6BCD, 0xD9BE, 0x6BDB, + 0xD9BF, 0x725F, 0xD9C0, 0x7261, 0xD9C1, 0x7441, 0xD9C2, 0x7738, 0xD9C3, 0x77DB, 0xD9C4, 0x8017, 0xD9C5, 0x82BC, 0xD9C6, 0x8305, + 0xD9C7, 0x8B00, 0xD9C8, 0x8B28, 0xD9C9, 0x8C8C, 0xD9CA, 0x6728, 0xD9CB, 0x6C90, 0xD9CC, 0x7267, 0xD9CD, 0x76EE, 0xD9CE, 0x7766, + 0xD9CF, 0x7A46, 0xD9D0, 0x9DA9, 0xD9D1, 0x6B7F, 0xD9D2, 0x6C92, 0xD9D3, 0x5922, 0xD9D4, 0x6726, 0xD9D5, 0x8499, 0xD9D6, 0x536F, + 0xD9D7, 0x5893, 0xD9D8, 0x5999, 0xD9D9, 0x5EDF, 0xD9DA, 0x63CF, 0xD9DB, 0x6634, 0xD9DC, 0x6773, 0xD9DD, 0x6E3A, 0xD9DE, 0x732B, + 0xD9DF, 0x7AD7, 0xD9E0, 0x82D7, 0xD9E1, 0x9328, 0xD9E2, 0x52D9, 0xD9E3, 0x5DEB, 0xD9E4, 0x61AE, 0xD9E5, 0x61CB, 0xD9E6, 0x620A, + 0xD9E7, 0x62C7, 0xD9E8, 0x64AB, 0xD9E9, 0x65E0, 0xD9EA, 0x6959, 0xD9EB, 0x6B66, 0xD9EC, 0x6BCB, 0xD9ED, 0x7121, 0xD9EE, 0x73F7, + 0xD9EF, 0x755D, 0xD9F0, 0x7E46, 0xD9F1, 0x821E, 0xD9F2, 0x8302, 0xD9F3, 0x856A, 0xD9F4, 0x8AA3, 0xD9F5, 0x8CBF, 0xD9F6, 0x9727, + 0xD9F7, 0x9D61, 0xD9F8, 0x58A8, 0xD9F9, 0x9ED8, 0xD9FA, 0x5011, 0xD9FB, 0x520E, 0xD9FC, 0x543B, 0xD9FD, 0x554F, 0xD9FE, 0x6587, + 0xDAA1, 0x6C76, 0xDAA2, 0x7D0A, 0xDAA3, 0x7D0B, 0xDAA4, 0x805E, 0xDAA5, 0x868A, 0xDAA6, 0x9580, 0xDAA7, 0x96EF, 0xDAA8, 0x52FF, + 0xDAA9, 0x6C95, 0xDAAA, 0x7269, 0xDAAB, 0x5473, 0xDAAC, 0x5A9A, 0xDAAD, 0x5C3E, 0xDAAE, 0x5D4B, 0xDAAF, 0x5F4C, 0xDAB0, 0x5FAE, + 0xDAB1, 0x672A, 0xDAB2, 0x68B6, 0xDAB3, 0x6963, 0xDAB4, 0x6E3C, 0xDAB5, 0x6E44, 0xDAB6, 0x7709, 0xDAB7, 0x7C73, 0xDAB8, 0x7F8E, + 0xDAB9, 0x8587, 0xDABA, 0x8B0E, 0xDABB, 0x8FF7, 0xDABC, 0x9761, 0xDABD, 0x9EF4, 0xDABE, 0x5CB7, 0xDABF, 0x60B6, 0xDAC0, 0x610D, + 0xDAC1, 0x61AB, 0xDAC2, 0x654F, 0xDAC3, 0x65FB, 0xDAC4, 0x65FC, 0xDAC5, 0x6C11, 0xDAC6, 0x6CEF, 0xDAC7, 0x739F, 0xDAC8, 0x73C9, + 0xDAC9, 0x7DE1, 0xDACA, 0x9594, 0xDACB, 0x5BC6, 0xDACC, 0x871C, 0xDACD, 0x8B10, 0xDACE, 0x525D, 0xDACF, 0x535A, 0xDAD0, 0x62CD, + 0xDAD1, 0x640F, 0xDAD2, 0x64B2, 0xDAD3, 0x6734, 0xDAD4, 0x6A38, 0xDAD5, 0x6CCA, 0xDAD6, 0x73C0, 0xDAD7, 0x749E, 0xDAD8, 0x7B94, + 0xDAD9, 0x7C95, 0xDADA, 0x7E1B, 0xDADB, 0x818A, 0xDADC, 0x8236, 0xDADD, 0x8584, 0xDADE, 0x8FEB, 0xDADF, 0x96F9, 0xDAE0, 0x99C1, + 0xDAE1, 0x4F34, 0xDAE2, 0x534A, 0xDAE3, 0x53CD, 0xDAE4, 0x53DB, 0xDAE5, 0x62CC, 0xDAE6, 0x642C, 0xDAE7, 0x6500, 0xDAE8, 0x6591, + 0xDAE9, 0x69C3, 0xDAEA, 0x6CEE, 0xDAEB, 0x6F58, 0xDAEC, 0x73ED, 0xDAED, 0x7554, 0xDAEE, 0x7622, 0xDAEF, 0x76E4, 0xDAF0, 0x76FC, + 0xDAF1, 0x78D0, 0xDAF2, 0x78FB, 0xDAF3, 0x792C, 0xDAF4, 0x7D46, 0xDAF5, 0x822C, 0xDAF6, 0x87E0, 0xDAF7, 0x8FD4, 0xDAF8, 0x9812, + 0xDAF9, 0x98EF, 0xDAFA, 0x52C3, 0xDAFB, 0x62D4, 0xDAFC, 0x64A5, 0xDAFD, 0x6E24, 0xDAFE, 0x6F51, 0xDBA1, 0x767C, 0xDBA2, 0x8DCB, + 0xDBA3, 0x91B1, 0xDBA4, 0x9262, 0xDBA5, 0x9AEE, 0xDBA6, 0x9B43, 0xDBA7, 0x5023, 0xDBA8, 0x508D, 0xDBA9, 0x574A, 0xDBAA, 0x59A8, + 0xDBAB, 0x5C28, 0xDBAC, 0x5E47, 0xDBAD, 0x5F77, 0xDBAE, 0x623F, 0xDBAF, 0x653E, 0xDBB0, 0x65B9, 0xDBB1, 0x65C1, 0xDBB2, 0x6609, + 0xDBB3, 0x678B, 0xDBB4, 0x699C, 0xDBB5, 0x6EC2, 0xDBB6, 0x78C5, 0xDBB7, 0x7D21, 0xDBB8, 0x80AA, 0xDBB9, 0x8180, 0xDBBA, 0x822B, + 0xDBBB, 0x82B3, 0xDBBC, 0x84A1, 0xDBBD, 0x868C, 0xDBBE, 0x8A2A, 0xDBBF, 0x8B17, 0xDBC0, 0x90A6, 0xDBC1, 0x9632, 0xDBC2, 0x9F90, + 0xDBC3, 0x500D, 0xDBC4, 0x4FF3, 0xDBC5, 0xF963, 0xDBC6, 0x57F9, 0xDBC7, 0x5F98, 0xDBC8, 0x62DC, 0xDBC9, 0x6392, 0xDBCA, 0x676F, + 0xDBCB, 0x6E43, 0xDBCC, 0x7119, 0xDBCD, 0x76C3, 0xDBCE, 0x80CC, 0xDBCF, 0x80DA, 0xDBD0, 0x88F4, 0xDBD1, 0x88F5, 0xDBD2, 0x8919, + 0xDBD3, 0x8CE0, 0xDBD4, 0x8F29, 0xDBD5, 0x914D, 0xDBD6, 0x966A, 0xDBD7, 0x4F2F, 0xDBD8, 0x4F70, 0xDBD9, 0x5E1B, 0xDBDA, 0x67CF, + 0xDBDB, 0x6822, 0xDBDC, 0x767D, 0xDBDD, 0x767E, 0xDBDE, 0x9B44, 0xDBDF, 0x5E61, 0xDBE0, 0x6A0A, 0xDBE1, 0x7169, 0xDBE2, 0x71D4, + 0xDBE3, 0x756A, 0xDBE4, 0xF964, 0xDBE5, 0x7E41, 0xDBE6, 0x8543, 0xDBE7, 0x85E9, 0xDBE8, 0x98DC, 0xDBE9, 0x4F10, 0xDBEA, 0x7B4F, + 0xDBEB, 0x7F70, 0xDBEC, 0x95A5, 0xDBED, 0x51E1, 0xDBEE, 0x5E06, 0xDBEF, 0x68B5, 0xDBF0, 0x6C3E, 0xDBF1, 0x6C4E, 0xDBF2, 0x6CDB, + 0xDBF3, 0x72AF, 0xDBF4, 0x7BC4, 0xDBF5, 0x8303, 0xDBF6, 0x6CD5, 0xDBF7, 0x743A, 0xDBF8, 0x50FB, 0xDBF9, 0x5288, 0xDBFA, 0x58C1, + 0xDBFB, 0x64D8, 0xDBFC, 0x6A97, 0xDBFD, 0x74A7, 0xDBFE, 0x7656, 0xDCA1, 0x78A7, 0xDCA2, 0x8617, 0xDCA3, 0x95E2, 0xDCA4, 0x9739, + 0xDCA5, 0xF965, 0xDCA6, 0x535E, 0xDCA7, 0x5F01, 0xDCA8, 0x8B8A, 0xDCA9, 0x8FA8, 0xDCAA, 0x8FAF, 0xDCAB, 0x908A, 0xDCAC, 0x5225, + 0xDCAD, 0x77A5, 0xDCAE, 0x9C49, 0xDCAF, 0x9F08, 0xDCB0, 0x4E19, 0xDCB1, 0x5002, 0xDCB2, 0x5175, 0xDCB3, 0x5C5B, 0xDCB4, 0x5E77, + 0xDCB5, 0x661E, 0xDCB6, 0x663A, 0xDCB7, 0x67C4, 0xDCB8, 0x68C5, 0xDCB9, 0x70B3, 0xDCBA, 0x7501, 0xDCBB, 0x75C5, 0xDCBC, 0x79C9, + 0xDCBD, 0x7ADD, 0xDCBE, 0x8F27, 0xDCBF, 0x9920, 0xDCC0, 0x9A08, 0xDCC1, 0x4FDD, 0xDCC2, 0x5821, 0xDCC3, 0x5831, 0xDCC4, 0x5BF6, + 0xDCC5, 0x666E, 0xDCC6, 0x6B65, 0xDCC7, 0x6D11, 0xDCC8, 0x6E7A, 0xDCC9, 0x6F7D, 0xDCCA, 0x73E4, 0xDCCB, 0x752B, 0xDCCC, 0x83E9, + 0xDCCD, 0x88DC, 0xDCCE, 0x8913, 0xDCCF, 0x8B5C, 0xDCD0, 0x8F14, 0xDCD1, 0x4F0F, 0xDCD2, 0x50D5, 0xDCD3, 0x5310, 0xDCD4, 0x535C, + 0xDCD5, 0x5B93, 0xDCD6, 0x5FA9, 0xDCD7, 0x670D, 0xDCD8, 0x798F, 0xDCD9, 0x8179, 0xDCDA, 0x832F, 0xDCDB, 0x8514, 0xDCDC, 0x8907, + 0xDCDD, 0x8986, 0xDCDE, 0x8F39, 0xDCDF, 0x8F3B, 0xDCE0, 0x99A5, 0xDCE1, 0x9C12, 0xDCE2, 0x672C, 0xDCE3, 0x4E76, 0xDCE4, 0x4FF8, + 0xDCE5, 0x5949, 0xDCE6, 0x5C01, 0xDCE7, 0x5CEF, 0xDCE8, 0x5CF0, 0xDCE9, 0x6367, 0xDCEA, 0x68D2, 0xDCEB, 0x70FD, 0xDCEC, 0x71A2, + 0xDCED, 0x742B, 0xDCEE, 0x7E2B, 0xDCEF, 0x84EC, 0xDCF0, 0x8702, 0xDCF1, 0x9022, 0xDCF2, 0x92D2, 0xDCF3, 0x9CF3, 0xDCF4, 0x4E0D, + 0xDCF5, 0x4ED8, 0xDCF6, 0x4FEF, 0xDCF7, 0x5085, 0xDCF8, 0x5256, 0xDCF9, 0x526F, 0xDCFA, 0x5426, 0xDCFB, 0x5490, 0xDCFC, 0x57E0, + 0xDCFD, 0x592B, 0xDCFE, 0x5A66, 0xDDA1, 0x5B5A, 0xDDA2, 0x5B75, 0xDDA3, 0x5BCC, 0xDDA4, 0x5E9C, 0xDDA5, 0xF966, 0xDDA6, 0x6276, + 0xDDA7, 0x6577, 0xDDA8, 0x65A7, 0xDDA9, 0x6D6E, 0xDDAA, 0x6EA5, 0xDDAB, 0x7236, 0xDDAC, 0x7B26, 0xDDAD, 0x7C3F, 0xDDAE, 0x7F36, + 0xDDAF, 0x8150, 0xDDB0, 0x8151, 0xDDB1, 0x819A, 0xDDB2, 0x8240, 0xDDB3, 0x8299, 0xDDB4, 0x83A9, 0xDDB5, 0x8A03, 0xDDB6, 0x8CA0, + 0xDDB7, 0x8CE6, 0xDDB8, 0x8CFB, 0xDDB9, 0x8D74, 0xDDBA, 0x8DBA, 0xDDBB, 0x90E8, 0xDDBC, 0x91DC, 0xDDBD, 0x961C, 0xDDBE, 0x9644, + 0xDDBF, 0x99D9, 0xDDC0, 0x9CE7, 0xDDC1, 0x5317, 0xDDC2, 0x5206, 0xDDC3, 0x5429, 0xDDC4, 0x5674, 0xDDC5, 0x58B3, 0xDDC6, 0x5954, + 0xDDC7, 0x596E, 0xDDC8, 0x5FFF, 0xDDC9, 0x61A4, 0xDDCA, 0x626E, 0xDDCB, 0x6610, 0xDDCC, 0x6C7E, 0xDDCD, 0x711A, 0xDDCE, 0x76C6, + 0xDDCF, 0x7C89, 0xDDD0, 0x7CDE, 0xDDD1, 0x7D1B, 0xDDD2, 0x82AC, 0xDDD3, 0x8CC1, 0xDDD4, 0x96F0, 0xDDD5, 0xF967, 0xDDD6, 0x4F5B, + 0xDDD7, 0x5F17, 0xDDD8, 0x5F7F, 0xDDD9, 0x62C2, 0xDDDA, 0x5D29, 0xDDDB, 0x670B, 0xDDDC, 0x68DA, 0xDDDD, 0x787C, 0xDDDE, 0x7E43, + 0xDDDF, 0x9D6C, 0xDDE0, 0x4E15, 0xDDE1, 0x5099, 0xDDE2, 0x5315, 0xDDE3, 0x532A, 0xDDE4, 0x5351, 0xDDE5, 0x5983, 0xDDE6, 0x5A62, + 0xDDE7, 0x5E87, 0xDDE8, 0x60B2, 0xDDE9, 0x618A, 0xDDEA, 0x6249, 0xDDEB, 0x6279, 0xDDEC, 0x6590, 0xDDED, 0x6787, 0xDDEE, 0x69A7, + 0xDDEF, 0x6BD4, 0xDDF0, 0x6BD6, 0xDDF1, 0x6BD7, 0xDDF2, 0x6BD8, 0xDDF3, 0x6CB8, 0xDDF4, 0xF968, 0xDDF5, 0x7435, 0xDDF6, 0x75FA, + 0xDDF7, 0x7812, 0xDDF8, 0x7891, 0xDDF9, 0x79D5, 0xDDFA, 0x79D8, 0xDDFB, 0x7C83, 0xDDFC, 0x7DCB, 0xDDFD, 0x7FE1, 0xDDFE, 0x80A5, + 0xDEA1, 0x813E, 0xDEA2, 0x81C2, 0xDEA3, 0x83F2, 0xDEA4, 0x871A, 0xDEA5, 0x88E8, 0xDEA6, 0x8AB9, 0xDEA7, 0x8B6C, 0xDEA8, 0x8CBB, + 0xDEA9, 0x9119, 0xDEAA, 0x975E, 0xDEAB, 0x98DB, 0xDEAC, 0x9F3B, 0xDEAD, 0x56AC, 0xDEAE, 0x5B2A, 0xDEAF, 0x5F6C, 0xDEB0, 0x658C, + 0xDEB1, 0x6AB3, 0xDEB2, 0x6BAF, 0xDEB3, 0x6D5C, 0xDEB4, 0x6FF1, 0xDEB5, 0x7015, 0xDEB6, 0x725D, 0xDEB7, 0x73AD, 0xDEB8, 0x8CA7, + 0xDEB9, 0x8CD3, 0xDEBA, 0x983B, 0xDEBB, 0x6191, 0xDEBC, 0x6C37, 0xDEBD, 0x8058, 0xDEBE, 0x9A01, 0xDEBF, 0x4E4D, 0xDEC0, 0x4E8B, + 0xDEC1, 0x4E9B, 0xDEC2, 0x4ED5, 0xDEC3, 0x4F3A, 0xDEC4, 0x4F3C, 0xDEC5, 0x4F7F, 0xDEC6, 0x4FDF, 0xDEC7, 0x50FF, 0xDEC8, 0x53F2, + 0xDEC9, 0x53F8, 0xDECA, 0x5506, 0xDECB, 0x55E3, 0xDECC, 0x56DB, 0xDECD, 0x58EB, 0xDECE, 0x5962, 0xDECF, 0x5A11, 0xDED0, 0x5BEB, + 0xDED1, 0x5BFA, 0xDED2, 0x5C04, 0xDED3, 0x5DF3, 0xDED4, 0x5E2B, 0xDED5, 0x5F99, 0xDED6, 0x601D, 0xDED7, 0x6368, 0xDED8, 0x659C, + 0xDED9, 0x65AF, 0xDEDA, 0x67F6, 0xDEDB, 0x67FB, 0xDEDC, 0x68AD, 0xDEDD, 0x6B7B, 0xDEDE, 0x6C99, 0xDEDF, 0x6CD7, 0xDEE0, 0x6E23, + 0xDEE1, 0x7009, 0xDEE2, 0x7345, 0xDEE3, 0x7802, 0xDEE4, 0x793E, 0xDEE5, 0x7940, 0xDEE6, 0x7960, 0xDEE7, 0x79C1, 0xDEE8, 0x7BE9, + 0xDEE9, 0x7D17, 0xDEEA, 0x7D72, 0xDEEB, 0x8086, 0xDEEC, 0x820D, 0xDEED, 0x838E, 0xDEEE, 0x84D1, 0xDEEF, 0x86C7, 0xDEF0, 0x88DF, + 0xDEF1, 0x8A50, 0xDEF2, 0x8A5E, 0xDEF3, 0x8B1D, 0xDEF4, 0x8CDC, 0xDEF5, 0x8D66, 0xDEF6, 0x8FAD, 0xDEF7, 0x90AA, 0xDEF8, 0x98FC, + 0xDEF9, 0x99DF, 0xDEFA, 0x9E9D, 0xDEFB, 0x524A, 0xDEFC, 0xF969, 0xDEFD, 0x6714, 0xDEFE, 0xF96A, 0xDFA1, 0x5098, 0xDFA2, 0x522A, + 0xDFA3, 0x5C71, 0xDFA4, 0x6563, 0xDFA5, 0x6C55, 0xDFA6, 0x73CA, 0xDFA7, 0x7523, 0xDFA8, 0x759D, 0xDFA9, 0x7B97, 0xDFAA, 0x849C, + 0xDFAB, 0x9178, 0xDFAC, 0x9730, 0xDFAD, 0x4E77, 0xDFAE, 0x6492, 0xDFAF, 0x6BBA, 0xDFB0, 0x715E, 0xDFB1, 0x85A9, 0xDFB2, 0x4E09, + 0xDFB3, 0xF96B, 0xDFB4, 0x6749, 0xDFB5, 0x68EE, 0xDFB6, 0x6E17, 0xDFB7, 0x829F, 0xDFB8, 0x8518, 0xDFB9, 0x886B, 0xDFBA, 0x63F7, + 0xDFBB, 0x6F81, 0xDFBC, 0x9212, 0xDFBD, 0x98AF, 0xDFBE, 0x4E0A, 0xDFBF, 0x50B7, 0xDFC0, 0x50CF, 0xDFC1, 0x511F, 0xDFC2, 0x5546, + 0xDFC3, 0x55AA, 0xDFC4, 0x5617, 0xDFC5, 0x5B40, 0xDFC6, 0x5C19, 0xDFC7, 0x5CE0, 0xDFC8, 0x5E38, 0xDFC9, 0x5E8A, 0xDFCA, 0x5EA0, + 0xDFCB, 0x5EC2, 0xDFCC, 0x60F3, 0xDFCD, 0x6851, 0xDFCE, 0x6A61, 0xDFCF, 0x6E58, 0xDFD0, 0x723D, 0xDFD1, 0x7240, 0xDFD2, 0x72C0, + 0xDFD3, 0x76F8, 0xDFD4, 0x7965, 0xDFD5, 0x7BB1, 0xDFD6, 0x7FD4, 0xDFD7, 0x88F3, 0xDFD8, 0x89F4, 0xDFD9, 0x8A73, 0xDFDA, 0x8C61, + 0xDFDB, 0x8CDE, 0xDFDC, 0x971C, 0xDFDD, 0x585E, 0xDFDE, 0x74BD, 0xDFDF, 0x8CFD, 0xDFE0, 0x55C7, 0xDFE1, 0xF96C, 0xDFE2, 0x7A61, + 0xDFE3, 0x7D22, 0xDFE4, 0x8272, 0xDFE5, 0x7272, 0xDFE6, 0x751F, 0xDFE7, 0x7525, 0xDFE8, 0xF96D, 0xDFE9, 0x7B19, 0xDFEA, 0x5885, + 0xDFEB, 0x58FB, 0xDFEC, 0x5DBC, 0xDFED, 0x5E8F, 0xDFEE, 0x5EB6, 0xDFEF, 0x5F90, 0xDFF0, 0x6055, 0xDFF1, 0x6292, 0xDFF2, 0x637F, + 0xDFF3, 0x654D, 0xDFF4, 0x6691, 0xDFF5, 0x66D9, 0xDFF6, 0x66F8, 0xDFF7, 0x6816, 0xDFF8, 0x68F2, 0xDFF9, 0x7280, 0xDFFA, 0x745E, + 0xDFFB, 0x7B6E, 0xDFFC, 0x7D6E, 0xDFFD, 0x7DD6, 0xDFFE, 0x7F72, 0xE0A1, 0x80E5, 0xE0A2, 0x8212, 0xE0A3, 0x85AF, 0xE0A4, 0x897F, + 0xE0A5, 0x8A93, 0xE0A6, 0x901D, 0xE0A7, 0x92E4, 0xE0A8, 0x9ECD, 0xE0A9, 0x9F20, 0xE0AA, 0x5915, 0xE0AB, 0x596D, 0xE0AC, 0x5E2D, + 0xE0AD, 0x60DC, 0xE0AE, 0x6614, 0xE0AF, 0x6673, 0xE0B0, 0x6790, 0xE0B1, 0x6C50, 0xE0B2, 0x6DC5, 0xE0B3, 0x6F5F, 0xE0B4, 0x77F3, + 0xE0B5, 0x78A9, 0xE0B6, 0x84C6, 0xE0B7, 0x91CB, 0xE0B8, 0x932B, 0xE0B9, 0x4ED9, 0xE0BA, 0x50CA, 0xE0BB, 0x5148, 0xE0BC, 0x5584, + 0xE0BD, 0x5B0B, 0xE0BE, 0x5BA3, 0xE0BF, 0x6247, 0xE0C0, 0x657E, 0xE0C1, 0x65CB, 0xE0C2, 0x6E32, 0xE0C3, 0x717D, 0xE0C4, 0x7401, + 0xE0C5, 0x7444, 0xE0C6, 0x7487, 0xE0C7, 0x74BF, 0xE0C8, 0x766C, 0xE0C9, 0x79AA, 0xE0CA, 0x7DDA, 0xE0CB, 0x7E55, 0xE0CC, 0x7FA8, + 0xE0CD, 0x817A, 0xE0CE, 0x81B3, 0xE0CF, 0x8239, 0xE0D0, 0x861A, 0xE0D1, 0x87EC, 0xE0D2, 0x8A75, 0xE0D3, 0x8DE3, 0xE0D4, 0x9078, + 0xE0D5, 0x9291, 0xE0D6, 0x9425, 0xE0D7, 0x994D, 0xE0D8, 0x9BAE, 0xE0D9, 0x5368, 0xE0DA, 0x5C51, 0xE0DB, 0x6954, 0xE0DC, 0x6CC4, + 0xE0DD, 0x6D29, 0xE0DE, 0x6E2B, 0xE0DF, 0x820C, 0xE0E0, 0x859B, 0xE0E1, 0x893B, 0xE0E2, 0x8A2D, 0xE0E3, 0x8AAA, 0xE0E4, 0x96EA, + 0xE0E5, 0x9F67, 0xE0E6, 0x5261, 0xE0E7, 0x66B9, 0xE0E8, 0x6BB2, 0xE0E9, 0x7E96, 0xE0EA, 0x87FE, 0xE0EB, 0x8D0D, 0xE0EC, 0x9583, + 0xE0ED, 0x965D, 0xE0EE, 0x651D, 0xE0EF, 0x6D89, 0xE0F0, 0x71EE, 0xE0F1, 0xF96E, 0xE0F2, 0x57CE, 0xE0F3, 0x59D3, 0xE0F4, 0x5BAC, + 0xE0F5, 0x6027, 0xE0F6, 0x60FA, 0xE0F7, 0x6210, 0xE0F8, 0x661F, 0xE0F9, 0x665F, 0xE0FA, 0x7329, 0xE0FB, 0x73F9, 0xE0FC, 0x76DB, + 0xE0FD, 0x7701, 0xE0FE, 0x7B6C, 0xE1A1, 0x8056, 0xE1A2, 0x8072, 0xE1A3, 0x8165, 0xE1A4, 0x8AA0, 0xE1A5, 0x9192, 0xE1A6, 0x4E16, + 0xE1A7, 0x52E2, 0xE1A8, 0x6B72, 0xE1A9, 0x6D17, 0xE1AA, 0x7A05, 0xE1AB, 0x7B39, 0xE1AC, 0x7D30, 0xE1AD, 0xF96F, 0xE1AE, 0x8CB0, + 0xE1AF, 0x53EC, 0xE1B0, 0x562F, 0xE1B1, 0x5851, 0xE1B2, 0x5BB5, 0xE1B3, 0x5C0F, 0xE1B4, 0x5C11, 0xE1B5, 0x5DE2, 0xE1B6, 0x6240, + 0xE1B7, 0x6383, 0xE1B8, 0x6414, 0xE1B9, 0x662D, 0xE1BA, 0x68B3, 0xE1BB, 0x6CBC, 0xE1BC, 0x6D88, 0xE1BD, 0x6EAF, 0xE1BE, 0x701F, + 0xE1BF, 0x70A4, 0xE1C0, 0x71D2, 0xE1C1, 0x7526, 0xE1C2, 0x758F, 0xE1C3, 0x758E, 0xE1C4, 0x7619, 0xE1C5, 0x7B11, 0xE1C6, 0x7BE0, + 0xE1C7, 0x7C2B, 0xE1C8, 0x7D20, 0xE1C9, 0x7D39, 0xE1CA, 0x852C, 0xE1CB, 0x856D, 0xE1CC, 0x8607, 0xE1CD, 0x8A34, 0xE1CE, 0x900D, + 0xE1CF, 0x9061, 0xE1D0, 0x90B5, 0xE1D1, 0x92B7, 0xE1D2, 0x97F6, 0xE1D3, 0x9A37, 0xE1D4, 0x4FD7, 0xE1D5, 0x5C6C, 0xE1D6, 0x675F, + 0xE1D7, 0x6D91, 0xE1D8, 0x7C9F, 0xE1D9, 0x7E8C, 0xE1DA, 0x8B16, 0xE1DB, 0x8D16, 0xE1DC, 0x901F, 0xE1DD, 0x5B6B, 0xE1DE, 0x5DFD, + 0xE1DF, 0x640D, 0xE1E0, 0x84C0, 0xE1E1, 0x905C, 0xE1E2, 0x98E1, 0xE1E3, 0x7387, 0xE1E4, 0x5B8B, 0xE1E5, 0x609A, 0xE1E6, 0x677E, + 0xE1E7, 0x6DDE, 0xE1E8, 0x8A1F, 0xE1E9, 0x8AA6, 0xE1EA, 0x9001, 0xE1EB, 0x980C, 0xE1EC, 0x5237, 0xE1ED, 0xF970, 0xE1EE, 0x7051, + 0xE1EF, 0x788E, 0xE1F0, 0x9396, 0xE1F1, 0x8870, 0xE1F2, 0x91D7, 0xE1F3, 0x4FEE, 0xE1F4, 0x53D7, 0xE1F5, 0x55FD, 0xE1F6, 0x56DA, + 0xE1F7, 0x5782, 0xE1F8, 0x58FD, 0xE1F9, 0x5AC2, 0xE1FA, 0x5B88, 0xE1FB, 0x5CAB, 0xE1FC, 0x5CC0, 0xE1FD, 0x5E25, 0xE1FE, 0x6101, + 0xE2A1, 0x620D, 0xE2A2, 0x624B, 0xE2A3, 0x6388, 0xE2A4, 0x641C, 0xE2A5, 0x6536, 0xE2A6, 0x6578, 0xE2A7, 0x6A39, 0xE2A8, 0x6B8A, + 0xE2A9, 0x6C34, 0xE2AA, 0x6D19, 0xE2AB, 0x6F31, 0xE2AC, 0x71E7, 0xE2AD, 0x72E9, 0xE2AE, 0x7378, 0xE2AF, 0x7407, 0xE2B0, 0x74B2, + 0xE2B1, 0x7626, 0xE2B2, 0x7761, 0xE2B3, 0x79C0, 0xE2B4, 0x7A57, 0xE2B5, 0x7AEA, 0xE2B6, 0x7CB9, 0xE2B7, 0x7D8F, 0xE2B8, 0x7DAC, + 0xE2B9, 0x7E61, 0xE2BA, 0x7F9E, 0xE2BB, 0x8129, 0xE2BC, 0x8331, 0xE2BD, 0x8490, 0xE2BE, 0x84DA, 0xE2BF, 0x85EA, 0xE2C0, 0x8896, + 0xE2C1, 0x8AB0, 0xE2C2, 0x8B90, 0xE2C3, 0x8F38, 0xE2C4, 0x9042, 0xE2C5, 0x9083, 0xE2C6, 0x916C, 0xE2C7, 0x9296, 0xE2C8, 0x92B9, + 0xE2C9, 0x968B, 0xE2CA, 0x96A7, 0xE2CB, 0x96A8, 0xE2CC, 0x96D6, 0xE2CD, 0x9700, 0xE2CE, 0x9808, 0xE2CF, 0x9996, 0xE2D0, 0x9AD3, + 0xE2D1, 0x9B1A, 0xE2D2, 0x53D4, 0xE2D3, 0x587E, 0xE2D4, 0x5919, 0xE2D5, 0x5B70, 0xE2D6, 0x5BBF, 0xE2D7, 0x6DD1, 0xE2D8, 0x6F5A, + 0xE2D9, 0x719F, 0xE2DA, 0x7421, 0xE2DB, 0x74B9, 0xE2DC, 0x8085, 0xE2DD, 0x83FD, 0xE2DE, 0x5DE1, 0xE2DF, 0x5F87, 0xE2E0, 0x5FAA, + 0xE2E1, 0x6042, 0xE2E2, 0x65EC, 0xE2E3, 0x6812, 0xE2E4, 0x696F, 0xE2E5, 0x6A53, 0xE2E6, 0x6B89, 0xE2E7, 0x6D35, 0xE2E8, 0x6DF3, + 0xE2E9, 0x73E3, 0xE2EA, 0x76FE, 0xE2EB, 0x77AC, 0xE2EC, 0x7B4D, 0xE2ED, 0x7D14, 0xE2EE, 0x8123, 0xE2EF, 0x821C, 0xE2F0, 0x8340, + 0xE2F1, 0x84F4, 0xE2F2, 0x8563, 0xE2F3, 0x8A62, 0xE2F4, 0x8AC4, 0xE2F5, 0x9187, 0xE2F6, 0x931E, 0xE2F7, 0x9806, 0xE2F8, 0x99B4, + 0xE2F9, 0x620C, 0xE2FA, 0x8853, 0xE2FB, 0x8FF0, 0xE2FC, 0x9265, 0xE2FD, 0x5D07, 0xE2FE, 0x5D27, 0xE3A1, 0x5D69, 0xE3A2, 0x745F, + 0xE3A3, 0x819D, 0xE3A4, 0x8768, 0xE3A5, 0x6FD5, 0xE3A6, 0x62FE, 0xE3A7, 0x7FD2, 0xE3A8, 0x8936, 0xE3A9, 0x8972, 0xE3AA, 0x4E1E, + 0xE3AB, 0x4E58, 0xE3AC, 0x50E7, 0xE3AD, 0x52DD, 0xE3AE, 0x5347, 0xE3AF, 0x627F, 0xE3B0, 0x6607, 0xE3B1, 0x7E69, 0xE3B2, 0x8805, + 0xE3B3, 0x965E, 0xE3B4, 0x4F8D, 0xE3B5, 0x5319, 0xE3B6, 0x5636, 0xE3B7, 0x59CB, 0xE3B8, 0x5AA4, 0xE3B9, 0x5C38, 0xE3BA, 0x5C4E, + 0xE3BB, 0x5C4D, 0xE3BC, 0x5E02, 0xE3BD, 0x5F11, 0xE3BE, 0x6043, 0xE3BF, 0x65BD, 0xE3C0, 0x662F, 0xE3C1, 0x6642, 0xE3C2, 0x67BE, + 0xE3C3, 0x67F4, 0xE3C4, 0x731C, 0xE3C5, 0x77E2, 0xE3C6, 0x793A, 0xE3C7, 0x7FC5, 0xE3C8, 0x8494, 0xE3C9, 0x84CD, 0xE3CA, 0x8996, + 0xE3CB, 0x8A66, 0xE3CC, 0x8A69, 0xE3CD, 0x8AE1, 0xE3CE, 0x8C55, 0xE3CF, 0x8C7A, 0xE3D0, 0x57F4, 0xE3D1, 0x5BD4, 0xE3D2, 0x5F0F, + 0xE3D3, 0x606F, 0xE3D4, 0x62ED, 0xE3D5, 0x690D, 0xE3D6, 0x6B96, 0xE3D7, 0x6E5C, 0xE3D8, 0x7184, 0xE3D9, 0x7BD2, 0xE3DA, 0x8755, + 0xE3DB, 0x8B58, 0xE3DC, 0x8EFE, 0xE3DD, 0x98DF, 0xE3DE, 0x98FE, 0xE3DF, 0x4F38, 0xE3E0, 0x4F81, 0xE3E1, 0x4FE1, 0xE3E2, 0x547B, + 0xE3E3, 0x5A20, 0xE3E4, 0x5BB8, 0xE3E5, 0x613C, 0xE3E6, 0x65B0, 0xE3E7, 0x6668, 0xE3E8, 0x71FC, 0xE3E9, 0x7533, 0xE3EA, 0x795E, + 0xE3EB, 0x7D33, 0xE3EC, 0x814E, 0xE3ED, 0x81E3, 0xE3EE, 0x8398, 0xE3EF, 0x85AA, 0xE3F0, 0x85CE, 0xE3F1, 0x8703, 0xE3F2, 0x8A0A, + 0xE3F3, 0x8EAB, 0xE3F4, 0x8F9B, 0xE3F5, 0xF971, 0xE3F6, 0x8FC5, 0xE3F7, 0x5931, 0xE3F8, 0x5BA4, 0xE3F9, 0x5BE6, 0xE3FA, 0x6089, + 0xE3FB, 0x5BE9, 0xE3FC, 0x5C0B, 0xE3FD, 0x5FC3, 0xE3FE, 0x6C81, 0xE4A1, 0xF972, 0xE4A2, 0x6DF1, 0xE4A3, 0x700B, 0xE4A4, 0x751A, + 0xE4A5, 0x82AF, 0xE4A6, 0x8AF6, 0xE4A7, 0x4EC0, 0xE4A8, 0x5341, 0xE4A9, 0xF973, 0xE4AA, 0x96D9, 0xE4AB, 0x6C0F, 0xE4AC, 0x4E9E, + 0xE4AD, 0x4FC4, 0xE4AE, 0x5152, 0xE4AF, 0x555E, 0xE4B0, 0x5A25, 0xE4B1, 0x5CE8, 0xE4B2, 0x6211, 0xE4B3, 0x7259, 0xE4B4, 0x82BD, + 0xE4B5, 0x83AA, 0xE4B6, 0x86FE, 0xE4B7, 0x8859, 0xE4B8, 0x8A1D, 0xE4B9, 0x963F, 0xE4BA, 0x96C5, 0xE4BB, 0x9913, 0xE4BC, 0x9D09, + 0xE4BD, 0x9D5D, 0xE4BE, 0x580A, 0xE4BF, 0x5CB3, 0xE4C0, 0x5DBD, 0xE4C1, 0x5E44, 0xE4C2, 0x60E1, 0xE4C3, 0x6115, 0xE4C4, 0x63E1, + 0xE4C5, 0x6A02, 0xE4C6, 0x6E25, 0xE4C7, 0x9102, 0xE4C8, 0x9354, 0xE4C9, 0x984E, 0xE4CA, 0x9C10, 0xE4CB, 0x9F77, 0xE4CC, 0x5B89, + 0xE4CD, 0x5CB8, 0xE4CE, 0x6309, 0xE4CF, 0x664F, 0xE4D0, 0x6848, 0xE4D1, 0x773C, 0xE4D2, 0x96C1, 0xE4D3, 0x978D, 0xE4D4, 0x9854, + 0xE4D5, 0x9B9F, 0xE4D6, 0x65A1, 0xE4D7, 0x8B01, 0xE4D8, 0x8ECB, 0xE4D9, 0x95BC, 0xE4DA, 0x5535, 0xE4DB, 0x5CA9, 0xE4DC, 0x5DD6, + 0xE4DD, 0x5EB5, 0xE4DE, 0x6697, 0xE4DF, 0x764C, 0xE4E0, 0x83F4, 0xE4E1, 0x95C7, 0xE4E2, 0x58D3, 0xE4E3, 0x62BC, 0xE4E4, 0x72CE, + 0xE4E5, 0x9D28, 0xE4E6, 0x4EF0, 0xE4E7, 0x592E, 0xE4E8, 0x600F, 0xE4E9, 0x663B, 0xE4EA, 0x6B83, 0xE4EB, 0x79E7, 0xE4EC, 0x9D26, + 0xE4ED, 0x5393, 0xE4EE, 0x54C0, 0xE4EF, 0x57C3, 0xE4F0, 0x5D16, 0xE4F1, 0x611B, 0xE4F2, 0x66D6, 0xE4F3, 0x6DAF, 0xE4F4, 0x788D, + 0xE4F5, 0x827E, 0xE4F6, 0x9698, 0xE4F7, 0x9744, 0xE4F8, 0x5384, 0xE4F9, 0x627C, 0xE4FA, 0x6396, 0xE4FB, 0x6DB2, 0xE4FC, 0x7E0A, + 0xE4FD, 0x814B, 0xE4FE, 0x984D, 0xE5A1, 0x6AFB, 0xE5A2, 0x7F4C, 0xE5A3, 0x9DAF, 0xE5A4, 0x9E1A, 0xE5A5, 0x4E5F, 0xE5A6, 0x503B, + 0xE5A7, 0x51B6, 0xE5A8, 0x591C, 0xE5A9, 0x60F9, 0xE5AA, 0x63F6, 0xE5AB, 0x6930, 0xE5AC, 0x723A, 0xE5AD, 0x8036, 0xE5AE, 0xF974, + 0xE5AF, 0x91CE, 0xE5B0, 0x5F31, 0xE5B1, 0xF975, 0xE5B2, 0xF976, 0xE5B3, 0x7D04, 0xE5B4, 0x82E5, 0xE5B5, 0x846F, 0xE5B6, 0x84BB, + 0xE5B7, 0x85E5, 0xE5B8, 0x8E8D, 0xE5B9, 0xF977, 0xE5BA, 0x4F6F, 0xE5BB, 0xF978, 0xE5BC, 0xF979, 0xE5BD, 0x58E4, 0xE5BE, 0x5B43, + 0xE5BF, 0x6059, 0xE5C0, 0x63DA, 0xE5C1, 0x6518, 0xE5C2, 0x656D, 0xE5C3, 0x6698, 0xE5C4, 0xF97A, 0xE5C5, 0x694A, 0xE5C6, 0x6A23, + 0xE5C7, 0x6D0B, 0xE5C8, 0x7001, 0xE5C9, 0x716C, 0xE5CA, 0x75D2, 0xE5CB, 0x760D, 0xE5CC, 0x79B3, 0xE5CD, 0x7A70, 0xE5CE, 0xF97B, + 0xE5CF, 0x7F8A, 0xE5D0, 0xF97C, 0xE5D1, 0x8944, 0xE5D2, 0xF97D, 0xE5D3, 0x8B93, 0xE5D4, 0x91C0, 0xE5D5, 0x967D, 0xE5D6, 0xF97E, + 0xE5D7, 0x990A, 0xE5D8, 0x5704, 0xE5D9, 0x5FA1, 0xE5DA, 0x65BC, 0xE5DB, 0x6F01, 0xE5DC, 0x7600, 0xE5DD, 0x79A6, 0xE5DE, 0x8A9E, + 0xE5DF, 0x99AD, 0xE5E0, 0x9B5A, 0xE5E1, 0x9F6C, 0xE5E2, 0x5104, 0xE5E3, 0x61B6, 0xE5E4, 0x6291, 0xE5E5, 0x6A8D, 0xE5E6, 0x81C6, + 0xE5E7, 0x5043, 0xE5E8, 0x5830, 0xE5E9, 0x5F66, 0xE5EA, 0x7109, 0xE5EB, 0x8A00, 0xE5EC, 0x8AFA, 0xE5ED, 0x5B7C, 0xE5EE, 0x8616, + 0xE5EF, 0x4FFA, 0xE5F0, 0x513C, 0xE5F1, 0x56B4, 0xE5F2, 0x5944, 0xE5F3, 0x63A9, 0xE5F4, 0x6DF9, 0xE5F5, 0x5DAA, 0xE5F6, 0x696D, + 0xE5F7, 0x5186, 0xE5F8, 0x4E88, 0xE5F9, 0x4F59, 0xE5FA, 0xF97F, 0xE5FB, 0xF980, 0xE5FC, 0xF981, 0xE5FD, 0x5982, 0xE5FE, 0xF982, + 0xE6A1, 0xF983, 0xE6A2, 0x6B5F, 0xE6A3, 0x6C5D, 0xE6A4, 0xF984, 0xE6A5, 0x74B5, 0xE6A6, 0x7916, 0xE6A7, 0xF985, 0xE6A8, 0x8207, + 0xE6A9, 0x8245, 0xE6AA, 0x8339, 0xE6AB, 0x8F3F, 0xE6AC, 0x8F5D, 0xE6AD, 0xF986, 0xE6AE, 0x9918, 0xE6AF, 0xF987, 0xE6B0, 0xF988, + 0xE6B1, 0xF989, 0xE6B2, 0x4EA6, 0xE6B3, 0xF98A, 0xE6B4, 0x57DF, 0xE6B5, 0x5F79, 0xE6B6, 0x6613, 0xE6B7, 0xF98B, 0xE6B8, 0xF98C, + 0xE6B9, 0x75AB, 0xE6BA, 0x7E79, 0xE6BB, 0x8B6F, 0xE6BC, 0xF98D, 0xE6BD, 0x9006, 0xE6BE, 0x9A5B, 0xE6BF, 0x56A5, 0xE6C0, 0x5827, + 0xE6C1, 0x59F8, 0xE6C2, 0x5A1F, 0xE6C3, 0x5BB4, 0xE6C4, 0xF98E, 0xE6C5, 0x5EF6, 0xE6C6, 0xF98F, 0xE6C7, 0xF990, 0xE6C8, 0x6350, + 0xE6C9, 0x633B, 0xE6CA, 0xF991, 0xE6CB, 0x693D, 0xE6CC, 0x6C87, 0xE6CD, 0x6CBF, 0xE6CE, 0x6D8E, 0xE6CF, 0x6D93, 0xE6D0, 0x6DF5, + 0xE6D1, 0x6F14, 0xE6D2, 0xF992, 0xE6D3, 0x70DF, 0xE6D4, 0x7136, 0xE6D5, 0x7159, 0xE6D6, 0xF993, 0xE6D7, 0x71C3, 0xE6D8, 0x71D5, + 0xE6D9, 0xF994, 0xE6DA, 0x784F, 0xE6DB, 0x786F, 0xE6DC, 0xF995, 0xE6DD, 0x7B75, 0xE6DE, 0x7DE3, 0xE6DF, 0xF996, 0xE6E0, 0x7E2F, + 0xE6E1, 0xF997, 0xE6E2, 0x884D, 0xE6E3, 0x8EDF, 0xE6E4, 0xF998, 0xE6E5, 0xF999, 0xE6E6, 0xF99A, 0xE6E7, 0x925B, 0xE6E8, 0xF99B, + 0xE6E9, 0x9CF6, 0xE6EA, 0xF99C, 0xE6EB, 0xF99D, 0xE6EC, 0xF99E, 0xE6ED, 0x6085, 0xE6EE, 0x6D85, 0xE6EF, 0xF99F, 0xE6F0, 0x71B1, + 0xE6F1, 0xF9A0, 0xE6F2, 0xF9A1, 0xE6F3, 0x95B1, 0xE6F4, 0x53AD, 0xE6F5, 0xF9A2, 0xE6F6, 0xF9A3, 0xE6F7, 0xF9A4, 0xE6F8, 0x67D3, + 0xE6F9, 0xF9A5, 0xE6FA, 0x708E, 0xE6FB, 0x7130, 0xE6FC, 0x7430, 0xE6FD, 0x8276, 0xE6FE, 0x82D2, 0xE7A1, 0xF9A6, 0xE7A2, 0x95BB, + 0xE7A3, 0x9AE5, 0xE7A4, 0x9E7D, 0xE7A5, 0x66C4, 0xE7A6, 0xF9A7, 0xE7A7, 0x71C1, 0xE7A8, 0x8449, 0xE7A9, 0xF9A8, 0xE7AA, 0xF9A9, + 0xE7AB, 0x584B, 0xE7AC, 0xF9AA, 0xE7AD, 0xF9AB, 0xE7AE, 0x5DB8, 0xE7AF, 0x5F71, 0xE7B0, 0xF9AC, 0xE7B1, 0x6620, 0xE7B2, 0x668E, + 0xE7B3, 0x6979, 0xE7B4, 0x69AE, 0xE7B5, 0x6C38, 0xE7B6, 0x6CF3, 0xE7B7, 0x6E36, 0xE7B8, 0x6F41, 0xE7B9, 0x6FDA, 0xE7BA, 0x701B, + 0xE7BB, 0x702F, 0xE7BC, 0x7150, 0xE7BD, 0x71DF, 0xE7BE, 0x7370, 0xE7BF, 0xF9AD, 0xE7C0, 0x745B, 0xE7C1, 0xF9AE, 0xE7C2, 0x74D4, + 0xE7C3, 0x76C8, 0xE7C4, 0x7A4E, 0xE7C5, 0x7E93, 0xE7C6, 0xF9AF, 0xE7C7, 0xF9B0, 0xE7C8, 0x82F1, 0xE7C9, 0x8A60, 0xE7CA, 0x8FCE, + 0xE7CB, 0xF9B1, 0xE7CC, 0x9348, 0xE7CD, 0xF9B2, 0xE7CE, 0x9719, 0xE7CF, 0xF9B3, 0xE7D0, 0xF9B4, 0xE7D1, 0x4E42, 0xE7D2, 0x502A, + 0xE7D3, 0xF9B5, 0xE7D4, 0x5208, 0xE7D5, 0x53E1, 0xE7D6, 0x66F3, 0xE7D7, 0x6C6D, 0xE7D8, 0x6FCA, 0xE7D9, 0x730A, 0xE7DA, 0x777F, + 0xE7DB, 0x7A62, 0xE7DC, 0x82AE, 0xE7DD, 0x85DD, 0xE7DE, 0x8602, 0xE7DF, 0xF9B6, 0xE7E0, 0x88D4, 0xE7E1, 0x8A63, 0xE7E2, 0x8B7D, + 0xE7E3, 0x8C6B, 0xE7E4, 0xF9B7, 0xE7E5, 0x92B3, 0xE7E6, 0xF9B8, 0xE7E7, 0x9713, 0xE7E8, 0x9810, 0xE7E9, 0x4E94, 0xE7EA, 0x4F0D, + 0xE7EB, 0x4FC9, 0xE7EC, 0x50B2, 0xE7ED, 0x5348, 0xE7EE, 0x543E, 0xE7EF, 0x5433, 0xE7F0, 0x55DA, 0xE7F1, 0x5862, 0xE7F2, 0x58BA, + 0xE7F3, 0x5967, 0xE7F4, 0x5A1B, 0xE7F5, 0x5BE4, 0xE7F6, 0x609F, 0xE7F7, 0xF9B9, 0xE7F8, 0x61CA, 0xE7F9, 0x6556, 0xE7FA, 0x65FF, + 0xE7FB, 0x6664, 0xE7FC, 0x68A7, 0xE7FD, 0x6C5A, 0xE7FE, 0x6FB3, 0xE8A1, 0x70CF, 0xE8A2, 0x71AC, 0xE8A3, 0x7352, 0xE8A4, 0x7B7D, + 0xE8A5, 0x8708, 0xE8A6, 0x8AA4, 0xE8A7, 0x9C32, 0xE8A8, 0x9F07, 0xE8A9, 0x5C4B, 0xE8AA, 0x6C83, 0xE8AB, 0x7344, 0xE8AC, 0x7389, + 0xE8AD, 0x923A, 0xE8AE, 0x6EAB, 0xE8AF, 0x7465, 0xE8B0, 0x761F, 0xE8B1, 0x7A69, 0xE8B2, 0x7E15, 0xE8B3, 0x860A, 0xE8B4, 0x5140, + 0xE8B5, 0x58C5, 0xE8B6, 0x64C1, 0xE8B7, 0x74EE, 0xE8B8, 0x7515, 0xE8B9, 0x7670, 0xE8BA, 0x7FC1, 0xE8BB, 0x9095, 0xE8BC, 0x96CD, + 0xE8BD, 0x9954, 0xE8BE, 0x6E26, 0xE8BF, 0x74E6, 0xE8C0, 0x7AA9, 0xE8C1, 0x7AAA, 0xE8C2, 0x81E5, 0xE8C3, 0x86D9, 0xE8C4, 0x8778, + 0xE8C5, 0x8A1B, 0xE8C6, 0x5A49, 0xE8C7, 0x5B8C, 0xE8C8, 0x5B9B, 0xE8C9, 0x68A1, 0xE8CA, 0x6900, 0xE8CB, 0x6D63, 0xE8CC, 0x73A9, + 0xE8CD, 0x7413, 0xE8CE, 0x742C, 0xE8CF, 0x7897, 0xE8D0, 0x7DE9, 0xE8D1, 0x7FEB, 0xE8D2, 0x8118, 0xE8D3, 0x8155, 0xE8D4, 0x839E, + 0xE8D5, 0x8C4C, 0xE8D6, 0x962E, 0xE8D7, 0x9811, 0xE8D8, 0x66F0, 0xE8D9, 0x5F80, 0xE8DA, 0x65FA, 0xE8DB, 0x6789, 0xE8DC, 0x6C6A, + 0xE8DD, 0x738B, 0xE8DE, 0x502D, 0xE8DF, 0x5A03, 0xE8E0, 0x6B6A, 0xE8E1, 0x77EE, 0xE8E2, 0x5916, 0xE8E3, 0x5D6C, 0xE8E4, 0x5DCD, + 0xE8E5, 0x7325, 0xE8E6, 0x754F, 0xE8E7, 0xF9BA, 0xE8E8, 0xF9BB, 0xE8E9, 0x50E5, 0xE8EA, 0x51F9, 0xE8EB, 0x582F, 0xE8EC, 0x592D, + 0xE8ED, 0x5996, 0xE8EE, 0x59DA, 0xE8EF, 0x5BE5, 0xE8F0, 0xF9BC, 0xE8F1, 0xF9BD, 0xE8F2, 0x5DA2, 0xE8F3, 0x62D7, 0xE8F4, 0x6416, + 0xE8F5, 0x6493, 0xE8F6, 0x64FE, 0xE8F7, 0xF9BE, 0xE8F8, 0x66DC, 0xE8F9, 0xF9BF, 0xE8FA, 0x6A48, 0xE8FB, 0xF9C0, 0xE8FC, 0x71FF, + 0xE8FD, 0x7464, 0xE8FE, 0xF9C1, 0xE9A1, 0x7A88, 0xE9A2, 0x7AAF, 0xE9A3, 0x7E47, 0xE9A4, 0x7E5E, 0xE9A5, 0x8000, 0xE9A6, 0x8170, + 0xE9A7, 0xF9C2, 0xE9A8, 0x87EF, 0xE9A9, 0x8981, 0xE9AA, 0x8B20, 0xE9AB, 0x9059, 0xE9AC, 0xF9C3, 0xE9AD, 0x9080, 0xE9AE, 0x9952, + 0xE9AF, 0x617E, 0xE9B0, 0x6B32, 0xE9B1, 0x6D74, 0xE9B2, 0x7E1F, 0xE9B3, 0x8925, 0xE9B4, 0x8FB1, 0xE9B5, 0x4FD1, 0xE9B6, 0x50AD, + 0xE9B7, 0x5197, 0xE9B8, 0x52C7, 0xE9B9, 0x57C7, 0xE9BA, 0x5889, 0xE9BB, 0x5BB9, 0xE9BC, 0x5EB8, 0xE9BD, 0x6142, 0xE9BE, 0x6995, + 0xE9BF, 0x6D8C, 0xE9C0, 0x6E67, 0xE9C1, 0x6EB6, 0xE9C2, 0x7194, 0xE9C3, 0x7462, 0xE9C4, 0x7528, 0xE9C5, 0x752C, 0xE9C6, 0x8073, + 0xE9C7, 0x8338, 0xE9C8, 0x84C9, 0xE9C9, 0x8E0A, 0xE9CA, 0x9394, 0xE9CB, 0x93DE, 0xE9CC, 0xF9C4, 0xE9CD, 0x4E8E, 0xE9CE, 0x4F51, + 0xE9CF, 0x5076, 0xE9D0, 0x512A, 0xE9D1, 0x53C8, 0xE9D2, 0x53CB, 0xE9D3, 0x53F3, 0xE9D4, 0x5B87, 0xE9D5, 0x5BD3, 0xE9D6, 0x5C24, + 0xE9D7, 0x611A, 0xE9D8, 0x6182, 0xE9D9, 0x65F4, 0xE9DA, 0x725B, 0xE9DB, 0x7397, 0xE9DC, 0x7440, 0xE9DD, 0x76C2, 0xE9DE, 0x7950, + 0xE9DF, 0x7991, 0xE9E0, 0x79B9, 0xE9E1, 0x7D06, 0xE9E2, 0x7FBD, 0xE9E3, 0x828B, 0xE9E4, 0x85D5, 0xE9E5, 0x865E, 0xE9E6, 0x8FC2, + 0xE9E7, 0x9047, 0xE9E8, 0x90F5, 0xE9E9, 0x91EA, 0xE9EA, 0x9685, 0xE9EB, 0x96E8, 0xE9EC, 0x96E9, 0xE9ED, 0x52D6, 0xE9EE, 0x5F67, + 0xE9EF, 0x65ED, 0xE9F0, 0x6631, 0xE9F1, 0x682F, 0xE9F2, 0x715C, 0xE9F3, 0x7A36, 0xE9F4, 0x90C1, 0xE9F5, 0x980A, 0xE9F6, 0x4E91, + 0xE9F7, 0xF9C5, 0xE9F8, 0x6A52, 0xE9F9, 0x6B9E, 0xE9FA, 0x6F90, 0xE9FB, 0x7189, 0xE9FC, 0x8018, 0xE9FD, 0x82B8, 0xE9FE, 0x8553, + 0xEAA1, 0x904B, 0xEAA2, 0x9695, 0xEAA3, 0x96F2, 0xEAA4, 0x97FB, 0xEAA5, 0x851A, 0xEAA6, 0x9B31, 0xEAA7, 0x4E90, 0xEAA8, 0x718A, + 0xEAA9, 0x96C4, 0xEAAA, 0x5143, 0xEAAB, 0x539F, 0xEAAC, 0x54E1, 0xEAAD, 0x5713, 0xEAAE, 0x5712, 0xEAAF, 0x57A3, 0xEAB0, 0x5A9B, + 0xEAB1, 0x5AC4, 0xEAB2, 0x5BC3, 0xEAB3, 0x6028, 0xEAB4, 0x613F, 0xEAB5, 0x63F4, 0xEAB6, 0x6C85, 0xEAB7, 0x6D39, 0xEAB8, 0x6E72, + 0xEAB9, 0x6E90, 0xEABA, 0x7230, 0xEABB, 0x733F, 0xEABC, 0x7457, 0xEABD, 0x82D1, 0xEABE, 0x8881, 0xEABF, 0x8F45, 0xEAC0, 0x9060, + 0xEAC1, 0xF9C6, 0xEAC2, 0x9662, 0xEAC3, 0x9858, 0xEAC4, 0x9D1B, 0xEAC5, 0x6708, 0xEAC6, 0x8D8A, 0xEAC7, 0x925E, 0xEAC8, 0x4F4D, + 0xEAC9, 0x5049, 0xEACA, 0x50DE, 0xEACB, 0x5371, 0xEACC, 0x570D, 0xEACD, 0x59D4, 0xEACE, 0x5A01, 0xEACF, 0x5C09, 0xEAD0, 0x6170, + 0xEAD1, 0x6690, 0xEAD2, 0x6E2D, 0xEAD3, 0x7232, 0xEAD4, 0x744B, 0xEAD5, 0x7DEF, 0xEAD6, 0x80C3, 0xEAD7, 0x840E, 0xEAD8, 0x8466, + 0xEAD9, 0x853F, 0xEADA, 0x875F, 0xEADB, 0x885B, 0xEADC, 0x8918, 0xEADD, 0x8B02, 0xEADE, 0x9055, 0xEADF, 0x97CB, 0xEAE0, 0x9B4F, + 0xEAE1, 0x4E73, 0xEAE2, 0x4F91, 0xEAE3, 0x5112, 0xEAE4, 0x516A, 0xEAE5, 0xF9C7, 0xEAE6, 0x552F, 0xEAE7, 0x55A9, 0xEAE8, 0x5B7A, + 0xEAE9, 0x5BA5, 0xEAEA, 0x5E7C, 0xEAEB, 0x5E7D, 0xEAEC, 0x5EBE, 0xEAED, 0x60A0, 0xEAEE, 0x60DF, 0xEAEF, 0x6108, 0xEAF0, 0x6109, + 0xEAF1, 0x63C4, 0xEAF2, 0x6538, 0xEAF3, 0x6709, 0xEAF4, 0xF9C8, 0xEAF5, 0x67D4, 0xEAF6, 0x67DA, 0xEAF7, 0xF9C9, 0xEAF8, 0x6961, + 0xEAF9, 0x6962, 0xEAFA, 0x6CB9, 0xEAFB, 0x6D27, 0xEAFC, 0xF9CA, 0xEAFD, 0x6E38, 0xEAFE, 0xF9CB, 0xEBA1, 0x6FE1, 0xEBA2, 0x7336, + 0xEBA3, 0x7337, 0xEBA4, 0xF9CC, 0xEBA5, 0x745C, 0xEBA6, 0x7531, 0xEBA7, 0xF9CD, 0xEBA8, 0x7652, 0xEBA9, 0xF9CE, 0xEBAA, 0xF9CF, + 0xEBAB, 0x7DAD, 0xEBAC, 0x81FE, 0xEBAD, 0x8438, 0xEBAE, 0x88D5, 0xEBAF, 0x8A98, 0xEBB0, 0x8ADB, 0xEBB1, 0x8AED, 0xEBB2, 0x8E30, + 0xEBB3, 0x8E42, 0xEBB4, 0x904A, 0xEBB5, 0x903E, 0xEBB6, 0x907A, 0xEBB7, 0x9149, 0xEBB8, 0x91C9, 0xEBB9, 0x936E, 0xEBBA, 0xF9D0, + 0xEBBB, 0xF9D1, 0xEBBC, 0x5809, 0xEBBD, 0xF9D2, 0xEBBE, 0x6BD3, 0xEBBF, 0x8089, 0xEBC0, 0x80B2, 0xEBC1, 0xF9D3, 0xEBC2, 0xF9D4, + 0xEBC3, 0x5141, 0xEBC4, 0x596B, 0xEBC5, 0x5C39, 0xEBC6, 0xF9D5, 0xEBC7, 0xF9D6, 0xEBC8, 0x6F64, 0xEBC9, 0x73A7, 0xEBCA, 0x80E4, + 0xEBCB, 0x8D07, 0xEBCC, 0xF9D7, 0xEBCD, 0x9217, 0xEBCE, 0x958F, 0xEBCF, 0xF9D8, 0xEBD0, 0xF9D9, 0xEBD1, 0xF9DA, 0xEBD2, 0xF9DB, + 0xEBD3, 0x807F, 0xEBD4, 0x620E, 0xEBD5, 0x701C, 0xEBD6, 0x7D68, 0xEBD7, 0x878D, 0xEBD8, 0xF9DC, 0xEBD9, 0x57A0, 0xEBDA, 0x6069, + 0xEBDB, 0x6147, 0xEBDC, 0x6BB7, 0xEBDD, 0x8ABE, 0xEBDE, 0x9280, 0xEBDF, 0x96B1, 0xEBE0, 0x4E59, 0xEBE1, 0x541F, 0xEBE2, 0x6DEB, + 0xEBE3, 0x852D, 0xEBE4, 0x9670, 0xEBE5, 0x97F3, 0xEBE6, 0x98EE, 0xEBE7, 0x63D6, 0xEBE8, 0x6CE3, 0xEBE9, 0x9091, 0xEBEA, 0x51DD, + 0xEBEB, 0x61C9, 0xEBEC, 0x81BA, 0xEBED, 0x9DF9, 0xEBEE, 0x4F9D, 0xEBEF, 0x501A, 0xEBF0, 0x5100, 0xEBF1, 0x5B9C, 0xEBF2, 0x610F, + 0xEBF3, 0x61FF, 0xEBF4, 0x64EC, 0xEBF5, 0x6905, 0xEBF6, 0x6BC5, 0xEBF7, 0x7591, 0xEBF8, 0x77E3, 0xEBF9, 0x7FA9, 0xEBFA, 0x8264, + 0xEBFB, 0x858F, 0xEBFC, 0x87FB, 0xEBFD, 0x8863, 0xEBFE, 0x8ABC, 0xECA1, 0x8B70, 0xECA2, 0x91AB, 0xECA3, 0x4E8C, 0xECA4, 0x4EE5, + 0xECA5, 0x4F0A, 0xECA6, 0xF9DD, 0xECA7, 0xF9DE, 0xECA8, 0x5937, 0xECA9, 0x59E8, 0xECAA, 0xF9DF, 0xECAB, 0x5DF2, 0xECAC, 0x5F1B, + 0xECAD, 0x5F5B, 0xECAE, 0x6021, 0xECAF, 0xF9E0, 0xECB0, 0xF9E1, 0xECB1, 0xF9E2, 0xECB2, 0xF9E3, 0xECB3, 0x723E, 0xECB4, 0x73E5, + 0xECB5, 0xF9E4, 0xECB6, 0x7570, 0xECB7, 0x75CD, 0xECB8, 0xF9E5, 0xECB9, 0x79FB, 0xECBA, 0xF9E6, 0xECBB, 0x800C, 0xECBC, 0x8033, + 0xECBD, 0x8084, 0xECBE, 0x82E1, 0xECBF, 0x8351, 0xECC0, 0xF9E7, 0xECC1, 0xF9E8, 0xECC2, 0x8CBD, 0xECC3, 0x8CB3, 0xECC4, 0x9087, + 0xECC5, 0xF9E9, 0xECC6, 0xF9EA, 0xECC7, 0x98F4, 0xECC8, 0x990C, 0xECC9, 0xF9EB, 0xECCA, 0xF9EC, 0xECCB, 0x7037, 0xECCC, 0x76CA, + 0xECCD, 0x7FCA, 0xECCE, 0x7FCC, 0xECCF, 0x7FFC, 0xECD0, 0x8B1A, 0xECD1, 0x4EBA, 0xECD2, 0x4EC1, 0xECD3, 0x5203, 0xECD4, 0x5370, + 0xECD5, 0xF9ED, 0xECD6, 0x54BD, 0xECD7, 0x56E0, 0xECD8, 0x59FB, 0xECD9, 0x5BC5, 0xECDA, 0x5F15, 0xECDB, 0x5FCD, 0xECDC, 0x6E6E, + 0xECDD, 0xF9EE, 0xECDE, 0xF9EF, 0xECDF, 0x7D6A, 0xECE0, 0x8335, 0xECE1, 0xF9F0, 0xECE2, 0x8693, 0xECE3, 0x8A8D, 0xECE4, 0xF9F1, + 0xECE5, 0x976D, 0xECE6, 0x9777, 0xECE7, 0xF9F2, 0xECE8, 0xF9F3, 0xECE9, 0x4E00, 0xECEA, 0x4F5A, 0xECEB, 0x4F7E, 0xECEC, 0x58F9, + 0xECED, 0x65E5, 0xECEE, 0x6EA2, 0xECEF, 0x9038, 0xECF0, 0x93B0, 0xECF1, 0x99B9, 0xECF2, 0x4EFB, 0xECF3, 0x58EC, 0xECF4, 0x598A, + 0xECF5, 0x59D9, 0xECF6, 0x6041, 0xECF7, 0xF9F4, 0xECF8, 0xF9F5, 0xECF9, 0x7A14, 0xECFA, 0xF9F6, 0xECFB, 0x834F, 0xECFC, 0x8CC3, + 0xECFD, 0x5165, 0xECFE, 0x5344, 0xEDA1, 0xF9F7, 0xEDA2, 0xF9F8, 0xEDA3, 0xF9F9, 0xEDA4, 0x4ECD, 0xEDA5, 0x5269, 0xEDA6, 0x5B55, + 0xEDA7, 0x82BF, 0xEDA8, 0x4ED4, 0xEDA9, 0x523A, 0xEDAA, 0x54A8, 0xEDAB, 0x59C9, 0xEDAC, 0x59FF, 0xEDAD, 0x5B50, 0xEDAE, 0x5B57, + 0xEDAF, 0x5B5C, 0xEDB0, 0x6063, 0xEDB1, 0x6148, 0xEDB2, 0x6ECB, 0xEDB3, 0x7099, 0xEDB4, 0x716E, 0xEDB5, 0x7386, 0xEDB6, 0x74F7, + 0xEDB7, 0x75B5, 0xEDB8, 0x78C1, 0xEDB9, 0x7D2B, 0xEDBA, 0x8005, 0xEDBB, 0x81EA, 0xEDBC, 0x8328, 0xEDBD, 0x8517, 0xEDBE, 0x85C9, + 0xEDBF, 0x8AEE, 0xEDC0, 0x8CC7, 0xEDC1, 0x96CC, 0xEDC2, 0x4F5C, 0xEDC3, 0x52FA, 0xEDC4, 0x56BC, 0xEDC5, 0x65AB, 0xEDC6, 0x6628, + 0xEDC7, 0x707C, 0xEDC8, 0x70B8, 0xEDC9, 0x7235, 0xEDCA, 0x7DBD, 0xEDCB, 0x828D, 0xEDCC, 0x914C, 0xEDCD, 0x96C0, 0xEDCE, 0x9D72, + 0xEDCF, 0x5B71, 0xEDD0, 0x68E7, 0xEDD1, 0x6B98, 0xEDD2, 0x6F7A, 0xEDD3, 0x76DE, 0xEDD4, 0x5C91, 0xEDD5, 0x66AB, 0xEDD6, 0x6F5B, + 0xEDD7, 0x7BB4, 0xEDD8, 0x7C2A, 0xEDD9, 0x8836, 0xEDDA, 0x96DC, 0xEDDB, 0x4E08, 0xEDDC, 0x4ED7, 0xEDDD, 0x5320, 0xEDDE, 0x5834, + 0xEDDF, 0x58BB, 0xEDE0, 0x58EF, 0xEDE1, 0x596C, 0xEDE2, 0x5C07, 0xEDE3, 0x5E33, 0xEDE4, 0x5E84, 0xEDE5, 0x5F35, 0xEDE6, 0x638C, + 0xEDE7, 0x66B2, 0xEDE8, 0x6756, 0xEDE9, 0x6A1F, 0xEDEA, 0x6AA3, 0xEDEB, 0x6B0C, 0xEDEC, 0x6F3F, 0xEDED, 0x7246, 0xEDEE, 0xF9FA, + 0xEDEF, 0x7350, 0xEDF0, 0x748B, 0xEDF1, 0x7AE0, 0xEDF2, 0x7CA7, 0xEDF3, 0x8178, 0xEDF4, 0x81DF, 0xEDF5, 0x81E7, 0xEDF6, 0x838A, + 0xEDF7, 0x846C, 0xEDF8, 0x8523, 0xEDF9, 0x8594, 0xEDFA, 0x85CF, 0xEDFB, 0x88DD, 0xEDFC, 0x8D13, 0xEDFD, 0x91AC, 0xEDFE, 0x9577, + 0xEEA1, 0x969C, 0xEEA2, 0x518D, 0xEEA3, 0x54C9, 0xEEA4, 0x5728, 0xEEA5, 0x5BB0, 0xEEA6, 0x624D, 0xEEA7, 0x6750, 0xEEA8, 0x683D, + 0xEEA9, 0x6893, 0xEEAA, 0x6E3D, 0xEEAB, 0x6ED3, 0xEEAC, 0x707D, 0xEEAD, 0x7E21, 0xEEAE, 0x88C1, 0xEEAF, 0x8CA1, 0xEEB0, 0x8F09, + 0xEEB1, 0x9F4B, 0xEEB2, 0x9F4E, 0xEEB3, 0x722D, 0xEEB4, 0x7B8F, 0xEEB5, 0x8ACD, 0xEEB6, 0x931A, 0xEEB7, 0x4F47, 0xEEB8, 0x4F4E, + 0xEEB9, 0x5132, 0xEEBA, 0x5480, 0xEEBB, 0x59D0, 0xEEBC, 0x5E95, 0xEEBD, 0x62B5, 0xEEBE, 0x6775, 0xEEBF, 0x696E, 0xEEC0, 0x6A17, + 0xEEC1, 0x6CAE, 0xEEC2, 0x6E1A, 0xEEC3, 0x72D9, 0xEEC4, 0x732A, 0xEEC5, 0x75BD, 0xEEC6, 0x7BB8, 0xEEC7, 0x7D35, 0xEEC8, 0x82E7, + 0xEEC9, 0x83F9, 0xEECA, 0x8457, 0xEECB, 0x85F7, 0xEECC, 0x8A5B, 0xEECD, 0x8CAF, 0xEECE, 0x8E87, 0xEECF, 0x9019, 0xEED0, 0x90B8, + 0xEED1, 0x96CE, 0xEED2, 0x9F5F, 0xEED3, 0x52E3, 0xEED4, 0x540A, 0xEED5, 0x5AE1, 0xEED6, 0x5BC2, 0xEED7, 0x6458, 0xEED8, 0x6575, + 0xEED9, 0x6EF4, 0xEEDA, 0x72C4, 0xEEDB, 0xF9FB, 0xEEDC, 0x7684, 0xEEDD, 0x7A4D, 0xEEDE, 0x7B1B, 0xEEDF, 0x7C4D, 0xEEE0, 0x7E3E, + 0xEEE1, 0x7FDF, 0xEEE2, 0x837B, 0xEEE3, 0x8B2B, 0xEEE4, 0x8CCA, 0xEEE5, 0x8D64, 0xEEE6, 0x8DE1, 0xEEE7, 0x8E5F, 0xEEE8, 0x8FEA, + 0xEEE9, 0x8FF9, 0xEEEA, 0x9069, 0xEEEB, 0x93D1, 0xEEEC, 0x4F43, 0xEEED, 0x4F7A, 0xEEEE, 0x50B3, 0xEEEF, 0x5168, 0xEEF0, 0x5178, + 0xEEF1, 0x524D, 0xEEF2, 0x526A, 0xEEF3, 0x5861, 0xEEF4, 0x587C, 0xEEF5, 0x5960, 0xEEF6, 0x5C08, 0xEEF7, 0x5C55, 0xEEF8, 0x5EDB, + 0xEEF9, 0x609B, 0xEEFA, 0x6230, 0xEEFB, 0x6813, 0xEEFC, 0x6BBF, 0xEEFD, 0x6C08, 0xEEFE, 0x6FB1, 0xEFA1, 0x714E, 0xEFA2, 0x7420, + 0xEFA3, 0x7530, 0xEFA4, 0x7538, 0xEFA5, 0x7551, 0xEFA6, 0x7672, 0xEFA7, 0x7B4C, 0xEFA8, 0x7B8B, 0xEFA9, 0x7BAD, 0xEFAA, 0x7BC6, + 0xEFAB, 0x7E8F, 0xEFAC, 0x8A6E, 0xEFAD, 0x8F3E, 0xEFAE, 0x8F49, 0xEFAF, 0x923F, 0xEFB0, 0x9293, 0xEFB1, 0x9322, 0xEFB2, 0x942B, + 0xEFB3, 0x96FB, 0xEFB4, 0x985A, 0xEFB5, 0x986B, 0xEFB6, 0x991E, 0xEFB7, 0x5207, 0xEFB8, 0x622A, 0xEFB9, 0x6298, 0xEFBA, 0x6D59, + 0xEFBB, 0x7664, 0xEFBC, 0x7ACA, 0xEFBD, 0x7BC0, 0xEFBE, 0x7D76, 0xEFBF, 0x5360, 0xEFC0, 0x5CBE, 0xEFC1, 0x5E97, 0xEFC2, 0x6F38, + 0xEFC3, 0x70B9, 0xEFC4, 0x7C98, 0xEFC5, 0x9711, 0xEFC6, 0x9B8E, 0xEFC7, 0x9EDE, 0xEFC8, 0x63A5, 0xEFC9, 0x647A, 0xEFCA, 0x8776, + 0xEFCB, 0x4E01, 0xEFCC, 0x4E95, 0xEFCD, 0x4EAD, 0xEFCE, 0x505C, 0xEFCF, 0x5075, 0xEFD0, 0x5448, 0xEFD1, 0x59C3, 0xEFD2, 0x5B9A, + 0xEFD3, 0x5E40, 0xEFD4, 0x5EAD, 0xEFD5, 0x5EF7, 0xEFD6, 0x5F81, 0xEFD7, 0x60C5, 0xEFD8, 0x633A, 0xEFD9, 0x653F, 0xEFDA, 0x6574, + 0xEFDB, 0x65CC, 0xEFDC, 0x6676, 0xEFDD, 0x6678, 0xEFDE, 0x67FE, 0xEFDF, 0x6968, 0xEFE0, 0x6A89, 0xEFE1, 0x6B63, 0xEFE2, 0x6C40, + 0xEFE3, 0x6DC0, 0xEFE4, 0x6DE8, 0xEFE5, 0x6E1F, 0xEFE6, 0x6E5E, 0xEFE7, 0x701E, 0xEFE8, 0x70A1, 0xEFE9, 0x738E, 0xEFEA, 0x73FD, + 0xEFEB, 0x753A, 0xEFEC, 0x775B, 0xEFED, 0x7887, 0xEFEE, 0x798E, 0xEFEF, 0x7A0B, 0xEFF0, 0x7A7D, 0xEFF1, 0x7CBE, 0xEFF2, 0x7D8E, + 0xEFF3, 0x8247, 0xEFF4, 0x8A02, 0xEFF5, 0x8AEA, 0xEFF6, 0x8C9E, 0xEFF7, 0x912D, 0xEFF8, 0x914A, 0xEFF9, 0x91D8, 0xEFFA, 0x9266, + 0xEFFB, 0x92CC, 0xEFFC, 0x9320, 0xEFFD, 0x9706, 0xEFFE, 0x9756, 0xF0A1, 0x975C, 0xF0A2, 0x9802, 0xF0A3, 0x9F0E, 0xF0A4, 0x5236, + 0xF0A5, 0x5291, 0xF0A6, 0x557C, 0xF0A7, 0x5824, 0xF0A8, 0x5E1D, 0xF0A9, 0x5F1F, 0xF0AA, 0x608C, 0xF0AB, 0x63D0, 0xF0AC, 0x68AF, + 0xF0AD, 0x6FDF, 0xF0AE, 0x796D, 0xF0AF, 0x7B2C, 0xF0B0, 0x81CD, 0xF0B1, 0x85BA, 0xF0B2, 0x88FD, 0xF0B3, 0x8AF8, 0xF0B4, 0x8E44, + 0xF0B5, 0x918D, 0xF0B6, 0x9664, 0xF0B7, 0x969B, 0xF0B8, 0x973D, 0xF0B9, 0x984C, 0xF0BA, 0x9F4A, 0xF0BB, 0x4FCE, 0xF0BC, 0x5146, + 0xF0BD, 0x51CB, 0xF0BE, 0x52A9, 0xF0BF, 0x5632, 0xF0C0, 0x5F14, 0xF0C1, 0x5F6B, 0xF0C2, 0x63AA, 0xF0C3, 0x64CD, 0xF0C4, 0x65E9, + 0xF0C5, 0x6641, 0xF0C6, 0x66FA, 0xF0C7, 0x66F9, 0xF0C8, 0x671D, 0xF0C9, 0x689D, 0xF0CA, 0x68D7, 0xF0CB, 0x69FD, 0xF0CC, 0x6F15, + 0xF0CD, 0x6F6E, 0xF0CE, 0x7167, 0xF0CF, 0x71E5, 0xF0D0, 0x722A, 0xF0D1, 0x74AA, 0xF0D2, 0x773A, 0xF0D3, 0x7956, 0xF0D4, 0x795A, + 0xF0D5, 0x79DF, 0xF0D6, 0x7A20, 0xF0D7, 0x7A95, 0xF0D8, 0x7C97, 0xF0D9, 0x7CDF, 0xF0DA, 0x7D44, 0xF0DB, 0x7E70, 0xF0DC, 0x8087, + 0xF0DD, 0x85FB, 0xF0DE, 0x86A4, 0xF0DF, 0x8A54, 0xF0E0, 0x8ABF, 0xF0E1, 0x8D99, 0xF0E2, 0x8E81, 0xF0E3, 0x9020, 0xF0E4, 0x906D, + 0xF0E5, 0x91E3, 0xF0E6, 0x963B, 0xF0E7, 0x96D5, 0xF0E8, 0x9CE5, 0xF0E9, 0x65CF, 0xF0EA, 0x7C07, 0xF0EB, 0x8DB3, 0xF0EC, 0x93C3, + 0xF0ED, 0x5B58, 0xF0EE, 0x5C0A, 0xF0EF, 0x5352, 0xF0F0, 0x62D9, 0xF0F1, 0x731D, 0xF0F2, 0x5027, 0xF0F3, 0x5B97, 0xF0F4, 0x5F9E, + 0xF0F5, 0x60B0, 0xF0F6, 0x616B, 0xF0F7, 0x68D5, 0xF0F8, 0x6DD9, 0xF0F9, 0x742E, 0xF0FA, 0x7A2E, 0xF0FB, 0x7D42, 0xF0FC, 0x7D9C, + 0xF0FD, 0x7E31, 0xF0FE, 0x816B, 0xF1A1, 0x8E2A, 0xF1A2, 0x8E35, 0xF1A3, 0x937E, 0xF1A4, 0x9418, 0xF1A5, 0x4F50, 0xF1A6, 0x5750, + 0xF1A7, 0x5DE6, 0xF1A8, 0x5EA7, 0xF1A9, 0x632B, 0xF1AA, 0x7F6A, 0xF1AB, 0x4E3B, 0xF1AC, 0x4F4F, 0xF1AD, 0x4F8F, 0xF1AE, 0x505A, + 0xF1AF, 0x59DD, 0xF1B0, 0x80C4, 0xF1B1, 0x546A, 0xF1B2, 0x5468, 0xF1B3, 0x55FE, 0xF1B4, 0x594F, 0xF1B5, 0x5B99, 0xF1B6, 0x5DDE, + 0xF1B7, 0x5EDA, 0xF1B8, 0x665D, 0xF1B9, 0x6731, 0xF1BA, 0x67F1, 0xF1BB, 0x682A, 0xF1BC, 0x6CE8, 0xF1BD, 0x6D32, 0xF1BE, 0x6E4A, + 0xF1BF, 0x6F8D, 0xF1C0, 0x70B7, 0xF1C1, 0x73E0, 0xF1C2, 0x7587, 0xF1C3, 0x7C4C, 0xF1C4, 0x7D02, 0xF1C5, 0x7D2C, 0xF1C6, 0x7DA2, + 0xF1C7, 0x821F, 0xF1C8, 0x86DB, 0xF1C9, 0x8A3B, 0xF1CA, 0x8A85, 0xF1CB, 0x8D70, 0xF1CC, 0x8E8A, 0xF1CD, 0x8F33, 0xF1CE, 0x9031, + 0xF1CF, 0x914E, 0xF1D0, 0x9152, 0xF1D1, 0x9444, 0xF1D2, 0x99D0, 0xF1D3, 0x7AF9, 0xF1D4, 0x7CA5, 0xF1D5, 0x4FCA, 0xF1D6, 0x5101, + 0xF1D7, 0x51C6, 0xF1D8, 0x57C8, 0xF1D9, 0x5BEF, 0xF1DA, 0x5CFB, 0xF1DB, 0x6659, 0xF1DC, 0x6A3D, 0xF1DD, 0x6D5A, 0xF1DE, 0x6E96, + 0xF1DF, 0x6FEC, 0xF1E0, 0x710C, 0xF1E1, 0x756F, 0xF1E2, 0x7AE3, 0xF1E3, 0x8822, 0xF1E4, 0x9021, 0xF1E5, 0x9075, 0xF1E6, 0x96CB, + 0xF1E7, 0x99FF, 0xF1E8, 0x8301, 0xF1E9, 0x4E2D, 0xF1EA, 0x4EF2, 0xF1EB, 0x8846, 0xF1EC, 0x91CD, 0xF1ED, 0x537D, 0xF1EE, 0x6ADB, + 0xF1EF, 0x696B, 0xF1F0, 0x6C41, 0xF1F1, 0x847A, 0xF1F2, 0x589E, 0xF1F3, 0x618E, 0xF1F4, 0x66FE, 0xF1F5, 0x62EF, 0xF1F6, 0x70DD, + 0xF1F7, 0x7511, 0xF1F8, 0x75C7, 0xF1F9, 0x7E52, 0xF1FA, 0x84B8, 0xF1FB, 0x8B49, 0xF1FC, 0x8D08, 0xF1FD, 0x4E4B, 0xF1FE, 0x53EA, + 0xF2A1, 0x54AB, 0xF2A2, 0x5730, 0xF2A3, 0x5740, 0xF2A4, 0x5FD7, 0xF2A5, 0x6301, 0xF2A6, 0x6307, 0xF2A7, 0x646F, 0xF2A8, 0x652F, + 0xF2A9, 0x65E8, 0xF2AA, 0x667A, 0xF2AB, 0x679D, 0xF2AC, 0x67B3, 0xF2AD, 0x6B62, 0xF2AE, 0x6C60, 0xF2AF, 0x6C9A, 0xF2B0, 0x6F2C, + 0xF2B1, 0x77E5, 0xF2B2, 0x7825, 0xF2B3, 0x7949, 0xF2B4, 0x7957, 0xF2B5, 0x7D19, 0xF2B6, 0x80A2, 0xF2B7, 0x8102, 0xF2B8, 0x81F3, + 0xF2B9, 0x829D, 0xF2BA, 0x82B7, 0xF2BB, 0x8718, 0xF2BC, 0x8A8C, 0xF2BD, 0xF9FC, 0xF2BE, 0x8D04, 0xF2BF, 0x8DBE, 0xF2C0, 0x9072, + 0xF2C1, 0x76F4, 0xF2C2, 0x7A19, 0xF2C3, 0x7A37, 0xF2C4, 0x7E54, 0xF2C5, 0x8077, 0xF2C6, 0x5507, 0xF2C7, 0x55D4, 0xF2C8, 0x5875, + 0xF2C9, 0x632F, 0xF2CA, 0x6422, 0xF2CB, 0x6649, 0xF2CC, 0x664B, 0xF2CD, 0x686D, 0xF2CE, 0x699B, 0xF2CF, 0x6B84, 0xF2D0, 0x6D25, + 0xF2D1, 0x6EB1, 0xF2D2, 0x73CD, 0xF2D3, 0x7468, 0xF2D4, 0x74A1, 0xF2D5, 0x755B, 0xF2D6, 0x75B9, 0xF2D7, 0x76E1, 0xF2D8, 0x771E, + 0xF2D9, 0x778B, 0xF2DA, 0x79E6, 0xF2DB, 0x7E09, 0xF2DC, 0x7E1D, 0xF2DD, 0x81FB, 0xF2DE, 0x852F, 0xF2DF, 0x8897, 0xF2E0, 0x8A3A, + 0xF2E1, 0x8CD1, 0xF2E2, 0x8EEB, 0xF2E3, 0x8FB0, 0xF2E4, 0x9032, 0xF2E5, 0x93AD, 0xF2E6, 0x9663, 0xF2E7, 0x9673, 0xF2E8, 0x9707, + 0xF2E9, 0x4F84, 0xF2EA, 0x53F1, 0xF2EB, 0x59EA, 0xF2EC, 0x5AC9, 0xF2ED, 0x5E19, 0xF2EE, 0x684E, 0xF2EF, 0x74C6, 0xF2F0, 0x75BE, + 0xF2F1, 0x79E9, 0xF2F2, 0x7A92, 0xF2F3, 0x81A3, 0xF2F4, 0x86ED, 0xF2F5, 0x8CEA, 0xF2F6, 0x8DCC, 0xF2F7, 0x8FED, 0xF2F8, 0x659F, + 0xF2F9, 0x6715, 0xF2FA, 0xF9FD, 0xF2FB, 0x57F7, 0xF2FC, 0x6F57, 0xF2FD, 0x7DDD, 0xF2FE, 0x8F2F, 0xF3A1, 0x93F6, 0xF3A2, 0x96C6, + 0xF3A3, 0x5FB5, 0xF3A4, 0x61F2, 0xF3A5, 0x6F84, 0xF3A6, 0x4E14, 0xF3A7, 0x4F98, 0xF3A8, 0x501F, 0xF3A9, 0x53C9, 0xF3AA, 0x55DF, + 0xF3AB, 0x5D6F, 0xF3AC, 0x5DEE, 0xF3AD, 0x6B21, 0xF3AE, 0x6B64, 0xF3AF, 0x78CB, 0xF3B0, 0x7B9A, 0xF3B1, 0xF9FE, 0xF3B2, 0x8E49, + 0xF3B3, 0x8ECA, 0xF3B4, 0x906E, 0xF3B5, 0x6349, 0xF3B6, 0x643E, 0xF3B7, 0x7740, 0xF3B8, 0x7A84, 0xF3B9, 0x932F, 0xF3BA, 0x947F, + 0xF3BB, 0x9F6A, 0xF3BC, 0x64B0, 0xF3BD, 0x6FAF, 0xF3BE, 0x71E6, 0xF3BF, 0x74A8, 0xF3C0, 0x74DA, 0xF3C1, 0x7AC4, 0xF3C2, 0x7C12, + 0xF3C3, 0x7E82, 0xF3C4, 0x7CB2, 0xF3C5, 0x7E98, 0xF3C6, 0x8B9A, 0xF3C7, 0x8D0A, 0xF3C8, 0x947D, 0xF3C9, 0x9910, 0xF3CA, 0x994C, + 0xF3CB, 0x5239, 0xF3CC, 0x5BDF, 0xF3CD, 0x64E6, 0xF3CE, 0x672D, 0xF3CF, 0x7D2E, 0xF3D0, 0x50ED, 0xF3D1, 0x53C3, 0xF3D2, 0x5879, + 0xF3D3, 0x6158, 0xF3D4, 0x6159, 0xF3D5, 0x61FA, 0xF3D6, 0x65AC, 0xF3D7, 0x7AD9, 0xF3D8, 0x8B92, 0xF3D9, 0x8B96, 0xF3DA, 0x5009, + 0xF3DB, 0x5021, 0xF3DC, 0x5275, 0xF3DD, 0x5531, 0xF3DE, 0x5A3C, 0xF3DF, 0x5EE0, 0xF3E0, 0x5F70, 0xF3E1, 0x6134, 0xF3E2, 0x655E, + 0xF3E3, 0x660C, 0xF3E4, 0x6636, 0xF3E5, 0x66A2, 0xF3E6, 0x69CD, 0xF3E7, 0x6EC4, 0xF3E8, 0x6F32, 0xF3E9, 0x7316, 0xF3EA, 0x7621, + 0xF3EB, 0x7A93, 0xF3EC, 0x8139, 0xF3ED, 0x8259, 0xF3EE, 0x83D6, 0xF3EF, 0x84BC, 0xF3F0, 0x50B5, 0xF3F1, 0x57F0, 0xF3F2, 0x5BC0, + 0xF3F3, 0x5BE8, 0xF3F4, 0x5F69, 0xF3F5, 0x63A1, 0xF3F6, 0x7826, 0xF3F7, 0x7DB5, 0xF3F8, 0x83DC, 0xF3F9, 0x8521, 0xF3FA, 0x91C7, + 0xF3FB, 0x91F5, 0xF3FC, 0x518A, 0xF3FD, 0x67F5, 0xF3FE, 0x7B56, 0xF4A1, 0x8CAC, 0xF4A2, 0x51C4, 0xF4A3, 0x59BB, 0xF4A4, 0x60BD, + 0xF4A5, 0x8655, 0xF4A6, 0x501C, 0xF4A7, 0xF9FF, 0xF4A8, 0x5254, 0xF4A9, 0x5C3A, 0xF4AA, 0x617D, 0xF4AB, 0x621A, 0xF4AC, 0x62D3, + 0xF4AD, 0x64F2, 0xF4AE, 0x65A5, 0xF4AF, 0x6ECC, 0xF4B0, 0x7620, 0xF4B1, 0x810A, 0xF4B2, 0x8E60, 0xF4B3, 0x965F, 0xF4B4, 0x96BB, + 0xF4B5, 0x4EDF, 0xF4B6, 0x5343, 0xF4B7, 0x5598, 0xF4B8, 0x5929, 0xF4B9, 0x5DDD, 0xF4BA, 0x64C5, 0xF4BB, 0x6CC9, 0xF4BC, 0x6DFA, + 0xF4BD, 0x7394, 0xF4BE, 0x7A7F, 0xF4BF, 0x821B, 0xF4C0, 0x85A6, 0xF4C1, 0x8CE4, 0xF4C2, 0x8E10, 0xF4C3, 0x9077, 0xF4C4, 0x91E7, + 0xF4C5, 0x95E1, 0xF4C6, 0x9621, 0xF4C7, 0x97C6, 0xF4C8, 0x51F8, 0xF4C9, 0x54F2, 0xF4CA, 0x5586, 0xF4CB, 0x5FB9, 0xF4CC, 0x64A4, + 0xF4CD, 0x6F88, 0xF4CE, 0x7DB4, 0xF4CF, 0x8F1F, 0xF4D0, 0x8F4D, 0xF4D1, 0x9435, 0xF4D2, 0x50C9, 0xF4D3, 0x5C16, 0xF4D4, 0x6CBE, + 0xF4D5, 0x6DFB, 0xF4D6, 0x751B, 0xF4D7, 0x77BB, 0xF4D8, 0x7C3D, 0xF4D9, 0x7C64, 0xF4DA, 0x8A79, 0xF4DB, 0x8AC2, 0xF4DC, 0x581E, + 0xF4DD, 0x59BE, 0xF4DE, 0x5E16, 0xF4DF, 0x6377, 0xF4E0, 0x7252, 0xF4E1, 0x758A, 0xF4E2, 0x776B, 0xF4E3, 0x8ADC, 0xF4E4, 0x8CBC, + 0xF4E5, 0x8F12, 0xF4E6, 0x5EF3, 0xF4E7, 0x6674, 0xF4E8, 0x6DF8, 0xF4E9, 0x807D, 0xF4EA, 0x83C1, 0xF4EB, 0x8ACB, 0xF4EC, 0x9751, + 0xF4ED, 0x9BD6, 0xF4EE, 0xFA00, 0xF4EF, 0x5243, 0xF4F0, 0x66FF, 0xF4F1, 0x6D95, 0xF4F2, 0x6EEF, 0xF4F3, 0x7DE0, 0xF4F4, 0x8AE6, + 0xF4F5, 0x902E, 0xF4F6, 0x905E, 0xF4F7, 0x9AD4, 0xF4F8, 0x521D, 0xF4F9, 0x527F, 0xF4FA, 0x54E8, 0xF4FB, 0x6194, 0xF4FC, 0x6284, + 0xF4FD, 0x62DB, 0xF4FE, 0x68A2, 0xF5A1, 0x6912, 0xF5A2, 0x695A, 0xF5A3, 0x6A35, 0xF5A4, 0x7092, 0xF5A5, 0x7126, 0xF5A6, 0x785D, + 0xF5A7, 0x7901, 0xF5A8, 0x790E, 0xF5A9, 0x79D2, 0xF5AA, 0x7A0D, 0xF5AB, 0x8096, 0xF5AC, 0x8278, 0xF5AD, 0x82D5, 0xF5AE, 0x8349, + 0xF5AF, 0x8549, 0xF5B0, 0x8C82, 0xF5B1, 0x8D85, 0xF5B2, 0x9162, 0xF5B3, 0x918B, 0xF5B4, 0x91AE, 0xF5B5, 0x4FC3, 0xF5B6, 0x56D1, + 0xF5B7, 0x71ED, 0xF5B8, 0x77D7, 0xF5B9, 0x8700, 0xF5BA, 0x89F8, 0xF5BB, 0x5BF8, 0xF5BC, 0x5FD6, 0xF5BD, 0x6751, 0xF5BE, 0x90A8, + 0xF5BF, 0x53E2, 0xF5C0, 0x585A, 0xF5C1, 0x5BF5, 0xF5C2, 0x60A4, 0xF5C3, 0x6181, 0xF5C4, 0x6460, 0xF5C5, 0x7E3D, 0xF5C6, 0x8070, + 0xF5C7, 0x8525, 0xF5C8, 0x9283, 0xF5C9, 0x64AE, 0xF5CA, 0x50AC, 0xF5CB, 0x5D14, 0xF5CC, 0x6700, 0xF5CD, 0x589C, 0xF5CE, 0x62BD, + 0xF5CF, 0x63A8, 0xF5D0, 0x690E, 0xF5D1, 0x6978, 0xF5D2, 0x6A1E, 0xF5D3, 0x6E6B, 0xF5D4, 0x76BA, 0xF5D5, 0x79CB, 0xF5D6, 0x82BB, + 0xF5D7, 0x8429, 0xF5D8, 0x8ACF, 0xF5D9, 0x8DA8, 0xF5DA, 0x8FFD, 0xF5DB, 0x9112, 0xF5DC, 0x914B, 0xF5DD, 0x919C, 0xF5DE, 0x9310, + 0xF5DF, 0x9318, 0xF5E0, 0x939A, 0xF5E1, 0x96DB, 0xF5E2, 0x9A36, 0xF5E3, 0x9C0D, 0xF5E4, 0x4E11, 0xF5E5, 0x755C, 0xF5E6, 0x795D, + 0xF5E7, 0x7AFA, 0xF5E8, 0x7B51, 0xF5E9, 0x7BC9, 0xF5EA, 0x7E2E, 0xF5EB, 0x84C4, 0xF5EC, 0x8E59, 0xF5ED, 0x8E74, 0xF5EE, 0x8EF8, + 0xF5EF, 0x9010, 0xF5F0, 0x6625, 0xF5F1, 0x693F, 0xF5F2, 0x7443, 0xF5F3, 0x51FA, 0xF5F4, 0x672E, 0xF5F5, 0x9EDC, 0xF5F6, 0x5145, + 0xF5F7, 0x5FE0, 0xF5F8, 0x6C96, 0xF5F9, 0x87F2, 0xF5FA, 0x885D, 0xF5FB, 0x8877, 0xF5FC, 0x60B4, 0xF5FD, 0x81B5, 0xF5FE, 0x8403, + 0xF6A1, 0x8D05, 0xF6A2, 0x53D6, 0xF6A3, 0x5439, 0xF6A4, 0x5634, 0xF6A5, 0x5A36, 0xF6A6, 0x5C31, 0xF6A7, 0x708A, 0xF6A8, 0x7FE0, + 0xF6A9, 0x805A, 0xF6AA, 0x8106, 0xF6AB, 0x81ED, 0xF6AC, 0x8DA3, 0xF6AD, 0x9189, 0xF6AE, 0x9A5F, 0xF6AF, 0x9DF2, 0xF6B0, 0x5074, + 0xF6B1, 0x4EC4, 0xF6B2, 0x53A0, 0xF6B3, 0x60FB, 0xF6B4, 0x6E2C, 0xF6B5, 0x5C64, 0xF6B6, 0x4F88, 0xF6B7, 0x5024, 0xF6B8, 0x55E4, + 0xF6B9, 0x5CD9, 0xF6BA, 0x5E5F, 0xF6BB, 0x6065, 0xF6BC, 0x6894, 0xF6BD, 0x6CBB, 0xF6BE, 0x6DC4, 0xF6BF, 0x71BE, 0xF6C0, 0x75D4, + 0xF6C1, 0x75F4, 0xF6C2, 0x7661, 0xF6C3, 0x7A1A, 0xF6C4, 0x7A49, 0xF6C5, 0x7DC7, 0xF6C6, 0x7DFB, 0xF6C7, 0x7F6E, 0xF6C8, 0x81F4, + 0xF6C9, 0x86A9, 0xF6CA, 0x8F1C, 0xF6CB, 0x96C9, 0xF6CC, 0x99B3, 0xF6CD, 0x9F52, 0xF6CE, 0x5247, 0xF6CF, 0x52C5, 0xF6D0, 0x98ED, + 0xF6D1, 0x89AA, 0xF6D2, 0x4E03, 0xF6D3, 0x67D2, 0xF6D4, 0x6F06, 0xF6D5, 0x4FB5, 0xF6D6, 0x5BE2, 0xF6D7, 0x6795, 0xF6D8, 0x6C88, + 0xF6D9, 0x6D78, 0xF6DA, 0x741B, 0xF6DB, 0x7827, 0xF6DC, 0x91DD, 0xF6DD, 0x937C, 0xF6DE, 0x87C4, 0xF6DF, 0x79E4, 0xF6E0, 0x7A31, + 0xF6E1, 0x5FEB, 0xF6E2, 0x4ED6, 0xF6E3, 0x54A4, 0xF6E4, 0x553E, 0xF6E5, 0x58AE, 0xF6E6, 0x59A5, 0xF6E7, 0x60F0, 0xF6E8, 0x6253, + 0xF6E9, 0x62D6, 0xF6EA, 0x6736, 0xF6EB, 0x6955, 0xF6EC, 0x8235, 0xF6ED, 0x9640, 0xF6EE, 0x99B1, 0xF6EF, 0x99DD, 0xF6F0, 0x502C, + 0xF6F1, 0x5353, 0xF6F2, 0x5544, 0xF6F3, 0x577C, 0xF6F4, 0xFA01, 0xF6F5, 0x6258, 0xF6F6, 0xFA02, 0xF6F7, 0x64E2, 0xF6F8, 0x666B, + 0xF6F9, 0x67DD, 0xF6FA, 0x6FC1, 0xF6FB, 0x6FEF, 0xF6FC, 0x7422, 0xF6FD, 0x7438, 0xF6FE, 0x8A17, 0xF7A1, 0x9438, 0xF7A2, 0x5451, + 0xF7A3, 0x5606, 0xF7A4, 0x5766, 0xF7A5, 0x5F48, 0xF7A6, 0x619A, 0xF7A7, 0x6B4E, 0xF7A8, 0x7058, 0xF7A9, 0x70AD, 0xF7AA, 0x7DBB, + 0xF7AB, 0x8A95, 0xF7AC, 0x596A, 0xF7AD, 0x812B, 0xF7AE, 0x63A2, 0xF7AF, 0x7708, 0xF7B0, 0x803D, 0xF7B1, 0x8CAA, 0xF7B2, 0x5854, + 0xF7B3, 0x642D, 0xF7B4, 0x69BB, 0xF7B5, 0x5B95, 0xF7B6, 0x5E11, 0xF7B7, 0x6E6F, 0xF7B8, 0xFA03, 0xF7B9, 0x8569, 0xF7BA, 0x514C, + 0xF7BB, 0x53F0, 0xF7BC, 0x592A, 0xF7BD, 0x6020, 0xF7BE, 0x614B, 0xF7BF, 0x6B86, 0xF7C0, 0x6C70, 0xF7C1, 0x6CF0, 0xF7C2, 0x7B1E, + 0xF7C3, 0x80CE, 0xF7C4, 0x82D4, 0xF7C5, 0x8DC6, 0xF7C6, 0x90B0, 0xF7C7, 0x98B1, 0xF7C8, 0xFA04, 0xF7C9, 0x64C7, 0xF7CA, 0x6FA4, + 0xF7CB, 0x6491, 0xF7CC, 0x6504, 0xF7CD, 0x514E, 0xF7CE, 0x5410, 0xF7CF, 0x571F, 0xF7D0, 0x8A0E, 0xF7D1, 0x615F, 0xF7D2, 0x6876, + 0xF7D3, 0xFA05, 0xF7D4, 0x75DB, 0xF7D5, 0x7B52, 0xF7D6, 0x7D71, 0xF7D7, 0x901A, 0xF7D8, 0x5806, 0xF7D9, 0x69CC, 0xF7DA, 0x817F, + 0xF7DB, 0x892A, 0xF7DC, 0x9000, 0xF7DD, 0x9839, 0xF7DE, 0x5078, 0xF7DF, 0x5957, 0xF7E0, 0x59AC, 0xF7E1, 0x6295, 0xF7E2, 0x900F, + 0xF7E3, 0x9B2A, 0xF7E4, 0x615D, 0xF7E5, 0x7279, 0xF7E6, 0x95D6, 0xF7E7, 0x5761, 0xF7E8, 0x5A46, 0xF7E9, 0x5DF4, 0xF7EA, 0x628A, + 0xF7EB, 0x64AD, 0xF7EC, 0x64FA, 0xF7ED, 0x6777, 0xF7EE, 0x6CE2, 0xF7EF, 0x6D3E, 0xF7F0, 0x722C, 0xF7F1, 0x7436, 0xF7F2, 0x7834, + 0xF7F3, 0x7F77, 0xF7F4, 0x82AD, 0xF7F5, 0x8DDB, 0xF7F6, 0x9817, 0xF7F7, 0x5224, 0xF7F8, 0x5742, 0xF7F9, 0x677F, 0xF7FA, 0x7248, + 0xF7FB, 0x74E3, 0xF7FC, 0x8CA9, 0xF7FD, 0x8FA6, 0xF7FE, 0x9211, 0xF8A1, 0x962A, 0xF8A2, 0x516B, 0xF8A3, 0x53ED, 0xF8A4, 0x634C, + 0xF8A5, 0x4F69, 0xF8A6, 0x5504, 0xF8A7, 0x6096, 0xF8A8, 0x6557, 0xF8A9, 0x6C9B, 0xF8AA, 0x6D7F, 0xF8AB, 0x724C, 0xF8AC, 0x72FD, + 0xF8AD, 0x7A17, 0xF8AE, 0x8987, 0xF8AF, 0x8C9D, 0xF8B0, 0x5F6D, 0xF8B1, 0x6F8E, 0xF8B2, 0x70F9, 0xF8B3, 0x81A8, 0xF8B4, 0x610E, + 0xF8B5, 0x4FBF, 0xF8B6, 0x504F, 0xF8B7, 0x6241, 0xF8B8, 0x7247, 0xF8B9, 0x7BC7, 0xF8BA, 0x7DE8, 0xF8BB, 0x7FE9, 0xF8BC, 0x904D, + 0xF8BD, 0x97AD, 0xF8BE, 0x9A19, 0xF8BF, 0x8CB6, 0xF8C0, 0x576A, 0xF8C1, 0x5E73, 0xF8C2, 0x67B0, 0xF8C3, 0x840D, 0xF8C4, 0x8A55, + 0xF8C5, 0x5420, 0xF8C6, 0x5B16, 0xF8C7, 0x5E63, 0xF8C8, 0x5EE2, 0xF8C9, 0x5F0A, 0xF8CA, 0x6583, 0xF8CB, 0x80BA, 0xF8CC, 0x853D, + 0xF8CD, 0x9589, 0xF8CE, 0x965B, 0xF8CF, 0x4F48, 0xF8D0, 0x5305, 0xF8D1, 0x530D, 0xF8D2, 0x530F, 0xF8D3, 0x5486, 0xF8D4, 0x54FA, + 0xF8D5, 0x5703, 0xF8D6, 0x5E03, 0xF8D7, 0x6016, 0xF8D8, 0x629B, 0xF8D9, 0x62B1, 0xF8DA, 0x6355, 0xF8DB, 0xFA06, 0xF8DC, 0x6CE1, + 0xF8DD, 0x6D66, 0xF8DE, 0x75B1, 0xF8DF, 0x7832, 0xF8E0, 0x80DE, 0xF8E1, 0x812F, 0xF8E2, 0x82DE, 0xF8E3, 0x8461, 0xF8E4, 0x84B2, + 0xF8E5, 0x888D, 0xF8E6, 0x8912, 0xF8E7, 0x900B, 0xF8E8, 0x92EA, 0xF8E9, 0x98FD, 0xF8EA, 0x9B91, 0xF8EB, 0x5E45, 0xF8EC, 0x66B4, + 0xF8ED, 0x66DD, 0xF8EE, 0x7011, 0xF8EF, 0x7206, 0xF8F0, 0xFA07, 0xF8F1, 0x4FF5, 0xF8F2, 0x527D, 0xF8F3, 0x5F6A, 0xF8F4, 0x6153, + 0xF8F5, 0x6753, 0xF8F6, 0x6A19, 0xF8F7, 0x6F02, 0xF8F8, 0x74E2, 0xF8F9, 0x7968, 0xF8FA, 0x8868, 0xF8FB, 0x8C79, 0xF8FC, 0x98C7, + 0xF8FD, 0x98C4, 0xF8FE, 0x9A43, 0xF9A1, 0x54C1, 0xF9A2, 0x7A1F, 0xF9A3, 0x6953, 0xF9A4, 0x8AF7, 0xF9A5, 0x8C4A, 0xF9A6, 0x98A8, + 0xF9A7, 0x99AE, 0xF9A8, 0x5F7C, 0xF9A9, 0x62AB, 0xF9AA, 0x75B2, 0xF9AB, 0x76AE, 0xF9AC, 0x88AB, 0xF9AD, 0x907F, 0xF9AE, 0x9642, + 0xF9AF, 0x5339, 0xF9B0, 0x5F3C, 0xF9B1, 0x5FC5, 0xF9B2, 0x6CCC, 0xF9B3, 0x73CC, 0xF9B4, 0x7562, 0xF9B5, 0x758B, 0xF9B6, 0x7B46, + 0xF9B7, 0x82FE, 0xF9B8, 0x999D, 0xF9B9, 0x4E4F, 0xF9BA, 0x903C, 0xF9BB, 0x4E0B, 0xF9BC, 0x4F55, 0xF9BD, 0x53A6, 0xF9BE, 0x590F, + 0xF9BF, 0x5EC8, 0xF9C0, 0x6630, 0xF9C1, 0x6CB3, 0xF9C2, 0x7455, 0xF9C3, 0x8377, 0xF9C4, 0x8766, 0xF9C5, 0x8CC0, 0xF9C6, 0x9050, + 0xF9C7, 0x971E, 0xF9C8, 0x9C15, 0xF9C9, 0x58D1, 0xF9CA, 0x5B78, 0xF9CB, 0x8650, 0xF9CC, 0x8B14, 0xF9CD, 0x9DB4, 0xF9CE, 0x5BD2, + 0xF9CF, 0x6068, 0xF9D0, 0x608D, 0xF9D1, 0x65F1, 0xF9D2, 0x6C57, 0xF9D3, 0x6F22, 0xF9D4, 0x6FA3, 0xF9D5, 0x701A, 0xF9D6, 0x7F55, + 0xF9D7, 0x7FF0, 0xF9D8, 0x9591, 0xF9D9, 0x9592, 0xF9DA, 0x9650, 0xF9DB, 0x97D3, 0xF9DC, 0x5272, 0xF9DD, 0x8F44, 0xF9DE, 0x51FD, + 0xF9DF, 0x542B, 0xF9E0, 0x54B8, 0xF9E1, 0x5563, 0xF9E2, 0x558A, 0xF9E3, 0x6ABB, 0xF9E4, 0x6DB5, 0xF9E5, 0x7DD8, 0xF9E6, 0x8266, + 0xF9E7, 0x929C, 0xF9E8, 0x9677, 0xF9E9, 0x9E79, 0xF9EA, 0x5408, 0xF9EB, 0x54C8, 0xF9EC, 0x76D2, 0xF9ED, 0x86E4, 0xF9EE, 0x95A4, + 0xF9EF, 0x95D4, 0xF9F0, 0x965C, 0xF9F1, 0x4EA2, 0xF9F2, 0x4F09, 0xF9F3, 0x59EE, 0xF9F4, 0x5AE6, 0xF9F5, 0x5DF7, 0xF9F6, 0x6052, + 0xF9F7, 0x6297, 0xF9F8, 0x676D, 0xF9F9, 0x6841, 0xF9FA, 0x6C86, 0xF9FB, 0x6E2F, 0xF9FC, 0x7F38, 0xF9FD, 0x809B, 0xF9FE, 0x822A, + 0xFAA1, 0xFA08, 0xFAA2, 0xFA09, 0xFAA3, 0x9805, 0xFAA4, 0x4EA5, 0xFAA5, 0x5055, 0xFAA6, 0x54B3, 0xFAA7, 0x5793, 0xFAA8, 0x595A, + 0xFAA9, 0x5B69, 0xFAAA, 0x5BB3, 0xFAAB, 0x61C8, 0xFAAC, 0x6977, 0xFAAD, 0x6D77, 0xFAAE, 0x7023, 0xFAAF, 0x87F9, 0xFAB0, 0x89E3, + 0xFAB1, 0x8A72, 0xFAB2, 0x8AE7, 0xFAB3, 0x9082, 0xFAB4, 0x99ED, 0xFAB5, 0x9AB8, 0xFAB6, 0x52BE, 0xFAB7, 0x6838, 0xFAB8, 0x5016, + 0xFAB9, 0x5E78, 0xFABA, 0x674F, 0xFABB, 0x8347, 0xFABC, 0x884C, 0xFABD, 0x4EAB, 0xFABE, 0x5411, 0xFABF, 0x56AE, 0xFAC0, 0x73E6, + 0xFAC1, 0x9115, 0xFAC2, 0x97FF, 0xFAC3, 0x9909, 0xFAC4, 0x9957, 0xFAC5, 0x9999, 0xFAC6, 0x5653, 0xFAC7, 0x589F, 0xFAC8, 0x865B, + 0xFAC9, 0x8A31, 0xFACA, 0x61B2, 0xFACB, 0x6AF6, 0xFACC, 0x737B, 0xFACD, 0x8ED2, 0xFACE, 0x6B47, 0xFACF, 0x96AA, 0xFAD0, 0x9A57, + 0xFAD1, 0x5955, 0xFAD2, 0x7200, 0xFAD3, 0x8D6B, 0xFAD4, 0x9769, 0xFAD5, 0x4FD4, 0xFAD6, 0x5CF4, 0xFAD7, 0x5F26, 0xFAD8, 0x61F8, + 0xFAD9, 0x665B, 0xFADA, 0x6CEB, 0xFADB, 0x70AB, 0xFADC, 0x7384, 0xFADD, 0x73B9, 0xFADE, 0x73FE, 0xFADF, 0x7729, 0xFAE0, 0x774D, + 0xFAE1, 0x7D43, 0xFAE2, 0x7D62, 0xFAE3, 0x7E23, 0xFAE4, 0x8237, 0xFAE5, 0x8852, 0xFAE6, 0xFA0A, 0xFAE7, 0x8CE2, 0xFAE8, 0x9249, + 0xFAE9, 0x986F, 0xFAEA, 0x5B51, 0xFAEB, 0x7A74, 0xFAEC, 0x8840, 0xFAED, 0x9801, 0xFAEE, 0x5ACC, 0xFAEF, 0x4FE0, 0xFAF0, 0x5354, + 0xFAF1, 0x593E, 0xFAF2, 0x5CFD, 0xFAF3, 0x633E, 0xFAF4, 0x6D79, 0xFAF5, 0x72F9, 0xFAF6, 0x8105, 0xFAF7, 0x8107, 0xFAF8, 0x83A2, + 0xFAF9, 0x92CF, 0xFAFA, 0x9830, 0xFAFB, 0x4EA8, 0xFAFC, 0x5144, 0xFAFD, 0x5211, 0xFAFE, 0x578B, 0xFBA1, 0x5F62, 0xFBA2, 0x6CC2, + 0xFBA3, 0x6ECE, 0xFBA4, 0x7005, 0xFBA5, 0x7050, 0xFBA6, 0x70AF, 0xFBA7, 0x7192, 0xFBA8, 0x73E9, 0xFBA9, 0x7469, 0xFBAA, 0x834A, + 0xFBAB, 0x87A2, 0xFBAC, 0x8861, 0xFBAD, 0x9008, 0xFBAE, 0x90A2, 0xFBAF, 0x93A3, 0xFBB0, 0x99A8, 0xFBB1, 0x516E, 0xFBB2, 0x5F57, + 0xFBB3, 0x60E0, 0xFBB4, 0x6167, 0xFBB5, 0x66B3, 0xFBB6, 0x8559, 0xFBB7, 0x8E4A, 0xFBB8, 0x91AF, 0xFBB9, 0x978B, 0xFBBA, 0x4E4E, + 0xFBBB, 0x4E92, 0xFBBC, 0x547C, 0xFBBD, 0x58D5, 0xFBBE, 0x58FA, 0xFBBF, 0x597D, 0xFBC0, 0x5CB5, 0xFBC1, 0x5F27, 0xFBC2, 0x6236, + 0xFBC3, 0x6248, 0xFBC4, 0x660A, 0xFBC5, 0x6667, 0xFBC6, 0x6BEB, 0xFBC7, 0x6D69, 0xFBC8, 0x6DCF, 0xFBC9, 0x6E56, 0xFBCA, 0x6EF8, + 0xFBCB, 0x6F94, 0xFBCC, 0x6FE0, 0xFBCD, 0x6FE9, 0xFBCE, 0x705D, 0xFBCF, 0x72D0, 0xFBD0, 0x7425, 0xFBD1, 0x745A, 0xFBD2, 0x74E0, + 0xFBD3, 0x7693, 0xFBD4, 0x795C, 0xFBD5, 0x7CCA, 0xFBD6, 0x7E1E, 0xFBD7, 0x80E1, 0xFBD8, 0x82A6, 0xFBD9, 0x846B, 0xFBDA, 0x84BF, + 0xFBDB, 0x864E, 0xFBDC, 0x865F, 0xFBDD, 0x8774, 0xFBDE, 0x8B77, 0xFBDF, 0x8C6A, 0xFBE0, 0x93AC, 0xFBE1, 0x9800, 0xFBE2, 0x9865, + 0xFBE3, 0x60D1, 0xFBE4, 0x6216, 0xFBE5, 0x9177, 0xFBE6, 0x5A5A, 0xFBE7, 0x660F, 0xFBE8, 0x6DF7, 0xFBE9, 0x6E3E, 0xFBEA, 0x743F, + 0xFBEB, 0x9B42, 0xFBEC, 0x5FFD, 0xFBED, 0x60DA, 0xFBEE, 0x7B0F, 0xFBEF, 0x54C4, 0xFBF0, 0x5F18, 0xFBF1, 0x6C5E, 0xFBF2, 0x6CD3, + 0xFBF3, 0x6D2A, 0xFBF4, 0x70D8, 0xFBF5, 0x7D05, 0xFBF6, 0x8679, 0xFBF7, 0x8A0C, 0xFBF8, 0x9D3B, 0xFBF9, 0x5316, 0xFBFA, 0x548C, + 0xFBFB, 0x5B05, 0xFBFC, 0x6A3A, 0xFBFD, 0x706B, 0xFBFE, 0x7575, 0xFCA1, 0x798D, 0xFCA2, 0x79BE, 0xFCA3, 0x82B1, 0xFCA4, 0x83EF, + 0xFCA5, 0x8A71, 0xFCA6, 0x8B41, 0xFCA7, 0x8CA8, 0xFCA8, 0x9774, 0xFCA9, 0xFA0B, 0xFCAA, 0x64F4, 0xFCAB, 0x652B, 0xFCAC, 0x78BA, + 0xFCAD, 0x78BB, 0xFCAE, 0x7A6B, 0xFCAF, 0x4E38, 0xFCB0, 0x559A, 0xFCB1, 0x5950, 0xFCB2, 0x5BA6, 0xFCB3, 0x5E7B, 0xFCB4, 0x60A3, + 0xFCB5, 0x63DB, 0xFCB6, 0x6B61, 0xFCB7, 0x6665, 0xFCB8, 0x6853, 0xFCB9, 0x6E19, 0xFCBA, 0x7165, 0xFCBB, 0x74B0, 0xFCBC, 0x7D08, + 0xFCBD, 0x9084, 0xFCBE, 0x9A69, 0xFCBF, 0x9C25, 0xFCC0, 0x6D3B, 0xFCC1, 0x6ED1, 0xFCC2, 0x733E, 0xFCC3, 0x8C41, 0xFCC4, 0x95CA, + 0xFCC5, 0x51F0, 0xFCC6, 0x5E4C, 0xFCC7, 0x5FA8, 0xFCC8, 0x604D, 0xFCC9, 0x60F6, 0xFCCA, 0x6130, 0xFCCB, 0x614C, 0xFCCC, 0x6643, + 0xFCCD, 0x6644, 0xFCCE, 0x69A5, 0xFCCF, 0x6CC1, 0xFCD0, 0x6E5F, 0xFCD1, 0x6EC9, 0xFCD2, 0x6F62, 0xFCD3, 0x714C, 0xFCD4, 0x749C, + 0xFCD5, 0x7687, 0xFCD6, 0x7BC1, 0xFCD7, 0x7C27, 0xFCD8, 0x8352, 0xFCD9, 0x8757, 0xFCDA, 0x9051, 0xFCDB, 0x968D, 0xFCDC, 0x9EC3, + 0xFCDD, 0x532F, 0xFCDE, 0x56DE, 0xFCDF, 0x5EFB, 0xFCE0, 0x5F8A, 0xFCE1, 0x6062, 0xFCE2, 0x6094, 0xFCE3, 0x61F7, 0xFCE4, 0x6666, + 0xFCE5, 0x6703, 0xFCE6, 0x6A9C, 0xFCE7, 0x6DEE, 0xFCE8, 0x6FAE, 0xFCE9, 0x7070, 0xFCEA, 0x736A, 0xFCEB, 0x7E6A, 0xFCEC, 0x81BE, + 0xFCED, 0x8334, 0xFCEE, 0x86D4, 0xFCEF, 0x8AA8, 0xFCF0, 0x8CC4, 0xFCF1, 0x5283, 0xFCF2, 0x7372, 0xFCF3, 0x5B96, 0xFCF4, 0x6A6B, + 0xFCF5, 0x9404, 0xFCF6, 0x54EE, 0xFCF7, 0x5686, 0xFCF8, 0x5B5D, 0xFCF9, 0x6548, 0xFCFA, 0x6585, 0xFCFB, 0x66C9, 0xFCFC, 0x689F, + 0xFCFD, 0x6D8D, 0xFCFE, 0x6DC6, 0xFDA1, 0x723B, 0xFDA2, 0x80B4, 0xFDA3, 0x9175, 0xFDA4, 0x9A4D, 0xFDA5, 0x4FAF, 0xFDA6, 0x5019, + 0xFDA7, 0x539A, 0xFDA8, 0x540E, 0xFDA9, 0x543C, 0xFDAA, 0x5589, 0xFDAB, 0x55C5, 0xFDAC, 0x5E3F, 0xFDAD, 0x5F8C, 0xFDAE, 0x673D, + 0xFDAF, 0x7166, 0xFDB0, 0x73DD, 0xFDB1, 0x9005, 0xFDB2, 0x52DB, 0xFDB3, 0x52F3, 0xFDB4, 0x5864, 0xFDB5, 0x58CE, 0xFDB6, 0x7104, + 0xFDB7, 0x718F, 0xFDB8, 0x71FB, 0xFDB9, 0x85B0, 0xFDBA, 0x8A13, 0xFDBB, 0x6688, 0xFDBC, 0x85A8, 0xFDBD, 0x55A7, 0xFDBE, 0x6684, + 0xFDBF, 0x714A, 0xFDC0, 0x8431, 0xFDC1, 0x5349, 0xFDC2, 0x5599, 0xFDC3, 0x6BC1, 0xFDC4, 0x5F59, 0xFDC5, 0x5FBD, 0xFDC6, 0x63EE, + 0xFDC7, 0x6689, 0xFDC8, 0x7147, 0xFDC9, 0x8AF1, 0xFDCA, 0x8F1D, 0xFDCB, 0x9EBE, 0xFDCC, 0x4F11, 0xFDCD, 0x643A, 0xFDCE, 0x70CB, + 0xFDCF, 0x7566, 0xFDD0, 0x8667, 0xFDD1, 0x6064, 0xFDD2, 0x8B4E, 0xFDD3, 0x9DF8, 0xFDD4, 0x5147, 0xFDD5, 0x51F6, 0xFDD6, 0x5308, + 0xFDD7, 0x6D36, 0xFDD8, 0x80F8, 0xFDD9, 0x9ED1, 0xFDDA, 0x6615, 0xFDDB, 0x6B23, 0xFDDC, 0x7098, 0xFDDD, 0x75D5, 0xFDDE, 0x5403, + 0xFDDF, 0x5C79, 0xFDE0, 0x7D07, 0xFDE1, 0x8A16, 0xFDE2, 0x6B20, 0xFDE3, 0x6B3D, 0xFDE4, 0x6B46, 0xFDE5, 0x5438, 0xFDE6, 0x6070, + 0xFDE7, 0x6D3D, 0xFDE8, 0x7FD5, 0xFDE9, 0x8208, 0xFDEA, 0x50D6, 0xFDEB, 0x51DE, 0xFDEC, 0x559C, 0xFDED, 0x566B, 0xFDEE, 0x56CD, + 0xFDEF, 0x59EC, 0xFDF0, 0x5B09, 0xFDF1, 0x5E0C, 0xFDF2, 0x6199, 0xFDF3, 0x6198, 0xFDF4, 0x6231, 0xFDF5, 0x665E, 0xFDF6, 0x66E6, + 0xFDF7, 0x7199, 0xFDF8, 0x71B9, 0xFDF9, 0x71BA, 0xFDFA, 0x72A7, 0xFDFB, 0x79A7, 0xFDFC, 0x7A00, 0xFDFD, 0x7FB2, 0xFDFE, 0x8A70, + 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 950 || FF_CODE_PAGE == 0 /* Traditional Chinese */ +static const WCHAR uni2oem950[] = { /* Unicode --> Big5 pairs */ + 0x00A7, 0xA1B1, 0x00AF, 0xA1C2, 0x00B0, 0xA258, 0x00B1, 0xA1D3, 0x00B7, 0xA150, 0x00D7, 0xA1D1, 0x00F7, 0xA1D2, 0x02C7, 0xA3BE, + 0x02C9, 0xA3BC, 0x02CA, 0xA3BD, 0x02CB, 0xA3BF, 0x02CD, 0xA1C5, 0x02D9, 0xA3BB, 0x0391, 0xA344, 0x0392, 0xA345, 0x0393, 0xA346, + 0x0394, 0xA347, 0x0395, 0xA348, 0x0396, 0xA349, 0x0397, 0xA34A, 0x0398, 0xA34B, 0x0399, 0xA34C, 0x039A, 0xA34D, 0x039B, 0xA34E, + 0x039C, 0xA34F, 0x039D, 0xA350, 0x039E, 0xA351, 0x039F, 0xA352, 0x03A0, 0xA353, 0x03A1, 0xA354, 0x03A3, 0xA355, 0x03A4, 0xA356, + 0x03A5, 0xA357, 0x03A6, 0xA358, 0x03A7, 0xA359, 0x03A8, 0xA35A, 0x03A9, 0xA35B, 0x03B1, 0xA35C, 0x03B2, 0xA35D, 0x03B3, 0xA35E, + 0x03B4, 0xA35F, 0x03B5, 0xA360, 0x03B6, 0xA361, 0x03B7, 0xA362, 0x03B8, 0xA363, 0x03B9, 0xA364, 0x03BA, 0xA365, 0x03BB, 0xA366, + 0x03BC, 0xA367, 0x03BD, 0xA368, 0x03BE, 0xA369, 0x03BF, 0xA36A, 0x03C0, 0xA36B, 0x03C1, 0xA36C, 0x03C3, 0xA36D, 0x03C4, 0xA36E, + 0x03C5, 0xA36F, 0x03C6, 0xA370, 0x03C7, 0xA371, 0x03C8, 0xA372, 0x03C9, 0xA373, 0x2013, 0xA156, 0x2014, 0xA158, 0x2018, 0xA1A5, + 0x2019, 0xA1A6, 0x201C, 0xA1A7, 0x201D, 0xA1A8, 0x2025, 0xA14C, 0x2026, 0xA14B, 0x2027, 0xA145, 0x2032, 0xA1AC, 0x2035, 0xA1AB, + 0x203B, 0xA1B0, 0x20AC, 0xA3E1, 0x2103, 0xA24A, 0x2105, 0xA1C1, 0x2109, 0xA24B, 0x2160, 0xA2B9, 0x2161, 0xA2BA, 0x2162, 0xA2BB, + 0x2163, 0xA2BC, 0x2164, 0xA2BD, 0x2165, 0xA2BE, 0x2166, 0xA2BF, 0x2167, 0xA2C0, 0x2168, 0xA2C1, 0x2169, 0xA2C2, 0x2190, 0xA1F6, + 0x2191, 0xA1F4, 0x2192, 0xA1F7, 0x2193, 0xA1F5, 0x2196, 0xA1F8, 0x2197, 0xA1F9, 0x2198, 0xA1FB, 0x2199, 0xA1FA, 0x2215, 0xA241, + 0x221A, 0xA1D4, 0x221E, 0xA1DB, 0x221F, 0xA1E8, 0x2220, 0xA1E7, 0x2223, 0xA1FD, 0x2225, 0xA1FC, 0x2229, 0xA1E4, 0x222A, 0xA1E5, + 0x222B, 0xA1EC, 0x222E, 0xA1ED, 0x2234, 0xA1EF, 0x2235, 0xA1EE, 0x2252, 0xA1DC, 0x2260, 0xA1DA, 0x2261, 0xA1DD, 0x2266, 0xA1D8, + 0x2267, 0xA1D9, 0x2295, 0xA1F2, 0x2299, 0xA1F3, 0x22A5, 0xA1E6, 0x22BF, 0xA1E9, 0x2500, 0xA277, 0x2502, 0xA278, 0x250C, 0xA27A, + 0x2510, 0xA27B, 0x2514, 0xA27C, 0x2518, 0xA27D, 0x251C, 0xA275, 0x2524, 0xA274, 0x252C, 0xA273, 0x2534, 0xA272, 0x253C, 0xA271, + 0x2550, 0xA2A4, 0x2550, 0xF9F9, 0x2551, 0xF9F8, 0x2552, 0xF9E6, 0x2553, 0xF9EF, 0x2554, 0xF9DD, 0x2555, 0xF9E8, 0x2556, 0xF9F1, + 0x2557, 0xF9DF, 0x2558, 0xF9EC, 0x2559, 0xF9F5, 0x255A, 0xF9E3, 0x255B, 0xF9EE, 0x255C, 0xF9F7, 0x255D, 0xF9E5, 0x255E, 0xA2A5, + 0x255E, 0xF9E9, 0x255F, 0xF9F2, 0x2560, 0xF9E0, 0x2561, 0xA2A7, 0x2561, 0xF9EB, 0x2562, 0xF9F4, 0x2563, 0xF9E2, 0x2564, 0xF9E7, + 0x2565, 0xF9F0, 0x2566, 0xF9DE, 0x2567, 0xF9ED, 0x2568, 0xF9F6, 0x2569, 0xF9E4, 0x256A, 0xA2A6, 0x256A, 0xF9EA, 0x256B, 0xF9F3, + 0x256C, 0xF9E1, 0x256D, 0xA27E, 0x256D, 0xF9FA, 0x256E, 0xA2A1, 0x256E, 0xF9FB, 0x256F, 0xA2A3, 0x256F, 0xF9FD, 0x2570, 0xA2A2, + 0x2570, 0xF9FC, 0x2571, 0xA2AC, 0x2572, 0xA2AD, 0x2573, 0xA2AE, 0x2574, 0xA15A, 0x2581, 0xA262, 0x2582, 0xA263, 0x2583, 0xA264, + 0x2584, 0xA265, 0x2585, 0xA266, 0x2586, 0xA267, 0x2587, 0xA268, 0x2588, 0xA269, 0x2589, 0xA270, 0x258A, 0xA26F, 0x258B, 0xA26E, + 0x258C, 0xA26D, 0x258D, 0xA26C, 0x258E, 0xA26B, 0x258F, 0xA26A, 0x2593, 0xF9FE, 0x2594, 0xA276, 0x2595, 0xA279, 0x25A0, 0xA1BD, + 0x25A1, 0xA1BC, 0x25B2, 0xA1B6, 0x25B3, 0xA1B5, 0x25BC, 0xA1BF, 0x25BD, 0xA1BE, 0x25C6, 0xA1BB, 0x25C7, 0xA1BA, 0x25CB, 0xA1B3, + 0x25CE, 0xA1B7, 0x25CF, 0xA1B4, 0x25E2, 0xA2A8, 0x25E3, 0xA2A9, 0x25E4, 0xA2AB, 0x25E5, 0xA2AA, 0x2605, 0xA1B9, 0x2606, 0xA1B8, + 0x2640, 0xA1F0, 0x2642, 0xA1F1, 0x3000, 0xA140, 0x3001, 0xA142, 0x3002, 0xA143, 0x3003, 0xA1B2, 0x3008, 0xA171, 0x3009, 0xA172, + 0x300A, 0xA16D, 0x300B, 0xA16E, 0x300C, 0xA175, 0x300D, 0xA176, 0x300E, 0xA179, 0x300F, 0xA17A, 0x3010, 0xA169, 0x3011, 0xA16A, + 0x3012, 0xA245, 0x3014, 0xA165, 0x3015, 0xA166, 0x301D, 0xA1A9, 0x301E, 0xA1AA, 0x3021, 0xA2C3, 0x3022, 0xA2C4, 0x3023, 0xA2C5, + 0x3024, 0xA2C6, 0x3025, 0xA2C7, 0x3026, 0xA2C8, 0x3027, 0xA2C9, 0x3028, 0xA2CA, 0x3029, 0xA2CB, 0x3105, 0xA374, 0x3106, 0xA375, + 0x3107, 0xA376, 0x3108, 0xA377, 0x3109, 0xA378, 0x310A, 0xA379, 0x310B, 0xA37A, 0x310C, 0xA37B, 0x310D, 0xA37C, 0x310E, 0xA37D, + 0x310F, 0xA37E, 0x3110, 0xA3A1, 0x3111, 0xA3A2, 0x3112, 0xA3A3, 0x3113, 0xA3A4, 0x3114, 0xA3A5, 0x3115, 0xA3A6, 0x3116, 0xA3A7, + 0x3117, 0xA3A8, 0x3118, 0xA3A9, 0x3119, 0xA3AA, 0x311A, 0xA3AB, 0x311B, 0xA3AC, 0x311C, 0xA3AD, 0x311D, 0xA3AE, 0x311E, 0xA3AF, + 0x311F, 0xA3B0, 0x3120, 0xA3B1, 0x3121, 0xA3B2, 0x3122, 0xA3B3, 0x3123, 0xA3B4, 0x3124, 0xA3B5, 0x3125, 0xA3B6, 0x3126, 0xA3B7, + 0x3127, 0xA3B8, 0x3128, 0xA3B9, 0x3129, 0xA3BA, 0x32A3, 0xA1C0, 0x338E, 0xA255, 0x338F, 0xA256, 0x339C, 0xA250, 0x339D, 0xA251, + 0x339E, 0xA252, 0x33A1, 0xA254, 0x33C4, 0xA257, 0x33CE, 0xA253, 0x33D1, 0xA1EB, 0x33D2, 0xA1EA, 0x33D5, 0xA24F, 0x4E00, 0xA440, + 0x4E01, 0xA442, 0x4E03, 0xA443, 0x4E07, 0xC945, 0x4E08, 0xA456, 0x4E09, 0xA454, 0x4E0A, 0xA457, 0x4E0B, 0xA455, 0x4E0C, 0xC946, + 0x4E0D, 0xA4A3, 0x4E0E, 0xC94F, 0x4E0F, 0xC94D, 0x4E10, 0xA4A2, 0x4E11, 0xA4A1, 0x4E14, 0xA542, 0x4E15, 0xA541, 0x4E16, 0xA540, + 0x4E18, 0xA543, 0x4E19, 0xA4FE, 0x4E1E, 0xA5E0, 0x4E1F, 0xA5E1, 0x4E26, 0xA8C3, 0x4E2B, 0xA458, 0x4E2D, 0xA4A4, 0x4E2E, 0xC950, + 0x4E30, 0xA4A5, 0x4E31, 0xC963, 0x4E32, 0xA6EA, 0x4E33, 0xCBB1, 0x4E38, 0xA459, 0x4E39, 0xA4A6, 0x4E3B, 0xA544, 0x4E3C, 0xC964, + 0x4E42, 0xC940, 0x4E43, 0xA444, 0x4E45, 0xA45B, 0x4E47, 0xC947, 0x4E48, 0xA45C, 0x4E4B, 0xA4A7, 0x4E4D, 0xA545, 0x4E4E, 0xA547, + 0x4E4F, 0xA546, 0x4E52, 0xA5E2, 0x4E53, 0xA5E3, 0x4E56, 0xA8C4, 0x4E58, 0xADBC, 0x4E59, 0xA441, 0x4E5C, 0xC941, 0x4E5D, 0xA445, + 0x4E5E, 0xA45E, 0x4E5F, 0xA45D, 0x4E69, 0xA5E4, 0x4E73, 0xA8C5, 0x4E7E, 0xB0AE, 0x4E7F, 0xD44B, 0x4E82, 0xB6C3, 0x4E83, 0xDCB1, + 0x4E84, 0xDCB2, 0x4E86, 0xA446, 0x4E88, 0xA4A9, 0x4E8B, 0xA8C6, 0x4E8C, 0xA447, 0x4E8D, 0xC948, 0x4E8E, 0xA45F, 0x4E91, 0xA4AA, + 0x4E92, 0xA4AC, 0x4E93, 0xC951, 0x4E94, 0xA4AD, 0x4E95, 0xA4AB, 0x4E99, 0xA5E5, 0x4E9B, 0xA8C7, 0x4E9E, 0xA8C8, 0x4E9F, 0xAB45, + 0x4EA1, 0xA460, 0x4EA2, 0xA4AE, 0x4EA4, 0xA5E6, 0x4EA5, 0xA5E8, 0x4EA6, 0xA5E7, 0x4EA8, 0xA6EB, 0x4EAB, 0xA8C9, 0x4EAC, 0xA8CA, + 0x4EAD, 0xAB46, 0x4EAE, 0xAB47, 0x4EB3, 0xADBD, 0x4EB6, 0xDCB3, 0x4EB9, 0xF6D6, 0x4EBA, 0xA448, 0x4EC0, 0xA4B0, 0x4EC1, 0xA4AF, + 0x4EC2, 0xC952, 0x4EC3, 0xA4B1, 0x4EC4, 0xA4B7, 0x4EC6, 0xA4B2, 0x4EC7, 0xA4B3, 0x4EC8, 0xC954, 0x4EC9, 0xC953, 0x4ECA, 0xA4B5, + 0x4ECB, 0xA4B6, 0x4ECD, 0xA4B4, 0x4ED4, 0xA54A, 0x4ED5, 0xA54B, 0x4ED6, 0xA54C, 0x4ED7, 0xA54D, 0x4ED8, 0xA549, 0x4ED9, 0xA550, + 0x4EDA, 0xC96A, 0x4EDC, 0xC966, 0x4EDD, 0xC969, 0x4EDE, 0xA551, 0x4EDF, 0xA561, 0x4EE1, 0xC968, 0x4EE3, 0xA54E, 0x4EE4, 0xA54F, + 0x4EE5, 0xA548, 0x4EE8, 0xC965, 0x4EE9, 0xC967, 0x4EF0, 0xA5F5, 0x4EF1, 0xC9B0, 0x4EF2, 0xA5F2, 0x4EF3, 0xA5F6, 0x4EF4, 0xC9BA, + 0x4EF5, 0xC9AE, 0x4EF6, 0xA5F3, 0x4EF7, 0xC9B2, 0x4EFB, 0xA5F4, 0x4EFD, 0xA5F7, 0x4EFF, 0xA5E9, 0x4F00, 0xC9B1, 0x4F01, 0xA5F8, + 0x4F02, 0xC9B5, 0x4F04, 0xC9B9, 0x4F05, 0xC9B6, 0x4F08, 0xC9B3, 0x4F09, 0xA5EA, 0x4F0A, 0xA5EC, 0x4F0B, 0xA5F9, 0x4F0D, 0xA5EE, + 0x4F0E, 0xC9AB, 0x4F0F, 0xA5F1, 0x4F10, 0xA5EF, 0x4F11, 0xA5F0, 0x4F12, 0xC9BB, 0x4F13, 0xC9B8, 0x4F14, 0xC9AF, 0x4F15, 0xA5ED, + 0x4F18, 0xC9AC, 0x4F19, 0xA5EB, 0x4F1D, 0xC9B4, 0x4F22, 0xC9B7, 0x4F2C, 0xC9AD, 0x4F2D, 0xCA66, 0x4F2F, 0xA742, 0x4F30, 0xA6F4, + 0x4F33, 0xCA67, 0x4F34, 0xA6F1, 0x4F36, 0xA744, 0x4F38, 0xA6F9, 0x4F3A, 0xA6F8, 0x4F3B, 0xCA5B, 0x4F3C, 0xA6FC, 0x4F3D, 0xA6F7, + 0x4F3E, 0xCA60, 0x4F3F, 0xCA68, 0x4F41, 0xCA64, 0x4F43, 0xA6FA, 0x4F46, 0xA6FD, 0x4F47, 0xA6EE, 0x4F48, 0xA747, 0x4F49, 0xCA5D, + 0x4F4C, 0xCBBD, 0x4F4D, 0xA6EC, 0x4F4E, 0xA743, 0x4F4F, 0xA6ED, 0x4F50, 0xA6F5, 0x4F51, 0xA6F6, 0x4F52, 0xCA62, 0x4F53, 0xCA5E, + 0x4F54, 0xA6FB, 0x4F55, 0xA6F3, 0x4F56, 0xCA5A, 0x4F57, 0xA6EF, 0x4F58, 0xCA65, 0x4F59, 0xA745, 0x4F5A, 0xA748, 0x4F5B, 0xA6F2, + 0x4F5C, 0xA740, 0x4F5D, 0xA746, 0x4F5E, 0xA6F0, 0x4F5F, 0xCA63, 0x4F60, 0xA741, 0x4F61, 0xCA69, 0x4F62, 0xCA5C, 0x4F63, 0xA6FE, + 0x4F64, 0xCA5F, 0x4F67, 0xCA61, 0x4F69, 0xA8D8, 0x4F6A, 0xCBBF, 0x4F6B, 0xCBCB, 0x4F6C, 0xA8D0, 0x4F6E, 0xCBCC, 0x4F6F, 0xA8CB, + 0x4F70, 0xA8D5, 0x4F73, 0xA8CE, 0x4F74, 0xCBB9, 0x4F75, 0xA8D6, 0x4F76, 0xCBB8, 0x4F77, 0xCBBC, 0x4F78, 0xCBC3, 0x4F79, 0xCBC1, + 0x4F7A, 0xA8DE, 0x4F7B, 0xA8D9, 0x4F7C, 0xCBB3, 0x4F7D, 0xCBB5, 0x4F7E, 0xA8DB, 0x4F7F, 0xA8CF, 0x4F80, 0xCBB6, 0x4F81, 0xCBC2, + 0x4F82, 0xCBC9, 0x4F83, 0xA8D4, 0x4F84, 0xCBBB, 0x4F85, 0xCBB4, 0x4F86, 0xA8D3, 0x4F87, 0xCBB7, 0x4F88, 0xA8D7, 0x4F89, 0xCBBA, + 0x4F8B, 0xA8D2, 0x4F8D, 0xA8CD, 0x4F8F, 0xA8DC, 0x4F90, 0xCBC4, 0x4F91, 0xA8DD, 0x4F92, 0xCBC8, 0x4F94, 0xCBC6, 0x4F95, 0xCBCA, + 0x4F96, 0xA8DA, 0x4F97, 0xCBBE, 0x4F98, 0xCBB2, 0x4F9A, 0xCBC0, 0x4F9B, 0xA8D1, 0x4F9C, 0xCBC5, 0x4F9D, 0xA8CC, 0x4F9E, 0xCBC7, + 0x4FAE, 0xAB56, 0x4FAF, 0xAB4A, 0x4FB2, 0xCDE0, 0x4FB3, 0xCDE8, 0x4FB5, 0xAB49, 0x4FB6, 0xAB51, 0x4FB7, 0xAB5D, 0x4FB9, 0xCDEE, + 0x4FBA, 0xCDEC, 0x4FBB, 0xCDE7, 0x4FBF, 0xAB4B, 0x4FC0, 0xCDED, 0x4FC1, 0xCDE3, 0x4FC2, 0xAB59, 0x4FC3, 0xAB50, 0x4FC4, 0xAB58, + 0x4FC5, 0xCDDE, 0x4FC7, 0xCDEA, 0x4FC9, 0xCDE1, 0x4FCA, 0xAB54, 0x4FCB, 0xCDE2, 0x4FCD, 0xCDDD, 0x4FCE, 0xAB5B, 0x4FCF, 0xAB4E, + 0x4FD0, 0xAB57, 0x4FD1, 0xAB4D, 0x4FD3, 0xCDDF, 0x4FD4, 0xCDE4, 0x4FD6, 0xCDEB, 0x4FD7, 0xAB55, 0x4FD8, 0xAB52, 0x4FD9, 0xCDE6, + 0x4FDA, 0xAB5A, 0x4FDB, 0xCDE9, 0x4FDC, 0xCDE5, 0x4FDD, 0xAB4F, 0x4FDE, 0xAB5C, 0x4FDF, 0xAB53, 0x4FE0, 0xAB4C, 0x4FE1, 0xAB48, + 0x4FEC, 0xCDEF, 0x4FEE, 0xADD7, 0x4FEF, 0xADC1, 0x4FF1, 0xADD1, 0x4FF3, 0xADD6, 0x4FF4, 0xD0D0, 0x4FF5, 0xD0CF, 0x4FF6, 0xD0D4, + 0x4FF7, 0xD0D5, 0x4FF8, 0xADC4, 0x4FFA, 0xADCD, 0x4FFE, 0xADDA, 0x5000, 0xADCE, 0x5005, 0xD0C9, 0x5006, 0xADC7, 0x5007, 0xD0CA, + 0x5009, 0xADDC, 0x500B, 0xADD3, 0x500C, 0xADBE, 0x500D, 0xADBF, 0x500E, 0xD0DD, 0x500F, 0xB0BF, 0x5011, 0xADCC, 0x5012, 0xADCB, + 0x5013, 0xD0CB, 0x5014, 0xADCF, 0x5015, 0xD45B, 0x5016, 0xADC6, 0x5017, 0xD0D6, 0x5018, 0xADD5, 0x5019, 0xADD4, 0x501A, 0xADCA, + 0x501B, 0xD0CE, 0x501C, 0xD0D7, 0x501E, 0xD0C8, 0x501F, 0xADC9, 0x5020, 0xD0D8, 0x5021, 0xADD2, 0x5022, 0xD0CC, 0x5023, 0xADC0, + 0x5025, 0xADC3, 0x5026, 0xADC2, 0x5027, 0xD0D9, 0x5028, 0xADD0, 0x5029, 0xADC5, 0x502A, 0xADD9, 0x502B, 0xADDB, 0x502C, 0xD0D3, + 0x502D, 0xADD8, 0x502F, 0xD0DB, 0x5030, 0xD0CD, 0x5031, 0xD0DC, 0x5033, 0xD0D1, 0x5035, 0xD0DA, 0x5037, 0xD0D2, 0x503C, 0xADC8, + 0x5040, 0xD463, 0x5041, 0xD457, 0x5043, 0xB0B3, 0x5045, 0xD45C, 0x5046, 0xD462, 0x5047, 0xB0B2, 0x5048, 0xD455, 0x5049, 0xB0B6, + 0x504A, 0xD459, 0x504B, 0xD452, 0x504C, 0xB0B4, 0x504D, 0xD456, 0x504E, 0xB0B9, 0x504F, 0xB0BE, 0x5051, 0xD467, 0x5053, 0xD451, + 0x5055, 0xB0BA, 0x5057, 0xD466, 0x505A, 0xB0B5, 0x505B, 0xD458, 0x505C, 0xB0B1, 0x505D, 0xD453, 0x505E, 0xD44F, 0x505F, 0xD45D, + 0x5060, 0xD450, 0x5061, 0xD44E, 0x5062, 0xD45A, 0x5063, 0xD460, 0x5064, 0xD461, 0x5065, 0xB0B7, 0x5068, 0xD85B, 0x5069, 0xD45E, + 0x506A, 0xD44D, 0x506B, 0xD45F, 0x506D, 0xB0C1, 0x506E, 0xD464, 0x506F, 0xB0C0, 0x5070, 0xD44C, 0x5072, 0xD454, 0x5073, 0xD465, + 0x5074, 0xB0BC, 0x5075, 0xB0BB, 0x5076, 0xB0B8, 0x5077, 0xB0BD, 0x507A, 0xB0AF, 0x507D, 0xB0B0, 0x5080, 0xB3C8, 0x5082, 0xD85E, + 0x5083, 0xD857, 0x5085, 0xB3C5, 0x5087, 0xD85F, 0x508B, 0xD855, 0x508C, 0xD858, 0x508D, 0xB3C4, 0x508E, 0xD859, 0x5091, 0xB3C7, + 0x5092, 0xD85D, 0x5094, 0xD853, 0x5095, 0xD852, 0x5096, 0xB3C9, 0x5098, 0xB3CA, 0x5099, 0xB3C6, 0x509A, 0xB3CB, 0x509B, 0xD851, + 0x509C, 0xD85C, 0x509D, 0xD85A, 0x509E, 0xD854, 0x50A2, 0xB3C3, 0x50A3, 0xD856, 0x50AC, 0xB6CA, 0x50AD, 0xB6C4, 0x50AE, 0xDCB7, + 0x50AF, 0xB6CD, 0x50B0, 0xDCBD, 0x50B1, 0xDCC0, 0x50B2, 0xB6C6, 0x50B3, 0xB6C7, 0x50B4, 0xDCBA, 0x50B5, 0xB6C5, 0x50B6, 0xDCC3, + 0x50B7, 0xB6CB, 0x50B8, 0xDCC4, 0x50BA, 0xDCBF, 0x50BB, 0xB6CC, 0x50BD, 0xDCB4, 0x50BE, 0xB6C9, 0x50BF, 0xDCB5, 0x50C1, 0xDCBE, + 0x50C2, 0xDCBC, 0x50C4, 0xDCB8, 0x50C5, 0xB6C8, 0x50C6, 0xDCB6, 0x50C7, 0xB6CE, 0x50C8, 0xDCBB, 0x50C9, 0xDCC2, 0x50CA, 0xDCB9, + 0x50CB, 0xDCC1, 0x50CE, 0xB9B6, 0x50CF, 0xB9B3, 0x50D1, 0xB9B4, 0x50D3, 0xE0F9, 0x50D4, 0xE0F1, 0x50D5, 0xB9B2, 0x50D6, 0xB9AF, + 0x50D7, 0xE0F2, 0x50DA, 0xB9B1, 0x50DB, 0xE0F5, 0x50DD, 0xE0F7, 0x50E0, 0xE0FE, 0x50E3, 0xE0FD, 0x50E4, 0xE0F8, 0x50E5, 0xB9AE, + 0x50E6, 0xE0F0, 0x50E7, 0xB9AC, 0x50E8, 0xE0F3, 0x50E9, 0xB9B7, 0x50EA, 0xE0F6, 0x50EC, 0xE0FA, 0x50ED, 0xB9B0, 0x50EE, 0xB9AD, + 0x50EF, 0xE0FC, 0x50F0, 0xE0FB, 0x50F1, 0xB9B5, 0x50F3, 0xE0F4, 0x50F5, 0xBBF8, 0x50F6, 0xE4EC, 0x50F8, 0xE4E9, 0x50F9, 0xBBF9, + 0x50FB, 0xBBF7, 0x50FD, 0xE4F0, 0x50FE, 0xE4ED, 0x50FF, 0xE4E6, 0x5100, 0xBBF6, 0x5102, 0xBBFA, 0x5103, 0xE4E7, 0x5104, 0xBBF5, + 0x5105, 0xBBFD, 0x5106, 0xE4EA, 0x5107, 0xE4EB, 0x5108, 0xBBFB, 0x5109, 0xBBFC, 0x510A, 0xE4F1, 0x510B, 0xE4EE, 0x510C, 0xE4EF, + 0x5110, 0xBEAA, 0x5111, 0xE8F8, 0x5112, 0xBEA7, 0x5113, 0xE8F5, 0x5114, 0xBEA9, 0x5115, 0xBEAB, 0x5117, 0xE8F6, 0x5118, 0xBEA8, + 0x511A, 0xE8F7, 0x511C, 0xE8F4, 0x511F, 0xC076, 0x5120, 0xECBD, 0x5121, 0xC077, 0x5122, 0xECBB, 0x5124, 0xECBC, 0x5125, 0xECBA, + 0x5126, 0xECB9, 0x5129, 0xECBE, 0x512A, 0xC075, 0x512D, 0xEFB8, 0x512E, 0xEFB9, 0x5130, 0xE4E8, 0x5131, 0xEFB7, 0x5132, 0xC078, + 0x5133, 0xC35F, 0x5134, 0xF1EB, 0x5135, 0xF1EC, 0x5137, 0xC4D7, 0x5138, 0xC4D8, 0x5139, 0xF5C1, 0x513A, 0xF5C0, 0x513B, 0xC56C, + 0x513C, 0xC56B, 0x513D, 0xF7D0, 0x513F, 0xA449, 0x5140, 0xA461, 0x5141, 0xA4B9, 0x5143, 0xA4B8, 0x5144, 0xA553, 0x5145, 0xA552, + 0x5146, 0xA5FC, 0x5147, 0xA5FB, 0x5148, 0xA5FD, 0x5149, 0xA5FA, 0x514B, 0xA74A, 0x514C, 0xA749, 0x514D, 0xA74B, 0x5152, 0xA8E0, + 0x5154, 0xA8DF, 0x5155, 0xA8E1, 0x5157, 0xAB5E, 0x5159, 0xA259, 0x515A, 0xD0DE, 0x515B, 0xA25A, 0x515C, 0xB0C2, 0x515D, 0xA25C, + 0x515E, 0xA25B, 0x515F, 0xD860, 0x5161, 0xA25D, 0x5162, 0xB9B8, 0x5163, 0xA25E, 0x5165, 0xA44A, 0x5167, 0xA4BA, 0x5168, 0xA5FE, + 0x5169, 0xA8E2, 0x516B, 0xA44B, 0x516C, 0xA4BD, 0x516D, 0xA4BB, 0x516E, 0xA4BC, 0x5171, 0xA640, 0x5175, 0xA74C, 0x5176, 0xA8E4, + 0x5177, 0xA8E3, 0x5178, 0xA8E5, 0x517C, 0xADDD, 0x5180, 0xBEAC, 0x5187, 0xC94E, 0x5189, 0xA554, 0x518A, 0xA555, 0x518D, 0xA641, + 0x518F, 0xCA6A, 0x5191, 0xAB60, 0x5192, 0xAB5F, 0x5193, 0xD0E0, 0x5194, 0xD0DF, 0x5195, 0xB0C3, 0x5197, 0xA4BE, 0x5198, 0xC955, + 0x519E, 0xCBCD, 0x51A0, 0xAB61, 0x51A2, 0xADE0, 0x51A4, 0xADDE, 0x51A5, 0xADDF, 0x51AA, 0xBEAD, 0x51AC, 0xA556, 0x51B0, 0xA642, + 0x51B1, 0xC9BC, 0x51B6, 0xA74D, 0x51B7, 0xA74E, 0x51B9, 0xCA6B, 0x51BC, 0xCBCE, 0x51BD, 0xA8E6, 0x51BE, 0xCBCF, 0x51C4, 0xD0E2, + 0x51C5, 0xD0E3, 0x51C6, 0xADE3, 0x51C8, 0xD0E4, 0x51CA, 0xD0E1, 0x51CB, 0xADE4, 0x51CC, 0xADE2, 0x51CD, 0xADE1, 0x51CE, 0xD0E5, + 0x51D0, 0xD468, 0x51D4, 0xD861, 0x51D7, 0xDCC5, 0x51D8, 0xE140, 0x51DC, 0xBBFE, 0x51DD, 0xBEAE, 0x51DE, 0xE8F9, 0x51E0, 0xA44C, + 0x51E1, 0xA45A, 0x51F0, 0xB0C4, 0x51F1, 0xB3CD, 0x51F3, 0xB9B9, 0x51F5, 0xC942, 0x51F6, 0xA4BF, 0x51F8, 0xA559, 0x51F9, 0xA557, + 0x51FA, 0xA558, 0x51FD, 0xA8E7, 0x5200, 0xA44D, 0x5201, 0xA44E, 0x5203, 0xA462, 0x5206, 0xA4C0, 0x5207, 0xA4C1, 0x5208, 0xA4C2, + 0x5209, 0xC9BE, 0x520A, 0xA55A, 0x520C, 0xC96B, 0x520E, 0xA646, 0x5210, 0xC9BF, 0x5211, 0xA644, 0x5212, 0xA645, 0x5213, 0xC9BD, + 0x5216, 0xA647, 0x5217, 0xA643, 0x521C, 0xCA6C, 0x521D, 0xAAEC, 0x521E, 0xCA6D, 0x5221, 0xCA6E, 0x5224, 0xA750, 0x5225, 0xA74F, + 0x5228, 0xA753, 0x5229, 0xA751, 0x522A, 0xA752, 0x522E, 0xA8ED, 0x5230, 0xA8EC, 0x5231, 0xCBD4, 0x5232, 0xCBD1, 0x5233, 0xCBD2, + 0x5235, 0xCBD0, 0x5236, 0xA8EE, 0x5237, 0xA8EA, 0x5238, 0xA8E9, 0x523A, 0xA8EB, 0x523B, 0xA8E8, 0x5241, 0xA8EF, 0x5243, 0xAB63, + 0x5244, 0xCDF0, 0x5246, 0xCBD3, 0x5247, 0xAB68, 0x5249, 0xCDF1, 0x524A, 0xAB64, 0x524B, 0xAB67, 0x524C, 0xAB66, 0x524D, 0xAB65, + 0x524E, 0xAB62, 0x5252, 0xD0E8, 0x5254, 0xADE7, 0x5255, 0xD0EB, 0x5256, 0xADE5, 0x525A, 0xD0E7, 0x525B, 0xADE8, 0x525C, 0xADE6, + 0x525D, 0xADE9, 0x525E, 0xD0E9, 0x525F, 0xD0EA, 0x5261, 0xD0E6, 0x5262, 0xD0EC, 0x5269, 0xB3D1, 0x526A, 0xB0C5, 0x526B, 0xD469, + 0x526C, 0xD46B, 0x526D, 0xD46A, 0x526E, 0xD46C, 0x526F, 0xB0C6, 0x5272, 0xB3CE, 0x5274, 0xB3CF, 0x5275, 0xB3D0, 0x5277, 0xB6D0, + 0x5278, 0xDCC7, 0x527A, 0xDCC6, 0x527B, 0xDCC8, 0x527C, 0xDCC9, 0x527D, 0xB6D1, 0x527F, 0xB6CF, 0x5280, 0xE141, 0x5281, 0xE142, + 0x5282, 0xB9BB, 0x5283, 0xB9BA, 0x5284, 0xE35A, 0x5287, 0xBC40, 0x5288, 0xBC41, 0x5289, 0xBC42, 0x528A, 0xBC44, 0x528B, 0xE4F2, + 0x528C, 0xE4F3, 0x528D, 0xBC43, 0x5291, 0xBEAF, 0x5293, 0xBEB0, 0x5296, 0xF1ED, 0x5297, 0xF5C3, 0x5298, 0xF5C2, 0x5299, 0xF7D1, + 0x529B, 0xA44F, 0x529F, 0xA55C, 0x52A0, 0xA55B, 0x52A3, 0xA648, 0x52A6, 0xC9C0, 0x52A9, 0xA755, 0x52AA, 0xA756, 0x52AB, 0xA754, + 0x52AC, 0xA757, 0x52AD, 0xCA6F, 0x52AE, 0xCA70, 0x52BB, 0xA8F1, 0x52BC, 0xCBD5, 0x52BE, 0xA8F0, 0x52C0, 0xCDF2, 0x52C1, 0xAB6C, + 0x52C2, 0xCDF3, 0x52C3, 0xAB6B, 0x52C7, 0xAB69, 0x52C9, 0xAB6A, 0x52CD, 0xD0ED, 0x52D2, 0xB0C7, 0x52D3, 0xD46E, 0x52D5, 0xB0CA, + 0x52D6, 0xD46D, 0x52D7, 0xB1E5, 0x52D8, 0xB0C9, 0x52D9, 0xB0C8, 0x52DB, 0xB3D4, 0x52DD, 0xB3D3, 0x52DE, 0xB3D2, 0x52DF, 0xB6D2, + 0x52E2, 0xB6D5, 0x52E3, 0xB6D6, 0x52E4, 0xB6D4, 0x52E6, 0xB6D3, 0x52E9, 0xE143, 0x52EB, 0xE144, 0x52EF, 0xE4F5, 0x52F0, 0xBC45, + 0x52F1, 0xE4F4, 0x52F3, 0xBEB1, 0x52F4, 0xECBF, 0x52F5, 0xC079, 0x52F7, 0xF1EE, 0x52F8, 0xC455, 0x52FA, 0xA463, 0x52FB, 0xA4C3, + 0x52FC, 0xC956, 0x52FE, 0xA4C4, 0x52FF, 0xA4C5, 0x5305, 0xA55D, 0x5306, 0xA55E, 0x5308, 0xA649, 0x5309, 0xCA71, 0x530A, 0xCBD6, + 0x530B, 0xCBD7, 0x530D, 0xAB6D, 0x530E, 0xD0EE, 0x530F, 0xB0CC, 0x5310, 0xB0CB, 0x5311, 0xD863, 0x5312, 0xD862, 0x5315, 0xA450, + 0x5316, 0xA4C6, 0x5317, 0xA55F, 0x5319, 0xB0CD, 0x531A, 0xC943, 0x531C, 0xC96C, 0x531D, 0xA560, 0x531F, 0xC9C2, 0x5320, 0xA64B, + 0x5321, 0xA64A, 0x5322, 0xC9C1, 0x5323, 0xA758, 0x532A, 0xADEA, 0x532D, 0xD46F, 0x532F, 0xB6D7, 0x5330, 0xE145, 0x5331, 0xB9BC, + 0x5334, 0xE8FA, 0x5337, 0xF3FD, 0x5339, 0xA4C7, 0x533C, 0xCBD8, 0x533D, 0xCDF4, 0x533E, 0xB0D0, 0x533F, 0xB0CE, 0x5340, 0xB0CF, + 0x5341, 0xA2CC, 0x5341, 0xA451, 0x5343, 0xA464, 0x5344, 0xA2CD, 0x5345, 0xA2CE, 0x5345, 0xA4CA, 0x5347, 0xA4C9, 0x5348, 0xA4C8, + 0x5349, 0xA563, 0x534A, 0xA562, 0x534C, 0xC96D, 0x534D, 0xC9C3, 0x5351, 0xA8F5, 0x5352, 0xA8F2, 0x5353, 0xA8F4, 0x5354, 0xA8F3, + 0x5357, 0xAB6E, 0x535A, 0xB3D5, 0x535C, 0xA452, 0x535E, 0xA4CB, 0x5360, 0xA565, 0x5361, 0xA564, 0x5363, 0xCA72, 0x5366, 0xA8F6, + 0x536C, 0xC957, 0x536E, 0xA567, 0x536F, 0xA566, 0x5370, 0xA64C, 0x5371, 0xA64D, 0x5372, 0xCA73, 0x5373, 0xA759, 0x5375, 0xA75A, + 0x5377, 0xA8F7, 0x5378, 0xA8F8, 0x5379, 0xA8F9, 0x537B, 0xAB6F, 0x537C, 0xCDF5, 0x537F, 0xADEB, 0x5382, 0xC944, 0x5384, 0xA4CC, + 0x538A, 0xC9C4, 0x538E, 0xCA74, 0x538F, 0xCA75, 0x5392, 0xCBD9, 0x5394, 0xCBDA, 0x5396, 0xCDF7, 0x5397, 0xCDF6, 0x5398, 0xCDF9, + 0x5399, 0xCDF8, 0x539A, 0xAB70, 0x539C, 0xD470, 0x539D, 0xADED, 0x539E, 0xD0EF, 0x539F, 0xADEC, 0x53A4, 0xD864, 0x53A5, 0xB3D6, + 0x53A7, 0xD865, 0x53AC, 0xE146, 0x53AD, 0xB9BD, 0x53B2, 0xBC46, 0x53B4, 0xF1EF, 0x53B9, 0xC958, 0x53BB, 0xA568, 0x53C3, 0xB0D1, + 0x53C8, 0xA453, 0x53C9, 0xA465, 0x53CA, 0xA4CE, 0x53CB, 0xA4CD, 0x53CD, 0xA4CF, 0x53D4, 0xA8FB, 0x53D6, 0xA8FA, 0x53D7, 0xA8FC, + 0x53DB, 0xAB71, 0x53DF, 0xADEE, 0x53E1, 0xE8FB, 0x53E2, 0xC24F, 0x53E3, 0xA466, 0x53E4, 0xA56A, 0x53E5, 0xA579, 0x53E6, 0xA574, + 0x53E8, 0xA56F, 0x53E9, 0xA56E, 0x53EA, 0xA575, 0x53EB, 0xA573, 0x53EC, 0xA56C, 0x53ED, 0xA57A, 0x53EE, 0xA56D, 0x53EF, 0xA569, + 0x53F0, 0xA578, 0x53F1, 0xA577, 0x53F2, 0xA576, 0x53F3, 0xA56B, 0x53F5, 0xA572, 0x53F8, 0xA571, 0x53FB, 0xA57B, 0x53FC, 0xA570, + 0x5401, 0xA653, 0x5403, 0xA659, 0x5404, 0xA655, 0x5406, 0xA65B, 0x5407, 0xC9C5, 0x5408, 0xA658, 0x5409, 0xA64E, 0x540A, 0xA651, + 0x540B, 0xA654, 0x540C, 0xA650, 0x540D, 0xA657, 0x540E, 0xA65A, 0x540F, 0xA64F, 0x5410, 0xA652, 0x5411, 0xA656, 0x5412, 0xA65C, + 0x5418, 0xCA7E, 0x5419, 0xCA7B, 0x541B, 0xA767, 0x541C, 0xCA7C, 0x541D, 0xA75B, 0x541E, 0xA75D, 0x541F, 0xA775, 0x5420, 0xA770, + 0x5424, 0xCAA5, 0x5425, 0xCA7D, 0x5426, 0xA75F, 0x5427, 0xA761, 0x5428, 0xCAA4, 0x5429, 0xA768, 0x542A, 0xCA78, 0x542B, 0xA774, + 0x542C, 0xA776, 0x542D, 0xA75C, 0x542E, 0xA76D, 0x5430, 0xCA76, 0x5431, 0xA773, 0x5433, 0xA764, 0x5435, 0xA76E, 0x5436, 0xA76F, + 0x5437, 0xCA77, 0x5438, 0xA76C, 0x5439, 0xA76A, 0x543B, 0xA76B, 0x543C, 0xA771, 0x543D, 0xCAA1, 0x543E, 0xA75E, 0x5440, 0xA772, + 0x5441, 0xCAA3, 0x5442, 0xA766, 0x5443, 0xA763, 0x5445, 0xCA7A, 0x5446, 0xA762, 0x5447, 0xCAA6, 0x5448, 0xA765, 0x544A, 0xA769, + 0x544E, 0xA760, 0x544F, 0xCAA2, 0x5454, 0xCA79, 0x5460, 0xCBEB, 0x5461, 0xCBEA, 0x5462, 0xA94F, 0x5463, 0xCBED, 0x5464, 0xCBEF, + 0x5465, 0xCBE4, 0x5466, 0xCBE7, 0x5467, 0xCBEE, 0x5468, 0xA950, 0x546B, 0xCBE1, 0x546C, 0xCBE5, 0x546F, 0xCBE9, 0x5470, 0xCE49, + 0x5471, 0xA94B, 0x5472, 0xCE4D, 0x5473, 0xA8FD, 0x5474, 0xCBE6, 0x5475, 0xA8FE, 0x5476, 0xA94C, 0x5477, 0xA945, 0x5478, 0xA941, + 0x547A, 0xCBE2, 0x547B, 0xA944, 0x547C, 0xA949, 0x547D, 0xA952, 0x547E, 0xCBE3, 0x547F, 0xCBDC, 0x5480, 0xA943, 0x5481, 0xCBDD, + 0x5482, 0xCBDF, 0x5484, 0xA946, 0x5486, 0xA948, 0x5487, 0xCBDB, 0x5488, 0xCBE0, 0x548B, 0xA951, 0x548C, 0xA94D, 0x548D, 0xCBE8, + 0x548E, 0xA953, 0x5490, 0xA94A, 0x5491, 0xCBDE, 0x5492, 0xA947, 0x5495, 0xA942, 0x5496, 0xA940, 0x5498, 0xCBEC, 0x549A, 0xA94E, + 0x54A0, 0xCE48, 0x54A1, 0xCDFB, 0x54A2, 0xCE4B, 0x54A5, 0xCDFD, 0x54A6, 0xAB78, 0x54A7, 0xABA8, 0x54A8, 0xAB74, 0x54A9, 0xABA7, + 0x54AA, 0xAB7D, 0x54AB, 0xABA4, 0x54AC, 0xAB72, 0x54AD, 0xCDFC, 0x54AE, 0xCE43, 0x54AF, 0xABA3, 0x54B0, 0xCE4F, 0x54B1, 0xABA5, + 0x54B3, 0xAB79, 0x54B6, 0xCE45, 0x54B7, 0xCE42, 0x54B8, 0xAB77, 0x54BA, 0xCDFA, 0x54BB, 0xABA6, 0x54BC, 0xCE4A, 0x54BD, 0xAB7C, + 0x54BE, 0xCE4C, 0x54BF, 0xABA9, 0x54C0, 0xAB73, 0x54C1, 0xAB7E, 0x54C2, 0xAB7B, 0x54C3, 0xCE40, 0x54C4, 0xABA1, 0x54C5, 0xCE46, + 0x54C6, 0xCE47, 0x54C7, 0xAB7A, 0x54C8, 0xABA2, 0x54C9, 0xAB76, 0x54CE, 0xAB75, 0x54CF, 0xCDFE, 0x54D6, 0xCE44, 0x54DE, 0xCE4E, + 0x54E0, 0xD144, 0x54E1, 0xADFB, 0x54E2, 0xD0F1, 0x54E4, 0xD0F6, 0x54E5, 0xADF4, 0x54E6, 0xAE40, 0x54E7, 0xD0F4, 0x54E8, 0xADEF, + 0x54E9, 0xADF9, 0x54EA, 0xADFE, 0x54EB, 0xD0FB, 0x54ED, 0xADFA, 0x54EE, 0xADFD, 0x54F1, 0xD0FE, 0x54F2, 0xADF5, 0x54F3, 0xD0F5, + 0x54F7, 0xD142, 0x54F8, 0xD143, 0x54FA, 0xADF7, 0x54FB, 0xD141, 0x54FC, 0xADF3, 0x54FD, 0xAE43, 0x54FF, 0xD0F8, 0x5501, 0xADF1, + 0x5503, 0xD146, 0x5504, 0xD0F9, 0x5505, 0xD0FD, 0x5506, 0xADF6, 0x5507, 0xAE42, 0x5508, 0xD0FA, 0x5509, 0xADFC, 0x550A, 0xD140, + 0x550B, 0xD147, 0x550C, 0xD4A1, 0x550E, 0xD145, 0x550F, 0xAE44, 0x5510, 0xADF0, 0x5511, 0xD0FC, 0x5512, 0xD0F3, 0x5514, 0xADF8, + 0x5517, 0xD0F2, 0x551A, 0xD0F7, 0x5526, 0xD0F0, 0x5527, 0xAE41, 0x552A, 0xD477, 0x552C, 0xB0E4, 0x552D, 0xD4A7, 0x552E, 0xB0E2, + 0x552F, 0xB0DF, 0x5530, 0xD47C, 0x5531, 0xB0DB, 0x5532, 0xD4A2, 0x5533, 0xB0E6, 0x5534, 0xD476, 0x5535, 0xD47B, 0x5536, 0xD47A, + 0x5537, 0xADF2, 0x5538, 0xB0E1, 0x5539, 0xD4A5, 0x553B, 0xD4A8, 0x553C, 0xD473, 0x553E, 0xB3E8, 0x5540, 0xD4A9, 0x5541, 0xB0E7, + 0x5543, 0xB0D9, 0x5544, 0xB0D6, 0x5545, 0xD47E, 0x5546, 0xB0D3, 0x5548, 0xD4A6, 0x554A, 0xB0DA, 0x554B, 0xD4AA, 0x554D, 0xD474, + 0x554E, 0xD4A4, 0x554F, 0xB0DD, 0x5550, 0xD475, 0x5551, 0xD478, 0x5552, 0xD47D, 0x5555, 0xB0DE, 0x5556, 0xB0DC, 0x5557, 0xB0E8, + 0x555C, 0xB0E3, 0x555E, 0xB0D7, 0x555F, 0xB1D2, 0x5561, 0xB0D8, 0x5562, 0xD479, 0x5563, 0xB0E5, 0x5564, 0xB0E0, 0x5565, 0xD4A3, + 0x5566, 0xB0D5, 0x556A, 0xB0D4, 0x5575, 0xD471, 0x5576, 0xD472, 0x5577, 0xD86A, 0x557B, 0xB3D7, 0x557C, 0xB3DA, 0x557D, 0xD875, + 0x557E, 0xB3EE, 0x557F, 0xD878, 0x5580, 0xB3D8, 0x5581, 0xD871, 0x5582, 0xB3DE, 0x5583, 0xB3E4, 0x5584, 0xB5BD, 0x5587, 0xB3E2, + 0x5588, 0xD86E, 0x5589, 0xB3EF, 0x558A, 0xB3DB, 0x558B, 0xB3E3, 0x558C, 0xD876, 0x558D, 0xDCD7, 0x558E, 0xD87B, 0x558F, 0xD86F, + 0x5591, 0xD866, 0x5592, 0xD873, 0x5593, 0xD86D, 0x5594, 0xB3E1, 0x5595, 0xD879, 0x5598, 0xB3DD, 0x5599, 0xB3F1, 0x559A, 0xB3EA, + 0x559C, 0xB3DF, 0x559D, 0xB3DC, 0x559F, 0xB3E7, 0x55A1, 0xD87A, 0x55A2, 0xD86C, 0x55A3, 0xD872, 0x55A4, 0xD874, 0x55A5, 0xD868, + 0x55A6, 0xD877, 0x55A7, 0xB3D9, 0x55A8, 0xD867, 0x55AA, 0xB3E0, 0x55AB, 0xB3F0, 0x55AC, 0xB3EC, 0x55AD, 0xD869, 0x55AE, 0xB3E6, + 0x55B1, 0xB3ED, 0x55B2, 0xB3E9, 0x55B3, 0xB3E5, 0x55B5, 0xD870, 0x55BB, 0xB3EB, 0x55BF, 0xDCD5, 0x55C0, 0xDCD1, 0x55C2, 0xDCE0, + 0x55C3, 0xDCCA, 0x55C4, 0xDCD3, 0x55C5, 0xB6E5, 0x55C6, 0xB6E6, 0x55C7, 0xB6DE, 0x55C8, 0xDCDC, 0x55C9, 0xB6E8, 0x55CA, 0xDCCF, + 0x55CB, 0xDCCE, 0x55CC, 0xDCCC, 0x55CD, 0xDCDE, 0x55CE, 0xB6DC, 0x55CF, 0xDCD8, 0x55D0, 0xDCCD, 0x55D1, 0xB6DF, 0x55D2, 0xDCD6, + 0x55D3, 0xB6DA, 0x55D4, 0xDCD2, 0x55D5, 0xDCD9, 0x55D6, 0xDCDB, 0x55D9, 0xDCDF, 0x55DA, 0xB6E3, 0x55DB, 0xDCCB, 0x55DC, 0xB6DD, + 0x55DD, 0xDCD0, 0x55DF, 0xB6D8, 0x55E1, 0xB6E4, 0x55E2, 0xDCDA, 0x55E3, 0xB6E0, 0x55E4, 0xB6E1, 0x55E5, 0xB6E7, 0x55E6, 0xB6DB, + 0x55E7, 0xA25F, 0x55E8, 0xB6D9, 0x55E9, 0xDCD4, 0x55EF, 0xB6E2, 0x55F2, 0xDCDD, 0x55F6, 0xB9CD, 0x55F7, 0xB9C8, 0x55F9, 0xE155, + 0x55FA, 0xE151, 0x55FC, 0xE14B, 0x55FD, 0xB9C2, 0x55FE, 0xB9BE, 0x55FF, 0xE154, 0x5600, 0xB9BF, 0x5601, 0xE14E, 0x5602, 0xE150, + 0x5604, 0xE153, 0x5606, 0xB9C4, 0x5608, 0xB9CB, 0x5609, 0xB9C5, 0x560C, 0xE149, 0x560D, 0xB9C6, 0x560E, 0xB9C7, 0x560F, 0xE14C, + 0x5610, 0xB9CC, 0x5612, 0xE14A, 0x5613, 0xE14F, 0x5614, 0xB9C3, 0x5615, 0xE148, 0x5616, 0xB9C9, 0x5617, 0xB9C1, 0x561B, 0xB9C0, + 0x561C, 0xE14D, 0x561D, 0xE152, 0x561F, 0xB9CA, 0x5627, 0xE147, 0x5629, 0xBC4D, 0x562A, 0xE547, 0x562C, 0xE544, 0x562E, 0xBC47, + 0x562F, 0xBC53, 0x5630, 0xBC54, 0x5632, 0xBC4A, 0x5633, 0xE542, 0x5634, 0xBC4C, 0x5635, 0xE4F9, 0x5636, 0xBC52, 0x5638, 0xE546, + 0x5639, 0xBC49, 0x563A, 0xE548, 0x563B, 0xBC48, 0x563D, 0xE543, 0x563E, 0xE545, 0x563F, 0xBC4B, 0x5640, 0xE541, 0x5641, 0xE4FA, + 0x5642, 0xE4F7, 0x5645, 0xD86B, 0x5646, 0xE4FD, 0x5648, 0xE4F6, 0x5649, 0xE4FC, 0x564A, 0xE4FB, 0x564C, 0xE4F8, 0x564E, 0xBC4F, + 0x5653, 0xBC4E, 0x5657, 0xBC50, 0x5658, 0xE4FE, 0x5659, 0xBEB2, 0x565A, 0xE540, 0x565E, 0xE945, 0x5660, 0xE8FD, 0x5662, 0xBEBE, + 0x5663, 0xE942, 0x5664, 0xBEB6, 0x5665, 0xBEBA, 0x5666, 0xE941, 0x5668, 0xBEB9, 0x5669, 0xBEB5, 0x566A, 0xBEB8, 0x566B, 0xBEB3, + 0x566C, 0xBEBD, 0x566D, 0xE943, 0x566E, 0xE8FE, 0x566F, 0xBEBC, 0x5670, 0xE8FC, 0x5671, 0xBEBB, 0x5672, 0xE944, 0x5673, 0xE940, + 0x5674, 0xBC51, 0x5676, 0xBEBF, 0x5677, 0xE946, 0x5678, 0xBEB7, 0x5679, 0xBEB4, 0x567E, 0xECC6, 0x567F, 0xECC8, 0x5680, 0xC07B, + 0x5681, 0xECC9, 0x5682, 0xECC7, 0x5683, 0xECC5, 0x5684, 0xECC4, 0x5685, 0xC07D, 0x5686, 0xECC3, 0x5687, 0xC07E, 0x568C, 0xECC1, + 0x568D, 0xECC2, 0x568E, 0xC07A, 0x568F, 0xC0A1, 0x5690, 0xC07C, 0x5693, 0xECC0, 0x5695, 0xC250, 0x5697, 0xEFBC, 0x5698, 0xEFBA, + 0x5699, 0xEFBF, 0x569A, 0xEFBD, 0x569C, 0xEFBB, 0x569D, 0xEFBE, 0x56A5, 0xC360, 0x56A6, 0xF1F2, 0x56A7, 0xF1F3, 0x56A8, 0xC456, + 0x56AA, 0xF1F4, 0x56AB, 0xF1F0, 0x56AC, 0xF1F5, 0x56AD, 0xF1F1, 0x56AE, 0xC251, 0x56B2, 0xF3FE, 0x56B3, 0xF441, 0x56B4, 0xC459, + 0x56B5, 0xF440, 0x56B6, 0xC458, 0x56B7, 0xC457, 0x56BC, 0xC45A, 0x56BD, 0xF5C5, 0x56BE, 0xF5C6, 0x56C0, 0xC4DA, 0x56C1, 0xC4D9, + 0x56C2, 0xC4DB, 0x56C3, 0xF5C4, 0x56C5, 0xF6D8, 0x56C6, 0xF6D7, 0x56C8, 0xC56D, 0x56C9, 0xC56F, 0x56CA, 0xC56E, 0x56CB, 0xF6D9, + 0x56CC, 0xC5C8, 0x56CD, 0xF8A6, 0x56D1, 0xC5F1, 0x56D3, 0xF8A5, 0x56D4, 0xF8EE, 0x56D7, 0xC949, 0x56DA, 0xA57D, 0x56DB, 0xA57C, + 0x56DD, 0xA65F, 0x56DE, 0xA65E, 0x56DF, 0xC9C7, 0x56E0, 0xA65D, 0x56E1, 0xC9C6, 0x56E4, 0xA779, 0x56E5, 0xCAA9, 0x56E7, 0xCAA8, + 0x56EA, 0xA777, 0x56EB, 0xA77A, 0x56EE, 0xCAA7, 0x56F0, 0xA778, 0x56F7, 0xCBF0, 0x56F9, 0xCBF1, 0x56FA, 0xA954, 0x56FF, 0xABAA, + 0x5701, 0xD148, 0x5702, 0xD149, 0x5703, 0xAE45, 0x5704, 0xAE46, 0x5707, 0xD4AC, 0x5708, 0xB0E9, 0x5709, 0xB0EB, 0x570A, 0xD4AB, + 0x570B, 0xB0EA, 0x570C, 0xD87C, 0x570D, 0xB3F2, 0x5712, 0xB6E9, 0x5713, 0xB6EA, 0x5714, 0xDCE1, 0x5716, 0xB9CF, 0x5718, 0xB9CE, + 0x571A, 0xE549, 0x571B, 0xE948, 0x571C, 0xE947, 0x571E, 0xF96B, 0x571F, 0xA467, 0x5720, 0xC959, 0x5722, 0xC96E, 0x5723, 0xC96F, + 0x5728, 0xA662, 0x5729, 0xA666, 0x572A, 0xC9C9, 0x572C, 0xA664, 0x572D, 0xA663, 0x572E, 0xC9C8, 0x572F, 0xA665, 0x5730, 0xA661, + 0x5733, 0xA660, 0x5734, 0xC9CA, 0x573B, 0xA7A6, 0x573E, 0xA7A3, 0x5740, 0xA77D, 0x5741, 0xCAAA, 0x5745, 0xCAAB, 0x5747, 0xA7A1, + 0x5749, 0xCAAD, 0x574A, 0xA77B, 0x574B, 0xCAAE, 0x574C, 0xCAAC, 0x574D, 0xA77E, 0x574E, 0xA7A2, 0x574F, 0xA7A5, 0x5750, 0xA7A4, + 0x5751, 0xA77C, 0x5752, 0xCAAF, 0x5761, 0xA959, 0x5762, 0xCBFE, 0x5764, 0xA95B, 0x5766, 0xA95A, 0x5768, 0xCC40, 0x5769, 0xA958, + 0x576A, 0xA957, 0x576B, 0xCBF5, 0x576D, 0xCBF4, 0x576F, 0xCBF2, 0x5770, 0xCBF7, 0x5771, 0xCBF6, 0x5772, 0xCBF3, 0x5773, 0xCBFC, + 0x5774, 0xCBFD, 0x5775, 0xCBFA, 0x5776, 0xCBF8, 0x5777, 0xA956, 0x577B, 0xCBFB, 0x577C, 0xA95C, 0x577D, 0xCC41, 0x5780, 0xCBF9, + 0x5782, 0xABAB, 0x5783, 0xA955, 0x578B, 0xABAC, 0x578C, 0xCE54, 0x578F, 0xCE5A, 0x5793, 0xABB2, 0x5794, 0xCE58, 0x5795, 0xCE5E, + 0x5797, 0xCE55, 0x5798, 0xCE59, 0x5799, 0xCE5B, 0x579A, 0xCE5D, 0x579B, 0xCE57, 0x579D, 0xCE56, 0x579E, 0xCE51, 0x579F, 0xCE52, + 0x57A0, 0xABAD, 0x57A2, 0xABAF, 0x57A3, 0xABAE, 0x57A4, 0xCE53, 0x57A5, 0xCE5C, 0x57AE, 0xABB1, 0x57B5, 0xCE50, 0x57B6, 0xD153, + 0x57B8, 0xD152, 0x57B9, 0xD157, 0x57BA, 0xD14E, 0x57BC, 0xD151, 0x57BD, 0xD150, 0x57BF, 0xD154, 0x57C1, 0xD158, 0x57C2, 0xAE47, + 0x57C3, 0xAE4A, 0x57C6, 0xD14F, 0x57C7, 0xD155, 0x57CB, 0xAE49, 0x57CC, 0xD14A, 0x57CE, 0xABB0, 0x57CF, 0xD4BA, 0x57D0, 0xD156, + 0x57D2, 0xD14D, 0x57D4, 0xAE48, 0x57D5, 0xD14C, 0x57DC, 0xD4B1, 0x57DF, 0xB0EC, 0x57E0, 0xB0F0, 0x57E1, 0xD4C1, 0x57E2, 0xD4AF, + 0x57E3, 0xD4BD, 0x57E4, 0xB0F1, 0x57E5, 0xD4BF, 0x57E7, 0xD4C5, 0x57E9, 0xD4C9, 0x57EC, 0xD4C0, 0x57ED, 0xD4B4, 0x57EE, 0xD4BC, + 0x57F0, 0xD4CA, 0x57F1, 0xD4C8, 0x57F2, 0xD4BE, 0x57F3, 0xD4B9, 0x57F4, 0xD4B2, 0x57F5, 0xD8A6, 0x57F6, 0xD4B0, 0x57F7, 0xB0F5, + 0x57F8, 0xD4B7, 0x57F9, 0xB0F6, 0x57FA, 0xB0F2, 0x57FB, 0xD4AD, 0x57FC, 0xD4C3, 0x57FD, 0xD4B5, 0x5800, 0xD4B3, 0x5801, 0xD4C6, + 0x5802, 0xB0F3, 0x5804, 0xD4CC, 0x5805, 0xB0ED, 0x5806, 0xB0EF, 0x5807, 0xD4BB, 0x5808, 0xD4B6, 0x5809, 0xAE4B, 0x580A, 0xB0EE, + 0x580B, 0xD4B8, 0x580C, 0xD4C7, 0x580D, 0xD4CB, 0x580E, 0xD4C2, 0x5810, 0xD4C4, 0x5814, 0xD4AE, 0x5819, 0xD8A1, 0x581B, 0xD8AA, + 0x581C, 0xD8A9, 0x581D, 0xB3FA, 0x581E, 0xD8A2, 0x5820, 0xB3FB, 0x5821, 0xB3F9, 0x5823, 0xD8A4, 0x5824, 0xB3F6, 0x5825, 0xD8A8, + 0x5827, 0xD8A3, 0x5828, 0xD8A5, 0x5829, 0xD87D, 0x582A, 0xB3F4, 0x582C, 0xD8B2, 0x582D, 0xD8B1, 0x582E, 0xD8AE, 0x582F, 0xB3F3, + 0x5830, 0xB3F7, 0x5831, 0xB3F8, 0x5832, 0xD14B, 0x5833, 0xD8AB, 0x5834, 0xB3F5, 0x5835, 0xB0F4, 0x5836, 0xD8AD, 0x5837, 0xD87E, + 0x5838, 0xD8B0, 0x5839, 0xD8AF, 0x583B, 0xD8B3, 0x583D, 0xDCEF, 0x583F, 0xD8AC, 0x5848, 0xD8A7, 0x5849, 0xDCE7, 0x584A, 0xB6F4, + 0x584B, 0xB6F7, 0x584C, 0xB6F2, 0x584D, 0xDCE6, 0x584E, 0xDCEA, 0x584F, 0xDCE5, 0x5851, 0xB6EC, 0x5852, 0xB6F6, 0x5853, 0xDCE2, + 0x5854, 0xB6F0, 0x5855, 0xDCE9, 0x5857, 0xB6EE, 0x5858, 0xB6ED, 0x5859, 0xDCEC, 0x585A, 0xB6EF, 0x585B, 0xDCEE, 0x585D, 0xDCEB, + 0x585E, 0xB6EB, 0x5862, 0xB6F5, 0x5863, 0xDCF0, 0x5864, 0xDCE4, 0x5865, 0xDCED, 0x5868, 0xDCE3, 0x586B, 0xB6F1, 0x586D, 0xB6F3, + 0x586F, 0xDCE8, 0x5871, 0xDCF1, 0x5874, 0xE15D, 0x5875, 0xB9D0, 0x5876, 0xE163, 0x5879, 0xB9D5, 0x587A, 0xE15F, 0x587B, 0xE166, + 0x587C, 0xE157, 0x587D, 0xB9D7, 0x587E, 0xB9D1, 0x587F, 0xE15C, 0x5880, 0xBC55, 0x5881, 0xE15B, 0x5882, 0xE164, 0x5883, 0xB9D2, + 0x5885, 0xB9D6, 0x5886, 0xE15A, 0x5887, 0xE160, 0x5888, 0xE165, 0x5889, 0xE156, 0x588A, 0xB9D4, 0x588B, 0xE15E, 0x588E, 0xE162, + 0x588F, 0xE168, 0x5890, 0xE158, 0x5891, 0xE161, 0x5893, 0xB9D3, 0x5894, 0xE167, 0x5898, 0xE159, 0x589C, 0xBC59, 0x589D, 0xE54B, + 0x589E, 0xBC57, 0x589F, 0xBC56, 0x58A0, 0xE54D, 0x58A1, 0xE552, 0x58A3, 0xE54E, 0x58A5, 0xE551, 0x58A6, 0xBC5C, 0x58A8, 0xBEA5, + 0x58A9, 0xBC5B, 0x58AB, 0xE54A, 0x58AC, 0xE550, 0x58AE, 0xBC5A, 0x58AF, 0xE54F, 0x58B1, 0xE54C, 0x58B3, 0xBC58, 0x58BA, 0xE94D, + 0x58BB, 0xF9D9, 0x58BC, 0xE94F, 0x58BD, 0xE94A, 0x58BE, 0xBEC1, 0x58BF, 0xE94C, 0x58C1, 0xBEC0, 0x58C2, 0xE94E, 0x58C5, 0xBEC3, + 0x58C6, 0xE950, 0x58C7, 0xBEC2, 0x58C8, 0xE949, 0x58C9, 0xE94B, 0x58CE, 0xC0A5, 0x58CF, 0xECCC, 0x58D1, 0xC0A4, 0x58D2, 0xECCD, + 0x58D3, 0xC0A3, 0x58D4, 0xECCB, 0x58D5, 0xC0A2, 0x58D6, 0xECCA, 0x58D8, 0xC253, 0x58D9, 0xC252, 0x58DA, 0xF1F6, 0x58DB, 0xF1F8, + 0x58DD, 0xF1F7, 0x58DE, 0xC361, 0x58DF, 0xC362, 0x58E2, 0xC363, 0x58E3, 0xF442, 0x58E4, 0xC45B, 0x58E7, 0xF7D3, 0x58E8, 0xF7D2, + 0x58E9, 0xC5F2, 0x58EB, 0xA468, 0x58EC, 0xA4D0, 0x58EF, 0xA7A7, 0x58F4, 0xCE5F, 0x58F9, 0xB3FC, 0x58FA, 0xB3FD, 0x58FC, 0xDCF2, + 0x58FD, 0xB9D8, 0x58FE, 0xE169, 0x58FF, 0xE553, 0x5903, 0xC95A, 0x5906, 0xCAB0, 0x590C, 0xCC42, 0x590D, 0xCE60, 0x590E, 0xD159, + 0x590F, 0xAE4C, 0x5912, 0xF1F9, 0x5914, 0xC4DC, 0x5915, 0xA469, 0x5916, 0xA57E, 0x5917, 0xC970, 0x5919, 0xA667, 0x591A, 0xA668, + 0x591C, 0xA95D, 0x5920, 0xB0F7, 0x5922, 0xB9DA, 0x5924, 0xB9DB, 0x5925, 0xB9D9, 0x5927, 0xA46A, 0x5929, 0xA4D1, 0x592A, 0xA4D3, + 0x592B, 0xA4D2, 0x592C, 0xC95B, 0x592D, 0xA4D4, 0x592E, 0xA5A1, 0x592F, 0xC971, 0x5931, 0xA5A2, 0x5937, 0xA669, 0x5938, 0xA66A, + 0x593C, 0xC9CB, 0x593E, 0xA7A8, 0x5940, 0xCAB1, 0x5944, 0xA961, 0x5945, 0xCC43, 0x5947, 0xA95F, 0x5948, 0xA960, 0x5949, 0xA95E, + 0x594A, 0xD15A, 0x594E, 0xABB6, 0x594F, 0xABB5, 0x5950, 0xABB7, 0x5951, 0xABB4, 0x5953, 0xCE61, 0x5954, 0xA962, 0x5955, 0xABB3, + 0x5957, 0xAE4D, 0x5958, 0xAE4E, 0x595A, 0xAE4F, 0x595C, 0xD4CD, 0x5960, 0xB3FE, 0x5961, 0xD8B4, 0x5962, 0xB0F8, 0x5967, 0xB6F8, + 0x5969, 0xB9DD, 0x596A, 0xB9DC, 0x596B, 0xE16A, 0x596D, 0xBC5D, 0x596E, 0xBEC4, 0x5970, 0xEFC0, 0x5971, 0xF6DA, 0x5972, 0xF7D4, + 0x5973, 0xA46B, 0x5974, 0xA5A3, 0x5976, 0xA5A4, 0x5977, 0xC9D1, 0x5978, 0xA66C, 0x5979, 0xA66F, 0x597B, 0xC9CF, 0x597C, 0xC9CD, + 0x597D, 0xA66E, 0x597E, 0xC9D0, 0x597F, 0xC9D2, 0x5980, 0xC9CC, 0x5981, 0xA671, 0x5982, 0xA670, 0x5983, 0xA66D, 0x5984, 0xA66B, + 0x5985, 0xC9CE, 0x598A, 0xA7B3, 0x598D, 0xA7B0, 0x598E, 0xCAB6, 0x598F, 0xCAB9, 0x5990, 0xCAB8, 0x5992, 0xA7AA, 0x5993, 0xA7B2, + 0x5996, 0xA7AF, 0x5997, 0xCAB5, 0x5998, 0xCAB3, 0x5999, 0xA7AE, 0x599D, 0xA7A9, 0x599E, 0xA7AC, 0x59A0, 0xCAB4, 0x59A1, 0xCABB, + 0x59A2, 0xCAB7, 0x59A3, 0xA7AD, 0x59A4, 0xA7B1, 0x59A5, 0xA7B4, 0x59A6, 0xCAB2, 0x59A7, 0xCABA, 0x59A8, 0xA7AB, 0x59AE, 0xA967, + 0x59AF, 0xA96F, 0x59B1, 0xCC4F, 0x59B2, 0xCC48, 0x59B3, 0xA970, 0x59B4, 0xCC53, 0x59B5, 0xCC44, 0x59B6, 0xCC4B, 0x59B9, 0xA966, + 0x59BA, 0xCC45, 0x59BB, 0xA964, 0x59BC, 0xCC4C, 0x59BD, 0xCC50, 0x59BE, 0xA963, 0x59C0, 0xCC51, 0x59C1, 0xCC4A, 0x59C3, 0xCC4D, + 0x59C5, 0xA972, 0x59C6, 0xA969, 0x59C7, 0xCC54, 0x59C8, 0xCC52, 0x59CA, 0xA96E, 0x59CB, 0xA96C, 0x59CC, 0xCC49, 0x59CD, 0xA96B, + 0x59CE, 0xCC47, 0x59CF, 0xCC46, 0x59D0, 0xA96A, 0x59D1, 0xA968, 0x59D2, 0xA971, 0x59D3, 0xA96D, 0x59D4, 0xA965, 0x59D6, 0xCC4E, + 0x59D8, 0xABB9, 0x59DA, 0xABC0, 0x59DB, 0xCE6F, 0x59DC, 0xABB8, 0x59DD, 0xCE67, 0x59DE, 0xCE63, 0x59E0, 0xCE73, 0x59E1, 0xCE62, + 0x59E3, 0xABBB, 0x59E4, 0xCE6C, 0x59E5, 0xABBE, 0x59E6, 0xABC1, 0x59E8, 0xABBC, 0x59E9, 0xCE70, 0x59EA, 0xABBF, 0x59EC, 0xAE56, + 0x59ED, 0xCE76, 0x59EE, 0xCE64, 0x59F1, 0xCE66, 0x59F2, 0xCE6D, 0x59F3, 0xCE71, 0x59F4, 0xCE75, 0x59F5, 0xCE72, 0x59F6, 0xCE6B, + 0x59F7, 0xCE6E, 0x59FA, 0xCE68, 0x59FB, 0xABC3, 0x59FC, 0xCE6A, 0x59FD, 0xCE69, 0x59FE, 0xCE74, 0x59FF, 0xABBA, 0x5A00, 0xCE65, + 0x5A01, 0xABC2, 0x5A03, 0xABBD, 0x5A09, 0xAE5C, 0x5A0A, 0xD162, 0x5A0C, 0xAE5B, 0x5A0F, 0xD160, 0x5A11, 0xAE50, 0x5A13, 0xAE55, + 0x5A15, 0xD15F, 0x5A16, 0xD15C, 0x5A17, 0xD161, 0x5A18, 0xAE51, 0x5A19, 0xD15B, 0x5A1B, 0xAE54, 0x5A1C, 0xAE52, 0x5A1E, 0xD163, + 0x5A1F, 0xAE53, 0x5A20, 0xAE57, 0x5A23, 0xAE58, 0x5A25, 0xAE5A, 0x5A29, 0xAE59, 0x5A2D, 0xD15D, 0x5A2E, 0xD15E, 0x5A33, 0xD164, + 0x5A35, 0xD4D4, 0x5A36, 0xB0F9, 0x5A37, 0xD8C2, 0x5A38, 0xD4D3, 0x5A39, 0xD4E6, 0x5A3C, 0xB140, 0x5A3E, 0xD4E4, 0x5A40, 0xB0FE, + 0x5A41, 0xB0FA, 0x5A42, 0xD4ED, 0x5A43, 0xD4DD, 0x5A44, 0xD4E0, 0x5A46, 0xB143, 0x5A47, 0xD4EA, 0x5A48, 0xD4E2, 0x5A49, 0xB0FB, + 0x5A4A, 0xB144, 0x5A4C, 0xD4E7, 0x5A4D, 0xD4E5, 0x5A50, 0xD4D6, 0x5A51, 0xD4EB, 0x5A52, 0xD4DF, 0x5A53, 0xD4DA, 0x5A55, 0xD4D0, + 0x5A56, 0xD4EC, 0x5A57, 0xD4DC, 0x5A58, 0xD4CF, 0x5A5A, 0xB142, 0x5A5B, 0xD4E1, 0x5A5C, 0xD4EE, 0x5A5D, 0xD4DE, 0x5A5E, 0xD4D2, + 0x5A5F, 0xD4D7, 0x5A60, 0xD4CE, 0x5A62, 0xB141, 0x5A64, 0xD4DB, 0x5A65, 0xD4D8, 0x5A66, 0xB0FC, 0x5A67, 0xD4D1, 0x5A69, 0xD4E9, + 0x5A6A, 0xB0FD, 0x5A6C, 0xD4D9, 0x5A6D, 0xD4D5, 0x5A70, 0xD4E8, 0x5A77, 0xB440, 0x5A78, 0xD8BB, 0x5A7A, 0xD8B8, 0x5A7B, 0xD8C9, + 0x5A7C, 0xD8BD, 0x5A7D, 0xD8CA, 0x5A7F, 0xB442, 0x5A83, 0xD8C6, 0x5A84, 0xD8C3, 0x5A8A, 0xD8C4, 0x5A8B, 0xD8C7, 0x5A8C, 0xD8CB, + 0x5A8E, 0xD4E3, 0x5A8F, 0xD8CD, 0x5A90, 0xDD47, 0x5A92, 0xB443, 0x5A93, 0xD8CE, 0x5A94, 0xD8B6, 0x5A95, 0xD8C0, 0x5A97, 0xD8C5, + 0x5A9A, 0xB441, 0x5A9B, 0xB444, 0x5A9C, 0xD8CC, 0x5A9D, 0xD8CF, 0x5A9E, 0xD8BA, 0x5A9F, 0xD8B7, 0x5AA2, 0xD8B9, 0x5AA5, 0xD8BE, + 0x5AA6, 0xD8BC, 0x5AA7, 0xB445, 0x5AA9, 0xD8C8, 0x5AAC, 0xD8BF, 0x5AAE, 0xD8C1, 0x5AAF, 0xD8B5, 0x5AB0, 0xDCFA, 0x5AB1, 0xDCF8, + 0x5AB2, 0xB742, 0x5AB3, 0xB740, 0x5AB4, 0xDD43, 0x5AB5, 0xDCF9, 0x5AB6, 0xDD44, 0x5AB7, 0xDD40, 0x5AB8, 0xDCF7, 0x5AB9, 0xDD46, + 0x5ABA, 0xDCF6, 0x5ABB, 0xDCFD, 0x5ABC, 0xB6FE, 0x5ABD, 0xB6FD, 0x5ABE, 0xB6FC, 0x5ABF, 0xDCFB, 0x5AC0, 0xDD41, 0x5AC1, 0xB6F9, + 0x5AC2, 0xB741, 0x5AC4, 0xDCF4, 0x5AC6, 0xDCFE, 0x5AC7, 0xDCF3, 0x5AC8, 0xDCFC, 0x5AC9, 0xB6FA, 0x5ACA, 0xDD42, 0x5ACB, 0xDCF5, + 0x5ACC, 0xB6FB, 0x5ACD, 0xDD45, 0x5AD5, 0xE16E, 0x5AD6, 0xB9E2, 0x5AD7, 0xB9E1, 0x5AD8, 0xB9E3, 0x5AD9, 0xE17A, 0x5ADA, 0xE170, + 0x5ADB, 0xE176, 0x5ADC, 0xE16B, 0x5ADD, 0xE179, 0x5ADE, 0xE178, 0x5ADF, 0xE17C, 0x5AE0, 0xE175, 0x5AE1, 0xB9DE, 0x5AE2, 0xE174, + 0x5AE3, 0xB9E4, 0x5AE5, 0xE16D, 0x5AE6, 0xB9DF, 0x5AE8, 0xE17B, 0x5AE9, 0xB9E0, 0x5AEA, 0xE16F, 0x5AEB, 0xE172, 0x5AEC, 0xE177, + 0x5AED, 0xE171, 0x5AEE, 0xE16C, 0x5AF3, 0xE173, 0x5AF4, 0xE555, 0x5AF5, 0xBC61, 0x5AF6, 0xE558, 0x5AF7, 0xE557, 0x5AF8, 0xE55A, + 0x5AF9, 0xE55C, 0x5AFA, 0xF9DC, 0x5AFB, 0xBC5F, 0x5AFD, 0xE556, 0x5AFF, 0xE554, 0x5B01, 0xE55D, 0x5B02, 0xE55B, 0x5B03, 0xE559, + 0x5B05, 0xE55F, 0x5B07, 0xE55E, 0x5B08, 0xBC63, 0x5B09, 0xBC5E, 0x5B0B, 0xBC60, 0x5B0C, 0xBC62, 0x5B0F, 0xE560, 0x5B10, 0xE957, + 0x5B13, 0xE956, 0x5B14, 0xE955, 0x5B16, 0xE958, 0x5B17, 0xE951, 0x5B19, 0xE952, 0x5B1A, 0xE95A, 0x5B1B, 0xE953, 0x5B1D, 0xBEC5, + 0x5B1E, 0xE95C, 0x5B20, 0xE95B, 0x5B21, 0xE954, 0x5B23, 0xECD1, 0x5B24, 0xC0A8, 0x5B25, 0xECCF, 0x5B26, 0xECD4, 0x5B27, 0xECD3, + 0x5B28, 0xE959, 0x5B2A, 0xC0A7, 0x5B2C, 0xECD2, 0x5B2D, 0xECCE, 0x5B2E, 0xECD6, 0x5B2F, 0xECD5, 0x5B30, 0xC0A6, 0x5B32, 0xECD0, + 0x5B34, 0xBEC6, 0x5B38, 0xC254, 0x5B3C, 0xEFC1, 0x5B3D, 0xF1FA, 0x5B3E, 0xF1FB, 0x5B3F, 0xF1FC, 0x5B40, 0xC45C, 0x5B43, 0xC45D, + 0x5B45, 0xF443, 0x5B47, 0xF5C8, 0x5B48, 0xF5C7, 0x5B4B, 0xF6DB, 0x5B4C, 0xF6DC, 0x5B4D, 0xF7D5, 0x5B4E, 0xF8A7, 0x5B50, 0xA46C, + 0x5B51, 0xA46D, 0x5B53, 0xA46E, 0x5B54, 0xA4D5, 0x5B55, 0xA5A5, 0x5B56, 0xC9D3, 0x5B57, 0xA672, 0x5B58, 0xA673, 0x5B5A, 0xA7B7, + 0x5B5B, 0xA7B8, 0x5B5C, 0xA7B6, 0x5B5D, 0xA7B5, 0x5B5F, 0xA973, 0x5B62, 0xCC55, 0x5B63, 0xA975, 0x5B64, 0xA974, 0x5B65, 0xCC56, + 0x5B69, 0xABC4, 0x5B6B, 0xAE5D, 0x5B6C, 0xD165, 0x5B6E, 0xD4F0, 0x5B70, 0xB145, 0x5B71, 0xB447, 0x5B72, 0xD4EF, 0x5B73, 0xB446, + 0x5B75, 0xB9E5, 0x5B77, 0xE17D, 0x5B78, 0xBEC7, 0x5B7A, 0xC0A9, 0x5B7B, 0xECD7, 0x5B7D, 0xC45E, 0x5B7F, 0xC570, 0x5B81, 0xC972, + 0x5B83, 0xA5A6, 0x5B84, 0xC973, 0x5B85, 0xA676, 0x5B87, 0xA674, 0x5B88, 0xA675, 0x5B89, 0xA677, 0x5B8B, 0xA7BA, 0x5B8C, 0xA7B9, + 0x5B8E, 0xCABC, 0x5B8F, 0xA7BB, 0x5B92, 0xCABD, 0x5B93, 0xCC57, 0x5B95, 0xCC58, 0x5B97, 0xA976, 0x5B98, 0xA978, 0x5B99, 0xA97A, + 0x5B9A, 0xA977, 0x5B9B, 0xA97B, 0x5B9C, 0xA979, 0x5BA2, 0xABC8, 0x5BA3, 0xABC5, 0x5BA4, 0xABC7, 0x5BA5, 0xABC9, 0x5BA6, 0xABC6, + 0x5BA7, 0xD166, 0x5BA8, 0xCE77, 0x5BAC, 0xD168, 0x5BAD, 0xD167, 0x5BAE, 0xAE63, 0x5BB0, 0xAE5F, 0x5BB3, 0xAE60, 0x5BB4, 0xAE62, + 0x5BB5, 0xAE64, 0x5BB6, 0xAE61, 0x5BB8, 0xAE66, 0x5BB9, 0xAE65, 0x5BBF, 0xB14A, 0x5BC0, 0xD4F2, 0x5BC1, 0xD4F1, 0x5BC2, 0xB149, + 0x5BC4, 0xB148, 0x5BC5, 0xB147, 0x5BC6, 0xB14B, 0x5BC7, 0xB146, 0x5BCA, 0xD8D5, 0x5BCB, 0xD8D2, 0x5BCC, 0xB449, 0x5BCD, 0xD8D1, + 0x5BCE, 0xD8D6, 0x5BD0, 0xB44B, 0x5BD1, 0xD8D4, 0x5BD2, 0xB448, 0x5BD3, 0xB44A, 0x5BD4, 0xD8D3, 0x5BD6, 0xDD48, 0x5BD8, 0xDD49, + 0x5BD9, 0xDD4A, 0x5BDE, 0xB9E6, 0x5BDF, 0xB9EE, 0x5BE0, 0xE17E, 0x5BE1, 0xB9E8, 0x5BE2, 0xB9EC, 0x5BE3, 0xE1A1, 0x5BE4, 0xB9ED, + 0x5BE5, 0xB9E9, 0x5BE6, 0xB9EA, 0x5BE7, 0xB9E7, 0x5BE8, 0xB9EB, 0x5BE9, 0xBC66, 0x5BEA, 0xD8D0, 0x5BEB, 0xBC67, 0x5BEC, 0xBC65, + 0x5BEE, 0xBC64, 0x5BEF, 0xE95D, 0x5BF0, 0xBEC8, 0x5BF1, 0xECD8, 0x5BF2, 0xECD9, 0x5BF5, 0xC364, 0x5BF6, 0xC45F, 0x5BF8, 0xA46F, + 0x5BFA, 0xA678, 0x5C01, 0xABCA, 0x5C03, 0xD169, 0x5C04, 0xAE67, 0x5C07, 0xB14E, 0x5C08, 0xB14D, 0x5C09, 0xB14C, 0x5C0A, 0xB44C, + 0x5C0B, 0xB44D, 0x5C0C, 0xD8D7, 0x5C0D, 0xB9EF, 0x5C0E, 0xBEC9, 0x5C0F, 0xA470, 0x5C10, 0xC95C, 0x5C11, 0xA4D6, 0x5C12, 0xC974, + 0x5C15, 0xC9D4, 0x5C16, 0xA679, 0x5C1A, 0xA97C, 0x5C1F, 0xDD4B, 0x5C22, 0xA471, 0x5C24, 0xA4D7, 0x5C25, 0xC9D5, 0x5C28, 0xCABE, + 0x5C2A, 0xCABF, 0x5C2C, 0xA7BC, 0x5C30, 0xD8D8, 0x5C31, 0xB44E, 0x5C33, 0xDD4C, 0x5C37, 0xC0AA, 0x5C38, 0xA472, 0x5C39, 0xA4A8, + 0x5C3A, 0xA4D8, 0x5C3B, 0xC975, 0x5C3C, 0xA5A7, 0x5C3E, 0xA7C0, 0x5C3F, 0xA7BF, 0x5C40, 0xA7BD, 0x5C41, 0xA7BE, 0x5C44, 0xCC59, + 0x5C45, 0xA97E, 0x5C46, 0xA9A1, 0x5C47, 0xCC5A, 0x5C48, 0xA97D, 0x5C4B, 0xABCE, 0x5C4C, 0xCE78, 0x5C4D, 0xABCD, 0x5C4E, 0xABCB, + 0x5C4F, 0xABCC, 0x5C50, 0xAE6A, 0x5C51, 0xAE68, 0x5C54, 0xD16B, 0x5C55, 0xAE69, 0x5C56, 0xD16A, 0x5C58, 0xAE5E, 0x5C59, 0xD4F3, + 0x5C5C, 0xB150, 0x5C5D, 0xB151, 0x5C60, 0xB14F, 0x5C62, 0xB9F0, 0x5C63, 0xE1A2, 0x5C64, 0xBC68, 0x5C65, 0xBC69, 0x5C67, 0xE561, + 0x5C68, 0xC0AB, 0x5C69, 0xEFC2, 0x5C6A, 0xEFC3, 0x5C6C, 0xC4DD, 0x5C6D, 0xF8A8, 0x5C6E, 0xC94B, 0x5C6F, 0xA4D9, 0x5C71, 0xA473, + 0x5C73, 0xC977, 0x5C74, 0xC976, 0x5C79, 0xA67A, 0x5C7A, 0xC9D7, 0x5C7B, 0xC9D8, 0x5C7C, 0xC9D6, 0x5C7E, 0xC9D9, 0x5C86, 0xCAC7, + 0x5C88, 0xCAC2, 0x5C89, 0xCAC4, 0x5C8A, 0xCAC6, 0x5C8B, 0xCAC3, 0x5C8C, 0xA7C4, 0x5C8D, 0xCAC0, 0x5C8F, 0xCAC1, 0x5C90, 0xA7C1, + 0x5C91, 0xA7C2, 0x5C92, 0xCAC5, 0x5C93, 0xCAC8, 0x5C94, 0xA7C3, 0x5C95, 0xCAC9, 0x5C9D, 0xCC68, 0x5C9F, 0xCC62, 0x5CA0, 0xCC5D, + 0x5CA1, 0xA9A3, 0x5CA2, 0xCC65, 0x5CA3, 0xCC63, 0x5CA4, 0xCC5C, 0x5CA5, 0xCC69, 0x5CA6, 0xCC6C, 0x5CA7, 0xCC67, 0x5CA8, 0xCC60, + 0x5CA9, 0xA9A5, 0x5CAA, 0xCC66, 0x5CAB, 0xA9A6, 0x5CAC, 0xCC61, 0x5CAD, 0xCC64, 0x5CAE, 0xCC5B, 0x5CAF, 0xCC5F, 0x5CB0, 0xCC6B, + 0x5CB1, 0xA9A7, 0x5CB3, 0xA9A8, 0x5CB5, 0xCC5E, 0x5CB6, 0xCC6A, 0x5CB7, 0xA9A2, 0x5CB8, 0xA9A4, 0x5CC6, 0xCEAB, 0x5CC7, 0xCEA4, + 0x5CC8, 0xCEAA, 0x5CC9, 0xCEA3, 0x5CCA, 0xCEA5, 0x5CCB, 0xCE7D, 0x5CCC, 0xCE7B, 0x5CCE, 0xCEAC, 0x5CCF, 0xCEA9, 0x5CD0, 0xCE79, + 0x5CD2, 0xABD0, 0x5CD3, 0xCEA7, 0x5CD4, 0xCEA8, 0x5CD6, 0xCEA6, 0x5CD7, 0xCE7C, 0x5CD8, 0xCE7A, 0x5CD9, 0xABCF, 0x5CDA, 0xCEA2, + 0x5CDB, 0xCE7E, 0x5CDE, 0xCEA1, 0x5CDF, 0xCEAD, 0x5CE8, 0xAE6F, 0x5CEA, 0xAE6E, 0x5CEC, 0xD16C, 0x5CED, 0xAE6B, 0x5CEE, 0xD16E, + 0x5CF0, 0xAE70, 0x5CF1, 0xD16F, 0x5CF4, 0xAE73, 0x5CF6, 0xAE71, 0x5CF7, 0xD170, 0x5CF8, 0xCEAE, 0x5CF9, 0xD172, 0x5CFB, 0xAE6D, + 0x5CFD, 0xAE6C, 0x5CFF, 0xD16D, 0x5D00, 0xD171, 0x5D01, 0xAE72, 0x5D06, 0xB153, 0x5D07, 0xB152, 0x5D0B, 0xD4F5, 0x5D0C, 0xD4F9, + 0x5D0D, 0xD4FB, 0x5D0E, 0xB154, 0x5D0F, 0xD4FE, 0x5D11, 0xB158, 0x5D12, 0xD541, 0x5D14, 0xB15A, 0x5D16, 0xB156, 0x5D17, 0xB15E, + 0x5D19, 0xB15B, 0x5D1A, 0xD4F7, 0x5D1B, 0xB155, 0x5D1D, 0xD4F6, 0x5D1E, 0xD4F4, 0x5D1F, 0xD543, 0x5D20, 0xD4F8, 0x5D22, 0xB157, + 0x5D23, 0xD542, 0x5D24, 0xB15C, 0x5D25, 0xD4FD, 0x5D26, 0xD4FC, 0x5D27, 0xB15D, 0x5D28, 0xD4FA, 0x5D29, 0xB159, 0x5D2E, 0xD544, + 0x5D30, 0xD540, 0x5D31, 0xD8E7, 0x5D32, 0xD8EE, 0x5D33, 0xD8E3, 0x5D34, 0xB451, 0x5D35, 0xD8DF, 0x5D36, 0xD8EF, 0x5D37, 0xD8D9, + 0x5D38, 0xD8EC, 0x5D39, 0xD8EA, 0x5D3A, 0xD8E4, 0x5D3C, 0xD8ED, 0x5D3D, 0xD8E6, 0x5D3F, 0xD8DE, 0x5D40, 0xD8F0, 0x5D41, 0xD8DC, + 0x5D42, 0xD8E9, 0x5D43, 0xD8DA, 0x5D45, 0xD8F1, 0x5D47, 0xB452, 0x5D49, 0xD8EB, 0x5D4A, 0xDD4F, 0x5D4B, 0xD8DD, 0x5D4C, 0xB44F, + 0x5D4E, 0xD8E1, 0x5D50, 0xB450, 0x5D51, 0xD8E0, 0x5D52, 0xD8E5, 0x5D55, 0xD8E2, 0x5D59, 0xD8E8, 0x5D5E, 0xDD53, 0x5D62, 0xDD56, + 0x5D63, 0xDD4E, 0x5D65, 0xDD50, 0x5D67, 0xDD55, 0x5D68, 0xDD54, 0x5D69, 0xB743, 0x5D6B, 0xD8DB, 0x5D6C, 0xDD52, 0x5D6F, 0xB744, + 0x5D71, 0xDD4D, 0x5D72, 0xDD51, 0x5D77, 0xE1A9, 0x5D79, 0xE1B0, 0x5D7A, 0xE1A7, 0x5D7C, 0xE1AE, 0x5D7D, 0xE1A5, 0x5D7E, 0xE1AD, + 0x5D7F, 0xE1B1, 0x5D80, 0xE1A4, 0x5D81, 0xE1A8, 0x5D82, 0xE1A3, 0x5D84, 0xB9F1, 0x5D86, 0xE1A6, 0x5D87, 0xB9F2, 0x5D88, 0xE1AC, + 0x5D89, 0xE1AB, 0x5D8A, 0xE1AA, 0x5D8D, 0xE1AF, 0x5D92, 0xE565, 0x5D93, 0xE567, 0x5D94, 0xBC6B, 0x5D95, 0xE568, 0x5D97, 0xE563, + 0x5D99, 0xE562, 0x5D9A, 0xE56C, 0x5D9C, 0xE56A, 0x5D9D, 0xBC6A, 0x5D9E, 0xE56D, 0x5D9F, 0xE564, 0x5DA0, 0xE569, 0x5DA1, 0xE56B, + 0x5DA2, 0xE566, 0x5DA7, 0xE961, 0x5DA8, 0xE966, 0x5DA9, 0xE960, 0x5DAA, 0xE965, 0x5DAC, 0xE95E, 0x5DAD, 0xE968, 0x5DAE, 0xE964, + 0x5DAF, 0xE969, 0x5DB0, 0xE963, 0x5DB1, 0xE95F, 0x5DB2, 0xE967, 0x5DB4, 0xE96A, 0x5DB5, 0xE962, 0x5DB7, 0xECDA, 0x5DB8, 0xC0AF, + 0x5DBA, 0xC0AD, 0x5DBC, 0xC0AC, 0x5DBD, 0xC0AE, 0x5DC0, 0xEFC4, 0x5DC2, 0xF172, 0x5DC3, 0xF1FD, 0x5DC6, 0xF444, 0x5DC7, 0xF445, + 0x5DC9, 0xC460, 0x5DCB, 0xF5C9, 0x5DCD, 0xC4DE, 0x5DCF, 0xF5CA, 0x5DD1, 0xF6DE, 0x5DD2, 0xC572, 0x5DD4, 0xC571, 0x5DD5, 0xF6DD, + 0x5DD6, 0xC5C9, 0x5DD8, 0xF7D6, 0x5DDD, 0xA474, 0x5DDE, 0xA67B, 0x5DDF, 0xC9DA, 0x5DE0, 0xCACA, 0x5DE1, 0xA8B5, 0x5DE2, 0xB15F, + 0x5DE5, 0xA475, 0x5DE6, 0xA5AA, 0x5DE7, 0xA5A9, 0x5DE8, 0xA5A8, 0x5DEB, 0xA7C5, 0x5DEE, 0xAE74, 0x5DF0, 0xDD57, 0x5DF1, 0xA476, + 0x5DF2, 0xA477, 0x5DF3, 0xA478, 0x5DF4, 0xA4DA, 0x5DF7, 0xABD1, 0x5DF9, 0xCEAF, 0x5DFD, 0xB453, 0x5DFE, 0xA479, 0x5DFF, 0xC95D, + 0x5E02, 0xA5AB, 0x5E03, 0xA5AC, 0x5E04, 0xC978, 0x5E06, 0xA67C, 0x5E0A, 0xCACB, 0x5E0C, 0xA7C6, 0x5E0E, 0xCACC, 0x5E11, 0xA9AE, + 0x5E14, 0xCC6E, 0x5E15, 0xA9AC, 0x5E16, 0xA9AB, 0x5E17, 0xCC6D, 0x5E18, 0xA9A9, 0x5E19, 0xCC6F, 0x5E1A, 0xA9AA, 0x5E1B, 0xA9AD, + 0x5E1D, 0xABD2, 0x5E1F, 0xABD4, 0x5E20, 0xCEB3, 0x5E21, 0xCEB0, 0x5E22, 0xCEB1, 0x5E23, 0xCEB2, 0x5E24, 0xCEB4, 0x5E25, 0xABD3, + 0x5E28, 0xD174, 0x5E29, 0xD173, 0x5E2B, 0xAE76, 0x5E2D, 0xAE75, 0x5E33, 0xB162, 0x5E34, 0xD546, 0x5E36, 0xB161, 0x5E37, 0xB163, + 0x5E38, 0xB160, 0x5E3D, 0xB455, 0x5E3E, 0xD545, 0x5E40, 0xB456, 0x5E41, 0xD8F3, 0x5E43, 0xB457, 0x5E44, 0xD8F2, 0x5E45, 0xB454, + 0x5E4A, 0xDD5A, 0x5E4B, 0xDD5C, 0x5E4C, 0xB745, 0x5E4D, 0xDD5B, 0x5E4E, 0xDD59, 0x5E4F, 0xDD58, 0x5E53, 0xE1B4, 0x5E54, 0xB9F7, + 0x5E55, 0xB9F5, 0x5E57, 0xB9F6, 0x5E58, 0xE1B2, 0x5E59, 0xE1B3, 0x5E5B, 0xB9F3, 0x5E5C, 0xE571, 0x5E5D, 0xE56F, 0x5E5F, 0xBC6D, + 0x5E60, 0xE570, 0x5E61, 0xBC6E, 0x5E62, 0xBC6C, 0x5E63, 0xB9F4, 0x5E66, 0xE96D, 0x5E67, 0xE96B, 0x5E68, 0xE96C, 0x5E69, 0xE56E, + 0x5E6A, 0xECDC, 0x5E6B, 0xC0B0, 0x5E6C, 0xECDB, 0x5E6D, 0xEFC5, 0x5E6E, 0xEFC6, 0x5E6F, 0xE96E, 0x5E70, 0xF1FE, 0x5E72, 0xA47A, + 0x5E73, 0xA5AD, 0x5E74, 0xA67E, 0x5E75, 0xC9DB, 0x5E76, 0xA67D, 0x5E78, 0xA9AF, 0x5E79, 0xB746, 0x5E7B, 0xA4DB, 0x5E7C, 0xA5AE, + 0x5E7D, 0xABD5, 0x5E7E, 0xB458, 0x5E80, 0xC979, 0x5E82, 0xC97A, 0x5E84, 0xC9DC, 0x5E87, 0xA7C8, 0x5E88, 0xCAD0, 0x5E89, 0xCACE, + 0x5E8A, 0xA7C9, 0x5E8B, 0xCACD, 0x5E8C, 0xCACF, 0x5E8D, 0xCAD1, 0x5E8F, 0xA7C7, 0x5E95, 0xA9B3, 0x5E96, 0xA9B4, 0x5E97, 0xA9B1, + 0x5E9A, 0xA9B0, 0x5E9B, 0xCEB8, 0x5E9C, 0xA9B2, 0x5EA0, 0xABD6, 0x5EA2, 0xCEB7, 0x5EA3, 0xCEB9, 0x5EA4, 0xCEB6, 0x5EA5, 0xCEBA, + 0x5EA6, 0xABD7, 0x5EA7, 0xAE79, 0x5EA8, 0xD175, 0x5EAA, 0xD177, 0x5EAB, 0xAE77, 0x5EAC, 0xD178, 0x5EAD, 0xAE78, 0x5EAE, 0xD176, + 0x5EB0, 0xCEB5, 0x5EB1, 0xD547, 0x5EB2, 0xD54A, 0x5EB3, 0xD54B, 0x5EB4, 0xD548, 0x5EB5, 0xB167, 0x5EB6, 0xB166, 0x5EB7, 0xB164, + 0x5EB8, 0xB165, 0x5EB9, 0xD549, 0x5EBE, 0xB168, 0x5EC1, 0xB45A, 0x5EC2, 0xB45B, 0x5EC4, 0xB45C, 0x5EC5, 0xDD5D, 0x5EC6, 0xDD5F, + 0x5EC7, 0xDD61, 0x5EC8, 0xB748, 0x5EC9, 0xB747, 0x5ECA, 0xB459, 0x5ECB, 0xDD60, 0x5ECC, 0xDD5E, 0x5ECE, 0xE1B8, 0x5ED1, 0xE1B6, + 0x5ED2, 0xE1BC, 0x5ED3, 0xB9F8, 0x5ED4, 0xE1BD, 0x5ED5, 0xE1BA, 0x5ED6, 0xB9F9, 0x5ED7, 0xE1B7, 0x5ED8, 0xE1B5, 0x5ED9, 0xE1BB, + 0x5EDA, 0xBC70, 0x5EDB, 0xE573, 0x5EDC, 0xE1B9, 0x5EDD, 0xBC72, 0x5EDE, 0xE574, 0x5EDF, 0xBC71, 0x5EE0, 0xBC74, 0x5EE1, 0xE575, + 0x5EE2, 0xBC6F, 0x5EE3, 0xBC73, 0x5EE5, 0xE973, 0x5EE6, 0xE971, 0x5EE7, 0xE970, 0x5EE8, 0xE972, 0x5EE9, 0xE96F, 0x5EEC, 0xC366, + 0x5EEE, 0xF446, 0x5EEF, 0xF447, 0x5EF1, 0xF5CB, 0x5EF2, 0xF6DF, 0x5EF3, 0xC655, 0x5EF6, 0xA9B5, 0x5EF7, 0xA7CA, 0x5EFA, 0xABD8, + 0x5EFE, 0xA47B, 0x5EFF, 0xA4DC, 0x5F01, 0xA5AF, 0x5F02, 0xC9DD, 0x5F04, 0xA7CB, 0x5F05, 0xCAD2, 0x5F07, 0xCEBB, 0x5F08, 0xABD9, + 0x5F0A, 0xB9FA, 0x5F0B, 0xA47C, 0x5F0F, 0xA6A1, 0x5F12, 0xB749, 0x5F13, 0xA47D, 0x5F14, 0xA4DD, 0x5F15, 0xA4DE, 0x5F17, 0xA5B1, + 0x5F18, 0xA5B0, 0x5F1A, 0xC9DE, 0x5F1B, 0xA6A2, 0x5F1D, 0xCAD3, 0x5F1F, 0xA7CC, 0x5F22, 0xCC71, 0x5F23, 0xCC72, 0x5F24, 0xCC73, + 0x5F26, 0xA9B6, 0x5F27, 0xA9B7, 0x5F28, 0xCC70, 0x5F29, 0xA9B8, 0x5F2D, 0xABDA, 0x5F2E, 0xCEBC, 0x5F30, 0xD17A, 0x5F31, 0xAE7A, + 0x5F33, 0xD179, 0x5F35, 0xB169, 0x5F36, 0xD54C, 0x5F37, 0xB16A, 0x5F38, 0xD54D, 0x5F3C, 0xB45D, 0x5F40, 0xDD62, 0x5F43, 0xE1BF, + 0x5F44, 0xE1BE, 0x5F46, 0xB9FB, 0x5F48, 0xBC75, 0x5F49, 0xE576, 0x5F4A, 0xBECA, 0x5F4B, 0xE974, 0x5F4C, 0xC0B1, 0x5F4E, 0xC573, + 0x5F4F, 0xF7D8, 0x5F54, 0xCC74, 0x5F56, 0xCEBD, 0x5F57, 0xB16B, 0x5F58, 0xD8F4, 0x5F59, 0xB74A, 0x5F5D, 0xC255, 0x5F62, 0xA7CE, + 0x5F64, 0xA7CD, 0x5F65, 0xABDB, 0x5F67, 0xD17B, 0x5F69, 0xB16D, 0x5F6A, 0xB343, 0x5F6B, 0xB16E, 0x5F6C, 0xB16C, 0x5F6D, 0xB45E, + 0x5F6F, 0xE1C0, 0x5F70, 0xB9FC, 0x5F71, 0xBC76, 0x5F73, 0xC94C, 0x5F74, 0xC9DF, 0x5F76, 0xCAD5, 0x5F77, 0xA7CF, 0x5F78, 0xCAD4, + 0x5F79, 0xA7D0, 0x5F7C, 0xA9BC, 0x5F7D, 0xCC77, 0x5F7E, 0xCC76, 0x5F7F, 0xA9BB, 0x5F80, 0xA9B9, 0x5F81, 0xA9BA, 0x5F82, 0xCC75, + 0x5F85, 0xABDD, 0x5F86, 0xCEBE, 0x5F87, 0xABE0, 0x5F88, 0xABDC, 0x5F89, 0xABE2, 0x5F8A, 0xABDE, 0x5F8B, 0xABDF, 0x5F8C, 0xABE1, + 0x5F90, 0xAE7D, 0x5F91, 0xAE7C, 0x5F92, 0xAE7B, 0x5F96, 0xD54F, 0x5F97, 0xB16F, 0x5F98, 0xB172, 0x5F99, 0xB170, 0x5F9B, 0xD54E, + 0x5F9C, 0xB175, 0x5F9E, 0xB171, 0x5F9F, 0xD550, 0x5FA0, 0xB174, 0x5FA1, 0xB173, 0x5FA5, 0xD8F6, 0x5FA6, 0xD8F5, 0x5FA8, 0xB461, + 0x5FA9, 0xB45F, 0x5FAA, 0xB460, 0x5FAB, 0xD8F7, 0x5FAC, 0xB74B, 0x5FAD, 0xDD64, 0x5FAE, 0xB74C, 0x5FAF, 0xDD63, 0x5FB2, 0xE577, + 0x5FB5, 0xBC78, 0x5FB6, 0xE1C1, 0x5FB7, 0xBC77, 0x5FB9, 0xB9FD, 0x5FBB, 0xECDE, 0x5FBC, 0xE975, 0x5FBD, 0xC0B2, 0x5FBE, 0xECDD, + 0x5FBF, 0xF240, 0x5FC0, 0xF448, 0x5FC1, 0xF449, 0x5FC3, 0xA4DF, 0x5FC5, 0xA5B2, 0x5FC9, 0xC97B, 0x5FCC, 0xA7D2, 0x5FCD, 0xA7D4, + 0x5FCF, 0xC9E2, 0x5FD0, 0xCAD8, 0x5FD1, 0xCAD7, 0x5FD2, 0xCAD6, 0x5FD4, 0xC9E1, 0x5FD5, 0xC9E0, 0x5FD6, 0xA6A4, 0x5FD7, 0xA7D3, + 0x5FD8, 0xA7D1, 0x5FD9, 0xA6A3, 0x5FDD, 0xA9BD, 0x5FDE, 0xCC78, 0x5FE0, 0xA9BE, 0x5FE1, 0xCADD, 0x5FE3, 0xCADF, 0x5FE4, 0xCADE, + 0x5FE5, 0xCC79, 0x5FE8, 0xCADA, 0x5FEA, 0xA7D8, 0x5FEB, 0xA7D6, 0x5FED, 0xCAD9, 0x5FEE, 0xCADB, 0x5FEF, 0xCAE1, 0x5FF1, 0xA7D5, + 0x5FF3, 0xCADC, 0x5FF4, 0xCAE5, 0x5FF5, 0xA9C0, 0x5FF7, 0xCAE2, 0x5FF8, 0xA7D7, 0x5FFA, 0xCAE0, 0x5FFB, 0xCAE3, 0x5FFD, 0xA9BF, + 0x5FFF, 0xA9C1, 0x6000, 0xCAE4, 0x6009, 0xCCAF, 0x600A, 0xCCA2, 0x600B, 0xCC7E, 0x600C, 0xCCAE, 0x600D, 0xCCA9, 0x600E, 0xABE7, + 0x600F, 0xA9C2, 0x6010, 0xCCAA, 0x6011, 0xCCAD, 0x6012, 0xABE3, 0x6013, 0xCCAC, 0x6014, 0xA9C3, 0x6015, 0xA9C8, 0x6016, 0xA9C6, + 0x6017, 0xCCA3, 0x6019, 0xCC7C, 0x601A, 0xCCA5, 0x601B, 0xA9CD, 0x601C, 0xCCB0, 0x601D, 0xABE4, 0x601E, 0xCCA6, 0x6020, 0xABE5, + 0x6021, 0xA9C9, 0x6022, 0xCCA8, 0x6024, 0xCECD, 0x6025, 0xABE6, 0x6026, 0xCC7B, 0x6027, 0xA9CA, 0x6028, 0xABE8, 0x6029, 0xA9CB, + 0x602A, 0xA9C7, 0x602B, 0xA9CC, 0x602C, 0xCCA7, 0x602D, 0xCC7A, 0x602E, 0xCCAB, 0x602F, 0xA9C4, 0x6032, 0xCC7D, 0x6033, 0xCCA4, + 0x6034, 0xCCA1, 0x6035, 0xA9C5, 0x6037, 0xCEBF, 0x6039, 0xCEC0, 0x6040, 0xCECA, 0x6041, 0xD1A1, 0x6042, 0xCECB, 0x6043, 0xABEE, + 0x6044, 0xCECE, 0x6045, 0xCEC4, 0x6046, 0xABED, 0x6047, 0xCEC6, 0x6049, 0xCEC7, 0x604C, 0xCEC9, 0x604D, 0xABE9, 0x6050, 0xAEA3, + 0x6052, 0xF9DA, 0x6053, 0xCEC5, 0x6054, 0xCEC1, 0x6055, 0xAEA4, 0x6058, 0xCECF, 0x6059, 0xAE7E, 0x605A, 0xD17D, 0x605B, 0xCEC8, + 0x605D, 0xD17C, 0x605E, 0xCEC3, 0x605F, 0xCECC, 0x6062, 0xABEC, 0x6063, 0xAEA1, 0x6064, 0xABF2, 0x6065, 0xAEA2, 0x6066, 0xCED0, + 0x6067, 0xD17E, 0x6068, 0xABEB, 0x6069, 0xAEA6, 0x606A, 0xABF1, 0x606B, 0xABF0, 0x606C, 0xABEF, 0x606D, 0xAEA5, 0x606E, 0xCED1, + 0x606F, 0xAEA7, 0x6070, 0xABEA, 0x6072, 0xCEC2, 0x607F, 0xB176, 0x6080, 0xD1A4, 0x6081, 0xD1A6, 0x6083, 0xD1A8, 0x6084, 0xAEA8, + 0x6085, 0xAEAE, 0x6086, 0xD553, 0x6087, 0xD1AC, 0x6088, 0xD1A3, 0x6089, 0xB178, 0x608A, 0xD551, 0x608C, 0xAEAD, 0x608D, 0xAEAB, + 0x608E, 0xD1AE, 0x6090, 0xD552, 0x6092, 0xD1A5, 0x6094, 0xAEAC, 0x6095, 0xD1A9, 0x6096, 0xAEAF, 0x6097, 0xD1AB, 0x609A, 0xAEAA, + 0x609B, 0xD1AA, 0x609C, 0xD1AD, 0x609D, 0xD1A7, 0x609F, 0xAEA9, 0x60A0, 0xB179, 0x60A2, 0xD1A2, 0x60A3, 0xB177, 0x60A8, 0xB17A, + 0x60B0, 0xD555, 0x60B1, 0xD55E, 0x60B2, 0xB464, 0x60B4, 0xB17C, 0x60B5, 0xB1A3, 0x60B6, 0xB465, 0x60B7, 0xD560, 0x60B8, 0xB1AA, + 0x60B9, 0xD8F9, 0x60BA, 0xD556, 0x60BB, 0xB1A2, 0x60BC, 0xB1A5, 0x60BD, 0xB17E, 0x60BE, 0xD554, 0x60BF, 0xD562, 0x60C0, 0xD565, + 0x60C1, 0xD949, 0x60C3, 0xD563, 0x60C4, 0xD8FD, 0x60C5, 0xB1A1, 0x60C6, 0xB1A8, 0x60C7, 0xB1AC, 0x60C8, 0xD55D, 0x60C9, 0xD8F8, + 0x60CA, 0xD561, 0x60CB, 0xB17B, 0x60CC, 0xD8FA, 0x60CD, 0xD564, 0x60CE, 0xD8FC, 0x60CF, 0xD559, 0x60D1, 0xB462, 0x60D3, 0xD557, + 0x60D4, 0xD558, 0x60D5, 0xB1A7, 0x60D8, 0xB1A6, 0x60D9, 0xD55B, 0x60DA, 0xB1AB, 0x60DB, 0xD55F, 0x60DC, 0xB1A4, 0x60DD, 0xD55C, + 0x60DF, 0xB1A9, 0x60E0, 0xB466, 0x60E1, 0xB463, 0x60E2, 0xD8FB, 0x60E4, 0xD55A, 0x60E6, 0xB17D, 0x60F0, 0xB46B, 0x60F1, 0xB46F, + 0x60F2, 0xD940, 0x60F3, 0xB751, 0x60F4, 0xB46D, 0x60F5, 0xD944, 0x60F6, 0xB471, 0x60F7, 0xDD65, 0x60F8, 0xD946, 0x60F9, 0xB753, + 0x60FA, 0xB469, 0x60FB, 0xB46C, 0x60FC, 0xD947, 0x60FE, 0xD948, 0x60FF, 0xD94E, 0x6100, 0xB473, 0x6101, 0xB754, 0x6103, 0xD94A, + 0x6104, 0xD94F, 0x6105, 0xD943, 0x6106, 0xB75E, 0x6108, 0xB755, 0x6109, 0xB472, 0x610A, 0xD941, 0x610B, 0xD950, 0x610D, 0xB75D, + 0x610E, 0xB470, 0x610F, 0xB74E, 0x6110, 0xD94D, 0x6112, 0xB474, 0x6113, 0xD945, 0x6114, 0xD8FE, 0x6115, 0xB46A, 0x6116, 0xD942, + 0x6118, 0xD94B, 0x611A, 0xB74D, 0x611B, 0xB752, 0x611C, 0xB467, 0x611D, 0xD94C, 0x611F, 0xB750, 0x6123, 0xB468, 0x6127, 0xB75C, + 0x6128, 0xE1C3, 0x6129, 0xDD70, 0x612B, 0xDD68, 0x612C, 0xE1C2, 0x612E, 0xDD6C, 0x612F, 0xDD6E, 0x6132, 0xDD6B, 0x6134, 0xB75B, + 0x6136, 0xDD6A, 0x6137, 0xB75F, 0x613B, 0xE1D2, 0x613E, 0xB75A, 0x613F, 0xBA40, 0x6140, 0xDD71, 0x6141, 0xE1C4, 0x6144, 0xB758, + 0x6145, 0xDD69, 0x6146, 0xDD6D, 0x6147, 0xB9FE, 0x6148, 0xB74F, 0x6149, 0xDD66, 0x614A, 0xDD67, 0x614B, 0xBA41, 0x614C, 0xB757, + 0x614D, 0xB759, 0x614E, 0xB756, 0x614F, 0xDD6F, 0x6152, 0xE1C8, 0x6153, 0xE1C9, 0x6154, 0xE1CE, 0x6155, 0xBC7D, 0x6156, 0xE1D5, + 0x6158, 0xBA47, 0x615A, 0xBA46, 0x615B, 0xE1D0, 0x615D, 0xBC7C, 0x615E, 0xE1C5, 0x615F, 0xBA45, 0x6161, 0xE1D4, 0x6162, 0xBA43, + 0x6163, 0xBA44, 0x6165, 0xE1D1, 0x6166, 0xE5AA, 0x6167, 0xBC7A, 0x6168, 0xB46E, 0x616A, 0xE1D3, 0x616B, 0xBCA3, 0x616C, 0xE1CB, + 0x616E, 0xBC7B, 0x6170, 0xBCA2, 0x6171, 0xE1C6, 0x6172, 0xE1CA, 0x6173, 0xE1C7, 0x6174, 0xE1CD, 0x6175, 0xBA48, 0x6176, 0xBC79, + 0x6177, 0xBA42, 0x6179, 0xE57A, 0x617A, 0xE1CF, 0x617C, 0xBCA1, 0x617E, 0xBCA4, 0x6180, 0xE1CC, 0x6182, 0xBC7E, 0x6183, 0xE579, + 0x6189, 0xE57E, 0x618A, 0xBECE, 0x618B, 0xE578, 0x618C, 0xE9A3, 0x618D, 0xE5A9, 0x618E, 0xBCA8, 0x6190, 0xBCA6, 0x6191, 0xBECC, + 0x6192, 0xE5A6, 0x6193, 0xE5A2, 0x6194, 0xBCAC, 0x6196, 0xE978, 0x619A, 0xBCAA, 0x619B, 0xE5A1, 0x619D, 0xE976, 0x619F, 0xE5A5, + 0x61A1, 0xE5A8, 0x61A2, 0xE57D, 0x61A4, 0xBCAB, 0x61A7, 0xBCA5, 0x61A8, 0xE977, 0x61A9, 0xBECD, 0x61AA, 0xE5A7, 0x61AB, 0xBCA7, + 0x61AC, 0xBCA9, 0x61AD, 0xE5A4, 0x61AE, 0xBCAD, 0x61AF, 0xE5A3, 0x61B0, 0xE57C, 0x61B1, 0xE57B, 0x61B2, 0xBECB, 0x61B3, 0xE5AB, + 0x61B4, 0xE97A, 0x61B5, 0xECE0, 0x61B6, 0xBED0, 0x61B8, 0xE9A2, 0x61BA, 0xE97E, 0x61BC, 0xECE1, 0x61BE, 0xBED1, 0x61BF, 0xE9A1, + 0x61C1, 0xE97C, 0x61C2, 0xC0B4, 0x61C3, 0xECDF, 0x61C5, 0xE979, 0x61C6, 0xE97B, 0x61C7, 0xC0B5, 0x61C8, 0xBED3, 0x61C9, 0xC0B3, + 0x61CA, 0xBED2, 0x61CB, 0xC0B7, 0x61CC, 0xE97D, 0x61CD, 0xBECF, 0x61D6, 0xEFCF, 0x61D8, 0xEFC7, 0x61DE, 0xECE7, 0x61DF, 0xEFC8, + 0x61E0, 0xECE3, 0x61E3, 0xC256, 0x61E4, 0xECE5, 0x61E5, 0xECE4, 0x61E6, 0xC0B6, 0x61E7, 0xECE2, 0x61E8, 0xECE6, 0x61E9, 0xEFD0, + 0x61EA, 0xEFCC, 0x61EB, 0xEFCE, 0x61ED, 0xEFC9, 0x61EE, 0xEFCA, 0x61F0, 0xEFCD, 0x61F1, 0xEFCB, 0x61F2, 0xC367, 0x61F5, 0xC36A, + 0x61F6, 0xC369, 0x61F7, 0xC368, 0x61F8, 0xC461, 0x61F9, 0xF44A, 0x61FA, 0xC462, 0x61FB, 0xF241, 0x61FC, 0xC4DF, 0x61FD, 0xF5CC, + 0x61FE, 0xC4E0, 0x61FF, 0xC574, 0x6200, 0xC5CA, 0x6201, 0xF7D9, 0x6203, 0xF7DA, 0x6204, 0xF7DB, 0x6207, 0xF9BA, 0x6208, 0xA4E0, + 0x6209, 0xC97C, 0x620A, 0xA5B3, 0x620C, 0xA6A6, 0x620D, 0xA6A7, 0x620E, 0xA6A5, 0x6210, 0xA6A8, 0x6211, 0xA7DA, 0x6212, 0xA7D9, + 0x6214, 0xCCB1, 0x6215, 0xA9CF, 0x6216, 0xA9CE, 0x6219, 0xD1AF, 0x621A, 0xB1AD, 0x621B, 0xB1AE, 0x621F, 0xB475, 0x6220, 0xDD72, + 0x6221, 0xB760, 0x6222, 0xB761, 0x6223, 0xDD74, 0x6224, 0xDD76, 0x6225, 0xDD75, 0x6227, 0xE1D7, 0x6229, 0xE1D6, 0x622A, 0xBA49, + 0x622B, 0xE1D8, 0x622D, 0xE5AC, 0x622E, 0xBCAE, 0x6230, 0xBED4, 0x6232, 0xC0B8, 0x6233, 0xC257, 0x6234, 0xC0B9, 0x6236, 0xA4E1, + 0x623A, 0xCAE6, 0x623D, 0xCCB2, 0x623E, 0xA9D1, 0x623F, 0xA9D0, 0x6240, 0xA9D2, 0x6241, 0xABF3, 0x6242, 0xCED2, 0x6243, 0xCED3, + 0x6246, 0xD1B0, 0x6247, 0xAEB0, 0x6248, 0xB1AF, 0x6249, 0xB476, 0x624A, 0xD951, 0x624B, 0xA4E2, 0x624D, 0xA47E, 0x624E, 0xA4E3, + 0x6250, 0xC97D, 0x6251, 0xA5B7, 0x6252, 0xA5B6, 0x6253, 0xA5B4, 0x6254, 0xA5B5, 0x6258, 0xA6AB, 0x6259, 0xC9E9, 0x625A, 0xC9EB, + 0x625B, 0xA6AA, 0x625C, 0xC9E3, 0x625E, 0xC9E4, 0x6260, 0xC9EA, 0x6261, 0xC9E6, 0x6262, 0xC9E8, 0x6263, 0xA6A9, 0x6264, 0xC9E5, + 0x6265, 0xC9EC, 0x6266, 0xC9E7, 0x626D, 0xA7E1, 0x626E, 0xA7EA, 0x626F, 0xA7E8, 0x6270, 0xCAF0, 0x6271, 0xCAED, 0x6272, 0xCAF5, + 0x6273, 0xA7E6, 0x6274, 0xCAF6, 0x6276, 0xA7DF, 0x6277, 0xCAF3, 0x6279, 0xA7E5, 0x627A, 0xCAEF, 0x627B, 0xCAEE, 0x627C, 0xA7E3, + 0x627D, 0xCAF4, 0x627E, 0xA7E4, 0x627F, 0xA9D3, 0x6280, 0xA7DE, 0x6281, 0xCAF1, 0x6283, 0xCAE7, 0x6284, 0xA7DB, 0x6286, 0xA7EE, + 0x6287, 0xCAEC, 0x6288, 0xCAF2, 0x6289, 0xA7E0, 0x628A, 0xA7E2, 0x628C, 0xCAE8, 0x628E, 0xCAE9, 0x628F, 0xCAEA, 0x6291, 0xA7ED, + 0x6292, 0xA7E7, 0x6293, 0xA7EC, 0x6294, 0xCAEB, 0x6295, 0xA7EB, 0x6296, 0xA7DD, 0x6297, 0xA7DC, 0x6298, 0xA7E9, 0x62A8, 0xA9E1, + 0x62A9, 0xCCBE, 0x62AA, 0xCCB7, 0x62AB, 0xA9DC, 0x62AC, 0xA9EF, 0x62AD, 0xCCB3, 0x62AE, 0xCCBA, 0x62AF, 0xCCBC, 0x62B0, 0xCCBF, + 0x62B1, 0xA9EA, 0x62B3, 0xCCBB, 0x62B4, 0xCCB4, 0x62B5, 0xA9E8, 0x62B6, 0xCCB8, 0x62B8, 0xCCC0, 0x62B9, 0xA9D9, 0x62BB, 0xCCBD, + 0x62BC, 0xA9E3, 0x62BD, 0xA9E2, 0x62BE, 0xCCB6, 0x62BF, 0xA9D7, 0x62C2, 0xA9D8, 0x62C4, 0xA9D6, 0x62C6, 0xA9EE, 0x62C7, 0xA9E6, + 0x62C8, 0xA9E0, 0x62C9, 0xA9D4, 0x62CA, 0xCCB9, 0x62CB, 0xA9DF, 0x62CC, 0xA9D5, 0x62CD, 0xA9E7, 0x62CE, 0xA9F0, 0x62CF, 0xCED4, + 0x62D0, 0xA9E4, 0x62D1, 0xCCB5, 0x62D2, 0xA9DA, 0x62D3, 0xA9DD, 0x62D4, 0xA9DE, 0x62D6, 0xA9EC, 0x62D7, 0xA9ED, 0x62D8, 0xA9EB, + 0x62D9, 0xA9E5, 0x62DA, 0xA9E9, 0x62DB, 0xA9DB, 0x62DC, 0xABF4, 0x62EB, 0xCEDA, 0x62EC, 0xAC41, 0x62ED, 0xABF8, 0x62EE, 0xABFA, + 0x62EF, 0xAC40, 0x62F0, 0xCEE6, 0x62F1, 0xABFD, 0x62F2, 0xD1B1, 0x62F3, 0xAEB1, 0x62F4, 0xAC43, 0x62F5, 0xCED7, 0x62F6, 0xCEDF, + 0x62F7, 0xABFE, 0x62F8, 0xCEDE, 0x62F9, 0xCEDB, 0x62FA, 0xCEE3, 0x62FB, 0xCEE5, 0x62FC, 0xABF7, 0x62FD, 0xABFB, 0x62FE, 0xAC42, + 0x62FF, 0xAEB3, 0x6300, 0xCEE0, 0x6301, 0xABF9, 0x6302, 0xAC45, 0x6303, 0xCED9, 0x6307, 0xABFC, 0x6308, 0xAEB2, 0x6309, 0xABF6, + 0x630B, 0xCED6, 0x630C, 0xCEDD, 0x630D, 0xCED5, 0x630E, 0xCED8, 0x630F, 0xCEDC, 0x6310, 0xD1B2, 0x6311, 0xAC44, 0x6313, 0xCEE1, + 0x6314, 0xCEE2, 0x6315, 0xCEE4, 0x6316, 0xABF5, 0x6328, 0xAEC1, 0x6329, 0xD1BE, 0x632A, 0xAEBF, 0x632B, 0xAEC0, 0x632C, 0xD1B4, + 0x632D, 0xD1C4, 0x632F, 0xAEB6, 0x6332, 0xD566, 0x6333, 0xD1C6, 0x6334, 0xD1C0, 0x6336, 0xD1B7, 0x6338, 0xD1C9, 0x6339, 0xD1BA, + 0x633A, 0xAEBC, 0x633B, 0xD57D, 0x633C, 0xD1BD, 0x633D, 0xAEBE, 0x633E, 0xAEB5, 0x6340, 0xD1CB, 0x6341, 0xD1BF, 0x6342, 0xAEB8, + 0x6343, 0xD1B8, 0x6344, 0xD1B5, 0x6345, 0xD1B6, 0x6346, 0xAEB9, 0x6347, 0xD1C5, 0x6348, 0xD1CC, 0x6349, 0xAEBB, 0x634A, 0xD1BC, + 0x634B, 0xD1BB, 0x634C, 0xAEC3, 0x634D, 0xAEC2, 0x634E, 0xAEB4, 0x634F, 0xAEBA, 0x6350, 0xAEBD, 0x6351, 0xD1C8, 0x6354, 0xD1C2, + 0x6355, 0xAEB7, 0x6356, 0xD1B3, 0x6357, 0xD1CA, 0x6358, 0xD1C1, 0x6359, 0xD1C3, 0x635A, 0xD1C7, 0x6365, 0xD567, 0x6367, 0xB1B7, + 0x6368, 0xB1CB, 0x6369, 0xB1CA, 0x636B, 0xB1BF, 0x636D, 0xD579, 0x636E, 0xD575, 0x636F, 0xD572, 0x6370, 0xD5A6, 0x6371, 0xB1BA, + 0x6372, 0xB1B2, 0x6375, 0xD577, 0x6376, 0xB4A8, 0x6377, 0xB1B6, 0x6378, 0xD5A1, 0x637A, 0xB1CC, 0x637B, 0xB1C9, 0x637C, 0xD57B, + 0x637D, 0xD56A, 0x6380, 0xB1C8, 0x6381, 0xD5A3, 0x6382, 0xD569, 0x6383, 0xB1BD, 0x6384, 0xB1C1, 0x6385, 0xD5A2, 0x6387, 0xD573, + 0x6388, 0xB1C2, 0x6389, 0xB1BC, 0x638A, 0xD568, 0x638C, 0xB478, 0x638D, 0xD5A5, 0x638E, 0xD571, 0x638F, 0xB1C7, 0x6390, 0xD574, + 0x6391, 0xD5A4, 0x6392, 0xB1C6, 0x6394, 0xD952, 0x6396, 0xB1B3, 0x6397, 0xD56F, 0x6398, 0xB1B8, 0x6399, 0xB1C3, 0x639B, 0xB1BE, + 0x639C, 0xD578, 0x639D, 0xD56E, 0x639E, 0xD56C, 0x639F, 0xD57E, 0x63A0, 0xB1B0, 0x63A1, 0xB1C4, 0x63A2, 0xB1B4, 0x63A3, 0xB477, + 0x63A4, 0xD57C, 0x63A5, 0xB1B5, 0x63A7, 0xB1B1, 0x63A8, 0xB1C0, 0x63A9, 0xB1BB, 0x63AA, 0xB1B9, 0x63AB, 0xD570, 0x63AC, 0xB1C5, + 0x63AD, 0xD56D, 0x63AE, 0xD57A, 0x63AF, 0xD576, 0x63B0, 0xD954, 0x63B1, 0xD953, 0x63BD, 0xD56B, 0x63BE, 0xD964, 0x63C0, 0xB47A, + 0x63C2, 0xD96A, 0x63C3, 0xD959, 0x63C4, 0xD967, 0x63C5, 0xDD77, 0x63C6, 0xB47D, 0x63C7, 0xD96B, 0x63C8, 0xD96E, 0x63C9, 0xB47C, + 0x63CA, 0xD95C, 0x63CB, 0xD96D, 0x63CC, 0xD96C, 0x63CD, 0xB47E, 0x63CE, 0xD955, 0x63CF, 0xB479, 0x63D0, 0xB4A3, 0x63D2, 0xB4A1, + 0x63D3, 0xD969, 0x63D5, 0xD95F, 0x63D6, 0xB4A5, 0x63D7, 0xD970, 0x63D8, 0xD968, 0x63D9, 0xD971, 0x63DA, 0xB4AD, 0x63DB, 0xB4AB, + 0x63DC, 0xD966, 0x63DD, 0xD965, 0x63DF, 0xD963, 0x63E0, 0xD95D, 0x63E1, 0xB4A4, 0x63E3, 0xB4A2, 0x63E4, 0xD1B9, 0x63E5, 0xD956, + 0x63E7, 0xDDB7, 0x63E8, 0xD957, 0x63E9, 0xB47B, 0x63EA, 0xB4AA, 0x63EB, 0xDD79, 0x63ED, 0xB4A6, 0x63EE, 0xB4A7, 0x63EF, 0xD958, + 0x63F0, 0xD96F, 0x63F1, 0xDD78, 0x63F2, 0xD960, 0x63F3, 0xD95B, 0x63F4, 0xB4A9, 0x63F5, 0xD961, 0x63F6, 0xD95E, 0x63F9, 0xB4AE, + 0x6406, 0xB770, 0x6409, 0xDD7C, 0x640A, 0xDDB1, 0x640B, 0xDDB6, 0x640C, 0xDDAA, 0x640D, 0xB76C, 0x640E, 0xDDBB, 0x640F, 0xB769, + 0x6410, 0xDD7A, 0x6412, 0xDD7B, 0x6413, 0xB762, 0x6414, 0xB76B, 0x6415, 0xDDA4, 0x6416, 0xB76E, 0x6417, 0xB76F, 0x6418, 0xDDA5, + 0x641A, 0xDDB2, 0x641B, 0xDDB8, 0x641C, 0xB76A, 0x641E, 0xB764, 0x641F, 0xDDA3, 0x6420, 0xDD7D, 0x6421, 0xDDBA, 0x6422, 0xDDA8, + 0x6423, 0xDDA9, 0x6424, 0xDD7E, 0x6425, 0xDDB4, 0x6426, 0xDDAB, 0x6427, 0xDDB5, 0x6428, 0xDDAD, 0x642A, 0xB765, 0x642B, 0xE1D9, + 0x642C, 0xB768, 0x642D, 0xB766, 0x642E, 0xDDB9, 0x642F, 0xDDB0, 0x6430, 0xDDAC, 0x6433, 0xDDA1, 0x6434, 0xBA53, 0x6435, 0xDDAF, + 0x6436, 0xB76D, 0x6437, 0xDDA7, 0x6439, 0xDDA6, 0x643D, 0xB767, 0x643E, 0xB763, 0x643F, 0xE1EE, 0x6440, 0xDDB3, 0x6441, 0xDDAE, + 0x6443, 0xDDA2, 0x644B, 0xE1E9, 0x644D, 0xE1DA, 0x644E, 0xE1E5, 0x6450, 0xE1EC, 0x6451, 0xBA51, 0x6452, 0xB4AC, 0x6453, 0xE1EA, + 0x6454, 0xBA4C, 0x6458, 0xBA4B, 0x6459, 0xE1F1, 0x645B, 0xE1DB, 0x645C, 0xE1E8, 0x645D, 0xE1DC, 0x645E, 0xE1E7, 0x645F, 0xBA4F, + 0x6460, 0xE1EB, 0x6461, 0xD962, 0x6465, 0xE1F2, 0x6466, 0xE1E3, 0x6467, 0xBA52, 0x6468, 0xE5BA, 0x6469, 0xBCAF, 0x646B, 0xE1F0, + 0x646C, 0xE1EF, 0x646D, 0xBA54, 0x646E, 0xE5AD, 0x646F, 0xBCB0, 0x6470, 0xE5AE, 0x6472, 0xE1DF, 0x6473, 0xE1E0, 0x6474, 0xE1DD, + 0x6475, 0xE1E2, 0x6476, 0xE1DE, 0x6477, 0xE1F3, 0x6478, 0xBA4E, 0x6479, 0xBCB1, 0x647A, 0xBA50, 0x647B, 0xBA55, 0x647D, 0xE1E1, + 0x647F, 0xE1ED, 0x6482, 0xE1E6, 0x6485, 0xE5B1, 0x6487, 0xBA4A, 0x6488, 0xBCB4, 0x6489, 0xE9AA, 0x648A, 0xE5B6, 0x648B, 0xE5B5, + 0x648C, 0xE5B7, 0x648F, 0xE5B4, 0x6490, 0xBCB5, 0x6492, 0xBCBB, 0x6493, 0xBCB8, 0x6495, 0xBCB9, 0x6496, 0xE5AF, 0x6497, 0xE5B2, + 0x6498, 0xE5BC, 0x6499, 0xBCC1, 0x649A, 0xBCBF, 0x649C, 0xE5B3, 0x649D, 0xD95A, 0x649E, 0xBCB2, 0x649F, 0xE5B9, 0x64A0, 0xE5B0, + 0x64A2, 0xBCC2, 0x64A3, 0xE5B8, 0x64A4, 0xBA4D, 0x64A5, 0xBCB7, 0x64A6, 0xE1E4, 0x64A9, 0xBCBA, 0x64AB, 0xBCBE, 0x64AC, 0xBCC0, + 0x64AD, 0xBCBD, 0x64AE, 0xBCBC, 0x64B0, 0xBCB6, 0x64B1, 0xE5BB, 0x64B2, 0xBCB3, 0x64B3, 0xBCC3, 0x64BB, 0xBED8, 0x64BC, 0xBED9, + 0x64BD, 0xE9A9, 0x64BE, 0xBEE2, 0x64BF, 0xBEDF, 0x64C1, 0xBED6, 0x64C2, 0xBEDD, 0x64C3, 0xE9AB, 0x64C4, 0xBEDB, 0x64C5, 0xBED5, + 0x64C7, 0xBEDC, 0x64C9, 0xE9A8, 0x64CA, 0xC0BB, 0x64CB, 0xBED7, 0x64CD, 0xBEDE, 0x64CE, 0xC0BA, 0x64CF, 0xE9A7, 0x64D0, 0xE9A6, + 0x64D2, 0xBEE0, 0x64D4, 0xBEE1, 0x64D6, 0xE9A5, 0x64D7, 0xE9A4, 0x64D8, 0xC0BC, 0x64D9, 0xE9AE, 0x64DA, 0xBEDA, 0x64DB, 0xE9AC, + 0x64E0, 0xC0BD, 0x64E2, 0xC0C2, 0x64E3, 0xECEA, 0x64E4, 0xECEC, 0x64E6, 0xC0BF, 0x64E8, 0xECED, 0x64E9, 0xECE9, 0x64EB, 0xECEB, + 0x64EC, 0xC0C0, 0x64ED, 0xC0C3, 0x64EF, 0xECE8, 0x64F0, 0xC0BE, 0x64F1, 0xC0C1, 0x64F2, 0xC259, 0x64F3, 0xE9AD, 0x64F4, 0xC258, + 0x64F7, 0xC25E, 0x64F8, 0xEFD4, 0x64FA, 0xC25C, 0x64FB, 0xC25D, 0x64FC, 0xEFD7, 0x64FD, 0xEFD3, 0x64FE, 0xC25A, 0x64FF, 0xEFD1, + 0x6500, 0xC36B, 0x6501, 0xEFD5, 0x6503, 0xEFD6, 0x6504, 0xEFD2, 0x6506, 0xC25B, 0x6507, 0xF242, 0x6509, 0xF245, 0x650C, 0xF246, + 0x650D, 0xF244, 0x650E, 0xF247, 0x650F, 0xC36C, 0x6510, 0xF243, 0x6513, 0xF44E, 0x6514, 0xC464, 0x6515, 0xF44D, 0x6516, 0xF44C, + 0x6517, 0xF44B, 0x6518, 0xC463, 0x6519, 0xC465, 0x651B, 0xF5CD, 0x651C, 0xC4E2, 0x651D, 0xC4E1, 0x6520, 0xF6E1, 0x6521, 0xF6E0, + 0x6522, 0xF6E3, 0x6523, 0xC5CB, 0x6524, 0xC575, 0x6525, 0xF7DD, 0x6526, 0xF6E2, 0x6529, 0xF7DC, 0x652A, 0xC5CD, 0x652B, 0xC5CC, + 0x652C, 0xC5F3, 0x652D, 0xF8A9, 0x652E, 0xF8EF, 0x652F, 0xA4E4, 0x6532, 0xD972, 0x6533, 0xE9AF, 0x6536, 0xA6AC, 0x6537, 0xCAF7, + 0x6538, 0xA7F1, 0x6539, 0xA7EF, 0x653B, 0xA7F0, 0x653D, 0xCCC1, 0x653E, 0xA9F1, 0x653F, 0xAC46, 0x6541, 0xCEE7, 0x6543, 0xCEE8, + 0x6545, 0xAC47, 0x6546, 0xD1CE, 0x6548, 0xAEC4, 0x6549, 0xAEC5, 0x654A, 0xD1CD, 0x654F, 0xB1D3, 0x6551, 0xB1CF, 0x6553, 0xD5A7, + 0x6554, 0xB1D6, 0x6555, 0xB1D5, 0x6556, 0xB1CE, 0x6557, 0xB1D1, 0x6558, 0xB1D4, 0x6559, 0xB1D0, 0x655C, 0xD976, 0x655D, 0xB1CD, + 0x655E, 0xB4AF, 0x6562, 0xB4B1, 0x6563, 0xB4B2, 0x6564, 0xD975, 0x6565, 0xD978, 0x6566, 0xB4B0, 0x6567, 0xD973, 0x6568, 0xD977, + 0x656A, 0xD974, 0x656C, 0xB771, 0x656F, 0xDDBC, 0x6572, 0xBA56, 0x6573, 0xE1F4, 0x6574, 0xBEE3, 0x6575, 0xBCC4, 0x6576, 0xE5BD, + 0x6577, 0xBCC5, 0x6578, 0xBCC6, 0x6579, 0xE5BF, 0x657A, 0xE5BE, 0x657B, 0xE5C0, 0x657C, 0xE9B1, 0x657F, 0xE9B0, 0x6580, 0xECEF, + 0x6581, 0xECEE, 0x6582, 0xC0C4, 0x6583, 0xC0C5, 0x6584, 0xF248, 0x6587, 0xA4E5, 0x658C, 0xD979, 0x6590, 0xB4B4, 0x6591, 0xB4B3, + 0x6592, 0xDDBD, 0x6594, 0xEFD8, 0x6595, 0xC4E3, 0x6596, 0xF7DE, 0x6597, 0xA4E6, 0x6599, 0xAEC6, 0x659B, 0xB1D8, 0x659C, 0xB1D7, + 0x659D, 0xD97A, 0x659E, 0xD97B, 0x659F, 0xB772, 0x65A0, 0xE1F5, 0x65A1, 0xBA57, 0x65A2, 0xE9B2, 0x65A4, 0xA4E7, 0x65A5, 0xA5B8, + 0x65A7, 0xA9F2, 0x65A8, 0xCCC2, 0x65AA, 0xCEE9, 0x65AB, 0xAC48, 0x65AC, 0xB1D9, 0x65AE, 0xD97C, 0x65AF, 0xB4B5, 0x65B0, 0xB773, + 0x65B2, 0xE5C1, 0x65B3, 0xE5C2, 0x65B6, 0xECF0, 0x65B7, 0xC25F, 0x65B8, 0xF8F0, 0x65B9, 0xA4E8, 0x65BB, 0xCCC3, 0x65BC, 0xA9F3, + 0x65BD, 0xAC49, 0x65BF, 0xCEEA, 0x65C1, 0xAEC7, 0x65C2, 0xD1D2, 0x65C3, 0xD1D0, 0x65C4, 0xD1D1, 0x65C5, 0xAEC8, 0x65C6, 0xD1CF, + 0x65CB, 0xB1DB, 0x65CC, 0xB1DC, 0x65CD, 0xD5A8, 0x65CE, 0xB1DD, 0x65CF, 0xB1DA, 0x65D0, 0xD97D, 0x65D2, 0xD97E, 0x65D3, 0xDDBE, + 0x65D6, 0xBA59, 0x65D7, 0xBA58, 0x65DA, 0xECF1, 0x65DB, 0xEFD9, 0x65DD, 0xF24A, 0x65DE, 0xF249, 0x65DF, 0xF44F, 0x65E1, 0xC95E, + 0x65E2, 0xAC4A, 0x65E5, 0xA4E9, 0x65E6, 0xA5B9, 0x65E8, 0xA6AE, 0x65E9, 0xA6AD, 0x65EC, 0xA6AF, 0x65ED, 0xA6B0, 0x65EE, 0xC9EE, + 0x65EF, 0xC9ED, 0x65F0, 0xCAF8, 0x65F1, 0xA7F2, 0x65F2, 0xCAFB, 0x65F3, 0xCAFA, 0x65F4, 0xCAF9, 0x65F5, 0xCAFC, 0x65FA, 0xA9F4, + 0x65FB, 0xCCC9, 0x65FC, 0xCCC5, 0x65FD, 0xCCCE, 0x6600, 0xA9FB, 0x6602, 0xA9F9, 0x6603, 0xCCCA, 0x6604, 0xCCC6, 0x6605, 0xCCCD, + 0x6606, 0xA9F8, 0x6607, 0xAA40, 0x6608, 0xCCC8, 0x6609, 0xCCC4, 0x660A, 0xA9FE, 0x660B, 0xCCCB, 0x660C, 0xA9F7, 0x660D, 0xCCCC, + 0x660E, 0xA9FA, 0x660F, 0xA9FC, 0x6610, 0xCCD0, 0x6611, 0xCCCF, 0x6612, 0xCCC7, 0x6613, 0xA9F6, 0x6614, 0xA9F5, 0x6615, 0xA9FD, + 0x661C, 0xCEEF, 0x661D, 0xCEF5, 0x661F, 0xAC50, 0x6620, 0xAC4D, 0x6621, 0xCEEC, 0x6622, 0xCEF1, 0x6624, 0xAC53, 0x6625, 0xAC4B, + 0x6626, 0xCEF0, 0x6627, 0xAC4E, 0x6628, 0xAC51, 0x662B, 0xCEF3, 0x662D, 0xAC4C, 0x662E, 0xCEF8, 0x662F, 0xAC4F, 0x6631, 0xAC52, + 0x6632, 0xCEED, 0x6633, 0xCEF2, 0x6634, 0xCEF6, 0x6635, 0xCEEE, 0x6636, 0xCEEB, 0x6639, 0xCEF7, 0x663A, 0xCEF4, 0x6641, 0xAED0, + 0x6642, 0xAEC9, 0x6643, 0xAECC, 0x6645, 0xAECF, 0x6647, 0xD1D5, 0x6649, 0xAECA, 0x664A, 0xD1D3, 0x664C, 0xAECE, 0x664F, 0xAECB, + 0x6651, 0xD1D6, 0x6652, 0xAECD, 0x6659, 0xD5AC, 0x665A, 0xB1DF, 0x665B, 0xD5AB, 0x665C, 0xD5AD, 0x665D, 0xB1DE, 0x665E, 0xB1E3, + 0x665F, 0xD1D4, 0x6661, 0xD5AA, 0x6662, 0xD5AE, 0x6664, 0xB1E0, 0x6665, 0xD5A9, 0x6666, 0xB1E2, 0x6668, 0xB1E1, 0x666A, 0xD9A7, + 0x666C, 0xD9A2, 0x666E, 0xB4B6, 0x666F, 0xB4BA, 0x6670, 0xB4B7, 0x6671, 0xD9A5, 0x6672, 0xD9A8, 0x6674, 0xB4B8, 0x6676, 0xB4B9, + 0x6677, 0xB4BE, 0x6678, 0xDDC7, 0x6679, 0xD9A6, 0x667A, 0xB4BC, 0x667B, 0xD9A3, 0x667C, 0xD9A1, 0x667E, 0xB4BD, 0x6680, 0xD9A4, + 0x6684, 0xB779, 0x6686, 0xDDBF, 0x6687, 0xB776, 0x6688, 0xB777, 0x6689, 0xB775, 0x668A, 0xDDC4, 0x668B, 0xDDC3, 0x668C, 0xDDC0, + 0x668D, 0xB77B, 0x6690, 0xDDC2, 0x6691, 0xB4BB, 0x6694, 0xDDC6, 0x6695, 0xDDC1, 0x6696, 0xB778, 0x6697, 0xB774, 0x6698, 0xB77A, + 0x6699, 0xDDC5, 0x669D, 0xBA5C, 0x669F, 0xE1F8, 0x66A0, 0xE1F7, 0x66A1, 0xE1F6, 0x66A2, 0xBA5A, 0x66A8, 0xBA5B, 0x66A9, 0xE5C5, + 0x66AA, 0xE5C8, 0x66AB, 0xBCC8, 0x66AE, 0xBCC7, 0x66AF, 0xE5C9, 0x66B0, 0xE5C4, 0x66B1, 0xBCCA, 0x66B2, 0xE5C6, 0x66B4, 0xBCC9, + 0x66B5, 0xE5C3, 0x66B7, 0xE5C7, 0x66B8, 0xBEE9, 0x66B9, 0xBEE6, 0x66BA, 0xE9BB, 0x66BB, 0xE9BA, 0x66BD, 0xE9B9, 0x66BE, 0xE9B4, + 0x66C0, 0xE9B5, 0x66C4, 0xBEE7, 0x66C6, 0xBEE4, 0x66C7, 0xBEE8, 0x66C8, 0xE9B3, 0x66C9, 0xBEE5, 0x66CA, 0xE9B6, 0x66CB, 0xE9B7, + 0x66CC, 0xE9BC, 0x66CF, 0xE9B8, 0x66D2, 0xECF2, 0x66D6, 0xC0C7, 0x66D8, 0xEFDC, 0x66D9, 0xC0C6, 0x66DA, 0xEFDA, 0x66DB, 0xEFDB, + 0x66DC, 0xC260, 0x66DD, 0xC36E, 0x66DE, 0xF24B, 0x66E0, 0xC36D, 0x66E3, 0xF451, 0x66E4, 0xF452, 0x66E6, 0xC466, 0x66E8, 0xF450, + 0x66E9, 0xC4E4, 0x66EB, 0xF7DF, 0x66EC, 0xC5CE, 0x66ED, 0xF8AA, 0x66EE, 0xF8AB, 0x66F0, 0xA4EA, 0x66F2, 0xA6B1, 0x66F3, 0xA6B2, + 0x66F4, 0xA7F3, 0x66F6, 0xCCD1, 0x66F7, 0xAC54, 0x66F8, 0xAED1, 0x66F9, 0xB1E4, 0x66FC, 0xB0D2, 0x66FE, 0xB4BF, 0x66FF, 0xB4C0, + 0x6700, 0xB3CC, 0x6701, 0xD9A9, 0x6703, 0xB77C, 0x6704, 0xE1FA, 0x6705, 0xE1F9, 0x6708, 0xA4EB, 0x6709, 0xA6B3, 0x670A, 0xCCD2, + 0x670B, 0xAA42, 0x670D, 0xAA41, 0x670F, 0xCEF9, 0x6710, 0xCEFA, 0x6712, 0xD1D7, 0x6713, 0xD1D8, 0x6714, 0xAED2, 0x6715, 0xAED3, + 0x6717, 0xAED4, 0x6718, 0xD5AF, 0x671B, 0xB1E6, 0x671D, 0xB4C2, 0x671F, 0xB4C1, 0x6720, 0xDDC8, 0x6721, 0xDF7A, 0x6722, 0xE1FB, + 0x6723, 0xE9BD, 0x6726, 0xC261, 0x6727, 0xC467, 0x6728, 0xA4EC, 0x672A, 0xA5BC, 0x672B, 0xA5BD, 0x672C, 0xA5BB, 0x672D, 0xA5BE, + 0x672E, 0xA5BA, 0x6731, 0xA6B6, 0x6733, 0xC9F6, 0x6734, 0xA6B5, 0x6735, 0xA6B7, 0x6738, 0xC9F1, 0x6739, 0xC9F0, 0x673A, 0xC9F3, + 0x673B, 0xC9F2, 0x673C, 0xC9F5, 0x673D, 0xA6B4, 0x673E, 0xC9EF, 0x673F, 0xC9F4, 0x6745, 0xCAFD, 0x6746, 0xA7FD, 0x6747, 0xCAFE, + 0x6748, 0xCB43, 0x6749, 0xA7FC, 0x674B, 0xCB47, 0x674C, 0xCB42, 0x674D, 0xCB45, 0x674E, 0xA7F5, 0x674F, 0xA7F6, 0x6750, 0xA7F7, + 0x6751, 0xA7F8, 0x6753, 0xA840, 0x6755, 0xCB41, 0x6756, 0xA7FA, 0x6757, 0xA841, 0x6759, 0xCB40, 0x675A, 0xCB46, 0x675C, 0xA7F9, + 0x675D, 0xCB44, 0x675E, 0xA7FB, 0x675F, 0xA7F4, 0x6760, 0xA7FE, 0x676A, 0xAA57, 0x676C, 0xCCD4, 0x676D, 0xAA43, 0x676F, 0xAA4D, + 0x6770, 0xAA4E, 0x6771, 0xAA46, 0x6772, 0xAA58, 0x6773, 0xAA48, 0x6774, 0xCCDC, 0x6775, 0xAA53, 0x6776, 0xCCD7, 0x6777, 0xAA49, + 0x6778, 0xCCE6, 0x6779, 0xCCE7, 0x677A, 0xCCDF, 0x677B, 0xCCD8, 0x677C, 0xAA56, 0x677D, 0xCCE4, 0x677E, 0xAA51, 0x677F, 0xAA4F, + 0x6781, 0xCCE5, 0x6783, 0xCCE3, 0x6784, 0xCCDB, 0x6785, 0xCCD3, 0x6786, 0xCCDA, 0x6787, 0xAA4A, 0x6789, 0xAA50, 0x678B, 0xAA44, + 0x678C, 0xCCDE, 0x678D, 0xCCDD, 0x678E, 0xCCD5, 0x6790, 0xAA52, 0x6791, 0xCCE1, 0x6792, 0xCCD6, 0x6793, 0xAA55, 0x6794, 0xCCE8, + 0x6795, 0xAA45, 0x6797, 0xAA4C, 0x6798, 0xCCD9, 0x6799, 0xCCE2, 0x679A, 0xAA54, 0x679C, 0xAA47, 0x679D, 0xAA4B, 0x679F, 0xCCE0, + 0x67AE, 0xCF5B, 0x67AF, 0xAC5C, 0x67B0, 0xAC69, 0x67B2, 0xCF56, 0x67B3, 0xCF4C, 0x67B4, 0xAC62, 0x67B5, 0xCF4A, 0x67B6, 0xAC5B, + 0x67B7, 0xCF45, 0x67B8, 0xAC65, 0x67B9, 0xCF52, 0x67BA, 0xCEFE, 0x67BB, 0xCF41, 0x67C0, 0xCF44, 0x67C1, 0xCEFB, 0x67C2, 0xCF51, + 0x67C3, 0xCF61, 0x67C4, 0xAC60, 0x67C5, 0xCF46, 0x67C6, 0xCF58, 0x67C8, 0xCEFD, 0x67C9, 0xCF5F, 0x67CA, 0xCF60, 0x67CB, 0xCF63, + 0x67CC, 0xCF5A, 0x67CD, 0xCF4B, 0x67CE, 0xCF53, 0x67CF, 0xAC66, 0x67D0, 0xAC59, 0x67D1, 0xAC61, 0x67D2, 0xAC6D, 0x67D3, 0xAC56, + 0x67D4, 0xAC58, 0x67D8, 0xCF43, 0x67D9, 0xAC6A, 0x67DA, 0xAC63, 0x67DB, 0xCF5D, 0x67DC, 0xCF40, 0x67DD, 0xAC6C, 0x67DE, 0xAC67, + 0x67DF, 0xCF49, 0x67E2, 0xAC6B, 0x67E3, 0xCF50, 0x67E4, 0xCF48, 0x67E5, 0xAC64, 0x67E6, 0xCF5C, 0x67E7, 0xCF54, 0x67E9, 0xAC5E, + 0x67EA, 0xCF62, 0x67EB, 0xCF47, 0x67EC, 0xAC5A, 0x67ED, 0xCF59, 0x67EE, 0xCF4F, 0x67EF, 0xAC5F, 0x67F0, 0xCF55, 0x67F1, 0xAC57, + 0x67F2, 0xCEFC, 0x67F3, 0xAC68, 0x67F4, 0xAEE3, 0x67F5, 0xAC5D, 0x67F6, 0xCF4E, 0x67F7, 0xCF4D, 0x67F8, 0xCF42, 0x67FA, 0xCF5E, + 0x67FC, 0xCF57, 0x67FF, 0xAC55, 0x6812, 0xD1EC, 0x6813, 0xAEEA, 0x6814, 0xD1ED, 0x6816, 0xD1E1, 0x6817, 0xAEDF, 0x6818, 0xAEEB, + 0x681A, 0xD1DA, 0x681C, 0xD1E3, 0x681D, 0xD1EB, 0x681F, 0xD1D9, 0x6820, 0xD1F4, 0x6821, 0xAED5, 0x6825, 0xD1F3, 0x6826, 0xD1EE, + 0x6828, 0xD1EF, 0x6829, 0xAEDD, 0x682A, 0xAEE8, 0x682B, 0xD1E5, 0x682D, 0xD1E6, 0x682E, 0xD1F0, 0x682F, 0xD1E7, 0x6831, 0xD1E2, + 0x6832, 0xD1DC, 0x6833, 0xD1DD, 0x6834, 0xD1EA, 0x6835, 0xD1E4, 0x6838, 0xAED6, 0x6839, 0xAEDA, 0x683A, 0xD1F2, 0x683B, 0xD1DE, + 0x683C, 0xAEE6, 0x683D, 0xAEE2, 0x6840, 0xAEE5, 0x6841, 0xAEEC, 0x6842, 0xAEDB, 0x6843, 0xAEE7, 0x6844, 0xD1E9, 0x6845, 0xAEE9, + 0x6846, 0xAED8, 0x6848, 0xAED7, 0x6849, 0xD1DB, 0x684B, 0xD1DF, 0x684C, 0xAEE0, 0x684D, 0xD1F1, 0x684E, 0xD1E8, 0x684F, 0xD1E0, + 0x6850, 0xAEE4, 0x6851, 0xAEE1, 0x6853, 0xAED9, 0x6854, 0xAEDC, 0x686B, 0xD5C4, 0x686D, 0xD5B4, 0x686E, 0xD5B5, 0x686F, 0xD5B9, + 0x6871, 0xD5C8, 0x6872, 0xD5C5, 0x6874, 0xD5BE, 0x6875, 0xD5BD, 0x6876, 0xB1ED, 0x6877, 0xD5C1, 0x6878, 0xD5D0, 0x6879, 0xD5B0, + 0x687B, 0xD5D1, 0x687C, 0xD5C3, 0x687D, 0xD5D5, 0x687E, 0xD5C9, 0x687F, 0xB1EC, 0x6880, 0xD5C7, 0x6881, 0xB1E7, 0x6882, 0xB1FC, + 0x6883, 0xB1F2, 0x6885, 0xB1F6, 0x6886, 0xB1F5, 0x6887, 0xD5B1, 0x6889, 0xD5CE, 0x688A, 0xD5D4, 0x688B, 0xD5CC, 0x688C, 0xD5D3, + 0x688F, 0xD5C0, 0x6890, 0xD5B2, 0x6891, 0xD5D2, 0x6892, 0xD5C2, 0x6893, 0xB1EA, 0x6894, 0xB1F7, 0x6896, 0xD5CB, 0x6897, 0xB1F0, + 0x689B, 0xD5CA, 0x689C, 0xD5B3, 0x689D, 0xB1F8, 0x689F, 0xB1FA, 0x68A0, 0xD5CD, 0x68A1, 0xB1FB, 0x68A2, 0xB1E9, 0x68A3, 0xD5BA, + 0x68A4, 0xD5CF, 0x68A7, 0xB1EF, 0x68A8, 0xB1F9, 0x68A9, 0xD5BC, 0x68AA, 0xD5C6, 0x68AB, 0xD5B7, 0x68AC, 0xD5BB, 0x68AD, 0xB1F4, + 0x68AE, 0xD5B6, 0x68AF, 0xB1E8, 0x68B0, 0xB1F1, 0x68B1, 0xB1EE, 0x68B2, 0xD5BF, 0x68B3, 0xAEDE, 0x68B4, 0xD9C0, 0x68B5, 0xB1EB, + 0x68C4, 0xB1F3, 0x68C6, 0xD9C3, 0x68C7, 0xD9D9, 0x68C8, 0xD9CE, 0x68C9, 0xB4D6, 0x68CB, 0xB4D1, 0x68CC, 0xD9BD, 0x68CD, 0xB4D2, + 0x68CE, 0xD9CD, 0x68D0, 0xD9C6, 0x68D1, 0xD9D3, 0x68D2, 0xB4CE, 0x68D3, 0xD9AB, 0x68D4, 0xD9D5, 0x68D5, 0xB4C4, 0x68D6, 0xD9B3, + 0x68D7, 0xB4C7, 0x68D8, 0xB4C6, 0x68DA, 0xB4D7, 0x68DC, 0xD9AD, 0x68DD, 0xD9CF, 0x68DE, 0xD9D0, 0x68DF, 0xB4C9, 0x68E0, 0xB4C5, + 0x68E1, 0xD9BB, 0x68E3, 0xB4D0, 0x68E4, 0xD9B6, 0x68E6, 0xD9D1, 0x68E7, 0xB4CC, 0x68E8, 0xD9C9, 0x68E9, 0xD9D6, 0x68EA, 0xD9B0, + 0x68EB, 0xD9B5, 0x68EC, 0xD9AF, 0x68EE, 0xB4CB, 0x68EF, 0xD9C2, 0x68F0, 0xDDDE, 0x68F1, 0xD9B1, 0x68F2, 0xB4CF, 0x68F3, 0xD9BA, + 0x68F4, 0xD9D2, 0x68F5, 0xB4CA, 0x68F6, 0xD9B7, 0x68F7, 0xD9B4, 0x68F8, 0xD9C5, 0x68F9, 0xB4CD, 0x68FA, 0xB4C3, 0x68FB, 0xB4D9, + 0x68FC, 0xD9C8, 0x68FD, 0xD9C7, 0x6904, 0xD9AC, 0x6905, 0xB4C8, 0x6906, 0xD9D4, 0x6907, 0xD9BC, 0x6908, 0xD9BE, 0x690A, 0xD9CB, + 0x690B, 0xD9CA, 0x690C, 0xD9AA, 0x690D, 0xB4D3, 0x690E, 0xB4D5, 0x690F, 0xD9B2, 0x6910, 0xD9B9, 0x6911, 0xD9C1, 0x6912, 0xB4D4, + 0x6913, 0xD9B8, 0x6914, 0xD9C4, 0x6915, 0xD9D7, 0x6917, 0xD9CC, 0x6925, 0xD9D8, 0x692A, 0xD9AE, 0x692F, 0xDDF2, 0x6930, 0xB7A6, + 0x6932, 0xDDF0, 0x6933, 0xDDDB, 0x6934, 0xDDE0, 0x6935, 0xDDD9, 0x6937, 0xDDEC, 0x6938, 0xDDCB, 0x6939, 0xDDD2, 0x693B, 0xDDEA, + 0x693C, 0xDDF4, 0x693D, 0xDDDC, 0x693F, 0xDDCF, 0x6940, 0xDDE2, 0x6941, 0xDDE7, 0x6942, 0xDDD3, 0x6944, 0xDDE4, 0x6945, 0xDDD0, + 0x6948, 0xDDD7, 0x6949, 0xDDD8, 0x694A, 0xB7A8, 0x694B, 0xDDEB, 0x694C, 0xDDE9, 0x694E, 0xDDCC, 0x694F, 0xDDEE, 0x6951, 0xDDEF, + 0x6952, 0xDDF1, 0x6953, 0xB7AC, 0x6954, 0xB7A4, 0x6956, 0xD5B8, 0x6957, 0xDDD4, 0x6958, 0xDDE6, 0x6959, 0xDDD5, 0x695A, 0xB7A1, + 0x695B, 0xB7B1, 0x695C, 0xDDED, 0x695D, 0xB7AF, 0x695E, 0xB7AB, 0x695F, 0xDDCA, 0x6960, 0xB7A3, 0x6962, 0xDDCD, 0x6963, 0xB7B0, + 0x6965, 0xDDDD, 0x6966, 0xDDC9, 0x6968, 0xB7A9, 0x6969, 0xDDE1, 0x696A, 0xDDD1, 0x696B, 0xB7AA, 0x696C, 0xDDDA, 0x696D, 0xB77E, + 0x696E, 0xB4D8, 0x696F, 0xDDE3, 0x6970, 0xD9BF, 0x6971, 0xDDCE, 0x6974, 0xDDE8, 0x6975, 0xB7A5, 0x6976, 0xDDE5, 0x6977, 0xB7A2, + 0x6978, 0xDDDF, 0x6979, 0xB7AD, 0x697A, 0xDDD6, 0x697B, 0xDDF3, 0x6982, 0xB7A7, 0x6983, 0xDEC6, 0x6986, 0xB7AE, 0x698D, 0xE24A, + 0x698E, 0xE248, 0x6990, 0xE25E, 0x6991, 0xE246, 0x6993, 0xE258, 0x6994, 0xB77D, 0x6995, 0xBA5F, 0x6996, 0xE242, 0x6997, 0xE25D, + 0x6999, 0xE247, 0x699A, 0xE255, 0x699B, 0xBA64, 0x699C, 0xBA5D, 0x699E, 0xE25B, 0x69A0, 0xE240, 0x69A1, 0xE25A, 0x69A3, 0xBA6F, + 0x69A4, 0xE251, 0x69A5, 0xE261, 0x69A6, 0xBA6D, 0x69A7, 0xE249, 0x69A8, 0xBA5E, 0x69A9, 0xE24B, 0x69AA, 0xE259, 0x69AB, 0xBA67, + 0x69AC, 0xE244, 0x69AD, 0xBA6B, 0x69AE, 0xBA61, 0x69AF, 0xE24D, 0x69B0, 0xE243, 0x69B1, 0xE1FC, 0x69B3, 0xE257, 0x69B4, 0xBA68, + 0x69B5, 0xE260, 0x69B6, 0xE1FD, 0x69B7, 0xBA65, 0x69B9, 0xE253, 0x69BB, 0xBA66, 0x69BC, 0xE245, 0x69BD, 0xE250, 0x69BE, 0xE24C, + 0x69BF, 0xE24E, 0x69C1, 0xBA60, 0x69C2, 0xE25F, 0x69C3, 0xBA6E, 0x69C4, 0xE24F, 0x69C6, 0xE262, 0x69C9, 0xE1FE, 0x69CA, 0xE254, + 0x69CB, 0xBA63, 0x69CC, 0xBA6C, 0x69CD, 0xBA6A, 0x69CE, 0xE241, 0x69CF, 0xE256, 0x69D0, 0xBA69, 0x69D3, 0xBA62, 0x69D4, 0xE252, + 0x69D9, 0xE25C, 0x69E2, 0xE5D5, 0x69E4, 0xE5D1, 0x69E5, 0xE5CD, 0x69E6, 0xE5E1, 0x69E7, 0xE5DE, 0x69E8, 0xBCCD, 0x69EB, 0xE5E5, + 0x69EC, 0xE5D4, 0x69ED, 0xBCD8, 0x69EE, 0xE5DB, 0x69F1, 0xE5D0, 0x69F2, 0xE5DA, 0x69F3, 0xBCD5, 0x69F4, 0xE5EE, 0x69F6, 0xE5EB, + 0x69F7, 0xE5DD, 0x69F8, 0xE5CE, 0x69FB, 0xE5E2, 0x69FC, 0xE5E4, 0x69FD, 0xBCD1, 0x69FE, 0xE5D8, 0x69FF, 0xE5D3, 0x6A00, 0xE5CA, + 0x6A01, 0xBCCE, 0x6A02, 0xBCD6, 0x6A04, 0xE5E7, 0x6A05, 0xBCD7, 0x6A06, 0xE5CB, 0x6A07, 0xE5ED, 0x6A08, 0xE5E0, 0x6A09, 0xE5E6, + 0x6A0A, 0xBCD4, 0x6A0D, 0xE5E3, 0x6A0F, 0xE5EA, 0x6A11, 0xBCD9, 0x6A13, 0xBCD3, 0x6A14, 0xE5DC, 0x6A15, 0xE5CF, 0x6A16, 0xE5EF, + 0x6A17, 0xE5CC, 0x6A18, 0xE5E8, 0x6A19, 0xBCD0, 0x6A1B, 0xE5D6, 0x6A1D, 0xE5D7, 0x6A1E, 0xBCCF, 0x6A1F, 0xBCCC, 0x6A20, 0xE5D2, + 0x6A21, 0xBCD2, 0x6A23, 0xBCCB, 0x6A25, 0xE5E9, 0x6A26, 0xE5EC, 0x6A27, 0xE5D9, 0x6A28, 0xE9CA, 0x6A32, 0xE9C2, 0x6A34, 0xE9BE, + 0x6A35, 0xBEF6, 0x6A38, 0xBEEB, 0x6A39, 0xBEF0, 0x6A3A, 0xBEEC, 0x6A3B, 0xE9CC, 0x6A3C, 0xE9D7, 0x6A3D, 0xBEEA, 0x6A3E, 0xE9C4, + 0x6A3F, 0xE9CD, 0x6A40, 0xE5DF, 0x6A41, 0xE9CE, 0x6A44, 0xBEF1, 0x6A46, 0xE9DD, 0x6A47, 0xBEF5, 0x6A48, 0xBEF8, 0x6A49, 0xE9C0, + 0x6A4B, 0xBEF4, 0x6A4D, 0xE9DB, 0x6A4E, 0xE9DC, 0x6A4F, 0xE9D2, 0x6A50, 0xE9D1, 0x6A51, 0xE9C9, 0x6A54, 0xE9D3, 0x6A55, 0xE9DA, + 0x6A56, 0xE9D9, 0x6A58, 0xBEEF, 0x6A59, 0xBEED, 0x6A5A, 0xE9CB, 0x6A5B, 0xE9C8, 0x6A5D, 0xE9C5, 0x6A5E, 0xE9D8, 0x6A5F, 0xBEF7, + 0x6A60, 0xE9D6, 0x6A61, 0xBEF3, 0x6A62, 0xBEF2, 0x6A64, 0xE9D0, 0x6A66, 0xE9BF, 0x6A67, 0xE9C1, 0x6A68, 0xE9C3, 0x6A69, 0xE9D5, + 0x6A6A, 0xE9CF, 0x6A6B, 0xBEEE, 0x6A6D, 0xE9C6, 0x6A6F, 0xE9D4, 0x6A76, 0xE9C7, 0x6A7E, 0xC0CF, 0x6A7F, 0xED45, 0x6A80, 0xC0C8, + 0x6A81, 0xECF5, 0x6A83, 0xED41, 0x6A84, 0xC0CA, 0x6A85, 0xED48, 0x6A87, 0xECFC, 0x6A89, 0xECF7, 0x6A8C, 0xED49, 0x6A8D, 0xECF3, + 0x6A8E, 0xECFE, 0x6A90, 0xC0D1, 0x6A91, 0xED44, 0x6A92, 0xED4A, 0x6A93, 0xECFD, 0x6A94, 0xC0C9, 0x6A95, 0xED40, 0x6A96, 0xECF4, + 0x6A97, 0xC0D0, 0x6A9A, 0xED47, 0x6A9B, 0xECF9, 0x6A9C, 0xC0CC, 0x6A9E, 0xECFB, 0x6A9F, 0xECF8, 0x6AA0, 0xC0D2, 0x6AA1, 0xECFA, + 0x6AA2, 0xC0CB, 0x6AA3, 0xC0CE, 0x6AA4, 0xED43, 0x6AA5, 0xECF6, 0x6AA6, 0xED46, 0x6AA8, 0xED42, 0x6AAC, 0xC263, 0x6AAD, 0xEFE7, + 0x6AAE, 0xC268, 0x6AAF, 0xC269, 0x6AB3, 0xC262, 0x6AB4, 0xEFE6, 0x6AB6, 0xEFE3, 0x6AB7, 0xEFE4, 0x6AB8, 0xC266, 0x6AB9, 0xEFDE, + 0x6ABA, 0xEFE2, 0x6ABB, 0xC265, 0x6ABD, 0xEFDF, 0x6AC2, 0xC267, 0x6AC3, 0xC264, 0x6AC5, 0xEFDD, 0x6AC6, 0xEFE1, 0x6AC7, 0xEFE5, + 0x6ACB, 0xF251, 0x6ACC, 0xF24E, 0x6ACD, 0xF257, 0x6ACF, 0xF256, 0x6AD0, 0xF254, 0x6AD1, 0xF24F, 0x6AD3, 0xC372, 0x6AD9, 0xF250, + 0x6ADA, 0xC371, 0x6ADB, 0xC0CD, 0x6ADC, 0xF253, 0x6ADD, 0xC370, 0x6ADE, 0xF258, 0x6ADF, 0xF252, 0x6AE0, 0xF24D, 0x6AE1, 0xEFE0, + 0x6AE5, 0xC36F, 0x6AE7, 0xF24C, 0x6AE8, 0xF456, 0x6AEA, 0xF455, 0x6AEB, 0xF255, 0x6AEC, 0xC468, 0x6AEE, 0xF459, 0x6AEF, 0xF45A, + 0x6AF0, 0xF454, 0x6AF1, 0xF458, 0x6AF3, 0xF453, 0x6AF8, 0xF5D1, 0x6AF9, 0xF457, 0x6AFA, 0xC4E7, 0x6AFB, 0xC4E5, 0x6AFC, 0xF5CF, + 0x6B00, 0xF5D2, 0x6B02, 0xF5CE, 0x6B03, 0xF5D0, 0x6B04, 0xC4E6, 0x6B08, 0xF6E5, 0x6B09, 0xF6E6, 0x6B0A, 0xC576, 0x6B0B, 0xF6E4, + 0x6B0F, 0xF7E2, 0x6B10, 0xC5CF, 0x6B11, 0xF7E0, 0x6B12, 0xF7E1, 0x6B13, 0xF8AC, 0x6B16, 0xC656, 0x6B17, 0xF8F3, 0x6B18, 0xF8F1, + 0x6B19, 0xF8F2, 0x6B1A, 0xF8F4, 0x6B1E, 0xF9BB, 0x6B20, 0xA4ED, 0x6B21, 0xA6B8, 0x6B23, 0xAA59, 0x6B25, 0xCCE9, 0x6B28, 0xCF64, + 0x6B2C, 0xD1F5, 0x6B2D, 0xD1F7, 0x6B2F, 0xD1F6, 0x6B31, 0xD1F8, 0x6B32, 0xB1FD, 0x6B33, 0xD5D7, 0x6B34, 0xD1F9, 0x6B36, 0xD5D6, + 0x6B37, 0xD5D8, 0x6B38, 0xD5D9, 0x6B39, 0xD9DA, 0x6B3A, 0xB4DB, 0x6B3B, 0xD9DB, 0x6B3C, 0xD9DD, 0x6B3D, 0xB4DC, 0x6B3E, 0xB4DA, + 0x6B3F, 0xD9DC, 0x6B41, 0xDDFA, 0x6B42, 0xDDF8, 0x6B43, 0xDDF7, 0x6B45, 0xDDF6, 0x6B46, 0xDDF5, 0x6B47, 0xB7B2, 0x6B48, 0xDDF9, + 0x6B49, 0xBA70, 0x6B4A, 0xE263, 0x6B4B, 0xE265, 0x6B4C, 0xBA71, 0x6B4D, 0xE264, 0x6B4E, 0xBCDB, 0x6B50, 0xBCDA, 0x6B51, 0xE5F0, + 0x6B54, 0xE9DF, 0x6B55, 0xE9DE, 0x6B56, 0xE9E0, 0x6B59, 0xBEF9, 0x6B5B, 0xED4B, 0x6B5C, 0xC0D3, 0x6B5E, 0xEFE8, 0x6B5F, 0xC26A, + 0x6B60, 0xF259, 0x6B61, 0xC577, 0x6B62, 0xA4EE, 0x6B63, 0xA5BF, 0x6B64, 0xA6B9, 0x6B65, 0xA842, 0x6B66, 0xAA5A, 0x6B67, 0xAA5B, + 0x6B6A, 0xAC6E, 0x6B6D, 0xD1FA, 0x6B72, 0xB7B3, 0x6B76, 0xE6D1, 0x6B77, 0xBEFA, 0x6B78, 0xC26B, 0x6B79, 0xA4EF, 0x6B7B, 0xA6BA, + 0x6B7E, 0xCCEB, 0x6B7F, 0xAA5C, 0x6B80, 0xCCEA, 0x6B82, 0xCF65, 0x6B83, 0xAC6F, 0x6B84, 0xCF66, 0x6B86, 0xAC70, 0x6B88, 0xD1FC, + 0x6B89, 0xAEEE, 0x6B8A, 0xAEED, 0x6B8C, 0xD5DE, 0x6B8D, 0xD5DC, 0x6B8E, 0xD5DD, 0x6B8F, 0xD5DB, 0x6B91, 0xD5DA, 0x6B94, 0xD9DE, + 0x6B95, 0xD9E1, 0x6B96, 0xB4DE, 0x6B97, 0xD9DF, 0x6B98, 0xB4DD, 0x6B99, 0xD9E0, 0x6B9B, 0xDDFB, 0x6B9E, 0xE266, 0x6B9F, 0xE267, + 0x6BA0, 0xE268, 0x6BA2, 0xE5F3, 0x6BA3, 0xE5F2, 0x6BA4, 0xBCDC, 0x6BA5, 0xE5F1, 0x6BA6, 0xE5F4, 0x6BA7, 0xE9E1, 0x6BAA, 0xE9E2, + 0x6BAB, 0xE9E3, 0x6BAD, 0xED4C, 0x6BAE, 0xC0D4, 0x6BAF, 0xC26C, 0x6BB0, 0xF25A, 0x6BB2, 0xC4E8, 0x6BB3, 0xC95F, 0x6BB5, 0xAC71, + 0x6BB6, 0xCF67, 0x6BB7, 0xAEEF, 0x6BBA, 0xB1FE, 0x6BBC, 0xB4DF, 0x6BBD, 0xD9E2, 0x6BBF, 0xB7B5, 0x6BC0, 0xB7B4, 0x6BC3, 0xE269, + 0x6BC4, 0xE26A, 0x6BC5, 0xBCDD, 0x6BC6, 0xBCDE, 0x6BC7, 0xE9E5, 0x6BC8, 0xE9E4, 0x6BC9, 0xEFE9, 0x6BCA, 0xF7E3, 0x6BCB, 0xA4F0, + 0x6BCC, 0xC960, 0x6BCD, 0xA5C0, 0x6BCF, 0xA843, 0x6BD0, 0xCB48, 0x6BD2, 0xAC72, 0x6BD3, 0xB7B6, 0x6BD4, 0xA4F1, 0x6BD6, 0xCF68, + 0x6BD7, 0xAC73, 0x6BD8, 0xCF69, 0x6BDA, 0xC0D5, 0x6BDB, 0xA4F2, 0x6BDE, 0xCCEC, 0x6BE0, 0xCF6A, 0x6BE2, 0xD242, 0x6BE3, 0xD241, + 0x6BE4, 0xD1FE, 0x6BE6, 0xD1FD, 0x6BE7, 0xD243, 0x6BE8, 0xD240, 0x6BEB, 0xB240, 0x6BEC, 0xB241, 0x6BEF, 0xB4E0, 0x6BF0, 0xD9E3, + 0x6BF2, 0xD9E4, 0x6BF3, 0xD9E5, 0x6BF7, 0xDE41, 0x6BF8, 0xDE42, 0x6BF9, 0xDE40, 0x6BFB, 0xDDFD, 0x6BFC, 0xDDFE, 0x6BFD, 0xB7B7, + 0x6BFE, 0xE26B, 0x6BFF, 0xE5F7, 0x6C00, 0xE5F6, 0x6C01, 0xE5F5, 0x6C02, 0xE5F8, 0x6C03, 0xE9E7, 0x6C04, 0xE9E6, 0x6C05, 0xBEFB, + 0x6C06, 0xE9E8, 0x6C08, 0xC0D6, 0x6C09, 0xED4D, 0x6C0B, 0xEFEA, 0x6C0C, 0xF25B, 0x6C0D, 0xF6E7, 0x6C0F, 0xA4F3, 0x6C10, 0xA5C2, + 0x6C11, 0xA5C1, 0x6C13, 0xAA5D, 0x6C14, 0xC961, 0x6C15, 0xC97E, 0x6C16, 0xA6BB, 0x6C18, 0xC9F7, 0x6C19, 0xCB49, 0x6C1A, 0xCB4A, + 0x6C1B, 0xAA5E, 0x6C1D, 0xCCED, 0x6C1F, 0xAC74, 0x6C20, 0xCF6B, 0x6C21, 0xCF6C, 0x6C23, 0xAEF0, 0x6C24, 0xAEF4, 0x6C25, 0xD244, + 0x6C26, 0xAEF3, 0x6C27, 0xAEF1, 0x6C28, 0xAEF2, 0x6C2A, 0xD5DF, 0x6C2B, 0xB242, 0x6C2C, 0xB4E3, 0x6C2E, 0xB4E1, 0x6C2F, 0xB4E2, + 0x6C30, 0xD9E6, 0x6C33, 0xBA72, 0x6C34, 0xA4F4, 0x6C36, 0xC9A1, 0x6C38, 0xA5C3, 0x6C3B, 0xC9A4, 0x6C3E, 0xA5C6, 0x6C3F, 0xC9A3, + 0x6C40, 0xA5C5, 0x6C41, 0xA5C4, 0x6C42, 0xA844, 0x6C43, 0xC9A2, 0x6C46, 0xC9F8, 0x6C4A, 0xC9FC, 0x6C4B, 0xC9FE, 0x6C4C, 0xCA40, + 0x6C4D, 0xA6C5, 0x6C4E, 0xA6C6, 0x6C4F, 0xC9FB, 0x6C50, 0xA6C1, 0x6C52, 0xC9F9, 0x6C54, 0xC9FD, 0x6C55, 0xA6C2, 0x6C57, 0xA6BD, + 0x6C59, 0xA6BE, 0x6C5B, 0xA6C4, 0x6C5C, 0xC9FA, 0x6C5D, 0xA6BC, 0x6C5E, 0xA845, 0x6C5F, 0xA6BF, 0x6C60, 0xA6C0, 0x6C61, 0xA6C3, + 0x6C65, 0xCB5B, 0x6C66, 0xCB59, 0x6C67, 0xCB4C, 0x6C68, 0xA851, 0x6C69, 0xCB53, 0x6C6A, 0xA84C, 0x6C6B, 0xCB4D, 0x6C6D, 0xCB55, + 0x6C6F, 0xCB52, 0x6C70, 0xA84F, 0x6C71, 0xCB51, 0x6C72, 0xA856, 0x6C73, 0xCB5A, 0x6C74, 0xA858, 0x6C76, 0xA85A, 0x6C78, 0xCB4B, + 0x6C7A, 0xA84D, 0x6C7B, 0xCB5C, 0x6C7D, 0xA854, 0x6C7E, 0xA857, 0x6C80, 0xCD45, 0x6C81, 0xA847, 0x6C82, 0xA85E, 0x6C83, 0xA855, + 0x6C84, 0xCB4E, 0x6C85, 0xA84A, 0x6C86, 0xA859, 0x6C87, 0xCB56, 0x6C88, 0xA848, 0x6C89, 0xA849, 0x6C8A, 0xCD43, 0x6C8B, 0xCB4F, + 0x6C8C, 0xA850, 0x6C8D, 0xA85B, 0x6C8E, 0xCB5D, 0x6C8F, 0xCB50, 0x6C90, 0xA84E, 0x6C92, 0xA853, 0x6C93, 0xCCEE, 0x6C94, 0xA85C, + 0x6C95, 0xCB57, 0x6C96, 0xA852, 0x6C98, 0xA85D, 0x6C99, 0xA846, 0x6C9A, 0xCB54, 0x6C9B, 0xA84B, 0x6C9C, 0xCB58, 0x6C9D, 0xCD44, + 0x6CAB, 0xAA6A, 0x6CAC, 0xAA7A, 0x6CAD, 0xCCF5, 0x6CAE, 0xAA71, 0x6CB0, 0xCD4B, 0x6CB1, 0xAA62, 0x6CB3, 0xAA65, 0x6CB4, 0xCD42, + 0x6CB6, 0xCCF3, 0x6CB7, 0xCCF7, 0x6CB8, 0xAA6D, 0x6CB9, 0xAA6F, 0x6CBA, 0xCCFA, 0x6CBB, 0xAA76, 0x6CBC, 0xAA68, 0x6CBD, 0xAA66, + 0x6CBE, 0xAA67, 0x6CBF, 0xAA75, 0x6CC0, 0xCD47, 0x6CC1, 0xAA70, 0x6CC2, 0xCCF9, 0x6CC3, 0xCCFB, 0x6CC4, 0xAA6E, 0x6CC5, 0xAA73, + 0x6CC6, 0xCCFC, 0x6CC7, 0xCD4A, 0x6CC9, 0xAC75, 0x6CCA, 0xAA79, 0x6CCC, 0xAA63, 0x6CCD, 0xCD49, 0x6CCF, 0xCD4D, 0x6CD0, 0xCCF8, + 0x6CD1, 0xCD4F, 0x6CD2, 0xCD40, 0x6CD3, 0xAA6C, 0x6CD4, 0xCCF4, 0x6CD5, 0xAA6B, 0x6CD6, 0xAA7D, 0x6CD7, 0xAA72, 0x6CD9, 0xCCF2, + 0x6CDA, 0xCF75, 0x6CDB, 0xAA78, 0x6CDC, 0xAA7C, 0x6CDD, 0xCD41, 0x6CDE, 0xCD46, 0x6CE0, 0xAA7E, 0x6CE1, 0xAA77, 0x6CE2, 0xAA69, + 0x6CE3, 0xAA5F, 0x6CE5, 0xAA64, 0x6CE7, 0xCCF6, 0x6CE8, 0xAA60, 0x6CE9, 0xCD4E, 0x6CEB, 0xCCF0, 0x6CEC, 0xCCEF, 0x6CED, 0xCCFD, + 0x6CEE, 0xCCF1, 0x6CEF, 0xAA7B, 0x6CF0, 0xAEF5, 0x6CF1, 0xAA74, 0x6CF2, 0xCCFE, 0x6CF3, 0xAA61, 0x6CF5, 0xACA6, 0x6CF9, 0xCD4C, + 0x6D00, 0xCF7C, 0x6D01, 0xCFA1, 0x6D03, 0xCFA4, 0x6D04, 0xCF77, 0x6D07, 0xCFA7, 0x6D08, 0xCFAA, 0x6D09, 0xCFAC, 0x6D0A, 0xCF74, + 0x6D0B, 0xAC76, 0x6D0C, 0xAC7B, 0x6D0D, 0xD249, 0x6D0E, 0xACAD, 0x6D0F, 0xCFA5, 0x6D10, 0xCFAD, 0x6D11, 0xCF7B, 0x6D12, 0xCF73, + 0x6D16, 0xD264, 0x6D17, 0xAC7E, 0x6D18, 0xCFA2, 0x6D19, 0xCF78, 0x6D1A, 0xCF7A, 0x6D1B, 0xACA5, 0x6D1D, 0xCF7D, 0x6D1E, 0xAC7D, + 0x6D1F, 0xCF70, 0x6D20, 0xCFA8, 0x6D22, 0xCFAB, 0x6D25, 0xAC7A, 0x6D27, 0xACA8, 0x6D28, 0xCF6D, 0x6D29, 0xACAA, 0x6D2A, 0xAC78, + 0x6D2B, 0xACAE, 0x6D2C, 0xCFA9, 0x6D2D, 0xCF6F, 0x6D2E, 0xACAB, 0x6D2F, 0xD25E, 0x6D30, 0xCD48, 0x6D31, 0xAC7C, 0x6D32, 0xAC77, + 0x6D33, 0xCF76, 0x6D34, 0xCF6E, 0x6D35, 0xACAC, 0x6D36, 0xACA4, 0x6D37, 0xCFA3, 0x6D38, 0xACA9, 0x6D39, 0xACA7, 0x6D3A, 0xCF79, + 0x6D3B, 0xACA1, 0x6D3C, 0xCF71, 0x6D3D, 0xACA2, 0x6D3E, 0xACA3, 0x6D3F, 0xCF72, 0x6D40, 0xCFA6, 0x6D41, 0xAC79, 0x6D42, 0xCF7E, + 0x6D58, 0xD24C, 0x6D59, 0xAEFD, 0x6D5A, 0xAF43, 0x6D5E, 0xD255, 0x6D5F, 0xD25B, 0x6D60, 0xD257, 0x6D61, 0xD24A, 0x6D62, 0xD24D, + 0x6D63, 0xD246, 0x6D64, 0xD247, 0x6D65, 0xAF4A, 0x6D66, 0xAEFA, 0x6D67, 0xD256, 0x6D68, 0xD25F, 0x6D69, 0xAF45, 0x6D6A, 0xAEF6, + 0x6D6C, 0xAF40, 0x6D6D, 0xD24E, 0x6D6E, 0xAF42, 0x6D6F, 0xD24F, 0x6D70, 0xD259, 0x6D74, 0xAF44, 0x6D75, 0xD268, 0x6D76, 0xD248, + 0x6D77, 0xAEFC, 0x6D78, 0xAEFB, 0x6D79, 0xAF48, 0x6D7A, 0xD245, 0x6D7B, 0xD266, 0x6D7C, 0xD25A, 0x6D7D, 0xD267, 0x6D7E, 0xD261, + 0x6D7F, 0xD253, 0x6D80, 0xD262, 0x6D82, 0xD25C, 0x6D83, 0xD265, 0x6D84, 0xD263, 0x6D85, 0xAF49, 0x6D86, 0xD254, 0x6D87, 0xAEF9, + 0x6D88, 0xAEF8, 0x6D89, 0xAF41, 0x6D8A, 0xAF47, 0x6D8B, 0xD260, 0x6D8C, 0xAF46, 0x6D8D, 0xD251, 0x6D8E, 0xB243, 0x6D90, 0xD269, + 0x6D91, 0xD250, 0x6D92, 0xD24B, 0x6D93, 0xAEFE, 0x6D94, 0xAF4B, 0x6D95, 0xAEF7, 0x6D97, 0xD258, 0x6D98, 0xD25D, 0x6DAA, 0xB265, + 0x6DAB, 0xD5E1, 0x6DAC, 0xD5E5, 0x6DAE, 0xB252, 0x6DAF, 0xB250, 0x6DB2, 0xB247, 0x6DB3, 0xD5E3, 0x6DB4, 0xD5E2, 0x6DB5, 0xB25B, + 0x6DB7, 0xD5E8, 0x6DB8, 0xB255, 0x6DBA, 0xD5FA, 0x6DBB, 0xD647, 0x6DBC, 0xB244, 0x6DBD, 0xD5F7, 0x6DBE, 0xD5F0, 0x6DBF, 0xB267, + 0x6DC0, 0xD5E0, 0x6DC2, 0xD5FC, 0x6DC4, 0xB264, 0x6DC5, 0xB258, 0x6DC6, 0xB263, 0x6DC7, 0xB24E, 0x6DC8, 0xD5EC, 0x6DC9, 0xD5FE, + 0x6DCA, 0xD5F6, 0x6DCB, 0xB24F, 0x6DCC, 0xB249, 0x6DCD, 0xD645, 0x6DCF, 0xD5FD, 0x6DD0, 0xD640, 0x6DD1, 0xB251, 0x6DD2, 0xB259, + 0x6DD3, 0xD642, 0x6DD4, 0xD5EA, 0x6DD5, 0xD5FB, 0x6DD6, 0xD5EF, 0x6DD7, 0xD644, 0x6DD8, 0xB25E, 0x6DD9, 0xB246, 0x6DDA, 0xB25C, + 0x6DDB, 0xD5F4, 0x6DDC, 0xD5F2, 0x6DDD, 0xD5F3, 0x6DDE, 0xB253, 0x6DDF, 0xD5EE, 0x6DE0, 0xD5ED, 0x6DE1, 0xB248, 0x6DE2, 0xD5E7, + 0x6DE3, 0xD646, 0x6DE4, 0xB24A, 0x6DE5, 0xD5F1, 0x6DE6, 0xB268, 0x6DE8, 0xB262, 0x6DE9, 0xD5E6, 0x6DEA, 0xB25F, 0x6DEB, 0xB25D, + 0x6DEC, 0xB266, 0x6DED, 0xD5F8, 0x6DEE, 0xB261, 0x6DEF, 0xD252, 0x6DF0, 0xD5F9, 0x6DF1, 0xB260, 0x6DF2, 0xD641, 0x6DF3, 0xB245, + 0x6DF4, 0xD5F5, 0x6DF5, 0xB257, 0x6DF6, 0xD5E9, 0x6DF7, 0xB256, 0x6DF9, 0xB254, 0x6DFA, 0xB24C, 0x6DFB, 0xB24B, 0x6DFC, 0xD9E7, + 0x6DFD, 0xD643, 0x6E00, 0xD5EB, 0x6E03, 0xD9FC, 0x6E05, 0xB24D, 0x6E19, 0xB541, 0x6E1A, 0xB25A, 0x6E1B, 0xB4EE, 0x6E1C, 0xD9F6, + 0x6E1D, 0xB4FC, 0x6E1F, 0xD9EA, 0x6E20, 0xB4EB, 0x6E21, 0xB4E7, 0x6E22, 0xDA49, 0x6E23, 0xB4ED, 0x6E24, 0xB4F1, 0x6E25, 0xB4EC, + 0x6E26, 0xB4F5, 0x6E27, 0xDA4D, 0x6E28, 0xDA44, 0x6E2B, 0xD9F1, 0x6E2C, 0xB4FA, 0x6E2D, 0xB4F4, 0x6E2E, 0xD9FD, 0x6E2F, 0xB4E4, + 0x6E30, 0xDA4A, 0x6E31, 0xDA43, 0x6E32, 0xB4E8, 0x6E33, 0xD9F7, 0x6E34, 0xB4F7, 0x6E35, 0xDA55, 0x6E36, 0xDA56, 0x6E38, 0xB4E5, + 0x6E39, 0xDA48, 0x6E3A, 0xB4F9, 0x6E3B, 0xD9FB, 0x6E3C, 0xD9ED, 0x6E3D, 0xD9EE, 0x6E3E, 0xB4FD, 0x6E3F, 0xD9F2, 0x6E40, 0xD9F9, + 0x6E41, 0xD9F3, 0x6E43, 0xB4FB, 0x6E44, 0xB544, 0x6E45, 0xD9EF, 0x6E46, 0xD9E8, 0x6E47, 0xD9E9, 0x6E49, 0xD9EB, 0x6E4A, 0xB4EA, + 0x6E4B, 0xD9F8, 0x6E4D, 0xB4F8, 0x6E4E, 0xB542, 0x6E51, 0xD9FA, 0x6E52, 0xDA53, 0x6E53, 0xDA4B, 0x6E54, 0xB4E6, 0x6E55, 0xDA51, + 0x6E56, 0xB4F2, 0x6E58, 0xB4F0, 0x6E5A, 0xDA57, 0x6E5B, 0xB4EF, 0x6E5C, 0xDA41, 0x6E5D, 0xD9F4, 0x6E5E, 0xD9FE, 0x6E5F, 0xB547, + 0x6E60, 0xDA45, 0x6E61, 0xDA42, 0x6E62, 0xD9F0, 0x6E63, 0xB543, 0x6E64, 0xDA4F, 0x6E65, 0xDA4C, 0x6E66, 0xDA54, 0x6E67, 0xB4E9, + 0x6E68, 0xDA40, 0x6E69, 0xB546, 0x6E6B, 0xDA47, 0x6E6E, 0xB4F3, 0x6E6F, 0xB4F6, 0x6E71, 0xDA46, 0x6E72, 0xB545, 0x6E73, 0xD9F5, + 0x6E74, 0xD5E4, 0x6E77, 0xDA50, 0x6E78, 0xDA4E, 0x6E79, 0xDA52, 0x6E88, 0xD9EC, 0x6E89, 0xB540, 0x6E8D, 0xDE61, 0x6E8E, 0xDE60, + 0x6E8F, 0xDE46, 0x6E90, 0xB7BD, 0x6E92, 0xDE5F, 0x6E93, 0xDE49, 0x6E94, 0xDE4A, 0x6E96, 0xB7C7, 0x6E97, 0xDE68, 0x6E98, 0xB7C2, + 0x6E99, 0xDE5E, 0x6E9B, 0xDE43, 0x6E9C, 0xB7C8, 0x6E9D, 0xB7BE, 0x6E9E, 0xDE52, 0x6E9F, 0xDE48, 0x6EA0, 0xDE4B, 0x6EA1, 0xDE63, + 0x6EA2, 0xB7B8, 0x6EA3, 0xDE6A, 0x6EA4, 0xDE62, 0x6EA5, 0xB7C1, 0x6EA6, 0xDE57, 0x6EA7, 0xB7CC, 0x6EAA, 0xB7CB, 0x6EAB, 0xB7C5, + 0x6EAE, 0xDE69, 0x6EAF, 0xB7B9, 0x6EB0, 0xDE55, 0x6EB1, 0xDE4C, 0x6EB2, 0xDE59, 0x6EB3, 0xDE65, 0x6EB4, 0xB7CD, 0x6EB6, 0xB7BB, + 0x6EB7, 0xDE54, 0x6EB9, 0xDE4D, 0x6EBA, 0xB7C4, 0x6EBC, 0xB7C3, 0x6EBD, 0xDE50, 0x6EBE, 0xDE5A, 0x6EBF, 0xDE64, 0x6EC0, 0xDE47, + 0x6EC1, 0xDE51, 0x6EC2, 0xB7BC, 0x6EC3, 0xDE5B, 0x6EC4, 0xB7C9, 0x6EC5, 0xB7C0, 0x6EC6, 0xDE4E, 0x6EC7, 0xB7BF, 0x6EC8, 0xDE45, + 0x6EC9, 0xDE53, 0x6ECA, 0xDE67, 0x6ECB, 0xB4FE, 0x6ECC, 0xBAB0, 0x6ECD, 0xDE56, 0x6ECE, 0xE26C, 0x6ECF, 0xDE58, 0x6ED0, 0xDE66, + 0x6ED1, 0xB7C6, 0x6ED2, 0xDE4F, 0x6ED3, 0xB7BA, 0x6ED4, 0xB7CA, 0x6ED5, 0xBCF0, 0x6ED6, 0xDE44, 0x6ED8, 0xDE5D, 0x6EDC, 0xDE5C, + 0x6EEB, 0xE2AA, 0x6EEC, 0xBAAD, 0x6EED, 0xE27D, 0x6EEE, 0xE2A4, 0x6EEF, 0xBAA2, 0x6EF1, 0xE26E, 0x6EF2, 0xBAAF, 0x6EF4, 0xBA77, + 0x6EF5, 0xE26D, 0x6EF6, 0xE2B0, 0x6EF7, 0xBAB1, 0x6EF8, 0xE271, 0x6EF9, 0xE2A3, 0x6EFB, 0xE273, 0x6EFC, 0xE2B3, 0x6EFD, 0xE2AF, + 0x6EFE, 0xBA75, 0x6EFF, 0xBAA1, 0x6F00, 0xE653, 0x6F01, 0xBAAE, 0x6F02, 0xBA7D, 0x6F03, 0xE26F, 0x6F05, 0xE2AE, 0x6F06, 0xBAA3, + 0x6F07, 0xE2AB, 0x6F08, 0xE2B8, 0x6F09, 0xE275, 0x6F0A, 0xE27E, 0x6F0D, 0xE2B6, 0x6F0E, 0xE2AC, 0x6F0F, 0xBA7C, 0x6F12, 0xE27C, + 0x6F13, 0xBA76, 0x6F14, 0xBA74, 0x6F15, 0xBAA8, 0x6F18, 0xE27A, 0x6F19, 0xE277, 0x6F1A, 0xE278, 0x6F1C, 0xE2B2, 0x6F1E, 0xE2B7, + 0x6F1F, 0xE2B5, 0x6F20, 0xBA7A, 0x6F21, 0xE2B9, 0x6F22, 0xBA7E, 0x6F23, 0xBAA7, 0x6F25, 0xE270, 0x6F26, 0xE5FA, 0x6F27, 0xE279, + 0x6F29, 0xBA78, 0x6F2A, 0xBAAC, 0x6F2B, 0xBAA9, 0x6F2C, 0xBA7B, 0x6F2D, 0xE2A5, 0x6F2E, 0xE274, 0x6F2F, 0xBAAA, 0x6F30, 0xE2A7, + 0x6F31, 0xBAA4, 0x6F32, 0xBAA6, 0x6F33, 0xBA73, 0x6F35, 0xE2A9, 0x6F36, 0xE2A1, 0x6F37, 0xE272, 0x6F38, 0xBAA5, 0x6F39, 0xE2B1, + 0x6F3A, 0xE2B4, 0x6F3B, 0xE27B, 0x6F3C, 0xE2A8, 0x6F3E, 0xBA79, 0x6F3F, 0xBCDF, 0x6F40, 0xE2A6, 0x6F41, 0xE5F9, 0x6F43, 0xE2AD, + 0x6F4E, 0xE276, 0x6F4F, 0xE644, 0x6F50, 0xE64E, 0x6F51, 0xBCE2, 0x6F52, 0xE64D, 0x6F53, 0xE659, 0x6F54, 0xBCE4, 0x6F55, 0xE64B, + 0x6F57, 0xE64F, 0x6F58, 0xBCEF, 0x6F5A, 0xE646, 0x6F5B, 0xBCE7, 0x6F5D, 0xE652, 0x6F5E, 0xE9F0, 0x6F5F, 0xBCF3, 0x6F60, 0xBCF2, + 0x6F61, 0xE654, 0x6F62, 0xE643, 0x6F63, 0xE65E, 0x6F64, 0xBCED, 0x6F66, 0xBCE3, 0x6F67, 0xE657, 0x6F69, 0xE65B, 0x6F6A, 0xE660, + 0x6F6B, 0xE655, 0x6F6C, 0xE649, 0x6F6D, 0xBCE6, 0x6F6E, 0xBCE9, 0x6F6F, 0xBCF1, 0x6F70, 0xBCEC, 0x6F72, 0xE64C, 0x6F73, 0xE2A2, + 0x6F76, 0xE648, 0x6F77, 0xE65F, 0x6F78, 0xBCE8, 0x6F7A, 0xBCEB, 0x6F7B, 0xE661, 0x6F7C, 0xBCE0, 0x6F7D, 0xE656, 0x6F7E, 0xE5FB, + 0x6F7F, 0xE65C, 0x6F80, 0xC0DF, 0x6F82, 0xE64A, 0x6F84, 0xBCE1, 0x6F85, 0xE645, 0x6F86, 0xBCE5, 0x6F87, 0xE5FC, 0x6F88, 0xBAAB, + 0x6F89, 0xE641, 0x6F8B, 0xE65A, 0x6F8C, 0xE642, 0x6F8D, 0xE640, 0x6F8E, 0xBCEA, 0x6F90, 0xE658, 0x6F92, 0xE5FE, 0x6F93, 0xE651, + 0x6F94, 0xE650, 0x6F95, 0xE65D, 0x6F96, 0xE647, 0x6F97, 0xBCEE, 0x6F9E, 0xE9F3, 0x6FA0, 0xBF49, 0x6FA1, 0xBEFE, 0x6FA2, 0xEA40, + 0x6FA3, 0xE9EB, 0x6FA4, 0xBF41, 0x6FA5, 0xE9F7, 0x6FA6, 0xBF48, 0x6FA7, 0xBF43, 0x6FA8, 0xE9F5, 0x6FA9, 0xED4F, 0x6FAA, 0xE9FB, + 0x6FAB, 0xEA42, 0x6FAC, 0xE9FA, 0x6FAD, 0xE9E9, 0x6FAE, 0xE9F8, 0x6FAF, 0xEA44, 0x6FB0, 0xEA46, 0x6FB1, 0xBEFD, 0x6FB2, 0xEA45, + 0x6FB3, 0xBF44, 0x6FB4, 0xBF4A, 0x6FB6, 0xBF47, 0x6FB8, 0xE9FE, 0x6FB9, 0xBF46, 0x6FBA, 0xE9F9, 0x6FBC, 0xE9ED, 0x6FBD, 0xE9F2, + 0x6FBF, 0xE9FD, 0x6FC0, 0xBF45, 0x6FC1, 0xBF42, 0x6FC2, 0xBEFC, 0x6FC3, 0xBF40, 0x6FC4, 0xE9F1, 0x6FC6, 0xE5FD, 0x6FC7, 0xE9EC, + 0x6FC8, 0xE9EF, 0x6FC9, 0xEA41, 0x6FCA, 0xE9F4, 0x6FCB, 0xE9EA, 0x6FCC, 0xED4E, 0x6FCD, 0xEA43, 0x6FCE, 0xE9EE, 0x6FCF, 0xE9FC, + 0x6FD4, 0xED51, 0x6FD5, 0xC0E3, 0x6FD8, 0xC0D7, 0x6FDB, 0xC0DB, 0x6FDC, 0xED53, 0x6FDD, 0xED59, 0x6FDE, 0xED57, 0x6FDF, 0xC0D9, + 0x6FE0, 0xC0DA, 0x6FE1, 0xC0E1, 0x6FE2, 0xED5A, 0x6FE3, 0xED52, 0x6FE4, 0xC0DC, 0x6FE6, 0xED56, 0x6FE7, 0xED55, 0x6FE8, 0xED5B, + 0x6FE9, 0xC0E2, 0x6FEB, 0xC0DD, 0x6FEC, 0xC0E0, 0x6FED, 0xED54, 0x6FEE, 0xC0E4, 0x6FEF, 0xC0DE, 0x6FF0, 0xC0E5, 0x6FF1, 0xC0D8, + 0x6FF2, 0xED58, 0x6FF4, 0xED50, 0x6FF7, 0xEFF7, 0x6FFA, 0xC271, 0x6FFB, 0xEFF4, 0x6FFC, 0xEFF6, 0x6FFE, 0xC26F, 0x6FFF, 0xEFF2, + 0x7000, 0xEFF3, 0x7001, 0xEFEE, 0x7004, 0xE9F6, 0x7005, 0xEFEF, 0x7006, 0xC270, 0x7007, 0xEFEB, 0x7009, 0xC26D, 0x700A, 0xEFF8, + 0x700B, 0xC26E, 0x700C, 0xEFEC, 0x700D, 0xEFED, 0x700E, 0xEFF1, 0x700F, 0xC273, 0x7011, 0xC272, 0x7014, 0xEFF0, 0x7015, 0xC378, + 0x7016, 0xF25F, 0x7017, 0xF265, 0x7018, 0xC379, 0x7019, 0xF25C, 0x701A, 0xC376, 0x701B, 0xC373, 0x701C, 0xF267, 0x701D, 0xC377, + 0x701F, 0xC374, 0x7020, 0xF25E, 0x7021, 0xF261, 0x7022, 0xF262, 0x7023, 0xF263, 0x7024, 0xF266, 0x7026, 0xEFF5, 0x7027, 0xF25D, + 0x7028, 0xC375, 0x7029, 0xF264, 0x702A, 0xF268, 0x702B, 0xF260, 0x702F, 0xF45D, 0x7030, 0xC46A, 0x7031, 0xF460, 0x7032, 0xC46B, + 0x7033, 0xF468, 0x7034, 0xF45F, 0x7035, 0xF45C, 0x7037, 0xF45E, 0x7038, 0xF462, 0x7039, 0xF465, 0x703A, 0xF464, 0x703B, 0xF467, + 0x703C, 0xF45B, 0x703E, 0xC469, 0x703F, 0xF463, 0x7040, 0xF466, 0x7041, 0xF469, 0x7042, 0xF461, 0x7043, 0xF5D3, 0x7044, 0xF5D4, + 0x7045, 0xF5D8, 0x7046, 0xF5D9, 0x7048, 0xF5D6, 0x7049, 0xF5D7, 0x704A, 0xF5D5, 0x704C, 0xC4E9, 0x7051, 0xC578, 0x7052, 0xF6EB, + 0x7055, 0xF6E8, 0x7056, 0xF6E9, 0x7057, 0xF6EA, 0x7058, 0xC579, 0x705A, 0xF7E5, 0x705B, 0xF7E4, 0x705D, 0xF8AF, 0x705E, 0xC5F4, + 0x705F, 0xF8AD, 0x7060, 0xF8B0, 0x7061, 0xF8AE, 0x7062, 0xF8F5, 0x7063, 0xC657, 0x7064, 0xC665, 0x7065, 0xF9A3, 0x7066, 0xF96C, + 0x7068, 0xF9A2, 0x7069, 0xF9D0, 0x706A, 0xF9D1, 0x706B, 0xA4F5, 0x7070, 0xA6C7, 0x7071, 0xCA41, 0x7074, 0xCB5E, 0x7076, 0xA85F, + 0x7078, 0xA862, 0x707A, 0xCB5F, 0x707C, 0xA860, 0x707D, 0xA861, 0x7082, 0xCD58, 0x7083, 0xCD5A, 0x7084, 0xCD55, 0x7085, 0xCD52, + 0x7086, 0xCD54, 0x708A, 0xAAA4, 0x708E, 0xAAA2, 0x7091, 0xCD56, 0x7092, 0xAAA3, 0x7093, 0xCD53, 0x7094, 0xCD50, 0x7095, 0xAAA1, + 0x7096, 0xCD57, 0x7098, 0xCD51, 0x7099, 0xAAA5, 0x709A, 0xCD59, 0x709F, 0xCFAF, 0x70A1, 0xCFB3, 0x70A4, 0xACB7, 0x70A9, 0xCFB6, + 0x70AB, 0xACAF, 0x70AC, 0xACB2, 0x70AD, 0xACB4, 0x70AE, 0xACB6, 0x70AF, 0xACB3, 0x70B0, 0xCFB2, 0x70B1, 0xCFB1, 0x70B3, 0xACB1, + 0x70B4, 0xCFB4, 0x70B5, 0xCFB5, 0x70B7, 0xCFAE, 0x70B8, 0xACB5, 0x70BA, 0xACB0, 0x70BE, 0xCFB0, 0x70C5, 0xD277, 0x70C6, 0xD278, + 0x70C7, 0xD279, 0x70C8, 0xAF50, 0x70CA, 0xAF4C, 0x70CB, 0xD26E, 0x70CD, 0xD276, 0x70CE, 0xD27B, 0x70CF, 0xAF51, 0x70D1, 0xD26C, + 0x70D2, 0xD272, 0x70D3, 0xD26B, 0x70D4, 0xD275, 0x70D7, 0xD271, 0x70D8, 0xAF4D, 0x70D9, 0xAF4F, 0x70DA, 0xD27A, 0x70DC, 0xD26A, + 0x70DD, 0xD26D, 0x70DE, 0xD273, 0x70E0, 0xD274, 0x70E1, 0xD27C, 0x70E2, 0xD270, 0x70E4, 0xAF4E, 0x70EF, 0xB26D, 0x70F0, 0xD64E, + 0x70F3, 0xD650, 0x70F4, 0xD64C, 0x70F6, 0xD658, 0x70F7, 0xD64A, 0x70F8, 0xD657, 0x70F9, 0xB269, 0x70FA, 0xD648, 0x70FB, 0xDA5B, + 0x70FC, 0xD652, 0x70FD, 0xB26C, 0x70FF, 0xD653, 0x7100, 0xD656, 0x7102, 0xD65A, 0x7104, 0xD64F, 0x7106, 0xD654, 0x7109, 0xB26A, + 0x710A, 0xB26B, 0x710B, 0xD659, 0x710C, 0xD64D, 0x710D, 0xD649, 0x710E, 0xD65B, 0x7110, 0xD651, 0x7113, 0xD655, 0x7117, 0xD64B, + 0x7119, 0xB548, 0x711A, 0xB549, 0x711B, 0xDA65, 0x711C, 0xB54F, 0x711E, 0xDA59, 0x711F, 0xDA62, 0x7120, 0xDA58, 0x7121, 0xB54C, + 0x7122, 0xDA60, 0x7123, 0xDA5E, 0x7125, 0xDA5F, 0x7126, 0xB54A, 0x7128, 0xDA63, 0x712E, 0xDA5C, 0x712F, 0xDA5A, 0x7130, 0xB54B, + 0x7131, 0xDA5D, 0x7132, 0xDA61, 0x7136, 0xB54D, 0x713A, 0xDA64, 0x7141, 0xDE70, 0x7142, 0xDE77, 0x7143, 0xDE79, 0x7144, 0xDEA1, + 0x7146, 0xB7DA, 0x7147, 0xDE6B, 0x7149, 0xB7D2, 0x714B, 0xDE7A, 0x714C, 0xB7D7, 0x714D, 0xDEA2, 0x714E, 0xB7CE, 0x7150, 0xDE7D, + 0x7152, 0xDE6D, 0x7153, 0xDE7E, 0x7154, 0xDE6C, 0x7156, 0xB7DC, 0x7158, 0xDE78, 0x7159, 0xB7CF, 0x715A, 0xDEA3, 0x715C, 0xB7D4, + 0x715D, 0xDE71, 0x715E, 0xB7D9, 0x715F, 0xDE7C, 0x7160, 0xDE6F, 0x7161, 0xDE76, 0x7162, 0xDE72, 0x7163, 0xDE6E, 0x7164, 0xB7D1, + 0x7165, 0xB7D8, 0x7166, 0xB7D6, 0x7167, 0xB7D3, 0x7168, 0xB7DB, 0x7169, 0xB7D0, 0x716A, 0xDE75, 0x716C, 0xB7D5, 0x716E, 0xB54E, + 0x7170, 0xDE7B, 0x7172, 0xDE73, 0x7178, 0xDE74, 0x717B, 0xE2C1, 0x717D, 0xBAB4, 0x7180, 0xE2BD, 0x7181, 0xE2C3, 0x7182, 0xE2BF, + 0x7184, 0xBAB6, 0x7185, 0xE2BE, 0x7186, 0xE2C2, 0x7187, 0xE2BA, 0x7189, 0xE2BC, 0x718A, 0xBAB5, 0x718F, 0xE2C0, 0x7190, 0xE2BB, + 0x7192, 0xBAB7, 0x7194, 0xBAB2, 0x7197, 0xE2C4, 0x7199, 0xBAB3, 0x719A, 0xE667, 0x719B, 0xE664, 0x719C, 0xE670, 0x719D, 0xE66A, + 0x719E, 0xE66C, 0x719F, 0xBCF4, 0x71A0, 0xE666, 0x71A1, 0xE66E, 0x71A4, 0xE66D, 0x71A5, 0xE66B, 0x71A7, 0xE671, 0x71A8, 0xBCF7, + 0x71A9, 0xE668, 0x71AA, 0xE66F, 0x71AC, 0xBCF5, 0x71AF, 0xE663, 0x71B0, 0xE665, 0x71B1, 0xBCF6, 0x71B2, 0xE662, 0x71B3, 0xE672, + 0x71B5, 0xE669, 0x71B8, 0xEA4A, 0x71B9, 0xBF51, 0x71BC, 0xEA55, 0x71BD, 0xEA53, 0x71BE, 0xBF4B, 0x71BF, 0xEA49, 0x71C0, 0xEA4C, + 0x71C1, 0xEA4D, 0x71C2, 0xEA48, 0x71C3, 0xBF55, 0x71C4, 0xBF56, 0x71C5, 0xEA47, 0x71C6, 0xEA56, 0x71C7, 0xEA51, 0x71C8, 0xBF4F, + 0x71C9, 0xBF4C, 0x71CA, 0xEA50, 0x71CB, 0xEA4E, 0x71CE, 0xBF52, 0x71CF, 0xEA52, 0x71D0, 0xBF4D, 0x71D2, 0xBF4E, 0x71D4, 0xEA4F, + 0x71D5, 0xBF50, 0x71D6, 0xEA4B, 0x71D8, 0xEA54, 0x71D9, 0xBF53, 0x71DA, 0xEA57, 0x71DB, 0xEA58, 0x71DC, 0xBF54, 0x71DF, 0xC0E7, + 0x71E0, 0xC0EE, 0x71E1, 0xED5C, 0x71E2, 0xED62, 0x71E4, 0xED60, 0x71E5, 0xC0EA, 0x71E6, 0xC0E9, 0x71E7, 0xC0E6, 0x71E8, 0xED5E, + 0x71EC, 0xC0EC, 0x71ED, 0xC0EB, 0x71EE, 0xC0E8, 0x71F0, 0xED61, 0x71F1, 0xED5D, 0x71F2, 0xED5F, 0x71F4, 0xC0ED, 0x71F8, 0xC277, + 0x71F9, 0xEFFB, 0x71FB, 0xC274, 0x71FC, 0xC275, 0x71FD, 0xEFFD, 0x71FE, 0xC276, 0x71FF, 0xEFFA, 0x7201, 0xEFF9, 0x7202, 0xF26C, + 0x7203, 0xEFFC, 0x7205, 0xF26D, 0x7206, 0xC37A, 0x7207, 0xF26B, 0x720A, 0xF26A, 0x720C, 0xF269, 0x720D, 0xC37B, 0x7210, 0xC46C, + 0x7213, 0xF46A, 0x7214, 0xF46B, 0x7219, 0xF5DC, 0x721A, 0xF5DB, 0x721B, 0xC4EA, 0x721D, 0xF5DA, 0x721E, 0xF6EC, 0x721F, 0xF6ED, + 0x7222, 0xF7E6, 0x7223, 0xF8B1, 0x7226, 0xF8F6, 0x7227, 0xF9BC, 0x7228, 0xC679, 0x7229, 0xF9C6, 0x722A, 0xA4F6, 0x722C, 0xAAA6, + 0x722D, 0xAAA7, 0x7230, 0xACB8, 0x7235, 0xC0EF, 0x7236, 0xA4F7, 0x7238, 0xAAA8, 0x7239, 0xAF52, 0x723A, 0xB7DD, 0x723B, 0xA4F8, + 0x723D, 0xB26E, 0x723E, 0xBAB8, 0x723F, 0xC962, 0x7241, 0xCFB7, 0x7242, 0xD27D, 0x7244, 0xE2C5, 0x7246, 0xC0F0, 0x7247, 0xA4F9, + 0x7248, 0xAAA9, 0x7249, 0xCFB8, 0x724A, 0xCFB9, 0x724B, 0xDA66, 0x724C, 0xB550, 0x724F, 0xDEA4, 0x7252, 0xB7DE, 0x7253, 0xE2C6, + 0x7256, 0xBCF8, 0x7258, 0xC37C, 0x7259, 0xA4FA, 0x725A, 0xDA67, 0x725B, 0xA4FB, 0x725D, 0xA6C9, 0x725E, 0xCA42, 0x725F, 0xA6C8, + 0x7260, 0xA865, 0x7261, 0xA864, 0x7262, 0xA863, 0x7263, 0xCB60, 0x7267, 0xAAAA, 0x7269, 0xAAAB, 0x726A, 0xCD5B, 0x726C, 0xCFBA, + 0x726E, 0xCFBD, 0x726F, 0xACBA, 0x7270, 0xCFBB, 0x7272, 0xACB9, 0x7273, 0xCFBC, 0x7274, 0xACBB, 0x7276, 0xD2A2, 0x7277, 0xD2A1, + 0x7278, 0xD27E, 0x7279, 0xAF53, 0x727B, 0xD65D, 0x727C, 0xD65E, 0x727D, 0xB26F, 0x727E, 0xD65C, 0x727F, 0xD65F, 0x7280, 0xB552, + 0x7281, 0xB270, 0x7284, 0xB551, 0x7285, 0xDA6B, 0x7286, 0xDA6A, 0x7288, 0xDA68, 0x7289, 0xDA69, 0x728B, 0xDA6C, 0x728C, 0xDEA6, + 0x728D, 0xDEA5, 0x728E, 0xDEA9, 0x7290, 0xDEA8, 0x7291, 0xDEA7, 0x7292, 0xBAB9, 0x7293, 0xE2C9, 0x7295, 0xE2C8, 0x7296, 0xBABA, + 0x7297, 0xE2C7, 0x7298, 0xE673, 0x729A, 0xE674, 0x729B, 0xBCF9, 0x729D, 0xEA59, 0x729E, 0xEA5A, 0x72A1, 0xF272, 0x72A2, 0xC37D, + 0x72A3, 0xF271, 0x72A4, 0xF270, 0x72A5, 0xF26E, 0x72A6, 0xF26F, 0x72A7, 0xC4EB, 0x72A8, 0xF46C, 0x72A9, 0xF6EE, 0x72AA, 0xF8F7, + 0x72AC, 0xA4FC, 0x72AE, 0xC9A5, 0x72AF, 0xA5C7, 0x72B0, 0xC9A6, 0x72B4, 0xCA43, 0x72B5, 0xCA44, 0x72BA, 0xCB66, 0x72BD, 0xCB62, + 0x72BF, 0xCB61, 0x72C0, 0xAAAC, 0x72C1, 0xCB65, 0x72C2, 0xA867, 0x72C3, 0xCB63, 0x72C4, 0xA866, 0x72C5, 0xCB67, 0x72C6, 0xCB64, + 0x72C9, 0xCD5F, 0x72CA, 0xCFBE, 0x72CB, 0xCD5D, 0x72CC, 0xCD64, 0x72CE, 0xAAAD, 0x72D0, 0xAAB0, 0x72D1, 0xCD65, 0x72D2, 0xCD61, + 0x72D4, 0xCD62, 0x72D6, 0xCD5C, 0x72D7, 0xAAAF, 0x72D8, 0xCD5E, 0x72D9, 0xAAAE, 0x72DA, 0xCD63, 0x72DC, 0xCD60, 0x72DF, 0xCFC2, + 0x72E0, 0xACBD, 0x72E1, 0xACBE, 0x72E3, 0xCFC5, 0x72E4, 0xCFBF, 0x72E6, 0xCFC4, 0x72E8, 0xCFC0, 0x72E9, 0xACBC, 0x72EA, 0xCFC3, + 0x72EB, 0xCFC1, 0x72F3, 0xD2A8, 0x72F4, 0xD2A5, 0x72F6, 0xD2A7, 0x72F7, 0xAF58, 0x72F8, 0xAF57, 0x72F9, 0xAF55, 0x72FA, 0xD2A4, + 0x72FB, 0xD2A9, 0x72FC, 0xAF54, 0x72FD, 0xAF56, 0x72FE, 0xD2A6, 0x72FF, 0xD667, 0x7300, 0xD2A3, 0x7301, 0xD2AA, 0x7307, 0xD662, + 0x7308, 0xD666, 0x730A, 0xD665, 0x730B, 0xDA6E, 0x730C, 0xDA79, 0x730F, 0xD668, 0x7311, 0xD663, 0x7312, 0xDA6D, 0x7313, 0xB274, + 0x7316, 0xB273, 0x7317, 0xD661, 0x7318, 0xD664, 0x7319, 0xB275, 0x731B, 0xB272, 0x731C, 0xB271, 0x731D, 0xD660, 0x731E, 0xD669, + 0x7322, 0xDA70, 0x7323, 0xDA77, 0x7325, 0xB554, 0x7326, 0xDA76, 0x7327, 0xDA73, 0x7329, 0xB556, 0x732D, 0xDA75, 0x7330, 0xDA6F, + 0x7331, 0xDA71, 0x7332, 0xDA74, 0x7333, 0xDA72, 0x7334, 0xB555, 0x7335, 0xDA78, 0x7336, 0xB553, 0x7337, 0xB7DF, 0x733A, 0xDEAD, + 0x733B, 0xDEAC, 0x733C, 0xDEAA, 0x733E, 0xB7E2, 0x733F, 0xB7E1, 0x7340, 0xDEAE, 0x7342, 0xDEAB, 0x7343, 0xE2CA, 0x7344, 0xBABB, + 0x7345, 0xB7E0, 0x7349, 0xDEB0, 0x734A, 0xDEAF, 0x734C, 0xE2CD, 0x734D, 0xE2CB, 0x734E, 0xBCFA, 0x7350, 0xBABC, 0x7351, 0xE2CC, + 0x7352, 0xE676, 0x7357, 0xBCFB, 0x7358, 0xE675, 0x7359, 0xE67E, 0x735A, 0xE67D, 0x735B, 0xE67B, 0x735D, 0xE67A, 0x735E, 0xE677, + 0x735F, 0xE678, 0x7360, 0xE679, 0x7361, 0xE67C, 0x7362, 0xE6A1, 0x7365, 0xEA5F, 0x7366, 0xEA5C, 0x7367, 0xEA5D, 0x7368, 0xBF57, + 0x7369, 0xEA5B, 0x736A, 0xEA61, 0x736B, 0xEA60, 0x736C, 0xEA5E, 0x736E, 0xED64, 0x736F, 0xED65, 0x7370, 0xC0F1, 0x7372, 0xC0F2, + 0x7373, 0xED63, 0x7375, 0xC279, 0x7376, 0xEFFE, 0x7377, 0xC278, 0x7378, 0xC37E, 0x737A, 0xC3A1, 0x737B, 0xC46D, 0x737C, 0xF46E, + 0x737D, 0xF46D, 0x737E, 0xF5DD, 0x737F, 0xF6EF, 0x7380, 0xC57A, 0x7381, 0xF7E8, 0x7382, 0xF7E7, 0x7383, 0xF7E9, 0x7384, 0xA5C8, + 0x7385, 0xCFC6, 0x7386, 0xAF59, 0x7387, 0xB276, 0x7388, 0xD66A, 0x7389, 0xA5C9, 0x738A, 0xC9A7, 0x738B, 0xA4FD, 0x738E, 0xCA45, + 0x7392, 0xCB6C, 0x7393, 0xCB6A, 0x7394, 0xCB6B, 0x7395, 0xCB68, 0x7396, 0xA868, 0x7397, 0xCB69, 0x739D, 0xCD6D, 0x739F, 0xAAB3, + 0x73A0, 0xCD6B, 0x73A1, 0xCD67, 0x73A2, 0xCD6A, 0x73A4, 0xCD66, 0x73A5, 0xAAB5, 0x73A6, 0xCD69, 0x73A8, 0xAAB2, 0x73A9, 0xAAB1, + 0x73AB, 0xAAB4, 0x73AC, 0xCD6C, 0x73AD, 0xCD68, 0x73B2, 0xACC2, 0x73B3, 0xACC5, 0x73B4, 0xCFCE, 0x73B5, 0xCFCD, 0x73B6, 0xCFCC, + 0x73B7, 0xACBF, 0x73B8, 0xCFD5, 0x73B9, 0xCFCB, 0x73BB, 0xACC1, 0x73BC, 0xD2AF, 0x73BE, 0xCFD2, 0x73BF, 0xCFD0, 0x73C0, 0xACC4, + 0x73C2, 0xCFC8, 0x73C3, 0xCFD3, 0x73C5, 0xCFCA, 0x73C6, 0xCFD4, 0x73C7, 0xCFD1, 0x73C8, 0xCFC9, 0x73CA, 0xACC0, 0x73CB, 0xCFD6, + 0x73CC, 0xCFC7, 0x73CD, 0xACC3, 0x73D2, 0xD2B4, 0x73D3, 0xD2AB, 0x73D4, 0xD2B6, 0x73D6, 0xD2AE, 0x73D7, 0xD2B9, 0x73D8, 0xD2BA, + 0x73D9, 0xD2AC, 0x73DA, 0xD2B8, 0x73DB, 0xD2B5, 0x73DC, 0xD2B3, 0x73DD, 0xD2B7, 0x73DE, 0xAF5F, 0x73E0, 0xAF5D, 0x73E3, 0xD2B1, + 0x73E5, 0xD2AD, 0x73E7, 0xD2B0, 0x73E8, 0xD2BB, 0x73E9, 0xD2B2, 0x73EA, 0xAF5E, 0x73EB, 0xCFCF, 0x73ED, 0xAF5A, 0x73EE, 0xAF5C, + 0x73F4, 0xD678, 0x73F5, 0xD66D, 0x73F6, 0xD66B, 0x73F8, 0xD66C, 0x73FA, 0xD673, 0x73FC, 0xD674, 0x73FD, 0xD670, 0x73FE, 0xB27B, + 0x73FF, 0xD675, 0x7400, 0xD672, 0x7401, 0xD66F, 0x7403, 0xB279, 0x7404, 0xD66E, 0x7405, 0xB277, 0x7406, 0xB27A, 0x7407, 0xD671, + 0x7408, 0xD679, 0x7409, 0xAF5B, 0x740A, 0xB278, 0x740B, 0xD677, 0x740C, 0xD676, 0x740D, 0xB27C, 0x7416, 0xDA7E, 0x741A, 0xDAA1, + 0x741B, 0xB560, 0x741D, 0xDAA7, 0x7420, 0xDAA9, 0x7421, 0xDAA2, 0x7422, 0xB55A, 0x7423, 0xDAA6, 0x7424, 0xDAA5, 0x7425, 0xB55B, + 0x7426, 0xB561, 0x7428, 0xB562, 0x7429, 0xDAA8, 0x742A, 0xB558, 0x742B, 0xDA7D, 0x742C, 0xDA7B, 0x742D, 0xDAA3, 0x742E, 0xDA7A, + 0x742F, 0xB55F, 0x7430, 0xDA7C, 0x7431, 0xDAA4, 0x7432, 0xDAAA, 0x7433, 0xB559, 0x7434, 0xB55E, 0x7435, 0xB55C, 0x7436, 0xB55D, + 0x743A, 0xB557, 0x743F, 0xB7E9, 0x7440, 0xDEB7, 0x7441, 0xB7E8, 0x7442, 0xDEBB, 0x7444, 0xDEB1, 0x7446, 0xDEBC, 0x744A, 0xDEB2, + 0x744B, 0xDEB3, 0x744D, 0xDEBD, 0x744E, 0xDEBA, 0x744F, 0xDEB8, 0x7450, 0xDEB9, 0x7451, 0xDEB5, 0x7452, 0xDEB4, 0x7454, 0xDEBE, + 0x7455, 0xB7E5, 0x7457, 0xDEB6, 0x7459, 0xB7EA, 0x745A, 0xB7E4, 0x745B, 0xB7EB, 0x745C, 0xB7EC, 0x745E, 0xB7E7, 0x745F, 0xB7E6, + 0x7462, 0xE2CE, 0x7463, 0xBABE, 0x7464, 0xBABD, 0x7467, 0xE2D3, 0x7469, 0xBCFC, 0x746A, 0xBABF, 0x746D, 0xBAC1, 0x746E, 0xE2D4, + 0x746F, 0xB7E3, 0x7470, 0xBAC0, 0x7471, 0xE2D0, 0x7472, 0xE2D2, 0x7473, 0xE2CF, 0x7475, 0xE2D1, 0x7479, 0xE6AB, 0x747C, 0xE6AA, + 0x747D, 0xE6A7, 0x747E, 0xBD40, 0x747F, 0xEA62, 0x7480, 0xBD41, 0x7481, 0xE6A6, 0x7483, 0xBCFE, 0x7485, 0xE6A8, 0x7486, 0xE6A5, + 0x7487, 0xE6A2, 0x7488, 0xE6A9, 0x7489, 0xE6A3, 0x748A, 0xE6A4, 0x748B, 0xBCFD, 0x7490, 0xED69, 0x7492, 0xEA66, 0x7494, 0xEA65, + 0x7495, 0xEA67, 0x7497, 0xED66, 0x7498, 0xBF5A, 0x749A, 0xEA63, 0x749C, 0xBF58, 0x749E, 0xBF5C, 0x749F, 0xBF5B, 0x74A0, 0xEA64, + 0x74A1, 0xEA68, 0x74A3, 0xBF59, 0x74A5, 0xED6D, 0x74A6, 0xC0F5, 0x74A7, 0xC27A, 0x74A8, 0xC0F6, 0x74A9, 0xC0F3, 0x74AA, 0xED6A, + 0x74AB, 0xED68, 0x74AD, 0xED6B, 0x74AF, 0xED6E, 0x74B0, 0xC0F4, 0x74B1, 0xED6C, 0x74B2, 0xED67, 0x74B5, 0xF042, 0x74B6, 0xF045, + 0x74B7, 0xF275, 0x74B8, 0xF040, 0x74BA, 0xF46F, 0x74BB, 0xF046, 0x74BD, 0xC3A2, 0x74BE, 0xF044, 0x74BF, 0xC27B, 0x74C0, 0xF041, + 0x74C1, 0xF043, 0x74C2, 0xF047, 0x74C3, 0xF276, 0x74C5, 0xF274, 0x74CA, 0xC3A3, 0x74CB, 0xF273, 0x74CF, 0xC46E, 0x74D4, 0xC4ED, + 0x74D5, 0xF6F1, 0x74D6, 0xC4EC, 0x74D7, 0xF6F3, 0x74D8, 0xF6F0, 0x74D9, 0xF6F2, 0x74DA, 0xC5D0, 0x74DB, 0xF8B2, 0x74DC, 0xA5CA, + 0x74DD, 0xCD6E, 0x74DE, 0xD2BC, 0x74DF, 0xD2BD, 0x74E0, 0xB27D, 0x74E1, 0xDEBF, 0x74E2, 0xBF5D, 0x74E3, 0xC3A4, 0x74E4, 0xC57B, + 0x74E5, 0xF8B3, 0x74E6, 0xA5CB, 0x74E8, 0xCD6F, 0x74E9, 0xA260, 0x74EC, 0xCFD7, 0x74EE, 0xCFD8, 0x74F4, 0xD2BE, 0x74F5, 0xD2BF, + 0x74F6, 0xB27E, 0x74F7, 0xB2A1, 0x74FB, 0xDAAB, 0x74FD, 0xDEC2, 0x74FE, 0xDEC1, 0x74FF, 0xDEC0, 0x7500, 0xE2D5, 0x7502, 0xE2D6, + 0x7503, 0xE2D7, 0x7504, 0xBAC2, 0x7507, 0xE6AD, 0x7508, 0xE6AC, 0x750B, 0xEA69, 0x750C, 0xBF5E, 0x750D, 0xBF5F, 0x750F, 0xED72, + 0x7510, 0xED6F, 0x7511, 0xED70, 0x7512, 0xED71, 0x7513, 0xF049, 0x7514, 0xF048, 0x7515, 0xC27C, 0x7516, 0xF277, 0x7517, 0xF5DE, + 0x7518, 0xA5CC, 0x751A, 0xACC6, 0x751C, 0xB2A2, 0x751D, 0xDEC3, 0x751F, 0xA5CD, 0x7521, 0xD2C0, 0x7522, 0xB2A3, 0x7525, 0xB563, + 0x7526, 0xB564, 0x7528, 0xA5CE, 0x7529, 0xA5CF, 0x752A, 0xCA46, 0x752B, 0xA86A, 0x752C, 0xA869, 0x752D, 0xACC7, 0x752E, 0xCFD9, + 0x752F, 0xDAAC, 0x7530, 0xA5D0, 0x7531, 0xA5D1, 0x7532, 0xA5D2, 0x7533, 0xA5D3, 0x7537, 0xA86B, 0x7538, 0xA86C, 0x7539, 0xCB6E, + 0x753A, 0xCB6D, 0x753D, 0xAAB6, 0x753E, 0xCD72, 0x753F, 0xCD70, 0x7540, 0xCD71, 0x7547, 0xCFDA, 0x7548, 0xCFDB, 0x754B, 0xACCB, + 0x754C, 0xACC9, 0x754E, 0xACCA, 0x754F, 0xACC8, 0x7554, 0xAF60, 0x7559, 0xAF64, 0x755A, 0xAF63, 0x755B, 0xD2C1, 0x755C, 0xAF62, + 0x755D, 0xAF61, 0x755F, 0xD2C2, 0x7562, 0xB2A6, 0x7563, 0xD67B, 0x7564, 0xD67A, 0x7565, 0xB2A4, 0x7566, 0xB2A5, 0x756A, 0xB566, + 0x756B, 0xB565, 0x756C, 0xDAAE, 0x756F, 0xDAAD, 0x7570, 0xB2A7, 0x7576, 0xB7ED, 0x7577, 0xDEC5, 0x7578, 0xB7EE, 0x7579, 0xDEC4, + 0x757D, 0xE2D8, 0x757E, 0xE6AE, 0x757F, 0xBD42, 0x7580, 0xEA6A, 0x7584, 0xED73, 0x7586, 0xC3A6, 0x7587, 0xC3A5, 0x758A, 0xC57C, + 0x758B, 0xA5D4, 0x758C, 0xCD73, 0x758F, 0xB2A8, 0x7590, 0xE2D9, 0x7591, 0xBAC3, 0x7594, 0xCB6F, 0x7595, 0xCB70, 0x7598, 0xCD74, + 0x7599, 0xAAB8, 0x759A, 0xAAB9, 0x759D, 0xAAB7, 0x75A2, 0xACCF, 0x75A3, 0xACD0, 0x75A4, 0xACCD, 0x75A5, 0xACCE, 0x75A7, 0xCFDC, + 0x75AA, 0xCFDD, 0x75AB, 0xACCC, 0x75B0, 0xD2C3, 0x75B2, 0xAF68, 0x75B3, 0xAF69, 0x75B5, 0xB2AB, 0x75B6, 0xD2C9, 0x75B8, 0xAF6E, + 0x75B9, 0xAF6C, 0x75BA, 0xD2CA, 0x75BB, 0xD2C5, 0x75BC, 0xAF6B, 0x75BD, 0xAF6A, 0x75BE, 0xAF65, 0x75BF, 0xD2C8, 0x75C0, 0xD2C7, + 0x75C1, 0xD2C4, 0x75C2, 0xAF6D, 0x75C4, 0xD2C6, 0x75C5, 0xAF66, 0x75C7, 0xAF67, 0x75CA, 0xB2AC, 0x75CB, 0xD6A1, 0x75CC, 0xD6A2, + 0x75CD, 0xB2AD, 0x75CE, 0xD67C, 0x75CF, 0xD67E, 0x75D0, 0xD6A4, 0x75D1, 0xD6A3, 0x75D2, 0xD67D, 0x75D4, 0xB2A9, 0x75D5, 0xB2AA, + 0x75D7, 0xDAB6, 0x75D8, 0xB56B, 0x75D9, 0xB56A, 0x75DA, 0xDAB0, 0x75DB, 0xB568, 0x75DD, 0xDAB3, 0x75DE, 0xB56C, 0x75DF, 0xDAB4, + 0x75E0, 0xB56D, 0x75E1, 0xDAB1, 0x75E2, 0xB567, 0x75E3, 0xB569, 0x75E4, 0xDAB5, 0x75E6, 0xDAB2, 0x75E7, 0xDAAF, 0x75ED, 0xDED2, + 0x75EF, 0xDEC7, 0x75F0, 0xB7F0, 0x75F1, 0xB7F3, 0x75F2, 0xB7F2, 0x75F3, 0xB7F7, 0x75F4, 0xB7F6, 0x75F5, 0xDED3, 0x75F6, 0xDED1, + 0x75F7, 0xDECA, 0x75F8, 0xDECE, 0x75F9, 0xDECD, 0x75FA, 0xB7F4, 0x75FB, 0xDED0, 0x75FC, 0xDECC, 0x75FD, 0xDED4, 0x75FE, 0xDECB, + 0x75FF, 0xB7F5, 0x7600, 0xB7EF, 0x7601, 0xB7F1, 0x7603, 0xDEC9, 0x7608, 0xE2DB, 0x7609, 0xBAC7, 0x760A, 0xE2DF, 0x760B, 0xBAC6, + 0x760C, 0xE2DC, 0x760D, 0xBAC5, 0x760F, 0xDEC8, 0x7610, 0xDECF, 0x7611, 0xE2DE, 0x7613, 0xBAC8, 0x7614, 0xE2E0, 0x7615, 0xE2DD, + 0x7616, 0xE2DA, 0x7619, 0xE6B1, 0x761A, 0xE6B5, 0x761B, 0xE6B7, 0x761C, 0xE6B3, 0x761D, 0xE6B2, 0x761E, 0xE6B0, 0x761F, 0xBD45, + 0x7620, 0xBD43, 0x7621, 0xBD48, 0x7622, 0xBD49, 0x7623, 0xE6B4, 0x7624, 0xBD46, 0x7625, 0xE6AF, 0x7626, 0xBD47, 0x7627, 0xBAC4, + 0x7628, 0xE6B6, 0x7629, 0xBD44, 0x762D, 0xEA6C, 0x762F, 0xEA6B, 0x7630, 0xEA73, 0x7631, 0xEA6D, 0x7632, 0xEA72, 0x7633, 0xEA6F, + 0x7634, 0xBF60, 0x7635, 0xEA71, 0x7638, 0xBF61, 0x763A, 0xBF62, 0x763C, 0xEA70, 0x763D, 0xEA6E, 0x7642, 0xC0F8, 0x7643, 0xED74, + 0x7646, 0xC0F7, 0x7647, 0xED77, 0x7648, 0xED75, 0x7649, 0xED76, 0x764C, 0xC0F9, 0x7650, 0xF04D, 0x7652, 0xC2A1, 0x7653, 0xF04E, + 0x7656, 0xC27D, 0x7657, 0xF04F, 0x7658, 0xC27E, 0x7659, 0xF04C, 0x765A, 0xF050, 0x765C, 0xF04A, 0x765F, 0xC3A7, 0x7660, 0xF278, + 0x7661, 0xC3A8, 0x7662, 0xC46F, 0x7664, 0xF04B, 0x7665, 0xC470, 0x7669, 0xC4EE, 0x766A, 0xF5DF, 0x766C, 0xC57E, 0x766D, 0xF6F4, + 0x766E, 0xC57D, 0x7670, 0xF7EA, 0x7671, 0xC5F5, 0x7672, 0xC5F6, 0x7675, 0xF9CC, 0x7678, 0xACD1, 0x7679, 0xCFDE, 0x767B, 0xB56E, + 0x767C, 0xB56F, 0x767D, 0xA5D5, 0x767E, 0xA6CA, 0x767F, 0xCA47, 0x7681, 0xCB71, 0x7682, 0xA86D, 0x7684, 0xAABA, 0x7686, 0xACD2, + 0x7687, 0xACD3, 0x7688, 0xACD4, 0x7689, 0xD6A6, 0x768A, 0xD2CB, 0x768B, 0xAF6F, 0x768E, 0xB2AE, 0x768F, 0xD6A5, 0x7692, 0xDAB8, + 0x7693, 0xB571, 0x7695, 0xDAB7, 0x7696, 0xB570, 0x7699, 0xDED5, 0x769A, 0xBD4A, 0x769B, 0xE6BB, 0x769C, 0xE6B8, 0x769D, 0xE6B9, + 0x769E, 0xE6BA, 0x76A4, 0xED78, 0x76A6, 0xF051, 0x76AA, 0xF471, 0x76AB, 0xF470, 0x76AD, 0xF6F5, 0x76AE, 0xA5D6, 0x76AF, 0xCD75, + 0x76B0, 0xAF70, 0x76B4, 0xB572, 0x76B5, 0xDED6, 0x76B8, 0xE2E1, 0x76BA, 0xBD4B, 0x76BB, 0xEA74, 0x76BD, 0xF052, 0x76BE, 0xF472, + 0x76BF, 0xA5D7, 0x76C2, 0xAABB, 0x76C3, 0xACD7, 0x76C4, 0xCFDF, 0x76C5, 0xACD8, 0x76C6, 0xACD6, 0x76C8, 0xACD5, 0x76C9, 0xD2CC, + 0x76CA, 0xAF71, 0x76CD, 0xAF72, 0x76CE, 0xAF73, 0x76D2, 0xB2B0, 0x76D3, 0xD6A7, 0x76D4, 0xB2AF, 0x76DA, 0xDAB9, 0x76DB, 0xB2B1, + 0x76DC, 0xB573, 0x76DD, 0xDED7, 0x76DE, 0xB7F8, 0x76DF, 0xB7F9, 0x76E1, 0xBAC9, 0x76E3, 0xBACA, 0x76E4, 0xBD4C, 0x76E5, 0xBF64, + 0x76E6, 0xEA75, 0x76E7, 0xBF63, 0x76E9, 0xED79, 0x76EA, 0xC0FA, 0x76EC, 0xF053, 0x76ED, 0xF473, 0x76EE, 0xA5D8, 0x76EF, 0xA86E, + 0x76F0, 0xCD78, 0x76F1, 0xCD77, 0x76F2, 0xAABC, 0x76F3, 0xCD76, 0x76F4, 0xAABD, 0x76F5, 0xCD79, 0x76F7, 0xCFE5, 0x76F8, 0xACDB, + 0x76F9, 0xACDA, 0x76FA, 0xCFE7, 0x76FB, 0xCFE6, 0x76FC, 0xACDF, 0x76FE, 0xACDE, 0x7701, 0xACD9, 0x7703, 0xCFE1, 0x7704, 0xCFE2, + 0x7705, 0xCFE3, 0x7707, 0xACE0, 0x7708, 0xCFE0, 0x7709, 0xACDC, 0x770A, 0xCFE4, 0x770B, 0xACDD, 0x7710, 0xD2CF, 0x7711, 0xD2D3, + 0x7712, 0xD2D1, 0x7713, 0xD2D0, 0x7715, 0xD2D4, 0x7719, 0xD2D5, 0x771A, 0xD2D6, 0x771B, 0xD2CE, 0x771D, 0xD2CD, 0x771F, 0xAF75, + 0x7720, 0xAF76, 0x7722, 0xD2D7, 0x7723, 0xD2D2, 0x7725, 0xD6B0, 0x7727, 0xD2D8, 0x7728, 0xAF77, 0x7729, 0xAF74, 0x772D, 0xD6AA, + 0x772F, 0xD6A9, 0x7731, 0xD6AB, 0x7732, 0xD6AC, 0x7733, 0xD6AE, 0x7734, 0xD6AD, 0x7735, 0xD6B2, 0x7736, 0xB2B5, 0x7737, 0xB2B2, + 0x7738, 0xB2B6, 0x7739, 0xD6A8, 0x773A, 0xB2B7, 0x773B, 0xD6B1, 0x773C, 0xB2B4, 0x773D, 0xD6AF, 0x773E, 0xB2B3, 0x7744, 0xDABC, + 0x7745, 0xDABE, 0x7746, 0xDABA, 0x7747, 0xDABB, 0x774A, 0xDABF, 0x774B, 0xDAC1, 0x774C, 0xDAC2, 0x774D, 0xDABD, 0x774E, 0xDAC0, + 0x774F, 0xB574, 0x7752, 0xDEDB, 0x7754, 0xDEE0, 0x7755, 0xDED8, 0x7756, 0xDEDC, 0x7759, 0xDEE1, 0x775A, 0xDEDD, 0x775B, 0xB7FA, + 0x775C, 0xB843, 0x775E, 0xB7FD, 0x775F, 0xDED9, 0x7760, 0xDEDA, 0x7761, 0xBACE, 0x7762, 0xB846, 0x7763, 0xB7FE, 0x7765, 0xB844, + 0x7766, 0xB7FC, 0x7767, 0xDEDF, 0x7768, 0xB845, 0x7769, 0xDEDE, 0x776A, 0xB841, 0x776B, 0xB7FB, 0x776C, 0xB842, 0x776D, 0xDEE2, + 0x776E, 0xE2E6, 0x776F, 0xE2E8, 0x7779, 0xB840, 0x777C, 0xE2E3, 0x777D, 0xBACC, 0x777E, 0xE2E9, 0x777F, 0xBACD, 0x7780, 0xE2E7, + 0x7781, 0xE2E2, 0x7782, 0xE2E5, 0x7783, 0xE2EA, 0x7784, 0xBACB, 0x7785, 0xE2E4, 0x7787, 0xBD4E, 0x7788, 0xE6BF, 0x7789, 0xE6BE, + 0x778B, 0xBD51, 0x778C, 0xBD4F, 0x778D, 0xE6BC, 0x778E, 0xBD4D, 0x778F, 0xE6BD, 0x7791, 0xBD50, 0x7795, 0xEA7D, 0x7797, 0xEAA1, + 0x7799, 0xEA7E, 0x779A, 0xEA76, 0x779B, 0xEA7A, 0x779C, 0xEA79, 0x779D, 0xEA77, 0x779E, 0xBF66, 0x779F, 0xBF67, 0x77A0, 0xBF65, + 0x77A1, 0xEA78, 0x77A2, 0xEA7B, 0x77A3, 0xEA7C, 0x77A5, 0xBF68, 0x77A7, 0xC140, 0x77A8, 0xEDA3, 0x77AA, 0xC0FC, 0x77AB, 0xED7B, + 0x77AC, 0xC0FE, 0x77AD, 0xC141, 0x77B0, 0xC0FD, 0x77B1, 0xEDA2, 0x77B2, 0xED7C, 0x77B3, 0xC0FB, 0x77B4, 0xEDA1, 0x77B5, 0xED7A, + 0x77B6, 0xED7E, 0x77B7, 0xED7D, 0x77BA, 0xF055, 0x77BB, 0xC2A4, 0x77BC, 0xC2A5, 0x77BD, 0xC2A2, 0x77BF, 0xC2A3, 0x77C2, 0xF054, + 0x77C4, 0xF27B, 0x77C7, 0xC3A9, 0x77C9, 0xF279, 0x77CA, 0xF27A, 0x77CC, 0xF474, 0x77CD, 0xF477, 0x77CE, 0xF475, 0x77CF, 0xF476, + 0x77D0, 0xF5E0, 0x77D3, 0xC4EF, 0x77D4, 0xF7EB, 0x77D5, 0xF8B4, 0x77D7, 0xC5F7, 0x77D8, 0xF8F8, 0x77D9, 0xF8F9, 0x77DA, 0xC666, + 0x77DB, 0xA5D9, 0x77DC, 0xACE1, 0x77DE, 0xDAC3, 0x77E0, 0xDEE3, 0x77E2, 0xA5DA, 0x77E3, 0xA86F, 0x77E5, 0xAABE, 0x77E7, 0xCFE8, + 0x77E8, 0xCFE9, 0x77E9, 0xAF78, 0x77EC, 0xDAC4, 0x77ED, 0xB575, 0x77EE, 0xB847, 0x77EF, 0xC142, 0x77F0, 0xEDA4, 0x77F1, 0xF27C, + 0x77F2, 0xF478, 0x77F3, 0xA5DB, 0x77F7, 0xCDA1, 0x77F8, 0xCD7A, 0x77F9, 0xCD7C, 0x77FA, 0xCD7E, 0x77FB, 0xCD7D, 0x77FC, 0xCD7B, + 0x77FD, 0xAABF, 0x7802, 0xACE2, 0x7803, 0xCFF2, 0x7805, 0xCFED, 0x7806, 0xCFEA, 0x7809, 0xCFF1, 0x780C, 0xACE4, 0x780D, 0xACE5, + 0x780E, 0xCFF0, 0x780F, 0xCFEF, 0x7810, 0xCFEE, 0x7811, 0xCFEB, 0x7812, 0xCFEC, 0x7813, 0xCFF3, 0x7814, 0xACE3, 0x781D, 0xAF7C, + 0x781F, 0xAFA4, 0x7820, 0xAFA3, 0x7821, 0xD2E1, 0x7822, 0xD2DB, 0x7823, 0xD2D9, 0x7825, 0xAFA1, 0x7826, 0xD6B9, 0x7827, 0xAF7A, + 0x7828, 0xD2DE, 0x7829, 0xD2E2, 0x782A, 0xD2E4, 0x782B, 0xD2E0, 0x782C, 0xD2DA, 0x782D, 0xAFA2, 0x782E, 0xD2DF, 0x782F, 0xD2DD, + 0x7830, 0xAF79, 0x7831, 0xD2E5, 0x7832, 0xAFA5, 0x7833, 0xD2E3, 0x7834, 0xAF7D, 0x7835, 0xD2DC, 0x7837, 0xAF7E, 0x7838, 0xAF7B, + 0x7843, 0xB2B9, 0x7845, 0xD6BA, 0x7848, 0xD6B3, 0x7849, 0xD6B5, 0x784A, 0xD6B7, 0x784C, 0xD6B8, 0x784D, 0xD6B6, 0x784E, 0xB2BA, + 0x7850, 0xD6BB, 0x7852, 0xD6B4, 0x785C, 0xDAC8, 0x785D, 0xB576, 0x785E, 0xDAD0, 0x7860, 0xDAC5, 0x7862, 0xDAD1, 0x7864, 0xDAC6, + 0x7865, 0xDAC7, 0x7868, 0xDACF, 0x7869, 0xDACE, 0x786A, 0xDACB, 0x786B, 0xB2B8, 0x786C, 0xB577, 0x786D, 0xDAC9, 0x786E, 0xDACC, + 0x786F, 0xB578, 0x7870, 0xDACD, 0x7871, 0xDACA, 0x7879, 0xDEEE, 0x787B, 0xDEF2, 0x787C, 0xB84E, 0x787E, 0xE2F0, 0x787F, 0xB851, + 0x7880, 0xDEF0, 0x7881, 0xF9D6, 0x7883, 0xDEED, 0x7884, 0xDEE8, 0x7885, 0xDEEA, 0x7886, 0xDEEB, 0x7887, 0xDEE4, 0x7889, 0xB84D, + 0x788C, 0xB84C, 0x788E, 0xB848, 0x788F, 0xDEE7, 0x7891, 0xB84F, 0x7893, 0xB850, 0x7894, 0xDEE6, 0x7895, 0xDEE9, 0x7896, 0xDEF1, + 0x7897, 0xB84A, 0x7898, 0xB84B, 0x7899, 0xDEEF, 0x789A, 0xDEE5, 0x789E, 0xE2F2, 0x789F, 0xBAD0, 0x78A0, 0xE2F4, 0x78A1, 0xDEEC, + 0x78A2, 0xE2F6, 0x78A3, 0xBAD4, 0x78A4, 0xE2F7, 0x78A5, 0xE2F3, 0x78A7, 0xBAD1, 0x78A8, 0xE2EF, 0x78A9, 0xBAD3, 0x78AA, 0xE2EC, + 0x78AB, 0xE2F1, 0x78AC, 0xE2F5, 0x78AD, 0xE2EE, 0x78B0, 0xB849, 0x78B2, 0xE2EB, 0x78B3, 0xBAD2, 0x78B4, 0xE2ED, 0x78BA, 0xBD54, + 0x78BB, 0xE6C1, 0x78BC, 0xBD58, 0x78BE, 0xBD56, 0x78C1, 0xBACF, 0x78C3, 0xE6C8, 0x78C4, 0xE6C9, 0x78C5, 0xBD53, 0x78C8, 0xE6C7, + 0x78C9, 0xE6CA, 0x78CA, 0xBD55, 0x78CB, 0xBD52, 0x78CC, 0xE6C3, 0x78CD, 0xE6C0, 0x78CE, 0xE6C5, 0x78CF, 0xE6C2, 0x78D0, 0xBD59, + 0x78D1, 0xE6C4, 0x78D4, 0xE6C6, 0x78D5, 0xBD57, 0x78DA, 0xBF6A, 0x78DB, 0xEAA8, 0x78DD, 0xEAA2, 0x78DE, 0xEAA6, 0x78DF, 0xEAAC, + 0x78E0, 0xEAAD, 0x78E1, 0xEAA9, 0x78E2, 0xEAAA, 0x78E3, 0xEAA7, 0x78E5, 0xEAA4, 0x78E7, 0xBF6C, 0x78E8, 0xBF69, 0x78E9, 0xEAA3, + 0x78EA, 0xEAA5, 0x78EC, 0xBF6B, 0x78ED, 0xEAAB, 0x78EF, 0xC146, 0x78F2, 0xEDAA, 0x78F3, 0xEDA5, 0x78F4, 0xC145, 0x78F7, 0xC143, + 0x78F9, 0xEDAC, 0x78FA, 0xC144, 0x78FB, 0xEDA8, 0x78FC, 0xEDA9, 0x78FD, 0xEDA6, 0x78FE, 0xEDAD, 0x78FF, 0xF056, 0x7901, 0xC147, + 0x7902, 0xEDA7, 0x7904, 0xEDAE, 0x7905, 0xEDAB, 0x7909, 0xF05A, 0x790C, 0xF057, 0x790E, 0xC2A6, 0x7910, 0xF05B, 0x7911, 0xF05D, + 0x7912, 0xF05C, 0x7913, 0xF058, 0x7914, 0xF059, 0x7917, 0xF2A3, 0x7919, 0xC3AA, 0x791B, 0xF27E, 0x791C, 0xF2A2, 0x791D, 0xF27D, + 0x791E, 0xF2A4, 0x7921, 0xF2A1, 0x7923, 0xF47A, 0x7924, 0xF47D, 0x7925, 0xF479, 0x7926, 0xC471, 0x7927, 0xF47B, 0x7928, 0xF47C, + 0x7929, 0xF47E, 0x792A, 0xC472, 0x792B, 0xC474, 0x792C, 0xC473, 0x792D, 0xF5E1, 0x792F, 0xF5E3, 0x7931, 0xF5E2, 0x7935, 0xF6F6, + 0x7938, 0xF8B5, 0x7939, 0xF8FA, 0x793A, 0xA5DC, 0x793D, 0xCB72, 0x793E, 0xAAC0, 0x793F, 0xCDA3, 0x7940, 0xAAC1, 0x7941, 0xAAC2, + 0x7942, 0xCDA2, 0x7944, 0xCFF8, 0x7945, 0xCFF7, 0x7946, 0xACE6, 0x7947, 0xACE9, 0x7948, 0xACE8, 0x7949, 0xACE7, 0x794A, 0xCFF4, + 0x794B, 0xCFF6, 0x794C, 0xCFF5, 0x794F, 0xD2E8, 0x7950, 0xAFA7, 0x7951, 0xD2EC, 0x7952, 0xD2EB, 0x7953, 0xD2EA, 0x7954, 0xD2E6, + 0x7955, 0xAFA6, 0x7956, 0xAFAA, 0x7957, 0xAFAD, 0x795A, 0xAFAE, 0x795B, 0xD2E7, 0x795C, 0xD2E9, 0x795D, 0xAFAC, 0x795E, 0xAFAB, + 0x795F, 0xAFA9, 0x7960, 0xAFA8, 0x7961, 0xD6C2, 0x7963, 0xD6C0, 0x7964, 0xD6BC, 0x7965, 0xB2BB, 0x7967, 0xD6BD, 0x7968, 0xB2BC, + 0x7969, 0xD6BE, 0x796A, 0xD6BF, 0x796B, 0xD6C1, 0x796D, 0xB2BD, 0x7970, 0xDAD5, 0x7972, 0xDAD4, 0x7973, 0xDAD3, 0x7974, 0xDAD2, + 0x7979, 0xDEF6, 0x797A, 0xB852, 0x797C, 0xDEF3, 0x797D, 0xDEF5, 0x797F, 0xB853, 0x7981, 0xB854, 0x7982, 0xDEF4, 0x7988, 0xE341, + 0x798A, 0xE2F9, 0x798B, 0xE2FA, 0x798D, 0xBAD7, 0x798E, 0xBAD5, 0x798F, 0xBAD6, 0x7990, 0xE343, 0x7992, 0xE342, 0x7993, 0xE2FE, + 0x7994, 0xE2FD, 0x7995, 0xE2FC, 0x7996, 0xE2FB, 0x7997, 0xE340, 0x7998, 0xE2F8, 0x799A, 0xE6CB, 0x799B, 0xE6D0, 0x799C, 0xE6CE, + 0x79A0, 0xE6CD, 0x79A1, 0xE6CC, 0x79A2, 0xE6CF, 0x79A4, 0xEAAE, 0x79A6, 0xBF6D, 0x79A7, 0xC148, 0x79A8, 0xEDB0, 0x79AA, 0xC149, + 0x79AB, 0xEDAF, 0x79AC, 0xF05F, 0x79AD, 0xF05E, 0x79AE, 0xC2A7, 0x79B0, 0xF2A5, 0x79B1, 0xC3AB, 0x79B2, 0xF4A1, 0x79B3, 0xC5A1, + 0x79B4, 0xF6F7, 0x79B6, 0xF8B7, 0x79B7, 0xF8B6, 0x79B8, 0xC9A8, 0x79B9, 0xACEA, 0x79BA, 0xACEB, 0x79BB, 0xD6C3, 0x79BD, 0xB856, + 0x79BE, 0xA5DD, 0x79BF, 0xA872, 0x79C0, 0xA871, 0x79C1, 0xA870, 0x79C5, 0xCDA4, 0x79C8, 0xAAC4, 0x79C9, 0xAAC3, 0x79CB, 0xACEE, + 0x79CD, 0xCFFA, 0x79CE, 0xCFFD, 0x79CF, 0xCFFB, 0x79D1, 0xACEC, 0x79D2, 0xACED, 0x79D5, 0xCFF9, 0x79D6, 0xCFFC, 0x79D8, 0xAFB5, + 0x79DC, 0xD2F3, 0x79DD, 0xD2F5, 0x79DE, 0xD2F4, 0x79DF, 0xAFB2, 0x79E0, 0xD2EF, 0x79E3, 0xAFB0, 0x79E4, 0xAFAF, 0x79E6, 0xAFB3, + 0x79E7, 0xAFB1, 0x79E9, 0xAFB4, 0x79EA, 0xD2F2, 0x79EB, 0xD2ED, 0x79EC, 0xD2EE, 0x79ED, 0xD2F1, 0x79EE, 0xD2F0, 0x79F6, 0xD6C6, + 0x79F7, 0xD6C7, 0x79F8, 0xD6C5, 0x79FA, 0xD6C4, 0x79FB, 0xB2BE, 0x7A00, 0xB57D, 0x7A02, 0xDAD6, 0x7A03, 0xDAD8, 0x7A04, 0xDADA, + 0x7A05, 0xB57C, 0x7A08, 0xB57A, 0x7A0A, 0xDAD7, 0x7A0B, 0xB57B, 0x7A0C, 0xDAD9, 0x7A0D, 0xB579, 0x7A10, 0xDF41, 0x7A11, 0xDEF7, + 0x7A12, 0xDEFA, 0x7A13, 0xDEFE, 0x7A14, 0xB85A, 0x7A15, 0xDEFC, 0x7A17, 0xDEFB, 0x7A18, 0xDEF8, 0x7A19, 0xDEF9, 0x7A1A, 0xB858, + 0x7A1B, 0xDF40, 0x7A1C, 0xB857, 0x7A1E, 0xB85C, 0x7A1F, 0xB85B, 0x7A20, 0xB859, 0x7A22, 0xDEFD, 0x7A26, 0xE349, 0x7A28, 0xE348, + 0x7A2B, 0xE344, 0x7A2E, 0xBAD8, 0x7A2F, 0xE347, 0x7A30, 0xE346, 0x7A31, 0xBAD9, 0x7A37, 0xBD5E, 0x7A39, 0xE6D2, 0x7A3B, 0xBD5F, + 0x7A3C, 0xBD5B, 0x7A3D, 0xBD5D, 0x7A3F, 0xBD5A, 0x7A40, 0xBD5C, 0x7A44, 0xEAAF, 0x7A46, 0xBF70, 0x7A47, 0xEAB1, 0x7A48, 0xEAB0, + 0x7A4A, 0xE345, 0x7A4B, 0xBF72, 0x7A4C, 0xBF71, 0x7A4D, 0xBF6E, 0x7A4E, 0xBF6F, 0x7A54, 0xEDB5, 0x7A56, 0xEDB3, 0x7A57, 0xC14A, + 0x7A58, 0xEDB4, 0x7A5A, 0xEDB6, 0x7A5B, 0xEDB2, 0x7A5C, 0xEDB1, 0x7A5F, 0xF060, 0x7A60, 0xC2AA, 0x7A61, 0xC2A8, 0x7A62, 0xC2A9, + 0x7A67, 0xF2A6, 0x7A68, 0xF2A7, 0x7A69, 0xC3AD, 0x7A6B, 0xC3AC, 0x7A6C, 0xF4A3, 0x7A6D, 0xF4A4, 0x7A6E, 0xF4A2, 0x7A70, 0xF6F8, + 0x7A71, 0xF6F9, 0x7A74, 0xA5DE, 0x7A75, 0xCA48, 0x7A76, 0xA873, 0x7A78, 0xCDA5, 0x7A79, 0xAAC6, 0x7A7A, 0xAAC5, 0x7A7B, 0xCDA6, + 0x7A7E, 0xD040, 0x7A7F, 0xACEF, 0x7A80, 0xCFFE, 0x7A81, 0xACF0, 0x7A84, 0xAFB6, 0x7A85, 0xD2F8, 0x7A86, 0xD2F6, 0x7A87, 0xD2FC, + 0x7A88, 0xAFB7, 0x7A89, 0xD2F7, 0x7A8A, 0xD2FB, 0x7A8B, 0xD2F9, 0x7A8C, 0xD2FA, 0x7A8F, 0xD6C8, 0x7A90, 0xD6CA, 0x7A92, 0xB2BF, + 0x7A94, 0xD6C9, 0x7A95, 0xB2C0, 0x7A96, 0xB5A2, 0x7A97, 0xB5A1, 0x7A98, 0xB57E, 0x7A99, 0xDADB, 0x7A9E, 0xDF44, 0x7A9F, 0xB85D, + 0x7AA0, 0xB85E, 0x7AA2, 0xDF43, 0x7AA3, 0xDF42, 0x7AA8, 0xE34A, 0x7AA9, 0xBADB, 0x7AAA, 0xBADA, 0x7AAB, 0xE34B, 0x7AAC, 0xE34C, + 0x7AAE, 0xBD61, 0x7AAF, 0xBD60, 0x7AB1, 0xEAB5, 0x7AB2, 0xE6D3, 0x7AB3, 0xE6D5, 0x7AB4, 0xE6D4, 0x7AB5, 0xEAB4, 0x7AB6, 0xEAB2, + 0x7AB7, 0xEAB6, 0x7AB8, 0xEAB3, 0x7ABA, 0xBF73, 0x7ABE, 0xEDB7, 0x7ABF, 0xC14B, 0x7AC0, 0xEDB8, 0x7AC1, 0xEDB9, 0x7AC4, 0xC2AB, + 0x7AC5, 0xC2AC, 0x7AC7, 0xC475, 0x7ACA, 0xC5D1, 0x7ACB, 0xA5DF, 0x7AD1, 0xD041, 0x7AD8, 0xD2FD, 0x7AD9, 0xAFB8, 0x7ADF, 0xB3BA, + 0x7AE0, 0xB3B9, 0x7AE3, 0xB5A4, 0x7AE4, 0xDADD, 0x7AE5, 0xB5A3, 0x7AE6, 0xDADC, 0x7AEB, 0xDF45, 0x7AED, 0xBADC, 0x7AEE, 0xE34D, + 0x7AEF, 0xBADD, 0x7AF6, 0xC476, 0x7AF7, 0xF4A5, 0x7AF9, 0xA6CB, 0x7AFA, 0xAAC7, 0x7AFB, 0xCDA7, 0x7AFD, 0xACF2, 0x7AFF, 0xACF1, + 0x7B00, 0xD042, 0x7B01, 0xD043, 0x7B04, 0xD340, 0x7B05, 0xD342, 0x7B06, 0xAFB9, 0x7B08, 0xD344, 0x7B09, 0xD347, 0x7B0A, 0xD345, + 0x7B0E, 0xD346, 0x7B0F, 0xD343, 0x7B10, 0xD2FE, 0x7B11, 0xAFBA, 0x7B12, 0xD348, 0x7B13, 0xD341, 0x7B18, 0xD6D3, 0x7B19, 0xB2C6, + 0x7B1A, 0xD6DC, 0x7B1B, 0xB2C3, 0x7B1D, 0xD6D5, 0x7B1E, 0xB2C7, 0x7B20, 0xB2C1, 0x7B22, 0xD6D0, 0x7B23, 0xD6DD, 0x7B24, 0xD6D1, + 0x7B25, 0xD6CE, 0x7B26, 0xB2C5, 0x7B28, 0xB2C2, 0x7B2A, 0xD6D4, 0x7B2B, 0xD6D7, 0x7B2C, 0xB2C4, 0x7B2D, 0xD6D8, 0x7B2E, 0xB2C8, + 0x7B2F, 0xD6D9, 0x7B30, 0xD6CF, 0x7B31, 0xD6D6, 0x7B32, 0xD6DA, 0x7B33, 0xD6D2, 0x7B34, 0xD6CD, 0x7B35, 0xD6CB, 0x7B38, 0xD6DB, + 0x7B3B, 0xDADF, 0x7B40, 0xDAE4, 0x7B44, 0xDAE0, 0x7B45, 0xDAE6, 0x7B46, 0xB5A7, 0x7B47, 0xD6CC, 0x7B48, 0xDAE1, 0x7B49, 0xB5A5, + 0x7B4A, 0xDADE, 0x7B4B, 0xB5AC, 0x7B4C, 0xDAE2, 0x7B4D, 0xB5AB, 0x7B4E, 0xDAE3, 0x7B4F, 0xB5AD, 0x7B50, 0xB5A8, 0x7B51, 0xB5AE, + 0x7B52, 0xB5A9, 0x7B54, 0xB5AA, 0x7B56, 0xB5A6, 0x7B58, 0xDAE5, 0x7B60, 0xB861, 0x7B61, 0xDF50, 0x7B63, 0xDF53, 0x7B64, 0xDF47, + 0x7B65, 0xDF4C, 0x7B66, 0xDF46, 0x7B67, 0xB863, 0x7B69, 0xDF4A, 0x7B6D, 0xDF48, 0x7B6E, 0xB862, 0x7B70, 0xDF4F, 0x7B71, 0xDF4E, + 0x7B72, 0xDF4B, 0x7B73, 0xDF4D, 0x7B74, 0xDF49, 0x7B75, 0xBAE1, 0x7B76, 0xDF52, 0x7B77, 0xB85F, 0x7B78, 0xDF51, 0x7B82, 0xE35D, + 0x7B84, 0xBAE8, 0x7B85, 0xE358, 0x7B87, 0xBAE7, 0x7B88, 0xE34E, 0x7B8A, 0xE350, 0x7B8B, 0xBAE0, 0x7B8C, 0xE355, 0x7B8D, 0xE354, + 0x7B8E, 0xE357, 0x7B8F, 0xBAE5, 0x7B90, 0xE352, 0x7B91, 0xE351, 0x7B94, 0xBAE4, 0x7B95, 0xBADF, 0x7B96, 0xE353, 0x7B97, 0xBAE2, + 0x7B98, 0xE359, 0x7B99, 0xE35B, 0x7B9B, 0xE356, 0x7B9C, 0xE34F, 0x7B9D, 0xBAE3, 0x7BA0, 0xBD69, 0x7BA1, 0xBADE, 0x7BA4, 0xE35C, + 0x7BAC, 0xE6D9, 0x7BAD, 0xBD62, 0x7BAF, 0xE6DB, 0x7BB1, 0xBD63, 0x7BB4, 0xBD65, 0x7BB5, 0xE6DE, 0x7BB7, 0xE6D6, 0x7BB8, 0xBAE6, + 0x7BB9, 0xE6DC, 0x7BBE, 0xE6D8, 0x7BC0, 0xB860, 0x7BC1, 0xBD68, 0x7BC4, 0xBD64, 0x7BC6, 0xBD66, 0x7BC7, 0xBD67, 0x7BC9, 0xBF76, + 0x7BCA, 0xE6DD, 0x7BCB, 0xE6D7, 0x7BCC, 0xBD6A, 0x7BCE, 0xE6DA, 0x7BD4, 0xEAC0, 0x7BD5, 0xEABB, 0x7BD8, 0xEAC5, 0x7BD9, 0xBF74, + 0x7BDA, 0xEABD, 0x7BDB, 0xBF78, 0x7BDC, 0xEAC3, 0x7BDD, 0xEABA, 0x7BDE, 0xEAB7, 0x7BDF, 0xEAC6, 0x7BE0, 0xC151, 0x7BE1, 0xBF79, + 0x7BE2, 0xEAC2, 0x7BE3, 0xEAB8, 0x7BE4, 0xBF77, 0x7BE5, 0xEABC, 0x7BE6, 0xBF7B, 0x7BE7, 0xEAB9, 0x7BE8, 0xEABE, 0x7BE9, 0xBF7A, + 0x7BEA, 0xEAC1, 0x7BEB, 0xEAC4, 0x7BF0, 0xEDCB, 0x7BF1, 0xEDCC, 0x7BF2, 0xEDBC, 0x7BF3, 0xEDC3, 0x7BF4, 0xEDC1, 0x7BF7, 0xC14F, + 0x7BF8, 0xEDC8, 0x7BF9, 0xEABF, 0x7BFB, 0xEDBF, 0x7BFD, 0xEDC9, 0x7BFE, 0xC14E, 0x7BFF, 0xEDBE, 0x7C00, 0xEDBD, 0x7C01, 0xEDC7, + 0x7C02, 0xEDC4, 0x7C03, 0xEDC6, 0x7C05, 0xEDBA, 0x7C06, 0xEDCA, 0x7C07, 0xC14C, 0x7C09, 0xEDC5, 0x7C0A, 0xEDCE, 0x7C0B, 0xEDC2, + 0x7C0C, 0xC150, 0x7C0D, 0xC14D, 0x7C0E, 0xEDC0, 0x7C0F, 0xEDBB, 0x7C10, 0xEDCD, 0x7C11, 0xBF75, 0x7C19, 0xF063, 0x7C1C, 0xF061, + 0x7C1D, 0xF067, 0x7C1E, 0xC2B0, 0x7C1F, 0xF065, 0x7C20, 0xF064, 0x7C21, 0xC2B2, 0x7C22, 0xF06A, 0x7C23, 0xC2B1, 0x7C25, 0xF06B, + 0x7C26, 0xF068, 0x7C27, 0xC2AE, 0x7C28, 0xF069, 0x7C29, 0xF062, 0x7C2A, 0xC2AF, 0x7C2B, 0xC2AD, 0x7C2C, 0xF2AB, 0x7C2D, 0xF066, + 0x7C30, 0xF06C, 0x7C33, 0xF2A8, 0x7C37, 0xC3B2, 0x7C38, 0xC3B0, 0x7C39, 0xF2AA, 0x7C3B, 0xF2AC, 0x7C3C, 0xF2A9, 0x7C3D, 0xC3B1, + 0x7C3E, 0xC3AE, 0x7C3F, 0xC3AF, 0x7C40, 0xC3B3, 0x7C43, 0xC478, 0x7C45, 0xF4AA, 0x7C47, 0xF4A9, 0x7C48, 0xF4A7, 0x7C49, 0xF4A6, + 0x7C4A, 0xF4A8, 0x7C4C, 0xC477, 0x7C4D, 0xC479, 0x7C50, 0xC4F0, 0x7C53, 0xF5E5, 0x7C54, 0xF5E4, 0x7C57, 0xF6FA, 0x7C59, 0xF6FC, + 0x7C5A, 0xF6FE, 0x7C5B, 0xF6FD, 0x7C5C, 0xF6FB, 0x7C5F, 0xC5A3, 0x7C60, 0xC5A2, 0x7C63, 0xC5D3, 0x7C64, 0xC5D2, 0x7C65, 0xC5D4, + 0x7C66, 0xF7ED, 0x7C67, 0xF7EC, 0x7C69, 0xF8FB, 0x7C6A, 0xF8B8, 0x7C6B, 0xF8FC, 0x7C6C, 0xC658, 0x7C6E, 0xC659, 0x7C6F, 0xF96D, + 0x7C72, 0xC67E, 0x7C73, 0xA6CC, 0x7C75, 0xCDA8, 0x7C78, 0xD045, 0x7C79, 0xD046, 0x7C7A, 0xD044, 0x7C7D, 0xACF3, 0x7C7F, 0xD047, + 0x7C80, 0xD048, 0x7C81, 0xD049, 0x7C84, 0xD349, 0x7C85, 0xD34F, 0x7C88, 0xD34D, 0x7C89, 0xAFBB, 0x7C8A, 0xD34B, 0x7C8C, 0xD34C, + 0x7C8D, 0xD34E, 0x7C91, 0xD34A, 0x7C92, 0xB2C9, 0x7C94, 0xD6DE, 0x7C95, 0xB2CB, 0x7C96, 0xD6E0, 0x7C97, 0xB2CA, 0x7C98, 0xD6DF, + 0x7C9E, 0xDAE8, 0x7C9F, 0xB5AF, 0x7CA1, 0xDAEA, 0x7CA2, 0xDAE7, 0x7CA3, 0xD6E1, 0x7CA5, 0xB5B0, 0x7CA7, 0xF9DB, 0x7CA8, 0xDAE9, + 0x7CAF, 0xDF56, 0x7CB1, 0xB864, 0x7CB2, 0xDF54, 0x7CB3, 0xB865, 0x7CB4, 0xDF55, 0x7CB5, 0xB866, 0x7CB9, 0xBAE9, 0x7CBA, 0xE361, + 0x7CBB, 0xE35E, 0x7CBC, 0xE360, 0x7CBD, 0xBAEA, 0x7CBE, 0xBAEB, 0x7CBF, 0xE35F, 0x7CC5, 0xE6DF, 0x7CC8, 0xE6E0, 0x7CCA, 0xBD6B, + 0x7CCB, 0xE6E2, 0x7CCC, 0xE6E1, 0x7CCE, 0xA261, 0x7CD0, 0xEACA, 0x7CD1, 0xEACB, 0x7CD2, 0xEAC7, 0x7CD4, 0xEAC8, 0x7CD5, 0xBF7C, + 0x7CD6, 0xBF7D, 0x7CD7, 0xEAC9, 0x7CD9, 0xC157, 0x7CDC, 0xC153, 0x7CDD, 0xC158, 0x7CDE, 0xC154, 0x7CDF, 0xC156, 0x7CE0, 0xC152, + 0x7CE2, 0xC155, 0x7CE7, 0xC2B3, 0x7CE8, 0xEDCF, 0x7CEA, 0xF2AE, 0x7CEC, 0xF2AD, 0x7CEE, 0xF4AB, 0x7CEF, 0xC47A, 0x7CF0, 0xC47B, + 0x7CF1, 0xF741, 0x7CF2, 0xF5E6, 0x7CF4, 0xF740, 0x7CF6, 0xF8FD, 0x7CF7, 0xF9A4, 0x7CF8, 0xA6CD, 0x7CFB, 0xA874, 0x7CFD, 0xCDA9, + 0x7CFE, 0xAAC8, 0x7D00, 0xACF6, 0x7D01, 0xD04C, 0x7D02, 0xACF4, 0x7D03, 0xD04A, 0x7D04, 0xACF9, 0x7D05, 0xACF5, 0x7D06, 0xACFA, + 0x7D07, 0xACF8, 0x7D08, 0xD04B, 0x7D09, 0xACF7, 0x7D0A, 0xAFBF, 0x7D0B, 0xAFBE, 0x7D0C, 0xD35A, 0x7D0D, 0xAFC7, 0x7D0E, 0xD353, + 0x7D0F, 0xD359, 0x7D10, 0xAFC3, 0x7D11, 0xD352, 0x7D12, 0xD358, 0x7D13, 0xD356, 0x7D14, 0xAFC2, 0x7D15, 0xAFC4, 0x7D16, 0xD355, + 0x7D17, 0xAFBD, 0x7D18, 0xD354, 0x7D19, 0xAFC8, 0x7D1A, 0xAFC5, 0x7D1B, 0xAFC9, 0x7D1C, 0xAFC6, 0x7D1D, 0xD351, 0x7D1E, 0xD350, + 0x7D1F, 0xD357, 0x7D20, 0xAFC0, 0x7D21, 0xAFBC, 0x7D22, 0xAFC1, 0x7D28, 0xD6F0, 0x7D29, 0xD6E9, 0x7D2B, 0xB5B5, 0x7D2C, 0xD6E8, + 0x7D2E, 0xB2CF, 0x7D2F, 0xB2D6, 0x7D30, 0xB2D3, 0x7D31, 0xB2D9, 0x7D32, 0xB2D8, 0x7D33, 0xB2D4, 0x7D35, 0xD6E2, 0x7D36, 0xD6E5, + 0x7D38, 0xD6E4, 0x7D39, 0xB2D0, 0x7D3A, 0xD6E6, 0x7D3B, 0xD6EF, 0x7D3C, 0xB2D1, 0x7D3D, 0xD6E3, 0x7D3E, 0xD6EC, 0x7D3F, 0xD6ED, + 0x7D40, 0xB2D2, 0x7D41, 0xD6EA, 0x7D42, 0xB2D7, 0x7D43, 0xB2CD, 0x7D44, 0xB2D5, 0x7D45, 0xD6E7, 0x7D46, 0xB2CC, 0x7D47, 0xD6EB, + 0x7D4A, 0xD6EE, 0x7D4E, 0xDAFB, 0x7D4F, 0xDAF2, 0x7D50, 0xB5B2, 0x7D51, 0xDAF9, 0x7D52, 0xDAF6, 0x7D53, 0xDAEE, 0x7D54, 0xDAF7, + 0x7D55, 0xB5B4, 0x7D56, 0xDAEF, 0x7D58, 0xDAEB, 0x7D5B, 0xB86C, 0x7D5C, 0xDAF4, 0x7D5E, 0xB5B1, 0x7D5F, 0xDAFA, 0x7D61, 0xB5B8, + 0x7D62, 0xB5BA, 0x7D63, 0xDAED, 0x7D66, 0xB5B9, 0x7D67, 0xDAF0, 0x7D68, 0xB5B3, 0x7D69, 0xDAF8, 0x7D6A, 0xDAF1, 0x7D6B, 0xDAF5, + 0x7D6D, 0xDAF3, 0x7D6E, 0xB5B6, 0x7D6F, 0xDAEC, 0x7D70, 0xB5BB, 0x7D71, 0xB2CE, 0x7D72, 0xB5B7, 0x7D73, 0xB5BC, 0x7D79, 0xB868, + 0x7D7A, 0xDF5D, 0x7D7B, 0xDF5F, 0x7D7C, 0xDF61, 0x7D7D, 0xDF65, 0x7D7F, 0xDF5B, 0x7D80, 0xDF59, 0x7D81, 0xB86A, 0x7D83, 0xDF60, + 0x7D84, 0xDF64, 0x7D85, 0xDF5C, 0x7D86, 0xDF58, 0x7D88, 0xDF57, 0x7D8C, 0xDF62, 0x7D8D, 0xDF5A, 0x7D8E, 0xDF5E, 0x7D8F, 0xB86B, + 0x7D91, 0xB869, 0x7D92, 0xDF66, 0x7D93, 0xB867, 0x7D94, 0xDF63, 0x7D96, 0xE372, 0x7D9C, 0xBAEE, 0x7D9D, 0xE36A, 0x7D9E, 0xBD78, + 0x7D9F, 0xE374, 0x7DA0, 0xBAF1, 0x7DA1, 0xE378, 0x7DA2, 0xBAF7, 0x7DA3, 0xE365, 0x7DA6, 0xE375, 0x7DA7, 0xE362, 0x7DA9, 0xE377, + 0x7DAA, 0xE366, 0x7DAC, 0xBAFE, 0x7DAD, 0xBAFB, 0x7DAE, 0xE376, 0x7DAF, 0xE370, 0x7DB0, 0xBAED, 0x7DB1, 0xBAF5, 0x7DB2, 0xBAF4, + 0x7DB4, 0xBAF3, 0x7DB5, 0xBAF9, 0x7DB7, 0xE363, 0x7DB8, 0xBAFA, 0x7DB9, 0xE371, 0x7DBA, 0xBAF6, 0x7DBB, 0xBAEC, 0x7DBC, 0xE373, + 0x7DBD, 0xBAEF, 0x7DBE, 0xBAF0, 0x7DBF, 0xBAF8, 0x7DC0, 0xE368, 0x7DC1, 0xE367, 0x7DC2, 0xE364, 0x7DC4, 0xE36C, 0x7DC5, 0xE369, + 0x7DC6, 0xE36D, 0x7DC7, 0xBAFD, 0x7DC9, 0xE379, 0x7DCA, 0xBAF2, 0x7DCB, 0xE36E, 0x7DCC, 0xE36F, 0x7DCE, 0xE36B, 0x7DD2, 0xBAFC, + 0x7DD7, 0xE6E7, 0x7DD8, 0xBD70, 0x7DD9, 0xBD79, 0x7DDA, 0xBD75, 0x7DDB, 0xE6E4, 0x7DDD, 0xBD72, 0x7DDE, 0xBD76, 0x7DDF, 0xE6F0, + 0x7DE0, 0xBD6C, 0x7DE1, 0xE6E8, 0x7DE3, 0xBD74, 0x7DE6, 0xE6EB, 0x7DE7, 0xE6E6, 0x7DE8, 0xBD73, 0x7DE9, 0xBD77, 0x7DEA, 0xE6E5, + 0x7DEC, 0xBD71, 0x7DEE, 0xE6EF, 0x7DEF, 0xBD6E, 0x7DF0, 0xE6EE, 0x7DF1, 0xE6ED, 0x7DF2, 0xBD7A, 0x7DF3, 0xE572, 0x7DF4, 0xBD6D, + 0x7DF6, 0xE6EC, 0x7DF7, 0xE6E3, 0x7DF9, 0xBD7B, 0x7DFA, 0xE6EA, 0x7DFB, 0xBD6F, 0x7E03, 0xE6E9, 0x7E08, 0xBFA2, 0x7E09, 0xBFA7, + 0x7E0A, 0xBF7E, 0x7E0B, 0xEAD8, 0x7E0C, 0xEACF, 0x7E0D, 0xEADB, 0x7E0E, 0xEAD3, 0x7E0F, 0xEAD9, 0x7E10, 0xBFA8, 0x7E11, 0xBFA1, + 0x7E12, 0xEACC, 0x7E13, 0xEAD2, 0x7E14, 0xEADC, 0x7E15, 0xEAD5, 0x7E16, 0xEADA, 0x7E17, 0xEACE, 0x7E1A, 0xEAD6, 0x7E1B, 0xBFA3, + 0x7E1C, 0xEAD4, 0x7E1D, 0xBFA6, 0x7E1E, 0xBFA5, 0x7E1F, 0xEAD0, 0x7E20, 0xEAD1, 0x7E21, 0xEACD, 0x7E22, 0xEAD7, 0x7E23, 0xBFA4, + 0x7E24, 0xEADE, 0x7E25, 0xEADD, 0x7E29, 0xEDDA, 0x7E2A, 0xEDD6, 0x7E2B, 0xC15F, 0x7E2D, 0xEDD0, 0x7E2E, 0xC159, 0x7E2F, 0xC169, + 0x7E30, 0xEDDC, 0x7E31, 0xC161, 0x7E32, 0xC15D, 0x7E33, 0xEDD3, 0x7E34, 0xC164, 0x7E35, 0xC167, 0x7E36, 0xEDDE, 0x7E37, 0xC15C, + 0x7E38, 0xEDD5, 0x7E39, 0xC165, 0x7E3A, 0xEDE0, 0x7E3B, 0xEDDD, 0x7E3C, 0xEDD1, 0x7E3D, 0xC160, 0x7E3E, 0xC15A, 0x7E3F, 0xC168, + 0x7E40, 0xEDD8, 0x7E41, 0xC163, 0x7E42, 0xEDD2, 0x7E43, 0xC15E, 0x7E44, 0xEDDF, 0x7E45, 0xC162, 0x7E46, 0xC15B, 0x7E47, 0xEDD9, + 0x7E48, 0xC166, 0x7E49, 0xEDD7, 0x7E4C, 0xEDDB, 0x7E50, 0xF06E, 0x7E51, 0xF074, 0x7E52, 0xC2B9, 0x7E53, 0xF077, 0x7E54, 0xC2B4, + 0x7E55, 0xC2B5, 0x7E56, 0xF06F, 0x7E57, 0xF076, 0x7E58, 0xF071, 0x7E59, 0xC2BA, 0x7E5A, 0xC2B7, 0x7E5C, 0xF06D, 0x7E5E, 0xC2B6, + 0x7E5F, 0xF073, 0x7E60, 0xF075, 0x7E61, 0xC2B8, 0x7E62, 0xF072, 0x7E63, 0xF070, 0x7E68, 0xF2B8, 0x7E69, 0xC3B7, 0x7E6A, 0xC3B8, + 0x7E6B, 0xC3B4, 0x7E6D, 0xC3B5, 0x7E6F, 0xF2B4, 0x7E70, 0xF2B2, 0x7E72, 0xF2B6, 0x7E73, 0xC3BA, 0x7E74, 0xF2B7, 0x7E75, 0xF2B0, + 0x7E76, 0xF2AF, 0x7E77, 0xF2B3, 0x7E78, 0xF2B1, 0x7E79, 0xC3B6, 0x7E7A, 0xF2B5, 0x7E7B, 0xF4AC, 0x7E7C, 0xC47E, 0x7E7D, 0xC47D, + 0x7E7E, 0xF4AD, 0x7E80, 0xF4AF, 0x7E81, 0xF4AE, 0x7E82, 0xC4A1, 0x7E86, 0xF5EB, 0x7E87, 0xF5E8, 0x7E88, 0xF5E9, 0x7E8A, 0xF5E7, + 0x7E8B, 0xF5EA, 0x7E8C, 0xC4F2, 0x7E8D, 0xF5EC, 0x7E8F, 0xC4F1, 0x7E91, 0xF742, 0x7E93, 0xC5D5, 0x7E94, 0xC5D7, 0x7E95, 0xF7EE, + 0x7E96, 0xC5D6, 0x7E97, 0xF8B9, 0x7E98, 0xF940, 0x7E99, 0xF942, 0x7E9A, 0xF8FE, 0x7E9B, 0xF941, 0x7E9C, 0xC66C, 0x7F36, 0xA6CE, + 0x7F38, 0xACFB, 0x7F39, 0xD26F, 0x7F3A, 0xAFCA, 0x7F3D, 0xB2DA, 0x7F3E, 0xDAFC, 0x7F3F, 0xDAFD, 0x7F43, 0xEADF, 0x7F44, 0xC16A, + 0x7F45, 0xEDE1, 0x7F48, 0xC2BB, 0x7F4A, 0xF2BA, 0x7F4B, 0xF2B9, 0x7F4C, 0xC4A2, 0x7F4D, 0xF5ED, 0x7F4F, 0xF743, 0x7F50, 0xC5F8, + 0x7F51, 0xCA49, 0x7F54, 0xAAC9, 0x7F55, 0xA875, 0x7F58, 0xD04D, 0x7F5B, 0xD360, 0x7F5C, 0xD35B, 0x7F5D, 0xD35F, 0x7F5E, 0xD35D, + 0x7F5F, 0xAFCB, 0x7F60, 0xD35E, 0x7F61, 0xD35C, 0x7F63, 0xD6F1, 0x7F65, 0xDAFE, 0x7F66, 0xDB40, 0x7F67, 0xDF69, 0x7F68, 0xDF6A, + 0x7F69, 0xB86E, 0x7F6A, 0xB86F, 0x7F6B, 0xDF68, 0x7F6C, 0xDF6B, 0x7F6D, 0xDF67, 0x7F6E, 0xB86D, 0x7F70, 0xBB40, 0x7F72, 0xB870, + 0x7F73, 0xE37A, 0x7F75, 0xBD7C, 0x7F76, 0xE6F1, 0x7F77, 0xBD7D, 0x7F79, 0xBFA9, 0x7F7A, 0xEAE2, 0x7F7B, 0xEAE0, 0x7F7C, 0xEAE1, + 0x7F7D, 0xEDE4, 0x7F7E, 0xEDE3, 0x7F7F, 0xEDE2, 0x7F83, 0xF2BB, 0x7F85, 0xC3B9, 0x7F86, 0xF2BC, 0x7F87, 0xF744, 0x7F88, 0xC5F9, + 0x7F89, 0xF8BA, 0x7F8A, 0xA6CF, 0x7F8B, 0xAACB, 0x7F8C, 0xAACA, 0x7F8D, 0xD04F, 0x7F8E, 0xACFC, 0x7F91, 0xD04E, 0x7F92, 0xD362, + 0x7F94, 0xAFCC, 0x7F95, 0xD6F2, 0x7F96, 0xD361, 0x7F9A, 0xB2DC, 0x7F9B, 0xD6F5, 0x7F9C, 0xD6F3, 0x7F9D, 0xD6F4, 0x7F9E, 0xB2DB, + 0x7FA0, 0xDB42, 0x7FA1, 0xDB43, 0x7FA2, 0xDB41, 0x7FA4, 0xB873, 0x7FA5, 0xDF6D, 0x7FA6, 0xDF6C, 0x7FA7, 0xDF6E, 0x7FA8, 0xB872, + 0x7FA9, 0xB871, 0x7FAC, 0xE6F2, 0x7FAD, 0xE6F4, 0x7FAF, 0xBD7E, 0x7FB0, 0xE6F3, 0x7FB1, 0xEAE3, 0x7FB2, 0xBFAA, 0x7FB3, 0xF079, + 0x7FB5, 0xF078, 0x7FB6, 0xC3BB, 0x7FB7, 0xF2BD, 0x7FB8, 0xC3BD, 0x7FB9, 0xC3BC, 0x7FBA, 0xF4B0, 0x7FBB, 0xF5EE, 0x7FBC, 0xC4F3, + 0x7FBD, 0xA6D0, 0x7FBE, 0xD050, 0x7FBF, 0xACFD, 0x7FC0, 0xD365, 0x7FC1, 0xAFCE, 0x7FC2, 0xD364, 0x7FC3, 0xD363, 0x7FC5, 0xAFCD, + 0x7FC7, 0xD6FB, 0x7FC9, 0xD6FD, 0x7FCA, 0xD6F6, 0x7FCB, 0xD6F7, 0x7FCC, 0xB2DD, 0x7FCD, 0xD6F8, 0x7FCE, 0xB2DE, 0x7FCF, 0xD6FC, + 0x7FD0, 0xD6F9, 0x7FD1, 0xD6FA, 0x7FD2, 0xB2DF, 0x7FD4, 0xB5BE, 0x7FD5, 0xB5BF, 0x7FD7, 0xDB44, 0x7FDB, 0xDF6F, 0x7FDC, 0xDF70, + 0x7FDE, 0xE37E, 0x7FDF, 0xBB43, 0x7FE0, 0xBB41, 0x7FE1, 0xBB42, 0x7FE2, 0xE37B, 0x7FE3, 0xE37C, 0x7FE5, 0xE37D, 0x7FE6, 0xE6F9, + 0x7FE8, 0xE6FA, 0x7FE9, 0xBDA1, 0x7FEA, 0xE6F7, 0x7FEB, 0xE6F6, 0x7FEC, 0xE6F8, 0x7FED, 0xE6F5, 0x7FEE, 0xBFAD, 0x7FEF, 0xEAE4, + 0x7FF0, 0xBFAB, 0x7FF1, 0xBFAC, 0x7FF2, 0xEDE6, 0x7FF3, 0xC16B, 0x7FF4, 0xEDE5, 0x7FF5, 0xEFA8, 0x7FF7, 0xF07A, 0x7FF8, 0xF07B, + 0x7FF9, 0xC2BC, 0x7FFB, 0xC2BD, 0x7FFC, 0xC16C, 0x7FFD, 0xF2BE, 0x7FFE, 0xF2BF, 0x7FFF, 0xF4B1, 0x8000, 0xC4A3, 0x8001, 0xA6D1, + 0x8003, 0xA6D2, 0x8004, 0xACFE, 0x8005, 0xAACC, 0x8006, 0xAFCF, 0x8007, 0xD051, 0x800B, 0xB5C0, 0x800C, 0xA6D3, 0x800D, 0xAD41, + 0x800E, 0xD052, 0x800F, 0xD053, 0x8010, 0xAD40, 0x8011, 0xAD42, 0x8012, 0xA6D4, 0x8014, 0xD054, 0x8015, 0xAFD1, 0x8016, 0xD366, + 0x8017, 0xAFD3, 0x8018, 0xAFD0, 0x8019, 0xAFD2, 0x801B, 0xD741, 0x801C, 0xB2E0, 0x801E, 0xD740, 0x801F, 0xD6FE, 0x8021, 0xDF71, + 0x8024, 0xE3A1, 0x8026, 0xBDA2, 0x8028, 0xBFAE, 0x8029, 0xEAE6, 0x802A, 0xEAE5, 0x802C, 0xEDE7, 0x8030, 0xF5EF, 0x8033, 0xA6D5, + 0x8034, 0xCB73, 0x8035, 0xCDAA, 0x8036, 0xAD43, 0x8037, 0xD055, 0x8039, 0xD368, 0x803D, 0xAFD4, 0x803E, 0xD367, 0x803F, 0xAFD5, + 0x8043, 0xD743, 0x8046, 0xB2E2, 0x8047, 0xD742, 0x8048, 0xD744, 0x804A, 0xB2E1, 0x804F, 0xDB46, 0x8050, 0xDB47, 0x8051, 0xDB45, + 0x8052, 0xB5C1, 0x8056, 0xB874, 0x8058, 0xB875, 0x805A, 0xBB45, 0x805C, 0xE3A3, 0x805D, 0xE3A2, 0x805E, 0xBB44, 0x8064, 0xE6FB, + 0x8067, 0xE6FC, 0x806C, 0xEAE7, 0x806F, 0xC170, 0x8070, 0xC16F, 0x8071, 0xC16D, 0x8072, 0xC16E, 0x8073, 0xC171, 0x8075, 0xF07C, + 0x8076, 0xC2BF, 0x8077, 0xC2BE, 0x8078, 0xF2C0, 0x8079, 0xF4B2, 0x807D, 0xC5A5, 0x807E, 0xC5A4, 0x807F, 0xA6D6, 0x8082, 0xD1FB, + 0x8084, 0xB877, 0x8085, 0xB5C2, 0x8086, 0xB876, 0x8087, 0xBB46, 0x8089, 0xA6D7, 0x808A, 0xC9A9, 0x808B, 0xA6D8, 0x808C, 0xA6D9, + 0x808F, 0xCDAB, 0x8090, 0xCB76, 0x8092, 0xCB77, 0x8093, 0xA877, 0x8095, 0xCB74, 0x8096, 0xA876, 0x8098, 0xA879, 0x8099, 0xCB75, + 0x809A, 0xA87B, 0x809B, 0xA87A, 0x809C, 0xCB78, 0x809D, 0xA878, 0x80A1, 0xAAD1, 0x80A2, 0xAACF, 0x80A3, 0xCDAD, 0x80A5, 0xAACE, + 0x80A9, 0xAAD3, 0x80AA, 0xAAD5, 0x80AB, 0xAAD2, 0x80AD, 0xCDB0, 0x80AE, 0xCDAC, 0x80AF, 0xAAD6, 0x80B1, 0xAAD0, 0x80B2, 0xA87C, + 0x80B4, 0xAAD4, 0x80B5, 0xCDAF, 0x80B8, 0xCDAE, 0x80BA, 0xAACD, 0x80C2, 0xD05B, 0x80C3, 0xAD47, 0x80C4, 0xAD48, 0x80C5, 0xD05D, + 0x80C7, 0xD057, 0x80C8, 0xD05A, 0x80C9, 0xD063, 0x80CA, 0xD061, 0x80CC, 0xAD49, 0x80CD, 0xD067, 0x80CE, 0xAD4C, 0x80CF, 0xD064, + 0x80D0, 0xD05C, 0x80D1, 0xD059, 0x80D4, 0xDB49, 0x80D5, 0xD062, 0x80D6, 0xAD44, 0x80D7, 0xD065, 0x80D8, 0xD056, 0x80D9, 0xD05F, + 0x80DA, 0xAD46, 0x80DB, 0xAD4B, 0x80DC, 0xD060, 0x80DD, 0xAD4F, 0x80DE, 0xAD4D, 0x80E0, 0xD058, 0x80E1, 0xAD4A, 0x80E3, 0xD05E, + 0x80E4, 0xAD4E, 0x80E5, 0xAD45, 0x80E6, 0xD066, 0x80ED, 0xAFDA, 0x80EF, 0xAFE3, 0x80F0, 0xAFD8, 0x80F1, 0xAFD6, 0x80F2, 0xD36A, + 0x80F3, 0xAFDE, 0x80F4, 0xAFDB, 0x80F5, 0xD36C, 0x80F8, 0xAFDD, 0x80F9, 0xD36B, 0x80FA, 0xD369, 0x80FB, 0xD36E, 0x80FC, 0xAFE2, + 0x80FD, 0xAFE0, 0x80FE, 0xDB48, 0x8100, 0xD36F, 0x8101, 0xD36D, 0x8102, 0xAFD7, 0x8105, 0xAFD9, 0x8106, 0xAFDC, 0x8108, 0xAFDF, + 0x810A, 0xAFE1, 0x8115, 0xD74E, 0x8116, 0xB2E4, 0x8118, 0xD745, 0x8119, 0xD747, 0x811B, 0xD748, 0x811D, 0xD750, 0x811E, 0xD74C, + 0x811F, 0xD74A, 0x8121, 0xD74D, 0x8122, 0xD751, 0x8123, 0xB2E5, 0x8124, 0xB2E9, 0x8125, 0xD746, 0x8127, 0xD74F, 0x8129, 0xB2E7, + 0x812B, 0xB2E6, 0x812C, 0xD74B, 0x812D, 0xD749, 0x812F, 0xB2E3, 0x8130, 0xB2E8, 0x8139, 0xB5C8, 0x813A, 0xDB51, 0x813D, 0xDB4F, + 0x813E, 0xB5CA, 0x8143, 0xDB4A, 0x8144, 0xDFA1, 0x8146, 0xB5C9, 0x8147, 0xDB4E, 0x814A, 0xDB4B, 0x814B, 0xB5C5, 0x814C, 0xB5CB, + 0x814D, 0xDB50, 0x814E, 0xB5C7, 0x814F, 0xDB4D, 0x8150, 0xBB47, 0x8151, 0xB5C6, 0x8152, 0xDB4C, 0x8153, 0xB5CC, 0x8154, 0xB5C4, + 0x8155, 0xB5C3, 0x815B, 0xDF77, 0x815C, 0xDF75, 0x815E, 0xDF7B, 0x8160, 0xDF73, 0x8161, 0xDFA2, 0x8162, 0xDF78, 0x8164, 0xDF72, + 0x8165, 0xB87B, 0x8166, 0xB8A3, 0x8167, 0xDF7D, 0x8169, 0xDF76, 0x816B, 0xB87E, 0x816E, 0xB87C, 0x816F, 0xDF7E, 0x8170, 0xB879, + 0x8171, 0xB878, 0x8172, 0xDF79, 0x8173, 0xB87D, 0x8174, 0xB5CD, 0x8176, 0xDF7C, 0x8177, 0xDF74, 0x8178, 0xB87A, 0x8179, 0xB8A1, + 0x817A, 0xB8A2, 0x817F, 0xBB4C, 0x8180, 0xBB48, 0x8182, 0xBB4D, 0x8183, 0xE3A6, 0x8186, 0xE3A5, 0x8187, 0xE3A7, 0x8188, 0xBB4A, + 0x8189, 0xE3A4, 0x818A, 0xBB4B, 0x818B, 0xE3AA, 0x818C, 0xE3A9, 0x818D, 0xE3A8, 0x818F, 0xBB49, 0x8195, 0xE741, 0x8197, 0xE744, + 0x8198, 0xBDA8, 0x8199, 0xE743, 0x819A, 0xBDA7, 0x819B, 0xBDA3, 0x819C, 0xBDA4, 0x819D, 0xBDA5, 0x819E, 0xE740, 0x819F, 0xE6FE, + 0x81A0, 0xBDA6, 0x81A2, 0xE742, 0x81A3, 0xE6FD, 0x81A6, 0xEAE9, 0x81A7, 0xEAF3, 0x81A8, 0xBFB1, 0x81A9, 0xBFB0, 0x81AB, 0xEAED, + 0x81AC, 0xEAEF, 0x81AE, 0xEAEA, 0x81B0, 0xEAEE, 0x81B1, 0xEAE8, 0x81B2, 0xEAF1, 0x81B3, 0xBFAF, 0x81B4, 0xEAF0, 0x81B5, 0xEAEC, + 0x81B7, 0xEAF2, 0x81B9, 0xEAEB, 0x81BA, 0xC174, 0x81BB, 0xEDE8, 0x81BC, 0xEDEE, 0x81BD, 0xC178, 0x81BE, 0xC17A, 0x81BF, 0xC177, + 0x81C0, 0xC176, 0x81C2, 0xC175, 0x81C3, 0xC173, 0x81C4, 0xEDE9, 0x81C5, 0xEDEC, 0x81C6, 0xC172, 0x81C7, 0xEDED, 0x81C9, 0xC179, + 0x81CA, 0xEDEB, 0x81CC, 0xEDEA, 0x81CD, 0xC2C0, 0x81CF, 0xC2C1, 0x81D0, 0xF0A1, 0x81D1, 0xF07D, 0x81D2, 0xF07E, 0x81D5, 0xF2C2, + 0x81D7, 0xF2C1, 0x81D8, 0xC3BE, 0x81D9, 0xF4B4, 0x81DA, 0xC4A4, 0x81DB, 0xF4B3, 0x81DD, 0xF5F0, 0x81DE, 0xF745, 0x81DF, 0xC5A6, + 0x81E0, 0xF943, 0x81E1, 0xF944, 0x81E2, 0xC5D8, 0x81E3, 0xA6DA, 0x81E5, 0xAAD7, 0x81E6, 0xDB52, 0x81E7, 0xBB4E, 0x81E8, 0xC17B, + 0x81E9, 0xEDEF, 0x81EA, 0xA6DB, 0x81EC, 0xAFE5, 0x81ED, 0xAFE4, 0x81EE, 0xDB53, 0x81F2, 0xEAF4, 0x81F3, 0xA6DC, 0x81F4, 0xAD50, + 0x81F7, 0xDB54, 0x81F8, 0xDB55, 0x81F9, 0xDB56, 0x81FA, 0xBB4F, 0x81FB, 0xBFB2, 0x81FC, 0xA6DD, 0x81FE, 0xAAD8, 0x81FF, 0xD068, + 0x8200, 0xAFE6, 0x8201, 0xD370, 0x8202, 0xB2EA, 0x8204, 0xDB57, 0x8205, 0xB8A4, 0x8207, 0xBB50, 0x8208, 0xBFB3, 0x8209, 0xC17C, + 0x820A, 0xC2C2, 0x820B, 0xF4B5, 0x820C, 0xA6DE, 0x820D, 0xAAD9, 0x8210, 0xAFE7, 0x8211, 0xD752, 0x8212, 0xB5CE, 0x8214, 0xBB51, + 0x8215, 0xE3AB, 0x8216, 0xE745, 0x821B, 0xA6DF, 0x821C, 0xB5CF, 0x821D, 0xDFA3, 0x821E, 0xBB52, 0x821F, 0xA6E0, 0x8220, 0xCDB1, + 0x8221, 0xD069, 0x8222, 0xAD51, 0x8225, 0xD372, 0x8228, 0xAFEA, 0x822A, 0xAFE8, 0x822B, 0xAFE9, 0x822C, 0xAFEB, 0x822F, 0xD371, + 0x8232, 0xD757, 0x8233, 0xD754, 0x8234, 0xD756, 0x8235, 0xB2EB, 0x8236, 0xB2ED, 0x8237, 0xB2EC, 0x8238, 0xD753, 0x8239, 0xB2EE, + 0x823A, 0xD755, 0x823C, 0xDB58, 0x823D, 0xDB59, 0x823F, 0xDB5A, 0x8240, 0xDFA6, 0x8242, 0xDFA7, 0x8244, 0xDFA5, 0x8245, 0xDFA8, + 0x8247, 0xB8A5, 0x8249, 0xDFA4, 0x824B, 0xBB53, 0x824E, 0xE74A, 0x824F, 0xE746, 0x8250, 0xE749, 0x8251, 0xE74B, 0x8252, 0xE748, + 0x8253, 0xE747, 0x8255, 0xEAF5, 0x8256, 0xEAF6, 0x8257, 0xEAF7, 0x8258, 0xBFB4, 0x8259, 0xBFB5, 0x825A, 0xEDF1, 0x825B, 0xEDF0, + 0x825C, 0xEDF2, 0x825E, 0xF0A3, 0x825F, 0xF0A2, 0x8261, 0xF2C4, 0x8263, 0xF2C5, 0x8264, 0xF2C3, 0x8266, 0xC4A5, 0x8268, 0xF4B6, + 0x8269, 0xF4B7, 0x826B, 0xF746, 0x826C, 0xF7EF, 0x826D, 0xF8BB, 0x826E, 0xA6E1, 0x826F, 0xA87D, 0x8271, 0xC17D, 0x8272, 0xA6E2, + 0x8274, 0xD758, 0x8275, 0xDB5B, 0x8277, 0xC641, 0x8278, 0xCA4A, 0x827C, 0xCA4B, 0x827D, 0xCA4D, 0x827E, 0xA6E3, 0x827F, 0xCA4E, + 0x8280, 0xCA4C, 0x8283, 0xCBA2, 0x8284, 0xCBA3, 0x8285, 0xCB7B, 0x828A, 0xCBA1, 0x828B, 0xA8A1, 0x828D, 0xA8A2, 0x828E, 0xCB7C, + 0x828F, 0xCB7A, 0x8290, 0xCB79, 0x8291, 0xCB7D, 0x8292, 0xA87E, 0x8293, 0xCB7E, 0x8294, 0xD06A, 0x8298, 0xCDB6, 0x8299, 0xAADC, + 0x829A, 0xCDB5, 0x829B, 0xCDB7, 0x829D, 0xAADB, 0x829E, 0xCDBC, 0x829F, 0xAADF, 0x82A0, 0xCDB2, 0x82A1, 0xCDC0, 0x82A2, 0xCDC6, + 0x82A3, 0xAAE6, 0x82A4, 0xCDC3, 0x82A5, 0xAAE3, 0x82A7, 0xCDB9, 0x82A8, 0xCDBF, 0x82A9, 0xCDC1, 0x82AB, 0xCDB4, 0x82AC, 0xAAE2, + 0x82AD, 0xAADD, 0x82AE, 0xCDBA, 0x82AF, 0xAAE4, 0x82B0, 0xAAE7, 0x82B1, 0xAAE1, 0x82B3, 0xAADA, 0x82B4, 0xCDBE, 0x82B5, 0xCDB8, + 0x82B6, 0xCDC5, 0x82B7, 0xAAE9, 0x82B8, 0xAAE5, 0x82B9, 0xAAE0, 0x82BA, 0xCDBD, 0x82BB, 0xAFEC, 0x82BC, 0xCDBB, 0x82BD, 0xAADE, + 0x82BE, 0xAAE8, 0x82C0, 0xCDB3, 0x82C2, 0xCDC2, 0x82C3, 0xCDC4, 0x82D1, 0xAD62, 0x82D2, 0xAD5C, 0x82D3, 0xAD64, 0x82D4, 0xAD61, + 0x82D5, 0xD071, 0x82D6, 0xD074, 0x82D7, 0xAD5D, 0x82D9, 0xD06B, 0x82DB, 0xAD56, 0x82DC, 0xAD60, 0x82DE, 0xAD63, 0x82DF, 0xAD65, + 0x82E0, 0xD0A2, 0x82E1, 0xD077, 0x82E3, 0xAD55, 0x82E4, 0xD0A1, 0x82E5, 0xAD59, 0x82E6, 0xAD57, 0x82E7, 0xAD52, 0x82E8, 0xD06F, + 0x82EA, 0xD07E, 0x82EB, 0xD073, 0x82EC, 0xD076, 0x82ED, 0xD0A5, 0x82EF, 0xAD66, 0x82F0, 0xD07D, 0x82F1, 0xAD5E, 0x82F2, 0xD078, + 0x82F3, 0xD0A4, 0x82F4, 0xD075, 0x82F5, 0xD079, 0x82F6, 0xD07C, 0x82F9, 0xD06D, 0x82FA, 0xD0A3, 0x82FB, 0xD07B, 0x82FE, 0xD06C, + 0x8300, 0xD070, 0x8301, 0xAD5F, 0x8302, 0xAD5A, 0x8303, 0xAD53, 0x8304, 0xAD58, 0x8305, 0xAD54, 0x8306, 0xAD67, 0x8307, 0xD06E, + 0x8308, 0xD3A5, 0x8309, 0xAD5B, 0x830C, 0xD07A, 0x830D, 0xCE41, 0x8316, 0xD3A8, 0x8317, 0xAFFA, 0x8319, 0xD376, 0x831B, 0xD3A3, + 0x831C, 0xD37D, 0x831E, 0xD3B2, 0x8320, 0xD3AA, 0x8322, 0xD37E, 0x8324, 0xD3A9, 0x8325, 0xD378, 0x8326, 0xD37C, 0x8327, 0xD3B5, + 0x8328, 0xAFFD, 0x8329, 0xD3AD, 0x832A, 0xD3A4, 0x832B, 0xAFED, 0x832C, 0xD3B3, 0x832D, 0xD374, 0x832F, 0xD3AC, 0x8331, 0xAFFC, + 0x8332, 0xAFF7, 0x8333, 0xD373, 0x8334, 0xAFF5, 0x8335, 0xAFF4, 0x8336, 0xAFF9, 0x8337, 0xD3AB, 0x8338, 0xAFF1, 0x8339, 0xAFF8, + 0x833A, 0xD072, 0x833B, 0xDB5C, 0x833C, 0xD3A6, 0x833F, 0xD37A, 0x8340, 0xAFFB, 0x8341, 0xD37B, 0x8342, 0xD3A1, 0x8343, 0xAFFE, + 0x8344, 0xD375, 0x8345, 0xD3AF, 0x8347, 0xD3AE, 0x8348, 0xD3B6, 0x8349, 0xAFF3, 0x834A, 0xAFF0, 0x834B, 0xD3B4, 0x834C, 0xD3B0, + 0x834D, 0xD3A7, 0x834E, 0xD3A2, 0x834F, 0xAFF6, 0x8350, 0xAFF2, 0x8351, 0xD377, 0x8352, 0xAFEE, 0x8353, 0xD3B1, 0x8354, 0xAFEF, + 0x8356, 0xD379, 0x8373, 0xD75E, 0x8374, 0xD760, 0x8375, 0xD765, 0x8376, 0xD779, 0x8377, 0xB2FC, 0x8378, 0xB2F2, 0x837A, 0xD75D, + 0x837B, 0xB2FD, 0x837C, 0xB2FE, 0x837D, 0xD768, 0x837E, 0xD76F, 0x837F, 0xD775, 0x8381, 0xD762, 0x8383, 0xD769, 0x8386, 0xB340, + 0x8387, 0xD777, 0x8388, 0xD772, 0x8389, 0xB2FA, 0x838A, 0xB2F8, 0x838B, 0xD76E, 0x838C, 0xD76A, 0x838D, 0xD75C, 0x838E, 0xB2EF, + 0x838F, 0xD761, 0x8390, 0xD759, 0x8392, 0xB2F7, 0x8393, 0xB2F9, 0x8394, 0xD766, 0x8395, 0xD763, 0x8396, 0xB2F4, 0x8397, 0xD773, + 0x8398, 0xB2F1, 0x8399, 0xD764, 0x839A, 0xD77A, 0x839B, 0xD76C, 0x839D, 0xD76B, 0x839E, 0xB2F0, 0x83A0, 0xB2FB, 0x83A2, 0xB2F3, + 0x83A3, 0xD75A, 0x83A4, 0xD75F, 0x83A5, 0xD770, 0x83A6, 0xD776, 0x83A7, 0xB341, 0x83A8, 0xD75B, 0x83A9, 0xD767, 0x83AA, 0xD76D, + 0x83AB, 0xB2F6, 0x83AE, 0xD778, 0x83AF, 0xD771, 0x83B0, 0xD774, 0x83BD, 0xB2F5, 0x83BF, 0xDB6C, 0x83C0, 0xDB60, 0x83C1, 0xB5D7, + 0x83C2, 0xDB7D, 0x83C3, 0xDBA7, 0x83C4, 0xDBAA, 0x83C5, 0xB5D5, 0x83C6, 0xDB68, 0x83C7, 0xDBA3, 0x83C8, 0xDB69, 0x83C9, 0xDB77, + 0x83CA, 0xB5E2, 0x83CB, 0xDB73, 0x83CC, 0xB5DF, 0x83CE, 0xDB74, 0x83CF, 0xDB5D, 0x83D1, 0xDBA4, 0x83D4, 0xB5E8, 0x83D5, 0xDBA1, + 0x83D6, 0xDB75, 0x83D7, 0xDBAC, 0x83D8, 0xDB70, 0x83D9, 0xDFC8, 0x83DB, 0xDBAF, 0x83DC, 0xB5E6, 0x83DD, 0xDB6E, 0x83DE, 0xDB7A, + 0x83DF, 0xB5E9, 0x83E0, 0xB5D4, 0x83E1, 0xDB72, 0x83E2, 0xDBAD, 0x83E3, 0xDB6B, 0x83E4, 0xDB64, 0x83E5, 0xDB6F, 0x83E7, 0xDB63, + 0x83E8, 0xDB61, 0x83E9, 0xB5D0, 0x83EA, 0xDBA5, 0x83EB, 0xDB6A, 0x83EC, 0xDBA8, 0x83EE, 0xDBA9, 0x83EF, 0xB5D8, 0x83F0, 0xB5DD, + 0x83F1, 0xB5D9, 0x83F2, 0xB5E1, 0x83F3, 0xDB7E, 0x83F4, 0xB5DA, 0x83F5, 0xDB76, 0x83F6, 0xDB66, 0x83F8, 0xB5D2, 0x83F9, 0xDB5E, + 0x83FA, 0xDBA2, 0x83FB, 0xDBAB, 0x83FC, 0xDB65, 0x83FD, 0xB5E0, 0x83FE, 0xDBB0, 0x83FF, 0xDB71, 0x8401, 0xDB6D, 0x8403, 0xB5D1, + 0x8404, 0xB5E5, 0x8406, 0xDB7C, 0x8407, 0xB5E7, 0x8409, 0xDB78, 0x840A, 0xB5DC, 0x840B, 0xB5D6, 0x840C, 0xB5DE, 0x840D, 0xB5D3, + 0x840E, 0xB5E4, 0x840F, 0xDB79, 0x8410, 0xDB67, 0x8411, 0xDB7B, 0x8412, 0xDB62, 0x8413, 0xDBA6, 0x841B, 0xDBAE, 0x8423, 0xDB5F, + 0x8429, 0xDFC7, 0x842B, 0xDFDD, 0x842C, 0xB855, 0x842D, 0xDFCC, 0x842F, 0xDFCA, 0x8430, 0xDFB5, 0x8431, 0xB8A9, 0x8432, 0xDFC5, + 0x8433, 0xDFD9, 0x8434, 0xDFC1, 0x8435, 0xB8B1, 0x8436, 0xDFD8, 0x8437, 0xDFBF, 0x8438, 0xB5E3, 0x8439, 0xDFCF, 0x843A, 0xDFC0, + 0x843B, 0xDFD6, 0x843C, 0xB8B0, 0x843D, 0xB8A8, 0x843F, 0xDFAA, 0x8440, 0xDFB2, 0x8442, 0xDFCB, 0x8443, 0xDFC3, 0x8444, 0xDFDC, + 0x8445, 0xDFC6, 0x8446, 0xB8B6, 0x8447, 0xDFD7, 0x8449, 0xB8AD, 0x844B, 0xDFC9, 0x844C, 0xDFD1, 0x844D, 0xDFB6, 0x844E, 0xDFD0, + 0x8450, 0xDFE1, 0x8451, 0xDFB1, 0x8452, 0xDFD2, 0x8454, 0xDFDF, 0x8456, 0xDFAB, 0x8457, 0xB5DB, 0x8459, 0xDFB9, 0x845A, 0xDFB8, + 0x845B, 0xB8AF, 0x845D, 0xDFBC, 0x845E, 0xDFBE, 0x845F, 0xDFCD, 0x8460, 0xDFDE, 0x8461, 0xB8B2, 0x8463, 0xB8B3, 0x8465, 0xDFB0, + 0x8466, 0xB8AB, 0x8467, 0xDFB4, 0x8468, 0xDFDA, 0x8469, 0xB8B4, 0x846B, 0xB8AC, 0x846C, 0xB8AE, 0x846D, 0xB8B5, 0x846E, 0xDFE0, + 0x846F, 0xDFD3, 0x8470, 0xDFCE, 0x8473, 0xDFBB, 0x8474, 0xDFBA, 0x8475, 0xB8AA, 0x8476, 0xDFAC, 0x8477, 0xB8A7, 0x8478, 0xDFC4, + 0x8479, 0xDFAD, 0x847A, 0xDFC2, 0x847D, 0xDFB7, 0x847E, 0xDFDB, 0x8482, 0xB8A6, 0x8486, 0xDFB3, 0x848D, 0xDFAF, 0x848E, 0xDFD5, + 0x848F, 0xDFAE, 0x8490, 0xBB60, 0x8491, 0xE3D3, 0x8494, 0xE3C2, 0x8497, 0xE3AC, 0x8498, 0xE3CA, 0x8499, 0xBB58, 0x849A, 0xE3BB, + 0x849B, 0xE3C5, 0x849C, 0xBB5B, 0x849D, 0xE3BE, 0x849E, 0xBB59, 0x849F, 0xE3AF, 0x84A0, 0xE3CD, 0x84A1, 0xE3AE, 0x84A2, 0xE3C1, + 0x84A4, 0xE3AD, 0x84A7, 0xE3BF, 0x84A8, 0xE3C8, 0x84A9, 0xE3C6, 0x84AA, 0xE3BA, 0x84AB, 0xE3B5, 0x84AC, 0xE3B3, 0x84AE, 0xE3B4, + 0x84AF, 0xE3C7, 0x84B0, 0xE3D2, 0x84B1, 0xE3BC, 0x84B2, 0xBB5A, 0x84B4, 0xE3B7, 0x84B6, 0xE3CB, 0x84B8, 0xBB5D, 0x84B9, 0xE3B6, + 0x84BA, 0xE3B0, 0x84BB, 0xE3C0, 0x84BC, 0xBB61, 0x84BF, 0xBB55, 0x84C0, 0xBB5E, 0x84C1, 0xE3B8, 0x84C2, 0xE3B2, 0x84C4, 0xBB57, + 0x84C5, 0xDFD4, 0x84C6, 0xBB56, 0x84C7, 0xE3C3, 0x84C9, 0xBB54, 0x84CA, 0xBB63, 0x84CB, 0xBB5C, 0x84CC, 0xE3C4, 0x84CD, 0xE3B9, + 0x84CE, 0xE3B1, 0x84CF, 0xE3CC, 0x84D0, 0xE3BD, 0x84D1, 0xBB62, 0x84D2, 0xE3D0, 0x84D3, 0xBB5F, 0x84D4, 0xE3CF, 0x84D6, 0xE3C9, + 0x84D7, 0xE3CE, 0x84DB, 0xE3D1, 0x84E7, 0xE773, 0x84E8, 0xE774, 0x84E9, 0xE767, 0x84EA, 0xE766, 0x84EB, 0xE762, 0x84EC, 0xBDB4, + 0x84EE, 0xBDAC, 0x84EF, 0xE776, 0x84F0, 0xE775, 0x84F1, 0xDFA9, 0x84F2, 0xE75F, 0x84F3, 0xE763, 0x84F4, 0xE75D, 0x84F6, 0xE770, + 0x84F7, 0xE761, 0x84F9, 0xE777, 0x84FA, 0xE75A, 0x84FB, 0xE758, 0x84FC, 0xE764, 0x84FD, 0xE76E, 0x84FE, 0xE769, 0x84FF, 0xBDB6, + 0x8500, 0xE74F, 0x8502, 0xE76D, 0x8506, 0xBDB7, 0x8507, 0xDFBD, 0x8508, 0xE75B, 0x8509, 0xE752, 0x850A, 0xE755, 0x850B, 0xE77B, + 0x850C, 0xE75C, 0x850D, 0xE753, 0x850E, 0xE751, 0x850F, 0xE74E, 0x8511, 0xBDB0, 0x8512, 0xE765, 0x8513, 0xBDAF, 0x8514, 0xBDB3, + 0x8515, 0xE760, 0x8516, 0xE768, 0x8517, 0xBDA9, 0x8518, 0xE778, 0x8519, 0xE77C, 0x851A, 0xBDAB, 0x851C, 0xE757, 0x851D, 0xE76B, + 0x851E, 0xE76F, 0x851F, 0xE754, 0x8520, 0xE779, 0x8521, 0xBDB2, 0x8523, 0xBDB1, 0x8524, 0xE74C, 0x8525, 0xBDB5, 0x8526, 0xE772, + 0x8527, 0xE756, 0x8528, 0xE76A, 0x8529, 0xE750, 0x852A, 0xE75E, 0x852B, 0xE759, 0x852C, 0xBDAD, 0x852D, 0xBDAE, 0x852E, 0xE76C, + 0x852F, 0xE77D, 0x8530, 0xE77A, 0x8531, 0xE771, 0x853B, 0xE74D, 0x853D, 0xBDAA, 0x853E, 0xEB49, 0x8540, 0xEB40, 0x8541, 0xEB43, + 0x8543, 0xBFBB, 0x8544, 0xEB45, 0x8545, 0xEAF9, 0x8546, 0xEB41, 0x8547, 0xEB47, 0x8548, 0xBFB8, 0x8549, 0xBFBC, 0x854A, 0xBFB6, + 0x854D, 0xEAFB, 0x854E, 0xEB4C, 0x8551, 0xEB46, 0x8553, 0xEAFC, 0x8554, 0xEB55, 0x8555, 0xEB4F, 0x8556, 0xEAF8, 0x8557, 0xEE46, + 0x8558, 0xEAFE, 0x8559, 0xBFB7, 0x855B, 0xEB4A, 0x855D, 0xEB54, 0x855E, 0xBFBF, 0x8560, 0xEB51, 0x8561, 0xEAFD, 0x8562, 0xEB44, + 0x8563, 0xEB48, 0x8564, 0xEB42, 0x8565, 0xEB56, 0x8566, 0xEB53, 0x8567, 0xEB50, 0x8568, 0xBFB9, 0x8569, 0xBFBA, 0x856A, 0xBFBE, + 0x856B, 0xEAFA, 0x856C, 0xEB57, 0x856D, 0xBFBD, 0x856E, 0xEB4D, 0x8571, 0xEB4B, 0x8575, 0xEB4E, 0x8576, 0xEE53, 0x8577, 0xEE40, + 0x8578, 0xEE45, 0x8579, 0xEE52, 0x857A, 0xEE44, 0x857B, 0xEDFB, 0x857C, 0xEE41, 0x857E, 0xC1A2, 0x8580, 0xEDF4, 0x8581, 0xEE4D, + 0x8582, 0xEE4F, 0x8583, 0xEDF3, 0x8584, 0xC1A1, 0x8585, 0xEE51, 0x8586, 0xEE49, 0x8587, 0xC1A8, 0x8588, 0xEE50, 0x8589, 0xEE42, + 0x858A, 0xC1AA, 0x858B, 0xEDF9, 0x858C, 0xEB52, 0x858D, 0xEE4A, 0x858E, 0xEE47, 0x858F, 0xEDF5, 0x8590, 0xEE55, 0x8591, 0xC1A4, + 0x8594, 0xC1A5, 0x8595, 0xEDF7, 0x8596, 0xEE48, 0x8598, 0xEE54, 0x8599, 0xEE4B, 0x859A, 0xEDFD, 0x859B, 0xC1A7, 0x859C, 0xC1A3, + 0x859D, 0xEE4C, 0x859E, 0xEDFE, 0x859F, 0xEE56, 0x85A0, 0xEDF8, 0x85A1, 0xEE43, 0x85A2, 0xEE4E, 0x85A3, 0xEDFA, 0x85A4, 0xEDFC, + 0x85A6, 0xC2CB, 0x85A7, 0xEDF6, 0x85A8, 0xC1A9, 0x85A9, 0xC2C4, 0x85AA, 0xC17E, 0x85AF, 0xC1A6, 0x85B0, 0xC2C8, 0x85B1, 0xF0B3, + 0x85B3, 0xF0A9, 0x85B4, 0xF0A4, 0x85B5, 0xF0AA, 0x85B6, 0xF0B4, 0x85B7, 0xF0B8, 0x85B8, 0xF0B7, 0x85B9, 0xC2CA, 0x85BA, 0xC2C9, + 0x85BD, 0xF0AB, 0x85BE, 0xF0B9, 0x85BF, 0xF0AE, 0x85C0, 0xF0A6, 0x85C2, 0xF0A8, 0x85C3, 0xF0A7, 0x85C4, 0xF0AD, 0x85C5, 0xF0B2, + 0x85C6, 0xF0A5, 0x85C7, 0xF0AC, 0x85C8, 0xF0B1, 0x85C9, 0xC2C7, 0x85CB, 0xF0AF, 0x85CD, 0xC2C5, 0x85CE, 0xF0B0, 0x85CF, 0xC2C3, + 0x85D0, 0xC2C6, 0x85D1, 0xF2D5, 0x85D2, 0xF0B5, 0x85D5, 0xC3C2, 0x85D7, 0xF2CD, 0x85D8, 0xF2D1, 0x85D9, 0xF2C9, 0x85DA, 0xF2CC, + 0x85DC, 0xF2D4, 0x85DD, 0xC3C0, 0x85DE, 0xF2D9, 0x85DF, 0xF2D2, 0x85E1, 0xF2CA, 0x85E2, 0xF2DA, 0x85E3, 0xF2D3, 0x85E4, 0xC3C3, + 0x85E5, 0xC3C4, 0x85E6, 0xF2D7, 0x85E8, 0xF2CB, 0x85E9, 0xC3BF, 0x85EA, 0xC3C1, 0x85EB, 0xF2C6, 0x85EC, 0xF2CE, 0x85ED, 0xF2C8, + 0x85EF, 0xF2D8, 0x85F0, 0xF2D6, 0x85F1, 0xF2C7, 0x85F2, 0xF2CF, 0x85F6, 0xF4BE, 0x85F7, 0xC3C5, 0x85F8, 0xF2D0, 0x85F9, 0xC4A7, + 0x85FA, 0xC4A9, 0x85FB, 0xC4A6, 0x85FD, 0xF4C3, 0x85FE, 0xF4BB, 0x85FF, 0xF4B9, 0x8600, 0xF4BD, 0x8601, 0xF4BA, 0x8604, 0xF4BF, + 0x8605, 0xF4C1, 0x8606, 0xC4AA, 0x8607, 0xC4AC, 0x8609, 0xF4C0, 0x860A, 0xC4AD, 0x860B, 0xC4AB, 0x860C, 0xF4C2, 0x8611, 0xC4A8, + 0x8617, 0xC4F4, 0x8618, 0xF5F1, 0x8619, 0xF5F7, 0x861A, 0xC4F6, 0x861B, 0xF4BC, 0x861C, 0xF5F6, 0x861E, 0xF5FD, 0x861F, 0xF5F4, + 0x8620, 0xF5FB, 0x8621, 0xF5FA, 0x8622, 0xF4B8, 0x8623, 0xF5F5, 0x8624, 0xF0B6, 0x8625, 0xF5FE, 0x8626, 0xF5F3, 0x8627, 0xF5F8, + 0x8629, 0xF5FC, 0x862A, 0xF5F2, 0x862C, 0xF74A, 0x862D, 0xC4F5, 0x862E, 0xF5F9, 0x8631, 0xF7F4, 0x8632, 0xF74B, 0x8633, 0xF749, + 0x8634, 0xF747, 0x8635, 0xF748, 0x8636, 0xF74C, 0x8638, 0xC5D9, 0x8639, 0xF7F2, 0x863A, 0xF7F0, 0x863B, 0xF7F5, 0x863C, 0xF7F3, + 0x863E, 0xF7F6, 0x863F, 0xC5DA, 0x8640, 0xF7F1, 0x8643, 0xF8BC, 0x8646, 0xF945, 0x8647, 0xF946, 0x8648, 0xF947, 0x864B, 0xF9C7, + 0x864C, 0xF9BD, 0x864D, 0xCA4F, 0x864E, 0xAAEA, 0x8650, 0xAD68, 0x8652, 0xD3B8, 0x8653, 0xD3B7, 0x8654, 0xB040, 0x8655, 0xB342, + 0x8656, 0xD77C, 0x8659, 0xD77B, 0x865B, 0xB5EA, 0x865C, 0xB8B8, 0x865E, 0xB8B7, 0x865F, 0xB8B9, 0x8661, 0xE3D4, 0x8662, 0xE77E, + 0x8663, 0xEB58, 0x8664, 0xEB5A, 0x8665, 0xEB59, 0x8667, 0xC1AB, 0x8668, 0xEE57, 0x8669, 0xF0BA, 0x866A, 0xF9A5, 0x866B, 0xA6E4, + 0x866D, 0xCDC9, 0x866E, 0xCDCA, 0x866F, 0xCDC8, 0x8670, 0xCDC7, 0x8671, 0xAAEB, 0x8673, 0xD0A9, 0x8674, 0xD0A7, 0x8677, 0xD0A6, + 0x8679, 0xAD69, 0x867A, 0xAD6B, 0x867B, 0xAD6A, 0x867C, 0xD0A8, 0x8685, 0xD3C4, 0x8686, 0xD3C1, 0x8687, 0xD3BF, 0x868A, 0xB041, + 0x868B, 0xD3C2, 0x868C, 0xB046, 0x868D, 0xD3BC, 0x868E, 0xD3CB, 0x8690, 0xD3CD, 0x8691, 0xD3BD, 0x8693, 0xB043, 0x8694, 0xD3CE, + 0x8695, 0xD3C9, 0x8696, 0xD3BB, 0x8697, 0xD3C0, 0x8698, 0xD3CA, 0x8699, 0xD3C6, 0x869A, 0xD3C3, 0x869C, 0xB048, 0x869D, 0xD3CC, + 0x869E, 0xD3BE, 0x86A1, 0xD3C7, 0x86A2, 0xD3B9, 0x86A3, 0xB047, 0x86A4, 0xB044, 0x86A5, 0xD3C5, 0x86A7, 0xD3C8, 0x86A8, 0xD3BA, + 0x86A9, 0xB045, 0x86AA, 0xB042, 0x86AF, 0xB34C, 0x86B0, 0xD7A5, 0x86B1, 0xB34B, 0x86B3, 0xD7A8, 0x86B4, 0xD7AB, 0x86B5, 0xB348, + 0x86B6, 0xB346, 0x86B7, 0xD77E, 0x86B8, 0xD7A9, 0x86B9, 0xD7A7, 0x86BA, 0xD7A4, 0x86BB, 0xD7AC, 0x86BC, 0xD7AD, 0x86BD, 0xD7AF, + 0x86BE, 0xD7B0, 0x86BF, 0xD77D, 0x86C0, 0xB345, 0x86C1, 0xD7A2, 0x86C2, 0xD7A1, 0x86C3, 0xD7AE, 0x86C4, 0xB347, 0x86C5, 0xD7A3, + 0x86C6, 0xB349, 0x86C7, 0xB344, 0x86C8, 0xD7A6, 0x86C9, 0xB34D, 0x86CB, 0xB34A, 0x86CC, 0xD7AA, 0x86D0, 0xB5F1, 0x86D1, 0xDBBF, + 0x86D3, 0xDBB4, 0x86D4, 0xB5EE, 0x86D6, 0xDFE7, 0x86D7, 0xDBBD, 0x86D8, 0xDBB1, 0x86D9, 0xB5EC, 0x86DA, 0xDBB6, 0x86DB, 0xB5EF, + 0x86DC, 0xDBBA, 0x86DD, 0xDBB8, 0x86DE, 0xB5F2, 0x86DF, 0xB5EB, 0x86E2, 0xDBB2, 0x86E3, 0xDBB5, 0x86E4, 0xB5F0, 0x86E6, 0xDBB3, + 0x86E8, 0xDBBE, 0x86E9, 0xDBBC, 0x86EA, 0xDBB7, 0x86EB, 0xDBB9, 0x86EC, 0xDBBB, 0x86ED, 0xB5ED, 0x86F5, 0xDFE8, 0x86F6, 0xDFEE, + 0x86F7, 0xDFE4, 0x86F8, 0xDFEA, 0x86F9, 0xB8BA, 0x86FA, 0xDFE6, 0x86FB, 0xB8C0, 0x86FE, 0xB8BF, 0x8700, 0xB8BE, 0x8701, 0xDFED, + 0x8702, 0xB8C1, 0x8703, 0xB8C2, 0x8704, 0xDFE3, 0x8705, 0xDFF0, 0x8706, 0xB8C3, 0x8707, 0xB8BD, 0x8708, 0xB8BC, 0x8709, 0xDFEC, + 0x870A, 0xB8C4, 0x870B, 0xDFE2, 0x870C, 0xDFE5, 0x870D, 0xDFEF, 0x870E, 0xDFEB, 0x8711, 0xE3F4, 0x8712, 0xE3E9, 0x8713, 0xB8BB, + 0x8718, 0xBB6A, 0x8719, 0xE3DD, 0x871A, 0xE3F2, 0x871B, 0xE3DE, 0x871C, 0xBB65, 0x871E, 0xE3DB, 0x8720, 0xE3E4, 0x8721, 0xE3DC, + 0x8722, 0xBB67, 0x8723, 0xE3D6, 0x8724, 0xE3F1, 0x8725, 0xBB68, 0x8726, 0xE3EE, 0x8727, 0xE3EF, 0x8728, 0xE3D7, 0x8729, 0xBB6D, + 0x872A, 0xE3E6, 0x872C, 0xE3E0, 0x872D, 0xE3E7, 0x872E, 0xE3DA, 0x8730, 0xE3F3, 0x8731, 0xE3EB, 0x8732, 0xE3E5, 0x8733, 0xE3D5, + 0x8734, 0xBB69, 0x8735, 0xE3EC, 0x8737, 0xBB6C, 0x8738, 0xE3F0, 0x873A, 0xE3EA, 0x873B, 0xBB66, 0x873C, 0xE3E8, 0x873E, 0xE3E2, + 0x873F, 0xBB64, 0x8740, 0xE3D9, 0x8741, 0xE3E1, 0x8742, 0xE3ED, 0x8743, 0xE3DF, 0x8746, 0xE3E3, 0x874C, 0xBDC1, 0x874D, 0xDFE9, + 0x874E, 0xE7B2, 0x874F, 0xE7BB, 0x8750, 0xE7B1, 0x8751, 0xE7AD, 0x8752, 0xE7AA, 0x8753, 0xBDC2, 0x8754, 0xE7A8, 0x8755, 0xBB6B, + 0x8756, 0xE7A1, 0x8757, 0xBDC0, 0x8758, 0xE7A7, 0x8759, 0xBDBF, 0x875A, 0xE7AC, 0x875B, 0xE7A9, 0x875C, 0xE7B9, 0x875D, 0xE7B4, + 0x875E, 0xE7AE, 0x875F, 0xE7B3, 0x8760, 0xBDBB, 0x8761, 0xE7AB, 0x8762, 0xE7BE, 0x8763, 0xE7A2, 0x8764, 0xE7A3, 0x8765, 0xE7BA, + 0x8766, 0xBDBC, 0x8767, 0xE7BF, 0x8768, 0xBDBE, 0x8769, 0xE7C0, 0x876A, 0xE7B0, 0x876B, 0xE3D8, 0x876C, 0xE7B6, 0x876D, 0xE7AF, + 0x876E, 0xE7B8, 0x876F, 0xE7B5, 0x8773, 0xE7A6, 0x8774, 0xBDB9, 0x8775, 0xE7BD, 0x8776, 0xBDBA, 0x8777, 0xE7A4, 0x8778, 0xBDBD, + 0x8779, 0xEB64, 0x877A, 0xE7B7, 0x877B, 0xE7BC, 0x8781, 0xEB61, 0x8782, 0xBDB8, 0x8783, 0xBFC0, 0x8784, 0xEB6B, 0x8785, 0xEB67, + 0x8787, 0xEB65, 0x8788, 0xEB60, 0x8789, 0xEB6F, 0x878D, 0xBFC4, 0x878F, 0xEB5C, 0x8790, 0xEB68, 0x8791, 0xEB69, 0x8792, 0xEB5F, + 0x8793, 0xEB5E, 0x8794, 0xEB6C, 0x8796, 0xEB62, 0x8797, 0xEB5D, 0x8798, 0xEB63, 0x879A, 0xEB6E, 0x879B, 0xEB5B, 0x879C, 0xEB6D, + 0x879D, 0xEB6A, 0x879E, 0xBFC2, 0x879F, 0xBFC1, 0x87A2, 0xBFC3, 0x87A3, 0xEB66, 0x87A4, 0xF0CB, 0x87AA, 0xEE59, 0x87AB, 0xC1B1, + 0x87AC, 0xEE5D, 0x87AD, 0xEE5A, 0x87AE, 0xEE61, 0x87AF, 0xEE67, 0x87B0, 0xEE5C, 0x87B2, 0xEE70, 0x87B3, 0xC1AE, 0x87B4, 0xEE6A, + 0x87B5, 0xEE5F, 0x87B6, 0xEE6B, 0x87B7, 0xEE66, 0x87B8, 0xEE6D, 0x87B9, 0xEE5E, 0x87BA, 0xC1B3, 0x87BB, 0xC1B2, 0x87BC, 0xEE60, + 0x87BD, 0xEE6E, 0x87BE, 0xEE58, 0x87BF, 0xEE6C, 0x87C0, 0xC1AC, 0x87C2, 0xEE64, 0x87C3, 0xEE63, 0x87C4, 0xEE68, 0x87C5, 0xEE5B, + 0x87C6, 0xC1B0, 0x87C8, 0xC1B4, 0x87C9, 0xEE62, 0x87CA, 0xEE69, 0x87CB, 0xC1B5, 0x87CC, 0xEE65, 0x87D1, 0xC1AD, 0x87D2, 0xC1AF, + 0x87D3, 0xF0C7, 0x87D4, 0xF0C5, 0x87D7, 0xF0CC, 0x87D8, 0xF0C9, 0x87D9, 0xF0CD, 0x87DB, 0xF0BE, 0x87DC, 0xF0C6, 0x87DD, 0xF0D1, + 0x87DE, 0xEE6F, 0x87DF, 0xF0C2, 0x87E0, 0xC2CF, 0x87E1, 0xE7A5, 0x87E2, 0xF0BD, 0x87E3, 0xF0CA, 0x87E4, 0xF0C4, 0x87E5, 0xF0C1, + 0x87E6, 0xF0BC, 0x87E7, 0xF0BB, 0x87E8, 0xF0D0, 0x87EA, 0xF0C0, 0x87EB, 0xF0BF, 0x87EC, 0xC2CD, 0x87ED, 0xF0C8, 0x87EF, 0xC2CC, + 0x87F2, 0xC2CE, 0x87F3, 0xF0C3, 0x87F4, 0xF0CF, 0x87F6, 0xF2DE, 0x87F7, 0xF2DF, 0x87F9, 0xC3C9, 0x87FA, 0xF2DC, 0x87FB, 0xC3C6, + 0x87FC, 0xF2E4, 0x87FE, 0xC3CA, 0x87FF, 0xF2E6, 0x8800, 0xF2DB, 0x8801, 0xF0CE, 0x8802, 0xF2E8, 0x8803, 0xF2DD, 0x8805, 0xC3C7, + 0x8806, 0xF2E3, 0x8808, 0xF2E5, 0x8809, 0xF2E0, 0x880A, 0xF2E7, 0x880B, 0xF2E2, 0x880C, 0xF2E1, 0x880D, 0xC3C8, 0x8810, 0xF4C5, + 0x8811, 0xF4C6, 0x8813, 0xF4C8, 0x8814, 0xC4AE, 0x8815, 0xC4AF, 0x8816, 0xF4C9, 0x8817, 0xF4C7, 0x8819, 0xF4C4, 0x881B, 0xF642, + 0x881C, 0xF645, 0x881D, 0xF641, 0x881F, 0xC4FA, 0x8820, 0xF643, 0x8821, 0xC4F9, 0x8822, 0xC4F8, 0x8823, 0xC4F7, 0x8824, 0xF644, + 0x8825, 0xF751, 0x8826, 0xF74F, 0x8828, 0xF74E, 0x8829, 0xF640, 0x882A, 0xF750, 0x882B, 0xF646, 0x882C, 0xF74D, 0x882E, 0xF7F9, + 0x882F, 0xF7D7, 0x8830, 0xF7F7, 0x8831, 0xC5DB, 0x8832, 0xF7F8, 0x8833, 0xF7FA, 0x8835, 0xF8BF, 0x8836, 0xC5FA, 0x8837, 0xF8BE, + 0x8838, 0xF8BD, 0x8839, 0xC5FB, 0x883B, 0xC65A, 0x883C, 0xF96E, 0x883D, 0xF9A7, 0x883E, 0xF9A6, 0x883F, 0xF9A8, 0x8840, 0xA6E5, + 0x8841, 0xD0AA, 0x8843, 0xD3CF, 0x8844, 0xD3D0, 0x8848, 0xDBC0, 0x884A, 0xF647, 0x884B, 0xF8C0, 0x884C, 0xA6E6, 0x884D, 0xAD6C, + 0x884E, 0xD0AB, 0x8852, 0xD7B1, 0x8853, 0xB34E, 0x8855, 0xDBC2, 0x8856, 0xDBC1, 0x8857, 0xB5F3, 0x8859, 0xB8C5, 0x885A, 0xE7C1, + 0x885B, 0xBDC3, 0x885D, 0xBDC4, 0x8861, 0xBFC5, 0x8862, 0xC5FC, 0x8863, 0xA6E7, 0x8867, 0xD0AC, 0x8868, 0xAAED, 0x8869, 0xD0AE, + 0x886A, 0xD0AD, 0x886B, 0xAD6D, 0x886D, 0xD3D1, 0x886F, 0xD3D8, 0x8870, 0xB049, 0x8871, 0xD3D6, 0x8872, 0xD3D4, 0x8874, 0xD3DB, + 0x8875, 0xD3D2, 0x8876, 0xD3D3, 0x8877, 0xB04A, 0x8879, 0xB04E, 0x887C, 0xD3DC, 0x887D, 0xB04D, 0x887E, 0xD3DA, 0x887F, 0xD3D7, + 0x8880, 0xD3D5, 0x8881, 0xB04B, 0x8882, 0xB04C, 0x8883, 0xD3D9, 0x8888, 0xB350, 0x8889, 0xD7B2, 0x888B, 0xB355, 0x888C, 0xD7C2, + 0x888D, 0xB354, 0x888E, 0xD7C4, 0x8891, 0xD7B8, 0x8892, 0xB352, 0x8893, 0xD7C3, 0x8895, 0xD7B3, 0x8896, 0xB353, 0x8897, 0xD7BF, + 0x8898, 0xD7BB, 0x8899, 0xD7BD, 0x889A, 0xD7B7, 0x889B, 0xD7BE, 0x889E, 0xB34F, 0x889F, 0xD7BA, 0x88A1, 0xD7B9, 0x88A2, 0xD7B5, + 0x88A4, 0xD7C0, 0x88A7, 0xD7BC, 0x88A8, 0xD7B4, 0x88AA, 0xD7B6, 0x88AB, 0xB351, 0x88AC, 0xD7C1, 0x88B1, 0xB5F6, 0x88B2, 0xDBCD, + 0x88B6, 0xDBC9, 0x88B7, 0xDBCB, 0x88B8, 0xDBC6, 0x88B9, 0xDBC5, 0x88BA, 0xDBC3, 0x88BC, 0xDBCA, 0x88BD, 0xDBCC, 0x88BE, 0xDBC8, + 0x88C0, 0xDBC7, 0x88C1, 0xB5F4, 0x88C2, 0xB5F5, 0x88C9, 0xDBCF, 0x88CA, 0xB8CD, 0x88CB, 0xDFF2, 0x88CC, 0xDFF8, 0x88CD, 0xDFF3, + 0x88CE, 0xDFF4, 0x88CF, 0xF9D8, 0x88D0, 0xDFF9, 0x88D2, 0xB8CF, 0x88D4, 0xB8C7, 0x88D5, 0xB8CE, 0x88D6, 0xDFF1, 0x88D7, 0xDBC4, + 0x88D8, 0xB8CA, 0x88D9, 0xB8C8, 0x88DA, 0xDFF7, 0x88DB, 0xDFF6, 0x88DC, 0xB8C9, 0x88DD, 0xB8CB, 0x88DE, 0xDFF5, 0x88DF, 0xB8C6, + 0x88E1, 0xB8CC, 0x88E7, 0xE3F6, 0x88E8, 0xBB74, 0x88EB, 0xE442, 0x88EC, 0xE441, 0x88EE, 0xE3FB, 0x88EF, 0xBB76, 0x88F0, 0xE440, + 0x88F1, 0xE3F7, 0x88F2, 0xE3F8, 0x88F3, 0xBB6E, 0x88F4, 0xBB70, 0x88F6, 0xE3FD, 0x88F7, 0xE3F5, 0x88F8, 0xBB72, 0x88F9, 0xBB71, + 0x88FA, 0xE3F9, 0x88FB, 0xE3FE, 0x88FC, 0xE3FC, 0x88FD, 0xBB73, 0x88FE, 0xE3FA, 0x8901, 0xDBCE, 0x8902, 0xBB6F, 0x8905, 0xE7C2, + 0x8906, 0xE7C9, 0x8907, 0xBDC6, 0x8909, 0xE7CD, 0x890A, 0xBDCA, 0x890B, 0xE7C5, 0x890C, 0xE7C3, 0x890E, 0xE7CC, 0x8910, 0xBDC5, + 0x8911, 0xE7CB, 0x8912, 0xBDC7, 0x8913, 0xBDC8, 0x8914, 0xE7C4, 0x8915, 0xBDC9, 0x8916, 0xE7CA, 0x8917, 0xE7C6, 0x8918, 0xE7C7, + 0x8919, 0xE7C8, 0x891A, 0xBB75, 0x891E, 0xEB70, 0x891F, 0xEB7C, 0x8921, 0xBFCA, 0x8922, 0xEB77, 0x8923, 0xEB79, 0x8925, 0xBFC8, + 0x8926, 0xEB71, 0x8927, 0xEB75, 0x8929, 0xEB78, 0x892A, 0xBFC6, 0x892B, 0xBFC9, 0x892C, 0xEB7B, 0x892D, 0xEB73, 0x892E, 0xEB74, + 0x892F, 0xEB7A, 0x8930, 0xEB72, 0x8931, 0xEB76, 0x8932, 0xBFC7, 0x8933, 0xEE72, 0x8935, 0xEE71, 0x8936, 0xC1B7, 0x8937, 0xEE77, + 0x8938, 0xC1B9, 0x893B, 0xC1B6, 0x893C, 0xEE73, 0x893D, 0xC1BA, 0x893E, 0xEE74, 0x8941, 0xEE75, 0x8942, 0xEE78, 0x8944, 0xC1B8, + 0x8946, 0xF0D6, 0x8949, 0xF0D9, 0x894B, 0xF0D3, 0x894C, 0xF0D5, 0x894F, 0xF0D4, 0x8950, 0xF0D7, 0x8951, 0xF0D8, 0x8952, 0xEE76, + 0x8953, 0xF0D2, 0x8956, 0xC3CD, 0x8957, 0xF2EC, 0x8958, 0xF2EF, 0x8959, 0xF2F1, 0x895A, 0xF2EA, 0x895B, 0xF2EB, 0x895C, 0xF2EE, + 0x895D, 0xF2F0, 0x895E, 0xC3CE, 0x895F, 0xC3CC, 0x8960, 0xC3CB, 0x8961, 0xF2ED, 0x8962, 0xF2E9, 0x8963, 0xF4CA, 0x8964, 0xC4B0, + 0x8966, 0xF4CB, 0x8969, 0xF649, 0x896A, 0xC4FB, 0x896B, 0xF64B, 0x896C, 0xC4FC, 0x896D, 0xF648, 0x896E, 0xF64A, 0x896F, 0xC5A8, + 0x8971, 0xF752, 0x8972, 0xC5A7, 0x8973, 0xF7FD, 0x8974, 0xF7FC, 0x8976, 0xF7FB, 0x8979, 0xF948, 0x897A, 0xF949, 0x897B, 0xF94B, + 0x897C, 0xF94A, 0x897E, 0xCA50, 0x897F, 0xA6E8, 0x8981, 0xAD6E, 0x8982, 0xD7C5, 0x8983, 0xB5F7, 0x8985, 0xDFFA, 0x8986, 0xC2D0, + 0x8988, 0xF2F2, 0x898B, 0xA8A3, 0x898F, 0xB357, 0x8993, 0xB356, 0x8995, 0xDBD0, 0x8996, 0xB5F8, 0x8997, 0xDBD2, 0x8998, 0xDBD1, + 0x899B, 0xDFFB, 0x899C, 0xB8D0, 0x899D, 0xE443, 0x899E, 0xE446, 0x899F, 0xE445, 0x89A1, 0xE444, 0x89A2, 0xE7CE, 0x89A3, 0xE7D0, + 0x89A4, 0xE7CF, 0x89A6, 0xBFCC, 0x89AA, 0xBFCB, 0x89AC, 0xC1BB, 0x89AD, 0xEE79, 0x89AE, 0xEE7B, 0x89AF, 0xEE7A, 0x89B2, 0xC2D1, + 0x89B6, 0xF2F4, 0x89B7, 0xF2F3, 0x89B9, 0xF4CC, 0x89BA, 0xC4B1, 0x89BD, 0xC4FD, 0x89BE, 0xF754, 0x89BF, 0xF753, 0x89C0, 0xC65B, + 0x89D2, 0xA8A4, 0x89D3, 0xD0AF, 0x89D4, 0xAD6F, 0x89D5, 0xD7C8, 0x89D6, 0xD7C6, 0x89D9, 0xD7C7, 0x89DA, 0xDBD4, 0x89DB, 0xDBD5, + 0x89DC, 0xE043, 0x89DD, 0xDBD3, 0x89DF, 0xDFFC, 0x89E0, 0xE041, 0x89E1, 0xE040, 0x89E2, 0xE042, 0x89E3, 0xB8D1, 0x89E4, 0xDFFE, + 0x89E5, 0xDFFD, 0x89E6, 0xE044, 0x89E8, 0xE449, 0x89E9, 0xE447, 0x89EB, 0xE448, 0x89EC, 0xE7D3, 0x89ED, 0xE7D1, 0x89F0, 0xE7D2, + 0x89F1, 0xEB7D, 0x89F2, 0xEE7C, 0x89F3, 0xEE7D, 0x89F4, 0xC2D2, 0x89F6, 0xF2F5, 0x89F7, 0xF4CD, 0x89F8, 0xC4B2, 0x89FA, 0xF64C, + 0x89FB, 0xF755, 0x89FC, 0xC5A9, 0x89FE, 0xF7FE, 0x89FF, 0xF94C, 0x8A00, 0xA8A5, 0x8A02, 0xAD71, 0x8A03, 0xAD72, 0x8A04, 0xD0B0, + 0x8A07, 0xD0B1, 0x8A08, 0xAD70, 0x8A0A, 0xB054, 0x8A0C, 0xB052, 0x8A0E, 0xB051, 0x8A0F, 0xB058, 0x8A10, 0xB050, 0x8A11, 0xB059, + 0x8A12, 0xD3DD, 0x8A13, 0xB056, 0x8A15, 0xB053, 0x8A16, 0xB057, 0x8A17, 0xB055, 0x8A18, 0xB04F, 0x8A1B, 0xB35F, 0x8A1D, 0xB359, + 0x8A1E, 0xD7CC, 0x8A1F, 0xB35E, 0x8A22, 0xB360, 0x8A23, 0xB35A, 0x8A25, 0xB35B, 0x8A27, 0xD7CA, 0x8A2A, 0xB358, 0x8A2C, 0xD7CB, + 0x8A2D, 0xB35D, 0x8A30, 0xD7C9, 0x8A31, 0xB35C, 0x8A34, 0xB644, 0x8A36, 0xB646, 0x8A39, 0xDBD8, 0x8A3A, 0xB645, 0x8A3B, 0xB5F9, + 0x8A3C, 0xB5FD, 0x8A3E, 0xB8E4, 0x8A3F, 0xE049, 0x8A40, 0xDBDA, 0x8A41, 0xB5FE, 0x8A44, 0xDBDD, 0x8A45, 0xDBDE, 0x8A46, 0xB643, + 0x8A48, 0xDBE0, 0x8A4A, 0xDBE2, 0x8A4C, 0xDBE3, 0x8A4D, 0xDBD7, 0x8A4E, 0xDBD6, 0x8A4F, 0xDBE4, 0x8A50, 0xB642, 0x8A51, 0xDBE1, + 0x8A52, 0xDBDF, 0x8A54, 0xB640, 0x8A55, 0xB5FB, 0x8A56, 0xB647, 0x8A57, 0xDBDB, 0x8A58, 0xDBDC, 0x8A59, 0xDBD9, 0x8A5B, 0xB641, + 0x8A5E, 0xB5FC, 0x8A60, 0xB5FA, 0x8A61, 0xE048, 0x8A62, 0xB8DF, 0x8A63, 0xB8DA, 0x8A66, 0xB8D5, 0x8A68, 0xB8E5, 0x8A69, 0xB8D6, + 0x8A6B, 0xB8D2, 0x8A6C, 0xB8E1, 0x8A6D, 0xB8DE, 0x8A6E, 0xB8E0, 0x8A70, 0xB8D7, 0x8A71, 0xB8DC, 0x8A72, 0xB8D3, 0x8A73, 0xB8D4, + 0x8A74, 0xE050, 0x8A75, 0xE04D, 0x8A76, 0xE045, 0x8A77, 0xE04A, 0x8A79, 0xB8E2, 0x8A7A, 0xE051, 0x8A7B, 0xB8E3, 0x8A7C, 0xB8D9, + 0x8A7F, 0xE047, 0x8A81, 0xE04F, 0x8A82, 0xE04B, 0x8A83, 0xE04E, 0x8A84, 0xE04C, 0x8A85, 0xB8DD, 0x8A86, 0xE046, 0x8A87, 0xB8D8, + 0x8A8B, 0xE44C, 0x8A8C, 0xBB78, 0x8A8D, 0xBB7B, 0x8A8F, 0xE44E, 0x8A91, 0xBBA5, 0x8A92, 0xE44D, 0x8A93, 0xBB7D, 0x8A95, 0xBDCF, + 0x8A96, 0xE44F, 0x8A98, 0xBBA4, 0x8A99, 0xE44B, 0x8A9A, 0xBBA6, 0x8A9E, 0xBB79, 0x8AA0, 0xB8DB, 0x8AA1, 0xBB7C, 0x8AA3, 0xBB7A, + 0x8AA4, 0xBB7E, 0x8AA5, 0xBBA2, 0x8AA6, 0xBB77, 0x8AA7, 0xBBA7, 0x8AA8, 0xBBA3, 0x8AAA, 0xBBA1, 0x8AAB, 0xE44A, 0x8AB0, 0xBDD6, + 0x8AB2, 0xBDD2, 0x8AB6, 0xBDD9, 0x8AB8, 0xE7D6, 0x8AB9, 0xBDDA, 0x8ABA, 0xE7E2, 0x8ABB, 0xE7DB, 0x8ABC, 0xBDCB, 0x8ABD, 0xE7E3, + 0x8ABE, 0xE7DD, 0x8ABF, 0xBDD5, 0x8AC0, 0xE7DE, 0x8AC2, 0xBDD4, 0x8AC3, 0xE7E1, 0x8AC4, 0xBDCE, 0x8AC5, 0xE7DF, 0x8AC6, 0xE7D5, + 0x8AC7, 0xBDCD, 0x8AC8, 0xEBAA, 0x8AC9, 0xBDD3, 0x8ACB, 0xBDD0, 0x8ACD, 0xBDD8, 0x8ACF, 0xE7D4, 0x8AD1, 0xE7D8, 0x8AD2, 0xBDCC, + 0x8AD3, 0xE7D7, 0x8AD4, 0xE7D9, 0x8AD5, 0xE7DA, 0x8AD6, 0xBDD7, 0x8AD7, 0xE7DC, 0x8AD8, 0xE7E0, 0x8AD9, 0xE7E4, 0x8ADB, 0xBDDB, + 0x8ADC, 0xBFD2, 0x8ADD, 0xEBA5, 0x8ADE, 0xEBAB, 0x8ADF, 0xEBA8, 0x8AE0, 0xEB7E, 0x8AE1, 0xEBAC, 0x8AE2, 0xEBA1, 0x8AE4, 0xEBA7, + 0x8AE6, 0xBFCD, 0x8AE7, 0xBFD3, 0x8AE8, 0xEBAD, 0x8AEB, 0xBFCF, 0x8AED, 0xBFD9, 0x8AEE, 0xBFD4, 0x8AEF, 0xEBAF, 0x8AF0, 0xEBA9, + 0x8AF1, 0xBFD0, 0x8AF2, 0xEBA2, 0x8AF3, 0xBFDA, 0x8AF4, 0xEBA3, 0x8AF5, 0xEBA4, 0x8AF6, 0xBFDB, 0x8AF7, 0xBFD8, 0x8AF8, 0xBDD1, + 0x8AFA, 0xBFCE, 0x8AFB, 0xEBB0, 0x8AFC, 0xBFDC, 0x8AFE, 0xBFD5, 0x8AFF, 0xEBAE, 0x8B00, 0xBFD1, 0x8B01, 0xBFD6, 0x8B02, 0xBFD7, + 0x8B04, 0xC1C3, 0x8B05, 0xEEA4, 0x8B06, 0xEEAD, 0x8B07, 0xEEAA, 0x8B08, 0xEEAC, 0x8B0A, 0xC1C0, 0x8B0B, 0xEEA5, 0x8B0D, 0xEEAB, + 0x8B0E, 0xC1BC, 0x8B0F, 0xEEA7, 0x8B10, 0xC1C4, 0x8B11, 0xEEA3, 0x8B12, 0xEEA8, 0x8B13, 0xEEAF, 0x8B14, 0xEBA6, 0x8B15, 0xEEA9, + 0x8B16, 0xEEA2, 0x8B17, 0xC1BD, 0x8B18, 0xEEA1, 0x8B19, 0xC1BE, 0x8B1A, 0xEEB0, 0x8B1B, 0xC1BF, 0x8B1C, 0xEEAE, 0x8B1D, 0xC1C2, + 0x8B1E, 0xEE7E, 0x8B20, 0xC1C1, 0x8B22, 0xEEA6, 0x8B23, 0xF0DC, 0x8B24, 0xF0EA, 0x8B25, 0xF0E5, 0x8B26, 0xF0E7, 0x8B27, 0xF0DB, + 0x8B28, 0xC2D3, 0x8B2A, 0xF0DA, 0x8B2B, 0xC2D6, 0x8B2C, 0xC2D5, 0x8B2E, 0xF0E9, 0x8B2F, 0xF0E1, 0x8B30, 0xF0DE, 0x8B31, 0xF0E4, + 0x8B33, 0xF0DD, 0x8B35, 0xF0DF, 0x8B36, 0xF0E8, 0x8B37, 0xF0E6, 0x8B39, 0xC2D4, 0x8B3A, 0xF0ED, 0x8B3B, 0xF0EB, 0x8B3C, 0xF0E2, + 0x8B3D, 0xF0EC, 0x8B3E, 0xF0E3, 0x8B40, 0xF2F9, 0x8B41, 0xC3CF, 0x8B42, 0xF341, 0x8B45, 0xF64F, 0x8B46, 0xC3D6, 0x8B47, 0xF0E0, + 0x8B48, 0xF2F7, 0x8B49, 0xC3D2, 0x8B4A, 0xF2F8, 0x8B4B, 0xF2FD, 0x8B4E, 0xC3D4, 0x8B4F, 0xC3D5, 0x8B50, 0xF2F6, 0x8B51, 0xF340, + 0x8B52, 0xF342, 0x8B53, 0xF2FA, 0x8B54, 0xF2FC, 0x8B55, 0xF2FE, 0x8B56, 0xF2FB, 0x8B57, 0xF343, 0x8B58, 0xC3D1, 0x8B59, 0xC3D7, + 0x8B5A, 0xC3D3, 0x8B5C, 0xC3D0, 0x8B5D, 0xF4D0, 0x8B5F, 0xC4B7, 0x8B60, 0xF4CE, 0x8B63, 0xF4D2, 0x8B65, 0xF4D3, 0x8B66, 0xC4B5, + 0x8B67, 0xF4D4, 0x8B68, 0xF4D1, 0x8B6A, 0xF4CF, 0x8B6B, 0xC4B8, 0x8B6C, 0xC4B4, 0x8B6D, 0xF4D5, 0x8B6F, 0xC4B6, 0x8B70, 0xC4B3, + 0x8B74, 0xC4FE, 0x8B77, 0xC540, 0x8B78, 0xF64E, 0x8B79, 0xF64D, 0x8B7A, 0xF650, 0x8B7B, 0xF651, 0x8B7D, 0xC541, 0x8B7E, 0xF756, + 0x8B7F, 0xF75B, 0x8B80, 0xC5AA, 0x8B82, 0xF758, 0x8B84, 0xF757, 0x8B85, 0xF75A, 0x8B86, 0xF759, 0x8B88, 0xF843, 0x8B8A, 0xC5DC, + 0x8B8B, 0xF842, 0x8B8C, 0xF840, 0x8B8E, 0xF841, 0x8B92, 0xC5FE, 0x8B93, 0xC5FD, 0x8B94, 0xF8C1, 0x8B95, 0xF8C2, 0x8B96, 0xC640, + 0x8B98, 0xF94D, 0x8B99, 0xF94E, 0x8B9A, 0xC667, 0x8B9C, 0xC66D, 0x8B9E, 0xF9A9, 0x8B9F, 0xF9C8, 0x8C37, 0xA8A6, 0x8C39, 0xD7CD, + 0x8C3B, 0xD7CE, 0x8C3C, 0xE052, 0x8C3D, 0xE450, 0x8C3E, 0xE7E5, 0x8C3F, 0xC1C6, 0x8C41, 0xC1C5, 0x8C42, 0xF0EE, 0x8C43, 0xF344, + 0x8C45, 0xF844, 0x8C46, 0xA8A7, 0x8C47, 0xD3DE, 0x8C48, 0xB05A, 0x8C49, 0xB361, 0x8C4A, 0xE054, 0x8C4B, 0xE053, 0x8C4C, 0xBDDC, + 0x8C4D, 0xE7E6, 0x8C4E, 0xBDDD, 0x8C4F, 0xEEB1, 0x8C50, 0xC2D7, 0x8C54, 0xC676, 0x8C55, 0xA8A8, 0x8C56, 0xCDCB, 0x8C57, 0xD3DF, + 0x8C5A, 0xB362, 0x8C5C, 0xD7CF, 0x8C5D, 0xD7D0, 0x8C5F, 0xDBE5, 0x8C61, 0xB648, 0x8C62, 0xB8E6, 0x8C64, 0xE056, 0x8C65, 0xE055, + 0x8C66, 0xE057, 0x8C68, 0xE451, 0x8C69, 0xE452, 0x8C6A, 0xBBA8, 0x8C6B, 0xBFDD, 0x8C6C, 0xBDDE, 0x8C6D, 0xBFDE, 0x8C6F, 0xEEB5, + 0x8C70, 0xEEB2, 0x8C71, 0xEEB4, 0x8C72, 0xEEB3, 0x8C73, 0xC1C7, 0x8C75, 0xF0EF, 0x8C76, 0xF346, 0x8C77, 0xF345, 0x8C78, 0xCBA4, + 0x8C79, 0xB05C, 0x8C7A, 0xB05B, 0x8C7B, 0xD3E0, 0x8C7D, 0xD7D1, 0x8C80, 0xDBE7, 0x8C81, 0xDBE6, 0x8C82, 0xB649, 0x8C84, 0xE059, + 0x8C85, 0xE05A, 0x8C86, 0xE058, 0x8C89, 0xB8E8, 0x8C8A, 0xB8E7, 0x8C8C, 0xBBAA, 0x8C8D, 0xBBA9, 0x8C8F, 0xE7E7, 0x8C90, 0xEBB3, + 0x8C91, 0xEBB1, 0x8C92, 0xEBB2, 0x8C93, 0xBFDF, 0x8C94, 0xEEB7, 0x8C95, 0xEEB6, 0x8C97, 0xF0F2, 0x8C98, 0xF0F1, 0x8C99, 0xF0F0, + 0x8C9A, 0xF347, 0x8C9C, 0xF9AA, 0x8C9D, 0xA8A9, 0x8C9E, 0xAD73, 0x8CA0, 0xAD74, 0x8CA1, 0xB05D, 0x8CA2, 0xB05E, 0x8CA3, 0xD3E2, + 0x8CA4, 0xD3E1, 0x8CA5, 0xD7D2, 0x8CA7, 0xB368, 0x8CA8, 0xB366, 0x8CA9, 0xB363, 0x8CAA, 0xB367, 0x8CAB, 0xB365, 0x8CAC, 0xB364, + 0x8CAF, 0xB64A, 0x8CB0, 0xDBEA, 0x8CB2, 0xB8ED, 0x8CB3, 0xB64C, 0x8CB4, 0xB651, 0x8CB5, 0xDBEC, 0x8CB6, 0xB653, 0x8CB7, 0xB652, + 0x8CB8, 0xB655, 0x8CB9, 0xDBEB, 0x8CBA, 0xDBE8, 0x8CBB, 0xB64F, 0x8CBC, 0xB64B, 0x8CBD, 0xB64D, 0x8CBE, 0xDBE9, 0x8CBF, 0xB654, + 0x8CC0, 0xB650, 0x8CC1, 0xB64E, 0x8CC2, 0xB8EF, 0x8CC3, 0xB8EE, 0x8CC4, 0xB8EC, 0x8CC5, 0xB8F0, 0x8CC7, 0xB8EA, 0x8CC8, 0xB8EB, + 0x8CCA, 0xB8E9, 0x8CCC, 0xE05B, 0x8CCF, 0xE454, 0x8CD1, 0xBBAC, 0x8CD2, 0xBBAD, 0x8CD3, 0xBBAB, 0x8CD5, 0xE453, 0x8CD7, 0xE455, + 0x8CD9, 0xE7EA, 0x8CDA, 0xE7EC, 0x8CDC, 0xBDE7, 0x8CDD, 0xE7ED, 0x8CDE, 0xBDE0, 0x8CDF, 0xE7E9, 0x8CE0, 0xBDDF, 0x8CE1, 0xBDE9, + 0x8CE2, 0xBDE5, 0x8CE3, 0xBDE6, 0x8CE4, 0xBDE2, 0x8CE5, 0xE7E8, 0x8CE6, 0xBDE1, 0x8CE7, 0xE7EE, 0x8CE8, 0xE7EB, 0x8CEA, 0xBDE8, + 0x8CEC, 0xBDE3, 0x8CED, 0xBDE4, 0x8CEE, 0xEBB5, 0x8CF0, 0xEBB7, 0x8CF1, 0xEBB6, 0x8CF3, 0xEBB8, 0x8CF4, 0xBFE0, 0x8CF5, 0xEBB4, + 0x8CF8, 0xC1CB, 0x8CF9, 0xEEB8, 0x8CFA, 0xC1C8, 0x8CFB, 0xC1CC, 0x8CFC, 0xC1CA, 0x8CFD, 0xC1C9, 0x8CFE, 0xF0F3, 0x8D00, 0xF0F6, + 0x8D02, 0xF0F5, 0x8D04, 0xF0F4, 0x8D05, 0xC2D8, 0x8D06, 0xF348, 0x8D07, 0xF349, 0x8D08, 0xC3D8, 0x8D09, 0xF34A, 0x8D0A, 0xC3D9, + 0x8D0D, 0xC4BA, 0x8D0F, 0xC4B9, 0x8D10, 0xF652, 0x8D13, 0xC542, 0x8D14, 0xF653, 0x8D15, 0xF75C, 0x8D16, 0xC5AB, 0x8D17, 0xC5AC, + 0x8D19, 0xF845, 0x8D1B, 0xC642, 0x8D64, 0xA8AA, 0x8D66, 0xB36A, 0x8D67, 0xB369, 0x8D68, 0xE05C, 0x8D69, 0xE05D, 0x8D6B, 0xBBAE, + 0x8D6C, 0xEBB9, 0x8D6D, 0xBDEA, 0x8D6E, 0xEBBA, 0x8D6F, 0xEEB9, 0x8D70, 0xA8AB, 0x8D72, 0xD0B2, 0x8D73, 0xAD76, 0x8D74, 0xAD75, + 0x8D76, 0xD3E3, 0x8D77, 0xB05F, 0x8D78, 0xD3E4, 0x8D79, 0xD7D5, 0x8D7B, 0xD7D4, 0x8D7D, 0xD7D3, 0x8D80, 0xDBEE, 0x8D81, 0xB658, + 0x8D84, 0xDBED, 0x8D85, 0xB657, 0x8D89, 0xDBEF, 0x8D8A, 0xB656, 0x8D8C, 0xE05F, 0x8D8D, 0xE062, 0x8D8E, 0xE060, 0x8D8F, 0xE061, + 0x8D90, 0xE065, 0x8D91, 0xE05E, 0x8D92, 0xE066, 0x8D93, 0xE063, 0x8D94, 0xE064, 0x8D95, 0xBBB0, 0x8D96, 0xE456, 0x8D99, 0xBBAF, + 0x8D9B, 0xE7F2, 0x8D9C, 0xE7F0, 0x8D9F, 0xBDEB, 0x8DA0, 0xE7EF, 0x8DA1, 0xE7F1, 0x8DA3, 0xBDEC, 0x8DA5, 0xEBBB, 0x8DA7, 0xEBBC, + 0x8DA8, 0xC1CD, 0x8DAA, 0xF34C, 0x8DAB, 0xF34E, 0x8DAC, 0xF34B, 0x8DAD, 0xF34D, 0x8DAE, 0xF4D6, 0x8DAF, 0xF654, 0x8DB2, 0xF96F, + 0x8DB3, 0xA8AC, 0x8DB4, 0xAD77, 0x8DB5, 0xD3E5, 0x8DB6, 0xD3E7, 0x8DB7, 0xD3E6, 0x8DB9, 0xD7D8, 0x8DBA, 0xB36C, 0x8DBC, 0xD7D6, + 0x8DBE, 0xB36B, 0x8DBF, 0xD7D9, 0x8DC1, 0xD7DA, 0x8DC2, 0xD7D7, 0x8DC5, 0xDBFB, 0x8DC6, 0xB660, 0x8DC7, 0xDBF3, 0x8DC8, 0xDBF9, + 0x8DCB, 0xB65B, 0x8DCC, 0xB65E, 0x8DCD, 0xDBF2, 0x8DCE, 0xB659, 0x8DCF, 0xDBF6, 0x8DD0, 0xE06C, 0x8DD1, 0xB65D, 0x8DD3, 0xDBF1, + 0x8DD5, 0xDBF7, 0x8DD6, 0xDBF4, 0x8DD7, 0xDBFA, 0x8DD8, 0xDBF0, 0x8DD9, 0xDBF8, 0x8DDA, 0xB65C, 0x8DDB, 0xB65F, 0x8DDC, 0xDBF5, + 0x8DDD, 0xB65A, 0x8DDF, 0xB8F2, 0x8DE0, 0xE068, 0x8DE1, 0xB8F1, 0x8DE2, 0xE06F, 0x8DE3, 0xE06E, 0x8DE4, 0xB8F8, 0x8DE6, 0xB8F9, + 0x8DE7, 0xE070, 0x8DE8, 0xB8F3, 0x8DE9, 0xE06D, 0x8DEA, 0xB8F7, 0x8DEB, 0xE072, 0x8DEC, 0xE069, 0x8DEE, 0xE06B, 0x8DEF, 0xB8F4, + 0x8DF0, 0xE067, 0x8DF1, 0xE06A, 0x8DF2, 0xE071, 0x8DF3, 0xB8F5, 0x8DF4, 0xE073, 0x8DFA, 0xB8F6, 0x8DFC, 0xBBB1, 0x8DFD, 0xE45B, + 0x8DFE, 0xE461, 0x8DFF, 0xE459, 0x8E00, 0xE462, 0x8E02, 0xE458, 0x8E03, 0xE45D, 0x8E04, 0xE463, 0x8E05, 0xE460, 0x8E06, 0xE45F, + 0x8E07, 0xE45E, 0x8E09, 0xE457, 0x8E0A, 0xE45C, 0x8E0D, 0xE45A, 0x8E0F, 0xBDF1, 0x8E10, 0xBDEE, 0x8E11, 0xE7FB, 0x8E12, 0xE841, + 0x8E13, 0xE843, 0x8E14, 0xE840, 0x8E15, 0xE7F8, 0x8E16, 0xE7FA, 0x8E17, 0xE845, 0x8E18, 0xE842, 0x8E19, 0xE7FC, 0x8E1A, 0xE846, + 0x8E1B, 0xE7F9, 0x8E1C, 0xE844, 0x8E1D, 0xBDEF, 0x8E1E, 0xBDF5, 0x8E1F, 0xBDF3, 0x8E20, 0xE7F3, 0x8E21, 0xBDF4, 0x8E22, 0xBDF0, + 0x8E23, 0xE7F4, 0x8E24, 0xE7F6, 0x8E25, 0xE7F5, 0x8E26, 0xE7FD, 0x8E27, 0xE7FE, 0x8E29, 0xBDF2, 0x8E2B, 0xBDED, 0x8E2E, 0xE7F7, + 0x8E30, 0xEBC6, 0x8E31, 0xBFE2, 0x8E33, 0xEBBD, 0x8E34, 0xBFE3, 0x8E35, 0xBFE6, 0x8E36, 0xEBC2, 0x8E38, 0xEBBF, 0x8E39, 0xBFE5, + 0x8E3C, 0xEBC3, 0x8E3D, 0xEBC4, 0x8E3E, 0xEBBE, 0x8E3F, 0xEBC7, 0x8E40, 0xEBC0, 0x8E41, 0xEBC5, 0x8E42, 0xBFE4, 0x8E44, 0xBFE1, + 0x8E45, 0xEBC1, 0x8E47, 0xEEBF, 0x8E48, 0xC1D0, 0x8E49, 0xC1CE, 0x8E4A, 0xC1D1, 0x8E4B, 0xC1CF, 0x8E4C, 0xEEBE, 0x8E4D, 0xEEBB, + 0x8E4E, 0xEEBA, 0x8E50, 0xEEBD, 0x8E53, 0xEEBC, 0x8E54, 0xF145, 0x8E55, 0xC2DE, 0x8E56, 0xF0FB, 0x8E57, 0xF0FA, 0x8E59, 0xC2D9, + 0x8E5A, 0xF141, 0x8E5B, 0xF140, 0x8E5C, 0xF0F7, 0x8E5D, 0xF143, 0x8E5E, 0xF0FC, 0x8E5F, 0xC2DD, 0x8E60, 0xF0F9, 0x8E61, 0xF142, + 0x8E62, 0xF0F8, 0x8E63, 0xC2DA, 0x8E64, 0xC2DC, 0x8E65, 0xF0FD, 0x8E66, 0xC2DB, 0x8E67, 0xF0FE, 0x8E69, 0xF144, 0x8E6A, 0xF352, + 0x8E6C, 0xC3DE, 0x8E6D, 0xF34F, 0x8E6F, 0xF353, 0x8E72, 0xC3DB, 0x8E73, 0xF351, 0x8E74, 0xC3E0, 0x8E76, 0xC3DD, 0x8E78, 0xF350, + 0x8E7A, 0xC3DF, 0x8E7B, 0xF354, 0x8E7C, 0xC3DA, 0x8E81, 0xC4BC, 0x8E82, 0xC4BE, 0x8E84, 0xF4D9, 0x8E85, 0xC4BD, 0x8E86, 0xF4D7, + 0x8E87, 0xC3DC, 0x8E88, 0xF4D8, 0x8E89, 0xC4BB, 0x8E8A, 0xC543, 0x8E8B, 0xC545, 0x8E8C, 0xF656, 0x8E8D, 0xC544, 0x8E8E, 0xF655, + 0x8E90, 0xF761, 0x8E91, 0xC5AD, 0x8E92, 0xF760, 0x8E93, 0xC5AE, 0x8E94, 0xF75E, 0x8E95, 0xF75D, 0x8E96, 0xF762, 0x8E97, 0xF763, + 0x8E98, 0xF846, 0x8E9A, 0xF75F, 0x8E9D, 0xF8C6, 0x8E9E, 0xF8C3, 0x8E9F, 0xF8C4, 0x8EA0, 0xF8C5, 0x8EA1, 0xC65C, 0x8EA3, 0xF951, + 0x8EA4, 0xF950, 0x8EA5, 0xF94F, 0x8EA6, 0xF970, 0x8EA8, 0xF9BE, 0x8EA9, 0xF9AB, 0x8EAA, 0xC66E, 0x8EAB, 0xA8AD, 0x8EAC, 0xB060, + 0x8EB2, 0xB8FA, 0x8EBA, 0xBDF6, 0x8EBD, 0xEBC8, 0x8EC0, 0xC2DF, 0x8EC2, 0xF355, 0x8EC9, 0xF9AC, 0x8ECA, 0xA8AE, 0x8ECB, 0xAAEE, + 0x8ECC, 0xAD79, 0x8ECD, 0xAD78, 0x8ECF, 0xB063, 0x8ED1, 0xD3E8, 0x8ED2, 0xB061, 0x8ED3, 0xD3E9, 0x8ED4, 0xB062, 0x8ED7, 0xD7DF, + 0x8ED8, 0xD7DB, 0x8EDB, 0xB36D, 0x8EDC, 0xD7DE, 0x8EDD, 0xD7DD, 0x8EDE, 0xD7DC, 0x8EDF, 0xB36E, 0x8EE0, 0xD7E0, 0x8EE1, 0xD7E1, + 0x8EE5, 0xDC43, 0x8EE6, 0xDC41, 0x8EE7, 0xDC45, 0x8EE8, 0xDC46, 0x8EE9, 0xDC4C, 0x8EEB, 0xDC48, 0x8EEC, 0xDC4A, 0x8EEE, 0xDC42, + 0x8EEF, 0xDBFC, 0x8EF1, 0xDC49, 0x8EF4, 0xDC4B, 0x8EF5, 0xDC44, 0x8EF6, 0xDC47, 0x8EF7, 0xDBFD, 0x8EF8, 0xB662, 0x8EF9, 0xDC40, + 0x8EFA, 0xDBFE, 0x8EFB, 0xB661, 0x8EFC, 0xB663, 0x8EFE, 0xB8FD, 0x8EFF, 0xE075, 0x8F00, 0xE077, 0x8F01, 0xE076, 0x8F02, 0xE07B, + 0x8F03, 0xB8FB, 0x8F05, 0xE078, 0x8F06, 0xE074, 0x8F07, 0xE079, 0x8F08, 0xE07A, 0x8F09, 0xB8FC, 0x8F0A, 0xB8FE, 0x8F0B, 0xE07C, + 0x8F0D, 0xE467, 0x8F0E, 0xE466, 0x8F10, 0xE464, 0x8F11, 0xE465, 0x8F12, 0xBBB3, 0x8F13, 0xBBB5, 0x8F14, 0xBBB2, 0x8F15, 0xBBB4, + 0x8F16, 0xE84D, 0x8F17, 0xE84E, 0x8F18, 0xE849, 0x8F1A, 0xE84A, 0x8F1B, 0xBDF8, 0x8F1C, 0xBDFD, 0x8F1D, 0xBDF7, 0x8F1E, 0xBDFE, + 0x8F1F, 0xBDF9, 0x8F20, 0xE84B, 0x8F23, 0xE84C, 0x8F24, 0xE848, 0x8F25, 0xBE40, 0x8F26, 0xBDFB, 0x8F29, 0xBDFA, 0x8F2A, 0xBDFC, + 0x8F2C, 0xE847, 0x8F2E, 0xEBCA, 0x8F2F, 0xBFE8, 0x8F32, 0xEBCC, 0x8F33, 0xBFEA, 0x8F34, 0xEBCF, 0x8F35, 0xEBCB, 0x8F36, 0xEBC9, + 0x8F37, 0xEBCE, 0x8F38, 0xBFE9, 0x8F39, 0xEBCD, 0x8F3B, 0xBFE7, 0x8F3E, 0xC1D3, 0x8F3F, 0xC1D6, 0x8F40, 0xEEC1, 0x8F42, 0xC1D4, + 0x8F43, 0xEEC0, 0x8F44, 0xC1D2, 0x8F45, 0xC1D5, 0x8F46, 0xF146, 0x8F47, 0xF147, 0x8F48, 0xF148, 0x8F49, 0xC2E0, 0x8F4B, 0xF149, + 0x8F4D, 0xC2E1, 0x8F4E, 0xC3E2, 0x8F4F, 0xF358, 0x8F50, 0xF359, 0x8F51, 0xF357, 0x8F52, 0xF356, 0x8F53, 0xF35A, 0x8F54, 0xC3E1, + 0x8F55, 0xF4DD, 0x8F56, 0xF4DB, 0x8F57, 0xF4DC, 0x8F58, 0xF4DE, 0x8F59, 0xF4DA, 0x8F5A, 0xF4DF, 0x8F5B, 0xF658, 0x8F5D, 0xF659, + 0x8F5E, 0xF657, 0x8F5F, 0xC546, 0x8F60, 0xF764, 0x8F61, 0xC5AF, 0x8F62, 0xF765, 0x8F63, 0xF848, 0x8F64, 0xF847, 0x8F9B, 0xA8AF, + 0x8F9C, 0xB664, 0x8F9F, 0xB940, 0x8FA3, 0xBBB6, 0x8FA6, 0xBFEC, 0x8FA8, 0xBFEB, 0x8FAD, 0xC3E3, 0x8FAE, 0xC47C, 0x8FAF, 0xC547, + 0x8FB0, 0xA8B0, 0x8FB1, 0xB064, 0x8FB2, 0xB941, 0x8FB4, 0xF35B, 0x8FBF, 0xCBA6, 0x8FC2, 0xA8B1, 0x8FC4, 0xA8B4, 0x8FC5, 0xA8B3, + 0x8FC6, 0xA8B2, 0x8FC9, 0xCBA5, 0x8FCB, 0xCDCD, 0x8FCD, 0xCDCF, 0x8FCE, 0xAAEF, 0x8FD1, 0xAAF1, 0x8FD2, 0xCDCC, 0x8FD3, 0xCDCE, + 0x8FD4, 0xAAF0, 0x8FD5, 0xCDD1, 0x8FD6, 0xCDD0, 0x8FD7, 0xCDD2, 0x8FE0, 0xD0B6, 0x8FE1, 0xD0B4, 0x8FE2, 0xAD7C, 0x8FE3, 0xD0B3, + 0x8FE4, 0xADA3, 0x8FE5, 0xAD7E, 0x8FE6, 0xAD7B, 0x8FE8, 0xADA4, 0x8FEA, 0xAD7D, 0x8FEB, 0xADA2, 0x8FED, 0xADA1, 0x8FEE, 0xD0B5, + 0x8FF0, 0xAD7A, 0x8FF4, 0xB06A, 0x8FF5, 0xD3EB, 0x8FF6, 0xD3F1, 0x8FF7, 0xB067, 0x8FF8, 0xB06E, 0x8FFA, 0xB069, 0x8FFB, 0xD3EE, + 0x8FFC, 0xD3F0, 0x8FFD, 0xB06C, 0x8FFE, 0xD3EA, 0x8FFF, 0xD3ED, 0x9000, 0xB068, 0x9001, 0xB065, 0x9002, 0xD3EC, 0x9003, 0xB06B, + 0x9004, 0xD3EF, 0x9005, 0xB06D, 0x9006, 0xB066, 0x900B, 0xD7E3, 0x900C, 0xD7E6, 0x900D, 0xB370, 0x900F, 0xB37A, 0x9010, 0xB376, + 0x9011, 0xD7E4, 0x9014, 0xB37E, 0x9015, 0xB377, 0x9016, 0xB37C, 0x9017, 0xB372, 0x9019, 0xB36F, 0x901A, 0xB371, 0x901B, 0xB37D, + 0x901C, 0xD7E5, 0x901D, 0xB375, 0x901E, 0xB378, 0x901F, 0xB374, 0x9020, 0xB379, 0x9021, 0xD7E7, 0x9022, 0xB37B, 0x9023, 0xB373, + 0x9024, 0xD7E2, 0x902D, 0xDC4D, 0x902E, 0xB665, 0x902F, 0xDC4F, 0x9031, 0xB667, 0x9032, 0xB669, 0x9034, 0xDC4E, 0x9035, 0xB666, + 0x9036, 0xB66A, 0x9038, 0xB668, 0x903C, 0xB947, 0x903D, 0xE0A3, 0x903E, 0xB94F, 0x903F, 0xE07E, 0x9041, 0xB950, 0x9042, 0xB945, + 0x9044, 0xE0A1, 0x9047, 0xB94A, 0x9049, 0xE0A2, 0x904A, 0xB943, 0x904B, 0xB942, 0x904D, 0xB94D, 0x904E, 0xB94C, 0x904F, 0xB94B, + 0x9050, 0xB949, 0x9051, 0xB94E, 0x9052, 0xE07D, 0x9053, 0xB944, 0x9054, 0xB946, 0x9055, 0xB948, 0x9058, 0xBBB8, 0x9059, 0xBBBB, + 0x905B, 0xBBBF, 0x905C, 0xBBB9, 0x905D, 0xBBBE, 0x905E, 0xBBBC, 0x9060, 0xBBB7, 0x9062, 0xBBBD, 0x9063, 0xBBBA, 0x9067, 0xE852, + 0x9068, 0xBE43, 0x9069, 0xBE41, 0x906B, 0xE853, 0x906D, 0xBE44, 0x906E, 0xBE42, 0x906F, 0xE851, 0x9070, 0xE850, 0x9072, 0xBFF0, + 0x9073, 0xE84F, 0x9074, 0xBFEE, 0x9075, 0xBFED, 0x9076, 0xEBD0, 0x9077, 0xBE45, 0x9078, 0xBFEF, 0x9079, 0xEBD1, 0x907A, 0xBFF2, + 0x907B, 0xEBD2, 0x907C, 0xBFF1, 0x907D, 0xC1D8, 0x907E, 0xEEC3, 0x907F, 0xC1D7, 0x9080, 0xC1DC, 0x9081, 0xC1DA, 0x9082, 0xC1DB, + 0x9083, 0xC2E3, 0x9084, 0xC1D9, 0x9085, 0xEEC2, 0x9086, 0xEBD3, 0x9087, 0xC2E2, 0x9088, 0xC2E4, 0x908A, 0xC3E4, 0x908B, 0xC3E5, + 0x908D, 0xF4E0, 0x908F, 0xC5DE, 0x9090, 0xC5DD, 0x9091, 0xA8B6, 0x9094, 0xCA55, 0x9095, 0xB06F, 0x9097, 0xCA52, 0x9098, 0xCA53, + 0x9099, 0xCA51, 0x909B, 0xCA54, 0x909E, 0xCBAA, 0x909F, 0xCBA7, 0x90A0, 0xCBAC, 0x90A1, 0xCBA8, 0x90A2, 0xA8B7, 0x90A3, 0xA8BA, + 0x90A5, 0xCBA9, 0x90A6, 0xA8B9, 0x90A7, 0xCBAB, 0x90AA, 0xA8B8, 0x90AF, 0xCDD5, 0x90B0, 0xCDD7, 0x90B1, 0xAAF4, 0x90B2, 0xCDD3, + 0x90B3, 0xCDD6, 0x90B4, 0xCDD4, 0x90B5, 0xAAF2, 0x90B6, 0xAAF5, 0x90B8, 0xAAF3, 0x90BD, 0xD0B8, 0x90BE, 0xD0BC, 0x90BF, 0xD0B9, + 0x90C1, 0xADA7, 0x90C3, 0xADA8, 0x90C5, 0xD0BB, 0x90C7, 0xD0BD, 0x90C8, 0xD0BF, 0x90CA, 0xADA5, 0x90CB, 0xD0BE, 0x90CE, 0xADA6, + 0x90D4, 0xD7EE, 0x90D5, 0xD0BA, 0x90D6, 0xD3F2, 0x90D7, 0xD3FB, 0x90D8, 0xD3F9, 0x90D9, 0xD3F4, 0x90DA, 0xD3F5, 0x90DB, 0xD3FA, + 0x90DC, 0xD3FC, 0x90DD, 0xB071, 0x90DF, 0xD3F7, 0x90E0, 0xD3F3, 0x90E1, 0xB070, 0x90E2, 0xB072, 0x90E3, 0xD3F6, 0x90E4, 0xD3FD, + 0x90E5, 0xD3F8, 0x90E8, 0xB3A1, 0x90E9, 0xD7F1, 0x90EA, 0xD7E9, 0x90EB, 0xD7EF, 0x90EC, 0xD7F0, 0x90ED, 0xB3A2, 0x90EF, 0xD7E8, + 0x90F0, 0xD7EA, 0x90F1, 0xD0B7, 0x90F2, 0xD7EC, 0x90F3, 0xD7ED, 0x90F4, 0xD7EB, 0x90F5, 0xB66C, 0x90F9, 0xDC56, 0x90FA, 0xEBD4, + 0x90FB, 0xDC57, 0x90FC, 0xDC54, 0x90FD, 0xB3A3, 0x90FE, 0xB66E, 0x90FF, 0xDC53, 0x9100, 0xDC59, 0x9101, 0xDC58, 0x9102, 0xB66B, + 0x9103, 0xDC5C, 0x9104, 0xDC52, 0x9105, 0xDC5B, 0x9106, 0xDC50, 0x9107, 0xDC5A, 0x9108, 0xDC55, 0x9109, 0xB66D, 0x910B, 0xE0AA, + 0x910D, 0xE0A5, 0x910E, 0xE0AB, 0x910F, 0xE0A6, 0x9110, 0xE0A4, 0x9111, 0xE0A7, 0x9112, 0xB951, 0x9114, 0xE0A9, 0x9116, 0xE0A8, + 0x9117, 0xB952, 0x9118, 0xBBC1, 0x9119, 0xBBC0, 0x911A, 0xE46E, 0x911B, 0xE471, 0x911C, 0xE469, 0x911D, 0xE46D, 0x911E, 0xBBC2, + 0x911F, 0xE46C, 0x9120, 0xE46A, 0x9121, 0xE470, 0x9122, 0xE46B, 0x9123, 0xE468, 0x9124, 0xE46F, 0x9126, 0xE859, 0x9127, 0xBE48, + 0x9128, 0xF14A, 0x9129, 0xE856, 0x912A, 0xE857, 0x912B, 0xE855, 0x912C, 0xDC51, 0x912D, 0xBE47, 0x912E, 0xE85A, 0x912F, 0xE854, + 0x9130, 0xBE46, 0x9131, 0xBE49, 0x9132, 0xE858, 0x9133, 0xEBD5, 0x9134, 0xBFF3, 0x9135, 0xEBD6, 0x9136, 0xEBD7, 0x9138, 0xEEC4, + 0x9139, 0xC1DD, 0x913A, 0xF14B, 0x913B, 0xF14C, 0x913E, 0xF14D, 0x913F, 0xF35D, 0x9140, 0xF35C, 0x9141, 0xF4E2, 0x9143, 0xF4E1, + 0x9144, 0xF65B, 0x9145, 0xF65C, 0x9146, 0xF65A, 0x9147, 0xF766, 0x9148, 0xC5B0, 0x9149, 0xA8BB, 0x914A, 0xADAA, 0x914B, 0xADA9, + 0x914C, 0xB075, 0x914D, 0xB074, 0x914E, 0xD440, 0x914F, 0xD441, 0x9150, 0xD3FE, 0x9152, 0xB073, 0x9153, 0xD7F5, 0x9155, 0xD7F6, + 0x9156, 0xD7F2, 0x9157, 0xB3A4, 0x9158, 0xD7F3, 0x915A, 0xD7F4, 0x915F, 0xDC5F, 0x9160, 0xDC61, 0x9161, 0xDC5D, 0x9162, 0xDC60, + 0x9163, 0xB66F, 0x9164, 0xDC5E, 0x9165, 0xB670, 0x9168, 0xDD73, 0x9169, 0xB955, 0x916A, 0xB954, 0x916C, 0xB953, 0x916E, 0xE0AC, + 0x916F, 0xE0AD, 0x9172, 0xE473, 0x9173, 0xE475, 0x9174, 0xBBC6, 0x9175, 0xBBC3, 0x9177, 0xBBC5, 0x9178, 0xBBC4, 0x9179, 0xE474, + 0x917A, 0xE472, 0x9180, 0xE861, 0x9181, 0xE85E, 0x9182, 0xE85F, 0x9183, 0xBE4D, 0x9184, 0xE860, 0x9185, 0xE85B, 0x9186, 0xE85C, + 0x9187, 0xBE4A, 0x9189, 0xBE4B, 0x918A, 0xE85D, 0x918B, 0xBE4C, 0x918D, 0xEBDB, 0x918F, 0xEBDC, 0x9190, 0xEBD9, 0x9191, 0xEBDA, + 0x9192, 0xBFF4, 0x9193, 0xEBD8, 0x9199, 0xEEC8, 0x919A, 0xEEC5, 0x919B, 0xEEC7, 0x919C, 0xC1E0, 0x919D, 0xEECB, 0x919E, 0xC1DF, + 0x919F, 0xEEC9, 0x91A0, 0xEECC, 0x91A1, 0xEECA, 0x91A2, 0xEEC6, 0x91A3, 0xC1DE, 0x91A5, 0xF14F, 0x91A7, 0xF150, 0x91A8, 0xF14E, + 0x91AA, 0xF152, 0x91AB, 0xC2E5, 0x91AC, 0xC2E6, 0x91AD, 0xF35F, 0x91AE, 0xC3E7, 0x91AF, 0xF151, 0x91B0, 0xF35E, 0x91B1, 0xC3E6, + 0x91B2, 0xF4E5, 0x91B3, 0xF4E6, 0x91B4, 0xC4BF, 0x91B5, 0xF4E4, 0x91B7, 0xF4E3, 0x91B9, 0xF65D, 0x91BA, 0xC548, 0x91BC, 0xF849, + 0x91BD, 0xF8C8, 0x91BE, 0xF8C7, 0x91C0, 0xC643, 0x91C1, 0xC65D, 0x91C2, 0xF8C9, 0x91C3, 0xF971, 0x91C5, 0xC66F, 0x91C6, 0xA8BC, + 0x91C7, 0xAAF6, 0x91C9, 0xB956, 0x91CB, 0xC4C0, 0x91CC, 0xA8BD, 0x91CD, 0xADAB, 0x91CE, 0xB3A5, 0x91CF, 0xB671, 0x91D0, 0xC2E7, + 0x91D1, 0xAAF7, 0x91D3, 0xD0C1, 0x91D4, 0xD0C0, 0x91D5, 0xD442, 0x91D7, 0xB078, 0x91D8, 0xB076, 0x91D9, 0xB07A, 0x91DA, 0xD444, + 0x91DC, 0xB079, 0x91DD, 0xB077, 0x91E2, 0xD443, 0x91E3, 0xB3A8, 0x91E4, 0xD7FC, 0x91E6, 0xB3A7, 0x91E7, 0xB3A9, 0x91E8, 0xD842, + 0x91E9, 0xB3AB, 0x91EA, 0xD7FE, 0x91EB, 0xD840, 0x91EC, 0xD7F7, 0x91ED, 0xB3AA, 0x91EE, 0xD843, 0x91F1, 0xD7F9, 0x91F3, 0xD7FA, + 0x91F4, 0xD7F8, 0x91F5, 0xB3A6, 0x91F7, 0xD841, 0x91F8, 0xD7FB, 0x91F9, 0xD7FD, 0x91FD, 0xDC6D, 0x91FF, 0xDC6C, 0x9200, 0xDC6A, + 0x9201, 0xDC62, 0x9202, 0xDC71, 0x9203, 0xDC65, 0x9204, 0xDC6F, 0x9205, 0xDC76, 0x9206, 0xDC6E, 0x9207, 0xB679, 0x9209, 0xB675, + 0x920A, 0xDC63, 0x920C, 0xDC69, 0x920D, 0xB677, 0x920F, 0xDC68, 0x9210, 0xB678, 0x9211, 0xB67A, 0x9212, 0xDC6B, 0x9214, 0xB672, + 0x9215, 0xB673, 0x9216, 0xDC77, 0x9217, 0xDC75, 0x9219, 0xDC74, 0x921A, 0xDC66, 0x921C, 0xDC72, 0x921E, 0xB676, 0x9223, 0xB674, + 0x9224, 0xDC73, 0x9225, 0xDC64, 0x9226, 0xDC67, 0x9227, 0xDC70, 0x922D, 0xE4BA, 0x922E, 0xE0B7, 0x9230, 0xE0B0, 0x9231, 0xE0C3, + 0x9232, 0xE0CC, 0x9233, 0xE0B3, 0x9234, 0xB961, 0x9236, 0xE0C0, 0x9237, 0xB957, 0x9238, 0xB959, 0x9239, 0xB965, 0x923A, 0xE0B1, + 0x923D, 0xB95A, 0x923E, 0xB95C, 0x923F, 0xB966, 0x9240, 0xB95B, 0x9245, 0xB964, 0x9246, 0xE0B9, 0x9248, 0xE0AE, 0x9249, 0xB962, + 0x924A, 0xE0B8, 0x924B, 0xB95E, 0x924C, 0xE0CA, 0x924D, 0xB963, 0x924E, 0xE0C8, 0x924F, 0xE0BC, 0x9250, 0xE0C6, 0x9251, 0xB960, + 0x9252, 0xE0AF, 0x9253, 0xE0C9, 0x9254, 0xE0C4, 0x9256, 0xE0CB, 0x9257, 0xB958, 0x925A, 0xB967, 0x925B, 0xB95D, 0x925E, 0xE0B5, + 0x9260, 0xE0BD, 0x9261, 0xE0C1, 0x9263, 0xE0C5, 0x9264, 0xB95F, 0x9265, 0xE0B4, 0x9266, 0xE0B2, 0x9267, 0xE0BE, 0x926C, 0xE0BB, + 0x926D, 0xE0BA, 0x926F, 0xE0BF, 0x9270, 0xE0C2, 0x9272, 0xE0C7, 0x9276, 0xE478, 0x9278, 0xBBC7, 0x9279, 0xE4A4, 0x927A, 0xE47A, + 0x927B, 0xBBCC, 0x927C, 0xBBD0, 0x927D, 0xE4AD, 0x927E, 0xE4B5, 0x927F, 0xE4A6, 0x9280, 0xBBC8, 0x9282, 0xE4AA, 0x9283, 0xE0B6, + 0x9285, 0xBBC9, 0x9286, 0xE4B1, 0x9287, 0xE4B6, 0x9288, 0xE4AE, 0x928A, 0xE4B0, 0x928B, 0xE4B9, 0x928C, 0xE4B2, 0x928D, 0xE47E, + 0x928E, 0xE4A9, 0x9291, 0xBBD1, 0x9293, 0xBBCD, 0x9294, 0xE47C, 0x9295, 0xE4AB, 0x9296, 0xBBCB, 0x9297, 0xE4A5, 0x9298, 0xBBCA, + 0x9299, 0xE4B3, 0x929A, 0xE4A2, 0x929B, 0xE479, 0x929C, 0xBBCE, 0x929D, 0xE4B8, 0x92A0, 0xE47B, 0x92A1, 0xE4AF, 0x92A2, 0xE4AC, + 0x92A3, 0xE4A7, 0x92A4, 0xE477, 0x92A5, 0xE476, 0x92A6, 0xE4A1, 0x92A7, 0xE4B4, 0x92A8, 0xBBCF, 0x92A9, 0xE4B7, 0x92AA, 0xE47D, + 0x92AB, 0xE4A3, 0x92AC, 0xBE52, 0x92B2, 0xBE5A, 0x92B3, 0xBE55, 0x92B4, 0xE8A4, 0x92B5, 0xE8A1, 0x92B6, 0xE867, 0x92B7, 0xBE50, + 0x92B9, 0xF9D7, 0x92BB, 0xBE4F, 0x92BC, 0xBE56, 0x92C0, 0xE865, 0x92C1, 0xBE54, 0x92C2, 0xE871, 0x92C3, 0xE863, 0x92C4, 0xE864, + 0x92C5, 0xBE4E, 0x92C6, 0xE8A3, 0x92C7, 0xBE58, 0x92C8, 0xE874, 0x92C9, 0xE879, 0x92CA, 0xE873, 0x92CB, 0xEBEE, 0x92CC, 0xE86F, + 0x92CD, 0xE877, 0x92CE, 0xE875, 0x92CF, 0xE868, 0x92D0, 0xE862, 0x92D1, 0xE87D, 0x92D2, 0xBE57, 0x92D3, 0xE87E, 0x92D5, 0xE878, + 0x92D7, 0xE86D, 0x92D8, 0xE86B, 0x92D9, 0xE866, 0x92DD, 0xE86E, 0x92DE, 0xE87B, 0x92DF, 0xE86A, 0x92E0, 0xE87A, 0x92E1, 0xE8A2, + 0x92E4, 0xBE53, 0x92E6, 0xE876, 0x92E7, 0xE87C, 0x92E8, 0xE872, 0x92E9, 0xE86C, 0x92EA, 0xBE51, 0x92EE, 0xE4A8, 0x92EF, 0xE870, + 0x92F0, 0xBE59, 0x92F1, 0xE869, 0x92F7, 0xEBF4, 0x92F8, 0xBFF7, 0x92F9, 0xEBF3, 0x92FA, 0xEBF0, 0x92FB, 0xEC44, 0x92FC, 0xBFFB, + 0x92FE, 0xEC41, 0x92FF, 0xEBF8, 0x9300, 0xEC43, 0x9301, 0xEBE9, 0x9302, 0xEBF6, 0x9304, 0xBFFD, 0x9306, 0xEBE1, 0x9308, 0xEBDF, + 0x9309, 0xEC42, 0x930B, 0xEC40, 0x930C, 0xEBFE, 0x930D, 0xEBED, 0x930E, 0xEBEC, 0x930F, 0xEBE2, 0x9310, 0xC040, 0x9312, 0xEBE8, + 0x9313, 0xEBF2, 0x9314, 0xEBFD, 0x9315, 0xC043, 0x9316, 0xEC45, 0x9318, 0xC1E8, 0x9319, 0xC045, 0x931A, 0xBFFE, 0x931B, 0xEBE6, + 0x931D, 0xEBEF, 0x931E, 0xEBDE, 0x931F, 0xEBE0, 0x9320, 0xBFF5, 0x9321, 0xC042, 0x9322, 0xBFFA, 0x9323, 0xEBE7, 0x9324, 0xEBF7, + 0x9325, 0xEBF1, 0x9326, 0xC041, 0x9327, 0xEBDD, 0x9328, 0xC1E3, 0x9329, 0xEBF9, 0x932A, 0xEBFC, 0x932B, 0xBFFC, 0x932D, 0xEBEB, + 0x932E, 0xC044, 0x932F, 0xBFF9, 0x9333, 0xBFF8, 0x9334, 0xEBF5, 0x9335, 0xEBFB, 0x9336, 0xBFF6, 0x9338, 0xEBE4, 0x9339, 0xEBFA, + 0x933C, 0xEBE5, 0x9346, 0xEBEA, 0x9347, 0xEED2, 0x9349, 0xEED7, 0x934A, 0xC1E5, 0x934B, 0xC1E7, 0x934C, 0xEEDD, 0x934D, 0xC1E1, + 0x934E, 0xEEEC, 0x934F, 0xEEE3, 0x9350, 0xEED8, 0x9351, 0xEED9, 0x9352, 0xEEE2, 0x9354, 0xC1EE, 0x9355, 0xEEE1, 0x9356, 0xEED1, + 0x9357, 0xEEE0, 0x9358, 0xEED4, 0x9359, 0xEEED, 0x935A, 0xC1ED, 0x935B, 0xC1EB, 0x935C, 0xEED5, 0x935E, 0xEEE8, 0x9360, 0xEEDA, + 0x9361, 0xEEE7, 0x9363, 0xEEE9, 0x9364, 0xEED0, 0x9365, 0xC1E6, 0x9367, 0xEEEA, 0x936A, 0xEEDE, 0x936C, 0xC1EA, 0x936D, 0xEEDB, + 0x9370, 0xC1EC, 0x9371, 0xEEE4, 0x9375, 0xC1E4, 0x9376, 0xEED6, 0x9377, 0xEEE5, 0x9379, 0xEEDF, 0x937A, 0xEBE3, 0x937B, 0xEEE6, + 0x937C, 0xEED3, 0x937E, 0xC1E9, 0x9380, 0xEEEB, 0x9382, 0xC1E2, 0x9383, 0xEECE, 0x9388, 0xF160, 0x9389, 0xF159, 0x938A, 0xC2E9, + 0x938C, 0xF154, 0x938D, 0xF163, 0x938E, 0xF15B, 0x938F, 0xEEDC, 0x9391, 0xF165, 0x9392, 0xF155, 0x9394, 0xC2E8, 0x9395, 0xF15F, + 0x9396, 0xC2EA, 0x9397, 0xC2F2, 0x9398, 0xC2F0, 0x9399, 0xF161, 0x939A, 0xC2F1, 0x939B, 0xF157, 0x939D, 0xF158, 0x939E, 0xF15D, + 0x939F, 0xF162, 0x93A1, 0xEECD, 0x93A2, 0xC2EB, 0x93A3, 0xF16A, 0x93A4, 0xF167, 0x93A5, 0xF16B, 0x93A6, 0xF15E, 0x93A7, 0xF15A, + 0x93A8, 0xF168, 0x93A9, 0xF36A, 0x93AA, 0xF15C, 0x93AC, 0xC2EE, 0x93AE, 0xC2ED, 0x93AF, 0xEECF, 0x93B0, 0xC2EF, 0x93B1, 0xF164, + 0x93B2, 0xF166, 0x93B3, 0xC2EC, 0x93B4, 0xF169, 0x93B5, 0xF153, 0x93B7, 0xF156, 0x93C0, 0xF373, 0x93C2, 0xF363, 0x93C3, 0xC3EB, + 0x93C4, 0xF371, 0x93C7, 0xF361, 0x93C8, 0xC3EC, 0x93CA, 0xF36C, 0x93CC, 0xF368, 0x93CD, 0xC3F1, 0x93CE, 0xF372, 0x93CF, 0xF362, + 0x93D0, 0xF365, 0x93D1, 0xC3E9, 0x93D2, 0xF374, 0x93D4, 0xF36D, 0x93D5, 0xF370, 0x93D6, 0xC3EF, 0x93D7, 0xC3F4, 0x93D8, 0xC3F2, + 0x93D9, 0xF369, 0x93DA, 0xF364, 0x93DC, 0xC3ED, 0x93DD, 0xC3EE, 0x93DE, 0xF360, 0x93DF, 0xC3EA, 0x93E1, 0xC3E8, 0x93E2, 0xC3F0, + 0x93E3, 0xF36F, 0x93E4, 0xC3F3, 0x93E6, 0xF36B, 0x93E7, 0xF375, 0x93E8, 0xC3F5, 0x93EC, 0xF367, 0x93EE, 0xF36E, 0x93F5, 0xF4F3, + 0x93F6, 0xF542, 0x93F7, 0xF4F5, 0x93F8, 0xF4FC, 0x93F9, 0xF366, 0x93FA, 0xF4FA, 0x93FB, 0xF4E9, 0x93FC, 0xF540, 0x93FD, 0xC4C3, + 0x93FE, 0xF4ED, 0x93FF, 0xF4FE, 0x9400, 0xF4F4, 0x9403, 0xC4C2, 0x9406, 0xF544, 0x9407, 0xF4F6, 0x9409, 0xF4FB, 0x940A, 0xF4FD, + 0x940B, 0xF4E7, 0x940C, 0xF541, 0x940D, 0xF4F2, 0x940E, 0xF4F7, 0x940F, 0xF4EB, 0x9410, 0xF4EF, 0x9411, 0xF543, 0x9412, 0xF4F9, + 0x9413, 0xF4E8, 0x9414, 0xF4EC, 0x9415, 0xF4EE, 0x9416, 0xF4F8, 0x9418, 0xC4C1, 0x9419, 0xF4F1, 0x9420, 0xF4EA, 0x9428, 0xF4F0, + 0x9429, 0xF661, 0x942A, 0xF666, 0x942B, 0xC54F, 0x942C, 0xF668, 0x942E, 0xC549, 0x9430, 0xF664, 0x9431, 0xF66A, 0x9432, 0xC54E, + 0x9433, 0xC54A, 0x9435, 0xC54B, 0x9436, 0xF660, 0x9437, 0xF667, 0x9438, 0xC54D, 0x9439, 0xF665, 0x943A, 0xC54C, 0x943B, 0xF65F, + 0x943C, 0xF663, 0x943D, 0xF662, 0x943F, 0xF65E, 0x9440, 0xF669, 0x9444, 0xC5B1, 0x9445, 0xF76D, 0x9446, 0xF770, 0x9447, 0xF76C, + 0x9448, 0xF76E, 0x9449, 0xF76F, 0x944A, 0xF769, 0x944B, 0xF76A, 0x944C, 0xF767, 0x944F, 0xF76B, 0x9450, 0xF768, 0x9451, 0xC5B2, + 0x9452, 0xC5B3, 0x9455, 0xF84B, 0x9457, 0xF84D, 0x945D, 0xF84C, 0x945E, 0xF84E, 0x9460, 0xC5E0, 0x9462, 0xF84A, 0x9463, 0xC5DF, + 0x9464, 0xC5E1, 0x9468, 0xF8CB, 0x9469, 0xF8CC, 0x946A, 0xC644, 0x946B, 0xF8CA, 0x946D, 0xF953, 0x946E, 0xF952, 0x946F, 0xF954, + 0x9470, 0xC65F, 0x9471, 0xF955, 0x9472, 0xC65E, 0x9473, 0xF956, 0x9474, 0xF972, 0x9475, 0xF975, 0x9476, 0xF974, 0x9477, 0xC668, + 0x9478, 0xF973, 0x947C, 0xC672, 0x947D, 0xC670, 0x947E, 0xC671, 0x947F, 0xC677, 0x9480, 0xF9C0, 0x9481, 0xF9C1, 0x9482, 0xF9BF, + 0x9483, 0xF9C9, 0x9577, 0xAAF8, 0x957A, 0xD844, 0x957B, 0xDC78, 0x957C, 0xE8A5, 0x957D, 0xF376, 0x9580, 0xAAF9, 0x9582, 0xADAC, + 0x9583, 0xB07B, 0x9586, 0xD845, 0x9588, 0xD846, 0x9589, 0xB3AC, 0x958B, 0xB67D, 0x958C, 0xDC7A, 0x958D, 0xDC79, 0x958E, 0xB6A3, + 0x958F, 0xB67C, 0x9590, 0xDC7B, 0x9591, 0xB67E, 0x9592, 0xB6A2, 0x9593, 0xB6A1, 0x9594, 0xB67B, 0x9598, 0xB968, 0x959B, 0xE0D0, + 0x959C, 0xE0CE, 0x959E, 0xE0CF, 0x959F, 0xE0CD, 0x95A1, 0xBBD2, 0x95A3, 0xBBD5, 0x95A4, 0xBBD7, 0x95A5, 0xBBD6, 0x95A8, 0xBBD3, + 0x95A9, 0xBBD4, 0x95AB, 0xE8A7, 0x95AC, 0xE8A6, 0x95AD, 0xBE5B, 0x95AE, 0xE8A8, 0x95B0, 0xE8A9, 0x95B1, 0xBE5C, 0x95B5, 0xEC4D, + 0x95B6, 0xEC4B, 0x95B7, 0xEEF3, 0x95B9, 0xEC49, 0x95BA, 0xEC4A, 0x95BB, 0xC046, 0x95BC, 0xEC46, 0x95BD, 0xEC4E, 0x95BE, 0xEC48, + 0x95BF, 0xEC4C, 0x95C0, 0xEEEF, 0x95C3, 0xEEF1, 0x95C5, 0xEEF2, 0x95C6, 0xC1F3, 0x95C7, 0xEEEE, 0x95C8, 0xC1F2, 0x95C9, 0xEEF0, + 0x95CA, 0xC1EF, 0x95CB, 0xC1F0, 0x95CC, 0xC1F1, 0x95CD, 0xEC47, 0x95D0, 0xC2F5, 0x95D1, 0xF16E, 0x95D2, 0xF16C, 0x95D3, 0xF16D, + 0x95D4, 0xC2F3, 0x95D5, 0xC2F6, 0x95D6, 0xC2F4, 0x95DA, 0xF377, 0x95DB, 0xF378, 0x95DC, 0xC3F6, 0x95DE, 0xF545, 0x95DF, 0xF547, + 0x95E0, 0xF546, 0x95E1, 0xC4C4, 0x95E2, 0xC550, 0x95E3, 0xF66D, 0x95E4, 0xF66C, 0x95E5, 0xF66B, 0x961C, 0xAAFA, 0x961E, 0xC9AA, + 0x9620, 0xCA58, 0x9621, 0xA6E9, 0x9622, 0xCA56, 0x9623, 0xCA59, 0x9624, 0xCA57, 0x9628, 0xCBAE, 0x962A, 0xA8C1, 0x962C, 0xA8C2, + 0x962D, 0xCBB0, 0x962E, 0xA8BF, 0x962F, 0xCBAF, 0x9630, 0xCBAD, 0x9631, 0xA8C0, 0x9632, 0xA8BE, 0x9639, 0xCDD8, 0x963A, 0xCDDB, + 0x963B, 0xAAFD, 0x963C, 0xCDDA, 0x963D, 0xCDD9, 0x963F, 0xAAFC, 0x9640, 0xAAFB, 0x9642, 0xAB40, 0x9643, 0xCDDC, 0x9644, 0xAAFE, + 0x964A, 0xD0C6, 0x964B, 0xADAE, 0x964C, 0xADAF, 0x964D, 0xADB0, 0x964E, 0xD0C7, 0x964F, 0xD0C3, 0x9650, 0xADAD, 0x9651, 0xD0C4, + 0x9653, 0xD0C5, 0x9654, 0xD0C2, 0x9658, 0xB0A4, 0x965B, 0xB0A1, 0x965C, 0xD445, 0x965D, 0xB0A2, 0x965E, 0xB0A5, 0x965F, 0xD446, + 0x9661, 0xB07E, 0x9662, 0xB07C, 0x9663, 0xB07D, 0x9664, 0xB0A3, 0x966A, 0xB3AD, 0x966B, 0xD849, 0x966C, 0xB3B5, 0x966D, 0xD848, + 0x966F, 0xD84B, 0x9670, 0xB3B1, 0x9671, 0xD84A, 0x9672, 0xB6AB, 0x9673, 0xB3AF, 0x9674, 0xB3B2, 0x9675, 0xB3AE, 0x9676, 0xB3B3, + 0x9677, 0xB3B4, 0x9678, 0xB3B0, 0x967C, 0xD847, 0x967D, 0xB6A7, 0x967E, 0xDC7D, 0x9680, 0xDCA3, 0x9683, 0xDCA2, 0x9684, 0xB6AC, + 0x9685, 0xB6A8, 0x9686, 0xB6A9, 0x9687, 0xDC7C, 0x9688, 0xDC7E, 0x9689, 0xDCA1, 0x968A, 0xB6A4, 0x968B, 0xB6A6, 0x968D, 0xB6AA, + 0x968E, 0xB6A5, 0x9691, 0xE0D3, 0x9692, 0xE0D1, 0x9693, 0xE0D2, 0x9694, 0xB96A, 0x9695, 0xB96B, 0x9697, 0xE0D4, 0x9698, 0xB969, + 0x9699, 0xBBD8, 0x969B, 0xBBDA, 0x969C, 0xBBD9, 0x969E, 0xE4BB, 0x96A1, 0xE4BC, 0x96A2, 0xE8AB, 0x96A4, 0xE8AA, 0x96A7, 0xC047, + 0x96A8, 0xC048, 0x96A9, 0xEC4F, 0x96AA, 0xC049, 0x96AC, 0xEEF6, 0x96AE, 0xEEF4, 0x96B0, 0xEEF5, 0x96B1, 0xC1F4, 0x96B3, 0xF16F, + 0x96B4, 0xC3F7, 0x96B8, 0xC1F5, 0x96B9, 0xAB41, 0x96BB, 0xB0A6, 0x96BC, 0xD447, 0x96BF, 0xD84C, 0x96C0, 0xB3B6, 0x96C1, 0xB6AD, + 0x96C2, 0xDCA4, 0x96C3, 0xDCA6, 0x96C4, 0xB6AF, 0x96C5, 0xB6AE, 0x96C6, 0xB6B0, 0x96C7, 0xB6B1, 0x96C8, 0xDCA5, 0x96C9, 0xB96E, + 0x96CA, 0xB96F, 0x96CB, 0xB96D, 0x96CC, 0xBBDB, 0x96CD, 0xB96C, 0x96CE, 0xE0D5, 0x96D2, 0xBBDC, 0x96D3, 0xE8AC, 0x96D4, 0xEC50, + 0x96D5, 0xC04A, 0x96D6, 0xC1F6, 0x96D7, 0xF170, 0x96D8, 0xF174, 0x96D9, 0xC2F9, 0x96DA, 0xF171, 0x96DB, 0xC2FA, 0x96DC, 0xC2F8, + 0x96DD, 0xF175, 0x96DE, 0xC2FB, 0x96DF, 0xF173, 0x96E1, 0xF379, 0x96E2, 0xC2F7, 0x96E3, 0xC3F8, 0x96E5, 0xF8CD, 0x96E8, 0xAB42, + 0x96E9, 0xB3B8, 0x96EA, 0xB3B7, 0x96EF, 0xB6B2, 0x96F0, 0xDCA8, 0x96F1, 0xDCA7, 0x96F2, 0xB6B3, 0x96F5, 0xE0D9, 0x96F6, 0xB973, + 0x96F7, 0xB970, 0x96F8, 0xE0D8, 0x96F9, 0xB972, 0x96FA, 0xE0D6, 0x96FB, 0xB971, 0x96FD, 0xE0D7, 0x96FF, 0xE4BD, 0x9700, 0xBBDD, + 0x9702, 0xE8AF, 0x9704, 0xBE5D, 0x9705, 0xE8AD, 0x9706, 0xBE5E, 0x9707, 0xBE5F, 0x9708, 0xE8AE, 0x9709, 0xBE60, 0x970B, 0xEC51, + 0x970D, 0xC04E, 0x970E, 0xC04B, 0x970F, 0xC050, 0x9710, 0xEC53, 0x9711, 0xC04C, 0x9712, 0xEC52, 0x9713, 0xC04F, 0x9716, 0xC04D, + 0x9718, 0xEEF9, 0x9719, 0xEEFB, 0x971C, 0xC1F7, 0x971D, 0xEEFA, 0x971E, 0xC1F8, 0x971F, 0xEEF8, 0x9720, 0xEEF7, 0x9722, 0xF177, + 0x9723, 0xF176, 0x9724, 0xC2FC, 0x9725, 0xF178, 0x9726, 0xF37E, 0x9727, 0xC3FA, 0x9728, 0xF37D, 0x9729, 0xF37A, 0x972A, 0xC3F9, + 0x972B, 0xF37B, 0x972C, 0xF37C, 0x972E, 0xF548, 0x972F, 0xF549, 0x9730, 0xC4C5, 0x9732, 0xC553, 0x9735, 0xF66E, 0x9738, 0xC551, + 0x9739, 0xC552, 0x973A, 0xF66F, 0x973D, 0xC5B4, 0x973E, 0xC5B5, 0x973F, 0xF771, 0x9742, 0xC645, 0x9743, 0xF8CF, 0x9744, 0xC647, + 0x9746, 0xF8CE, 0x9747, 0xF8D0, 0x9748, 0xC646, 0x9749, 0xF957, 0x974B, 0xF9AD, 0x9752, 0xAB43, 0x9756, 0xB974, 0x9758, 0xE4BE, + 0x975A, 0xE8B0, 0x975B, 0xC051, 0x975C, 0xC052, 0x975E, 0xAB44, 0x9760, 0xBE61, 0x9761, 0xC3FB, 0x9762, 0xADB1, 0x9766, 0xC053, + 0x9768, 0xC5E2, 0x9769, 0xADB2, 0x976A, 0xD84D, 0x976C, 0xDCA9, 0x976E, 0xDCAB, 0x9770, 0xDCAA, 0x9772, 0xE0DD, 0x9773, 0xE0DA, + 0x9774, 0xB975, 0x9776, 0xB976, 0x9777, 0xE0DB, 0x9778, 0xE0DC, 0x977A, 0xE4C0, 0x977B, 0xE4C5, 0x977C, 0xBBDE, 0x977D, 0xE4BF, + 0x977E, 0xE4C1, 0x977F, 0xE4C8, 0x9780, 0xE4C3, 0x9781, 0xE4C7, 0x9782, 0xE4C4, 0x9783, 0xE4C2, 0x9784, 0xE4C6, 0x9785, 0xBBDF, + 0x9788, 0xE8B3, 0x978A, 0xE8B1, 0x978B, 0xBE63, 0x978D, 0xBE62, 0x978E, 0xE8B2, 0x978F, 0xBE64, 0x9794, 0xEC56, 0x9797, 0xEC55, + 0x9798, 0xC054, 0x9799, 0xEC54, 0x979A, 0xEEFC, 0x979C, 0xEEFE, 0x979D, 0xEF41, 0x979E, 0xEF40, 0x97A0, 0xC1F9, 0x97A1, 0xEEFD, + 0x97A2, 0xF1A1, 0x97A3, 0xC2FD, 0x97A4, 0xF17D, 0x97A5, 0xF1A2, 0x97A6, 0xC2FE, 0x97A8, 0xF17B, 0x97AA, 0xF17E, 0x97AB, 0xF17C, + 0x97AC, 0xF179, 0x97AD, 0xC340, 0x97AE, 0xF17A, 0x97B3, 0xF3A1, 0x97B6, 0xF3A3, 0x97B7, 0xF3A2, 0x97B9, 0xF54A, 0x97BB, 0xF54B, + 0x97BF, 0xF670, 0x97C1, 0xC5B7, 0x97C3, 0xC5B6, 0x97C4, 0xF84F, 0x97C5, 0xF850, 0x97C6, 0xC648, 0x97C7, 0xF8D1, 0x97C9, 0xC669, + 0x97CB, 0xADB3, 0x97CC, 0xB6B4, 0x97CD, 0xE4CA, 0x97CE, 0xE4C9, 0x97CF, 0xE8B5, 0x97D0, 0xE8B4, 0x97D3, 0xC1FA, 0x97D4, 0xEF43, + 0x97D5, 0xEF42, 0x97D6, 0xF1A5, 0x97D7, 0xF1A3, 0x97D8, 0xF1A6, 0x97D9, 0xF1A4, 0x97DC, 0xC3FC, 0x97DD, 0xF3A4, 0x97DE, 0xF3A5, + 0x97DF, 0xF3A6, 0x97E1, 0xF671, 0x97E3, 0xF772, 0x97E5, 0xF8D2, 0x97ED, 0xADB4, 0x97F0, 0xEC57, 0x97F1, 0xEF44, 0x97F3, 0xADB5, + 0x97F6, 0xBBE0, 0x97F8, 0xEC58, 0x97F9, 0xC341, 0x97FA, 0xF1A7, 0x97FB, 0xC3FD, 0x97FD, 0xF54C, 0x97FE, 0xF54D, 0x97FF, 0xC554, + 0x9800, 0xF851, 0x9801, 0xADB6, 0x9802, 0xB3BB, 0x9803, 0xB3BC, 0x9804, 0xD84E, 0x9805, 0xB6B5, 0x9806, 0xB6B6, 0x9807, 0xDCAC, + 0x9808, 0xB6B7, 0x980A, 0xB97A, 0x980C, 0xB97C, 0x980D, 0xE0DF, 0x980E, 0xE0E0, 0x980F, 0xE0DE, 0x9810, 0xB977, 0x9811, 0xB978, + 0x9812, 0xB97B, 0x9813, 0xB979, 0x9816, 0xE4CB, 0x9817, 0xBBE1, 0x9818, 0xBBE2, 0x981B, 0xE8BC, 0x981C, 0xBE67, 0x981D, 0xE8B7, + 0x981E, 0xE8B6, 0x9820, 0xE8BB, 0x9821, 0xBE65, 0x9824, 0xC05B, 0x9826, 0xE8B8, 0x9827, 0xE8BD, 0x9828, 0xE8BA, 0x9829, 0xE8B9, + 0x982B, 0xBE66, 0x982D, 0xC059, 0x982F, 0xEC5A, 0x9830, 0xC055, 0x9832, 0xEC5B, 0x9835, 0xEC59, 0x9837, 0xC058, 0x9838, 0xC056, + 0x9839, 0xC05A, 0x983B, 0xC057, 0x9841, 0xEF45, 0x9843, 0xEF4A, 0x9844, 0xEF46, 0x9845, 0xEF49, 0x9846, 0xC1FB, 0x9848, 0xEDD4, + 0x9849, 0xEF48, 0x984A, 0xEF47, 0x984C, 0xC344, 0x984D, 0xC342, 0x984E, 0xC345, 0x984F, 0xC343, 0x9850, 0xF1A8, 0x9851, 0xF1A9, + 0x9852, 0xF1AA, 0x9853, 0xC346, 0x9857, 0xF3AA, 0x9858, 0xC440, 0x9859, 0xF3A8, 0x985B, 0xC441, 0x985C, 0xF3A7, 0x985D, 0xF3A9, + 0x985E, 0xC3FE, 0x985F, 0xF551, 0x9860, 0xF54E, 0x9862, 0xF54F, 0x9863, 0xF550, 0x9864, 0xF672, 0x9865, 0xC556, 0x9867, 0xC555, + 0x9869, 0xF774, 0x986A, 0xF773, 0x986B, 0xC5B8, 0x986F, 0xC5E3, 0x9870, 0xC649, 0x9871, 0xC660, 0x9872, 0xF958, 0x9873, 0xF9AE, + 0x9874, 0xF9AF, 0x98A8, 0xADB7, 0x98A9, 0xDCAD, 0x98AC, 0xE0E1, 0x98AD, 0xE4CC, 0x98AE, 0xE4CD, 0x98AF, 0xBBE3, 0x98B1, 0xBBE4, + 0x98B2, 0xE8BE, 0x98B3, 0xBE68, 0x98B6, 0xC1FC, 0x98B8, 0xF1AB, 0x98BA, 0xC347, 0x98BB, 0xF3AD, 0x98BC, 0xC442, 0x98BD, 0xF3AC, + 0x98BE, 0xF3AE, 0x98BF, 0xF3AB, 0x98C0, 0xF675, 0x98C1, 0xF552, 0x98C2, 0xF553, 0x98C4, 0xC4C6, 0x98C6, 0xF674, 0x98C9, 0xF673, + 0x98CB, 0xF775, 0x98CC, 0xF9B0, 0x98DB, 0xADB8, 0x98DF, 0xADB9, 0x98E2, 0xB0A7, 0x98E3, 0xD448, 0x98E5, 0xD84F, 0x98E7, 0xB6B8, + 0x98E9, 0xB6BB, 0x98EA, 0xB6B9, 0x98EB, 0xDCAE, 0x98ED, 0xB6BD, 0x98EF, 0xB6BA, 0x98F2, 0xB6BC, 0x98F4, 0xB97E, 0x98F6, 0xE0E2, + 0x98F9, 0xE0E3, 0x98FA, 0xE8C0, 0x98FC, 0xB97D, 0x98FD, 0xB9A1, 0x98FE, 0xB9A2, 0x9900, 0xE4CF, 0x9902, 0xE4CE, 0x9903, 0xBBE5, + 0x9905, 0xBBE6, 0x9907, 0xE4D0, 0x9908, 0xE8BF, 0x9909, 0xBBE8, 0x990A, 0xBE69, 0x990C, 0xBBE7, 0x9910, 0xC05C, 0x9911, 0xE8C1, + 0x9912, 0xBE6B, 0x9913, 0xBE6A, 0x9914, 0xE8C2, 0x9915, 0xE8C5, 0x9916, 0xE8C3, 0x9917, 0xE8C4, 0x9918, 0xBE6C, 0x991A, 0xC061, + 0x991B, 0xC05F, 0x991E, 0xC05E, 0x991F, 0xEC5D, 0x9921, 0xC060, 0x9924, 0xEC5C, 0x9925, 0xEF4B, 0x9927, 0xEC5E, 0x9928, 0xC05D, + 0x9929, 0xEC5F, 0x992A, 0xEF4E, 0x992B, 0xEF4C, 0x992C, 0xEF4D, 0x992D, 0xEF52, 0x992E, 0xC34B, 0x992F, 0xEF51, 0x9930, 0xEF54, + 0x9931, 0xEF53, 0x9932, 0xEF50, 0x9933, 0xEF4F, 0x9935, 0xC1FD, 0x993A, 0xF1AE, 0x993C, 0xF1AD, 0x993D, 0xC34A, 0x993E, 0xC348, + 0x993F, 0xC349, 0x9941, 0xF1AC, 0x9943, 0xF3B1, 0x9945, 0xC443, 0x9947, 0xF3B0, 0x9948, 0xF3AF, 0x9949, 0xC444, 0x994B, 0xF558, + 0x994C, 0xF557, 0x994E, 0xF555, 0x9950, 0xF554, 0x9951, 0xC4C8, 0x9952, 0xC4C7, 0x9953, 0xF559, 0x9954, 0xF776, 0x9955, 0xC5B9, + 0x9956, 0xF677, 0x9957, 0xC557, 0x9958, 0xF676, 0x9959, 0xF556, 0x995B, 0xF777, 0x995C, 0xC5E4, 0x995E, 0xC661, 0x995F, 0xF959, + 0x9961, 0xF9B1, 0x9996, 0xADBA, 0x9997, 0xD850, 0x9998, 0xEF55, 0x9999, 0xADBB, 0x999C, 0xE4D2, 0x999D, 0xE4D1, 0x999E, 0xEC60, + 0x99A1, 0xEF57, 0x99A3, 0xEF56, 0x99A5, 0xC34C, 0x99A6, 0xF3B2, 0x99A7, 0xF3B3, 0x99A8, 0xC4C9, 0x99AB, 0xF9B2, 0x99AC, 0xB0A8, + 0x99AD, 0xB6BF, 0x99AE, 0xB6BE, 0x99AF, 0xE0E4, 0x99B0, 0xE0E6, 0x99B1, 0xB9A4, 0x99B2, 0xE0E5, 0x99B3, 0xB9A3, 0x99B4, 0xB9A5, + 0x99B5, 0xE0E7, 0x99B9, 0xE4D4, 0x99BA, 0xE4D6, 0x99BB, 0xE4D5, 0x99BD, 0xE4D8, 0x99C1, 0xBBE9, 0x99C2, 0xE4D7, 0x99C3, 0xE4D3, + 0x99C7, 0xE4D9, 0x99C9, 0xE8CC, 0x99CB, 0xE8CF, 0x99CC, 0xE8D1, 0x99CD, 0xE8C7, 0x99CE, 0xE8CB, 0x99CF, 0xE8C8, 0x99D0, 0xBE6E, + 0x99D1, 0xBE71, 0x99D2, 0xBE73, 0x99D3, 0xE8C9, 0x99D4, 0xE8CA, 0x99D5, 0xBE72, 0x99D6, 0xE8CD, 0x99D7, 0xE8D0, 0x99D8, 0xE8CE, + 0x99D9, 0xBE74, 0x99DB, 0xBE70, 0x99DC, 0xE8C6, 0x99DD, 0xBE6D, 0x99DF, 0xBE6F, 0x99E2, 0xC063, 0x99E3, 0xEC66, 0x99E4, 0xEC64, + 0x99E5, 0xEC63, 0x99E7, 0xEC69, 0x99E9, 0xEC68, 0x99EA, 0xEC67, 0x99EC, 0xEC62, 0x99ED, 0xC062, 0x99EE, 0xEC61, 0x99F0, 0xEC65, + 0x99F1, 0xC064, 0x99F4, 0xEF5A, 0x99F6, 0xEF5E, 0x99F7, 0xEF5B, 0x99F8, 0xEF5D, 0x99F9, 0xEF5C, 0x99FA, 0xEF59, 0x99FB, 0xEF5F, + 0x99FC, 0xEF62, 0x99FD, 0xEF60, 0x99FE, 0xEF61, 0x99FF, 0xC240, 0x9A01, 0xC1FE, 0x9A02, 0xEF58, 0x9A03, 0xEF63, 0x9A04, 0xF1B3, + 0x9A05, 0xF1B6, 0x9A06, 0xF1B8, 0x9A07, 0xF1B7, 0x9A09, 0xF1B1, 0x9A0A, 0xF1B5, 0x9A0B, 0xF1B0, 0x9A0D, 0xF1B2, 0x9A0E, 0xC34D, + 0x9A0F, 0xF1AF, 0x9A11, 0xF1B4, 0x9A14, 0xF3C0, 0x9A15, 0xF3B5, 0x9A16, 0xC445, 0x9A19, 0xC446, 0x9A1A, 0xF3B4, 0x9A1B, 0xF3B9, + 0x9A1C, 0xF3BF, 0x9A1D, 0xF3B7, 0x9A1E, 0xF3BE, 0x9A20, 0xF3BB, 0x9A22, 0xF3BA, 0x9A23, 0xF3BD, 0x9A24, 0xF3B8, 0x9A25, 0xF3B6, + 0x9A27, 0xF3BC, 0x9A29, 0xF560, 0x9A2A, 0xF55E, 0x9A2B, 0xC4CA, 0x9A2C, 0xF55D, 0x9A2D, 0xF563, 0x9A2E, 0xF561, 0x9A30, 0xC4CB, + 0x9A31, 0xF55C, 0x9A32, 0xF55A, 0x9A34, 0xF55B, 0x9A35, 0xC4CD, 0x9A36, 0xF55F, 0x9A37, 0xC4CC, 0x9A38, 0xF562, 0x9A39, 0xF678, + 0x9A3A, 0xF67E, 0x9A3D, 0xF679, 0x9A3E, 0xC55B, 0x9A3F, 0xF6A1, 0x9A40, 0xC55A, 0x9A41, 0xF67D, 0x9A42, 0xF67C, 0x9A43, 0xC559, + 0x9A44, 0xF67B, 0x9A45, 0xC558, 0x9A46, 0xF67A, 0x9A48, 0xF77D, 0x9A49, 0xF7A1, 0x9A4A, 0xF77E, 0x9A4C, 0xF77B, 0x9A4D, 0xC5BB, + 0x9A4E, 0xF778, 0x9A4F, 0xF77C, 0x9A50, 0xF7A3, 0x9A52, 0xF7A2, 0x9A53, 0xF779, 0x9A54, 0xF77A, 0x9A55, 0xC5BA, 0x9A56, 0xF852, + 0x9A57, 0xC5E7, 0x9A59, 0xF853, 0x9A5A, 0xC5E5, 0x9A5B, 0xC5E6, 0x9A5E, 0xF8D3, 0x9A5F, 0xC64A, 0x9A60, 0xF976, 0x9A62, 0xC66A, + 0x9A64, 0xF9B3, 0x9A65, 0xC66B, 0x9A66, 0xF9B4, 0x9A67, 0xF9B5, 0x9A68, 0xF9C3, 0x9A69, 0xF9C2, 0x9A6A, 0xC67A, 0x9A6B, 0xF9CD, + 0x9AA8, 0xB0A9, 0x9AAB, 0xE0E9, 0x9AAD, 0xE0E8, 0x9AAF, 0xBBEA, 0x9AB0, 0xBBEB, 0x9AB1, 0xE4DA, 0x9AB3, 0xE8D2, 0x9AB4, 0xEC6C, + 0x9AB7, 0xBE75, 0x9AB8, 0xC065, 0x9AB9, 0xEC6A, 0x9ABB, 0xEC6D, 0x9ABC, 0xC066, 0x9ABE, 0xEF64, 0x9ABF, 0xEC6B, 0x9AC0, 0xF1B9, + 0x9AC1, 0xC34E, 0x9AC2, 0xF3C1, 0x9AC6, 0xF566, 0x9AC7, 0xF564, 0x9ACA, 0xF565, 0x9ACD, 0xF6A2, 0x9ACF, 0xC55C, 0x9AD0, 0xF7A4, + 0x9AD1, 0xC5EA, 0x9AD2, 0xC5BC, 0x9AD3, 0xC5E8, 0x9AD4, 0xC5E9, 0x9AD5, 0xF8D4, 0x9AD6, 0xC662, 0x9AD8, 0xB0AA, 0x9ADC, 0xF1BA, + 0x9ADF, 0xD449, 0x9AE1, 0xB9A6, 0x9AE3, 0xE4DB, 0x9AE6, 0xBBEC, 0x9AE7, 0xE4DC, 0x9AEB, 0xE8D4, 0x9AEC, 0xE8D3, 0x9AED, 0xC068, + 0x9AEE, 0xBE76, 0x9AEF, 0xBE77, 0x9AF1, 0xE8D7, 0x9AF2, 0xE8D6, 0x9AF3, 0xE8D5, 0x9AF6, 0xEC6E, 0x9AF7, 0xEC71, 0x9AF9, 0xEC70, + 0x9AFA, 0xEC6F, 0x9AFB, 0xC067, 0x9AFC, 0xEF68, 0x9AFD, 0xEF66, 0x9AFE, 0xEF65, 0x9B01, 0xEF67, 0x9B03, 0xC34F, 0x9B04, 0xF1BC, + 0x9B05, 0xF1BD, 0x9B06, 0xC350, 0x9B08, 0xF1BB, 0x9B0A, 0xF3C3, 0x9B0B, 0xF3C2, 0x9B0C, 0xF3C5, 0x9B0D, 0xC447, 0x9B0E, 0xF3C4, + 0x9B10, 0xF567, 0x9B11, 0xF569, 0x9B12, 0xF568, 0x9B15, 0xF6A3, 0x9B16, 0xF6A6, 0x9B17, 0xF6A4, 0x9B18, 0xF6A5, 0x9B19, 0xF7A5, + 0x9B1A, 0xC5BD, 0x9B1E, 0xF854, 0x9B1F, 0xF855, 0x9B20, 0xF856, 0x9B22, 0xC64B, 0x9B23, 0xC663, 0x9B24, 0xF9B6, 0x9B25, 0xB0AB, + 0x9B27, 0xBE78, 0x9B28, 0xC069, 0x9B29, 0xF1BE, 0x9B2B, 0xF7A6, 0x9B2E, 0xF9C4, 0x9B2F, 0xD44A, 0x9B31, 0xC67B, 0x9B32, 0xB0AC, + 0x9B33, 0xEC72, 0x9B35, 0xF1BF, 0x9B37, 0xF3C6, 0x9B3A, 0xF6A7, 0x9B3B, 0xF7A7, 0x9B3C, 0xB0AD, 0x9B3E, 0xE4DD, 0x9B3F, 0xE4DE, + 0x9B41, 0xBBED, 0x9B42, 0xBBEE, 0x9B43, 0xE8D9, 0x9B44, 0xBE7A, 0x9B45, 0xBE79, 0x9B46, 0xE8D8, 0x9B48, 0xEF69, 0x9B4A, 0xF1C0, + 0x9B4B, 0xF1C2, 0x9B4C, 0xF1C1, 0x9B4D, 0xC353, 0x9B4E, 0xC352, 0x9B4F, 0xC351, 0x9B51, 0xC55E, 0x9B52, 0xF6A8, 0x9B54, 0xC55D, + 0x9B55, 0xF7A9, 0x9B56, 0xF7A8, 0x9B58, 0xC64C, 0x9B59, 0xF8D5, 0x9B5A, 0xB3BD, 0x9B5B, 0xE0EA, 0x9B5F, 0xE4E1, 0x9B60, 0xE4DF, + 0x9B61, 0xE4E0, 0x9B64, 0xE8E2, 0x9B66, 0xE8DD, 0x9B67, 0xE8DA, 0x9B68, 0xE8E1, 0x9B6C, 0xE8E3, 0x9B6F, 0xBE7C, 0x9B70, 0xE8E0, + 0x9B71, 0xE8DC, 0x9B74, 0xE8DB, 0x9B75, 0xE8DF, 0x9B76, 0xE8DE, 0x9B77, 0xBE7B, 0x9B7A, 0xEC7D, 0x9B7B, 0xEC78, 0x9B7C, 0xEC76, + 0x9B7D, 0xECA1, 0x9B7E, 0xEC77, 0x9B80, 0xEC73, 0x9B82, 0xEC79, 0x9B85, 0xEC74, 0x9B86, 0xEF72, 0x9B87, 0xEC75, 0x9B88, 0xECA2, + 0x9B90, 0xEC7C, 0x9B91, 0xC06A, 0x9B92, 0xEC7B, 0x9B93, 0xEC7A, 0x9B95, 0xEC7E, 0x9B9A, 0xEF6A, 0x9B9B, 0xEF6D, 0x9B9E, 0xEF6C, + 0x9BA0, 0xEF74, 0x9BA1, 0xEF6F, 0x9BA2, 0xEF73, 0x9BA4, 0xEF71, 0x9BA5, 0xEF70, 0x9BA6, 0xEF6E, 0x9BA8, 0xEF6B, 0x9BAA, 0xC243, + 0x9BAB, 0xC242, 0x9BAD, 0xC244, 0x9BAE, 0xC241, 0x9BAF, 0xEF75, 0x9BB5, 0xF1C8, 0x9BB6, 0xF1CB, 0x9BB8, 0xF1C9, 0x9BB9, 0xF1CD, + 0x9BBD, 0xF1CE, 0x9BBF, 0xF1C6, 0x9BC0, 0xC358, 0x9BC1, 0xF1C7, 0x9BC3, 0xF1C5, 0x9BC4, 0xF1CC, 0x9BC6, 0xF1C4, 0x9BC7, 0xF1C3, + 0x9BC8, 0xC357, 0x9BC9, 0xC355, 0x9BCA, 0xC354, 0x9BD3, 0xF1CA, 0x9BD4, 0xF3CF, 0x9BD5, 0xF3D5, 0x9BD6, 0xC44A, 0x9BD7, 0xF3D0, + 0x9BD9, 0xF3D3, 0x9BDA, 0xF3D7, 0x9BDB, 0xC44B, 0x9BDC, 0xF3D2, 0x9BDE, 0xF3CA, 0x9BE0, 0xF3C9, 0x9BE1, 0xF3D6, 0x9BE2, 0xF3CD, + 0x9BE4, 0xF3CB, 0x9BE5, 0xF3D4, 0x9BE6, 0xF3CC, 0x9BE7, 0xC449, 0x9BE8, 0xC448, 0x9BEA, 0xF3C7, 0x9BEB, 0xF3C8, 0x9BEC, 0xF3D1, + 0x9BF0, 0xF3CE, 0x9BF7, 0xF56C, 0x9BF8, 0xF56F, 0x9BFD, 0xC356, 0x9C05, 0xF56D, 0x9C06, 0xF573, 0x9C07, 0xF571, 0x9C08, 0xF56B, + 0x9C09, 0xF576, 0x9C0B, 0xF56A, 0x9C0D, 0xC4CF, 0x9C0E, 0xF572, 0x9C12, 0xF56E, 0x9C13, 0xC4CE, 0x9C14, 0xF575, 0x9C17, 0xF574, + 0x9C1C, 0xF6AB, 0x9C1D, 0xF6AA, 0x9C21, 0xF6B1, 0x9C23, 0xF6AD, 0x9C24, 0xF6B0, 0x9C25, 0xC560, 0x9C28, 0xF6AE, 0x9C29, 0xF6AF, + 0x9C2B, 0xF6A9, 0x9C2C, 0xF6AC, 0x9C2D, 0xC55F, 0x9C31, 0xC5BF, 0x9C32, 0xF7B4, 0x9C33, 0xF7AF, 0x9C34, 0xF7B3, 0x9C36, 0xF7B6, + 0x9C37, 0xF7B2, 0x9C39, 0xF7AE, 0x9C3B, 0xC5C1, 0x9C3C, 0xF7B1, 0x9C3D, 0xF7B5, 0x9C3E, 0xC5C0, 0x9C3F, 0xF7AC, 0x9C40, 0xF570, + 0x9C41, 0xF7B0, 0x9C44, 0xF7AD, 0x9C46, 0xF7AA, 0x9C48, 0xF7AB, 0x9C49, 0xC5BE, 0x9C4A, 0xF85A, 0x9C4B, 0xF85C, 0x9C4C, 0xF85F, + 0x9C4D, 0xF85B, 0x9C4E, 0xF860, 0x9C50, 0xF859, 0x9C52, 0xF857, 0x9C54, 0xC5EB, 0x9C55, 0xF85D, 0x9C56, 0xC5ED, 0x9C57, 0xC5EC, + 0x9C58, 0xF858, 0x9C59, 0xF85E, 0x9C5E, 0xF8DA, 0x9C5F, 0xC64D, 0x9C60, 0xF8DB, 0x9C62, 0xF8D9, 0x9C63, 0xF8D6, 0x9C66, 0xF8D8, + 0x9C67, 0xF8D7, 0x9C68, 0xF95A, 0x9C6D, 0xF95C, 0x9C6E, 0xF95B, 0x9C71, 0xF979, 0x9C73, 0xF978, 0x9C74, 0xF977, 0x9C75, 0xF97A, + 0x9C77, 0xC673, 0x9C78, 0xC674, 0x9C79, 0xF9CA, 0x9C7A, 0xF9CE, 0x9CE5, 0xB3BE, 0x9CE6, 0xDCAF, 0x9CE7, 0xE0ED, 0x9CE9, 0xB9A7, + 0x9CEA, 0xE0EB, 0x9CED, 0xE0EC, 0x9CF1, 0xE4E2, 0x9CF2, 0xE4E3, 0x9CF3, 0xBBF1, 0x9CF4, 0xBBEF, 0x9CF5, 0xE4E4, 0x9CF6, 0xBBF0, + 0x9CF7, 0xE8E8, 0x9CF9, 0xE8EB, 0x9CFA, 0xE8E5, 0x9CFB, 0xE8EC, 0x9CFC, 0xE8E4, 0x9CFD, 0xE8E6, 0x9CFF, 0xE8E7, 0x9D00, 0xE8EA, + 0x9D03, 0xBEA1, 0x9D04, 0xE8EF, 0x9D05, 0xE8EE, 0x9D06, 0xBE7D, 0x9D07, 0xE8E9, 0x9D08, 0xE8ED, 0x9D09, 0xBE7E, 0x9D10, 0xECAC, + 0x9D12, 0xC06F, 0x9D14, 0xECA7, 0x9D15, 0xC06B, 0x9D17, 0xECA4, 0x9D18, 0xECAA, 0x9D19, 0xECAD, 0x9D1B, 0xC070, 0x9D1D, 0xECA9, + 0x9D1E, 0xECA6, 0x9D1F, 0xECAE, 0x9D20, 0xECA5, 0x9D22, 0xECAB, 0x9D23, 0xC06C, 0x9D25, 0xECA3, 0x9D26, 0xC06D, 0x9D28, 0xC06E, + 0x9D29, 0xECA8, 0x9D2D, 0xEFA9, 0x9D2E, 0xEF7A, 0x9D2F, 0xEF7B, 0x9D30, 0xEF7E, 0x9D31, 0xEF7C, 0x9D33, 0xEF76, 0x9D36, 0xEF79, + 0x9D37, 0xEFA5, 0x9D38, 0xEF7D, 0x9D3B, 0xC245, 0x9D3D, 0xEFA7, 0x9D3E, 0xEFA4, 0x9D3F, 0xC246, 0x9D40, 0xEFA6, 0x9D41, 0xEF77, + 0x9D42, 0xEFA2, 0x9D43, 0xEFA3, 0x9D45, 0xEFA1, 0x9D4A, 0xF1D2, 0x9D4B, 0xF1D4, 0x9D4C, 0xF1D7, 0x9D4F, 0xF1D1, 0x9D51, 0xC359, + 0x9D52, 0xF1D9, 0x9D53, 0xF1D0, 0x9D54, 0xF1DA, 0x9D56, 0xF1D6, 0x9D57, 0xF1D8, 0x9D58, 0xF1DC, 0x9D59, 0xF1D5, 0x9D5A, 0xF1DD, + 0x9D5B, 0xF1D3, 0x9D5C, 0xF1CF, 0x9D5D, 0xC35A, 0x9D5F, 0xF1DB, 0x9D60, 0xC35B, 0x9D61, 0xC44D, 0x9D67, 0xEF78, 0x9D68, 0xF3F1, + 0x9D69, 0xF3E8, 0x9D6A, 0xC44F, 0x9D6B, 0xF3E4, 0x9D6C, 0xC450, 0x9D6F, 0xF3ED, 0x9D70, 0xF3E7, 0x9D71, 0xF3DD, 0x9D72, 0xC44E, + 0x9D73, 0xF3EA, 0x9D74, 0xF3E5, 0x9D75, 0xF3E6, 0x9D77, 0xF3D8, 0x9D78, 0xF3DF, 0x9D79, 0xF3EE, 0x9D7B, 0xF3EB, 0x9D7D, 0xF3E3, + 0x9D7F, 0xF3EF, 0x9D80, 0xF3DE, 0x9D81, 0xF3D9, 0x9D82, 0xF3EC, 0x9D84, 0xF3DB, 0x9D85, 0xF3E9, 0x9D86, 0xF3E0, 0x9D87, 0xF3F0, + 0x9D88, 0xF3DC, 0x9D89, 0xC44C, 0x9D8A, 0xF3DA, 0x9D8B, 0xF3E1, 0x9D8C, 0xF3E2, 0x9D90, 0xF57D, 0x9D92, 0xF57B, 0x9D94, 0xF5A2, + 0x9D96, 0xF5AE, 0x9D97, 0xF5A5, 0x9D98, 0xF57C, 0x9D99, 0xF578, 0x9D9A, 0xF5A7, 0x9D9B, 0xF57E, 0x9D9C, 0xF5A3, 0x9D9D, 0xF57A, + 0x9D9E, 0xF5AA, 0x9D9F, 0xF577, 0x9DA0, 0xF5A1, 0x9DA1, 0xF5A6, 0x9DA2, 0xF5A8, 0x9DA3, 0xF5AB, 0x9DA4, 0xF579, 0x9DA6, 0xF5AF, + 0x9DA7, 0xF5B0, 0x9DA8, 0xF5A9, 0x9DA9, 0xF5AD, 0x9DAA, 0xF5A4, 0x9DAC, 0xF6C1, 0x9DAD, 0xF6C4, 0x9DAF, 0xC561, 0x9DB1, 0xF6C3, + 0x9DB2, 0xF6C8, 0x9DB3, 0xF6C6, 0x9DB4, 0xC562, 0x9DB5, 0xF6BD, 0x9DB6, 0xF6B3, 0x9DB7, 0xF6B2, 0x9DB8, 0xC564, 0x9DB9, 0xF6BF, + 0x9DBA, 0xF6C0, 0x9DBB, 0xF6BC, 0x9DBC, 0xF6B4, 0x9DBE, 0xF6B9, 0x9DBF, 0xF5AC, 0x9DC1, 0xF6B5, 0x9DC2, 0xC563, 0x9DC3, 0xF6BB, + 0x9DC5, 0xF6BA, 0x9DC7, 0xF6B6, 0x9DC8, 0xF6C2, 0x9DCA, 0xF6B7, 0x9DCB, 0xF7BB, 0x9DCC, 0xF6C5, 0x9DCD, 0xF6C7, 0x9DCE, 0xF6BE, + 0x9DCF, 0xF6B8, 0x9DD0, 0xF7BC, 0x9DD1, 0xF7BE, 0x9DD2, 0xF7B8, 0x9DD3, 0xC5C2, 0x9DD5, 0xF7C5, 0x9DD6, 0xF7C3, 0x9DD7, 0xC5C3, + 0x9DD8, 0xF7C2, 0x9DD9, 0xF7C1, 0x9DDA, 0xF7BA, 0x9DDB, 0xF7B7, 0x9DDC, 0xF7BD, 0x9DDD, 0xF7C6, 0x9DDE, 0xF7B9, 0x9DDF, 0xF7BF, + 0x9DE1, 0xF869, 0x9DE2, 0xF86E, 0x9DE3, 0xF864, 0x9DE4, 0xF867, 0x9DE5, 0xC5EE, 0x9DE6, 0xF86B, 0x9DE8, 0xF872, 0x9DE9, 0xF7C0, + 0x9DEB, 0xF865, 0x9DEC, 0xF86F, 0x9DED, 0xF873, 0x9DEE, 0xF86A, 0x9DEF, 0xF863, 0x9DF0, 0xF86D, 0x9DF2, 0xF86C, 0x9DF3, 0xF871, + 0x9DF4, 0xF870, 0x9DF5, 0xF7C4, 0x9DF6, 0xF868, 0x9DF7, 0xF862, 0x9DF8, 0xF866, 0x9DF9, 0xC64E, 0x9DFA, 0xC64F, 0x9DFB, 0xF861, + 0x9DFD, 0xF8E6, 0x9DFE, 0xF8DD, 0x9DFF, 0xF8E5, 0x9E00, 0xF8E2, 0x9E01, 0xF8E3, 0x9E02, 0xF8DC, 0x9E03, 0xF8DF, 0x9E04, 0xF8E7, + 0x9E05, 0xF8E1, 0x9E06, 0xF8E0, 0x9E07, 0xF8DE, 0x9E09, 0xF8E4, 0x9E0B, 0xF95D, 0x9E0D, 0xF95E, 0x9E0F, 0xF960, 0x9E10, 0xF95F, + 0x9E11, 0xF962, 0x9E12, 0xF961, 0x9E13, 0xF97C, 0x9E14, 0xF97B, 0x9E15, 0xF9B7, 0x9E17, 0xF9B8, 0x9E19, 0xF9C5, 0x9E1A, 0xC678, + 0x9E1B, 0xC67C, 0x9E1D, 0xF9CF, 0x9E1E, 0xC67D, 0x9E75, 0xB3BF, 0x9E79, 0xC4D0, 0x9E7A, 0xF6C9, 0x9E7C, 0xC650, 0x9E7D, 0xC651, + 0x9E7F, 0xB3C0, 0x9E80, 0xE0EE, 0x9E82, 0xB9A8, 0x9E83, 0xE8F0, 0x9E86, 0xECB0, 0x9E87, 0xECB1, 0x9E88, 0xECAF, 0x9E89, 0xEFAB, + 0x9E8A, 0xEFAA, 0x9E8B, 0xC247, 0x9E8C, 0xF1DF, 0x9E8D, 0xEFAC, 0x9E8E, 0xF1DE, 0x9E91, 0xF3F3, 0x9E92, 0xC451, 0x9E93, 0xC453, + 0x9E94, 0xF3F2, 0x9E97, 0xC452, 0x9E99, 0xF5B1, 0x9E9A, 0xF5B3, 0x9E9B, 0xF5B2, 0x9E9C, 0xF6CA, 0x9E9D, 0xC565, 0x9E9F, 0xC5EF, + 0x9EA0, 0xF8E8, 0x9EA1, 0xF963, 0x9EA4, 0xF9D2, 0x9EA5, 0xB3C1, 0x9EA7, 0xE4E5, 0x9EA9, 0xBEA2, 0x9EAD, 0xECB3, 0x9EAE, 0xECB2, + 0x9EB0, 0xEFAD, 0x9EB4, 0xC454, 0x9EB5, 0xC4D1, 0x9EB6, 0xF7C7, 0x9EB7, 0xF9CB, 0x9EBB, 0xB3C2, 0x9EBC, 0xBBF2, 0x9EBE, 0xBEA3, + 0x9EC0, 0xF3F4, 0x9EC2, 0xF874, 0x9EC3, 0xB6C0, 0x9EC8, 0xEFAE, 0x9ECC, 0xC664, 0x9ECD, 0xB6C1, 0x9ECE, 0xBEA4, 0x9ECF, 0xC248, + 0x9ED0, 0xF875, 0x9ED1, 0xB6C2, 0x9ED3, 0xE8F1, 0x9ED4, 0xC072, 0x9ED5, 0xECB4, 0x9ED6, 0xECB5, 0x9ED8, 0xC071, 0x9EDA, 0xEFAF, + 0x9EDB, 0xC24C, 0x9EDC, 0xC24A, 0x9EDD, 0xC24B, 0x9EDE, 0xC249, 0x9EDF, 0xF1E0, 0x9EE0, 0xC35C, 0x9EE4, 0xF5B5, 0x9EE5, 0xF5B4, + 0x9EE6, 0xF5B7, 0x9EE7, 0xF5B6, 0x9EE8, 0xC4D2, 0x9EEB, 0xF6CB, 0x9EED, 0xF6CD, 0x9EEE, 0xF6CC, 0x9EEF, 0xC566, 0x9EF0, 0xF7C8, + 0x9EF2, 0xF876, 0x9EF3, 0xF877, 0x9EF4, 0xC5F0, 0x9EF5, 0xF964, 0x9EF6, 0xF97D, 0x9EF7, 0xC675, 0x9EF9, 0xDCB0, 0x9EFA, 0xECB6, + 0x9EFB, 0xEFB0, 0x9EFC, 0xF3F5, 0x9EFD, 0xE0EF, 0x9EFF, 0xEFB1, 0x9F00, 0xF1E2, 0x9F01, 0xF1E1, 0x9F06, 0xF878, 0x9F07, 0xC652, + 0x9F09, 0xF965, 0x9F0A, 0xF97E, 0x9F0E, 0xB9A9, 0x9F0F, 0xE8F2, 0x9F10, 0xE8F3, 0x9F12, 0xECB7, 0x9F13, 0xB9AA, 0x9F15, 0xC35D, + 0x9F16, 0xF1E3, 0x9F18, 0xF6CF, 0x9F19, 0xC567, 0x9F1A, 0xF6D0, 0x9F1B, 0xF6CE, 0x9F1C, 0xF879, 0x9F1E, 0xF8E9, 0x9F20, 0xB9AB, + 0x9F22, 0xEFB4, 0x9F23, 0xEFB3, 0x9F24, 0xEFB2, 0x9F25, 0xF1E4, 0x9F28, 0xF1E8, 0x9F29, 0xF1E7, 0x9F2A, 0xF1E6, 0x9F2B, 0xF1E5, + 0x9F2C, 0xC35E, 0x9F2D, 0xF3F6, 0x9F2E, 0xF5B9, 0x9F2F, 0xC4D3, 0x9F30, 0xF5B8, 0x9F31, 0xF6D1, 0x9F32, 0xF7CB, 0x9F33, 0xF7CA, + 0x9F34, 0xC5C4, 0x9F35, 0xF7C9, 0x9F36, 0xF87C, 0x9F37, 0xF87B, 0x9F38, 0xF87A, 0x9F3B, 0xBBF3, 0x9F3D, 0xECB8, 0x9F3E, 0xC24D, + 0x9F40, 0xF3F7, 0x9F41, 0xF3F8, 0x9F42, 0xF7CC, 0x9F43, 0xF87D, 0x9F46, 0xF8EA, 0x9F47, 0xF966, 0x9F48, 0xF9B9, 0x9F49, 0xF9D4, + 0x9F4A, 0xBBF4, 0x9F4B, 0xC24E, 0x9F4C, 0xF1E9, 0x9F4D, 0xF3F9, 0x9F4E, 0xF6D2, 0x9F4F, 0xF87E, 0x9F52, 0xBEA6, 0x9F54, 0xEFB5, + 0x9F55, 0xF1EA, 0x9F56, 0xF3FA, 0x9F57, 0xF3FB, 0x9F58, 0xF3FC, 0x9F59, 0xF5BE, 0x9F5B, 0xF5BA, 0x9F5C, 0xC568, 0x9F5D, 0xF5BD, + 0x9F5E, 0xF5BC, 0x9F5F, 0xC4D4, 0x9F60, 0xF5BB, 0x9F61, 0xC4D6, 0x9F63, 0xC4D5, 0x9F64, 0xF6D4, 0x9F65, 0xF6D3, 0x9F66, 0xC569, + 0x9F67, 0xC56A, 0x9F6A, 0xC5C6, 0x9F6B, 0xF7CD, 0x9F6C, 0xC5C5, 0x9F6E, 0xF8A3, 0x9F6F, 0xF8A4, 0x9F70, 0xF8A2, 0x9F71, 0xF8A1, + 0x9F72, 0xC654, 0x9F74, 0xF8EB, 0x9F75, 0xF8EC, 0x9F76, 0xF8ED, 0x9F77, 0xC653, 0x9F78, 0xF967, 0x9F79, 0xF96A, 0x9F7A, 0xF969, + 0x9F7B, 0xF968, 0x9F7E, 0xF9D3, 0x9F8D, 0xC073, 0x9F90, 0xC365, 0x9F91, 0xF5BF, 0x9F92, 0xF6D5, 0x9F94, 0xC5C7, 0x9F95, 0xF7CE, + 0x9F98, 0xF9D5, 0x9F9C, 0xC074, 0x9FA0, 0xEFB6, 0x9FA2, 0xF7CF, 0x9FA4, 0xF9A1, 0xFA0C, 0xC94A, 0xFA0D, 0xDDFC, 0xFE30, 0xA14A, + 0xFE31, 0xA157, 0xFE33, 0xA159, 0xFE34, 0xA15B, 0xFE35, 0xA15F, 0xFE36, 0xA160, 0xFE37, 0xA163, 0xFE38, 0xA164, 0xFE39, 0xA167, + 0xFE3A, 0xA168, 0xFE3B, 0xA16B, 0xFE3C, 0xA16C, 0xFE3D, 0xA16F, 0xFE3E, 0xA170, 0xFE3F, 0xA173, 0xFE40, 0xA174, 0xFE41, 0xA177, + 0xFE42, 0xA178, 0xFE43, 0xA17B, 0xFE44, 0xA17C, 0xFE49, 0xA1C6, 0xFE4A, 0xA1C7, 0xFE4B, 0xA1CA, 0xFE4C, 0xA1CB, 0xFE4D, 0xA1C8, + 0xFE4E, 0xA1C9, 0xFE4F, 0xA15C, 0xFE50, 0xA14D, 0xFE51, 0xA14E, 0xFE52, 0xA14F, 0xFE54, 0xA151, 0xFE55, 0xA152, 0xFE56, 0xA153, + 0xFE57, 0xA154, 0xFE59, 0xA17D, 0xFE5A, 0xA17E, 0xFE5B, 0xA1A1, 0xFE5C, 0xA1A2, 0xFE5D, 0xA1A3, 0xFE5E, 0xA1A4, 0xFE5F, 0xA1CC, + 0xFE60, 0xA1CD, 0xFE61, 0xA1CE, 0xFE62, 0xA1DE, 0xFE63, 0xA1DF, 0xFE64, 0xA1E0, 0xFE65, 0xA1E1, 0xFE66, 0xA1E2, 0xFE68, 0xA242, + 0xFE69, 0xA24C, 0xFE6A, 0xA24D, 0xFE6B, 0xA24E, 0xFF01, 0xA149, 0xFF03, 0xA1AD, 0xFF04, 0xA243, 0xFF05, 0xA248, 0xFF06, 0xA1AE, + 0xFF08, 0xA15D, 0xFF09, 0xA15E, 0xFF0A, 0xA1AF, 0xFF0B, 0xA1CF, 0xFF0C, 0xA141, 0xFF0D, 0xA1D0, 0xFF0E, 0xA144, 0xFF0F, 0xA1FE, + 0xFF10, 0xA2AF, 0xFF11, 0xA2B0, 0xFF12, 0xA2B1, 0xFF13, 0xA2B2, 0xFF14, 0xA2B3, 0xFF15, 0xA2B4, 0xFF16, 0xA2B5, 0xFF17, 0xA2B6, + 0xFF18, 0xA2B7, 0xFF19, 0xA2B8, 0xFF1A, 0xA147, 0xFF1B, 0xA146, 0xFF1C, 0xA1D5, 0xFF1D, 0xA1D7, 0xFF1E, 0xA1D6, 0xFF1F, 0xA148, + 0xFF20, 0xA249, 0xFF21, 0xA2CF, 0xFF22, 0xA2D0, 0xFF23, 0xA2D1, 0xFF24, 0xA2D2, 0xFF25, 0xA2D3, 0xFF26, 0xA2D4, 0xFF27, 0xA2D5, + 0xFF28, 0xA2D6, 0xFF29, 0xA2D7, 0xFF2A, 0xA2D8, 0xFF2B, 0xA2D9, 0xFF2C, 0xA2DA, 0xFF2D, 0xA2DB, 0xFF2E, 0xA2DC, 0xFF2F, 0xA2DD, + 0xFF30, 0xA2DE, 0xFF31, 0xA2DF, 0xFF32, 0xA2E0, 0xFF33, 0xA2E1, 0xFF34, 0xA2E2, 0xFF35, 0xA2E3, 0xFF36, 0xA2E4, 0xFF37, 0xA2E5, + 0xFF38, 0xA2E6, 0xFF39, 0xA2E7, 0xFF3A, 0xA2E8, 0xFF3C, 0xA240, 0xFF3F, 0xA1C4, 0xFF41, 0xA2E9, 0xFF42, 0xA2EA, 0xFF43, 0xA2EB, + 0xFF44, 0xA2EC, 0xFF45, 0xA2ED, 0xFF46, 0xA2EE, 0xFF47, 0xA2EF, 0xFF48, 0xA2F0, 0xFF49, 0xA2F1, 0xFF4A, 0xA2F2, 0xFF4B, 0xA2F3, + 0xFF4C, 0xA2F4, 0xFF4D, 0xA2F5, 0xFF4E, 0xA2F6, 0xFF4F, 0xA2F7, 0xFF50, 0xA2F8, 0xFF51, 0xA2F9, 0xFF52, 0xA2FA, 0xFF53, 0xA2FB, + 0xFF54, 0xA2FC, 0xFF55, 0xA2FD, 0xFF56, 0xA2FE, 0xFF57, 0xA340, 0xFF58, 0xA341, 0xFF59, 0xA342, 0xFF5A, 0xA343, 0xFF5B, 0xA161, + 0xFF5C, 0xA155, 0xFF5D, 0xA162, 0xFF5E, 0xA1E3, 0xFFE0, 0xA246, 0xFFE1, 0xA247, 0xFFE3, 0xA1C3, 0xFFE5, 0xA244, 0, 0 +}; + +static const WCHAR oem2uni950[] = { /* Big5 --> Unicode pairs */ + 0xA140, 0x3000, 0xA141, 0xFF0C, 0xA142, 0x3001, 0xA143, 0x3002, 0xA144, 0xFF0E, 0xA145, 0x2027, 0xA146, 0xFF1B, 0xA147, 0xFF1A, + 0xA148, 0xFF1F, 0xA149, 0xFF01, 0xA14A, 0xFE30, 0xA14B, 0x2026, 0xA14C, 0x2025, 0xA14D, 0xFE50, 0xA14E, 0xFE51, 0xA14F, 0xFE52, + 0xA150, 0x00B7, 0xA151, 0xFE54, 0xA152, 0xFE55, 0xA153, 0xFE56, 0xA154, 0xFE57, 0xA155, 0xFF5C, 0xA156, 0x2013, 0xA157, 0xFE31, + 0xA158, 0x2014, 0xA159, 0xFE33, 0xA15A, 0x2574, 0xA15B, 0xFE34, 0xA15C, 0xFE4F, 0xA15D, 0xFF08, 0xA15E, 0xFF09, 0xA15F, 0xFE35, + 0xA160, 0xFE36, 0xA161, 0xFF5B, 0xA162, 0xFF5D, 0xA163, 0xFE37, 0xA164, 0xFE38, 0xA165, 0x3014, 0xA166, 0x3015, 0xA167, 0xFE39, + 0xA168, 0xFE3A, 0xA169, 0x3010, 0xA16A, 0x3011, 0xA16B, 0xFE3B, 0xA16C, 0xFE3C, 0xA16D, 0x300A, 0xA16E, 0x300B, 0xA16F, 0xFE3D, + 0xA170, 0xFE3E, 0xA171, 0x3008, 0xA172, 0x3009, 0xA173, 0xFE3F, 0xA174, 0xFE40, 0xA175, 0x300C, 0xA176, 0x300D, 0xA177, 0xFE41, + 0xA178, 0xFE42, 0xA179, 0x300E, 0xA17A, 0x300F, 0xA17B, 0xFE43, 0xA17C, 0xFE44, 0xA17D, 0xFE59, 0xA17E, 0xFE5A, 0xA1A1, 0xFE5B, + 0xA1A2, 0xFE5C, 0xA1A3, 0xFE5D, 0xA1A4, 0xFE5E, 0xA1A5, 0x2018, 0xA1A6, 0x2019, 0xA1A7, 0x201C, 0xA1A8, 0x201D, 0xA1A9, 0x301D, + 0xA1AA, 0x301E, 0xA1AB, 0x2035, 0xA1AC, 0x2032, 0xA1AD, 0xFF03, 0xA1AE, 0xFF06, 0xA1AF, 0xFF0A, 0xA1B0, 0x203B, 0xA1B1, 0x00A7, + 0xA1B2, 0x3003, 0xA1B3, 0x25CB, 0xA1B4, 0x25CF, 0xA1B5, 0x25B3, 0xA1B6, 0x25B2, 0xA1B7, 0x25CE, 0xA1B8, 0x2606, 0xA1B9, 0x2605, + 0xA1BA, 0x25C7, 0xA1BB, 0x25C6, 0xA1BC, 0x25A1, 0xA1BD, 0x25A0, 0xA1BE, 0x25BD, 0xA1BF, 0x25BC, 0xA1C0, 0x32A3, 0xA1C1, 0x2105, + 0xA1C2, 0x00AF, 0xA1C3, 0xFFE3, 0xA1C4, 0xFF3F, 0xA1C5, 0x02CD, 0xA1C6, 0xFE49, 0xA1C7, 0xFE4A, 0xA1C8, 0xFE4D, 0xA1C9, 0xFE4E, + 0xA1CA, 0xFE4B, 0xA1CB, 0xFE4C, 0xA1CC, 0xFE5F, 0xA1CD, 0xFE60, 0xA1CE, 0xFE61, 0xA1CF, 0xFF0B, 0xA1D0, 0xFF0D, 0xA1D1, 0x00D7, + 0xA1D2, 0x00F7, 0xA1D3, 0x00B1, 0xA1D4, 0x221A, 0xA1D5, 0xFF1C, 0xA1D6, 0xFF1E, 0xA1D7, 0xFF1D, 0xA1D8, 0x2266, 0xA1D9, 0x2267, + 0xA1DA, 0x2260, 0xA1DB, 0x221E, 0xA1DC, 0x2252, 0xA1DD, 0x2261, 0xA1DE, 0xFE62, 0xA1DF, 0xFE63, 0xA1E0, 0xFE64, 0xA1E1, 0xFE65, + 0xA1E2, 0xFE66, 0xA1E3, 0xFF5E, 0xA1E4, 0x2229, 0xA1E5, 0x222A, 0xA1E6, 0x22A5, 0xA1E7, 0x2220, 0xA1E8, 0x221F, 0xA1E9, 0x22BF, + 0xA1EA, 0x33D2, 0xA1EB, 0x33D1, 0xA1EC, 0x222B, 0xA1ED, 0x222E, 0xA1EE, 0x2235, 0xA1EF, 0x2234, 0xA1F0, 0x2640, 0xA1F1, 0x2642, + 0xA1F2, 0x2295, 0xA1F3, 0x2299, 0xA1F4, 0x2191, 0xA1F5, 0x2193, 0xA1F6, 0x2190, 0xA1F7, 0x2192, 0xA1F8, 0x2196, 0xA1F9, 0x2197, + 0xA1FA, 0x2199, 0xA1FB, 0x2198, 0xA1FC, 0x2225, 0xA1FD, 0x2223, 0xA1FE, 0xFF0F, 0xA240, 0xFF3C, 0xA241, 0x2215, 0xA242, 0xFE68, + 0xA243, 0xFF04, 0xA244, 0xFFE5, 0xA245, 0x3012, 0xA246, 0xFFE0, 0xA247, 0xFFE1, 0xA248, 0xFF05, 0xA249, 0xFF20, 0xA24A, 0x2103, + 0xA24B, 0x2109, 0xA24C, 0xFE69, 0xA24D, 0xFE6A, 0xA24E, 0xFE6B, 0xA24F, 0x33D5, 0xA250, 0x339C, 0xA251, 0x339D, 0xA252, 0x339E, + 0xA253, 0x33CE, 0xA254, 0x33A1, 0xA255, 0x338E, 0xA256, 0x338F, 0xA257, 0x33C4, 0xA258, 0x00B0, 0xA259, 0x5159, 0xA25A, 0x515B, + 0xA25B, 0x515E, 0xA25C, 0x515D, 0xA25D, 0x5161, 0xA25E, 0x5163, 0xA25F, 0x55E7, 0xA260, 0x74E9, 0xA261, 0x7CCE, 0xA262, 0x2581, + 0xA263, 0x2582, 0xA264, 0x2583, 0xA265, 0x2584, 0xA266, 0x2585, 0xA267, 0x2586, 0xA268, 0x2587, 0xA269, 0x2588, 0xA26A, 0x258F, + 0xA26B, 0x258E, 0xA26C, 0x258D, 0xA26D, 0x258C, 0xA26E, 0x258B, 0xA26F, 0x258A, 0xA270, 0x2589, 0xA271, 0x253C, 0xA272, 0x2534, + 0xA273, 0x252C, 0xA274, 0x2524, 0xA275, 0x251C, 0xA276, 0x2594, 0xA277, 0x2500, 0xA278, 0x2502, 0xA279, 0x2595, 0xA27A, 0x250C, + 0xA27B, 0x2510, 0xA27C, 0x2514, 0xA27D, 0x2518, 0xA27E, 0x256D, 0xA2A1, 0x256E, 0xA2A2, 0x2570, 0xA2A3, 0x256F, 0xA2A4, 0x2550, + 0xA2A5, 0x255E, 0xA2A6, 0x256A, 0xA2A7, 0x2561, 0xA2A8, 0x25E2, 0xA2A9, 0x25E3, 0xA2AA, 0x25E5, 0xA2AB, 0x25E4, 0xA2AC, 0x2571, + 0xA2AD, 0x2572, 0xA2AE, 0x2573, 0xA2AF, 0xFF10, 0xA2B0, 0xFF11, 0xA2B1, 0xFF12, 0xA2B2, 0xFF13, 0xA2B3, 0xFF14, 0xA2B4, 0xFF15, + 0xA2B5, 0xFF16, 0xA2B6, 0xFF17, 0xA2B7, 0xFF18, 0xA2B8, 0xFF19, 0xA2B9, 0x2160, 0xA2BA, 0x2161, 0xA2BB, 0x2162, 0xA2BC, 0x2163, + 0xA2BD, 0x2164, 0xA2BE, 0x2165, 0xA2BF, 0x2166, 0xA2C0, 0x2167, 0xA2C1, 0x2168, 0xA2C2, 0x2169, 0xA2C3, 0x3021, 0xA2C4, 0x3022, + 0xA2C5, 0x3023, 0xA2C6, 0x3024, 0xA2C7, 0x3025, 0xA2C8, 0x3026, 0xA2C9, 0x3027, 0xA2CA, 0x3028, 0xA2CB, 0x3029, 0xA2CC, 0x5341, + 0xA2CD, 0x5344, 0xA2CE, 0x5345, 0xA2CF, 0xFF21, 0xA2D0, 0xFF22, 0xA2D1, 0xFF23, 0xA2D2, 0xFF24, 0xA2D3, 0xFF25, 0xA2D4, 0xFF26, + 0xA2D5, 0xFF27, 0xA2D6, 0xFF28, 0xA2D7, 0xFF29, 0xA2D8, 0xFF2A, 0xA2D9, 0xFF2B, 0xA2DA, 0xFF2C, 0xA2DB, 0xFF2D, 0xA2DC, 0xFF2E, + 0xA2DD, 0xFF2F, 0xA2DE, 0xFF30, 0xA2DF, 0xFF31, 0xA2E0, 0xFF32, 0xA2E1, 0xFF33, 0xA2E2, 0xFF34, 0xA2E3, 0xFF35, 0xA2E4, 0xFF36, + 0xA2E5, 0xFF37, 0xA2E6, 0xFF38, 0xA2E7, 0xFF39, 0xA2E8, 0xFF3A, 0xA2E9, 0xFF41, 0xA2EA, 0xFF42, 0xA2EB, 0xFF43, 0xA2EC, 0xFF44, + 0xA2ED, 0xFF45, 0xA2EE, 0xFF46, 0xA2EF, 0xFF47, 0xA2F0, 0xFF48, 0xA2F1, 0xFF49, 0xA2F2, 0xFF4A, 0xA2F3, 0xFF4B, 0xA2F4, 0xFF4C, + 0xA2F5, 0xFF4D, 0xA2F6, 0xFF4E, 0xA2F7, 0xFF4F, 0xA2F8, 0xFF50, 0xA2F9, 0xFF51, 0xA2FA, 0xFF52, 0xA2FB, 0xFF53, 0xA2FC, 0xFF54, + 0xA2FD, 0xFF55, 0xA2FE, 0xFF56, 0xA340, 0xFF57, 0xA341, 0xFF58, 0xA342, 0xFF59, 0xA343, 0xFF5A, 0xA344, 0x0391, 0xA345, 0x0392, + 0xA346, 0x0393, 0xA347, 0x0394, 0xA348, 0x0395, 0xA349, 0x0396, 0xA34A, 0x0397, 0xA34B, 0x0398, 0xA34C, 0x0399, 0xA34D, 0x039A, + 0xA34E, 0x039B, 0xA34F, 0x039C, 0xA350, 0x039D, 0xA351, 0x039E, 0xA352, 0x039F, 0xA353, 0x03A0, 0xA354, 0x03A1, 0xA355, 0x03A3, + 0xA356, 0x03A4, 0xA357, 0x03A5, 0xA358, 0x03A6, 0xA359, 0x03A7, 0xA35A, 0x03A8, 0xA35B, 0x03A9, 0xA35C, 0x03B1, 0xA35D, 0x03B2, + 0xA35E, 0x03B3, 0xA35F, 0x03B4, 0xA360, 0x03B5, 0xA361, 0x03B6, 0xA362, 0x03B7, 0xA363, 0x03B8, 0xA364, 0x03B9, 0xA365, 0x03BA, + 0xA366, 0x03BB, 0xA367, 0x03BC, 0xA368, 0x03BD, 0xA369, 0x03BE, 0xA36A, 0x03BF, 0xA36B, 0x03C0, 0xA36C, 0x03C1, 0xA36D, 0x03C3, + 0xA36E, 0x03C4, 0xA36F, 0x03C5, 0xA370, 0x03C6, 0xA371, 0x03C7, 0xA372, 0x03C8, 0xA373, 0x03C9, 0xA374, 0x3105, 0xA375, 0x3106, + 0xA376, 0x3107, 0xA377, 0x3108, 0xA378, 0x3109, 0xA379, 0x310A, 0xA37A, 0x310B, 0xA37B, 0x310C, 0xA37C, 0x310D, 0xA37D, 0x310E, + 0xA37E, 0x310F, 0xA3A1, 0x3110, 0xA3A2, 0x3111, 0xA3A3, 0x3112, 0xA3A4, 0x3113, 0xA3A5, 0x3114, 0xA3A6, 0x3115, 0xA3A7, 0x3116, + 0xA3A8, 0x3117, 0xA3A9, 0x3118, 0xA3AA, 0x3119, 0xA3AB, 0x311A, 0xA3AC, 0x311B, 0xA3AD, 0x311C, 0xA3AE, 0x311D, 0xA3AF, 0x311E, + 0xA3B0, 0x311F, 0xA3B1, 0x3120, 0xA3B2, 0x3121, 0xA3B3, 0x3122, 0xA3B4, 0x3123, 0xA3B5, 0x3124, 0xA3B6, 0x3125, 0xA3B7, 0x3126, + 0xA3B8, 0x3127, 0xA3B9, 0x3128, 0xA3BA, 0x3129, 0xA3BB, 0x02D9, 0xA3BC, 0x02C9, 0xA3BD, 0x02CA, 0xA3BE, 0x02C7, 0xA3BF, 0x02CB, + 0xA3E1, 0x20AC, 0xA440, 0x4E00, 0xA441, 0x4E59, 0xA442, 0x4E01, 0xA443, 0x4E03, 0xA444, 0x4E43, 0xA445, 0x4E5D, 0xA446, 0x4E86, + 0xA447, 0x4E8C, 0xA448, 0x4EBA, 0xA449, 0x513F, 0xA44A, 0x5165, 0xA44B, 0x516B, 0xA44C, 0x51E0, 0xA44D, 0x5200, 0xA44E, 0x5201, + 0xA44F, 0x529B, 0xA450, 0x5315, 0xA451, 0x5341, 0xA452, 0x535C, 0xA453, 0x53C8, 0xA454, 0x4E09, 0xA455, 0x4E0B, 0xA456, 0x4E08, + 0xA457, 0x4E0A, 0xA458, 0x4E2B, 0xA459, 0x4E38, 0xA45A, 0x51E1, 0xA45B, 0x4E45, 0xA45C, 0x4E48, 0xA45D, 0x4E5F, 0xA45E, 0x4E5E, + 0xA45F, 0x4E8E, 0xA460, 0x4EA1, 0xA461, 0x5140, 0xA462, 0x5203, 0xA463, 0x52FA, 0xA464, 0x5343, 0xA465, 0x53C9, 0xA466, 0x53E3, + 0xA467, 0x571F, 0xA468, 0x58EB, 0xA469, 0x5915, 0xA46A, 0x5927, 0xA46B, 0x5973, 0xA46C, 0x5B50, 0xA46D, 0x5B51, 0xA46E, 0x5B53, + 0xA46F, 0x5BF8, 0xA470, 0x5C0F, 0xA471, 0x5C22, 0xA472, 0x5C38, 0xA473, 0x5C71, 0xA474, 0x5DDD, 0xA475, 0x5DE5, 0xA476, 0x5DF1, + 0xA477, 0x5DF2, 0xA478, 0x5DF3, 0xA479, 0x5DFE, 0xA47A, 0x5E72, 0xA47B, 0x5EFE, 0xA47C, 0x5F0B, 0xA47D, 0x5F13, 0xA47E, 0x624D, + 0xA4A1, 0x4E11, 0xA4A2, 0x4E10, 0xA4A3, 0x4E0D, 0xA4A4, 0x4E2D, 0xA4A5, 0x4E30, 0xA4A6, 0x4E39, 0xA4A7, 0x4E4B, 0xA4A8, 0x5C39, + 0xA4A9, 0x4E88, 0xA4AA, 0x4E91, 0xA4AB, 0x4E95, 0xA4AC, 0x4E92, 0xA4AD, 0x4E94, 0xA4AE, 0x4EA2, 0xA4AF, 0x4EC1, 0xA4B0, 0x4EC0, + 0xA4B1, 0x4EC3, 0xA4B2, 0x4EC6, 0xA4B3, 0x4EC7, 0xA4B4, 0x4ECD, 0xA4B5, 0x4ECA, 0xA4B6, 0x4ECB, 0xA4B7, 0x4EC4, 0xA4B8, 0x5143, + 0xA4B9, 0x5141, 0xA4BA, 0x5167, 0xA4BB, 0x516D, 0xA4BC, 0x516E, 0xA4BD, 0x516C, 0xA4BE, 0x5197, 0xA4BF, 0x51F6, 0xA4C0, 0x5206, + 0xA4C1, 0x5207, 0xA4C2, 0x5208, 0xA4C3, 0x52FB, 0xA4C4, 0x52FE, 0xA4C5, 0x52FF, 0xA4C6, 0x5316, 0xA4C7, 0x5339, 0xA4C8, 0x5348, + 0xA4C9, 0x5347, 0xA4CA, 0x5345, 0xA4CB, 0x535E, 0xA4CC, 0x5384, 0xA4CD, 0x53CB, 0xA4CE, 0x53CA, 0xA4CF, 0x53CD, 0xA4D0, 0x58EC, + 0xA4D1, 0x5929, 0xA4D2, 0x592B, 0xA4D3, 0x592A, 0xA4D4, 0x592D, 0xA4D5, 0x5B54, 0xA4D6, 0x5C11, 0xA4D7, 0x5C24, 0xA4D8, 0x5C3A, + 0xA4D9, 0x5C6F, 0xA4DA, 0x5DF4, 0xA4DB, 0x5E7B, 0xA4DC, 0x5EFF, 0xA4DD, 0x5F14, 0xA4DE, 0x5F15, 0xA4DF, 0x5FC3, 0xA4E0, 0x6208, + 0xA4E1, 0x6236, 0xA4E2, 0x624B, 0xA4E3, 0x624E, 0xA4E4, 0x652F, 0xA4E5, 0x6587, 0xA4E6, 0x6597, 0xA4E7, 0x65A4, 0xA4E8, 0x65B9, + 0xA4E9, 0x65E5, 0xA4EA, 0x66F0, 0xA4EB, 0x6708, 0xA4EC, 0x6728, 0xA4ED, 0x6B20, 0xA4EE, 0x6B62, 0xA4EF, 0x6B79, 0xA4F0, 0x6BCB, + 0xA4F1, 0x6BD4, 0xA4F2, 0x6BDB, 0xA4F3, 0x6C0F, 0xA4F4, 0x6C34, 0xA4F5, 0x706B, 0xA4F6, 0x722A, 0xA4F7, 0x7236, 0xA4F8, 0x723B, + 0xA4F9, 0x7247, 0xA4FA, 0x7259, 0xA4FB, 0x725B, 0xA4FC, 0x72AC, 0xA4FD, 0x738B, 0xA4FE, 0x4E19, 0xA540, 0x4E16, 0xA541, 0x4E15, + 0xA542, 0x4E14, 0xA543, 0x4E18, 0xA544, 0x4E3B, 0xA545, 0x4E4D, 0xA546, 0x4E4F, 0xA547, 0x4E4E, 0xA548, 0x4EE5, 0xA549, 0x4ED8, + 0xA54A, 0x4ED4, 0xA54B, 0x4ED5, 0xA54C, 0x4ED6, 0xA54D, 0x4ED7, 0xA54E, 0x4EE3, 0xA54F, 0x4EE4, 0xA550, 0x4ED9, 0xA551, 0x4EDE, + 0xA552, 0x5145, 0xA553, 0x5144, 0xA554, 0x5189, 0xA555, 0x518A, 0xA556, 0x51AC, 0xA557, 0x51F9, 0xA558, 0x51FA, 0xA559, 0x51F8, + 0xA55A, 0x520A, 0xA55B, 0x52A0, 0xA55C, 0x529F, 0xA55D, 0x5305, 0xA55E, 0x5306, 0xA55F, 0x5317, 0xA560, 0x531D, 0xA561, 0x4EDF, + 0xA562, 0x534A, 0xA563, 0x5349, 0xA564, 0x5361, 0xA565, 0x5360, 0xA566, 0x536F, 0xA567, 0x536E, 0xA568, 0x53BB, 0xA569, 0x53EF, + 0xA56A, 0x53E4, 0xA56B, 0x53F3, 0xA56C, 0x53EC, 0xA56D, 0x53EE, 0xA56E, 0x53E9, 0xA56F, 0x53E8, 0xA570, 0x53FC, 0xA571, 0x53F8, + 0xA572, 0x53F5, 0xA573, 0x53EB, 0xA574, 0x53E6, 0xA575, 0x53EA, 0xA576, 0x53F2, 0xA577, 0x53F1, 0xA578, 0x53F0, 0xA579, 0x53E5, + 0xA57A, 0x53ED, 0xA57B, 0x53FB, 0xA57C, 0x56DB, 0xA57D, 0x56DA, 0xA57E, 0x5916, 0xA5A1, 0x592E, 0xA5A2, 0x5931, 0xA5A3, 0x5974, + 0xA5A4, 0x5976, 0xA5A5, 0x5B55, 0xA5A6, 0x5B83, 0xA5A7, 0x5C3C, 0xA5A8, 0x5DE8, 0xA5A9, 0x5DE7, 0xA5AA, 0x5DE6, 0xA5AB, 0x5E02, + 0xA5AC, 0x5E03, 0xA5AD, 0x5E73, 0xA5AE, 0x5E7C, 0xA5AF, 0x5F01, 0xA5B0, 0x5F18, 0xA5B1, 0x5F17, 0xA5B2, 0x5FC5, 0xA5B3, 0x620A, + 0xA5B4, 0x6253, 0xA5B5, 0x6254, 0xA5B6, 0x6252, 0xA5B7, 0x6251, 0xA5B8, 0x65A5, 0xA5B9, 0x65E6, 0xA5BA, 0x672E, 0xA5BB, 0x672C, + 0xA5BC, 0x672A, 0xA5BD, 0x672B, 0xA5BE, 0x672D, 0xA5BF, 0x6B63, 0xA5C0, 0x6BCD, 0xA5C1, 0x6C11, 0xA5C2, 0x6C10, 0xA5C3, 0x6C38, + 0xA5C4, 0x6C41, 0xA5C5, 0x6C40, 0xA5C6, 0x6C3E, 0xA5C7, 0x72AF, 0xA5C8, 0x7384, 0xA5C9, 0x7389, 0xA5CA, 0x74DC, 0xA5CB, 0x74E6, + 0xA5CC, 0x7518, 0xA5CD, 0x751F, 0xA5CE, 0x7528, 0xA5CF, 0x7529, 0xA5D0, 0x7530, 0xA5D1, 0x7531, 0xA5D2, 0x7532, 0xA5D3, 0x7533, + 0xA5D4, 0x758B, 0xA5D5, 0x767D, 0xA5D6, 0x76AE, 0xA5D7, 0x76BF, 0xA5D8, 0x76EE, 0xA5D9, 0x77DB, 0xA5DA, 0x77E2, 0xA5DB, 0x77F3, + 0xA5DC, 0x793A, 0xA5DD, 0x79BE, 0xA5DE, 0x7A74, 0xA5DF, 0x7ACB, 0xA5E0, 0x4E1E, 0xA5E1, 0x4E1F, 0xA5E2, 0x4E52, 0xA5E3, 0x4E53, + 0xA5E4, 0x4E69, 0xA5E5, 0x4E99, 0xA5E6, 0x4EA4, 0xA5E7, 0x4EA6, 0xA5E8, 0x4EA5, 0xA5E9, 0x4EFF, 0xA5EA, 0x4F09, 0xA5EB, 0x4F19, + 0xA5EC, 0x4F0A, 0xA5ED, 0x4F15, 0xA5EE, 0x4F0D, 0xA5EF, 0x4F10, 0xA5F0, 0x4F11, 0xA5F1, 0x4F0F, 0xA5F2, 0x4EF2, 0xA5F3, 0x4EF6, + 0xA5F4, 0x4EFB, 0xA5F5, 0x4EF0, 0xA5F6, 0x4EF3, 0xA5F7, 0x4EFD, 0xA5F8, 0x4F01, 0xA5F9, 0x4F0B, 0xA5FA, 0x5149, 0xA5FB, 0x5147, + 0xA5FC, 0x5146, 0xA5FD, 0x5148, 0xA5FE, 0x5168, 0xA640, 0x5171, 0xA641, 0x518D, 0xA642, 0x51B0, 0xA643, 0x5217, 0xA644, 0x5211, + 0xA645, 0x5212, 0xA646, 0x520E, 0xA647, 0x5216, 0xA648, 0x52A3, 0xA649, 0x5308, 0xA64A, 0x5321, 0xA64B, 0x5320, 0xA64C, 0x5370, + 0xA64D, 0x5371, 0xA64E, 0x5409, 0xA64F, 0x540F, 0xA650, 0x540C, 0xA651, 0x540A, 0xA652, 0x5410, 0xA653, 0x5401, 0xA654, 0x540B, + 0xA655, 0x5404, 0xA656, 0x5411, 0xA657, 0x540D, 0xA658, 0x5408, 0xA659, 0x5403, 0xA65A, 0x540E, 0xA65B, 0x5406, 0xA65C, 0x5412, + 0xA65D, 0x56E0, 0xA65E, 0x56DE, 0xA65F, 0x56DD, 0xA660, 0x5733, 0xA661, 0x5730, 0xA662, 0x5728, 0xA663, 0x572D, 0xA664, 0x572C, + 0xA665, 0x572F, 0xA666, 0x5729, 0xA667, 0x5919, 0xA668, 0x591A, 0xA669, 0x5937, 0xA66A, 0x5938, 0xA66B, 0x5984, 0xA66C, 0x5978, + 0xA66D, 0x5983, 0xA66E, 0x597D, 0xA66F, 0x5979, 0xA670, 0x5982, 0xA671, 0x5981, 0xA672, 0x5B57, 0xA673, 0x5B58, 0xA674, 0x5B87, + 0xA675, 0x5B88, 0xA676, 0x5B85, 0xA677, 0x5B89, 0xA678, 0x5BFA, 0xA679, 0x5C16, 0xA67A, 0x5C79, 0xA67B, 0x5DDE, 0xA67C, 0x5E06, + 0xA67D, 0x5E76, 0xA67E, 0x5E74, 0xA6A1, 0x5F0F, 0xA6A2, 0x5F1B, 0xA6A3, 0x5FD9, 0xA6A4, 0x5FD6, 0xA6A5, 0x620E, 0xA6A6, 0x620C, + 0xA6A7, 0x620D, 0xA6A8, 0x6210, 0xA6A9, 0x6263, 0xA6AA, 0x625B, 0xA6AB, 0x6258, 0xA6AC, 0x6536, 0xA6AD, 0x65E9, 0xA6AE, 0x65E8, + 0xA6AF, 0x65EC, 0xA6B0, 0x65ED, 0xA6B1, 0x66F2, 0xA6B2, 0x66F3, 0xA6B3, 0x6709, 0xA6B4, 0x673D, 0xA6B5, 0x6734, 0xA6B6, 0x6731, + 0xA6B7, 0x6735, 0xA6B8, 0x6B21, 0xA6B9, 0x6B64, 0xA6BA, 0x6B7B, 0xA6BB, 0x6C16, 0xA6BC, 0x6C5D, 0xA6BD, 0x6C57, 0xA6BE, 0x6C59, + 0xA6BF, 0x6C5F, 0xA6C0, 0x6C60, 0xA6C1, 0x6C50, 0xA6C2, 0x6C55, 0xA6C3, 0x6C61, 0xA6C4, 0x6C5B, 0xA6C5, 0x6C4D, 0xA6C6, 0x6C4E, + 0xA6C7, 0x7070, 0xA6C8, 0x725F, 0xA6C9, 0x725D, 0xA6CA, 0x767E, 0xA6CB, 0x7AF9, 0xA6CC, 0x7C73, 0xA6CD, 0x7CF8, 0xA6CE, 0x7F36, + 0xA6CF, 0x7F8A, 0xA6D0, 0x7FBD, 0xA6D1, 0x8001, 0xA6D2, 0x8003, 0xA6D3, 0x800C, 0xA6D4, 0x8012, 0xA6D5, 0x8033, 0xA6D6, 0x807F, + 0xA6D7, 0x8089, 0xA6D8, 0x808B, 0xA6D9, 0x808C, 0xA6DA, 0x81E3, 0xA6DB, 0x81EA, 0xA6DC, 0x81F3, 0xA6DD, 0x81FC, 0xA6DE, 0x820C, + 0xA6DF, 0x821B, 0xA6E0, 0x821F, 0xA6E1, 0x826E, 0xA6E2, 0x8272, 0xA6E3, 0x827E, 0xA6E4, 0x866B, 0xA6E5, 0x8840, 0xA6E6, 0x884C, + 0xA6E7, 0x8863, 0xA6E8, 0x897F, 0xA6E9, 0x9621, 0xA6EA, 0x4E32, 0xA6EB, 0x4EA8, 0xA6EC, 0x4F4D, 0xA6ED, 0x4F4F, 0xA6EE, 0x4F47, + 0xA6EF, 0x4F57, 0xA6F0, 0x4F5E, 0xA6F1, 0x4F34, 0xA6F2, 0x4F5B, 0xA6F3, 0x4F55, 0xA6F4, 0x4F30, 0xA6F5, 0x4F50, 0xA6F6, 0x4F51, + 0xA6F7, 0x4F3D, 0xA6F8, 0x4F3A, 0xA6F9, 0x4F38, 0xA6FA, 0x4F43, 0xA6FB, 0x4F54, 0xA6FC, 0x4F3C, 0xA6FD, 0x4F46, 0xA6FE, 0x4F63, + 0xA740, 0x4F5C, 0xA741, 0x4F60, 0xA742, 0x4F2F, 0xA743, 0x4F4E, 0xA744, 0x4F36, 0xA745, 0x4F59, 0xA746, 0x4F5D, 0xA747, 0x4F48, + 0xA748, 0x4F5A, 0xA749, 0x514C, 0xA74A, 0x514B, 0xA74B, 0x514D, 0xA74C, 0x5175, 0xA74D, 0x51B6, 0xA74E, 0x51B7, 0xA74F, 0x5225, + 0xA750, 0x5224, 0xA751, 0x5229, 0xA752, 0x522A, 0xA753, 0x5228, 0xA754, 0x52AB, 0xA755, 0x52A9, 0xA756, 0x52AA, 0xA757, 0x52AC, + 0xA758, 0x5323, 0xA759, 0x5373, 0xA75A, 0x5375, 0xA75B, 0x541D, 0xA75C, 0x542D, 0xA75D, 0x541E, 0xA75E, 0x543E, 0xA75F, 0x5426, + 0xA760, 0x544E, 0xA761, 0x5427, 0xA762, 0x5446, 0xA763, 0x5443, 0xA764, 0x5433, 0xA765, 0x5448, 0xA766, 0x5442, 0xA767, 0x541B, + 0xA768, 0x5429, 0xA769, 0x544A, 0xA76A, 0x5439, 0xA76B, 0x543B, 0xA76C, 0x5438, 0xA76D, 0x542E, 0xA76E, 0x5435, 0xA76F, 0x5436, + 0xA770, 0x5420, 0xA771, 0x543C, 0xA772, 0x5440, 0xA773, 0x5431, 0xA774, 0x542B, 0xA775, 0x541F, 0xA776, 0x542C, 0xA777, 0x56EA, + 0xA778, 0x56F0, 0xA779, 0x56E4, 0xA77A, 0x56EB, 0xA77B, 0x574A, 0xA77C, 0x5751, 0xA77D, 0x5740, 0xA77E, 0x574D, 0xA7A1, 0x5747, + 0xA7A2, 0x574E, 0xA7A3, 0x573E, 0xA7A4, 0x5750, 0xA7A5, 0x574F, 0xA7A6, 0x573B, 0xA7A7, 0x58EF, 0xA7A8, 0x593E, 0xA7A9, 0x599D, + 0xA7AA, 0x5992, 0xA7AB, 0x59A8, 0xA7AC, 0x599E, 0xA7AD, 0x59A3, 0xA7AE, 0x5999, 0xA7AF, 0x5996, 0xA7B0, 0x598D, 0xA7B1, 0x59A4, + 0xA7B2, 0x5993, 0xA7B3, 0x598A, 0xA7B4, 0x59A5, 0xA7B5, 0x5B5D, 0xA7B6, 0x5B5C, 0xA7B7, 0x5B5A, 0xA7B8, 0x5B5B, 0xA7B9, 0x5B8C, + 0xA7BA, 0x5B8B, 0xA7BB, 0x5B8F, 0xA7BC, 0x5C2C, 0xA7BD, 0x5C40, 0xA7BE, 0x5C41, 0xA7BF, 0x5C3F, 0xA7C0, 0x5C3E, 0xA7C1, 0x5C90, + 0xA7C2, 0x5C91, 0xA7C3, 0x5C94, 0xA7C4, 0x5C8C, 0xA7C5, 0x5DEB, 0xA7C6, 0x5E0C, 0xA7C7, 0x5E8F, 0xA7C8, 0x5E87, 0xA7C9, 0x5E8A, + 0xA7CA, 0x5EF7, 0xA7CB, 0x5F04, 0xA7CC, 0x5F1F, 0xA7CD, 0x5F64, 0xA7CE, 0x5F62, 0xA7CF, 0x5F77, 0xA7D0, 0x5F79, 0xA7D1, 0x5FD8, + 0xA7D2, 0x5FCC, 0xA7D3, 0x5FD7, 0xA7D4, 0x5FCD, 0xA7D5, 0x5FF1, 0xA7D6, 0x5FEB, 0xA7D7, 0x5FF8, 0xA7D8, 0x5FEA, 0xA7D9, 0x6212, + 0xA7DA, 0x6211, 0xA7DB, 0x6284, 0xA7DC, 0x6297, 0xA7DD, 0x6296, 0xA7DE, 0x6280, 0xA7DF, 0x6276, 0xA7E0, 0x6289, 0xA7E1, 0x626D, + 0xA7E2, 0x628A, 0xA7E3, 0x627C, 0xA7E4, 0x627E, 0xA7E5, 0x6279, 0xA7E6, 0x6273, 0xA7E7, 0x6292, 0xA7E8, 0x626F, 0xA7E9, 0x6298, + 0xA7EA, 0x626E, 0xA7EB, 0x6295, 0xA7EC, 0x6293, 0xA7ED, 0x6291, 0xA7EE, 0x6286, 0xA7EF, 0x6539, 0xA7F0, 0x653B, 0xA7F1, 0x6538, + 0xA7F2, 0x65F1, 0xA7F3, 0x66F4, 0xA7F4, 0x675F, 0xA7F5, 0x674E, 0xA7F6, 0x674F, 0xA7F7, 0x6750, 0xA7F8, 0x6751, 0xA7F9, 0x675C, + 0xA7FA, 0x6756, 0xA7FB, 0x675E, 0xA7FC, 0x6749, 0xA7FD, 0x6746, 0xA7FE, 0x6760, 0xA840, 0x6753, 0xA841, 0x6757, 0xA842, 0x6B65, + 0xA843, 0x6BCF, 0xA844, 0x6C42, 0xA845, 0x6C5E, 0xA846, 0x6C99, 0xA847, 0x6C81, 0xA848, 0x6C88, 0xA849, 0x6C89, 0xA84A, 0x6C85, + 0xA84B, 0x6C9B, 0xA84C, 0x6C6A, 0xA84D, 0x6C7A, 0xA84E, 0x6C90, 0xA84F, 0x6C70, 0xA850, 0x6C8C, 0xA851, 0x6C68, 0xA852, 0x6C96, + 0xA853, 0x6C92, 0xA854, 0x6C7D, 0xA855, 0x6C83, 0xA856, 0x6C72, 0xA857, 0x6C7E, 0xA858, 0x6C74, 0xA859, 0x6C86, 0xA85A, 0x6C76, + 0xA85B, 0x6C8D, 0xA85C, 0x6C94, 0xA85D, 0x6C98, 0xA85E, 0x6C82, 0xA85F, 0x7076, 0xA860, 0x707C, 0xA861, 0x707D, 0xA862, 0x7078, + 0xA863, 0x7262, 0xA864, 0x7261, 0xA865, 0x7260, 0xA866, 0x72C4, 0xA867, 0x72C2, 0xA868, 0x7396, 0xA869, 0x752C, 0xA86A, 0x752B, + 0xA86B, 0x7537, 0xA86C, 0x7538, 0xA86D, 0x7682, 0xA86E, 0x76EF, 0xA86F, 0x77E3, 0xA870, 0x79C1, 0xA871, 0x79C0, 0xA872, 0x79BF, + 0xA873, 0x7A76, 0xA874, 0x7CFB, 0xA875, 0x7F55, 0xA876, 0x8096, 0xA877, 0x8093, 0xA878, 0x809D, 0xA879, 0x8098, 0xA87A, 0x809B, + 0xA87B, 0x809A, 0xA87C, 0x80B2, 0xA87D, 0x826F, 0xA87E, 0x8292, 0xA8A1, 0x828B, 0xA8A2, 0x828D, 0xA8A3, 0x898B, 0xA8A4, 0x89D2, + 0xA8A5, 0x8A00, 0xA8A6, 0x8C37, 0xA8A7, 0x8C46, 0xA8A8, 0x8C55, 0xA8A9, 0x8C9D, 0xA8AA, 0x8D64, 0xA8AB, 0x8D70, 0xA8AC, 0x8DB3, + 0xA8AD, 0x8EAB, 0xA8AE, 0x8ECA, 0xA8AF, 0x8F9B, 0xA8B0, 0x8FB0, 0xA8B1, 0x8FC2, 0xA8B2, 0x8FC6, 0xA8B3, 0x8FC5, 0xA8B4, 0x8FC4, + 0xA8B5, 0x5DE1, 0xA8B6, 0x9091, 0xA8B7, 0x90A2, 0xA8B8, 0x90AA, 0xA8B9, 0x90A6, 0xA8BA, 0x90A3, 0xA8BB, 0x9149, 0xA8BC, 0x91C6, + 0xA8BD, 0x91CC, 0xA8BE, 0x9632, 0xA8BF, 0x962E, 0xA8C0, 0x9631, 0xA8C1, 0x962A, 0xA8C2, 0x962C, 0xA8C3, 0x4E26, 0xA8C4, 0x4E56, + 0xA8C5, 0x4E73, 0xA8C6, 0x4E8B, 0xA8C7, 0x4E9B, 0xA8C8, 0x4E9E, 0xA8C9, 0x4EAB, 0xA8CA, 0x4EAC, 0xA8CB, 0x4F6F, 0xA8CC, 0x4F9D, + 0xA8CD, 0x4F8D, 0xA8CE, 0x4F73, 0xA8CF, 0x4F7F, 0xA8D0, 0x4F6C, 0xA8D1, 0x4F9B, 0xA8D2, 0x4F8B, 0xA8D3, 0x4F86, 0xA8D4, 0x4F83, + 0xA8D5, 0x4F70, 0xA8D6, 0x4F75, 0xA8D7, 0x4F88, 0xA8D8, 0x4F69, 0xA8D9, 0x4F7B, 0xA8DA, 0x4F96, 0xA8DB, 0x4F7E, 0xA8DC, 0x4F8F, + 0xA8DD, 0x4F91, 0xA8DE, 0x4F7A, 0xA8DF, 0x5154, 0xA8E0, 0x5152, 0xA8E1, 0x5155, 0xA8E2, 0x5169, 0xA8E3, 0x5177, 0xA8E4, 0x5176, + 0xA8E5, 0x5178, 0xA8E6, 0x51BD, 0xA8E7, 0x51FD, 0xA8E8, 0x523B, 0xA8E9, 0x5238, 0xA8EA, 0x5237, 0xA8EB, 0x523A, 0xA8EC, 0x5230, + 0xA8ED, 0x522E, 0xA8EE, 0x5236, 0xA8EF, 0x5241, 0xA8F0, 0x52BE, 0xA8F1, 0x52BB, 0xA8F2, 0x5352, 0xA8F3, 0x5354, 0xA8F4, 0x5353, + 0xA8F5, 0x5351, 0xA8F6, 0x5366, 0xA8F7, 0x5377, 0xA8F8, 0x5378, 0xA8F9, 0x5379, 0xA8FA, 0x53D6, 0xA8FB, 0x53D4, 0xA8FC, 0x53D7, + 0xA8FD, 0x5473, 0xA8FE, 0x5475, 0xA940, 0x5496, 0xA941, 0x5478, 0xA942, 0x5495, 0xA943, 0x5480, 0xA944, 0x547B, 0xA945, 0x5477, + 0xA946, 0x5484, 0xA947, 0x5492, 0xA948, 0x5486, 0xA949, 0x547C, 0xA94A, 0x5490, 0xA94B, 0x5471, 0xA94C, 0x5476, 0xA94D, 0x548C, + 0xA94E, 0x549A, 0xA94F, 0x5462, 0xA950, 0x5468, 0xA951, 0x548B, 0xA952, 0x547D, 0xA953, 0x548E, 0xA954, 0x56FA, 0xA955, 0x5783, + 0xA956, 0x5777, 0xA957, 0x576A, 0xA958, 0x5769, 0xA959, 0x5761, 0xA95A, 0x5766, 0xA95B, 0x5764, 0xA95C, 0x577C, 0xA95D, 0x591C, + 0xA95E, 0x5949, 0xA95F, 0x5947, 0xA960, 0x5948, 0xA961, 0x5944, 0xA962, 0x5954, 0xA963, 0x59BE, 0xA964, 0x59BB, 0xA965, 0x59D4, + 0xA966, 0x59B9, 0xA967, 0x59AE, 0xA968, 0x59D1, 0xA969, 0x59C6, 0xA96A, 0x59D0, 0xA96B, 0x59CD, 0xA96C, 0x59CB, 0xA96D, 0x59D3, + 0xA96E, 0x59CA, 0xA96F, 0x59AF, 0xA970, 0x59B3, 0xA971, 0x59D2, 0xA972, 0x59C5, 0xA973, 0x5B5F, 0xA974, 0x5B64, 0xA975, 0x5B63, + 0xA976, 0x5B97, 0xA977, 0x5B9A, 0xA978, 0x5B98, 0xA979, 0x5B9C, 0xA97A, 0x5B99, 0xA97B, 0x5B9B, 0xA97C, 0x5C1A, 0xA97D, 0x5C48, + 0xA97E, 0x5C45, 0xA9A1, 0x5C46, 0xA9A2, 0x5CB7, 0xA9A3, 0x5CA1, 0xA9A4, 0x5CB8, 0xA9A5, 0x5CA9, 0xA9A6, 0x5CAB, 0xA9A7, 0x5CB1, + 0xA9A8, 0x5CB3, 0xA9A9, 0x5E18, 0xA9AA, 0x5E1A, 0xA9AB, 0x5E16, 0xA9AC, 0x5E15, 0xA9AD, 0x5E1B, 0xA9AE, 0x5E11, 0xA9AF, 0x5E78, + 0xA9B0, 0x5E9A, 0xA9B1, 0x5E97, 0xA9B2, 0x5E9C, 0xA9B3, 0x5E95, 0xA9B4, 0x5E96, 0xA9B5, 0x5EF6, 0xA9B6, 0x5F26, 0xA9B7, 0x5F27, + 0xA9B8, 0x5F29, 0xA9B9, 0x5F80, 0xA9BA, 0x5F81, 0xA9BB, 0x5F7F, 0xA9BC, 0x5F7C, 0xA9BD, 0x5FDD, 0xA9BE, 0x5FE0, 0xA9BF, 0x5FFD, + 0xA9C0, 0x5FF5, 0xA9C1, 0x5FFF, 0xA9C2, 0x600F, 0xA9C3, 0x6014, 0xA9C4, 0x602F, 0xA9C5, 0x6035, 0xA9C6, 0x6016, 0xA9C7, 0x602A, + 0xA9C8, 0x6015, 0xA9C9, 0x6021, 0xA9CA, 0x6027, 0xA9CB, 0x6029, 0xA9CC, 0x602B, 0xA9CD, 0x601B, 0xA9CE, 0x6216, 0xA9CF, 0x6215, + 0xA9D0, 0x623F, 0xA9D1, 0x623E, 0xA9D2, 0x6240, 0xA9D3, 0x627F, 0xA9D4, 0x62C9, 0xA9D5, 0x62CC, 0xA9D6, 0x62C4, 0xA9D7, 0x62BF, + 0xA9D8, 0x62C2, 0xA9D9, 0x62B9, 0xA9DA, 0x62D2, 0xA9DB, 0x62DB, 0xA9DC, 0x62AB, 0xA9DD, 0x62D3, 0xA9DE, 0x62D4, 0xA9DF, 0x62CB, + 0xA9E0, 0x62C8, 0xA9E1, 0x62A8, 0xA9E2, 0x62BD, 0xA9E3, 0x62BC, 0xA9E4, 0x62D0, 0xA9E5, 0x62D9, 0xA9E6, 0x62C7, 0xA9E7, 0x62CD, + 0xA9E8, 0x62B5, 0xA9E9, 0x62DA, 0xA9EA, 0x62B1, 0xA9EB, 0x62D8, 0xA9EC, 0x62D6, 0xA9ED, 0x62D7, 0xA9EE, 0x62C6, 0xA9EF, 0x62AC, + 0xA9F0, 0x62CE, 0xA9F1, 0x653E, 0xA9F2, 0x65A7, 0xA9F3, 0x65BC, 0xA9F4, 0x65FA, 0xA9F5, 0x6614, 0xA9F6, 0x6613, 0xA9F7, 0x660C, + 0xA9F8, 0x6606, 0xA9F9, 0x6602, 0xA9FA, 0x660E, 0xA9FB, 0x6600, 0xA9FC, 0x660F, 0xA9FD, 0x6615, 0xA9FE, 0x660A, 0xAA40, 0x6607, + 0xAA41, 0x670D, 0xAA42, 0x670B, 0xAA43, 0x676D, 0xAA44, 0x678B, 0xAA45, 0x6795, 0xAA46, 0x6771, 0xAA47, 0x679C, 0xAA48, 0x6773, + 0xAA49, 0x6777, 0xAA4A, 0x6787, 0xAA4B, 0x679D, 0xAA4C, 0x6797, 0xAA4D, 0x676F, 0xAA4E, 0x6770, 0xAA4F, 0x677F, 0xAA50, 0x6789, + 0xAA51, 0x677E, 0xAA52, 0x6790, 0xAA53, 0x6775, 0xAA54, 0x679A, 0xAA55, 0x6793, 0xAA56, 0x677C, 0xAA57, 0x676A, 0xAA58, 0x6772, + 0xAA59, 0x6B23, 0xAA5A, 0x6B66, 0xAA5B, 0x6B67, 0xAA5C, 0x6B7F, 0xAA5D, 0x6C13, 0xAA5E, 0x6C1B, 0xAA5F, 0x6CE3, 0xAA60, 0x6CE8, + 0xAA61, 0x6CF3, 0xAA62, 0x6CB1, 0xAA63, 0x6CCC, 0xAA64, 0x6CE5, 0xAA65, 0x6CB3, 0xAA66, 0x6CBD, 0xAA67, 0x6CBE, 0xAA68, 0x6CBC, + 0xAA69, 0x6CE2, 0xAA6A, 0x6CAB, 0xAA6B, 0x6CD5, 0xAA6C, 0x6CD3, 0xAA6D, 0x6CB8, 0xAA6E, 0x6CC4, 0xAA6F, 0x6CB9, 0xAA70, 0x6CC1, + 0xAA71, 0x6CAE, 0xAA72, 0x6CD7, 0xAA73, 0x6CC5, 0xAA74, 0x6CF1, 0xAA75, 0x6CBF, 0xAA76, 0x6CBB, 0xAA77, 0x6CE1, 0xAA78, 0x6CDB, + 0xAA79, 0x6CCA, 0xAA7A, 0x6CAC, 0xAA7B, 0x6CEF, 0xAA7C, 0x6CDC, 0xAA7D, 0x6CD6, 0xAA7E, 0x6CE0, 0xAAA1, 0x7095, 0xAAA2, 0x708E, + 0xAAA3, 0x7092, 0xAAA4, 0x708A, 0xAAA5, 0x7099, 0xAAA6, 0x722C, 0xAAA7, 0x722D, 0xAAA8, 0x7238, 0xAAA9, 0x7248, 0xAAAA, 0x7267, + 0xAAAB, 0x7269, 0xAAAC, 0x72C0, 0xAAAD, 0x72CE, 0xAAAE, 0x72D9, 0xAAAF, 0x72D7, 0xAAB0, 0x72D0, 0xAAB1, 0x73A9, 0xAAB2, 0x73A8, + 0xAAB3, 0x739F, 0xAAB4, 0x73AB, 0xAAB5, 0x73A5, 0xAAB6, 0x753D, 0xAAB7, 0x759D, 0xAAB8, 0x7599, 0xAAB9, 0x759A, 0xAABA, 0x7684, + 0xAABB, 0x76C2, 0xAABC, 0x76F2, 0xAABD, 0x76F4, 0xAABE, 0x77E5, 0xAABF, 0x77FD, 0xAAC0, 0x793E, 0xAAC1, 0x7940, 0xAAC2, 0x7941, + 0xAAC3, 0x79C9, 0xAAC4, 0x79C8, 0xAAC5, 0x7A7A, 0xAAC6, 0x7A79, 0xAAC7, 0x7AFA, 0xAAC8, 0x7CFE, 0xAAC9, 0x7F54, 0xAACA, 0x7F8C, + 0xAACB, 0x7F8B, 0xAACC, 0x8005, 0xAACD, 0x80BA, 0xAACE, 0x80A5, 0xAACF, 0x80A2, 0xAAD0, 0x80B1, 0xAAD1, 0x80A1, 0xAAD2, 0x80AB, + 0xAAD3, 0x80A9, 0xAAD4, 0x80B4, 0xAAD5, 0x80AA, 0xAAD6, 0x80AF, 0xAAD7, 0x81E5, 0xAAD8, 0x81FE, 0xAAD9, 0x820D, 0xAADA, 0x82B3, + 0xAADB, 0x829D, 0xAADC, 0x8299, 0xAADD, 0x82AD, 0xAADE, 0x82BD, 0xAADF, 0x829F, 0xAAE0, 0x82B9, 0xAAE1, 0x82B1, 0xAAE2, 0x82AC, + 0xAAE3, 0x82A5, 0xAAE4, 0x82AF, 0xAAE5, 0x82B8, 0xAAE6, 0x82A3, 0xAAE7, 0x82B0, 0xAAE8, 0x82BE, 0xAAE9, 0x82B7, 0xAAEA, 0x864E, + 0xAAEB, 0x8671, 0xAAEC, 0x521D, 0xAAED, 0x8868, 0xAAEE, 0x8ECB, 0xAAEF, 0x8FCE, 0xAAF0, 0x8FD4, 0xAAF1, 0x8FD1, 0xAAF2, 0x90B5, + 0xAAF3, 0x90B8, 0xAAF4, 0x90B1, 0xAAF5, 0x90B6, 0xAAF6, 0x91C7, 0xAAF7, 0x91D1, 0xAAF8, 0x9577, 0xAAF9, 0x9580, 0xAAFA, 0x961C, + 0xAAFB, 0x9640, 0xAAFC, 0x963F, 0xAAFD, 0x963B, 0xAAFE, 0x9644, 0xAB40, 0x9642, 0xAB41, 0x96B9, 0xAB42, 0x96E8, 0xAB43, 0x9752, + 0xAB44, 0x975E, 0xAB45, 0x4E9F, 0xAB46, 0x4EAD, 0xAB47, 0x4EAE, 0xAB48, 0x4FE1, 0xAB49, 0x4FB5, 0xAB4A, 0x4FAF, 0xAB4B, 0x4FBF, + 0xAB4C, 0x4FE0, 0xAB4D, 0x4FD1, 0xAB4E, 0x4FCF, 0xAB4F, 0x4FDD, 0xAB50, 0x4FC3, 0xAB51, 0x4FB6, 0xAB52, 0x4FD8, 0xAB53, 0x4FDF, + 0xAB54, 0x4FCA, 0xAB55, 0x4FD7, 0xAB56, 0x4FAE, 0xAB57, 0x4FD0, 0xAB58, 0x4FC4, 0xAB59, 0x4FC2, 0xAB5A, 0x4FDA, 0xAB5B, 0x4FCE, + 0xAB5C, 0x4FDE, 0xAB5D, 0x4FB7, 0xAB5E, 0x5157, 0xAB5F, 0x5192, 0xAB60, 0x5191, 0xAB61, 0x51A0, 0xAB62, 0x524E, 0xAB63, 0x5243, + 0xAB64, 0x524A, 0xAB65, 0x524D, 0xAB66, 0x524C, 0xAB67, 0x524B, 0xAB68, 0x5247, 0xAB69, 0x52C7, 0xAB6A, 0x52C9, 0xAB6B, 0x52C3, + 0xAB6C, 0x52C1, 0xAB6D, 0x530D, 0xAB6E, 0x5357, 0xAB6F, 0x537B, 0xAB70, 0x539A, 0xAB71, 0x53DB, 0xAB72, 0x54AC, 0xAB73, 0x54C0, + 0xAB74, 0x54A8, 0xAB75, 0x54CE, 0xAB76, 0x54C9, 0xAB77, 0x54B8, 0xAB78, 0x54A6, 0xAB79, 0x54B3, 0xAB7A, 0x54C7, 0xAB7B, 0x54C2, + 0xAB7C, 0x54BD, 0xAB7D, 0x54AA, 0xAB7E, 0x54C1, 0xABA1, 0x54C4, 0xABA2, 0x54C8, 0xABA3, 0x54AF, 0xABA4, 0x54AB, 0xABA5, 0x54B1, + 0xABA6, 0x54BB, 0xABA7, 0x54A9, 0xABA8, 0x54A7, 0xABA9, 0x54BF, 0xABAA, 0x56FF, 0xABAB, 0x5782, 0xABAC, 0x578B, 0xABAD, 0x57A0, + 0xABAE, 0x57A3, 0xABAF, 0x57A2, 0xABB0, 0x57CE, 0xABB1, 0x57AE, 0xABB2, 0x5793, 0xABB3, 0x5955, 0xABB4, 0x5951, 0xABB5, 0x594F, + 0xABB6, 0x594E, 0xABB7, 0x5950, 0xABB8, 0x59DC, 0xABB9, 0x59D8, 0xABBA, 0x59FF, 0xABBB, 0x59E3, 0xABBC, 0x59E8, 0xABBD, 0x5A03, + 0xABBE, 0x59E5, 0xABBF, 0x59EA, 0xABC0, 0x59DA, 0xABC1, 0x59E6, 0xABC2, 0x5A01, 0xABC3, 0x59FB, 0xABC4, 0x5B69, 0xABC5, 0x5BA3, + 0xABC6, 0x5BA6, 0xABC7, 0x5BA4, 0xABC8, 0x5BA2, 0xABC9, 0x5BA5, 0xABCA, 0x5C01, 0xABCB, 0x5C4E, 0xABCC, 0x5C4F, 0xABCD, 0x5C4D, + 0xABCE, 0x5C4B, 0xABCF, 0x5CD9, 0xABD0, 0x5CD2, 0xABD1, 0x5DF7, 0xABD2, 0x5E1D, 0xABD3, 0x5E25, 0xABD4, 0x5E1F, 0xABD5, 0x5E7D, + 0xABD6, 0x5EA0, 0xABD7, 0x5EA6, 0xABD8, 0x5EFA, 0xABD9, 0x5F08, 0xABDA, 0x5F2D, 0xABDB, 0x5F65, 0xABDC, 0x5F88, 0xABDD, 0x5F85, + 0xABDE, 0x5F8A, 0xABDF, 0x5F8B, 0xABE0, 0x5F87, 0xABE1, 0x5F8C, 0xABE2, 0x5F89, 0xABE3, 0x6012, 0xABE4, 0x601D, 0xABE5, 0x6020, + 0xABE6, 0x6025, 0xABE7, 0x600E, 0xABE8, 0x6028, 0xABE9, 0x604D, 0xABEA, 0x6070, 0xABEB, 0x6068, 0xABEC, 0x6062, 0xABED, 0x6046, + 0xABEE, 0x6043, 0xABEF, 0x606C, 0xABF0, 0x606B, 0xABF1, 0x606A, 0xABF2, 0x6064, 0xABF3, 0x6241, 0xABF4, 0x62DC, 0xABF5, 0x6316, + 0xABF6, 0x6309, 0xABF7, 0x62FC, 0xABF8, 0x62ED, 0xABF9, 0x6301, 0xABFA, 0x62EE, 0xABFB, 0x62FD, 0xABFC, 0x6307, 0xABFD, 0x62F1, + 0xABFE, 0x62F7, 0xAC40, 0x62EF, 0xAC41, 0x62EC, 0xAC42, 0x62FE, 0xAC43, 0x62F4, 0xAC44, 0x6311, 0xAC45, 0x6302, 0xAC46, 0x653F, + 0xAC47, 0x6545, 0xAC48, 0x65AB, 0xAC49, 0x65BD, 0xAC4A, 0x65E2, 0xAC4B, 0x6625, 0xAC4C, 0x662D, 0xAC4D, 0x6620, 0xAC4E, 0x6627, + 0xAC4F, 0x662F, 0xAC50, 0x661F, 0xAC51, 0x6628, 0xAC52, 0x6631, 0xAC53, 0x6624, 0xAC54, 0x66F7, 0xAC55, 0x67FF, 0xAC56, 0x67D3, + 0xAC57, 0x67F1, 0xAC58, 0x67D4, 0xAC59, 0x67D0, 0xAC5A, 0x67EC, 0xAC5B, 0x67B6, 0xAC5C, 0x67AF, 0xAC5D, 0x67F5, 0xAC5E, 0x67E9, + 0xAC5F, 0x67EF, 0xAC60, 0x67C4, 0xAC61, 0x67D1, 0xAC62, 0x67B4, 0xAC63, 0x67DA, 0xAC64, 0x67E5, 0xAC65, 0x67B8, 0xAC66, 0x67CF, + 0xAC67, 0x67DE, 0xAC68, 0x67F3, 0xAC69, 0x67B0, 0xAC6A, 0x67D9, 0xAC6B, 0x67E2, 0xAC6C, 0x67DD, 0xAC6D, 0x67D2, 0xAC6E, 0x6B6A, + 0xAC6F, 0x6B83, 0xAC70, 0x6B86, 0xAC71, 0x6BB5, 0xAC72, 0x6BD2, 0xAC73, 0x6BD7, 0xAC74, 0x6C1F, 0xAC75, 0x6CC9, 0xAC76, 0x6D0B, + 0xAC77, 0x6D32, 0xAC78, 0x6D2A, 0xAC79, 0x6D41, 0xAC7A, 0x6D25, 0xAC7B, 0x6D0C, 0xAC7C, 0x6D31, 0xAC7D, 0x6D1E, 0xAC7E, 0x6D17, + 0xACA1, 0x6D3B, 0xACA2, 0x6D3D, 0xACA3, 0x6D3E, 0xACA4, 0x6D36, 0xACA5, 0x6D1B, 0xACA6, 0x6CF5, 0xACA7, 0x6D39, 0xACA8, 0x6D27, + 0xACA9, 0x6D38, 0xACAA, 0x6D29, 0xACAB, 0x6D2E, 0xACAC, 0x6D35, 0xACAD, 0x6D0E, 0xACAE, 0x6D2B, 0xACAF, 0x70AB, 0xACB0, 0x70BA, + 0xACB1, 0x70B3, 0xACB2, 0x70AC, 0xACB3, 0x70AF, 0xACB4, 0x70AD, 0xACB5, 0x70B8, 0xACB6, 0x70AE, 0xACB7, 0x70A4, 0xACB8, 0x7230, + 0xACB9, 0x7272, 0xACBA, 0x726F, 0xACBB, 0x7274, 0xACBC, 0x72E9, 0xACBD, 0x72E0, 0xACBE, 0x72E1, 0xACBF, 0x73B7, 0xACC0, 0x73CA, + 0xACC1, 0x73BB, 0xACC2, 0x73B2, 0xACC3, 0x73CD, 0xACC4, 0x73C0, 0xACC5, 0x73B3, 0xACC6, 0x751A, 0xACC7, 0x752D, 0xACC8, 0x754F, + 0xACC9, 0x754C, 0xACCA, 0x754E, 0xACCB, 0x754B, 0xACCC, 0x75AB, 0xACCD, 0x75A4, 0xACCE, 0x75A5, 0xACCF, 0x75A2, 0xACD0, 0x75A3, + 0xACD1, 0x7678, 0xACD2, 0x7686, 0xACD3, 0x7687, 0xACD4, 0x7688, 0xACD5, 0x76C8, 0xACD6, 0x76C6, 0xACD7, 0x76C3, 0xACD8, 0x76C5, + 0xACD9, 0x7701, 0xACDA, 0x76F9, 0xACDB, 0x76F8, 0xACDC, 0x7709, 0xACDD, 0x770B, 0xACDE, 0x76FE, 0xACDF, 0x76FC, 0xACE0, 0x7707, + 0xACE1, 0x77DC, 0xACE2, 0x7802, 0xACE3, 0x7814, 0xACE4, 0x780C, 0xACE5, 0x780D, 0xACE6, 0x7946, 0xACE7, 0x7949, 0xACE8, 0x7948, + 0xACE9, 0x7947, 0xACEA, 0x79B9, 0xACEB, 0x79BA, 0xACEC, 0x79D1, 0xACED, 0x79D2, 0xACEE, 0x79CB, 0xACEF, 0x7A7F, 0xACF0, 0x7A81, + 0xACF1, 0x7AFF, 0xACF2, 0x7AFD, 0xACF3, 0x7C7D, 0xACF4, 0x7D02, 0xACF5, 0x7D05, 0xACF6, 0x7D00, 0xACF7, 0x7D09, 0xACF8, 0x7D07, + 0xACF9, 0x7D04, 0xACFA, 0x7D06, 0xACFB, 0x7F38, 0xACFC, 0x7F8E, 0xACFD, 0x7FBF, 0xACFE, 0x8004, 0xAD40, 0x8010, 0xAD41, 0x800D, + 0xAD42, 0x8011, 0xAD43, 0x8036, 0xAD44, 0x80D6, 0xAD45, 0x80E5, 0xAD46, 0x80DA, 0xAD47, 0x80C3, 0xAD48, 0x80C4, 0xAD49, 0x80CC, + 0xAD4A, 0x80E1, 0xAD4B, 0x80DB, 0xAD4C, 0x80CE, 0xAD4D, 0x80DE, 0xAD4E, 0x80E4, 0xAD4F, 0x80DD, 0xAD50, 0x81F4, 0xAD51, 0x8222, + 0xAD52, 0x82E7, 0xAD53, 0x8303, 0xAD54, 0x8305, 0xAD55, 0x82E3, 0xAD56, 0x82DB, 0xAD57, 0x82E6, 0xAD58, 0x8304, 0xAD59, 0x82E5, + 0xAD5A, 0x8302, 0xAD5B, 0x8309, 0xAD5C, 0x82D2, 0xAD5D, 0x82D7, 0xAD5E, 0x82F1, 0xAD5F, 0x8301, 0xAD60, 0x82DC, 0xAD61, 0x82D4, + 0xAD62, 0x82D1, 0xAD63, 0x82DE, 0xAD64, 0x82D3, 0xAD65, 0x82DF, 0xAD66, 0x82EF, 0xAD67, 0x8306, 0xAD68, 0x8650, 0xAD69, 0x8679, + 0xAD6A, 0x867B, 0xAD6B, 0x867A, 0xAD6C, 0x884D, 0xAD6D, 0x886B, 0xAD6E, 0x8981, 0xAD6F, 0x89D4, 0xAD70, 0x8A08, 0xAD71, 0x8A02, + 0xAD72, 0x8A03, 0xAD73, 0x8C9E, 0xAD74, 0x8CA0, 0xAD75, 0x8D74, 0xAD76, 0x8D73, 0xAD77, 0x8DB4, 0xAD78, 0x8ECD, 0xAD79, 0x8ECC, + 0xAD7A, 0x8FF0, 0xAD7B, 0x8FE6, 0xAD7C, 0x8FE2, 0xAD7D, 0x8FEA, 0xAD7E, 0x8FE5, 0xADA1, 0x8FED, 0xADA2, 0x8FEB, 0xADA3, 0x8FE4, + 0xADA4, 0x8FE8, 0xADA5, 0x90CA, 0xADA6, 0x90CE, 0xADA7, 0x90C1, 0xADA8, 0x90C3, 0xADA9, 0x914B, 0xADAA, 0x914A, 0xADAB, 0x91CD, + 0xADAC, 0x9582, 0xADAD, 0x9650, 0xADAE, 0x964B, 0xADAF, 0x964C, 0xADB0, 0x964D, 0xADB1, 0x9762, 0xADB2, 0x9769, 0xADB3, 0x97CB, + 0xADB4, 0x97ED, 0xADB5, 0x97F3, 0xADB6, 0x9801, 0xADB7, 0x98A8, 0xADB8, 0x98DB, 0xADB9, 0x98DF, 0xADBA, 0x9996, 0xADBB, 0x9999, + 0xADBC, 0x4E58, 0xADBD, 0x4EB3, 0xADBE, 0x500C, 0xADBF, 0x500D, 0xADC0, 0x5023, 0xADC1, 0x4FEF, 0xADC2, 0x5026, 0xADC3, 0x5025, + 0xADC4, 0x4FF8, 0xADC5, 0x5029, 0xADC6, 0x5016, 0xADC7, 0x5006, 0xADC8, 0x503C, 0xADC9, 0x501F, 0xADCA, 0x501A, 0xADCB, 0x5012, + 0xADCC, 0x5011, 0xADCD, 0x4FFA, 0xADCE, 0x5000, 0xADCF, 0x5014, 0xADD0, 0x5028, 0xADD1, 0x4FF1, 0xADD2, 0x5021, 0xADD3, 0x500B, + 0xADD4, 0x5019, 0xADD5, 0x5018, 0xADD6, 0x4FF3, 0xADD7, 0x4FEE, 0xADD8, 0x502D, 0xADD9, 0x502A, 0xADDA, 0x4FFE, 0xADDB, 0x502B, + 0xADDC, 0x5009, 0xADDD, 0x517C, 0xADDE, 0x51A4, 0xADDF, 0x51A5, 0xADE0, 0x51A2, 0xADE1, 0x51CD, 0xADE2, 0x51CC, 0xADE3, 0x51C6, + 0xADE4, 0x51CB, 0xADE5, 0x5256, 0xADE6, 0x525C, 0xADE7, 0x5254, 0xADE8, 0x525B, 0xADE9, 0x525D, 0xADEA, 0x532A, 0xADEB, 0x537F, + 0xADEC, 0x539F, 0xADED, 0x539D, 0xADEE, 0x53DF, 0xADEF, 0x54E8, 0xADF0, 0x5510, 0xADF1, 0x5501, 0xADF2, 0x5537, 0xADF3, 0x54FC, + 0xADF4, 0x54E5, 0xADF5, 0x54F2, 0xADF6, 0x5506, 0xADF7, 0x54FA, 0xADF8, 0x5514, 0xADF9, 0x54E9, 0xADFA, 0x54ED, 0xADFB, 0x54E1, + 0xADFC, 0x5509, 0xADFD, 0x54EE, 0xADFE, 0x54EA, 0xAE40, 0x54E6, 0xAE41, 0x5527, 0xAE42, 0x5507, 0xAE43, 0x54FD, 0xAE44, 0x550F, + 0xAE45, 0x5703, 0xAE46, 0x5704, 0xAE47, 0x57C2, 0xAE48, 0x57D4, 0xAE49, 0x57CB, 0xAE4A, 0x57C3, 0xAE4B, 0x5809, 0xAE4C, 0x590F, + 0xAE4D, 0x5957, 0xAE4E, 0x5958, 0xAE4F, 0x595A, 0xAE50, 0x5A11, 0xAE51, 0x5A18, 0xAE52, 0x5A1C, 0xAE53, 0x5A1F, 0xAE54, 0x5A1B, + 0xAE55, 0x5A13, 0xAE56, 0x59EC, 0xAE57, 0x5A20, 0xAE58, 0x5A23, 0xAE59, 0x5A29, 0xAE5A, 0x5A25, 0xAE5B, 0x5A0C, 0xAE5C, 0x5A09, + 0xAE5D, 0x5B6B, 0xAE5E, 0x5C58, 0xAE5F, 0x5BB0, 0xAE60, 0x5BB3, 0xAE61, 0x5BB6, 0xAE62, 0x5BB4, 0xAE63, 0x5BAE, 0xAE64, 0x5BB5, + 0xAE65, 0x5BB9, 0xAE66, 0x5BB8, 0xAE67, 0x5C04, 0xAE68, 0x5C51, 0xAE69, 0x5C55, 0xAE6A, 0x5C50, 0xAE6B, 0x5CED, 0xAE6C, 0x5CFD, + 0xAE6D, 0x5CFB, 0xAE6E, 0x5CEA, 0xAE6F, 0x5CE8, 0xAE70, 0x5CF0, 0xAE71, 0x5CF6, 0xAE72, 0x5D01, 0xAE73, 0x5CF4, 0xAE74, 0x5DEE, + 0xAE75, 0x5E2D, 0xAE76, 0x5E2B, 0xAE77, 0x5EAB, 0xAE78, 0x5EAD, 0xAE79, 0x5EA7, 0xAE7A, 0x5F31, 0xAE7B, 0x5F92, 0xAE7C, 0x5F91, + 0xAE7D, 0x5F90, 0xAE7E, 0x6059, 0xAEA1, 0x6063, 0xAEA2, 0x6065, 0xAEA3, 0x6050, 0xAEA4, 0x6055, 0xAEA5, 0x606D, 0xAEA6, 0x6069, + 0xAEA7, 0x606F, 0xAEA8, 0x6084, 0xAEA9, 0x609F, 0xAEAA, 0x609A, 0xAEAB, 0x608D, 0xAEAC, 0x6094, 0xAEAD, 0x608C, 0xAEAE, 0x6085, + 0xAEAF, 0x6096, 0xAEB0, 0x6247, 0xAEB1, 0x62F3, 0xAEB2, 0x6308, 0xAEB3, 0x62FF, 0xAEB4, 0x634E, 0xAEB5, 0x633E, 0xAEB6, 0x632F, + 0xAEB7, 0x6355, 0xAEB8, 0x6342, 0xAEB9, 0x6346, 0xAEBA, 0x634F, 0xAEBB, 0x6349, 0xAEBC, 0x633A, 0xAEBD, 0x6350, 0xAEBE, 0x633D, + 0xAEBF, 0x632A, 0xAEC0, 0x632B, 0xAEC1, 0x6328, 0xAEC2, 0x634D, 0xAEC3, 0x634C, 0xAEC4, 0x6548, 0xAEC5, 0x6549, 0xAEC6, 0x6599, + 0xAEC7, 0x65C1, 0xAEC8, 0x65C5, 0xAEC9, 0x6642, 0xAECA, 0x6649, 0xAECB, 0x664F, 0xAECC, 0x6643, 0xAECD, 0x6652, 0xAECE, 0x664C, + 0xAECF, 0x6645, 0xAED0, 0x6641, 0xAED1, 0x66F8, 0xAED2, 0x6714, 0xAED3, 0x6715, 0xAED4, 0x6717, 0xAED5, 0x6821, 0xAED6, 0x6838, + 0xAED7, 0x6848, 0xAED8, 0x6846, 0xAED9, 0x6853, 0xAEDA, 0x6839, 0xAEDB, 0x6842, 0xAEDC, 0x6854, 0xAEDD, 0x6829, 0xAEDE, 0x68B3, + 0xAEDF, 0x6817, 0xAEE0, 0x684C, 0xAEE1, 0x6851, 0xAEE2, 0x683D, 0xAEE3, 0x67F4, 0xAEE4, 0x6850, 0xAEE5, 0x6840, 0xAEE6, 0x683C, + 0xAEE7, 0x6843, 0xAEE8, 0x682A, 0xAEE9, 0x6845, 0xAEEA, 0x6813, 0xAEEB, 0x6818, 0xAEEC, 0x6841, 0xAEED, 0x6B8A, 0xAEEE, 0x6B89, + 0xAEEF, 0x6BB7, 0xAEF0, 0x6C23, 0xAEF1, 0x6C27, 0xAEF2, 0x6C28, 0xAEF3, 0x6C26, 0xAEF4, 0x6C24, 0xAEF5, 0x6CF0, 0xAEF6, 0x6D6A, + 0xAEF7, 0x6D95, 0xAEF8, 0x6D88, 0xAEF9, 0x6D87, 0xAEFA, 0x6D66, 0xAEFB, 0x6D78, 0xAEFC, 0x6D77, 0xAEFD, 0x6D59, 0xAEFE, 0x6D93, + 0xAF40, 0x6D6C, 0xAF41, 0x6D89, 0xAF42, 0x6D6E, 0xAF43, 0x6D5A, 0xAF44, 0x6D74, 0xAF45, 0x6D69, 0xAF46, 0x6D8C, 0xAF47, 0x6D8A, + 0xAF48, 0x6D79, 0xAF49, 0x6D85, 0xAF4A, 0x6D65, 0xAF4B, 0x6D94, 0xAF4C, 0x70CA, 0xAF4D, 0x70D8, 0xAF4E, 0x70E4, 0xAF4F, 0x70D9, + 0xAF50, 0x70C8, 0xAF51, 0x70CF, 0xAF52, 0x7239, 0xAF53, 0x7279, 0xAF54, 0x72FC, 0xAF55, 0x72F9, 0xAF56, 0x72FD, 0xAF57, 0x72F8, + 0xAF58, 0x72F7, 0xAF59, 0x7386, 0xAF5A, 0x73ED, 0xAF5B, 0x7409, 0xAF5C, 0x73EE, 0xAF5D, 0x73E0, 0xAF5E, 0x73EA, 0xAF5F, 0x73DE, + 0xAF60, 0x7554, 0xAF61, 0x755D, 0xAF62, 0x755C, 0xAF63, 0x755A, 0xAF64, 0x7559, 0xAF65, 0x75BE, 0xAF66, 0x75C5, 0xAF67, 0x75C7, + 0xAF68, 0x75B2, 0xAF69, 0x75B3, 0xAF6A, 0x75BD, 0xAF6B, 0x75BC, 0xAF6C, 0x75B9, 0xAF6D, 0x75C2, 0xAF6E, 0x75B8, 0xAF6F, 0x768B, + 0xAF70, 0x76B0, 0xAF71, 0x76CA, 0xAF72, 0x76CD, 0xAF73, 0x76CE, 0xAF74, 0x7729, 0xAF75, 0x771F, 0xAF76, 0x7720, 0xAF77, 0x7728, + 0xAF78, 0x77E9, 0xAF79, 0x7830, 0xAF7A, 0x7827, 0xAF7B, 0x7838, 0xAF7C, 0x781D, 0xAF7D, 0x7834, 0xAF7E, 0x7837, 0xAFA1, 0x7825, + 0xAFA2, 0x782D, 0xAFA3, 0x7820, 0xAFA4, 0x781F, 0xAFA5, 0x7832, 0xAFA6, 0x7955, 0xAFA7, 0x7950, 0xAFA8, 0x7960, 0xAFA9, 0x795F, + 0xAFAA, 0x7956, 0xAFAB, 0x795E, 0xAFAC, 0x795D, 0xAFAD, 0x7957, 0xAFAE, 0x795A, 0xAFAF, 0x79E4, 0xAFB0, 0x79E3, 0xAFB1, 0x79E7, + 0xAFB2, 0x79DF, 0xAFB3, 0x79E6, 0xAFB4, 0x79E9, 0xAFB5, 0x79D8, 0xAFB6, 0x7A84, 0xAFB7, 0x7A88, 0xAFB8, 0x7AD9, 0xAFB9, 0x7B06, + 0xAFBA, 0x7B11, 0xAFBB, 0x7C89, 0xAFBC, 0x7D21, 0xAFBD, 0x7D17, 0xAFBE, 0x7D0B, 0xAFBF, 0x7D0A, 0xAFC0, 0x7D20, 0xAFC1, 0x7D22, + 0xAFC2, 0x7D14, 0xAFC3, 0x7D10, 0xAFC4, 0x7D15, 0xAFC5, 0x7D1A, 0xAFC6, 0x7D1C, 0xAFC7, 0x7D0D, 0xAFC8, 0x7D19, 0xAFC9, 0x7D1B, + 0xAFCA, 0x7F3A, 0xAFCB, 0x7F5F, 0xAFCC, 0x7F94, 0xAFCD, 0x7FC5, 0xAFCE, 0x7FC1, 0xAFCF, 0x8006, 0xAFD0, 0x8018, 0xAFD1, 0x8015, + 0xAFD2, 0x8019, 0xAFD3, 0x8017, 0xAFD4, 0x803D, 0xAFD5, 0x803F, 0xAFD6, 0x80F1, 0xAFD7, 0x8102, 0xAFD8, 0x80F0, 0xAFD9, 0x8105, + 0xAFDA, 0x80ED, 0xAFDB, 0x80F4, 0xAFDC, 0x8106, 0xAFDD, 0x80F8, 0xAFDE, 0x80F3, 0xAFDF, 0x8108, 0xAFE0, 0x80FD, 0xAFE1, 0x810A, + 0xAFE2, 0x80FC, 0xAFE3, 0x80EF, 0xAFE4, 0x81ED, 0xAFE5, 0x81EC, 0xAFE6, 0x8200, 0xAFE7, 0x8210, 0xAFE8, 0x822A, 0xAFE9, 0x822B, + 0xAFEA, 0x8228, 0xAFEB, 0x822C, 0xAFEC, 0x82BB, 0xAFED, 0x832B, 0xAFEE, 0x8352, 0xAFEF, 0x8354, 0xAFF0, 0x834A, 0xAFF1, 0x8338, + 0xAFF2, 0x8350, 0xAFF3, 0x8349, 0xAFF4, 0x8335, 0xAFF5, 0x8334, 0xAFF6, 0x834F, 0xAFF7, 0x8332, 0xAFF8, 0x8339, 0xAFF9, 0x8336, + 0xAFFA, 0x8317, 0xAFFB, 0x8340, 0xAFFC, 0x8331, 0xAFFD, 0x8328, 0xAFFE, 0x8343, 0xB040, 0x8654, 0xB041, 0x868A, 0xB042, 0x86AA, + 0xB043, 0x8693, 0xB044, 0x86A4, 0xB045, 0x86A9, 0xB046, 0x868C, 0xB047, 0x86A3, 0xB048, 0x869C, 0xB049, 0x8870, 0xB04A, 0x8877, + 0xB04B, 0x8881, 0xB04C, 0x8882, 0xB04D, 0x887D, 0xB04E, 0x8879, 0xB04F, 0x8A18, 0xB050, 0x8A10, 0xB051, 0x8A0E, 0xB052, 0x8A0C, + 0xB053, 0x8A15, 0xB054, 0x8A0A, 0xB055, 0x8A17, 0xB056, 0x8A13, 0xB057, 0x8A16, 0xB058, 0x8A0F, 0xB059, 0x8A11, 0xB05A, 0x8C48, + 0xB05B, 0x8C7A, 0xB05C, 0x8C79, 0xB05D, 0x8CA1, 0xB05E, 0x8CA2, 0xB05F, 0x8D77, 0xB060, 0x8EAC, 0xB061, 0x8ED2, 0xB062, 0x8ED4, + 0xB063, 0x8ECF, 0xB064, 0x8FB1, 0xB065, 0x9001, 0xB066, 0x9006, 0xB067, 0x8FF7, 0xB068, 0x9000, 0xB069, 0x8FFA, 0xB06A, 0x8FF4, + 0xB06B, 0x9003, 0xB06C, 0x8FFD, 0xB06D, 0x9005, 0xB06E, 0x8FF8, 0xB06F, 0x9095, 0xB070, 0x90E1, 0xB071, 0x90DD, 0xB072, 0x90E2, + 0xB073, 0x9152, 0xB074, 0x914D, 0xB075, 0x914C, 0xB076, 0x91D8, 0xB077, 0x91DD, 0xB078, 0x91D7, 0xB079, 0x91DC, 0xB07A, 0x91D9, + 0xB07B, 0x9583, 0xB07C, 0x9662, 0xB07D, 0x9663, 0xB07E, 0x9661, 0xB0A1, 0x965B, 0xB0A2, 0x965D, 0xB0A3, 0x9664, 0xB0A4, 0x9658, + 0xB0A5, 0x965E, 0xB0A6, 0x96BB, 0xB0A7, 0x98E2, 0xB0A8, 0x99AC, 0xB0A9, 0x9AA8, 0xB0AA, 0x9AD8, 0xB0AB, 0x9B25, 0xB0AC, 0x9B32, + 0xB0AD, 0x9B3C, 0xB0AE, 0x4E7E, 0xB0AF, 0x507A, 0xB0B0, 0x507D, 0xB0B1, 0x505C, 0xB0B2, 0x5047, 0xB0B3, 0x5043, 0xB0B4, 0x504C, + 0xB0B5, 0x505A, 0xB0B6, 0x5049, 0xB0B7, 0x5065, 0xB0B8, 0x5076, 0xB0B9, 0x504E, 0xB0BA, 0x5055, 0xB0BB, 0x5075, 0xB0BC, 0x5074, + 0xB0BD, 0x5077, 0xB0BE, 0x504F, 0xB0BF, 0x500F, 0xB0C0, 0x506F, 0xB0C1, 0x506D, 0xB0C2, 0x515C, 0xB0C3, 0x5195, 0xB0C4, 0x51F0, + 0xB0C5, 0x526A, 0xB0C6, 0x526F, 0xB0C7, 0x52D2, 0xB0C8, 0x52D9, 0xB0C9, 0x52D8, 0xB0CA, 0x52D5, 0xB0CB, 0x5310, 0xB0CC, 0x530F, + 0xB0CD, 0x5319, 0xB0CE, 0x533F, 0xB0CF, 0x5340, 0xB0D0, 0x533E, 0xB0D1, 0x53C3, 0xB0D2, 0x66FC, 0xB0D3, 0x5546, 0xB0D4, 0x556A, + 0xB0D5, 0x5566, 0xB0D6, 0x5544, 0xB0D7, 0x555E, 0xB0D8, 0x5561, 0xB0D9, 0x5543, 0xB0DA, 0x554A, 0xB0DB, 0x5531, 0xB0DC, 0x5556, + 0xB0DD, 0x554F, 0xB0DE, 0x5555, 0xB0DF, 0x552F, 0xB0E0, 0x5564, 0xB0E1, 0x5538, 0xB0E2, 0x552E, 0xB0E3, 0x555C, 0xB0E4, 0x552C, + 0xB0E5, 0x5563, 0xB0E6, 0x5533, 0xB0E7, 0x5541, 0xB0E8, 0x5557, 0xB0E9, 0x5708, 0xB0EA, 0x570B, 0xB0EB, 0x5709, 0xB0EC, 0x57DF, + 0xB0ED, 0x5805, 0xB0EE, 0x580A, 0xB0EF, 0x5806, 0xB0F0, 0x57E0, 0xB0F1, 0x57E4, 0xB0F2, 0x57FA, 0xB0F3, 0x5802, 0xB0F4, 0x5835, + 0xB0F5, 0x57F7, 0xB0F6, 0x57F9, 0xB0F7, 0x5920, 0xB0F8, 0x5962, 0xB0F9, 0x5A36, 0xB0FA, 0x5A41, 0xB0FB, 0x5A49, 0xB0FC, 0x5A66, + 0xB0FD, 0x5A6A, 0xB0FE, 0x5A40, 0xB140, 0x5A3C, 0xB141, 0x5A62, 0xB142, 0x5A5A, 0xB143, 0x5A46, 0xB144, 0x5A4A, 0xB145, 0x5B70, + 0xB146, 0x5BC7, 0xB147, 0x5BC5, 0xB148, 0x5BC4, 0xB149, 0x5BC2, 0xB14A, 0x5BBF, 0xB14B, 0x5BC6, 0xB14C, 0x5C09, 0xB14D, 0x5C08, + 0xB14E, 0x5C07, 0xB14F, 0x5C60, 0xB150, 0x5C5C, 0xB151, 0x5C5D, 0xB152, 0x5D07, 0xB153, 0x5D06, 0xB154, 0x5D0E, 0xB155, 0x5D1B, + 0xB156, 0x5D16, 0xB157, 0x5D22, 0xB158, 0x5D11, 0xB159, 0x5D29, 0xB15A, 0x5D14, 0xB15B, 0x5D19, 0xB15C, 0x5D24, 0xB15D, 0x5D27, + 0xB15E, 0x5D17, 0xB15F, 0x5DE2, 0xB160, 0x5E38, 0xB161, 0x5E36, 0xB162, 0x5E33, 0xB163, 0x5E37, 0xB164, 0x5EB7, 0xB165, 0x5EB8, + 0xB166, 0x5EB6, 0xB167, 0x5EB5, 0xB168, 0x5EBE, 0xB169, 0x5F35, 0xB16A, 0x5F37, 0xB16B, 0x5F57, 0xB16C, 0x5F6C, 0xB16D, 0x5F69, + 0xB16E, 0x5F6B, 0xB16F, 0x5F97, 0xB170, 0x5F99, 0xB171, 0x5F9E, 0xB172, 0x5F98, 0xB173, 0x5FA1, 0xB174, 0x5FA0, 0xB175, 0x5F9C, + 0xB176, 0x607F, 0xB177, 0x60A3, 0xB178, 0x6089, 0xB179, 0x60A0, 0xB17A, 0x60A8, 0xB17B, 0x60CB, 0xB17C, 0x60B4, 0xB17D, 0x60E6, + 0xB17E, 0x60BD, 0xB1A1, 0x60C5, 0xB1A2, 0x60BB, 0xB1A3, 0x60B5, 0xB1A4, 0x60DC, 0xB1A5, 0x60BC, 0xB1A6, 0x60D8, 0xB1A7, 0x60D5, + 0xB1A8, 0x60C6, 0xB1A9, 0x60DF, 0xB1AA, 0x60B8, 0xB1AB, 0x60DA, 0xB1AC, 0x60C7, 0xB1AD, 0x621A, 0xB1AE, 0x621B, 0xB1AF, 0x6248, + 0xB1B0, 0x63A0, 0xB1B1, 0x63A7, 0xB1B2, 0x6372, 0xB1B3, 0x6396, 0xB1B4, 0x63A2, 0xB1B5, 0x63A5, 0xB1B6, 0x6377, 0xB1B7, 0x6367, + 0xB1B8, 0x6398, 0xB1B9, 0x63AA, 0xB1BA, 0x6371, 0xB1BB, 0x63A9, 0xB1BC, 0x6389, 0xB1BD, 0x6383, 0xB1BE, 0x639B, 0xB1BF, 0x636B, + 0xB1C0, 0x63A8, 0xB1C1, 0x6384, 0xB1C2, 0x6388, 0xB1C3, 0x6399, 0xB1C4, 0x63A1, 0xB1C5, 0x63AC, 0xB1C6, 0x6392, 0xB1C7, 0x638F, + 0xB1C8, 0x6380, 0xB1C9, 0x637B, 0xB1CA, 0x6369, 0xB1CB, 0x6368, 0xB1CC, 0x637A, 0xB1CD, 0x655D, 0xB1CE, 0x6556, 0xB1CF, 0x6551, + 0xB1D0, 0x6559, 0xB1D1, 0x6557, 0xB1D2, 0x555F, 0xB1D3, 0x654F, 0xB1D4, 0x6558, 0xB1D5, 0x6555, 0xB1D6, 0x6554, 0xB1D7, 0x659C, + 0xB1D8, 0x659B, 0xB1D9, 0x65AC, 0xB1DA, 0x65CF, 0xB1DB, 0x65CB, 0xB1DC, 0x65CC, 0xB1DD, 0x65CE, 0xB1DE, 0x665D, 0xB1DF, 0x665A, + 0xB1E0, 0x6664, 0xB1E1, 0x6668, 0xB1E2, 0x6666, 0xB1E3, 0x665E, 0xB1E4, 0x66F9, 0xB1E5, 0x52D7, 0xB1E6, 0x671B, 0xB1E7, 0x6881, + 0xB1E8, 0x68AF, 0xB1E9, 0x68A2, 0xB1EA, 0x6893, 0xB1EB, 0x68B5, 0xB1EC, 0x687F, 0xB1ED, 0x6876, 0xB1EE, 0x68B1, 0xB1EF, 0x68A7, + 0xB1F0, 0x6897, 0xB1F1, 0x68B0, 0xB1F2, 0x6883, 0xB1F3, 0x68C4, 0xB1F4, 0x68AD, 0xB1F5, 0x6886, 0xB1F6, 0x6885, 0xB1F7, 0x6894, + 0xB1F8, 0x689D, 0xB1F9, 0x68A8, 0xB1FA, 0x689F, 0xB1FB, 0x68A1, 0xB1FC, 0x6882, 0xB1FD, 0x6B32, 0xB1FE, 0x6BBA, 0xB240, 0x6BEB, + 0xB241, 0x6BEC, 0xB242, 0x6C2B, 0xB243, 0x6D8E, 0xB244, 0x6DBC, 0xB245, 0x6DF3, 0xB246, 0x6DD9, 0xB247, 0x6DB2, 0xB248, 0x6DE1, + 0xB249, 0x6DCC, 0xB24A, 0x6DE4, 0xB24B, 0x6DFB, 0xB24C, 0x6DFA, 0xB24D, 0x6E05, 0xB24E, 0x6DC7, 0xB24F, 0x6DCB, 0xB250, 0x6DAF, + 0xB251, 0x6DD1, 0xB252, 0x6DAE, 0xB253, 0x6DDE, 0xB254, 0x6DF9, 0xB255, 0x6DB8, 0xB256, 0x6DF7, 0xB257, 0x6DF5, 0xB258, 0x6DC5, + 0xB259, 0x6DD2, 0xB25A, 0x6E1A, 0xB25B, 0x6DB5, 0xB25C, 0x6DDA, 0xB25D, 0x6DEB, 0xB25E, 0x6DD8, 0xB25F, 0x6DEA, 0xB260, 0x6DF1, + 0xB261, 0x6DEE, 0xB262, 0x6DE8, 0xB263, 0x6DC6, 0xB264, 0x6DC4, 0xB265, 0x6DAA, 0xB266, 0x6DEC, 0xB267, 0x6DBF, 0xB268, 0x6DE6, + 0xB269, 0x70F9, 0xB26A, 0x7109, 0xB26B, 0x710A, 0xB26C, 0x70FD, 0xB26D, 0x70EF, 0xB26E, 0x723D, 0xB26F, 0x727D, 0xB270, 0x7281, + 0xB271, 0x731C, 0xB272, 0x731B, 0xB273, 0x7316, 0xB274, 0x7313, 0xB275, 0x7319, 0xB276, 0x7387, 0xB277, 0x7405, 0xB278, 0x740A, + 0xB279, 0x7403, 0xB27A, 0x7406, 0xB27B, 0x73FE, 0xB27C, 0x740D, 0xB27D, 0x74E0, 0xB27E, 0x74F6, 0xB2A1, 0x74F7, 0xB2A2, 0x751C, + 0xB2A3, 0x7522, 0xB2A4, 0x7565, 0xB2A5, 0x7566, 0xB2A6, 0x7562, 0xB2A7, 0x7570, 0xB2A8, 0x758F, 0xB2A9, 0x75D4, 0xB2AA, 0x75D5, + 0xB2AB, 0x75B5, 0xB2AC, 0x75CA, 0xB2AD, 0x75CD, 0xB2AE, 0x768E, 0xB2AF, 0x76D4, 0xB2B0, 0x76D2, 0xB2B1, 0x76DB, 0xB2B2, 0x7737, + 0xB2B3, 0x773E, 0xB2B4, 0x773C, 0xB2B5, 0x7736, 0xB2B6, 0x7738, 0xB2B7, 0x773A, 0xB2B8, 0x786B, 0xB2B9, 0x7843, 0xB2BA, 0x784E, + 0xB2BB, 0x7965, 0xB2BC, 0x7968, 0xB2BD, 0x796D, 0xB2BE, 0x79FB, 0xB2BF, 0x7A92, 0xB2C0, 0x7A95, 0xB2C1, 0x7B20, 0xB2C2, 0x7B28, + 0xB2C3, 0x7B1B, 0xB2C4, 0x7B2C, 0xB2C5, 0x7B26, 0xB2C6, 0x7B19, 0xB2C7, 0x7B1E, 0xB2C8, 0x7B2E, 0xB2C9, 0x7C92, 0xB2CA, 0x7C97, + 0xB2CB, 0x7C95, 0xB2CC, 0x7D46, 0xB2CD, 0x7D43, 0xB2CE, 0x7D71, 0xB2CF, 0x7D2E, 0xB2D0, 0x7D39, 0xB2D1, 0x7D3C, 0xB2D2, 0x7D40, + 0xB2D3, 0x7D30, 0xB2D4, 0x7D33, 0xB2D5, 0x7D44, 0xB2D6, 0x7D2F, 0xB2D7, 0x7D42, 0xB2D8, 0x7D32, 0xB2D9, 0x7D31, 0xB2DA, 0x7F3D, + 0xB2DB, 0x7F9E, 0xB2DC, 0x7F9A, 0xB2DD, 0x7FCC, 0xB2DE, 0x7FCE, 0xB2DF, 0x7FD2, 0xB2E0, 0x801C, 0xB2E1, 0x804A, 0xB2E2, 0x8046, + 0xB2E3, 0x812F, 0xB2E4, 0x8116, 0xB2E5, 0x8123, 0xB2E6, 0x812B, 0xB2E7, 0x8129, 0xB2E8, 0x8130, 0xB2E9, 0x8124, 0xB2EA, 0x8202, + 0xB2EB, 0x8235, 0xB2EC, 0x8237, 0xB2ED, 0x8236, 0xB2EE, 0x8239, 0xB2EF, 0x838E, 0xB2F0, 0x839E, 0xB2F1, 0x8398, 0xB2F2, 0x8378, + 0xB2F3, 0x83A2, 0xB2F4, 0x8396, 0xB2F5, 0x83BD, 0xB2F6, 0x83AB, 0xB2F7, 0x8392, 0xB2F8, 0x838A, 0xB2F9, 0x8393, 0xB2FA, 0x8389, + 0xB2FB, 0x83A0, 0xB2FC, 0x8377, 0xB2FD, 0x837B, 0xB2FE, 0x837C, 0xB340, 0x8386, 0xB341, 0x83A7, 0xB342, 0x8655, 0xB343, 0x5F6A, + 0xB344, 0x86C7, 0xB345, 0x86C0, 0xB346, 0x86B6, 0xB347, 0x86C4, 0xB348, 0x86B5, 0xB349, 0x86C6, 0xB34A, 0x86CB, 0xB34B, 0x86B1, + 0xB34C, 0x86AF, 0xB34D, 0x86C9, 0xB34E, 0x8853, 0xB34F, 0x889E, 0xB350, 0x8888, 0xB351, 0x88AB, 0xB352, 0x8892, 0xB353, 0x8896, + 0xB354, 0x888D, 0xB355, 0x888B, 0xB356, 0x8993, 0xB357, 0x898F, 0xB358, 0x8A2A, 0xB359, 0x8A1D, 0xB35A, 0x8A23, 0xB35B, 0x8A25, + 0xB35C, 0x8A31, 0xB35D, 0x8A2D, 0xB35E, 0x8A1F, 0xB35F, 0x8A1B, 0xB360, 0x8A22, 0xB361, 0x8C49, 0xB362, 0x8C5A, 0xB363, 0x8CA9, + 0xB364, 0x8CAC, 0xB365, 0x8CAB, 0xB366, 0x8CA8, 0xB367, 0x8CAA, 0xB368, 0x8CA7, 0xB369, 0x8D67, 0xB36A, 0x8D66, 0xB36B, 0x8DBE, + 0xB36C, 0x8DBA, 0xB36D, 0x8EDB, 0xB36E, 0x8EDF, 0xB36F, 0x9019, 0xB370, 0x900D, 0xB371, 0x901A, 0xB372, 0x9017, 0xB373, 0x9023, + 0xB374, 0x901F, 0xB375, 0x901D, 0xB376, 0x9010, 0xB377, 0x9015, 0xB378, 0x901E, 0xB379, 0x9020, 0xB37A, 0x900F, 0xB37B, 0x9022, + 0xB37C, 0x9016, 0xB37D, 0x901B, 0xB37E, 0x9014, 0xB3A1, 0x90E8, 0xB3A2, 0x90ED, 0xB3A3, 0x90FD, 0xB3A4, 0x9157, 0xB3A5, 0x91CE, + 0xB3A6, 0x91F5, 0xB3A7, 0x91E6, 0xB3A8, 0x91E3, 0xB3A9, 0x91E7, 0xB3AA, 0x91ED, 0xB3AB, 0x91E9, 0xB3AC, 0x9589, 0xB3AD, 0x966A, + 0xB3AE, 0x9675, 0xB3AF, 0x9673, 0xB3B0, 0x9678, 0xB3B1, 0x9670, 0xB3B2, 0x9674, 0xB3B3, 0x9676, 0xB3B4, 0x9677, 0xB3B5, 0x966C, + 0xB3B6, 0x96C0, 0xB3B7, 0x96EA, 0xB3B8, 0x96E9, 0xB3B9, 0x7AE0, 0xB3BA, 0x7ADF, 0xB3BB, 0x9802, 0xB3BC, 0x9803, 0xB3BD, 0x9B5A, + 0xB3BE, 0x9CE5, 0xB3BF, 0x9E75, 0xB3C0, 0x9E7F, 0xB3C1, 0x9EA5, 0xB3C2, 0x9EBB, 0xB3C3, 0x50A2, 0xB3C4, 0x508D, 0xB3C5, 0x5085, + 0xB3C6, 0x5099, 0xB3C7, 0x5091, 0xB3C8, 0x5080, 0xB3C9, 0x5096, 0xB3CA, 0x5098, 0xB3CB, 0x509A, 0xB3CC, 0x6700, 0xB3CD, 0x51F1, + 0xB3CE, 0x5272, 0xB3CF, 0x5274, 0xB3D0, 0x5275, 0xB3D1, 0x5269, 0xB3D2, 0x52DE, 0xB3D3, 0x52DD, 0xB3D4, 0x52DB, 0xB3D5, 0x535A, + 0xB3D6, 0x53A5, 0xB3D7, 0x557B, 0xB3D8, 0x5580, 0xB3D9, 0x55A7, 0xB3DA, 0x557C, 0xB3DB, 0x558A, 0xB3DC, 0x559D, 0xB3DD, 0x5598, + 0xB3DE, 0x5582, 0xB3DF, 0x559C, 0xB3E0, 0x55AA, 0xB3E1, 0x5594, 0xB3E2, 0x5587, 0xB3E3, 0x558B, 0xB3E4, 0x5583, 0xB3E5, 0x55B3, + 0xB3E6, 0x55AE, 0xB3E7, 0x559F, 0xB3E8, 0x553E, 0xB3E9, 0x55B2, 0xB3EA, 0x559A, 0xB3EB, 0x55BB, 0xB3EC, 0x55AC, 0xB3ED, 0x55B1, + 0xB3EE, 0x557E, 0xB3EF, 0x5589, 0xB3F0, 0x55AB, 0xB3F1, 0x5599, 0xB3F2, 0x570D, 0xB3F3, 0x582F, 0xB3F4, 0x582A, 0xB3F5, 0x5834, + 0xB3F6, 0x5824, 0xB3F7, 0x5830, 0xB3F8, 0x5831, 0xB3F9, 0x5821, 0xB3FA, 0x581D, 0xB3FB, 0x5820, 0xB3FC, 0x58F9, 0xB3FD, 0x58FA, + 0xB3FE, 0x5960, 0xB440, 0x5A77, 0xB441, 0x5A9A, 0xB442, 0x5A7F, 0xB443, 0x5A92, 0xB444, 0x5A9B, 0xB445, 0x5AA7, 0xB446, 0x5B73, + 0xB447, 0x5B71, 0xB448, 0x5BD2, 0xB449, 0x5BCC, 0xB44A, 0x5BD3, 0xB44B, 0x5BD0, 0xB44C, 0x5C0A, 0xB44D, 0x5C0B, 0xB44E, 0x5C31, + 0xB44F, 0x5D4C, 0xB450, 0x5D50, 0xB451, 0x5D34, 0xB452, 0x5D47, 0xB453, 0x5DFD, 0xB454, 0x5E45, 0xB455, 0x5E3D, 0xB456, 0x5E40, + 0xB457, 0x5E43, 0xB458, 0x5E7E, 0xB459, 0x5ECA, 0xB45A, 0x5EC1, 0xB45B, 0x5EC2, 0xB45C, 0x5EC4, 0xB45D, 0x5F3C, 0xB45E, 0x5F6D, + 0xB45F, 0x5FA9, 0xB460, 0x5FAA, 0xB461, 0x5FA8, 0xB462, 0x60D1, 0xB463, 0x60E1, 0xB464, 0x60B2, 0xB465, 0x60B6, 0xB466, 0x60E0, + 0xB467, 0x611C, 0xB468, 0x6123, 0xB469, 0x60FA, 0xB46A, 0x6115, 0xB46B, 0x60F0, 0xB46C, 0x60FB, 0xB46D, 0x60F4, 0xB46E, 0x6168, + 0xB46F, 0x60F1, 0xB470, 0x610E, 0xB471, 0x60F6, 0xB472, 0x6109, 0xB473, 0x6100, 0xB474, 0x6112, 0xB475, 0x621F, 0xB476, 0x6249, + 0xB477, 0x63A3, 0xB478, 0x638C, 0xB479, 0x63CF, 0xB47A, 0x63C0, 0xB47B, 0x63E9, 0xB47C, 0x63C9, 0xB47D, 0x63C6, 0xB47E, 0x63CD, + 0xB4A1, 0x63D2, 0xB4A2, 0x63E3, 0xB4A3, 0x63D0, 0xB4A4, 0x63E1, 0xB4A5, 0x63D6, 0xB4A6, 0x63ED, 0xB4A7, 0x63EE, 0xB4A8, 0x6376, + 0xB4A9, 0x63F4, 0xB4AA, 0x63EA, 0xB4AB, 0x63DB, 0xB4AC, 0x6452, 0xB4AD, 0x63DA, 0xB4AE, 0x63F9, 0xB4AF, 0x655E, 0xB4B0, 0x6566, + 0xB4B1, 0x6562, 0xB4B2, 0x6563, 0xB4B3, 0x6591, 0xB4B4, 0x6590, 0xB4B5, 0x65AF, 0xB4B6, 0x666E, 0xB4B7, 0x6670, 0xB4B8, 0x6674, + 0xB4B9, 0x6676, 0xB4BA, 0x666F, 0xB4BB, 0x6691, 0xB4BC, 0x667A, 0xB4BD, 0x667E, 0xB4BE, 0x6677, 0xB4BF, 0x66FE, 0xB4C0, 0x66FF, + 0xB4C1, 0x671F, 0xB4C2, 0x671D, 0xB4C3, 0x68FA, 0xB4C4, 0x68D5, 0xB4C5, 0x68E0, 0xB4C6, 0x68D8, 0xB4C7, 0x68D7, 0xB4C8, 0x6905, + 0xB4C9, 0x68DF, 0xB4CA, 0x68F5, 0xB4CB, 0x68EE, 0xB4CC, 0x68E7, 0xB4CD, 0x68F9, 0xB4CE, 0x68D2, 0xB4CF, 0x68F2, 0xB4D0, 0x68E3, + 0xB4D1, 0x68CB, 0xB4D2, 0x68CD, 0xB4D3, 0x690D, 0xB4D4, 0x6912, 0xB4D5, 0x690E, 0xB4D6, 0x68C9, 0xB4D7, 0x68DA, 0xB4D8, 0x696E, + 0xB4D9, 0x68FB, 0xB4DA, 0x6B3E, 0xB4DB, 0x6B3A, 0xB4DC, 0x6B3D, 0xB4DD, 0x6B98, 0xB4DE, 0x6B96, 0xB4DF, 0x6BBC, 0xB4E0, 0x6BEF, + 0xB4E1, 0x6C2E, 0xB4E2, 0x6C2F, 0xB4E3, 0x6C2C, 0xB4E4, 0x6E2F, 0xB4E5, 0x6E38, 0xB4E6, 0x6E54, 0xB4E7, 0x6E21, 0xB4E8, 0x6E32, + 0xB4E9, 0x6E67, 0xB4EA, 0x6E4A, 0xB4EB, 0x6E20, 0xB4EC, 0x6E25, 0xB4ED, 0x6E23, 0xB4EE, 0x6E1B, 0xB4EF, 0x6E5B, 0xB4F0, 0x6E58, + 0xB4F1, 0x6E24, 0xB4F2, 0x6E56, 0xB4F3, 0x6E6E, 0xB4F4, 0x6E2D, 0xB4F5, 0x6E26, 0xB4F6, 0x6E6F, 0xB4F7, 0x6E34, 0xB4F8, 0x6E4D, + 0xB4F9, 0x6E3A, 0xB4FA, 0x6E2C, 0xB4FB, 0x6E43, 0xB4FC, 0x6E1D, 0xB4FD, 0x6E3E, 0xB4FE, 0x6ECB, 0xB540, 0x6E89, 0xB541, 0x6E19, + 0xB542, 0x6E4E, 0xB543, 0x6E63, 0xB544, 0x6E44, 0xB545, 0x6E72, 0xB546, 0x6E69, 0xB547, 0x6E5F, 0xB548, 0x7119, 0xB549, 0x711A, + 0xB54A, 0x7126, 0xB54B, 0x7130, 0xB54C, 0x7121, 0xB54D, 0x7136, 0xB54E, 0x716E, 0xB54F, 0x711C, 0xB550, 0x724C, 0xB551, 0x7284, + 0xB552, 0x7280, 0xB553, 0x7336, 0xB554, 0x7325, 0xB555, 0x7334, 0xB556, 0x7329, 0xB557, 0x743A, 0xB558, 0x742A, 0xB559, 0x7433, + 0xB55A, 0x7422, 0xB55B, 0x7425, 0xB55C, 0x7435, 0xB55D, 0x7436, 0xB55E, 0x7434, 0xB55F, 0x742F, 0xB560, 0x741B, 0xB561, 0x7426, + 0xB562, 0x7428, 0xB563, 0x7525, 0xB564, 0x7526, 0xB565, 0x756B, 0xB566, 0x756A, 0xB567, 0x75E2, 0xB568, 0x75DB, 0xB569, 0x75E3, + 0xB56A, 0x75D9, 0xB56B, 0x75D8, 0xB56C, 0x75DE, 0xB56D, 0x75E0, 0xB56E, 0x767B, 0xB56F, 0x767C, 0xB570, 0x7696, 0xB571, 0x7693, + 0xB572, 0x76B4, 0xB573, 0x76DC, 0xB574, 0x774F, 0xB575, 0x77ED, 0xB576, 0x785D, 0xB577, 0x786C, 0xB578, 0x786F, 0xB579, 0x7A0D, + 0xB57A, 0x7A08, 0xB57B, 0x7A0B, 0xB57C, 0x7A05, 0xB57D, 0x7A00, 0xB57E, 0x7A98, 0xB5A1, 0x7A97, 0xB5A2, 0x7A96, 0xB5A3, 0x7AE5, + 0xB5A4, 0x7AE3, 0xB5A5, 0x7B49, 0xB5A6, 0x7B56, 0xB5A7, 0x7B46, 0xB5A8, 0x7B50, 0xB5A9, 0x7B52, 0xB5AA, 0x7B54, 0xB5AB, 0x7B4D, + 0xB5AC, 0x7B4B, 0xB5AD, 0x7B4F, 0xB5AE, 0x7B51, 0xB5AF, 0x7C9F, 0xB5B0, 0x7CA5, 0xB5B1, 0x7D5E, 0xB5B2, 0x7D50, 0xB5B3, 0x7D68, + 0xB5B4, 0x7D55, 0xB5B5, 0x7D2B, 0xB5B6, 0x7D6E, 0xB5B7, 0x7D72, 0xB5B8, 0x7D61, 0xB5B9, 0x7D66, 0xB5BA, 0x7D62, 0xB5BB, 0x7D70, + 0xB5BC, 0x7D73, 0xB5BD, 0x5584, 0xB5BE, 0x7FD4, 0xB5BF, 0x7FD5, 0xB5C0, 0x800B, 0xB5C1, 0x8052, 0xB5C2, 0x8085, 0xB5C3, 0x8155, + 0xB5C4, 0x8154, 0xB5C5, 0x814B, 0xB5C6, 0x8151, 0xB5C7, 0x814E, 0xB5C8, 0x8139, 0xB5C9, 0x8146, 0xB5CA, 0x813E, 0xB5CB, 0x814C, + 0xB5CC, 0x8153, 0xB5CD, 0x8174, 0xB5CE, 0x8212, 0xB5CF, 0x821C, 0xB5D0, 0x83E9, 0xB5D1, 0x8403, 0xB5D2, 0x83F8, 0xB5D3, 0x840D, + 0xB5D4, 0x83E0, 0xB5D5, 0x83C5, 0xB5D6, 0x840B, 0xB5D7, 0x83C1, 0xB5D8, 0x83EF, 0xB5D9, 0x83F1, 0xB5DA, 0x83F4, 0xB5DB, 0x8457, + 0xB5DC, 0x840A, 0xB5DD, 0x83F0, 0xB5DE, 0x840C, 0xB5DF, 0x83CC, 0xB5E0, 0x83FD, 0xB5E1, 0x83F2, 0xB5E2, 0x83CA, 0xB5E3, 0x8438, + 0xB5E4, 0x840E, 0xB5E5, 0x8404, 0xB5E6, 0x83DC, 0xB5E7, 0x8407, 0xB5E8, 0x83D4, 0xB5E9, 0x83DF, 0xB5EA, 0x865B, 0xB5EB, 0x86DF, + 0xB5EC, 0x86D9, 0xB5ED, 0x86ED, 0xB5EE, 0x86D4, 0xB5EF, 0x86DB, 0xB5F0, 0x86E4, 0xB5F1, 0x86D0, 0xB5F2, 0x86DE, 0xB5F3, 0x8857, + 0xB5F4, 0x88C1, 0xB5F5, 0x88C2, 0xB5F6, 0x88B1, 0xB5F7, 0x8983, 0xB5F8, 0x8996, 0xB5F9, 0x8A3B, 0xB5FA, 0x8A60, 0xB5FB, 0x8A55, + 0xB5FC, 0x8A5E, 0xB5FD, 0x8A3C, 0xB5FE, 0x8A41, 0xB640, 0x8A54, 0xB641, 0x8A5B, 0xB642, 0x8A50, 0xB643, 0x8A46, 0xB644, 0x8A34, + 0xB645, 0x8A3A, 0xB646, 0x8A36, 0xB647, 0x8A56, 0xB648, 0x8C61, 0xB649, 0x8C82, 0xB64A, 0x8CAF, 0xB64B, 0x8CBC, 0xB64C, 0x8CB3, + 0xB64D, 0x8CBD, 0xB64E, 0x8CC1, 0xB64F, 0x8CBB, 0xB650, 0x8CC0, 0xB651, 0x8CB4, 0xB652, 0x8CB7, 0xB653, 0x8CB6, 0xB654, 0x8CBF, + 0xB655, 0x8CB8, 0xB656, 0x8D8A, 0xB657, 0x8D85, 0xB658, 0x8D81, 0xB659, 0x8DCE, 0xB65A, 0x8DDD, 0xB65B, 0x8DCB, 0xB65C, 0x8DDA, + 0xB65D, 0x8DD1, 0xB65E, 0x8DCC, 0xB65F, 0x8DDB, 0xB660, 0x8DC6, 0xB661, 0x8EFB, 0xB662, 0x8EF8, 0xB663, 0x8EFC, 0xB664, 0x8F9C, + 0xB665, 0x902E, 0xB666, 0x9035, 0xB667, 0x9031, 0xB668, 0x9038, 0xB669, 0x9032, 0xB66A, 0x9036, 0xB66B, 0x9102, 0xB66C, 0x90F5, + 0xB66D, 0x9109, 0xB66E, 0x90FE, 0xB66F, 0x9163, 0xB670, 0x9165, 0xB671, 0x91CF, 0xB672, 0x9214, 0xB673, 0x9215, 0xB674, 0x9223, + 0xB675, 0x9209, 0xB676, 0x921E, 0xB677, 0x920D, 0xB678, 0x9210, 0xB679, 0x9207, 0xB67A, 0x9211, 0xB67B, 0x9594, 0xB67C, 0x958F, + 0xB67D, 0x958B, 0xB67E, 0x9591, 0xB6A1, 0x9593, 0xB6A2, 0x9592, 0xB6A3, 0x958E, 0xB6A4, 0x968A, 0xB6A5, 0x968E, 0xB6A6, 0x968B, + 0xB6A7, 0x967D, 0xB6A8, 0x9685, 0xB6A9, 0x9686, 0xB6AA, 0x968D, 0xB6AB, 0x9672, 0xB6AC, 0x9684, 0xB6AD, 0x96C1, 0xB6AE, 0x96C5, + 0xB6AF, 0x96C4, 0xB6B0, 0x96C6, 0xB6B1, 0x96C7, 0xB6B2, 0x96EF, 0xB6B3, 0x96F2, 0xB6B4, 0x97CC, 0xB6B5, 0x9805, 0xB6B6, 0x9806, + 0xB6B7, 0x9808, 0xB6B8, 0x98E7, 0xB6B9, 0x98EA, 0xB6BA, 0x98EF, 0xB6BB, 0x98E9, 0xB6BC, 0x98F2, 0xB6BD, 0x98ED, 0xB6BE, 0x99AE, + 0xB6BF, 0x99AD, 0xB6C0, 0x9EC3, 0xB6C1, 0x9ECD, 0xB6C2, 0x9ED1, 0xB6C3, 0x4E82, 0xB6C4, 0x50AD, 0xB6C5, 0x50B5, 0xB6C6, 0x50B2, + 0xB6C7, 0x50B3, 0xB6C8, 0x50C5, 0xB6C9, 0x50BE, 0xB6CA, 0x50AC, 0xB6CB, 0x50B7, 0xB6CC, 0x50BB, 0xB6CD, 0x50AF, 0xB6CE, 0x50C7, + 0xB6CF, 0x527F, 0xB6D0, 0x5277, 0xB6D1, 0x527D, 0xB6D2, 0x52DF, 0xB6D3, 0x52E6, 0xB6D4, 0x52E4, 0xB6D5, 0x52E2, 0xB6D6, 0x52E3, + 0xB6D7, 0x532F, 0xB6D8, 0x55DF, 0xB6D9, 0x55E8, 0xB6DA, 0x55D3, 0xB6DB, 0x55E6, 0xB6DC, 0x55CE, 0xB6DD, 0x55DC, 0xB6DE, 0x55C7, + 0xB6DF, 0x55D1, 0xB6E0, 0x55E3, 0xB6E1, 0x55E4, 0xB6E2, 0x55EF, 0xB6E3, 0x55DA, 0xB6E4, 0x55E1, 0xB6E5, 0x55C5, 0xB6E6, 0x55C6, + 0xB6E7, 0x55E5, 0xB6E8, 0x55C9, 0xB6E9, 0x5712, 0xB6EA, 0x5713, 0xB6EB, 0x585E, 0xB6EC, 0x5851, 0xB6ED, 0x5858, 0xB6EE, 0x5857, + 0xB6EF, 0x585A, 0xB6F0, 0x5854, 0xB6F1, 0x586B, 0xB6F2, 0x584C, 0xB6F3, 0x586D, 0xB6F4, 0x584A, 0xB6F5, 0x5862, 0xB6F6, 0x5852, + 0xB6F7, 0x584B, 0xB6F8, 0x5967, 0xB6F9, 0x5AC1, 0xB6FA, 0x5AC9, 0xB6FB, 0x5ACC, 0xB6FC, 0x5ABE, 0xB6FD, 0x5ABD, 0xB6FE, 0x5ABC, + 0xB740, 0x5AB3, 0xB741, 0x5AC2, 0xB742, 0x5AB2, 0xB743, 0x5D69, 0xB744, 0x5D6F, 0xB745, 0x5E4C, 0xB746, 0x5E79, 0xB747, 0x5EC9, + 0xB748, 0x5EC8, 0xB749, 0x5F12, 0xB74A, 0x5F59, 0xB74B, 0x5FAC, 0xB74C, 0x5FAE, 0xB74D, 0x611A, 0xB74E, 0x610F, 0xB74F, 0x6148, + 0xB750, 0x611F, 0xB751, 0x60F3, 0xB752, 0x611B, 0xB753, 0x60F9, 0xB754, 0x6101, 0xB755, 0x6108, 0xB756, 0x614E, 0xB757, 0x614C, + 0xB758, 0x6144, 0xB759, 0x614D, 0xB75A, 0x613E, 0xB75B, 0x6134, 0xB75C, 0x6127, 0xB75D, 0x610D, 0xB75E, 0x6106, 0xB75F, 0x6137, + 0xB760, 0x6221, 0xB761, 0x6222, 0xB762, 0x6413, 0xB763, 0x643E, 0xB764, 0x641E, 0xB765, 0x642A, 0xB766, 0x642D, 0xB767, 0x643D, + 0xB768, 0x642C, 0xB769, 0x640F, 0xB76A, 0x641C, 0xB76B, 0x6414, 0xB76C, 0x640D, 0xB76D, 0x6436, 0xB76E, 0x6416, 0xB76F, 0x6417, + 0xB770, 0x6406, 0xB771, 0x656C, 0xB772, 0x659F, 0xB773, 0x65B0, 0xB774, 0x6697, 0xB775, 0x6689, 0xB776, 0x6687, 0xB777, 0x6688, + 0xB778, 0x6696, 0xB779, 0x6684, 0xB77A, 0x6698, 0xB77B, 0x668D, 0xB77C, 0x6703, 0xB77D, 0x6994, 0xB77E, 0x696D, 0xB7A1, 0x695A, + 0xB7A2, 0x6977, 0xB7A3, 0x6960, 0xB7A4, 0x6954, 0xB7A5, 0x6975, 0xB7A6, 0x6930, 0xB7A7, 0x6982, 0xB7A8, 0x694A, 0xB7A9, 0x6968, + 0xB7AA, 0x696B, 0xB7AB, 0x695E, 0xB7AC, 0x6953, 0xB7AD, 0x6979, 0xB7AE, 0x6986, 0xB7AF, 0x695D, 0xB7B0, 0x6963, 0xB7B1, 0x695B, + 0xB7B2, 0x6B47, 0xB7B3, 0x6B72, 0xB7B4, 0x6BC0, 0xB7B5, 0x6BBF, 0xB7B6, 0x6BD3, 0xB7B7, 0x6BFD, 0xB7B8, 0x6EA2, 0xB7B9, 0x6EAF, + 0xB7BA, 0x6ED3, 0xB7BB, 0x6EB6, 0xB7BC, 0x6EC2, 0xB7BD, 0x6E90, 0xB7BE, 0x6E9D, 0xB7BF, 0x6EC7, 0xB7C0, 0x6EC5, 0xB7C1, 0x6EA5, + 0xB7C2, 0x6E98, 0xB7C3, 0x6EBC, 0xB7C4, 0x6EBA, 0xB7C5, 0x6EAB, 0xB7C6, 0x6ED1, 0xB7C7, 0x6E96, 0xB7C8, 0x6E9C, 0xB7C9, 0x6EC4, + 0xB7CA, 0x6ED4, 0xB7CB, 0x6EAA, 0xB7CC, 0x6EA7, 0xB7CD, 0x6EB4, 0xB7CE, 0x714E, 0xB7CF, 0x7159, 0xB7D0, 0x7169, 0xB7D1, 0x7164, + 0xB7D2, 0x7149, 0xB7D3, 0x7167, 0xB7D4, 0x715C, 0xB7D5, 0x716C, 0xB7D6, 0x7166, 0xB7D7, 0x714C, 0xB7D8, 0x7165, 0xB7D9, 0x715E, + 0xB7DA, 0x7146, 0xB7DB, 0x7168, 0xB7DC, 0x7156, 0xB7DD, 0x723A, 0xB7DE, 0x7252, 0xB7DF, 0x7337, 0xB7E0, 0x7345, 0xB7E1, 0x733F, + 0xB7E2, 0x733E, 0xB7E3, 0x746F, 0xB7E4, 0x745A, 0xB7E5, 0x7455, 0xB7E6, 0x745F, 0xB7E7, 0x745E, 0xB7E8, 0x7441, 0xB7E9, 0x743F, + 0xB7EA, 0x7459, 0xB7EB, 0x745B, 0xB7EC, 0x745C, 0xB7ED, 0x7576, 0xB7EE, 0x7578, 0xB7EF, 0x7600, 0xB7F0, 0x75F0, 0xB7F1, 0x7601, + 0xB7F2, 0x75F2, 0xB7F3, 0x75F1, 0xB7F4, 0x75FA, 0xB7F5, 0x75FF, 0xB7F6, 0x75F4, 0xB7F7, 0x75F3, 0xB7F8, 0x76DE, 0xB7F9, 0x76DF, + 0xB7FA, 0x775B, 0xB7FB, 0x776B, 0xB7FC, 0x7766, 0xB7FD, 0x775E, 0xB7FE, 0x7763, 0xB840, 0x7779, 0xB841, 0x776A, 0xB842, 0x776C, + 0xB843, 0x775C, 0xB844, 0x7765, 0xB845, 0x7768, 0xB846, 0x7762, 0xB847, 0x77EE, 0xB848, 0x788E, 0xB849, 0x78B0, 0xB84A, 0x7897, + 0xB84B, 0x7898, 0xB84C, 0x788C, 0xB84D, 0x7889, 0xB84E, 0x787C, 0xB84F, 0x7891, 0xB850, 0x7893, 0xB851, 0x787F, 0xB852, 0x797A, + 0xB853, 0x797F, 0xB854, 0x7981, 0xB855, 0x842C, 0xB856, 0x79BD, 0xB857, 0x7A1C, 0xB858, 0x7A1A, 0xB859, 0x7A20, 0xB85A, 0x7A14, + 0xB85B, 0x7A1F, 0xB85C, 0x7A1E, 0xB85D, 0x7A9F, 0xB85E, 0x7AA0, 0xB85F, 0x7B77, 0xB860, 0x7BC0, 0xB861, 0x7B60, 0xB862, 0x7B6E, + 0xB863, 0x7B67, 0xB864, 0x7CB1, 0xB865, 0x7CB3, 0xB866, 0x7CB5, 0xB867, 0x7D93, 0xB868, 0x7D79, 0xB869, 0x7D91, 0xB86A, 0x7D81, + 0xB86B, 0x7D8F, 0xB86C, 0x7D5B, 0xB86D, 0x7F6E, 0xB86E, 0x7F69, 0xB86F, 0x7F6A, 0xB870, 0x7F72, 0xB871, 0x7FA9, 0xB872, 0x7FA8, + 0xB873, 0x7FA4, 0xB874, 0x8056, 0xB875, 0x8058, 0xB876, 0x8086, 0xB877, 0x8084, 0xB878, 0x8171, 0xB879, 0x8170, 0xB87A, 0x8178, + 0xB87B, 0x8165, 0xB87C, 0x816E, 0xB87D, 0x8173, 0xB87E, 0x816B, 0xB8A1, 0x8179, 0xB8A2, 0x817A, 0xB8A3, 0x8166, 0xB8A4, 0x8205, + 0xB8A5, 0x8247, 0xB8A6, 0x8482, 0xB8A7, 0x8477, 0xB8A8, 0x843D, 0xB8A9, 0x8431, 0xB8AA, 0x8475, 0xB8AB, 0x8466, 0xB8AC, 0x846B, + 0xB8AD, 0x8449, 0xB8AE, 0x846C, 0xB8AF, 0x845B, 0xB8B0, 0x843C, 0xB8B1, 0x8435, 0xB8B2, 0x8461, 0xB8B3, 0x8463, 0xB8B4, 0x8469, + 0xB8B5, 0x846D, 0xB8B6, 0x8446, 0xB8B7, 0x865E, 0xB8B8, 0x865C, 0xB8B9, 0x865F, 0xB8BA, 0x86F9, 0xB8BB, 0x8713, 0xB8BC, 0x8708, + 0xB8BD, 0x8707, 0xB8BE, 0x8700, 0xB8BF, 0x86FE, 0xB8C0, 0x86FB, 0xB8C1, 0x8702, 0xB8C2, 0x8703, 0xB8C3, 0x8706, 0xB8C4, 0x870A, + 0xB8C5, 0x8859, 0xB8C6, 0x88DF, 0xB8C7, 0x88D4, 0xB8C8, 0x88D9, 0xB8C9, 0x88DC, 0xB8CA, 0x88D8, 0xB8CB, 0x88DD, 0xB8CC, 0x88E1, + 0xB8CD, 0x88CA, 0xB8CE, 0x88D5, 0xB8CF, 0x88D2, 0xB8D0, 0x899C, 0xB8D1, 0x89E3, 0xB8D2, 0x8A6B, 0xB8D3, 0x8A72, 0xB8D4, 0x8A73, + 0xB8D5, 0x8A66, 0xB8D6, 0x8A69, 0xB8D7, 0x8A70, 0xB8D8, 0x8A87, 0xB8D9, 0x8A7C, 0xB8DA, 0x8A63, 0xB8DB, 0x8AA0, 0xB8DC, 0x8A71, + 0xB8DD, 0x8A85, 0xB8DE, 0x8A6D, 0xB8DF, 0x8A62, 0xB8E0, 0x8A6E, 0xB8E1, 0x8A6C, 0xB8E2, 0x8A79, 0xB8E3, 0x8A7B, 0xB8E4, 0x8A3E, + 0xB8E5, 0x8A68, 0xB8E6, 0x8C62, 0xB8E7, 0x8C8A, 0xB8E8, 0x8C89, 0xB8E9, 0x8CCA, 0xB8EA, 0x8CC7, 0xB8EB, 0x8CC8, 0xB8EC, 0x8CC4, + 0xB8ED, 0x8CB2, 0xB8EE, 0x8CC3, 0xB8EF, 0x8CC2, 0xB8F0, 0x8CC5, 0xB8F1, 0x8DE1, 0xB8F2, 0x8DDF, 0xB8F3, 0x8DE8, 0xB8F4, 0x8DEF, + 0xB8F5, 0x8DF3, 0xB8F6, 0x8DFA, 0xB8F7, 0x8DEA, 0xB8F8, 0x8DE4, 0xB8F9, 0x8DE6, 0xB8FA, 0x8EB2, 0xB8FB, 0x8F03, 0xB8FC, 0x8F09, + 0xB8FD, 0x8EFE, 0xB8FE, 0x8F0A, 0xB940, 0x8F9F, 0xB941, 0x8FB2, 0xB942, 0x904B, 0xB943, 0x904A, 0xB944, 0x9053, 0xB945, 0x9042, + 0xB946, 0x9054, 0xB947, 0x903C, 0xB948, 0x9055, 0xB949, 0x9050, 0xB94A, 0x9047, 0xB94B, 0x904F, 0xB94C, 0x904E, 0xB94D, 0x904D, + 0xB94E, 0x9051, 0xB94F, 0x903E, 0xB950, 0x9041, 0xB951, 0x9112, 0xB952, 0x9117, 0xB953, 0x916C, 0xB954, 0x916A, 0xB955, 0x9169, + 0xB956, 0x91C9, 0xB957, 0x9237, 0xB958, 0x9257, 0xB959, 0x9238, 0xB95A, 0x923D, 0xB95B, 0x9240, 0xB95C, 0x923E, 0xB95D, 0x925B, + 0xB95E, 0x924B, 0xB95F, 0x9264, 0xB960, 0x9251, 0xB961, 0x9234, 0xB962, 0x9249, 0xB963, 0x924D, 0xB964, 0x9245, 0xB965, 0x9239, + 0xB966, 0x923F, 0xB967, 0x925A, 0xB968, 0x9598, 0xB969, 0x9698, 0xB96A, 0x9694, 0xB96B, 0x9695, 0xB96C, 0x96CD, 0xB96D, 0x96CB, + 0xB96E, 0x96C9, 0xB96F, 0x96CA, 0xB970, 0x96F7, 0xB971, 0x96FB, 0xB972, 0x96F9, 0xB973, 0x96F6, 0xB974, 0x9756, 0xB975, 0x9774, + 0xB976, 0x9776, 0xB977, 0x9810, 0xB978, 0x9811, 0xB979, 0x9813, 0xB97A, 0x980A, 0xB97B, 0x9812, 0xB97C, 0x980C, 0xB97D, 0x98FC, + 0xB97E, 0x98F4, 0xB9A1, 0x98FD, 0xB9A2, 0x98FE, 0xB9A3, 0x99B3, 0xB9A4, 0x99B1, 0xB9A5, 0x99B4, 0xB9A6, 0x9AE1, 0xB9A7, 0x9CE9, + 0xB9A8, 0x9E82, 0xB9A9, 0x9F0E, 0xB9AA, 0x9F13, 0xB9AB, 0x9F20, 0xB9AC, 0x50E7, 0xB9AD, 0x50EE, 0xB9AE, 0x50E5, 0xB9AF, 0x50D6, + 0xB9B0, 0x50ED, 0xB9B1, 0x50DA, 0xB9B2, 0x50D5, 0xB9B3, 0x50CF, 0xB9B4, 0x50D1, 0xB9B5, 0x50F1, 0xB9B6, 0x50CE, 0xB9B7, 0x50E9, + 0xB9B8, 0x5162, 0xB9B9, 0x51F3, 0xB9BA, 0x5283, 0xB9BB, 0x5282, 0xB9BC, 0x5331, 0xB9BD, 0x53AD, 0xB9BE, 0x55FE, 0xB9BF, 0x5600, + 0xB9C0, 0x561B, 0xB9C1, 0x5617, 0xB9C2, 0x55FD, 0xB9C3, 0x5614, 0xB9C4, 0x5606, 0xB9C5, 0x5609, 0xB9C6, 0x560D, 0xB9C7, 0x560E, + 0xB9C8, 0x55F7, 0xB9C9, 0x5616, 0xB9CA, 0x561F, 0xB9CB, 0x5608, 0xB9CC, 0x5610, 0xB9CD, 0x55F6, 0xB9CE, 0x5718, 0xB9CF, 0x5716, + 0xB9D0, 0x5875, 0xB9D1, 0x587E, 0xB9D2, 0x5883, 0xB9D3, 0x5893, 0xB9D4, 0x588A, 0xB9D5, 0x5879, 0xB9D6, 0x5885, 0xB9D7, 0x587D, + 0xB9D8, 0x58FD, 0xB9D9, 0x5925, 0xB9DA, 0x5922, 0xB9DB, 0x5924, 0xB9DC, 0x596A, 0xB9DD, 0x5969, 0xB9DE, 0x5AE1, 0xB9DF, 0x5AE6, + 0xB9E0, 0x5AE9, 0xB9E1, 0x5AD7, 0xB9E2, 0x5AD6, 0xB9E3, 0x5AD8, 0xB9E4, 0x5AE3, 0xB9E5, 0x5B75, 0xB9E6, 0x5BDE, 0xB9E7, 0x5BE7, + 0xB9E8, 0x5BE1, 0xB9E9, 0x5BE5, 0xB9EA, 0x5BE6, 0xB9EB, 0x5BE8, 0xB9EC, 0x5BE2, 0xB9ED, 0x5BE4, 0xB9EE, 0x5BDF, 0xB9EF, 0x5C0D, + 0xB9F0, 0x5C62, 0xB9F1, 0x5D84, 0xB9F2, 0x5D87, 0xB9F3, 0x5E5B, 0xB9F4, 0x5E63, 0xB9F5, 0x5E55, 0xB9F6, 0x5E57, 0xB9F7, 0x5E54, + 0xB9F8, 0x5ED3, 0xB9F9, 0x5ED6, 0xB9FA, 0x5F0A, 0xB9FB, 0x5F46, 0xB9FC, 0x5F70, 0xB9FD, 0x5FB9, 0xB9FE, 0x6147, 0xBA40, 0x613F, + 0xBA41, 0x614B, 0xBA42, 0x6177, 0xBA43, 0x6162, 0xBA44, 0x6163, 0xBA45, 0x615F, 0xBA46, 0x615A, 0xBA47, 0x6158, 0xBA48, 0x6175, + 0xBA49, 0x622A, 0xBA4A, 0x6487, 0xBA4B, 0x6458, 0xBA4C, 0x6454, 0xBA4D, 0x64A4, 0xBA4E, 0x6478, 0xBA4F, 0x645F, 0xBA50, 0x647A, + 0xBA51, 0x6451, 0xBA52, 0x6467, 0xBA53, 0x6434, 0xBA54, 0x646D, 0xBA55, 0x647B, 0xBA56, 0x6572, 0xBA57, 0x65A1, 0xBA58, 0x65D7, + 0xBA59, 0x65D6, 0xBA5A, 0x66A2, 0xBA5B, 0x66A8, 0xBA5C, 0x669D, 0xBA5D, 0x699C, 0xBA5E, 0x69A8, 0xBA5F, 0x6995, 0xBA60, 0x69C1, + 0xBA61, 0x69AE, 0xBA62, 0x69D3, 0xBA63, 0x69CB, 0xBA64, 0x699B, 0xBA65, 0x69B7, 0xBA66, 0x69BB, 0xBA67, 0x69AB, 0xBA68, 0x69B4, + 0xBA69, 0x69D0, 0xBA6A, 0x69CD, 0xBA6B, 0x69AD, 0xBA6C, 0x69CC, 0xBA6D, 0x69A6, 0xBA6E, 0x69C3, 0xBA6F, 0x69A3, 0xBA70, 0x6B49, + 0xBA71, 0x6B4C, 0xBA72, 0x6C33, 0xBA73, 0x6F33, 0xBA74, 0x6F14, 0xBA75, 0x6EFE, 0xBA76, 0x6F13, 0xBA77, 0x6EF4, 0xBA78, 0x6F29, + 0xBA79, 0x6F3E, 0xBA7A, 0x6F20, 0xBA7B, 0x6F2C, 0xBA7C, 0x6F0F, 0xBA7D, 0x6F02, 0xBA7E, 0x6F22, 0xBAA1, 0x6EFF, 0xBAA2, 0x6EEF, + 0xBAA3, 0x6F06, 0xBAA4, 0x6F31, 0xBAA5, 0x6F38, 0xBAA6, 0x6F32, 0xBAA7, 0x6F23, 0xBAA8, 0x6F15, 0xBAA9, 0x6F2B, 0xBAAA, 0x6F2F, + 0xBAAB, 0x6F88, 0xBAAC, 0x6F2A, 0xBAAD, 0x6EEC, 0xBAAE, 0x6F01, 0xBAAF, 0x6EF2, 0xBAB0, 0x6ECC, 0xBAB1, 0x6EF7, 0xBAB2, 0x7194, + 0xBAB3, 0x7199, 0xBAB4, 0x717D, 0xBAB5, 0x718A, 0xBAB6, 0x7184, 0xBAB7, 0x7192, 0xBAB8, 0x723E, 0xBAB9, 0x7292, 0xBABA, 0x7296, + 0xBABB, 0x7344, 0xBABC, 0x7350, 0xBABD, 0x7464, 0xBABE, 0x7463, 0xBABF, 0x746A, 0xBAC0, 0x7470, 0xBAC1, 0x746D, 0xBAC2, 0x7504, + 0xBAC3, 0x7591, 0xBAC4, 0x7627, 0xBAC5, 0x760D, 0xBAC6, 0x760B, 0xBAC7, 0x7609, 0xBAC8, 0x7613, 0xBAC9, 0x76E1, 0xBACA, 0x76E3, + 0xBACB, 0x7784, 0xBACC, 0x777D, 0xBACD, 0x777F, 0xBACE, 0x7761, 0xBACF, 0x78C1, 0xBAD0, 0x789F, 0xBAD1, 0x78A7, 0xBAD2, 0x78B3, + 0xBAD3, 0x78A9, 0xBAD4, 0x78A3, 0xBAD5, 0x798E, 0xBAD6, 0x798F, 0xBAD7, 0x798D, 0xBAD8, 0x7A2E, 0xBAD9, 0x7A31, 0xBADA, 0x7AAA, + 0xBADB, 0x7AA9, 0xBADC, 0x7AED, 0xBADD, 0x7AEF, 0xBADE, 0x7BA1, 0xBADF, 0x7B95, 0xBAE0, 0x7B8B, 0xBAE1, 0x7B75, 0xBAE2, 0x7B97, + 0xBAE3, 0x7B9D, 0xBAE4, 0x7B94, 0xBAE5, 0x7B8F, 0xBAE6, 0x7BB8, 0xBAE7, 0x7B87, 0xBAE8, 0x7B84, 0xBAE9, 0x7CB9, 0xBAEA, 0x7CBD, + 0xBAEB, 0x7CBE, 0xBAEC, 0x7DBB, 0xBAED, 0x7DB0, 0xBAEE, 0x7D9C, 0xBAEF, 0x7DBD, 0xBAF0, 0x7DBE, 0xBAF1, 0x7DA0, 0xBAF2, 0x7DCA, + 0xBAF3, 0x7DB4, 0xBAF4, 0x7DB2, 0xBAF5, 0x7DB1, 0xBAF6, 0x7DBA, 0xBAF7, 0x7DA2, 0xBAF8, 0x7DBF, 0xBAF9, 0x7DB5, 0xBAFA, 0x7DB8, + 0xBAFB, 0x7DAD, 0xBAFC, 0x7DD2, 0xBAFD, 0x7DC7, 0xBAFE, 0x7DAC, 0xBB40, 0x7F70, 0xBB41, 0x7FE0, 0xBB42, 0x7FE1, 0xBB43, 0x7FDF, + 0xBB44, 0x805E, 0xBB45, 0x805A, 0xBB46, 0x8087, 0xBB47, 0x8150, 0xBB48, 0x8180, 0xBB49, 0x818F, 0xBB4A, 0x8188, 0xBB4B, 0x818A, + 0xBB4C, 0x817F, 0xBB4D, 0x8182, 0xBB4E, 0x81E7, 0xBB4F, 0x81FA, 0xBB50, 0x8207, 0xBB51, 0x8214, 0xBB52, 0x821E, 0xBB53, 0x824B, + 0xBB54, 0x84C9, 0xBB55, 0x84BF, 0xBB56, 0x84C6, 0xBB57, 0x84C4, 0xBB58, 0x8499, 0xBB59, 0x849E, 0xBB5A, 0x84B2, 0xBB5B, 0x849C, + 0xBB5C, 0x84CB, 0xBB5D, 0x84B8, 0xBB5E, 0x84C0, 0xBB5F, 0x84D3, 0xBB60, 0x8490, 0xBB61, 0x84BC, 0xBB62, 0x84D1, 0xBB63, 0x84CA, + 0xBB64, 0x873F, 0xBB65, 0x871C, 0xBB66, 0x873B, 0xBB67, 0x8722, 0xBB68, 0x8725, 0xBB69, 0x8734, 0xBB6A, 0x8718, 0xBB6B, 0x8755, + 0xBB6C, 0x8737, 0xBB6D, 0x8729, 0xBB6E, 0x88F3, 0xBB6F, 0x8902, 0xBB70, 0x88F4, 0xBB71, 0x88F9, 0xBB72, 0x88F8, 0xBB73, 0x88FD, + 0xBB74, 0x88E8, 0xBB75, 0x891A, 0xBB76, 0x88EF, 0xBB77, 0x8AA6, 0xBB78, 0x8A8C, 0xBB79, 0x8A9E, 0xBB7A, 0x8AA3, 0xBB7B, 0x8A8D, + 0xBB7C, 0x8AA1, 0xBB7D, 0x8A93, 0xBB7E, 0x8AA4, 0xBBA1, 0x8AAA, 0xBBA2, 0x8AA5, 0xBBA3, 0x8AA8, 0xBBA4, 0x8A98, 0xBBA5, 0x8A91, + 0xBBA6, 0x8A9A, 0xBBA7, 0x8AA7, 0xBBA8, 0x8C6A, 0xBBA9, 0x8C8D, 0xBBAA, 0x8C8C, 0xBBAB, 0x8CD3, 0xBBAC, 0x8CD1, 0xBBAD, 0x8CD2, + 0xBBAE, 0x8D6B, 0xBBAF, 0x8D99, 0xBBB0, 0x8D95, 0xBBB1, 0x8DFC, 0xBBB2, 0x8F14, 0xBBB3, 0x8F12, 0xBBB4, 0x8F15, 0xBBB5, 0x8F13, + 0xBBB6, 0x8FA3, 0xBBB7, 0x9060, 0xBBB8, 0x9058, 0xBBB9, 0x905C, 0xBBBA, 0x9063, 0xBBBB, 0x9059, 0xBBBC, 0x905E, 0xBBBD, 0x9062, + 0xBBBE, 0x905D, 0xBBBF, 0x905B, 0xBBC0, 0x9119, 0xBBC1, 0x9118, 0xBBC2, 0x911E, 0xBBC3, 0x9175, 0xBBC4, 0x9178, 0xBBC5, 0x9177, + 0xBBC6, 0x9174, 0xBBC7, 0x9278, 0xBBC8, 0x9280, 0xBBC9, 0x9285, 0xBBCA, 0x9298, 0xBBCB, 0x9296, 0xBBCC, 0x927B, 0xBBCD, 0x9293, + 0xBBCE, 0x929C, 0xBBCF, 0x92A8, 0xBBD0, 0x927C, 0xBBD1, 0x9291, 0xBBD2, 0x95A1, 0xBBD3, 0x95A8, 0xBBD4, 0x95A9, 0xBBD5, 0x95A3, + 0xBBD6, 0x95A5, 0xBBD7, 0x95A4, 0xBBD8, 0x9699, 0xBBD9, 0x969C, 0xBBDA, 0x969B, 0xBBDB, 0x96CC, 0xBBDC, 0x96D2, 0xBBDD, 0x9700, + 0xBBDE, 0x977C, 0xBBDF, 0x9785, 0xBBE0, 0x97F6, 0xBBE1, 0x9817, 0xBBE2, 0x9818, 0xBBE3, 0x98AF, 0xBBE4, 0x98B1, 0xBBE5, 0x9903, + 0xBBE6, 0x9905, 0xBBE7, 0x990C, 0xBBE8, 0x9909, 0xBBE9, 0x99C1, 0xBBEA, 0x9AAF, 0xBBEB, 0x9AB0, 0xBBEC, 0x9AE6, 0xBBED, 0x9B41, + 0xBBEE, 0x9B42, 0xBBEF, 0x9CF4, 0xBBF0, 0x9CF6, 0xBBF1, 0x9CF3, 0xBBF2, 0x9EBC, 0xBBF3, 0x9F3B, 0xBBF4, 0x9F4A, 0xBBF5, 0x5104, + 0xBBF6, 0x5100, 0xBBF7, 0x50FB, 0xBBF8, 0x50F5, 0xBBF9, 0x50F9, 0xBBFA, 0x5102, 0xBBFB, 0x5108, 0xBBFC, 0x5109, 0xBBFD, 0x5105, + 0xBBFE, 0x51DC, 0xBC40, 0x5287, 0xBC41, 0x5288, 0xBC42, 0x5289, 0xBC43, 0x528D, 0xBC44, 0x528A, 0xBC45, 0x52F0, 0xBC46, 0x53B2, + 0xBC47, 0x562E, 0xBC48, 0x563B, 0xBC49, 0x5639, 0xBC4A, 0x5632, 0xBC4B, 0x563F, 0xBC4C, 0x5634, 0xBC4D, 0x5629, 0xBC4E, 0x5653, + 0xBC4F, 0x564E, 0xBC50, 0x5657, 0xBC51, 0x5674, 0xBC52, 0x5636, 0xBC53, 0x562F, 0xBC54, 0x5630, 0xBC55, 0x5880, 0xBC56, 0x589F, + 0xBC57, 0x589E, 0xBC58, 0x58B3, 0xBC59, 0x589C, 0xBC5A, 0x58AE, 0xBC5B, 0x58A9, 0xBC5C, 0x58A6, 0xBC5D, 0x596D, 0xBC5E, 0x5B09, + 0xBC5F, 0x5AFB, 0xBC60, 0x5B0B, 0xBC61, 0x5AF5, 0xBC62, 0x5B0C, 0xBC63, 0x5B08, 0xBC64, 0x5BEE, 0xBC65, 0x5BEC, 0xBC66, 0x5BE9, + 0xBC67, 0x5BEB, 0xBC68, 0x5C64, 0xBC69, 0x5C65, 0xBC6A, 0x5D9D, 0xBC6B, 0x5D94, 0xBC6C, 0x5E62, 0xBC6D, 0x5E5F, 0xBC6E, 0x5E61, + 0xBC6F, 0x5EE2, 0xBC70, 0x5EDA, 0xBC71, 0x5EDF, 0xBC72, 0x5EDD, 0xBC73, 0x5EE3, 0xBC74, 0x5EE0, 0xBC75, 0x5F48, 0xBC76, 0x5F71, + 0xBC77, 0x5FB7, 0xBC78, 0x5FB5, 0xBC79, 0x6176, 0xBC7A, 0x6167, 0xBC7B, 0x616E, 0xBC7C, 0x615D, 0xBC7D, 0x6155, 0xBC7E, 0x6182, + 0xBCA1, 0x617C, 0xBCA2, 0x6170, 0xBCA3, 0x616B, 0xBCA4, 0x617E, 0xBCA5, 0x61A7, 0xBCA6, 0x6190, 0xBCA7, 0x61AB, 0xBCA8, 0x618E, + 0xBCA9, 0x61AC, 0xBCAA, 0x619A, 0xBCAB, 0x61A4, 0xBCAC, 0x6194, 0xBCAD, 0x61AE, 0xBCAE, 0x622E, 0xBCAF, 0x6469, 0xBCB0, 0x646F, + 0xBCB1, 0x6479, 0xBCB2, 0x649E, 0xBCB3, 0x64B2, 0xBCB4, 0x6488, 0xBCB5, 0x6490, 0xBCB6, 0x64B0, 0xBCB7, 0x64A5, 0xBCB8, 0x6493, + 0xBCB9, 0x6495, 0xBCBA, 0x64A9, 0xBCBB, 0x6492, 0xBCBC, 0x64AE, 0xBCBD, 0x64AD, 0xBCBE, 0x64AB, 0xBCBF, 0x649A, 0xBCC0, 0x64AC, + 0xBCC1, 0x6499, 0xBCC2, 0x64A2, 0xBCC3, 0x64B3, 0xBCC4, 0x6575, 0xBCC5, 0x6577, 0xBCC6, 0x6578, 0xBCC7, 0x66AE, 0xBCC8, 0x66AB, + 0xBCC9, 0x66B4, 0xBCCA, 0x66B1, 0xBCCB, 0x6A23, 0xBCCC, 0x6A1F, 0xBCCD, 0x69E8, 0xBCCE, 0x6A01, 0xBCCF, 0x6A1E, 0xBCD0, 0x6A19, + 0xBCD1, 0x69FD, 0xBCD2, 0x6A21, 0xBCD3, 0x6A13, 0xBCD4, 0x6A0A, 0xBCD5, 0x69F3, 0xBCD6, 0x6A02, 0xBCD7, 0x6A05, 0xBCD8, 0x69ED, + 0xBCD9, 0x6A11, 0xBCDA, 0x6B50, 0xBCDB, 0x6B4E, 0xBCDC, 0x6BA4, 0xBCDD, 0x6BC5, 0xBCDE, 0x6BC6, 0xBCDF, 0x6F3F, 0xBCE0, 0x6F7C, + 0xBCE1, 0x6F84, 0xBCE2, 0x6F51, 0xBCE3, 0x6F66, 0xBCE4, 0x6F54, 0xBCE5, 0x6F86, 0xBCE6, 0x6F6D, 0xBCE7, 0x6F5B, 0xBCE8, 0x6F78, + 0xBCE9, 0x6F6E, 0xBCEA, 0x6F8E, 0xBCEB, 0x6F7A, 0xBCEC, 0x6F70, 0xBCED, 0x6F64, 0xBCEE, 0x6F97, 0xBCEF, 0x6F58, 0xBCF0, 0x6ED5, + 0xBCF1, 0x6F6F, 0xBCF2, 0x6F60, 0xBCF3, 0x6F5F, 0xBCF4, 0x719F, 0xBCF5, 0x71AC, 0xBCF6, 0x71B1, 0xBCF7, 0x71A8, 0xBCF8, 0x7256, + 0xBCF9, 0x729B, 0xBCFA, 0x734E, 0xBCFB, 0x7357, 0xBCFC, 0x7469, 0xBCFD, 0x748B, 0xBCFE, 0x7483, 0xBD40, 0x747E, 0xBD41, 0x7480, + 0xBD42, 0x757F, 0xBD43, 0x7620, 0xBD44, 0x7629, 0xBD45, 0x761F, 0xBD46, 0x7624, 0xBD47, 0x7626, 0xBD48, 0x7621, 0xBD49, 0x7622, + 0xBD4A, 0x769A, 0xBD4B, 0x76BA, 0xBD4C, 0x76E4, 0xBD4D, 0x778E, 0xBD4E, 0x7787, 0xBD4F, 0x778C, 0xBD50, 0x7791, 0xBD51, 0x778B, + 0xBD52, 0x78CB, 0xBD53, 0x78C5, 0xBD54, 0x78BA, 0xBD55, 0x78CA, 0xBD56, 0x78BE, 0xBD57, 0x78D5, 0xBD58, 0x78BC, 0xBD59, 0x78D0, + 0xBD5A, 0x7A3F, 0xBD5B, 0x7A3C, 0xBD5C, 0x7A40, 0xBD5D, 0x7A3D, 0xBD5E, 0x7A37, 0xBD5F, 0x7A3B, 0xBD60, 0x7AAF, 0xBD61, 0x7AAE, + 0xBD62, 0x7BAD, 0xBD63, 0x7BB1, 0xBD64, 0x7BC4, 0xBD65, 0x7BB4, 0xBD66, 0x7BC6, 0xBD67, 0x7BC7, 0xBD68, 0x7BC1, 0xBD69, 0x7BA0, + 0xBD6A, 0x7BCC, 0xBD6B, 0x7CCA, 0xBD6C, 0x7DE0, 0xBD6D, 0x7DF4, 0xBD6E, 0x7DEF, 0xBD6F, 0x7DFB, 0xBD70, 0x7DD8, 0xBD71, 0x7DEC, + 0xBD72, 0x7DDD, 0xBD73, 0x7DE8, 0xBD74, 0x7DE3, 0xBD75, 0x7DDA, 0xBD76, 0x7DDE, 0xBD77, 0x7DE9, 0xBD78, 0x7D9E, 0xBD79, 0x7DD9, + 0xBD7A, 0x7DF2, 0xBD7B, 0x7DF9, 0xBD7C, 0x7F75, 0xBD7D, 0x7F77, 0xBD7E, 0x7FAF, 0xBDA1, 0x7FE9, 0xBDA2, 0x8026, 0xBDA3, 0x819B, + 0xBDA4, 0x819C, 0xBDA5, 0x819D, 0xBDA6, 0x81A0, 0xBDA7, 0x819A, 0xBDA8, 0x8198, 0xBDA9, 0x8517, 0xBDAA, 0x853D, 0xBDAB, 0x851A, + 0xBDAC, 0x84EE, 0xBDAD, 0x852C, 0xBDAE, 0x852D, 0xBDAF, 0x8513, 0xBDB0, 0x8511, 0xBDB1, 0x8523, 0xBDB2, 0x8521, 0xBDB3, 0x8514, + 0xBDB4, 0x84EC, 0xBDB5, 0x8525, 0xBDB6, 0x84FF, 0xBDB7, 0x8506, 0xBDB8, 0x8782, 0xBDB9, 0x8774, 0xBDBA, 0x8776, 0xBDBB, 0x8760, + 0xBDBC, 0x8766, 0xBDBD, 0x8778, 0xBDBE, 0x8768, 0xBDBF, 0x8759, 0xBDC0, 0x8757, 0xBDC1, 0x874C, 0xBDC2, 0x8753, 0xBDC3, 0x885B, + 0xBDC4, 0x885D, 0xBDC5, 0x8910, 0xBDC6, 0x8907, 0xBDC7, 0x8912, 0xBDC8, 0x8913, 0xBDC9, 0x8915, 0xBDCA, 0x890A, 0xBDCB, 0x8ABC, + 0xBDCC, 0x8AD2, 0xBDCD, 0x8AC7, 0xBDCE, 0x8AC4, 0xBDCF, 0x8A95, 0xBDD0, 0x8ACB, 0xBDD1, 0x8AF8, 0xBDD2, 0x8AB2, 0xBDD3, 0x8AC9, + 0xBDD4, 0x8AC2, 0xBDD5, 0x8ABF, 0xBDD6, 0x8AB0, 0xBDD7, 0x8AD6, 0xBDD8, 0x8ACD, 0xBDD9, 0x8AB6, 0xBDDA, 0x8AB9, 0xBDDB, 0x8ADB, + 0xBDDC, 0x8C4C, 0xBDDD, 0x8C4E, 0xBDDE, 0x8C6C, 0xBDDF, 0x8CE0, 0xBDE0, 0x8CDE, 0xBDE1, 0x8CE6, 0xBDE2, 0x8CE4, 0xBDE3, 0x8CEC, + 0xBDE4, 0x8CED, 0xBDE5, 0x8CE2, 0xBDE6, 0x8CE3, 0xBDE7, 0x8CDC, 0xBDE8, 0x8CEA, 0xBDE9, 0x8CE1, 0xBDEA, 0x8D6D, 0xBDEB, 0x8D9F, + 0xBDEC, 0x8DA3, 0xBDED, 0x8E2B, 0xBDEE, 0x8E10, 0xBDEF, 0x8E1D, 0xBDF0, 0x8E22, 0xBDF1, 0x8E0F, 0xBDF2, 0x8E29, 0xBDF3, 0x8E1F, + 0xBDF4, 0x8E21, 0xBDF5, 0x8E1E, 0xBDF6, 0x8EBA, 0xBDF7, 0x8F1D, 0xBDF8, 0x8F1B, 0xBDF9, 0x8F1F, 0xBDFA, 0x8F29, 0xBDFB, 0x8F26, + 0xBDFC, 0x8F2A, 0xBDFD, 0x8F1C, 0xBDFE, 0x8F1E, 0xBE40, 0x8F25, 0xBE41, 0x9069, 0xBE42, 0x906E, 0xBE43, 0x9068, 0xBE44, 0x906D, + 0xBE45, 0x9077, 0xBE46, 0x9130, 0xBE47, 0x912D, 0xBE48, 0x9127, 0xBE49, 0x9131, 0xBE4A, 0x9187, 0xBE4B, 0x9189, 0xBE4C, 0x918B, + 0xBE4D, 0x9183, 0xBE4E, 0x92C5, 0xBE4F, 0x92BB, 0xBE50, 0x92B7, 0xBE51, 0x92EA, 0xBE52, 0x92AC, 0xBE53, 0x92E4, 0xBE54, 0x92C1, + 0xBE55, 0x92B3, 0xBE56, 0x92BC, 0xBE57, 0x92D2, 0xBE58, 0x92C7, 0xBE59, 0x92F0, 0xBE5A, 0x92B2, 0xBE5B, 0x95AD, 0xBE5C, 0x95B1, + 0xBE5D, 0x9704, 0xBE5E, 0x9706, 0xBE5F, 0x9707, 0xBE60, 0x9709, 0xBE61, 0x9760, 0xBE62, 0x978D, 0xBE63, 0x978B, 0xBE64, 0x978F, + 0xBE65, 0x9821, 0xBE66, 0x982B, 0xBE67, 0x981C, 0xBE68, 0x98B3, 0xBE69, 0x990A, 0xBE6A, 0x9913, 0xBE6B, 0x9912, 0xBE6C, 0x9918, + 0xBE6D, 0x99DD, 0xBE6E, 0x99D0, 0xBE6F, 0x99DF, 0xBE70, 0x99DB, 0xBE71, 0x99D1, 0xBE72, 0x99D5, 0xBE73, 0x99D2, 0xBE74, 0x99D9, + 0xBE75, 0x9AB7, 0xBE76, 0x9AEE, 0xBE77, 0x9AEF, 0xBE78, 0x9B27, 0xBE79, 0x9B45, 0xBE7A, 0x9B44, 0xBE7B, 0x9B77, 0xBE7C, 0x9B6F, + 0xBE7D, 0x9D06, 0xBE7E, 0x9D09, 0xBEA1, 0x9D03, 0xBEA2, 0x9EA9, 0xBEA3, 0x9EBE, 0xBEA4, 0x9ECE, 0xBEA5, 0x58A8, 0xBEA6, 0x9F52, + 0xBEA7, 0x5112, 0xBEA8, 0x5118, 0xBEA9, 0x5114, 0xBEAA, 0x5110, 0xBEAB, 0x5115, 0xBEAC, 0x5180, 0xBEAD, 0x51AA, 0xBEAE, 0x51DD, + 0xBEAF, 0x5291, 0xBEB0, 0x5293, 0xBEB1, 0x52F3, 0xBEB2, 0x5659, 0xBEB3, 0x566B, 0xBEB4, 0x5679, 0xBEB5, 0x5669, 0xBEB6, 0x5664, + 0xBEB7, 0x5678, 0xBEB8, 0x566A, 0xBEB9, 0x5668, 0xBEBA, 0x5665, 0xBEBB, 0x5671, 0xBEBC, 0x566F, 0xBEBD, 0x566C, 0xBEBE, 0x5662, + 0xBEBF, 0x5676, 0xBEC0, 0x58C1, 0xBEC1, 0x58BE, 0xBEC2, 0x58C7, 0xBEC3, 0x58C5, 0xBEC4, 0x596E, 0xBEC5, 0x5B1D, 0xBEC6, 0x5B34, + 0xBEC7, 0x5B78, 0xBEC8, 0x5BF0, 0xBEC9, 0x5C0E, 0xBECA, 0x5F4A, 0xBECB, 0x61B2, 0xBECC, 0x6191, 0xBECD, 0x61A9, 0xBECE, 0x618A, + 0xBECF, 0x61CD, 0xBED0, 0x61B6, 0xBED1, 0x61BE, 0xBED2, 0x61CA, 0xBED3, 0x61C8, 0xBED4, 0x6230, 0xBED5, 0x64C5, 0xBED6, 0x64C1, + 0xBED7, 0x64CB, 0xBED8, 0x64BB, 0xBED9, 0x64BC, 0xBEDA, 0x64DA, 0xBEDB, 0x64C4, 0xBEDC, 0x64C7, 0xBEDD, 0x64C2, 0xBEDE, 0x64CD, + 0xBEDF, 0x64BF, 0xBEE0, 0x64D2, 0xBEE1, 0x64D4, 0xBEE2, 0x64BE, 0xBEE3, 0x6574, 0xBEE4, 0x66C6, 0xBEE5, 0x66C9, 0xBEE6, 0x66B9, + 0xBEE7, 0x66C4, 0xBEE8, 0x66C7, 0xBEE9, 0x66B8, 0xBEEA, 0x6A3D, 0xBEEB, 0x6A38, 0xBEEC, 0x6A3A, 0xBEED, 0x6A59, 0xBEEE, 0x6A6B, + 0xBEEF, 0x6A58, 0xBEF0, 0x6A39, 0xBEF1, 0x6A44, 0xBEF2, 0x6A62, 0xBEF3, 0x6A61, 0xBEF4, 0x6A4B, 0xBEF5, 0x6A47, 0xBEF6, 0x6A35, + 0xBEF7, 0x6A5F, 0xBEF8, 0x6A48, 0xBEF9, 0x6B59, 0xBEFA, 0x6B77, 0xBEFB, 0x6C05, 0xBEFC, 0x6FC2, 0xBEFD, 0x6FB1, 0xBEFE, 0x6FA1, + 0xBF40, 0x6FC3, 0xBF41, 0x6FA4, 0xBF42, 0x6FC1, 0xBF43, 0x6FA7, 0xBF44, 0x6FB3, 0xBF45, 0x6FC0, 0xBF46, 0x6FB9, 0xBF47, 0x6FB6, + 0xBF48, 0x6FA6, 0xBF49, 0x6FA0, 0xBF4A, 0x6FB4, 0xBF4B, 0x71BE, 0xBF4C, 0x71C9, 0xBF4D, 0x71D0, 0xBF4E, 0x71D2, 0xBF4F, 0x71C8, + 0xBF50, 0x71D5, 0xBF51, 0x71B9, 0xBF52, 0x71CE, 0xBF53, 0x71D9, 0xBF54, 0x71DC, 0xBF55, 0x71C3, 0xBF56, 0x71C4, 0xBF57, 0x7368, + 0xBF58, 0x749C, 0xBF59, 0x74A3, 0xBF5A, 0x7498, 0xBF5B, 0x749F, 0xBF5C, 0x749E, 0xBF5D, 0x74E2, 0xBF5E, 0x750C, 0xBF5F, 0x750D, + 0xBF60, 0x7634, 0xBF61, 0x7638, 0xBF62, 0x763A, 0xBF63, 0x76E7, 0xBF64, 0x76E5, 0xBF65, 0x77A0, 0xBF66, 0x779E, 0xBF67, 0x779F, + 0xBF68, 0x77A5, 0xBF69, 0x78E8, 0xBF6A, 0x78DA, 0xBF6B, 0x78EC, 0xBF6C, 0x78E7, 0xBF6D, 0x79A6, 0xBF6E, 0x7A4D, 0xBF6F, 0x7A4E, + 0xBF70, 0x7A46, 0xBF71, 0x7A4C, 0xBF72, 0x7A4B, 0xBF73, 0x7ABA, 0xBF74, 0x7BD9, 0xBF75, 0x7C11, 0xBF76, 0x7BC9, 0xBF77, 0x7BE4, + 0xBF78, 0x7BDB, 0xBF79, 0x7BE1, 0xBF7A, 0x7BE9, 0xBF7B, 0x7BE6, 0xBF7C, 0x7CD5, 0xBF7D, 0x7CD6, 0xBF7E, 0x7E0A, 0xBFA1, 0x7E11, + 0xBFA2, 0x7E08, 0xBFA3, 0x7E1B, 0xBFA4, 0x7E23, 0xBFA5, 0x7E1E, 0xBFA6, 0x7E1D, 0xBFA7, 0x7E09, 0xBFA8, 0x7E10, 0xBFA9, 0x7F79, + 0xBFAA, 0x7FB2, 0xBFAB, 0x7FF0, 0xBFAC, 0x7FF1, 0xBFAD, 0x7FEE, 0xBFAE, 0x8028, 0xBFAF, 0x81B3, 0xBFB0, 0x81A9, 0xBFB1, 0x81A8, + 0xBFB2, 0x81FB, 0xBFB3, 0x8208, 0xBFB4, 0x8258, 0xBFB5, 0x8259, 0xBFB6, 0x854A, 0xBFB7, 0x8559, 0xBFB8, 0x8548, 0xBFB9, 0x8568, + 0xBFBA, 0x8569, 0xBFBB, 0x8543, 0xBFBC, 0x8549, 0xBFBD, 0x856D, 0xBFBE, 0x856A, 0xBFBF, 0x855E, 0xBFC0, 0x8783, 0xBFC1, 0x879F, + 0xBFC2, 0x879E, 0xBFC3, 0x87A2, 0xBFC4, 0x878D, 0xBFC5, 0x8861, 0xBFC6, 0x892A, 0xBFC7, 0x8932, 0xBFC8, 0x8925, 0xBFC9, 0x892B, + 0xBFCA, 0x8921, 0xBFCB, 0x89AA, 0xBFCC, 0x89A6, 0xBFCD, 0x8AE6, 0xBFCE, 0x8AFA, 0xBFCF, 0x8AEB, 0xBFD0, 0x8AF1, 0xBFD1, 0x8B00, + 0xBFD2, 0x8ADC, 0xBFD3, 0x8AE7, 0xBFD4, 0x8AEE, 0xBFD5, 0x8AFE, 0xBFD6, 0x8B01, 0xBFD7, 0x8B02, 0xBFD8, 0x8AF7, 0xBFD9, 0x8AED, + 0xBFDA, 0x8AF3, 0xBFDB, 0x8AF6, 0xBFDC, 0x8AFC, 0xBFDD, 0x8C6B, 0xBFDE, 0x8C6D, 0xBFDF, 0x8C93, 0xBFE0, 0x8CF4, 0xBFE1, 0x8E44, + 0xBFE2, 0x8E31, 0xBFE3, 0x8E34, 0xBFE4, 0x8E42, 0xBFE5, 0x8E39, 0xBFE6, 0x8E35, 0xBFE7, 0x8F3B, 0xBFE8, 0x8F2F, 0xBFE9, 0x8F38, + 0xBFEA, 0x8F33, 0xBFEB, 0x8FA8, 0xBFEC, 0x8FA6, 0xBFED, 0x9075, 0xBFEE, 0x9074, 0xBFEF, 0x9078, 0xBFF0, 0x9072, 0xBFF1, 0x907C, + 0xBFF2, 0x907A, 0xBFF3, 0x9134, 0xBFF4, 0x9192, 0xBFF5, 0x9320, 0xBFF6, 0x9336, 0xBFF7, 0x92F8, 0xBFF8, 0x9333, 0xBFF9, 0x932F, + 0xBFFA, 0x9322, 0xBFFB, 0x92FC, 0xBFFC, 0x932B, 0xBFFD, 0x9304, 0xBFFE, 0x931A, 0xC040, 0x9310, 0xC041, 0x9326, 0xC042, 0x9321, + 0xC043, 0x9315, 0xC044, 0x932E, 0xC045, 0x9319, 0xC046, 0x95BB, 0xC047, 0x96A7, 0xC048, 0x96A8, 0xC049, 0x96AA, 0xC04A, 0x96D5, + 0xC04B, 0x970E, 0xC04C, 0x9711, 0xC04D, 0x9716, 0xC04E, 0x970D, 0xC04F, 0x9713, 0xC050, 0x970F, 0xC051, 0x975B, 0xC052, 0x975C, + 0xC053, 0x9766, 0xC054, 0x9798, 0xC055, 0x9830, 0xC056, 0x9838, 0xC057, 0x983B, 0xC058, 0x9837, 0xC059, 0x982D, 0xC05A, 0x9839, + 0xC05B, 0x9824, 0xC05C, 0x9910, 0xC05D, 0x9928, 0xC05E, 0x991E, 0xC05F, 0x991B, 0xC060, 0x9921, 0xC061, 0x991A, 0xC062, 0x99ED, + 0xC063, 0x99E2, 0xC064, 0x99F1, 0xC065, 0x9AB8, 0xC066, 0x9ABC, 0xC067, 0x9AFB, 0xC068, 0x9AED, 0xC069, 0x9B28, 0xC06A, 0x9B91, + 0xC06B, 0x9D15, 0xC06C, 0x9D23, 0xC06D, 0x9D26, 0xC06E, 0x9D28, 0xC06F, 0x9D12, 0xC070, 0x9D1B, 0xC071, 0x9ED8, 0xC072, 0x9ED4, + 0xC073, 0x9F8D, 0xC074, 0x9F9C, 0xC075, 0x512A, 0xC076, 0x511F, 0xC077, 0x5121, 0xC078, 0x5132, 0xC079, 0x52F5, 0xC07A, 0x568E, + 0xC07B, 0x5680, 0xC07C, 0x5690, 0xC07D, 0x5685, 0xC07E, 0x5687, 0xC0A1, 0x568F, 0xC0A2, 0x58D5, 0xC0A3, 0x58D3, 0xC0A4, 0x58D1, + 0xC0A5, 0x58CE, 0xC0A6, 0x5B30, 0xC0A7, 0x5B2A, 0xC0A8, 0x5B24, 0xC0A9, 0x5B7A, 0xC0AA, 0x5C37, 0xC0AB, 0x5C68, 0xC0AC, 0x5DBC, + 0xC0AD, 0x5DBA, 0xC0AE, 0x5DBD, 0xC0AF, 0x5DB8, 0xC0B0, 0x5E6B, 0xC0B1, 0x5F4C, 0xC0B2, 0x5FBD, 0xC0B3, 0x61C9, 0xC0B4, 0x61C2, + 0xC0B5, 0x61C7, 0xC0B6, 0x61E6, 0xC0B7, 0x61CB, 0xC0B8, 0x6232, 0xC0B9, 0x6234, 0xC0BA, 0x64CE, 0xC0BB, 0x64CA, 0xC0BC, 0x64D8, + 0xC0BD, 0x64E0, 0xC0BE, 0x64F0, 0xC0BF, 0x64E6, 0xC0C0, 0x64EC, 0xC0C1, 0x64F1, 0xC0C2, 0x64E2, 0xC0C3, 0x64ED, 0xC0C4, 0x6582, + 0xC0C5, 0x6583, 0xC0C6, 0x66D9, 0xC0C7, 0x66D6, 0xC0C8, 0x6A80, 0xC0C9, 0x6A94, 0xC0CA, 0x6A84, 0xC0CB, 0x6AA2, 0xC0CC, 0x6A9C, + 0xC0CD, 0x6ADB, 0xC0CE, 0x6AA3, 0xC0CF, 0x6A7E, 0xC0D0, 0x6A97, 0xC0D1, 0x6A90, 0xC0D2, 0x6AA0, 0xC0D3, 0x6B5C, 0xC0D4, 0x6BAE, + 0xC0D5, 0x6BDA, 0xC0D6, 0x6C08, 0xC0D7, 0x6FD8, 0xC0D8, 0x6FF1, 0xC0D9, 0x6FDF, 0xC0DA, 0x6FE0, 0xC0DB, 0x6FDB, 0xC0DC, 0x6FE4, + 0xC0DD, 0x6FEB, 0xC0DE, 0x6FEF, 0xC0DF, 0x6F80, 0xC0E0, 0x6FEC, 0xC0E1, 0x6FE1, 0xC0E2, 0x6FE9, 0xC0E3, 0x6FD5, 0xC0E4, 0x6FEE, + 0xC0E5, 0x6FF0, 0xC0E6, 0x71E7, 0xC0E7, 0x71DF, 0xC0E8, 0x71EE, 0xC0E9, 0x71E6, 0xC0EA, 0x71E5, 0xC0EB, 0x71ED, 0xC0EC, 0x71EC, + 0xC0ED, 0x71F4, 0xC0EE, 0x71E0, 0xC0EF, 0x7235, 0xC0F0, 0x7246, 0xC0F1, 0x7370, 0xC0F2, 0x7372, 0xC0F3, 0x74A9, 0xC0F4, 0x74B0, + 0xC0F5, 0x74A6, 0xC0F6, 0x74A8, 0xC0F7, 0x7646, 0xC0F8, 0x7642, 0xC0F9, 0x764C, 0xC0FA, 0x76EA, 0xC0FB, 0x77B3, 0xC0FC, 0x77AA, + 0xC0FD, 0x77B0, 0xC0FE, 0x77AC, 0xC140, 0x77A7, 0xC141, 0x77AD, 0xC142, 0x77EF, 0xC143, 0x78F7, 0xC144, 0x78FA, 0xC145, 0x78F4, + 0xC146, 0x78EF, 0xC147, 0x7901, 0xC148, 0x79A7, 0xC149, 0x79AA, 0xC14A, 0x7A57, 0xC14B, 0x7ABF, 0xC14C, 0x7C07, 0xC14D, 0x7C0D, + 0xC14E, 0x7BFE, 0xC14F, 0x7BF7, 0xC150, 0x7C0C, 0xC151, 0x7BE0, 0xC152, 0x7CE0, 0xC153, 0x7CDC, 0xC154, 0x7CDE, 0xC155, 0x7CE2, + 0xC156, 0x7CDF, 0xC157, 0x7CD9, 0xC158, 0x7CDD, 0xC159, 0x7E2E, 0xC15A, 0x7E3E, 0xC15B, 0x7E46, 0xC15C, 0x7E37, 0xC15D, 0x7E32, + 0xC15E, 0x7E43, 0xC15F, 0x7E2B, 0xC160, 0x7E3D, 0xC161, 0x7E31, 0xC162, 0x7E45, 0xC163, 0x7E41, 0xC164, 0x7E34, 0xC165, 0x7E39, + 0xC166, 0x7E48, 0xC167, 0x7E35, 0xC168, 0x7E3F, 0xC169, 0x7E2F, 0xC16A, 0x7F44, 0xC16B, 0x7FF3, 0xC16C, 0x7FFC, 0xC16D, 0x8071, + 0xC16E, 0x8072, 0xC16F, 0x8070, 0xC170, 0x806F, 0xC171, 0x8073, 0xC172, 0x81C6, 0xC173, 0x81C3, 0xC174, 0x81BA, 0xC175, 0x81C2, + 0xC176, 0x81C0, 0xC177, 0x81BF, 0xC178, 0x81BD, 0xC179, 0x81C9, 0xC17A, 0x81BE, 0xC17B, 0x81E8, 0xC17C, 0x8209, 0xC17D, 0x8271, + 0xC17E, 0x85AA, 0xC1A1, 0x8584, 0xC1A2, 0x857E, 0xC1A3, 0x859C, 0xC1A4, 0x8591, 0xC1A5, 0x8594, 0xC1A6, 0x85AF, 0xC1A7, 0x859B, + 0xC1A8, 0x8587, 0xC1A9, 0x85A8, 0xC1AA, 0x858A, 0xC1AB, 0x8667, 0xC1AC, 0x87C0, 0xC1AD, 0x87D1, 0xC1AE, 0x87B3, 0xC1AF, 0x87D2, + 0xC1B0, 0x87C6, 0xC1B1, 0x87AB, 0xC1B2, 0x87BB, 0xC1B3, 0x87BA, 0xC1B4, 0x87C8, 0xC1B5, 0x87CB, 0xC1B6, 0x893B, 0xC1B7, 0x8936, + 0xC1B8, 0x8944, 0xC1B9, 0x8938, 0xC1BA, 0x893D, 0xC1BB, 0x89AC, 0xC1BC, 0x8B0E, 0xC1BD, 0x8B17, 0xC1BE, 0x8B19, 0xC1BF, 0x8B1B, + 0xC1C0, 0x8B0A, 0xC1C1, 0x8B20, 0xC1C2, 0x8B1D, 0xC1C3, 0x8B04, 0xC1C4, 0x8B10, 0xC1C5, 0x8C41, 0xC1C6, 0x8C3F, 0xC1C7, 0x8C73, + 0xC1C8, 0x8CFA, 0xC1C9, 0x8CFD, 0xC1CA, 0x8CFC, 0xC1CB, 0x8CF8, 0xC1CC, 0x8CFB, 0xC1CD, 0x8DA8, 0xC1CE, 0x8E49, 0xC1CF, 0x8E4B, + 0xC1D0, 0x8E48, 0xC1D1, 0x8E4A, 0xC1D2, 0x8F44, 0xC1D3, 0x8F3E, 0xC1D4, 0x8F42, 0xC1D5, 0x8F45, 0xC1D6, 0x8F3F, 0xC1D7, 0x907F, + 0xC1D8, 0x907D, 0xC1D9, 0x9084, 0xC1DA, 0x9081, 0xC1DB, 0x9082, 0xC1DC, 0x9080, 0xC1DD, 0x9139, 0xC1DE, 0x91A3, 0xC1DF, 0x919E, + 0xC1E0, 0x919C, 0xC1E1, 0x934D, 0xC1E2, 0x9382, 0xC1E3, 0x9328, 0xC1E4, 0x9375, 0xC1E5, 0x934A, 0xC1E6, 0x9365, 0xC1E7, 0x934B, + 0xC1E8, 0x9318, 0xC1E9, 0x937E, 0xC1EA, 0x936C, 0xC1EB, 0x935B, 0xC1EC, 0x9370, 0xC1ED, 0x935A, 0xC1EE, 0x9354, 0xC1EF, 0x95CA, + 0xC1F0, 0x95CB, 0xC1F1, 0x95CC, 0xC1F2, 0x95C8, 0xC1F3, 0x95C6, 0xC1F4, 0x96B1, 0xC1F5, 0x96B8, 0xC1F6, 0x96D6, 0xC1F7, 0x971C, + 0xC1F8, 0x971E, 0xC1F9, 0x97A0, 0xC1FA, 0x97D3, 0xC1FB, 0x9846, 0xC1FC, 0x98B6, 0xC1FD, 0x9935, 0xC1FE, 0x9A01, 0xC240, 0x99FF, + 0xC241, 0x9BAE, 0xC242, 0x9BAB, 0xC243, 0x9BAA, 0xC244, 0x9BAD, 0xC245, 0x9D3B, 0xC246, 0x9D3F, 0xC247, 0x9E8B, 0xC248, 0x9ECF, + 0xC249, 0x9EDE, 0xC24A, 0x9EDC, 0xC24B, 0x9EDD, 0xC24C, 0x9EDB, 0xC24D, 0x9F3E, 0xC24E, 0x9F4B, 0xC24F, 0x53E2, 0xC250, 0x5695, + 0xC251, 0x56AE, 0xC252, 0x58D9, 0xC253, 0x58D8, 0xC254, 0x5B38, 0xC255, 0x5F5D, 0xC256, 0x61E3, 0xC257, 0x6233, 0xC258, 0x64F4, + 0xC259, 0x64F2, 0xC25A, 0x64FE, 0xC25B, 0x6506, 0xC25C, 0x64FA, 0xC25D, 0x64FB, 0xC25E, 0x64F7, 0xC25F, 0x65B7, 0xC260, 0x66DC, + 0xC261, 0x6726, 0xC262, 0x6AB3, 0xC263, 0x6AAC, 0xC264, 0x6AC3, 0xC265, 0x6ABB, 0xC266, 0x6AB8, 0xC267, 0x6AC2, 0xC268, 0x6AAE, + 0xC269, 0x6AAF, 0xC26A, 0x6B5F, 0xC26B, 0x6B78, 0xC26C, 0x6BAF, 0xC26D, 0x7009, 0xC26E, 0x700B, 0xC26F, 0x6FFE, 0xC270, 0x7006, + 0xC271, 0x6FFA, 0xC272, 0x7011, 0xC273, 0x700F, 0xC274, 0x71FB, 0xC275, 0x71FC, 0xC276, 0x71FE, 0xC277, 0x71F8, 0xC278, 0x7377, + 0xC279, 0x7375, 0xC27A, 0x74A7, 0xC27B, 0x74BF, 0xC27C, 0x7515, 0xC27D, 0x7656, 0xC27E, 0x7658, 0xC2A1, 0x7652, 0xC2A2, 0x77BD, + 0xC2A3, 0x77BF, 0xC2A4, 0x77BB, 0xC2A5, 0x77BC, 0xC2A6, 0x790E, 0xC2A7, 0x79AE, 0xC2A8, 0x7A61, 0xC2A9, 0x7A62, 0xC2AA, 0x7A60, + 0xC2AB, 0x7AC4, 0xC2AC, 0x7AC5, 0xC2AD, 0x7C2B, 0xC2AE, 0x7C27, 0xC2AF, 0x7C2A, 0xC2B0, 0x7C1E, 0xC2B1, 0x7C23, 0xC2B2, 0x7C21, + 0xC2B3, 0x7CE7, 0xC2B4, 0x7E54, 0xC2B5, 0x7E55, 0xC2B6, 0x7E5E, 0xC2B7, 0x7E5A, 0xC2B8, 0x7E61, 0xC2B9, 0x7E52, 0xC2BA, 0x7E59, + 0xC2BB, 0x7F48, 0xC2BC, 0x7FF9, 0xC2BD, 0x7FFB, 0xC2BE, 0x8077, 0xC2BF, 0x8076, 0xC2C0, 0x81CD, 0xC2C1, 0x81CF, 0xC2C2, 0x820A, + 0xC2C3, 0x85CF, 0xC2C4, 0x85A9, 0xC2C5, 0x85CD, 0xC2C6, 0x85D0, 0xC2C7, 0x85C9, 0xC2C8, 0x85B0, 0xC2C9, 0x85BA, 0xC2CA, 0x85B9, + 0xC2CB, 0x85A6, 0xC2CC, 0x87EF, 0xC2CD, 0x87EC, 0xC2CE, 0x87F2, 0xC2CF, 0x87E0, 0xC2D0, 0x8986, 0xC2D1, 0x89B2, 0xC2D2, 0x89F4, + 0xC2D3, 0x8B28, 0xC2D4, 0x8B39, 0xC2D5, 0x8B2C, 0xC2D6, 0x8B2B, 0xC2D7, 0x8C50, 0xC2D8, 0x8D05, 0xC2D9, 0x8E59, 0xC2DA, 0x8E63, + 0xC2DB, 0x8E66, 0xC2DC, 0x8E64, 0xC2DD, 0x8E5F, 0xC2DE, 0x8E55, 0xC2DF, 0x8EC0, 0xC2E0, 0x8F49, 0xC2E1, 0x8F4D, 0xC2E2, 0x9087, + 0xC2E3, 0x9083, 0xC2E4, 0x9088, 0xC2E5, 0x91AB, 0xC2E6, 0x91AC, 0xC2E7, 0x91D0, 0xC2E8, 0x9394, 0xC2E9, 0x938A, 0xC2EA, 0x9396, + 0xC2EB, 0x93A2, 0xC2EC, 0x93B3, 0xC2ED, 0x93AE, 0xC2EE, 0x93AC, 0xC2EF, 0x93B0, 0xC2F0, 0x9398, 0xC2F1, 0x939A, 0xC2F2, 0x9397, + 0xC2F3, 0x95D4, 0xC2F4, 0x95D6, 0xC2F5, 0x95D0, 0xC2F6, 0x95D5, 0xC2F7, 0x96E2, 0xC2F8, 0x96DC, 0xC2F9, 0x96D9, 0xC2FA, 0x96DB, + 0xC2FB, 0x96DE, 0xC2FC, 0x9724, 0xC2FD, 0x97A3, 0xC2FE, 0x97A6, 0xC340, 0x97AD, 0xC341, 0x97F9, 0xC342, 0x984D, 0xC343, 0x984F, + 0xC344, 0x984C, 0xC345, 0x984E, 0xC346, 0x9853, 0xC347, 0x98BA, 0xC348, 0x993E, 0xC349, 0x993F, 0xC34A, 0x993D, 0xC34B, 0x992E, + 0xC34C, 0x99A5, 0xC34D, 0x9A0E, 0xC34E, 0x9AC1, 0xC34F, 0x9B03, 0xC350, 0x9B06, 0xC351, 0x9B4F, 0xC352, 0x9B4E, 0xC353, 0x9B4D, + 0xC354, 0x9BCA, 0xC355, 0x9BC9, 0xC356, 0x9BFD, 0xC357, 0x9BC8, 0xC358, 0x9BC0, 0xC359, 0x9D51, 0xC35A, 0x9D5D, 0xC35B, 0x9D60, + 0xC35C, 0x9EE0, 0xC35D, 0x9F15, 0xC35E, 0x9F2C, 0xC35F, 0x5133, 0xC360, 0x56A5, 0xC361, 0x58DE, 0xC362, 0x58DF, 0xC363, 0x58E2, + 0xC364, 0x5BF5, 0xC365, 0x9F90, 0xC366, 0x5EEC, 0xC367, 0x61F2, 0xC368, 0x61F7, 0xC369, 0x61F6, 0xC36A, 0x61F5, 0xC36B, 0x6500, + 0xC36C, 0x650F, 0xC36D, 0x66E0, 0xC36E, 0x66DD, 0xC36F, 0x6AE5, 0xC370, 0x6ADD, 0xC371, 0x6ADA, 0xC372, 0x6AD3, 0xC373, 0x701B, + 0xC374, 0x701F, 0xC375, 0x7028, 0xC376, 0x701A, 0xC377, 0x701D, 0xC378, 0x7015, 0xC379, 0x7018, 0xC37A, 0x7206, 0xC37B, 0x720D, + 0xC37C, 0x7258, 0xC37D, 0x72A2, 0xC37E, 0x7378, 0xC3A1, 0x737A, 0xC3A2, 0x74BD, 0xC3A3, 0x74CA, 0xC3A4, 0x74E3, 0xC3A5, 0x7587, + 0xC3A6, 0x7586, 0xC3A7, 0x765F, 0xC3A8, 0x7661, 0xC3A9, 0x77C7, 0xC3AA, 0x7919, 0xC3AB, 0x79B1, 0xC3AC, 0x7A6B, 0xC3AD, 0x7A69, + 0xC3AE, 0x7C3E, 0xC3AF, 0x7C3F, 0xC3B0, 0x7C38, 0xC3B1, 0x7C3D, 0xC3B2, 0x7C37, 0xC3B3, 0x7C40, 0xC3B4, 0x7E6B, 0xC3B5, 0x7E6D, + 0xC3B6, 0x7E79, 0xC3B7, 0x7E69, 0xC3B8, 0x7E6A, 0xC3B9, 0x7F85, 0xC3BA, 0x7E73, 0xC3BB, 0x7FB6, 0xC3BC, 0x7FB9, 0xC3BD, 0x7FB8, + 0xC3BE, 0x81D8, 0xC3BF, 0x85E9, 0xC3C0, 0x85DD, 0xC3C1, 0x85EA, 0xC3C2, 0x85D5, 0xC3C3, 0x85E4, 0xC3C4, 0x85E5, 0xC3C5, 0x85F7, + 0xC3C6, 0x87FB, 0xC3C7, 0x8805, 0xC3C8, 0x880D, 0xC3C9, 0x87F9, 0xC3CA, 0x87FE, 0xC3CB, 0x8960, 0xC3CC, 0x895F, 0xC3CD, 0x8956, + 0xC3CE, 0x895E, 0xC3CF, 0x8B41, 0xC3D0, 0x8B5C, 0xC3D1, 0x8B58, 0xC3D2, 0x8B49, 0xC3D3, 0x8B5A, 0xC3D4, 0x8B4E, 0xC3D5, 0x8B4F, + 0xC3D6, 0x8B46, 0xC3D7, 0x8B59, 0xC3D8, 0x8D08, 0xC3D9, 0x8D0A, 0xC3DA, 0x8E7C, 0xC3DB, 0x8E72, 0xC3DC, 0x8E87, 0xC3DD, 0x8E76, + 0xC3DE, 0x8E6C, 0xC3DF, 0x8E7A, 0xC3E0, 0x8E74, 0xC3E1, 0x8F54, 0xC3E2, 0x8F4E, 0xC3E3, 0x8FAD, 0xC3E4, 0x908A, 0xC3E5, 0x908B, + 0xC3E6, 0x91B1, 0xC3E7, 0x91AE, 0xC3E8, 0x93E1, 0xC3E9, 0x93D1, 0xC3EA, 0x93DF, 0xC3EB, 0x93C3, 0xC3EC, 0x93C8, 0xC3ED, 0x93DC, + 0xC3EE, 0x93DD, 0xC3EF, 0x93D6, 0xC3F0, 0x93E2, 0xC3F1, 0x93CD, 0xC3F2, 0x93D8, 0xC3F3, 0x93E4, 0xC3F4, 0x93D7, 0xC3F5, 0x93E8, + 0xC3F6, 0x95DC, 0xC3F7, 0x96B4, 0xC3F8, 0x96E3, 0xC3F9, 0x972A, 0xC3FA, 0x9727, 0xC3FB, 0x9761, 0xC3FC, 0x97DC, 0xC3FD, 0x97FB, + 0xC3FE, 0x985E, 0xC440, 0x9858, 0xC441, 0x985B, 0xC442, 0x98BC, 0xC443, 0x9945, 0xC444, 0x9949, 0xC445, 0x9A16, 0xC446, 0x9A19, + 0xC447, 0x9B0D, 0xC448, 0x9BE8, 0xC449, 0x9BE7, 0xC44A, 0x9BD6, 0xC44B, 0x9BDB, 0xC44C, 0x9D89, 0xC44D, 0x9D61, 0xC44E, 0x9D72, + 0xC44F, 0x9D6A, 0xC450, 0x9D6C, 0xC451, 0x9E92, 0xC452, 0x9E97, 0xC453, 0x9E93, 0xC454, 0x9EB4, 0xC455, 0x52F8, 0xC456, 0x56A8, + 0xC457, 0x56B7, 0xC458, 0x56B6, 0xC459, 0x56B4, 0xC45A, 0x56BC, 0xC45B, 0x58E4, 0xC45C, 0x5B40, 0xC45D, 0x5B43, 0xC45E, 0x5B7D, + 0xC45F, 0x5BF6, 0xC460, 0x5DC9, 0xC461, 0x61F8, 0xC462, 0x61FA, 0xC463, 0x6518, 0xC464, 0x6514, 0xC465, 0x6519, 0xC466, 0x66E6, + 0xC467, 0x6727, 0xC468, 0x6AEC, 0xC469, 0x703E, 0xC46A, 0x7030, 0xC46B, 0x7032, 0xC46C, 0x7210, 0xC46D, 0x737B, 0xC46E, 0x74CF, + 0xC46F, 0x7662, 0xC470, 0x7665, 0xC471, 0x7926, 0xC472, 0x792A, 0xC473, 0x792C, 0xC474, 0x792B, 0xC475, 0x7AC7, 0xC476, 0x7AF6, + 0xC477, 0x7C4C, 0xC478, 0x7C43, 0xC479, 0x7C4D, 0xC47A, 0x7CEF, 0xC47B, 0x7CF0, 0xC47C, 0x8FAE, 0xC47D, 0x7E7D, 0xC47E, 0x7E7C, + 0xC4A1, 0x7E82, 0xC4A2, 0x7F4C, 0xC4A3, 0x8000, 0xC4A4, 0x81DA, 0xC4A5, 0x8266, 0xC4A6, 0x85FB, 0xC4A7, 0x85F9, 0xC4A8, 0x8611, + 0xC4A9, 0x85FA, 0xC4AA, 0x8606, 0xC4AB, 0x860B, 0xC4AC, 0x8607, 0xC4AD, 0x860A, 0xC4AE, 0x8814, 0xC4AF, 0x8815, 0xC4B0, 0x8964, + 0xC4B1, 0x89BA, 0xC4B2, 0x89F8, 0xC4B3, 0x8B70, 0xC4B4, 0x8B6C, 0xC4B5, 0x8B66, 0xC4B6, 0x8B6F, 0xC4B7, 0x8B5F, 0xC4B8, 0x8B6B, + 0xC4B9, 0x8D0F, 0xC4BA, 0x8D0D, 0xC4BB, 0x8E89, 0xC4BC, 0x8E81, 0xC4BD, 0x8E85, 0xC4BE, 0x8E82, 0xC4BF, 0x91B4, 0xC4C0, 0x91CB, + 0xC4C1, 0x9418, 0xC4C2, 0x9403, 0xC4C3, 0x93FD, 0xC4C4, 0x95E1, 0xC4C5, 0x9730, 0xC4C6, 0x98C4, 0xC4C7, 0x9952, 0xC4C8, 0x9951, + 0xC4C9, 0x99A8, 0xC4CA, 0x9A2B, 0xC4CB, 0x9A30, 0xC4CC, 0x9A37, 0xC4CD, 0x9A35, 0xC4CE, 0x9C13, 0xC4CF, 0x9C0D, 0xC4D0, 0x9E79, + 0xC4D1, 0x9EB5, 0xC4D2, 0x9EE8, 0xC4D3, 0x9F2F, 0xC4D4, 0x9F5F, 0xC4D5, 0x9F63, 0xC4D6, 0x9F61, 0xC4D7, 0x5137, 0xC4D8, 0x5138, + 0xC4D9, 0x56C1, 0xC4DA, 0x56C0, 0xC4DB, 0x56C2, 0xC4DC, 0x5914, 0xC4DD, 0x5C6C, 0xC4DE, 0x5DCD, 0xC4DF, 0x61FC, 0xC4E0, 0x61FE, + 0xC4E1, 0x651D, 0xC4E2, 0x651C, 0xC4E3, 0x6595, 0xC4E4, 0x66E9, 0xC4E5, 0x6AFB, 0xC4E6, 0x6B04, 0xC4E7, 0x6AFA, 0xC4E8, 0x6BB2, + 0xC4E9, 0x704C, 0xC4EA, 0x721B, 0xC4EB, 0x72A7, 0xC4EC, 0x74D6, 0xC4ED, 0x74D4, 0xC4EE, 0x7669, 0xC4EF, 0x77D3, 0xC4F0, 0x7C50, + 0xC4F1, 0x7E8F, 0xC4F2, 0x7E8C, 0xC4F3, 0x7FBC, 0xC4F4, 0x8617, 0xC4F5, 0x862D, 0xC4F6, 0x861A, 0xC4F7, 0x8823, 0xC4F8, 0x8822, + 0xC4F9, 0x8821, 0xC4FA, 0x881F, 0xC4FB, 0x896A, 0xC4FC, 0x896C, 0xC4FD, 0x89BD, 0xC4FE, 0x8B74, 0xC540, 0x8B77, 0xC541, 0x8B7D, + 0xC542, 0x8D13, 0xC543, 0x8E8A, 0xC544, 0x8E8D, 0xC545, 0x8E8B, 0xC546, 0x8F5F, 0xC547, 0x8FAF, 0xC548, 0x91BA, 0xC549, 0x942E, + 0xC54A, 0x9433, 0xC54B, 0x9435, 0xC54C, 0x943A, 0xC54D, 0x9438, 0xC54E, 0x9432, 0xC54F, 0x942B, 0xC550, 0x95E2, 0xC551, 0x9738, + 0xC552, 0x9739, 0xC553, 0x9732, 0xC554, 0x97FF, 0xC555, 0x9867, 0xC556, 0x9865, 0xC557, 0x9957, 0xC558, 0x9A45, 0xC559, 0x9A43, + 0xC55A, 0x9A40, 0xC55B, 0x9A3E, 0xC55C, 0x9ACF, 0xC55D, 0x9B54, 0xC55E, 0x9B51, 0xC55F, 0x9C2D, 0xC560, 0x9C25, 0xC561, 0x9DAF, + 0xC562, 0x9DB4, 0xC563, 0x9DC2, 0xC564, 0x9DB8, 0xC565, 0x9E9D, 0xC566, 0x9EEF, 0xC567, 0x9F19, 0xC568, 0x9F5C, 0xC569, 0x9F66, + 0xC56A, 0x9F67, 0xC56B, 0x513C, 0xC56C, 0x513B, 0xC56D, 0x56C8, 0xC56E, 0x56CA, 0xC56F, 0x56C9, 0xC570, 0x5B7F, 0xC571, 0x5DD4, + 0xC572, 0x5DD2, 0xC573, 0x5F4E, 0xC574, 0x61FF, 0xC575, 0x6524, 0xC576, 0x6B0A, 0xC577, 0x6B61, 0xC578, 0x7051, 0xC579, 0x7058, + 0xC57A, 0x7380, 0xC57B, 0x74E4, 0xC57C, 0x758A, 0xC57D, 0x766E, 0xC57E, 0x766C, 0xC5A1, 0x79B3, 0xC5A2, 0x7C60, 0xC5A3, 0x7C5F, + 0xC5A4, 0x807E, 0xC5A5, 0x807D, 0xC5A6, 0x81DF, 0xC5A7, 0x8972, 0xC5A8, 0x896F, 0xC5A9, 0x89FC, 0xC5AA, 0x8B80, 0xC5AB, 0x8D16, + 0xC5AC, 0x8D17, 0xC5AD, 0x8E91, 0xC5AE, 0x8E93, 0xC5AF, 0x8F61, 0xC5B0, 0x9148, 0xC5B1, 0x9444, 0xC5B2, 0x9451, 0xC5B3, 0x9452, + 0xC5B4, 0x973D, 0xC5B5, 0x973E, 0xC5B6, 0x97C3, 0xC5B7, 0x97C1, 0xC5B8, 0x986B, 0xC5B9, 0x9955, 0xC5BA, 0x9A55, 0xC5BB, 0x9A4D, + 0xC5BC, 0x9AD2, 0xC5BD, 0x9B1A, 0xC5BE, 0x9C49, 0xC5BF, 0x9C31, 0xC5C0, 0x9C3E, 0xC5C1, 0x9C3B, 0xC5C2, 0x9DD3, 0xC5C3, 0x9DD7, + 0xC5C4, 0x9F34, 0xC5C5, 0x9F6C, 0xC5C6, 0x9F6A, 0xC5C7, 0x9F94, 0xC5C8, 0x56CC, 0xC5C9, 0x5DD6, 0xC5CA, 0x6200, 0xC5CB, 0x6523, + 0xC5CC, 0x652B, 0xC5CD, 0x652A, 0xC5CE, 0x66EC, 0xC5CF, 0x6B10, 0xC5D0, 0x74DA, 0xC5D1, 0x7ACA, 0xC5D2, 0x7C64, 0xC5D3, 0x7C63, + 0xC5D4, 0x7C65, 0xC5D5, 0x7E93, 0xC5D6, 0x7E96, 0xC5D7, 0x7E94, 0xC5D8, 0x81E2, 0xC5D9, 0x8638, 0xC5DA, 0x863F, 0xC5DB, 0x8831, + 0xC5DC, 0x8B8A, 0xC5DD, 0x9090, 0xC5DE, 0x908F, 0xC5DF, 0x9463, 0xC5E0, 0x9460, 0xC5E1, 0x9464, 0xC5E2, 0x9768, 0xC5E3, 0x986F, + 0xC5E4, 0x995C, 0xC5E5, 0x9A5A, 0xC5E6, 0x9A5B, 0xC5E7, 0x9A57, 0xC5E8, 0x9AD3, 0xC5E9, 0x9AD4, 0xC5EA, 0x9AD1, 0xC5EB, 0x9C54, + 0xC5EC, 0x9C57, 0xC5ED, 0x9C56, 0xC5EE, 0x9DE5, 0xC5EF, 0x9E9F, 0xC5F0, 0x9EF4, 0xC5F1, 0x56D1, 0xC5F2, 0x58E9, 0xC5F3, 0x652C, + 0xC5F4, 0x705E, 0xC5F5, 0x7671, 0xC5F6, 0x7672, 0xC5F7, 0x77D7, 0xC5F8, 0x7F50, 0xC5F9, 0x7F88, 0xC5FA, 0x8836, 0xC5FB, 0x8839, + 0xC5FC, 0x8862, 0xC5FD, 0x8B93, 0xC5FE, 0x8B92, 0xC640, 0x8B96, 0xC641, 0x8277, 0xC642, 0x8D1B, 0xC643, 0x91C0, 0xC644, 0x946A, + 0xC645, 0x9742, 0xC646, 0x9748, 0xC647, 0x9744, 0xC648, 0x97C6, 0xC649, 0x9870, 0xC64A, 0x9A5F, 0xC64B, 0x9B22, 0xC64C, 0x9B58, + 0xC64D, 0x9C5F, 0xC64E, 0x9DF9, 0xC64F, 0x9DFA, 0xC650, 0x9E7C, 0xC651, 0x9E7D, 0xC652, 0x9F07, 0xC653, 0x9F77, 0xC654, 0x9F72, + 0xC655, 0x5EF3, 0xC656, 0x6B16, 0xC657, 0x7063, 0xC658, 0x7C6C, 0xC659, 0x7C6E, 0xC65A, 0x883B, 0xC65B, 0x89C0, 0xC65C, 0x8EA1, + 0xC65D, 0x91C1, 0xC65E, 0x9472, 0xC65F, 0x9470, 0xC660, 0x9871, 0xC661, 0x995E, 0xC662, 0x9AD6, 0xC663, 0x9B23, 0xC664, 0x9ECC, + 0xC665, 0x7064, 0xC666, 0x77DA, 0xC667, 0x8B9A, 0xC668, 0x9477, 0xC669, 0x97C9, 0xC66A, 0x9A62, 0xC66B, 0x9A65, 0xC66C, 0x7E9C, + 0xC66D, 0x8B9C, 0xC66E, 0x8EAA, 0xC66F, 0x91C5, 0xC670, 0x947D, 0xC671, 0x947E, 0xC672, 0x947C, 0xC673, 0x9C77, 0xC674, 0x9C78, + 0xC675, 0x9EF7, 0xC676, 0x8C54, 0xC677, 0x947F, 0xC678, 0x9E1A, 0xC679, 0x7228, 0xC67A, 0x9A6A, 0xC67B, 0x9B31, 0xC67C, 0x9E1B, + 0xC67D, 0x9E1E, 0xC67E, 0x7C72, 0xC940, 0x4E42, 0xC941, 0x4E5C, 0xC942, 0x51F5, 0xC943, 0x531A, 0xC944, 0x5382, 0xC945, 0x4E07, + 0xC946, 0x4E0C, 0xC947, 0x4E47, 0xC948, 0x4E8D, 0xC949, 0x56D7, 0xC94A, 0xFA0C, 0xC94B, 0x5C6E, 0xC94C, 0x5F73, 0xC94D, 0x4E0F, + 0xC94E, 0x5187, 0xC94F, 0x4E0E, 0xC950, 0x4E2E, 0xC951, 0x4E93, 0xC952, 0x4EC2, 0xC953, 0x4EC9, 0xC954, 0x4EC8, 0xC955, 0x5198, + 0xC956, 0x52FC, 0xC957, 0x536C, 0xC958, 0x53B9, 0xC959, 0x5720, 0xC95A, 0x5903, 0xC95B, 0x592C, 0xC95C, 0x5C10, 0xC95D, 0x5DFF, + 0xC95E, 0x65E1, 0xC95F, 0x6BB3, 0xC960, 0x6BCC, 0xC961, 0x6C14, 0xC962, 0x723F, 0xC963, 0x4E31, 0xC964, 0x4E3C, 0xC965, 0x4EE8, + 0xC966, 0x4EDC, 0xC967, 0x4EE9, 0xC968, 0x4EE1, 0xC969, 0x4EDD, 0xC96A, 0x4EDA, 0xC96B, 0x520C, 0xC96C, 0x531C, 0xC96D, 0x534C, + 0xC96E, 0x5722, 0xC96F, 0x5723, 0xC970, 0x5917, 0xC971, 0x592F, 0xC972, 0x5B81, 0xC973, 0x5B84, 0xC974, 0x5C12, 0xC975, 0x5C3B, + 0xC976, 0x5C74, 0xC977, 0x5C73, 0xC978, 0x5E04, 0xC979, 0x5E80, 0xC97A, 0x5E82, 0xC97B, 0x5FC9, 0xC97C, 0x6209, 0xC97D, 0x6250, + 0xC97E, 0x6C15, 0xC9A1, 0x6C36, 0xC9A2, 0x6C43, 0xC9A3, 0x6C3F, 0xC9A4, 0x6C3B, 0xC9A5, 0x72AE, 0xC9A6, 0x72B0, 0xC9A7, 0x738A, + 0xC9A8, 0x79B8, 0xC9A9, 0x808A, 0xC9AA, 0x961E, 0xC9AB, 0x4F0E, 0xC9AC, 0x4F18, 0xC9AD, 0x4F2C, 0xC9AE, 0x4EF5, 0xC9AF, 0x4F14, + 0xC9B0, 0x4EF1, 0xC9B1, 0x4F00, 0xC9B2, 0x4EF7, 0xC9B3, 0x4F08, 0xC9B4, 0x4F1D, 0xC9B5, 0x4F02, 0xC9B6, 0x4F05, 0xC9B7, 0x4F22, + 0xC9B8, 0x4F13, 0xC9B9, 0x4F04, 0xC9BA, 0x4EF4, 0xC9BB, 0x4F12, 0xC9BC, 0x51B1, 0xC9BD, 0x5213, 0xC9BE, 0x5209, 0xC9BF, 0x5210, + 0xC9C0, 0x52A6, 0xC9C1, 0x5322, 0xC9C2, 0x531F, 0xC9C3, 0x534D, 0xC9C4, 0x538A, 0xC9C5, 0x5407, 0xC9C6, 0x56E1, 0xC9C7, 0x56DF, + 0xC9C8, 0x572E, 0xC9C9, 0x572A, 0xC9CA, 0x5734, 0xC9CB, 0x593C, 0xC9CC, 0x5980, 0xC9CD, 0x597C, 0xC9CE, 0x5985, 0xC9CF, 0x597B, + 0xC9D0, 0x597E, 0xC9D1, 0x5977, 0xC9D2, 0x597F, 0xC9D3, 0x5B56, 0xC9D4, 0x5C15, 0xC9D5, 0x5C25, 0xC9D6, 0x5C7C, 0xC9D7, 0x5C7A, + 0xC9D8, 0x5C7B, 0xC9D9, 0x5C7E, 0xC9DA, 0x5DDF, 0xC9DB, 0x5E75, 0xC9DC, 0x5E84, 0xC9DD, 0x5F02, 0xC9DE, 0x5F1A, 0xC9DF, 0x5F74, + 0xC9E0, 0x5FD5, 0xC9E1, 0x5FD4, 0xC9E2, 0x5FCF, 0xC9E3, 0x625C, 0xC9E4, 0x625E, 0xC9E5, 0x6264, 0xC9E6, 0x6261, 0xC9E7, 0x6266, + 0xC9E8, 0x6262, 0xC9E9, 0x6259, 0xC9EA, 0x6260, 0xC9EB, 0x625A, 0xC9EC, 0x6265, 0xC9ED, 0x65EF, 0xC9EE, 0x65EE, 0xC9EF, 0x673E, + 0xC9F0, 0x6739, 0xC9F1, 0x6738, 0xC9F2, 0x673B, 0xC9F3, 0x673A, 0xC9F4, 0x673F, 0xC9F5, 0x673C, 0xC9F6, 0x6733, 0xC9F7, 0x6C18, + 0xC9F8, 0x6C46, 0xC9F9, 0x6C52, 0xC9FA, 0x6C5C, 0xC9FB, 0x6C4F, 0xC9FC, 0x6C4A, 0xC9FD, 0x6C54, 0xC9FE, 0x6C4B, 0xCA40, 0x6C4C, + 0xCA41, 0x7071, 0xCA42, 0x725E, 0xCA43, 0x72B4, 0xCA44, 0x72B5, 0xCA45, 0x738E, 0xCA46, 0x752A, 0xCA47, 0x767F, 0xCA48, 0x7A75, + 0xCA49, 0x7F51, 0xCA4A, 0x8278, 0xCA4B, 0x827C, 0xCA4C, 0x8280, 0xCA4D, 0x827D, 0xCA4E, 0x827F, 0xCA4F, 0x864D, 0xCA50, 0x897E, + 0xCA51, 0x9099, 0xCA52, 0x9097, 0xCA53, 0x9098, 0xCA54, 0x909B, 0xCA55, 0x9094, 0xCA56, 0x9622, 0xCA57, 0x9624, 0xCA58, 0x9620, + 0xCA59, 0x9623, 0xCA5A, 0x4F56, 0xCA5B, 0x4F3B, 0xCA5C, 0x4F62, 0xCA5D, 0x4F49, 0xCA5E, 0x4F53, 0xCA5F, 0x4F64, 0xCA60, 0x4F3E, + 0xCA61, 0x4F67, 0xCA62, 0x4F52, 0xCA63, 0x4F5F, 0xCA64, 0x4F41, 0xCA65, 0x4F58, 0xCA66, 0x4F2D, 0xCA67, 0x4F33, 0xCA68, 0x4F3F, + 0xCA69, 0x4F61, 0xCA6A, 0x518F, 0xCA6B, 0x51B9, 0xCA6C, 0x521C, 0xCA6D, 0x521E, 0xCA6E, 0x5221, 0xCA6F, 0x52AD, 0xCA70, 0x52AE, + 0xCA71, 0x5309, 0xCA72, 0x5363, 0xCA73, 0x5372, 0xCA74, 0x538E, 0xCA75, 0x538F, 0xCA76, 0x5430, 0xCA77, 0x5437, 0xCA78, 0x542A, + 0xCA79, 0x5454, 0xCA7A, 0x5445, 0xCA7B, 0x5419, 0xCA7C, 0x541C, 0xCA7D, 0x5425, 0xCA7E, 0x5418, 0xCAA1, 0x543D, 0xCAA2, 0x544F, + 0xCAA3, 0x5441, 0xCAA4, 0x5428, 0xCAA5, 0x5424, 0xCAA6, 0x5447, 0xCAA7, 0x56EE, 0xCAA8, 0x56E7, 0xCAA9, 0x56E5, 0xCAAA, 0x5741, + 0xCAAB, 0x5745, 0xCAAC, 0x574C, 0xCAAD, 0x5749, 0xCAAE, 0x574B, 0xCAAF, 0x5752, 0xCAB0, 0x5906, 0xCAB1, 0x5940, 0xCAB2, 0x59A6, + 0xCAB3, 0x5998, 0xCAB4, 0x59A0, 0xCAB5, 0x5997, 0xCAB6, 0x598E, 0xCAB7, 0x59A2, 0xCAB8, 0x5990, 0xCAB9, 0x598F, 0xCABA, 0x59A7, + 0xCABB, 0x59A1, 0xCABC, 0x5B8E, 0xCABD, 0x5B92, 0xCABE, 0x5C28, 0xCABF, 0x5C2A, 0xCAC0, 0x5C8D, 0xCAC1, 0x5C8F, 0xCAC2, 0x5C88, + 0xCAC3, 0x5C8B, 0xCAC4, 0x5C89, 0xCAC5, 0x5C92, 0xCAC6, 0x5C8A, 0xCAC7, 0x5C86, 0xCAC8, 0x5C93, 0xCAC9, 0x5C95, 0xCACA, 0x5DE0, + 0xCACB, 0x5E0A, 0xCACC, 0x5E0E, 0xCACD, 0x5E8B, 0xCACE, 0x5E89, 0xCACF, 0x5E8C, 0xCAD0, 0x5E88, 0xCAD1, 0x5E8D, 0xCAD2, 0x5F05, + 0xCAD3, 0x5F1D, 0xCAD4, 0x5F78, 0xCAD5, 0x5F76, 0xCAD6, 0x5FD2, 0xCAD7, 0x5FD1, 0xCAD8, 0x5FD0, 0xCAD9, 0x5FED, 0xCADA, 0x5FE8, + 0xCADB, 0x5FEE, 0xCADC, 0x5FF3, 0xCADD, 0x5FE1, 0xCADE, 0x5FE4, 0xCADF, 0x5FE3, 0xCAE0, 0x5FFA, 0xCAE1, 0x5FEF, 0xCAE2, 0x5FF7, + 0xCAE3, 0x5FFB, 0xCAE4, 0x6000, 0xCAE5, 0x5FF4, 0xCAE6, 0x623A, 0xCAE7, 0x6283, 0xCAE8, 0x628C, 0xCAE9, 0x628E, 0xCAEA, 0x628F, + 0xCAEB, 0x6294, 0xCAEC, 0x6287, 0xCAED, 0x6271, 0xCAEE, 0x627B, 0xCAEF, 0x627A, 0xCAF0, 0x6270, 0xCAF1, 0x6281, 0xCAF2, 0x6288, + 0xCAF3, 0x6277, 0xCAF4, 0x627D, 0xCAF5, 0x6272, 0xCAF6, 0x6274, 0xCAF7, 0x6537, 0xCAF8, 0x65F0, 0xCAF9, 0x65F4, 0xCAFA, 0x65F3, + 0xCAFB, 0x65F2, 0xCAFC, 0x65F5, 0xCAFD, 0x6745, 0xCAFE, 0x6747, 0xCB40, 0x6759, 0xCB41, 0x6755, 0xCB42, 0x674C, 0xCB43, 0x6748, + 0xCB44, 0x675D, 0xCB45, 0x674D, 0xCB46, 0x675A, 0xCB47, 0x674B, 0xCB48, 0x6BD0, 0xCB49, 0x6C19, 0xCB4A, 0x6C1A, 0xCB4B, 0x6C78, + 0xCB4C, 0x6C67, 0xCB4D, 0x6C6B, 0xCB4E, 0x6C84, 0xCB4F, 0x6C8B, 0xCB50, 0x6C8F, 0xCB51, 0x6C71, 0xCB52, 0x6C6F, 0xCB53, 0x6C69, + 0xCB54, 0x6C9A, 0xCB55, 0x6C6D, 0xCB56, 0x6C87, 0xCB57, 0x6C95, 0xCB58, 0x6C9C, 0xCB59, 0x6C66, 0xCB5A, 0x6C73, 0xCB5B, 0x6C65, + 0xCB5C, 0x6C7B, 0xCB5D, 0x6C8E, 0xCB5E, 0x7074, 0xCB5F, 0x707A, 0xCB60, 0x7263, 0xCB61, 0x72BF, 0xCB62, 0x72BD, 0xCB63, 0x72C3, + 0xCB64, 0x72C6, 0xCB65, 0x72C1, 0xCB66, 0x72BA, 0xCB67, 0x72C5, 0xCB68, 0x7395, 0xCB69, 0x7397, 0xCB6A, 0x7393, 0xCB6B, 0x7394, + 0xCB6C, 0x7392, 0xCB6D, 0x753A, 0xCB6E, 0x7539, 0xCB6F, 0x7594, 0xCB70, 0x7595, 0xCB71, 0x7681, 0xCB72, 0x793D, 0xCB73, 0x8034, + 0xCB74, 0x8095, 0xCB75, 0x8099, 0xCB76, 0x8090, 0xCB77, 0x8092, 0xCB78, 0x809C, 0xCB79, 0x8290, 0xCB7A, 0x828F, 0xCB7B, 0x8285, + 0xCB7C, 0x828E, 0xCB7D, 0x8291, 0xCB7E, 0x8293, 0xCBA1, 0x828A, 0xCBA2, 0x8283, 0xCBA3, 0x8284, 0xCBA4, 0x8C78, 0xCBA5, 0x8FC9, + 0xCBA6, 0x8FBF, 0xCBA7, 0x909F, 0xCBA8, 0x90A1, 0xCBA9, 0x90A5, 0xCBAA, 0x909E, 0xCBAB, 0x90A7, 0xCBAC, 0x90A0, 0xCBAD, 0x9630, + 0xCBAE, 0x9628, 0xCBAF, 0x962F, 0xCBB0, 0x962D, 0xCBB1, 0x4E33, 0xCBB2, 0x4F98, 0xCBB3, 0x4F7C, 0xCBB4, 0x4F85, 0xCBB5, 0x4F7D, + 0xCBB6, 0x4F80, 0xCBB7, 0x4F87, 0xCBB8, 0x4F76, 0xCBB9, 0x4F74, 0xCBBA, 0x4F89, 0xCBBB, 0x4F84, 0xCBBC, 0x4F77, 0xCBBD, 0x4F4C, + 0xCBBE, 0x4F97, 0xCBBF, 0x4F6A, 0xCBC0, 0x4F9A, 0xCBC1, 0x4F79, 0xCBC2, 0x4F81, 0xCBC3, 0x4F78, 0xCBC4, 0x4F90, 0xCBC5, 0x4F9C, + 0xCBC6, 0x4F94, 0xCBC7, 0x4F9E, 0xCBC8, 0x4F92, 0xCBC9, 0x4F82, 0xCBCA, 0x4F95, 0xCBCB, 0x4F6B, 0xCBCC, 0x4F6E, 0xCBCD, 0x519E, + 0xCBCE, 0x51BC, 0xCBCF, 0x51BE, 0xCBD0, 0x5235, 0xCBD1, 0x5232, 0xCBD2, 0x5233, 0xCBD3, 0x5246, 0xCBD4, 0x5231, 0xCBD5, 0x52BC, + 0xCBD6, 0x530A, 0xCBD7, 0x530B, 0xCBD8, 0x533C, 0xCBD9, 0x5392, 0xCBDA, 0x5394, 0xCBDB, 0x5487, 0xCBDC, 0x547F, 0xCBDD, 0x5481, + 0xCBDE, 0x5491, 0xCBDF, 0x5482, 0xCBE0, 0x5488, 0xCBE1, 0x546B, 0xCBE2, 0x547A, 0xCBE3, 0x547E, 0xCBE4, 0x5465, 0xCBE5, 0x546C, + 0xCBE6, 0x5474, 0xCBE7, 0x5466, 0xCBE8, 0x548D, 0xCBE9, 0x546F, 0xCBEA, 0x5461, 0xCBEB, 0x5460, 0xCBEC, 0x5498, 0xCBED, 0x5463, + 0xCBEE, 0x5467, 0xCBEF, 0x5464, 0xCBF0, 0x56F7, 0xCBF1, 0x56F9, 0xCBF2, 0x576F, 0xCBF3, 0x5772, 0xCBF4, 0x576D, 0xCBF5, 0x576B, + 0xCBF6, 0x5771, 0xCBF7, 0x5770, 0xCBF8, 0x5776, 0xCBF9, 0x5780, 0xCBFA, 0x5775, 0xCBFB, 0x577B, 0xCBFC, 0x5773, 0xCBFD, 0x5774, + 0xCBFE, 0x5762, 0xCC40, 0x5768, 0xCC41, 0x577D, 0xCC42, 0x590C, 0xCC43, 0x5945, 0xCC44, 0x59B5, 0xCC45, 0x59BA, 0xCC46, 0x59CF, + 0xCC47, 0x59CE, 0xCC48, 0x59B2, 0xCC49, 0x59CC, 0xCC4A, 0x59C1, 0xCC4B, 0x59B6, 0xCC4C, 0x59BC, 0xCC4D, 0x59C3, 0xCC4E, 0x59D6, + 0xCC4F, 0x59B1, 0xCC50, 0x59BD, 0xCC51, 0x59C0, 0xCC52, 0x59C8, 0xCC53, 0x59B4, 0xCC54, 0x59C7, 0xCC55, 0x5B62, 0xCC56, 0x5B65, + 0xCC57, 0x5B93, 0xCC58, 0x5B95, 0xCC59, 0x5C44, 0xCC5A, 0x5C47, 0xCC5B, 0x5CAE, 0xCC5C, 0x5CA4, 0xCC5D, 0x5CA0, 0xCC5E, 0x5CB5, + 0xCC5F, 0x5CAF, 0xCC60, 0x5CA8, 0xCC61, 0x5CAC, 0xCC62, 0x5C9F, 0xCC63, 0x5CA3, 0xCC64, 0x5CAD, 0xCC65, 0x5CA2, 0xCC66, 0x5CAA, + 0xCC67, 0x5CA7, 0xCC68, 0x5C9D, 0xCC69, 0x5CA5, 0xCC6A, 0x5CB6, 0xCC6B, 0x5CB0, 0xCC6C, 0x5CA6, 0xCC6D, 0x5E17, 0xCC6E, 0x5E14, + 0xCC6F, 0x5E19, 0xCC70, 0x5F28, 0xCC71, 0x5F22, 0xCC72, 0x5F23, 0xCC73, 0x5F24, 0xCC74, 0x5F54, 0xCC75, 0x5F82, 0xCC76, 0x5F7E, + 0xCC77, 0x5F7D, 0xCC78, 0x5FDE, 0xCC79, 0x5FE5, 0xCC7A, 0x602D, 0xCC7B, 0x6026, 0xCC7C, 0x6019, 0xCC7D, 0x6032, 0xCC7E, 0x600B, + 0xCCA1, 0x6034, 0xCCA2, 0x600A, 0xCCA3, 0x6017, 0xCCA4, 0x6033, 0xCCA5, 0x601A, 0xCCA6, 0x601E, 0xCCA7, 0x602C, 0xCCA8, 0x6022, + 0xCCA9, 0x600D, 0xCCAA, 0x6010, 0xCCAB, 0x602E, 0xCCAC, 0x6013, 0xCCAD, 0x6011, 0xCCAE, 0x600C, 0xCCAF, 0x6009, 0xCCB0, 0x601C, + 0xCCB1, 0x6214, 0xCCB2, 0x623D, 0xCCB3, 0x62AD, 0xCCB4, 0x62B4, 0xCCB5, 0x62D1, 0xCCB6, 0x62BE, 0xCCB7, 0x62AA, 0xCCB8, 0x62B6, + 0xCCB9, 0x62CA, 0xCCBA, 0x62AE, 0xCCBB, 0x62B3, 0xCCBC, 0x62AF, 0xCCBD, 0x62BB, 0xCCBE, 0x62A9, 0xCCBF, 0x62B0, 0xCCC0, 0x62B8, + 0xCCC1, 0x653D, 0xCCC2, 0x65A8, 0xCCC3, 0x65BB, 0xCCC4, 0x6609, 0xCCC5, 0x65FC, 0xCCC6, 0x6604, 0xCCC7, 0x6612, 0xCCC8, 0x6608, + 0xCCC9, 0x65FB, 0xCCCA, 0x6603, 0xCCCB, 0x660B, 0xCCCC, 0x660D, 0xCCCD, 0x6605, 0xCCCE, 0x65FD, 0xCCCF, 0x6611, 0xCCD0, 0x6610, + 0xCCD1, 0x66F6, 0xCCD2, 0x670A, 0xCCD3, 0x6785, 0xCCD4, 0x676C, 0xCCD5, 0x678E, 0xCCD6, 0x6792, 0xCCD7, 0x6776, 0xCCD8, 0x677B, + 0xCCD9, 0x6798, 0xCCDA, 0x6786, 0xCCDB, 0x6784, 0xCCDC, 0x6774, 0xCCDD, 0x678D, 0xCCDE, 0x678C, 0xCCDF, 0x677A, 0xCCE0, 0x679F, + 0xCCE1, 0x6791, 0xCCE2, 0x6799, 0xCCE3, 0x6783, 0xCCE4, 0x677D, 0xCCE5, 0x6781, 0xCCE6, 0x6778, 0xCCE7, 0x6779, 0xCCE8, 0x6794, + 0xCCE9, 0x6B25, 0xCCEA, 0x6B80, 0xCCEB, 0x6B7E, 0xCCEC, 0x6BDE, 0xCCED, 0x6C1D, 0xCCEE, 0x6C93, 0xCCEF, 0x6CEC, 0xCCF0, 0x6CEB, + 0xCCF1, 0x6CEE, 0xCCF2, 0x6CD9, 0xCCF3, 0x6CB6, 0xCCF4, 0x6CD4, 0xCCF5, 0x6CAD, 0xCCF6, 0x6CE7, 0xCCF7, 0x6CB7, 0xCCF8, 0x6CD0, + 0xCCF9, 0x6CC2, 0xCCFA, 0x6CBA, 0xCCFB, 0x6CC3, 0xCCFC, 0x6CC6, 0xCCFD, 0x6CED, 0xCCFE, 0x6CF2, 0xCD40, 0x6CD2, 0xCD41, 0x6CDD, + 0xCD42, 0x6CB4, 0xCD43, 0x6C8A, 0xCD44, 0x6C9D, 0xCD45, 0x6C80, 0xCD46, 0x6CDE, 0xCD47, 0x6CC0, 0xCD48, 0x6D30, 0xCD49, 0x6CCD, + 0xCD4A, 0x6CC7, 0xCD4B, 0x6CB0, 0xCD4C, 0x6CF9, 0xCD4D, 0x6CCF, 0xCD4E, 0x6CE9, 0xCD4F, 0x6CD1, 0xCD50, 0x7094, 0xCD51, 0x7098, + 0xCD52, 0x7085, 0xCD53, 0x7093, 0xCD54, 0x7086, 0xCD55, 0x7084, 0xCD56, 0x7091, 0xCD57, 0x7096, 0xCD58, 0x7082, 0xCD59, 0x709A, + 0xCD5A, 0x7083, 0xCD5B, 0x726A, 0xCD5C, 0x72D6, 0xCD5D, 0x72CB, 0xCD5E, 0x72D8, 0xCD5F, 0x72C9, 0xCD60, 0x72DC, 0xCD61, 0x72D2, + 0xCD62, 0x72D4, 0xCD63, 0x72DA, 0xCD64, 0x72CC, 0xCD65, 0x72D1, 0xCD66, 0x73A4, 0xCD67, 0x73A1, 0xCD68, 0x73AD, 0xCD69, 0x73A6, + 0xCD6A, 0x73A2, 0xCD6B, 0x73A0, 0xCD6C, 0x73AC, 0xCD6D, 0x739D, 0xCD6E, 0x74DD, 0xCD6F, 0x74E8, 0xCD70, 0x753F, 0xCD71, 0x7540, + 0xCD72, 0x753E, 0xCD73, 0x758C, 0xCD74, 0x7598, 0xCD75, 0x76AF, 0xCD76, 0x76F3, 0xCD77, 0x76F1, 0xCD78, 0x76F0, 0xCD79, 0x76F5, + 0xCD7A, 0x77F8, 0xCD7B, 0x77FC, 0xCD7C, 0x77F9, 0xCD7D, 0x77FB, 0xCD7E, 0x77FA, 0xCDA1, 0x77F7, 0xCDA2, 0x7942, 0xCDA3, 0x793F, + 0xCDA4, 0x79C5, 0xCDA5, 0x7A78, 0xCDA6, 0x7A7B, 0xCDA7, 0x7AFB, 0xCDA8, 0x7C75, 0xCDA9, 0x7CFD, 0xCDAA, 0x8035, 0xCDAB, 0x808F, + 0xCDAC, 0x80AE, 0xCDAD, 0x80A3, 0xCDAE, 0x80B8, 0xCDAF, 0x80B5, 0xCDB0, 0x80AD, 0xCDB1, 0x8220, 0xCDB2, 0x82A0, 0xCDB3, 0x82C0, + 0xCDB4, 0x82AB, 0xCDB5, 0x829A, 0xCDB6, 0x8298, 0xCDB7, 0x829B, 0xCDB8, 0x82B5, 0xCDB9, 0x82A7, 0xCDBA, 0x82AE, 0xCDBB, 0x82BC, + 0xCDBC, 0x829E, 0xCDBD, 0x82BA, 0xCDBE, 0x82B4, 0xCDBF, 0x82A8, 0xCDC0, 0x82A1, 0xCDC1, 0x82A9, 0xCDC2, 0x82C2, 0xCDC3, 0x82A4, + 0xCDC4, 0x82C3, 0xCDC5, 0x82B6, 0xCDC6, 0x82A2, 0xCDC7, 0x8670, 0xCDC8, 0x866F, 0xCDC9, 0x866D, 0xCDCA, 0x866E, 0xCDCB, 0x8C56, + 0xCDCC, 0x8FD2, 0xCDCD, 0x8FCB, 0xCDCE, 0x8FD3, 0xCDCF, 0x8FCD, 0xCDD0, 0x8FD6, 0xCDD1, 0x8FD5, 0xCDD2, 0x8FD7, 0xCDD3, 0x90B2, + 0xCDD4, 0x90B4, 0xCDD5, 0x90AF, 0xCDD6, 0x90B3, 0xCDD7, 0x90B0, 0xCDD8, 0x9639, 0xCDD9, 0x963D, 0xCDDA, 0x963C, 0xCDDB, 0x963A, + 0xCDDC, 0x9643, 0xCDDD, 0x4FCD, 0xCDDE, 0x4FC5, 0xCDDF, 0x4FD3, 0xCDE0, 0x4FB2, 0xCDE1, 0x4FC9, 0xCDE2, 0x4FCB, 0xCDE3, 0x4FC1, + 0xCDE4, 0x4FD4, 0xCDE5, 0x4FDC, 0xCDE6, 0x4FD9, 0xCDE7, 0x4FBB, 0xCDE8, 0x4FB3, 0xCDE9, 0x4FDB, 0xCDEA, 0x4FC7, 0xCDEB, 0x4FD6, + 0xCDEC, 0x4FBA, 0xCDED, 0x4FC0, 0xCDEE, 0x4FB9, 0xCDEF, 0x4FEC, 0xCDF0, 0x5244, 0xCDF1, 0x5249, 0xCDF2, 0x52C0, 0xCDF3, 0x52C2, + 0xCDF4, 0x533D, 0xCDF5, 0x537C, 0xCDF6, 0x5397, 0xCDF7, 0x5396, 0xCDF8, 0x5399, 0xCDF9, 0x5398, 0xCDFA, 0x54BA, 0xCDFB, 0x54A1, + 0xCDFC, 0x54AD, 0xCDFD, 0x54A5, 0xCDFE, 0x54CF, 0xCE40, 0x54C3, 0xCE41, 0x830D, 0xCE42, 0x54B7, 0xCE43, 0x54AE, 0xCE44, 0x54D6, + 0xCE45, 0x54B6, 0xCE46, 0x54C5, 0xCE47, 0x54C6, 0xCE48, 0x54A0, 0xCE49, 0x5470, 0xCE4A, 0x54BC, 0xCE4B, 0x54A2, 0xCE4C, 0x54BE, + 0xCE4D, 0x5472, 0xCE4E, 0x54DE, 0xCE4F, 0x54B0, 0xCE50, 0x57B5, 0xCE51, 0x579E, 0xCE52, 0x579F, 0xCE53, 0x57A4, 0xCE54, 0x578C, + 0xCE55, 0x5797, 0xCE56, 0x579D, 0xCE57, 0x579B, 0xCE58, 0x5794, 0xCE59, 0x5798, 0xCE5A, 0x578F, 0xCE5B, 0x5799, 0xCE5C, 0x57A5, + 0xCE5D, 0x579A, 0xCE5E, 0x5795, 0xCE5F, 0x58F4, 0xCE60, 0x590D, 0xCE61, 0x5953, 0xCE62, 0x59E1, 0xCE63, 0x59DE, 0xCE64, 0x59EE, + 0xCE65, 0x5A00, 0xCE66, 0x59F1, 0xCE67, 0x59DD, 0xCE68, 0x59FA, 0xCE69, 0x59FD, 0xCE6A, 0x59FC, 0xCE6B, 0x59F6, 0xCE6C, 0x59E4, + 0xCE6D, 0x59F2, 0xCE6E, 0x59F7, 0xCE6F, 0x59DB, 0xCE70, 0x59E9, 0xCE71, 0x59F3, 0xCE72, 0x59F5, 0xCE73, 0x59E0, 0xCE74, 0x59FE, + 0xCE75, 0x59F4, 0xCE76, 0x59ED, 0xCE77, 0x5BA8, 0xCE78, 0x5C4C, 0xCE79, 0x5CD0, 0xCE7A, 0x5CD8, 0xCE7B, 0x5CCC, 0xCE7C, 0x5CD7, + 0xCE7D, 0x5CCB, 0xCE7E, 0x5CDB, 0xCEA1, 0x5CDE, 0xCEA2, 0x5CDA, 0xCEA3, 0x5CC9, 0xCEA4, 0x5CC7, 0xCEA5, 0x5CCA, 0xCEA6, 0x5CD6, + 0xCEA7, 0x5CD3, 0xCEA8, 0x5CD4, 0xCEA9, 0x5CCF, 0xCEAA, 0x5CC8, 0xCEAB, 0x5CC6, 0xCEAC, 0x5CCE, 0xCEAD, 0x5CDF, 0xCEAE, 0x5CF8, + 0xCEAF, 0x5DF9, 0xCEB0, 0x5E21, 0xCEB1, 0x5E22, 0xCEB2, 0x5E23, 0xCEB3, 0x5E20, 0xCEB4, 0x5E24, 0xCEB5, 0x5EB0, 0xCEB6, 0x5EA4, + 0xCEB7, 0x5EA2, 0xCEB8, 0x5E9B, 0xCEB9, 0x5EA3, 0xCEBA, 0x5EA5, 0xCEBB, 0x5F07, 0xCEBC, 0x5F2E, 0xCEBD, 0x5F56, 0xCEBE, 0x5F86, + 0xCEBF, 0x6037, 0xCEC0, 0x6039, 0xCEC1, 0x6054, 0xCEC2, 0x6072, 0xCEC3, 0x605E, 0xCEC4, 0x6045, 0xCEC5, 0x6053, 0xCEC6, 0x6047, + 0xCEC7, 0x6049, 0xCEC8, 0x605B, 0xCEC9, 0x604C, 0xCECA, 0x6040, 0xCECB, 0x6042, 0xCECC, 0x605F, 0xCECD, 0x6024, 0xCECE, 0x6044, + 0xCECF, 0x6058, 0xCED0, 0x6066, 0xCED1, 0x606E, 0xCED2, 0x6242, 0xCED3, 0x6243, 0xCED4, 0x62CF, 0xCED5, 0x630D, 0xCED6, 0x630B, + 0xCED7, 0x62F5, 0xCED8, 0x630E, 0xCED9, 0x6303, 0xCEDA, 0x62EB, 0xCEDB, 0x62F9, 0xCEDC, 0x630F, 0xCEDD, 0x630C, 0xCEDE, 0x62F8, + 0xCEDF, 0x62F6, 0xCEE0, 0x6300, 0xCEE1, 0x6313, 0xCEE2, 0x6314, 0xCEE3, 0x62FA, 0xCEE4, 0x6315, 0xCEE5, 0x62FB, 0xCEE6, 0x62F0, + 0xCEE7, 0x6541, 0xCEE8, 0x6543, 0xCEE9, 0x65AA, 0xCEEA, 0x65BF, 0xCEEB, 0x6636, 0xCEEC, 0x6621, 0xCEED, 0x6632, 0xCEEE, 0x6635, + 0xCEEF, 0x661C, 0xCEF0, 0x6626, 0xCEF1, 0x6622, 0xCEF2, 0x6633, 0xCEF3, 0x662B, 0xCEF4, 0x663A, 0xCEF5, 0x661D, 0xCEF6, 0x6634, + 0xCEF7, 0x6639, 0xCEF8, 0x662E, 0xCEF9, 0x670F, 0xCEFA, 0x6710, 0xCEFB, 0x67C1, 0xCEFC, 0x67F2, 0xCEFD, 0x67C8, 0xCEFE, 0x67BA, + 0xCF40, 0x67DC, 0xCF41, 0x67BB, 0xCF42, 0x67F8, 0xCF43, 0x67D8, 0xCF44, 0x67C0, 0xCF45, 0x67B7, 0xCF46, 0x67C5, 0xCF47, 0x67EB, + 0xCF48, 0x67E4, 0xCF49, 0x67DF, 0xCF4A, 0x67B5, 0xCF4B, 0x67CD, 0xCF4C, 0x67B3, 0xCF4D, 0x67F7, 0xCF4E, 0x67F6, 0xCF4F, 0x67EE, + 0xCF50, 0x67E3, 0xCF51, 0x67C2, 0xCF52, 0x67B9, 0xCF53, 0x67CE, 0xCF54, 0x67E7, 0xCF55, 0x67F0, 0xCF56, 0x67B2, 0xCF57, 0x67FC, + 0xCF58, 0x67C6, 0xCF59, 0x67ED, 0xCF5A, 0x67CC, 0xCF5B, 0x67AE, 0xCF5C, 0x67E6, 0xCF5D, 0x67DB, 0xCF5E, 0x67FA, 0xCF5F, 0x67C9, + 0xCF60, 0x67CA, 0xCF61, 0x67C3, 0xCF62, 0x67EA, 0xCF63, 0x67CB, 0xCF64, 0x6B28, 0xCF65, 0x6B82, 0xCF66, 0x6B84, 0xCF67, 0x6BB6, + 0xCF68, 0x6BD6, 0xCF69, 0x6BD8, 0xCF6A, 0x6BE0, 0xCF6B, 0x6C20, 0xCF6C, 0x6C21, 0xCF6D, 0x6D28, 0xCF6E, 0x6D34, 0xCF6F, 0x6D2D, + 0xCF70, 0x6D1F, 0xCF71, 0x6D3C, 0xCF72, 0x6D3F, 0xCF73, 0x6D12, 0xCF74, 0x6D0A, 0xCF75, 0x6CDA, 0xCF76, 0x6D33, 0xCF77, 0x6D04, + 0xCF78, 0x6D19, 0xCF79, 0x6D3A, 0xCF7A, 0x6D1A, 0xCF7B, 0x6D11, 0xCF7C, 0x6D00, 0xCF7D, 0x6D1D, 0xCF7E, 0x6D42, 0xCFA1, 0x6D01, + 0xCFA2, 0x6D18, 0xCFA3, 0x6D37, 0xCFA4, 0x6D03, 0xCFA5, 0x6D0F, 0xCFA6, 0x6D40, 0xCFA7, 0x6D07, 0xCFA8, 0x6D20, 0xCFA9, 0x6D2C, + 0xCFAA, 0x6D08, 0xCFAB, 0x6D22, 0xCFAC, 0x6D09, 0xCFAD, 0x6D10, 0xCFAE, 0x70B7, 0xCFAF, 0x709F, 0xCFB0, 0x70BE, 0xCFB1, 0x70B1, + 0xCFB2, 0x70B0, 0xCFB3, 0x70A1, 0xCFB4, 0x70B4, 0xCFB5, 0x70B5, 0xCFB6, 0x70A9, 0xCFB7, 0x7241, 0xCFB8, 0x7249, 0xCFB9, 0x724A, + 0xCFBA, 0x726C, 0xCFBB, 0x7270, 0xCFBC, 0x7273, 0xCFBD, 0x726E, 0xCFBE, 0x72CA, 0xCFBF, 0x72E4, 0xCFC0, 0x72E8, 0xCFC1, 0x72EB, + 0xCFC2, 0x72DF, 0xCFC3, 0x72EA, 0xCFC4, 0x72E6, 0xCFC5, 0x72E3, 0xCFC6, 0x7385, 0xCFC7, 0x73CC, 0xCFC8, 0x73C2, 0xCFC9, 0x73C8, + 0xCFCA, 0x73C5, 0xCFCB, 0x73B9, 0xCFCC, 0x73B6, 0xCFCD, 0x73B5, 0xCFCE, 0x73B4, 0xCFCF, 0x73EB, 0xCFD0, 0x73BF, 0xCFD1, 0x73C7, + 0xCFD2, 0x73BE, 0xCFD3, 0x73C3, 0xCFD4, 0x73C6, 0xCFD5, 0x73B8, 0xCFD6, 0x73CB, 0xCFD7, 0x74EC, 0xCFD8, 0x74EE, 0xCFD9, 0x752E, + 0xCFDA, 0x7547, 0xCFDB, 0x7548, 0xCFDC, 0x75A7, 0xCFDD, 0x75AA, 0xCFDE, 0x7679, 0xCFDF, 0x76C4, 0xCFE0, 0x7708, 0xCFE1, 0x7703, + 0xCFE2, 0x7704, 0xCFE3, 0x7705, 0xCFE4, 0x770A, 0xCFE5, 0x76F7, 0xCFE6, 0x76FB, 0xCFE7, 0x76FA, 0xCFE8, 0x77E7, 0xCFE9, 0x77E8, + 0xCFEA, 0x7806, 0xCFEB, 0x7811, 0xCFEC, 0x7812, 0xCFED, 0x7805, 0xCFEE, 0x7810, 0xCFEF, 0x780F, 0xCFF0, 0x780E, 0xCFF1, 0x7809, + 0xCFF2, 0x7803, 0xCFF3, 0x7813, 0xCFF4, 0x794A, 0xCFF5, 0x794C, 0xCFF6, 0x794B, 0xCFF7, 0x7945, 0xCFF8, 0x7944, 0xCFF9, 0x79D5, + 0xCFFA, 0x79CD, 0xCFFB, 0x79CF, 0xCFFC, 0x79D6, 0xCFFD, 0x79CE, 0xCFFE, 0x7A80, 0xD040, 0x7A7E, 0xD041, 0x7AD1, 0xD042, 0x7B00, + 0xD043, 0x7B01, 0xD044, 0x7C7A, 0xD045, 0x7C78, 0xD046, 0x7C79, 0xD047, 0x7C7F, 0xD048, 0x7C80, 0xD049, 0x7C81, 0xD04A, 0x7D03, + 0xD04B, 0x7D08, 0xD04C, 0x7D01, 0xD04D, 0x7F58, 0xD04E, 0x7F91, 0xD04F, 0x7F8D, 0xD050, 0x7FBE, 0xD051, 0x8007, 0xD052, 0x800E, + 0xD053, 0x800F, 0xD054, 0x8014, 0xD055, 0x8037, 0xD056, 0x80D8, 0xD057, 0x80C7, 0xD058, 0x80E0, 0xD059, 0x80D1, 0xD05A, 0x80C8, + 0xD05B, 0x80C2, 0xD05C, 0x80D0, 0xD05D, 0x80C5, 0xD05E, 0x80E3, 0xD05F, 0x80D9, 0xD060, 0x80DC, 0xD061, 0x80CA, 0xD062, 0x80D5, + 0xD063, 0x80C9, 0xD064, 0x80CF, 0xD065, 0x80D7, 0xD066, 0x80E6, 0xD067, 0x80CD, 0xD068, 0x81FF, 0xD069, 0x8221, 0xD06A, 0x8294, + 0xD06B, 0x82D9, 0xD06C, 0x82FE, 0xD06D, 0x82F9, 0xD06E, 0x8307, 0xD06F, 0x82E8, 0xD070, 0x8300, 0xD071, 0x82D5, 0xD072, 0x833A, + 0xD073, 0x82EB, 0xD074, 0x82D6, 0xD075, 0x82F4, 0xD076, 0x82EC, 0xD077, 0x82E1, 0xD078, 0x82F2, 0xD079, 0x82F5, 0xD07A, 0x830C, + 0xD07B, 0x82FB, 0xD07C, 0x82F6, 0xD07D, 0x82F0, 0xD07E, 0x82EA, 0xD0A1, 0x82E4, 0xD0A2, 0x82E0, 0xD0A3, 0x82FA, 0xD0A4, 0x82F3, + 0xD0A5, 0x82ED, 0xD0A6, 0x8677, 0xD0A7, 0x8674, 0xD0A8, 0x867C, 0xD0A9, 0x8673, 0xD0AA, 0x8841, 0xD0AB, 0x884E, 0xD0AC, 0x8867, + 0xD0AD, 0x886A, 0xD0AE, 0x8869, 0xD0AF, 0x89D3, 0xD0B0, 0x8A04, 0xD0B1, 0x8A07, 0xD0B2, 0x8D72, 0xD0B3, 0x8FE3, 0xD0B4, 0x8FE1, + 0xD0B5, 0x8FEE, 0xD0B6, 0x8FE0, 0xD0B7, 0x90F1, 0xD0B8, 0x90BD, 0xD0B9, 0x90BF, 0xD0BA, 0x90D5, 0xD0BB, 0x90C5, 0xD0BC, 0x90BE, + 0xD0BD, 0x90C7, 0xD0BE, 0x90CB, 0xD0BF, 0x90C8, 0xD0C0, 0x91D4, 0xD0C1, 0x91D3, 0xD0C2, 0x9654, 0xD0C3, 0x964F, 0xD0C4, 0x9651, + 0xD0C5, 0x9653, 0xD0C6, 0x964A, 0xD0C7, 0x964E, 0xD0C8, 0x501E, 0xD0C9, 0x5005, 0xD0CA, 0x5007, 0xD0CB, 0x5013, 0xD0CC, 0x5022, + 0xD0CD, 0x5030, 0xD0CE, 0x501B, 0xD0CF, 0x4FF5, 0xD0D0, 0x4FF4, 0xD0D1, 0x5033, 0xD0D2, 0x5037, 0xD0D3, 0x502C, 0xD0D4, 0x4FF6, + 0xD0D5, 0x4FF7, 0xD0D6, 0x5017, 0xD0D7, 0x501C, 0xD0D8, 0x5020, 0xD0D9, 0x5027, 0xD0DA, 0x5035, 0xD0DB, 0x502F, 0xD0DC, 0x5031, + 0xD0DD, 0x500E, 0xD0DE, 0x515A, 0xD0DF, 0x5194, 0xD0E0, 0x5193, 0xD0E1, 0x51CA, 0xD0E2, 0x51C4, 0xD0E3, 0x51C5, 0xD0E4, 0x51C8, + 0xD0E5, 0x51CE, 0xD0E6, 0x5261, 0xD0E7, 0x525A, 0xD0E8, 0x5252, 0xD0E9, 0x525E, 0xD0EA, 0x525F, 0xD0EB, 0x5255, 0xD0EC, 0x5262, + 0xD0ED, 0x52CD, 0xD0EE, 0x530E, 0xD0EF, 0x539E, 0xD0F0, 0x5526, 0xD0F1, 0x54E2, 0xD0F2, 0x5517, 0xD0F3, 0x5512, 0xD0F4, 0x54E7, + 0xD0F5, 0x54F3, 0xD0F6, 0x54E4, 0xD0F7, 0x551A, 0xD0F8, 0x54FF, 0xD0F9, 0x5504, 0xD0FA, 0x5508, 0xD0FB, 0x54EB, 0xD0FC, 0x5511, + 0xD0FD, 0x5505, 0xD0FE, 0x54F1, 0xD140, 0x550A, 0xD141, 0x54FB, 0xD142, 0x54F7, 0xD143, 0x54F8, 0xD144, 0x54E0, 0xD145, 0x550E, + 0xD146, 0x5503, 0xD147, 0x550B, 0xD148, 0x5701, 0xD149, 0x5702, 0xD14A, 0x57CC, 0xD14B, 0x5832, 0xD14C, 0x57D5, 0xD14D, 0x57D2, + 0xD14E, 0x57BA, 0xD14F, 0x57C6, 0xD150, 0x57BD, 0xD151, 0x57BC, 0xD152, 0x57B8, 0xD153, 0x57B6, 0xD154, 0x57BF, 0xD155, 0x57C7, + 0xD156, 0x57D0, 0xD157, 0x57B9, 0xD158, 0x57C1, 0xD159, 0x590E, 0xD15A, 0x594A, 0xD15B, 0x5A19, 0xD15C, 0x5A16, 0xD15D, 0x5A2D, + 0xD15E, 0x5A2E, 0xD15F, 0x5A15, 0xD160, 0x5A0F, 0xD161, 0x5A17, 0xD162, 0x5A0A, 0xD163, 0x5A1E, 0xD164, 0x5A33, 0xD165, 0x5B6C, + 0xD166, 0x5BA7, 0xD167, 0x5BAD, 0xD168, 0x5BAC, 0xD169, 0x5C03, 0xD16A, 0x5C56, 0xD16B, 0x5C54, 0xD16C, 0x5CEC, 0xD16D, 0x5CFF, + 0xD16E, 0x5CEE, 0xD16F, 0x5CF1, 0xD170, 0x5CF7, 0xD171, 0x5D00, 0xD172, 0x5CF9, 0xD173, 0x5E29, 0xD174, 0x5E28, 0xD175, 0x5EA8, + 0xD176, 0x5EAE, 0xD177, 0x5EAA, 0xD178, 0x5EAC, 0xD179, 0x5F33, 0xD17A, 0x5F30, 0xD17B, 0x5F67, 0xD17C, 0x605D, 0xD17D, 0x605A, + 0xD17E, 0x6067, 0xD1A1, 0x6041, 0xD1A2, 0x60A2, 0xD1A3, 0x6088, 0xD1A4, 0x6080, 0xD1A5, 0x6092, 0xD1A6, 0x6081, 0xD1A7, 0x609D, + 0xD1A8, 0x6083, 0xD1A9, 0x6095, 0xD1AA, 0x609B, 0xD1AB, 0x6097, 0xD1AC, 0x6087, 0xD1AD, 0x609C, 0xD1AE, 0x608E, 0xD1AF, 0x6219, + 0xD1B0, 0x6246, 0xD1B1, 0x62F2, 0xD1B2, 0x6310, 0xD1B3, 0x6356, 0xD1B4, 0x632C, 0xD1B5, 0x6344, 0xD1B6, 0x6345, 0xD1B7, 0x6336, + 0xD1B8, 0x6343, 0xD1B9, 0x63E4, 0xD1BA, 0x6339, 0xD1BB, 0x634B, 0xD1BC, 0x634A, 0xD1BD, 0x633C, 0xD1BE, 0x6329, 0xD1BF, 0x6341, + 0xD1C0, 0x6334, 0xD1C1, 0x6358, 0xD1C2, 0x6354, 0xD1C3, 0x6359, 0xD1C4, 0x632D, 0xD1C5, 0x6347, 0xD1C6, 0x6333, 0xD1C7, 0x635A, + 0xD1C8, 0x6351, 0xD1C9, 0x6338, 0xD1CA, 0x6357, 0xD1CB, 0x6340, 0xD1CC, 0x6348, 0xD1CD, 0x654A, 0xD1CE, 0x6546, 0xD1CF, 0x65C6, + 0xD1D0, 0x65C3, 0xD1D1, 0x65C4, 0xD1D2, 0x65C2, 0xD1D3, 0x664A, 0xD1D4, 0x665F, 0xD1D5, 0x6647, 0xD1D6, 0x6651, 0xD1D7, 0x6712, + 0xD1D8, 0x6713, 0xD1D9, 0x681F, 0xD1DA, 0x681A, 0xD1DB, 0x6849, 0xD1DC, 0x6832, 0xD1DD, 0x6833, 0xD1DE, 0x683B, 0xD1DF, 0x684B, + 0xD1E0, 0x684F, 0xD1E1, 0x6816, 0xD1E2, 0x6831, 0xD1E3, 0x681C, 0xD1E4, 0x6835, 0xD1E5, 0x682B, 0xD1E6, 0x682D, 0xD1E7, 0x682F, + 0xD1E8, 0x684E, 0xD1E9, 0x6844, 0xD1EA, 0x6834, 0xD1EB, 0x681D, 0xD1EC, 0x6812, 0xD1ED, 0x6814, 0xD1EE, 0x6826, 0xD1EF, 0x6828, + 0xD1F0, 0x682E, 0xD1F1, 0x684D, 0xD1F2, 0x683A, 0xD1F3, 0x6825, 0xD1F4, 0x6820, 0xD1F5, 0x6B2C, 0xD1F6, 0x6B2F, 0xD1F7, 0x6B2D, + 0xD1F8, 0x6B31, 0xD1F9, 0x6B34, 0xD1FA, 0x6B6D, 0xD1FB, 0x8082, 0xD1FC, 0x6B88, 0xD1FD, 0x6BE6, 0xD1FE, 0x6BE4, 0xD240, 0x6BE8, + 0xD241, 0x6BE3, 0xD242, 0x6BE2, 0xD243, 0x6BE7, 0xD244, 0x6C25, 0xD245, 0x6D7A, 0xD246, 0x6D63, 0xD247, 0x6D64, 0xD248, 0x6D76, + 0xD249, 0x6D0D, 0xD24A, 0x6D61, 0xD24B, 0x6D92, 0xD24C, 0x6D58, 0xD24D, 0x6D62, 0xD24E, 0x6D6D, 0xD24F, 0x6D6F, 0xD250, 0x6D91, + 0xD251, 0x6D8D, 0xD252, 0x6DEF, 0xD253, 0x6D7F, 0xD254, 0x6D86, 0xD255, 0x6D5E, 0xD256, 0x6D67, 0xD257, 0x6D60, 0xD258, 0x6D97, + 0xD259, 0x6D70, 0xD25A, 0x6D7C, 0xD25B, 0x6D5F, 0xD25C, 0x6D82, 0xD25D, 0x6D98, 0xD25E, 0x6D2F, 0xD25F, 0x6D68, 0xD260, 0x6D8B, + 0xD261, 0x6D7E, 0xD262, 0x6D80, 0xD263, 0x6D84, 0xD264, 0x6D16, 0xD265, 0x6D83, 0xD266, 0x6D7B, 0xD267, 0x6D7D, 0xD268, 0x6D75, + 0xD269, 0x6D90, 0xD26A, 0x70DC, 0xD26B, 0x70D3, 0xD26C, 0x70D1, 0xD26D, 0x70DD, 0xD26E, 0x70CB, 0xD26F, 0x7F39, 0xD270, 0x70E2, + 0xD271, 0x70D7, 0xD272, 0x70D2, 0xD273, 0x70DE, 0xD274, 0x70E0, 0xD275, 0x70D4, 0xD276, 0x70CD, 0xD277, 0x70C5, 0xD278, 0x70C6, + 0xD279, 0x70C7, 0xD27A, 0x70DA, 0xD27B, 0x70CE, 0xD27C, 0x70E1, 0xD27D, 0x7242, 0xD27E, 0x7278, 0xD2A1, 0x7277, 0xD2A2, 0x7276, + 0xD2A3, 0x7300, 0xD2A4, 0x72FA, 0xD2A5, 0x72F4, 0xD2A6, 0x72FE, 0xD2A7, 0x72F6, 0xD2A8, 0x72F3, 0xD2A9, 0x72FB, 0xD2AA, 0x7301, + 0xD2AB, 0x73D3, 0xD2AC, 0x73D9, 0xD2AD, 0x73E5, 0xD2AE, 0x73D6, 0xD2AF, 0x73BC, 0xD2B0, 0x73E7, 0xD2B1, 0x73E3, 0xD2B2, 0x73E9, + 0xD2B3, 0x73DC, 0xD2B4, 0x73D2, 0xD2B5, 0x73DB, 0xD2B6, 0x73D4, 0xD2B7, 0x73DD, 0xD2B8, 0x73DA, 0xD2B9, 0x73D7, 0xD2BA, 0x73D8, + 0xD2BB, 0x73E8, 0xD2BC, 0x74DE, 0xD2BD, 0x74DF, 0xD2BE, 0x74F4, 0xD2BF, 0x74F5, 0xD2C0, 0x7521, 0xD2C1, 0x755B, 0xD2C2, 0x755F, + 0xD2C3, 0x75B0, 0xD2C4, 0x75C1, 0xD2C5, 0x75BB, 0xD2C6, 0x75C4, 0xD2C7, 0x75C0, 0xD2C8, 0x75BF, 0xD2C9, 0x75B6, 0xD2CA, 0x75BA, + 0xD2CB, 0x768A, 0xD2CC, 0x76C9, 0xD2CD, 0x771D, 0xD2CE, 0x771B, 0xD2CF, 0x7710, 0xD2D0, 0x7713, 0xD2D1, 0x7712, 0xD2D2, 0x7723, + 0xD2D3, 0x7711, 0xD2D4, 0x7715, 0xD2D5, 0x7719, 0xD2D6, 0x771A, 0xD2D7, 0x7722, 0xD2D8, 0x7727, 0xD2D9, 0x7823, 0xD2DA, 0x782C, + 0xD2DB, 0x7822, 0xD2DC, 0x7835, 0xD2DD, 0x782F, 0xD2DE, 0x7828, 0xD2DF, 0x782E, 0xD2E0, 0x782B, 0xD2E1, 0x7821, 0xD2E2, 0x7829, + 0xD2E3, 0x7833, 0xD2E4, 0x782A, 0xD2E5, 0x7831, 0xD2E6, 0x7954, 0xD2E7, 0x795B, 0xD2E8, 0x794F, 0xD2E9, 0x795C, 0xD2EA, 0x7953, + 0xD2EB, 0x7952, 0xD2EC, 0x7951, 0xD2ED, 0x79EB, 0xD2EE, 0x79EC, 0xD2EF, 0x79E0, 0xD2F0, 0x79EE, 0xD2F1, 0x79ED, 0xD2F2, 0x79EA, + 0xD2F3, 0x79DC, 0xD2F4, 0x79DE, 0xD2F5, 0x79DD, 0xD2F6, 0x7A86, 0xD2F7, 0x7A89, 0xD2F8, 0x7A85, 0xD2F9, 0x7A8B, 0xD2FA, 0x7A8C, + 0xD2FB, 0x7A8A, 0xD2FC, 0x7A87, 0xD2FD, 0x7AD8, 0xD2FE, 0x7B10, 0xD340, 0x7B04, 0xD341, 0x7B13, 0xD342, 0x7B05, 0xD343, 0x7B0F, + 0xD344, 0x7B08, 0xD345, 0x7B0A, 0xD346, 0x7B0E, 0xD347, 0x7B09, 0xD348, 0x7B12, 0xD349, 0x7C84, 0xD34A, 0x7C91, 0xD34B, 0x7C8A, + 0xD34C, 0x7C8C, 0xD34D, 0x7C88, 0xD34E, 0x7C8D, 0xD34F, 0x7C85, 0xD350, 0x7D1E, 0xD351, 0x7D1D, 0xD352, 0x7D11, 0xD353, 0x7D0E, + 0xD354, 0x7D18, 0xD355, 0x7D16, 0xD356, 0x7D13, 0xD357, 0x7D1F, 0xD358, 0x7D12, 0xD359, 0x7D0F, 0xD35A, 0x7D0C, 0xD35B, 0x7F5C, + 0xD35C, 0x7F61, 0xD35D, 0x7F5E, 0xD35E, 0x7F60, 0xD35F, 0x7F5D, 0xD360, 0x7F5B, 0xD361, 0x7F96, 0xD362, 0x7F92, 0xD363, 0x7FC3, + 0xD364, 0x7FC2, 0xD365, 0x7FC0, 0xD366, 0x8016, 0xD367, 0x803E, 0xD368, 0x8039, 0xD369, 0x80FA, 0xD36A, 0x80F2, 0xD36B, 0x80F9, + 0xD36C, 0x80F5, 0xD36D, 0x8101, 0xD36E, 0x80FB, 0xD36F, 0x8100, 0xD370, 0x8201, 0xD371, 0x822F, 0xD372, 0x8225, 0xD373, 0x8333, + 0xD374, 0x832D, 0xD375, 0x8344, 0xD376, 0x8319, 0xD377, 0x8351, 0xD378, 0x8325, 0xD379, 0x8356, 0xD37A, 0x833F, 0xD37B, 0x8341, + 0xD37C, 0x8326, 0xD37D, 0x831C, 0xD37E, 0x8322, 0xD3A1, 0x8342, 0xD3A2, 0x834E, 0xD3A3, 0x831B, 0xD3A4, 0x832A, 0xD3A5, 0x8308, + 0xD3A6, 0x833C, 0xD3A7, 0x834D, 0xD3A8, 0x8316, 0xD3A9, 0x8324, 0xD3AA, 0x8320, 0xD3AB, 0x8337, 0xD3AC, 0x832F, 0xD3AD, 0x8329, + 0xD3AE, 0x8347, 0xD3AF, 0x8345, 0xD3B0, 0x834C, 0xD3B1, 0x8353, 0xD3B2, 0x831E, 0xD3B3, 0x832C, 0xD3B4, 0x834B, 0xD3B5, 0x8327, + 0xD3B6, 0x8348, 0xD3B7, 0x8653, 0xD3B8, 0x8652, 0xD3B9, 0x86A2, 0xD3BA, 0x86A8, 0xD3BB, 0x8696, 0xD3BC, 0x868D, 0xD3BD, 0x8691, + 0xD3BE, 0x869E, 0xD3BF, 0x8687, 0xD3C0, 0x8697, 0xD3C1, 0x8686, 0xD3C2, 0x868B, 0xD3C3, 0x869A, 0xD3C4, 0x8685, 0xD3C5, 0x86A5, + 0xD3C6, 0x8699, 0xD3C7, 0x86A1, 0xD3C8, 0x86A7, 0xD3C9, 0x8695, 0xD3CA, 0x8698, 0xD3CB, 0x868E, 0xD3CC, 0x869D, 0xD3CD, 0x8690, + 0xD3CE, 0x8694, 0xD3CF, 0x8843, 0xD3D0, 0x8844, 0xD3D1, 0x886D, 0xD3D2, 0x8875, 0xD3D3, 0x8876, 0xD3D4, 0x8872, 0xD3D5, 0x8880, + 0xD3D6, 0x8871, 0xD3D7, 0x887F, 0xD3D8, 0x886F, 0xD3D9, 0x8883, 0xD3DA, 0x887E, 0xD3DB, 0x8874, 0xD3DC, 0x887C, 0xD3DD, 0x8A12, + 0xD3DE, 0x8C47, 0xD3DF, 0x8C57, 0xD3E0, 0x8C7B, 0xD3E1, 0x8CA4, 0xD3E2, 0x8CA3, 0xD3E3, 0x8D76, 0xD3E4, 0x8D78, 0xD3E5, 0x8DB5, + 0xD3E6, 0x8DB7, 0xD3E7, 0x8DB6, 0xD3E8, 0x8ED1, 0xD3E9, 0x8ED3, 0xD3EA, 0x8FFE, 0xD3EB, 0x8FF5, 0xD3EC, 0x9002, 0xD3ED, 0x8FFF, + 0xD3EE, 0x8FFB, 0xD3EF, 0x9004, 0xD3F0, 0x8FFC, 0xD3F1, 0x8FF6, 0xD3F2, 0x90D6, 0xD3F3, 0x90E0, 0xD3F4, 0x90D9, 0xD3F5, 0x90DA, + 0xD3F6, 0x90E3, 0xD3F7, 0x90DF, 0xD3F8, 0x90E5, 0xD3F9, 0x90D8, 0xD3FA, 0x90DB, 0xD3FB, 0x90D7, 0xD3FC, 0x90DC, 0xD3FD, 0x90E4, + 0xD3FE, 0x9150, 0xD440, 0x914E, 0xD441, 0x914F, 0xD442, 0x91D5, 0xD443, 0x91E2, 0xD444, 0x91DA, 0xD445, 0x965C, 0xD446, 0x965F, + 0xD447, 0x96BC, 0xD448, 0x98E3, 0xD449, 0x9ADF, 0xD44A, 0x9B2F, 0xD44B, 0x4E7F, 0xD44C, 0x5070, 0xD44D, 0x506A, 0xD44E, 0x5061, + 0xD44F, 0x505E, 0xD450, 0x5060, 0xD451, 0x5053, 0xD452, 0x504B, 0xD453, 0x505D, 0xD454, 0x5072, 0xD455, 0x5048, 0xD456, 0x504D, + 0xD457, 0x5041, 0xD458, 0x505B, 0xD459, 0x504A, 0xD45A, 0x5062, 0xD45B, 0x5015, 0xD45C, 0x5045, 0xD45D, 0x505F, 0xD45E, 0x5069, + 0xD45F, 0x506B, 0xD460, 0x5063, 0xD461, 0x5064, 0xD462, 0x5046, 0xD463, 0x5040, 0xD464, 0x506E, 0xD465, 0x5073, 0xD466, 0x5057, + 0xD467, 0x5051, 0xD468, 0x51D0, 0xD469, 0x526B, 0xD46A, 0x526D, 0xD46B, 0x526C, 0xD46C, 0x526E, 0xD46D, 0x52D6, 0xD46E, 0x52D3, + 0xD46F, 0x532D, 0xD470, 0x539C, 0xD471, 0x5575, 0xD472, 0x5576, 0xD473, 0x553C, 0xD474, 0x554D, 0xD475, 0x5550, 0xD476, 0x5534, + 0xD477, 0x552A, 0xD478, 0x5551, 0xD479, 0x5562, 0xD47A, 0x5536, 0xD47B, 0x5535, 0xD47C, 0x5530, 0xD47D, 0x5552, 0xD47E, 0x5545, + 0xD4A1, 0x550C, 0xD4A2, 0x5532, 0xD4A3, 0x5565, 0xD4A4, 0x554E, 0xD4A5, 0x5539, 0xD4A6, 0x5548, 0xD4A7, 0x552D, 0xD4A8, 0x553B, + 0xD4A9, 0x5540, 0xD4AA, 0x554B, 0xD4AB, 0x570A, 0xD4AC, 0x5707, 0xD4AD, 0x57FB, 0xD4AE, 0x5814, 0xD4AF, 0x57E2, 0xD4B0, 0x57F6, + 0xD4B1, 0x57DC, 0xD4B2, 0x57F4, 0xD4B3, 0x5800, 0xD4B4, 0x57ED, 0xD4B5, 0x57FD, 0xD4B6, 0x5808, 0xD4B7, 0x57F8, 0xD4B8, 0x580B, + 0xD4B9, 0x57F3, 0xD4BA, 0x57CF, 0xD4BB, 0x5807, 0xD4BC, 0x57EE, 0xD4BD, 0x57E3, 0xD4BE, 0x57F2, 0xD4BF, 0x57E5, 0xD4C0, 0x57EC, + 0xD4C1, 0x57E1, 0xD4C2, 0x580E, 0xD4C3, 0x57FC, 0xD4C4, 0x5810, 0xD4C5, 0x57E7, 0xD4C6, 0x5801, 0xD4C7, 0x580C, 0xD4C8, 0x57F1, + 0xD4C9, 0x57E9, 0xD4CA, 0x57F0, 0xD4CB, 0x580D, 0xD4CC, 0x5804, 0xD4CD, 0x595C, 0xD4CE, 0x5A60, 0xD4CF, 0x5A58, 0xD4D0, 0x5A55, + 0xD4D1, 0x5A67, 0xD4D2, 0x5A5E, 0xD4D3, 0x5A38, 0xD4D4, 0x5A35, 0xD4D5, 0x5A6D, 0xD4D6, 0x5A50, 0xD4D7, 0x5A5F, 0xD4D8, 0x5A65, + 0xD4D9, 0x5A6C, 0xD4DA, 0x5A53, 0xD4DB, 0x5A64, 0xD4DC, 0x5A57, 0xD4DD, 0x5A43, 0xD4DE, 0x5A5D, 0xD4DF, 0x5A52, 0xD4E0, 0x5A44, + 0xD4E1, 0x5A5B, 0xD4E2, 0x5A48, 0xD4E3, 0x5A8E, 0xD4E4, 0x5A3E, 0xD4E5, 0x5A4D, 0xD4E6, 0x5A39, 0xD4E7, 0x5A4C, 0xD4E8, 0x5A70, + 0xD4E9, 0x5A69, 0xD4EA, 0x5A47, 0xD4EB, 0x5A51, 0xD4EC, 0x5A56, 0xD4ED, 0x5A42, 0xD4EE, 0x5A5C, 0xD4EF, 0x5B72, 0xD4F0, 0x5B6E, + 0xD4F1, 0x5BC1, 0xD4F2, 0x5BC0, 0xD4F3, 0x5C59, 0xD4F4, 0x5D1E, 0xD4F5, 0x5D0B, 0xD4F6, 0x5D1D, 0xD4F7, 0x5D1A, 0xD4F8, 0x5D20, + 0xD4F9, 0x5D0C, 0xD4FA, 0x5D28, 0xD4FB, 0x5D0D, 0xD4FC, 0x5D26, 0xD4FD, 0x5D25, 0xD4FE, 0x5D0F, 0xD540, 0x5D30, 0xD541, 0x5D12, + 0xD542, 0x5D23, 0xD543, 0x5D1F, 0xD544, 0x5D2E, 0xD545, 0x5E3E, 0xD546, 0x5E34, 0xD547, 0x5EB1, 0xD548, 0x5EB4, 0xD549, 0x5EB9, + 0xD54A, 0x5EB2, 0xD54B, 0x5EB3, 0xD54C, 0x5F36, 0xD54D, 0x5F38, 0xD54E, 0x5F9B, 0xD54F, 0x5F96, 0xD550, 0x5F9F, 0xD551, 0x608A, + 0xD552, 0x6090, 0xD553, 0x6086, 0xD554, 0x60BE, 0xD555, 0x60B0, 0xD556, 0x60BA, 0xD557, 0x60D3, 0xD558, 0x60D4, 0xD559, 0x60CF, + 0xD55A, 0x60E4, 0xD55B, 0x60D9, 0xD55C, 0x60DD, 0xD55D, 0x60C8, 0xD55E, 0x60B1, 0xD55F, 0x60DB, 0xD560, 0x60B7, 0xD561, 0x60CA, + 0xD562, 0x60BF, 0xD563, 0x60C3, 0xD564, 0x60CD, 0xD565, 0x60C0, 0xD566, 0x6332, 0xD567, 0x6365, 0xD568, 0x638A, 0xD569, 0x6382, + 0xD56A, 0x637D, 0xD56B, 0x63BD, 0xD56C, 0x639E, 0xD56D, 0x63AD, 0xD56E, 0x639D, 0xD56F, 0x6397, 0xD570, 0x63AB, 0xD571, 0x638E, + 0xD572, 0x636F, 0xD573, 0x6387, 0xD574, 0x6390, 0xD575, 0x636E, 0xD576, 0x63AF, 0xD577, 0x6375, 0xD578, 0x639C, 0xD579, 0x636D, + 0xD57A, 0x63AE, 0xD57B, 0x637C, 0xD57C, 0x63A4, 0xD57D, 0x633B, 0xD57E, 0x639F, 0xD5A1, 0x6378, 0xD5A2, 0x6385, 0xD5A3, 0x6381, + 0xD5A4, 0x6391, 0xD5A5, 0x638D, 0xD5A6, 0x6370, 0xD5A7, 0x6553, 0xD5A8, 0x65CD, 0xD5A9, 0x6665, 0xD5AA, 0x6661, 0xD5AB, 0x665B, + 0xD5AC, 0x6659, 0xD5AD, 0x665C, 0xD5AE, 0x6662, 0xD5AF, 0x6718, 0xD5B0, 0x6879, 0xD5B1, 0x6887, 0xD5B2, 0x6890, 0xD5B3, 0x689C, + 0xD5B4, 0x686D, 0xD5B5, 0x686E, 0xD5B6, 0x68AE, 0xD5B7, 0x68AB, 0xD5B8, 0x6956, 0xD5B9, 0x686F, 0xD5BA, 0x68A3, 0xD5BB, 0x68AC, + 0xD5BC, 0x68A9, 0xD5BD, 0x6875, 0xD5BE, 0x6874, 0xD5BF, 0x68B2, 0xD5C0, 0x688F, 0xD5C1, 0x6877, 0xD5C2, 0x6892, 0xD5C3, 0x687C, + 0xD5C4, 0x686B, 0xD5C5, 0x6872, 0xD5C6, 0x68AA, 0xD5C7, 0x6880, 0xD5C8, 0x6871, 0xD5C9, 0x687E, 0xD5CA, 0x689B, 0xD5CB, 0x6896, + 0xD5CC, 0x688B, 0xD5CD, 0x68A0, 0xD5CE, 0x6889, 0xD5CF, 0x68A4, 0xD5D0, 0x6878, 0xD5D1, 0x687B, 0xD5D2, 0x6891, 0xD5D3, 0x688C, + 0xD5D4, 0x688A, 0xD5D5, 0x687D, 0xD5D6, 0x6B36, 0xD5D7, 0x6B33, 0xD5D8, 0x6B37, 0xD5D9, 0x6B38, 0xD5DA, 0x6B91, 0xD5DB, 0x6B8F, + 0xD5DC, 0x6B8D, 0xD5DD, 0x6B8E, 0xD5DE, 0x6B8C, 0xD5DF, 0x6C2A, 0xD5E0, 0x6DC0, 0xD5E1, 0x6DAB, 0xD5E2, 0x6DB4, 0xD5E3, 0x6DB3, + 0xD5E4, 0x6E74, 0xD5E5, 0x6DAC, 0xD5E6, 0x6DE9, 0xD5E7, 0x6DE2, 0xD5E8, 0x6DB7, 0xD5E9, 0x6DF6, 0xD5EA, 0x6DD4, 0xD5EB, 0x6E00, + 0xD5EC, 0x6DC8, 0xD5ED, 0x6DE0, 0xD5EE, 0x6DDF, 0xD5EF, 0x6DD6, 0xD5F0, 0x6DBE, 0xD5F1, 0x6DE5, 0xD5F2, 0x6DDC, 0xD5F3, 0x6DDD, + 0xD5F4, 0x6DDB, 0xD5F5, 0x6DF4, 0xD5F6, 0x6DCA, 0xD5F7, 0x6DBD, 0xD5F8, 0x6DED, 0xD5F9, 0x6DF0, 0xD5FA, 0x6DBA, 0xD5FB, 0x6DD5, + 0xD5FC, 0x6DC2, 0xD5FD, 0x6DCF, 0xD5FE, 0x6DC9, 0xD640, 0x6DD0, 0xD641, 0x6DF2, 0xD642, 0x6DD3, 0xD643, 0x6DFD, 0xD644, 0x6DD7, + 0xD645, 0x6DCD, 0xD646, 0x6DE3, 0xD647, 0x6DBB, 0xD648, 0x70FA, 0xD649, 0x710D, 0xD64A, 0x70F7, 0xD64B, 0x7117, 0xD64C, 0x70F4, + 0xD64D, 0x710C, 0xD64E, 0x70F0, 0xD64F, 0x7104, 0xD650, 0x70F3, 0xD651, 0x7110, 0xD652, 0x70FC, 0xD653, 0x70FF, 0xD654, 0x7106, + 0xD655, 0x7113, 0xD656, 0x7100, 0xD657, 0x70F8, 0xD658, 0x70F6, 0xD659, 0x710B, 0xD65A, 0x7102, 0xD65B, 0x710E, 0xD65C, 0x727E, + 0xD65D, 0x727B, 0xD65E, 0x727C, 0xD65F, 0x727F, 0xD660, 0x731D, 0xD661, 0x7317, 0xD662, 0x7307, 0xD663, 0x7311, 0xD664, 0x7318, + 0xD665, 0x730A, 0xD666, 0x7308, 0xD667, 0x72FF, 0xD668, 0x730F, 0xD669, 0x731E, 0xD66A, 0x7388, 0xD66B, 0x73F6, 0xD66C, 0x73F8, + 0xD66D, 0x73F5, 0xD66E, 0x7404, 0xD66F, 0x7401, 0xD670, 0x73FD, 0xD671, 0x7407, 0xD672, 0x7400, 0xD673, 0x73FA, 0xD674, 0x73FC, + 0xD675, 0x73FF, 0xD676, 0x740C, 0xD677, 0x740B, 0xD678, 0x73F4, 0xD679, 0x7408, 0xD67A, 0x7564, 0xD67B, 0x7563, 0xD67C, 0x75CE, + 0xD67D, 0x75D2, 0xD67E, 0x75CF, 0xD6A1, 0x75CB, 0xD6A2, 0x75CC, 0xD6A3, 0x75D1, 0xD6A4, 0x75D0, 0xD6A5, 0x768F, 0xD6A6, 0x7689, + 0xD6A7, 0x76D3, 0xD6A8, 0x7739, 0xD6A9, 0x772F, 0xD6AA, 0x772D, 0xD6AB, 0x7731, 0xD6AC, 0x7732, 0xD6AD, 0x7734, 0xD6AE, 0x7733, + 0xD6AF, 0x773D, 0xD6B0, 0x7725, 0xD6B1, 0x773B, 0xD6B2, 0x7735, 0xD6B3, 0x7848, 0xD6B4, 0x7852, 0xD6B5, 0x7849, 0xD6B6, 0x784D, + 0xD6B7, 0x784A, 0xD6B8, 0x784C, 0xD6B9, 0x7826, 0xD6BA, 0x7845, 0xD6BB, 0x7850, 0xD6BC, 0x7964, 0xD6BD, 0x7967, 0xD6BE, 0x7969, + 0xD6BF, 0x796A, 0xD6C0, 0x7963, 0xD6C1, 0x796B, 0xD6C2, 0x7961, 0xD6C3, 0x79BB, 0xD6C4, 0x79FA, 0xD6C5, 0x79F8, 0xD6C6, 0x79F6, + 0xD6C7, 0x79F7, 0xD6C8, 0x7A8F, 0xD6C9, 0x7A94, 0xD6CA, 0x7A90, 0xD6CB, 0x7B35, 0xD6CC, 0x7B47, 0xD6CD, 0x7B34, 0xD6CE, 0x7B25, + 0xD6CF, 0x7B30, 0xD6D0, 0x7B22, 0xD6D1, 0x7B24, 0xD6D2, 0x7B33, 0xD6D3, 0x7B18, 0xD6D4, 0x7B2A, 0xD6D5, 0x7B1D, 0xD6D6, 0x7B31, + 0xD6D7, 0x7B2B, 0xD6D8, 0x7B2D, 0xD6D9, 0x7B2F, 0xD6DA, 0x7B32, 0xD6DB, 0x7B38, 0xD6DC, 0x7B1A, 0xD6DD, 0x7B23, 0xD6DE, 0x7C94, + 0xD6DF, 0x7C98, 0xD6E0, 0x7C96, 0xD6E1, 0x7CA3, 0xD6E2, 0x7D35, 0xD6E3, 0x7D3D, 0xD6E4, 0x7D38, 0xD6E5, 0x7D36, 0xD6E6, 0x7D3A, + 0xD6E7, 0x7D45, 0xD6E8, 0x7D2C, 0xD6E9, 0x7D29, 0xD6EA, 0x7D41, 0xD6EB, 0x7D47, 0xD6EC, 0x7D3E, 0xD6ED, 0x7D3F, 0xD6EE, 0x7D4A, + 0xD6EF, 0x7D3B, 0xD6F0, 0x7D28, 0xD6F1, 0x7F63, 0xD6F2, 0x7F95, 0xD6F3, 0x7F9C, 0xD6F4, 0x7F9D, 0xD6F5, 0x7F9B, 0xD6F6, 0x7FCA, + 0xD6F7, 0x7FCB, 0xD6F8, 0x7FCD, 0xD6F9, 0x7FD0, 0xD6FA, 0x7FD1, 0xD6FB, 0x7FC7, 0xD6FC, 0x7FCF, 0xD6FD, 0x7FC9, 0xD6FE, 0x801F, + 0xD740, 0x801E, 0xD741, 0x801B, 0xD742, 0x8047, 0xD743, 0x8043, 0xD744, 0x8048, 0xD745, 0x8118, 0xD746, 0x8125, 0xD747, 0x8119, + 0xD748, 0x811B, 0xD749, 0x812D, 0xD74A, 0x811F, 0xD74B, 0x812C, 0xD74C, 0x811E, 0xD74D, 0x8121, 0xD74E, 0x8115, 0xD74F, 0x8127, + 0xD750, 0x811D, 0xD751, 0x8122, 0xD752, 0x8211, 0xD753, 0x8238, 0xD754, 0x8233, 0xD755, 0x823A, 0xD756, 0x8234, 0xD757, 0x8232, + 0xD758, 0x8274, 0xD759, 0x8390, 0xD75A, 0x83A3, 0xD75B, 0x83A8, 0xD75C, 0x838D, 0xD75D, 0x837A, 0xD75E, 0x8373, 0xD75F, 0x83A4, + 0xD760, 0x8374, 0xD761, 0x838F, 0xD762, 0x8381, 0xD763, 0x8395, 0xD764, 0x8399, 0xD765, 0x8375, 0xD766, 0x8394, 0xD767, 0x83A9, + 0xD768, 0x837D, 0xD769, 0x8383, 0xD76A, 0x838C, 0xD76B, 0x839D, 0xD76C, 0x839B, 0xD76D, 0x83AA, 0xD76E, 0x838B, 0xD76F, 0x837E, + 0xD770, 0x83A5, 0xD771, 0x83AF, 0xD772, 0x8388, 0xD773, 0x8397, 0xD774, 0x83B0, 0xD775, 0x837F, 0xD776, 0x83A6, 0xD777, 0x8387, + 0xD778, 0x83AE, 0xD779, 0x8376, 0xD77A, 0x839A, 0xD77B, 0x8659, 0xD77C, 0x8656, 0xD77D, 0x86BF, 0xD77E, 0x86B7, 0xD7A1, 0x86C2, + 0xD7A2, 0x86C1, 0xD7A3, 0x86C5, 0xD7A4, 0x86BA, 0xD7A5, 0x86B0, 0xD7A6, 0x86C8, 0xD7A7, 0x86B9, 0xD7A8, 0x86B3, 0xD7A9, 0x86B8, + 0xD7AA, 0x86CC, 0xD7AB, 0x86B4, 0xD7AC, 0x86BB, 0xD7AD, 0x86BC, 0xD7AE, 0x86C3, 0xD7AF, 0x86BD, 0xD7B0, 0x86BE, 0xD7B1, 0x8852, + 0xD7B2, 0x8889, 0xD7B3, 0x8895, 0xD7B4, 0x88A8, 0xD7B5, 0x88A2, 0xD7B6, 0x88AA, 0xD7B7, 0x889A, 0xD7B8, 0x8891, 0xD7B9, 0x88A1, + 0xD7BA, 0x889F, 0xD7BB, 0x8898, 0xD7BC, 0x88A7, 0xD7BD, 0x8899, 0xD7BE, 0x889B, 0xD7BF, 0x8897, 0xD7C0, 0x88A4, 0xD7C1, 0x88AC, + 0xD7C2, 0x888C, 0xD7C3, 0x8893, 0xD7C4, 0x888E, 0xD7C5, 0x8982, 0xD7C6, 0x89D6, 0xD7C7, 0x89D9, 0xD7C8, 0x89D5, 0xD7C9, 0x8A30, + 0xD7CA, 0x8A27, 0xD7CB, 0x8A2C, 0xD7CC, 0x8A1E, 0xD7CD, 0x8C39, 0xD7CE, 0x8C3B, 0xD7CF, 0x8C5C, 0xD7D0, 0x8C5D, 0xD7D1, 0x8C7D, + 0xD7D2, 0x8CA5, 0xD7D3, 0x8D7D, 0xD7D4, 0x8D7B, 0xD7D5, 0x8D79, 0xD7D6, 0x8DBC, 0xD7D7, 0x8DC2, 0xD7D8, 0x8DB9, 0xD7D9, 0x8DBF, + 0xD7DA, 0x8DC1, 0xD7DB, 0x8ED8, 0xD7DC, 0x8EDE, 0xD7DD, 0x8EDD, 0xD7DE, 0x8EDC, 0xD7DF, 0x8ED7, 0xD7E0, 0x8EE0, 0xD7E1, 0x8EE1, + 0xD7E2, 0x9024, 0xD7E3, 0x900B, 0xD7E4, 0x9011, 0xD7E5, 0x901C, 0xD7E6, 0x900C, 0xD7E7, 0x9021, 0xD7E8, 0x90EF, 0xD7E9, 0x90EA, + 0xD7EA, 0x90F0, 0xD7EB, 0x90F4, 0xD7EC, 0x90F2, 0xD7ED, 0x90F3, 0xD7EE, 0x90D4, 0xD7EF, 0x90EB, 0xD7F0, 0x90EC, 0xD7F1, 0x90E9, + 0xD7F2, 0x9156, 0xD7F3, 0x9158, 0xD7F4, 0x915A, 0xD7F5, 0x9153, 0xD7F6, 0x9155, 0xD7F7, 0x91EC, 0xD7F8, 0x91F4, 0xD7F9, 0x91F1, + 0xD7FA, 0x91F3, 0xD7FB, 0x91F8, 0xD7FC, 0x91E4, 0xD7FD, 0x91F9, 0xD7FE, 0x91EA, 0xD840, 0x91EB, 0xD841, 0x91F7, 0xD842, 0x91E8, + 0xD843, 0x91EE, 0xD844, 0x957A, 0xD845, 0x9586, 0xD846, 0x9588, 0xD847, 0x967C, 0xD848, 0x966D, 0xD849, 0x966B, 0xD84A, 0x9671, + 0xD84B, 0x966F, 0xD84C, 0x96BF, 0xD84D, 0x976A, 0xD84E, 0x9804, 0xD84F, 0x98E5, 0xD850, 0x9997, 0xD851, 0x509B, 0xD852, 0x5095, + 0xD853, 0x5094, 0xD854, 0x509E, 0xD855, 0x508B, 0xD856, 0x50A3, 0xD857, 0x5083, 0xD858, 0x508C, 0xD859, 0x508E, 0xD85A, 0x509D, + 0xD85B, 0x5068, 0xD85C, 0x509C, 0xD85D, 0x5092, 0xD85E, 0x5082, 0xD85F, 0x5087, 0xD860, 0x515F, 0xD861, 0x51D4, 0xD862, 0x5312, + 0xD863, 0x5311, 0xD864, 0x53A4, 0xD865, 0x53A7, 0xD866, 0x5591, 0xD867, 0x55A8, 0xD868, 0x55A5, 0xD869, 0x55AD, 0xD86A, 0x5577, + 0xD86B, 0x5645, 0xD86C, 0x55A2, 0xD86D, 0x5593, 0xD86E, 0x5588, 0xD86F, 0x558F, 0xD870, 0x55B5, 0xD871, 0x5581, 0xD872, 0x55A3, + 0xD873, 0x5592, 0xD874, 0x55A4, 0xD875, 0x557D, 0xD876, 0x558C, 0xD877, 0x55A6, 0xD878, 0x557F, 0xD879, 0x5595, 0xD87A, 0x55A1, + 0xD87B, 0x558E, 0xD87C, 0x570C, 0xD87D, 0x5829, 0xD87E, 0x5837, 0xD8A1, 0x5819, 0xD8A2, 0x581E, 0xD8A3, 0x5827, 0xD8A4, 0x5823, + 0xD8A5, 0x5828, 0xD8A6, 0x57F5, 0xD8A7, 0x5848, 0xD8A8, 0x5825, 0xD8A9, 0x581C, 0xD8AA, 0x581B, 0xD8AB, 0x5833, 0xD8AC, 0x583F, + 0xD8AD, 0x5836, 0xD8AE, 0x582E, 0xD8AF, 0x5839, 0xD8B0, 0x5838, 0xD8B1, 0x582D, 0xD8B2, 0x582C, 0xD8B3, 0x583B, 0xD8B4, 0x5961, + 0xD8B5, 0x5AAF, 0xD8B6, 0x5A94, 0xD8B7, 0x5A9F, 0xD8B8, 0x5A7A, 0xD8B9, 0x5AA2, 0xD8BA, 0x5A9E, 0xD8BB, 0x5A78, 0xD8BC, 0x5AA6, + 0xD8BD, 0x5A7C, 0xD8BE, 0x5AA5, 0xD8BF, 0x5AAC, 0xD8C0, 0x5A95, 0xD8C1, 0x5AAE, 0xD8C2, 0x5A37, 0xD8C3, 0x5A84, 0xD8C4, 0x5A8A, + 0xD8C5, 0x5A97, 0xD8C6, 0x5A83, 0xD8C7, 0x5A8B, 0xD8C8, 0x5AA9, 0xD8C9, 0x5A7B, 0xD8CA, 0x5A7D, 0xD8CB, 0x5A8C, 0xD8CC, 0x5A9C, + 0xD8CD, 0x5A8F, 0xD8CE, 0x5A93, 0xD8CF, 0x5A9D, 0xD8D0, 0x5BEA, 0xD8D1, 0x5BCD, 0xD8D2, 0x5BCB, 0xD8D3, 0x5BD4, 0xD8D4, 0x5BD1, + 0xD8D5, 0x5BCA, 0xD8D6, 0x5BCE, 0xD8D7, 0x5C0C, 0xD8D8, 0x5C30, 0xD8D9, 0x5D37, 0xD8DA, 0x5D43, 0xD8DB, 0x5D6B, 0xD8DC, 0x5D41, + 0xD8DD, 0x5D4B, 0xD8DE, 0x5D3F, 0xD8DF, 0x5D35, 0xD8E0, 0x5D51, 0xD8E1, 0x5D4E, 0xD8E2, 0x5D55, 0xD8E3, 0x5D33, 0xD8E4, 0x5D3A, + 0xD8E5, 0x5D52, 0xD8E6, 0x5D3D, 0xD8E7, 0x5D31, 0xD8E8, 0x5D59, 0xD8E9, 0x5D42, 0xD8EA, 0x5D39, 0xD8EB, 0x5D49, 0xD8EC, 0x5D38, + 0xD8ED, 0x5D3C, 0xD8EE, 0x5D32, 0xD8EF, 0x5D36, 0xD8F0, 0x5D40, 0xD8F1, 0x5D45, 0xD8F2, 0x5E44, 0xD8F3, 0x5E41, 0xD8F4, 0x5F58, + 0xD8F5, 0x5FA6, 0xD8F6, 0x5FA5, 0xD8F7, 0x5FAB, 0xD8F8, 0x60C9, 0xD8F9, 0x60B9, 0xD8FA, 0x60CC, 0xD8FB, 0x60E2, 0xD8FC, 0x60CE, + 0xD8FD, 0x60C4, 0xD8FE, 0x6114, 0xD940, 0x60F2, 0xD941, 0x610A, 0xD942, 0x6116, 0xD943, 0x6105, 0xD944, 0x60F5, 0xD945, 0x6113, + 0xD946, 0x60F8, 0xD947, 0x60FC, 0xD948, 0x60FE, 0xD949, 0x60C1, 0xD94A, 0x6103, 0xD94B, 0x6118, 0xD94C, 0x611D, 0xD94D, 0x6110, + 0xD94E, 0x60FF, 0xD94F, 0x6104, 0xD950, 0x610B, 0xD951, 0x624A, 0xD952, 0x6394, 0xD953, 0x63B1, 0xD954, 0x63B0, 0xD955, 0x63CE, + 0xD956, 0x63E5, 0xD957, 0x63E8, 0xD958, 0x63EF, 0xD959, 0x63C3, 0xD95A, 0x649D, 0xD95B, 0x63F3, 0xD95C, 0x63CA, 0xD95D, 0x63E0, + 0xD95E, 0x63F6, 0xD95F, 0x63D5, 0xD960, 0x63F2, 0xD961, 0x63F5, 0xD962, 0x6461, 0xD963, 0x63DF, 0xD964, 0x63BE, 0xD965, 0x63DD, + 0xD966, 0x63DC, 0xD967, 0x63C4, 0xD968, 0x63D8, 0xD969, 0x63D3, 0xD96A, 0x63C2, 0xD96B, 0x63C7, 0xD96C, 0x63CC, 0xD96D, 0x63CB, + 0xD96E, 0x63C8, 0xD96F, 0x63F0, 0xD970, 0x63D7, 0xD971, 0x63D9, 0xD972, 0x6532, 0xD973, 0x6567, 0xD974, 0x656A, 0xD975, 0x6564, + 0xD976, 0x655C, 0xD977, 0x6568, 0xD978, 0x6565, 0xD979, 0x658C, 0xD97A, 0x659D, 0xD97B, 0x659E, 0xD97C, 0x65AE, 0xD97D, 0x65D0, + 0xD97E, 0x65D2, 0xD9A1, 0x667C, 0xD9A2, 0x666C, 0xD9A3, 0x667B, 0xD9A4, 0x6680, 0xD9A5, 0x6671, 0xD9A6, 0x6679, 0xD9A7, 0x666A, + 0xD9A8, 0x6672, 0xD9A9, 0x6701, 0xD9AA, 0x690C, 0xD9AB, 0x68D3, 0xD9AC, 0x6904, 0xD9AD, 0x68DC, 0xD9AE, 0x692A, 0xD9AF, 0x68EC, + 0xD9B0, 0x68EA, 0xD9B1, 0x68F1, 0xD9B2, 0x690F, 0xD9B3, 0x68D6, 0xD9B4, 0x68F7, 0xD9B5, 0x68EB, 0xD9B6, 0x68E4, 0xD9B7, 0x68F6, + 0xD9B8, 0x6913, 0xD9B9, 0x6910, 0xD9BA, 0x68F3, 0xD9BB, 0x68E1, 0xD9BC, 0x6907, 0xD9BD, 0x68CC, 0xD9BE, 0x6908, 0xD9BF, 0x6970, + 0xD9C0, 0x68B4, 0xD9C1, 0x6911, 0xD9C2, 0x68EF, 0xD9C3, 0x68C6, 0xD9C4, 0x6914, 0xD9C5, 0x68F8, 0xD9C6, 0x68D0, 0xD9C7, 0x68FD, + 0xD9C8, 0x68FC, 0xD9C9, 0x68E8, 0xD9CA, 0x690B, 0xD9CB, 0x690A, 0xD9CC, 0x6917, 0xD9CD, 0x68CE, 0xD9CE, 0x68C8, 0xD9CF, 0x68DD, + 0xD9D0, 0x68DE, 0xD9D1, 0x68E6, 0xD9D2, 0x68F4, 0xD9D3, 0x68D1, 0xD9D4, 0x6906, 0xD9D5, 0x68D4, 0xD9D6, 0x68E9, 0xD9D7, 0x6915, + 0xD9D8, 0x6925, 0xD9D9, 0x68C7, 0xD9DA, 0x6B39, 0xD9DB, 0x6B3B, 0xD9DC, 0x6B3F, 0xD9DD, 0x6B3C, 0xD9DE, 0x6B94, 0xD9DF, 0x6B97, + 0xD9E0, 0x6B99, 0xD9E1, 0x6B95, 0xD9E2, 0x6BBD, 0xD9E3, 0x6BF0, 0xD9E4, 0x6BF2, 0xD9E5, 0x6BF3, 0xD9E6, 0x6C30, 0xD9E7, 0x6DFC, + 0xD9E8, 0x6E46, 0xD9E9, 0x6E47, 0xD9EA, 0x6E1F, 0xD9EB, 0x6E49, 0xD9EC, 0x6E88, 0xD9ED, 0x6E3C, 0xD9EE, 0x6E3D, 0xD9EF, 0x6E45, + 0xD9F0, 0x6E62, 0xD9F1, 0x6E2B, 0xD9F2, 0x6E3F, 0xD9F3, 0x6E41, 0xD9F4, 0x6E5D, 0xD9F5, 0x6E73, 0xD9F6, 0x6E1C, 0xD9F7, 0x6E33, + 0xD9F8, 0x6E4B, 0xD9F9, 0x6E40, 0xD9FA, 0x6E51, 0xD9FB, 0x6E3B, 0xD9FC, 0x6E03, 0xD9FD, 0x6E2E, 0xD9FE, 0x6E5E, 0xDA40, 0x6E68, + 0xDA41, 0x6E5C, 0xDA42, 0x6E61, 0xDA43, 0x6E31, 0xDA44, 0x6E28, 0xDA45, 0x6E60, 0xDA46, 0x6E71, 0xDA47, 0x6E6B, 0xDA48, 0x6E39, + 0xDA49, 0x6E22, 0xDA4A, 0x6E30, 0xDA4B, 0x6E53, 0xDA4C, 0x6E65, 0xDA4D, 0x6E27, 0xDA4E, 0x6E78, 0xDA4F, 0x6E64, 0xDA50, 0x6E77, + 0xDA51, 0x6E55, 0xDA52, 0x6E79, 0xDA53, 0x6E52, 0xDA54, 0x6E66, 0xDA55, 0x6E35, 0xDA56, 0x6E36, 0xDA57, 0x6E5A, 0xDA58, 0x7120, + 0xDA59, 0x711E, 0xDA5A, 0x712F, 0xDA5B, 0x70FB, 0xDA5C, 0x712E, 0xDA5D, 0x7131, 0xDA5E, 0x7123, 0xDA5F, 0x7125, 0xDA60, 0x7122, + 0xDA61, 0x7132, 0xDA62, 0x711F, 0xDA63, 0x7128, 0xDA64, 0x713A, 0xDA65, 0x711B, 0xDA66, 0x724B, 0xDA67, 0x725A, 0xDA68, 0x7288, + 0xDA69, 0x7289, 0xDA6A, 0x7286, 0xDA6B, 0x7285, 0xDA6C, 0x728B, 0xDA6D, 0x7312, 0xDA6E, 0x730B, 0xDA6F, 0x7330, 0xDA70, 0x7322, + 0xDA71, 0x7331, 0xDA72, 0x7333, 0xDA73, 0x7327, 0xDA74, 0x7332, 0xDA75, 0x732D, 0xDA76, 0x7326, 0xDA77, 0x7323, 0xDA78, 0x7335, + 0xDA79, 0x730C, 0xDA7A, 0x742E, 0xDA7B, 0x742C, 0xDA7C, 0x7430, 0xDA7D, 0x742B, 0xDA7E, 0x7416, 0xDAA1, 0x741A, 0xDAA2, 0x7421, + 0xDAA3, 0x742D, 0xDAA4, 0x7431, 0xDAA5, 0x7424, 0xDAA6, 0x7423, 0xDAA7, 0x741D, 0xDAA8, 0x7429, 0xDAA9, 0x7420, 0xDAAA, 0x7432, + 0xDAAB, 0x74FB, 0xDAAC, 0x752F, 0xDAAD, 0x756F, 0xDAAE, 0x756C, 0xDAAF, 0x75E7, 0xDAB0, 0x75DA, 0xDAB1, 0x75E1, 0xDAB2, 0x75E6, + 0xDAB3, 0x75DD, 0xDAB4, 0x75DF, 0xDAB5, 0x75E4, 0xDAB6, 0x75D7, 0xDAB7, 0x7695, 0xDAB8, 0x7692, 0xDAB9, 0x76DA, 0xDABA, 0x7746, + 0xDABB, 0x7747, 0xDABC, 0x7744, 0xDABD, 0x774D, 0xDABE, 0x7745, 0xDABF, 0x774A, 0xDAC0, 0x774E, 0xDAC1, 0x774B, 0xDAC2, 0x774C, + 0xDAC3, 0x77DE, 0xDAC4, 0x77EC, 0xDAC5, 0x7860, 0xDAC6, 0x7864, 0xDAC7, 0x7865, 0xDAC8, 0x785C, 0xDAC9, 0x786D, 0xDACA, 0x7871, + 0xDACB, 0x786A, 0xDACC, 0x786E, 0xDACD, 0x7870, 0xDACE, 0x7869, 0xDACF, 0x7868, 0xDAD0, 0x785E, 0xDAD1, 0x7862, 0xDAD2, 0x7974, + 0xDAD3, 0x7973, 0xDAD4, 0x7972, 0xDAD5, 0x7970, 0xDAD6, 0x7A02, 0xDAD7, 0x7A0A, 0xDAD8, 0x7A03, 0xDAD9, 0x7A0C, 0xDADA, 0x7A04, + 0xDADB, 0x7A99, 0xDADC, 0x7AE6, 0xDADD, 0x7AE4, 0xDADE, 0x7B4A, 0xDADF, 0x7B3B, 0xDAE0, 0x7B44, 0xDAE1, 0x7B48, 0xDAE2, 0x7B4C, + 0xDAE3, 0x7B4E, 0xDAE4, 0x7B40, 0xDAE5, 0x7B58, 0xDAE6, 0x7B45, 0xDAE7, 0x7CA2, 0xDAE8, 0x7C9E, 0xDAE9, 0x7CA8, 0xDAEA, 0x7CA1, + 0xDAEB, 0x7D58, 0xDAEC, 0x7D6F, 0xDAED, 0x7D63, 0xDAEE, 0x7D53, 0xDAEF, 0x7D56, 0xDAF0, 0x7D67, 0xDAF1, 0x7D6A, 0xDAF2, 0x7D4F, + 0xDAF3, 0x7D6D, 0xDAF4, 0x7D5C, 0xDAF5, 0x7D6B, 0xDAF6, 0x7D52, 0xDAF7, 0x7D54, 0xDAF8, 0x7D69, 0xDAF9, 0x7D51, 0xDAFA, 0x7D5F, + 0xDAFB, 0x7D4E, 0xDAFC, 0x7F3E, 0xDAFD, 0x7F3F, 0xDAFE, 0x7F65, 0xDB40, 0x7F66, 0xDB41, 0x7FA2, 0xDB42, 0x7FA0, 0xDB43, 0x7FA1, + 0xDB44, 0x7FD7, 0xDB45, 0x8051, 0xDB46, 0x804F, 0xDB47, 0x8050, 0xDB48, 0x80FE, 0xDB49, 0x80D4, 0xDB4A, 0x8143, 0xDB4B, 0x814A, + 0xDB4C, 0x8152, 0xDB4D, 0x814F, 0xDB4E, 0x8147, 0xDB4F, 0x813D, 0xDB50, 0x814D, 0xDB51, 0x813A, 0xDB52, 0x81E6, 0xDB53, 0x81EE, + 0xDB54, 0x81F7, 0xDB55, 0x81F8, 0xDB56, 0x81F9, 0xDB57, 0x8204, 0xDB58, 0x823C, 0xDB59, 0x823D, 0xDB5A, 0x823F, 0xDB5B, 0x8275, + 0xDB5C, 0x833B, 0xDB5D, 0x83CF, 0xDB5E, 0x83F9, 0xDB5F, 0x8423, 0xDB60, 0x83C0, 0xDB61, 0x83E8, 0xDB62, 0x8412, 0xDB63, 0x83E7, + 0xDB64, 0x83E4, 0xDB65, 0x83FC, 0xDB66, 0x83F6, 0xDB67, 0x8410, 0xDB68, 0x83C6, 0xDB69, 0x83C8, 0xDB6A, 0x83EB, 0xDB6B, 0x83E3, + 0xDB6C, 0x83BF, 0xDB6D, 0x8401, 0xDB6E, 0x83DD, 0xDB6F, 0x83E5, 0xDB70, 0x83D8, 0xDB71, 0x83FF, 0xDB72, 0x83E1, 0xDB73, 0x83CB, + 0xDB74, 0x83CE, 0xDB75, 0x83D6, 0xDB76, 0x83F5, 0xDB77, 0x83C9, 0xDB78, 0x8409, 0xDB79, 0x840F, 0xDB7A, 0x83DE, 0xDB7B, 0x8411, + 0xDB7C, 0x8406, 0xDB7D, 0x83C2, 0xDB7E, 0x83F3, 0xDBA1, 0x83D5, 0xDBA2, 0x83FA, 0xDBA3, 0x83C7, 0xDBA4, 0x83D1, 0xDBA5, 0x83EA, + 0xDBA6, 0x8413, 0xDBA7, 0x83C3, 0xDBA8, 0x83EC, 0xDBA9, 0x83EE, 0xDBAA, 0x83C4, 0xDBAB, 0x83FB, 0xDBAC, 0x83D7, 0xDBAD, 0x83E2, + 0xDBAE, 0x841B, 0xDBAF, 0x83DB, 0xDBB0, 0x83FE, 0xDBB1, 0x86D8, 0xDBB2, 0x86E2, 0xDBB3, 0x86E6, 0xDBB4, 0x86D3, 0xDBB5, 0x86E3, + 0xDBB6, 0x86DA, 0xDBB7, 0x86EA, 0xDBB8, 0x86DD, 0xDBB9, 0x86EB, 0xDBBA, 0x86DC, 0xDBBB, 0x86EC, 0xDBBC, 0x86E9, 0xDBBD, 0x86D7, + 0xDBBE, 0x86E8, 0xDBBF, 0x86D1, 0xDBC0, 0x8848, 0xDBC1, 0x8856, 0xDBC2, 0x8855, 0xDBC3, 0x88BA, 0xDBC4, 0x88D7, 0xDBC5, 0x88B9, + 0xDBC6, 0x88B8, 0xDBC7, 0x88C0, 0xDBC8, 0x88BE, 0xDBC9, 0x88B6, 0xDBCA, 0x88BC, 0xDBCB, 0x88B7, 0xDBCC, 0x88BD, 0xDBCD, 0x88B2, + 0xDBCE, 0x8901, 0xDBCF, 0x88C9, 0xDBD0, 0x8995, 0xDBD1, 0x8998, 0xDBD2, 0x8997, 0xDBD3, 0x89DD, 0xDBD4, 0x89DA, 0xDBD5, 0x89DB, + 0xDBD6, 0x8A4E, 0xDBD7, 0x8A4D, 0xDBD8, 0x8A39, 0xDBD9, 0x8A59, 0xDBDA, 0x8A40, 0xDBDB, 0x8A57, 0xDBDC, 0x8A58, 0xDBDD, 0x8A44, + 0xDBDE, 0x8A45, 0xDBDF, 0x8A52, 0xDBE0, 0x8A48, 0xDBE1, 0x8A51, 0xDBE2, 0x8A4A, 0xDBE3, 0x8A4C, 0xDBE4, 0x8A4F, 0xDBE5, 0x8C5F, + 0xDBE6, 0x8C81, 0xDBE7, 0x8C80, 0xDBE8, 0x8CBA, 0xDBE9, 0x8CBE, 0xDBEA, 0x8CB0, 0xDBEB, 0x8CB9, 0xDBEC, 0x8CB5, 0xDBED, 0x8D84, + 0xDBEE, 0x8D80, 0xDBEF, 0x8D89, 0xDBF0, 0x8DD8, 0xDBF1, 0x8DD3, 0xDBF2, 0x8DCD, 0xDBF3, 0x8DC7, 0xDBF4, 0x8DD6, 0xDBF5, 0x8DDC, + 0xDBF6, 0x8DCF, 0xDBF7, 0x8DD5, 0xDBF8, 0x8DD9, 0xDBF9, 0x8DC8, 0xDBFA, 0x8DD7, 0xDBFB, 0x8DC5, 0xDBFC, 0x8EEF, 0xDBFD, 0x8EF7, + 0xDBFE, 0x8EFA, 0xDC40, 0x8EF9, 0xDC41, 0x8EE6, 0xDC42, 0x8EEE, 0xDC43, 0x8EE5, 0xDC44, 0x8EF5, 0xDC45, 0x8EE7, 0xDC46, 0x8EE8, + 0xDC47, 0x8EF6, 0xDC48, 0x8EEB, 0xDC49, 0x8EF1, 0xDC4A, 0x8EEC, 0xDC4B, 0x8EF4, 0xDC4C, 0x8EE9, 0xDC4D, 0x902D, 0xDC4E, 0x9034, + 0xDC4F, 0x902F, 0xDC50, 0x9106, 0xDC51, 0x912C, 0xDC52, 0x9104, 0xDC53, 0x90FF, 0xDC54, 0x90FC, 0xDC55, 0x9108, 0xDC56, 0x90F9, + 0xDC57, 0x90FB, 0xDC58, 0x9101, 0xDC59, 0x9100, 0xDC5A, 0x9107, 0xDC5B, 0x9105, 0xDC5C, 0x9103, 0xDC5D, 0x9161, 0xDC5E, 0x9164, + 0xDC5F, 0x915F, 0xDC60, 0x9162, 0xDC61, 0x9160, 0xDC62, 0x9201, 0xDC63, 0x920A, 0xDC64, 0x9225, 0xDC65, 0x9203, 0xDC66, 0x921A, + 0xDC67, 0x9226, 0xDC68, 0x920F, 0xDC69, 0x920C, 0xDC6A, 0x9200, 0xDC6B, 0x9212, 0xDC6C, 0x91FF, 0xDC6D, 0x91FD, 0xDC6E, 0x9206, + 0xDC6F, 0x9204, 0xDC70, 0x9227, 0xDC71, 0x9202, 0xDC72, 0x921C, 0xDC73, 0x9224, 0xDC74, 0x9219, 0xDC75, 0x9217, 0xDC76, 0x9205, + 0xDC77, 0x9216, 0xDC78, 0x957B, 0xDC79, 0x958D, 0xDC7A, 0x958C, 0xDC7B, 0x9590, 0xDC7C, 0x9687, 0xDC7D, 0x967E, 0xDC7E, 0x9688, + 0xDCA1, 0x9689, 0xDCA2, 0x9683, 0xDCA3, 0x9680, 0xDCA4, 0x96C2, 0xDCA5, 0x96C8, 0xDCA6, 0x96C3, 0xDCA7, 0x96F1, 0xDCA8, 0x96F0, + 0xDCA9, 0x976C, 0xDCAA, 0x9770, 0xDCAB, 0x976E, 0xDCAC, 0x9807, 0xDCAD, 0x98A9, 0xDCAE, 0x98EB, 0xDCAF, 0x9CE6, 0xDCB0, 0x9EF9, + 0xDCB1, 0x4E83, 0xDCB2, 0x4E84, 0xDCB3, 0x4EB6, 0xDCB4, 0x50BD, 0xDCB5, 0x50BF, 0xDCB6, 0x50C6, 0xDCB7, 0x50AE, 0xDCB8, 0x50C4, + 0xDCB9, 0x50CA, 0xDCBA, 0x50B4, 0xDCBB, 0x50C8, 0xDCBC, 0x50C2, 0xDCBD, 0x50B0, 0xDCBE, 0x50C1, 0xDCBF, 0x50BA, 0xDCC0, 0x50B1, + 0xDCC1, 0x50CB, 0xDCC2, 0x50C9, 0xDCC3, 0x50B6, 0xDCC4, 0x50B8, 0xDCC5, 0x51D7, 0xDCC6, 0x527A, 0xDCC7, 0x5278, 0xDCC8, 0x527B, + 0xDCC9, 0x527C, 0xDCCA, 0x55C3, 0xDCCB, 0x55DB, 0xDCCC, 0x55CC, 0xDCCD, 0x55D0, 0xDCCE, 0x55CB, 0xDCCF, 0x55CA, 0xDCD0, 0x55DD, + 0xDCD1, 0x55C0, 0xDCD2, 0x55D4, 0xDCD3, 0x55C4, 0xDCD4, 0x55E9, 0xDCD5, 0x55BF, 0xDCD6, 0x55D2, 0xDCD7, 0x558D, 0xDCD8, 0x55CF, + 0xDCD9, 0x55D5, 0xDCDA, 0x55E2, 0xDCDB, 0x55D6, 0xDCDC, 0x55C8, 0xDCDD, 0x55F2, 0xDCDE, 0x55CD, 0xDCDF, 0x55D9, 0xDCE0, 0x55C2, + 0xDCE1, 0x5714, 0xDCE2, 0x5853, 0xDCE3, 0x5868, 0xDCE4, 0x5864, 0xDCE5, 0x584F, 0xDCE6, 0x584D, 0xDCE7, 0x5849, 0xDCE8, 0x586F, + 0xDCE9, 0x5855, 0xDCEA, 0x584E, 0xDCEB, 0x585D, 0xDCEC, 0x5859, 0xDCED, 0x5865, 0xDCEE, 0x585B, 0xDCEF, 0x583D, 0xDCF0, 0x5863, + 0xDCF1, 0x5871, 0xDCF2, 0x58FC, 0xDCF3, 0x5AC7, 0xDCF4, 0x5AC4, 0xDCF5, 0x5ACB, 0xDCF6, 0x5ABA, 0xDCF7, 0x5AB8, 0xDCF8, 0x5AB1, + 0xDCF9, 0x5AB5, 0xDCFA, 0x5AB0, 0xDCFB, 0x5ABF, 0xDCFC, 0x5AC8, 0xDCFD, 0x5ABB, 0xDCFE, 0x5AC6, 0xDD40, 0x5AB7, 0xDD41, 0x5AC0, + 0xDD42, 0x5ACA, 0xDD43, 0x5AB4, 0xDD44, 0x5AB6, 0xDD45, 0x5ACD, 0xDD46, 0x5AB9, 0xDD47, 0x5A90, 0xDD48, 0x5BD6, 0xDD49, 0x5BD8, + 0xDD4A, 0x5BD9, 0xDD4B, 0x5C1F, 0xDD4C, 0x5C33, 0xDD4D, 0x5D71, 0xDD4E, 0x5D63, 0xDD4F, 0x5D4A, 0xDD50, 0x5D65, 0xDD51, 0x5D72, + 0xDD52, 0x5D6C, 0xDD53, 0x5D5E, 0xDD54, 0x5D68, 0xDD55, 0x5D67, 0xDD56, 0x5D62, 0xDD57, 0x5DF0, 0xDD58, 0x5E4F, 0xDD59, 0x5E4E, + 0xDD5A, 0x5E4A, 0xDD5B, 0x5E4D, 0xDD5C, 0x5E4B, 0xDD5D, 0x5EC5, 0xDD5E, 0x5ECC, 0xDD5F, 0x5EC6, 0xDD60, 0x5ECB, 0xDD61, 0x5EC7, + 0xDD62, 0x5F40, 0xDD63, 0x5FAF, 0xDD64, 0x5FAD, 0xDD65, 0x60F7, 0xDD66, 0x6149, 0xDD67, 0x614A, 0xDD68, 0x612B, 0xDD69, 0x6145, + 0xDD6A, 0x6136, 0xDD6B, 0x6132, 0xDD6C, 0x612E, 0xDD6D, 0x6146, 0xDD6E, 0x612F, 0xDD6F, 0x614F, 0xDD70, 0x6129, 0xDD71, 0x6140, + 0xDD72, 0x6220, 0xDD73, 0x9168, 0xDD74, 0x6223, 0xDD75, 0x6225, 0xDD76, 0x6224, 0xDD77, 0x63C5, 0xDD78, 0x63F1, 0xDD79, 0x63EB, + 0xDD7A, 0x6410, 0xDD7B, 0x6412, 0xDD7C, 0x6409, 0xDD7D, 0x6420, 0xDD7E, 0x6424, 0xDDA1, 0x6433, 0xDDA2, 0x6443, 0xDDA3, 0x641F, + 0xDDA4, 0x6415, 0xDDA5, 0x6418, 0xDDA6, 0x6439, 0xDDA7, 0x6437, 0xDDA8, 0x6422, 0xDDA9, 0x6423, 0xDDAA, 0x640C, 0xDDAB, 0x6426, + 0xDDAC, 0x6430, 0xDDAD, 0x6428, 0xDDAE, 0x6441, 0xDDAF, 0x6435, 0xDDB0, 0x642F, 0xDDB1, 0x640A, 0xDDB2, 0x641A, 0xDDB3, 0x6440, + 0xDDB4, 0x6425, 0xDDB5, 0x6427, 0xDDB6, 0x640B, 0xDDB7, 0x63E7, 0xDDB8, 0x641B, 0xDDB9, 0x642E, 0xDDBA, 0x6421, 0xDDBB, 0x640E, + 0xDDBC, 0x656F, 0xDDBD, 0x6592, 0xDDBE, 0x65D3, 0xDDBF, 0x6686, 0xDDC0, 0x668C, 0xDDC1, 0x6695, 0xDDC2, 0x6690, 0xDDC3, 0x668B, + 0xDDC4, 0x668A, 0xDDC5, 0x6699, 0xDDC6, 0x6694, 0xDDC7, 0x6678, 0xDDC8, 0x6720, 0xDDC9, 0x6966, 0xDDCA, 0x695F, 0xDDCB, 0x6938, + 0xDDCC, 0x694E, 0xDDCD, 0x6962, 0xDDCE, 0x6971, 0xDDCF, 0x693F, 0xDDD0, 0x6945, 0xDDD1, 0x696A, 0xDDD2, 0x6939, 0xDDD3, 0x6942, + 0xDDD4, 0x6957, 0xDDD5, 0x6959, 0xDDD6, 0x697A, 0xDDD7, 0x6948, 0xDDD8, 0x6949, 0xDDD9, 0x6935, 0xDDDA, 0x696C, 0xDDDB, 0x6933, + 0xDDDC, 0x693D, 0xDDDD, 0x6965, 0xDDDE, 0x68F0, 0xDDDF, 0x6978, 0xDDE0, 0x6934, 0xDDE1, 0x6969, 0xDDE2, 0x6940, 0xDDE3, 0x696F, + 0xDDE4, 0x6944, 0xDDE5, 0x6976, 0xDDE6, 0x6958, 0xDDE7, 0x6941, 0xDDE8, 0x6974, 0xDDE9, 0x694C, 0xDDEA, 0x693B, 0xDDEB, 0x694B, + 0xDDEC, 0x6937, 0xDDED, 0x695C, 0xDDEE, 0x694F, 0xDDEF, 0x6951, 0xDDF0, 0x6932, 0xDDF1, 0x6952, 0xDDF2, 0x692F, 0xDDF3, 0x697B, + 0xDDF4, 0x693C, 0xDDF5, 0x6B46, 0xDDF6, 0x6B45, 0xDDF7, 0x6B43, 0xDDF8, 0x6B42, 0xDDF9, 0x6B48, 0xDDFA, 0x6B41, 0xDDFB, 0x6B9B, + 0xDDFC, 0xFA0D, 0xDDFD, 0x6BFB, 0xDDFE, 0x6BFC, 0xDE40, 0x6BF9, 0xDE41, 0x6BF7, 0xDE42, 0x6BF8, 0xDE43, 0x6E9B, 0xDE44, 0x6ED6, + 0xDE45, 0x6EC8, 0xDE46, 0x6E8F, 0xDE47, 0x6EC0, 0xDE48, 0x6E9F, 0xDE49, 0x6E93, 0xDE4A, 0x6E94, 0xDE4B, 0x6EA0, 0xDE4C, 0x6EB1, + 0xDE4D, 0x6EB9, 0xDE4E, 0x6EC6, 0xDE4F, 0x6ED2, 0xDE50, 0x6EBD, 0xDE51, 0x6EC1, 0xDE52, 0x6E9E, 0xDE53, 0x6EC9, 0xDE54, 0x6EB7, + 0xDE55, 0x6EB0, 0xDE56, 0x6ECD, 0xDE57, 0x6EA6, 0xDE58, 0x6ECF, 0xDE59, 0x6EB2, 0xDE5A, 0x6EBE, 0xDE5B, 0x6EC3, 0xDE5C, 0x6EDC, + 0xDE5D, 0x6ED8, 0xDE5E, 0x6E99, 0xDE5F, 0x6E92, 0xDE60, 0x6E8E, 0xDE61, 0x6E8D, 0xDE62, 0x6EA4, 0xDE63, 0x6EA1, 0xDE64, 0x6EBF, + 0xDE65, 0x6EB3, 0xDE66, 0x6ED0, 0xDE67, 0x6ECA, 0xDE68, 0x6E97, 0xDE69, 0x6EAE, 0xDE6A, 0x6EA3, 0xDE6B, 0x7147, 0xDE6C, 0x7154, + 0xDE6D, 0x7152, 0xDE6E, 0x7163, 0xDE6F, 0x7160, 0xDE70, 0x7141, 0xDE71, 0x715D, 0xDE72, 0x7162, 0xDE73, 0x7172, 0xDE74, 0x7178, + 0xDE75, 0x716A, 0xDE76, 0x7161, 0xDE77, 0x7142, 0xDE78, 0x7158, 0xDE79, 0x7143, 0xDE7A, 0x714B, 0xDE7B, 0x7170, 0xDE7C, 0x715F, + 0xDE7D, 0x7150, 0xDE7E, 0x7153, 0xDEA1, 0x7144, 0xDEA2, 0x714D, 0xDEA3, 0x715A, 0xDEA4, 0x724F, 0xDEA5, 0x728D, 0xDEA6, 0x728C, + 0xDEA7, 0x7291, 0xDEA8, 0x7290, 0xDEA9, 0x728E, 0xDEAA, 0x733C, 0xDEAB, 0x7342, 0xDEAC, 0x733B, 0xDEAD, 0x733A, 0xDEAE, 0x7340, + 0xDEAF, 0x734A, 0xDEB0, 0x7349, 0xDEB1, 0x7444, 0xDEB2, 0x744A, 0xDEB3, 0x744B, 0xDEB4, 0x7452, 0xDEB5, 0x7451, 0xDEB6, 0x7457, + 0xDEB7, 0x7440, 0xDEB8, 0x744F, 0xDEB9, 0x7450, 0xDEBA, 0x744E, 0xDEBB, 0x7442, 0xDEBC, 0x7446, 0xDEBD, 0x744D, 0xDEBE, 0x7454, + 0xDEBF, 0x74E1, 0xDEC0, 0x74FF, 0xDEC1, 0x74FE, 0xDEC2, 0x74FD, 0xDEC3, 0x751D, 0xDEC4, 0x7579, 0xDEC5, 0x7577, 0xDEC6, 0x6983, + 0xDEC7, 0x75EF, 0xDEC8, 0x760F, 0xDEC9, 0x7603, 0xDECA, 0x75F7, 0xDECB, 0x75FE, 0xDECC, 0x75FC, 0xDECD, 0x75F9, 0xDECE, 0x75F8, + 0xDECF, 0x7610, 0xDED0, 0x75FB, 0xDED1, 0x75F6, 0xDED2, 0x75ED, 0xDED3, 0x75F5, 0xDED4, 0x75FD, 0xDED5, 0x7699, 0xDED6, 0x76B5, + 0xDED7, 0x76DD, 0xDED8, 0x7755, 0xDED9, 0x775F, 0xDEDA, 0x7760, 0xDEDB, 0x7752, 0xDEDC, 0x7756, 0xDEDD, 0x775A, 0xDEDE, 0x7769, + 0xDEDF, 0x7767, 0xDEE0, 0x7754, 0xDEE1, 0x7759, 0xDEE2, 0x776D, 0xDEE3, 0x77E0, 0xDEE4, 0x7887, 0xDEE5, 0x789A, 0xDEE6, 0x7894, + 0xDEE7, 0x788F, 0xDEE8, 0x7884, 0xDEE9, 0x7895, 0xDEEA, 0x7885, 0xDEEB, 0x7886, 0xDEEC, 0x78A1, 0xDEED, 0x7883, 0xDEEE, 0x7879, + 0xDEEF, 0x7899, 0xDEF0, 0x7880, 0xDEF1, 0x7896, 0xDEF2, 0x787B, 0xDEF3, 0x797C, 0xDEF4, 0x7982, 0xDEF5, 0x797D, 0xDEF6, 0x7979, + 0xDEF7, 0x7A11, 0xDEF8, 0x7A18, 0xDEF9, 0x7A19, 0xDEFA, 0x7A12, 0xDEFB, 0x7A17, 0xDEFC, 0x7A15, 0xDEFD, 0x7A22, 0xDEFE, 0x7A13, + 0xDF40, 0x7A1B, 0xDF41, 0x7A10, 0xDF42, 0x7AA3, 0xDF43, 0x7AA2, 0xDF44, 0x7A9E, 0xDF45, 0x7AEB, 0xDF46, 0x7B66, 0xDF47, 0x7B64, + 0xDF48, 0x7B6D, 0xDF49, 0x7B74, 0xDF4A, 0x7B69, 0xDF4B, 0x7B72, 0xDF4C, 0x7B65, 0xDF4D, 0x7B73, 0xDF4E, 0x7B71, 0xDF4F, 0x7B70, + 0xDF50, 0x7B61, 0xDF51, 0x7B78, 0xDF52, 0x7B76, 0xDF53, 0x7B63, 0xDF54, 0x7CB2, 0xDF55, 0x7CB4, 0xDF56, 0x7CAF, 0xDF57, 0x7D88, + 0xDF58, 0x7D86, 0xDF59, 0x7D80, 0xDF5A, 0x7D8D, 0xDF5B, 0x7D7F, 0xDF5C, 0x7D85, 0xDF5D, 0x7D7A, 0xDF5E, 0x7D8E, 0xDF5F, 0x7D7B, + 0xDF60, 0x7D83, 0xDF61, 0x7D7C, 0xDF62, 0x7D8C, 0xDF63, 0x7D94, 0xDF64, 0x7D84, 0xDF65, 0x7D7D, 0xDF66, 0x7D92, 0xDF67, 0x7F6D, + 0xDF68, 0x7F6B, 0xDF69, 0x7F67, 0xDF6A, 0x7F68, 0xDF6B, 0x7F6C, 0xDF6C, 0x7FA6, 0xDF6D, 0x7FA5, 0xDF6E, 0x7FA7, 0xDF6F, 0x7FDB, + 0xDF70, 0x7FDC, 0xDF71, 0x8021, 0xDF72, 0x8164, 0xDF73, 0x8160, 0xDF74, 0x8177, 0xDF75, 0x815C, 0xDF76, 0x8169, 0xDF77, 0x815B, + 0xDF78, 0x8162, 0xDF79, 0x8172, 0xDF7A, 0x6721, 0xDF7B, 0x815E, 0xDF7C, 0x8176, 0xDF7D, 0x8167, 0xDF7E, 0x816F, 0xDFA1, 0x8144, + 0xDFA2, 0x8161, 0xDFA3, 0x821D, 0xDFA4, 0x8249, 0xDFA5, 0x8244, 0xDFA6, 0x8240, 0xDFA7, 0x8242, 0xDFA8, 0x8245, 0xDFA9, 0x84F1, + 0xDFAA, 0x843F, 0xDFAB, 0x8456, 0xDFAC, 0x8476, 0xDFAD, 0x8479, 0xDFAE, 0x848F, 0xDFAF, 0x848D, 0xDFB0, 0x8465, 0xDFB1, 0x8451, + 0xDFB2, 0x8440, 0xDFB3, 0x8486, 0xDFB4, 0x8467, 0xDFB5, 0x8430, 0xDFB6, 0x844D, 0xDFB7, 0x847D, 0xDFB8, 0x845A, 0xDFB9, 0x8459, + 0xDFBA, 0x8474, 0xDFBB, 0x8473, 0xDFBC, 0x845D, 0xDFBD, 0x8507, 0xDFBE, 0x845E, 0xDFBF, 0x8437, 0xDFC0, 0x843A, 0xDFC1, 0x8434, + 0xDFC2, 0x847A, 0xDFC3, 0x8443, 0xDFC4, 0x8478, 0xDFC5, 0x8432, 0xDFC6, 0x8445, 0xDFC7, 0x8429, 0xDFC8, 0x83D9, 0xDFC9, 0x844B, + 0xDFCA, 0x842F, 0xDFCB, 0x8442, 0xDFCC, 0x842D, 0xDFCD, 0x845F, 0xDFCE, 0x8470, 0xDFCF, 0x8439, 0xDFD0, 0x844E, 0xDFD1, 0x844C, + 0xDFD2, 0x8452, 0xDFD3, 0x846F, 0xDFD4, 0x84C5, 0xDFD5, 0x848E, 0xDFD6, 0x843B, 0xDFD7, 0x8447, 0xDFD8, 0x8436, 0xDFD9, 0x8433, + 0xDFDA, 0x8468, 0xDFDB, 0x847E, 0xDFDC, 0x8444, 0xDFDD, 0x842B, 0xDFDE, 0x8460, 0xDFDF, 0x8454, 0xDFE0, 0x846E, 0xDFE1, 0x8450, + 0xDFE2, 0x870B, 0xDFE3, 0x8704, 0xDFE4, 0x86F7, 0xDFE5, 0x870C, 0xDFE6, 0x86FA, 0xDFE7, 0x86D6, 0xDFE8, 0x86F5, 0xDFE9, 0x874D, + 0xDFEA, 0x86F8, 0xDFEB, 0x870E, 0xDFEC, 0x8709, 0xDFED, 0x8701, 0xDFEE, 0x86F6, 0xDFEF, 0x870D, 0xDFF0, 0x8705, 0xDFF1, 0x88D6, + 0xDFF2, 0x88CB, 0xDFF3, 0x88CD, 0xDFF4, 0x88CE, 0xDFF5, 0x88DE, 0xDFF6, 0x88DB, 0xDFF7, 0x88DA, 0xDFF8, 0x88CC, 0xDFF9, 0x88D0, + 0xDFFA, 0x8985, 0xDFFB, 0x899B, 0xDFFC, 0x89DF, 0xDFFD, 0x89E5, 0xDFFE, 0x89E4, 0xE040, 0x89E1, 0xE041, 0x89E0, 0xE042, 0x89E2, + 0xE043, 0x89DC, 0xE044, 0x89E6, 0xE045, 0x8A76, 0xE046, 0x8A86, 0xE047, 0x8A7F, 0xE048, 0x8A61, 0xE049, 0x8A3F, 0xE04A, 0x8A77, + 0xE04B, 0x8A82, 0xE04C, 0x8A84, 0xE04D, 0x8A75, 0xE04E, 0x8A83, 0xE04F, 0x8A81, 0xE050, 0x8A74, 0xE051, 0x8A7A, 0xE052, 0x8C3C, + 0xE053, 0x8C4B, 0xE054, 0x8C4A, 0xE055, 0x8C65, 0xE056, 0x8C64, 0xE057, 0x8C66, 0xE058, 0x8C86, 0xE059, 0x8C84, 0xE05A, 0x8C85, + 0xE05B, 0x8CCC, 0xE05C, 0x8D68, 0xE05D, 0x8D69, 0xE05E, 0x8D91, 0xE05F, 0x8D8C, 0xE060, 0x8D8E, 0xE061, 0x8D8F, 0xE062, 0x8D8D, + 0xE063, 0x8D93, 0xE064, 0x8D94, 0xE065, 0x8D90, 0xE066, 0x8D92, 0xE067, 0x8DF0, 0xE068, 0x8DE0, 0xE069, 0x8DEC, 0xE06A, 0x8DF1, + 0xE06B, 0x8DEE, 0xE06C, 0x8DD0, 0xE06D, 0x8DE9, 0xE06E, 0x8DE3, 0xE06F, 0x8DE2, 0xE070, 0x8DE7, 0xE071, 0x8DF2, 0xE072, 0x8DEB, + 0xE073, 0x8DF4, 0xE074, 0x8F06, 0xE075, 0x8EFF, 0xE076, 0x8F01, 0xE077, 0x8F00, 0xE078, 0x8F05, 0xE079, 0x8F07, 0xE07A, 0x8F08, + 0xE07B, 0x8F02, 0xE07C, 0x8F0B, 0xE07D, 0x9052, 0xE07E, 0x903F, 0xE0A1, 0x9044, 0xE0A2, 0x9049, 0xE0A3, 0x903D, 0xE0A4, 0x9110, + 0xE0A5, 0x910D, 0xE0A6, 0x910F, 0xE0A7, 0x9111, 0xE0A8, 0x9116, 0xE0A9, 0x9114, 0xE0AA, 0x910B, 0xE0AB, 0x910E, 0xE0AC, 0x916E, + 0xE0AD, 0x916F, 0xE0AE, 0x9248, 0xE0AF, 0x9252, 0xE0B0, 0x9230, 0xE0B1, 0x923A, 0xE0B2, 0x9266, 0xE0B3, 0x9233, 0xE0B4, 0x9265, + 0xE0B5, 0x925E, 0xE0B6, 0x9283, 0xE0B7, 0x922E, 0xE0B8, 0x924A, 0xE0B9, 0x9246, 0xE0BA, 0x926D, 0xE0BB, 0x926C, 0xE0BC, 0x924F, + 0xE0BD, 0x9260, 0xE0BE, 0x9267, 0xE0BF, 0x926F, 0xE0C0, 0x9236, 0xE0C1, 0x9261, 0xE0C2, 0x9270, 0xE0C3, 0x9231, 0xE0C4, 0x9254, + 0xE0C5, 0x9263, 0xE0C6, 0x9250, 0xE0C7, 0x9272, 0xE0C8, 0x924E, 0xE0C9, 0x9253, 0xE0CA, 0x924C, 0xE0CB, 0x9256, 0xE0CC, 0x9232, + 0xE0CD, 0x959F, 0xE0CE, 0x959C, 0xE0CF, 0x959E, 0xE0D0, 0x959B, 0xE0D1, 0x9692, 0xE0D2, 0x9693, 0xE0D3, 0x9691, 0xE0D4, 0x9697, + 0xE0D5, 0x96CE, 0xE0D6, 0x96FA, 0xE0D7, 0x96FD, 0xE0D8, 0x96F8, 0xE0D9, 0x96F5, 0xE0DA, 0x9773, 0xE0DB, 0x9777, 0xE0DC, 0x9778, + 0xE0DD, 0x9772, 0xE0DE, 0x980F, 0xE0DF, 0x980D, 0xE0E0, 0x980E, 0xE0E1, 0x98AC, 0xE0E2, 0x98F6, 0xE0E3, 0x98F9, 0xE0E4, 0x99AF, + 0xE0E5, 0x99B2, 0xE0E6, 0x99B0, 0xE0E7, 0x99B5, 0xE0E8, 0x9AAD, 0xE0E9, 0x9AAB, 0xE0EA, 0x9B5B, 0xE0EB, 0x9CEA, 0xE0EC, 0x9CED, + 0xE0ED, 0x9CE7, 0xE0EE, 0x9E80, 0xE0EF, 0x9EFD, 0xE0F0, 0x50E6, 0xE0F1, 0x50D4, 0xE0F2, 0x50D7, 0xE0F3, 0x50E8, 0xE0F4, 0x50F3, + 0xE0F5, 0x50DB, 0xE0F6, 0x50EA, 0xE0F7, 0x50DD, 0xE0F8, 0x50E4, 0xE0F9, 0x50D3, 0xE0FA, 0x50EC, 0xE0FB, 0x50F0, 0xE0FC, 0x50EF, + 0xE0FD, 0x50E3, 0xE0FE, 0x50E0, 0xE140, 0x51D8, 0xE141, 0x5280, 0xE142, 0x5281, 0xE143, 0x52E9, 0xE144, 0x52EB, 0xE145, 0x5330, + 0xE146, 0x53AC, 0xE147, 0x5627, 0xE148, 0x5615, 0xE149, 0x560C, 0xE14A, 0x5612, 0xE14B, 0x55FC, 0xE14C, 0x560F, 0xE14D, 0x561C, + 0xE14E, 0x5601, 0xE14F, 0x5613, 0xE150, 0x5602, 0xE151, 0x55FA, 0xE152, 0x561D, 0xE153, 0x5604, 0xE154, 0x55FF, 0xE155, 0x55F9, + 0xE156, 0x5889, 0xE157, 0x587C, 0xE158, 0x5890, 0xE159, 0x5898, 0xE15A, 0x5886, 0xE15B, 0x5881, 0xE15C, 0x587F, 0xE15D, 0x5874, + 0xE15E, 0x588B, 0xE15F, 0x587A, 0xE160, 0x5887, 0xE161, 0x5891, 0xE162, 0x588E, 0xE163, 0x5876, 0xE164, 0x5882, 0xE165, 0x5888, + 0xE166, 0x587B, 0xE167, 0x5894, 0xE168, 0x588F, 0xE169, 0x58FE, 0xE16A, 0x596B, 0xE16B, 0x5ADC, 0xE16C, 0x5AEE, 0xE16D, 0x5AE5, + 0xE16E, 0x5AD5, 0xE16F, 0x5AEA, 0xE170, 0x5ADA, 0xE171, 0x5AED, 0xE172, 0x5AEB, 0xE173, 0x5AF3, 0xE174, 0x5AE2, 0xE175, 0x5AE0, + 0xE176, 0x5ADB, 0xE177, 0x5AEC, 0xE178, 0x5ADE, 0xE179, 0x5ADD, 0xE17A, 0x5AD9, 0xE17B, 0x5AE8, 0xE17C, 0x5ADF, 0xE17D, 0x5B77, + 0xE17E, 0x5BE0, 0xE1A1, 0x5BE3, 0xE1A2, 0x5C63, 0xE1A3, 0x5D82, 0xE1A4, 0x5D80, 0xE1A5, 0x5D7D, 0xE1A6, 0x5D86, 0xE1A7, 0x5D7A, + 0xE1A8, 0x5D81, 0xE1A9, 0x5D77, 0xE1AA, 0x5D8A, 0xE1AB, 0x5D89, 0xE1AC, 0x5D88, 0xE1AD, 0x5D7E, 0xE1AE, 0x5D7C, 0xE1AF, 0x5D8D, + 0xE1B0, 0x5D79, 0xE1B1, 0x5D7F, 0xE1B2, 0x5E58, 0xE1B3, 0x5E59, 0xE1B4, 0x5E53, 0xE1B5, 0x5ED8, 0xE1B6, 0x5ED1, 0xE1B7, 0x5ED7, + 0xE1B8, 0x5ECE, 0xE1B9, 0x5EDC, 0xE1BA, 0x5ED5, 0xE1BB, 0x5ED9, 0xE1BC, 0x5ED2, 0xE1BD, 0x5ED4, 0xE1BE, 0x5F44, 0xE1BF, 0x5F43, + 0xE1C0, 0x5F6F, 0xE1C1, 0x5FB6, 0xE1C2, 0x612C, 0xE1C3, 0x6128, 0xE1C4, 0x6141, 0xE1C5, 0x615E, 0xE1C6, 0x6171, 0xE1C7, 0x6173, + 0xE1C8, 0x6152, 0xE1C9, 0x6153, 0xE1CA, 0x6172, 0xE1CB, 0x616C, 0xE1CC, 0x6180, 0xE1CD, 0x6174, 0xE1CE, 0x6154, 0xE1CF, 0x617A, + 0xE1D0, 0x615B, 0xE1D1, 0x6165, 0xE1D2, 0x613B, 0xE1D3, 0x616A, 0xE1D4, 0x6161, 0xE1D5, 0x6156, 0xE1D6, 0x6229, 0xE1D7, 0x6227, + 0xE1D8, 0x622B, 0xE1D9, 0x642B, 0xE1DA, 0x644D, 0xE1DB, 0x645B, 0xE1DC, 0x645D, 0xE1DD, 0x6474, 0xE1DE, 0x6476, 0xE1DF, 0x6472, + 0xE1E0, 0x6473, 0xE1E1, 0x647D, 0xE1E2, 0x6475, 0xE1E3, 0x6466, 0xE1E4, 0x64A6, 0xE1E5, 0x644E, 0xE1E6, 0x6482, 0xE1E7, 0x645E, + 0xE1E8, 0x645C, 0xE1E9, 0x644B, 0xE1EA, 0x6453, 0xE1EB, 0x6460, 0xE1EC, 0x6450, 0xE1ED, 0x647F, 0xE1EE, 0x643F, 0xE1EF, 0x646C, + 0xE1F0, 0x646B, 0xE1F1, 0x6459, 0xE1F2, 0x6465, 0xE1F3, 0x6477, 0xE1F4, 0x6573, 0xE1F5, 0x65A0, 0xE1F6, 0x66A1, 0xE1F7, 0x66A0, + 0xE1F8, 0x669F, 0xE1F9, 0x6705, 0xE1FA, 0x6704, 0xE1FB, 0x6722, 0xE1FC, 0x69B1, 0xE1FD, 0x69B6, 0xE1FE, 0x69C9, 0xE240, 0x69A0, + 0xE241, 0x69CE, 0xE242, 0x6996, 0xE243, 0x69B0, 0xE244, 0x69AC, 0xE245, 0x69BC, 0xE246, 0x6991, 0xE247, 0x6999, 0xE248, 0x698E, + 0xE249, 0x69A7, 0xE24A, 0x698D, 0xE24B, 0x69A9, 0xE24C, 0x69BE, 0xE24D, 0x69AF, 0xE24E, 0x69BF, 0xE24F, 0x69C4, 0xE250, 0x69BD, + 0xE251, 0x69A4, 0xE252, 0x69D4, 0xE253, 0x69B9, 0xE254, 0x69CA, 0xE255, 0x699A, 0xE256, 0x69CF, 0xE257, 0x69B3, 0xE258, 0x6993, + 0xE259, 0x69AA, 0xE25A, 0x69A1, 0xE25B, 0x699E, 0xE25C, 0x69D9, 0xE25D, 0x6997, 0xE25E, 0x6990, 0xE25F, 0x69C2, 0xE260, 0x69B5, + 0xE261, 0x69A5, 0xE262, 0x69C6, 0xE263, 0x6B4A, 0xE264, 0x6B4D, 0xE265, 0x6B4B, 0xE266, 0x6B9E, 0xE267, 0x6B9F, 0xE268, 0x6BA0, + 0xE269, 0x6BC3, 0xE26A, 0x6BC4, 0xE26B, 0x6BFE, 0xE26C, 0x6ECE, 0xE26D, 0x6EF5, 0xE26E, 0x6EF1, 0xE26F, 0x6F03, 0xE270, 0x6F25, + 0xE271, 0x6EF8, 0xE272, 0x6F37, 0xE273, 0x6EFB, 0xE274, 0x6F2E, 0xE275, 0x6F09, 0xE276, 0x6F4E, 0xE277, 0x6F19, 0xE278, 0x6F1A, + 0xE279, 0x6F27, 0xE27A, 0x6F18, 0xE27B, 0x6F3B, 0xE27C, 0x6F12, 0xE27D, 0x6EED, 0xE27E, 0x6F0A, 0xE2A1, 0x6F36, 0xE2A2, 0x6F73, + 0xE2A3, 0x6EF9, 0xE2A4, 0x6EEE, 0xE2A5, 0x6F2D, 0xE2A6, 0x6F40, 0xE2A7, 0x6F30, 0xE2A8, 0x6F3C, 0xE2A9, 0x6F35, 0xE2AA, 0x6EEB, + 0xE2AB, 0x6F07, 0xE2AC, 0x6F0E, 0xE2AD, 0x6F43, 0xE2AE, 0x6F05, 0xE2AF, 0x6EFD, 0xE2B0, 0x6EF6, 0xE2B1, 0x6F39, 0xE2B2, 0x6F1C, + 0xE2B3, 0x6EFC, 0xE2B4, 0x6F3A, 0xE2B5, 0x6F1F, 0xE2B6, 0x6F0D, 0xE2B7, 0x6F1E, 0xE2B8, 0x6F08, 0xE2B9, 0x6F21, 0xE2BA, 0x7187, + 0xE2BB, 0x7190, 0xE2BC, 0x7189, 0xE2BD, 0x7180, 0xE2BE, 0x7185, 0xE2BF, 0x7182, 0xE2C0, 0x718F, 0xE2C1, 0x717B, 0xE2C2, 0x7186, + 0xE2C3, 0x7181, 0xE2C4, 0x7197, 0xE2C5, 0x7244, 0xE2C6, 0x7253, 0xE2C7, 0x7297, 0xE2C8, 0x7295, 0xE2C9, 0x7293, 0xE2CA, 0x7343, + 0xE2CB, 0x734D, 0xE2CC, 0x7351, 0xE2CD, 0x734C, 0xE2CE, 0x7462, 0xE2CF, 0x7473, 0xE2D0, 0x7471, 0xE2D1, 0x7475, 0xE2D2, 0x7472, + 0xE2D3, 0x7467, 0xE2D4, 0x746E, 0xE2D5, 0x7500, 0xE2D6, 0x7502, 0xE2D7, 0x7503, 0xE2D8, 0x757D, 0xE2D9, 0x7590, 0xE2DA, 0x7616, + 0xE2DB, 0x7608, 0xE2DC, 0x760C, 0xE2DD, 0x7615, 0xE2DE, 0x7611, 0xE2DF, 0x760A, 0xE2E0, 0x7614, 0xE2E1, 0x76B8, 0xE2E2, 0x7781, + 0xE2E3, 0x777C, 0xE2E4, 0x7785, 0xE2E5, 0x7782, 0xE2E6, 0x776E, 0xE2E7, 0x7780, 0xE2E8, 0x776F, 0xE2E9, 0x777E, 0xE2EA, 0x7783, + 0xE2EB, 0x78B2, 0xE2EC, 0x78AA, 0xE2ED, 0x78B4, 0xE2EE, 0x78AD, 0xE2EF, 0x78A8, 0xE2F0, 0x787E, 0xE2F1, 0x78AB, 0xE2F2, 0x789E, + 0xE2F3, 0x78A5, 0xE2F4, 0x78A0, 0xE2F5, 0x78AC, 0xE2F6, 0x78A2, 0xE2F7, 0x78A4, 0xE2F8, 0x7998, 0xE2F9, 0x798A, 0xE2FA, 0x798B, + 0xE2FB, 0x7996, 0xE2FC, 0x7995, 0xE2FD, 0x7994, 0xE2FE, 0x7993, 0xE340, 0x7997, 0xE341, 0x7988, 0xE342, 0x7992, 0xE343, 0x7990, + 0xE344, 0x7A2B, 0xE345, 0x7A4A, 0xE346, 0x7A30, 0xE347, 0x7A2F, 0xE348, 0x7A28, 0xE349, 0x7A26, 0xE34A, 0x7AA8, 0xE34B, 0x7AAB, + 0xE34C, 0x7AAC, 0xE34D, 0x7AEE, 0xE34E, 0x7B88, 0xE34F, 0x7B9C, 0xE350, 0x7B8A, 0xE351, 0x7B91, 0xE352, 0x7B90, 0xE353, 0x7B96, + 0xE354, 0x7B8D, 0xE355, 0x7B8C, 0xE356, 0x7B9B, 0xE357, 0x7B8E, 0xE358, 0x7B85, 0xE359, 0x7B98, 0xE35A, 0x5284, 0xE35B, 0x7B99, + 0xE35C, 0x7BA4, 0xE35D, 0x7B82, 0xE35E, 0x7CBB, 0xE35F, 0x7CBF, 0xE360, 0x7CBC, 0xE361, 0x7CBA, 0xE362, 0x7DA7, 0xE363, 0x7DB7, + 0xE364, 0x7DC2, 0xE365, 0x7DA3, 0xE366, 0x7DAA, 0xE367, 0x7DC1, 0xE368, 0x7DC0, 0xE369, 0x7DC5, 0xE36A, 0x7D9D, 0xE36B, 0x7DCE, + 0xE36C, 0x7DC4, 0xE36D, 0x7DC6, 0xE36E, 0x7DCB, 0xE36F, 0x7DCC, 0xE370, 0x7DAF, 0xE371, 0x7DB9, 0xE372, 0x7D96, 0xE373, 0x7DBC, + 0xE374, 0x7D9F, 0xE375, 0x7DA6, 0xE376, 0x7DAE, 0xE377, 0x7DA9, 0xE378, 0x7DA1, 0xE379, 0x7DC9, 0xE37A, 0x7F73, 0xE37B, 0x7FE2, + 0xE37C, 0x7FE3, 0xE37D, 0x7FE5, 0xE37E, 0x7FDE, 0xE3A1, 0x8024, 0xE3A2, 0x805D, 0xE3A3, 0x805C, 0xE3A4, 0x8189, 0xE3A5, 0x8186, + 0xE3A6, 0x8183, 0xE3A7, 0x8187, 0xE3A8, 0x818D, 0xE3A9, 0x818C, 0xE3AA, 0x818B, 0xE3AB, 0x8215, 0xE3AC, 0x8497, 0xE3AD, 0x84A4, + 0xE3AE, 0x84A1, 0xE3AF, 0x849F, 0xE3B0, 0x84BA, 0xE3B1, 0x84CE, 0xE3B2, 0x84C2, 0xE3B3, 0x84AC, 0xE3B4, 0x84AE, 0xE3B5, 0x84AB, + 0xE3B6, 0x84B9, 0xE3B7, 0x84B4, 0xE3B8, 0x84C1, 0xE3B9, 0x84CD, 0xE3BA, 0x84AA, 0xE3BB, 0x849A, 0xE3BC, 0x84B1, 0xE3BD, 0x84D0, + 0xE3BE, 0x849D, 0xE3BF, 0x84A7, 0xE3C0, 0x84BB, 0xE3C1, 0x84A2, 0xE3C2, 0x8494, 0xE3C3, 0x84C7, 0xE3C4, 0x84CC, 0xE3C5, 0x849B, + 0xE3C6, 0x84A9, 0xE3C7, 0x84AF, 0xE3C8, 0x84A8, 0xE3C9, 0x84D6, 0xE3CA, 0x8498, 0xE3CB, 0x84B6, 0xE3CC, 0x84CF, 0xE3CD, 0x84A0, + 0xE3CE, 0x84D7, 0xE3CF, 0x84D4, 0xE3D0, 0x84D2, 0xE3D1, 0x84DB, 0xE3D2, 0x84B0, 0xE3D3, 0x8491, 0xE3D4, 0x8661, 0xE3D5, 0x8733, + 0xE3D6, 0x8723, 0xE3D7, 0x8728, 0xE3D8, 0x876B, 0xE3D9, 0x8740, 0xE3DA, 0x872E, 0xE3DB, 0x871E, 0xE3DC, 0x8721, 0xE3DD, 0x8719, + 0xE3DE, 0x871B, 0xE3DF, 0x8743, 0xE3E0, 0x872C, 0xE3E1, 0x8741, 0xE3E2, 0x873E, 0xE3E3, 0x8746, 0xE3E4, 0x8720, 0xE3E5, 0x8732, + 0xE3E6, 0x872A, 0xE3E7, 0x872D, 0xE3E8, 0x873C, 0xE3E9, 0x8712, 0xE3EA, 0x873A, 0xE3EB, 0x8731, 0xE3EC, 0x8735, 0xE3ED, 0x8742, + 0xE3EE, 0x8726, 0xE3EF, 0x8727, 0xE3F0, 0x8738, 0xE3F1, 0x8724, 0xE3F2, 0x871A, 0xE3F3, 0x8730, 0xE3F4, 0x8711, 0xE3F5, 0x88F7, + 0xE3F6, 0x88E7, 0xE3F7, 0x88F1, 0xE3F8, 0x88F2, 0xE3F9, 0x88FA, 0xE3FA, 0x88FE, 0xE3FB, 0x88EE, 0xE3FC, 0x88FC, 0xE3FD, 0x88F6, + 0xE3FE, 0x88FB, 0xE440, 0x88F0, 0xE441, 0x88EC, 0xE442, 0x88EB, 0xE443, 0x899D, 0xE444, 0x89A1, 0xE445, 0x899F, 0xE446, 0x899E, + 0xE447, 0x89E9, 0xE448, 0x89EB, 0xE449, 0x89E8, 0xE44A, 0x8AAB, 0xE44B, 0x8A99, 0xE44C, 0x8A8B, 0xE44D, 0x8A92, 0xE44E, 0x8A8F, + 0xE44F, 0x8A96, 0xE450, 0x8C3D, 0xE451, 0x8C68, 0xE452, 0x8C69, 0xE453, 0x8CD5, 0xE454, 0x8CCF, 0xE455, 0x8CD7, 0xE456, 0x8D96, + 0xE457, 0x8E09, 0xE458, 0x8E02, 0xE459, 0x8DFF, 0xE45A, 0x8E0D, 0xE45B, 0x8DFD, 0xE45C, 0x8E0A, 0xE45D, 0x8E03, 0xE45E, 0x8E07, + 0xE45F, 0x8E06, 0xE460, 0x8E05, 0xE461, 0x8DFE, 0xE462, 0x8E00, 0xE463, 0x8E04, 0xE464, 0x8F10, 0xE465, 0x8F11, 0xE466, 0x8F0E, + 0xE467, 0x8F0D, 0xE468, 0x9123, 0xE469, 0x911C, 0xE46A, 0x9120, 0xE46B, 0x9122, 0xE46C, 0x911F, 0xE46D, 0x911D, 0xE46E, 0x911A, + 0xE46F, 0x9124, 0xE470, 0x9121, 0xE471, 0x911B, 0xE472, 0x917A, 0xE473, 0x9172, 0xE474, 0x9179, 0xE475, 0x9173, 0xE476, 0x92A5, + 0xE477, 0x92A4, 0xE478, 0x9276, 0xE479, 0x929B, 0xE47A, 0x927A, 0xE47B, 0x92A0, 0xE47C, 0x9294, 0xE47D, 0x92AA, 0xE47E, 0x928D, + 0xE4A1, 0x92A6, 0xE4A2, 0x929A, 0xE4A3, 0x92AB, 0xE4A4, 0x9279, 0xE4A5, 0x9297, 0xE4A6, 0x927F, 0xE4A7, 0x92A3, 0xE4A8, 0x92EE, + 0xE4A9, 0x928E, 0xE4AA, 0x9282, 0xE4AB, 0x9295, 0xE4AC, 0x92A2, 0xE4AD, 0x927D, 0xE4AE, 0x9288, 0xE4AF, 0x92A1, 0xE4B0, 0x928A, + 0xE4B1, 0x9286, 0xE4B2, 0x928C, 0xE4B3, 0x9299, 0xE4B4, 0x92A7, 0xE4B5, 0x927E, 0xE4B6, 0x9287, 0xE4B7, 0x92A9, 0xE4B8, 0x929D, + 0xE4B9, 0x928B, 0xE4BA, 0x922D, 0xE4BB, 0x969E, 0xE4BC, 0x96A1, 0xE4BD, 0x96FF, 0xE4BE, 0x9758, 0xE4BF, 0x977D, 0xE4C0, 0x977A, + 0xE4C1, 0x977E, 0xE4C2, 0x9783, 0xE4C3, 0x9780, 0xE4C4, 0x9782, 0xE4C5, 0x977B, 0xE4C6, 0x9784, 0xE4C7, 0x9781, 0xE4C8, 0x977F, + 0xE4C9, 0x97CE, 0xE4CA, 0x97CD, 0xE4CB, 0x9816, 0xE4CC, 0x98AD, 0xE4CD, 0x98AE, 0xE4CE, 0x9902, 0xE4CF, 0x9900, 0xE4D0, 0x9907, + 0xE4D1, 0x999D, 0xE4D2, 0x999C, 0xE4D3, 0x99C3, 0xE4D4, 0x99B9, 0xE4D5, 0x99BB, 0xE4D6, 0x99BA, 0xE4D7, 0x99C2, 0xE4D8, 0x99BD, + 0xE4D9, 0x99C7, 0xE4DA, 0x9AB1, 0xE4DB, 0x9AE3, 0xE4DC, 0x9AE7, 0xE4DD, 0x9B3E, 0xE4DE, 0x9B3F, 0xE4DF, 0x9B60, 0xE4E0, 0x9B61, + 0xE4E1, 0x9B5F, 0xE4E2, 0x9CF1, 0xE4E3, 0x9CF2, 0xE4E4, 0x9CF5, 0xE4E5, 0x9EA7, 0xE4E6, 0x50FF, 0xE4E7, 0x5103, 0xE4E8, 0x5130, + 0xE4E9, 0x50F8, 0xE4EA, 0x5106, 0xE4EB, 0x5107, 0xE4EC, 0x50F6, 0xE4ED, 0x50FE, 0xE4EE, 0x510B, 0xE4EF, 0x510C, 0xE4F0, 0x50FD, + 0xE4F1, 0x510A, 0xE4F2, 0x528B, 0xE4F3, 0x528C, 0xE4F4, 0x52F1, 0xE4F5, 0x52EF, 0xE4F6, 0x5648, 0xE4F7, 0x5642, 0xE4F8, 0x564C, + 0xE4F9, 0x5635, 0xE4FA, 0x5641, 0xE4FB, 0x564A, 0xE4FC, 0x5649, 0xE4FD, 0x5646, 0xE4FE, 0x5658, 0xE540, 0x565A, 0xE541, 0x5640, + 0xE542, 0x5633, 0xE543, 0x563D, 0xE544, 0x562C, 0xE545, 0x563E, 0xE546, 0x5638, 0xE547, 0x562A, 0xE548, 0x563A, 0xE549, 0x571A, + 0xE54A, 0x58AB, 0xE54B, 0x589D, 0xE54C, 0x58B1, 0xE54D, 0x58A0, 0xE54E, 0x58A3, 0xE54F, 0x58AF, 0xE550, 0x58AC, 0xE551, 0x58A5, + 0xE552, 0x58A1, 0xE553, 0x58FF, 0xE554, 0x5AFF, 0xE555, 0x5AF4, 0xE556, 0x5AFD, 0xE557, 0x5AF7, 0xE558, 0x5AF6, 0xE559, 0x5B03, + 0xE55A, 0x5AF8, 0xE55B, 0x5B02, 0xE55C, 0x5AF9, 0xE55D, 0x5B01, 0xE55E, 0x5B07, 0xE55F, 0x5B05, 0xE560, 0x5B0F, 0xE561, 0x5C67, + 0xE562, 0x5D99, 0xE563, 0x5D97, 0xE564, 0x5D9F, 0xE565, 0x5D92, 0xE566, 0x5DA2, 0xE567, 0x5D93, 0xE568, 0x5D95, 0xE569, 0x5DA0, + 0xE56A, 0x5D9C, 0xE56B, 0x5DA1, 0xE56C, 0x5D9A, 0xE56D, 0x5D9E, 0xE56E, 0x5E69, 0xE56F, 0x5E5D, 0xE570, 0x5E60, 0xE571, 0x5E5C, + 0xE572, 0x7DF3, 0xE573, 0x5EDB, 0xE574, 0x5EDE, 0xE575, 0x5EE1, 0xE576, 0x5F49, 0xE577, 0x5FB2, 0xE578, 0x618B, 0xE579, 0x6183, + 0xE57A, 0x6179, 0xE57B, 0x61B1, 0xE57C, 0x61B0, 0xE57D, 0x61A2, 0xE57E, 0x6189, 0xE5A1, 0x619B, 0xE5A2, 0x6193, 0xE5A3, 0x61AF, + 0xE5A4, 0x61AD, 0xE5A5, 0x619F, 0xE5A6, 0x6192, 0xE5A7, 0x61AA, 0xE5A8, 0x61A1, 0xE5A9, 0x618D, 0xE5AA, 0x6166, 0xE5AB, 0x61B3, + 0xE5AC, 0x622D, 0xE5AD, 0x646E, 0xE5AE, 0x6470, 0xE5AF, 0x6496, 0xE5B0, 0x64A0, 0xE5B1, 0x6485, 0xE5B2, 0x6497, 0xE5B3, 0x649C, + 0xE5B4, 0x648F, 0xE5B5, 0x648B, 0xE5B6, 0x648A, 0xE5B7, 0x648C, 0xE5B8, 0x64A3, 0xE5B9, 0x649F, 0xE5BA, 0x6468, 0xE5BB, 0x64B1, + 0xE5BC, 0x6498, 0xE5BD, 0x6576, 0xE5BE, 0x657A, 0xE5BF, 0x6579, 0xE5C0, 0x657B, 0xE5C1, 0x65B2, 0xE5C2, 0x65B3, 0xE5C3, 0x66B5, + 0xE5C4, 0x66B0, 0xE5C5, 0x66A9, 0xE5C6, 0x66B2, 0xE5C7, 0x66B7, 0xE5C8, 0x66AA, 0xE5C9, 0x66AF, 0xE5CA, 0x6A00, 0xE5CB, 0x6A06, + 0xE5CC, 0x6A17, 0xE5CD, 0x69E5, 0xE5CE, 0x69F8, 0xE5CF, 0x6A15, 0xE5D0, 0x69F1, 0xE5D1, 0x69E4, 0xE5D2, 0x6A20, 0xE5D3, 0x69FF, + 0xE5D4, 0x69EC, 0xE5D5, 0x69E2, 0xE5D6, 0x6A1B, 0xE5D7, 0x6A1D, 0xE5D8, 0x69FE, 0xE5D9, 0x6A27, 0xE5DA, 0x69F2, 0xE5DB, 0x69EE, + 0xE5DC, 0x6A14, 0xE5DD, 0x69F7, 0xE5DE, 0x69E7, 0xE5DF, 0x6A40, 0xE5E0, 0x6A08, 0xE5E1, 0x69E6, 0xE5E2, 0x69FB, 0xE5E3, 0x6A0D, + 0xE5E4, 0x69FC, 0xE5E5, 0x69EB, 0xE5E6, 0x6A09, 0xE5E7, 0x6A04, 0xE5E8, 0x6A18, 0xE5E9, 0x6A25, 0xE5EA, 0x6A0F, 0xE5EB, 0x69F6, + 0xE5EC, 0x6A26, 0xE5ED, 0x6A07, 0xE5EE, 0x69F4, 0xE5EF, 0x6A16, 0xE5F0, 0x6B51, 0xE5F1, 0x6BA5, 0xE5F2, 0x6BA3, 0xE5F3, 0x6BA2, + 0xE5F4, 0x6BA6, 0xE5F5, 0x6C01, 0xE5F6, 0x6C00, 0xE5F7, 0x6BFF, 0xE5F8, 0x6C02, 0xE5F9, 0x6F41, 0xE5FA, 0x6F26, 0xE5FB, 0x6F7E, + 0xE5FC, 0x6F87, 0xE5FD, 0x6FC6, 0xE5FE, 0x6F92, 0xE640, 0x6F8D, 0xE641, 0x6F89, 0xE642, 0x6F8C, 0xE643, 0x6F62, 0xE644, 0x6F4F, + 0xE645, 0x6F85, 0xE646, 0x6F5A, 0xE647, 0x6F96, 0xE648, 0x6F76, 0xE649, 0x6F6C, 0xE64A, 0x6F82, 0xE64B, 0x6F55, 0xE64C, 0x6F72, + 0xE64D, 0x6F52, 0xE64E, 0x6F50, 0xE64F, 0x6F57, 0xE650, 0x6F94, 0xE651, 0x6F93, 0xE652, 0x6F5D, 0xE653, 0x6F00, 0xE654, 0x6F61, + 0xE655, 0x6F6B, 0xE656, 0x6F7D, 0xE657, 0x6F67, 0xE658, 0x6F90, 0xE659, 0x6F53, 0xE65A, 0x6F8B, 0xE65B, 0x6F69, 0xE65C, 0x6F7F, + 0xE65D, 0x6F95, 0xE65E, 0x6F63, 0xE65F, 0x6F77, 0xE660, 0x6F6A, 0xE661, 0x6F7B, 0xE662, 0x71B2, 0xE663, 0x71AF, 0xE664, 0x719B, + 0xE665, 0x71B0, 0xE666, 0x71A0, 0xE667, 0x719A, 0xE668, 0x71A9, 0xE669, 0x71B5, 0xE66A, 0x719D, 0xE66B, 0x71A5, 0xE66C, 0x719E, + 0xE66D, 0x71A4, 0xE66E, 0x71A1, 0xE66F, 0x71AA, 0xE670, 0x719C, 0xE671, 0x71A7, 0xE672, 0x71B3, 0xE673, 0x7298, 0xE674, 0x729A, + 0xE675, 0x7358, 0xE676, 0x7352, 0xE677, 0x735E, 0xE678, 0x735F, 0xE679, 0x7360, 0xE67A, 0x735D, 0xE67B, 0x735B, 0xE67C, 0x7361, + 0xE67D, 0x735A, 0xE67E, 0x7359, 0xE6A1, 0x7362, 0xE6A2, 0x7487, 0xE6A3, 0x7489, 0xE6A4, 0x748A, 0xE6A5, 0x7486, 0xE6A6, 0x7481, + 0xE6A7, 0x747D, 0xE6A8, 0x7485, 0xE6A9, 0x7488, 0xE6AA, 0x747C, 0xE6AB, 0x7479, 0xE6AC, 0x7508, 0xE6AD, 0x7507, 0xE6AE, 0x757E, + 0xE6AF, 0x7625, 0xE6B0, 0x761E, 0xE6B1, 0x7619, 0xE6B2, 0x761D, 0xE6B3, 0x761C, 0xE6B4, 0x7623, 0xE6B5, 0x761A, 0xE6B6, 0x7628, + 0xE6B7, 0x761B, 0xE6B8, 0x769C, 0xE6B9, 0x769D, 0xE6BA, 0x769E, 0xE6BB, 0x769B, 0xE6BC, 0x778D, 0xE6BD, 0x778F, 0xE6BE, 0x7789, + 0xE6BF, 0x7788, 0xE6C0, 0x78CD, 0xE6C1, 0x78BB, 0xE6C2, 0x78CF, 0xE6C3, 0x78CC, 0xE6C4, 0x78D1, 0xE6C5, 0x78CE, 0xE6C6, 0x78D4, + 0xE6C7, 0x78C8, 0xE6C8, 0x78C3, 0xE6C9, 0x78C4, 0xE6CA, 0x78C9, 0xE6CB, 0x799A, 0xE6CC, 0x79A1, 0xE6CD, 0x79A0, 0xE6CE, 0x799C, + 0xE6CF, 0x79A2, 0xE6D0, 0x799B, 0xE6D1, 0x6B76, 0xE6D2, 0x7A39, 0xE6D3, 0x7AB2, 0xE6D4, 0x7AB4, 0xE6D5, 0x7AB3, 0xE6D6, 0x7BB7, + 0xE6D7, 0x7BCB, 0xE6D8, 0x7BBE, 0xE6D9, 0x7BAC, 0xE6DA, 0x7BCE, 0xE6DB, 0x7BAF, 0xE6DC, 0x7BB9, 0xE6DD, 0x7BCA, 0xE6DE, 0x7BB5, + 0xE6DF, 0x7CC5, 0xE6E0, 0x7CC8, 0xE6E1, 0x7CCC, 0xE6E2, 0x7CCB, 0xE6E3, 0x7DF7, 0xE6E4, 0x7DDB, 0xE6E5, 0x7DEA, 0xE6E6, 0x7DE7, + 0xE6E7, 0x7DD7, 0xE6E8, 0x7DE1, 0xE6E9, 0x7E03, 0xE6EA, 0x7DFA, 0xE6EB, 0x7DE6, 0xE6EC, 0x7DF6, 0xE6ED, 0x7DF1, 0xE6EE, 0x7DF0, + 0xE6EF, 0x7DEE, 0xE6F0, 0x7DDF, 0xE6F1, 0x7F76, 0xE6F2, 0x7FAC, 0xE6F3, 0x7FB0, 0xE6F4, 0x7FAD, 0xE6F5, 0x7FED, 0xE6F6, 0x7FEB, + 0xE6F7, 0x7FEA, 0xE6F8, 0x7FEC, 0xE6F9, 0x7FE6, 0xE6FA, 0x7FE8, 0xE6FB, 0x8064, 0xE6FC, 0x8067, 0xE6FD, 0x81A3, 0xE6FE, 0x819F, + 0xE740, 0x819E, 0xE741, 0x8195, 0xE742, 0x81A2, 0xE743, 0x8199, 0xE744, 0x8197, 0xE745, 0x8216, 0xE746, 0x824F, 0xE747, 0x8253, + 0xE748, 0x8252, 0xE749, 0x8250, 0xE74A, 0x824E, 0xE74B, 0x8251, 0xE74C, 0x8524, 0xE74D, 0x853B, 0xE74E, 0x850F, 0xE74F, 0x8500, + 0xE750, 0x8529, 0xE751, 0x850E, 0xE752, 0x8509, 0xE753, 0x850D, 0xE754, 0x851F, 0xE755, 0x850A, 0xE756, 0x8527, 0xE757, 0x851C, + 0xE758, 0x84FB, 0xE759, 0x852B, 0xE75A, 0x84FA, 0xE75B, 0x8508, 0xE75C, 0x850C, 0xE75D, 0x84F4, 0xE75E, 0x852A, 0xE75F, 0x84F2, + 0xE760, 0x8515, 0xE761, 0x84F7, 0xE762, 0x84EB, 0xE763, 0x84F3, 0xE764, 0x84FC, 0xE765, 0x8512, 0xE766, 0x84EA, 0xE767, 0x84E9, + 0xE768, 0x8516, 0xE769, 0x84FE, 0xE76A, 0x8528, 0xE76B, 0x851D, 0xE76C, 0x852E, 0xE76D, 0x8502, 0xE76E, 0x84FD, 0xE76F, 0x851E, + 0xE770, 0x84F6, 0xE771, 0x8531, 0xE772, 0x8526, 0xE773, 0x84E7, 0xE774, 0x84E8, 0xE775, 0x84F0, 0xE776, 0x84EF, 0xE777, 0x84F9, + 0xE778, 0x8518, 0xE779, 0x8520, 0xE77A, 0x8530, 0xE77B, 0x850B, 0xE77C, 0x8519, 0xE77D, 0x852F, 0xE77E, 0x8662, 0xE7A1, 0x8756, + 0xE7A2, 0x8763, 0xE7A3, 0x8764, 0xE7A4, 0x8777, 0xE7A5, 0x87E1, 0xE7A6, 0x8773, 0xE7A7, 0x8758, 0xE7A8, 0x8754, 0xE7A9, 0x875B, + 0xE7AA, 0x8752, 0xE7AB, 0x8761, 0xE7AC, 0x875A, 0xE7AD, 0x8751, 0xE7AE, 0x875E, 0xE7AF, 0x876D, 0xE7B0, 0x876A, 0xE7B1, 0x8750, + 0xE7B2, 0x874E, 0xE7B3, 0x875F, 0xE7B4, 0x875D, 0xE7B5, 0x876F, 0xE7B6, 0x876C, 0xE7B7, 0x877A, 0xE7B8, 0x876E, 0xE7B9, 0x875C, + 0xE7BA, 0x8765, 0xE7BB, 0x874F, 0xE7BC, 0x877B, 0xE7BD, 0x8775, 0xE7BE, 0x8762, 0xE7BF, 0x8767, 0xE7C0, 0x8769, 0xE7C1, 0x885A, + 0xE7C2, 0x8905, 0xE7C3, 0x890C, 0xE7C4, 0x8914, 0xE7C5, 0x890B, 0xE7C6, 0x8917, 0xE7C7, 0x8918, 0xE7C8, 0x8919, 0xE7C9, 0x8906, + 0xE7CA, 0x8916, 0xE7CB, 0x8911, 0xE7CC, 0x890E, 0xE7CD, 0x8909, 0xE7CE, 0x89A2, 0xE7CF, 0x89A4, 0xE7D0, 0x89A3, 0xE7D1, 0x89ED, + 0xE7D2, 0x89F0, 0xE7D3, 0x89EC, 0xE7D4, 0x8ACF, 0xE7D5, 0x8AC6, 0xE7D6, 0x8AB8, 0xE7D7, 0x8AD3, 0xE7D8, 0x8AD1, 0xE7D9, 0x8AD4, + 0xE7DA, 0x8AD5, 0xE7DB, 0x8ABB, 0xE7DC, 0x8AD7, 0xE7DD, 0x8ABE, 0xE7DE, 0x8AC0, 0xE7DF, 0x8AC5, 0xE7E0, 0x8AD8, 0xE7E1, 0x8AC3, + 0xE7E2, 0x8ABA, 0xE7E3, 0x8ABD, 0xE7E4, 0x8AD9, 0xE7E5, 0x8C3E, 0xE7E6, 0x8C4D, 0xE7E7, 0x8C8F, 0xE7E8, 0x8CE5, 0xE7E9, 0x8CDF, + 0xE7EA, 0x8CD9, 0xE7EB, 0x8CE8, 0xE7EC, 0x8CDA, 0xE7ED, 0x8CDD, 0xE7EE, 0x8CE7, 0xE7EF, 0x8DA0, 0xE7F0, 0x8D9C, 0xE7F1, 0x8DA1, + 0xE7F2, 0x8D9B, 0xE7F3, 0x8E20, 0xE7F4, 0x8E23, 0xE7F5, 0x8E25, 0xE7F6, 0x8E24, 0xE7F7, 0x8E2E, 0xE7F8, 0x8E15, 0xE7F9, 0x8E1B, + 0xE7FA, 0x8E16, 0xE7FB, 0x8E11, 0xE7FC, 0x8E19, 0xE7FD, 0x8E26, 0xE7FE, 0x8E27, 0xE840, 0x8E14, 0xE841, 0x8E12, 0xE842, 0x8E18, + 0xE843, 0x8E13, 0xE844, 0x8E1C, 0xE845, 0x8E17, 0xE846, 0x8E1A, 0xE847, 0x8F2C, 0xE848, 0x8F24, 0xE849, 0x8F18, 0xE84A, 0x8F1A, + 0xE84B, 0x8F20, 0xE84C, 0x8F23, 0xE84D, 0x8F16, 0xE84E, 0x8F17, 0xE84F, 0x9073, 0xE850, 0x9070, 0xE851, 0x906F, 0xE852, 0x9067, + 0xE853, 0x906B, 0xE854, 0x912F, 0xE855, 0x912B, 0xE856, 0x9129, 0xE857, 0x912A, 0xE858, 0x9132, 0xE859, 0x9126, 0xE85A, 0x912E, + 0xE85B, 0x9185, 0xE85C, 0x9186, 0xE85D, 0x918A, 0xE85E, 0x9181, 0xE85F, 0x9182, 0xE860, 0x9184, 0xE861, 0x9180, 0xE862, 0x92D0, + 0xE863, 0x92C3, 0xE864, 0x92C4, 0xE865, 0x92C0, 0xE866, 0x92D9, 0xE867, 0x92B6, 0xE868, 0x92CF, 0xE869, 0x92F1, 0xE86A, 0x92DF, + 0xE86B, 0x92D8, 0xE86C, 0x92E9, 0xE86D, 0x92D7, 0xE86E, 0x92DD, 0xE86F, 0x92CC, 0xE870, 0x92EF, 0xE871, 0x92C2, 0xE872, 0x92E8, + 0xE873, 0x92CA, 0xE874, 0x92C8, 0xE875, 0x92CE, 0xE876, 0x92E6, 0xE877, 0x92CD, 0xE878, 0x92D5, 0xE879, 0x92C9, 0xE87A, 0x92E0, + 0xE87B, 0x92DE, 0xE87C, 0x92E7, 0xE87D, 0x92D1, 0xE87E, 0x92D3, 0xE8A1, 0x92B5, 0xE8A2, 0x92E1, 0xE8A3, 0x92C6, 0xE8A4, 0x92B4, + 0xE8A5, 0x957C, 0xE8A6, 0x95AC, 0xE8A7, 0x95AB, 0xE8A8, 0x95AE, 0xE8A9, 0x95B0, 0xE8AA, 0x96A4, 0xE8AB, 0x96A2, 0xE8AC, 0x96D3, + 0xE8AD, 0x9705, 0xE8AE, 0x9708, 0xE8AF, 0x9702, 0xE8B0, 0x975A, 0xE8B1, 0x978A, 0xE8B2, 0x978E, 0xE8B3, 0x9788, 0xE8B4, 0x97D0, + 0xE8B5, 0x97CF, 0xE8B6, 0x981E, 0xE8B7, 0x981D, 0xE8B8, 0x9826, 0xE8B9, 0x9829, 0xE8BA, 0x9828, 0xE8BB, 0x9820, 0xE8BC, 0x981B, + 0xE8BD, 0x9827, 0xE8BE, 0x98B2, 0xE8BF, 0x9908, 0xE8C0, 0x98FA, 0xE8C1, 0x9911, 0xE8C2, 0x9914, 0xE8C3, 0x9916, 0xE8C4, 0x9917, + 0xE8C5, 0x9915, 0xE8C6, 0x99DC, 0xE8C7, 0x99CD, 0xE8C8, 0x99CF, 0xE8C9, 0x99D3, 0xE8CA, 0x99D4, 0xE8CB, 0x99CE, 0xE8CC, 0x99C9, + 0xE8CD, 0x99D6, 0xE8CE, 0x99D8, 0xE8CF, 0x99CB, 0xE8D0, 0x99D7, 0xE8D1, 0x99CC, 0xE8D2, 0x9AB3, 0xE8D3, 0x9AEC, 0xE8D4, 0x9AEB, + 0xE8D5, 0x9AF3, 0xE8D6, 0x9AF2, 0xE8D7, 0x9AF1, 0xE8D8, 0x9B46, 0xE8D9, 0x9B43, 0xE8DA, 0x9B67, 0xE8DB, 0x9B74, 0xE8DC, 0x9B71, + 0xE8DD, 0x9B66, 0xE8DE, 0x9B76, 0xE8DF, 0x9B75, 0xE8E0, 0x9B70, 0xE8E1, 0x9B68, 0xE8E2, 0x9B64, 0xE8E3, 0x9B6C, 0xE8E4, 0x9CFC, + 0xE8E5, 0x9CFA, 0xE8E6, 0x9CFD, 0xE8E7, 0x9CFF, 0xE8E8, 0x9CF7, 0xE8E9, 0x9D07, 0xE8EA, 0x9D00, 0xE8EB, 0x9CF9, 0xE8EC, 0x9CFB, + 0xE8ED, 0x9D08, 0xE8EE, 0x9D05, 0xE8EF, 0x9D04, 0xE8F0, 0x9E83, 0xE8F1, 0x9ED3, 0xE8F2, 0x9F0F, 0xE8F3, 0x9F10, 0xE8F4, 0x511C, + 0xE8F5, 0x5113, 0xE8F6, 0x5117, 0xE8F7, 0x511A, 0xE8F8, 0x5111, 0xE8F9, 0x51DE, 0xE8FA, 0x5334, 0xE8FB, 0x53E1, 0xE8FC, 0x5670, + 0xE8FD, 0x5660, 0xE8FE, 0x566E, 0xE940, 0x5673, 0xE941, 0x5666, 0xE942, 0x5663, 0xE943, 0x566D, 0xE944, 0x5672, 0xE945, 0x565E, + 0xE946, 0x5677, 0xE947, 0x571C, 0xE948, 0x571B, 0xE949, 0x58C8, 0xE94A, 0x58BD, 0xE94B, 0x58C9, 0xE94C, 0x58BF, 0xE94D, 0x58BA, + 0xE94E, 0x58C2, 0xE94F, 0x58BC, 0xE950, 0x58C6, 0xE951, 0x5B17, 0xE952, 0x5B19, 0xE953, 0x5B1B, 0xE954, 0x5B21, 0xE955, 0x5B14, + 0xE956, 0x5B13, 0xE957, 0x5B10, 0xE958, 0x5B16, 0xE959, 0x5B28, 0xE95A, 0x5B1A, 0xE95B, 0x5B20, 0xE95C, 0x5B1E, 0xE95D, 0x5BEF, + 0xE95E, 0x5DAC, 0xE95F, 0x5DB1, 0xE960, 0x5DA9, 0xE961, 0x5DA7, 0xE962, 0x5DB5, 0xE963, 0x5DB0, 0xE964, 0x5DAE, 0xE965, 0x5DAA, + 0xE966, 0x5DA8, 0xE967, 0x5DB2, 0xE968, 0x5DAD, 0xE969, 0x5DAF, 0xE96A, 0x5DB4, 0xE96B, 0x5E67, 0xE96C, 0x5E68, 0xE96D, 0x5E66, + 0xE96E, 0x5E6F, 0xE96F, 0x5EE9, 0xE970, 0x5EE7, 0xE971, 0x5EE6, 0xE972, 0x5EE8, 0xE973, 0x5EE5, 0xE974, 0x5F4B, 0xE975, 0x5FBC, + 0xE976, 0x619D, 0xE977, 0x61A8, 0xE978, 0x6196, 0xE979, 0x61C5, 0xE97A, 0x61B4, 0xE97B, 0x61C6, 0xE97C, 0x61C1, 0xE97D, 0x61CC, + 0xE97E, 0x61BA, 0xE9A1, 0x61BF, 0xE9A2, 0x61B8, 0xE9A3, 0x618C, 0xE9A4, 0x64D7, 0xE9A5, 0x64D6, 0xE9A6, 0x64D0, 0xE9A7, 0x64CF, + 0xE9A8, 0x64C9, 0xE9A9, 0x64BD, 0xE9AA, 0x6489, 0xE9AB, 0x64C3, 0xE9AC, 0x64DB, 0xE9AD, 0x64F3, 0xE9AE, 0x64D9, 0xE9AF, 0x6533, + 0xE9B0, 0x657F, 0xE9B1, 0x657C, 0xE9B2, 0x65A2, 0xE9B3, 0x66C8, 0xE9B4, 0x66BE, 0xE9B5, 0x66C0, 0xE9B6, 0x66CA, 0xE9B7, 0x66CB, + 0xE9B8, 0x66CF, 0xE9B9, 0x66BD, 0xE9BA, 0x66BB, 0xE9BB, 0x66BA, 0xE9BC, 0x66CC, 0xE9BD, 0x6723, 0xE9BE, 0x6A34, 0xE9BF, 0x6A66, + 0xE9C0, 0x6A49, 0xE9C1, 0x6A67, 0xE9C2, 0x6A32, 0xE9C3, 0x6A68, 0xE9C4, 0x6A3E, 0xE9C5, 0x6A5D, 0xE9C6, 0x6A6D, 0xE9C7, 0x6A76, + 0xE9C8, 0x6A5B, 0xE9C9, 0x6A51, 0xE9CA, 0x6A28, 0xE9CB, 0x6A5A, 0xE9CC, 0x6A3B, 0xE9CD, 0x6A3F, 0xE9CE, 0x6A41, 0xE9CF, 0x6A6A, + 0xE9D0, 0x6A64, 0xE9D1, 0x6A50, 0xE9D2, 0x6A4F, 0xE9D3, 0x6A54, 0xE9D4, 0x6A6F, 0xE9D5, 0x6A69, 0xE9D6, 0x6A60, 0xE9D7, 0x6A3C, + 0xE9D8, 0x6A5E, 0xE9D9, 0x6A56, 0xE9DA, 0x6A55, 0xE9DB, 0x6A4D, 0xE9DC, 0x6A4E, 0xE9DD, 0x6A46, 0xE9DE, 0x6B55, 0xE9DF, 0x6B54, + 0xE9E0, 0x6B56, 0xE9E1, 0x6BA7, 0xE9E2, 0x6BAA, 0xE9E3, 0x6BAB, 0xE9E4, 0x6BC8, 0xE9E5, 0x6BC7, 0xE9E6, 0x6C04, 0xE9E7, 0x6C03, + 0xE9E8, 0x6C06, 0xE9E9, 0x6FAD, 0xE9EA, 0x6FCB, 0xE9EB, 0x6FA3, 0xE9EC, 0x6FC7, 0xE9ED, 0x6FBC, 0xE9EE, 0x6FCE, 0xE9EF, 0x6FC8, + 0xE9F0, 0x6F5E, 0xE9F1, 0x6FC4, 0xE9F2, 0x6FBD, 0xE9F3, 0x6F9E, 0xE9F4, 0x6FCA, 0xE9F5, 0x6FA8, 0xE9F6, 0x7004, 0xE9F7, 0x6FA5, + 0xE9F8, 0x6FAE, 0xE9F9, 0x6FBA, 0xE9FA, 0x6FAC, 0xE9FB, 0x6FAA, 0xE9FC, 0x6FCF, 0xE9FD, 0x6FBF, 0xE9FE, 0x6FB8, 0xEA40, 0x6FA2, + 0xEA41, 0x6FC9, 0xEA42, 0x6FAB, 0xEA43, 0x6FCD, 0xEA44, 0x6FAF, 0xEA45, 0x6FB2, 0xEA46, 0x6FB0, 0xEA47, 0x71C5, 0xEA48, 0x71C2, + 0xEA49, 0x71BF, 0xEA4A, 0x71B8, 0xEA4B, 0x71D6, 0xEA4C, 0x71C0, 0xEA4D, 0x71C1, 0xEA4E, 0x71CB, 0xEA4F, 0x71D4, 0xEA50, 0x71CA, + 0xEA51, 0x71C7, 0xEA52, 0x71CF, 0xEA53, 0x71BD, 0xEA54, 0x71D8, 0xEA55, 0x71BC, 0xEA56, 0x71C6, 0xEA57, 0x71DA, 0xEA58, 0x71DB, + 0xEA59, 0x729D, 0xEA5A, 0x729E, 0xEA5B, 0x7369, 0xEA5C, 0x7366, 0xEA5D, 0x7367, 0xEA5E, 0x736C, 0xEA5F, 0x7365, 0xEA60, 0x736B, + 0xEA61, 0x736A, 0xEA62, 0x747F, 0xEA63, 0x749A, 0xEA64, 0x74A0, 0xEA65, 0x7494, 0xEA66, 0x7492, 0xEA67, 0x7495, 0xEA68, 0x74A1, + 0xEA69, 0x750B, 0xEA6A, 0x7580, 0xEA6B, 0x762F, 0xEA6C, 0x762D, 0xEA6D, 0x7631, 0xEA6E, 0x763D, 0xEA6F, 0x7633, 0xEA70, 0x763C, + 0xEA71, 0x7635, 0xEA72, 0x7632, 0xEA73, 0x7630, 0xEA74, 0x76BB, 0xEA75, 0x76E6, 0xEA76, 0x779A, 0xEA77, 0x779D, 0xEA78, 0x77A1, + 0xEA79, 0x779C, 0xEA7A, 0x779B, 0xEA7B, 0x77A2, 0xEA7C, 0x77A3, 0xEA7D, 0x7795, 0xEA7E, 0x7799, 0xEAA1, 0x7797, 0xEAA2, 0x78DD, + 0xEAA3, 0x78E9, 0xEAA4, 0x78E5, 0xEAA5, 0x78EA, 0xEAA6, 0x78DE, 0xEAA7, 0x78E3, 0xEAA8, 0x78DB, 0xEAA9, 0x78E1, 0xEAAA, 0x78E2, + 0xEAAB, 0x78ED, 0xEAAC, 0x78DF, 0xEAAD, 0x78E0, 0xEAAE, 0x79A4, 0xEAAF, 0x7A44, 0xEAB0, 0x7A48, 0xEAB1, 0x7A47, 0xEAB2, 0x7AB6, + 0xEAB3, 0x7AB8, 0xEAB4, 0x7AB5, 0xEAB5, 0x7AB1, 0xEAB6, 0x7AB7, 0xEAB7, 0x7BDE, 0xEAB8, 0x7BE3, 0xEAB9, 0x7BE7, 0xEABA, 0x7BDD, + 0xEABB, 0x7BD5, 0xEABC, 0x7BE5, 0xEABD, 0x7BDA, 0xEABE, 0x7BE8, 0xEABF, 0x7BF9, 0xEAC0, 0x7BD4, 0xEAC1, 0x7BEA, 0xEAC2, 0x7BE2, + 0xEAC3, 0x7BDC, 0xEAC4, 0x7BEB, 0xEAC5, 0x7BD8, 0xEAC6, 0x7BDF, 0xEAC7, 0x7CD2, 0xEAC8, 0x7CD4, 0xEAC9, 0x7CD7, 0xEACA, 0x7CD0, + 0xEACB, 0x7CD1, 0xEACC, 0x7E12, 0xEACD, 0x7E21, 0xEACE, 0x7E17, 0xEACF, 0x7E0C, 0xEAD0, 0x7E1F, 0xEAD1, 0x7E20, 0xEAD2, 0x7E13, + 0xEAD3, 0x7E0E, 0xEAD4, 0x7E1C, 0xEAD5, 0x7E15, 0xEAD6, 0x7E1A, 0xEAD7, 0x7E22, 0xEAD8, 0x7E0B, 0xEAD9, 0x7E0F, 0xEADA, 0x7E16, + 0xEADB, 0x7E0D, 0xEADC, 0x7E14, 0xEADD, 0x7E25, 0xEADE, 0x7E24, 0xEADF, 0x7F43, 0xEAE0, 0x7F7B, 0xEAE1, 0x7F7C, 0xEAE2, 0x7F7A, + 0xEAE3, 0x7FB1, 0xEAE4, 0x7FEF, 0xEAE5, 0x802A, 0xEAE6, 0x8029, 0xEAE7, 0x806C, 0xEAE8, 0x81B1, 0xEAE9, 0x81A6, 0xEAEA, 0x81AE, + 0xEAEB, 0x81B9, 0xEAEC, 0x81B5, 0xEAED, 0x81AB, 0xEAEE, 0x81B0, 0xEAEF, 0x81AC, 0xEAF0, 0x81B4, 0xEAF1, 0x81B2, 0xEAF2, 0x81B7, + 0xEAF3, 0x81A7, 0xEAF4, 0x81F2, 0xEAF5, 0x8255, 0xEAF6, 0x8256, 0xEAF7, 0x8257, 0xEAF8, 0x8556, 0xEAF9, 0x8545, 0xEAFA, 0x856B, + 0xEAFB, 0x854D, 0xEAFC, 0x8553, 0xEAFD, 0x8561, 0xEAFE, 0x8558, 0xEB40, 0x8540, 0xEB41, 0x8546, 0xEB42, 0x8564, 0xEB43, 0x8541, + 0xEB44, 0x8562, 0xEB45, 0x8544, 0xEB46, 0x8551, 0xEB47, 0x8547, 0xEB48, 0x8563, 0xEB49, 0x853E, 0xEB4A, 0x855B, 0xEB4B, 0x8571, + 0xEB4C, 0x854E, 0xEB4D, 0x856E, 0xEB4E, 0x8575, 0xEB4F, 0x8555, 0xEB50, 0x8567, 0xEB51, 0x8560, 0xEB52, 0x858C, 0xEB53, 0x8566, + 0xEB54, 0x855D, 0xEB55, 0x8554, 0xEB56, 0x8565, 0xEB57, 0x856C, 0xEB58, 0x8663, 0xEB59, 0x8665, 0xEB5A, 0x8664, 0xEB5B, 0x879B, + 0xEB5C, 0x878F, 0xEB5D, 0x8797, 0xEB5E, 0x8793, 0xEB5F, 0x8792, 0xEB60, 0x8788, 0xEB61, 0x8781, 0xEB62, 0x8796, 0xEB63, 0x8798, + 0xEB64, 0x8779, 0xEB65, 0x8787, 0xEB66, 0x87A3, 0xEB67, 0x8785, 0xEB68, 0x8790, 0xEB69, 0x8791, 0xEB6A, 0x879D, 0xEB6B, 0x8784, + 0xEB6C, 0x8794, 0xEB6D, 0x879C, 0xEB6E, 0x879A, 0xEB6F, 0x8789, 0xEB70, 0x891E, 0xEB71, 0x8926, 0xEB72, 0x8930, 0xEB73, 0x892D, + 0xEB74, 0x892E, 0xEB75, 0x8927, 0xEB76, 0x8931, 0xEB77, 0x8922, 0xEB78, 0x8929, 0xEB79, 0x8923, 0xEB7A, 0x892F, 0xEB7B, 0x892C, + 0xEB7C, 0x891F, 0xEB7D, 0x89F1, 0xEB7E, 0x8AE0, 0xEBA1, 0x8AE2, 0xEBA2, 0x8AF2, 0xEBA3, 0x8AF4, 0xEBA4, 0x8AF5, 0xEBA5, 0x8ADD, + 0xEBA6, 0x8B14, 0xEBA7, 0x8AE4, 0xEBA8, 0x8ADF, 0xEBA9, 0x8AF0, 0xEBAA, 0x8AC8, 0xEBAB, 0x8ADE, 0xEBAC, 0x8AE1, 0xEBAD, 0x8AE8, + 0xEBAE, 0x8AFF, 0xEBAF, 0x8AEF, 0xEBB0, 0x8AFB, 0xEBB1, 0x8C91, 0xEBB2, 0x8C92, 0xEBB3, 0x8C90, 0xEBB4, 0x8CF5, 0xEBB5, 0x8CEE, + 0xEBB6, 0x8CF1, 0xEBB7, 0x8CF0, 0xEBB8, 0x8CF3, 0xEBB9, 0x8D6C, 0xEBBA, 0x8D6E, 0xEBBB, 0x8DA5, 0xEBBC, 0x8DA7, 0xEBBD, 0x8E33, + 0xEBBE, 0x8E3E, 0xEBBF, 0x8E38, 0xEBC0, 0x8E40, 0xEBC1, 0x8E45, 0xEBC2, 0x8E36, 0xEBC3, 0x8E3C, 0xEBC4, 0x8E3D, 0xEBC5, 0x8E41, + 0xEBC6, 0x8E30, 0xEBC7, 0x8E3F, 0xEBC8, 0x8EBD, 0xEBC9, 0x8F36, 0xEBCA, 0x8F2E, 0xEBCB, 0x8F35, 0xEBCC, 0x8F32, 0xEBCD, 0x8F39, + 0xEBCE, 0x8F37, 0xEBCF, 0x8F34, 0xEBD0, 0x9076, 0xEBD1, 0x9079, 0xEBD2, 0x907B, 0xEBD3, 0x9086, 0xEBD4, 0x90FA, 0xEBD5, 0x9133, + 0xEBD6, 0x9135, 0xEBD7, 0x9136, 0xEBD8, 0x9193, 0xEBD9, 0x9190, 0xEBDA, 0x9191, 0xEBDB, 0x918D, 0xEBDC, 0x918F, 0xEBDD, 0x9327, + 0xEBDE, 0x931E, 0xEBDF, 0x9308, 0xEBE0, 0x931F, 0xEBE1, 0x9306, 0xEBE2, 0x930F, 0xEBE3, 0x937A, 0xEBE4, 0x9338, 0xEBE5, 0x933C, + 0xEBE6, 0x931B, 0xEBE7, 0x9323, 0xEBE8, 0x9312, 0xEBE9, 0x9301, 0xEBEA, 0x9346, 0xEBEB, 0x932D, 0xEBEC, 0x930E, 0xEBED, 0x930D, + 0xEBEE, 0x92CB, 0xEBEF, 0x931D, 0xEBF0, 0x92FA, 0xEBF1, 0x9325, 0xEBF2, 0x9313, 0xEBF3, 0x92F9, 0xEBF4, 0x92F7, 0xEBF5, 0x9334, + 0xEBF6, 0x9302, 0xEBF7, 0x9324, 0xEBF8, 0x92FF, 0xEBF9, 0x9329, 0xEBFA, 0x9339, 0xEBFB, 0x9335, 0xEBFC, 0x932A, 0xEBFD, 0x9314, + 0xEBFE, 0x930C, 0xEC40, 0x930B, 0xEC41, 0x92FE, 0xEC42, 0x9309, 0xEC43, 0x9300, 0xEC44, 0x92FB, 0xEC45, 0x9316, 0xEC46, 0x95BC, + 0xEC47, 0x95CD, 0xEC48, 0x95BE, 0xEC49, 0x95B9, 0xEC4A, 0x95BA, 0xEC4B, 0x95B6, 0xEC4C, 0x95BF, 0xEC4D, 0x95B5, 0xEC4E, 0x95BD, + 0xEC4F, 0x96A9, 0xEC50, 0x96D4, 0xEC51, 0x970B, 0xEC52, 0x9712, 0xEC53, 0x9710, 0xEC54, 0x9799, 0xEC55, 0x9797, 0xEC56, 0x9794, + 0xEC57, 0x97F0, 0xEC58, 0x97F8, 0xEC59, 0x9835, 0xEC5A, 0x982F, 0xEC5B, 0x9832, 0xEC5C, 0x9924, 0xEC5D, 0x991F, 0xEC5E, 0x9927, + 0xEC5F, 0x9929, 0xEC60, 0x999E, 0xEC61, 0x99EE, 0xEC62, 0x99EC, 0xEC63, 0x99E5, 0xEC64, 0x99E4, 0xEC65, 0x99F0, 0xEC66, 0x99E3, + 0xEC67, 0x99EA, 0xEC68, 0x99E9, 0xEC69, 0x99E7, 0xEC6A, 0x9AB9, 0xEC6B, 0x9ABF, 0xEC6C, 0x9AB4, 0xEC6D, 0x9ABB, 0xEC6E, 0x9AF6, + 0xEC6F, 0x9AFA, 0xEC70, 0x9AF9, 0xEC71, 0x9AF7, 0xEC72, 0x9B33, 0xEC73, 0x9B80, 0xEC74, 0x9B85, 0xEC75, 0x9B87, 0xEC76, 0x9B7C, + 0xEC77, 0x9B7E, 0xEC78, 0x9B7B, 0xEC79, 0x9B82, 0xEC7A, 0x9B93, 0xEC7B, 0x9B92, 0xEC7C, 0x9B90, 0xEC7D, 0x9B7A, 0xEC7E, 0x9B95, + 0xECA1, 0x9B7D, 0xECA2, 0x9B88, 0xECA3, 0x9D25, 0xECA4, 0x9D17, 0xECA5, 0x9D20, 0xECA6, 0x9D1E, 0xECA7, 0x9D14, 0xECA8, 0x9D29, + 0xECA9, 0x9D1D, 0xECAA, 0x9D18, 0xECAB, 0x9D22, 0xECAC, 0x9D10, 0xECAD, 0x9D19, 0xECAE, 0x9D1F, 0xECAF, 0x9E88, 0xECB0, 0x9E86, + 0xECB1, 0x9E87, 0xECB2, 0x9EAE, 0xECB3, 0x9EAD, 0xECB4, 0x9ED5, 0xECB5, 0x9ED6, 0xECB6, 0x9EFA, 0xECB7, 0x9F12, 0xECB8, 0x9F3D, + 0xECB9, 0x5126, 0xECBA, 0x5125, 0xECBB, 0x5122, 0xECBC, 0x5124, 0xECBD, 0x5120, 0xECBE, 0x5129, 0xECBF, 0x52F4, 0xECC0, 0x5693, + 0xECC1, 0x568C, 0xECC2, 0x568D, 0xECC3, 0x5686, 0xECC4, 0x5684, 0xECC5, 0x5683, 0xECC6, 0x567E, 0xECC7, 0x5682, 0xECC8, 0x567F, + 0xECC9, 0x5681, 0xECCA, 0x58D6, 0xECCB, 0x58D4, 0xECCC, 0x58CF, 0xECCD, 0x58D2, 0xECCE, 0x5B2D, 0xECCF, 0x5B25, 0xECD0, 0x5B32, + 0xECD1, 0x5B23, 0xECD2, 0x5B2C, 0xECD3, 0x5B27, 0xECD4, 0x5B26, 0xECD5, 0x5B2F, 0xECD6, 0x5B2E, 0xECD7, 0x5B7B, 0xECD8, 0x5BF1, + 0xECD9, 0x5BF2, 0xECDA, 0x5DB7, 0xECDB, 0x5E6C, 0xECDC, 0x5E6A, 0xECDD, 0x5FBE, 0xECDE, 0x5FBB, 0xECDF, 0x61C3, 0xECE0, 0x61B5, + 0xECE1, 0x61BC, 0xECE2, 0x61E7, 0xECE3, 0x61E0, 0xECE4, 0x61E5, 0xECE5, 0x61E4, 0xECE6, 0x61E8, 0xECE7, 0x61DE, 0xECE8, 0x64EF, + 0xECE9, 0x64E9, 0xECEA, 0x64E3, 0xECEB, 0x64EB, 0xECEC, 0x64E4, 0xECED, 0x64E8, 0xECEE, 0x6581, 0xECEF, 0x6580, 0xECF0, 0x65B6, + 0xECF1, 0x65DA, 0xECF2, 0x66D2, 0xECF3, 0x6A8D, 0xECF4, 0x6A96, 0xECF5, 0x6A81, 0xECF6, 0x6AA5, 0xECF7, 0x6A89, 0xECF8, 0x6A9F, + 0xECF9, 0x6A9B, 0xECFA, 0x6AA1, 0xECFB, 0x6A9E, 0xECFC, 0x6A87, 0xECFD, 0x6A93, 0xECFE, 0x6A8E, 0xED40, 0x6A95, 0xED41, 0x6A83, + 0xED42, 0x6AA8, 0xED43, 0x6AA4, 0xED44, 0x6A91, 0xED45, 0x6A7F, 0xED46, 0x6AA6, 0xED47, 0x6A9A, 0xED48, 0x6A85, 0xED49, 0x6A8C, + 0xED4A, 0x6A92, 0xED4B, 0x6B5B, 0xED4C, 0x6BAD, 0xED4D, 0x6C09, 0xED4E, 0x6FCC, 0xED4F, 0x6FA9, 0xED50, 0x6FF4, 0xED51, 0x6FD4, + 0xED52, 0x6FE3, 0xED53, 0x6FDC, 0xED54, 0x6FED, 0xED55, 0x6FE7, 0xED56, 0x6FE6, 0xED57, 0x6FDE, 0xED58, 0x6FF2, 0xED59, 0x6FDD, + 0xED5A, 0x6FE2, 0xED5B, 0x6FE8, 0xED5C, 0x71E1, 0xED5D, 0x71F1, 0xED5E, 0x71E8, 0xED5F, 0x71F2, 0xED60, 0x71E4, 0xED61, 0x71F0, + 0xED62, 0x71E2, 0xED63, 0x7373, 0xED64, 0x736E, 0xED65, 0x736F, 0xED66, 0x7497, 0xED67, 0x74B2, 0xED68, 0x74AB, 0xED69, 0x7490, + 0xED6A, 0x74AA, 0xED6B, 0x74AD, 0xED6C, 0x74B1, 0xED6D, 0x74A5, 0xED6E, 0x74AF, 0xED6F, 0x7510, 0xED70, 0x7511, 0xED71, 0x7512, + 0xED72, 0x750F, 0xED73, 0x7584, 0xED74, 0x7643, 0xED75, 0x7648, 0xED76, 0x7649, 0xED77, 0x7647, 0xED78, 0x76A4, 0xED79, 0x76E9, + 0xED7A, 0x77B5, 0xED7B, 0x77AB, 0xED7C, 0x77B2, 0xED7D, 0x77B7, 0xED7E, 0x77B6, 0xEDA1, 0x77B4, 0xEDA2, 0x77B1, 0xEDA3, 0x77A8, + 0xEDA4, 0x77F0, 0xEDA5, 0x78F3, 0xEDA6, 0x78FD, 0xEDA7, 0x7902, 0xEDA8, 0x78FB, 0xEDA9, 0x78FC, 0xEDAA, 0x78F2, 0xEDAB, 0x7905, + 0xEDAC, 0x78F9, 0xEDAD, 0x78FE, 0xEDAE, 0x7904, 0xEDAF, 0x79AB, 0xEDB0, 0x79A8, 0xEDB1, 0x7A5C, 0xEDB2, 0x7A5B, 0xEDB3, 0x7A56, + 0xEDB4, 0x7A58, 0xEDB5, 0x7A54, 0xEDB6, 0x7A5A, 0xEDB7, 0x7ABE, 0xEDB8, 0x7AC0, 0xEDB9, 0x7AC1, 0xEDBA, 0x7C05, 0xEDBB, 0x7C0F, + 0xEDBC, 0x7BF2, 0xEDBD, 0x7C00, 0xEDBE, 0x7BFF, 0xEDBF, 0x7BFB, 0xEDC0, 0x7C0E, 0xEDC1, 0x7BF4, 0xEDC2, 0x7C0B, 0xEDC3, 0x7BF3, + 0xEDC4, 0x7C02, 0xEDC5, 0x7C09, 0xEDC6, 0x7C03, 0xEDC7, 0x7C01, 0xEDC8, 0x7BF8, 0xEDC9, 0x7BFD, 0xEDCA, 0x7C06, 0xEDCB, 0x7BF0, + 0xEDCC, 0x7BF1, 0xEDCD, 0x7C10, 0xEDCE, 0x7C0A, 0xEDCF, 0x7CE8, 0xEDD0, 0x7E2D, 0xEDD1, 0x7E3C, 0xEDD2, 0x7E42, 0xEDD3, 0x7E33, + 0xEDD4, 0x9848, 0xEDD5, 0x7E38, 0xEDD6, 0x7E2A, 0xEDD7, 0x7E49, 0xEDD8, 0x7E40, 0xEDD9, 0x7E47, 0xEDDA, 0x7E29, 0xEDDB, 0x7E4C, + 0xEDDC, 0x7E30, 0xEDDD, 0x7E3B, 0xEDDE, 0x7E36, 0xEDDF, 0x7E44, 0xEDE0, 0x7E3A, 0xEDE1, 0x7F45, 0xEDE2, 0x7F7F, 0xEDE3, 0x7F7E, + 0xEDE4, 0x7F7D, 0xEDE5, 0x7FF4, 0xEDE6, 0x7FF2, 0xEDE7, 0x802C, 0xEDE8, 0x81BB, 0xEDE9, 0x81C4, 0xEDEA, 0x81CC, 0xEDEB, 0x81CA, + 0xEDEC, 0x81C5, 0xEDED, 0x81C7, 0xEDEE, 0x81BC, 0xEDEF, 0x81E9, 0xEDF0, 0x825B, 0xEDF1, 0x825A, 0xEDF2, 0x825C, 0xEDF3, 0x8583, + 0xEDF4, 0x8580, 0xEDF5, 0x858F, 0xEDF6, 0x85A7, 0xEDF7, 0x8595, 0xEDF8, 0x85A0, 0xEDF9, 0x858B, 0xEDFA, 0x85A3, 0xEDFB, 0x857B, + 0xEDFC, 0x85A4, 0xEDFD, 0x859A, 0xEDFE, 0x859E, 0xEE40, 0x8577, 0xEE41, 0x857C, 0xEE42, 0x8589, 0xEE43, 0x85A1, 0xEE44, 0x857A, + 0xEE45, 0x8578, 0xEE46, 0x8557, 0xEE47, 0x858E, 0xEE48, 0x8596, 0xEE49, 0x8586, 0xEE4A, 0x858D, 0xEE4B, 0x8599, 0xEE4C, 0x859D, + 0xEE4D, 0x8581, 0xEE4E, 0x85A2, 0xEE4F, 0x8582, 0xEE50, 0x8588, 0xEE51, 0x8585, 0xEE52, 0x8579, 0xEE53, 0x8576, 0xEE54, 0x8598, + 0xEE55, 0x8590, 0xEE56, 0x859F, 0xEE57, 0x8668, 0xEE58, 0x87BE, 0xEE59, 0x87AA, 0xEE5A, 0x87AD, 0xEE5B, 0x87C5, 0xEE5C, 0x87B0, + 0xEE5D, 0x87AC, 0xEE5E, 0x87B9, 0xEE5F, 0x87B5, 0xEE60, 0x87BC, 0xEE61, 0x87AE, 0xEE62, 0x87C9, 0xEE63, 0x87C3, 0xEE64, 0x87C2, + 0xEE65, 0x87CC, 0xEE66, 0x87B7, 0xEE67, 0x87AF, 0xEE68, 0x87C4, 0xEE69, 0x87CA, 0xEE6A, 0x87B4, 0xEE6B, 0x87B6, 0xEE6C, 0x87BF, + 0xEE6D, 0x87B8, 0xEE6E, 0x87BD, 0xEE6F, 0x87DE, 0xEE70, 0x87B2, 0xEE71, 0x8935, 0xEE72, 0x8933, 0xEE73, 0x893C, 0xEE74, 0x893E, + 0xEE75, 0x8941, 0xEE76, 0x8952, 0xEE77, 0x8937, 0xEE78, 0x8942, 0xEE79, 0x89AD, 0xEE7A, 0x89AF, 0xEE7B, 0x89AE, 0xEE7C, 0x89F2, + 0xEE7D, 0x89F3, 0xEE7E, 0x8B1E, 0xEEA1, 0x8B18, 0xEEA2, 0x8B16, 0xEEA3, 0x8B11, 0xEEA4, 0x8B05, 0xEEA5, 0x8B0B, 0xEEA6, 0x8B22, + 0xEEA7, 0x8B0F, 0xEEA8, 0x8B12, 0xEEA9, 0x8B15, 0xEEAA, 0x8B07, 0xEEAB, 0x8B0D, 0xEEAC, 0x8B08, 0xEEAD, 0x8B06, 0xEEAE, 0x8B1C, + 0xEEAF, 0x8B13, 0xEEB0, 0x8B1A, 0xEEB1, 0x8C4F, 0xEEB2, 0x8C70, 0xEEB3, 0x8C72, 0xEEB4, 0x8C71, 0xEEB5, 0x8C6F, 0xEEB6, 0x8C95, + 0xEEB7, 0x8C94, 0xEEB8, 0x8CF9, 0xEEB9, 0x8D6F, 0xEEBA, 0x8E4E, 0xEEBB, 0x8E4D, 0xEEBC, 0x8E53, 0xEEBD, 0x8E50, 0xEEBE, 0x8E4C, + 0xEEBF, 0x8E47, 0xEEC0, 0x8F43, 0xEEC1, 0x8F40, 0xEEC2, 0x9085, 0xEEC3, 0x907E, 0xEEC4, 0x9138, 0xEEC5, 0x919A, 0xEEC6, 0x91A2, + 0xEEC7, 0x919B, 0xEEC8, 0x9199, 0xEEC9, 0x919F, 0xEECA, 0x91A1, 0xEECB, 0x919D, 0xEECC, 0x91A0, 0xEECD, 0x93A1, 0xEECE, 0x9383, + 0xEECF, 0x93AF, 0xEED0, 0x9364, 0xEED1, 0x9356, 0xEED2, 0x9347, 0xEED3, 0x937C, 0xEED4, 0x9358, 0xEED5, 0x935C, 0xEED6, 0x9376, + 0xEED7, 0x9349, 0xEED8, 0x9350, 0xEED9, 0x9351, 0xEEDA, 0x9360, 0xEEDB, 0x936D, 0xEEDC, 0x938F, 0xEEDD, 0x934C, 0xEEDE, 0x936A, + 0xEEDF, 0x9379, 0xEEE0, 0x9357, 0xEEE1, 0x9355, 0xEEE2, 0x9352, 0xEEE3, 0x934F, 0xEEE4, 0x9371, 0xEEE5, 0x9377, 0xEEE6, 0x937B, + 0xEEE7, 0x9361, 0xEEE8, 0x935E, 0xEEE9, 0x9363, 0xEEEA, 0x9367, 0xEEEB, 0x9380, 0xEEEC, 0x934E, 0xEEED, 0x9359, 0xEEEE, 0x95C7, + 0xEEEF, 0x95C0, 0xEEF0, 0x95C9, 0xEEF1, 0x95C3, 0xEEF2, 0x95C5, 0xEEF3, 0x95B7, 0xEEF4, 0x96AE, 0xEEF5, 0x96B0, 0xEEF6, 0x96AC, + 0xEEF7, 0x9720, 0xEEF8, 0x971F, 0xEEF9, 0x9718, 0xEEFA, 0x971D, 0xEEFB, 0x9719, 0xEEFC, 0x979A, 0xEEFD, 0x97A1, 0xEEFE, 0x979C, + 0xEF40, 0x979E, 0xEF41, 0x979D, 0xEF42, 0x97D5, 0xEF43, 0x97D4, 0xEF44, 0x97F1, 0xEF45, 0x9841, 0xEF46, 0x9844, 0xEF47, 0x984A, + 0xEF48, 0x9849, 0xEF49, 0x9845, 0xEF4A, 0x9843, 0xEF4B, 0x9925, 0xEF4C, 0x992B, 0xEF4D, 0x992C, 0xEF4E, 0x992A, 0xEF4F, 0x9933, + 0xEF50, 0x9932, 0xEF51, 0x992F, 0xEF52, 0x992D, 0xEF53, 0x9931, 0xEF54, 0x9930, 0xEF55, 0x9998, 0xEF56, 0x99A3, 0xEF57, 0x99A1, + 0xEF58, 0x9A02, 0xEF59, 0x99FA, 0xEF5A, 0x99F4, 0xEF5B, 0x99F7, 0xEF5C, 0x99F9, 0xEF5D, 0x99F8, 0xEF5E, 0x99F6, 0xEF5F, 0x99FB, + 0xEF60, 0x99FD, 0xEF61, 0x99FE, 0xEF62, 0x99FC, 0xEF63, 0x9A03, 0xEF64, 0x9ABE, 0xEF65, 0x9AFE, 0xEF66, 0x9AFD, 0xEF67, 0x9B01, + 0xEF68, 0x9AFC, 0xEF69, 0x9B48, 0xEF6A, 0x9B9A, 0xEF6B, 0x9BA8, 0xEF6C, 0x9B9E, 0xEF6D, 0x9B9B, 0xEF6E, 0x9BA6, 0xEF6F, 0x9BA1, + 0xEF70, 0x9BA5, 0xEF71, 0x9BA4, 0xEF72, 0x9B86, 0xEF73, 0x9BA2, 0xEF74, 0x9BA0, 0xEF75, 0x9BAF, 0xEF76, 0x9D33, 0xEF77, 0x9D41, + 0xEF78, 0x9D67, 0xEF79, 0x9D36, 0xEF7A, 0x9D2E, 0xEF7B, 0x9D2F, 0xEF7C, 0x9D31, 0xEF7D, 0x9D38, 0xEF7E, 0x9D30, 0xEFA1, 0x9D45, + 0xEFA2, 0x9D42, 0xEFA3, 0x9D43, 0xEFA4, 0x9D3E, 0xEFA5, 0x9D37, 0xEFA6, 0x9D40, 0xEFA7, 0x9D3D, 0xEFA8, 0x7FF5, 0xEFA9, 0x9D2D, + 0xEFAA, 0x9E8A, 0xEFAB, 0x9E89, 0xEFAC, 0x9E8D, 0xEFAD, 0x9EB0, 0xEFAE, 0x9EC8, 0xEFAF, 0x9EDA, 0xEFB0, 0x9EFB, 0xEFB1, 0x9EFF, + 0xEFB2, 0x9F24, 0xEFB3, 0x9F23, 0xEFB4, 0x9F22, 0xEFB5, 0x9F54, 0xEFB6, 0x9FA0, 0xEFB7, 0x5131, 0xEFB8, 0x512D, 0xEFB9, 0x512E, + 0xEFBA, 0x5698, 0xEFBB, 0x569C, 0xEFBC, 0x5697, 0xEFBD, 0x569A, 0xEFBE, 0x569D, 0xEFBF, 0x5699, 0xEFC0, 0x5970, 0xEFC1, 0x5B3C, + 0xEFC2, 0x5C69, 0xEFC3, 0x5C6A, 0xEFC4, 0x5DC0, 0xEFC5, 0x5E6D, 0xEFC6, 0x5E6E, 0xEFC7, 0x61D8, 0xEFC8, 0x61DF, 0xEFC9, 0x61ED, + 0xEFCA, 0x61EE, 0xEFCB, 0x61F1, 0xEFCC, 0x61EA, 0xEFCD, 0x61F0, 0xEFCE, 0x61EB, 0xEFCF, 0x61D6, 0xEFD0, 0x61E9, 0xEFD1, 0x64FF, + 0xEFD2, 0x6504, 0xEFD3, 0x64FD, 0xEFD4, 0x64F8, 0xEFD5, 0x6501, 0xEFD6, 0x6503, 0xEFD7, 0x64FC, 0xEFD8, 0x6594, 0xEFD9, 0x65DB, + 0xEFDA, 0x66DA, 0xEFDB, 0x66DB, 0xEFDC, 0x66D8, 0xEFDD, 0x6AC5, 0xEFDE, 0x6AB9, 0xEFDF, 0x6ABD, 0xEFE0, 0x6AE1, 0xEFE1, 0x6AC6, + 0xEFE2, 0x6ABA, 0xEFE3, 0x6AB6, 0xEFE4, 0x6AB7, 0xEFE5, 0x6AC7, 0xEFE6, 0x6AB4, 0xEFE7, 0x6AAD, 0xEFE8, 0x6B5E, 0xEFE9, 0x6BC9, + 0xEFEA, 0x6C0B, 0xEFEB, 0x7007, 0xEFEC, 0x700C, 0xEFED, 0x700D, 0xEFEE, 0x7001, 0xEFEF, 0x7005, 0xEFF0, 0x7014, 0xEFF1, 0x700E, + 0xEFF2, 0x6FFF, 0xEFF3, 0x7000, 0xEFF4, 0x6FFB, 0xEFF5, 0x7026, 0xEFF6, 0x6FFC, 0xEFF7, 0x6FF7, 0xEFF8, 0x700A, 0xEFF9, 0x7201, + 0xEFFA, 0x71FF, 0xEFFB, 0x71F9, 0xEFFC, 0x7203, 0xEFFD, 0x71FD, 0xEFFE, 0x7376, 0xF040, 0x74B8, 0xF041, 0x74C0, 0xF042, 0x74B5, + 0xF043, 0x74C1, 0xF044, 0x74BE, 0xF045, 0x74B6, 0xF046, 0x74BB, 0xF047, 0x74C2, 0xF048, 0x7514, 0xF049, 0x7513, 0xF04A, 0x765C, + 0xF04B, 0x7664, 0xF04C, 0x7659, 0xF04D, 0x7650, 0xF04E, 0x7653, 0xF04F, 0x7657, 0xF050, 0x765A, 0xF051, 0x76A6, 0xF052, 0x76BD, + 0xF053, 0x76EC, 0xF054, 0x77C2, 0xF055, 0x77BA, 0xF056, 0x78FF, 0xF057, 0x790C, 0xF058, 0x7913, 0xF059, 0x7914, 0xF05A, 0x7909, + 0xF05B, 0x7910, 0xF05C, 0x7912, 0xF05D, 0x7911, 0xF05E, 0x79AD, 0xF05F, 0x79AC, 0xF060, 0x7A5F, 0xF061, 0x7C1C, 0xF062, 0x7C29, + 0xF063, 0x7C19, 0xF064, 0x7C20, 0xF065, 0x7C1F, 0xF066, 0x7C2D, 0xF067, 0x7C1D, 0xF068, 0x7C26, 0xF069, 0x7C28, 0xF06A, 0x7C22, + 0xF06B, 0x7C25, 0xF06C, 0x7C30, 0xF06D, 0x7E5C, 0xF06E, 0x7E50, 0xF06F, 0x7E56, 0xF070, 0x7E63, 0xF071, 0x7E58, 0xF072, 0x7E62, + 0xF073, 0x7E5F, 0xF074, 0x7E51, 0xF075, 0x7E60, 0xF076, 0x7E57, 0xF077, 0x7E53, 0xF078, 0x7FB5, 0xF079, 0x7FB3, 0xF07A, 0x7FF7, + 0xF07B, 0x7FF8, 0xF07C, 0x8075, 0xF07D, 0x81D1, 0xF07E, 0x81D2, 0xF0A1, 0x81D0, 0xF0A2, 0x825F, 0xF0A3, 0x825E, 0xF0A4, 0x85B4, + 0xF0A5, 0x85C6, 0xF0A6, 0x85C0, 0xF0A7, 0x85C3, 0xF0A8, 0x85C2, 0xF0A9, 0x85B3, 0xF0AA, 0x85B5, 0xF0AB, 0x85BD, 0xF0AC, 0x85C7, + 0xF0AD, 0x85C4, 0xF0AE, 0x85BF, 0xF0AF, 0x85CB, 0xF0B0, 0x85CE, 0xF0B1, 0x85C8, 0xF0B2, 0x85C5, 0xF0B3, 0x85B1, 0xF0B4, 0x85B6, + 0xF0B5, 0x85D2, 0xF0B6, 0x8624, 0xF0B7, 0x85B8, 0xF0B8, 0x85B7, 0xF0B9, 0x85BE, 0xF0BA, 0x8669, 0xF0BB, 0x87E7, 0xF0BC, 0x87E6, + 0xF0BD, 0x87E2, 0xF0BE, 0x87DB, 0xF0BF, 0x87EB, 0xF0C0, 0x87EA, 0xF0C1, 0x87E5, 0xF0C2, 0x87DF, 0xF0C3, 0x87F3, 0xF0C4, 0x87E4, + 0xF0C5, 0x87D4, 0xF0C6, 0x87DC, 0xF0C7, 0x87D3, 0xF0C8, 0x87ED, 0xF0C9, 0x87D8, 0xF0CA, 0x87E3, 0xF0CB, 0x87A4, 0xF0CC, 0x87D7, + 0xF0CD, 0x87D9, 0xF0CE, 0x8801, 0xF0CF, 0x87F4, 0xF0D0, 0x87E8, 0xF0D1, 0x87DD, 0xF0D2, 0x8953, 0xF0D3, 0x894B, 0xF0D4, 0x894F, + 0xF0D5, 0x894C, 0xF0D6, 0x8946, 0xF0D7, 0x8950, 0xF0D8, 0x8951, 0xF0D9, 0x8949, 0xF0DA, 0x8B2A, 0xF0DB, 0x8B27, 0xF0DC, 0x8B23, + 0xF0DD, 0x8B33, 0xF0DE, 0x8B30, 0xF0DF, 0x8B35, 0xF0E0, 0x8B47, 0xF0E1, 0x8B2F, 0xF0E2, 0x8B3C, 0xF0E3, 0x8B3E, 0xF0E4, 0x8B31, + 0xF0E5, 0x8B25, 0xF0E6, 0x8B37, 0xF0E7, 0x8B26, 0xF0E8, 0x8B36, 0xF0E9, 0x8B2E, 0xF0EA, 0x8B24, 0xF0EB, 0x8B3B, 0xF0EC, 0x8B3D, + 0xF0ED, 0x8B3A, 0xF0EE, 0x8C42, 0xF0EF, 0x8C75, 0xF0F0, 0x8C99, 0xF0F1, 0x8C98, 0xF0F2, 0x8C97, 0xF0F3, 0x8CFE, 0xF0F4, 0x8D04, + 0xF0F5, 0x8D02, 0xF0F6, 0x8D00, 0xF0F7, 0x8E5C, 0xF0F8, 0x8E62, 0xF0F9, 0x8E60, 0xF0FA, 0x8E57, 0xF0FB, 0x8E56, 0xF0FC, 0x8E5E, + 0xF0FD, 0x8E65, 0xF0FE, 0x8E67, 0xF140, 0x8E5B, 0xF141, 0x8E5A, 0xF142, 0x8E61, 0xF143, 0x8E5D, 0xF144, 0x8E69, 0xF145, 0x8E54, + 0xF146, 0x8F46, 0xF147, 0x8F47, 0xF148, 0x8F48, 0xF149, 0x8F4B, 0xF14A, 0x9128, 0xF14B, 0x913A, 0xF14C, 0x913B, 0xF14D, 0x913E, + 0xF14E, 0x91A8, 0xF14F, 0x91A5, 0xF150, 0x91A7, 0xF151, 0x91AF, 0xF152, 0x91AA, 0xF153, 0x93B5, 0xF154, 0x938C, 0xF155, 0x9392, + 0xF156, 0x93B7, 0xF157, 0x939B, 0xF158, 0x939D, 0xF159, 0x9389, 0xF15A, 0x93A7, 0xF15B, 0x938E, 0xF15C, 0x93AA, 0xF15D, 0x939E, + 0xF15E, 0x93A6, 0xF15F, 0x9395, 0xF160, 0x9388, 0xF161, 0x9399, 0xF162, 0x939F, 0xF163, 0x938D, 0xF164, 0x93B1, 0xF165, 0x9391, + 0xF166, 0x93B2, 0xF167, 0x93A4, 0xF168, 0x93A8, 0xF169, 0x93B4, 0xF16A, 0x93A3, 0xF16B, 0x93A5, 0xF16C, 0x95D2, 0xF16D, 0x95D3, + 0xF16E, 0x95D1, 0xF16F, 0x96B3, 0xF170, 0x96D7, 0xF171, 0x96DA, 0xF172, 0x5DC2, 0xF173, 0x96DF, 0xF174, 0x96D8, 0xF175, 0x96DD, + 0xF176, 0x9723, 0xF177, 0x9722, 0xF178, 0x9725, 0xF179, 0x97AC, 0xF17A, 0x97AE, 0xF17B, 0x97A8, 0xF17C, 0x97AB, 0xF17D, 0x97A4, + 0xF17E, 0x97AA, 0xF1A1, 0x97A2, 0xF1A2, 0x97A5, 0xF1A3, 0x97D7, 0xF1A4, 0x97D9, 0xF1A5, 0x97D6, 0xF1A6, 0x97D8, 0xF1A7, 0x97FA, + 0xF1A8, 0x9850, 0xF1A9, 0x9851, 0xF1AA, 0x9852, 0xF1AB, 0x98B8, 0xF1AC, 0x9941, 0xF1AD, 0x993C, 0xF1AE, 0x993A, 0xF1AF, 0x9A0F, + 0xF1B0, 0x9A0B, 0xF1B1, 0x9A09, 0xF1B2, 0x9A0D, 0xF1B3, 0x9A04, 0xF1B4, 0x9A11, 0xF1B5, 0x9A0A, 0xF1B6, 0x9A05, 0xF1B7, 0x9A07, + 0xF1B8, 0x9A06, 0xF1B9, 0x9AC0, 0xF1BA, 0x9ADC, 0xF1BB, 0x9B08, 0xF1BC, 0x9B04, 0xF1BD, 0x9B05, 0xF1BE, 0x9B29, 0xF1BF, 0x9B35, + 0xF1C0, 0x9B4A, 0xF1C1, 0x9B4C, 0xF1C2, 0x9B4B, 0xF1C3, 0x9BC7, 0xF1C4, 0x9BC6, 0xF1C5, 0x9BC3, 0xF1C6, 0x9BBF, 0xF1C7, 0x9BC1, + 0xF1C8, 0x9BB5, 0xF1C9, 0x9BB8, 0xF1CA, 0x9BD3, 0xF1CB, 0x9BB6, 0xF1CC, 0x9BC4, 0xF1CD, 0x9BB9, 0xF1CE, 0x9BBD, 0xF1CF, 0x9D5C, + 0xF1D0, 0x9D53, 0xF1D1, 0x9D4F, 0xF1D2, 0x9D4A, 0xF1D3, 0x9D5B, 0xF1D4, 0x9D4B, 0xF1D5, 0x9D59, 0xF1D6, 0x9D56, 0xF1D7, 0x9D4C, + 0xF1D8, 0x9D57, 0xF1D9, 0x9D52, 0xF1DA, 0x9D54, 0xF1DB, 0x9D5F, 0xF1DC, 0x9D58, 0xF1DD, 0x9D5A, 0xF1DE, 0x9E8E, 0xF1DF, 0x9E8C, + 0xF1E0, 0x9EDF, 0xF1E1, 0x9F01, 0xF1E2, 0x9F00, 0xF1E3, 0x9F16, 0xF1E4, 0x9F25, 0xF1E5, 0x9F2B, 0xF1E6, 0x9F2A, 0xF1E7, 0x9F29, + 0xF1E8, 0x9F28, 0xF1E9, 0x9F4C, 0xF1EA, 0x9F55, 0xF1EB, 0x5134, 0xF1EC, 0x5135, 0xF1ED, 0x5296, 0xF1EE, 0x52F7, 0xF1EF, 0x53B4, + 0xF1F0, 0x56AB, 0xF1F1, 0x56AD, 0xF1F2, 0x56A6, 0xF1F3, 0x56A7, 0xF1F4, 0x56AA, 0xF1F5, 0x56AC, 0xF1F6, 0x58DA, 0xF1F7, 0x58DD, + 0xF1F8, 0x58DB, 0xF1F9, 0x5912, 0xF1FA, 0x5B3D, 0xF1FB, 0x5B3E, 0xF1FC, 0x5B3F, 0xF1FD, 0x5DC3, 0xF1FE, 0x5E70, 0xF240, 0x5FBF, + 0xF241, 0x61FB, 0xF242, 0x6507, 0xF243, 0x6510, 0xF244, 0x650D, 0xF245, 0x6509, 0xF246, 0x650C, 0xF247, 0x650E, 0xF248, 0x6584, + 0xF249, 0x65DE, 0xF24A, 0x65DD, 0xF24B, 0x66DE, 0xF24C, 0x6AE7, 0xF24D, 0x6AE0, 0xF24E, 0x6ACC, 0xF24F, 0x6AD1, 0xF250, 0x6AD9, + 0xF251, 0x6ACB, 0xF252, 0x6ADF, 0xF253, 0x6ADC, 0xF254, 0x6AD0, 0xF255, 0x6AEB, 0xF256, 0x6ACF, 0xF257, 0x6ACD, 0xF258, 0x6ADE, + 0xF259, 0x6B60, 0xF25A, 0x6BB0, 0xF25B, 0x6C0C, 0xF25C, 0x7019, 0xF25D, 0x7027, 0xF25E, 0x7020, 0xF25F, 0x7016, 0xF260, 0x702B, + 0xF261, 0x7021, 0xF262, 0x7022, 0xF263, 0x7023, 0xF264, 0x7029, 0xF265, 0x7017, 0xF266, 0x7024, 0xF267, 0x701C, 0xF268, 0x702A, + 0xF269, 0x720C, 0xF26A, 0x720A, 0xF26B, 0x7207, 0xF26C, 0x7202, 0xF26D, 0x7205, 0xF26E, 0x72A5, 0xF26F, 0x72A6, 0xF270, 0x72A4, + 0xF271, 0x72A3, 0xF272, 0x72A1, 0xF273, 0x74CB, 0xF274, 0x74C5, 0xF275, 0x74B7, 0xF276, 0x74C3, 0xF277, 0x7516, 0xF278, 0x7660, + 0xF279, 0x77C9, 0xF27A, 0x77CA, 0xF27B, 0x77C4, 0xF27C, 0x77F1, 0xF27D, 0x791D, 0xF27E, 0x791B, 0xF2A1, 0x7921, 0xF2A2, 0x791C, + 0xF2A3, 0x7917, 0xF2A4, 0x791E, 0xF2A5, 0x79B0, 0xF2A6, 0x7A67, 0xF2A7, 0x7A68, 0xF2A8, 0x7C33, 0xF2A9, 0x7C3C, 0xF2AA, 0x7C39, + 0xF2AB, 0x7C2C, 0xF2AC, 0x7C3B, 0xF2AD, 0x7CEC, 0xF2AE, 0x7CEA, 0xF2AF, 0x7E76, 0xF2B0, 0x7E75, 0xF2B1, 0x7E78, 0xF2B2, 0x7E70, + 0xF2B3, 0x7E77, 0xF2B4, 0x7E6F, 0xF2B5, 0x7E7A, 0xF2B6, 0x7E72, 0xF2B7, 0x7E74, 0xF2B8, 0x7E68, 0xF2B9, 0x7F4B, 0xF2BA, 0x7F4A, + 0xF2BB, 0x7F83, 0xF2BC, 0x7F86, 0xF2BD, 0x7FB7, 0xF2BE, 0x7FFD, 0xF2BF, 0x7FFE, 0xF2C0, 0x8078, 0xF2C1, 0x81D7, 0xF2C2, 0x81D5, + 0xF2C3, 0x8264, 0xF2C4, 0x8261, 0xF2C5, 0x8263, 0xF2C6, 0x85EB, 0xF2C7, 0x85F1, 0xF2C8, 0x85ED, 0xF2C9, 0x85D9, 0xF2CA, 0x85E1, + 0xF2CB, 0x85E8, 0xF2CC, 0x85DA, 0xF2CD, 0x85D7, 0xF2CE, 0x85EC, 0xF2CF, 0x85F2, 0xF2D0, 0x85F8, 0xF2D1, 0x85D8, 0xF2D2, 0x85DF, + 0xF2D3, 0x85E3, 0xF2D4, 0x85DC, 0xF2D5, 0x85D1, 0xF2D6, 0x85F0, 0xF2D7, 0x85E6, 0xF2D8, 0x85EF, 0xF2D9, 0x85DE, 0xF2DA, 0x85E2, + 0xF2DB, 0x8800, 0xF2DC, 0x87FA, 0xF2DD, 0x8803, 0xF2DE, 0x87F6, 0xF2DF, 0x87F7, 0xF2E0, 0x8809, 0xF2E1, 0x880C, 0xF2E2, 0x880B, + 0xF2E3, 0x8806, 0xF2E4, 0x87FC, 0xF2E5, 0x8808, 0xF2E6, 0x87FF, 0xF2E7, 0x880A, 0xF2E8, 0x8802, 0xF2E9, 0x8962, 0xF2EA, 0x895A, + 0xF2EB, 0x895B, 0xF2EC, 0x8957, 0xF2ED, 0x8961, 0xF2EE, 0x895C, 0xF2EF, 0x8958, 0xF2F0, 0x895D, 0xF2F1, 0x8959, 0xF2F2, 0x8988, + 0xF2F3, 0x89B7, 0xF2F4, 0x89B6, 0xF2F5, 0x89F6, 0xF2F6, 0x8B50, 0xF2F7, 0x8B48, 0xF2F8, 0x8B4A, 0xF2F9, 0x8B40, 0xF2FA, 0x8B53, + 0xF2FB, 0x8B56, 0xF2FC, 0x8B54, 0xF2FD, 0x8B4B, 0xF2FE, 0x8B55, 0xF340, 0x8B51, 0xF341, 0x8B42, 0xF342, 0x8B52, 0xF343, 0x8B57, + 0xF344, 0x8C43, 0xF345, 0x8C77, 0xF346, 0x8C76, 0xF347, 0x8C9A, 0xF348, 0x8D06, 0xF349, 0x8D07, 0xF34A, 0x8D09, 0xF34B, 0x8DAC, + 0xF34C, 0x8DAA, 0xF34D, 0x8DAD, 0xF34E, 0x8DAB, 0xF34F, 0x8E6D, 0xF350, 0x8E78, 0xF351, 0x8E73, 0xF352, 0x8E6A, 0xF353, 0x8E6F, + 0xF354, 0x8E7B, 0xF355, 0x8EC2, 0xF356, 0x8F52, 0xF357, 0x8F51, 0xF358, 0x8F4F, 0xF359, 0x8F50, 0xF35A, 0x8F53, 0xF35B, 0x8FB4, + 0xF35C, 0x9140, 0xF35D, 0x913F, 0xF35E, 0x91B0, 0xF35F, 0x91AD, 0xF360, 0x93DE, 0xF361, 0x93C7, 0xF362, 0x93CF, 0xF363, 0x93C2, + 0xF364, 0x93DA, 0xF365, 0x93D0, 0xF366, 0x93F9, 0xF367, 0x93EC, 0xF368, 0x93CC, 0xF369, 0x93D9, 0xF36A, 0x93A9, 0xF36B, 0x93E6, + 0xF36C, 0x93CA, 0xF36D, 0x93D4, 0xF36E, 0x93EE, 0xF36F, 0x93E3, 0xF370, 0x93D5, 0xF371, 0x93C4, 0xF372, 0x93CE, 0xF373, 0x93C0, + 0xF374, 0x93D2, 0xF375, 0x93E7, 0xF376, 0x957D, 0xF377, 0x95DA, 0xF378, 0x95DB, 0xF379, 0x96E1, 0xF37A, 0x9729, 0xF37B, 0x972B, + 0xF37C, 0x972C, 0xF37D, 0x9728, 0xF37E, 0x9726, 0xF3A1, 0x97B3, 0xF3A2, 0x97B7, 0xF3A3, 0x97B6, 0xF3A4, 0x97DD, 0xF3A5, 0x97DE, + 0xF3A6, 0x97DF, 0xF3A7, 0x985C, 0xF3A8, 0x9859, 0xF3A9, 0x985D, 0xF3AA, 0x9857, 0xF3AB, 0x98BF, 0xF3AC, 0x98BD, 0xF3AD, 0x98BB, + 0xF3AE, 0x98BE, 0xF3AF, 0x9948, 0xF3B0, 0x9947, 0xF3B1, 0x9943, 0xF3B2, 0x99A6, 0xF3B3, 0x99A7, 0xF3B4, 0x9A1A, 0xF3B5, 0x9A15, + 0xF3B6, 0x9A25, 0xF3B7, 0x9A1D, 0xF3B8, 0x9A24, 0xF3B9, 0x9A1B, 0xF3BA, 0x9A22, 0xF3BB, 0x9A20, 0xF3BC, 0x9A27, 0xF3BD, 0x9A23, + 0xF3BE, 0x9A1E, 0xF3BF, 0x9A1C, 0xF3C0, 0x9A14, 0xF3C1, 0x9AC2, 0xF3C2, 0x9B0B, 0xF3C3, 0x9B0A, 0xF3C4, 0x9B0E, 0xF3C5, 0x9B0C, + 0xF3C6, 0x9B37, 0xF3C7, 0x9BEA, 0xF3C8, 0x9BEB, 0xF3C9, 0x9BE0, 0xF3CA, 0x9BDE, 0xF3CB, 0x9BE4, 0xF3CC, 0x9BE6, 0xF3CD, 0x9BE2, + 0xF3CE, 0x9BF0, 0xF3CF, 0x9BD4, 0xF3D0, 0x9BD7, 0xF3D1, 0x9BEC, 0xF3D2, 0x9BDC, 0xF3D3, 0x9BD9, 0xF3D4, 0x9BE5, 0xF3D5, 0x9BD5, + 0xF3D6, 0x9BE1, 0xF3D7, 0x9BDA, 0xF3D8, 0x9D77, 0xF3D9, 0x9D81, 0xF3DA, 0x9D8A, 0xF3DB, 0x9D84, 0xF3DC, 0x9D88, 0xF3DD, 0x9D71, + 0xF3DE, 0x9D80, 0xF3DF, 0x9D78, 0xF3E0, 0x9D86, 0xF3E1, 0x9D8B, 0xF3E2, 0x9D8C, 0xF3E3, 0x9D7D, 0xF3E4, 0x9D6B, 0xF3E5, 0x9D74, + 0xF3E6, 0x9D75, 0xF3E7, 0x9D70, 0xF3E8, 0x9D69, 0xF3E9, 0x9D85, 0xF3EA, 0x9D73, 0xF3EB, 0x9D7B, 0xF3EC, 0x9D82, 0xF3ED, 0x9D6F, + 0xF3EE, 0x9D79, 0xF3EF, 0x9D7F, 0xF3F0, 0x9D87, 0xF3F1, 0x9D68, 0xF3F2, 0x9E94, 0xF3F3, 0x9E91, 0xF3F4, 0x9EC0, 0xF3F5, 0x9EFC, + 0xF3F6, 0x9F2D, 0xF3F7, 0x9F40, 0xF3F8, 0x9F41, 0xF3F9, 0x9F4D, 0xF3FA, 0x9F56, 0xF3FB, 0x9F57, 0xF3FC, 0x9F58, 0xF3FD, 0x5337, + 0xF3FE, 0x56B2, 0xF440, 0x56B5, 0xF441, 0x56B3, 0xF442, 0x58E3, 0xF443, 0x5B45, 0xF444, 0x5DC6, 0xF445, 0x5DC7, 0xF446, 0x5EEE, + 0xF447, 0x5EEF, 0xF448, 0x5FC0, 0xF449, 0x5FC1, 0xF44A, 0x61F9, 0xF44B, 0x6517, 0xF44C, 0x6516, 0xF44D, 0x6515, 0xF44E, 0x6513, + 0xF44F, 0x65DF, 0xF450, 0x66E8, 0xF451, 0x66E3, 0xF452, 0x66E4, 0xF453, 0x6AF3, 0xF454, 0x6AF0, 0xF455, 0x6AEA, 0xF456, 0x6AE8, + 0xF457, 0x6AF9, 0xF458, 0x6AF1, 0xF459, 0x6AEE, 0xF45A, 0x6AEF, 0xF45B, 0x703C, 0xF45C, 0x7035, 0xF45D, 0x702F, 0xF45E, 0x7037, + 0xF45F, 0x7034, 0xF460, 0x7031, 0xF461, 0x7042, 0xF462, 0x7038, 0xF463, 0x703F, 0xF464, 0x703A, 0xF465, 0x7039, 0xF466, 0x7040, + 0xF467, 0x703B, 0xF468, 0x7033, 0xF469, 0x7041, 0xF46A, 0x7213, 0xF46B, 0x7214, 0xF46C, 0x72A8, 0xF46D, 0x737D, 0xF46E, 0x737C, + 0xF46F, 0x74BA, 0xF470, 0x76AB, 0xF471, 0x76AA, 0xF472, 0x76BE, 0xF473, 0x76ED, 0xF474, 0x77CC, 0xF475, 0x77CE, 0xF476, 0x77CF, + 0xF477, 0x77CD, 0xF478, 0x77F2, 0xF479, 0x7925, 0xF47A, 0x7923, 0xF47B, 0x7927, 0xF47C, 0x7928, 0xF47D, 0x7924, 0xF47E, 0x7929, + 0xF4A1, 0x79B2, 0xF4A2, 0x7A6E, 0xF4A3, 0x7A6C, 0xF4A4, 0x7A6D, 0xF4A5, 0x7AF7, 0xF4A6, 0x7C49, 0xF4A7, 0x7C48, 0xF4A8, 0x7C4A, + 0xF4A9, 0x7C47, 0xF4AA, 0x7C45, 0xF4AB, 0x7CEE, 0xF4AC, 0x7E7B, 0xF4AD, 0x7E7E, 0xF4AE, 0x7E81, 0xF4AF, 0x7E80, 0xF4B0, 0x7FBA, + 0xF4B1, 0x7FFF, 0xF4B2, 0x8079, 0xF4B3, 0x81DB, 0xF4B4, 0x81D9, 0xF4B5, 0x820B, 0xF4B6, 0x8268, 0xF4B7, 0x8269, 0xF4B8, 0x8622, + 0xF4B9, 0x85FF, 0xF4BA, 0x8601, 0xF4BB, 0x85FE, 0xF4BC, 0x861B, 0xF4BD, 0x8600, 0xF4BE, 0x85F6, 0xF4BF, 0x8604, 0xF4C0, 0x8609, + 0xF4C1, 0x8605, 0xF4C2, 0x860C, 0xF4C3, 0x85FD, 0xF4C4, 0x8819, 0xF4C5, 0x8810, 0xF4C6, 0x8811, 0xF4C7, 0x8817, 0xF4C8, 0x8813, + 0xF4C9, 0x8816, 0xF4CA, 0x8963, 0xF4CB, 0x8966, 0xF4CC, 0x89B9, 0xF4CD, 0x89F7, 0xF4CE, 0x8B60, 0xF4CF, 0x8B6A, 0xF4D0, 0x8B5D, + 0xF4D1, 0x8B68, 0xF4D2, 0x8B63, 0xF4D3, 0x8B65, 0xF4D4, 0x8B67, 0xF4D5, 0x8B6D, 0xF4D6, 0x8DAE, 0xF4D7, 0x8E86, 0xF4D8, 0x8E88, + 0xF4D9, 0x8E84, 0xF4DA, 0x8F59, 0xF4DB, 0x8F56, 0xF4DC, 0x8F57, 0xF4DD, 0x8F55, 0xF4DE, 0x8F58, 0xF4DF, 0x8F5A, 0xF4E0, 0x908D, + 0xF4E1, 0x9143, 0xF4E2, 0x9141, 0xF4E3, 0x91B7, 0xF4E4, 0x91B5, 0xF4E5, 0x91B2, 0xF4E6, 0x91B3, 0xF4E7, 0x940B, 0xF4E8, 0x9413, + 0xF4E9, 0x93FB, 0xF4EA, 0x9420, 0xF4EB, 0x940F, 0xF4EC, 0x9414, 0xF4ED, 0x93FE, 0xF4EE, 0x9415, 0xF4EF, 0x9410, 0xF4F0, 0x9428, + 0xF4F1, 0x9419, 0xF4F2, 0x940D, 0xF4F3, 0x93F5, 0xF4F4, 0x9400, 0xF4F5, 0x93F7, 0xF4F6, 0x9407, 0xF4F7, 0x940E, 0xF4F8, 0x9416, + 0xF4F9, 0x9412, 0xF4FA, 0x93FA, 0xF4FB, 0x9409, 0xF4FC, 0x93F8, 0xF4FD, 0x940A, 0xF4FE, 0x93FF, 0xF540, 0x93FC, 0xF541, 0x940C, + 0xF542, 0x93F6, 0xF543, 0x9411, 0xF544, 0x9406, 0xF545, 0x95DE, 0xF546, 0x95E0, 0xF547, 0x95DF, 0xF548, 0x972E, 0xF549, 0x972F, + 0xF54A, 0x97B9, 0xF54B, 0x97BB, 0xF54C, 0x97FD, 0xF54D, 0x97FE, 0xF54E, 0x9860, 0xF54F, 0x9862, 0xF550, 0x9863, 0xF551, 0x985F, + 0xF552, 0x98C1, 0xF553, 0x98C2, 0xF554, 0x9950, 0xF555, 0x994E, 0xF556, 0x9959, 0xF557, 0x994C, 0xF558, 0x994B, 0xF559, 0x9953, + 0xF55A, 0x9A32, 0xF55B, 0x9A34, 0xF55C, 0x9A31, 0xF55D, 0x9A2C, 0xF55E, 0x9A2A, 0xF55F, 0x9A36, 0xF560, 0x9A29, 0xF561, 0x9A2E, + 0xF562, 0x9A38, 0xF563, 0x9A2D, 0xF564, 0x9AC7, 0xF565, 0x9ACA, 0xF566, 0x9AC6, 0xF567, 0x9B10, 0xF568, 0x9B12, 0xF569, 0x9B11, + 0xF56A, 0x9C0B, 0xF56B, 0x9C08, 0xF56C, 0x9BF7, 0xF56D, 0x9C05, 0xF56E, 0x9C12, 0xF56F, 0x9BF8, 0xF570, 0x9C40, 0xF571, 0x9C07, + 0xF572, 0x9C0E, 0xF573, 0x9C06, 0xF574, 0x9C17, 0xF575, 0x9C14, 0xF576, 0x9C09, 0xF577, 0x9D9F, 0xF578, 0x9D99, 0xF579, 0x9DA4, + 0xF57A, 0x9D9D, 0xF57B, 0x9D92, 0xF57C, 0x9D98, 0xF57D, 0x9D90, 0xF57E, 0x9D9B, 0xF5A1, 0x9DA0, 0xF5A2, 0x9D94, 0xF5A3, 0x9D9C, + 0xF5A4, 0x9DAA, 0xF5A5, 0x9D97, 0xF5A6, 0x9DA1, 0xF5A7, 0x9D9A, 0xF5A8, 0x9DA2, 0xF5A9, 0x9DA8, 0xF5AA, 0x9D9E, 0xF5AB, 0x9DA3, + 0xF5AC, 0x9DBF, 0xF5AD, 0x9DA9, 0xF5AE, 0x9D96, 0xF5AF, 0x9DA6, 0xF5B0, 0x9DA7, 0xF5B1, 0x9E99, 0xF5B2, 0x9E9B, 0xF5B3, 0x9E9A, + 0xF5B4, 0x9EE5, 0xF5B5, 0x9EE4, 0xF5B6, 0x9EE7, 0xF5B7, 0x9EE6, 0xF5B8, 0x9F30, 0xF5B9, 0x9F2E, 0xF5BA, 0x9F5B, 0xF5BB, 0x9F60, + 0xF5BC, 0x9F5E, 0xF5BD, 0x9F5D, 0xF5BE, 0x9F59, 0xF5BF, 0x9F91, 0xF5C0, 0x513A, 0xF5C1, 0x5139, 0xF5C2, 0x5298, 0xF5C3, 0x5297, + 0xF5C4, 0x56C3, 0xF5C5, 0x56BD, 0xF5C6, 0x56BE, 0xF5C7, 0x5B48, 0xF5C8, 0x5B47, 0xF5C9, 0x5DCB, 0xF5CA, 0x5DCF, 0xF5CB, 0x5EF1, + 0xF5CC, 0x61FD, 0xF5CD, 0x651B, 0xF5CE, 0x6B02, 0xF5CF, 0x6AFC, 0xF5D0, 0x6B03, 0xF5D1, 0x6AF8, 0xF5D2, 0x6B00, 0xF5D3, 0x7043, + 0xF5D4, 0x7044, 0xF5D5, 0x704A, 0xF5D6, 0x7048, 0xF5D7, 0x7049, 0xF5D8, 0x7045, 0xF5D9, 0x7046, 0xF5DA, 0x721D, 0xF5DB, 0x721A, + 0xF5DC, 0x7219, 0xF5DD, 0x737E, 0xF5DE, 0x7517, 0xF5DF, 0x766A, 0xF5E0, 0x77D0, 0xF5E1, 0x792D, 0xF5E2, 0x7931, 0xF5E3, 0x792F, + 0xF5E4, 0x7C54, 0xF5E5, 0x7C53, 0xF5E6, 0x7CF2, 0xF5E7, 0x7E8A, 0xF5E8, 0x7E87, 0xF5E9, 0x7E88, 0xF5EA, 0x7E8B, 0xF5EB, 0x7E86, + 0xF5EC, 0x7E8D, 0xF5ED, 0x7F4D, 0xF5EE, 0x7FBB, 0xF5EF, 0x8030, 0xF5F0, 0x81DD, 0xF5F1, 0x8618, 0xF5F2, 0x862A, 0xF5F3, 0x8626, + 0xF5F4, 0x861F, 0xF5F5, 0x8623, 0xF5F6, 0x861C, 0xF5F7, 0x8619, 0xF5F8, 0x8627, 0xF5F9, 0x862E, 0xF5FA, 0x8621, 0xF5FB, 0x8620, + 0xF5FC, 0x8629, 0xF5FD, 0x861E, 0xF5FE, 0x8625, 0xF640, 0x8829, 0xF641, 0x881D, 0xF642, 0x881B, 0xF643, 0x8820, 0xF644, 0x8824, + 0xF645, 0x881C, 0xF646, 0x882B, 0xF647, 0x884A, 0xF648, 0x896D, 0xF649, 0x8969, 0xF64A, 0x896E, 0xF64B, 0x896B, 0xF64C, 0x89FA, + 0xF64D, 0x8B79, 0xF64E, 0x8B78, 0xF64F, 0x8B45, 0xF650, 0x8B7A, 0xF651, 0x8B7B, 0xF652, 0x8D10, 0xF653, 0x8D14, 0xF654, 0x8DAF, + 0xF655, 0x8E8E, 0xF656, 0x8E8C, 0xF657, 0x8F5E, 0xF658, 0x8F5B, 0xF659, 0x8F5D, 0xF65A, 0x9146, 0xF65B, 0x9144, 0xF65C, 0x9145, + 0xF65D, 0x91B9, 0xF65E, 0x943F, 0xF65F, 0x943B, 0xF660, 0x9436, 0xF661, 0x9429, 0xF662, 0x943D, 0xF663, 0x943C, 0xF664, 0x9430, + 0xF665, 0x9439, 0xF666, 0x942A, 0xF667, 0x9437, 0xF668, 0x942C, 0xF669, 0x9440, 0xF66A, 0x9431, 0xF66B, 0x95E5, 0xF66C, 0x95E4, + 0xF66D, 0x95E3, 0xF66E, 0x9735, 0xF66F, 0x973A, 0xF670, 0x97BF, 0xF671, 0x97E1, 0xF672, 0x9864, 0xF673, 0x98C9, 0xF674, 0x98C6, + 0xF675, 0x98C0, 0xF676, 0x9958, 0xF677, 0x9956, 0xF678, 0x9A39, 0xF679, 0x9A3D, 0xF67A, 0x9A46, 0xF67B, 0x9A44, 0xF67C, 0x9A42, + 0xF67D, 0x9A41, 0xF67E, 0x9A3A, 0xF6A1, 0x9A3F, 0xF6A2, 0x9ACD, 0xF6A3, 0x9B15, 0xF6A4, 0x9B17, 0xF6A5, 0x9B18, 0xF6A6, 0x9B16, + 0xF6A7, 0x9B3A, 0xF6A8, 0x9B52, 0xF6A9, 0x9C2B, 0xF6AA, 0x9C1D, 0xF6AB, 0x9C1C, 0xF6AC, 0x9C2C, 0xF6AD, 0x9C23, 0xF6AE, 0x9C28, + 0xF6AF, 0x9C29, 0xF6B0, 0x9C24, 0xF6B1, 0x9C21, 0xF6B2, 0x9DB7, 0xF6B3, 0x9DB6, 0xF6B4, 0x9DBC, 0xF6B5, 0x9DC1, 0xF6B6, 0x9DC7, + 0xF6B7, 0x9DCA, 0xF6B8, 0x9DCF, 0xF6B9, 0x9DBE, 0xF6BA, 0x9DC5, 0xF6BB, 0x9DC3, 0xF6BC, 0x9DBB, 0xF6BD, 0x9DB5, 0xF6BE, 0x9DCE, + 0xF6BF, 0x9DB9, 0xF6C0, 0x9DBA, 0xF6C1, 0x9DAC, 0xF6C2, 0x9DC8, 0xF6C3, 0x9DB1, 0xF6C4, 0x9DAD, 0xF6C5, 0x9DCC, 0xF6C6, 0x9DB3, + 0xF6C7, 0x9DCD, 0xF6C8, 0x9DB2, 0xF6C9, 0x9E7A, 0xF6CA, 0x9E9C, 0xF6CB, 0x9EEB, 0xF6CC, 0x9EEE, 0xF6CD, 0x9EED, 0xF6CE, 0x9F1B, + 0xF6CF, 0x9F18, 0xF6D0, 0x9F1A, 0xF6D1, 0x9F31, 0xF6D2, 0x9F4E, 0xF6D3, 0x9F65, 0xF6D4, 0x9F64, 0xF6D5, 0x9F92, 0xF6D6, 0x4EB9, + 0xF6D7, 0x56C6, 0xF6D8, 0x56C5, 0xF6D9, 0x56CB, 0xF6DA, 0x5971, 0xF6DB, 0x5B4B, 0xF6DC, 0x5B4C, 0xF6DD, 0x5DD5, 0xF6DE, 0x5DD1, + 0xF6DF, 0x5EF2, 0xF6E0, 0x6521, 0xF6E1, 0x6520, 0xF6E2, 0x6526, 0xF6E3, 0x6522, 0xF6E4, 0x6B0B, 0xF6E5, 0x6B08, 0xF6E6, 0x6B09, + 0xF6E7, 0x6C0D, 0xF6E8, 0x7055, 0xF6E9, 0x7056, 0xF6EA, 0x7057, 0xF6EB, 0x7052, 0xF6EC, 0x721E, 0xF6ED, 0x721F, 0xF6EE, 0x72A9, + 0xF6EF, 0x737F, 0xF6F0, 0x74D8, 0xF6F1, 0x74D5, 0xF6F2, 0x74D9, 0xF6F3, 0x74D7, 0xF6F4, 0x766D, 0xF6F5, 0x76AD, 0xF6F6, 0x7935, + 0xF6F7, 0x79B4, 0xF6F8, 0x7A70, 0xF6F9, 0x7A71, 0xF6FA, 0x7C57, 0xF6FB, 0x7C5C, 0xF6FC, 0x7C59, 0xF6FD, 0x7C5B, 0xF6FE, 0x7C5A, + 0xF740, 0x7CF4, 0xF741, 0x7CF1, 0xF742, 0x7E91, 0xF743, 0x7F4F, 0xF744, 0x7F87, 0xF745, 0x81DE, 0xF746, 0x826B, 0xF747, 0x8634, + 0xF748, 0x8635, 0xF749, 0x8633, 0xF74A, 0x862C, 0xF74B, 0x8632, 0xF74C, 0x8636, 0xF74D, 0x882C, 0xF74E, 0x8828, 0xF74F, 0x8826, + 0xF750, 0x882A, 0xF751, 0x8825, 0xF752, 0x8971, 0xF753, 0x89BF, 0xF754, 0x89BE, 0xF755, 0x89FB, 0xF756, 0x8B7E, 0xF757, 0x8B84, + 0xF758, 0x8B82, 0xF759, 0x8B86, 0xF75A, 0x8B85, 0xF75B, 0x8B7F, 0xF75C, 0x8D15, 0xF75D, 0x8E95, 0xF75E, 0x8E94, 0xF75F, 0x8E9A, + 0xF760, 0x8E92, 0xF761, 0x8E90, 0xF762, 0x8E96, 0xF763, 0x8E97, 0xF764, 0x8F60, 0xF765, 0x8F62, 0xF766, 0x9147, 0xF767, 0x944C, + 0xF768, 0x9450, 0xF769, 0x944A, 0xF76A, 0x944B, 0xF76B, 0x944F, 0xF76C, 0x9447, 0xF76D, 0x9445, 0xF76E, 0x9448, 0xF76F, 0x9449, + 0xF770, 0x9446, 0xF771, 0x973F, 0xF772, 0x97E3, 0xF773, 0x986A, 0xF774, 0x9869, 0xF775, 0x98CB, 0xF776, 0x9954, 0xF777, 0x995B, + 0xF778, 0x9A4E, 0xF779, 0x9A53, 0xF77A, 0x9A54, 0xF77B, 0x9A4C, 0xF77C, 0x9A4F, 0xF77D, 0x9A48, 0xF77E, 0x9A4A, 0xF7A1, 0x9A49, + 0xF7A2, 0x9A52, 0xF7A3, 0x9A50, 0xF7A4, 0x9AD0, 0xF7A5, 0x9B19, 0xF7A6, 0x9B2B, 0xF7A7, 0x9B3B, 0xF7A8, 0x9B56, 0xF7A9, 0x9B55, + 0xF7AA, 0x9C46, 0xF7AB, 0x9C48, 0xF7AC, 0x9C3F, 0xF7AD, 0x9C44, 0xF7AE, 0x9C39, 0xF7AF, 0x9C33, 0xF7B0, 0x9C41, 0xF7B1, 0x9C3C, + 0xF7B2, 0x9C37, 0xF7B3, 0x9C34, 0xF7B4, 0x9C32, 0xF7B5, 0x9C3D, 0xF7B6, 0x9C36, 0xF7B7, 0x9DDB, 0xF7B8, 0x9DD2, 0xF7B9, 0x9DDE, + 0xF7BA, 0x9DDA, 0xF7BB, 0x9DCB, 0xF7BC, 0x9DD0, 0xF7BD, 0x9DDC, 0xF7BE, 0x9DD1, 0xF7BF, 0x9DDF, 0xF7C0, 0x9DE9, 0xF7C1, 0x9DD9, + 0xF7C2, 0x9DD8, 0xF7C3, 0x9DD6, 0xF7C4, 0x9DF5, 0xF7C5, 0x9DD5, 0xF7C6, 0x9DDD, 0xF7C7, 0x9EB6, 0xF7C8, 0x9EF0, 0xF7C9, 0x9F35, + 0xF7CA, 0x9F33, 0xF7CB, 0x9F32, 0xF7CC, 0x9F42, 0xF7CD, 0x9F6B, 0xF7CE, 0x9F95, 0xF7CF, 0x9FA2, 0xF7D0, 0x513D, 0xF7D1, 0x5299, + 0xF7D2, 0x58E8, 0xF7D3, 0x58E7, 0xF7D4, 0x5972, 0xF7D5, 0x5B4D, 0xF7D6, 0x5DD8, 0xF7D7, 0x882F, 0xF7D8, 0x5F4F, 0xF7D9, 0x6201, + 0xF7DA, 0x6203, 0xF7DB, 0x6204, 0xF7DC, 0x6529, 0xF7DD, 0x6525, 0xF7DE, 0x6596, 0xF7DF, 0x66EB, 0xF7E0, 0x6B11, 0xF7E1, 0x6B12, + 0xF7E2, 0x6B0F, 0xF7E3, 0x6BCA, 0xF7E4, 0x705B, 0xF7E5, 0x705A, 0xF7E6, 0x7222, 0xF7E7, 0x7382, 0xF7E8, 0x7381, 0xF7E9, 0x7383, + 0xF7EA, 0x7670, 0xF7EB, 0x77D4, 0xF7EC, 0x7C67, 0xF7ED, 0x7C66, 0xF7EE, 0x7E95, 0xF7EF, 0x826C, 0xF7F0, 0x863A, 0xF7F1, 0x8640, + 0xF7F2, 0x8639, 0xF7F3, 0x863C, 0xF7F4, 0x8631, 0xF7F5, 0x863B, 0xF7F6, 0x863E, 0xF7F7, 0x8830, 0xF7F8, 0x8832, 0xF7F9, 0x882E, + 0xF7FA, 0x8833, 0xF7FB, 0x8976, 0xF7FC, 0x8974, 0xF7FD, 0x8973, 0xF7FE, 0x89FE, 0xF840, 0x8B8C, 0xF841, 0x8B8E, 0xF842, 0x8B8B, + 0xF843, 0x8B88, 0xF844, 0x8C45, 0xF845, 0x8D19, 0xF846, 0x8E98, 0xF847, 0x8F64, 0xF848, 0x8F63, 0xF849, 0x91BC, 0xF84A, 0x9462, + 0xF84B, 0x9455, 0xF84C, 0x945D, 0xF84D, 0x9457, 0xF84E, 0x945E, 0xF84F, 0x97C4, 0xF850, 0x97C5, 0xF851, 0x9800, 0xF852, 0x9A56, + 0xF853, 0x9A59, 0xF854, 0x9B1E, 0xF855, 0x9B1F, 0xF856, 0x9B20, 0xF857, 0x9C52, 0xF858, 0x9C58, 0xF859, 0x9C50, 0xF85A, 0x9C4A, + 0xF85B, 0x9C4D, 0xF85C, 0x9C4B, 0xF85D, 0x9C55, 0xF85E, 0x9C59, 0xF85F, 0x9C4C, 0xF860, 0x9C4E, 0xF861, 0x9DFB, 0xF862, 0x9DF7, + 0xF863, 0x9DEF, 0xF864, 0x9DE3, 0xF865, 0x9DEB, 0xF866, 0x9DF8, 0xF867, 0x9DE4, 0xF868, 0x9DF6, 0xF869, 0x9DE1, 0xF86A, 0x9DEE, + 0xF86B, 0x9DE6, 0xF86C, 0x9DF2, 0xF86D, 0x9DF0, 0xF86E, 0x9DE2, 0xF86F, 0x9DEC, 0xF870, 0x9DF4, 0xF871, 0x9DF3, 0xF872, 0x9DE8, + 0xF873, 0x9DED, 0xF874, 0x9EC2, 0xF875, 0x9ED0, 0xF876, 0x9EF2, 0xF877, 0x9EF3, 0xF878, 0x9F06, 0xF879, 0x9F1C, 0xF87A, 0x9F38, + 0xF87B, 0x9F37, 0xF87C, 0x9F36, 0xF87D, 0x9F43, 0xF87E, 0x9F4F, 0xF8A1, 0x9F71, 0xF8A2, 0x9F70, 0xF8A3, 0x9F6E, 0xF8A4, 0x9F6F, + 0xF8A5, 0x56D3, 0xF8A6, 0x56CD, 0xF8A7, 0x5B4E, 0xF8A8, 0x5C6D, 0xF8A9, 0x652D, 0xF8AA, 0x66ED, 0xF8AB, 0x66EE, 0xF8AC, 0x6B13, + 0xF8AD, 0x705F, 0xF8AE, 0x7061, 0xF8AF, 0x705D, 0xF8B0, 0x7060, 0xF8B1, 0x7223, 0xF8B2, 0x74DB, 0xF8B3, 0x74E5, 0xF8B4, 0x77D5, + 0xF8B5, 0x7938, 0xF8B6, 0x79B7, 0xF8B7, 0x79B6, 0xF8B8, 0x7C6A, 0xF8B9, 0x7E97, 0xF8BA, 0x7F89, 0xF8BB, 0x826D, 0xF8BC, 0x8643, + 0xF8BD, 0x8838, 0xF8BE, 0x8837, 0xF8BF, 0x8835, 0xF8C0, 0x884B, 0xF8C1, 0x8B94, 0xF8C2, 0x8B95, 0xF8C3, 0x8E9E, 0xF8C4, 0x8E9F, + 0xF8C5, 0x8EA0, 0xF8C6, 0x8E9D, 0xF8C7, 0x91BE, 0xF8C8, 0x91BD, 0xF8C9, 0x91C2, 0xF8CA, 0x946B, 0xF8CB, 0x9468, 0xF8CC, 0x9469, + 0xF8CD, 0x96E5, 0xF8CE, 0x9746, 0xF8CF, 0x9743, 0xF8D0, 0x9747, 0xF8D1, 0x97C7, 0xF8D2, 0x97E5, 0xF8D3, 0x9A5E, 0xF8D4, 0x9AD5, + 0xF8D5, 0x9B59, 0xF8D6, 0x9C63, 0xF8D7, 0x9C67, 0xF8D8, 0x9C66, 0xF8D9, 0x9C62, 0xF8DA, 0x9C5E, 0xF8DB, 0x9C60, 0xF8DC, 0x9E02, + 0xF8DD, 0x9DFE, 0xF8DE, 0x9E07, 0xF8DF, 0x9E03, 0xF8E0, 0x9E06, 0xF8E1, 0x9E05, 0xF8E2, 0x9E00, 0xF8E3, 0x9E01, 0xF8E4, 0x9E09, + 0xF8E5, 0x9DFF, 0xF8E6, 0x9DFD, 0xF8E7, 0x9E04, 0xF8E8, 0x9EA0, 0xF8E9, 0x9F1E, 0xF8EA, 0x9F46, 0xF8EB, 0x9F74, 0xF8EC, 0x9F75, + 0xF8ED, 0x9F76, 0xF8EE, 0x56D4, 0xF8EF, 0x652E, 0xF8F0, 0x65B8, 0xF8F1, 0x6B18, 0xF8F2, 0x6B19, 0xF8F3, 0x6B17, 0xF8F4, 0x6B1A, + 0xF8F5, 0x7062, 0xF8F6, 0x7226, 0xF8F7, 0x72AA, 0xF8F8, 0x77D8, 0xF8F9, 0x77D9, 0xF8FA, 0x7939, 0xF8FB, 0x7C69, 0xF8FC, 0x7C6B, + 0xF8FD, 0x7CF6, 0xF8FE, 0x7E9A, 0xF940, 0x7E98, 0xF941, 0x7E9B, 0xF942, 0x7E99, 0xF943, 0x81E0, 0xF944, 0x81E1, 0xF945, 0x8646, + 0xF946, 0x8647, 0xF947, 0x8648, 0xF948, 0x8979, 0xF949, 0x897A, 0xF94A, 0x897C, 0xF94B, 0x897B, 0xF94C, 0x89FF, 0xF94D, 0x8B98, + 0xF94E, 0x8B99, 0xF94F, 0x8EA5, 0xF950, 0x8EA4, 0xF951, 0x8EA3, 0xF952, 0x946E, 0xF953, 0x946D, 0xF954, 0x946F, 0xF955, 0x9471, + 0xF956, 0x9473, 0xF957, 0x9749, 0xF958, 0x9872, 0xF959, 0x995F, 0xF95A, 0x9C68, 0xF95B, 0x9C6E, 0xF95C, 0x9C6D, 0xF95D, 0x9E0B, + 0xF95E, 0x9E0D, 0xF95F, 0x9E10, 0xF960, 0x9E0F, 0xF961, 0x9E12, 0xF962, 0x9E11, 0xF963, 0x9EA1, 0xF964, 0x9EF5, 0xF965, 0x9F09, + 0xF966, 0x9F47, 0xF967, 0x9F78, 0xF968, 0x9F7B, 0xF969, 0x9F7A, 0xF96A, 0x9F79, 0xF96B, 0x571E, 0xF96C, 0x7066, 0xF96D, 0x7C6F, + 0xF96E, 0x883C, 0xF96F, 0x8DB2, 0xF970, 0x8EA6, 0xF971, 0x91C3, 0xF972, 0x9474, 0xF973, 0x9478, 0xF974, 0x9476, 0xF975, 0x9475, + 0xF976, 0x9A60, 0xF977, 0x9C74, 0xF978, 0x9C73, 0xF979, 0x9C71, 0xF97A, 0x9C75, 0xF97B, 0x9E14, 0xF97C, 0x9E13, 0xF97D, 0x9EF6, + 0xF97E, 0x9F0A, 0xF9A1, 0x9FA4, 0xF9A2, 0x7068, 0xF9A3, 0x7065, 0xF9A4, 0x7CF7, 0xF9A5, 0x866A, 0xF9A6, 0x883E, 0xF9A7, 0x883D, + 0xF9A8, 0x883F, 0xF9A9, 0x8B9E, 0xF9AA, 0x8C9C, 0xF9AB, 0x8EA9, 0xF9AC, 0x8EC9, 0xF9AD, 0x974B, 0xF9AE, 0x9873, 0xF9AF, 0x9874, + 0xF9B0, 0x98CC, 0xF9B1, 0x9961, 0xF9B2, 0x99AB, 0xF9B3, 0x9A64, 0xF9B4, 0x9A66, 0xF9B5, 0x9A67, 0xF9B6, 0x9B24, 0xF9B7, 0x9E15, + 0xF9B8, 0x9E17, 0xF9B9, 0x9F48, 0xF9BA, 0x6207, 0xF9BB, 0x6B1E, 0xF9BC, 0x7227, 0xF9BD, 0x864C, 0xF9BE, 0x8EA8, 0xF9BF, 0x9482, + 0xF9C0, 0x9480, 0xF9C1, 0x9481, 0xF9C2, 0x9A69, 0xF9C3, 0x9A68, 0xF9C4, 0x9B2E, 0xF9C5, 0x9E19, 0xF9C6, 0x7229, 0xF9C7, 0x864B, + 0xF9C8, 0x8B9F, 0xF9C9, 0x9483, 0xF9CA, 0x9C79, 0xF9CB, 0x9EB7, 0xF9CC, 0x7675, 0xF9CD, 0x9A6B, 0xF9CE, 0x9C7A, 0xF9CF, 0x9E1D, + 0xF9D0, 0x7069, 0xF9D1, 0x706A, 0xF9D2, 0x9EA4, 0xF9D3, 0x9F7E, 0xF9D4, 0x9F49, 0xF9D5, 0x9F98, 0xF9D6, 0x7881, 0xF9D7, 0x92B9, + 0xF9D8, 0x88CF, 0xF9D9, 0x58BB, 0xF9DA, 0x6052, 0xF9DB, 0x7CA7, 0xF9DC, 0x5AFA, 0xF9DD, 0x2554, 0xF9DE, 0x2566, 0xF9DF, 0x2557, + 0xF9E0, 0x2560, 0xF9E1, 0x256C, 0xF9E2, 0x2563, 0xF9E3, 0x255A, 0xF9E4, 0x2569, 0xF9E5, 0x255D, 0xF9E6, 0x2552, 0xF9E7, 0x2564, + 0xF9E8, 0x2555, 0xF9E9, 0x255E, 0xF9EA, 0x256A, 0xF9EB, 0x2561, 0xF9EC, 0x2558, 0xF9ED, 0x2567, 0xF9EE, 0x255B, 0xF9EF, 0x2553, + 0xF9F0, 0x2565, 0xF9F1, 0x2556, 0xF9F2, 0x255F, 0xF9F3, 0x256B, 0xF9F4, 0x2562, 0xF9F5, 0x2559, 0xF9F6, 0x2568, 0xF9F7, 0x255C, + 0xF9F8, 0x2551, 0xF9F9, 0x2550, 0xF9FA, 0x256D, 0xF9FB, 0x256E, 0xF9FC, 0x2570, 0xF9FD, 0x256F, 0xF9FE, 0x2593, 0, 0 +}; +#endif + +#if FF_CODE_PAGE == 437 || FF_CODE_PAGE == 0 +static const WCHAR uc437[] = { /* CP437(U.S.) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 720 || FF_CODE_PAGE == 0 +static const WCHAR uc720[] = { /* CP720(Arabic) to Unicode conversion table */ + 0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9, 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, + 0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 737 || FF_CODE_PAGE == 0 +static const WCHAR uc737[] = { /* CP737(Greek) to Unicode conversion table */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, + 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, + 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, + 0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 771 || FF_CODE_PAGE == 0 +static const WCHAR uc771[] = { /* CP771(KBL) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x0104, 0x0105, 0x010C, 0x010D, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0118, 0x0119, 0x0116, 0x0117, 0x012E, 0x012F, 0x0160, 0x0161, 0x0172, 0x0173, 0x016A, 0x016B, 0x017D, 0x017E, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 775 || FF_CODE_PAGE == 0 +static const WCHAR uc775[] = { /* CP775(Baltic) to Unicode conversion table */ + 0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, + 0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, + 0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, + 0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 850 || FF_CODE_PAGE == 0 +static const WCHAR uc850[] = { /* CP850(Latin 1) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 852 || FF_CODE_PAGE == 0 +static const WCHAR uc852[] = { /* CP852(Latin 2) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, + 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, + 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 855 || FF_CODE_PAGE == 0 +static const WCHAR uc855[] = { /* CP855(Cyrillic) to Unicode conversion table */ + 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, + 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, + 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, + 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, + 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 857 || FF_CODE_PAGE == 0 +static const WCHAR uc857[] = { /* CP857(Turkish) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, + 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, + 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000, 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, + 0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 860 || FF_CODE_PAGE == 0 +static const WCHAR uc860[] = { /* CP860(Portuguese) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2, + 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 861 || FF_CODE_PAGE == 0 +static const WCHAR uc861[] = { /* CP861(Icelandic) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, + 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 862 || FF_CODE_PAGE == 0 +static const WCHAR uc862[] = { /* CP862(Hebrew) to Unicode conversion table */ + 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 863 || FF_CODE_PAGE == 0 +static const WCHAR uc863[] = { /* CP863(Canadian French) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x2017, 0x00C0, + 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, + 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00BB, 0x00B3, 0x00AF, 0x00CE, 0x3210, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2219, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 864 || FF_CODE_PAGE == 0 +static const WCHAR uc864[] = { /* CP864(Arabic) to Unicode conversion table */ + 0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, + 0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, 0x00BB, 0xFEF7, 0xFEF8, 0x0000, 0x0000, 0xFEFB, 0xFEFC, 0x0000, + 0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0x0000, 0x20AC, 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5, + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F, + 0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9, + 0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9, + 0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1, + 0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, 0x0000 +}; +#endif +#if FF_CODE_PAGE == 865 || FF_CODE_PAGE == 0 +static const WCHAR uc865[] = { /* CP865(Nordic) to Unicode conversion table */ + 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, + 0x00C5, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, + 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, + 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 866 || FF_CODE_PAGE == 0 +static const WCHAR uc866[] = { /* CP866(Russian) to Unicode conversion table */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0 +}; +#endif +#if FF_CODE_PAGE == 869 || FF_CODE_PAGE == 0 +static const WCHAR uc869[] = { /* CP869(Greek 2) to Unicode conversion table */ + 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x0386, 0x00B7, 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, + 0x038A, 0x03AA, 0x038C, 0x00B7, 0x00B7, 0x038E, 0x03AB, 0x00A9, 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, + 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, + 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0A30, 0x03A1, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, + 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, + 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, + 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0 +}; +#endif + + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for static code page configuration */ +/* SBCS fixed code page */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE != 0 && FF_CODE_PAGE < 900 +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + WCHAR c = 0; + const WCHAR *p = CVTBL(uc, FF_CODE_PAGE); + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000 && cp == FF_CODE_PAGE) { /* Is it in BMP and valid code page? */ + for (c = 0; c < 0x80 && uni != p[c]; c++) ; + c = (c + 0x80) & 0xFF; + } + } + + return c; +} + +WCHAR ff_oem2uni ( /* Returns Unicode character in UTF-16, zero on error */ + WCHAR oem, /* OEM code to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + WCHAR c = 0; + const WCHAR *p = CVTBL(uc, FF_CODE_PAGE); + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + if (cp == FF_CODE_PAGE) { /* Is it a valid code page? */ + if (oem < 0x100) c = p[oem - 0x80]; + } + } + + return c; +} + +#endif + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for static code page configuration */ +/* DBCS fixed code page */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE >= 900 +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0, uc; + UINT i = 0, n, li, hi; + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000 && cp == FF_CODE_PAGE) { /* Is it in BMP and valid code page? */ + uc = (WCHAR)uni; + p = CVTBL(uni2oem, FF_CODE_PAGE); + hi = sizeof CVTBL(uni2oem, FF_CODE_PAGE) / 4 - 1; + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (uc == p[i * 2]) break; + if (uc > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + + return c; +} + + +WCHAR ff_oem2uni ( /* Returns Unicode character in UTF-16, zero on error */ + WCHAR oem, /* OEM code to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0; + UINT i = 0, n, li, hi; + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + if (cp == FF_CODE_PAGE) { /* Is it valid code page? */ + p = CVTBL(oem2uni, FF_CODE_PAGE); + hi = sizeof CVTBL(oem2uni, FF_CODE_PAGE) / 4 - 1; + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (oem == p[i * 2]) break; + if (oem > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + + return c; +} +#endif + + + +/*------------------------------------------------------------------------*/ +/* OEM <==> Unicode conversions for dynamic code page configuration */ +/*------------------------------------------------------------------------*/ + +#if FF_CODE_PAGE == 0 + +static const WORD cp_code[] = { 437, 720, 737, 771, 775, 850, 852, 855, 857, 860, 861, 862, 863, 864, 865, 866, 869, 0}; +static const WCHAR* const cp_table[] = {uc437, uc720, uc737, uc771, uc775, uc850, uc852, uc855, uc857, uc860, uc861, uc862, uc863, uc864, uc865, uc866, uc869, 0}; + + +WCHAR ff_uni2oem ( /* Returns OEM code character, zero on error */ + DWORD uni, /* UTF-16 encoded character to be converted */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0, uc; + UINT i, n, li, hi; + + + if (uni < 0x80) { /* ASCII? */ + c = (WCHAR)uni; + + } else { /* Non-ASCII */ + if (uni < 0x10000) { /* Is it in BMP? */ + uc = (WCHAR)uni; + p = 0; + if (cp < 900) { /* SBCS */ + for (i = 0; cp_code[i] != 0 && cp_code[i] != cp; i++) ; /* Get conversion table */ + p = cp_table[i]; + if (p) { /* Is it valid code page ? */ + for (c = 0; c < 0x80 && uc != p[c]; c++) ; /* Find OEM code in the table */ + c = (c + 0x80) & 0xFF; + } + } else { /* DBCS */ + switch (cp) { /* Get conversion table */ + case 932 : p = uni2oem932; hi = sizeof uni2oem932 / 4 - 1; break; + case 936 : p = uni2oem936; hi = sizeof uni2oem936 / 4 - 1; break; + case 949 : p = uni2oem949; hi = sizeof uni2oem949 / 4 - 1; break; + case 950 : p = uni2oem950; hi = sizeof uni2oem950 / 4 - 1; break; + } + if (p) { /* Is it valid code page? */ + li = 0; + for (n = 16; n; n--) { /* Find OEM code */ + i = li + (hi - li) / 2; + if (uc == p[i * 2]) break; + if (uc > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + } + } + + return c; +} + + +WCHAR ff_oem2uni ( /* Returns Unicode character in UTF-16, zero on error */ + WCHAR oem, /* OEM code to be converted (DBC if >=0x100) */ + WORD cp /* Code page for the conversion */ +) +{ + const WCHAR *p; + WCHAR c = 0; + UINT i, n, li, hi; + + + if (oem < 0x80) { /* ASCII? */ + c = oem; + + } else { /* Extended char */ + p = 0; + if (cp < 900) { /* SBCS */ + for (i = 0; cp_code[i] != 0 && cp_code[i] != cp; i++) ; /* Get table */ + p = cp_table[i]; + if (p) { /* Is it a valid CP ? */ + if (oem < 0x100) c = p[oem - 0x80]; + } + } else { /* DBCS */ + switch (cp) { + case 932 : p = oem2uni932; hi = sizeof oem2uni932 / 4 - 1; break; + case 936 : p = oem2uni936; hi = sizeof oem2uni936 / 4 - 1; break; + case 949 : p = oem2uni949; hi = sizeof oem2uni949 / 4 - 1; break; + case 950 : p = oem2uni950; hi = sizeof oem2uni950 / 4 - 1; break; + } + if (p) { + li = 0; + for (n = 16; n; n--) { + i = li + (hi - li) / 2; + if (oem == p[i * 2]) break; + if (oem > p[i * 2]) { + li = i; + } else { + hi = i; + } + } + if (n != 0) c = p[i * 2 + 1]; + } + } + } + + return c; +} +#endif + + + +/*------------------------------------------------------------------------*/ +/* Unicode up-case conversion */ +/*------------------------------------------------------------------------*/ + +DWORD ff_wtoupper ( /* Returns up-converted code point */ + DWORD uni /* Unicode code point to be up-converted */ +) +{ + const WORD *p; + WORD uc, bc, nc, cmd; + static const WORD cvt1[] = { /* Compressed up conversion table for U+0000 - U+0FFF */ + /* Basic Latin */ + 0x0061,0x031A, + /* Latin-1 Supplement */ + 0x00E0,0x0317, + 0x00F8,0x0307, + 0x00FF,0x0001,0x0178, + /* Latin Extended-A */ + 0x0100,0x0130, + 0x0132,0x0106, + 0x0139,0x0110, + 0x014A,0x012E, + 0x0179,0x0106, + /* Latin Extended-B */ + 0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA, + 0x01CD,0x0110, + 0x01DD,0x0001,0x018E, + 0x01DE,0x0112, + 0x01F3,0x0003,0x01F1,0x01F4,0x01F4, + 0x01F8,0x0128, + 0x0222,0x0112, + 0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241, + 0x0246,0x010A, + /* IPA Extensions */ + 0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7, + /* Greek, Coptic */ + 0x037B,0x0003,0x03FD,0x03FE,0x03FF, + 0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A, + 0x03B1,0x0311, + 0x03C2,0x0002,0x03A3,0x03A3, + 0x03C4,0x0308, + 0x03CC,0x0003,0x038C,0x038E,0x038F, + 0x03D8,0x0118, + 0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA, + /* Cyrillic */ + 0x0430,0x0320, + 0x0450,0x0710, + 0x0460,0x0122, + 0x048A,0x0136, + 0x04C1,0x010E, + 0x04CF,0x0001,0x04C0, + 0x04D0,0x0144, + /* Armenian */ + 0x0561,0x0426, + + 0x0000 /* EOT */ + }; + static const WORD cvt2[] = { /* Compressed up conversion table for U+1000 - U+FFFF */ + /* Phonetic Extensions */ + 0x1D7D,0x0001,0x2C63, + /* Latin Extended Additional */ + 0x1E00,0x0196, + 0x1EA0,0x015A, + /* Greek Extended */ + 0x1F00,0x0608, + 0x1F10,0x0606, + 0x1F20,0x0608, + 0x1F30,0x0608, + 0x1F40,0x0606, + 0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F, + 0x1F60,0x0608, + 0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB, + 0x1F80,0x0608, + 0x1F90,0x0608, + 0x1FA0,0x0608, + 0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC, + 0x1FCC,0x0001,0x1FC3, + 0x1FD0,0x0602, + 0x1FE0,0x0602, + 0x1FE5,0x0001,0x1FEC, + 0x1FF3,0x0001,0x1FFC, + /* Letterlike Symbols */ + 0x214E,0x0001,0x2132, + /* Number forms */ + 0x2170,0x0210, + 0x2184,0x0001,0x2183, + /* Enclosed Alphanumerics */ + 0x24D0,0x051A, + 0x2C30,0x042F, + /* Latin Extended-C */ + 0x2C60,0x0102, + 0x2C67,0x0106, 0x2C75,0x0102, + /* Coptic */ + 0x2C80,0x0164, + /* Georgian Supplement */ + 0x2D00,0x0826, + /* Full-width */ + 0xFF41,0x031A, + + 0x0000 /* EOT */ + }; + + + if (uni < 0x10000) { /* Is it in BMP? */ + uc = (WORD)uni; + p = uc < 0x1000 ? cvt1 : cvt2; + for (;;) { + bc = *p++; /* Get the block base */ + if (bc == 0 || uc < bc) break; /* Not matched? */ + nc = *p++; cmd = nc >> 8; nc &= 0xFF; /* Get processing command and block size */ + if (uc < bc + nc) { /* In the block? */ + switch (cmd) { + case 0: uc = p[uc - bc]; break; /* Table conversion */ + case 1: uc -= (uc - bc) & 1; break; /* Case pairs */ + case 2: uc -= 16; break; /* Shift -16 */ + case 3: uc -= 32; break; /* Shift -32 */ + case 4: uc -= 48; break; /* Shift -48 */ + case 5: uc -= 26; break; /* Shift -26 */ + case 6: uc += 8; break; /* Shift +8 */ + case 7: uc -= 80; break; /* Shift -80 */ + case 8: uc -= 0x1C60; break; /* Shift -0x1C60 */ + } + break; + } + if (cmd == 0) p += nc; /* Skip table if needed */ + } + uni = uc; + } + + return uni; +} + + +#endif /* #if FF_USE_LFN */ From f43ffca4885df49c2bec5ed8328d87b8baf1325f Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 02:39:06 +0200 Subject: [PATCH 361/659] Externals/FatFs: Avoid conflicts with Windows.h. --- Externals/FatFs/ff.c | 186 +++++++++++++++++++++---------------------- Externals/FatFs/ff.h | 76 +++++++++--------- 2 files changed, 131 insertions(+), 131 deletions(-) diff --git a/Externals/FatFs/ff.c b/Externals/FatFs/ff.c index 25a4e49cbd..5bb830e470 100644 --- a/Externals/FatFs/ff.c +++ b/Externals/FatFs/ff.c @@ -728,13 +728,13 @@ static int dbc_2nd (BYTE c) #if FF_USE_LFN -/* Get a Unicode code point from the TCHAR string in defined API encodeing */ +/* Get a Unicode code point from the FATFS_TCHAR string in defined API encodeing */ static DWORD tchar2uni ( /* Returns a character in UTF-16 encoding (>=0x10000 on surrogate pair, 0xFFFFFFFF on decode error) */ - const TCHAR** str /* Pointer to pointer to TCHAR string in configured encoding */ + const FATFS_TCHAR** str /* Pointer to pointer to FATFS_TCHAR string in configured encoding */ ) { DWORD uc; - const TCHAR *p = *str; + const FATFS_TCHAR *p = *str; #if FF_LFN_UNICODE == 1 /* UTF-16 input */ WCHAR wc; @@ -771,7 +771,7 @@ static DWORD tchar2uni ( /* Returns a character in UTF-16 encoding (>=0x10000 on } #elif FF_LFN_UNICODE == 3 /* UTF-32 input */ - uc = (TCHAR)*p++; /* Get a unit */ + uc = (FATFS_TCHAR)*p++; /* Get a unit */ if (uc >= 0x110000 || IsSurrogate(uc)) return 0xFFFFFFFF; /* Wrong code? */ if (uc >= 0x010000) uc = 0xD800DC00 | ((uc - 0x10000) << 6 & 0x3FF0000) | (uc & 0x3FF); /* Make a surrogate pair if needed */ @@ -800,7 +800,7 @@ static DWORD tchar2uni ( /* Returns a character in UTF-16 encoding (>=0x10000 on /* Store a Unicode char in defined API encoding */ static UINT put_utf ( /* Returns number of encoding units written (0:buffer overflow or wrong encoding) */ DWORD chr, /* UTF-16 encoded character (Surrogate pair if >=0x10000) */ - TCHAR* buf, /* Output buffer */ + FATFS_TCHAR* buf, /* Output buffer */ UINT szb /* Size of the buffer */ ) { @@ -824,20 +824,20 @@ static UINT put_utf ( /* Returns number of encoding units written (0:buffer over if (chr < 0x80) { /* Single byte code? */ if (szb < 1) return 0; /* Buffer overflow? */ - *buf = (TCHAR)chr; + *buf = (FATFS_TCHAR)chr; return 1; } if (chr < 0x800) { /* 2-byte sequence? */ if (szb < 2) return 0; /* Buffer overflow? */ - *buf++ = (TCHAR)(0xC0 | (chr >> 6 & 0x1F)); - *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0xC0 | (chr >> 6 & 0x1F)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 0 & 0x3F)); return 2; } if (chr < 0x10000) { /* 3-byte sequence? */ if (szb < 3 || IsSurrogate(chr)) return 0; /* Buffer overflow or wrong code? */ - *buf++ = (TCHAR)(0xE0 | (chr >> 12 & 0x0F)); - *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); - *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0xE0 | (chr >> 12 & 0x0F)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 0 & 0x3F)); return 3; } /* 4-byte sequence */ @@ -846,10 +846,10 @@ static UINT put_utf ( /* Returns number of encoding units written (0:buffer over chr = (chr & 0xFFFF) - 0xDC00; /* Get low 10 bits */ if (hc >= 0x100000 || chr >= 0x400) return 0; /* Wrong surrogate? */ chr = (hc | chr) + 0x10000; - *buf++ = (TCHAR)(0xF0 | (chr >> 18 & 0x07)); - *buf++ = (TCHAR)(0x80 | (chr >> 12 & 0x3F)); - *buf++ = (TCHAR)(0x80 | (chr >> 6 & 0x3F)); - *buf++ = (TCHAR)(0x80 | (chr >> 0 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0xF0 | (chr >> 18 & 0x07)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 12 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 6 & 0x3F)); + *buf++ = (FATFS_TCHAR)(0x80 | (chr >> 0 & 0x3F)); return 4; #elif FF_LFN_UNICODE == 3 /* UTF-32 output */ @@ -862,7 +862,7 @@ static UINT put_utf ( /* Returns number of encoding units written (0:buffer over if (hc >= 0x100000 || chr >= 0x400) return 0; /* Wrong surrogate? */ chr = (hc | chr) + 0x10000; } - *buf++ = (TCHAR)chr; + *buf++ = (FATFS_TCHAR)chr; return 1; #else /* ANSI/OEM output */ @@ -872,11 +872,11 @@ static UINT put_utf ( /* Returns number of encoding units written (0:buffer over if (wc >= 0x100) { /* Is this a DBC? */ if (szb < 2) return 0; *buf++ = (char)(wc >> 8); /* Store DBC 1st byte */ - *buf++ = (TCHAR)wc; /* Store DBC 2nd byte */ + *buf++ = (FATFS_TCHAR)wc; /* Store DBC 2nd byte */ return 2; } if (wc == 0 || szb < 1) return 0; /* Invalid char or buffer overflow? */ - *buf++ = (TCHAR)wc; /* Store the character */ + *buf++ = (FATFS_TCHAR)wc; /* Store the character */ return 1; #endif } @@ -2595,7 +2595,7 @@ static void get_fileinfo ( FATFS *fs = dp->obj.fs; UINT nw; #else - TCHAR c; + FATFS_TCHAR c; #endif @@ -2668,7 +2668,7 @@ static void get_fileinfo ( if (nw == 0) { di = 0; break; } /* Buffer overflow? */ di += nw; #else /* ANSI/OEM output */ - fno->altname[di++] = (TCHAR)wc; /* Store it without any conversion */ + fno->altname[di++] = (FATFS_TCHAR)wc; /* Store it without any conversion */ #endif } fno->altname[di] = 0; /* Terminate the SFN (null string means SFN is invalid) */ @@ -2681,7 +2681,7 @@ static void get_fileinfo ( wc = (WCHAR)fno->altname[si]; if (wc == '.') lcf = NS_EXT; if (IsUpper(wc) && (dp->dir[DIR_NTres] & lcf)) wc += 0x20; - fno->fname[di] = (TCHAR)wc; + fno->fname[di] = (FATFS_TCHAR)wc; } } fno->fname[di] = 0; /* Terminate the LFN */ @@ -2691,7 +2691,7 @@ static void get_fileinfo ( #else /* Non-LFN configuration */ si = di = 0; while (si < 11) { /* Copy name body and extension */ - c = (TCHAR)dp->dir[si++]; + c = (FATFS_TCHAR)dp->dir[si++]; if (c == ' ') continue; /* Skip padding spaces */ if (c == RDDEM) c = DDEM; /* Restore replaced DDEM character */ if (si == 9) fno->fname[di++] = '.';/* Insert a . if extension is exist */ @@ -2719,7 +2719,7 @@ static void get_fileinfo ( static DWORD get_achar ( /* Get a character and advance ptr */ - const TCHAR** ptr /* Pointer to pointer to the ANSI/OEM or Unicode string */ + const FATFS_TCHAR** ptr /* Pointer to pointer to the ANSI/OEM or Unicode string */ ) { DWORD chr; @@ -2750,13 +2750,13 @@ static DWORD get_achar ( /* Get a character and advance ptr */ static int pattern_match ( /* 0:mismatched, 1:matched */ - const TCHAR* pat, /* Matching pattern */ - const TCHAR* nam, /* String to be tested */ + const FATFS_TCHAR* pat, /* Matching pattern */ + const FATFS_TCHAR* nam, /* String to be tested */ UINT skip, /* Number of pre-skip chars (number of ?s, b8:infinite (* specified)) */ UINT recur /* Recursion count */ ) { - const TCHAR *pptr, *nptr; + const FATFS_TCHAR *pptr, *nptr; DWORD pchr, nchr; UINT sk; @@ -2800,7 +2800,7 @@ static int pattern_match ( /* 0:mismatched, 1:matched */ static FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not create */ DIR* dp, /* Pointer to the directory object */ - const TCHAR** path /* Pointer to pointer to the segment in the path string */ + const FATFS_TCHAR** path /* Pointer to pointer to the segment in the path string */ ) { #if FF_USE_LFN /* LFN configuration */ @@ -2808,7 +2808,7 @@ static FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not cr WCHAR wc, *lfn; DWORD uc; UINT i, ni, si, di; - const TCHAR *p; + const FATFS_TCHAR *p; /* Create LFN into LFN working buffer */ @@ -3002,7 +3002,7 @@ static FRESULT create_name ( /* FR_OK: successful, FR_INVALID_NAME: could not cr static FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ DIR* dp, /* Directory object to return last directory and found object */ - const TCHAR* path /* Full-path string to find a file or directory */ + const FATFS_TCHAR* path /* Full-path string to find a file or directory */ ) { FRESULT res; @@ -3088,11 +3088,11 @@ static FRESULT follow_path ( /* FR_OK(0): successful, !=0: error code */ /*-----------------------------------------------------------------------*/ static int get_ldnumber ( /* Returns logical drive number (-1:invalid drive number or null pointer) */ - const TCHAR** path /* Pointer to pointer to the path name */ + const FATFS_TCHAR** path /* Pointer to pointer to the path name */ ) { - const TCHAR *tp, *tt; - TCHAR tc; + const FATFS_TCHAR *tp, *tt; + FATFS_TCHAR tc; int i; int vol = -1; #if FF_STR_VOLUME_ID /* Find string volume ID */ @@ -3118,7 +3118,7 @@ static int get_ldnumber ( /* Returns logical drive number (-1:invalid drive numb c = *sp++; tc = *tp++; if (IsLower(c)) c -= 0x20; if (IsLower(tc)) tc -= 0x20; - } while (c && (TCHAR)c == tc); + } while (c && (FATFS_TCHAR)c == tc); } while ((c || tp != tt) && ++i < FF_VOLUMES); /* Repeat for each id until pattern match */ } #endif @@ -3138,7 +3138,7 @@ static int get_ldnumber ( /* Returns logical drive number (-1:invalid drive numb c = *sp++; tc = *(++tt); if (IsLower(c)) c -= 0x20; if (IsLower(tc)) tc -= 0x20; - } while (c && (TCHAR)c == tc); + } while (c && (FATFS_TCHAR)c == tc); } while ((c || (tc != '/' && !IsTerminator(tc))) && ++i < FF_VOLUMES); /* Repeat for each ID until pattern match */ if (i < FF_VOLUMES) { /* If a volume ID is found, get the drive number and strip it */ vol = i; /* Drive number */ @@ -3330,7 +3330,7 @@ static UINT find_volume ( /* Returns BS status found in the hosting drive */ /*-----------------------------------------------------------------------*/ static FRESULT mount_volume ( /* FR_OK(0): successful, !=0: an error occurred */ - const TCHAR** path, /* Pointer to pointer to the path name (drive number) */ + const FATFS_TCHAR** path, /* Pointer to pointer to the path name (drive number) */ FATFS** rfs, /* Pointer to pointer to the found filesystem object */ BYTE mode /* !=0: Check write protection for write access */ ) @@ -3604,14 +3604,14 @@ static FRESULT validate ( /* Returns FR_OK or FR_INVALID_OBJECT */ FRESULT f_mount ( FATFS* fs, /* Pointer to the filesystem object to be registered (NULL:unmount)*/ - const TCHAR* path, /* Logical drive number to be mounted/unmounted */ + const FATFS_TCHAR* path, /* Logical drive number to be mounted/unmounted */ BYTE opt /* Mount option: 0=Do not mount (delayed mount), 1=Mount immediately */ ) { FATFS *cfs; int vol; FRESULT res; - const TCHAR *rp = path; + const FATFS_TCHAR *rp = path; /* Get logical drive number */ @@ -3652,7 +3652,7 @@ FRESULT f_mount ( FRESULT f_open ( FIL* fp, /* Pointer to the blank file object */ - const TCHAR* path, /* Pointer to the file name */ + const FATFS_TCHAR* path, /* Pointer to the file name */ BYTE mode /* Access mode and open mode flags */ ) { @@ -4186,7 +4186,7 @@ FRESULT f_close ( /*-----------------------------------------------------------------------*/ FRESULT f_chdrive ( - const TCHAR* path /* Drive number to set */ + const FATFS_TCHAR* path /* Drive number to set */ ) { int vol; @@ -4203,7 +4203,7 @@ FRESULT f_chdrive ( FRESULT f_chdir ( - const TCHAR* path /* Pointer to the directory path */ + const FATFS_TCHAR* path /* Pointer to the directory path */ ) { #if FF_STR_VOLUME_ID == 2 @@ -4265,8 +4265,8 @@ FRESULT f_chdir ( #if FF_FS_RPATH >= 2 FRESULT f_getcwd ( - TCHAR* buff, /* Pointer to the directory path */ - UINT len /* Size of buff in unit of TCHAR */ + FATFS_TCHAR* buff, /* Pointer to the directory path */ + UINT len /* Size of buff in unit of FATFS_TCHAR */ ) { FRESULT res; @@ -4274,7 +4274,7 @@ FRESULT f_getcwd ( FATFS *fs; UINT i, n; DWORD ccl; - TCHAR *tp = buff; + FATFS_TCHAR *tp = buff; #if FF_VOLUMES >= 2 UINT vl; #if FF_STR_VOLUME_ID @@ -4287,7 +4287,7 @@ FRESULT f_getcwd ( /* Get logical drive */ buff[0] = 0; /* Set null string to get current volume */ - res = mount_volume((const TCHAR**)&buff, &fs, 0); /* Get current volume */ + res = mount_volume((const FATFS_TCHAR**)&buff, &fs, 0); /* Get current volume */ if (res == FR_OK) { dj.obj.fs = fs; INIT_NAMBUF(fs); @@ -4328,15 +4328,15 @@ FRESULT f_getcwd ( #if FF_STR_VOLUME_ID >= 1 /* String volume ID */ for (n = 0, vp = (const char*)VolumeStr[CurrVol]; vp[n]; n++) ; if (i >= n + 2) { - if (FF_STR_VOLUME_ID == 2) *tp++ = (TCHAR)'/'; - for (vl = 0; vl < n; *tp++ = (TCHAR)vp[vl], vl++) ; - if (FF_STR_VOLUME_ID == 1) *tp++ = (TCHAR)':'; + if (FF_STR_VOLUME_ID == 2) *tp++ = (FATFS_TCHAR)'/'; + for (vl = 0; vl < n; *tp++ = (FATFS_TCHAR)vp[vl], vl++) ; + if (FF_STR_VOLUME_ID == 1) *tp++ = (FATFS_TCHAR)':'; vl++; } #else /* Numeric volume ID */ if (i >= 3) { - *tp++ = (TCHAR)'0' + CurrVol; - *tp++ = (TCHAR)':'; + *tp++ = (FATFS_TCHAR)'0' + CurrVol; + *tp++ = (FATFS_TCHAR)':'; vl = 2; } #endif @@ -4530,7 +4530,7 @@ FRESULT f_lseek ( FRESULT f_opendir ( DIR* dp, /* Pointer to directory object to create */ - const TCHAR* path /* Pointer to the directory path */ + const FATFS_TCHAR* path /* Pointer to the directory path */ ) { FRESULT res; @@ -4688,8 +4688,8 @@ FRESULT f_findnext ( FRESULT f_findfirst ( DIR* dp, /* Pointer to the blank directory object */ FILINFO* fno, /* Pointer to the file information structure */ - const TCHAR* path, /* Pointer to the directory to open */ - const TCHAR* pattern /* Pointer to the matching pattern */ + const FATFS_TCHAR* path, /* Pointer to the directory to open */ + const FATFS_TCHAR* pattern /* Pointer to the matching pattern */ ) { FRESULT res; @@ -4713,7 +4713,7 @@ FRESULT f_findfirst ( /*-----------------------------------------------------------------------*/ FRESULT f_stat ( - const TCHAR* path, /* Pointer to the file path */ + const FATFS_TCHAR* path, /* Pointer to the file path */ FILINFO* fno /* Pointer to file information to return */ ) { @@ -4748,7 +4748,7 @@ FRESULT f_stat ( /*-----------------------------------------------------------------------*/ FRESULT f_getfree ( - const TCHAR* path, /* Logical drive number */ + const FATFS_TCHAR* path, /* Logical drive number */ DWORD* nclst, /* Pointer to a variable to return number of free clusters */ FATFS** fatfs /* Pointer to return pointer to corresponding filesystem object */ ) @@ -4890,7 +4890,7 @@ FRESULT f_truncate ( /*-----------------------------------------------------------------------*/ FRESULT f_unlink ( - const TCHAR* path /* Pointer to the file or directory path */ + const FATFS_TCHAR* path /* Pointer to the file or directory path */ ) { FRESULT res; @@ -4984,7 +4984,7 @@ FRESULT f_unlink ( /*-----------------------------------------------------------------------*/ FRESULT f_mkdir ( - const TCHAR* path /* Pointer to the directory path */ + const FATFS_TCHAR* path /* Pointer to the directory path */ ) { FRESULT res; @@ -5068,8 +5068,8 @@ FRESULT f_mkdir ( /*-----------------------------------------------------------------------*/ FRESULT f_rename ( - const TCHAR* path_old, /* Pointer to the object name to be renamed */ - const TCHAR* path_new /* Pointer to the new name */ + const FATFS_TCHAR* path_old, /* Pointer to the object name to be renamed */ + const FATFS_TCHAR* path_new /* Pointer to the new name */ ) { FRESULT res; @@ -5178,7 +5178,7 @@ FRESULT f_rename ( /*-----------------------------------------------------------------------*/ FRESULT f_chmod ( - const TCHAR* path, /* Pointer to the file path */ + const FATFS_TCHAR* path, /* Pointer to the file path */ BYTE attr, /* Attribute bits */ BYTE mask /* Attribute mask to change */ ) @@ -5225,7 +5225,7 @@ FRESULT f_chmod ( /*-----------------------------------------------------------------------*/ FRESULT f_utime ( - const TCHAR* path, /* Pointer to the file/directory name */ + const FATFS_TCHAR* path, /* Pointer to the file/directory name */ const FILINFO* fno /* Pointer to the timestamp to be set */ ) { @@ -5272,8 +5272,8 @@ FRESULT f_utime ( /*-----------------------------------------------------------------------*/ FRESULT f_getlabel ( - const TCHAR* path, /* Logical drive number */ - TCHAR* label, /* Buffer to store the volume label */ + const FATFS_TCHAR* path, /* Logical drive number */ + FATFS_TCHAR* label, /* Buffer to store the volume label */ DWORD* vsn /* Variable to store the volume serial number */ ) { @@ -5322,7 +5322,7 @@ FRESULT f_getlabel ( if (wc == 0) { di = 0; break; } /* Invalid char in current code page? */ di += put_utf(wc, &label[di], 4); /* Store it in Unicode */ #else /* ANSI/OEM output */ - label[di++] = (TCHAR)wc; + label[di++] = (FATFS_TCHAR)wc; #endif } do { /* Truncate trailing spaces */ @@ -5369,7 +5369,7 @@ FRESULT f_getlabel ( /*-----------------------------------------------------------------------*/ FRESULT f_setlabel ( - const TCHAR* label /* Volume label to set with heading logical drive number */ + const FATFS_TCHAR* label /* Volume label to set with heading logical drive number */ ) { FRESULT res; @@ -5800,7 +5800,7 @@ static FRESULT create_partition ( FRESULT f_mkfs ( - const TCHAR* path, /* Logical drive number */ + const FATFS_TCHAR* path, /* Logical drive number */ const MKFS_PARM* opt, /* Format options */ void* work, /* Pointer to working buffer (null: use heap memory) */ UINT len /* Size of working buffer [byte] */ @@ -6335,14 +6335,14 @@ FRESULT f_fdisk ( /* Get a String from the File */ /*-----------------------------------------------------------------------*/ -TCHAR* f_gets ( - TCHAR* buff, /* Pointer to the buffer to store read string */ +FATFS_TCHAR* f_gets ( + FATFS_TCHAR* buff, /* Pointer to the buffer to store read string */ int len, /* Size of string buffer (items) */ FIL* fp /* Pointer to the file object */ ) { int nc = 0; - TCHAR *p = buff; + FATFS_TCHAR *p = buff; BYTE s[4]; UINT rc; DWORD dc; @@ -6407,32 +6407,32 @@ TCHAR* f_gets ( if (FF_USE_STRFUNC == 2 && dc == '\r') continue; /* Strip \r off if needed */ #if FF_LFN_UNICODE == 1 || FF_LFN_UNICODE == 3 /* Output it in UTF-16/32 encoding */ if (FF_LFN_UNICODE == 1 && dc >= 0x10000) { /* Out of BMP at UTF-16? */ - *p++ = (TCHAR)(0xD800 | ((dc >> 10) - 0x40)); nc++; /* Make and output high surrogate */ + *p++ = (FATFS_TCHAR)(0xD800 | ((dc >> 10) - 0x40)); nc++; /* Make and output high surrogate */ dc = 0xDC00 | (dc & 0x3FF); /* Make low surrogate */ } - *p++ = (TCHAR)dc; nc++; + *p++ = (FATFS_TCHAR)dc; nc++; if (dc == '\n') break; /* End of line? */ #elif FF_LFN_UNICODE == 2 /* Output it in UTF-8 encoding */ if (dc < 0x80) { /* Single byte? */ - *p++ = (TCHAR)dc; + *p++ = (FATFS_TCHAR)dc; nc++; if (dc == '\n') break; /* End of line? */ } else { if (dc < 0x800) { /* 2-byte sequence? */ - *p++ = (TCHAR)(0xC0 | (dc >> 6 & 0x1F)); - *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + *p++ = (FATFS_TCHAR)(0xC0 | (dc >> 6 & 0x1F)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 0 & 0x3F)); nc += 2; } else { if (dc < 0x10000) { /* 3-byte sequence? */ - *p++ = (TCHAR)(0xE0 | (dc >> 12 & 0x0F)); - *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); - *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + *p++ = (FATFS_TCHAR)(0xE0 | (dc >> 12 & 0x0F)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 0 & 0x3F)); nc += 3; } else { /* 4-byte sequence? */ - *p++ = (TCHAR)(0xF0 | (dc >> 18 & 0x07)); - *p++ = (TCHAR)(0x80 | (dc >> 12 & 0x3F)); - *p++ = (TCHAR)(0x80 | (dc >> 6 & 0x3F)); - *p++ = (TCHAR)(0x80 | (dc >> 0 & 0x3F)); + *p++ = (FATFS_TCHAR)(0xF0 | (dc >> 18 & 0x07)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 12 & 0x3F)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 6 & 0x3F)); + *p++ = (FATFS_TCHAR)(0x80 | (dc >> 0 & 0x3F)); nc += 4; } } @@ -6447,7 +6447,7 @@ TCHAR* f_gets ( if (rc != 1) break; /* EOF? */ dc = s[0]; if (FF_USE_STRFUNC == 2 && dc == '\r') continue; - *p++ = (TCHAR)dc; nc++; + *p++ = (FATFS_TCHAR)dc; nc++; if (dc == '\n') break; } #endif @@ -6485,7 +6485,7 @@ typedef struct { /* Buffered file write with code conversion */ -static void putc_bfd (putbuff* pb, TCHAR c) +static void putc_bfd (putbuff* pb, FATFS_TCHAR c) { UINT n; int i, nc; @@ -6493,7 +6493,7 @@ static void putc_bfd (putbuff* pb, TCHAR c) WCHAR hs, wc; #if FF_LFN_UNICODE == 2 DWORD dc; - const TCHAR *tp; + const FATFS_TCHAR *tp; #endif #endif @@ -6535,7 +6535,7 @@ static void putc_bfd (putbuff* pb, TCHAR c) return; } } - tp = (const TCHAR*)pb->bs; + tp = (const FATFS_TCHAR*)pb->bs; dc = tchar2uni(&tp); /* UTF-8 ==> UTF-16 */ if (dc == 0xFFFFFFFF) return; /* Wrong code? */ wc = (WCHAR)dc; @@ -6638,7 +6638,7 @@ static void putc_init (putbuff* pb, FIL* fp) int f_putc ( - TCHAR c, /* A character to be output */ + FATFS_TCHAR c, /* A character to be output */ FIL* fp /* Pointer to the file object */ ) { @@ -6658,7 +6658,7 @@ int f_putc ( /*-----------------------------------------------------------------------*/ int f_puts ( - const TCHAR* str, /* Pointer to the string to be output */ + const FATFS_TCHAR* str, /* Pointer to the string to be output */ FIL* fp /* Pointer to the file object */ ) { @@ -6727,7 +6727,7 @@ static void ftoa ( char* buf, /* Buffer to output the floating point string */ double val, /* Value to output */ int prec, /* Number of fractional digits */ - TCHAR fmt /* Notation */ + FATFS_TCHAR fmt /* Notation */ ) { int d; @@ -6800,7 +6800,7 @@ static void ftoa ( int f_printf ( FIL* fp, /* Pointer to the file object */ - const TCHAR* fmt, /* Pointer to the format string */ + const FATFS_TCHAR* fmt, /* Pointer to the format string */ ... /* Optional arguments... */ ) { @@ -6813,8 +6813,8 @@ int f_printf ( #else DWORD v; #endif - TCHAR tc, pad, *tp; - TCHAR nul = 0; + FATFS_TCHAR tc, pad, *tp; + FATFS_TCHAR nul = 0; char d, str[SZ_NUM_BUF]; @@ -6879,10 +6879,10 @@ int f_printf ( case 'X': /* Unsigned hexdecimal (upper case) */ r = 16; break; case 'c': /* Character */ - putc_bfd(&pb, (TCHAR)va_arg(arp, int)); + putc_bfd(&pb, (FATFS_TCHAR)va_arg(arp, int)); continue; case 's': /* String */ - tp = va_arg(arp, TCHAR*); /* Get a pointer argument */ + tp = va_arg(arp, FATFS_TCHAR*); /* Get a pointer argument */ if (!tp) tp = &nul; /* Null ptr generates a null string */ for (j = 0; tp[j]; j++) ; /* j = tcslen(tp) */ if (prec >= 0 && j > (UINT)prec) j = prec; /* Limited length of string body */ @@ -6937,7 +6937,7 @@ int f_printf ( if (f & 1) str[i++] = '-'; /* Sign */ /* Write it */ for (j = i; !(f & 2) && j < w; j++) putc_bfd(&pb, pad); /* Left pads */ - do putc_bfd(&pb, (TCHAR)str[--i]); while (i); /* Body */ + do putc_bfd(&pb, (FATFS_TCHAR)str[--i]); while (i); /* Body */ while (j++ < w) putc_bfd(&pb, ' '); /* Right pads */ } diff --git a/Externals/FatFs/ff.h b/Externals/FatFs/ff.h index 486657637c..b1be86be94 100644 --- a/Externals/FatFs/ff.h +++ b/Externals/FatFs/ff.h @@ -85,26 +85,26 @@ typedef DWORD LBA_t; -/* Type of path name strings on FatFs API (TCHAR) */ +/* Type of path name strings on FatFs API (FATFS_TCHAR) */ #if FF_USE_LFN && FF_LFN_UNICODE == 1 /* Unicode in UTF-16 encoding */ -typedef WCHAR TCHAR; -#define _T(x) L ## x -#define _TEXT(x) L ## x +typedef WCHAR FATFS_TCHAR; +#define FATFS__T(x) L ## x +#define FATFS__TEXT(x) L ## x #elif FF_USE_LFN && FF_LFN_UNICODE == 2 /* Unicode in UTF-8 encoding */ -typedef char TCHAR; -#define _T(x) u8 ## x -#define _TEXT(x) u8 ## x +typedef char FATFS_TCHAR; +#define FATFS__T(x) u8 ## x +#define FATFS__TEXT(x) u8 ## x #elif FF_USE_LFN && FF_LFN_UNICODE == 3 /* Unicode in UTF-32 encoding */ -typedef DWORD TCHAR; -#define _T(x) U ## x -#define _TEXT(x) U ## x +typedef DWORD FATFS_TCHAR; +#define FATFS__T(x) U ## x +#define FATFS__TEXT(x) U ## x #elif FF_USE_LFN && (FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 3) #error Wrong FF_LFN_UNICODE setting #else /* ANSI/OEM code in SBCS/DBCS */ -typedef char TCHAR; -#define _T(x) x -#define _TEXT(x) x +typedef char FATFS_TCHAR; +#define FATFS__T(x) x +#define FATFS__TEXT(x) x #endif @@ -236,7 +236,7 @@ typedef struct { DWORD blk_ofs; /* Offset of current entry block being processed (0xFFFFFFFF:Invalid) */ #endif #if FF_USE_FIND - const TCHAR* pat; /* Pointer to the name matching pattern */ + const FATFS_TCHAR* pat; /* Pointer to the name matching pattern */ #endif } DIR; @@ -250,10 +250,10 @@ typedef struct { WORD ftime; /* Modified time */ BYTE fattrib; /* File attribute */ #if FF_USE_LFN - TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */ - TCHAR fname[FF_LFN_BUF + 1]; /* Primary file name */ + FATFS_TCHAR altname[FF_SFN_BUF + 1];/* Altenative file name */ + FATFS_TCHAR fname[FF_LFN_BUF + 1]; /* Primary file name */ #else - TCHAR fname[12 + 1]; /* File name */ + FATFS_TCHAR fname[12 + 1]; /* File name */ #endif } FILINFO; @@ -301,40 +301,40 @@ typedef enum { /*--------------------------------------------------------------*/ /* FatFs module application interface */ -FRESULT f_open (FIL* fp, const TCHAR* path, BYTE mode); /* Open or create a file */ +FRESULT f_open (FIL* fp, const FATFS_TCHAR* path, BYTE mode); /* Open or create a file */ FRESULT f_close (FIL* fp); /* Close an open file object */ FRESULT f_read (FIL* fp, void* buff, UINT btr, UINT* br); /* Read data from the file */ FRESULT f_write (FIL* fp, const void* buff, UINT btw, UINT* bw); /* Write data to the file */ FRESULT f_lseek (FIL* fp, FSIZE_t ofs); /* Move file pointer of the file object */ FRESULT f_truncate (FIL* fp); /* Truncate the file */ FRESULT f_sync (FIL* fp); /* Flush cached data of the writing file */ -FRESULT f_opendir (DIR* dp, const TCHAR* path); /* Open a directory */ +FRESULT f_opendir (DIR* dp, const FATFS_TCHAR* path); /* Open a directory */ FRESULT f_closedir (DIR* dp); /* Close an open directory */ FRESULT f_readdir (DIR* dp, FILINFO* fno); /* Read a directory item */ -FRESULT f_findfirst (DIR* dp, FILINFO* fno, const TCHAR* path, const TCHAR* pattern); /* Find first file */ +FRESULT f_findfirst (DIR* dp, FILINFO* fno, const FATFS_TCHAR* path, const FATFS_TCHAR* pattern); /* Find first file */ FRESULT f_findnext (DIR* dp, FILINFO* fno); /* Find next file */ -FRESULT f_mkdir (const TCHAR* path); /* Create a sub directory */ -FRESULT f_unlink (const TCHAR* path); /* Delete an existing file or directory */ -FRESULT f_rename (const TCHAR* path_old, const TCHAR* path_new); /* Rename/Move a file or directory */ -FRESULT f_stat (const TCHAR* path, FILINFO* fno); /* Get file status */ -FRESULT f_chmod (const TCHAR* path, BYTE attr, BYTE mask); /* Change attribute of a file/dir */ -FRESULT f_utime (const TCHAR* path, const FILINFO* fno); /* Change timestamp of a file/dir */ -FRESULT f_chdir (const TCHAR* path); /* Change current directory */ -FRESULT f_chdrive (const TCHAR* path); /* Change current drive */ -FRESULT f_getcwd (TCHAR* buff, UINT len); /* Get current directory */ -FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */ -FRESULT f_getlabel (const TCHAR* path, TCHAR* label, DWORD* vsn); /* Get volume label */ -FRESULT f_setlabel (const TCHAR* label); /* Set volume label */ +FRESULT f_mkdir (const FATFS_TCHAR* path); /* Create a sub directory */ +FRESULT f_unlink (const FATFS_TCHAR* path); /* Delete an existing file or directory */ +FRESULT f_rename (const FATFS_TCHAR* path_old, const FATFS_TCHAR* path_new); /* Rename/Move a file or directory */ +FRESULT f_stat (const FATFS_TCHAR* path, FILINFO* fno); /* Get file status */ +FRESULT f_chmod (const FATFS_TCHAR* path, BYTE attr, BYTE mask); /* Change attribute of a file/dir */ +FRESULT f_utime (const FATFS_TCHAR* path, const FILINFO* fno); /* Change timestamp of a file/dir */ +FRESULT f_chdir (const FATFS_TCHAR* path); /* Change current directory */ +FRESULT f_chdrive (const FATFS_TCHAR* path); /* Change current drive */ +FRESULT f_getcwd (FATFS_TCHAR* buff, UINT len); /* Get current directory */ +FRESULT f_getfree (const FATFS_TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */ +FRESULT f_getlabel (const FATFS_TCHAR* path, FATFS_TCHAR* label, DWORD* vsn); /* Get volume label */ +FRESULT f_setlabel (const FATFS_TCHAR* label); /* Set volume label */ FRESULT f_forward (FIL* fp, UINT(*func)(const BYTE*,UINT), UINT btf, UINT* bf); /* Forward data to the stream */ FRESULT f_expand (FIL* fp, FSIZE_t fsz, BYTE opt); /* Allocate a contiguous block to the file */ -FRESULT f_mount (FATFS* fs, const TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */ -FRESULT f_mkfs (const TCHAR* path, const MKFS_PARM* opt, void* work, UINT len); /* Create a FAT volume */ +FRESULT f_mount (FATFS* fs, const FATFS_TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */ +FRESULT f_mkfs (const FATFS_TCHAR* path, const MKFS_PARM* opt, void* work, UINT len); /* Create a FAT volume */ FRESULT f_fdisk (BYTE pdrv, const LBA_t ptbl[], void* work); /* Divide a physical drive into some partitions */ FRESULT f_setcp (WORD cp); /* Set current code page */ -int f_putc (TCHAR c, FIL* fp); /* Put a character to the file */ -int f_puts (const TCHAR* str, FIL* cp); /* Put a string to the file */ -int f_printf (FIL* fp, const TCHAR* str, ...); /* Put a formatted string to the file */ -TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the file */ +int f_putc (FATFS_TCHAR c, FIL* fp); /* Put a character to the file */ +int f_puts (const FATFS_TCHAR* str, FIL* cp); /* Put a string to the file */ +int f_printf (FIL* fp, const FATFS_TCHAR* str, ...); /* Put a formatted string to the file */ +FATFS_TCHAR* f_gets (FATFS_TCHAR* buff, int len, FIL* fp); /* Get a string from the file */ #define f_eof(fp) ((int)((fp)->fptr == (fp)->obj.objsize)) #define f_error(fp) ((fp)->err) From 4ad00e84e77843b7ce9ba9f163305b5e43586d4f Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 07:20:16 +0200 Subject: [PATCH 362/659] Externals/FatFs: Configure for Dolphin. --- Externals/FatFs/ffconf.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Externals/FatFs/ffconf.h b/Externals/FatFs/ffconf.h index ca17485e47..69dcdb1bd3 100644 --- a/Externals/FatFs/ffconf.h +++ b/Externals/FatFs/ffconf.h @@ -30,7 +30,7 @@ / f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */ -#define FF_USE_MKFS 0 +#define FF_USE_MKFS 1 /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ @@ -42,7 +42,7 @@ /* This option switches f_expand function. (0:Disable or 1:Enable) */ -#define FF_USE_CHMOD 0 +#define FF_USE_CHMOD 1 /* This option switches attribute manipulation functions, f_chmod() and f_utime(). / (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */ @@ -113,7 +113,7 @@ */ -#define FF_USE_LFN 0 +#define FF_USE_LFN 2 #define FF_MAX_LFN 255 /* The FF_USE_LFN switches the support for LFN (long file name). / @@ -133,7 +133,7 @@ / ff_memfree() exemplified in ffsystem.c, need to be added to the project. */ -#define FF_LFN_UNICODE 0 +#define FF_LFN_UNICODE 2 /* This option switches the character encoding on the API when LFN is enabled. / / 0: ANSI/OEM in current CP (TCHAR = char) @@ -153,7 +153,7 @@ / on character encoding. When LFN is not enabled, these options have no effect. */ -#define FF_FS_RPATH 0 +#define FF_FS_RPATH 1 /* This option configures support for relative path. / / 0: Disable relative path and remove related functions. @@ -171,7 +171,7 @@ #define FF_STR_VOLUME_ID 0 -#define FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3" +#define FF_VOLUME_STRS "fat" /* FF_STR_VOLUME_ID switches support for volume ID in arbitrary strings. / When FF_STR_VOLUME_ID is set to 1 or 2, arbitrary strings can be used as drive / number in the path name. FF_VOLUME_STRS defines the volume ID strings for each @@ -278,7 +278,7 @@ /* #include // O/S definitions */ #define FF_FS_REENTRANT 0 #define FF_FS_TIMEOUT 1000 -#define FF_SYNC_t HANDLE +#define FF_SYNC_t void* /* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs / module itself. Note that regardless of this option, file access to different / volume is always re-entrant and volume control functions, f_mount(), f_mkfs() From fdc327c252d2d3e9e7a2aa7a801bcad591456946 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 03:06:55 +0200 Subject: [PATCH 363/659] Externals/FatFs: Build as part of Dolphin. Co-authored-by: Pablo Stebler --- CMakeLists.txt | 2 + Externals/ExternalsReferenceAll.props | 3 ++ Externals/FatFs/CMakeLists.txt | 12 +++++ Externals/FatFs/FatFs.vcxproj | 33 ++++++++++++ Externals/licenses.md | 2 + Source/Core/Common/CMakeLists.txt | 2 + Source/Core/Common/FatFsUtil.cpp | 78 +++++++++++++++++++++++++++ Source/Core/DolphinLib.props | 1 + Source/VSProps/Base.props | 1 + Source/dolphin-emu.sln | 11 ++++ 10 files changed, 145 insertions(+) create mode 100644 Externals/FatFs/CMakeLists.txt create mode 100644 Externals/FatFs/FatFs.vcxproj create mode 100644 Source/Core/Common/FatFsUtil.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index e3602d8bc5..1346b6da95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -969,6 +969,8 @@ include_directories(Externals/picojson) add_subdirectory(Externals/rangeset) +add_subdirectory(Externals/FatFs) + ######################################## # Pre-build events: Define configuration variables and write SCM info header # diff --git a/Externals/ExternalsReferenceAll.props b/Externals/ExternalsReferenceAll.props index 2566a4a4a0..89ea6a4680 100644 --- a/Externals/ExternalsReferenceAll.props +++ b/Externals/ExternalsReferenceAll.props @@ -34,6 +34,9 @@ {cbc76802-c128-4b17-bf6c-23b08c313e5e} + + {3F17D282-A77D-4931-B844-903AD0809A5E} + {4BC5A148-0AB3-440F-A980-A29B4B999190} diff --git a/Externals/FatFs/CMakeLists.txt b/Externals/FatFs/CMakeLists.txt new file mode 100644 index 0000000000..5777bf2a3a --- /dev/null +++ b/Externals/FatFs/CMakeLists.txt @@ -0,0 +1,12 @@ +add_library(FatFs STATIC + ff.c + ffunicode.c + diskio.h + ff.h + ffconf.h +) + +target_include_directories(FatFs +PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/Externals/FatFs/FatFs.vcxproj b/Externals/FatFs/FatFs.vcxproj new file mode 100644 index 0000000000..659f66083b --- /dev/null +++ b/Externals/FatFs/FatFs.vcxproj @@ -0,0 +1,33 @@ + + + + + + {3F17D282-A77D-4931-B844-903AD0809A5E} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Externals/licenses.md b/Externals/licenses.md index 716b794fb0..36377a4801 100644 --- a/Externals/licenses.md +++ b/Externals/licenses.md @@ -14,6 +14,8 @@ Dolphin includes or links code of the following third-party software projects: [MIT](https://github.com/discordapp/discord-rpc/blob/master/LICENSE) - [ENet](http://enet.bespin.org/): [MIT](http://enet.bespin.org/License.html) +- [FatFs](http://elm-chan.org/fsw/ff/00index_e.html): + [BSD-1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license) - [GCEmu](http://sourceforge.net/projects/gcemu-project/): GPLv2+ - [gettext](https://www.gnu.org/software/gettext/): diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 729d62c441..1edb201350 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -44,6 +44,7 @@ add_library(common EnumFormatter.h EnumMap.h Event.h + FatFsUtil.cpp FileSearch.cpp FileSearch.h FileUtil.cpp @@ -144,6 +145,7 @@ PUBLIC PRIVATE ${CURL_LIBRARIES} + FatFs ${ICONV_LIBRARIES} png ${VTUNE_LIBRARIES} diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp new file mode 100644 index 0000000000..4d8b450529 --- /dev/null +++ b/Source/Core/Common/FatFsUtil.cpp @@ -0,0 +1,78 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include +#include + +// Does not compile if diskio.h is included first. +// clang-format off +#include "ff.h" +#include "diskio.h" +// clang-format on + +// For now this is just mostly dummy functions so FatFs actually links. + +extern "C" DSTATUS disk_status(BYTE pdrv) +{ + return STA_NOINIT; +} + +extern "C" DSTATUS disk_initialize(BYTE pdrv) +{ + return STA_NOINIT; +} + +extern "C" DRESULT disk_read(BYTE pdrv, BYTE* buff, LBA_t sector, UINT count) +{ + return RES_PARERR; +} + +extern "C" DRESULT disk_write(BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count) +{ + return RES_PARERR; +} + +extern "C" DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void* buff) +{ + return RES_PARERR; +} + +extern "C" DWORD get_fattime(void) +{ + return 0; +} + +extern "C" void* ff_memalloc(UINT msize) +{ + return std::malloc(msize); +} + +extern "C" void ff_memfree(void* mblock) +{ + return std::free(mblock); +} + +extern "C" int ff_cre_syncobj(BYTE vol, FF_SYNC_t* sobj) +{ + *sobj = new std::recursive_mutex(); + return *sobj != nullptr; +} + +extern "C" int ff_req_grant(FF_SYNC_t sobj) +{ + std::recursive_mutex* m = reinterpret_cast(sobj); + m->lock(); + return 1; +} + +extern "C" void ff_rel_grant(FF_SYNC_t sobj) +{ + std::recursive_mutex* m = reinterpret_cast(sobj); + m->unlock(); +} + +extern "C" int ff_del_syncobj(FF_SYNC_t sobj) +{ + delete reinterpret_cast(sobj); + return 1; +} diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 2e7e546c78..17c2aa4345 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -725,6 +725,7 @@ + diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index ae821339cc..9e08b233a9 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -35,6 +35,7 @@ $(ExternalsDir)ed25519;%(AdditionalIncludeDirectories) $(ExternalsDir)enet\include;%(AdditionalIncludeDirectories) $(ExternalsDir)FFmpeg-bin\$(Platform)\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)FatFs;%(AdditionalIncludeDirectories) $(ExternalsDir)fmt\include;%(AdditionalIncludeDirectories) $(ExternalsDir)GL;%(AdditionalIncludeDirectories) $(ExternalsDir)glslang;$(ExternalsDir)glslang\StandAlone;$(ExternalsDir)glslang\glslang\Public;$(ExternalsDir)glslang\SPIRV;%(AdditionalIncludeDirectories) diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index b289f27548..c5b81be381 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -83,6 +83,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv_cross", "..\Externals EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "..\Externals\SDL\SDL2.vcxproj", "{8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FatFs", "..\Externals\FatFs\FatFs.vcxproj", "{3F17D282-A77D-4931-B844-903AD0809A5E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -399,6 +401,14 @@ Global {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|ARM64.Build.0 = Release|ARM64 {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|x64.ActiveCfg = Release|x64 {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}.Release|x64.Build.0 = Release|x64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Debug|ARM64.Build.0 = Debug|ARM64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Debug|x64.ActiveCfg = Debug|x64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Debug|x64.Build.0 = Debug|x64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|ARM64.ActiveCfg = Release|ARM64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|ARM64.Build.0 = Release|ARM64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|x64.ActiveCfg = Release|x64 + {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -433,6 +443,7 @@ Global {4BC5A148-0AB3-440F-A980-A29B4B999190} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {3D780617-EC8C-4721-B9FD-DFC9BB658C7C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} + {3F17D282-A77D-4931-B844-903AD0809A5E} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {64B0A343-3B94-4522-9C24-6937FE5EFB22} From 96751c4457553d71c92de2c74ffc6633aaf68958 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 03:28:34 +0200 Subject: [PATCH 364/659] Treewide: Rename references to SD Card image path to clarify they mean the image file, not the folder. --- Source/Core/Common/CommonPaths.h | 2 +- Source/Core/Common/FileUtil.cpp | 2 +- Source/Core/Common/FileUtil.h | 2 +- Source/Core/Core/Config/MainSettings.cpp | 2 +- Source/Core/Core/Config/MainSettings.h | 2 +- Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp | 2 +- Source/Core/Core/NetPlayClient.cpp | 2 +- Source/Core/DolphinQt/Settings/PathPane.cpp | 7 ++++--- Source/Core/UICommon/UICommon.cpp | 2 +- 9 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Source/Core/Common/CommonPaths.h b/Source/Core/Common/CommonPaths.h index 306dbb78ff..f697f6b383 100644 --- a/Source/Core/Common/CommonPaths.h +++ b/Source/Core/Common/CommonPaths.h @@ -128,7 +128,7 @@ #define WII_STATE "state.dat" -#define WII_SDCARD "sd.raw" +#define WII_SD_CARD_IMAGE "sd.raw" #define WII_BTDINF_BACKUP "btdinf.bak" #define WII_SETTING "setting.txt" diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index b03a22f108..030ae169a5 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -994,7 +994,7 @@ static void RebuildUserDirectories(unsigned int dir_index) s_user_paths[F_ARAMDUMP_IDX] = s_user_paths[D_DUMP_IDX] + ARAM_DUMP; s_user_paths[F_FAKEVMEMDUMP_IDX] = s_user_paths[D_DUMP_IDX] + FAKEVMEM_DUMP; s_user_paths[F_GCSRAM_IDX] = s_user_paths[D_GCUSER_IDX] + GC_SRAM; - s_user_paths[F_WIISDCARD_IDX] = s_user_paths[D_WIIROOT_IDX] + WII_SDCARD; + s_user_paths[F_WIISDCARDIMAGE_IDX] = s_user_paths[D_WIIROOT_IDX] + WII_SD_CARD_IMAGE; s_user_paths[D_MEMORYWATCHER_IDX] = s_user_paths[D_USER_IDX] + MEMORYWATCHER_DIR DIR_SEP; s_user_paths[F_MEMORYWATCHERLOCATIONS_IDX] = diff --git a/Source/Core/Common/FileUtil.h b/Source/Core/Common/FileUtil.h index 2b8d59ae2a..c0bcb8f451 100644 --- a/Source/Core/Common/FileUtil.h +++ b/Source/Core/Common/FileUtil.h @@ -79,7 +79,7 @@ enum F_GCSRAM_IDX, F_MEMORYWATCHERLOCATIONS_IDX, F_MEMORYWATCHERSOCKET_IDX, - F_WIISDCARD_IDX, + F_WIISDCARDIMAGE_IDX, F_DUALSHOCKUDPCLIENTCONFIG_IDX, F_FREELOOKCONFIG_IDX, F_GBABIOS_IDX, diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index c3161e924e..90b60000f3 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -268,7 +268,7 @@ const Info MAIN_DUMP_PATH{{System::Main, "General", "DumpPath"}, "" const Info MAIN_LOAD_PATH{{System::Main, "General", "LoadPath"}, ""}; const Info MAIN_RESOURCEPACK_PATH{{System::Main, "General", "ResourcePackPath"}, ""}; const Info MAIN_FS_PATH{{System::Main, "General", "NANDRootPath"}, ""}; -const Info MAIN_SD_PATH{{System::Main, "General", "WiiSDCardPath"}, ""}; +const Info MAIN_WII_SD_CARD_IMAGE_PATH{{System::Main, "General", "WiiSDCardPath"}, ""}; const Info MAIN_WFS_PATH{{System::Main, "General", "WFSPath"}, ""}; const Info MAIN_SHOW_LAG{{System::Main, "General", "ShowLag"}, false}; const Info MAIN_SHOW_FRAME_COUNT{{System::Main, "General", "ShowFrameCount"}, false}; diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index 4261eed960..d354414bf3 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -178,7 +178,7 @@ extern const Info MAIN_DUMP_PATH; extern const Info MAIN_LOAD_PATH; extern const Info MAIN_RESOURCEPACK_PATH; extern const Info MAIN_FS_PATH; -extern const Info MAIN_SD_PATH; +extern const Info MAIN_WII_SD_CARD_IMAGE_PATH; extern const Info MAIN_WFS_PATH; extern const Info MAIN_SHOW_LAG; extern const Info MAIN_SHOW_FRAME_COUNT; diff --git a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp index d12121ce8b..f9e56d3d74 100644 --- a/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp +++ b/Source/Core/Core/IOS/SDIO/SDIOSlot0.cpp @@ -89,7 +89,7 @@ void SDIOSlot0Device::EventNotify() void SDIOSlot0Device::OpenInternal() { - const std::string filename = File::GetUserPath(F_WIISDCARD_IDX); + const std::string filename = File::GetUserPath(F_WIISDCARDIMAGE_IDX); m_card.Open(filename, "r+b"); if (!m_card) { diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index 20c05ce4cc..d4e8e5fa35 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -2479,7 +2479,7 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier) std::string file; if (sync_identifier == GetSDCardIdentifier()) - file = File::GetUserPath(F_WIISDCARD_IDX); + file = File::GetUserPath(F_WIISDCARDIMAGE_IDX); else if (auto game = m_dialog->FindGameFile(sync_identifier)) file = game->GetFilePath(); diff --git a/Source/Core/DolphinQt/Settings/PathPane.cpp b/Source/Core/DolphinQt/Settings/PathPane.cpp index 0ffed709c4..a1eec28aa9 100644 --- a/Source/Core/DolphinQt/Settings/PathPane.cpp +++ b/Source/Core/DolphinQt/Settings/PathPane.cpp @@ -102,7 +102,8 @@ void PathPane::BrowseResourcePack() void PathPane::BrowseSDCard() { QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName( - this, tr("Select a SD Card Image"), QString::fromStdString(Config::Get(Config::MAIN_SD_PATH)), + this, tr("Select a SD Card Image"), + QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)), tr("SD Card Image (*.raw);;" "All Files (*)"))); if (!file.isEmpty()) @@ -125,7 +126,7 @@ void PathPane::BrowseWFS() void PathPane::OnSDCardPathChanged() { - Config::SetBase(Config::MAIN_SD_PATH, m_sdcard_edit->text().toStdString()); + Config::SetBase(Config::MAIN_WII_SD_CARD_IMAGE_PATH, m_sdcard_edit->text().toStdString()); } void PathPane::OnNANDPathChanged() @@ -241,7 +242,7 @@ QGridLayout* PathPane::MakePathsLayout() layout->addWidget(m_resource_pack_edit, 4, 1); layout->addWidget(resource_pack_open, 4, 2); - m_sdcard_edit = new QLineEdit(QString::fromStdString(File::GetUserPath(F_WIISDCARD_IDX))); + m_sdcard_edit = new QLineEdit(QString::fromStdString(File::GetUserPath(F_WIISDCARDIMAGE_IDX))); connect(m_sdcard_edit, &QLineEdit::editingFinished, this, &PathPane::OnSDCardPathChanged); QPushButton* sdcard_open = new NonDefaultQPushButton(QStringLiteral("...")); connect(sdcard_open, &QPushButton::clicked, this, &PathPane::BrowseSDCard); diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index 4e214d534e..b7a97a68a3 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -91,7 +91,7 @@ static void InitCustomPaths() CreateDumpPath(Config::Get(Config::MAIN_DUMP_PATH)); CreateResourcePackPath(Config::Get(Config::MAIN_RESOURCEPACK_PATH)); CreateWFSPath(Config::Get(Config::MAIN_WFS_PATH)); - File::SetUserPath(F_WIISDCARD_IDX, Config::Get(Config::MAIN_SD_PATH)); + File::SetUserPath(F_WIISDCARDIMAGE_IDX, Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)); #ifdef HAS_LIBMGBA File::SetUserPath(F_GBABIOS_IDX, Config::Get(Config::MAIN_GBA_BIOS_PATH)); File::SetUserPath(D_GBASAVES_IDX, Config::Get(Config::MAIN_GBA_SAVES_PATH)); From b66cc1caf65b3642ef4df8ab23df77897e95e4e0 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 04:10:36 +0200 Subject: [PATCH 365/659] Config and UICommon: Add config option and user path for Wii SD card sync folder. --- Source/Core/Common/CommonPaths.h | 1 + Source/Core/Common/FileUtil.cpp | 1 + Source/Core/Common/FileUtil.h | 1 + Source/Core/Core/Config/MainSettings.cpp | 4 ++++ Source/Core/Core/Config/MainSettings.h | 2 ++ Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp | 1 + Source/Core/UICommon/UICommon.cpp | 3 +++ 7 files changed, 13 insertions(+) diff --git a/Source/Core/Common/CommonPaths.h b/Source/Core/Common/CommonPaths.h index f697f6b383..9bb1aeb12e 100644 --- a/Source/Core/Common/CommonPaths.h +++ b/Source/Core/Common/CommonPaths.h @@ -73,6 +73,7 @@ #define RESOURCEPACK_DIR "ResourcePacks" #define DYNAMICINPUT_DIR "DynamicInputTextures" #define GRAPHICSMOD_DIR "GraphicMods" +#define WIISDSYNC_DIR "WiiSDSync" // This one is only used to remove it if it was present #define SHADERCACHE_LEGACY_DIR "ShaderCache" diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 030ae169a5..99e429eba4 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -978,6 +978,7 @@ static void RebuildUserDirectories(unsigned int dir_index) s_user_paths[D_RESOURCEPACK_IDX] = s_user_paths[D_USER_IDX] + RESOURCEPACK_DIR DIR_SEP; s_user_paths[D_DYNAMICINPUT_IDX] = s_user_paths[D_LOAD_IDX] + DYNAMICINPUT_DIR DIR_SEP; s_user_paths[D_GRAPHICSMOD_IDX] = s_user_paths[D_LOAD_IDX] + GRAPHICSMOD_DIR DIR_SEP; + s_user_paths[D_WIISDCARDSYNCFOLDER_IDX] = s_user_paths[D_LOAD_IDX] + WIISDSYNC_DIR DIR_SEP; s_user_paths[F_DOLPHINCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + DOLPHIN_CONFIG; s_user_paths[F_GCPADCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + GCPAD_CONFIG; s_user_paths[F_WIIPADCONFIG_IDX] = s_user_paths[D_CONFIG_IDX] + WIIPAD_CONFIG; diff --git a/Source/Core/Common/FileUtil.h b/Source/Core/Common/FileUtil.h index c0bcb8f451..ea29d05e40 100644 --- a/Source/Core/Common/FileUtil.h +++ b/Source/Core/Common/FileUtil.h @@ -63,6 +63,7 @@ enum D_GRAPHICSMOD_IDX, D_GBAUSER_IDX, D_GBASAVES_IDX, + D_WIISDCARDSYNCFOLDER_IDX, FIRST_FILE_USER_PATH_IDX, F_DOLPHINCONFIG_IDX = FIRST_FILE_USER_PATH_IDX, F_GCPADCONFIG_IDX, diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index 90b60000f3..3a41cdb631 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -159,6 +159,8 @@ const Info& GetInfoForSimulateKonga(int channel) } const Info MAIN_WII_SD_CARD{{System::Main, "Core", "WiiSDCard"}, true}; +const Info MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC{ + {System::Main, "Core", "WiiSDCardEnableFolderSync"}, false}; const Info MAIN_WII_KEYBOARD{{System::Main, "Core", "WiiKeyboard"}, false}; const Info MAIN_WIIMOTE_CONTINUOUS_SCANNING{ {System::Main, "Core", "WiimoteContinuousScanning"}, false}; @@ -269,6 +271,8 @@ const Info MAIN_LOAD_PATH{{System::Main, "General", "LoadPath"}, "" const Info MAIN_RESOURCEPACK_PATH{{System::Main, "General", "ResourcePackPath"}, ""}; const Info MAIN_FS_PATH{{System::Main, "General", "NANDRootPath"}, ""}; const Info MAIN_WII_SD_CARD_IMAGE_PATH{{System::Main, "General", "WiiSDCardPath"}, ""}; +const Info MAIN_WII_SD_CARD_SYNC_FOLDER_PATH{ + {System::Main, "General", "WiiSDCardSyncFolder"}, ""}; const Info MAIN_WFS_PATH{{System::Main, "General", "WFSPath"}, ""}; const Info MAIN_SHOW_LAG{{System::Main, "General", "ShowLag"}, false}; const Info MAIN_SHOW_FRAME_COUNT{{System::Main, "General", "ShowFrameCount"}, false}; diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index d354414bf3..0f954c7f0d 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -92,6 +92,7 @@ const Info& GetInfoForSIDevice(int channel); const Info& GetInfoForAdapterRumble(int channel); const Info& GetInfoForSimulateKonga(int channel); extern const Info MAIN_WII_SD_CARD; +extern const Info MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC; extern const Info MAIN_WII_KEYBOARD; extern const Info MAIN_WIIMOTE_CONTINUOUS_SCANNING; extern const Info MAIN_WIIMOTE_ENABLE_SPEAKER; @@ -179,6 +180,7 @@ extern const Info MAIN_LOAD_PATH; extern const Info MAIN_RESOURCEPACK_PATH; extern const Info MAIN_FS_PATH; extern const Info MAIN_WII_SD_CARD_IMAGE_PATH; +extern const Info MAIN_WII_SD_CARD_SYNC_FOLDER_PATH; extern const Info MAIN_WFS_PATH; extern const Info MAIN_SHOW_LAG; extern const Info MAIN_SHOW_FRAME_COUNT; diff --git a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp index fce77dd35f..3eb8245a29 100644 --- a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp +++ b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp @@ -110,6 +110,7 @@ bool IsSettingSaveable(const Config::Location& config_location) &Config::MAIN_FASTMEM.GetLocation(), &Config::MAIN_TIMING_VARIANCE.GetLocation(), &Config::MAIN_WII_SD_CARD.GetLocation(), + &Config::MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC.GetLocation(), &Config::MAIN_WII_KEYBOARD.GetLocation(), &Config::MAIN_WIIMOTE_CONTINUOUS_SCANNING.GetLocation(), &Config::MAIN_WIIMOTE_ENABLE_SPEAKER.GetLocation(), diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index b7a97a68a3..469c9b2c67 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -92,6 +92,9 @@ static void InitCustomPaths() CreateResourcePackPath(Config::Get(Config::MAIN_RESOURCEPACK_PATH)); CreateWFSPath(Config::Get(Config::MAIN_WFS_PATH)); File::SetUserPath(F_WIISDCARDIMAGE_IDX, Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)); + File::SetUserPath(D_WIISDCARDSYNCFOLDER_IDX, + Config::Get(Config::MAIN_WII_SD_CARD_SYNC_FOLDER_PATH)); + File::CreateFullPath(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX)); #ifdef HAS_LIBMGBA File::SetUserPath(F_GBABIOS_IDX, Config::Get(Config::MAIN_GBA_BIOS_PATH)); File::SetUserPath(D_GBASAVES_IDX, Config::Get(Config::MAIN_GBA_SAVES_PATH)); From 77d4591fb4acf337a6e59b72462b9edd8833865c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 17 Apr 2022 06:08:59 +0200 Subject: [PATCH 366/659] Core: If configured, sync SD card image with SD card folder on emulation start and end. Co-authored-by: Pablo Stebler --- Source/Core/Common/CMakeLists.txt | 1 + Source/Core/Common/FatFsUtil.cpp | 427 +++++++++++++++++++++++++++++- Source/Core/Common/FatFsUtil.h | 12 + Source/Core/Core/Core.cpp | 11 + Source/Core/DolphinLib.props | 1 + 5 files changed, 445 insertions(+), 7 deletions(-) create mode 100644 Source/Core/Common/FatFsUtil.h diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 1edb201350..86fd37a788 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -45,6 +45,7 @@ add_library(common EnumMap.h Event.h FatFsUtil.cpp + FatFsUtil.h FileSearch.cpp FileSearch.h FileUtil.cpp diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index 4d8b450529..ffd42e68ab 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -1,8 +1,14 @@ // Copyright 2022 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include "Common/FatFsUtil.h" + +#include +#include #include #include +#include +#include // Does not compile if diskio.h is included first. // clang-format off @@ -10,36 +16,102 @@ #include "diskio.h" // clang-format on -// For now this is just mostly dummy functions so FatFs actually links. +#include "Common/Align.h" +#include "Common/FileUtil.h" +#include "Common/IOFile.h" +#include "Common/Logging/Log.h" +#include "Common/StringUtil.h" + +enum : u32 +{ + SECTOR_SIZE = 512, + MAX_CLUSTER_SIZE = 64 * SECTOR_SIZE, +}; + +static std::mutex s_fatfs_mutex; +static File::IOFile s_image; extern "C" DSTATUS disk_status(BYTE pdrv) { - return STA_NOINIT; + return 0; } extern "C" DSTATUS disk_initialize(BYTE pdrv) { - return STA_NOINIT; + return 0; } extern "C" DRESULT disk_read(BYTE pdrv, BYTE* buff, LBA_t sector, UINT count) { - return RES_PARERR; + const u64 offset = static_cast(sector) * SECTOR_SIZE; + if (!s_image.Seek(offset, File::SeekOrigin::Begin)) + { + ERROR_LOG_FMT(COMMON, "SD image seek failed (offset={})", offset); + return RES_ERROR; + } + + const size_t size = static_cast(count) * SECTOR_SIZE; + if (!s_image.ReadBytes(buff, size)) + { + ERROR_LOG_FMT(COMMON, "SD image read failed (offset={}, size={})", offset, size); + return RES_ERROR; + } + + return RES_OK; } extern "C" DRESULT disk_write(BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count) { - return RES_PARERR; + const u64 offset = static_cast(sector) * SECTOR_SIZE; + if (!s_image.Seek(offset, File::SeekOrigin::Begin)) + { + ERROR_LOG_FMT(COMMON, "SD image seek failed (offset={})", offset); + return RES_ERROR; + } + + const size_t size = static_cast(count) * SECTOR_SIZE; + if (!s_image.WriteBytes(buff, size)) + { + ERROR_LOG_FMT(COMMON, "SD image write failed (offset={}, size={})", offset, size); + return RES_ERROR; + } + + return RES_OK; } extern "C" DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void* buff) { - return RES_PARERR; + switch (cmd) + { + case CTRL_SYNC: + return RES_OK; + case GET_SECTOR_COUNT: + *reinterpret_cast(buff) = s_image.GetSize() / SECTOR_SIZE; + return RES_OK; + default: + WARN_LOG_FMT(COMMON, "Unexpected SD image ioctl {}", cmd); + return RES_OK; + } } extern "C" DWORD get_fattime(void) { - return 0; + const std::time_t time = std::time(nullptr); + std::tm tm; +#ifdef _WIN32 + localtime_s(&tm, &time); +#else + localtime_r(&time, &tm); +#endif + + DWORD fattime = 0; + fattime |= (tm.tm_year - 80) << 25; + fattime |= (tm.tm_mon + 1) << 21; + fattime |= tm.tm_mday << 16; + fattime |= tm.tm_hour << 11; + fattime |= tm.tm_min << 5; + fattime |= std::min(tm.tm_sec, 59) >> 1; + return fattime; } extern "C" void* ff_memalloc(UINT msize) @@ -76,3 +148,344 @@ extern "C" int ff_del_syncobj(FF_SYNC_t sobj) delete reinterpret_cast(sobj); return 1; } + +namespace Common +{ +static constexpr u64 MebibytesToBytes(u64 mebibytes) +{ + return mebibytes * 1024 * 1024; +} + +static constexpr u64 GibibytesToBytes(u64 gibibytes) +{ + return gibibytes * 1024 * 1024 * 1024; +} + +static bool CheckIfFATCompatible(const File::FSTEntry& entry) +{ + if (!entry.isDirectory) + return true; + + if (entry.children.size() > 65536) + { + ERROR_LOG_FMT(COMMON, "Directory {} has too many entries ({})", entry.physicalName, + entry.children.size()); + return false; + } + + for (const File::FSTEntry& child : entry.children) + { + const size_t size = UTF8ToUTF16(child.virtualName).size(); + if (size > 255) + { + ERROR_LOG_FMT(COMMON, "Filename {0} (in directory {1}) is too long ({2})", child.virtualName, + entry.physicalName, size); + return false; + } + + if (child.size >= GibibytesToBytes(4)) + { + ERROR_LOG_FMT(COMMON, "File {0} (in directory {1}) is too large ({2})", child.virtualName, + entry.physicalName, child.size); + return false; + } + + if (!CheckIfFATCompatible(child)) + return false; + } + + return true; +} + +static u64 GetSize(const File::FSTEntry& entry) +{ + if (!entry.isDirectory) + return AlignUp(entry.size, MAX_CLUSTER_SIZE); + + u64 size = 0; + for (const File::FSTEntry& child : entry.children) + { + size += 32; + // For simplicity, assume that all names are LFN. + const u64 num_lfn_entries = (UTF8ToUTF16(child.virtualName).size() + 13 - 1) / 13; + size += num_lfn_entries * 32; + } + size = AlignUp(size, MAX_CLUSTER_SIZE); + + for (const File::FSTEntry& child : entry.children) + size += GetSize(child); + + return size; +} + +static bool Pack(const File::FSTEntry& entry, bool is_root, std::vector& tmp_buffer) +{ + if (!entry.isDirectory) + { + File::IOFile src(entry.physicalName, "rb"); + if (!src) + return false; + + FIL dst; + if (f_open(&dst, entry.virtualName.c_str(), FA_CREATE_ALWAYS | FA_WRITE) != FR_OK) + return false; + + if (src.GetSize() != entry.size) + return false; + + if (entry.size >= GibibytesToBytes(4)) + return false; + + u64 size = entry.size; + while (size > 0) + { + u32 chunk_size = static_cast(std::min(size, static_cast(tmp_buffer.size()))); + if (!src.ReadBytes(tmp_buffer.data(), chunk_size)) + return false; + + u32 written_size; + if (f_write(&dst, tmp_buffer.data(), chunk_size, &written_size) != FR_OK) + return false; + + if (written_size != chunk_size) + return false; + + size -= chunk_size; + } + + if (f_close(&dst) != FR_OK) + return false; + + if (!src.Close()) + return false; + + return true; + } + + if (!is_root) + { + if (f_mkdir(entry.virtualName.c_str()) != FR_OK) + return false; + + if (f_chdir(entry.virtualName.c_str()) != FR_OK) + return false; + } + + for (const File::FSTEntry& child : entry.children) + { + if (!Pack(child, false, tmp_buffer)) + return false; + } + + if (!is_root) + { + if (f_chdir("..") != FR_OK) + return false; + } + + return true; +} + +bool SyncSDFolderToSDImage() +{ + const std::string root_path = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); + if (!File::IsDirectory(root_path)) + return false; + + const File::FSTEntry root = File::ScanDirectoryTree(root_path, true); + if (!CheckIfFATCompatible(root)) + return false; + + u64 size = GetSize(root); + // Allocate a reasonable amount of free space + size += std::clamp(size / 2, MebibytesToBytes(512), GibibytesToBytes(8)); + size = AlignUp(size, MAX_CLUSTER_SIZE); + + std::lock_guard lk(s_fatfs_mutex); + + const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); + const std::string temp_image_path = File::GetTempFilenameForAtomicWrite(image_path); + if (!s_image.Open(temp_image_path, "w+b")) + { + ERROR_LOG_FMT(COMMON, "Failed to open SD image"); + return false; + } + + if (!s_image.Resize(size)) + { + ERROR_LOG_FMT(COMMON, "Failed to allocate space for SD image"); + s_image.Close(); + File::Delete(temp_image_path); + return false; + } + + MKFS_PARM options = {}; + options.fmt = FM_FAT32; + options.n_fat = 0; // Number of FATs: automatic + options.align = 1; // Alignment of the data region (in sectors) + options.n_root = 0; // Number of root directory entries: automatic (and unused for FAT32) + options.au_size = 0; // Cluster size: automatic + + std::vector tmp_buffer(MAX_CLUSTER_SIZE); + if (f_mkfs("", &options, tmp_buffer.data(), static_cast(tmp_buffer.size())) != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to initialize SD image filesystem"); + s_image.Close(); + File::Delete(temp_image_path); + return false; + } + + FATFS fs; + f_mount(&fs, "", 0); + + if (!Pack(root, true, tmp_buffer)) + { + ERROR_LOG_FMT(COMMON, "Failed to pack SD image"); + s_image.Close(); + File::Delete(temp_image_path); + return false; + } + + f_unmount(""); + + if (!s_image.Close()) + { + ERROR_LOG_FMT(COMMON, "Failed to close SD image"); + return false; + } + if (!File::Rename(temp_image_path, image_path)) + { + ERROR_LOG_FMT(COMMON, "Failed to rename SD image"); + return false; + } + + INFO_LOG_FMT(COMMON, "Successfully packed SD image"); + return true; +} + +static bool Unpack(const std::string path, bool is_directory, const char* name, + std::vector& tmp_buffer) +{ + if (!is_directory) + { + FIL src; + if (f_open(&src, name, FA_READ) != FR_OK) + return false; + + File::IOFile dst(path, "wb"); + if (!dst) + return false; + + u32 size = f_size(&src); + while (size > 0) + { + u32 chunk_size = std::min(size, static_cast(tmp_buffer.size())); + u32 read_size; + if (f_read(&src, tmp_buffer.data(), chunk_size, &read_size) != FR_OK) + return false; + + if (read_size != chunk_size) + return false; + + if (!dst.WriteBytes(tmp_buffer.data(), chunk_size)) + return false; + + size -= chunk_size; + } + + if (!dst.Close()) + return false; + + if (f_close(&src) != FR_OK) + return false; + + return true; + } + + if (!File::CreateDir(path)) + return false; + + if (f_chdir(name) != FR_OK) + return false; + + DIR directory; + if (f_opendir(&directory, ".") != FR_OK) + return false; + + FILINFO entry; + while (true) + { + if (f_readdir(&directory, &entry) != FR_OK) + return false; + + if (entry.fname[0] == '\0') + break; + + if (!Unpack(path + "/" + entry.fname, entry.fattrib & AM_DIR, entry.fname, tmp_buffer)) + return false; + } + + if (f_closedir(&directory) != FR_OK) + return false; + + if (f_chdir("..") != FR_OK) + return false; + + return true; +} + +bool SyncSDImageToSDFolder() +{ + const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); + + std::lock_guard lk(s_fatfs_mutex); + if (!s_image.Open(image_path, "r+b")) + { + ERROR_LOG_FMT(COMMON, "Failed to open SD image"); + return false; + } + + FATFS fs; + f_mount(&fs, "", 0); + + // Most systems don't offer atomic directory renaming, so it's simpler to directly work on the + // actual one and rollback if needed. + const std::string root_path = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); + if (root_path.empty()) + return false; + + // Unpack() and GetTempFilenameForAtomicWrite() don't want the trailing separator. + const std::string target_dir = root_path.substr(0, root_path.length() - 1); + + File::CreateDir(root_path); + const std::string temp_root_path = File::GetTempFilenameForAtomicWrite(target_dir); + if (!File::Rename(target_dir, temp_root_path)) + { + ERROR_LOG_FMT(COMMON, "Failed to backup SD folder"); + return false; + } + + std::vector tmp_buffer(MAX_CLUSTER_SIZE); + if (!Unpack(target_dir, true, "", tmp_buffer)) + { + ERROR_LOG_FMT(COMMON, "Failed to unpack SD image"); + File::DeleteDirRecursively(target_dir); + File::Rename(temp_root_path, target_dir); + return false; + } + + f_unmount(""); + + if (!s_image.Close()) + { + ERROR_LOG_FMT(COMMON, "Failed to close SD image"); + File::DeleteDirRecursively(target_dir); + File::Rename(temp_root_path, target_dir); + return false; + } + + File::DeleteDirRecursively(temp_root_path); + INFO_LOG_FMT(COMMON, "Successfully unpacked SD image"); + return true; +} +} // namespace Common diff --git a/Source/Core/Common/FatFsUtil.h b/Source/Core/Common/FatFsUtil.h new file mode 100644 index 0000000000..bb981e2267 --- /dev/null +++ b/Source/Core/Common/FatFsUtil.h @@ -0,0 +1,12 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "Common/CommonTypes.h" + +namespace Common +{ +bool SyncSDFolderToSDImage(); +bool SyncSDImageToSDFolder(); +} // namespace Common diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index 56c1342050..79ac6a2ae6 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -25,6 +25,7 @@ #include "Common/CommonTypes.h" #include "Common/Event.h" #include "Common/FPURoundMode.h" +#include "Common/FatFsUtil.h" #include "Common/FileUtil.h" #include "Common/Flag.h" #include "Common/Logging/Log.h" @@ -495,6 +496,16 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi const bool delete_savestate = boot_session_data.GetDeleteSavestate() == DeleteSavestateAfterBoot::Yes; + bool sync_sd_folder = core_parameter.bWii && Config::Get(Config::MAIN_WII_SD_CARD) && + Config::Get(Config::MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC); + if (sync_sd_folder) + sync_sd_folder = Common::SyncSDFolderToSDImage(); + + Common::ScopeGuard sd_folder_sync_guard{[sync_sd_folder] { + if (sync_sd_folder && Config::Get(Config::MAIN_ALLOW_SD_WRITES)) + Common::SyncSDImageToSDFolder(); + }}; + // Load and Init Wiimotes - only if we are booting in Wii mode bool init_wiimotes = false; if (core_parameter.bWii && !Config::Get(Config::MAIN_BLUETOOTH_PASSTHROUGH_ENABLED)) diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 17c2aa4345..13d1525b74 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -45,6 +45,7 @@ + From 4bf75c950b888078130a60d375c9d238a6bf8b47 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Mon, 18 Apr 2022 00:48:39 +0200 Subject: [PATCH 367/659] Qt/WiiPane: Add checkbox for SD card folder syncing. --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 58 +++++++++++++++------- Source/Core/DolphinQt/Settings/WiiPane.h | 8 ++- 2 files changed, 46 insertions(+), 20 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index f6eea20dff..9d21b472d3 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -56,6 +56,7 @@ void WiiPane::CreateLayout() { m_main_layout = new QVBoxLayout; CreateMisc(); + CreateSDCard(); CreateWhitelistedUSBPassthroughDevices(); CreateWiiRemoteSettings(); m_main_layout->addStretch(1); @@ -73,14 +74,17 @@ void WiiPane::ConnectLayout() &WiiPane::OnSaveConfig); connect(m_screensaver_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); connect(m_pal60_mode_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); - connect(m_sd_card_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); - connect(m_allow_sd_writes_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); connect(m_connect_keyboard_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); connect(&Settings::Instance(), &Settings::SDCardInsertionChanged, m_sd_card_checkbox, &QCheckBox::setChecked); connect(&Settings::Instance(), &Settings::USBKeyboardConnectionChanged, m_connect_keyboard_checkbox, &QCheckBox::setChecked); + // SD Card Settings + connect(m_sd_card_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); + connect(m_allow_sd_writes_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); + connect(m_sync_sd_folder_checkbox, &QCheckBox::toggled, this, &WiiPane::OnSaveConfig); + // Whitelisted USB Passthrough Devices connect(m_whitelist_usb_list, &QListWidget::itemClicked, this, &WiiPane::ValidateSelectionState); connect(m_whitelist_usb_add_button, &QPushButton::clicked, this, @@ -108,8 +112,6 @@ void WiiPane::CreateMisc() m_main_layout->addWidget(misc_settings_group); m_pal60_mode_checkbox = new QCheckBox(tr("Use PAL60 Mode (EuRGB60)")); m_screensaver_checkbox = new QCheckBox(tr("Enable Screen Saver")); - m_sd_card_checkbox = new QCheckBox(tr("Insert SD Card")); - m_allow_sd_writes_checkbox = new QCheckBox(tr("Allow Writes to SD Card")); m_connect_keyboard_checkbox = new QCheckBox(tr("Connect USB Keyboard")); m_aspect_ratio_choice_label = new QLabel(tr("Aspect Ratio:")); @@ -141,20 +143,35 @@ void WiiPane::CreateMisc() "(576i) for PAL games.\nMay not work for all games.")); m_screensaver_checkbox->setToolTip(tr("Dims the screen after five minutes of inactivity.")); m_system_language_choice->setToolTip(tr("Sets the Wii system language.")); - m_sd_card_checkbox->setToolTip(tr("Supports SD and SDHC. Default size is 128 MB.")); m_connect_keyboard_checkbox->setToolTip(tr("May cause slow down in Wii Menu and some games.")); misc_settings_group_layout->addWidget(m_pal60_mode_checkbox, 0, 0, 1, 1); - misc_settings_group_layout->addWidget(m_sd_card_checkbox, 0, 1, 1, 1); + misc_settings_group_layout->addWidget(m_connect_keyboard_checkbox, 0, 1, 1, 1); misc_settings_group_layout->addWidget(m_screensaver_checkbox, 1, 0, 1, 1); - misc_settings_group_layout->addWidget(m_allow_sd_writes_checkbox, 1, 1, 1, 1); - misc_settings_group_layout->addWidget(m_connect_keyboard_checkbox, 2, 1, 1, 1); - misc_settings_group_layout->addWidget(m_aspect_ratio_choice_label, 3, 0, 1, 1); - misc_settings_group_layout->addWidget(m_aspect_ratio_choice, 3, 1, 1, 1); - misc_settings_group_layout->addWidget(m_system_language_choice_label, 4, 0, 1, 1); - misc_settings_group_layout->addWidget(m_system_language_choice, 4, 1, 1, 1); - misc_settings_group_layout->addWidget(m_sound_mode_choice_label, 5, 0, 1, 1); - misc_settings_group_layout->addWidget(m_sound_mode_choice, 5, 1, 1, 1); + misc_settings_group_layout->addWidget(m_aspect_ratio_choice_label, 2, 0, 1, 1); + misc_settings_group_layout->addWidget(m_aspect_ratio_choice, 2, 1, 1, 1); + misc_settings_group_layout->addWidget(m_system_language_choice_label, 3, 0, 1, 1); + misc_settings_group_layout->addWidget(m_system_language_choice, 3, 1, 1, 1); + misc_settings_group_layout->addWidget(m_sound_mode_choice_label, 4, 0, 1, 1); + misc_settings_group_layout->addWidget(m_sound_mode_choice, 4, 1, 1, 1); +} + +void WiiPane::CreateSDCard() +{ + auto* sd_settings_group = new QGroupBox(tr("SD Card Settings")); + auto* sd_settings_group_layout = new QGridLayout(); + sd_settings_group->setLayout(sd_settings_group_layout); + m_main_layout->addWidget(sd_settings_group); + + m_sd_card_checkbox = new QCheckBox(tr("Insert SD Card")); + m_allow_sd_writes_checkbox = new QCheckBox(tr("Allow Writes to SD Card")); + m_sync_sd_folder_checkbox = new QCheckBox(tr("Sync with Folder")); + + m_sd_card_checkbox->setToolTip(tr("Supports SD and SDHC. Default size is 128 MB.")); + + sd_settings_group_layout->addWidget(m_sd_card_checkbox, 0, 0, 1, 1); + sd_settings_group_layout->addWidget(m_allow_sd_writes_checkbox, 0, 1, 1, 1); + sd_settings_group_layout->addWidget(m_sync_sd_folder_checkbox, 1, 0, 1, 1); } void WiiPane::CreateWhitelistedUSBPassthroughDevices() @@ -232,13 +249,15 @@ void WiiPane::LoadConfig() { m_screensaver_checkbox->setChecked(Config::Get(Config::SYSCONF_SCREENSAVER)); m_pal60_mode_checkbox->setChecked(Config::Get(Config::SYSCONF_PAL60)); - m_sd_card_checkbox->setChecked(Settings::Instance().IsSDCardInserted()); - m_allow_sd_writes_checkbox->setChecked(Config::Get(Config::MAIN_ALLOW_SD_WRITES)); m_connect_keyboard_checkbox->setChecked(Settings::Instance().IsUSBKeyboardConnected()); m_aspect_ratio_choice->setCurrentIndex(Config::Get(Config::SYSCONF_WIDESCREEN)); m_system_language_choice->setCurrentIndex(Config::Get(Config::SYSCONF_LANGUAGE)); m_sound_mode_choice->setCurrentIndex(Config::Get(Config::SYSCONF_SOUND_MODE)); + m_sd_card_checkbox->setChecked(Settings::Instance().IsSDCardInserted()); + m_allow_sd_writes_checkbox->setChecked(Config::Get(Config::MAIN_ALLOW_SD_WRITES)); + m_sync_sd_folder_checkbox->setChecked(Config::Get(Config::MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC)); + PopulateUSBPassthroughListWidget(); m_wiimote_ir_sensor_position->setCurrentIndex( @@ -254,8 +273,6 @@ void WiiPane::OnSaveConfig() Config::SetBase(Config::SYSCONF_SCREENSAVER, m_screensaver_checkbox->isChecked()); Config::SetBase(Config::SYSCONF_PAL60, m_pal60_mode_checkbox->isChecked()); - Settings::Instance().SetSDCardInserted(m_sd_card_checkbox->isChecked()); - Config::SetBase(Config::MAIN_ALLOW_SD_WRITES, m_allow_sd_writes_checkbox->isChecked()); Settings::Instance().SetUSBKeyboardConnected(m_connect_keyboard_checkbox->isChecked()); Config::SetBase(Config::SYSCONF_SENSOR_BAR_POSITION, @@ -266,6 +283,11 @@ void WiiPane::OnSaveConfig() Config::SetBase(Config::SYSCONF_WIDESCREEN, m_aspect_ratio_choice->currentIndex()); Config::SetBase(Config::SYSCONF_SOUND_MODE, m_sound_mode_choice->currentIndex()); Config::SetBase(Config::SYSCONF_WIIMOTE_MOTOR, m_wiimote_motor->isChecked()); + + Settings::Instance().SetSDCardInserted(m_sd_card_checkbox->isChecked()); + Config::SetBase(Config::MAIN_ALLOW_SD_WRITES, m_allow_sd_writes_checkbox->isChecked()); + Config::SetBase(Config::MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC, + m_sync_sd_folder_checkbox->isChecked()); } void WiiPane::ValidateSelectionState() diff --git a/Source/Core/DolphinQt/Settings/WiiPane.h b/Source/Core/DolphinQt/Settings/WiiPane.h index 9e905263f6..588fbec4ff 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.h +++ b/Source/Core/DolphinQt/Settings/WiiPane.h @@ -24,6 +24,7 @@ private: void CreateLayout(); void ConnectLayout(); void CreateMisc(); + void CreateSDCard(); void CreateWhitelistedUSBPassthroughDevices(); void CreateWiiRemoteSettings(); @@ -42,8 +43,6 @@ private: // Misc Settings QCheckBox* m_screensaver_checkbox; QCheckBox* m_pal60_mode_checkbox; - QCheckBox* m_sd_card_checkbox; - QCheckBox* m_allow_sd_writes_checkbox; QCheckBox* m_connect_keyboard_checkbox; QComboBox* m_system_language_choice; QLabel* m_system_language_choice_label; @@ -52,6 +51,11 @@ private: QComboBox* m_sound_mode_choice; QLabel* m_sound_mode_choice_label; + // SD Card Settings + QCheckBox* m_sd_card_checkbox; + QCheckBox* m_allow_sd_writes_checkbox; + QCheckBox* m_sync_sd_folder_checkbox; + // Whitelisted USB Passthrough Devices QListWidget* m_whitelist_usb_list; QPushButton* m_whitelist_usb_add_button; From a5b1bfef68c0626b159bb52402ea7fcfc351ca48 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 15 Jun 2022 23:51:25 +0200 Subject: [PATCH 368/659] Common: Change default path for Wii SD cards to not be inside the Wii NAND. --- Source/Core/Common/CommonPaths.h | 2 +- Source/Core/Common/FileUtil.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/CommonPaths.h b/Source/Core/Common/CommonPaths.h index 9bb1aeb12e..cb8aacddf8 100644 --- a/Source/Core/Common/CommonPaths.h +++ b/Source/Core/Common/CommonPaths.h @@ -129,7 +129,7 @@ #define WII_STATE "state.dat" -#define WII_SD_CARD_IMAGE "sd.raw" +#define WII_SD_CARD_IMAGE "WiiSD.raw" #define WII_BTDINF_BACKUP "btdinf.bak" #define WII_SETTING "setting.txt" diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 99e429eba4..cc1d2c7600 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -995,7 +995,7 @@ static void RebuildUserDirectories(unsigned int dir_index) s_user_paths[F_ARAMDUMP_IDX] = s_user_paths[D_DUMP_IDX] + ARAM_DUMP; s_user_paths[F_FAKEVMEMDUMP_IDX] = s_user_paths[D_DUMP_IDX] + FAKEVMEM_DUMP; s_user_paths[F_GCSRAM_IDX] = s_user_paths[D_GCUSER_IDX] + GC_SRAM; - s_user_paths[F_WIISDCARDIMAGE_IDX] = s_user_paths[D_WIIROOT_IDX] + WII_SD_CARD_IMAGE; + s_user_paths[F_WIISDCARDIMAGE_IDX] = s_user_paths[D_LOAD_IDX] + WII_SD_CARD_IMAGE; s_user_paths[D_MEMORYWATCHER_IDX] = s_user_paths[D_USER_IDX] + MEMORYWATCHER_DIR DIR_SEP; s_user_paths[F_MEMORYWATCHERLOCATIONS_IDX] = From 1d12e95404049b8113d8d5a43d424b252dd9b1a4 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 16 Jun 2022 03:26:14 +0200 Subject: [PATCH 369/659] Qt: Put Wii SD card path and SD sync folder fields in the WiiPane. --- Source/Core/DolphinQt/Settings/PathPane.cpp | 33 +------- Source/Core/DolphinQt/Settings/PathPane.h | 3 - Source/Core/DolphinQt/Settings/WiiPane.cpp | 83 +++++++++++++++++++-- Source/Core/DolphinQt/Settings/WiiPane.h | 17 ++++- 4 files changed, 93 insertions(+), 43 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/PathPane.cpp b/Source/Core/DolphinQt/Settings/PathPane.cpp index a1eec28aa9..6ccc1c2a3b 100644 --- a/Source/Core/DolphinQt/Settings/PathPane.cpp +++ b/Source/Core/DolphinQt/Settings/PathPane.cpp @@ -99,20 +99,6 @@ void PathPane::BrowseResourcePack() } } -void PathPane::BrowseSDCard() -{ - QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName( - this, tr("Select a SD Card Image"), - QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)), - tr("SD Card Image (*.raw);;" - "All Files (*)"))); - if (!file.isEmpty()) - { - m_sdcard_edit->setText(file); - OnSDCardPathChanged(); - } -} - void PathPane::BrowseWFS() { const QString dir = QDir::toNativeSeparators(DolphinFileDialog::getExistingDirectory( @@ -124,11 +110,6 @@ void PathPane::BrowseWFS() } } -void PathPane::OnSDCardPathChanged() -{ - Config::SetBase(Config::MAIN_WII_SD_CARD_IMAGE_PATH, m_sdcard_edit->text().toStdString()); -} - void PathPane::OnNANDPathChanged() { Config::SetBase(Config::MAIN_FS_PATH, m_nand_edit->text().toStdString()); @@ -242,22 +223,14 @@ QGridLayout* PathPane::MakePathsLayout() layout->addWidget(m_resource_pack_edit, 4, 1); layout->addWidget(resource_pack_open, 4, 2); - m_sdcard_edit = new QLineEdit(QString::fromStdString(File::GetUserPath(F_WIISDCARDIMAGE_IDX))); - connect(m_sdcard_edit, &QLineEdit::editingFinished, this, &PathPane::OnSDCardPathChanged); - QPushButton* sdcard_open = new NonDefaultQPushButton(QStringLiteral("...")); - connect(sdcard_open, &QPushButton::clicked, this, &PathPane::BrowseSDCard); - layout->addWidget(new QLabel(tr("SD Card Path:")), 5, 0); - layout->addWidget(m_sdcard_edit, 5, 1); - layout->addWidget(sdcard_open, 5, 2); - m_wfs_edit = new QLineEdit(QString::fromStdString(File::GetUserPath(D_WFSROOT_IDX))); connect(m_load_edit, &QLineEdit::editingFinished, [=] { Config::SetBase(Config::MAIN_WFS_PATH, m_wfs_edit->text().toStdString()); }); QPushButton* wfs_open = new NonDefaultQPushButton(QStringLiteral("...")); connect(wfs_open, &QPushButton::clicked, this, &PathPane::BrowseWFS); - layout->addWidget(new QLabel(tr("WFS Path:")), 6, 0); - layout->addWidget(m_wfs_edit, 6, 1); - layout->addWidget(wfs_open, 6, 2); + layout->addWidget(new QLabel(tr("WFS Path:")), 5, 0); + layout->addWidget(m_wfs_edit, 5, 1); + layout->addWidget(wfs_open, 5, 2); return layout; } diff --git a/Source/Core/DolphinQt/Settings/PathPane.h b/Source/Core/DolphinQt/Settings/PathPane.h index b8fb952730..e925384622 100644 --- a/Source/Core/DolphinQt/Settings/PathPane.h +++ b/Source/Core/DolphinQt/Settings/PathPane.h @@ -24,13 +24,11 @@ private: void BrowseDump(); void BrowseLoad(); void BrowseResourcePack(); - void BrowseSDCard(); void BrowseWFS(); QGroupBox* MakeGameFolderBox(); QGridLayout* MakePathsLayout(); void RemovePath(); - void OnSDCardPathChanged(); void OnNANDPathChanged(); QListWidget* m_path_list; @@ -39,7 +37,6 @@ private: QLineEdit* m_dump_edit; QLineEdit* m_load_edit; QLineEdit* m_resource_pack_edit; - QLineEdit* m_sdcard_edit; QLineEdit* m_wfs_edit; QPushButton* m_remove_path; diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 9d21b472d3..8481f50fb7 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -5,10 +5,12 @@ #include #include +#include #include #include #include #include +#include #include #include #include @@ -16,6 +18,7 @@ #include #include "Common/Config/Config.h" +#include "Common/FileUtil.h" #include "Common/StringUtil.h" #include "Core/Config/MainSettings.h" @@ -23,7 +26,9 @@ #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "DolphinQt/QtUtils/DolphinFileDialog.h" #include "DolphinQt/QtUtils/NonDefaultQPushButton.h" +#include "DolphinQt/QtUtils/SignalBlocking.h" #include "DolphinQt/Settings.h" #include "DolphinQt/Settings/USBDeviceAddToWhitelistDialog.h" @@ -163,15 +168,49 @@ void WiiPane::CreateSDCard() sd_settings_group->setLayout(sd_settings_group_layout); m_main_layout->addWidget(sd_settings_group); + int row = 0; m_sd_card_checkbox = new QCheckBox(tr("Insert SD Card")); - m_allow_sd_writes_checkbox = new QCheckBox(tr("Allow Writes to SD Card")); - m_sync_sd_folder_checkbox = new QCheckBox(tr("Sync with Folder")); - m_sd_card_checkbox->setToolTip(tr("Supports SD and SDHC. Default size is 128 MB.")); + m_allow_sd_writes_checkbox = new QCheckBox(tr("Allow Writes to SD Card")); + sd_settings_group_layout->addWidget(m_sd_card_checkbox, row, 0, 1, 1); + sd_settings_group_layout->addWidget(m_allow_sd_writes_checkbox, row, 1, 1, 1); + ++row; - sd_settings_group_layout->addWidget(m_sd_card_checkbox, 0, 0, 1, 1); - sd_settings_group_layout->addWidget(m_allow_sd_writes_checkbox, 0, 1, 1, 1); - sd_settings_group_layout->addWidget(m_sync_sd_folder_checkbox, 1, 0, 1, 1); + { + QHBoxLayout* hlayout = new QHBoxLayout; + m_sd_raw_edit = new QLineEdit(QString::fromStdString(File::GetUserPath(F_WIISDCARDIMAGE_IDX))); + connect(m_sd_raw_edit, &QLineEdit::editingFinished, + [this] { SetSDRaw(m_sd_raw_edit->text()); }); + QPushButton* sdcard_open = new NonDefaultQPushButton(QStringLiteral("...")); + connect(sdcard_open, &QPushButton::clicked, this, &WiiPane::BrowseSDRaw); + hlayout->addWidget(new QLabel(tr("SD Card Path:"))); + hlayout->addWidget(m_sd_raw_edit); + hlayout->addWidget(sdcard_open); + + sd_settings_group_layout->addLayout(hlayout, row, 0, 1, 2); + ++row; + } + + m_sync_sd_folder_checkbox = + new QCheckBox(tr("Automatically sync with Folder on emulation start and end")); + sd_settings_group_layout->addWidget(m_sync_sd_folder_checkbox, row, 0, 1, 2); + ++row; + + { + QHBoxLayout* hlayout = new QHBoxLayout; + m_sd_sync_folder_edit = + new QLineEdit(QString::fromStdString(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX))); + connect(m_sd_sync_folder_edit, &QLineEdit::editingFinished, + [this] { SetSDSyncFolder(m_sd_sync_folder_edit->text()); }); + QPushButton* sdcard_open = new NonDefaultQPushButton(QStringLiteral("...")); + connect(sdcard_open, &QPushButton::clicked, this, &WiiPane::BrowseSDSyncFolder); + hlayout->addWidget(new QLabel(tr("SD Sync Folder:"))); + hlayout->addWidget(m_sd_sync_folder_edit); + hlayout->addWidget(sdcard_open); + + sd_settings_group_layout->addLayout(hlayout, row, 0, 1, 2); + ++row; + } } void WiiPane::CreateWhitelistedUSBPassthroughDevices() @@ -329,3 +368,35 @@ void WiiPane::PopulateUSBPassthroughListWidget() } ValidateSelectionState(); } + +void WiiPane::BrowseSDRaw() +{ + QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName( + this, tr("Select a SD Card Image"), + QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)), + tr("SD Card Image (*.raw);;" + "All Files (*)"))); + if (!file.isEmpty()) + SetSDRaw(file); +} + +void WiiPane::SetSDRaw(const QString& path) +{ + Config::SetBase(Config::MAIN_WII_SD_CARD_IMAGE_PATH, path.toStdString()); + SignalBlocking(m_sd_raw_edit)->setText(path); +} + +void WiiPane::BrowseSDSyncFolder() +{ + QString file = QDir::toNativeSeparators(DolphinFileDialog::getExistingDirectory( + this, tr("Select a Folder to sync with the SD Card Image"), + QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_SYNC_FOLDER_PATH)))); + if (!file.isEmpty()) + SetSDSyncFolder(file); +} + +void WiiPane::SetSDSyncFolder(const QString& path) +{ + Config::SetBase(Config::MAIN_WII_SD_CARD_SYNC_FOLDER_PATH, path.toStdString()); + SignalBlocking(m_sd_sync_folder_edit)->setText(path); +} diff --git a/Source/Core/DolphinQt/Settings/WiiPane.h b/Source/Core/DolphinQt/Settings/WiiPane.h index 588fbec4ff..abb8dd2368 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.h +++ b/Source/Core/DolphinQt/Settings/WiiPane.h @@ -5,13 +5,15 @@ #include +class QCheckBox; +class QComboBox; class QLabel; -class QSlider; -class QVBoxLayout; +class QLineEdit; class QListWidget; class QPushButton; -class QComboBox; -class QCheckBox; +class QSlider; +class QString; +class QVBoxLayout; class WiiPane : public QWidget { @@ -37,6 +39,11 @@ private: void OnUSBWhitelistAddButton(); void OnUSBWhitelistRemoveButton(); + void BrowseSDRaw(); + void SetSDRaw(const QString& path); + void BrowseSDSyncFolder(); + void SetSDSyncFolder(const QString& path); + // Widgets QVBoxLayout* m_main_layout; @@ -55,6 +62,8 @@ private: QCheckBox* m_sd_card_checkbox; QCheckBox* m_allow_sd_writes_checkbox; QCheckBox* m_sync_sd_folder_checkbox; + QLineEdit* m_sd_raw_edit; + QLineEdit* m_sd_sync_folder_edit; // Whitelisted USB Passthrough Devices QListWidget* m_whitelist_usb_list; From a621fdf857460d0cb4cb493fd5dc4f3b69d37295 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 16 Jun 2022 03:59:14 +0200 Subject: [PATCH 370/659] Core: In deterministic mode, build SD cards with a consistent filename order and dummy timestamps. --- Source/Core/Common/FatFsUtil.cpp | 22 ++++++++++++++++++++-- Source/Core/Common/FatFsUtil.h | 2 +- Source/Core/Core/Core.cpp | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index ffd42e68ab..7e0c2e2a21 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -30,6 +30,7 @@ enum : u32 static std::mutex s_fatfs_mutex; static File::IOFile s_image; +static bool s_deterministic; extern "C" DSTATUS disk_status(BYTE pdrv) { @@ -96,6 +97,9 @@ extern "C" DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void* buff) extern "C" DWORD get_fattime(void) { + if (s_deterministic) + return 0; + const std::time_t time = std::time(nullptr); std::tm tm; #ifdef _WIN32 @@ -286,13 +290,26 @@ static bool Pack(const File::FSTEntry& entry, bool is_root, std::vector& tmp return true; } -bool SyncSDFolderToSDImage() +static void SortFST(File::FSTEntry* root) { + std::sort(root->children.begin(), root->children.end(), + [](const File::FSTEntry& lhs, const File::FSTEntry& rhs) { + return lhs.virtualName < rhs.virtualName; + }); + for (auto& child : root->children) + SortFST(&child); +} + +bool SyncSDFolderToSDImage(bool deterministic) +{ + deterministic = true; const std::string root_path = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); if (!File::IsDirectory(root_path)) return false; - const File::FSTEntry root = File::ScanDirectoryTree(root_path, true); + File::FSTEntry root = File::ScanDirectoryTree(root_path, true); + if (deterministic) + SortFST(&root); if (!CheckIfFATCompatible(root)) return false; @@ -302,6 +319,7 @@ bool SyncSDFolderToSDImage() size = AlignUp(size, MAX_CLUSTER_SIZE); std::lock_guard lk(s_fatfs_mutex); + s_deterministic = deterministic; const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); const std::string temp_image_path = File::GetTempFilenameForAtomicWrite(image_path); diff --git a/Source/Core/Common/FatFsUtil.h b/Source/Core/Common/FatFsUtil.h index bb981e2267..91f28330fb 100644 --- a/Source/Core/Common/FatFsUtil.h +++ b/Source/Core/Common/FatFsUtil.h @@ -7,6 +7,6 @@ namespace Common { -bool SyncSDFolderToSDImage(); +bool SyncSDFolderToSDImage(bool deterministic); bool SyncSDImageToSDFolder(); } // namespace Common diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index 79ac6a2ae6..f2a9ec334d 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -499,7 +499,7 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi bool sync_sd_folder = core_parameter.bWii && Config::Get(Config::MAIN_WII_SD_CARD) && Config::Get(Config::MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC); if (sync_sd_folder) - sync_sd_folder = Common::SyncSDFolderToSDImage(); + sync_sd_folder = Common::SyncSDFolderToSDImage(Core::WantsDeterminism()); Common::ScopeGuard sd_folder_sync_guard{[sync_sd_folder] { if (sync_sd_folder && Config::Get(Config::MAIN_ALLOW_SD_WRITES)) From f40eeebcf0d768a2f6400186b25b3e51e9531610 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 16 Jun 2022 04:15:28 +0200 Subject: [PATCH 371/659] FatFsUtil: Add some path traversal attack protection when unpacking. --- Source/Core/Common/FatFsUtil.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index 7e0c2e2a21..a3230f2cc6 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -8,8 +8,11 @@ #include #include #include +#include #include +#include + // Does not compile if diskio.h is included first. // clang-format off #include "ff.h" @@ -439,8 +442,21 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, if (entry.fname[0] == '\0') break; - if (!Unpack(path + "/" + entry.fname, entry.fattrib & AM_DIR, entry.fname, tmp_buffer)) + const std::string_view childname = entry.fname; + + // Check for path traversal attacks. + if (childname.find("\\") != std::string_view::npos) return false; + if (childname.find('/') != std::string_view::npos) + return false; + if (std::all_of(childname.begin(), childname.end(), [](char c) { return c == '.'; })) + return false; + + if (!Unpack(fmt::format("{}/{}", path, childname), entry.fattrib & AM_DIR, entry.fname, + tmp_buffer)) + { + return false; + } } if (f_closedir(&directory) != FR_OK) From d2910b5753c1551481d1cce4d947f226cde01232 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 16 Jun 2022 14:13:19 +0200 Subject: [PATCH 372/659] Qt: Add 'convert now' buttons for the SD card in the WiiPane. --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 8481f50fb7..9549a4e540 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -18,6 +18,7 @@ #include #include "Common/Config/Config.h" +#include "Common/FatFsUtil.h" #include "Common/FileUtil.h" #include "Common/StringUtil.h" @@ -27,6 +28,7 @@ #include "Core/Core.h" #include "DolphinQt/QtUtils/DolphinFileDialog.h" +#include "DolphinQt/QtUtils/ModalMessageBox.h" #include "DolphinQt/QtUtils/NonDefaultQPushButton.h" #include "DolphinQt/QtUtils/SignalBlocking.h" #include "DolphinQt/Settings.h" @@ -211,6 +213,40 @@ void WiiPane::CreateSDCard() sd_settings_group_layout->addLayout(hlayout, row, 0, 1, 2); ++row; } + + QPushButton* pack_now = new NonDefaultQPushButton(tr("Convert Folder to File now")); + QPushButton* unpack_now = new NonDefaultQPushButton(tr("Convert File to Folder now")); + connect(pack_now, &QPushButton::clicked, [this] { + auto result = ModalMessageBox::warning( + this, tr("Convert Folder to File now"), + tr("You are about to convert the content of the folder at %1 into the file at %2. All " + "current content of the file will be deleted. Are you sure you want to continue?") + .arg(QString::fromStdString(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX))) + .arg(QString::fromStdString(File::GetUserPath(F_WIISDCARDIMAGE_IDX))), + QMessageBox::Yes | QMessageBox::No); + if (result == QMessageBox::Yes) + { + if (!Common::SyncSDFolderToSDImage(false)) + ModalMessageBox::warning(this, tr("Convert Folder to File now"), tr("Conversion failed.")); + } + }); + connect(unpack_now, &QPushButton::clicked, [this] { + auto result = ModalMessageBox::warning( + this, tr("Convert File to Folder now"), + tr("You are about to convert the content of the file at %2 into the folder at %1. All " + "current content of the folder will be deleted. Are you sure you want to continue?") + .arg(QString::fromStdString(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX))) + .arg(QString::fromStdString(File::GetUserPath(F_WIISDCARDIMAGE_IDX))), + QMessageBox::Yes | QMessageBox::No); + if (result == QMessageBox::Yes) + { + if (!Common::SyncSDImageToSDFolder()) + ModalMessageBox::warning(this, tr("Convert File to Folder now"), tr("Conversion failed.")); + } + }); + sd_settings_group_layout->addWidget(pack_now, row, 0, 1, 1); + sd_settings_group_layout->addWidget(unpack_now, row, 1, 1, 1); + ++row; } void WiiPane::CreateWhitelistedUSBPassthroughDevices() From de9c9f22814fdd86478e307877087ecdaa15185c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 26 Jun 2022 00:42:31 +0200 Subject: [PATCH 373/659] FatFsUtil: Improve error handling and error reporting. --- Source/Core/Common/FatFsUtil.cpp | 365 ++++++++++++++++++++++++------- 1 file changed, 288 insertions(+), 77 deletions(-) diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index a3230f2cc6..0176178b3a 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -23,6 +23,7 @@ #include "Common/FileUtil.h" #include "Common/IOFile.h" #include "Common/Logging/Log.h" +#include "Common/ScopeGuard.h" #include "Common/StringUtil.h" enum : u32 @@ -32,7 +33,7 @@ enum : u32 }; static std::mutex s_fatfs_mutex; -static File::IOFile s_image; +static File::IOFile* s_image; static bool s_deterministic; extern "C" DSTATUS disk_status(BYTE pdrv) @@ -48,14 +49,14 @@ extern "C" DSTATUS disk_initialize(BYTE pdrv) extern "C" DRESULT disk_read(BYTE pdrv, BYTE* buff, LBA_t sector, UINT count) { const u64 offset = static_cast(sector) * SECTOR_SIZE; - if (!s_image.Seek(offset, File::SeekOrigin::Begin)) + if (!s_image->Seek(offset, File::SeekOrigin::Begin)) { ERROR_LOG_FMT(COMMON, "SD image seek failed (offset={})", offset); return RES_ERROR; } const size_t size = static_cast(count) * SECTOR_SIZE; - if (!s_image.ReadBytes(buff, size)) + if (!s_image->ReadBytes(buff, size)) { ERROR_LOG_FMT(COMMON, "SD image read failed (offset={}, size={})", offset, size); return RES_ERROR; @@ -67,14 +68,14 @@ extern "C" DRESULT disk_read(BYTE pdrv, BYTE* buff, LBA_t sector, UINT count) extern "C" DRESULT disk_write(BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count) { const u64 offset = static_cast(sector) * SECTOR_SIZE; - if (!s_image.Seek(offset, File::SeekOrigin::Begin)) + if (!s_image->Seek(offset, File::SeekOrigin::Begin)) { ERROR_LOG_FMT(COMMON, "SD image seek failed (offset={})", offset); return RES_ERROR; } const size_t size = static_cast(count) * SECTOR_SIZE; - if (!s_image.WriteBytes(buff, size)) + if (!s_image->WriteBytes(buff, size)) { ERROR_LOG_FMT(COMMON, "SD image write failed (offset={}, size={})", offset, size); return RES_ERROR; @@ -90,7 +91,7 @@ extern "C" DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void* buff) case CTRL_SYNC: return RES_OK; case GET_SECTOR_COUNT: - *reinterpret_cast(buff) = s_image.GetSize() / SECTOR_SIZE; + *reinterpret_cast(buff) = s_image->GetSize() / SECTOR_SIZE; return RES_OK; default: WARN_LOG_FMT(COMMON, "Unexpected SD image ioctl {}", cmd); @@ -156,6 +157,56 @@ extern "C" int ff_del_syncobj(FF_SYNC_t sobj) return 1; } +static const char* FatFsErrorToString(FRESULT error_code) +{ + // These are taken from the comment next to each value in ff.h + switch (error_code) + { + case FR_OK: + return "Succeeded"; + case FR_DISK_ERR: + return "A hard error occurred in the low level disk I/O layer"; + case FR_INT_ERR: + return "Assertion failed"; + case FR_NOT_READY: + return "The physical drive cannot work"; + case FR_NO_FILE: + return "Could not find the file"; + case FR_NO_PATH: + return "Could not find the path"; + case FR_INVALID_NAME: + return "The path name format is invalid"; + case FR_DENIED: + return "Access denied due to prohibited access or directory full"; + case FR_EXIST: + return "Access denied due to prohibited access"; + case FR_INVALID_OBJECT: + return "The file/directory object is invalid"; + case FR_WRITE_PROTECTED: + return "The physical drive is write protected"; + case FR_INVALID_DRIVE: + return "The logical drive number is invalid"; + case FR_NOT_ENABLED: + return "The volume has no work area"; + case FR_NO_FILESYSTEM: + return "There is no valid FAT volume"; + case FR_MKFS_ABORTED: + return "The f_mkfs() aborted due to any problem"; + case FR_TIMEOUT: + return "Could not get a grant to access the volume within defined period"; + case FR_LOCKED: + return "The operation is rejected according to the file sharing policy"; + case FR_NOT_ENOUGH_CORE: + return "LFN working buffer could not be allocated"; + case FR_TOO_MANY_OPEN_FILES: + return "Number of open files > FF_FS_LOCK"; + case FR_INVALID_PARAMETER: + return "Given parameter is invalid"; + default: + return "Unknown error"; + } +} + namespace Common { static constexpr u64 MebibytesToBytes(u64 mebibytes) @@ -231,51 +282,99 @@ static bool Pack(const File::FSTEntry& entry, bool is_root, std::vector& tmp { File::IOFile src(entry.physicalName, "rb"); if (!src) + { + ERROR_LOG_FMT(COMMON, "Failed to open file {}", entry.physicalName); return false; + } FIL dst; - if (f_open(&dst, entry.virtualName.c_str(), FA_CREATE_ALWAYS | FA_WRITE) != FR_OK) + const auto open_error_code = + f_open(&dst, entry.virtualName.c_str(), FA_CREATE_ALWAYS | FA_WRITE); + if (open_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to open file {} in SD image: {}", entry.physicalName, + FatFsErrorToString(open_error_code)); return false; + } + const size_t src_size = src.GetSize(); if (src.GetSize() != entry.size) + { + ERROR_LOG_FMT(COMMON, "File at {} does not match previously read filesize ({} != {})", + entry.physicalName, entry.size, src_size); return false; + } if (entry.size >= GibibytesToBytes(4)) + { + ERROR_LOG_FMT(COMMON, "File at {} is too large to fit into FAT ({} >= 4GiB)", + entry.physicalName, entry.size); return false; + } u64 size = entry.size; while (size > 0) { u32 chunk_size = static_cast(std::min(size, static_cast(tmp_buffer.size()))); if (!src.ReadBytes(tmp_buffer.data(), chunk_size)) + { + ERROR_LOG_FMT(COMMON, "Failed to read data from file at {}", entry.physicalName); return false; + } u32 written_size; - if (f_write(&dst, tmp_buffer.data(), chunk_size, &written_size) != FR_OK) + const auto write_error_code = f_write(&dst, tmp_buffer.data(), chunk_size, &written_size); + if (write_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to write file {} to SD image: {}", entry.physicalName, + FatFsErrorToString(write_error_code)); return false; + } if (written_size != chunk_size) + { + ERROR_LOG_FMT(COMMON, "Failed to write bytes of file {} to SD image ({} != {})", + entry.physicalName, written_size, chunk_size); return false; + } size -= chunk_size; } - if (f_close(&dst) != FR_OK) + const auto close_error_code = f_close(&dst); + if (close_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to close file {} in SD image: {}", entry.physicalName, + FatFsErrorToString(close_error_code)); return false; + } if (!src.Close()) + { + ERROR_LOG_FMT(COMMON, "Failed to close file {}", entry.physicalName); return false; + } return true; } if (!is_root) { - if (f_mkdir(entry.virtualName.c_str()) != FR_OK) + const auto mkdir_error_code = f_mkdir(entry.virtualName.c_str()); + if (mkdir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to make directory {} in SD image: {}", entry.physicalName, + FatFsErrorToString(mkdir_error_code)); return false; + } - if (f_chdir(entry.virtualName.c_str()) != FR_OK) + const auto chdir_error_code = f_chdir(entry.virtualName.c_str()); + if (chdir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to entry directory {} in SD image: {}", entry.physicalName, + FatFsErrorToString(chdir_error_code)); return false; + } } for (const File::FSTEntry& child : entry.children) @@ -286,8 +385,13 @@ static bool Pack(const File::FSTEntry& entry, bool is_root, std::vector& tmp if (!is_root) { - if (f_chdir("..") != FR_OK) + const auto chdir_up_error_code = f_chdir(".."); + if (chdir_up_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to leave directory {} in SD image: {}", entry.physicalName, + FatFsErrorToString(chdir_up_error_code)); return false; + } } return true; @@ -305,12 +409,21 @@ static void SortFST(File::FSTEntry* root) bool SyncSDFolderToSDImage(bool deterministic) { - deterministic = true; - const std::string root_path = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); - if (!File::IsDirectory(root_path)) + const std::string source_dir = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); + const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); + if (source_dir.empty() || image_path.empty()) return false; - File::FSTEntry root = File::ScanDirectoryTree(root_path, true); + INFO_LOG_FMT(COMMON, "Starting SD card conversion from folder {} to file {}", source_dir, + image_path); + + if (!File::IsDirectory(source_dir)) + { + ERROR_LOG_FMT(COMMON, "{} is not a directory, not converting", source_dir); + return false; + } + + File::FSTEntry root = File::ScanDirectoryTree(source_dir, true); if (deterministic) SortFST(&root); if (!CheckIfFATCompatible(root)) @@ -322,21 +435,25 @@ bool SyncSDFolderToSDImage(bool deterministic) size = AlignUp(size, MAX_CLUSTER_SIZE); std::lock_guard lk(s_fatfs_mutex); + + File::IOFile image; + s_image = ℑ + Common::ScopeGuard image_guard{[] { s_image = nullptr; }}; s_deterministic = deterministic; - const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); const std::string temp_image_path = File::GetTempFilenameForAtomicWrite(image_path); - if (!s_image.Open(temp_image_path, "w+b")) + if (!image.Open(temp_image_path, "w+b")) { - ERROR_LOG_FMT(COMMON, "Failed to open SD image"); + ERROR_LOG_FMT(COMMON, "Failed to create or overwrite SD image at {}", image_path); return false; } - if (!s_image.Resize(size)) + // delete temp file in failure case + Common::ScopeGuard image_delete_guard{[&] { File::Delete(temp_image_path); }}; + + if (!image.Resize(size)) { - ERROR_LOG_FMT(COMMON, "Failed to allocate space for SD image"); - s_image.Close(); - File::Delete(temp_image_path); + ERROR_LOG_FMT(COMMON, "Failed to allocate {} bytes for SD image at {}", size, image_path); return false; } @@ -348,39 +465,49 @@ bool SyncSDFolderToSDImage(bool deterministic) options.au_size = 0; // Cluster size: automatic std::vector tmp_buffer(MAX_CLUSTER_SIZE); - if (f_mkfs("", &options, tmp_buffer.data(), static_cast(tmp_buffer.size())) != FR_OK) + const auto mkfs_error_code = + f_mkfs("", &options, tmp_buffer.data(), static_cast(tmp_buffer.size())); + if (mkfs_error_code != FR_OK) { - ERROR_LOG_FMT(COMMON, "Failed to initialize SD image filesystem"); - s_image.Close(); - File::Delete(temp_image_path); + ERROR_LOG_FMT(COMMON, "Failed to initialize SD image filesystem: {}", + FatFsErrorToString(mkfs_error_code)); return false; } FATFS fs; - f_mount(&fs, "", 0); + const auto mount_error_code = f_mount(&fs, "", 0); + if (mount_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to mount SD image filesystem: {}", + FatFsErrorToString(mount_error_code)); + return false; + } + Common::ScopeGuard unmount_guard{[] { f_unmount(""); }}; if (!Pack(root, true, tmp_buffer)) { - ERROR_LOG_FMT(COMMON, "Failed to pack SD image"); - s_image.Close(); - File::Delete(temp_image_path); + ERROR_LOG_FMT(COMMON, "Failed to pack folder {} to SD image at {}", source_dir, + temp_image_path); return false; } - f_unmount(""); + unmount_guard.Exit(); // unmount before closing the image - if (!s_image.Close()) + if (!image.Close()) { - ERROR_LOG_FMT(COMMON, "Failed to close SD image"); + ERROR_LOG_FMT(COMMON, "Failed to close SD image at {}", temp_image_path); return false; } + if (!File::Rename(temp_image_path, image_path)) { - ERROR_LOG_FMT(COMMON, "Failed to rename SD image"); + ERROR_LOG_FMT(COMMON, "Failed to rename SD image from {} to {}", temp_image_path, image_path); return false; } - INFO_LOG_FMT(COMMON, "Successfully packed SD image"); + image_delete_guard.Dismiss(); // no need to delete the temp file anymore after the rename + + INFO_LOG_FMT(COMMON, "Successfully packed folder {} to SD image at {}", source_dir, image_path); return true; } @@ -390,54 +517,100 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, if (!is_directory) { FIL src; - if (f_open(&src, name, FA_READ) != FR_OK) + const auto open_error_code = f_open(&src, name, FA_READ); + if (open_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to open file {} in SD image: {}", path, + FatFsErrorToString(open_error_code)); return false; + } File::IOFile dst(path, "wb"); if (!dst) + { + ERROR_LOG_FMT(COMMON, "Failed to open file {}", path); return false; + } u32 size = f_size(&src); while (size > 0) { u32 chunk_size = std::min(size, static_cast(tmp_buffer.size())); u32 read_size; - if (f_read(&src, tmp_buffer.data(), chunk_size, &read_size) != FR_OK) + const auto read_error_code = f_read(&src, tmp_buffer.data(), chunk_size, &read_size); + if (read_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to read from file {} in SD image: {}", path, + FatFsErrorToString(read_error_code)); return false; + } if (read_size != chunk_size) + { + ERROR_LOG_FMT(COMMON, "Failed to read bytes of file {} in SD image ({} != {})", path, + read_size, chunk_size); return false; + } if (!dst.WriteBytes(tmp_buffer.data(), chunk_size)) + { + ERROR_LOG_FMT(COMMON, "Failed to write to file {}", path); return false; + } size -= chunk_size; } if (!dst.Close()) + { + ERROR_LOG_FMT(COMMON, "Failed to close file {}", path); return false; + } - if (f_close(&src) != FR_OK) + const auto close_error_code = f_close(&src); + if (close_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to close file {} in SD image: {}", path, + FatFsErrorToString(close_error_code)); return false; + } return true; } if (!File::CreateDir(path)) + { + ERROR_LOG_FMT(COMMON, "Failed to create directory {}", path); return false; + } - if (f_chdir(name) != FR_OK) + const auto chdir_error_code = f_chdir(name); + if (chdir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to enter directory {} in SD image: {}", path, + FatFsErrorToString(chdir_error_code)); return false; + } DIR directory; - if (f_opendir(&directory, ".") != FR_OK) + const auto opendir_error_code = f_opendir(&directory, "."); + if (opendir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to open directory {} in SD image: {}", path, + FatFsErrorToString(opendir_error_code)); return false; + } FILINFO entry; while (true) { - if (f_readdir(&directory, &entry) != FR_OK) + const auto readdir_error_code = f_readdir(&directory, &entry); + if (readdir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to read directory {} in SD image: {}", path, + FatFsErrorToString(readdir_error_code)); return false; + } if (entry.fname[0] == '\0') break; @@ -445,12 +618,18 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, const std::string_view childname = entry.fname; // Check for path traversal attacks. - if (childname.find("\\") != std::string_view::npos) - return false; - if (childname.find('/') != std::string_view::npos) - return false; - if (std::all_of(childname.begin(), childname.end(), [](char c) { return c == '.'; })) + const bool is_path_traversal_attack = + (childname.find("\\") != std::string_view::npos) || + (childname.find('/') != std::string_view::npos) || + std::all_of(childname.begin(), childname.end(), [](char c) { return c == '.'; }); + if (is_path_traversal_attack) + { + ERROR_LOG_FMT( + COMMON, + "Path traversal attack detected in directory {} in SD image, child filename is {}", path, + childname); return false; + } if (!Unpack(fmt::format("{}/{}", path, childname), entry.fattrib & AM_DIR, entry.fname, tmp_buffer)) @@ -459,11 +638,21 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, } } - if (f_closedir(&directory) != FR_OK) + const auto closedir_error_code = f_closedir(&directory); + if (closedir_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to close directory {} in SD image: {}", path, + FatFsErrorToString(closedir_error_code)); return false; + } - if (f_chdir("..") != FR_OK) + const auto chdir_up_error_code = f_chdir(".."); + if (chdir_up_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to leave directory {} in SD image: {}", path, + FatFsErrorToString(chdir_up_error_code)); return false; + } return true; } @@ -471,55 +660,77 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, bool SyncSDImageToSDFolder() { const std::string image_path = File::GetUserPath(F_WIISDCARDIMAGE_IDX); + const std::string target_dir = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); + if (image_path.empty() || target_dir.empty()) + return false; std::lock_guard lk(s_fatfs_mutex); - if (!s_image.Open(image_path, "r+b")) + + INFO_LOG_FMT(COMMON, "Starting SD card conversion from file {} to folder {}", image_path, + target_dir); + + File::IOFile image; + s_image = ℑ + Common::ScopeGuard image_guard{[] { s_image = nullptr; }}; + + // this shouldn't matter since we're not modifying the SD image here, but initialize it to + // something consistent just in case + s_deterministic = true; + + if (!image.Open(image_path, "r+b")) { - ERROR_LOG_FMT(COMMON, "Failed to open SD image"); + ERROR_LOG_FMT(COMMON, "Failed to open SD image at {}", image_path); return false; } FATFS fs; - f_mount(&fs, "", 0); + const auto mount_error_code = f_mount(&fs, "", 0); + if (mount_error_code != FR_OK) + { + ERROR_LOG_FMT(COMMON, "Failed to mount SD image file system: {}", + FatFsErrorToString(mount_error_code)); + return false; + } + Common::ScopeGuard unmount_guard{[] { f_unmount(""); }}; + + // Unpack() and GetTempFilenameForAtomicWrite() don't want the trailing separator. + const std::string target_dir_without_slash = target_dir.substr(0, target_dir.length() - 1); // Most systems don't offer atomic directory renaming, so it's simpler to directly work on the // actual one and rollback if needed. - const std::string root_path = File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX); - if (root_path.empty()) - return false; + const bool target_dir_exists = File::IsDirectory(target_dir); + const std::string backup_target_dir_without_slash = + File::GetTempFilenameForAtomicWrite(target_dir_without_slash); - // Unpack() and GetTempFilenameForAtomicWrite() don't want the trailing separator. - const std::string target_dir = root_path.substr(0, root_path.length() - 1); - - File::CreateDir(root_path); - const std::string temp_root_path = File::GetTempFilenameForAtomicWrite(target_dir); - if (!File::Rename(target_dir, temp_root_path)) + if (target_dir_exists) { - ERROR_LOG_FMT(COMMON, "Failed to backup SD folder"); - return false; + if (!File::Rename(target_dir_without_slash, backup_target_dir_without_slash)) + { + ERROR_LOG_FMT(COMMON, "Failed to move old SD folder to {}", backup_target_dir_without_slash); + return false; + } } std::vector tmp_buffer(MAX_CLUSTER_SIZE); - if (!Unpack(target_dir, true, "", tmp_buffer)) + if (!Unpack(target_dir_without_slash, true, "", tmp_buffer)) { - ERROR_LOG_FMT(COMMON, "Failed to unpack SD image"); - File::DeleteDirRecursively(target_dir); - File::Rename(temp_root_path, target_dir); + ERROR_LOG_FMT(COMMON, "Failed to unpack SD image {} to {}", image_path, target_dir); + File::DeleteDirRecursively(target_dir_without_slash); + if (target_dir_exists) + File::Rename(backup_target_dir_without_slash, target_dir_without_slash); return false; } - f_unmount(""); + unmount_guard.Exit(); // unmount before closing the image - if (!s_image.Close()) - { - ERROR_LOG_FMT(COMMON, "Failed to close SD image"); - File::DeleteDirRecursively(target_dir); - File::Rename(temp_root_path, target_dir); - return false; - } + if (target_dir_exists) + File::DeleteDirRecursively(backup_target_dir_without_slash); - File::DeleteDirRecursively(temp_root_path); - INFO_LOG_FMT(COMMON, "Successfully unpacked SD image"); + // even if this fails the conversion has already succeeded, so we still return true + if (!image.Close()) + ERROR_LOG_FMT(COMMON, "Failed to close SD image {}", image_path); + + INFO_LOG_FMT(COMMON, "Successfully unpacked SD image {} to {}", image_path, target_dir); return true; } } // namespace Common From 2d8d3358c4b86032263afe0d5d9b27c53e097cd2 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sun, 26 Jun 2022 02:08:58 +0200 Subject: [PATCH 374/659] FatFsUtil: Skip past entries with invalid filenames. --- Source/Core/Common/FatFsUtil.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Source/Core/Common/FatFsUtil.cpp b/Source/Core/Common/FatFsUtil.cpp index 0176178b3a..f247ae3f73 100644 --- a/Source/Core/Common/FatFsUtil.cpp +++ b/Source/Core/Common/FatFsUtil.cpp @@ -615,6 +615,13 @@ static bool Unpack(const std::string path, bool is_directory, const char* name, if (entry.fname[0] == '\0') break; + if (entry.fname[0] == '?' && entry.fname[1] == '\0' && entry.altname[0] == '\0') + { + // FATFS indicates entries that have neither a short nor a long filename this way. + // These are likely corrupted file entries so just skip them. + continue; + } + const std::string_view childname = entry.fname; // Check for path traversal attacks. From e5aa5214ed4dbd1de6acf0bdce2a6993972d47a6 Mon Sep 17 00:00:00 2001 From: SilentHeII <29898818+SilentHeII@users.noreply.github.com> Date: Mon, 11 Jul 2022 22:46:07 -0500 Subject: [PATCH 375/659] Add bloom definitions for Sonic Colors Adds definitions to add or remove bloom to Sonic Colors. --- .../Sys/Load/GraphicMods/Sonic Colors/SNC.txt | 0 .../GraphicMods/Sonic Colors/metadata.json | 51 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 Data/Sys/Load/GraphicMods/Sonic Colors/SNC.txt create mode 100644 Data/Sys/Load/GraphicMods/Sonic Colors/metadata.json diff --git a/Data/Sys/Load/GraphicMods/Sonic Colors/SNC.txt b/Data/Sys/Load/GraphicMods/Sonic Colors/SNC.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Data/Sys/Load/GraphicMods/Sonic Colors/metadata.json b/Data/Sys/Load/GraphicMods/Sonic Colors/metadata.json new file mode 100644 index 0000000000..9be5ac94ea --- /dev/null +++ b/Data/Sys/Load/GraphicMods/Sonic Colors/metadata.json @@ -0,0 +1,51 @@ +{ + "meta": + { + "title": "Bloom Texture Definitions", + "author": "Silent Hell" + }, + "groups": + [ + { + "name": "Bloom", + "targets": [ + { + "type": "efb", + "texture_filename": "efb1_n000007_160x120_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000008_160x120_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000009_80x60_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000010_80x60_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000011_40x30_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000012_40x30_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000013_20x15_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000014_20x15_6" + }, + { + "type": "efb", + "texture_filename": "efb1_n000015_160x120_6" + } + ] + } + ] +} \ No newline at end of file From 76fe7b6497c5283d1681cc9a7a0630d17ef73272 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Sun, 10 Jul 2022 23:17:46 +0400 Subject: [PATCH 376/659] NetworkCaptureLogger: Add GameCube BBA support --- Source/Core/Core/Config/MainSettings.cpp | 1 + Source/Core/Core/Config/MainSettings.h | 1 + Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp | 9 +++++++-- Source/Core/Core/NetworkCaptureLogger.cpp | 11 +++++++++++ Source/Core/Core/NetworkCaptureLogger.h | 6 ++++++ Source/Core/DolphinQt/Debugger/NetworkWidget.cpp | 10 ++++++++++ Source/Core/DolphinQt/Debugger/NetworkWidget.h | 1 + 7 files changed, 37 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp index c3161e924e..9ff3697c08 100644 --- a/Source/Core/Core/Config/MainSettings.cpp +++ b/Source/Core/Core/Config/MainSettings.cpp @@ -347,6 +347,7 @@ const Info MAIN_NETWORK_SSL_VERIFY_CERTIFICATES{ const Info MAIN_NETWORK_SSL_DUMP_ROOT_CA{{System::Main, "Network", "SSLDumpRootCA"}, false}; const Info MAIN_NETWORK_SSL_DUMP_PEER_CERT{{System::Main, "Network", "SSLDumpPeerCert"}, false}; +const Info MAIN_NETWORK_DUMP_BBA{{System::Main, "Network", "DumpBBA"}, false}; const Info MAIN_NETWORK_DUMP_AS_PCAP{{System::Main, "Network", "DumpAsPCAP"}, false}; // Default value based on: // - [RFC 1122] 4.2.3.5 TCP Connection Failures (at least 3 minutes) diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h index 4261eed960..7b52ad9ce4 100644 --- a/Source/Core/Core/Config/MainSettings.h +++ b/Source/Core/Core/Config/MainSettings.h @@ -206,6 +206,7 @@ extern const Info MAIN_NETWORK_SSL_DUMP_WRITE; extern const Info MAIN_NETWORK_SSL_VERIFY_CERTIFICATES; extern const Info MAIN_NETWORK_SSL_DUMP_ROOT_CA; extern const Info MAIN_NETWORK_SSL_DUMP_PEER_CERT; +extern const Info MAIN_NETWORK_DUMP_BBA; extern const Info MAIN_NETWORK_DUMP_AS_PCAP; extern const Info MAIN_NETWORK_TIMEOUT; diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp index 416b2c362d..fb99d616f1 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp @@ -8,6 +8,7 @@ #include #include +#include "Common/BitUtils.h" #include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" @@ -17,6 +18,7 @@ #include "Core/CoreTiming.h" #include "Core/HW/EXI/EXI.h" #include "Core/HW/Memmap.h" +#include "Core/PowerPC/PowerPC.h" namespace ExpansionInterface { @@ -441,7 +443,10 @@ void CEXIETHERNET::DirectFIFOWrite(const u8* data, u32 size) void CEXIETHERNET::SendFromDirectFIFO() { - m_network_interface->SendFrame(tx_fifo.get(), *(u16*)&mBbaMem[BBA_TXFIFOCNT]); + const u8* frame = tx_fifo.get(); + const u16 size = Common::BitCastPtr(&mBbaMem[BBA_TXFIFOCNT]); + if (m_network_interface->SendFrame(frame, size)) + PowerPC::debug_interface.NetworkLogger()->LogBBA(frame, size); } void CEXIETHERNET::SendFromPacketBuffer() @@ -554,7 +559,7 @@ bool CEXIETHERNET::RecvHandlePacket() INFO_LOG_FMT(SP1, "{:x} {:x} {:x} {:x}", page_ptr(BBA_BP), page_ptr(BBA_RRP), page_ptr(BBA_RWP), page_ptr(BBA_RHBP)); #endif - + PowerPC::debug_interface.NetworkLogger()->LogBBA(mRecvBuffer.get(), mRecvBufferLength); write_ptr = &mBbaMem[page_ptr(BBA_RWP) << 8]; descriptor = (Descriptor*)write_ptr; diff --git a/Source/Core/Core/NetworkCaptureLogger.cpp b/Source/Core/Core/NetworkCaptureLogger.cpp index 064b5ed25b..2fd921686a 100644 --- a/Source/Core/Core/NetworkCaptureLogger.cpp +++ b/Source/Core/Core/NetworkCaptureLogger.cpp @@ -46,6 +46,10 @@ void DummyNetworkCaptureLogger::LogWrite(const void* data, std::size_t length, s { } +void DummyNetworkCaptureLogger::LogBBA(const void* data, std::size_t length) +{ +} + NetworkCaptureType DummyNetworkCaptureLogger::GetCaptureType() const { return NetworkCaptureType::None; @@ -115,6 +119,13 @@ void PCAPSSLCaptureLogger::LogWrite(const void* data, std::size_t length, s32 so Log(LogType::Write, data, length, socket, to); } +void PCAPSSLCaptureLogger::LogBBA(const void* data, std::size_t length) +{ + if (!Config::Get(Config::MAIN_NETWORK_DUMP_BBA)) + return; + m_file->AddPacket(static_cast(data), length); +} + void PCAPSSLCaptureLogger::Log(LogType log_type, const void* data, std::size_t length, s32 socket, sockaddr* other) { diff --git a/Source/Core/Core/NetworkCaptureLogger.h b/Source/Core/Core/NetworkCaptureLogger.h index d5067252d4..3e45446ac1 100644 --- a/Source/Core/Core/NetworkCaptureLogger.h +++ b/Source/Core/Core/NetworkCaptureLogger.h @@ -51,6 +51,8 @@ public: virtual void LogRead(const void* data, std::size_t length, s32 socket, sockaddr* from) = 0; virtual void LogWrite(const void* data, std::size_t length, s32 socket, sockaddr* to) = 0; + virtual void LogBBA(const void* data, std::size_t length) = 0; + virtual NetworkCaptureType GetCaptureType() const = 0; }; @@ -65,6 +67,8 @@ public: void LogRead(const void* data, std::size_t length, s32 socket, sockaddr* from) override; void LogWrite(const void* data, std::size_t length, s32 socket, sockaddr* to) override; + void LogBBA(const void* data, std::size_t length) override; + NetworkCaptureType GetCaptureType() const override; }; @@ -91,6 +95,8 @@ public: void LogRead(const void* data, std::size_t length, s32 socket, sockaddr* from) override; void LogWrite(const void* data, std::size_t length, s32 socket, sockaddr* to) override; + void LogBBA(const void* data, std::size_t length) override; + NetworkCaptureType GetCaptureType() const override; private: diff --git a/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp b/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp index 96d25cc464..6439a061ba 100644 --- a/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp +++ b/Source/Core/DolphinQt/Debugger/NetworkWidget.cpp @@ -223,6 +223,9 @@ void NetworkWidget::ConnectWidgets() connect(m_verify_certificates_checkbox, &QCheckBox::stateChanged, [](int state) { Config::SetBaseOrCurrent(Config::MAIN_NETWORK_SSL_VERIFY_CERTIFICATES, state == Qt::Checked); }); + connect(m_dump_bba_checkbox, &QCheckBox::stateChanged, [](int state) { + Config::SetBaseOrCurrent(Config::MAIN_NETWORK_DUMP_BBA, state == Qt::Checked); + }); connect(m_open_dump_folder, &QPushButton::pressed, [] { const std::string location = File::GetUserPath(D_DUMPSSL_IDX); const QUrl url = QUrl::fromLocalFile(QString::fromStdString(location)); @@ -352,6 +355,7 @@ QGroupBox* NetworkWidget::CreateDumpOptionsGroup() // i18n: CA stands for certificate authority m_dump_root_ca_checkbox = new QCheckBox(tr("Dump root CA certificates")); m_dump_peer_cert_checkbox = new QCheckBox(tr("Dump peer certificates")); + m_dump_bba_checkbox = new QCheckBox(tr("Dump GameCube BBA traffic")); m_open_dump_folder = new QPushButton(tr("Open dump folder")); m_open_dump_folder->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); @@ -370,6 +374,7 @@ QGroupBox* NetworkWidget::CreateDumpOptionsGroup() dump_options_layout->addWidget(m_dump_ssl_write_checkbox); dump_options_layout->addWidget(m_dump_root_ca_checkbox); dump_options_layout->addWidget(m_dump_peer_cert_checkbox); + dump_options_layout->addWidget(m_dump_bba_checkbox); dump_options_layout->addWidget(m_open_dump_folder); dump_options_layout->setSpacing(1); @@ -414,23 +419,28 @@ void NetworkWidget::OnDumpFormatComboChanged(int index) case FormatComboId::BinarySSL: m_dump_ssl_read_checkbox->setChecked(true); m_dump_ssl_write_checkbox->setChecked(true); + m_dump_bba_checkbox->setChecked(false); break; case FormatComboId::BinarySSLRead: m_dump_ssl_read_checkbox->setChecked(true); m_dump_ssl_write_checkbox->setChecked(false); + m_dump_bba_checkbox->setChecked(false); break; case FormatComboId::BinarySSLWrite: m_dump_ssl_read_checkbox->setChecked(false); m_dump_ssl_write_checkbox->setChecked(true); + m_dump_bba_checkbox->setChecked(false); break; default: m_dump_ssl_read_checkbox->setChecked(false); m_dump_ssl_write_checkbox->setChecked(false); + m_dump_bba_checkbox->setChecked(false); break; } // Enable raw or decrypted SSL choices for PCAP const bool is_pcap = combo_id == FormatComboId::PCAP; m_dump_ssl_read_checkbox->setEnabled(is_pcap); m_dump_ssl_write_checkbox->setEnabled(is_pcap); + m_dump_bba_checkbox->setEnabled(is_pcap); Config::SetBaseOrCurrent(Config::MAIN_NETWORK_DUMP_AS_PCAP, is_pcap); } diff --git a/Source/Core/DolphinQt/Debugger/NetworkWidget.h b/Source/Core/DolphinQt/Debugger/NetworkWidget.h index f2ce77b615..eb235129bd 100644 --- a/Source/Core/DolphinQt/Debugger/NetworkWidget.h +++ b/Source/Core/DolphinQt/Debugger/NetworkWidget.h @@ -58,5 +58,6 @@ private: QCheckBox* m_dump_root_ca_checkbox; QCheckBox* m_dump_peer_cert_checkbox; QCheckBox* m_verify_certificates_checkbox; + QCheckBox* m_dump_bba_checkbox; QPushButton* m_open_dump_folder; }; From e79c7d498556faa17d346cec1bac55ad4aa83c3e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 13 Jul 2022 01:37:05 +0200 Subject: [PATCH 377/659] InputCommon: Don't force-link against SDL2.lib on Windows. --- Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 6dec6003fd..0d7494142d 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -16,8 +16,6 @@ #ifdef _WIN32 #include - -#pragma comment(lib, "SDL2.lib") #endif namespace ciface::SDL From e2e7bc2fa3d88d229c892d132c1112d6246e4c3d Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 13 Jul 2022 01:42:54 +0200 Subject: [PATCH 378/659] CMake: Disable warnings and only build static lib for SDL from externals. --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1346b6da95..c7da439b18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -619,11 +619,22 @@ if(ENABLE_SDL) message(STATUS "Using system SDL2") else() message(STATUS "Using static SDL2 from Externals") + option(SDL2_DISABLE_SDL2MAIN "" ON) + option(SDL2_DISABLE_INSTALL "" ON) + option(SDL2_DISABLE_UNINSTALL "" ON) set(SDL_SHARED OFF) set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) set(SDL_STATIC ON) set(SDL_STATIC_ENABLED_BY_DEFAULT ON) + set(SDL_TEST OFF) + set(SDL_TEST_ENABLED_BY_DEFAULT OFF) add_subdirectory(Externals/SDL/SDL) + if (TARGET SDL2) + dolphin_disable_warnings_msvc(SDL2) + endif() + if (TARGET SDL2-static) + dolphin_disable_warnings_msvc(SDL2-static) + endif() set(SDL2_FOUND TRUE) endif() add_definitions(-DHAVE_SDL2=1) From 6bd0fc86ba228195315d823d822a04174bc8982b Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 13 Jul 2022 02:27:45 -0500 Subject: [PATCH 379/659] VideoCommon: Properly mask fbfetch logic op emulation --- Source/Core/VideoCommon/PixelShaderGen.cpp | 2 +- Source/Core/VideoCommon/UberShaderPixel.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 3304c74658..3220131a71 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -1843,7 +1843,7 @@ static void WriteLogicOp(ShaderCode& out, const pixel_shader_uid_data* uid_data) }; out.Write("\tint4 fb_value = iround(initial_ocol0 * 255.0);\n"); - out.Write("\tprev = {};\n", logic_op_mode[uid_data->logic_op_mode]); + out.Write("\tprev = ({}) & 0xff;\n", logic_op_mode[uid_data->logic_op_mode]); } static void WriteColor(ShaderCode& out, APIType api_type, const pixel_shader_uid_data* uid_data, diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 024b49ddfa..a5d997eb20 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -1086,6 +1086,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, } out.Write(" }}\n" + " TevResult &= 0xff;\n" " }}\n"); } From f83015649c23c8207420ee59333ac51ac029e89d Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 13 Jul 2022 02:55:54 -0500 Subject: [PATCH 380/659] VideoCommon: Clear backend_info before populating --- Source/Core/VideoCommon/VideoBackendBase.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 3a2eafd025..6028b7b14a 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -264,6 +264,9 @@ void VideoBackendBase::ActivateBackend(const std::string& name) void VideoBackendBase::PopulateBackendInfo() { g_Config.Refresh(); + // Reset backend_info so if the backend forgets to initialize something it doesn't end up using + // a value from the previously used renderer + g_Config.backend_info = {}; ActivateBackend(Config::Get(Config::MAIN_GFX_BACKEND)); g_video_backend->InitBackendInfo(); // We validate the config after initializing the backend info, as system-specific settings From 10407cc8c195384d337485ece68c128c3293a00e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 13 Jul 2022 13:35:07 +0200 Subject: [PATCH 381/659] DiscIO/VolumeVerifier: Don't try to verify data that would read out of bounds. --- Source/Core/DiscIO/VolumeVerifier.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 84ab51ef13..fc1eddfb19 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -1151,6 +1151,8 @@ void VolumeVerifier::Process() excess_bytes = 0; else excess_bytes -= bytes_over_max; + content_read = false; + group_read = false; } const bool is_data_needed = m_calculating_any_hash || content_read || group_read; From 25aa30ac6918a4726195140fa0fdb404dec07130 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 13 Jul 2022 15:22:40 -0700 Subject: [PATCH 382/659] Free Look: Add background input setting (disabled by default) Before, Free Look would accept background input by default, which means it was easy to accidentally move the camera while typing in another window. (This is because HotkeyScheduler::Run sets the input gate to `true` after it's copied the hotkey state, supposedly for other threads (though `SetInputGate` uses a `thread_local` variable so I'm not 100% sure that's correct) and for the GBA windows (which always accept unfocused input, presumably because they won't be focused normally). --- Source/Core/Core/Config/FreeLookSettings.cpp | 2 ++ Source/Core/Core/Config/FreeLookSettings.h | 1 + Source/Core/Core/FreeLookManager.cpp | 9 +++++++++ Source/Core/DolphinQt/Config/FreeLookWidget.cpp | 9 +++++++++ Source/Core/DolphinQt/Config/FreeLookWidget.h | 2 ++ 5 files changed, 23 insertions(+) diff --git a/Source/Core/Core/Config/FreeLookSettings.cpp b/Source/Core/Core/Config/FreeLookSettings.cpp index 7ac600cc09..d66400bbe7 100644 --- a/Source/Core/Core/Config/FreeLookSettings.cpp +++ b/Source/Core/Core/Config/FreeLookSettings.cpp @@ -12,6 +12,8 @@ namespace Config { // Configuration Information const Info FREE_LOOK_ENABLED{{System::FreeLook, "General", "Enabled"}, false}; +const Info FREE_LOOK_BACKGROUND_INPUT{{System::FreeLook, "General", "BackgroundInput"}, + false}; // FreeLook.Controller1 const Info FL1_CONTROL_TYPE{{System::FreeLook, "Camera1", "ControlType"}, diff --git a/Source/Core/Core/Config/FreeLookSettings.h b/Source/Core/Core/Config/FreeLookSettings.h index f128ed4af2..367173a0a4 100644 --- a/Source/Core/Core/Config/FreeLookSettings.h +++ b/Source/Core/Core/Config/FreeLookSettings.h @@ -15,6 +15,7 @@ namespace Config // Configuration Information extern const Info FREE_LOOK_ENABLED; +extern const Info FREE_LOOK_BACKGROUND_INPUT; // FreeLook.Controller1 extern const Info FL1_CONTROL_TYPE; diff --git a/Source/Core/Core/FreeLookManager.cpp b/Source/Core/Core/FreeLookManager.cpp index ac0206ced9..432dbb0b92 100644 --- a/Source/Core/Core/FreeLookManager.cpp +++ b/Source/Core/Core/FreeLookManager.cpp @@ -6,10 +6,14 @@ #include "Common/Common.h" #include "Common/CommonTypes.h" #include "Common/Config/Config.h" +#include "Common/ScopeGuard.h" +#include "Core/Config/FreeLookSettings.h" #include "Core/ConfigManager.h" +#include "Core/Core.h" #include "Core/FreeLookConfig.h" +#include "InputCommon/ControlReference/ControlReference.h" #include "InputCommon/ControllerEmu/ControlGroup/Buttons.h" #include "InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.h" #include "InputCommon/InputConfig.h" @@ -226,6 +230,11 @@ void FreeLookController::Update() void FreeLookController::UpdateInput(CameraControllerInput* camera_controller) { const auto lock = GetStateLock(); + // Preserve the old controller gate state + const auto old_gate = ControlReference::GetInputGate(); + Common::ScopeGuard gate_guard{[old_gate] { ControlReference::SetInputGate(old_gate); }}; + // Switch to the free look focus gate + Core::UpdateInputGate(!Config::Get(Config::FREE_LOOK_BACKGROUND_INPUT)); float dt = 1.0; if (m_last_free_look_rotate_time) diff --git a/Source/Core/DolphinQt/Config/FreeLookWidget.cpp b/Source/Core/DolphinQt/Config/FreeLookWidget.cpp index 8ef725e1d0..87c204b667 100644 --- a/Source/Core/DolphinQt/Config/FreeLookWidget.cpp +++ b/Source/Core/DolphinQt/Config/FreeLookWidget.cpp @@ -61,6 +61,9 @@ void FreeLookWidget::CreateLayout() description->setTextInteractionFlags(Qt::TextBrowserInteraction); description->setOpenExternalLinks(true); + m_freelook_background_input = new QCheckBox(tr("Background Input")); + m_freelook_background_input->setChecked(Config::Get(Config::FREE_LOOK_BACKGROUND_INPUT)); + auto* hlayout = new QHBoxLayout(); hlayout->addWidget(new QLabel(tr("Camera 1"))); hlayout->addWidget(m_freelook_control_type); @@ -68,6 +71,7 @@ void FreeLookWidget::CreateLayout() layout->addWidget(m_enable_freelook); layout->addLayout(hlayout); + layout->addWidget(m_freelook_background_input); layout->addWidget(description); setLayout(layout); @@ -78,6 +82,7 @@ void FreeLookWidget::ConnectWidgets() connect(m_freelook_controller_configure_button, &QPushButton::clicked, this, &FreeLookWidget::OnFreeLookControllerConfigured); connect(m_enable_freelook, &QCheckBox::clicked, this, &FreeLookWidget::SaveSettings); + connect(m_freelook_background_input, &QCheckBox::clicked, this, &FreeLookWidget::SaveSettings); connect(&Settings::Instance(), &Settings::ConfigChanged, this, [this] { const QSignalBlocker blocker(this); LoadSettings(); @@ -101,12 +106,16 @@ void FreeLookWidget::LoadSettings() m_enable_freelook->setChecked(checked); m_freelook_control_type->setEnabled(checked); m_freelook_controller_configure_button->setEnabled(checked); + m_freelook_background_input->setEnabled(checked); } void FreeLookWidget::SaveSettings() { const bool checked = m_enable_freelook->isChecked(); Config::SetBaseOrCurrent(Config::FREE_LOOK_ENABLED, checked); + Config::SetBaseOrCurrent(Config::FREE_LOOK_BACKGROUND_INPUT, + m_freelook_background_input->isChecked()); m_freelook_control_type->setEnabled(checked); m_freelook_controller_configure_button->setEnabled(checked); + m_freelook_background_input->setEnabled(checked); } diff --git a/Source/Core/DolphinQt/Config/FreeLookWidget.h b/Source/Core/DolphinQt/Config/FreeLookWidget.h index e40babbc03..5dbcdf21d0 100644 --- a/Source/Core/DolphinQt/Config/FreeLookWidget.h +++ b/Source/Core/DolphinQt/Config/FreeLookWidget.h @@ -6,6 +6,7 @@ #include class GraphicsChoice; +class QCheckBox; class QPushButton; class ToolTipCheckBox; @@ -26,4 +27,5 @@ private: ToolTipCheckBox* m_enable_freelook; GraphicsChoice* m_freelook_control_type; QPushButton* m_freelook_controller_configure_button; + QCheckBox* m_freelook_background_input; }; From 6ab24e6c176bfd288296bf8284a30b0835fa45c3 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sat, 11 Jun 2022 21:03:09 -0500 Subject: [PATCH 383/659] VideoCommon: Better driver bug handling Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader --- Source/Core/VideoBackends/OGL/OGLRender.cpp | 80 +++++------ .../VideoBackends/Software/Rasterizer.cpp | 2 +- Source/Core/VideoBackends/Software/Tev.cpp | 2 +- .../Core/VideoBackends/Vulkan/VKPipeline.cpp | 82 +++++------- .../VideoBackends/Vulkan/VulkanContext.cpp | 7 - Source/Core/VideoCommon/BPMemory.h | 21 ++- Source/Core/VideoCommon/DriverDetails.h | 3 +- Source/Core/VideoCommon/GXPipelineTypes.h | 2 +- Source/Core/VideoCommon/PixelShaderGen.cpp | 102 ++++---------- Source/Core/VideoCommon/PixelShaderGen.h | 7 +- .../Core/VideoCommon/PixelShaderManager.cpp | 2 +- Source/Core/VideoCommon/RenderState.cpp | 28 ++++ Source/Core/VideoCommon/RenderState.h | 2 + Source/Core/VideoCommon/ShaderCache.cpp | 126 ++++++++++++++++-- Source/Core/VideoCommon/UberShaderPixel.cpp | 19 ++- Source/Core/VideoCommon/UberShaderPixel.h | 9 +- 16 files changed, 292 insertions(+), 202 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/OGLRender.cpp b/Source/Core/VideoBackends/OGL/OGLRender.cpp index 4c686941fe..93df1ccc29 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.cpp +++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp @@ -1168,55 +1168,43 @@ void Renderer::ApplyBlendingState(const BlendingState state) if (m_current_blend_state == state) return; - bool useDualSource = - state.usedualsrc && g_ActiveConfig.backend_info.bSupportsDualSourceBlend && - (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha); - // Only use shader blend if we need to and we don't support dual-source blending directly - bool useShaderBlend = !useDualSource && state.usedualsrc && state.dstalpha && - g_ActiveConfig.backend_info.bSupportsFramebufferFetch; + bool useDualSource = state.usedualsrc; - if (useShaderBlend) - { - glDisable(GL_BLEND); - } + const GLenum src_factors[8] = {GL_ZERO, + GL_ONE, + GL_DST_COLOR, + GL_ONE_MINUS_DST_COLOR, + useDualSource ? GL_SRC1_ALPHA : (GLenum)GL_SRC_ALPHA, + useDualSource ? GL_ONE_MINUS_SRC1_ALPHA : + (GLenum)GL_ONE_MINUS_SRC_ALPHA, + GL_DST_ALPHA, + GL_ONE_MINUS_DST_ALPHA}; + const GLenum dst_factors[8] = {GL_ZERO, + GL_ONE, + GL_SRC_COLOR, + GL_ONE_MINUS_SRC_COLOR, + useDualSource ? GL_SRC1_ALPHA : (GLenum)GL_SRC_ALPHA, + useDualSource ? GL_ONE_MINUS_SRC1_ALPHA : + (GLenum)GL_ONE_MINUS_SRC_ALPHA, + GL_DST_ALPHA, + GL_ONE_MINUS_DST_ALPHA}; + + if (state.blendenable) + glEnable(GL_BLEND); else - { - const GLenum src_factors[8] = {GL_ZERO, - GL_ONE, - GL_DST_COLOR, - GL_ONE_MINUS_DST_COLOR, - useDualSource ? GL_SRC1_ALPHA : (GLenum)GL_SRC_ALPHA, - useDualSource ? GL_ONE_MINUS_SRC1_ALPHA : - (GLenum)GL_ONE_MINUS_SRC_ALPHA, - GL_DST_ALPHA, - GL_ONE_MINUS_DST_ALPHA}; - const GLenum dst_factors[8] = {GL_ZERO, - GL_ONE, - GL_SRC_COLOR, - GL_ONE_MINUS_SRC_COLOR, - useDualSource ? GL_SRC1_ALPHA : (GLenum)GL_SRC_ALPHA, - useDualSource ? GL_ONE_MINUS_SRC1_ALPHA : - (GLenum)GL_ONE_MINUS_SRC_ALPHA, - GL_DST_ALPHA, - GL_ONE_MINUS_DST_ALPHA}; + glDisable(GL_BLEND); - if (state.blendenable) - glEnable(GL_BLEND); - else - glDisable(GL_BLEND); - - // Always call glBlendEquationSeparate and glBlendFuncSeparate, even when - // GL_BLEND is disabled, as a workaround for some bugs (possibly graphics - // driver issues?). See https://bugs.dolphin-emu.org/issues/10120 : "Sonic - // Adventure 2 Battle: graphics crash when loading first Dark level" - GLenum equation = state.subtract ? GL_FUNC_REVERSE_SUBTRACT : GL_FUNC_ADD; - GLenum equationAlpha = state.subtractAlpha ? GL_FUNC_REVERSE_SUBTRACT : GL_FUNC_ADD; - glBlendEquationSeparate(equation, equationAlpha); - glBlendFuncSeparate(src_factors[u32(state.srcfactor.Value())], - dst_factors[u32(state.dstfactor.Value())], - src_factors[u32(state.srcfactoralpha.Value())], - dst_factors[u32(state.dstfactoralpha.Value())]); - } + // Always call glBlendEquationSeparate and glBlendFuncSeparate, even when + // GL_BLEND is disabled, as a workaround for some bugs (possibly graphics + // driver issues?). See https://bugs.dolphin-emu.org/issues/10120 : "Sonic + // Adventure 2 Battle: graphics crash when loading first Dark level" + GLenum equation = state.subtract ? GL_FUNC_REVERSE_SUBTRACT : GL_FUNC_ADD; + GLenum equationAlpha = state.subtractAlpha ? GL_FUNC_REVERSE_SUBTRACT : GL_FUNC_ADD; + glBlendEquationSeparate(equation, equationAlpha); + glBlendFuncSeparate(src_factors[u32(state.srcfactor.Value())], + dst_factors[u32(state.dstfactor.Value())], + src_factors[u32(state.srcfactoralpha.Value())], + dst_factors[u32(state.dstfactoralpha.Value())]); const GLenum logic_op_codes[16] = { GL_CLEAR, GL_AND, GL_AND_REVERSE, GL_COPY, GL_AND_INVERTED, GL_NOOP, diff --git a/Source/Core/VideoBackends/Software/Rasterizer.cpp b/Source/Core/VideoBackends/Software/Rasterizer.cpp index 4b3f02758d..b7170527d5 100644 --- a/Source/Core/VideoBackends/Software/Rasterizer.cpp +++ b/Source/Core/VideoBackends/Software/Rasterizer.cpp @@ -153,7 +153,7 @@ static void Draw(s32 x, s32 y, s32 xi, s32 yi) s32 z = (s32)std::clamp(ZSlope.GetValue(x, y), 0.0f, 16777215.0f); - if (bpmem.UseEarlyDepthTest()) + if (bpmem.GetEmulatedZ() == EmulatedZ::Early) { // TODO: Test if perf regs are incremented even if test is disabled EfbInterface::IncPerfCounterQuadCount(PQ_ZCOMP_INPUT_ZCOMPLOC); diff --git a/Source/Core/VideoBackends/Software/Tev.cpp b/Source/Core/VideoBackends/Software/Tev.cpp index 64e0f7774b..c2039df3ea 100644 --- a/Source/Core/VideoBackends/Software/Tev.cpp +++ b/Source/Core/VideoBackends/Software/Tev.cpp @@ -840,7 +840,7 @@ void Tev::Draw() output[BLU_C] = (output[BLU_C] * invFog + fogInt * bpmem.fog.color.b) >> 8; } - if (bpmem.UseLateDepthTest()) + if (bpmem.GetEmulatedZ() == EmulatedZ::Late) { // TODO: Check against hw if these values get incremented even if depth testing is disabled EfbInterface::IncPerfCounterQuadCount(PQ_ZCOMP_INPUT); diff --git a/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp b/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp index 61c51b5d34..f21fb9bf5e 100644 --- a/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKPipeline.cpp @@ -137,60 +137,48 @@ GetVulkanAttachmentBlendState(const BlendingState& state, AbstractPipelineUsage { VkPipelineColorBlendAttachmentState vk_state = {}; - bool use_dual_source = - state.usedualsrc && g_ActiveConfig.backend_info.bSupportsDualSourceBlend && - (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha); - bool use_shader_blend = !use_dual_source && state.usedualsrc && state.dstalpha && - g_ActiveConfig.backend_info.bSupportsFramebufferFetch; + bool use_dual_source = state.usedualsrc; - if (use_shader_blend || (usage == AbstractPipelineUsage::GX && - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z))) + vk_state.blendEnable = static_cast(state.blendenable); + vk_state.colorBlendOp = state.subtract ? VK_BLEND_OP_REVERSE_SUBTRACT : VK_BLEND_OP_ADD; + vk_state.alphaBlendOp = state.subtractAlpha ? VK_BLEND_OP_REVERSE_SUBTRACT : VK_BLEND_OP_ADD; + + if (use_dual_source) { - vk_state.blendEnable = VK_FALSE; + static constexpr std::array src_factors = { + {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_DST_COLOR, + VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; + static constexpr std::array dst_factors = { + {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR, + VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; + + vk_state.srcColorBlendFactor = src_factors[u32(state.srcfactor.Value())]; + vk_state.srcAlphaBlendFactor = src_factors[u32(state.srcfactoralpha.Value())]; + vk_state.dstColorBlendFactor = dst_factors[u32(state.dstfactor.Value())]; + vk_state.dstAlphaBlendFactor = dst_factors[u32(state.dstfactoralpha.Value())]; } else { - vk_state.blendEnable = static_cast(state.blendenable); - vk_state.colorBlendOp = state.subtract ? VK_BLEND_OP_REVERSE_SUBTRACT : VK_BLEND_OP_ADD; - vk_state.alphaBlendOp = state.subtractAlpha ? VK_BLEND_OP_REVERSE_SUBTRACT : VK_BLEND_OP_ADD; + static constexpr std::array src_factors = { + {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_DST_COLOR, + VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; - if (use_dual_source) - { - static constexpr std::array src_factors = { - {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_DST_COLOR, - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; - static constexpr std::array dst_factors = { - {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR, - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; + static constexpr std::array dst_factors = { + {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR, + VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_SRC_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; - vk_state.srcColorBlendFactor = src_factors[u32(state.srcfactor.Value())]; - vk_state.srcAlphaBlendFactor = src_factors[u32(state.srcfactoralpha.Value())]; - vk_state.dstColorBlendFactor = dst_factors[u32(state.dstfactor.Value())]; - vk_state.dstAlphaBlendFactor = dst_factors[u32(state.dstfactoralpha.Value())]; - } - else - { - static constexpr std::array src_factors = { - {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_DST_COLOR, - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; - - static constexpr std::array dst_factors = { - {VK_BLEND_FACTOR_ZERO, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR, - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_SRC_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA}}; - - vk_state.srcColorBlendFactor = src_factors[u32(state.srcfactor.Value())]; - vk_state.srcAlphaBlendFactor = src_factors[u32(state.srcfactoralpha.Value())]; - vk_state.dstColorBlendFactor = dst_factors[u32(state.dstfactor.Value())]; - vk_state.dstAlphaBlendFactor = dst_factors[u32(state.dstfactoralpha.Value())]; - } + vk_state.srcColorBlendFactor = src_factors[u32(state.srcfactor.Value())]; + vk_state.srcAlphaBlendFactor = src_factors[u32(state.srcfactoralpha.Value())]; + vk_state.dstColorBlendFactor = dst_factors[u32(state.dstfactor.Value())]; + vk_state.dstAlphaBlendFactor = dst_factors[u32(state.dstfactoralpha.Value())]; } if (state.colorupdate) diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp index 1dc02e689a..a6cb201d72 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp +++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp @@ -371,13 +371,6 @@ void VulkanContext::PopulateBackendInfoFeatures(VideoConfig* config, VkPhysicalD if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_REVERSED_DEPTH_RANGE)) config->backend_info.bSupportsReversedDepthRange = false; - // Calling discard when early depth test is enabled can break on some Apple Silicon GPU drivers. - if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z)) - { - // We will use shader blending, so disable hardware dual source blending. - config->backend_info.bSupportsDualSourceBlend = false; - } - // Dynamic sampler indexing locks up Intel GPUs on MoltenVK/Metal if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING)) config->backend_info.bSupportsDynamicSamplerIndexing = false; diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h index 28155a2cd6..2caeef62e1 100644 --- a/Source/Core/VideoCommon/BPMemory.h +++ b/Source/Core/VideoCommon/BPMemory.h @@ -2336,6 +2336,16 @@ struct BPCmd int newvalue; }; +enum class EmulatedZ : u32 +{ + Disabled = 0, + Early = 1, + Late = 2, + ForcedEarly = 3, + EarlyWithFBFetch = 4, + EarlyWithZComplocHack = 5, +}; + struct BPMemory { GenMode genMode; @@ -2403,8 +2413,15 @@ struct BPMemory u32 bpMask; // 0xFE u32 unknown18; // ff - bool UseEarlyDepthTest() const { return zcontrol.early_ztest && zmode.testenable; } - bool UseLateDepthTest() const { return !zcontrol.early_ztest && zmode.testenable; } + EmulatedZ GetEmulatedZ() const + { + if (!zmode.testenable) + return EmulatedZ::Disabled; + if (zcontrol.early_ztest) + return EmulatedZ::Early; + else + return EmulatedZ::Late; + } }; #pragma pack() diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index c1dbdb0a4a..646fa00f74 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -237,7 +237,8 @@ enum Bug // crash. Sometimes this happens in the kernel mode part of the driver, resulting in a BSOD. // These shaders are also particularly problematic on macOS's Intel drivers. On OpenGL, they can // cause depth issues. On Metal, they can cause the driver to not write a primitive to the depth - // buffer whenever a fragment is discarded. Disable dual-source blending support on these drivers. + // buffer if dual source blending is output in the shader but not subsequently used in blending. + // Compile separate shaders for DSB on vs off for these drivers. BUG_BROKEN_DUAL_SOURCE_BLENDING, // BUG: ImgTec GLSL shader compiler fails when negating the input to a bitwise operation diff --git a/Source/Core/VideoCommon/GXPipelineTypes.h b/Source/Core/VideoCommon/GXPipelineTypes.h index b448dc107f..c226739b7d 100644 --- a/Source/Core/VideoCommon/GXPipelineTypes.h +++ b/Source/Core/VideoCommon/GXPipelineTypes.h @@ -19,7 +19,7 @@ namespace VideoCommon // As pipelines encompass both shader UIDs and render states, changes to either of these should // also increment the pipeline UID version. Incrementing the UID version will cause all UID // caches to be invalidated. -constexpr u32 GX_PIPELINE_UID_VERSION = 4; // Last changed in PR 10215 +constexpr u32 GX_PIPELINE_UID_VERSION = 5; // Last changed in PR 10747 struct GXPipelineUid { diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 3304c74658..6177e2ad3e 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -167,9 +167,6 @@ constexpr Common::EnumMap tev_a_output_table{ "c2.a", }; -// FIXME: Some of the video card's capabilities (BBox support, EarlyZ support, dstAlpha support) -// leak into this UID; This is really unhelpful if these UIDs ever move from one machine to -// another. PixelShaderUid GetPixelShaderUid() { PixelShaderUid out; @@ -189,20 +186,25 @@ PixelShaderUid GetPixelShaderUid() u32 numStages = uid_data->genMode_numtevstages + 1; - const bool forced_early_z = - bpmem.UseEarlyDepthTest() && + uid_data->Pretest = bpmem.alpha_test.TestResult(); + uid_data->ztest = bpmem.GetEmulatedZ(); + if (uid_data->ztest == EmulatedZ::Early && (g_ActiveConfig.bFastDepthCalc || bpmem.alpha_test.TestResult() == AlphaTestResult::Undetermined) // We can't allow early_ztest for zfreeze because depth is overridden per-pixel. // This means it's impossible for zcomploc to be emulated on a zfrozen polygon. - && !(bpmem.zmode.testenable && bpmem.genMode.zfreeze); + && !bpmem.genMode.zfreeze) + { + uid_data->ztest = EmulatedZ::ForcedEarly; + } + + const bool forced_early_z = uid_data->ztest == EmulatedZ::ForcedEarly; const bool per_pixel_depth = - (bpmem.ztex2.op != ZTexOp::Disabled && bpmem.UseLateDepthTest()) || + (bpmem.ztex2.op != ZTexOp::Disabled && uid_data->ztest == EmulatedZ::Late) || (!g_ActiveConfig.bFastDepthCalc && bpmem.zmode.testenable && !forced_early_z) || (bpmem.zmode.testenable && bpmem.genMode.zfreeze); uid_data->per_pixel_depth = per_pixel_depth; - uid_data->forced_early_z = forced_early_z; if (g_ActiveConfig.bEnablePixelLighting) { @@ -285,59 +287,24 @@ PixelShaderUid GetPixelShaderUid() sizeof(*uid_data) : MY_STRUCT_OFFSET(*uid_data, stagehash[numStages]); - uid_data->Pretest = bpmem.alpha_test.TestResult(); - uid_data->late_ztest = bpmem.UseLateDepthTest(); - // NOTE: Fragment may not be discarded if alpha test always fails and early depth test is enabled // (in this case we need to write a depth value if depth test passes regardless of the alpha // testing result) if (uid_data->Pretest == AlphaTestResult::Undetermined || - (uid_data->Pretest == AlphaTestResult::Fail && uid_data->late_ztest)) + (uid_data->Pretest == AlphaTestResult::Fail && uid_data->ztest == EmulatedZ::Late)) { uid_data->alpha_test_comp0 = bpmem.alpha_test.comp0; uid_data->alpha_test_comp1 = bpmem.alpha_test.comp1; uid_data->alpha_test_logic = bpmem.alpha_test.logic; - - // ZCOMPLOC HACK: - // The only way to emulate alpha test + early-z is to force early-z in the shader. - // As this isn't available on all drivers and as we can't emulate this feature otherwise, - // we are only able to choose which one we want to respect more. - // Tests seem to have proven that writing depth even when the alpha test fails is more - // important that a reliable alpha test, so we just force the alpha test to always succeed. - // At least this seems to be less buggy. - uid_data->alpha_test_use_zcomploc_hack = - bpmem.UseEarlyDepthTest() && bpmem.zmode.updateenable && - !g_ActiveConfig.backend_info.bSupportsEarlyZ && !bpmem.genMode.zfreeze; } uid_data->zfreeze = bpmem.genMode.zfreeze; uid_data->ztex_op = bpmem.ztex2.op; - uid_data->early_ztest = bpmem.UseEarlyDepthTest(); uid_data->fog_fsel = bpmem.fog.c_proj_fsel.fsel; uid_data->fog_proj = bpmem.fog.c_proj_fsel.proj; uid_data->fog_RangeBaseEnabled = bpmem.fogRange.Base.Enabled; - BlendingState state = {}; - state.Generate(bpmem); - - if (((state.usedualsrc && state.dstalpha) || - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z)) && - g_ActiveConfig.backend_info.bSupportsFramebufferFetch && - !g_ActiveConfig.backend_info.bSupportsDualSourceBlend) - { - uid_data->blend_enable = state.blendenable; - uid_data->blend_src_factor = state.srcfactor; - uid_data->blend_src_factor_alpha = state.srcfactoralpha; - uid_data->blend_dst_factor = state.dstfactor; - uid_data->blend_dst_factor_alpha = state.dstfactoralpha; - uid_data->blend_subtract = state.subtract; - uid_data->blend_subtract_alpha = state.subtractAlpha; - } - - uid_data->logic_op_enable = state.logicopenable; - uid_data->logic_op_mode = u32(state.logicmode.Value()); - return out; } @@ -798,7 +765,7 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos out.Write("\n#define sampleTextureWrapper(texmap, uv, layer) " "sampleTexture(texmap, samp[texmap], uv, layer)\n"); - if (uid_data->forced_early_z && g_ActiveConfig.backend_info.bSupportsEarlyZ) + if (uid_data->ztest == EmulatedZ::ForcedEarly) { // Zcomploc (aka early_ztest) is a way to control whether depth test is done before // or after texturing and alpha test. PC graphics APIs used to provide no way to emulate @@ -837,28 +804,15 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos out.Write("FORCE_EARLY_Z; \n"); } - // Only use dual-source blending when required on drivers that don't support it very well. - const bool use_dual_source = - host_config.backend_dual_source_blend && - (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || - uid_data->useDstAlpha); - const bool use_shader_blend = - !use_dual_source && - (uid_data->useDstAlpha || - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z)) && - host_config.backend_shader_framebuffer_fetch; - const bool use_shader_logic_op = !host_config.backend_logic_op && uid_data->logic_op_enable && - host_config.backend_shader_framebuffer_fetch; - const bool use_framebuffer_fetch = - use_shader_blend || use_shader_logic_op || - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z); + const bool use_framebuffer_fetch = uid_data->blend_enable || uid_data->logic_op_enable || + uid_data->ztest == EmulatedZ::EarlyWithFBFetch; #ifdef __APPLE__ // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) // if we want to use it. if (api_type == APIType::Vulkan) { - if (use_dual_source) + if (!uid_data->no_dual_src) { out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", @@ -891,7 +845,7 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos uid_data->uint_output ? "uvec4" : "vec4", use_framebuffer_fetch ? "real_ocol0" : "ocol0"); - if (use_dual_source) + if (!uid_data->no_dual_src) { out.Write("{} out {} ocol1;\n", has_broken_decoration ? "FRAGMENT_OUTPUT_LOCATION(1)" : @@ -960,7 +914,7 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos out.Write("\tfloat4 ocol0;\n"); } - if (use_shader_blend) + if (uid_data->blend_enable) { out.Write("\tfloat4 ocol1;\n"); } @@ -1086,10 +1040,10 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos // (in this case we need to write a depth value if depth test passes regardless of the alpha // testing result) if (uid_data->Pretest == AlphaTestResult::Undetermined || - (uid_data->Pretest == AlphaTestResult::Fail && uid_data->late_ztest)) + (uid_data->Pretest == AlphaTestResult::Fail && uid_data->ztest == EmulatedZ::Late)) { WriteAlphaTest(out, uid_data, api_type, uid_data->per_pixel_depth, - use_dual_source || use_shader_blend); + !uid_data->no_dual_src || uid_data->blend_enable); } // This situation is important for Mario Kart Wii's menus (they will render incorrectly if the @@ -1144,7 +1098,10 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos const bool skip_ztexture = !uid_data->per_pixel_depth && uid_data->fog_fsel == FogType::Off; // Note: z-textures are not written to depth buffer if early depth test is used - if (uid_data->per_pixel_depth && uid_data->early_ztest) + const bool early_ztest = uid_data->ztest == EmulatedZ::Early || + uid_data->ztest == EmulatedZ::EarlyWithFBFetch || + uid_data->ztest == EmulatedZ::EarlyWithZComplocHack; + if (uid_data->per_pixel_depth && early_ztest) { if (!host_config.backend_reversed_depth_range) out.Write("\tdepth = 1.0 - float(zCoord) / 16777216.0;\n"); @@ -1165,7 +1122,7 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos out.Write("\tzCoord = zCoord & 0xFFFFFF;\n"); } - if (uid_data->per_pixel_depth && uid_data->late_ztest) + if (uid_data->per_pixel_depth && uid_data->ztest == EmulatedZ::Late) { if (!host_config.backend_reversed_depth_range) out.Write("\tdepth = 1.0 - float(zCoord) / 16777216.0;\n"); @@ -1184,14 +1141,14 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos WriteFog(out, uid_data); - if (use_shader_logic_op) + if (uid_data->logic_op_enable) WriteLogicOp(out, uid_data); // Write the color and alpha values to the framebuffer // If using shader blend, we still use the separate alpha - WriteColor(out, api_type, uid_data, use_dual_source || use_shader_blend); + WriteColor(out, api_type, uid_data, !uid_data->no_dual_src || uid_data->blend_enable); - if (use_shader_blend) + if (uid_data->blend_enable) WriteBlend(out, uid_data); else if (use_framebuffer_fetch) out.Write("\treal_ocol0 = ocol0;\n"); @@ -1728,11 +1685,10 @@ static void WriteAlphaTest(ShaderCode& out, const pixel_shader_uid_data* uid_dat } // ZCOMPLOC HACK: - if (!uid_data->alpha_test_use_zcomploc_hack) + if (uid_data->ztest != EmulatedZ::EarlyWithZComplocHack) { #ifdef __APPLE__ - if (uid_data->forced_early_z && - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z)) + if (uid_data->ztest == EmulatedZ::EarlyWithFBFetch) { // Instead of using discard, fetch the framebuffer's color value and use it as the output // for this fragment. diff --git a/Source/Core/VideoCommon/PixelShaderGen.h b/Source/Core/VideoCommon/PixelShaderGen.h index 6a7a638ac3..34e0239ddc 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.h +++ b/Source/Core/VideoCommon/PixelShaderGen.h @@ -12,6 +12,7 @@ enum class AlphaTestOp : u32; enum class AlphaTestResult; enum class CompareMode : u32; enum class DstBlendFactor : u32; +enum class EmulatedZ : u32; enum class FogProjection : u32; enum class FogType : u32; enum class KonstSel : u32; @@ -28,6 +29,7 @@ struct pixel_shader_uid_data u32 NumValues() const { return num_values; } u32 pad0 : 4; u32 useDstAlpha : 1; + u32 no_dual_src : 1; AlphaTestResult Pretest : 2; u32 nIndirectStagesUsed : 4; u32 genMode_numtexgens : 4; @@ -36,16 +38,13 @@ struct pixel_shader_uid_data CompareMode alpha_test_comp0 : 3; CompareMode alpha_test_comp1 : 3; AlphaTestOp alpha_test_logic : 2; - u32 alpha_test_use_zcomploc_hack : 1; FogProjection fog_proj : 1; FogType fog_fsel : 3; u32 fog_RangeBaseEnabled : 1; ZTexOp ztex_op : 2; u32 per_pixel_depth : 1; - u32 forced_early_z : 1; - u32 early_ztest : 1; - u32 late_ztest : 1; + EmulatedZ ztest : 3; u32 bounding_box : 1; u32 zfreeze : 1; u32 numColorChans : 2; diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 4e6ce9ff6f..b0319e1f0e 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -448,7 +448,7 @@ void PixelShaderManager::SetGenModeChanged() void PixelShaderManager::SetZModeControl() { - u32 late_ztest = bpmem.UseLateDepthTest(); + u32 late_ztest = bpmem.GetEmulatedZ() == EmulatedZ::Late; u32 rgba6_format = (bpmem.zcontrol.pixel_format == PixelFormat::RGBA6_Z24 && !g_ActiveConfig.bForceTrueColor) ? 1 : diff --git a/Source/Core/VideoCommon/RenderState.cpp b/Source/Core/VideoCommon/RenderState.cpp index 3b3554b4fe..a997c654f2 100644 --- a/Source/Core/VideoCommon/RenderState.cpp +++ b/Source/Core/VideoCommon/RenderState.cpp @@ -25,6 +25,34 @@ void DepthState::Generate(const BPMemory& bp) func = bp.zmode.func.Value(); } +static bool IsDualSrc(SrcBlendFactor factor) +{ + return factor == SrcBlendFactor::SrcAlpha || factor == SrcBlendFactor::InvSrcAlpha; +} + +static bool IsDualSrc(DstBlendFactor factor) +{ + switch (factor) + { + case DstBlendFactor::SrcClr: + case DstBlendFactor::SrcAlpha: + case DstBlendFactor::InvSrcClr: + case DstBlendFactor::InvSrcAlpha: + return true; + default: + return false; + } +} + +bool BlendingState::RequiresDualSrc() const +{ + bool requires_dual_src = false; + requires_dual_src |= IsDualSrc(srcfactor) || IsDualSrc(srcfactoralpha); + requires_dual_src |= IsDualSrc(dstfactor) || IsDualSrc(dstfactoralpha); + requires_dual_src &= blendenable && usedualsrc; + return requires_dual_src; +} + // If the framebuffer format has no alpha channel, it is assumed to // ONE on blending. As the backends may emulate this framebuffer // configuration with an alpha channel, we just drop all references diff --git a/Source/Core/VideoCommon/RenderState.h b/Source/Core/VideoCommon/RenderState.h index 6fca2eff15..992c70fb04 100644 --- a/Source/Core/VideoCommon/RenderState.h +++ b/Source/Core/VideoCommon/RenderState.h @@ -142,6 +142,8 @@ union BlendingState BitField<17, 3, SrcBlendFactor> srcfactoralpha; BitField<20, 4, LogicOp> logicmode; + bool RequiresDualSrc() const; + u32 hex; }; diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 65e8c22882..e4d2115c3b 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -10,6 +10,7 @@ #include "Common/MsgHandler.h" #include "Core/ConfigManager.h" +#include "VideoCommon/DriverDetails.h" #include "VideoCommon/FramebufferManager.h" #include "VideoCommon/FramebufferShaderGen.h" #include "VideoCommon/RenderBase.h" @@ -612,8 +613,95 @@ AbstractPipelineConfig ShaderCache::GetGXPipelineConfig( return config; } -std::optional ShaderCache::GetGXPipelineConfig(const GXPipelineUid& config) +/// Edits the UID based on driver bugs and other special configurations +static GXPipelineUid ApplyDriverBugs(const GXPipelineUid& in) { + GXPipelineUid out; + memcpy(&out, &in, sizeof(out)); // copy padding + pixel_shader_uid_data* ps = out.ps_uid.GetUidData(); + BlendingState& blend = out.blending_state; + + if (ps->ztest == EmulatedZ::ForcedEarly && !out.depth_state.updateenable) + { + // No need to force early depth test if you're not writing z + ps->ztest = EmulatedZ::Early; + } + + const bool benefits_from_ps_dual_source_off = + (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend && + g_ActiveConfig.backend_info.bSupportsFramebufferFetch) || + DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING); + if (benefits_from_ps_dual_source_off && !blend.RequiresDualSrc()) + { + // Only use dual-source blending when required on drivers that don't support it very well. + ps->no_dual_src = true; + blend.usedualsrc = false; + } + + if (g_ActiveConfig.backend_info.bSupportsFramebufferFetch) + { + bool fbfetch_blend = false; + if ((DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z) || + !g_ActiveConfig.backend_info.bSupportsEarlyZ) && + ps->ztest == EmulatedZ::ForcedEarly) + { + ps->ztest = EmulatedZ::EarlyWithFBFetch; + fbfetch_blend |= static_cast(out.blending_state.blendenable); + ps->no_dual_src = true; + } + fbfetch_blend |= blend.logicopenable && !g_ActiveConfig.backend_info.bSupportsLogicOp; + fbfetch_blend |= blend.usedualsrc && !g_ActiveConfig.backend_info.bSupportsDualSourceBlend; + if (fbfetch_blend) + { + ps->no_dual_src = true; + if (blend.logicopenable) + { + ps->logic_op_enable = true; + ps->logic_op_mode = static_cast(blend.logicmode.Value()); + blend.logicopenable = false; + } + if (blend.blendenable) + { + ps->blend_enable = true; + ps->blend_src_factor = blend.srcfactor; + ps->blend_src_factor_alpha = blend.srcfactoralpha; + ps->blend_dst_factor = blend.dstfactor; + ps->blend_dst_factor_alpha = blend.dstfactoralpha; + ps->blend_subtract = blend.subtract; + ps->blend_subtract_alpha = blend.subtractAlpha; + blend.blendenable = false; + } + } + } + + // force dual src off if we can't support it + if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend) + { + ps->no_dual_src = true; + blend.usedualsrc = false; + } + + if (ps->ztest == EmulatedZ::ForcedEarly && !g_ActiveConfig.backend_info.bSupportsEarlyZ) + { + // These things should be false + ASSERT(!ps->zfreeze); + // ZCOMPLOC HACK: + // The only way to emulate alpha test + early-z is to force early-z in the shader. + // As this isn't available on all drivers and as we can't emulate this feature otherwise, + // we are only able to choose which one we want to respect more. + // Tests seem to have proven that writing depth even when the alpha test fails is more + // important that a reliable alpha test, so we just force the alpha test to always succeed. + // At least this seems to be less buggy. + ps->ztest = EmulatedZ::EarlyWithZComplocHack; + } + + return out; +} + +std::optional +ShaderCache::GetGXPipelineConfig(const GXPipelineUid& config_in) +{ + GXPipelineUid config = ApplyDriverBugs(config_in); const AbstractShader* vs; auto vs_iter = m_vs_cache.shader_map.find(config.vs_uid); if (vs_iter != m_vs_cache.shader_map.end() && !vs_iter->second.pending) @@ -650,9 +738,25 @@ std::optional ShaderCache::GetGXPipelineConfig(const GXP config.depth_state, config.blending_state); } -std::optional -ShaderCache::GetGXPipelineConfig(const GXUberPipelineUid& config) +/// Edits the UID based on driver bugs and other special configurations +static GXUberPipelineUid ApplyDriverBugs(const GXUberPipelineUid& in) { + GXUberPipelineUid out; + memcpy(&out, &in, sizeof(out)); // Copy padding + if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend || + (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) && + !out.blending_state.RequiresDualSrc())) + { + out.blending_state.usedualsrc = false; + out.ps_uid.GetUidData()->no_dual_src = true; + } + return out; +} + +std::optional +ShaderCache::GetGXPipelineConfig(const GXUberPipelineUid& config_in) +{ + GXUberPipelineUid config = ApplyDriverBugs(config_in); const AbstractShader* vs; auto vs_iter = m_uber_vs_cache.shader_map.find(config.vs_uid); if (vs_iter != m_uber_vs_cache.shader_map.end() && !vs_iter->second.pending) @@ -981,12 +1085,14 @@ void ShaderCache::QueuePipelineCompile(const GXPipelineUid& uid, u32 priority) { stages_ready = true; - auto vs_it = shader_cache->m_vs_cache.shader_map.find(uid.vs_uid); + GXPipelineUid actual_uid = ApplyDriverBugs(uid); + + auto vs_it = shader_cache->m_vs_cache.shader_map.find(actual_uid.vs_uid); stages_ready &= vs_it != shader_cache->m_vs_cache.shader_map.end() && !vs_it->second.pending; if (vs_it == shader_cache->m_vs_cache.shader_map.end()) - shader_cache->QueueVertexShaderCompile(uid.vs_uid, priority); + shader_cache->QueueVertexShaderCompile(actual_uid.vs_uid, priority); - PixelShaderUid ps_uid = uid.ps_uid; + PixelShaderUid ps_uid = actual_uid.ps_uid; ClearUnusedPixelShaderUidBits(shader_cache->m_api_type, shader_cache->m_host_config, &ps_uid); auto ps_it = shader_cache->m_ps_cache.shader_map.find(ps_uid); @@ -1051,13 +1157,15 @@ void ShaderCache::QueueUberPipelineCompile(const GXUberPipelineUid& uid, u32 pri { stages_ready = true; - auto vs_it = shader_cache->m_uber_vs_cache.shader_map.find(uid.vs_uid); + GXUberPipelineUid actual_uid = ApplyDriverBugs(uid); + + auto vs_it = shader_cache->m_uber_vs_cache.shader_map.find(actual_uid.vs_uid); stages_ready &= vs_it != shader_cache->m_uber_vs_cache.shader_map.end() && !vs_it->second.pending; if (vs_it == shader_cache->m_uber_vs_cache.shader_map.end()) - shader_cache->QueueVertexUberShaderCompile(uid.vs_uid, priority); + shader_cache->QueueVertexUberShaderCompile(actual_uid.vs_uid, priority); - UberShader::PixelShaderUid ps_uid = uid.ps_uid; + UberShader::PixelShaderUid ps_uid = actual_uid.ps_uid; UberShader::ClearUnusedPixelShaderUidBits(shader_cache->m_api_type, shader_cache->m_host_config, &ps_uid); diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 024b49ddfa..8b89b045e8 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -21,12 +21,12 @@ PixelShaderUid GetPixelShaderUid() pixel_ubershader_uid_data* const uid_data = out.GetUidData(); uid_data->num_texgens = xfmem.numTexGen.numTexGens; - uid_data->early_depth = bpmem.UseEarlyDepthTest() && + uid_data->early_depth = bpmem.GetEmulatedZ() == EmulatedZ::Early && (g_ActiveConfig.bFastDepthCalc || bpmem.alpha_test.TestResult() == AlphaTestResult::Undetermined) && !(bpmem.zmode.testenable && bpmem.genMode.zfreeze); uid_data->per_pixel_depth = - (bpmem.ztex2.op != ZTexOp::Disabled && bpmem.UseLateDepthTest()) || + (bpmem.ztex2.op != ZTexOp::Disabled && bpmem.GetEmulatedZ() == EmulatedZ::Late) || (!g_ActiveConfig.bFastDepthCalc && bpmem.zmode.testenable && !uid_data->early_depth) || (bpmem.zmode.testenable && bpmem.genMode.zfreeze); uid_data->uint_output = bpmem.blendmode.UseLogicOp(); @@ -39,6 +39,10 @@ void ClearUnusedPixelShaderUidBits(APIType api_type, const ShaderHostConfig& hos { pixel_ubershader_uid_data* const uid_data = uid->GetUidData(); + // Dual source is always enabled in the shader if this bug is not present + if (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING)) + uid_data->no_dual_src = 0; + // OpenGL and Vulkan convert implicitly normalized color outputs to their uint representation. // Therefore, it is not necessary to use a uint output on these backends. We also disable the // uint output when logic op is not supported (i.e. driver/device does not support D3D11.1). @@ -53,8 +57,9 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, const bool msaa = host_config.msaa; const bool ssaa = host_config.ssaa; const bool stereo = host_config.stereo; - const bool use_dual_source = host_config.backend_dual_source_blend; - const bool use_shader_blend = !use_dual_source && host_config.backend_shader_framebuffer_fetch; + const bool use_dual_source = host_config.backend_dual_source_blend && !uid_data->no_dual_src; + const bool use_shader_blend = !host_config.backend_dual_source_blend && + host_config.backend_shader_framebuffer_fetch; const bool use_shader_logic_op = !host_config.backend_logic_op && host_config.backend_shader_framebuffer_fetch; const bool use_framebuffer_fetch = @@ -1273,7 +1278,11 @@ void EnumeratePixelShaderUids(const std::function& for (u32 uint_output = 0; uint_output < 2; uint_output++) { puid->uint_output = uint_output; - callback(uid); + for (u32 no_dual_src = 0; no_dual_src < 2; no_dual_src++) + { + puid->no_dual_src = no_dual_src; + callback(uid); + } } } } diff --git a/Source/Core/VideoCommon/UberShaderPixel.h b/Source/Core/VideoCommon/UberShaderPixel.h index 9b2be898a2..aa3d6c7625 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.h +++ b/Source/Core/VideoCommon/UberShaderPixel.h @@ -18,6 +18,7 @@ struct pixel_ubershader_uid_data u32 early_depth : 1; u32 per_pixel_depth : 1; u32 uint_output : 1; + u32 no_dual_src : 1; u32 NumValues() const { return sizeof(pixel_ubershader_uid_data); } }; @@ -42,9 +43,9 @@ struct fmt::formatter template auto format(const UberShader::pixel_ubershader_uid_data& uid, FormatContext& ctx) const { - return fmt::format_to(ctx.out(), "Pixel UberShader for {} texgens{}{}{}", uid.num_texgens, - uid.early_depth ? ", early-depth" : "", - uid.per_pixel_depth ? ", per-pixel depth" : "", - uid.uint_output ? ", uint output" : ""); + return fmt::format_to( + ctx.out(), "Pixel UberShader for {} texgens{}{}{}{}", uid.num_texgens, + uid.early_depth ? ", early-depth" : "", uid.per_pixel_depth ? ", per-pixel depth" : "", + uid.uint_output ? ", uint output" : "", uid.no_dual_src ? ", no dual-source blending" : ""); } }; From 869dab51731a22e6ef0292ba133912f646a22791 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 14 Jul 2022 18:40:18 +0200 Subject: [PATCH 384/659] CMake: Use system C library for SDL from externals. --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index c7da439b18..91f41c2942 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -628,6 +628,7 @@ if(ENABLE_SDL) set(SDL_STATIC_ENABLED_BY_DEFAULT ON) set(SDL_TEST OFF) set(SDL_TEST_ENABLED_BY_DEFAULT OFF) + set(OPT_DEF_LIBC ON) add_subdirectory(Externals/SDL/SDL) if (TARGET SDL2) dolphin_disable_warnings_msvc(SDL2) From 4e7b0f2129349546e02692119a38b053789eb588 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 15 Jul 2022 19:16:52 +0200 Subject: [PATCH 385/659] Android: Add divider to landscape version of User Data activity --- .../res/layout-land/activity_user_data.xml | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Source/Android/app/src/main/res/layout-land/activity_user_data.xml b/Source/Android/app/src/main/res/layout-land/activity_user_data.xml index 53107b6f98..a67af96768 100644 --- a/Source/Android/app/src/main/res/layout-land/activity_user_data.xml +++ b/Source/Android/app/src/main/res/layout-land/activity_user_data.xml @@ -12,7 +12,7 @@ android:layout_margin="@dimen/spacing_medlarge" tools:text="@string/user_data_new_location" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toStartOf="@id/barrier_buttons" + app:layout_constraintEnd_toStartOf="@id/divider" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/text_path" app:layout_constraintVertical_chainStyle="packed" @@ -25,7 +25,7 @@ android:layout_margin="@dimen/spacing_medlarge" tools:text="/storage/emulated/0/Android/data/org.dolphinemu.dolphinemu/files" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toStartOf="@id/barrier_buttons" + app:layout_constraintEnd_toStartOf="@id/divider" app:layout_constraintTop_toBottomOf="@id/text_type" app:layout_constraintBottom_toTopOf="@id/text_android_11" app:layout_constraintWidth_max="400dp" /> @@ -37,7 +37,7 @@ android:layout_margin="@dimen/spacing_medlarge" android:text="@string/user_data_new_location_android_11" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toStartOf="@id/barrier_buttons" + app:layout_constraintEnd_toStartOf="@id/divider" app:layout_constraintTop_toBottomOf="@id/text_path" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintWidth_max="400dp" /> @@ -49,6 +49,18 @@ app:barrierDirection="end" app:constraint_referenced_ids="text_type,text_path,text_android_11" /> + + Date: Fri, 15 Jul 2022 19:53:10 +0200 Subject: [PATCH 386/659] InputCommon: Get rid of static strings. --- .../InputCommon/ControllerInterface/DInput/DInputJoystick.cpp | 2 +- .../ControllerInterface/DInput/DInputKeyboardMouse.cpp | 4 ++-- .../ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp index ac72d383be..abef48f157 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp @@ -293,7 +293,7 @@ std::string Joystick::Axis::GetName() const std::string Joystick::Hat::GetName() const { - static char tmpstr[] = "Hat . ."; + char tmpstr[] = "Hat . ."; tmpstr[4] = (char)('0' + m_index); tmpstr[6] = "NESW"[m_direction]; return tmpstr; diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp index 0d3ba01449..3fe850715c 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp @@ -275,7 +275,7 @@ std::string KeyboardMouse::Button::GetName() const std::string KeyboardMouse::Axis::GetName() const { - static char tmpstr[] = "Axis .."; + char tmpstr[] = "Axis .."; tmpstr[5] = (char)('X' + m_index); tmpstr[6] = (m_range < 0 ? '-' : '+'); return tmpstr; @@ -283,7 +283,7 @@ std::string KeyboardMouse::Axis::GetName() const std::string KeyboardMouse::Cursor::GetName() const { - static char tmpstr[] = "Cursor .."; + char tmpstr[] = "Cursor .."; tmpstr[7] = (char)('X' + m_index); tmpstr[8] = (m_positive ? '+' : '-'); return tmpstr; diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm index 7aae59bf95..6b1790149b 100644 --- a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm +++ b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm @@ -226,7 +226,7 @@ ControlState KeyboardAndMouse::Button::GetState() const std::string KeyboardAndMouse::Cursor::GetName() const { - static char tmpstr[] = "Cursor .."; + char tmpstr[] = "Cursor .."; tmpstr[7] = (char)('X' + m_index); tmpstr[8] = (m_positive ? '+' : '-'); return tmpstr; From 290e62f179a86328f90aaac3c87d4d640637dec6 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 18:01:39 -0800 Subject: [PATCH 387/659] Remove casts to integers for texture and EFB formats The only remaining casts for these types that I know of are in TextureInfo (where format_name is set to the int version of the format, and since that affects filenames and probably would break resource packs, I'm not changing it) and in TextureDecoder_Common's TexDecoder_DrawOverlay, which will be handled separately. --- .../Core/VideoCommon/FramebufferShaderGen.cpp | 4 ++-- Source/Core/VideoCommon/TextureCacheBase.cpp | 8 +++----- .../VideoCommon/TextureConversionShader.cpp | 6 ++---- .../VideoCommon/TextureConverterShaderGen.cpp | 9 +++------ .../Core/VideoCommon/TextureDecoder_Common.cpp | 18 ++++++------------ Source/Core/VideoCommon/TextureDecoder_x64.cpp | 3 +-- 6 files changed, 17 insertions(+), 31 deletions(-) diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.cpp b/Source/Core/VideoCommon/FramebufferShaderGen.cpp index 40949f34aa..345578d071 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.cpp +++ b/Source/Core/VideoCommon/FramebufferShaderGen.cpp @@ -550,7 +550,7 @@ std::string GenerateTextureReinterpretShader(TextureFormat from_format, TextureF break; default: - WARN_LOG_FMT(VIDEO, "From format {} is not supported", static_cast(from_format)); + WARN_LOG_FMT(VIDEO, "From format {} is not supported", from_format); return "{}\n"; } @@ -602,7 +602,7 @@ std::string GenerateTextureReinterpretShader(TextureFormat from_format, TextureF } break; default: - WARN_LOG_FMT(VIDEO, "To format {} is not supported", static_cast(to_format)); + WARN_LOG_FMT(VIDEO, "To format {} is not supported", to_format); return "{}\n"; } diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 9eb6e09792..a14c63af5b 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -276,8 +276,7 @@ TextureCacheBase::ApplyPaletteToEntry(TCacheEntry* entry, const u8* palette, TLU const AbstractPipeline* pipeline = g_shader_cache->GetPaletteConversionPipeline(tlutfmt); if (!pipeline) { - ERROR_LOG_FMT(VIDEO, "Failed to get conversion pipeline for format {:#04X}", - static_cast(tlutfmt)); + ERROR_LOG_FMT(VIDEO, "Failed to get conversion pipeline for format {}", tlutfmt); return nullptr; } @@ -345,9 +344,8 @@ TextureCacheBase::TCacheEntry* TextureCacheBase::ReinterpretEntry(const TCacheEn g_shader_cache->GetTextureReinterpretPipeline(existing_entry->format.texfmt, new_format); if (!pipeline) { - ERROR_LOG_FMT(VIDEO, - "Failed to obtain texture reinterpreting pipeline from format {:#04X} to {:#04X}", - static_cast(existing_entry->format.texfmt), static_cast(new_format)); + ERROR_LOG_FMT(VIDEO, "Failed to obtain texture reinterpreting pipeline from format {} to {}", + existing_entry->format.texfmt, new_format); return nullptr; } diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index ed97c48144..e7a2d4a392 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -48,8 +48,7 @@ u16 GetEncodedSampleCount(EFBCopyFormat format) case EFBCopyFormat::XFB: return 2; default: - PanicAlertFmt("Invalid EFB Copy Format ({:#X})! (GetEncodedSampleCount)", - static_cast(format)); + PanicAlertFmt("Invalid EFB Copy Format {}! (GetEncodedSampleCount)", format); return 1; } } @@ -802,8 +801,7 @@ std::string GenerateEncodingShader(const EFBCopyParams& params, APIType api_type WriteXFBEncoder(code, api_type, params); break; default: - PanicAlertFmt("Invalid EFB Copy Format ({:#X})! (GenerateEncodingShader)", - static_cast(params.copy_format)); + PanicAlertFmt("Invalid EFB Copy Format {}! (GenerateEncodingShader)", params.copy_format); break; } diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index ae09871b98..0667f8c621 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -173,8 +173,7 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) break; default: - ERROR_LOG_FMT(VIDEO, "Unknown copy zbuf format: {:#X}", - static_cast(uid_data->dst_format)); + ERROR_LOG_FMT(VIDEO, "Unknown copy zbuf format: {}", uid_data->dst_format); out.Write(" ocol0 = float4(texcol.bgr, 0.0);\n"); break; } @@ -207,8 +206,7 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) break; default: - ERROR_LOG_FMT(VIDEO, "Unknown copy intensity format: {:#X}", - static_cast(uid_data->dst_format)); + ERROR_LOG_FMT(VIDEO, "Unknown copy intensity format: {}", uid_data->dst_format); out.Write(" ocol0 = texcol;\n"); break; } @@ -283,8 +281,7 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) break; default: - ERROR_LOG_FMT(VIDEO, "Unknown copy color format: {:#X}", - static_cast(uid_data->dst_format)); + ERROR_LOG_FMT(VIDEO, "Unknown copy color format: {}", uid_data->dst_format); out.Write(" ocol0 = texcol;\n"); break; } diff --git a/Source/Core/VideoCommon/TextureDecoder_Common.cpp b/Source/Core/VideoCommon/TextureDecoder_Common.cpp index 798496ac6d..bc2de947ea 100644 --- a/Source/Core/VideoCommon/TextureDecoder_Common.cpp +++ b/Source/Core/VideoCommon/TextureDecoder_Common.cpp @@ -50,8 +50,7 @@ int TexDecoder_GetTexelSizeInNibbles(TextureFormat format) case TextureFormat::XFB: return 4; default: - PanicAlertFmt("Invalid Texture Format ({:#X})! (GetTexelSizeInNibbles)", - static_cast(format)); + PanicAlertFmt("Invalid Texture Format {}! (GetTexelSizeInNibbles)", format); return 1; } } @@ -90,8 +89,7 @@ int TexDecoder_GetBlockWidthInTexels(TextureFormat format) case TextureFormat::XFB: return 16; default: - PanicAlertFmt("Invalid Texture Format ({:#X})! (GetBlockWidthInTexels)", - static_cast(format)); + PanicAlertFmt("Invalid Texture Format {}! (GetBlockWidthInTexels)", format); return 8; } } @@ -125,8 +123,7 @@ int TexDecoder_GetBlockHeightInTexels(TextureFormat format) case TextureFormat::XFB: return 1; default: - PanicAlertFmt("Invalid Texture Format ({:#X})! (GetBlockHeightInTexels)", - static_cast(format)); + PanicAlertFmt("Invalid Texture Format {}! (GetBlockHeightInTexels)", format); return 4; } } @@ -160,8 +157,7 @@ int TexDecoder_GetEFBCopyBlockWidthInTexels(EFBCopyFormat format) case EFBCopyFormat::XFB: return 16; default: - PanicAlertFmt("Invalid EFB Copy Format ({:#X})! (GetEFBCopyBlockWidthInTexels)", - static_cast(format)); + PanicAlertFmt("Invalid EFB Copy Format {}! (GetEFBCopyBlockWidthInTexels)", format); return 8; } } @@ -195,8 +191,7 @@ int TexDecoder_GetEFBCopyBlockHeightInTexels(EFBCopyFormat format) case EFBCopyFormat::XFB: return 1; default: - PanicAlertFmt("Invalid EFB Copy Format ({:#X})! (GetEFBCopyBlockHeightInTexels)", - static_cast(format)); + PanicAlertFmt("Invalid EFB Copy Format {}! (GetEFBCopyBlockHeightInTexels)", format); return 4; } } @@ -247,8 +242,7 @@ TextureFormat TexDecoder_GetEFBCopyBaseFormat(EFBCopyFormat format) case EFBCopyFormat::XFB: return TextureFormat::XFB; default: - PanicAlertFmt("Invalid EFB Copy Format ({:#X})! (GetEFBCopyBaseFormat)", - static_cast(format)); + PanicAlertFmt("Invalid EFB Copy Format ()! (GetEFBCopyBaseFormat)", format); return static_cast(format); } } diff --git a/Source/Core/VideoCommon/TextureDecoder_x64.cpp b/Source/Core/VideoCommon/TextureDecoder_x64.cpp index 761fc0cd64..85a6e5e731 100644 --- a/Source/Core/VideoCommon/TextureDecoder_x64.cpp +++ b/Source/Core/VideoCommon/TextureDecoder_x64.cpp @@ -1495,8 +1495,7 @@ void _TexDecoder_DecodeImpl(u32* dst, const u8* src, int width, int height, Text break; default: - PanicAlertFmt("Invalid Texture Format ({:#X})! (_TexDecoder_DecodeImpl)", - static_cast(texformat)); + PanicAlertFmt("Invalid Texture Format {}! (_TexDecoder_DecodeImpl)", texformat); break; } } From 850e524514c364f7f619e891f4dc2d687fa019f9 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 18:22:47 -0800 Subject: [PATCH 388/659] Use fmt::to_string for texture format overlay This required adding parentheses to the font used by that. --- .../VideoCommon/TextureDecoder_Common.cpp | 80 +------------------ Source/Core/VideoCommon/sfont.inc | 24 +++++- 2 files changed, 27 insertions(+), 77 deletions(-) diff --git a/Source/Core/VideoCommon/TextureDecoder_Common.cpp b/Source/Core/VideoCommon/TextureDecoder_Common.cpp index bc2de947ea..51ea0572f2 100644 --- a/Source/Core/VideoCommon/TextureDecoder_Common.cpp +++ b/Source/Core/VideoCommon/TextureDecoder_Common.cpp @@ -242,7 +242,7 @@ TextureFormat TexDecoder_GetEFBCopyBaseFormat(EFBCopyFormat format) case EFBCopyFormat::XFB: return TextureFormat::XFB; default: - PanicAlertFmt("Invalid EFB Copy Format ()! (GetEFBCopyBaseFormat)", format); + PanicAlertFmt("Invalid EFB Copy Format {}! (GetEFBCopyBaseFormat)", format); return static_cast(format); } } @@ -253,77 +253,6 @@ void TexDecoder_SetTexFmtOverlayOptions(bool enable, bool center) TexFmt_Overlay_Center = center; } -static const char* texfmt[] = { - // pixel - "I4", - "I8", - "IA4", - "IA8", - "RGB565", - "RGB5A3", - "RGBA8", - "0x07", - "C4", - "C8", - "C14X2", - "0x0B", - "0x0C", - "0x0D", - "CMPR", - "0x0F", - // Z-buffer - "0x10", - "Z8", - "0x12", - "Z16", - "0x14", - "0x15", - "Z24X8", - "0x17", - "0x18", - "0x19", - "0x1A", - "0x1B", - "0x1C", - "0x1D", - "0x1E", - "0x1F", - // pixel + copy - "CR4", - "0x21", - "CRA4", - "CRA8", - "0x24", - "0x25", - "CYUVA8", - "CA8", - "CR8", - "CG8", - "CB8", - "CRG8", - "CGB8", - "0x2D", - "0x2E", - "XFB", - // Z + copy - "CZ4", - "0x31", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "CZ8M", - "CZ8L", - "0x3B", - "CZ16L", - "0x3D", - "0x3E", - "0x3F", -}; - static void TexDecoder_DrawOverlay(u8* dst, int width, int height, TextureFormat texformat) { int w = std::min(width, 40); @@ -338,11 +267,11 @@ static void TexDecoder_DrawOverlay(u8* dst, int width, int height, TextureFormat yoff = 0; } - const char* fmt = texfmt[static_cast(texformat) & 15]; - while (*fmt) + const auto fmt_str = fmt::to_string(texformat); + for (char ch : fmt_str) { int xcnt = 0; - int nchar = sfont_map[(int)*fmt]; + int nchar = sfont_map[ch]; const unsigned char* ptr = sfont_raw[nchar]; // each char is up to 9x10 @@ -363,7 +292,6 @@ static void TexDecoder_DrawOverlay(u8* dst, int width, int height, TextureFormat ptr += 9; } xoff += xcnt; - fmt++; } } diff --git a/Source/Core/VideoCommon/sfont.inc b/Source/Core/VideoCommon/sfont.inc index d5ddaa7d40..b9883ca058 100644 --- a/Source/Core/VideoCommon/sfont.inc +++ b/Source/Core/VideoCommon/sfont.inc @@ -4,7 +4,7 @@ static const unsigned char sfont_map[] = { 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, + 10,10,10,10,10,10,10,10,63,64,10,10,10,10,10,10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,10,10,10,10,10, 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,10,10,10,10,10, @@ -713,5 +713,27 @@ static const unsigned char sfont_raw[][9*10] = { 0xff, 0x00, 0x00, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, + },{ + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + },{ + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0x00, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0x00, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, + 0xff, 0xff, 0xff, 0xff, 0x78, 0x78, 0x78, 0x78, 0x78, }, }; From cd2cc5fa2278f451e84dd3d3595a7499ddd29678 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 16:00:32 -0800 Subject: [PATCH 389/659] Rename EFB copy bit 2 from yuv to unknown_bit It was named yuv in 522746b2c223f37c45569ee7fd4a226b278cb6d9, but hardware testing indicates that that bit does nothing (the intensity format bit enables YUV conversion, instead). --- Source/Core/Core/FifoPlayer/FifoPlayer.cpp | 2 +- Source/Core/VideoCommon/BPMemory.h | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp index 9117e4d0f4..a0c04765b6 100644 --- a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp +++ b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp @@ -591,7 +591,7 @@ void FifoPlayer::ClearEfb() UPE_Copy copy = bpmem.triggerEFBCopy; copy.clamp_top = false; copy.clamp_bottom = false; - copy.yuv = false; + copy.unknown_bit = false; copy.target_pixel_format = static_cast(EFBCopyFormat::RGBA8) << 1; copy.gamma = 0; copy.half_scale = false; diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h index 28155a2cd6..2a837c862b 100644 --- a/Source/Core/VideoCommon/BPMemory.h +++ b/Source/Core/VideoCommon/BPMemory.h @@ -2039,9 +2039,9 @@ union UPE_Copy { u32 Hex; - BitField<0, 1, bool, u32> clamp_top; // if set clamp top - BitField<1, 1, bool, u32> clamp_bottom; // if set clamp bottom - BitField<2, 1, bool, u32> yuv; // if set, color conversion from RGB to YUV + BitField<0, 1, bool, u32> clamp_top; // if set clamp top + BitField<1, 1, bool, u32> clamp_bottom; // if set clamp bottom + BitField<2, 1, u32> unknown_bit; BitField<3, 4, u32> target_pixel_format; // realformat is (fmt/2)+((fmt&1)*8).... for some reason // the msb is the lsb (pattern: cycling right shift) // gamma correction.. 0 = 1.0 ; 1 = 1.7 ; 2 = 2.2 ; 3 is reserved @@ -2100,7 +2100,7 @@ struct fmt::formatter return fmt::format_to(ctx.out(), "Clamping: {}\n" - "Converting from RGB to YUV: {}\n" + "Unknown bit: {}\n" "Target pixel format: {}\n" "Gamma correction: {}\n" "Half scale: {}\n" @@ -2110,7 +2110,7 @@ struct fmt::formatter "Copy to XFB: {}\n" "Intensity format: {}\n" "Automatic color conversion: {}", - clamp, no_yes[copy.yuv], copy.tp_realFormat(), gamma, + clamp, copy.unknown_bit, copy.tp_realFormat(), gamma, no_yes[copy.half_scale], no_yes[copy.scale_invert], no_yes[copy.clear], copy.frame_to_field, no_yes[copy.copy_to_xfb], no_yes[copy.intensity_fmt], no_yes[copy.auto_conv]); From dd41a72378ee45e2947fa65e6db03b5898272b45 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 15:49:14 -0800 Subject: [PATCH 390/659] Only use intensity formats if both intensity_fmt and auto_conv are set auto_conv is normally always set for EFB copies, but hardware testing indicates that intensity_fmt does nothing if auto_conv is not set. --- Source/Core/VideoCommon/BPStructs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp index c6746d444a..2e34ef6d9b 100644 --- a/Source/Core/VideoCommon/BPStructs.cpp +++ b/Source/Core/VideoCommon/BPStructs.cpp @@ -276,7 +276,7 @@ static void BPWritten(const BPCmd& bp, int cycles_into_future) bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24; g_texture_cache->CopyRenderTargetToTexture( destAddr, PE_copy.tp_realFormat(), copy_width, copy_height, destStride, is_depth_copy, - srcRect, PE_copy.intensity_fmt, PE_copy.half_scale, 1.0f, 1.0f, + srcRect, PE_copy.intensity_fmt && PE_copy.auto_conv, PE_copy.half_scale, 1.0f, 1.0f, bpmem.triggerEFBCopy.clamp_top, bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients()); } From bed278d3b7d200e25527b2deb1a1e5f70ed3ff05 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 7 Feb 2022 12:11:15 -0800 Subject: [PATCH 391/659] Create dedicated enum for EFB/XFB gamma correction This also changes the behavior for the invalid gamma value, which was confirmed to behave the same as 2.2. Note that currently, the gamma value is only used for XFB copies, even though hardware testing indicates it also works for EFB copies. This will be changed in a later commit. --- Source/Core/Core/FifoPlayer/FifoPlayer.cpp | 2 +- Source/Core/VideoCommon/BPMemory.h | 32 +++++++++++----------- Source/Core/VideoCommon/BPStructs.cpp | 10 ++++--- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp index a0c04765b6..b93fcf980a 100644 --- a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp +++ b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp @@ -593,7 +593,7 @@ void FifoPlayer::ClearEfb() copy.clamp_bottom = false; copy.unknown_bit = false; copy.target_pixel_format = static_cast(EFBCopyFormat::RGBA8) << 1; - copy.gamma = 0; + copy.gamma = GammaCorrection::Gamma1_0; copy.half_scale = false; copy.scale_invert = false; copy.clear = true; diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h index 2a837c862b..38281d9493 100644 --- a/Source/Core/VideoCommon/BPMemory.h +++ b/Source/Core/VideoCommon/BPMemory.h @@ -2035,6 +2035,20 @@ struct fmt::formatter : EnumFormatter constexpr formatter() : EnumFormatter(names) {} }; +enum class GammaCorrection : u32 +{ + Gamma1_0 = 0, + Gamma1_7 = 1, + Gamma2_2 = 2, + // Hardware testing indicates this behaves the same as Gamma2_2 + Invalid2_2 = 3, +}; +template <> +struct fmt::formatter : EnumFormatter +{ + constexpr formatter() : EnumFormatter({"1.0", "1.7", "2.2", "Invalid 2.2"}) {} +}; + union UPE_Copy { u32 Hex; @@ -2044,8 +2058,7 @@ union UPE_Copy BitField<2, 1, u32> unknown_bit; BitField<3, 4, u32> target_pixel_format; // realformat is (fmt/2)+((fmt&1)*8).... for some reason // the msb is the lsb (pattern: cycling right shift) - // gamma correction.. 0 = 1.0 ; 1 = 1.7 ; 2 = 2.2 ; 3 is reserved - BitField<7, 2, u32> gamma; + BitField<7, 2, GammaCorrection> gamma; // "mipmap" filter... false = no filter (scale 1:1) ; true = box filter (scale 2:1) BitField<9, 1, bool, u32> half_scale; BitField<10, 1, bool, u32> scale_invert; // if set vertical scaling is on @@ -2084,19 +2097,6 @@ struct fmt::formatter else clamp = "None"; } - std::string_view gamma = "Invalid"; - switch (copy.gamma) - { - case 0: - gamma = "1.0"; - break; - case 1: - gamma = "1.7"; - break; - case 2: - gamma = "2.2"; - break; - } return fmt::format_to(ctx.out(), "Clamping: {}\n" @@ -2110,7 +2110,7 @@ struct fmt::formatter "Copy to XFB: {}\n" "Intensity format: {}\n" "Automatic color conversion: {}", - clamp, copy.unknown_bit, copy.tp_realFormat(), gamma, + clamp, copy.unknown_bit, copy.tp_realFormat(), copy.gamma, no_yes[copy.half_scale], no_yes[copy.scale_invert], no_yes[copy.clear], copy.frame_to_field, no_yes[copy.copy_to_xfb], no_yes[copy.intensity_fmt], no_yes[copy.auto_conv]); diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp index 2e34ef6d9b..010dbf6abe 100644 --- a/Source/Core/VideoCommon/BPStructs.cpp +++ b/Source/Core/VideoCommon/BPStructs.cpp @@ -11,6 +11,7 @@ #include #include "Common/CommonTypes.h" +#include "Common/EnumMap.h" #include "Common/Logging/Log.h" #include "Core/ConfigManager.h" @@ -42,7 +43,8 @@ using namespace BPFunctions; -static const float s_gammaLUT[] = {1.0f, 1.7f, 2.2f, 1.0f}; +static constexpr Common::EnumMap s_gammaLUT = {1.0f, 1.7f, 2.2f, + 2.2f}; void BPInit() { @@ -276,9 +278,9 @@ static void BPWritten(const BPCmd& bp, int cycles_into_future) bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24; g_texture_cache->CopyRenderTargetToTexture( destAddr, PE_copy.tp_realFormat(), copy_width, copy_height, destStride, is_depth_copy, - srcRect, PE_copy.intensity_fmt && PE_copy.auto_conv, PE_copy.half_scale, 1.0f, 1.0f, - bpmem.triggerEFBCopy.clamp_top, bpmem.triggerEFBCopy.clamp_bottom, - bpmem.copyfilter.GetCoefficients()); + srcRect, PE_copy.intensity_fmt && PE_copy.auto_conv, PE_copy.half_scale, 1.0f, + s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top, + bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients()); } else { From d20094efa22829640849c8c4d906c6b0e1a24cd6 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 23 Feb 2022 13:05:50 -0800 Subject: [PATCH 392/659] Add extra Low and High fields to CopyFilterCoefficients This struct is the only one in BPMemory that uses u64 as its base. These fields are to allow viewing it as two u32s instead. It's not used by Dolphin right now, but it is used in the copy of BPMemory.h used by hwtests. --- Source/Core/VideoCommon/BPMemory.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h index 38281d9493..8d57b76a38 100644 --- a/Source/Core/VideoCommon/BPMemory.h +++ b/Source/Core/VideoCommon/BPMemory.h @@ -2123,10 +2123,12 @@ union CopyFilterCoefficients u64 Hex; + BitField<0, 32, u32, u64> Low; BitField<0, 6, u64> w0; BitField<6, 6, u64> w1; BitField<12, 6, u64> w2; BitField<18, 6, u64> w3; + BitField<32, 32, u32, u64> High; BitField<32, 6, u64> w4; BitField<38, 6, u64> w5; BitField<44, 6, u64> w6; From 991024173e3d048ea3a056c8debb6f92ae7b2da0 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 12 Jun 2022 21:27:11 -0500 Subject: [PATCH 393/659] VideoCommon: Always use fbfetch in ubershaders if available Reduce the number of different pipelines needed. Also works around drivers that break when you combine fbfetch with dual source blending --- Source/Core/VideoCommon/ShaderCache.cpp | 14 +++++-- Source/Core/VideoCommon/UberShaderPixel.cpp | 45 +++++++++------------ 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index e4d2115c3b..6049fd29a7 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -743,9 +743,17 @@ static GXUberPipelineUid ApplyDriverBugs(const GXUberPipelineUid& in) { GXUberPipelineUid out; memcpy(&out, &in, sizeof(out)); // Copy padding - if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend || - (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) && - !out.blending_state.RequiresDualSrc())) + if (g_ActiveConfig.backend_info.bSupportsFramebufferFetch) + { + // Always blend in shader + out.blending_state.hex = 0; + out.blending_state.colorupdate = in.blending_state.colorupdate.Value(); + out.blending_state.alphaupdate = in.blending_state.alphaupdate.Value(); + out.ps_uid.GetUidData()->no_dual_src = true; + } + else if (!g_ActiveConfig.backend_info.bSupportsDualSourceBlend || + (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) && + !out.blending_state.RequiresDualSrc())) { out.blending_state.usedualsrc = false; out.ps_uid.GetUidData()->no_dual_src = true; diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 8b89b045e8..7bfe36c517 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -3,6 +3,8 @@ #include "VideoCommon/UberShaderPixel.h" +#include "Common/Assert.h" + #include "VideoCommon/BPMemory.h" #include "VideoCommon/DriverDetails.h" #include "VideoCommon/NativeVertexFormat.h" @@ -39,8 +41,11 @@ void ClearUnusedPixelShaderUidBits(APIType api_type, const ShaderHostConfig& hos { pixel_ubershader_uid_data* const uid_data = uid->GetUidData(); + // With fbfetch, ubershaders always blend using that and don't use dual src + if (host_config.backend_shader_framebuffer_fetch || !host_config.backend_dual_source_blend) + uid_data->no_dual_src = 1; // Dual source is always enabled in the shader if this bug is not present - if (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING)) + else if (!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING)) uid_data->no_dual_src = 0; // OpenGL and Vulkan convert implicitly normalized color outputs to their uint representation. @@ -57,20 +62,17 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, const bool msaa = host_config.msaa; const bool ssaa = host_config.ssaa; const bool stereo = host_config.stereo; + const bool use_framebuffer_fetch = host_config.backend_shader_framebuffer_fetch; const bool use_dual_source = host_config.backend_dual_source_blend && !uid_data->no_dual_src; - const bool use_shader_blend = !host_config.backend_dual_source_blend && - host_config.backend_shader_framebuffer_fetch; - const bool use_shader_logic_op = - !host_config.backend_logic_op && host_config.backend_shader_framebuffer_fetch; - const bool use_framebuffer_fetch = - use_shader_blend || use_shader_logic_op || - DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DISCARD_WITH_EARLY_Z); const bool early_depth = uid_data->early_depth != 0; const bool per_pixel_depth = uid_data->per_pixel_depth != 0; const bool bounding_box = host_config.bounding_box; const u32 numTexgen = uid_data->num_texgens; ShaderCode out; + ASSERT_MSG(VIDEO, !(use_dual_source && use_framebuffer_fetch), + "If you're using framebuffer fetch, you shouldn't need dual source blend!"); + out.Write("// {}\n", *uid_data); WriteBitfieldExtractHeader(out, api_type, host_config); WritePixelShaderCommonHeader(out, api_type, host_config, bounding_box); @@ -84,9 +86,8 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, { if (use_dual_source) { - out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 {};\n" - "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n", - use_framebuffer_fetch ? "real_ocol0" : "ocol0"); + out.Write("FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 0) out vec4 ocol0;\n" + "FRAGMENT_OUTPUT_LOCATION_INDEXED(0, 1) out vec4 ocol1;\n"); } else { @@ -525,12 +526,8 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, // intermediate value with multiple reads & modifications, so we pull out the "real" output // value above and use a temporary for calculations, then set the output value once at the // end of the shader. - out.Write(" float4 ocol0;\n"); - } - - if (use_shader_blend) - { - out.Write(" float4 ocol1;\n"); + out.Write(" float4 ocol0;\n" + " float4 ocol1;\n"); } if (host_config.backend_geometry_shaders && stereo) @@ -948,8 +945,8 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, { // Instead of using discard, fetch the framebuffer's color value and use it as the output // for this fragment. - out.Write(" #define discard_fragment {{ {} = float4(initial_ocol0.xyz, 1.0); return; }}\n", - use_shader_blend ? "real_ocol0" : "ocol0"); + out.Write( + " #define discard_fragment {{ real_ocol0 = float4(initial_ocol0.xyz, 1.0); return; }}\n"); } else { @@ -1060,7 +1057,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " }}\n" "\n"); - if (use_shader_logic_op) + if (use_framebuffer_fetch) { static constexpr std::array logic_op_mode{ "int4(0, 0, 0, 0)", // CLEAR @@ -1117,7 +1114,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " ocol0.a = float(TevResult.a >> 2) / 63.0;\n" " \n"); - if (use_dual_source || use_shader_blend) + if (use_dual_source || use_framebuffer_fetch) { out.Write(" // Dest alpha override (dual source blending)\n" " // Colors will be blended against the alpha from ocol1 and\n" @@ -1133,7 +1130,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " }}\n"); } - if (use_shader_blend) + if (use_framebuffer_fetch) { using Common::EnumMap; @@ -1212,10 +1209,6 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, " real_ocol0 = ocol0;\n" " }}\n"); } - else if (use_framebuffer_fetch) - { - out.Write(" real_ocol0 = ocol0;\n"); - } out.Write("}}\n" "\n" From fb5648541ce93cf4938dd58e635f7c2d1a3a1569 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 13 Jun 2022 18:24:57 -0500 Subject: [PATCH 394/659] VideoCommon: Remove dstalpha from BlendingState It's not supported by any PC graphics API, and therefore completely unused --- Source/Core/VideoCommon/RenderState.cpp | 6 +++--- Source/Core/VideoCommon/RenderState.h | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/RenderState.cpp b/Source/Core/VideoCommon/RenderState.cpp index a997c654f2..7df51a1503 100644 --- a/Source/Core/VideoCommon/RenderState.cpp +++ b/Source/Core/VideoCommon/RenderState.cpp @@ -120,12 +120,12 @@ void BlendingState::Generate(const BPMemory& bp) // Start with everything disabled. hex = 0; - bool target_has_alpha = bp.zcontrol.pixel_format == PixelFormat::RGBA6_Z24; - bool alpha_test_may_succeed = bp.alpha_test.TestResult() != AlphaTestResult::Fail; + const bool target_has_alpha = bp.zcontrol.pixel_format == PixelFormat::RGBA6_Z24; + const bool alpha_test_may_succeed = bp.alpha_test.TestResult() != AlphaTestResult::Fail; colorupdate = bp.blendmode.colorupdate && alpha_test_may_succeed; alphaupdate = bp.blendmode.alphaupdate && target_has_alpha && alpha_test_may_succeed; - dstalpha = bp.dstalpha.enable && alphaupdate; + const bool dstalpha = bp.dstalpha.enable && alphaupdate; usedualsrc = true; // The subtract bit has the highest priority diff --git a/Source/Core/VideoCommon/RenderState.h b/Source/Core/VideoCommon/RenderState.h index 992c70fb04..49590d55b5 100644 --- a/Source/Core/VideoCommon/RenderState.h +++ b/Source/Core/VideoCommon/RenderState.h @@ -130,7 +130,6 @@ union BlendingState BitField<0, 1, u32> blendenable; BitField<1, 1, u32> logicopenable; - BitField<2, 1, u32> dstalpha; BitField<3, 1, u32> colorupdate; BitField<4, 1, u32> alphaupdate; BitField<5, 1, u32> subtract; From 791bd16b281d3b123a2b9cf2d5c215d4ab235c1d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 7 Feb 2022 13:37:28 -0800 Subject: [PATCH 395/659] Restructure parameters to TetxureConverterShaderGen/TextureConversionShader This will be used for later refactoring for increased accuracy. --- Source/Core/VideoBackends/Null/TextureCache.h | 4 +- .../VideoBackends/Software/TextureCache.h | 4 +- Source/Core/VideoCommon/TextureCacheBase.cpp | 65 ++++++++++--------- Source/Core/VideoCommon/TextureCacheBase.h | 43 ++++++------ .../VideoCommon/TextureConversionShader.cpp | 12 ++-- .../VideoCommon/TextureConverterShaderGen.cpp | 24 ++++--- .../VideoCommon/TextureConverterShaderGen.h | 13 ++-- 7 files changed, 89 insertions(+), 76 deletions(-) diff --git a/Source/Core/VideoBackends/Null/TextureCache.h b/Source/Core/VideoBackends/Null/TextureCache.h index 5b2b73c365..2b95586f44 100644 --- a/Source/Core/VideoBackends/Null/TextureCache.h +++ b/Source/Core/VideoBackends/Null/TextureCache.h @@ -14,7 +14,7 @@ protected: u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, float y_scale, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) override + const std::array& filter_coefficients) override { } @@ -22,7 +22,7 @@ protected: const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, EFBCopyFormat dst_format, bool is_intensity, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) override + const std::array& filter_coefficients) override { } }; diff --git a/Source/Core/VideoBackends/Software/TextureCache.h b/Source/Core/VideoBackends/Software/TextureCache.h index 9ffa8fa4f4..a7d241197f 100644 --- a/Source/Core/VideoBackends/Software/TextureCache.h +++ b/Source/Core/VideoBackends/Software/TextureCache.h @@ -14,7 +14,7 @@ protected: u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, float y_scale, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) override + const std::array& filter_coefficients) override { TextureEncoder::Encode(dst, params, native_width, bytes_per_row, num_blocks_y, memory_stride, src_rect, scale_by_half, y_scale, gamma); @@ -23,7 +23,7 @@ protected: const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, EFBCopyFormat dst_format, bool is_intensity, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) override + const std::array& filter_coefficients) override { // TODO: If we ever want to "fake" vram textures, we would need to implement this } diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index a14c63af5b..2f896027ad 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -1978,44 +1978,49 @@ void TextureCacheBase::StitchXFBCopy(TCacheEntry* stitched_entry) } } -EFBCopyFilterCoefficients +std::array TextureCacheBase::GetRAMCopyFilterCoefficients(const CopyFilterCoefficients::Values& coefficients) { // To simplify the backend, we precalculate the three coefficients in common. Coefficients 0, 1 // are for the row above, 2, 3, 4 are for the current pixel, and 5, 6 are for the row below. - return EFBCopyFilterCoefficients{ - static_cast(static_cast(coefficients[0]) + static_cast(coefficients[1])) / - 64.0f, - static_cast(static_cast(coefficients[2]) + static_cast(coefficients[3]) + - static_cast(coefficients[4])) / - 64.0f, - static_cast(static_cast(coefficients[5]) + static_cast(coefficients[6])) / - 64.0f, + return { + static_cast(coefficients[0]) + static_cast(coefficients[1]), + static_cast(coefficients[2]) + static_cast(coefficients[3]) + + static_cast(coefficients[4]), + static_cast(coefficients[5]) + static_cast(coefficients[6]), }; } -EFBCopyFilterCoefficients +std::array TextureCacheBase::GetVRAMCopyFilterCoefficients(const CopyFilterCoefficients::Values& coefficients) { // If the user disables the copy filter, only apply it to the VRAM copy. // This way games which are sensitive to changes to the RAM copy of the XFB will be unaffected. - EFBCopyFilterCoefficients res = GetRAMCopyFilterCoefficients(coefficients); + std::array res = GetRAMCopyFilterCoefficients(coefficients); if (!g_ActiveConfig.bDisableCopyFilter) return res; // Disabling the copy filter in options should not ignore the values the game sets completely, // as some games use the filter coefficients to control the brightness of the screen. Instead, // add all coefficients to the middle sample, so the deflicker/vertical filter has no effect. - res.middle = res.upper + res.middle + res.lower; - res.upper = 0.0f; - res.lower = 0.0f; + res[1] = res[0] + res[1] + res[2]; + res[0] = 0; + res[2] = 0; return res; } -bool TextureCacheBase::NeedsCopyFilterInShader(const EFBCopyFilterCoefficients& coefficients) +bool TextureCacheBase::AllCopyFilterCoefsNeeded(const std::array& coefficients) { // If the top/bottom coefficients are zero, no point sampling/blending from these rows. - return coefficients.upper != 0 || coefficients.lower != 0; + return coefficients[0] != 0 || coefficients[2] != 0; +} + +bool TextureCacheBase::CopyFilterCanOverflow(const std::array& coefficients) +{ + // Normally, the copy filter coefficients will sum to at most 64. If the sum is higher than that, + // colors are clamped to the range [0, 255], but if the sum is higher than 128, that clamping + // breaks (as colors end up >= 512, which wraps back to 0). + return coefficients[0] + coefficients[1] + coefficients[2] >= 128; } void TextureCacheBase::CopyRenderTargetToTexture( @@ -2255,10 +2260,11 @@ void TextureCacheBase::CopyRenderTargetToTexture( if (copy_to_ram) { - EFBCopyFilterCoefficients coefficients = GetRAMCopyFilterCoefficients(filter_coefficients); + const std::array coefficients = GetRAMCopyFilterCoefficients(filter_coefficients); PixelFormat srcFormat = bpmem.zcontrol.pixel_format; EFBCopyParams format(srcFormat, dstFormat, is_depth_copy, isIntensity, - NeedsCopyFilterInShader(coefficients)); + AllCopyFilterCoefsNeeded(coefficients), + CopyFilterCanOverflow(coefficients), gamma != 1.0); std::unique_ptr staging_texture = GetEFBCopyStagingTexture(); if (staging_texture) @@ -2716,16 +2722,15 @@ void TextureCacheBase::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_cop bool scale_by_half, bool linear_filter, EFBCopyFormat dst_format, bool is_intensity, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) + const std::array& filter_coefficients) { // Flush EFB pokes first, as they're expected to be included. g_framebuffer_manager->FlushEFBPokes(); // Get the pipeline which we will be using. If the compilation failed, this will be null. - const AbstractPipeline* copy_pipeline = - g_shader_cache->GetEFBCopyToVRAMPipeline(TextureConversionShaderGen::GetShaderUid( - dst_format, is_depth_copy, is_intensity, scale_by_half, - NeedsCopyFilterInShader(filter_coefficients))); + const AbstractPipeline* copy_pipeline = g_shader_cache->GetEFBCopyToVRAMPipeline( + TextureConversionShaderGen::GetShaderUid(dst_format, is_depth_copy, is_intensity, + scale_by_half, 1.0f / gamma, filter_coefficients)); if (!copy_pipeline) { WARN_LOG_FMT(VIDEO, "Skipping EFB copy to VRAM due to missing pipeline."); @@ -2746,7 +2751,7 @@ void TextureCacheBase::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_cop struct Uniforms { float src_left, src_top, src_width, src_height; - float filter_coefficients[3]; + std::array filter_coefficients; float gamma_rcp; float clamp_top; float clamp_bottom; @@ -2761,9 +2766,7 @@ void TextureCacheBase::CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_cop uniforms.src_top = framebuffer_rect.top * rcp_efb_height; uniforms.src_width = framebuffer_rect.GetWidth() * rcp_efb_width; uniforms.src_height = framebuffer_rect.GetHeight() * rcp_efb_height; - uniforms.filter_coefficients[0] = filter_coefficients.upper; - uniforms.filter_coefficients[1] = filter_coefficients.middle; - uniforms.filter_coefficients[2] = filter_coefficients.lower; + uniforms.filter_coefficients = filter_coefficients; uniforms.gamma_rcp = 1.0f / gamma; // NOTE: when the clamp bits aren't set, the hardware will happily read beyond the EFB, // which returns random garbage from the empty bus (confirmed by hardware tests). @@ -2795,7 +2798,7 @@ void TextureCacheBase::CopyEFB(AbstractStagingTexture* dst, const EFBCopyParams& u32 memory_stride, const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, float y_scale, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients) + const std::array& filter_coefficients) { // Flush EFB pokes first, as they're expected to be included. g_framebuffer_manager->FlushEFBPokes(); @@ -2826,7 +2829,7 @@ void TextureCacheBase::CopyEFB(AbstractStagingTexture* dst, const EFBCopyParams& float gamma_rcp; float clamp_top; float clamp_bottom; - float filter_coefficients[3]; + std::array filter_coefficients; u32 padding; }; Uniforms encoder_params; @@ -2847,9 +2850,7 @@ void TextureCacheBase::CopyEFB(AbstractStagingTexture* dst, const EFBCopyParams& encoder_params.clamp_top = (static_cast(top_coord) + .5f) * rcp_efb_height; const u32 bottom_coord = (clamp_bottom ? framebuffer_rect.bottom : efb_height) - 1; encoder_params.clamp_bottom = (static_cast(bottom_coord) + .5f) * rcp_efb_height; - encoder_params.filter_coefficients[0] = filter_coefficients.upper; - encoder_params.filter_coefficients[1] = filter_coefficients.middle; - encoder_params.filter_coefficients[2] = filter_coefficients.lower; + encoder_params.filter_coefficients = filter_coefficients; g_vertex_manager->UploadUtilityUniforms(&encoder_params, sizeof(encoder_params)); // Because the shader uses gl_FragCoord and we read it back, we must render to the lower-left. diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 287f3b840f..4fe11a64f4 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -57,23 +57,30 @@ struct TextureAndTLUTFormat struct EFBCopyParams { EFBCopyParams(PixelFormat efb_format_, EFBCopyFormat copy_format_, bool depth_, bool yuv_, - bool copy_filter_) + bool all_copy_filter_coefs_needed_, bool copy_filter_can_overflow_, + bool apply_gamma_) : efb_format(efb_format_), copy_format(copy_format_), depth(depth_), yuv(yuv_), - copy_filter(copy_filter_) + all_copy_filter_coefs_needed(all_copy_filter_coefs_needed_), + copy_filter_can_overflow(copy_filter_can_overflow_), apply_gamma(apply_gamma_) { } bool operator<(const EFBCopyParams& rhs) const { - return std::tie(efb_format, copy_format, depth, yuv, copy_filter) < - std::tie(rhs.efb_format, rhs.copy_format, rhs.depth, rhs.yuv, rhs.copy_filter); + return std::tie(efb_format, copy_format, depth, yuv, all_copy_filter_coefs_needed, + copy_filter_can_overflow, + apply_gamma) < std::tie(rhs.efb_format, rhs.copy_format, rhs.depth, rhs.yuv, + rhs.all_copy_filter_coefs_needed, + rhs.copy_filter_can_overflow, rhs.apply_gamma); } PixelFormat efb_format; EFBCopyFormat copy_format; bool depth; bool yuv; - bool copy_filter; + bool all_copy_filter_coefs_needed; + bool copy_filter_can_overflow; + bool apply_gamma; }; template <> @@ -89,19 +96,13 @@ struct fmt::formatter else copy_format = fmt::to_string(uid.copy_format); return fmt::format_to(ctx.out(), - "format: {}, copy format: {}, depth: {}, yuv: {}, copy filter: {}", - uid.efb_format, copy_format, uid.depth, uid.yuv, uid.copy_filter); + "format: {}, copy format: {}, depth: {}, yuv: {}, apply_gamma: {}, " + "all_copy_filter_coefs_needed: {}, copy_filter_can_overflow: {}", + uid.efb_format, copy_format, uid.depth, uid.yuv, uid.apply_gamma, + uid.all_copy_filter_coefs_needed, uid.copy_filter_can_overflow); } }; -// Reduced version of the full coefficient array, with a single value for each row. -struct EFBCopyFilterCoefficients -{ - float upper; - float middle; - float lower; -}; - class TextureCacheBase { private: @@ -267,8 +268,8 @@ public: // Save States void DoState(PointerWrap& p); - // Returns false if the top/bottom row coefficients are zero. - static bool NeedsCopyFilterInShader(const EFBCopyFilterCoefficients& coefficients); + static bool AllCopyFilterCoefsNeeded(const std::array& coefficients); + static bool CopyFilterCanOverflow(const std::array& coefficients); protected: // Decodes the specified data to the GPU texture specified by entry. @@ -285,12 +286,12 @@ protected: u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, float y_scale, float gamma, bool clamp_top, - bool clamp_bottom, const EFBCopyFilterCoefficients& filter_coefficients); + bool clamp_bottom, const std::array& filter_coefficients); virtual void CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, const MathUtil::Rectangle& src_rect, bool scale_by_half, bool linear_filter, EFBCopyFormat dst_format, bool is_intensity, float gamma, bool clamp_top, bool clamp_bottom, - const EFBCopyFilterCoefficients& filter_coefficients); + const std::array& filter_coefficients); alignas(16) u8* temp = nullptr; size_t temp_size = 0; @@ -338,9 +339,9 @@ private: void UninitializeXFBMemory(u8* dst, u32 stride, u32 bytes_per_row, u32 num_blocks_y); // Precomputing the coefficients for the previous, current, and next lines for the copy filter. - static EFBCopyFilterCoefficients + static std::array GetRAMCopyFilterCoefficients(const CopyFilterCoefficients::Values& coefficients); - static EFBCopyFilterCoefficients + static std::array GetVRAMCopyFilterCoefficients(const CopyFilterCoefficients::Values& coefficients); // Flushes a pending EFB copy to RAM from the host to the guest RAM. diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index e7a2d4a392..fc27c9cc99 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -62,7 +62,7 @@ static void WriteHeader(ShaderCode& code, APIType api_type) " float y_scale;\n" " float gamma_rcp;\n" " float2 clamp_tb;\n" - " float3 filter_coefficients;\n" + " uint3 filter_coefficients;\n" "}};\n"); if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { @@ -151,7 +151,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A // The filter is only applied to the RGB channels, the alpha channel is left intact. code.Write("float4 SampleEFB(float2 uv, float2 pixel_size, int xoffset)\n" "{{\n"); - if (params.copy_filter) + if (params.all_copy_filter_coefs_needed) { code.Write(" float4 prev_row = "); WriteSampleOp(-1); @@ -162,9 +162,9 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A " float4 next_row = "); WriteSampleOp(1); code.Write(";\n" - " return float4(min(prev_row.rgb * filter_coefficients[0] +\n" - " current_row.rgb * filter_coefficients[1] +\n" - " next_row.rgb * filter_coefficients[2], \n" + " return float4(min(prev_row.rgb * filter_coefficients[0] / 64.0 +\n" + " current_row.rgb * filter_coefficients[1] / 64.0 +\n" + " next_row.rgb * filter_coefficients[2] / 64.0, \n" " float3(1, 1, 1)), current_row.a);\n"); } else @@ -172,7 +172,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A code.Write(" float4 current_row = "); WriteSampleOp(0); code.Write(";\n" - "return float4(min(current_row.rgb * filter_coefficients[1], float3(1, 1, 1)),\n" + "return float4(min(current_row.rgb * filter_coefficients[1] / 64.0, float3(1, 1, 1)),\n" " current_row.a);\n"); } code.Write("}}\n"); diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index 0667f8c621..6b10a34aed 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -6,13 +6,15 @@ #include "Common/Assert.h" #include "Common/CommonTypes.h" #include "VideoCommon/BPMemory.h" +#include "VideoCommon/TextureCacheBase.h" #include "VideoCommon/VideoCommon.h" #include "VideoCommon/VideoConfig.h" namespace TextureConversionShaderGen { TCShaderUid GetShaderUid(EFBCopyFormat dst_format, bool is_depth_copy, bool is_intensity, - bool scale_by_half, bool copy_filter) + bool scale_by_half, float gamma_rcp, + const std::array& filter_coefficients) { TCShaderUid out; @@ -22,7 +24,11 @@ TCShaderUid GetShaderUid(EFBCopyFormat dst_format, bool is_depth_copy, bool is_i uid_data->is_depth_copy = is_depth_copy; uid_data->is_intensity = is_intensity; uid_data->scale_by_half = scale_by_half; - uid_data->copy_filter = copy_filter; + uid_data->all_copy_filter_coefs_needed = + TextureCacheBase::AllCopyFilterCoefsNeeded(filter_coefficients); + uid_data->copy_filter_can_overflow = TextureCacheBase::CopyFilterCanOverflow(filter_coefficients); + // If the gamma is needed, then include that too. + uid_data->apply_gamma = gamma_rcp != 1.0f; return out; } @@ -31,7 +37,7 @@ static void WriteHeader(APIType api_type, ShaderCode& out) { out.Write("UBO_BINDING(std140, 1) uniform PSBlock {{\n" " float2 src_offset, src_size;\n" - " float3 filter_coefficients;\n" + " uint3 filter_coefficients;\n" " float gamma_rcp;\n" " float2 clamp_tb;\n" " float pixel_height;\n" @@ -98,22 +104,22 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) // The copy filter applies to both color and depth copies. This has been verified on hardware. // The filter is only applied to the RGB channels, the alpha channel is left intact. - if (uid_data->copy_filter) + if (uid_data->all_copy_filter_coefs_needed) { out.Write(" float4 prev_row = SampleEFB(v_tex0, -1.0f);\n" " float4 current_row = SampleEFB(v_tex0, 0.0f);\n" " float4 next_row = SampleEFB(v_tex0, 1.0f);\n" - " float4 texcol = float4(min(prev_row.rgb * filter_coefficients[0] +\n" - " current_row.rgb * filter_coefficients[1] +\n" - " next_row.rgb * filter_coefficients[2], \n" + " float4 texcol = float4(min(prev_row.rgb * filter_coefficients[0] / 64.0 +\n" + " current_row.rgb * filter_coefficients[1] / 64.0 +\n" + " next_row.rgb * filter_coefficients[2] / 64.0, \n" " float3(1, 1, 1)), current_row.a);\n"); } else { out.Write( " float4 current_row = SampleEFB(v_tex0, 0.0f);\n" - " float4 texcol = float4(min(current_row.rgb * filter_coefficients[1], float3(1, 1, 1)),\n" - " current_row.a);\n"); + " float4 texcol = float4(min(current_row.rgb * filter_coefficients[1] / 64.0,\n" + " float3(1, 1, 1)), current_row.a);\n"); } if (uid_data->is_depth_copy) diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.h b/Source/Core/VideoCommon/TextureConverterShaderGen.h index 54665104f6..10745cb3dc 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.h +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.h @@ -25,7 +25,9 @@ struct UidData u32 is_depth_copy : 1; u32 is_intensity : 1; u32 scale_by_half : 1; - u32 copy_filter : 1; + u32 all_copy_filter_coefs_needed : 1; + u32 copy_filter_can_overflow : 1; + u32 apply_gamma : 1; }; #pragma pack() @@ -35,7 +37,8 @@ ShaderCode GenerateVertexShader(APIType api_type); ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data); TCShaderUid GetShaderUid(EFBCopyFormat dst_format, bool is_depth_copy, bool is_intensity, - bool scale_by_half, bool copy_filter); + bool scale_by_half, float gamma_rcp, + const std::array& filter_coefficients); } // namespace TextureConversionShaderGen @@ -53,8 +56,10 @@ struct fmt::formatter dst_format = fmt::to_string(uid.dst_format); return fmt::format_to(ctx.out(), "dst_format: {}, efb_has_alpha: {}, is_depth_copy: {}, is_intensity: {}, " - "scale_by_half: {}, copy_filter: {}", + "scale_by_half: {}, all_copy_filter_coefs_needed: {}, " + "copy_filter_can_overflow: {}, apply_gamma: {}", dst_format, uid.efb_has_alpha, uid.is_depth_copy, uid.is_intensity, - uid.scale_by_half, uid.copy_filter); + uid.scale_by_half, uid.all_copy_filter_coefs_needed, + uid.copy_filter_can_overflow, uid.apply_gamma); } }; From b16ec5b6dccc347f9fd15a4fad80edb173f007eb Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 20:34:15 -0800 Subject: [PATCH 396/659] Rework TextureConverterShaderGen for hardware accuracy and simplicity --- .../VideoCommon/TextureConverterShaderGen.cpp | 277 +++++++----------- 1 file changed, 109 insertions(+), 168 deletions(-) diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index 6b10a34aed..3bee37060a 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -84,11 +84,25 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) WriteHeader(api_type, out); out.Write("SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n"); - out.Write("float4 SampleEFB(float3 uv, float y_offset) {{\n" - " return texture(samp0, float3(uv.x, clamp(uv.y + (y_offset * pixel_height), " - "clamp_tb.x, clamp_tb.y), {}));\n" - "}}\n", + out.Write("uint4 SampleEFB(float3 uv, float y_offset) {{\n" + " float4 tex_sample = texture(samp0, float3(uv.x, clamp(uv.y + (y_offset * " + "pixel_height), clamp_tb.x, clamp_tb.y), {}));\n", mono_depth ? "0.0" : "uv.z"); + if (uid_data->is_depth_copy) + { + if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange) + out.Write(" tex_sample.x = 1.0 - tex_sample.x;\n"); + + out.Write(" uint depth = uint(tex_sample.x * 16777216.0);\n" + " return uint4((depth >> 16) & 255u, (depth >> 8) & 255u, depth & 255u, 255u);\n" + "}}\n"); + } + else + { + out.Write(" return uint4(tex_sample * 255.0);\n" + "}}\n"); + } + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) { out.Write("VARYING_LOCATION(0) in VertexData {{\n" @@ -99,6 +113,7 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) { out.Write("VARYING_LOCATION(0) in vec3 v_tex0;\n"); } + out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 ocol0;\n" "void main()\n{{\n"); @@ -106,191 +121,117 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) // The filter is only applied to the RGB channels, the alpha channel is left intact. if (uid_data->all_copy_filter_coefs_needed) { - out.Write(" float4 prev_row = SampleEFB(v_tex0, -1.0f);\n" - " float4 current_row = SampleEFB(v_tex0, 0.0f);\n" - " float4 next_row = SampleEFB(v_tex0, 1.0f);\n" - " float4 texcol = float4(min(prev_row.rgb * filter_coefficients[0] / 64.0 +\n" - " current_row.rgb * filter_coefficients[1] / 64.0 +\n" - " next_row.rgb * filter_coefficients[2] / 64.0, \n" - " float3(1, 1, 1)), current_row.a);\n"); + out.Write(" uint4 prev_row = SampleEFB(v_tex0, -1.0f);\n" + " uint4 current_row = SampleEFB(v_tex0, 0.0f);\n" + " uint4 next_row = SampleEFB(v_tex0, 1.0f);\n" + " uint3 combined_rows = prev_row.rgb * filter_coefficients[0] +\n" + " current_row.rgb * filter_coefficients[1] +\n" + " next_row.rgb * filter_coefficients[2];\n"); } else { - out.Write( - " float4 current_row = SampleEFB(v_tex0, 0.0f);\n" - " float4 texcol = float4(min(current_row.rgb * filter_coefficients[1] / 64.0,\n" - " float3(1, 1, 1)), current_row.a);\n"); + out.Write(" uint4 current_row = SampleEFB(v_tex0, 0.0f);\n" + " uint3 combined_rows = current_row.rgb * filter_coefficients[1];\n"); + } + out.Write(" // Shift right by 6 to divide by 64, as filter coefficients\n" + " // that sum to 64 result in no change in brightness\n" + " uint4 texcol_raw = uint4(combined_rows.rgb >> 6, {});\n", + uid_data->efb_has_alpha ? "current_row.a" : "255"); + + if (uid_data->copy_filter_can_overflow) + out.Write(" texcol_raw &= 0x1ffu;\n"); + // Note that overflow occurs when the sum of values is >= 128, but this max situation can be hit + // on >= 64, so we always include it. + out.Write(" texcol_raw = min(texcol_raw, uint4(255, 255, 255, 255));\n"); + + if (uid_data->apply_gamma) + { + out.Write(" texcol_raw = uint4(round(pow(abs(float4(texcol_raw) / 255.0),\n" + " float4(gamma_rcp, gamma_rcp, gamma_rcp, 1.0)) * 255.0));\n"); } - if (uid_data->is_depth_copy) + if (uid_data->is_intensity) { - if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange) - out.Write("texcol.x = 1.0 - texcol.x;\n"); - - out.Write(" int depth = int(texcol.x * 16777216.0);\n" - - // Convert to Z24 format - " int4 workspace;\n" - " workspace.r = (depth >> 16) & 255;\n" - " workspace.g = (depth >> 8) & 255;\n" - " workspace.b = depth & 255;\n" - - // Convert to Z4 format - " workspace.a = (depth >> 16) & 0xF0;\n" - - // Normalize components to [0.0..1.0] - " texcol = float4(workspace) / 255.0;\n"); - switch (uid_data->dst_format) - { - case EFBCopyFormat::R4: // Z4 - out.Write(" ocol0 = texcol.aaaa;\n"); - break; - - case EFBCopyFormat::R8_0x1: // Z8 - case EFBCopyFormat::R8: // Z8H - out.Write(" ocol0 = texcol.rrrr;\n"); - break; - - case EFBCopyFormat::RA8: // Z16 - out.Write(" ocol0 = texcol.gggr;\n"); - break; - - case EFBCopyFormat::RG8: // Z16 (reverse order) - out.Write(" ocol0 = texcol.rrrg;\n"); - break; - - case EFBCopyFormat::RGBA8: // Z24X8 - out.Write(" ocol0 = float4(texcol.rgb, 1.0);\n"); - break; - - case EFBCopyFormat::G8: // Z8M - out.Write(" ocol0 = texcol.gggg;\n"); - break; - - case EFBCopyFormat::B8: // Z8L - out.Write(" ocol0 = texcol.bbbb;\n"); - break; - - case EFBCopyFormat::GB8: // Z16L - copy lower 16 depth bits - // expected to be used as an IA8 texture (upper 8 bits stored as intensity, lower 8 bits - // stored as alpha) - // Used e.g. in Zelda: Skyward Sword - out.Write(" ocol0 = texcol.gggb;\n"); - break; - - default: - ERROR_LOG_FMT(VIDEO, "Unknown copy zbuf format: {}", uid_data->dst_format); - out.Write(" ocol0 = float4(texcol.bgr, 0.0);\n"); - break; - } + out.Write(" // Intensity/YUV format conversion constants determined by hardware testing\n" + " const float4 y_const = float4( 66, 129, 25, 16);\n" + " const float4 u_const = float4(-38, -74, 112, 128);\n" + " const float4 v_const = float4(112, -94, -18, 128);\n" + " // Intensity/YUV format conversion\n" + " texcol_raw.rgb = uint3(dot(y_const, float4(texcol_raw.rgb, 256)),\n" + " dot(u_const, float4(texcol_raw.rgb, 256)),\n" + " dot(v_const, float4(texcol_raw.rgb, 256)));\n" + " // Divide by 256 and round .5 and higher up\n" + " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1);\n"); } - else if (uid_data->is_intensity) + + switch (uid_data->dst_format) { - if (!uid_data->efb_has_alpha) - out.Write(" texcol.a = 1.0;\n"); + case EFBCopyFormat::R4: // R4 + out.Write(" float red = float(texcol_raw.r & 0xF0u) / 240.0;\n" + " ocol0 = float4(red, red, red, red);\n"); + break; - bool has_four_bits = - (uid_data->dst_format == EFBCopyFormat::R4 || uid_data->dst_format == EFBCopyFormat::RA4); - bool has_alpha = - (uid_data->dst_format == EFBCopyFormat::RA4 || uid_data->dst_format == EFBCopyFormat::RA8); + case EFBCopyFormat::R8_0x1: // R8 + case EFBCopyFormat::R8: // R8 + out.Write(" ocol0 = float4(texcol_raw).rrrr / 255.0;\n"); + break; - switch (uid_data->dst_format) - { - case EFBCopyFormat::R4: // I4 - case EFBCopyFormat::R8_0x1: // I8 - case EFBCopyFormat::R8: // I8 - case EFBCopyFormat::RA4: // IA4 - case EFBCopyFormat::RA8: // IA8 - if (has_four_bits) - out.Write(" texcol = float4(int4(texcol * 255.0) & 0xF0) * (1.0 / 240.0);\n"); + case EFBCopyFormat::RA4: // RA4 + out.Write(" float2 red_alpha = float2(texcol_raw.ra & 0xF0u) / 240.0;\n" + " ocol0 = red_alpha.rrrg;\n"); + break; - // TODO - verify these coefficients - out.Write(" const float3 coefficients = float3(0.257, 0.504, 0.098);\n" - " float intensity = dot(texcol.rgb, coefficients) + 16.0 / 255.0;\n" - " ocol0 = float4(intensity, intensity, intensity, {});\n", - has_alpha ? "texcol.a" : "intensity"); - break; + case EFBCopyFormat::RA8: // RA8 + out.Write(" ocol0 = float4(texcol_raw).rrra / 255.0;\n"); + break; - default: - ERROR_LOG_FMT(VIDEO, "Unknown copy intensity format: {}", uid_data->dst_format); - out.Write(" ocol0 = texcol;\n"); - break; - } - } - else - { - if (!uid_data->efb_has_alpha) - out.Write(" texcol.a = 1.0;\n"); + case EFBCopyFormat::A8: // A8 + out.Write(" ocol0 = float4(texcol_raw).aaaa / 255.0;\n"); + break; - switch (uid_data->dst_format) - { - case EFBCopyFormat::R4: // R4 - out.Write(" float red = float(int(texcol.r * 255.0) & 0xF0) * (1.0 / 240.0);\n" - " ocol0 = float4(red, red, red, red);\n"); - break; + case EFBCopyFormat::G8: // G8 + out.Write(" ocol0 = float4(texcol_raw).gggg / 255.0;\n"); + break; - case EFBCopyFormat::R8_0x1: // R8 - case EFBCopyFormat::R8: // R8 - out.Write(" ocol0 = texcol.rrrr;\n"); - break; + case EFBCopyFormat::B8: // B8 + out.Write(" ocol0 = float4(texcol_raw).bbbb / 255.0;\n"); + break; - case EFBCopyFormat::RA4: // RA4 - out.Write(" float2 red_alpha = float2(int2(texcol.ra * 255.0) & 0xF0) * (1.0 / 240.0);\n" - " ocol0 = red_alpha.rrrg;\n"); - break; + case EFBCopyFormat::RG8: // RG8 + out.Write(" ocol0 = float4(texcol_raw).rrrg / 255.0;\n"); + break; - case EFBCopyFormat::RA8: // RA8 - out.Write(" ocol0 = texcol.rrra;\n"); - break; + case EFBCopyFormat::GB8: // GB8 + out.Write(" ocol0 = float4(texcol_raw).gggb / 255.0;\n"); + break; - case EFBCopyFormat::A8: // A8 - out.Write(" ocol0 = texcol.aaaa;\n"); - break; + case EFBCopyFormat::RGB565: // RGB565 + out.Write(" float2 red_blue = float2(texcol_raw.rb & 0xF8u) / 248.0;\n" + " float green = float(texcol_raw.g & 0xFCu) / 252.0;\n" + " ocol0 = float4(red_blue.r, green, red_blue.g, 1.0);\n"); + break; - case EFBCopyFormat::G8: // G8 - out.Write(" ocol0 = texcol.gggg;\n"); - break; + case EFBCopyFormat::RGB5A3: // RGB5A3 + // TODO: The MSB controls whether we have RGB5 or RGB4A3, this selection + // will need to be implemented once we move away from floats. + out.Write(" float3 color = float3(texcol_raw.rgb & 0xF8u) / 248.0;\n" + " float alpha = float(texcol_raw.a & 0xE0u) / 224.0;\n" + " ocol0 = float4(color, alpha);\n"); + break; - case EFBCopyFormat::B8: // B8 - out.Write(" ocol0 = texcol.bbbb;\n"); - break; + case EFBCopyFormat::RGBA8: // RGBA8 + out.Write(" ocol0 = float4(texcol_raw.rgba) / 255.0;\n"); + break; - case EFBCopyFormat::RG8: // RG8 - out.Write(" ocol0 = texcol.rrrg;\n"); - break; + case EFBCopyFormat::XFB: + out.Write(" ocol0 = float4(float3(texcol_raw.rgb) / 255.0, 1.0);\n"); + break; - case EFBCopyFormat::GB8: // GB8 - out.Write(" ocol0 = texcol.gggb;\n"); - break; - - case EFBCopyFormat::RGB565: // RGB565 - out.Write(" float2 red_blue = float2(int2(texcol.rb * 255.0) & 0xF8) * (1.0 / 248.0);\n" - " float green = float(int(texcol.g * 255.0) & 0xFC) * (1.0 / 252.0);\n" - " ocol0 = float4(red_blue.r, green, red_blue.g, 1.0);\n"); - break; - - case EFBCopyFormat::RGB5A3: // RGB5A3 - // TODO: The MSB controls whether we have RGB5 or RGB4A3, this selection - // will need to be implemented once we move away from floats. - out.Write(" float3 color = float3(int3(texcol.rgb * 255.0) & 0xF8) * (1.0 / 248.0);\n" - " float alpha = float(int(texcol.a * 255.0) & 0xE0) * (1.0 / 224.0);\n" - " ocol0 = float4(color, alpha);\n"); - break; - - case EFBCopyFormat::RGBA8: // RGBA8 - out.Write(" ocol0 = texcol;\n"); - break; - - case EFBCopyFormat::XFB: - out.Write(" ocol0 = float4(pow(abs(texcol.rgb), float3(gamma_rcp, gamma_rcp, gamma_rcp)), " - "1.0f);\n"); - break; - - default: - ERROR_LOG_FMT(VIDEO, "Unknown copy color format: {}", uid_data->dst_format); - out.Write(" ocol0 = texcol;\n"); - break; - } + default: + ERROR_LOG_FMT(VIDEO, "Unknown copy/intensity color format: {} {}", uid_data->dst_format, + uid_data->is_intensity); + out.Write(" ocol0 = float4(texcol_raw.rgba) / 255.0;\n"); + break; } out.Write("}}\n"); From e7339d63f15bdf2b41e3f6fab1c16b844514ae3a Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 20:36:11 -0800 Subject: [PATCH 397/659] Rework TextureConversionShader for hardware accuracy and simplicity --- .../VideoCommon/TextureConversionShader.cpp | 535 ++++-------------- 1 file changed, 116 insertions(+), 419 deletions(-) diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index fc27c9cc99..c1aac4482a 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -18,8 +18,6 @@ namespace TextureConversionShaderTiled { -static bool IntensityConstantAdded = false; - u16 GetEncodedSampleCount(EFBCopyFormat format) { switch (format) @@ -85,115 +83,124 @@ static void WriteHeader(ShaderCode& code, APIType api_type) "float4 RGBA8ToRGBA6(float4 src)\n" "{{\n" - " int4 val = int4(roundEven(src * 255.0)) >> 2;\n" - " return float4(val) / 63.0;\n" + " int4 val = int4(roundEven(src * 255.0));\n" + " val = (val & 0xfc) | (val >> 6);\n" + " return float4(val) / 255.0;\n" "}}\n" "float4 RGBA8ToRGB565(float4 src)\n" "{{\n" " int4 val = int4(roundEven(src * 255.0));\n" - " val = int4(val.r >> 3, val.g >> 2, val.b >> 3, 1);\n" - " return float4(val) / float4(31.0, 63.0, 31.0, 1.0);\n" + " val.r = (val.r & 0xf8) | (val.r >> 5);\n" + " val.g = (val.g & 0xfc) | (val.g >> 6);\n" + " val.b = (val.b & 0xf8) | (val.b >> 5);\n" + " val.a = 255;\n" + " return float4(val) / 255.0;\n" "}}\n"); } static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, APIType api_type) { - const auto WriteSampleOp = [api_type, &code, ¶ms](int yoffset) { - if (!params.depth) - { - switch (params.efb_format) - { - case PixelFormat::RGB8_Z24: - code.Write("RGBA8ToRGB8("); - break; - case PixelFormat::RGBA6_Z24: - code.Write("RGBA8ToRGBA6("); - break; - case PixelFormat::RGB565_Z16: - code.Write("RGBA8ToRGB565("); - break; - default: - code.Write("("); - break; - } - } - else - { - // Handle D3D depth inversion. - if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange) - code.Write("1.0 - ("); - else - code.Write("("); - } + code.Write("uint4 SampleEFB0(float2 uv, float2 pixel_size, float x_offset, float y_offset) {{\n" + " float4 tex_sample = texture(samp0, float3(uv.x + x_offset * pixel_size.x, "); - code.Write("texture(samp0, float3("); + // Reverse the direction for OpenGL, since positive numbers are distance from the bottom row. + // TODO: This isn't done on TextureConverterShaderGen - maybe it handles that via pixel_size? + if (api_type == APIType::OpenGL) + code.Write("clamp(uv.y - y_offset * pixel_size.y, clamp_tb.x, clamp_tb.y)"); + else + code.Write("clamp(uv.y + y_offset * pixel_size.y, clamp_tb.x, clamp_tb.y)"); - code.Write("uv.x + float(xoffset) * pixel_size.x, "); + code.Write(", 0.0));\n"); - // Reverse the direction for OpenGL, since positive numbers are distance from the bottom row. - if (yoffset != 0) - { - if (api_type == APIType::OpenGL) - code.Write("clamp(uv.y - float({}) * pixel_size.y, clamp_tb.x, clamp_tb.y)", yoffset); - else - code.Write("clamp(uv.y + float({}) * pixel_size.y, clamp_tb.x, clamp_tb.y)", yoffset); - } - else - { - code.Write("uv.y"); - } + // TODO: Is this really needed? Doesn't the EFB only store appropriate values? Or is this for + // EFB2Ram having consistent output with force 32-bit color? + if (params.efb_format == PixelFormat::RGB8_Z24) + code.Write(" tex_sample = RGBA8ToRGB8(tex_sample);\n"); + else if (params.efb_format == PixelFormat::RGBA6_Z24) + code.Write(" tex_sample = RGBA8ToRGBA6(tex_sample);\n"); + else if (params.efb_format == PixelFormat::RGB565_Z16) + code.Write(" tex_sample = RGBA8ToRGB565(tex_sample);\n"); - code.Write(", 0.0)))"); - }; - - // The copy filter applies to both color and depth copies. This has been verified on hardware. - // The filter is only applied to the RGB channels, the alpha channel is left intact. - code.Write("float4 SampleEFB(float2 uv, float2 pixel_size, int xoffset)\n" - "{{\n"); - if (params.all_copy_filter_coefs_needed) + if (params.depth) { - code.Write(" float4 prev_row = "); - WriteSampleOp(-1); - code.Write(";\n" - " float4 current_row = "); - WriteSampleOp(0); - code.Write(";\n" - " float4 next_row = "); - WriteSampleOp(1); - code.Write(";\n" - " return float4(min(prev_row.rgb * filter_coefficients[0] / 64.0 +\n" - " current_row.rgb * filter_coefficients[1] / 64.0 +\n" - " next_row.rgb * filter_coefficients[2] / 64.0, \n" - " float3(1, 1, 1)), current_row.a);\n"); + if (!g_ActiveConfig.backend_info.bSupportsReversedDepthRange) + code.Write(" tex_sample.x = 1.0 - tex_sample.x;\n"); + + code.Write(" uint depth = uint(tex_sample.x * 16777216.0);\n" + " return uint4((depth >> 16) & 255u, (depth >> 8) & 255u, depth & 255u, 255u);\n" + "}}\n"); } else { - code.Write(" float4 current_row = "); - WriteSampleOp(0); - code.Write(";\n" - "return float4(min(current_row.rgb * filter_coefficients[1] / 64.0, float3(1, 1, 1)),\n" - " current_row.a);\n"); + code.Write(" return uint4(tex_sample * 255.0);\n" + "}}\n"); } + + // The copy filter applies to both color and depth copies. This has been verified on hardware. + // The filter is only applied to the RGB channels, the alpha channel is left intact. + code.Write("float4 SampleEFB(float2 uv, float2 pixel_size, int x_offset)\n" + "{{\n"); + if (params.all_copy_filter_coefs_needed) + { + code.Write(" uint4 prev_row = SampleEFB0(uv, pixel_size, float(x_offset), -1.0f);\n" + " uint4 current_row = SampleEFB0(uv, pixel_size, float(x_offset), 0.0f);\n" + " uint4 next_row = SampleEFB0(uv, pixel_size, float(x_offset), 1.0f);\n" + " uint3 combined_rows = prev_row.rgb * filter_coefficients[0] +\n" + " current_row.rgb * filter_coefficients[1] +\n" + " next_row.rgb * filter_coefficients[2];\n"); + } + else + { + code.Write(" uint4 current_row = SampleEFB0(uv, pixel_size, float(x_offset), 0.0f);\n" + " uint3 combined_rows = current_row.rgb * filter_coefficients[1];\n"); + } + code.Write(" // Shift right by 6 to divide by 64, as filter coefficients\n" + " // that sum to 64 result in no change in brightness\n" + " uint4 texcol_raw = uint4(combined_rows.rgb >> 6, current_row.a);\n"); + + if (params.copy_filter_can_overflow) + code.Write(" texcol_raw &= 0x1ffu;\n"); + // Note that overflow occurs when the sum of values is >= 128, but this max situation can be hit + // on >= 64, so we always include it. + code.Write(" texcol_raw = min(texcol_raw, uint4(255, 255, 255, 255));\n"); + + if (params.apply_gamma) + { + code.Write(" texcol_raw = uint4(round(pow(float4(texcol_raw) / 255.0,\n" + " float4(gamma_rcp, gamma_rcp, gamma_rcp, 1.0)) * 255.0));\n"); + } + + if (params.yuv) + { + code.Write(" // Intensity/YUV format conversion constants determined by hardware testing\n" + " const float4 y_const = float4( 66, 129, 25, 16);\n" + " const float4 u_const = float4(-38, -74, 112, 128);\n" + " const float4 v_const = float4(112, -94, -18, 128);\n" + " // Intensity/YUV format conversion\n" + " texcol_raw.rgb = uint3(dot(y_const, float4(texcol_raw.rgb, 256)),\n" + " dot(u_const, float4(texcol_raw.rgb, 256)),\n" + " dot(v_const, float4(texcol_raw.rgb, 256)));\n" + " // Divide by 256 and round .5 and higher up\n" + " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1);\n"); + } + + code.Write(" return float4(texcol_raw) / 255.0;\n"); code.Write("}}\n"); } // Block dimensions : widthStride, heightStride // Texture dimensions : width, height, x offset, y offset -static void WriteSwizzler(ShaderCode& code, const EFBCopyParams& params, EFBCopyFormat format, - APIType api_type) +static void WriteSwizzler(ShaderCode& code, const EFBCopyParams& params, APIType api_type) { - WriteHeader(code, api_type); - WriteSampleFunction(code, params, api_type); - code.Write("void main()\n" "{{\n" " int2 sampleUv;\n" " int2 uv1 = int2(gl_FragCoord.xy);\n"); - const int blkW = TexDecoder_GetEFBCopyBlockWidthInTexels(format); - const int blkH = TexDecoder_GetEFBCopyBlockHeightInTexels(format); - int samples = GetEncodedSampleCount(format); + const int blkW = TexDecoder_GetEFBCopyBlockWidthInTexels(params.copy_format); + const int blkH = TexDecoder_GetEFBCopyBlockHeightInTexels(params.copy_format); + int samples = GetEncodedSampleCount(params.copy_format); code.Write(" int x_block_position = (uv1.x >> {}) << {};\n", IntLog2(blkH * blkW / samples), IntLog2(blkW)); @@ -243,146 +250,13 @@ static void WriteSampleColor(ShaderCode& code, std::string_view color_comp, std: code.Write(" {} = SampleEFB(uv0, pixel_size, {}).{};\n", dest, x_offset, color_comp); } -static void WriteColorToIntensity(ShaderCode& code, std::string_view src, std::string_view dest) -{ - if (!IntensityConstantAdded) - { - code.Write(" float4 IntensityConst = float4(0.257f,0.504f,0.098f,0.0625f);\n"); - IntensityConstantAdded = true; - } - code.Write(" {} = dot(IntensityConst.rgb, {}.rgb);\n", dest, src); - // don't add IntensityConst.a yet, because doing it later is faster and uses less instructions, - // due to vectorization -} - static void WriteToBitDepth(ShaderCode& code, u8 depth, std::string_view src, std::string_view dest) { code.Write(" {} = floor({} * 255.0 / exp2(8.0 - {}.0));\n", dest, src, depth); } -static void WriteEncoderEnd(ShaderCode& code) -{ - code.Write("}}\n"); - IntensityConstantAdded = false; -} - -static void WriteI8Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::R8, api_type); - code.Write(" float3 texSample;\n"); - - WriteSampleColor(code, "rgb", "texSample", 0, api_type, params); - WriteColorToIntensity(code, "texSample", "ocol0.b"); - - WriteSampleColor(code, "rgb", "texSample", 1, api_type, params); - WriteColorToIntensity(code, "texSample", "ocol0.g"); - - WriteSampleColor(code, "rgb", "texSample", 2, api_type, params); - WriteColorToIntensity(code, "texSample", "ocol0.r"); - - WriteSampleColor(code, "rgb", "texSample", 3, api_type, params); - WriteColorToIntensity(code, "texSample", "ocol0.a"); - - // See WriteColorToIntensity - code.Write(" ocol0.rgba += IntensityConst.aaaa;\n"); - - WriteEncoderEnd(code); -} - -static void WriteI4Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::R4, api_type); - code.Write(" float3 texSample;\n" - " float4 color0;\n" - " float4 color1;\n"); - - WriteSampleColor(code, "rgb", "texSample", 0, api_type, params); - WriteColorToIntensity(code, "texSample", "color0.b"); - - WriteSampleColor(code, "rgb", "texSample", 1, api_type, params); - WriteColorToIntensity(code, "texSample", "color1.b"); - - WriteSampleColor(code, "rgb", "texSample", 2, api_type, params); - WriteColorToIntensity(code, "texSample", "color0.g"); - - WriteSampleColor(code, "rgb", "texSample", 3, api_type, params); - WriteColorToIntensity(code, "texSample", "color1.g"); - - WriteSampleColor(code, "rgb", "texSample", 4, api_type, params); - WriteColorToIntensity(code, "texSample", "color0.r"); - - WriteSampleColor(code, "rgb", "texSample", 5, api_type, params); - WriteColorToIntensity(code, "texSample", "color1.r"); - - WriteSampleColor(code, "rgb", "texSample", 6, api_type, params); - WriteColorToIntensity(code, "texSample", "color0.a"); - - WriteSampleColor(code, "rgb", "texSample", 7, api_type, params); - WriteColorToIntensity(code, "texSample", "color1.a"); - - code.Write(" color0.rgba += IntensityConst.aaaa;\n" - " color1.rgba += IntensityConst.aaaa;\n"); - - WriteToBitDepth(code, 4, "color0", "color0"); - WriteToBitDepth(code, 4, "color1", "color1"); - - code.Write(" ocol0 = (color0 * 16.0 + color1) / 255.0;\n"); - WriteEncoderEnd(code); -} - -static void WriteIA8Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::RA8, api_type); - code.Write(" float4 texSample;\n"); - - WriteSampleColor(code, "rgba", "texSample", 0, api_type, params); - code.Write(" ocol0.b = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "ocol0.g"); - - WriteSampleColor(code, "rgba", "texSample", 1, api_type, params); - code.Write(" ocol0.r = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "ocol0.a"); - - code.Write(" ocol0.ga += IntensityConst.aa;\n"); - - WriteEncoderEnd(code); -} - -static void WriteIA4Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::RA4, api_type); - code.Write(" float4 texSample;\n" - " float4 color0;\n" - " float4 color1;\n"); - - WriteSampleColor(code, "rgba", "texSample", 0, api_type, params); - code.Write(" color0.b = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "color1.b"); - - WriteSampleColor(code, "rgba", "texSample", 1, api_type, params); - code.Write(" color0.g = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "color1.g"); - - WriteSampleColor(code, "rgba", "texSample", 2, api_type, params); - code.Write(" color0.r = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "color1.r"); - - WriteSampleColor(code, "rgba", "texSample", 3, api_type, params); - code.Write(" color0.a = texSample.a;\n"); - WriteColorToIntensity(code, "texSample", "color1.a"); - - code.Write(" color1.rgba += IntensityConst.aaaa;\n"); - - WriteToBitDepth(code, 4, "color0", "color0"); - WriteToBitDepth(code, 4, "color1", "color1"); - - code.Write(" ocol0 = (color0 * 16.0 + color1) / 255.0;\n"); - WriteEncoderEnd(code); -} - static void WriteRGB565Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::RGB565, api_type); code.Write(" float3 texSample0;\n" " float3 texSample1;\n"); @@ -402,13 +276,10 @@ static void WriteRGB565Encoder(ShaderCode& code, APIType api_type, const EFBCopy code.Write(" ocol0.ga = ocol0.ga + gLower * 32.0;\n"); code.Write(" ocol0 = ocol0 / 255.0;\n"); - WriteEncoderEnd(code); } static void WriteRGB5A3Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::RGB5A3, api_type); - code.Write(" float4 texSample;\n" " float color0;\n" " float gUpper;\n" @@ -466,13 +337,10 @@ static void WriteRGB5A3Encoder(ShaderCode& code, APIType api_type, const EFBCopy code.Write("}}\n"); code.Write(" ocol0 = ocol0 / 255.0;\n"); - WriteEncoderEnd(code); } static void WriteRGBA8Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::RGBA8, api_type); - code.Write(" float4 texSample;\n" " float4 color0;\n" " float4 color1;\n"); @@ -490,14 +358,11 @@ static void WriteRGBA8Encoder(ShaderCode& code, APIType api_type, const EFBCopyP " color1.a = texSample.b;\n"); code.Write(" ocol0 = first ? color0 : color1;\n"); - - WriteEncoderEnd(code); } static void WriteC4Encoder(ShaderCode& code, std::string_view comp, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::R4, api_type); code.Write(" float4 color0;\n" " float4 color1;\n"); @@ -514,26 +379,20 @@ static void WriteC4Encoder(ShaderCode& code, std::string_view comp, APIType api_ WriteToBitDepth(code, 4, "color1", "color1"); code.Write(" ocol0 = (color0 * 16.0 + color1) / 255.0;\n"); - WriteEncoderEnd(code); } static void WriteC8Encoder(ShaderCode& code, std::string_view comp, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::R8, api_type); - WriteSampleColor(code, comp, "ocol0.b", 0, api_type, params); WriteSampleColor(code, comp, "ocol0.g", 1, api_type, params); WriteSampleColor(code, comp, "ocol0.r", 2, api_type, params); WriteSampleColor(code, comp, "ocol0.a", 3, api_type, params); - - WriteEncoderEnd(code); } static void WriteCC4Encoder(ShaderCode& code, std::string_view comp, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::RA4, api_type); code.Write(" float2 texSample;\n" " float4 color0;\n" " float4 color1;\n"); @@ -558,198 +417,52 @@ static void WriteCC4Encoder(ShaderCode& code, std::string_view comp, APIType api WriteToBitDepth(code, 4, "color1", "color1"); code.Write(" ocol0 = (color0 * 16.0 + color1) / 255.0;\n"); - WriteEncoderEnd(code); } static void WriteCC8Encoder(ShaderCode& code, std::string_view comp, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::RA8, api_type); - WriteSampleColor(code, comp, "ocol0.bg", 0, api_type, params); WriteSampleColor(code, comp, "ocol0.ra", 1, api_type, params); - - WriteEncoderEnd(code); -} - -static void WriteZ8Encoder(ShaderCode& code, std::string_view multiplier, APIType api_type, - const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::G8, api_type); - - code.Write(" float depth;\n"); - - WriteSampleColor(code, "r", "depth", 0, api_type, params); - code.Write("ocol0.b = frac(depth * {});\n", multiplier); - - WriteSampleColor(code, "r", "depth", 1, api_type, params); - code.Write("ocol0.g = frac(depth * {});\n", multiplier); - - WriteSampleColor(code, "r", "depth", 2, api_type, params); - code.Write("ocol0.r = frac(depth * {});\n", multiplier); - - WriteSampleColor(code, "r", "depth", 3, api_type, params); - code.Write("ocol0.a = frac(depth * {});\n", multiplier); - - WriteEncoderEnd(code); -} - -static void WriteZ16Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::RA8, api_type); - - code.Write(" float depth;\n" - " float3 expanded;\n"); - - // Byte order is reversed - - WriteSampleColor(code, "r", "depth", 0, api_type, params); - - code.Write(" depth *= 16777216.0;\n" - " expanded.r = floor(depth / (256.0 * 256.0));\n" - " depth -= expanded.r * 256.0 * 256.0;\n" - " expanded.g = floor(depth / 256.0);\n"); - - code.Write(" ocol0.b = expanded.g / 255.0;\n" - " ocol0.g = expanded.r / 255.0;\n"); - - WriteSampleColor(code, "r", "depth", 1, api_type, params); - - code.Write(" depth *= 16777216.0;\n" - " expanded.r = floor(depth / (256.0 * 256.0));\n" - " depth -= expanded.r * 256.0 * 256.0;\n" - " expanded.g = floor(depth / 256.0);\n"); - - code.Write(" ocol0.r = expanded.g / 255.0;\n" - " ocol0.a = expanded.r / 255.0;\n"); - - WriteEncoderEnd(code); -} - -static void WriteZ16LEncoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::GB8, api_type); - - code.Write(" float depth;\n" - " float3 expanded;\n"); - - // Byte order is reversed - - WriteSampleColor(code, "r", "depth", 0, api_type, params); - - code.Write(" depth *= 16777216.0;\n" - " expanded.r = floor(depth / (256.0 * 256.0));\n" - " depth -= expanded.r * 256.0 * 256.0;\n" - " expanded.g = floor(depth / 256.0);\n" - " depth -= expanded.g * 256.0;\n" - " expanded.b = depth;\n"); - - code.Write(" ocol0.b = expanded.b / 255.0;\n" - " ocol0.g = expanded.g / 255.0;\n"); - - WriteSampleColor(code, "r", "depth", 1, api_type, params); - - code.Write(" depth *= 16777216.0;\n" - " expanded.r = floor(depth / (256.0 * 256.0));\n" - " depth -= expanded.r * 256.0 * 256.0;\n" - " expanded.g = floor(depth / 256.0);\n" - " depth -= expanded.g * 256.0;\n" - " expanded.b = depth;\n"); - - code.Write(" ocol0.r = expanded.b / 255.0;\n" - " ocol0.a = expanded.g / 255.0;\n"); - - WriteEncoderEnd(code); -} - -static void WriteZ24Encoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) -{ - WriteSwizzler(code, params, EFBCopyFormat::RGBA8, api_type); - - code.Write(" float depth0;\n" - " float depth1;\n" - " float3 expanded0;\n" - " float3 expanded1;\n"); - - WriteSampleColor(code, "r", "depth0", 0, api_type, params); - WriteSampleColor(code, "r", "depth1", 1, api_type, params); - - for (int i = 0; i < 2; i++) - { - code.Write(" depth{} *= 16777216.0;\n", i); - - code.Write(" expanded{}.r = floor(depth{} / (256.0 * 256.0));\n", i, i); - code.Write(" depth{} -= expanded{}.r * 256.0 * 256.0;\n", i, i); - code.Write(" expanded{}.g = floor(depth{} / 256.0);\n", i, i); - code.Write(" depth{} -= expanded{}.g * 256.0;\n", i, i); - code.Write(" expanded{}.b = depth{};\n", i, i); - } - - code.Write(" if (!first) {{\n"); - // Upper 16 - code.Write(" ocol0.b = expanded0.g / 255.0;\n" - " ocol0.g = expanded0.b / 255.0;\n" - " ocol0.r = expanded1.g / 255.0;\n" - " ocol0.a = expanded1.b / 255.0;\n" - " }} else {{\n"); - // Lower 8 - code.Write(" ocol0.b = 1.0;\n" - " ocol0.g = expanded0.r / 255.0;\n" - " ocol0.r = 1.0;\n" - " ocol0.a = expanded1.r / 255.0;\n" - " }}\n"); - - WriteEncoderEnd(code); } static void WriteXFBEncoder(ShaderCode& code, APIType api_type, const EFBCopyParams& params) { - WriteSwizzler(code, params, EFBCopyFormat::XFB, api_type); - - code.Write("float3 color0, color1;\n"); - WriteSampleColor(code, "rgb", "color0", 0, api_type, params); - WriteSampleColor(code, "rgb", "color1", 1, api_type, params); - - // Gamma is only applied to XFB copies. - code.Write(" color0 = pow(abs(color0), float3(gamma_rcp, gamma_rcp, gamma_rcp));\n" - " color1 = pow(abs(color1), float3(gamma_rcp, gamma_rcp, gamma_rcp));\n"); + code.Write("float4 color0 = float4(0, 0, 0, 1), color1 = float4(0, 0, 0, 1);\n"); + WriteSampleColor(code, "rgb", "color0.rgb", 0, api_type, params); + WriteSampleColor(code, "rgb", "color1.rgb", 1, api_type, params); // Convert to YUV. - code.Write(" const float3 y_const = float3(0.257, 0.504, 0.098);\n" - " const float3 u_const = float3(-0.148, -0.291, 0.439);\n" - " const float3 v_const = float3(0.439, -0.368, -0.071);\n" - " float3 average = (color0 + color1) * 0.5;\n" - " ocol0.b = dot(color0, y_const) + 0.0625;\n" - " ocol0.g = dot(average, u_const) + 0.5;\n" - " ocol0.r = dot(color1, y_const) + 0.0625;\n" - " ocol0.a = dot(average, v_const) + 0.5;\n"); - - WriteEncoderEnd(code); + code.Write(" // Intensity/YUV format conversion constants determined by hardware testing\n" + " const float4 y_const = float4( 66, 129, 25, 16);\n" + " const float4 u_const = float4(-38, -74, 112, 128);\n" + " const float4 v_const = float4(112, -94, -18, 128);\n" + " float4 average = (color0 + color1) * 0.5;\n" + " // TODO: check rounding\n" + " ocol0.b = round(dot(color0, y_const)) / 256.0;\n" + " ocol0.g = round(dot(average, u_const)) / 256.0;\n" + " ocol0.r = round(dot(color1, y_const)) / 256.0;\n" + " ocol0.a = round(dot(average, v_const)) / 256.0;\n"); } std::string GenerateEncodingShader(const EFBCopyParams& params, APIType api_type) { ShaderCode code; + WriteHeader(code, api_type); + WriteSampleFunction(code, params, api_type); + WriteSwizzler(code, params, api_type); + switch (params.copy_format) { case EFBCopyFormat::R4: - if (params.yuv) - WriteI4Encoder(code, api_type, params); - else - WriteC4Encoder(code, "r", api_type, params); + WriteC4Encoder(code, "r", api_type, params); break; case EFBCopyFormat::RA4: - if (params.yuv) - WriteIA4Encoder(code, api_type, params); - else - WriteCC4Encoder(code, "ar", api_type, params); + WriteCC4Encoder(code, "ar", api_type, params); break; case EFBCopyFormat::RA8: - if (params.yuv) - WriteIA8Encoder(code, api_type, params); - else - WriteCC8Encoder(code, "ar", api_type, params); + WriteCC8Encoder(code, "ar", api_type, params); break; case EFBCopyFormat::RGB565: WriteRGB565Encoder(code, api_type, params); @@ -758,44 +471,26 @@ std::string GenerateEncodingShader(const EFBCopyParams& params, APIType api_type WriteRGB5A3Encoder(code, api_type, params); break; case EFBCopyFormat::RGBA8: - if (params.depth) - WriteZ24Encoder(code, api_type, params); - else - WriteRGBA8Encoder(code, api_type, params); + WriteRGBA8Encoder(code, api_type, params); break; case EFBCopyFormat::A8: WriteC8Encoder(code, "a", api_type, params); break; case EFBCopyFormat::R8_0x1: case EFBCopyFormat::R8: - if (params.yuv) - WriteI8Encoder(code, api_type, params); - else - WriteC8Encoder(code, "r", api_type, params); + WriteC8Encoder(code, "r", api_type, params); break; case EFBCopyFormat::G8: - if (params.depth) - WriteZ8Encoder(code, "256.0", api_type, params); // Z8M - else - WriteC8Encoder(code, "g", api_type, params); + WriteC8Encoder(code, "g", api_type, params); break; case EFBCopyFormat::B8: - if (params.depth) - WriteZ8Encoder(code, "65536.0", api_type, params); // Z8L - else - WriteC8Encoder(code, "b", api_type, params); + WriteC8Encoder(code, "b", api_type, params); break; case EFBCopyFormat::RG8: - if (params.depth) - WriteZ16Encoder(code, api_type, params); // Z16H - else - WriteCC8Encoder(code, "gr", api_type, params); + WriteCC8Encoder(code, "gr", api_type, params); break; case EFBCopyFormat::GB8: - if (params.depth) - WriteZ16LEncoder(code, api_type, params); // Z16L - else - WriteCC8Encoder(code, "bg", api_type, params); + WriteCC8Encoder(code, "bg", api_type, params); break; case EFBCopyFormat::XFB: WriteXFBEncoder(code, api_type, params); @@ -805,6 +500,8 @@ std::string GenerateEncodingShader(const EFBCopyParams& params, APIType api_type break; } + code.Write("}}\n"); + return code.GetBuffer(); } From 2f43889141179bd46f027e017fead35371fdd104 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 20:40:07 -0800 Subject: [PATCH 398/659] Software: Use hardware-verified numbers for RGB->YUV conversion --- Source/Core/VideoBackends/Software/EfbInterface.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/Software/EfbInterface.cpp b/Source/Core/VideoBackends/Software/EfbInterface.cpp index 1e5498e28a..399e0bb57f 100644 --- a/Source/Core/VideoBackends/Software/EfbInterface.cpp +++ b/Source/Core/VideoBackends/Software/EfbInterface.cpp @@ -535,9 +535,14 @@ static yuv444 ConvertColorToYUV(u32 color) // GameCube/Wii uses the BT.601 standard algorithm for converting to YCbCr; see // http://www.equasys.de/colorconversion.html#YCbCr-RGBColorFormatConversion - return {static_cast(0.257f * red + 0.504f * green + 0.098f * blue), - static_cast(-0.148f * red + -0.291f * green + 0.439f * blue), - static_cast(0.439f * red + -0.368f * green + -0.071f * blue)}; + // These numbers were determined by hardware testing + const u16 y = +66 * red + 129 * green + +25 * blue; + const s16 u = -38 * red + -74 * green + 112 * blue; + const s16 v = 112 * red + -94 * green + -18 * blue; + const u8 y_round = static_cast((y >> 8) + ((y >> 7) & 1)); + const s8 u_round = static_cast((u >> 8) + ((u >> 7) & 1)); + const s8 v_round = static_cast((v >> 8) + ((v >> 7) & 1)); + return {y_round, u_round, v_round}; } u32 GetDepth(u16 x, u16 y) From a6e06f38adb933187605ac07ef7a0cb1940afa80 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 22 Feb 2022 20:42:23 -0800 Subject: [PATCH 399/659] Add notes about precision of YUV->RGB conversion factors for XFB --- Source/Core/VideoCommon/TextureConversionShader.cpp | 2 ++ Source/Core/VideoCommon/TextureDecoder_Common.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index c1aac4482a..6cabb4ce88 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -968,6 +968,8 @@ static const std::map s_decoding_shader_info{ // We do the inverse BT.601 conversion for YCbCr to RGB // http://www.equasys.de/colorconversion.html#YCbCr-RGBColorFormatConversion + // TODO: Use more precise numbers for this conversion (although on real hardware, the XFB isn't + // in a real texture format, so does this conversion actually ever happen?) {TextureFormat::XFB, {TEXEL_BUFFER_FORMAT_RGBA8_UINT, 0, 8, 8, false, R"( diff --git a/Source/Core/VideoCommon/TextureDecoder_Common.cpp b/Source/Core/VideoCommon/TextureDecoder_Common.cpp index 51ea0572f2..30121aeb7b 100644 --- a/Source/Core/VideoCommon/TextureDecoder_Common.cpp +++ b/Source/Core/VideoCommon/TextureDecoder_Common.cpp @@ -629,6 +629,8 @@ void TexDecoder_DecodeTexel(u8* dst, const u8* src, int s, int t, int imageWidth // We do the inverse BT.601 conversion for YCbCr to RGB // http://www.equasys.de/colorconversion.html#YCbCr-RGBColorFormatConversion + // TODO: Use more precise numbers for this conversion (although on real hardware, the XFB isn't + // in a real texture format, so does this conversion actually ever happen?) u8 R = std::clamp(int(1.164f * Y + 1.596f * V), 0, 255); u8 G = std::clamp(int(1.164f * Y - 0.392f * U - 0.813f * V), 0, 255); u8 B = std::clamp(int(1.164f * Y + 2.017f * U), 0, 255); @@ -694,6 +696,8 @@ void TexDecoder_DecodeXFB(u8* dst, const u8* src, u32 width, u32 height, u32 str // We do the inverse BT.601 conversion for YCbCr to RGB // http://www.equasys.de/colorconversion.html#YCbCr-RGBColorFormatConversion + // TODO: Use more precise numbers for this conversion (although on real hardware, the XFB + // isn't in a real texture format, so does this conversion actually ever happen?) u8 R1 = static_cast(std::clamp(int(1.164f * Y1 + 1.596f * V), 0, 255)); u8 G1 = static_cast(std::clamp(int(1.164f * Y1 - 0.392f * U - 0.813f * V), 0, 255)); u8 B1 = static_cast(std::clamp(int(1.164f * Y1 + 2.017f * U), 0, 255)); From 60aaa308bf964a9888b065420837c61a086c18ff Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 16 Jul 2022 04:00:26 -0400 Subject: [PATCH 400/659] WiiPane: Trim automatic SD sync checkbox string --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 9549a4e540..29ff42a0b9 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -193,8 +193,9 @@ void WiiPane::CreateSDCard() ++row; } - m_sync_sd_folder_checkbox = - new QCheckBox(tr("Automatically sync with Folder on emulation start and end")); + m_sync_sd_folder_checkbox = new QCheckBox(tr("Automatically Sync with Folder")); + m_sync_sd_folder_checkbox->setToolTip( + tr("Synchronizes the SD Card with the SD Sync Folder when starting and ending emulation.")); sd_settings_group_layout->addWidget(m_sync_sd_folder_checkbox, row, 0, 1, 2); ++row; From 2eecfc8595d870106420e473074a98bcc0e2dddc Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 16 Jul 2022 04:08:55 -0400 Subject: [PATCH 401/659] WiiPane: Adjust capitalization of conversion buttons and alert titles --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 29ff42a0b9..2c40a29ca6 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -195,7 +195,7 @@ void WiiPane::CreateSDCard() m_sync_sd_folder_checkbox = new QCheckBox(tr("Automatically Sync with Folder")); m_sync_sd_folder_checkbox->setToolTip( - tr("Synchronizes the SD Card with the SD Sync Folder when starting and ending emulation.")); + tr("Synchronizes the SD Card with the SD Sync Folder when starting and ending emulation.")); sd_settings_group_layout->addWidget(m_sync_sd_folder_checkbox, row, 0, 1, 2); ++row; @@ -215,11 +215,11 @@ void WiiPane::CreateSDCard() ++row; } - QPushButton* pack_now = new NonDefaultQPushButton(tr("Convert Folder to File now")); - QPushButton* unpack_now = new NonDefaultQPushButton(tr("Convert File to Folder now")); + QPushButton* pack_now = new NonDefaultQPushButton(tr("Convert Folder to File Now")); + QPushButton* unpack_now = new NonDefaultQPushButton(tr("Convert File to Folder Now")); connect(pack_now, &QPushButton::clicked, [this] { auto result = ModalMessageBox::warning( - this, tr("Convert Folder to File now"), + this, tr("Convert Folder to File Now"), tr("You are about to convert the content of the folder at %1 into the file at %2. All " "current content of the file will be deleted. Are you sure you want to continue?") .arg(QString::fromStdString(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX))) @@ -228,12 +228,12 @@ void WiiPane::CreateSDCard() if (result == QMessageBox::Yes) { if (!Common::SyncSDFolderToSDImage(false)) - ModalMessageBox::warning(this, tr("Convert Folder to File now"), tr("Conversion failed.")); + ModalMessageBox::warning(this, tr("Convert Folder to File Now"), tr("Conversion failed.")); } }); connect(unpack_now, &QPushButton::clicked, [this] { auto result = ModalMessageBox::warning( - this, tr("Convert File to Folder now"), + this, tr("Convert File to Folder Now"), tr("You are about to convert the content of the file at %2 into the folder at %1. All " "current content of the folder will be deleted. Are you sure you want to continue?") .arg(QString::fromStdString(File::GetUserPath(D_WIISDCARDSYNCFOLDER_IDX))) @@ -242,7 +242,7 @@ void WiiPane::CreateSDCard() if (result == QMessageBox::Yes) { if (!Common::SyncSDImageToSDFolder()) - ModalMessageBox::warning(this, tr("Convert File to Folder now"), tr("Conversion failed.")); + ModalMessageBox::warning(this, tr("Convert File to Folder Now"), tr("Conversion failed.")); } }); sd_settings_group_layout->addWidget(pack_now, row, 0, 1, 1); From c2b32916aa02ab5a0fe54285e945611fba70e0fd Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 16 Jul 2022 11:27:20 +0200 Subject: [PATCH 402/659] Android: Add subheadings to Wii config --- .../features/settings/ui/SettingsFragmentPresenter.java | 5 +++++ Source/Android/app/src/main/res/values/strings.xml | 3 +++ 2 files changed, 8 insertions(+) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index 61f3098f0a..83ae49b2d4 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -429,6 +429,7 @@ public final class SettingsFragmentPresenter private void addWiiSettings(ArrayList sl) { + sl.add(new HeaderSetting(mContext, R.string.wii_misc_settings, 0)); sl.add(new SingleChoiceSetting(mContext, IntSetting.SYSCONF_LANGUAGE, R.string.system_language, 0, R.array.wiiSystemLanguageEntries, R.array.wiiSystemLanguageValues)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.SYSCONF_WIDESCREEN, R.string.wii_widescreen, @@ -439,10 +440,14 @@ public final class SettingsFragmentPresenter R.string.wii_screensaver, R.string.wii_screensaver_description)); sl.add(new SingleChoiceSetting(mContext, IntSetting.SYSCONF_SOUND_MODE, R.string.sound_mode, 0, R.array.soundModeEntries, R.array.soundModeValues)); + + sl.add(new HeaderSetting(mContext, R.string.wii_sd_card_settings, 0)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_WII_SD_CARD, R.string.insert_sd_card, R.string.insert_sd_card_description)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_ALLOW_SD_WRITES, R.string.wii_sd_card_allow_writes, 0)); + + sl.add(new HeaderSetting(mContext, R.string.wii_wiimote_settings, 0)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.SYSCONF_WIIMOTE_MOTOR, R.string.wiimote_rumble, 0)); sl.add(new IntSliderSetting(mContext, IntSetting.SYSCONF_SPEAKER_VOLUME, diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 765310156f..17e8d1a5e1 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -132,6 +132,9 @@ GameCube Slot A Device GameCube Slot B Device Wii + Misc Settings + SD Card Settings + Wii Remote Settings Widescreen Changes aspect ratio from 4:3 to 16:9 in games that support it. Use PAL60 Mode (EuRGB60) From 81a20a1d74da79f044ecbb489a17ffc0ff54d1f3 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 17 Jul 2022 09:20:12 +0200 Subject: [PATCH 403/659] VolumeVerifier: Ignore case when looking for IOS on update partition One of the Dragon Quest X expansions (S4SJGD) uses lowercase instead of the usual uppercase for the IOS59 file on its update partition. --- Source/Core/DiscIO/VolumeVerifier.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index fc1eddfb19..4e311722d4 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -640,10 +640,12 @@ bool VolumeVerifier::CheckPartition(const Partition& partition) { const std::string ios_ver_str = std::to_string(ios_ver); const std::string correct_ios = - IsDebugSigned() ? ("firmware.64." + ios_ver_str + ".") : ("IOS" + ios_ver_str + "-"); + IsDebugSigned() ? ("firmware.64." + ios_ver_str + ".") : ("ios" + ios_ver_str + "-"); for (const FileInfo& f : *file_info) { - if (StringBeginsWith(f.GetName(), correct_ios)) + std::string file_name = f.GetName(); + Common::ToLower(&file_name); + if (StringBeginsWith(file_name, correct_ios)) { has_correct_ios = true; break; From 2f3c0cdbc594cdcb76644e1e77aa185a1e50a244 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Tue, 27 Apr 2021 23:43:04 +0200 Subject: [PATCH 404/659] Split out controller initialization to UICommon --- Source/Core/DolphinQt/HotkeyScheduler.cpp | 2 -- Source/Core/DolphinQt/MainWindow.cpp | 26 +++----------- Source/Core/UICommon/UICommon.cpp | 41 +++++++++++++++++++++++ Source/Core/UICommon/UICommon.h | 5 +++ 4 files changed, 50 insertions(+), 24 deletions(-) diff --git a/Source/Core/DolphinQt/HotkeyScheduler.cpp b/Source/Core/DolphinQt/HotkeyScheduler.cpp index c3d2aadcb7..52fd1ac00a 100644 --- a/Source/Core/DolphinQt/HotkeyScheduler.cpp +++ b/Source/Core/DolphinQt/HotkeyScheduler.cpp @@ -48,8 +48,6 @@ constexpr const char* DUBOIS_ALGORITHM_SHADER = "dubois"; HotkeyScheduler::HotkeyScheduler() : m_stop_requested(false) { - HotkeyManagerEmu::Initialize(); - HotkeyManagerEmu::LoadConfig(); HotkeyManagerEmu::Enable(true); } diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index dab8f45c24..281bbc78a8 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -321,24 +321,12 @@ void MainWindow::InitControllers() if (g_controller_interface.IsInit()) return; - g_controller_interface.Initialize(GetWindowSystemInfo(windowHandle())); - if (!g_controller_interface.HasDefaultDevice()) - { - // Note that the CI default device could be still temporarily removed at any time - WARN_LOG_FMT(CONTROLLERINTERFACE, - "No default device has been added in time. EmulatedController(s) defaulting adds" - " input mappings made for a specific default device depending on the platform"); - } - GCAdapter::Init(); - Pad::Initialize(); - Pad::InitializeGBA(); - Keyboard::Initialize(); - Wiimote::Initialize(Wiimote::InitializeMode::DO_NOT_WAIT_FOR_WIIMOTES); - FreeLook::Initialize(); + UICommon::InitControllers(GetWindowSystemInfo(windowHandle())); + m_hotkey_scheduler = new HotkeyScheduler(); m_hotkey_scheduler->Start(); - // Defaults won't work reliabily without loading and saving the config first + // Defaults won't work reliably without loading and saving the config first Wiimote::LoadConfig(); Wiimote::GetConfig()->SaveConfig(); @@ -362,13 +350,7 @@ void MainWindow::ShutdownControllers() Settings::Instance().UnregisterDevicesChangedCallback(); - Pad::Shutdown(); - Pad::ShutdownGBA(); - Keyboard::Shutdown(); - Wiimote::Shutdown(); - HotkeyManagerEmu::Shutdown(); - FreeLook::Shutdown(); - g_controller_interface.Shutdown(); + UICommon::ShutdownControllers(); m_hotkey_scheduler->deleteLater(); } diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index 469c9b2c67..8d9dc2abb8 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -28,12 +28,18 @@ #include "Core/ConfigLoaders/BaseConfigLoader.h" #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "Core/FreeLookManager.h" +#include "Core/HW/GBAPad.h" +#include "Core/HW/GCKeyboard.h" +#include "Core/HW/GCPad.h" #include "Core/HW/ProcessorInterface.h" #include "Core/HW/Wiimote.h" +#include "Core/HotkeyManager.h" #include "Core/IOS/IOS.h" #include "Core/IOS/STM/STM.h" #include "Core/WiiRoot.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" #include "InputCommon/GCAdapter.h" #include "UICommon/DiscordPresence.h" @@ -128,6 +134,41 @@ void Shutdown() Config::Shutdown(); } +void InitControllers(const WindowSystemInfo& wsi) +{ + if (g_controller_interface.IsInit()) + return; + + g_controller_interface.Initialize(wsi); + + if (!g_controller_interface.HasDefaultDevice()) + { + // Note that the CI default device could be still temporarily removed at any time + WARN_LOG_FMT(CONTROLLERINTERFACE, "No default device has been added in time. Premade control " + "mappings intended for the default device may not work."); + } + + GCAdapter::Init(); + Pad::Initialize(); + Pad::InitializeGBA(); + Keyboard::Initialize(); + Wiimote::Initialize(Wiimote::InitializeMode::DO_NOT_WAIT_FOR_WIIMOTES); + HotkeyManagerEmu::Initialize(); + FreeLook::Initialize(); +} + +void ShutdownControllers() +{ + Pad::Shutdown(); + Pad::ShutdownGBA(); + Keyboard::Shutdown(); + Wiimote::Shutdown(); + HotkeyManagerEmu::Shutdown(); + FreeLook::Shutdown(); + + g_controller_interface.Shutdown(); +} + void SetLocale(std::string locale_name) { auto set_locale = [](const std::string& locale) { diff --git a/Source/Core/UICommon/UICommon.h b/Source/Core/UICommon/UICommon.h index 6bdb11f541..f57518cf14 100644 --- a/Source/Core/UICommon/UICommon.h +++ b/Source/Core/UICommon/UICommon.h @@ -7,11 +7,16 @@ #include "Common/CommonTypes.h" +struct WindowSystemInfo; + namespace UICommon { void Init(); void Shutdown(); +void InitControllers(const WindowSystemInfo& wsi); +void ShutdownControllers(); + #ifdef HAVE_X11 void InhibitScreenSaver(unsigned long win, bool enable); #else From dabad822193f23bd01c13c4d0798f0a507e910eb Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 25 Jun 2022 17:31:31 +0200 Subject: [PATCH 405/659] Require frontend to initialize controllers We currently have two different code paths for initializing controllers: Either the frontend (DolphinQt) can do it, or if the frontend doesn't do it, the core will do it automatically when booting. Having these two paths has caused problems in the past due to only one frontend being tested (see de7ef47548). I would like to get rid of the latter path to avoid further problems like this. --- Source/Android/jni/MainAndroid.cpp | 5 +- Source/Core/Core/Core.cpp | 72 +++++--------------------- Source/Core/DolphinNoGUI/MainNoGUI.cpp | 19 ++++--- 3 files changed, 27 insertions(+), 69 deletions(-) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index 77c373a481..d41ebe4cc9 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -2,7 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include -#include #include #include #include @@ -56,13 +55,13 @@ #include "InputCommon/ControllerInterface/Touch/ButtonManager.h" #include "InputCommon/GCAdapter.h" +#include "UICommon/GameFile.h" #include "UICommon/UICommon.h" #include "VideoCommon/OnScreenDisplay.h" #include "VideoCommon/RenderBase.h" #include "VideoCommon/VideoBackendBase.h" -#include "../../Core/Common/WindowSystemInfo.h" #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" @@ -521,7 +520,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Initialize(J Common::AndroidSetReportHandler(&ReportSend); DolphinAnalytics::AndroidSetGetValFunc(&GetAnalyticValue); UICommon::Init(); - GCAdapter::Init(); + UICommon::InitControllers(WindowSystemInfo(WindowSystemType::Android, nullptr, nullptr, nullptr)); } JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_ReportStartToAnalytics(JNIEnv*, diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index f2a9ec334d..e445749d8d 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -20,6 +20,7 @@ #include "AudioCommon/AudioCommon.h" +#include "Common/Assert.h" #include "Common/CPUDetect.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" @@ -470,26 +471,14 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi DeclareAsCPUThread(); s_frame_step = false; - // The frontend will likely have initialized the controller interface, as it needs - // it to provide the configuration dialogs. In this case, instead of re-initializing - // entirely, we switch the window used for inputs to the render window. This way, the - // cursor position is relative to the render window, instead of the main window. - bool init_controllers = false; - if (!g_controller_interface.IsInit()) - { - g_controller_interface.Initialize(wsi); - Pad::Initialize(); - Pad::InitializeGBA(); - Keyboard::Initialize(); - init_controllers = true; - } - else - { - g_controller_interface.ChangeWindow(wsi.render_window); - Pad::LoadConfig(); - Pad::LoadGBAConfig(); - Keyboard::LoadConfig(); - } + // Switch the window used for inputs to the render window. This way, the cursor position + // is relative to the render window, instead of the main window. + ASSERT(g_controller_interface.IsInit()); + g_controller_interface.ChangeWindow(wsi.render_window); + + Pad::LoadConfig(); + Pad::LoadGBAConfig(); + Keyboard::LoadConfig(); BootSessionData boot_session_data = std::move(boot->boot_session_data); const std::optional& savestate_path = boot_session_data.GetSavestatePath(); @@ -506,53 +495,16 @@ static void EmuThread(std::unique_ptr boot, WindowSystemInfo wsi Common::SyncSDImageToSDFolder(); }}; - // Load and Init Wiimotes - only if we are booting in Wii mode - bool init_wiimotes = false; + // Load Wiimotes - only if we are booting in Wii mode if (core_parameter.bWii && !Config::Get(Config::MAIN_BLUETOOTH_PASSTHROUGH_ENABLED)) { - if (init_controllers) - { - Wiimote::Initialize(savestate_path ? Wiimote::InitializeMode::DO_WAIT_FOR_WIIMOTES : - Wiimote::InitializeMode::DO_NOT_WAIT_FOR_WIIMOTES); - init_wiimotes = true; - } - else - { - Wiimote::LoadConfig(); - } + Wiimote::LoadConfig(); if (NetPlay::IsNetPlayRunning()) NetPlay::SetupWiimotes(); } - if (init_controllers) - { - FreeLook::Initialize(); - } - else - { - FreeLook::LoadInputConfig(); - } - - Common::ScopeGuard controller_guard{[init_controllers, init_wiimotes] { - if (!init_controllers) - return; - - if (init_wiimotes) - { - Wiimote::ResetAllWiimotes(); - Wiimote::Shutdown(); - } - - FreeLook::Shutdown(); - - ResetRumble(); - - Keyboard::Shutdown(); - Pad::Shutdown(); - Pad::ShutdownGBA(); - g_controller_interface.Shutdown(); - }}; + FreeLook::LoadInputConfig(); Movie::Init(*boot); Common::ScopeGuard movie_guard{&Movie::Shutdown}; diff --git a/Source/Core/DolphinNoGUI/MainNoGUI.cpp b/Source/Core/DolphinNoGUI/MainNoGUI.cpp index cec4788f1c..03ea30ec17 100644 --- a/Source/Core/DolphinNoGUI/MainNoGUI.cpp +++ b/Source/Core/DolphinNoGUI/MainNoGUI.cpp @@ -17,6 +17,7 @@ #include #endif +#include "Common/ScopeGuard.h" #include "Common/StringUtil.h" #include "Core/Boot/Boot.h" #include "Core/BootManager.h" @@ -226,10 +227,6 @@ int main(int argc, char* argv[]) if (options.is_set("user")) user_directory = static_cast(options.get("user")); - UICommon::SetUserDirectory(user_directory); - UICommon::Init(); - GCAdapter::Init(); - s_platform = GetPlatform(options); if (!s_platform || !s_platform->Init()) { @@ -237,6 +234,17 @@ int main(int argc, char* argv[]) return 1; } + const WindowSystemInfo wsi = s_platform->GetWindowSystemInfo(); + + UICommon::SetUserDirectory(user_directory); + UICommon::Init(); + UICommon::InitControllers(wsi); + + Common::ScopeGuard ui_common_guard([] { + UICommon::ShutdownControllers(); + UICommon::Shutdown(); + }); + if (save_state_path && !game_specified) { fprintf(stderr, "A save state cannot be loaded without specifying a game to launch.\n"); @@ -263,7 +271,7 @@ int main(int argc, char* argv[]) DolphinAnalytics::Instance().ReportDolphinStart("nogui"); - if (!BootManager::BootCore(std::move(boot), s_platform->GetWindowSystemInfo())) + if (!BootManager::BootCore(std::move(boot), wsi)) { fprintf(stderr, "Could not boot the specified file\n"); return 1; @@ -278,7 +286,6 @@ int main(int argc, char* argv[]) Core::Shutdown(); s_platform.reset(); - UICommon::Shutdown(); return 0; } From 319288de8ef70cd965badab53836eaf334cd54e2 Mon Sep 17 00:00:00 2001 From: Joon Park Date: Sun, 17 Jul 2022 08:53:43 -0400 Subject: [PATCH 406/659] Fix OpenGL error on M1 Mac. Followup to #10466. Resolves the following error: ERROR: 0:85: '&' does not operate on 'uvec3' and 'int' --- Source/Core/VideoCommon/TextureConversionShader.cpp | 2 +- Source/Core/VideoCommon/TextureConverterShaderGen.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 6cabb4ce88..b9c74d1209 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -182,7 +182,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A " dot(u_const, float4(texcol_raw.rgb, 256)),\n" " dot(v_const, float4(texcol_raw.rgb, 256)));\n" " // Divide by 256 and round .5 and higher up\n" - " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1);\n"); + " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1u);\n"); } code.Write(" return float4(texcol_raw) / 255.0;\n"); diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index 3bee37060a..92d30895fb 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -161,7 +161,7 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) " dot(u_const, float4(texcol_raw.rgb, 256)),\n" " dot(v_const, float4(texcol_raw.rgb, 256)));\n" " // Divide by 256 and round .5 and higher up\n" - " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1);\n"); + " texcol_raw.rgb = (texcol_raw.rgb >> 8) + ((texcol_raw.rgb >> 7) & 1u);\n"); } switch (uid_data->dst_format) From 88c85ce471f73c16694a0a3505b3e2ecc2da1563 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 17 Jul 2022 20:50:53 -0500 Subject: [PATCH 407/659] VideoCommon: Fix IsDualSrc check for dst blend factors --- Source/Core/VideoCommon/RenderState.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Source/Core/VideoCommon/RenderState.cpp b/Source/Core/VideoCommon/RenderState.cpp index 7df51a1503..85e9adee15 100644 --- a/Source/Core/VideoCommon/RenderState.cpp +++ b/Source/Core/VideoCommon/RenderState.cpp @@ -32,16 +32,7 @@ static bool IsDualSrc(SrcBlendFactor factor) static bool IsDualSrc(DstBlendFactor factor) { - switch (factor) - { - case DstBlendFactor::SrcClr: - case DstBlendFactor::SrcAlpha: - case DstBlendFactor::InvSrcClr: - case DstBlendFactor::InvSrcAlpha: - return true; - default: - return false; - } + return factor == DstBlendFactor::SrcAlpha || factor == DstBlendFactor::InvSrcAlpha; } bool BlendingState::RequiresDualSrc() const From ad3e202af017e0fa3b43477f78a6df34696c9b86 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 17 Jul 2022 23:39:06 -0700 Subject: [PATCH 408/659] vs likes caps for guids in sln --- Source/dolphin-emu.sln | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index c5b81be381..72f86ec59e 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -79,7 +79,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mgba", "..\Externals\mGBA\m EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fmt", "..\Externals\fmt\fmt.vcxproj", "{4BC5A148-0AB3-440F-A980-A29B4B999190}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv_cross", "..\Externals\spirv_cross\spirv_cross.vcxproj", "{3d780617-ec8c-4721-b9fd-dfc9bb658c7c}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv_cross", "..\Externals\spirv_cross\spirv_cross.vcxproj", "{3D780617-EC8C-4721-B9FD-DFC9BB658C7C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "..\Externals\SDL\SDL2.vcxproj", "{8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}" EndProject From 0a15d2fcecaa0a0ae32891245bb31eee0a1f0ccd Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 17 Jul 2022 19:12:04 -0700 Subject: [PATCH 409/659] cubeb: fix logged source file paths --- Source/Core/AudioCommon/CubebUtils.cpp | 10 ++++++++-- Source/Core/Common/Logging/LogManager.h | 5 ++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/Core/AudioCommon/CubebUtils.cpp b/Source/Core/AudioCommon/CubebUtils.cpp index 7b998b1db9..ffe1e8cfbb 100644 --- a/Source/Core/AudioCommon/CubebUtils.cpp +++ b/Source/Core/AudioCommon/CubebUtils.cpp @@ -22,6 +22,10 @@ static void LogCallback(const char* format, ...) if (instance == nullptr) return; + constexpr auto log_type = Common::Log::LogType::AUDIO; + if (!instance->IsEnabled(log_type)) + return; + va_list args; va_start(args, format); const char* filename = va_arg(args, const char*) + s_path_cutoff_point; @@ -30,8 +34,8 @@ static void LogCallback(const char* format, ...) const std::string message = StringFromFormatV(adapted_format.c_str(), args); va_end(args); - instance->Log(Common::Log::LogLevel::LNOTICE, Common::Log::LogType::AUDIO, filename, lineno, - message.c_str()); + instance->LogWithFullPath(Common::Log::LogLevel::LNOTICE, log_type, filename, lineno, + message.c_str()); } static void DestroyContext(cubeb* ctx) @@ -54,6 +58,8 @@ std::shared_ptr CubebUtils::GetContext() const char* filename = __FILE__; const char* match_point = strstr(filename, DIR_SEP "Source" DIR_SEP "Core" DIR_SEP); + if (!match_point) + match_point = strstr(filename, R"(\Source\Core\)"); if (match_point) { s_path_cutoff_point = match_point - filename + strlen(DIR_SEP "Externals" DIR_SEP); diff --git a/Source/Core/Common/Logging/LogManager.h b/Source/Core/Common/Logging/LogManager.h index be80835552..acda7f7fe1 100644 --- a/Source/Core/Common/Logging/LogManager.h +++ b/Source/Core/Common/Logging/LogManager.h @@ -39,6 +39,8 @@ public: static void Shutdown(); void Log(LogLevel level, LogType type, const char* file, int line, const char* message); + void LogWithFullPath(LogLevel level, LogType type, const char* file, int line, + const char* message); LogLevel GetLogLevel() const; void SetLogLevel(LogLevel level); @@ -73,9 +75,6 @@ private: LogManager(LogManager&&) = delete; LogManager& operator=(LogManager&&) = delete; - void LogWithFullPath(LogLevel level, LogType type, const char* file, int line, - const char* message); - LogLevel m_level; EnumMap m_log{}; std::array m_listeners{}; From 28828435bbe56d959e0dc14938df6a32169fad91 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 17 Jul 2022 19:41:54 -0700 Subject: [PATCH 410/659] Qt/LogWidget: remove extra space --- Source/Core/DolphinQt/Config/LogWidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/Config/LogWidget.cpp b/Source/Core/DolphinQt/Config/LogWidget.cpp index bcb0db6d2c..4e92b2725e 100644 --- a/Source/Core/DolphinQt/Config/LogWidget.cpp +++ b/Source/Core/DolphinQt/Config/LogWidget.cpp @@ -102,7 +102,7 @@ void LogWidget::UpdateLog() const std::string_view str_view(std::get(line)); m_log_text->appendHtml( - QStringLiteral("%1 %3") + QStringLiteral("%1%3") .arg(QStringFromStringView(str_view.substr(0, TIMESTAMP_LENGTH)), QString::fromUtf8(color), QStringFromStringView(str_view.substr(TIMESTAMP_LENGTH)).toHtmlEscaped())); From 1a2bc2eff9a76ae8cd88eff0af24660de4ecd563 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 18 Jul 2022 18:56:50 +0200 Subject: [PATCH 411/659] VideoCommon: Fix CMPR compute shader layout Looks like a copy-paste gone wrong. The compute shaders for the other formats use a group size of 8 * 8, whereas the CMPR compute shader is supposed to use a flattened 64 * 1 as I understand it. --- Source/Core/VideoCommon/TextureConversionShader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index ed97c48144..a88202c8c5 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -1119,7 +1119,7 @@ static const std::map s_decoding_shader_info{ GROUP_SHARED uint2 shared_temp[BLOCKS_PER_GROUP]; - DEFINE_MAIN(GROUP_SIZE, 8) + DEFINE_MAIN(GROUP_SIZE, 1) { uint local_thread_id = gl_LocalInvocationID.x; uint block_in_group = local_thread_id / BLOCK_SIZE; From 9e5bc98496ef59bd2e30e7157b1d33a363ac538f Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 8 Jun 2022 23:07:15 +0200 Subject: [PATCH 412/659] DiscIO/RiivolutionPatcher: Skip main.dol patches if no main.dol was given. --- Source/Core/DiscIO/RiivolutionPatcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DiscIO/RiivolutionPatcher.cpp b/Source/Core/DiscIO/RiivolutionPatcher.cpp index e3d3d88af9..a9593dddcd 100644 --- a/Source/Core/DiscIO/RiivolutionPatcher.cpp +++ b/Source/Core/DiscIO/RiivolutionPatcher.cpp @@ -397,7 +397,7 @@ static void ApplyFilePatchToFST(const Patch& patch, const File& file, if (node) ApplyPatchToFile(patch, file, node); } - else if (CaseInsensitiveEquals(file.m_disc, "main.dol")) + else if (dol_node && CaseInsensitiveEquals(file.m_disc, "main.dol")) { // Special case: If the filename is "main.dol", we want to patch the main executable. ApplyPatchToFile(patch, file, dol_node); From f5c132580ced295a5e795be8cf4c65de7d4624a3 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 9 Jun 2022 00:17:20 +0200 Subject: [PATCH 413/659] DiscIO/DirectoryBlob: Add ContentSource that stores data locally in std::vector. --- Source/Core/DiscIO/DirectoryBlob.cpp | 6 ++++++ Source/Core/DiscIO/DirectoryBlob.h | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 86de55595a..c8facd37de 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -134,6 +134,12 @@ bool DiscContent::Read(u64* offset, u64* length, u8** buffer) const const ContentFixedByte& source = std::get(m_content_source); std::fill_n(*buffer, bytes_to_read, source.m_byte); } + else if (std::holds_alternative(m_content_source)) + { + const ContentByteVector& source = std::get(m_content_source); + std::copy(source.m_bytes.begin() + offset_in_content, + source.m_bytes.begin() + offset_in_content + bytes_to_read, *buffer); + } else { PanicAlertFmt("DirectoryBlob: Invalid content source in DiscContent."); diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index 3e8c4d9292..31e3650b08 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -80,11 +80,18 @@ struct ContentFixedByte u8 m_byte; }; +// Content chunk representing an arbitrary byte sequence that's stored within the struct itself. +struct ContentByteVector +{ + std::vector m_bytes; +}; + using ContentSource = std::variant; struct BuilderContentSource From cc315cb7afa26693979d6faf43bedd6dd50722e1 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 9 Jun 2022 00:25:11 +0200 Subject: [PATCH 414/659] DiscIO/Riivolution: Add dolphin-specific extensions "dolphin_sys_file" and "dolphin_sys_folder" to patch sys files like you would patch regular files. --- Source/Core/Core/Boot/Boot.cpp | 3 ++- Source/Core/DiscIO/RiivolutionParser.cpp | 11 +++++++---- Source/Core/DiscIO/RiivolutionParser.h | 2 ++ Source/Core/DiscIO/RiivolutionPatcher.cpp | 11 ++++++++--- Source/Core/DiscIO/RiivolutionPatcher.h | 8 +++++++- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index 86ea8e2179..94b66bd687 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -701,7 +701,8 @@ void AddRiivolutionPatches(BootParameters* boot_params, disc.volume = DiscIO::CreateDisc(DiscIO::DirectoryBlobReader::Create( std::move(disc.volume), [&](std::vector* fst, DiscIO::FSTBuilderNode* dol_node) { - DiscIO::Riivolution::ApplyPatchesToFiles(riivolution_patches, fst, dol_node); + DiscIO::Riivolution::ApplyPatchesToFiles( + riivolution_patches, DiscIO::Riivolution::PatchIndex::FileSystem, fst, dol_node); })); boot_params->riivolution_patches = std::move(riivolution_patches); } diff --git a/Source/Core/DiscIO/RiivolutionParser.cpp b/Source/Core/DiscIO/RiivolutionParser.cpp index 283e5876df..dacbbbcfc5 100644 --- a/Source/Core/DiscIO/RiivolutionParser.cpp +++ b/Source/Core/DiscIO/RiivolutionParser.cpp @@ -172,9 +172,10 @@ std::optional ParseString(std::string_view xml, std::string xml_path) for (const auto& patch_subnode : patch_node.children()) { const std::string_view patch_name(patch_subnode.name()); - if (patch_name == "file") + if (patch_name == "file" || patch_name == "dolphin_sys_file") { - auto& file = patch.m_file_patches.emplace_back(); + auto& file = patch_name == "dolphin_sys_file" ? patch.m_sys_file_patches.emplace_back() : + patch.m_file_patches.emplace_back(); file.m_disc = patch_subnode.attribute("disc").as_string(); file.m_external = patch_subnode.attribute("external").as_string(); file.m_resize = patch_subnode.attribute("resize").as_bool(true); @@ -183,9 +184,11 @@ std::optional ParseString(std::string_view xml, std::string xml_path) file.m_fileoffset = patch_subnode.attribute("fileoffset").as_uint(0); file.m_length = patch_subnode.attribute("length").as_uint(0); } - else if (patch_name == "folder") + else if (patch_name == "folder" || patch_name == "dolphin_sys_folder") { - auto& folder = patch.m_folder_patches.emplace_back(); + auto& folder = patch_name == "dolphin_sys_folder" ? + patch.m_sys_folder_patches.emplace_back() : + patch.m_folder_patches.emplace_back(); folder.m_disc = patch_subnode.attribute("disc").as_string(); folder.m_external = patch_subnode.attribute("external").as_string(); folder.m_resize = patch_subnode.attribute("resize").as_bool(true); diff --git a/Source/Core/DiscIO/RiivolutionParser.h b/Source/Core/DiscIO/RiivolutionParser.h index f9f03f67c1..9ec6c92959 100644 --- a/Source/Core/DiscIO/RiivolutionParser.h +++ b/Source/Core/DiscIO/RiivolutionParser.h @@ -166,6 +166,8 @@ struct Patch std::vector m_file_patches; std::vector m_folder_patches; + std::vector m_sys_file_patches; + std::vector m_sys_folder_patches; std::vector m_savegame_patches; std::vector m_memory_patches; diff --git a/Source/Core/DiscIO/RiivolutionPatcher.cpp b/Source/Core/DiscIO/RiivolutionPatcher.cpp index a9593dddcd..8ad65f8c57 100644 --- a/Source/Core/DiscIO/RiivolutionPatcher.cpp +++ b/Source/Core/DiscIO/RiivolutionPatcher.cpp @@ -458,15 +458,20 @@ static void ApplyFolderPatchToFST(const Patch& patch, const Folder& folder, ApplyFolderPatchToFST(patch, folder, fst, dol_node, folder.m_disc, folder.m_external); } -void ApplyPatchesToFiles(const std::vector& patches, +void ApplyPatchesToFiles(const std::vector& patches, PatchIndex index, std::vector* fst, DiscIO::FSTBuilderNode* dol_node) { for (const auto& patch : patches) { - for (const auto& file : patch.m_file_patches) + const auto& file_patches = + index == PatchIndex::DolphinSysFiles ? patch.m_sys_file_patches : patch.m_file_patches; + const auto& folder_patches = + index == PatchIndex::DolphinSysFiles ? patch.m_sys_folder_patches : patch.m_folder_patches; + + for (const auto& file : file_patches) ApplyFilePatchToFST(patch, file, fst, dol_node); - for (const auto& folder : patch.m_folder_patches) + for (const auto& folder : folder_patches) ApplyFolderPatchToFST(patch, folder, fst, dol_node); } } diff --git a/Source/Core/DiscIO/RiivolutionPatcher.h b/Source/Core/DiscIO/RiivolutionPatcher.h index 0f3de33caf..0a83ba9d13 100644 --- a/Source/Core/DiscIO/RiivolutionPatcher.h +++ b/Source/Core/DiscIO/RiivolutionPatcher.h @@ -65,7 +65,13 @@ private: std::string m_patch_root; }; -void ApplyPatchesToFiles(const std::vector& patches, +enum class PatchIndex +{ + FileSystem, + DolphinSysFiles, +}; + +void ApplyPatchesToFiles(const std::vector& patches, PatchIndex index, std::vector* fst, DiscIO::FSTBuilderNode* dol_node); void ApplyGeneralMemoryPatches(const std::vector& patches); From ec3cfc01c1d87b038c72f162cefaa631cb788981 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 9 Jun 2022 00:33:30 +0200 Subject: [PATCH 415/659] DiscIO/DirectoryBlob: Add callback to modify sys files before they're added to the disc. --- Source/Core/Core/Boot/Boot.cpp | 4 ++ Source/Core/DiscIO/DirectoryBlob.cpp | 67 ++++++++++++++++++++++++---- Source/Core/DiscIO/DirectoryBlob.h | 18 +++++--- 3 files changed, 74 insertions(+), 15 deletions(-) diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index 94b66bd687..ba1e901d61 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -700,6 +700,10 @@ void AddRiivolutionPatches(BootParameters* boot_params, auto& disc = std::get(boot_params->parameters); disc.volume = DiscIO::CreateDisc(DiscIO::DirectoryBlobReader::Create( std::move(disc.volume), + [&](std::vector* fst) { + DiscIO::Riivolution::ApplyPatchesToFiles( + riivolution_patches, DiscIO::Riivolution::PatchIndex::DolphinSysFiles, fst, nullptr); + }, [&](std::vector* fst, DiscIO::FSTBuilderNode* dol_node) { DiscIO::Riivolution::ApplyPatchesToFiles( riivolution_patches, DiscIO::Riivolution::PatchIndex::FileSystem, fst, dol_node); diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index c8facd37de..7decaac2e3 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -362,6 +362,7 @@ std::unique_ptr DirectoryBlobReader::Create(const std::stri std::unique_ptr DirectoryBlobReader::Create( std::unique_ptr volume, + const std::function* fst_nodes)>& sys_callback, const std::function* fst_nodes, FSTBuilderNode* dol_node)>& fst_callback) { @@ -369,7 +370,7 @@ std::unique_ptr DirectoryBlobReader::Create( return nullptr; return std::unique_ptr( - new DirectoryBlobReader(std::move(volume), fst_callback)); + new DirectoryBlobReader(std::move(volume), sys_callback, fst_callback)); } DirectoryBlobReader::DirectoryBlobReader(const std::string& game_partition_root, @@ -418,12 +419,14 @@ DirectoryBlobReader::DirectoryBlobReader(const std::string& game_partition_root, DirectoryBlobReader::DirectoryBlobReader( std::unique_ptr volume, + const std::function* fst_nodes)>& sys_callback, const std::function* fst_nodes, FSTBuilderNode* dol_node)>& fst_callback) : m_encryption_cache(this), m_wrapped_volume(std::move(volume)) { - DirectoryBlobPartition game_partition( - m_wrapped_volume.get(), m_wrapped_volume->GetGamePartition(), std::nullopt, fst_callback); + DirectoryBlobPartition game_partition(m_wrapped_volume.get(), + m_wrapped_volume->GetGamePartition(), std::nullopt, + sys_callback, fst_callback); m_is_wii = game_partition.IsWii(); if (!m_is_wii) @@ -463,7 +466,7 @@ DirectoryBlobReader::DirectoryBlobReader( if (type) { partitions.emplace_back( - DirectoryBlobPartition(m_wrapped_volume.get(), partition, m_is_wii, nullptr), + DirectoryBlobPartition(m_wrapped_volume.get(), partition, m_is_wii, nullptr, nullptr), static_cast(*type)); } } @@ -820,32 +823,80 @@ DirectoryBlobPartition::DirectoryBlobPartition(const std::string& root_directory BuildFSTFromFolder(m_root_directory + "files/", fst_address); } +static void FillSingleFileNode(FSTBuilderNode* node, std::vector data) +{ + std::vector contents; + const size_t size = data.size(); + contents.emplace_back(BuilderContentSource{0, size, ContentByteVector{std::move(data)}}); + node->m_size = size; + node->m_content = std::move(contents); +} + +static FSTBuilderNode BuildSingleFileNode(std::string filename, std::vector data, + void* userdata) +{ + FSTBuilderNode node{std::move(filename), 0, {}, userdata}; + FillSingleFileNode(&node, std::move(data)); + return node; +} + +static std::vector ExtractNodeToVector(std::vector* nodes, void* userdata) +{ + std::vector data; + const auto it = + std::find_if(nodes->begin(), nodes->end(), [&userdata](const FSTBuilderNode& node) { + return node.m_user_data == userdata; + }); + if (it == nodes->end() || !it->IsFile()) + return data; + + DiscContentContainer tmp; + for (auto& content : it->GetFileContent()) + tmp.Add(content.m_offset, content.m_size, std::move(content.m_source)); + data.resize(it->m_size); + tmp.Read(0, it->m_size, data.data()); + return data; +} + DirectoryBlobPartition::DirectoryBlobPartition( DiscIO::VolumeDisc* volume, const DiscIO::Partition& partition, std::optional is_wii, + const std::function* fst_nodes)>& sys_callback, const std::function* fst_nodes, FSTBuilderNode* dol_node)>& fst_callback) : m_wrapped_partition(partition) { + std::vector sys_nodes; + std::vector disc_header(DISCHEADER_SIZE); if (!volume->Read(DISCHEADER_ADDRESS, DISCHEADER_SIZE, disc_header.data(), partition)) disc_header.clear(); - SetDiscHeader(std::move(disc_header)); - SetDiscType(is_wii); + sys_nodes.emplace_back(BuildSingleFileNode("boot.bin", std::move(disc_header), &m_disc_header)); std::vector bi2(BI2_SIZE); if (!volume->Read(BI2_ADDRESS, BI2_SIZE, bi2.data(), partition)) bi2.clear(); - SetBI2(std::move(bi2)); + sys_nodes.emplace_back(BuildSingleFileNode("bi2.bin", std::move(bi2), &m_bi2)); std::vector apploader; const auto apploader_size = GetApploaderSize(*volume, partition); + auto& apploader_node = + sys_nodes.emplace_back(FSTBuilderNode{"apploader.img", 0, {}, &m_apploader}); if (apploader_size) { apploader.resize(*apploader_size); if (!volume->Read(APPLOADER_ADDRESS, *apploader_size, apploader.data(), partition)) apploader.clear(); + FillSingleFileNode(&apploader_node, std::move(apploader)); } - const u64 new_dol_address = SetApploader(apploader, "apploader"); + + if (sys_callback) + sys_callback(&sys_nodes); + + SetDiscHeader(ExtractNodeToVector(&sys_nodes, &m_disc_header)); + SetDiscType(is_wii); + SetBI2(ExtractNodeToVector(&sys_nodes, &m_bi2)); + const u64 new_dol_address = + SetApploader(ExtractNodeToVector(&sys_nodes, &m_apploader), "apploader"); FSTBuilderNode dol_node{"main.dol", 0, {}}; const auto dol_offset = GetBootDOLOffset(*volume, partition); diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index 31e3650b08..a06e60688f 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -190,10 +190,11 @@ class DirectoryBlobPartition public: DirectoryBlobPartition() = default; DirectoryBlobPartition(const std::string& root_directory, std::optional is_wii); - DirectoryBlobPartition(DiscIO::VolumeDisc* volume, const DiscIO::Partition& partition, - std::optional is_wii, - const std::function* fst_nodes, - FSTBuilderNode* dol_node)>& fst_callback); + DirectoryBlobPartition( + DiscIO::VolumeDisc* volume, const DiscIO::Partition& partition, std::optional is_wii, + const std::function* fst_nodes)>& sys_callback, + const std::function* fst_nodes, FSTBuilderNode* dol_node)>& + fst_callback); // We do not allow copying, because it might mess up the pointers inside DiscContents DirectoryBlobPartition(const DirectoryBlobPartition&) = delete; @@ -265,6 +266,7 @@ public: static std::unique_ptr Create(const std::string& dol_path); static std::unique_ptr Create( std::unique_ptr volume, + const std::function* fst_nodes)>& sys_callback, const std::function* fst_nodes, FSTBuilderNode* dol_node)>& fst_callback); @@ -303,9 +305,11 @@ private: explicit DirectoryBlobReader(const std::string& game_partition_root, const std::string& true_root); - explicit DirectoryBlobReader(std::unique_ptr volume, - const std::function* fst_nodes, - FSTBuilderNode* dol_node)>& fst_callback); + explicit DirectoryBlobReader( + std::unique_ptr volume, + const std::function* fst_nodes)>& sys_callback, + const std::function* fst_nodes, FSTBuilderNode* dol_node)>& + fst_callback); const DirectoryBlobPartition* GetPartition(u64 offset, u64 size, u64 partition_data_offset) const; From 01e4ce54c889cdcb02e16642a7993c646cc6b069 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Tue, 19 Jul 2022 23:00:21 +0200 Subject: [PATCH 416/659] Android: Call WiimoteReal::InitAdapterClass before controller init Should fix https://bugs.dolphin-emu.org/issues/12980. --- Source/Android/jni/MainAndroid.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index d41ebe4cc9..5a871ec041 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -519,6 +519,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Initialize(J Common::RegisterMsgAlertHandler(&MsgAlert); Common::AndroidSetReportHandler(&ReportSend); DolphinAnalytics::AndroidSetGetValFunc(&GetAnalyticValue); + + WiimoteReal::InitAdapterClass(); UICommon::Init(); UICommon::InitControllers(WindowSystemInfo(WindowSystemType::Android, nullptr, nullptr, nullptr)); } @@ -549,8 +551,6 @@ static void Run(JNIEnv* env, std::unique_ptr&& boot, bool riivol { std::unique_lock host_identity_guard(s_host_identity_lock); - WiimoteReal::InitAdapterClass(); - if (riivolution && std::holds_alternative(boot->parameters)) { const std::string& riivolution_dir = File::GetUserPath(D_RIIVOLUTION_IDX); From a23a7f7b10db50693e2ebbeff21e6cdde64c347e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Jul 2022 11:19:57 -0700 Subject: [PATCH 417/659] BTReal: Treat libusb_get_string_descriptor_ascii failure as non-fatal warning --- Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index 36ad1ed82c..b093add42d 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -106,19 +106,42 @@ std::optional BluetoothRealDevice::Open(const OpenRequest& request) unsigned char manufacturer[50] = {}, product[50] = {}, serial_number[50] = {}; const int manufacturer_ret = libusb_get_string_descriptor_ascii( m_handle, device_descriptor.iManufacturer, manufacturer, sizeof(manufacturer)); + if (manufacturer_ret < LIBUSB_SUCCESS) + { + WARN_LOG_FMT(IOS_WIIMOTE, + "Failed to get string for manufacturer descriptor {:02x} for device " + "{:04x}:{:04x} (rev {:x}): {}", + device_descriptor.iManufacturer, device_descriptor.idVendor, + device_descriptor.idProduct, device_descriptor.bcdDevice, + LibusbUtils::ErrorWrap(manufacturer_ret)); + manufacturer[0] = '?'; + manufacturer[1] = '\0'; + } const int product_ret = libusb_get_string_descriptor_ascii( m_handle, device_descriptor.iProduct, product, sizeof(product)); + if (product_ret < LIBUSB_SUCCESS) + { + WARN_LOG_FMT(IOS_WIIMOTE, + "Failed to get string for product descriptor {:02x} for device " + "{:04x}:{:04x} (rev {:x}): {}", + device_descriptor.iProduct, device_descriptor.idVendor, + device_descriptor.idProduct, device_descriptor.bcdDevice, + LibusbUtils::ErrorWrap(product_ret)); + product[0] = '?'; + product[1] = '\0'; + } const int serial_ret = libusb_get_string_descriptor_ascii( m_handle, device_descriptor.iSerialNumber, serial_number, sizeof(serial_number)); - if (manufacturer_ret < LIBUSB_SUCCESS || product_ret < LIBUSB_SUCCESS || - serial_ret < LIBUSB_SUCCESS) + if (serial_ret < LIBUSB_SUCCESS) { - ERROR_LOG_FMT(IOS_WIIMOTE, - "Failed to get descriptor for device {:04x}:{:04x} (rev {:x}): {}/{}/{}", - device_descriptor.idVendor, device_descriptor.idProduct, - device_descriptor.bcdDevice, LibusbUtils::ErrorWrap(manufacturer_ret), - LibusbUtils::ErrorWrap(product_ret), LibusbUtils::ErrorWrap(serial_ret)); - return true; + WARN_LOG_FMT(IOS_WIIMOTE, + "Failed to get string for serial number descriptor {:02x} for device " + "{:04x}:{:04x} (rev {:x}): {}", + device_descriptor.iSerialNumber, device_descriptor.idVendor, + device_descriptor.idProduct, device_descriptor.bcdDevice, + LibusbUtils::ErrorWrap(serial_ret)); + serial_number[0] = '?'; + serial_number[1] = '\0'; } NOTICE_LOG_FMT(IOS_WIIMOTE, "Using device {:04x}:{:04x} (rev {:x}) for Bluetooth: {} {} {}", device_descriptor.idVendor, device_descriptor.idProduct, From a1e8e60c4c56d7023264c44fe1b8699014de4f8c Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 20 Jul 2022 21:32:44 +0200 Subject: [PATCH 418/659] IOS: Add IOSC::KeyEntry::misc_data to savestate. --- Source/Core/Core/IOS/IOSC.cpp | 1 + Source/Core/Core/State.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/IOS/IOSC.cpp b/Source/Core/Core/IOS/IOSC.cpp index 06783abc64..d9dc0f1fb2 100644 --- a/Source/Core/Core/IOS/IOSC.cpp +++ b/Source/Core/Core/IOS/IOSC.cpp @@ -649,6 +649,7 @@ void IOSC::KeyEntry::DoState(PointerWrap& p) p.Do(type); p.Do(subtype); p.Do(data); + p.Do(misc_data); p.Do(owner_mask); } } // namespace IOS::HLE diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index 6f0f84cc21..bccb56a835 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 144; // Last changed in PR 10762 +constexpr u32 STATE_VERSION = 145; // Last changed in PR 10879 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 76fd0479b8a5e6b4dd883d8b3d3436c3e30ce26f Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Jul 2022 16:38:54 -0700 Subject: [PATCH 419/659] JitAsm: Remove old commented-out code I'm not sure what the XMM0 check was supposed to be, but the 0xCC008000 one is for the fifo and is handled elsewhere now (look for `optimizeGatherPipe`). --- Source/Core/Core/PowerPC/Jit64/JitAsm.cpp | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp b/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp index b1dd505c34..1fbdc8306e 100644 --- a/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp @@ -246,21 +246,4 @@ void Jit64AsmRoutineManager::GenerateCommon() GenQuantizedSingleLoads(); GenQuantizedStores(); GenQuantizedSingleStores(); - - // CMPSD(R(XMM0), M(&zero), - // TODO - - // Fast write routines - special case the most common hardware write - // TODO: use this. - // Even in x86, the param values will be in the right registers. - /* - const u8 *fastMemWrite8 = AlignCode16(); - CMP(32, R(ABI_PARAM2), Imm32(0xCC008000)); - FixupBranch skip_fast_write = J_CC(CC_NE, false); - MOV(32, RSCRATCH, M(&m_gatherPipeCount)); - MOV(8, MDisp(RSCRATCH, (u32)&m_gatherPipe), ABI_PARAM1); - ADD(32, 1, M(&m_gatherPipeCount)); - RET(); - SetJumpTarget(skip_fast_write); - CALL((void *)&PowerPC::Write_U8);*/ } From 75ae3b7ec43164409c60336f24e3947e325744d2 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 24 Jun 2022 22:52:12 -0700 Subject: [PATCH 420/659] DSPHLE: Fix comment in libasnd uCode --- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp index 74c70efc97..9a854724a8 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -55,7 +55,7 @@ constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_SHIFT = 16; // November 14, 2008 version (padded to 0x05a0 bytes) - initial release // https://github.com/devkitPro/libogc/compare/c76d8b851fafc11b0a5debc0b40842929d5a5825~...353a44f038e75e5982eb550173ec8127ab35e3e3 constexpr u32 HASH_2008 = 0x8d69a19b; -// February 5, 2009 version (0x05ac bytes) - added MAIL_TERMINATE +// February 5, 2009 version (padded to 0x05c0 bytes) - added MAIL_TERMINATE // https://github.com/devkitPro/libogc/compare/1925217ffb4c97cbee5cf21fa3c0231029b340e2~...3b1f018dbe372859a43bff8560e2525f6efa4433 constexpr u32 HASH_2009 = 0xcc2fd441; // June 11, 2011 version (padded to 0x0620 bytes) - added new sample formats, which shifted flags From 5e64f453ab1318928df8c25a25cb3b6476daaa11 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 27 Jun 2022 12:52:26 -0700 Subject: [PATCH 421/659] DSPHLE/ASnd: Rename m_next_command_is_voice_addr to m_next_mail_is_voice_addr --- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 8 ++++---- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp index 9a854724a8..e033d276d7 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -99,11 +99,11 @@ void ASndUCode::HandleMail(u32 mail) { PrepareBootUCode(mail); } - else if (m_next_command_is_voice_addr) + else if (m_next_mail_is_voice_addr) { m_voice_addr = mail; INFO_LOG_FMT(DSPHLE, "ASndUCode - Voice data is at {:08x}", mail); - m_next_command_is_voice_addr = false; + m_next_mail_is_voice_addr = false; // No mail is sent in response } else if ((mail & TASK_MAIL_MASK) == TASK_MAIL_TO_DSP) @@ -150,7 +150,7 @@ void ASndUCode::HandleMail(u32 mail) break; case MAIL_SET_VOICE_DATA_BUFFER: DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_SET_VOICE_DATA_BUFFER: {:08x}", mail); - m_next_command_is_voice_addr = true; + m_next_mail_is_voice_addr = true; // No mail is sent in response break; case MAIL_INPUT_NEXT_SAMPLES: @@ -559,7 +559,7 @@ std::pair ASndUCode::ReadSampleStereo16BitsLittleEndian() const void ASndUCode::DoState(PointerWrap& p) { DoStateShared(p); - p.Do(m_next_command_is_voice_addr); + p.Do(m_next_mail_is_voice_addr); p.Do(m_voice_addr); p.Do(m_current_voice); p.Do(m_input_sample_buffer); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h index b30bf32ec8..45ef40c0e0 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h @@ -81,7 +81,7 @@ private: }; static_assert(sizeof(VoiceData) == sizeof(u16) * 0x20); - bool m_next_command_is_voice_addr = false; + bool m_next_mail_is_voice_addr = false; u32 m_voice_addr = 0; VoiceData m_current_voice{}; From 6eaa4a4e890972704226098bf995e936454abd51 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 27 Jun 2022 12:46:35 -0700 Subject: [PATCH 422/659] DSPHLE: Add HLE version of libaesnd ucode --- Source/Core/Core/CMakeLists.txt | 2 + Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 403 +++++++++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h | 74 ++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 7 + Source/Core/DolphinLib.props | 2 + 5 files changed, 488 insertions(+) create mode 100644 Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp create mode 100644 Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 99a143f2bd..745bf250c1 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -144,6 +144,8 @@ add_library(core HW/DSPHLE/MailHandler.h HW/DSPHLE/UCodes/ASnd.cpp HW/DSPHLE/UCodes/ASnd.h + HW/DSPHLE/UCodes/AESnd.cpp + HW/DSPHLE/UCodes/AESnd.h HW/DSPHLE/UCodes/AX.cpp HW/DSPHLE/UCodes/AX.h HW/DSPHLE/UCodes/AXStructs.h diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp new file mode 100644 index 0000000000..34c2308468 --- /dev/null +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -0,0 +1,403 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +// High-level emulation for the libaesnd ucode, used by homebrew +// libaesnd is part of devkitPro's libogc, released under the Zlib license + +#include "Core/HW/DSPHLE/UCodes/AESnd.h" + +#include + +#include "Common/ChunkFile.h" +#include "Common/Logging/Log.h" +#include "Common/Swap.h" +#include "Core/DSP/DSPAccelerator.h" +#include "Core/HW/DSP.h" +#include "Core/HW/DSPHLE/DSPHLE.h" +#include "Core/HW/DSPHLE/MailHandler.h" +#include "Core/HW/DSPHLE/UCodes/UCodes.h" + +namespace DSP::HLE +{ +constexpr u32 MAIL_PREFIX = 0xface'0000; +constexpr u32 MAIL_PROCESS_FIRST_VOICE = MAIL_PREFIX | 0x0010; +constexpr u32 MAIL_PROCESS_NEXT_VOICE = MAIL_PREFIX | 0x0020; +constexpr u32 MAIL_GET_PB_ADDRESS = MAIL_PREFIX | 0x0080; +constexpr u32 MAIL_SEND_SAMPLES = MAIL_PREFIX | 0x0100; +constexpr u32 MAIL_TERMINATE = MAIL_PREFIX | 0xdead; + +// June 5, 2010 version (padded to 0x03e0 bytes) - initial release +// First included with libogc 1.8.4 on October 3, 2010: https://devkitpro.org/viewtopic.php?t=2249 +// https://github.com/devkitPro/libogc/blob/b5fdbdb069c45584aa4dfd950a136a8db9b1144c/libaesnd/dspcode/dspmixer.s +constexpr u32 HASH_2010 = 0x008366af; +// April 11, 2012 version (padded to 0x03e0 bytes) - swapped input channels +// First included with libogc 1.8.11 on April 22, 2012: https://devkitpro.org/viewtopic.php?t=3094 +// https://github.com/devkitPro/libogc/commit/8f188e12b6a3d8b5a0d49a109fe6a3e4e1702aab +constexpr u32 HASH_2012 = 0x078066ab; +// June 14, 2020 version (0x03e6 bytes) - added unsigned formats +// First included with libogc 2.1.0 on June 15, 2020: https://devkitpro.org/viewtopic.php?t=9079 +// https://github.com/devkitPro/libogc/commit/eac8fe2c29aa790d552dd6166a1fb195dfdcb825 +constexpr u32 HASH_2020 = 0x84c680a9; + +constexpr u32 VOICE_MONO8 = 0x00000000; +constexpr u32 VOICE_STEREO8 = 0x00000001; +constexpr u32 VOICE_MONO16 = 0x00000002; +constexpr u32 VOICE_STEREO16 = 0x00000003; +// These are only present in the 2020 release +constexpr u32 VOICE_MONO8_UNSIGNED = 0x00000004; +constexpr u32 VOICE_STEREO8_UNSIGNED = 0x00000005; +constexpr u32 VOICE_MONO16_UNSIGNED = 0x00000006; +constexpr u32 VOICE_STEREO16_UNSIGNED = 0x00000007; + +constexpr u32 VOICE_FORMAT_MASK_OLD = 3; +constexpr u32 VOICE_FORMAT_MASK_NEW = 7; +// Note that the above formats have the 2-bit set for 16-bit formats and not set for 8-bit formats +constexpr u32 VOICE_16_BIT_FLAG = 2; + +// These are used in the pre-2020 versions version +constexpr u32 VOICE_PAUSE_OLD = 0x00000004; +constexpr u32 VOICE_LOOP_OLD = 0x00000008; // not used by the DSP +constexpr u32 VOICE_ONCE_OLD = 0x00000010; // not used by the DSP +constexpr u32 VOICE_STREAM_OLD = 0x00000020; // not used by the DSP + +// These were changed in the 2020 version to account for the different flags +constexpr u32 VOICE_PAUSE_NEW = 0x00000008; +constexpr u32 VOICE_LOOP_NEW = 0x00000010; // not used by the DSP +constexpr u32 VOICE_ONCE_NEW = 0x00000020; // not used by the DSP +constexpr u32 VOICE_STREAM_NEW = 0x00000040; // not used by the DSP + +// These did not change between versions +constexpr u32 VOICE_FINISHED = 0x00100000; +constexpr u32 VOICE_STOPPED = 0x00200000; // not used by the DSP +constexpr u32 VOICE_RUNNING = 0x40000000; +constexpr u32 VOICE_USED = 0x80000000; // not used by the DSP + +// 1<<4 = scale gain by 1/1, 2<<2 = PCM decoding from ARAM, 1<<0 = 8-bit reads +constexpr u32 ACCELERATOR_FORMAT_8_BIT = 0x0019; +// 0<<4 = scale gain by 1/2048, 2<<2 = PCM decoding from ARAM, 2<<0 = 16-bit reads +constexpr u32 ACCELERATOR_FORMAT_16_BIT = 0x000a; +// Multiply samples by 0x100/1 = 0x100 (for ACCELERATOR_FORMAT_8_BIT) +constexpr u32 ACCELERATOR_GAIN_8_BIT = 0x0100; +// Multiply samples by 0x800/2048 = 1 (for ACCELERATOR_FORMAT_16_BIT) +constexpr u32 ACCELERATOR_GAIN_16_BIT = 0x0800; + +AESndUCode::AESndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) +{ +} + +void AESndUCode::Initialize() +{ + m_mail_handler.PushMail(DSP_INIT); +} + +void AESndUCode::Update() +{ + // This is dubious in general, since we set the interrupt parameter on m_mail_handler.PushMail + if (m_mail_handler.HasPending()) + { + DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + } +} + +void AESndUCode::HandleMail(u32 mail) +{ + if (m_upload_setup_in_progress) + { + PrepareBootUCode(mail); + } + else if (m_next_mail_is_parameter_block_addr) + { + // get_pb_address + m_parameter_block_addr = mail; + INFO_LOG_FMT(DSPHLE, "AESndUCode - Parameter block is at {:08x}", mail); + m_next_mail_is_parameter_block_addr = false; + // No mail is sent in response + } + else if ((mail & TASK_MAIL_MASK) == TASK_MAIL_TO_DSP) + { + switch (mail) + { + case MAIL_NEW_UCODE: + m_upload_setup_in_progress = true; + break; + case MAIL_RESET: + m_dsphle->SetUCode(UCODE_ROM); + break; + default: + WARN_LOG_FMT(DSPHLE, "AESndUCode - unknown 0xcdd1 command: {:08x}", mail); + break; + } + // No mail is sent in response to any of these. + // The actual uCode halts on unknown cdd1 commands, which I have not implemented. + } + else + { + // The uCode checks for a 0xface prefix, which we include in the constants above. + switch (mail) + { + case MAIL_PROCESS_FIRST_VOICE: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_PROCESS_FIRST_VOICE"); + DMAInParameterBlock(); // dma_pb_block + m_output_buffer.fill(0); + DoMixing(); // fall through to dsp_mixer + // Mail is handled by DoMixing() + break; + case MAIL_PROCESS_NEXT_VOICE: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_PROCESS_NEXT_VOICE"); + DMAInParameterBlock(); // dma_pb_block + DoMixing(); // jump to dsp_mixer + // Mail is handled by DoMixing() + break; + case MAIL_GET_PB_ADDRESS: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_GET_PB_ADDRESS"); + m_next_mail_is_parameter_block_addr = true; + // No mail is sent in response + break; + case MAIL_SEND_SAMPLES: + DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_SEND_SAMPLES"); + // send_samples + for (u32 i = 0; i < NUM_OUTPUT_SAMPLES * 2; i++) + { + HLEMemory_Write_U16(m_parameter_block.out_buf + i * sizeof(u16), m_output_buffer[i]); + } + m_mail_handler.PushMail(DSP_SYNC, true); + break; + case MAIL_TERMINATE: + INFO_LOG_FMT(DSPHLE, "ASndUCode - MAIL_TERMINATE: {:08x}", mail); + // This doesn't actually change the state of the system. + m_mail_handler.PushMail(DSP_DONE, true); + break; + default: + WARN_LOG_FMT(DSPHLE, "AESndUCode - unknown command: {:08x}", mail); + // No mail is sent in this case + break; + } + } +} + +void AESndUCode::DMAInParameterBlock() +{ + m_parameter_block.out_buf = HLEMemory_Read_U32(m_parameter_block_addr + 0); + m_parameter_block.buf_start = HLEMemory_Read_U32(m_parameter_block_addr + 4); + m_parameter_block.buf_end = HLEMemory_Read_U32(m_parameter_block_addr + 8); + m_parameter_block.buf_curr = HLEMemory_Read_U32(m_parameter_block_addr + 12); + m_parameter_block.yn1 = HLEMemory_Read_U16(m_parameter_block_addr + 16); + m_parameter_block.yn2 = HLEMemory_Read_U16(m_parameter_block_addr + 18); + m_parameter_block.pds = HLEMemory_Read_U16(m_parameter_block_addr + 20); + m_parameter_block.freq = HLEMemory_Read_U32(m_parameter_block_addr + 22); + m_parameter_block.counter = HLEMemory_Read_U16(m_parameter_block_addr + 26); + m_parameter_block.left = HLEMemory_Read_U16(m_parameter_block_addr + 28); + m_parameter_block.right = HLEMemory_Read_U16(m_parameter_block_addr + 30); + m_parameter_block.volume_l = HLEMemory_Read_U16(m_parameter_block_addr + 32); + m_parameter_block.volume_r = HLEMemory_Read_U16(m_parameter_block_addr + 34); + m_parameter_block.delay = HLEMemory_Read_U32(m_parameter_block_addr + 36); + m_parameter_block.flags = HLEMemory_Read_U32(m_parameter_block_addr + 40); +} + +void AESndUCode::DMAOutParameterBlock() +{ + HLEMemory_Write_U32(m_parameter_block_addr + 0, m_parameter_block.out_buf); + HLEMemory_Write_U32(m_parameter_block_addr + 4, m_parameter_block.buf_start); + HLEMemory_Write_U32(m_parameter_block_addr + 8, m_parameter_block.buf_end); + HLEMemory_Write_U32(m_parameter_block_addr + 12, m_parameter_block.buf_curr); + HLEMemory_Write_U16(m_parameter_block_addr + 16, m_parameter_block.yn1); + HLEMemory_Write_U16(m_parameter_block_addr + 18, m_parameter_block.yn2); + HLEMemory_Write_U16(m_parameter_block_addr + 20, m_parameter_block.pds); + HLEMemory_Write_U32(m_parameter_block_addr + 22, m_parameter_block.freq); + HLEMemory_Write_U16(m_parameter_block_addr + 26, m_parameter_block.counter); + HLEMemory_Write_U16(m_parameter_block_addr + 28, m_parameter_block.left); + HLEMemory_Write_U16(m_parameter_block_addr + 30, m_parameter_block.right); + HLEMemory_Write_U16(m_parameter_block_addr + 32, m_parameter_block.volume_l); + HLEMemory_Write_U16(m_parameter_block_addr + 34, m_parameter_block.volume_r); + HLEMemory_Write_U32(m_parameter_block_addr + 36, m_parameter_block.delay); + HLEMemory_Write_U32(m_parameter_block_addr + 40, m_parameter_block.flags); +} + +class AESndAccelerator final : public Accelerator +{ +protected: + void OnEndException() override + { + // exception5 - this updates internal state + SetYn1(GetYn1()); + SetYn2(GetYn2()); + SetPredScale(GetPredScale()); + } + + u8 ReadMemory(u32 address) override { return ReadARAM(address); } + void WriteMemory(u32 address, u8 value) override { WriteARAM(value, address); } +}; + +static std::unique_ptr s_accelerator = std::make_unique(); +static constexpr std::array ACCELERATOR_COEFS = {}; // all zeros + +void AESndUCode::SetUpAccelerator(u16 format, [[maybe_unused]] u16 gain) +{ + // setup_accl + s_accelerator->SetSampleFormat(format); + // not currently implemented, but it doesn't matter since the gain is configured to be a no-op + // s_accelerator->SetGain(gain); + s_accelerator->SetStartAddress(m_parameter_block.buf_start); + s_accelerator->SetEndAddress(m_parameter_block.buf_end); + s_accelerator->SetCurrentAddress(m_parameter_block.buf_curr); + s_accelerator->SetYn1(m_parameter_block.yn1); + s_accelerator->SetYn2(m_parameter_block.yn2); + s_accelerator->SetPredScale(m_parameter_block.pds); + // All of the coefficients (COEF_A1_0 at ffa0 - COEF_A2_7 at ffaf) are set to 0 +} + +void AESndUCode::DoMixing() +{ + const u32 pause_flag = (m_crc == HASH_2020) ? VOICE_PAUSE_NEW : VOICE_PAUSE_OLD; + const u32 format_mask = (m_crc == HASH_2020) ? VOICE_FORMAT_MASK_NEW : VOICE_FORMAT_MASK_OLD; + // dsp_mixer + const bool paused = (m_parameter_block.flags & pause_flag) != 0; + const bool running = (m_parameter_block.flags & VOICE_RUNNING) != 0; + const bool has_buf = m_parameter_block.buf_start != 0; + if (!paused && running && has_buf) + { + // no_change_buffer + const u32 voice_format = m_parameter_block.flags & format_mask; + const bool is_16_bit = (voice_format & VOICE_16_BIT_FLAG) != 0; + // select_format table + const u16 accelerator_format = is_16_bit ? ACCELERATOR_FORMAT_16_BIT : ACCELERATOR_FORMAT_8_BIT; + const u16 accelerator_gain = is_16_bit ? ACCELERATOR_GAIN_16_BIT : ACCELERATOR_GAIN_8_BIT; + SetUpAccelerator(accelerator_format, accelerator_gain); + // read from select_mixer skipped + + // Note: We don't handle masking/sign extension from use of $ac0.h and $ac1.h, as this isn't + // something that should happen if the PowerPC code is using the library normally. + // This applies throughout. + u32 delay = m_parameter_block.delay; + u32 sample_index = 0; + u32 remaining_samples = NUM_OUTPUT_SAMPLES; + + if (delay != 0) + { + // delay_loop + // This is implemented with a BLOOP and then a read from the loop counter stack register in + // the actual uCode. I'm not 100% sure how it works/if it works correctly there. + while (remaining_samples != 0) + { + remaining_samples--; + delay--; + if (delay == 0) + break; + sample_index++; + } + // exit_delay + m_parameter_block.delay = delay; + } + // no_delay - operates in set40 mode + while (remaining_samples != 0) // BLOOP dspmixer_loop_end + { + remaining_samples--; + s32 right = m_output_buffer[sample_index * 2 + 0]; + s32 left = m_output_buffer[sample_index * 2 + 1]; + right += m_parameter_block.right; + left += m_parameter_block.left; + // Clamping from set40 mode + right = std::clamp(right, -32768, 32767); + left = std::clamp(left, -32768, 32767); + m_output_buffer[sample_index * 2 + 0] = right; + m_output_buffer[sample_index * 2 + 1] = left; + sample_index++; + + const u32 counter = static_cast(m_parameter_block.counter) + m_parameter_block.freq; + m_parameter_block.counter = static_cast(counter); + u16 counter_h = counter >> 16; + if (counter_h >= 1) + { + s16 new_l = 0, new_r = 0; + + // jrge $ar3 (using select_mixer table) + // We already masked voice_format with the right mask for the version, so nothing special + // needs to be done for this switch statement to exclude unsupported formats + switch (voice_format) + { + case VOICE_MONO8: + case VOICE_MONO16: + // mono_mix + while (counter_h >= 1) + { + counter_h--; + new_r = s_accelerator->Read(ACCELERATOR_COEFS.data()); + new_l = new_r; + } + break; + + case VOICE_STEREO8: + case VOICE_STEREO16: + // stereo_mix + while (counter_h >= 1) + { + counter_h--; + new_r = s_accelerator->Read(ACCELERATOR_COEFS.data()); + new_l = s_accelerator->Read(ACCELERATOR_COEFS.data()); + } + break; // falls through to mix_samples normally + + case VOICE_MONO8_UNSIGNED: + case VOICE_MONO16_UNSIGNED: + // mono_unsigned_mix + while (counter_h >= 1) + { + counter_h--; + new_r = s_accelerator->Read(ACCELERATOR_COEFS.data()); + new_l = new_r; + } + new_r ^= 0x8000; + new_l ^= 0x8000; + break; + + case VOICE_STEREO8_UNSIGNED: + case VOICE_STEREO16_UNSIGNED: + // stereo_unsigned_mix + while (counter_h >= 1) + { + counter_h--; + new_r = s_accelerator->Read(ACCELERATOR_COEFS.data()); + new_l = s_accelerator->Read(ACCELERATOR_COEFS.data()); + } + new_r ^= 0x8000; + new_l ^= 0x8000; + break; + } + if (m_crc == HASH_2012 || m_crc == HASH_2020) + { + // The 2012 version swapped the left and right input channels so that left comes first, + // and then right. Before, right came before left. The 2012 version didn't update comments + // for it, though. + std::swap(new_r, new_l); + } + // mix_samples + const s32 mixed_l = (static_cast(new_l) * m_parameter_block.volume_l) >> 8; + const s32 mixed_r = (static_cast(new_r) * m_parameter_block.volume_r) >> 8; + // Clamping from set40 mode + m_parameter_block.left = std::clamp(mixed_l, -32768, 32767); + m_parameter_block.right = std::clamp(mixed_r, -32768, 32767); + } + // no_mix - we don't need to do anything as we modify m_parameter_block.left/right in place + } + // mixer_end - back to set16 mode + m_parameter_block.pds = s_accelerator->GetPredScale(); + m_parameter_block.yn2 = s_accelerator->GetYn2(); + m_parameter_block.yn1 = s_accelerator->GetYn1(); + m_parameter_block.buf_curr = s_accelerator->GetCurrentAddress(); + } + // finish_voice + m_parameter_block.flags |= VOICE_FINISHED; + DMAOutParameterBlock(); // dma_pb_block + m_mail_handler.PushMail(DSP_SYNC, true); +} + +void AESndUCode::DoState(PointerWrap& p) +{ + DoStateShared(p); + p.Do(m_next_mail_is_parameter_block_addr); + p.Do(m_parameter_block_addr); + p.Do(m_parameter_block); + p.Do(m_output_buffer); + s_accelerator->DoState(p); +} +} // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h new file mode 100644 index 0000000000..a13046be94 --- /dev/null +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h @@ -0,0 +1,74 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include "Common/CommonTypes.h" +#include "Core/HW/DSPHLE/UCodes/UCodes.h" + +namespace DSP::HLE +{ +class DSPHLE; + +class AESndUCode final : public UCodeInterface +{ +public: + AESndUCode(DSPHLE* dsphle, u32 crc); + + void Initialize() override; + void HandleMail(u32 mail) override; + void Update() override; + void DoState(PointerWrap& p) override; + +private: + void DMAInParameterBlock(); + void DMAOutParameterBlock(); + void SetUpAccelerator(u16 format, u16 gain); + void DoMixing(); + + // Copied from libaesnd/aesndlib.c's aesndpb_t (specifically the first 64 bytes) +#pragma pack(1) + struct ParameterBlock + { + u32 out_buf; + + u32 buf_start; + u32 buf_end; + u32 buf_curr; + + u16 yn1; + u16 yn2; + u16 pds; + + // Note: only u16-aligned, not u32-aligned. + // libogc's version has separate u16 freq_l and freq_h fields, but we use #pragma pack(1). + u32 freq; + u16 counter; + + s16 left; + s16 right; + u16 volume_l; + u16 volume_r; + + u32 delay; + + u32 flags; + u8 _pad[20]; + }; +#pragma pack() + static_assert(sizeof(ParameterBlock) == sizeof(u16) * 0x20); + + bool m_next_mail_is_parameter_block_addr = false; + u32 m_parameter_block_addr = 0; + + ParameterBlock m_parameter_block{}; + + // Number of 16-bit stereo samples in the output buffer: 2ms of sample data + static constexpr u32 NUM_OUTPUT_SAMPLES = 96; + + std::array m_output_buffer{}; +}; +} // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 892c67dad7..94a594aec7 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -20,6 +20,7 @@ #include "Core/ConfigManager.h" #include "Core/DSP/DSPCodeUtil.h" #include "Core/HW/DSPHLE/DSPHLE.h" +#include "Core/HW/DSPHLE/UCodes/AESnd.h" #include "Core/HW/DSPHLE/UCodes/ASnd.h" #include "Core/HW/DSPHLE/UCodes/AX.h" #include "Core/HW/DSPHLE/UCodes/AXWii.h" @@ -290,6 +291,12 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) INFO_LOG_FMT(DSPHLE, "CRC {:08x}: ASnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); + case 0x008366af: + case 0x078066ab: + case 0x84c680a9: + INFO_LOG_FMT(DSPHLE, "CRC {:08x}: AESnd chosen (Homebrew)", crc); + return std::make_unique(dsphle, crc); + default: if (wii) { diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 13d1525b74..af170d382e 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -238,6 +238,7 @@ + @@ -858,6 +859,7 @@ + From 98c688ee6883bd015e15dee063f4d083401795b5 Mon Sep 17 00:00:00 2001 From: codedwrench Date: Sat, 30 Apr 2022 19:15:57 +0200 Subject: [PATCH 423/659] Android: XLink Kai Android UI option --- .../settings/model/BooleanSetting.java | 2 + .../features/settings/model/IntSetting.java | 2 + .../settings/model/StringSetting.java | 4 + .../settings/model/view/HeaderSetting.java | 2 +- .../model/view/HyperLinkHeaderSetting.java | 19 +++++ .../model/view/InputStringSetting.java | 72 +++++++++++++++++ .../settings/model/view/SettingsItem.java | 2 + .../features/settings/ui/MenuTag.java | 6 ++ .../settings/ui/SettingsActivity.java | 6 ++ .../ui/SettingsActivityPresenter.java | 10 +++ .../settings/ui/SettingsActivityView.java | 9 +++ .../features/settings/ui/SettingsAdapter.java | 45 +++++++++++ .../settings/ui/SettingsFragment.java | 7 ++ .../ui/SettingsFragmentPresenter.java | 26 +++++++ .../settings/ui/SettingsFragmentView.java | 9 +++ .../viewholder/HeaderHyperLinkViewHolder.java | 33 ++++++++ .../ui/viewholder/HeaderViewHolder.java | 4 +- .../InputStringSettingViewHolder.java | 77 +++++++++++++++++++ .../main/res/layout/dialog_input_string.xml | 19 +++++ .../app/src/main/res/values/arrays.xml | 12 +++ .../app/src/main/res/values/strings.xml | 7 ++ 21 files changed, 370 insertions(+), 3 deletions(-) create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HyperLinkHeaderSetting.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/InputStringSetting.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderHyperLinkViewHolder.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputStringSettingViewHolder.java create mode 100644 Source/Android/app/src/main/res/layout/dialog_input_string.xml diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java index b6e63895a3..b419099808 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java @@ -18,6 +18,8 @@ public enum BooleanSetting implements AbstractBooleanSetting MAIN_OVERRIDE_REGION_SETTINGS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "OverrideRegionSettings", false), MAIN_AUDIO_STRETCH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AudioStretch", false), + MAIN_BBA_XLINK_CHAT_OSD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_XLINK_CHAT_OSD", + false), MAIN_ADAPTER_RUMBLE_0(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AdapterRumble0", true), MAIN_ADAPTER_RUMBLE_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AdapterRumble1", true), MAIN_ADAPTER_RUMBLE_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AdapterRumble2", true), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java index 98601a1741..a06c4f8d61 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.java @@ -20,6 +20,7 @@ public enum IntSetting implements AbstractIntSetting MAIN_GC_LANGUAGE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SelectedLanguage", 0), MAIN_SLOT_A(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotA", 8), MAIN_SLOT_B(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotB", 255), + MAIN_SERIAL_PORT_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SerialPort1", 255), MAIN_FALLBACK_REGION(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "FallbackRegion", 2), MAIN_SI_DEVICE_0(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SIDevice0", 6), MAIN_SI_DEVICE_1(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SIDevice1", 0), @@ -77,6 +78,7 @@ public enum IntSetting implements AbstractIntSetting MAIN_GC_LANGUAGE, MAIN_SLOT_A, // Can actually be changed, but specific code is required MAIN_SLOT_B, // Can actually be changed, but specific code is required + MAIN_SERIAL_PORT_1, MAIN_FALLBACK_REGION, MAIN_SI_DEVICE_0, // Can actually be changed, but specific code is required MAIN_SI_DEVICE_1, // Can actually be changed, but specific code is required diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java index 5cb9127a58..751d18f90f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java @@ -13,6 +13,10 @@ public enum StringSetting implements AbstractStringSetting // These entries have the same names and order as in C++, just for consistency. MAIN_DEFAULT_ISO(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DefaultISO", ""), + + MAIN_BBA_MAC(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_MAC", ""), + MAIN_BBA_XLINK_IP(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_XLINK_IP", ""), + MAIN_GFX_BACKEND(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "GFXBackend", NativeLibrary.GetDefaultGraphicsBackendName()), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HeaderSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HeaderSetting.java index 5f0605553c..14c5f49021 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HeaderSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HeaderSetting.java @@ -6,7 +6,7 @@ import android.content.Context; import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting; -public final class HeaderSetting extends SettingsItem +public class HeaderSetting extends SettingsItem { public HeaderSetting(Context context, int titleId, int descriptionId) { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HyperLinkHeaderSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HyperLinkHeaderSetting.java new file mode 100644 index 0000000000..785e6cd6f6 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/HyperLinkHeaderSetting.java @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.settings.model.view; + +import android.content.Context; + +public final class HyperLinkHeaderSetting extends HeaderSetting +{ + public HyperLinkHeaderSetting(Context context, int titleId, int descriptionId) + { + super(context, titleId, descriptionId); + } + + @Override + public int getType() + { + return SettingsItem.TYPE_HYPERLINK_HEADER; + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/InputStringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/InputStringSetting.java new file mode 100644 index 0000000000..90773e1762 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/InputStringSetting.java @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.settings.model.view; + +import android.content.Context; + +import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting; +import org.dolphinemu.dolphinemu.features.settings.model.AbstractStringSetting; +import org.dolphinemu.dolphinemu.features.settings.model.Settings; +import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag; + +public class InputStringSetting extends SettingsItem +{ + private AbstractStringSetting mSetting; + + private MenuTag mMenuTag; + + public InputStringSetting(Context context, AbstractStringSetting setting, int titleId, + int descriptionId, MenuTag menuTag) + { + super(context, titleId, descriptionId); + mSetting = setting; + mMenuTag = menuTag; + } + + public InputStringSetting(Context context, AbstractStringSetting setting, int titleId, + int descriptionId) + { + this(context, setting, titleId, descriptionId, null); + } + + public InputStringSetting(Context context, AbstractStringSetting setting, int titleId, + int descriptionId, int choicesId, int valuesId, MenuTag menuTag) + { + super(context, titleId, descriptionId); + mSetting = setting; + mMenuTag = menuTag; + } + + public InputStringSetting(Context context, AbstractStringSetting setting, int titleId, + int descriptionId, int choicesId, int valuesId) + { + this(context, setting, titleId, descriptionId, choicesId, valuesId, null); + } + + public String getSelectedValue(Settings settings) + { + return mSetting.getString(settings); + } + + public MenuTag getMenuTag() + { + return mMenuTag; + } + + public void setSelectedValue(Settings settings, String selection) + { + mSetting.setString(settings, selection); + } + + @Override + public int getType() + { + return TYPE_STRING; + } + + @Override + public AbstractSetting getSetting() + { + return mSetting; + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.java index fade63e26d..ffb653d26f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.java @@ -27,6 +27,8 @@ public abstract class SettingsItem public static final int TYPE_SINGLE_CHOICE_DYNAMIC_DESCRIPTIONS = 8; public static final int TYPE_FILE_PICKER = 9; public static final int TYPE_RUN_RUNNABLE = 10; + public static final int TYPE_STRING = 11; + public static final int TYPE_HYPERLINK_HEADER = 12; private final CharSequence mName; private final CharSequence mDescription; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java index aa5d4216a0..38cb3382ef 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java @@ -13,6 +13,7 @@ public enum MenuTag CONFIG_AUDIO("config_audio"), CONFIG_PATHS("config_paths"), CONFIG_GAME_CUBE("config_gamecube"), + CONFIG_SERIALPORT1("config_serialport1"), CONFIG_WII("config_wii"), CONFIG_ADVANCED("config_advanced"), CONFIG_LOG("config_log"), @@ -74,6 +75,11 @@ public enum MenuTag return subType; } + public boolean isSerialPort1Menu() + { + return this == CONFIG_SERIALPORT1; + } + public boolean isGCPadMenu() { return this == GCPAD_1 || this == GCPAD_2 || this == GCPAD_3 || this == GCPAD_4; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java index baaf955e96..8f3d587b3f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.java @@ -277,6 +277,12 @@ public final class SettingsActivity extends AppCompatActivity implements Setting mPresenter.onSettingChanged(); } + @Override + public void onSerialPort1SettingChanged(MenuTag menuTag, int value) + { + mPresenter.onSerialPort1SettingChanged(menuTag, value); + } + @Override public void onGcPadSettingChanged(MenuTag key, int value) { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java index 78f3a78fd6..4135f06e01 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.java @@ -135,6 +135,16 @@ public final class SettingsActivityPresenter return mShouldSave; } + public void onSerialPort1SettingChanged(MenuTag key, int value) + { + if (value != 0 && value != 255) // Not disabled or dummy + { + Bundle bundle = new Bundle(); + bundle.putInt(SettingsFragmentPresenter.ARG_SERIALPORT1_TYPE, value); + mView.showSettingsFragment(key, bundle, true, mGameId); + } + } + public void onGcPadSettingChanged(MenuTag key, int value) { if (value != 0) // Not disabled diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java index 0b04ee7875..d126920c24 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityView.java @@ -58,6 +58,15 @@ public interface SettingsActivityView */ void onSettingChanged(); + /** + * Called by a containing Fragment to tell the containing Activity that the Serial Port 1 setting + * was modified. + * + * @param menuTag Identifier for the SerialPort that was modified. + * @param value New setting for the SerialPort. + */ + void onSerialPort1SettingChanged(MenuTag menuTag, int value); + /** * Called by a containing Fragment to tell the containing Activity that a GCPad's setting * was modified. diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java index 3f8499a4ef..75f184f5b0 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.java @@ -10,6 +10,7 @@ import android.provider.DocumentsContract; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.EditText; import android.widget.SeekBar; import android.widget.TextView; @@ -29,12 +30,15 @@ import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem; import org.dolphinemu.dolphinemu.features.settings.model.view.SingleChoiceSetting; import org.dolphinemu.dolphinemu.features.settings.model.view.SingleChoiceSettingDynamicDescriptions; import org.dolphinemu.dolphinemu.features.settings.model.view.SliderSetting; +import org.dolphinemu.dolphinemu.features.settings.model.view.InputStringSetting; import org.dolphinemu.dolphinemu.features.settings.model.view.StringSingleChoiceSetting; import org.dolphinemu.dolphinemu.features.settings.model.view.SubmenuSetting; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.CheckBoxSettingViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.FilePickerViewHolder; +import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.HeaderHyperLinkViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.HeaderViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.InputBindingSettingViewHolder; +import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.InputStringSettingViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.RumbleBindingViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.RunRunnableViewHolder; import org.dolphinemu.dolphinemu.features.settings.ui.viewholder.SettingViewHolder; @@ -119,6 +123,14 @@ public final class SettingsAdapter extends RecyclerView.Adapter + { + String editTextInput = input.getText().toString(); + + if (!item.getSelectedValue(mView.getSettings()).equals(editTextInput)) + { + notifyItemChanged(position); + mView.onSettingChanged(); + } + + item.setSelectedValue(mView.getSettings(), editTextInput); + }); + builder.setNegativeButton(R.string.cancel, null); + + mDialog = builder.show(); + } + public void onSingleChoiceClick(SingleChoiceSetting item, int position) { mClickedItem = item; @@ -364,6 +404,11 @@ public final class SettingsAdapter extends RecyclerView.Adapter mSettingsList; + private int mSerialPort1Type; private int mControllerNumber; private int mControllerType; @@ -83,6 +87,10 @@ public final class SettingsFragmentPresenter { mControllerNumber = menuTag.getSubType(); } + else if (menuTag.isSerialPort1Menu()) + { + mSerialPort1Type = extras.getInt(ARG_SERIALPORT1_TYPE); + } } public void onViewCreated(MenuTag menuTag, Settings settings) @@ -167,6 +175,10 @@ public final class SettingsFragmentPresenter addGraphicsSettings(sl); break; + case CONFIG_SERIALPORT1: + addSerialPortSubSettings(sl, mSerialPort1Type); + break; + case GCPAD_TYPE: addGcPadSettings(sl); break; @@ -425,6 +437,10 @@ public final class SettingsFragmentPresenter R.array.slotDeviceEntries, R.array.slotDeviceValues)); sl.add(new SingleChoiceSetting(mContext, IntSetting.MAIN_SLOT_B, R.string.slot_b_device, 0, R.array.slotDeviceEntries, R.array.slotDeviceValues)); + sl.add(new SingleChoiceSetting(mContext, IntSetting.MAIN_SERIAL_PORT_1, + R.string.serial_port_1_device, 0, + R.array.serialPort1DeviceEntries, R.array.serialPort1DeviceValues, + MenuTag.CONFIG_SERIALPORT1)); } private void addWiiSettings(ArrayList sl) @@ -559,6 +575,16 @@ public final class SettingsFragmentPresenter R.array.synchronizeGpuThreadValues)); } + private void addSerialPortSubSettings(ArrayList sl, int serialPort1Type) + { + if (serialPort1Type == 10) // XLink Kai + { + sl.add(new HyperLinkHeaderSetting(mContext, R.string.xlink_kai_guide_header, 0)); + sl.add(new InputStringSetting(mContext, StringSetting.MAIN_BBA_XLINK_IP, + R.string.xlink_kai_bba_ip, R.string.xlink_kai_bba_ip_description)); + } + } + private void addGcPadSettings(ArrayList sl) { sl.add(new SingleChoiceSetting(mContext, IntSetting.MAIN_SI_DEVICE_0, R.string.controller_0, 0, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java index 04736091df..e79ef6a859 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentView.java @@ -71,6 +71,15 @@ public interface SettingsFragmentView */ void onSettingChanged(); + /** + * Called by a containing Fragment to tell the containing Activity that the Serial Port 1 setting + * was modified. + * + * @param menuTag Identifier for the SerialPort that was modified. + * @param value New setting for the SerialPort. + */ + void onSerialPort1SettingChanged(MenuTag menuTag, int value); + /** * Have the fragment tell the containing Activity that a GCPad's setting was modified. * diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderHyperLinkViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderHyperLinkViewHolder.java new file mode 100644 index 0000000000..8a30e34fff --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderHyperLinkViewHolder.java @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.settings.ui.viewholder; + +import android.content.Context; +import android.text.method.LinkMovementMethod; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem; +import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter; + +public final class HeaderHyperLinkViewHolder extends HeaderViewHolder +{ + private Context mContext; + + public HeaderHyperLinkViewHolder(View itemView, SettingsAdapter adapter, Context context) + { + super(itemView, adapter); + mContext = context; + itemView.setOnClickListener(null); + } + + @Override + public void bind(SettingsItem item) + { + super.bind(item); + mHeaderName.setMovementMethod(LinkMovementMethod.getInstance()); + mHeaderName.setLinkTextColor(ContextCompat.getColor(mContext, R.color.dolphin_blue_secondary)); + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderViewHolder.java index eaa2014364..4422d9081d 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/HeaderViewHolder.java @@ -11,9 +11,9 @@ import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem; import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter; -public final class HeaderViewHolder extends SettingViewHolder +public class HeaderViewHolder extends SettingViewHolder { - private TextView mHeaderName; + protected TextView mHeaderName; public HeaderViewHolder(View itemView, SettingsAdapter adapter) { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputStringSettingViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputStringSettingViewHolder.java new file mode 100644 index 0000000000..da36fb1953 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/InputStringSettingViewHolder.java @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.settings.ui.viewholder; + +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.features.settings.model.view.InputStringSetting; +import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem; +import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter; + +public final class InputStringSettingViewHolder extends SettingViewHolder +{ + private InputStringSetting mInputString; + + private TextView mTextSettingName; + private TextView mTextSettingDescription; + + public InputStringSettingViewHolder(View itemView, SettingsAdapter adapter) + { + super(itemView, adapter); + } + + @Override + protected void findViews(View root) + { + mTextSettingName = root.findViewById(R.id.text_setting_name); + mTextSettingDescription = root.findViewById(R.id.text_setting_description); + } + + @Override + public void bind(SettingsItem item) + { + mInputString = (InputStringSetting) item; + + String inputString = mInputString.getSelectedValue(getAdapter().getSettings()); + + mTextSettingName.setText(item.getName()); + + if (!TextUtils.isEmpty(inputString)) + { + mTextSettingDescription.setText(inputString); + } + else + { + mTextSettingDescription.setText(item.getDescription()); + } + + setStyle(mTextSettingName, mInputString); + } + + @Override + public void onClick(View clicked) + { + if (!mInputString.isEditable()) + { + showNotRuntimeEditableError(); + return; + } + + int position = getAdapterPosition(); + + getAdapter().onInputStringClick(mInputString, position); + + setStyle(mTextSettingName, mInputString); + } + + @Nullable @Override + protected SettingsItem getItem() + { + return mInputString; + } +} diff --git a/Source/Android/app/src/main/res/layout/dialog_input_string.xml b/Source/Android/app/src/main/res/layout/dialog_input_string.xml new file mode 100644 index 0000000000..0af48d47fe --- /dev/null +++ b/Source/Android/app/src/main/res/layout/dialog_input_string.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index 2833d23b86..ff8050b9cb 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -97,6 +97,18 @@ 8 + + + Nothing + Dummy + Broadband Adapter (XLink Kai) + + + 255 + 0 + 10 + + Japanese diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 765310156f..e7b1318b82 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -131,6 +131,7 @@ System Language GameCube Slot A Device GameCube Slot B Device + GameCube Serial Port 1 Device Wii Widescreen Changes aspect ratio from 4:3 to 16:9 in games that support it. @@ -160,6 +161,12 @@ Generate a New Statistics Identity Are you sure you want to generate a new statistics identity? + + Serial Port 1 + For setup instructions, refer to this page. + XLink Kai IP Address/hostname + IP address or hostname of device running the XLink Kai client + Interface Screen Orientation During Emulation From 716c0980d7424dffafe222c5579851b11193301a Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 1 Jun 2022 04:58:13 -0500 Subject: [PATCH 424/659] VideoBackends: Add Metal renderer --- Source/Core/Core/CMakeLists.txt | 4 + Source/Core/VideoBackends/CMakeLists.txt | 4 + Source/Core/VideoBackends/D3D/D3DRender.cpp | 4 +- Source/Core/VideoBackends/D3D/D3DRender.h | 4 +- .../VideoBackends/D3D12/D3D12Renderer.cpp | 4 +- .../Core/VideoBackends/D3D12/D3D12Renderer.h | 4 +- .../Core/VideoBackends/Metal/CMakeLists.txt | 37 + Source/Core/VideoBackends/Metal/MRCHelpers.h | 81 ++ .../Core/VideoBackends/Metal/MTLBoundingBox.h | 30 + .../VideoBackends/Metal/MTLBoundingBox.mm | 97 ++ Source/Core/VideoBackends/Metal/MTLMain.mm | 157 ++++ .../Core/VideoBackends/Metal/MTLObjectCache.h | 91 ++ .../VideoBackends/Metal/MTLObjectCache.mm | 175 ++++ .../Core/VideoBackends/Metal/MTLPerfQuery.h | 20 + .../Core/VideoBackends/Metal/MTLPerfQuery.mm | 4 + Source/Core/VideoBackends/Metal/MTLPipeline.h | 64 ++ .../Core/VideoBackends/Metal/MTLPipeline.mm | 66 ++ Source/Core/VideoBackends/Metal/MTLRenderer.h | 91 ++ .../Core/VideoBackends/Metal/MTLRenderer.mm | 709 +++++++++++++++ Source/Core/VideoBackends/Metal/MTLShader.h | 30 + .../VideoBackends/Metal/MTLStateTracker.h | 266 ++++++ .../VideoBackends/Metal/MTLStateTracker.mm | 849 ++++++++++++++++++ Source/Core/VideoBackends/Metal/MTLTexture.h | 77 ++ Source/Core/VideoBackends/Metal/MTLTexture.mm | 179 ++++ Source/Core/VideoBackends/Metal/MTLUtil.h | 54 ++ Source/Core/VideoBackends/Metal/MTLUtil.mm | 358 ++++++++ .../VideoBackends/Metal/MTLVertexManager.h | 30 + .../VideoBackends/Metal/MTLVertexManager.mm | 89 ++ .../Core/VideoBackends/Metal/VideoBackend.h | 27 + Source/Core/VideoBackends/OGL/OGLRender.cpp | 4 +- Source/Core/VideoBackends/OGL/OGLRender.h | 4 +- .../Core/VideoBackends/Vulkan/VKRenderer.cpp | 4 +- Source/Core/VideoBackends/Vulkan/VKRenderer.h | 4 +- .../Core/VideoCommon/FramebufferShaderGen.cpp | 5 + Source/Core/VideoCommon/RenderBase.h | 4 +- Source/Core/VideoCommon/ShaderGenCommon.cpp | 3 + Source/Core/VideoCommon/Spirv.cpp | 2 +- Source/Core/VideoCommon/TextureCacheBase.cpp | 3 +- .../VideoCommon/TextureConversionShader.cpp | 116 ++- Source/Core/VideoCommon/UberShaderPixel.cpp | 2 +- Source/Core/VideoCommon/VideoBackendBase.cpp | 4 + Source/Core/VideoCommon/VideoCommon.h | 1 + 42 files changed, 3714 insertions(+), 47 deletions(-) create mode 100644 Source/Core/VideoBackends/Metal/CMakeLists.txt create mode 100644 Source/Core/VideoBackends/Metal/MRCHelpers.h create mode 100644 Source/Core/VideoBackends/Metal/MTLBoundingBox.h create mode 100644 Source/Core/VideoBackends/Metal/MTLBoundingBox.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLMain.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLObjectCache.h create mode 100644 Source/Core/VideoBackends/Metal/MTLObjectCache.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLPerfQuery.h create mode 100644 Source/Core/VideoBackends/Metal/MTLPerfQuery.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLPipeline.h create mode 100644 Source/Core/VideoBackends/Metal/MTLPipeline.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLRenderer.h create mode 100644 Source/Core/VideoBackends/Metal/MTLRenderer.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLShader.h create mode 100644 Source/Core/VideoBackends/Metal/MTLStateTracker.h create mode 100644 Source/Core/VideoBackends/Metal/MTLStateTracker.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLTexture.h create mode 100644 Source/Core/VideoBackends/Metal/MTLTexture.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLUtil.h create mode 100644 Source/Core/VideoBackends/Metal/MTLUtil.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLVertexManager.h create mode 100644 Source/Core/VideoBackends/Metal/MTLVertexManager.mm create mode 100644 Source/Core/VideoBackends/Metal/VideoBackend.h diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 99a143f2bd..f3a6d722e2 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -631,6 +631,10 @@ if(ENABLE_VULKAN) target_link_libraries(core PUBLIC videovulkan) endif() +if(APPLE) + target_link_libraries(core PUBLIC videometal) +endif() + if(USE_MGBA) target_sources(core PRIVATE HW/GBACore.cpp diff --git a/Source/Core/VideoBackends/CMakeLists.txt b/Source/Core/VideoBackends/CMakeLists.txt index 3ab2d4c4e4..55b44f8c5d 100644 --- a/Source/Core/VideoBackends/CMakeLists.txt +++ b/Source/Core/VideoBackends/CMakeLists.txt @@ -8,6 +8,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") add_subdirectory(D3D12) endif() +if(APPLE) + add_subdirectory(Metal) +endif() + if(ENABLE_VULKAN) add_subdirectory(Vulkan) endif() diff --git a/Source/Core/VideoBackends/D3D/D3DRender.cpp b/Source/Core/VideoBackends/D3D/D3DRender.cpp index 24d7526110..988f9fb6ad 100644 --- a/Source/Core/VideoBackends/D3D/D3DRender.cpp +++ b/Source/Core/VideoBackends/D3D/D3DRender.cpp @@ -150,8 +150,8 @@ void Renderer::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) D3D::context->DrawIndexed(num_indices, base_index, base_vertex); } -void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) +void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) { D3D::stateman->SetComputeShader(static_cast(shader)->GetD3DComputeShader()); D3D::stateman->SyncComputeBindings(); diff --git a/Source/Core/VideoBackends/D3D/D3DRender.h b/Source/Core/VideoBackends/D3D/D3DRender.h index ba247e3ec8..a0d25bc270 100644 --- a/Source/Core/VideoBackends/D3D/D3DRender.h +++ b/Source/Core/VideoBackends/D3D/D3DRender.h @@ -57,8 +57,8 @@ public: float far_depth) override; void Draw(u32 base_vertex, u32 num_vertices) override; void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) override; - void DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) override; + void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) override; void BindBackbuffer(const ClearColor& clear_color = {}) override; void PresentBackbuffer() override; void SetFullscreen(bool enable_fullscreen) override; diff --git a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp index d4eb207a45..b1cb3378ed 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp +++ b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp @@ -365,8 +365,8 @@ void Renderer::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) g_dx_context->GetCommandList()->DrawIndexedInstanced(num_indices, 1, base_index, base_vertex, 0); } -void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) +void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) { SetRootSignatures(); SetDescriptorHeaps(); diff --git a/Source/Core/VideoBackends/D3D12/D3D12Renderer.h b/Source/Core/VideoBackends/D3D12/D3D12Renderer.h index eaf4544022..9624199aa4 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12Renderer.h +++ b/Source/Core/VideoBackends/D3D12/D3D12Renderer.h @@ -69,8 +69,8 @@ public: float far_depth) override; void Draw(u32 base_vertex, u32 num_vertices) override; void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) override; - void DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) override; + void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) override; void BindBackbuffer(const ClearColor& clear_color = {}) override; void PresentBackbuffer() override; diff --git a/Source/Core/VideoBackends/Metal/CMakeLists.txt b/Source/Core/VideoBackends/Metal/CMakeLists.txt new file mode 100644 index 0000000000..a3becc1d2e --- /dev/null +++ b/Source/Core/VideoBackends/Metal/CMakeLists.txt @@ -0,0 +1,37 @@ +add_library(videometal + MRCHelpers.h + MTLBoundingBox.mm + MTLBoundingBox.h + MTLMain.mm + MTLObjectCache.h + MTLObjectCache.mm + MTLPerfQuery.mm + MTLPerfQuery.h + MTLPipeline.mm + MTLPipeline.h + MTLRenderer.mm + MTLRenderer.h + MTLShader.h + MTLStateTracker.mm + MTLStateTracker.h + MTLTexture.mm + MTLTexture.h + MTLUtil.mm + MTLUtil.h + MTLVertexManager.mm + MTLVertexManager.h + VideoBackend.h +) + +find_library(METAL_LIBRARY Metal) +find_library(QUARTZCORE_LIBRARY QuartzCore) + +target_link_libraries(videometal +PUBLIC + common + videocommon +PRIVATE + spirv_cross + ${METAL_LIBRARY} + ${QUARTZCORE_LIBRARY} +) diff --git a/Source/Core/VideoBackends/Metal/MRCHelpers.h b/Source/Core/VideoBackends/Metal/MRCHelpers.h new file mode 100644 index 0000000000..1da2e0c8d1 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MRCHelpers.h @@ -0,0 +1,81 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +// clang-format off +#ifndef __OBJC__ + #error This header is for use with Objective-C++ only. +#endif +#if __has_feature(objc_arc) + #error This file is for manual reference counting! Compile without -fobjc-arc +#endif +// clang-format on + +#pragma once + +#include +#include + +/// Managed Obj-C pointer +template +class MRCOwned +{ + T ptr; + MRCOwned(T ptr) : ptr(ptr) {} + +public: + MRCOwned() : ptr(nullptr) {} + MRCOwned(std::nullptr_t) : ptr(nullptr) {} + MRCOwned(MRCOwned&& other) : ptr(other.ptr) { other.ptr = nullptr; } + MRCOwned(const MRCOwned& other) : ptr(other.ptr) { [ptr retain]; } + ~MRCOwned() + { + if (ptr) + [ptr release]; + } + operator T() const { return ptr; } + MRCOwned& operator=(const MRCOwned& other) + { + [other.ptr retain]; + if (ptr) + [ptr release]; + ptr = other.ptr; + return *this; + } + MRCOwned& operator=(MRCOwned&& other) + { + std::swap(ptr, other.ptr); + return *this; + } + void Reset() + { + [ptr release]; + ptr = nullptr; + } + T Disown() + { + T tmp = ptr; + ptr = nullptr; + return tmp; + } + T Get() const { return ptr; } + static MRCOwned Transfer(T ptr) { return MRCOwned(ptr); } + static MRCOwned Retain(T ptr) + { + [ptr retain]; + return MRCOwned(ptr); + } +}; + +/// Take ownership of an Obj-C pointer (equivalent to __bridge_transfer) +template +static inline MRCOwned MRCTransfer(T ptr) +{ + return MRCOwned::Transfer(ptr); +} + +/// Retain an Obj-C pointer (equivalent to __bridge) +template +static inline MRCOwned MRCRetain(T ptr) +{ + return MRCOwned::Retain(ptr); +} diff --git a/Source/Core/VideoBackends/Metal/MTLBoundingBox.h b/Source/Core/VideoBackends/Metal/MTLBoundingBox.h new file mode 100644 index 0000000000..d4a67389a2 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLBoundingBox.h @@ -0,0 +1,30 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoCommon/BoundingBox.h" + +#include + +#include "VideoBackends/Metal/MRCHelpers.h" + +namespace Metal +{ +class BoundingBox final : public ::BoundingBox +{ +public: + ~BoundingBox() override; + + bool Initialize() override; + +protected: + std::vector Read(u32 index, u32 length) override; + void Write(u32 index, const std::vector& values) override; + +private: + BBoxType* m_cpu_buffer_ptr; + MRCOwned> m_download_fence; + MRCOwned> m_upload_fence; + MRCOwned> m_cpu_buffer; + MRCOwned> m_gpu_buffer; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm b/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm new file mode 100644 index 0000000000..89c446b040 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm @@ -0,0 +1,97 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLBoundingBox.h" + +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLStateTracker.h" + +static constexpr size_t BUFFER_SIZE = sizeof(BBoxType) * NUM_BBOX_VALUES; + +Metal::BoundingBox::~BoundingBox() +{ + if (g_state_tracker) + g_state_tracker->SetBBoxBuffer(nullptr, nullptr, nullptr); +} + +bool Metal::BoundingBox::Initialize() +{ + const MTLResourceOptions gpu_storage_mode = + g_features.unified_memory ? MTLResourceStorageModeShared : MTLResourceStorageModePrivate; + const MTLResourceOptions gpu_options = gpu_storage_mode | MTLResourceHazardTrackingModeUntracked; + const id dev = g_device; + m_upload_fence = MRCTransfer([dev newFence]); + [m_upload_fence setLabel:@"BBox Upload Fence"]; + m_download_fence = MRCTransfer([dev newFence]); + [m_download_fence setLabel:@"BBox Download Fence"]; + m_gpu_buffer = MRCTransfer([dev newBufferWithLength:BUFFER_SIZE options:gpu_options]); + if (g_features.unified_memory) + { + [m_gpu_buffer setLabel:@"BBox Buffer"]; + m_cpu_buffer_ptr = static_cast([m_gpu_buffer contents]); + } + else + { + m_cpu_buffer = MRCTransfer([dev newBufferWithLength:BUFFER_SIZE + options:MTLResourceStorageModeShared]); + m_cpu_buffer_ptr = static_cast([m_cpu_buffer contents]); + [m_gpu_buffer setLabel:@"BBox GPU Buffer"]; + [m_cpu_buffer setLabel:@"BBox CPU Buffer"]; + } + g_state_tracker->SetBBoxBuffer(m_gpu_buffer, m_upload_fence, m_download_fence); + return true; +} + +std::vector Metal::BoundingBox::Read(u32 index, u32 length) +{ + @autoreleasepool + { + g_state_tracker->EndRenderPass(); + if (!g_features.unified_memory) + { + id download = [g_state_tracker->GetRenderCmdBuf() blitCommandEncoder]; + [download setLabel:@"BBox Download"]; + [download waitForFence:m_download_fence]; + [download copyFromBuffer:m_gpu_buffer + sourceOffset:0 + toBuffer:m_cpu_buffer + destinationOffset:0 + size:BUFFER_SIZE]; + [download endEncoding]; + } + g_state_tracker->FlushEncoders(); + g_state_tracker->WaitForFlushedEncoders(); + return std::vector(m_cpu_buffer_ptr + index, m_cpu_buffer_ptr + index + length); + } +} + +void Metal::BoundingBox::Write(u32 index, const std::vector& values) +{ + const u32 size = values.size() * sizeof(BBoxType); + if (g_features.unified_memory && !g_state_tracker->HasUnflushedData() && + !g_state_tracker->GPUBusy()) + { + // We can just write directly to the buffer! + memcpy(m_cpu_buffer_ptr + index, values.data(), size); + } + else + { + @autoreleasepool + { + StateTracker::Map map = g_state_tracker->Allocate(StateTracker::UploadBuffer::Other, size, + StateTracker::AlignMask::Other); + memcpy(map.cpu_buffer, values.data(), size); + g_state_tracker->EndRenderPass(); + id upload = [g_state_tracker->GetRenderCmdBuf() blitCommandEncoder]; + [upload setLabel:@"BBox Upload"]; + [upload waitForFence:m_download_fence]; + [upload copyFromBuffer:map.gpu_buffer + sourceOffset:map.gpu_offset + toBuffer:m_gpu_buffer + destinationOffset:index * sizeof(BBoxType) + size:size]; + [upload updateFence:m_upload_fence]; + [upload endEncoding]; + } + } +} diff --git a/Source/Core/VideoBackends/Metal/MTLMain.mm b/Source/Core/VideoBackends/Metal/MTLMain.mm new file mode 100644 index 0000000000..2b54d93784 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLMain.mm @@ -0,0 +1,157 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/VideoBackend.h" + +#include +#include +#include + +#include "Common/Common.h" +#include "Common/MsgHandler.h" + +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLPerfQuery.h" +#include "VideoBackends/Metal/MTLRenderer.h" +#include "VideoBackends/Metal/MTLStateTracker.h" +#include "VideoBackends/Metal/MTLUtil.h" +#include "VideoBackends/Metal/MTLVertexManager.h" + +#include "VideoCommon/FramebufferManager.h" +#include "VideoCommon/VideoCommon.h" +#include "VideoCommon/VideoConfig.h" + +std::string Metal::VideoBackend::GetName() const +{ + return NAME; +} + +std::string Metal::VideoBackend::GetDisplayName() const +{ + // i18n: Apple's Metal graphics API (https://developer.apple.com/metal/) + return _trans("Metal"); +} + +std::optional Metal::VideoBackend::GetWarningMessage() const +{ + if (Util::GetAdapterList().empty()) + { + return _trans("No Metal-compatible GPUs were found. " + "Use the OpenGL backend or upgrade your computer/GPU"); + } + + return std::nullopt; +} + +static bool WindowSystemTypeSupportsMetal(WindowSystemType type) +{ + switch (type) + { + case WindowSystemType::MacOS: + return true; + default: + return false; + } +} + +bool Metal::VideoBackend::Initialize(const WindowSystemInfo& wsi) +{ + @autoreleasepool + { + if (!WindowSystemTypeSupportsMetal(wsi.type) || !wsi.render_surface) + { + PanicAlertFmt("Bad WindowSystemInfo for Metal renderer."); + return false; + } + + auto devs = Util::GetAdapterList(); + if (devs.empty()) + { + PanicAlertFmt("No Metal GPUs detected."); + return false; + } + + Util::PopulateBackendInfo(&g_Config); + Util::PopulateBackendInfoAdapters(&g_Config, devs); + + // Since we haven't called InitializeShared yet, iAdapter may be out of range, + // so we have to check it ourselves. + size_t selected_adapter_index = static_cast(g_Config.iAdapter); + if (selected_adapter_index >= devs.size()) + { + WARN_LOG_FMT(VIDEO, "Metal adapter index out of range, selecting default adapter."); + selected_adapter_index = 0; + } + MRCOwned> adapter = std::move(devs[selected_adapter_index]); + Util::PopulateBackendInfoFeatures(&g_Config, adapter); + + // With the backend information populated, we can now initialize videocommon. + InitializeShared(); + + MRCOwned layer = MRCRetain(static_cast(wsi.render_surface)); + [layer setDevice:adapter]; + if (Util::ToAbstract([layer pixelFormat]) == AbstractTextureFormat::Undefined) + [layer setPixelFormat:MTLPixelFormatBGRA8Unorm]; + CGSize size = [layer bounds].size; + float scale = [layer contentsScale]; + + ObjectCache::Initialize(std::move(adapter)); + g_state_tracker = std::make_unique(); + g_renderer = std::make_unique(std::move(layer), size.width * scale, + size.height * scale, scale); + g_vertex_manager = std::make_unique(); + g_perf_query = std::make_unique(); + g_framebuffer_manager = std::make_unique(); + g_texture_cache = std::make_unique(); + g_shader_cache = std::make_unique(); + + if (!g_vertex_manager->Initialize() || !g_shader_cache->Initialize() || + !g_renderer->Initialize() || !g_framebuffer_manager->Initialize() || + !g_texture_cache->Initialize()) + { + PanicAlertFmt("Failed to initialize renderer classes"); + Shutdown(); + return false; + } + + g_shader_cache->InitializeShaderCache(); + + return true; + } +} + +void Metal::VideoBackend::Shutdown() +{ + g_shader_cache->Shutdown(); + g_renderer->Shutdown(); + + g_shader_cache.reset(); + g_texture_cache.reset(); + g_framebuffer_manager.reset(); + g_perf_query.reset(); + g_vertex_manager.reset(); + g_renderer.reset(); + g_state_tracker.reset(); + ObjectCache::Shutdown(); + ShutdownShared(); +} + +void Metal::VideoBackend::InitBackendInfo() +{ + @autoreleasepool + { + Util::PopulateBackendInfo(&g_Config); + Util::PopulateBackendInfoAdapters(&g_Config, Util::GetAdapterList()); + } +} + +void Metal::VideoBackend::PrepareWindow(WindowSystemInfo& wsi) +{ + if (wsi.type != WindowSystemType::MacOS) + return; + NSView* view = static_cast(wsi.render_surface); + CAMetalLayer* layer = [CAMetalLayer layer]; + [view setWantsLayer:YES]; + [view setLayer:layer]; + wsi.render_surface = layer; +} diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.h b/Source/Core/VideoBackends/Metal/MTLObjectCache.h new file mode 100644 index 0000000000..d8a10d2d51 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.h @@ -0,0 +1,91 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include "VideoBackends/Metal/MRCHelpers.h" + +#include "VideoCommon/RenderState.h" + +namespace Metal +{ +extern MRCOwned> g_device; +extern MRCOwned> g_queue; + +struct DepthStencilSelector +{ + u8 value; + + DepthStencilSelector() : value(0) {} + DepthStencilSelector(bool update_enable, enum CompareMode cmp) + : value(update_enable | (static_cast(cmp) << 1)) + { + } + DepthStencilSelector(DepthState state) + : DepthStencilSelector(state.testenable ? state.updateenable : false, + state.testenable ? state.func : CompareMode::Always) + { + } + + bool UpdateEnable() const { return value & 1; } + enum CompareMode CompareMode() const { return static_cast(value >> 1); } + + bool operator==(const DepthStencilSelector& other) { return value == other.value; } + bool operator!=(const DepthStencilSelector& other) { return !(*this == other); } + static constexpr size_t N_VALUES = 1 << 4; +}; + +struct SamplerSelector +{ + u8 value; + SamplerSelector() : value(0) {} + SamplerSelector(SamplerState state) + { + value = (static_cast(state.tm0.min_filter.Value()) << 0) | + (static_cast(state.tm0.mag_filter.Value()) << 1) | + (static_cast(state.tm0.mipmap_filter.Value()) << 2) | + (static_cast(state.tm0.anisotropic_filtering) << 3); + value |= (static_cast(state.tm0.wrap_u.Value()) + + 3 * static_cast(state.tm0.wrap_v.Value())) + << 4; + } + FilterMode MinFilter() const { return static_cast(value & 1); } + FilterMode MagFilter() const { return static_cast((value >> 1) & 1); } + FilterMode MipFilter() const { return static_cast((value >> 2) & 1); } + WrapMode WrapU() const { return static_cast((value >> 4) % 3); } + WrapMode WrapV() const { return static_cast((value >> 4) / 3); } + bool AnisotropicFiltering() const { return ((value >> 3) & 1); } + + bool operator==(const SamplerSelector& other) { return value == other.value; } + bool operator!=(const SamplerSelector& other) { return !(*this == other); } + static constexpr size_t N_VALUES = (1 << 4) * 9; +}; + +class ObjectCache +{ + ObjectCache(); + +public: + ~ObjectCache(); + + static void Initialize(MRCOwned> device); + static void Shutdown(); + + id GetDepthStencil(DepthStencilSelector sel) { return m_dss[sel.value]; } + + id GetSampler(SamplerSelector sel) { return m_samplers[sel.value]; } + + id GetSampler(SamplerState state) { return GetSampler(SamplerSelector(state)); } + + void ReloadSamplers(); + +private: + MRCOwned> m_dss[DepthStencilSelector::N_VALUES]; + MRCOwned> m_samplers[SamplerSelector::N_VALUES]; +}; + +extern std::unique_ptr g_object_cache; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm new file mode 100644 index 0000000000..22809f5937 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm @@ -0,0 +1,175 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLObjectCache.h" + +#include "VideoCommon/VideoConfig.h" + +MRCOwned> Metal::g_device; +MRCOwned> Metal::g_queue; +std::unique_ptr Metal::g_object_cache; + +static void SetupDepthStencil( + MRCOwned> (&dss)[Metal::DepthStencilSelector::N_VALUES]); +static void SetupSamplers(MRCOwned> (&samplers)[Metal::SamplerSelector::N_VALUES]); + +Metal::ObjectCache::ObjectCache() +{ + SetupDepthStencil(m_dss); + SetupSamplers(m_samplers); +} + +Metal::ObjectCache::~ObjectCache() +{ +} + +void Metal::ObjectCache::Initialize(MRCOwned> device) +{ + g_device = std::move(device); + g_queue = MRCTransfer([g_device newCommandQueue]); + g_object_cache = std::unique_ptr(new ObjectCache); +} + +void Metal::ObjectCache::Shutdown() +{ + g_object_cache.reset(); + g_queue = nullptr; + g_device = nullptr; +} + +// MARK: Depth Stencil State + +// clang-format off + +static MTLCompareFunction Convert(CompareMode mode) +{ + const bool invert_depth = !g_Config.backend_info.bSupportsReversedDepthRange; + switch (mode) + { + case CompareMode::Never: return MTLCompareFunctionNever; + case CompareMode::Less: return invert_depth ? MTLCompareFunctionGreater + : MTLCompareFunctionLess; + case CompareMode::Equal: return MTLCompareFunctionEqual; + case CompareMode::LEqual: return invert_depth ? MTLCompareFunctionGreaterEqual + : MTLCompareFunctionLessEqual; + case CompareMode::Greater: return invert_depth ? MTLCompareFunctionLess + : MTLCompareFunctionGreater; + case CompareMode::NEqual: return MTLCompareFunctionNotEqual; + case CompareMode::GEqual: return invert_depth ? MTLCompareFunctionLessEqual + : MTLCompareFunctionGreaterEqual; + case CompareMode::Always: return MTLCompareFunctionAlways; + } +} + +static const char* to_string(MTLCompareFunction compare) +{ + switch (compare) + { + case MTLCompareFunctionNever: return "Never"; + case MTLCompareFunctionGreater: return "Greater"; + case MTLCompareFunctionEqual: return "Equal"; + case MTLCompareFunctionGreaterEqual: return "GEqual"; + case MTLCompareFunctionLess: return "Less"; + case MTLCompareFunctionNotEqual: return "NEqual"; + case MTLCompareFunctionLessEqual: return "LEqual"; + case MTLCompareFunctionAlways: return "Always"; + } +} + +// clang-format on + +static void SetupDepthStencil( + MRCOwned> (&dss)[Metal::DepthStencilSelector::N_VALUES]) +{ + auto desc = MRCTransfer([MTLDepthStencilDescriptor new]); + Metal::DepthStencilSelector sel; + for (size_t i = 0; i < std::size(dss); ++i) + { + sel.value = i; + MTLCompareFunction mcompare = Convert(sel.CompareMode()); + [desc setDepthWriteEnabled:sel.UpdateEnable()]; + [desc setDepthCompareFunction:mcompare]; + [desc setLabel:[NSString stringWithFormat:@"DSS %s%s", to_string(mcompare), + sel.UpdateEnable() ? "+Write" : ""]]; + dss[i] = MRCTransfer([Metal::g_device newDepthStencilStateWithDescriptor:desc]); + } +} + +// MARK: Samplers + +// clang-format off + +static MTLSamplerMinMagFilter ConvertMinMag(FilterMode filter) +{ + switch (filter) + { + case FilterMode::Linear: return MTLSamplerMinMagFilterLinear; + case FilterMode::Near: return MTLSamplerMinMagFilterNearest; + } +} + +static MTLSamplerMipFilter ConvertMip(FilterMode filter) +{ + switch (filter) + { + case FilterMode::Linear: return MTLSamplerMipFilterLinear; + case FilterMode::Near: return MTLSamplerMipFilterNearest; + } +} + +static MTLSamplerAddressMode Convert(WrapMode wrap) +{ + switch (wrap) + { + case WrapMode::Clamp: return MTLSamplerAddressModeClampToEdge; + case WrapMode::Mirror: return MTLSamplerAddressModeMirrorRepeat; + case WrapMode::Repeat: return MTLSamplerAddressModeRepeat; + } +} + +static const char* to_string(FilterMode filter) +{ + switch (filter) + { + case FilterMode::Linear: return "Ln"; + case FilterMode::Near: return "Pt"; + } +} +static const char* to_string(WrapMode wrap) +{ + switch (wrap) + { + case WrapMode::Clamp: return "C"; + case WrapMode::Mirror: return "M"; + case WrapMode::Repeat: return "R"; + } +} + +// clang-format on + +static void SetupSamplers(MRCOwned> (&samplers)[Metal::SamplerSelector::N_VALUES]) +{ + auto desc = MRCTransfer([MTLSamplerDescriptor new]); + Metal::SamplerSelector sel; + for (size_t i = 0; i < std::size(samplers); i++) + { + sel.value = i; + [desc setMinFilter:ConvertMinMag(sel.MinFilter())]; + [desc setMagFilter:ConvertMinMag(sel.MagFilter())]; + [desc setMipFilter:ConvertMip(sel.MipFilter())]; + [desc setSAddressMode:Convert(sel.WrapU())]; + [desc setTAddressMode:Convert(sel.WrapV())]; + [desc setMaxAnisotropy:1 << (sel.AnisotropicFiltering() ? g_ActiveConfig.iMaxAnisotropy : 0)]; + [desc setLabel:MRCTransfer([[NSString alloc] + initWithFormat:@"%s%s%s %s%s%s", to_string(sel.MinFilter()), + to_string(sel.MagFilter()), to_string(sel.MipFilter()), + to_string(sel.WrapU()), to_string(sel.WrapV()), + sel.AnisotropicFiltering() ? "(AF)" : ""])]; + samplers[i] = MRCTransfer([Metal::g_device newSamplerStateWithDescriptor:desc]); + } +} + +void Metal::ObjectCache::ReloadSamplers() +{ + SetupSamplers(m_samplers); +} diff --git a/Source/Core/VideoBackends/Metal/MTLPerfQuery.h b/Source/Core/VideoBackends/Metal/MTLPerfQuery.h new file mode 100644 index 0000000000..793cf8cec5 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLPerfQuery.h @@ -0,0 +1,20 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "VideoCommon/PerfQueryBase.h" + +namespace Metal +{ +class PerfQuery final : public PerfQueryBase +{ +public: + void EnableQuery(PerfQueryGroup type) override {} + void DisableQuery(PerfQueryGroup type) override {} + void ResetQuery() override {} + u32 GetQueryResult(PerfQueryType type) override { return 0; } + void FlushResults() override {} + bool IsFlushed() const override { return true; } +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm b/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm new file mode 100644 index 0000000000..2892bdc747 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm @@ -0,0 +1,4 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLPerfQuery.h" diff --git a/Source/Core/VideoBackends/Metal/MTLPipeline.h b/Source/Core/VideoBackends/Metal/MTLPipeline.h new file mode 100644 index 0000000000..d5a642aedd --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLPipeline.h @@ -0,0 +1,64 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "VideoBackends/Metal/MRCHelpers.h" +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLShader.h" + +#include "VideoCommon/AbstractPipeline.h" +#include "VideoCommon/AbstractShader.h" + +namespace Metal +{ +class Pipeline final : public AbstractPipeline +{ +public: + explicit Pipeline(MRCOwned> pipeline, + MTLRenderPipelineReflection* reflection, MTLPrimitiveType prim, + MTLCullMode cull, DepthState depth, AbstractPipelineUsage usage); + + id Get() const { return m_pipeline; } + MTLPrimitiveType Prim() const { return m_prim; } + MTLCullMode Cull() const { return m_cull; } + DepthStencilSelector DepthStencil() const { return m_depth_stencil; } + AbstractPipelineUsage Usage() const { return m_usage; } + u32 GetTextures() const { return m_textures; } + u32 GetSamplers() const { return m_samplers; } + u32 GetVertexBuffers() const { return m_vertex_buffers; } + u32 GetFragmentBuffers() const { return m_fragment_buffers; } + bool UsesVertexBuffer(u32 index) const { return m_vertex_buffers & (1 << index); } + bool UsesFragmentBuffer(u32 index) const { return m_fragment_buffers & (1 << index); } + +private: + MRCOwned> m_pipeline; + MTLPrimitiveType m_prim; + MTLCullMode m_cull; + DepthStencilSelector m_depth_stencil; + AbstractPipelineUsage m_usage; + u32 m_textures = 0; + u32 m_samplers = 0; + u32 m_vertex_buffers = 0; + u32 m_fragment_buffers = 0; +}; + +class ComputePipeline : public Shader +{ +public: + explicit ComputePipeline(ShaderStage stage, MTLComputePipelineReflection* reflection, + std::string msl, MRCOwned> shader, + MRCOwned> pipeline); + + id GetComputePipeline() const { return m_compute_pipeline; } + bool UsesTexture(u32 index) const { return m_textures & (1 << index); } + bool UsesBuffer(u32 index) const { return m_buffers & (1 << index); } + +private: + MRCOwned> m_compute_pipeline; + u32 m_textures = 0; + u32 m_buffers = 0; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLPipeline.mm b/Source/Core/VideoBackends/Metal/MTLPipeline.mm new file mode 100644 index 0000000000..405ea76973 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLPipeline.mm @@ -0,0 +1,66 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLPipeline.h" + +#include "Common/MsgHandler.h" + +static void MarkAsUsed(u32* list, u32 start, u32 length) +{ + for (u32 i = start; i < start + length; ++i) + *list |= 1 << i; +} + +static void GetArguments(NSArray* arguments, u32* textures, u32* samplers, + u32* buffers) +{ + for (MTLArgument* argument in arguments) + { + const u32 idx = [argument index]; + const u32 length = [argument arrayLength]; + if (idx + length > 32) + { + PanicAlertFmt("Making a MTLPipeline with high argument index {:d}..<{:d} for {:s}", // + idx, idx + length, [[argument name] UTF8String]); + continue; + } + switch ([argument type]) + { + case MTLArgumentTypeTexture: + if (textures) + MarkAsUsed(textures, idx, length); + else + PanicAlertFmt("Vertex function wants a texture!"); + break; + case MTLArgumentTypeSampler: + if (samplers) + MarkAsUsed(samplers, idx, length); + else + PanicAlertFmt("Vertex function wants a sampler!"); + break; + case MTLArgumentTypeBuffer: + MarkAsUsed(buffers, idx, length); + break; + default: + break; + } + } +} + +Metal::Pipeline::Pipeline(MRCOwned> pipeline, + MTLRenderPipelineReflection* reflection, MTLPrimitiveType prim, + MTLCullMode cull, DepthState depth, AbstractPipelineUsage usage) + : m_pipeline(std::move(pipeline)), m_prim(prim), m_cull(cull), m_depth_stencil(depth), + m_usage(usage) +{ + GetArguments([reflection vertexArguments], nullptr, nullptr, &m_vertex_buffers); + GetArguments([reflection fragmentArguments], &m_textures, &m_samplers, &m_fragment_buffers); +} + +Metal::ComputePipeline::ComputePipeline(ShaderStage stage, MTLComputePipelineReflection* reflection, + std::string msl, MRCOwned> shader, + MRCOwned> pipeline) + : Shader(stage, std::move(msl), std::move(shader)), m_compute_pipeline(std::move(pipeline)) +{ + GetArguments([reflection arguments], &m_textures, nullptr, &m_buffers); +} diff --git a/Source/Core/VideoBackends/Metal/MTLRenderer.h b/Source/Core/VideoBackends/Metal/MTLRenderer.h new file mode 100644 index 0000000000..6208e3f57e --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLRenderer.h @@ -0,0 +1,91 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include "VideoCommon/RenderBase.h" + +#include "VideoBackends/Metal/MRCHelpers.h" + +namespace Metal +{ +class Framebuffer; +class Texture; + +class Renderer final : public ::Renderer +{ +public: + Renderer(MRCOwned layer, int width, int height, float layer_scale); + ~Renderer() override; + + bool IsHeadless() const override; + + bool Initialize() override; + + std::unique_ptr CreateTexture(const TextureConfig& config, + std::string_view name) override; + std::unique_ptr + CreateStagingTexture(StagingTextureType type, const TextureConfig& config) override; + std::unique_ptr + CreateFramebuffer(AbstractTexture* color_attachment, AbstractTexture* depth_attachment) override; + + std::unique_ptr CreateShaderFromSource(ShaderStage stage, std::string_view source, + std::string_view name) override; + std::unique_ptr CreateShaderFromBinary(ShaderStage stage, const void* data, + size_t length, + std::string_view name) override; + std::unique_ptr CreateShaderFromMSL(ShaderStage stage, std::string msl, + std::string_view glsl, std::string_view name); + std::unique_ptr + CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_decl) override; + std::unique_ptr CreatePipeline(const AbstractPipelineConfig& config, + const void* cache_data = nullptr, + size_t cache_data_length = 0) override; + + void Flush() override; + void WaitForGPUIdle() override; + void OnConfigChanged(u32 bits) override; + + void ClearScreen(const MathUtil::Rectangle& rc, bool color_enable, bool alpha_enable, + bool z_enable, u32 color, u32 z) override; + + void SetPipeline(const AbstractPipeline* pipeline) override; + void SetFramebuffer(AbstractFramebuffer* framebuffer) override; + void SetAndDiscardFramebuffer(AbstractFramebuffer* framebuffer) override; + void SetAndClearFramebuffer(AbstractFramebuffer* framebuffer, const ClearColor& color_value = {}, + float depth_value = 0.0f) override; + void SetScissorRect(const MathUtil::Rectangle& rc) override; + void SetTexture(u32 index, const AbstractTexture* texture) override; + void SetSamplerState(u32 index, const SamplerState& state) override; + void SetComputeImageTexture(AbstractTexture* texture, bool read, bool write) override; + void UnbindTexture(const AbstractTexture* texture) override; + void SetViewport(float x, float y, float width, float height, float near_depth, + float far_depth) override; + void Draw(u32 base_vertex, u32 num_vertices) override; + void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) override; + void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) override; + void BindBackbuffer(const ClearColor& clear_color = {}) override; + void PresentBackbuffer() override; + +protected: + std::unique_ptr<::BoundingBox> CreateBoundingBox() const override; + +private: + MRCOwned m_layer; + MRCOwned> m_drawable; + std::unique_ptr m_bb_texture; + std::unique_ptr m_backbuffer; + u32 m_texture_counter = 0; + u32 m_staging_texture_counter = 0; + std::array m_shader_counter = {}; + u32 m_pipeline_counter = 0; + + void CheckForSurfaceChange(); + void CheckForSurfaceResize(); + void SetupSurface(); +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLRenderer.mm b/Source/Core/VideoBackends/Metal/MTLRenderer.mm new file mode 100644 index 0000000000..b552b11722 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLRenderer.mm @@ -0,0 +1,709 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLRenderer.h" + +#include "VideoBackends/Metal/MTLBoundingBox.h" +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLPipeline.h" +#include "VideoBackends/Metal/MTLStateTracker.h" +#include "VideoBackends/Metal/MTLTexture.h" +#include "VideoBackends/Metal/MTLUtil.h" +#include "VideoBackends/Metal/MTLVertexManager.h" + +#include "VideoCommon/FramebufferManager.h" +#include "VideoCommon/NativeVertexFormat.h" +#include "VideoCommon/VertexShaderGen.h" +#include "VideoCommon/VideoBackendBase.h" + +Metal::Renderer::Renderer(MRCOwned layer, int width, int height, float layer_scale) + : ::Renderer(width, height, layer_scale, Util::ToAbstract([layer pixelFormat])), + m_layer(std::move(layer)) +{ + UpdateActiveConfig(); +} + +Metal::Renderer::~Renderer() = default; + +bool Metal::Renderer::IsHeadless() const +{ + return m_layer == nullptr; +} + +bool Metal::Renderer::Initialize() +{ + if (!::Renderer::Initialize()) + return false; + SetupSurface(); + g_state_tracker->FlushEncoders(); + return true; +} + +// MARK: Texture Creation + +std::unique_ptr Metal::Renderer::CreateTexture(const TextureConfig& config, + std::string_view name) +{ + @autoreleasepool + { + MRCOwned desc = MRCTransfer([MTLTextureDescriptor new]); + [desc setTextureType:config.samples > 1 ? MTLTextureType2DMultisampleArray : + MTLTextureType2DArray]; + [desc setPixelFormat:Util::FromAbstract(config.format)]; + [desc setWidth:config.width]; + [desc setHeight:config.height]; + [desc setMipmapLevelCount:config.levels]; + [desc setArrayLength:config.layers]; + [desc setSampleCount:config.samples]; + [desc setStorageMode:MTLStorageModePrivate]; + MTLTextureUsage usage = MTLTextureUsageShaderRead; + if (config.IsRenderTarget()) + usage |= MTLTextureUsageRenderTarget; + if (config.IsComputeImage()) + usage |= MTLTextureUsageShaderWrite; + [desc setUsage:usage]; + id texture = [g_device newTextureWithDescriptor:desc]; + if (!texture) + return nullptr; + + if (name.empty()) + [texture setLabel:[NSString stringWithFormat:@"Texture %d", m_texture_counter++]]; + else + [texture setLabel:MRCTransfer([[NSString alloc] initWithBytes:name.data() + length:name.size() + encoding:NSUTF8StringEncoding])]; + return std::make_unique(MRCTransfer(texture), config); + } +} + +std::unique_ptr +Metal::Renderer::CreateStagingTexture(StagingTextureType type, const TextureConfig& config) +{ + @autoreleasepool + { + const size_t stride = config.GetStride(); + const size_t buffer_size = stride * static_cast(config.height); + + MTLResourceOptions options = MTLStorageModeShared; + if (type == StagingTextureType::Upload) + options |= MTLResourceCPUCacheModeWriteCombined; + + id buffer = [g_device newBufferWithLength:buffer_size options:options]; + if (!buffer) + return nullptr; + [buffer + setLabel:[NSString stringWithFormat:@"Staging Texture %d", m_staging_texture_counter++]]; + return std::make_unique(MRCTransfer(buffer), type, config); + } +} + +std::unique_ptr +Metal::Renderer::CreateFramebuffer(AbstractTexture* color_attachment, + AbstractTexture* depth_attachment) +{ + AbstractTexture* const either_attachment = color_attachment ? color_attachment : depth_attachment; + return std::make_unique( + color_attachment, depth_attachment, either_attachment->GetWidth(), + either_attachment->GetHeight(), either_attachment->GetLayers(), + either_attachment->GetSamples()); +} + +// MARK: Pipeline Creation + +namespace Metal +{ +class VertexFormat : public NativeVertexFormat +{ +public: + VertexFormat(const PortableVertexDeclaration& vtx_decl) + : NativeVertexFormat(vtx_decl), m_desc(MRCTransfer([MTLVertexDescriptor new])) + { + [[[m_desc layouts] objectAtIndexedSubscript:0] setStride:vtx_decl.stride]; + SetAttribute(SHADER_POSITION_ATTRIB, vtx_decl.position); + SetAttributes(SHADER_NORMAL_ATTRIB, vtx_decl.normals); + SetAttributes(SHADER_COLOR0_ATTRIB, vtx_decl.colors); + SetAttributes(SHADER_TEXTURE0_ATTRIB, vtx_decl.texcoords); + SetAttribute(SHADER_POSMTX_ATTRIB, vtx_decl.posmtx); + } + + MTLVertexDescriptor* Get() const { return m_desc; } + +private: + template + void SetAttributes(u32 attribute, const AttributeFormat (&format)[N]) + { + for (size_t i = 0; i < N; i++) + SetAttribute(attribute + i, format[i]); + } + void SetAttribute(u32 attribute, const AttributeFormat& format) + { + if (!format.enable) + return; + MTLVertexAttributeDescriptor* desc = [[m_desc attributes] objectAtIndexedSubscript:attribute]; + [desc setFormat:ConvertFormat(format.type, format.components, format.integer)]; + [desc setOffset:format.offset]; + [desc setBufferIndex:0]; + } + + static MTLVertexFormat ConvertFormat(ComponentFormat format, int count, bool int_format) + { + static constexpr MTLVertexFormat formats[2][5][4] = { + [false] = { + [static_cast(ComponentFormat::UByte)] = { MTLVertexFormatUCharNormalized, MTLVertexFormatUChar2Normalized, MTLVertexFormatUChar3Normalized, MTLVertexFormatUChar4Normalized }, + [static_cast(ComponentFormat::Byte)] = { MTLVertexFormatCharNormalized, MTLVertexFormatChar2Normalized, MTLVertexFormatChar3Normalized, MTLVertexFormatChar4Normalized }, + [static_cast(ComponentFormat::UShort)] = { MTLVertexFormatUShortNormalized, MTLVertexFormatUShort2Normalized, MTLVertexFormatUShort3Normalized, MTLVertexFormatUShort4Normalized }, + [static_cast(ComponentFormat::Short)] = { MTLVertexFormatShortNormalized, MTLVertexFormatShort2Normalized, MTLVertexFormatShort3Normalized, MTLVertexFormatShort4Normalized }, + [static_cast(ComponentFormat::Float)] = { MTLVertexFormatFloat, MTLVertexFormatFloat2, MTLVertexFormatFloat3, MTLVertexFormatFloat4 }, + }, + [true] = { + [static_cast(ComponentFormat::UByte)] = { MTLVertexFormatUChar, MTLVertexFormatUChar2, MTLVertexFormatUChar3, MTLVertexFormatUChar4 }, + [static_cast(ComponentFormat::Byte)] = { MTLVertexFormatChar, MTLVertexFormatChar2, MTLVertexFormatChar3, MTLVertexFormatChar4 }, + [static_cast(ComponentFormat::UShort)] = { MTLVertexFormatUShort, MTLVertexFormatUShort2, MTLVertexFormatUShort3, MTLVertexFormatUShort4 }, + [static_cast(ComponentFormat::Short)] = { MTLVertexFormatShort, MTLVertexFormatShort2, MTLVertexFormatShort3, MTLVertexFormatShort4 }, + [static_cast(ComponentFormat::Float)] = { MTLVertexFormatFloat, MTLVertexFormatFloat2, MTLVertexFormatFloat3, MTLVertexFormatFloat4 }, + }, + }; + return formats[int_format][static_cast(format)][count - 1]; + } + + MRCOwned m_desc; +}; +} // namespace Metal + +std::unique_ptr Metal::Renderer::CreateShaderFromSource(ShaderStage stage, + std::string_view source, + std::string_view name) +{ + std::optional msl = Util::TranslateShaderToMSL(stage, source); + if (!msl.has_value()) + { + PanicAlertFmt("Failed to convert shader {} to MSL", name); + return nullptr; + } + + return CreateShaderFromMSL(stage, std::move(*msl), source, name); +} + +std::unique_ptr Metal::Renderer::CreateShaderFromBinary(ShaderStage stage, + const void* data, + size_t length, + std::string_view name) +{ + return CreateShaderFromMSL(stage, std::string(static_cast(data), length), {}, name); +} + +// clang-format off + +static const char* StageFilename(ShaderStage stage) +{ + switch (stage) + { + case ShaderStage::Vertex: return "vs"; + case ShaderStage::Geometry: return "gs"; + case ShaderStage::Pixel: return "ps"; + case ShaderStage::Compute: return "cs"; + } +} + +static NSString* GenericShaderName(ShaderStage stage) +{ + switch (stage) + { + case ShaderStage::Vertex: return @"Vertex shader %d"; + case ShaderStage::Geometry: return @"Geometry shader %d"; + case ShaderStage::Pixel: return @"Pixel shader %d"; + case ShaderStage::Compute: return @"Compute shader %d"; + } +} + +// clang-format on + +std::unique_ptr Metal::Renderer::CreateShaderFromMSL(ShaderStage stage, + std::string msl, + std::string_view glsl, + std::string_view name) +{ + @autoreleasepool + { + NSError* err = nullptr; + auto DumpBadShader = [&](std::string_view msg) { + static int counter = 0; + std::string filename = VideoBackendBase::BadShaderFilename(StageFilename(stage), counter++); + std::ofstream stream(filename); + if (stream.good()) + { + stream << msl << std::endl; + stream << "/*" << std::endl; + stream << msg << std::endl; + stream << "Error:" << std::endl; + stream << [[err localizedDescription] UTF8String] << std::endl; + if (!glsl.empty()) + { + stream << "Original GLSL:" << std::endl; + stream << glsl << std::endl; + } + else + { + stream << "Shader was created with cached MSL so no GLSL is available." << std::endl; + } + } + + stream << std::endl; + stream << "Dolphin Version: " << Common::GetScmRevStr() << std::endl; + stream << "Video Backend: " << g_video_backend->GetDisplayName() << std::endl; + stream << "*/" << std::endl; + stream.close(); + + PanicAlertFmt("{} (written to {})\n", msg, filename); + }; + + auto lib = MRCTransfer([g_device newLibraryWithSource:[NSString stringWithUTF8String:msl.data()] + options:nil + error:&err]); + if (err) + { + DumpBadShader(fmt::format("Failed to compile {}", name)); + return nullptr; + } + auto fn = MRCTransfer([lib newFunctionWithName:@"main0"]); + if (!fn) + { + DumpBadShader(fmt::format("Shader {} is missing its main0 function", name)); + return nullptr; + } + if (!name.empty()) + [fn setLabel:MRCTransfer([[NSString alloc] initWithBytes:name.data() + length:name.size() + encoding:NSUTF8StringEncoding])]; + else + [fn setLabel:[NSString stringWithFormat:GenericShaderName(stage), + m_shader_counter[static_cast(stage)]++]]; + [lib setLabel:[fn label]]; + if (stage == ShaderStage::Compute) + { + MTLComputePipelineReflection* reflection = nullptr; + auto desc = [MTLComputePipelineDescriptor new]; + [desc setComputeFunction:fn]; + [desc setLabel:[fn label]]; + MRCOwned> pipeline = + MRCTransfer([g_device newComputePipelineStateWithDescriptor:desc + options:MTLPipelineOptionArgumentInfo + reflection:&reflection + error:&err]); + if (err) + { + DumpBadShader(fmt::format("Failed to compile compute pipeline {}", name)); + return nullptr; + } + return std::make_unique(stage, reflection, std::move(msl), std::move(fn), + std::move(pipeline)); + } + return std::make_unique(stage, std::move(msl), std::move(fn)); + } +} + +std::unique_ptr +Metal::Renderer::CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_decl) +{ + @autoreleasepool + { + return std::make_unique(vtx_decl); + } +} + +static MTLPrimitiveTopologyClass GetClass(PrimitiveType prim) +{ + switch (prim) + { + case PrimitiveType::Points: + return MTLPrimitiveTopologyClassPoint; + case PrimitiveType::Lines: + return MTLPrimitiveTopologyClassLine; + case PrimitiveType::Triangles: + case PrimitiveType::TriangleStrip: + return MTLPrimitiveTopologyClassTriangle; + } +} + +static MTLPrimitiveType Convert(PrimitiveType prim) +{ + switch (prim) + { + case PrimitiveType::Points: return MTLPrimitiveTypePoint; + case PrimitiveType::Lines: return MTLPrimitiveTypeLine; + case PrimitiveType::Triangles: return MTLPrimitiveTypeTriangle; + case PrimitiveType::TriangleStrip: return MTLPrimitiveTypeTriangleStrip; + } +} + +static MTLCullMode Convert(CullMode cull) +{ + switch (cull) + { + case CullMode::None: + case CullMode::All: // Handled by disabling rasterization + return MTLCullModeNone; + case CullMode::Front: + return MTLCullModeFront; + case CullMode::Back: + return MTLCullModeBack; + } +} + +static MTLBlendFactor Convert(DstBlendFactor factor, bool src1) +{ + static constexpr MTLBlendFactor factors[2][8] = { + [false] = { + [static_cast(DstBlendFactor::Zero)] = MTLBlendFactorZero, + [static_cast(DstBlendFactor::One)] = MTLBlendFactorOne, + [static_cast(DstBlendFactor::SrcClr)] = MTLBlendFactorSourceColor, + [static_cast(DstBlendFactor::InvSrcClr)] = MTLBlendFactorOneMinusSourceColor, + [static_cast(DstBlendFactor::SrcAlpha)] = MTLBlendFactorSourceAlpha, + [static_cast(DstBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSourceAlpha, + [static_cast(DstBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, + [static_cast(DstBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, + }, + [true] = { + [static_cast(DstBlendFactor::Zero)] = MTLBlendFactorZero, + [static_cast(DstBlendFactor::One)] = MTLBlendFactorOne, + [static_cast(DstBlendFactor::SrcClr)] = MTLBlendFactorSourceColor, + [static_cast(DstBlendFactor::InvSrcClr)] = MTLBlendFactorOneMinusSource1Color, + [static_cast(DstBlendFactor::SrcAlpha)] = MTLBlendFactorSource1Alpha, + [static_cast(DstBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSource1Alpha, + [static_cast(DstBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, + [static_cast(DstBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, + }, + }; + return factors[src1][static_cast(factor)]; +} + +static MTLBlendFactor Convert(SrcBlendFactor factor, bool src1) +{ + static constexpr MTLBlendFactor factors[2][8] = { + [false] = { + [static_cast(SrcBlendFactor::Zero)] = MTLBlendFactorZero, + [static_cast(SrcBlendFactor::One)] = MTLBlendFactorOne, + [static_cast(SrcBlendFactor::DstClr)] = MTLBlendFactorDestinationColor, + [static_cast(SrcBlendFactor::InvDstClr)] = MTLBlendFactorOneMinusDestinationColor, + [static_cast(SrcBlendFactor::SrcAlpha)] = MTLBlendFactorSourceAlpha, + [static_cast(SrcBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSourceAlpha, + [static_cast(SrcBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, + [static_cast(SrcBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, + }, + [true] = { + [static_cast(SrcBlendFactor::Zero)] = MTLBlendFactorZero, + [static_cast(SrcBlendFactor::One)] = MTLBlendFactorOne, + [static_cast(SrcBlendFactor::DstClr)] = MTLBlendFactorDestinationColor, + [static_cast(SrcBlendFactor::InvDstClr)] = MTLBlendFactorOneMinusDestinationColor, + [static_cast(SrcBlendFactor::SrcAlpha)] = MTLBlendFactorSource1Alpha, + [static_cast(SrcBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSource1Alpha, + [static_cast(SrcBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, + [static_cast(SrcBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, + }, + }; + return factors[src1][static_cast(factor)]; +} + +std::unique_ptr +Metal::Renderer::CreatePipeline(const AbstractPipelineConfig& config, const void* cache_data, + size_t cache_data_length) +{ + @autoreleasepool + { + assert(!config.geometry_shader); + auto desc = MRCTransfer([MTLRenderPipelineDescriptor new]); + [desc setLabel:[NSString stringWithFormat:@"Pipeline %d", m_pipeline_counter++]]; + [desc setVertexFunction:static_cast(config.vertex_shader)->GetShader()]; + [desc setFragmentFunction:static_cast(config.pixel_shader)->GetShader()]; + if (config.vertex_format) + [desc setVertexDescriptor:static_cast(config.vertex_format)->Get()]; + RasterizationState rs = config.rasterization_state; + [desc setInputPrimitiveTopology:GetClass(rs.primitive)]; + if (rs.cullmode == CullMode::All) + [desc setRasterizationEnabled:NO]; + MTLRenderPipelineColorAttachmentDescriptor* color0 = [desc colorAttachments][0]; + BlendingState bs = config.blending_state; + MTLColorWriteMask mask = MTLColorWriteMaskNone; + if (bs.colorupdate) + mask |= MTLColorWriteMaskRed | MTLColorWriteMaskGreen | MTLColorWriteMaskBlue; + if (bs.alphaupdate) + mask |= MTLColorWriteMaskAlpha; + [color0 setWriteMask:mask]; + if (bs.blendenable) + { + [color0 setBlendingEnabled:YES]; + [color0 setSourceRGBBlendFactor: Convert(bs.srcfactor, bs.usedualsrc)]; + [color0 setSourceAlphaBlendFactor: Convert(bs.srcfactoralpha, bs.usedualsrc)]; + [color0 setDestinationRGBBlendFactor: Convert(bs.dstfactor, bs.usedualsrc)]; + [color0 setDestinationAlphaBlendFactor:Convert(bs.dstfactoralpha, bs.usedualsrc)]; + [color0 setRgbBlendOperation: bs.subtract ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; + [color0 setAlphaBlendOperation:bs.subtractAlpha ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; + } + FramebufferState fs = config.framebuffer_state; + [color0 setPixelFormat:Util::FromAbstract(fs.color_texture_format)]; + [desc setDepthAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; + if (Util::HasStencil(fs.depth_texture_format)) + [desc setStencilAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; + NSError* err = nullptr; + MTLRenderPipelineReflection* reflection = nullptr; + id pipe = + [g_device newRenderPipelineStateWithDescriptor:desc + options:MTLPipelineOptionArgumentInfo + reflection:&reflection + error:&err]; + if (err) + { + PanicAlertFmt("Failed to compile pipeline for {} and {}: {}", + [[[desc vertexFunction] label] UTF8String], + [[[desc fragmentFunction] label] UTF8String], + [[err localizedDescription] UTF8String]); + return nullptr; + } + return std::make_unique(MRCTransfer(pipe), reflection, Convert(rs.primitive), + Convert(rs.cullmode), config.depth_state, config.usage); + } +} + +void Metal::Renderer::Flush() +{ + @autoreleasepool + { + g_state_tracker->FlushEncoders(); + } +} + +void Metal::Renderer::WaitForGPUIdle() +{ + @autoreleasepool + { + g_state_tracker->FlushEncoders(); + g_state_tracker->WaitForFlushedEncoders(); + } +} + +void Metal::Renderer::OnConfigChanged(u32 bits) +{ + if (bits & CONFIG_CHANGE_BIT_VSYNC) + [m_layer setDisplaySyncEnabled:g_ActiveConfig.bVSyncActive]; + + if (bits & CONFIG_CHANGE_BIT_ANISOTROPY) + { + g_object_cache->ReloadSamplers(); + g_state_tracker->ReloadSamplers(); + } +} + +void Metal::Renderer::ClearScreen(const MathUtil::Rectangle& rc, bool color_enable, + bool alpha_enable, bool z_enable, u32 color, u32 z) +{ + MathUtil::Rectangle target_rc = Renderer::ConvertEFBRectangle(rc); + target_rc.ClampUL(0, 0, m_target_width, m_target_height); + + // All Metal render passes are fullscreen, so we can only run a fast clear if the target is too + if (target_rc == MathUtil::Rectangle(0, 0, m_target_width, m_target_height)) + { + // Determine whether the EFB has an alpha channel. If it doesn't, we can clear the alpha + // channel to 0xFF. This hopefully allows us to use the fast path in most cases. + if (bpmem.zcontrol.pixel_format == PixelFormat::RGB565_Z16 || + bpmem.zcontrol.pixel_format == PixelFormat::RGB8_Z24 || + bpmem.zcontrol.pixel_format == PixelFormat::Z24) + { + // Force alpha writes, and clear the alpha channel. This is different to the other backends, + // where the existing values of the alpha channel are preserved. + alpha_enable = true; + color &= 0x00FFFFFF; + } + + bool c_ok = (color_enable && alpha_enable) || + g_state_tracker->GetCurrentFramebuffer()->GetColorFormat() == + AbstractTextureFormat::Undefined; + bool z_ok = z_enable || g_state_tracker->GetCurrentFramebuffer()->GetDepthFormat() == + AbstractTextureFormat::Undefined; + if (c_ok && z_ok) + { + @autoreleasepool + { + // clang-format off + MTLClearColor clear_color = MTLClearColorMake( + static_cast((color >> 16) & 0xFF) / 255.0, + static_cast((color >> 8) & 0xFF) / 255.0, + static_cast((color >> 0) & 0xFF) / 255.0, + static_cast((color >> 24) & 0xFF) / 255.0); + // clang-format on + float z_normalized = static_cast(z & 0xFFFFFF) / 16777216.0f; + if (!g_Config.backend_info.bSupportsReversedDepthRange) + z_normalized = 1.f - z_normalized; + g_state_tracker->BeginClearRenderPass(clear_color, z_normalized); + return; + } + } + } + + g_state_tracker->EnableEncoderLabel(false); + g_framebuffer_manager->ClearEFB(rc, color_enable, alpha_enable, z_enable, color, z); + g_state_tracker->EnableEncoderLabel(true); +} + +void Metal::Renderer::SetPipeline(const AbstractPipeline* pipeline) +{ + g_state_tracker->SetPipeline(static_cast(pipeline)); +} + +void Metal::Renderer::SetFramebuffer(AbstractFramebuffer* framebuffer) +{ + // Shouldn't be bound as a texture. + if (AbstractTexture* color = framebuffer->GetColorAttachment()) + g_state_tracker->UnbindTexture(static_cast(color)->GetMTLTexture()); + if (AbstractTexture* depth = framebuffer->GetDepthAttachment()) + g_state_tracker->UnbindTexture(static_cast(depth)->GetMTLTexture()); + + m_current_framebuffer = framebuffer; + g_state_tracker->SetCurrentFramebuffer(static_cast(framebuffer)); +} + +void Metal::Renderer::SetAndDiscardFramebuffer(AbstractFramebuffer* framebuffer) +{ + @autoreleasepool + { + SetFramebuffer(framebuffer); + g_state_tracker->BeginRenderPass(MTLLoadActionDontCare); + } +} + +void Metal::Renderer::SetAndClearFramebuffer(AbstractFramebuffer* framebuffer, + const ClearColor& color_value, float depth_value) +{ + @autoreleasepool + { + SetFramebuffer(framebuffer); + MTLClearColor color = + MTLClearColorMake(color_value[0], color_value[1], color_value[2], color_value[3]); + g_state_tracker->BeginClearRenderPass(color, depth_value); + } +} + +void Metal::Renderer::SetScissorRect(const MathUtil::Rectangle& rc) +{ + g_state_tracker->SetScissor(rc); +} + +void Metal::Renderer::SetTexture(u32 index, const AbstractTexture* texture) +{ + g_state_tracker->SetTexture( + index, texture ? static_cast(texture)->GetMTLTexture() : nullptr); +} + +void Metal::Renderer::SetSamplerState(u32 index, const SamplerState& state) +{ + g_state_tracker->SetSampler(index, state); +} + +void Metal::Renderer::SetComputeImageTexture(AbstractTexture* texture, bool read, bool write) +{ + g_state_tracker->SetComputeTexture(static_cast(texture)); +} + +void Metal::Renderer::UnbindTexture(const AbstractTexture* texture) +{ + g_state_tracker->UnbindTexture(static_cast(texture)->GetMTLTexture()); +} + +void Metal::Renderer::SetViewport(float x, float y, float width, float height, float near_depth, + float far_depth) +{ + g_state_tracker->SetViewport(x, y, width, height, near_depth, far_depth); +} + +void Metal::Renderer::Draw(u32 base_vertex, u32 num_vertices) +{ + @autoreleasepool + { + g_state_tracker->Draw(base_vertex, num_vertices); + } +} + +void Metal::Renderer::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) +{ + @autoreleasepool + { + g_state_tracker->DrawIndexed(base_index, num_indices, base_vertex); + } +} + +void Metal::Renderer::DispatchComputeShader(const AbstractShader* shader, // + u32 groupsize_x, u32 groupsize_y, u32 groupsize_z, + u32 groups_x, u32 groups_y, u32 groups_z) +{ + @autoreleasepool + { + g_state_tracker->SetPipeline(static_cast(shader)); + g_state_tracker->DispatchComputeShader(groupsize_x, groupsize_y, groupsize_z, // + groups_x, groups_y, groups_z); + } +} + +void Metal::Renderer::BindBackbuffer(const ClearColor& clear_color) +{ + @autoreleasepool + { + CheckForSurfaceChange(); + CheckForSurfaceResize(); + m_drawable = MRCRetain([m_layer nextDrawable]); + m_bb_texture->SetMTLTexture(MRCRetain([m_drawable texture])); + SetAndClearFramebuffer(m_backbuffer.get(), clear_color); + } +} + +void Metal::Renderer::PresentBackbuffer() +{ + @autoreleasepool + { + g_state_tracker->EndRenderPass(); + if (m_drawable) + { + [g_state_tracker->GetRenderCmdBuf() + addScheduledHandler:[drawable = std::move(m_drawable)](id) { [drawable present]; }]; + m_bb_texture->SetMTLTexture(nullptr); + m_drawable = nullptr; + } + g_state_tracker->FlushEncoders(); + } +} + +std::unique_ptr<::BoundingBox> Metal::Renderer::CreateBoundingBox() const +{ + return std::make_unique(); +} + +void Metal::Renderer::CheckForSurfaceChange() +{ + if (!m_surface_changed.TestAndClear()) + return; + m_layer = MRCRetain(static_cast(m_new_surface_handle)); + m_new_surface_handle = nullptr; + SetupSurface(); +} + +void Metal::Renderer::CheckForSurfaceResize() +{ + if (!m_surface_resized.TestAndClear()) + return; + SetupSurface(); +} + +void Metal::Renderer::SetupSurface() +{ + CGSize size = [m_layer bounds].size; + // TODO: Update m_backbuffer_scale (need to make doing that not break everything) + const float backbuffer_scale = [m_layer contentsScale]; + size.width *= backbuffer_scale; + size.height *= backbuffer_scale; + [m_layer setDrawableSize:size]; + m_backbuffer_width = size.width; + m_backbuffer_height = size.height; + TextureConfig cfg(m_backbuffer_width, m_backbuffer_height, 1, 1, 1, m_backbuffer_format, + AbstractTextureFlag_RenderTarget); + m_bb_texture = std::make_unique(nullptr, cfg); + m_backbuffer = std::make_unique(m_bb_texture.get(), nullptr, // + m_backbuffer_width, m_backbuffer_height, 1, 1); +} diff --git a/Source/Core/VideoBackends/Metal/MTLShader.h b/Source/Core/VideoBackends/Metal/MTLShader.h new file mode 100644 index 0000000000..053d84c2b9 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLShader.h @@ -0,0 +1,30 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "VideoBackends/Metal/MRCHelpers.h" + +#include "VideoCommon/AbstractPipeline.h" +#include "VideoCommon/AbstractShader.h" + +namespace Metal +{ +class Shader : public AbstractShader +{ +public: + explicit Shader(ShaderStage stage, std::string msl, MRCOwned> shader) + : AbstractShader(stage), m_msl(std::move(msl)), m_shader(std::move(shader)) + { + } + + id GetShader() const { return m_shader; } + BinaryData GetBinary() const override { return BinaryData(m_msl.begin(), m_msl.end()); } + +private: + std::string m_msl; + MRCOwned> m_shader; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.h b/Source/Core/VideoBackends/Metal/MTLStateTracker.h new file mode 100644 index 0000000000..d9c79774e0 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.h @@ -0,0 +1,266 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include + +#include "Common/Assert.h" +#include "Common/CommonTypes.h" +#include "Common/MathUtil.h" + +#include "VideoBackends/Metal/MRCHelpers.h" +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLTexture.h" +#include "VideoBackends/Metal/MTLUtil.h" + +#include "VideoCommon/RenderBase.h" + +namespace Metal +{ +class Pipeline; +class ComputePipeline; + +class StateTracker +{ +public: + enum class UploadBuffer + { + Other, + Uniform, + Vertex, + Index, + Texels, + Last = Texels + }; + + struct Map + { + id gpu_buffer; + size_t gpu_offset; + void* cpu_buffer; + }; + + enum class AlignMask : size_t + { + Other = 15, + Uniform = 255, + }; + + StateTracker(StateTracker&&) = delete; + explicit StateTracker(); + ~StateTracker(); + + Framebuffer* GetCurrentFramebuffer() { return m_current_framebuffer; }; + void SetCurrentFramebuffer(Framebuffer* framebuffer); + void BeginClearRenderPass(MTLClearColor color, float depth); + void BeginRenderPass(MTLLoadAction load_action); + void BeginRenderPass(MTLRenderPassDescriptor* descriptor); + void BeginComputePass(); + MTLRenderPassDescriptor* GetRenderPassDescriptor(Framebuffer* framebuffer, + MTLLoadAction load_action); + + void EndRenderPass(); + void FlushEncoders(); + void WaitForFlushedEncoders(); + bool HasUnflushedData() { return static_cast(m_current_render_cmdbuf); } + bool GPUBusy() + { + return m_current_draw != 1 + m_last_finished_draw.load(std::memory_order_acquire); + } + void ReloadSamplers(); + + void SetPipeline(const Pipeline* pipe); + void SetPipeline(const ComputePipeline* pipe); + void SetScissor(const MathUtil::Rectangle& rect); + void SetViewport(float x, float y, float width, float height, float near_depth, float far_depth); + void SetTexture(u32 idx, id texture); + void SetSampler(u32 idx, const SamplerState& sampler); + void SetComputeTexture(const Texture* texture); + void InvalidateUniforms(bool vertex, bool fragment); + void SetUtilityUniform(const void* buffer, size_t size); + void SetTexelBuffer(id buffer, u32 offset0, u32 offset1); + void SetVerticesAndIndices(Map vertices, Map indices); + void SetBBoxBuffer(id bbox, id upload, id download); + void SetVertexBufferNow(u32 idx, id buffer, u32 offset); + void SetFragmentBufferNow(u32 idx, id buffer, u32 offset); + /// Use around utility draws that are commonly used immediately before gx draws to the same buffer + void EnableEncoderLabel(bool enabled) { m_flags.should_apply_label = enabled; } + void UnbindTexture(id texture); + + void Draw(u32 base_vertex, u32 num_vertices); + void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex); + void DispatchComputeShader(u32 groupsize_x, u32 groupsize_y, u32 groupsize_z, u32 groups_x, + u32 groups_y, u32 groups_z); + void ResolveTexture(id src, id dst, u32 layer, u32 level); + + size_t Align(size_t amt, AlignMask align) + { + return (amt + static_cast(align)) & ~static_cast(align); + } + Map AllocateForTextureUpload(size_t amt); + Map Allocate(UploadBuffer buffer_idx, size_t amt, AlignMask align) + { + Preallocate(buffer_idx, amt); + return CommitPreallocation(buffer_idx, amt, align); + } + void* Preallocate(UploadBuffer buffer_idx, size_t amt); + /// Must follow a call to Preallocate where amt is >= to the one provided here + Map CommitPreallocation(UploadBuffer buffer_idx, size_t amt, AlignMask align) + { + DEBUG_ASSERT((m_upload_buffers[static_cast(buffer_idx)].usage.Pos() & + static_cast(align)) == 0); + return CommitPreallocation(buffer_idx, Align(amt, align)); + } + id GetUploadEncoder(); + id GetTextureUploadEncoder(); + id GetRenderCmdBuf(); + +private: + class UsageTracker + { + struct UsageEntry + { + u64 drawno; + size_t pos; + }; + std::vector m_usage; + size_t m_size = 0; + size_t m_pos = 0; + + public: + size_t Size() { return m_size; } + size_t Pos() { return m_pos; } + bool PrepareForAllocation(u64 last_draw, size_t amt); + size_t Allocate(u64 current_draw, size_t amt); + void Reset(size_t new_size); + }; + + struct CPUBuffer + { + UsageTracker usage; + MRCOwned> mtlbuffer; + void* buffer = nullptr; + }; + + struct BufferPair + { + UsageTracker usage; + MRCOwned> cpubuffer; + MRCOwned> gpubuffer; + void* buffer = nullptr; + size_t last_upload = 0; + }; + + struct Backref; + + std::shared_ptr m_backref; + MRCOwned> m_fence; + MRCOwned> m_upload_cmdbuf; + MRCOwned> m_upload_encoder; + MRCOwned> m_texture_upload_cmdbuf; + MRCOwned> m_texture_upload_encoder; + MRCOwned> m_current_render_cmdbuf; + MRCOwned> m_last_render_cmdbuf; + MRCOwned> m_current_render_encoder; + MRCOwned> m_current_compute_encoder; + MRCOwned m_render_pass_desc[3]; + MRCOwned m_resolve_pass_desc; + Framebuffer* m_current_framebuffer; + CPUBuffer m_texture_upload_buffer; + BufferPair m_upload_buffers[static_cast(UploadBuffer::Last) + 1]; + u64 m_current_draw = 1; + std::atomic m_last_finished_draw{0}; + + MRCOwned> m_dummy_texture; + + // MARK: State + u8 m_dirty_textures; + u8 m_dirty_samplers; + union Flags + { + struct + { + // clang-format off + bool has_gx_vs_uniform : 1; + bool has_gx_ps_uniform : 1; + bool has_utility_vs_uniform : 1; + bool has_utility_ps_uniform : 1; + bool has_compute_texture : 1; + bool has_pipeline : 1; + bool has_scissor : 1; + bool has_viewport : 1; + bool has_vertices : 1; + bool has_texel_buffer : 1; + bool bbox_fence : 1; + bool should_apply_label : 1; + // clang-format on + }; + u16 bits = 0; + void NewEncoder() + { + Flags reset_mask; + // Set the flags you *don't* want to reset + reset_mask.should_apply_label = true; + bits &= reset_mask.bits; + } + } m_flags; + + /// Things that represent the state of the encoder + struct Current + { + NSString* label; + id pipeline; + std::array, 2> vertex_buffers; + std::array, 2> fragment_buffers; + u32 width; + u32 height; + MathUtil::Rectangle scissor_rect; + Util::Viewport viewport; + MTLDepthClipMode depth_clip_mode; + MTLCullMode cull_mode; + DepthStencilSelector depth_stencil; + } m_current; + + /// Things that represent what we'd *like* to have on the encoder for the next draw + struct State + { + MathUtil::Rectangle scissor_rect; + Util::Viewport viewport; + const Pipeline* render_pipeline = nullptr; + const ComputePipeline* compute_pipeline = nullptr; + std::array, 8> textures = {}; + std::array, 8> samplers = {}; + std::array sampler_min_lod; + std::array sampler_max_lod; + std::array sampler_states; + const Texture* compute_texture = nullptr; + std::unique_ptr utility_uniform; + u32 utility_uniform_size = 0; + u32 utility_uniform_capacity = 0; + id bbox = nullptr; + id bbox_upload_fence = nullptr; + id bbox_download_fence = nullptr; + id vertices = nullptr; + id indices = nullptr; + id texels = nullptr; + u32 vertices_offset; + u32 indices_offset; + u32 texel_buffer_offset0; + u32 texel_buffer_offset1; + } m_state; + + void SetSamplerForce(u32 idx, const SamplerState& sampler); + void Sync(BufferPair& buffer); + Map CommitPreallocation(UploadBuffer buffer_idx, size_t actual_amt); + void CheckViewport(); + void CheckScissor(); + void PrepareRender(); + void PrepareCompute(); +}; + +extern std::unique_ptr g_state_tracker; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm new file mode 100644 index 0000000000..ea2c8cd328 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm @@ -0,0 +1,849 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLStateTracker.h" + +#include +#include + +#include "Common/Assert.h" +#include "Common/BitUtils.h" + +#include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLPipeline.h" +#include "VideoBackends/Metal/MTLTexture.h" +#include "VideoBackends/Metal/MTLUtil.h" + +#include "VideoCommon/PixelShaderManager.h" +#include "VideoCommon/Statistics.h" +#include "VideoCommon/VertexShaderManager.h" +#include "VideoCommon/VideoConfig.h" + +std::unique_ptr Metal::g_state_tracker; + +struct Metal::StateTracker::Backref +{ + std::mutex mtx; + StateTracker* state_tracker; + explicit Backref(StateTracker* state_tracker) : state_tracker(state_tracker) {} +}; + +static NSString* GetName(Metal::StateTracker::UploadBuffer buffer) +{ + // clang-format off + switch (buffer) + { + case Metal::StateTracker::UploadBuffer::Texels: return @"Texels"; + case Metal::StateTracker::UploadBuffer::Vertex: return @"Vertices"; + case Metal::StateTracker::UploadBuffer::Index: return @"Indices"; + case Metal::StateTracker::UploadBuffer::Uniform: return @"Uniforms"; + case Metal::StateTracker::UploadBuffer::Other: return @"Generic Upload"; + } + // clang-format on +} + +// MARK: - UsageTracker + +bool Metal::StateTracker::UsageTracker::PrepareForAllocation(u64 last_draw, size_t amt) +{ + auto removeme = std::find_if(m_usage.begin(), m_usage.end(), + [last_draw](UsageEntry usage) { return usage.drawno > last_draw; }); + if (removeme != m_usage.begin()) + m_usage.erase(m_usage.begin(), removeme); + + bool still_in_use = false; + const bool needs_wrap = m_pos + amt > m_size; + if (!m_usage.empty()) + { + size_t used = m_usage.front().pos; + if (needs_wrap) + still_in_use = used >= m_pos || used < amt; + else + still_in_use = used >= m_pos && used < m_pos + amt; + } + if (needs_wrap) + m_pos = 0; + + return still_in_use || amt > m_size; +} + +size_t Metal::StateTracker::UsageTracker::Allocate(u64 current_draw, size_t amt) +{ + if (m_usage.empty() || m_usage.back().drawno != current_draw) + m_usage.push_back({current_draw, m_pos}); + size_t ret = m_pos; + m_pos += amt; + return ret; +} + +void Metal::StateTracker::UsageTracker::Reset(size_t new_size) +{ + m_usage.clear(); + m_size = new_size; + m_pos = 0; +} + +// MARK: - StateTracker + +Metal::StateTracker::StateTracker() : m_backref(std::make_shared(this)) +{ + m_flags.should_apply_label = true; + m_fence = MRCTransfer([g_device newFence]); + for (MRCOwned& rpdesc : m_render_pass_desc) + { + rpdesc = MRCTransfer([MTLRenderPassDescriptor new]); + [[rpdesc depthAttachment] setStoreAction:MTLStoreActionStore]; + [[rpdesc stencilAttachment] setStoreAction:MTLStoreActionStore]; + } + m_resolve_pass_desc = MRCTransfer([MTLRenderPassDescriptor new]); + auto color0 = [[m_resolve_pass_desc colorAttachments] objectAtIndexedSubscript:0]; + [color0 setLoadAction:MTLLoadActionLoad]; + [color0 setStoreAction:MTLStoreActionMultisampleResolve]; + MTLTextureDescriptor* texdesc = + [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatRGBA8Unorm + width:1 + height:1 + mipmapped:NO]; + [texdesc setTextureType:MTLTextureType2DArray]; + [texdesc setUsage:MTLTextureUsageShaderRead]; + [texdesc setStorageMode:MTLStorageModePrivate]; + m_dummy_texture = MRCTransfer([g_device newTextureWithDescriptor:texdesc]); + [m_dummy_texture setLabel:@"Dummy Texture"]; + for (size_t i = 0; i < std::size(m_state.samplers); ++i) + { + SetSamplerForce(i, RenderState::GetLinearSamplerState()); + SetTexture(i, m_dummy_texture); + } +} + +Metal::StateTracker::~StateTracker() +{ + FlushEncoders(); + std::lock_guard lock(m_backref->mtx); + m_backref->state_tracker = nullptr; +} + +// MARK: BufferPair Ops + +Metal::StateTracker::Map Metal::StateTracker::AllocateForTextureUpload(size_t amt) +{ + amt = (amt + 15) & ~15ull; + CPUBuffer& buffer = m_texture_upload_buffer; + u64 last_draw = m_last_finished_draw.load(std::memory_order_acquire); + bool needs_new = buffer.usage.PrepareForAllocation(last_draw, amt); + if (__builtin_expect(needs_new, false)) + { + // Orphan buffer + size_t newsize = std::max(buffer.usage.Size() * 2, 4096); + while (newsize < amt) + newsize *= 2; + MTLResourceOptions options = + MTLResourceStorageModeShared | MTLResourceCPUCacheModeWriteCombined; + buffer.mtlbuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); + [buffer.mtlbuffer setLabel:@"Texture Upload Buffer"]; + ASSERT_MSG(VIDEO, buffer.mtlbuffer, "Failed to allocate MTLBuffer (out of memory?)"); + buffer.buffer = [buffer.mtlbuffer contents]; + buffer.usage.Reset(newsize); + } + + size_t pos = buffer.usage.Allocate(m_current_draw, amt); + + Map ret = {buffer.mtlbuffer, pos, reinterpret_cast(buffer.buffer) + pos}; + DEBUG_ASSERT(pos <= buffer.usage.Size() && + "Previous code should have guaranteed there was enough space"); + return ret; +} + +void* Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) +{ + BufferPair& buffer = m_upload_buffers[static_cast(buffer_idx)]; + u64 last_draw = m_last_finished_draw.load(std::memory_order_acquire); + size_t base_pos = buffer.usage.Pos(); + bool needs_new = buffer.usage.PrepareForAllocation(last_draw, amt); + bool needs_upload = needs_new || buffer.usage.Pos() == 0; + if (!g_features.unified_memory && needs_upload) + { + if (base_pos != buffer.last_upload) + { + id encoder = GetUploadEncoder(); + [encoder copyFromBuffer:buffer.cpubuffer + sourceOffset:buffer.last_upload + toBuffer:buffer.gpubuffer + destinationOffset:buffer.last_upload + size:base_pos - buffer.last_upload]; + } + buffer.last_upload = 0; + } + if (__builtin_expect(needs_new, false)) + { + // Orphan buffer + size_t newsize = std::max(buffer.usage.Size() * 2, 4096); + while (newsize < amt) + newsize *= 2; + MTLResourceOptions options = + MTLResourceStorageModeShared | MTLResourceCPUCacheModeWriteCombined; + buffer.cpubuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); + [buffer.cpubuffer setLabel:GetName(buffer_idx)]; + ASSERT_MSG(VIDEO, buffer.cpubuffer, "Failed to allocate MTLBuffer (out of memory?)"); + buffer.buffer = [buffer.cpubuffer contents]; + buffer.usage.Reset(newsize); + if (!g_features.unified_memory) + { + options = MTLResourceStorageModePrivate | MTLResourceHazardTrackingModeUntracked; + buffer.gpubuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); + [buffer.gpubuffer setLabel:GetName(buffer_idx)]; + ASSERT_MSG(VIDEO, buffer.gpubuffer, "Failed to allocate MTLBuffer (out of memory?)"); + } + } + return reinterpret_cast(buffer.buffer) + buffer.usage.Pos(); +} + +Metal::StateTracker::Map Metal::StateTracker::CommitPreallocation(UploadBuffer buffer_idx, + size_t amt) +{ + BufferPair& buffer = m_upload_buffers[static_cast(buffer_idx)]; + size_t pos = buffer.usage.Allocate(m_current_draw, amt); + Map ret = {nil, pos, reinterpret_cast(buffer.buffer) + pos}; + ret.gpu_buffer = g_features.unified_memory ? buffer.cpubuffer : buffer.gpubuffer; + DEBUG_ASSERT(pos <= buffer.usage.Size() && + "Previous code should have guaranteed there was enough space"); + return ret; +} + +void Metal::StateTracker::Sync(BufferPair& buffer) +{ + if (g_features.unified_memory || buffer.usage.Pos() == buffer.last_upload) + return; + + id encoder = GetUploadEncoder(); + [encoder copyFromBuffer:buffer.cpubuffer + sourceOffset:buffer.last_upload + toBuffer:buffer.gpubuffer + destinationOffset:buffer.last_upload + size:buffer.usage.Pos() - buffer.last_upload]; + buffer.last_upload = buffer.usage.Pos(); +} + +// MARK: Render Pass / Encoder Management + +id Metal::StateTracker::GetUploadEncoder() +{ + if (!m_upload_cmdbuf) + { + @autoreleasepool + { + m_upload_cmdbuf = MRCRetain([g_queue commandBuffer]); + [m_upload_cmdbuf setLabel:@"Vertex Upload"]; + m_upload_encoder = MRCRetain([m_upload_cmdbuf blitCommandEncoder]); + [m_upload_encoder setLabel:@"Vertex Upload"]; + } + } + return m_upload_encoder; +} + +id Metal::StateTracker::GetTextureUploadEncoder() +{ + if (!m_texture_upload_cmdbuf) + { + @autoreleasepool + { + m_texture_upload_cmdbuf = MRCRetain([g_queue commandBuffer]); + [m_texture_upload_cmdbuf setLabel:@"Texture Upload"]; + m_texture_upload_encoder = MRCRetain([m_texture_upload_cmdbuf blitCommandEncoder]); + [m_texture_upload_encoder setLabel:@"Texture Upload"]; + } + } + return m_texture_upload_encoder; +} + +id Metal::StateTracker::GetRenderCmdBuf() +{ + if (!m_current_render_cmdbuf) + { + @autoreleasepool + { + m_current_render_cmdbuf = MRCRetain([g_queue commandBuffer]); + [m_current_render_cmdbuf setLabel:@"Draw"]; + } + } + return m_current_render_cmdbuf; +} + +void Metal::StateTracker::SetCurrentFramebuffer(Framebuffer* framebuffer) +{ + if (framebuffer == m_current_framebuffer) + return; + EndRenderPass(); + m_current_framebuffer = framebuffer; +} + +MTLRenderPassDescriptor* Metal::StateTracker::GetRenderPassDescriptor(Framebuffer* framebuffer, + MTLLoadAction load_action) +{ + const AbstractTextureFormat depth_fmt = framebuffer->GetDepthFormat(); + MTLRenderPassDescriptor* desc; + if (depth_fmt == AbstractTextureFormat::Undefined) + desc = m_render_pass_desc[0]; + else if (!Util::HasStencil(depth_fmt)) + desc = m_render_pass_desc[1]; + else + desc = m_render_pass_desc[2]; + desc.colorAttachments[0].texture = framebuffer->GetColor(); + desc.colorAttachments[0].loadAction = load_action; + if (depth_fmt != AbstractTextureFormat::Undefined) + { + desc.depthAttachment.texture = framebuffer->GetDepth(); + desc.depthAttachment.loadAction = load_action; + if (Util::HasStencil(depth_fmt)) + { + desc.stencilAttachment.texture = framebuffer->GetDepth(); + desc.stencilAttachment.loadAction = load_action; + } + } + return desc; +} + +void Metal::StateTracker::BeginClearRenderPass(MTLClearColor color, float depth) +{ + Framebuffer* framebuffer = m_current_framebuffer; + MTLRenderPassDescriptor* desc = GetRenderPassDescriptor(framebuffer, MTLLoadActionClear); + desc.colorAttachments[0].clearColor = color; + if (framebuffer->GetDepthFormat() != AbstractTextureFormat::Undefined) + { + desc.depthAttachment.clearDepth = depth; + if (Util::HasStencil(framebuffer->GetDepthFormat())) + desc.stencilAttachment.clearStencil = 0; + } + BeginRenderPass(desc); +} + +void Metal::StateTracker::BeginRenderPass(MTLLoadAction load_action) +{ + if (m_current_render_encoder) + return; + BeginRenderPass(GetRenderPassDescriptor(m_current_framebuffer, load_action)); +} + +void Metal::StateTracker::BeginRenderPass(MTLRenderPassDescriptor* descriptor) +{ + EndRenderPass(); + m_current_render_encoder = + MRCRetain([GetRenderCmdBuf() renderCommandEncoderWithDescriptor:descriptor]); + if (!g_features.unified_memory) + [m_current_render_encoder waitForFence:m_fence beforeStages:MTLRenderStageVertex]; + AbstractTexture* attachment = m_current_framebuffer->GetColorAttachment(); + if (!attachment) + attachment = m_current_framebuffer->GetDepthAttachment(); + static_assert(std::is_trivially_copyable::value, + "Make sure we can memset this"); + memset(&m_current, 0, sizeof(m_current)); + m_current.width = attachment->GetWidth(); + m_current.height = attachment->GetHeight(); + m_current.scissor_rect = MathUtil::Rectangle(0, 0, m_current.width, m_current.height); + m_current.viewport = { + 0.f, 0.f, static_cast(m_current.width), static_cast(m_current.height), + 0.f, 1.f}; + m_current.depth_stencil = DepthStencilSelector(false, CompareMode::Always); + m_current.depth_clip_mode = MTLDepthClipModeClip; + m_current.cull_mode = MTLCullModeNone; + m_flags.NewEncoder(); + m_dirty_samplers = 0xff; + m_dirty_textures = 0xff; + CheckScissor(); + CheckViewport(); + ASSERT_MSG(VIDEO, m_current_render_encoder, "Failed to create render encoder!"); +} + +void Metal::StateTracker::BeginComputePass() +{ + EndRenderPass(); + m_current_compute_encoder = MRCRetain([GetRenderCmdBuf() computeCommandEncoder]); + [m_current_compute_encoder setLabel:@"Compute"]; + if (!g_features.unified_memory) + [m_current_compute_encoder waitForFence:m_fence]; + m_flags.NewEncoder(); + m_dirty_samplers = 0xff; + m_dirty_textures = 0xff; +} + +void Metal::StateTracker::EndRenderPass() +{ + if (m_current_render_encoder) + { + if (m_flags.bbox_fence && m_state.bbox_download_fence) + [m_current_render_encoder updateFence:m_state.bbox_download_fence + afterStages:MTLRenderStageFragment]; + [m_current_render_encoder endEncoding]; + m_current_render_encoder = nullptr; + } + if (m_current_compute_encoder) + { + [m_current_compute_encoder endEncoding]; + m_current_compute_encoder = nullptr; + } +} + +void Metal::StateTracker::FlushEncoders() +{ + if (!m_current_render_cmdbuf) + return; + EndRenderPass(); + for (int i = 0; i <= static_cast(UploadBuffer::Last); ++i) + Sync(m_upload_buffers[i]); + if (g_features.unified_memory) + { + ASSERT(!m_upload_cmdbuf && "Should never be used!"); + } + else if (m_upload_cmdbuf) + { + [m_upload_encoder updateFence:m_fence]; + [m_upload_encoder endEncoding]; + [m_upload_cmdbuf commit]; + m_upload_encoder = nullptr; + m_upload_cmdbuf = nullptr; + } + if (m_texture_upload_cmdbuf) + { + [m_texture_upload_encoder endEncoding]; + [m_texture_upload_cmdbuf commit]; + m_texture_upload_encoder = nullptr; + m_texture_upload_cmdbuf = nullptr; + } + [m_current_render_cmdbuf + addCompletedHandler:[backref = m_backref, draw = m_current_draw](id buf) { + std::lock_guard guard(backref->mtx); + if (StateTracker* tracker = backref->state_tracker) + { + // We can do the update non-atomically because we only ever update under the lock + u64 newval = std::max(draw, tracker->m_last_finished_draw.load(std::memory_order_relaxed)); + tracker->m_last_finished_draw.store(newval, std::memory_order_release); + } + }]; + [m_current_render_cmdbuf commit]; + m_last_render_cmdbuf = std::move(m_current_render_cmdbuf); + m_current_render_cmdbuf = nullptr; + m_current_draw++; +} + +void Metal::StateTracker::WaitForFlushedEncoders() +{ + [m_last_render_cmdbuf waitUntilCompleted]; +} + +void Metal::StateTracker::ReloadSamplers() +{ + for (size_t i = 0; i < std::size(m_state.samplers); ++i) + m_state.samplers[i] = g_object_cache->GetSampler(m_state.sampler_states[i]); +} + +// MARK: State Setters + +void Metal::StateTracker::SetPipeline(const Pipeline* pipe) +{ + if (pipe != m_state.render_pipeline) + { + m_state.render_pipeline = pipe; + m_flags.has_pipeline = false; + } +} + +void Metal::StateTracker::SetPipeline(const ComputePipeline* pipe) +{ + if (pipe != m_state.compute_pipeline) + { + m_state.compute_pipeline = pipe; + m_flags.has_pipeline = false; + } +} + +void Metal::StateTracker::SetScissor(const MathUtil::Rectangle& rect) +{ + m_state.scissor_rect = rect; + CheckScissor(); +} + +void Metal::StateTracker::CheckScissor() +{ + auto clipped = m_state.scissor_rect; + clipped.ClampUL(0, 0, m_current.width, m_current.height); + m_flags.has_scissor = clipped == m_current.scissor_rect; +} + +void Metal::StateTracker::SetViewport(float x, float y, float width, float height, float near_depth, + float far_depth) +{ + m_state.viewport = {x, y, width, height, near_depth, far_depth}; + CheckViewport(); +} + +void Metal::StateTracker::CheckViewport() +{ + m_flags.has_viewport = + 0 == memcmp(&m_state.viewport, &m_current.viewport, sizeof(m_current.viewport)); +} + +void Metal::StateTracker::SetTexture(u32 idx, id texture) +{ + ASSERT(idx < std::size(m_state.textures)); + if (!texture) + texture = m_dummy_texture; + if (m_state.textures[idx] != texture) + { + m_state.textures[idx] = texture; + m_dirty_textures |= 1 << idx; + } +} + +void Metal::StateTracker::SetSamplerForce(u32 idx, const SamplerState& sampler) +{ + m_state.samplers[idx] = g_object_cache->GetSampler(sampler); + m_state.sampler_min_lod[idx] = sampler.tm1.min_lod; + m_state.sampler_max_lod[idx] = sampler.tm1.max_lod; + m_state.sampler_states[idx] = sampler; + m_dirty_samplers |= 1 << idx; +} + +void Metal::StateTracker::SetSampler(u32 idx, const SamplerState& sampler) +{ + ASSERT(idx < std::size(m_state.samplers)); + if (m_state.sampler_states[idx] != sampler) + SetSamplerForce(idx, sampler); +} + +void Metal::StateTracker::SetComputeTexture(const Texture* texture) +{ + if (m_state.compute_texture != texture) + { + m_state.compute_texture = texture; + m_flags.has_compute_texture = false; + } +} + +void Metal::StateTracker::UnbindTexture(id texture) +{ + for (size_t i = 0; i < std::size(m_state.textures); ++i) + { + if (m_state.textures[i] == texture) + { + m_state.textures[i] = m_dummy_texture; + m_dirty_textures |= 1 << i; + } + } +} + +void Metal::StateTracker::InvalidateUniforms(bool vertex, bool fragment) +{ + m_flags.has_gx_vs_uniform &= !vertex; + m_flags.has_gx_ps_uniform &= !fragment; +} + +void Metal::StateTracker::SetUtilityUniform(const void* buffer, size_t size) +{ + if (m_state.utility_uniform_capacity < size) + { + m_state.utility_uniform = std::unique_ptr(new u8[size]); + m_state.utility_uniform_capacity = size; + } + m_state.utility_uniform_size = size; + memcpy(m_state.utility_uniform.get(), buffer, size); + m_flags.has_utility_vs_uniform = false; + m_flags.has_utility_ps_uniform = false; +} + +void Metal::StateTracker::SetTexelBuffer(id buffer, u32 offset0, u32 offset1) +{ + m_state.texels = buffer; + m_state.texel_buffer_offset0 = offset0; + m_state.texel_buffer_offset1 = offset1; + m_flags.has_texel_buffer = false; +} + +void Metal::StateTracker::SetVerticesAndIndices(Map vertices, Map indices) +{ + m_state.vertices = vertices.gpu_buffer; + m_state.indices = indices.gpu_buffer; + m_state.vertices_offset = vertices.gpu_offset; + m_state.indices_offset = indices.gpu_offset; + m_flags.has_vertices = false; +} + +void Metal::StateTracker::SetBBoxBuffer(id bbox, id upload, + id download) +{ + m_state.bbox = bbox; + m_state.bbox_upload_fence = upload; + m_state.bbox_download_fence = download; +} + +void Metal::StateTracker::SetVertexBufferNow(u32 idx, id buffer, u32 offset) +{ + if (idx < std::size(m_current.vertex_buffers) && m_current.vertex_buffers[idx] == buffer) + { + [m_current_render_encoder setVertexBufferOffset:offset atIndex:idx]; + } + else + { + [m_current_render_encoder setVertexBuffer:buffer offset:offset atIndex:idx]; + m_current.vertex_buffers[idx] = buffer; + } +} + +void Metal::StateTracker::SetFragmentBufferNow(u32 idx, id buffer, u32 offset) +{ + if (idx < std::size(m_current.fragment_buffers) && m_current.fragment_buffers[idx] == buffer) + { + [m_current_render_encoder setFragmentBufferOffset:offset atIndex:idx]; + } + else + { + [m_current_render_encoder setFragmentBuffer:buffer offset:offset atIndex:idx]; + m_current.fragment_buffers[idx] = buffer; + } +} + +// MARK: Render + +// clang-format off +static constexpr NSString* LABEL_GX = @"GX Draw"; +static constexpr NSString* LABEL_UTIL = @"Utility Draw"; +// clang-format on + +static NSRange RangeOfBits(u32 value) +{ + ASSERT(value && "Value must be nonzero"); + u32 low = Common::CountTrailingZeros(value); + u32 high = 31 - Common::CountLeadingZeros(value); + return NSMakeRange(low, high + 1 - low); +} + +void Metal::StateTracker::PrepareRender() +{ + if (!m_current_render_encoder) + BeginRenderPass(MTLLoadActionLoad); + id enc = m_current_render_encoder; + const Pipeline* pipe = m_state.render_pipeline; + bool is_gx = pipe->Usage() == AbstractPipelineUsage::GX; + NSString* label = is_gx ? LABEL_GX : LABEL_UTIL; + if (m_flags.should_apply_label && m_current.label != label) + { + m_current.label = label; + [m_current_render_encoder setLabel:label]; + } + if (!m_flags.has_pipeline) + { + m_flags.has_pipeline = true; + if (pipe->Get() != m_current.pipeline) + { + m_current.pipeline = pipe->Get(); + [enc setRenderPipelineState:pipe->Get()]; + } + if (pipe->Cull() != m_current.cull_mode) + { + m_current.cull_mode = pipe->Cull(); + [enc setCullMode:pipe->Cull()]; + } + if (pipe->DepthStencil() != m_current.depth_stencil) + { + m_current.depth_stencil = pipe->DepthStencil(); + [enc setDepthStencilState:g_object_cache->GetDepthStencil(m_current.depth_stencil)]; + } + MTLDepthClipMode clip = is_gx && g_ActiveConfig.backend_info.bSupportsDepthClamp ? + MTLDepthClipModeClamp : + MTLDepthClipModeClip; + if (clip != m_current.depth_clip_mode) + { + m_current.depth_clip_mode = clip; + [enc setDepthClipMode:clip]; + } + if (is_gx && m_state.bbox_upload_fence && !m_flags.bbox_fence && pipe->UsesFragmentBuffer(2)) + { + m_flags.bbox_fence = true; + [enc waitForFence:m_state.bbox_upload_fence beforeStages:MTLRenderStageFragment]; + [enc setFragmentBuffer:m_state.bbox offset:0 atIndex:2]; + } + } + if (!m_flags.has_viewport) + { + m_flags.has_viewport = true; + m_current.viewport = m_state.viewport; + MTLViewport metal; + metal.originX = m_state.viewport.x; + metal.originY = m_state.viewport.y; + metal.width = m_state.viewport.width; + metal.height = m_state.viewport.height; + metal.znear = m_state.viewport.near_depth; + metal.zfar = m_state.viewport.far_depth; + [enc setViewport:metal]; + } + if (!m_flags.has_scissor) + { + m_flags.has_scissor = true; + m_current.scissor_rect = m_state.scissor_rect; + m_current.scissor_rect.ClampUL(0, 0, m_current.width, m_current.height); + MTLScissorRect metal; + metal.x = m_current.scissor_rect.left; + metal.y = m_current.scissor_rect.top; + metal.width = m_current.scissor_rect.right - m_current.scissor_rect.left; + metal.height = m_current.scissor_rect.bottom - m_current.scissor_rect.top; + [enc setScissorRect:metal]; + } + if (!m_flags.has_vertices && pipe->UsesVertexBuffer(0)) + { + m_flags.has_vertices = true; + if (m_state.vertices) + SetVertexBufferNow(0, m_state.vertices, m_state.vertices_offset); + } + if (u8 dirty = m_dirty_textures & pipe->GetTextures()) + { + m_dirty_textures &= ~pipe->GetTextures(); + NSRange range = RangeOfBits(dirty); + [enc setFragmentTextures:&m_state.textures[range.location] withRange:range]; + } + if (u8 dirty = m_dirty_samplers & pipe->GetSamplers()) + { + m_dirty_samplers &= ~pipe->GetSamplers(); + NSRange range = RangeOfBits(dirty); + [enc setFragmentSamplerStates:&m_state.samplers[range.location] + lodMinClamps:m_state.sampler_min_lod.data() + lodMaxClamps:m_state.sampler_max_lod.data() + withRange:range]; + } + if (is_gx) + { + // GX draw + if (!m_flags.has_gx_vs_uniform) + { + m_flags.has_gx_vs_uniform = true; + Map map = Allocate(UploadBuffer::Uniform, sizeof(VertexShaderConstants), AlignMask::Uniform); + memcpy(map.cpu_buffer, &VertexShaderManager::constants, sizeof(VertexShaderConstants)); + SetVertexBufferNow(1, map.gpu_buffer, map.gpu_offset); + if (pipe->UsesFragmentBuffer(1)) + SetFragmentBufferNow(1, map.gpu_buffer, map.gpu_offset); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, + Align(sizeof(VertexShaderConstants), AlignMask::Uniform)); + } + if (!m_flags.has_gx_ps_uniform) + { + m_flags.has_gx_ps_uniform = true; + Map map = Allocate(UploadBuffer::Uniform, sizeof(PixelShaderConstants), AlignMask::Uniform); + memcpy(map.cpu_buffer, &PixelShaderManager::constants, sizeof(PixelShaderConstants)); + SetFragmentBufferNow(0, map.gpu_buffer, map.gpu_offset); + ADDSTAT(g_stats.this_frame.bytes_uniform_streamed, + Align(sizeof(PixelShaderConstants), AlignMask::Uniform)); + } + } + else + { + // Utility draw + if (!m_flags.has_utility_vs_uniform && pipe->UsesVertexBuffer(1)) + { + m_flags.has_utility_vs_uniform = true; + m_flags.has_gx_vs_uniform = false; + [enc setVertexBytes:m_state.utility_uniform.get() + length:m_state.utility_uniform_size + atIndex:1]; + } + if (!m_flags.has_utility_ps_uniform && pipe->UsesFragmentBuffer(0)) + { + m_flags.has_utility_ps_uniform = true; + m_flags.has_gx_ps_uniform = false; + [enc setFragmentBytes:m_state.utility_uniform.get() + length:m_state.utility_uniform_size + atIndex:0]; + } + if (!m_flags.has_texel_buffer && pipe->UsesFragmentBuffer(2)) + { + m_flags.has_texel_buffer = true; + SetFragmentBufferNow(2, m_state.texels, m_state.texel_buffer_offset0); + } + } +} + +void Metal::StateTracker::PrepareCompute() +{ + if (!m_current_compute_encoder) + BeginComputePass(); + id enc = m_current_compute_encoder; + const ComputePipeline* pipe = m_state.compute_pipeline; + if (!m_flags.has_pipeline) + { + m_flags.has_pipeline = true; + [enc setComputePipelineState:pipe->GetComputePipeline()]; + } + if (!m_flags.has_compute_texture && pipe->UsesTexture(0)) + { + m_flags.has_compute_texture = true; + [enc setTexture:m_state.compute_texture->GetMTLTexture() atIndex:0]; + } + // Compute and render can't happen at the same time, so just reuse one of the flags + if (!m_flags.has_utility_vs_uniform && pipe->UsesBuffer(0)) + { + m_flags.has_utility_vs_uniform = true; + [enc setBytes:m_state.utility_uniform.get() length:m_state.utility_uniform_size atIndex:0]; + } + if (!m_flags.has_texel_buffer && pipe->UsesBuffer(2)) + { + m_flags.has_texel_buffer = true; + [enc setBuffer:m_state.texels offset:m_state.texel_buffer_offset0 atIndex:2]; + if (pipe->UsesBuffer(3)) + [enc setBuffer:m_state.texels offset:m_state.texel_buffer_offset1 atIndex:3]; + } +} + +void Metal::StateTracker::Draw(u32 base_vertex, u32 num_vertices) +{ + PrepareRender(); + [m_current_render_encoder drawPrimitives:m_state.render_pipeline->Prim() + vertexStart:base_vertex + vertexCount:num_vertices]; +} + +void Metal::StateTracker::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) +{ + PrepareRender(); + if (!base_vertex) + { + [m_current_render_encoder + drawIndexedPrimitives:m_state.render_pipeline->Prim() + indexCount:num_indices + indexType:MTLIndexTypeUInt16 + indexBuffer:m_state.indices + indexBufferOffset:m_state.indices_offset + base_index * sizeof(u16)]; + } + else + { + [m_current_render_encoder + drawIndexedPrimitives:m_state.render_pipeline->Prim() + indexCount:num_indices + indexType:MTLIndexTypeUInt16 + indexBuffer:m_state.indices + indexBufferOffset:m_state.indices_offset + base_index * sizeof(u16) + instanceCount:1 + baseVertex:base_vertex + baseInstance:0]; + } +} + +void Metal::StateTracker::DispatchComputeShader(u32 groupsize_x, u32 groupsize_y, u32 groupsize_z, + u32 groups_x, u32 groups_y, u32 groups_z) +{ + PrepareCompute(); + [m_current_compute_encoder + dispatchThreadgroups:MTLSizeMake(groups_x, groups_y, groups_z) + threadsPerThreadgroup:MTLSizeMake(groupsize_x, groupsize_y, groupsize_z)]; +} + +void Metal::StateTracker::ResolveTexture(id src, id dst, u32 layer, + u32 level) +{ + EndRenderPass(); + auto color0 = [[m_resolve_pass_desc colorAttachments] objectAtIndexedSubscript:0]; + [color0 setTexture:src]; + [color0 setResolveTexture:dst]; + [color0 setResolveSlice:layer]; + [color0 setResolveLevel:level]; + id enc = + [GetRenderCmdBuf() renderCommandEncoderWithDescriptor:m_resolve_pass_desc]; + [enc setLabel:@"Multisample Resolve"]; + [enc endEncoding]; +} diff --git a/Source/Core/VideoBackends/Metal/MTLTexture.h b/Source/Core/VideoBackends/Metal/MTLTexture.h new file mode 100644 index 0000000000..7c01f1de4b --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLTexture.h @@ -0,0 +1,77 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "VideoCommon/AbstractFramebuffer.h" +#include "VideoCommon/AbstractStagingTexture.h" +#include "VideoCommon/AbstractTexture.h" + +#include "VideoBackends/Metal/MRCHelpers.h" + +namespace Metal +{ +class Texture final : public AbstractTexture +{ +public: + explicit Texture(MRCOwned> tex, const TextureConfig& config); + ~Texture(); + + void CopyRectangleFromTexture(const AbstractTexture* src, + const MathUtil::Rectangle& src_rect, u32 src_layer, + u32 src_level, const MathUtil::Rectangle& dst_rect, + u32 dst_layer, u32 dst_level) override; + void ResolveFromTexture(const AbstractTexture* src, const MathUtil::Rectangle& rect, + u32 layer, u32 level) override; + void Load(u32 level, u32 width, u32 height, u32 row_length, const u8* buffer, + size_t buffer_size) override; + + id GetMTLTexture() const { return m_tex; } + void SetMTLTexture(MRCOwned> tex) { m_tex = std::move(tex); } + +private: + MRCOwned> m_tex; +}; + +class StagingTexture final : public AbstractStagingTexture +{ +public: + StagingTexture(MRCOwned> buffer, StagingTextureType type, + const TextureConfig& config); + ~StagingTexture(); + + void CopyFromTexture(const AbstractTexture* src, const MathUtil::Rectangle& src_rect, + u32 src_layer, u32 src_level, + const MathUtil::Rectangle& dst_rect) override; + void CopyToTexture(const MathUtil::Rectangle& src_rect, AbstractTexture* dst, + const MathUtil::Rectangle& dst_rect, u32 dst_layer, + u32 dst_level) override; + + bool Map() override; + void Unmap() override; + void Flush() override; + +private: + MRCOwned> m_buffer; + MRCOwned> m_wait_buffer; +}; + +class Framebuffer final : public AbstractFramebuffer +{ +public: + Framebuffer(AbstractTexture* color, AbstractTexture* depth, u32 width, u32 height, u32 layers, + u32 samples); + ~Framebuffer(); + + id GetColor() const + { + return static_cast(GetColorAttachment())->GetMTLTexture(); + } + id GetDepth() const + { + return static_cast(GetDepthAttachment())->GetMTLTexture(); + } +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLTexture.mm b/Source/Core/VideoBackends/Metal/MTLTexture.mm new file mode 100644 index 0000000000..67c114caa7 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLTexture.mm @@ -0,0 +1,179 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLTexture.h" + +#include "Common/Align.h" +#include "Common/Assert.h" + +#include "VideoBackends/Metal/MTLStateTracker.h" + +Metal::Texture::Texture(MRCOwned> tex, const TextureConfig& config) + : AbstractTexture(config), m_tex(std::move(tex)) +{ +} + +Metal::Texture::~Texture() +{ + if (g_state_tracker) + g_state_tracker->UnbindTexture(m_tex); +} + +void Metal::Texture::CopyRectangleFromTexture(const AbstractTexture* src, + const MathUtil::Rectangle& src_rect, + u32 src_layer, u32 src_level, + const MathUtil::Rectangle& dst_rect, + u32 dst_layer, u32 dst_level) +{ + g_state_tracker->EndRenderPass(); + id msrc = static_cast(src)->GetMTLTexture(); + id blit = [g_state_tracker->GetRenderCmdBuf() blitCommandEncoder]; + MTLSize size = MTLSizeMake(src_rect.right - src_rect.left, src_rect.bottom - src_rect.top, 1); + [blit setLabel:@"Texture Copy"]; + [blit copyFromTexture:msrc + sourceSlice:src_layer + sourceLevel:src_level + sourceOrigin:MTLOriginMake(src_rect.left, src_rect.top, 0) + sourceSize:size + toTexture:m_tex + destinationSlice:dst_layer + destinationLevel:dst_level + destinationOrigin:MTLOriginMake(dst_rect.left, dst_rect.top, 0)]; + [blit endEncoding]; +} + +void Metal::Texture::ResolveFromTexture(const AbstractTexture* src, + const MathUtil::Rectangle& rect, u32 layer, u32 level) +{ + ASSERT(rect == MathUtil::Rectangle(0, 0, src->GetWidth(), src->GetHeight())); + id src_tex = static_cast(src)->GetMTLTexture(); + g_state_tracker->ResolveTexture(src_tex, m_tex, layer, level); +} + +void Metal::Texture::Load(u32 level, u32 width, u32 height, u32 row_length, // + const u8* buffer, size_t buffer_size) +{ + @autoreleasepool + { + const u32 block_size = GetBlockSizeForFormat(GetFormat()); + const u32 num_rows = Common::AlignUp(height, block_size) / block_size; + const u32 source_pitch = CalculateStrideForFormat(m_config.format, row_length); + const u32 upload_size = source_pitch * num_rows; + StateTracker::Map map = g_state_tracker->AllocateForTextureUpload(upload_size); + memcpy(map.cpu_buffer, buffer, upload_size); + id encoder = g_state_tracker->GetTextureUploadEncoder(); + [encoder copyFromBuffer:map.gpu_buffer + sourceOffset:map.gpu_offset + sourceBytesPerRow:source_pitch + sourceBytesPerImage:upload_size + sourceSize:MTLSizeMake(width, height, 1) + toTexture:m_tex + destinationSlice:0 + destinationLevel:level + destinationOrigin:MTLOriginMake(0, 0, 0)]; + } +} + +Metal::StagingTexture::StagingTexture(MRCOwned> buffer, StagingTextureType type, + const TextureConfig& config) + : AbstractStagingTexture(type, config), m_buffer(std::move(buffer)) +{ + m_map_pointer = static_cast([m_buffer contents]); + m_map_stride = config.GetStride(); +} + +Metal::StagingTexture::~StagingTexture() = default; + +void Metal::StagingTexture::CopyFromTexture(const AbstractTexture* src, + const MathUtil::Rectangle& src_rect, // + u32 src_layer, u32 src_level, + const MathUtil::Rectangle& dst_rect) +{ + @autoreleasepool + { + const size_t stride = m_config.GetStride(); + const u32 offset = dst_rect.top * stride + dst_rect.left * m_texel_size; + const MTLSize size = + MTLSizeMake(src_rect.right - src_rect.left, src_rect.bottom - src_rect.top, 1); + g_state_tracker->EndRenderPass(); + m_wait_buffer = MRCRetain(g_state_tracker->GetRenderCmdBuf()); + id download_encoder = [m_wait_buffer blitCommandEncoder]; + [download_encoder setLabel:@"Texture Download"]; + [download_encoder copyFromTexture:static_cast(src)->GetMTLTexture() + sourceSlice:src_layer + sourceLevel:src_level + sourceOrigin:MTLOriginMake(src_rect.left, src_rect.top, 0) + sourceSize:size + toBuffer:m_buffer + destinationOffset:offset + destinationBytesPerRow:stride + destinationBytesPerImage:stride * size.height]; + [download_encoder endEncoding]; + m_needs_flush = true; + } +} + +void Metal::StagingTexture::CopyToTexture(const MathUtil::Rectangle& src_rect, // + AbstractTexture* dst, + const MathUtil::Rectangle& dst_rect, // + u32 dst_layer, u32 dst_level) +{ + @autoreleasepool + { + const size_t stride = m_config.GetStride(); + const u32 offset = dst_rect.top * stride + dst_rect.left * m_texel_size; + const MTLSize size = + MTLSizeMake(src_rect.right - src_rect.left, src_rect.bottom - src_rect.top, 1); + g_state_tracker->EndRenderPass(); + m_wait_buffer = MRCRetain(g_state_tracker->GetRenderCmdBuf()); + id upload_encoder = [m_wait_buffer blitCommandEncoder]; + [upload_encoder setLabel:@"Texture Upload"]; + [upload_encoder copyFromBuffer:m_buffer + sourceOffset:offset + sourceBytesPerRow:stride + sourceBytesPerImage:stride * size.height + sourceSize:size + toTexture:static_cast(dst)->GetMTLTexture() + destinationSlice:dst_layer + destinationLevel:dst_level + destinationOrigin:MTLOriginMake(dst_rect.left, dst_rect.top, 0)]; + [upload_encoder endEncoding]; + m_needs_flush = true; + } +} + +bool Metal::StagingTexture::Map() +{ + // Always mapped + return true; +} + +void Metal::StagingTexture::Unmap() +{ + // Always mapped +} + +void Metal::StagingTexture::Flush() +{ + m_needs_flush = false; + if (!m_wait_buffer) + return; + if ([m_wait_buffer status] != MTLCommandBufferStatusCompleted) + { + // Flush while we wait, since who knows how long we'll be sitting here + g_state_tracker->FlushEncoders(); + [m_wait_buffer waitUntilCompleted]; + } + m_wait_buffer = nullptr; +} + +Metal::Framebuffer::Framebuffer(AbstractTexture* color, AbstractTexture* depth, // + u32 width, u32 height, u32 layers, u32 samples) + : AbstractFramebuffer(color, depth, + color ? color->GetFormat() : AbstractTextureFormat::Undefined, // + depth ? depth->GetFormat() : AbstractTextureFormat::Undefined, // + width, height, layers, samples) +{ +} + +Metal::Framebuffer::~Framebuffer() = default; diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.h b/Source/Core/VideoBackends/Metal/MTLUtil.h new file mode 100644 index 0000000000..385f508648 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLUtil.h @@ -0,0 +1,54 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +#include "VideoCommon/AbstractShader.h" +#include "VideoCommon/TextureConfig.h" +#include "VideoCommon/VideoConfig.h" + +#include "VideoBackends/Metal/MRCHelpers.h" + +namespace Metal +{ +struct DeviceFeatures +{ + bool unified_memory; + bool subgroup_ops; +}; + +extern DeviceFeatures g_features; + +namespace Util +{ +struct Viewport +{ + float x; + float y; + float width; + float height; + float near_depth; + float far_depth; +}; + +/// Gets the list of Metal devices, ordered so the system default device is first +std::vector>> GetAdapterList(); +void PopulateBackendInfo(VideoConfig* config); +void PopulateBackendInfoAdapters(VideoConfig* config, + const std::vector>>& adapters); +void PopulateBackendInfoFeatures(VideoConfig* config, id device); + +AbstractTextureFormat ToAbstract(MTLPixelFormat format); +MTLPixelFormat FromAbstract(AbstractTextureFormat format); +static inline bool HasStencil(AbstractTextureFormat format) +{ + return format == AbstractTextureFormat::D24_S8 || format == AbstractTextureFormat::D32F_S8; +} + +std::optional TranslateShaderToMSL(ShaderStage stage, std::string_view source); + +} // namespace Util +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm new file mode 100644 index 0000000000..b851a3d256 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -0,0 +1,358 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLUtil.h" + +#include +#include + +#include + +#include "Common/MsgHandler.h" + +#include "VideoCommon/Spirv.h" + +Metal::DeviceFeatures Metal::g_features; + +std::vector>> Metal::Util::GetAdapterList() +{ + std::vector>> list; + id default_dev = MTLCreateSystemDefaultDevice(); + if (default_dev) + list.push_back(MRCTransfer(default_dev)); + + auto devices = MRCTransfer(MTLCopyAllDevices()); + for (id device in devices.Get()) + { + if (device != default_dev) + list.push_back(MRCRetain(device)); + } + return list; +} + +void Metal::Util::PopulateBackendInfo(VideoConfig* config) +{ + config->backend_info.api_type = APIType::Metal; + config->backend_info.bUsesLowerLeftOrigin = false; + config->backend_info.bSupportsExclusiveFullscreen = false; + config->backend_info.bSupportsDualSourceBlend = true; + config->backend_info.bSupportsPrimitiveRestart = true; + config->backend_info.bSupportsGeometryShaders = false; + config->backend_info.bSupportsComputeShaders = true; + config->backend_info.bSupports3DVision = false; + config->backend_info.bSupportsEarlyZ = true; + config->backend_info.bSupportsBindingLayout = true; + config->backend_info.bSupportsBBox = true; + config->backend_info.bSupportsGSInstancing = false; + config->backend_info.bSupportsPostProcessing = true; + config->backend_info.bSupportsPaletteConversion = true; + config->backend_info.bSupportsClipControl = true; + config->backend_info.bSupportsSSAA = true; + config->backend_info.bSupportsFragmentStoresAndAtomics = true; + config->backend_info.bSupportsReversedDepthRange = false; + config->backend_info.bSupportsLogicOp = false; + config->backend_info.bSupportsMultithreading = false; + config->backend_info.bSupportsGPUTextureDecoding = true; + config->backend_info.bSupportsCopyToVram = true; + config->backend_info.bSupportsBitfield = true; + config->backend_info.bSupportsDynamicSamplerIndexing = true; + config->backend_info.bSupportsFramebufferFetch = false; + config->backend_info.bSupportsBackgroundCompiling = true; + config->backend_info.bSupportsLargePoints = true; + config->backend_info.bSupportsPartialDepthCopies = true; + config->backend_info.bSupportsDepthReadback = true; + config->backend_info.bSupportsShaderBinaries = false; + config->backend_info.bSupportsPipelineCacheData = false; + config->backend_info.bSupportsCoarseDerivatives = false; + config->backend_info.bSupportsTextureQueryLevels = true; + config->backend_info.bSupportsLodBiasInSampler = false; + config->backend_info.bSupportsSettingObjectNames = true; +} + +void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config, + const std::vector>>& adapters) +{ + config->backend_info.Adapters.clear(); + for (id adapter : adapters) + { + config->backend_info.Adapters.push_back([[adapter name] UTF8String]); + } +} + +void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id device) +{ +#if TARGET_OS_OSX + config->backend_info.bSupportsDepthClamp = true; + config->backend_info.bSupportsST3CTextures = true; + config->backend_info.bSupportsBPTCTextures = true; +#else + bool supports_mac1 = false; + bool supports_apple4 = false; + if (@available(iOS 13, *)) + { + supports_mac1 = [device supportsFamily:MTLGPUFamilyMac1]; + supports_apple4 = [device supportsFamily:MTLGPUFamilyApple4]; + } + else + { + supports_apple4 = [device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily4_v1]; + } + config->backend_info.bSupportsDepthClamp = supports_mac1 || supports_apple4; + config->backend_info.bSupportsST3CTextures = supports_mac1; + config->backend_info.bSupportsBPTCTextures = supports_mac1; + config->backend_info.bSupportsFramebufferFetch = true; +#endif + if (char* env = getenv("MTL_UNIFIED_MEMORY")) + g_features.unified_memory = env[0] == '1' || env[0] == 'y' || env[0] == 'Y'; + else if (@available(macOS 10.15, iOS 13.0, *)) + g_features.unified_memory = [device hasUnifiedMemory]; + else + g_features.unified_memory = false; + + g_features.subgroup_ops = false; + if (@available(macOS 10.15, iOS 13, *)) + { + // Requires SIMD-scoped reduction operations + g_features.subgroup_ops = + [device supportsFamily:MTLGPUFamilyMac2] || [device supportsFamily:MTLGPUFamilyApple6]; + config->backend_info.bSupportsFramebufferFetch = [device supportsFamily:MTLGPUFamilyApple1]; + } + if ([[device name] containsString:@"AMD"]) + { + // Broken + g_features.subgroup_ops = false; + } +} + +// clang-format off + +AbstractTextureFormat Metal::Util::ToAbstract(MTLPixelFormat format) +{ + switch (format) + { + case MTLPixelFormatRGBA8Unorm: return AbstractTextureFormat::RGBA8; + case MTLPixelFormatBGRA8Unorm: return AbstractTextureFormat::BGRA8; + case MTLPixelFormatBC1_RGBA: return AbstractTextureFormat::DXT1; + case MTLPixelFormatBC2_RGBA: return AbstractTextureFormat::DXT3; + case MTLPixelFormatBC3_RGBA: return AbstractTextureFormat::DXT5; + case MTLPixelFormatBC7_RGBAUnorm: return AbstractTextureFormat::BPTC; + case MTLPixelFormatR16Unorm: return AbstractTextureFormat::R16; + case MTLPixelFormatDepth16Unorm: return AbstractTextureFormat::D16; + case MTLPixelFormatDepth24Unorm_Stencil8: return AbstractTextureFormat::D24_S8; + case MTLPixelFormatR32Float: return AbstractTextureFormat::R32F; + case MTLPixelFormatDepth32Float: return AbstractTextureFormat::D32F; + case MTLPixelFormatDepth32Float_Stencil8: return AbstractTextureFormat::D32F_S8; + default: return AbstractTextureFormat::Undefined; + } +} + +MTLPixelFormat Metal::Util::FromAbstract(AbstractTextureFormat format) +{ + switch (format) + { + case AbstractTextureFormat::RGBA8: return MTLPixelFormatRGBA8Unorm; + case AbstractTextureFormat::BGRA8: return MTLPixelFormatBGRA8Unorm; + case AbstractTextureFormat::DXT1: return MTLPixelFormatBC1_RGBA; + case AbstractTextureFormat::DXT3: return MTLPixelFormatBC2_RGBA; + case AbstractTextureFormat::DXT5: return MTLPixelFormatBC3_RGBA; + case AbstractTextureFormat::BPTC: return MTLPixelFormatBC7_RGBAUnorm; + case AbstractTextureFormat::R16: return MTLPixelFormatR16Unorm; + case AbstractTextureFormat::D16: return MTLPixelFormatDepth16Unorm; + case AbstractTextureFormat::D24_S8: return MTLPixelFormatDepth24Unorm_Stencil8; + case AbstractTextureFormat::R32F: return MTLPixelFormatR32Float; + case AbstractTextureFormat::D32F: return MTLPixelFormatDepth32Float; + case AbstractTextureFormat::D32F_S8: return MTLPixelFormatDepth32Float_Stencil8; + case AbstractTextureFormat::Undefined: return MTLPixelFormatInvalid; + } +} + +// clang-format on + +// MARK: Shader Translation + +static const std::string_view SHADER_HEADER = R"( +// Target GLSL 4.5. +#version 450 core +// Always available on Metal +#extension GL_EXT_shader_8bit_storage : require +#extension GL_EXT_shader_16bit_storage : require +#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require + +#define ATTRIBUTE_LOCATION(x) layout(location = x) +#define FRAGMENT_OUTPUT_LOCATION(x) layout(location = x) +#define FRAGMENT_OUTPUT_LOCATION_INDEXED(x, y) layout(location = x, index = y) +#define UBO_BINDING(packing, x) layout(packing, set = 0, binding = (x - 1)) +#define SAMPLER_BINDING(x) layout(set = 1, binding = x) +#define TEXEL_BUFFER_BINDING(x) layout(set = 1, binding = (x + 8)) +#define SSBO_BINDING(x) layout(std430, set = 2, binding = x) +#define INPUT_ATTACHMENT_BINDING(x, y, z) layout(set = x, binding = y, input_attachment_index = z) +#define VARYING_LOCATION(x) layout(location = x) +#define FORCE_EARLY_Z layout(early_fragment_tests) in + +// Metal framebuffer fetch helpers. +#define FB_FETCH_VALUE subpassLoad(in_ocol0) + +// hlsl to glsl function translation +#define API_METAL 1 +#define float2 vec2 +#define float3 vec3 +#define float4 vec4 +#define uint2 uvec2 +#define uint3 uvec3 +#define uint4 uvec4 +#define int2 ivec2 +#define int3 ivec3 +#define int4 ivec4 +#define frac fract +#define lerp mix + +// These were changed in Vulkan +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +)"; +static const std::string_view COMPUTE_SHADER_HEADER = R"( +// Target GLSL 4.5. +#version 450 core +// Always available on Metal +#extension GL_EXT_shader_8bit_storage : require +#extension GL_EXT_shader_16bit_storage : require +#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require + +// All resources are packed into one descriptor set for compute. +#define UBO_BINDING(packing, x) layout(packing, set = 0, binding = (x - 1)) +#define SSBO_BINDING(x) layout(std430, set = 2, binding = x) +#define IMAGE_BINDING(format, x) layout(format, set = 1, binding = x) + +// hlsl to glsl function translation +#define API_METAL 1 +#define float2 vec2 +#define float3 vec3 +#define float4 vec4 +#define uint2 uvec2 +#define uint3 uvec3 +#define uint4 uvec4 +#define int2 ivec2 +#define int3 ivec3 +#define int4 ivec4 +#define frac fract +#define lerp mix +)"; +static const std::string_view SUBGROUP_HELPER_HEADER = R"( +#extension GL_KHR_shader_subgroup_basic : enable +#extension GL_KHR_shader_subgroup_arithmetic : enable +#extension GL_KHR_shader_subgroup_ballot : enable + +#define SUPPORTS_SUBGROUP_REDUCTION 1 +#define CAN_USE_SUBGROUP_REDUCTION true +#define IS_HELPER_INVOCATION gl_HelperInvocation +#define IS_FIRST_ACTIVE_INVOCATION (subgroupElect()) +#define SUBGROUP_MIN(value) value = subgroupMin(value) +#define SUBGROUP_MAX(value) value = subgroupMax(value) +)"; + +static const std::string_view MSL_HEADER = + // We know our shader generator leaves unused variables. + "#pragma clang diagnostic ignored \"-Wunused-variable\"\n" + // These are usually when the compiler doesn't think a switch is exhaustive + "#pragma clang diagnostic ignored \"-Wreturn-type\"\n"; + +static constexpr spirv_cross::MSLResourceBinding +MakeResourceBinding(spv::ExecutionModel stage, u32 set, u32 binding, // + u32 msl_buffer, u32 msl_texture, u32 msl_sampler) +{ + spirv_cross::MSLResourceBinding resource; + resource.stage = stage; + resource.desc_set = set; + resource.binding = binding; + resource.msl_buffer = msl_buffer; + resource.msl_texture = msl_texture; + resource.msl_sampler = msl_sampler; + return resource; +} + +std::optional Metal::Util::TranslateShaderToMSL(ShaderStage stage, + std::string_view source) +{ + std::string full_source; + + std::string_view header = stage == ShaderStage::Compute ? COMPUTE_SHADER_HEADER : SHADER_HEADER; + full_source.reserve(header.size() + SUBGROUP_HELPER_HEADER.size() + source.size()); + + full_source.append(header); + if (Metal::g_features.subgroup_ops) + full_source.append(SUBGROUP_HELPER_HEADER); + full_source.append(source); + + std::optional code; + switch (stage) + { + case ShaderStage::Vertex: + code = SPIRV::CompileVertexShader(full_source, APIType::Metal, glslang::EShTargetSpv_1_3); + break; + case ShaderStage::Geometry: + PanicAlertFmt("Tried to compile geometry shader for Metal, but Metal doesn't support them!"); + break; + case ShaderStage::Pixel: + code = SPIRV::CompileFragmentShader(full_source, APIType::Metal, glslang::EShTargetSpv_1_3); + break; + case ShaderStage::Compute: + code = SPIRV::CompileComputeShader(full_source, APIType::Metal, glslang::EShTargetSpv_1_3); + break; + } + if (!code.has_value()) + return std::nullopt; + + // clang-format off + static const spirv_cross::MSLResourceBinding resource_bindings[] = { + MakeResourceBinding(spv::ExecutionModelVertex, 0, 0, 1, 0, 0), // vs/ubo + MakeResourceBinding(spv::ExecutionModelVertex, 0, 1, 1, 0, 0), // vs/ubo + MakeResourceBinding(spv::ExecutionModelFragment, 0, 0, 0, 0, 0), // vs/ubo + MakeResourceBinding(spv::ExecutionModelFragment, 0, 1, 1, 0, 0), // vs/ubo + MakeResourceBinding(spv::ExecutionModelFragment, 1, 0, 0, 0, 0), // ps/samp0 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 1, 0, 1, 1), // ps/samp1 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 2, 0, 2, 2), // ps/samp2 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 3, 0, 3, 3), // ps/samp3 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 4, 0, 4, 4), // ps/samp4 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 5, 0, 5, 5), // ps/samp5 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 6, 0, 6, 6), // ps/samp6 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 7, 0, 7, 7), // ps/samp7 + MakeResourceBinding(spv::ExecutionModelFragment, 1, 8, 0, 8, 8), // ps/samp8 + MakeResourceBinding(spv::ExecutionModelFragment, 2, 0, 2, 0, 0), // ps/ssbo + MakeResourceBinding(spv::ExecutionModelGLCompute, 0, 1, 0, 0, 0), // cs/ubo + MakeResourceBinding(spv::ExecutionModelGLCompute, 1, 0, 0, 0, 0), // cs/output_image + MakeResourceBinding(spv::ExecutionModelGLCompute, 2, 0, 2, 0, 0), // cs/ssbo + MakeResourceBinding(spv::ExecutionModelGLCompute, 2, 1, 3, 0, 0), // cs/ssbo + }; + + spirv_cross::CompilerMSL::Options options; +#if TARGET_OS_OSX + options.platform = spirv_cross::CompilerMSL::Options::macOS; +#elif TARGET_OS_IOS + options.platform = spirv_cross::CompilerMSL::Options::iOS; +#else + #error What platform is this? +#endif + // clang-format on + + spirv_cross::CompilerMSL compiler(std::move(*code)); + + if (@available(macOS 11, iOS 14, *)) + options.set_msl_version(2, 3); + else if (@available(macOS 10.15, iOS 13, *)) + options.set_msl_version(2, 2); + else if (@available(macOS 10.14, iOS 12, *)) + options.set_msl_version(2, 1); + else + options.set_msl_version(2, 0); + options.use_framebuffer_fetch_subpasses = true; + compiler.set_msl_options(options); + + for (auto& binding : resource_bindings) + compiler.add_msl_resource_binding(binding); + + std::string msl(MSL_HEADER); + msl += compiler.compile(); + return msl; +} diff --git a/Source/Core/VideoBackends/Metal/MTLVertexManager.h b/Source/Core/VideoBackends/Metal/MTLVertexManager.h new file mode 100644 index 0000000000..29c715f1fd --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLVertexManager.h @@ -0,0 +1,30 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "VideoBackends/Metal/MTLUtil.h" +#include "VideoCommon/VertexManagerBase.h" + +namespace Metal +{ +class VertexManager final : public VertexManagerBase +{ +public: + VertexManager(); + ~VertexManager() override; + + void UploadUtilityUniforms(const void* uniforms, u32 uniforms_size) override; + bool UploadTexelBuffer(const void* data, u32 data_size, TexelBufferFormat format, + u32* out_offset) override; + bool UploadTexelBuffer(const void* data, u32 data_size, TexelBufferFormat format, u32* out_offset, + const void* palette_data, u32 palette_size, + TexelBufferFormat palette_format, u32* out_palette_offset) override; + +protected: + void ResetBuffer(u32 vertex_stride) override; + void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, + u32* out_base_index) override; + void UploadUniforms() override; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLVertexManager.mm b/Source/Core/VideoBackends/Metal/MTLVertexManager.mm new file mode 100644 index 0000000000..3683e79ba6 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLVertexManager.mm @@ -0,0 +1,89 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLVertexManager.h" + +#include "VideoBackends/Metal/MTLStateTracker.h" + +#include "VideoCommon/PixelShaderManager.h" +#include "VideoCommon/Statistics.h" +#include "VideoCommon/VertexShaderManager.h" + +Metal::VertexManager::VertexManager() +{ +} + +Metal::VertexManager::~VertexManager() = default; + +void Metal::VertexManager::UploadUtilityUniforms(const void* uniforms, u32 uniforms_size) +{ + g_state_tracker->SetUtilityUniform(uniforms, uniforms_size); +} + +bool Metal::VertexManager::UploadTexelBuffer(const void* data, u32 data_size, + TexelBufferFormat format, u32* out_offset) +{ + *out_offset = 0; + StateTracker::Map map = g_state_tracker->Allocate(StateTracker::UploadBuffer::Texels, data_size, + StateTracker::AlignMask::Other); + memcpy(map.cpu_buffer, data, data_size); + g_state_tracker->SetTexelBuffer(map.gpu_buffer, map.gpu_offset, 0); + return true; +} + +bool Metal::VertexManager::UploadTexelBuffer(const void* data, u32 data_size, + TexelBufferFormat format, u32* out_offset, + const void* palette_data, u32 palette_size, + TexelBufferFormat palette_format, + u32* out_palette_offset) +{ + *out_offset = 0; + *out_palette_offset = 0; + + const u32 aligned_data_size = g_state_tracker->Align(data_size, StateTracker::AlignMask::Other); + const u32 total_size = aligned_data_size + palette_size; + StateTracker::Map map = g_state_tracker->Allocate(StateTracker::UploadBuffer::Texels, total_size, + StateTracker::AlignMask::Other); + memcpy(map.cpu_buffer, data, data_size); + memcpy(static_cast(map.cpu_buffer) + aligned_data_size, palette_data, palette_size); + g_state_tracker->SetTexelBuffer(map.gpu_buffer, map.gpu_offset, + map.gpu_offset + aligned_data_size); + return true; +} + +void Metal::VertexManager::ResetBuffer(u32 vertex_stride) +{ + const u32 max_vertex_size = 65535 * vertex_stride; + void* vertex = g_state_tracker->Preallocate(StateTracker::UploadBuffer::Vertex, max_vertex_size); + void* index = + g_state_tracker->Preallocate(StateTracker::UploadBuffer::Index, MAXIBUFFERSIZE * sizeof(u16)); + + m_cur_buffer_pointer = m_base_buffer_pointer = static_cast(vertex); + m_end_buffer_pointer = m_base_buffer_pointer + max_vertex_size; + m_index_generator.Start(static_cast(index)); +} + +void Metal::VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, + u32* out_base_vertex, u32* out_base_index) +{ + const u32 vsize = num_vertices * vertex_stride; + const u32 isize = num_indices * sizeof(u16); + StateTracker::Map vmap = g_state_tracker->CommitPreallocation( + StateTracker::UploadBuffer::Vertex, vsize, StateTracker::AlignMask::Other); + StateTracker::Map imap = g_state_tracker->CommitPreallocation( + StateTracker::UploadBuffer::Index, isize, StateTracker::AlignMask::Other); + + ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, vsize); + ADDSTAT(g_stats.this_frame.bytes_index_streamed, isize); + + g_state_tracker->SetVerticesAndIndices(vmap, imap); + *out_base_vertex = 0; + *out_base_index = 0; +} + +void Metal::VertexManager::UploadUniforms() +{ + g_state_tracker->InvalidateUniforms(VertexShaderManager::dirty, PixelShaderManager::dirty); + VertexShaderManager::dirty = false; + PixelShaderManager::dirty = false; +} diff --git a/Source/Core/VideoBackends/Metal/VideoBackend.h b/Source/Core/VideoBackends/Metal/VideoBackend.h new file mode 100644 index 0000000000..3a567718e2 --- /dev/null +++ b/Source/Core/VideoBackends/Metal/VideoBackend.h @@ -0,0 +1,27 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include "VideoCommon/VideoBackendBase.h" + +namespace Metal +{ +class VideoBackend : public VideoBackendBase +{ +public: + bool Initialize(const WindowSystemInfo& wsi) override; + void Shutdown() override; + + std::string GetName() const override; + std::string GetDisplayName() const override; + std::optional GetWarningMessage() const override; + + void InitBackendInfo() override; + + void PrepareWindow(WindowSystemInfo& wsi) override; + + static constexpr const char* NAME = "Metal"; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/OGL/OGLRender.cpp b/Source/Core/VideoBackends/OGL/OGLRender.cpp index 93df1ccc29..78f9d8e176 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.cpp +++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp @@ -903,8 +903,8 @@ void Renderer::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) } } -void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) +void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) { glUseProgram(static_cast(shader)->GetGLComputeProgramID()); glDispatchCompute(groups_x, groups_y, groups_z); diff --git a/Source/Core/VideoBackends/OGL/OGLRender.h b/Source/Core/VideoBackends/OGL/OGLRender.h index 02266776ab..72da03ef29 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.h +++ b/Source/Core/VideoBackends/OGL/OGLRender.h @@ -125,8 +125,8 @@ public: float far_depth) override; void Draw(u32 base_vertex, u32 num_vertices) override; void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) override; - void DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) override; + void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) override; void BindBackbuffer(const ClearColor& clear_color = {}) override; void PresentBackbuffer() override; diff --git a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp index db5037f427..36fa325ae7 100644 --- a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp @@ -641,8 +641,8 @@ void Renderer::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) base_vertex, 0); } -void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) +void Renderer::DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) { StateTracker::GetInstance()->SetComputeShader(static_cast(shader)); if (StateTracker::GetInstance()->BindCompute()) diff --git a/Source/Core/VideoBackends/Vulkan/VKRenderer.h b/Source/Core/VideoBackends/Vulkan/VKRenderer.h index 4e69bbe577..11fc7dd96e 100644 --- a/Source/Core/VideoBackends/Vulkan/VKRenderer.h +++ b/Source/Core/VideoBackends/Vulkan/VKRenderer.h @@ -77,8 +77,8 @@ public: float far_depth) override; void Draw(u32 base_vertex, u32 num_vertices) override; void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) override; - void DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) override; + void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) override; void BindBackbuffer(const ClearColor& clear_color = {}) override; void PresentBackbuffer() override; void SetFullscreen(bool enable_fullscreen) override; diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.cpp b/Source/Core/VideoCommon/FramebufferShaderGen.cpp index 345578d071..6426b259b4 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.cpp +++ b/Source/Core/VideoCommon/FramebufferShaderGen.cpp @@ -34,6 +34,7 @@ void EmitSamplerDeclarations(ShaderCode& code, u32 start = 0, u32 end = 1, switch (GetAPIType()) { case APIType::D3D: + case APIType::Metal: case APIType::OpenGL: case APIType::Vulkan: { @@ -55,6 +56,7 @@ void EmitSampleTexture(ShaderCode& code, u32 n, std::string_view coords) switch (GetAPIType()) { case APIType::D3D: + case APIType::Metal: case APIType::OpenGL: case APIType::Vulkan: code.Write("texture(samp{}, {})", n, coords); @@ -72,6 +74,7 @@ void EmitTextureLoad(ShaderCode& code, u32 n, std::string_view coords) switch (GetAPIType()) { case APIType::D3D: + case APIType::Metal: case APIType::OpenGL: case APIType::Vulkan: code.Write("texelFetch(samp{}, ({}).xyz, ({}).w)", n, coords, coords); @@ -89,6 +92,7 @@ void EmitVertexMainDeclaration(ShaderCode& code, u32 num_tex_inputs, u32 num_col switch (GetAPIType()) { case APIType::D3D: + case APIType::Metal: case APIType::OpenGL: case APIType::Vulkan: { @@ -138,6 +142,7 @@ void EmitPixelMainDeclaration(ShaderCode& code, u32 num_tex_inputs, u32 num_colo switch (GetAPIType()) { case APIType::D3D: + case APIType::Metal: case APIType::OpenGL: case APIType::Vulkan: { diff --git a/Source/Core/VideoCommon/RenderBase.h b/Source/Core/VideoCommon/RenderBase.h index 403d028525..8824e6ff77 100644 --- a/Source/Core/VideoCommon/RenderBase.h +++ b/Source/Core/VideoCommon/RenderBase.h @@ -113,8 +113,8 @@ public: virtual void DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) {} // Dispatching compute shaders with currently-bound state. - virtual void DispatchComputeShader(const AbstractShader* shader, u32 groups_x, u32 groups_y, - u32 groups_z) + virtual void DispatchComputeShader(const AbstractShader* shader, u32 groupsize_x, u32 groupsize_y, + u32 groupsize_z, u32 groups_x, u32 groups_y, u32 groups_z) { } diff --git a/Source/Core/VideoCommon/ShaderGenCommon.cpp b/Source/Core/VideoCommon/ShaderGenCommon.cpp index 511643e83a..b9965421cc 100644 --- a/Source/Core/VideoCommon/ShaderGenCommon.cpp +++ b/Source/Core/VideoCommon/ShaderGenCommon.cpp @@ -60,6 +60,9 @@ std::string GetDiskShaderCacheFileName(APIType api_type, const char* type, bool case APIType::D3D: filename += "D3D"; break; + case APIType::Metal: + filename += "Metal"; + break; case APIType::OpenGL: filename += "OpenGL"; break; diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp index b10b4eb92b..0fc22e1731 100644 --- a/Source/Core/VideoCommon/Spirv.cpp +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -55,7 +55,7 @@ CompileShaderToSPV(EShLanguage stage, APIType api_type, glslang::TShader::ForbidIncluder includer; EProfile profile = ECoreProfile; EShMessages messages = static_cast(EShMsgDefault | EShMsgSpvRules); - if (api_type == APIType::Vulkan) + if (api_type == APIType::Vulkan || api_type == APIType::Metal) messages = static_cast(messages | EShMsgVulkanRules); int default_version = 450; diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 2f896027ad..07bbe0aa2e 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -2924,7 +2924,8 @@ bool TextureCacheBase::DecodeTextureOnGPU(TCacheEntry* entry, u32 dst_level, con auto dispatch_groups = TextureConversionShaderTiled::GetDispatchCount(info, aligned_width, aligned_height); - g_renderer->DispatchComputeShader(shader, dispatch_groups.first, dispatch_groups.second, 1); + g_renderer->DispatchComputeShader(shader, info->group_size_x, info->group_size_y, 1, + dispatch_groups.first, dispatch_groups.second, 1); // Copy from decoding texture -> final texture // This is because we don't want to have to create compute view for every layer diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp index 1e7f2b64b5..459b12b9c8 100644 --- a/Source/Core/VideoCommon/TextureConversionShader.cpp +++ b/Source/Core/VideoCommon/TextureConversionShader.cpp @@ -519,10 +519,49 @@ UBO_BINDING(std140, 1) uniform UBO { uint u_palette_offset; }; -TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer s_input_buffer; -#ifdef HAS_PALETTE -TEXEL_BUFFER_BINDING(1) uniform usamplerBuffer s_palette_buffer; +#if defined(API_METAL) + +#if defined(TEXEL_BUFFER_FORMAT_R8) + SSBO_BINDING(0) readonly buffer Input { uint8_t s_input_buffer[]; }; + #define FETCH(offset) uint(s_input_buffer[offset]) +#elif defined(TEXEL_BUFFER_FORMAT_R16) + SSBO_BINDING(0) readonly buffer Input { uint16_t s_input_buffer[]; }; + #define FETCH(offset) uint(s_input_buffer[offset]) +#elif defined(TEXEL_BUFFER_FORMAT_RGBA8) + SSBO_BINDING(0) readonly buffer Input { u8vec4 s_input_buffer[]; }; + #define FETCH(offset) uvec4(s_input_buffer[offset]) +#elif defined(TEXEL_BUFFER_FORMAT_R32G32) + SSBO_BINDING(0) readonly buffer Input { uvec2 s_input_buffer[]; }; + #define FETCH(offset) s_input_buffer[offset] +#else + #error No texel buffer? #endif + +#ifdef HAS_PALETTE + SSBO_BINDING(1) readonly buffer Palette { uint16_t s_palette_buffer[]; }; + #define FETCH_PALETTE(offset) uint(s_palette_buffer[offset]) +#endif + +#else + +TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer s_input_buffer; + +#if defined(TEXEL_BUFFER_FORMAT_R8) || defined(TEXEL_BUFFER_FORMAT_R16) + #define FETCH(offset) texelFetch(s_input_buffer, int((offset) + u_src_offset)).r +#elif defined(TEXEL_BUFFER_FORMAT_RGBA8) + #define FETCH(offset) texelFetch(s_input_buffer, int((offset) + u_src_offset)) +#elif defined(TEXEL_BUFFER_FORMAT_R32G32) + #define FETCH(offset) texelFetch(s_input_buffer, int((offset) + u_src_offset)).rg +#else + #error No texel buffer? +#endif + +#ifdef HAS_PALETTE + TEXEL_BUFFER_BINDING(1) uniform usamplerBuffer s_palette_buffer; + #define FETCH_PALETTE(offset) texelFetch(s_palette_buffer, int((offset) + u_palette_offset)).r +#endif + +#endif // defined(API_METAL) IMAGE_BINDING(rgba8, 0) uniform writeonly image2DArray output_image; #define GROUP_MEMORY_BARRIER_WITH_SYNC memoryBarrierShared(); barrier(); @@ -563,7 +602,7 @@ uint GetTiledTexelOffset(uint2 block_size, uint2 coords) { uint2 block = coords / block_size; uint2 offset = coords % block_size; - uint buffer_pos = u_src_offset; + uint buffer_pos = 0; buffer_pos += block.y * u_src_row_stride; buffer_pos += block.x * (block_size.x * block_size.y); buffer_pos += offset.y * block_size.x; @@ -575,7 +614,7 @@ uint GetTiledTexelOffset(uint2 block_size, uint2 coords) uint4 GetPaletteColor(uint index) { // Fetch and swap BE to LE. - uint val = Swap16(texelFetch(s_palette_buffer, int(u_palette_offset + index)).x); + uint val = Swap16(FETCH_PALETTE(index)); uint4 color; #if defined(PALETTE_FORMAT_IA8) @@ -633,14 +672,14 @@ static const std::map s_decoding_shader_info{ // the size of the buffer elements. uint2 block = coords.xy / 8u; uint2 offset = coords.xy % 8u; - uint buffer_pos = u_src_offset; + uint buffer_pos = 0; buffer_pos += block.y * u_src_row_stride; buffer_pos += block.x * 32u; buffer_pos += offset.y * 4u; buffer_pos += offset.x / 2u; // Select high nibble for odd texels, low for even. - uint val = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint val = FETCH(buffer_pos); uint i; if ((coords.x & 1u) == 0u) i = Convert4To8((val >> 4)); @@ -663,7 +702,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 8x4 blocks, 8 bits per pixel uint buffer_pos = GetTiledTexelOffset(uint2(8u, 4u), coords); - uint val = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint val = FETCH(buffer_pos); uint i = Convert4To8((val & 0x0Fu)); uint a = Convert4To8((val >> 4)); uint4 color = uint4(i, i, i, a); @@ -681,7 +720,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 8x4 blocks, 8 bits per pixel uint buffer_pos = GetTiledTexelOffset(uint2(8u, 4u), coords); - uint i = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint i = FETCH(buffer_pos); uint4 color = uint4(i, i, i, i); float4 norm_color = float4(color) / 255.0; @@ -697,7 +736,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 4x4 blocks, 16 bits per pixel uint buffer_pos = GetTiledTexelOffset(uint2(4u, 4u), coords); - uint val = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint val = FETCH(buffer_pos); uint a = (val & 0xFFu); uint i = (val >> 8); uint4 color = uint4(i, i, i, a); @@ -714,7 +753,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 4x4 blocks uint buffer_pos = GetTiledTexelOffset(uint2(4u, 4u), coords); - uint val = Swap16(texelFetch(s_input_buffer, int(buffer_pos)).x); + uint val = Swap16(FETCH(buffer_pos)); uint4 color; color.x = Convert5To8(bitfieldExtract(val, 11, 5)); @@ -736,7 +775,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 4x4 blocks uint buffer_pos = GetTiledTexelOffset(uint2(4u, 4u), coords); - uint val = Swap16(texelFetch(s_input_buffer, int(buffer_pos)).x); + uint val = Swap16(FETCH(buffer_pos)); uint4 color; if ((val & 0x8000u) != 0u) @@ -771,7 +810,7 @@ static const std::map s_decoding_shader_info{ // for the entire block, then the GB channels afterwards. uint2 block = coords.xy / 4u; uint2 offset = coords.xy % 4u; - uint buffer_pos = u_src_offset; + uint buffer_pos = 0; // Our buffer has 16-bit elements, so the offsets here are half what they would be in bytes. buffer_pos += block.y * u_src_row_stride; @@ -780,8 +819,8 @@ static const std::map s_decoding_shader_info{ buffer_pos += offset.x; // The two GB channels follow after the block's AR channels. - uint val1 = texelFetch(s_input_buffer, int(buffer_pos + 0u)).x; - uint val2 = texelFetch(s_input_buffer, int(buffer_pos + 16u)).x; + uint val1 = FETCH(buffer_pos + 0u); + uint val2 = FETCH(buffer_pos + 16u); uint4 color; color.a = (val1 & 0xFFu); @@ -835,14 +874,14 @@ static const std::map s_decoding_shader_info{ // Calculate tiled block coordinates. uint2 tile_block_coords = block_coords / 2u; uint2 subtile_block_coords = block_coords % 2u; - uint buffer_pos = u_src_offset; + uint buffer_pos = 0; buffer_pos += tile_block_coords.y * u_src_row_stride; buffer_pos += tile_block_coords.x * 4u; buffer_pos += subtile_block_coords.y * 2u; buffer_pos += subtile_block_coords.x; // Read the entire DXT block to shared memory. - uint2 raw_data = texelFetch(s_input_buffer, int(buffer_pos)).xy; + uint2 raw_data = FETCH(buffer_pos); shared_temp[block_in_group] = raw_data; } @@ -921,14 +960,14 @@ static const std::map s_decoding_shader_info{ // the size of the buffer elements. uint2 block = coords.xy / 8u; uint2 offset = coords.xy % 8u; - uint buffer_pos = u_src_offset; + uint buffer_pos = 0; buffer_pos += block.y * u_src_row_stride; buffer_pos += block.x * 32u; buffer_pos += offset.y * 4u; buffer_pos += offset.x / 2u; // Select high nibble for odd texels, low for even. - uint val = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint val = FETCH(buffer_pos); uint index = ((coords.x & 1u) == 0u) ? (val >> 4) : (val & 0x0Fu); float4 norm_color = GetPaletteColorNormalized(index); imageStore(output_image, int3(int2(coords), 0), norm_color); @@ -945,7 +984,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 8x4 blocks, 8 bits per pixel uint buffer_pos = GetTiledTexelOffset(uint2(8u, 4u), coords); - uint index = texelFetch(s_input_buffer, int(buffer_pos)).x; + uint index = FETCH(buffer_pos); float4 norm_color = GetPaletteColorNormalized(index); imageStore(output_image, int3(int2(coords), 0), norm_color); } @@ -960,7 +999,7 @@ static const std::map s_decoding_shader_info{ // Tiled in 4x4 blocks, 16 bits per pixel uint buffer_pos = GetTiledTexelOffset(uint2(4u, 4u), coords); - uint index = Swap16(texelFetch(s_input_buffer, int(buffer_pos)).x) & 0x3FFFu; + uint index = Swap16(FETCH(buffer_pos)) & 0x3FFFu; float4 norm_color = GetPaletteColorNormalized(index); imageStore(output_image, int3(int2(coords), 0), norm_color); } @@ -976,8 +1015,8 @@ static const std::map s_decoding_shader_info{ DEFINE_MAIN(8, 8) { uint2 uv = gl_GlobalInvocationID.xy; - int buffer_pos = int(u_src_offset + (uv.y * u_src_row_stride) + (uv.x / 2u)); - float4 yuyv = float4(texelFetch(s_input_buffer, buffer_pos)); + uint buffer_pos = (uv.y * u_src_row_stride) + (uv.x / 2u); + float4 yuyv = float4(FETCH(buffer_pos)); float y = (uv.x & 1u) != 0u ? yuyv.b : yuyv.r; @@ -1034,6 +1073,25 @@ std::string GenerateDecodingShader(TextureFormat format, std::optionalbuffer_format) + { + case TEXEL_BUFFER_FORMAT_R8_UINT: + ss << "#define TEXEL_BUFFER_FORMAT_R8 1\n"; + break; + case TEXEL_BUFFER_FORMAT_R16_UINT: + ss << "#define TEXEL_BUFFER_FORMAT_R16 1\n"; + break; + case TEXEL_BUFFER_FORMAT_RGBA8_UINT: + ss << "#define TEXEL_BUFFER_FORMAT_RGBA8 1\n"; + break; + case TEXEL_BUFFER_FORMAT_R32G32_UINT: + ss << "#define TEXEL_BUFFER_FORMAT_R32G32 1\n"; + break; + case NUM_TEXEL_BUFFER_FORMATS: + ASSERT(0); + break; + } + ss << decoding_shader_header; ss << info->shader_body; @@ -1121,7 +1179,10 @@ float4 DecodePixel(int val) ss << "\n"; - ss << "TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer samp0;\n"; + if (api_type == APIType::Metal) + ss << "SSBO_BINDING(0) readonly buffer Palette { uint16_t palette[]; };\n"; + else + ss << "TEXEL_BUFFER_BINDING(0) uniform usamplerBuffer samp0;\n"; ss << "SAMPLER_BINDING(1) uniform sampler2DArray samp1;\n"; ss << "UBO_BINDING(std140, 1) uniform PSBlock {\n"; @@ -1143,9 +1204,12 @@ float4 DecodePixel(int val) ss << "void main() {\n"; ss << " float3 coords = v_tex0;\n"; ss << " int src = int(round(texture(samp1, coords).r * multiplier));\n"; - ss << " src = int(texelFetch(samp0, src + texel_buffer_offset).r);\n"; + if (api_type == APIType::Metal) + ss << " src = int(palette[uint(src)]);\n"; + else + ss << " src = int(texelFetch(samp0, src + texel_buffer_offset).r);\n"; - ss << " src = ((src << 8) & 0xFF00) | (src >> 8);\n"; + ss << " src = ((src << 8) | (src >> 8)) & 0xFFFF;\n"; ss << " ocol0 = DecodePixel(src);\n"; ss << "}\n"; diff --git a/Source/Core/VideoCommon/UberShaderPixel.cpp b/Source/Core/VideoCommon/UberShaderPixel.cpp index 0c8475123e..22708f3d66 100644 --- a/Source/Core/VideoCommon/UberShaderPixel.cpp +++ b/Source/Core/VideoCommon/UberShaderPixel.cpp @@ -82,7 +82,7 @@ ShaderCode GenPixelShader(APIType api_type, const ShaderHostConfig& host_config, #ifdef __APPLE__ // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) // if we want to use it. - if (api_type == APIType::Vulkan) + if (api_type == APIType::Vulkan || api_type == APIType::Metal) { if (use_dual_source) { diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 6028b7b14a..2a3c15db0a 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -35,6 +35,9 @@ #ifdef HAS_VULKAN #include "VideoBackends/Vulkan/VideoBackend.h" #endif +#ifdef __APPLE__ +#include "VideoBackends/Metal/VideoBackend.h" +#endif #include "VideoCommon/AsyncRequests.h" #include "VideoCommon/BPStructs.h" @@ -227,6 +230,7 @@ const std::vector>& VideoBackendBase::GetAvail #ifdef __APPLE__ // Emplace the Vulkan backend at the beginning so it takes precedence over OpenGL. backends.emplace(backends.begin(), std::make_unique()); + backends.push_back(std::make_unique()); #else backends.push_back(std::make_unique()); #endif diff --git a/Source/Core/VideoCommon/VideoCommon.h b/Source/Core/VideoCommon/VideoCommon.h index 390224eda4..3b6540c822 100644 --- a/Source/Core/VideoCommon/VideoCommon.h +++ b/Source/Core/VideoCommon/VideoCommon.h @@ -39,6 +39,7 @@ enum class APIType OpenGL, D3D, Vulkan, + Metal, Nothing }; From a5ef9dfd5316f8db28f9da16710eeeed9ab1e19e Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sat, 11 Jun 2022 18:39:24 -0500 Subject: [PATCH 425/659] VideoBackends:Metal: Use DriverDetails for bugs --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 23 ++++++++++++++++++---- Source/Core/VideoCommon/DriverDetails.cpp | 10 ++++++++++ Source/Core/VideoCommon/DriverDetails.h | 4 +++- Source/Core/VideoCommon/PixelShaderGen.cpp | 2 +- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index b851a3d256..b20242e82a 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -10,6 +10,7 @@ #include "Common/MsgHandler.h" +#include "VideoCommon/DriverDetails.h" #include "VideoCommon/Spirv.h" Metal::DeviceFeatures Metal::g_features; @@ -81,6 +82,21 @@ void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config, void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id device) { + // Initialize DriverDetails first so we can use it later + DriverDetails::Vendor vendor = DriverDetails::VENDOR_UNKNOWN; + if ([[device name] containsString:@"NVIDIA"]) + vendor = DriverDetails::VENDOR_NVIDIA; + else if ([[device name] containsString:@"AMD"]) + vendor = DriverDetails::VENDOR_ATI; + else if ([[device name] containsString:@"Intel"]) + vendor = DriverDetails::VENDOR_INTEL; + else if ([[device name] containsString:@"Apple"]) + vendor = DriverDetails::VENDOR_APPLE; + const NSOperatingSystemVersion cocoa_ver = [[NSProcessInfo processInfo] operatingSystemVersion]; + double version = cocoa_ver.majorVersion * 100 + cocoa_ver.minorVersion; + DriverDetails::Init(DriverDetails::API_METAL, vendor, DriverDetails::DRIVER_APPLE, version, + DriverDetails::Family::UNKNOWN); + #if TARGET_OS_OSX config->backend_info.bSupportsDepthClamp = true; config->backend_info.bSupportsST3CTextures = true; @@ -117,11 +133,10 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id [device supportsFamily:MTLGPUFamilyMac2] || [device supportsFamily:MTLGPUFamilyApple6]; config->backend_info.bSupportsFramebufferFetch = [device supportsFamily:MTLGPUFamilyApple1]; } - if ([[device name] containsString:@"AMD"]) - { - // Broken + if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_SUBGROUP_INVOCATION_ID)) g_features.subgroup_ops = false; - } + if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING)) + config->backend_info.bSupportsDynamicSamplerIndexing = false; } // clang-format off diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index d4d828e12e..f255460d74 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -98,6 +98,8 @@ constexpr BugInfo m_known_bugs[] = { BUG_BROKEN_DUAL_SOURCE_BLENDING, -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_DUAL_SOURCE_BLENDING, -1.0, -1.0, true}, + {API_METAL, OS_OSX, VENDOR_INTEL, DRIVER_APPLE, Family::UNKNOWN, + BUG_BROKEN_DUAL_SOURCE_BLENDING, -1.0, -1.0, true}, {API_OPENGL, OS_ALL, VENDOR_IMGTEC, DRIVER_IMGTEC, Family::UNKNOWN, BUG_BROKEN_BITWISE_OP_NEGATION, -1.0, 108.4693462, true}, {API_VULKAN, OS_WINDOWS, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN, BUG_PRIMITIVE_RESTART, -1.0, @@ -120,6 +122,8 @@ constexpr BugInfo m_known_bugs[] = { BUG_BROKEN_REVERSED_DEPTH_RANGE, -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_ALL, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_REVERSED_DEPTH_RANGE, -1.0, -1.0, true}, + {API_METAL, OS_OSX, VENDOR_ALL, DRIVER_APPLE, Family::UNKNOWN, BUG_BROKEN_REVERSED_DEPTH_RANGE, + -1.0, -1.0, true}, {API_VULKAN, OS_ALL, VENDOR_ARM, DRIVER_ARM, Family::UNKNOWN, BUG_SLOW_CACHED_READBACK_MEMORY, -1.0, -1.0, true}, {API_VULKAN, OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, Family::UNKNOWN, @@ -130,6 +134,8 @@ constexpr BugInfo m_known_bugs[] = { -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_ATI, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_SUBGROUP_INVOCATION_ID, -1.0, -1.0, true}, + {API_METAL, OS_OSX, VENDOR_ATI, DRIVER_APPLE, Family::UNKNOWN, + BUG_BROKEN_SUBGROUP_INVOCATION_ID, -1.0, -1.0, true}, {API_OPENGL, OS_ANDROID, VENDOR_ALL, DRIVER_ALL, Family::UNKNOWN, BUG_BROKEN_MULTITHREADED_SHADER_PRECOMPILATION, -1.0, -1.0, true}, {API_VULKAN, OS_ANDROID, VENDOR_ALL, DRIVER_ALL, Family::UNKNOWN, @@ -140,8 +146,12 @@ constexpr BugInfo m_known_bugs[] = { -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_APPLE, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_DISCARD_WITH_EARLY_Z, -1.0, -1.0, true}, + {API_METAL, OS_OSX, VENDOR_APPLE, DRIVER_APPLE, Family::UNKNOWN, + BUG_BROKEN_DISCARD_WITH_EARLY_Z, -1.0, -1.0, true}, {API_VULKAN, OS_OSX, VENDOR_INTEL, DRIVER_PORTABILITY, Family::UNKNOWN, BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, -1.0, -1.0, true}, + {API_METAL, OS_OSX, VENDOR_INTEL, DRIVER_APPLE, Family::UNKNOWN, + BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING, -1.0, -1.0, true}, }; static std::map m_bugs; diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 646fa00f74..b7a7a5689f 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -13,7 +13,8 @@ namespace DriverDetails enum API { API_OPENGL = (1 << 0), - API_VULKAN = (1 << 1) + API_VULKAN = (1 << 1), + API_METAL = (1 << 2), }; // Enum of supported operating systems @@ -64,6 +65,7 @@ enum Driver DRIVER_IMGTEC, // Official PowerVR driver DRIVER_VIVANTE, // Official Vivante driver DRIVER_PORTABILITY, // Vulkan via Metal on macOS + DRIVER_APPLE, // Metal on macOS DRIVER_UNKNOWN // Unknown driver, default to official hardware driver }; diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index bf46764c0e..79d2bd1d52 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -810,7 +810,7 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos #ifdef __APPLE__ // Framebuffer fetch is only supported by Metal, so ensure that we're running Vulkan (MoltenVK) // if we want to use it. - if (api_type == APIType::Vulkan) + if (api_type == APIType::Vulkan || api_type == APIType::Metal) { if (!uid_data->no_dual_src) { From 61705b05da4b18cca54b54319cd5463e3cf945f5 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 12 Jun 2022 00:20:00 -0500 Subject: [PATCH 426/659] VideoBackends:Metal: FBFetch for Intel GPUs --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index b20242e82a..edb250e43f 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -80,6 +80,89 @@ void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config, } } +static bool DetectIntelGPUFBFetch(id dev) +{ + // Even though it's nowhere in the feature set tables, some Intel GPUs support fbfetch! + // Annoyingly, the Haswell compiler successfully makes a pipeline but actually miscompiles it and + // doesn't insert any fbfetch instructions. + // The Broadwell compiler inserts the Skylake fbfetch instruction, + // but Broadwell doesn't support that. It seems to make the shader not do anything. + // So we actually have to test the thing + + static constexpr const char* shader = R"( +vertex float4 fs_triangle(uint vid [[vertex_id]]) { + return float4(vid & 1 ? 3 : -1, vid & 2 ? 3 : -1, 0, 1); +} +fragment float4 fbfetch_test(float4 in [[color(0), raster_order_group(0)]]) { + return in * 2; +} +)"; + auto lib = MRCTransfer([dev newLibraryWithSource:[NSString stringWithUTF8String:shader] + options:nil + error:nil]); + if (!lib) + return false; + auto pdesc = MRCTransfer([MTLRenderPipelineDescriptor new]); + [pdesc setVertexFunction:MRCTransfer([lib newFunctionWithName:@"fs_triangle"])]; + [pdesc setFragmentFunction:MRCTransfer([lib newFunctionWithName:@"fbfetch_test"])]; + [[pdesc colorAttachments][0] setPixelFormat:MTLPixelFormatRGBA8Unorm]; + auto pipe = MRCTransfer([dev newRenderPipelineStateWithDescriptor:pdesc error:nil]); + if (!pipe) + return false; + auto buf = MRCTransfer([dev newBufferWithLength:4 options:MTLResourceStorageModeShared]); + auto tdesc = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatRGBA8Unorm + width:1 + height:1 + mipmapped:false]; + [tdesc setUsage:MTLTextureUsageRenderTarget]; + auto tex = MRCTransfer([dev newTextureWithDescriptor:tdesc]); + auto q = MRCTransfer([dev newCommandQueue]); + u32 px = 0x11223344; + memcpy([buf contents], &px, 4); + id cmdbuf = [q commandBuffer]; + id upload_encoder = [cmdbuf blitCommandEncoder]; + [upload_encoder copyFromBuffer:buf + sourceOffset:0 + sourceBytesPerRow:4 + sourceBytesPerImage:4 + sourceSize:MTLSizeMake(1, 1, 1) + toTexture:tex + destinationSlice:0 + destinationLevel:0 + destinationOrigin:MTLOriginMake(0, 0, 0)]; + [upload_encoder endEncoding]; + auto rpdesc = MRCTransfer([MTLRenderPassDescriptor new]); + [[rpdesc colorAttachments][0] setTexture:tex]; + [[rpdesc colorAttachments][0] setLoadAction:MTLLoadActionLoad]; + [[rpdesc colorAttachments][0] setStoreAction:MTLStoreActionStore]; + id renc = [cmdbuf renderCommandEncoderWithDescriptor:rpdesc]; + [renc setRenderPipelineState:pipe]; + [renc drawPrimitives:MTLPrimitiveTypeTriangle vertexStart:0 vertexCount:3]; + [renc endEncoding]; + id download_encoder = [cmdbuf blitCommandEncoder]; + [download_encoder copyFromTexture:tex + sourceSlice:0 + sourceLevel:0 + sourceOrigin:MTLOriginMake(0, 0, 0) + sourceSize:MTLSizeMake(1, 1, 1) + toBuffer:buf + destinationOffset:0 + destinationBytesPerRow:4 + destinationBytesPerImage:4]; + [download_encoder endEncoding]; + [cmdbuf commit]; + [cmdbuf waitUntilCompleted]; + u32 outpx; + memcpy(&outpx, [buf contents], 4); + // Proper fbfetch will double contents, Haswell will return black, and Broadwell will do nothing + if (outpx == 0x22446688) + return true; // Skylake+ + else if (outpx == 0x11223344) + return false; // Broadwell + else + return false; // Haswell +} + void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id device) { // Initialize DriverDetails first so we can use it later @@ -135,6 +218,11 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id } if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_SUBGROUP_INVOCATION_ID)) g_features.subgroup_ops = false; +#if TARGET_OS_OSX + if (@available(macOS 11, *)) + if (vendor == DriverDetails::VENDOR_INTEL) + config->backend_info.bSupportsFramebufferFetch |= DetectIntelGPUFBFetch(device); +#endif if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DYNAMIC_SAMPLER_INDEXING)) config->backend_info.bSupportsDynamicSamplerIndexing = false; } From e32213d031f30e82d2d19ce26ef3a0262c061bd8 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 13 Jun 2022 00:56:25 -0500 Subject: [PATCH 427/659] VideoBackends:Metal: Create samplers on demand --- Source/Core/VideoBackends/Metal/MTLObjectCache.h | 8 +++++++- Source/Core/VideoBackends/Metal/MTLObjectCache.mm | 15 ++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.h b/Source/Core/VideoBackends/Metal/MTLObjectCache.h index d8a10d2d51..2f2bcd48dc 100644 --- a/Source/Core/VideoBackends/Metal/MTLObjectCache.h +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.h @@ -76,13 +76,19 @@ public: id GetDepthStencil(DepthStencilSelector sel) { return m_dss[sel.value]; } - id GetSampler(SamplerSelector sel) { return m_samplers[sel.value]; } + id GetSampler(SamplerSelector sel) + { + if (__builtin_expect(!m_samplers[sel.value], false)) + m_samplers[sel.value] = CreateSampler(sel); + return m_samplers[sel.value]; + } id GetSampler(SamplerState state) { return GetSampler(SamplerSelector(state)); } void ReloadSamplers(); private: + MRCOwned> CreateSampler(SamplerSelector sel); MRCOwned> m_dss[DepthStencilSelector::N_VALUES]; MRCOwned> m_samplers[SamplerSelector::N_VALUES]; }; diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm index 22809f5937..afee912016 100644 --- a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm @@ -11,12 +11,10 @@ std::unique_ptr Metal::g_object_cache; static void SetupDepthStencil( MRCOwned> (&dss)[Metal::DepthStencilSelector::N_VALUES]); -static void SetupSamplers(MRCOwned> (&samplers)[Metal::SamplerSelector::N_VALUES]); Metal::ObjectCache::ObjectCache() { SetupDepthStencil(m_dss); - SetupSamplers(m_samplers); } Metal::ObjectCache::~ObjectCache() @@ -147,13 +145,11 @@ static const char* to_string(WrapMode wrap) // clang-format on -static void SetupSamplers(MRCOwned> (&samplers)[Metal::SamplerSelector::N_VALUES]) +MRCOwned> Metal::ObjectCache::CreateSampler(SamplerSelector sel) { - auto desc = MRCTransfer([MTLSamplerDescriptor new]); - Metal::SamplerSelector sel; - for (size_t i = 0; i < std::size(samplers); i++) + @autoreleasepool { - sel.value = i; + auto desc = MRCTransfer([MTLSamplerDescriptor new]); [desc setMinFilter:ConvertMinMag(sel.MinFilter())]; [desc setMagFilter:ConvertMinMag(sel.MagFilter())]; [desc setMipFilter:ConvertMip(sel.MipFilter())]; @@ -165,11 +161,12 @@ static void SetupSamplers(MRCOwned> (&samplers)[Metal::Sampl to_string(sel.MagFilter()), to_string(sel.MipFilter()), to_string(sel.WrapU()), to_string(sel.WrapV()), sel.AnisotropicFiltering() ? "(AF)" : ""])]; - samplers[i] = MRCTransfer([Metal::g_device newSamplerStateWithDescriptor:desc]); + return MRCTransfer([Metal::g_device newSamplerStateWithDescriptor:desc]); } } void Metal::ObjectCache::ReloadSamplers() { - SetupSamplers(m_samplers); + for (auto& sampler : m_samplers) + sampler = nullptr; } From 5742ccf8dedd382b17138cf0a40fa1102c66283c Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 13 Jun 2022 02:24:33 -0500 Subject: [PATCH 428/659] VideoBackends:Metal: Cache pipelines Metal pipelines hold less stuff than Dolphin pipelines, so duplicates will appear --- .../Core/VideoBackends/Metal/CMakeLists.txt | 3 + .../Core/VideoBackends/Metal/MTLObjectCache.h | 9 + .../VideoBackends/Metal/MTLObjectCache.mm | 326 ++++++++++++++++++ Source/Core/VideoBackends/Metal/MTLPipeline.h | 31 +- .../Core/VideoBackends/Metal/MTLPipeline.mm | 12 +- Source/Core/VideoBackends/Metal/MTLRenderer.h | 1 - .../Core/VideoBackends/Metal/MTLRenderer.mm | 211 +----------- Source/Core/VideoBackends/Metal/MTLShader.h | 8 +- Source/Core/VideoBackends/Metal/MTLShader.mm | 19 + .../VideoBackends/Metal/MTLVertexFormat.h | 23 ++ .../VideoBackends/Metal/MTLVertexFormat.mm | 143 ++++++++ 11 files changed, 555 insertions(+), 231 deletions(-) create mode 100644 Source/Core/VideoBackends/Metal/MTLShader.mm create mode 100644 Source/Core/VideoBackends/Metal/MTLVertexFormat.h create mode 100644 Source/Core/VideoBackends/Metal/MTLVertexFormat.mm diff --git a/Source/Core/VideoBackends/Metal/CMakeLists.txt b/Source/Core/VideoBackends/Metal/CMakeLists.txt index a3becc1d2e..744cb2f755 100644 --- a/Source/Core/VideoBackends/Metal/CMakeLists.txt +++ b/Source/Core/VideoBackends/Metal/CMakeLists.txt @@ -11,6 +11,7 @@ add_library(videometal MTLPipeline.h MTLRenderer.mm MTLRenderer.h + MTLShader.mm MTLShader.h MTLStateTracker.mm MTLStateTracker.h @@ -18,6 +19,8 @@ add_library(videometal MTLTexture.h MTLUtil.mm MTLUtil.h + MTLVertexFormat.mm + MTLVertexFormat.h MTLVertexManager.mm MTLVertexManager.h VideoBackend.h diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.h b/Source/Core/VideoBackends/Metal/MTLObjectCache.h index 2f2bcd48dc..86668e614d 100644 --- a/Source/Core/VideoBackends/Metal/MTLObjectCache.h +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.h @@ -10,8 +10,12 @@ #include "VideoCommon/RenderState.h" +struct AbstractPipelineConfig; +class AbstractPipeline; + namespace Metal { +class Shader; extern MRCOwned> g_device; extern MRCOwned> g_queue; @@ -87,7 +91,12 @@ public: void ReloadSamplers(); + std::unique_ptr CreatePipeline(const AbstractPipelineConfig& config); + void ShaderDestroyed(const Shader* shader); + private: + class Internal; + std::unique_ptr m_internal; MRCOwned> CreateSampler(SamplerSelector sel); MRCOwned> m_dss[DepthStencilSelector::N_VALUES]; MRCOwned> m_samplers[SamplerSelector::N_VALUES]; diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm index afee912016..e9b836ce1c 100644 --- a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm @@ -3,6 +3,20 @@ #include "VideoBackends/Metal/MTLObjectCache.h" +#include +#include +#include + +#include "Common/Assert.h" +#include "Common/MsgHandler.h" + +#include "VideoBackends/Metal/MTLPipeline.h" +#include "VideoBackends/Metal/MTLUtil.h" +#include "VideoBackends/Metal/MTLVertexFormat.h" + +#include "VideoCommon/AbstractPipeline.h" +#include "VideoCommon/NativeVertexFormat.h" +#include "VideoCommon/VertexShaderGen.h" #include "VideoCommon/VideoConfig.h" MRCOwned> Metal::g_device; @@ -14,6 +28,7 @@ static void SetupDepthStencil( Metal::ObjectCache::ObjectCache() { + m_internal = std::make_unique(); SetupDepthStencil(m_dss); } @@ -170,3 +185,314 @@ void Metal::ObjectCache::ReloadSamplers() for (auto& sampler : m_samplers) sampler = nullptr; } + +// MARK: Pipelines + +static MTLPrimitiveTopologyClass GetClass(PrimitiveType prim) +{ + switch (prim) + { + case PrimitiveType::Points: + return MTLPrimitiveTopologyClassPoint; + case PrimitiveType::Lines: + return MTLPrimitiveTopologyClassLine; + case PrimitiveType::Triangles: + case PrimitiveType::TriangleStrip: + return MTLPrimitiveTopologyClassTriangle; + } +} + +static MTLPrimitiveType Convert(PrimitiveType prim) +{ + // clang-format off + switch (prim) + { + case PrimitiveType::Points: return MTLPrimitiveTypePoint; + case PrimitiveType::Lines: return MTLPrimitiveTypeLine; + case PrimitiveType::Triangles: return MTLPrimitiveTypeTriangle; + case PrimitiveType::TriangleStrip: return MTLPrimitiveTypeTriangleStrip; + } + // clang-format on +} + +static MTLCullMode Convert(CullMode cull) +{ + switch (cull) + { + case CullMode::None: + case CullMode::All: // Handled by disabling rasterization + return MTLCullModeNone; + case CullMode::Front: + return MTLCullModeFront; + case CullMode::Back: + return MTLCullModeBack; + } +} + +static MTLBlendFactor Convert(DstBlendFactor factor, bool usedualsrc) +{ + // clang-format off + switch (factor) + { + case DstBlendFactor::Zero: return MTLBlendFactorZero; + case DstBlendFactor::One: return MTLBlendFactorOne; + case DstBlendFactor::SrcClr: return MTLBlendFactorSourceColor; + case DstBlendFactor::InvSrcClr: return MTLBlendFactorOneMinusSourceColor; + case DstBlendFactor::SrcAlpha: return usedualsrc ? MTLBlendFactorSource1Alpha + : MTLBlendFactorSourceAlpha; + case DstBlendFactor::InvSrcAlpha: return usedualsrc ? MTLBlendFactorOneMinusSource1Alpha + : MTLBlendFactorOneMinusSourceAlpha; + case DstBlendFactor::DstAlpha: return MTLBlendFactorDestinationAlpha; + case DstBlendFactor::InvDstAlpha: return MTLBlendFactorOneMinusDestinationAlpha; + } + // clang-format on +} + +static MTLBlendFactor Convert(SrcBlendFactor factor, bool usedualsrc) +{ + // clang-format off + switch (factor) + { + case SrcBlendFactor::Zero: return MTLBlendFactorZero; + case SrcBlendFactor::One: return MTLBlendFactorOne; + case SrcBlendFactor::DstClr: return MTLBlendFactorDestinationColor; + case SrcBlendFactor::InvDstClr: return MTLBlendFactorOneMinusDestinationColor; + case SrcBlendFactor::SrcAlpha: return usedualsrc ? MTLBlendFactorSource1Alpha + : MTLBlendFactorSourceAlpha; + case SrcBlendFactor::InvSrcAlpha: return usedualsrc ? MTLBlendFactorOneMinusSource1Alpha + : MTLBlendFactorOneMinusSourceAlpha; + case SrcBlendFactor::DstAlpha: return MTLBlendFactorDestinationAlpha; + case SrcBlendFactor::InvDstAlpha: return MTLBlendFactorOneMinusDestinationAlpha; + } + // clang-format on +} + +class Metal::ObjectCache::Internal +{ +public: + using StoredPipeline = std::pair>, PipelineReflection>; + /// Holds only the things that are actually used in a Metal pipeline + struct PipelineID + { + struct VertexAttribute + { + // Just hold the things that might differ while using the same shader + // (Really only a thing for ubershaders) + u8 offset : 6; + u8 components : 2; + VertexAttribute() = default; + explicit VertexAttribute(AttributeFormat format) + : offset(format.offset), components(format.components - 1) + { + if (!format.enable) + offset = 0x3F; // Set it to something unlikely + } + }; + template + static void CopyAll(std::array& output, const AttributeFormat (&input)[N]) + { + for (size_t i = 0; i < N; ++i) + output[i] = VertexAttribute(input[i]); + } + PipelineID(const AbstractPipelineConfig& cfg) + { + memset(this, 0, sizeof(*this)); + if (const NativeVertexFormat* v = cfg.vertex_format) + { + const PortableVertexDeclaration& decl = v->GetVertexDeclaration(); + v_stride = v->GetVertexStride(); + v_position = VertexAttribute(decl.position); + CopyAll(v_normals, decl.normals); + CopyAll(v_colors, decl.colors); + CopyAll(v_texcoords, decl.texcoords); + v_posmtx = VertexAttribute(decl.posmtx); + } + vertex_shader = static_cast(cfg.vertex_shader); + fragment_shader = static_cast(cfg.pixel_shader); + framebuffer.color_texture_format = cfg.framebuffer_state.color_texture_format.Value(); + framebuffer.depth_texture_format = cfg.framebuffer_state.depth_texture_format.Value(); + blend.colorupdate = cfg.blending_state.colorupdate.Value(); + blend.alphaupdate = cfg.blending_state.alphaupdate.Value(); + if (cfg.blending_state.blendenable) + { + // clang-format off + blend.blendenable = true; + blend.usedualsrc = cfg.blending_state.usedualsrc.Value(); + blend.srcfactor = cfg.blending_state.srcfactor.Value(); + blend.dstfactor = cfg.blending_state.dstfactor.Value(); + blend.srcfactoralpha = cfg.blending_state.srcfactoralpha.Value(); + blend.dstfactoralpha = cfg.blending_state.dstfactoralpha.Value(); + blend.subtract = cfg.blending_state.subtract.Value(); + blend.subtractAlpha = cfg.blending_state.subtractAlpha.Value(); + // clang-format on + } + // Throw extras in bits we don't otherwise use + if (cfg.rasterization_state.cullmode == CullMode::All) + blend.hex |= 1 << 29; + if (cfg.rasterization_state.primitive == PrimitiveType::Points) + blend.hex |= 1 << 30; + else if (cfg.rasterization_state.primitive == PrimitiveType::Lines) + blend.hex |= 1 << 31; + } + PipelineID() { memset(this, 0, sizeof(*this)); } + PipelineID(const PipelineID& other) { memcpy(this, &other, sizeof(*this)); } + PipelineID& operator=(const PipelineID& other) + { + memcpy(this, &other, sizeof(*this)); + return *this; + } + bool operator<(const PipelineID& other) const + { + return memcmp(this, &other, sizeof(*this)) < 0; + } + bool operator==(const PipelineID& other) const + { + return memcmp(this, &other, sizeof(*this)) == 0; + } + + u8 v_stride; + VertexAttribute v_position; + std::array v_normals; + std::array v_colors; + std::array v_texcoords; + VertexAttribute v_posmtx; + const Shader* vertex_shader; + const Shader* fragment_shader; + BlendingState blend; + FramebufferState framebuffer; + }; + + std::mutex m_mtx; + std::condition_variable m_cv; + std::map m_pipelines; + std::map> m_shaders; + std::array m_pipeline_counter; + + StoredPipeline CreatePipeline(const AbstractPipelineConfig& config) + { + @autoreleasepool + { + ASSERT(!config.geometry_shader); + auto desc = MRCTransfer([MTLRenderPipelineDescriptor new]); + [desc setVertexFunction:static_cast(config.vertex_shader)->GetShader()]; + [desc setFragmentFunction:static_cast(config.pixel_shader)->GetShader()]; + if (config.usage == AbstractPipelineUsage::GX) + { + if ([[[desc vertexFunction] label] containsString:@"Uber"]) + [desc + setLabel:[NSString stringWithFormat:@"GX Uber Pipeline %d", m_pipeline_counter[0]++]]; + else + [desc setLabel:[NSString stringWithFormat:@"GX Pipeline %d", m_pipeline_counter[1]++]]; + } + else + { + [desc setLabel:[NSString stringWithFormat:@"Utility Pipeline %d", m_pipeline_counter[2]++]]; + } + if (config.vertex_format) + [desc setVertexDescriptor:static_cast(config.vertex_format)->Get()]; + RasterizationState rs = config.rasterization_state; + [desc setInputPrimitiveTopology:GetClass(rs.primitive)]; + if (rs.cullmode == CullMode::All) + [desc setRasterizationEnabled:NO]; + MTLRenderPipelineColorAttachmentDescriptor* color0 = + [[desc colorAttachments] objectAtIndexedSubscript:0]; + BlendingState bs = config.blending_state; + MTLColorWriteMask mask = MTLColorWriteMaskNone; + if (bs.colorupdate) + mask |= MTLColorWriteMaskRed | MTLColorWriteMaskGreen | MTLColorWriteMaskBlue; + if (bs.alphaupdate) + mask |= MTLColorWriteMaskAlpha; + [color0 setWriteMask:mask]; + if (bs.blendenable) + { + // clang-format off + [color0 setBlendingEnabled:YES]; + [color0 setSourceRGBBlendFactor: Convert(bs.srcfactor, bs.usedualsrc)]; + [color0 setSourceAlphaBlendFactor: Convert(bs.srcfactoralpha, bs.usedualsrc)]; + [color0 setDestinationRGBBlendFactor: Convert(bs.dstfactor, bs.usedualsrc)]; + [color0 setDestinationAlphaBlendFactor:Convert(bs.dstfactoralpha, bs.usedualsrc)]; + [color0 setRgbBlendOperation: bs.subtract ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; + [color0 setAlphaBlendOperation:bs.subtractAlpha ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; + // clang-format on + } + FramebufferState fs = config.framebuffer_state; + [color0 setPixelFormat:Util::FromAbstract(fs.color_texture_format)]; + [desc setDepthAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; + if (Util::HasStencil(fs.depth_texture_format)) + [desc setStencilAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; + NSError* err = nullptr; + MTLRenderPipelineReflection* reflection = nullptr; + id pipe = + [g_device newRenderPipelineStateWithDescriptor:desc + options:MTLPipelineOptionArgumentInfo + reflection:&reflection + error:&err]; + if (err) + { + PanicAlertFmt("Failed to compile pipeline for {} and {}: {}", + [[[desc vertexFunction] label] UTF8String], + [[[desc fragmentFunction] label] UTF8String], + [[err localizedDescription] UTF8String]); + return std::make_pair(nullptr, PipelineReflection()); + } + + return std::make_pair(MRCTransfer(pipe), PipelineReflection(reflection)); + } + } + + StoredPipeline GetOrCreatePipeline(const AbstractPipelineConfig& config) + { + std::unique_lock lock(m_mtx); + PipelineID pid(config); + auto it = m_pipelines.find(pid); + if (it != m_pipelines.end()) + { + while (!it->second.first && !it->second.second.textures) + m_cv.wait(lock); // Wait for whoever's already compiling this + return it->second; + } + // Reserve the spot now, so other threads know we're making it + it = m_pipelines.insert({pid, {nullptr, PipelineReflection()}}).first; + lock.unlock(); + StoredPipeline pipe = CreatePipeline(config); + lock.lock(); + if (pipe.first) + it->second = pipe; + else + it->second.second.textures = 1; // Abuse this as a "failed to create pipeline" flag + m_shaders[pid.vertex_shader].push_back(pid); + m_shaders[pid.fragment_shader].push_back(pid); + lock.unlock(); + m_cv.notify_all(); // Wake up anyone who might be waiting + return pipe; + } + + void ShaderDestroyed(const Shader* shader) + { + std::lock_guard lock(m_mtx); + auto it = m_shaders.find(shader); + if (it == m_shaders.end()) + return; + // It's unlikely, but if a shader is destroyed, a new one could be made with the same address + // (Also, we know it won't be used anymore, so there's no reason to keep these around) + for (const PipelineID& pid : it->second) + m_pipelines.erase(pid); + m_shaders.erase(it); + } +}; + +std::unique_ptr +Metal::ObjectCache::CreatePipeline(const AbstractPipelineConfig& config) +{ + Internal::StoredPipeline pipeline = m_internal->GetOrCreatePipeline(config); + if (!pipeline.first) + return nullptr; + return std::make_unique( + std::move(pipeline.first), pipeline.second, Convert(config.rasterization_state.primitive), + Convert(config.rasterization_state.cullmode), config.depth_state, config.usage); +} + +void Metal::ObjectCache::ShaderDestroyed(const Shader* shader) +{ + m_internal->ShaderDestroyed(shader); +} diff --git a/Source/Core/VideoBackends/Metal/MTLPipeline.h b/Source/Core/VideoBackends/Metal/MTLPipeline.h index d5a642aedd..aa4fadbdbf 100644 --- a/Source/Core/VideoBackends/Metal/MTLPipeline.h +++ b/Source/Core/VideoBackends/Metal/MTLPipeline.h @@ -14,24 +14,34 @@ namespace Metal { +struct PipelineReflection +{ + u32 textures = 0; + u32 samplers = 0; + u32 vertex_buffers = 0; + u32 fragment_buffers = 0; + PipelineReflection() = default; + explicit PipelineReflection(MTLRenderPipelineReflection* reflection); +}; + class Pipeline final : public AbstractPipeline { public: explicit Pipeline(MRCOwned> pipeline, - MTLRenderPipelineReflection* reflection, MTLPrimitiveType prim, - MTLCullMode cull, DepthState depth, AbstractPipelineUsage usage); + const PipelineReflection& reflection, MTLPrimitiveType prim, MTLCullMode cull, + DepthState depth, AbstractPipelineUsage usage); id Get() const { return m_pipeline; } MTLPrimitiveType Prim() const { return m_prim; } MTLCullMode Cull() const { return m_cull; } DepthStencilSelector DepthStencil() const { return m_depth_stencil; } AbstractPipelineUsage Usage() const { return m_usage; } - u32 GetTextures() const { return m_textures; } - u32 GetSamplers() const { return m_samplers; } - u32 GetVertexBuffers() const { return m_vertex_buffers; } - u32 GetFragmentBuffers() const { return m_fragment_buffers; } - bool UsesVertexBuffer(u32 index) const { return m_vertex_buffers & (1 << index); } - bool UsesFragmentBuffer(u32 index) const { return m_fragment_buffers & (1 << index); } + u32 GetTextures() const { return m_reflection.textures; } + u32 GetSamplers() const { return m_reflection.samplers; } + u32 GetVertexBuffers() const { return m_reflection.vertex_buffers; } + u32 GetFragmentBuffers() const { return m_reflection.fragment_buffers; } + bool UsesVertexBuffer(u32 index) const { return m_reflection.vertex_buffers & (1 << index); } + bool UsesFragmentBuffer(u32 index) const { return m_reflection.fragment_buffers & (1 << index); } private: MRCOwned> m_pipeline; @@ -39,10 +49,7 @@ private: MTLCullMode m_cull; DepthStencilSelector m_depth_stencil; AbstractPipelineUsage m_usage; - u32 m_textures = 0; - u32 m_samplers = 0; - u32 m_vertex_buffers = 0; - u32 m_fragment_buffers = 0; + PipelineReflection m_reflection; }; class ComputePipeline : public Shader diff --git a/Source/Core/VideoBackends/Metal/MTLPipeline.mm b/Source/Core/VideoBackends/Metal/MTLPipeline.mm index 405ea76973..5afaa477a1 100644 --- a/Source/Core/VideoBackends/Metal/MTLPipeline.mm +++ b/Source/Core/VideoBackends/Metal/MTLPipeline.mm @@ -47,14 +47,18 @@ static void GetArguments(NSArray* arguments, u32* textures, u32* s } } +Metal::PipelineReflection::PipelineReflection(MTLRenderPipelineReflection* reflection) +{ + GetArguments([reflection vertexArguments], nullptr, nullptr, &vertex_buffers); + GetArguments([reflection fragmentArguments], &textures, &samplers, &fragment_buffers); +} + Metal::Pipeline::Pipeline(MRCOwned> pipeline, - MTLRenderPipelineReflection* reflection, MTLPrimitiveType prim, + const PipelineReflection& reflection, MTLPrimitiveType prim, MTLCullMode cull, DepthState depth, AbstractPipelineUsage usage) : m_pipeline(std::move(pipeline)), m_prim(prim), m_cull(cull), m_depth_stencil(depth), - m_usage(usage) + m_usage(usage), m_reflection(reflection) { - GetArguments([reflection vertexArguments], nullptr, nullptr, &m_vertex_buffers); - GetArguments([reflection fragmentArguments], &m_textures, &m_samplers, &m_fragment_buffers); } Metal::ComputePipeline::ComputePipeline(ShaderStage stage, MTLComputePipelineReflection* reflection, diff --git a/Source/Core/VideoBackends/Metal/MTLRenderer.h b/Source/Core/VideoBackends/Metal/MTLRenderer.h index 6208e3f57e..f8b97dc0d3 100644 --- a/Source/Core/VideoBackends/Metal/MTLRenderer.h +++ b/Source/Core/VideoBackends/Metal/MTLRenderer.h @@ -82,7 +82,6 @@ private: u32 m_texture_counter = 0; u32 m_staging_texture_counter = 0; std::array m_shader_counter = {}; - u32 m_pipeline_counter = 0; void CheckForSurfaceChange(); void CheckForSurfaceResize(); diff --git a/Source/Core/VideoBackends/Metal/MTLRenderer.mm b/Source/Core/VideoBackends/Metal/MTLRenderer.mm index b552b11722..e8e033c8aa 100644 --- a/Source/Core/VideoBackends/Metal/MTLRenderer.mm +++ b/Source/Core/VideoBackends/Metal/MTLRenderer.mm @@ -9,11 +9,10 @@ #include "VideoBackends/Metal/MTLStateTracker.h" #include "VideoBackends/Metal/MTLTexture.h" #include "VideoBackends/Metal/MTLUtil.h" +#include "VideoBackends/Metal/MTLVertexFormat.h" #include "VideoBackends/Metal/MTLVertexManager.h" #include "VideoCommon/FramebufferManager.h" -#include "VideoCommon/NativeVertexFormat.h" -#include "VideoCommon/VertexShaderGen.h" #include "VideoCommon/VideoBackendBase.h" Metal::Renderer::Renderer(MRCOwned layer, int width, int height, float layer_scale) @@ -110,66 +109,6 @@ Metal::Renderer::CreateFramebuffer(AbstractTexture* color_attachment, // MARK: Pipeline Creation -namespace Metal -{ -class VertexFormat : public NativeVertexFormat -{ -public: - VertexFormat(const PortableVertexDeclaration& vtx_decl) - : NativeVertexFormat(vtx_decl), m_desc(MRCTransfer([MTLVertexDescriptor new])) - { - [[[m_desc layouts] objectAtIndexedSubscript:0] setStride:vtx_decl.stride]; - SetAttribute(SHADER_POSITION_ATTRIB, vtx_decl.position); - SetAttributes(SHADER_NORMAL_ATTRIB, vtx_decl.normals); - SetAttributes(SHADER_COLOR0_ATTRIB, vtx_decl.colors); - SetAttributes(SHADER_TEXTURE0_ATTRIB, vtx_decl.texcoords); - SetAttribute(SHADER_POSMTX_ATTRIB, vtx_decl.posmtx); - } - - MTLVertexDescriptor* Get() const { return m_desc; } - -private: - template - void SetAttributes(u32 attribute, const AttributeFormat (&format)[N]) - { - for (size_t i = 0; i < N; i++) - SetAttribute(attribute + i, format[i]); - } - void SetAttribute(u32 attribute, const AttributeFormat& format) - { - if (!format.enable) - return; - MTLVertexAttributeDescriptor* desc = [[m_desc attributes] objectAtIndexedSubscript:attribute]; - [desc setFormat:ConvertFormat(format.type, format.components, format.integer)]; - [desc setOffset:format.offset]; - [desc setBufferIndex:0]; - } - - static MTLVertexFormat ConvertFormat(ComponentFormat format, int count, bool int_format) - { - static constexpr MTLVertexFormat formats[2][5][4] = { - [false] = { - [static_cast(ComponentFormat::UByte)] = { MTLVertexFormatUCharNormalized, MTLVertexFormatUChar2Normalized, MTLVertexFormatUChar3Normalized, MTLVertexFormatUChar4Normalized }, - [static_cast(ComponentFormat::Byte)] = { MTLVertexFormatCharNormalized, MTLVertexFormatChar2Normalized, MTLVertexFormatChar3Normalized, MTLVertexFormatChar4Normalized }, - [static_cast(ComponentFormat::UShort)] = { MTLVertexFormatUShortNormalized, MTLVertexFormatUShort2Normalized, MTLVertexFormatUShort3Normalized, MTLVertexFormatUShort4Normalized }, - [static_cast(ComponentFormat::Short)] = { MTLVertexFormatShortNormalized, MTLVertexFormatShort2Normalized, MTLVertexFormatShort3Normalized, MTLVertexFormatShort4Normalized }, - [static_cast(ComponentFormat::Float)] = { MTLVertexFormatFloat, MTLVertexFormatFloat2, MTLVertexFormatFloat3, MTLVertexFormatFloat4 }, - }, - [true] = { - [static_cast(ComponentFormat::UByte)] = { MTLVertexFormatUChar, MTLVertexFormatUChar2, MTLVertexFormatUChar3, MTLVertexFormatUChar4 }, - [static_cast(ComponentFormat::Byte)] = { MTLVertexFormatChar, MTLVertexFormatChar2, MTLVertexFormatChar3, MTLVertexFormatChar4 }, - [static_cast(ComponentFormat::UShort)] = { MTLVertexFormatUShort, MTLVertexFormatUShort2, MTLVertexFormatUShort3, MTLVertexFormatUShort4 }, - [static_cast(ComponentFormat::Short)] = { MTLVertexFormatShort, MTLVertexFormatShort2, MTLVertexFormatShort3, MTLVertexFormatShort4 }, - [static_cast(ComponentFormat::Float)] = { MTLVertexFormatFloat, MTLVertexFormatFloat2, MTLVertexFormatFloat3, MTLVertexFormatFloat4 }, - }, - }; - return formats[int_format][static_cast(format)][count - 1]; - } - - MRCOwned m_desc; -}; -} // namespace Metal - std::unique_ptr Metal::Renderer::CreateShaderFromSource(ShaderStage stage, std::string_view source, std::string_view name) @@ -311,157 +250,11 @@ Metal::Renderer::CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_d } } -static MTLPrimitiveTopologyClass GetClass(PrimitiveType prim) -{ - switch (prim) - { - case PrimitiveType::Points: - return MTLPrimitiveTopologyClassPoint; - case PrimitiveType::Lines: - return MTLPrimitiveTopologyClassLine; - case PrimitiveType::Triangles: - case PrimitiveType::TriangleStrip: - return MTLPrimitiveTopologyClassTriangle; - } -} - -static MTLPrimitiveType Convert(PrimitiveType prim) -{ - switch (prim) - { - case PrimitiveType::Points: return MTLPrimitiveTypePoint; - case PrimitiveType::Lines: return MTLPrimitiveTypeLine; - case PrimitiveType::Triangles: return MTLPrimitiveTypeTriangle; - case PrimitiveType::TriangleStrip: return MTLPrimitiveTypeTriangleStrip; - } -} - -static MTLCullMode Convert(CullMode cull) -{ - switch (cull) - { - case CullMode::None: - case CullMode::All: // Handled by disabling rasterization - return MTLCullModeNone; - case CullMode::Front: - return MTLCullModeFront; - case CullMode::Back: - return MTLCullModeBack; - } -} - -static MTLBlendFactor Convert(DstBlendFactor factor, bool src1) -{ - static constexpr MTLBlendFactor factors[2][8] = { - [false] = { - [static_cast(DstBlendFactor::Zero)] = MTLBlendFactorZero, - [static_cast(DstBlendFactor::One)] = MTLBlendFactorOne, - [static_cast(DstBlendFactor::SrcClr)] = MTLBlendFactorSourceColor, - [static_cast(DstBlendFactor::InvSrcClr)] = MTLBlendFactorOneMinusSourceColor, - [static_cast(DstBlendFactor::SrcAlpha)] = MTLBlendFactorSourceAlpha, - [static_cast(DstBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSourceAlpha, - [static_cast(DstBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, - [static_cast(DstBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, - }, - [true] = { - [static_cast(DstBlendFactor::Zero)] = MTLBlendFactorZero, - [static_cast(DstBlendFactor::One)] = MTLBlendFactorOne, - [static_cast(DstBlendFactor::SrcClr)] = MTLBlendFactorSourceColor, - [static_cast(DstBlendFactor::InvSrcClr)] = MTLBlendFactorOneMinusSource1Color, - [static_cast(DstBlendFactor::SrcAlpha)] = MTLBlendFactorSource1Alpha, - [static_cast(DstBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSource1Alpha, - [static_cast(DstBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, - [static_cast(DstBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, - }, - }; - return factors[src1][static_cast(factor)]; -} - -static MTLBlendFactor Convert(SrcBlendFactor factor, bool src1) -{ - static constexpr MTLBlendFactor factors[2][8] = { - [false] = { - [static_cast(SrcBlendFactor::Zero)] = MTLBlendFactorZero, - [static_cast(SrcBlendFactor::One)] = MTLBlendFactorOne, - [static_cast(SrcBlendFactor::DstClr)] = MTLBlendFactorDestinationColor, - [static_cast(SrcBlendFactor::InvDstClr)] = MTLBlendFactorOneMinusDestinationColor, - [static_cast(SrcBlendFactor::SrcAlpha)] = MTLBlendFactorSourceAlpha, - [static_cast(SrcBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSourceAlpha, - [static_cast(SrcBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, - [static_cast(SrcBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, - }, - [true] = { - [static_cast(SrcBlendFactor::Zero)] = MTLBlendFactorZero, - [static_cast(SrcBlendFactor::One)] = MTLBlendFactorOne, - [static_cast(SrcBlendFactor::DstClr)] = MTLBlendFactorDestinationColor, - [static_cast(SrcBlendFactor::InvDstClr)] = MTLBlendFactorOneMinusDestinationColor, - [static_cast(SrcBlendFactor::SrcAlpha)] = MTLBlendFactorSource1Alpha, - [static_cast(SrcBlendFactor::InvSrcAlpha)] = MTLBlendFactorOneMinusSource1Alpha, - [static_cast(SrcBlendFactor::DstAlpha)] = MTLBlendFactorDestinationAlpha, - [static_cast(SrcBlendFactor::InvDstAlpha)] = MTLBlendFactorOneMinusDestinationAlpha, - }, - }; - return factors[src1][static_cast(factor)]; -} - std::unique_ptr Metal::Renderer::CreatePipeline(const AbstractPipelineConfig& config, const void* cache_data, size_t cache_data_length) { - @autoreleasepool - { - assert(!config.geometry_shader); - auto desc = MRCTransfer([MTLRenderPipelineDescriptor new]); - [desc setLabel:[NSString stringWithFormat:@"Pipeline %d", m_pipeline_counter++]]; - [desc setVertexFunction:static_cast(config.vertex_shader)->GetShader()]; - [desc setFragmentFunction:static_cast(config.pixel_shader)->GetShader()]; - if (config.vertex_format) - [desc setVertexDescriptor:static_cast(config.vertex_format)->Get()]; - RasterizationState rs = config.rasterization_state; - [desc setInputPrimitiveTopology:GetClass(rs.primitive)]; - if (rs.cullmode == CullMode::All) - [desc setRasterizationEnabled:NO]; - MTLRenderPipelineColorAttachmentDescriptor* color0 = [desc colorAttachments][0]; - BlendingState bs = config.blending_state; - MTLColorWriteMask mask = MTLColorWriteMaskNone; - if (bs.colorupdate) - mask |= MTLColorWriteMaskRed | MTLColorWriteMaskGreen | MTLColorWriteMaskBlue; - if (bs.alphaupdate) - mask |= MTLColorWriteMaskAlpha; - [color0 setWriteMask:mask]; - if (bs.blendenable) - { - [color0 setBlendingEnabled:YES]; - [color0 setSourceRGBBlendFactor: Convert(bs.srcfactor, bs.usedualsrc)]; - [color0 setSourceAlphaBlendFactor: Convert(bs.srcfactoralpha, bs.usedualsrc)]; - [color0 setDestinationRGBBlendFactor: Convert(bs.dstfactor, bs.usedualsrc)]; - [color0 setDestinationAlphaBlendFactor:Convert(bs.dstfactoralpha, bs.usedualsrc)]; - [color0 setRgbBlendOperation: bs.subtract ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; - [color0 setAlphaBlendOperation:bs.subtractAlpha ? MTLBlendOperationReverseSubtract : MTLBlendOperationAdd]; - } - FramebufferState fs = config.framebuffer_state; - [color0 setPixelFormat:Util::FromAbstract(fs.color_texture_format)]; - [desc setDepthAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; - if (Util::HasStencil(fs.depth_texture_format)) - [desc setStencilAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; - NSError* err = nullptr; - MTLRenderPipelineReflection* reflection = nullptr; - id pipe = - [g_device newRenderPipelineStateWithDescriptor:desc - options:MTLPipelineOptionArgumentInfo - reflection:&reflection - error:&err]; - if (err) - { - PanicAlertFmt("Failed to compile pipeline for {} and {}: {}", - [[[desc vertexFunction] label] UTF8String], - [[[desc fragmentFunction] label] UTF8String], - [[err localizedDescription] UTF8String]); - return nullptr; - } - return std::make_unique(MRCTransfer(pipe), reflection, Convert(rs.primitive), - Convert(rs.cullmode), config.depth_state, config.usage); - } + return g_object_cache->CreatePipeline(config); } void Metal::Renderer::Flush() diff --git a/Source/Core/VideoBackends/Metal/MTLShader.h b/Source/Core/VideoBackends/Metal/MTLShader.h index 053d84c2b9..018346bb6d 100644 --- a/Source/Core/VideoBackends/Metal/MTLShader.h +++ b/Source/Core/VideoBackends/Metal/MTLShader.h @@ -15,13 +15,11 @@ namespace Metal class Shader : public AbstractShader { public: - explicit Shader(ShaderStage stage, std::string msl, MRCOwned> shader) - : AbstractShader(stage), m_msl(std::move(msl)), m_shader(std::move(shader)) - { - } + explicit Shader(ShaderStage stage, std::string msl, MRCOwned> shader); + ~Shader(); id GetShader() const { return m_shader; } - BinaryData GetBinary() const override { return BinaryData(m_msl.begin(), m_msl.end()); } + BinaryData GetBinary() const override; private: std::string m_msl; diff --git a/Source/Core/VideoBackends/Metal/MTLShader.mm b/Source/Core/VideoBackends/Metal/MTLShader.mm new file mode 100644 index 0000000000..a1afcb160b --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLShader.mm @@ -0,0 +1,19 @@ + +#include "VideoBackends/Metal/MTLShader.h" + +#include "VideoBackends/Metal/MTLObjectCache.h" + +Metal::Shader::Shader(ShaderStage stage, std::string msl, MRCOwned> shader) + : AbstractShader(stage), m_msl(std::move(msl)), m_shader(std::move(shader)) +{ +} + +Metal::Shader::~Shader() +{ + g_object_cache->ShaderDestroyed(this); +} + +AbstractShader::BinaryData Metal::Shader::GetBinary() const +{ + return BinaryData(m_msl.begin(), m_msl.end()); +} diff --git a/Source/Core/VideoBackends/Metal/MTLVertexFormat.h b/Source/Core/VideoBackends/Metal/MTLVertexFormat.h new file mode 100644 index 0000000000..e4babc057b --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLVertexFormat.h @@ -0,0 +1,23 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include "VideoBackends/Metal/MRCHelpers.h" + +#include "VideoCommon/NativeVertexFormat.h" + +namespace Metal +{ +class VertexFormat : public NativeVertexFormat +{ +public: + VertexFormat(const PortableVertexDeclaration& vtx_decl); + + MTLVertexDescriptor* Get() const { return m_desc; } + + MRCOwned m_desc; +}; +} // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLVertexFormat.mm b/Source/Core/VideoBackends/Metal/MTLVertexFormat.mm new file mode 100644 index 0000000000..6453c5189a --- /dev/null +++ b/Source/Core/VideoBackends/Metal/MTLVertexFormat.mm @@ -0,0 +1,143 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "VideoBackends/Metal/MTLVertexFormat.h" + +#include "VideoCommon/VertexShaderGen.h" + +static MTLVertexFormat ConvertFormat(ComponentFormat format, int count, bool int_format) +{ + // clang-format off + if (int_format) + { + switch (format) + { + case ComponentFormat::UByte: + switch (count) + { + case 1: return MTLVertexFormatUChar; + case 2: return MTLVertexFormatUChar2; + case 3: return MTLVertexFormatUChar3; + case 4: return MTLVertexFormatUChar4; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Byte: + switch (count) + { + case 1: return MTLVertexFormatChar; + case 2: return MTLVertexFormatChar2; + case 3: return MTLVertexFormatChar3; + case 4: return MTLVertexFormatChar4; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::UShort: + switch (count) + { + case 1: return MTLVertexFormatUShort; + case 2: return MTLVertexFormatUShort2; + case 3: return MTLVertexFormatUShort3; + case 4: return MTLVertexFormatUShort4; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Short: + switch (count) + { + case 1: return MTLVertexFormatShort; + case 2: return MTLVertexFormatShort2; + case 3: return MTLVertexFormatShort3; + case 4: return MTLVertexFormatShort4; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Float: + switch (count) + { + case 1: return MTLVertexFormatFloat; + case 2: return MTLVertexFormatFloat2; + case 3: return MTLVertexFormatFloat3; + case 4: return MTLVertexFormatFloat4; + default: return MTLVertexFormatInvalid; + } + } + } + else + { + switch (format) + { + case ComponentFormat::UByte: + switch (count) + { + case 1: return MTLVertexFormatUCharNormalized; + case 2: return MTLVertexFormatUChar2Normalized; + case 3: return MTLVertexFormatUChar3Normalized; + case 4: return MTLVertexFormatUChar4Normalized; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Byte: + switch (count) + { + case 1: return MTLVertexFormatCharNormalized; + case 2: return MTLVertexFormatChar2Normalized; + case 3: return MTLVertexFormatChar3Normalized; + case 4: return MTLVertexFormatChar4Normalized; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::UShort: + switch (count) + { + case 1: return MTLVertexFormatUShortNormalized; + case 2: return MTLVertexFormatUShort2Normalized; + case 3: return MTLVertexFormatUShort3Normalized; + case 4: return MTLVertexFormatUShort4Normalized; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Short: + switch (count) + { + case 1: return MTLVertexFormatShortNormalized; + case 2: return MTLVertexFormatShort2Normalized; + case 3: return MTLVertexFormatShort3Normalized; + case 4: return MTLVertexFormatShort4Normalized; + default: return MTLVertexFormatInvalid; + } + case ComponentFormat::Float: + switch (count) + { + case 1: return MTLVertexFormatFloat; + case 2: return MTLVertexFormatFloat2; + case 3: return MTLVertexFormatFloat3; + case 4: return MTLVertexFormatFloat4; + default: return MTLVertexFormatInvalid; + } + } + } + // clang-format on +} + +static void SetAttribute(MTLVertexDescriptor* desc, u32 attribute, const AttributeFormat& format) +{ + if (!format.enable) + return; + MTLVertexAttributeDescriptor* attr_desc = [[desc attributes] objectAtIndexedSubscript:attribute]; + [attr_desc setFormat:ConvertFormat(format.type, format.components, format.integer)]; + [attr_desc setOffset:format.offset]; + [attr_desc setBufferIndex:0]; +} + +template +static void SetAttributes(MTLVertexDescriptor* desc, u32 attribute, + const AttributeFormat (&format)[N]) +{ + for (size_t i = 0; i < N; ++i) + SetAttribute(desc, attribute + i, format[i]); +} + +Metal::VertexFormat::VertexFormat(const PortableVertexDeclaration& vtx_decl) + : NativeVertexFormat(vtx_decl), m_desc(MRCTransfer([MTLVertexDescriptor new])) +{ + [[[m_desc layouts] objectAtIndexedSubscript:0] setStride:vtx_decl.stride]; + SetAttribute(m_desc, SHADER_POSITION_ATTRIB, vtx_decl.position); + SetAttributes(m_desc, SHADER_NORMAL_ATTRIB, vtx_decl.normals); + SetAttributes(m_desc, SHADER_COLOR0_ATTRIB, vtx_decl.colors); + SetAttributes(m_desc, SHADER_TEXTURE0_ATTRIB, vtx_decl.texcoords); + SetAttribute(m_desc, SHADER_POSMTX_ATTRIB, vtx_decl.posmtx); +} From c0fd1281713f0ffe8bcfb628f8d328c7a1b5ae09 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 20 Jun 2022 20:24:36 -0500 Subject: [PATCH 429/659] VideoBackends:Metal: Use base vertex --- .../VideoBackends/Metal/MTLStateTracker.h | 7 ++- .../VideoBackends/Metal/MTLStateTracker.mm | 49 +++++++------------ .../VideoBackends/Metal/MTLVertexManager.h | 4 ++ .../VideoBackends/Metal/MTLVertexManager.mm | 25 ++++++---- 4 files changed, 41 insertions(+), 44 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.h b/Source/Core/VideoBackends/Metal/MTLStateTracker.h index d9c79774e0..ac930767c4 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.h +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.h @@ -46,6 +46,7 @@ public: enum class AlignMask : size_t { + None = 0, Other = 15, Uniform = 255, }; @@ -83,7 +84,7 @@ public: void InvalidateUniforms(bool vertex, bool fragment); void SetUtilityUniform(const void* buffer, size_t size); void SetTexelBuffer(id buffer, u32 offset0, u32 offset1); - void SetVerticesAndIndices(Map vertices, Map indices); + void SetVerticesAndIndices(id vertices, id indices); void SetBBoxBuffer(id bbox, id upload, id download); void SetVertexBufferNow(u32 idx, id buffer, u32 offset); void SetFragmentBufferNow(u32 idx, id buffer, u32 offset); @@ -107,7 +108,7 @@ public: Preallocate(buffer_idx, amt); return CommitPreallocation(buffer_idx, amt, align); } - void* Preallocate(UploadBuffer buffer_idx, size_t amt); + std::pair Preallocate(UploadBuffer buffer_idx, size_t amt); /// Must follow a call to Preallocate where amt is >= to the one provided here Map CommitPreallocation(UploadBuffer buffer_idx, size_t amt, AlignMask align) { @@ -247,8 +248,6 @@ private: id vertices = nullptr; id indices = nullptr; id texels = nullptr; - u32 vertices_offset; - u32 indices_offset; u32 texel_buffer_offset0; u32 texel_buffer_offset1; } m_state; diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm index ea2c8cd328..8451f413da 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm @@ -154,7 +154,7 @@ Metal::StateTracker::Map Metal::StateTracker::AllocateForTextureUpload(size_t am return ret; } -void* Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) +std::pair Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) { BufferPair& buffer = m_upload_buffers[static_cast(buffer_idx)]; u64 last_draw = m_last_finished_draw.load(std::memory_order_acquire); @@ -195,7 +195,8 @@ void* Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) ASSERT_MSG(VIDEO, buffer.gpubuffer, "Failed to allocate MTLBuffer (out of memory?)"); } } - return reinterpret_cast(buffer.buffer) + buffer.usage.Pos(); + size_t pos = buffer.usage.Pos(); + return std::make_pair(reinterpret_cast(buffer.buffer) + pos, pos); } Metal::StateTracker::Map Metal::StateTracker::CommitPreallocation(UploadBuffer buffer_idx, @@ -558,13 +559,14 @@ void Metal::StateTracker::SetTexelBuffer(id buffer, u32 offset0, u32 m_flags.has_texel_buffer = false; } -void Metal::StateTracker::SetVerticesAndIndices(Map vertices, Map indices) +void Metal::StateTracker::SetVerticesAndIndices(id vertices, id indices) { - m_state.vertices = vertices.gpu_buffer; - m_state.indices = indices.gpu_buffer; - m_state.vertices_offset = vertices.gpu_offset; - m_state.indices_offset = indices.gpu_offset; - m_flags.has_vertices = false; + if (m_state.vertices != vertices) + { + m_flags.has_vertices = false; + m_state.vertices = vertices; + } + m_state.indices = indices; } void Metal::StateTracker::SetBBoxBuffer(id bbox, id upload, @@ -691,7 +693,7 @@ void Metal::StateTracker::PrepareRender() { m_flags.has_vertices = true; if (m_state.vertices) - SetVertexBufferNow(0, m_state.vertices, m_state.vertices_offset); + SetVertexBufferNow(0, m_state.vertices, 0); } if (u8 dirty = m_dirty_textures & pipe->GetTextures()) { @@ -801,27 +803,14 @@ void Metal::StateTracker::Draw(u32 base_vertex, u32 num_vertices) void Metal::StateTracker::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) { PrepareRender(); - if (!base_vertex) - { - [m_current_render_encoder - drawIndexedPrimitives:m_state.render_pipeline->Prim() - indexCount:num_indices - indexType:MTLIndexTypeUInt16 - indexBuffer:m_state.indices - indexBufferOffset:m_state.indices_offset + base_index * sizeof(u16)]; - } - else - { - [m_current_render_encoder - drawIndexedPrimitives:m_state.render_pipeline->Prim() - indexCount:num_indices - indexType:MTLIndexTypeUInt16 - indexBuffer:m_state.indices - indexBufferOffset:m_state.indices_offset + base_index * sizeof(u16) - instanceCount:1 - baseVertex:base_vertex - baseInstance:0]; - } + [m_current_render_encoder drawIndexedPrimitives:m_state.render_pipeline->Prim() + indexCount:num_indices + indexType:MTLIndexTypeUInt16 + indexBuffer:m_state.indices + indexBufferOffset:base_index * sizeof(u16) + instanceCount:1 + baseVertex:base_vertex + baseInstance:0]; } void Metal::StateTracker::DispatchComputeShader(u32 groupsize_x, u32 groupsize_y, u32 groupsize_z, diff --git a/Source/Core/VideoBackends/Metal/MTLVertexManager.h b/Source/Core/VideoBackends/Metal/MTLVertexManager.h index 29c715f1fd..8914d5fe84 100644 --- a/Source/Core/VideoBackends/Metal/MTLVertexManager.h +++ b/Source/Core/VideoBackends/Metal/MTLVertexManager.h @@ -26,5 +26,9 @@ protected: void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) override; void UploadUniforms() override; + +private: + u32 m_vertex_offset; + u32 m_base_vertex; }; } // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLVertexManager.mm b/Source/Core/VideoBackends/Metal/MTLVertexManager.mm index 3683e79ba6..8fb3e25de4 100644 --- a/Source/Core/VideoBackends/Metal/MTLVertexManager.mm +++ b/Source/Core/VideoBackends/Metal/MTLVertexManager.mm @@ -54,31 +54,36 @@ bool Metal::VertexManager::UploadTexelBuffer(const void* data, u32 data_size, void Metal::VertexManager::ResetBuffer(u32 vertex_stride) { const u32 max_vertex_size = 65535 * vertex_stride; - void* vertex = g_state_tracker->Preallocate(StateTracker::UploadBuffer::Vertex, max_vertex_size); - void* index = + const u32 vertex_alloc = max_vertex_size + vertex_stride - 1; // for alignment + auto vertex = g_state_tracker->Preallocate(StateTracker::UploadBuffer::Vertex, vertex_alloc); + auto index = g_state_tracker->Preallocate(StateTracker::UploadBuffer::Index, MAXIBUFFERSIZE * sizeof(u16)); - m_cur_buffer_pointer = m_base_buffer_pointer = static_cast(vertex); + // Align the base vertex + m_base_vertex = (vertex.second + vertex_stride - 1) / vertex_stride; + m_vertex_offset = m_base_vertex * vertex_stride - vertex.second; + m_cur_buffer_pointer = m_base_buffer_pointer = static_cast(vertex.first) + m_vertex_offset; m_end_buffer_pointer = m_base_buffer_pointer + max_vertex_size; - m_index_generator.Start(static_cast(index)); + m_index_generator.Start(static_cast(index.first)); } void Metal::VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) { - const u32 vsize = num_vertices * vertex_stride; + const u32 vsize = num_vertices * vertex_stride + m_vertex_offset; const u32 isize = num_indices * sizeof(u16); StateTracker::Map vmap = g_state_tracker->CommitPreallocation( - StateTracker::UploadBuffer::Vertex, vsize, StateTracker::AlignMask::Other); + StateTracker::UploadBuffer::Vertex, vsize, StateTracker::AlignMask::None); StateTracker::Map imap = g_state_tracker->CommitPreallocation( - StateTracker::UploadBuffer::Index, isize, StateTracker::AlignMask::Other); + StateTracker::UploadBuffer::Index, isize, StateTracker::AlignMask::None); ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, vsize); ADDSTAT(g_stats.this_frame.bytes_index_streamed, isize); - g_state_tracker->SetVerticesAndIndices(vmap, imap); - *out_base_vertex = 0; - *out_base_index = 0; + DEBUG_ASSERT(vmap.gpu_offset + m_vertex_offset == m_base_vertex * vertex_stride); + g_state_tracker->SetVerticesAndIndices(vmap.gpu_buffer, imap.gpu_buffer); + *out_base_vertex = m_base_vertex; + *out_base_index = imap.gpu_offset / sizeof(u16); } void Metal::VertexManager::UploadUniforms() From 6ee0248eab7622d2db19f28f120b447b5db11379 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Tue, 21 Jun 2022 02:07:35 -0500 Subject: [PATCH 430/659] VideoBackends:Metal: MSAA support --- Source/Core/VideoBackends/D3D/D3DMain.cpp | 1 + .../Core/VideoBackends/D3D12/VideoBackend.cpp | 1 + Source/Core/VideoBackends/Metal/MTLMain.mm | 11 +++- .../VideoBackends/Metal/MTLObjectCache.mm | 2 + Source/Core/VideoBackends/Metal/MTLUtil.mm | 10 ++++ .../Core/VideoBackends/Null/NullBackend.cpp | 1 + Source/Core/VideoBackends/OGL/OGLMain.cpp | 1 + Source/Core/VideoBackends/Software/SWmain.cpp | 1 + .../VideoBackends/Vulkan/VulkanContext.cpp | 1 + .../Core/VideoCommon/FramebufferManager.cpp | 52 +++++++++++++++++-- Source/Core/VideoCommon/FramebufferManager.h | 2 + .../Core/VideoCommon/FramebufferShaderGen.cpp | 16 ++++++ .../Core/VideoCommon/FramebufferShaderGen.h | 1 + Source/Core/VideoCommon/VideoConfig.h | 1 + 14 files changed, 95 insertions(+), 6 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/D3DMain.cpp b/Source/Core/VideoBackends/D3D/D3DMain.cpp index 6fc2c285a1..b8d7fb5871 100644 --- a/Source/Core/VideoBackends/D3D/D3DMain.cpp +++ b/Source/Core/VideoBackends/D3D/D3DMain.cpp @@ -111,6 +111,7 @@ void VideoBackend::FillBackendInfo() g_Config.backend_info.bSupportsLodBiasInSampler = true; g_Config.backend_info.bSupportsLogicOp = D3D::SupportsLogicOp(g_Config.iAdapter); g_Config.backend_info.bSupportsSettingObjectNames = true; + g_Config.backend_info.bSupportsPartialMultisampleResolve = true; g_Config.backend_info.Adapters = D3DCommon::GetAdapterNames(); g_Config.backend_info.AAModes = D3D::GetAAModes(g_Config.iAdapter); diff --git a/Source/Core/VideoBackends/D3D12/VideoBackend.cpp b/Source/Core/VideoBackends/D3D12/VideoBackend.cpp index 197d309332..b0611a8690 100644 --- a/Source/Core/VideoBackends/D3D12/VideoBackend.cpp +++ b/Source/Core/VideoBackends/D3D12/VideoBackend.cpp @@ -86,6 +86,7 @@ void VideoBackend::FillBackendInfo() g_Config.backend_info.bSupportsTextureQueryLevels = true; g_Config.backend_info.bSupportsLodBiasInSampler = true; g_Config.backend_info.bSupportsSettingObjectNames = true; + g_Config.backend_info.bSupportsPartialMultisampleResolve = true; // We can only check texture support once we have a device. if (g_dx_context) diff --git a/Source/Core/VideoBackends/Metal/MTLMain.mm b/Source/Core/VideoBackends/Metal/MTLMain.mm index 2b54d93784..f294f297f2 100644 --- a/Source/Core/VideoBackends/Metal/MTLMain.mm +++ b/Source/Core/VideoBackends/Metal/MTLMain.mm @@ -141,7 +141,16 @@ void Metal::VideoBackend::InitBackendInfo() @autoreleasepool { Util::PopulateBackendInfo(&g_Config); - Util::PopulateBackendInfoAdapters(&g_Config, Util::GetAdapterList()); + auto adapters = Util::GetAdapterList(); + Util::PopulateBackendInfoAdapters(&g_Config, adapters); + if (!adapters.empty()) + { + // Use the selected adapter, or the first to fill features. + size_t index = static_cast(g_Config.iAdapter); + if (index >= adapters.size()) + index = 0; + Util::PopulateBackendInfoFeatures(&g_Config, adapters[index]); + } } } diff --git a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm index e9b836ce1c..3181e1fdee 100644 --- a/Source/Core/VideoBackends/Metal/MTLObjectCache.mm +++ b/Source/Core/VideoBackends/Metal/MTLObjectCache.mm @@ -311,6 +311,7 @@ public: fragment_shader = static_cast(cfg.pixel_shader); framebuffer.color_texture_format = cfg.framebuffer_state.color_texture_format.Value(); framebuffer.depth_texture_format = cfg.framebuffer_state.depth_texture_format.Value(); + framebuffer.samples = cfg.framebuffer_state.samples.Value(); blend.colorupdate = cfg.blending_state.colorupdate.Value(); blend.alphaupdate = cfg.blending_state.alphaupdate.Value(); if (cfg.blending_state.blendenable) @@ -416,6 +417,7 @@ public: // clang-format on } FramebufferState fs = config.framebuffer_state; + [desc setRasterSampleCount:fs.samples]; [color0 setPixelFormat:Util::FromAbstract(fs.color_texture_format)]; [desc setDepthAttachmentPixelFormat:Util::FromAbstract(fs.depth_texture_format)]; if (Util::HasStencil(fs.depth_texture_format)) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index edb250e43f..b80b235436 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -68,6 +68,8 @@ void Metal::Util::PopulateBackendInfo(VideoConfig* config) config->backend_info.bSupportsTextureQueryLevels = true; config->backend_info.bSupportsLodBiasInSampler = false; config->backend_info.bSupportsSettingObjectNames = true; + // Metal requires multisample resolve to be done on a render pass + config->backend_info.bSupportsPartialMultisampleResolve = false; } void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config, @@ -201,6 +203,14 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id config->backend_info.bSupportsBPTCTextures = supports_mac1; config->backend_info.bSupportsFramebufferFetch = true; #endif + + config->backend_info.AAModes.clear(); + for (u32 i = 1; i <= 64; i <<= 1) + { + if ([device supportsTextureSampleCount:i]) + config->backend_info.AAModes.push_back(i); + } + if (char* env = getenv("MTL_UNIFIED_MEMORY")) g_features.unified_memory = env[0] == '1' || env[0] == 'y' || env[0] == 'Y'; else if (@available(macOS 10.15, iOS 13.0, *)) diff --git a/Source/Core/VideoBackends/Null/NullBackend.cpp b/Source/Core/VideoBackends/Null/NullBackend.cpp index 5d04a5adac..b68c9cfd94 100644 --- a/Source/Core/VideoBackends/Null/NullBackend.cpp +++ b/Source/Core/VideoBackends/Null/NullBackend.cpp @@ -59,6 +59,7 @@ void VideoBackend::InitBackendInfo() g_Config.backend_info.bSupportsTextureQueryLevels = false; g_Config.backend_info.bSupportsLodBiasInSampler = false; g_Config.backend_info.bSupportsSettingObjectNames = false; + g_Config.backend_info.bSupportsPartialMultisampleResolve = true; // aamodes: We only support 1 sample, so no MSAA g_Config.backend_info.Adapters.clear(); diff --git a/Source/Core/VideoBackends/OGL/OGLMain.cpp b/Source/Core/VideoBackends/OGL/OGLMain.cpp index a286625b34..24a65f746d 100644 --- a/Source/Core/VideoBackends/OGL/OGLMain.cpp +++ b/Source/Core/VideoBackends/OGL/OGLMain.cpp @@ -93,6 +93,7 @@ void VideoBackend::InitBackendInfo() g_Config.backend_info.bSupportsShaderBinaries = false; g_Config.backend_info.bSupportsPipelineCacheData = false; g_Config.backend_info.bSupportsLodBiasInSampler = true; + g_Config.backend_info.bSupportsPartialMultisampleResolve = true; // TODO: There is a bug here, if texel buffers or SSBOs/atomics are not supported the graphics // options will show the option when it is not supported. The only way around this would be diff --git a/Source/Core/VideoBackends/Software/SWmain.cpp b/Source/Core/VideoBackends/Software/SWmain.cpp index a74b2eb1c9..80dc4603f2 100644 --- a/Source/Core/VideoBackends/Software/SWmain.cpp +++ b/Source/Core/VideoBackends/Software/SWmain.cpp @@ -88,6 +88,7 @@ void VideoSoftware::InitBackendInfo() g_Config.backend_info.bSupportsTextureQueryLevels = false; g_Config.backend_info.bSupportsLodBiasInSampler = false; g_Config.backend_info.bSupportsSettingObjectNames = false; + g_Config.backend_info.bSupportsPartialMultisampleResolve = true; // aamodes g_Config.backend_info.AAModes = {1}; diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp index a6cb201d72..cad326c83a 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp +++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp @@ -294,6 +294,7 @@ void VulkanContext::PopulateBackendInfo(VideoConfig* config) config->backend_info.bSupportsTextureQueryLevels = true; // Assumed support. config->backend_info.bSupportsLodBiasInSampler = false; // Dependent on OS. config->backend_info.bSupportsSettingObjectNames = false; // Dependent on features. + config->backend_info.bSupportsPartialMultisampleResolve = true; // Assumed support. } void VulkanContext::PopulateBackendInfoAdapters(VideoConfig* config, const GPUList& gpu_list) diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp index d4fdfd0ff2..76c265c76a 100644 --- a/Source/Core/VideoCommon/FramebufferManager.cpp +++ b/Source/Core/VideoCommon/FramebufferManager.cpp @@ -188,12 +188,23 @@ bool FramebufferManager::CreateEFBFramebuffer() // Create resolved textures if MSAA is on if (g_ActiveConfig.MultisamplingEnabled()) { + u32 flags = 0; + if (!g_ActiveConfig.backend_info.bSupportsPartialMultisampleResolve) + flags |= AbstractTextureFlag_RenderTarget; m_efb_resolve_color_texture = g_renderer->CreateTexture( TextureConfig(efb_color_texture_config.width, efb_color_texture_config.height, 1, - efb_color_texture_config.layers, 1, efb_color_texture_config.format, 0), + efb_color_texture_config.layers, 1, efb_color_texture_config.format, flags), "EFB color resolve texture"); if (!m_efb_resolve_color_texture) return false; + + if (!g_ActiveConfig.backend_info.bSupportsPartialMultisampleResolve) + { + m_efb_color_resolve_framebuffer = + g_renderer->CreateFramebuffer(m_efb_resolve_color_texture.get(), nullptr); + if (!m_efb_color_resolve_framebuffer) + return false; + } } // We also need one to convert the D24S8 to R32F if that is being used (Adreno). @@ -248,12 +259,27 @@ AbstractTexture* FramebufferManager::ResolveEFBColorTexture(const MathUtil::Rect clamped_region.ClampUL(0, 0, GetEFBWidth(), GetEFBHeight()); // Resolve to our already-created texture. - for (u32 layer = 0; layer < GetEFBLayers(); layer++) + if (g_ActiveConfig.backend_info.bSupportsPartialMultisampleResolve) { - m_efb_resolve_color_texture->ResolveFromTexture(m_efb_color_texture.get(), clamped_region, - layer, 0); + for (u32 layer = 0; layer < GetEFBLayers(); layer++) + { + m_efb_resolve_color_texture->ResolveFromTexture(m_efb_color_texture.get(), clamped_region, + layer, 0); + } + } + else + { + m_efb_color_texture->FinishedRendering(); + g_renderer->BeginUtilityDrawing(); + g_renderer->SetAndDiscardFramebuffer(m_efb_color_resolve_framebuffer.get()); + g_renderer->SetPipeline(m_efb_color_resolve_pipeline.get()); + g_renderer->SetTexture(0, m_efb_color_texture.get()); + g_renderer->SetSamplerState(0, RenderState::GetPointSamplerState()); + g_renderer->SetViewportAndScissor(clamped_region); + g_renderer->Draw(0, 3); + m_efb_resolve_color_texture->FinishedRendering(); + g_renderer->EndUtilityDrawing(); } - m_efb_resolve_color_texture->FinishedRendering(); return m_efb_resolve_color_texture.get(); } @@ -487,6 +513,22 @@ bool FramebufferManager::CompileReadbackPipelines() m_efb_depth_resolve_pipeline = g_renderer->CreatePipeline(config); if (!m_efb_depth_resolve_pipeline) return false; + + if (!g_ActiveConfig.backend_info.bSupportsPartialMultisampleResolve) + { + config.framebuffer_state.color_texture_format = GetEFBColorFormat(); + auto color_resolve_shader = g_renderer->CreateShaderFromSource( + ShaderStage::Pixel, + FramebufferShaderGen::GenerateResolveColorPixelShader(GetEFBSamples()), + "Color resolve pixel shader"); + if (!color_resolve_shader) + return false; + + config.pixel_shader = color_resolve_shader.get(); + m_efb_color_resolve_pipeline = g_renderer->CreatePipeline(config); + if (!m_efb_color_resolve_pipeline) + return false; + } } // EFB restore pipeline diff --git a/Source/Core/VideoCommon/FramebufferManager.h b/Source/Core/VideoCommon/FramebufferManager.h index b9144f83ef..2d27fef09b 100644 --- a/Source/Core/VideoCommon/FramebufferManager.h +++ b/Source/Core/VideoCommon/FramebufferManager.h @@ -170,7 +170,9 @@ protected: std::unique_ptr m_efb_framebuffer; std::unique_ptr m_efb_convert_framebuffer; + std::unique_ptr m_efb_color_resolve_framebuffer; std::unique_ptr m_efb_depth_resolve_framebuffer; + std::unique_ptr m_efb_color_resolve_pipeline; std::unique_ptr m_efb_depth_resolve_pipeline; // Pipeline for restoring the contents of the EFB from a save state diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.cpp b/Source/Core/VideoCommon/FramebufferShaderGen.cpp index 6426b259b4..49684bb518 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.cpp +++ b/Source/Core/VideoCommon/FramebufferShaderGen.cpp @@ -338,6 +338,22 @@ std::string GenerateColorPixelShader() return code.GetBuffer(); } +std::string GenerateResolveColorPixelShader(u32 samples) +{ + ShaderCode code; + EmitSamplerDeclarations(code, 0, 1, true); + EmitPixelMainDeclaration(code, 1, 0); + code.Write("{{\n" + " int layer = int(v_tex0.z);\n" + " int3 coords = int3(int2(gl_FragCoord.xy), layer);\n" + " ocol0 = float4(0.0f);\n"); + code.Write(" for (int i = 0; i < {}; i++)\n", samples); + code.Write(" ocol0 += texelFetch(samp0, coords, i);\n"); + code.Write(" ocol0 /= {}.0f;\n", samples); + code.Write("}}\n"); + return code.GetBuffer(); +} + std::string GenerateResolveDepthPixelShader(u32 samples) { ShaderCode code; diff --git a/Source/Core/VideoCommon/FramebufferShaderGen.h b/Source/Core/VideoCommon/FramebufferShaderGen.h index 9d487f7a5a..8a6aac553f 100644 --- a/Source/Core/VideoCommon/FramebufferShaderGen.h +++ b/Source/Core/VideoCommon/FramebufferShaderGen.h @@ -15,6 +15,7 @@ std::string GenerateScreenQuadVertexShader(); std::string GeneratePassthroughGeometryShader(u32 num_tex, u32 num_colors); std::string GenerateTextureCopyVertexShader(); std::string GenerateTextureCopyPixelShader(); +std::string GenerateResolveColorPixelShader(u32 samples); std::string GenerateResolveDepthPixelShader(u32 samples); std::string GenerateClearVertexShader(); std::string GenerateEFBPokeVertexShader(); diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h index 6ce7bed379..8de5d1e593 100644 --- a/Source/Core/VideoCommon/VideoConfig.h +++ b/Source/Core/VideoCommon/VideoConfig.h @@ -238,6 +238,7 @@ struct VideoConfig final bool bSupportsTextureQueryLevels = false; bool bSupportsLodBiasInSampler = false; bool bSupportsSettingObjectNames = false; + bool bSupportsPartialMultisampleResolve = false; } backend_info; // Utility From c48035908cc1821625c135b9a96e09e47264ed45 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Tue, 21 Jun 2022 04:07:54 -0500 Subject: [PATCH 431/659] VideoBackends:Metal: Use unified memory path by default on all GPUs --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index b80b235436..85ac96b342 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -211,12 +211,13 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id config->backend_info.AAModes.push_back(i); } + // The unified memory path (using shared buffers for everything) performs noticeably better with + // bbox even on discrete GPUs (20fps vs 15fps in Super Paper Mario elevator), so default to that. + // The separate buffer + manual upload path is left available for testing and comparison. if (char* env = getenv("MTL_UNIFIED_MEMORY")) g_features.unified_memory = env[0] == '1' || env[0] == 'y' || env[0] == 'Y'; - else if (@available(macOS 10.15, iOS 13.0, *)) - g_features.unified_memory = [device hasUnifiedMemory]; else - g_features.unified_memory = false; + g_features.unified_memory = true; g_features.subgroup_ops = false; if (@available(macOS 10.15, iOS 13, *)) From ee3f2b8fcb953151fb6617f31d7a96bb7ebc12a5 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 26 Jun 2022 01:04:53 -0500 Subject: [PATCH 432/659] VideoBackends:Metal: Implement PerfQuery --- .../Core/VideoBackends/Metal/MTLPerfQuery.h | 26 +++-- .../Core/VideoBackends/Metal/MTLPerfQuery.mm | 86 +++++++++++++++++ .../VideoBackends/Metal/MTLStateTracker.h | 11 +++ .../VideoBackends/Metal/MTLStateTracker.mm | 94 ++++++++++++++++++- 4 files changed, 210 insertions(+), 7 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLPerfQuery.h b/Source/Core/VideoBackends/Metal/MTLPerfQuery.h index 793cf8cec5..993b92e93c 100644 --- a/Source/Core/VideoBackends/Metal/MTLPerfQuery.h +++ b/Source/Core/VideoBackends/Metal/MTLPerfQuery.h @@ -3,6 +3,9 @@ #pragma once +#include +#include + #include "VideoCommon/PerfQueryBase.h" namespace Metal @@ -10,11 +13,22 @@ namespace Metal class PerfQuery final : public PerfQueryBase { public: - void EnableQuery(PerfQueryGroup type) override {} - void DisableQuery(PerfQueryGroup type) override {} - void ResetQuery() override {} - u32 GetQueryResult(PerfQueryType type) override { return 0; } - void FlushResults() override {} - bool IsFlushed() const override { return true; } + void EnableQuery(PerfQueryGroup type) override; + void DisableQuery(PerfQueryGroup type) override; + void ResetQuery() override; + u32 GetQueryResult(PerfQueryType type) override; + void FlushResults() override; + bool IsFlushed() const override; + + /// Notify PerfQuery of a new pending encoder + /// One call to ReturnResults should be made for every call to IncCount + void IncCount() { m_query_count.fetch_add(1, std::memory_order_relaxed); } + /// May be called from any thread + void ReturnResults(const u64* data, const PerfQueryGroup* groups, size_t count, u32 query_id); + +private: + u32 m_current_query = 0; + std::mutex m_results_mtx; + std::condition_variable m_cv; }; } // namespace Metal diff --git a/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm b/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm index 2892bdc747..42139e63bf 100644 --- a/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm +++ b/Source/Core/VideoBackends/Metal/MTLPerfQuery.mm @@ -2,3 +2,89 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "VideoBackends/Metal/MTLPerfQuery.h" + +#include "VideoBackends/Metal/MTLStateTracker.h" + +void Metal::PerfQuery::EnableQuery(PerfQueryGroup type) +{ + if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP) + g_state_tracker->EnablePerfQuery(type, m_current_query); +} + +void Metal::PerfQuery::DisableQuery(PerfQueryGroup type) +{ + if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP) + g_state_tracker->DisablePerfQuery(); +} + +void Metal::PerfQuery::ResetQuery() +{ + std::lock_guard lock(m_results_mtx); + m_current_query++; + for (std::atomic& result : m_results) + result.store(0, std::memory_order_relaxed); +} + +u32 Metal::PerfQuery::GetQueryResult(PerfQueryType type) +{ + u32 result = 0; + if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC) + { + result = m_results[PQG_ZCOMP_ZCOMPLOC].load(std::memory_order_relaxed); + } + else if (type == PQ_ZCOMP_INPUT || type == PQ_ZCOMP_OUTPUT) + { + result = m_results[PQG_ZCOMP].load(std::memory_order_relaxed); + } + else if (type == PQ_BLEND_INPUT) + { + result = m_results[PQG_ZCOMP].load(std::memory_order_relaxed) + + m_results[PQG_ZCOMP_ZCOMPLOC].load(std::memory_order_relaxed); + } + else if (type == PQ_EFB_COPY_CLOCKS) + { + result = m_results[PQG_EFB_COPY_CLOCKS].load(std::memory_order_relaxed); + } + + return result; +} + +void Metal::PerfQuery::FlushResults() +{ + if (IsFlushed()) + return; + + // There's a possibility that some active performance queries are unflushed + g_state_tracker->FlushEncoders(); + + std::unique_lock lock(m_results_mtx); + while (!IsFlushed()) + m_cv.wait(lock); +} + +bool Metal::PerfQuery::IsFlushed() const +{ + return m_query_count.load(std::memory_order_acquire) == 0; +} + +void Metal::PerfQuery::ReturnResults(const u64* data, const PerfQueryGroup* groups, size_t count, + u32 query_id) +{ + { + std::lock_guard lock(m_results_mtx); + if (m_current_query == query_id) + { + for (size_t i = 0; i < count; ++i) + { + u64 native_res_result = data[i] * (EFB_WIDTH * EFB_HEIGHT) / + (g_renderer->GetTargetWidth() * g_renderer->GetTargetHeight()); + + native_res_result /= g_ActiveConfig.iMultisamples; + + m_results[groups[i]].fetch_add(native_res_result, std::memory_order_relaxed); + } + } + m_query_count.fetch_sub(1, std::memory_order_release); + } + m_cv.notify_one(); +} diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.h b/Source/Core/VideoBackends/Metal/MTLStateTracker.h index ac930767c4..1807f345e4 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.h +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.h @@ -17,6 +17,7 @@ #include "VideoBackends/Metal/MTLTexture.h" #include "VideoBackends/Metal/MTLUtil.h" +#include "VideoCommon/PerfQueryBase.h" #include "VideoCommon/RenderBase.h" namespace Metal @@ -90,6 +91,8 @@ public: void SetFragmentBufferNow(u32 idx, id buffer, u32 offset); /// Use around utility draws that are commonly used immediately before gx draws to the same buffer void EnableEncoderLabel(bool enabled) { m_flags.should_apply_label = enabled; } + void EnablePerfQuery(PerfQueryGroup group, u32 query_id); + void DisablePerfQuery(); void UnbindTexture(id texture); void Draw(u32 base_vertex, u32 num_vertices); @@ -157,8 +160,10 @@ private: }; struct Backref; + struct PerfQueryTracker; std::shared_ptr m_backref; + std::vector> m_perf_query_tracker_cache; MRCOwned> m_fence; MRCOwned> m_upload_cmdbuf; MRCOwned> m_upload_encoder; @@ -224,7 +229,9 @@ private: MTLDepthClipMode depth_clip_mode; MTLCullMode cull_mode; DepthStencilSelector depth_stencil; + PerfQueryGroup perf_query_group; } m_current; + std::shared_ptr m_current_perf_query; /// Things that represent what we'd *like* to have on the encoder for the next draw struct State @@ -250,8 +257,12 @@ private: id texels = nullptr; u32 texel_buffer_offset0; u32 texel_buffer_offset1; + PerfQueryGroup perf_query_group = static_cast(-1); } m_state; + u32 m_perf_query_tracker_counter = 0; + + std::shared_ptr NewPerfQueryTracker(); void SetSamplerForce(u32 idx, const SamplerState& sampler); void Sync(BufferPair& buffer); Map CommitPreallocation(UploadBuffer buffer_idx, size_t actual_amt); diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm index 8451f413da..66ae33b733 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm @@ -10,6 +10,7 @@ #include "Common/BitUtils.h" #include "VideoBackends/Metal/MTLObjectCache.h" +#include "VideoBackends/Metal/MTLPerfQuery.h" #include "VideoBackends/Metal/MTLPipeline.h" #include "VideoBackends/Metal/MTLTexture.h" #include "VideoBackends/Metal/MTLUtil.h" @@ -19,6 +20,8 @@ #include "VideoCommon/VertexShaderManager.h" #include "VideoCommon/VideoConfig.h" +static constexpr u32 PERF_QUERY_BUFFER_SIZE = 512; + std::unique_ptr Metal::g_state_tracker; struct Metal::StateTracker::Backref @@ -28,6 +31,14 @@ struct Metal::StateTracker::Backref explicit Backref(StateTracker* state_tracker) : state_tracker(state_tracker) {} }; +struct Metal::StateTracker::PerfQueryTracker +{ + MRCOwned> buffer; + const u64* contents; + std::vector groups; + u32 query_id; +}; + static NSString* GetName(Metal::StateTracker::UploadBuffer buffer) { // clang-format off @@ -328,8 +339,12 @@ void Metal::StateTracker::BeginRenderPass(MTLLoadAction load_action) void Metal::StateTracker::BeginRenderPass(MTLRenderPassDescriptor* descriptor) { EndRenderPass(); + if (m_current_perf_query) + [descriptor setVisibilityResultBuffer:m_current_perf_query->buffer]; m_current_render_encoder = MRCRetain([GetRenderCmdBuf() renderCommandEncoderWithDescriptor:descriptor]); + if (m_current_perf_query) + [descriptor setVisibilityResultBuffer:nil]; if (!g_features.unified_memory) [m_current_render_encoder waitForFence:m_fence beforeStages:MTLRenderStageVertex]; AbstractTexture* attachment = m_current_framebuffer->GetColorAttachment(); @@ -347,6 +362,7 @@ void Metal::StateTracker::BeginRenderPass(MTLRenderPassDescriptor* descriptor) m_current.depth_stencil = DepthStencilSelector(false, CompareMode::Always); m_current.depth_clip_mode = MTLDepthClipModeClip; m_current.cull_mode = MTLCullModeNone; + m_current.perf_query_group = static_cast(-1); m_flags.NewEncoder(); m_dirty_samplers = 0xff; m_dirty_textures = 0xff; @@ -411,15 +427,23 @@ void Metal::StateTracker::FlushEncoders() m_texture_upload_cmdbuf = nullptr; } [m_current_render_cmdbuf - addCompletedHandler:[backref = m_backref, draw = m_current_draw](id buf) { + addCompletedHandler:[backref = m_backref, draw = m_current_draw, + q = std::move(m_current_perf_query)](id buf) { std::lock_guard guard(backref->mtx); if (StateTracker* tracker = backref->state_tracker) { // We can do the update non-atomically because we only ever update under the lock u64 newval = std::max(draw, tracker->m_last_finished_draw.load(std::memory_order_relaxed)); tracker->m_last_finished_draw.store(newval, std::memory_order_release); + if (q) + { + if (PerfQuery* query = static_cast(g_perf_query.get())) + query->ReturnResults(q->contents, q->groups.data(), q->groups.size(), q->query_id); + tracker->m_perf_query_tracker_cache.emplace_back(std::move(q)); + } } }]; + m_current_perf_query = nullptr; [m_current_render_cmdbuf commit]; m_last_render_cmdbuf = std::move(m_current_render_cmdbuf); m_current_render_cmdbuf = nullptr; @@ -603,6 +627,57 @@ void Metal::StateTracker::SetFragmentBufferNow(u32 idx, id buffer, u3 } } +std::shared_ptr Metal::StateTracker::NewPerfQueryTracker() +{ + static_cast(g_perf_query.get())->IncCount(); + // The cache is repopulated asynchronously + std::lock_guard lock(m_backref->mtx); + if (m_perf_query_tracker_cache.empty()) + { + // Make a new one + @autoreleasepool + { + std::shared_ptr tracker = std::make_shared(); + const MTLResourceOptions options = + MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked; + id buffer = [g_device newBufferWithLength:PERF_QUERY_BUFFER_SIZE * sizeof(u64) + options:options]; + [buffer setLabel:[NSString stringWithFormat:@"PerfQuery Buffer %d", + m_perf_query_tracker_counter++]]; + tracker->buffer = MRCTransfer(buffer); + tracker->contents = static_cast([buffer contents]); + return tracker; + } + } + else + { + // Reuse an old one + std::shared_ptr tracker = std::move(m_perf_query_tracker_cache.back()); + m_perf_query_tracker_cache.pop_back(); + return tracker; + } +} + +void Metal::StateTracker::EnablePerfQuery(PerfQueryGroup group, u32 query_id) +{ + m_state.perf_query_group = group; + if (!m_current_perf_query || m_current_perf_query->query_id != query_id || + m_current_perf_query->groups.size() == PERF_QUERY_BUFFER_SIZE) + { + if (m_current_render_encoder) + EndRenderPass(); + if (!m_current_perf_query) + m_current_perf_query = NewPerfQueryTracker(); + m_current_perf_query->groups.clear(); + m_current_perf_query->query_id = query_id; + } +} + +void Metal::StateTracker::DisablePerfQuery() +{ + m_state.perf_query_group = static_cast(-1); +} + // MARK: Render // clang-format off @@ -620,6 +695,9 @@ static NSRange RangeOfBits(u32 value) void Metal::StateTracker::PrepareRender() { + // BeginRenderPass needs this + if (m_state.perf_query_group != static_cast(-1) && !m_current_perf_query) + m_current_perf_query = NewPerfQueryTracker(); if (!m_current_render_encoder) BeginRenderPass(MTLLoadActionLoad); id enc = m_current_render_encoder; @@ -710,6 +788,20 @@ void Metal::StateTracker::PrepareRender() lodMaxClamps:m_state.sampler_max_lod.data() withRange:range]; } + if (m_state.perf_query_group != m_current.perf_query_group) + { + m_current.perf_query_group = m_state.perf_query_group; + if (m_state.perf_query_group == static_cast(-1)) + { + [enc setVisibilityResultMode:MTLVisibilityResultModeDisabled offset:0]; + } + else + { + [enc setVisibilityResultMode:MTLVisibilityResultModeCounting + offset:m_current_perf_query->groups.size() * 8]; + m_current_perf_query->groups.push_back(m_state.perf_query_group); + } + } if (is_gx) { // GX draw From 5065767abdadac6cb0b2597ccb1ea47af3549bb4 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Sun, 3 Jul 2022 20:47:31 -0500 Subject: [PATCH 433/659] VideoBackends:Metal: Avoid submitting draw calls with no vertices/indices --- Source/Core/VideoBackends/Metal/MTLStateTracker.mm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm index 66ae33b733..b221644640 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm @@ -80,6 +80,10 @@ bool Metal::StateTracker::UsageTracker::PrepareForAllocation(u64 last_draw, size size_t Metal::StateTracker::UsageTracker::Allocate(u64 current_draw, size_t amt) { + // Allocation of zero bytes would make the buffer think it's full + // Zero bytes is useless anyways, so don't mark usage in that case + if (!amt) + return m_pos; if (m_usage.empty() || m_usage.back().drawno != current_draw) m_usage.push_back({current_draw, m_pos}); size_t ret = m_pos; @@ -886,6 +890,8 @@ void Metal::StateTracker::PrepareCompute() void Metal::StateTracker::Draw(u32 base_vertex, u32 num_vertices) { + if (!num_vertices) + return; PrepareRender(); [m_current_render_encoder drawPrimitives:m_state.render_pipeline->Prim() vertexStart:base_vertex @@ -894,6 +900,8 @@ void Metal::StateTracker::Draw(u32 base_vertex, u32 num_vertices) void Metal::StateTracker::DrawIndexed(u32 base_index, u32 num_indices, u32 base_vertex) { + if (!num_indices) // Happens in Metroid Prime, Metal API validation doesn't like this + return; PrepareRender(); [m_current_render_encoder drawIndexedPrimitives:m_state.render_pipeline->Prim() indexCount:num_indices From a41345127f697515ceb65ed349032e9ed3abc7f9 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Thu, 21 Jul 2022 20:07:23 -0500 Subject: [PATCH 434/659] VideoBackends:Metal: Remove unified memory config Not worth the extra code --- .../VideoBackends/Metal/MTLBoundingBox.mm | 35 +---- .../VideoBackends/Metal/MTLStateTracker.h | 19 +-- .../VideoBackends/Metal/MTLStateTracker.mm | 120 ++---------------- Source/Core/VideoBackends/Metal/MTLTexture.mm | 3 +- Source/Core/VideoBackends/Metal/MTLUtil.h | 1 - Source/Core/VideoBackends/Metal/MTLUtil.mm | 8 -- 6 files changed, 21 insertions(+), 165 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm b/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm index 89c446b040..4c1a6ebd48 100644 --- a/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm +++ b/Source/Core/VideoBackends/Metal/MTLBoundingBox.mm @@ -16,28 +16,16 @@ Metal::BoundingBox::~BoundingBox() bool Metal::BoundingBox::Initialize() { - const MTLResourceOptions gpu_storage_mode = - g_features.unified_memory ? MTLResourceStorageModeShared : MTLResourceStorageModePrivate; - const MTLResourceOptions gpu_options = gpu_storage_mode | MTLResourceHazardTrackingModeUntracked; + const MTLResourceOptions gpu_options = + MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked; const id dev = g_device; m_upload_fence = MRCTransfer([dev newFence]); [m_upload_fence setLabel:@"BBox Upload Fence"]; m_download_fence = MRCTransfer([dev newFence]); [m_download_fence setLabel:@"BBox Download Fence"]; m_gpu_buffer = MRCTransfer([dev newBufferWithLength:BUFFER_SIZE options:gpu_options]); - if (g_features.unified_memory) - { - [m_gpu_buffer setLabel:@"BBox Buffer"]; - m_cpu_buffer_ptr = static_cast([m_gpu_buffer contents]); - } - else - { - m_cpu_buffer = MRCTransfer([dev newBufferWithLength:BUFFER_SIZE - options:MTLResourceStorageModeShared]); - m_cpu_buffer_ptr = static_cast([m_cpu_buffer contents]); - [m_gpu_buffer setLabel:@"BBox GPU Buffer"]; - [m_cpu_buffer setLabel:@"BBox CPU Buffer"]; - } + [m_gpu_buffer setLabel:@"BBox Buffer"]; + m_cpu_buffer_ptr = static_cast([m_gpu_buffer contents]); g_state_tracker->SetBBoxBuffer(m_gpu_buffer, m_upload_fence, m_download_fence); return true; } @@ -47,18 +35,6 @@ std::vector Metal::BoundingBox::Read(u32 index, u32 length) @autoreleasepool { g_state_tracker->EndRenderPass(); - if (!g_features.unified_memory) - { - id download = [g_state_tracker->GetRenderCmdBuf() blitCommandEncoder]; - [download setLabel:@"BBox Download"]; - [download waitForFence:m_download_fence]; - [download copyFromBuffer:m_gpu_buffer - sourceOffset:0 - toBuffer:m_cpu_buffer - destinationOffset:0 - size:BUFFER_SIZE]; - [download endEncoding]; - } g_state_tracker->FlushEncoders(); g_state_tracker->WaitForFlushedEncoders(); return std::vector(m_cpu_buffer_ptr + index, m_cpu_buffer_ptr + index + length); @@ -68,8 +44,7 @@ std::vector Metal::BoundingBox::Read(u32 index, u32 length) void Metal::BoundingBox::Write(u32 index, const std::vector& values) { const u32 size = values.size() * sizeof(BBoxType); - if (g_features.unified_memory && !g_state_tracker->HasUnflushedData() && - !g_state_tracker->GPUBusy()) + if (!g_state_tracker->HasUnflushedData() && !g_state_tracker->GPUBusy()) { // We can just write directly to the buffer! memcpy(m_cpu_buffer_ptr + index, values.data(), size); diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.h b/Source/Core/VideoBackends/Metal/MTLStateTracker.h index 1807f345e4..3e7bac832d 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.h +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.h @@ -34,6 +34,7 @@ public: Uniform, Vertex, Index, + TextureData, Texels, Last = Texels }; @@ -105,7 +106,6 @@ public: { return (amt + static_cast(align)) & ~static_cast(align); } - Map AllocateForTextureUpload(size_t amt); Map Allocate(UploadBuffer buffer_idx, size_t amt, AlignMask align) { Preallocate(buffer_idx, amt); @@ -119,7 +119,6 @@ public: static_cast(align)) == 0); return CommitPreallocation(buffer_idx, Align(amt, align)); } - id GetUploadEncoder(); id GetTextureUploadEncoder(); id GetRenderCmdBuf(); @@ -143,28 +142,18 @@ private: void Reset(size_t new_size); }; - struct CPUBuffer + struct Buffer { UsageTracker usage; MRCOwned> mtlbuffer; void* buffer = nullptr; }; - struct BufferPair - { - UsageTracker usage; - MRCOwned> cpubuffer; - MRCOwned> gpubuffer; - void* buffer = nullptr; - size_t last_upload = 0; - }; - struct Backref; struct PerfQueryTracker; std::shared_ptr m_backref; std::vector> m_perf_query_tracker_cache; - MRCOwned> m_fence; MRCOwned> m_upload_cmdbuf; MRCOwned> m_upload_encoder; MRCOwned> m_texture_upload_cmdbuf; @@ -176,8 +165,7 @@ private: MRCOwned m_render_pass_desc[3]; MRCOwned m_resolve_pass_desc; Framebuffer* m_current_framebuffer; - CPUBuffer m_texture_upload_buffer; - BufferPair m_upload_buffers[static_cast(UploadBuffer::Last) + 1]; + Buffer m_upload_buffers[static_cast(UploadBuffer::Last) + 1]; u64 m_current_draw = 1; std::atomic m_last_finished_draw{0}; @@ -264,7 +252,6 @@ private: std::shared_ptr NewPerfQueryTracker(); void SetSamplerForce(u32 idx, const SamplerState& sampler); - void Sync(BufferPair& buffer); Map CommitPreallocation(UploadBuffer buffer_idx, size_t actual_amt); void CheckViewport(); void CheckScissor(); diff --git a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm index b221644640..3ab6224f83 100644 --- a/Source/Core/VideoBackends/Metal/MTLStateTracker.mm +++ b/Source/Core/VideoBackends/Metal/MTLStateTracker.mm @@ -44,11 +44,12 @@ static NSString* GetName(Metal::StateTracker::UploadBuffer buffer) // clang-format off switch (buffer) { - case Metal::StateTracker::UploadBuffer::Texels: return @"Texels"; - case Metal::StateTracker::UploadBuffer::Vertex: return @"Vertices"; - case Metal::StateTracker::UploadBuffer::Index: return @"Indices"; - case Metal::StateTracker::UploadBuffer::Uniform: return @"Uniforms"; - case Metal::StateTracker::UploadBuffer::Other: return @"Generic Upload"; + case Metal::StateTracker::UploadBuffer::TextureData: return @"Texture Data"; + case Metal::StateTracker::UploadBuffer::Texels: return @"Texels"; + case Metal::StateTracker::UploadBuffer::Vertex: return @"Vertices"; + case Metal::StateTracker::UploadBuffer::Index: return @"Indices"; + case Metal::StateTracker::UploadBuffer::Uniform: return @"Uniforms"; + case Metal::StateTracker::UploadBuffer::Other: return @"Generic Upload"; } // clang-format on } @@ -103,7 +104,6 @@ void Metal::StateTracker::UsageTracker::Reset(size_t new_size) Metal::StateTracker::StateTracker() : m_backref(std::make_shared(this)) { m_flags.should_apply_label = true; - m_fence = MRCTransfer([g_device newFence]); for (MRCOwned& rpdesc : m_render_pass_desc) { rpdesc = MRCTransfer([MTLRenderPassDescriptor new]); @@ -140,10 +140,9 @@ Metal::StateTracker::~StateTracker() // MARK: BufferPair Ops -Metal::StateTracker::Map Metal::StateTracker::AllocateForTextureUpload(size_t amt) +std::pair Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) { - amt = (amt + 15) & ~15ull; - CPUBuffer& buffer = m_texture_upload_buffer; + Buffer& buffer = m_upload_buffers[static_cast(buffer_idx)]; u64 last_draw = m_last_finished_draw.load(std::memory_order_acquire); bool needs_new = buffer.usage.PrepareForAllocation(last_draw, amt); if (__builtin_expect(needs_new, false)) @@ -155,61 +154,11 @@ Metal::StateTracker::Map Metal::StateTracker::AllocateForTextureUpload(size_t am MTLResourceOptions options = MTLResourceStorageModeShared | MTLResourceCPUCacheModeWriteCombined; buffer.mtlbuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); - [buffer.mtlbuffer setLabel:@"Texture Upload Buffer"]; + [buffer.mtlbuffer setLabel:GetName(buffer_idx)]; ASSERT_MSG(VIDEO, buffer.mtlbuffer, "Failed to allocate MTLBuffer (out of memory?)"); buffer.buffer = [buffer.mtlbuffer contents]; buffer.usage.Reset(newsize); } - - size_t pos = buffer.usage.Allocate(m_current_draw, amt); - - Map ret = {buffer.mtlbuffer, pos, reinterpret_cast(buffer.buffer) + pos}; - DEBUG_ASSERT(pos <= buffer.usage.Size() && - "Previous code should have guaranteed there was enough space"); - return ret; -} - -std::pair Metal::StateTracker::Preallocate(UploadBuffer buffer_idx, size_t amt) -{ - BufferPair& buffer = m_upload_buffers[static_cast(buffer_idx)]; - u64 last_draw = m_last_finished_draw.load(std::memory_order_acquire); - size_t base_pos = buffer.usage.Pos(); - bool needs_new = buffer.usage.PrepareForAllocation(last_draw, amt); - bool needs_upload = needs_new || buffer.usage.Pos() == 0; - if (!g_features.unified_memory && needs_upload) - { - if (base_pos != buffer.last_upload) - { - id encoder = GetUploadEncoder(); - [encoder copyFromBuffer:buffer.cpubuffer - sourceOffset:buffer.last_upload - toBuffer:buffer.gpubuffer - destinationOffset:buffer.last_upload - size:base_pos - buffer.last_upload]; - } - buffer.last_upload = 0; - } - if (__builtin_expect(needs_new, false)) - { - // Orphan buffer - size_t newsize = std::max(buffer.usage.Size() * 2, 4096); - while (newsize < amt) - newsize *= 2; - MTLResourceOptions options = - MTLResourceStorageModeShared | MTLResourceCPUCacheModeWriteCombined; - buffer.cpubuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); - [buffer.cpubuffer setLabel:GetName(buffer_idx)]; - ASSERT_MSG(VIDEO, buffer.cpubuffer, "Failed to allocate MTLBuffer (out of memory?)"); - buffer.buffer = [buffer.cpubuffer contents]; - buffer.usage.Reset(newsize); - if (!g_features.unified_memory) - { - options = MTLResourceStorageModePrivate | MTLResourceHazardTrackingModeUntracked; - buffer.gpubuffer = MRCTransfer([g_device newBufferWithLength:newsize options:options]); - [buffer.gpubuffer setLabel:GetName(buffer_idx)]; - ASSERT_MSG(VIDEO, buffer.gpubuffer, "Failed to allocate MTLBuffer (out of memory?)"); - } - } size_t pos = buffer.usage.Pos(); return std::make_pair(reinterpret_cast(buffer.buffer) + pos, pos); } @@ -217,46 +166,17 @@ std::pair Metal::StateTracker::Preallocate(UploadBuffer buffer_id Metal::StateTracker::Map Metal::StateTracker::CommitPreallocation(UploadBuffer buffer_idx, size_t amt) { - BufferPair& buffer = m_upload_buffers[static_cast(buffer_idx)]; + Buffer& buffer = m_upload_buffers[static_cast(buffer_idx)]; size_t pos = buffer.usage.Allocate(m_current_draw, amt); Map ret = {nil, pos, reinterpret_cast(buffer.buffer) + pos}; - ret.gpu_buffer = g_features.unified_memory ? buffer.cpubuffer : buffer.gpubuffer; + ret.gpu_buffer = buffer.mtlbuffer; DEBUG_ASSERT(pos <= buffer.usage.Size() && "Previous code should have guaranteed there was enough space"); return ret; } -void Metal::StateTracker::Sync(BufferPair& buffer) -{ - if (g_features.unified_memory || buffer.usage.Pos() == buffer.last_upload) - return; - - id encoder = GetUploadEncoder(); - [encoder copyFromBuffer:buffer.cpubuffer - sourceOffset:buffer.last_upload - toBuffer:buffer.gpubuffer - destinationOffset:buffer.last_upload - size:buffer.usage.Pos() - buffer.last_upload]; - buffer.last_upload = buffer.usage.Pos(); -} - // MARK: Render Pass / Encoder Management -id Metal::StateTracker::GetUploadEncoder() -{ - if (!m_upload_cmdbuf) - { - @autoreleasepool - { - m_upload_cmdbuf = MRCRetain([g_queue commandBuffer]); - [m_upload_cmdbuf setLabel:@"Vertex Upload"]; - m_upload_encoder = MRCRetain([m_upload_cmdbuf blitCommandEncoder]); - [m_upload_encoder setLabel:@"Vertex Upload"]; - } - } - return m_upload_encoder; -} - id Metal::StateTracker::GetTextureUploadEncoder() { if (!m_texture_upload_cmdbuf) @@ -349,8 +269,6 @@ void Metal::StateTracker::BeginRenderPass(MTLRenderPassDescriptor* descriptor) MRCRetain([GetRenderCmdBuf() renderCommandEncoderWithDescriptor:descriptor]); if (m_current_perf_query) [descriptor setVisibilityResultBuffer:nil]; - if (!g_features.unified_memory) - [m_current_render_encoder waitForFence:m_fence beforeStages:MTLRenderStageVertex]; AbstractTexture* attachment = m_current_framebuffer->GetColorAttachment(); if (!attachment) attachment = m_current_framebuffer->GetDepthAttachment(); @@ -380,8 +298,6 @@ void Metal::StateTracker::BeginComputePass() EndRenderPass(); m_current_compute_encoder = MRCRetain([GetRenderCmdBuf() computeCommandEncoder]); [m_current_compute_encoder setLabel:@"Compute"]; - if (!g_features.unified_memory) - [m_current_compute_encoder waitForFence:m_fence]; m_flags.NewEncoder(); m_dirty_samplers = 0xff; m_dirty_textures = 0xff; @@ -409,20 +325,6 @@ void Metal::StateTracker::FlushEncoders() if (!m_current_render_cmdbuf) return; EndRenderPass(); - for (int i = 0; i <= static_cast(UploadBuffer::Last); ++i) - Sync(m_upload_buffers[i]); - if (g_features.unified_memory) - { - ASSERT(!m_upload_cmdbuf && "Should never be used!"); - } - else if (m_upload_cmdbuf) - { - [m_upload_encoder updateFence:m_fence]; - [m_upload_encoder endEncoding]; - [m_upload_cmdbuf commit]; - m_upload_encoder = nullptr; - m_upload_cmdbuf = nullptr; - } if (m_texture_upload_cmdbuf) { [m_texture_upload_encoder endEncoding]; diff --git a/Source/Core/VideoBackends/Metal/MTLTexture.mm b/Source/Core/VideoBackends/Metal/MTLTexture.mm index 67c114caa7..fd0358e10e 100644 --- a/Source/Core/VideoBackends/Metal/MTLTexture.mm +++ b/Source/Core/VideoBackends/Metal/MTLTexture.mm @@ -59,7 +59,8 @@ void Metal::Texture::Load(u32 level, u32 width, u32 height, u32 row_length, // const u32 num_rows = Common::AlignUp(height, block_size) / block_size; const u32 source_pitch = CalculateStrideForFormat(m_config.format, row_length); const u32 upload_size = source_pitch * num_rows; - StateTracker::Map map = g_state_tracker->AllocateForTextureUpload(upload_size); + StateTracker::Map map = g_state_tracker->Allocate(StateTracker::UploadBuffer::TextureData, + upload_size, StateTracker::AlignMask::Other); memcpy(map.cpu_buffer, buffer, upload_size); id encoder = g_state_tracker->GetTextureUploadEncoder(); [encoder copyFromBuffer:map.gpu_buffer diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.h b/Source/Core/VideoBackends/Metal/MTLUtil.h index 385f508648..dfedecd7c6 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.h +++ b/Source/Core/VideoBackends/Metal/MTLUtil.h @@ -16,7 +16,6 @@ namespace Metal { struct DeviceFeatures { - bool unified_memory; bool subgroup_ops; }; diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index 85ac96b342..50916a38e3 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -211,14 +211,6 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id config->backend_info.AAModes.push_back(i); } - // The unified memory path (using shared buffers for everything) performs noticeably better with - // bbox even on discrete GPUs (20fps vs 15fps in Super Paper Mario elevator), so default to that. - // The separate buffer + manual upload path is left available for testing and comparison. - if (char* env = getenv("MTL_UNIFIED_MEMORY")) - g_features.unified_memory = env[0] == '1' || env[0] == 'y' || env[0] == 'Y'; - else - g_features.unified_memory = true; - g_features.subgroup_ops = false; if (@available(macOS 10.15, iOS 13, *)) { From 6559c6b8ee8d35694282f3dcfaf09f96f73874db Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Thu, 21 Jul 2022 20:10:10 -0500 Subject: [PATCH 435/659] VideoBackends:Multiple: Grammar fixes --- Source/Core/VideoBackends/Metal/MTLRenderer.mm | 2 +- Source/Core/VideoBackends/Vulkan/VKRenderer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoBackends/Metal/MTLRenderer.mm b/Source/Core/VideoBackends/Metal/MTLRenderer.mm index e8e033c8aa..3639b01241 100644 --- a/Source/Core/VideoBackends/Metal/MTLRenderer.mm +++ b/Source/Core/VideoBackends/Metal/MTLRenderer.mm @@ -301,7 +301,7 @@ void Metal::Renderer::ClearScreen(const MathUtil::Rectangle& rc, bool color bpmem.zcontrol.pixel_format == PixelFormat::RGB8_Z24 || bpmem.zcontrol.pixel_format == PixelFormat::Z24) { - // Force alpha writes, and clear the alpha channel. This is different to the other backends, + // Force alpha writes, and clear the alpha channel. This is different from the other backends, // where the existing values of the alpha channel are preserved. alpha_enable = true; color &= 0x00FFFFFF; diff --git a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp index 36fa325ae7..23dba4613b 100644 --- a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp @@ -155,7 +155,7 @@ void Renderer::ClearScreen(const MathUtil::Rectangle& rc, bool color_enable bpmem.zcontrol.pixel_format == PixelFormat::RGB8_Z24 || bpmem.zcontrol.pixel_format == PixelFormat::Z24) { - // Force alpha writes, and clear the alpha channel. This is different to the other backends, + // Force alpha writes, and clear the alpha channel. This is different from the other backends, // where the existing values of the alpha channel are preserved. alpha_enable = true; color &= 0x00FFFFFF; From b76f4dd5f81e786bc68150369e377d040aed12d3 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Jul 2022 17:27:37 -0700 Subject: [PATCH 436/659] ProcessorInterface: Remove unused fields --- Source/Core/Core/HW/ProcessorInterface.cpp | 19 +++++-------------- Source/Core/Core/State.cpp | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/Source/Core/Core/HW/ProcessorInterface.cpp b/Source/Core/Core/HW/ProcessorInterface.cpp index 795a169205..bc0321c2dd 100644 --- a/Source/Core/Core/HW/ProcessorInterface.cpp +++ b/Source/Core/Core/HW/ProcessorInterface.cpp @@ -22,6 +22,10 @@ namespace ProcessorInterface { +constexpr u32 FLIPPER_REV_A = 0x046500B0; +constexpr u32 FLIPPER_REV_B = 0x146500B1; +constexpr u32 FLIPPER_REV_C = 0x246500B1; + // STATE_TO_SAVE u32 m_InterruptCause; u32 m_InterruptMask; @@ -30,10 +34,7 @@ u32 Fifo_CPUBase; u32 Fifo_CPUEnd; u32 Fifo_CPUWritePointer; -static u32 m_Fifo_Reset; static u32 m_ResetCode; -static u32 m_FlipperRev; -static u32 m_Unknown; // ID and callback for scheduling reset button presses/releases static CoreTiming::EventType* toggleResetButton; @@ -55,10 +56,7 @@ void DoState(PointerWrap& p) p.Do(Fifo_CPUBase); p.Do(Fifo_CPUEnd); p.Do(Fifo_CPUWritePointer); - p.Do(m_Fifo_Reset); p.Do(m_ResetCode); - p.Do(m_FlipperRev); - p.Do(m_Unknown); } void Init() @@ -69,13 +67,6 @@ void Init() Fifo_CPUBase = 0; Fifo_CPUEnd = 0; Fifo_CPUWritePointer = 0; - /* - Previous Flipper IDs: - 0x046500B0 = A - 0x146500B1 = B - */ - m_FlipperRev = 0x246500B1; // revision C - m_Unknown = 0; m_ResetCode = 0; // Cold reset m_InterruptCause = INT_CAUSE_RST_BUTTON | INT_CAUSE_VI; @@ -131,7 +122,7 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) } })); - mmio->Register(base | PI_FLIPPER_REV, MMIO::DirectRead(&m_FlipperRev), + mmio->Register(base | PI_FLIPPER_REV, MMIO::Constant(FLIPPER_REV_C), MMIO::InvalidWrite()); // 16 bit reads are based on 32 bit reads. diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index bccb56a835..c0ab42a64b 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 145; // Last changed in PR 10879 +constexpr u32 STATE_VERSION = 146; // Last changed in PR 10883 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 1c833ddc3c6c58c18187ae87fb43c62e1c517dc8 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 20 Jul 2022 17:44:49 -0700 Subject: [PATCH 437/659] Create constant for GPFifo physical address --- Source/Core/Core/HW/GPFifo.h | 4 ++++ Source/Core/Core/HW/MMIO.h | 3 ++- .../Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp | 3 ++- Source/Core/Core/PowerPC/MMU.cpp | 5 +++-- Source/UnitTests/Core/MMIOTest.cpp | 5 +++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/HW/GPFifo.h b/Source/Core/Core/HW/GPFifo.h index 2925e82c05..b29b1b9fde 100644 --- a/Source/Core/Core/HW/GPFifo.h +++ b/Source/Core/Core/HW/GPFifo.h @@ -9,6 +9,10 @@ class PointerWrap; namespace GPFifo { +// This address is configurable in the WPAR SPR, but all games put it at this address +// (and presumably the hardware backing this system uses this address). +constexpr u32 GATHER_PIPE_PHYSICAL_ADDRESS = 0x0C008000; + constexpr u32 GATHER_PIPE_SIZE = 32; constexpr u32 GATHER_PIPE_EXTRA_SIZE = GATHER_PIPE_SIZE * 16; diff --git a/Source/Core/Core/HW/MMIO.h b/Source/Core/Core/HW/MMIO.h index d1be58bcfe..92c35bc5f3 100644 --- a/Source/Core/Core/HW/MMIO.h +++ b/Source/Core/Core/HW/MMIO.h @@ -13,6 +13,7 @@ #include "Common/BitUtils.h" #include "Common/CommonTypes.h" #include "Core/ConfigManager.h" +#include "Core/HW/GPFifo.h" #include "Core/HW/MMIOHandlers.h" namespace MMIO @@ -43,7 +44,7 @@ const u32 NUM_MMIOS = NUM_BLOCKS * BLOCK_SIZE; // interface. inline bool IsMMIOAddress(u32 address) { - if (address == 0x0C008000) + if (address == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS) return false; // WG Pipe if ((address & 0xFFFF0000) == 0x0C000000) return true; // GameCube MMIOs diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp b/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp index 04b305ce37..b7da980db3 100644 --- a/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp +++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp @@ -341,7 +341,8 @@ void Interpreter::mtspr(UGeckoInstruction inst) break; case SPR_WPAR: - ASSERT_MSG(POWERPC, rGPR[inst.RD] == 0x0C008000, "Gather pipe @ {:08x}", PC); + ASSERT_MSG(POWERPC, rSPR(SPR_WPAR) == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS, + "Gather pipe changed to unexpected address {:08x} @ PC {:08x}", rSPR(SPR_WPAR), PC); GPFifo::ResetGatherPipe(); break; diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index 6c0867deb6..0ff7ccd88e 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -285,7 +285,8 @@ static void WriteToHardware(u32 em_address, const u32 data, const u32 size) // Check for a gather pipe write. // Note that we must mask the address to correctly emulate certain games; // Pac-Man World 3 in particular is affected by this. - if (flag == XCheckTLBFlag::Write && (em_address & 0xFFFFF000) == 0x0C008000) + if (flag == XCheckTLBFlag::Write && + (em_address & 0xFFFFF000) == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS) { switch (size) { @@ -1086,7 +1087,7 @@ bool IsOptimizableGatherPipeWrite(u32 address) return false; // Check whether the translated address equals the address in WPAR. - return address == 0x0C008000; + return address == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS; } TranslateResult JitCache_TranslateAddress(u32 address) diff --git a/Source/UnitTests/Core/MMIOTest.cpp b/Source/UnitTests/Core/MMIOTest.cpp index 480ba7f7b4..e10ee4e0ce 100644 --- a/Source/UnitTests/Core/MMIOTest.cpp +++ b/Source/UnitTests/Core/MMIOTest.cpp @@ -8,6 +8,7 @@ #include "Common/CommonTypes.h" #include "Common/Config/Config.h" #include "Common/FileUtil.h" +#include "Core/HW/GPFifo.h" #include "Core/HW/MMIO.h" #include "UICommon/UICommon.h" @@ -40,7 +41,7 @@ TEST(IsMMIOAddress, SpecialAddresses) SConfig::GetInstance().bWii = true; // WG Pipe address, should not be handled by MMIO. - EXPECT_FALSE(MMIO::IsMMIOAddress(0x0C008000)); + EXPECT_FALSE(MMIO::IsMMIOAddress(GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS)); // Locked L1 cache allocation. EXPECT_FALSE(MMIO::IsMMIOAddress(0xE0000000)); @@ -52,7 +53,7 @@ TEST(IsMMIOAddress, SpecialAddresses) // addresses. EXPECT_FALSE(MMIO::IsMMIOAddress(0xCC0000E0)); - // And lets check some valid addresses too + // And let's check some valid addresses too EXPECT_TRUE(MMIO::IsMMIOAddress(0x0C0000E0)); // GameCube MMIOs EXPECT_TRUE(MMIO::IsMMIOAddress(0x0D00008C)); // Wii MMIOs EXPECT_TRUE(MMIO::IsMMIOAddress(0x0D800F10)); // Mirror of Wii MMIOs From c06f203e9845d0ab08af2d32a8314062e26d9de3 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 21 Jul 2022 14:18:35 -0700 Subject: [PATCH 438/659] MMU: Clarify masking on gather pipe address --- Source/Core/Core/PowerPC/MMU.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index 0ff7ccd88e..3cd9bde984 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -283,8 +283,15 @@ static void WriteToHardware(u32 em_address, const u32 data, const u32 size) } // Check for a gather pipe write. - // Note that we must mask the address to correctly emulate certain games; - // Pac-Man World 3 in particular is affected by this. + // + // Note that we must mask the address to correctly emulate certain games; Pac-Man World 3 + // in particular is affected by this. (See https://bugs.dolphin-emu.org/issues/8386) + // + // Note that the PowerPC 750CL manual says (in section 9.4.2 Write Gather Pipe Operation on page + // 327): "A noncacheable store to an address with bits 0-26 matching WPAR[GB_ADDR] but with bits + // 27-31 not all zero will result in incorrect data in the buffer." So, it's possible that in some + // cases writes which do not exactly match the masking behave differently, but Pac-Man World 3's + // writes happen to behave correctly. if (flag == XCheckTLBFlag::Write && (em_address & 0xFFFFF000) == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS) { From 97412553f9e888f4bd8c4f01c240437fca696eab Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 21 Jul 2022 15:20:31 -0700 Subject: [PATCH 439/659] Add a more detailed comment about SPR_WPAR's BNE bit --- Source/Core/Core/HW/GPFifo.cpp | 18 ++++++++++++++++-- Source/Core/Core/HW/GPFifo.h | 2 +- .../Interpreter_SystemRegisters.cpp | 13 ++++++++----- Source/Core/Core/PowerPC/MMU.cpp | 12 ++++++------ 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/Source/Core/Core/HW/GPFifo.cpp b/Source/Core/Core/HW/GPFifo.cpp index ef05946c2b..4de989b05b 100644 --- a/Source/Core/Core/HW/GPFifo.cpp +++ b/Source/Core/Core/HW/GPFifo.cpp @@ -56,9 +56,23 @@ void Init() memset(s_gather_pipe, 0, sizeof(s_gather_pipe)); } -bool IsEmpty() +bool IsBNE() { - return GetGatherPipeCount() == 0; + // TODO: It's not clear exactly when the BNE (buffer not empty) bit is set. + // The PPC 750cl manual says in section 2.1.2.12 "Write Pipe Address Register (WPAR)" (page 78): + // "A mfspr WPAR is used to read the BNE bit to check for any outstanding data transfers." + // In section 9.4.2 "Write Gather Pipe Operation" (page 327) it says: + // "Software can check WPAR[BNE] to determine if the buffer is empty or not." + // On page 327, it also says "The only way for software to flush out a partially full 32 byte + // block is to fill up the block with dummy data,." + // On page 328, it says: "Before disabling the write gather pipe, the WPAR[BNE] bit should be + // tested to insure that all outstanding transfers from the buffer to the bus have completed." + // + // GXRedirectWriteGatherPipe and GXRestoreWriteGatherPipe (used for display lists) wait for + // the bit to be 0 before continuing, so it can't be a case of any data existing in the FIFO; + // it might be a case of over 32 bytes being stored pending transfer to memory? For now, always + // return false since that prevents hangs in games that use display lists. + return false; } void ResetGatherPipe() diff --git a/Source/Core/Core/HW/GPFifo.h b/Source/Core/Core/HW/GPFifo.h index b29b1b9fde..4ba023117f 100644 --- a/Source/Core/Core/HW/GPFifo.h +++ b/Source/Core/Core/HW/GPFifo.h @@ -26,7 +26,7 @@ void UpdateGatherPipe(); void CheckGatherPipe(); void FastCheckGatherPipe(); -bool IsEmpty(); +bool IsBNE(); // Write void Write8(u8 value); diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp b/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp index b7da980db3..8699f05b75 100644 --- a/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp +++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp @@ -238,11 +238,14 @@ void Interpreter::mfspr(UGeckoInstruction inst) case SPR_WPAR: { - // TODO: If wpar_empty ever is false, Paper Mario hangs. Strange. - // Maybe WPAR is automatically flushed after a certain amount of time? - bool wpar_empty = true; // GPFifo::IsEmpty(); - if (!wpar_empty) - rSPR(index) |= 1; // BNE = buffer not empty + // The bottom, read-only bit checks if the buffer is not empty. + // GXRedirectWriteGatherPipe and GXRestoreWriteGatherPipe (used for display lists) wait for + // this bit to be cleared before writing to SPR_WPAR again (with a value of 0x0c00800 (aka + // GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS)). + // Currently, we always treat the buffer as not empty, as the exact behavior is unclear + // (and games that use display lists will hang if the bit doesn't eventually become zero). + if (GPFifo::IsBNE()) + rSPR(index) |= 1; else rSPR(index) &= ~1; } diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index 3cd9bde984..301ff55a6b 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -282,16 +282,16 @@ static void WriteToHardware(u32 em_address, const u32 data, const u32 size) wi = translated_addr.wi; } - // Check for a gather pipe write. + // Check for a gather pipe write (which are not implemented through the MMIO system). // // Note that we must mask the address to correctly emulate certain games; Pac-Man World 3 // in particular is affected by this. (See https://bugs.dolphin-emu.org/issues/8386) // - // Note that the PowerPC 750CL manual says (in section 9.4.2 Write Gather Pipe Operation on page - // 327): "A noncacheable store to an address with bits 0-26 matching WPAR[GB_ADDR] but with bits - // 27-31 not all zero will result in incorrect data in the buffer." So, it's possible that in some - // cases writes which do not exactly match the masking behave differently, but Pac-Man World 3's - // writes happen to behave correctly. + // The PowerPC 750CL manual says (in section 9.4.2 Write Gather Pipe Operation on page 327): + // "A noncacheable store to an address with bits 0-26 matching WPAR[GB_ADDR] but with bits 27-31 + // not all zero will result in incorrect data in the buffer." So, it's possible that in some cases + // writes which do not exactly match the masking behave differently, but Pac-Man World 3's writes + // happen to behave correctly. if (flag == XCheckTLBFlag::Write && (em_address & 0xFFFFF000) == GPFifo::GATHER_PIPE_PHYSICAL_ADDRESS) { From 5bbdf7ae154a5da03d66c38855f2b1890a2a3dc8 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 22 Jul 2022 15:07:19 -0700 Subject: [PATCH 440/659] ProcessorInterface: Reset both GPFifo and Fifo on PI_FIFO_RESET Fixes https://bugs.dolphin-emu.org/issues/12981 --- Source/Core/Core/HW/ProcessorInterface.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Core/Core/HW/ProcessorInterface.cpp b/Source/Core/Core/HW/ProcessorInterface.cpp index bc0321c2dd..5e752c13f7 100644 --- a/Source/Core/Core/HW/ProcessorInterface.cpp +++ b/Source/Core/Core/HW/ProcessorInterface.cpp @@ -106,7 +106,10 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) // Used by GXAbortFrame INFO_LOG_FMT(PROCESSORINTERFACE, "Wrote PI_FIFO_RESET: {:08x}", val); if ((val & 1) != 0) + { + GPFifo::ResetGatherPipe(); Fifo::ResetVideoBuffer(); + } })); mmio->Register(base | PI_RESET_CODE, MMIO::ComplexRead([](u32) { From c0cf6f04dd384599aba8ccf57d2b144cab6e7568 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 11:33:03 +0200 Subject: [PATCH 441/659] Android: Add "Broadband Adapter (Built In)" to settings This makes the feature added in 01ada3850f available in the Android GUI. --- .../dolphinemu/features/settings/model/StringSetting.java | 4 ++++ .../features/settings/ui/SettingsFragmentPresenter.java | 7 ++++++- Source/Android/app/src/main/res/values/arrays.xml | 2 ++ Source/Android/app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java index 751d18f90f..4c4a74da84 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java @@ -17,6 +17,10 @@ public enum StringSetting implements AbstractStringSetting MAIN_BBA_MAC(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_MAC", ""), MAIN_BBA_XLINK_IP(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_XLINK_IP", ""), + // Schthack PSO Server - https://schtserv.com/ + MAIN_BBA_BUILTIN_DNS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "BBA_BUILTIN_DNS", + "149.56.167.128"), + MAIN_GFX_BACKEND(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "GFXBackend", NativeLibrary.GetDefaultGraphicsBackendName()), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index ae45cb96ad..dd3fb15506 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -577,12 +577,17 @@ public final class SettingsFragmentPresenter private void addSerialPortSubSettings(ArrayList sl, int serialPort1Type) { - if (serialPort1Type == 10) // XLink Kai + if (serialPort1Type == 10) // Broadband Adapter (XLink Kai) { sl.add(new HyperLinkHeaderSetting(mContext, R.string.xlink_kai_guide_header, 0)); sl.add(new InputStringSetting(mContext, StringSetting.MAIN_BBA_XLINK_IP, R.string.xlink_kai_bba_ip, R.string.xlink_kai_bba_ip_description)); } + else if (serialPort1Type == 12) // Broadband Adapter (Built In) + { + sl.add(new InputStringSetting(mContext, StringSetting.MAIN_BBA_BUILTIN_DNS, + R.string.bba_builtin_dns, R.string.bba_builtin_dns_description)); + } } private void addGcPadSettings(ArrayList sl) diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index ff8050b9cb..edce6273aa 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -102,11 +102,13 @@ Nothing Dummy Broadband Adapter (XLink Kai) + Broadband Adapter (Built In) 255 0 10 + 12 diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index e7b1318b82..e28cc082c0 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -166,6 +166,8 @@ For setup instructions, refer to this page. XLink Kai IP Address/hostname IP address or hostname of device running the XLink Kai client + DNS Server + Use 8.8.8.8 for normal DNS, else enter your custom one Interface From a20d0e31d6ea8b1cb272a4721fefed62eda03bcb Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 16 Jul 2022 12:18:10 +0200 Subject: [PATCH 442/659] Android: Bring SD card settings up to date with DolphinQt --- .../activities/EmulationActivity.java | 32 ++++++++++++------- .../settings/model/BooleanSetting.java | 2 ++ .../settings/model/StringSetting.java | 5 ++- .../ui/SettingsFragmentPresenter.java | 27 ++++++++++++++-- .../dolphinemu/dolphinemu/utils/WiiUtils.java | 4 +++ .../app/src/main/res/values/strings.xml | 12 ++++++- Source/Android/jni/WiiUtils.cpp | 15 +++++++++ 7 files changed, 82 insertions(+), 15 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index c320106f2f..2f4e465c11 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -187,16 +187,11 @@ public final class EmulationActivity extends AppCompatActivity { new AfterDirectoryInitializationRunner().runWithLifecycle(activity, true, () -> { - if (FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DEFAULT_ISO) && - FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_FS_PATH) && - FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DUMP_PATH) && - FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_LOAD_PATH) && - FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_RESOURCEPACK_PATH) && - FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_SD_PATH)) - { - continueCallback.run(); - } - else + if (!FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DEFAULT_ISO) || + !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_FS_PATH) || + !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_DUMP_PATH) || + !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_LOAD_PATH) || + !FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_RESOURCEPACK_PATH)) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setMessage(R.string.unavailable_paths); @@ -206,10 +201,25 @@ public final class EmulationActivity extends AppCompatActivity continueCallback.run()); builder.show(); } + else if (!FileBrowserHelper.isPathEmptyOrValid(StringSetting.MAIN_WII_SD_CARD_IMAGE_PATH) || + !FileBrowserHelper.isPathEmptyOrValid( + StringSetting.MAIN_WII_SD_CARD_SYNC_FOLDER_PATH)) + { + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + builder.setMessage(R.string.unavailable_paths); + builder.setPositiveButton(R.string.yes, (dialogInterface, i) -> + SettingsActivity.launch(activity, MenuTag.CONFIG_WII)); + builder.setNeutralButton(R.string.continue_anyway, (dialogInterface, i) -> + continueCallback.run()); + builder.show(); + } + else + { + continueCallback.run(); + } }); } - public static void launchSystemMenu(FragmentActivity activity) { if (sIgnoreLaunchRequests) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java index b6e63895a3..b16bd40f25 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java @@ -27,6 +27,8 @@ public enum BooleanSetting implements AbstractBooleanSetting MAIN_SIMULATE_KONGA_2(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SimulateKonga2", false), MAIN_SIMULATE_KONGA_3(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SimulateKonga3", false), MAIN_WII_SD_CARD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCard", true), + MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, + "WiiSDCardEnableFolderSync", false), MAIN_WIIMOTE_CONTINUOUS_SCANNING(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiimoteContinuousScanning", false), MAIN_WIIMOTE_ENABLE_SPEAKER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java index 5cb9127a58..0fac3fee03 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/StringSetting.java @@ -21,7 +21,10 @@ public enum StringSetting implements AbstractStringSetting MAIN_RESOURCEPACK_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "ResourcePackPath", ""), MAIN_FS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "NANDRootPath", ""), - MAIN_SD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath", ""), + MAIN_WII_SD_CARD_IMAGE_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath", + ""), + MAIN_WII_SD_CARD_SYNC_FOLDER_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, + "WiiSDCardSyncFolder", ""), MAIN_WFS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WFSPath", ""), GFX_ENHANCE_POST_SHADER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index 83ae49b2d4..234b0a8e34 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -39,7 +39,10 @@ import org.dolphinemu.dolphinemu.features.settings.model.view.StringSingleChoice import org.dolphinemu.dolphinemu.features.settings.model.view.SubmenuSetting; import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile; import org.dolphinemu.dolphinemu.ui.main.MainPresenter; +import org.dolphinemu.dolphinemu.utils.BooleanSupplier; import org.dolphinemu.dolphinemu.utils.EGLHelper; +import org.dolphinemu.dolphinemu.utils.ThreadUtil; +import org.dolphinemu.dolphinemu.utils.WiiUtils; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -411,8 +414,6 @@ public final class SettingsFragmentPresenter MainPresenter.REQUEST_DIRECTORY, "/Load")); sl.add(new FilePicker(mContext, StringSetting.MAIN_RESOURCEPACK_PATH, R.string.resource_pack_path, 0, MainPresenter.REQUEST_DIRECTORY, "/ResourcePacks")); - sl.add(new FilePicker(mContext, StringSetting.MAIN_SD_PATH, R.string.SD_card_path, 0, - MainPresenter.REQUEST_SD_FILE, "/Wii/sd.raw")); sl.add(new FilePicker(mContext, StringSetting.MAIN_WFS_PATH, R.string.wfs_path, 0, MainPresenter.REQUEST_DIRECTORY, "/WFS")); } @@ -446,6 +447,21 @@ public final class SettingsFragmentPresenter R.string.insert_sd_card_description)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_ALLOW_SD_WRITES, R.string.wii_sd_card_allow_writes, 0)); + sl.add(new CheckBoxSetting(mContext, BooleanSetting.MAIN_WII_SD_CARD_ENABLE_FOLDER_SYNC, + R.string.wii_sd_card_sync, R.string.wii_sd_card_sync_description)); + // TODO: Hardcoding "Load" here is wrong, because the user may have changed the Load path. + // The code structure makes this hard to fix, and with scoped storage active the Load path + // can't be changed anyway + sl.add(new FilePicker(mContext, StringSetting.MAIN_WII_SD_CARD_IMAGE_PATH, + R.string.wii_sd_card_path, 0, MainPresenter.REQUEST_SD_FILE, "/Load/WiiSD.raw")); + sl.add(new FilePicker(mContext, StringSetting.MAIN_WII_SD_CARD_SYNC_FOLDER_PATH, + R.string.wii_sd_sync_folder, 0, MainPresenter.REQUEST_DIRECTORY, "/Load/WiiSDSync/")); + sl.add(new RunRunnable(mContext, R.string.wii_sd_card_folder_to_file, 0, + R.string.wii_sd_card_folder_to_file_confirmation, 0, + () -> convertOnThread(WiiUtils::syncSdFolderToSdImage))); + sl.add(new RunRunnable(mContext, R.string.wii_sd_card_file_to_folder, 0, + R.string.wii_sd_card_file_to_folder_confirmation, 0, + () -> convertOnThread(WiiUtils::syncSdImageToSdFolder))); sl.add(new HeaderSetting(mContext, R.string.wii_wiimote_settings, 0)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.SYSCONF_WIIMOTE_MOTOR, @@ -1358,4 +1374,11 @@ public final class SettingsFragmentPresenter mView.getAdapter().notifyAllSettingsChanged(); } + + private void convertOnThread(BooleanSupplier f) + { + ThreadUtil.runOnThreadAndShowResult(mView.getActivity(), R.string.wii_converting, 0, () -> + mContext.getResources().getString( + f.get() ? R.string.wii_convert_success : R.string.wii_convert_failure)); + } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java index 44103f7483..fb1d7e90cb 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/WiiUtils.java @@ -33,4 +33,8 @@ public final class WiiUtils public static native boolean isSystemMenuInstalled(); public static native String getSystemMenuVersion(); + + public static native boolean syncSdFolderToSdImage(); + + public static native boolean syncSdImageToSdFolder(); } diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 17e8d1a5e1..3d52eb8c8d 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -145,6 +145,17 @@ Insert SD Card Supports SD and SDHC. Default size is 128 MB. Allow Writes to SD Card + Automatically Sync with Folder + Synchronizes the SD Card with the SD Sync Folder when starting and ending emulation. + SD Card Path + SD Sync Folder + Convert Folder to File Now + You are about to convert the content of the SD sync folder into the SD card file. All current content of the file will be deleted. Are you sure you want to continue? + Convert File to Folder Now + You are about to convert the content of the SD card file into the SD sync folder. All current content of the folder will be deleted. Are you sure you want to continue? + Converting... + Conversion done. + Conversion failed. Wii Remote Rumble Wii Remote Speaker Volume Sensor Bar Sensitivity @@ -212,7 +223,6 @@ Dump Path Load Path Resource Pack Path - SD Card Path WFS Path diff --git a/Source/Android/jni/WiiUtils.cpp b/Source/Android/jni/WiiUtils.cpp index 08e93897e2..e26ac485e9 100644 --- a/Source/Android/jni/WiiUtils.cpp +++ b/Source/Android/jni/WiiUtils.cpp @@ -8,12 +8,15 @@ #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" +#include "Common/FatFsUtil.h" #include "Common/ScopeGuard.h" + #include "Core/CommonTitles.h" #include "Core/HW/WiiSave.h" #include "Core/IOS/ES/ES.h" #include "Core/IOS/IOS.h" #include "Core/WiiUtils.h" + #include "DiscIO/NANDImporter.h" // The hardcoded values here must match WiiUtils.java @@ -175,4 +178,16 @@ Java_org_dolphinemu_dolphinemu_utils_WiiUtils_getSystemMenuVersion(JNIEnv* env, return ToJString(env, DiscIO::GetSysMenuVersionString(tmd.GetTitleVersion())); } + +JNIEXPORT jboolean JNICALL +Java_org_dolphinemu_dolphinemu_utils_WiiUtils_syncSdFolderToSdImage(JNIEnv* env, jclass) +{ + return static_cast(Common::SyncSDFolderToSDImage(false)); +} + +JNIEXPORT jboolean JNICALL +Java_org_dolphinemu_dolphinemu_utils_WiiUtils_syncSdImageToSdFolder(JNIEnv* env, jclass) +{ + return static_cast(Common::SyncSDImageToSDFolder()); +} } From 98e28178024decb67fa6bd844d2188d8c2b5017d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 17:20:57 +0200 Subject: [PATCH 443/659] Android: Add setting for enabling graphics mods --- .../dolphinemu/features/settings/model/BooleanSetting.java | 1 + .../features/settings/ui/SettingsFragmentPresenter.java | 4 +++- Source/Android/app/src/main/res/values/strings.xml | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java index 44ee61ed71..d09aaa75b1 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java @@ -200,6 +200,7 @@ public enum BooleanSetting implements AbstractBooleanSetting "WaitForShadersBeforeStarting", false), GFX_SAVE_TEXTURE_CACHE_TO_STATE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "SaveTextureCacheToState", true), + GFX_MODS_ENABLE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "EnableMods", false), GFX_ENHANCE_FORCE_FILTERING(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS, "ForceFiltering", false), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index 8dda6b64c6..137d2e3dc5 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -756,7 +756,9 @@ public final class SettingsFragmentPresenter private void addAdvancedGraphicsSettings(ArrayList sl) { - sl.add(new HeaderSetting(mContext, R.string.custom_textures, 0)); + sl.add(new HeaderSetting(mContext, R.string.gfx_mods_and_custom_textures, 0)); + sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_MODS_ENABLE, + R.string.gfx_mods, R.string.gfx_mods_description)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_HIRES_TEXTURES, R.string.load_custom_texture, R.string.load_custom_texture_description)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_CACHE_HIRES_TEXTURES, diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 78278fb96b..8ae9374a50 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -319,7 +319,9 @@ This causes a delay when launching games, but will reduce stuttering early on. Advanced - Custom Textures + Graphics Mods and Custom Textures + Graphics Mods + Loads graphics mods from User/Load/GraphicsMods/. Load Custom Textures Loads custom textures from User/Load/Textures/<game_id>/ and User/Load/DynamicInputTextures/<game_id>/. Prefetch Custom Textures From 41a26f76fae1e580f99c471dc70ea420f3d598e6 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 14:45:26 +0200 Subject: [PATCH 444/659] Android: Add Cheat.supportsCode method Patches, AR codes and Gecko codes have an associated code that the GUI can show, but graphics mods don't. --- .../dolphinemu/features/cheats/model/AbstractCheat.java | 5 +++++ .../dolphinemu/dolphinemu/features/cheats/model/Cheat.java | 7 ++++++- .../features/cheats/ui/CheatDetailsFragment.java | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java index 9a86d58533..2c33ccc616 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java @@ -9,6 +9,11 @@ public abstract class AbstractCheat implements Cheat { private Runnable mChangedCallback = null; + public boolean supportsCode() + { + return true; + } + public int trySet(@NonNull String name, @NonNull String creator, @NonNull String notes, @NonNull String code) { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java index 75a3befc6f..142931b9cb 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/Cheat.java @@ -17,6 +17,8 @@ public interface Cheat boolean supportsNotes(); + boolean supportsCode(); + @NonNull String getName(); @@ -33,7 +35,10 @@ public interface Cheat } @NonNull - String getCode(); + default String getCode() + { + return ""; + } int trySet(@NonNull String name, @NonNull String creator, @NonNull String notes, @NonNull String code); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java index e5a027f64b..9c207996bb 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatDetailsFragment.java @@ -31,6 +31,7 @@ public class CheatDetailsFragment extends Fragment private EditText mEditCreator; private TextView mLabelNotes; private EditText mEditNotes; + private TextView mLabelCode; private EditText mEditCode; private Button mButtonDelete; private Button mButtonEdit; @@ -59,6 +60,7 @@ public class CheatDetailsFragment extends Fragment mEditCreator = view.findViewById(R.id.edit_creator); mLabelNotes = view.findViewById(R.id.label_notes); mEditNotes = view.findViewById(R.id.edit_notes); + mLabelCode = view.findViewById(R.id.label_code); mEditCode = view.findViewById(R.id.edit_code); mButtonDelete = view.findViewById(R.id.button_delete); mButtonEdit = view.findViewById(R.id.button_edit); @@ -158,10 +160,13 @@ public class CheatDetailsFragment extends Fragment int creatorVisibility = cheat != null && cheat.supportsCreator() ? View.VISIBLE : View.GONE; int notesVisibility = cheat != null && cheat.supportsNotes() ? View.VISIBLE : View.GONE; + int codeVisibility = cheat != null && cheat.supportsCode() ? View.VISIBLE : View.GONE; mLabelCreator.setVisibility(creatorVisibility); mEditCreator.setVisibility(creatorVisibility); mLabelNotes.setVisibility(notesVisibility); mEditNotes.setVisibility(notesVisibility); + mLabelCode.setVisibility(codeVisibility); + mEditCode.setVisibility(codeVisibility); boolean userDefined = cheat != null && cheat.getUserDefined(); mButtonDelete.setEnabled(userDefined); From 45f6d36c4581b37d6b3eff0a8004301d685adf55 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 14:51:18 +0200 Subject: [PATCH 445/659] Android: Split AbstractCheat into ReadOnlyCheat and AbstractCheat ReadOnlyCheat will be used by graphics mods. --- .../features/cheats/model/AbstractCheat.java | 24 +------------ .../features/cheats/model/ReadOnlyCheat.java | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ReadOnlyCheat.java diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java index 2c33ccc616..d672013b4e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/AbstractCheat.java @@ -3,12 +3,9 @@ package org.dolphinemu.dolphinemu.features.cheats.model; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -public abstract class AbstractCheat implements Cheat +public abstract class AbstractCheat extends ReadOnlyCheat { - private Runnable mChangedCallback = null; - public boolean supportsCode() { return true; @@ -43,25 +40,6 @@ public abstract class AbstractCheat implements Cheat return result; } - public void setEnabled(boolean enabled) - { - setEnabledImpl(enabled); - onChanged(); - } - - public void setChangedCallback(@Nullable Runnable callback) - { - mChangedCallback = callback; - } - - protected void onChanged() - { - if (mChangedCallback != null) - mChangedCallback.run(); - } - protected abstract int trySetImpl(@NonNull String name, @NonNull String creator, @NonNull String notes, @NonNull String code); - - protected abstract void setEnabledImpl(boolean enabled); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ReadOnlyCheat.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ReadOnlyCheat.java new file mode 100644 index 0000000000..9751c414f8 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/ReadOnlyCheat.java @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.cheats.model; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public abstract class ReadOnlyCheat implements Cheat +{ + private Runnable mChangedCallback = null; + + public int trySet(@NonNull String name, @NonNull String creator, @NonNull String notes, + @NonNull String code) + { + throw new UnsupportedOperationException(); + } + + public void setEnabled(boolean enabled) + { + setEnabledImpl(enabled); + onChanged(); + } + + public void setChangedCallback(@Nullable Runnable callback) + { + mChangedCallback = callback; + } + + protected void onChanged() + { + if (mChangedCallback != null) + mChangedCallback.run(); + } + + protected abstract void setEnabledImpl(boolean enabled); +} From 6a7aa8f2c6a3a52ab809f4c21ab6ecdeded3c20c Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 17 Jul 2022 18:12:08 -0700 Subject: [PATCH 446/659] Convert CP/XF matrix indices mismatch panic alert to a warning https://bugs.dolphin-emu.org/issues/12977 indicates that this happens on startup of Spider-Man 2, even in single-core. I don't have the game, so I can't directly determine why this is happening, but presumably real hardware does not hang in this case, so we can make it less obtrusive. --- Source/Core/VideoCommon/VertexLoaderManager.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp index f3fc4d9e7e..102eb5f94e 100644 --- a/Source/Core/VideoCommon/VertexLoaderManager.cpp +++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp @@ -325,11 +325,11 @@ static void CheckCPConfiguration(int vtx_attr_group) if (g_main_cp_state.matrix_index_a.Hex != xfmem.MatrixIndexA.Hex || g_main_cp_state.matrix_index_b.Hex != xfmem.MatrixIndexB.Hex) { - PanicAlertFmt("Mismatched matrix index configuration between CP and XF stages - " - "index A: {:08x}/{:08x}, index B {:08x}/{:08x}. " - "Please report on the issue tracker.", - g_main_cp_state.matrix_index_a.Hex, xfmem.MatrixIndexA.Hex, - g_main_cp_state.matrix_index_b.Hex, xfmem.MatrixIndexB.Hex); + WARN_LOG_FMT(VIDEO, + "Mismatched matrix index configuration between CP and XF stages - " + "index A: {:08x}/{:08x}, index B {:08x}/{:08x}.", + g_main_cp_state.matrix_index_a.Hex, xfmem.MatrixIndexA.Hex, + g_main_cp_state.matrix_index_b.Hex, xfmem.MatrixIndexB.Hex); DolphinAnalytics::Instance().ReportGameQuirk( GameQuirk::MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF); } From 50d3ad58df017703f90db3bfe70a771172a72ded Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 04:27:28 -0400 Subject: [PATCH 447/659] CMakeLists: Link videometal with Foundation --- Source/Core/VideoBackends/Metal/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/VideoBackends/Metal/CMakeLists.txt b/Source/Core/VideoBackends/Metal/CMakeLists.txt index 744cb2f755..698ed2678b 100644 --- a/Source/Core/VideoBackends/Metal/CMakeLists.txt +++ b/Source/Core/VideoBackends/Metal/CMakeLists.txt @@ -35,6 +35,7 @@ PUBLIC videocommon PRIVATE spirv_cross + ${FOUNDATION_LIBRARY} ${METAL_LIBRARY} ${QUARTZCORE_LIBRARY} ) From 7edd3aff7547db157a984dd890527ea5e526cecf Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 04:28:50 -0400 Subject: [PATCH 448/659] MTLUtil: Don't attempt to get all GPUs on non-macOS platforms --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index 50916a38e3..b6e2babbbd 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -22,12 +22,15 @@ std::vector>> Metal::Util::GetAdapterList() if (default_dev) list.push_back(MRCTransfer(default_dev)); +#if TARGET_OS_OSX auto devices = MRCTransfer(MTLCopyAllDevices()); for (id device in devices.Get()) { if (device != default_dev) list.push_back(MRCRetain(device)); } +#endif + return list; } From 8ad7fa0313ab43cc827f052451e0945203a76d90 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 04:29:19 -0400 Subject: [PATCH 449/659] MTLUtil: Return invalid for non-supported texture formats on non-macOS platforms --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index b6e2babbbd..1ef4a4d85f 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -241,13 +241,17 @@ AbstractTextureFormat Metal::Util::ToAbstract(MTLPixelFormat format) { case MTLPixelFormatRGBA8Unorm: return AbstractTextureFormat::RGBA8; case MTLPixelFormatBGRA8Unorm: return AbstractTextureFormat::BGRA8; +#if TARGET_OS_OSX case MTLPixelFormatBC1_RGBA: return AbstractTextureFormat::DXT1; case MTLPixelFormatBC2_RGBA: return AbstractTextureFormat::DXT3; case MTLPixelFormatBC3_RGBA: return AbstractTextureFormat::DXT5; case MTLPixelFormatBC7_RGBAUnorm: return AbstractTextureFormat::BPTC; +#endif case MTLPixelFormatR16Unorm: return AbstractTextureFormat::R16; case MTLPixelFormatDepth16Unorm: return AbstractTextureFormat::D16; +#if TARGET_OS_OSX case MTLPixelFormatDepth24Unorm_Stencil8: return AbstractTextureFormat::D24_S8; +#endif case MTLPixelFormatR32Float: return AbstractTextureFormat::R32F; case MTLPixelFormatDepth32Float: return AbstractTextureFormat::D32F; case MTLPixelFormatDepth32Float_Stencil8: return AbstractTextureFormat::D32F_S8; @@ -261,17 +265,21 @@ MTLPixelFormat Metal::Util::FromAbstract(AbstractTextureFormat format) { case AbstractTextureFormat::RGBA8: return MTLPixelFormatRGBA8Unorm; case AbstractTextureFormat::BGRA8: return MTLPixelFormatBGRA8Unorm; +#if TARGET_OS_OSX case AbstractTextureFormat::DXT1: return MTLPixelFormatBC1_RGBA; case AbstractTextureFormat::DXT3: return MTLPixelFormatBC2_RGBA; case AbstractTextureFormat::DXT5: return MTLPixelFormatBC3_RGBA; case AbstractTextureFormat::BPTC: return MTLPixelFormatBC7_RGBAUnorm; +#endif case AbstractTextureFormat::R16: return MTLPixelFormatR16Unorm; case AbstractTextureFormat::D16: return MTLPixelFormatDepth16Unorm; +#if TARGET_OS_OSX case AbstractTextureFormat::D24_S8: return MTLPixelFormatDepth24Unorm_Stencil8; +#endif case AbstractTextureFormat::R32F: return MTLPixelFormatR32Float; case AbstractTextureFormat::D32F: return MTLPixelFormatDepth32Float; case AbstractTextureFormat::D32F_S8: return MTLPixelFormatDepth32Float_Stencil8; - case AbstractTextureFormat::Undefined: return MTLPixelFormatInvalid; + default: return MTLPixelFormatInvalid; } } From 8f410bff15e1549a3f54e33ec0f4cf511ebea7df Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 17:14:26 +0200 Subject: [PATCH 450/659] Android: Add graphics mods support to CheatsActivity --- .../cheats/model/CheatsViewModel.java | 24 +++++ .../features/cheats/model/GraphicsMod.java | 61 ++++++++++++ .../cheats/model/GraphicsModGroup.java | 27 ++++++ .../features/cheats/ui/CheatsAdapter.java | 16 +++- .../app/src/main/res/values/strings.xml | 1 + Source/Android/jni/AndroidCommon/IDCache.cpp | 57 ++++++++++++ Source/Android/jni/AndroidCommon/IDCache.h | 8 ++ Source/Android/jni/CMakeLists.txt | 2 + Source/Android/jni/Cheats/GraphicsMod.cpp | 53 +++++++++++ .../Android/jni/Cheats/GraphicsModGroup.cpp | 92 +++++++++++++++++++ .../Config/GraphicsModListWidget.cpp | 17 +--- .../Config/GraphicsModGroup.cpp | 5 + .../Config/GraphicsModGroup.h | 1 + 13 files changed, 349 insertions(+), 15 deletions(-) create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsMod.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup.java create mode 100644 Source/Android/jni/Cheats/GraphicsMod.cpp create mode 100644 Source/Android/jni/Cheats/GraphicsModGroup.cpp diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java index 0238628319..4d9900c168 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/CheatsViewModel.java @@ -24,10 +24,13 @@ public class CheatsViewModel extends ViewModel private final MutableLiveData mGeckoCheatsDownloadedEvent = new MutableLiveData<>(null); private final MutableLiveData mOpenDetailsViewEvent = new MutableLiveData<>(false); + private GraphicsModGroup mGraphicsModGroup; + private ArrayList mGraphicsMods; private ArrayList mPatchCheats; private ArrayList mARCheats; private ArrayList mGeckoCheats; + private boolean mGraphicsModsNeedSaving = false; private boolean mPatchCheatsNeedSaving = false; private boolean mARCheatsNeedSaving = false; private boolean mGeckoCheatsNeedSaving = false; @@ -37,13 +40,23 @@ public class CheatsViewModel extends ViewModel if (mLoaded) return; + mGraphicsModGroup = GraphicsModGroup.load(gameID); + mGraphicsMods = new ArrayList<>(); + Collections.addAll(mGraphicsMods, mGraphicsModGroup.getMods()); + mPatchCheats = new ArrayList<>(); Collections.addAll(mPatchCheats, PatchCheat.loadCodes(gameID, revision)); + mARCheats = new ArrayList<>(); Collections.addAll(mARCheats, ARCheat.loadCodes(gameID, revision)); + mGeckoCheats = new ArrayList<>(); Collections.addAll(mGeckoCheats, GeckoCheat.loadCodes(gameID, revision)); + for (GraphicsMod mod : mGraphicsMods) + { + mod.setChangedCallback(() -> mGraphicsModsNeedSaving = true); + } for (PatchCheat cheat : mPatchCheats) { cheat.setChangedCallback(() -> mPatchCheatsNeedSaving = true); @@ -62,6 +75,12 @@ public class CheatsViewModel extends ViewModel public void saveIfNeeded(String gameID, int revision) { + if (mGraphicsModsNeedSaving) + { + mGraphicsModGroup.save(); + mGraphicsModsNeedSaving = false; + } + if (mPatchCheatsNeedSaving) { PatchCheat.saveCodes(gameID, revision, mPatchCheats.toArray(new PatchCheat[0])); @@ -280,6 +299,11 @@ public class CheatsViewModel extends ViewModel mOpenDetailsViewEvent.setValue(false); } + public ArrayList getGraphicsMods() + { + return mGraphicsMods; + } + public ArrayList getPatchCheats() { return mPatchCheats; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsMod.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsMod.java new file mode 100644 index 0000000000..241d15093f --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsMod.java @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.cheats.model; + +import androidx.annotation.Keep; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class GraphicsMod extends ReadOnlyCheat +{ + @Keep + private final long mPointer; + + // When a C++ GraphicsModGroup object is destroyed, it also destroys the GraphicsMods it owns. + // To avoid getting dangling pointers, we keep a reference to the GraphicsModGroup here. + @Keep + private final GraphicsModGroup mParent; + + @Keep + private GraphicsMod(long pointer, GraphicsModGroup parent) + { + mPointer = pointer; + mParent = parent; + } + + public boolean supportsCreator() + { + return true; + } + + public boolean supportsNotes() + { + return true; + } + + public boolean supportsCode() + { + return false; + } + + @NonNull + public native String getName(); + + @NonNull + public native String getCreator(); + + @NonNull + public native String getNotes(); + + public boolean getUserDefined() + { + // Technically graphics mods can be user defined, but we don't support editing graphics mods + // in the GUI, and editability is what this really controls + return false; + } + + public native boolean getEnabled(); + + @Override + protected native void setEnabledImpl(boolean enabled); +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup.java new file mode 100644 index 0000000000..0cb0a3c456 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup.java @@ -0,0 +1,27 @@ +package org.dolphinemu.dolphinemu.features.cheats.model; + +import androidx.annotation.Keep; +import androidx.annotation.NonNull; + +public class GraphicsModGroup +{ + @Keep + private final long mPointer; + + @Keep + private GraphicsModGroup(long pointer) + { + mPointer = pointer; + } + + @Override + public native void finalize(); + + @NonNull + public native GraphicsMod[] getMods(); + + public native void save(); + + @NonNull + public static native GraphicsModGroup load(String gameId); +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java index ec256cf6e2..e5be47a3f1 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsAdapter.java @@ -13,6 +13,7 @@ import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.features.cheats.model.ARCheat; import org.dolphinemu.dolphinemu.features.cheats.model.CheatsViewModel; import org.dolphinemu.dolphinemu.features.cheats.model.GeckoCheat; +import org.dolphinemu.dolphinemu.features.cheats.model.GraphicsMod; import org.dolphinemu.dolphinemu.features.cheats.model.PatchCheat; import java.util.ArrayList; @@ -90,8 +91,8 @@ public class CheatsAdapter extends RecyclerView.Adapter @Override public int getItemCount() { - return mViewModel.getARCheats().size() + mViewModel.getGeckoCheats().size() + - mViewModel.getPatchCheats().size() + 7; + return mViewModel.getGraphicsMods().size() + mViewModel.getPatchCheats().size() + + mViewModel.getARCheats().size() + mViewModel.getGeckoCheats().size() + 8; } @Override @@ -108,6 +109,17 @@ public class CheatsAdapter extends RecyclerView.Adapter private CheatItem getItemAt(int position) { + // Graphics mods + + if (position == 0) + return new CheatItem(CheatItem.TYPE_HEADER, R.string.cheats_header_graphics_mod); + position -= 1; + + ArrayList graphicsMods = mViewModel.getGraphicsMods(); + if (position < graphicsMods.size()) + return new CheatItem(graphicsMods.get(position)); + position -= graphicsMods.size(); + // Patches if (position == 0) diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 8ae9374a50..7b1d1b7bf4 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -490,6 +490,7 @@ AR Codes Gecko Codes Patches + Graphics Mods Add New AR Code Add New Gecko Code Add New Patch diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp index b125babb81..31511b485c 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.cpp +++ b/Source/Android/jni/AndroidCommon/IDCache.cpp @@ -70,6 +70,14 @@ static jclass s_patch_cheat_class; static jfieldID s_patch_cheat_pointer; static jmethodID s_patch_cheat_constructor; +static jclass s_graphics_mod_group_class; +static jfieldID s_graphics_mod_group_pointer; +static jmethodID s_graphics_mod_group_constructor; + +static jclass s_graphics_mod_class; +static jfieldID s_graphics_mod_pointer; +static jmethodID s_graphics_mod_constructor; + static jclass s_riivolution_patches_class; static jfieldID s_riivolution_patches_pointer; @@ -331,6 +339,36 @@ jmethodID GetPatchCheatConstructor() return s_patch_cheat_constructor; } +jclass GetGraphicsModClass() +{ + return s_graphics_mod_class; +} + +jfieldID GetGraphicsModPointer() +{ + return s_graphics_mod_pointer; +} + +jmethodID GetGraphicsModConstructor() +{ + return s_graphics_mod_constructor; +} + +jclass GetGraphicsModGroupClass() +{ + return s_graphics_mod_group_class; +} + +jfieldID GetGraphicsModGroupPointer() +{ + return s_graphics_mod_group_pointer; +} + +jmethodID GetGraphicsModGroupConstructor() +{ + return s_graphics_mod_group_constructor; +} + jclass GetRiivolutionPatchesClass() { return s_riivolution_patches_class; @@ -480,6 +518,23 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) s_patch_cheat_constructor = env->GetMethodID(patch_cheat_class, "", "(J)V"); env->DeleteLocalRef(patch_cheat_class); + const jclass graphics_mod_group_class = + env->FindClass("org/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup"); + s_graphics_mod_group_class = + reinterpret_cast(env->NewGlobalRef(graphics_mod_group_class)); + s_graphics_mod_group_pointer = env->GetFieldID(graphics_mod_group_class, "mPointer", "J"); + s_graphics_mod_group_constructor = env->GetMethodID(graphics_mod_group_class, "", "(J)V"); + env->DeleteLocalRef(graphics_mod_group_class); + + const jclass graphics_mod_class = + env->FindClass("org/dolphinemu/dolphinemu/features/cheats/model/GraphicsMod"); + s_graphics_mod_class = reinterpret_cast(env->NewGlobalRef(graphics_mod_class)); + s_graphics_mod_pointer = env->GetFieldID(graphics_mod_class, "mPointer", "J"); + s_graphics_mod_constructor = + env->GetMethodID(graphics_mod_class, "", + "(JLorg/dolphinemu/dolphinemu/features/cheats/model/GraphicsModGroup;)V"); + env->DeleteLocalRef(graphics_mod_class); + const jclass riivolution_patches_class = env->FindClass("org/dolphinemu/dolphinemu/features/riivolution/model/RiivolutionPatches"); s_riivolution_patches_class = @@ -516,6 +571,8 @@ JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved) env->DeleteGlobalRef(s_ar_cheat_class); env->DeleteGlobalRef(s_gecko_cheat_class); env->DeleteGlobalRef(s_patch_cheat_class); + env->DeleteGlobalRef(s_graphics_mod_group_class); + env->DeleteGlobalRef(s_graphics_mod_class); env->DeleteGlobalRef(s_riivolution_patches_class); env->DeleteGlobalRef(s_wii_update_cb_class); } diff --git a/Source/Android/jni/AndroidCommon/IDCache.h b/Source/Android/jni/AndroidCommon/IDCache.h index 83eaa85894..58a0aa17bd 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.h +++ b/Source/Android/jni/AndroidCommon/IDCache.h @@ -69,6 +69,14 @@ jclass GetPatchCheatClass(); jfieldID GetPatchCheatPointer(); jmethodID GetPatchCheatConstructor(); +jclass GetGraphicsModGroupClass(); +jfieldID GetGraphicsModGroupPointer(); +jmethodID GetGraphicsModGroupConstructor(); + +jclass GetGraphicsModClass(); +jfieldID GetGraphicsModPointer(); +jmethodID GetGraphicsModConstructor(); + jclass GetRiivolutionPatchesClass(); jfieldID GetRiivolutionPatchesPointer(); diff --git a/Source/Android/jni/CMakeLists.txt b/Source/Android/jni/CMakeLists.txt index 74d9d90e03..146019501e 100644 --- a/Source/Android/jni/CMakeLists.txt +++ b/Source/Android/jni/CMakeLists.txt @@ -2,6 +2,8 @@ add_library(main SHARED Cheats/ARCheat.cpp Cheats/Cheats.h Cheats/GeckoCheat.cpp + Cheats/GraphicsMod.cpp + Cheats/GraphicsModGroup.cpp Cheats/PatchCheat.cpp Config/NativeConfig.cpp Config/PostProcessing.cpp diff --git a/Source/Android/jni/Cheats/GraphicsMod.cpp b/Source/Android/jni/Cheats/GraphicsMod.cpp new file mode 100644 index 0000000000..627351f546 --- /dev/null +++ b/Source/Android/jni/Cheats/GraphicsMod.cpp @@ -0,0 +1,53 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include + +#include + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "jni/AndroidCommon/AndroidCommon.h" +#include "jni/AndroidCommon/IDCache.h" + +static GraphicsModConfig* GetPointer(JNIEnv* env, jobject obj) +{ + return reinterpret_cast( + env->GetLongField(obj, IDCache::GetGraphicsModPointer())); +} + +extern "C" { + +JNIEXPORT jstring JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getName(JNIEnv* env, jobject obj) +{ + return ToJString(env, GetPointer(env, obj)->m_title); +} + +JNIEXPORT jstring JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getCreator(JNIEnv* env, + jobject obj) +{ + return ToJString(env, GetPointer(env, obj)->m_author); +} + +JNIEXPORT jstring JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getNotes(JNIEnv* env, jobject obj) +{ + return ToJString(env, GetPointer(env, obj)->m_description); +} + +JNIEXPORT jboolean JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_getEnabled(JNIEnv* env, + jobject obj) +{ + return static_cast(GetPointer(env, obj)->m_enabled); +} + +JNIEXPORT void JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsMod_setEnabledImpl(JNIEnv* env, + jobject obj, + jboolean enabled) +{ + GetPointer(env, obj)->m_enabled = static_cast(enabled); +} +} diff --git a/Source/Android/jni/Cheats/GraphicsModGroup.cpp b/Source/Android/jni/Cheats/GraphicsModGroup.cpp new file mode 100644 index 0000000000..e7a9329b53 --- /dev/null +++ b/Source/Android/jni/Cheats/GraphicsModGroup.cpp @@ -0,0 +1,92 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include + +#include +#include + +#include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" +#include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" +#include "jni/AndroidCommon/AndroidCommon.h" +#include "jni/AndroidCommon/IDCache.h" + +static GraphicsModGroupConfig* GetPointer(JNIEnv* env, jobject obj) +{ + return reinterpret_cast( + env->GetLongField(obj, IDCache::GetGraphicsModGroupPointer())); +} + +jobject GraphicsModToJava(JNIEnv* env, GraphicsModConfig* mod, jobject jGraphicsModGroup) +{ + return env->NewObject(IDCache::GetGraphicsModClass(), IDCache::GetGraphicsModConstructor(), + reinterpret_cast(mod), jGraphicsModGroup); +} + +extern "C" { + +JNIEXPORT void JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_finalize(JNIEnv* env, + jobject obj) +{ + delete GetPointer(env, obj); +} + +JNIEXPORT jobjectArray JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_getMods(JNIEnv* env, + jobject obj) +{ + GraphicsModGroupConfig* mod_group = GetPointer(env, obj); + + std::set groups; + + for (const GraphicsModConfig& mod : mod_group->GetMods()) + { + for (const GraphicsTargetGroupConfig& group : mod.m_groups) + groups.insert(group.m_name); + } + + std::vector mods; + + for (GraphicsModConfig& mod : mod_group->GetMods()) + { + // If no group matches the mod's features, or if the mod has no features, skip it + if (std::none_of(mod.m_features.begin(), mod.m_features.end(), + [&groups](const GraphicsModFeatureConfig& feature) { + return groups.count(feature.m_group) == 1; + })) + { + continue; + } + + mods.push_back(&mod); + } + + const jobjectArray array = + env->NewObjectArray(static_cast(mods.size()), IDCache::GetGraphicsModClass(), nullptr); + + jsize i = 0; + for (GraphicsModConfig* mod : mods) + env->SetObjectArrayElement(array, i++, GraphicsModToJava(env, mod, obj)); + + return array; +} + +JNIEXPORT void JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_save(JNIEnv* env, jobject obj) +{ + GetPointer(env, obj)->Save(); +} + +JNIEXPORT jobject JNICALL +Java_org_dolphinemu_dolphinemu_features_cheats_model_GraphicsModGroup_load(JNIEnv* env, jclass, + jstring jGameId) +{ + auto* mod_group = new GraphicsModGroupConfig(GetJString(env, jGameId)); + + mod_group->Load(); + + return env->NewObject(IDCache::GetGraphicsModGroupClass(), + IDCache::GetGraphicsModGroupConstructor(), mod_group); +} +} diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp index cb9569d1d1..ac01158b2f 100644 --- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp +++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp @@ -120,24 +120,15 @@ void GraphicsModListWidget::RefreshModList() std::set groups; - for (const auto& mod : m_mod_group.GetMods()) + for (const GraphicsModConfig& mod : m_mod_group.GetMods()) { - if (mod.m_groups.empty()) - continue; - - for (const auto& group : mod.m_groups) - { + for (const GraphicsTargetGroupConfig& group : mod.m_groups) groups.insert(group.m_name); - } } - for (const auto& mod : m_mod_group.GetMods()) + for (const GraphicsModConfig& mod : m_mod_group.GetMods()) { - // Group only mods shouldn't be shown - if (mod.m_features.empty()) - continue; - - // If the group doesn't exist in the available mod's features, skip + // If no group matches the mod's features, or if the mod has no features, skip it if (std::none_of(mod.m_features.begin(), mod.m_features.end(), [&groups](const GraphicsModFeatureConfig& feature) { return groups.count(feature.m_group) == 1; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp index 0d1ae30fb6..40685dff1b 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp @@ -168,6 +168,11 @@ const std::vector& GraphicsModGroupConfig::GetMods() const return m_graphics_mods; } +std::vector& GraphicsModGroupConfig::GetMods() +{ + return m_graphics_mods; +} + GraphicsModConfig* GraphicsModGroupConfig::GetMod(const std::string& absolute_path) const { if (const auto iter = m_path_to_graphics_mod.find(absolute_path); diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h index ace5127c58..721c8e5c2c 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h @@ -32,6 +32,7 @@ public: u32 GetChangeCount() const; const std::vector& GetMods() const; + std::vector& GetMods(); GraphicsModConfig* GetMod(const std::string& absolute_path) const; From 3bd2bca38508965348bff45e4a77baa945abf33d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 23 Jul 2022 17:38:32 +0200 Subject: [PATCH 451/659] Android: Add warning if graphics mods are not enabled --- .../ui/CheatsDisabledWarningFragment.java | 16 ++++++++++++ .../GraphicsModsDisabledWarningFragment.java | 16 ++++++++++++ ...va => SettingDisabledWarningFragment.java} | 25 ++++++++++++++++--- .../main/res/layout/fragment_cheat_list.xml | 16 +++++++++--- .../res/layout/fragment_cheat_warning.xml | 3 ++- .../app/src/main/res/values/strings.xml | 1 + 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsDisabledWarningFragment.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/GraphicsModsDisabledWarningFragment.java rename Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/{CheatWarningFragment.java => SettingDisabledWarningFragment.java} (68%) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsDisabledWarningFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsDisabledWarningFragment.java new file mode 100644 index 0000000000..f2dfd7b341 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatsDisabledWarningFragment.java @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.cheats.ui; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; +import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag; + +public class CheatsDisabledWarningFragment extends SettingDisabledWarningFragment +{ + public CheatsDisabledWarningFragment() + { + super(BooleanSetting.MAIN_ENABLE_CHEATS, MenuTag.CONFIG_GENERAL, + R.string.cheats_disabled_warning); + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/GraphicsModsDisabledWarningFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/GraphicsModsDisabledWarningFragment.java new file mode 100644 index 0000000000..eaf26f094b --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/GraphicsModsDisabledWarningFragment.java @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.features.cheats.ui; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; +import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag; + +public class GraphicsModsDisabledWarningFragment extends SettingDisabledWarningFragment +{ + public GraphicsModsDisabledWarningFragment() + { + super(BooleanSetting.GFX_MODS_ENABLE, MenuTag.ADVANCED_GRAPHICS, + R.string.gfx_mods_disabled_warning); + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatWarningFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/SettingDisabledWarningFragment.java similarity index 68% rename from Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatWarningFragment.java rename to Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/SettingDisabledWarningFragment.java index df6d9d94b0..c239c5c9af 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/CheatWarningFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/cheats/ui/SettingDisabledWarningFragment.java @@ -7,21 +7,35 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import org.dolphinemu.dolphinemu.R; -import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; +import org.dolphinemu.dolphinemu.features.settings.model.AbstractBooleanSetting; import org.dolphinemu.dolphinemu.features.settings.model.Settings; import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag; import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity; -public class CheatWarningFragment extends Fragment implements View.OnClickListener +public abstract class SettingDisabledWarningFragment extends Fragment + implements View.OnClickListener { private View mView; + private final AbstractBooleanSetting mSetting; + private final MenuTag mSettingShortcut; + private final int mText; + + public SettingDisabledWarningFragment(AbstractBooleanSetting setting, MenuTag settingShortcut, + int text) + { + mSetting = setting; + mSettingShortcut = settingShortcut; + mText = text; + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @@ -35,6 +49,9 @@ public class CheatWarningFragment extends Fragment implements View.OnClickListen { mView = view; + TextView textView = view.findViewById(R.id.text_warning); + textView.setText(mText); + Button settingsButton = view.findViewById(R.id.button_settings); settingsButton.setOnClickListener(this); @@ -51,13 +68,13 @@ public class CheatWarningFragment extends Fragment implements View.OnClickListen CheatsActivity activity = (CheatsActivity) requireActivity(); try (Settings settings = activity.loadGameSpecificSettings()) { - boolean cheatsEnabled = BooleanSetting.MAIN_ENABLE_CHEATS.getBoolean(settings); + boolean cheatsEnabled = mSetting.getBoolean(settings); mView.setVisibility(cheatsEnabled ? View.GONE : View.VISIBLE); } } public void onClick(View view) { - SettingsActivity.launch(requireContext(), MenuTag.CONFIG_GENERAL); + SettingsActivity.launch(requireContext(), mSettingShortcut); } } diff --git a/Source/Android/app/src/main/res/layout/fragment_cheat_list.xml b/Source/Android/app/src/main/res/layout/fragment_cheat_list.xml index 9c976ac408..ad8ec880af 100644 --- a/Source/Android/app/src/main/res/layout/fragment_cheat_list.xml +++ b/Source/Android/app/src/main/res/layout/fragment_cheat_list.xml @@ -6,13 +6,23 @@ android:layout_height="match_parent"> + + diff --git a/Source/Android/app/src/main/res/layout/fragment_cheat_warning.xml b/Source/Android/app/src/main/res/layout/fragment_cheat_warning.xml index d56a1160b6..6ed47961e2 100644 --- a/Source/Android/app/src/main/res/layout/fragment_cheat_warning.xml +++ b/Source/Android/app/src/main/res/layout/fragment_cheat_warning.xml @@ -1,5 +1,6 @@ File contained no codes. Downloaded %1$d codes. (added %2$d) Dolphin\'s cheat system is currently disabled. + Graphics mods are currently disabled. Settings From b32b27ae9a4ab7e76a4ba9c5073d3c33c7b5b1a4 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 04:30:48 -0400 Subject: [PATCH 452/659] MTLMain: Only compile NSView manipulation code on macOS --- Source/Core/VideoBackends/Metal/MTLMain.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Core/VideoBackends/Metal/MTLMain.mm b/Source/Core/VideoBackends/Metal/MTLMain.mm index f294f297f2..18e800e547 100644 --- a/Source/Core/VideoBackends/Metal/MTLMain.mm +++ b/Source/Core/VideoBackends/Metal/MTLMain.mm @@ -3,7 +3,10 @@ #include "VideoBackends/Metal/VideoBackend.h" +#if TARGET_OS_OSX #include +#endif + #include #include @@ -156,6 +159,7 @@ void Metal::VideoBackend::InitBackendInfo() void Metal::VideoBackend::PrepareWindow(WindowSystemInfo& wsi) { +#if TARGET_OS_OSX if (wsi.type != WindowSystemType::MacOS) return; NSView* view = static_cast(wsi.render_surface); @@ -163,4 +167,5 @@ void Metal::VideoBackend::PrepareWindow(WindowSystemInfo& wsi) [view setWantsLayer:YES]; [view setLayer:layer]; wsi.render_surface = layer; +#endif } From 77f44f1600e0ff42795ed4998ec07dd870efc250 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 14:22:44 -0400 Subject: [PATCH 453/659] MTLMain: Include TargetConditionals --- Source/Core/VideoBackends/Metal/MTLMain.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Core/VideoBackends/Metal/MTLMain.mm b/Source/Core/VideoBackends/Metal/MTLMain.mm index 18e800e547..15cce280b0 100644 --- a/Source/Core/VideoBackends/Metal/MTLMain.mm +++ b/Source/Core/VideoBackends/Metal/MTLMain.mm @@ -3,6 +3,9 @@ #include "VideoBackends/Metal/VideoBackend.h" +// This must be included before we use any TARGET_OS_* macros. +#include + #if TARGET_OS_OSX #include #endif From 700162b8bdeb36ab66363aabab8a0e50e5542fca Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Sat, 23 Jul 2022 14:27:04 -0400 Subject: [PATCH 454/659] MTLUtil: Include TargetConditionals --- Source/Core/VideoBackends/Metal/MTLUtil.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index 1ef4a4d85f..14c83b5c17 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -6,6 +6,7 @@ #include #include +#include #include #include "Common/MsgHandler.h" From 1a78d5b9e783bbd19022626d2985c09d22e3af86 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 23 Jul 2022 18:19:06 -0700 Subject: [PATCH 455/659] add zlib-ng submodule --- .gitmodules | 3 +++ Externals/zlib-ng/zlib-ng | 1 + 2 files changed, 4 insertions(+) create mode 160000 Externals/zlib-ng/zlib-ng diff --git a/.gitmodules b/.gitmodules index d27084a9a6..d2c7d6a7b6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ url = https://github.com/libsdl-org/SDL.git branch = main shallow = true +[submodule "Externals/zlib-ng/zlib-ng"] + path = Externals/zlib-ng/zlib-ng + url = https://github.com/zlib-ng/zlib-ng.git diff --git a/Externals/zlib-ng/zlib-ng b/Externals/zlib-ng/zlib-ng new file mode 160000 index 0000000000..a406284705 --- /dev/null +++ b/Externals/zlib-ng/zlib-ng @@ -0,0 +1 @@ +Subproject commit a406284705a462939c7a634119884a31b87d6af9 From c3b64012d17d3e8a5ab672eaadbdeb5b4e6180fb Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 23 Jul 2022 22:10:10 -0700 Subject: [PATCH 456/659] replace zlib with zlib-ng since the benefits are so high, don't link with shared zlib --- .gitmodules | 1 + CMakeLists.txt | 14 +- Externals/ExternalsReferenceAll.props | 4 +- Externals/curl/lib/CMakeLists.txt | 2 +- Externals/licenses.md | 4 +- Externals/mGBA/CMakeLists.txt | 3 + Externals/mGBA/mgba.vcxproj | 2 +- Externals/zlib-ng/CMakeLists.txt | 14 + Externals/zlib-ng/zconf.h | 195 ++ Externals/zlib-ng/zlib-ng.vcxproj | 140 ++ Externals/{zlib => zlib-ng}/zlib.h | 759 ++++---- Externals/zlib-ng/zlib_name_mangling.h | 8 + Externals/zlib/CMakeLists.txt | 95 - Externals/zlib/ChangeLog | 1515 --------------- Externals/zlib/adler32.c | 186 -- Externals/zlib/compress.c | 86 - Externals/zlib/crc32.c | 442 ----- Externals/zlib/crc32.h | 441 ----- Externals/zlib/deflate.c | 2163 --------------------- Externals/zlib/deflate.h | 349 ---- Externals/zlib/gzclose.c | 25 - Externals/zlib/gzguts.h | 218 --- Externals/zlib/gzlib.c | 637 ------ Externals/zlib/gzread.c | 654 ------- Externals/zlib/gzwrite.c | 665 ------- Externals/zlib/infback.c | 640 ------ Externals/zlib/inffast.c | 323 --- Externals/zlib/inffast.h | 11 - Externals/zlib/inffixed.h | 94 - Externals/zlib/inflate.c | 1561 --------------- Externals/zlib/inflate.h | 125 -- Externals/zlib/inftrees.c | 304 --- Externals/zlib/inftrees.h | 62 - Externals/zlib/trees.c | 1203 ------------ Externals/zlib/trees.h | 128 -- Externals/zlib/uncompr.c | 93 - Externals/zlib/zconf.h | 534 ----- Externals/zlib/zlib.vcxproj | 57 - Externals/zlib/zutil.c | 325 ---- Externals/zlib/zutil.h | 271 --- Source/Core/WinUpdater/WinUpdater.vcxproj | 4 +- Source/VSProps/Base.props | 2 +- Source/dolphin-emu.sln | 20 +- 43 files changed, 736 insertions(+), 13643 deletions(-) create mode 100644 Externals/zlib-ng/CMakeLists.txt create mode 100644 Externals/zlib-ng/zconf.h create mode 100644 Externals/zlib-ng/zlib-ng.vcxproj rename Externals/{zlib => zlib-ng}/zlib.h (74%) create mode 100644 Externals/zlib-ng/zlib_name_mangling.h delete mode 100644 Externals/zlib/CMakeLists.txt delete mode 100644 Externals/zlib/ChangeLog delete mode 100644 Externals/zlib/adler32.c delete mode 100644 Externals/zlib/compress.c delete mode 100644 Externals/zlib/crc32.c delete mode 100644 Externals/zlib/crc32.h delete mode 100644 Externals/zlib/deflate.c delete mode 100644 Externals/zlib/deflate.h delete mode 100644 Externals/zlib/gzclose.c delete mode 100644 Externals/zlib/gzguts.h delete mode 100644 Externals/zlib/gzlib.c delete mode 100644 Externals/zlib/gzread.c delete mode 100644 Externals/zlib/gzwrite.c delete mode 100644 Externals/zlib/infback.c delete mode 100644 Externals/zlib/inffast.c delete mode 100644 Externals/zlib/inffast.h delete mode 100644 Externals/zlib/inffixed.h delete mode 100644 Externals/zlib/inflate.c delete mode 100644 Externals/zlib/inflate.h delete mode 100644 Externals/zlib/inftrees.c delete mode 100644 Externals/zlib/inftrees.h delete mode 100644 Externals/zlib/trees.c delete mode 100644 Externals/zlib/trees.h delete mode 100644 Externals/zlib/uncompr.c delete mode 100644 Externals/zlib/zconf.h delete mode 100644 Externals/zlib/zlib.vcxproj delete mode 100644 Externals/zlib/zutil.c delete mode 100644 Externals/zlib/zutil.h diff --git a/.gitmodules b/.gitmodules index d2c7d6a7b6..546f12290f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,4 @@ [submodule "Externals/zlib-ng/zlib-ng"] path = Externals/zlib-ng/zlib-ng url = https://github.com/zlib-ng/zlib-ng.git + shallow = true diff --git a/CMakeLists.txt b/CMakeLists.txt index 91f41c2942..c5edc551e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,10 @@ ######################################## # General setup # -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.13) + +cmake_policy(SET CMP0079 NEW) # let target_link_libraries() link to a target defined in a different directory +cmake_policy(SET CMP0080 OLD) # allow using BundleUtilities at configure time # Weird chicken-and-egg problem: We can't check the compiler before the project() call, but we have to set the policies before it. # So we do this in two steps: Set the policies if they exist, then error out afterwards if we end up being MSVC and they don't exist. @@ -782,14 +785,7 @@ else() add_subdirectory(Externals/zstd) endif() -find_package(ZLIB) -if(ZLIB_FOUND) - message(STATUS "Using shared zlib") -else() - check_vendoring_approved(zlib) - message(STATUS "Shared zlib not found, falling back to the static library") - add_subdirectory(Externals/zlib) -endif() +add_subdirectory(Externals/zlib-ng) pkg_check_modules(MINIZIP minizip-ng>=3.0.0) if(MINIZIP_FOUND) diff --git a/Externals/ExternalsReferenceAll.props b/Externals/ExternalsReferenceAll.props index 89ea6a4680..22934381c2 100644 --- a/Externals/ExternalsReferenceAll.props +++ b/Externals/ExternalsReferenceAll.props @@ -91,8 +91,8 @@ {677ea016-1182-440c-9345-dc88d1e98c0c} - - {ff213b23-2c26-4214-9f88-85271e557e87} + + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} {1bea10f3-80ce-4bc4-9331-5769372cdf99} diff --git a/Externals/curl/lib/CMakeLists.txt b/Externals/curl/lib/CMakeLists.txt index d2900d22d0..dff7a63171 100644 --- a/Externals/curl/lib/CMakeLists.txt +++ b/Externals/curl/lib/CMakeLists.txt @@ -14,5 +14,5 @@ add_library( ) dolphin_disable_warnings_msvc(curl) -target_link_libraries(curl ${MBEDTLS_LIBRARIES} z) +target_link_libraries(curl ${MBEDTLS_LIBRARIES} zlibstatic) target_compile_definitions(curl PUBLIC CURL_STATICLIB PRIVATE CURL_DISABLE_LDAP) diff --git a/Externals/licenses.md b/Externals/licenses.md index 36377a4801..8a49949866 100644 --- a/Externals/licenses.md +++ b/Externals/licenses.md @@ -74,7 +74,7 @@ Dolphin includes or links code of the following third-party software projects: [MIT](https://github.com/microsoft/wil/blob/master/LICENSE) - [xxHash](https://github.com/Cyan4973/xxHash): [2-clause BSD](https://github.com/Cyan4973/xxHash/blob/master/LICENSE) -- [zlib](http://www.zlib.net/): - [zlib license](http://www.zlib.net/zlib_license.html) +- [zlib-ng](https://github.com/zlib-ng/zlib-ng): + [zlib license](https://github.com/zlib-ng/zlib-ng/blob/develop/LICENSE.md) - [Zstandard](https://facebook.github.io/zstd/): [3-clause BSD](https://github.com/facebook/zstd/blob/dev/LICENSE) or [GPLv2](https://github.com/facebook/zstd/blob/dev/COPYING) diff --git a/Externals/mGBA/CMakeLists.txt b/Externals/mGBA/CMakeLists.txt index edeea5438a..87121b1fa2 100644 --- a/Externals/mGBA/CMakeLists.txt +++ b/Externals/mGBA/CMakeLists.txt @@ -3,6 +3,9 @@ set(USE_LZMA ON) add_subdirectory(mgba EXCLUDE_FROM_ALL) dolphin_disable_warnings_msvc(mgba) +target_compile_definitions(mgba PUBLIC HAVE_CRC32) +target_link_libraries(mgba ZLIB::ZLIB) + if(NOT MSVC) target_compile_options(mgba PRIVATE -Wno-unused-parameter -Wno-unused-result -Wno-unused-variable) endif() diff --git a/Externals/mGBA/mgba.vcxproj b/Externals/mGBA/mgba.vcxproj index edb4d69007..68304b92b8 100644 --- a/Externals/mGBA/mgba.vcxproj +++ b/Externals/mGBA/mgba.vcxproj @@ -18,7 +18,7 @@ mgba\include;mgba\src;mgba\src\third-party\lzma;%(AdditionalIncludeDirectories) - BUILD_STATIC;M_CORE_GB;M_CORE_GBA;USE_LZMA;_7ZIP_PPMD_SUPPPORT;HAVE_STRDUP;HAVE_SETLOCALE;HAVE_CHMOD;HAVE_UMASK;%(PreprocessorDefinitions) + BUILD_STATIC;M_CORE_GB;M_CORE_GBA;USE_LZMA;_7ZIP_PPMD_SUPPPORT;HAVE_STRDUP;HAVE_SETLOCALE;HAVE_CHMOD;HAVE_UMASK;HAVE_CRC32;%(PreprocessorDefinitions) "$(CScript)" /nologo /E:JScript "make_version.c.js" diff --git a/Externals/zlib-ng/CMakeLists.txt b/Externals/zlib-ng/CMakeLists.txt new file mode 100644 index 0000000000..7064ec4c4c --- /dev/null +++ b/Externals/zlib-ng/CMakeLists.txt @@ -0,0 +1,14 @@ +set(ZLIB_ENABLE_TESTS OFF) +set(ZLIB_COMPAT ON) + +option(BUILD_SHARED_LIBS "Build shared library" OFF) + +add_subdirectory(zlib-ng) + +# Set ZLIB variables for find_package used by other projects +set(ZLIB_INCLUDE_DIR ${CMAKE_BINARY_DIR}/zlib-ng CACHE STRING "Path to zlib include directory") +set(ZLIB_LIBRARY ZLIB::ZLIB CACHE STRING "Path to zlib library") + +# Setup zlib alias project so FindZLIB doesn't recreate it +add_library(ZLIB::ZLIB ALIAS zlib) +dolphin_disable_warnings_msvc(zlib) diff --git a/Externals/zlib-ng/zconf.h b/Externals/zlib-ng/zconf.h new file mode 100644 index 0000000000..f3691639ef --- /dev/null +++ b/Externals/zlib-ng/zconf.h @@ -0,0 +1,195 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#ifndef ZCONF_H +#define ZCONF_H + +#include "zlib_name_mangling.h" + +#if !defined(_WIN32) && defined(__WIN32__) +# define _WIN32 +#endif + +/* Clang macro for detecting declspec support + * https://clang.llvm.org/docs/LanguageExtensions.html#has-declspec-attribute + */ +#ifndef __has_declspec_attribute +# define __has_declspec_attribute(x) 0 +#endif + +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# define MAX_MEM_LEVEL 9 +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus about 7 kilobytes + for small objects. +*/ + +/* Type declarations */ + + +#ifndef OF /* function prototypes */ +# define OF(args) args +#endif + +#ifdef ZLIB_INTERNAL +# define Z_INTERNAL ZLIB_INTERNAL +#endif + +/* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +#if defined(ZLIB_DLL) && (defined(_WIN32) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))) +# ifdef Z_INTERNAL +# define Z_EXTERN extern __declspec(dllexport) +# else +# define Z_EXTERN extern __declspec(dllimport) +# endif +#endif + +/* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +#if defined(ZLIB_WINAPI) && defined(_WIN32) +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define Z_EXPORT WINAPI +# define Z_EXPORTVA WINAPIV +#endif + +#ifndef Z_EXTERN +# define Z_EXTERN extern +#endif +#ifndef Z_EXPORT +# define Z_EXPORT +#endif +#ifndef Z_EXPORTVA +# define Z_EXPORTVA +#endif + +/* Conditional exports */ +#define ZNG_CONDEXPORT Z_INTERNAL + +/* For backwards compatibility */ + +#ifndef ZEXTERN +# define ZEXTERN Z_EXTERN +#endif +#ifndef ZEXPORT +# define ZEXPORT Z_EXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA Z_EXPORTVA +#endif + +/* Fallback for something that includes us. */ +typedef unsigned char Byte; +typedef Byte Bytef; + +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +typedef char charf; +typedef int intf; +typedef uInt uIntf; +typedef uLong uLongf; + +typedef void const *voidpc; +typedef void *voidpf; +typedef void *voidp; + +typedef uint32_t z_crc_t; + +#if 0 /* was set to #if 0 by configure/cmake/etc */ +# define Z_HAVE_UNISTD_H +#endif + +#ifdef NEED_PTRDIFF_T /* may be set to #if 1 by configure/cmake/etc */ +typedef PTRDIFF_TYPE ptrdiff_t; +#endif + +#include /* for off_t */ + +#include /* for wchar_t and NULL */ + +/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and + * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even + * though the former does not conform to the LFS document), but considering + * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as + * equivalently requesting no 64-bit operations + */ +#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 +# undef _LARGEFILE64_SOURCE +#endif + +#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) +# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ +# ifndef z_off_t +# define z_off_t off_t +# endif +#endif + +#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 +# define Z_LFS64 +#endif + +#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) +# define Z_LARGE64 +#endif + +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) +# define Z_WANT64 +#endif + +#if !defined(SEEK_SET) +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif + +#ifndef z_off_t +# define z_off_t long +#endif + +#if !defined(_WIN32) && defined(Z_LARGE64) +# define z_off64_t off64_t +#else +# if defined(__MSYS__) +# define z_off64_t _off64_t +# elif defined(_WIN32) && !defined(__GNUC__) +# define z_off64_t __int64 +# else +# define z_off64_t z_off_t +# endif +#endif + +#endif /* ZCONF_H */ diff --git a/Externals/zlib-ng/zlib-ng.vcxproj b/Externals/zlib-ng/zlib-ng.vcxproj new file mode 100644 index 0000000000..1366e1da77 --- /dev/null +++ b/Externals/zlib-ng/zlib-ng.vcxproj @@ -0,0 +1,140 @@ + + + + + + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} + + + + + + + + + + + + + + + .;zlib-ng;%(AdditionalIncludeDirectories) + ZLIB_COMPAT;WITH_GZFILEOP;NO_FSEEKO;%(PreprocessorDefinitions) + X86_FEATURES;X86_AVX2;X86_AVX2_ADLER32;X86_AVX_CHUNKSET;X86_AVX512;X86_AVX512_ADLER32;X86_MASK_INTRIN;X86_AVX512VNNI;X86_AVX512VNNI_ADLER32;X86_SSE41;X86_SSE42_CRC_HASH;X86_SSE42_ADLER32;X86_SSE42_CRC_INTRIN;X86_SSE2;X86_SSE2_CHUNKSET;X86_SSE2_SLIDEHASH;X86_SSSE3;X86_SSSE3_ADLER32;X86_PCLMULQDQ_CRC;X86_VPCLMULQDQ_CRC;%(PreprocessorDefinitions) + + ARM_FEATURES;ARM_NOCHECK_ACLE;ARM_ACLE_CRC_HASH;ARM_NEON;ARM_NEON_ADLER32;ARM_NEON_CHUNKSET;ARM_NEON_SLIDEHASH;__ARM_NEON__;ARM_NEON_HASLD4;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Externals/zlib/zlib.h b/Externals/zlib-ng/zlib.h similarity index 74% rename from Externals/zlib/zlib.h rename to Externals/zlib-ng/zlib.h index f09cdaf1e0..e595aa88de 100644 --- a/Externals/zlib/zlib.h +++ b/Externals/zlib-ng/zlib.h @@ -1,7 +1,9 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 +#ifndef ZLIB_H_ +#define ZLIB_H_ +/* zlib.h -- interface of the 'zlib-ng' compression library + Forked from and compatible with zlib 1.2.12 - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,24 +26,42 @@ The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 + Comments) 1950 to 1952 in the files https://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). */ -#ifndef ZLIB_H -#define ZLIB_H +#ifdef ZNGLIB_H_ +# error Include zlib-ng.h for zlib-ng API or zlib.h for zlib-compat API but not both +#endif + +#ifndef RC_INVOKED +#include +#include #include "zconf.h" +#ifndef ZCONF_H +# error Missing zconf.h add binary output directory to include directories +#endif +#endif /* RC_INVOKED */ + #ifdef __cplusplus extern "C" { #endif -#define ZLIB_VERSION "1.2.11" -#define ZLIB_VERNUM 0x12b0 +#define ZLIBNG_VERSION "2.1.0.devel" +#define ZLIBNG_VERNUM 0x02010000L /* MMNNRRMS: major minor revision status modified */ +#define ZLIBNG_VER_MAJOR 2 +#define ZLIBNG_VER_MINOR 1 +#define ZLIBNG_VER_REVISION 0 +#define ZLIBNG_VER_STATUS 0 /* 0=devel, 1-E=beta, F=Release */ +#define ZLIBNG_VER_MODIFIED 0 /* non-zero if modified externally from zlib-ng */ + +#define ZLIB_VERSION "1.2.12.zlib-ng" +#define ZLIB_VERNUM 0x12cf #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 +#define ZLIB_VER_REVISION 12 #define ZLIB_VER_SUBREVISION 0 /* @@ -78,57 +98,56 @@ extern "C" { even in the case of corrupted input. */ -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); +typedef void *(*alloc_func) (void *opaque, unsigned int items, unsigned int size); +typedef void (*free_func) (void *opaque, void *address); struct internal_state; typedef struct z_stream_s { - z_const Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total number of input bytes read so far */ + z_const unsigned char *next_in; /* next input byte */ + uint32_t avail_in; /* number of bytes available at next_in */ + unsigned long total_in; /* total number of input bytes read so far */ - Bytef *next_out; /* next output byte will go here */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total number of bytes output so far */ + unsigned char *next_out; /* next output byte will go here */ + uint32_t avail_out; /* remaining free space at next_out */ + unsigned long total_out; /* total number of bytes output so far */ - z_const char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ + z_const char *msg; /* last error message, NULL if no error */ + struct internal_state *state; /* not visible by applications */ - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + void *opaque; /* private data object passed to zalloc and zfree */ - int data_type; /* best guess about the data type: binary or text - for deflate, or the decoding state for inflate */ - uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ + int data_type; /* best guess about the data type: binary or text + for deflate, or the decoding state for inflate */ + unsigned long adler; /* Adler-32 or CRC-32 value of the uncompressed data */ + unsigned long reserved; /* reserved for future use */ } z_stream; -typedef z_stream FAR *z_streamp; +typedef z_stream *z_streamp; /* Obsolete type, retained for compatibility only */ /* - gzip header information passed to and from zlib routines. See RFC 1952 + gzip header information passed to and from zlib routines. See RFC 1952 for more details on the meanings of these fields. */ typedef struct gz_header_s { - int text; /* true if compressed data believed to be text */ - uLong time; /* modification time */ - int xflags; /* extra flags (not used when writing a gzip file) */ - int os; /* operating system */ - Bytef *extra; /* pointer to extra field or Z_NULL if none */ - uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ - uInt extra_max; /* space at extra (only when reading header) */ - Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ - uInt name_max; /* space at name (only when reading header) */ - Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ - uInt comm_max; /* space at comment (only when reading header) */ - int hcrc; /* true if there was or will be a header crc */ - int done; /* true when done reading gzip header (not used - when writing a gzip file) */ + int text; /* true if compressed data believed to be text */ + unsigned long time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + unsigned char *extra; /* pointer to extra field or NULL if none */ + unsigned int extra_len; /* extra field length (valid if extra != NULL) */ + unsigned int extra_max; /* space at extra (only when reading header) */ + unsigned char *name; /* pointer to zero-terminated file name or NULL */ + unsigned int name_max; /* space at name (only when reading header) */ + unsigned char *comment; /* pointer to zero-terminated comment or NULL */ + unsigned int comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used when writing a gzip file) */ } gz_header; -typedef gz_header FAR *gz_headerp; +typedef gz_header *gz_headerp; /* The application must update next_in and avail_in when avail_in has dropped @@ -142,21 +161,12 @@ typedef gz_header FAR *gz_headerp; memory management. The compression library attaches no meaning to the opaque value. - zalloc must return Z_NULL if there is not enough memory for the object. + zalloc must return NULL if there is not enough memory for the object. If zlib is used in a multi-threaded application, zalloc and zfree must be thread safe. In that case, zlib is thread-safe. When zalloc and zfree are Z_NULL on entry to the initialization function, they are set to internal routines that use the standard library functions malloc() and free(). - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this if - the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers - returned by zalloc for objects of exactly 65536 bytes *must* have their - offset normalized to zero. The default allocation function provided by this - library ensures this (see zutil.c). To reduce memory requirements and avoid - any allocation of 64K objects, at the expense of compression ratio, compile - the library with -DMAX_WBITS=14 (see zconf.h). - The fields total_in and total_out can be used for statistics or progress reports. After compression, total_in holds the total size of the uncompressed data and may be saved for use by the decompressor (particularly @@ -209,7 +219,7 @@ typedef gz_header FAR *gz_headerp; #define Z_DEFLATED 8 /* The deflate compression method (the only one supported in this version) */ -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ +#define Z_NULL NULL /* for compatibility with zlib, was for initializing zalloc, zfree, opaque */ #define zlib_version zlibVersion() /* for compatibility with versions < 1.0.2 */ @@ -217,7 +227,7 @@ typedef gz_header FAR *gz_headerp; /* basic functions */ -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +Z_EXTERN const char * Z_EXPORT zlibVersion(void); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check @@ -225,11 +235,11 @@ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); */ /* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); +Z_EXTERN int Z_EXPORT deflateInit (z_stream *strm, int level); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If - zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + zalloc and zfree are set to NULL, deflateInit updates them to use default allocation functions. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: @@ -247,7 +257,7 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); */ -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +Z_EXTERN int Z_EXPORT deflate(z_stream *strm, int flush); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -276,7 +286,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); == 0), or after each call of deflate(). If deflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput + which can be used if desired to determine whether or not there is more output in that case. Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to @@ -352,7 +362,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); processed or more output produced), Z_STREAM_END if all input has been consumed and all output has been produced (only when flush is set to Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was Z_NULL or the state was inadvertently written over + if next_in or next_out was NULL) or the state was inadvertently written over by the application), or Z_BUF_ERROR if no progress is possible (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and deflate() can be called again with more input and more output space to @@ -360,7 +370,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT deflateEnd(z_stream *strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -375,14 +385,14 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT inflateInit (z_stream *strm); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by the caller. In the current version of inflate, the provided input is not read or consumed. The allocation of a sliding window will be deferred to the first call of inflate (if the decompression does not complete on the - first call). If zalloc and zfree are set to Z_NULL, inflateInit updates + first call). If zalloc and zfree are set to NULL, inflateInit updates them to use default allocation functions. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough @@ -397,7 +407,7 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); */ -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +Z_EXTERN int Z_EXPORT inflate(z_stream *strm, int flush); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -506,9 +516,9 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); corrupted (input stream not conforming to the zlib format or incorrect check value, in which case strm->msg points to a string with a more specific error), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL, or the state was inadvertently written over + next_in or next_out was NULL, or the state was inadvertently written over by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR - if no progress was possible or if there was not enough room in the output + if no progress is possible or if there was not enough room in the output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and inflate() can be called again with more input and more output space to continue decompressing. If Z_DATA_ERROR is returned, the application may @@ -517,7 +527,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT inflateEnd(z_stream *strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -535,16 +545,15 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); */ /* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, +Z_EXTERN int Z_EXPORT deflateInit2 (z_stream *strm, int level, int method, int windowBits, int memLevel, - int strategy)); + int strategy); This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. + fields zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. @@ -608,9 +617,9 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +Z_EXTERN int Z_EXPORT deflateSetDictionary(z_stream *strm, + const unsigned char *dictionary, + unsigned int dictLength); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. When using the zlib format, this @@ -646,22 +655,20 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, Adler-32 value is not computed and strm->adler is not set. deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + parameter is invalid (e.g. dictionary being NULL) or the stream state is inconsistent (for example if deflate has already been called for this stream or if not at a block boundary for raw deflate). deflateSetDictionary does not perform any compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +Z_EXTERN int Z_EXPORT deflateGetDictionary (z_stream *strm, unsigned char *dictionary, unsigned int *dictLength); /* Returns the sliding dictionary being maintained by deflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If deflateGetDictionary() is called with dictionary equal to Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. + Similarly, if dictLength is Z_NULL, then it is not set. deflateGetDictionary() may return a length less than the window size, even when more than the window size in input has been provided. It may return up @@ -674,8 +681,7 @@ ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); +Z_EXTERN int Z_EXPORT deflateCopy(z_stream *dest, z_stream *source); /* Sets the destination stream as a complete copy of the source stream. @@ -688,11 +694,11 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and + (such as zalloc being NULL). msg is left unchanged in both source and destination. */ -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT deflateReset(z_stream *strm); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate the internal compression state. The stream @@ -700,23 +706,22 @@ ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); set unchanged. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). + stream state was inconsistent (such as zalloc or state being NULL). */ -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); +Z_EXTERN int Z_EXPORT deflateParams(z_stream *strm, int level, int strategy); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). + strategy is changed, and if there have been any deflate() calls since the + state was initialized or reset, then the input available so far is + compressed with the old level and strategy using deflate(strm, Z_BLOCK). + There are three approaches for the compression levels 0, 1..3, and 4..9 + respectively. The new level and strategy will take effect at the next call + of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not @@ -740,11 +745,7 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, retried with more output space. */ -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); +Z_EXTERN int Z_EXPORT deflateTune(z_stream *strm, int good_length, int max_lazy, int nice_length, int max_chain); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for @@ -757,8 +758,7 @@ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); +Z_EXTERN unsigned long Z_EXPORT deflateBound(z_stream *strm, unsigned long sourceLen); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or @@ -772,24 +772,20 @@ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, than Z_FINISH or Z_NO_FLUSH are used. */ -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); +Z_EXTERN int Z_EXPORT deflatePending(z_stream *strm, uint32_t *pending, int *bits); /* deflatePending() returns the number of bytes and bits of output that have been generated, but not yet provided in the available output. The bytes not provided would be due to the available output space having being consumed. The number of bits of output not provided are between 0 and 7, where they await more bits to join them in order to fill out a full byte. If pending - or bits are Z_NULL, then those values are not set. + or bits are NULL, then those values are not set. deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); +Z_EXTERN int Z_EXPORT deflatePrime(z_stream *strm, int bits, int value); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits @@ -804,8 +800,7 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); +Z_EXTERN int Z_EXPORT deflateSetHeader(z_stream *strm, gz_headerp head); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called @@ -813,8 +808,8 @@ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, deflate(). The text, time, os, extra field, name, and comment information in the provided gz_header structure are written to the gzip header (xflag is ignored -- the extra flags are set according to the compression level). The - caller must assure that, if not Z_NULL, name and comment are terminated with - a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + caller must assure that, if not NULL, name and comment are terminated with + a zero byte, and that if extra is not NULL, that extra_len bytes are available there. If hcrc is true, a gzip header crc is included. Note that the current versions of the command-line version of gzip (up through version 1.3.x) do not support header crc's, and will report that it is a "multi-part @@ -829,8 +824,7 @@ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, */ /* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); +Z_EXTERN int Z_EXPORT inflateInit2(z_stream *strm, int windowBits); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized @@ -865,9 +859,11 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. + below), inflate() will *not* automatically decode concatenated gzip members. + inflate() will return Z_STREAM_END at the end of the gzip member. The state + would need to be reset to continue decoding a subsequent gzip member. This + *must* be done if there is more data after a gzip member, in order for the + decompression to be compliant with the gzip standard (RFC 1952). inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -881,9 +877,7 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, deferred until inflate() is called. */ -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +Z_EXTERN int Z_EXPORT inflateSetDictionary(z_stream *strm, const unsigned char *dictionary, unsigned int dictLength); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, @@ -897,29 +891,27 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, that was used for compression is provided. inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + parameter is invalid (e.g. dictionary being NULL) or the stream state is inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the expected one (incorrect Adler-32 value). inflateSetDictionary does not perform any decompression: this will be done by subsequent calls of inflate(). */ -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +Z_EXTERN int Z_EXPORT inflateGetDictionary(z_stream *strm, unsigned char *dictionary, unsigned int *dictLength); /* Returns the sliding dictionary being maintained by inflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. + NULL, then only the dictionary length is returned, and nothing is copied. + Similarly, if dictLength is NULL, then it is not set. inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the stream state is inconsistent. */ -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT inflateSync(z_stream *strm); /* Skips invalid compressed data until a possible full flush point (see above for the description of deflate with Z_FULL_FLUSH) can be found, or until all @@ -938,8 +930,7 @@ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); input each time, until success or end of the input data. */ -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); +Z_EXTERN int Z_EXPORT inflateCopy(z_stream *dest, z_stream *source); /* Sets the destination stream as a complete copy of the source stream. @@ -950,22 +941,21 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being Z_NULL). msg is left unchanged in both source and + (such as zalloc being NULL). msg is left unchanged in both source and destination. */ -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT inflateReset(z_stream *strm); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL). + stream state was inconsistent (such as zalloc or state being NULL). */ -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); +Z_EXTERN int Z_EXPORT inflateReset2(z_stream *strm, int windowBits); /* This function is the same as inflateReset, but it also permits changing the wrap and window size requests. The windowBits parameter is interpreted @@ -974,13 +964,11 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, by inflate() if needed. inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being Z_NULL), or if + stream state was inconsistent (such as zalloc or state being NULL), or if the windowBits parameter is invalid. */ -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); +Z_EXTERN int Z_EXPORT inflatePrime(z_stream *strm, int bits, int value); /* This function inserts bits in the inflate input stream. The intent is that this function is used to start inflating at a bit position in the @@ -999,7 +987,7 @@ ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, stream state was inconsistent. */ -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +Z_EXTERN long Z_EXPORT inflateMark(z_stream *strm); /* This function returns two values, one in the lower 16 bits of the return value, and the other in the remaining upper bits, obtained by shifting the @@ -1027,8 +1015,7 @@ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); source stream state was inconsistent. */ -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); +Z_EXTERN int Z_EXPORT inflateGetHeader(z_stream *strm, gz_headerp head); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after @@ -1042,16 +1029,16 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, The text, time, xflags, and os fields are filled in with the gzip header contents. hcrc is set to true if there is a header CRC. (The header CRC - was valid if done is set to one.) If extra is not Z_NULL, then extra_max + was valid if done is set to one.) If extra is not NULL, then extra_max contains the maximum number of bytes to write to extra. Once done is true, extra_len contains the actual extra field length, and extra contains the extra field, or that field truncated if extra_max is less than extra_len. - If name is not Z_NULL, then up to name_max characters are written there, + If name is not NULL, then up to name_max characters are written there, terminated with a zero unless the length is greater than name_max. If - comment is not Z_NULL, then up to comm_max characters are written there, + comment is not NULL, then up to comm_max characters are written there, terminated with a zero unless the length is greater than comm_max. When any - of extra, name, or comment are not Z_NULL and the respective field is not - present in the header, then that field is set to Z_NULL to signal its + of extra, name, or comment are not NULL and the respective field is not + present in the header, then that field is set to NULL to signal its absence. This allows the use of deflateSetHeader() with the returned structure to duplicate the header. However if those fields are set to allocated memory, then the application will need to save those pointers @@ -1068,12 +1055,11 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, */ /* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); +Z_EXTERN int Z_EXPORT inflateBackInit (z_stream *strm, int windowBits, unsigned char *window); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized - before the call. If zalloc and zfree are Z_NULL, then the default library- + before the call. If zalloc and zfree are NULL, then the default library- derived memory allocation routines are used. windowBits is the base two logarithm of the window size, in the range 8..15. window is a caller supplied buffer of that size. Except for special applications where it is @@ -1089,13 +1075,10 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, the version of the header file. */ -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); +typedef uint32_t (*in_func) (void *, z_const unsigned char * *); +typedef int (*out_func) (void *, unsigned char *, uint32_t); -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); +Z_EXTERN int Z_EXPORT inflateBack(z_stream *strm, in_func in, void *in_desc, out_func out, void *out_desc); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is potentially more efficient than @@ -1139,8 +1122,8 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, For convenience, inflateBack() can be provided input on the first call by setting strm->next_in and strm->avail_in. If that input is exhausted, then in() will be called. Therefore strm->next_in must be initialized before - calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called - immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + calling inflateBack(). If strm->next_in is NULL, then in() will be called + immediately for input. If strm->next_in is not NULL, then strm->avail_in must also be initialized, and then if strm->avail_in is not zero, input will initially be taken from strm->next_in[0 .. strm->avail_in - 1]. @@ -1156,14 +1139,14 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, in the deflate stream (in which case strm->msg is set to indicate the nature of the error), or Z_STREAM_ERROR if the stream was not properly initialized. In the case of Z_BUF_ERROR, an input or output error can be distinguished - using strm->next_in which will be Z_NULL only if in() returned an error. If - strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning + using strm->next_in which will be NULL only if in() returned an error. If + strm->next_in is not NULL, then the Z_BUF_ERROR was due to out() returning non-zero. (in() will always be called before out(), so strm->next_in is assured to be defined if out() returns non-zero.) Note that inflateBack() cannot return Z_OK. */ -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +Z_EXTERN int Z_EXPORT inflateBackEnd(z_stream *strm); /* All memory allocated by inflateBackInit() is freed. @@ -1171,13 +1154,13 @@ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); state was inconsistent. */ -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +Z_EXTERN unsigned long Z_EXPORT zlibCompileFlags(void); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: - 1.0: size of uInt - 3.2: size of uLong - 5.4: size of voidpf (pointer) + 1.0: size of unsigned int + 3.2: size of unsigned long + 5.4: size of void * (pointer) 7.6: size of z_off_t Compiler, assembler, and debug options: @@ -1187,7 +1170,7 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); 11: 0 (reserved) One-time table building (smaller code, but not thread-safe if true): - 12: BUILDFIXED -- build static block decoding tables when needed + 12: BUILDFIXED -- build static block decoding tables when needed (not supported by zlib-ng) 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed 14,15: 0 (reserved) @@ -1212,6 +1195,7 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); 27-31: 0 (reserved) */ + #ifndef Z_SOLO /* utility functions */ @@ -1224,8 +1208,7 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); you need special options. */ -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +Z_EXTERN int Z_EXPORT compress(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1239,9 +1222,8 @@ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, buffer. */ -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); +Z_EXTERN int Z_EXPORT compress2(unsigned char *dest, unsigned long *destLen, const unsigned char *source, + unsigned long sourceLen, int level); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte @@ -1255,15 +1237,14 @@ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, Z_STREAM_ERROR if the level parameter is invalid. */ -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +Z_EXTERN unsigned long Z_EXPORT compressBound(unsigned long sourceLen); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +Z_EXTERN int Z_EXPORT uncompress(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen); /* Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1280,14 +1261,16 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, buffer with the uncompressed data up to that point. */ -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); + +Z_EXTERN int Z_EXPORT uncompress2 (unsigned char *dest, unsigned long *destLen, + const unsigned char *source, unsigned long *sourceLen); /* Same as uncompress, except that sourceLen is a pointer, where the length of the source is *sourceLen. On return, *sourceLen is the number of source bytes consumed. */ + /* gzip file access functions */ /* @@ -1300,16 +1283,16 @@ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +Z_EXTERN gzFile Z_EXPORT gzopen(const char *path, const char *mode); - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. + Open the gzip (.gz) file at path for reading and decompressing, or + compressing and writing. The mode parameter is as in fopen ("rb" or "wb") + but can also include a compression level ("wb9") or a strategy: 'f' for + filtered data as in "wb6f", 'h' for Huffman-only compression as in "wb1h", + 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression + as in "wb9F". (See the description of deflateInit2 for more information + about the strategy parameter.) 'T' will request transparent writing or + appending with no compression and not using the gzip format. "a" can be used instead of "w" to request that the gzip stream that will be written be appended to the file. "+" will result in an error, since @@ -1337,11 +1320,11 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); file could not be opened. */ -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +Z_EXTERN gzFile Z_EXPORT gzdopen(int fd, const char *mode); /* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. + Associate a gzFile with the file descriptor fd. File descriptors are + obtained from calls like open, dup, creat, pipe or fileno (if the file has + been previously opened with fopen). The mode parameter is as in gzopen. The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor @@ -1360,15 +1343,15 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); will not detect if fd is invalid (unless fd is -1). */ -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +Z_EXTERN int Z_EXPORT gzbuffer(gzFile file, unsigned size); /* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). + Set the internal buffer size used by this library's functions for file to + size. The default buffer size is 8192 bytes. This function must be called + after gzopen() or gzdopen(), and before any other calls that read or write + the file. The buffer memory allocation is always deferred to the first read + or write. Three times that size in buffer space is allocated. A larger + buffer size of, for example, 64K or 128K bytes will noticeably increase the + speed of decompression (reading). The new buffer size also affects the maximum length for gzprintf(). @@ -1376,20 +1359,20 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); too late. */ -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +Z_EXTERN int Z_EXPORT gzsetparams(gzFile file, int level, int strategy); /* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. + Dynamically update the compression level and strategy for file. See the + description of deflateInit2 for the meaning of these parameters. Previously + provided data is flushed before applying the parameter changes. gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not opened for writing, Z_ERRNO if there is an error writing the flushed data, or Z_MEM_ERROR if there is a memory allocation error. */ -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +Z_EXTERN int Z_EXPORT gzread(gzFile file, void *buf, unsigned len); /* - Reads the given number of uncompressed bytes from the compressed file. If + Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of bytes into the buffer directly from the file. @@ -1417,109 +1400,104 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); Z_STREAM_ERROR. */ -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); +Z_EXTERN size_t Z_EXPORT gzfread (void *buf, size_t size, size_t nitems, gzFile file); /* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. + Read and decompress up to nitems items of size size from file into buf, + otherwise operating as gzread() does. This duplicates the interface of + stdio's fread(), with size_t request and return types. If the library + defines size_t, then z_size_t is identical to size_t. If not, then z_size_t + is an unsigned integer type that can contain a pointer. gzfread() returns the number of full items read of size size, or zero if the end of the file was reached and a full item could not be read, or if there was an error. gzerror() must be consulted if zero is returned in order to determine if there was an error. If the multiplication of size and - nitems overflows, i.e. the product does not fit in a z_size_t, then nothing + nitems overflows, i.e. the product does not fit in a size_t, then nothing is read, zero is returned, and the error state is set to Z_STREAM_ERROR. In the event that the end of file is reached and only a partial item is available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf + multiple of size, then the final partial item is nevertheless read into buf and the end-of-file flag is set. The length of the partial item read is not provided, but could be inferred from the result of gztell(). This behavior is the same as the behavior of fread() implementations in common libraries, but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. + file, resetting and retrying on end-of-file, when size is not 1. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); +Z_EXTERN int Z_EXPORT gzwrite(gzFile file, void const *buf, unsigned len); /* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. + Compress and write the len uncompressed bytes at buf to file. gzwrite + returns the number of uncompressed bytes written or 0 in case of error. */ -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); +Z_EXTERN size_t Z_EXPORT gzfwrite(void const *buf, size_t size, size_t nitems, gzFile file); /* - gzfwrite() writes nitems items of size size from buf to file, duplicating - the interface of stdio's fwrite(), with size_t request and return types. If - the library defines size_t, then z_size_t is identical to size_t. If not, - then z_size_t is an unsigned integer type that can contain a pointer. + Compress and write nitems items of size size from buf to file, duplicating + the interface of stdio's fwrite(), with size_t request and return types. gzfwrite() returns the number of full items written of size size, or zero if there was an error. If the multiplication of size and nitems overflows, - i.e. the product does not fit in a z_size_t, then nothing is written, zero + i.e. the product does not fit in a size_t, then nothing is written, zero is returned, and the error state is set to Z_STREAM_ERROR. */ -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +Z_EXTERN int Z_EXPORTVA gzprintf(gzFile file, const char *format, ...); /* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of + Convert, format, compress, and write the arguments (...) to file under + control of the string format, as in fprintf. gzprintf returns the number of uncompressed bytes actually written, or a negative zlib error code in case of error. The number of uncompressed bytes written is limited to 8191, or one less than the buffer size given to gzbuffer(). The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will return an error (0) with nothing written. In this case, there may also be a buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() + zlib was compiled with the insecure functions sprintf() or vsprintf(), because the secure snprintf() or vsnprintf() functions were not available. This can be determined using zlibCompileFlags(). */ -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +Z_EXTERN int Z_EXPORT gzputs(gzFile file, const char *s); /* - Writes the given null-terminated string to the compressed file, excluding + Compress and write the given null-terminated string s to file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. */ -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +Z_EXTERN char * Z_EXPORT gzgets(gzFile file, char *buf, int len); /* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. + Read and decompress bytes from file into buf, until len-1 characters are + read, or until a newline character is read and transferred to buf, or an + end-of-file condition is encountered. If any characters are read or if len + is one, the string is terminated with a null character. If no characters + are read due to an end-of-file or len is less than one, then the buffer is + left untouched. gzgets returns buf which is a null-terminated string, or it returns NULL for end-of-file or in case of error. If there was an error, the contents at buf are indeterminate. */ -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +Z_EXTERN int Z_EXPORT gzputc(gzFile file, int c); /* - Writes c, converted to an unsigned char, into the compressed file. gzputc + Compress and write c, converted to an unsigned char, into file. gzputc returns the value that was written, or -1 in case of error. */ -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzgetc(gzFile file); /* - Reads one byte from the compressed file. gzgetc returns this byte or -1 + Read and decompress one byte from file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. As such, it does not do all of the checking the other functions do. I.e. it does not check to see if file is NULL, nor whether the structure file points to has been clobbered or not. */ -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +Z_EXTERN int Z_EXPORT gzungetc(int c, gzFile file); /* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. + Push c back onto the stream for file to be read as the first character on + the next read. At least one character of push-back is always allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if c is -1, and may fail if a character has been pushed but not read yet. If gzungetc is used immediately after gzopen or gzdopen, at least the @@ -1528,11 +1506,11 @@ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); gzseek() or gzrewind(). */ -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +Z_EXTERN int Z_EXPORT gzflush(gzFile file, int flush); /* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. + Flush all pending output to file. The parameter flush is as in the + deflate() function. The return value is the zlib error number (see function + gzerror below). gzflush is only permitted when writing. If the flush parameter is Z_FINISH, the remaining data is written and the gzip stream is completed in the output. If gzwrite() is called again, a new @@ -1544,11 +1522,10 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); */ /* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); +Z_EXTERN z_off_t Z_EXPORT gzseek (gzFile file, z_off_t offset, int whence); - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the + Set the starting position to offset relative to whence for the next gzread + or gzwrite on file. The offset represents a number of bytes in the uncompressed data stream. The whence parameter is defined as in lseek(2); the value SEEK_END is not supported. @@ -1563,52 +1540,52 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, would be before the current position. */ -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzrewind(gzFile file); /* - Rewinds the given file. This function is supported only for reading. + Rewind file. This function is supported only for reading. - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET). */ /* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +Z_EXTERN z_off_t Z_EXPORT gztell(gzFile file); - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). + Return the starting position for the next gzread or gzwrite on file. + This position represents a number of bytes in the uncompressed data stream, + and is zero when starting, even if appending or reading a gzip stream from + the middle of a file using gzdopen(). gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ /* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); +Z_EXTERN z_off_t Z_EXPORT gzoffset(gzFile file); - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. + Return the current compressed (actual) read or write offset of file. This + offset includes the count of bytes that precede the gzip stream, for example + when appending or when using gzdopen() for reading. When reading, the + offset does not include as yet unused buffered input. This information can + be used for a progress indicator. On error, gzoffset() returns -1. */ -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzeof(gzFile file); /* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. + Return true (1) if the end-of-file indicator for file has been set while + reading, false (0) otherwise. Note that the end-of-file indicator is set + only if the read tried to go past the end of the input, but came up short. + Therefore, just like feof(), gzeof() may return false even if there is no + more data to read, in the event that the last read request was for the exact + number of bytes remaining in the input file. This will happen if the input + file size is an exact multiple of the buffer size. If gzeof() returns true, then the read functions will return no more data, unless the end-of-file indicator is reset by gzclearerr() and the input file has grown since the previous end of file was detected. */ -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzdirect(gzFile file); /* - Returns true (1) if file is being copied directly while reading, or false + Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. If the input file is empty, gzdirect() will return true, since the input @@ -1627,10 +1604,10 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); gzip file reading and decompression, which may not be desired.) */ -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzclose(gzFile file); /* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you + Flush all pending output for file, if necessary, close file and + deallocate the (de)compression state. Note that once file is closed, you cannot call gzerror with file, since its structures have been deallocated. gzclose must not be called more than once on the same file, just as free must not be called more than once on the same allocation. @@ -1640,8 +1617,8 @@ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); last read ended in the middle of a gzip stream, or Z_OK on success. */ -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +Z_EXTERN int Z_EXPORT gzclose_r(gzFile file); +Z_EXTERN int Z_EXPORT gzclose_w(gzFile file); /* Same as gzclose(), but gzclose_r() is only for use when reading, and gzclose_w() is only for use when writing or appending. The advantage to @@ -1652,12 +1629,12 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); zlib library. */ -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +Z_EXTERN const char * Z_EXPORT gzerror(gzFile file, int *errnum); /* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. + Return the error message for the last error which occurred on file. + errnum is set to zlib error number. If an error occurred in the file system + and not in the compression library, errnum is set to Z_ERRNO and the + application may consult errno to get the exact error code. The application must not modify the returned string. Future calls to this function may invalidate the previously returned string. If file is @@ -1668,14 +1645,14 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); functions above that do not distinguish those cases in their return values. */ -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +Z_EXTERN void Z_EXPORT gzclearerr(gzFile file); /* - Clears the error and end-of-file flags for file. This is analogous to the + Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ -#endif /* !Z_SOLO */ +#endif /* checksum functions */ @@ -1685,18 +1662,19 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); library. */ -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +Z_EXTERN unsigned long Z_EXPORT adler32(unsigned long adler, const unsigned char *buf, unsigned int len); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. + return the updated checksum. An Adler-32 value is in the range of a 32-bit + unsigned integer. If buf is Z_NULL, this function returns the required + initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed much faster. Usage example: - uLong adler = adler32(0L, Z_NULL, 0); + uint32_t adler = adler32(0L, NULL, 0); while (read_buffer(buffer, length) != EOF) { adler = adler32(adler, buffer, length); @@ -1704,15 +1682,13 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); if (adler != original_adler) error(); */ -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +Z_EXTERN unsigned long Z_EXPORT adler32_z(unsigned long adler, const unsigned char *buf, size_t len); /* Same as adler32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); +Z_EXTERN unsigned long Z_EXPORT adler32_combine(unsigned long adler1, unsigned long adler2, z_off_t len2); Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for @@ -1722,16 +1698,17 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +Z_EXTERN unsigned long Z_EXPORT crc32(unsigned long crc, const unsigned char *buf, unsigned int len); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. + updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. + If buf is Z_NULL, this function returns the required initial value for the + crc. Pre- and post-conditioning (one's complement) is performed within this + function so it shouldn't be done by the application. Usage example: - uLong crc = crc32(0L, Z_NULL, 0); + uint32_t crc = crc32(0L, NULL, 0); while (read_buffer(buffer, length) != EOF) { crc = crc32(crc, buffer, length); @@ -1739,14 +1716,13 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +Z_EXTERN unsigned long Z_EXPORT crc32_z(unsigned long crc, const unsigned char *buf, size_t len); /* Same as crc32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); +Z_EXTERN unsigned long Z_EXPORT crc32_combine(unsigned long crc1, unsigned long crc2, z_off64_t len2); Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were @@ -1755,58 +1731,45 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); len2. */ +/* +Z_EXTERN unsigned long Z_EXPORT crc32_combine_gen(z_off_t len2); + + Return the operator corresponding to length len2, to be used with + crc32_combine_op(). +*/ + +Z_EXTERN unsigned long Z_EXPORT crc32_combine_op(unsigned long crc1, unsigned long crc2, + const unsigned long op); +/* + Give the same result as crc32_combine(), using op in place of len2. op is + is generated from len2 by crc32_combine_gen(). This will be faster than + crc32_combine() if the generated op is used more than once. +*/ + /* various hacks, don't look :) */ /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); -#ifdef Z_PREFIX_SET -# define z_deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define z_inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#else -# define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#endif +Z_EXTERN int Z_EXPORT deflateInit_(z_stream *strm, int level, const char *version, int stream_size); +Z_EXTERN int Z_EXPORT inflateInit_(z_stream *strm, const char *version, int stream_size); +Z_EXTERN int Z_EXPORT deflateInit2_(z_stream *strm, int level, int method, int windowBits, int memLevel, + int strategy, const char *version, int stream_size); +Z_EXTERN int Z_EXPORT inflateInit2_(z_stream *strm, int windowBits, const char *version, int stream_size); +Z_EXTERN int Z_EXPORT inflateBackInit_(z_stream *strm, int windowBits, unsigned char *window, + const char *version, int stream_size); +#define deflateInit(strm, level) deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit(strm) inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm), (level), (method), (windowBits), (memLevel), \ + (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit2(strm, windowBits) inflateInit2_((strm), (windowBits), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), ZLIB_VERSION, (int)sizeof(z_stream)) + #ifndef Z_SOLO - /* gzgetc() macro and its supporting function and exposed data structure. Note * that the real internal state is much larger than the exposed structure. * This abbreviated structure exposes just enough for the gzgetc() macro. The @@ -1819,15 +1782,8 @@ struct gzFile_s { unsigned char *next; z_off64_t pos; }; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -# define z_gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#else -# define gzgetc(g) \ - ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) -#endif +Z_EXTERN int Z_EXPORT gzgetc_(gzFile file); /* backward compatibility */ +# define gzgetc(g) ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) /* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if @@ -1836,77 +1792,64 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ * without large file support, _LFS64_LARGEFILE must also be true */ #ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); + Z_EXTERN gzFile Z_EXPORT gzopen64(const char *, const char *); + Z_EXTERN z_off64_t Z_EXPORT gzseek64(gzFile, z_off64_t, int); + Z_EXTERN z_off64_t Z_EXPORT gztell64(gzFile); + Z_EXTERN z_off64_t Z_EXPORT gzoffset64(gzFile); + Z_EXTERN unsigned long Z_EXPORT adler32_combine64(unsigned long, unsigned long, z_off64_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine64(unsigned long, unsigned long, z_off64_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine_gen64(z_off64_t); +#endif #endif -#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) -# ifdef Z_PREFIX_SET -# define z_gzopen z_gzopen64 -# define z_gzseek z_gzseek64 -# define z_gztell z_gztell64 -# define z_gzoffset z_gzoffset64 -# define z_adler32_combine z_adler32_combine64 -# define z_crc32_combine z_crc32_combine64 -# else +#if !defined(Z_SOLO) && !defined(Z_INTERNAL) && defined(Z_WANT64) # define gzopen gzopen64 # define gzseek gzseek64 # define gztell gztell64 # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 -# endif +# define crc32_combine_gen crc32_combine_gen64 # ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); + Z_EXTERN gzFile Z_EXPORT gzopen64(const char *, const char *); + Z_EXTERN z_off_t Z_EXPORT gzseek64(gzFile, z_off_t, int); + Z_EXTERN z_off_t Z_EXPORT gztell64(gzFile); + Z_EXTERN z_off_t Z_EXPORT gzoffset64(gzFile); + Z_EXTERN unsigned long Z_EXPORT adler32_combine64(unsigned long, unsigned long, z_off_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine64(unsigned long, unsigned long, z_off_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine_gen64(z_off64_t); # endif #else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +# ifndef Z_SOLO + Z_EXTERN gzFile Z_EXPORT gzopen(const char *, const char *); + Z_EXTERN z_off_t Z_EXPORT gzseek(gzFile, z_off_t, int); + Z_EXTERN z_off_t Z_EXPORT gztell(gzFile); + Z_EXTERN z_off_t Z_EXPORT gzoffset(gzFile); +# endif + Z_EXTERN unsigned long Z_EXPORT adler32_combine(unsigned long, unsigned long, z_off_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine(unsigned long, unsigned long, z_off_t); + Z_EXTERN unsigned long Z_EXPORT crc32_combine_gen(z_off_t); #endif -#else /* Z_SOLO */ - - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - -#endif /* !Z_SOLO */ - /* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); +Z_EXTERN const char * Z_EXPORT zError (int); +Z_EXTERN int Z_EXPORT inflateSyncPoint (z_stream *); +Z_EXTERN const uint32_t * Z_EXPORT get_crc_table (void); +Z_EXTERN int Z_EXPORT inflateUndermine (z_stream *, int); +Z_EXTERN int Z_EXPORT inflateValidate (z_stream *, int); +Z_EXTERN unsigned long Z_EXPORT inflateCodesUsed (z_stream *); +Z_EXTERN int Z_EXPORT inflateResetKeep (z_stream *); +Z_EXTERN int Z_EXPORT deflateResetKeep (z_stream *); + +#ifndef Z_SOLO +#if defined(_WIN32) + Z_EXTERN gzFile Z_EXPORT gzopen_w(const wchar_t *path, const char *mode); #endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif +Z_EXTERN int Z_EXPORTVA gzvprintf(gzFile file, const char *format, va_list va); #endif #ifdef __cplusplus } #endif -#endif /* ZLIB_H */ +#endif /* ZLIB_H_ */ diff --git a/Externals/zlib-ng/zlib_name_mangling.h b/Externals/zlib-ng/zlib_name_mangling.h new file mode 100644 index 0000000000..b24cb834a6 --- /dev/null +++ b/Externals/zlib-ng/zlib_name_mangling.h @@ -0,0 +1,8 @@ +/* zlib_name_mangling.h has been automatically generated from + * zlib_name_mangling.h.empty because ZLIB_SYMBOL_PREFIX was NOT set. + */ + +#ifndef ZLIB_NAME_MANGLING_H +#define ZLIB_NAME_MANGLING_H + +#endif /* ZLIB_NAME_MANGLING_H */ diff --git a/Externals/zlib/CMakeLists.txt b/Externals/zlib/CMakeLists.txt deleted file mode 100644 index da707ea76d..0000000000 --- a/Externals/zlib/CMakeLists.txt +++ /dev/null @@ -1,95 +0,0 @@ -project(zlib C) - -include(CheckTypeSize) -include(CheckFunctionExists) -include(CheckIncludeFile) -include(CheckCSourceCompiles) - -check_include_file(sys/types.h HAVE_SYS_TYPES_H) -check_include_file(stdint.h HAVE_STDINT_H) -check_include_file(stddef.h HAVE_STDDEF_H) - -# Check to see if we have large file support -set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) -# We add these other definitions here because CheckTypeSize.cmake -# in CMake 2.4.x does not automatically do so and we want -# compatibility with CMake 2.4.x. -if(HAVE_SYS_TYPES_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) -endif() -if(HAVE_STDINT_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H) -endif() -if(HAVE_STDDEF_H) - list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H) -endif() -check_type_size(off64_t OFF64_T) -if(HAVE_OFF64_T) - add_definitions(-D_LARGEFILE64_SOURCE=1) -endif() -set(CMAKE_REQUIRED_DEFINITIONS) # clear variable - -# Check for fseeko -check_function_exists(fseeko HAVE_FSEEKO) -if(NOT HAVE_FSEEKO) - add_definitions(-DNO_FSEEKO) -endif() - -# -# Check for unistd.h -# -check_include_file(unistd.h HAVE_UNISTD_H) -if(HAVE_UNISTD_H) - add_definitions(-DHAVE_UNISTD_H) -endif() - -if(MSVC) - add_definitions(-D_CRT_SECURE_NO_DEPRECATE) - add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) -endif() - -#============================================================================ -# zlib -#============================================================================ - -set(ZLIB_PUBLIC_HDRS - zconf.h - zlib.h -) -set(ZLIB_PRIVATE_HDRS - crc32.h - deflate.h - gzguts.h - inffast.h - inffixed.h - inflate.h - inftrees.h - trees.h - zutil.h -) -set(ZLIB_SRCS - adler32.c - compress.c - crc32.c - deflate.c - gzclose.c - gzlib.c - gzread.c - gzwrite.c - inflate.c - infback.c - inftrees.c - inffast.c - trees.c - uncompr.c - zutil.c -) - -add_library(z STATIC ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) -dolphin_disable_warnings_msvc(z) -add_library(ZLIB::ZLIB ALIAS z) - -target_include_directories(z -PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} -) diff --git a/Externals/zlib/ChangeLog b/Externals/zlib/ChangeLog deleted file mode 100644 index 30199a65a0..0000000000 --- a/Externals/zlib/ChangeLog +++ /dev/null @@ -1,1515 +0,0 @@ - - ChangeLog file for zlib - -Changes in 1.2.11 (15 Jan 2017) -- Fix deflate stored bug when pulling last block from window -- Permit immediate deflateParams changes before any deflate input - -Changes in 1.2.10 (2 Jan 2017) -- Avoid warnings on snprintf() return value -- Fix bug in deflate_stored() for zero-length input -- Fix bug in gzwrite.c that produced corrupt gzip files -- Remove files to be installed before copying them in Makefile.in -- Add warnings when compiling with assembler code - -Changes in 1.2.9 (31 Dec 2016) -- Fix contrib/minizip to permit unzipping with desktop API [Zouzou] -- Improve contrib/blast to return unused bytes -- Assure that gzoffset() is correct when appending -- Improve compress() and uncompress() to support large lengths -- Fix bug in test/example.c where error code not saved -- Remedy Coverity warning [Randers-Pehrson] -- Improve speed of gzprintf() in transparent mode -- Fix inflateInit2() bug when windowBits is 16 or 32 -- Change DEBUG macro to ZLIB_DEBUG -- Avoid uninitialized access by gzclose_w() -- Allow building zlib outside of the source directory -- Fix bug that accepted invalid zlib header when windowBits is zero -- Fix gzseek() problem on MinGW due to buggy _lseeki64 there -- Loop on write() calls in gzwrite.c in case of non-blocking I/O -- Add --warn (-w) option to ./configure for more compiler warnings -- Reject a window size of 256 bytes if not using the zlib wrapper -- Fix bug when level 0 used with Z_HUFFMAN or Z_RLE -- Add --debug (-d) option to ./configure to define ZLIB_DEBUG -- Fix bugs in creating a very large gzip header -- Add uncompress2() function, which returns the input size used -- Assure that deflateParams() will not switch functions mid-block -- Dramatically speed up deflation for level 0 (storing) -- Add gzfread(), duplicating the interface of fread() -- Add gzfwrite(), duplicating the interface of fwrite() -- Add deflateGetDictionary() function -- Use snprintf() for later versions of Microsoft C -- Fix *Init macros to use z_ prefix when requested -- Replace as400 with os400 for OS/400 support [Monnerat] -- Add crc32_z() and adler32_z() functions with size_t lengths -- Update Visual Studio project files [AraHaan] - -Changes in 1.2.8 (28 Apr 2013) -- Update contrib/minizip/iowin32.c for Windows RT [Vollant] -- Do not force Z_CONST for C++ -- Clean up contrib/vstudio [Roß] -- Correct spelling error in zlib.h -- Fix mixed line endings in contrib/vstudio - -Changes in 1.2.7.3 (13 Apr 2013) -- Fix version numbers and DLL names in contrib/vstudio/*/zlib.rc - -Changes in 1.2.7.2 (13 Apr 2013) -- Change check for a four-byte type back to hexadecimal -- Fix typo in win32/Makefile.msc -- Add casts in gzwrite.c for pointer differences - -Changes in 1.2.7.1 (24 Mar 2013) -- Replace use of unsafe string functions with snprintf if available -- Avoid including stddef.h on Windows for Z_SOLO compile [Niessink] -- Fix gzgetc undefine when Z_PREFIX set [Turk] -- Eliminate use of mktemp in Makefile (not always available) -- Fix bug in 'F' mode for gzopen() -- Add inflateGetDictionary() function -- Correct comment in deflate.h -- Use _snprintf for snprintf in Microsoft C -- On Darwin, only use /usr/bin/libtool if libtool is not Apple -- Delete "--version" file if created by "ar --version" [Richard G.] -- Fix configure check for veracity of compiler error return codes -- Fix CMake compilation of static lib for MSVC2010 x64 -- Remove unused variable in infback9.c -- Fix argument checks in gzlog_compress() and gzlog_write() -- Clean up the usage of z_const and respect const usage within zlib -- Clean up examples/gzlog.[ch] comparisons of different types -- Avoid shift equal to bits in type (caused endless loop) -- Fix uninitialized value bug in gzputc() introduced by const patches -- Fix memory allocation error in examples/zran.c [Nor] -- Fix bug where gzopen(), gzclose() would write an empty file -- Fix bug in gzclose() when gzwrite() runs out of memory -- Check for input buffer malloc failure in examples/gzappend.c -- Add note to contrib/blast to use binary mode in stdio -- Fix comparisons of differently signed integers in contrib/blast -- Check for invalid code length codes in contrib/puff -- Fix serious but very rare decompression bug in inftrees.c -- Update inflateBack() comments, since inflate() can be faster -- Use underscored I/O function names for WINAPI_FAMILY -- Add _tr_flush_bits to the external symbols prefixed by --zprefix -- Add contrib/vstudio/vc10 pre-build step for static only -- Quote --version-script argument in CMakeLists.txt -- Don't specify --version-script on Apple platforms in CMakeLists.txt -- Fix casting error in contrib/testzlib/testzlib.c -- Fix types in contrib/minizip to match result of get_crc_table() -- Simplify contrib/vstudio/vc10 with 'd' suffix -- Add TOP support to win32/Makefile.msc -- Suport i686 and amd64 assembler builds in CMakeLists.txt -- Fix typos in the use of _LARGEFILE64_SOURCE in zconf.h -- Add vc11 and vc12 build files to contrib/vstudio -- Add gzvprintf() as an undocumented function in zlib -- Fix configure for Sun shell -- Remove runtime check in configure for four-byte integer type -- Add casts and consts to ease user conversion to C++ -- Add man pages for minizip and miniunzip -- In Makefile uninstall, don't rm if preceding cd fails -- Do not return Z_BUF_ERROR if deflateParam() has nothing to write - -Changes in 1.2.7 (2 May 2012) -- Replace use of memmove() with a simple copy for portability -- Test for existence of strerror -- Restore gzgetc_ for backward compatibility with 1.2.6 -- Fix build with non-GNU make on Solaris -- Require gcc 4.0 or later on Mac OS X to use the hidden attribute -- Include unistd.h for Watcom C -- Use __WATCOMC__ instead of __WATCOM__ -- Do not use the visibility attribute if NO_VIZ defined -- Improve the detection of no hidden visibility attribute -- Avoid using __int64 for gcc or solo compilation -- Cast to char * in gzprintf to avoid warnings [Zinser] -- Fix make_vms.com for VAX [Zinser] -- Don't use library or built-in byte swaps -- Simplify test and use of gcc hidden attribute -- Fix bug in gzclose_w() when gzwrite() fails to allocate memory -- Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen() -- Fix bug in test/minigzip.c for configure --solo -- Fix contrib/vstudio project link errors [Mohanathas] -- Add ability to choose the builder in make_vms.com [Schweda] -- Add DESTDIR support to mingw32 win32/Makefile.gcc -- Fix comments in win32/Makefile.gcc for proper usage -- Allow overriding the default install locations for cmake -- Generate and install the pkg-config file with cmake -- Build both a static and a shared version of zlib with cmake -- Include version symbols for cmake builds -- If using cmake with MSVC, add the source directory to the includes -- Remove unneeded EXTRA_CFLAGS from win32/Makefile.gcc [Truta] -- Move obsolete emx makefile to old [Truta] -- Allow the use of -Wundef when compiling or using zlib -- Avoid the use of the -u option with mktemp -- Improve inflate() documentation on the use of Z_FINISH -- Recognize clang as gcc -- Add gzopen_w() in Windows for wide character path names -- Rename zconf.h in CMakeLists.txt to move it out of the way -- Add source directory in CMakeLists.txt for building examples -- Look in build directory for zlib.pc in CMakeLists.txt -- Remove gzflags from zlibvc.def in vc9 and vc10 -- Fix contrib/minizip compilation in the MinGW environment -- Update ./configure for Solaris, support --64 [Mooney] -- Remove -R. from Solaris shared build (possible security issue) -- Avoid race condition for parallel make (-j) running example -- Fix type mismatch between get_crc_table() and crc_table -- Fix parsing of version with "-" in CMakeLists.txt [Snider, Ziegler] -- Fix the path to zlib.map in CMakeLists.txt -- Force the native libtool in Mac OS X to avoid GNU libtool [Beebe] -- Add instructions to win32/Makefile.gcc for shared install [Torri] - -Changes in 1.2.6.1 (12 Feb 2012) -- Avoid the use of the Objective-C reserved name "id" -- Include io.h in gzguts.h for Microsoft compilers -- Fix problem with ./configure --prefix and gzgetc macro -- Include gz_header definition when compiling zlib solo -- Put gzflags() functionality back in zutil.c -- Avoid library header include in crc32.c for Z_SOLO -- Use name in GCC_CLASSIC as C compiler for coverage testing, if set -- Minor cleanup in contrib/minizip/zip.c [Vollant] -- Update make_vms.com [Zinser] -- Remove unnecessary gzgetc_ function -- Use optimized byte swap operations for Microsoft and GNU [Snyder] -- Fix minor typo in zlib.h comments [Rzesniowiecki] - -Changes in 1.2.6 (29 Jan 2012) -- Update the Pascal interface in contrib/pascal -- Fix function numbers for gzgetc_ in zlibvc.def files -- Fix configure.ac for contrib/minizip [Schiffer] -- Fix large-entry detection in minizip on 64-bit systems [Schiffer] -- Have ./configure use the compiler return code for error indication -- Fix CMakeLists.txt for cross compilation [McClure] -- Fix contrib/minizip/zip.c for 64-bit architectures [Dalsnes] -- Fix compilation of contrib/minizip on FreeBSD [Marquez] -- Correct suggested usages in win32/Makefile.msc [Shachar, Horvath] -- Include io.h for Turbo C / Borland C on all platforms [Truta] -- Make version explicit in contrib/minizip/configure.ac [Bosmans] -- Avoid warning for no encryption in contrib/minizip/zip.c [Vollant] -- Minor cleanup up contrib/minizip/unzip.c [Vollant] -- Fix bug when compiling minizip with C++ [Vollant] -- Protect for long name and extra fields in contrib/minizip [Vollant] -- Avoid some warnings in contrib/minizip [Vollant] -- Add -I../.. -L../.. to CFLAGS for minizip and miniunzip -- Add missing libs to minizip linker command -- Add support for VPATH builds in contrib/minizip -- Add an --enable-demos option to contrib/minizip/configure -- Add the generation of configure.log by ./configure -- Exit when required parameters not provided to win32/Makefile.gcc -- Have gzputc return the character written instead of the argument -- Use the -m option on ldconfig for BSD systems [Tobias] -- Correct in zlib.map when deflateResetKeep was added - -Changes in 1.2.5.3 (15 Jan 2012) -- Restore gzgetc function for binary compatibility -- Do not use _lseeki64 under Borland C++ [Truta] -- Update win32/Makefile.msc to build test/*.c [Truta] -- Remove old/visualc6 given CMakefile and other alternatives -- Update AS400 build files and documentation [Monnerat] -- Update win32/Makefile.gcc to build test/*.c [Truta] -- Permit stronger flushes after Z_BLOCK flushes -- Avoid extraneous empty blocks when doing empty flushes -- Permit Z_NULL arguments to deflatePending -- Allow deflatePrime() to insert bits in the middle of a stream -- Remove second empty static block for Z_PARTIAL_FLUSH -- Write out all of the available bits when using Z_BLOCK -- Insert the first two strings in the hash table after a flush - -Changes in 1.2.5.2 (17 Dec 2011) -- fix ld error: unable to find version dependency 'ZLIB_1.2.5' -- use relative symlinks for shared libs -- Avoid searching past window for Z_RLE strategy -- Assure that high-water mark initialization is always applied in deflate -- Add assertions to fill_window() in deflate.c to match comments -- Update python link in README -- Correct spelling error in gzread.c -- Fix bug in gzgets() for a concatenated empty gzip stream -- Correct error in comment for gz_make() -- Change gzread() and related to ignore junk after gzip streams -- Allow gzread() and related to continue after gzclearerr() -- Allow gzrewind() and gzseek() after a premature end-of-file -- Simplify gzseek() now that raw after gzip is ignored -- Change gzgetc() to a macro for speed (~40% speedup in testing) -- Fix gzclose() to return the actual error last encountered -- Always add large file support for windows -- Include zconf.h for windows large file support -- Include zconf.h.cmakein for windows large file support -- Update zconf.h.cmakein on make distclean -- Merge vestigial vsnprintf determination from zutil.h to gzguts.h -- Clarify how gzopen() appends in zlib.h comments -- Correct documentation of gzdirect() since junk at end now ignored -- Add a transparent write mode to gzopen() when 'T' is in the mode -- Update python link in zlib man page -- Get inffixed.h and MAKEFIXED result to match -- Add a ./config --solo option to make zlib subset with no library use -- Add undocumented inflateResetKeep() function for CAB file decoding -- Add --cover option to ./configure for gcc coverage testing -- Add #define ZLIB_CONST option to use const in the z_stream interface -- Add comment to gzdopen() in zlib.h to use dup() when using fileno() -- Note behavior of uncompress() to provide as much data as it can -- Add files in contrib/minizip to aid in building libminizip -- Split off AR options in Makefile.in and configure -- Change ON macro to Z_ARG to avoid application conflicts -- Facilitate compilation with Borland C++ for pragmas and vsnprintf -- Include io.h for Turbo C / Borland C++ -- Move example.c and minigzip.c to test/ -- Simplify incomplete code table filling in inflate_table() -- Remove code from inflate.c and infback.c that is impossible to execute -- Test the inflate code with full coverage -- Allow deflateSetDictionary, inflateSetDictionary at any time (in raw) -- Add deflateResetKeep and fix inflateResetKeep to retain dictionary -- Fix gzwrite.c to accommodate reduced memory zlib compilation -- Have inflate() with Z_FINISH avoid the allocation of a window -- Do not set strm->adler when doing raw inflate -- Fix gzeof() to behave just like feof() when read is not past end of file -- Fix bug in gzread.c when end-of-file is reached -- Avoid use of Z_BUF_ERROR in gz* functions except for premature EOF -- Document gzread() capability to read concurrently written files -- Remove hard-coding of resource compiler in CMakeLists.txt [Blammo] - -Changes in 1.2.5.1 (10 Sep 2011) -- Update FAQ entry on shared builds (#13) -- Avoid symbolic argument to chmod in Makefile.in -- Fix bug and add consts in contrib/puff [Oberhumer] -- Update contrib/puff/zeros.raw test file to have all block types -- Add full coverage test for puff in contrib/puff/Makefile -- Fix static-only-build install in Makefile.in -- Fix bug in unzGetCurrentFileInfo() in contrib/minizip [Kuno] -- Add libz.a dependency to shared in Makefile.in for parallel builds -- Spell out "number" (instead of "nb") in zlib.h for total_in, total_out -- Replace $(...) with `...` in configure for non-bash sh [Bowler] -- Add darwin* to Darwin* and solaris* to SunOS\ 5* in configure [Groffen] -- Add solaris* to Linux* in configure to allow gcc use [Groffen] -- Add *bsd* to Linux* case in configure [Bar-Lev] -- Add inffast.obj to dependencies in win32/Makefile.msc -- Correct spelling error in deflate.h [Kohler] -- Change libzdll.a again to libz.dll.a (!) in win32/Makefile.gcc -- Add test to configure for GNU C looking for gcc in output of $cc -v -- Add zlib.pc generation to win32/Makefile.gcc [Weigelt] -- Fix bug in zlib.h for _FILE_OFFSET_BITS set and _LARGEFILE64_SOURCE not -- Add comment in zlib.h that adler32_combine with len2 < 0 makes no sense -- Make NO_DIVIDE option in adler32.c much faster (thanks to John Reiser) -- Make stronger test in zconf.h to include unistd.h for LFS -- Apply Darwin patches for 64-bit file offsets to contrib/minizip [Slack] -- Fix zlib.h LFS support when Z_PREFIX used -- Add updated as400 support (removed from old) [Monnerat] -- Avoid deflate sensitivity to volatile input data -- Avoid division in adler32_combine for NO_DIVIDE -- Clarify the use of Z_FINISH with deflateBound() amount of space -- Set binary for output file in puff.c -- Use u4 type for crc_table to avoid conversion warnings -- Apply casts in zlib.h to avoid conversion warnings -- Add OF to prototypes for adler32_combine_ and crc32_combine_ [Miller] -- Improve inflateSync() documentation to note indeterminancy -- Add deflatePending() function to return the amount of pending output -- Correct the spelling of "specification" in FAQ [Randers-Pehrson] -- Add a check in configure for stdarg.h, use for gzprintf() -- Check that pointers fit in ints when gzprint() compiled old style -- Add dummy name before $(SHAREDLIBV) in Makefile [Bar-Lev, Bowler] -- Delete line in configure that adds -L. libz.a to LDFLAGS [Weigelt] -- Add debug records in assmebler code [Londer] -- Update RFC references to use http://tools.ietf.org/html/... [Li] -- Add --archs option, use of libtool to configure for Mac OS X [Borstel] - -Changes in 1.2.5 (19 Apr 2010) -- Disable visibility attribute in win32/Makefile.gcc [Bar-Lev] -- Default to libdir as sharedlibdir in configure [Nieder] -- Update copyright dates on modified source files -- Update trees.c to be able to generate modified trees.h -- Exit configure for MinGW, suggesting win32/Makefile.gcc -- Check for NULL path in gz_open [Homurlu] - -Changes in 1.2.4.5 (18 Apr 2010) -- Set sharedlibdir in configure [Torok] -- Set LDFLAGS in Makefile.in [Bar-Lev] -- Avoid mkdir objs race condition in Makefile.in [Bowler] -- Add ZLIB_INTERNAL in front of internal inter-module functions and arrays -- Define ZLIB_INTERNAL to hide internal functions and arrays for GNU C -- Don't use hidden attribute when it is a warning generator (e.g. Solaris) - -Changes in 1.2.4.4 (18 Apr 2010) -- Fix CROSS_PREFIX executable testing, CHOST extract, mingw* [Torok] -- Undefine _LARGEFILE64_SOURCE in zconf.h if it is zero, but not if empty -- Try to use bash or ksh regardless of functionality of /bin/sh -- Fix configure incompatibility with NetBSD sh -- Remove attempt to run under bash or ksh since have better NetBSD fix -- Fix win32/Makefile.gcc for MinGW [Bar-Lev] -- Add diagnostic messages when using CROSS_PREFIX in configure -- Added --sharedlibdir option to configure [Weigelt] -- Use hidden visibility attribute when available [Frysinger] - -Changes in 1.2.4.3 (10 Apr 2010) -- Only use CROSS_PREFIX in configure for ar and ranlib if they exist -- Use CROSS_PREFIX for nm [Bar-Lev] -- Assume _LARGEFILE64_SOURCE defined is equivalent to true -- Avoid use of undefined symbols in #if with && and || -- Make *64 prototypes in gzguts.h consistent with functions -- Add -shared load option for MinGW in configure [Bowler] -- Move z_off64_t to public interface, use instead of off64_t -- Remove ! from shell test in configure (not portable to Solaris) -- Change +0 macro tests to -0 for possibly increased portability - -Changes in 1.2.4.2 (9 Apr 2010) -- Add consistent carriage returns to readme.txt's in masmx86 and masmx64 -- Really provide prototypes for *64 functions when building without LFS -- Only define unlink() in minigzip.c if unistd.h not included -- Update README to point to contrib/vstudio project files -- Move projects/vc6 to old/ and remove projects/ -- Include stdlib.h in minigzip.c for setmode() definition under WinCE -- Clean up assembler builds in win32/Makefile.msc [Rowe] -- Include sys/types.h for Microsoft for off_t definition -- Fix memory leak on error in gz_open() -- Symbolize nm as $NM in configure [Weigelt] -- Use TEST_LDSHARED instead of LDSHARED to link test programs [Weigelt] -- Add +0 to _FILE_OFFSET_BITS and _LFS64_LARGEFILE in case not defined -- Fix bug in gzeof() to take into account unused input data -- Avoid initialization of structures with variables in puff.c -- Updated win32/README-WIN32.txt [Rowe] - -Changes in 1.2.4.1 (28 Mar 2010) -- Remove the use of [a-z] constructs for sed in configure [gentoo 310225] -- Remove $(SHAREDLIB) from LIBS in Makefile.in [Creech] -- Restore "for debugging" comment on sprintf() in gzlib.c -- Remove fdopen for MVS from gzguts.h -- Put new README-WIN32.txt in win32 [Rowe] -- Add check for shell to configure and invoke another shell if needed -- Fix big fat stinking bug in gzseek() on uncompressed files -- Remove vestigial F_OPEN64 define in zutil.h -- Set and check the value of _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE -- Avoid errors on non-LFS systems when applications define LFS macros -- Set EXE to ".exe" in configure for MINGW [Kahle] -- Match crc32() in crc32.c exactly to the prototype in zlib.h [Sherrill] -- Add prefix for cross-compilation in win32/makefile.gcc [Bar-Lev] -- Add DLL install in win32/makefile.gcc [Bar-Lev] -- Allow Linux* or linux* from uname in configure [Bar-Lev] -- Allow ldconfig to be redefined in configure and Makefile.in [Bar-Lev] -- Add cross-compilation prefixes to configure [Bar-Lev] -- Match type exactly in gz_load() invocation in gzread.c -- Match type exactly of zcalloc() in zutil.c to zlib.h alloc_func -- Provide prototypes for *64 functions when building zlib without LFS -- Don't use -lc when linking shared library on MinGW -- Remove errno.h check in configure and vestigial errno code in zutil.h - -Changes in 1.2.4 (14 Mar 2010) -- Fix VER3 extraction in configure for no fourth subversion -- Update zlib.3, add docs to Makefile.in to make .pdf out of it -- Add zlib.3.pdf to distribution -- Don't set error code in gzerror() if passed pointer is NULL -- Apply destination directory fixes to CMakeLists.txt [Lowman] -- Move #cmakedefine's to a new zconf.in.cmakein -- Restore zconf.h for builds that don't use configure or cmake -- Add distclean to dummy Makefile for convenience -- Update and improve INDEX, README, and FAQ -- Update CMakeLists.txt for the return of zconf.h [Lowman] -- Update contrib/vstudio/vc9 and vc10 [Vollant] -- Change libz.dll.a back to libzdll.a in win32/Makefile.gcc -- Apply license and readme changes to contrib/asm686 [Raiter] -- Check file name lengths and add -c option in minigzip.c [Li] -- Update contrib/amd64 and contrib/masmx86/ [Vollant] -- Avoid use of "eof" parameter in trees.c to not shadow library variable -- Update make_vms.com for removal of zlibdefs.h [Zinser] -- Update assembler code and vstudio projects in contrib [Vollant] -- Remove outdated assembler code contrib/masm686 and contrib/asm586 -- Remove old vc7 and vc8 from contrib/vstudio -- Update win32/Makefile.msc, add ZLIB_VER_SUBREVISION [Rowe] -- Fix memory leaks in gzclose_r() and gzclose_w(), file leak in gz_open() -- Add contrib/gcc_gvmat64 for longest_match and inflate_fast [Vollant] -- Remove *64 functions from win32/zlib.def (they're not 64-bit yet) -- Fix bug in void-returning vsprintf() case in gzwrite.c -- Fix name change from inflate.h in contrib/inflate86/inffas86.c -- Check if temporary file exists before removing in make_vms.com [Zinser] -- Fix make install and uninstall for --static option -- Fix usage of _MSC_VER in gzguts.h and zutil.h [Truta] -- Update readme.txt in contrib/masmx64 and masmx86 to assemble - -Changes in 1.2.3.9 (21 Feb 2010) -- Expunge gzio.c -- Move as400 build information to old -- Fix updates in contrib/minizip and contrib/vstudio -- Add const to vsnprintf test in configure to avoid warnings [Weigelt] -- Delete zconf.h (made by configure) [Weigelt] -- Change zconf.in.h to zconf.h.in per convention [Weigelt] -- Check for NULL buf in gzgets() -- Return empty string for gzgets() with len == 1 (like fgets()) -- Fix description of gzgets() in zlib.h for end-of-file, NULL return -- Update minizip to 1.1 [Vollant] -- Avoid MSVC loss of data warnings in gzread.c, gzwrite.c -- Note in zlib.h that gzerror() should be used to distinguish from EOF -- Remove use of snprintf() from gzlib.c -- Fix bug in gzseek() -- Update contrib/vstudio, adding vc9 and vc10 [Kuno, Vollant] -- Fix zconf.h generation in CMakeLists.txt [Lowman] -- Improve comments in zconf.h where modified by configure - -Changes in 1.2.3.8 (13 Feb 2010) -- Clean up text files (tabs, trailing whitespace, etc.) [Oberhumer] -- Use z_off64_t in gz_zero() and gz_skip() to match state->skip -- Avoid comparison problem when sizeof(int) == sizeof(z_off64_t) -- Revert to Makefile.in from 1.2.3.6 (live with the clutter) -- Fix missing error return in gzflush(), add zlib.h note -- Add *64 functions to zlib.map [Levin] -- Fix signed/unsigned comparison in gz_comp() -- Use SFLAGS when testing shared linking in configure -- Add --64 option to ./configure to use -m64 with gcc -- Fix ./configure --help to correctly name options -- Have make fail if a test fails [Levin] -- Avoid buffer overrun in contrib/masmx64/gvmat64.asm [Simpson] -- Remove assembler object files from contrib - -Changes in 1.2.3.7 (24 Jan 2010) -- Always gzopen() with O_LARGEFILE if available -- Fix gzdirect() to work immediately after gzopen() or gzdopen() -- Make gzdirect() more precise when the state changes while reading -- Improve zlib.h documentation in many places -- Catch memory allocation failure in gz_open() -- Complete close operation if seek forward in gzclose_w() fails -- Return Z_ERRNO from gzclose_r() if close() fails -- Return Z_STREAM_ERROR instead of EOF for gzclose() being passed NULL -- Return zero for gzwrite() errors to match zlib.h description -- Return -1 on gzputs() error to match zlib.h description -- Add zconf.in.h to allow recovery from configure modification [Weigelt] -- Fix static library permissions in Makefile.in [Weigelt] -- Avoid warnings in configure tests that hide functionality [Weigelt] -- Add *BSD and DragonFly to Linux case in configure [gentoo 123571] -- Change libzdll.a to libz.dll.a in win32/Makefile.gcc [gentoo 288212] -- Avoid access of uninitialized data for first inflateReset2 call [Gomes] -- Keep object files in subdirectories to reduce the clutter somewhat -- Remove default Makefile and zlibdefs.h, add dummy Makefile -- Add new external functions to Z_PREFIX, remove duplicates, z_z_ -> z_ -- Remove zlibdefs.h completely -- modify zconf.h instead - -Changes in 1.2.3.6 (17 Jan 2010) -- Avoid void * arithmetic in gzread.c and gzwrite.c -- Make compilers happier with const char * for gz_error message -- Avoid unused parameter warning in inflate.c -- Avoid signed-unsigned comparison warning in inflate.c -- Indent #pragma's for traditional C -- Fix usage of strwinerror() in glib.c, change to gz_strwinerror() -- Correct email address in configure for system options -- Update make_vms.com and add make_vms.com to contrib/minizip [Zinser] -- Update zlib.map [Brown] -- Fix Makefile.in for Solaris 10 make of example64 and minizip64 [Torok] -- Apply various fixes to CMakeLists.txt [Lowman] -- Add checks on len in gzread() and gzwrite() -- Add error message for no more room for gzungetc() -- Remove zlib version check in gzwrite() -- Defer compression of gzprintf() result until need to -- Use snprintf() in gzdopen() if available -- Remove USE_MMAP configuration determination (only used by minigzip) -- Remove examples/pigz.c (available separately) -- Update examples/gun.c to 1.6 - -Changes in 1.2.3.5 (8 Jan 2010) -- Add space after #if in zutil.h for some compilers -- Fix relatively harmless bug in deflate_fast() [Exarevsky] -- Fix same problem in deflate_slow() -- Add $(SHAREDLIBV) to LIBS in Makefile.in [Brown] -- Add deflate_rle() for faster Z_RLE strategy run-length encoding -- Add deflate_huff() for faster Z_HUFFMAN_ONLY encoding -- Change name of "write" variable in inffast.c to avoid library collisions -- Fix premature EOF from gzread() in gzio.c [Brown] -- Use zlib header window size if windowBits is 0 in inflateInit2() -- Remove compressBound() call in deflate.c to avoid linking compress.o -- Replace use of errno in gz* with functions, support WinCE [Alves] -- Provide alternative to perror() in minigzip.c for WinCE [Alves] -- Don't use _vsnprintf on later versions of MSVC [Lowman] -- Add CMake build script and input file [Lowman] -- Update contrib/minizip to 1.1 [Svensson, Vollant] -- Moved nintendods directory from contrib to . -- Replace gzio.c with a new set of routines with the same functionality -- Add gzbuffer(), gzoffset(), gzclose_r(), gzclose_w() as part of above -- Update contrib/minizip to 1.1b -- Change gzeof() to return 0 on error instead of -1 to agree with zlib.h - -Changes in 1.2.3.4 (21 Dec 2009) -- Use old school .SUFFIXES in Makefile.in for FreeBSD compatibility -- Update comments in configure and Makefile.in for default --shared -- Fix test -z's in configure [Marquess] -- Build examplesh and minigzipsh when not testing -- Change NULL's to Z_NULL's in deflate.c and in comments in zlib.h -- Import LDFLAGS from the environment in configure -- Fix configure to populate SFLAGS with discovered CFLAGS options -- Adapt make_vms.com to the new Makefile.in [Zinser] -- Add zlib2ansi script for C++ compilation [Marquess] -- Add _FILE_OFFSET_BITS=64 test to make test (when applicable) -- Add AMD64 assembler code for longest match to contrib [Teterin] -- Include options from $SFLAGS when doing $LDSHARED -- Simplify 64-bit file support by introducing z_off64_t type -- Make shared object files in objs directory to work around old Sun cc -- Use only three-part version number for Darwin shared compiles -- Add rc option to ar in Makefile.in for when ./configure not run -- Add -WI,-rpath,. to LDFLAGS for OSF 1 V4* -- Set LD_LIBRARYN32_PATH for SGI IRIX shared compile -- Protect against _FILE_OFFSET_BITS being defined when compiling zlib -- Rename Makefile.in targets allstatic to static and allshared to shared -- Fix static and shared Makefile.in targets to be independent -- Correct error return bug in gz_open() by setting state [Brown] -- Put spaces before ;;'s in configure for better sh compatibility -- Add pigz.c (parallel implementation of gzip) to examples/ -- Correct constant in crc32.c to UL [Leventhal] -- Reject negative lengths in crc32_combine() -- Add inflateReset2() function to work like inflateEnd()/inflateInit2() -- Include sys/types.h for _LARGEFILE64_SOURCE [Brown] -- Correct typo in doc/algorithm.txt [Janik] -- Fix bug in adler32_combine() [Zhu] -- Catch missing-end-of-block-code error in all inflates and in puff - Assures that random input to inflate eventually results in an error -- Added enough.c (calculation of ENOUGH for inftrees.h) to examples/ -- Update ENOUGH and its usage to reflect discovered bounds -- Fix gzerror() error report on empty input file [Brown] -- Add ush casts in trees.c to avoid pedantic runtime errors -- Fix typo in zlib.h uncompress() description [Reiss] -- Correct inflate() comments with regard to automatic header detection -- Remove deprecation comment on Z_PARTIAL_FLUSH (it stays) -- Put new version of gzlog (2.0) in examples with interruption recovery -- Add puff compile option to permit invalid distance-too-far streams -- Add puff TEST command options, ability to read piped input -- Prototype the *64 functions in zlib.h when _FILE_OFFSET_BITS == 64, but - _LARGEFILE64_SOURCE not defined -- Fix Z_FULL_FLUSH to truly erase the past by resetting s->strstart -- Fix deflateSetDictionary() to use all 32K for output consistency -- Remove extraneous #define MIN_LOOKAHEAD in deflate.c (in deflate.h) -- Clear bytes after deflate lookahead to avoid use of uninitialized data -- Change a limit in inftrees.c to be more transparent to Coverity Prevent -- Update win32/zlib.def with exported symbols from zlib.h -- Correct spelling errors in zlib.h [Willem, Sobrado] -- Allow Z_BLOCK for deflate() to force a new block -- Allow negative bits in inflatePrime() to delete existing bit buffer -- Add Z_TREES flush option to inflate() to return at end of trees -- Add inflateMark() to return current state information for random access -- Add Makefile for NintendoDS to contrib [Costa] -- Add -w in configure compile tests to avoid spurious warnings [Beucler] -- Fix typos in zlib.h comments for deflateSetDictionary() -- Fix EOF detection in transparent gzread() [Maier] - -Changes in 1.2.3.3 (2 October 2006) -- Make --shared the default for configure, add a --static option -- Add compile option to permit invalid distance-too-far streams -- Add inflateUndermine() function which is required to enable above -- Remove use of "this" variable name for C++ compatibility [Marquess] -- Add testing of shared library in make test, if shared library built -- Use ftello() and fseeko() if available instead of ftell() and fseek() -- Provide two versions of all functions that use the z_off_t type for - binary compatibility -- a normal version and a 64-bit offset version, - per the Large File Support Extension when _LARGEFILE64_SOURCE is - defined; use the 64-bit versions by default when _FILE_OFFSET_BITS - is defined to be 64 -- Add a --uname= option to configure to perhaps help with cross-compiling - -Changes in 1.2.3.2 (3 September 2006) -- Turn off silly Borland warnings [Hay] -- Use off64_t and define _LARGEFILE64_SOURCE when present -- Fix missing dependency on inffixed.h in Makefile.in -- Rig configure --shared to build both shared and static [Teredesai, Truta] -- Remove zconf.in.h and instead create a new zlibdefs.h file -- Fix contrib/minizip/unzip.c non-encrypted after encrypted [Vollant] -- Add treebuild.xml (see http://treebuild.metux.de/) [Weigelt] - -Changes in 1.2.3.1 (16 August 2006) -- Add watcom directory with OpenWatcom make files [Daniel] -- Remove #undef of FAR in zconf.in.h for MVS [Fedtke] -- Update make_vms.com [Zinser] -- Use -fPIC for shared build in configure [Teredesai, Nicholson] -- Use only major version number for libz.so on IRIX and OSF1 [Reinholdtsen] -- Use fdopen() (not _fdopen()) for Interix in zutil.h [Bäck] -- Add some FAQ entries about the contrib directory -- Update the MVS question in the FAQ -- Avoid extraneous reads after EOF in gzio.c [Brown] -- Correct spelling of "successfully" in gzio.c [Randers-Pehrson] -- Add comments to zlib.h about gzerror() usage [Brown] -- Set extra flags in gzip header in gzopen() like deflate() does -- Make configure options more compatible with double-dash conventions - [Weigelt] -- Clean up compilation under Solaris SunStudio cc [Rowe, Reinholdtsen] -- Fix uninstall target in Makefile.in [Truta] -- Add pkgconfig support [Weigelt] -- Use $(DESTDIR) macro in Makefile.in [Reinholdtsen, Weigelt] -- Replace set_data_type() with a more accurate detect_data_type() in - trees.c, according to the txtvsbin.txt document [Truta] -- Swap the order of #include and #include "zlib.h" in - gzio.c, example.c and minigzip.c [Truta] -- Shut up annoying VS2005 warnings about standard C deprecation [Rowe, - Truta] (where?) -- Fix target "clean" from win32/Makefile.bor [Truta] -- Create .pdb and .manifest files in win32/makefile.msc [Ziegler, Rowe] -- Update zlib www home address in win32/DLL_FAQ.txt [Truta] -- Update contrib/masmx86/inffas32.asm for VS2005 [Vollant, Van Wassenhove] -- Enable browse info in the "Debug" and "ASM Debug" configurations in - the Visual C++ 6 project, and set (non-ASM) "Debug" as default [Truta] -- Add pkgconfig support [Weigelt] -- Add ZLIB_VER_MAJOR, ZLIB_VER_MINOR and ZLIB_VER_REVISION in zlib.h, - for use in win32/zlib1.rc [Polushin, Rowe, Truta] -- Add a document that explains the new text detection scheme to - doc/txtvsbin.txt [Truta] -- Add rfc1950.txt, rfc1951.txt and rfc1952.txt to doc/ [Truta] -- Move algorithm.txt into doc/ [Truta] -- Synchronize FAQ with website -- Fix compressBound(), was low for some pathological cases [Fearnley] -- Take into account wrapper variations in deflateBound() -- Set examples/zpipe.c input and output to binary mode for Windows -- Update examples/zlib_how.html with new zpipe.c (also web site) -- Fix some warnings in examples/gzlog.c and examples/zran.c (it seems - that gcc became pickier in 4.0) -- Add zlib.map for Linux: "All symbols from zlib-1.1.4 remain - un-versioned, the patch adds versioning only for symbols introduced in - zlib-1.2.0 or later. It also declares as local those symbols which are - not designed to be exported." [Levin] -- Update Z_PREFIX list in zconf.in.h, add --zprefix option to configure -- Do not initialize global static by default in trees.c, add a response - NO_INIT_GLOBAL_POINTERS to initialize them if needed [Marquess] -- Don't use strerror() in gzio.c under WinCE [Yakimov] -- Don't use errno.h in zutil.h under WinCE [Yakimov] -- Move arguments for AR to its usage to allow replacing ar [Marot] -- Add HAVE_VISIBILITY_PRAGMA in zconf.in.h for Mozilla [Randers-Pehrson] -- Improve inflateInit() and inflateInit2() documentation -- Fix structure size comment in inflate.h -- Change configure help option from --h* to --help [Santos] - -Changes in 1.2.3 (18 July 2005) -- Apply security vulnerability fixes to contrib/infback9 as well -- Clean up some text files (carriage returns, trailing space) -- Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant] - -Changes in 1.2.2.4 (11 July 2005) -- Add inflatePrime() function for starting inflation at bit boundary -- Avoid some Visual C warnings in deflate.c -- Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit - compile -- Fix some spelling errors in comments [Betts] -- Correct inflateInit2() error return documentation in zlib.h -- Add zran.c example of compressed data random access to examples - directory, shows use of inflatePrime() -- Fix cast for assignments to strm->state in inflate.c and infback.c -- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer] -- Move declarations of gf2 functions to right place in crc32.c [Oberhumer] -- Add cast in trees.c t avoid a warning [Oberhumer] -- Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer] -- Update make_vms.com [Zinser] -- Initialize state->write in inflateReset() since copied in inflate_fast() -- Be more strict on incomplete code sets in inflate_table() and increase - ENOUGH and MAXD -- this repairs a possible security vulnerability for - invalid inflate input. Thanks to Tavis Ormandy and Markus Oberhumer for - discovering the vulnerability and providing test cases. -- Add ia64 support to configure for HP-UX [Smith] -- Add error return to gzread() for format or i/o error [Levin] -- Use malloc.h for OS/2 [Necasek] - -Changes in 1.2.2.3 (27 May 2005) -- Replace 1U constants in inflate.c and inftrees.c for 64-bit compile -- Typecast fread() return values in gzio.c [Vollant] -- Remove trailing space in minigzip.c outmode (VC++ can't deal with it) -- Fix crc check bug in gzread() after gzungetc() [Heiner] -- Add the deflateTune() function to adjust internal compression parameters -- Add a fast gzip decompressor, gun.c, to examples (use of inflateBack) -- Remove an incorrect assertion in examples/zpipe.c -- Add C++ wrapper in infback9.h [Donais] -- Fix bug in inflateCopy() when decoding fixed codes -- Note in zlib.h how much deflateSetDictionary() actually uses -- Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used) -- Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer] -- Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer] -- Add gzdirect() function to indicate transparent reads -- Update contrib/minizip [Vollant] -- Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer] -- Add casts in crc32.c to avoid warnings [Oberhumer] -- Add contrib/masmx64 [Vollant] -- Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant] - -Changes in 1.2.2.2 (30 December 2004) -- Replace structure assignments in deflate.c and inflate.c with zmemcpy to - avoid implicit memcpy calls (portability for no-library compilation) -- Increase sprintf() buffer size in gzdopen() to allow for large numbers -- Add INFLATE_STRICT to check distances against zlib header -- Improve WinCE errno handling and comments [Chang] -- Remove comment about no gzip header processing in FAQ -- Add Z_FIXED strategy option to deflateInit2() to force fixed trees -- Add updated make_vms.com [Coghlan], update README -- Create a new "examples" directory, move gzappend.c there, add zpipe.c, - fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html. -- Add FAQ entry and comments in deflate.c on uninitialized memory access -- Add Solaris 9 make options in configure [Gilbert] -- Allow strerror() usage in gzio.c for STDC -- Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer] -- Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant] -- Use z_off_t for adler32_combine() and crc32_combine() lengths -- Make adler32() much faster for small len -- Use OS_CODE in deflate() default gzip header - -Changes in 1.2.2.1 (31 October 2004) -- Allow inflateSetDictionary() call for raw inflate -- Fix inflate header crc check bug for file names and comments -- Add deflateSetHeader() and gz_header structure for custom gzip headers -- Add inflateGetheader() to retrieve gzip headers -- Add crc32_combine() and adler32_combine() functions -- Add alloc_func, free_func, in_func, out_func to Z_PREFIX list -- Use zstreamp consistently in zlib.h (inflate_back functions) -- Remove GUNZIP condition from definition of inflate_mode in inflate.h - and in contrib/inflate86/inffast.S [Truta, Anderson] -- Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson] -- Update projects/README.projects and projects/visualc6 [Truta] -- Update win32/DLL_FAQ.txt [Truta] -- Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta] -- Deprecate Z_ASCII; use Z_TEXT instead [Truta] -- Use a new algorithm for setting strm->data_type in trees.c [Truta] -- Do not define an exit() prototype in zutil.c unless DEBUG defined -- Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta] -- Add comment in zlib.h for Z_NO_FLUSH parameter to deflate() -- Fix Darwin build version identification [Peterson] - -Changes in 1.2.2 (3 October 2004) -- Update zlib.h comments on gzip in-memory processing -- Set adler to 1 in inflateReset() to support Java test suite [Walles] -- Add contrib/dotzlib [Ravn] -- Update win32/DLL_FAQ.txt [Truta] -- Update contrib/minizip [Vollant] -- Move contrib/visual-basic.txt to old/ [Truta] -- Fix assembler builds in projects/visualc6/ [Truta] - -Changes in 1.2.1.2 (9 September 2004) -- Update INDEX file -- Fix trees.c to update strm->data_type (no one ever noticed!) -- Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown] -- Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE) -- Add limited multitasking protection to DYNAMIC_CRC_TABLE -- Add NO_vsnprintf for VMS in zutil.h [Mozilla] -- Don't declare strerror() under VMS [Mozilla] -- Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize -- Update contrib/ada [Anisimkov] -- Update contrib/minizip [Vollant] -- Fix configure to not hardcode directories for Darwin [Peterson] -- Fix gzio.c to not return error on empty files [Brown] -- Fix indentation; update version in contrib/delphi/ZLib.pas and - contrib/pascal/zlibpas.pas [Truta] -- Update mkasm.bat in contrib/masmx86 [Truta] -- Update contrib/untgz [Truta] -- Add projects/README.projects [Truta] -- Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta] -- Update win32/DLL_FAQ.txt [Truta] -- Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta] -- Remove an unnecessary assignment to curr in inftrees.c [Truta] -- Add OS/2 to exe builds in configure [Poltorak] -- Remove err dummy parameter in zlib.h [Kientzle] - -Changes in 1.2.1.1 (9 January 2004) -- Update email address in README -- Several FAQ updates -- Fix a big fat bug in inftrees.c that prevented decoding valid - dynamic blocks with only literals and no distance codes -- - Thanks to "Hot Emu" for the bug report and sample file -- Add a note to puff.c on no distance codes case. - -Changes in 1.2.1 (17 November 2003) -- Remove a tab in contrib/gzappend/gzappend.c -- Update some interfaces in contrib for new zlib functions -- Update zlib version number in some contrib entries -- Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta] -- Support shared libraries on Hurd and KFreeBSD [Brown] -- Fix error in NO_DIVIDE option of adler32.c - -Changes in 1.2.0.8 (4 November 2003) -- Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas -- Add experimental NO_DIVIDE #define in adler32.c - - Possibly faster on some processors (let me know if it is) -- Correct Z_BLOCK to not return on first inflate call if no wrap -- Fix strm->data_type on inflate() return to correctly indicate EOB -- Add deflatePrime() function for appending in the middle of a byte -- Add contrib/gzappend for an example of appending to a stream -- Update win32/DLL_FAQ.txt [Truta] -- Delete Turbo C comment in README [Truta] -- Improve some indentation in zconf.h [Truta] -- Fix infinite loop on bad input in configure script [Church] -- Fix gzeof() for concatenated gzip files [Johnson] -- Add example to contrib/visual-basic.txt [Michael B.] -- Add -p to mkdir's in Makefile.in [vda] -- Fix configure to properly detect presence or lack of printf functions -- Add AS400 support [Monnerat] -- Add a little Cygwin support [Wilson] - -Changes in 1.2.0.7 (21 September 2003) -- Correct some debug formats in contrib/infback9 -- Cast a type in a debug statement in trees.c -- Change search and replace delimiter in configure from % to # [Beebe] -- Update contrib/untgz to 0.2 with various fixes [Truta] -- Add build support for Amiga [Nikl] -- Remove some directories in old that have been updated to 1.2 -- Add dylib building for Mac OS X in configure and Makefile.in -- Remove old distribution stuff from Makefile -- Update README to point to DLL_FAQ.txt, and add comment on Mac OS X -- Update links in README - -Changes in 1.2.0.6 (13 September 2003) -- Minor FAQ updates -- Update contrib/minizip to 1.00 [Vollant] -- Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta] -- Update POSTINC comment for 68060 [Nikl] -- Add contrib/infback9 with deflate64 decoding (unsupported) -- For MVS define NO_vsnprintf and undefine FAR [van Burik] -- Add pragma for fdopen on MVS [van Burik] - -Changes in 1.2.0.5 (8 September 2003) -- Add OF to inflateBackEnd() declaration in zlib.h -- Remember start when using gzdopen in the middle of a file -- Use internal off_t counters in gz* functions to properly handle seeks -- Perform more rigorous check for distance-too-far in inffast.c -- Add Z_BLOCK flush option to return from inflate at block boundary -- Set strm->data_type on return from inflate - - Indicate bits unused, if at block boundary, and if in last block -- Replace size_t with ptrdiff_t in crc32.c, and check for correct size -- Add condition so old NO_DEFLATE define still works for compatibility -- FAQ update regarding the Windows DLL [Truta] -- INDEX update: add qnx entry, remove aix entry [Truta] -- Install zlib.3 into mandir [Wilson] -- Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta] -- Adapt the zlib interface to the new DLL convention guidelines [Truta] -- Introduce ZLIB_WINAPI macro to allow the export of functions using - the WINAPI calling convention, for Visual Basic [Vollant, Truta] -- Update msdos and win32 scripts and makefiles [Truta] -- Export symbols by name, not by ordinal, in win32/zlib.def [Truta] -- Add contrib/ada [Anisimkov] -- Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta] -- Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant] -- Add contrib/masm686 [Truta] -- Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm - [Truta, Vollant] -- Update contrib/delphi; rename to contrib/pascal; add example [Truta] -- Remove contrib/delphi2; add a new contrib/delphi [Truta] -- Avoid inclusion of the nonstandard in contrib/iostream, - and fix some method prototypes [Truta] -- Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip - [Truta] -- Avoid the use of backslash (\) in contrib/minizip [Vollant] -- Fix file time handling in contrib/untgz; update makefiles [Truta] -- Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines - [Vollant] -- Remove contrib/vstudio/vc15_16 [Vollant] -- Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta] -- Update README.contrib [Truta] -- Invert the assignment order of match_head and s->prev[...] in - INSERT_STRING [Truta] -- Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings - [Truta] -- Compare function pointers with 0, not with NULL or Z_NULL [Truta] -- Fix prototype of syncsearch in inflate.c [Truta] -- Introduce ASMINF macro to be enabled when using an ASM implementation - of inflate_fast [Truta] -- Change NO_DEFLATE to NO_GZCOMPRESS [Truta] -- Modify test_gzio in example.c to take a single file name as a - parameter [Truta] -- Exit the example.c program if gzopen fails [Truta] -- Add type casts around strlen in example.c [Truta] -- Remove casting to sizeof in minigzip.c; give a proper type - to the variable compared with SUFFIX_LEN [Truta] -- Update definitions of STDC and STDC99 in zconf.h [Truta] -- Synchronize zconf.h with the new Windows DLL interface [Truta] -- Use SYS16BIT instead of __32BIT__ to distinguish between - 16- and 32-bit platforms [Truta] -- Use far memory allocators in small 16-bit memory models for - Turbo C [Truta] -- Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in - zlibCompileFlags [Truta] -- Cygwin has vsnprintf [Wilson] -- In Windows16, OS_CODE is 0, as in MSDOS [Truta] -- In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson] - -Changes in 1.2.0.4 (10 August 2003) -- Minor FAQ updates -- Be more strict when checking inflateInit2's windowBits parameter -- Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well -- Add gzip wrapper option to deflateInit2 using windowBits -- Add updated QNX rule in configure and qnx directory [Bonnefoy] -- Make inflate distance-too-far checks more rigorous -- Clean up FAR usage in inflate -- Add casting to sizeof() in gzio.c and minigzip.c - -Changes in 1.2.0.3 (19 July 2003) -- Fix silly error in gzungetc() implementation [Vollant] -- Update contrib/minizip and contrib/vstudio [Vollant] -- Fix printf format in example.c -- Correct cdecl support in zconf.in.h [Anisimkov] -- Minor FAQ updates - -Changes in 1.2.0.2 (13 July 2003) -- Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons -- Attempt to avoid warnings in crc32.c for pointer-int conversion -- Add AIX to configure, remove aix directory [Bakker] -- Add some casts to minigzip.c -- Improve checking after insecure sprintf() or vsprintf() calls -- Remove #elif's from crc32.c -- Change leave label to inf_leave in inflate.c and infback.c to avoid - library conflicts -- Remove inflate gzip decoding by default--only enable gzip decoding by - special request for stricter backward compatibility -- Add zlibCompileFlags() function to return compilation information -- More typecasting in deflate.c to avoid warnings -- Remove leading underscore from _Capital #defines [Truta] -- Fix configure to link shared library when testing -- Add some Windows CE target adjustments [Mai] -- Remove #define ZLIB_DLL in zconf.h [Vollant] -- Add zlib.3 [Rodgers] -- Update RFC URL in deflate.c and algorithm.txt [Mai] -- Add zlib_dll_FAQ.txt to contrib [Truta] -- Add UL to some constants [Truta] -- Update minizip and vstudio [Vollant] -- Remove vestigial NEED_DUMMY_RETURN from zconf.in.h -- Expand use of NO_DUMMY_DECL to avoid all dummy structures -- Added iostream3 to contrib [Schwardt] -- Replace rewind() with fseek() for WinCE [Truta] -- Improve setting of zlib format compression level flags - - Report 0 for huffman and rle strategies and for level == 0 or 1 - - Report 2 only for level == 6 -- Only deal with 64K limit when necessary at compile time [Truta] -- Allow TOO_FAR check to be turned off at compile time [Truta] -- Add gzclearerr() function [Souza] -- Add gzungetc() function - -Changes in 1.2.0.1 (17 March 2003) -- Add Z_RLE strategy for run-length encoding [Truta] - - When Z_RLE requested, restrict matches to distance one - - Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE -- Correct FASTEST compilation to allow level == 0 -- Clean up what gets compiled for FASTEST -- Incorporate changes to zconf.in.h [Vollant] - - Refine detection of Turbo C need for dummy returns - - Refine ZLIB_DLL compilation - - Include additional header file on VMS for off_t typedef -- Try to use _vsnprintf where it supplants vsprintf [Vollant] -- Add some casts in inffast.c -- Enchance comments in zlib.h on what happens if gzprintf() tries to - write more than 4095 bytes before compression -- Remove unused state from inflateBackEnd() -- Remove exit(0) from minigzip.c, example.c -- Get rid of all those darn tabs -- Add "check" target to Makefile.in that does the same thing as "test" -- Add "mostlyclean" and "maintainer-clean" targets to Makefile.in -- Update contrib/inflate86 [Anderson] -- Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant] -- Add msdos and win32 directories with makefiles [Truta] -- More additions and improvements to the FAQ - -Changes in 1.2.0 (9 March 2003) -- New and improved inflate code - - About 20% faster - - Does not allocate 32K window unless and until needed - - Automatically detects and decompresses gzip streams - - Raw inflate no longer needs an extra dummy byte at end - - Added inflateBack functions using a callback interface--even faster - than inflate, useful for file utilities (gzip, zip) - - Added inflateCopy() function to record state for random access on - externally generated deflate streams (e.g. in gzip files) - - More readable code (I hope) -- New and improved crc32() - - About 50% faster, thanks to suggestions from Rodney Brown -- Add deflateBound() and compressBound() functions -- Fix memory leak in deflateInit2() -- Permit setting dictionary for raw deflate (for parallel deflate) -- Fix const declaration for gzwrite() -- Check for some malloc() failures in gzio.c -- Fix bug in gzopen() on single-byte file 0x1f -- Fix bug in gzread() on concatenated file with 0x1f at end of buffer - and next buffer doesn't start with 0x8b -- Fix uncompress() to return Z_DATA_ERROR on truncated input -- Free memory at end of example.c -- Remove MAX #define in trees.c (conflicted with some libraries) -- Fix static const's in deflate.c, gzio.c, and zutil.[ch] -- Declare malloc() and free() in gzio.c if STDC not defined -- Use malloc() instead of calloc() in zutil.c if int big enough -- Define STDC for AIX -- Add aix/ with approach for compiling shared library on AIX -- Add HP-UX support for shared libraries in configure -- Add OpenUNIX support for shared libraries in configure -- Use $cc instead of gcc to build shared library -- Make prefix directory if needed when installing -- Correct Macintosh avoidance of typedef Byte in zconf.h -- Correct Turbo C memory allocation when under Linux -- Use libz.a instead of -lz in Makefile (assure use of compiled library) -- Update configure to check for snprintf or vsnprintf functions and their - return value, warn during make if using an insecure function -- Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that - is lost when library is used--resolution is to build new zconf.h -- Documentation improvements (in zlib.h): - - Document raw deflate and inflate - - Update RFCs URL - - Point out that zlib and gzip formats are different - - Note that Z_BUF_ERROR is not fatal - - Document string limit for gzprintf() and possible buffer overflow - - Note requirement on avail_out when flushing - - Note permitted values of flush parameter of inflate() -- Add some FAQs (and even answers) to the FAQ -- Add contrib/inflate86/ for x86 faster inflate -- Add contrib/blast/ for PKWare Data Compression Library decompression -- Add contrib/puff/ simple inflate for deflate format description - -Changes in 1.1.4 (11 March 2002) -- ZFREE was repeated on same allocation on some error conditions. - This creates a security problem described in - http://www.zlib.org/advisory-2002-03-11.txt -- Returned incorrect error (Z_MEM_ERROR) on some invalid data -- Avoid accesses before window for invalid distances with inflate window - less than 32K. -- force windowBits > 8 to avoid a bug in the encoder for a window size - of 256 bytes. (A complete fix will be available in 1.1.5). - -Changes in 1.1.3 (9 July 1998) -- fix "an inflate input buffer bug that shows up on rare but persistent - occasions" (Mark) -- fix gzread and gztell for concatenated .gz files (Didier Le Botlan) -- fix gzseek(..., SEEK_SET) in write mode -- fix crc check after a gzeek (Frank Faubert) -- fix miniunzip when the last entry in a zip file is itself a zip file - (J Lillge) -- add contrib/asm586 and contrib/asm686 (Brian Raiter) - See http://www.muppetlabs.com/~breadbox/software/assembly.html -- add support for Delphi 3 in contrib/delphi (Bob Dellaca) -- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti) -- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren) -- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks) -- added a FAQ file - -- Support gzdopen on Mac with Metrowerks (Jason Linhart) -- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart) -- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young) -- avoid some warnings with Borland C (Tom Tanner) -- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant) -- emulate utime() for WIN32 in contrib/untgz (Gilles Vollant) -- allow several arguments to configure (Tim Mooney, Frodo Looijaard) -- use libdir and includedir in Makefile.in (Tim Mooney) -- support shared libraries on OSF1 V4 (Tim Mooney) -- remove so_locations in "make clean" (Tim Mooney) -- fix maketree.c compilation error (Glenn, Mark) -- Python interface to zlib now in Python 1.5 (Jeremy Hylton) -- new Makefile.riscos (Rich Walker) -- initialize static descriptors in trees.c for embedded targets (Nick Smith) -- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith) -- add the OS/2 files in Makefile.in too (Andrew Zabolotny) -- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane) -- fix maketree.c to allow clean compilation of inffixed.h (Mark) -- fix parameter check in deflateCopy (Gunther Nikl) -- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler) -- Many portability patches by Christian Spieler: - . zutil.c, zutil.h: added "const" for zmem* - . Make_vms.com: fixed some typos - . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists - . msdos/Makefile.msc: remove "default rtl link library" info from obj files - . msdos/Makefile.*: use model-dependent name for the built zlib library - . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc: - new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT) -- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane) -- replace __far with _far for better portability (Christian Spieler, Tom Lane) -- fix test for errno.h in configure (Tim Newsham) - -Changes in 1.1.2 (19 March 98) -- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant) - See http://www.winimage.com/zLibDll/unzip.html -- preinitialize the inflate tables for fixed codes, to make the code - completely thread safe (Mark) -- some simplifications and slight speed-up to the inflate code (Mark) -- fix gzeof on non-compressed files (Allan Schrum) -- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs) -- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn) -- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny) -- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori) -- do not wrap extern "C" around system includes (Tom Lane) -- mention zlib binding for TCL in README (Andreas Kupries) -- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert) -- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson) -- allow "configure --prefix $HOME" (Tim Mooney) -- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson) -- move Makefile.sas to amiga/Makefile.sas - -Changes in 1.1.1 (27 Feb 98) -- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson) -- remove block truncation heuristic which had very marginal effect for zlib - (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the - compression ratio on some files. This also allows inlining _tr_tally for - matches in deflate_slow. -- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier) - -Changes in 1.1.0 (24 Feb 98) -- do not return STREAM_END prematurely in inflate (John Bowler) -- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler) -- compile with -DFASTEST to get compression code optimized for speed only -- in minigzip, try mmap'ing the input file first (Miguel Albrecht) -- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain - on Sun but significant on HP) - -- add a pointer to experimental unzip library in README (Gilles Vollant) -- initialize variable gcc in configure (Chris Herborth) - -Changes in 1.0.9 (17 Feb 1998) -- added gzputs and gzgets functions -- do not clear eof flag in gzseek (Mark Diekhans) -- fix gzseek for files in transparent mode (Mark Diekhans) -- do not assume that vsprintf returns the number of bytes written (Jens Krinke) -- replace EXPORT with ZEXPORT to avoid conflict with other programs -- added compress2 in zconf.h, zlib.def, zlib.dnt -- new asm code from Gilles Vollant in contrib/asm386 -- simplify the inflate code (Mark): - . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() - . ZALLOC the length list in inflate_trees_fixed() instead of using stack - . ZALLOC the value area for huft_build() instead of using stack - . Simplify Z_FINISH check in inflate() - -- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8 -- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi) -- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with - the declaration of FAR (Gilles VOllant) -- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann) -- read_buf buf parameter of type Bytef* instead of charf* -- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout) -- do not redeclare unlink in minigzip.c for WIN32 (John Bowler) -- fix check for presence of directories in "make install" (Ian Willis) - -Changes in 1.0.8 (27 Jan 1998) -- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) -- fix gzgetc and gzputc for big endian systems (Markus Oberhumer) -- added compress2() to allow setting the compression level -- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) -- use constant arrays for the static trees in trees.c instead of computing - them at run time (thanks to Ken Raeburn for this suggestion). To create - trees.h, compile with GEN_TREES_H and run "make test". -- check return code of example in "make test" and display result -- pass minigzip command line options to file_compress -- simplifying code of inflateSync to avoid gcc 2.8 bug - -- support CC="gcc -Wall" in configure -s (QingLong) -- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn) -- fix test for shared library support to avoid compiler warnings -- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant) -- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit) -- do not use fdopen for Metrowerks on Mac (Brad Pettit)) -- add checks for gzputc and gzputc in example.c -- avoid warnings in gzio.c and deflate.c (Andreas Kleinert) -- use const for the CRC table (Ken Raeburn) -- fixed "make uninstall" for shared libraries -- use Tracev instead of Trace in infblock.c -- in example.c use correct compressed length for test_sync -- suppress +vnocompatwarnings in configure for HPUX (not always supported) - -Changes in 1.0.7 (20 Jan 1998) -- fix gzseek which was broken in write mode -- return error for gzseek to negative absolute position -- fix configure for Linux (Chun-Chung Chen) -- increase stack space for MSC (Tim Wegner) -- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant) -- define EXPORTVA for gzprintf (Gilles Vollant) -- added man page zlib.3 (Rick Rodgers) -- for contrib/untgz, fix makedir() and improve Makefile - -- check gzseek in write mode in example.c -- allocate extra buffer for seeks only if gzseek is actually called -- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant) -- add inflateSyncPoint in zconf.h -- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def - -Changes in 1.0.6 (19 Jan 1998) -- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and - gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code) -- Fix a deflate bug occurring only with compression level 0 (thanks to - Andy Buckler for finding this one). -- In minigzip, pass transparently also the first byte for .Z files. -- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress() -- check Z_FINISH in inflate (thanks to Marc Schluper) -- Implement deflateCopy (thanks to Adam Costello) -- make static libraries by default in configure, add --shared option. -- move MSDOS or Windows specific files to directory msdos -- suppress the notion of partial flush to simplify the interface - (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4) -- suppress history buffer provided by application to simplify the interface - (this feature was not implemented anyway in 1.0.4) -- next_in and avail_in must be initialized before calling inflateInit or - inflateInit2 -- add EXPORT in all exported functions (for Windows DLL) -- added Makefile.nt (thanks to Stephen Williams) -- added the unsupported "contrib" directory: - contrib/asm386/ by Gilles Vollant - 386 asm code replacing longest_match(). - contrib/iostream/ by Kevin Ruland - A C++ I/O streams interface to the zlib gz* functions - contrib/iostream2/ by Tyge Løvset - Another C++ I/O streams interface - contrib/untgz/ by "Pedro A. Aranda Guti\irrez" - A very simple tar.gz file extractor using zlib - contrib/visual-basic.txt by Carlos Rios - How to use compress(), uncompress() and the gz* functions from VB. -- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression - level) in minigzip (thanks to Tom Lane) - -- use const for rommable constants in deflate -- added test for gzseek and gztell in example.c -- add undocumented function inflateSyncPoint() (hack for Paul Mackerras) -- add undocumented function zError to convert error code to string - (for Tim Smithers) -- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code. -- Use default memcpy for Symantec MSDOS compiler. -- Add EXPORT keyword for check_func (needed for Windows DLL) -- add current directory to LD_LIBRARY_PATH for "make test" -- create also a link for libz.so.1 -- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura) -- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX) -- added -soname for Linux in configure (Chun-Chung Chen, -- assign numbers to the exported functions in zlib.def (for Windows DLL) -- add advice in zlib.h for best usage of deflateSetDictionary -- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn) -- allow compilation with ANSI keywords only enabled for TurboC in large model -- avoid "versionString"[0] (Borland bug) -- add NEED_DUMMY_RETURN for Borland -- use variable z_verbose for tracing in debug mode (L. Peter Deutsch). -- allow compilation with CC -- defined STDC for OS/2 (David Charlap) -- limit external names to 8 chars for MVS (Thomas Lund) -- in minigzip.c, use static buffers only for 16-bit systems -- fix suffix check for "minigzip -d foo.gz" -- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee) -- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) -- added makelcc.bat for lcc-win32 (Tom St Denis) -- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) -- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. -- check for unistd.h in configure (for off_t) -- remove useless check parameter in inflate_blocks_free -- avoid useless assignment of s->check to itself in inflate_blocks_new -- do not flush twice in gzclose (thanks to Ken Raeburn) -- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h -- use NO_ERRNO_H instead of enumeration of operating systems with errno.h -- work around buggy fclose on pipes for HP/UX -- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson) -- fix configure if CC is already equal to gcc - -Changes in 1.0.5 (3 Jan 98) -- Fix inflate to terminate gracefully when fed corrupted or invalid data -- Use const for rommable constants in inflate -- Eliminate memory leaks on error conditions in inflate -- Removed some vestigial code in inflate -- Update web address in README - -Changes in 1.0.4 (24 Jul 96) -- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF - bit, so the decompressor could decompress all the correct data but went - on to attempt decompressing extra garbage data. This affected minigzip too. -- zlibVersion and gzerror return const char* (needed for DLL) -- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno) -- use z_error only for DEBUG (avoid problem with DLLs) - -Changes in 1.0.3 (2 Jul 96) -- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS - small and medium models; this makes the library incompatible with previous - versions for these models. (No effect in large model or on other systems.) -- return OK instead of BUF_ERROR if previous deflate call returned with - avail_out as zero but there is nothing to do -- added memcmp for non STDC compilers -- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly) -- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO) -- better check for 16-bit mode MSC (avoids problem with Symantec) - -Changes in 1.0.2 (23 May 96) -- added Windows DLL support -- added a function zlibVersion (for the DLL support) -- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model) -- Bytef is define's instead of typedef'd only for Borland C -- avoid reading uninitialized memory in example.c -- mention in README that the zlib format is now RFC1950 -- updated Makefile.dj2 -- added algorithm.doc - -Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] -- fix array overlay in deflate.c which sometimes caused bad compressed data -- fix inflate bug with empty stored block -- fix MSDOS medium model which was broken in 0.99 -- fix deflateParams() which could generate bad compressed data. -- Bytef is define'd instead of typedef'ed (work around Borland bug) -- added an INDEX file -- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), - Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) -- speed up adler32 for modern machines without auto-increment -- added -ansi for IRIX in configure -- static_init_done in trees.c is an int -- define unlink as delete for VMS -- fix configure for QNX -- add configure branch for SCO and HPUX -- avoid many warnings (unused variables, dead assignments, etc...) -- no fdopen for BeOS -- fix the Watcom fix for 32 bit mode (define FAR as empty) -- removed redefinition of Byte for MKWERKS -- work around an MWKERKS bug (incorrect merge of all .h files) - -Changes in 0.99 (27 Jan 96) -- allow preset dictionary shared between compressor and decompressor -- allow compression level 0 (no compression) -- add deflateParams in zlib.h: allow dynamic change of compression level - and compression strategy. -- test large buffers and deflateParams in example.c -- add optional "configure" to build zlib as a shared library -- suppress Makefile.qnx, use configure instead -- fixed deflate for 64-bit systems (detected on Cray) -- fixed inflate_blocks for 64-bit systems (detected on Alpha) -- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2) -- always return Z_BUF_ERROR when deflate() has nothing to do -- deflateInit and inflateInit are now macros to allow version checking -- prefix all global functions and types with z_ with -DZ_PREFIX -- make falloc completely reentrant (inftrees.c) -- fixed very unlikely race condition in ct_static_init -- free in reverse order of allocation to help memory manager -- use zlib-1.0/* instead of zlib/* inside the tar.gz -- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith - -Wconversion -Wstrict-prototypes -Wmissing-prototypes" -- allow gzread on concatenated .gz files -- deflateEnd now returns Z_DATA_ERROR if it was premature -- deflate is finally (?) fully deterministic (no matches beyond end of input) -- Document Z_SYNC_FLUSH -- add uninstall in Makefile -- Check for __cpluplus in zlib.h -- Better test in ct_align for partial flush -- avoid harmless warnings for Borland C++ -- initialize hash_head in deflate.c -- avoid warning on fdopen (gzio.c) for HP cc -Aa -- include stdlib.h for STDC compilers -- include errno.h for Cray -- ignore error if ranlib doesn't exist -- call ranlib twice for NeXTSTEP -- use exec_prefix instead of prefix for libz.a -- renamed ct_* as _tr_* to avoid conflict with applications -- clear z->msg in inflateInit2 before any error return -- initialize opaque in example.c, gzio.c, deflate.c and inflate.c -- fixed typo in zconf.h (_GNUC__ => __GNUC__) -- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode) -- fix typo in Make_vms.com (f$trnlnm -> f$getsyi) -- in fcalloc, normalize pointer if size > 65520 bytes -- don't use special fcalloc for 32 bit Borland C++ -- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc... -- use Z_BINARY instead of BINARY -- document that gzclose after gzdopen will close the file -- allow "a" as mode in gzopen. -- fix error checking in gzread -- allow skipping .gz extra-field on pipes -- added reference to Perl interface in README -- put the crc table in FAR data (I dislike more and more the medium model :) -- added get_crc_table -- added a dimension to all arrays (Borland C can't count). -- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast -- guard against multiple inclusion of *.h (for precompiled header on Mac) -- Watcom C pretends to be Microsoft C small model even in 32 bit mode. -- don't use unsized arrays to avoid silly warnings by Visual C++: - warning C4746: 'inflate_mask' : unsized array treated as '__far' - (what's wrong with far data in far model?). -- define enum out of inflate_blocks_state to allow compilation with C++ - -Changes in 0.95 (16 Aug 95) -- fix MSDOS small and medium model (now easier to adapt to any compiler) -- inlined send_bits -- fix the final (:-) bug for deflate with flush (output was correct but - not completely flushed in rare occasions). -- default window size is same for compression and decompression - (it's now sufficient to set MAX_WBITS in zconf.h). -- voidp -> voidpf and voidnp -> voidp (for consistency with other - typedefs and because voidnp was not near in large model). - -Changes in 0.94 (13 Aug 95) -- support MSDOS medium model -- fix deflate with flush (could sometimes generate bad output) -- fix deflateReset (zlib header was incorrectly suppressed) -- added support for VMS -- allow a compression level in gzopen() -- gzflush now calls fflush -- For deflate with flush, flush even if no more input is provided. -- rename libgz.a as libz.a -- avoid complex expression in infcodes.c triggering Turbo C bug -- work around a problem with gcc on Alpha (in INSERT_STRING) -- don't use inline functions (problem with some gcc versions) -- allow renaming of Byte, uInt, etc... with #define. -- avoid warning about (unused) pointer before start of array in deflate.c -- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c -- avoid reserved word 'new' in trees.c - -Changes in 0.93 (25 June 95) -- temporarily disable inline functions -- make deflate deterministic -- give enough lookahead for PARTIAL_FLUSH -- Set binary mode for stdin/stdout in minigzip.c for OS/2 -- don't even use signed char in inflate (not portable enough) -- fix inflate memory leak for segmented architectures - -Changes in 0.92 (3 May 95) -- don't assume that char is signed (problem on SGI) -- Clear bit buffer when starting a stored block -- no memcpy on Pyramid -- suppressed inftest.c -- optimized fill_window, put longest_match inline for gcc -- optimized inflate on stored blocks. -- untabify all sources to simplify patches - -Changes in 0.91 (2 May 95) -- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h -- Document the memory requirements in zconf.h -- added "make install" -- fix sync search logic in inflateSync -- deflate(Z_FULL_FLUSH) now works even if output buffer too short -- after inflateSync, don't scare people with just "lo world" -- added support for DJGPP - -Changes in 0.9 (1 May 95) -- don't assume that zalloc clears the allocated memory (the TurboC bug - was Mark's bug after all :) -- let again gzread copy uncompressed data unchanged (was working in 0.71) -- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented -- added a test of inflateSync in example.c -- moved MAX_WBITS to zconf.h because users might want to change that. -- document explicitly that zalloc(64K) on MSDOS must return a normalized - pointer (zero offset) -- added Makefiles for Microsoft C, Turbo C, Borland C++ -- faster crc32() - -Changes in 0.8 (29 April 95) -- added fast inflate (inffast.c) -- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this - is incompatible with previous versions of zlib which returned Z_OK. -- work around a TurboC compiler bug (bad code for b << 0, see infutil.h) - (actually that was not a compiler bug, see 0.81 above) -- gzread no longer reads one extra byte in certain cases -- In gzio destroy(), don't reference a freed structure -- avoid many warnings for MSDOS -- avoid the ERROR symbol which is used by MS Windows - -Changes in 0.71 (14 April 95) -- Fixed more MSDOS compilation problems :( There is still a bug with - TurboC large model. - -Changes in 0.7 (14 April 95) -- Added full inflate support. -- Simplified the crc32() interface. The pre- and post-conditioning - (one's complement) is now done inside crc32(). WARNING: this is - incompatible with previous versions; see zlib.h for the new usage. - -Changes in 0.61 (12 April 95) -- workaround for a bug in TurboC. example and minigzip now work on MSDOS. - -Changes in 0.6 (11 April 95) -- added minigzip.c -- added gzdopen to reopen a file descriptor as gzFile -- added transparent reading of non-gziped files in gzread. -- fixed bug in gzread (don't read crc as data) -- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose). -- don't allocate big arrays in the stack (for MSDOS) -- fix some MSDOS compilation problems - -Changes in 0.5: -- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but - not yet Z_FULL_FLUSH. -- support decompression but only in a single step (forced Z_FINISH) -- added opaque object for zalloc and zfree. -- added deflateReset and inflateReset -- added a variable zlib_version for consistency checking. -- renamed the 'filter' parameter of deflateInit2 as 'strategy'. - Added Z_FILTERED and Z_HUFFMAN_ONLY constants. - -Changes in 0.4: -- avoid "zip" everywhere, use zlib instead of ziplib. -- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush - if compression method == 8. -- added adler32 and crc32 -- renamed deflateOptions as deflateInit2, call one or the other but not both -- added the method parameter for deflateInit2. -- added inflateInit2 -- simplied considerably deflateInit and inflateInit by not supporting - user-provided history buffer. This is supported only in deflateInit2 - and inflateInit2. - -Changes in 0.3: -- prefix all macro names with Z_ -- use Z_FINISH instead of deflateEnd to finish compression. -- added Z_HUFFMAN_ONLY -- added gzerror() diff --git a/Externals/zlib/adler32.c b/Externals/zlib/adler32.c deleted file mode 100644 index d0be4380a3..0000000000 --- a/Externals/zlib/adler32.c +++ /dev/null @@ -1,186 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011, 2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "zutil.h" - -local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); - -#define BASE 65521U /* largest prime smaller than 65536 */ -#define NMAX 5552 -/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - -#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} -#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); -#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); -#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); -#define DO16(buf) DO8(buf,0); DO8(buf,8); - -/* use NO_DIVIDE if your processor does not do division in hardware -- - try it both ways to see which is faster */ -#ifdef NO_DIVIDE -/* note that this assumes BASE is 65521, where 65536 % 65521 == 15 - (thank you to John Reiser for pointing this out) */ -# define CHOP(a) \ - do { \ - unsigned long tmp = a >> 16; \ - a &= 0xffffUL; \ - a += (tmp << 4) - tmp; \ - } while (0) -# define MOD28(a) \ - do { \ - CHOP(a); \ - if (a >= BASE) a -= BASE; \ - } while (0) -# define MOD(a) \ - do { \ - CHOP(a); \ - MOD28(a); \ - } while (0) -# define MOD63(a) \ - do { /* this assumes a is not negative */ \ - z_off64_t tmp = a >> 32; \ - a &= 0xffffffffL; \ - a += (tmp << 8) - (tmp << 5) + tmp; \ - tmp = a >> 16; \ - a &= 0xffffL; \ - a += (tmp << 4) - tmp; \ - tmp = a >> 16; \ - a &= 0xffffL; \ - a += (tmp << 4) - tmp; \ - if (a >= BASE) a -= BASE; \ - } while (0) -#else -# define MOD(a) a %= BASE -# define MOD28(a) a %= BASE -# define MOD63(a) a %= BASE -#endif - -/* ========================================================================= */ -uLong ZEXPORT adler32_z(adler, buf, len) - uLong adler; - const Bytef *buf; - z_size_t len; -{ - unsigned long sum2; - unsigned n; - - /* split Adler-32 into component sums */ - sum2 = (adler >> 16) & 0xffff; - adler &= 0xffff; - - /* in case user likes doing a byte at a time, keep it fast */ - if (len == 1) { - adler += buf[0]; - if (adler >= BASE) - adler -= BASE; - sum2 += adler; - if (sum2 >= BASE) - sum2 -= BASE; - return adler | (sum2 << 16); - } - - /* initial Adler-32 value (deferred check for len == 1 speed) */ - if (buf == Z_NULL) - return 1L; - - /* in case short lengths are provided, keep it somewhat fast */ - if (len < 16) { - while (len--) { - adler += *buf++; - sum2 += adler; - } - if (adler >= BASE) - adler -= BASE; - MOD28(sum2); /* only added so many BASE's */ - return adler | (sum2 << 16); - } - - /* do length NMAX blocks -- requires just one modulo operation */ - while (len >= NMAX) { - len -= NMAX; - n = NMAX / 16; /* NMAX is divisible by 16 */ - do { - DO16(buf); /* 16 sums unrolled */ - buf += 16; - } while (--n); - MOD(adler); - MOD(sum2); - } - - /* do remaining bytes (less than NMAX, still just one modulo) */ - if (len) { /* avoid modulos if none remaining */ - while (len >= 16) { - len -= 16; - DO16(buf); - buf += 16; - } - while (len--) { - adler += *buf++; - sum2 += adler; - } - MOD(adler); - MOD(sum2); - } - - /* return recombined sums */ - return adler | (sum2 << 16); -} - -/* ========================================================================= */ -uLong ZEXPORT adler32(adler, buf, len) - uLong adler; - const Bytef *buf; - uInt len; -{ - return adler32_z(adler, buf, len); -} - -/* ========================================================================= */ -local uLong adler32_combine_(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ - unsigned long sum1; - unsigned long sum2; - unsigned rem; - - /* for negative len, return invalid adler32 as a clue for debugging */ - if (len2 < 0) - return 0xffffffffUL; - - /* the derivation of this formula is left as an exercise for the reader */ - MOD63(len2); /* assumes len2 >= 0 */ - rem = (unsigned)len2; - sum1 = adler1 & 0xffff; - sum2 = rem * sum1; - MOD(sum2); - sum1 += (adler2 & 0xffff) + BASE - 1; - sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; - if (sum1 >= BASE) sum1 -= BASE; - if (sum1 >= BASE) sum1 -= BASE; - if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1); - if (sum2 >= BASE) sum2 -= BASE; - return sum1 | (sum2 << 16); -} - -/* ========================================================================= */ -uLong ZEXPORT adler32_combine(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off_t len2; -{ - return adler32_combine_(adler1, adler2, len2); -} - -uLong ZEXPORT adler32_combine64(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ - return adler32_combine_(adler1, adler2, len2); -} diff --git a/Externals/zlib/compress.c b/Externals/zlib/compress.c deleted file mode 100644 index e2db404abf..0000000000 --- a/Externals/zlib/compress.c +++ /dev/null @@ -1,86 +0,0 @@ -/* compress.c -- compress a memory buffer - * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#define ZLIB_INTERNAL -#include "zlib.h" - -/* =========================================================================== - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least 0.1% larger than sourceLen plus - 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ -int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; - int level; -{ - z_stream stream; - int err; - const uInt max = (uInt)-1; - uLong left; - - left = *destLen; - *destLen = 0; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - stream.opaque = (voidpf)0; - - err = deflateInit(&stream, level); - if (err != Z_OK) return err; - - stream.next_out = dest; - stream.avail_out = 0; - stream.next_in = (z_const Bytef *)source; - stream.avail_in = 0; - - do { - if (stream.avail_out == 0) { - stream.avail_out = left > (uLong)max ? max : (uInt)left; - left -= stream.avail_out; - } - if (stream.avail_in == 0) { - stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen; - sourceLen -= stream.avail_in; - } - err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH); - } while (err == Z_OK); - - *destLen = stream.total_out; - deflateEnd(&stream); - return err == Z_STREAM_END ? Z_OK : err; -} - -/* =========================================================================== - */ -int ZEXPORT compress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); -} - -/* =========================================================================== - If the default memLevel or windowBits for deflateInit() is changed, then - this function needs to be updated. - */ -uLong ZEXPORT compressBound (sourceLen) - uLong sourceLen; -{ - return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + - (sourceLen >> 25) + 13; -} diff --git a/Externals/zlib/crc32.c b/Externals/zlib/crc32.c deleted file mode 100644 index 9580440c0e..0000000000 --- a/Externals/zlib/crc32.c +++ /dev/null @@ -1,442 +0,0 @@ -/* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Thanks to Rodney Brown for his contribution of faster - * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing - * tables for updating the shift register in one step with three exclusive-ors - * instead of four steps with four exclusive-ors. This results in about a - * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. - */ - -/* @(#) $Id$ */ - -/* - Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore - protection on the static variables used to control the first-use generation - of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should - first call get_crc_table() to initialize the tables before allowing more than - one thread to use crc32(). - - DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. - */ - -#ifdef MAKECRCH -# include -# ifndef DYNAMIC_CRC_TABLE -# define DYNAMIC_CRC_TABLE -# endif /* !DYNAMIC_CRC_TABLE */ -#endif /* MAKECRCH */ - -#include "zutil.h" /* for STDC and FAR definitions */ - -/* Definitions for doing the crc four data bytes at a time. */ -#if !defined(NOBYFOUR) && defined(Z_U4) -# define BYFOUR -#endif -#ifdef BYFOUR - local unsigned long crc32_little OF((unsigned long, - const unsigned char FAR *, z_size_t)); - local unsigned long crc32_big OF((unsigned long, - const unsigned char FAR *, z_size_t)); -# define TBLS 8 -#else -# define TBLS 1 -#endif /* BYFOUR */ - -/* Local functions for crc concatenation */ -local unsigned long gf2_matrix_times OF((unsigned long *mat, - unsigned long vec)); -local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); -local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); - - -#ifdef DYNAMIC_CRC_TABLE - -local volatile int crc_table_empty = 1; -local z_crc_t FAR crc_table[TBLS][256]; -local void make_crc_table OF((void)); -#ifdef MAKECRCH - local void write_table OF((FILE *, const z_crc_t FAR *)); -#endif /* MAKECRCH */ -/* - Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: - x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. - - Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials - is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the - polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, - where a mod b means the remainder after dividing a by b. - - This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each - incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The first table is simply the CRC of all possible eight bit values. This is - all the information needed to generate CRCs on data a byte at a time for all - combinations of CRC register values and incoming bytes. The remaining tables - allow for word-at-a-time CRC calculation for both big-endian and little- - endian machines, where a word is four bytes. -*/ -local void make_crc_table() -{ - z_crc_t c; - int n, k; - z_crc_t poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static volatile int first = 1; /* flag to limit concurrent making */ - static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* See if another task is already doing this (not thread-safe, but better - than nothing -- significantly reduces duration of vulnerability in - case the advice about DYNAMIC_CRC_TABLE is ignored) */ - if (first) { - first = 0; - - /* make exclusive-or pattern from polynomial (0xedb88320UL) */ - poly = 0; - for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) - poly |= (z_crc_t)1 << (31 - p[n]); - - /* generate a crc for every 8-bit value */ - for (n = 0; n < 256; n++) { - c = (z_crc_t)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[0][n] = c; - } - -#ifdef BYFOUR - /* generate crc for each value followed by one, two, and three zeros, - and then the byte reversal of those as well as the first table */ - for (n = 0; n < 256; n++) { - c = crc_table[0][n]; - crc_table[4][n] = ZSWAP32(c); - for (k = 1; k < 4; k++) { - c = crc_table[0][c & 0xff] ^ (c >> 8); - crc_table[k][n] = c; - crc_table[k + 4][n] = ZSWAP32(c); - } - } -#endif /* BYFOUR */ - - crc_table_empty = 0; - } - else { /* not first */ - /* wait for the other guy to finish (not efficient, but rare) */ - while (crc_table_empty) - ; - } - -#ifdef MAKECRCH - /* write out CRC tables to crc32.h */ - { - FILE *out; - - out = fopen("crc32.h", "w"); - if (out == NULL) return; - fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); - fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); - fprintf(out, "local const z_crc_t FAR "); - fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); - write_table(out, crc_table[0]); -# ifdef BYFOUR - fprintf(out, "#ifdef BYFOUR\n"); - for (k = 1; k < 8; k++) { - fprintf(out, " },\n {\n"); - write_table(out, crc_table[k]); - } - fprintf(out, "#endif\n"); -# endif /* BYFOUR */ - fprintf(out, " }\n};\n"); - fclose(out); - } -#endif /* MAKECRCH */ -} - -#ifdef MAKECRCH -local void write_table(out, table) - FILE *out; - const z_crc_t FAR *table; -{ - int n; - - for (n = 0; n < 256; n++) - fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", - (unsigned long)(table[n]), - n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); -} -#endif /* MAKECRCH */ - -#else /* !DYNAMIC_CRC_TABLE */ -/* ======================================================================== - * Tables of CRC-32s of all single-byte values, made by make_crc_table(). - */ -#include "crc32.h" -#endif /* DYNAMIC_CRC_TABLE */ - -/* ========================================================================= - * This function can be used by asm versions of crc32() - */ -const z_crc_t FAR * ZEXPORT get_crc_table() -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - return (const z_crc_t FAR *)crc_table; -} - -/* ========================================================================= */ -#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) -#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 - -/* ========================================================================= */ -unsigned long ZEXPORT crc32_z(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - if (buf == Z_NULL) return 0UL; - -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif /* DYNAMIC_CRC_TABLE */ - -#ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { - z_crc_t endian; - - endian = 1; - if (*((unsigned char *)(&endian))) - return crc32_little(crc, buf, len); - else - return crc32_big(crc, buf, len); - } -#endif /* BYFOUR */ - crc = crc ^ 0xffffffffUL; - while (len >= 8) { - DO8; - len -= 8; - } - if (len) do { - DO1; - } while (--len); - return crc ^ 0xffffffffUL; -} - -/* ========================================================================= */ -unsigned long ZEXPORT crc32(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - uInt len; -{ - return crc32_z(crc, buf, len); -} - -#ifdef BYFOUR - -/* - This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit - integer pointer type. This violates the strict aliasing rule, where a - compiler can assume, for optimization purposes, that two pointers to - fundamentally different types won't ever point to the same memory. This can - manifest as a problem only if one of the pointers is written to. This code - only reads from those pointers. So long as this code remains isolated in - this compilation unit, there won't be a problem. For this reason, this code - should not be copied and pasted into a compilation unit in which other code - writes to the buffer that is passed to these routines. - */ - -/* ========================================================================= */ -#define DOLIT4 c ^= *buf4++; \ - c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ - crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] -#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 - -/* ========================================================================= */ -local unsigned long crc32_little(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = (z_crc_t)crc; - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOLIT32; - len -= 32; - } - while (len >= 4) { - DOLIT4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - } while (--len); - c = ~c; - return (unsigned long)c; -} - -/* ========================================================================= */ -#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] -#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 - -/* ========================================================================= */ -local unsigned long crc32_big(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; - - c = ZSWAP32((z_crc_t)crc); - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - len--; - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOBIG32; - len -= 32; - } - while (len >= 4) { - DOBIG4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; - - if (len) do { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - } while (--len); - c = ~c; - return (unsigned long)(ZSWAP32(c)); -} - -#endif /* BYFOUR */ - -#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ - -/* ========================================================================= */ -local unsigned long gf2_matrix_times(mat, vec) - unsigned long *mat; - unsigned long vec; -{ - unsigned long sum; - - sum = 0; - while (vec) { - if (vec & 1) - sum ^= *mat; - vec >>= 1; - mat++; - } - return sum; -} - -/* ========================================================================= */ -local void gf2_matrix_square(square, mat) - unsigned long *square; - unsigned long *mat; -{ - int n; - - for (n = 0; n < GF2_DIM; n++) - square[n] = gf2_matrix_times(mat, mat[n]); -} - -/* ========================================================================= */ -local uLong crc32_combine_(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off64_t len2; -{ - int n; - unsigned long row; - unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ - unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ - - /* degenerate case (also disallow negative lengths) */ - if (len2 <= 0) - return crc1; - - /* put operator for one zero bit in odd */ - odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ - row = 1; - for (n = 1; n < GF2_DIM; n++) { - odd[n] = row; - row <<= 1; - } - - /* put operator for two zero bits in even */ - gf2_matrix_square(even, odd); - - /* put operator for four zero bits in odd */ - gf2_matrix_square(odd, even); - - /* apply len2 zeros to crc1 (first square will put the operator for one - zero byte, eight zero bits, in even) */ - do { - /* apply zeros operator for this bit of len2 */ - gf2_matrix_square(even, odd); - if (len2 & 1) - crc1 = gf2_matrix_times(even, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - if (len2 == 0) - break; - - /* another iteration of the loop with odd and even swapped */ - gf2_matrix_square(odd, even); - if (len2 & 1) - crc1 = gf2_matrix_times(odd, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - } while (len2 != 0); - - /* return combined crc */ - crc1 ^= crc2; - return crc1; -} - -/* ========================================================================= */ -uLong ZEXPORT crc32_combine(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off_t len2; -{ - return crc32_combine_(crc1, crc2, len2); -} - -uLong ZEXPORT crc32_combine64(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off64_t len2; -{ - return crc32_combine_(crc1, crc2, len2); -} diff --git a/Externals/zlib/crc32.h b/Externals/zlib/crc32.h deleted file mode 100644 index 9e0c778102..0000000000 --- a/Externals/zlib/crc32.h +++ /dev/null @@ -1,441 +0,0 @@ -/* crc32.h -- tables for rapid CRC calculation - * Generated automatically by crc32.c - */ - -local const z_crc_t FAR crc_table[TBLS][256] = -{ - { - 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, - 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, - 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, - 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, - 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, - 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, - 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, - 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, - 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, - 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, - 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, - 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, - 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, - 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, - 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, - 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, - 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, - 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, - 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, - 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, - 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, - 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, - 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, - 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, - 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, - 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, - 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, - 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, - 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, - 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, - 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, - 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, - 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, - 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, - 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, - 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, - 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, - 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, - 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, - 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, - 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, - 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, - 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, - 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, - 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, - 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, - 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, - 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, - 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, - 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, - 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, - 0x2d02ef8dUL -#ifdef BYFOUR - }, - { - 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, - 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, - 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, - 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, - 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, - 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, - 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, - 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, - 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, - 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, - 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, - 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, - 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, - 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, - 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, - 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, - 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, - 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, - 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, - 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, - 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, - 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, - 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, - 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, - 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, - 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, - 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, - 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, - 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, - 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, - 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, - 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, - 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, - 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, - 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, - 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, - 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, - 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, - 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, - 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, - 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, - 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, - 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, - 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, - 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, - 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, - 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, - 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, - 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, - 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, - 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, - 0x9324fd72UL - }, - { - 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, - 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, - 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, - 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, - 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, - 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, - 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, - 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, - 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, - 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, - 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, - 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, - 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, - 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, - 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, - 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, - 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, - 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, - 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, - 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, - 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, - 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, - 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, - 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, - 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, - 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, - 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, - 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, - 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, - 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, - 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, - 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, - 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, - 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, - 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, - 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, - 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, - 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, - 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, - 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, - 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, - 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, - 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, - 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, - 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, - 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, - 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, - 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, - 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, - 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, - 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, - 0xbe9834edUL - }, - { - 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, - 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, - 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, - 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, - 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, - 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, - 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, - 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, - 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, - 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, - 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, - 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, - 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, - 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, - 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, - 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, - 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, - 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, - 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, - 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, - 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, - 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, - 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, - 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, - 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, - 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, - 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, - 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, - 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, - 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, - 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, - 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, - 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, - 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, - 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, - 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, - 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, - 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, - 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, - 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, - 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, - 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, - 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, - 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, - 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, - 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, - 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, - 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, - 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, - 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, - 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, - 0xde0506f1UL - }, - { - 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, - 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, - 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, - 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, - 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, - 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, - 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, - 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, - 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, - 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, - 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, - 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, - 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, - 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, - 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, - 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, - 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, - 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, - 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, - 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, - 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, - 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, - 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, - 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, - 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, - 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, - 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, - 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, - 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, - 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, - 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, - 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, - 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, - 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, - 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, - 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, - 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, - 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, - 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, - 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, - 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, - 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, - 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, - 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, - 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, - 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, - 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, - 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, - 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, - 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, - 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, - 0x8def022dUL - }, - { - 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, - 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, - 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, - 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, - 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, - 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, - 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, - 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, - 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, - 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, - 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, - 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, - 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, - 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, - 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, - 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, - 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, - 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, - 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, - 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, - 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, - 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, - 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, - 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, - 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, - 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, - 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, - 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, - 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, - 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, - 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, - 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, - 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, - 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, - 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, - 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, - 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, - 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, - 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, - 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, - 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, - 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, - 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, - 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, - 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, - 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, - 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, - 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, - 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, - 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, - 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, - 0x72fd2493UL - }, - { - 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, - 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, - 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, - 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, - 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, - 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, - 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, - 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, - 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, - 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, - 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, - 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, - 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, - 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, - 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, - 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, - 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, - 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, - 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, - 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, - 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, - 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, - 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, - 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, - 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, - 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, - 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, - 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, - 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, - 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, - 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, - 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, - 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, - 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, - 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, - 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, - 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, - 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, - 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, - 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, - 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, - 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, - 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, - 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, - 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, - 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, - 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, - 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, - 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, - 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, - 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, - 0xed3498beUL - }, - { - 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, - 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, - 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, - 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, - 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, - 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, - 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, - 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, - 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, - 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, - 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, - 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, - 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, - 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, - 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, - 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, - 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, - 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, - 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, - 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, - 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, - 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, - 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, - 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, - 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, - 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, - 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, - 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, - 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, - 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, - 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, - 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, - 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, - 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, - 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, - 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, - 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, - 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, - 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, - 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, - 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, - 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, - 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, - 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, - 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, - 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, - 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, - 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, - 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, - 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, - 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, - 0xf10605deUL -#endif - } -}; diff --git a/Externals/zlib/deflate.c b/Externals/zlib/deflate.c deleted file mode 100644 index 1ec761448d..0000000000 --- a/Externals/zlib/deflate.c +++ /dev/null @@ -1,2163 +0,0 @@ -/* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process depends on being able to identify portions - * of the input text which are identical to earlier input (within a - * sliding window trailing behind the input currently being processed). - * - * The most straightforward technique turns out to be the fastest for - * most input files: try all possible matches and select the longest. - * The key feature of this algorithm is that insertions into the string - * dictionary are very simple and thus fast, and deletions are avoided - * completely. Insertions are performed at each input character, whereas - * string matches are performed only when the previous match ends. So it - * is preferable to spend more time in matches to allow very fast string - * insertions and avoid deletions. The matching algorithm for small - * strings is inspired from that of Rabin & Karp. A brute force approach - * is used to find longer strings when a small match has been found. - * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze - * (by Leonid Broukhis). - * A previous version of this file used a more sophisticated algorithm - * (by Fiala and Greene) which is guaranteed to run in linear amortized - * time, but has a larger average cost, uses more memory and is patented. - * However the F&G algorithm may be faster for some highly redundant - * files if the parameter max_chain_length (described below) is too large. - * - * ACKNOWLEDGEMENTS - * - * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and - * I found it in 'freeze' written by Leonid Broukhis. - * Thanks to many people for bug reports and testing. - * - * REFERENCES - * - * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". - * Available in http://tools.ietf.org/html/rfc1951 - * - * A description of the Rabin and Karp algorithm is given in the book - * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. - * - * Fiala,E.R., and Greene,D.H. - * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 - * - */ - -/* @(#) $Id$ */ - -#include "deflate.h" - -const char deflate_copyright[] = - " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* =========================================================================== - * Function prototypes. - */ -typedef enum { - need_more, /* block not completed, need more input or more output */ - block_done, /* block flush performed */ - finish_started, /* finish started, need only more output at next deflate */ - finish_done /* finish done, accept no more input or output */ -} block_state; - -typedef block_state (*compress_func) OF((deflate_state *s, int flush)); -/* Compression function. Returns the block state after the call. */ - -local int deflateStateCheck OF((z_streamp strm)); -local void slide_hash OF((deflate_state *s)); -local void fill_window OF((deflate_state *s)); -local block_state deflate_stored OF((deflate_state *s, int flush)); -local block_state deflate_fast OF((deflate_state *s, int flush)); -#ifndef FASTEST -local block_state deflate_slow OF((deflate_state *s, int flush)); -#endif -local block_state deflate_rle OF((deflate_state *s, int flush)); -local block_state deflate_huff OF((deflate_state *s, int flush)); -local void lm_init OF((deflate_state *s)); -local void putShortMSB OF((deflate_state *s, uInt b)); -local void flush_pending OF((z_streamp strm)); -local unsigned read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); -#ifdef ASMV -# pragma message("Assembler code may have bugs -- use at your own risk") - void match_init OF((void)); /* asm code initialization */ - uInt longest_match OF((deflate_state *s, IPos cur_match)); -#else -local uInt longest_match OF((deflate_state *s, IPos cur_match)); -#endif - -#ifdef ZLIB_DEBUG -local void check_match OF((deflate_state *s, IPos start, IPos match, - int length)); -#endif - -/* =========================================================================== - * Local data - */ - -#define NIL 0 -/* Tail of hash chains */ - -#ifndef TOO_FAR -# define TOO_FAR 4096 -#endif -/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -typedef struct config_s { - ush good_length; /* reduce lazy search above this match length */ - ush max_lazy; /* do not perform lazy search above this match length */ - ush nice_length; /* quit search above this match length */ - ush max_chain; - compress_func func; -} config; - -#ifdef FASTEST -local const config configuration_table[2] = { -/* good lazy nice chain */ -/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ -/* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */ -#else -local const config configuration_table[10] = { -/* good lazy nice chain */ -/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ -/* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */ -/* 2 */ {4, 5, 16, 8, deflate_fast}, -/* 3 */ {4, 6, 32, 32, deflate_fast}, - -/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ -/* 5 */ {8, 16, 32, 32, deflate_slow}, -/* 6 */ {8, 16, 128, 128, deflate_slow}, -/* 7 */ {8, 32, 128, 256, deflate_slow}, -/* 8 */ {32, 128, 258, 1024, deflate_slow}, -/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */ -#endif - -/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 - * For deflate_fast() (levels <= 3) good is ignored and lazy has a different - * meaning. - */ - -/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */ -#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0)) - -/* =========================================================================== - * Update a hash value with the given input byte - * IN assertion: all calls to UPDATE_HASH are made with consecutive input - * characters, so that a running hash key can be computed from the previous - * key instead of complete recalculation each time. - */ -#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) - - -/* =========================================================================== - * Insert string str in the dictionary and set match_head to the previous head - * of the hash chain (the most recent string with same hash key). Return - * the previous length of the hash chain. - * If this file is compiled with -DFASTEST, the compression level is forced - * to 1, and no hash chains are maintained. - * IN assertion: all calls to INSERT_STRING are made with consecutive input - * characters and the first MIN_MATCH bytes of str are valid (except for - * the last MIN_MATCH-1 bytes of the input file). - */ -#ifdef FASTEST -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - match_head = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#else -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#endif - -/* =========================================================================== - * Initialize the hash table (avoiding 64K overflow for 16 bit systems). - * prev[] will be initialized on the fly. - */ -#define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); - -/* =========================================================================== - * Slide the hash table when sliding the window down (could be avoided with 32 - * bit values at the expense of memory usage). We slide even when level == 0 to - * keep the hash table consistent if we switch back to level > 0 later. - */ -local void slide_hash(s) - deflate_state *s; -{ - unsigned n, m; - Posf *p; - uInt wsize = s->w_size; - - n = s->hash_size; - p = &s->head[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m - wsize : NIL); - } while (--n); - n = wsize; -#ifndef FASTEST - p = &s->prev[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m - wsize : NIL); - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - } while (--n); -#endif -} - -/* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, version, stream_size) - z_streamp strm; - int level; - const char *version; - int stream_size; -{ - return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, - Z_DEFAULT_STRATEGY, version, stream_size); - /* To do: ignore strm->next_in if we use it as window */ -} - -/* ========================================================================= */ -int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - version, stream_size) - z_streamp strm; - int level; - int method; - int windowBits; - int memLevel; - int strategy; - const char *version; - int stream_size; -{ - deflate_state *s; - int wrap = 1; - static const char my_version[] = ZLIB_VERSION; - - ushf *overlay; - /* We overlay pending_buf and d_buf+l_buf. This works since the average - * output size for (length,distance) codes is <= 24 bits. - */ - - if (version == Z_NULL || version[0] != my_version[0] || - stream_size != sizeof(z_stream)) { - return Z_VERSION_ERROR; - } - if (strm == Z_NULL) return Z_STREAM_ERROR; - - strm->msg = Z_NULL; - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - -#ifdef FASTEST - if (level != 0) level = 1; -#else - if (level == Z_DEFAULT_COMPRESSION) level = 6; -#endif - - if (windowBits < 0) { /* suppress zlib wrapper */ - wrap = 0; - windowBits = -windowBits; - } -#ifdef GZIP - else if (windowBits > 15) { - wrap = 2; /* write gzip wrapper instead */ - windowBits -= 16; - } -#endif - if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || - windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) { - return Z_STREAM_ERROR; - } - if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */ - s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); - if (s == Z_NULL) return Z_MEM_ERROR; - strm->state = (struct internal_state FAR *)s; - s->strm = strm; - s->status = INIT_STATE; /* to pass state test in deflateReset() */ - - s->wrap = wrap; - s->gzhead = Z_NULL; - s->w_bits = (uInt)windowBits; - s->w_size = 1 << s->w_bits; - s->w_mask = s->w_size - 1; - - s->hash_bits = (uInt)memLevel + 7; - s->hash_size = 1 << s->hash_bits; - s->hash_mask = s->hash_size - 1; - s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); - - s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); - s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); - s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); - - s->high_water = 0; /* nothing written to s->window yet */ - - s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - - overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); - s->pending_buf = (uchf *) overlay; - s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); - - if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || - s->pending_buf == Z_NULL) { - s->status = FINISH_STATE; - strm->msg = ERR_MSG(Z_MEM_ERROR); - deflateEnd (strm); - return Z_MEM_ERROR; - } - s->d_buf = overlay + s->lit_bufsize/sizeof(ush); - s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; - - s->level = level; - s->strategy = strategy; - s->method = (Byte)method; - - return deflateReset(strm); -} - -/* ========================================================================= - * Check for a valid deflate stream state. Return 0 if ok, 1 if not. - */ -local int deflateStateCheck (strm) - z_streamp strm; -{ - deflate_state *s; - if (strm == Z_NULL || - strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) - return 1; - s = strm->state; - if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE && -#ifdef GZIP - s->status != GZIP_STATE && -#endif - s->status != EXTRA_STATE && - s->status != NAME_STATE && - s->status != COMMENT_STATE && - s->status != HCRC_STATE && - s->status != BUSY_STATE && - s->status != FINISH_STATE)) - return 1; - return 0; -} - -/* ========================================================================= */ -int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) - z_streamp strm; - const Bytef *dictionary; - uInt dictLength; -{ - deflate_state *s; - uInt str, n; - int wrap; - unsigned avail; - z_const unsigned char *next; - - if (deflateStateCheck(strm) || dictionary == Z_NULL) - return Z_STREAM_ERROR; - s = strm->state; - wrap = s->wrap; - if (wrap == 2 || (wrap == 1 && s->status != INIT_STATE) || s->lookahead) - return Z_STREAM_ERROR; - - /* when using zlib wrappers, compute Adler-32 for provided dictionary */ - if (wrap == 1) - strm->adler = adler32(strm->adler, dictionary, dictLength); - s->wrap = 0; /* avoid computing Adler-32 in read_buf */ - - /* if dictionary would fill window, just replace the history */ - if (dictLength >= s->w_size) { - if (wrap == 0) { /* already empty otherwise */ - CLEAR_HASH(s); - s->strstart = 0; - s->block_start = 0L; - s->insert = 0; - } - dictionary += dictLength - s->w_size; /* use the tail */ - dictLength = s->w_size; - } - - /* insert dictionary into window and hash */ - avail = strm->avail_in; - next = strm->next_in; - strm->avail_in = dictLength; - strm->next_in = (z_const Bytef *)dictionary; - fill_window(s); - while (s->lookahead >= MIN_MATCH) { - str = s->strstart; - n = s->lookahead - (MIN_MATCH-1); - do { - UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); -#ifndef FASTEST - s->prev[str & s->w_mask] = s->head[s->ins_h]; -#endif - s->head[s->ins_h] = (Pos)str; - str++; - } while (--n); - s->strstart = str; - s->lookahead = MIN_MATCH-1; - fill_window(s); - } - s->strstart += s->lookahead; - s->block_start = (long)s->strstart; - s->insert = s->lookahead; - s->lookahead = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - strm->next_in = next; - strm->avail_in = avail; - s->wrap = wrap; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength) - z_streamp strm; - Bytef *dictionary; - uInt *dictLength; -{ - deflate_state *s; - uInt len; - - if (deflateStateCheck(strm)) - return Z_STREAM_ERROR; - s = strm->state; - len = s->strstart + s->lookahead; - if (len > s->w_size) - len = s->w_size; - if (dictionary != Z_NULL && len) - zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len); - if (dictLength != Z_NULL) - *dictLength = len; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateResetKeep (strm) - z_streamp strm; -{ - deflate_state *s; - - if (deflateStateCheck(strm)) { - return Z_STREAM_ERROR; - } - - strm->total_in = strm->total_out = 0; - strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ - strm->data_type = Z_UNKNOWN; - - s = (deflate_state *)strm->state; - s->pending = 0; - s->pending_out = s->pending_buf; - - if (s->wrap < 0) { - s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */ - } - s->status = -#ifdef GZIP - s->wrap == 2 ? GZIP_STATE : -#endif - s->wrap ? INIT_STATE : BUSY_STATE; - strm->adler = -#ifdef GZIP - s->wrap == 2 ? crc32(0L, Z_NULL, 0) : -#endif - adler32(0L, Z_NULL, 0); - s->last_flush = Z_NO_FLUSH; - - _tr_init(s); - - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateReset (strm) - z_streamp strm; -{ - int ret; - - ret = deflateResetKeep(strm); - if (ret == Z_OK) - lm_init(strm->state); - return ret; -} - -/* ========================================================================= */ -int ZEXPORT deflateSetHeader (strm, head) - z_streamp strm; - gz_headerp head; -{ - if (deflateStateCheck(strm) || strm->state->wrap != 2) - return Z_STREAM_ERROR; - strm->state->gzhead = head; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflatePending (strm, pending, bits) - unsigned *pending; - int *bits; - z_streamp strm; -{ - if (deflateStateCheck(strm)) return Z_STREAM_ERROR; - if (pending != Z_NULL) - *pending = strm->state->pending; - if (bits != Z_NULL) - *bits = strm->state->bi_valid; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflatePrime (strm, bits, value) - z_streamp strm; - int bits; - int value; -{ - deflate_state *s; - int put; - - if (deflateStateCheck(strm)) return Z_STREAM_ERROR; - s = strm->state; - if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3)) - return Z_BUF_ERROR; - do { - put = Buf_size - s->bi_valid; - if (put > bits) - put = bits; - s->bi_buf |= (ush)((value & ((1 << put) - 1)) << s->bi_valid); - s->bi_valid += put; - _tr_flush_bits(s); - value >>= put; - bits -= put; - } while (bits); - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateParams(strm, level, strategy) - z_streamp strm; - int level; - int strategy; -{ - deflate_state *s; - compress_func func; - - if (deflateStateCheck(strm)) return Z_STREAM_ERROR; - s = strm->state; - -#ifdef FASTEST - if (level != 0) level = 1; -#else - if (level == Z_DEFAULT_COMPRESSION) level = 6; -#endif - if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { - return Z_STREAM_ERROR; - } - func = configuration_table[s->level].func; - - if ((strategy != s->strategy || func != configuration_table[level].func) && - s->high_water) { - /* Flush the last buffer: */ - int err = deflate(strm, Z_BLOCK); - if (err == Z_STREAM_ERROR) - return err; - if (strm->avail_out == 0) - return Z_BUF_ERROR; - } - if (s->level != level) { - if (s->level == 0 && s->matches != 0) { - if (s->matches == 1) - slide_hash(s); - else - CLEAR_HASH(s); - s->matches = 0; - } - s->level = level; - s->max_lazy_match = configuration_table[level].max_lazy; - s->good_match = configuration_table[level].good_length; - s->nice_match = configuration_table[level].nice_length; - s->max_chain_length = configuration_table[level].max_chain; - } - s->strategy = strategy; - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) - z_streamp strm; - int good_length; - int max_lazy; - int nice_length; - int max_chain; -{ - deflate_state *s; - - if (deflateStateCheck(strm)) return Z_STREAM_ERROR; - s = strm->state; - s->good_match = (uInt)good_length; - s->max_lazy_match = (uInt)max_lazy; - s->nice_match = nice_length; - s->max_chain_length = (uInt)max_chain; - return Z_OK; -} - -/* ========================================================================= - * For the default windowBits of 15 and memLevel of 8, this function returns - * a close to exact, as well as small, upper bound on the compressed size. - * They are coded as constants here for a reason--if the #define's are - * changed, then this function needs to be changed as well. The return - * value for 15 and 8 only works for those exact settings. - * - * For any setting other than those defaults for windowBits and memLevel, - * the value returned is a conservative worst case for the maximum expansion - * resulting from using fixed blocks instead of stored blocks, which deflate - * can emit on compressed data for some combinations of the parameters. - * - * This function could be more sophisticated to provide closer upper bounds for - * every combination of windowBits and memLevel. But even the conservative - * upper bound of about 14% expansion does not seem onerous for output buffer - * allocation. - */ -uLong ZEXPORT deflateBound(strm, sourceLen) - z_streamp strm; - uLong sourceLen; -{ - deflate_state *s; - uLong complen, wraplen; - - /* conservative upper bound for compressed data */ - complen = sourceLen + - ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5; - - /* if can't get parameters, return conservative bound plus zlib wrapper */ - if (deflateStateCheck(strm)) - return complen + 6; - - /* compute wrapper length */ - s = strm->state; - switch (s->wrap) { - case 0: /* raw deflate */ - wraplen = 0; - break; - case 1: /* zlib wrapper */ - wraplen = 6 + (s->strstart ? 4 : 0); - break; -#ifdef GZIP - case 2: /* gzip wrapper */ - wraplen = 18; - if (s->gzhead != Z_NULL) { /* user-supplied gzip header */ - Bytef *str; - if (s->gzhead->extra != Z_NULL) - wraplen += 2 + s->gzhead->extra_len; - str = s->gzhead->name; - if (str != Z_NULL) - do { - wraplen++; - } while (*str++); - str = s->gzhead->comment; - if (str != Z_NULL) - do { - wraplen++; - } while (*str++); - if (s->gzhead->hcrc) - wraplen += 2; - } - break; -#endif - default: /* for compiler happiness */ - wraplen = 6; - } - - /* if not default parameters, return conservative bound */ - if (s->w_bits != 15 || s->hash_bits != 8 + 7) - return complen + wraplen; - - /* default settings: return tight bound for that case */ - return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + - (sourceLen >> 25) + 13 - 6 + wraplen; -} - -/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */ -local void putShortMSB (s, b) - deflate_state *s; - uInt b; -{ - put_byte(s, (Byte)(b >> 8)); - put_byte(s, (Byte)(b & 0xff)); -} - -/* ========================================================================= - * Flush as much pending output as possible. All deflate() output, except for - * some deflate_stored() output, goes through this function so some - * applications may wish to modify it to avoid allocating a large - * strm->next_out buffer and copying into it. (See also read_buf()). - */ -local void flush_pending(strm) - z_streamp strm; -{ - unsigned len; - deflate_state *s = strm->state; - - _tr_flush_bits(s); - len = s->pending; - if (len > strm->avail_out) len = strm->avail_out; - if (len == 0) return; - - zmemcpy(strm->next_out, s->pending_out, len); - strm->next_out += len; - s->pending_out += len; - strm->total_out += len; - strm->avail_out -= len; - s->pending -= len; - if (s->pending == 0) { - s->pending_out = s->pending_buf; - } -} - -/* =========================================================================== - * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1]. - */ -#define HCRC_UPDATE(beg) \ - do { \ - if (s->gzhead->hcrc && s->pending > (beg)) \ - strm->adler = crc32(strm->adler, s->pending_buf + (beg), \ - s->pending - (beg)); \ - } while (0) - -/* ========================================================================= */ -int ZEXPORT deflate (strm, flush) - z_streamp strm; - int flush; -{ - int old_flush; /* value of flush param for previous deflate call */ - deflate_state *s; - - if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) { - return Z_STREAM_ERROR; - } - s = strm->state; - - if (strm->next_out == Z_NULL || - (strm->avail_in != 0 && strm->next_in == Z_NULL) || - (s->status == FINISH_STATE && flush != Z_FINISH)) { - ERR_RETURN(strm, Z_STREAM_ERROR); - } - if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); - - old_flush = s->last_flush; - s->last_flush = flush; - - /* Flush as much pending output as possible */ - if (s->pending != 0) { - flush_pending(strm); - if (strm->avail_out == 0) { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - s->last_flush = -1; - return Z_OK; - } - - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */ - } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) && - flush != Z_FINISH) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* User must not provide more input after the first FINISH: */ - if (s->status == FINISH_STATE && strm->avail_in != 0) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* Write the header */ - if (s->status == INIT_STATE) { - /* zlib header */ - uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; - uInt level_flags; - - if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2) - level_flags = 0; - else if (s->level < 6) - level_flags = 1; - else if (s->level == 6) - level_flags = 2; - else - level_flags = 3; - header |= (level_flags << 6); - if (s->strstart != 0) header |= PRESET_DICT; - header += 31 - (header % 31); - - putShortMSB(s, header); - - /* Save the adler32 of the preset dictionary: */ - if (s->strstart != 0) { - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - } - strm->adler = adler32(0L, Z_NULL, 0); - s->status = BUSY_STATE; - - /* Compression must start with an empty pending buffer */ - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - } -#ifdef GZIP - if (s->status == GZIP_STATE) { - /* gzip header */ - strm->adler = crc32(0L, Z_NULL, 0); - put_byte(s, 31); - put_byte(s, 139); - put_byte(s, 8); - if (s->gzhead == Z_NULL) { - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, 0); - put_byte(s, s->level == 9 ? 2 : - (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? - 4 : 0)); - put_byte(s, OS_CODE); - s->status = BUSY_STATE; - - /* Compression must start with an empty pending buffer */ - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - } - else { - put_byte(s, (s->gzhead->text ? 1 : 0) + - (s->gzhead->hcrc ? 2 : 0) + - (s->gzhead->extra == Z_NULL ? 0 : 4) + - (s->gzhead->name == Z_NULL ? 0 : 8) + - (s->gzhead->comment == Z_NULL ? 0 : 16) - ); - put_byte(s, (Byte)(s->gzhead->time & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff)); - put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff)); - put_byte(s, s->level == 9 ? 2 : - (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? - 4 : 0)); - put_byte(s, s->gzhead->os & 0xff); - if (s->gzhead->extra != Z_NULL) { - put_byte(s, s->gzhead->extra_len & 0xff); - put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); - } - if (s->gzhead->hcrc) - strm->adler = crc32(strm->adler, s->pending_buf, - s->pending); - s->gzindex = 0; - s->status = EXTRA_STATE; - } - } - if (s->status == EXTRA_STATE) { - if (s->gzhead->extra != Z_NULL) { - ulg beg = s->pending; /* start of bytes to update crc */ - uInt left = (s->gzhead->extra_len & 0xffff) - s->gzindex; - while (s->pending + left > s->pending_buf_size) { - uInt copy = s->pending_buf_size - s->pending; - zmemcpy(s->pending_buf + s->pending, - s->gzhead->extra + s->gzindex, copy); - s->pending = s->pending_buf_size; - HCRC_UPDATE(beg); - s->gzindex += copy; - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - beg = 0; - left -= copy; - } - zmemcpy(s->pending_buf + s->pending, - s->gzhead->extra + s->gzindex, left); - s->pending += left; - HCRC_UPDATE(beg); - s->gzindex = 0; - } - s->status = NAME_STATE; - } - if (s->status == NAME_STATE) { - if (s->gzhead->name != Z_NULL) { - ulg beg = s->pending; /* start of bytes to update crc */ - int val; - do { - if (s->pending == s->pending_buf_size) { - HCRC_UPDATE(beg); - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - beg = 0; - } - val = s->gzhead->name[s->gzindex++]; - put_byte(s, val); - } while (val != 0); - HCRC_UPDATE(beg); - s->gzindex = 0; - } - s->status = COMMENT_STATE; - } - if (s->status == COMMENT_STATE) { - if (s->gzhead->comment != Z_NULL) { - ulg beg = s->pending; /* start of bytes to update crc */ - int val; - do { - if (s->pending == s->pending_buf_size) { - HCRC_UPDATE(beg); - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - beg = 0; - } - val = s->gzhead->comment[s->gzindex++]; - put_byte(s, val); - } while (val != 0); - HCRC_UPDATE(beg); - } - s->status = HCRC_STATE; - } - if (s->status == HCRC_STATE) { - if (s->gzhead->hcrc) { - if (s->pending + 2 > s->pending_buf_size) { - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - } - put_byte(s, (Byte)(strm->adler & 0xff)); - put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); - strm->adler = crc32(0L, Z_NULL, 0); - } - s->status = BUSY_STATE; - - /* Compression must start with an empty pending buffer */ - flush_pending(strm); - if (s->pending != 0) { - s->last_flush = -1; - return Z_OK; - } - } -#endif - - /* Start a new block or continue the current one. - */ - if (strm->avail_in != 0 || s->lookahead != 0 || - (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { - block_state bstate; - - bstate = s->level == 0 ? deflate_stored(s, flush) : - s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : - s->strategy == Z_RLE ? deflate_rle(s, flush) : - (*(configuration_table[s->level].func))(s, flush); - - if (bstate == finish_started || bstate == finish_done) { - s->status = FINISH_STATE; - } - if (bstate == need_more || bstate == finish_started) { - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ - } - return Z_OK; - /* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */ - } - if (bstate == block_done) { - if (flush == Z_PARTIAL_FLUSH) { - _tr_align(s); - } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */ - _tr_stored_block(s, (char*)0, 0L, 0); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if (flush == Z_FULL_FLUSH) { - CLEAR_HASH(s); /* forget history */ - if (s->lookahead == 0) { - s->strstart = 0; - s->block_start = 0L; - s->insert = 0; - } - } - } - flush_pending(strm); - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ - return Z_OK; - } - } - } - - if (flush != Z_FINISH) return Z_OK; - if (s->wrap <= 0) return Z_STREAM_END; - - /* Write the trailer */ -#ifdef GZIP - if (s->wrap == 2) { - put_byte(s, (Byte)(strm->adler & 0xff)); - put_byte(s, (Byte)((strm->adler >> 8) & 0xff)); - put_byte(s, (Byte)((strm->adler >> 16) & 0xff)); - put_byte(s, (Byte)((strm->adler >> 24) & 0xff)); - put_byte(s, (Byte)(strm->total_in & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 8) & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 16) & 0xff)); - put_byte(s, (Byte)((strm->total_in >> 24) & 0xff)); - } - else -#endif - { - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - } - flush_pending(strm); - /* If avail_out is zero, the application will call deflate again - * to flush the rest. - */ - if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */ - return s->pending != 0 ? Z_OK : Z_STREAM_END; -} - -/* ========================================================================= */ -int ZEXPORT deflateEnd (strm) - z_streamp strm; -{ - int status; - - if (deflateStateCheck(strm)) return Z_STREAM_ERROR; - - status = strm->state->status; - - /* Deallocate in reverse order of allocations: */ - TRY_FREE(strm, strm->state->pending_buf); - TRY_FREE(strm, strm->state->head); - TRY_FREE(strm, strm->state->prev); - TRY_FREE(strm, strm->state->window); - - ZFREE(strm, strm->state); - strm->state = Z_NULL; - - return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; -} - -/* ========================================================================= - * Copy the source state to the destination state. - * To simplify the source, this is not supported for 16-bit MSDOS (which - * doesn't have enough memory anyway to duplicate compression states). - */ -int ZEXPORT deflateCopy (dest, source) - z_streamp dest; - z_streamp source; -{ -#ifdef MAXSEG_64K - return Z_STREAM_ERROR; -#else - deflate_state *ds; - deflate_state *ss; - ushf *overlay; - - - if (deflateStateCheck(source) || dest == Z_NULL) { - return Z_STREAM_ERROR; - } - - ss = source->state; - - zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream)); - - ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); - if (ds == Z_NULL) return Z_MEM_ERROR; - dest->state = (struct internal_state FAR *) ds; - zmemcpy((voidpf)ds, (voidpf)ss, sizeof(deflate_state)); - ds->strm = dest; - - ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); - ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); - ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); - overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); - ds->pending_buf = (uchf *) overlay; - - if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || - ds->pending_buf == Z_NULL) { - deflateEnd (dest); - return Z_MEM_ERROR; - } - /* following zmemcpy do not work for 16-bit MSDOS */ - zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); - zmemcpy((voidpf)ds->prev, (voidpf)ss->prev, ds->w_size * sizeof(Pos)); - zmemcpy((voidpf)ds->head, (voidpf)ss->head, ds->hash_size * sizeof(Pos)); - zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); - - ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); - ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); - ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; - - ds->l_desc.dyn_tree = ds->dyn_ltree; - ds->d_desc.dyn_tree = ds->dyn_dtree; - ds->bl_desc.dyn_tree = ds->bl_tree; - - return Z_OK; -#endif /* MAXSEG_64K */ -} - -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->next_in buffer and copying from it. - * (See also flush_pending()). - */ -local unsigned read_buf(strm, buf, size) - z_streamp strm; - Bytef *buf; - unsigned size; -{ - unsigned len = strm->avail_in; - - if (len > size) len = size; - if (len == 0) return 0; - - strm->avail_in -= len; - - zmemcpy(buf, strm->next_in, len); - if (strm->state->wrap == 1) { - strm->adler = adler32(strm->adler, buf, len); - } -#ifdef GZIP - else if (strm->state->wrap == 2) { - strm->adler = crc32(strm->adler, buf, len); - } -#endif - strm->next_in += len; - strm->total_in += len; - - return len; -} - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -local void lm_init (s) - deflate_state *s; -{ - s->window_size = (ulg)2L*s->w_size; - - CLEAR_HASH(s); - - /* Set the default configuration parameters: - */ - s->max_lazy_match = configuration_table[s->level].max_lazy; - s->good_match = configuration_table[s->level].good_length; - s->nice_match = configuration_table[s->level].nice_length; - s->max_chain_length = configuration_table[s->level].max_chain; - - s->strstart = 0; - s->block_start = 0L; - s->lookahead = 0; - s->insert = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - s->ins_h = 0; -#ifndef FASTEST -#ifdef ASMV - match_init(); /* initialize the asm code */ -#endif -#endif -} - -#ifndef FASTEST -/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */ -#ifndef ASMV -/* For 80x86 and 680x0, an optimized version will be provided in match.asm or - * match.S. The code will be functionally equivalent. - */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - unsigned chain_length = s->max_chain_length;/* max hash chain length */ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - int best_len = (int)s->prev_length; /* best match length so far */ - int nice_match = s->nice_match; /* stop if match long enough */ - IPos limit = s->strstart > (IPos)MAX_DIST(s) ? - s->strstart - (IPos)MAX_DIST(s) : NIL; - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - Posf *prev = s->prev; - uInt wmask = s->w_mask; - -#ifdef UNALIGNED_OK - /* Compare two bytes at a time. Note: this is not always beneficial. - * Try with and without -DUNALIGNED_OK to check. - */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; - register ush scan_start = *(ushf*)scan; - register ush scan_end = *(ushf*)(scan+best_len-1); -#else - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - register Byte scan_end1 = scan[best_len-1]; - register Byte scan_end = scan[best_len]; -#endif - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - /* Do not waste too much time if we already have a good match: */ - if (s->prev_length >= s->good_match) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if ((uInt)nice_match > s->lookahead) nice_match = (int)s->lookahead; - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - do { - Assert(cur_match < s->strstart, "no future"); - match = s->window + cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */ -#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) - /* This code assumes sizeof(unsigned short) == 2. Do not use - * UNALIGNED_OK if your compiler uses a different size. - */ - if (*(ushf*)(match+best_len-1) != scan_end || - *(ushf*)match != scan_start) continue; - - /* It is not necessary to compare scan[2] and match[2] since they are - * always equal when the other bytes match, given that the hash keys - * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at - * strstart+3, +5, ... up to strstart+257. We check for insufficient - * lookahead only every 4th comparison; the 128th check will be made - * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is - * necessary to put more guard bytes at the end of the window, or - * to check more often for insufficient lookahead. - */ - Assert(scan[2] == match[2], "scan[2]?"); - scan++, match++; - do { - } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - scan < strend); - /* The funny "do {}" generates better code on most compilers */ - - /* Here, scan <= window+strstart+257 */ - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - if (*scan == *match) scan++; - - len = (MAX_MATCH - 1) - (int)(strend-scan); - scan = strend - (MAX_MATCH-1); - -#else /* UNALIGNED_OK */ - - if (match[best_len] != scan_end || - match[best_len-1] != scan_end1 || - *match != *scan || - *++match != scan[1]) continue; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match++; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - scan = strend - MAX_MATCH; - -#endif /* UNALIGNED_OK */ - - if (len > best_len) { - s->match_start = cur_match; - best_len = len; - if (len >= nice_match) break; -#ifdef UNALIGNED_OK - scan_end = *(ushf*)(scan+best_len-1); -#else - scan_end1 = scan[best_len-1]; - scan_end = scan[best_len]; -#endif - } - } while ((cur_match = prev[cur_match & wmask]) > limit - && --chain_length != 0); - - if ((uInt)best_len <= s->lookahead) return (uInt)best_len; - return s->lookahead; -} -#endif /* ASMV */ - -#else /* FASTEST */ - -/* --------------------------------------------------------------------------- - * Optimized version for FASTEST only - */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - Assert(cur_match < s->strstart, "no future"); - - match = s->window + cur_match; - - /* Return failure if the match length is less than 2: - */ - if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match += 2; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - - if (len < MIN_MATCH) return MIN_MATCH - 1; - - s->match_start = cur_match; - return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead; -} - -#endif /* FASTEST */ - -#ifdef ZLIB_DEBUG - -#define EQUAL 0 -/* result of memcmp for equal strings */ - -/* =========================================================================== - * Check that the match at match_start is indeed a match. - */ -local void check_match(s, start, match, length) - deflate_state *s; - IPos start, match; - int length; -{ - /* check that the match is indeed a match */ - if (zmemcmp(s->window + match, - s->window + start, length) != EQUAL) { - fprintf(stderr, " start %u, match %u, length %d\n", - start, match, length); - do { - fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); - } while (--length != 0); - z_error("invalid match"); - } - if (z_verbose > 1) { - fprintf(stderr,"\\[%d,%d]", start-match, length); - do { putc(s->window[start++], stderr); } while (--length != 0); - } -} -#else -# define check_match(s, start, match, length) -#endif /* ZLIB_DEBUG */ - -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -local void fill_window(s) - deflate_state *s; -{ - unsigned n; - unsigned more; /* Amount of free space at the end of the window. */ - uInt wsize = s->w_size; - - Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); - - do { - more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); - - /* Deal with !@#$% 64K limit: */ - if (sizeof(int) <= 2) { - if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - more = wsize; - - } else if (more == (unsigned)(-1)) { - /* Very unlikely, but possible on 16 bit machine if - * strstart == 0 && lookahead == 1 (input done a byte at time) - */ - more--; - } - } - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if (s->strstart >= wsize+MAX_DIST(s)) { - - zmemcpy(s->window, s->window+wsize, (unsigned)wsize - more); - s->match_start -= wsize; - s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ - s->block_start -= (long) wsize; - slide_hash(s); - more += wsize; - } - if (s->strm->avail_in == 0) break; - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - Assert(more >= 2, "more < 2"); - - n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); - s->lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s->lookahead + s->insert >= MIN_MATCH) { - uInt str = s->strstart - s->insert; - s->ins_h = s->window[str]; - UPDATE_HASH(s, s->ins_h, s->window[str + 1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - while (s->insert) { - UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); -#ifndef FASTEST - s->prev[str & s->w_mask] = s->head[s->ins_h]; -#endif - s->head[s->ins_h] = (Pos)str; - str++; - s->insert--; - if (s->lookahead + s->insert < MIN_MATCH) - break; - } - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); - - /* If the WIN_INIT bytes after the end of the current data have never been - * written, then zero those bytes in order to avoid memory check reports of - * the use of uninitialized (or uninitialised as Julian writes) bytes by - * the longest match routines. Update the high water mark for the next - * time through here. WIN_INIT is set to MAX_MATCH since the longest match - * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. - */ - if (s->high_water < s->window_size) { - ulg curr = s->strstart + (ulg)(s->lookahead); - ulg init; - - if (s->high_water < curr) { - /* Previous high water mark below current data -- zero WIN_INIT - * bytes or up to end of window, whichever is less. - */ - init = s->window_size - curr; - if (init > WIN_INIT) - init = WIN_INIT; - zmemzero(s->window + curr, (unsigned)init); - s->high_water = curr + init; - } - else if (s->high_water < (ulg)curr + WIN_INIT) { - /* High water mark at or above current data, but below current data - * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up - * to end of window, whichever is less. - */ - init = (ulg)curr + WIN_INIT - s->high_water; - if (init > s->window_size - s->high_water) - init = s->window_size - s->high_water; - zmemzero(s->window + s->high_water, (unsigned)init); - s->high_water += init; - } - } - - Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, - "not enough room for search"); -} - -/* =========================================================================== - * Flush the current block, with given end-of-file flag. - * IN assertion: strstart is set to the end of the current match. - */ -#define FLUSH_BLOCK_ONLY(s, last) { \ - _tr_flush_block(s, (s->block_start >= 0L ? \ - (charf *)&s->window[(unsigned)s->block_start] : \ - (charf *)Z_NULL), \ - (ulg)((long)s->strstart - s->block_start), \ - (last)); \ - s->block_start = s->strstart; \ - flush_pending(s->strm); \ - Tracev((stderr,"[FLUSH]")); \ -} - -/* Same but force premature exit if necessary. */ -#define FLUSH_BLOCK(s, last) { \ - FLUSH_BLOCK_ONLY(s, last); \ - if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \ -} - -/* Maximum stored block length in deflate format (not including header). */ -#define MAX_STORED 65535 - -/* Minimum of a and b. */ -#define MIN(a, b) ((a) > (b) ? (b) : (a)) - -/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * - * In case deflateParams() is used to later switch to a non-zero compression - * level, s->matches (otherwise unused when storing) keeps track of the number - * of hash table slides to perform. If s->matches is 1, then one hash table - * slide will be done when switching. If s->matches is 2, the maximum value - * allowed here, then the hash table will be cleared, since two or more slides - * is the same as a clear. - * - * deflate_stored() is written to minimize the number of times an input byte is - * copied. It is most efficient with large input and output buffers, which - * maximizes the opportunites to have a single copy from next_in to next_out. - */ -local block_state deflate_stored(s, flush) - deflate_state *s; - int flush; -{ - /* Smallest worthy block size when not flushing or finishing. By default - * this is 32K. This can be as small as 507 bytes for memLevel == 1. For - * large input and output buffers, the stored block size will be larger. - */ - unsigned min_block = MIN(s->pending_buf_size - 5, s->w_size); - - /* Copy as many min_block or larger stored blocks directly to next_out as - * possible. If flushing, copy the remaining available input to next_out as - * stored blocks, if there is enough space. - */ - unsigned len, left, have, last = 0; - unsigned used = s->strm->avail_in; - do { - /* Set len to the maximum size block that we can copy directly with the - * available input data and output space. Set left to how much of that - * would be copied from what's left in the window. - */ - len = MAX_STORED; /* maximum deflate stored block length */ - have = (s->bi_valid + 42) >> 3; /* number of header bytes */ - if (s->strm->avail_out < have) /* need room for header */ - break; - /* maximum stored block length that will fit in avail_out: */ - have = s->strm->avail_out - have; - left = s->strstart - s->block_start; /* bytes left in window */ - if (len > (ulg)left + s->strm->avail_in) - len = left + s->strm->avail_in; /* limit len to the input */ - if (len > have) - len = have; /* limit len to the output */ - - /* If the stored block would be less than min_block in length, or if - * unable to copy all of the available input when flushing, then try - * copying to the window and the pending buffer instead. Also don't - * write an empty block when flushing -- deflate() does that. - */ - if (len < min_block && ((len == 0 && flush != Z_FINISH) || - flush == Z_NO_FLUSH || - len != left + s->strm->avail_in)) - break; - - /* Make a dummy stored block in pending to get the header bytes, - * including any pending bits. This also updates the debugging counts. - */ - last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0; - _tr_stored_block(s, (char *)0, 0L, last); - - /* Replace the lengths in the dummy stored block with len. */ - s->pending_buf[s->pending - 4] = len; - s->pending_buf[s->pending - 3] = len >> 8; - s->pending_buf[s->pending - 2] = ~len; - s->pending_buf[s->pending - 1] = ~len >> 8; - - /* Write the stored block header bytes. */ - flush_pending(s->strm); - -#ifdef ZLIB_DEBUG - /* Update debugging counts for the data about to be copied. */ - s->compressed_len += len << 3; - s->bits_sent += len << 3; -#endif - - /* Copy uncompressed bytes from the window to next_out. */ - if (left) { - if (left > len) - left = len; - zmemcpy(s->strm->next_out, s->window + s->block_start, left); - s->strm->next_out += left; - s->strm->avail_out -= left; - s->strm->total_out += left; - s->block_start += left; - len -= left; - } - - /* Copy uncompressed bytes directly from next_in to next_out, updating - * the check value. - */ - if (len) { - read_buf(s->strm, s->strm->next_out, len); - s->strm->next_out += len; - s->strm->avail_out -= len; - s->strm->total_out += len; - } - } while (last == 0); - - /* Update the sliding window with the last s->w_size bytes of the copied - * data, or append all of the copied data to the existing window if less - * than s->w_size bytes were copied. Also update the number of bytes to - * insert in the hash tables, in the event that deflateParams() switches to - * a non-zero compression level. - */ - used -= s->strm->avail_in; /* number of input bytes directly copied */ - if (used) { - /* If any input was used, then no unused input remains in the window, - * therefore s->block_start == s->strstart. - */ - if (used >= s->w_size) { /* supplant the previous history */ - s->matches = 2; /* clear hash */ - zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size); - s->strstart = s->w_size; - } - else { - if (s->window_size - s->strstart <= used) { - /* Slide the window down. */ - s->strstart -= s->w_size; - zmemcpy(s->window, s->window + s->w_size, s->strstart); - if (s->matches < 2) - s->matches++; /* add a pending slide_hash() */ - } - zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); - s->strstart += used; - } - s->block_start = s->strstart; - s->insert += MIN(used, s->w_size - s->insert); - } - if (s->high_water < s->strstart) - s->high_water = s->strstart; - - /* If the last block was written to next_out, then done. */ - if (last) - return finish_done; - - /* If flushing and all input has been consumed, then done. */ - if (flush != Z_NO_FLUSH && flush != Z_FINISH && - s->strm->avail_in == 0 && (long)s->strstart == s->block_start) - return block_done; - - /* Fill the window with any remaining input. */ - have = s->window_size - s->strstart - 1; - if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) { - /* Slide the window down. */ - s->block_start -= s->w_size; - s->strstart -= s->w_size; - zmemcpy(s->window, s->window + s->w_size, s->strstart); - if (s->matches < 2) - s->matches++; /* add a pending slide_hash() */ - have += s->w_size; /* more space now */ - } - if (have > s->strm->avail_in) - have = s->strm->avail_in; - if (have) { - read_buf(s->strm, s->window + s->strstart, have); - s->strstart += have; - } - if (s->high_water < s->strstart) - s->high_water = s->strstart; - - /* There was not enough avail_out to write a complete worthy or flushed - * stored block to next_out. Write a stored block to pending instead, if we - * have enough input for a worthy block, or if flushing and there is enough - * room for the remaining input as a stored block in the pending buffer. - */ - have = (s->bi_valid + 42) >> 3; /* number of header bytes */ - /* maximum stored block length that will fit in pending: */ - have = MIN(s->pending_buf_size - have, MAX_STORED); - min_block = MIN(have, s->w_size); - left = s->strstart - s->block_start; - if (left >= min_block || - ((left || flush == Z_FINISH) && flush != Z_NO_FLUSH && - s->strm->avail_in == 0 && left <= have)) { - len = MIN(left, have); - last = flush == Z_FINISH && s->strm->avail_in == 0 && - len == left ? 1 : 0; - _tr_stored_block(s, (charf *)s->window + s->block_start, len, last); - s->block_start += len; - flush_pending(s->strm); - } - - /* We've done all we can with the available input and output. */ - return last ? finish_started : need_more; -} - -/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -local block_state deflate_fast(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head; /* head of the hash chain */ - int bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = NIL; - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s->match_length = longest_match (s, hash_head); - /* longest_match() sets match_start */ - } - if (s->match_length >= MIN_MATCH) { - check_match(s, s->strstart, s->match_start, s->match_length); - - _tr_tally_dist(s, s->strstart - s->match_start, - s->match_length - MIN_MATCH, bflush); - - s->lookahead -= s->match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ -#ifndef FASTEST - if (s->match_length <= s->max_insert_length && - s->lookahead >= MIN_MATCH) { - s->match_length--; /* string at strstart already in table */ - do { - s->strstart++; - INSERT_STRING(s, s->strstart, hash_head); - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. - */ - } while (--s->match_length != 0); - s->strstart++; - } else -#endif - { - s->strstart += s->match_length; - s->match_length = 0; - s->ins_h = s->window[s->strstart]; - UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ - } - } else { - /* No match, output a literal byte */ - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - } - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} - -#ifndef FASTEST -/* =========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -local block_state deflate_slow(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head; /* head of hash chain */ - int bflush; /* set if current block must be flushed */ - - /* Process the input block. */ - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = NIL; - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - */ - s->prev_length = s->match_length, s->prev_match = s->match_start; - s->match_length = MIN_MATCH-1; - - if (hash_head != NIL && s->prev_length < s->max_lazy_match && - s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - s->match_length = longest_match (s, hash_head); - /* longest_match() sets match_start */ - - if (s->match_length <= 5 && (s->strategy == Z_FILTERED -#if TOO_FAR <= 32767 - || (s->match_length == MIN_MATCH && - s->strstart - s->match_start > TOO_FAR) -#endif - )) { - - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - s->match_length = MIN_MATCH-1; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { - uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; - /* Do not insert strings in hash table beyond this. */ - - check_match(s, s->strstart-1, s->prev_match, s->prev_length); - - _tr_tally_dist(s, s->strstart -1 - s->prev_match, - s->prev_length - MIN_MATCH, bflush); - - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - s->lookahead -= s->prev_length-1; - s->prev_length -= 2; - do { - if (++s->strstart <= max_insert) { - INSERT_STRING(s, s->strstart, hash_head); - } - } while (--s->prev_length != 0); - s->match_available = 0; - s->match_length = MIN_MATCH-1; - s->strstart++; - - if (bflush) FLUSH_BLOCK(s, 0); - - } else if (s->match_available) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - if (bflush) { - FLUSH_BLOCK_ONLY(s, 0); - } - s->strstart++; - s->lookahead--; - if (s->strm->avail_out == 0) return need_more; - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - s->match_available = 1; - s->strstart++; - s->lookahead--; - } - } - Assert (flush != Z_NO_FLUSH, "no flush?"); - if (s->match_available) { - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - s->match_available = 0; - } - s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} -#endif /* FASTEST */ - -/* =========================================================================== - * For Z_RLE, simply look for runs of bytes, generate matches only of distance - * one. Do not maintain a hash table. (It will be regenerated if this run of - * deflate switches away from Z_RLE.) - */ -local block_state deflate_rle(s, flush) - deflate_state *s; - int flush; -{ - int bflush; /* set if current block must be flushed */ - uInt prev; /* byte at distance one to match */ - Bytef *scan, *strend; /* scan goes up to strend for length of run */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the longest run, plus one for the unrolled loop. - */ - if (s->lookahead <= MAX_MATCH) { - fill_window(s); - if (s->lookahead <= MAX_MATCH && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* See how many times the previous byte repeats */ - s->match_length = 0; - if (s->lookahead >= MIN_MATCH && s->strstart > 0) { - scan = s->window + s->strstart - 1; - prev = *scan; - if (prev == *++scan && prev == *++scan && prev == *++scan) { - strend = s->window + s->strstart + MAX_MATCH; - do { - } while (prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - scan < strend); - s->match_length = MAX_MATCH - (uInt)(strend - scan); - if (s->match_length > s->lookahead) - s->match_length = s->lookahead; - } - Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); - } - - /* Emit match if have run of MIN_MATCH or longer, else emit literal */ - if (s->match_length >= MIN_MATCH) { - check_match(s, s->strstart, s->strstart - 1, s->match_length); - - _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush); - - s->lookahead -= s->match_length; - s->strstart += s->match_length; - s->match_length = 0; - } else { - /* No match, output a literal byte */ - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - } - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = 0; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} - -/* =========================================================================== - * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */ -local block_state deflate_huff(s, flush) - deflate_state *s; - int flush; -{ - int bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we have a literal to write. */ - if (s->lookahead == 0) { - fill_window(s); - if (s->lookahead == 0) { - if (flush == Z_NO_FLUSH) - return need_more; - break; /* flush the current block */ - } - } - - /* Output a literal byte */ - s->match_length = 0; - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - if (bflush) FLUSH_BLOCK(s, 0); - } - s->insert = 0; - if (flush == Z_FINISH) { - FLUSH_BLOCK(s, 1); - return finish_done; - } - if (s->last_lit) - FLUSH_BLOCK(s, 0); - return block_done; -} diff --git a/Externals/zlib/deflate.h b/Externals/zlib/deflate.h deleted file mode 100644 index 23ecdd312b..0000000000 --- a/Externals/zlib/deflate.h +++ /dev/null @@ -1,349 +0,0 @@ -/* deflate.h -- internal compression state - * Copyright (C) 1995-2016 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef DEFLATE_H -#define DEFLATE_H - -#include "zutil.h" - -/* define NO_GZIP when compiling if you want to disable gzip header and - trailer creation by deflate(). NO_GZIP would be used to avoid linking in - the crc code when it is not needed. For shared libraries, gzip encoding - should be left enabled. */ -#ifndef NO_GZIP -# define GZIP -#endif - -/* =========================================================================== - * Internal compression state. - */ - -#define LENGTH_CODES 29 -/* number of length codes, not counting the special END_BLOCK code */ - -#define LITERALS 256 -/* number of literal bytes 0..255 */ - -#define L_CODES (LITERALS+1+LENGTH_CODES) -/* number of Literal or Length codes, including the END_BLOCK code */ - -#define D_CODES 30 -/* number of distance codes */ - -#define BL_CODES 19 -/* number of codes used to transfer the bit lengths */ - -#define HEAP_SIZE (2*L_CODES+1) -/* maximum heap size */ - -#define MAX_BITS 15 -/* All codes must not exceed MAX_BITS bits */ - -#define Buf_size 16 -/* size of bit buffer in bi_buf */ - -#define INIT_STATE 42 /* zlib header -> BUSY_STATE */ -#ifdef GZIP -# define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */ -#endif -#define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */ -#define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */ -#define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */ -#define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */ -#define BUSY_STATE 113 /* deflate -> FINISH_STATE */ -#define FINISH_STATE 666 /* stream complete */ -/* Stream status */ - - -/* Data structure describing a single value and its code string. */ -typedef struct ct_data_s { - union { - ush freq; /* frequency count */ - ush code; /* bit string */ - } fc; - union { - ush dad; /* father node in Huffman tree */ - ush len; /* length of bit string */ - } dl; -} FAR ct_data; - -#define Freq fc.freq -#define Code fc.code -#define Dad dl.dad -#define Len dl.len - -typedef struct static_tree_desc_s static_tree_desc; - -typedef struct tree_desc_s { - ct_data *dyn_tree; /* the dynamic tree */ - int max_code; /* largest code with non zero frequency */ - const static_tree_desc *stat_desc; /* the corresponding static tree */ -} FAR tree_desc; - -typedef ush Pos; -typedef Pos FAR Posf; -typedef unsigned IPos; - -/* A Pos is an index in the character window. We use short instead of int to - * save space in the various tables. IPos is used only for parameter passing. - */ - -typedef struct internal_state { - z_streamp strm; /* pointer back to this zlib stream */ - int status; /* as the name implies */ - Bytef *pending_buf; /* output still pending */ - ulg pending_buf_size; /* size of pending_buf */ - Bytef *pending_out; /* next pending byte to output to the stream */ - ulg pending; /* nb of bytes in the pending buffer */ - int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ - gz_headerp gzhead; /* gzip header information to write */ - ulg gzindex; /* where in extra, name, or comment */ - Byte method; /* can only be DEFLATED */ - int last_flush; /* value of flush param for previous deflate call */ - - /* used by deflate.c: */ - - uInt w_size; /* LZ77 window size (32K by default) */ - uInt w_bits; /* log2(w_size) (8..16) */ - uInt w_mask; /* w_size - 1 */ - - Bytef *window; - /* Sliding window. Input bytes are read into the second half of the window, - * and move to the first half later to keep a dictionary of at least wSize - * bytes. With this organization, matches are limited to a distance of - * wSize-MAX_MATCH bytes, but this ensures that IO is always - * performed with a length multiple of the block size. Also, it limits - * the window size to 64K, which is quite useful on MSDOS. - * To do: use the user input buffer as sliding window. - */ - - ulg window_size; - /* Actual size of window: 2*wSize, except when the user input buffer - * is directly used as sliding window. - */ - - Posf *prev; - /* Link to older string with same hash index. To limit the size of this - * array to 64K, this link is maintained only for the last 32K strings. - * An index in this array is thus a window index modulo 32K. - */ - - Posf *head; /* Heads of the hash chains or NIL. */ - - uInt ins_h; /* hash index of string to be inserted */ - uInt hash_size; /* number of elements in hash table */ - uInt hash_bits; /* log2(hash_size) */ - uInt hash_mask; /* hash_size-1 */ - - uInt hash_shift; - /* Number of bits by which ins_h must be shifted at each input - * step. It must be such that after MIN_MATCH steps, the oldest - * byte no longer takes part in the hash key, that is: - * hash_shift * MIN_MATCH >= hash_bits - */ - - long block_start; - /* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */ - - uInt match_length; /* length of best match */ - IPos prev_match; /* previous match */ - int match_available; /* set if previous match exists */ - uInt strstart; /* start of string to insert */ - uInt match_start; /* start of matching string */ - uInt lookahead; /* number of valid bytes ahead in window */ - - uInt prev_length; - /* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */ - - uInt max_chain_length; - /* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */ - - uInt max_lazy_match; - /* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ -# define max_insert_length max_lazy_match - /* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */ - - int level; /* compression level (1..9) */ - int strategy; /* favor or force Huffman coding*/ - - uInt good_match; - /* Use a faster search when the previous match is longer than this */ - - int nice_match; /* Stop searching when current match exceeds this */ - - /* used by trees.c: */ - /* Didn't use ct_data typedef below to suppress compiler warning */ - struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ - struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ - struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ - - struct tree_desc_s l_desc; /* desc. for literal tree */ - struct tree_desc_s d_desc; /* desc. for distance tree */ - struct tree_desc_s bl_desc; /* desc. for bit length tree */ - - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ - int heap_len; /* number of elements in the heap */ - int heap_max; /* element of largest frequency */ - /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all trees. - */ - - uch depth[2*L_CODES+1]; - /* Depth of each subtree used as tie breaker for trees of equal frequency - */ - - uchf *l_buf; /* buffer for literals or lengths */ - - uInt lit_bufsize; - /* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */ - - uInt last_lit; /* running index in l_buf */ - - ushf *d_buf; - /* Buffer for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ - - ulg opt_len; /* bit length of current block with optimal trees */ - ulg static_len; /* bit length of current block with static trees */ - uInt matches; /* number of string matches in current block */ - uInt insert; /* bytes at end of window left to insert */ - -#ifdef ZLIB_DEBUG - ulg compressed_len; /* total bit length of compressed file mod 2^32 */ - ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ -#endif - - ush bi_buf; - /* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */ - int bi_valid; - /* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ - - ulg high_water; - /* High water mark offset in window for initialized bytes -- bytes above - * this are set to zero in order to avoid memory check warnings when - * longest match routines access bytes past the input. This is then - * updated to the new high water mark. - */ - -} FAR deflate_state; - -/* Output a byte on the stream. - * IN assertion: there is enough room in pending_buf. - */ -#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);} - - -#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) -/* Minimum amount of lookahead, except at the end of the input file. - * See deflate.c for comments about the MIN_MATCH+1. - */ - -#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) -/* In order to simplify the code, particularly on 16 bit machines, match - * distances are limited to MAX_DIST instead of WSIZE. - */ - -#define WIN_INIT MAX_MATCH -/* Number of bytes after end of data in window to initialize in order to avoid - memory checker errors from longest match routines */ - - /* in trees.c */ -void ZLIB_INTERNAL _tr_init OF((deflate_state *s)); -int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); -void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf, - ulg stored_len, int last)); -void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s)); -void ZLIB_INTERNAL _tr_align OF((deflate_state *s)); -void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf, - ulg stored_len, int last)); - -#define d_code(dist) \ - ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) -/* Mapping from a distance to a distance code. dist is the distance - 1 and - * must not have side effects. _dist_code[256] and _dist_code[257] are never - * used. - */ - -#ifndef ZLIB_DEBUG -/* Inline versions of _tr_tally for speed: */ - -#if defined(GEN_TREES_H) || !defined(STDC) - extern uch ZLIB_INTERNAL _length_code[]; - extern uch ZLIB_INTERNAL _dist_code[]; -#else - extern const uch ZLIB_INTERNAL _length_code[]; - extern const uch ZLIB_INTERNAL _dist_code[]; -#endif - -# define _tr_tally_lit(s, c, flush) \ - { uch cc = (c); \ - s->d_buf[s->last_lit] = 0; \ - s->l_buf[s->last_lit++] = cc; \ - s->dyn_ltree[cc].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -# define _tr_tally_dist(s, distance, length, flush) \ - { uch len = (uch)(length); \ - ush dist = (ush)(distance); \ - s->d_buf[s->last_lit] = dist; \ - s->l_buf[s->last_lit++] = len; \ - dist--; \ - s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ - s->dyn_dtree[d_code(dist)].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -#else -# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) -# define _tr_tally_dist(s, distance, length, flush) \ - flush = _tr_tally(s, distance, length) -#endif - -#endif /* DEFLATE_H */ diff --git a/Externals/zlib/gzclose.c b/Externals/zlib/gzclose.c deleted file mode 100644 index caeb99a317..0000000000 --- a/Externals/zlib/gzclose.c +++ /dev/null @@ -1,25 +0,0 @@ -/* gzclose.c -- zlib gzclose() function - * Copyright (C) 2004, 2010 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -/* gzclose() is in a separate file so that it is linked in only if it is used. - That way the other gzclose functions can be used instead to avoid linking in - unneeded compression or decompression routines. */ -int ZEXPORT gzclose(file) - gzFile file; -{ -#ifndef NO_GZCOMPRESS - gz_statep state; - - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); -#else - return gzclose_r(file); -#endif -} diff --git a/Externals/zlib/gzguts.h b/Externals/zlib/gzguts.h deleted file mode 100644 index 990a4d2514..0000000000 --- a/Externals/zlib/gzguts.h +++ /dev/null @@ -1,218 +0,0 @@ -/* gzguts.h -- zlib internal header definitions for gz* operations - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#ifdef _LARGEFILE64_SOURCE -# ifndef _LARGEFILE_SOURCE -# define _LARGEFILE_SOURCE 1 -# endif -# ifdef _FILE_OFFSET_BITS -# undef _FILE_OFFSET_BITS -# endif -#endif - -#ifdef HAVE_HIDDEN -# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) -#else -# define ZLIB_INTERNAL -#endif - -#include -#include "zlib.h" -#ifdef STDC -# include -# include -# include -#endif - -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -#endif -#include - -#ifdef _WIN32 -# include -#endif - -#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32) -# include -#endif - -#if defined(_WIN32) || defined(__CYGWIN__) -# define WIDECHAR -#endif - -#ifdef WINAPI_FAMILY -# define open _open -# define read _read -# define write _write -# define close _close -#endif - -#ifdef NO_DEFLATE /* for compatibility with old definition */ -# define NO_GZCOMPRESS -#endif - -#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#if defined(__CYGWIN__) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410) -# ifndef HAVE_VSNPRINTF -# define HAVE_VSNPRINTF -# endif -#endif - -#ifndef HAVE_VSNPRINTF -# ifdef MSDOS -/* vsnprintf may exist on some MS-DOS compilers (DJGPP?), - but for now we just assume it doesn't. */ -# define NO_vsnprintf -# endif -# ifdef __TURBOC__ -# define NO_vsnprintf -# endif -# ifdef WIN32 -/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ -# if !defined(vsnprintf) && !defined(NO_vsnprintf) -# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) -# define vsnprintf _vsnprintf -# endif -# endif -# endif -# ifdef __SASC -# define NO_vsnprintf -# endif -# ifdef VMS -# define NO_vsnprintf -# endif -# ifdef __OS400__ -# define NO_vsnprintf -# endif -# ifdef __MVS__ -# define NO_vsnprintf -# endif -#endif - -/* unlike snprintf (which is required in C99), _snprintf does not guarantee - null termination of the result -- however this is only used in gzlib.c where - the result is assured to fit in the space provided */ -#if defined(_MSC_VER) && _MSC_VER < 1900 -# define snprintf _snprintf -#endif - -#ifndef local -# define local static -#endif -/* since "static" is used to mean two completely different things in C, we - define "local" for the non-static meaning of "static", for readability - (compile with -Dlocal if your debugger can't find static symbols) */ - -/* gz* functions always use library allocation functions */ -#ifndef STDC - extern voidp malloc OF((uInt size)); - extern void free OF((voidpf ptr)); -#endif - -/* get errno and strerror definition */ -#if defined UNDER_CE -# include -# define zstrerror() gz_strwinerror((DWORD)GetLastError()) -#else -# ifndef NO_STRERROR -# include -# define zstrerror() strerror(errno) -# else -# define zstrerror() "stdio error (consult errno)" -# endif -#endif - -/* provide prototypes for these when building zlib without LFS */ -#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); -#endif - -/* default memLevel */ -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif - -/* default i/o buffer size -- double this for output when reading (this and - twice this must be able to fit in an unsigned type) */ -#define GZBUFSIZE 8192 - -/* gzip modes, also provide a little integrity check on the passed structure */ -#define GZ_NONE 0 -#define GZ_READ 7247 -#define GZ_WRITE 31153 -#define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */ - -/* values for gz_state how */ -#define LOOK 0 /* look for a gzip header */ -#define COPY 1 /* copy input directly */ -#define GZIP 2 /* decompress a gzip stream */ - -/* internal gzip file state data structure */ -typedef struct { - /* exposed contents for gzgetc() macro */ - struct gzFile_s x; /* "x" for exposed */ - /* x.have: number of bytes available at x.next */ - /* x.next: next output data to deliver or write */ - /* x.pos: current position in uncompressed data */ - /* used for both reading and writing */ - int mode; /* see gzip modes above */ - int fd; /* file descriptor */ - char *path; /* path or fd for error messages */ - unsigned size; /* buffer size, zero if not allocated yet */ - unsigned want; /* requested buffer size, default is GZBUFSIZE */ - unsigned char *in; /* input buffer (double-sized when writing) */ - unsigned char *out; /* output buffer (double-sized when reading) */ - int direct; /* 0 if processing gzip, 1 if transparent */ - /* just for reading */ - int how; /* 0: get header, 1: copy, 2: decompress */ - z_off64_t start; /* where the gzip data started, for rewinding */ - int eof; /* true if end of input file reached */ - int past; /* true if read requested past end */ - /* just for writing */ - int level; /* compression level */ - int strategy; /* compression strategy */ - /* seek request */ - z_off64_t skip; /* amount to skip (already rewound if backwards) */ - int seek; /* true if seek request pending */ - /* error information */ - int err; /* error code */ - char *msg; /* error message */ - /* zlib inflate or deflate stream */ - z_stream strm; /* stream structure in-place (not a pointer) */ -} gz_state; -typedef gz_state FAR *gz_statep; - -/* shared functions */ -void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *)); -#if defined UNDER_CE -char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error)); -#endif - -/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t - value -- needed when comparing unsigned to z_off64_t, which is signed - (possible z_off64_t types off_t, off64_t, and long are all signed) */ -#ifdef INT_MAX -# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX) -#else -unsigned ZLIB_INTERNAL gz_intmax OF((void)); -# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax()) -#endif diff --git a/Externals/zlib/gzlib.c b/Externals/zlib/gzlib.c deleted file mode 100644 index 4105e6aff9..0000000000 --- a/Externals/zlib/gzlib.c +++ /dev/null @@ -1,637 +0,0 @@ -/* gzlib.c -- zlib functions common to reading and writing gzip files - * Copyright (C) 2004-2017 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) -# define LSEEK _lseeki64 -#else -#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 -# define LSEEK lseek64 -#else -# define LSEEK lseek -#endif -#endif - -/* Local functions */ -local void gz_reset OF((gz_statep)); -local gzFile gz_open OF((const void *, int, const char *)); - -#if defined UNDER_CE - -/* Map the Windows error number in ERROR to a locale-dependent error message - string and return a pointer to it. Typically, the values for ERROR come - from GetLastError. - - The string pointed to shall not be modified by the application, but may be - overwritten by a subsequent call to gz_strwinerror - - The gz_strwinerror function does not change the current setting of - GetLastError. */ -char ZLIB_INTERNAL *gz_strwinerror (error) - DWORD error; -{ - static char buf[1024]; - - wchar_t *msgbuf; - DWORD lasterr = GetLastError(); - DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_ALLOCATE_BUFFER, - NULL, - error, - 0, /* Default language */ - (LPVOID)&msgbuf, - 0, - NULL); - if (chars != 0) { - /* If there is an \r\n appended, zap it. */ - if (chars >= 2 - && msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') { - chars -= 2; - msgbuf[chars] = 0; - } - - if (chars > sizeof (buf) - 1) { - chars = sizeof (buf) - 1; - msgbuf[chars] = 0; - } - - wcstombs(buf, msgbuf, chars + 1); - LocalFree(msgbuf); - } - else { - sprintf(buf, "unknown win32 error (%ld)", error); - } - - SetLastError(lasterr); - return buf; -} - -#endif /* UNDER_CE */ - -/* Reset gzip file state */ -local void gz_reset(state) - gz_statep state; -{ - state->x.have = 0; /* no output data available */ - if (state->mode == GZ_READ) { /* for reading ... */ - state->eof = 0; /* not at end of file */ - state->past = 0; /* have not read past end yet */ - state->how = LOOK; /* look for gzip header */ - } - state->seek = 0; /* no seek request pending */ - gz_error(state, Z_OK, NULL); /* clear error */ - state->x.pos = 0; /* no uncompressed data yet */ - state->strm.avail_in = 0; /* no input data yet */ -} - -/* Open a gzip file either by name or file descriptor. */ -local gzFile gz_open(path, fd, mode) - const void *path; - int fd; - const char *mode; -{ - gz_statep state; - z_size_t len; - int oflag; -#ifdef O_CLOEXEC - int cloexec = 0; -#endif -#ifdef O_EXCL - int exclusive = 0; -#endif - - /* check input */ - if (path == NULL) - return NULL; - - /* allocate gzFile structure to return */ - state = (gz_statep)malloc(sizeof(gz_state)); - if (state == NULL) - return NULL; - state->size = 0; /* no buffers allocated yet */ - state->want = GZBUFSIZE; /* requested buffer size */ - state->msg = NULL; /* no error message yet */ - - /* interpret mode */ - state->mode = GZ_NONE; - state->level = Z_DEFAULT_COMPRESSION; - state->strategy = Z_DEFAULT_STRATEGY; - state->direct = 0; - while (*mode) { - if (*mode >= '0' && *mode <= '9') - state->level = *mode - '0'; - else - switch (*mode) { - case 'r': - state->mode = GZ_READ; - break; -#ifndef NO_GZCOMPRESS - case 'w': - state->mode = GZ_WRITE; - break; - case 'a': - state->mode = GZ_APPEND; - break; -#endif - case '+': /* can't read and write at the same time */ - free(state); - return NULL; - case 'b': /* ignore -- will request binary anyway */ - break; -#ifdef O_CLOEXEC - case 'e': - cloexec = 1; - break; -#endif -#ifdef O_EXCL - case 'x': - exclusive = 1; - break; -#endif - case 'f': - state->strategy = Z_FILTERED; - break; - case 'h': - state->strategy = Z_HUFFMAN_ONLY; - break; - case 'R': - state->strategy = Z_RLE; - break; - case 'F': - state->strategy = Z_FIXED; - break; - case 'T': - state->direct = 1; - break; - default: /* could consider as an error, but just ignore */ - ; - } - mode++; - } - - /* must provide an "r", "w", or "a" */ - if (state->mode == GZ_NONE) { - free(state); - return NULL; - } - - /* can't force transparent read */ - if (state->mode == GZ_READ) { - if (state->direct) { - free(state); - return NULL; - } - state->direct = 1; /* for empty file */ - } - - /* save the path name for error messages */ -#ifdef WIDECHAR - if (fd == -2) { - len = wcstombs(NULL, path, 0); - if (len == (z_size_t)-1) - len = 0; - } - else -#endif - len = strlen((const char *)path); - state->path = (char *)malloc(len + 1); - if (state->path == NULL) { - free(state); - return NULL; - } -#ifdef WIDECHAR - if (fd == -2) - if (len) - wcstombs(state->path, path, len + 1); - else - *(state->path) = 0; - else -#endif -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - (void)snprintf(state->path, len + 1, "%s", (const char *)path); -#else - strcpy(state->path, path); -#endif - - /* compute the flags for open() */ - oflag = -#ifdef O_LARGEFILE - O_LARGEFILE | -#endif -#ifdef O_BINARY - O_BINARY | -#endif -#ifdef O_CLOEXEC - (cloexec ? O_CLOEXEC : 0) | -#endif - (state->mode == GZ_READ ? - O_RDONLY : - (O_WRONLY | O_CREAT | -#ifdef O_EXCL - (exclusive ? O_EXCL : 0) | -#endif - (state->mode == GZ_WRITE ? - O_TRUNC : - O_APPEND))); - - /* open the file with the appropriate flags (or just use fd) */ - state->fd = fd > -1 ? fd : ( -#ifdef WIDECHAR - fd == -2 ? _wopen(path, oflag, 0666) : -#endif - open((const char *)path, oflag, 0666)); - if (state->fd == -1) { - free(state->path); - free(state); - return NULL; - } - if (state->mode == GZ_APPEND) { - LSEEK(state->fd, 0, SEEK_END); /* so gzoffset() is correct */ - state->mode = GZ_WRITE; /* simplify later checks */ - } - - /* save the current position for rewinding (only if reading) */ - if (state->mode == GZ_READ) { - state->start = LSEEK(state->fd, 0, SEEK_CUR); - if (state->start == -1) state->start = 0; - } - - /* initialize stream */ - gz_reset(state); - - /* return stream */ - return (gzFile)state; -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzopen(path, mode) - const char *path; - const char *mode; -{ - return gz_open(path, -1, mode); -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzopen64(path, mode) - const char *path; - const char *mode; -{ - return gz_open(path, -1, mode); -} - -/* -- see zlib.h -- */ -gzFile ZEXPORT gzdopen(fd, mode) - int fd; - const char *mode; -{ - char *path; /* identifier for error messages */ - gzFile gz; - - if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL) - return NULL; -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - (void)snprintf(path, 7 + 3 * sizeof(int), "", fd); -#else - sprintf(path, "", fd); /* for debugging */ -#endif - gz = gz_open(path, fd, mode); - free(path); - return gz; -} - -/* -- see zlib.h -- */ -#ifdef WIDECHAR -gzFile ZEXPORT gzopen_w(path, mode) - const wchar_t *path; - const char *mode; -{ - return gz_open(path, -2, mode); -} -#endif - -/* -- see zlib.h -- */ -int ZEXPORT gzbuffer(file, size) - gzFile file; - unsigned size; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* make sure we haven't already allocated memory */ - if (state->size != 0) - return -1; - - /* check and set requested size */ - if ((size << 1) < size) - return -1; /* need to be able to double it */ - if (size < 2) - size = 2; /* need two bytes to check magic header */ - state->want = size; - return 0; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzrewind(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* back up and start over */ - if (LSEEK(state->fd, state->start, SEEK_SET) == -1) - return -1; - gz_reset(state); - return 0; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gzseek64(file, offset, whence) - gzFile file; - z_off64_t offset; - int whence; -{ - unsigned n; - z_off64_t ret; - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* check that there's no error */ - if (state->err != Z_OK && state->err != Z_BUF_ERROR) - return -1; - - /* can only seek from start or relative to current position */ - if (whence != SEEK_SET && whence != SEEK_CUR) - return -1; - - /* normalize offset to a SEEK_CUR specification */ - if (whence == SEEK_SET) - offset -= state->x.pos; - else if (state->seek) - offset += state->skip; - state->seek = 0; - - /* if within raw area while reading, just go there */ - if (state->mode == GZ_READ && state->how == COPY && - state->x.pos + offset >= 0) { - ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR); - if (ret == -1) - return -1; - state->x.have = 0; - state->eof = 0; - state->past = 0; - state->seek = 0; - gz_error(state, Z_OK, NULL); - state->strm.avail_in = 0; - state->x.pos += offset; - return state->x.pos; - } - - /* calculate skip amount, rewinding if needed for back seek when reading */ - if (offset < 0) { - if (state->mode != GZ_READ) /* writing -- can't go backwards */ - return -1; - offset += state->x.pos; - if (offset < 0) /* before start of file! */ - return -1; - if (gzrewind(file) == -1) /* rewind, then skip to offset */ - return -1; - } - - /* if reading, skip what's in output buffer (one less gzgetc() check) */ - if (state->mode == GZ_READ) { - n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > offset ? - (unsigned)offset : state->x.have; - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - offset -= n; - } - - /* request skip (if not zero) */ - if (offset) { - state->seek = 1; - state->skip = offset; - } - return state->x.pos + offset; -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gzseek(file, offset, whence) - gzFile file; - z_off_t offset; - int whence; -{ - z_off64_t ret; - - ret = gzseek64(file, (z_off64_t)offset, whence); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gztell64(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* return position */ - return state->x.pos + (state->seek ? state->skip : 0); -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gztell(file) - gzFile file; -{ - z_off64_t ret; - - ret = gztell64(file); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -z_off64_t ZEXPORT gzoffset64(file) - gzFile file; -{ - z_off64_t offset; - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return -1; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return -1; - - /* compute and return effective offset in file */ - offset = LSEEK(state->fd, 0, SEEK_CUR); - if (offset == -1) - return -1; - if (state->mode == GZ_READ) /* reading */ - offset -= state->strm.avail_in; /* don't count buffered input */ - return offset; -} - -/* -- see zlib.h -- */ -z_off_t ZEXPORT gzoffset(file) - gzFile file; -{ - z_off64_t ret; - - ret = gzoffset64(file); - return ret == (z_off_t)ret ? (z_off_t)ret : -1; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzeof(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return 0; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return 0; - - /* return end-of-file state */ - return state->mode == GZ_READ ? state->past : 0; -} - -/* -- see zlib.h -- */ -const char * ZEXPORT gzerror(file, errnum) - gzFile file; - int *errnum; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return NULL; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return NULL; - - /* return error information */ - if (errnum != NULL) - *errnum = state->err; - return state->err == Z_MEM_ERROR ? "out of memory" : - (state->msg == NULL ? "" : state->msg); -} - -/* -- see zlib.h -- */ -void ZEXPORT gzclearerr(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure and check integrity */ - if (file == NULL) - return; - state = (gz_statep)file; - if (state->mode != GZ_READ && state->mode != GZ_WRITE) - return; - - /* clear error and end-of-file */ - if (state->mode == GZ_READ) { - state->eof = 0; - state->past = 0; - } - gz_error(state, Z_OK, NULL); -} - -/* Create an error message in allocated memory and set state->err and - state->msg accordingly. Free any previous error message already there. Do - not try to free or allocate space if the error is Z_MEM_ERROR (out of - memory). Simply save the error message as a static string. If there is an - allocation failure constructing the error message, then convert the error to - out of memory. */ -void ZLIB_INTERNAL gz_error(state, err, msg) - gz_statep state; - int err; - const char *msg; -{ - /* free previously allocated message and clear */ - if (state->msg != NULL) { - if (state->err != Z_MEM_ERROR) - free(state->msg); - state->msg = NULL; - } - - /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */ - if (err != Z_OK && err != Z_BUF_ERROR) - state->x.have = 0; - - /* set error code, and if no message, then done */ - state->err = err; - if (msg == NULL) - return; - - /* for an out of memory error, return literal string when requested */ - if (err == Z_MEM_ERROR) - return; - - /* construct error message with path */ - if ((state->msg = (char *)malloc(strlen(state->path) + strlen(msg) + 3)) == - NULL) { - state->err = Z_MEM_ERROR; - return; - } -#if !defined(NO_snprintf) && !defined(NO_vsnprintf) - (void)snprintf(state->msg, strlen(state->path) + strlen(msg) + 3, - "%s%s%s", state->path, ": ", msg); -#else - strcpy(state->msg, state->path); - strcat(state->msg, ": "); - strcat(state->msg, msg); -#endif -} - -#ifndef INT_MAX -/* portably return maximum value for an int (when limits.h presumed not - available) -- we need to do this to cover cases where 2's complement not - used, since C standard permits 1's complement and sign-bit representations, - otherwise we could just use ((unsigned)-1) >> 1 */ -unsigned ZLIB_INTERNAL gz_intmax() -{ - unsigned p, q; - - p = 1; - do { - q = p; - p <<= 1; - p++; - } while (p > q); - return q >> 1; -} -#endif diff --git a/Externals/zlib/gzread.c b/Externals/zlib/gzread.c deleted file mode 100644 index 956b91ea7d..0000000000 --- a/Externals/zlib/gzread.c +++ /dev/null @@ -1,654 +0,0 @@ -/* gzread.c -- zlib functions for reading gzip files - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -/* Local functions */ -local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *)); -local int gz_avail OF((gz_statep)); -local int gz_look OF((gz_statep)); -local int gz_decomp OF((gz_statep)); -local int gz_fetch OF((gz_statep)); -local int gz_skip OF((gz_statep, z_off64_t)); -local z_size_t gz_read OF((gz_statep, voidp, z_size_t)); - -/* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from - state->fd, and update state->eof, state->err, and state->msg as appropriate. - This function needs to loop on read(), since read() is not guaranteed to - read the number of bytes requested, depending on the type of descriptor. */ -local int gz_load(state, buf, len, have) - gz_statep state; - unsigned char *buf; - unsigned len; - unsigned *have; -{ - int ret; - unsigned get, max = ((unsigned)-1 >> 2) + 1; - - *have = 0; - do { - get = len - *have; - if (get > max) - get = max; - ret = read(state->fd, buf + *have, get); - if (ret <= 0) - break; - *have += (unsigned)ret; - } while (*have < len); - if (ret < 0) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - if (ret == 0) - state->eof = 1; - return 0; -} - -/* Load up input buffer and set eof flag if last data loaded -- return -1 on - error, 0 otherwise. Note that the eof flag is set when the end of the input - file is reached, even though there may be unused data in the buffer. Once - that data has been used, no more attempts will be made to read the file. - If strm->avail_in != 0, then the current data is moved to the beginning of - the input buffer, and then the remainder of the buffer is loaded with the - available data from the input file. */ -local int gz_avail(state) - gz_statep state; -{ - unsigned got; - z_streamp strm = &(state->strm); - - if (state->err != Z_OK && state->err != Z_BUF_ERROR) - return -1; - if (state->eof == 0) { - if (strm->avail_in) { /* copy what's there to the start */ - unsigned char *p = state->in; - unsigned const char *q = strm->next_in; - unsigned n = strm->avail_in; - do { - *p++ = *q++; - } while (--n); - } - if (gz_load(state, state->in + strm->avail_in, - state->size - strm->avail_in, &got) == -1) - return -1; - strm->avail_in += got; - strm->next_in = state->in; - } - return 0; -} - -/* Look for gzip header, set up for inflate or copy. state->x.have must be 0. - If this is the first time in, allocate required memory. state->how will be - left unchanged if there is no more input data available, will be set to COPY - if there is no gzip header and direct copying will be performed, or it will - be set to GZIP for decompression. If direct copying, then leftover input - data from the input buffer will be copied to the output buffer. In that - case, all further file reads will be directly to either the output buffer or - a user buffer. If decompressing, the inflate state will be initialized. - gz_look() will return 0 on success or -1 on failure. */ -local int gz_look(state) - gz_statep state; -{ - z_streamp strm = &(state->strm); - - /* allocate read buffers and inflate memory */ - if (state->size == 0) { - /* allocate buffers */ - state->in = (unsigned char *)malloc(state->want); - state->out = (unsigned char *)malloc(state->want << 1); - if (state->in == NULL || state->out == NULL) { - free(state->out); - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - state->size = state->want; - - /* allocate inflate memory */ - state->strm.zalloc = Z_NULL; - state->strm.zfree = Z_NULL; - state->strm.opaque = Z_NULL; - state->strm.avail_in = 0; - state->strm.next_in = Z_NULL; - if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) { /* gunzip */ - free(state->out); - free(state->in); - state->size = 0; - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - } - - /* get at least the magic bytes in the input buffer */ - if (strm->avail_in < 2) { - if (gz_avail(state) == -1) - return -1; - if (strm->avail_in == 0) - return 0; - } - - /* look for gzip magic bytes -- if there, do gzip decoding (note: there is - a logical dilemma here when considering the case of a partially written - gzip file, to wit, if a single 31 byte is written, then we cannot tell - whether this is a single-byte file, or just a partially written gzip - file -- for here we assume that if a gzip file is being written, then - the header will be written in a single operation, so that reading a - single byte is sufficient indication that it is not a gzip file) */ - if (strm->avail_in > 1 && - strm->next_in[0] == 31 && strm->next_in[1] == 139) { - inflateReset(strm); - state->how = GZIP; - state->direct = 0; - return 0; - } - - /* no gzip header -- if we were decoding gzip before, then this is trailing - garbage. Ignore the trailing garbage and finish. */ - if (state->direct == 0) { - strm->avail_in = 0; - state->eof = 1; - state->x.have = 0; - return 0; - } - - /* doing raw i/o, copy any leftover input to output -- this assumes that - the output buffer is larger than the input buffer, which also assures - space for gzungetc() */ - state->x.next = state->out; - if (strm->avail_in) { - memcpy(state->x.next, strm->next_in, strm->avail_in); - state->x.have = strm->avail_in; - strm->avail_in = 0; - } - state->how = COPY; - state->direct = 1; - return 0; -} - -/* Decompress from input to the provided next_out and avail_out in the state. - On return, state->x.have and state->x.next point to the just decompressed - data. If the gzip stream completes, state->how is reset to LOOK to look for - the next gzip stream or raw data, once state->x.have is depleted. Returns 0 - on success, -1 on failure. */ -local int gz_decomp(state) - gz_statep state; -{ - int ret = Z_OK; - unsigned had; - z_streamp strm = &(state->strm); - - /* fill output buffer up to end of deflate stream */ - had = strm->avail_out; - do { - /* get more input for inflate() */ - if (strm->avail_in == 0 && gz_avail(state) == -1) - return -1; - if (strm->avail_in == 0) { - gz_error(state, Z_BUF_ERROR, "unexpected end of file"); - break; - } - - /* decompress and handle errors */ - ret = inflate(strm, Z_NO_FLUSH); - if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) { - gz_error(state, Z_STREAM_ERROR, - "internal error: inflate stream corrupt"); - return -1; - } - if (ret == Z_MEM_ERROR) { - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - if (ret == Z_DATA_ERROR) { /* deflate stream invalid */ - gz_error(state, Z_DATA_ERROR, - strm->msg == NULL ? "compressed data error" : strm->msg); - return -1; - } - } while (strm->avail_out && ret != Z_STREAM_END); - - /* update available output */ - state->x.have = had - strm->avail_out; - state->x.next = strm->next_out - state->x.have; - - /* if the gzip stream completed successfully, look for another */ - if (ret == Z_STREAM_END) - state->how = LOOK; - - /* good decompression */ - return 0; -} - -/* Fetch data and put it in the output buffer. Assumes state->x.have is 0. - Data is either copied from the input file or decompressed from the input - file depending on state->how. If state->how is LOOK, then a gzip header is - looked for to determine whether to copy or decompress. Returns -1 on error, - otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the - end of the input file has been reached and all data has been processed. */ -local int gz_fetch(state) - gz_statep state; -{ - z_streamp strm = &(state->strm); - - do { - switch(state->how) { - case LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */ - if (gz_look(state) == -1) - return -1; - if (state->how == LOOK) - return 0; - break; - case COPY: /* -> COPY */ - if (gz_load(state, state->out, state->size << 1, &(state->x.have)) - == -1) - return -1; - state->x.next = state->out; - return 0; - case GZIP: /* -> GZIP or LOOK (if end of gzip stream) */ - strm->avail_out = state->size << 1; - strm->next_out = state->out; - if (gz_decomp(state) == -1) - return -1; - } - } while (state->x.have == 0 && (!state->eof || strm->avail_in)); - return 0; -} - -/* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */ -local int gz_skip(state, len) - gz_statep state; - z_off64_t len; -{ - unsigned n; - - /* skip over len bytes or reach end-of-file, whichever comes first */ - while (len) - /* skip over whatever is in output buffer */ - if (state->x.have) { - n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ? - (unsigned)len : state->x.have; - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - len -= n; - } - - /* output buffer empty -- return if we're at the end of the input */ - else if (state->eof && state->strm.avail_in == 0) - break; - - /* need more data to skip -- load up output buffer */ - else { - /* get more output, looking for header if required */ - if (gz_fetch(state) == -1) - return -1; - } - return 0; -} - -/* Read len bytes into buf from file, or less than len up to the end of the - input. Return the number of bytes read. If zero is returned, either the - end of file was reached, or there was an error. state->err must be - consulted in that case to determine which. */ -local z_size_t gz_read(state, buf, len) - gz_statep state; - voidp buf; - z_size_t len; -{ - z_size_t got; - unsigned n; - - /* if len is zero, avoid unnecessary operations */ - if (len == 0) - return 0; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return 0; - } - - /* get len bytes to buf, or less than len if at the end */ - got = 0; - do { - /* set n to the maximum amount of len that fits in an unsigned int */ - n = -1; - if (n > len) - n = len; - - /* first just try copying data from the output buffer */ - if (state->x.have) { - if (state->x.have < n) - n = state->x.have; - memcpy(buf, state->x.next, n); - state->x.next += n; - state->x.have -= n; - } - - /* output buffer empty -- return if we're at the end of the input */ - else if (state->eof && state->strm.avail_in == 0) { - state->past = 1; /* tried to read past end */ - break; - } - - /* need output data -- for small len or new stream load up our output - buffer */ - else if (state->how == LOOK || n < (state->size << 1)) { - /* get more output, looking for header if required */ - if (gz_fetch(state) == -1) - return 0; - continue; /* no progress yet -- go back to copy above */ - /* the copy above assures that we will leave with space in the - output buffer, allowing at least one gzungetc() to succeed */ - } - - /* large len -- read directly into user buffer */ - else if (state->how == COPY) { /* read directly */ - if (gz_load(state, (unsigned char *)buf, n, &n) == -1) - return 0; - } - - /* large len -- decompress directly into user buffer */ - else { /* state->how == GZIP */ - state->strm.avail_out = n; - state->strm.next_out = (unsigned char *)buf; - if (gz_decomp(state) == -1) - return 0; - n = state->x.have; - state->x.have = 0; - } - - /* update progress */ - len -= n; - buf = (char *)buf + n; - got += n; - state->x.pos += n; - } while (len); - - /* return number of bytes read into user buffer */ - return got; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzread(file, buf, len) - gzFile file; - voidp buf; - unsigned len; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* since an int is returned, make sure len fits in one, otherwise return - with an error (this avoids a flaw in the interface) */ - if ((int)len < 0) { - gz_error(state, Z_STREAM_ERROR, "request does not fit in an int"); - return -1; - } - - /* read len or fewer bytes to buf */ - len = gz_read(state, buf, len); - - /* check for an error */ - if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR) - return -1; - - /* return the number of bytes read (this is assured to fit in an int) */ - return (int)len; -} - -/* -- see zlib.h -- */ -z_size_t ZEXPORT gzfread(buf, size, nitems, file) - voidp buf; - z_size_t size; - z_size_t nitems; - gzFile file; -{ - z_size_t len; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return 0; - - /* compute bytes to read -- error on overflow */ - len = nitems * size; - if (size && len / size != nitems) { - gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t"); - return 0; - } - - /* read len or fewer bytes to buf, return the number of full items read */ - return len ? gz_read(state, buf, len) / size : 0; -} - -/* -- see zlib.h -- */ -#ifdef Z_PREFIX_SET -# undef z_gzgetc -#else -# undef gzgetc -#endif -int ZEXPORT gzgetc(file) - gzFile file; -{ - int ret; - unsigned char buf[1]; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* try output buffer (no need to check for skip request) */ - if (state->x.have) { - state->x.have--; - state->x.pos++; - return *(state->x.next)++; - } - - /* nothing there -- try gz_read() */ - ret = gz_read(state, buf, 1); - return ret < 1 ? -1 : buf[0]; -} - -int ZEXPORT gzgetc_(file) -gzFile file; -{ - return gzgetc(file); -} - -/* -- see zlib.h -- */ -int ZEXPORT gzungetc(c, file) - int c; - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return -1; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return -1; - } - - /* can't push EOF */ - if (c < 0) - return -1; - - /* if output buffer empty, put byte at end (allows more pushing) */ - if (state->x.have == 0) { - state->x.have = 1; - state->x.next = state->out + (state->size << 1) - 1; - state->x.next[0] = (unsigned char)c; - state->x.pos--; - state->past = 0; - return c; - } - - /* if no room, give up (must have already done a gzungetc()) */ - if (state->x.have == (state->size << 1)) { - gz_error(state, Z_DATA_ERROR, "out of room to push characters"); - return -1; - } - - /* slide output data if needed and insert byte before existing data */ - if (state->x.next == state->out) { - unsigned char *src = state->out + state->x.have; - unsigned char *dest = state->out + (state->size << 1); - while (src > state->out) - *--dest = *--src; - state->x.next = dest; - } - state->x.have++; - state->x.next--; - state->x.next[0] = (unsigned char)c; - state->x.pos--; - state->past = 0; - return c; -} - -/* -- see zlib.h -- */ -char * ZEXPORT gzgets(file, buf, len) - gzFile file; - char *buf; - int len; -{ - unsigned left, n; - char *str; - unsigned char *eol; - gz_statep state; - - /* check parameters and get internal structure */ - if (file == NULL || buf == NULL || len < 1) - return NULL; - state = (gz_statep)file; - - /* check that we're reading and that there's no (serious) error */ - if (state->mode != GZ_READ || - (state->err != Z_OK && state->err != Z_BUF_ERROR)) - return NULL; - - /* process a skip request */ - if (state->seek) { - state->seek = 0; - if (gz_skip(state, state->skip) == -1) - return NULL; - } - - /* copy output bytes up to new line or len - 1, whichever comes first -- - append a terminating zero to the string (we don't check for a zero in - the contents, let the user worry about that) */ - str = buf; - left = (unsigned)len - 1; - if (left) do { - /* assure that something is in the output buffer */ - if (state->x.have == 0 && gz_fetch(state) == -1) - return NULL; /* error */ - if (state->x.have == 0) { /* end of file */ - state->past = 1; /* read past end */ - break; /* return what we have */ - } - - /* look for end-of-line in current output buffer */ - n = state->x.have > left ? left : state->x.have; - eol = (unsigned char *)memchr(state->x.next, '\n', n); - if (eol != NULL) - n = (unsigned)(eol - state->x.next) + 1; - - /* copy through end-of-line, or remainder if not found */ - memcpy(buf, state->x.next, n); - state->x.have -= n; - state->x.next += n; - state->x.pos += n; - left -= n; - buf += n; - } while (left && eol == NULL); - - /* return terminated string, or if nothing, end of file */ - if (buf == str) - return NULL; - buf[0] = 0; - return str; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzdirect(file) - gzFile file; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - - /* if the state is not known, but we can find out, then do so (this is - mainly for right after a gzopen() or gzdopen()) */ - if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0) - (void)gz_look(state); - - /* return 1 if transparent, 0 if processing a gzip stream */ - return state->direct; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzclose_r(file) - gzFile file; -{ - int ret, err; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - /* check that we're reading */ - if (state->mode != GZ_READ) - return Z_STREAM_ERROR; - - /* free memory and close file */ - if (state->size) { - inflateEnd(&(state->strm)); - free(state->out); - free(state->in); - } - err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK; - gz_error(state, Z_OK, NULL); - free(state->path); - ret = close(state->fd); - free(state); - return ret ? Z_ERRNO : err; -} diff --git a/Externals/zlib/gzwrite.c b/Externals/zlib/gzwrite.c deleted file mode 100644 index c7b5651d70..0000000000 --- a/Externals/zlib/gzwrite.c +++ /dev/null @@ -1,665 +0,0 @@ -/* gzwrite.c -- zlib functions for writing gzip files - * Copyright (C) 2004-2017 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "gzguts.h" - -/* Local functions */ -local int gz_init OF((gz_statep)); -local int gz_comp OF((gz_statep, int)); -local int gz_zero OF((gz_statep, z_off64_t)); -local z_size_t gz_write OF((gz_statep, voidpc, z_size_t)); - -/* Initialize state for writing a gzip file. Mark initialization by setting - state->size to non-zero. Return -1 on a memory allocation failure, or 0 on - success. */ -local int gz_init(state) - gz_statep state; -{ - int ret; - z_streamp strm = &(state->strm); - - /* allocate input buffer (double size for gzprintf) */ - state->in = (unsigned char *)malloc(state->want << 1); - if (state->in == NULL) { - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - - /* only need output buffer and deflate state if compressing */ - if (!state->direct) { - /* allocate output buffer */ - state->out = (unsigned char *)malloc(state->want); - if (state->out == NULL) { - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - - /* allocate deflate memory, set up for gzip compression */ - strm->zalloc = Z_NULL; - strm->zfree = Z_NULL; - strm->opaque = Z_NULL; - ret = deflateInit2(strm, state->level, Z_DEFLATED, - MAX_WBITS + 16, DEF_MEM_LEVEL, state->strategy); - if (ret != Z_OK) { - free(state->out); - free(state->in); - gz_error(state, Z_MEM_ERROR, "out of memory"); - return -1; - } - strm->next_in = NULL; - } - - /* mark state as initialized */ - state->size = state->want; - - /* initialize write buffer if compressing */ - if (!state->direct) { - strm->avail_out = state->size; - strm->next_out = state->out; - state->x.next = strm->next_out; - } - return 0; -} - -/* Compress whatever is at avail_in and next_in and write to the output file. - Return -1 if there is an error writing to the output file or if gz_init() - fails to allocate memory, otherwise 0. flush is assumed to be a valid - deflate() flush value. If flush is Z_FINISH, then the deflate() state is - reset to start a new gzip stream. If gz->direct is true, then simply write - to the output file without compressing, and ignore flush. */ -local int gz_comp(state, flush) - gz_statep state; - int flush; -{ - int ret, writ; - unsigned have, put, max = ((unsigned)-1 >> 2) + 1; - z_streamp strm = &(state->strm); - - /* allocate memory if this is the first time through */ - if (state->size == 0 && gz_init(state) == -1) - return -1; - - /* write directly if requested */ - if (state->direct) { - while (strm->avail_in) { - put = strm->avail_in > max ? max : strm->avail_in; - writ = write(state->fd, strm->next_in, put); - if (writ < 0) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - strm->avail_in -= (unsigned)writ; - strm->next_in += writ; - } - return 0; - } - - /* run deflate() on provided input until it produces no more output */ - ret = Z_OK; - do { - /* write out current buffer contents if full, or if flushing, but if - doing Z_FINISH then don't write until we get to Z_STREAM_END */ - if (strm->avail_out == 0 || (flush != Z_NO_FLUSH && - (flush != Z_FINISH || ret == Z_STREAM_END))) { - while (strm->next_out > state->x.next) { - put = strm->next_out - state->x.next > (int)max ? max : - (unsigned)(strm->next_out - state->x.next); - writ = write(state->fd, state->x.next, put); - if (writ < 0) { - gz_error(state, Z_ERRNO, zstrerror()); - return -1; - } - state->x.next += writ; - } - if (strm->avail_out == 0) { - strm->avail_out = state->size; - strm->next_out = state->out; - state->x.next = state->out; - } - } - - /* compress */ - have = strm->avail_out; - ret = deflate(strm, flush); - if (ret == Z_STREAM_ERROR) { - gz_error(state, Z_STREAM_ERROR, - "internal error: deflate stream corrupt"); - return -1; - } - have -= strm->avail_out; - } while (have); - - /* if that completed a deflate stream, allow another to start */ - if (flush == Z_FINISH) - deflateReset(strm); - - /* all done, no errors */ - return 0; -} - -/* Compress len zeros to output. Return -1 on a write error or memory - allocation failure by gz_comp(), or 0 on success. */ -local int gz_zero(state, len) - gz_statep state; - z_off64_t len; -{ - int first; - unsigned n; - z_streamp strm = &(state->strm); - - /* consume whatever's left in the input buffer */ - if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return -1; - - /* compress len zeros (len guaranteed > 0) */ - first = 1; - while (len) { - n = GT_OFF(state->size) || (z_off64_t)state->size > len ? - (unsigned)len : state->size; - if (first) { - memset(state->in, 0, n); - first = 0; - } - strm->avail_in = n; - strm->next_in = state->in; - state->x.pos += n; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return -1; - len -= n; - } - return 0; -} - -/* Write len bytes from buf to file. Return the number of bytes written. If - the returned value is less than len, then there was an error. */ -local z_size_t gz_write(state, buf, len) - gz_statep state; - voidpc buf; - z_size_t len; -{ - z_size_t put = len; - - /* if len is zero, avoid unnecessary operations */ - if (len == 0) - return 0; - - /* allocate memory if this is the first time through */ - if (state->size == 0 && gz_init(state) == -1) - return 0; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return 0; - } - - /* for small len, copy to input buffer, otherwise compress directly */ - if (len < state->size) { - /* copy to input buffer, compress when full */ - do { - unsigned have, copy; - - if (state->strm.avail_in == 0) - state->strm.next_in = state->in; - have = (unsigned)((state->strm.next_in + state->strm.avail_in) - - state->in); - copy = state->size - have; - if (copy > len) - copy = len; - memcpy(state->in + have, buf, copy); - state->strm.avail_in += copy; - state->x.pos += copy; - buf = (const char *)buf + copy; - len -= copy; - if (len && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - } while (len); - } - else { - /* consume whatever's left in the input buffer */ - if (state->strm.avail_in && gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - - /* directly compress user buffer to file */ - state->strm.next_in = (z_const Bytef *)buf; - do { - unsigned n = (unsigned)-1; - if (n > len) - n = len; - state->strm.avail_in = n; - state->x.pos += n; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return 0; - len -= n; - } while (len); - } - - /* input was all buffered or compressed */ - return put; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzwrite(file, buf, len) - gzFile file; - voidpc buf; - unsigned len; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return 0; - - /* since an int is returned, make sure len fits in one, otherwise return - with an error (this avoids a flaw in the interface) */ - if ((int)len < 0) { - gz_error(state, Z_DATA_ERROR, "requested length does not fit in int"); - return 0; - } - - /* write len bytes from buf (the return value will fit in an int) */ - return (int)gz_write(state, buf, len); -} - -/* -- see zlib.h -- */ -z_size_t ZEXPORT gzfwrite(buf, size, nitems, file) - voidpc buf; - z_size_t size; - z_size_t nitems; - gzFile file; -{ - z_size_t len; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return 0; - state = (gz_statep)file; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return 0; - - /* compute bytes to read -- error on overflow */ - len = nitems * size; - if (size && len / size != nitems) { - gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t"); - return 0; - } - - /* write len bytes to buf, return the number of full items written */ - return len ? gz_write(state, buf, len) / size : 0; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzputc(file, c) - gzFile file; - int c; -{ - unsigned have; - unsigned char buf[1]; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return -1; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return -1; - } - - /* try writing to input buffer for speed (state->size == 0 if buffer not - initialized) */ - if (state->size) { - if (strm->avail_in == 0) - strm->next_in = state->in; - have = (unsigned)((strm->next_in + strm->avail_in) - state->in); - if (have < state->size) { - state->in[have] = (unsigned char)c; - strm->avail_in++; - state->x.pos++; - return c & 0xff; - } - } - - /* no room in buffer or not initialized, use gz_write() */ - buf[0] = (unsigned char)c; - if (gz_write(state, buf, 1) != 1) - return -1; - return c & 0xff; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzputs(file, str) - gzFile file; - const char *str; -{ - int ret; - z_size_t len; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return -1; - state = (gz_statep)file; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return -1; - - /* write string */ - len = strlen(str); - ret = gz_write(state, str, len); - return ret == 0 && len != 0 ? -1 : ret; -} - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -#include - -/* -- see zlib.h -- */ -int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) -{ - int len; - unsigned left; - char *next; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* make sure we have some buffer space */ - if (state->size == 0 && gz_init(state) == -1) - return state->err; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return state->err; - } - - /* do the printf() into the input buffer, put length in len -- the input - buffer is double-sized just for this function, so there is guaranteed to - be state->size bytes available after the current contents */ - if (strm->avail_in == 0) - strm->next_in = state->in; - next = (char *)(state->in + (strm->next_in - state->in) + strm->avail_in); - next[state->size - 1] = 0; -#ifdef NO_vsnprintf -# ifdef HAS_vsprintf_void - (void)vsprintf(next, format, va); - for (len = 0; len < state->size; len++) - if (next[len] == 0) break; -# else - len = vsprintf(next, format, va); -# endif -#else -# ifdef HAS_vsnprintf_void - (void)vsnprintf(next, state->size, format, va); - len = strlen(next); -# else - len = vsnprintf(next, state->size, format, va); -# endif -#endif - - /* check that printf() results fit in buffer */ - if (len == 0 || (unsigned)len >= state->size || next[state->size - 1] != 0) - return 0; - - /* update buffer and position, compress first half if past that */ - strm->avail_in += (unsigned)len; - state->x.pos += len; - if (strm->avail_in >= state->size) { - left = strm->avail_in - state->size; - strm->avail_in = state->size; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return state->err; - memcpy(state->in, state->in + state->size, left); - strm->next_in = state->in; - strm->avail_in = left; - } - return len; -} - -int ZEXPORTVA gzprintf(gzFile file, const char *format, ...) -{ - va_list va; - int ret; - - va_start(va, format); - ret = gzvprintf(file, format, va); - va_end(va); - return ret; -} - -#else /* !STDC && !Z_HAVE_STDARG_H */ - -/* -- see zlib.h -- */ -int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - gzFile file; - const char *format; - int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; -{ - unsigned len, left; - char *next; - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that can really pass pointer in ints */ - if (sizeof(int) != sizeof(void *)) - return Z_STREAM_ERROR; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* make sure we have some buffer space */ - if (state->size == 0 && gz_init(state) == -1) - return state->error; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return state->error; - } - - /* do the printf() into the input buffer, put length in len -- the input - buffer is double-sized just for this function, so there is guaranteed to - be state->size bytes available after the current contents */ - if (strm->avail_in == 0) - strm->next_in = state->in; - next = (char *)(strm->next_in + strm->avail_in); - next[state->size - 1] = 0; -#ifdef NO_snprintf -# ifdef HAS_sprintf_void - sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, - a13, a14, a15, a16, a17, a18, a19, a20); - for (len = 0; len < size; len++) - if (next[len] == 0) - break; -# else - len = sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, - a12, a13, a14, a15, a16, a17, a18, a19, a20); -# endif -#else -# ifdef HAS_snprintf_void - snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); - len = strlen(next); -# else - len = snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -# endif -#endif - - /* check that printf() results fit in buffer */ - if (len == 0 || len >= state->size || next[state->size - 1] != 0) - return 0; - - /* update buffer and position, compress first half if past that */ - strm->avail_in += len; - state->x.pos += len; - if (strm->avail_in >= state->size) { - left = strm->avail_in - state->size; - strm->avail_in = state->size; - if (gz_comp(state, Z_NO_FLUSH) == -1) - return state->err; - memcpy(state->in, state->in + state->size, left); - strm->next_in = state->in; - strm->avail_in = left; - } - return (int)len; -} - -#endif - -/* -- see zlib.h -- */ -int ZEXPORT gzflush(file, flush) - gzFile file; - int flush; -{ - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* check flush parameter */ - if (flush < 0 || flush > Z_FINISH) - return Z_STREAM_ERROR; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return state->err; - } - - /* compress remaining data with requested flush */ - (void)gz_comp(state, flush); - return state->err; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzsetparams(file, level, strategy) - gzFile file; - int level; - int strategy; -{ - gz_statep state; - z_streamp strm; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - strm = &(state->strm); - - /* check that we're writing and that there's no error */ - if (state->mode != GZ_WRITE || state->err != Z_OK) - return Z_STREAM_ERROR; - - /* if no change is requested, then do nothing */ - if (level == state->level && strategy == state->strategy) - return Z_OK; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - return state->err; - } - - /* change compression parameters for subsequent input */ - if (state->size) { - /* flush previous input with previous parameters before changing */ - if (strm->avail_in && gz_comp(state, Z_BLOCK) == -1) - return state->err; - deflateParams(strm, level, strategy); - } - state->level = level; - state->strategy = strategy; - return Z_OK; -} - -/* -- see zlib.h -- */ -int ZEXPORT gzclose_w(file) - gzFile file; -{ - int ret = Z_OK; - gz_statep state; - - /* get internal structure */ - if (file == NULL) - return Z_STREAM_ERROR; - state = (gz_statep)file; - - /* check that we're writing */ - if (state->mode != GZ_WRITE) - return Z_STREAM_ERROR; - - /* check for seek request */ - if (state->seek) { - state->seek = 0; - if (gz_zero(state, state->skip) == -1) - ret = state->err; - } - - /* flush, free memory, and close file */ - if (gz_comp(state, Z_FINISH) == -1) - ret = state->err; - if (state->size) { - if (!state->direct) { - (void)deflateEnd(&(state->strm)); - free(state->out); - } - free(state->in); - } - gz_error(state, Z_OK, NULL); - free(state->path); - if (close(state->fd) == -1) - ret = Z_ERRNO; - free(state); - return ret; -} diff --git a/Externals/zlib/infback.c b/Externals/zlib/infback.c deleted file mode 100644 index 59679ecbfc..0000000000 --- a/Externals/zlib/infback.c +++ /dev/null @@ -1,640 +0,0 @@ -/* infback.c -- inflate using a call-back interface - * Copyright (C) 1995-2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - This code is largely copied from inflate.c. Normally either infback.o or - inflate.o would be linked into an application--not both. The interface - with inffast.c is retained so that optimized assembler-coded versions of - inflate_fast() can be used with either inflate.c or infback.c. - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); - -/* - strm provides memory allocation functions in zalloc and zfree, or - Z_NULL to use the library memory allocation functions. - - windowBits is in the range 8..15, and window is a user-supplied - window and output buffer that is 2**windowBits bytes. - */ -int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) -z_streamp strm; -int windowBits; -unsigned char FAR *window; -const char *version; -int stream_size; -{ - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL || window == Z_NULL || - windowBits < 8 || windowBits > 15) - return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - state = (struct inflate_state FAR *)ZALLOC(strm, 1, - sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - strm->state = (struct internal_state FAR *)state; - state->dmax = 32768U; - state->wbits = (uInt)windowBits; - state->wsize = 1U << windowBits; - state->window = window; - state->wnext = 0; - state->whave = 0; - return Z_OK; -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -/* Macros for inflateBack(): */ - -/* Load returned state from inflate_fast() */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Set state from registers for inflate_fast() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Assure that some input is available. If input is requested, but denied, - then return a Z_BUF_ERROR from inflateBack(). */ -#define PULL() \ - do { \ - if (have == 0) { \ - have = in(in_desc, &next); \ - if (have == 0) { \ - next = Z_NULL; \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflateBack() - with an error if there is no input available. */ -#define PULLBYTE() \ - do { \ - PULL(); \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflateBack() with - an error. */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* Assure that some output space is available, by writing out the window - if it's full. If the write fails, return from inflateBack() with a - Z_BUF_ERROR. */ -#define ROOM() \ - do { \ - if (left == 0) { \ - put = state->window; \ - left = state->wsize; \ - state->whave = left; \ - if (out(out_desc, put, left)) { \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* - strm provides the memory allocation functions and window buffer on input, - and provides information on the unused input on return. For Z_DATA_ERROR - returns, strm will also provide an error message. - - in() and out() are the call-back input and output functions. When - inflateBack() needs more input, it calls in(). When inflateBack() has - filled the window with output, or when it completes with data in the - window, it calls out() to write out the data. The application must not - change the provided input until in() is called again or inflateBack() - returns. The application must not change the window/output buffer until - inflateBack() returns. - - in() and out() are called with a descriptor parameter provided in the - inflateBack() call. This parameter can be a structure that provides the - information required to do the read or write, as well as accumulated - information on the input and output such as totals and check values. - - in() should return zero on failure. out() should return non-zero on - failure. If either in() or out() fails, than inflateBack() returns a - Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it - was in() or out() that caused in the error. Otherwise, inflateBack() - returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format - error, or Z_MEM_ERROR if it could not allocate memory for the state. - inflateBack() can also return Z_STREAM_ERROR if the input parameters - are not correct, i.e. strm is Z_NULL or the state was not initialized. - */ -int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) -z_streamp strm; -in_func in; -void FAR *in_desc; -out_func out; -void FAR *out_desc; -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - code here; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - /* Check that the strm exists and that the state was initialized */ - if (strm == Z_NULL || strm->state == Z_NULL) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* Reset the state */ - strm->msg = Z_NULL; - state->mode = TYPE; - state->last = 0; - state->whave = 0; - next = strm->next_in; - have = next != Z_NULL ? strm->avail_in : 0; - hold = 0; - bits = 0; - put = state->window; - left = state->wsize; - - /* Inflate until end of block marked as last */ - for (;;) - switch (state->mode) { - case TYPE: - /* determine and dispatch block type */ - if (state->last) { - BYTEBITS(); - state->mode = DONE; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN; /* decode codes */ - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - - case STORED: - /* get and verify stored block length */ - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - - /* copy stored block from input to output */ - while (state->length != 0) { - copy = state->length; - PULL(); - ROOM(); - if (copy > have) copy = have; - if (copy > left) copy = left; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - - case TABLE: - /* get dynamic table entries descriptor */ - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - - /* get code length code lengths (not a typo) */ - state->have = 0; - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - - /* get length and distance code code lengths */ - state->have = 0; - while (state->have < state->nlen + state->ndist) { - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.val < 16) { - DROPBITS(here.bits); - state->lens[state->have++] = here.val; - } - else { - if (here.val == 16) { - NEEDBITS(here.bits + 2); - DROPBITS(here.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = (unsigned)(state->lens[state->have - 1]); - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (here.val == 17) { - NEEDBITS(here.bits + 3); - DROPBITS(here.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(here.bits + 7); - DROPBITS(here.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* handle error breaks in while */ - if (state->mode == BAD) break; - - /* check for end-of-block code (better have one) */ - if (state->lens[256] == 0) { - strm->msg = (char *)"invalid code -- missing end-of-block"; - state->mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (code const FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN; - - case LEN: - /* use inflate_fast() if we have enough input and output */ - if (have >= 6 && left >= 258) { - RESTORE(); - if (state->whave < state->wsize) - state->whave = state->wsize - left; - inflate_fast(strm, state->wsize); - LOAD(); - break; - } - - /* get a literal, length, or end-of-block code */ - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.op && (here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(here.bits); - state->length = (unsigned)here.val; - - /* process literal */ - if (here.op == 0) { - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - ROOM(); - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - } - - /* process end of block */ - if (here.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - - /* invalid code */ - if (here.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - - /* length code -- get extra bits, if any */ - state->extra = (unsigned)(here.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - - /* get distance code */ - for (;;) { - here = state->distcode[BITS(state->distbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if ((here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(here.bits); - if (here.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)here.val; - - /* get distance extra bits, if any */ - state->extra = (unsigned)(here.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - } - if (state->offset > state->wsize - (state->whave < state->wsize ? - left : 0)) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - - /* copy match from window to output */ - do { - ROOM(); - copy = state->wsize - state->offset; - if (copy < left) { - from = put + copy; - copy = left - copy; - } - else { - from = put - state->offset; - copy = left; - } - if (copy > state->length) copy = state->length; - state->length -= copy; - left -= copy; - do { - *put++ = *from++; - } while (--copy); - } while (state->length != 0); - break; - - case DONE: - /* inflate stream terminated properly -- write leftover output */ - ret = Z_STREAM_END; - if (left < state->wsize) { - if (out(out_desc, state->window, state->wsize - left)) - ret = Z_BUF_ERROR; - } - goto inf_leave; - - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - - default: /* can't happen, but makes compilers happy */ - ret = Z_STREAM_ERROR; - goto inf_leave; - } - - /* Return unused input */ - inf_leave: - strm->next_in = next; - strm->avail_in = have; - return ret; -} - -int ZEXPORT inflateBackEnd(strm) -z_streamp strm; -{ - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} diff --git a/Externals/zlib/inffast.c b/Externals/zlib/inffast.c deleted file mode 100644 index 0dbd1dbc09..0000000000 --- a/Externals/zlib/inffast.c +++ /dev/null @@ -1,323 +0,0 @@ -/* inffast.c -- fast decoding - * Copyright (C) 1995-2017 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifdef ASMINF -# pragma message("Assembler code may have bugs -- use at your own risk") -#else - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode == LEN - strm->avail_in >= 6 - strm->avail_out >= 258 - start >= strm->avail_out - state->bits < 8 - - On return, state->mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm->avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm->avail_out >= 258 for each loop to avoid checking for - output space. - */ -void ZLIB_INTERNAL inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *in; /* local strm->next_in */ - z_const unsigned char FAR *last; /* have enough input while in < last */ - unsigned char FAR *out; /* local strm->next_out */ - unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ - unsigned char FAR *end; /* while out < end, enough space available */ -#ifdef INFLATE_STRICT - unsigned dmax; /* maximum distance from zlib header */ -#endif - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ - unsigned long hold; /* local strm->hold */ - unsigned bits; /* local strm->bits */ - code const FAR *lcode; /* local strm->lencode */ - code const FAR *dcode; /* local strm->distcode */ - unsigned lmask; /* mask for first level of length codes */ - unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ - unsigned op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - unsigned len; /* match length, unused bytes */ - unsigned dist; /* match distance */ - unsigned char FAR *from; /* where to copy match from */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; - in = strm->next_in; - last = in + (strm->avail_in - 5); - out = strm->next_out; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); -#ifdef INFLATE_STRICT - dmax = state->dmax; -#endif - wsize = state->wsize; - whave = state->whave; - wnext = state->wnext; - window = state->window; - hold = state->hold; - bits = state->bits; - lcode = state->lencode; - dcode = state->distcode; - lmask = (1U << state->lenbits) - 1; - dmask = (1U << state->distbits) - 1; - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - do { - if (bits < 15) { - hold += (unsigned long)(*in++) << bits; - bits += 8; - hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = lcode[hold & lmask]; - dolen: - op = (unsigned)(here.bits); - hold >>= op; - bits -= op; - op = (unsigned)(here.op); - if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += (unsigned long)(*in++) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); - hold >>= op; - bits -= op; - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += (unsigned long)(*in++) << bits; - bits += 8; - hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = dcode[hold & dmask]; - dodist: - op = (unsigned)(here.bits); - hold >>= op; - bits -= op; - op = (unsigned)(here.op); - if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += (unsigned long)(*in++) << bits; - bits += 8; - if (bits < op) { - hold += (unsigned long)(*in++) << bits; - bits += 8; - } - } - dist += (unsigned)hold & ((1U << op) - 1); -#ifdef INFLATE_STRICT - if (dist > dmax) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - hold >>= op; - bits -= op; - Tracevv((stderr, "inflate: distance %u\n", dist)); - op = (unsigned)(out - beg); /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - if (state->sane) { - strm->msg = - (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - if (len <= op - whave) { - do { - *out++ = 0; - } while (--len); - continue; - } - len -= op - whave; - do { - *out++ = 0; - } while (--op > whave); - if (op == 0) { - from = out - dist; - do { - *out++ = *from++; - } while (--len); - continue; - } -#endif - } - from = window; - if (wnext == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - else if (wnext < op) { /* wrap around window */ - from += wsize + wnext - op; - op -= wnext; - if (op < len) { /* some from end of window */ - len -= op; - do { - *out++ = *from++; - } while (--op); - from = window; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { - *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - } - else { /* contiguous in window */ - from += wnext - op; - if (op < len) { /* some from window */ - len -= op; - do { - *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { - *out++ = *from++; - *out++ = *from++; - *out++ = *from++; - len -= 3; - } - if (len) { - *out++ = *from++; - if (len > 1) - *out++ = *from++; - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ - *out++ = *from++; - *out++ = *from++; - *out++ = *from++; - len -= 3; - } while (len > 2); - if (len) { - *out++ = *from++; - if (len > 1) - *out++ = *from++; - } - } - } - else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; - goto dodist; - } - else { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - } - else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; - goto dolen; - } - else if (op & 32) { /* end-of-block */ - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - else { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - } while (in < last && out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - in -= len; - bits -= len << 3; - hold &= (1U << bits) - 1; - - /* update state and return */ - strm->next_in = in; - strm->next_out = out; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); - state->hold = hold; - state->bits = bits; - return; -} - -/* - inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - - Using bit fields for code structure - - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and wnext == 0 - - Special case for distance > 1 copies to do overlapped load and store copy - - Explicit branch predictions (based on measured branch probabilities) - - Deferring match copy and interspersed it with decoding subsequent codes - - Swapping literal/length else - - Swapping window/direct else - - Larger unrolled copy loops (three is about right) - - Moving len -= 3 statement into middle of loop - */ - -#endif /* !ASMINF */ diff --git a/Externals/zlib/inffast.h b/Externals/zlib/inffast.h deleted file mode 100644 index e5c1aa4ca8..0000000000 --- a/Externals/zlib/inffast.h +++ /dev/null @@ -1,11 +0,0 @@ -/* inffast.h -- header to use inffast.c - * Copyright (C) 1995-2003, 2010 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); diff --git a/Externals/zlib/inffixed.h b/Externals/zlib/inffixed.h deleted file mode 100644 index d628327769..0000000000 --- a/Externals/zlib/inffixed.h +++ /dev/null @@ -1,94 +0,0 @@ - /* inffixed.h -- table for decoding fixed codes - * Generated automatically by makefixed(). - */ - - /* WARNING: this file should *not* be used by applications. - It is part of the implementation of this library and is - subject to change. Applications should only use zlib.h. - */ - - static const code lenfix[512] = { - {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, - {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, - {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, - {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, - {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, - {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, - {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, - {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, - {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, - {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, - {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, - {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, - {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, - {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, - {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, - {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, - {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, - {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, - {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, - {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, - {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, - {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, - {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, - {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, - {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, - {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, - {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, - {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, - {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, - {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, - {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, - {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, - {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, - {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, - {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, - {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, - {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, - {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, - {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, - {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, - {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, - {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, - {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, - {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, - {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, - {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, - {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, - {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, - {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, - {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, - {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, - {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, - {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, - {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, - {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, - {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, - {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, - {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, - {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, - {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, - {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, - {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, - {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, - {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, - {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, - {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, - {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, - {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, - {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, - {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, - {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, - {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, - {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, - {0,9,255} - }; - - static const code distfix[32] = { - {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, - {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, - {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, - {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, - {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, - {22,5,193},{64,5,0} - }; diff --git a/Externals/zlib/inflate.c b/Externals/zlib/inflate.c deleted file mode 100644 index ac333e8c2e..0000000000 --- a/Externals/zlib/inflate.c +++ /dev/null @@ -1,1561 +0,0 @@ -/* inflate.c -- zlib decompression - * Copyright (C) 1995-2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * Change history: - * - * 1.2.beta0 24 Nov 2002 - * - First version -- complete rewrite of inflate to simplify code, avoid - * creation of window when not needed, minimize use of window when it is - * needed, make inffast.c even faster, implement gzip decoding, and to - * improve code readability and style over the previous zlib inflate code - * - * 1.2.beta1 25 Nov 2002 - * - Use pointers for available input and output checking in inffast.c - * - Remove input and output counters in inffast.c - * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 - * - Remove unnecessary second byte pull from length extra in inffast.c - * - Unroll direct copy to three copies per loop in inffast.c - * - * 1.2.beta2 4 Dec 2002 - * - Change external routine names to reduce potential conflicts - * - Correct filename to inffixed.h for fixed tables in inflate.c - * - Make hbuf[] unsigned char to match parameter type in inflate.c - * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) - * to avoid negation problem on Alphas (64 bit) in inflate.c - * - * 1.2.beta3 22 Dec 2002 - * - Add comments on state->bits assertion in inffast.c - * - Add comments on op field in inftrees.h - * - Fix bug in reuse of allocated window after inflateReset() - * - Remove bit fields--back to byte structure for speed - * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths - * - Change post-increments to pre-increments in inflate_fast(), PPC biased? - * - Add compile time option, POSTINC, to use post-increments instead (Intel?) - * - Make MATCH copy in inflate() much faster for when inflate_fast() not used - * - Use local copies of stream next and avail values, as well as local bit - * buffer and bit count in inflate()--for speed when inflate_fast() not used - * - * 1.2.beta4 1 Jan 2003 - * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings - * - Move a comment on output buffer sizes from inffast.c to inflate.c - * - Add comments in inffast.c to introduce the inflate_fast() routine - * - Rearrange window copies in inflate_fast() for speed and simplification - * - Unroll last copy for window match in inflate_fast() - * - Use local copies of window variables in inflate_fast() for speed - * - Pull out common wnext == 0 case for speed in inflate_fast() - * - Make op and len in inflate_fast() unsigned for consistency - * - Add FAR to lcode and dcode declarations in inflate_fast() - * - Simplified bad distance check in inflate_fast() - * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new - * source file infback.c to provide a call-back interface to inflate for - * programs like gzip and unzip -- uses window as output buffer to avoid - * window copying - * - * 1.2.beta5 1 Jan 2003 - * - Improved inflateBack() interface to allow the caller to provide initial - * input in strm. - * - Fixed stored blocks bug in inflateBack() - * - * 1.2.beta6 4 Jan 2003 - * - Added comments in inffast.c on effectiveness of POSTINC - * - Typecasting all around to reduce compiler warnings - * - Changed loops from while (1) or do {} while (1) to for (;;), again to - * make compilers happy - * - Changed type of window in inflateBackInit() to unsigned char * - * - * 1.2.beta7 27 Jan 2003 - * - Changed many types to unsigned or unsigned short to avoid warnings - * - Added inflateCopy() function - * - * 1.2.0 9 Mar 2003 - * - Changed inflateBack() interface to provide separate opaque descriptors - * for the in() and out() functions - * - Changed inflateBack() argument and in_func typedef to swap the length - * and buffer address return values for the input function - * - Check next_in and next_out for Z_NULL on entry to inflate() - * - * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. - */ - -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifdef MAKEFIXED -# ifndef BUILDFIXED -# define BUILDFIXED -# endif -#endif - -/* function prototypes */ -local int inflateStateCheck OF((z_streamp strm)); -local void fixedtables OF((struct inflate_state FAR *state)); -local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, - unsigned copy)); -#ifdef BUILDFIXED - void makefixed OF((void)); -#endif -local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, - unsigned len)); - -local int inflateStateCheck(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - if (strm == Z_NULL || - strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) - return 1; - state = (struct inflate_state FAR *)strm->state; - if (state == Z_NULL || state->strm != strm || - state->mode < HEAD || state->mode > SYNC) - return 1; - return 0; -} - -int ZEXPORT inflateResetKeep(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - strm->total_in = strm->total_out = state->total = 0; - strm->msg = Z_NULL; - if (state->wrap) /* to support ill-conceived Java test suite */ - strm->adler = state->wrap & 1; - state->mode = HEAD; - state->last = 0; - state->havedict = 0; - state->dmax = 32768U; - state->head = Z_NULL; - state->hold = 0; - state->bits = 0; - state->lencode = state->distcode = state->next = state->codes; - state->sane = 1; - state->back = -1; - Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -int ZEXPORT inflateReset(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - state->wsize = 0; - state->whave = 0; - state->wnext = 0; - return inflateResetKeep(strm); -} - -int ZEXPORT inflateReset2(strm, windowBits) -z_streamp strm; -int windowBits; -{ - int wrap; - struct inflate_state FAR *state; - - /* get the state */ - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* extract wrap request from windowBits parameter */ - if (windowBits < 0) { - wrap = 0; - windowBits = -windowBits; - } - else { - wrap = (windowBits >> 4) + 5; -#ifdef GUNZIP - if (windowBits < 48) - windowBits &= 15; -#endif - } - - /* set number of window bits, free window if different */ - if (windowBits && (windowBits < 8 || windowBits > 15)) - return Z_STREAM_ERROR; - if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) { - ZFREE(strm, state->window); - state->window = Z_NULL; - } - - /* update state and reset the rest of it */ - state->wrap = wrap; - state->wbits = (unsigned)windowBits; - return inflateReset(strm); -} - -int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) -z_streamp strm; -int windowBits; -const char *version; -int stream_size; -{ - int ret; - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL) return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; -#endif - } - if (strm->zfree == (free_func)0) -#ifdef Z_SOLO - return Z_STREAM_ERROR; -#else - strm->zfree = zcfree; -#endif - state = (struct inflate_state FAR *) - ZALLOC(strm, 1, sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - strm->state = (struct internal_state FAR *)state; - state->strm = strm; - state->window = Z_NULL; - state->mode = HEAD; /* to pass state test in inflateReset2() */ - ret = inflateReset2(strm, windowBits); - if (ret != Z_OK) { - ZFREE(strm, state); - strm->state = Z_NULL; - } - return ret; -} - -int ZEXPORT inflateInit_(strm, version, stream_size) -z_streamp strm; -const char *version; -int stream_size; -{ - return inflateInit2_(strm, DEF_WBITS, version, stream_size); -} - -int ZEXPORT inflatePrime(strm, bits, value) -z_streamp strm; -int bits; -int value; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (bits < 0) { - state->hold = 0; - state->bits = 0; - return Z_OK; - } - if (bits > 16 || state->bits + (uInt)bits > 32) return Z_STREAM_ERROR; - value &= (1L << bits) - 1; - state->hold += (unsigned)value << state->bits; - state->bits += (uInt)bits; - return Z_OK; -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -#ifdef MAKEFIXED -#include - -/* - Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also - defines BUILDFIXED, so the tables are built on the fly. makefixed() writes - those tables to stdout, which would be piped to inffixed.h. A small program - can simply call makefixed to do this: - - void makefixed(void); - - int main(void) - { - makefixed(); - return 0; - } - - Then that can be linked with zlib built with MAKEFIXED defined and run: - - a.out > inffixed.h - */ -void makefixed() -{ - unsigned low, size; - struct inflate_state state; - - fixedtables(&state); - puts(" /* inffixed.h -- table for decoding fixed codes"); - puts(" * Generated automatically by makefixed()."); - puts(" */"); - puts(""); - puts(" /* WARNING: this file should *not* be used by applications."); - puts(" It is part of the implementation of this library and is"); - puts(" subject to change. Applications should only use zlib.h."); - puts(" */"); - puts(""); - size = 1U << 9; - printf(" static const code lenfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 7) == 0) printf("\n "); - printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op, - state.lencode[low].bits, state.lencode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); - size = 1U << 5; - printf("\n static const code distfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 6) == 0) printf("\n "); - printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, - state.distcode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); -} -#endif /* MAKEFIXED */ - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -local int updatewindow(strm, end, copy) -z_streamp strm; -const Bytef *end; -unsigned copy; -{ - struct inflate_state FAR *state; - unsigned dist; - - state = (struct inflate_state FAR *)strm->state; - - /* if it hasn't been done already, allocate space for the window */ - if (state->window == Z_NULL) { - state->window = (unsigned char FAR *) - ZALLOC(strm, 1U << state->wbits, - sizeof(unsigned char)); - if (state->window == Z_NULL) return 1; - } - - /* if window not in use yet, initialize */ - if (state->wsize == 0) { - state->wsize = 1U << state->wbits; - state->wnext = 0; - state->whave = 0; - } - - /* copy state->wsize or less output bytes into the circular window */ - if (copy >= state->wsize) { - zmemcpy(state->window, end - state->wsize, state->wsize); - state->wnext = 0; - state->whave = state->wsize; - } - else { - dist = state->wsize - state->wnext; - if (dist > copy) dist = copy; - zmemcpy(state->window + state->wnext, end - copy, dist); - copy -= dist; - if (copy) { - zmemcpy(state->window, end - copy, copy); - state->wnext = copy; - state->whave = state->wsize; - } - else { - state->wnext += dist; - if (state->wnext == state->wsize) state->wnext = 0; - if (state->whave < state->wsize) state->whave += dist; - } - } - return 0; -} - -/* Macros for inflate(): */ - -/* check function to use adler32() for zlib or crc32() for gzip */ -#ifdef GUNZIP -# define UPDATE(check, buf, len) \ - (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) -#else -# define UPDATE(check, buf, len) adler32(check, buf, len) -#endif - -/* check macros for header crc */ -#ifdef GUNZIP -# define CRC2(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - check = crc32(check, hbuf, 2); \ - } while (0) - -# define CRC4(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - hbuf[2] = (unsigned char)((word) >> 16); \ - hbuf[3] = (unsigned char)((word) >> 24); \ - check = crc32(check, hbuf, 4); \ - } while (0) -#endif - -/* Load registers with state in inflate() for speed */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Restore state from registers in inflate() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflate() - if there is no input available. */ -#define PULLBYTE() \ - do { \ - if (have == 0) goto inf_leave; \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflate(). */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* - inflate() uses a state machine to process as much input data and generate as - much output data as possible before returning. The state machine is - structured roughly as follows: - - for (;;) switch (state) { - ... - case STATEn: - if (not enough input data or output space to make progress) - return; - ... make progress ... - state = STATEm; - break; - ... - } - - so when inflate() is called again, the same case is attempted again, and - if the appropriate resources are provided, the machine proceeds to the - next state. The NEEDBITS() macro is usually the way the state evaluates - whether it can proceed or should return. NEEDBITS() does the return if - the requested bits are not available. The typical use of the BITS macros - is: - - NEEDBITS(n); - ... do something with BITS(n) ... - DROPBITS(n); - - where NEEDBITS(n) either returns from inflate() if there isn't enough - input left to load n bits into the accumulator, or it continues. BITS(n) - gives the low n bits in the accumulator. When done, DROPBITS(n) drops - the low n bits off the accumulator. INITBITS() clears the accumulator - and sets the number of available bits to zero. BYTEBITS() discards just - enough bits to put the accumulator on a byte boundary. After BYTEBITS() - and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. - - NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return - if there is no input available. The decoding of variable length codes uses - PULLBYTE() directly in order to pull just enough bytes to decode the next - code, and no more. - - Some states loop until they get enough input, making sure that enough - state information is maintained to continue the loop where it left off - if NEEDBITS() returns in the loop. For example, want, need, and keep - would all have to actually be part of the saved state in case NEEDBITS() - returns: - - case STATEw: - while (want < need) { - NEEDBITS(n); - keep[want++] = BITS(n); - DROPBITS(n); - } - state = STATEx; - case STATEx: - - As shown above, if the next state is also the next case, then the break - is omitted. - - A state may also return if there is not enough output space available to - complete that state. Those states are copying stored data, writing a - literal byte, and copying a matching string. - - When returning, a "goto inf_leave" is used to update the total counters, - update the check value, and determine whether any progress has been made - during that inflate() call in order to return the proper return code. - Progress is defined as a change in either strm->avail_in or strm->avail_out. - When there is a window, goto inf_leave will update the window with the last - output written. If a goto inf_leave occurs in the middle of decompression - and there is no window currently, goto inf_leave will create one and copy - output to the window for the next call of inflate(). - - In this implementation, the flush parameter of inflate() only affects the - return code (per zlib.h). inflate() always writes as much as possible to - strm->next_out, given the space available and the provided input--the effect - documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers - the allocation of and copying into a sliding window until necessary, which - provides the effect documented in zlib.h for Z_FINISH when the entire input - stream available. So the only thing the flush parameter actually does is: - when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it - will return Z_BUF_ERROR if it has not reached the end of the stream. - */ - -int ZEXPORT inflate(strm, flush) -z_streamp strm; -int flush; -{ - struct inflate_state FAR *state; - z_const unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned in, out; /* save starting available input and output */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - code here; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ -#ifdef GUNZIP - unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ -#endif - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - if (inflateStateCheck(strm) || strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0)) - return Z_STREAM_ERROR; - - state = (struct inflate_state FAR *)strm->state; - if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ - LOAD(); - in = have; - out = left; - ret = Z_OK; - for (;;) - switch (state->mode) { - case HEAD: - if (state->wrap == 0) { - state->mode = TYPEDO; - break; - } - NEEDBITS(16); -#ifdef GUNZIP - if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ - if (state->wbits == 0) - state->wbits = 15; - state->check = crc32(0L, Z_NULL, 0); - CRC2(state->check, hold); - INITBITS(); - state->mode = FLAGS; - break; - } - state->flags = 0; /* expect zlib header */ - if (state->head != Z_NULL) - state->head->done = -1; - if (!(state->wrap & 1) || /* check if zlib header allowed */ -#else - if ( -#endif - ((BITS(8) << 8) + (hold >> 8)) % 31) { - strm->msg = (char *)"incorrect header check"; - state->mode = BAD; - break; - } - if (BITS(4) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - DROPBITS(4); - len = BITS(4) + 8; - if (state->wbits == 0) - state->wbits = len; - if (len > 15 || len > state->wbits) { - strm->msg = (char *)"invalid window size"; - state->mode = BAD; - break; - } - state->dmax = 1U << len; - Tracev((stderr, "inflate: zlib header ok\n")); - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = hold & 0x200 ? DICTID : TYPE; - INITBITS(); - break; -#ifdef GUNZIP - case FLAGS: - NEEDBITS(16); - state->flags = (int)(hold); - if ((state->flags & 0xff) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - if (state->flags & 0xe000) { - strm->msg = (char *)"unknown header flags set"; - state->mode = BAD; - break; - } - if (state->head != Z_NULL) - state->head->text = (int)((hold >> 8) & 1); - if ((state->flags & 0x0200) && (state->wrap & 4)) - CRC2(state->check, hold); - INITBITS(); - state->mode = TIME; - case TIME: - NEEDBITS(32); - if (state->head != Z_NULL) - state->head->time = hold; - if ((state->flags & 0x0200) && (state->wrap & 4)) - CRC4(state->check, hold); - INITBITS(); - state->mode = OS; - case OS: - NEEDBITS(16); - if (state->head != Z_NULL) { - state->head->xflags = (int)(hold & 0xff); - state->head->os = (int)(hold >> 8); - } - if ((state->flags & 0x0200) && (state->wrap & 4)) - CRC2(state->check, hold); - INITBITS(); - state->mode = EXLEN; - case EXLEN: - if (state->flags & 0x0400) { - NEEDBITS(16); - state->length = (unsigned)(hold); - if (state->head != Z_NULL) - state->head->extra_len = (unsigned)hold; - if ((state->flags & 0x0200) && (state->wrap & 4)) - CRC2(state->check, hold); - INITBITS(); - } - else if (state->head != Z_NULL) - state->head->extra = Z_NULL; - state->mode = EXTRA; - case EXTRA: - if (state->flags & 0x0400) { - copy = state->length; - if (copy > have) copy = have; - if (copy) { - if (state->head != Z_NULL && - state->head->extra != Z_NULL) { - len = state->head->extra_len - state->length; - zmemcpy(state->head->extra + len, next, - len + copy > state->head->extra_max ? - state->head->extra_max - len : copy); - } - if ((state->flags & 0x0200) && (state->wrap & 4)) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - state->length -= copy; - } - if (state->length) goto inf_leave; - } - state->length = 0; - state->mode = NAME; - case NAME: - if (state->flags & 0x0800) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->name != Z_NULL && - state->length < state->head->name_max) - state->head->name[state->length++] = (Bytef)len; - } while (len && copy < have); - if ((state->flags & 0x0200) && (state->wrap & 4)) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->name = Z_NULL; - state->length = 0; - state->mode = COMMENT; - case COMMENT: - if (state->flags & 0x1000) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - if (state->head != Z_NULL && - state->head->comment != Z_NULL && - state->length < state->head->comm_max) - state->head->comment[state->length++] = (Bytef)len; - } while (len && copy < have); - if ((state->flags & 0x0200) && (state->wrap & 4)) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - else if (state->head != Z_NULL) - state->head->comment = Z_NULL; - state->mode = HCRC; - case HCRC: - if (state->flags & 0x0200) { - NEEDBITS(16); - if ((state->wrap & 4) && hold != (state->check & 0xffff)) { - strm->msg = (char *)"header crc mismatch"; - state->mode = BAD; - break; - } - INITBITS(); - } - if (state->head != Z_NULL) { - state->head->hcrc = (int)((state->flags >> 9) & 1); - state->head->done = 1; - } - strm->adler = state->check = crc32(0L, Z_NULL, 0); - state->mode = TYPE; - break; -#endif - case DICTID: - NEEDBITS(32); - strm->adler = state->check = ZSWAP32(hold); - INITBITS(); - state->mode = DICT; - case DICT: - if (state->havedict == 0) { - RESTORE(); - return Z_NEED_DICT; - } - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = TYPE; - case TYPE: - if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; - case TYPEDO: - if (state->last) { - BYTEBITS(); - state->mode = CHECK; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN_; /* decode codes */ - if (flush == Z_TREES) { - DROPBITS(2); - goto inf_leave; - } - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - case STORED: - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - state->mode = COPY_; - if (flush == Z_TREES) goto inf_leave; - case COPY_: - state->mode = COPY; - case COPY: - copy = state->length; - if (copy) { - if (copy > have) copy = have; - if (copy > left) copy = left; - if (copy == 0) goto inf_leave; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - break; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - case TABLE: - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - state->have = 0; - state->mode = LENLENS; - case LENLENS: - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (const code FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - state->have = 0; - state->mode = CODELENS; - case CODELENS: - while (state->have < state->nlen + state->ndist) { - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.val < 16) { - DROPBITS(here.bits); - state->lens[state->have++] = here.val; - } - else { - if (here.val == 16) { - NEEDBITS(here.bits + 2); - DROPBITS(here.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = state->lens[state->have - 1]; - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (here.val == 17) { - NEEDBITS(here.bits + 3); - DROPBITS(here.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(here.bits + 7); - DROPBITS(here.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* handle error breaks in while */ - if (state->mode == BAD) break; - - /* check for end-of-block code (better have one) */ - if (state->lens[256] == 0) { - strm->msg = (char *)"invalid code -- missing end-of-block"; - state->mode = BAD; - break; - } - - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.h - concerning the ENOUGH constants, which depend on those values */ - state->next = state->codes; - state->lencode = (const code FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (const code FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN_; - if (flush == Z_TREES) goto inf_leave; - case LEN_: - state->mode = LEN; - case LEN: - if (have >= 6 && left >= 258) { - RESTORE(); - inflate_fast(strm, out); - LOAD(); - if (state->mode == TYPE) - state->back = -1; - break; - } - state->back = 0; - for (;;) { - here = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if (here.op && (here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - state->back += last.bits; - } - DROPBITS(here.bits); - state->back += here.bits; - state->length = (unsigned)here.val; - if ((int)(here.op) == 0) { - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - state->mode = LIT; - break; - } - if (here.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->back = -1; - state->mode = TYPE; - break; - } - if (here.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - state->extra = (unsigned)(here.op) & 15; - state->mode = LENEXT; - case LENEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - state->back += state->extra; - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - state->was = state->length; - state->mode = DIST; - case DIST: - for (;;) { - here = state->distcode[BITS(state->distbits)]; - if ((unsigned)(here.bits) <= bits) break; - PULLBYTE(); - } - if ((here.op & 0xf0) == 0) { - last = here; - for (;;) { - here = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + here.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - state->back += last.bits; - } - DROPBITS(here.bits); - state->back += here.bits; - if (here.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)here.val; - state->extra = (unsigned)(here.op) & 15; - state->mode = DISTEXT; - case DISTEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - state->back += state->extra; - } -#ifdef INFLATE_STRICT - if (state->offset > state->dmax) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#endif - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - state->mode = MATCH; - case MATCH: - if (left == 0) goto inf_leave; - copy = out - left; - if (state->offset > copy) { /* copy from window */ - copy = state->offset - copy; - if (copy > state->whave) { - if (state->sane) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - Trace((stderr, "inflate.c too far\n")); - copy -= state->whave; - if (copy > state->length) copy = state->length; - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = 0; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; -#endif - } - if (copy > state->wnext) { - copy -= state->wnext; - from = state->window + (state->wsize - copy); - } - else - from = state->window + (state->wnext - copy); - if (copy > state->length) copy = state->length; - } - else { /* copy from output */ - from = put - state->offset; - copy = state->length; - } - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = *from++; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; - case LIT: - if (left == 0) goto inf_leave; - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - case CHECK: - if (state->wrap) { - NEEDBITS(32); - out -= left; - strm->total_out += out; - state->total += out; - if ((state->wrap & 4) && out) - strm->adler = state->check = - UPDATE(state->check, put - out, out); - out = left; - if ((state->wrap & 4) && ( -#ifdef GUNZIP - state->flags ? hold : -#endif - ZSWAP32(hold)) != state->check) { - strm->msg = (char *)"incorrect data check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: check matches trailer\n")); - } -#ifdef GUNZIP - state->mode = LENGTH; - case LENGTH: - if (state->wrap && state->flags) { - NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { - strm->msg = (char *)"incorrect length check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: length matches trailer\n")); - } -#endif - state->mode = DONE; - case DONE: - ret = Z_STREAM_END; - goto inf_leave; - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - default: - return Z_STREAM_ERROR; - } - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - inf_leave: - RESTORE(); - if (state->wsize || (out != strm->avail_out && state->mode < BAD && - (state->mode < CHECK || flush != Z_FINISH))) - if (updatewindow(strm, strm->next_out, out - strm->avail_out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - in -= strm->avail_in; - out -= strm->avail_out; - strm->total_in += in; - strm->total_out += out; - state->total += out; - if ((state->wrap & 4) && out) - strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); - strm->data_type = (int)state->bits + (state->last ? 64 : 0) + - (state->mode == TYPE ? 128 : 0) + - (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); - if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) - ret = Z_BUF_ERROR; - return ret; -} - -int ZEXPORT inflateEnd(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - if (inflateStateCheck(strm)) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->window != Z_NULL) ZFREE(strm, state->window); - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} - -int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength) -z_streamp strm; -Bytef *dictionary; -uInt *dictLength; -{ - struct inflate_state FAR *state; - - /* check state */ - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* copy dictionary */ - if (state->whave && dictionary != Z_NULL) { - zmemcpy(dictionary, state->window + state->wnext, - state->whave - state->wnext); - zmemcpy(dictionary + state->whave - state->wnext, - state->window, state->wnext); - } - if (dictLength != Z_NULL) - *dictLength = state->whave; - return Z_OK; -} - -int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) -z_streamp strm; -const Bytef *dictionary; -uInt dictLength; -{ - struct inflate_state FAR *state; - unsigned long dictid; - int ret; - - /* check state */ - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->wrap != 0 && state->mode != DICT) - return Z_STREAM_ERROR; - - /* check for correct dictionary identifier */ - if (state->mode == DICT) { - dictid = adler32(0L, Z_NULL, 0); - dictid = adler32(dictid, dictionary, dictLength); - if (dictid != state->check) - return Z_DATA_ERROR; - } - - /* copy dictionary to window using updatewindow(), which will amend the - existing dictionary if appropriate */ - ret = updatewindow(strm, dictionary + dictLength, dictLength); - if (ret) { - state->mode = MEM; - return Z_MEM_ERROR; - } - state->havedict = 1; - Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; -} - -int ZEXPORT inflateGetHeader(strm, head) -z_streamp strm; -gz_headerp head; -{ - struct inflate_state FAR *state; - - /* check state */ - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; - - /* save header structure */ - state->head = head; - head->done = 0; - return Z_OK; -} - -/* - Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found - or when out of input. When called, *have is the number of pattern bytes - found in order so far, in 0..3. On return *have is updated to the new - state. If on return *have equals four, then the pattern was found and the - return value is how many bytes were read including the last byte of the - pattern. If *have is less than four, then the pattern has not been found - yet and the return value is len. In the latter case, syncsearch() can be - called again with more data and the *have state. *have is initialized to - zero for the first call. - */ -local unsigned syncsearch(have, buf, len) -unsigned FAR *have; -const unsigned char FAR *buf; -unsigned len; -{ - unsigned got; - unsigned next; - - got = *have; - next = 0; - while (next < len && got < 4) { - if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) - got++; - else if (buf[next]) - got = 0; - else - got = 4 - got; - next++; - } - *have = got; - return next; -} - -int ZEXPORT inflateSync(strm) -z_streamp strm; -{ - unsigned len; /* number of bytes to look at or looked at */ - unsigned long in, out; /* temporary to save total_in and total_out */ - unsigned char buf[4]; /* to restore bit buffer to byte string */ - struct inflate_state FAR *state; - - /* check parameters */ - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; - - /* if first time, start search in bit buffer */ - if (state->mode != SYNC) { - state->mode = SYNC; - state->hold <<= state->bits & 7; - state->bits -= state->bits & 7; - len = 0; - while (state->bits >= 8) { - buf[len++] = (unsigned char)(state->hold); - state->hold >>= 8; - state->bits -= 8; - } - state->have = 0; - syncsearch(&(state->have), buf, len); - } - - /* search available input */ - len = syncsearch(&(state->have), strm->next_in, strm->avail_in); - strm->avail_in -= len; - strm->next_in += len; - strm->total_in += len; - - /* return no joy or set up to restart inflate() on a new block */ - if (state->have != 4) return Z_DATA_ERROR; - in = strm->total_in; out = strm->total_out; - inflateReset(strm); - strm->total_in = in; strm->total_out = out; - state->mode = TYPE; - return Z_OK; -} - -/* - Returns true if inflate is currently at the end of a block generated by - Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP - implementation to provide an additional safety check. PPP uses - Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored - block. When decompressing, PPP checks that at the end of input packet, - inflate is waiting for these length bytes. - */ -int ZEXPORT inflateSyncPoint(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - return state->mode == STORED && state->bits == 0; -} - -int ZEXPORT inflateCopy(dest, source) -z_streamp dest; -z_streamp source; -{ - struct inflate_state FAR *state; - struct inflate_state FAR *copy; - unsigned char FAR *window; - unsigned wsize; - - /* check input */ - if (inflateStateCheck(source) || dest == Z_NULL) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)source->state; - - /* allocate space */ - copy = (struct inflate_state FAR *) - ZALLOC(source, 1, sizeof(struct inflate_state)); - if (copy == Z_NULL) return Z_MEM_ERROR; - window = Z_NULL; - if (state->window != Z_NULL) { - window = (unsigned char FAR *) - ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); - if (window == Z_NULL) { - ZFREE(source, copy); - return Z_MEM_ERROR; - } - } - - /* copy state */ - zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream)); - zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state)); - copy->strm = dest; - if (state->lencode >= state->codes && - state->lencode <= state->codes + ENOUGH - 1) { - copy->lencode = copy->codes + (state->lencode - state->codes); - copy->distcode = copy->codes + (state->distcode - state->codes); - } - copy->next = copy->codes + (state->next - state->codes); - if (window != Z_NULL) { - wsize = 1U << state->wbits; - zmemcpy(window, state->window, wsize); - } - copy->window = window; - dest->state = (struct internal_state FAR *)copy; - return Z_OK; -} - -int ZEXPORT inflateUndermine(strm, subvert) -z_streamp strm; -int subvert; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; -#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - state->sane = !subvert; - return Z_OK; -#else - (void)subvert; - state->sane = 1; - return Z_DATA_ERROR; -#endif -} - -int ZEXPORT inflateValidate(strm, check) -z_streamp strm; -int check; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (check) - state->wrap |= 4; - else - state->wrap &= ~4; - return Z_OK; -} - -long ZEXPORT inflateMark(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - - if (inflateStateCheck(strm)) - return -(1L << 16); - state = (struct inflate_state FAR *)strm->state; - return (long)(((unsigned long)((long)state->back)) << 16) + - (state->mode == COPY ? state->length : - (state->mode == MATCH ? state->was - state->length : 0)); -} - -unsigned long ZEXPORT inflateCodesUsed(strm) -z_streamp strm; -{ - struct inflate_state FAR *state; - if (inflateStateCheck(strm)) return (unsigned long)-1; - state = (struct inflate_state FAR *)strm->state; - return (unsigned long)(state->next - state->codes); -} diff --git a/Externals/zlib/inflate.h b/Externals/zlib/inflate.h deleted file mode 100644 index a46cce6b6d..0000000000 --- a/Externals/zlib/inflate.h +++ /dev/null @@ -1,125 +0,0 @@ -/* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2016 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* define NO_GZIP when compiling if you want to disable gzip header and - trailer decoding by inflate(). NO_GZIP would be used to avoid linking in - the crc code when it is not needed. For shared libraries, gzip decoding - should be left enabled. */ -#ifndef NO_GZIP -# define GUNZIP -#endif - -/* Possible inflate modes between inflate() calls */ -typedef enum { - HEAD = 16180, /* i: waiting for magic header */ - FLAGS, /* i: waiting for method and flags (gzip) */ - TIME, /* i: waiting for modification time (gzip) */ - OS, /* i: waiting for extra flags and operating system (gzip) */ - EXLEN, /* i: waiting for extra length (gzip) */ - EXTRA, /* i: waiting for extra bytes (gzip) */ - NAME, /* i: waiting for end of file name (gzip) */ - COMMENT, /* i: waiting for end of comment (gzip) */ - HCRC, /* i: waiting for header crc (gzip) */ - DICTID, /* i: waiting for dictionary check value */ - DICT, /* waiting for inflateSetDictionary() call */ - TYPE, /* i: waiting for type bits, including last-flag bit */ - TYPEDO, /* i: same, but skip check to exit inflate on new block */ - STORED, /* i: waiting for stored size (length and complement) */ - COPY_, /* i/o: same as COPY below, but only first time in */ - COPY, /* i/o: waiting for input or output to copy stored block */ - TABLE, /* i: waiting for dynamic block table lengths */ - LENLENS, /* i: waiting for code length code lengths */ - CODELENS, /* i: waiting for length/lit and distance code lengths */ - LEN_, /* i: same as LEN below, but only first time in */ - LEN, /* i: waiting for length/lit/eob code */ - LENEXT, /* i: waiting for length extra bits */ - DIST, /* i: waiting for distance code */ - DISTEXT, /* i: waiting for distance extra bits */ - MATCH, /* o: waiting for output space to copy string */ - LIT, /* o: waiting for output space to write literal */ - CHECK, /* i: waiting for 32-bit check value */ - LENGTH, /* i: waiting for 32-bit length (gzip) */ - DONE, /* finished check, done -- remain here until reset */ - BAD, /* got a data error -- remain here until reset */ - MEM, /* got an inflate() memory error -- remain here until reset */ - SYNC /* looking for synchronization bytes to restart inflate() */ -} inflate_mode; - -/* - State transitions between above modes - - - (most modes can go to BAD or MEM on error -- not shown for clarity) - - Process header: - HEAD -> (gzip) or (zlib) or (raw) - (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT -> - HCRC -> TYPE - (zlib) -> DICTID or TYPE - DICTID -> DICT -> TYPE - (raw) -> TYPEDO - Read deflate blocks: - TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK - STORED -> COPY_ -> COPY -> TYPE - TABLE -> LENLENS -> CODELENS -> LEN_ - LEN_ -> LEN - Read deflate codes in fixed or dynamic block: - LEN -> LENEXT or LIT or TYPE - LENEXT -> DIST -> DISTEXT -> MATCH -> LEN - LIT -> LEN - Process trailer: - CHECK -> LENGTH -> DONE - */ - -/* State maintained between inflate() calls -- approximately 7K bytes, not - including the allocated sliding window, which is up to 32K bytes. */ -struct inflate_state { - z_streamp strm; /* pointer back to this zlib stream */ - inflate_mode mode; /* current inflate mode */ - int last; /* true if processing last block */ - int wrap; /* bit 0 true for zlib, bit 1 true for gzip, - bit 2 true to validate check value */ - int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ - unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ - unsigned long check; /* protected copy of check value */ - unsigned long total; /* protected copy of output count */ - gz_headerp head; /* where to save gzip header information */ - /* sliding window */ - unsigned wbits; /* log base 2 of requested window size */ - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned wnext; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if needed */ - /* bit accumulator */ - unsigned long hold; /* input bit accumulator */ - unsigned bits; /* number of bits in "in" */ - /* for string and stored block copying */ - unsigned length; /* literal or length of data to copy */ - unsigned offset; /* distance back to copy string from */ - /* for table and code decoding */ - unsigned extra; /* extra bits needed */ - /* fixed and dynamic code tables */ - code const FAR *lencode; /* starting table for length/literal codes */ - code const FAR *distcode; /* starting table for distance codes */ - unsigned lenbits; /* index bits for lencode */ - unsigned distbits; /* index bits for distcode */ - /* dynamic table building */ - unsigned ncode; /* number of code length code lengths */ - unsigned nlen; /* number of length code lengths */ - unsigned ndist; /* number of distance code lengths */ - unsigned have; /* number of code lengths in lens[] */ - code FAR *next; /* next available space in codes[] */ - unsigned short lens[320]; /* temporary storage for code lengths */ - unsigned short work[288]; /* work area for code table building */ - code codes[ENOUGH]; /* space for code tables */ - int sane; /* if false, allow invalid distance too far */ - int back; /* bits back of last unprocessed length/lit */ - unsigned was; /* initial length of match */ -}; diff --git a/Externals/zlib/inftrees.c b/Externals/zlib/inftrees.c deleted file mode 100644 index 2ea08fc13e..0000000000 --- a/Externals/zlib/inftrees.c +++ /dev/null @@ -1,304 +0,0 @@ -/* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2017 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" - -#define MAXBITS 15 - -const char inflate_copyright[] = - " inflate 1.2.11 Copyright 1995-2017 Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* - Build a set of tables to decode the provided canonical Huffman code. - The code lengths are lens[0..codes-1]. The result starts at *table, - whose indices are 0..2^bits-1. work is a writable array of at least - lens shorts, which is used as a work area. type is the type of code - to be generated, CODES, LENS, or DISTS. On return, zero is success, - -1 is an invalid code, and +1 means that ENOUGH isn't enough. table - on return points to the next available entry's address. bits is the - requested root table index bits, and on return it is the actual root - table index bits. It will differ if the request is greater than the - longest code or if it is less than the shortest code. - */ -int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work) -codetype type; -unsigned short FAR *lens; -unsigned codes; -code FAR * FAR *table; -unsigned FAR *bits; -unsigned short FAR *work; -{ - unsigned len; /* a code's length in bits */ - unsigned sym; /* index of code symbols */ - unsigned min, max; /* minimum and maximum code lengths */ - unsigned root; /* number of index bits for root table */ - unsigned curr; /* number of index bits for current table */ - unsigned drop; /* code bits to drop for sub-table */ - int left; /* number of prefix codes available */ - unsigned used; /* code entries in table used */ - unsigned huff; /* Huffman code */ - unsigned incr; /* for incrementing code, index */ - unsigned fill; /* index for replicating entries */ - unsigned low; /* low bits for current root entry */ - unsigned mask; /* mask for low root bits */ - code here; /* table entry for duplication */ - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ - unsigned match; /* use base and extra for symbol >= match */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - static const unsigned short lext[31] = { /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202}; - static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0}; - static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64}; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) - count[len] = 0; - for (sym = 0; sym < codes; sym++) - count[lens[sym]]++; - - /* bound code lengths, force root to be within code lengths */ - root = *bits; - for (max = MAXBITS; max >= 1; max--) - if (count[max] != 0) break; - if (root > max) root = max; - if (max == 0) { /* no symbols to code at all */ - here.op = (unsigned char)64; /* invalid code marker */ - here.bits = (unsigned char)1; - here.val = (unsigned short)0; - *(*table)++ = here; /* make a table to force an error */ - *(*table)++ = here; - *bits = 1; - return 0; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) - if (count[min] != 0) break; - if (root < min) root = min; - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) return -1; /* over-subscribed */ - } - if (left > 0 && (type == CODES || max != 1)) - return -1; /* incomplete set */ - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) - offs[len + 1] = offs[len] + count[len]; - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) - if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for LENS and DIST tables against - the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in - the initial root table size constants. See the comments in inftrees.h - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ - match = 20; - break; - case LENS: - base = lbase; - extra = lext; - match = 257; - break; - default: /* DISTS */ - base = dbase; - extra = dext; - match = 0; - } - - /* initialize state for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = *table; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = (unsigned)(-1); /* trigger new sub-table when len > root */ - used = 1U << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if ((type == LENS && used > ENOUGH_LENS) || - (type == DISTS && used > ENOUGH_DISTS)) - return 1; - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - here.bits = (unsigned char)(len - drop); - if (work[sym] + 1U < match) { - here.op = (unsigned char)0; - here.val = work[sym]; - } - else if (work[sym] >= match) { - here.op = (unsigned char)(extra[work[sym] - match]); - here.val = base[work[sym] - match]; - } - else { - here.op = (unsigned char)(32 + 64); /* end of block */ - here.val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1U << (len - drop); - fill = 1U << curr; - min = fill; /* save offset to next table */ - do { - fill -= incr; - next[(huff >> drop) + fill] = here; - } while (fill != 0); - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - - /* go to next symbol, update count, len */ - sym++; - if (--(count[len]) == 0) { - if (len == max) break; - len = lens[work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) != low) { - /* if first time, transition to sub-tables */ - if (drop == 0) - drop = root; - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = (int)(1 << curr); - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) break; - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1U << curr; - if ((type == LENS && used > ENOUGH_LENS) || - (type == DISTS && used > ENOUGH_DISTS)) - return 1; - - /* point entry in root table to sub-table */ - low = huff & mask; - (*table)[low].op = (unsigned char)curr; - (*table)[low].bits = (unsigned char)root; - (*table)[low].val = (unsigned short)(next - *table); - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff != 0) { - here.op = (unsigned char)64; /* invalid code marker */ - here.bits = (unsigned char)(len - drop); - here.val = (unsigned short)0; - next[huff] = here; - } - - /* set return parameters */ - *table += used; - *bits = root; - return 0; -} diff --git a/Externals/zlib/inftrees.h b/Externals/zlib/inftrees.h deleted file mode 100644 index baa53a0b1a..0000000000 --- a/Externals/zlib/inftrees.h +++ /dev/null @@ -1,62 +0,0 @@ -/* inftrees.h -- header to use inftrees.c - * Copyright (C) 1995-2005, 2010 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* Structure for decoding tables. Each entry provides either the - information needed to do the operation requested by the code that - indexed that table entry, or it provides a pointer to another - table that indexes more bits of the code. op indicates whether - the entry is a pointer to another table, a literal, a length or - distance, an end-of-block, or an invalid code. For a table - pointer, the low four bits of op is the number of index bits of - that table. For a length or distance, the low four bits of op - is the number of extra bits to get after the code. bits is - the number of bits in this code or part of the code to drop off - of the bit buffer. val is the actual byte to output in the case - of a literal, the base length or distance, or the offset from - the current table to the next table. Each entry is four bytes. */ -typedef struct { - unsigned char op; /* operation, extra bits, table bits */ - unsigned char bits; /* bits in this part of the code */ - unsigned short val; /* offset in table or code value */ -} code; - -/* op values as set by inflate_table(): - 00000000 - literal - 0000tttt - table link, tttt != 0 is the number of table index bits - 0001eeee - length or distance, eeee is the number of extra bits - 01100000 - end of block - 01000000 - invalid code - */ - -/* Maximum size of the dynamic table. The maximum number of code structures is - 1444, which is the sum of 852 for literal/length codes and 592 for distance - codes. These values were found by exhaustive searches using the program - examples/enough.c found in the zlib distribtution. The arguments to that - program are the number of symbols, the initial root table size, and the - maximum bit length of a code. "enough 286 9 15" for literal/length codes - returns returns 852, and "enough 30 6 15" for distance codes returns 592. - The initial root table size (9 or 6) is found in the fifth argument of the - inflate_table() calls in inflate.c and infback.c. If the root table size is - changed, then these maximum sizes would be need to be recalculated and - updated. */ -#define ENOUGH_LENS 852 -#define ENOUGH_DISTS 592 -#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) - -/* Type of code to build for inflate_table() */ -typedef enum { - CODES, - LENS, - DISTS -} codetype; - -int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, - unsigned codes, code FAR * FAR *table, - unsigned FAR *bits, unsigned short FAR *work)); diff --git a/Externals/zlib/trees.c b/Externals/zlib/trees.c deleted file mode 100644 index 50cf4b4571..0000000000 --- a/Externals/zlib/trees.c +++ /dev/null @@ -1,1203 +0,0 @@ -/* trees.c -- output deflated data using Huffman coding - * Copyright (C) 1995-2017 Jean-loup Gailly - * detect_data_type() function provided freely by Cosmin Truta, 2006 - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process uses several Huffman trees. The more - * common source values are represented by shorter bit sequences. - * - * Each code tree is stored in a compressed form which is itself - * a Huffman encoding of the lengths of all the code strings (in - * ascending order by source values). The actual code strings are - * reconstructed from the lengths in the inflate process, as described - * in the deflate specification. - * - * REFERENCES - * - * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". - * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc - * - * Storer, James A. - * Data Compression: Methods and Theory, pp. 49-50. - * Computer Science Press, 1988. ISBN 0-7167-8156-5. - * - * Sedgewick, R. - * Algorithms, p290. - * Addison-Wesley, 1983. ISBN 0-201-06672-6. - */ - -/* @(#) $Id$ */ - -/* #define GEN_TREES_H */ - -#include "deflate.h" - -#ifdef ZLIB_DEBUG -# include -#endif - -/* =========================================================================== - * Constants - */ - -#define MAX_BL_BITS 7 -/* Bit length codes must not exceed MAX_BL_BITS bits */ - -#define END_BLOCK 256 -/* end of block literal code */ - -#define REP_3_6 16 -/* repeat previous bit length 3-6 times (2 bits of repeat count) */ - -#define REPZ_3_10 17 -/* repeat a zero length 3-10 times (3 bits of repeat count) */ - -#define REPZ_11_138 18 -/* repeat a zero length 11-138 times (7 bits of repeat count) */ - -local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ - = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; - -local const int extra_dbits[D_CODES] /* extra bits for each distance code */ - = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - -local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ - = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; - -local const uch bl_order[BL_CODES] - = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; -/* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ - -/* =========================================================================== - * Local data. These are initialized only once. - */ - -#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ - -#if defined(GEN_TREES_H) || !defined(STDC) -/* non ANSI compilers may not accept trees.h */ - -local ct_data static_ltree[L_CODES+2]; -/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */ - -local ct_data static_dtree[D_CODES]; -/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */ - -uch _dist_code[DIST_CODE_LEN]; -/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */ - -uch _length_code[MAX_MATCH-MIN_MATCH+1]; -/* length code for each normalized match length (0 == MIN_MATCH) */ - -local int base_length[LENGTH_CODES]; -/* First normalized length for each code (0 = MIN_MATCH) */ - -local int base_dist[D_CODES]; -/* First normalized distance for each code (0 = distance of 1) */ - -#else -# include "trees.h" -#endif /* GEN_TREES_H */ - -struct static_tree_desc_s { - const ct_data *static_tree; /* static tree or NULL */ - const intf *extra_bits; /* extra bits for each code or NULL */ - int extra_base; /* base index for extra_bits */ - int elems; /* max number of elements in the tree */ - int max_length; /* max bit length for the codes */ -}; - -local const static_tree_desc static_l_desc = -{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; - -local const static_tree_desc static_d_desc = -{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; - -local const static_tree_desc static_bl_desc = -{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; - -/* =========================================================================== - * Local (static) routines in this file. - */ - -local void tr_static_init OF((void)); -local void init_block OF((deflate_state *s)); -local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); -local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); -local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); -local void build_tree OF((deflate_state *s, tree_desc *desc)); -local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local int build_bl_tree OF((deflate_state *s)); -local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, - int blcodes)); -local void compress_block OF((deflate_state *s, const ct_data *ltree, - const ct_data *dtree)); -local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); -local void bi_windup OF((deflate_state *s)); -local void bi_flush OF((deflate_state *s)); - -#ifdef GEN_TREES_H -local void gen_trees_header OF((void)); -#endif - -#ifndef ZLIB_DEBUG -# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) - /* Send a code of the given tree. c and tree must not have side effects */ - -#else /* !ZLIB_DEBUG */ -# define send_code(s, c, tree) \ - { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ - send_bits(s, tree[c].Code, tree[c].Len); } -#endif - -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -#define put_short(s, w) { \ - put_byte(s, (uch)((w) & 0xff)); \ - put_byte(s, (uch)((ush)(w) >> 8)); \ -} - -/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -#ifdef ZLIB_DEBUG -local void send_bits OF((deflate_state *s, int value, int length)); - -local void send_bits(s, value, length) - deflate_state *s; - int value; /* value to send */ - int length; /* number of bits */ -{ - Tracevv((stderr," l %2d v %4x ", length, value)); - Assert(length > 0 && length <= 15, "invalid length"); - s->bits_sent += (ulg)length; - - /* If not enough room in bi_buf, use (valid) bits from bi_buf and - * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) - * unused bits in value. - */ - if (s->bi_valid > (int)Buf_size - length) { - s->bi_buf |= (ush)value << s->bi_valid; - put_short(s, s->bi_buf); - s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); - s->bi_valid += length - Buf_size; - } else { - s->bi_buf |= (ush)value << s->bi_valid; - s->bi_valid += length; - } -} -#else /* !ZLIB_DEBUG */ - -#define send_bits(s, value, length) \ -{ int len = length;\ - if (s->bi_valid > (int)Buf_size - len) {\ - int val = (int)value;\ - s->bi_buf |= (ush)val << s->bi_valid;\ - put_short(s, s->bi_buf);\ - s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ - s->bi_valid += len - Buf_size;\ - } else {\ - s->bi_buf |= (ush)(value) << s->bi_valid;\ - s->bi_valid += len;\ - }\ -} -#endif /* ZLIB_DEBUG */ - - -/* the arguments must not have side effects */ - -/* =========================================================================== - * Initialize the various 'constant' tables. - */ -local void tr_static_init() -{ -#if defined(GEN_TREES_H) || !defined(STDC) - static int static_init_done = 0; - int n; /* iterates over tree elements */ - int bits; /* bit counter */ - int length; /* length value */ - int code; /* code value */ - int dist; /* distance index */ - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - if (static_init_done) return; - - /* For some embedded targets, global variables are not initialized: */ -#ifdef NO_INIT_GLOBAL_POINTERS - static_l_desc.static_tree = static_ltree; - static_l_desc.extra_bits = extra_lbits; - static_d_desc.static_tree = static_dtree; - static_d_desc.extra_bits = extra_dbits; - static_bl_desc.extra_bits = extra_blbits; -#endif - - /* Initialize the mapping length (0..255) -> length code (0..28) */ - length = 0; - for (code = 0; code < LENGTH_CODES-1; code++) { - base_length[code] = length; - for (n = 0; n < (1< dist code (0..29) */ - dist = 0; - for (code = 0 ; code < 16; code++) { - base_dist[code] = dist; - for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ - for ( ; code < D_CODES; code++) { - base_dist[code] = dist << 7; - for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { - _dist_code[256 + dist++] = (uch)code; - } - } - Assert (dist == 256, "tr_static_init: 256+dist != 512"); - - /* Construct the codes of the static literal tree */ - for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; - n = 0; - while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; - while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; - while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; - while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); - - /* The static distance tree is trivial: */ - for (n = 0; n < D_CODES; n++) { - static_dtree[n].Len = 5; - static_dtree[n].Code = bi_reverse((unsigned)n, 5); - } - static_init_done = 1; - -# ifdef GEN_TREES_H - gen_trees_header(); -# endif -#endif /* defined(GEN_TREES_H) || !defined(STDC) */ -} - -/* =========================================================================== - * Genererate the file trees.h describing the static trees. - */ -#ifdef GEN_TREES_H -# ifndef ZLIB_DEBUG -# include -# endif - -# define SEPARATOR(i, last, width) \ - ((i) == (last)? "\n};\n\n" : \ - ((i) % (width) == (width)-1 ? ",\n" : ", ")) - -void gen_trees_header() -{ - FILE *header = fopen("trees.h", "w"); - int i; - - Assert (header != NULL, "Can't open trees.h"); - fprintf(header, - "/* header created automatically with -DGEN_TREES_H */\n\n"); - - fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); - for (i = 0; i < L_CODES+2; i++) { - fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, - static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); - } - - fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, - static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); - } - - fprintf(header, "const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {\n"); - for (i = 0; i < DIST_CODE_LEN; i++) { - fprintf(header, "%2u%s", _dist_code[i], - SEPARATOR(i, DIST_CODE_LEN-1, 20)); - } - - fprintf(header, - "const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); - for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { - fprintf(header, "%2u%s", _length_code[i], - SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); - } - - fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); - for (i = 0; i < LENGTH_CODES; i++) { - fprintf(header, "%1u%s", base_length[i], - SEPARATOR(i, LENGTH_CODES-1, 20)); - } - - fprintf(header, "local const int base_dist[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "%5u%s", base_dist[i], - SEPARATOR(i, D_CODES-1, 10)); - } - - fclose(header); -} -#endif /* GEN_TREES_H */ - -/* =========================================================================== - * Initialize the tree data structures for a new zlib stream. - */ -void ZLIB_INTERNAL _tr_init(s) - deflate_state *s; -{ - tr_static_init(); - - s->l_desc.dyn_tree = s->dyn_ltree; - s->l_desc.stat_desc = &static_l_desc; - - s->d_desc.dyn_tree = s->dyn_dtree; - s->d_desc.stat_desc = &static_d_desc; - - s->bl_desc.dyn_tree = s->bl_tree; - s->bl_desc.stat_desc = &static_bl_desc; - - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef ZLIB_DEBUG - s->compressed_len = 0L; - s->bits_sent = 0L; -#endif - - /* Initialize the first block of the first file: */ - init_block(s); -} - -/* =========================================================================== - * Initialize a new block. - */ -local void init_block(s) - deflate_state *s; -{ - int n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; - for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; - for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; - - s->dyn_ltree[END_BLOCK].Freq = 1; - s->opt_len = s->static_len = 0L; - s->last_lit = s->matches = 0; -} - -#define SMALLEST 1 -/* Index within the heap array of least frequent node in the Huffman tree */ - - -/* =========================================================================== - * Remove the smallest element from the heap and recreate the heap with - * one less element. Updates heap and heap_len. - */ -#define pqremove(s, tree, top) \ -{\ - top = s->heap[SMALLEST]; \ - s->heap[SMALLEST] = s->heap[s->heap_len--]; \ - pqdownheap(s, tree, SMALLEST); \ -} - -/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -#define smaller(tree, n, m, depth) \ - (tree[n].Freq < tree[m].Freq || \ - (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) - -/* =========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -local void pqdownheap(s, tree, k) - deflate_state *s; - ct_data *tree; /* the tree to restore */ - int k; /* node to move down */ -{ - int v = s->heap[k]; - int j = k << 1; /* left son of k */ - while (j <= s->heap_len) { - /* Set j to the smallest of the two sons: */ - if (j < s->heap_len && - smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { - j++; - } - /* Exit if v is smaller than both sons */ - if (smaller(tree, v, s->heap[j], s->depth)) break; - - /* Exchange v with the smallest son */ - s->heap[k] = s->heap[j]; k = j; - - /* And continue down the tree, setting j to the left son of k */ - j <<= 1; - } - s->heap[k] = v; -} - -/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -local void gen_bitlen(s, desc) - deflate_state *s; - tree_desc *desc; /* the tree descriptor */ -{ - ct_data *tree = desc->dyn_tree; - int max_code = desc->max_code; - const ct_data *stree = desc->stat_desc->static_tree; - const intf *extra = desc->stat_desc->extra_bits; - int base = desc->stat_desc->extra_base; - int max_length = desc->stat_desc->max_length; - int h; /* heap index */ - int n, m; /* iterate over the tree elements */ - int bits; /* bit length */ - int xbits; /* extra bits */ - ush f; /* frequency */ - int overflow = 0; /* number of elements with bit length too large */ - - for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ - - for (h = s->heap_max+1; h < HEAP_SIZE; h++) { - n = s->heap[h]; - bits = tree[tree[n].Dad].Len + 1; - if (bits > max_length) bits = max_length, overflow++; - tree[n].Len = (ush)bits; - /* We overwrite tree[n].Dad which is no longer needed */ - - if (n > max_code) continue; /* not a leaf node */ - - s->bl_count[bits]++; - xbits = 0; - if (n >= base) xbits = extra[n-base]; - f = tree[n].Freq; - s->opt_len += (ulg)f * (unsigned)(bits + xbits); - if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits); - } - if (overflow == 0) return; - - Tracev((stderr,"\nbit length overflow\n")); - /* This happens for example on obj2 and pic of the Calgary corpus */ - - /* Find the first bit length which could increase: */ - do { - bits = max_length-1; - while (s->bl_count[bits] == 0) bits--; - s->bl_count[bits]--; /* move one leaf down the tree */ - s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ - s->bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while (overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for (bits = max_length; bits != 0; bits--) { - n = s->bl_count[bits]; - while (n != 0) { - m = s->heap[--h]; - if (m > max_code) continue; - if ((unsigned) tree[m].Len != (unsigned) bits) { - Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); - s->opt_len += ((ulg)bits - tree[m].Len) * tree[m].Freq; - tree[m].Len = (ush)bits; - } - n--; - } - } -} - -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -local void gen_codes (tree, max_code, bl_count) - ct_data *tree; /* the tree to decorate */ - int max_code; /* largest code with non zero frequency */ - ushf *bl_count; /* number of codes at each bit length */ -{ - ush next_code[MAX_BITS+1]; /* next code value for each bit length */ - unsigned code = 0; /* running code value */ - int bits; /* bit index */ - int n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - code = (code + bl_count[bits-1]) << 1; - next_code[bits] = (ush)code; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; - const ct_data *stree = desc->stat_desc->static_tree; - int elems = desc->stat_desc->elems; - int n, m; /* iterate over heap elements */ - int max_code = -1; /* largest code with non zero frequency */ - int node; /* new node being created */ - - /* Construct the initial heap, with least frequent element in - * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - s->heap_len = 0, s->heap_max = HEAP_SIZE; - - for (n = 0; n < elems; n++) { - if (tree[n].Freq != 0) { - s->heap[++(s->heap_len)] = max_code = n; - s->depth[n] = 0; - } else { - tree[n].Len = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while (s->heap_len < 2) { - node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); - tree[node].Freq = 1; - s->depth[node] = 0; - s->opt_len--; if (stree) s->static_len -= stree[node].Len; - /* node is 0 or 1 so it does not have extra bits */ - } - desc->max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do { - pqremove(s, tree, n); /* n = node of least frequency */ - m = s->heap[SMALLEST]; /* m = node of next least frequency */ - - s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ - s->heap[--(s->heap_max)] = m; - - /* Create a new node father of n and m */ - tree[node].Freq = tree[n].Freq + tree[m].Freq; - s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ? - s->depth[n] : s->depth[m]) + 1); - tree[n].Dad = tree[m].Dad = (ush)node; -#ifdef DUMP_BL_TREE - if (tree == s->bl_tree) { - fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", - node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); - } -#endif - /* and insert the new node in the heap */ - s->heap[SMALLEST] = node++; - pqdownheap(s, tree, SMALLEST); - - } while (s->heap_len >= 2); - - s->heap[--(s->heap_max)] = s->heap[SMALLEST]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen(s, (tree_desc *)desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes ((ct_data *)tree, max_code, s->bl_count); -} - -/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */ -local void scan_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - if (nextlen == 0) max_count = 138, min_count = 3; - tree[max_code+1].Len = (ush)0xffff; /* guard */ - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - s->bl_tree[curlen].Freq += count; - } else if (curlen != 0) { - if (curlen != prevlen) s->bl_tree[curlen].Freq++; - s->bl_tree[REP_3_6].Freq++; - } else if (count <= 10) { - s->bl_tree[REPZ_3_10].Freq++; - } else { - s->bl_tree[REPZ_11_138].Freq++; - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -local void send_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - /* tree[max_code+1].Len = -1; */ /* guard already set */ - if (nextlen == 0) max_count = 138, min_count = 3; - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - do { send_code(s, curlen, s->bl_tree); } while (--count != 0); - - } else if (curlen != 0) { - if (curlen != prevlen) { - send_code(s, curlen, s->bl_tree); count--; - } - Assert(count >= 3 && count <= 6, " 3_6?"); - send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); - - } else if (count <= 10) { - send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); - - } else { - send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -local int build_bl_tree(s) - deflate_state *s; -{ - int max_blindex; /* index of last bit length code of non zero freq */ - - /* Determine the bit length frequencies for literal and distance trees */ - scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); - scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); - - /* Build the bit length tree: */ - build_tree(s, (tree_desc *)(&(s->bl_desc))); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { - if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; - } - /* Update opt_len to include the bit length tree and counts */ - s->opt_len += 3*((ulg)max_blindex+1) + 5+5+4; - Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", - s->opt_len, s->static_len)); - - return max_blindex; -} - -/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -local void send_all_trees(s, lcodes, dcodes, blcodes) - deflate_state *s; - int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ - int rank; /* index in bl_order */ - - Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); - Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, - "too many codes"); - Tracev((stderr, "\nbl counts: ")); - send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ - send_bits(s, dcodes-1, 5); - send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ - for (rank = 0; rank < blcodes; rank++) { - Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); - } - Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ - Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ - Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -} - -/* =========================================================================== - * Send a stored block - */ -void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ - send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */ - bi_windup(s); /* align on byte boundary */ - put_short(s, (ush)stored_len); - put_short(s, (ush)~stored_len); - zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); - s->pending += stored_len; -#ifdef ZLIB_DEBUG - s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; - s->compressed_len += (stored_len + 4) << 3; - s->bits_sent += 2*16; - s->bits_sent += stored_len<<3; -#endif -} - -/* =========================================================================== - * Flush the bits in the bit buffer to pending output (leaves at most 7 bits) - */ -void ZLIB_INTERNAL _tr_flush_bits(s) - deflate_state *s; -{ - bi_flush(s); -} - -/* =========================================================================== - * Send one empty static block to give enough lookahead for inflate. - * This takes 10 bits, of which 7 may remain in the bit buffer. - */ -void ZLIB_INTERNAL _tr_align(s) - deflate_state *s; -{ - send_bits(s, STATIC_TREES<<1, 3); - send_code(s, END_BLOCK, static_ltree); -#ifdef ZLIB_DEBUG - s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ -#endif - bi_flush(s); -} - -/* =========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and write out the encoded block. - */ -void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block, or NULL if too old */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ - ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ - int max_blindex = 0; /* index of last bit length code of non zero freq */ - - /* Build the Huffman trees unless a stored block is forced */ - if (s->level > 0) { - - /* Check if the file is binary or text */ - if (s->strm->data_type == Z_UNKNOWN) - s->strm->data_type = detect_data_type(s); - - /* Construct the literal and distance trees */ - build_tree(s, (tree_desc *)(&(s->l_desc))); - Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - - build_tree(s, (tree_desc *)(&(s->d_desc))); - Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(s); - - /* Determine the best encoding. Compute the block lengths in bytes. */ - opt_lenb = (s->opt_len+3+7)>>3; - static_lenb = (s->static_len+3+7)>>3; - - Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", - opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - s->last_lit)); - - if (static_lenb <= opt_lenb) opt_lenb = static_lenb; - - } else { - Assert(buf != (char*)0, "lost buf"); - opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ - } - -#ifdef FORCE_STORED - if (buf != (char*)0) { /* force stored block */ -#else - if (stored_len+4 <= opt_lenb && buf != (char*)0) { - /* 4: two words for the lengths */ -#endif - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - _tr_stored_block(s, buf, stored_len, last); - -#ifdef FORCE_STATIC - } else if (static_lenb >= 0) { /* force static trees */ -#else - } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) { -#endif - send_bits(s, (STATIC_TREES<<1)+last, 3); - compress_block(s, (const ct_data *)static_ltree, - (const ct_data *)static_dtree); -#ifdef ZLIB_DEBUG - s->compressed_len += 3 + s->static_len; -#endif - } else { - send_bits(s, (DYN_TREES<<1)+last, 3); - send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, - max_blindex+1); - compress_block(s, (const ct_data *)s->dyn_ltree, - (const ct_data *)s->dyn_dtree); -#ifdef ZLIB_DEBUG - s->compressed_len += 3 + s->opt_len; -#endif - } - Assert (s->compressed_len == s->bits_sent, "bad compressed size"); - /* The above check is made mod 2^32, for files larger than 512 MB - * and uLong implemented on 32 bits. - */ - init_block(s); - - if (last) { - bi_windup(s); -#ifdef ZLIB_DEBUG - s->compressed_len += 7; /* align on byte boundary */ -#endif - } - Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, - s->compressed_len-7*last)); -} - -/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -int ZLIB_INTERNAL _tr_tally (s, dist, lc) - deflate_state *s; - unsigned dist; /* distance of matched string */ - unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{ - s->d_buf[s->last_lit] = (ush)dist; - s->l_buf[s->last_lit++] = (uch)lc; - if (dist == 0) { - /* lc is the unmatched char */ - s->dyn_ltree[lc].Freq++; - } else { - s->matches++; - /* Here, lc is the match length - MIN_MATCH */ - dist--; /* dist = match distance - 1 */ - Assert((ush)dist < (ush)MAX_DIST(s) && - (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && - (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); - - s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; - s->dyn_dtree[d_code(dist)].Freq++; - } - -#ifdef TRUNCATE_BLOCK - /* Try to guess if it is profitable to stop the current block here */ - if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { - /* Compute an upper bound for the compressed length */ - ulg out_length = (ulg)s->last_lit*8L; - ulg in_length = (ulg)((long)s->strstart - s->block_start); - int dcode; - for (dcode = 0; dcode < D_CODES; dcode++) { - out_length += (ulg)s->dyn_dtree[dcode].Freq * - (5L+extra_dbits[dcode]); - } - out_length >>= 3; - Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", - s->last_lit, in_length, out_length, - 100L - out_length*100L/in_length)); - if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; - } -#endif - return (s->last_lit == s->lit_bufsize-1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -local void compress_block(s, ltree, dtree) - deflate_state *s; - const ct_data *ltree; /* literal tree */ - const ct_data *dtree; /* distance tree */ -{ - unsigned dist; /* distance of matched string */ - int lc; /* match length or unmatched char (if dist == 0) */ - unsigned lx = 0; /* running index in l_buf */ - unsigned code; /* the code to send */ - int extra; /* number of extra bits to send */ - - if (s->last_lit != 0) do { - dist = s->d_buf[lx]; - lc = s->l_buf[lx++]; - if (dist == 0) { - send_code(s, lc, ltree); /* send a literal byte */ - Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code+LITERALS+1, ltree); /* send the length code */ - extra = extra_lbits[code]; - if (extra != 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra != 0) { - dist -= (unsigned)base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - "pendingBuf overflow"); - - } while (lx < s->last_lit); - - send_code(s, END_BLOCK, ltree); -} - -/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */ -local int detect_data_type(s) - deflate_state *s; -{ - /* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - unsigned long black_mask = 0xf3ffc07fUL; - int n; - - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>= 1) - if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0)) - return Z_BINARY; - - /* Check for textual ("white-listed") bytes. */ - if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 - || s->dyn_ltree[13].Freq != 0) - return Z_TEXT; - for (n = 32; n < LITERALS; n++) - if (s->dyn_ltree[n].Freq != 0) - return Z_TEXT; - - /* There are no "black-listed" or "white-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return Z_BINARY; -} - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -local unsigned bi_reverse(code, len) - unsigned code; /* the value to invert */ - int len; /* its bit length */ -{ - register unsigned res = 0; - do { - res |= code & 1; - code >>= 1, res <<= 1; - } while (--len > 0); - return res >> 1; -} - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -local void bi_flush(s) - deflate_state *s; -{ - if (s->bi_valid == 16) { - put_short(s, s->bi_buf); - s->bi_buf = 0; - s->bi_valid = 0; - } else if (s->bi_valid >= 8) { - put_byte(s, (Byte)s->bi_buf); - s->bi_buf >>= 8; - s->bi_valid -= 8; - } -} - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -local void bi_windup(s) - deflate_state *s; -{ - if (s->bi_valid > 8) { - put_short(s, s->bi_buf); - } else if (s->bi_valid > 0) { - put_byte(s, (Byte)s->bi_buf); - } - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef ZLIB_DEBUG - s->bits_sent = (s->bits_sent+7) & ~7; -#endif -} diff --git a/Externals/zlib/trees.h b/Externals/zlib/trees.h deleted file mode 100644 index d35639d82a..0000000000 --- a/Externals/zlib/trees.h +++ /dev/null @@ -1,128 +0,0 @@ -/* header created automatically with -DGEN_TREES_H */ - -local const ct_data static_ltree[L_CODES+2] = { -{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, -{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, -{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, -{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, -{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, -{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, -{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, -{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, -{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, -{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, -{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, -{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, -{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, -{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, -{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, -{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, -{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, -{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, -{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, -{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, -{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, -{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, -{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, -{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, -{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, -{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, -{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, -{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, -{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, -{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, -{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, -{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, -{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, -{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, -{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, -{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, -{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, -{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, -{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, -{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, -{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, -{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, -{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, -{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, -{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, -{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, -{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, -{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, -{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, -{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, -{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, -{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, -{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, -{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, -{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, -{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, -{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, -{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} -}; - -local const ct_data static_dtree[D_CODES] = { -{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, -{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, -{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, -{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, -{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, -{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} -}; - -const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = { - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, -10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, -11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, -18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 -}; - -const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, -13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, -17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, -19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, -22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 -}; - -local const int base_length[LENGTH_CODES] = { -0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, -64, 80, 96, 112, 128, 160, 192, 224, 0 -}; - -local const int base_dist[D_CODES] = { - 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, - 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, - 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 -}; - diff --git a/Externals/zlib/uncompr.c b/Externals/zlib/uncompr.c deleted file mode 100644 index f03a1a865e..0000000000 --- a/Externals/zlib/uncompr.c +++ /dev/null @@ -1,93 +0,0 @@ -/* uncompr.c -- decompress a memory buffer - * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#define ZLIB_INTERNAL -#include "zlib.h" - -/* =========================================================================== - Decompresses the source buffer into the destination buffer. *sourceLen is - the byte length of the source buffer. Upon entry, *destLen is the total size - of the destination buffer, which must be large enough to hold the entire - uncompressed data. (The size of the uncompressed data must have been saved - previously by the compressor and transmitted to the decompressor by some - mechanism outside the scope of this compression library.) Upon exit, - *destLen is the size of the decompressed data and *sourceLen is the number - of source bytes consumed. Upon return, source + *sourceLen points to the - first unused input byte. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, or - Z_DATA_ERROR if the input data was corrupted, including if the input data is - an incomplete zlib stream. -*/ -int ZEXPORT uncompress2 (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong *sourceLen; -{ - z_stream stream; - int err; - const uInt max = (uInt)-1; - uLong len, left; - Byte buf[1]; /* for detection of incomplete stream when *destLen == 0 */ - - len = *sourceLen; - if (*destLen) { - left = *destLen; - *destLen = 0; - } - else { - left = 1; - dest = buf; - } - - stream.next_in = (z_const Bytef *)source; - stream.avail_in = 0; - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - stream.opaque = (voidpf)0; - - err = inflateInit(&stream); - if (err != Z_OK) return err; - - stream.next_out = dest; - stream.avail_out = 0; - - do { - if (stream.avail_out == 0) { - stream.avail_out = left > (uLong)max ? max : (uInt)left; - left -= stream.avail_out; - } - if (stream.avail_in == 0) { - stream.avail_in = len > (uLong)max ? max : (uInt)len; - len -= stream.avail_in; - } - err = inflate(&stream, Z_NO_FLUSH); - } while (err == Z_OK); - - *sourceLen -= len + stream.avail_in; - if (dest != buf) - *destLen = stream.total_out; - else if (stream.total_out && err == Z_BUF_ERROR) - left = 1; - - inflateEnd(&stream); - return err == Z_STREAM_END ? Z_OK : - err == Z_NEED_DICT ? Z_DATA_ERROR : - err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR : - err; -} - -int ZEXPORT uncompress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - return uncompress2(dest, destLen, source, &sourceLen); -} diff --git a/Externals/zlib/zconf.h b/Externals/zlib/zconf.h deleted file mode 100644 index 5e1d68a004..0000000000 --- a/Externals/zlib/zconf.h +++ /dev/null @@ -1,534 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols and init macros */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# define adler32_z z_adler32_z -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define crc32_z z_crc32_z -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateGetDictionary z_deflateGetDictionary -# define deflateInit z_deflateInit -# define deflateInit2 z_deflateInit2 -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzfread z_gzfread -# define gzfwrite z_gzfwrite -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzvprintf z_gzvprintf -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit z_inflateBackInit -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCodesUsed z_inflateCodesUsed -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetDictionary z_inflateGetDictionary -# define inflateGetHeader z_inflateGetHeader -# define inflateInit z_inflateInit -# define inflateInit2 z_inflateInit2 -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateResetKeep z_inflateResetKeep -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateValidate z_inflateValidate -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# define uncompress2 z_uncompress2 -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 199901L -# ifndef STDC99 -# define STDC99 -# endif -# endif -#endif -#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) -# define STDC -#endif -#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) -# define STDC -#endif -#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) -# define STDC -#endif -#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) -# define STDC -#endif - -#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ -# define STDC -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const /* note: need a more gentle solution here */ -# endif -#endif - -#if defined(ZLIB_CONST) && !defined(z_const) -# define z_const const -#else -# define z_const -#endif - -#ifdef Z_SOLO - typedef unsigned long z_size_t; -#else -# define z_longlong long long -# if defined(NO_SIZE_T) - typedef unsigned NO_SIZE_T z_size_t; -# elif defined(STDC) -# include - typedef size_t z_size_t; -# else - typedef unsigned long z_size_t; -# endif -# undef z_longlong -#endif - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus about 7 kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -#ifndef Z_ARG /* function prototypes for stdarg */ -# if defined(STDC) || defined(Z_HAVE_STDARG_H) -# define Z_ARG(args) args -# else -# define Z_ARG(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#ifdef SYS16BIT -# if defined(M_I86SM) || defined(M_I86MM) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR _far -# else -# define FAR far -# endif -# endif -# if (defined(__SMALL__) || defined(__MEDIUM__)) - /* Turbo C small or medium model */ -# define SMALL_MEDIUM -# ifdef __BORLANDC__ -# define FAR _far -# else -# define FAR far -# endif -# endif -#endif - -#if defined(WINDOWS) || defined(WIN32) - /* If building or using zlib as a DLL, define ZLIB_DLL. - * This is not mandatory, but it offers a little performance increase. - */ -# ifdef ZLIB_DLL -# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) -# ifdef ZLIB_INTERNAL -# define ZEXTERN extern __declspec(dllexport) -# else -# define ZEXTERN extern __declspec(dllimport) -# endif -# endif -# endif /* ZLIB_DLL */ - /* If building or using zlib with the WINAPI/WINAPIV calling convention, - * define ZLIB_WINAPI. - * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. - */ -# ifdef ZLIB_WINAPI -# ifdef FAR -# undef FAR -# endif -# include - /* No need for _export, use ZLIB.DEF instead. */ - /* For complete Windows compatibility, use WINAPI, not __stdcall. */ -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR CDECL -# endif -# endif -#endif - -#if defined (__BEOS__) -# ifdef ZLIB_DLL -# ifdef ZLIB_INTERNAL -# define ZEXPORT __declspec(dllexport) -# define ZEXPORTVA __declspec(dllexport) -# else -# define ZEXPORT __declspec(dllimport) -# define ZEXPORTVA __declspec(dllimport) -# endif -# endif -#endif - -#ifndef ZEXTERN -# define ZEXTERN extern -#endif -#ifndef ZEXPORT -# define ZEXPORT -#endif -#ifndef ZEXPORTVA -# define ZEXPORTVA -#endif - -#ifndef FAR -# define FAR -#endif - -#if !defined(__MACTYPES__) -typedef unsigned char Byte; /* 8 bits */ -#endif -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#ifdef SMALL_MEDIUM - /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void const *voidpc; - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte const *voidpc; - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#endif - -/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and - * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even - * though the former does not conform to the LFS document), but considering - * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as - * equivalently requesting no 64-bit operations - */ -#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 -# undef _LARGEFILE64_SOURCE -#endif - -#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) -# define Z_HAVE_UNISTD_H -#endif -#ifndef Z_SOLO -# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) -# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ -# ifdef VMS -# include /* for off_t */ -# endif -# ifndef z_off_t -# define z_off_t off_t -# endif -# endif -#endif - -#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 -# define Z_LFS64 -#endif - -#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) -# define Z_LARGE64 -#endif - -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) -# define Z_WANT64 -#endif - -#if !defined(SEEK_SET) && !defined(Z_SOLO) -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ -#endif - -#ifndef z_off_t -# define z_off_t long -#endif - -#if !defined(_WIN32) && defined(Z_LARGE64) -# define z_off64_t off64_t -#else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) -# define z_off64_t __int64 -# else -# define z_off64_t z_off_t -# endif -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) - #pragma map(deflateInit_,"DEIN") - #pragma map(deflateInit2_,"DEIN2") - #pragma map(deflateEnd,"DEEND") - #pragma map(deflateBound,"DEBND") - #pragma map(inflateInit_,"ININ") - #pragma map(inflateInit2_,"ININ2") - #pragma map(inflateEnd,"INEND") - #pragma map(inflateSync,"INSY") - #pragma map(inflateSetDictionary,"INSEDI") - #pragma map(compressBound,"CMBND") - #pragma map(inflate_table,"INTABL") - #pragma map(inflate_fast,"INFA") - #pragma map(inflate_copyright,"INCOPY") -#endif - -#endif /* ZCONF_H */ diff --git a/Externals/zlib/zlib.vcxproj b/Externals/zlib/zlib.vcxproj deleted file mode 100644 index 5c0d1944e4..0000000000 --- a/Externals/zlib/zlib.vcxproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - {FF213B23-2C26-4214-9F88-85271E557E87} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Externals/zlib/zutil.c b/Externals/zlib/zutil.c deleted file mode 100644 index a76c6b0c7e..0000000000 --- a/Externals/zlib/zutil.c +++ /dev/null @@ -1,325 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-2017 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "zutil.h" -#ifndef Z_SOLO -# include "gzguts.h" -#endif - -z_const char * const z_errmsg[10] = { - (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */ - (z_const char *)"stream end", /* Z_STREAM_END 1 */ - (z_const char *)"", /* Z_OK 0 */ - (z_const char *)"file error", /* Z_ERRNO (-1) */ - (z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */ - (z_const char *)"data error", /* Z_DATA_ERROR (-3) */ - (z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */ - (z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */ - (z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */ - (z_const char *)"" -}; - - -const char * ZEXPORT zlibVersion() -{ - return ZLIB_VERSION; -} - -uLong ZEXPORT zlibCompileFlags() -{ - uLong flags; - - flags = 0; - switch ((int)(sizeof(uInt))) { - case 2: break; - case 4: flags += 1; break; - case 8: flags += 2; break; - default: flags += 3; - } - switch ((int)(sizeof(uLong))) { - case 2: break; - case 4: flags += 1 << 2; break; - case 8: flags += 2 << 2; break; - default: flags += 3 << 2; - } - switch ((int)(sizeof(voidpf))) { - case 2: break; - case 4: flags += 1 << 4; break; - case 8: flags += 2 << 4; break; - default: flags += 3 << 4; - } - switch ((int)(sizeof(z_off_t))) { - case 2: break; - case 4: flags += 1 << 6; break; - case 8: flags += 2 << 6; break; - default: flags += 3 << 6; - } -#ifdef ZLIB_DEBUG - flags += 1 << 8; -#endif -#if defined(ASMV) || defined(ASMINF) - flags += 1 << 9; -#endif -#ifdef ZLIB_WINAPI - flags += 1 << 10; -#endif -#ifdef BUILDFIXED - flags += 1 << 12; -#endif -#ifdef DYNAMIC_CRC_TABLE - flags += 1 << 13; -#endif -#ifdef NO_GZCOMPRESS - flags += 1L << 16; -#endif -#ifdef NO_GZIP - flags += 1L << 17; -#endif -#ifdef PKZIP_BUG_WORKAROUND - flags += 1L << 20; -#endif -#ifdef FASTEST - flags += 1L << 21; -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifdef NO_vsnprintf - flags += 1L << 25; -# ifdef HAS_vsprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_vsnprintf_void - flags += 1L << 26; -# endif -# endif -#else - flags += 1L << 24; -# ifdef NO_snprintf - flags += 1L << 25; -# ifdef HAS_sprintf_void - flags += 1L << 26; -# endif -# else -# ifdef HAS_snprintf_void - flags += 1L << 26; -# endif -# endif -#endif - return flags; -} - -#ifdef ZLIB_DEBUG -#include -# ifndef verbose -# define verbose 0 -# endif -int ZLIB_INTERNAL z_verbose = verbose; - -void ZLIB_INTERNAL z_error (m) - char *m; -{ - fprintf(stderr, "%s\n", m); - exit(1); -} -#endif - -/* exported to allow conversion of error code to string for compress() and - * uncompress() - */ -const char * ZEXPORT zError(err) - int err; -{ - return ERR_MSG(err); -} - -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have - * errno. We define it as a global variable to simplify porting. - * Its value is always 0 and should not be used. - */ - int errno = 0; -#endif - -#ifndef HAVE_MEMCPY - -void ZLIB_INTERNAL zmemcpy(dest, source, len) - Bytef* dest; - const Bytef* source; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = *source++; /* ??? to be unrolled */ - } while (--len != 0); -} - -int ZLIB_INTERNAL zmemcmp(s1, s2, len) - const Bytef* s1; - const Bytef* s2; - uInt len; -{ - uInt j; - - for (j = 0; j < len; j++) { - if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; - } - return 0; -} - -void ZLIB_INTERNAL zmemzero(dest, len) - Bytef* dest; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = 0; /* ??? to be unrolled */ - } while (--len != 0); -} -#endif - -#ifndef Z_SOLO - -#ifdef SYS16BIT - -#ifdef __TURBOC__ -/* Turbo C in 16-bit mode */ - -# define MY_ZCALLOC - -/* Turbo C malloc() does not allow dynamic allocation of 64K bytes - * and farmalloc(64K) returns a pointer with an offset of 8, so we - * must fix the pointer. Warning: the pointer must be put back to its - * original form in order to free it, use zcfree(). - */ - -#define MAX_PTR 10 -/* 10*64K = 640K */ - -local int next_ptr = 0; - -typedef struct ptr_table_s { - voidpf org_ptr; - voidpf new_ptr; -} ptr_table; - -local ptr_table table[MAX_PTR]; -/* This table is used to remember the original form of pointers - * to large buffers (64K). Such pointers are normalized with a zero offset. - * Since MSDOS is not a preemptive multitasking OS, this table is not - * protected from concurrent access. This hack doesn't work anyway on - * a protected system like OS/2. Use Microsoft C instead. - */ - -voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - voidpf buf; - ulg bsize = (ulg)items*size; - - (void)opaque; - - /* If we allocate less than 65520 bytes, we assume that farmalloc - * will return a usable pointer which doesn't have to be normalized. - */ - if (bsize < 65520L) { - buf = farmalloc(bsize); - if (*(ush*)&buf != 0) return buf; - } else { - buf = farmalloc(bsize + 16L); - } - if (buf == NULL || next_ptr >= MAX_PTR) return NULL; - table[next_ptr].org_ptr = buf; - - /* Normalize the pointer to seg:0 */ - *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; - *(ush*)&buf = 0; - table[next_ptr++].new_ptr = buf; - return buf; -} - -void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) -{ - int n; - - (void)opaque; - - if (*(ush*)&ptr != 0) { /* object < 64K */ - farfree(ptr); - return; - } - /* Find the original pointer */ - for (n = 0; n < next_ptr; n++) { - if (ptr != table[n].new_ptr) continue; - - farfree(table[n].org_ptr); - while (++n < next_ptr) { - table[n-1] = table[n]; - } - next_ptr--; - return; - } - Assert(0, "zcfree: ptr not found"); -} - -#endif /* __TURBOC__ */ - - -#ifdef M_I86 -/* Microsoft C in 16-bit mode */ - -# define MY_ZCALLOC - -#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) -# define _halloc halloc -# define _hfree hfree -#endif - -voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size) -{ - (void)opaque; - return _halloc((long)items, size); -} - -void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) -{ - (void)opaque; - _hfree(ptr); -} - -#endif /* M_I86 */ - -#endif /* SYS16BIT */ - - -#ifndef MY_ZCALLOC /* Any system without a special alloc function */ - -#ifndef STDC -extern voidp malloc OF((uInt size)); -extern voidp calloc OF((uInt items, uInt size)); -extern void free OF((voidpf ptr)); -#endif - -voidpf ZLIB_INTERNAL zcalloc (opaque, items, size) - voidpf opaque; - unsigned items; - unsigned size; -{ - (void)opaque; - return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : - (voidpf)calloc(items, size); -} - -void ZLIB_INTERNAL zcfree (opaque, ptr) - voidpf opaque; - voidpf ptr; -{ - (void)opaque; - free(ptr); -} - -#endif /* MY_ZCALLOC */ - -#endif /* !Z_SOLO */ diff --git a/Externals/zlib/zutil.h b/Externals/zlib/zutil.h deleted file mode 100644 index b079ea6a80..0000000000 --- a/Externals/zlib/zutil.h +++ /dev/null @@ -1,271 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef ZUTIL_H -#define ZUTIL_H - -#ifdef HAVE_HIDDEN -# define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) -#else -# define ZLIB_INTERNAL -#endif - -#include "zlib.h" - -#if defined(STDC) && !defined(Z_SOLO) -# if !(defined(_WIN32_WCE) && defined(_MSC_VER)) -# include -# endif -# include -# include -#endif - -#ifdef Z_SOLO - typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ -#endif - -#ifndef local -# define local static -#endif -/* since "static" is used to mean two completely different things in C, we - define "local" for the non-static meaning of "static", for readability - (compile with -Dlocal if your debugger can't find static symbols) */ - -typedef unsigned char uch; -typedef uch FAR uchf; -typedef unsigned short ush; -typedef ush FAR ushf; -typedef unsigned long ulg; - -extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ -/* (size given to avoid silly warnings with Visual C++) */ - -#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] - -#define ERR_RETURN(strm,err) \ - return (strm->msg = ERR_MSG(err), (err)) -/* To be used only when the state is known to be valid */ - - /* common constants */ - -#ifndef DEF_WBITS -# define DEF_WBITS MAX_WBITS -#endif -/* default windowBits for decompression. MAX_WBITS is for compression only */ - -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif -/* default memLevel */ - -#define STORED_BLOCK 0 -#define STATIC_TREES 1 -#define DYN_TREES 2 -/* The three kinds of block type */ - -#define MIN_MATCH 3 -#define MAX_MATCH 258 -/* The minimum and maximum match lengths */ - -#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ - - /* target dependencies */ - -#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) -# define OS_CODE 0x00 -# ifndef Z_SOLO -# if defined(__TURBOC__) || defined(__BORLANDC__) -# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) - /* Allow compilation with ANSI keywords only enabled */ - void _Cdecl farfree( void *block ); - void *_Cdecl farmalloc( unsigned long nbytes ); -# else -# include -# endif -# else /* MSC or DJGPP */ -# include -# endif -# endif -#endif - -#ifdef AMIGA -# define OS_CODE 1 -#endif - -#if defined(VAXC) || defined(VMS) -# define OS_CODE 2 -# define F_OPEN(name, mode) \ - fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") -#endif - -#ifdef __370__ -# if __TARGET_LIB__ < 0x20000000 -# define OS_CODE 4 -# elif __TARGET_LIB__ < 0x40000000 -# define OS_CODE 11 -# else -# define OS_CODE 8 -# endif -#endif - -#if defined(ATARI) || defined(atarist) -# define OS_CODE 5 -#endif - -#ifdef OS2 -# define OS_CODE 6 -# if defined(M_I86) && !defined(Z_SOLO) -# include -# endif -#endif - -#if defined(MACOS) || defined(TARGET_OS_MAC) -# define OS_CODE 7 -# ifndef Z_SOLO -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ -# else -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -# endif -# endif -#endif - -#ifdef __acorn -# define OS_CODE 13 -#endif - -#if defined(WIN32) && !defined(__CYGWIN__) -# define OS_CODE 10 -#endif - -#ifdef _BEOS_ -# define OS_CODE 16 -#endif - -#ifdef __TOS_OS400__ -# define OS_CODE 18 -#endif - -#ifdef __APPLE__ -# define OS_CODE 19 -#endif - -#if defined(_BEOS_) || defined(RISCOS) -# define fdopen(fd,mode) NULL /* No fdopen() */ -#endif - -#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX -# if defined(_WIN32_WCE) -# define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif -# else -# define fdopen(fd,type) _fdopen(fd,type) -# endif -#endif - -#if defined(__BORLANDC__) && !defined(MSDOS) - #pragma warn -8004 - #pragma warn -8008 - #pragma warn -8066 -#endif - -/* provide prototypes for these when building zlib without LFS */ -#if !defined(_WIN32) && \ - (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); -#endif - - /* common defaults */ - -#ifndef OS_CODE -# define OS_CODE 3 /* assume Unix */ -#endif - -#ifndef F_OPEN -# define F_OPEN(name, mode) fopen((name), (mode)) -#endif - - /* functions */ - -#if defined(pyr) || defined(Z_SOLO) -# define NO_MEMCPY -#endif -#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) - /* Use our own functions for small and medium model with MSC <= 5.0. - * You may have to use the same strategy for Borland C (untested). - * The __SC__ check is for Symantec. - */ -# define NO_MEMCPY -#endif -#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) -# define HAVE_MEMCPY -#endif -#ifdef HAVE_MEMCPY -# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ -# define zmemcpy _fmemcpy -# define zmemcmp _fmemcmp -# define zmemzero(dest, len) _fmemset(dest, 0, len) -# else -# define zmemcpy memcpy -# define zmemcmp memcmp -# define zmemzero(dest, len) memset(dest, 0, len) -# endif -#else - void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); - int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); - void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len)); -#endif - -/* Diagnostic functions */ -#ifdef ZLIB_DEBUG -# include - extern int ZLIB_INTERNAL z_verbose; - extern void ZLIB_INTERNAL z_error OF((char *m)); -# define Assert(cond,msg) {if(!(cond)) z_error(msg);} -# define Trace(x) {if (z_verbose>=0) fprintf x ;} -# define Tracev(x) {if (z_verbose>0) fprintf x ;} -# define Tracevv(x) {if (z_verbose>1) fprintf x ;} -# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} -# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} -#else -# define Assert(cond,msg) -# define Trace(x) -# define Tracev(x) -# define Tracevv(x) -# define Tracec(c,x) -# define Tracecv(c,x) -#endif - -#ifndef Z_SOLO - voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items, - unsigned size)); - void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr)); -#endif - -#define ZALLOC(strm, items, size) \ - (*((strm)->zalloc))((strm)->opaque, (items), (size)) -#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) -#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} - -/* Reverse the bytes in a 32-bit value */ -#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ - (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) - -#endif /* ZUTIL_H */ diff --git a/Source/Core/WinUpdater/WinUpdater.vcxproj b/Source/Core/WinUpdater/WinUpdater.vcxproj index 08f4fe6f2e..cd523bb017 100644 --- a/Source/Core/WinUpdater/WinUpdater.vcxproj +++ b/Source/Core/WinUpdater/WinUpdater.vcxproj @@ -42,8 +42,8 @@ {bdb6578b-0691-4e80-a46c-df21639fd3b8} - - {ff213b23-2c26-4214-9f88-85271e557e87} + + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index 9e08b233a9..b7921fdfd3 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -59,7 +59,7 @@ $(ExternalsDir)Vulkan\include;%(AdditionalIncludeDirectories) $(ExternalsDir)WIL\include;%(AdditionalIncludeDirectories) $(ExternalsDir)xxhash;%(AdditionalIncludeDirectories) - $(ExternalsDir)zlib;%(AdditionalIncludeDirectories) + $(ExternalsDir)zlib-ng;%(AdditionalIncludeDirectories) $(ExternalsDir)zstd\lib;%(AdditionalIncludeDirectories) TurnOffAllWarnings diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index 72f86ec59e..bc77304c19 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -31,7 +31,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\Externals\libpng\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xxhash", "..\Externals\xxhash\xxhash.vcxproj", "{677EA016-1182-440C-9345-DC88D1E98C0C}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\Externals\zlib\zlib.vcxproj", "{FF213B23-2C26-4214-9F88-85271E557E87}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib-ng", "..\Externals\zlib-ng\zlib-ng.vcxproj", "{F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\Externals\soundtouch\SoundTouch.vcxproj", "{EC082900-B4D8-42E9-9663-77F02F6936AE}" EndProject @@ -193,14 +193,14 @@ Global {677EA016-1182-440C-9345-DC88D1E98C0C}.Release|ARM64.Build.0 = Release|ARM64 {677EA016-1182-440C-9345-DC88D1E98C0C}.Release|x64.ActiveCfg = Release|x64 {677EA016-1182-440C-9345-DC88D1E98C0C}.Release|x64.Build.0 = Release|x64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Debug|ARM64.Build.0 = Debug|ARM64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Debug|x64.ActiveCfg = Debug|x64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Debug|x64.Build.0 = Debug|x64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Release|ARM64.ActiveCfg = Release|ARM64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Release|ARM64.Build.0 = Release|ARM64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Release|x64.ActiveCfg = Release|x64 - {FF213B23-2C26-4214-9F88-85271E557E87}.Release|x64.Build.0 = Release|x64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Debug|ARM64.Build.0 = Debug|ARM64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Debug|x64.ActiveCfg = Debug|x64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Debug|x64.Build.0 = Debug|x64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Release|ARM64.ActiveCfg = Release|ARM64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Release|ARM64.Build.0 = Release|ARM64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Release|x64.ActiveCfg = Release|x64 + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}.Release|x64.Build.0 = Release|x64 {EC082900-B4D8-42E9-9663-77F02F6936AE}.Debug|ARM64.ActiveCfg = Debug|ARM64 {EC082900-B4D8-42E9-9663-77F02F6936AE}.Debug|ARM64.Build.0 = Debug|ARM64 {EC082900-B4D8-42E9-9663-77F02F6936AE}.Debug|x64.ActiveCfg = Debug|x64 @@ -419,7 +419,7 @@ Global {31643FDB-1BB8-4965-9DE7-000FC88D35AE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {677EA016-1182-440C-9345-DC88D1E98C0C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} - {FF213B23-2C26-4214-9F88-85271E557E87} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {EC082900-B4D8-42E9-9663-77F02F6936AE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {BDB6578B-0691-4E80-A46C-DF21639FD3B8} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {93D73454-2512-424E-9CDA-4BB357FE13DD} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} From b2f84567105fb1a42c076e6e0ebbbda563dd8f43 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 23 Jul 2022 22:11:12 -0700 Subject: [PATCH 457/659] msbuild: set C standard to C17 not required but it seems nice --- Source/VSProps/Base.props | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index b7921fdfd3..03c03e908f 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -104,6 +104,8 @@ false true true + + stdc17 stdcpplatest From 4d27022d0ec2bc45b39f7c10fce77c02467e3448 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 15 Jul 2022 20:31:44 +0200 Subject: [PATCH 458/659] Add hotkey for centering mouse in render window. --- Source/Core/Core/HotkeyManager.cpp | 1 + Source/Core/Core/HotkeyManager.h | 1 + Source/Core/DolphinQt/HotkeyScheduler.cpp | 3 +++ .../ControllerInterface/ControllerInterface.cpp | 10 ++++++++++ .../ControllerInterface/ControllerInterface.h | 6 ++++++ 5 files changed, 21 insertions(+) diff --git a/Source/Core/Core/HotkeyManager.cpp b/Source/Core/Core/HotkeyManager.cpp index 02c0191256..b7c5c161c2 100644 --- a/Source/Core/Core/HotkeyManager.cpp +++ b/Source/Core/Core/HotkeyManager.cpp @@ -35,6 +35,7 @@ constexpr std::array s_hotkey_labels{{ _trans("Take Screenshot"), _trans("Exit"), _trans("Unlock Cursor"), + _trans("Center Mouse"), _trans("Activate NetPlay Chat"), _trans("Control NetPlay Golf Mode"), diff --git a/Source/Core/Core/HotkeyManager.h b/Source/Core/Core/HotkeyManager.h index b214c95a66..b58f9c2828 100644 --- a/Source/Core/Core/HotkeyManager.h +++ b/Source/Core/Core/HotkeyManager.h @@ -29,6 +29,7 @@ enum Hotkey HK_SCREENSHOT, HK_EXIT, HK_UNLOCK_CURSOR, + HK_CENTER_MOUSE, HK_ACTIVATE_CHAT, HK_REQUEST_GOLF_CONTROL, diff --git a/Source/Core/DolphinQt/HotkeyScheduler.cpp b/Source/Core/DolphinQt/HotkeyScheduler.cpp index 52fd1ac00a..6d7c91a6ee 100644 --- a/Source/Core/DolphinQt/HotkeyScheduler.cpp +++ b/Source/Core/DolphinQt/HotkeyScheduler.cpp @@ -233,6 +233,9 @@ void HotkeyScheduler::Run() if (IsHotkey(HK_UNLOCK_CURSOR)) emit UnlockCursor(); + if (IsHotkey(HK_CENTER_MOUSE, true)) + g_controller_interface.SetMouseCenteringRequested(true); + auto& settings = Settings::Instance(); // Toggle Chat diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp index 1c4dc71da8..442e5502fa 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp @@ -421,6 +421,16 @@ Common::Vec2 ControllerInterface::GetWindowInputScale() const return {1 / ar, 1.f}; } +void ControllerInterface::SetMouseCenteringRequested(bool center) +{ + m_requested_mouse_centering = center; +} + +bool ControllerInterface::IsMouseCenteringRequested() const +{ + return m_requested_mouse_centering.load(); +} + // Register a callback to be called when a device is added or removed (as from the input backends' // hotplug thread), or when devices are refreshed // Returns a handle for later removing the callback. diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h index 2f43cacc42..3a0276de41 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h @@ -106,6 +106,11 @@ public: // Inputs based on window coordinates should be multiplied by this. Common::Vec2 GetWindowInputScale() const; + // Request that the mouse cursor should be centered in the render window at the next opportunity. + void SetMouseCenteringRequested(bool center); + + bool IsMouseCenteringRequested() const; + HotplugCallbackHandle RegisterDevicesChangedCallback(std::function callback); void UnregisterDevicesChangedCallback(const HotplugCallbackHandle& handle); void InvokeDevicesChangedCallbacks() const; @@ -127,6 +132,7 @@ private: std::atomic m_populating_devices_counter; WindowSystemInfo m_wsi; std::atomic m_aspect_ratio_adjustment = 1; + std::atomic m_requested_mouse_centering = false; }; namespace ciface From d57d04bb047047bf58849a1a37703ce9d218e39a Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 15 Jul 2022 21:32:19 +0200 Subject: [PATCH 459/659] DInput: Handle mouse centering hotkey. --- .../DInput/DInputKeyboardMouse.cpp | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp index 3fe850715c..551afde423 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp @@ -6,7 +6,9 @@ #include #include "Common/Logging/Log.h" + #include "Core/Core.h" +#include "Core/Host.h" #include "InputCommon/ControllerInterface/ControllerInterface.h" #include "InputCommon/ControllerInterface/DInput/DInput.h" @@ -168,13 +170,6 @@ KeyboardMouse::KeyboardMouse(const LPDIRECTINPUTDEVICE8 kb_device, void KeyboardMouse::UpdateCursorInput() { - POINT point = {}; - GetCursorPos(&point); - - // Get the cursor position relative to the upper left corner of the current window - // (separate or render to main) - ScreenToClient(s_hwnd, &point); - // Get the size of the current window (in my case Rect.top and Rect.left was zero). RECT rect; GetClientRect(s_hwnd, &rect); @@ -183,6 +178,26 @@ void KeyboardMouse::UpdateCursorInput() const auto win_width = std::max(rect.right - rect.left, 1l); const auto win_height = std::max(rect.bottom - rect.top, 1l); + POINT point = {}; + if (g_controller_interface.IsMouseCenteringRequested() && Host_RendererHasFocus()) + { + point.x = win_width / 2; + point.y = win_height / 2; + + POINT screen_point = point; + ClientToScreen(s_hwnd, &screen_point); + SetCursorPos(screen_point.x, screen_point.y); + g_controller_interface.SetMouseCenteringRequested(false); + } + else + { + GetCursorPos(&point); + + // Get the cursor position relative to the upper left corner of the current window + // (separate or render to main) + ScreenToClient(s_hwnd, &point); + } + const auto window_scale = g_controller_interface.GetWindowInputScale(); // Convert the cursor position to a range from -1 to 1. From e0870166efa34648eedb5d3e5542c64604741909 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 15 Jul 2022 21:48:46 +0200 Subject: [PATCH 460/659] XInput2: Handle mouse centering hotkey. --- .../ControllerInterface/Xlib/XInput2.cpp | 50 +++++++++++++------ .../ControllerInterface/Xlib/XInput2.h | 2 +- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp index 1f8e107987..0c5f5ffb01 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.cpp @@ -15,6 +15,8 @@ #include "Common/StringUtil.h" +#include "Core/Host.h" + // This is an input plugin using the XInput 2.0 extension to the X11 protocol, // loosely based on the old XLib plugin. (Has nothing to do with the XInput // API on Windows.) @@ -209,30 +211,44 @@ KeyboardMouse::~KeyboardMouse() } // Update the mouse cursor controls -void KeyboardMouse::UpdateCursor() +void KeyboardMouse::UpdateCursor(bool should_center_mouse) { double root_x, root_y, win_x, win_y; Window root, child; - // unused-- we're not interested in button presses here, as those are - // updated using events - XIButtonState button_state; - XIModifierState mods; - XIGroupState group; - - XIQueryPointer(m_display, pointer_deviceid, m_window, &root, &child, &root_x, &root_y, &win_x, - &win_y, &button_state, &mods, &group); - - free(button_state.mask); - XWindowAttributes win_attribs; XGetWindowAttributes(m_display, m_window, &win_attribs); + const auto win_width = std::max(win_attribs.width, 1); + const auto win_height = std::max(win_attribs.height, 1); + + if (should_center_mouse) + { + win_x = win_width / 2; + win_y = win_height / 2; + + XIWarpPointer(m_display, pointer_deviceid, None, m_window, 0.0, 0.0, 0, 0, win_x, win_y); + + g_controller_interface.SetMouseCenteringRequested(false); + } + else + { + // unused-- we're not interested in button presses here, as those are + // updated using events + XIButtonState button_state; + XIModifierState mods; + XIGroupState group; + + XIQueryPointer(m_display, pointer_deviceid, m_window, &root, &child, &root_x, &root_y, &win_x, + &win_y, &button_state, &mods, &group); + + free(button_state.mask); + } const auto window_scale = g_controller_interface.GetWindowInputScale(); // the mouse position as a range from -1 to 1 - m_state.cursor.x = (win_x / std::max(win_attribs.width, 1) * 2 - 1) * window_scale.x; - m_state.cursor.y = (win_y / std::max(win_attribs.height, 1) * 2 - 1) * window_scale.y; + m_state.cursor.x = (win_x / win_width * 2 - 1) * window_scale.x; + m_state.cursor.y = (win_y / win_height * 2 - 1) * window_scale.y; } void KeyboardMouse::UpdateInput() @@ -318,8 +334,10 @@ void KeyboardMouse::UpdateInput() m_state.axis.y /= MOUSE_AXIS_SMOOTHING + 1.0f; // Get the absolute position of the mouse pointer - if (mouse_moved) - UpdateCursor(); + const bool should_center_mouse = + g_controller_interface.IsMouseCenteringRequested() && Host_RendererHasFocus(); + if (mouse_moved || should_center_mouse) + UpdateCursor(should_center_mouse); // KeyRelease and FocusOut events are sometimes not received. // Cycling Alt-Tab and landing on the same window results in a stuck "Alt" key. diff --git a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h index 482bc37830..b07f6325c7 100644 --- a/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h +++ b/Source/Core/InputCommon/ControllerInterface/Xlib/XInput2.h @@ -108,7 +108,7 @@ private: private: void SelectEventsForDevice(XIEventMask* mask, int deviceid); - void UpdateCursor(); + void UpdateCursor(bool should_center_mouse); public: void UpdateInput() override; From d14bd10cd74ecfb9777e19dde842fe64d7681605 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 21 Jul 2022 00:15:00 +0200 Subject: [PATCH 461/659] Quartz: Handle mouse centering hotkey. Co-authored-by: Dentomologist --- .../Quartz/QuartzKeyboardAndMouse.mm | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm index 6b1790149b..b8ae0219be 100644 --- a/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm +++ b/Source/Core/InputCommon/ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm @@ -8,6 +8,8 @@ #include #include +#include "Core/Host.h" + #include "InputCommon/ControllerInterface/ControllerInterface.h" namespace ciface::Quartz @@ -192,16 +194,36 @@ void KeyboardAndMouse::UpdateInput() CFRelease(windowDescriptions); CFRelease(windowArray); - CGEventRef event = CGEventCreate(nil); - CGPoint loc = CGEventGetLocation(event); - CFRelease(event); + const double window_width = std::max(bounds.size.width, 1.0); + const double window_height = std::max(bounds.size.height, 1.0); - const auto window_scale = g_controller_interface.GetWindowInputScale(); + if (g_controller_interface.IsMouseCenteringRequested() && Host_RendererHasFocus()) + { + m_cursor.x = 0; + m_cursor.y = 0; - loc.x -= bounds.origin.x; - loc.y -= bounds.origin.y; - m_cursor.x = (loc.x / std::max(bounds.size.width, 1.0) * 2 - 1.0) * window_scale.x; - m_cursor.y = (loc.y / std::max(bounds.size.height, 1.0) * 2 - 1.0) * window_scale.y; + const CGPoint window_center_global_coordinates = + CGPointMake(bounds.origin.x + window_width / 2.0, bounds.origin.y + window_height / 2.0); + CGWarpMouseCursorPosition(window_center_global_coordinates); + // Without this line there is a short but obvious delay after centering the cursor before it can + // be moved again + CGAssociateMouseAndMouseCursorPosition(true); + + g_controller_interface.SetMouseCenteringRequested(false); + } + else + { + CGEventRef event = CGEventCreate(nil); + CGPoint loc = CGEventGetLocation(event); + CFRelease(event); + + const auto window_scale = g_controller_interface.GetWindowInputScale(); + + loc.x -= bounds.origin.x; + loc.y -= bounds.origin.y; + m_cursor.x = (loc.x / window_width * 2 - 1.0) * window_scale.x; + m_cursor.y = (loc.y / window_height * 2 - 1.0) * window_scale.y; + } } std::string KeyboardAndMouse::GetName() const From 3ad2172162b47f2368ee54f7beb5295813eb5097 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 25 Jul 2022 10:55:01 +0200 Subject: [PATCH 462/659] Translation resources sync with Transifex --- Languages/po/ar.po | 654 ++++++++++++++++++------------- Languages/po/ca.po | 654 ++++++++++++++++++------------- Languages/po/cs.po | 654 ++++++++++++++++++------------- Languages/po/da.po | 654 ++++++++++++++++++------------- Languages/po/de.po | 654 ++++++++++++++++++------------- Languages/po/dolphin-emu.pot | 654 ++++++++++++++++++------------- Languages/po/el.po | 654 ++++++++++++++++++------------- Languages/po/en.po | 654 ++++++++++++++++++------------- Languages/po/es.po | 656 +++++++++++++++++-------------- Languages/po/fa.po | 654 ++++++++++++++++++------------- Languages/po/fr.po | 731 ++++++++++++++++++++--------------- Languages/po/hr.po | 654 ++++++++++++++++++------------- Languages/po/hu.po | 654 ++++++++++++++++++------------- Languages/po/it.po | 678 ++++++++++++++++++-------------- Languages/po/ja.po | 674 ++++++++++++++++++-------------- Languages/po/ko.po | 654 ++++++++++++++++++------------- Languages/po/ms.po | 654 ++++++++++++++++++------------- Languages/po/nb.po | 654 ++++++++++++++++++------------- Languages/po/nl.po | 656 +++++++++++++++++-------------- Languages/po/pl.po | 654 ++++++++++++++++++------------- Languages/po/pt.po | 654 ++++++++++++++++++------------- Languages/po/pt_BR.po | 664 +++++++++++++++++-------------- Languages/po/ro.po | 654 ++++++++++++++++++------------- Languages/po/ru.po | 654 ++++++++++++++++++------------- Languages/po/sr.po | 654 ++++++++++++++++++------------- Languages/po/sv.po | 654 ++++++++++++++++++------------- Languages/po/tr.po | 654 ++++++++++++++++++------------- Languages/po/zh_CN.po | 722 +++++++++++++++++++--------------- Languages/po/zh_TW.po | 654 ++++++++++++++++++------------- 29 files changed, 10989 insertions(+), 8180 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index 71c4cff950..afb94e3a9f 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -22,7 +22,7 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -34,7 +34,7 @@ msgstr "" "نظرًا لأن صور أقراص جيم كيوب تحتوي على القليل من بيانات التحقق ، فقد تكون " "هناك مشكلات يتعذر على دولفين اكتشافها." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -70,7 +70,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(%1 القرص)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! ليس" @@ -78,22 +78,28 @@ msgstr "! ليس" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "متغير المستخدم $" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -280,7 +286,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& و" @@ -667,19 +673,19 @@ msgstr "(ايقاف)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* ضرب" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ إضافة" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", فاصلة" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- طرح" @@ -694,7 +700,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ تقسيم" @@ -724,7 +730,7 @@ msgstr "16-bit عدد صحيح موقع" msgid "16-bit Unsigned Integer" msgstr "16-bit عدد صحيح غير موقع" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -798,7 +804,7 @@ msgstr "4 Bytes" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blocks)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -872,11 +878,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Native (5120x4224) for 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< أقل-من" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<لا شيء>" @@ -893,12 +899,12 @@ msgstr "" "

يتوفر إصدار جديد من دولفين !

دولفين %1 متاح للتنزيل. تقوم بتشغيل %2." "
هل ترغب في التحديث؟

ملاحظات الإصدار:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> أكثر-من" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "جلسة لعب الشبكة جارية بالفعل!" @@ -927,7 +933,7 @@ msgstr "القرص بالفعل على وشك أن يتم إدراجه." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "لا يمكن تحميل حالة الحفظ دون تحديد لعبة لتشغيلها" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -940,7 +946,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "لا يمكن تشغيل المزامنة إلا عند تشغيل لعبة وي." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1000,6 +1006,11 @@ msgstr "ترجمة بواسطة منصور العسيري" msgid "Accelerometer" msgstr "التسارع" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "ضبط" @@ -1151,8 +1162,8 @@ msgid "Add to watch" msgstr "إضافة للمشاهدة" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "أضف" @@ -1236,7 +1247,7 @@ msgstr "" "والتسبب في حدوث مشكلات. افعل ذلك على مسؤوليتك الخاصة. الرجاء عدم الإبلاغ عن " "الأخطاء التي تحدث مع السرعة الغير الافتراضية" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "منفذ جيم بوي ادفانس" @@ -1267,7 +1278,7 @@ msgstr "كل مزدوج" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1275,7 +1286,7 @@ msgid "All Files" msgstr "كل الملفات" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "(*) كل الملفات" @@ -1284,7 +1295,7 @@ msgstr "(*) كل الملفات" msgid "All Float" msgstr "كل تعويم" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "GC/Wii جميع ملفات" @@ -1293,8 +1304,8 @@ msgstr "GC/Wii جميع ملفات" msgid "All Hexadecimal" msgstr "كل سداسي عشري" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "جميع حالات الحفظ (*.sav *.s##);; كل الملفات (*)" @@ -1330,7 +1341,7 @@ msgstr "السماح بإعدادات المنطقة الغير متطابقة" msgid "Allow Usage Statistics Reporting" msgstr "السماح بالإبلاغ عن إحصائيات الاستخدام" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "SD السماح للكتابة على بطاقة" @@ -1463,7 +1474,7 @@ msgid "Aspect Ratio" msgstr "تناسب الأبعاد" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "تناسب الأبعاد" @@ -1544,6 +1555,10 @@ msgstr "إخفاء تلقائي" msgid "Auto-detect RSO modules?" msgstr "RSO الكشف التلقائي عن وحدات" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1556,7 +1571,7 @@ msgid "Auxiliary" msgstr "مساعدة" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1564,14 +1579,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "غير صحيحه. الدلفين سيخرج الآن BAT " -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1602,10 +1617,11 @@ msgid "Backend:" msgstr "الخلفية" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "خلفية الإدخال" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1687,15 +1703,15 @@ msgstr "Beta (مرة في الشهر)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binary SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binary SSL (read)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binary SSL (write)" @@ -1714,7 +1730,7 @@ msgstr "حجم الكتلة" msgid "Block Size:" msgstr "حجم الكتلة" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "حظر" @@ -1747,11 +1763,11 @@ msgstr "" msgid "Boot to Pause" msgstr "التمهيد لإيقاف مؤقت" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup file (*.bin);;All Files (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii keys file (*.bin);;All Files (*)" @@ -1759,7 +1775,7 @@ msgstr "BootMii keys file (*.bin);;All Files (*)" msgid "Borderless Fullscreen" msgstr "ملء الشاشة بلا حدود" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "اسفل" @@ -1790,19 +1806,27 @@ msgstr "تمت مصادفة نقطة توقف! إلغاء للخروج" msgid "Breakpoints" msgstr "نقاط التوقف" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "(TAP) محول النطاق العريض" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "(XLink Kai) محول النطاق العريض" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "(tapserver) محول النطاق العريض" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "خطأ محول النطاق العريض" @@ -1934,7 +1958,7 @@ msgstr "" msgid "Callstack" msgstr "Callstack" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "كاميرا 1" @@ -1952,8 +1976,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} لا يمكن العثور على ريموت وي من خلال مقبض الاتصال" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "لا يمكن بدء جلسة اللعب عبر الشبكة بينما لا تزال اللعبة قيد التشغيل! " @@ -2074,7 +2098,7 @@ msgstr "مدير الأسرار" msgid "Check NAND..." msgstr "NAND تحقق من" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "التحقق من وجود تغييرات قائمة الألعاب في الخلفية" @@ -2098,11 +2122,11 @@ msgstr "اختباري" msgid "China" msgstr "الصين" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "اختيار ملف لفتح" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "اختر ملفًا لفتحه أو إنشائه" @@ -2133,7 +2157,7 @@ msgid "Classic Controller" msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2209,7 +2233,7 @@ msgstr "مقارنة" msgid "Compile Shaders Before Starting" msgstr "تجميع التظليل قبل البدء" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "تجميع التظليل" @@ -2255,11 +2279,11 @@ msgstr "إعدادات وحدة تحكم" msgid "Configure Dolphin" msgstr "إعدادات دولفين" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "تكوين الإدخال" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "تكوين الإخراج" @@ -2268,8 +2292,8 @@ msgstr "تكوين الإخراج" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "تأكيد " @@ -2297,7 +2321,7 @@ msgstr "اتصال" msgid "Connect Balance Board" msgstr "ربط لوح الميزان" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "ربط لوحة مفاتيح يو إس بي" @@ -2345,7 +2369,7 @@ msgstr "الاتصال" msgid "Connection Type:" msgstr "نوع الاتصال" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "{0:08x} المحتوى تالف" @@ -2452,14 +2476,31 @@ msgstr "التقارب" msgid "Convergence:" msgstr "التقارب" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "تحويل" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "تحويل الملف" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "تحويل الملفات المحددة..." @@ -2578,7 +2619,7 @@ msgstr "" "تعذر تنزيل معلومات التحديث من نينتندو. يرجى التحقق من اتصالك بالإنترنت " "والمحاولة مرة أخرى." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2588,7 +2629,7 @@ msgstr "" "\n" "سيتم إيقاف وحدة التحكم التي تمت محاكاتها الآن." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2873,7 +2914,7 @@ msgstr "عشري" msgid "Decoding Quality:" msgstr "جودة فك التشفير:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "تخفيض" @@ -2894,11 +2935,11 @@ msgstr "تقليل سرعة المحاكاة" msgid "Decrease IR" msgstr "تقليل الأشعة تحت الحمراء" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "X تخفيض" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Y تخفيض" @@ -2918,7 +2959,7 @@ msgstr "الجهاز الافتراضي" msgid "Default Font" msgstr "الخط الافتراضي" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "صورة القرص الافتراضية" @@ -2997,7 +3038,7 @@ msgstr "وصف: " msgid "Detached" msgstr "منفصل" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "كشف" @@ -3043,7 +3084,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "تقوم بتعتيم الشاشة بعد خمس دقائق من الخمول ." @@ -3173,7 +3214,7 @@ msgstr "Distance of travel from neutral position." msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "هل تسمح لشركة دولفين بالإبلاغ عن معلومات لمطوري دولفين؟" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "هل تريد إضافة \"%1\" إلى قائمة مسارات الألعاب؟" @@ -3187,7 +3228,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "هل تريد إيقاف المحاكاة الحالية؟" @@ -3218,8 +3259,8 @@ msgstr "CSV توقيع دولفين ملف" msgid "Dolphin Signature File" msgstr "دولفين توقيع الملف" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Movies (*.dtm)" @@ -3258,7 +3299,7 @@ msgstr "محاكي دولفين مفتوح المصدر لجهاز جيم كيو msgid "Dolphin is too old for traversal server" msgstr "دولفين قديم جدا لجتياز الخادم " -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3266,7 +3307,7 @@ msgstr "" "يتعذر على دولفين التحقق من ملفات النموذجية بشكل صحيح ، نظرًا لعدم تفريغها من " "الأقراص الفعلية" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "دولفين غير قادر على التحقق من الأقراص غير المرخصة." @@ -3280,8 +3321,8 @@ msgstr "سيستخدم دولفين هذا للعناوين التي لا يمك msgid "Dolphin's cheat system is currently disabled." msgstr "تم تعطيل نظام الاسرار حاليا." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "نطاق" @@ -3304,7 +3345,7 @@ msgstr "تم ضغط صوره القرص." msgid "Double" msgstr "مزدوج" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3356,7 +3397,7 @@ msgstr "ثنائي النواة" msgid "Dual View" msgstr "عرض مزدوج" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "وهمي" @@ -3396,6 +3437,10 @@ msgstr "EFB التفريغ المستهدف" msgid "Dump Frames" msgstr "تفريغ الإطارات" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3404,7 +3449,7 @@ msgstr "" msgid "Dump Objects" msgstr "Dump Objects" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "مسار التفريغ" @@ -3446,11 +3491,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3460,16 +3505,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "خيارات التفريغ" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "تفريغ شهادات الأقران" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3502,7 +3547,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "الهولندية" @@ -3562,7 +3607,7 @@ msgstr "فعال" msgid "Effective priority" msgstr "الأولوية الفعالة" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "إكسابايت" @@ -3578,7 +3623,7 @@ msgstr "(EFB) مخزن مؤقت للإطار المضمن" msgid "Empty" msgstr "فارغة" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "المحاكي قيد التشغيل بالفعل" @@ -3668,11 +3713,11 @@ msgid "Enable Progressive Scan" msgstr "تمكين المسح التدريجي" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "تمكين الهزاز" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "تمكين شاشة التوقف" @@ -3801,7 +3846,7 @@ msgstr "لم يتم تهيئة الشبكة" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "الإنجليزية" @@ -3811,7 +3856,7 @@ msgstr "الإنجليزية" msgid "Enhancements" msgstr "تحسينات" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3833,6 +3878,10 @@ msgstr "أدخل عنوان الماك ادرس لمحول البرودباند msgid "Enter password" msgstr "أدخل كلمة المرور" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Enter the RSO module address:" @@ -3845,7 +3894,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3873,12 +3922,12 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3903,9 +3952,9 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "خطأ" @@ -4004,11 +4053,11 @@ msgstr "" "Error: Trying to access Windows-1252 fonts but they are not loaded. Games " "may not show fonts correctly, or crash." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4202,7 +4251,7 @@ msgid "Extracting Directory..." msgstr "استخراج الملف" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4231,7 +4280,7 @@ msgstr "فشل في إضافة هذه الجلسة إلى فهرس اللعب ع msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4243,16 +4292,16 @@ msgstr "Redump.org فشل الاتصال بـ" msgid "Failed to connect to server: %1" msgstr "%1 فشل الاتصال بالخادم" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "D3D فشل إنشاء سلسله مبادله" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "D3D12 فشل إنشاء سياق" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "D3D12 فشل إنشاء موارد عمومية" @@ -4274,7 +4323,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "فشل حذف الملف المحدد." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4349,7 +4398,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "فشل في التهيئة الأساسية" @@ -4360,8 +4409,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "فشل في تهيئة فئات العارض" @@ -4374,7 +4423,7 @@ msgstr "%1 :فشل تثبيت الحزمة" msgid "Failed to install this title to the NAND." msgstr "NAND فشل تثبيت هذا العنوان على" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4410,12 +4459,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' فشل في الفتح" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "{0} فشل في فتح جهاز بلوتوث" @@ -4443,7 +4492,7 @@ msgstr "" msgid "Failed to open file." msgstr "فشل فتح ملف" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "فشل في فتح الخادم" @@ -4621,7 +4670,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "مجال الرؤية" @@ -4778,7 +4827,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4826,7 +4875,7 @@ msgstr "" msgid "Format:" msgstr "تنسيق" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4920,7 +4969,7 @@ msgstr "" "\"https://wiki.dolphin-emu.org/index.php?title=Free_Look\">راجع هذه الصفحة." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "نظرة حرة" @@ -4935,7 +4984,7 @@ msgstr "نظرة حرة" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "الفرنسية" @@ -4975,7 +5024,7 @@ msgstr "وظيفة متصلين" msgid "Function calls" msgstr "استدعاءات الدالات" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "المهام" @@ -4995,7 +5044,7 @@ msgstr "جيم بوي أدفانس" msgid "GBA Port %1" msgstr "%1 جيم بوي أدفانس منفذ" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "إعدادات جيم بوي أدفانس" @@ -5019,7 +5068,7 @@ msgstr "" msgid "GC Port %1" msgstr "منفذ جيم كيوب %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI مجلد" @@ -5044,7 +5093,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -5058,7 +5107,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -5086,7 +5135,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5099,7 +5148,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5114,11 +5163,11 @@ msgstr "اللعبة" msgid "Game Boy Advance" msgstr "جيم بوي أدفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "(*.gba) جيم بوي ادفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5136,7 +5185,7 @@ msgstr "إعدادات اللعبة" msgid "Game Details" msgstr "تفاصيل اللعبة" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "مجلدات الألعاب" @@ -5230,7 +5279,7 @@ msgid "GameCube Memory Cards" msgstr "بطاقة الذاكرة جيم كيوب" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "بطاقات ذاكرة جيم كيوب (*.raw *.gcp)" @@ -5285,7 +5334,7 @@ msgstr "أسماء الرموز التي تم إنشاؤها من '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "الألمانية" @@ -5293,11 +5342,11 @@ msgstr "الألمانية" msgid "Germany" msgstr "ألمانيا" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "فشل الحصول على قائمة الأجهزة: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "غيغابايت" @@ -5492,7 +5541,7 @@ msgstr "تمكين سلطة إدخال المضيف" msgid "Host with NetPlay" msgstr "استضافة لعب عبر الشبكة" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "اسم المضيف" @@ -5524,7 +5573,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "أنا على دراية بالمخاطر وأريد الاستمرار" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "المعرف" @@ -5560,7 +5609,7 @@ msgid "IR" msgstr "الأشعة تحت الحمراء" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "حساسية الأشعة تحت الحمراء" @@ -5717,11 +5766,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "استيراد حفظ وي" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr " NAND استيراد النسخ الاحتياطي" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5751,7 +5800,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "زيادة" @@ -5772,15 +5821,15 @@ msgstr "زيادة سرعة المحاكاة" msgid "Increase IR" msgstr "زيادة الأشعة تحت الحمراء" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "X زيادة" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Y زيادة" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "تناوب تزايدي" @@ -5788,6 +5837,13 @@ msgstr "تناوب تزايدي" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5827,7 +5883,7 @@ msgstr "قوة الإدخال للتجاهل وإعادة تعيينها" msgid "Insert &nop" msgstr "Insert &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SD Card ادرج" @@ -6013,7 +6069,7 @@ msgstr "%1 عنوان الساعة غير صالح" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "الإيطالية" @@ -6105,7 +6161,7 @@ msgid "Japan" msgstr "اليابان" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "اليابانية" @@ -6143,7 +6199,7 @@ msgstr "لوحة المفاتيح" msgid "Keys" msgstr "مفاتيح" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "كيلوبايت" @@ -6156,7 +6212,7 @@ msgid "Korea" msgstr "كوريا" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "الكورية" @@ -6208,7 +6264,7 @@ msgstr "~40ms :وقت الإستجابة" msgid "Latency: ~80 ms" msgstr "~80ms :وقت الإستجابة" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6314,7 +6370,7 @@ msgstr "تحميل قائمة جيم كيوب الرئيسية " msgid "Load Last State" msgstr "تحميل الحالة الأخيرة" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "مسار التحميل" @@ -6573,7 +6629,7 @@ msgstr "أخذ عينات النسيج يدويا" msgid "Mapping" msgstr "تعيين" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Mask ROM" @@ -6594,7 +6650,7 @@ msgstr "%1 تم تغيير حجم المخزن المؤقت الأقصى إلى msgid "Maximum tilt angle." msgstr "أقصى زاوية الميل." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "قد يسبب تباطؤ في قائمة وي وبعض الألعاب." @@ -6611,7 +6667,7 @@ msgstr "ذاكرة" msgid "Memory Breakpoint" msgstr "نقطة توقف الذاكرة" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "بطاقة الذاكرة" @@ -6639,7 +6695,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6651,11 +6707,11 @@ msgstr "" "so it is recommended that you keep backups of both NANDs. Are you sure you " "want to continue?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "ميغابايت" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6665,7 +6721,7 @@ msgstr "ميكروفون" msgid "Misc" msgstr "متنوعة" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "إعدادات متنوعة" @@ -6707,7 +6763,7 @@ msgstr "" msgid "Modules found: %1" msgstr "%1 تم العثور على وحدات" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "احادي" @@ -6749,7 +6805,7 @@ msgstr "سيكون مؤشر الماوس مرئيًا دائمًا" msgid "Mouse Cursor will never be visible while a game is running." msgstr "لن يكون مؤشر الماوس مرئيًا أبدًا أثناء تشغيل اللعبة" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "نقل" @@ -6765,6 +6821,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "لا للكل" @@ -6795,8 +6856,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6862,7 +6923,7 @@ msgstr "Netplay has desynced. There is no way to recover from this." msgid "Network" msgstr "شبكة الاتصال" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "تنسيق تفريغ الشبكة" @@ -6998,11 +7059,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "لا توجد وظائف ممكنة متبقية. إعادة ضبط" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "لا توجد مشاكل." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7031,7 +7092,7 @@ msgstr "No undo.dtm found, aborting undo load state to prevent movie desyncs" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "لا شيء" @@ -7087,7 +7148,7 @@ msgid "Notice" msgstr "إشعار" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "خالية" @@ -7204,7 +7265,7 @@ msgstr "Riivolution XML فتح" msgid "Open Wii &Save Folder" msgstr "فتح مجلد حفظ وي" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "فتح مجلد التفريغ" @@ -7232,7 +7293,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "مشغل" @@ -7254,7 +7315,7 @@ msgstr "البرتقالي" msgid "Orbital" msgstr "Orbital" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7293,7 +7354,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7429,7 +7490,7 @@ msgstr "فيزيائي" msgid "Physical address space" msgstr "مساحة العنوان الفعلي" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "بيتابايت" @@ -7495,7 +7556,7 @@ msgstr "مؤشر" msgid "Port %1" msgstr "منفذ %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7598,7 +7659,7 @@ msgstr "خاصة و عامة" msgid "Problem" msgstr "المشكلة" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7606,7 +7667,7 @@ msgstr "" "تم العثور علي مشاكل ذات خطورة عالية. فان اللعبة علي الأرجح لا تعمل علي " "الإطلاق" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7614,7 +7675,7 @@ msgstr "" "تم العثور علي مشاكل ذات خطورة منخفضة. فإنها علي الأرجح لا تمنع اللعبة من " "التشغيل" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7644,7 +7705,7 @@ msgstr "عامة" msgid "Purge Game List Cache" msgstr "أزالة ذاكره التخزين المؤقت لقائمة الألعاب" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7673,7 +7734,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "مشكلة" @@ -7714,7 +7775,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "نطاق" @@ -7880,8 +7940,8 @@ msgstr "ذكرني لاحقا" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "إزالة" @@ -7943,7 +8003,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "طلب الانضمام إلى المجموعة" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7977,11 +8037,11 @@ msgstr "%1:%2 أعاده تعيين خادم الاجتياز إلى" msgid "Reset Traversal Settings" msgstr "أعاده تعيين إعدادات الاجتياز" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "إعادة تعيين القيم" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "إعادة تعيين طريقة العرض" @@ -7993,7 +8053,7 @@ msgstr "إعادة تعيين كافة اقتران ريموت وي المحفو msgid "Resource Pack Manager" msgstr "أدارة حزمة الموارد" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "مسار حزمة الموارد" @@ -8026,7 +8086,7 @@ msgstr "إصدار" msgid "Revision: %1" msgstr "%1 مراجعة" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8109,7 +8169,7 @@ msgstr "هزاز" msgid "Run &To Here" msgstr "Run &To Here" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "تشغيل جيم بوي أدفانس في خيوط مخصصة" @@ -8121,18 +8181,26 @@ msgstr "روسيا" msgid "SD Card" msgstr "SD Card" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD Card Image (*.raw);;All Files (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "مسار SD Card" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD Root:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8141,11 +8209,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL سياق" @@ -8219,7 +8287,7 @@ msgstr "حفظ الحالة القديمة" msgid "Save Preset" msgstr "حفظ الإعداد المسبق" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "حفظ ملف التسجيل باسم" @@ -8319,7 +8387,7 @@ msgstr "" "النظر في النسخ الاحتياطي للبيانات الحالية قبل الكتابة.\n" "الكتابة الآن؟" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Save in Same Directory as the ROM" @@ -8347,7 +8415,7 @@ msgstr "حفظ" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "لا يمكن إعادة تعيين اقتران ريموت وي المحفوظة إلا عند تشغيل لعبة وي." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "حفظ" @@ -8382,7 +8450,7 @@ msgstr "البحث عن عنوان" msgid "Search Current Object" msgstr "بحث في الكائن الحالي" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "البحث في المجلدات الفرعية" @@ -8424,11 +8492,11 @@ msgstr "القسم الذي يحتوي على جميع الإعدادات الم msgid "Section that contains most CPU and Hardware related settings." msgstr "القسم الذي يحتوي على معظم الإعدادات المتعلقة بالمعالج والعتاد" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "خيارات الأمان" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "حدد" @@ -8441,15 +8509,15 @@ msgstr "تحديد مسار التفريغ" msgid "Select Export Directory" msgstr "حدد ملف تصدير " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "حدد جيم بوي أدفانس BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "حدد قرص جيم بوي أدفانس" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "حدد مسار الحفظ جيم بوي أدفانس" @@ -8521,7 +8589,7 @@ msgstr "حفظ حالة 8" msgid "Select State Slot 9" msgstr "حفظ حالة 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "WFS حدد مسار" @@ -8537,17 +8605,21 @@ msgstr "اختر الملف" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "حدد ملف" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "اختر لعبة" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "SD Card حدد صورة" @@ -8571,7 +8643,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "RSO حدد عنوان وحدة" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "حدد ملف التسجيل للتشغيل" @@ -8579,11 +8651,11 @@ msgstr "حدد ملف التسجيل للتشغيل" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "(OTP/SEEPROM dump) حدد ملف المفاتيح" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "حدد حفظ الملف" @@ -8676,7 +8748,7 @@ msgstr "" msgid "Send" msgstr "إرسال" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "موضع الاستشعار" @@ -8745,7 +8817,7 @@ msgstr "تعيين عنوان نهاية الرمز" msgid "Set symbol size (%1):" msgstr "تعيين حجم الرمز (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8755,7 +8827,7 @@ msgstr "" "games.\n" "قد لا تعمل لجميع الألعاب." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "تحدد لغة نظام وي " @@ -9066,7 +9138,7 @@ msgid "Signed Integer" msgstr "عدد صحيح موقّع" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "الصينية المبسطة" @@ -9129,7 +9201,7 @@ msgstr "شريط التمرير" msgid "Slot A" msgstr "A فتحة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "A فتحة" @@ -9137,7 +9209,7 @@ msgstr "A فتحة" msgid "Slot B" msgstr "B فتحة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "B فتحة" @@ -9145,7 +9217,7 @@ msgstr "B فتحة" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Socket table" @@ -9155,11 +9227,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "لا يمكن قراءة بعض البيانات." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9180,7 +9252,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "رتب ترتيب أبجدي" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "الصوت" @@ -9194,7 +9266,7 @@ msgstr "اسبانيا" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "الأسبانية" @@ -9202,7 +9274,7 @@ msgstr "الأسبانية" msgid "Speaker Pan" msgstr "مكبر الصوت" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "مستوى الصوت" @@ -9227,7 +9299,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9292,8 +9364,8 @@ msgstr "Riivolution بدء مع تصحيحات" msgid "Started game" msgstr "بدأت اللعبة" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9348,7 +9420,7 @@ msgstr "خطوة ناجحة!" msgid "Stepping" msgstr "التنقل" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "استريو" @@ -9514,12 +9586,12 @@ msgstr "الدعم" msgid "Supported file formats" msgstr "تنسيقات الملفات المدعومة" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Supports SD and SDHC. Default size is 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "محيطي" @@ -9614,6 +9686,12 @@ msgstr "" "Synchronizes the GPU and CPU threads to help prevent random freezes in Dual " "core mode. (ON = Compatible, OFF = Fast)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "جارٍ مزامنة الرموز" @@ -9627,7 +9705,7 @@ msgid "Synchronizing save data..." msgstr "جارٍ مزامنة حفظ البيانات" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "لغة النظام" @@ -9670,7 +9748,7 @@ msgstr "لقطة للشاشة" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "اختبار" @@ -9727,7 +9805,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND تم اصلاح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9758,7 +9836,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9798,7 +9876,7 @@ msgstr "وحدة تحكم وي التي تمت محاكاتها محدثة با #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "عنوان ماك الذي تم إدخاله غير صالح" @@ -9810,11 +9888,11 @@ msgstr "The entered PID is invalid." msgid "The entered VID is invalid." msgstr "The entered VID is invalid." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "يحتوي التعبير على خطأ في بناء الجملة" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9844,7 +9922,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9855,21 +9933,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "نظام الملفات غير صالح أو لا يمكن قراءته." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "التنسيق الذي يتم حفظ صورة القرص به لا يخزن حجم صورة القرص" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "معرف اللعبة غير متناسق." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "معرف اللعبة قصير بشكل غير عادي." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9940,7 +10018,7 @@ msgstr "الملف الشخصي '1%' غير موجود" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9954,7 +10032,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "The resulting decrypted AR code doesn't contain any lines." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9985,7 +10063,7 @@ msgstr "" "هل تريد حقًا تمكين عرض البرامج؟ إذا لم تكن متأكدًا ، فحدد \"لا\"." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9998,7 +10076,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "\"%1\" تحتوي بطاقة الذاكرة المستهدفة بالفعل على ملف" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "لم يتم توقيع التذكرة بشكل صحيح" @@ -10013,7 +10091,7 @@ msgid "" msgstr "" "تم إلغاء التحديث. يوصى بشدة بإنهائه لتجنب إصدارات برامج النظام غير المتسقة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "لا يحتوي قسم التحديث علي نظام التشغيل المستخدم من قبل هذا العنوان" @@ -10080,7 +10158,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10119,15 +10197,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "هذا لا يمكن التراجع عنه" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "تحتوي صوره القرص التصحيح هذه علي حجم صوره قرص البيع بالتجزئة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "هذه صورة القرص لها حجم غير عادي." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10137,7 +10215,7 @@ msgstr "" "تمت مضاهاتها أطول. لن تتمكن على الأرجح من مشاركة تسجيلات الإدخال واستخدام " "اللعب عبر الشبكة مع أي شخص يستخدم ملف تفريغ جيد." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10149,7 +10227,7 @@ msgstr "" "file might match the CRC32 of a good dump even though the files are not " "identical." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10157,7 +10235,7 @@ msgstr "" "صورة القرص هذه صغيرة جدًا وتفتقر إلى بعض البيانات. إذا كان برنامج التفريغ " "الخاص بك قد حفظ صورة القرص كأجزاء متعددة ، فستحتاج إلى دمجها في ملف واحد." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10173,7 +10251,7 @@ msgstr "لا يحتوي هذا الملف على نظام ملفات وي صال msgid "This file does not look like a BootMii NAND backup." msgstr "BootMii NAND لا يبدو هذا الملف نسخة احتياطية لـ " -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10183,7 +10261,7 @@ msgstr "" "مقاطع الفيديو المقدمة مسبقًا أو اللغات الإضافية أو أوضاع اللعبة بالكامل. هذه " "المشكلة بشكل عام موجودة فقط في نسخ غير قانونية من الألعاب." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10193,17 +10271,17 @@ msgstr "" "برامج التشغيل الخاصة بها لا تدعمها. ونتيجة لذلك سوف تواجه الخلل أو يتجمد " "أثناء تشغيل هذه اللعبة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "هذا تفريغ سيء" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "هذا تفريغ سيء. هذا لا يعني بالضرورة أن اللعبة لن تعمل بشكل صحيح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10211,7 +10289,7 @@ msgstr "" "Redump.org هذا تفريغ جيد وفقًا لموقع\n" "لكن دولفين وجد مشاكل. قد يكون هذا خطأ في دولفين" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "هذا تفريغ جيد" @@ -10239,12 +10317,12 @@ msgstr "يجب عدم استخدام هذا البرنامج لتشغيل الأ msgid "This title cannot be booted." msgstr "لا يمكن تشغيل هذا العنوان." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "تم تعيين هذا العنوان لاستخدام نظام تشغيل غير صالح." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "تم تعيين هذا العنوان لاستخدام مفتاح عام غير صالح" @@ -10306,7 +10384,7 @@ msgstr "المواضيع" msgid "Threshold" msgstr "بداية" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "تيرابايت" @@ -10423,7 +10501,7 @@ msgstr "Tokenizing فشل" msgid "Toolbar" msgstr "شريط الأدوات" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "اعلى" @@ -10471,7 +10549,7 @@ msgid "Touch" msgstr "لمس" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "الصينية التقليدية" @@ -10496,7 +10574,7 @@ msgstr "" "Trueيحاول ترجمة الفروع في وقت مبكر ، وتحسين الأداء في معظم الحالات. " "الافتراضيات إلى" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10511,8 +10589,8 @@ msgstr "أزرار الكتف" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "اكتب" @@ -10532,7 +10610,7 @@ msgstr "غير معروف" msgid "USA" msgstr "امريكا" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10751,7 +10829,7 @@ msgstr "غير موقع 8" msgid "Unsigned Integer" msgstr "عدد صحيح غير موقعة" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10823,6 +10901,10 @@ msgstr "ريموت وي وضع عمودي" msgid "Usage Statistics Reporting Settings" msgstr "إعدادات تقارير إحصائيات الاستخدام " +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "استخدم قاعدة بيانات مدمجة لأسماء الألعاب" @@ -10835,7 +10917,7 @@ msgstr "استخدم نمط المستخدم المخصص" msgid "Use Lossless Codec (FFV1)" msgstr "Use Lossless Codec (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "(EuRGB60) PAL60 استخدام وضع " @@ -10908,11 +10990,11 @@ msgstr "واجهة المستخدم" msgid "User Style:" msgstr "نمط المستخدم" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "متغيرات المستخدم" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11001,7 +11083,7 @@ msgstr "التحقق" msgid "Verify Integrity" msgstr "التحقق من التكامل" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "التحقق من الشهادات" @@ -11132,7 +11214,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (الوضع الحصري)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "مسار WFS" @@ -11273,7 +11355,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "الاجهزة المسموح لها المرور خلال منفذ يو إس بي " @@ -11293,7 +11375,7 @@ msgstr "وي" msgid "Wii Menu" msgstr "قائمة وي" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND Root" @@ -11319,7 +11401,7 @@ msgstr "أزرار ريموت وي" msgid "Wii Remote Orientation" msgstr "اتجاه ريموت وي" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "إعدادات ريموت وي" @@ -11441,7 +11523,7 @@ msgstr "X" msgid "XF register " msgstr "XF تسجيل" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11475,6 +11557,20 @@ msgstr "نعم" msgid "Yes to &All" msgstr "نعم للكل" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11578,7 +11674,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] and [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -11710,7 +11806,7 @@ msgstr "غير محاذي" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11747,7 +11843,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "{0} لم يتم نقل دليل إلى الأصل" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| أو" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 48823622f4..797935e9b8 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -57,7 +57,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disc %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! No" @@ -65,22 +65,28 @@ msgstr "! No" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -259,7 +265,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -648,19 +654,19 @@ msgstr "(Deshabilitat)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -675,7 +681,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -705,7 +711,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -779,7 +785,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blocs)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -853,11 +859,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Natiu (5120x4224) per 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Menys que" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr " " @@ -872,12 +878,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Més gran que" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Ja hi ha una sessió NetPlay en curs!" @@ -899,7 +905,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -910,7 +916,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -958,6 +964,11 @@ msgstr "Sobre Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precisió:" @@ -1109,8 +1120,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Afegir..." @@ -1181,7 +1192,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1212,7 +1223,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1220,7 +1231,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Tots els fitxers (*)" @@ -1229,7 +1240,7 @@ msgstr "Tots els fitxers (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1238,8 +1249,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1275,7 +1286,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1408,7 +1419,7 @@ msgid "Aspect Ratio" msgstr "Relació d'aspecte" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Relació d'aspecte:" @@ -1485,6 +1496,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1497,7 +1512,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1505,14 +1520,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1543,10 +1558,11 @@ msgid "Backend:" msgstr "Motor:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Suport d'entrada" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1628,15 +1644,15 @@ msgstr "Beta (una vegada al mes)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1655,7 +1671,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1686,11 +1702,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1698,7 +1714,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Abaix" @@ -1729,19 +1745,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1873,7 +1897,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1891,8 +1915,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2011,7 +2035,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2033,11 +2057,11 @@ msgstr "" msgid "China" msgstr "Xina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Trieu un arxiu per obrir" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2068,7 +2092,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2144,7 +2168,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2190,11 +2214,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2203,8 +2227,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2232,7 +2256,7 @@ msgstr "Connectar" msgid "Connect Balance Board" msgstr "Connectar la Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Connectar el teclat USB" @@ -2280,7 +2304,7 @@ msgstr "" msgid "Connection Type:" msgstr "Tipus de connexió:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2376,14 +2400,31 @@ msgstr "" msgid "Convergence:" msgstr "Convergència:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2492,14 +2533,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2767,7 +2808,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2788,11 +2829,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2812,7 +2853,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO per defecte:" @@ -2891,7 +2932,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detectar" @@ -2937,7 +2978,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3061,7 +3102,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3075,7 +3116,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Voleu aturar l'emulació actual?" @@ -3106,8 +3147,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin Pel·lícules TAS (*.dtm)" @@ -3144,13 +3185,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3164,8 +3205,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3188,7 +3229,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3240,7 +3281,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Maniquí" @@ -3280,6 +3321,10 @@ msgstr "Bolcat de destinació EFB" msgid "Dump Frames" msgstr "Bolcat de fotogrames" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3288,7 +3333,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3330,11 +3375,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3344,16 +3389,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3386,7 +3431,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holandès" @@ -3442,7 +3487,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3458,7 +3503,7 @@ msgstr "" msgid "Empty" msgstr "Buit" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "El fil de l'emulador ja s'està executant" @@ -3545,11 +3590,11 @@ msgid "Enable Progressive Scan" msgstr "Habilitar Exploració &Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Habilitar l'Estalvi de Pantalla" @@ -3671,7 +3716,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Anglès" @@ -3681,7 +3726,7 @@ msgstr "Anglès" msgid "Enhancements" msgstr "Millores" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3703,6 +3748,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3715,7 +3764,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3743,12 +3792,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3773,9 +3822,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -3872,11 +3921,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4070,7 +4119,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4097,7 +4146,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4109,16 +4158,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4139,7 +4188,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4209,7 +4258,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4220,8 +4269,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4234,7 +4283,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4268,12 +4317,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4299,7 +4348,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4468,7 +4517,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4622,7 +4671,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4670,7 +4719,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4760,7 +4809,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4775,7 +4824,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francès" @@ -4815,7 +4864,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4835,7 +4884,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4859,7 +4908,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4884,7 +4933,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4898,7 +4947,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4926,7 +4975,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4939,7 +4988,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4954,11 +5003,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4976,7 +5025,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5070,7 +5119,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5125,7 +5174,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Alemany" @@ -5133,11 +5182,11 @@ msgstr "Alemany" msgid "Germany" msgstr "Alemanya" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5328,7 +5377,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5360,7 +5409,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5396,7 +5445,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilitat d'IR:" @@ -5528,11 +5577,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5560,7 +5609,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5581,15 +5630,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5597,6 +5646,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5636,7 +5692,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Inserir la targeta SD" @@ -5823,7 +5879,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italià" @@ -5915,7 +5971,7 @@ msgid "Japan" msgstr "Japó" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonès" @@ -5953,7 +6009,7 @@ msgstr "Teclat" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5966,7 +6022,7 @@ msgid "Korea" msgstr "Corea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreà" @@ -6018,7 +6074,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6118,7 +6174,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6377,7 +6433,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6398,7 +6454,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6415,7 +6471,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Targeta de memòria" @@ -6443,7 +6499,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6451,11 +6507,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6465,7 +6521,7 @@ msgstr "Micròfon" msgid "Misc" msgstr "Miscel·làni" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Configuracions Miscel·lànies" @@ -6505,7 +6561,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6547,7 +6603,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6563,6 +6619,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6593,8 +6654,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6660,7 +6721,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6796,11 +6857,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6826,7 +6887,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Cap" @@ -6882,7 +6943,7 @@ msgid "Notice" msgstr "Avís" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6995,7 +7056,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7023,7 +7084,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7045,7 +7106,7 @@ msgstr "Taronja" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7084,7 +7145,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7220,7 +7281,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7286,7 +7347,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7387,19 +7448,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7427,7 +7488,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7454,7 +7515,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pregunta" @@ -7495,7 +7556,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Rang" @@ -7661,8 +7721,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Eliminar" @@ -7721,7 +7781,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7755,11 +7815,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7771,7 +7831,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7804,7 +7864,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7887,7 +7947,7 @@ msgstr "Vibració" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7899,18 +7959,26 @@ msgstr "Rússia" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7919,11 +7987,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7997,7 +8065,7 @@ msgstr "Desar l'Estat Més Antic" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8094,7 +8162,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8122,7 +8190,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8157,7 +8225,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Cercar en Subcarpetes" @@ -8199,11 +8267,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Seleccionar" @@ -8216,15 +8284,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8296,7 +8364,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8312,17 +8380,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8346,7 +8418,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8354,11 +8426,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccioni el fitxer de partida guardada" @@ -8451,7 +8523,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Posició Barra de Sensors" @@ -8520,14 +8592,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8834,7 +8906,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Xinès Simplificat" @@ -8895,7 +8967,7 @@ msgstr "" msgid "Slot A" msgstr "Ranura A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8903,7 +8975,7 @@ msgstr "" msgid "Slot B" msgstr "Ranura B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8911,7 +8983,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8921,11 +8993,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8942,7 +9014,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8956,7 +9028,7 @@ msgstr "Espanya" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Espanyol" @@ -8964,7 +9036,7 @@ msgstr "Espanyol" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volum de l'altaveu:" @@ -8989,7 +9061,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9054,8 +9126,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9110,7 +9182,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9276,12 +9348,12 @@ msgstr "Suport" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9374,6 +9446,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9387,7 +9465,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Idioma del sistema:" @@ -9430,7 +9508,7 @@ msgstr "Capturar pantalla" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Prova" @@ -9485,7 +9563,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9513,7 +9591,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9549,7 +9627,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9561,11 +9639,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9589,7 +9667,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9600,21 +9678,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9681,7 +9759,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9692,7 +9770,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "El codi AR desxifrat resultant no conté cap línia." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9718,7 +9796,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9731,7 +9809,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9745,7 +9823,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9807,7 +9885,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9844,22 +9922,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9867,13 +9945,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9887,37 +9965,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9941,12 +10019,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10003,7 +10081,7 @@ msgstr "" msgid "Threshold" msgstr "Llindar" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10120,7 +10198,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Superior" @@ -10168,7 +10246,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Xinès Tradicional" @@ -10191,7 +10269,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10206,8 +10284,8 @@ msgstr "Gatells" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tipus" @@ -10227,7 +10305,7 @@ msgstr "" msgid "USA" msgstr "EUA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10435,7 +10513,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10505,6 +10583,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10517,7 +10599,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10589,11 +10671,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10679,7 +10761,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10800,7 +10882,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10939,7 +11021,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10959,7 +11041,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Arrel de la NAND:" @@ -10985,7 +11067,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11105,7 +11187,7 @@ msgstr "X" msgid "XF register " msgstr "Registre XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11139,6 +11221,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11238,7 +11334,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11370,7 +11466,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11405,7 +11501,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 658925eafd..647e56af7c 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " "<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -60,22 +60,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -254,7 +260,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -641,19 +647,19 @@ msgstr "(vypnuto)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -668,7 +674,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -698,7 +704,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -772,7 +778,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -846,11 +852,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "8x původní (5120x4224) pro 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -865,12 +871,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -903,7 +909,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -951,6 +957,11 @@ msgstr "O Dolphinu" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Přesnost:" @@ -1102,8 +1113,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Přidat..." @@ -1174,7 +1185,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Port Advance Game" @@ -1205,7 +1216,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1224,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1231,8 +1242,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1268,7 +1279,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1401,7 +1412,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Poměr Stran:" @@ -1478,6 +1489,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1490,7 +1505,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1498,14 +1513,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT nesprávné. Dolphin bude nyní ukončen" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1536,10 +1551,11 @@ msgid "Backend:" msgstr "Podpůrná vrstva:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Zadní Vstup" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1621,15 +1637,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1648,7 +1664,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1679,11 +1695,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1691,7 +1707,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Celá obrazovka bez okrajů" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Dole" @@ -1722,19 +1738,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1866,7 +1890,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1884,8 +1908,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2004,7 +2028,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2026,11 +2050,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Zvolte soubor k otevření" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2061,7 +2085,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2137,7 +2161,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2183,11 +2207,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2196,8 +2220,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2225,7 +2249,7 @@ msgstr "Připojit" msgid "Connect Balance Board" msgstr "Připojit Rola-Bola" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Připojit USB Klávesnici" @@ -2273,7 +2297,7 @@ msgstr "" msgid "Connection Type:" msgstr "Typ připojení:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2369,14 +2393,31 @@ msgstr "" msgid "Convergence:" msgstr "Sblížení:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2485,14 +2526,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2760,7 +2801,7 @@ msgstr "Desetinné" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2781,11 +2822,11 @@ msgstr "Snížit rychlost emulace" msgid "Decrease IR" msgstr "Snížit vnitřní rozlišení" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2805,7 +2846,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Výchozí ISO:" @@ -2884,7 +2925,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Zjistit" @@ -2930,7 +2971,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Ztmaví obrazovku po pěti minutách nečinnosti." @@ -3054,7 +3095,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3068,7 +3109,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Chcete současnou emulaci zastavit?" @@ -3099,8 +3140,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Doplhin Filmy TAS (*.dtm)" @@ -3137,13 +3178,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3157,8 +3198,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3181,7 +3222,7 @@ msgstr "Komprimace obrazu disku dokončena." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3233,7 +3274,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Atrapa" @@ -3273,6 +3314,10 @@ msgstr "Vypsat Cíl EFB" msgid "Dump Frames" msgstr "Vypsat Snímky" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3281,7 +3326,7 @@ msgstr "" msgid "Dump Objects" msgstr "Vypsat objekty" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3323,11 +3368,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3337,16 +3382,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3379,7 +3424,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Nizozemština" @@ -3435,7 +3480,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3451,7 +3496,7 @@ msgstr "Vestavěná vyrovnávací paměť snímků (EFB)" msgid "Empty" msgstr "Prázdné" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Vlákno Emulace již běží" @@ -3538,11 +3583,11 @@ msgid "Enable Progressive Scan" msgstr "Povolit Progresivní Skenování" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Povolit Spořič Obrazovky" @@ -3668,7 +3713,7 @@ msgstr "Enet nebyl uaveden" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Angličtina" @@ -3678,7 +3723,7 @@ msgstr "Angličtina" msgid "Enhancements" msgstr "Vylepšení" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3700,6 +3745,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3712,7 +3761,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3740,12 +3789,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3770,9 +3819,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Chyba" @@ -3868,11 +3917,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4066,7 +4115,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4093,7 +4142,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4105,16 +4154,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4135,7 +4184,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4205,7 +4254,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4216,8 +4265,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4230,7 +4279,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4264,12 +4313,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4295,7 +4344,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4464,7 +4513,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4618,7 +4667,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4666,7 +4715,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4756,7 +4805,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4771,7 +4820,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francouzština" @@ -4811,7 +4860,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4831,7 +4880,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4855,7 +4904,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Složka GCI" @@ -4880,7 +4929,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4894,7 +4943,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4922,7 +4971,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4935,7 +4984,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4950,11 +4999,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartridže Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4972,7 +5021,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5066,7 +5115,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5121,7 +5170,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Němčina" @@ -5129,11 +5178,11 @@ msgstr "Němčina" msgid "Germany" msgstr "Německo" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5324,7 +5373,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5356,7 +5405,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5392,7 +5441,7 @@ msgid "IR" msgstr "Infrč." #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Citlivost Infračer.:" @@ -5524,11 +5573,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5556,7 +5605,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5577,15 +5626,15 @@ msgstr "Zvýšit rychlost emulace" msgid "Increase IR" msgstr "Zvýšit vnitřní rozlišení" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5593,6 +5642,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5632,7 +5688,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Vložit SD Kartu" @@ -5818,7 +5874,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italština" @@ -5910,7 +5966,7 @@ msgid "Japan" msgstr "Japonsko" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonština" @@ -5948,7 +6004,7 @@ msgstr "Klávesnice" msgid "Keys" msgstr "Klávesy" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5961,7 +6017,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korejština" @@ -6013,7 +6069,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6113,7 +6169,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6372,7 +6428,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6393,7 +6449,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Může způsobit zpomalování v nabídce Wii a u některých her." @@ -6410,7 +6466,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Paměťová karta" @@ -6438,7 +6494,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6446,11 +6502,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6460,7 +6516,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Ostatní" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Ostatní Nastavení" @@ -6500,7 +6556,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6542,7 +6598,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6558,6 +6614,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6588,8 +6649,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6657,7 +6718,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6793,11 +6854,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6824,7 +6885,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Žádné" @@ -6880,7 +6941,7 @@ msgid "Notice" msgstr "Upozornění" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6993,7 +7054,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7021,7 +7082,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7043,7 +7104,7 @@ msgstr "Oranžová" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7082,7 +7143,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7218,7 +7279,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7284,7 +7345,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7385,19 +7446,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7425,7 +7486,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7452,7 +7513,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Otázka" @@ -7493,7 +7554,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Rozsah" @@ -7659,8 +7719,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Odstranit" @@ -7719,7 +7779,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7753,11 +7813,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "Resetovat nastavení průchod" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7769,7 +7829,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7802,7 +7862,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7885,7 +7945,7 @@ msgstr "Vibrace" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7897,18 +7957,26 @@ msgstr "Rusko" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7917,11 +7985,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7995,7 +8063,7 @@ msgstr "Načíst nejstarší stav" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8092,7 +8160,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8120,7 +8188,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8155,7 +8223,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Hledat Podadresáře" @@ -8197,11 +8265,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Vybrat" @@ -8214,15 +8282,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8294,7 +8362,7 @@ msgstr "Vybrat stav na pozici 8" msgid "Select State Slot 9" msgstr "Vybrat stav na pozici 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8310,17 +8378,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8344,7 +8416,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8352,11 +8424,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vyberte soubor s uloženou hrou" @@ -8449,7 +8521,7 @@ msgstr "" msgid "Send" msgstr "Poslat" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Umístění Senzorové Tyče:" @@ -8518,7 +8590,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8527,7 +8599,7 @@ msgstr "" "Nastaví režim zobrazení Wii na 60Hz (480i) místo 50Hz (576i) pro hry PAL.\n" "Nemusí fungovat ve všech hrách." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Nastaví jazyk systému Wii" @@ -8834,7 +8906,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Zjednodušená čínština" @@ -8895,7 +8967,7 @@ msgstr "" msgid "Slot A" msgstr "Pozice A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8903,7 +8975,7 @@ msgstr "" msgid "Slot B" msgstr "Pozice B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8911,7 +8983,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8921,11 +8993,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8942,7 +9014,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8956,7 +9028,7 @@ msgstr "Španělsko" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Španělština" @@ -8964,7 +9036,7 @@ msgstr "Španělština" msgid "Speaker Pan" msgstr "Posun reproduktoru" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Hlasitost Reproduktoru:" @@ -8989,7 +9061,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9054,8 +9126,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9110,7 +9182,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9276,12 +9348,12 @@ msgstr "Podpora" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9374,6 +9446,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9387,7 +9465,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Jazyk Systému:" @@ -9430,7 +9508,7 @@ msgstr "Vytvořit Snímek Obrazovky" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -9485,7 +9563,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9513,7 +9591,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9549,7 +9627,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9561,11 +9639,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9589,7 +9667,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9600,21 +9678,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9681,7 +9759,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9692,7 +9770,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Výsledný rozšifrovaný kód AR neobsahuje žádné řádky." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9718,7 +9796,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9731,7 +9809,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9745,7 +9823,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9807,7 +9885,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9844,22 +9922,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9867,13 +9945,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9887,37 +9965,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9941,12 +10019,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10004,7 +10082,7 @@ msgstr "" msgid "Threshold" msgstr "Práh" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10121,7 +10199,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Nahoře" @@ -10169,7 +10247,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Tradiční Čínština" @@ -10192,7 +10270,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10207,8 +10285,8 @@ msgstr "Spínače" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Typ" @@ -10228,7 +10306,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10436,7 +10514,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10506,6 +10584,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Nastavení hlášení statistik o užívání" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10518,7 +10600,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Použít režim PAL60 (EuRGB60)" @@ -10590,11 +10672,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10680,7 +10762,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10801,7 +10883,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10940,7 +11022,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10960,7 +11042,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii Kořen NAND:" @@ -10986,7 +11068,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11106,7 +11188,7 @@ msgstr "X" msgid "XF register " msgstr "Registr XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11140,6 +11222,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11239,7 +11335,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11371,7 +11467,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11406,7 +11502,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/da.po b/Languages/po/da.po index 9a352be5d9..3eab4115cf 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -38,7 +38,7 @@ msgstr "" "Da GameCube diskimages har få verifikationsdata, kan der være problemer, som " "Dolphin ikke kan se." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -74,7 +74,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(Disk %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -82,22 +82,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -279,7 +285,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -666,19 +672,19 @@ msgstr "(fra)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -693,7 +699,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -723,7 +729,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -797,7 +803,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blokke)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -871,11 +877,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Oprindelig (5120x4224) for 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -890,12 +896,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -917,7 +923,7 @@ msgstr "En disk er allerede ved at blive sat ind" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -930,7 +936,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Sync kan kun udføres, når et Wii-spil kører." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -990,6 +996,11 @@ msgstr "Om Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Nøjagtighed:" @@ -1141,8 +1152,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Tilføj..." @@ -1213,7 +1224,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1244,7 +1255,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1252,7 +1263,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1261,7 +1272,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1270,8 +1281,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle gemte tilstande (*.sav *.s##);; All Files (*)" @@ -1307,7 +1318,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1440,7 +1451,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Formatforhold:" @@ -1517,6 +1528,10 @@ msgstr "Auto-skjul" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1529,7 +1544,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1537,14 +1552,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT forkert. Dolphin vil nu afslutte" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1575,10 +1590,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Baggrundsinput" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1660,15 +1676,15 @@ msgstr "Beta(en gang i måneden)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1687,7 +1703,7 @@ msgstr "Blokstørrelse" msgid "Block Size:" msgstr "Blokstørrelse:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blokering" @@ -1720,11 +1736,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup-fil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1732,7 +1748,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Kantløs Fuldskærm" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Bund" @@ -1763,19 +1779,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1907,7 +1931,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1925,8 +1949,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2045,7 +2069,7 @@ msgstr "Snydemanager" msgid "Check NAND..." msgstr "Tjek NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2067,11 +2091,11 @@ msgstr "Tjeksum" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Angiv en fil at åbne" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2102,7 +2126,7 @@ msgid "Classic Controller" msgstr "Klassisk kontroller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2178,7 +2202,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Kompilerer shaders" @@ -2224,11 +2248,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Konfigurer Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Konfigurer input" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Konfigurer output" @@ -2237,8 +2261,8 @@ msgstr "Konfigurer output" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekræft" @@ -2266,7 +2290,7 @@ msgstr "Tilslut" msgid "Connect Balance Board" msgstr "Forbind Balanceboard" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Forbind USB Tastatur" @@ -2314,7 +2338,7 @@ msgstr "" msgid "Connection Type:" msgstr "Forbindelsestype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2412,14 +2436,31 @@ msgstr "" msgid "Convergence:" msgstr "Konvergens:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2528,14 +2569,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2808,7 +2849,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2829,11 +2870,11 @@ msgstr "Sænk emulationshastighed" msgid "Decrease IR" msgstr "Formindst IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2853,7 +2894,7 @@ msgstr "Standard enhed" msgid "Default Font" msgstr "Standardskrifttype" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Standard ISO:" @@ -2932,7 +2973,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Opfang" @@ -2978,7 +3019,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Nedtoner lysstyrken efter 5 minutters inaktivitet." @@ -3102,7 +3143,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3116,7 +3157,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Ønsker du at stoppe den igangværende emulation?" @@ -3147,8 +3188,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-film (*.dtm)" @@ -3185,13 +3226,13 @@ msgstr "Dolphin er en gratis og åben source GameCube- og Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel til en gennemløbsserver" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3205,8 +3246,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphins snydesystem er slået fra." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3229,7 +3270,7 @@ msgstr "Komprimering af diskaftryk fuldført." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3281,7 +3322,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dukke" @@ -3321,6 +3362,10 @@ msgstr "Drop EFB Mål" msgid "Dump Frames" msgstr "Dump Billeder" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3329,7 +3374,7 @@ msgstr "" msgid "Dump Objects" msgstr "Dump Objekter" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dump sti:" @@ -3371,11 +3416,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3385,16 +3430,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3427,7 +3472,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Hollandsk" @@ -3483,7 +3528,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3499,7 +3544,7 @@ msgstr "Indlejret framebuffer (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emulatortråd kører i forvejen" @@ -3586,11 +3631,11 @@ msgid "Enable Progressive Scan" msgstr "Aktivér Progressiv Skanning" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Aktivér vibration" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Aktivér Pauseskærm" @@ -3719,7 +3764,7 @@ msgstr "Enet blev ikke initialiseret" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engelsk" @@ -3729,7 +3774,7 @@ msgstr "Engelsk" msgid "Enhancements" msgstr "Forbedringer" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3751,6 +3796,10 @@ msgstr "" msgid "Enter password" msgstr "Indtast kodeord" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3763,7 +3812,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3791,12 +3840,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3821,9 +3870,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fejl" @@ -3920,11 +3969,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Fejl fundet i {0} blokke i {1} partitionen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Fejl fundet i {0} ubrugte blokke i {1} partitionen." @@ -4118,7 +4167,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4145,7 +4194,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4157,16 +4206,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4187,7 +4236,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4257,7 +4306,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4268,8 +4317,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4282,7 +4331,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4316,12 +4365,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4347,7 +4396,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4516,7 +4565,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4670,7 +4719,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4718,7 +4767,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4808,7 +4857,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4823,7 +4872,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Fransk" @@ -4863,7 +4912,7 @@ msgstr "" msgid "Function calls" msgstr "Funktionskald" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4883,7 +4932,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4907,7 +4956,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI-mappe" @@ -4932,7 +4981,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4946,7 +4995,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4974,7 +5023,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4987,7 +5036,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5002,11 +5051,11 @@ msgstr "Spil" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-kassetter (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5024,7 +5073,7 @@ msgstr "Spilkonfiguration" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Spilmapper" @@ -5118,7 +5167,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5173,7 +5222,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Tysk" @@ -5181,11 +5230,11 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5376,7 +5425,7 @@ msgstr "Vært inputautoritet aktiveret" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5408,7 +5457,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5444,7 +5493,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR-sensitivitet:" @@ -5584,11 +5633,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importerer NAND-backup" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5616,7 +5665,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5637,15 +5686,15 @@ msgstr "Forøg emulationshastighed" msgid "Increase IR" msgstr "Forøg IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5653,6 +5702,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5692,7 +5748,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Indsæt SD-kort" @@ -5878,7 +5934,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiensk" @@ -5970,7 +6026,7 @@ msgid "Japan" msgstr "Japan" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japansk" @@ -6008,7 +6064,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Taster" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6021,7 +6077,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreansk" @@ -6073,7 +6129,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6173,7 +6229,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6432,7 +6488,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6453,7 +6509,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Kan sænke hastigheden i Wii-menuen og nogle spil." @@ -6470,7 +6526,7 @@ msgstr "Hukommelse" msgid "Memory Breakpoint" msgstr "Hukommelsesbreakpoint" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Hukommelseskort" @@ -6498,7 +6554,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6506,11 +6562,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6520,7 +6576,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Diverse" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Diverse indstillinger" @@ -6562,7 +6618,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6604,7 +6660,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6620,6 +6676,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6650,8 +6711,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6717,7 +6778,7 @@ msgstr "Netplay ude af sync. Denne situation kan ikke afhjælpes." msgid "Network" msgstr "Netværk " -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6853,11 +6914,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6885,7 +6946,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Ingen" @@ -6941,7 +7002,7 @@ msgid "Notice" msgstr "Bemærk" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -7054,7 +7115,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7082,7 +7143,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7104,7 +7165,7 @@ msgstr "Orange" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7143,7 +7204,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7279,7 +7340,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7345,7 +7406,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7446,19 +7507,19 @@ msgstr "" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7486,7 +7547,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7513,7 +7574,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Spørgsmål" @@ -7554,7 +7615,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Rækkevidde" @@ -7720,8 +7780,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Fjern" @@ -7780,7 +7840,7 @@ msgstr "Rapport: GCIFolder skriver til ikkeallokeret blok {0:#x}" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7814,11 +7874,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "Nulstil traversal-indstillinger" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7830,7 +7890,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7863,7 +7923,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7946,7 +8006,7 @@ msgstr "Vibration" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7958,18 +8018,26 @@ msgstr "Rusland" msgid "SD Card" msgstr "SD-kort" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD-kort sti:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7978,11 +8046,11 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -8056,7 +8124,7 @@ msgstr "Gem ældste tilstand" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8153,7 +8221,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8181,7 +8249,7 @@ msgstr "Gem..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8216,7 +8284,7 @@ msgstr "Søgeadresse" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Søg i undermapper" @@ -8258,11 +8326,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Vælg" @@ -8275,15 +8343,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8355,7 +8423,7 @@ msgstr "Vælg tilstand plads 8" msgid "Select State Slot 9" msgstr "Vælg tilstand plads 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8371,17 +8439,21 @@ msgstr "Vælg en mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Vælg en fil" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Vælg et spil" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8405,7 +8477,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8413,11 +8485,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Vælg savefilen" @@ -8510,7 +8582,7 @@ msgstr "" msgid "Send" msgstr "Send" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Sensorbarens position:" @@ -8579,7 +8651,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8589,7 +8661,7 @@ msgstr "" "(576i) for PAL-spil.\n" "Virker måske ikke med alle spil." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Indstiller Wii-systemets sprog." @@ -8896,7 +8968,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Simpel kinesisk" @@ -8957,7 +9029,7 @@ msgstr "" msgid "Slot A" msgstr "Plads A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Plads A:" @@ -8965,7 +9037,7 @@ msgstr "Plads A:" msgid "Slot B" msgstr "Plads B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Plads B:" @@ -8973,7 +9045,7 @@ msgstr "Plads B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8983,11 +9055,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9004,7 +9076,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -9018,7 +9090,7 @@ msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spansk" @@ -9026,7 +9098,7 @@ msgstr "Spansk" msgid "Speaker Pan" msgstr "Højttalerpanorering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Lydstyrke for højtaler" @@ -9051,7 +9123,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9116,8 +9188,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9172,7 +9244,7 @@ msgstr "Hop succes!" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9338,12 +9410,12 @@ msgstr "Support" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9436,6 +9508,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9449,7 +9527,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Systemsprog:" @@ -9492,7 +9570,7 @@ msgstr "Tag skærmbillede" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -9547,7 +9625,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9575,7 +9653,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9611,7 +9689,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9623,11 +9701,11 @@ msgstr "Indtastet PID er ugyldig" msgid "The entered VID is invalid." msgstr "Indtastet VID er ugyldig" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9651,7 +9729,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9662,21 +9740,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9743,7 +9821,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9754,7 +9832,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den resulterende dekrypterede AR-kode indeholder ikke nogen linjer." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9780,7 +9858,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9793,7 +9871,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9807,7 +9885,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9869,7 +9947,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9906,22 +9984,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "Kan ikke gøres om!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9929,13 +10007,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9949,37 +10027,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -10007,12 +10085,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10069,7 +10147,7 @@ msgstr "" msgid "Threshold" msgstr "Tærskel" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10186,7 +10264,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Top" @@ -10234,7 +10312,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Traditionel kinesisk" @@ -10257,7 +10335,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10272,8 +10350,8 @@ msgstr "Triggers" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Type" @@ -10293,7 +10371,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB-Gecko" @@ -10510,7 +10588,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10580,6 +10658,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Indstillinger for brugsstatistik" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10592,7 +10674,7 @@ msgstr "Anvend tilpasset brugerlayout" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Brug PAL60-tilstand (EURGB60)" @@ -10664,11 +10746,11 @@ msgstr "Brugergrænseflade" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10754,7 +10836,7 @@ msgstr "Verificer" msgid "Verify Integrity" msgstr "Verificer integritet" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10875,7 +10957,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11016,7 +11098,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -11036,7 +11118,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii-Menu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND-rod" @@ -11062,7 +11144,7 @@ msgstr "Wii Remote-knapper" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii Remote-indstillinger" @@ -11184,7 +11266,7 @@ msgstr "X" msgid "XF register " msgstr "XF-register" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11218,6 +11300,20 @@ msgstr "Ja" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11318,7 +11414,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11450,7 +11546,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11485,7 +11581,7 @@ msgstr "{0} af {1} blokke. Komprimeringsforhold {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/de.po b/Languages/po/de.po index b6b7a5e281..9b7161c274 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -44,7 +44,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -56,7 +56,7 @@ msgstr "" "Da GameCube-Disc-Abbilder nur wenige Überprüfungsdaten enthalten, könnten " "Probleme auftreten, die Dolphin nicht erkennen kann." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -93,7 +93,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(Disc %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Nicht" @@ -101,22 +101,28 @@ msgstr "! Nicht" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\" ist keine gültige GCM/ISO-Datei, oder kein GC/Wii-Image." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -303,7 +309,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Und" @@ -692,19 +698,19 @@ msgstr "(aus)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiplizieren" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Addieren" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Komma" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Subtrahieren" @@ -719,7 +725,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Dividieren" @@ -749,7 +755,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -823,7 +829,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 Blöcke)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -897,11 +903,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Nativ (5120x4224) für 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Kleiner als" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -919,12 +925,12 @@ msgstr "" "Download verfügbar. Deine Version ist %2.
Möchtest du updaten?" "

Release-Notizen:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Größer als" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Eine NetPlay-Sitzung läuft bereits!" @@ -954,7 +960,7 @@ msgstr "" "Ein Spielstand kann nicht geladen werden, wenn kein zu startendes Spiel " "angegeben wurde." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -969,7 +975,7 @@ msgstr "" "Eine Synchronisierung kann nur ausgelöst werden, wenn ein Wii-Spiel läuft." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -1031,6 +1037,11 @@ msgstr "Über Dolphin" msgid "Accelerometer" msgstr "Beschleunigungssensor" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Genauigkeit:" @@ -1198,8 +1209,8 @@ msgid "Add to watch" msgstr "Zur Überwachung hinzufügen" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Hinzufügen..." @@ -1291,7 +1302,7 @@ msgstr "" "Melde bitte keine Fehler, die mit Über- oder Untertaktung der emulierten CPU " "passieren." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1322,7 +1333,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1330,7 +1341,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Alle Dateien (*)" @@ -1339,7 +1350,7 @@ msgstr "Alle Dateien (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1348,8 +1359,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Speicherstände (*.sav *.s##);; Alle Dateien (*)" @@ -1385,7 +1396,7 @@ msgstr "Nicht übereinstimmende Regionseinstellungen zulassen" msgid "Allow Usage Statistics Reporting" msgstr "Berichterstattung für Nutzungsdaten erlauben" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Schreiben auf SD-Karte zulassen" @@ -1523,7 +1534,7 @@ msgid "Aspect Ratio" msgstr "Seitenverhältnis" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Seitenverhältnis:" @@ -1604,6 +1615,10 @@ msgstr "Automatisch verbergen" msgid "Auto-detect RSO modules?" msgstr "RSO-Module automatisch erkennen?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1618,7 +1633,7 @@ msgid "Auxiliary" msgstr "Hilfs" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1626,7 +1641,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT inkorrekt. Dolphin wird beendet." -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1636,7 +1651,7 @@ msgstr "" "Nintendo GameCube MAC-Adresse verwendet werden. Generiere eine neue MAC-" "Adresse beginnend mit 00:09:bf oder 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1667,10 +1682,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Hintergrundeingabe" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1754,15 +1770,15 @@ msgstr "Beta (einmal im Monat)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows usw." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1781,7 +1797,7 @@ msgstr "Blockgröße" msgid "Block Size:" msgstr "Blockgröße:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blockierung" @@ -1814,11 +1830,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausieren nach Boot" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-Sicherungsdatei (*.bin);;Alle Dateien (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii Schlüsseldatei (*.bin);;Alle Dateien (*)" @@ -1826,7 +1842,7 @@ msgstr "BootMii Schlüsseldatei (*.bin);;Alle Dateien (*)" msgid "Borderless Fullscreen" msgstr "Randloses Vollbild" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Unten" @@ -1857,19 +1873,27 @@ msgstr "Haltepunkt gefunden! Schritt heraus abgebrochen." msgid "Breakpoints" msgstr "Haltepunkte" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Breitband-Adapter (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Breitband-Adapter(XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Breitband-Adapter (Tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -2012,7 +2036,7 @@ msgstr "" msgid "Callstack" msgstr "Aufrufstapel" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Kamera 1" @@ -2030,8 +2054,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kann Wiimote bei Verbindungs-Handle {0:02x} nicht finden" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Du kannst keine NetPlay-Session starten, während ein Spiel noch läuft!" @@ -2165,7 +2189,7 @@ msgstr "Cheat-Verwaltung" msgid "Check NAND..." msgstr "NAND prüfen..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Veränderungen der Spieleliste im Hintergrund prüfen" @@ -2189,11 +2213,11 @@ msgstr "Prüfsumme" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Datei zum Öffnen auswählen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2224,7 +2248,7 @@ msgid "Classic Controller" msgstr "Klassischer Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2300,7 +2324,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "Shader vor dem Start kompilieren" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Kompiliere Shader" @@ -2346,11 +2370,11 @@ msgstr "Controller konfigurieren" msgid "Configure Dolphin" msgstr "Dolphin konfigurieren" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Eingabe konfigurieren" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Ausgabe konfigurieren" @@ -2359,8 +2383,8 @@ msgstr "Ausgabe konfigurieren" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bestätigen" @@ -2388,7 +2412,7 @@ msgstr "Verbinden" msgid "Connect Balance Board" msgstr "Balance Bord anschließen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "USB-Tastatur verbunden" @@ -2437,7 +2461,7 @@ msgstr "" msgid "Connection Type:" msgstr "Verbindungstyp:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Inhalt {0:08x} ist beschädigt." @@ -2551,14 +2575,31 @@ msgstr "Konvergenz" msgid "Convergence:" msgstr "Konvergenz:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Konvertieren" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Datei konvertieren..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Ausgewählte Dateien konvertieren..." @@ -2674,7 +2715,7 @@ msgstr "" "Konnte keine Aktualisierungsinformationen von Nintendo heruntergeladen. " "Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2685,7 +2726,7 @@ msgstr "" "\n" "Die emulierte Konsole wird jetzt angehalten." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2986,7 +3027,7 @@ msgstr "Dezimal" msgid "Decoding Quality:" msgstr "Decodierungsqualität:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Reduzieren" @@ -3007,11 +3048,11 @@ msgstr "Emulationsgeschwindigkeit verringern" msgid "Decrease IR" msgstr "Interne Auflösung reduzieren" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Reduziere X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Reduziere Y" @@ -3031,7 +3072,7 @@ msgstr "Standardgerät" msgid "Default Font" msgstr "Standardschriftart" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Standard-ISO:" @@ -3116,7 +3157,7 @@ msgstr "" msgid "Detached" msgstr "Gelöst" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Erkenne" @@ -3162,7 +3203,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Verdunkelt den Bildschirm nach fünf Minuten Inaktivität." @@ -3310,7 +3351,7 @@ msgstr "Weite der Bewegung von der neutralen Position." msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Dolphin autorisieren, Informationen an das Entwicklerteam zu senden?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Möchtest du \"%1\" zur Liste der Spielverzeichnisse hinzufügen?" @@ -3324,7 +3365,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Laufende Emulation stoppen?" @@ -3355,8 +3396,8 @@ msgstr "Dolphin-Signatur-CSV-Datei" msgid "Dolphin Signature File" msgstr "Dolphin-Signaturdatei" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-Filme (*.dtm)" @@ -3395,7 +3436,7 @@ msgstr "Dolphin ist ein freier und quelloffener Gamecube- und Wii-Emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin ist zu alt für den Übergangsserver" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3403,7 +3444,7 @@ msgstr "" "Dolphin kann typische TGC-Dateien nicht ordnungsgemäß überprüfen, da sie " "sich nicht um Dumps der tatsächlichen Discs handeln." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kann nicht lizenzierte Discs nicht überprüfen." @@ -3419,8 +3460,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphins Cheatsystem ist momentan deaktiviert." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domain" @@ -3443,7 +3484,7 @@ msgstr "Disc-Abbild wurde erfolgreich komprimiert." msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3495,7 +3536,7 @@ msgstr "Doppelkern" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3535,6 +3576,10 @@ msgstr "EFB-Target dumpen" msgid "Dump Frames" msgstr "Frames dumpen" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Mipmaps dumpen" @@ -3543,7 +3588,7 @@ msgstr "Mipmaps dumpen" msgid "Dump Objects" msgstr "Objektauszüge speichern" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dump-Pfad:" @@ -3589,11 +3634,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3605,16 +3650,16 @@ msgstr "" "Dumpt Objekte nach User/Dump/Objects/.

Im Zweifel " "deaktiviert lassen." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Peer-Zertifikate dumpen" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3650,7 +3695,7 @@ msgstr "Freigabedauer der Turbo-Taste (Frames):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holländisch" @@ -3713,7 +3758,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "Effektive Priorität" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3729,7 +3774,7 @@ msgstr "Eingebetteter Bildspeicher (EFB)" msgid "Empty" msgstr "Leer" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emu-Thread läuft bereits." @@ -3819,11 +3864,11 @@ msgid "Enable Progressive Scan" msgstr "Progressiven Scan aktivieren" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Rumble aktivieren" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Bildschirmschoner aktivieren" @@ -3974,7 +4019,7 @@ msgstr "Enet konnte nicht initialisiert werden" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Englisch" @@ -3984,7 +4029,7 @@ msgstr "Englisch" msgid "Enhancements" msgstr "Verbesserungen" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -4006,6 +4051,10 @@ msgstr "Neue Breitband-Adapter MAC-Adresse eingeben:" msgid "Enter password" msgstr "Passwort eingeben" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Geben Sie die RSO-Moduladresse ein:" @@ -4018,7 +4067,7 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4046,12 +4095,12 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4076,9 +4125,9 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fehler" @@ -4183,11 +4232,11 @@ msgstr "" "nicht geladen. Das Spiel wird die Schriftarten vielleicht nicht anzeigen, " "oder abstürzen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Es wurden Fehler gefunden in den Blöcken {0} der Partition {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Es wurden Fehler gefunden in den unbenutzten Blöcken {0} der Partition {1}." @@ -4382,7 +4431,7 @@ msgid "Extracting Directory..." msgstr "Verzeichnis wird extrahiert..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4411,7 +4460,7 @@ msgstr "Konnte diese Sitzung nicht zum NetPlay Index hinzufügen: %1" msgid "Failed to append to signature file '%1'" msgstr "Konnte nicht an Signaturdatei '%1' anfügen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4423,16 +4472,16 @@ msgstr "Konnte nicht mit Redump.org verbinden" msgid "Failed to connect to server: %1" msgstr "Konnte nicht mit Server %1 verbinden" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Fehler beim Erstellen der D3D-Swap-Kette" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Fehler beim Erstellen des D3D12-Kontexts" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Fehler beim Erstellen der globalen D3D12-Ressourcen" @@ -4455,7 +4504,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Konnte die ausgewählte Datei nicht löschen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Fehler beim Lösen des Kernel-Treibers für BT-Durchleitung: {0}" @@ -4536,7 +4585,7 @@ msgstr "" "dein NAND zu reparieren (Extras -> NAND verwalten -> NAND prüfen...) und " "versuche anschließend, den Spielstand erneut zu importieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Konnte Kern nicht initiieren" @@ -4547,8 +4596,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Renderer-Klassen konnten nicht initialisiert werden" @@ -4561,7 +4610,7 @@ msgstr "Konnte Paket: %1 nicht installieren" msgid "Failed to install this title to the NAND." msgstr "Konnte diesen Titel nicht in den NAND installieren." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4599,12 +4648,12 @@ msgstr "" "Updatepaket KB4019990 zu installieren." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Konnte '&1' nicht öffnen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Konnte Bluetooth-Gerät nicht öffnen: {0}" @@ -4634,7 +4683,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Konnte Server nicht öffnen" @@ -4817,7 +4866,7 @@ msgstr "" "Fataler Desync. Wiedergabe wird abgebrochen. (Fehler in PlayWiimote: {0} != " "{1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Sichtfeld" @@ -4983,7 +5032,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5042,7 +5091,7 @@ msgstr "" msgid "Format:" msgstr "Format:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5136,7 +5185,7 @@ msgstr "" "findest " "du auf dieser Seite." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Freies Umsehen" @@ -5151,7 +5200,7 @@ msgstr "Freies Umsehen umschalten" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Französisch" @@ -5191,7 +5240,7 @@ msgstr "Funktionsaufrufer" msgid "Function calls" msgstr "Funktionsaufrufe" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funktionen" @@ -5211,7 +5260,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -5235,7 +5284,7 @@ msgstr "" msgid "GC Port %1" msgstr "GC-Port %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI-Ordner" @@ -5260,7 +5309,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE ist {0} - muss mindestens 1024 sein." @@ -5276,7 +5325,7 @@ msgstr "" "GPU: ERROR: Brauche GL_ARB_framebuffer_object für mehrere Render-Ziele.\n" "GPU: Unterstützt deine Grafikkarte OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL ERROR: Unterstützt deine Grafikkarte OpenGL 2.0?" @@ -5312,7 +5361,7 @@ msgstr "" "GPU: OGL ERROR: Braucht GL_ARB_vertex_array_object.\n" "GPU: Unterstützt deine Grafikkarte OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5330,7 +5379,7 @@ msgstr "" "GPU: Unterstützt deine Grafikkarte OpenGL 3.0?\n" "GPU: Dein Treiber unterstützt GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5347,11 +5396,11 @@ msgstr "Spiel" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Module (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5369,7 +5418,7 @@ msgstr "Spieleinstellungen" msgid "Game Details" msgstr "Spieldetails" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Spiele-Ordner" @@ -5465,7 +5514,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Memory Cards (*.raw *.gcp)" @@ -5520,7 +5569,7 @@ msgstr "Generierte Symbolnamen von '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Deutsch" @@ -5528,11 +5577,11 @@ msgstr "Deutsch" msgid "Germany" msgstr "Deutschland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5733,7 +5782,7 @@ msgstr "Host-Eingabeautorität aktiviert" msgid "Host with NetPlay" msgstr "Mit NetPlay ausrichten" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5765,7 +5814,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Ich bin mir der Risiken bewusst und möchte weitermachen" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "Kennung" @@ -5807,7 +5856,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR-Empfindlichkeit:" @@ -5983,11 +6032,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii-Spielstand importieren..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "NAND-Sicherung wird importiert" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6022,7 +6071,7 @@ msgstr "" "Kosten zusätzlicher Speicher-/Ladezeit.

Im Zweifel " "aktiviert lassen." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Erhöhen" @@ -6043,15 +6092,15 @@ msgstr "Emulationsgeschwindigkeit erhöhen" msgid "Increase IR" msgstr "Interne Auflösung erhöhen" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Erhöhe X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Erhöhe Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -6059,6 +6108,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6098,7 +6154,7 @@ msgstr "" msgid "Insert &nop" msgstr "&nop einfügen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SD-Karte einfügen" @@ -6286,7 +6342,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italienisch" @@ -6381,7 +6437,7 @@ msgid "Japan" msgstr "Japan" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japanisch" @@ -6419,7 +6475,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Tasten" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6432,7 +6488,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreanisch" @@ -6484,7 +6540,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6590,7 +6646,7 @@ msgstr "GameCube-Hauptmenü laden" msgid "Load Last State" msgstr "Letzten Spielstand laden" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Ladepfad:" @@ -6856,7 +6912,7 @@ msgstr "" msgid "Mapping" msgstr "Mapping" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6877,7 +6933,7 @@ msgstr "Maximale Puffergröße auf %1 geändert" msgid "Maximum tilt angle." msgstr "Maximaler Neigungswinkel." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Kann zu Verlangsamung im Wii-Menü und einigen Spielen führen." @@ -6894,7 +6950,7 @@ msgstr "Speicher" msgid "Memory Breakpoint" msgstr "Speicherhaltepunkt" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Speicherkarte" @@ -6924,7 +6980,7 @@ msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Schreibvorgang mit ungültiger Zieladresse aufgerufen ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6936,11 +6992,11 @@ msgstr "" "Vorgang ist nicht umkehrbar, daher wird empfohlen, dass du Sicherungen " "beider NANDs behälst. Bist du sicher, dass du fortfahren möchtest?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6950,7 +7006,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Sonstiges" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Sonstige Einstellungen" @@ -6995,7 +7051,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7037,7 +7093,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Bewegen" @@ -7053,6 +7109,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -7083,8 +7144,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7151,7 +7212,7 @@ msgstr "" msgid "Network" msgstr "Netzwerk" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -7287,11 +7348,11 @@ msgstr "Keine Pfade in der M3U-Datei \"{0}\" gefunden." msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Es wurden keine Probleme gefunden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7323,7 +7384,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Keine" @@ -7379,7 +7440,7 @@ msgid "Notice" msgstr "Hinweis" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Null" @@ -7496,7 +7557,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "Wii-&Spielstand-Ordner öffnen" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7524,7 +7585,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operatoren" @@ -7546,7 +7607,7 @@ msgstr "Orange" msgid "Orbital" msgstr "Orbital" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7585,7 +7646,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7721,7 +7782,7 @@ msgstr "Physikalisch" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7787,7 +7848,7 @@ msgstr "Zeige" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7897,7 +7958,7 @@ msgstr "Privat und öffentlich" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7905,7 +7966,7 @@ msgstr "" "Es wurden Probleme mit hohem Schweregrad gefunden. Das Spiel wird " "höchstwahrscheinlich überhaupt nicht funktionieren." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7913,7 +7974,7 @@ msgstr "" "Es wurden Probleme mit geringem Schweregrad gefunden. Jedoch werden sie das " "Spiel wahrscheinlich nicht am Starten hindern." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7943,7 +8004,7 @@ msgstr "Öffentlich" msgid "Purge Game List Cache" msgstr "Spielelisten Cache leeren" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7970,7 +8031,7 @@ msgstr "Qualität des DPLII-Decoders. Audiolatenz steigt mit Qualität." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Frage" @@ -8011,7 +8072,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii-Abbilder (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Reichweite" @@ -8183,8 +8243,8 @@ msgstr "Erinnere mich später" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Entfernen" @@ -8248,7 +8308,7 @@ msgstr "Bericht: GCIFolder Schreibe zu nicht zugewiesener Block {0:#x}" msgid "Request to Join Your Party" msgstr "Anfrage deiner Gruppe beizutreten" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8282,11 +8342,11 @@ msgstr "Setze Übergangsserver zurück zu %1:%2" msgid "Reset Traversal Settings" msgstr "Übergangseinstellungen zurücksetzen." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Sichtfeld zurücksetzen" @@ -8298,7 +8358,7 @@ msgstr "Alle gespeicherten Wiimote-Kopplungen zurücksetzen" msgid "Resource Pack Manager" msgstr "Ressourcenpaketverwaltung" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Ressourcenpaket-Pfad:" @@ -8331,7 +8391,7 @@ msgstr "Revision" msgid "Revision: %1" msgstr "Revision: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8414,7 +8474,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Bis &hier ausführen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -8426,18 +8486,26 @@ msgstr "Russland" msgid "SD Card" msgstr "SD-Karte" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD-Kartenabbild (*.raw);;Alle Dateien (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD-Karten-Pfad:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -8446,11 +8514,11 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL-Kontext" @@ -8524,7 +8592,7 @@ msgstr "Ältesten Spielstand überschreiben" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8624,7 +8692,7 @@ msgstr "" "eine Sicherung der aktuellen Spielstände zu erstellen.\n" "Jetzt überschreiben?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8654,7 +8722,7 @@ msgstr "" "Gespeicherte Wiimote-Kopplungen können nur zurückgesetzt werden, wenn ein " "Wii-Spiel läuft." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8689,7 +8757,7 @@ msgstr "Adresse suchen" msgid "Search Current Object" msgstr "Derzeitiges Objekt suchen" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Unterordner durchsuchen" @@ -8732,11 +8800,11 @@ msgid "Section that contains most CPU and Hardware related settings." msgstr "" "Abschnitt, der die meisten CPU- und Hardware-basierten Einstellungen enthält." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Auswählen" @@ -8749,15 +8817,15 @@ msgstr "Dump-Pfad auswählen" msgid "Select Export Directory" msgstr "Export-Verzeichnis auswählen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8829,7 +8897,7 @@ msgstr "Slot 8 auswählen" msgid "Select State Slot 9" msgstr "Slot 9 auswählen" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8845,17 +8913,21 @@ msgstr "Verzeichnis auswählen" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Datei auswählen" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Spiel auswählen" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "SD-Kartenabbild auswählen" @@ -8879,7 +8951,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Wählen Sie die RSO-Moduladresse aus:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8887,11 +8959,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Wähle die Schlüsseldateien (OTP/SEEPROM Dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wii-Spielstand auswählen" @@ -9008,7 +9080,7 @@ msgstr "" msgid "Send" msgstr "Senden" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Position der Sensorleiste:" @@ -9079,7 +9151,7 @@ msgstr "Symbol-Endadresse festlegen" msgid "Set symbol size (%1):" msgstr "Symbolgröße festlegen (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9089,7 +9161,7 @@ msgstr "" "Spiele.\n" "Funktioniert nicht bei allen Spielen." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Stellt die Wii Systemsprache ein." @@ -9410,7 +9482,7 @@ msgid "Signed Integer" msgstr "Signiertes Integer" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chinesisch (Vereinfacht)" @@ -9478,7 +9550,7 @@ msgstr "Schieberleiste" msgid "Slot A" msgstr "Slot A:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A:" @@ -9486,7 +9558,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B:" @@ -9494,7 +9566,7 @@ msgstr "Slot B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Rastet die Stick-Position auf die nächste achteckige Achse ein." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Sockel Tabelle" @@ -9504,11 +9576,11 @@ msgstr "Sockel Tabelle" msgid "Software Renderer" msgstr "Software-Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Einige der Daten konnten nicht gelesen werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9529,7 +9601,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Alphabetisch sortieren" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Klang:" @@ -9543,7 +9615,7 @@ msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spanisch" @@ -9551,7 +9623,7 @@ msgstr "Spanisch" msgid "Speaker Pan" msgstr "Lautsprecherregler" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Lautsprecher-Lautstärke" @@ -9576,7 +9648,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9641,8 +9713,8 @@ msgstr "" msgid "Started game" msgstr "Spiel gestartet" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9697,7 +9769,7 @@ msgstr "Schritt erfolgreich!" msgid "Stepping" msgstr "Schrittweite" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stereo" @@ -9873,12 +9945,12 @@ msgstr "Unterstützung" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Unterstützt SD und SDHC. Standardgröße ist 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -9976,6 +10048,12 @@ msgstr "" "Synchronisiert die GPU- und CPU-Threads, um zufällige Abstürze im Doppelkern-" "Modus zu vermeiden. (EIN = Kompatibel, AUS = Schnell)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "AR-Codes synchronisieren..." @@ -9989,7 +10067,7 @@ msgid "Synchronizing save data..." msgstr "Synchronisiere Spielstände..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Systemsprache:" @@ -10032,7 +10110,7 @@ msgstr "Screenshot erstellen" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Testen" @@ -10091,7 +10169,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "Das NAND wurde repariert." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10123,7 +10201,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -10166,7 +10244,7 @@ msgstr "Die emulierte Wii-Konsole ist bereits auf dem neuesten Stand." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -10178,11 +10256,11 @@ msgstr "Die eingegebene PID ist ungültig." msgid "The entered VID is invalid." msgstr "Die eingegebene VID ist ungültig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "Der Ausdruck enthält einen Syntaxfehler." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10216,7 +10294,7 @@ msgstr "" "Die Datei {0} wurde bereits geöffnet, der Header für die Datei wird nicht " "geschrieben." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10227,7 +10305,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Das Dateisystem ist ungültig oder konnte nicht gelesen werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10235,15 +10313,15 @@ msgstr "" "Das Format, in dem das Disc-Abbild gespeichert wird, enthält nicht die Größe " "des Disc-Abbilds." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "Die Spiel-ID ist inkonsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "Die Spiel-ID ist ungewöhnlich kurz." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "Die Spiel-ID ist {0}, sollte aber {1} sein." @@ -10321,7 +10399,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Das aufgenommene Spiel ({0}) ist nicht das gleiche gewählte Spiel ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10337,7 +10415,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Der resultierende entschlüsselte AR-Code enthält keine Zeilen." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10369,7 +10447,7 @@ msgstr "" "auswählen." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" "Der angegebene gemeinsame Schlüsselindex ist {0}, sollte aber {1} sein." @@ -10383,7 +10461,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Das Ticket ist nicht korrekt signiert." @@ -10399,7 +10477,7 @@ msgstr "" "Die Aktualisierung wurde abgebrochen. Es wird dringend empfohlen, es " "abzuschließen, um inkonsistente Systemsoftwareversionen zu vermeiden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Die Update-Partition enthält nicht das von diesem Titel verwendete IOS." @@ -10468,7 +10546,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10508,15 +10586,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dies kann nicht ruckgängig gemacht werden!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "Dieses Debug-Disc-Abbild hat die Größe eines Verkaufs-Disc-Abbilds." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Dieses Disc-Abbild hat eine ungewöhnliche Größe." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10527,7 +10605,7 @@ msgstr "" "Lage sein, mit jemandem Eingabeaufzeichnungen zu teilen und NetPlay zu " "benutzen, der einen guten Dump verwendet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10539,7 +10617,7 @@ msgstr "" "wird. Der CRC32 dieser Datei stimmt möglicherweise mit dem CRC32 eines guten " "Dumps überein, obwohl die Dateien nicht identisch sind." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10548,7 +10626,7 @@ msgstr "" "Programm das Disc-Abbild als mehrere Teile gespeichert hat, musst du diese " "in einer Datei zusammenführen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10565,7 +10643,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Diese Datei sieht nicht aus wie eine BootMii-NAND-Sicherung." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10576,7 +10654,7 @@ msgstr "" "werden fehlerhaft sein. Dieses Problem tritt normaler Weise nur bei " "illegalen Kopien von Spielen auf." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10586,11 +10664,11 @@ msgstr "" "funktionieren, aber deine Grafikkarte oder deine Treiber unterstützen dies " "nicht. Es kann zu Fehlern oder Abstürzen kommen, während dieses Spiel läuft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Dies ist ein schlechter Dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10598,7 +10676,7 @@ msgstr "" "Dies ist ein schlechter Dump. Das bedeutet nicht unbedingt, dass das Spiel " "nicht richtig läuft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10606,7 +10684,7 @@ msgstr "" "Laut Redump.org ist dies ein guter Dump, aber Dolphin hat Probleme gefunden. " "Dies könnte ein Fehler in Dolphin sein." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Dies ist ein guter Dump." @@ -10636,12 +10714,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Dieser Titel kann nicht gebootet werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Dieser Titel wird ein ungültiges IOS verwenden." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Dieser Titel wird einen ungültigen gemeinsamen Schlüssel verwenden." @@ -10715,7 +10793,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Schwelle" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10834,7 +10912,7 @@ msgstr "Tokenisierung fehlgeschlagen." msgid "Toolbar" msgstr "Werkzeugleiste" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Oben" @@ -10882,7 +10960,7 @@ msgid "Touch" msgstr "Touch" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chinesisch (Traditionell)" @@ -10907,7 +10985,7 @@ msgstr "" "Versucht Zweige vor der Zeit zu übersetzen, was die Performance in den " "meisten Fällen verbessert. Standardwert True" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10922,8 +11000,8 @@ msgstr "Schultertasten" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Typ" @@ -10943,7 +11021,7 @@ msgstr "UNBEKANNT" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11176,7 +11254,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Unsigniertes Integer" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11248,6 +11326,10 @@ msgstr "Wiimote aufrecht" msgid "Usage Statistics Reporting Settings" msgstr "Einstellungen zur Berichterstattung von Nutzungsdaten" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Eingebaute Datenbank von Spielnamen verwenden" @@ -11260,7 +11342,7 @@ msgstr "Benutzerdefiniertes Design verwenden" msgid "Use Lossless Codec (FFV1)" msgstr "Benutze verlustfreien Codec (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60-Modus (EuRGB60) verwenden" @@ -11334,11 +11416,11 @@ msgstr "Benutzeroberfläche" msgid "User Style:" msgstr "Benutzerdefiniertes Design:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11434,7 +11516,7 @@ msgstr "Prüfen" msgid "Verify Integrity" msgstr "Integrität prüfen" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Zertifikate verifizieren" @@ -11572,7 +11654,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Exklusivmodus)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11768,7 +11850,7 @@ msgstr "" "\"Willkürliche Mipmaps erkennen\" in \"Verbesserungen\" aktiviert ist." "

Im Zweifel aktiviert lassen." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Freigegebene USB-Durchleitungsgeräte" @@ -11788,7 +11870,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii-Menü" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii-NAND-Root:" @@ -11814,7 +11896,7 @@ msgstr "Wiimote-Tasten" msgid "Wii Remote Orientation" msgstr "Wiimote-Ausrichtung" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wiimote-Einstellungen" @@ -11934,7 +12016,7 @@ msgstr "X" msgid "XF register " msgstr "XF-Register" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11968,6 +12050,20 @@ msgstr "Ja" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12087,7 +12183,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -12219,7 +12315,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Meisterstück)" @@ -12259,7 +12355,7 @@ msgstr "{0} von {1} Blöcken. Komprimierungsrate {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} war kein Verzeichnis, verschoben nach *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Oder" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index 8f0a6ce8a3..5fb55e2213 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -25,7 +25,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -49,7 +49,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -57,22 +57,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -251,7 +257,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -638,19 +644,19 @@ msgstr "" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -665,7 +671,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -695,7 +701,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -769,7 +775,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -843,11 +849,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -862,12 +868,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -889,7 +895,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -900,7 +906,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -948,6 +954,11 @@ msgstr "" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "" @@ -1099,8 +1110,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "" @@ -1171,7 +1182,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1202,7 +1213,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1210,7 +1221,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1219,7 +1230,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1228,8 +1239,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1265,7 +1276,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1398,7 +1409,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "" @@ -1475,6 +1486,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1487,7 +1502,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1495,14 +1510,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1533,10 +1548,11 @@ msgid "Backend:" msgstr "" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1618,15 +1634,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1645,7 +1661,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1676,11 +1692,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1688,7 +1704,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "" @@ -1719,19 +1735,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1863,7 +1887,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1881,8 +1905,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2001,7 +2025,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2023,11 +2047,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2058,7 +2082,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2134,7 +2158,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2180,11 +2204,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2193,8 +2217,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2222,7 +2246,7 @@ msgstr "" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "" @@ -2270,7 +2294,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2366,14 +2390,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2482,14 +2523,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2757,7 +2798,7 @@ msgstr "" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2778,11 +2819,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2802,7 +2843,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "" @@ -2881,7 +2922,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "" @@ -2927,7 +2968,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3051,7 +3092,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3065,7 +3106,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3096,8 +3137,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3134,13 +3175,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3154,8 +3195,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3178,7 +3219,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3230,7 +3271,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "" @@ -3270,6 +3311,10 @@ msgstr "" msgid "Dump Frames" msgstr "" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3278,7 +3323,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3320,11 +3365,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3334,16 +3379,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3376,7 +3421,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "" @@ -3432,7 +3477,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3448,7 +3493,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "" @@ -3535,11 +3580,11 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "" @@ -3659,7 +3704,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "" @@ -3669,7 +3714,7 @@ msgstr "" msgid "Enhancements" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3691,6 +3736,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3703,7 +3752,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3731,12 +3780,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3761,9 +3810,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "" @@ -3858,11 +3907,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4056,7 +4105,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4083,7 +4132,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4095,16 +4144,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4125,7 +4174,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4195,7 +4244,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4206,8 +4255,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4220,7 +4269,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4254,12 +4303,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4285,7 +4334,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4454,7 +4503,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4608,7 +4657,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4656,7 +4705,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4746,7 +4795,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4761,7 +4810,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "" @@ -4801,7 +4850,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4821,7 +4870,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4845,7 +4894,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4870,7 +4919,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4884,7 +4933,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4912,7 +4961,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4925,7 +4974,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4940,11 +4989,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4962,7 +5011,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5056,7 +5105,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5111,7 +5160,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "" @@ -5119,11 +5168,11 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5314,7 +5363,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5346,7 +5395,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5382,7 +5431,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "" @@ -5514,11 +5563,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5546,7 +5595,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5567,15 +5616,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5583,6 +5632,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5622,7 +5678,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "" @@ -5808,7 +5864,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "" @@ -5900,7 +5956,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "" @@ -5938,7 +5994,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5951,7 +6007,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "" @@ -6003,7 +6059,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6100,7 +6156,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6359,7 +6415,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6380,7 +6436,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6397,7 +6453,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "" @@ -6425,7 +6481,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6433,11 +6489,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6447,7 +6503,7 @@ msgstr "" msgid "Misc" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "" @@ -6487,7 +6543,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6529,7 +6585,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6545,6 +6601,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6575,8 +6636,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6642,7 +6703,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6778,11 +6839,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6808,7 +6869,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "" @@ -6864,7 +6925,7 @@ msgid "Notice" msgstr "" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6977,7 +7038,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7005,7 +7066,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7027,7 +7088,7 @@ msgstr "" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7066,7 +7127,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7202,7 +7263,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7268,7 +7329,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7369,19 +7430,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7409,7 +7470,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7436,7 +7497,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "" @@ -7477,7 +7538,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "" @@ -7643,8 +7703,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "" @@ -7703,7 +7763,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7737,11 +7797,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7753,7 +7813,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7786,7 +7846,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7869,7 +7929,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7881,18 +7941,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7901,11 +7969,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7979,7 +8047,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8076,7 +8144,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8104,7 +8172,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8139,7 +8207,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "" @@ -8181,11 +8249,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "" @@ -8198,15 +8266,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8278,7 +8346,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8294,17 +8362,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8328,7 +8400,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8336,11 +8408,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8433,7 +8505,7 @@ msgstr "" msgid "Send" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "" @@ -8502,14 +8574,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8816,7 +8888,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "" @@ -8877,7 +8949,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8885,7 +8957,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8893,7 +8965,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8903,11 +8975,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8924,7 +8996,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8938,7 +9010,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "" @@ -8946,7 +9018,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "" @@ -8971,7 +9043,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9036,8 +9108,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9092,7 +9164,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9258,12 +9330,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9356,6 +9428,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9369,7 +9447,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "" @@ -9412,7 +9490,7 @@ msgstr "" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "" @@ -9467,7 +9545,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9495,7 +9573,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9531,7 +9609,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9543,11 +9621,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9571,7 +9649,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9582,21 +9660,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9663,7 +9741,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9674,7 +9752,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9700,7 +9778,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9713,7 +9791,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9727,7 +9805,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9787,7 +9865,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9822,22 +9900,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9845,13 +9923,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9865,37 +9943,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9919,12 +9997,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9981,7 +10059,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10098,7 +10176,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "" @@ -10146,7 +10224,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "" @@ -10169,7 +10247,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10184,8 +10262,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "" @@ -10205,7 +10283,7 @@ msgstr "" msgid "USA" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10413,7 +10491,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10483,6 +10561,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10495,7 +10577,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10567,11 +10649,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10657,7 +10739,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10778,7 +10860,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10917,7 +10999,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10937,7 +11019,7 @@ msgstr "" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "" @@ -10963,7 +11045,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11083,7 +11165,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11117,6 +11199,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11216,7 +11312,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11348,7 +11444,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11383,7 +11479,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/el.po b/Languages/po/el.po index 572009a76b..b67f34b3f0 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -31,7 +31,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -55,7 +55,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Δίσκος %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -63,22 +63,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -257,7 +263,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -644,19 +650,19 @@ msgstr "(ανενεργό)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -671,7 +677,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -701,7 +707,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -775,7 +781,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blocks)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -849,11 +855,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Αρχική (5120x4224) για 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Λιγότερο-από" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<Τίποτα>" @@ -871,12 +877,12 @@ msgstr "" "διαθέσιμο για κατέβασμα. Αυτή την στιγμή εκτελείται το %2.
Θα θέλατε να " "γίνει αναβάθμιση;

Σημειώσεις Έκδοσης:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Περισσότερο-από" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -898,7 +904,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -909,7 +915,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -957,6 +963,11 @@ msgstr "Σχετικά με το Dolphin" msgid "Accelerometer" msgstr "Επιταχυνσιόμετρο" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Ακρίβεια:" @@ -1108,8 +1119,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Προσθήκη..." @@ -1180,7 +1191,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1211,7 +1222,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1219,7 +1230,7 @@ msgid "All Files" msgstr "Όλα τα Αρχεία" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Όλα τα Αρχεία (*)" @@ -1228,7 +1239,7 @@ msgstr "Όλα τα Αρχεία (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Όλα τα GC/Wii αρχεία" @@ -1237,8 +1248,8 @@ msgstr "Όλα τα GC/Wii αρχεία" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1274,7 +1285,7 @@ msgstr "Να Επιτρέπονται Ασύμφωνες Ρυθμίσεις Πε msgid "Allow Usage Statistics Reporting" msgstr "Άδεια Μετάδοσης Στατιστικών Χρήσης " -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1407,7 +1418,7 @@ msgid "Aspect Ratio" msgstr "Αναλογία Οθόνης" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Αναλογία Οθόνης:" @@ -1484,6 +1495,10 @@ msgstr "Αυτόματη Απόκρυψη" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1496,7 +1511,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1504,14 +1519,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT εσφαλμένο. Το Dolphin τώρα θα τερματιστεί" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1542,10 +1557,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Χειρισμός με Ανεστίαστο Παραθ." -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1627,15 +1643,15 @@ msgstr "Beta (μια φορά τον μήνα)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1654,7 +1670,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1685,11 +1701,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1697,7 +1713,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Πλήρης Οθόνη Χωρίς Περιθώρια " -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Βάση" @@ -1728,19 +1744,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1872,7 +1896,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Κάμερα 1" @@ -1890,8 +1914,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2010,7 +2034,7 @@ msgstr "Διαχειριστής Cheats" msgid "Check NAND..." msgstr "Έλεγχος NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Έλεγχος Αλλαγών στην Λίστα Παιχνιδιών στο Παρασκήνιο" @@ -2032,11 +2056,11 @@ msgstr "" msgid "China" msgstr "Κίνα" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Επιλέξτε ένα αρχείο για άνοιγμα" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2067,7 +2091,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2143,7 +2167,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2189,11 +2213,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Ρύθμιση Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2202,8 +2226,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Επιβεβαίωση" @@ -2231,7 +2255,7 @@ msgstr "Σύνδεση" msgid "Connect Balance Board" msgstr "Σύνδεση Σανίδας Ισορροπίας" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Σύνδεση Πληκτρολογίου USB" @@ -2279,7 +2303,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2375,14 +2399,31 @@ msgstr "" msgid "Convergence:" msgstr "Σύγκλιση:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Μετατροπή" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Μετατροπή Αρχείου..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Μετατροπή Επιλεγμένων Αρχείων..." @@ -2493,14 +2534,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2768,7 +2809,7 @@ msgstr "Δεκαδικός" msgid "Decoding Quality:" msgstr "Ποιότητα Αποκωδικοποίησης:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2789,11 +2830,11 @@ msgstr "Μείωση Ταχύτητας Εξομοίωσης" msgid "Decrease IR" msgstr "Μείωση IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2813,7 +2854,7 @@ msgstr "Προεπιλεγμένη Συσκευή" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Προεπιλεγμένο ISO:" @@ -2892,7 +2933,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Ανίχνευση" @@ -2938,7 +2979,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" "Σκοτεινιάζει την οθόνη μετά από έλλειψη δραστηριότητας για πέντε λεπτά." @@ -3065,7 +3106,7 @@ msgstr "" "Εξουσιοδοτείτε το Dolphin να αναφέρει πληροφορίες στους προγραμματιστές του " "Dolphin;" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3079,7 +3120,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Θέλετε να σταματήσετε την τρέχουσα εξομοίωση;" @@ -3110,8 +3151,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Ταινίες (*.dtm)" @@ -3150,13 +3191,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3170,8 +3211,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Το σύστημα cheat του Dolphin είναι επί του παρόντος απενεργοποιημένο." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3194,7 +3235,7 @@ msgstr "Συμπιέστηκε η εικόνα του δίσκου." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3247,7 +3288,7 @@ msgstr "Διπλός Πυρήνας" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3287,6 +3328,10 @@ msgstr "Εξαγωγή EFB Target" msgid "Dump Frames" msgstr "Εξαγωγή Καρέ" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3295,7 +3340,7 @@ msgstr "" msgid "Dump Objects" msgstr "Εξαγωγή Αντικειμένων" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3337,11 +3382,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3351,16 +3396,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3393,7 +3438,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Ολλανδικά" @@ -3449,7 +3494,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3465,7 +3510,7 @@ msgstr "" msgid "Empty" msgstr "Κενή" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Το νήμα εξομοίωσης εκτελείται ήδη" @@ -3552,11 +3597,11 @@ msgid "Enable Progressive Scan" msgstr "Ενεργοποίηση Προοδευτικής Σάρωσης" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Ενεργοποίηση Δόνησης" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Ενεργοποίηση Προφύλαξης Οθόνης" @@ -3683,7 +3728,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Αγγλικά" @@ -3693,7 +3738,7 @@ msgstr "Αγγλικά" msgid "Enhancements" msgstr "Βελτιώσεις" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3715,6 +3760,10 @@ msgstr "" msgid "Enter password" msgstr "Εισαγωγή κωδικού" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3727,7 +3776,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3755,12 +3804,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3785,9 +3834,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Σφάλμα" @@ -3884,11 +3933,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4082,7 +4131,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4109,7 +4158,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4121,16 +4170,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4151,7 +4200,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4221,7 +4270,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4232,8 +4281,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4246,7 +4295,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4280,12 +4329,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4311,7 +4360,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4480,7 +4529,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4634,7 +4683,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4682,7 +4731,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4772,7 +4821,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4787,7 +4836,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Γαλλικά" @@ -4827,7 +4876,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4847,7 +4896,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4871,7 +4920,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI Φάκελος" @@ -4896,7 +4945,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4910,7 +4959,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4938,7 +4987,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4951,7 +5000,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4966,11 +5015,11 @@ msgstr "Παιχνίδι" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Carts (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4988,7 +5037,7 @@ msgstr "Ρυθμίσεις Παιχνιδιού" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Φάκελοι Παιχνιδιών" @@ -5082,7 +5131,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5137,7 +5186,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Γερμανικά" @@ -5145,11 +5194,11 @@ msgstr "Γερμανικά" msgid "Germany" msgstr "Γερμανία" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5340,7 +5389,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5372,7 +5421,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5408,7 +5457,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Ευαισθησία IR:" @@ -5540,11 +5589,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5572,7 +5621,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5593,15 +5642,15 @@ msgstr "" msgid "Increase IR" msgstr "Αύξηση IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5609,6 +5658,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5648,7 +5704,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Εισαγωγή Κάρτας SD" @@ -5834,7 +5890,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Ιταλικά" @@ -5926,7 +5982,7 @@ msgid "Japan" msgstr "Ιαπωνία" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Ιαπωνικά" @@ -5964,7 +6020,7 @@ msgstr "Πληκτρολόγιο" msgid "Keys" msgstr "Πλήκτρα" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5977,7 +6033,7 @@ msgid "Korea" msgstr "Κορέα" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Κορεάτικα" @@ -6029,7 +6085,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6129,7 +6185,7 @@ msgstr "Φόρτωση Κυρίως Μενού GameCube" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6388,7 +6444,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6409,7 +6465,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" "Μπορεί να προκαλέσει καθυστερήσεις στο Μενού του Wii και σε ορισμένα " @@ -6428,7 +6484,7 @@ msgstr "Μνήμη" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Κάρτα Μνήμης" @@ -6456,7 +6512,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6464,11 +6520,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6478,7 +6534,7 @@ msgstr "Μικρόφωνο" msgid "Misc" msgstr "Διάφορα" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Διάφορες Ρυθμίσεις" @@ -6518,7 +6574,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6560,7 +6616,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6576,6 +6632,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6606,8 +6667,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6675,7 +6736,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6811,11 +6872,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Δεν βρέθηκαν προβλήματα." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6841,7 +6902,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Καμία" @@ -6897,7 +6958,7 @@ msgid "Notice" msgstr "Σημείωση" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Κανένα" @@ -7010,7 +7071,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "Άνοιγμα Wii &Φακέλου Αποθήκευσης" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7038,7 +7099,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7060,7 +7121,7 @@ msgstr "Πορτοκαλί" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7099,7 +7160,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7235,7 +7296,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7301,7 +7362,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7402,19 +7463,19 @@ msgstr "" msgid "Problem" msgstr "Πρόβλημα" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7442,7 +7503,7 @@ msgstr "Δημόσιος" msgid "Purge Game List Cache" msgstr "Εκκαθάριση Μνήμης Cache Λίστας Παιχνιδιών " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7469,7 +7530,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Ερώτηση" @@ -7510,7 +7571,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Εύρος" @@ -7676,8 +7736,8 @@ msgstr "Υπενθύμιση Αργότερα" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Αφαίρεση" @@ -7736,7 +7796,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7770,11 +7830,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7786,7 +7846,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7819,7 +7879,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7902,7 +7962,7 @@ msgstr "Δόνηση" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7914,18 +7974,26 @@ msgstr "Ρωσία" msgid "SD Card" msgstr "SD Κάρτα" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7934,11 +8002,11 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -8012,7 +8080,7 @@ msgstr "Αποθήκευση Παλαιότερου Σημείου" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8109,7 +8177,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8137,7 +8205,7 @@ msgstr "Αποθήκευση..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8172,7 +8240,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Αναζήτηση σε Υποφακέλους" @@ -8214,11 +8282,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Επιλογή" @@ -8231,15 +8299,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8311,7 +8379,7 @@ msgstr "Επιλέξτε Θέση 8" msgid "Select State Slot 9" msgstr "Επιλέξτε Θέση 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8327,17 +8395,21 @@ msgstr "Επιλέξτε ένα Φάκελο" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Επιλέξτε ένα Αρχείο" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Επιλέξτε ένα Παιχνίδι" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8361,7 +8433,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8369,11 +8441,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Επιλέξτε αρχείο αποθήκευσης" @@ -8466,7 +8538,7 @@ msgstr "" msgid "Send" msgstr "Αποστολή" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Θέση Sensor Bar:" @@ -8535,7 +8607,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8545,7 +8617,7 @@ msgstr "" "(576i) για τα PAL παιχνίδια.\n" "Μπορεί να μην λειτουργεί για όλα τα παιχνίδια." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Ορίζει την γλώσσα συστήματος του Wii." @@ -8852,7 +8924,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Κινέζικα Απλοποιημένα" @@ -8913,7 +8985,7 @@ msgstr "" msgid "Slot A" msgstr "Θέση Α" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Θέση Α:" @@ -8921,7 +8993,7 @@ msgstr "Θέση Α:" msgid "Slot B" msgstr "Θέση Β" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Θέση Β:" @@ -8929,7 +9001,7 @@ msgstr "Θέση Β:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8939,11 +9011,11 @@ msgstr "" msgid "Software Renderer" msgstr "Απεικόνιση Λογισμικού" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8960,7 +9032,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8974,7 +9046,7 @@ msgstr "Ισπανία" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Ισπανικά" @@ -8982,7 +9054,7 @@ msgstr "Ισπανικά" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Ένταση Ηχείου:" @@ -9007,7 +9079,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9072,8 +9144,8 @@ msgstr "" msgid "Started game" msgstr "Εκκίνηση παιχνιδιού" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9128,7 +9200,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9294,12 +9366,12 @@ msgstr "Υποστήριξη" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9392,6 +9464,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9405,7 +9483,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Γλώσσα Συστήματος:" @@ -9448,7 +9526,7 @@ msgstr "Δημιουργία Στιγμιότυπου" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Τέστ" @@ -9503,7 +9581,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9531,7 +9609,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9567,7 +9645,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9579,11 +9657,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9607,7 +9685,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9618,21 +9696,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9699,7 +9777,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9711,7 +9789,7 @@ msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" "Το αποτέλεσμα αποκρυπτογράφησης του κωδικού AR δεν περιέχει καθόλου γραμμές." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9737,7 +9815,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9750,7 +9828,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9764,7 +9842,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9827,7 +9905,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9864,22 +9942,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9887,13 +9965,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9907,37 +9985,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr " Αυτό το αρχείο δεν δείχνει για αντίγραφο ασφαλείας BootMii NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9963,12 +10041,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10025,7 +10103,7 @@ msgstr "" msgid "Threshold" msgstr "Κατώφλι" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10142,7 +10220,7 @@ msgstr "" msgid "Toolbar" msgstr "Γραμμή εργαλείων" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Κορυφή" @@ -10190,7 +10268,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Κινέζικα Παραδοσιακά " @@ -10213,7 +10291,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10228,8 +10306,8 @@ msgstr "Σκανδάλες" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Τύπος" @@ -10249,7 +10327,7 @@ msgstr "" msgid "USA" msgstr "ΗΠΑ" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10457,7 +10535,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10529,6 +10607,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Χρήση Ενσωματωμένης Βάσης Δεδομένων για Ονόματα Παιχνιδιών" @@ -10541,7 +10623,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Χρήση Λειτουργίας PAL60 (EuRGB60)" @@ -10613,11 +10695,11 @@ msgstr "Διεπαφή Χρήστη" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10703,7 +10785,7 @@ msgstr "Επαλήθευση" msgid "Verify Integrity" msgstr "Επαλήθευση Ακεραιότητας" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10824,7 +10906,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10963,7 +11045,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10983,7 +11065,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii Μενού" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND Ρίζα:" @@ -11009,7 +11091,7 @@ msgstr "Wii Remote Κουμπιά" msgid "Wii Remote Orientation" msgstr "Wii Remote Προσανατολισμός" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii Remote Ρυθμίσεις" @@ -11129,7 +11211,7 @@ msgstr "X" msgid "XF register " msgstr "XF Καταχωρητές" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11163,6 +11245,20 @@ msgstr "Ναι" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11263,7 +11359,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11395,7 +11491,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11430,7 +11526,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/en.po b/Languages/po/en.po index eeca41e3b4..9d537c2c62 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -24,7 +24,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -48,7 +48,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -56,22 +56,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -250,7 +256,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -637,19 +643,19 @@ msgstr "" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -664,7 +670,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -694,7 +700,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -768,7 +774,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -842,11 +848,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -861,12 +867,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -888,7 +894,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -899,7 +905,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -947,6 +953,11 @@ msgstr "" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "" @@ -1098,8 +1109,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "" @@ -1170,7 +1181,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1201,7 +1212,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1209,7 +1220,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1218,7 +1229,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1227,8 +1238,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1264,7 +1275,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1397,7 +1408,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "" @@ -1474,6 +1485,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1486,7 +1501,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1494,14 +1509,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1532,10 +1547,11 @@ msgid "Backend:" msgstr "" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1617,15 +1633,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1644,7 +1660,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1675,11 +1691,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1687,7 +1703,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "" @@ -1718,19 +1734,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1862,7 +1886,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1880,8 +1904,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2000,7 +2024,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2022,11 +2046,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2057,7 +2081,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2133,7 +2157,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2179,11 +2203,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2192,8 +2216,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2221,7 +2245,7 @@ msgstr "" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "" @@ -2269,7 +2293,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2365,14 +2389,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2481,14 +2522,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2756,7 +2797,7 @@ msgstr "" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2777,11 +2818,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2801,7 +2842,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "" @@ -2880,7 +2921,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "" @@ -2926,7 +2967,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3050,7 +3091,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3064,7 +3105,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3095,8 +3136,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3133,13 +3174,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3153,8 +3194,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3177,7 +3218,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3229,7 +3270,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "" @@ -3269,6 +3310,10 @@ msgstr "" msgid "Dump Frames" msgstr "" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3277,7 +3322,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3319,11 +3364,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3333,16 +3378,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3375,7 +3420,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "" @@ -3431,7 +3476,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3447,7 +3492,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "" @@ -3534,11 +3579,11 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "" @@ -3658,7 +3703,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "" @@ -3668,7 +3713,7 @@ msgstr "" msgid "Enhancements" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3690,6 +3735,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3702,7 +3751,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3730,12 +3779,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3760,9 +3809,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "" @@ -3857,11 +3906,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4055,7 +4104,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4082,7 +4131,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4094,16 +4143,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4124,7 +4173,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4194,7 +4243,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4205,8 +4254,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4219,7 +4268,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4253,12 +4302,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4284,7 +4333,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4453,7 +4502,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4607,7 +4656,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4655,7 +4704,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4745,7 +4794,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4760,7 +4809,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "" @@ -4800,7 +4849,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4820,7 +4869,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4844,7 +4893,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4869,7 +4918,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4883,7 +4932,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4911,7 +4960,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4924,7 +4973,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4939,11 +4988,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4961,7 +5010,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5055,7 +5104,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5110,7 +5159,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "" @@ -5118,11 +5167,11 @@ msgstr "" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5313,7 +5362,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5345,7 +5394,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5381,7 +5430,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "" @@ -5513,11 +5562,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5545,7 +5594,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5566,15 +5615,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5582,6 +5631,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5621,7 +5677,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "" @@ -5807,7 +5863,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "" @@ -5899,7 +5955,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "" @@ -5937,7 +5993,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5950,7 +6006,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "" @@ -6002,7 +6058,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6099,7 +6155,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6358,7 +6414,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6379,7 +6435,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6396,7 +6452,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "" @@ -6424,7 +6480,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6432,11 +6488,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6446,7 +6502,7 @@ msgstr "" msgid "Misc" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "" @@ -6486,7 +6542,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6528,7 +6584,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6544,6 +6600,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6574,8 +6635,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6641,7 +6702,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6777,11 +6838,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6807,7 +6868,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "" @@ -6863,7 +6924,7 @@ msgid "Notice" msgstr "" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6976,7 +7037,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7004,7 +7065,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7026,7 +7087,7 @@ msgstr "" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7065,7 +7126,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7201,7 +7262,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7267,7 +7328,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7368,19 +7429,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7408,7 +7469,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7435,7 +7496,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "" @@ -7476,7 +7537,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "" @@ -7642,8 +7702,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "" @@ -7702,7 +7762,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7736,11 +7796,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7752,7 +7812,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7785,7 +7845,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7868,7 +7928,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7880,18 +7940,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7900,11 +7968,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7978,7 +8046,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8075,7 +8143,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8103,7 +8171,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8138,7 +8206,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "" @@ -8180,11 +8248,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "" @@ -8197,15 +8265,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8277,7 +8345,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8293,17 +8361,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8327,7 +8399,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8335,11 +8407,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "" @@ -8432,7 +8504,7 @@ msgstr "" msgid "Send" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "" @@ -8501,14 +8573,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8815,7 +8887,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "" @@ -8876,7 +8948,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8884,7 +8956,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8892,7 +8964,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8902,11 +8974,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8923,7 +8995,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8937,7 +9009,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "" @@ -8945,7 +9017,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "" @@ -8970,7 +9042,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9035,8 +9107,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9091,7 +9163,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9257,12 +9329,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9355,6 +9427,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9368,7 +9446,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "" @@ -9411,7 +9489,7 @@ msgstr "" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "" @@ -9466,7 +9544,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9494,7 +9572,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9530,7 +9608,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9542,11 +9620,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9570,7 +9648,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9581,21 +9659,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9662,7 +9740,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9673,7 +9751,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9699,7 +9777,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9712,7 +9790,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9726,7 +9804,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9786,7 +9864,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9821,22 +9899,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9844,13 +9922,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9864,37 +9942,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9918,12 +9996,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9980,7 +10058,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10097,7 +10175,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "" @@ -10145,7 +10223,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "" @@ -10168,7 +10246,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10183,8 +10261,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "" @@ -10204,7 +10282,7 @@ msgstr "" msgid "USA" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10412,7 +10490,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10482,6 +10560,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10494,7 +10576,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10566,11 +10648,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10656,7 +10738,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10777,7 +10859,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10916,7 +10998,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10936,7 +11018,7 @@ msgstr "" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "" @@ -10962,7 +11044,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11082,7 +11164,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11116,6 +11198,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11215,7 +11311,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11347,7 +11443,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11382,7 +11478,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/es.po b/Languages/po/es.po index 1de940bc9a..ac1564cd43 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" @@ -43,7 +43,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " "1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -55,7 +55,7 @@ msgstr "" "Es posible que haya problemas que Dolphin no pueda detectar, ya que las " "imágenes de disco de GameCube contienen muy pocos datos de verificación." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -92,7 +92,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disco %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! No" @@ -100,22 +100,28 @@ msgstr "! No" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "«{0}» no es un archivo GCM/ISO válido, o no es una ISO GC/Wii." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Variable del usuario" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Módulo" @@ -302,7 +308,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "Se quitaron %n dirección(ones)." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Y" @@ -689,19 +695,19 @@ msgstr "(desactivado)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiplicar" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Añadir" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Coma" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Restar" @@ -716,7 +722,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Dividir" @@ -746,7 +752,7 @@ msgstr "Entero con signo de 16 bits" msgid "16-bit Unsigned Integer" msgstr "Entero sin signo de 16 bits" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -820,7 +826,7 @@ msgstr "4 bytes" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 bloques)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -894,11 +900,11 @@ msgstr "x8" msgid "8x Native (5120x4224) for 5K" msgstr "Nativa x8 (5120x4224) a 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Menor que" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -916,12 +922,12 @@ msgstr "" "Dolphin %1. La versión actual es la %2.
¿Quieres actualizar?" "

Incluye los siguientes cambios:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Mayor que" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Ya hay una sesión de juego en red en marcha." @@ -951,7 +957,7 @@ msgstr "" "Un estado de guardado no puede ser cargado sin especificar el juego a " "ejecutar." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -964,7 +970,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Solo se puede sincronizar el mando de Wii en mitad de la partida." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1026,6 +1032,11 @@ msgstr "Acerca de Dolphin" msgid "Accelerometer" msgstr "Acelerómetro" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Exactitud:" @@ -1194,8 +1205,8 @@ msgid "Add to watch" msgstr "Añadir a variables vigiladas" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Añadir..." @@ -1288,7 +1299,7 @@ msgstr "" "informes de errores que surjan cuando juegues a una velocidad de reloj " "distinta a la oficial." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1319,7 +1330,7 @@ msgstr "Todos los valores de coma flotante doble" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1327,7 +1338,7 @@ msgid "All Files" msgstr "Todos los archivos" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Todos los archivos (*)" @@ -1336,7 +1347,7 @@ msgstr "Todos los archivos (*)" msgid "All Float" msgstr "Todos los valores de coma flotante" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos los archivos GC/Wii" @@ -1345,8 +1356,8 @@ msgstr "Todos los archivos GC/Wii" msgid "All Hexadecimal" msgstr "Todos los valores hexadecimales" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos los estados guardados (*.sav *.s##);; Todos los archivos (*)" @@ -1382,7 +1393,7 @@ msgstr "Permitir configuración de región independiente" msgid "Allow Usage Statistics Reporting" msgstr "Permitir informes de estadísticas de uso" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Permitir acciones de escritura en la tarjeta SD" @@ -1520,7 +1531,7 @@ msgid "Aspect Ratio" msgstr "Relación de aspecto" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Relación de aspecto:" @@ -1603,6 +1614,10 @@ msgstr "Ocultar automáticamente" msgid "Auto-detect RSO modules?" msgstr "¿Autodetectar módulos RSO?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1618,7 +1633,7 @@ msgid "Auxiliary" msgstr "Auxiliar" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1626,7 +1641,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT incorrecto. Dolphin ha encontrado un error y se cerrará." -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1636,7 +1651,7 @@ msgstr "" "Se debe usar una dirección MAC válida. Genera una nueva empezando con 00:09:" "bf o 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1667,10 +1682,11 @@ msgid "Backend:" msgstr "Motor:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Funcionar en segundo plano" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1752,15 +1768,15 @@ msgstr "Beta (una vez al mes)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, etc" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "SSL binario" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "SSL binario (leer)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "SSL binario (escribir)" @@ -1779,7 +1795,7 @@ msgstr "Tamaño del bloque" msgid "Block Size:" msgstr "Tamaño del bloque:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Bloqueando" @@ -1812,11 +1828,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Arrancar pausado" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Archivo de respaldo BootMii NAND (*.bin);;Todos los archivos (*) " -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Archivo de claves BootMii (*.bin);;Todos los archivos (*)" @@ -1824,7 +1840,7 @@ msgstr "Archivo de claves BootMii (*.bin);;Todos los archivos (*)" msgid "Borderless Fullscreen" msgstr "Pantalla completa sin bordes" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Inferior" @@ -1856,19 +1872,27 @@ msgstr "" msgid "Breakpoints" msgstr "Puntos de interrupción" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Adaptador de banda ancha (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Adaptador de banda ancha (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Adaptador de banda ancha (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Error del adaptador para banda ancha" @@ -2011,7 +2035,7 @@ msgstr "Llamada de lista de visualización en %1 con tamaño %2" msgid "Callstack" msgstr "Pila de llamadas" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Cámara 1" @@ -2033,8 +2057,8 @@ msgstr "" "No se puede encontrar ningún mando de Wii con el identificador de conexión " "{0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "No puedes empezar el juego en red con un juego en ejecución." @@ -2164,7 +2188,7 @@ msgstr "Administrador de trucos" msgid "Check NAND..." msgstr "Comprobar NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Comprobar en segundo plano si hay cambios en la lista de juegos" @@ -2188,11 +2212,11 @@ msgstr "Suma de verificación" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Escoge un archivo para abrir" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "Elige un archivo a abrir o crear" @@ -2223,7 +2247,7 @@ msgid "Classic Controller" msgstr "Mando clásico" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2299,7 +2323,7 @@ msgstr "Comparativa:" msgid "Compile Shaders Before Starting" msgstr "Compilar sombreadores antes de jugar" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Compilación de sombreadores" @@ -2345,11 +2369,11 @@ msgstr "Configurar mando" msgid "Configure Dolphin" msgstr "Configurar Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Configurar entrada" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Configurar salida" @@ -2358,8 +2382,8 @@ msgstr "Configurar salida" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmar" @@ -2387,7 +2411,7 @@ msgstr "Conectar" msgid "Connect Balance Board" msgstr "Conectar la Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Conectar teclado USB" @@ -2436,7 +2460,7 @@ msgstr "Conectando" msgid "Connection Type:" msgstr "Tipo de conexión:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "El contenido {0:08x} está corrupto." @@ -2551,14 +2575,31 @@ msgstr "Convergencia" msgid "Convergence:" msgstr "Convergencia:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Convertir" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Convertir archivo..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Convertir archivos seleccionados..." @@ -2676,7 +2717,7 @@ msgstr "" "No se han podido descargar la información de actualización de Nintendo, " "comprueba tu conexión a Internet y prueba otra vez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2687,7 +2728,7 @@ msgstr "" "\n" "La consola emulada se detendrá ahora." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2995,7 +3036,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "Calidad de decodificación:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Disminuir" @@ -3016,11 +3057,11 @@ msgstr "Reducir velocidad de emulación" msgid "Decrease IR" msgstr "Reducir IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Disminuir X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Disminuir Y" @@ -3040,7 +3081,7 @@ msgstr "Dispositivo predeterminado" msgid "Default Font" msgstr "Tipografía predeterminada" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO predeterminado:" @@ -3125,7 +3166,7 @@ msgstr "Descripción:" msgid "Detached" msgstr "Separado" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detectar" @@ -3171,7 +3212,7 @@ msgstr "El archivo %1 no ha sido reconocido como un XML de Riivolution válido." msgid "Diff" msgstr "Comparación" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Oscurece la pantalla después de cinco minutos de inactividad." @@ -3320,7 +3361,7 @@ msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "¿Nos permites compartir estadísticas con los desarrolladores de Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "¿Quieres añadir «%1» a la lista de carpetas de juegos?" @@ -3334,7 +3375,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "¿Quieres borrar el(los) %n archivo(s) de guardado elegido(s)?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "¿Quieres detener la emulación?" @@ -3365,8 +3406,8 @@ msgstr "Archivo de firma CSV de Dolphin" msgid "Dolphin Signature File" msgstr "Archivo de firma de Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Grabación TAS de Dolphin (*.dtm)" @@ -3415,7 +3456,7 @@ msgid "Dolphin is too old for traversal server" msgstr "" "La versión de Dolphin es demasiado antigua para utilizar el servidor de paso" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3423,7 +3464,7 @@ msgstr "" "Dolphin no puede verificar correctamente los archivos típicos TGC, ya que no " "son volcados de discos reales." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin no puede verificar los discos sin licencia." @@ -3439,8 +3480,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "El sistema de trucos de Dolphin está desactivado." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Dominio" @@ -3463,7 +3504,7 @@ msgstr "Imagen de disco comprimida correctamente." msgid "Double" msgstr "Coma flotante doble" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3515,7 +3556,7 @@ msgstr "Doble núcleo" msgid "Dual View" msgstr "Vista doble" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dispositivo falso" @@ -3555,6 +3596,10 @@ msgstr "Volcar superficie del EFB" msgid "Dump Frames" msgstr "Volcar fotogramas" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Volcar mipmaps" @@ -3563,7 +3608,7 @@ msgstr "Volcar mipmaps" msgid "Dump Objects" msgstr "Volcar objetos" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Ruta de volcados:" @@ -3612,11 +3657,11 @@ msgstr "" "game_id>/.

Si tienes dudas, deja esta opción " "desactivada." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Volcar lecturas SSL descifradas" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Volcar escrituras SSL descifradas" @@ -3628,16 +3673,16 @@ msgstr "" "Volcado de objetos a Usuario/Volcado/Objetos/.

Si " "tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Opciones de volcado" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Volcado de certificados de par" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Volcar certificados CA raíz" @@ -3680,7 +3725,7 @@ msgstr "Duración de liberación del botón turbo (fotogramas)" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holandés" @@ -3744,7 +3789,7 @@ msgstr "Efectivo" msgid "Effective priority" msgstr "Prioridad efectiva" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3760,7 +3805,7 @@ msgstr "Búfer de imagen integrado (EFB)" msgid "Empty" msgstr "Vacía" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "El hilo de emulación ya está ejecutándose" @@ -3850,11 +3895,11 @@ msgid "Enable Progressive Scan" msgstr "Activar escaneo progresivo" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Activar vibración" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Activar salvapantallas" @@ -4026,7 +4071,7 @@ msgstr "Enet no se inició" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Inglés" @@ -4036,7 +4081,7 @@ msgstr "Inglés" msgid "Enhancements" msgstr "Mejoras" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" "Introduce la dirección IP del dispositivo que esté ejecutando el cliente de " @@ -4060,6 +4105,10 @@ msgstr "Ingrese la nueva dirección MAC del adaptador de banda ancha:" msgid "Enter password" msgstr "Introduce la contraseña" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Escribe la dirección del módulo RSO:" @@ -4072,7 +4121,7 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4100,12 +4149,12 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4130,9 +4179,9 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -4235,11 +4284,11 @@ msgstr "" "Error: No ha sido posible cargar las tipografías de tipo «Windows-1252». " "Puede que los juegos se cuelguen o no muestren sus textos correctamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Se encontraron errores en {0} bloques en la partición {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Se encontraron errores en {0} bloques sin uso en la partición {1}." @@ -4452,7 +4501,7 @@ msgid "Extracting Directory..." msgstr "Extrayendo directorio..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4481,7 +4530,7 @@ msgstr "No se ha podido añadir esta sesión al índice de juego en red: %1" msgid "Failed to append to signature file '%1'" msgstr "No se ha podido añadir al archivo de firma «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "No se ha podido controlar la interfaz para el acceso directo a BT: {0}" @@ -4493,16 +4542,16 @@ msgstr "No se ha podido conectar con redump.org" msgid "Failed to connect to server: %1" msgstr "No se ha podido conectar al servidor: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "No se ha podido crear la cadena de intercambio D3D" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "No se ha podido crear el contexto D312" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "No se ha podido crear los recursos globales de D3D12" @@ -4527,7 +4576,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "No se ha podido borrar el archivo seleccionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "No se ha podido desvincular el controlador del kernel para ejecutar el " @@ -4611,7 +4660,7 @@ msgstr "" "contiene. Prueba a reparar tu NAND (Herramientas -> Administrar NAND -> " "Comprobar NAND...) y a importar los datos de guardado otra vez." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "No se ha podido iniciar el núcleo" @@ -4625,8 +4674,8 @@ msgstr "" "Asegúrate de que tu tarjeta de vídeo soporta al menos D3D 10.0\n" "{0} " -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "No se han podido iniciar las clases de renderizado" @@ -4639,7 +4688,7 @@ msgstr "No se ha podido instalar el paquete: %1" msgid "Failed to install this title to the NAND." msgstr "No se ha podido instalar el juego en la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4677,12 +4726,12 @@ msgstr "" "paquete de actualización KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "No se ha podido abrir «%1»" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "No se ha podido abrir el dispositivo Bluetooth: {0}" @@ -4711,7 +4760,7 @@ msgstr "" msgid "Failed to open file." msgstr "No se ha podido abrir el archivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "No se ha podido contactar con el servidor" @@ -4898,7 +4947,7 @@ msgstr "" "Desincronización fatal. Cancelando reproducción (error en PlayWiimote: {0}!" "={1}, byte {2}).{3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Campo visual" @@ -5069,7 +5118,7 @@ msgstr "" "Si necesitas ayuda, consulta esta página." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5132,7 +5181,7 @@ msgstr "" msgid "Format:" msgstr "Formato:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5227,7 +5276,7 @@ msgstr "" "\"https://wiki.dolphin-emu.org/index.php?title=Free_Look\">consulta esta " "página." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Cámara libre" @@ -5242,7 +5291,7 @@ msgstr "Interruptor de cámara libre" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francés" @@ -5282,7 +5331,7 @@ msgstr "Llamadas a función" msgid "Function calls" msgstr "Llamadas de función" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funciones" @@ -5302,7 +5351,7 @@ msgstr "Núcleo de GBA" msgid "GBA Port %1" msgstr "Puerto %1 GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "Ajustes de GBA" @@ -5326,7 +5375,7 @@ msgstr "ROM GBA%1 desactivada" msgid "GC Port %1" msgstr "Puerto de GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Carpeta GCI" @@ -5363,7 +5412,7 @@ msgstr "" "Se enviará más información de los errores al registro del motor de vídeo y " "es probable que Dolphin se cuelgue en breve. ¡Buena suerte!" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE es {0} - debe ser al menos 1024." @@ -5380,7 +5429,7 @@ msgstr "" "renderizar objetivos múltiples.\n" "GPU: ¿Tu tarjeta gráfica es compatible con OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: ERROR DE OGL: ¿Tu tarjeta gráfica es compatible con OpenGL 2.0?" @@ -5416,7 +5465,7 @@ msgstr "" "GPU: ERROR DE OGL: Es necesaria la función GL_ARB_vertex_array_object.\n" "GPU: ¿Tu tarjeta gráfica es compatible con OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5434,7 +5483,7 @@ msgstr "" "GPU: ¿Tu tarjeta gráfica es compatible con OpenGL 3.0?\n" "GPU: Tus drivers admiten GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5451,11 +5500,11 @@ msgstr "Juego" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartuchos de Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5475,7 +5524,7 @@ msgstr "Ajustes de juego" msgid "Game Details" msgstr "Detalles del juego:" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Carpetas de juego" @@ -5574,7 +5623,7 @@ msgid "GameCube Memory Cards" msgstr "Tarjetas de memoria de GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Tarjetas de memoria de GameCube (*.raw *.gcp)" @@ -5629,7 +5678,7 @@ msgstr "Nombres de símbolos generados desde «%1»" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Alemán" @@ -5637,11 +5686,11 @@ msgstr "Alemán" msgid "Germany" msgstr "Alemania" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "Fallo en GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5842,7 +5891,7 @@ msgstr "Autorización de entrada del host activada" msgid "Host with NetPlay" msgstr "Anfitrión con juego en red" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Nombre del anfitrión" @@ -5875,7 +5924,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Soy consciente de los riesgos y quiero continuar" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "Id." @@ -5917,7 +5966,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilidad IR:" @@ -6104,11 +6153,11 @@ msgstr "Importar archivo(s) de guardado" msgid "Import Wii Save..." msgstr "Importar partidas guardadas de Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Se está importando la copia de respaldo NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6143,7 +6192,7 @@ msgstr "" "guardar/cargar.

Si tienes dudas, deja esta opción " "activada." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Aumentar" @@ -6164,15 +6213,15 @@ msgstr "Subir velocidad de emulación" msgid "Increase IR" msgstr "Aumentar IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Aumentar X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Aumentar Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Rotación incremental (IR)" @@ -6180,6 +6229,13 @@ msgstr "Rotación incremental (IR)" msgid "Incremental Rotation (rad/sec)" msgstr "Rotación incremental (rad/seg) (IR)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6219,7 +6275,7 @@ msgstr "Fuerza de entrada a ignorar y reasignar." msgid "Insert &nop" msgstr "Insertar &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Insertar tarjeta SD" @@ -6408,7 +6464,7 @@ msgstr "Dirección inválida: 1%" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiano" @@ -6503,7 +6559,7 @@ msgid "Japan" msgstr "Japón" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonés" @@ -6541,7 +6597,7 @@ msgstr "Teclado" msgid "Keys" msgstr "Teclas" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6554,7 +6610,7 @@ msgid "Korea" msgstr "Corea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreano" @@ -6606,7 +6662,7 @@ msgstr "Latencia: ~40 ms" msgid "Latency: ~80 ms" msgstr "Latencia: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6712,7 +6768,7 @@ msgstr "Cargar menú principal de GameCube" msgid "Load Last State" msgstr "Cargar último estado" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Ruta de carga:" @@ -6987,7 +7043,7 @@ msgstr "Muestreo manual de texturas" msgid "Mapping" msgstr "Mapeando" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Enmascarar ROM" @@ -7008,7 +7064,7 @@ msgstr "El tamaño máximo del búfer ha cambiado a %1" msgid "Maximum tilt angle." msgstr "Ángulo de inclinación máximo." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Puede empeorar el rendimiento del menú de Wii y de algunos juegos." @@ -7025,7 +7081,7 @@ msgstr "Memoria" msgid "Memory Breakpoint" msgstr "Punto de interrupción en memoria" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Tarjeta de memoria" @@ -7053,7 +7109,7 @@ msgstr "MemoryCard: Lectura en dirección de destino incorrecta ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Escritura en dirección de destino incorrecta ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7064,11 +7120,11 @@ msgstr "" "guardada que ya tengas. Es un proceso irreversible, por lo que te " "recomendamos que hagas copias de ambas NANDs. ¿Seguro que quieres continuar?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -7078,7 +7134,7 @@ msgstr "Micrófono" msgid "Misc" msgstr "Varios" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Otros ajustes" @@ -7131,7 +7187,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Módulos encontrados: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7176,7 +7232,7 @@ msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "El cursor del ratón no se mostrará mientras se esté ejecutando un juego." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Mover" @@ -7194,6 +7250,11 @@ msgstr "" "La grabación {0} indica que debe empezar a partir de un estado de guardado, " "pero {1} no existe. ¡Es muy probable que la grabación se desincronice!" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&o a todo" @@ -7224,8 +7285,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7291,7 +7352,7 @@ msgstr "Juego en red desincronizado. No hay forma de recuperarlo." msgid "Network" msgstr "Red" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Formato del volcado de red:" @@ -7427,11 +7488,11 @@ msgstr "No se encontraron rutas en el archivo M3U «{0}»" msgid "No possible functions left. Reset." msgstr "No quedan funciones posibles. Debes reiniciar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "No se encontraron problemas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7463,7 +7524,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Ninguno" @@ -7525,7 +7586,7 @@ msgid "Notice" msgstr "Aviso" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Nulo" @@ -7642,7 +7703,7 @@ msgstr "Abrir XML de Riivolution..." msgid "Open Wii &Save Folder" msgstr "Abrir Carpeta de &Guardado de Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Abrir carpeta del volcado" @@ -7670,7 +7731,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operadores" @@ -7692,7 +7753,7 @@ msgstr "Naranja" msgid "Orbital" msgstr "Orbitar" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7731,7 +7792,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7867,7 +7928,7 @@ msgstr "Físico" msgid "Physical address space" msgstr "Espacio de la dirección física" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7935,7 +7996,7 @@ msgstr "Puntero" msgid "Port %1" msgstr "Puerto %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "ROM del puerto %1:" @@ -8044,7 +8105,7 @@ msgstr "Privado y público" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8052,7 +8113,7 @@ msgstr "" "Se encontraron problemas de gravedad alta. Lo más probable es que el juego " "no funcione en absoluto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8060,7 +8121,7 @@ msgstr "" "Se encontraron problemas de gravedad baja. Lo más probable es que no impidan " "que el juego se ejecute." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8090,7 +8151,7 @@ msgstr "Público" msgid "Purge Game List Cache" msgstr "Vaciar la caché de la lista de juegos" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Debes guardar tus ROMs del IPL en User/GC/." @@ -8118,7 +8179,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pregunta" @@ -8159,7 +8220,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "Archivos RVZ de GC/Wii (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Rango" @@ -8334,8 +8394,8 @@ msgstr "Recordar más tarde" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Eliminar" @@ -8401,7 +8461,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "Solicitud para unirse a tu partida." -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8435,11 +8495,11 @@ msgstr "Restablecer servidor transversal a %1:%2" msgid "Reset Traversal Settings" msgstr "Restablecer ajustes de paso" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Reiniciar valores" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Restablecer vista" @@ -8451,7 +8511,7 @@ msgstr "Revierte todas las vinculaciones de mandos de Wii existentes." msgid "Resource Pack Manager" msgstr "Administrador de paquetes de recursos" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Ruta de paquetes de recursos:" @@ -8484,7 +8544,7 @@ msgstr "Revisión" msgid "Revision: %1" msgstr "Revisión: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8573,7 +8633,7 @@ msgstr "Vibración" msgid "Run &To Here" msgstr "Ejecutar has&ta aquí" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Ejecutar los núcleos de GBA en hilos dedicados" @@ -8585,18 +8645,26 @@ msgstr "Rusia" msgid "SD Card" msgstr "Tarjeta SD" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "Imagen de tarjeta SD (*.raw);;Todos los archivos (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Ruta de la tarjeta SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "Raíz de la SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8605,11 +8673,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "Entorno SSL" @@ -8683,7 +8751,7 @@ msgstr "Guardar el estado más antiguo" msgid "Save Preset" msgstr "Guardar preajuste" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Guardar archivo de grabación como" @@ -8784,7 +8852,7 @@ msgstr "" "de sobrescribirlos.\n" "¿Sobreescribir ahora?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Guardar en el mismo directorio que la ROM" @@ -8814,7 +8882,7 @@ msgstr "" "Solo se pueden reemparejar los mandos de Wii en mitad de una partida con un " "juego para Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Guardados:" @@ -8849,7 +8917,7 @@ msgstr "Buscar dirección" msgid "Search Current Object" msgstr "Buscar objeto actual" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Buscar en subcarpetas" @@ -8895,11 +8963,11 @@ msgstr "" "Sección que contiene la mayoría de los ajustes relacionados con la CPU y el " "hardware." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Opciones de seguridad" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Seleccionar" @@ -8912,15 +8980,15 @@ msgstr "Seleccionar ruta de volcado" msgid "Select Export Directory" msgstr "Elige un directorio de exportación" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Elige la BIOS de GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Elige la ROM de GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Elige la ruta de los guardados de GBA" @@ -8992,7 +9060,7 @@ msgstr "Seleccionar ranura de guardado 8" msgid "Select State Slot 9" msgstr "Seleccionar ranura de guardado 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Elige ruta WFS" @@ -9008,17 +9076,21 @@ msgstr "Elige un directorio" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Elige un archivo" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Elige un juego" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Elige una imagen de tarjeta SD" @@ -9042,7 +9114,7 @@ msgstr "Elegir tarjetas e-Reader" msgid "Select the RSO module address:" msgstr "Elige la dirección del módulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Elige el archivo de grabación a reproducir" @@ -9050,11 +9122,11 @@ msgstr "Elige el archivo de grabación a reproducir" msgid "Select the Virtual SD Card Root" msgstr "Elige la carpeta raíz de la tarjeta SD virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Elige el archivo de claves (volcado OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecciona el archivo de guardado" @@ -9183,7 +9255,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Posición de la barra sensora:" @@ -9256,7 +9328,7 @@ msgstr "Escribe la dirección final del símbolo" msgid "Set symbol size (%1):" msgstr "Ajustar tamaño del símbolo (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9266,7 +9338,7 @@ msgstr "" "los juegos PAL.\n" "Podría no funcionar con todos los juegos." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Establece el idioma del sistema de Wii." @@ -9595,7 +9667,7 @@ msgid "Signed Integer" msgstr "Entero con signo" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chino simplificado" @@ -9664,7 +9736,7 @@ msgstr "Barra de desplazamiento" msgid "Slot A" msgstr "Ranura A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Ranura A:" @@ -9672,7 +9744,7 @@ msgstr "Ranura A:" msgid "Slot B" msgstr "Ranura B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Ranura B:" @@ -9680,7 +9752,7 @@ msgstr "Ranura B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Limita la posición del joystick a la más cercana al eje octogonal." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Panel de conexiones" @@ -9690,11 +9762,11 @@ msgstr "Panel de conexiones" msgid "Software Renderer" msgstr "Dibujado por software" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "No se han podido leer algunos datos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9715,7 +9787,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Ordenar alfabéticamente" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Sonido:" @@ -9729,7 +9801,7 @@ msgstr "España" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Español" @@ -9737,7 +9809,7 @@ msgstr "Español" msgid "Speaker Pan" msgstr "Altavoz estéreo" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volumen del altavoz:" @@ -9773,7 +9845,7 @@ msgstr "" "

Si tienes dudas, deja esta opción configurada con " "el valor 6." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9838,8 +9910,8 @@ msgstr "Comenzar con parches de Riivolution..." msgid "Started game" msgstr "Juego en ejecución" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9894,7 +9966,7 @@ msgstr "Se han saltado las instrucciones." msgid "Stepping" msgstr "Avanzar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Estéreo" @@ -10071,12 +10143,12 @@ msgstr "Ayuda" msgid "Supported file formats" msgstr "Formatos de archivo soportados" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Compatible con tarjetas SD y SDHC. El tamaño por defecto es de 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Envolvente" @@ -10180,6 +10252,12 @@ msgstr "" "puntuales al utilizar dos o más núcleos (Activado: el ajuste más compatible; " "Desactivado: el ajuste más rápido)." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Sincronizando códigos AR..." @@ -10193,7 +10271,7 @@ msgid "Synchronizing save data..." msgstr "Sincronizando datos guardados..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Idioma del sistema:" @@ -10234,9 +10312,9 @@ msgstr "Capturar pantalla" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "El rango de direcciones indicado no es válido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Probar" @@ -10295,7 +10373,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND arreglada sin problemas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10331,7 +10409,7 @@ msgstr "" "El tamaño de los datos de la partición {0} no se puede dividir uniformemente " "por el tamaño del bloque." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" "Es necesario añadir las claves de descifrado al archivo de respaldo de la " @@ -10376,7 +10454,7 @@ msgstr "La consola virtual ya está actualizada." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "La dirección MAC que has puesto no es correcta." @@ -10388,11 +10466,11 @@ msgstr "El PID que has puesto no es correcto." msgid "The entered VID is invalid." msgstr "El VID que has puesto no es correcto." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "La expresión contiene un error de sintaxis" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10425,7 +10503,7 @@ msgid "The file {0} was already open, the file header will not be written." msgstr "" "El archivo {0} ya estaba abierto, la cabecera de archivo no será escrita." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10439,7 +10517,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "El sistema de archivo es incorrecto o no pudo ser leído." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10447,15 +10525,15 @@ msgstr "" "El formato en el que se guarda la imagen del disco no almacena el tamaño de " "la imagen del disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "El ID del juego es inconsistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "El ID del juego es inusualmente corto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "El ID del juego es {0}, pero debería ser {1}." @@ -10540,7 +10618,7 @@ msgstr "El perfil elegido '%1' no existe" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "El juego grabado ({0}) no es el mismo que el juego elegido ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10555,7 +10633,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "El código AR descifrado que se ha obtenido no contiene ninguna línea." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10589,7 +10667,7 @@ msgstr "" "selecciona 'No'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" "El índice de la llave compartida especificada es {0} pero debería ser {1}." @@ -10603,7 +10681,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "La tarjeta de memoria elegida ya contiene un archivo \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "El ticket no está correctamente firmado" @@ -10619,7 +10697,7 @@ msgstr "" "Has cancelado la actualización, te recomendamos que la termines para evitar " "conflictos con versiones distintas del software del sistema." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partición de actualización no contiene el IOS utilizado por este título." @@ -10686,7 +10764,7 @@ msgstr "Este código Gecko está vacío." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10729,17 +10807,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "No puede deshacerse." -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Esta imagen de disco de depuración tiene el tamaño de una imagen de disco " "retail." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Esta imagen de disco tiene un tamaño inusual." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10750,7 +10828,7 @@ msgstr "" "compartir las grabaciones de entrada y usar juego en red con cualquiera que " "esté usando un buen volcado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10762,7 +10840,7 @@ msgstr "" "El CRC32 de este archivo puede coincidir con el CRC32 de un buen volcado " "aunque los archivos no sean idénticos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10771,7 +10849,7 @@ msgstr "" "programa de volcado ha guardado la imagen del disco como varias partes, " "deberá fusionarlas en un solo archivo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10789,7 +10867,7 @@ msgid "This file does not look like a BootMii NAND backup." msgstr "" "Este archivo no tiene el formato de una copia de respaldo NAND de BootMii.%zx" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10800,7 +10878,7 @@ msgstr "" "inglés o japonés o incluso modos de juego completos darán problemas. Este " "problema únicamente suele ocurrir en las copias ilegales de juegos." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10810,11 +10888,11 @@ msgstr "" "(«bounding box»), pero tu tarjeta gráfica o controladores no la soportan, " "por lo que tendrás problemas y cuelgues durante la partida." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Este es un mal volcado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10822,7 +10900,7 @@ msgstr "" "Este es un mal volcado. No significa necesariamente que el juego no funcione " "correctamente" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10830,7 +10908,7 @@ msgstr "" "Este es un buen volcado de acuerdo con Redump.org, pero Dolphin ha " "encontrado problemas. Puede ser un bug en Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Este es un buen volcado." @@ -10858,12 +10936,12 @@ msgstr "No debes utilizarlo con juegos que no poseas legalmente." msgid "This title cannot be booted." msgstr "Este juego no se puede arrancar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Este título está configurado para utilizar un IOS no válido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Este título está configurado para utilizar una clave común no válida." @@ -10938,7 +11016,7 @@ msgstr "Hilos" msgid "Threshold" msgstr "Límite" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -11057,7 +11135,7 @@ msgstr "La tokenización falló." msgid "Toolbar" msgstr "Barra de herramientas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Superior" @@ -11105,7 +11183,7 @@ msgid "Touch" msgstr "Tocar" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chino tradicional" @@ -11132,7 +11210,7 @@ msgstr "" "Intenta traducir las ramas antes de tiempo, mejorando el rendimiento en la " "mayoría de los casos. Predeterminado en True" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Placa AM Triforce" @@ -11147,8 +11225,8 @@ msgstr "Gatillos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tipo" @@ -11168,7 +11246,7 @@ msgstr "Desconocido" msgid "USA" msgstr "EE. UU." -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB de Gecko" @@ -11405,7 +11483,7 @@ msgstr "Sin signo de 8 bits" msgid "Unsigned Integer" msgstr "Entero sin signo" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11477,6 +11555,10 @@ msgstr "Mando de Wii en vertical" msgid "Usage Statistics Reporting Settings" msgstr "Ajustes de envío de estadísticas de uso" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Utilizar base de datos interna de nombres de juegos" @@ -11489,7 +11571,7 @@ msgstr "Usar estilo personalizado por el usuario" msgid "Use Lossless Codec (FFV1)" msgstr "Usar códec sin pérdida (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usar modo PAL60 (EuRGB60)" @@ -11597,11 +11679,11 @@ msgstr "Interfaz de usuario" msgid "User Style:" msgstr "Estilo de usuario:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Variables del usuario" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11703,7 +11785,7 @@ msgstr "Verificar" msgid "Verify Integrity" msgstr "Verificar integridad" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verificar certificados" @@ -11841,7 +11923,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (modo exclusivo)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "Ruta del WFS:" @@ -12043,7 +12125,7 @@ msgstr "" "arbitrarios.
Si tienes dudas, deja esta opción activada." "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivos USB permitidos para acceso directo a Bluetooth" @@ -12063,7 +12145,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Menú de Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Raíz de la NAND de Wii:" @@ -12089,7 +12171,7 @@ msgstr "Botones del mando de Wii" msgid "Wii Remote Orientation" msgstr "Orientación del mando de Wii" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Ajustes del mando de Wii" @@ -12212,7 +12294,7 @@ msgstr "X" msgid "XF register " msgstr "Registro XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "Dirección de destino del BBA de XLink Kai" @@ -12246,6 +12328,20 @@ msgstr "Sí" msgid "Yes to &All" msgstr "Sí a &todo" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12383,7 +12479,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] y [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -12517,7 +12613,7 @@ msgstr "sin alinear" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Clásico)" @@ -12556,7 +12652,7 @@ msgstr "{0}bloques de {1}. Ratio de compresión {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} no era un directorio, movido a *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Or" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index a2bde2bbd7..8c0157485b 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -60,22 +60,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -254,7 +260,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -641,19 +647,19 @@ msgstr "(خاموش)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -668,7 +674,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -698,7 +704,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -772,7 +778,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -846,11 +852,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<هیچ>" @@ -865,12 +871,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -903,7 +909,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -951,6 +957,11 @@ msgstr "درباره دلفین" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "دقت:" @@ -1102,8 +1113,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "اضافه کردن..." @@ -1174,7 +1185,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1205,7 +1216,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1224,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1231,8 +1242,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1268,7 +1279,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1401,7 +1412,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "نسبت طول به عرض تصویر:" @@ -1478,6 +1489,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1490,7 +1505,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1498,14 +1513,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1536,10 +1551,11 @@ msgid "Backend:" msgstr "پشتوانه:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "ورودی پس زمینه" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1621,15 +1637,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1648,7 +1664,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1679,11 +1695,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1691,7 +1707,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "پائین" @@ -1722,19 +1738,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1866,7 +1890,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1884,8 +1908,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2004,7 +2028,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2026,11 +2050,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "انتخاب فایل برای باز کردن" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2061,7 +2085,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2137,7 +2161,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2183,11 +2207,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2196,8 +2220,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2225,7 +2249,7 @@ msgstr "اتصال" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "اتصال کیبورد USB" @@ -2273,7 +2297,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2369,14 +2393,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2485,14 +2526,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2760,7 +2801,7 @@ msgstr "دسیمال" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2781,11 +2822,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2805,7 +2846,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "آیزو پیش فرز:" @@ -2884,7 +2925,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "شناسایی" @@ -2930,7 +2971,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3054,7 +3095,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3068,7 +3109,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "آیا می خواهید برابرسازی فعلی را متوقف کنید؟" @@ -3099,8 +3140,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "فیلم های تاس دلفین (*.dtm)" @@ -3137,13 +3178,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3157,8 +3198,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3181,7 +3222,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3233,7 +3274,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "مصنوعی" @@ -3273,6 +3314,10 @@ msgstr "نسخه برداری مقصد ای اف بی" msgid "Dump Frames" msgstr "نسخه برداری فریم ها" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3281,7 +3326,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3323,11 +3368,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3337,16 +3382,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3379,7 +3424,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "هلندی" @@ -3435,7 +3480,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3451,7 +3496,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "ریسمان شبیه ساز قبلا اجرا شده است" @@ -3538,11 +3583,11 @@ msgid "Enable Progressive Scan" msgstr "فعال کردن پويش تصاعدی (Progressive Scan)" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "فعال کردن اسکیرین سیور" @@ -3664,7 +3709,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "انگلیسی" @@ -3674,7 +3719,7 @@ msgstr "انگلیسی" msgid "Enhancements" msgstr "بهسازی" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3696,6 +3741,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3708,7 +3757,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3736,12 +3785,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3766,9 +3815,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "خطا" @@ -3864,11 +3913,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4062,7 +4111,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4089,7 +4138,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4101,16 +4150,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4131,7 +4180,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4201,7 +4250,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4212,8 +4261,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4226,7 +4275,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4260,12 +4309,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4291,7 +4340,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4460,7 +4509,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4614,7 +4663,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4662,7 +4711,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4752,7 +4801,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4767,7 +4816,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "فرانسوی" @@ -4807,7 +4856,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4827,7 +4876,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4851,7 +4900,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4876,7 +4925,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4890,7 +4939,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4918,7 +4967,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4931,7 +4980,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4946,11 +4995,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4968,7 +5017,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5062,7 +5111,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5117,7 +5166,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "آلمانی" @@ -5125,11 +5174,11 @@ msgstr "آلمانی" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5320,7 +5369,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5352,7 +5401,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5388,7 +5437,7 @@ msgid "IR" msgstr "فروسرخ" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "میزان حساسیت فروسرخ" @@ -5520,11 +5569,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5552,7 +5601,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5573,15 +5622,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5589,6 +5638,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5628,7 +5684,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "درج کارت اس دی" @@ -5814,7 +5870,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "ایتالیایی" @@ -5906,7 +5962,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "ژاپنی" @@ -5944,7 +6000,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5957,7 +6013,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "کره ای" @@ -6009,7 +6065,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6109,7 +6165,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6368,7 +6424,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6389,7 +6445,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6406,7 +6462,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "کارت حافظه" @@ -6434,7 +6490,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6442,11 +6498,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6456,7 +6512,7 @@ msgstr "" msgid "Misc" msgstr "متفرقه" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "تنظیمات متفرقه" @@ -6496,7 +6552,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6538,7 +6594,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6554,6 +6610,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6584,8 +6645,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6651,7 +6712,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6787,11 +6848,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6817,7 +6878,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "هیچ" @@ -6873,7 +6934,7 @@ msgid "Notice" msgstr "توجه" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6986,7 +7047,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7014,7 +7075,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7036,7 +7097,7 @@ msgstr "نارنجی" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7075,7 +7136,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7211,7 +7272,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7277,7 +7338,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7378,19 +7439,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7418,7 +7479,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7445,7 +7506,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "سوال" @@ -7486,7 +7547,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "محدوده" @@ -7652,8 +7712,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "پاک کردن" @@ -7712,7 +7772,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7746,11 +7806,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7762,7 +7822,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7795,7 +7855,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7878,7 +7938,7 @@ msgstr "شوک" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7890,18 +7950,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7910,11 +7978,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7988,7 +8056,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8085,7 +8153,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8113,7 +8181,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8148,7 +8216,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "جستجوی پوشه های فرعی" @@ -8190,11 +8258,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "انتخاب" @@ -8207,15 +8275,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8287,7 +8355,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8303,17 +8371,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8337,7 +8409,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8345,11 +8417,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "انتخاب فایل ذخیره" @@ -8442,7 +8514,7 @@ msgstr "" msgid "Send" msgstr "فرستادن" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "موقعیت سنسور بار:" @@ -8511,14 +8583,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8825,7 +8897,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "چینی ساده شده" @@ -8886,7 +8958,7 @@ msgstr "" msgid "Slot A" msgstr "شکاف ای" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8894,7 +8966,7 @@ msgstr "" msgid "Slot B" msgstr "شکاف بی" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8902,7 +8974,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8912,11 +8984,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8933,7 +9005,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8947,7 +9019,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "اسپانیایی" @@ -8955,7 +9027,7 @@ msgstr "اسپانیایی" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "حجم صدای اسپیکر:" @@ -8980,7 +9052,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9045,8 +9117,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9101,7 +9173,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9267,12 +9339,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9365,6 +9437,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9378,7 +9456,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "زبان سیستم:" @@ -9421,7 +9499,7 @@ msgstr "گرفتن عکس فوری" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "آزمودن" @@ -9476,7 +9554,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9504,7 +9582,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9540,7 +9618,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9552,11 +9630,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9580,7 +9658,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9591,21 +9669,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9672,7 +9750,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9683,7 +9761,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "نتیجه کد رمزگشایی شده اکشن ریپلی شامل هیچ خطی نیست." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9709,7 +9787,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9722,7 +9800,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9736,7 +9814,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9798,7 +9876,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9835,22 +9913,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9858,13 +9936,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9878,37 +9956,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9932,12 +10010,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9994,7 +10072,7 @@ msgstr "" msgid "Threshold" msgstr "سرحد" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10111,7 +10189,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "بالا" @@ -10159,7 +10237,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "چینی سنتی" @@ -10182,7 +10260,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10197,8 +10275,8 @@ msgstr "دکمه ها" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "نوع" @@ -10218,7 +10296,7 @@ msgstr "" msgid "USA" msgstr "ایالات متحده آمریکا" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10426,7 +10504,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10496,6 +10574,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10508,7 +10590,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10580,11 +10662,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10670,7 +10752,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10791,7 +10873,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10930,7 +11012,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10950,7 +11032,7 @@ msgstr "وی" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "ریشه وی نند:" @@ -10976,7 +11058,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11096,7 +11178,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11130,6 +11212,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11229,7 +11325,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11361,7 +11457,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11396,7 +11492,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index d4d9437b4a..02e0e64ce1 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -28,7 +28,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -40,7 +40,7 @@ msgstr "" "Comme les images de disques GameCube contiennent peu de données de contrôle, " "il peut y avoir des problèmes que Dolphin ne peut détecter." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -77,7 +77,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(Disque %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Non" @@ -86,22 +86,28 @@ msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" "\"{0}\" n'est pas un fichier GCM/ISO valide, ou n'est pas une ISO GC/Wii." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Variable Utilisateur" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -288,7 +294,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n adresse(s) ont été retirées." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Et" @@ -569,7 +575,7 @@ msgstr "Mode &Lecture seule" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&Actualiser la liste" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -675,19 +681,19 @@ msgstr "(aucun)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiplier" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Ajouter" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Virgule" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Soustraire" @@ -702,7 +708,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Diviser" @@ -732,7 +738,7 @@ msgstr "Entier 16 bits signé" msgid "16-bit Unsigned Integer" msgstr "Entier 16 bits non signé" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16/9" @@ -806,7 +812,7 @@ msgstr "4 octets" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blocs)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4/3" @@ -880,11 +886,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x la réso. native (5120x4224) pour 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Inférieur à" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -902,12 +908,12 @@ msgstr "" "disponible au téléchargement. Vous utilisez la version %2.
Voulez-vous " "la mettre à jour ?

Notes de version :

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Supérieur à" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Une session NetPlay est en cours !" @@ -938,7 +944,7 @@ msgstr "" "Une sauvegarde d'état ne peut être chargée sans avoir spécifié quel jeu " "démarrer." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -954,7 +960,7 @@ msgstr "" "fonctionner." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1016,6 +1022,11 @@ msgstr "À propos de Dolphin" msgid "Accelerometer" msgstr "Accéléromètre" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Précision :" @@ -1185,8 +1196,8 @@ msgid "Add to watch" msgstr "Ajouter pour observation" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Ajouter..." @@ -1225,7 +1236,7 @@ msgstr "Adresse :" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "Ajuste le radius cible des côtés du stick simulé." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1275,7 +1286,7 @@ msgstr "" "déstabilisera certains jeux. Faites-le à vos propres risques. Ne nous " "signalez pas de bogues si vous n'utilisez pas la vitesse par défaut. " -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Port jeu avancé" @@ -1288,7 +1299,7 @@ msgstr "Avancé" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "Réglages avancés" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1301,12 +1312,12 @@ msgstr "Aligné sur le type de longueur de données" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "Tout Double" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1314,36 +1325,36 @@ msgid "All Files" msgstr "Tous les fichiers" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Tous les fichiers (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "Tout Flottant" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tous les fichiers GC/Wii" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "Tout Hexadécimal" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tous les états sauvegardés (*.sav *.s##);; Tous les fichiers (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "Tout Entier Signé" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "Tout Entier Non-signé" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1369,7 +1380,7 @@ msgstr "Autoriser des réglages pour région différente" msgid "Allow Usage Statistics Reporting" msgstr "Autoriser l'envoi des statistiques d'utilisation" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Autoriser les écritures sur la carte SD" @@ -1507,7 +1518,7 @@ msgid "Aspect Ratio" msgstr "Format d'écran" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Format d'écran :" @@ -1590,6 +1601,10 @@ msgstr "Cacher automatiquement" msgid "Auto-detect RSO modules?" msgstr "Détecter automatiquement les modules RSO ?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1605,7 +1620,7 @@ msgid "Auxiliary" msgstr "Auxiliaire" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "o" @@ -1613,7 +1628,7 @@ msgstr "o" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT incorrect, Dolphin va quitter" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1623,7 +1638,7 @@ msgstr "" "GameCube valide doit être utilisée. Générez une nouvelle adresse MAC " "commençant par 00:09:bf ou 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS :" @@ -1654,10 +1669,11 @@ msgid "Backend:" msgstr "Moteur :" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Entrée en arrière-plan" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1739,15 +1755,15 @@ msgstr "Beta (mensuelle)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, etc" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binaire SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binaire SSL (lecture)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binaire SSL (écriture)" @@ -1759,14 +1775,14 @@ msgstr "Bitrate (kbps) :" #: Source/Core/DolphinQt/GameList/GameListModel.cpp:231 #: Source/Core/DolphinQt/MenuBar.cpp:641 msgid "Block Size" -msgstr "Taille en blocs" +msgstr "Taille des blocs" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:75 #: Source/Core/DolphinQt/ConvertDialog.cpp:61 msgid "Block Size:" -msgstr "Taille en blocs :" +msgstr "Taille des blocs :" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blocking" @@ -1799,12 +1815,12 @@ msgstr "" msgid "Boot to Pause" msgstr "Démarrer sur Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" "Fichier de sauvegarde BootMii de la NAND (*.bin);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fichier de clés BootMii (*.bin);;Tous les fichiers (*)" @@ -1812,7 +1828,7 @@ msgstr "Fichier de clés BootMii (*.bin);;Tous les fichiers (*)" msgid "Borderless Fullscreen" msgstr "Plein écran sans bords" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Bas" @@ -1843,19 +1859,27 @@ msgstr "Point d'arrêt rencontré ! Sortie abandonnée." msgid "Breakpoints" msgstr "Points d'arrêt" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Adaptateur réseau (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Adaptateur réseau (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Adaptateur réseau (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Erreur d'adaptateur réseau" @@ -1919,7 +1943,7 @@ msgstr "Boutons" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "Par :" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -1999,7 +2023,7 @@ msgstr "Appel de la liste d'affichage à %1 avec pour taille %2" msgid "Callstack" msgstr "Pile d'exécution" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Caméra 1" @@ -2021,8 +2045,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossible de trouver la Wiimote par la gestion de connexion {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Impossible de démarrer une session NetPlay pendant qu'un jeu est en cours " @@ -2159,7 +2183,7 @@ msgstr "Gestionnaire de Cheats" msgid "Check NAND..." msgstr "Vérifier la NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Rechercher en arrière-plan les changements dans la liste des jeux" @@ -2183,13 +2207,13 @@ msgstr "Somme de contrôle" msgid "China" msgstr "Chine" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Choisir un fichier à ouvrir" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" -msgstr "" +msgstr "Choisissez un fichier à ouvrir ou créer" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2218,7 +2242,7 @@ msgid "Classic Controller" msgstr "Manette classique" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2294,7 +2318,7 @@ msgstr "Comparer :" msgid "Compile Shaders Before Starting" msgstr "Compiler les Shaders avant le démarrage" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Compilation des Shaders" @@ -2340,11 +2364,11 @@ msgstr "Configurer la manette" msgid "Configure Dolphin" msgstr "Configurer Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Configurer l'entrée" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Configurer la sortie" @@ -2353,8 +2377,8 @@ msgstr "Configurer la sortie" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmer" @@ -2382,7 +2406,7 @@ msgstr "Connecter" msgid "Connect Balance Board" msgstr "Connecter la Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Connecter le clavier USB" @@ -2430,7 +2454,7 @@ msgstr "Connexion en cours" msgid "Connection Type:" msgstr "Type de connexion :" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Le contenu {0:08x} est corrompu." @@ -2546,14 +2570,31 @@ msgstr "Convergence" msgid "Convergence:" msgstr "Convergence :" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Convertir" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Convertir le fichier..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Convertir les fichiers sélectionnés..." @@ -2671,7 +2712,7 @@ msgstr "" "Impossible de télécharger les informations de mise à jour de Nintendo. " "Vérifiez votre connexion à Internet puis réessayez." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2681,7 +2722,7 @@ msgstr "" "\n" "La console émulée va maintenant s'arrêter." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2990,7 +3031,7 @@ msgstr "Décimal" msgid "Decoding Quality:" msgstr "Qualité de décodage :" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Réduction" @@ -3011,11 +3052,11 @@ msgstr "Réduire" msgid "Decrease IR" msgstr "Baisser" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Réduire X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Réduire Y" @@ -3035,7 +3076,7 @@ msgstr "Appareil par défaut" msgid "Default Font" msgstr "Police par défaut" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO par défaut :" @@ -3114,13 +3155,13 @@ msgstr "Description :" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "Description : " #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Détaché" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Détecter" @@ -3166,7 +3207,7 @@ msgstr "%1 non reconnu comme un fichier XML valide de Riivolution." msgid "Diff" msgstr "Diff" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Assombrit l'écran après 5 minutes d'inactivité." @@ -3316,7 +3357,7 @@ msgstr "Distance parcourue depuis la position neutre." msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Autorisez-vous Dolphin à envoyer des informations à ses développeurs ?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Voulez-vous ajouter \"%1\" à la liste des dossiers de jeux ?" @@ -3330,7 +3371,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Voulez-vous supprimer %n fichier(s) de sauvegarde sélectionné(s) ?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Voulez-vous arrêter l'émulation en cours ?" @@ -3361,8 +3402,8 @@ msgstr "Fichier CSV de signature de Dolphin" msgid "Dolphin Signature File" msgstr "Fichier de signature de Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Films TAS Dolphin (*.dtm)" @@ -3409,7 +3450,7 @@ msgstr "Dolphin est un émulateur de GameCube et Wii, libre et open-source." msgid "Dolphin is too old for traversal server" msgstr "Dolphin est trop ancien pour le serveur traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3417,7 +3458,7 @@ msgstr "" "Dolphin ne peut vérifier les fichiers TGC typiques, car ce ne sont pas des " "dumps de disques." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin ne peut vérifier les disques non licenciés." @@ -3433,8 +3474,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Le système de Dolphin pour les cheats est actuellement désactivé." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domaine" @@ -3457,7 +3498,7 @@ msgstr "Compression de l'image disque terminée." msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3511,7 +3552,7 @@ msgstr "Double cœur (Dual Core)" msgid "Dual View" msgstr "Affichage double" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Factice" @@ -3551,6 +3592,10 @@ msgstr "Copier l'EFB cible" msgid "Dump Frames" msgstr "Enregistrer les images" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Copier les Mip maps" @@ -3559,7 +3604,7 @@ msgstr "Copier les Mip maps" msgid "Dump Objects" msgstr "Copier les objets" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dossier de dump :" @@ -3609,11 +3654,11 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Enregistrer les lectures SSL déchiffrées" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Enregistrer les écritures SSL déchiffrées" @@ -3625,16 +3670,16 @@ msgstr "" "Copie les objets vers User/Dump/Objects/.

Dans le " "doute, décochez cette case." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Options de dump" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Enregistrer les certificats des pairs" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Enregistrer les certificats CA racine" @@ -3676,7 +3721,7 @@ msgstr "Durée de relâchement du bouton Turbo (en images) :" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Néerlandais" @@ -3740,7 +3785,7 @@ msgstr "Effective" msgid "Effective priority" msgstr "Priorité effective" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "Eio" @@ -3756,7 +3801,7 @@ msgstr "Buffer d'image embarqué (Embedded Frame Buffer - EFB)" msgid "Empty" msgstr "Vide" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Thread d'émulation déjà en cours d'exécution" @@ -3834,7 +3879,7 @@ msgstr "Activer le FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "Activer les mods graphiques" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -3846,11 +3891,11 @@ msgid "Enable Progressive Scan" msgstr "Activer le balayage progressif" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Activer le vibreur" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Activer l'économiseur d'écran" @@ -4020,7 +4065,7 @@ msgstr "Enet ne s'est pas initialisé" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Anglais" @@ -4030,7 +4075,7 @@ msgstr "Anglais" msgid "Enhancements" msgstr "Améliorations" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "Entrez l'adresse IP de l'appareil exécutant le client XLink Kai :" @@ -4052,6 +4097,10 @@ msgstr "Entrez la nouvelle adresse MAC de l'adaptateur réseau :" msgid "Enter password" msgstr "Entrez le mot de passe" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Entrer l'adresse du module RSO :" @@ -4064,7 +4113,7 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4092,12 +4141,12 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4122,9 +4171,9 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erreur" @@ -4230,11 +4279,11 @@ msgstr "" "chargées. Les jeux peuvent ne pas afficher les polices correctement, ou " "planter." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Des erreurs ont été trouvées dans {0} blocs de la partition n°{1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Des erreurs ont été trouvées dans {0} blocs inutilisés de la partition n°{1}." @@ -4447,7 +4496,7 @@ msgid "Extracting Directory..." msgstr "Extraction du dossier..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4476,9 +4525,9 @@ msgstr "Impossible d'ajouter cette session à l'index NetPlay : %1" msgid "Failed to append to signature file '%1'" msgstr "Impossible d'ajouter cela au fichier de signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "Impossible d'obtenir une interface pour l'accès direct Bluetooth : {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4488,16 +4537,16 @@ msgstr "Impossible de se connecter à Redump.org" msgid "Failed to connect to server: %1" msgstr "Impossible de se connecter au serveur : %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Impossible de créer D3D swap chain" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Impossible de créer le contexte D3D12" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Impossible de créer les ressources globales pour D3D12" @@ -4522,7 +4571,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Impossible de supprimer le fichier sélectionné." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossible de détacher le driver du Kernel pour l'adaptateur BT : {0}" @@ -4603,7 +4652,7 @@ msgstr "" "Essayez de réparer votre NAND (Outils -> Gestion de NAND -> Vérifier la " "NAND...), et importez à nouveau la sauvegarde." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Impossible d'initialiser la base" @@ -4617,8 +4666,8 @@ msgstr "" "Vérifiez que votre carte graphique prend au minimum en charge D3D 10.0\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Impossible d'initialiser les classes du moteur de rendu" @@ -4631,7 +4680,7 @@ msgstr "Impossible d'installer le pack %1" msgid "Failed to install this title to the NAND." msgstr "Impossible d'installer ce titre dans la NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4669,12 +4718,12 @@ msgstr "" "la mise à jour KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Impossible d'ouvrir \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossible d'utiliser l'appareil Bluetooth : {0}" @@ -4703,7 +4752,7 @@ msgstr "" msgid "Failed to open file." msgstr "Impossible d'ouvrir le fichier." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Impossible d'accéder au serveur" @@ -4890,7 +4939,7 @@ msgstr "" "Désynchro fatale. Abandon de la lecture. (Erreur dans Play Wiimote : {0} != " "{1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Champ de vision" @@ -5060,7 +5109,7 @@ msgstr "" "Pour des instructions d'installation, consultez cette page." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5122,7 +5171,7 @@ msgstr "" msgid "Format:" msgstr "Format :" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5216,7 +5265,7 @@ msgstr "" "instructions détaillées, reportez-vous à cette page." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Vue libre" @@ -5231,7 +5280,7 @@ msgstr "Activer la vue libre" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Français" @@ -5271,7 +5320,7 @@ msgstr "Fonctions parentes" msgid "Function calls" msgstr "Fonctions appelées" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Fonctions" @@ -5291,7 +5340,7 @@ msgstr "Cœur GBA" msgid "GBA Port %1" msgstr "Port GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "Réglages GBA" @@ -5315,7 +5364,7 @@ msgstr "GBA%1 ROM désactivée" msgid "GC Port %1" msgstr "Port GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Dossier GCI" @@ -5351,7 +5400,7 @@ msgstr "" "D'autres erreurs seront envoyées dans le journal du moteur vidéo et\n" "Dolphin va maintenant probablement planter ou bloquer. Fun !" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE est de {0} - il doit être au minimum de 1024." @@ -5368,7 +5417,7 @@ msgstr "" "de cibles.\n" "GPU : Est-ce que votre carte graphique prend en charge OpenGL 3.0 ?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" "GPU : ERREUR OGL : Est-ce que votre carte graphique prend en charge OpenGL " @@ -5406,7 +5455,7 @@ msgstr "" "GPU : ERREUR OGL : Nécessite GL_ARB_vertex_array_object.\n" "GPU : Est-ce que votre carte graphique prend en charge OpenGL 3.0 ?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5424,7 +5473,7 @@ msgstr "" "GPU : Est-ce que votre carte graphique prend en charge OpenGL 3.0 ?\n" "GPU : Vos pilotes prennent en charge GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5441,11 +5490,11 @@ msgstr "Jeu" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartes Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5465,7 +5514,7 @@ msgstr "Configuration du jeu" msgid "Game Details" msgstr "Détails du jeu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Dossier de jeux" @@ -5492,14 +5541,17 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"Le fichier du jeu a un hash différent ; faites un clic-droit dessus, " +"sélectionnez Propriétés, cliquer sur l'onglet Vérifier, et sélectionnez " +"Vérifier l'intégrité pour vérifier le hash." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "Le jeu a un numéro de disque différent" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "Le jeu a une révision différente" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5514,7 +5566,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "La région du jeu ne concorde pas" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5561,7 +5613,7 @@ msgid "GameCube Memory Cards" msgstr "Cartes mémoire de GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Cartes mémoire de GameCube (*.raw *.gcp)" @@ -5575,7 +5627,7 @@ msgstr "Entrée TAS %1 pour GameCube" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "Taille des côtés" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5616,7 +5668,7 @@ msgstr "Nom des symboles générés à partir de '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Allemand" @@ -5624,11 +5676,11 @@ msgstr "Allemand" msgid "Germany" msgstr "Allemagne" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "Échec de GetDeviceList : {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "Gio" @@ -5648,7 +5700,7 @@ msgstr "Graphismes" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "Mods graphiques" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5657,7 +5709,7 @@ msgstr "Options graphiques" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "Les mods graphiques sont actuellement désactivés." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5829,7 +5881,7 @@ msgstr "Autorité de l'hôte sur les entrées activée" msgid "Host with NetPlay" msgstr "Hôte avec Netplay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Nom de l'hôte" @@ -5861,7 +5913,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Je suis conscient des risques et souhaite continuer" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5903,7 +5955,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilité de l'IR :" @@ -6094,11 +6146,11 @@ msgstr "Importer le(s) fichier(s) de sauvegarde" msgid "Import Wii Save..." msgstr "Importer une sauvegarde Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importation de la sauvegarde de la NAND..." -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6134,7 +6186,7 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Augmentation" @@ -6155,15 +6207,15 @@ msgstr "Accélérer" msgid "Increase IR" msgstr "Augmenter" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Augmenter X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Augmenter Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Rotation incrémentale" @@ -6171,6 +6223,13 @@ msgstr "Rotation incrémentale" msgid "Incremental Rotation (rad/sec)" msgstr "Rotation incrémentale (rad/sec)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6210,7 +6269,7 @@ msgstr "Force de l'entrée à ignorer et remapper." msgid "Insert &nop" msgstr "Insérer &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Insérer une carte SD" @@ -6400,7 +6459,7 @@ msgstr "Adresse à surveiller non valide : %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italien" @@ -6495,7 +6554,7 @@ msgid "Japan" msgstr "Japon" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonais" @@ -6533,7 +6592,7 @@ msgstr "Clavier" msgid "Keys" msgstr "Touches" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "Kio" @@ -6546,7 +6605,7 @@ msgid "Korea" msgstr "Corée" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coréen" @@ -6598,7 +6657,7 @@ msgstr "Latence : ~40ms" msgid "Latency: ~80 ms" msgstr "Latence : ~80ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6704,7 +6763,7 @@ msgstr "Charger le Menu Principal de la GameCube" msgid "Load Last State" msgstr "Charger le dernier état" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Charger le dossier :" @@ -6854,6 +6913,9 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"Charge les mods graphiques à partir du dossier User/Load/GraphicsMods/." +"

Dans le doute, décochez cette case." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6976,7 +7038,7 @@ msgstr "Échantillonnage manuel de la texture" msgid "Mapping" msgstr "Mappage" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "ROM masque" @@ -6997,7 +7059,7 @@ msgstr "Taille maximum du tampon changée à %1" msgid "Maximum tilt angle." msgstr "Angle maximum d'inclinaison." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Ceci peut ralentir le Menu Wii et quelques jeux." @@ -7014,7 +7076,7 @@ msgstr "Mémoire" msgid "Memory Breakpoint" msgstr "Point d'arrêt mémoire" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Carte mémoire" @@ -7046,7 +7108,7 @@ msgstr "" "MemoryCard : l'écriture a été appelée avec une mauvaise adresse de " "destination ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7058,11 +7120,11 @@ msgstr "" "irréversible, il est donc recommandé de conserver des sauvegardes de chacune " "des NAND. Êtes-vous sûr de vouloir continuer ?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "Mio" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -7072,7 +7134,7 @@ msgstr "Micro" msgid "Misc" msgstr "Divers" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Paramètres divers" @@ -7125,7 +7187,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Modules trouvés : %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7170,7 +7232,7 @@ msgid "Mouse Cursor will never be visible while a game is running." msgstr "" "Le curseur de la souris ne sera jamais visible lorsqu'un jeu sera en cours." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Déplacement" @@ -7185,6 +7247,13 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"Le film {0} indique qu'il démarre à partir d'un état de sauvegarde, mais {1} " +"n'existe pas. Le film ne va probablement pas être synchro !" + +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7216,8 +7285,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7283,7 +7352,7 @@ msgstr "NetPlay est désynchronisé. Il n'y a aucun moyen d'y remédier." msgid "Network" msgstr "Réseau" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Format d'enregistrement du réseau :" @@ -7409,7 +7478,7 @@ msgstr "Aucun souci n'a été détecté" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "Aucun jeu correspondant n'a été trouvé" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7419,11 +7488,11 @@ msgstr "Aucun chemin trouvé dans le fichier M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Aucune fonction restante possible. Réinitialiser." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Aucun problème n'a été trouvé." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7455,7 +7524,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Aucune" @@ -7495,7 +7564,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "Introuvable" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7518,7 +7587,7 @@ msgid "Notice" msgstr "Message important" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Null" @@ -7635,7 +7704,7 @@ msgstr "Ouvrir un XML Riivolution..." msgid "Open Wii &Save Folder" msgstr "Ouvrir le dossier de &sauvegarde Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Ouvrir le dossier de dump" @@ -7663,7 +7732,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Opérateurs" @@ -7685,7 +7754,7 @@ msgstr "Orange" msgid "Orbital" msgstr "Orbite" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7724,7 +7793,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7860,7 +7929,7 @@ msgstr "Physique" msgid "Physical address space" msgstr "Espace d'adresse physique" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "Pio" @@ -7928,7 +7997,7 @@ msgstr "Pointer" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "ROM sur Port %1 :" @@ -8038,7 +8107,7 @@ msgstr "Privée et publique" msgid "Problem" msgstr "Problème" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8046,7 +8115,7 @@ msgstr "" "Des problèmes d'une haute importance ont été trouvés. Le jeu ne fonctionnera " "probablement pas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8054,7 +8123,7 @@ msgstr "" "Des problèmes de faible importance ont été trouvés. Ils n'empêcheront " "probablement pas le jeu de fonctionner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8084,7 +8153,7 @@ msgstr "Publique" msgid "Purge Game List Cache" msgstr "Purger le cache de la liste de jeu" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Placez les ROM d'IPL dans User/GC/." @@ -8113,7 +8182,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Question" @@ -8154,7 +8223,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "Images GC/Wii en RVZ (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Etendue" @@ -8329,8 +8397,8 @@ msgstr "Me rappeler plus tard" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Retirer" @@ -8394,7 +8462,7 @@ msgstr "Rapport : GCIFolder écrit vers le bloc non alloué {0:#x}" msgid "Request to Join Your Party" msgstr "Quelqu'un demande à rejoindre votre partie" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8428,11 +8496,11 @@ msgstr "Réinitialiser le serveur Traversal à %1:%2" msgid "Reset Traversal Settings" msgstr "Réinitialiser les paramètres traversal" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Réinitialiser les valeurs" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Réinitialiser la vue" @@ -8444,7 +8512,7 @@ msgstr "Réinitialiser tous les jumelages sauvegardés des Wiimotes" msgid "Resource Pack Manager" msgstr "Gestionnaire de Packs de Ressources" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Dossier du Pack de Ressources :" @@ -8477,7 +8545,7 @@ msgstr "Révision" msgid "Revision: %1" msgstr "Révision : %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8565,7 +8633,7 @@ msgstr "Vibreur" msgid "Run &To Here" msgstr "Exécu&ter jusqu'ici" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Exécuter les cœurs de GBA sur des threads dédiés" @@ -8577,18 +8645,26 @@ msgstr "Russie" msgid "SD Card" msgstr "Carte SD" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "Image de carte SD (*.raw);;Tous les fichiers (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Carte SD :" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "Racine de la carte SD :" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8597,11 +8673,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1 :" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1 :" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "Contexte SSL" @@ -8675,7 +8751,7 @@ msgstr "Sauvegarder l'ancien état" msgid "Save Preset" msgstr "Enregistrer le préréglage" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Sauvegarder le fichier d'enregistrement sous" @@ -8775,7 +8851,7 @@ msgstr "" "sauvegarde avant de les écraser.\n" "Écraser maintenant ?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Placer la sauvegarde dans le même dossier que la ROM" @@ -8805,7 +8881,7 @@ msgstr "" "La réinitialisation des sauvegardes du jumelage des Wiimotes ne peut être " "fait que lorsqu'un jeu est en cours d'émulation." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Sauvegardes :" @@ -8842,7 +8918,7 @@ msgstr "Rechercher l'adresse" msgid "Search Current Object" msgstr "Chercher l'objet actuel" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Chercher dans les sous-dossiers" @@ -8887,11 +8963,11 @@ msgid "Section that contains most CPU and Hardware related settings." msgstr "" "Section contenant la plupart des paramètres liés au CPU et au matériel." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Options de sécurité" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Sélectionner" @@ -8904,15 +8980,15 @@ msgstr "Sélectionner le dossier pour le dump :" msgid "Select Export Directory" msgstr "Sélectionner le dossier d'exportation" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Sélectionner le BIOS de la GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Sélectionner la ROM GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Sélectionner le dossier des sauvegardes GBA" @@ -8984,7 +9060,7 @@ msgstr "Emplacement 8" msgid "Select State Slot 9" msgstr "Emplacement 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Sélectionner le chemin de WFS" @@ -9000,17 +9076,21 @@ msgstr "Sélectionner un dossier" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Sélectionner un fichier" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Sélectionner un Jeu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Sélectionner une image de carte SD" @@ -9034,7 +9114,7 @@ msgstr "Sélectionner les cartes e-Reader" msgid "Select the RSO module address:" msgstr "Sélectionner l'adresse du module RSO :" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Sélectionnez le fichier d'enregistrement à lire" @@ -9042,11 +9122,11 @@ msgstr "Sélectionnez le fichier d'enregistrement à lire" msgid "Select the Virtual SD Card Root" msgstr "Sélectionner le dossier racine de la carte SD virtuelle" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Sélectionner le fichier des clés (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Sélectionner le fichier à enregistrer" @@ -9171,7 +9251,7 @@ msgstr "" msgid "Send" msgstr "Envoyer" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Position de la Sensor Bar :" @@ -9244,7 +9324,7 @@ msgstr "Définir l'adresse de fin du symbole" msgid "Set symbol size (%1):" msgstr "Entrer la taille du symbole (%1) :" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9254,7 +9334,7 @@ msgstr "" "pour les jeux.\n" "Peut ne pas fonctionner pour tous les jeux." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Définit la langue du système de la Wii." @@ -9475,12 +9555,12 @@ msgstr "Afficher dans la &mémoire" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "Afficher dans le code" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "Afficher dans la mémoire" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" @@ -9488,7 +9568,7 @@ msgstr "Afficher dans le &code" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "Afficher dans la mémoire" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9583,7 +9663,7 @@ msgid "Signed Integer" msgstr "Entier signé" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chinois simplifié" @@ -9653,7 +9733,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A :" @@ -9661,7 +9741,7 @@ msgstr "Slot A :" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B :" @@ -9670,7 +9750,7 @@ msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" "Décale la position du stick analogique vers l'axe octogonal le plus proche." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Table des sockets" @@ -9680,11 +9760,11 @@ msgstr "Table des sockets" msgid "Software Renderer" msgstr "Rendu logiciel" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Des données n'ont pu être lues." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9705,7 +9785,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Trier par ordre alphabétique" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Son :" @@ -9719,7 +9799,7 @@ msgstr "Espagne" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Espagnol" @@ -9727,7 +9807,7 @@ msgstr "Espagnol" msgid "Speaker Pan" msgstr "Volume du haut-parleur" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volume du haut-parleur :" @@ -9763,7 +9843,7 @@ msgstr "" "compresser.

Dans le doute, sélectionnez 6." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9828,8 +9908,8 @@ msgstr "Démarrer avec les patchs Riivolution..." msgid "Started game" msgstr "Jeu démarré" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9884,7 +9964,7 @@ msgstr "Pas à pas réussi !" msgid "Stepping" msgstr "Pas à pas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stéréo" @@ -10060,13 +10140,13 @@ msgstr "Aide" msgid "Supported file formats" msgstr "Formats de fichiers pris en charge" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" "Prend en charge les cartes SD et SDHC. La taille par défaut est de 128 Mo." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -10169,6 +10249,12 @@ msgstr "" "Synchronise les tâches entre le GPU et le CPU pour éviter des blocages " "aléatoires en mode Dual Core. (Coché = Compatible, Décoché = Rapide)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Synchronisation des codes AR..." @@ -10182,7 +10268,7 @@ msgid "Synchronizing save data..." msgstr "Synchronisation des données de sauvegarde..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Langue du système :" @@ -10223,9 +10309,9 @@ msgstr "Capture d'écran" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "La zone d'adresse cible n'est pas valide." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -10284,7 +10370,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "La NAND a été réparée." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10320,7 +10406,7 @@ msgstr "" "La taille des données pour la partition {0} n'est pas uniformément divisible " "par la taille de bloc." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" "Les clés de déchiffrage doivent être ajoutées au fichier de sauvegarde de la " @@ -10363,7 +10449,7 @@ msgstr "La console Wii émulée est déjà à jour." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "L'adresse MAC entrée n'est pas valide." @@ -10375,11 +10461,11 @@ msgstr "Le PID entré n'est pas valide." msgid "The entered VID is invalid." msgstr "Le VID entré n'est pas valide." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "L'expression contient une erreur de syntaxe." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10411,33 +10497,36 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Le fichier {0} était déjà ouvert, son entête n'a pas pu être écrite." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"Le nom du fichier %1 n'est pas conforme au format de code de région de " +"Dolphin pour les cartes mémoires. Veuillez renommer ce fichier en %2, %3 ou " +"%4, correspondant à la région des fichiers de sauvegarde qu'il contient." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "Le système de fichiers n'est pas valide ou ne peut être lu." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Le format dans lequel l'image-disque est sauvegardée n'indique pas sa taille." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "L'ID du jeu est incohérent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "L'ID du jeu est anormalement court." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "L'ID du jeu est {0} au lieu de {1}" @@ -10521,7 +10610,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Le jeu enregistré ({0}) n'est pas le même que le jeu sélectionné ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10536,7 +10625,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Le code AR décrypté ne contient aucune ligne." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10569,7 +10658,7 @@ msgstr "" "'Non'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "L'index de la clé commune spécifiée est {0} au lieu de {1}." @@ -10582,7 +10671,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "La carte mémoire cible contient déjà un fichier nommé \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Le ticket n'est pas correctement signé." @@ -10598,7 +10687,7 @@ msgstr "" "La mise à jour a été annulée. Il est vivement recommandé de la terminer afin " "d'éviter des conflits de versions du logiciel système." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partition de mise à jour ne contient pas l'IOS utilisé par ce titre." @@ -10665,7 +10754,7 @@ msgstr "Ce code Gecko ne contient aucune ligne." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10699,22 +10788,24 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"Cette build de Dolphin n'est pas nativement compatible avec votre CPU.\n" +"Veuillez exécuter la version ARM64 de Dolphin pour une meilleure expérience." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Ceci est irréversible !" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "L'image-disque de débug a la taille d'une image d'un disque commercialisé." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "L'image du disque n'a pas une taille habituelle." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10724,7 +10815,7 @@ msgstr "" "de chargement plus longs. Vous ne pourrez pas partager vos enregistrements " "d'entrées ni utiliser NetPlay avec une personne utilisant un bon dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10736,7 +10827,7 @@ msgstr "" "peut correspondre au CRC32 d'un bon dump même si les fichiers ne sont pas " "identiques." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10745,7 +10836,7 @@ msgstr "" "de dump a sauvegardé l'image-disque en plusieurs parties, vous devez les " "rassembler en un seul fichier." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10762,7 +10853,7 @@ msgstr "Ce fichier ne contient pas de système de fichiers Wii valide." msgid "This file does not look like a BootMii NAND backup." msgstr "Ce fichier ne ressemble pas à une sauvegarde BootMii de la NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10773,7 +10864,7 @@ msgstr "" "entiers du jeu ne fonctionneront pas. Ce problème n'existe généralement que " "sur des copies illégales de jeux." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10784,11 +10875,11 @@ msgstr "" "en charge. Par conséquent, vous pourrez rencontrer des bugs ou blocages " "pendant l'émulation de ce jeu." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Ceci est un dump incorrect." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10796,7 +10887,7 @@ msgstr "" "C'est un mauvais dump. Cela ne veut pas forcément dire que le jeu ne va pas " "fonctionner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10804,7 +10895,7 @@ msgstr "" "C'est un bon dump, d'après le site Redump.org ; mais Dolphin a repéré des " "problèmes. Ceci peut être un bug dans Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Ceci est un dump correct." @@ -10834,12 +10925,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Ce titre ne peut pas être démarré." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Ce titre est réglé pour utiliser un IOS qui n'est pas valide." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Ce titre est réglé pour utiliser une clé partagée non valide." @@ -10915,7 +11006,7 @@ msgstr "Flux" msgid "Threshold" msgstr "Seuil" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "Tio" @@ -11034,7 +11125,7 @@ msgstr "Échec du jetonnage." msgid "Toolbar" msgstr "Barre d'outils" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Haut" @@ -11082,7 +11173,7 @@ msgid "Touch" msgstr "Toucher" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chinois traditionnel" @@ -11107,7 +11198,7 @@ msgstr "" "Essaye de traduire les branches en avance, améliorant les performances dans " "la plupart des cas. Réglé par défaut sur True" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Carte électronique AM Triforce" @@ -11122,8 +11213,8 @@ msgstr "Déclencheurs" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Type" @@ -11143,7 +11234,7 @@ msgstr "INCONNU" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11382,7 +11473,7 @@ msgstr "Non signé 8" msgid "Unsigned Integer" msgstr "Entier non signé" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11454,6 +11545,10 @@ msgstr "Wiimote debout" msgid "Usage Statistics Reporting Settings" msgstr "Paramètres de l'envoi des données statistiques" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Utiliser la base de données interne des noms de jeux" @@ -11466,7 +11561,7 @@ msgstr "Utiliser un style personnalisé par l'utilisateur" msgid "Use Lossless Codec (FFV1)" msgstr "Utiliser un codec sans perte (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Utiliser le mode PAL60 (EuRGB60)" @@ -11576,11 +11671,11 @@ msgstr "Interface utilisateur" msgid "User Style:" msgstr "Style utilisateur :" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Variables utilisateur" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11682,7 +11777,7 @@ msgstr "Vérifier" msgid "Verify Integrity" msgstr "Vérifier l'intégrité" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Vérifier les certificats" @@ -11821,7 +11916,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Mode exclusif)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "Dossier WFS :" @@ -12020,7 +12115,7 @@ msgstr "" "

Dans le doute, cochez cette case." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Périphériques USB autorisés pour une connexion directe à la Wii émulée" @@ -12040,7 +12135,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Menu Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Racine de la NAND (Wii) :" @@ -12066,7 +12161,7 @@ msgstr "Boutons de la Wiimote" msgid "Wii Remote Orientation" msgstr "Orientation de la Wiimote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Paramètres de la Wiimote" @@ -12163,19 +12258,19 @@ msgstr "Écrire dans la fenêtre" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "Mauvais numéro de disque" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "Mauvais hash" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "Mauvaise région" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "Mauvaise révision" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12188,7 +12283,7 @@ msgstr "X" msgid "XF register " msgstr "Registre XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "Adresse de destination de XLink Kai BBA" @@ -12222,6 +12317,20 @@ msgstr "Oui" msgid "Yes to &All" msgstr "Oui à to&ut" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12362,7 +12471,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] et [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -12496,7 +12605,7 @@ msgstr "non aligné" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Chefs-d'œuvre)" @@ -12533,7 +12642,7 @@ msgstr "{0} blocs sur {1}. Ratio de compression : {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} n'était pas un dossier, déplacé vers *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Or" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index f9b810a577..3f5f6d08d3 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -60,22 +60,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -254,7 +260,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -641,19 +647,19 @@ msgstr "(isključeno)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -668,7 +674,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -698,7 +704,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -772,7 +778,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -846,11 +852,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -865,12 +871,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -903,7 +909,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -951,6 +957,11 @@ msgstr "O Dolphin-u" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Kvaliteta:" @@ -1102,8 +1113,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Dodaj..." @@ -1174,7 +1185,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1205,7 +1216,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1224,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1231,8 +1242,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1268,7 +1279,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1401,7 +1412,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Omjer Slike:" @@ -1478,6 +1489,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1490,7 +1505,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1498,14 +1513,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1536,10 +1551,11 @@ msgid "Backend:" msgstr "Upravljač:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Prati unos podataka i u pozadini" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1621,15 +1637,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1648,7 +1664,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1679,11 +1695,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1691,7 +1707,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Dno" @@ -1722,19 +1738,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1866,7 +1890,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1884,8 +1908,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2004,7 +2028,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2026,11 +2050,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Odaberite datoteku za otvaranje" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2061,7 +2085,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2137,7 +2161,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2183,11 +2207,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2196,8 +2220,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2225,7 +2249,7 @@ msgstr "Spoji" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Priključite USB tipkovnicu" @@ -2273,7 +2297,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2369,14 +2393,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2485,14 +2526,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2760,7 +2801,7 @@ msgstr "Decimalan" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2781,11 +2822,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2805,7 +2846,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Uobičajeni ISO:" @@ -2884,7 +2925,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Otkrij" @@ -2930,7 +2971,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3054,7 +3095,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3068,7 +3109,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Želite li zaustaviti emulaciju?" @@ -3099,8 +3140,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Filmovi (*.dtm)" @@ -3137,13 +3178,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3157,8 +3198,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3181,7 +3222,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3233,7 +3274,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Imitacija" @@ -3273,6 +3314,10 @@ msgstr "Dumpiraj odabranu EFB metu" msgid "Dump Frames" msgstr "Dumpiraj Slike" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3281,7 +3326,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3323,11 +3368,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3337,16 +3382,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3379,7 +3424,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Nizozemski" @@ -3435,7 +3480,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3451,7 +3496,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emu Thread je već pokrenut" @@ -3538,11 +3583,11 @@ msgid "Enable Progressive Scan" msgstr "Omogućite Progresivno Skeniranje" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Omogućite Čuvar Zaslona" @@ -3664,7 +3709,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engleski" @@ -3674,7 +3719,7 @@ msgstr "Engleski" msgid "Enhancements" msgstr "Poboljšanja" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3696,6 +3741,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3708,7 +3757,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3736,12 +3785,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3766,9 +3815,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Pogreška" @@ -3864,11 +3913,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4062,7 +4111,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4089,7 +4138,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4101,16 +4150,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4131,7 +4180,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4201,7 +4250,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4212,8 +4261,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4226,7 +4275,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4260,12 +4309,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4291,7 +4340,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4460,7 +4509,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4614,7 +4663,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4662,7 +4711,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4752,7 +4801,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4767,7 +4816,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francuski" @@ -4807,7 +4856,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4827,7 +4876,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4851,7 +4900,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4876,7 +4925,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4890,7 +4939,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4918,7 +4967,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4931,7 +4980,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4946,11 +4995,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4968,7 +5017,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5062,7 +5111,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5117,7 +5166,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Njemački" @@ -5125,11 +5174,11 @@ msgstr "Njemački" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5320,7 +5369,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5352,7 +5401,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5388,7 +5437,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR Osjetljivost:" @@ -5520,11 +5569,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5552,7 +5601,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5573,15 +5622,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5589,6 +5638,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5628,7 +5684,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Umetni SD karticu" @@ -5814,7 +5870,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Talijanski" @@ -5906,7 +5962,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japanski" @@ -5944,7 +6000,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5957,7 +6013,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korejski" @@ -6009,7 +6065,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6109,7 +6165,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6368,7 +6424,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6389,7 +6445,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6406,7 +6462,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Memorijska Kartica" @@ -6434,7 +6490,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6442,11 +6498,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6456,7 +6512,7 @@ msgstr "" msgid "Misc" msgstr "Razno" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Razne Postavke" @@ -6496,7 +6552,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6538,7 +6594,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6554,6 +6610,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6584,8 +6645,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6651,7 +6712,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6787,11 +6848,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6817,7 +6878,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Ništa" @@ -6873,7 +6934,7 @@ msgid "Notice" msgstr "Napomena" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6986,7 +7047,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7014,7 +7075,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7036,7 +7097,7 @@ msgstr "Narančasti" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7075,7 +7136,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7211,7 +7272,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7277,7 +7338,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7378,19 +7439,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7418,7 +7479,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7445,7 +7506,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pitanje" @@ -7486,7 +7547,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Domet" @@ -7652,8 +7712,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Ukloni" @@ -7712,7 +7772,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7746,11 +7806,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7762,7 +7822,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7795,7 +7855,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7878,7 +7938,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7890,18 +7950,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7910,11 +7978,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7988,7 +8056,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8085,7 +8153,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8113,7 +8181,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8148,7 +8216,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Pretraži Podmape" @@ -8190,11 +8258,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Odaberi" @@ -8207,15 +8275,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8287,7 +8355,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8303,17 +8371,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8337,7 +8409,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8345,11 +8417,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Odaberite snimak igre" @@ -8442,7 +8514,7 @@ msgstr "" msgid "Send" msgstr "Poslati" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Pozicija Senzora:" @@ -8511,14 +8583,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8825,7 +8897,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" @@ -8886,7 +8958,7 @@ msgstr "" msgid "Slot A" msgstr "Utor A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8894,7 +8966,7 @@ msgstr "" msgid "Slot B" msgstr "Utor B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8902,7 +8974,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8912,11 +8984,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8933,7 +9005,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8947,7 +9019,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Španjolski" @@ -8955,7 +9027,7 @@ msgstr "Španjolski" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Glasnoća Zvučnika:" @@ -8980,7 +9052,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9045,8 +9117,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9101,7 +9173,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9267,12 +9339,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9365,6 +9437,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9378,7 +9456,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Jezik Sustava:" @@ -9421,7 +9499,7 @@ msgstr "Uslikaj Ekran" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Testirati" @@ -9476,7 +9554,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9504,7 +9582,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9540,7 +9618,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9552,11 +9630,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9580,7 +9658,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9591,21 +9669,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9672,7 +9750,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9683,7 +9761,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Rezultirajući de-šifrirani AR kod ne sadrži niti jedan redak." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9709,7 +9787,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9722,7 +9800,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9736,7 +9814,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9796,7 +9874,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9831,22 +9909,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9854,13 +9932,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9874,37 +9952,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9928,12 +10006,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9990,7 +10068,7 @@ msgstr "" msgid "Threshold" msgstr "Prag" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10107,7 +10185,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Vrh" @@ -10155,7 +10233,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Tradicionalni Kineski" @@ -10178,7 +10256,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10193,8 +10271,8 @@ msgstr "Okidači" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tip" @@ -10214,7 +10292,7 @@ msgstr "" msgid "USA" msgstr "SAD" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10422,7 +10500,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10492,6 +10570,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10504,7 +10586,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10576,11 +10658,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10666,7 +10748,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10787,7 +10869,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10926,7 +11008,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10946,7 +11028,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND Korijen:" @@ -10972,7 +11054,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11092,7 +11174,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11126,6 +11208,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11225,7 +11321,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11357,7 +11453,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11392,7 +11488,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index bba7276d80..d7f27ff4ba 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -29,7 +29,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -53,7 +53,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -61,22 +61,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -255,7 +261,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -642,19 +648,19 @@ msgstr "(ki)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -669,7 +675,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -699,7 +705,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -773,7 +779,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -847,11 +853,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "8x eredeti (5120x4224) 5K-hoz" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -866,12 +872,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -893,7 +899,7 @@ msgstr "Egy lemez már behelyezés alatt." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -904,7 +910,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -952,6 +958,11 @@ msgstr "Dolphin névjegy" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Pontosság:" @@ -1103,8 +1114,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Hozzáadás" @@ -1175,7 +1186,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1206,7 +1217,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1214,7 +1225,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1223,7 +1234,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1232,8 +1243,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1269,7 +1280,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1402,7 +1413,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Képarány:" @@ -1479,6 +1490,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1491,7 +1506,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1499,14 +1514,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "Helytelen BAT. A Dolphin most kilép." -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1537,10 +1552,11 @@ msgid "Backend:" msgstr "Háttéralkalmazás:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Háttér bemenet" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1622,15 +1638,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1649,7 +1665,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1680,11 +1696,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1692,7 +1708,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Szegély nélküli teljes képernyő" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Lent" @@ -1723,19 +1739,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1867,7 +1891,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1885,8 +1909,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2006,7 +2030,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2028,11 +2052,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Válassz megnyitandó fájlt" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2063,7 +2087,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2139,7 +2163,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2185,11 +2209,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2198,8 +2222,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2227,7 +2251,7 @@ msgstr "Csatlakozás" msgid "Connect Balance Board" msgstr "Balance Board csatlakoztatása" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "USB billentyűzet csatlakoztatása" @@ -2275,7 +2299,7 @@ msgstr "" msgid "Connection Type:" msgstr "Csatlakozás típusa:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2371,14 +2395,31 @@ msgstr "" msgid "Convergence:" msgstr "Konvergencia:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2487,14 +2528,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2762,7 +2803,7 @@ msgstr "Decimális" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2783,11 +2824,11 @@ msgstr "Emulációs sebesség csökkentése" msgid "Decrease IR" msgstr "IR csökkentése" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2807,7 +2848,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Alapértelmezett ISO:" @@ -2886,7 +2927,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Észlelés" @@ -2932,7 +2973,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Képernyő sötétítése öt perc inaktivitás után." @@ -3056,7 +3097,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3070,7 +3111,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Biztos leállítod az aktuális emulációt?" @@ -3101,8 +3142,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS videók (*.dtm)" @@ -3139,13 +3180,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "A Dolphin túl régi az átjárási szerverhez" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3159,8 +3200,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3183,7 +3224,7 @@ msgstr "Lemezkép tömörítése kész." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3235,7 +3276,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3275,6 +3316,10 @@ msgstr "EFB cél kimentése" msgid "Dump Frames" msgstr "Képkockák kimentése" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3283,7 +3328,7 @@ msgstr "" msgid "Dump Objects" msgstr "Objektumok kimentése" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Kimentési út:" @@ -3325,11 +3370,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3339,16 +3384,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3381,7 +3426,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holland" @@ -3437,7 +3482,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3453,7 +3498,7 @@ msgstr "Beágyazott képkocka puffer (EFB)" msgid "Empty" msgstr "Üres" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Az emulációs szál már fut" @@ -3540,11 +3585,11 @@ msgid "Enable Progressive Scan" msgstr "Progresszív pásztázás használata" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Képernyővédő használata" @@ -3670,7 +3715,7 @@ msgstr "Enet nincs inicializálva" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Angol" @@ -3680,7 +3725,7 @@ msgstr "Angol" msgid "Enhancements" msgstr "Képjavítások" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3702,6 +3747,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3714,7 +3763,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3742,12 +3791,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3772,9 +3821,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Hiba" @@ -3871,11 +3920,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4069,7 +4118,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4096,7 +4145,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4108,16 +4157,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4138,7 +4187,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4208,7 +4257,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4219,8 +4268,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4233,7 +4282,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4267,12 +4316,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4298,7 +4347,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4467,7 +4516,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4621,7 +4670,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4669,7 +4718,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4759,7 +4808,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4774,7 +4823,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francia" @@ -4814,7 +4863,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4834,7 +4883,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4858,7 +4907,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI mappa" @@ -4883,7 +4932,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4897,7 +4946,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4925,7 +4974,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4938,7 +4987,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4953,11 +5002,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance kártyák (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4975,7 +5024,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5069,7 +5118,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5124,7 +5173,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Német" @@ -5132,11 +5181,11 @@ msgstr "Német" msgid "Germany" msgstr "Németország" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5327,7 +5376,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5359,7 +5408,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "Azonosító" @@ -5395,7 +5444,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR érzékenysége:" @@ -5527,11 +5576,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii mentés importálása..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5559,7 +5608,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5580,15 +5629,15 @@ msgstr "Emulációs sebesség növelése" msgid "Increase IR" msgstr "IR növelése" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5596,6 +5645,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5635,7 +5691,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SD kártya behelyezése" @@ -5822,7 +5878,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Olasz" @@ -5914,7 +5970,7 @@ msgid "Japan" msgstr "Japán" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japán" @@ -5952,7 +6008,7 @@ msgstr "Billentyűzet" msgid "Keys" msgstr "Gombok" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5965,7 +6021,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korea" @@ -6017,7 +6073,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6117,7 +6173,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6376,7 +6432,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6397,7 +6453,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Talán lassulást okoz a Wii menüben és néhány játéknál." @@ -6414,7 +6470,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Memóriakártya" @@ -6442,7 +6498,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6450,11 +6506,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6464,7 +6520,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Egyebek" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Egyéb beállítások" @@ -6504,7 +6560,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6546,7 +6602,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6562,6 +6618,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6592,8 +6653,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6659,7 +6720,7 @@ msgstr "Netplay szinkront veszített. Innen már nem lehet visszaállni." msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6795,11 +6856,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6827,7 +6888,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Nincs" @@ -6883,7 +6944,7 @@ msgid "Notice" msgstr "Megjegyzés" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6996,7 +7057,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7024,7 +7085,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7046,7 +7107,7 @@ msgstr "Narancs" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7085,7 +7146,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7221,7 +7282,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7287,7 +7348,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7388,19 +7449,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7428,7 +7489,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7455,7 +7516,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Kérdés" @@ -7496,7 +7557,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Tartomány" @@ -7662,8 +7722,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Törlés" @@ -7722,7 +7782,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7756,11 +7816,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "Átjárási beállítások visszaállítása" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7772,7 +7832,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7805,7 +7865,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7888,7 +7948,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7900,18 +7960,26 @@ msgstr "Oroszország" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD kártya elérési út:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7920,11 +7988,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7998,7 +8066,7 @@ msgstr "Legrégebbi állapot mentése" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8095,7 +8163,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8123,7 +8191,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8158,7 +8226,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Keresés az almappákban" @@ -8200,11 +8268,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Kiválaszt" @@ -8217,15 +8285,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8297,7 +8365,7 @@ msgstr "Állapot kiválasztása, foglalat 8" msgid "Select State Slot 9" msgstr "Állapot kiválasztása, foglalat 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8313,17 +8381,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8347,7 +8419,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8355,11 +8427,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Válassz mentési fájlt" @@ -8452,7 +8524,7 @@ msgstr "" msgid "Send" msgstr "Küldés" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Érzékelősáv helyzete:" @@ -8521,7 +8593,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8531,7 +8603,7 @@ msgstr "" "helyett.\n" "Nem biztos, hogy minden játékkal működik." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "A Wii rendszer nyelve." @@ -8838,7 +8910,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Egyszerűsített kínai" @@ -8899,7 +8971,7 @@ msgstr "" msgid "Slot A" msgstr "Foglalat A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8907,7 +8979,7 @@ msgstr "" msgid "Slot B" msgstr "Foglalat B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8915,7 +8987,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8925,11 +8997,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8946,7 +9018,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8960,7 +9032,7 @@ msgstr "Spanyolország" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spanyol" @@ -8968,7 +9040,7 @@ msgstr "Spanyol" msgid "Speaker Pan" msgstr "Hangszóró pásztázás" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Hangszóró hangerő:" @@ -8993,7 +9065,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9058,8 +9130,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9114,7 +9186,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9280,12 +9352,12 @@ msgstr "Támogatás" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9378,6 +9450,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9391,7 +9469,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Rendszer nyelve:" @@ -9434,7 +9512,7 @@ msgstr "Pillanatkép készítése" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Teszt" @@ -9489,7 +9567,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9517,7 +9595,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9553,7 +9631,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9565,11 +9643,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9593,7 +9671,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9604,21 +9682,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9685,7 +9763,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9696,7 +9774,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "A kapott dekódolt AR kód nem tartalmaz sorokat." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9722,7 +9800,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9735,7 +9813,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9749,7 +9827,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9811,7 +9889,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9848,22 +9926,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9871,13 +9949,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9891,37 +9969,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9945,12 +10023,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10011,7 +10089,7 @@ msgstr "" msgid "Threshold" msgstr "Küszöbérték" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10128,7 +10206,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Fent" @@ -10176,7 +10254,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Hagyományos kínai" @@ -10199,7 +10277,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10214,8 +10292,8 @@ msgstr "Ravaszok" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Típus" @@ -10235,7 +10313,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10443,7 +10521,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10513,6 +10591,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "Használati statisztika-jelentés beállítások" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10525,7 +10607,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 mód használata (EuRGB60)" @@ -10598,11 +10680,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10688,7 +10770,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10809,7 +10891,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10948,7 +11030,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10968,7 +11050,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND gyökér:" @@ -10994,7 +11076,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11114,7 +11196,7 @@ msgstr "X" msgid "XF register " msgstr "XF regiszter " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11148,6 +11230,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11248,7 +11344,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11380,7 +11476,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11415,7 +11511,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/it.po b/Languages/po/it.po index 01c808c154..c2a355929e 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " "1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgstr "" "Poiché le immagini disco GameCube contengono pochi dati di controllo, " "potrebbero esserci problemi che Dolphin non è in grado di rilevare." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -69,7 +69,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disco %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Not" @@ -77,22 +77,28 @@ msgstr "! Not" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\" è un file GCM/ISO non valido, oppure non è un ISO GC/Wii." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Variabile Utente" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -279,7 +285,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "Indirizzi rimossi: %n" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& And" @@ -560,7 +566,7 @@ msgstr "Modalità &Sola-lettura" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "&Aggiorna Elenco" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -666,19 +672,19 @@ msgstr "(nessuno)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Moltiplica" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Aggiungi" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Virgola" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Sottrai" @@ -693,7 +699,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Dividi" @@ -723,7 +729,7 @@ msgstr "Signed Integer 16-bit" msgid "16-bit Unsigned Integer" msgstr "Unsigned Integer 16-bit" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -797,7 +803,7 @@ msgstr "4 Bytes" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blocchi)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -871,11 +877,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Nativo (5120x4224) per 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Minore-di" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -893,12 +899,12 @@ msgstr "" "Dolphin %1. La tua versione è %2.
Vuoi avviare l'aggiornamento?" "

Note di Rilascio:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Maggiore-di" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Una sessione NetPlay è già in corso!" @@ -928,7 +934,7 @@ msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Uno stato salvato non può essere caricato senza indicare quale gioco avviare." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -943,7 +949,7 @@ msgstr "" "Wii." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1005,6 +1011,11 @@ msgstr "A proposito di Dolphin" msgid "Accelerometer" msgstr "Accelerometro" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precisione:" @@ -1174,8 +1185,8 @@ msgid "Add to watch" msgstr "Aggiungi espressione di controllo" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Aggiungi..." @@ -1214,7 +1225,7 @@ msgstr "Indirizzo:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "Imposta il raggio disponibile per lo slot stick simulato" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1267,7 +1278,7 @@ msgstr "" "Si prega di non segnalare bug che si verificano utilizzando un clock non di " "default." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Porta Gioco Advance" @@ -1280,7 +1291,7 @@ msgstr "Avanzate" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "Impostazioni Avanzate" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1298,7 +1309,7 @@ msgstr "Tutto Double" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1306,7 +1317,7 @@ msgid "All Files" msgstr "Tutti i File" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Tutti i File (*)" @@ -1315,7 +1326,7 @@ msgstr "Tutti i File (*)" msgid "All Float" msgstr "Tutto Float" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Tutti i file GC/Wii" @@ -1324,8 +1335,8 @@ msgstr "Tutti i file GC/Wii" msgid "All Hexadecimal" msgstr "Tutto Esadecimale" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Tutti i Salvataggi di Stati di Gioco (*.sav *.s##);; Tutti i File (*)" @@ -1361,7 +1372,7 @@ msgstr "Permetti Impostazioni Regione Discordanti" msgid "Allow Usage Statistics Reporting" msgstr "Permetti Report Statistiche d'Uso" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Permetti Scrittura su Scheda SD" @@ -1498,7 +1509,7 @@ msgid "Aspect Ratio" msgstr "Rapporto d'aspetto" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Rapporto d'Aspetto:" @@ -1580,6 +1591,10 @@ msgstr "Nascondi Automaticamente" msgid "Auto-detect RSO modules?" msgstr "Individua automaticamente i moduli RSO?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1595,7 +1610,7 @@ msgid "Auxiliary" msgstr "Ausiliario" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1603,7 +1618,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT errato. Dolphin verrà chiuso." -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1613,7 +1628,7 @@ msgstr "" "un indirizzo MAC Nintendo GameCube valido. Genera un nuovo indirizzo MAC che " "cominci con 00:09:bf oppure 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1644,10 +1659,11 @@ msgid "Backend:" msgstr "Motore:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Input in Background" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1730,15 +1746,15 @@ msgstr "Beta (una volta al mese)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, ecc" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binary SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binary SSL (lettura)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binary SSL (scrittura)" @@ -1757,7 +1773,7 @@ msgstr "Dimensione Blocco" msgid "Block Size:" msgstr "Dimensione Blocco:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blocking" @@ -1790,11 +1806,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Avvia in Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "File di backup NAND BootMII (*.bin);;Tutti i File (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "File chiavi BootMii (*.bin);;Tutti i File (*)" @@ -1802,7 +1818,7 @@ msgstr "File chiavi BootMii (*.bin);;Tutti i File (*)" msgid "Borderless Fullscreen" msgstr "Schermo Intero senza bordi" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Sotto" @@ -1834,19 +1850,27 @@ msgstr "" msgid "Breakpoints" msgstr "Punti di interruzione" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Adattatore Broadband (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Adattatore Broadband (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Adattatore Broadband (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Errore Broadband Adapter" @@ -1910,7 +1934,7 @@ msgstr "Pulsanti" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "Da:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -1990,7 +2014,7 @@ msgstr "Chiamata display list a %1 con dimensione %2" msgid "Callstack" msgstr "Stack di chiamate" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Camera 1" @@ -2010,8 +2034,8 @@ msgstr "È possibile generare codici AR solo per valori nella memoria virtuale" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Impossibile trovare Wii Remote con handle di connessione {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Non è possibile avviare una sessione NetPlay se un gioco è in esecuzione!" @@ -2142,7 +2166,7 @@ msgstr "Gestione Codici" msgid "Check NAND..." msgstr "Controlla NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Controlla cambiamenti nella Lista dei Giochi in Background" @@ -2166,11 +2190,11 @@ msgstr "Checksum" msgid "China" msgstr "Cina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Scegli un file da aprire" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "Scegli un file da aprire o creare" @@ -2201,7 +2225,7 @@ msgid "Classic Controller" msgstr "Controller Classico" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2277,7 +2301,7 @@ msgstr "Comparando:" msgid "Compile Shaders Before Starting" msgstr "Compila gli Shader Prima dell'Avvio" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Compilazione degli Shader" @@ -2323,11 +2347,11 @@ msgstr "Configura Controller" msgid "Configure Dolphin" msgstr "Configura Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Configura Input" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Configura Output" @@ -2336,8 +2360,8 @@ msgstr "Configura Output" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Conferma" @@ -2365,7 +2389,7 @@ msgstr "Collega" msgid "Connect Balance Board" msgstr "Collega Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Collega Tastiera USB" @@ -2413,7 +2437,7 @@ msgstr "Connessione" msgid "Connection Type:" msgstr "Tipo di Connessione" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Il contenuto {0:08x} è corrotto." @@ -2527,14 +2551,31 @@ msgstr "Convergenza" msgid "Convergence:" msgstr "Convergenza:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Converti" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converti File..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converti i File Selezionati..." @@ -2652,7 +2693,7 @@ msgstr "" "Impossibile recuperare informazioni sull'aggiornamento da Nintendo. " "Controlla la connettività, quindi riprova." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2663,7 +2704,7 @@ msgstr "" "\n" "La console emulata terminerà." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2971,7 +3012,7 @@ msgstr "Decimale" msgid "Decoding Quality:" msgstr "Qualità Decodifica:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Riduci" @@ -2992,11 +3033,11 @@ msgstr "Diminuisci Velocità di Emulazione" msgid "Decrease IR" msgstr "Riduci IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Riduci X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Riduci Y" @@ -3016,7 +3057,7 @@ msgstr "Dispositivo Predefinito" msgid "Default Font" msgstr "Font Predefinito" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO Predefinita:" @@ -3095,13 +3136,13 @@ msgstr "Descrizione:" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "Descrizione:" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Scollegato" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Rileva" @@ -3148,7 +3189,7 @@ msgstr "" msgid "Diff" msgstr "Diff" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Oscura lo schermo dopo cinque minuti di inattività." @@ -3295,7 +3336,7 @@ msgstr "Distanza di movimento dalla posizione neutrale." msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Autorizzi Dolphin a inviare informazioni agli sviluppatori di Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vuoi aggiungere \"%1\" alla lista dei Percorsi di Gioco?" @@ -3309,7 +3350,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Vuoi eliminare i %n file di salvataggio selezionati?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Vuoi interrompere l'emulazione in corso?" @@ -3340,8 +3381,8 @@ msgstr "File Signature CSV Dolphin" msgid "Dolphin Signature File" msgstr "File Signature Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Filmati TAS Dolphin (*.dtm)" @@ -3388,7 +3429,7 @@ msgstr "Dolphin è un emulatore di GameCube e Wii gratuito e open-source." msgid "Dolphin is too old for traversal server" msgstr "Dolphin è troppo vecchio per il server traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3396,7 +3437,7 @@ msgstr "" "Dolphin non è in grado di verificare correttamente i file TGC, in quanto non " "sono dump di dischi effettivi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin non è in grado di verificare dischi senza licenza." @@ -3412,8 +3453,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Il sistema codici di Dolphin è attualmente disabilitato." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Dominio" @@ -3436,7 +3477,7 @@ msgstr "Ho finito di comprimere l'immagine disco" msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3488,7 +3529,7 @@ msgstr "Dual Core" msgid "Dual View" msgstr "Doppia Visuale" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Fittizio" @@ -3528,6 +3569,10 @@ msgstr "Dump del Target EFB" msgid "Dump Frames" msgstr "Dump dei Frame" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Dump Mip Map" @@ -3536,7 +3581,7 @@ msgstr "Dump Mip Map" msgid "Dump Objects" msgstr "Dump degli Oggetti" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Percorso Dump:" @@ -3586,11 +3631,11 @@ msgstr "" "game_id>/.

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Dump letture SSL decrittate" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Dump scritture SSL decrittate" @@ -3602,16 +3647,16 @@ msgstr "" "Estrae gli oggetti in User/Dump/Objects/.

Nel " "dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Dump opzioni" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Dump certificati peer" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Dump certificati root CA" @@ -3653,7 +3698,7 @@ msgstr "Durata Rilascio Pulsante Turbo (in frame):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Olandese" @@ -3717,7 +3762,7 @@ msgstr "Effettivo" msgid "Effective priority" msgstr "Priorità effettiva" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3733,7 +3778,7 @@ msgstr "Embedded Frame Buffer (EFB)" msgid "Empty" msgstr "Vuoto" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Thread dell'Emulatore già in esecuzione" @@ -3811,7 +3856,7 @@ msgstr "Abilita FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "Abilita Mod Grafiche" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -3823,11 +3868,11 @@ msgid "Enable Progressive Scan" msgstr "Abilita Scansione Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Abilita Vibrazione" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Abilita Screen Saver" @@ -3991,7 +4036,7 @@ msgstr "Enet non è stato inizializzato" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Inglese" @@ -4001,7 +4046,7 @@ msgstr "Inglese" msgid "Enhancements" msgstr "Miglioramenti" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" "Inserisci l'indirizzo IP del dispositivo con il Client XLink Kai in " @@ -4025,6 +4070,10 @@ msgstr "Inserisci il nuovo indirizzo MAC dell'Adattatore Broadband:" msgid "Enter password" msgstr "Inserisci la password" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Inserisci l'indirizzo del modulo RSO:" @@ -4037,7 +4086,7 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4065,12 +4114,12 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4095,9 +4144,9 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Errore" @@ -4201,11 +4250,11 @@ msgstr "" "caricati. I giochi potrebbero non mostrare correttamente i caratteri, o " "crashare." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Sono stati trovati errori in {0} blocchi nella partizione {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Sono stati trovati errori in {0} blocchi inutilizzati nella partizione {1}." @@ -4416,7 +4465,7 @@ msgid "Extracting Directory..." msgstr "Estrazione Directory..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4445,7 +4494,7 @@ msgstr "Fallito l'inserimento di questa sessione all'indice NetPlay: %1" msgid "Failed to append to signature file '%1'" msgstr "Impossibile aggiungere il file di signature '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Impossibile richiedere l'interfaccia per il ponte BT: {0}" @@ -4457,16 +4506,16 @@ msgstr "Impossibile connettersi a Redump.org" msgid "Failed to connect to server: %1" msgstr "Impossibile connettersi al server: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Impossibile creare la swap chain D3D" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Impossibile creare il contesto D3D12" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Impossibile creare le risorse globali D3D12" @@ -4491,7 +4540,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Fallita la rimozione del file selezionato." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Impossibile disconnettere il driver kernel per il ponte BT: {0}" @@ -4572,7 +4621,7 @@ msgstr "" "ripararla (Strumenti -> Gestisci NAND -> Controlla NAND...), quindi importa " "di nuovo il salvataggio." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Inizializzazione fallita" @@ -4586,8 +4635,8 @@ msgstr "" "Accertati che la tua scheda video supporti almeno D3D 10.0\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Impossibile inizializzare le classi del renderer" @@ -4600,7 +4649,7 @@ msgstr "Fallita installazione del pack: %1" msgid "Failed to install this title to the NAND." msgstr "Fallita installazione del titolo nella NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4638,12 +4687,12 @@ msgstr "" "l'aggiornamento KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Fallita l'apertura di '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Impossibile aprire il dispositivo Bluetooth: {0}" @@ -4673,7 +4722,7 @@ msgstr "" msgid "Failed to open file." msgstr "Impossibile aprire il file." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Impossibile avviare il server" @@ -4859,7 +4908,7 @@ msgstr "" "Desincronizzazione fatale. Interruzione della riproduzione. (Errore in " "PlayWiimote: {0} != {1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Campo Visivo" @@ -5029,7 +5078,7 @@ msgstr "" "Per istruzioni sull'installazione, consulta questa pagina." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5090,7 +5139,7 @@ msgstr "" msgid "Format:" msgstr "Formato:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5184,7 +5233,7 @@ msgstr "" "istruzioni dettagliate, consulta questa pagina." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "CameraLibera" @@ -5199,7 +5248,7 @@ msgstr "Abilita/Disabilita Camera Libera" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francese" @@ -5239,7 +5288,7 @@ msgstr "Chiamanti di funzione" msgid "Function calls" msgstr "Chiamate di funzione" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funzioni" @@ -5259,7 +5308,7 @@ msgstr "Core GBA" msgid "GBA Port %1" msgstr "Porta GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "Impostazioni GBA" @@ -5283,7 +5332,7 @@ msgstr "ROM GBA%1 disabilitata" msgid "GC Port %1" msgstr "Porta GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Cartella GCI" @@ -5318,7 +5367,7 @@ msgstr "" "Ulteriori errori saranno indicati nel log del Backend Video.\n" "Probabilmente Dolphin ora crasherà o si bloccherà. Auguri." -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE è {0} - deve essere almeno 1024." @@ -5334,7 +5383,7 @@ msgstr "" "GPU: ERRORE: Occorre GL_ARB_framebuffer_object per render target multipli.\n" "GPU: La tua scheda video supporta OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: ERRORE OGL: La tua scheda video supporta OpenGL 2.0?" @@ -5370,7 +5419,7 @@ msgstr "" "GPU: ERRORE OGL: Occorre GL_ARB_vertex_array_object.\n" "GPU: La tua scheda video supporta OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5388,7 +5437,7 @@ msgstr "" "GPU: La tua scheda video supporta OpenGL 3.0?\n" "GPU: I tuoi driver supportano GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5405,11 +5454,11 @@ msgstr "Gioco" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Schede di gioco Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5429,7 +5478,7 @@ msgstr "Configurazione di Gioco" msgid "Game Details" msgstr "Dettagli del Gioco" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Cartelle di Gioco" @@ -5528,7 +5577,7 @@ msgid "GameCube Memory Cards" msgstr "Memory Card GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Memory Card (*.raw *.gcp)" @@ -5542,7 +5591,7 @@ msgstr "GameCube TAS Input %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "Dimensione Slot Stick" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5583,7 +5632,7 @@ msgstr "Generati nomi dei simboli da '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Tedesco" @@ -5591,11 +5640,11 @@ msgstr "Tedesco" msgid "Germany" msgstr "Germania" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "Fallita GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5615,7 +5664,7 @@ msgstr "Video" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "Mod Grafiche" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5624,7 +5673,7 @@ msgstr "Settaggi Grafici" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "Le mod grafiche sono attualmente disabilitate." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5795,7 +5844,7 @@ msgstr "Autorità input host attivata" msgid "Host with NetPlay" msgstr "Host con NetPlay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Hostname" @@ -5827,7 +5876,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Sono cosciente del rischio e voglio continuare" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5869,7 +5918,7 @@ msgid "IR" msgstr "Puntamento IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilità IR:" @@ -6056,11 +6105,11 @@ msgstr "Importa File di Salvataggio" msgid "Import Wii Save..." msgstr "Importa Salvataggio Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importazione di backup NAND in corso" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6095,7 +6144,7 @@ msgstr "" "maggior tempo di salvataggio/caricamento.

Nel " "dubbio, lascia selezionato." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Aumenta" @@ -6116,15 +6165,15 @@ msgstr "Aumenta Velocità di Emulazione" msgid "Increase IR" msgstr "Aumenta IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Aumenta X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Aumenta Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Rotazione Incrementale" @@ -6132,6 +6181,13 @@ msgstr "Rotazione Incrementale" msgid "Incremental Rotation (rad/sec)" msgstr "Rotazione Incrementale (rad/sec)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6171,7 +6227,7 @@ msgstr "Forza da ignorare e rimappare." msgid "Insert &nop" msgstr "Inserisci &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Inserisci SD Card" @@ -6361,7 +6417,7 @@ msgstr "Indirizzo di controllo non valido: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiano" @@ -6456,7 +6512,7 @@ msgid "Japan" msgstr "Giappone" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Giapponese" @@ -6494,7 +6550,7 @@ msgstr "Tastiera" msgid "Keys" msgstr "Tasti" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6507,7 +6563,7 @@ msgid "Korea" msgstr "Corea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreano" @@ -6559,7 +6615,7 @@ msgstr "Latenza: ~40 ms" msgid "Latency: ~80 ms" msgstr "Latenza: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6665,7 +6721,7 @@ msgstr "Carica Main Menu GameCube" msgid "Load Last State" msgstr "Carica Ultimo Stato di Gioco" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Carica Percorso:" @@ -6814,6 +6870,8 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"Carica mod grafiche da User/Load/GraphicsMods/.

Nel " +"dubbio, lascia deselezionato." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6936,7 +6994,7 @@ msgstr "Texture Sampling Manuale" msgid "Mapping" msgstr "Mappatura" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Maschera ROM" @@ -6957,7 +7015,7 @@ msgstr "Dimensione massima del buffer cambiata a %1" msgid "Maximum tilt angle." msgstr "Massimo angolo di inclinazione" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" "Potrebbe causare rallentamenti all'interno del Menu Wii e in alcuni giochi." @@ -6975,7 +7033,7 @@ msgstr "Memoria" msgid "Memory Breakpoint" msgstr "Punto di Interruzione dei Dati" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Memory Card" @@ -7004,7 +7062,7 @@ msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" "MemoryCard: Write chiamata su indirizzo di destinazione non valido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7016,11 +7074,11 @@ msgstr "" "consiglia di mantenere un backup di entrambe le NAND. Sei sicuro di voler " "continuare?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -7030,7 +7088,7 @@ msgstr "Microfono" msgid "Misc" msgstr "Varie" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Impostazioni Varie" @@ -7083,7 +7141,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Moduli trovati: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7129,7 +7187,7 @@ msgstr "" "Il puntatore del mouse non sarà mai visibile durante l'esecuzione di un " "gioco." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Muovi" @@ -7147,6 +7205,11 @@ msgstr "" "Il filmato {0} comincia da uno stato di gioco, ma {1} non esiste. Il filmato " "molto probabilmente non sarà sincronizzato!" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&o a Tutto" @@ -7177,8 +7240,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7246,7 +7309,7 @@ msgstr "" msgid "Network" msgstr "Network" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Formato dump network:" @@ -7382,11 +7445,11 @@ msgstr "Non sono stati trovati percorsi nel file M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Non sono rimaste funzioni valide. Reset." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Non sono stati rilevati problemi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7419,7 +7482,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Nessuno" @@ -7481,7 +7544,7 @@ msgid "Notice" msgstr "Avviso/i" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Nessuno" @@ -7598,7 +7661,7 @@ msgstr "Apri Riivolution XML..." msgid "Open Wii &Save Folder" msgstr "Apri Cartella dei &Salvataggi Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Apri cartella dump" @@ -7626,7 +7689,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operatori" @@ -7648,7 +7711,7 @@ msgstr "Arancione" msgid "Orbital" msgstr "Orbita" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7687,7 +7750,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7823,7 +7886,7 @@ msgstr "Fisico" msgid "Physical address space" msgstr "Spazio dell'indirizzo fisico" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7890,7 +7953,7 @@ msgstr "Puntamento" msgid "Port %1" msgstr "Porta %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "ROM Porta %1:" @@ -7998,7 +8061,7 @@ msgstr "Privato e Pubblico" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8006,7 +8069,7 @@ msgstr "" "Sono stati rilevati problemi di alta severità. Il gioco molto probabilmente " "non funzionerà." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8014,7 +8077,7 @@ msgstr "" "Sono stati rilevati problemi di bassa severità. Probabilmente non " "influenzeranno il gioco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8044,7 +8107,7 @@ msgstr "Pubblica" msgid "Purge Game List Cache" msgstr "Pulisci Cache Lista Giochi" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Posiziona le ROM IPL in User/GC/." @@ -8071,7 +8134,7 @@ msgstr "Qualità del decoder DPLII. La latenza audio aumenta con la qualità." #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Conferma" @@ -8112,7 +8175,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "Immagini RVZ GC/Wii (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Intensità" @@ -8284,8 +8346,8 @@ msgstr "Ricorda Più Tardi" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Rimuovi" @@ -8349,7 +8411,7 @@ msgstr "Report: GCIFolder Scrittura su blocco non allocato {0:#x}" msgid "Request to Join Your Party" msgstr "Invita al tuo party" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8383,11 +8445,11 @@ msgstr "Server Traversal resettato a %1:%2" msgid "Reset Traversal Settings" msgstr "Reset Impostazioni Traversal" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Reimposta Valori" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Ripristina Visuale" @@ -8399,7 +8461,7 @@ msgstr "Resetta tutti gli abbinamenti salvati con i Wii Remote" msgid "Resource Pack Manager" msgstr "Resource Pack Manager" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Percorso Resource Pack:" @@ -8432,7 +8494,7 @@ msgstr "Revisione" msgid "Revision: %1" msgstr "Revisione: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8520,7 +8582,7 @@ msgstr "Vibrazione" msgid "Run &To Here" msgstr "(&T) Esegui Fino al Cursore" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Avvia i Core GBA in Thread Dedicati" @@ -8532,18 +8594,26 @@ msgstr "Russia" msgid "SD Card" msgstr "Scheda SD" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "Immagine Scheda SD (*.raw);;Tutti i File (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Percorso SD Card:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD Root:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8552,11 +8622,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "Contesto SSL" @@ -8630,7 +8700,7 @@ msgstr "Salva sul più vecchio Stato di Gioco" msgid "Save Preset" msgstr "Salva Preset" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Salva File Registrazione Come" @@ -8730,7 +8800,7 @@ msgstr "" "conviene fare un backup dei dati attuali prima di sovrascriverli.\n" "Vuoi proseguire?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Salva nella Stessa Directory della ROM" @@ -8760,7 +8830,7 @@ msgstr "" "Gli abbinamenti salvati con i Wii Remote possono essere resettati soltanto " "durante l'esecuzione di un gioco Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Salvataggi:" @@ -8795,7 +8865,7 @@ msgstr "Cerca Indirizzo" msgid "Search Current Object" msgstr "Cerca Oggetto Corrente" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Cerca nelle Sottocartelle" @@ -8840,11 +8910,11 @@ msgid "Section that contains most CPU and Hardware related settings." msgstr "" "Sezione che contiene la maggior parte delle impostazioni di CPU e Hardware." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Opzioni di sicurezza" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Seleziona" @@ -8857,15 +8927,15 @@ msgstr "Seleziona Percorso Dump" msgid "Select Export Directory" msgstr "Seleziona Directory di Estrazione" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Seleziona BIOS GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Seleziona ROM GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Seleziona Percorso dei Salvataggi GBA" @@ -8937,7 +9007,7 @@ msgstr "Seleziona Slot di Stato 8" msgid "Select State Slot 9" msgstr "Seleziona Slot di Stato 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Seleziona Percorso WFS" @@ -8953,17 +9023,21 @@ msgstr "Seleziona una Directory" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Seleziona un File" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Seleziona un Gioco" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Seleziona un'Immagine Scheda SD" @@ -8987,7 +9061,7 @@ msgstr "Seleziona Carte e-Reader" msgid "Select the RSO module address:" msgstr "Scegli l'indirizzo del modulo RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Seleziona la Registrazione da Eseguire" @@ -8995,11 +9069,11 @@ msgstr "Seleziona la Registrazione da Eseguire" msgid "Select the Virtual SD Card Root" msgstr "Seleziona la directory principale per la Scheda SD Virtuale" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Seleziona il file contenente le chiavi (dump OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleziona il file di salvataggio" @@ -9124,7 +9198,7 @@ msgstr "" msgid "Send" msgstr "Invia" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Posizione della Sensor Bar: " @@ -9198,7 +9272,7 @@ msgstr "Imposta indirizzo di termine del simbolo" msgid "Set symbol size (%1):" msgstr "Imposta dimensione del simbolo (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9208,7 +9282,7 @@ msgstr "" "(576i) per i giochi PAL.\n" "Potrebbe non funzionare su tutti i giochi." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Imposta la lingua di sistema del Wii" @@ -9534,7 +9608,7 @@ msgid "Signed Integer" msgstr "Signed Integer" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Cinese Semplificato" @@ -9602,7 +9676,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Ingresso A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A:" @@ -9610,7 +9684,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Ingresso B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B:" @@ -9618,7 +9692,7 @@ msgstr "Slot B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Cattura la posizione dell'analogico al più vicino asse ottagonale." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Tabella Socket" @@ -9628,11 +9702,11 @@ msgstr "Tabella Socket" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Non è stato possibile leggere alcuni dati." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9653,7 +9727,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Ordine Alfabetico" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Suono:" @@ -9667,7 +9741,7 @@ msgstr "Spagna" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spagnolo" @@ -9675,7 +9749,7 @@ msgstr "Spagnolo" msgid "Speaker Pan" msgstr "Panning Altoparlante" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volume Altoparlante:" @@ -9709,7 +9783,7 @@ msgstr "" "e 6 sono generalmente buoni quanto il livello 9, ma terminano in molto meno " "tempo.

Nel dubbio, lascia su 6." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9774,8 +9848,8 @@ msgstr "Avvia con le Patch Riivolution..." msgid "Started game" msgstr "Gioco avviato" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9830,7 +9904,7 @@ msgstr "Istruzione eseguita con successo!" msgid "Stepping" msgstr "Entrando" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stereo" @@ -10006,12 +10080,12 @@ msgstr "Supporto" msgid "Supported file formats" msgstr "Formato file supportati" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Supporta SD e SDHC. La dimensione standard è 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -10114,6 +10188,12 @@ msgstr "" "Sincronizza i thread della GPU e della CPU per prevenire alcuni blocchi " "casuali in modalità Dual Core. (ON = Compatibilità, OFF = Velocità)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Sincronizzazione codici AR..." @@ -10127,7 +10207,7 @@ msgid "Synchronizing save data..." msgstr "Sincronizzazione dei dati di salvataggio in corso..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Lingua di Sistema:" @@ -10168,9 +10248,9 @@ msgstr "Cattura uno Screenshot" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "Il range di indirizzi non è valido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Prova" @@ -10229,7 +10309,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "La NAND è stata riparata." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10266,7 +10346,7 @@ msgstr "" "La dimensione dati per la partizione {0} non è divisibile per la dimensione " "del blocco." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" "Le chiavi di decrittazione devono essere inserite nel file di backup NAND." @@ -10309,7 +10389,7 @@ msgstr "La console Wii emulata è già aggiornata." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "L'indirizzo MAC inserito non è valido." @@ -10321,11 +10401,11 @@ msgstr "Il PID inserito non è valido." msgid "The entered VID is invalid." msgstr "Il VID inserito non è valido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "L'espressione contiene un errore di sintassi." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10357,7 +10437,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Il file {0} è già stato aperto, l'intestazione non verrà scritta." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10371,7 +10451,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Il filesystem non è valido o è illeggibile." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10379,15 +10459,15 @@ msgstr "" "Il formato con cui è stata salvata l'immagine disco non contiene la " "dimensione stessa dell'immagine" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "L'ID del gioco non è consistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "L'ID del gioco è insolitamente breve." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "L'ID del gioco è {0} ma dovrebbe essere {1}." @@ -10469,7 +10549,7 @@ msgstr "Il profilo '%1' non esiste" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Il gioco registrato ({0}) non coincide con il gioco selezionato ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10484,7 +10564,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Il codice AR decriptato risultante non contiene alcuna riga." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "Lo stesso file non può essere usato su più slot; è già usato da %1." @@ -10514,7 +10594,7 @@ msgstr "" "Vuoi davvero abilitare il rendering software? Nel dubbio, seleziona 'No'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" "L'indice della chiave condivisa specificata è {0} ma dovrebbe essere {1}." @@ -10528,7 +10608,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "La memory card di destinazione contiene già un file \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Il ticket non è correttamente firmato." @@ -10544,7 +10624,7 @@ msgstr "" "L'aggiornamento è stato annullato. È altamente consigliato di terminarlo per " "evitare versioni di sistema inconsistenti." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partizione d'aggiornamento non contiene l'IOS usato da questo titolo." @@ -10612,7 +10692,7 @@ msgstr "Questo Codice Gecko non contiene alcuna riga." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10645,23 +10725,25 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"Questa build di Dolphin non è stata compilata nativamente per la tua CPU.\n" +"Usa la build ARM64 per avere prestazioni migliori." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "Impossibile annullare l'operazione!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "La dimensione di questa immagine disco di debug è quella di un'immagine " "disco retail." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Questa immagine disco ha una dimensione insolita." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10672,7 +10754,7 @@ msgstr "" "registrazioni degli input o usare il NetPlay con chi possiede un dump " "corretto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10683,7 +10765,7 @@ msgstr "" "potrebbe diventarlo una volta riconvertito. Il CRC32 di questo file potrebbe " "corrispondere al CRC32 di un buon dump anche se i file non sono identici." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10692,7 +10774,7 @@ msgstr "" "programma di dump ha salvato l'immagine in più parti, devi riunirle in un " "unico file." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10708,7 +10790,7 @@ msgstr "Questo file non contiene un filesystem Wii valido." msgid "This file does not look like a BootMii NAND backup." msgstr "Questo file non sembra un backup NAND BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10719,7 +10801,7 @@ msgstr "" "gioco saranno compromesse. Questo problema esiste di solito solo in copie " "illegali." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10729,11 +10811,11 @@ msgstr "" "giocato correttamente, ma la tua scheda grafica o i tuoi driver non la " "supportano, per cui riscontrerai dei bug giocando." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Questo dump è invalido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10741,7 +10823,7 @@ msgstr "" "Questo è un dump invalido. Non vuol dire che il gioco non funzionerà " "correttamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10749,7 +10831,7 @@ msgstr "" "Questo è un buon dump secondo Redump.org, ma Dolphin ha riscontrato dei " "problemi. Potrebbe essere un bug in Dolphin stesso." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Questo è un buon dump." @@ -10779,12 +10861,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Impossibile avviare questo titolo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Questo titolo è impostato per utilizzare un IOS non valido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Questo titolo è impostato per utilizzare una common key non valida." @@ -10859,7 +10941,7 @@ msgstr "Thread" msgid "Threshold" msgstr "Sensibilità" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10978,7 +11060,7 @@ msgstr "Tokenizzazione fallita." msgid "Toolbar" msgstr "Barra degli Strumenti" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Sopra" @@ -11026,7 +11108,7 @@ msgid "Touch" msgstr "Tocco" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Cinese Tradizionale" @@ -11052,7 +11134,7 @@ msgstr "" "Prova a tradurre i branch in anticipo, migliorando le performance nella " "maggior parte dei casi. Il default è Attivo" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "AM Baseboard Triforce " @@ -11067,8 +11149,8 @@ msgstr "Grilletti" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tipo" @@ -11088,7 +11170,7 @@ msgstr "SCONOSCIUTO" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11327,7 +11409,7 @@ msgstr "Unsigned 8" msgid "Unsigned Integer" msgstr "Unsigned Integer" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11399,6 +11481,10 @@ msgstr "Wii Remote in posizione verticale" msgid "Usage Statistics Reporting Settings" msgstr "Impostazioni Report Statistiche d'Uso" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Usa Database Interno per i Nomi dei Giochi" @@ -11411,7 +11497,7 @@ msgstr "Usa Stile Utente Personalizzato" msgid "Use Lossless Codec (FFV1)" msgstr "Usa Codec Lossless (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usa Modalità PAL60 (EuRGB60)" @@ -11518,11 +11604,11 @@ msgstr "Interfaccia Utente" msgid "User Style:" msgstr "Stile Utente:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Variabili Utente" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11622,7 +11708,7 @@ msgstr "Verifica" msgid "Verify Integrity" msgstr "Verifica Integrità" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verifica certificati" @@ -11758,7 +11844,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Modalità Esclusiva)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "Percorso WFS:" @@ -11953,7 +12039,7 @@ msgstr "" "Detection Arbitraria' è abilitato in Miglioramenti." "

Nel dubbio, lascia selezionato." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivi USB Ponte Accettati" @@ -11973,7 +12059,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Menu Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Root NAND Wii:" @@ -11999,7 +12085,7 @@ msgstr "Pulsanti Wii Remote" msgid "Wii Remote Orientation" msgstr "Orientamento Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Impostazioni Wii Remote" @@ -12121,7 +12207,7 @@ msgstr "X" msgid "XF register " msgstr "Registro XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "Indirizzo Destinazione XLink Kai BBA" @@ -12155,6 +12241,20 @@ msgstr "Sì" msgid "Yes to &All" msgstr "Sì a &Tutto" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12293,7 +12393,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] e [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -12427,7 +12527,7 @@ msgstr "disallineato" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Capolavori)" @@ -12467,7 +12567,7 @@ msgstr "{0} blocchi su {1}. Rapporto di compressione {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} non è una directory, spostato in *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Or" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index 24616c734b..fab3ed049f 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -4,7 +4,7 @@ # # Translators: # Danbsky, 2011 -# DanbSky , 2015-2021 +# DanbSky , 2015-2022 # Denton Poss , 2016 # EmpyreusX , 2019 # 糸井星貴, 2021 @@ -18,9 +18,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: DanbSky , 2015-2021\n" +"Last-Translator: DanbSky , 2015-2022\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" "language/ja/)\n" "Language: ja\n" @@ -29,7 +29,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -41,7 +41,7 @@ msgstr "" "ゲームキューブ用ゲームデータには整合性チェックのためのデータがほとんど含まれ" "ていないため、Dolphinでは検出できない問題があるかもしれません。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -77,7 +77,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(ディスク %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Not(否定)" @@ -86,22 +86,28 @@ msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" "\"{0}\" は無効なファイル、またはゲームキューブ/Wii のISOではありません" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo(剰余)" @@ -288,7 +294,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& And(論理積)" @@ -675,19 +681,19 @@ msgstr "オフ" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiply(乗算)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Add(加算)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Subtract(減算)" @@ -702,7 +708,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Divide(除算)" @@ -732,7 +738,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -806,7 +812,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 ブロック)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -880,11 +886,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Native (5120x4224) for 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Less-than(より小さい)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "なし" @@ -901,12 +907,12 @@ msgstr "" "

Dolphinの最新版が公開されています!

Dolphin %1 がダウンロード可能で" "す。現在のバージョン ( %2 )
更新を行いますか?

更新履歴:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Greater-than(より大きい)" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "ネットプレイのセッションは既に進行中です!" @@ -934,7 +940,7 @@ msgstr "ディスクは既に挿入されています。" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "起動するタイトルを指定せずにステートセーブをロードすることはできません" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -947,7 +953,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "WiiリモコンとのSyncはWiiのゲームを実行中にのみ行なえます" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -1005,6 +1011,11 @@ msgstr "Dolphinについて" msgid "Accelerometer" msgstr "加速度" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "精度:" @@ -1172,8 +1183,8 @@ msgid "Add to watch" msgstr "Add to watch" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "追加" @@ -1235,7 +1246,7 @@ msgid "" "WARNING: Enabling this will completely break many games. Only a small number " "of games can benefit from this." msgstr "" -"エミュレートされたコンソールのメモリ容量を調節できます\n" +"エミュレートされたコンソールのメモリ容量を調節できます。\n" "\n" "注意:\n" "デフォルト(100%)以外の値に設定すると、多くのタイトルでクラッシュやバグが発生" @@ -1265,7 +1276,7 @@ msgstr "" "あくまでも自己責任での使用を前提とし、 デフォルト以外の値で発生したバグについ" "ては 報告しないでください。" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "アドバンスコネクタ" @@ -1296,7 +1307,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1304,7 +1315,7 @@ msgid "All Files" msgstr "すべてのファイル" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "すべてのファイル (*)" @@ -1313,7 +1324,7 @@ msgstr "すべてのファイル (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1322,8 +1333,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "全てのステートセーブファイル (*.sav *.s##);; 全てのファイル (*)" @@ -1359,7 +1370,7 @@ msgstr "コンソール上の言語設定の不一致を許可" msgid "Allow Usage Statistics Reporting" msgstr "利用統計レポートを許可" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "SDカードへの書込を許可" @@ -1381,7 +1392,7 @@ msgstr "外部入力設定" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:184 msgid "Always" -msgstr "" +msgstr "常に表示" #. i18n: Treat a controller as always being connected regardless of what #. devices the user actually has plugged in @@ -1497,7 +1508,7 @@ msgid "Aspect Ratio" msgstr "アスペクト比" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "アスペクト比:" @@ -1580,6 +1591,10 @@ msgstr "未操作時に隠す" msgid "Auto-detect RSO modules?" msgstr "Auto-detect RSO modules?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1595,7 +1610,7 @@ msgid "Auxiliary" msgstr "Auxiliary" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1603,14 +1618,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT incorrect. Dolphin will now exit" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1641,10 +1656,11 @@ msgid "Backend:" msgstr "ビデオAPI:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "バックグラウンド操作を許可" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1726,15 +1742,15 @@ msgstr "ベータ版 (ひと月に一度)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, その他" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binary SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binary SSL (read)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binary SSL (write)" @@ -1753,7 +1769,7 @@ msgstr "ブロックサイズ" msgid "Block Size:" msgstr "ブロックサイズ:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blocking" @@ -1787,11 +1803,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Boot to Pause" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND バックアップファイル (*.bin);;すべてのファイル (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii キー ファイル (*.bin);;すべてのファイル (*)" @@ -1799,7 +1815,7 @@ msgstr "BootMii キー ファイル (*.bin);;すべてのファイル (*)" msgid "Borderless Fullscreen" msgstr "ボーダレス フルスクリーン" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "下" @@ -1830,19 +1846,27 @@ msgstr "Breakpoint encountered! Step out aborted." msgid "Breakpoints" msgstr "Breakpoints" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "ブロードバンドアダプタ(TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "ブロードバンドアダプタ(XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "ブロードバンドアダプタ(tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1982,7 +2006,7 @@ msgstr "" msgid "Callstack" msgstr "Callstack" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "カメラ 1" @@ -2000,8 +2024,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "ゲーム実行中はネットプレイセッションを開始できません!" @@ -2126,7 +2150,7 @@ msgstr "チートマネージャ" msgid "Check NAND..." msgstr "NANDの整合性チェックを実行" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "ゲームリストの状態を監視" @@ -2149,11 +2173,11 @@ msgstr "チェックサム" msgid "China" msgstr "中国" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "メモリーカードを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2184,7 +2208,7 @@ msgid "Classic Controller" msgstr "クラシックコントローラ" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2260,7 +2284,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "ゲーム開始前にシェーダをコンパイルする" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "シェーダをコンパイル中..." @@ -2306,11 +2330,11 @@ msgstr "操作設定" msgid "Configure Dolphin" msgstr "Dolphinの設定" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "入力設定" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "出力設定" @@ -2319,8 +2343,8 @@ msgstr "出力設定" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "確認" @@ -2348,7 +2372,7 @@ msgstr "ホストに接続" msgid "Connect Balance Board" msgstr "バランスWii ボードを接続" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "USBキーボードの接続をエミュレート" @@ -2396,7 +2420,7 @@ msgstr "" msgid "Connection Type:" msgstr "接続方式:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Content {0:08x} is corrupt." @@ -2504,14 +2528,31 @@ msgstr "収束点" msgid "Convergence:" msgstr "収束点 (Convergence):" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "ファイル形式の変換" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "このタイトルを変換..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "選択中のタイトルを変換..." @@ -2628,14 +2669,14 @@ msgstr "" "更新情報のダウンロードに失敗。インターネット接続設定を確認してから改めて試し" "てください" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2914,7 +2955,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "デコード精度" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "移動速度 減少" @@ -2935,11 +2976,11 @@ msgstr "エミュレーション速度 減少" msgid "Decrease IR" msgstr "レンダリング解像度 縮小" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "X方向 減少" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Y方向 減少" @@ -2959,7 +3000,7 @@ msgstr "既定のデバイス" msgid "Default Font" msgstr "既定のフォント" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "デフォルトISO" @@ -3038,7 +3079,7 @@ msgstr "" msgid "Detached" msgstr "Detached" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "検出" @@ -3084,7 +3125,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "5分間操作がない状態が続くと、画面を暗くするようにします" @@ -3228,7 +3269,7 @@ msgstr "振りの強さをニュートラルポジションからの距離で指 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Dolphinの開発者への情報提供にご協力いただけますか?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "\"%1\" をゲームパスリストに追加しますか?" @@ -3242,7 +3283,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "選択中の %n 個のセーブファイルを削除しますか?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "動作中のゲームを停止しますか?" @@ -3273,8 +3314,8 @@ msgstr "Dolphin Signature CSV File" msgid "Dolphin Signature File" msgstr "Dolphin Signature File" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS ムービー (*.dtm)" @@ -3313,7 +3354,7 @@ msgstr "Dolphin is a free and open-source GameCube and Wii emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphinのバージョンが古すぎます" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3321,7 +3362,7 @@ msgstr "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin is unable to verify unlicensed discs." @@ -3335,8 +3376,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "チートは現在、無効化されています" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domain" @@ -3359,7 +3400,7 @@ msgstr "ディスクイメージの圧縮に成功しました" msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3411,7 +3452,7 @@ msgstr "デュアルコア動作" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "ダミーデバイス" @@ -3451,6 +3492,10 @@ msgstr "EFBターゲットをダンプ" msgid "Dump Frames" msgstr "フレームのダンプを行う(AVI形式)" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Dump Mip Maps" @@ -3459,7 +3504,7 @@ msgstr "Dump Mip Maps" msgid "Dump Objects" msgstr "Dump Objects" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "ダンプ先" @@ -3508,11 +3553,11 @@ msgstr "" "User/Dump/Textures/<game_id>/.

よく分からなけ" "れば、チェックを入れないでください。" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Dump decrypted SSL reads" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Dump decrypted SSL writes" @@ -3524,16 +3569,16 @@ msgstr "" "Dump objects to User/Dump/Objects/.

If unsure, " "leave this unchecked." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Dump options" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Dump peer certificates" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Dump root CA certificates" @@ -3569,7 +3614,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "オランダ語" @@ -3630,7 +3675,7 @@ msgstr "Effective" msgid "Effective priority" msgstr "Effective priority" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3646,7 +3691,7 @@ msgstr "Embedded Frame Buffer (内蔵フレームバッファ)" msgid "Empty" msgstr "空き" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "エミュレーションスレッドはすでに稼働中です" @@ -3736,11 +3781,11 @@ msgid "Enable Progressive Scan" msgstr "プログレッシブ表示を有効化" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "振動を有効にする" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "スクリーンセーバーを有効化" @@ -3893,7 +3938,7 @@ msgstr "Enet Didn't Initialize" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "英語" @@ -3903,7 +3948,7 @@ msgstr "英語" msgid "Enhancements" msgstr "画質向上の設定" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3925,6 +3970,10 @@ msgstr "ブロードバンドアダプタのMACアドレスを入力" msgid "Enter password" msgstr "ここにパスワードを入力" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Enter the RSO module address:" @@ -3937,7 +3986,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3965,12 +4014,12 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3995,9 +4044,9 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "エラー" @@ -4097,11 +4146,11 @@ msgstr "" "エラー: Windows-1252フォントにアクセスを試みましたが読み込めませんでした。" "ゲームはフォントを正しく表示できないか、クラッシュするでしょう" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Errors were found in {0} blocks in the {1} partition." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Errors were found in {0} unused blocks in the {1} partition." @@ -4295,7 +4344,7 @@ msgid "Extracting Directory..." msgstr "このフォルダを抽出" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4324,7 +4373,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "Failed to append to signature file '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4336,16 +4385,16 @@ msgstr "Redump.org に接続できませんでした" msgid "Failed to connect to server: %1" msgstr "サーバー %1 に接続できませんでした" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Failed to create D3D swap chain" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Failed to create D3D12 context" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Failed to create D3D12 global resources" @@ -4367,7 +4416,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "選択したファイルの削除に失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4437,7 +4486,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Failed to init core" @@ -4448,8 +4497,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4462,7 +4511,7 @@ msgstr "リソースパック %1 をインストールできませんでした" msgid "Failed to install this title to the NAND." msgstr "タイトルのインストールに失敗" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4498,12 +4547,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' のオープンに失敗しました" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4531,7 +4580,7 @@ msgstr "" msgid "Failed to open file." msgstr "ファイルを" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "サーバーを開けませんでした" @@ -4704,7 +4753,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "視野角(Field of View)" @@ -4865,7 +4914,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4923,7 +4972,7 @@ msgstr "" msgid "Format:" msgstr "ファイル形式:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5017,7 +5066,7 @@ msgstr "" "\"https://wiki.dolphin-emu.org/index.php?title=Free_Look\">こちらから確認" "できます。" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -5032,7 +5081,7 @@ msgstr "フリールック 切替" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "フランス語" @@ -5072,7 +5121,7 @@ msgstr "Function callers" msgid "Function calls" msgstr "Function calls" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "制御構造" @@ -5092,7 +5141,7 @@ msgstr "GBA コア" msgid "GBA Port %1" msgstr "GBAポート %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "GBA設定" @@ -5116,7 +5165,7 @@ msgstr "GBAのROM %1 を無効化" msgid "GC Port %1" msgstr "GCポート %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI フォルダ" @@ -5141,7 +5190,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." @@ -5157,7 +5206,7 @@ msgstr "" "GPU: ERROR: Need GL_ARB_framebuffer_object for multiple render targets.\n" "OpenGL 3.0に対応したビデオカードを使っていますか?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL ERROR: OpenGL 2.0に対応したビデオカードを使っていますか?" @@ -5193,7 +5242,7 @@ msgstr "" "GPU: OGL ERROR: Need GL_ARB_vertex_array_object.\n" "OpenGL 3.0に対応したビデオカードを使っていますか?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5211,7 +5260,7 @@ msgstr "" "OpenGL 3.0に対応したビデオカードを使っていますか?\n" "GPU: Your driver supports GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5228,11 +5277,11 @@ msgstr "タイトル" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "ゲームボーイアドバンスROMファイル (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5252,7 +5301,7 @@ msgstr "ゲーム設定" msgid "Game Details" msgstr "ゲーム情報" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "ゲームファイルのあるフォルダ" @@ -5346,7 +5395,7 @@ msgid "GameCube Memory Cards" msgstr "ゲームキューブ メモリーカードファイル" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "ゲームキューブ メモリーカードファイル (*.raw *.gcp)" @@ -5401,7 +5450,7 @@ msgstr "Generated symbol names from '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "ドイツ語" @@ -5409,11 +5458,11 @@ msgstr "ドイツ語" msgid "Germany" msgstr "ドイツ" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5612,7 +5661,7 @@ msgstr "Host Input Authority が有効になりました" msgid "Host with NetPlay" msgstr "ネットプレイを開始(ホスト)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Hostname" @@ -5644,7 +5693,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5680,7 +5729,7 @@ msgid "IR" msgstr "ポインタ" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Wiiリモコンの感度" @@ -5854,11 +5903,11 @@ msgstr "セーブファイルのインポート" msgid "Import Wii Save..." msgstr "Wii セーブデータのインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "NAND バックアップをインポート" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5892,7 +5941,7 @@ msgstr "" "ロード時の処理時間は増加します

よく分からなければ、" "チェックを外さないでください。" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "移動速度 増加" @@ -5913,15 +5962,15 @@ msgstr "エミュレーション速度 増加" msgid "Increase IR" msgstr "レンダリング解像度 拡大" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "X方向 増加" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Y方向 増加" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5929,6 +5978,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5968,7 +6024,7 @@ msgstr "" msgid "Insert &nop" msgstr "Insert &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SDカードの挿入をエミュレート" @@ -6156,7 +6212,7 @@ msgstr "Invalid watch address: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "イタリア語" @@ -6251,7 +6307,7 @@ msgid "Japan" msgstr "日本" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "日本語" @@ -6289,7 +6345,7 @@ msgstr "キーボード" msgid "Keys" msgstr "キー" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6302,7 +6358,7 @@ msgid "Korea" msgstr "韓国" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "韓国語" @@ -6354,7 +6410,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6460,7 +6516,7 @@ msgstr "ゲームキューブ メインメニューを起動" msgid "Load Last State" msgstr "以前のステートをロード" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6731,7 +6787,7 @@ msgstr "" msgid "Mapping" msgstr "コントローラ割当位置" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6752,7 +6808,7 @@ msgstr "最大バッファサイズが変更されました: %1" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" "有効にしているとWiiメニューやいくつかのタイトルで動作速度が低下する場合があり" @@ -6771,7 +6827,7 @@ msgstr "Memory" msgid "Memory Breakpoint" msgstr "Memory Breakpoint" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "メモリーカード" @@ -6799,7 +6855,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6813,11 +6869,11 @@ msgstr "" "\n" "続行しますか?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6827,7 +6883,7 @@ msgstr "マイク" msgid "Misc" msgstr "その他" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "その他の設定" @@ -6871,7 +6927,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Modules found: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "モノラル" @@ -6898,22 +6954,22 @@ msgstr "モーター" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:174 msgid "Mouse Cursor Visibility" -msgstr "" +msgstr "プレイ中のマウスカーソル表示" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:180 msgid "" "Mouse Cursor hides after inactivity and returns upon Mouse Cursor movement." -msgstr "" +msgstr "カーソル操作時のみ表示させます" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:185 msgid "Mouse Cursor will always be visible." -msgstr "" +msgstr "常に表示させます" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:183 msgid "Mouse Cursor will never be visible while a game is running." -msgstr "" +msgstr "常に非表示にします" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "移動" @@ -6929,6 +6985,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6959,8 +7020,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7026,13 +7087,13 @@ msgstr "ネットプレイはdesyncしました。これを回復する方法は msgid "Network" msgstr "ネットワーク関係" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Network dump format:" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:181 msgid "Never" -msgstr "" +msgstr "常に非表示" #: Source/Core/DolphinQt/Updater.cpp:74 msgid "Never Auto-Update" @@ -7162,11 +7223,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "問題は見つかりませんでした" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7197,7 +7258,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "なし" @@ -7257,7 +7318,7 @@ msgid "Notice" msgstr "注意" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "ビデオ出力なし(Null)" @@ -7323,7 +7384,7 @@ msgstr "有効" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:178 msgid "On Movement" -msgstr "" +msgstr "操作時のみ表示" #: Source/Core/DolphinQt/MenuBar.cpp:579 msgid "Online &Documentation" @@ -7374,7 +7435,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "セーブデータのあるフォルダを開く(&S)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Open dump folder" @@ -7402,7 +7463,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "演算子" @@ -7424,7 +7485,7 @@ msgstr "オレンジ" msgid "Orbital" msgstr "Orbital" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7463,7 +7524,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7599,7 +7660,7 @@ msgstr "Physical" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7665,7 +7726,7 @@ msgstr "ポインタ" msgid "Port %1" msgstr "ポート %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "Port %1 のROM:" @@ -7772,21 +7833,21 @@ msgstr "すべて" msgid "Problem" msgstr "問題点" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" "影響度「大」の問題が見つかりました。おそらくこのゲームは上手く動作しません" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" "影響度「小」の問題が見つかりました。おそらくゲームプレイに支障はないでしょう" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7816,7 +7877,7 @@ msgstr "誰でも" msgid "Purge Game List Cache" msgstr "ゲームリストのキャッシュを消去" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7845,7 +7906,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "確認" @@ -7886,7 +7947,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii ISOファイル (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "範囲/強さ" @@ -8058,8 +8118,8 @@ msgstr "また今度" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "削除" @@ -8124,7 +8184,7 @@ msgstr "Report: GCIFolder Writing to unallocated block {0:#x}" msgid "Request to Join Your Party" msgstr "参加要請" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8158,11 +8218,11 @@ msgstr "中継サーバーを次にリセットしました:%1:%2" msgid "Reset Traversal Settings" msgstr "中継サーバーをリセット" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "位置をリセット" @@ -8174,7 +8234,7 @@ msgstr "全てのペアリングを初期化する" msgid "Resource Pack Manager" msgstr "リソースパックマネージャ" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "リソースパックの場所" @@ -8207,7 +8267,7 @@ msgstr "使用バージョンとOS" msgid "Revision: %1" msgstr "Revision: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8290,7 +8350,7 @@ msgstr "振動" msgid "Run &To Here" msgstr "Run &To Here" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Run GBA Cores in Dedicated Threads" @@ -8302,18 +8362,26 @@ msgstr "ロシア" msgid "SD Card" msgstr "SDカード" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SDカードファイル (*.raw);; すべてのファイル (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SDカード" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8322,11 +8390,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "シリアルポート1" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL context" @@ -8400,7 +8468,7 @@ msgstr "最古のステートに上書き保存" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8500,7 +8568,7 @@ msgstr "" "在のセーブデータのバックアップを行って下さい。\n" "セーブデータの上書きを続行しますか?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "ROMと同じフォルダにセーブファイルを保存する" @@ -8528,7 +8596,7 @@ msgstr "保存" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "ペアリングの初期化はWiiのゲームを実行中にのみ行なえます" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "セーブ保存先" @@ -8563,7 +8631,7 @@ msgstr "Search Address" msgid "Search Current Object" msgstr "現在のオブジェクトを検索" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "サブフォルダも検索" @@ -8605,11 +8673,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Security options" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "選択" @@ -8622,15 +8690,15 @@ msgstr "ダンプ先を選択" msgid "Select Export Directory" msgstr "エクスポート先フォルダを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "GBAのBIOSファイルを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "GBAのROMファイルを選択" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "GBAセーブファイルの保存先を選択" @@ -8702,7 +8770,7 @@ msgstr "ステートスロット 8" msgid "Select State Slot 9" msgstr "ステートスロット 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8718,17 +8786,21 @@ msgstr "フォルダを選択" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "ファイルを選択" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "ディスクチャンネルに表示するタイトルを選択" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "SDカードファイルを選択" @@ -8752,7 +8824,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Select the RSO module address:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8760,11 +8832,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "キーファイル (OTP/SEEPROM ダンプ)を選択" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "セーブファイルを選択" @@ -8886,7 +8958,7 @@ msgstr "" msgid "Send" msgstr "送信" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "センサーバーの位置" @@ -8955,7 +9027,7 @@ msgstr "Set symbol end address" msgid "Set symbol size (%1):" msgstr "Set symbol size (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8965,7 +9037,7 @@ msgstr "" "変更します\n" "すべてのタイトルで上手く動作するとは限りません" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Wiiのシステム言語を変更できます" @@ -9285,7 +9357,7 @@ msgid "Signed Integer" msgstr "Signed Integer" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "簡体字中国語" @@ -9353,7 +9425,7 @@ msgstr "" msgid "Slot A" msgstr "スロットA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "スロットA" @@ -9361,7 +9433,7 @@ msgstr "スロットA" msgid "Slot B" msgstr "スロットB" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "スロットB" @@ -9369,7 +9441,7 @@ msgstr "スロットB" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Socket table" @@ -9379,11 +9451,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Some of the data could not be read." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9404,7 +9476,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "アルファベット順で並べ替え" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "サウンドの設定:" @@ -9418,7 +9490,7 @@ msgstr "スペイン" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "スペイン語" @@ -9426,7 +9498,7 @@ msgstr "スペイン語" msgid "Speaker Pan" msgstr "スピーカー パン調整" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "リモコンスピーカー音量" @@ -9451,7 +9523,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9516,8 +9588,8 @@ msgstr "" msgid "Started game" msgstr "ゲームを開始" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9572,7 +9644,7 @@ msgstr "Step successful!" msgid "Stepping" msgstr "Stepping" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "ステレオ" @@ -9748,12 +9820,12 @@ msgstr "サポート" msgid "Supported file formats" msgstr "サポートしているすべての形式" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "SD および SDHC 仕様のみサポート。デフォルト容量は 128 MB です" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "サラウンド" @@ -9851,6 +9923,12 @@ msgstr "" "CPU/GPUスレッドを同期させることでデュアルコア動作時のフリーズを抑制します " "[有効=互換性重視/無効=速度向上]" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "アクションリプレイコードの同期中..." @@ -9864,7 +9942,7 @@ msgid "Synchronizing save data..." msgstr "セーブデータの同期中..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "システムの言語:" @@ -9907,7 +9985,7 @@ msgstr "画面撮影" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "テスト" @@ -9964,7 +10042,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NANDの修復に成功しました" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9994,7 +10072,7 @@ msgstr "" "The data size for the {0} partition is not evenly divisible by the block " "size." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -10034,7 +10112,7 @@ msgstr "このWiiシステムは既に最新版になっています" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -10046,11 +10124,11 @@ msgstr "入力されたデバイス PIDは無効です。" msgid "The entered VID is invalid." msgstr "入力されたデバイス VIDは無効です。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10074,7 +10152,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10085,7 +10163,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "The filesystem is invalid or could not be read." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10093,15 +10171,15 @@ msgstr "" "The format that the disc image is saved in does not store the size of the " "disc image." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "The game ID is inconsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "The game ID is unusually short." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "The game ID is {0} but should be {1}." @@ -10170,7 +10248,7 @@ msgstr "選択されたプロファイル '%1' は存在しません" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10181,7 +10259,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "復号化しましたが、このコードにはひとつも行が含まれていません。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10210,7 +10288,7 @@ msgstr "" "本当に使用しますか?よく分からなければ、選択しないでください。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "The specified common key index is {0} but should be {1}." @@ -10224,7 +10302,7 @@ msgstr "" "インポート先のメモリーカードには既にこのファイルのデータが存在します%n\"%1\"" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "The ticket is not correctly signed." @@ -10240,7 +10318,7 @@ msgstr "" "更新がキャンセルされました。システムバージョンの不一致を避けるため、最新版へ" "の更新を強く推奨します" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "The update partition does not contain the IOS used by this title." @@ -10303,7 +10381,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10342,22 +10420,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "元に戻すことはできません!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "This debug disc image has the size of a retail disc image." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "This disc image has an unusual size." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10365,13 +10443,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10385,14 +10463,14 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "このファイルはBootMii NANDバックアップではないようです" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10402,11 +10480,11 @@ msgstr "" "ドもしくはドライバでは対応していないようです。そのためプレイ中にバグやフリー" "ズと遭遇する可能性があります。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "This is a bad dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10414,7 +10492,7 @@ msgstr "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10422,7 +10500,7 @@ msgstr "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "This is a good dump." @@ -10450,12 +10528,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "このタイトルは起動できません" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "This title is set to use an invalid IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "This title is set to use an invalid common key." @@ -10520,7 +10598,7 @@ msgstr "Threads" msgid "Threshold" msgstr "しきい値" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10637,7 +10715,7 @@ msgstr "" msgid "Toolbar" msgstr "ツールバー" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "上" @@ -10685,7 +10763,7 @@ msgid "Touch" msgstr "タッチボード" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "繁体字中国語" @@ -10708,7 +10786,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10723,8 +10801,8 @@ msgstr "トリガー" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "形式" @@ -10744,7 +10822,7 @@ msgstr "UNKNOWN" msgid "USA" msgstr "アメリカ合衆国" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10973,7 +11051,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Unsigned Integer" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11045,6 +11123,10 @@ msgstr "直立状態(Upright)で使用" msgid "Usage Statistics Reporting Settings" msgstr "統計レポートの設定" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "ゲーム名の表記に内蔵リストを使用" @@ -11057,7 +11139,7 @@ msgstr "カスタムテーマを使用 (Custom User Style)" msgid "Use Lossless Codec (FFV1)" msgstr "Use Lossless Codec (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 (EuRGB60) モードを使用" @@ -11130,11 +11212,11 @@ msgstr "Dolphinの表示に関する設定" msgid "User Style:" msgstr "カスタムテーマ:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11230,7 +11312,7 @@ msgstr "整合性" msgid "Verify Integrity" msgstr "整合性チェックを実行" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verify certificates" @@ -11355,7 +11437,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Exclusive Mode)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11503,7 +11585,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "常にパススルーを行うUSBデバイスリスト" @@ -11523,7 +11605,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wiiメニュー" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NANDルート" @@ -11549,7 +11631,7 @@ msgstr "Wiiリモコン ボタン" msgid "Wii Remote Orientation" msgstr "Wiiリモコン モーションセンサー" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wiiリモコンの設定" @@ -11671,7 +11753,7 @@ msgstr "X" msgid "XF register " msgstr "XF register " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11705,6 +11787,20 @@ msgstr "はい" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11807,7 +11903,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor(排他的論理和)" @@ -11941,7 +12037,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -11976,7 +12072,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Or(論理和)" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index 3535af88bf..ceb6112b13 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -22,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -34,7 +34,7 @@ msgstr "" "게임큐브 디스크 이미지들이 작은 검증 데이터를 담고 있어서, 돌핀이 감지할 수 " "없는 문제들이 있을 수도 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -70,7 +70,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (디스크 %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! 아님" @@ -78,22 +78,28 @@ msgstr "! 아님" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\"는 부적합한 GCM/ISO 파일이거나, GC/Wii ISO 파일이 아닙니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ 사용자 변수" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% 나머지" @@ -280,7 +286,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n 주소(들)이 지워졌습니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& 그리고" @@ -667,19 +673,19 @@ msgstr "(꺼짐)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* 곱하기" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ 더하기" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", 쉼표" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- 빼기" @@ -694,7 +700,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ 나누기" @@ -724,7 +730,7 @@ msgstr "16-비트 부호화 정수" msgid "16-bit Unsigned Integer" msgstr "16-비트 비부호화 정수" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -798,7 +804,7 @@ msgstr "4 바이트" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 블락)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -872,11 +878,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x 원본 (5120x4224) 5K용" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< 보다-적은" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<없음>" @@ -894,12 +900,12 @@ msgstr "" "신은 %2 를 구동하고 있습니다.
업데이트하고 싶습니까?

릴리즈 노트:" "

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> 보다-큰" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "넷플레이 세션이 이미 진행 중입니다!" @@ -927,7 +933,7 @@ msgstr "디스크가 이미 삽입되려는 중입니다." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "저장 상태는 시작할 게임 명시 없이는 로드될 수 없습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -940,7 +946,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Wii 게임이 구동 중일 때만 동기화가 발동될 수 있습니다." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1000,6 +1006,11 @@ msgstr "돌핀에 대해" msgid "Accelerometer" msgstr "가속도계" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "정확성:" @@ -1167,8 +1178,8 @@ msgid "Add to watch" msgstr "관찰에 추가" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "추가..." @@ -1257,7 +1268,7 @@ msgstr "" "다. 그러니 위험을 스스로 안고 하세요. 비-기본 클럭으로 일어난 버그를 리포트하" "지 말아주세요." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "고급 게임 포트" @@ -1288,7 +1299,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1296,7 +1307,7 @@ msgid "All Files" msgstr "모든 파일" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "모든 파일 (*)" @@ -1305,7 +1316,7 @@ msgstr "모든 파일 (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "모든 GC/Wii 파일들" @@ -1314,8 +1325,8 @@ msgstr "모든 GC/Wii 파일들" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "모든 저장 상태 (*.sav *.s##);; 모든 파일 (*)" @@ -1351,7 +1362,7 @@ msgstr "맞지 않는 지역 설정 허락" msgid "Allow Usage Statistics Reporting" msgstr "사용 통계 보고 허용" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "SD 카드에 쓰기 허용" @@ -1488,7 +1499,7 @@ msgid "Aspect Ratio" msgstr "종횡비" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "종횡비:" @@ -1569,6 +1580,10 @@ msgstr "자동-숨기기" msgid "Auto-detect RSO modules?" msgstr "RSO 모듈을 자동-감지할까요?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1583,7 +1598,7 @@ msgid "Auxiliary" msgstr "보조" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1591,7 +1606,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT가 올바르지 않습니다. 돌핀이 종료됩니다." -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1601,7 +1616,7 @@ msgstr "" "가 사용되어야만 합니다. 00:09:bf 나 00:17:ab 로 시작하는 새로운 MAC 주소를 생" "성하세요." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "바이오스:" @@ -1632,10 +1647,11 @@ msgid "Backend:" msgstr "백엔드:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "백그라운드 입력" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1717,15 +1733,15 @@ msgstr "베타 (한 달에 한 번)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, 등등" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "바이너리 SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "바이너리 SSL (읽기)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "바이너리 SSL (쓰기)" @@ -1744,7 +1760,7 @@ msgstr "블락 크기" msgid "Block Size:" msgstr "블락 크기:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "블락킹" @@ -1777,11 +1793,11 @@ msgstr "" msgid "Boot to Pause" msgstr "부팅하고 멈추기" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 백업 파일 (*.bin);;모든 파일 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 키 파일 (*.bin);;모든 파일 (*)" @@ -1789,7 +1805,7 @@ msgstr "BootMii 키 파일 (*.bin);;모든 파일 (*)" msgid "Borderless Fullscreen" msgstr "틀 없는 전체화면" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "아래" @@ -1820,19 +1836,27 @@ msgstr "중단점을 만났습니다! 스텝 나가기가 중단되었습니다. msgid "Breakpoints" msgstr "중단점" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "광대역 어댑터 (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "광대역 어댑터 (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "광대역 어댑터 (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "광대역 어댑터 에러" @@ -1974,7 +1998,7 @@ msgstr "%1 에 %2 크기로 디스플레이 목록 불러오기" msgid "Callstack" msgstr "콜스텍" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "카메라 1" @@ -1992,8 +2016,8 @@ msgstr "가상 메모리 값용 AR 코드만 생성할 수 있습니다." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "{0:02x} 연결 핸들로 Wii 리모트를 찾을 수 없음" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "게임이 여전히 구동되는 동안에 넷플레이 세션을 시작할 수 없습니다!" @@ -2120,7 +2144,7 @@ msgstr "치트 관리자" msgid "Check NAND..." msgstr "NAND 체크..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "게임 목록 변경을 백그라운드로 체크" @@ -2144,11 +2168,11 @@ msgstr "체크섬" msgid "China" msgstr "중국" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "열 파일 선택하기" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2179,7 +2203,7 @@ msgid "Classic Controller" msgstr "클래식 컨트롤러" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2255,7 +2279,7 @@ msgstr "비교대상:" msgid "Compile Shaders Before Starting" msgstr "시작하기 전에 쉐이더들 컴파일" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "쉐이더들 컴파일하기" @@ -2301,11 +2325,11 @@ msgstr "컨트롤러 설정" msgid "Configure Dolphin" msgstr "돌핀 환경설정" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "입력 설정" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "출력 설정" @@ -2314,8 +2338,8 @@ msgstr "출력 설정" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "확정" @@ -2343,7 +2367,7 @@ msgstr "연결" msgid "Connect Balance Board" msgstr "밸런스 보드 연결" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "USB 키보드 연결" @@ -2391,7 +2415,7 @@ msgstr "연결중" msgid "Connection Type:" msgstr "연결 종류:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "내용 {0:08x} 은 오류입니다." @@ -2502,14 +2526,31 @@ msgstr "수렴" msgid "Convergence:" msgstr "수렴:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "변환" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "파일 변환..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "선택된 파일 변환..." @@ -2626,7 +2667,7 @@ msgstr "" "닌텐도로부터 업데이트 정보를 다운로드할 수 없었습니다. 인터넷 연결을 확인하시" "고 다시 시도하세요." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2636,7 +2677,7 @@ msgstr "" "\n" "에뮬된 콘솔이 지금 멈출 것입니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2937,7 +2978,7 @@ msgstr "10 진수" msgid "Decoding Quality:" msgstr "디코딩 품질:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "감소" @@ -2958,11 +2999,11 @@ msgstr "에뮬레이션 속도 감소" msgid "Decrease IR" msgstr "IR 감소" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "X 감소" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Y 감소" @@ -2982,7 +3023,7 @@ msgstr "기본 장치" msgid "Default Font" msgstr "기본 폰트" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "기본 ISO:" @@ -3066,7 +3107,7 @@ msgstr "" msgid "Detached" msgstr "떨어진" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "감지" @@ -3112,7 +3153,7 @@ msgstr "%1 을 적합한 Riivolution XML 파일로 인식하지 못했습니다. msgid "Diff" msgstr "차이" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "활동이 없을 경우 5분후에 화면을 어둡게 합니다." @@ -3258,7 +3299,7 @@ msgstr "중립 위치에서 이동 거리" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "돌핀이 정보를 돌핀 개발자들에게 보고하도록 허가하시겠습니까?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "\"%1\" 를 게임 경로들의 목록에 추가하고 싶습니까?" @@ -3272,7 +3313,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "선택된 저장 파일 %n 을 삭제하고 싶습니까?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "에뮬레이션을 중단하고 싶습니까?" @@ -3303,8 +3344,8 @@ msgstr "돌핀 서명 CSV 파일" msgid "Dolphin Signature File" msgstr "돌핀 서명 파일" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "돌핀 TAS 무비 (*.dtm)" @@ -3350,7 +3391,7 @@ msgstr "돌핀은 무료이고 오픈-소스 게임큐브 및 Wii 에뮬레이 msgid "Dolphin is too old for traversal server" msgstr "횡단 서버에 비해 돌핀이 너무 구 버전입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3358,7 +3399,7 @@ msgstr "" "실제 디스크의 덤프들이 아니기 때문에, 돌핀은 일반 TGC 파일들을 올바르게 검증" "할 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "돌핀은 라이슨스되지 않은 디스크들을 검증할 수 없습니다." @@ -3373,8 +3414,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "돌핀의 치트 시스템이 현재 꺼졌습니다." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "도메인" @@ -3397,7 +3438,7 @@ msgstr "디스크 이미지 압축이 완료되었습니다." msgid "Double" msgstr "더블" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3449,7 +3490,7 @@ msgstr "듀얼 코어" msgid "Dual View" msgstr "듀얼 뷰" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "더미" @@ -3489,6 +3530,10 @@ msgstr "EFB 타겟 덤프" msgid "Dump Frames" msgstr "프레임들 덤프" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "밉맵 덤프" @@ -3497,7 +3542,7 @@ msgstr "밉맵 덤프" msgid "Dump Objects" msgstr "오브젝트 덤프" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "덤프 경로:" @@ -3546,11 +3591,11 @@ msgstr "" "

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "해독된 SSL 읽기들 덤프" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "해독된 SSL 쓰기들 덤프" @@ -3562,16 +3607,16 @@ msgstr "" "오브젝트들을 User/Dump/Objects/ 에 덤프합니다.

잘 모" "르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "덤프 옵션" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "피어 증명서 덤프" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "루트 CA 증명서 덤프" @@ -3611,7 +3656,7 @@ msgstr "터보 버튼 떼기의 기간 (프레임)" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "네덜란드어" @@ -3673,7 +3718,7 @@ msgstr "효과적인" msgid "Effective priority" msgstr "효율 우선순위" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3689,7 +3734,7 @@ msgstr "내장형 프레임 버퍼 (EFB)" msgid "Empty" msgstr "비어있음" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "에뮬 쓰레드가 이미 구동중임" @@ -3779,11 +3824,11 @@ msgid "Enable Progressive Scan" msgstr "프로그레시브 스캔 활성화" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "진동 활성화" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "화면 보호기 활성화" @@ -3941,7 +3986,7 @@ msgstr "Enet이 초기화되지 않았습니다." #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "영어" @@ -3951,7 +3996,7 @@ msgstr "영어" msgid "Enhancements" msgstr "향상" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "XLink Kai 클라이언트를 구동할 장치의 IP 주소 입력 :" @@ -3973,6 +4018,10 @@ msgstr "새로운 광대역 어댑터 맥 어드레스 입력:" msgid "Enter password" msgstr "패스워드 입력" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "RSO 모듈 주소를 입력:" @@ -3985,7 +4034,7 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4013,12 +4062,12 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4043,9 +4092,9 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "오류" @@ -4147,11 +4196,11 @@ msgstr "" "오류: Windows-1252 폰트들 접근을 시도하였으나 로드되지 않았습니다. 게임들이 " "제대로 폰트들을 보여주지 않거나 깨짐이 발생할 수 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "{1} 파티션에 {0} 블락들에서 에러들이 발견되었습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "{1} 파티션에 {0} 사용되지 않은 블락들에서 에러들이 발견되었습니다." @@ -4359,7 +4408,7 @@ msgid "Extracting Directory..." msgstr "디렉토리 압축 풀기..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4388,7 +4437,7 @@ msgstr "넷플레이 목록 : %1 에 이 세션을 추가하는데에 실패했 msgid "Failed to append to signature file '%1'" msgstr "서명 파일 '%1' 에 덧붙이기에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4400,16 +4449,16 @@ msgstr "Redump.org 연결에 실패했습니다" msgid "Failed to connect to server: %1" msgstr "서버 연결에 실패했습니다: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "D3D 스왑 체인 생성에 실패했습니다" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "D3D12 맥락 생성에 실패했습니다" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "D3D12 글로벌 리소스 생성에 실패했습니다" @@ -4430,7 +4479,7 @@ msgstr "넷플레이 메모리 카드를 삭제에 실패했습니다. 쓰기 msgid "Failed to delete the selected file." msgstr "선택된 파일 삭제에 실패했습니다." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "블투 패스쓰루용 커널 드라이버를 분리하는데에 실패했습니다: {0}" @@ -4510,7 +4559,7 @@ msgstr "" "것이 그 안에 파일들에 액세스를 막고 있습니다. NAND (도구 -> NAND 관리 -> " "NAND 체크...) 를 고쳐 보세요, 그런 후 저장을 다시 가져오세요." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "코어 인식에 실패했습니다" @@ -4524,8 +4573,8 @@ msgstr "" "비디오 카드가 적어도 D3D 10.0 지원하는지 확인하세요\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "렌더러 클래스 초기화에 실패했습니다" @@ -4538,7 +4587,7 @@ msgstr "팩 설치에 실패했습니다: %1" msgid "Failed to install this title to the NAND." msgstr "NAND 에 이 타이틀 설치에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4576,12 +4625,12 @@ msgstr "" "설치해보세요." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "'%1' 를 열기에 실패했습니다" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "블루투스 장치 열기에 실패했습니다: {0}" @@ -4609,7 +4658,7 @@ msgstr "" msgid "Failed to open file." msgstr "파일 열기에 실패했습니다." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "서버 열기에 실패했습니다" @@ -4789,7 +4838,7 @@ msgstr "" "치명적 비동기. 재생을 중단합니다. (PlayWiimote에서 오류: {0} != {1}, byte " "{2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "시야" @@ -4954,7 +5003,7 @@ msgstr "" "설정 지시사항들에 대해서, 이 페이지를 참고하세요." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5013,7 +5062,7 @@ msgstr "" msgid "Format:" msgstr "포맷:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5106,7 +5155,7 @@ msgstr "" "운 메뉴에서 사용할 수 있습니다.

자세한 지시사항은, 이 페이지를 참조하세요." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "자유보기" @@ -5121,7 +5170,7 @@ msgstr "자유로운 보기 토글" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "프랑스어" @@ -5161,7 +5210,7 @@ msgstr "함수 호출자" msgid "Function calls" msgstr "함수 호출" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "함수들" @@ -5181,7 +5230,7 @@ msgstr "GBA 코어" msgid "GBA Port %1" msgstr "GBA 포트 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "GBA 설정" @@ -5205,7 +5254,7 @@ msgstr "GBA%1 롬이 비활성화되었습니다" msgid "GC Port %1" msgstr "GC 포트 %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI 폴더" @@ -5239,7 +5288,7 @@ msgstr "" "추가로 에러들은 비디오 백엔드 로그에 보내질 것이며\n" "돌핀은 이제 깨지거나 멈추려 할 것입니다. 즐기세요." -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE 가 {0} 입니다 - 적어도 1024 이어야만 합니다." @@ -5255,7 +5304,7 @@ msgstr "" "GPU: 에러: 멀티 렌더 타겟을 위해 GL_ARB_framebuffer_object 가 필요합니다.\n" "GPU: 당신의 비디오 카드가 OpenGL 3.0 을 지원합니까?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL 에러: 당신의 비디오 카드가 OpenGL 2.0 을 지원합니까?" @@ -5291,7 +5340,7 @@ msgstr "" "GPU: OGL 에러: GL_ARB_vertex_array_object 가 필요합니다.\n" "GPU: 당신의 비디오 카드가 OpenGL 3.0 을 지원합니까?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5309,7 +5358,7 @@ msgstr "" "GPU: 당신의 비디오 카드가 OpenGL 3.0 을 지원합니까?\n" "GPU: 당신의 드라이버는 GLSL {0} 을 지원합니다" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5326,11 +5375,11 @@ msgstr "게임" msgid "Game Boy Advance" msgstr "게임 보이 어드밴스" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "게임 보이 어드밴스 카트리지 (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5350,7 +5399,7 @@ msgstr "게임 환경" msgid "Game Details" msgstr "게임 세부사항" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "게임 폴더들" @@ -5445,7 +5494,7 @@ msgid "GameCube Memory Cards" msgstr "게임큐브 메모리 카드" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "게임큐브 메모리 카드 (*.raw *.gcp)" @@ -5500,7 +5549,7 @@ msgstr "'%1' 에서 부호 이름들을 생성했습니다" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "독일어" @@ -5508,11 +5557,11 @@ msgstr "독일어" msgid "Germany" msgstr "독일" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5711,7 +5760,7 @@ msgstr "호스트 입력 권한 켜짐" msgid "Host with NetPlay" msgstr "넷플레이로 호스트" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "호스트명" @@ -5743,7 +5792,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "나는 위험성을 알고 있고 계속하겠습니다" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "아이디" @@ -5785,7 +5834,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR 감도:" @@ -5964,11 +6013,11 @@ msgstr "저장 파일(들)을 가져오기" msgid "Import Wii Save..." msgstr "Wii 저장 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "NAND 백업 가져오기" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6002,7 +6051,7 @@ msgstr "" "트 놓침을 고칩니다.

잘 모르겠으면, 체크해 두세요." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "증가" @@ -6023,15 +6072,15 @@ msgstr "에뮬레이션 속도 증가" msgid "Increase IR" msgstr "IR 증가" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "X 증가" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Y 증가" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "증분 회전" @@ -6039,6 +6088,13 @@ msgstr "증분 회전" msgid "Incremental Rotation (rad/sec)" msgstr "증분 회전 (rad/sec)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6078,7 +6134,7 @@ msgstr "무시하고 리매핑할 힘을 입력하세요." msgid "Insert &nop" msgstr "nop 삽입 (&n)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SD 카드 삽입" @@ -6266,7 +6322,7 @@ msgstr "부적합한 관찰 주소: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "이탈리아어" @@ -6360,7 +6416,7 @@ msgid "Japan" msgstr "일본" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "일본어" @@ -6398,7 +6454,7 @@ msgstr "키보드" msgid "Keys" msgstr "키" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6411,7 +6467,7 @@ msgid "Korea" msgstr "한국" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "한국어" @@ -6463,7 +6519,7 @@ msgstr "지연: ~40 ms" msgid "Latency: ~80 ms" msgstr "지연: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6569,7 +6625,7 @@ msgstr "게임큐브 메인 메뉴 로드" msgid "Load Last State" msgstr "마지막 상태 로드" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "경로 로드:" @@ -6838,7 +6894,7 @@ msgstr "수동 텍스처 샘플링" msgid "Mapping" msgstr "매핑" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "마스크 롬" @@ -6859,7 +6915,7 @@ msgstr "최대 버퍼 크기가 %1 로 변경되었습니다" msgid "Maximum tilt angle." msgstr "최대 틸트 각도." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Wii 메뉴와 일부 게임에서 느려짐을 유발할지도 모릅니다." @@ -6876,7 +6932,7 @@ msgstr "메모리" msgid "Memory Breakpoint" msgstr "메모리 중단점" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "메모리 카드" @@ -6904,7 +6960,7 @@ msgstr "메모리카드: 부적합 소스 주소로 호출된 읽기 ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "메모리카드: 부적합 목적지 주소로 호출된 쓰기 ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6915,11 +6971,11 @@ msgstr "" "장들을 덮어쓰게 됩니다. 이 처리는 되돌릴 수 없습니다, 따라서 두 NAND 를 계속 " "백업할 것을 권장합니다. 정말 계속합니까?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6929,7 +6985,7 @@ msgstr "마이크" msgid "Misc" msgstr "기타" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "기타 설정" @@ -6979,7 +7035,7 @@ msgstr "" msgid "Modules found: %1" msgstr "발견된 모듈: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "단일" @@ -7021,7 +7077,7 @@ msgstr "마우스 커서는 항상 보일 것입니다." msgid "Mouse Cursor will never be visible while a game is running." msgstr "마우스 커서는 게임이 구동되는 동안에 절대로 보이지 않을 것입니다." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "이동" @@ -7037,6 +7093,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "모두 아니오(&o)" @@ -7067,8 +7128,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7134,7 +7195,7 @@ msgstr "넷플레이가 갈렸습니다. 이것으로부터 복구할 방법이 msgid "Network" msgstr "네트워크" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "네트워크 덤프 포멧:" @@ -7270,11 +7331,11 @@ msgstr "M3U 파일 \"{0}\" 에 경로가 없습니다" msgid "No possible functions left. Reset." msgstr "가능한 함수가 없습니다. 리셋합니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "문제들이 발견되지 않았습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7304,7 +7365,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "없음" @@ -7365,7 +7426,7 @@ msgid "Notice" msgstr "알림" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "없음" @@ -7482,7 +7543,7 @@ msgstr "Riivolution XML 열기..." msgid "Open Wii &Save Folder" msgstr "Wii 저장 폴더 열기(&S)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "덤프 폴더 열기" @@ -7510,7 +7571,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "연산자들" @@ -7532,7 +7593,7 @@ msgstr "주황" msgid "Orbital" msgstr "궤도" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7571,7 +7632,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7707,7 +7768,7 @@ msgstr "피지컬" msgid "Physical address space" msgstr "물리적 주소 공간" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7773,7 +7834,7 @@ msgstr "포인트" msgid "Port %1" msgstr "포트 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "포트 %1 롬:" @@ -7880,7 +7941,7 @@ msgstr "사설과 공공" msgid "Problem" msgstr "문제" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7888,7 +7949,7 @@ msgstr "" "높은 심각성을 지닌 문제들이 발견되었습니다. 게임이 전혀 작동하지 않을 가능성" "이 높습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7896,7 +7957,7 @@ msgstr "" "낮은 심각성을 지닌 문제들이 발견되었습니다. 게임 구동을 방해할 가능성은 적습" "니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7926,7 +7987,7 @@ msgstr "공공" msgid "Purge Game List Cache" msgstr "게임 목록 캐시 제거" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "IPL 롬을 in User/GC/ 에 두세요." @@ -7953,7 +8014,7 @@ msgstr "DPLII 디코더의 품질. 오디오 지연이 품질로 증가합니다 #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "질문" @@ -7994,7 +8055,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii 이미지들 (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "범위" @@ -8166,8 +8226,8 @@ msgstr "나중에 다시 알려주기" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "제거" @@ -8231,7 +8291,7 @@ msgstr "알림: GCIFolder가 할당되지 않은 블록 {0:#x} 에 씀" msgid "Request to Join Your Party" msgstr "당신의 파티로 참여 요청" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8265,11 +8325,11 @@ msgstr "횡단 서버를 %1:%2 로 리셋합니다" msgid "Reset Traversal Settings" msgstr "횡단 설정 리셋" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "값 리셋" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "보기 리셋" @@ -8281,7 +8341,7 @@ msgstr "저장된 모든 Wii 리모트 페어링 재설정" msgid "Resource Pack Manager" msgstr "리소스 팩 매니저" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "리소스 팩 경로:" @@ -8314,7 +8374,7 @@ msgstr "개정" msgid "Revision: %1" msgstr "개정: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8401,7 +8461,7 @@ msgstr "진동" msgid "Run &To Here" msgstr "여기까지 실행 (&T)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "GBA 코어들을 전용 쓰레드로 구동합니다" @@ -8413,18 +8473,26 @@ msgstr "러시아" msgid "SD Card" msgstr "SD 카드" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD 카드 이미지 (*.raw);;모든 파일 (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD 카드 경로:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD 루트:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "선택" @@ -8433,11 +8501,11 @@ msgstr "선택" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL 맥락" @@ -8511,7 +8579,7 @@ msgstr "가장 오래된 상태 저장" msgid "Save Preset" msgstr "프리셋 저장" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "녹화 파일을 다른 이름으로 저장" @@ -8611,7 +8679,7 @@ msgstr "" "이터 백업을 고려하세요.\n" "지금 덮어쓰시겠습니까?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "롬과 같은 디렉토리에 저장" @@ -8639,7 +8707,7 @@ msgstr "저장..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "저장된 Wii 리모트 페어링은 게임이 구동 중일 때만 재설정될 수 있습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "저장들:" @@ -8674,7 +8742,7 @@ msgstr "주소 검색" msgid "Search Current Object" msgstr "최근 오브젝트 찾기" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "하위폴더 찾기" @@ -8718,11 +8786,11 @@ msgstr "모든 그래픽 관련 설정들을 포함하는 섹션." msgid "Section that contains most CPU and Hardware related settings." msgstr "대부분의 CPU 와 하드웨어 관련된 설정들을 포함하는 섹션." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "보안 옵션" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "선택" @@ -8735,15 +8803,15 @@ msgstr "덤프 경로 선택" msgid "Select Export Directory" msgstr "내보내기 디렉토리 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "GBA 바이오스 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "GBA 롬 선택" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "GBA 저장 경로 선택" @@ -8815,7 +8883,7 @@ msgstr "상태 슬롯 8 선택" msgid "Select State Slot 9" msgstr "상태 슬롯 9 선택" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "WFS 경로 선택" @@ -8831,17 +8899,21 @@ msgstr "디렉토리 선택" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "파일 선택" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "게임 선택" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "SD 카드 이미지 선택" @@ -8865,7 +8937,7 @@ msgstr "e-Reader 카드 선택" msgid "Select the RSO module address:" msgstr "RSO 모듈 주소 선택:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "플레이할 녹화 파일 선택" @@ -8873,11 +8945,11 @@ msgstr "플레이할 녹화 파일 선택" msgid "Select the Virtual SD Card Root" msgstr "가상 SD 카드 루트 선택" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "키 파일 선택 (OTP/SEEPROM 덤프)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "저장 파일을 선택" @@ -8998,7 +9070,7 @@ msgstr "" msgid "Send" msgstr "보내기" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "센서 바 위치:" @@ -9070,7 +9142,7 @@ msgstr "부호 끝 주소 설정" msgid "Set symbol size (%1):" msgstr "부호 크기 (%1) 설정:" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9080,7 +9152,7 @@ msgstr "" "니다.\n" "모든 게임에서 작동하지는 않을 것입니다." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Wii 시스템 언어를 설정합니다." @@ -9406,7 +9478,7 @@ msgid "Signed Integer" msgstr "부호화 정수" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "간소화 중국어" @@ -9474,7 +9546,7 @@ msgstr "슬라이더 바" msgid "Slot A" msgstr "슬롯 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "슬롯 A:" @@ -9482,7 +9554,7 @@ msgstr "슬롯 A:" msgid "Slot B" msgstr "슬롯 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "슬롯 B:" @@ -9490,7 +9562,7 @@ msgstr "슬롯 B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "엄지스틱 위치를 가장 가까운 8각 축으로 스냅합니다." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "소켓 테이블" @@ -9500,11 +9572,11 @@ msgstr "소켓 테이블" msgid "Software Renderer" msgstr "소프트웨어 렌더러" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "데이터의 일부가 읽혀지지 않았습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9525,7 +9597,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "알파벳순으로 정렬" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "사운드:" @@ -9539,7 +9611,7 @@ msgstr "스페인" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "스페인어" @@ -9547,7 +9619,7 @@ msgstr "스페인어" msgid "Speaker Pan" msgstr "스피커 팬" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "스피커 볼륨:" @@ -9579,7 +9651,7 @@ msgstr "" "이 레블들이 일반적으로 9 레블 만큼 대략 좋지만 상당히 적은 시간에 끝납니다." "

모르겠으면, 이것을 6으로 두세요." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9644,8 +9716,8 @@ msgstr "Riivolution 패치들로 시작..." msgid "Started game" msgstr "시작된 게임" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9700,7 +9772,7 @@ msgstr "스텝 성공!" msgid "Stepping" msgstr "스텝핑" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "스테레오" @@ -9874,12 +9946,12 @@ msgstr "지원" msgid "Supported file formats" msgstr "지원하는 파일 포멧" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "SD 와 SDHC 를 지원합니다. 기본 크기는 128 MB 입니다." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "서라운드" @@ -9982,6 +10054,12 @@ msgstr "" "듀얼 코어 모드에서 랜덤 프리징을 막을 수 있도록 GPU와 CPU 쓰레드들을 동기화합" "니다. (켬 = 호환성, 끔 = 빠름)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "AR 코드들을 동기화합니다..." @@ -9995,7 +10073,7 @@ msgid "Synchronizing save data..." msgstr "저장 데이터를 동기화합니다..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "시스템 언어:" @@ -10038,7 +10116,7 @@ msgstr "스크린샷 찍기" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "테스트" @@ -10096,7 +10174,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND 가 고쳐졌습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10132,7 +10210,7 @@ msgstr "" "{0} 파티션에 대한 데이터 크기가 블록 크기에 의해 균등하게 나누어질 수 없습니" "다." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "해독 키들은 NAND 백업 파일에 첨부될 필요가 있습니다." @@ -10174,7 +10252,7 @@ msgstr "에뮬된 Wii 콘솔이 이미 최신입니다." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "입력된 맥 어드레스가 부적합합니다." @@ -10186,11 +10264,11 @@ msgstr "입력된 PID 가 부적합합니다." msgid "The entered VID is invalid." msgstr "입력된 VID 가 부적합합니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "표현식에 문법 에러가 있습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10222,7 +10300,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "{0} 파일이 이미 열려 있습니다, 파일 헤더는 기록되지 않을 것입니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10233,22 +10311,22 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "파일시스템이 부적합하거나 읽혀질 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "디스크 이미지가 저장되어 있는 포맷이 디스크 이미지 크기를 담고있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "게임 ID 가 일관되지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "게임 ID 가 비정상적으로 짧습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "게임 ID 가 {0} 이지만 {1} 이어야 합니다." @@ -10327,7 +10405,7 @@ msgstr "프로파일 '%1' 이 존재하지 않습니다" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "기록된 게임 ({0}) 은 선택된 게임 ({1}) 과 같지 않습니다" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10341,7 +10419,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "해독된 AR 코드 결과가 없습니다." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10373,7 +10451,7 @@ msgstr "" "요." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "명시된 공통 키 인덱스는 {0} 입니다 하지만 {1} 이어야 합니다." @@ -10386,7 +10464,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "대상 메모리 카드가 이미 파일 \"%1\" 을 가지고 있습니다." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "티켓이 올바르게 서명되어 있지 않습니다." @@ -10402,7 +10480,7 @@ msgstr "" "업데이트가 취소되었습니다. 불안정한 시스템 소프트웨어 버전을 피하기위해 종료" "할 것을 강력히 권장합니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "업데이트 파티션이 이 타이틀에서 사용되는 IOS 를 담고 있지 않습니다." @@ -10468,7 +10546,7 @@ msgstr "Gecko 코드가 아무 줄도 포함하고 있지 않습니다." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10507,15 +10585,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "이것은 되돌릴 수 없습니다!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "이 디버그 디스크 이미지는 리테일 디스크 이미지 크기를 가지고 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "이 디스크 이미지는 비정상적인 크기입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10525,7 +10603,7 @@ msgstr "" "게 만들 것입니다. 입력 녹화들을 공유하거나 좋은 덤프를 사용하는 누군가와 넷플" "레이를 사용하는 것들을 대체로 할 수 없을 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10537,7 +10615,7 @@ msgstr "" "들이 똑같지는 않더라도 이 파일의 CRC32 가 좋은 덤프의 CRC32 와 매치될지도 모" "릅니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10545,7 +10623,7 @@ msgstr "" "디스크 이미지가 너무 작고 일부 데이터가 부족합니다. 당신의 덤핑 프로그램이 디" "스크 이미지를 여러 부분으로 저장했다면, 한 파일로 통합할 필요가 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10561,7 +10639,7 @@ msgstr "이 파일은 적합한 Wii 파일시스템을 지니고 있지 않습 msgid "This file does not look like a BootMii NAND backup." msgstr "이 파일은 BootMii NAND 백업처럼 보이지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10571,7 +10649,7 @@ msgstr "" "일부 내용들, 추가 언어들이나 전체 게임 모드들이 고장날 것입니다. 이 문제는 일" "반적으로 불법 복제 게임들에만 존제합니다." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10581,11 +10659,11 @@ msgstr "" "픽 카드나 드라이버가 그것을 지원하지 않습니다. 결과적으로 이 게임을 구동하는 " "동안 버그나 프리징을 겪을 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "이것은 안 좋은 덤프입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10593,7 +10671,7 @@ msgstr "" "이것은 안 좋은 덤프입니다. 이것이 필연적으로 게임이 올바르게 구동되지 않을 것" "이라는 것을 의미하지는 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10601,7 +10679,7 @@ msgstr "" "Redump.org 에 따르면 이것은 좋은 덤프입니다, 하지만 돌핀이 문제를 발견했습니" "다. 이것은 돌핀쪽 버그 일지도 모릅니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "이것은 좋은 덤프입니다." @@ -10630,12 +10708,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "이 타이틀은 부팅될 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "이 타이틀은 부적합 IOS 를 사용하도록 설정되어 있습니다." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "이 타이틀은 부적합 공유 키를 사용하도록 설정되어 있습니다." @@ -10706,7 +10784,7 @@ msgstr "쓰레드" msgid "Threshold" msgstr "한계점" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10823,7 +10901,7 @@ msgstr "토큰화를 실패했습니다." msgid "Toolbar" msgstr "툴바" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "위" @@ -10871,7 +10949,7 @@ msgid "Touch" msgstr "터치" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "전통 중국어" @@ -10896,7 +10974,7 @@ msgstr "" "분기들을 미리 해석 시도합니다, 대부분의 경우에서 성능을 향상시킵니다. 기본값" "은 켜기" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "트라이포스 AM 베이스보드" @@ -10911,8 +10989,8 @@ msgstr "트리거" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "타입" @@ -10932,7 +11010,7 @@ msgstr "알려지지 않음" msgid "USA" msgstr "미국" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11167,7 +11245,7 @@ msgstr "비부호화 8" msgid "Unsigned Integer" msgstr "부호 없는 정수" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11239,6 +11317,10 @@ msgstr "Wii 리모트 똑바로" msgid "Usage Statistics Reporting Settings" msgstr "사용 통계 보고 설정" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "내장된 데이터 베이스의 게임 이름 사용" @@ -11251,7 +11333,7 @@ msgstr "맞춤형 사용자 스타일 사용" msgid "Use Lossless Codec (FFV1)" msgstr "비손실 코덱 (FFV1) 사용" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 모드 (EuRGB60) 사용" @@ -11350,11 +11432,11 @@ msgstr "사용자 인터페이스" msgid "User Style:" msgstr "사용자 스타일:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "사용자 변수들" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11453,7 +11535,7 @@ msgstr "검증" msgid "Verify Integrity" msgstr "강도 검증" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "증명서 검증" @@ -11582,7 +11664,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (전용 모드)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "WFS 경로:" @@ -11771,7 +11853,7 @@ msgstr "" "를 포함합니다.

잘 모르겠으면, 체크해 두세요." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "와이트리스트된 USB 패스쓰루 장치들" @@ -11791,7 +11873,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii 메뉴" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND 루트:" @@ -11817,7 +11899,7 @@ msgstr "Wii 리모트 버튼" msgid "Wii Remote Orientation" msgstr "Wii 리모트 방향" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii 리모트 설정" @@ -11939,7 +12021,7 @@ msgstr "X" msgid "XF register " msgstr "XF 레지스터" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "XLink Kai BBA 대상 주소" @@ -11973,6 +12055,20 @@ msgstr "예" msgid "Yes to &All" msgstr "모두 예(&A)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12107,7 +12203,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] 와 [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xor" @@ -12241,7 +12337,7 @@ msgstr "정렬되지 않음" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (명작)" @@ -12279,7 +12375,7 @@ msgstr "{1} 블락들의 {0}. 압축 비율 {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} 는 디렉토리가 아닙니다, *.original 로 이동되었습니다." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| 또는" diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 3ef035af7d..34f7cbffa5 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -27,7 +27,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -59,7 +59,7 @@ msgstr "" msgid " (Disc %1)" msgstr "(Cakera %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -67,22 +67,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -269,7 +275,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -656,19 +662,19 @@ msgstr "(mati)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -683,7 +689,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -713,7 +719,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -787,7 +793,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -861,11 +867,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Natif (5120x4224) for 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -880,12 +886,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Satu Sesi NetPlay sedang berlangsung!" @@ -907,7 +913,7 @@ msgstr "Cakera A sedia dimasukkan." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -920,7 +926,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Segerak hanya boleh dipicu bila permainan Wii berjalan." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -968,6 +974,11 @@ msgstr "Perihal Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Ketepatan:" @@ -1119,8 +1130,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Tambah..." @@ -1201,7 +1212,7 @@ msgstr "" "menyebabkan glic. Buat atas risiko sendiri. Jangan laporkan apa-apa pepijat " "yang muncul dengan kelajuan bukan-lalai." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Port Advance Game" @@ -1232,7 +1243,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1240,7 +1251,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1249,7 +1260,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1258,8 +1269,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Semua Keadaan Simpan (*.sav *.s##);; Semua Fail (*)" @@ -1295,7 +1306,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1428,7 +1439,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Nisbah Bidang:" @@ -1505,6 +1516,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1517,7 +1532,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1525,14 +1540,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT tidak betul. Dolphin akan keluar sekarang" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1563,10 +1578,11 @@ msgid "Backend:" msgstr "Bahagian Belakang:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Input Latar Belakang" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1648,15 +1664,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1675,7 +1691,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1708,11 +1724,11 @@ msgstr "" msgid "Boot to Pause" msgstr "But untuk Dijeda" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Fail sandar NAND BootMii (*.bin);;Semua Fail (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Fail kunci BootMii (*.bin);;Semua Fail (*)" @@ -1720,7 +1736,7 @@ msgstr "Fail kunci BootMii (*.bin);;Semua Fail (*)" msgid "Borderless Fullscreen" msgstr "Skrin Penuh Tanpa Sempadan" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Bawah" @@ -1751,19 +1767,27 @@ msgstr "Titik henti dihadapi! Langkah keluar dihenti paksa." msgid "Breakpoints" msgstr "Titik Henti" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1895,7 +1919,7 @@ msgstr "" msgid "Callstack" msgstr "Tindanan Panggilan" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1913,8 +1937,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Tidak dapat memulakan Sesi NetPlay ketika permainan masih berlangsung!" @@ -2034,7 +2058,7 @@ msgstr "" msgid "Check NAND..." msgstr "Periksa NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2058,11 +2082,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Pilih satu fail untuk dibuka" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2093,7 +2117,7 @@ msgid "Classic Controller" msgstr "Pengawal Klasik" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2169,7 +2193,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2215,11 +2239,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Konfigur Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Konfigur Input" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Konfigur Output" @@ -2228,8 +2252,8 @@ msgstr "Konfigur Output" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Sahkan" @@ -2257,7 +2281,7 @@ msgstr "Sambung" msgid "Connect Balance Board" msgstr "Sambung Papan Imbang" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Sambung Papan Kekunci USB" @@ -2305,7 +2329,7 @@ msgstr "" msgid "Connection Type:" msgstr "Jenis Sambungan:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2401,14 +2425,31 @@ msgstr "" msgid "Convergence:" msgstr "Ketumpuan:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2521,14 +2562,14 @@ msgstr "" "Tidak dapat memuat turun maklumat dari Nintendo. Sila periksa sambungan " "Internet anda dan cuba lagi." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2800,7 +2841,7 @@ msgstr "Desimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2821,11 +2862,11 @@ msgstr "Kurangkan Kelajuan Emulasi" msgid "Decrease IR" msgstr "Kurangkan IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2845,7 +2886,7 @@ msgstr "" msgid "Default Font" msgstr "Fon Lalai" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO Lalai:" @@ -2924,7 +2965,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Kesan" @@ -2970,7 +3011,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Malapkan skrin selepas lima minit ketidakaktifan." @@ -3095,7 +3136,7 @@ msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Adakah anda izinkan Dolphin melaporkan maklumat kepada pembangun Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Anda mahu tambah \"%1\" ke dalam senarai Laluan Permainan?" @@ -3109,7 +3150,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Anda hendak hentikan emulasi semasa?" @@ -3140,8 +3181,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Cereka TAS Dolphin (*.dtm)" @@ -3180,13 +3221,13 @@ msgstr "Dolphin ialah emulator GameCube dan Wii bebas dan bersumber-terbuka." msgid "Dolphin is too old for traversal server" msgstr "Dolphin terlalu tua untuk pelayan traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3200,8 +3241,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Sistem tipuan Dolphin buat masa ini dilumpuhkan." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3224,7 +3265,7 @@ msgstr "Selesai memampatkan imej cakera." msgid "Double" msgstr "Dubel" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3276,7 +3317,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Semu" @@ -3316,6 +3357,10 @@ msgstr "Longgok Sasaran EFB" msgid "Dump Frames" msgstr "Longgok Bingkai" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3324,7 +3369,7 @@ msgstr "" msgid "Dump Objects" msgstr "Longgok Objek" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Laluan Longgok:" @@ -3366,11 +3411,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3380,16 +3425,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3422,7 +3467,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Bahasa Belanda" @@ -3478,7 +3523,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3494,7 +3539,7 @@ msgstr "Penimbal Bingkai Terbenam (EFB)" msgid "Empty" msgstr "Kosong" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Bebenang Emu sudah berjalan" @@ -3581,11 +3626,11 @@ msgid "Enable Progressive Scan" msgstr "Benarkan Imbas Progresif" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Benarkan Rumble" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Benarkan Penyelamat Skrin" @@ -3713,7 +3758,7 @@ msgstr "Enet Tidak Diawalkan" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Bahasa Inggeris" @@ -3723,7 +3768,7 @@ msgstr "Bahasa Inggeris" msgid "Enhancements" msgstr "Penambahbaikan" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3745,6 +3790,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Masukkan alamat modul RSO:" @@ -3757,7 +3806,7 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3785,12 +3834,12 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3815,9 +3864,9 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Ralat" @@ -3916,11 +3965,11 @@ msgstr "" "Ralat: Ketika cuba mencapai fon Windows-1252 tetapi ia tidak dimuatkan. " "Permainan mungkin tidak menunjukkan fon yang betul, atau mengalami kerosakan." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4114,7 +4163,7 @@ msgid "Extracting Directory..." msgstr "Mengekstrak Direktori..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4141,7 +4190,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4153,16 +4202,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4183,7 +4232,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Gagal memadam fail terpilih." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4253,7 +4302,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Gagal ke teras init" @@ -4264,8 +4313,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4278,7 +4327,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "Gagal memasang tajuk ini ke NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4314,12 +4363,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Gagal membuka '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4345,7 +4394,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Gagal membuka pelayan" @@ -4514,7 +4563,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4670,7 +4719,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4718,7 +4767,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4808,7 +4857,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4823,7 +4872,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Perancis" @@ -4863,7 +4912,7 @@ msgstr "Pemanggil fungsi" msgid "Function calls" msgstr "Panggilan fungsi" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4883,7 +4932,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4907,7 +4956,7 @@ msgstr "" msgid "GC Port %1" msgstr "Port GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Folder GCI" @@ -4932,7 +4981,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4946,7 +4995,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4974,7 +5023,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4987,7 +5036,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5002,11 +5051,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartu Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5024,7 +5073,7 @@ msgstr "Konfig Permainan" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Folder Permainan" @@ -5118,7 +5167,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Kad Ingatan GameCube (*.raw *.gcp)" @@ -5173,7 +5222,7 @@ msgstr "Nama simbol terjana dari '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Jerman" @@ -5181,11 +5230,11 @@ msgstr "Jerman" msgid "Germany" msgstr "Jerman" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5376,7 +5425,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "Hos dengan NetPlay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5408,7 +5457,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5444,7 +5493,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Kepekaan IR:" @@ -5586,11 +5635,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Import Simpan Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Mengimport sandar NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5620,7 +5669,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5641,15 +5690,15 @@ msgstr "Tingkatkan Kelajuan Emulasi" msgid "Increase IR" msgstr "Tingkatkan IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5657,6 +5706,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5696,7 +5752,7 @@ msgstr "" msgid "Insert &nop" msgstr "Sisip &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Sisip Kad SD" @@ -5882,7 +5938,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Itali" @@ -5974,7 +6030,7 @@ msgid "Japan" msgstr "Jepun" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Jepun" @@ -6012,7 +6068,7 @@ msgstr "Papan Kekunci" msgid "Keys" msgstr "Kekunci" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6025,7 +6081,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korea" @@ -6077,7 +6133,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6177,7 +6233,7 @@ msgstr "Muat Menu Utama GameCube" msgid "Load Last State" msgstr "Muat Keadaan Terakhir" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6436,7 +6492,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6457,7 +6513,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Ia menyebabkan kelembapan dalam menu Wii dan sesetengah permainan." @@ -6474,7 +6530,7 @@ msgstr "Ingatan" msgid "Memory Breakpoint" msgstr "Titik Henti Ingatan" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Kad Ingatan" @@ -6502,7 +6558,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6514,11 +6570,11 @@ msgstr "" "tidak boleh dikembalikan, oleh itu disarankan anda sandar kedua-dua NAND. " "Anda pasti mahu teruskan?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6528,7 +6584,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Pelbagai" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Tetapan Pelbagai" @@ -6568,7 +6624,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6610,7 +6666,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6626,6 +6682,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6656,8 +6717,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6723,7 +6784,7 @@ msgstr "Netplay telah dinyahsegerakkan. Tiada lagi cara untuk memulihkannya." msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6859,11 +6920,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6891,7 +6952,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Tiada" @@ -6947,7 +7008,7 @@ msgid "Notice" msgstr "Notis" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -7062,7 +7123,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7090,7 +7151,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7112,7 +7173,7 @@ msgstr "Oren" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7151,7 +7212,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7287,7 +7348,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7353,7 +7414,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7458,19 +7519,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7498,7 +7559,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7525,7 +7586,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Soalan" @@ -7566,7 +7627,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Julat" @@ -7732,8 +7792,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Buang" @@ -7792,7 +7852,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7826,11 +7886,11 @@ msgstr "Tetap Semula Pelayan Traversal ke %1:%2" msgid "Reset Traversal Settings" msgstr "Tetap Semula Tetapan Traversal" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7842,7 +7902,7 @@ msgstr "Tetap semula semua perpasangan Wii Remote tersimpan" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7875,7 +7935,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7958,7 +8018,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "&Jalankan Di Sini" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7970,18 +8030,26 @@ msgstr "Rusia" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Laluan Kad SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7990,11 +8058,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -8068,7 +8136,7 @@ msgstr "Simpan Keadaan Terlama" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8165,7 +8233,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8195,7 +8263,7 @@ msgstr "" "Perpasangan Wii Remote tersimpan hanya boleh ditetapkan semula bila " "permainan Wii berjalan." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8230,7 +8298,7 @@ msgstr "Gelintar Alamat" msgid "Search Current Object" msgstr "Gelintar Objek Semasa" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Gelintar Subfolder" @@ -8272,11 +8340,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Pilih" @@ -8289,15 +8357,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8369,7 +8437,7 @@ msgstr "Pilih Slot Keadaan 8" msgid "Select State Slot 9" msgstr "Pilih Slot Keadaan 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8385,17 +8453,21 @@ msgstr "Pilih satu Direktori" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Pilih satu Fail" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Pilih satu Permainan" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8419,7 +8491,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8427,11 +8499,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Pilih fail kunci (longgok OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Pilih fail simpan" @@ -8524,7 +8596,7 @@ msgstr "" msgid "Send" msgstr "Hantar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Kedudukan Palang Penderia:" @@ -8593,7 +8665,7 @@ msgstr "Tetapkan alamat akhir simbol" msgid "Set symbol size (%1):" msgstr "Tetapkan saiz simbol (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8603,7 +8675,7 @@ msgstr "" "permainan PAL.\n" "Mungkin tidak berfungsi untk semua permainan." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Tetapkan bahasa sistem Wii." @@ -8910,7 +8982,7 @@ msgid "Signed Integer" msgstr "Integer Bertanda" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Cina Ringkas" @@ -8973,7 +9045,7 @@ msgstr "Palang Pelungsur" msgid "Slot A" msgstr "SLot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A:" @@ -8981,7 +9053,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B:" @@ -8989,7 +9061,7 @@ msgstr "Slot B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8999,11 +9071,11 @@ msgstr "" msgid "Software Renderer" msgstr "Penerap Perisian" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9020,7 +9092,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -9034,7 +9106,7 @@ msgstr "Sepanyol" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Sepanyol" @@ -9042,7 +9114,7 @@ msgstr "Sepanyol" msgid "Speaker Pan" msgstr "Lata Pembesar Suara" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volum Pembesar Suara:" @@ -9067,7 +9139,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9132,8 +9204,8 @@ msgstr "" msgid "Started game" msgstr "Permainan bermula" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9188,7 +9260,7 @@ msgstr "Langkah berjaya!" msgid "Stepping" msgstr "Melangkah" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9354,12 +9426,12 @@ msgstr "Sokongan" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9452,6 +9524,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9465,7 +9543,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Bahasa Sistem:" @@ -9508,7 +9586,7 @@ msgstr "Ambil Cekupan Skrin" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Uji" @@ -9565,7 +9643,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND telah dibaiki." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9593,7 +9671,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9633,7 +9711,7 @@ msgstr "Konsol Wii teremulasi telah dikemaskinikan." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9645,11 +9723,11 @@ msgstr "PID yang dimasukkan tidak sah." msgid "The entered VID is invalid." msgstr "VID yang dimasukkan tidak sah." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9673,7 +9751,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9684,21 +9762,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9769,7 +9847,7 @@ msgstr "Profil '%1' tidak wujud" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9780,7 +9858,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Kod AR dinyahsulit yang terhasil tidak mengandungi sebarang baris." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9806,7 +9884,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9819,7 +9897,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9835,7 +9913,7 @@ msgstr "" "Kemaskini dibatalkan. Adalah disarankan selesaikannya supaya dapat " "menghindari ketidaktepatan versi perisian sistem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9901,7 +9979,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9938,22 +10016,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "Ia tidak boleh dikembalikan!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9961,13 +10039,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9981,14 +10059,14 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Fail ini tidak kelihatan seperti sandar NAND BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -9998,23 +10076,23 @@ msgstr "" "tetapi kad grafik anda atau pemacunya tidak menyokong ia. Hasilnya anda akan " "menghadapi pepijat atau menjadi kaku ketika menjalankan permainan ini." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -10040,12 +10118,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Tajuk ini tidak boleh dibutkan." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10105,7 +10183,7 @@ msgstr "" msgid "Threshold" msgstr "Ambang" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10222,7 +10300,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Atas" @@ -10270,7 +10348,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Cina Tradisional" @@ -10293,7 +10371,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10308,8 +10386,8 @@ msgstr "Pemicu" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Jenis" @@ -10329,7 +10407,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10543,7 +10621,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Integer Tidak Bertanda" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10615,6 +10693,10 @@ msgstr "Wii Remote Tegak" msgid "Usage Statistics Reporting Settings" msgstr "Tetapan Pelaporan Statistik Penggunaan" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Guna Pangkalan Data Terbina-Dalam Nama Permainan" @@ -10627,7 +10709,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Guna Mod PAL60 (EuRGB60)" @@ -10701,11 +10783,11 @@ msgstr "Antaramuka Pengguna" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10791,7 +10873,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10912,7 +10994,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11051,7 +11133,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Peranti Menerusi USB Senarai Putih" @@ -11071,7 +11153,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Menu Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Root NAND Wii:" @@ -11097,7 +11179,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Tetapan Kawalan Jauh Wii" @@ -11217,7 +11299,7 @@ msgstr "X" msgid "XF register " msgstr "Daftar XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11251,6 +11333,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11354,7 +11450,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11486,7 +11582,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11521,7 +11617,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index c20fb4152f..a54dd97efa 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -30,7 +30,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -42,7 +42,7 @@ msgstr "" "Fordi GameCube-diskbilledfiler inneholder lite verifikasjonsdata, kan det " "være problemer som Dolphin ikke kan oppdage." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -78,7 +78,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disk %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Ikke" @@ -86,22 +86,28 @@ msgstr "! Ikke" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -288,7 +294,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Og" @@ -675,19 +681,19 @@ msgstr "(av)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multipliser" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Legg til" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Komma" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Trekk fra" @@ -702,7 +708,7 @@ msgstr "→ %1" msgid "..." msgstr "…" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Del" @@ -732,7 +738,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -806,7 +812,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blokker)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -880,11 +886,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x opprinnelig størrelse (5120x4224) for 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Mindre enn" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -902,12 +908,12 @@ msgstr "" "for nedlasting. Du bruker %2.
Ønsker du å oppgradere?" "

Versjonsnotater:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Større enn" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "En NetPlay-økt finnes allerede!" @@ -929,7 +935,7 @@ msgstr "En plate er i ferd med å bli satt inn." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -942,7 +948,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Synkronisering kan bare utløses når et Wii-spill kjører." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -1001,6 +1007,11 @@ msgstr "Om Dolphin" msgid "Accelerometer" msgstr "Akselerometer" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Nøyaktighet:" @@ -1152,8 +1163,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Legg til…" @@ -1233,7 +1244,7 @@ msgstr "" "forårsake feil. Gjør så på egen risiko. Vennligst ikke rapporter feil som " "oppstår når systemklokken er tuklet med." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance-spillport" @@ -1264,7 +1275,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1272,7 +1283,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Alle filer (*)" @@ -1281,7 +1292,7 @@ msgstr "Alle filer (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1290,8 +1301,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle lagringsstadier (*.sav *.s##);; Alle filer (*)" @@ -1327,7 +1338,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "Tillat rapportering av brukerstatistikk" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Tillat lagringer til SD-kort" @@ -1460,7 +1471,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Billedforhold:" @@ -1541,6 +1552,10 @@ msgstr "Gjem automatisk" msgid "Auto-detect RSO modules?" msgstr "Vil du auto-oppdage RSO-moduler?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1553,7 +1568,7 @@ msgid "Auxiliary" msgstr "Støtte" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1561,14 +1576,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT-filen er ugyldig. Dolphin vil nå avslutte" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1599,10 +1614,11 @@ msgid "Backend:" msgstr "Motor:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Bakgrunnsinndata" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1684,15 +1700,15 @@ msgstr "Beta (en gang i måneden)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, osv." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1711,7 +1727,7 @@ msgstr "Blokkstørrelse" msgid "Block Size:" msgstr "Blokkstørrelse:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blokkering" @@ -1744,11 +1760,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Start opp i pausemodus" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND sikkerhetskopifil (*.bin);;Alle filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii nøkkelfil (*.bin);;Alle filer (*)" @@ -1756,7 +1772,7 @@ msgstr "BootMii nøkkelfil (*.bin);;Alle filer (*)" msgid "Borderless Fullscreen" msgstr "Rammefri fullskjermsvisning" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Nede" @@ -1787,19 +1803,27 @@ msgstr "Stoppunkt nådd! Utstepping avbrutt." msgid "Breakpoints" msgstr "Stoppunkter" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Bredbåndsadapter (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Bredbåndsadapter (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1931,7 +1955,7 @@ msgstr "" msgid "Callstack" msgstr "Kallstakk" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1949,8 +1973,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan ikke starte en NetPlay-økt mens et spill er aktivt!" @@ -2071,7 +2095,7 @@ msgstr "Juksekodebehandler" msgid "Check NAND..." msgstr "Sjekk NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Sjekk for endringer i spillisten i bakgrunnen" @@ -2095,11 +2119,11 @@ msgstr "Sjekksum" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Velg en fil å åpne" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2130,7 +2154,7 @@ msgid "Classic Controller" msgstr "Klassisk kontroller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2206,7 +2230,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "Kompiler shadere før start" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Komplierer skygger" @@ -2252,11 +2276,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Sett opp Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Sett opp inndata" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Sett opp utdata" @@ -2265,8 +2289,8 @@ msgstr "Sett opp utdata" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekreft" @@ -2294,7 +2318,7 @@ msgstr "Koble til" msgid "Connect Balance Board" msgstr "Koble til balansebrett" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Koble til USB-tastatur" @@ -2342,7 +2366,7 @@ msgstr "" msgid "Connection Type:" msgstr "Tilkoblingstype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2444,14 +2468,31 @@ msgstr "" msgid "Convergence:" msgstr "Konvergens:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Konverter" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Konverter fil …" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Konverter de valgte filene …" @@ -2564,14 +2605,14 @@ msgstr "" "Kunne ikke laste ned oppdateringsinformasjon fra Nintendo. Sjekk din " "internettilknytning å prøv igjen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2843,7 +2884,7 @@ msgstr "Desimal" msgid "Decoding Quality:" msgstr "Dekodingskvalitet:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2864,11 +2905,11 @@ msgstr "Senk emuleringshastighet" msgid "Decrease IR" msgstr "Reduser IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2888,7 +2929,7 @@ msgstr "Standard enhet" msgid "Default Font" msgstr "Forvalgt skrift" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Forvalgt ISO-fil:" @@ -2967,7 +3008,7 @@ msgstr "" msgid "Detached" msgstr "Frakoblet" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Finn automatisk" @@ -3013,7 +3054,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Demp skjermbelysning etter fem minutters inaktivitet." @@ -3137,7 +3178,7 @@ msgstr "Reiseavstand fra nøytral posisjon." msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Tillater du at Dolphin samler inn informasjon til Dolphins utviklere?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vil du legge til «%1» i listen over spillfilbaner?" @@ -3151,7 +3192,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Vil du stoppe pågående emulering?" @@ -3182,8 +3223,8 @@ msgstr "Dolphin-signatur-CSV-fil" msgid "Dolphin Signature File" msgstr "Dolphin-signaturfil" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS-Filmer (*.dtm)" @@ -3222,7 +3263,7 @@ msgstr "Dolphin er en fri og åpen kildekode-basert GameCube og Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel for traverseringsserveren" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3230,7 +3271,7 @@ msgstr "" "Dolphin kan ikke verifisere typiske TGC-filer ordentlig, siden de ikke er " "ripper av faktiske disker." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan ikke verifisere ulisensierte disker." @@ -3244,8 +3285,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphins juksesystem er for øyeblikket deaktivert." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domene" @@ -3268,7 +3309,7 @@ msgstr "Ferdig med å komprimere disk-avbildningsfil." msgid "Double" msgstr "Dobbel" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3320,7 +3361,7 @@ msgstr "Dobbelkjerne" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Juksedukke" @@ -3360,6 +3401,10 @@ msgstr "Dump EFB-mål" msgid "Dump Frames" msgstr "Dumping av bilder" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3368,7 +3413,7 @@ msgstr "" msgid "Dump Objects" msgstr "Dump objekter" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dump sti:" @@ -3410,11 +3455,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3424,16 +3469,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3466,7 +3511,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Nederlandsk" @@ -3522,7 +3567,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3538,7 +3583,7 @@ msgstr "Eksternt bildemellomlager (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emulator-CPU-tråden kjører allerede" @@ -3625,11 +3670,11 @@ msgid "Enable Progressive Scan" msgstr "Aktiver progressiv skanning" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Aktiver vibrering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Aktiver skjermbeskytter" @@ -3757,7 +3802,7 @@ msgstr "Enhet ble ikke igangsatt" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engelsk" @@ -3767,7 +3812,7 @@ msgstr "Engelsk" msgid "Enhancements" msgstr "Forbedringer" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3789,6 +3834,10 @@ msgstr "Skriv inn en ny Bredbåndsadapter MAC-adresse:" msgid "Enter password" msgstr "Oppgi passord" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Skriv inn RSO-moduladresse:" @@ -3801,7 +3850,7 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3829,12 +3878,12 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3859,9 +3908,9 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Feil" @@ -3961,11 +4010,11 @@ msgstr "" "Feil: Prøver å slå opp Windows-1252 skrifttyper, men de er ikke lastet. " "Spill kan potensielt ikke vise skrifttyper riktig, eller krasje." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4159,7 +4208,7 @@ msgid "Extracting Directory..." msgstr "Pakker ut mappe..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4188,7 +4237,7 @@ msgstr "Kunne ikke legge til denne sesjonen i NetPlay-indeksen: %1" msgid "Failed to append to signature file '%1'" msgstr "Kunne ikke legge til på signaturfil '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4200,16 +4249,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "Kunne ikke koble til server: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Kunne ikke lage D3D swap chain" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4230,7 +4279,7 @@ msgstr "Kunne ikke slette NetPlay-minnekort. Verifiser dine skrivetillatelser." msgid "Failed to delete the selected file." msgstr "Klarte ikke å slette valgt fil." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4300,7 +4349,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Klarte ikke å igangsette kjerne" @@ -4311,8 +4360,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4325,7 +4374,7 @@ msgstr "Kunne ikke installere pakke: %1" msgid "Failed to install this title to the NAND." msgstr "Klarte ikke å installere denne tittelen til NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4361,12 +4410,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Klarte ikke å åpne \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4394,7 +4443,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Klarte ikke å åpne tjener" @@ -4566,7 +4615,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4725,7 +4774,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4773,7 +4822,7 @@ msgstr "" msgid "Format:" msgstr "Format:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4863,7 +4912,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4878,7 +4927,7 @@ msgstr "Frisikts-veksling" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Fransk" @@ -4918,7 +4967,7 @@ msgstr "Funksjonskallere" msgid "Function calls" msgstr "Funksjonskall" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funksjoner" @@ -4938,7 +4987,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4962,7 +5011,7 @@ msgstr "" msgid "GC Port %1" msgstr "GC-port %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI-mappe" @@ -4987,7 +5036,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -5001,7 +5050,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -5029,7 +5078,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5042,7 +5091,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5057,11 +5106,11 @@ msgstr "Spill" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-disker (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5079,7 +5128,7 @@ msgstr "Spilloppsett" msgid "Game Details" msgstr "Spilldetaljer" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Spillmapper" @@ -5173,7 +5222,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube-minnekort (*.raw *.gcp)" @@ -5228,7 +5277,7 @@ msgstr "Genererte symbolnavn fra '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Tysk" @@ -5236,11 +5285,11 @@ msgstr "Tysk" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5431,7 +5480,7 @@ msgstr "Vertsinndataautoritet aktivert" msgid "Host with NetPlay" msgstr "Vær vertskap med NetPlay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5463,7 +5512,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5499,7 +5548,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR-sensitivitet:" @@ -5640,11 +5689,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importer Wii-lagringsfil …" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importing NAND sikkerhetskopi" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5674,7 +5723,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5695,15 +5744,15 @@ msgstr "Øk emuleringshastighet" msgid "Increase IR" msgstr "Øk IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5711,6 +5760,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5750,7 +5806,7 @@ msgstr "" msgid "Insert &nop" msgstr "Sett inn &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Sett inn SD-kort" @@ -5936,7 +5992,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiensk" @@ -6028,7 +6084,7 @@ msgid "Japan" msgstr "Japan" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japansk" @@ -6066,7 +6122,7 @@ msgstr "Tastatur" msgid "Keys" msgstr "Nøkler" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6079,7 +6135,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreansk" @@ -6131,7 +6187,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6235,7 +6291,7 @@ msgstr "Last inn GameCube-hovedmeny" msgid "Load Last State" msgstr "Last inn nyeste hurtiglagring" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Innlastingsfilbane:" @@ -6494,7 +6550,7 @@ msgstr "" msgid "Mapping" msgstr "Mapping" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6515,7 +6571,7 @@ msgstr "Maksimum bufferstørrelse endret til %1" msgid "Maximum tilt angle." msgstr "Maksimal tilt-vinkel." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Kan senke ytelse i Wii-menyen og noen spill." @@ -6532,7 +6588,7 @@ msgstr "Minne" msgid "Memory Breakpoint" msgstr "Minne Stoppunkt" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Minnekort" @@ -6560,7 +6616,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6572,11 +6628,11 @@ msgstr "" "det er anbefalt at du bevarer sikkerhetskopier av begge NAND-filer. Er du " "sikker på at du vil fortsette?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6586,7 +6642,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Diverse" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Diverse innstillinger" @@ -6626,7 +6682,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -6668,7 +6724,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6684,6 +6740,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6714,8 +6775,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6783,7 +6844,7 @@ msgstr "" msgid "Network" msgstr "Nettverk" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6919,11 +6980,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Ingen problemer ble funnet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6954,7 +7015,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Ingen" @@ -7010,7 +7071,7 @@ msgid "Notice" msgstr "Merknad" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Ingenting" @@ -7127,7 +7188,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "Åpne Wii &lagringsmappe" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7155,7 +7216,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operatører" @@ -7177,7 +7238,7 @@ msgstr "Orange" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7216,7 +7277,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7353,7 +7414,7 @@ msgstr "Fysisk" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7419,7 +7480,7 @@ msgstr "Punkt" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7523,7 +7584,7 @@ msgstr "Privat og offentlig" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7531,7 +7592,7 @@ msgstr "" "Problem med høy alvorlighetsgrad funnet. Spillet vil sannsynligvis ikke " "fungere i det hele tatt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7539,7 +7600,7 @@ msgstr "" "Problem med lav alvorlighetsgrad funnet. Dette vil mest sannsynlig ikke " "hindre spillet fra å kjøre." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7569,7 +7630,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "Tøm spillistehurtiglager" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7596,7 +7657,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Spørsmål" @@ -7637,7 +7698,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii-avbildninger (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Område" @@ -7803,8 +7863,8 @@ msgstr "Minn Meg Senere" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Fjern" @@ -7863,7 +7923,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "Forespørsel om å bli med i din gruppe" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7897,11 +7957,11 @@ msgstr "Tilbakestill Traverseringsserver til %1:%2" msgid "Reset Traversal Settings" msgstr "Tilbakestill traverseringsinnstillinger" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7913,7 +7973,7 @@ msgstr "Tilbakestill alle Wii-kontroll parringer" msgid "Resource Pack Manager" msgstr "Ressurspakkebehandler" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7946,7 +8006,7 @@ msgstr "Revisjon" msgid "Revision: %1" msgstr "Revisjon: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8029,7 +8089,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Kjør &Til Hit" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -8041,18 +8101,26 @@ msgstr "Russland" msgid "SD Card" msgstr "SD-kort" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD-kortbilde (*.raw);;Alle filer (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD-kort-sti:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -8061,11 +8129,11 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL-sammenheng" @@ -8139,7 +8207,7 @@ msgstr "Lagre eldste hurtiglagring" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8239,7 +8307,7 @@ msgstr "" "sikkerhetskopiere nåværende data før du overskriver.\n" "Overskriv nå?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8268,7 +8336,7 @@ msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" "Lagret Wii-kontroll parring kan ikke tilbakestilles når et Wii-spill kjører." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8303,7 +8371,7 @@ msgstr "Søkeadresse" msgid "Search Current Object" msgstr "Søk i nåværende objekt" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Søk i undermapper" @@ -8346,11 +8414,11 @@ msgid "Section that contains most CPU and Hardware related settings." msgstr "" "Seksjon som inneholder de fleste CPU- og maskinvarerelaterte innstillinger." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Velg" @@ -8363,15 +8431,15 @@ msgstr "Velg dumpens filbane" msgid "Select Export Directory" msgstr "Velg eksportmappe" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8443,7 +8511,7 @@ msgstr "Velg lagringsstadieplass 8" msgid "Select State Slot 9" msgstr "Velg lagringsstadieplass 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8459,17 +8527,21 @@ msgstr "Velg mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Velg en fil" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Velg et spill" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Velg en SD-kortbilledfil" @@ -8493,7 +8565,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "Velg RSO-moduladressen:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8501,11 +8573,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Velg nøkkelfil (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Velg lagringsfil" @@ -8598,7 +8670,7 @@ msgstr "" msgid "Send" msgstr "Send" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Sensorbjelkeposisjon:" @@ -8667,7 +8739,7 @@ msgstr "Sett symbol-sluttadresse" msgid "Set symbol size (%1):" msgstr "Angi symbolstørrelse (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8677,7 +8749,7 @@ msgstr "" "spill.\n" "Fungerer kanskje ikke i alle spill." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Sett Wii-systemspråket." @@ -8986,7 +9058,7 @@ msgid "Signed Integer" msgstr "Signert heltall" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Forenklet kinesisk" @@ -9049,7 +9121,7 @@ msgstr "Glidebryter" msgid "Slot A" msgstr "Kortplass A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Kortplass A:" @@ -9057,7 +9129,7 @@ msgstr "Kortplass A:" msgid "Slot B" msgstr "Kortplass B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Kortplass B:" @@ -9065,7 +9137,7 @@ msgstr "Kortplass B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -9075,11 +9147,11 @@ msgstr "" msgid "Software Renderer" msgstr "Programvarerendrer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9098,7 +9170,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Sorter alfabetisk" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Lyd:" @@ -9112,7 +9184,7 @@ msgstr "Spania" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spansk" @@ -9120,7 +9192,7 @@ msgstr "Spansk" msgid "Speaker Pan" msgstr "Høytaler-lydforskyvelse" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Lydstyrke:" @@ -9145,7 +9217,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9210,8 +9282,8 @@ msgstr "" msgid "Started game" msgstr "Startet spill" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9266,7 +9338,7 @@ msgstr "Stepp vellykket!" msgid "Stepping" msgstr "Stepper" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stereo" @@ -9432,12 +9504,12 @@ msgstr "Støtte" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Støtter SD og SDHC. Standardstørrelsen er 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -9532,6 +9604,12 @@ msgstr "" "Synkroniserer GPU- og CPU-trådene for å hindre tilfeldige frys i " "dobbelkjernemodus. (PÅ = kompatibel, AV = raskt)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Synkroniserer AR-koder..." @@ -9545,7 +9623,7 @@ msgid "Synchronizing save data..." msgstr "Synkroniserer lagringsdata..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Systemspråk:" @@ -9588,7 +9666,7 @@ msgstr "Ta skjermbilde" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -9645,7 +9723,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND er blitt reparert." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9673,7 +9751,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9713,7 +9791,7 @@ msgstr "Den emulerte Wii-konsollen er allerede oppdatert." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9725,11 +9803,11 @@ msgstr "Innskrevet PID er ugyldig." msgid "The entered VID is invalid." msgstr "Innskrevet VID er ugyldig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "RegEx-uttrykket inneholder en syntaksfeil." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9755,7 +9833,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9766,22 +9844,22 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet er ugyldig eller kunne ikke leses." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Formatet disk-bildefilen er lagret i, holder ikke størrelsen på bildefilen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "Spill-IDen er inkonsekvent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "Spill-IDen er uvanlig kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9853,7 +9931,7 @@ msgstr "Profilen \"%1\" finnes ikke" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9867,7 +9945,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den dekrypterte AR-koden inneholder ingen linjer." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9897,7 +9975,7 @@ msgstr "" "Vil du virkelig benytte programvarerendering? Hvis usikker, velg 'Nei'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9910,7 +9988,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9926,7 +10004,7 @@ msgstr "" "Oppdateringen har blitt kansellert. Det er sterkt anbefalt å fullføre denne " "for å unngå inkonsekvente systemprogramvareversjoner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Oppdateringspartisjonen inneholder ikke IOS-versjonen brukt av denne " @@ -9994,7 +10072,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10033,24 +10111,24 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dette kan ikke omgjøres!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Denne feilrettings-diskbildefilen har størrelsen til en vanlig kommersiell " "diskbildefil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Denne diskbildefilen har en uvanlig størrelse." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10061,7 +10139,7 @@ msgstr "" "nåværende form, men kan konvertes tilbake til en bra rip. CRC32 av filen kan " "muligens matche CRC32 av en bra kopi, selv om de ikke er identiske." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10070,7 +10148,7 @@ msgstr "" "kopieringsprogram lagret diskbildefilen som flere biter, må du flette den " "inn i én fil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10087,7 +10165,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Denne filen virker ikke som en BootMii NAND-sikkerhetskopi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10098,7 +10176,7 @@ msgstr "" "vil være korrupt. Dette problemet finnes som regel kun på ulovlige " "spillkopier." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10108,23 +10186,23 @@ msgstr "" "grafikkort eller dets drivere støtter ikke dette. Derfor vil du oppleve feil " "eller bildefrys mens du kjører spillet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Dette er en dårlig dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Dette er en god dump." @@ -10154,12 +10232,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Denne tittelen kan ikke startes." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Tittelen er satt til en ugyldig IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Tittelen er satt til å bruke en ugyldig fellesnøkkel." @@ -10220,7 +10298,7 @@ msgstr "Tråder" msgid "Threshold" msgstr "Terskel" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10337,7 +10415,7 @@ msgstr "" msgid "Toolbar" msgstr "Verktøylinje" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Oppe" @@ -10385,7 +10463,7 @@ msgid "Touch" msgstr "Berør" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Tradisjonell kinesisk" @@ -10410,7 +10488,7 @@ msgstr "" "Prøver å oversette stier på forhånd, noe som øker ytelse i de fleste " "tilfeller. Standard er Sant" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10425,8 +10503,8 @@ msgstr "Triggere" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Type" @@ -10446,7 +10524,7 @@ msgstr "UKJENT" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10664,7 +10742,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Usignert heltall" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10736,6 +10814,10 @@ msgstr "Oppreist Wii-kontroll" msgid "Usage Statistics Reporting Settings" msgstr "Innstillinger for rapportering av bruksstatistikk" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Bruk den innebygde databasen over spillnavn" @@ -10748,7 +10830,7 @@ msgstr "Bruk egendefinert brukerstil" msgid "Use Lossless Codec (FFV1)" msgstr "Bruk tapsfri kodek (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Bruk PAL60-modus (EuRGB60)" @@ -10820,11 +10902,11 @@ msgstr "Brukergrensesnitt" msgid "User Style:" msgstr "Brukertema:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10910,7 +10992,7 @@ msgstr "Verifiser" msgid "Verify Integrity" msgstr "Verifiser integritet" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verifiser sertifikater" @@ -11031,7 +11113,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (eksklusiv modus)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11172,7 +11254,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Hvitelistede USB-gjennomstrømmingsenheter" @@ -11192,7 +11274,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii-meny" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND-rot:" @@ -11218,7 +11300,7 @@ msgstr "Wii-kontrollerknapper" msgid "Wii Remote Orientation" msgstr "Wii-kontrollerorientering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Innstillinger for Wii Remote" @@ -11338,7 +11420,7 @@ msgstr "X" msgid "XF register " msgstr "XF-register " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11372,6 +11454,20 @@ msgstr "Ja" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11477,7 +11573,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11609,7 +11705,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11644,7 +11740,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Eller" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 41f4a275aa..3d57701a72 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mike van der Kuijl , 2020-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -38,7 +38,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -50,7 +50,7 @@ msgstr "" "Omdat GameCube-schijfafbeeldingen weinig verificatiedata bevatten kunnen er " "problemen zijn die Dolphin niet kan detecteren." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -86,7 +86,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Schijf %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Niet" @@ -94,22 +94,28 @@ msgstr "! Niet" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\" is een ongeldig GCM/ISO-bestand." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Gebruiker Variabele" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -297,7 +303,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n adres(sen) is/zijn verwijderd." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& En" @@ -684,19 +690,19 @@ msgstr "(uit)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Vermenigvuldig" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Optellen" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Komma" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Aftrekken" @@ -711,7 +717,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Delen" @@ -741,7 +747,7 @@ msgstr "16-bit Signed Integer" msgid "16-bit Unsigned Integer" msgstr "16-bit Unsigned Integer" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -815,7 +821,7 @@ msgstr "4 Bytes" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blokken)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -889,11 +895,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Native (5120x4224) voor 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Minder dan" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -911,12 +917,12 @@ msgstr "" "beschikbaar om te downloaden. U gebruikt %2.
Wilt u updaten?" "

Releaseopmerkingen:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Meer dan" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Er is al een NetPlay sesie bezig!" @@ -945,7 +951,7 @@ msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" "Een save state kan niet worden gebruikt zonder een spel te specificeren. " -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -960,7 +966,7 @@ msgstr "" "draait." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1021,6 +1027,11 @@ msgstr "Over Dolphin" msgid "Accelerometer" msgstr "Versnellingsmeter" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Nauwkeurigheid:" @@ -1189,8 +1200,8 @@ msgid "Add to watch" msgstr "Voeg toe aan watch" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Toevoegen..." @@ -1280,7 +1291,7 @@ msgstr "" "breken en glitches veroorzaken. Doe dit op eigen risico. Rapporteer " "alstublieft geen bugs die plaatsvinden als u dit aanpast." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1311,7 +1322,7 @@ msgstr "Alles Double" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1319,7 +1330,7 @@ msgid "All Files" msgstr "Alle Bestanden" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Alle Bestanden (*)" @@ -1328,7 +1339,7 @@ msgstr "Alle Bestanden (*)" msgid "All Float" msgstr "Alles Float" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alle GC/Wii bestanden" @@ -1337,8 +1348,8 @@ msgstr "Alle GC/Wii bestanden" msgid "All Hexadecimal" msgstr "Alle Hexadecimaal" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alle Save States (*.sav *.s##);; Alle Bestanden (*)" @@ -1374,7 +1385,7 @@ msgstr "Sta Niet-Overeenkomende-Regio Instellingen toe" msgid "Allow Usage Statistics Reporting" msgstr "Gebruiksstatistiekrapportage Toestaan" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Sta Schrijven naar SD-Kaart toe" @@ -1511,7 +1522,7 @@ msgid "Aspect Ratio" msgstr "Beeldverhouding" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Beeldverhouding:" @@ -1594,6 +1605,10 @@ msgstr "Automatisch Verbergen" msgid "Auto-detect RSO modules?" msgstr "Auto-detect RSO module?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1608,7 +1623,7 @@ msgid "Auxiliary" msgstr "Auxiliary" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1616,7 +1631,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT is fout. Dolphin sluit zich nu af" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1626,7 +1641,7 @@ msgstr "" "MAC adres moet worden gebruikt. Genereer een MAC adres dat start met 00:09:" "bf of 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1657,10 +1672,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Achtergrondinvoer" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1742,15 +1758,15 @@ msgstr "Bèta (één keer per maand)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, etc." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binaire SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binaire SSL (lees)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binaire SSL (schrijf)" @@ -1769,7 +1785,7 @@ msgstr "Blokgrootte" msgid "Block Size:" msgstr "Blokgrootte:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blokkeren" @@ -1802,11 +1818,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Opstarten naar Pauze" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND backup bestanden (*.bin);;Alle bestanden (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii sleutelbestand (*.bin);;Alle Bestanden (*)" @@ -1814,7 +1830,7 @@ msgstr "BootMii sleutelbestand (*.bin);;Alle Bestanden (*)" msgid "Borderless Fullscreen" msgstr "Randloos Fullscreen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Beneden" @@ -1845,19 +1861,27 @@ msgstr "Breekpunt tegengekomen! Uitstappen afgebroken." msgid "Breakpoints" msgstr "Breekpunten" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Breedband Adapter (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Breedband Adapter (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Breedband Adapter (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Broadband Adapter Fout" @@ -2001,7 +2025,7 @@ msgstr "Roep weergave lijst op bij %1 met grootte %2" msgid "Callstack" msgstr "Callstack" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Camera 1" @@ -2019,8 +2043,8 @@ msgstr "Kan alleen AR code genereren voor waarden in virtueel geheugen." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan Wii-afstandsbediening niet vinden via verbindingshendel {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan geen NetPlay-sessie starten als spel nog draait!" @@ -2152,7 +2176,7 @@ msgstr "Cheatsbeheer" msgid "Check NAND..." msgstr "Controleer NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Controleer op de achtergrond op spellijstwijzigingen" @@ -2176,11 +2200,11 @@ msgstr "Controlesom" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Kies een bestand om te openen" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "Kies een bestand om te openen of te maken" @@ -2211,7 +2235,7 @@ msgid "Classic Controller" msgstr "Klassieke Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2287,7 +2311,7 @@ msgstr "Vergelijking:" msgid "Compile Shaders Before Starting" msgstr "Compileer Shaders Voor Starten" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Shaders Compileren" @@ -2333,11 +2357,11 @@ msgstr "Configureer Controller" msgid "Configure Dolphin" msgstr "Dolphin Configureren" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Configureer Invoer" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Configureer Uitvoer" @@ -2346,8 +2370,8 @@ msgstr "Configureer Uitvoer" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bevestigen" @@ -2375,7 +2399,7 @@ msgstr "Verbind" msgid "Connect Balance Board" msgstr "Verbind Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Verbind USB Toetsenbord" @@ -2423,7 +2447,7 @@ msgstr "Verbinden" msgid "Connection Type:" msgstr "Verbindingstype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Inhoud {0:08x} is beschadigd." @@ -2536,14 +2560,31 @@ msgstr "Convergentie" msgid "Convergence:" msgstr "Convergentie:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Converteer" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converteer Bestand..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converteer Geselecteerde Bestanden..." @@ -2661,7 +2702,7 @@ msgstr "" "Kon geen updateinformatie van Nintendo downloaden. Controleer uw " "internetverbinding en probeer het opnieuw." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2671,7 +2712,7 @@ msgstr "" "\n" "De geëmuleerde console stopt nu." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2978,7 +3019,7 @@ msgstr "Decimaal" msgid "Decoding Quality:" msgstr "Decoding Kwaliteit:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Verlaag" @@ -2999,11 +3040,11 @@ msgstr "Verlaag Emulatiesnelheid" msgid "Decrease IR" msgstr "Verlaag IR" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Verlaag X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Verlaag Y" @@ -3023,7 +3064,7 @@ msgstr "Standaardapparaat" msgid "Default Font" msgstr "Standaardlettertype" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Standaard ISO:" @@ -3108,7 +3149,7 @@ msgstr "Beschrijving:" msgid "Detached" msgstr "Ontkoppeld" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detecteer" @@ -3154,7 +3195,7 @@ msgstr "%1 werd niet herkend als een geldig Riivolution XML bestand." msgid "Diff" msgstr "Verschil" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Dimt het scherm na vijf minuten inactiviteit." @@ -3303,7 +3344,7 @@ msgstr "" "Machtigt u Dolphin om informatie te rapporteren aan de ontwikkelaars van " "Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Wilt u \"%1\" toevoegen aan de lijst met Spelpaden?" @@ -3317,7 +3358,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Wilt u de %n geselecteerde save bestand(en) verwijderen?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Wilt u de emulatie stoppen?" @@ -3348,8 +3389,8 @@ msgstr "Dolphin Signatuur CSV Bestand" msgid "Dolphin Signature File" msgstr "Dolphin Signatuur Bestand" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Opname (*.dtm)" @@ -3397,7 +3438,7 @@ msgstr "Dolphin is een vrije en open-source GameCub- en Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin is te oud voor de traversal server" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3405,7 +3446,7 @@ msgstr "" "Dolphin kan TGC bestanden niet verifiëren, omdat het geen dumps zijn van " "werkelijke schijven." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan ongelicenseerde schijven niet verifiëren." @@ -3421,8 +3462,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphin's cheatsysteem is momenteel uitgeschakeld." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domein" @@ -3445,7 +3486,7 @@ msgstr "Comprimeren van schijfafbeelding voltooid." msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3497,7 +3538,7 @@ msgstr "Dual-Core" msgid "Dual View" msgstr "Dubbele Weergave" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3537,6 +3578,10 @@ msgstr "Dump EFB Doel" msgid "Dump Frames" msgstr "Dump Frames" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Dump Mip Maps" @@ -3545,7 +3590,7 @@ msgstr "Dump Mip Maps" msgid "Dump Objects" msgstr "Dump Objecten" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dump Pad:" @@ -3593,11 +3638,11 @@ msgstr "" "Dump de gedecodeerde spel textures naar User/Dump/Textures/<game_id>/." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Dump gedecodeerde SSL-leesbewerkingen" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Dump gedecodeerde SSL-schrijfbewerkingen" @@ -3609,16 +3654,16 @@ msgstr "" "Dump Ojecten naar Gebruiker/Dump/Objects/.

In geval " "van twijfel leeg laten." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Dump opties" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Dump peer certificaten" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Dump root CA certificaten" @@ -3658,7 +3703,7 @@ msgstr "Duur van Tubo-knop los Laten (frames):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Nederlands" @@ -3721,7 +3766,7 @@ msgstr "Effectief" msgid "Effective priority" msgstr "Effectieve prioriteit" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3737,7 +3782,7 @@ msgstr "Embedded Frame Buffer (EFB)" msgid "Empty" msgstr "Leeg" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emu Thread draait al" @@ -3827,11 +3872,11 @@ msgid "Enable Progressive Scan" msgstr "Activeer Progressieve Scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Activeer Trillen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Activeer Schermbeveiliger" @@ -3997,7 +4042,7 @@ msgstr "Enet niet geïnitialiseerd" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engels" @@ -4007,7 +4052,7 @@ msgstr "Engels" msgid "Enhancements" msgstr "Verbeteringen" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "Voer IP-adres in van het apparaat waarop de XLink Kai Client draait:" @@ -4029,6 +4074,10 @@ msgstr "Voer een nieuw MAC-adres voor de breedbandadapter in:" msgid "Enter password" msgstr "Voer wachtwoord in" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Voer adres van de RSO-module in:" @@ -4041,7 +4090,7 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4069,12 +4118,12 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4099,9 +4148,9 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error (Fout)" @@ -4206,11 +4255,11 @@ msgstr "" "maar deze zijn niet geladen. Spellen kunnen wellicht lettertypes niet juist " "weergeven, of crashen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Er zijn fouten gevonden in {0} blokken in de {1} partitie." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Er zijn fouten gevonden in {0} ongebruikte blokken in de {1} partitie." @@ -4420,7 +4469,7 @@ msgid "Extracting Directory..." msgstr "Map Uitpakken..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4450,7 +4499,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough: {0}" @@ -4462,16 +4511,16 @@ msgstr "Verbinden met Redump.org mislukt" msgid "Failed to connect to server: %1" msgstr "Kon geen verbinding maken met server: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Kon D3D swap chain niet maken" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Creëren van D3D12 context mislukt" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Creëren van D3D12 global resources mislukt" @@ -4495,7 +4544,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Kon het geselecteerde bestand niet verwijderen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Kon kernel driver voor BT passthrough niet ontkoppelen: {0}" @@ -4575,7 +4624,7 @@ msgstr "" "verhindert de toegang tot bestanden erin. Probeer uw NAND te repareren " "(Tools -> Beheer NAND -> Controleer NAND...) en importeer de save opnieuw." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Kon core niet initiëren" @@ -4589,8 +4638,8 @@ msgstr "" "Zorg ervoor dat uw videokaart ten minste D3D 10.0 ondersteunt.\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Initialiseren renderer classes mislukt" @@ -4603,7 +4652,7 @@ msgstr "Het is niet gelukt om het pakket te installeren: %1" msgid "Failed to install this title to the NAND." msgstr "Kon deze titel niet installeren op de NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4641,12 +4690,12 @@ msgstr "" "update pakket te installeren." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Kon '%1' niet openen" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Kon Bluetooth-apparaat niet openen: {0}" @@ -4674,7 +4723,7 @@ msgstr "" msgid "Failed to open file." msgstr "Openen bestand mislukt." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Kon server niet openen" @@ -4853,7 +4902,7 @@ msgstr "" "Fatale desync. Terugspelen wordt geannuleerd. (Fout in PlayWiimote: {0} != " "{1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Gezichtsveld" @@ -5022,7 +5071,7 @@ msgstr "" "Voor setup instructies, raadpleeg deze pagina." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5084,7 +5133,7 @@ msgstr "" msgid "Format:" msgstr "Formaat:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5178,7 +5227,7 @@ msgstr "" "href=\"https://wiki.dolphin-emu.org/index.php?title=Free_Look\">pagina voor " "gedetailleerde instructies." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Vrije-Kijk" @@ -5193,7 +5242,7 @@ msgstr "Vrije-Kijk Schakelaar" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Frans" @@ -5233,7 +5282,7 @@ msgstr "Functieaanroepers" msgid "Function calls" msgstr "Functieaanroepen" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Functies" @@ -5253,7 +5302,7 @@ msgstr "GBA Kern" msgid "GBA Port %1" msgstr "GBA Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "GBA Instellingen" @@ -5277,7 +5326,7 @@ msgstr "GBA%1 ROM uitgeschakeld" msgid "GC Port %1" msgstr "GC Poort %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI Map" @@ -5312,7 +5361,7 @@ msgstr "" "Verdere fouten zullen naar het Video Backend log gestuurd worden en\n" "Dolphin zal nu waarschijnlijk crashen of blijven hangen. Geniet ervan." -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE is {0} - moet op zijn minst 1024 zijn." @@ -5328,7 +5377,7 @@ msgstr "" "GPU: FOUT: GL_ARB_framebuffer_object vereist voor meerdere render doelen.\n" "GPU: Ondersteunt uw videokaart OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL FOUT: Ondersteunt uw videokaart OpenGL 2.0?" @@ -5364,7 +5413,7 @@ msgstr "" "GPU: OGL FOUT: GL_ARB_vertex_array_object vereist.\n" "GPU: Ondersteunt uw videokaart OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5382,7 +5431,7 @@ msgstr "" "GPU: Ondersteunt uw videokaart OpenGL 3.0?\n" "GPU: Uw stuurprogramma ondersteunt GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5399,11 +5448,11 @@ msgstr "Spel" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Carts (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5423,7 +5472,7 @@ msgstr "Spelconfiguratie" msgid "Game Details" msgstr "Spel Details" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Spelmappen" @@ -5520,7 +5569,7 @@ msgid "GameCube Memory Cards" msgstr "GameCube Geheugenkaart" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube Geheugenkaarten (*.raw *.gcp)" @@ -5575,7 +5624,7 @@ msgstr "Gegenereerde symboolnamen van '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Duits" @@ -5583,11 +5632,11 @@ msgstr "Duits" msgid "Germany" msgstr "Duitsland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "GetDeviceList mislukt: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5788,7 +5837,7 @@ msgstr "Host Invoer Autoriteit Ingeschakeld" msgid "Host with NetPlay" msgstr "Host met NetPlay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Hostnaam" @@ -5820,7 +5869,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Ik ben me bewust van de risico's en wil doorgaan" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5862,7 +5911,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR Gevoeligheid:" @@ -6047,11 +6096,11 @@ msgstr "Importeer Save Bestand(en)" msgid "Import Wii Save..." msgstr "Importeer Wii Save..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "NAND backup Importeren" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6086,7 +6135,7 @@ msgstr "" "load tijd.

In geval van twijfel geselecteerd laten." "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Verhoog" @@ -6107,15 +6156,15 @@ msgstr "Verhoog Emulatiesnelheid" msgid "Increase IR" msgstr "Verhoog IR" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Verhoog X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Verhoog Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Incrementele Rotatie" @@ -6123,6 +6172,13 @@ msgstr "Incrementele Rotatie" msgid "Incremental Rotation (rad/sec)" msgstr "Incrementele Rotatie (rad/sec)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6162,7 +6218,7 @@ msgstr "Input om te negeren en te remappen." msgid "Insert &nop" msgstr "Toevoegen &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Plaats SD-kaart" @@ -6351,7 +6407,7 @@ msgstr "Ongeldig watch adres: 1%" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiaans" @@ -6446,7 +6502,7 @@ msgid "Japan" msgstr "Japan" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japans" @@ -6484,7 +6540,7 @@ msgstr "Toetsenbord" msgid "Keys" msgstr "Toetsen" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6497,7 +6553,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreaans" @@ -6549,7 +6605,7 @@ msgstr "Vertraging: ~40 ms" msgid "Latency: ~80 ms" msgstr "Vertraging: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6655,7 +6711,7 @@ msgstr "Laad GameCube Hoofdmenu" msgid "Load Last State" msgstr "Laad Laatste State" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Laad pad:" @@ -6926,7 +6982,7 @@ msgstr "Handmatige Texture Sampling" msgid "Mapping" msgstr "Mapping" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Mask ROM" @@ -6947,7 +7003,7 @@ msgstr "Max buffergrootte gewijzigd naar %1" msgid "Maximum tilt angle." msgstr "Maximale kantel hoek." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Kan leiden tot vertraging van het Wii-menu en een aantal spellen." @@ -6964,7 +7020,7 @@ msgstr "Geheugen" msgid "Memory Breakpoint" msgstr "Geheugen Breakpoint" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Geheugenkaart" @@ -6992,7 +7048,7 @@ msgstr "MemoryCard: Read opgeroepen met onjuiste bron adres ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write opgeroepen met ongeldige bestemming adres ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7004,11 +7060,11 @@ msgstr "" "omkeerbaar, dus het is raadzaam om back-ups van beide NAND's maken. Weet u " "zeker dat u wilt doorgaan?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -7018,7 +7074,7 @@ msgstr "Microfoon" msgid "Misc" msgstr "Overig" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Overige Instellingen" @@ -7070,7 +7126,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Module gevonden: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7114,7 +7170,7 @@ msgstr "Muis Cursor is altijd zichtbaar." msgid "Mouse Cursor will never be visible while a game is running." msgstr "Muis Cursor zal onzichtbaar zijn terwijl een spel draait." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Verplaats" @@ -7132,6 +7188,11 @@ msgstr "" "Opname {0} geeft aan dat het start vanuit een savestate, maar {1} bestaat " "niet. De opname zal waarschijnlijk niet synchroniseren!" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&ee op Alles" @@ -7162,8 +7223,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7231,7 +7292,7 @@ msgstr "" msgid "Network" msgstr "Netwerk" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Netwerk dump formaat:" @@ -7367,11 +7428,11 @@ msgstr "Geen mappen gevonden in het M3U-bestand \"{0}\"" msgid "No possible functions left. Reset." msgstr "Geen mogelijke functies meer. Reset." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Er zijn geen problemen gevonden" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7402,7 +7463,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Geen" @@ -7464,7 +7525,7 @@ msgid "Notice" msgstr "Opmerkingen" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Null" @@ -7581,7 +7642,7 @@ msgstr "Open Riivolution XML..." msgid "Open Wii &Save Folder" msgstr "Open Wii &Save Map" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Open dump map" @@ -7609,7 +7670,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operators" @@ -7631,7 +7692,7 @@ msgstr "Oranje" msgid "Orbital" msgstr "Orbitaal" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7670,7 +7731,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7806,7 +7867,7 @@ msgstr "Fysieke" msgid "Physical address space" msgstr "Fysieke adresruimte" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7874,7 +7935,7 @@ msgstr "Wijzen" msgid "Port %1" msgstr "Poort %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "Port %1 ROM:" @@ -7983,7 +8044,7 @@ msgstr "Privé en Openbaar" msgid "Problem" msgstr "Probleem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7991,7 +8052,7 @@ msgstr "" "Er zijn zeer ernstige problemen gevonden. Het spel zal waarschijnlijk niet " "werken." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7999,7 +8060,7 @@ msgstr "" "Er zijn problemen met lage ernst gevonden. Het spel zal waarschijnlijk goed " "werken." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8029,7 +8090,7 @@ msgstr "Openbaar" msgid "Purge Game List Cache" msgstr "Wis Spellijst Cache" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Zet IPL ROMs in Gebruiker/GC/." @@ -8057,7 +8118,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Vraag" @@ -8098,7 +8159,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii schijfafbeeldingen (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Afstand" @@ -8272,8 +8332,8 @@ msgstr "Herinner Me Later" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Verwijder" @@ -8337,7 +8397,7 @@ msgstr "Report: GCIFolder schrijft naar niet gealloceerde blok {0:#x}" msgid "Request to Join Your Party" msgstr "Verzoek om Lid te Worden van Uw Partij" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8371,11 +8431,11 @@ msgstr "Reset Traversal Server naar %1:%2" msgid "Reset Traversal Settings" msgstr "Reset Traversal Instellingen" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Reset Waarde" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Reset Weergave" @@ -8387,7 +8447,7 @@ msgstr "Reset alle opgeslagen Wii-afstandsbediening koppelingen" msgid "Resource Pack Manager" msgstr "Resourcepakketbeheer" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Resourcepakket Pad:" @@ -8420,7 +8480,7 @@ msgstr "Revisie" msgid "Revision: %1" msgstr "Revisie: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8508,7 +8568,7 @@ msgstr "Rumble" msgid "Run &To Here" msgstr "Loop &Tot Hier" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Voer GBA Emulatie uit in Specifieke threads" @@ -8520,18 +8580,26 @@ msgstr "Rusland" msgid "SD Card" msgstr "SD-kaart" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD-kaartafbeedling (*.raw);;Alle Bestanden(*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD-kaart Pad:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD Root:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8540,11 +8608,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL context" @@ -8618,7 +8686,7 @@ msgstr "Sla Oudste State op" msgid "Save Preset" msgstr "Voorinstelling opslaan" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Sla Opnamebestand op Als" @@ -8718,7 +8786,7 @@ msgstr "" "maken van de huidige data voordat u het overschrijft.\n" "Nu overschrijven?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Save in de Zelfde Map als de ROM" @@ -8748,7 +8816,7 @@ msgstr "" "Opgeslagen Wii-afstandsbediening koppelingen kunnen alleen gerest worden " "wanneer er een Wii spel draait." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Saves:" @@ -8783,7 +8851,7 @@ msgstr "Zoek Adres" msgid "Search Current Object" msgstr "Zoek Huidig Object" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Zoeken in submappen" @@ -8827,11 +8895,11 @@ msgstr "Sectie die alle grafisch gerelateerde instellingen bevat." msgid "Section that contains most CPU and Hardware related settings." msgstr "Sectie die alle CPU en Hardware gerelateerde instellingen bevat." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Veiligheidsopties" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Selecteer" @@ -8844,15 +8912,15 @@ msgstr "Selecteer Dump Pad" msgid "Select Export Directory" msgstr "Selecteer Export Map" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Selecteer GBA BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Selecteer GBA ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Selecteer GBA Saves Pad" @@ -8924,7 +8992,7 @@ msgstr "Selecteer State Slot 8" msgid "Select State Slot 9" msgstr "Selecteer State Slot 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Selecteer WFS Pad" @@ -8940,17 +9008,21 @@ msgstr "Selecteer een Map" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Selecteer een Bestand" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Selecteer een Spel" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Selecteer een SD-kaartafbeelding" @@ -8974,7 +9046,7 @@ msgstr "Selecteer e-Reader Kaarten" msgid "Select the RSO module address:" msgstr "Selecteer het RSO module adres:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Selecteer Opnamebestand om Af te Spelen" @@ -8982,11 +9054,11 @@ msgstr "Selecteer Opnamebestand om Af te Spelen" msgid "Select the Virtual SD Card Root" msgstr "Selecteer de Virtuele SD Kaart Root" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecteer het sleutelbestand (OTP/SEEPROM dump)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selecteer het save bestand" @@ -9110,7 +9182,7 @@ msgstr "" msgid "Send" msgstr "Verzend" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Sensor Bar Positie:" @@ -9184,7 +9256,7 @@ msgstr "Stel symbool eindadres in" msgid "Set symbol size (%1):" msgstr "Stel symboolgrootte (%1) in:" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9194,7 +9266,7 @@ msgstr "" "PAL spellen.\n" "Werkt mogelijk niet voor alle spellen." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Stelt de Wii systeemtaal in." @@ -9520,7 +9592,7 @@ msgid "Signed Integer" msgstr "Signed Integer" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Vereenvoudigd Chinees" @@ -9588,7 +9660,7 @@ msgstr "Schuifbalk" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A:" @@ -9596,7 +9668,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B:" @@ -9604,7 +9676,7 @@ msgstr "Slot B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Plaats de stick positie op de dichtstbijzijnde achthoekige as." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Socket table" @@ -9614,11 +9686,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Een deel van de data kon niet worden gelezen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9639,7 +9711,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Sorteer Alfabetisch" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Geluid:" @@ -9653,7 +9725,7 @@ msgstr "Spanje" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spaans" @@ -9661,7 +9733,7 @@ msgstr "Spaans" msgid "Speaker Pan" msgstr "Speaker Pan" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Speaker Volume:" @@ -9696,7 +9768,7 @@ msgstr "" "niveau 9, maar verwerken aanzienlijk sneller.

Als " "je het niet zeker weet, laat dit dan op 6 staan." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9761,8 +9833,8 @@ msgstr "Start met Riivolution Patches..." msgid "Started game" msgstr "Gestart spel" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9817,7 +9889,7 @@ msgstr "Stap succesvol!" msgid "Stepping" msgstr "Stappen" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stereo" @@ -9993,12 +10065,12 @@ msgstr "Ondersteuning" msgid "Supported file formats" msgstr "Ondersteunde bestandsformaten" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Ondersteunt SD en SDHC. De standaardgrootte is 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -10101,6 +10173,12 @@ msgstr "" "Synchroniseert de GPU- en CPU-threads om willekeurige vastlopers te " "voorkomen in Dual-core modus. (Aan = Compatibel, Uit = Snel)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "AR Codes aan het Synchroniseren..." @@ -10114,7 +10192,7 @@ msgid "Synchronizing save data..." msgstr "Synchroniseren van save data..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Systeemtaal:" @@ -10155,9 +10233,9 @@ msgstr "Maak Screenshot" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "Doeladresbereik is ongeldig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -10216,7 +10294,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "De NAND is gerepareerd." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10252,7 +10330,7 @@ msgstr "" "De datagrootte voor de {0} partitie is niet gelijkmatig deelbaar door de " "blokgrootte." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" "De decryptie sleutels moeten bijgevoegd worden aan het NAND backupbestand." @@ -10297,7 +10375,7 @@ msgstr "De geëmuleerde Wii-console is al up-to-date." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "Het ingevoerde MAC adres is ongeldig." @@ -10309,11 +10387,11 @@ msgstr "De ingevoerde PID is ongeldig." msgid "The entered VID is invalid." msgstr "De ingevoerde VID is ongeldig." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "De uitdrukken bevat een syntax error." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10347,7 +10425,7 @@ msgstr "" "Het bestand {0} is al geopend. De bestandsheader zal niet worden " "weggeschreven." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10361,7 +10439,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Het bestandssysteem is ongeldig of kon niet gelezen worden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10369,15 +10447,15 @@ msgstr "" "Het formaat waarin de schijfafbeelding is opgeslagen, slaat de grote van de " "schijfafbeelding niet op." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "Het spel ID is inconsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "Het spel ID is ongewoon kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "Het spel ID is {0} maar zou {1} moeten zijn." @@ -10460,7 +10538,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Het opgenomen spel ({0}) is niet hetzelfde als het geselecteerde spel ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10475,7 +10553,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "De gedecodeerde AR code bevat geen regels." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10508,7 +10586,7 @@ msgstr "" "\"Nee\" selecteren." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" "De gespecificeerde gedeelde sleutel index is {0} maar zou {1} moeten zijn." @@ -10522,7 +10600,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "De doelgeheugenkaart bevat al een bestand \"% 1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Het ticket is niet correct ondertekend." @@ -10538,7 +10616,7 @@ msgstr "" "De update is geannuleerd. Het wordt ten zeerste aanbevolen om de update af " "te maken om problemen te voorkomen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "De updatepartitie bevat niet de IOS die wordt gebruikt door dit spel." @@ -10606,7 +10684,7 @@ msgstr "Deze Gecko code bevat geen regels." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10647,16 +10725,16 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dit kan niet ongedaan gemaakt worden!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Deze debug schijfafbeelding heeft de grootte van een retail schijfafbeelding." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Deze schijfafbeelding heeft een ongebruikelijke grootte." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10666,7 +10744,7 @@ msgstr "" "laadtijden waarschijnlijk langer. U kunt waarschijnlijk geen invoer opnames " "delen en NetPlay niet gebruiken met iemand die een goede dump heeft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10678,7 +10756,7 @@ msgstr "" "geconverteerd. De CRC32 van dit bestand kan overeenkomen met de CRC32 van " "een goede dump, hoewel de bestanden niet identiek zijn." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10687,7 +10765,7 @@ msgstr "" "de schijfafbeelding in verschillende stukken heeft opgeslagen, moet u deze " "in één bestand samenvoegen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10704,7 +10782,7 @@ msgstr "Dit bestand bevat geen geldig Wii bestandssysteem." msgid "This file does not look like a BootMii NAND backup." msgstr "Dit bestand lijkt niet op een BootMii NAND-back-up." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10715,7 +10793,7 @@ msgstr "" "werken. Dit probleem komt over het algemeen alleen in illegale kopieën van " "spellen voor." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10725,11 +10803,11 @@ msgstr "" "grafische kaart of stuurprogramma's ondersteunen dit niet. Als gevolg " "hiervan zult u bugs of vastlopers ervaren tijdens het uitvoeren van dit spel." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Dit is een slechte dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10737,7 +10815,7 @@ msgstr "" "Dit is een slechte dump. Dit betekend niet per se dat het spel niet goed " "werkt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10745,7 +10823,7 @@ msgstr "" "Dit is een goede dump volgens Redump.org, maar Dolphin heeft problemen " "gevonden. Dit is misschien een fout in Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Dit is een goede dump." @@ -10775,12 +10853,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Deze titel kan niet worden opgestart." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Dit spel gebruikt een ongeldige IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Dit spel gebruikt een ongeldige gedeelde sleutel." @@ -10855,7 +10933,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Drempelwaarde" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10974,7 +11052,7 @@ msgstr "Tokeniseren is mislukt." msgid "Toolbar" msgstr "Toolbar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Boven" @@ -11022,7 +11100,7 @@ msgid "Touch" msgstr "Aanraking" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chinees (Traditioneel)" @@ -11047,7 +11125,7 @@ msgstr "" "Tracht branches van tevoren te vertalen, waardoor de prestaties in de meeste " "gevallen verbeteren. Standaard ingesteld op Waar" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Triforce AM Baseboard" @@ -11062,8 +11140,8 @@ msgstr "Trekkers" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Type" @@ -11083,7 +11161,7 @@ msgstr "ONBEKEND" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11322,7 +11400,7 @@ msgstr "Unsigned 8" msgid "Unsigned Integer" msgstr "Unsigned Integer" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11394,6 +11472,10 @@ msgstr "Wii-afstandsbediening Rechtop" msgid "Usage Statistics Reporting Settings" msgstr "Gebruiksstatistieken Rapportageinstellingen" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Gebruik Ingebouwde Database met Spelnamen" @@ -11406,7 +11488,7 @@ msgstr "Gebruik Aangepaste Gebruikersstijl" msgid "Use Lossless Codec (FFV1)" msgstr "Gebruik Lossless Codec (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Gebruik PAL60 Modus (EuRGB60)" @@ -11510,11 +11592,11 @@ msgstr "Gebruikersinterface" msgid "User Style:" msgstr "Gebruikersstijl:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Gebruiker Variabelen" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11614,7 +11696,7 @@ msgstr "Verifieer" msgid "Verify Integrity" msgstr "Verifieer Integriteit" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Controleer certificaten" @@ -11746,7 +11828,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Exclusieve Modus)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "WFS Pad:" @@ -11941,7 +12023,7 @@ msgstr "" "Mipmapdetectie' is ingeschakeld in Verbeteringen." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Witte lijst van USB Passthrough Apparaten" @@ -11961,7 +12043,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii Menu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND Basismap:" @@ -11987,7 +12069,7 @@ msgstr "Wii-afstandbedieningsknoppen" msgid "Wii Remote Orientation" msgstr "Wii-afstandsbediening Oriëntatie" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii-afstandsbediening Instellingen" @@ -12109,7 +12191,7 @@ msgstr "X" msgid "XF register " msgstr "XF register " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "XLink Kai BBA Bestemmings Adres" @@ -12143,6 +12225,20 @@ msgstr "Ja" msgid "Yes to &All" msgstr "Ja op &Alles" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12280,7 +12376,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] en [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Exclusieve Of" @@ -12414,7 +12510,7 @@ msgstr "niet-uitgelijnd" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -12453,7 +12549,7 @@ msgstr "{0} van {1} blokken. Compressieverhouding {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} was geen map, verplaatst naar *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Of" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index 495553acf3..fbf9043b9f 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -35,7 +35,7 @@ msgstr "" "%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" "%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -47,7 +47,7 @@ msgstr "" "Ponieważ obrazy dysków GameCube'a zawierają niewiele danych do weryfikacji, " "mogą nastąpić problemy, których Dolphin nie jest w stanie wykryć." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -83,7 +83,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Dysk %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -91,22 +91,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -290,7 +296,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -677,19 +683,19 @@ msgstr "(wyłączony)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -704,7 +710,7 @@ msgstr "" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -734,7 +740,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -808,7 +814,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -882,11 +888,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Natywna (5120x4224) dla 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -901,12 +907,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Sesja NetPlay jest już rozpoczęta!" @@ -928,7 +934,7 @@ msgstr "Dysk już jest gotowy do włożenia." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -941,7 +947,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Synchronizacja może być uruchomiona, tylko gdy działa gra Wii." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -989,6 +995,11 @@ msgstr "O programie Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Dokładność:" @@ -1140,8 +1151,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Dodaj..." @@ -1223,7 +1234,7 @@ msgstr "" "Proszę nie zgłaszać błędów wynikłych z ustawienia niestandardowego zegara " "procesora konsoli." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1254,7 +1265,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1262,7 +1273,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1271,7 +1282,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1280,8 +1291,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Wszystkie stany zapisu (*.sav *.s##);; wszystkie pliki (*)" @@ -1317,7 +1328,7 @@ msgstr "Zezwalaj na niedopasowane ustawienia regionalne" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1450,7 +1461,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Proporcje obrazu:" @@ -1527,6 +1538,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1539,7 +1554,7 @@ msgid "Auxiliary" msgstr "Pomocnicza" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1547,14 +1562,14 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "Nieprawidłowy BAT. Dolphin teraz zakończy działanie" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1585,10 +1600,11 @@ msgid "Backend:" msgstr "Silnik:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Wejście w tle" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1670,15 +1686,15 @@ msgstr "Beta (raz w miesiącu)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1697,7 +1713,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1728,11 +1744,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1740,7 +1756,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Pełny ekran bez ramek" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Dół" @@ -1771,19 +1787,27 @@ msgstr "Napotkano punkt przerwania! Wyjście anulowane." msgid "Breakpoints" msgstr "Punkty przerwania" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1915,7 +1939,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1933,8 +1957,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Nie można uruchomić Sesji NetPlay, podczas gdy gra wciąż jest uruchomiona!" @@ -2056,7 +2080,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2078,11 +2102,11 @@ msgstr "" msgid "China" msgstr "Chiny" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Wybierz plik do otwarcia" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2113,7 +2137,7 @@ msgid "Classic Controller" msgstr "Kontroler Klasyczny" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2189,7 +2213,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2235,11 +2259,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Konfiguruj Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Skonfiguruj wejście" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Skonfiguruj wyjście" @@ -2248,8 +2272,8 @@ msgstr "Skonfiguruj wyjście" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Potwierdź" @@ -2277,7 +2301,7 @@ msgstr "Połącz" msgid "Connect Balance Board" msgstr "Podłącz Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Podłącz klawiaturę USB" @@ -2325,7 +2349,7 @@ msgstr "" msgid "Connection Type:" msgstr "Typ połączenia:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2421,14 +2445,31 @@ msgstr "" msgid "Convergence:" msgstr "Konwergencja:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2541,14 +2582,14 @@ msgstr "" "Nie można było pobrać informacji o aktualizacji od Nintendo. Proszę sprawdź " "połączenie Internetowe i spróbuj ponownie." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2816,7 +2857,7 @@ msgstr "Dziesiętnie" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2837,11 +2878,11 @@ msgstr "Zmniejsz szybkość emulacji" msgid "Decrease IR" msgstr "Zmniejsz rozdzielczość wewnętrzną" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2861,7 +2902,7 @@ msgstr "" msgid "Default Font" msgstr "Domyślna czcionka" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Domyślne ISO:" @@ -2940,7 +2981,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Wykryj" @@ -2986,7 +3027,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Ekran wygasa po 5 minutach braku aktywności." @@ -3111,7 +3152,7 @@ msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Czy zezwalasz programowi Dolphin na wysyłanie informacji do jego producentów?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3125,7 +3166,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Zatrzymać aktualną emulację?" @@ -3156,8 +3197,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Filmy TAS (*.dtm)" @@ -3196,13 +3237,13 @@ msgstr "Dolphin jest wolnym i otwartoźródłowym emulatorem GameCube'a oraz Wii msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3216,8 +3257,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "System cheatów programu Dolphin jest aktualnie wyłączony." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3240,7 +3281,7 @@ msgstr "Zakończono kompresję obrazu płyty." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3292,7 +3333,7 @@ msgstr "Dwa rdzenie" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Atrapa" @@ -3332,6 +3373,10 @@ msgstr "Zrzucaj docelowy EFB" msgid "Dump Frames" msgstr "Zrzucaj klatki" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3340,7 +3385,7 @@ msgstr "" msgid "Dump Objects" msgstr "Zrzucaj obiekty" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Ścieżka zrzutu:" @@ -3382,11 +3427,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3396,16 +3441,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3438,7 +3483,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holenderski" @@ -3494,7 +3539,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3510,7 +3555,7 @@ msgstr "Wbudowany bufor klatki (Embedded Frame Buffer - EFB)" msgid "Empty" msgstr "Pusty" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Wątek emulacji jest już uruchomiony" @@ -3597,11 +3642,11 @@ msgid "Enable Progressive Scan" msgstr "Włącz skanowanie progresywne" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Włącz wygaszacz ekranu" @@ -3729,7 +3774,7 @@ msgstr "Enet nie zainicjował się" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Angielski" @@ -3739,7 +3784,7 @@ msgstr "Angielski" msgid "Enhancements" msgstr "Ulepszenia" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3761,6 +3806,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3773,7 +3822,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3801,12 +3850,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3831,9 +3880,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Błąd" @@ -3933,11 +3982,11 @@ msgstr "" "Błąd: Próba uzyskania dostępu do czcionek Windows-1252, choć nie są one " "wczytane. Gry mogą nie pokazywać czcionek poprawnie lub zawieszać się." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4131,7 +4180,7 @@ msgid "Extracting Directory..." msgstr "Wypakowywanie folderu..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4158,7 +4207,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4170,16 +4219,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4200,7 +4249,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Nie udało się usunąć wybranego pliku." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4270,7 +4319,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4281,8 +4330,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4295,7 +4344,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4331,12 +4380,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Nie udało się otworzyć '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4362,7 +4411,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4531,7 +4580,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4685,7 +4734,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4733,7 +4782,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4823,7 +4872,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4838,7 +4887,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francuski" @@ -4878,7 +4927,7 @@ msgstr "Wywoływacze funkcji" msgid "Function calls" msgstr "Wywoływania funkcji" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4898,7 +4947,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4922,7 +4971,7 @@ msgstr "" msgid "GC Port %1" msgstr "Port %1 GC" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Folder GCI" @@ -4947,7 +4996,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4961,7 +5010,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4989,7 +5038,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5002,7 +5051,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5017,11 +5066,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Kartridże GBA (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5039,7 +5088,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Foldery gry" @@ -5133,7 +5182,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5188,7 +5237,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Niemiecki" @@ -5196,11 +5245,11 @@ msgstr "Niemiecki" msgid "Germany" msgstr "Niemcy" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5391,7 +5440,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5423,7 +5472,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5459,7 +5508,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Czułość IR" @@ -5600,11 +5649,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Importuj zapis Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5632,7 +5681,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5653,15 +5702,15 @@ msgstr "Zwiększ szybkość emulacji" msgid "Increase IR" msgstr "Zwiększ rozdzielczość wewnętrzną" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5669,6 +5718,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5708,7 +5764,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Włóż kartę SD" @@ -5896,7 +5952,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Włoski" @@ -5988,7 +6044,7 @@ msgid "Japan" msgstr "Japonia" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japoński" @@ -6026,7 +6082,7 @@ msgstr "Klawiatura" msgid "Keys" msgstr "Klawisze" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -6039,7 +6095,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreański" @@ -6091,7 +6147,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6191,7 +6247,7 @@ msgstr "" msgid "Load Last State" msgstr "Wczytaj ostatni stan" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6450,7 +6506,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6471,7 +6527,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Może powodować spowolnienie w Wii Menu i niektórych grach." @@ -6488,7 +6544,7 @@ msgstr "Pamięć" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Karta pamięci" @@ -6516,7 +6572,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6524,11 +6580,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6538,7 +6594,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Różne" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Ustawienia różne" @@ -6578,7 +6634,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6620,7 +6676,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6636,6 +6692,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6666,8 +6727,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6733,7 +6794,7 @@ msgstr "NetPlay zdesynchronizował się. Nie ma sposobu na powrócenie z tego." msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6869,11 +6930,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Nie znaleziono żadnych problemów." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6899,7 +6960,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Brak" @@ -6955,7 +7016,7 @@ msgid "Notice" msgstr "Uwagi" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -7070,7 +7131,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7098,7 +7159,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7120,7 +7181,7 @@ msgstr "Pomarańczowy" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7159,7 +7220,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7295,7 +7356,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7361,7 +7422,7 @@ msgstr "" msgid "Port %1" msgstr "Port %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7464,19 +7525,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7504,7 +7565,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7531,7 +7592,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pytanie" @@ -7572,7 +7633,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Zasięg" @@ -7738,8 +7798,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Usuń" @@ -7798,7 +7858,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7832,11 +7892,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7848,7 +7908,7 @@ msgstr "Zresetuj wszystkie zapisane sparowania Wiilotów" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7881,7 +7941,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7964,7 +8024,7 @@ msgstr "Wibracje" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7976,18 +8036,26 @@ msgstr "Rosja" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Ścieżka karty SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7996,11 +8064,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -8074,7 +8142,7 @@ msgstr "Zapisz najstarszy stan" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8171,7 +8239,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8199,7 +8267,7 @@ msgstr "Zapisz..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8234,7 +8302,7 @@ msgstr "Szukaj adresu" msgid "Search Current Object" msgstr "Przeszukaj aktualny obiekt" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Przeszukuj podfoldery" @@ -8276,11 +8344,11 @@ msgstr "Sekcja zawierająca wszystkie ustawienia dotyczące grafiki." msgid "Section that contains most CPU and Hardware related settings." msgstr "Sekcja zawierająca większość ustawień dotyczących procesora i sprzętu." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Wybierz" @@ -8293,15 +8361,15 @@ msgstr "Wybierz ścieżkę zrzutu" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8373,7 +8441,7 @@ msgstr "Wybierz slot stanu 8" msgid "Select State Slot 9" msgstr "Wybierz slot stanu 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8389,17 +8457,21 @@ msgstr "Wybierz ścieżkę" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Wybierz plik" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Wybierz grę" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8423,7 +8495,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8431,11 +8503,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Wybierz plik do zapisu" @@ -8528,7 +8600,7 @@ msgstr "" msgid "Send" msgstr "Wyślij" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Pozycja Sensor Baru:" @@ -8597,7 +8669,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8607,7 +8679,7 @@ msgstr "" "gier PAL.\n" "Może nie działać z niektórymi grami." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Ustawia język systemu Wii." @@ -8916,7 +8988,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chiński uproszczony" @@ -8977,7 +9049,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8985,7 +9057,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8993,7 +9065,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -9003,11 +9075,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9026,7 +9098,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -9040,7 +9112,7 @@ msgstr "Hiszpania" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Hiszpański" @@ -9048,7 +9120,7 @@ msgstr "Hiszpański" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Poziom głośnika:" @@ -9073,7 +9145,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9138,8 +9210,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9194,7 +9266,7 @@ msgstr "Krok wykonany!" msgid "Stepping" msgstr "Kroki" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9360,12 +9432,12 @@ msgstr "Wsparcie" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9458,6 +9530,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9471,7 +9549,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Język systemu:" @@ -9514,7 +9592,7 @@ msgstr "Zrób zrzut ekranu" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Testuj" @@ -9569,7 +9647,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND został naprawiony." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9597,7 +9675,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9633,7 +9711,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9645,11 +9723,11 @@ msgstr "Wprowadzony PID jest nieprawidłowy." msgid "The entered VID is invalid." msgstr "Wprowadzony VID jest nieprawidłowy." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9673,7 +9751,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9684,21 +9762,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9765,7 +9843,7 @@ msgstr "Profil '%1' nie istnieje." msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9776,7 +9854,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Wynikowy odszyfrowany kod AR nie zawiera żadnych linii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9802,7 +9880,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9815,7 +9893,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9829,7 +9907,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9891,7 +9969,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9928,22 +10006,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "To nie może być cofnięte!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9951,13 +10029,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9971,37 +10049,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -10031,12 +10109,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10096,7 +10174,7 @@ msgstr "" msgid "Threshold" msgstr "Próg nacisku" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10213,7 +10291,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Góra" @@ -10261,7 +10339,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chiński tradycyjny" @@ -10284,7 +10362,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10299,8 +10377,8 @@ msgstr "Spusty" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Typ" @@ -10320,7 +10398,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10528,7 +10606,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10598,6 +10676,10 @@ msgstr "Wiilot trzymany pionowo" msgid "Usage Statistics Reporting Settings" msgstr "Ustawienia raportowania statystyk użytkowania" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Użyj wbudowanej bazy danych nazw gier" @@ -10610,7 +10692,7 @@ msgstr "Używaj dostosowanego stylu użytkownika" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Użyj trybu PAL60 (EuRGB60)" @@ -10682,11 +10764,11 @@ msgstr "Interfejs użytkownika" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10772,7 +10854,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10893,7 +10975,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11032,7 +11114,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Zezwolone urządzenia przejściowe USB" @@ -11052,7 +11134,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Menu Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Źródło Wii NAND:" @@ -11078,7 +11160,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Ustawienia Wii Pilota" @@ -11198,7 +11280,7 @@ msgstr "X" msgid "XF register " msgstr "Rejestr XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11232,6 +11314,20 @@ msgstr "Tak" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11331,7 +11427,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11463,7 +11559,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11498,7 +11594,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 5c7ae8dc4b..7a0895fc64 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -29,7 +29,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -53,7 +53,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -61,22 +61,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -255,7 +261,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -642,19 +648,19 @@ msgstr "(desligado)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -669,7 +675,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -699,7 +705,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -773,7 +779,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -847,11 +853,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -866,12 +872,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -893,7 +899,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -904,7 +910,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -952,6 +958,11 @@ msgstr "Sobre o Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precisão:" @@ -1103,8 +1114,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Adicionar..." @@ -1175,7 +1186,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1206,7 +1217,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1214,7 +1225,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1223,7 +1234,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1232,8 +1243,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1269,7 +1280,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1402,7 +1413,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Proporção de ecrã:" @@ -1479,6 +1490,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1491,7 +1506,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1499,14 +1514,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1537,10 +1552,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Introdução em segundo plano" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1622,15 +1638,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1649,7 +1665,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1680,11 +1696,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1692,7 +1708,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Inferior" @@ -1723,19 +1739,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1867,7 +1891,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1885,8 +1909,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2005,7 +2029,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2027,11 +2051,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Escolha um ficheiro para abrir" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2062,7 +2086,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2138,7 +2162,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2184,11 +2208,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2197,8 +2221,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2226,7 +2250,7 @@ msgstr "Conectar" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Conectar Teclado USB" @@ -2274,7 +2298,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2370,14 +2394,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2486,14 +2527,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2761,7 +2802,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2782,11 +2823,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2806,7 +2847,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO Padrão:" @@ -2885,7 +2926,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detectar" @@ -2931,7 +2972,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3055,7 +3096,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3069,7 +3110,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Deseja parar a emulação actual?" @@ -3100,8 +3141,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS filmes (*.dtm)" @@ -3138,13 +3179,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3158,8 +3199,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3182,7 +3223,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3234,7 +3275,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3274,6 +3315,10 @@ msgstr "Depositar Alvo EFB" msgid "Dump Frames" msgstr "Depositar Quadros" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3282,7 +3327,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3324,11 +3369,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3338,16 +3383,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3380,7 +3425,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holandês" @@ -3436,7 +3481,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3452,7 +3497,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Thread de Emulador já em execução" @@ -3539,11 +3584,11 @@ msgid "Enable Progressive Scan" msgstr "Activar Progressive Scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Activar Protector de Ecrã" @@ -3665,7 +3710,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Inglês" @@ -3675,7 +3720,7 @@ msgstr "Inglês" msgid "Enhancements" msgstr "Melhorias" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3697,6 +3742,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3709,7 +3758,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3737,12 +3786,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3767,9 +3816,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erro" @@ -3866,11 +3915,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4064,7 +4113,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4091,7 +4140,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4103,16 +4152,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4133,7 +4182,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4203,7 +4252,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4214,8 +4263,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4228,7 +4277,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4262,12 +4311,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4293,7 +4342,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4462,7 +4511,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4616,7 +4665,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4664,7 +4713,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4754,7 +4803,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4769,7 +4818,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francês" @@ -4809,7 +4858,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4829,7 +4878,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4853,7 +4902,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4878,7 +4927,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4892,7 +4941,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4920,7 +4969,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4933,7 +4982,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4948,11 +4997,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4970,7 +5019,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5064,7 +5113,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5119,7 +5168,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Alemão" @@ -5127,11 +5176,11 @@ msgstr "Alemão" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5322,7 +5371,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5354,7 +5403,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5390,7 +5439,7 @@ msgid "IR" msgstr "IV" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilidade de Infra Vermelhos" @@ -5522,11 +5571,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5554,7 +5603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5575,15 +5624,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5591,6 +5640,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5630,7 +5686,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Inserir Cartão SD" @@ -5816,7 +5872,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiano" @@ -5908,7 +5964,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonês" @@ -5946,7 +6002,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5959,7 +6015,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreano" @@ -6011,7 +6067,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6111,7 +6167,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6370,7 +6426,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6391,7 +6447,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6408,7 +6464,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Cartão de memória" @@ -6436,7 +6492,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6444,11 +6500,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6458,7 +6514,7 @@ msgstr "" msgid "Misc" msgstr "Diversos" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Configurações Diversas" @@ -6498,7 +6554,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6540,7 +6596,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6556,6 +6612,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6586,8 +6647,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6653,7 +6714,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6789,11 +6850,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6819,7 +6880,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Nenhum" @@ -6875,7 +6936,7 @@ msgid "Notice" msgstr "Noticia" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6988,7 +7049,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7016,7 +7077,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7038,7 +7099,7 @@ msgstr "Laranja" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7077,7 +7138,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7213,7 +7274,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7279,7 +7340,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7380,19 +7441,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7420,7 +7481,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7447,7 +7508,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Questão" @@ -7488,7 +7549,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Alcance" @@ -7654,8 +7714,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Remover" @@ -7714,7 +7774,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7748,11 +7808,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7764,7 +7824,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7797,7 +7857,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7880,7 +7940,7 @@ msgstr "Vibração" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7892,18 +7952,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7912,11 +7980,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7990,7 +8058,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8087,7 +8155,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8115,7 +8183,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8150,7 +8218,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Procurar em Sub-Pastas" @@ -8192,11 +8260,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Seleccionar" @@ -8209,15 +8277,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8289,7 +8357,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8305,17 +8373,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8339,7 +8411,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8347,11 +8419,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Seleccione o ficheiro de jogo guardado" @@ -8444,7 +8516,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Posição da Barra de Sensor:" @@ -8513,14 +8585,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8827,7 +8899,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chinês Simplificado" @@ -8888,7 +8960,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8896,7 +8968,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8904,7 +8976,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8914,11 +8986,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8935,7 +9007,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8949,7 +9021,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Espanhol" @@ -8957,7 +9029,7 @@ msgstr "Espanhol" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volume do Altifalante:" @@ -8982,7 +9054,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9047,8 +9119,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9103,7 +9175,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9269,12 +9341,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9367,6 +9439,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9380,7 +9458,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Idioma do sistema:" @@ -9423,7 +9501,7 @@ msgstr "Tirar Screenshot" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Teste" @@ -9478,7 +9556,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9506,7 +9584,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9542,7 +9620,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9554,11 +9632,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9582,7 +9660,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9593,21 +9671,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9674,7 +9752,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9685,7 +9763,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "O resultado do código AR desencriptado não contém quaisquer linhas." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9711,7 +9789,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9724,7 +9802,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9738,7 +9816,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9800,7 +9878,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9837,22 +9915,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9860,13 +9938,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9880,37 +9958,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9934,12 +10012,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9996,7 +10074,7 @@ msgstr "" msgid "Threshold" msgstr "Limite" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10113,7 +10191,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Topo" @@ -10161,7 +10239,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chinês Tradicional" @@ -10184,7 +10262,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10199,8 +10277,8 @@ msgstr "Gatilhos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tipo" @@ -10220,7 +10298,7 @@ msgstr "" msgid "USA" msgstr "EUA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10428,7 +10506,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10498,6 +10576,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10510,7 +10592,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10582,11 +10664,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10672,7 +10754,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10793,7 +10875,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10932,7 +11014,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10952,7 +11034,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Raiz de NAND Wii:" @@ -10978,7 +11060,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11098,7 +11180,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11132,6 +11214,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11231,7 +11327,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11363,7 +11459,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11398,7 +11494,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index e305e071c2..030649d91f 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,9 +46,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Runo , 2013\n" +"Last-Translator: Mateus B. Cassiano , 2017,2021-2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" "emu/language/pt_BR/)\n" "Language: pt_BR\n" @@ -58,7 +58,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -70,7 +70,7 @@ msgstr "" "Como as imagens de disco do GameCube contém poucos dados de verificação, " "podem existir problemas que o Dolphin não consegue detectar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -106,7 +106,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disco %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Não" @@ -114,22 +114,28 @@ msgstr "! Não" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\" é um arquivo GCM/ISO inválido ou não é uma ISO de GC/Wii." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Variável do Usuário" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Módulo" @@ -316,7 +322,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n endereço(s) removido(s)." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& E" @@ -703,19 +709,19 @@ msgstr "(desligado)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiplicar" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Adicionar" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Vírgula" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Subtrair" @@ -730,7 +736,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Dividir" @@ -760,7 +766,7 @@ msgstr "Inteiro de 16 bits (Com Sinal)" msgid "16-bit Unsigned Integer" msgstr "Inteiro de 16 bits (Sem Sinal)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -834,7 +840,7 @@ msgstr "4 Bytes" msgid "4 Mbit (59 blocks)" msgstr "4 Mbits (59 blocos)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -908,11 +914,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x Nativa (5120x4224) para 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Menor que" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -930,12 +936,12 @@ msgstr "" "disponível para download. Você está executando a versão %2.
Gostaria de " "atualizar?

Notas de Lançamento:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Maior que" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Uma sessão do NetPlay já está em progresso!" @@ -965,7 +971,7 @@ msgstr "" "Não é possível carregar um estado salvo sem especificar um jogo para " "executar." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -980,7 +986,7 @@ msgstr "" "execução." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1039,6 +1045,11 @@ msgstr "Sobre o Dolphin" msgid "Accelerometer" msgstr "Acelerômetro" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precisão:" @@ -1210,8 +1221,8 @@ msgid "Add to watch" msgstr "Adicionar a observação" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Adicionar..." @@ -1302,7 +1313,7 @@ msgstr "" "risco. Por favor, não relate problemas que ocorrem ao utilizar velocidades " "de clock diferentes da padrão." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1333,7 +1344,7 @@ msgstr "Tudo Duplo" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1341,16 +1352,16 @@ msgid "All Files" msgstr "Todos os arquivos" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Todos os arquivos (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "Tudo Flutuação" +msgstr "Todos Flutuantes" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Todos os arquivos do GC/Wii" @@ -1359,8 +1370,8 @@ msgstr "Todos os arquivos do GC/Wii" msgid "All Hexadecimal" msgstr "Tudo Hexadecimal" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Todos os Estados Salvos (*.sav *.s##);;Todos os arquivos (*)" @@ -1396,7 +1407,7 @@ msgstr "Permitir Configurações de Região Incompatíveis" msgid "Allow Usage Statistics Reporting" msgstr "Permitir Envio de Estatísticas de Uso" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Permitir Gravações no Cartão SD" @@ -1533,7 +1544,7 @@ msgid "Aspect Ratio" msgstr "Proporção de Tela" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Proporção de Tela:" @@ -1616,6 +1627,10 @@ msgstr "Ocultar Automaticamente" msgid "Auto-detect RSO modules?" msgstr "Auto-detectar os módulos do RSO?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1631,7 +1646,7 @@ msgid "Auxiliary" msgstr "Auxiliar" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1639,7 +1654,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT Incorreto, Dolphin vai fechar agora" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1649,7 +1664,7 @@ msgstr "" "válido do Nintendo GameCube deve ser usado. Gere um novo endereço MAC " "iniciando com 00:09:bf ou 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1680,10 +1695,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Entrada de Dados em Segundo Plano" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1767,15 +1783,15 @@ msgstr "Beta (mensalmente)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, etc." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "SSL Binário" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "SSL Binário (leitura)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "SSL Binário (gravação)" @@ -1794,7 +1810,7 @@ msgstr "Tamanho do Bloco" msgid "Block Size:" msgstr "Tamanho do Bloco:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Bloqueio" @@ -1828,11 +1844,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Do Início até a Pausa" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Arquivo de backup da NAND do BootMii (*.bin);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Arquivo de chaves do BootMii (*.bin);;Todos os arquivos (*)" @@ -1840,7 +1856,7 @@ msgstr "Arquivo de chaves do BootMii (*.bin);;Todos os arquivos (*)" msgid "Borderless Fullscreen" msgstr "Tela Cheia Sem Bordas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Embaixo" @@ -1871,19 +1887,27 @@ msgstr "Ponto de interrupção encontrado! Saída abortada." msgid "Breakpoints" msgstr "Pontos de Interrupção" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Adaptador de Banda Larga (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Adaptador de Banda Larga (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Adaptador de Banda Larga (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Erro no Adaptador de Banda Larga" @@ -1947,7 +1971,7 @@ msgstr "Botões" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "Autor:" +msgstr "Autor: " #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2027,7 +2051,7 @@ msgstr "Lista de exibição de chamadas em %1 com tamanho %2" msgid "Callstack" msgstr "Callstack" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Câmera 1" @@ -2046,8 +2070,8 @@ msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" "Não foi possível encontrar o Wii Remote pelo identificador de conexão {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Não é possível iniciar uma sessão do NetPlay enquanto um jogo está em " @@ -2180,7 +2204,7 @@ msgstr "Gerenciador de Cheats" msgid "Check NAND..." msgstr "Verificar NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Monitorar Alterações na Lista de Jogos em Segundo Plano" @@ -2204,11 +2228,11 @@ msgstr "Checksum" msgid "China" msgstr "China" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Abrir" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "Escolha um arquivo pra abrir ou criar" @@ -2239,7 +2263,7 @@ msgid "Classic Controller" msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2315,7 +2339,7 @@ msgstr "Comparando:" msgid "Compile Shaders Before Starting" msgstr "Compilar Shaders Antes de Iniciar" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Compilando Shaders" @@ -2361,11 +2385,11 @@ msgstr "Configurar" msgid "Configure Dolphin" msgstr "Abrir Configurações" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Configurar a Entrada dos Dados" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Configurar a Saída dos Dados" @@ -2374,8 +2398,8 @@ msgstr "Configurar a Saída dos Dados" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Confirmar" @@ -2403,7 +2427,7 @@ msgstr "Conectar" msgid "Connect Balance Board" msgstr "Conectar/Desconectar Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Conectar Teclado USB" @@ -2451,7 +2475,7 @@ msgstr "Conectando" msgid "Connection Type:" msgstr "Tipo de Conexão:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "O conteúdo {0:08x} está corrompido." @@ -2565,14 +2589,31 @@ msgstr "Convergência" msgid "Convergence:" msgstr "Convergência:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Converter" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Converter Arquivo..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Converter Arquivos Selecionados..." @@ -2690,7 +2731,7 @@ msgstr "" "Não foi possível baixar as informações de atualização dos servidores da " "Nintendo. Por favor, verifique sua conexão com a Internet e tente novamente." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2701,7 +2742,7 @@ msgstr "" "\n" "A emulação do console será interrompida." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -3010,7 +3051,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "Qualidade de Decodificação:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Diminuir" @@ -3031,11 +3072,11 @@ msgstr "Diminuir Velocidade" msgid "Decrease IR" msgstr "Diminuir Resolução Interna" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Diminuir X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Diminuir Y" @@ -3055,7 +3096,7 @@ msgstr "Dispositivo Padrão" msgid "Default Font" msgstr "Fonte Padrão" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO padrão:" @@ -3134,13 +3175,13 @@ msgstr "Descrição:" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "Descrição:" +msgstr "Descrição: " #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "Separado" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detectar" @@ -3186,7 +3227,7 @@ msgstr "%1 não reconhecido como um arquivo XML válido do Riivolution." msgid "Diff" msgstr "Diferença" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" "Escurece a tela após 5 minutos de inatividade durante a emulação de " @@ -3339,7 +3380,7 @@ msgstr "" "Você autoriza o Dolphin a reportar informações pros desenvolvedores do " "Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Você quer adicionar '%1' a lista de caminhos dos jogos?" @@ -3353,7 +3394,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Você quer apagar o(s) %n arquivo(s) do(s) save(s) selecionado(s)?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Deseja parar a emulação atual?" @@ -3384,8 +3425,8 @@ msgstr "Arquivo CSV de Assinatura do Dolphin" msgid "Dolphin Signature File" msgstr "Arquivo de Assinatura do Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Gravações TAS do Dolphin (*.dtm)" @@ -3433,7 +3474,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Versão do Dolphin é muito antiga para o servidor traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3441,7 +3482,7 @@ msgstr "" "O Dolphin não consegue verificar imagens TGC corretamente, pois elas não são " "cópias de discos reais." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "O Dolphin não pode verificar imagens de discos não licenciados." @@ -3457,8 +3498,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "O sistema de cheats do Dolphin está desativado no momento." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domínio" @@ -3481,7 +3522,7 @@ msgstr "Compressão de imagem do disco concluída." msgid "Double" msgstr "Dobro" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3533,7 +3574,7 @@ msgstr "Dual Core" msgid "Dual View" msgstr "Visualização Dupla" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3573,6 +3614,10 @@ msgstr "Exportar Alvo EFB" msgid "Dump Frames" msgstr "Exportar Quadros" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Exportar Mip Maps" @@ -3581,7 +3626,7 @@ msgstr "Exportar Mip Maps" msgid "Dump Objects" msgstr "Exportar Objetos" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Exportação:" @@ -3632,11 +3677,11 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Extrair leituras SSL descriptografadas" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Extrair escritas SSL descriptografadas" @@ -3648,16 +3693,16 @@ msgstr "" "Exporta objetos na pasta User/Dump/Objects/.

Na " "dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Opções de exportação" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Extrair certificados do peer" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Extrair certificados raiz da CA" @@ -3699,7 +3744,7 @@ msgstr "Duração do Soltar do Botão Turbo (frames):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Holandês" @@ -3763,7 +3808,7 @@ msgstr "Efetivo" msgid "Effective priority" msgstr "Prioridade efetiva" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3779,7 +3824,7 @@ msgstr "Frame Buffer Embutido (EFB)" msgid "Empty" msgstr "Vazio" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Thread de Emulação já está em execução" @@ -3869,11 +3914,11 @@ msgid "Enable Progressive Scan" msgstr "Ativar Varredura Progressiva" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Ativar Vibração" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Ativar Proteção de Tela" @@ -4039,7 +4084,7 @@ msgstr "Enet Não Inicializou" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Inglês" @@ -4049,7 +4094,7 @@ msgstr "Inglês" msgid "Enhancements" msgstr "Melhorias" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "Informe o endereço IP do dispositivo executando o cliente XLink Kai:" @@ -4071,6 +4116,10 @@ msgstr "Informe o endereço MAC do Adaptador de Banda Larga:" msgid "Enter password" msgstr "Inserir senha" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Insira o endereço do módulo do RSO:" @@ -4083,7 +4132,7 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4111,12 +4160,12 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4141,9 +4190,9 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Erro" @@ -4244,11 +4293,11 @@ msgstr "" "ERRO: Tentando acessar as fontes Windows-1252, mas elas não foram " "carregadas. Os jogos podem não mostrar as fontes corretamente, ou travarem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Erros foram encontrados em {0} blocos da partição {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Erros foram encontrados em {0} blocos não utilizados da partição {1}." @@ -4459,7 +4508,7 @@ msgid "Extracting Directory..." msgstr "Extraindo Diretório..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4488,7 +4537,7 @@ msgstr "Falha ao adicionar essa sessão ao indexador do NetPlay: %1" msgid "Failed to append to signature file '%1'" msgstr "Falha ao anexar ao arquivo de assinatura '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" "Falha ao solicitar acesso à interface para o redirecionamento Bluetooth: {0}" @@ -4501,16 +4550,16 @@ msgstr "Falha na conexão com Redump.org" msgid "Failed to connect to server: %1" msgstr "Falha na conexão com o servidor: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Falha ao criar a cadeia de swap do Direct3D" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Falha ao criar o contexto do Direct3D 12" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Falha ao criar recursos globais do Direct3D 12" @@ -4535,7 +4584,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Falha ao excluir o arquivo selecionado." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" "Falha ao descarregar o driver do kernel para o redirecionamento Bluetooth: " @@ -4618,7 +4667,7 @@ msgstr "" "NAND (Ferramentas -> Gerenciar NAND -> Verificar NAND...) , então importe os " "dados salvos novamente." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Falha ao inicializar o núcleo" @@ -4632,8 +4681,8 @@ msgstr "" "Certifique-se de que sua GPU suporta pelo menos a versão 10.0 do Direct3D.\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Falha ao inicializar as classes do renderizador" @@ -4646,7 +4695,7 @@ msgstr "Falha ao instalar pacote: %1" msgid "Failed to install this title to the NAND." msgstr "Falha ao instalar esse software na NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4684,12 +4733,12 @@ msgstr "" "pacote de atualização KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Falha ao abrir '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Falha ao acessar o dispositivo Bluetooth: {0}" @@ -4718,7 +4767,7 @@ msgstr "" msgid "Failed to open file." msgstr "Falha ao abrir o arquivo." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Falha ao abrir o servidor" @@ -4905,7 +4954,7 @@ msgstr "" "Dessincronização fatal, abortando reprodução. (Erro no PlayWiimote: {0} != " "{1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Campo de Visualização" @@ -5076,7 +5125,7 @@ msgstr "" "Para instruções de configuração, consulte essa página." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5139,7 +5188,7 @@ msgstr "" msgid "Format:" msgstr "Formato:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5233,7 +5282,7 @@ msgstr "" "detalhadas, consulte essa página." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Olhar Livre" @@ -5248,7 +5297,7 @@ msgstr "Ativar/Desativar Olhar Livre" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Francês" @@ -5288,7 +5337,7 @@ msgstr "Chamadores de função" msgid "Function calls" msgstr "Chamadas de função" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funções" @@ -5308,7 +5357,7 @@ msgstr "Núcleo do GBA" msgid "GBA Port %1" msgstr "Porta do GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "Configurações do GBA" @@ -5332,7 +5381,7 @@ msgstr "ROM desativada do GBA%1" msgid "GC Port %1" msgstr "Porta do GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Pasta GCI" @@ -5367,7 +5416,7 @@ msgstr "" "Erros subsequentes serão enviados para o log \"Video Backend\" e o Dolphin " "provavelmente irá travar ou congelar agora. Aproveite!" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE é {0} - deve ser pelo menos 1024." @@ -5384,7 +5433,7 @@ msgstr "" "renderização.\n" "GPU: Sua placa de vídeo suporta o OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: ERRO do OGL: Sua placa de vídeo suporta o OpenGL 2.0?" @@ -5420,7 +5469,7 @@ msgstr "" "GPU: ERRO do OGL: Precisa do GL_ARB_vertex_array_object.\n" "GPU: Sua placa de vídeo suporta o OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5438,7 +5487,7 @@ msgstr "" "GPU: Sua placa de vídeo suporta o OpenGL 3.0?\n" "GPU: Seu driver suporta GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5455,11 +5504,11 @@ msgstr "Jogo" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Cartuchos do Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5479,7 +5528,7 @@ msgstr "Configurações do Jogo" msgid "Game Details" msgstr "Detalhes do Jogo" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Pastas de Jogos" @@ -5578,7 +5627,7 @@ msgid "GameCube Memory Cards" msgstr "Memory Cards do GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Memory Cards do GameCube (*.raw *.gcp)" @@ -5633,7 +5682,7 @@ msgstr "Nomes dos símbolos gerados do '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Alemão" @@ -5641,11 +5690,11 @@ msgstr "Alemão" msgid "Germany" msgstr "Alemanha" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "Falha no GetDeviceList: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5846,7 +5895,7 @@ msgstr "Host autoritário ativado" msgid "Host with NetPlay" msgstr "Hospedar no NetPlay" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Nome do Hospedeiro" @@ -5878,7 +5927,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Estou ciente dos riscos e quero continuar" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5920,7 +5969,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilidade do Ponteiro:" @@ -6109,11 +6158,11 @@ msgstr "Importar Arquivo(s) do(s) Save(s)" msgid "Import Wii Save..." msgstr "Importar Dados Salvos do Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importando backup da NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6148,7 +6197,7 @@ msgstr "" "salvar ou carregar um estado salvo.

Na dúvida, " "mantenha essa opção ativada." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Aumentar" @@ -6169,15 +6218,15 @@ msgstr "Aumentar Velocidade" msgid "Increase IR" msgstr "Aumentar Resolução Interna" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Aumentar X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Aumentar Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Rotação Incremental" @@ -6185,6 +6234,13 @@ msgstr "Rotação Incremental" msgid "Incremental Rotation (rad/sec)" msgstr "Rotação Incremental (rad/seg)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6224,7 +6280,7 @@ msgstr "Força da entrada pra ignorar e remapear." msgid "Insert &nop" msgstr "Inserir &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Inserir Cartão SD" @@ -6414,7 +6470,7 @@ msgstr "Endereço da observação inválido: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiano" @@ -6509,7 +6565,7 @@ msgid "Japan" msgstr "Japão" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonês" @@ -6547,7 +6603,7 @@ msgstr "Teclado" msgid "Keys" msgstr "Teclas" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6560,7 +6616,7 @@ msgid "Korea" msgstr "Coréia" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreano" @@ -6612,7 +6668,7 @@ msgstr "Latência: ~40 ms" msgid "Latency: ~80 ms" msgstr "Latência: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6718,7 +6774,7 @@ msgstr "Carregar Menu Principal do GameCube" msgid "Load Last State" msgstr "Carregar Anterior" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Carregamento:" @@ -6993,7 +7049,7 @@ msgstr "Amostragem Manual de Texturas" msgid "Mapping" msgstr "Mapeamento" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Mask ROM" @@ -7014,7 +7070,7 @@ msgstr "Tamanho máximo do buffer alterado para %1" msgid "Maximum tilt angle." msgstr "Ângulo máximo de inclinação." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Pode causar lentidão no Wii Menu e em alguns jogos." @@ -7031,7 +7087,7 @@ msgstr "Memória" msgid "Memory Breakpoint" msgstr "Pontos de Interrupção da Memória" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Memory Card" @@ -7059,7 +7115,7 @@ msgstr "MemoryCard: Leitura chamada com endereço inválido da fonte ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Gravação chamada com endereço de destino inválido ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -7071,11 +7127,11 @@ msgstr "" "recomendado manter um backup de ambas as NANDs. Tem certeza de que deseja " "continuar?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -7085,7 +7141,7 @@ msgstr "Microfone" msgid "Misc" msgstr "Diversos" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Configurações Diversas" @@ -7138,7 +7194,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Módulos achados: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7184,7 +7240,7 @@ msgstr "" "Oculta permanentemente o cursor do mouse enquanto um jogo estiver em " "execução." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Mover" @@ -7202,6 +7258,11 @@ msgstr "" "A gravação {0} indica que inicia a partir de um estado salvo, mas {1} não " "existe. A gravação provavelmente não será sincronizada!" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "Não para T&odos" @@ -7232,8 +7293,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7299,7 +7360,7 @@ msgstr "O Netplay perdeu a sincronia. Não é possível se recuperar desse erro. msgid "Network" msgstr "Rede" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Formato do despejo de rede:" @@ -7435,11 +7496,11 @@ msgstr "Nenhum caminho encontrado no arquivo M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Não restam funções possíveis. Resetar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Nenhum problema encontrado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7470,7 +7531,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Nenhum" @@ -7532,7 +7593,7 @@ msgid "Notice" msgstr "Notificação" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Nulo" @@ -7649,7 +7710,7 @@ msgstr "Abrir XML do Riivolution..." msgid "Open Wii &Save Folder" msgstr "Abrir Pasta de Dados &Salvos do Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Abrir a pasta dos dumps" @@ -7677,7 +7738,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operadores" @@ -7699,7 +7760,7 @@ msgstr "Laranja" msgid "Orbital" msgstr "Orbital" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7738,7 +7799,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7874,7 +7935,7 @@ msgstr "Físico" msgid "Physical address space" msgstr "Espaço do endereço físico" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7942,7 +8003,7 @@ msgstr "Apontar" msgid "Port %1" msgstr "Porta %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "ROM da Porta %1:" @@ -8051,7 +8112,7 @@ msgstr "Privada e Pública" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8059,7 +8120,7 @@ msgstr "" "Problemas de alta gravidade foram encontrados. O jogo provavelmente não " "funcionará." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8067,7 +8128,7 @@ msgstr "" "Problemas de baixa gravidade foram encontrados. Eles provavelmente não " "impedirão a execução do jogo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8097,7 +8158,7 @@ msgstr "Público" msgid "Purge Game List Cache" msgstr "Limpar Cache da Lista de Jogos" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Coloque as ROMs do IPL na pasta User/GC//." @@ -8126,7 +8187,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pergunta" @@ -8167,7 +8228,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "Imagens RVZ do GC/Wii (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Sensibilidade" @@ -8341,8 +8401,8 @@ msgstr "Me Lembrar Mais Tarde" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Remover" @@ -8406,7 +8466,7 @@ msgstr "Relatório: Gravação da GCIFolder no bloco não alocado {0:#x}" msgid "Request to Join Your Party" msgstr "Pedido pra se Juntar ao seu Grupo" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8440,11 +8500,11 @@ msgstr "Servidor Traversal redefinido para %1:%2" msgid "Reset Traversal Settings" msgstr "Redefinir Servidor Traversal" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Redefinir Valores" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Redefinir Câmera" @@ -8456,7 +8516,7 @@ msgstr "Redefinir pareamento de todos os Wii Remotes salvos" msgid "Resource Pack Manager" msgstr "Gerenciador de Pacotes de Recursos" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Pacotes de Recursos:" @@ -8489,7 +8549,7 @@ msgstr "Revisão" msgid "Revision: %1" msgstr "Revisão: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8577,7 +8637,7 @@ msgstr "Vibração" msgid "Run &To Here" msgstr "Correr &Até Aqui" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Executar Instâncias do GBA em Processos Dedicados" @@ -8589,18 +8649,26 @@ msgstr "Rússia" msgid "SD Card" msgstr "Cartão SD" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "Imagem do Cartão SD (*.raw);;Todos os arquivos (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Cartão SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "Raiz do SD:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8609,11 +8677,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "Contexto do SSL" @@ -8687,7 +8755,7 @@ msgstr "Salvar Estado Mais Antigo" msgid "Save Preset" msgstr "Salvar Predefinição" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Salvar o Arquivo da Gravação Como" @@ -8787,7 +8855,7 @@ msgstr "" "dos dados atuais antes de substituí-los.\n" "Substituir os dados existentes?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Salvar na Mesma Pasta da ROM" @@ -8817,7 +8885,7 @@ msgstr "" "O pareamento dos Wii Remotes salvos só pode ser redefinido durante a " "execução de um jogo do Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Dados Salvos:" @@ -8852,7 +8920,7 @@ msgstr "Procurar Endereço" msgid "Search Current Object" msgstr "Procurar o Objeto Atual" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Procurar nas Subpastas" @@ -8898,11 +8966,11 @@ msgstr "" "Seção que contém a maioria das configurações relacionadas a CPU e ao " "Hardware." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Opções de segurança" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Selecionar" @@ -8915,15 +8983,15 @@ msgstr "Selecione o Caminho do Dump" msgid "Select Export Directory" msgstr "Selecione o Diretório de Exportação" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Selecionar a BIOS do GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Selecionar a ROM do GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Selecione o Caminho dos Saves do GBA" @@ -8995,7 +9063,7 @@ msgstr "Selecionar Slot 8" msgid "Select State Slot 9" msgstr "Selecionar Slot 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Selecione o Caminho do WFS" @@ -9011,17 +9079,21 @@ msgstr "Selecione um Diretório" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Selecione um Arquivo" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Selecione um Jogo" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Selecione uma Imagem do Cartão SD" @@ -9045,7 +9117,7 @@ msgstr "Selecione os Cartões do e-Reader" msgid "Select the RSO module address:" msgstr "Selecione o endereço do módulo do RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Selecione o Arquivo da Gravação a Executar" @@ -9053,11 +9125,11 @@ msgstr "Selecione o Arquivo da Gravação a Executar" msgid "Select the Virtual SD Card Root" msgstr "Selecione a Raiz do Cartão SD Virtual" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Selecione o arquivo das chaves (dump do OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Importar" @@ -9183,7 +9255,7 @@ msgstr "" msgid "Send" msgstr "Enviar" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Posição da Sensor Bar:" @@ -9256,7 +9328,7 @@ msgstr "Definir final do endereço do símbolo" msgid "Set symbol size (%1):" msgstr "Definir tamanho do símbolo (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9266,7 +9338,7 @@ msgstr "" "jogos PAL.\n" "Pode não funcionar em todos os jogos." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Define o idioma do sistema do Wii." @@ -9592,7 +9664,7 @@ msgid "Signed Integer" msgstr "Inteiro Assinada" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chinês Simplificado" @@ -9660,7 +9732,7 @@ msgstr "Barra do Slider" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Slot A:" @@ -9668,7 +9740,7 @@ msgstr "Slot A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Slot B:" @@ -9676,7 +9748,7 @@ msgstr "Slot B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Encaixa a posição do analógico no eixo octogonal mais próximo." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Tabela do soquete" @@ -9686,11 +9758,11 @@ msgstr "Tabela do soquete" msgid "Software Renderer" msgstr "Renderizador por Software" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Alguns dos dados não puderam ser lidos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9711,7 +9783,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Classificar por Nome" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Modo de Som:" @@ -9725,7 +9797,7 @@ msgstr "Espanha" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Espanhol" @@ -9733,7 +9805,7 @@ msgstr "Espanhol" msgid "Speaker Pan" msgstr "Balanço do Speaker" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volume do Auto-Falante:" @@ -9768,7 +9840,7 @@ msgstr "" "nível 9 e levam consideravelmente menos tempo para salvar." "

Na dúvida, selecione \"6\"." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9833,8 +9905,8 @@ msgstr "Iniciar com Patches do Riivolution..." msgid "Started game" msgstr "Jogo iniciado" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9889,7 +9961,7 @@ msgstr "Passo bem-sucedido!" msgid "Stepping" msgstr "Passando" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Estéreo" @@ -10065,12 +10137,12 @@ msgstr "Suporte" msgid "Supported file formats" msgstr "Formatos de arquivo suportados" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Suporta SD e SDHC. O tamanho padrão é 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -10173,6 +10245,12 @@ msgstr "" "Sincroniza os threads da GPU e da CPU pra ajudar a impedir os congelamentos " "aleatórios no modo Dual Core. (ON = Compatível, OFF = Rápido)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Sincronizando códigos AR..." @@ -10186,7 +10264,7 @@ msgid "Synchronizing save data..." msgstr "Sincronizando dados salvos..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Idioma do Sistema:" @@ -10227,9 +10305,9 @@ msgstr "Capturar Tela" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "O alcance do endereço alvo é inválido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Testar" @@ -10290,7 +10368,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "A NAND foi reparada." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10327,7 +10405,7 @@ msgstr "" "O tamanho dos dados da partição {0} não é divisível igualmente pelo tamanho " "do bloco." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" "As chaves criptográficas precisam estar anexadas ao arquivo de backup da " @@ -10371,7 +10449,7 @@ msgstr "O console Wii emulado já está atualizado." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "O endereço MAC inserido não é válido." @@ -10383,11 +10461,11 @@ msgstr "O PID inserido não é válido." msgid "The entered VID is invalid." msgstr "O VID inserido não é válido." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "A expressão contém um erro de sintaxe." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10420,7 +10498,7 @@ msgid "The file {0} was already open, the file header will not be written." msgstr "" "O arquivo {0} já estava aberto, o cabeçalho do arquivo não será gravado." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10434,7 +10512,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "O sistema de arquivos é inválido ou não pôde ser lido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10442,15 +10520,15 @@ msgstr "" "O formato em que a imagem de disco foi salva não armazena o tamanho da " "imagem de disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "A ID do jogo é inconsistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "A ID do jogo é muito curta." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "A ID do jogo é {0} mas deveria ser {1}." @@ -10533,7 +10611,7 @@ msgstr "O perfil \"%1\" não existe" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "O jogo gravado ({0}) não é o mesmo do jogo selecionado ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10548,7 +10626,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "O código AR descriptografado não contém nenhuma linha." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10580,7 +10658,7 @@ msgstr "" "selecione 'Não'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "O índice de chave comum especificado é {0}, mas deveria ser {1}." @@ -10593,7 +10671,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "O memory card alvo já contém um arquivo: \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "O ticket não foi assinado corretamente." @@ -10609,7 +10687,7 @@ msgstr "" "A atualização foi cancelada. É altamente recomendado concluí-la para evitar " "versões inconsistentes do software do sistema." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "A partição de atualização não contém o IOS utilizado por esse jogo." @@ -10675,7 +10753,7 @@ msgstr "Este código do gecko não contém quaisquer linhas." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10717,17 +10795,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Isto não pode ser desfeito!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Essa imagem de disco de depuração tem o tamanho de uma imagem de disco para " "venda no varejo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Essa imagem de disco tem um tamanho incomum." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10738,7 +10816,7 @@ msgstr "" "conseguirá compartilhar gravações de replay e nem jogar no NetPlay com " "outros usuários que estejam usando uma cópia válida do disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10750,7 +10828,7 @@ msgstr "" "de volta. O CRC32 dessa imagem pode corresponder ao CRC32 de uma cópia " "válida mesmo quando os arquivos não são idênticos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10759,7 +10837,7 @@ msgstr "" "extração utilizado salvou a imagem de disco em várias partes, você precisará " "juntá-las em um único arquivo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10776,7 +10854,7 @@ msgstr "Este arquivo não contém um sistema de arquivos do Wii válido." msgid "This file does not look like a BootMii NAND backup." msgstr "Este arquivo não parece um backup NAND do BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10787,7 +10865,7 @@ msgstr "" "inteiros de jogo não funcionarão corretamente. Esse problema normalmente só " "ocorre em cópias pirateadas." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10798,11 +10876,11 @@ msgstr "" "dessa limitação o jogo apresentará problemas ou travamentos durante a " "execução." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Essa cópia contém erros." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10810,7 +10888,7 @@ msgstr "" "Essa cópia contém erros. Isso não significa necessariamente que o jogo não " "irá funcionar corretamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10818,7 +10896,7 @@ msgstr "" "Essa é uma cópia válida do disco de acordo com Redump.org, no entanto o " "Dolphin encontrou problemas. Isso pode ser um bug no Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Essa cópia é válida." @@ -10848,12 +10926,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Este software não pode ser iniciado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Esse software está configurado para utilizar um IOS inválido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Esse software está configurado para utilizar uma chave comum inválida." @@ -10928,7 +11006,7 @@ msgstr "Threads" msgid "Threshold" msgstr "Limite" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -11047,7 +11125,7 @@ msgstr "Falha na tokenização." msgid "Toolbar" msgstr "Barra de Ferramentas" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Em cima" @@ -11095,7 +11173,7 @@ msgid "Touch" msgstr "Toque" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chinês Tradicional" @@ -11120,7 +11198,7 @@ msgstr "" "Tenta traduzir as vertentes a frente do tempo melhorando a performance na " "maioria dos casos. O padrão é True" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Triforce AM Baseboard" @@ -11135,8 +11213,8 @@ msgstr "Gatilhos" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tipo" @@ -11156,7 +11234,7 @@ msgstr "DESCONHECIDO" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11394,7 +11472,7 @@ msgstr "Não Assinou 8" msgid "Unsigned Integer" msgstr "Inteiro Não Assinada" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11466,6 +11544,10 @@ msgstr "Wii Remote na Vertical" msgid "Usage Statistics Reporting Settings" msgstr "Configurações de Estatísticas de Uso" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Usar Nomes de Jogos da Base de Dados Embutida" @@ -11478,7 +11560,7 @@ msgstr "Usar Estilo de Usuário Personalizado" msgid "Use Lossless Codec (FFV1)" msgstr "Usar Codec Sem Perdas (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Usar Modo PAL60 (EuRGB60)" @@ -11584,11 +11666,11 @@ msgstr "Interface do Usuário" msgid "User Style:" msgstr "Estilo de Usuário:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Variáveis do Usuário" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11688,7 +11770,7 @@ msgstr "Verificar" msgid "Verify Integrity" msgstr "Verificar Integridade" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verificar certificados" @@ -11825,7 +11907,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Modo Exclusivo)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "WFS:" @@ -12023,7 +12105,7 @@ msgstr "" "

Na dúvida, mantenha essa opção ativada." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Dispositivos Permitidos no Redirecionamento USB" @@ -12043,7 +12125,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii Menu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "NAND do Wii:" @@ -12069,7 +12151,7 @@ msgstr "Botões do Wii Remote" msgid "Wii Remote Orientation" msgstr "Orientação do Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Configurações do Wii Remote" @@ -12192,7 +12274,7 @@ msgstr "X" msgid "XF register " msgstr "Registrador XF" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "Endereço de Destino do Adaptador XLink Kai" @@ -12226,6 +12308,20 @@ msgstr "Sim" msgid "Yes to &All" msgstr "Sim para &Todos" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12368,7 +12464,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] e [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Xou" @@ -12502,7 +12598,7 @@ msgstr "desalinhado" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -12539,7 +12635,7 @@ msgstr "{0} de {1} blocos. Taxa de compressão: {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} não era um diretório, movido pro *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Ou" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index 5c1b435f1e..7c86487a46 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -60,22 +60,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -254,7 +260,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -641,19 +647,19 @@ msgstr "(oprit)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -668,7 +674,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -698,7 +704,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -772,7 +778,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -846,11 +852,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -865,12 +871,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -903,7 +909,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -951,6 +957,11 @@ msgstr "Despre Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precizie:" @@ -1102,8 +1113,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Adaugă..." @@ -1174,7 +1185,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1205,7 +1216,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1224,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1231,8 +1242,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1268,7 +1279,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1401,7 +1412,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Raport Aspect:" @@ -1478,6 +1489,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1490,7 +1505,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1498,14 +1513,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1536,10 +1551,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Intrare Fundal" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1621,15 +1637,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1648,7 +1664,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1679,11 +1695,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1691,7 +1707,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Jos" @@ -1722,19 +1738,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1866,7 +1890,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1884,8 +1908,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2004,7 +2028,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2026,11 +2050,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Alege un fișier pentru a-l deschide" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2061,7 +2085,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2137,7 +2161,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2183,11 +2207,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2196,8 +2220,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2225,7 +2249,7 @@ msgstr "Conectare" msgid "Connect Balance Board" msgstr "Conectează Placa de Echilibru" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Conectează Tastatura USB" @@ -2273,7 +2297,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2369,14 +2393,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2485,14 +2526,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2760,7 +2801,7 @@ msgstr "Zecimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2781,11 +2822,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2805,7 +2846,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "ISO implicit:" @@ -2884,7 +2925,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detectare" @@ -2930,7 +2971,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3054,7 +3095,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3068,7 +3109,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Vrei să oprești emularea curentă?" @@ -3099,8 +3140,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr " Filme TAS Dolphin (*.dtm)" @@ -3137,13 +3178,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3157,8 +3198,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3181,7 +3222,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3233,7 +3274,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3273,6 +3314,10 @@ msgstr "Dump Destinație EFB" msgid "Dump Frames" msgstr "Dump Cadre" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3281,7 +3326,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3323,11 +3368,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3337,16 +3382,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3379,7 +3424,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Olandeză" @@ -3435,7 +3480,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3451,7 +3496,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Firul Emu rulează deja" @@ -3538,11 +3583,11 @@ msgid "Enable Progressive Scan" msgstr "Activare Scanare Progresivă" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Activare Economizor Ecran" @@ -3664,7 +3709,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engleză" @@ -3674,7 +3719,7 @@ msgstr "Engleză" msgid "Enhancements" msgstr "Îmbunătățiri" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3696,6 +3741,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3708,7 +3757,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3736,12 +3785,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3766,9 +3815,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Eroare" @@ -3865,11 +3914,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4063,7 +4112,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4090,7 +4139,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4102,16 +4151,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4132,7 +4181,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4202,7 +4251,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4213,8 +4262,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4227,7 +4276,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4261,12 +4310,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4292,7 +4341,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4461,7 +4510,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4615,7 +4664,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4663,7 +4712,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4753,7 +4802,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4768,7 +4817,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Franceză" @@ -4808,7 +4857,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4828,7 +4877,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4852,7 +4901,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4877,7 +4926,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4891,7 +4940,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4919,7 +4968,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4932,7 +4981,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4947,11 +4996,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4969,7 +5018,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5063,7 +5112,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5118,7 +5167,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Germană" @@ -5126,11 +5175,11 @@ msgstr "Germană" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5321,7 +5370,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5353,7 +5402,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5389,7 +5438,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Sensibilitate IR:" @@ -5521,11 +5570,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5553,7 +5602,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5574,15 +5623,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5590,6 +5639,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5629,7 +5685,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Introdu Card SD" @@ -5817,7 +5873,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italiană" @@ -5909,7 +5965,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japoneză" @@ -5947,7 +6003,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5960,7 +6016,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Coreeană" @@ -6012,7 +6068,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6112,7 +6168,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6371,7 +6427,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6392,7 +6448,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6409,7 +6465,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Card de memorie" @@ -6437,7 +6493,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6445,11 +6501,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6459,7 +6515,7 @@ msgstr "" msgid "Misc" msgstr "Diverse" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Configurări Diverse" @@ -6499,7 +6555,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6541,7 +6597,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6557,6 +6613,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6587,8 +6648,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6654,7 +6715,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6790,11 +6851,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6820,7 +6881,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Nimic" @@ -6876,7 +6937,7 @@ msgid "Notice" msgstr "Notificare" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6989,7 +7050,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7017,7 +7078,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7039,7 +7100,7 @@ msgstr "Portocaliu" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7078,7 +7139,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7214,7 +7275,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7280,7 +7341,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7381,19 +7442,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7421,7 +7482,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7448,7 +7509,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Întrebare" @@ -7489,7 +7550,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Interval" @@ -7655,8 +7715,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Elimină" @@ -7715,7 +7775,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7749,11 +7809,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7765,7 +7825,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7798,7 +7858,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7881,7 +7941,7 @@ msgstr "Vibrație" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7893,18 +7953,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7913,11 +7981,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7991,7 +8059,7 @@ msgstr "Salvează cel mai Vechi Status" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8088,7 +8156,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8116,7 +8184,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8151,7 +8219,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Căutare Subdosare" @@ -8193,11 +8261,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Selectează" @@ -8210,15 +8278,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8290,7 +8358,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8306,17 +8374,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8340,7 +8412,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8348,11 +8420,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Selectează fișierul salvat" @@ -8445,7 +8517,7 @@ msgstr "" msgid "Send" msgstr "Trimite" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Poziția barei de senzor:" @@ -8514,14 +8586,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8828,7 +8900,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Chineză simplificată" @@ -8889,7 +8961,7 @@ msgstr "" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8897,7 +8969,7 @@ msgstr "" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8905,7 +8977,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8915,11 +8987,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8936,7 +9008,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8950,7 +9022,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spaniolă" @@ -8958,7 +9030,7 @@ msgstr "Spaniolă" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Volum Difuzor:" @@ -8983,7 +9055,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9048,8 +9120,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9104,7 +9176,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9270,12 +9342,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9368,6 +9440,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9381,7 +9459,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Limbă Sistem" @@ -9424,7 +9502,7 @@ msgstr "Realizează CapturăEcran" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -9479,7 +9557,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9507,7 +9585,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9543,7 +9621,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9555,11 +9633,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9583,7 +9661,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9594,21 +9672,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9675,7 +9753,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9686,7 +9764,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Rezultatul codului AR decriptat nu conține nici o linie." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9712,7 +9790,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9725,7 +9803,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9739,7 +9817,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9801,7 +9879,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9838,22 +9916,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9861,13 +9939,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9881,37 +9959,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9935,12 +10013,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9997,7 +10075,7 @@ msgstr "" msgid "Threshold" msgstr "Prag:" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10114,7 +10192,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Sus" @@ -10162,7 +10240,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Chineză tradițională" @@ -10185,7 +10263,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10200,8 +10278,8 @@ msgstr "Declanșatori" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tip:" @@ -10221,7 +10299,7 @@ msgstr "" msgid "USA" msgstr "SUA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10429,7 +10507,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10499,6 +10577,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10511,7 +10593,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10583,11 +10665,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10673,7 +10755,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10794,7 +10876,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10933,7 +11015,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10953,7 +11035,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Rădăcină NAND Wii:" @@ -10979,7 +11061,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11099,7 +11181,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11133,6 +11215,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11232,7 +11328,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11364,7 +11460,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11399,7 +11495,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 4ca210a8b6..20aa2fe94a 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -32,7 +32,7 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" "%100>=11 && n%100<=14)? 2 : 3);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -44,7 +44,7 @@ msgstr "" "Dolphin может обнаружить не все проблемы, т.к. в образах дисков GameCube " "содержится мало проверочных данных." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -80,7 +80,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Диск %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Не" @@ -89,22 +89,28 @@ msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" "\"{0}\" является некорректным файлом GCM/ISO, или не является образом GC/Wii." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Польз. переменная" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% По модулю" @@ -291,7 +297,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "Удалено адресов: %n." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& И" @@ -678,19 +684,19 @@ msgstr "(отключено)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Умножить" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Добавить" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Запятая" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Вычесть" @@ -705,7 +711,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Разделить" @@ -735,7 +741,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -809,7 +815,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Мбит (59 блоков)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -883,11 +889,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "Родное 8x (5120x4224) для 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Меньше чем" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<Ничего>" @@ -905,12 +911,12 @@ msgstr "" "вас запущена версия %2.
Хотите начать обновление?

Список " "изменений:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Больше чем" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Сессия сетевой игры уже создана!" @@ -938,7 +944,7 @@ msgstr "Диск уже должен быть вставлен." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "Чтобы загрузить быстрое сохранение, нужно указать игру." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -951,7 +957,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Синхронизация возможна только при запущенной игре для Wii." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -1011,6 +1017,11 @@ msgstr "Информация о Dolphin" msgid "Accelerometer" msgstr "Акселерометр" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Точность:" @@ -1177,8 +1188,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Добавить..." @@ -1268,7 +1279,7 @@ msgstr "" "глюки в играх. Используйте на свой страх и риск. Пожалуйста, не сообщайте об " "ошибках, возникших при использовании нестандартной частоты." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1299,7 +1310,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1307,7 +1318,7 @@ msgid "All Files" msgstr "Все файлы" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Все файлы (*)" @@ -1316,7 +1327,7 @@ msgstr "Все файлы (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Все файлы GC/Wii" @@ -1325,8 +1336,8 @@ msgstr "Все файлы GC/Wii" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Файлы быстрых сохранений (*.sav, *.s##);; Все файлы (*)" @@ -1362,7 +1373,7 @@ msgstr "Разрешить несовпадение настроек регио msgid "Allow Usage Statistics Reporting" msgstr "Разрешить отправку статистики об использовании" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Разрешить запись на SD-карту" @@ -1499,7 +1510,7 @@ msgid "Aspect Ratio" msgstr "Соотношение сторон" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Соотношение сторон:" @@ -1582,6 +1593,10 @@ msgstr "Автоскрытие" msgid "Auto-detect RSO modules?" msgstr "Обнаруживать RSO автоматически?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1597,7 +1612,7 @@ msgid "Auxiliary" msgstr "Вспомогательное" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "Б" @@ -1605,7 +1620,7 @@ msgstr "Б" msgid "BAT incorrect. Dolphin will now exit" msgstr "Некорректная BAT. Dolphin завершит работу" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1615,7 +1630,7 @@ msgstr "" "действительный MAC-адрес Nintendo GameCube. Сгенерируйте новый MAC-адрес, " "начиная с 00:09:bf или 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1646,10 +1661,11 @@ msgid "Backend:" msgstr "Бэкенд:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Ввод в фоне" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1731,15 +1747,15 @@ msgstr "Бета (раз в месяц)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows и т.д." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Бинарный SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Бинарный SSL (чтение)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Бинарный SSL (запись)" @@ -1758,7 +1774,7 @@ msgstr "Размер блока" msgid "Block Size:" msgstr "Размер блока:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Блокирующий" @@ -1791,11 +1807,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Пауза после запуска" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "Файл бэкапа NAND BootMii (*.bin);;Все файлы (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "Файл с ключами BootMii (*.bin);;Все файлы (*)" @@ -1803,7 +1819,7 @@ msgstr "Файл с ключами BootMii (*.bin);;Все файлы (*)" msgid "Borderless Fullscreen" msgstr "Полноэкранный режим без рамок" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "снизу" @@ -1834,19 +1850,27 @@ msgstr "Попадание в точку останова! Шаг с выход msgid "Breakpoints" msgstr "Точки останова" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Широкополосный адаптер (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Широкополосный адаптер (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Широкополосный адаптер (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Ошибка широкополосного адаптера" @@ -1989,7 +2013,7 @@ msgstr "" msgid "Callstack" msgstr "Стэк вызова" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Камера 1" @@ -2007,8 +2031,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Не удаётся найти Wii Remote по дескриптору {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Невозможно создать сессию сетевой игры, пока игра всё ещё запущена!" @@ -2139,7 +2163,7 @@ msgstr "Менеджер читов" msgid "Check NAND..." msgstr "Проверить NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Автоматически проверять список игр на наличие изменений" @@ -2163,11 +2187,11 @@ msgstr "Контр. сумма" msgid "China" msgstr "Китай" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Выберите открываемый файл" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2198,7 +2222,7 @@ msgid "Classic Controller" msgstr "Контроллер Classic" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2274,7 +2298,7 @@ msgstr "Сравнение:" msgid "Compile Shaders Before Starting" msgstr "Компилировать шейдеры перед запуском" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Компиляция шейдеров" @@ -2320,11 +2344,11 @@ msgstr "Настроить контроллер" msgid "Configure Dolphin" msgstr "Настройка Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Настройка ввода" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Настройка вывода" @@ -2333,8 +2357,8 @@ msgstr "Настройка вывода" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Подтвердить" @@ -2362,7 +2386,7 @@ msgstr "Подключиться" msgid "Connect Balance Board" msgstr "Подключить Balance Board" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Подключить USB-клавиатуру" @@ -2410,7 +2434,7 @@ msgstr "" msgid "Connection Type:" msgstr "Тип подключения:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Содержимое {0:08x} повреждено." @@ -2523,14 +2547,31 @@ msgstr "Сведение" msgid "Convergence:" msgstr "Сведение:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Конвертация" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Конвертировать файл..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Конвертировать выбранные файлы..." @@ -2648,7 +2689,7 @@ msgstr "" "Не удалось загрузить информацию об обновлениях от Nintendo. Проверьте " "подключение к интернету и повторите попытку." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2658,7 +2699,7 @@ msgstr "" "\n" "Эмулируемая консоль будет остановлена." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2964,7 +3005,7 @@ msgstr "Десятичный" msgid "Decoding Quality:" msgstr "Качество декодирования:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Уменьшить" @@ -2985,11 +3026,11 @@ msgstr "Уменьшить скорость эмуляции" msgid "Decrease IR" msgstr "Уменьшить внутреннее разрешение" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Уменьшить по X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Уменьшить по Y" @@ -3009,7 +3050,7 @@ msgstr "Устройство по умолчанию" msgid "Default Font" msgstr "Шрифт по умолчанию" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Образ по умолчанию:" @@ -3094,7 +3135,7 @@ msgstr "" msgid "Detached" msgstr "Отсоединён" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Считать" @@ -3140,7 +3181,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Затемняет экран после пяти минут бездействия." @@ -3289,7 +3330,7 @@ msgstr "Проходимое расстояние из исходной пози msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "Вы разрешаете отправку данной информации разработчикам Dolphin?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Вы хотите добавить \"%1\" в список путей к играм?" @@ -3303,7 +3344,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Вы хотите удалить выбранные файлы сохранений (%n шт.)?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Вы хотите остановить текущую эмуляцию?" @@ -3334,8 +3375,8 @@ msgstr "CSV-файл с сигнатурами Dolphin" msgid "Dolphin Signature File" msgstr "Файл с сигнатурами Dolphin" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "TAS-ролики (*.dtm)" @@ -3375,7 +3416,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Слишком старая версия Dolphin для подключения к промежуточному серверу" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3383,7 +3424,7 @@ msgstr "" "Dolphin не может корректно проверить обычные файлы TGC, потому что они не " "являются дампами настоящих дисков." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin не может проверить нелицензионные диски." @@ -3399,8 +3440,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "На данный момент поддержка читов в Dolphin отключена." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Домен" @@ -3423,7 +3464,7 @@ msgstr "Сжатие образа диска завершено." msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3475,7 +3516,7 @@ msgstr "Двухъядерный режим" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Заглушка" @@ -3515,6 +3556,10 @@ msgstr "Дампить конечный EFB" msgid "Dump Frames" msgstr "Дампить кадры" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Дампить Mip-текстуры" @@ -3523,7 +3568,7 @@ msgstr "Дампить Mip-текстуры" msgid "Dump Objects" msgstr "Дампить объекты" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Путь к дампам:" @@ -3572,11 +3617,11 @@ msgstr "" "

Если не уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3588,16 +3633,16 @@ msgstr "" "Дампить объекты в User/Dump/Objects/.

Если не " "уверены – оставьте выключенным." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Дампить сертификаты" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3639,7 +3684,7 @@ msgstr "Длительность отпускания турбо-кнопки ( #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Голландский" @@ -3702,7 +3747,7 @@ msgstr "Эффективное" msgid "Effective priority" msgstr "Эффективный приоритет" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "ЭиБ" @@ -3718,7 +3763,7 @@ msgstr "Встроенный буфер кадров (EFB)" msgid "Empty" msgstr "Пусто" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Процесс эмулятора уже запущен" @@ -3808,11 +3853,11 @@ msgid "Enable Progressive Scan" msgstr "Включить прогрессивную развёртку" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Включить вибрацию" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Включить скринсейвер" @@ -3979,7 +4024,7 @@ msgstr "Enet не был инициализирован" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Английский" @@ -3989,7 +4034,7 @@ msgstr "Английский" msgid "Enhancements" msgstr "Улучшения" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -4011,6 +4056,10 @@ msgstr "Введите новый MAC-адрес широкополосного msgid "Enter password" msgstr "Введите пароль" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Введите адрес модуля RSO:" @@ -4023,7 +4072,7 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4051,12 +4100,12 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4081,9 +4130,9 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Ошибка" @@ -4185,11 +4234,11 @@ msgstr "" "Ошибка: попытка получить доступ к шрифтам Windows-1252, когда они не " "загружены. Игры могут показывать шрифты некорректно или падать." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "В {0} блоках раздела {1} найдены ошибки." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "В {0} неиспользуемых блоках раздела {1} найдены ошибки." @@ -4383,7 +4432,7 @@ msgid "Extracting Directory..." msgstr "Извлечение папки..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "ФД" @@ -4412,7 +4461,7 @@ msgstr "Не удалось добавить сессию в индекс сет msgid "Failed to append to signature file '%1'" msgstr "Не удалось добавить данные в файл с сигнатурами '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4424,16 +4473,16 @@ msgstr "Не удалось подключиться к Redump.org" msgid "Failed to connect to server: %1" msgstr "Не удалось подключиться к серверу: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Не удалось создать D3D swap chain" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Не удалось создать контекст D3D12" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Не удалось создать глобальные ресурсы D3D12" @@ -4456,7 +4505,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Не удалось удалить выбранный файл." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Не удалось отключить драйвер ядра для проброса BT: {0}" @@ -4537,7 +4586,7 @@ msgstr "" "ваш NAND (Инструменты -> Управлять NAND -> Проверить NAND...), затем " "импортируйте файл сохранения ещё раз." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Не удалось инициализировать ядро" @@ -4548,8 +4597,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Не удалось инициализировать классы рендеринга" @@ -4562,7 +4611,7 @@ msgstr "Не удалось установить набор: %1" msgid "Failed to install this title to the NAND." msgstr "Не удалось установить этот продукт в NAND." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4600,12 +4649,12 @@ msgstr "" "установить пакет обновления KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Не удалось открыть '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Не удалось открыть Bluetooth-устройство: {0}" @@ -4635,7 +4684,7 @@ msgstr "" msgid "Failed to open file." msgstr "Не удалось открыть файл." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Не удалось открыть сервер" @@ -4818,7 +4867,7 @@ msgstr "" "Критическая рассинхронизация. Остановка воспроизведения. (Ошибка в " "PlayWiimote: {0} != {1}, байт {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Поле зрения" @@ -4984,7 +5033,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5044,7 +5093,7 @@ msgstr "" msgid "Format:" msgstr "Формат:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5138,7 +5187,7 @@ msgstr "" "href=\"https://wiki.dolphin-emu.org/index.php?title=Free_Look\">найти на " "этой странице." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Свободный обзор" @@ -5153,7 +5202,7 @@ msgstr "Вкл./выкл. свободный обзор" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Французский" @@ -5193,7 +5242,7 @@ msgstr "Вызывающие функции" msgid "Function calls" msgstr "Вызовы функции" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Функции" @@ -5213,7 +5262,7 @@ msgstr "Ядро GBA" msgid "GBA Port %1" msgstr "Порт GBA %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "Настройки GBA" @@ -5237,7 +5286,7 @@ msgstr "" msgid "GC Port %1" msgstr "Порт GC %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "Папка GCI" @@ -5262,7 +5311,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE равен {0} - должен быть не меньше 1024." @@ -5279,7 +5328,7 @@ msgstr "" "текстур.\n" "ГП: Ваша видеокарта поддерживает OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "ГП: ОШИБКА OGL: Ваша видеокарта поддерживает OpenGL 2.0?" @@ -5315,7 +5364,7 @@ msgstr "" "ГП: ОШИБКА OGL: Требуется GL_ARB_vertex_array_object.\n" "ГП: Ваша видеокарта поддерживает OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5333,7 +5382,7 @@ msgstr "" "ГП: Ваша видеокарта поддерживает OpenGL 3.0?\n" "ГП: Ваш драйвер поддерживает GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5350,11 +5399,11 @@ msgstr "Игра" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Картриджи от Game Boy Advance (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5374,7 +5423,7 @@ msgstr "Настройки игры" msgid "Game Details" msgstr "Информация об игре" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Папки с играми" @@ -5470,7 +5519,7 @@ msgid "GameCube Memory Cards" msgstr "Карты памяти GameCube" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "Карты памяти GameCube (*.raw *.gcp)" @@ -5525,7 +5574,7 @@ msgstr "Созданы имена символов из '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Немецкий" @@ -5533,11 +5582,11 @@ msgstr "Немецкий" msgid "Germany" msgstr "Германия" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "ГиБ" @@ -5739,7 +5788,7 @@ msgstr "Хост управляет вводом" msgid "Host with NetPlay" msgstr "Создать сетевую игру" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Имя хоста" @@ -5771,7 +5820,7 @@ msgstr "Гц" msgid "I am aware of the risks and want to continue" msgstr "Я предупрежден о рисках и хочу продолжить" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5813,7 +5862,7 @@ msgid "IR" msgstr "ИК" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Чувствительность ИК:" @@ -5990,11 +6039,11 @@ msgstr "Импорт файлов сохранений" msgid "Import Wii Save..." msgstr "Импортировать сохранение Wii..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Импортирование бэкапа NAND" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6029,7 +6078,7 @@ msgstr "" "сохранение.

Если не уверены – оставьте включенным." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Увеличить" @@ -6050,15 +6099,15 @@ msgstr "Увеличить скорость эмуляции" msgid "Increase IR" msgstr "Увеличить внутреннее разрешение" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Увеличить по X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Увеличить по Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -6066,6 +6115,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6105,7 +6161,7 @@ msgstr "" msgid "Insert &nop" msgstr "Вставить &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Вставить SD-карту" @@ -6293,7 +6349,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Итальянский" @@ -6388,7 +6444,7 @@ msgid "Japan" msgstr "Япония" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Японский" @@ -6426,7 +6482,7 @@ msgstr "Клавиатура" msgid "Keys" msgstr "Клавиши" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "КиБ" @@ -6439,7 +6495,7 @@ msgid "Korea" msgstr "Корея" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Корейский" @@ -6491,7 +6547,7 @@ msgstr "Задержка: ~40 мс" msgid "Latency: ~80 ms" msgstr "Задержка: ~80 мс" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6597,7 +6653,7 @@ msgstr "Загрузить главное меню GameCube" msgid "Load Last State" msgstr "Загрузить последнее сохранение" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Путь к загрузке:" @@ -6868,7 +6924,7 @@ msgstr "" msgid "Mapping" msgstr "Порты" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6889,7 +6945,7 @@ msgstr "Максимальный размер буфера изменён на % msgid "Maximum tilt angle." msgstr "Максимальный угол наклона." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Может привести к замедлению в меню Wii и некоторых играх." @@ -6906,7 +6962,7 @@ msgstr "Память" msgid "Memory Breakpoint" msgstr "Точка останова в памяти" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Карта памяти" @@ -6934,7 +6990,7 @@ msgstr "MemoryCard: вызвано чтение некорректного уч msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: вызвана запись в некорректный участок памяти ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6945,11 +7001,11 @@ msgstr "" "сохранения. Этот процесс необратим, поэтому рекомендуется иметь бэкапы обоих " "NAND. Вы уверены, что хотите продолжить?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "МиБ" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6959,7 +7015,7 @@ msgstr "Микрофон" msgid "Misc" msgstr "Разное" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Разное" @@ -7012,7 +7068,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Найдено модулей: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Моно" @@ -7054,7 +7110,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Перемещение" @@ -7070,6 +7126,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "&Нет для всех" @@ -7100,8 +7161,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7169,7 +7230,7 @@ msgstr "" msgid "Network" msgstr "Сеть" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Формат дампа сети:" @@ -7305,11 +7366,11 @@ msgstr "В файле M3U \"{0}\" не найдены пути" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Проблем не обнаружено." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7341,7 +7402,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Отсутствует" @@ -7403,7 +7464,7 @@ msgid "Notice" msgstr "Уведомление" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Пустой" @@ -7520,7 +7581,7 @@ msgstr "Открыть XML Riivolution..." msgid "Open Wii &Save Folder" msgstr "Открыть папку с &сохранениями Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Открыть папку с дампами" @@ -7548,7 +7609,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Операторы" @@ -7570,7 +7631,7 @@ msgstr "Оранжевая" msgid "Orbital" msgstr "По орбите" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7609,7 +7670,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7745,7 +7806,7 @@ msgstr "Физическое" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "ПиБ" @@ -7811,7 +7872,7 @@ msgstr "Направление" msgid "Port %1" msgstr "Порт %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7921,7 +7982,7 @@ msgstr "Частные и открытые" msgid "Problem" msgstr "Проблема" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7929,7 +7990,7 @@ msgstr "" "Обнаружены проблемы с высокой критичностью. Скорее всего, игра вообще не " "будет работать." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7937,7 +7998,7 @@ msgstr "" "Обнаружены проблемы с низкой критичностью. Вероятно, они не помешают запуску " "игры." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7967,7 +8028,7 @@ msgstr "Открытые" msgid "Purge Game List Cache" msgstr "Очистить кэш списка игр" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7995,7 +8056,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Вопрос" @@ -8036,7 +8097,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ образы GC/Wii (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Диапазон" @@ -8211,8 +8271,8 @@ msgstr "Напомнить позже" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Удалить" @@ -8276,7 +8336,7 @@ msgstr "Отчёт: GCIFolder пишет в невыделенный блок {0 msgid "Request to Join Your Party" msgstr "Запрос на присоединение к вашей группе" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8310,11 +8370,11 @@ msgstr "Сбросить промежуточный сервер на %1:%2" msgid "Reset Traversal Settings" msgstr "Сбросить настройки обхода" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Сбросить значения" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Сбросить поле" @@ -8326,7 +8386,7 @@ msgstr "Сбросить все сопряжения Wii Remote" msgid "Resource Pack Manager" msgstr "Менеджер наборов ресурсов" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Путь к наборам ресурсов:" @@ -8359,7 +8419,7 @@ msgstr "Ревизия" msgid "Revision: %1" msgstr "Ревизия: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8442,7 +8502,7 @@ msgstr "Вибрация" msgid "Run &To Here" msgstr "Запуск &до сюда" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Запускать ядра GBA в выделенных потоках" @@ -8454,18 +8514,26 @@ msgstr "Россия" msgid "SD Card" msgstr "SD-карты" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "Образ SD-карты (*.raw);;Все файлы (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "Путь к SD-карте:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8474,11 +8542,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "Контекст SSL" @@ -8552,7 +8620,7 @@ msgstr "Сохранить самое старое сохранение" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8653,7 +8721,7 @@ msgstr "" "перезаписаны.\n" "Перезаписать сейчас?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Сохранение в той же папке, где и образ" @@ -8683,7 +8751,7 @@ msgstr "" "Сохранённые сопряжения Wii Remote могут быть сброшены только при запущенной " "игре для Wii." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Сохранения:" @@ -8718,7 +8786,7 @@ msgstr "Найти адрес" msgid "Search Current Object" msgstr "Искать текущий объект" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Искать в подпапках" @@ -8764,11 +8832,11 @@ msgstr "" "Раздел, в котором содержится большинство настроек, связанных с ЦП и " "оборудованием." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Настройки безопасности" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Выбрать" @@ -8781,15 +8849,15 @@ msgstr "Выберите путь к дампам" msgid "Select Export Directory" msgstr "Выберите папку для экспорта" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Выбрать BIOS GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Выбрать образ игры GBA" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Выберите путь к файлам сохранений GBA" @@ -8861,7 +8929,7 @@ msgstr "Выбрать слот сохранения 8" msgid "Select State Slot 9" msgstr "Выбрать слот сохранения 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8877,17 +8945,21 @@ msgstr "Выберите папку" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Выберите файл" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Выберите игру" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Выберите образ SD-карты" @@ -8911,7 +8983,7 @@ msgstr "Выбрать e-карточки" msgid "Select the RSO module address:" msgstr "Выберите адрес модуля RSO:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8919,11 +8991,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Выберите файл с ключами (дамп OTP/SEEPROM)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Выберите файл сохранения" @@ -9047,7 +9119,7 @@ msgstr "" msgid "Send" msgstr "Отправить" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Месторасположение сенсора:" @@ -9120,7 +9192,7 @@ msgstr "Назначить адрес конца символа" msgid "Set symbol size (%1):" msgstr "Назначить размер символа (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9130,7 +9202,7 @@ msgstr "" "игр.\n" "Может не работать для некоторых игр." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Устанавливает язык системы для Wii." @@ -9452,7 +9524,7 @@ msgid "Signed Integer" msgstr "Знаковое целое" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Упрощ. китайский" @@ -9521,7 +9593,7 @@ msgstr "Ползунок" msgid "Slot A" msgstr "Слот A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Слот A:" @@ -9529,7 +9601,7 @@ msgstr "Слот A:" msgid "Slot B" msgstr "Слот B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Слот B:" @@ -9537,7 +9609,7 @@ msgstr "Слот B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Привязать положение стика к ближайшей восьмиугольной оси." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Таблица сокетов" @@ -9547,11 +9619,11 @@ msgstr "Таблица сокетов" msgid "Software Renderer" msgstr "Программный рендеринг" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Не удалось считать часть данных." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9572,7 +9644,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Сортировать по алфавиту" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Звук:" @@ -9586,7 +9658,7 @@ msgstr "Испания" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Испанский" @@ -9594,7 +9666,7 @@ msgstr "Испанский" msgid "Speaker Pan" msgstr "Баланс звука" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Громкость динамика:" @@ -9619,7 +9691,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9684,8 +9756,8 @@ msgstr "" msgid "Started game" msgstr "Игра начата" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9740,7 +9812,7 @@ msgstr "Шаг выполнен успешно!" msgid "Stepping" msgstr "Шаги" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Стерео" @@ -9916,12 +9988,12 @@ msgstr "Поддержка" msgid "Supported file formats" msgstr "Поддерживаемые форматы файлов" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Поддерживаются SD и SDHC. Размер по умолчанию: 128 Мбайт." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Объёмный" @@ -10020,6 +10092,12 @@ msgstr "" "Синхронизировать потоки ГП и ЦП для исправления случайных зависаний в " "двухядерном режиме. (ВКЛ = Совместимость, ВЫКЛ = Скорость)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Синхронизация AR-кодов..." @@ -10033,7 +10111,7 @@ msgid "Synchronizing save data..." msgstr "Синхронизация сохранений..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Язык системы:" @@ -10076,7 +10154,7 @@ msgstr "Сделать скриншот" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Проверить" @@ -10135,7 +10213,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND успешно исправлен." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10166,7 +10244,7 @@ msgid "" "size." msgstr "Размер данных для раздела {0} не делится без остатка на размер блока." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "Требуется добавить ключи дешифрования к файлу бэкапа NAND." @@ -10208,7 +10286,7 @@ msgstr "Эмулируемой консоли Wii не требуется обн #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -10220,11 +10298,11 @@ msgstr "Введён неверный PID." msgid "The entered VID is invalid." msgstr "Введён неверный VID." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "В выражении содержится синтаксическая ошибка." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10256,7 +10334,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Файл {0} уже открыт, нельзя записать заголовок." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10267,22 +10345,22 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Файловая система некорректна или не может быть прочитана." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Формат, в котором сохранён образ диска, не хранит в себе размер образа." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "Обнаружено несколько различных ID игры." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "ID игры необычно короткий." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "ID игры — {0}, но должен быть {1}." @@ -10357,7 +10435,7 @@ msgstr "Профиль '%1' не существует" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Записанная игра ({0}) не совпадает с выбранной игрой ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10371,7 +10449,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Полученный расшифрованный AR-код не содержит строк." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -10402,7 +10480,7 @@ msgstr "" "выберите \"Нет\"." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "Указанный общий ключевой индекс: {0}, а должен быть: {1}." @@ -10415,7 +10493,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "Выбранная карта памяти уже содержит файл \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Билет некорректно подписан." @@ -10431,7 +10509,7 @@ msgstr "" "Обновление было отменено. Настоятельно рекомендуется завершить его, чтобы " "избежать несогласованности версий системного ПО." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "В разделе с обновлением отсутствует IOS, используемая данным продуктом." @@ -10498,7 +10576,7 @@ msgstr "В этом Gecko-коде не содержится строк." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10537,17 +10615,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Это нельзя отменить!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Образ этого отладочного диска имеет тот же размер, что образ розничного " "диска." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Необычный размер образа диска." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10557,7 +10635,7 @@ msgstr "" "загрузки. Скорее всего, вы не сможете поделиться записями ввода и играть по " "сети с теми, кто использует хороший дамп." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10569,7 +10647,7 @@ msgstr "" "этого файла может соответствовать CRC32 хорошего дампа, даже если файлы не " "идентичны." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10578,7 +10656,7 @@ msgstr "" "помощи которой вы делали дамп, сохранила образ по частям, то вам необходимо " "объединить их в один файл." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10594,7 +10672,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Файл не является бэкапом BootMii NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10605,7 +10683,7 @@ msgstr "" "игровые режимы, может не работать. Эта проблема обычно существует только в " "нелегальных копиях игр." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10615,11 +10693,11 @@ msgstr "" "не поддерживается вашей видеокартой или её драйвером. Во время игры могут " "возникать ошибки и зависания." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Данный дамп — плохой." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10627,7 +10705,7 @@ msgstr "" "Данный дамп — плохой. Но это ещё не означает, что игра будет работать " "некорректно." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10635,7 +10713,7 @@ msgstr "" "Согласно Redump.org, данный дамп — хороший, но Dolphin обнаружил в нём " "проблемы. Возможно, это баг Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Данный дамп — хороший." @@ -10665,12 +10743,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Этот продукт нельзя загрузить." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Этот продукт настроен на использование некорректной IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Этот продукт настроен на использование некорректного общего ключа." @@ -10744,7 +10822,7 @@ msgstr "Потоки" msgid "Threshold" msgstr "Порог" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "ТиБ" @@ -10862,7 +10940,7 @@ msgstr "Ошибка токенизации." msgid "Toolbar" msgstr "Панель инструментов" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "сверху" @@ -10910,7 +10988,7 @@ msgid "Touch" msgstr "Тач-панель" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Традиц. китайский" @@ -10935,7 +11013,7 @@ msgstr "" "Пытается заранее преобразовывать ветки, что в большинстве случаев улучшает " "производительность. По умолчанию Да" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10950,8 +11028,8 @@ msgstr "Рычажки" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Тип" @@ -10971,7 +11049,7 @@ msgstr "НЕИЗВЕСТНО" msgid "USA" msgstr "США" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11207,7 +11285,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Беззнаковое целое" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11279,6 +11357,10 @@ msgstr "Wii Remote вертикально" msgid "Usage Statistics Reporting Settings" msgstr "Настройки отправки статистики об использовании" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Использовать встроенную базу названий игр" @@ -11291,7 +11373,7 @@ msgstr "Использовать свой стиль" msgid "Use Lossless Codec (FFV1)" msgstr "Использовать кодек без потерь (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Режим PAL60 (EuRGB60)" @@ -11365,11 +11447,11 @@ msgstr "Интерфейс пользователя" msgid "User Style:" msgstr "Свой стиль:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Польз. переменные" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11465,7 +11547,7 @@ msgstr "Проверка" msgid "Verify Integrity" msgstr "Проверить целостность" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Проверять сертификаты" @@ -11597,7 +11679,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (Эксклюзивный режим)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11792,7 +11874,7 @@ msgstr "" "

Если не уверены – оставьте включенным." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Белый список пробрасываемых USB-устройств" @@ -11812,7 +11894,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Меню Wii" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Корень NAND Wii:" @@ -11838,7 +11920,7 @@ msgstr "Кнопки Wii Remote" msgid "Wii Remote Orientation" msgstr "Ориентация Wii Remote" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Настройки контроллера Wii" @@ -11958,7 +12040,7 @@ msgstr "X" msgid "XF register " msgstr "XF-регистр " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11992,6 +12074,20 @@ msgstr "Да" msgid "Yes to &All" msgstr "Да для &всех" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12112,7 +12208,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] и [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Искл. или" @@ -12246,7 +12342,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -12284,7 +12380,7 @@ msgstr "{0} из {1} блоков. Процент сжатия: {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} - не папка, перемещено в *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Или" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index 099b2c40e6..b93dbef08a 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -60,22 +60,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -254,7 +260,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -641,19 +647,19 @@ msgstr "(iskljucen/o)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -668,7 +674,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -698,7 +704,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -772,7 +778,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -846,11 +852,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -865,12 +871,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -892,7 +898,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -903,7 +909,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -951,6 +957,11 @@ msgstr "O Dolphin-u" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "" @@ -1102,8 +1113,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Dodaj..." @@ -1174,7 +1185,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1205,7 +1216,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1213,7 +1224,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1231,8 +1242,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1268,7 +1279,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1401,7 +1412,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "" @@ -1478,6 +1489,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1490,7 +1505,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1498,14 +1513,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1536,10 +1551,11 @@ msgid "Backend:" msgstr "" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1621,15 +1637,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1648,7 +1664,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1679,11 +1695,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1691,7 +1707,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Donji deo/dno" @@ -1722,19 +1738,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1866,7 +1890,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1884,8 +1908,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2004,7 +2028,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2026,11 +2050,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Biraj fajl da otvoris " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2061,7 +2085,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2137,7 +2161,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2183,11 +2207,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2196,8 +2220,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2225,7 +2249,7 @@ msgstr "" msgid "Connect Balance Board" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "" @@ -2273,7 +2297,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2369,14 +2393,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2485,14 +2526,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2760,7 +2801,7 @@ msgstr "" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2781,11 +2822,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2805,7 +2846,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "" @@ -2884,7 +2925,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Detekuj" @@ -2930,7 +2971,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3054,7 +3095,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3068,7 +3109,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "" @@ -3099,8 +3140,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "" @@ -3137,13 +3178,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3157,8 +3198,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3181,7 +3222,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3233,7 +3274,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "" @@ -3273,6 +3314,10 @@ msgstr "" msgid "Dump Frames" msgstr "" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3281,7 +3326,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3323,11 +3368,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3337,16 +3382,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3379,7 +3424,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "" @@ -3435,7 +3480,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3451,7 +3496,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "" @@ -3538,11 +3583,11 @@ msgid "Enable Progressive Scan" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "" @@ -3662,7 +3707,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "" @@ -3672,7 +3717,7 @@ msgstr "" msgid "Enhancements" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3694,6 +3739,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3706,7 +3755,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3734,12 +3783,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3764,9 +3813,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Error" @@ -3861,11 +3910,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4059,7 +4108,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4086,7 +4135,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4098,16 +4147,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4128,7 +4177,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4198,7 +4247,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4209,8 +4258,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4223,7 +4272,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4257,12 +4306,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4288,7 +4337,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4457,7 +4506,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4611,7 +4660,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4659,7 +4708,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4749,7 +4798,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4764,7 +4813,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "" @@ -4804,7 +4853,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4824,7 +4873,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4848,7 +4897,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "" @@ -4873,7 +4922,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4887,7 +4936,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4915,7 +4964,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4928,7 +4977,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4943,11 +4992,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4965,7 +5014,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5059,7 +5108,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5114,7 +5163,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Nemacki " @@ -5122,11 +5171,11 @@ msgstr "Nemacki " msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5317,7 +5366,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5349,7 +5398,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5385,7 +5434,7 @@ msgid "IR" msgstr "" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "" @@ -5517,11 +5566,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5549,7 +5598,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5570,15 +5619,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5586,6 +5635,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5625,7 +5681,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "" @@ -5811,7 +5867,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italianski " @@ -5903,7 +5959,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japanski " @@ -5941,7 +5997,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5954,7 +6010,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korejski " @@ -6006,7 +6062,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6103,7 +6159,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6362,7 +6418,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6383,7 +6439,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6400,7 +6456,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "" @@ -6428,7 +6484,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6436,11 +6492,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6450,7 +6506,7 @@ msgstr "" msgid "Misc" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "" @@ -6490,7 +6546,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6532,7 +6588,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6548,6 +6604,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6578,8 +6639,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6645,7 +6706,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6781,11 +6842,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6811,7 +6872,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "" @@ -6867,7 +6928,7 @@ msgid "Notice" msgstr "" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6980,7 +7041,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7008,7 +7069,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7030,7 +7091,7 @@ msgstr "" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7069,7 +7130,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7205,7 +7266,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7271,7 +7332,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7372,19 +7433,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7412,7 +7473,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7439,7 +7500,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Pitanje " @@ -7480,7 +7541,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "" @@ -7646,8 +7706,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "" @@ -7706,7 +7766,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7740,11 +7800,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7756,7 +7816,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7789,7 +7849,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7872,7 +7932,7 @@ msgstr "" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7884,18 +7944,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7904,11 +7972,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7982,7 +8050,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8079,7 +8147,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8107,7 +8175,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8142,7 +8210,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Trazi Subfoldere " @@ -8184,11 +8252,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Izaberi " @@ -8201,15 +8269,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8281,7 +8349,7 @@ msgstr "" msgid "Select State Slot 9" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8297,17 +8365,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8331,7 +8403,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8339,11 +8411,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Izaberi \"snimani fajl/the save state\"" @@ -8436,7 +8508,7 @@ msgstr "" msgid "Send" msgstr "Isprati" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "" @@ -8505,14 +8577,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8819,7 +8891,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "" @@ -8880,7 +8952,7 @@ msgstr "" msgid "Slot A" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8888,7 +8960,7 @@ msgstr "" msgid "Slot B" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8896,7 +8968,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8906,11 +8978,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8927,7 +8999,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8941,7 +9013,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "" @@ -8949,7 +9021,7 @@ msgstr "" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "" @@ -8974,7 +9046,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9039,8 +9111,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9095,7 +9167,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9261,12 +9333,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9359,6 +9431,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9372,7 +9450,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "" @@ -9415,7 +9493,7 @@ msgstr "" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "" @@ -9470,7 +9548,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9498,7 +9576,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9534,7 +9612,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9546,11 +9624,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9574,7 +9652,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9585,21 +9663,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9666,7 +9744,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9677,7 +9755,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9703,7 +9781,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9716,7 +9794,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9730,7 +9808,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9790,7 +9868,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9825,22 +9903,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9848,13 +9926,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9868,37 +9946,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9922,12 +10000,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9984,7 +10062,7 @@ msgstr "" msgid "Threshold" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10101,7 +10179,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "" @@ -10149,7 +10227,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "" @@ -10172,7 +10250,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10187,8 +10265,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "" @@ -10208,7 +10286,7 @@ msgstr "" msgid "USA" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10416,7 +10494,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10486,6 +10564,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10498,7 +10580,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10570,11 +10652,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10660,7 +10742,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10781,7 +10863,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10920,7 +11002,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10940,7 +11022,7 @@ msgstr "" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "" @@ -10966,7 +11048,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11086,7 +11168,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11120,6 +11202,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11219,7 +11315,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11351,7 +11447,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11386,7 +11482,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index 52db4438ae..860595b6f3 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -38,7 +38,7 @@ msgstr "" "Eftersom GameCube-skivavbildningar inte innehåller mycket verifieringsdata " "kan det finnas problem som Dolphin inte kan upptäcka." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -74,7 +74,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (skiva %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! Icke" @@ -82,22 +82,28 @@ msgstr "! Icke" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "\"{0}\" är en ogiltig GCM/ISO-fil eller är inte en GC/Wii-fil." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ Användarvariabel" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% Modulo" @@ -284,7 +290,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n adress(er) togs bort." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Och" @@ -671,19 +677,19 @@ msgstr "(av)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* Multiplicera" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Addera" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", Komma" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- Subtrahera" @@ -698,7 +704,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ Dividera" @@ -728,7 +734,7 @@ msgstr "16-bitars signerat heltal" msgid "16-bit Unsigned Integer" msgstr "16-bitars osignerat heltal" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -802,7 +808,7 @@ msgstr "4 byte" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 block)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -876,11 +882,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x ursprunglig (5120x4224) för 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Mindre än" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -898,12 +904,12 @@ msgstr "" "för nedladdning. Du använder %2.
Vill du uppdatera?" "

Uppdateringsbeskrivning:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> Större än" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "En nätspelssession pågår redan!" @@ -932,7 +938,7 @@ msgstr "En skiva håller redan på att sättas in." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "En snabbsparning kan inte laddas utan att ange ett spel att starta." -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -946,7 +952,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Det går bara att synka när ett Wii-spel körs." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1007,6 +1013,11 @@ msgstr "Om Dolphin" msgid "Accelerometer" msgstr "Accelerometer" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Precision:" @@ -1174,8 +1185,8 @@ msgid "Add to watch" msgstr "Lägg till bevakning" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Lägg till..." @@ -1265,7 +1276,7 @@ msgstr "" "ändras från standardvärdet (100%). Använd på egen risk. Rapportera inte " "buggar som uppstår när klockfrekvensen inte är inställd på standard." -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1296,7 +1307,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1304,7 +1315,7 @@ msgid "All Files" msgstr "Alla filer" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Alla filer (*)" @@ -1313,7 +1324,7 @@ msgstr "Alla filer (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "Alla GC/Wii-filer" @@ -1322,8 +1333,8 @@ msgstr "Alla GC/Wii-filer" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "Alla snabbsparningar (*.sav *.s##);; Alla filer (*)" @@ -1359,7 +1370,7 @@ msgstr "Tillåt regionsinställningar som inte matchar" msgid "Allow Usage Statistics Reporting" msgstr "Tillåt rapportering av användningsstatistik" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "Tillåt ändringar på SD-kort" @@ -1496,7 +1507,7 @@ msgid "Aspect Ratio" msgstr "Bildförhållande" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "Bildförhållande:" @@ -1578,6 +1589,10 @@ msgstr "Dölj automatiskt" msgid "Auto-detect RSO modules?" msgstr "Upptäck RSO-moduler automatiskt?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1593,7 +1608,7 @@ msgid "Auxiliary" msgstr "ARAM" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1601,7 +1616,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT är inkorrekt. Dolphin kommer nu avslutas" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1611,7 +1626,7 @@ msgstr "" "MAC-adress måste användas. Generera en ny MAC-adress som börjar med 00:09:bf " "eller 00:17:ab." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1642,10 +1657,11 @@ msgid "Backend:" msgstr "Backend:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Bakgrundsindata" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1727,15 +1743,15 @@ msgstr "Beta (en gång i månaden)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy, DS4Windows, etc" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "Binär SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "Binär SSL (läs)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "Binär SSL (skriv)" @@ -1754,7 +1770,7 @@ msgstr "Blockstorlek" msgid "Block Size:" msgstr "Blockstorlek:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "Blockning" @@ -1787,11 +1803,11 @@ msgstr "" msgid "Boot to Pause" msgstr "Pausa vid start" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii-NAND-kopia (*bin);;Alla filer (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii-nyckelfil (*bin);;Alla filer (*)" @@ -1799,7 +1815,7 @@ msgstr "BootMii-nyckelfil (*bin);;Alla filer (*)" msgid "Borderless Fullscreen" msgstr "Kantlös helskärm" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Under" @@ -1830,19 +1846,27 @@ msgstr "Brytpunkt påträffades! Urstegning avbruten." msgid "Breakpoints" msgstr "Brytpunkter" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "Bredbandsadapter (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "Bredbandsadapter (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "Bredbandsadapter (tapserver)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "Fel i bredbandsadapter" @@ -1986,7 +2010,7 @@ msgstr "Anropa visningslista på adress %1 med storlek %2" msgid "Callstack" msgstr "Anropsstack" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "Kamera 1" @@ -2004,8 +2028,8 @@ msgstr "Det går bara att generera AR-koder för värden i virtuellt minne." msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "Kan inte hitta Wii-fjärrkontrollen med anslutnings-handle {0:02x}" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" "Det går inte att starta en nätspelssession medan ett spel fortfarande körs!" @@ -2138,7 +2162,7 @@ msgstr "Fuskhanterare" msgid "Check NAND..." msgstr "Kontrollera NAND-minne..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "Leta efter ändringar i spellistan i bakgrunden" @@ -2162,11 +2186,11 @@ msgstr "Kontrollsumma" msgid "China" msgstr "Kina" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Välj en fil att öppna" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2197,7 +2221,7 @@ msgid "Classic Controller" msgstr "Classic Controller" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2273,7 +2297,7 @@ msgstr "Jämförare:" msgid "Compile Shaders Before Starting" msgstr "Kompilera shaders före start" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "Kompilerar shaders" @@ -2319,11 +2343,11 @@ msgstr "Anpassa kontroll" msgid "Configure Dolphin" msgstr "Konfigurera Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "Konfigurera inmatning" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "Konfigurera utmatning" @@ -2332,8 +2356,8 @@ msgstr "Konfigurera utmatning" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "Bekräfta" @@ -2361,7 +2385,7 @@ msgstr "Anslut" msgid "Connect Balance Board" msgstr "Anslut balansbräda" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "Anslut USB-tangentbord" @@ -2409,7 +2433,7 @@ msgstr "Ansluter" msgid "Connection Type:" msgstr "Anslutningstyp:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "Innehåll {0:08x} är korrupt." @@ -2523,14 +2547,31 @@ msgstr "Konvergens" msgid "Convergence:" msgstr "Konvergens:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "Konvertera" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "Konvertera fil..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "Konvertera valda filer..." @@ -2648,7 +2689,7 @@ msgstr "" "Kunde inte ladda ner uppdateringsinformation från Nintendo. Kontrollera " "internetanslutningen och försök igen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2659,7 +2700,7 @@ msgstr "" "\n" "Emuleringen kommer nu avslutas." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2965,7 +3006,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "Dekodningskvalitet:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "Minska" @@ -2986,11 +3027,11 @@ msgstr "Minska emuleringshastighet" msgid "Decrease IR" msgstr "Sänk intern upplösning" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "Minska X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "Minska Y" @@ -3010,7 +3051,7 @@ msgstr "Standardenhet" msgid "Default Font" msgstr "Standardteckensnitt" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Standard-ISO:" @@ -3095,7 +3136,7 @@ msgstr "" msgid "Detached" msgstr "Frikopplad" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Sök" @@ -3141,7 +3182,7 @@ msgstr "%1 verkar inte vara en giltig Riivolution-XML-fil." msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Gör skärmen mörkare efter fem minuters inaktivitet." @@ -3288,7 +3329,7 @@ msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" "Godkänner du att Dolphin rapporterar information till Dolphins utvecklare?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "Vill du lägga till \"%1\" i listan av spelsökvägar?" @@ -3302,7 +3343,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "Vill du radera denna/dessa %n markerade sparfil(er)?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Vill du stoppa den aktuella emuleringen?" @@ -3333,8 +3374,8 @@ msgstr "Dolphin-signatur-CSV-fil" msgid "Dolphin Signature File" msgstr "Dolphin-signaturfil" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin-TAS-filmer (*.dtm)" @@ -3382,7 +3423,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Dolphin är för gammal för traverseringsservern" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3390,7 +3431,7 @@ msgstr "" "Dolphin kan inte verifiera typiska TGC-filer korrekt eftersom de inte är " "kopior av faktiska skivor." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan inte verifiera olicensierade skivor." @@ -3405,8 +3446,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphins fusksystem är avstängt just nu." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "Domän" @@ -3429,7 +3470,7 @@ msgstr "Skivavbildningen har komprimerats." msgid "Double" msgstr "Double" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3481,7 +3522,7 @@ msgstr "Dual Core" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Dummy" @@ -3521,6 +3562,10 @@ msgstr "Dumpa EFB-mål" msgid "Dump Frames" msgstr "Dumpa bildrutor" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "Dumpa mipmaps" @@ -3529,7 +3574,7 @@ msgstr "Dumpa mipmaps" msgid "Dump Objects" msgstr "Dumpa objekt" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Dump-sökväg:" @@ -3578,11 +3623,11 @@ msgstr "" "

Om du är osäker, lämna detta okryssat." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "Dumpa avkrypterade SSL-läsningar" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "Dumpa avkrypterade SSL-skrivningar" @@ -3594,16 +3639,16 @@ msgstr "" "Dumpar objekt till User/Dump/Objects/.

Om du är " "osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "Dumpalternativ" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "Dumpa peer-certifikat" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "Dumpa rot-CA-certifikat" @@ -3645,7 +3690,7 @@ msgstr "Varaktighet för turboknappsläppning (bildrutor):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Nederländska" @@ -3709,7 +3754,7 @@ msgstr "Effektiv" msgid "Effective priority" msgstr "Faktisk prioritet" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3725,7 +3770,7 @@ msgstr "Inbäddad bildrutebuffert (EFB)" msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emuleringstråd körs redan" @@ -3815,11 +3860,11 @@ msgid "Enable Progressive Scan" msgstr "Aktivera Progressive scan" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "Vibration" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Aktivera skärmsläckare" @@ -3982,7 +4027,7 @@ msgstr "Enet initialiserades inte" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "Engelska" @@ -3992,7 +4037,7 @@ msgstr "Engelska" msgid "Enhancements" msgstr "Förbättringar" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "Ange IP-adress för enheten som kör XLink Kai-klienten:" @@ -4014,6 +4059,10 @@ msgstr "Ange ny MAC-adress för bredbandsadaptern:" msgid "Enter password" msgstr "Ange lösenord" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "Ange RSO-moduladressen:" @@ -4026,7 +4075,7 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -4054,12 +4103,12 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -4084,9 +4133,9 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Fel" @@ -4189,11 +4238,11 @@ msgstr "" "Fel: Försöker att komma åt Windows-1252-teckensnitt men de är inte inlästa. " "Spel kanske inte visar typsnitt korrekt, eller kraschar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Fel hittades i {0} block i {1}-partitionen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Fel hittades i {0} oanvända block i {1}-partitionen." @@ -4387,7 +4436,7 @@ msgid "Extracting Directory..." msgstr "Extraherar katalog..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "FD" @@ -4416,7 +4465,7 @@ msgstr "Misslyckades att lägga till denna session i nätspelsindex: %1" msgid "Failed to append to signature file '%1'" msgstr "Misslyckades att lägga till i signaturfilen \"%1\"" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4428,16 +4477,16 @@ msgstr "Misslyckades att ansluta till Redump.org" msgid "Failed to connect to server: %1" msgstr "Misslyckades att ansluta till server: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "Misslyckades att skapa D3D-swapchain" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "Misslyckades att skapa D3D12-kontext" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "Misslyckades att skapa globala resurser för D3D12" @@ -4462,7 +4511,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "Misslyckades att radera den valda filen." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "Misslyckades att koppla loss kärnans drivrutin för BT-genomsläpp: {0}" @@ -4543,7 +4592,7 @@ msgstr "" "minnet (Verktyg -> Hantera NAND -> Kontrollera NAND-minne...) och importera " "sedan sparfilen igen." -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "Misslyckades att initialisera kärnan" @@ -4557,8 +4606,8 @@ msgstr "" "Kontrollera att ditt grafikkort stödjer minst D3D 10.0\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "Misslyckades att initialisera renderarklasser" @@ -4571,7 +4620,7 @@ msgstr "Misslyckades att installera paket: %1" msgid "Failed to install this title to the NAND." msgstr "Misslyckades att installera denna titel till NAND-minnet." -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4607,12 +4656,12 @@ msgstr "" "uppdateringspaketet KB4019990." #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "Misslyckades att öppna '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "Misslyckades att öppna Bluetooth-enhet: {0}" @@ -4640,7 +4689,7 @@ msgstr "" msgid "Failed to open file." msgstr "Kunde inte öppna fil." -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "Misslyckades att öppna servern" @@ -4825,7 +4874,7 @@ msgstr "" "Allvarlig desynkronisering. Avbryter uppspelning. (Fel i PlayWiimote: {0} != " "{1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "Synfält" @@ -4989,7 +5038,7 @@ msgstr "" "För instruktioner, se den här sidan." -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -5049,7 +5098,7 @@ msgstr "" msgid "Format:" msgstr "Format:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5143,7 +5192,7 @@ msgstr "" "instruktioner, se den här sidan." -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "Fri vy" @@ -5158,7 +5207,7 @@ msgstr "Fri kamera - Slå på/av" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Franska" @@ -5198,7 +5247,7 @@ msgstr "Funktionsanropare" msgid "Function calls" msgstr "Funktionsanrop" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funktioner" @@ -5218,7 +5267,7 @@ msgstr "GBA-kärna" msgid "GBA Port %1" msgstr "GBA i uttag %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "GBA-inställningar" @@ -5242,7 +5291,7 @@ msgstr "GBA%1:s ROM borttagen" msgid "GC Port %1" msgstr "GC-uttag %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI-mapp" @@ -5277,7 +5326,7 @@ msgstr "" "Vidare fel kommer att skickas till videobackendens logg, och Dolphin kommer " "nu troligen krascha eller låsa sig. Mycket nöje." -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_MAX_TEXTURE_SIZE är {0} - måste vara minst 1024." @@ -5293,7 +5342,7 @@ msgstr "" "GPU: FEL: Behöver GL_ARB_framebuffer_object för multipla render targets.\n" "GPU: Stöder ditt grafikkort OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL-FEL: Stöder ditt grafikkort OpenGL 2.0?" @@ -5329,7 +5378,7 @@ msgstr "" "GPU: OGL-FEL: Behöver GL_ARB_vertex_array_object.\n" "GPU: Stöder ditt grafikkort OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5347,7 +5396,7 @@ msgstr "" "GPU: Stöder ditt grafikkort OpenGL 3.0?\n" "GPU: Din drivrutin stöder GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5364,11 +5413,11 @@ msgstr "Spel" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance-kassetter (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5388,7 +5437,7 @@ msgstr "Spelkonfiguration" msgid "Game Details" msgstr "Speldetaljer" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Spelmappar" @@ -5484,7 +5533,7 @@ msgid "GameCube Memory Cards" msgstr "GameCude-minneskort" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube-minneskort (*.raw *.gcp)" @@ -5539,7 +5588,7 @@ msgstr "Genererade symbolnamn från '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Tyska" @@ -5547,11 +5596,11 @@ msgstr "Tyska" msgid "Germany" msgstr "Tyskland" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "GetDeviceList misslyckades: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5752,7 +5801,7 @@ msgstr "Värdauktoritet för indata påslaget" msgid "Host with NetPlay" msgstr "Starta nätspel som värd" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "Värdnamn" @@ -5784,7 +5833,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Jag är medveten om riskerna och vill fortsätta" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5826,7 +5875,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR-känslighet:" @@ -6014,11 +6063,11 @@ msgstr "Importera sparfil(er)" msgid "Import Wii Save..." msgstr "Importera Wii-sparning…" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "Importerar NAND-kopia" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -6053,7 +6102,7 @@ msgstr "" "tar längre tid att ladda/spara.

Om du är osäker kan " "du lämna detta markerat." -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "Öka" @@ -6074,15 +6123,15 @@ msgstr "Öka emuleringshastighet" msgid "Increase IR" msgstr "Öka intern upplösning" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "Öka X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "Öka Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "Inkrementell rotation" @@ -6090,6 +6139,13 @@ msgstr "Inkrementell rotation" msgid "Incremental Rotation (rad/sec)" msgstr "Inkrementell rotation (rad/sek)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -6129,7 +6185,7 @@ msgstr "Inmatningsstyrka att ignorera samt skala med." msgid "Insert &nop" msgstr "Sätt in &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "Sätt in SD-kort" @@ -6317,7 +6373,7 @@ msgstr "Ogiltig bevakningsadress: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italienska" @@ -6412,7 +6468,7 @@ msgid "Japan" msgstr "Japan" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japanska" @@ -6450,7 +6506,7 @@ msgstr "Tangentbord" msgid "Keys" msgstr "Tangenter" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6463,7 +6519,7 @@ msgid "Korea" msgstr "Korea" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Koreanska" @@ -6515,7 +6571,7 @@ msgstr "Latens: ~40 ms" msgid "Latency: ~80 ms" msgstr "Latens: ~80 ms" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6621,7 +6677,7 @@ msgstr "Ladda GameCube-huvudmeny" msgid "Load Last State" msgstr "Läs in senaste snabbsparning" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Laddningssökväg:" @@ -6892,7 +6948,7 @@ msgstr "Manuell textursampling" msgid "Mapping" msgstr "Mappning" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "Mask-ROM" @@ -6913,7 +6969,7 @@ msgstr "Buffertstorleken ändrades till %1" msgid "Maximum tilt angle." msgstr "Maximal lutningsvinkel." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Kan leda till prestandaproblem i Wii-menyn och vissa spel." @@ -6930,7 +6986,7 @@ msgstr "Minne" msgid "Memory Breakpoint" msgstr "Minnesbrytpunkt" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Minneskort" @@ -6958,7 +7014,7 @@ msgstr "MemoryCard: Read anropades med ogiltig källadress ({0:#x})" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: Write anropades med ogiltig destinationsadress ({0:#x})" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6970,11 +7026,11 @@ msgstr "" "rekommenderas att du har säkerhetskopior av båda NAND-minnena. Är du säker " "på att du vill fortsätta?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6984,7 +7040,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Övrigt" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Övriga inställningar" @@ -7036,7 +7092,7 @@ msgstr "" msgid "Modules found: %1" msgstr "Moduler hittade: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "Mono" @@ -7078,7 +7134,7 @@ msgstr "Muspekaren syns alltid." msgid "Mouse Cursor will never be visible while a game is running." msgstr "Muspekaren syns aldrig medan ett spel körs." -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "Flytta" @@ -7094,6 +7150,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "N&ej till alla" @@ -7124,8 +7185,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7191,7 +7252,7 @@ msgstr "Nätspelet har desynkroniserats. Det går inte att göra något åt dett msgid "Network" msgstr "Nätverk" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "Format för nätverksdumpning:" @@ -7327,11 +7388,11 @@ msgstr "Inga sökvägar hittades i M3U-filen \"{0}\"" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "Inga problem hittades." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7362,7 +7423,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Ingen" @@ -7423,7 +7484,7 @@ msgid "Notice" msgstr "Meddelande" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "Null" @@ -7540,7 +7601,7 @@ msgstr "Öppna Riivolution-XML..." msgid "Open Wii &Save Folder" msgstr "Öppna &sparningsmappen för Wii" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "Öppna dumpningsmap" @@ -7568,7 +7629,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "Operatörer" @@ -7590,7 +7651,7 @@ msgstr "Orange" msgid "Orbital" msgstr "Omloppsbana" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7629,7 +7690,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP" @@ -7765,7 +7826,7 @@ msgstr "Fysisk" msgid "Physical address space" msgstr "Fysiskt adressutrymme" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7833,7 +7894,7 @@ msgstr "Pekning" msgid "Port %1" msgstr "Uttag %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "ROM i uttag %1:" @@ -7943,7 +8004,7 @@ msgstr "Privat och offentlig" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7951,7 +8012,7 @@ msgstr "" "Mycket allvarliga problem har påträffats. Spelet kommer mycket troligt inte " "fungera alls." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7959,7 +8020,7 @@ msgstr "" "Smärre problem har påträffats. De kommer förmodligen inte förhindra spelet " "från att köras." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7989,7 +8050,7 @@ msgstr "Offentlig" msgid "Purge Game List Cache" msgstr "Töm cache för spellista" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "Lägg IPL-ROM-filer i User/GC/." @@ -8017,7 +8078,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Fråga" @@ -8058,7 +8119,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ-GC/Wii-skivavbildningar (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Räckvidd" @@ -8230,8 +8290,8 @@ msgstr "Påminn mig senare" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Ta bort" @@ -8295,7 +8355,7 @@ msgstr "Rapport: GCIFolder skriver till oallokerat block {0:#x}" msgid "Request to Join Your Party" msgstr "Förfrågan att vara med i din grupp" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8329,11 +8389,11 @@ msgstr "Återställ traverseringsserver till %1:%2" msgid "Reset Traversal Settings" msgstr "Återställ traverseringsinställningar" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "Återställ värden" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "Återställ vy" @@ -8345,7 +8405,7 @@ msgstr "Nollställ alla sparade Wii-fjärrkontrollparningar" msgid "Resource Pack Manager" msgstr "Resurspaketshanterare" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "Resurspaketssökväg:" @@ -8378,7 +8438,7 @@ msgstr "Revision" msgid "Revision: %1" msgstr "Revision: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8461,7 +8521,7 @@ msgstr "Vibration" msgid "Run &To Here" msgstr "Kör &hit" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "Kör GBA-kärnor i dedikerade trådar" @@ -8473,18 +8533,26 @@ msgstr "Ryssland" msgid "SD Card" msgstr "SD-kort" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD-kortsavbildning (*.raw);;Alla filer (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD-kortssökväg:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD-rot:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "SELECT" @@ -8493,11 +8561,11 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL-kontext" @@ -8571,7 +8639,7 @@ msgstr "Spara äldsta snabbsparning" msgid "Save Preset" msgstr "Spara förinställningar" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "Spara inspelning som" @@ -8671,7 +8739,7 @@ msgstr "" "en säkerhetskopia på de nuvarande sparfilerna före du skriver över.\n" "Vill du skriva över nu?" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "Spara i samma katalog som ROM-filen" @@ -8701,7 +8769,7 @@ msgstr "" "Sparade Wii-fjärrkontrollparningar kan bara nollställas när ett Wii-spel " "körs." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "Sparfiler:" @@ -8736,7 +8804,7 @@ msgstr "Sök adress" msgid "Search Current Object" msgstr "Sök aktuellt objekt" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Sök undermappar" @@ -8780,11 +8848,11 @@ msgstr "Avsnitt som innehåller alla grafikinställningar." msgid "Section that contains most CPU and Hardware related settings." msgstr "Avsnitt som innehåller de flesta CPU- och hårdvaruinställningarna." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "Säkerhetsalternativ" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Välj" @@ -8797,15 +8865,15 @@ msgstr "Välj dump-sökväg:" msgid "Select Export Directory" msgstr "Välj exporteringskatalog" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "Välj GBA-BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "Välj GBA-ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "Välj GBA-sparfilssökväg" @@ -8877,7 +8945,7 @@ msgstr "Välj snabbsparningsplats 8" msgid "Select State Slot 9" msgstr "Välj snabbsparningsplats 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "Välj WFS-sökväg" @@ -8893,17 +8961,21 @@ msgstr "Välj en mapp" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Välj en fil" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Välj ett spel" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Välj en SD-kortsavbildning" @@ -8927,7 +8999,7 @@ msgstr "Välj e-Readerkort" msgid "Select the RSO module address:" msgstr "Välj RSO-modulens adress:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "Välj inspelning att spela upp" @@ -8935,11 +9007,11 @@ msgstr "Välj inspelning att spela upp" msgid "Select the Virtual SD Card Root" msgstr "Välj rot för virtuellt SD-kort" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "Välj nyckelfil (OTP/SEEPROM-kopia)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Välj sparningsfilen" @@ -9064,7 +9136,7 @@ msgstr "" msgid "Send" msgstr "Skicka" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Position för Sensor Bar:" @@ -9137,7 +9209,7 @@ msgstr "Ställ in slutadress för symbol" msgid "Set symbol size (%1):" msgstr "Ange storlek för symbol (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -9146,7 +9218,7 @@ msgstr "" "Sätter Wii-bildläget till 60Hz (480i) istället för 50Hz (576i) för PAL-spel. " "Vissa spel stöder inte detta." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Ställer in Wii-systemspråk." @@ -9472,7 +9544,7 @@ msgid "Signed Integer" msgstr "Signed int" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Förenklad kinesiska" @@ -9541,7 +9613,7 @@ msgstr "Slider Bar" msgid "Slot A" msgstr "Plats A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Plats A:" @@ -9549,7 +9621,7 @@ msgstr "Plats A:" msgid "Slot B" msgstr "Plats B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Plats B:" @@ -9557,7 +9629,7 @@ msgstr "Plats B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "Avrundar spakens position till den närmsta åttahörningsaxeln." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "Sockettabell" @@ -9567,11 +9639,11 @@ msgstr "Sockettabell" msgid "Software Renderer" msgstr "Programvarurenderare" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "Viss data kunde inte läsas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9592,7 +9664,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Sortera alfabetiskt" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Ljud:" @@ -9606,7 +9678,7 @@ msgstr "Spanien" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spanska" @@ -9614,7 +9686,7 @@ msgstr "Spanska" msgid "Speaker Pan" msgstr "Högtalarpanorering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Högtalarvolym:" @@ -9648,7 +9720,7 @@ msgstr "" "snabbare.

Om du är osäker kan du använda nivå 6." -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9713,8 +9785,8 @@ msgstr "Starta med Riivolution-moddar..." msgid "Started game" msgstr "Startade spelet" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9769,7 +9841,7 @@ msgstr "Stegning lyckades!" msgid "Stepping" msgstr "Stega" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "Stereo" @@ -9945,12 +10017,12 @@ msgstr "Support" msgid "Supported file formats" msgstr "Filformat som stöds" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "Stöder SD och SDHC. Standardstorleken är 128 MB." #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "Surround" @@ -10049,6 +10121,12 @@ msgstr "" "slumpartade frysningar när läget \"Dubbla kärnor\" används. (PÅ = " "kompatibel, AV = snabb)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "Synkroniserar AR-koder..." @@ -10062,7 +10140,7 @@ msgid "Synchronizing save data..." msgstr "Synkroniserar spardata..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Systemspråk:" @@ -10105,7 +10183,7 @@ msgstr "Ta en skärmdump" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Test" @@ -10165,7 +10243,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND-minnet har reparerats." -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10200,7 +10278,7 @@ msgid "" msgstr "" "Datastorleken för {0}-partitionen är inte jämnt delbar med blockstorleken." -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "Avkrypteringsnycklarna måste bifogas till NAND-säkerhetskopian." @@ -10242,7 +10320,7 @@ msgstr "Den emulerade Wii-konsolen har redan den nyaste systemmjukvaran." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "Den angivna MAC-adressen är ogiltig." @@ -10254,11 +10332,11 @@ msgstr "Det angivna PID:t är ogiltigt." msgid "The entered VID is invalid." msgstr "Det angivna VID:t är ogiltigt." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "Uttrycket innehåller ett syntaxfel." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10290,7 +10368,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "Filen {0} var redan öppen. Filheadern kommer inte att skrivas." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -10301,7 +10379,7 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet är ogiltigt eller kunde inte läsas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10309,15 +10387,15 @@ msgstr "" "Formatet som skivavbildningen är sparad i lagrar inte skivavbildningens " "storlek." -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "Spel-ID:t är inkonsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "Spel-ID:t är ovanligt kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "Spel-ID:t är {0} men borde vara {1}." @@ -10398,7 +10476,7 @@ msgstr "Profilen '%1' finns inte" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Det inspelade spelet ({0}) är inte samma som det valda spelet ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10412,7 +10490,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Den resulterande dekrypterade AR-koden innehåller inga rader." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "Samma fil för inte användas på flera platser; den används redan av %1." @@ -10443,7 +10521,7 @@ msgstr "" "välja 'Nej'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" "Det specificerade indexet för gemensam nyckel är {0} men borde vara {1}." @@ -10457,7 +10535,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "Destinationsminneskortet innehåller redan en fil med namnet \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "Ticket-datan är inte korrekt signerad." @@ -10473,7 +10551,7 @@ msgstr "" "Uppdateringen har avbrutits. Det rekommenderas starkt att du slutför den så " "att det inte finns inkonsistenta versioner av systemmjukvara." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Uppdateringspartitionen innehåller inte det IOS som används av den här " @@ -10541,7 +10619,7 @@ msgstr "Den här Gecko-koden innehåller inga rader." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10580,17 +10658,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Det går inte att ångra detta!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Denna skivavbildning av en utvecklarskiva har samma storlek som en " "skivavbildning av en vanlig skiva." -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "Denna skivavbildning har en ovanlig storlek." -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10601,7 +10679,7 @@ msgstr "" "indatainspelningar och använda nätspel med någon som använder en korrekt " "skivavbildning." -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10614,7 +10692,7 @@ msgstr "" "matchar CRC32-kontrollsumman av en korrekt skivavbildning trots att filerna " "inte är identiska." -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10623,7 +10701,7 @@ msgstr "" "dumpningsprogram sparade skivavbildningen som flera delar måste du " "sammanfoga dem till en enda fil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10640,7 +10718,7 @@ msgstr "Den här filen innehåller inte ett giltigt Wii-filsystem." msgid "This file does not look like a BootMii NAND backup." msgstr "Filen verkar inte vara en BootMii-NAND-kopia." -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10651,7 +10729,7 @@ msgstr "" "kommer vara trasiga. Det här problemet finns generellt sett bara i " "piratkopior av spel." -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10661,11 +10739,11 @@ msgstr "" "grafikkort eller dess drivrutiner stöder inte det. På grund av detta kommer " "spelet vara buggigt eller frysa." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "Detta är en inkorrekt kopia." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10673,7 +10751,7 @@ msgstr "" "Detta är en inkorrekt kopia. Det betyder inte nödvändigtvis att spelet inte " "kommer fungera rätt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10681,7 +10759,7 @@ msgstr "" "Detta är en korrekt kopia enligt Redump.org, men Dolphin har hittat problem. " "Detta skulle kunna vara en bugg i Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "Detta är en korrekt kopia." @@ -10710,12 +10788,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "Denna titel kan inte startas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "Denna titel är inställd på att använda ett ogiltigt IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "Denna titel är inställd på att använda en ogiltig gemensam nyckel." @@ -10790,7 +10868,7 @@ msgstr "Trådar" msgid "Threshold" msgstr "Tröskel" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10909,7 +10987,7 @@ msgstr "Tokenisering misslyckades." msgid "Toolbar" msgstr "Verktygsfält" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Ovan" @@ -10957,7 +11035,7 @@ msgid "Touch" msgstr "Beröring" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Traditionell kinesiska" @@ -10982,7 +11060,7 @@ msgstr "" "Försöker översätta grenar i förtid, vilket förbättrar prestanda i de flesta " "fall. Förvalet är Sant" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Triforce AM Baseboard" @@ -10997,8 +11075,8 @@ msgstr "Avtryckare" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Typ" @@ -11018,7 +11096,7 @@ msgstr "OKÄND" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -11256,7 +11334,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "Unsigned int" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11328,6 +11406,10 @@ msgstr "Stående Wii-fjärrkontroll" msgid "Usage Statistics Reporting Settings" msgstr "Statistikrapporteringsinställningar" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "Använd inbyggd databas för spelnamn" @@ -11340,7 +11422,7 @@ msgstr "Använd anpassad användarstil" msgid "Use Lossless Codec (FFV1)" msgstr "Använd förlustfritt kodek (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "Använd PAL60-läge (EuRGB60)" @@ -11426,11 +11508,11 @@ msgstr "Användargränssnitt" msgid "User Style:" msgstr "Användarstil:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "Användarvariabler" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11529,7 +11611,7 @@ msgstr "Verifiera" msgid "Verify Integrity" msgstr "Verifiera integritet" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "Verifiera certifikat" @@ -11659,7 +11741,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (exklusivt läge)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "WFS-sökväg:" @@ -11856,7 +11938,7 @@ msgstr "" "

Om du är osäker kan du lämna detta markerat." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Enheter som används med USB-genomsläppning" @@ -11876,7 +11958,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii Menu" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii-NAND-rot:" @@ -11902,7 +11984,7 @@ msgstr "Wii-fjärrkontrollknappar" msgid "Wii Remote Orientation" msgstr "Wii-fjärrkontrollorientering" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii-fjärrkontrollinställningar" @@ -12024,7 +12106,7 @@ msgstr "X" msgid "XF register " msgstr "XF-register " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "XLink Kai BBA-destinationsadress" @@ -12058,6 +12140,20 @@ msgstr "Ja" msgid "Yes to &All" msgstr "Ja till &alla" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -12196,7 +12292,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] och [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ Exklusiv eller" @@ -12330,7 +12426,7 @@ msgstr "ej justerat" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -12369,7 +12465,7 @@ msgstr "{0} av {1} block. Komprimeringsgrad {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} var inte en mapp. Den har flyttats till *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| Eller" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 96344d2f54..5448aaea7a 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -28,7 +28,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -40,7 +40,7 @@ msgstr "" "GameCube disk kalıpları çok az doğrulama verisi içerdiğinden, Dolphin'in " "tespit edemediği sorunlar olabilir." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -76,7 +76,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (Disk %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -84,22 +84,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -280,7 +286,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& Ve" @@ -667,19 +673,19 @@ msgstr "(kapalı)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ Ekle" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -694,7 +700,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -724,7 +730,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -798,7 +804,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 blok)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -872,11 +878,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "Orijinalin 8 katı (5120x4224) - 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< Daha az" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -894,12 +900,12 @@ msgstr "" "%2 sürümü bulunuyor.
Yükseltmek ister misiniz?

Bu güncelemeyle " "birlikte gelen yenilikler:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "Şu anda zaten bir NetPlay oturumu çalışmakta!" @@ -928,7 +934,7 @@ msgstr "Zaten bir diskin yerleştirilme işlemi sürüyor." msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -941,7 +947,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "Senkronizasyon, ancak bir Wii oyunu çalışırken yapılabilir." #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -989,6 +995,11 @@ msgstr "Dolphin Hakkında" msgid "Accelerometer" msgstr "İvmeölçer" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "Doğruluk:" @@ -1140,8 +1151,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "Ekle..." @@ -1212,7 +1223,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "Advance Game Port" @@ -1243,7 +1254,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1251,7 +1262,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "Tüm Dosyalar (*)" @@ -1260,7 +1271,7 @@ msgstr "Tüm Dosyalar (*)" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1269,8 +1280,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1306,7 +1317,7 @@ msgstr "Uyumsuz Bölge Ayarlarına İzin Ver" msgid "Allow Usage Statistics Reporting" msgstr "Kullanım İstatistikleri Raporlamasına İzin Ver" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "SD Karta Yazmaya İzin Ver" @@ -1439,7 +1450,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "En-Boy Oranı:" @@ -1516,6 +1527,10 @@ msgstr "Otomatik Gizle" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1528,7 +1543,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1536,14 +1551,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT Yanlış. Dolphin kapatılacak" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1574,10 +1589,11 @@ msgid "Backend:" msgstr "Çözücü:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "Arkaplan Girişi" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1659,15 +1675,15 @@ msgstr "Beta (ayda bir kere)" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1686,7 +1702,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1719,11 +1735,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1731,7 +1747,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "Çerçevesiz Tam Ekran" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "Alt" @@ -1762,19 +1778,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1906,7 +1930,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1924,8 +1948,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2045,7 +2069,7 @@ msgstr "Hile Yöneticisi" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2067,11 +2091,11 @@ msgstr "" msgid "China" msgstr "Çin" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "Açmak için bir dosya seçin" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2102,7 +2126,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2178,7 +2202,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2224,11 +2248,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "Dolphin'i Yapılandır" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "" @@ -2237,8 +2261,8 @@ msgstr "" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "" @@ -2266,7 +2290,7 @@ msgstr "Bağlan" msgid "Connect Balance Board" msgstr "Balance Board Bağla" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "USB Klavye Bağla" @@ -2316,7 +2340,7 @@ msgstr "" msgid "Connection Type:" msgstr "Bağlantı Tipi:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2412,14 +2436,31 @@ msgstr "" msgid "Convergence:" msgstr "Yakınsama:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2532,14 +2573,14 @@ msgstr "" "Nintendo platformundan güncelleme bilgileri indirilemedi. Lütfen internet " "bağlantınızı kontrol edin ve tekrar deneyin." -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2811,7 +2852,7 @@ msgstr "Onluk taban" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2832,11 +2873,11 @@ msgstr "Emülasyon Hızını Düşür" msgid "Decrease IR" msgstr "IR'yi Azalt" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2856,7 +2897,7 @@ msgstr "Varsayılan Cihaz" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "Varsayılan ISO:" @@ -2935,7 +2976,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "Belirle" @@ -2981,7 +3022,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "Beş dakika boyunca hareketsiz kalınırsa ekranı karartır." @@ -3105,7 +3146,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3119,7 +3160,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "Emülasyonu durdurmak istiyor musunuz?" @@ -3150,8 +3191,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS Filmleri (*.dtm)" @@ -3190,13 +3231,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Dolphin geçiş sunucusu için çok eski" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3210,8 +3251,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphin'in hile sistemi şu anda devre dışı." -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3234,7 +3275,7 @@ msgstr "Disk imajı sıkıştırılma işlemi tamamlandı." msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3286,7 +3327,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "Kukla" @@ -3326,6 +3367,10 @@ msgstr "EFB Hedef Dökümü" msgid "Dump Frames" msgstr "Kareleri Dök" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3334,7 +3379,7 @@ msgstr "" msgid "Dump Objects" msgstr "Nesneleri Dök" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "Döküm Dizini:" @@ -3376,11 +3421,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3390,16 +3435,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3432,7 +3477,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Flemenkçe" @@ -3488,7 +3533,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3504,7 +3549,7 @@ msgstr "Yerleşik Çerçeve Arabellği (EFB)" msgid "Empty" msgstr "Boş" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "Emülasyon işlemi zaten çalışıyor" @@ -3591,11 +3636,11 @@ msgid "Enable Progressive Scan" msgstr "Progresif Taramaya İzin Ver" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "Ekran Koruyucusuna İzin Ver" @@ -3723,7 +3768,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "İngilizce" @@ -3733,7 +3778,7 @@ msgstr "İngilizce" msgid "Enhancements" msgstr "Geliştirmeler" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3755,6 +3800,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "RSO modül adresini girin:" @@ -3767,7 +3816,7 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3795,12 +3844,12 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3825,9 +3874,9 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "Hata" @@ -3922,11 +3971,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4120,7 +4169,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4147,7 +4196,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4159,16 +4208,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4189,7 +4238,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4259,7 +4308,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4270,8 +4319,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4284,7 +4333,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4318,12 +4367,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4349,7 +4398,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4518,7 +4567,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4672,7 +4721,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4720,7 +4769,7 @@ msgstr "" msgid "Format:" msgstr "Biçim:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4810,7 +4859,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4825,7 +4874,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "Fransızca" @@ -4865,7 +4914,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4885,7 +4934,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4909,7 +4958,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI Klasörü" @@ -4934,7 +4983,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4948,7 +4997,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4976,7 +5025,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4989,7 +5038,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5004,11 +5053,11 @@ msgstr "Oyun" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "Game Boy Advance Kartuşu (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5026,7 +5075,7 @@ msgstr "Oyun Yapılandırması" msgid "Game Details" msgstr "Oyun Ayrıntıları" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "Oyun Klasörleri" @@ -5120,7 +5169,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5175,7 +5224,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "Almanca" @@ -5183,11 +5232,11 @@ msgstr "Almanca" msgid "Germany" msgstr "Almanya" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5378,7 +5427,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5410,7 +5459,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "Risklerin farkındayım ve devam etmek istiyorum" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5446,7 +5495,7 @@ msgid "IR" msgstr "Kızılötesi" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "Kızılötesi Hassasiyeti:" @@ -5578,11 +5627,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "Wii Kayıtlarını Al..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5610,7 +5659,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5631,15 +5680,15 @@ msgstr "Emülasyon Hızını Arttır" msgid "Increase IR" msgstr "IR'yi Arttır" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5647,6 +5696,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5686,7 +5742,7 @@ msgstr "" msgid "Insert &nop" msgstr "Yerleştir &nop" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "SD Kart Ekle" @@ -5872,7 +5928,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "İtalyanca" @@ -5964,7 +6020,7 @@ msgid "Japan" msgstr "Japonya" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japonca" @@ -6002,7 +6058,7 @@ msgstr "Klavye" msgid "Keys" msgstr "Tuşlar" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -6015,7 +6071,7 @@ msgid "Korea" msgstr "Kore" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korece" @@ -6067,7 +6123,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6167,7 +6223,7 @@ msgstr "GameCube Ana Menüsü'nü Yükle" msgid "Load Last State" msgstr "Son Durumu Yükle" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "Yükleme Yolu:" @@ -6426,7 +6482,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6447,7 +6503,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "Bu Wii Menüsünde ve bazı oyunlarda yavaşlamaya neden olabilir." @@ -6464,7 +6520,7 @@ msgstr "Hafıza" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "Hafıza Kartı" @@ -6492,7 +6548,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6500,11 +6556,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6514,7 +6570,7 @@ msgstr "Mikrofon" msgid "Misc" msgstr "Çeşitli" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "Çeşitli Ayarlar" @@ -6554,7 +6610,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6596,7 +6652,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6612,6 +6668,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6642,8 +6703,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6709,7 +6770,7 @@ msgstr "Netplay desenkronize oldu. Bundan kurtulmanın bir yolu yok." msgid "Network" msgstr "Ağ" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6845,11 +6906,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6875,7 +6936,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "Hiçbiri" @@ -6931,7 +6992,7 @@ msgid "Notice" msgstr "Duyuru" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -7044,7 +7105,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7072,7 +7133,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7094,7 +7155,7 @@ msgstr "Turuncu" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7133,7 +7194,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7269,7 +7330,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7335,7 +7396,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7438,19 +7499,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7478,7 +7539,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7505,7 +7566,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "Soru" @@ -7546,7 +7607,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "Aralık" @@ -7712,8 +7772,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "Kaldır" @@ -7772,7 +7832,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7806,11 +7866,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7822,7 +7882,7 @@ msgstr "Kaydedilen tüm Wii Remote eşleştirmelerini sıfırla" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7855,7 +7915,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7938,7 +7998,7 @@ msgstr "Gümbürtü" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7950,18 +8010,26 @@ msgstr "Rusya" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD Kart Yolu:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7970,11 +8038,11 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -8048,7 +8116,7 @@ msgstr "En Eski Durumu kaydet" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8145,7 +8213,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8175,7 +8243,7 @@ msgstr "" "Kaydedilmiş Wii Remote eşleştirmeleri, yalnızca bir Wii oyunu açıkken " "sıfırlanabilir." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8210,7 +8278,7 @@ msgstr "Adres Ara" msgid "Search Current Object" msgstr "Şu Anki Nesneyi Ara" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "Alt Klasörleri Ara" @@ -8252,11 +8320,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "Seç" @@ -8269,15 +8337,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8349,7 +8417,7 @@ msgstr "Durum Yuvası 8 Seç" msgid "Select State Slot 9" msgstr "Durum Yuvası 9 Seç" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8365,17 +8433,21 @@ msgstr "Bir Dizin Seç" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "Bir Dosya Seç" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "Bir Oyun Seç" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "Bir SD Kart Kalıbı Seç" @@ -8399,7 +8471,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8407,11 +8479,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "Kayıt dosyasını seçin" @@ -8504,7 +8576,7 @@ msgstr "" msgid "Send" msgstr "Gönder" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "Sensör Çubuğu Konumu:" @@ -8573,7 +8645,7 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8583,7 +8655,7 @@ msgstr "" "olarak ayarlar.\n" "Tüm oyunlarda çalışmayabilir." -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "Wii sistem dilini ayarlar." @@ -8890,7 +8962,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Basitleştirilmiş Çince" @@ -8953,7 +9025,7 @@ msgstr "Kaydırma Çubuğu" msgid "Slot A" msgstr "Slot A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "Yuva A:" @@ -8961,7 +9033,7 @@ msgstr "Yuva A:" msgid "Slot B" msgstr "Slot B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "Yuva B:" @@ -8969,7 +9041,7 @@ msgstr "Yuva B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8979,11 +9051,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9000,7 +9072,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "Alfabetik Sırala" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "Ses:" @@ -9014,7 +9086,7 @@ msgstr "İspanya" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "İspanyolca" @@ -9022,7 +9094,7 @@ msgstr "İspanyolca" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "Hoparlör Ses Seviyesi:" @@ -9047,7 +9119,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9112,8 +9184,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9168,7 +9240,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9334,12 +9406,12 @@ msgstr "Destek" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9432,6 +9504,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9445,7 +9523,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "Sistem Dili:" @@ -9488,7 +9566,7 @@ msgstr "Ekran Görüntüsü Al" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "Sınama" @@ -9543,7 +9621,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9571,7 +9649,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9607,7 +9685,7 @@ msgstr "Sanal Wii konsolu zaten güncel." #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9619,11 +9697,11 @@ msgstr "Girilen PID geçersiz." msgid "The entered VID is invalid." msgstr "Girilen VID geçersiz." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9647,7 +9725,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9658,21 +9736,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9739,7 +9817,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9750,7 +9828,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "Ortaya çıkan şifresi çözülmüş AR kodu herhangi bir satır içermiyor." -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9776,7 +9854,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9789,7 +9867,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9805,7 +9883,7 @@ msgstr "" "Güncelleştirme iptal edildi. Sistemin dengesiz çalışmasını istemiyorsanız, " "yeni sürüm güncelleştirmelerini tamamlamanız önerilir." -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9871,7 +9949,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9907,22 +9985,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9930,13 +10008,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9950,14 +10028,14 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -9967,23 +10045,23 @@ msgstr "" "grafik kartınız veya sürücünüz bunu desteklemiyor. Sonuç olarak, oyunu " "oynarken hata ve donma sorunları ile karşılaşacaksınız." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -10007,12 +10085,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -10070,7 +10148,7 @@ msgstr "" msgid "Threshold" msgstr "Eşik" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10187,7 +10265,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "Üst" @@ -10235,7 +10313,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Geleneksel Çince" @@ -10258,7 +10336,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10273,8 +10351,8 @@ msgstr "Tetikler" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "Tür" @@ -10294,7 +10372,7 @@ msgstr "" msgid "USA" msgstr "AMERİKA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10504,7 +10582,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10574,6 +10652,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "İstatistik Raporlama Ayarları" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10586,7 +10668,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "PAL60 Modunu Kullan (EuRGB60)" @@ -10659,11 +10741,11 @@ msgstr "Kullanıcı Arayüzü" msgid "User Style:" msgstr "Kullanıcı Stili:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10749,7 +10831,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10872,7 +10954,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -11011,7 +11093,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "Beyaz Listeye Alınmış USB Geçiş Aygıtları" @@ -11031,7 +11113,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii Menüsü" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND Kök Dizini:" @@ -11057,7 +11139,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii Remote Ayarları" @@ -11177,7 +11259,7 @@ msgstr "X" msgid "XF register " msgstr "XF kaydı " -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11211,6 +11293,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11314,7 +11410,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11446,7 +11542,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11481,7 +11577,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 516110d9f2..9ab7c29f4b 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -31,7 +31,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -43,7 +43,7 @@ msgstr "" "由于 GameCube 光盘镜像包含很少的验证数据,因此可能存在 Dolphin 无法检测到的问" "题。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -77,7 +77,7 @@ msgstr "" msgid " (Disc %1)" msgstr " (光盘 %1)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "! 非" @@ -85,22 +85,28 @@ msgstr "! 非" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "“{0}” 不是一个有效的 GCM/ISO 文件,或者不是一个 GC/Wii 镜像。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "$ 用户变量 " #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "%" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "% 模除" @@ -287,7 +293,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "%n 个地址已移除。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "& 与" @@ -568,7 +574,7 @@ msgstr "只读模式(&R)" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "刷新列表(&R)" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -674,19 +680,19 @@ msgstr "(关)" msgid "(ppc)" msgstr "(ppc)" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "* 乘" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "+ 加" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr ", 逗号" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "- 减" @@ -701,7 +707,7 @@ msgstr "--> %1" msgid "..." msgstr "..." -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "/ 除" @@ -731,7 +737,7 @@ msgstr "16 位有符号整数" msgid "16-bit Unsigned Integer" msgstr "16 位无符号整数" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "16:9" @@ -805,7 +811,7 @@ msgstr "4 字节" msgid "4 Mbit (59 blocks)" msgstr "4 Mbit (59 区块)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "4:3" @@ -879,11 +885,11 @@ msgstr "8x" msgid "8x Native (5120x4224) for 5K" msgstr "8x 原生 (5120x4224) 适合 5K" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "< 小于" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "" @@ -900,12 +906,12 @@ msgstr "" "

有新版的 Dolphin 可用

现在可以下载 Dolphin %1。你正在运行 %2。
是" "否更新?

发布说明:

" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "> 大于" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "已经有一个联机会话正在进行!" @@ -933,7 +939,7 @@ msgstr "光盘已可插入。" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "载入保存状态必须指定要启动的游戏" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -946,7 +952,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "只有在 Wii 游戏运行时同步才能触发。" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "AD16" @@ -1004,6 +1010,11 @@ msgstr "关于 Dolphin" msgid "Accelerometer" msgstr "加速度计" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "精确度:" @@ -1167,8 +1178,8 @@ msgid "Add to watch" msgstr "添加到监视" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "添加..." @@ -1207,7 +1218,7 @@ msgstr "地址:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "调整摇杆洞口的目标半径。" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1253,7 +1264,7 @@ msgstr "" "警告:改动默认值 (100%) 可能会破坏游戏而导致故障。\n" "如要这样做风险自负。请不要提交非默认时钟频率下出现的错误。" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "GBA 游戏端口" @@ -1266,7 +1277,7 @@ msgstr "高级" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "高级设置" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1279,12 +1290,12 @@ msgstr "与数据类型长度对齐" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "所有双精度" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1292,36 +1303,36 @@ msgid "All Files" msgstr "所有文件" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "所有文件 (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "所有浮点数" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "所有 GC/Wii 文件" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "全十六进制" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "所有状态存档 (*.sav *.s##);; 所有文件 (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "全部有符号整数" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "全部无符号整数" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1347,7 +1358,7 @@ msgstr "允许不匹配的区域设置" msgid "Allow Usage Statistics Reporting" msgstr "允许使用情况统计报告" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "允许写入 SD 卡" @@ -1484,7 +1495,7 @@ msgid "Aspect Ratio" msgstr "长宽比" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "长宽比:" @@ -1564,6 +1575,10 @@ msgstr "自动隐藏" msgid "Auto-detect RSO modules?" msgstr "自动检测 RSO 模块?" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1578,7 +1593,7 @@ msgid "Auxiliary" msgstr "副内存" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "B" @@ -1586,7 +1601,7 @@ msgstr "B" msgid "BAT incorrect. Dolphin will now exit" msgstr "BAT 错误,模拟器即将退出" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " @@ -1595,7 +1610,7 @@ msgstr "" "BBA MAC 地址 {0} 对于 XLink Kai 无效。必须使用有效的任天堂 GameCube MAC 地" "址。 生成一个以 00:09:bf 或 00:17:ab 开头的新 MAC 地址。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "BIOS:" @@ -1626,10 +1641,11 @@ msgid "Backend:" msgstr "后端:" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "后台输入" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1711,15 +1727,15 @@ msgstr "体验版(每月一次)" msgid "BetterJoy, DS4Windows, etc" msgstr "BetterJoy,DS4Windows,等" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "二进制 SSL" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "二进制 SSL (读取)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "二进制 SSL (写入)" @@ -1738,7 +1754,7 @@ msgstr "区块大小" msgid "Block Size:" msgstr "区块大小:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "屏蔽" @@ -1770,11 +1786,11 @@ msgstr "" msgid "Boot to Pause" msgstr "引导后暂停" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "BootMii NAND 备份文件 (*.bin);; 所有文件 (*)" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "BootMii 密钥文件 (*.bin);; 所有文件 (*)" @@ -1782,7 +1798,7 @@ msgstr "BootMii 密钥文件 (*.bin);; 所有文件 (*)" msgid "Borderless Fullscreen" msgstr "无边框全屏" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "底部" @@ -1813,19 +1829,27 @@ msgstr "遇到断点!跳出已中止。" msgid "Breakpoints" msgstr "断点" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "宽带适配器 (TAP)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "宽带适配器 (XLink Kai)" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "宽带适配器(tap 服务器)" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "宽带适配器错误" @@ -1888,7 +1912,7 @@ msgstr "按键" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 msgid "By: " -msgstr "" +msgstr "作者:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -1965,7 +1989,7 @@ msgstr "调用位于 %1 大小为 %2 的显示列表" msgid "Callstack" msgstr "调用堆栈" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "镜头 1" @@ -1983,8 +2007,8 @@ msgstr "只能为虚拟内存中的数值生成 AR 代码。" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "不能按照连接句柄 {0:02x} 找到 Wii 遥控器" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "游戏运行时无法启动联机会话!" @@ -2108,7 +2132,7 @@ msgstr "金手指管理器" msgid "Check NAND..." msgstr "校验 NAND..." -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "在后台检查游戏列表变更" @@ -2130,13 +2154,13 @@ msgstr "校验" msgid "China" msgstr "中国" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "选择要打开的文件" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" -msgstr "" +msgstr "选择要打开或创建的文件" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2165,7 +2189,7 @@ msgid "Classic Controller" msgstr "传统控制器" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2241,7 +2265,7 @@ msgstr "被比较字:" msgid "Compile Shaders Before Starting" msgstr "在开始前编译着色器" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "正在编译着色器" @@ -2287,11 +2311,11 @@ msgstr "配置控制器" msgid "Configure Dolphin" msgstr "Dolphin 配置" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "配置输入" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "配置输出" @@ -2300,8 +2324,8 @@ msgstr "配置输出" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "确定" @@ -2329,7 +2353,7 @@ msgstr "连接" msgid "Connect Balance Board" msgstr "连接平衡板" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "连接 USB 键盘" @@ -2377,7 +2401,7 @@ msgstr "正在连接" msgid "Connection Type:" msgstr "连接类型:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "内容 {0:08x} 已损坏。" @@ -2481,14 +2505,31 @@ msgstr "会聚" msgid "Convergence:" msgstr "会聚:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "转换" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "转换文件..." +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "转换所选文件..." @@ -2601,7 +2642,7 @@ msgid "" "Internet connection and try again." msgstr "无法从任天堂下载更新信息。请检查你的互联网连接然后重试。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" @@ -2611,7 +2652,7 @@ msgstr "" "\n" "模拟主机即将停止运行。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2906,7 +2947,7 @@ msgstr "十进制" msgid "Decoding Quality:" msgstr "解码质量:" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "减小" @@ -2927,11 +2968,11 @@ msgstr "减小模拟速度" msgid "Decrease IR" msgstr "减小内部分辨率" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "减小 X" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "减小 Y" @@ -2951,7 +2992,7 @@ msgstr "默认设备" msgid "Default Font" msgstr "默认字体" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "默认镜像:" @@ -3027,13 +3068,13 @@ msgstr "说明:" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 msgid "Description: " -msgstr "" +msgstr "说明:" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" msgstr "分离的" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "检测" @@ -3079,7 +3120,7 @@ msgstr "无法将 %1 识别为有效的 Riivolution XML 文件。" msgid "Diff" msgstr "差异" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "五分钟非活动状态后变暗屏幕。" @@ -3217,7 +3258,7 @@ msgstr "从中间位置移动的距离。" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "是否授权 Dolphin 向开发者报告信息?" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "是否要添加 \"%1\" 到游戏路径列表?" @@ -3231,7 +3272,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "是否要删除 %n 已选定的存档文件?" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "您确定是否停止当前模拟?" @@ -3262,8 +3303,8 @@ msgstr "Dolphin 签名 CSV 文件" msgid "Dolphin Signature File" msgstr "Dolphin 签名文件" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS 电影 (*.dtm)" @@ -3309,13 +3350,13 @@ msgstr "Dolphin 是一个免费开源的 GameCube/Wii 模拟器。" msgid "Dolphin is too old for traversal server" msgstr "Dolphin 版本太旧,穿透服务器不支持" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "Dolphin 无法正确验证典型的 TGC 文件,因为其不是真实光盘的转储。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin 无法验证未经授权的光盘。" @@ -3329,8 +3370,8 @@ msgstr "Dolphin 会将其用于无法自动确定区域的游戏。" msgid "Dolphin's cheat system is currently disabled." msgstr "Dolphin 的金手指系统当前已禁用。" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "域名" @@ -3353,7 +3394,7 @@ msgstr "光盘镜像已压缩完成。" msgid "Double" msgstr "双精度" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3405,7 +3446,7 @@ msgstr "双核" msgid "Dual View" msgstr "双视图" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "虚设" @@ -3445,6 +3486,10 @@ msgstr "转储 EFB 目标" msgid "Dump Frames" msgstr "转储帧" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "转储 Mip 映射" @@ -3453,7 +3498,7 @@ msgstr "转储 Mip 映射" msgid "Dump Objects" msgstr "转储对象" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "转储路径:" @@ -3501,11 +3546,11 @@ msgstr "" "将解码的游戏纹理转储到 User/Dump/Textures/<game_id>/ 目录中。" "

如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "转储解密的 SSL 读取" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "转储解密的 SSL 写入" @@ -3517,16 +3562,16 @@ msgstr "" "将对象转储到 User/Dump/Objects/ 目录中。

如果不确" "定,请不要勾选此项。" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "转储选项" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "转储对等证书" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "转储根 CA 证书" @@ -3565,7 +3610,7 @@ msgstr "连发按键的松开持续时间(帧):" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "荷兰语" @@ -3625,7 +3670,7 @@ msgstr "有效" msgid "Effective priority" msgstr "有效优先级" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "EiB" @@ -3641,7 +3686,7 @@ msgstr "内置帧缓冲 (EFB)" msgid "Empty" msgstr "空" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "模拟线程已经在运行" @@ -3719,7 +3764,7 @@ msgstr "启用 FPRF" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "启用图形模组" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -3731,11 +3776,11 @@ msgid "Enable Progressive Scan" msgstr "启用逐行扫描" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "启用震动" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "允许屏幕保护程序" @@ -3882,7 +3927,7 @@ msgstr "Enet 没有初始化" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "英语" @@ -3892,7 +3937,7 @@ msgstr "英语" msgid "Enhancements" msgstr "增强" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "输入正在运行 XLink Kai 客户端的设备 IP 地址:" @@ -3914,6 +3959,10 @@ msgstr "输入新宽带适配器 MAC 地址:" msgid "Enter password" msgstr "输入密码" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "请输入 RSO 模块地址:" @@ -3926,7 +3975,7 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3954,12 +4003,12 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3984,9 +4033,9 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "错误" @@ -4087,11 +4136,11 @@ msgstr "" "错误: 正在试图访问 Windows-1252 字体,但它们没有加载。游戏可能无法正确显示字" "体,或者崩溃。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "在 {1} 分区的 {0} 区块中发现错误。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "在 {1} 分区未使用的 {0} 区块中发现错误。" @@ -4297,7 +4346,7 @@ msgid "Extracting Directory..." msgstr "正在提取目录..." #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "文件描述符" @@ -4326,9 +4375,9 @@ msgstr "无法将此会话添加到联机索引: %1" msgid "Failed to append to signature file '%1'" msgstr "附加到签名文件 '%1' 失败" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "申请蓝牙直通接口失败: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -4338,16 +4387,16 @@ msgstr "连接 Redump.org 失败" msgid "Failed to connect to server: %1" msgstr "连接服务器失败: %1" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "创建 D3D 交换链失败" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "创建 D3D12 上下文失败" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "创建 D3D12 全局资源失败" @@ -4368,7 +4417,7 @@ msgstr "删除联机存储卡失败。请验证你的写入权限。" msgid "Failed to delete the selected file." msgstr "无法删除所选文件。" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "分离蓝牙直通内核驱动失败: {0}" @@ -4443,7 +4492,7 @@ msgstr "" "导入存档文件失败。您的 NAND 可能已损坏,或某些因素阻止访问里面的文件。请尝试" "修复 NAND(工具 -> 管理 NAND -> 校验 NAND...),然后再次导入存档。" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "初始化核心失败" @@ -4457,8 +4506,8 @@ msgstr "" "请确保你的显卡至少支持 D3D 10.0\n" "{0}" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "初始化渲染器类失败" @@ -4471,7 +4520,7 @@ msgstr "安装包失败: %1" msgid "Failed to install this title to the NAND." msgstr "无法将该游戏安装到 NAND。" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4505,12 +4554,12 @@ msgid "" msgstr "加载 {0} 失败。如果你使用的是 Windows 7,请尝试安装 KB4019990 更新包。" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "无法打开 '%1'" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "打开蓝牙设备失败: {0} " @@ -4538,7 +4587,7 @@ msgstr "" msgid "Failed to open file." msgstr "打开文件失败。" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "打开服务器失败" @@ -4715,7 +4764,7 @@ msgid "" msgstr "" "致命的不同步。回放中止。(在 PlayWiimote 中发生错误: {0} != {1}, byte {2}.){3}" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "视野" @@ -4878,7 +4927,7 @@ msgstr "" "有关设置说明,请参阅此页面。" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4935,7 +4984,7 @@ msgstr "" msgid "Format:" msgstr "格式:" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -5028,7 +5077,7 @@ msgstr "" "明,请参阅" "此页面。" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "自由视点" @@ -5043,7 +5092,7 @@ msgstr "自由视点切换" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "法语" @@ -5083,7 +5132,7 @@ msgstr "函数调用者" msgid "Function calls" msgstr "函数调用" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "函数" @@ -5103,7 +5152,7 @@ msgstr "GBA 核心" msgid "GBA Port %1" msgstr "GBA 端口 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "GBA 设置" @@ -5127,7 +5176,7 @@ msgstr "GBA%1 ROM 已禁用" msgid "GC Port %1" msgstr "GC 端口 %1" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI 文件夹" @@ -5161,7 +5210,7 @@ msgstr "" "进一步的错误信息将发送到视频后端日志中并且\n" "Dolphin 现在可能崩溃或挂起。请关闭。" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "GL_最大_纹理_大小 是 {0} - 必须至少 1024 。" @@ -5177,7 +5226,7 @@ msgstr "" "GPU:错误:需要 GL_ARB_framebuffer_object 渲染目标。\n" "GPU:您的显卡是否支持 OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "GPU: OGL 错误:您的显卡是否支持 OpenGL 2.0?" @@ -5213,7 +5262,7 @@ msgstr "" "GPU:OGL 错误:需要 GL_ARB_vertex_array_object。\n" "GPU:您的显卡是否支持 OpenGL 3.0?" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -5231,7 +5280,7 @@ msgstr "" "GPU:您的显卡是否支持 OpenGL 3.0?\n" "GPU:您的驱动程序支持 GLSL {0}" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -5248,11 +5297,11 @@ msgstr "游戏" msgid "Game Boy Advance" msgstr "Game Boy Advance" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "GBA 游戏卡带 (*.gba)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -5272,7 +5321,7 @@ msgstr "游戏配置" msgid "Game Details" msgstr "游戏详细信息" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "游戏文件夹" @@ -5299,14 +5348,16 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"游戏文件具有不同的哈希值;右键单击文件,选择属性,切换到验证选项卡,然后选择" +"验证完整性以检查哈希值" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "游戏具有不同的光盘编号" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "游戏具有不同的修订版" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5319,7 +5370,7 @@ msgstr "游戏覆盖了其他的游戏存档,将会破坏数据 {0:#x}, {1:#x} #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "游戏区域不匹配" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5366,7 +5417,7 @@ msgid "GameCube Memory Cards" msgstr "GameCube 存储卡" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "GameCube 存储卡 (*.raw *.gcp)" @@ -5380,7 +5431,7 @@ msgstr "GameCube TAS 输入 %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "洞口大小" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 @@ -5421,7 +5472,7 @@ msgstr "从 '%1' 中生成符号名" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "德语" @@ -5429,11 +5480,11 @@ msgstr "德语" msgid "Germany" msgstr "德国" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "获取设备列表失败: {0}" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "GiB" @@ -5453,7 +5504,7 @@ msgstr "图形" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "图形模组" #: Source/Core/Core/HotkeyManager.cpp:340 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 @@ -5462,7 +5513,7 @@ msgstr "图形切换" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "图形模组当前已禁用。" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5630,7 +5681,7 @@ msgstr "主机输入优先权已启用" msgid "Host with NetPlay" msgstr "建主机联网" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "主机名" @@ -5662,7 +5713,7 @@ msgstr "Hz" msgid "I am aware of the risks and want to continue" msgstr "我已知道风险并希望继续" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "ID" @@ -5702,7 +5753,7 @@ msgid "IR" msgstr "红外线" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "红外灵敏度:" @@ -5873,11 +5924,11 @@ msgstr "导入存档文件" msgid "Import Wii Save..." msgstr "导入 Wii 存档..." -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "正在导入 NAND 备份" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5910,7 +5961,7 @@ msgstr "" "纹理与物体缺失或模糊的问题,但会加长存/读档时间。

如" "果不确定,请勾选此项。" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "增加" @@ -5931,15 +5982,15 @@ msgstr "增加模拟速度" msgid "Increase IR" msgstr "增加内部分辨率" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "增加 X" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "增加 Y" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "增量旋转" @@ -5947,6 +5998,13 @@ msgstr "增量旋转" msgid "Incremental Rotation (rad/sec)" msgstr "增量旋转(度/秒)" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5986,7 +6044,7 @@ msgstr "要忽略并重新映射的输入力度。" msgid "Insert &nop" msgstr "插入 nop (&N)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "插入 SD 卡" @@ -6174,7 +6232,7 @@ msgstr "无效监视地址: %1" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "意大利语" @@ -6268,7 +6326,7 @@ msgid "Japan" msgstr "日本" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "日语" @@ -6306,7 +6364,7 @@ msgstr "键盘" msgid "Keys" msgstr "按键" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "KiB" @@ -6319,7 +6377,7 @@ msgid "Korea" msgstr "韩国" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "韩语" @@ -6371,7 +6429,7 @@ msgstr "延迟: ~40 毫秒" msgid "Latency: ~80 ms" msgstr "延迟: ~80 毫秒" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6477,7 +6535,7 @@ msgstr "载入 GameCube 主菜单" msgid "Load Last State" msgstr "载入最近状态" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "加载路径:" @@ -6626,6 +6684,8 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"从 User/Load/GraphicsMods/ 加载图形模组。

如果不确" +"定,请不要勾选此项。" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -6745,7 +6805,7 @@ msgstr "手动纹理采样" msgid "Mapping" msgstr "映射" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "伪装 ROM" @@ -6766,7 +6826,7 @@ msgstr "最大缓冲区大小更改为 %1" msgid "Maximum tilt angle." msgstr "最大倾斜角度。" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "这会导致 Wii 菜单和一些游戏减速。" @@ -6783,7 +6843,7 @@ msgstr "内存" msgid "Memory Breakpoint" msgstr "内存断点" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "存储卡" @@ -6811,7 +6871,7 @@ msgstr "MemoryCard: 在无效源地址 ({0:#x}) 中读取调用" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "MemoryCard: 在无效目标地址 ({0:#x}) 中写入调用" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6821,11 +6881,11 @@ msgstr "" "将新 NAND 合并入当前 NAND 将会覆盖所有现有的频道与存档。此过程不可逆,建议您" "对两份 NAND 都进行备份。确定继续?" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "MiB" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6835,7 +6895,7 @@ msgstr "麦克风" msgid "Misc" msgstr "其它" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "其它设置" @@ -6884,7 +6944,7 @@ msgstr "" msgid "Modules found: %1" msgstr "已找到模块: %1" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "单声道" @@ -6926,7 +6986,7 @@ msgstr "鼠标光标将始终可见。" msgid "Mouse Cursor will never be visible while a game is running." msgstr "游戏运行时鼠标光标将一直不可见。" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "移动" @@ -6940,6 +7000,11 @@ msgstr "影片" msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" +msgstr "影片 {0} 表示从一个保存状态开始播放,但 {1} 不存在。电影可能无法同步!" + +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" msgstr "" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 @@ -6972,8 +7037,8 @@ msgid "NTSC-U" msgstr "NTSC-U" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -7039,7 +7104,7 @@ msgstr "联机发生不同步,已无法恢复。" msgid "Network" msgstr "网络" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "网络转储格式:" @@ -7165,7 +7230,7 @@ msgstr "没有发现问题。" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "未找到匹配的游戏" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7175,11 +7240,11 @@ msgstr "在 M3U 文件 “{0}” 中找不到路径" msgid "No possible functions left. Reset." msgstr "未发现可能的函数,重置。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "未发现任何问题。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7207,7 +7272,7 @@ msgstr "未找到 undo.dtm 文件,为防止影片出现不同步撤销载入 #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "无" @@ -7242,7 +7307,7 @@ msgstr "目标存储卡上没有足够的空闲文件数。至少需要 %n 个 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "未找到" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7263,7 +7328,7 @@ msgid "Notice" msgstr "提示" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "空" @@ -7380,7 +7445,7 @@ msgstr "打开 Riivolutione XML..." msgid "Open Wii &Save Folder" msgstr "打开 Wii 存档目录(&S)" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "打开转储目录" @@ -7408,7 +7473,7 @@ msgstr "OpenGL" msgid "OpenGL ES" msgstr "OpenGL ES" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "运算符" @@ -7430,7 +7495,7 @@ msgstr "橙" msgid "Orbital" msgstr "轨道式" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7469,7 +7534,7 @@ msgid "PAL" msgstr "PAL" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "PCAP 格式" @@ -7605,7 +7670,7 @@ msgstr "物理" msgid "Physical address space" msgstr "物理地址空间" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "PiB" @@ -7671,7 +7736,7 @@ msgstr "指向" msgid "Port %1" msgstr "端口 %1" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "端口 %1 ROM:" @@ -7777,19 +7842,19 @@ msgstr "私密和公开" msgid "Problem" msgstr "问题" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "发现高严重性问题。游戏很可能根本无法运作。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "发现低严重性问题。这些问题很可能不会影响游戏运行。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7817,7 +7882,7 @@ msgstr "公开" msgid "Purge Game List Cache" msgstr "清除游戏列表缓存" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "将 IPL ROM 放至 User/GC/。" @@ -7844,7 +7909,7 @@ msgstr "DPLII 解码器的质量。质量越高音频延迟越大。" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "询问" @@ -7885,7 +7950,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "RVZ GC/Wii 镜像 (*.rvz)" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "范围" @@ -8055,8 +8119,8 @@ msgstr "以后提醒我" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "移除" @@ -8119,7 +8183,7 @@ msgstr "报告: GCIFolder 正在写入未分配的区块 {0:#x}" msgid "Request to Join Your Party" msgstr "请求加入你的派对" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -8153,11 +8217,11 @@ msgstr "重置穿透服务器到 %1:%2" msgid "Reset Traversal Settings" msgstr "重置穿透设置" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "重置值" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "重置视图" @@ -8169,7 +8233,7 @@ msgstr "重置所有保存的 Wii 遥控器配对" msgid "Resource Pack Manager" msgstr "资源包管理器" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "资源包路径:" @@ -8202,7 +8266,7 @@ msgstr "修订版" msgid "Revision: %1" msgstr "修订版: %1" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -8288,7 +8352,7 @@ msgstr "震动" msgid "Run &To Here" msgstr "运行到此处(&T)" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "在独占线程中运行 GBA 内核" @@ -8300,18 +8364,26 @@ msgstr "俄罗斯" msgid "SD Card" msgstr "SD 卡" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "SD 卡镜像 (*.raw);;所有文件 (*)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "SD 卡路径:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "SD 根目录:" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "选择" @@ -8320,11 +8392,11 @@ msgstr "选择" msgid "SHA-1:" msgstr "SHA-1:" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "SSL 上下文" @@ -8398,7 +8470,7 @@ msgstr "保存到最早状态存档" msgid "Save Preset" msgstr "保存预设" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "录制文件另存为" @@ -8497,7 +8569,7 @@ msgstr "" "此游戏的存档数据已存在于 NAND 中。 建议在覆盖之前备份当前数据。\n" "是否现在覆盖? " -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "保存在与 ROM 相同的目录中" @@ -8525,7 +8597,7 @@ msgstr "保存..." msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "只有在 Wii 游戏运行时保存的 Wii 遥控器配对才能重置。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "存档:" @@ -8560,7 +8632,7 @@ msgstr "搜索地址" msgid "Search Current Object" msgstr "搜索当前对象" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "搜索子目录" @@ -8602,11 +8674,11 @@ msgstr "包含所有图像相关设置的部分。" msgid "Section that contains most CPU and Hardware related settings." msgstr "包含大部分 CPU 与硬件相关设置的部分。" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "安全选项" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "选择" @@ -8619,15 +8691,15 @@ msgstr "选择转储路径" msgid "Select Export Directory" msgstr "选择导出目录" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "选择 GBA BIOS" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "选择 GBA ROM" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "选择 GBA 存档路径" @@ -8699,7 +8771,7 @@ msgstr "选择状态 8" msgid "Select State Slot 9" msgstr "选择状态 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "选择 WFS 路径" @@ -8715,17 +8787,21 @@ msgstr "选择目录" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "选择文件" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "选择游戏" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "选择 SD 卡镜像" @@ -8749,7 +8825,7 @@ msgstr "选择 e-Reader 卡" msgid "Select the RSO module address:" msgstr "选择 RSO 模块地址:" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "选择要播放的录制文件" @@ -8757,11 +8833,11 @@ msgstr "选择要播放的录制文件" msgid "Select the Virtual SD Card Root" msgstr "选择虚拟 SD 卡根目录" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "选择密钥文件 (OTP/SEEPROM 转储)" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "选择一个存档文件" @@ -8875,7 +8951,7 @@ msgstr "" msgid "Send" msgstr "发送" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "感应条位置:" @@ -8947,7 +9023,7 @@ msgstr "设置符号终止地址" msgid "Set symbol size (%1):" msgstr "设置符号大小 (%1):" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" @@ -8956,7 +9032,7 @@ msgstr "" "将 PAL 制式 Wii 游戏的显示模式由 50Hz (576i) 改为 60Hz (480i)。\n" "可能并不适用于所有游戏。" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "设置 Wii 的系统语言。" @@ -9173,12 +9249,12 @@ msgstr "在内存中显示(&M)" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "在代码中显示" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "在内存中显示" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" @@ -9186,7 +9262,7 @@ msgstr "在代码中显示" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "在内存中显示" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9277,7 +9353,7 @@ msgid "Signed Integer" msgstr "有符号整数" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "简体中文" @@ -9342,7 +9418,7 @@ msgstr "滑品板" msgid "Slot A" msgstr "插槽 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "插槽 A:" @@ -9350,7 +9426,7 @@ msgstr "插槽 A:" msgid "Slot B" msgstr "插槽 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "插槽 B:" @@ -9358,7 +9434,7 @@ msgstr "插槽 B:" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "捕获挨着最近八边形轴的拇指摇杆位置" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "套接字表" @@ -9368,11 +9444,11 @@ msgstr "套接字表" msgid "Software Renderer" msgstr "软件渲染器" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "一些数据无法读取。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9391,7 +9467,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "按字母排序" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "声音:" @@ -9405,7 +9481,7 @@ msgstr "西班牙" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "西班牙语" @@ -9413,7 +9489,7 @@ msgstr "西班牙语" msgid "Speaker Pan" msgstr "扬声器声像" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "扬声器音量:" @@ -9444,7 +9520,7 @@ msgstr "" "得多。

如果不确定,请将其保留为 6。" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9509,8 +9585,8 @@ msgstr "启动时附加 Riivolution 补丁..." msgid "Started game" msgstr "游戏已启动" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9565,7 +9641,7 @@ msgstr "单步成功!" msgid "Stepping" msgstr "步进" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "立体声" @@ -9737,12 +9813,12 @@ msgstr "支持" msgid "Supported file formats" msgstr "支持的文件格式" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "支持 SD 和 SDHC 格式。默认大小为 128 MB。" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "环绕" @@ -9843,6 +9919,12 @@ msgid "" msgstr "" "同步 GPU 与 CPU 线程以帮助防止双核模式下的随机卡死。(开=兼容,关=快速)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "正在同步 AR 代码..." @@ -9856,7 +9938,7 @@ msgid "Synchronizing save data..." msgstr "正在同步存档数据..." #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "系统语言:" @@ -9897,9 +9979,9 @@ msgstr "屏幕截图" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "目标地址范围无效。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "测试" @@ -9954,7 +10036,7 @@ msgstr "该 NAND 无法修复。建议备份您当前的数据并使用新的 NA msgid "The NAND has been repaired." msgstr "NAND 已修复。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9986,7 +10068,7 @@ msgid "" "size." msgstr "分区 {0} 的数据大小无法用区块大小平均分配。" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "解密密钥需要附加到 NAND 备份文件中。" @@ -10027,7 +10109,7 @@ msgstr "模拟的 Wii 主机已经是最新的。" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "输入的 MAC 地址无效。" @@ -10039,11 +10121,11 @@ msgstr "输入的 PID 无效。" msgid "The entered VID is invalid." msgstr "输入的 VID 无效。" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "此表达式含有语法错误。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -10073,32 +10155,34 @@ msgstr "文件 {0} 无法以写入形式打开。请检查该文件是否已经 msgid "The file {0} was already open, the file header will not be written." msgstr "文件 {0} 已经打开,文件头不会被写入。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"文件名 %1 不符合 Dolphin 的存储卡区域代码格式。请将此文件重命名为 %2、%3 或 " +"%4,以匹配其存档文件的区域。" #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." msgstr "文件系统无效或无法读取。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "此光盘镜像的保存格式不存储光盘镜像的大小。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "游戏 ID 不一致。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "游戏 ID 异常短。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "游戏 ID 是 {0} ,但应该为 {1} 。" @@ -10175,7 +10259,7 @@ msgstr "配置文件 '%1' 不存在" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "被录制的游戏 ({0}) 与所选游戏 ({1}) 不一致" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10188,7 +10272,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "产生的已解密 AR 代码不包含任何行。" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "同一文件不能在多个插槽中使用;其已被 %1 占用。" @@ -10217,7 +10301,7 @@ msgstr "" "您真的想要启用软件渲染吗?如果不确定,请选择“否”。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "指定的公用密钥索引是 {0} ,但应该为 {1} 。" @@ -10230,7 +10314,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "目标存储卡已包含文件 “%1”。" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "ticket 文件未正确签名。" @@ -10244,7 +10328,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "更新已被取消。强烈建议你完成更新,以避免不一致的系统软件版本。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "更新分区未包含此游戏使用的 IOS。" @@ -10309,7 +10393,7 @@ msgstr "此 Gecko 代码不包含任何行。" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10339,21 +10423,23 @@ msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"此 Dolphin 构建版本没有对你的 CPU 原生编译。\n" +"请运行 Dolphin 的 ARM64 版本以获得更好的体验。" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 msgid "This cannot be undone!" msgstr "不能被撤销!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "此调试版光盘镜像和零售版光盘镜像大小一样。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "此光盘镜像大小异常。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10362,7 +10448,7 @@ msgstr "" "此光盘镜像大小异常。这可能会使模拟的加载时间更长。你将无法与正在使用正确转储" "的其他人共享输入录制和使用联机功能。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10372,7 +10458,7 @@ msgstr "" "此光盘镜像采用 NKit 格式。这种格式并不是一个正确的转储,但如果转换回去可能会" "变成正确转储。即使文件不相同,此文件的 CRC32 也可能与正确转储的 CRC32 匹配。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10380,7 +10466,7 @@ msgstr "" "此光盘镜像太小并且缺少一些数据。如果你的转储程序将光盘镜像保存为多个部分,则" "需要将其合并为一个文件。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10396,7 +10482,7 @@ msgstr "此文件未包含有效的 Wii 文件系统。" msgid "This file does not look like a BootMii NAND backup." msgstr "此文件似乎不是一个 BootMii NAND 备份。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10405,7 +10491,7 @@ msgstr "" "此游戏已被篡改为适合单层 DVD。某些内容如预渲染视频、其他语言或整个游戏模式都" "会被破坏。这个问题通常只存在于非法的游戏副本中。" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " @@ -10414,17 +10500,17 @@ msgstr "" "这个游戏需要边框模拟才能正常运行,但你的显卡或其驱动程序不支持。 因此在运行此" "游戏时将会发生错误或画面冻结。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "这是一个错误的转储。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "这是一个错误的转储。但并不一定表示游戏无法正常运行。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10432,7 +10518,7 @@ msgstr "" "依据 Redump.org,这是一个正确的转储,但 Dolphin 发现了问题。这可能是 Dolphin " "中的错误。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "这是一个正确的转储。" @@ -10459,12 +10545,12 @@ msgstr "该软件不能用于运行你非法持有的游戏。" msgid "This title cannot be booted." msgstr "无法启动该软件。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "此游戏设置为使用无效的 IOS。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "此游戏设置为使用无效的公用密钥。" @@ -10530,7 +10616,7 @@ msgstr "线程" msgid "Threshold" msgstr "阈值" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "TiB" @@ -10647,7 +10733,7 @@ msgstr "标记化失败。" msgid "Toolbar" msgstr "工具栏" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "顶部" @@ -10695,7 +10781,7 @@ msgid "Touch" msgstr "接触" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "繁体中文" @@ -10718,7 +10804,7 @@ msgid "" "cases. Defaults to True" msgstr "尝试提前翻译分支,多数情况下可提高性能。默认值为 True" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "Triforce AM 基板" @@ -10733,8 +10819,8 @@ msgstr "扳机" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "类型" @@ -10754,7 +10840,7 @@ msgstr "未知" msgid "USA" msgstr "美国" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "USB Gecko" @@ -10980,7 +11066,7 @@ msgstr "无符号 8" msgid "Unsigned Integer" msgstr "无符号整数" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -11052,6 +11138,10 @@ msgstr "竖握 Wii 遥控器" msgid "Usage Statistics Reporting Settings" msgstr "使用情况统计报告设置" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "使用内建数据库游戏名称" @@ -11064,7 +11154,7 @@ msgstr "使用自定义用户风格" msgid "Use Lossless Codec (FFV1)" msgstr "使用无损编解码器 (FFV1)" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "使用 PAL60 模式 (EuRGB60)" @@ -11155,11 +11245,11 @@ msgstr "用户界面" msgid "User Style:" msgstr "用户风格:" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "用户变量" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -11255,7 +11345,7 @@ msgstr "验证" msgid "Verify Integrity" msgstr "验证完整性" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "验证证书" @@ -11380,7 +11470,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "WASAPI (独占模式)" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "WFS 路径:" @@ -11557,7 +11647,7 @@ msgstr "" "强选项卡中启用了“特殊多级纹理检测”,则特殊多级纹理也会被转储。" "

如果不确定,请勾选此项。" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "USB 直通设备白名单" @@ -11577,7 +11667,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "Wii 菜单" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "Wii NAND 根目录:" @@ -11603,7 +11693,7 @@ msgstr "Wii 遥控器按键" msgid "Wii Remote Orientation" msgstr "Wii 遥控器方向" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "Wii 遥控器设置" @@ -11698,19 +11788,19 @@ msgstr "写入到窗口" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "光盘编号错误" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "哈希值错误" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "区域错误" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "错误修订版" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -11723,7 +11813,7 @@ msgstr "X" msgid "XF register " msgstr "XF 寄存器" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "XLink Kai BBA 目标地址" @@ -11757,6 +11847,20 @@ msgstr "是" msgid "Yes to &All" msgstr "全部选是(&A)" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11885,7 +11989,7 @@ msgstr "[%1, %2]" msgid "[%1, %2] and [%3, %4]" msgstr "[%1, %2] 和 [%3, %4]" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "^ 异或" @@ -12019,7 +12123,7 @@ msgstr "未对齐" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" @@ -12056,7 +12160,7 @@ msgstr "区块 {0} ,共 {1} 。压缩率 {2}%" msgid "{0} was not a directory, moved to *.original" msgstr "{0} 不是一个目录,已移动至 *.original" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "| 或" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index a9e57ba980..0351fdcf20 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-05 23:35+0200\n" +"POT-Creation-Date: 2022-07-25 10:54+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1402 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1408 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 msgid "" "\n" "\n" @@ -57,7 +57,7 @@ msgstr "" msgid " (Disc %1)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:264 msgid "! Not" msgstr "" @@ -65,22 +65,28 @@ msgstr "" msgid "\"{0}\" is an invalid GCM/ISO file, or is not a GC/Wii ISO." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 msgid "$ User Variable" msgstr "" #. i18n: The symbol for percent. #. i18n: The percent symbol. +#. i18n: Percentage symbol. +#. i18n: The percent symbol. +#. i18n: The symbol/abbreviation for percent. +#. i18n: The percent symbol. #: Source/Core/Core/HW/WiimoteEmu/Extension/Drums.cpp:67 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:270 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:332 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:76 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp:45 +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:46 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/MixedTriggers.cpp:27 msgid "%" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:267 msgid "% Modulo" msgstr "" @@ -259,7 +265,7 @@ msgctxt "" msgid "%n address(es) were removed." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 msgid "& And" msgstr "" @@ -646,19 +652,19 @@ msgstr "(關閉)" msgid "(ppc)" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:265 msgid "* Multiply" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:268 msgid "+ Add" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:282 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:279 msgid ", Comma" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:272 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 msgid "- Subtract" msgstr "" @@ -673,7 +679,7 @@ msgstr "" msgid "..." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:269 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:266 msgid "/ Divide" msgstr "" @@ -703,7 +709,7 @@ msgstr "" msgid "16-bit Unsigned Integer" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:118 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 msgid "16:9" msgstr "" @@ -777,7 +783,7 @@ msgstr "" msgid "4 Mbit (59 blocks)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:117 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 msgid "4:3" msgstr "" @@ -851,11 +857,11 @@ msgstr "" msgid "8x Native (5120x4224) for 5K" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:274 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:271 msgid "< Less-than" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:121 +#: Source/Core/Core/HW/EXI/EXI_Device.h:123 msgid "" msgstr "<無>" @@ -870,12 +876,12 @@ msgid "" "Notes:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:270 msgid "> Greater-than" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1432 -#: Source/Core/DolphinQt/MainWindow.cpp:1499 +#: Source/Core/DolphinQt/MainWindow.cpp:1414 +#: Source/Core/DolphinQt/MainWindow.cpp:1481 msgid "A NetPlay Session is already in progress!" msgstr "" @@ -897,7 +903,7 @@ msgstr "" msgid "A save state cannot be loaded without specifying a game to launch." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:901 +#: Source/Core/DolphinQt/MainWindow.cpp:883 msgid "" "A shutdown is already in progress. Unsaved data may be lost if you stop the " "current emulation before it completes. Force stop?" @@ -908,7 +914,7 @@ msgid "A sync can only be triggered when a Wii game is running." msgstr "" #. i18n: A mysterious debugging/diagnostics peripheral for the GameCube. -#: Source/Core/Core/HW/EXI/EXI_Device.h:89 +#: Source/Core/Core/HW/EXI/EXI_Device.h:90 msgid "AD16" msgstr "" @@ -956,6 +962,11 @@ msgstr "關於 Dolphin" msgid "Accelerometer" msgstr "" +#. i18n: Percentage value of accelerometer data (complementary filter coefficient). +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 +msgid "Accelerometer Influence" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" msgstr "" @@ -1107,8 +1118,8 @@ msgid "Add to watch" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:36 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:159 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:163 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:141 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:256 msgid "Add..." msgstr "新增..." @@ -1179,7 +1190,7 @@ msgid "" "with a non-default clock." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:95 +#: Source/Core/Core/HW/EXI/EXI_Device.h:96 msgid "Advance Game Port" msgstr "" @@ -1210,7 +1221,7 @@ msgstr "" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 #: Source/Core/DolphinQt/GCMemcardManager.cpp:590 -#: Source/Core/DolphinQt/MainWindow.cpp:749 +#: Source/Core/DolphinQt/MainWindow.cpp:731 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:121 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:328 #: Source/Core/DolphinQt/Settings/PathPane.cpp:51 @@ -1218,7 +1229,7 @@ msgid "All Files" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:425 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:432 msgid "All Files (*)" msgstr "" @@ -1227,7 +1238,7 @@ msgstr "" msgid "All Float" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:748 +#: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 msgid "All GC/Wii files" msgstr "" @@ -1236,8 +1247,8 @@ msgstr "" msgid "All Hexadecimal" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1317 -#: Source/Core/DolphinQt/MainWindow.cpp:1325 +#: Source/Core/DolphinQt/MainWindow.cpp:1299 +#: Source/Core/DolphinQt/MainWindow.cpp:1307 msgid "All Save States (*.sav *.s##);; All Files (*)" msgstr "" @@ -1273,7 +1284,7 @@ msgstr "" msgid "Allow Usage Statistics Reporting" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:112 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 msgid "Allow Writes to SD Card" msgstr "" @@ -1406,7 +1417,7 @@ msgid "Aspect Ratio" msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:79 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:115 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 msgid "Aspect Ratio:" msgstr "畫面比例:" @@ -1483,6 +1494,10 @@ msgstr "" msgid "Auto-detect RSO modules?" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 +msgid "Automatically Sync with Folder" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" "Automatically adjusts the window size to the internal resolution." @@ -1495,7 +1510,7 @@ msgid "Auxiliary" msgstr "" #. i18n: The symbol for the unit "bytes" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "B" msgstr "" @@ -1503,14 +1518,14 @@ msgstr "" msgid "BAT incorrect. Dolphin will now exit" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:66 +#: Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp:73 msgid "" "BBA MAC address {0} invalid for XLink Kai. A valid Nintendo GameCube MAC " "address must be used. Generate a new MAC address starting with 00:09:bf or " "00:17:ab." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:152 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:153 msgid "BIOS:" msgstr "" @@ -1541,10 +1556,11 @@ msgid "Backend:" msgstr "" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:29 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:64 msgid "Background Input" msgstr "背景輸入" -#: Source/Core/Core/FreeLookManager.cpp:87 +#: Source/Core/Core/FreeLookManager.cpp:91 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:25 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:23 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:21 @@ -1626,15 +1642,15 @@ msgstr "" msgid "BetterJoy, DS4Windows, etc" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:399 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:404 msgid "Binary SSL" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:400 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:405 msgid "Binary SSL (read)" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:406 msgid "Binary SSL (write)" msgstr "" @@ -1653,7 +1669,7 @@ msgstr "" msgid "Block Size:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "Blocking" msgstr "" @@ -1684,11 +1700,11 @@ msgstr "" msgid "Boot to Pause" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1655 +#: Source/Core/DolphinQt/MainWindow.cpp:1637 msgid "BootMii NAND backup file (*.bin);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1681 +#: Source/Core/DolphinQt/MainWindow.cpp:1663 msgid "BootMii keys file (*.bin);;All Files (*)" msgstr "" @@ -1696,7 +1712,7 @@ msgstr "" msgid "Borderless Fullscreen" msgstr "無框全螢幕" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:193 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:286 msgid "Bottom" msgstr "下方" @@ -1727,19 +1743,27 @@ msgstr "" msgid "Breakpoints" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:91 +#: Source/Core/Core/HW/EXI/EXI_Device.h:99 +msgid "Broadband Adapter (Built In)" +msgstr "" + +#: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:96 +#: Source/Core/Core/HW/EXI/EXI_Device.h:97 msgid "Broadband Adapter (XLink Kai)" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:97 +#: Source/Core/Core/HW/EXI/EXI_Device.h:98 msgid "Broadband Adapter (tapserver)" msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:97 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 +msgid "Broadband Adapter DNS setting" +msgstr "" + +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" msgstr "" @@ -1871,7 +1895,7 @@ msgstr "" msgid "Callstack" msgstr "" -#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:65 +#: Source/Core/DolphinQt/Config/FreeLookWidget.cpp:68 msgid "Camera 1" msgstr "" @@ -1889,8 +1913,8 @@ msgstr "" msgid "Can't find Wii Remote by connection handle {0:02x}" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1425 -#: Source/Core/DolphinQt/MainWindow.cpp:1492 +#: Source/Core/DolphinQt/MainWindow.cpp:1407 +#: Source/Core/DolphinQt/MainWindow.cpp:1474 msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" @@ -2009,7 +2033,7 @@ msgstr "" msgid "Check NAND..." msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:167 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:149 msgid "Check for Game List Changes in the Background" msgstr "" @@ -2031,11 +2055,11 @@ msgstr "" msgid "China" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:397 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:404 msgid "Choose a file to open" msgstr "選擇一個要開啟的檔案" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:307 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" msgstr "" @@ -2066,7 +2090,7 @@ msgid "Classic Controller" msgstr "" #: Source/Core/DolphinQt/Config/LogWidget.cpp:136 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:248 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:137 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:109 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:90 @@ -2142,7 +2166,7 @@ msgstr "" msgid "Compile Shaders Before Starting" msgstr "" -#: Source/Core/VideoCommon/ShaderCache.cpp:171 +#: Source/Core/VideoCommon/ShaderCache.cpp:172 msgid "Compiling Shaders" msgstr "" @@ -2188,11 +2212,11 @@ msgstr "" msgid "Configure Dolphin" msgstr "設定 Dolphin" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Input" msgstr "設定輸入" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:225 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:223 msgid "Configure Output" msgstr "設定輸出" @@ -2201,8 +2225,8 @@ msgstr "設定輸出" #: Source/Core/DolphinQt/ConvertDialog.cpp:402 #: Source/Core/DolphinQt/GameList/GameList.cpp:629 #: Source/Core/DolphinQt/GameList/GameList.cpp:812 -#: Source/Core/DolphinQt/MainWindow.cpp:900 -#: Source/Core/DolphinQt/MainWindow.cpp:1621 +#: Source/Core/DolphinQt/MainWindow.cpp:882 +#: Source/Core/DolphinQt/MainWindow.cpp:1603 #: Source/Core/DolphinQt/WiiUpdate.cpp:140 msgid "Confirm" msgstr "確認" @@ -2230,7 +2254,7 @@ msgstr "連接" msgid "Connect Balance Board" msgstr "連接平衡板" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:113 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 msgid "Connect USB Keyboard" msgstr "連接 USB 鍵盤" @@ -2278,7 +2302,7 @@ msgstr "" msgid "Connection Type:" msgstr "連線類型:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1200 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 msgid "Content {0:08x} is corrupt." msgstr "" @@ -2374,14 +2398,31 @@ msgstr "" msgid "Convergence:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Conversion failed." +msgstr "" + #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:219 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 +msgid "Convert File to Folder Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:218 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 +msgid "Convert Folder to File Now" +msgstr "" + #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." msgstr "" @@ -2490,14 +2531,14 @@ msgid "" "Internet connection and try again." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:144 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:167 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "\n" "The emulated console will now stop." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:150 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:173 msgid "" "Could not find any usable Bluetooth USB adapter for Bluetooth Passthrough.\n" "The following error occurred when Dolphin tried to use an adapter:\n" @@ -2765,7 +2806,7 @@ msgstr "Decimal" msgid "Decoding Quality:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:91 +#: Source/Core/Core/FreeLookManager.cpp:95 msgid "Decrease" msgstr "" @@ -2786,11 +2827,11 @@ msgstr "" msgid "Decrease IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:102 +#: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:104 +#: Source/Core/Core/FreeLookManager.cpp:108 msgid "Decrease Y" msgstr "" @@ -2810,7 +2851,7 @@ msgstr "" msgid "Default Font" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:203 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:185 msgid "Default ISO:" msgstr "預設的 ISO:" @@ -2889,7 +2930,7 @@ msgstr "" msgid "Detached" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:245 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:243 msgid "Detect" msgstr "檢測" @@ -2935,7 +2976,7 @@ msgstr "" msgid "Diff" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:151 msgid "Dims the screen after five minutes of inactivity." msgstr "" @@ -3059,7 +3100,7 @@ msgstr "" msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1622 +#: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" msgstr "" @@ -3073,7 +3114,7 @@ msgctxt "" msgid "Do you want to delete the %n selected save file(s)?" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:904 +#: Source/Core/DolphinQt/MainWindow.cpp:886 msgid "Do you want to stop the current emulation?" msgstr "您要停止目前的模擬嗎?" @@ -3104,8 +3145,8 @@ msgstr "" msgid "Dolphin Signature File" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Dolphin TAS Movies (*.dtm)" msgstr "Dolphin TAS 影片 (*.dtm)" @@ -3142,13 +3183,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1349 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1342 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3162,8 +3203,8 @@ msgstr "" msgid "Dolphin's cheat system is currently disabled." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Domain" msgstr "" @@ -3186,7 +3227,7 @@ msgstr "" msgid "Double" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:83 +#: Source/Core/Core/FreeLookManager.cpp:87 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:76 #: Source/Core/DolphinQt/ResourcePackManager.cpp:43 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:21 @@ -3238,7 +3279,7 @@ msgstr "" msgid "Dual View" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:85 +#: Source/Core/Core/HW/EXI/EXI_Device.h:86 msgid "Dummy" msgstr "空" @@ -3278,6 +3319,10 @@ msgstr "轉儲 EFB 目標" msgid "Dump Frames" msgstr "轉儲畫格" +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +msgid "Dump GameCube BBA traffic" +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" msgstr "" @@ -3286,7 +3331,7 @@ msgstr "" msgid "Dump Objects" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:220 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:202 msgid "Dump Path:" msgstr "" @@ -3328,11 +3373,11 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:350 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:351 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" msgstr "" @@ -3342,16 +3387,16 @@ msgid "" "leave this unchecked.
" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:344 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:347 msgid "Dump options" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" msgstr "" #. i18n: CA stands for certificate authority -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" msgstr "" @@ -3384,7 +3429,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:95 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:128 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:137 msgid "Dutch" msgstr "Dutch" @@ -3440,7 +3485,7 @@ msgstr "" msgid "Effective priority" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "EiB" msgstr "" @@ -3456,7 +3501,7 @@ msgstr "" msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:223 +#: Source/Core/Core/Core.cpp:225 msgid "Emu Thread already running" msgstr "模擬器線程已經執行中" @@ -3543,11 +3588,11 @@ msgid "Enable Progressive Scan" msgstr "開啟逐行掃瞄" #: Source/Core/DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.cpp:39 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:281 msgid "Enable Rumble" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:110 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:121 msgid "Enable Screen Saver" msgstr "" @@ -3667,7 +3712,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:80 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:123 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:132 msgid "English" msgstr "English" @@ -3677,7 +3722,7 @@ msgstr "English" msgid "Enhancements" msgstr "增強" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:61 msgid "Enter IP address of device running the XLink Kai Client:" msgstr "" @@ -3699,6 +3744,10 @@ msgstr "" msgid "Enter password" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 +msgid "Enter the DNS server to use:" +msgstr "" + #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" msgstr "" @@ -3711,7 +3760,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:319 #: Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp:325 #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:46 -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:242 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:281 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:232 @@ -3739,12 +3788,12 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 #: Source/Core/DolphinQt/Main.cpp:230 Source/Core/DolphinQt/MainWindow.cpp:273 #: Source/Core/DolphinQt/MainWindow.cpp:281 -#: Source/Core/DolphinQt/MainWindow.cpp:1078 -#: Source/Core/DolphinQt/MainWindow.cpp:1424 -#: Source/Core/DolphinQt/MainWindow.cpp:1431 -#: Source/Core/DolphinQt/MainWindow.cpp:1491 -#: Source/Core/DolphinQt/MainWindow.cpp:1498 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 +#: Source/Core/DolphinQt/MainWindow.cpp:1406 +#: Source/Core/DolphinQt/MainWindow.cpp:1413 +#: Source/Core/DolphinQt/MainWindow.cpp:1473 +#: Source/Core/DolphinQt/MainWindow.cpp:1480 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/MenuBar.cpp:1192 #: Source/Core/DolphinQt/MenuBar.cpp:1262 #: Source/Core/DolphinQt/MenuBar.cpp:1285 @@ -3769,9 +3818,9 @@ msgstr "" #: Source/Core/DolphinQt/RenderWidget.cpp:124 #: Source/Core/DolphinQt/ResourcePackManager.cpp:203 #: Source/Core/DolphinQt/ResourcePackManager.cpp:224 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:326 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:347 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:368 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:333 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:354 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:375 #: Source/Core/DolphinQt/Translation.cpp:320 msgid "Error" msgstr "錯誤" @@ -3866,11 +3915,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1298 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1309 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4064,7 +4113,7 @@ msgid "Extracting Directory..." msgstr "" #. i18n: FD stands for file descriptor (and in this case refers to sockets, not regular files) -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 msgid "FD" msgstr "" @@ -4091,7 +4140,7 @@ msgstr "" msgid "Failed to append to signature file '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:628 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" @@ -4103,16 +4152,16 @@ msgstr "" msgid "Failed to connect to server: %1" msgstr "" -#: Source/Core/VideoBackends/D3D/D3DMain.cpp:149 -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:124 +#: Source/Core/VideoBackends/D3D/D3DMain.cpp:150 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:125 msgid "Failed to create D3D swap chain" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:106 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:107 msgid "Failed to create D3D12 context" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:115 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:116 msgid "Failed to create D3D12 global resources" msgstr "" @@ -4133,7 +4182,7 @@ msgstr "" msgid "Failed to delete the selected file." msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:621 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:644 msgid "Failed to detach kernel driver for BT passthrough: {0}" msgstr "" @@ -4203,7 +4252,7 @@ msgid "" "Manage NAND -> Check NAND...), then import the save again." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1078 +#: Source/Core/DolphinQt/MainWindow.cpp:1060 msgid "Failed to init core" msgstr "" @@ -4214,8 +4263,8 @@ msgid "" "{0}" msgstr "" -#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:142 -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:197 +#: Source/Core/VideoBackends/D3D12/VideoBackend.cpp:143 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:198 msgid "Failed to initialize renderer classes" msgstr "" @@ -4228,7 +4277,7 @@ msgstr "" msgid "Failed to install this title to the NAND." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1524 +#: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" @@ -4262,12 +4311,12 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/GBAWidget.cpp:577 -#: Source/Core/DolphinQt/MainWindow.cpp:1600 +#: Source/Core/DolphinQt/MainWindow.cpp:1582 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:606 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:629 msgid "Failed to open Bluetooth device: {0}" msgstr "" @@ -4293,7 +4342,7 @@ msgstr "" msgid "Failed to open file." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1523 +#: Source/Core/DolphinQt/MainWindow.cpp:1505 msgid "Failed to open server" msgstr "" @@ -4462,7 +4511,7 @@ msgid "" "{2}.){3}" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:99 +#: Source/Core/Core/FreeLookManager.cpp:103 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:25 msgid "Field of View" msgstr "" @@ -4616,7 +4665,7 @@ msgid "" "title=Broadband_Adapter\">refer to this page." msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:56 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:65 msgid "" "For setup instructions, refer to this page." @@ -4664,7 +4713,7 @@ msgstr "" msgid "Format:" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:86 +#: Source/Core/Core/FreeLookManager.cpp:90 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp:22 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp:20 @@ -4754,7 +4803,7 @@ msgid "" "this page." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:297 +#: Source/Core/Core/FreeLookManager.cpp:306 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:25 msgid "FreeLook" msgstr "" @@ -4769,7 +4818,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:86 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:125 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:134 msgid "French" msgstr "French" @@ -4809,7 +4858,7 @@ msgstr "" msgid "Function calls" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:286 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4829,7 +4878,7 @@ msgstr "" msgid "GBA Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:141 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:142 msgid "GBA Settings" msgstr "" @@ -4853,7 +4902,7 @@ msgstr "" msgid "GC Port %1" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:94 +#: Source/Core/Core/HW/EXI/EXI_Device.h:95 msgid "GCI Folder" msgstr "GCI 資料夾" @@ -4878,7 +4927,7 @@ msgid "" "Dolphin will now likely crash or hang. Enjoy." msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:164 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:165 msgid "GL_MAX_TEXTURE_SIZE is {0} - must be at least 1024." msgstr "" @@ -4892,7 +4941,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:128 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" msgstr "" @@ -4920,7 +4969,7 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:135 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" @@ -4933,7 +4982,7 @@ msgid "" "GPU: Your driver supports GLSL {0}" msgstr "" -#: Source/Core/VideoBackends/OGL/OGLMain.cpp:152 +#: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" @@ -4948,11 +4997,11 @@ msgstr "" msgid "Game Boy Advance" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:398 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:405 msgid "Game Boy Advance Carts (*.gba)" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:568 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:575 msgid "" "Game Boy Advance ROMs (*.gba *.gbc *.gb *.7z *.zip *.agb *.mb *.rom *.bin);;" "All Files (*)" @@ -4970,7 +5019,7 @@ msgstr "" msgid "Game Details" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:138 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:120 msgid "Game Folders" msgstr "" @@ -5064,7 +5113,7 @@ msgid "GameCube Memory Cards" msgstr "" #: Source/Core/DolphinQt/GCMemcardCreateNewDialog.cpp:75 -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:309 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:316 msgid "GameCube Memory Cards (*.raw *.gcp)" msgstr "" @@ -5119,7 +5168,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:124 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 msgid "German" msgstr "German" @@ -5127,11 +5176,11 @@ msgstr "German" msgid "Germany" msgstr "" -#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:136 +#: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" msgstr "" @@ -5322,7 +5371,7 @@ msgstr "" msgid "Host with NetPlay" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" msgstr "" @@ -5354,7 +5403,7 @@ msgstr "" msgid "I am aware of the risks and want to continue" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/GameList/GameListModel.cpp:215 msgid "ID" msgstr "" @@ -5390,7 +5439,7 @@ msgid "IR" msgstr "IR" #. i18n: IR stands for infrared and refers to the pointer functionality of Wii Remotes -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:197 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:290 msgid "IR Sensitivity:" msgstr "IR 靈敏度:" @@ -5522,11 +5571,11 @@ msgstr "" msgid "Import Wii Save..." msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1664 +#: Source/Core/DolphinQt/MainWindow.cpp:1646 msgid "Importing NAND backup" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1674 +#: Source/Core/DolphinQt/MainWindow.cpp:1656 #, c-format msgid "" "Importing NAND backup\n" @@ -5554,7 +5603,7 @@ msgid "" "

If unsure, leave this checked." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:92 +#: Source/Core/Core/FreeLookManager.cpp:96 msgid "Increase" msgstr "" @@ -5575,15 +5624,15 @@ msgstr "" msgid "Increase IR" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:101 +#: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:103 +#: Source/Core/Core/FreeLookManager.cpp:107 msgid "Increase Y" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:107 +#: Source/Core/Core/FreeLookManager.cpp:111 msgid "Incremental Rotation" msgstr "" @@ -5591,6 +5640,13 @@ msgstr "" msgid "Incremental Rotation (rad/sec)" msgstr "" +#. i18n: Refers to a setting controling the influence of accelerometer data. +#: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:48 +msgid "" +"Influence of accelerometer data on pitch and roll. Higher values will reduce " +"drift at the cost of noise. Consider values between 1% and 3%." +msgstr "" + #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 #: Source/Core/DolphinQt/ConvertDialog.cpp:99 @@ -5630,7 +5686,7 @@ msgstr "" msgid "Insert &nop" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:111 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:174 msgid "Insert SD Card" msgstr "插入 SD 卡" @@ -5816,7 +5872,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:92 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:85 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:127 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 msgid "Italian" msgstr "Italian" @@ -5908,7 +5964,7 @@ msgid "Japan" msgstr "" #: Source/Core/DiscIO/Enums.cpp:77 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:122 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 msgid "Japanese" msgstr "Japanese" @@ -5946,7 +6002,7 @@ msgstr "" msgid "Keys" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "KiB" msgstr "" @@ -5959,7 +6015,7 @@ msgid "Korea" msgstr "" #: Source/Core/DiscIO/Enums.cpp:104 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:131 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 msgid "Korean" msgstr "Korean" @@ -6011,7 +6067,7 @@ msgstr "" msgid "Latency: ~80 ms" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:84 +#: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:36 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:148 @@ -6111,7 +6167,7 @@ msgstr "" msgid "Load Last State" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:229 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 msgid "Load Path:" msgstr "" @@ -6370,7 +6426,7 @@ msgstr "" msgid "Mapping" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:87 +#: Source/Core/Core/HW/EXI/EXI_Device.h:88 msgid "Mask ROM" msgstr "" @@ -6391,7 +6447,7 @@ msgstr "" msgid "Maximum tilt angle." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:153 msgid "May cause slow down in Wii Menu and some games." msgstr "" @@ -6408,7 +6464,7 @@ msgstr "" msgid "Memory Breakpoint" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:86 +#: Source/Core/Core/HW/EXI/EXI_Device.h:87 msgid "Memory Card" msgstr "記憶卡" @@ -6436,7 +6492,7 @@ msgstr "" msgid "MemoryCard: Write called with invalid destination address ({0:#x})" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1645 +#: Source/Core/DolphinQt/MainWindow.cpp:1627 msgid "" "Merging a new NAND over your currently selected NAND will overwrite any " "channels and savegames that already exist. This process is not reversible, " @@ -6444,11 +6500,11 @@ msgid "" "want to continue?" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:423 +#: Source/Core/UICommon/UICommon.cpp:476 msgid "MiB" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:90 Source/Core/Core/HW/GCPadEmu.cpp:83 +#: Source/Core/Core/HW/EXI/EXI_Device.h:91 Source/Core/Core/HW/GCPadEmu.cpp:83 #: Source/Core/DolphinQt/Config/Mapping/GCMicrophone.cpp:26 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:412 msgid "Microphone" @@ -6458,7 +6514,7 @@ msgstr "" msgid "Misc" msgstr "雜項" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:116 msgid "Misc Settings" msgstr "其它設定" @@ -6498,7 +6554,7 @@ msgstr "" msgid "Modules found: %1" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 msgid "Mono" msgstr "" @@ -6540,7 +6596,7 @@ msgstr "" msgid "Mouse Cursor will never be visible while a game is running." msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:80 +#: Source/Core/Core/FreeLookManager.cpp:84 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:22 msgid "Move" msgstr "" @@ -6556,6 +6612,11 @@ msgid "" "The movie will likely not sync!" msgstr "" +#. i18n: Controller input values are multiplied by this percentage value. +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 +msgid "Multiplier" +msgstr "" + #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" msgstr "" @@ -6586,8 +6647,8 @@ msgid "NTSC-U" msgstr "" #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:60 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:223 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:160 #: Source/Core/DolphinQt/ResourcePackManager.cpp:91 @@ -6653,7 +6714,7 @@ msgstr "" msgid "Network" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:362 msgid "Network dump format:" msgstr "" @@ -6789,11 +6850,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1379 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6819,7 +6880,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:30 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:226 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:129 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:396 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:401 #: Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp:82 msgid "None" msgstr "無" @@ -6875,7 +6936,7 @@ msgid "Notice" msgstr "注意" #. i18n: Null is referring to the null video backend, which renders nothing -#: Source/Core/VideoBackends/Null/NullBackend.cpp:109 +#: Source/Core/VideoBackends/Null/NullBackend.cpp:110 msgid "Null" msgstr "" @@ -6988,7 +7049,7 @@ msgstr "" msgid "Open Wii &Save Folder" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:355 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" msgstr "" @@ -7016,7 +7077,7 @@ msgstr "" msgid "OpenGL ES" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:263 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:260 msgid "Operators" msgstr "" @@ -7038,7 +7099,7 @@ msgstr "橘" msgid "Orbital" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:95 +#: Source/Core/Core/FreeLookManager.cpp:99 #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 @@ -7077,7 +7138,7 @@ msgid "PAL" msgstr "" #. i18n: PCAP is a file format -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:398 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:403 msgid "PCAP" msgstr "" @@ -7213,7 +7274,7 @@ msgstr "" msgid "Physical address space" msgstr "" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "PiB" msgstr "" @@ -7279,7 +7340,7 @@ msgstr "" msgid "Port %1" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:161 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:162 msgid "Port %1 ROM:" msgstr "" @@ -7380,19 +7441,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1394 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1384 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1389 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7420,7 +7481,7 @@ msgstr "" msgid "Purge Game List Cache" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:483 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:490 msgid "Put IPL ROMs in User/GC/." msgstr "" @@ -7447,7 +7508,7 @@ msgstr "" #: Source/Core/Common/MsgHandler.cpp:60 #: Source/Core/DolphinQt/ConvertDialog.cpp:433 #: Source/Core/DolphinQt/GCMemcardManager.cpp:660 -#: Source/Core/DolphinQt/MainWindow.cpp:1644 +#: Source/Core/DolphinQt/MainWindow.cpp:1626 msgid "Question" msgstr "問題" @@ -7488,7 +7549,6 @@ msgid "RVZ GC/Wii images (*.rvz)" msgstr "" #. i18n: A range of memory addresses -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:324 #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:58 msgid "Range" msgstr "範圍" @@ -7654,8 +7714,8 @@ msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp:39 #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:129 #: Source/Core/DolphinQt/ResourcePackManager.cpp:40 -#: Source/Core/DolphinQt/Settings/PathPane.cpp:160 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:142 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:257 msgid "Remove" msgstr "移除" @@ -7714,7 +7774,7 @@ msgstr "" msgid "Request to Join Your Party" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:93 +#: Source/Core/Core/FreeLookManager.cpp:97 #: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 @@ -7748,11 +7808,11 @@ msgstr "" msgid "Reset Traversal Settings" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:316 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 msgid "Reset Values" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:97 +#: Source/Core/Core/FreeLookManager.cpp:101 msgid "Reset View" msgstr "" @@ -7764,7 +7824,7 @@ msgstr "" msgid "Resource Pack Manager" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:240 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:222 msgid "Resource Pack Path:" msgstr "" @@ -7797,7 +7857,7 @@ msgstr "" msgid "Revision: %1" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:85 +#: Source/Core/Core/FreeLookManager.cpp:89 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:34 #: Source/Core/DolphinQt/TAS/GCTASInputWindow.cpp:37 #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:150 @@ -7880,7 +7940,7 @@ msgstr "震動" msgid "Run &To Here" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:146 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:147 msgid "Run GBA Cores in Dedicated Threads" msgstr "" @@ -7892,18 +7952,26 @@ msgstr "" msgid "SD Card" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:106 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:414 msgid "SD Card Image (*.raw);;All Files (*)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:248 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:188 msgid "SD Card Path:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 +msgid "SD Card Settings" +msgstr "" + #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 +msgid "SD Sync Folder:" +msgstr "" + #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" msgstr "" @@ -7912,11 +7980,11 @@ msgstr "" msgid "SHA-1:" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:135 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:322 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:325 msgid "SSL context" msgstr "" @@ -7990,7 +8058,7 @@ msgstr "" msgid "Save Preset" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1773 +#: Source/Core/DolphinQt/MainWindow.cpp:1755 msgid "Save Recording File As" msgstr "" @@ -8087,7 +8155,7 @@ msgid "" "Overwrite now?" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:167 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" msgstr "" @@ -8115,7 +8183,7 @@ msgstr "" msgid "Saved Wii Remote pairings can only be reset when a Wii game is running." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:173 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:174 msgid "Saves:" msgstr "" @@ -8150,7 +8218,7 @@ msgstr "" msgid "Search Current Object" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:164 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:146 msgid "Search Subfolders" msgstr "搜尋子資料夾" @@ -8192,11 +8260,11 @@ msgstr "" msgid "Section that contains most CPU and Hardware related settings." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:381 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:386 msgid "Security options" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:242 msgid "Select" msgstr "選擇" @@ -8209,15 +8277,15 @@ msgstr "" msgid "Select Export Directory" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:424 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:431 msgid "Select GBA BIOS" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:562 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:569 msgid "Select GBA ROM" msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:453 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:460 msgid "Select GBA Saves Path" msgstr "" @@ -8289,7 +8357,7 @@ msgstr "選擇儲存格 8" msgid "Select State Slot 9" msgstr "選擇儲存格 9" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:118 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 msgid "Select WFS Path" msgstr "" @@ -8305,17 +8373,21 @@ msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 #: Source/Core/DolphinQt/GBAWidget.cpp:210 #: Source/Core/DolphinQt/GBAWidget.cpp:241 -#: Source/Core/DolphinQt/MainWindow.cpp:744 -#: Source/Core/DolphinQt/MainWindow.cpp:1316 -#: Source/Core/DolphinQt/MainWindow.cpp:1324 +#: Source/Core/DolphinQt/MainWindow.cpp:726 +#: Source/Core/DolphinQt/MainWindow.cpp:1298 +#: Source/Core/DolphinQt/MainWindow.cpp:1306 msgid "Select a File" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 +msgid "Select a Folder to sync with the SD Card Image" +msgstr "" + #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:105 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:412 msgid "Select a SD Card Image" msgstr "" @@ -8339,7 +8411,7 @@ msgstr "" msgid "Select the RSO module address:" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1702 +#: Source/Core/DolphinQt/MainWindow.cpp:1684 msgid "Select the Recording File to Play" msgstr "" @@ -8347,11 +8419,11 @@ msgstr "" msgid "Select the Virtual SD Card Root" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1680 +#: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" msgstr "" -#: Source/Core/DolphinQt/MainWindow.cpp:1654 +#: Source/Core/DolphinQt/MainWindow.cpp:1636 #: Source/Core/DolphinQt/MenuBar.cpp:1064 msgid "Select the save file" msgstr "選擇存檔" @@ -8444,7 +8516,7 @@ msgstr "" msgid "Send" msgstr "傳送" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:190 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:283 msgid "Sensor Bar Position:" msgstr "傳感器位置:" @@ -8513,14 +8585,14 @@ msgstr "" msgid "Set symbol size (%1):" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:140 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:149 msgid "" "Sets the Wii display mode to 60Hz (480i) instead of 50Hz (576i) for PAL " "games.\n" "May not work for all games." msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:143 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:152 msgid "Sets the Wii system language." msgstr "" @@ -8827,7 +8899,7 @@ msgid "Signed Integer" msgstr "" #: Source/Core/DiscIO/Enums.cpp:98 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 msgid "Simplified Chinese" msgstr "Simplified Chinese" @@ -8888,7 +8960,7 @@ msgstr "" msgid "Slot A" msgstr "插槽 A" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:129 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:130 msgid "Slot A:" msgstr "" @@ -8896,7 +8968,7 @@ msgstr "" msgid "Slot B" msgstr "插槽 B" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:132 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:133 msgid "Slot B:" msgstr "" @@ -8904,7 +8976,7 @@ msgstr "" msgid "Snap the thumbstick position to the nearest octagonal axis." msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:299 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:302 msgid "Socket table" msgstr "" @@ -8914,11 +8986,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1288 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1023 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -8935,7 +9007,7 @@ msgstr "" msgid "Sort Alphabetically" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:133 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:142 msgid "Sound:" msgstr "" @@ -8949,7 +9021,7 @@ msgstr "" #: Source/Core/DiscIO/Enums.cpp:89 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:84 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:126 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:135 msgid "Spanish" msgstr "Spanish" @@ -8957,7 +9029,7 @@ msgstr "Spanish" msgid "Speaker Pan" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:204 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:297 msgid "Speaker Volume:" msgstr "揚聲器音量:" @@ -8982,7 +9054,7 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:89 +#: Source/Core/Core/FreeLookManager.cpp:93 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:24 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:42 msgid "Speed" @@ -9047,8 +9119,8 @@ msgstr "" msgid "Started game" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:71 #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:181 msgid "State" @@ -9103,7 +9175,7 @@ msgstr "" msgid "Stepping" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:136 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:145 msgid "Stereo" msgstr "" @@ -9269,12 +9341,12 @@ msgstr "" msgid "Supported file formats" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:144 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:175 msgid "Supports SD and SDHC. Default size is 128 MB." msgstr "" #. i18n: Surround audio (Dolby Pro Logic II) -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:138 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:147 msgid "Surround" msgstr "" @@ -9367,6 +9439,12 @@ msgid "" "core mode. (ON = Compatible, OFF = Fast)" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:198 +msgid "" +"Synchronizes the SD Card with the SD Sync Folder when starting and ending " +"emulation." +msgstr "" + #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." msgstr "" @@ -9380,7 +9458,7 @@ msgid "Synchronizing save data..." msgstr "" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:80 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:129 msgid "System Language:" msgstr "系統語系:" @@ -9423,7 +9501,7 @@ msgstr "截取畫面" msgid "Target address range is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:246 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" msgstr "測試" @@ -9478,7 +9556,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:978 +#: Source/Core/DiscIO/VolumeVerifier.cpp:980 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -9506,7 +9584,7 @@ msgid "" "size." msgstr "" -#: Source/Android/jni/WiiUtils.cpp:111 +#: Source/Android/jni/WiiUtils.cpp:114 msgid "The decryption keys need to be appended to the NAND backup file." msgstr "" @@ -9542,7 +9620,7 @@ msgstr "" #. i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network #. interface (physical) like a serial number. "MAC" should be kept in translations. -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:100 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:109 msgid "The entered MAC address is invalid." msgstr "" @@ -9554,11 +9632,11 @@ msgstr "" msgid "The entered VID is invalid." msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:518 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:520 msgid "The expression contains a syntax error." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:348 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:355 msgid "" "The file\n" "%1\n" @@ -9582,7 +9660,7 @@ msgstr "" msgid "The file {0} was already open, the file header will not be written." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:327 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:334 msgid "" "The filename %1 does not conform to Dolphin's region code format for memory " "cards. Please rename this file to either %2, %3, or %4, matching the region " @@ -9593,21 +9671,21 @@ msgstr "" msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:759 +#: Source/Core/DiscIO/VolumeVerifier.cpp:761 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:862 +#: Source/Core/DiscIO/VolumeVerifier.cpp:864 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:873 +#: Source/Core/DiscIO/VolumeVerifier.cpp:875 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:854 +#: Source/Core/DiscIO/VolumeVerifier.cpp:856 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9674,7 +9752,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:891 +#: Source/Core/DiscIO/VolumeVerifier.cpp:893 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9685,7 +9763,7 @@ msgstr "" msgid "The resulting decrypted AR code doesn't contain any lines." msgstr "" -#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:369 +#: Source/Core/DolphinQt/Settings/GameCubePane.cpp:376 msgid "" "The same file can't be used in multiple slots; it is already used by %1." msgstr "" @@ -9711,7 +9789,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:951 +#: Source/Core/DiscIO/VolumeVerifier.cpp:953 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9724,7 +9802,7 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:969 +#: Source/Core/DiscIO/VolumeVerifier.cpp:971 msgid "The ticket is not correctly signed." msgstr "" @@ -9738,7 +9816,7 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:661 +#: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" @@ -9800,7 +9878,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:916 +#: Source/Core/DiscIO/VolumeVerifier.cpp:918 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9835,22 +9913,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:803 +#: Source/Core/DiscIO/VolumeVerifier.cpp:805 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:826 +#: Source/Core/DiscIO/VolumeVerifier.cpp:828 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:820 +#: Source/Core/DiscIO/VolumeVerifier.cpp:822 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:988 +#: Source/Core/DiscIO/VolumeVerifier.cpp:990 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9858,13 +9936,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:779 +#: Source/Core/DiscIO/VolumeVerifier.cpp:781 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:776 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9878,37 +9956,37 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:751 +#: Source/Core/DiscIO/VolumeVerifier.cpp:753 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " "This problem generally only exists in illegal copies of games." msgstr "" -#: Source/Core/VideoCommon/VideoBackendBase.cpp:178 +#: Source/Core/VideoCommon/VideoBackendBase.cpp:181 msgid "" "This game requires bounding box emulation to run properly but your graphics " "card or its drivers do not support it. As a result you will experience bugs " "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1364 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1358 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1334 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 msgid "This is a good dump." msgstr "" @@ -9932,12 +10010,12 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:924 +#: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:938 +#: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." msgstr "" @@ -9994,7 +10072,7 @@ msgstr "" msgid "Threshold" msgstr "閾值" -#: Source/Core/UICommon/UICommon.cpp:424 +#: Source/Core/UICommon/UICommon.cpp:477 msgid "TiB" msgstr "" @@ -10111,7 +10189,7 @@ msgstr "" msgid "Toolbar" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:192 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:285 msgid "Top" msgstr "上方" @@ -10159,7 +10237,7 @@ msgid "Touch" msgstr "" #: Source/Core/DiscIO/Enums.cpp:101 -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:130 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:139 msgid "Traditional Chinese" msgstr "Traditional Chinese" @@ -10182,7 +10260,7 @@ msgid "" "cases. Defaults to True" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_Device.h:92 +#: Source/Core/Core/HW/EXI/EXI_Device.h:93 msgid "Triforce AM Baseboard" msgstr "" @@ -10197,8 +10275,8 @@ msgstr "扳機" #: Source/Core/DolphinQt/Config/NewPatchDialog.cpp:127 #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:163 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:305 -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:327 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:308 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Type" msgstr "類型" @@ -10218,7 +10296,7 @@ msgstr "" msgid "USA" msgstr "USA" -#: Source/Core/Core/HW/EXI/EXI_Device.h:93 +#: Source/Core/Core/HW/EXI/EXI_Device.h:94 msgid "USB Gecko" msgstr "" @@ -10426,7 +10504,7 @@ msgstr "" msgid "Unsigned Integer" msgstr "" -#: Source/Core/Core/FreeLookManager.cpp:82 +#: Source/Core/Core/FreeLookManager.cpp:86 #: Source/Core/Core/HW/WiimoteEmu/Extension/Guitar.cpp:75 #: Source/Core/DolphinQt/ResourcePackManager.cpp:42 #: Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp:20 @@ -10496,6 +10574,10 @@ msgstr "" msgid "Usage Statistics Reporting Settings" msgstr "" +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 +msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" +msgstr "" + #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" msgstr "" @@ -10508,7 +10590,7 @@ msgstr "" msgid "Use Lossless Codec (FFV1)" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:109 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:120 msgid "Use PAL60 Mode (EuRGB60)" msgstr "" @@ -10580,11 +10662,11 @@ msgstr "" msgid "User Style:" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:311 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:308 msgid "User Variables" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:313 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:310 msgid "" "User defined variables usable in the control expression.\n" "You can use them to save or retrieve values between\n" @@ -10670,7 +10752,7 @@ msgstr "" msgid "Verify Integrity" msgstr "" -#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:385 +#: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" msgstr "" @@ -10791,7 +10873,7 @@ msgstr "" msgid "WASAPI (Exclusive Mode)" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:257 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:231 msgid "WFS Path:" msgstr "" @@ -10930,7 +11012,7 @@ msgid "" "unsure, leave this checked.
" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:176 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:269 msgid "Whitelisted USB Passthrough Devices" msgstr "" @@ -10950,7 +11032,7 @@ msgstr "Wii" msgid "Wii Menu" msgstr "" -#: Source/Core/DolphinQt/Settings/PathPane.cpp:211 +#: Source/Core/DolphinQt/Settings/PathPane.cpp:193 msgid "Wii NAND Root:" msgstr "" @@ -10976,7 +11058,7 @@ msgstr "" msgid "Wii Remote Orientation" msgstr "" -#: Source/Core/DolphinQt/Settings/WiiPane.cpp:184 +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:277 msgid "Wii Remote Settings" msgstr "" @@ -11096,7 +11178,7 @@ msgstr "" msgid "XF register " msgstr "" -#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:58 +#: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:67 msgid "XLink Kai BBA Destination Address" msgstr "" @@ -11130,6 +11212,20 @@ msgstr "" msgid "Yes to &All" msgstr "" +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:237 +msgid "" +"You are about to convert the content of the file at %2 into the folder at " +"%1. All current content of the folder will be deleted. Are you sure you want " +"to continue?" +msgstr "" + +#: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 +msgid "" +"You are about to convert the content of the folder at %1 into the file at " +"%2. All current content of the file will be deleted. Are you sure you want " +"to continue?" +msgstr "" + #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" "You are about to run an NKit disc image. NKit disc images cause problems " @@ -11229,7 +11325,7 @@ msgstr "" msgid "[%1, %2] and [%3, %4]" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:276 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:273 msgid "^ Xor" msgstr "" @@ -11361,7 +11457,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:683 +#: Source/Core/DiscIO/VolumeVerifier.cpp:685 msgid "{0} (Masterpiece)" msgstr "" @@ -11396,7 +11492,7 @@ msgstr "" msgid "{0} was not a directory, moved to *.original" msgstr "" -#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:278 +#: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:275 msgid "| Or" msgstr "" From a363e8147eac4e5f96758d14b9b94895cd4efffc Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 24 Jul 2022 02:31:14 -0700 Subject: [PATCH 463/659] add spng submodule --- .gitmodules | 5 +++++ Externals/libspng/libspng | 1 + 2 files changed, 6 insertions(+) create mode 160000 Externals/libspng/libspng diff --git a/.gitmodules b/.gitmodules index 546f12290f..b691217702 100644 --- a/.gitmodules +++ b/.gitmodules @@ -32,3 +32,8 @@ path = Externals/zlib-ng/zlib-ng url = https://github.com/zlib-ng/zlib-ng.git shallow = true +[submodule "Externals/libspng/libspng"] + path = Externals/libspng/libspng + url = https://github.com/randy408/libspng.git + branch = v0.7.2 + shallow = true diff --git a/Externals/libspng/libspng b/Externals/libspng/libspng new file mode 160000 index 0000000000..dc5b1032c0 --- /dev/null +++ b/Externals/libspng/libspng @@ -0,0 +1 @@ +Subproject commit dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9 From acb10f0006428ce958e619f3ca073c052048e608 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 24 Jul 2022 02:55:57 -0700 Subject: [PATCH 464/659] replace libpng with libspng --- CMakeLists.txt | 16 +- Externals/ExternalsReferenceAll.props | 4 +- Externals/libpng/CMakeLists.txt | 204 - Externals/libpng/LICENSE | 134 - Externals/libpng/arm/arm_init.c | 136 - Externals/libpng/arm/filter_neon.S | 253 - Externals/libpng/arm/filter_neon_intrinsics.c | 402 -- .../libpng/arm/palette_neon_intrinsics.c | 149 - .../libpng/intel/filter_sse2_intrinsics.c | 391 -- Externals/libpng/intel/intel_init.c | 52 - Externals/libpng/mips/filter_msa_intrinsics.c | 808 --- Externals/libpng/mips/mips_init.c | 130 - Externals/libpng/png.c | 4607 --------------- Externals/libpng/png.h | 3247 ----------- Externals/libpng/png/png.vcxproj | 50 - Externals/libpng/pngconf.h | 623 -- Externals/libpng/pngdebug.h | 153 - Externals/libpng/pngerror.c | 963 ---- Externals/libpng/pngget.c | 1249 ---- Externals/libpng/pnginfo.h | 267 - Externals/libpng/pnglibconf.h | 219 - Externals/libpng/pngmem.c | 284 - Externals/libpng/pngpread.c | 1096 ---- Externals/libpng/pngpriv.h | 2152 ------- Externals/libpng/pngread.c | 4225 -------------- Externals/libpng/pngrio.c | 120 - Externals/libpng/pngrtran.c | 5044 ----------------- Externals/libpng/pngrutil.c | 4681 --------------- Externals/libpng/pngset.c | 1802 ------ Externals/libpng/pngstruct.h | 489 -- Externals/libpng/pngtest.c | 2158 ------- Externals/libpng/pngtrans.c | 864 --- Externals/libpng/pngwio.c | 168 - Externals/libpng/pngwrite.c | 2395 -------- Externals/libpng/pngwtran.c | 575 -- Externals/libpng/pngwutil.c | 2781 --------- .../libpng/powerpc/filter_vsx_intrinsics.c | 768 --- Externals/libpng/powerpc/powerpc_init.c | 126 - Externals/libspng/CMakeLists.txt | 9 + Externals/libspng/spng.vcxproj | 35 + Externals/licenses.md | 14 +- Source/Core/Common/CMakeLists.txt | 9 +- Source/Core/Common/Image.cpp | 177 +- Source/Core/Common/Image.h | 7 +- Source/Core/Common/ImageC.c | 43 - Source/Core/Common/ImageC.h | 29 - Source/Core/DolphinLib.props | 6 - Source/Core/InputCommon/CMakeLists.txt | 2 +- Source/Core/VideoCommon/CMakeLists.txt | 2 +- Source/VSProps/Base.props | 3 +- Source/dolphin-emu.sln | 22 +- 51 files changed, 145 insertions(+), 43998 deletions(-) delete mode 100644 Externals/libpng/CMakeLists.txt delete mode 100644 Externals/libpng/LICENSE delete mode 100644 Externals/libpng/arm/arm_init.c delete mode 100644 Externals/libpng/arm/filter_neon.S delete mode 100644 Externals/libpng/arm/filter_neon_intrinsics.c delete mode 100644 Externals/libpng/arm/palette_neon_intrinsics.c delete mode 100644 Externals/libpng/intel/filter_sse2_intrinsics.c delete mode 100644 Externals/libpng/intel/intel_init.c delete mode 100644 Externals/libpng/mips/filter_msa_intrinsics.c delete mode 100644 Externals/libpng/mips/mips_init.c delete mode 100644 Externals/libpng/png.c delete mode 100644 Externals/libpng/png.h delete mode 100644 Externals/libpng/png/png.vcxproj delete mode 100644 Externals/libpng/pngconf.h delete mode 100644 Externals/libpng/pngdebug.h delete mode 100644 Externals/libpng/pngerror.c delete mode 100644 Externals/libpng/pngget.c delete mode 100644 Externals/libpng/pnginfo.h delete mode 100644 Externals/libpng/pnglibconf.h delete mode 100644 Externals/libpng/pngmem.c delete mode 100644 Externals/libpng/pngpread.c delete mode 100644 Externals/libpng/pngpriv.h delete mode 100644 Externals/libpng/pngread.c delete mode 100644 Externals/libpng/pngrio.c delete mode 100644 Externals/libpng/pngrtran.c delete mode 100644 Externals/libpng/pngrutil.c delete mode 100644 Externals/libpng/pngset.c delete mode 100644 Externals/libpng/pngstruct.h delete mode 100644 Externals/libpng/pngtest.c delete mode 100644 Externals/libpng/pngtrans.c delete mode 100644 Externals/libpng/pngwio.c delete mode 100644 Externals/libpng/pngwrite.c delete mode 100644 Externals/libpng/pngwtran.c delete mode 100644 Externals/libpng/pngwutil.c delete mode 100644 Externals/libpng/powerpc/filter_vsx_intrinsics.c delete mode 100644 Externals/libpng/powerpc/powerpc_init.c create mode 100644 Externals/libspng/CMakeLists.txt create mode 100644 Externals/libspng/spng.vcxproj delete mode 100644 Source/Core/Common/ImageC.c delete mode 100644 Source/Core/Common/ImageC.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c5edc551e6..a4f4019217 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,7 +53,6 @@ if(NOT ANDROID) endif() option(USE_SHARED_ENET "Use shared libenet if found rather than Dolphin's soon-to-compatibly-diverge version" OFF) -option(USE_SHARED_LIBPNG "Use shared libpng if found" ON) option(USE_UPNP "Enables UPnP port mapping support" ON) option(ENABLE_NOGUI "Enable NoGUI frontend" ON) option(ENABLE_QT "Enable Qt (Default)" ON) @@ -411,9 +410,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") find_library(IOB_LIBRARY IOBluetooth) find_library(IOK_LIBRARY IOKit) find_library(OPENGL_LIBRARY OpenGL) - - # We don't want to use shared libpng. - set(USE_SHARED_LIBPNG OFF) endif() if(ENABLE_LTO) @@ -810,17 +806,7 @@ else() set(LZO lzo2) endif() -if(USE_SHARED_LIBPNG) - check_lib(PNG libpng png png.h QUIET) -endif() -if (PNG_FOUND) - message(STATUS "Using shared libpng") -else() - check_vendoring_approved(libpng) - message(STATUS "Using static libpng from Externals") - add_subdirectory(Externals/libpng) - set(PNG png) -endif() +add_subdirectory(Externals/libspng) # Using static FreeSurround from Externals # There is no system FreeSurround library. diff --git a/Externals/ExternalsReferenceAll.props b/Externals/ExternalsReferenceAll.props index 22934381c2..bee90fe7c5 100644 --- a/Externals/ExternalsReferenceAll.props +++ b/Externals/ExternalsReferenceAll.props @@ -52,8 +52,8 @@ {055a775f-b4f5-4970-9240-f6cf7661f37b} - - {4c9f135b-a85e-430c-bad4-4c67ef5fc12c} + + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313} {349ee8f9-7d25-4909-aaf5-ff3fade72187} diff --git a/Externals/libpng/CMakeLists.txt b/Externals/libpng/CMakeLists.txt deleted file mode 100644 index dabe91af1d..0000000000 --- a/Externals/libpng/CMakeLists.txt +++ /dev/null @@ -1,204 +0,0 @@ -# selectively extracted and adapted from the libpng CMakeLists.txt, which has the following copyright notice: - - -# Copyright (C) 2018 Cosmin Truta -# Copyright (C) 2007,2009-2018 Glenn Randers-Pehrson -# Written by Christian Ehrlicher, 2007 -# Revised by Roger Lowman, 2009-2010 -# Revised by Clifford Yapp, 2011-2012,2017 -# Revised by Roger Leigh, 2016 -# Revised by Andreas Franek, 2016 -# Revised by Sam Serrels, 2017 -# Revised by Vadim Barkov, 2017 -# Revised by Vicky Pfau, 2018 -# Revised by Cameron Cawley, 2018 -# Revised by Cosmin Truta, 2018 -# Revised by Kyle Bentley, 2018 - -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h - - - -add_library(png STATIC - png.c - pngerror.c - pngget.c - pngmem.c - pngpread.c - pngread.c - pngrio.c - pngrtran.c - pngrutil.c - pngset.c - pngtrans.c - pngwio.c - pngwrite.c - pngwtran.c - pngwutil.c -) - -dolphin_disable_warnings_msvc(png) - -option(PNG_HARDWARE_OPTIMIZATIONS "Enable hardware optimizations for libpng" OFF) - -if(PNG_HARDWARE_OPTIMIZATIONS) - - message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") - - # set definitions and sources for arm - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") - set(PNG_ARM_NEON_POSSIBLE_VALUES check on off) - set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations: - check: (default) use internal checking code; - off: disable the optimizations; - on: turn on unconditionally.") - set_property(CACHE PNG_ARM_NEON PROPERTY STRINGS - ${PNG_ARM_NEON_POSSIBLE_VALUES}) - list(FIND PNG_ARM_NEON_POSSIBLE_VALUES ${PNG_ARM_NEON} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_ARM_NEON must be one of [${PNG_ARM_NEON_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_ARM_NEON} STREQUAL "off") - target_sources(png PRIVATE - arm/arm_init.c - arm/filter_neon.S - arm/filter_neon_intrinsics.c - arm/palette_neon_intrinsics.c) - - if(${PNG_ARM_NEON} STREQUAL "on") - target_compile_definitions(png PUBLIC -DPNG_ARM_NEON_OPT=2) - elseif(${PNG_ARM_NEON} STREQUAL "check") - target_compile_definitions(png PUBLIC -DPNG_ARM_NEON_CHECK_SUPPORTED) - endif() - else() - target_compile_definitions(png PUBLIC -DPNG_ARM_NEON_OPT=0) - endif() - endif() - - # set definitions and sources for powerpc - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") - set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off) - set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations: - off: disable the optimizations.") - set_property(CACHE PNG_POWERPC_VSX PROPERTY STRINGS - ${PNG_POWERPC_VSX_POSSIBLE_VALUES}) - list(FIND PNG_POWERPC_VSX_POSSIBLE_VALUES ${PNG_POWERPC_VSX} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_POWERPC_VSX must be one of [${PNG_POWERPC_VSX_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_POWERPC_VSX} STREQUAL "off") - target_sources(png PRIVATE - powerpc/powerpc_init.c - powerpc/filter_vsx_intrinsics.c) - if(${PNG_POWERPC_VSX} STREQUAL "on") - target_compile_definitions(png PUBLIC -DPNG_POWERPC_VSX_OPT=2) - endif() - else() - target_compile_definitions(png PUBLIC -DPNG_POWERPC_VSX_OPT=0) - endif() - endif() - - # set definitions and sources for intel - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") - set(PNG_INTEL_SSE_POSSIBLE_VALUES on off) - set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations: - off: disable the optimizations") - set_property(CACHE PNG_INTEL_SSE PROPERTY STRINGS - ${PNG_INTEL_SSE_POSSIBLE_VALUES}) - list(FIND PNG_INTEL_SSE_POSSIBLE_VALUES ${PNG_INTEL_SSE} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_INTEL_SSE must be one of [${PNG_INTEL_SSE_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_INTEL_SSE} STREQUAL "off") - target_sources(png PRIVATE - intel/intel_init.c - intel/filter_sse2_intrinsics.c) - if(${PNG_INTEL_SSE} STREQUAL "on") - target_compile_definitions(png PUBLIC -DPNG_INTEL_SSE_OPT=1) - endif() - else() - target_compile_definitions(png PUBLIC -DPNG_INTEL_SSE_OPT=0) - endif() - endif() - - # set definitions and sources for MIPS - if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") - set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) - set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations: - off: disable the optimizations") - set_property(CACHE PNG_MIPS_MSA PROPERTY STRINGS - ${PNG_MIPS_MSA_POSSIBLE_VALUES}) - list(FIND PNG_MIPS_MSA_POSSIBLE_VALUES ${PNG_MIPS_MSA} index) - if(index EQUAL -1) - message(FATAL_ERROR - "PNG_MIPS_MSA must be one of [${PNG_MIPS_MSA_POSSIBLE_VALUES}]") - elseif(NOT ${PNG_MIPS_MSA} STREQUAL "off") - target_sources(png PRIVATE - mips/mips_init.c - mips/filter_msa_intrinsics.c) - if(${PNG_MIPS_MSA} STREQUAL "on") - target_compile_definitions(png PUBLIC -DPNG_MIPS_MSA_OPT=2) - endif() - else() - target_compile_definitions(png PUBLIC -DPNG_MIPS_MSA_OPT=0) - endif() - endif() - -else(PNG_HARDWARE_OPTIMIZATIONS) - - # set definitions and sources for arm - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") - target_compile_definitions(png PUBLIC -DPNG_ARM_NEON_OPT=0) - endif() - - # set definitions and sources for powerpc - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*") - target_compile_definitions(png PUBLIC -DPNG_POWERPC_VSX_OPT=0) - endif() - - # set definitions and sources for intel - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*") - target_compile_definitions(png PUBLIC -DPNG_INTEL_SSE_OPT=0) - endif() - - # set definitions and sources for MIPS - if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*") - target_compile_definitions(png PUBLIC -DPNG_MIPS_MSA_OPT=0) - endif() - -endif(PNG_HARDWARE_OPTIMIZATIONS) - -target_sources(png PRIVATE - # public headers - png.h - pngconf.h - pnglibconf.h - - # private headers - pngpriv.h - pngdebug.h - pnginfo.h - pngstruct.h -) - -target_include_directories(png PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} -) - -target_link_libraries(png PUBLIC ZLIB::ZLIB) - -if(NOT MSVC) - target_compile_options(png PRIVATE - -Wno-self-assign - ) -endif() diff --git a/Externals/libpng/LICENSE b/Externals/libpng/LICENSE deleted file mode 100644 index e0c5b531cf..0000000000 --- a/Externals/libpng/LICENSE +++ /dev/null @@ -1,134 +0,0 @@ -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE -========================================= - -PNG Reference Library License version 2 ---------------------------------------- - - * Copyright (c) 1995-2019 The PNG Reference Library Authors. - * Copyright (c) 2018-2019 Cosmin Truta. - * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. - * Copyright (c) 1996-1997 Andreas Dilger. - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -The software is supplied "as is", without warranty of any kind, -express or implied, including, without limitation, the warranties -of merchantability, fitness for a particular purpose, title, and -non-infringement. In no event shall the Copyright owners, or -anyone distributing the software, be liable for any damages or -other liability, whether in contract, tort or otherwise, arising -from, out of, or in connection with the software, or the use or -other dealings in the software, even if advised of the possibility -of such damage. - -Permission is hereby granted to use, copy, modify, and distribute -this software, or portions hereof, for any purpose, without fee, -subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you - use this software in a product, an acknowledgment in the product - documentation would be appreciated, but is not required. - - 2. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - - -PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) ------------------------------------------------------------------------ - -libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are -Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are -derived from libpng-1.0.6, and are distributed according to the same -disclaimer and license as libpng-1.0.6 with the following individuals -added to the list of Contributing Authors: - - Simon-Pierre Cadieux - Eric S. Raymond - Mans Rullgard - Cosmin Truta - Gilles Vollant - James Yu - Mandar Sahastrabuddhe - Google Inc. - Vadim Barkov - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of - the library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is - with the user. - -Some files in the "contrib" directory and some configure-generated -files that are distributed with libpng have other copyright owners, and -are released under other open source licenses. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from -libpng-0.96, and are distributed according to the same disclaimer and -license as libpng-0.96, with the following individuals added to the -list of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, -and are distributed according to the same disclaimer and license as -libpng-0.88, with the following individuals added to the list of -Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -Some files in the "scripts" directory have other copyright owners, -but are released under this license. - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing -Authors and Group 42, Inc. disclaim all warranties, expressed or -implied, including, without limitation, the warranties of -merchantability and of fitness for any purpose. The Contributing -Authors and Group 42, Inc. assume no liability for direct, indirect, -incidental, special, exemplary, or consequential damages, which may -result from the use of the PNG Reference Library, even if advised of -the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be misrepresented. - - 2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - - 3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, -without fee, and encourage the use of this source code as a component -to supporting the PNG file format in commercial products. If you use -this source code in a product, acknowledgment is not required but would -be appreciated. diff --git a/Externals/libpng/arm/arm_init.c b/Externals/libpng/arm/arm_init.c deleted file mode 100644 index a34ecdbef7..0000000000 --- a/Externals/libpng/arm/arm_init.c +++ /dev/null @@ -1,136 +0,0 @@ - -/* arm_init.c - NEON optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2014,2016 Glenn Randers-Pehrson - * Written by Mans Rullgard, 2011. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are - * called. - */ -#define _POSIX_SOURCE 1 - -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -#if PNG_ARM_NEON_OPT > 0 -#ifdef PNG_ARM_NEON_CHECK_SUPPORTED /* Do run-time checks */ -/* WARNING: it is strongly recommended that you do not build libpng with - * run-time checks for CPU features if at all possible. In the case of the ARM - * NEON instructions there is no processor-specific way of detecting the - * presence of the required support, therefore run-time detection is extremely - * OS specific. - * - * You may set the macro PNG_ARM_NEON_FILE to the file name of file containing - * a fragment of C source code which defines the png_have_neon function. There - * are a number of implementations in contrib/arm-neon, but the only one that - * has partial support is contrib/arm-neon/linux.c - a generic Linux - * implementation which reads /proc/cpufino. - */ -#ifndef PNG_ARM_NEON_FILE -# ifdef __linux__ -# define PNG_ARM_NEON_FILE "contrib/arm-neon/linux.c" -# endif -#endif - -#ifdef PNG_ARM_NEON_FILE - -#include /* for sig_atomic_t */ -static int png_have_neon(png_structp png_ptr); -#include PNG_ARM_NEON_FILE - -#else /* PNG_ARM_NEON_FILE */ -# error "PNG_ARM_NEON_FILE undefined: no support for run-time ARM NEON checks" -#endif /* PNG_ARM_NEON_FILE */ -#endif /* PNG_ARM_NEON_CHECK_SUPPORTED */ - -#ifndef PNG_ALIGNED_MEMORY_SUPPORTED -# error "ALIGNED_MEMORY is required; set: -DPNG_ALIGNED_MEMORY_SUPPORTED" -#endif - -void -png_init_filter_functions_neon(png_structp pp, unsigned int bpp) -{ - /* The switch statement is compiled in for ARM_NEON_API, the call to - * png_have_neon is compiled in for ARM_NEON_CHECK. If both are defined - * the check is only performed if the API has not set the NEON option on - * or off explicitly. In this case the check controls what happens. - * - * If the CHECK is not compiled in and the option is UNSET the behavior prior - * to 1.6.7 was to use the NEON code - this was a bug caused by having the - * wrong order of the 'ON' and 'default' cases. UNSET now defaults to OFF, - * as documented in png.h - */ - png_debug(1, "in png_init_filter_functions_neon"); -#ifdef PNG_ARM_NEON_API_SUPPORTED - switch ((pp->options >> PNG_ARM_NEON) & 3) - { - case PNG_OPTION_UNSET: - /* Allow the run-time check to execute if it has been enabled - - * thus both API and CHECK can be turned on. If it isn't supported - * this case will fall through to the 'default' below, which just - * returns. - */ -#endif /* PNG_ARM_NEON_API_SUPPORTED */ -#ifdef PNG_ARM_NEON_CHECK_SUPPORTED - { - static volatile sig_atomic_t no_neon = -1; /* not checked */ - - if (no_neon < 0) - no_neon = !png_have_neon(pp); - - if (no_neon) - return; - } -#ifdef PNG_ARM_NEON_API_SUPPORTED - break; -#endif -#endif /* PNG_ARM_NEON_CHECK_SUPPORTED */ - -#ifdef PNG_ARM_NEON_API_SUPPORTED - default: /* OFF or INVALID */ - return; - - case PNG_OPTION_ON: - /* Option turned on */ - break; - } -#endif - - /* IMPORTANT: any new external functions used here must be declared using - * PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the - * 'prefix' option to configure works: - * - * ./configure --with-libpng-prefix=foobar_ - * - * Verify you have got this right by running the above command, doing a build - * and examining pngprefix.h; it must contain a #define for every external - * function you add. (Notice that this happens automatically for the - * initialization function.) - */ - pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_neon; - - if (bpp == 3) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_neon; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_neon; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth3_neon; - } - - else if (bpp == 4) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_neon; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_neon; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth4_neon; - } -} -#endif /* PNG_ARM_NEON_OPT > 0 */ -#endif /* READ */ diff --git a/Externals/libpng/arm/filter_neon.S b/Externals/libpng/arm/filter_neon.S deleted file mode 100644 index 2308aad13e..0000000000 --- a/Externals/libpng/arm/filter_neon.S +++ /dev/null @@ -1,253 +0,0 @@ - -/* filter_neon.S - NEON optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2014,2017 Glenn Randers-Pehrson - * Written by Mans Rullgard, 2011. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* This is required to get the symbol renames, which are #defines, and the - * definitions (or not) of PNG_ARM_NEON_OPT and PNG_ARM_NEON_IMPLEMENTATION. - */ -#define PNG_VERSION_INFO_ONLY -#include "../pngpriv.h" - -#if (defined(__linux__) || defined(__FreeBSD__)) && defined(__ELF__) -.section .note.GNU-stack,"",%progbits /* mark stack as non-executable */ -#endif - -#ifdef PNG_READ_SUPPORTED - -/* Assembler NEON support - only works for 32-bit ARM (i.e. it does not work for - * ARM64). The code in arm/filter_neon_intrinsics.c supports ARM64, however it - * only works if -mfpu=neon is specified on the GCC command line. See pngpriv.h - * for the logic which sets PNG_USE_ARM_NEON_ASM: - */ -#if PNG_ARM_NEON_IMPLEMENTATION == 2 /* hand-coded assembler */ - -#if PNG_ARM_NEON_OPT > 0 - -#ifdef __ELF__ -# define ELF -#else -# define ELF @ -#endif - - .arch armv7-a - .fpu neon - -.macro func name, export=0 - .macro endfunc -ELF .size \name, . - \name - .endfunc - .purgem endfunc - .endm - .text - - /* Explicitly specifying alignment here because some versions of - * GAS don't align code correctly. This is harmless in correctly - * written versions of GAS. - */ - .align 2 - - .if \export - .global \name - .endif -ELF .type \name, STT_FUNC - .func \name -\name: -.endm - -func png_read_filter_row_sub4_neon, export=1 - ldr r3, [r0, #4] @ rowbytes - vmov.i8 d3, #0 -1: - vld4.32 {d4[],d5[],d6[],d7[]}, [r1,:128] - vadd.u8 d0, d3, d4 - vadd.u8 d1, d0, d5 - vadd.u8 d2, d1, d6 - vadd.u8 d3, d2, d7 - vst4.32 {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! - subs r3, r3, #16 - bgt 1b - - bx lr -endfunc - -func png_read_filter_row_sub3_neon, export=1 - ldr r3, [r0, #4] @ rowbytes - vmov.i8 d3, #0 - mov r0, r1 - mov r2, #3 - mov r12, #12 - vld1.8 {q11}, [r0], r12 -1: - vext.8 d5, d22, d23, #3 - vadd.u8 d0, d3, d22 - vext.8 d6, d22, d23, #6 - vadd.u8 d1, d0, d5 - vext.8 d7, d23, d23, #1 - vld1.8 {q11}, [r0], r12 - vst1.32 {d0[0]}, [r1,:32], r2 - vadd.u8 d2, d1, d6 - vst1.32 {d1[0]}, [r1], r2 - vadd.u8 d3, d2, d7 - vst1.32 {d2[0]}, [r1], r2 - vst1.32 {d3[0]}, [r1], r2 - subs r3, r3, #12 - bgt 1b - - bx lr -endfunc - -func png_read_filter_row_up_neon, export=1 - ldr r3, [r0, #4] @ rowbytes -1: - vld1.8 {q0}, [r1,:128] - vld1.8 {q1}, [r2,:128]! - vadd.u8 q0, q0, q1 - vst1.8 {q0}, [r1,:128]! - subs r3, r3, #16 - bgt 1b - - bx lr -endfunc - -func png_read_filter_row_avg4_neon, export=1 - ldr r12, [r0, #4] @ rowbytes - vmov.i8 d3, #0 -1: - vld4.32 {d4[],d5[],d6[],d7[]}, [r1,:128] - vld4.32 {d16[],d17[],d18[],d19[]},[r2,:128]! - vhadd.u8 d0, d3, d16 - vadd.u8 d0, d0, d4 - vhadd.u8 d1, d0, d17 - vadd.u8 d1, d1, d5 - vhadd.u8 d2, d1, d18 - vadd.u8 d2, d2, d6 - vhadd.u8 d3, d2, d19 - vadd.u8 d3, d3, d7 - vst4.32 {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! - subs r12, r12, #16 - bgt 1b - - bx lr -endfunc - -func png_read_filter_row_avg3_neon, export=1 - push {r4,lr} - ldr r12, [r0, #4] @ rowbytes - vmov.i8 d3, #0 - mov r0, r1 - mov r4, #3 - mov lr, #12 - vld1.8 {q11}, [r0], lr -1: - vld1.8 {q10}, [r2], lr - vext.8 d5, d22, d23, #3 - vhadd.u8 d0, d3, d20 - vext.8 d17, d20, d21, #3 - vadd.u8 d0, d0, d22 - vext.8 d6, d22, d23, #6 - vhadd.u8 d1, d0, d17 - vext.8 d18, d20, d21, #6 - vadd.u8 d1, d1, d5 - vext.8 d7, d23, d23, #1 - vld1.8 {q11}, [r0], lr - vst1.32 {d0[0]}, [r1,:32], r4 - vhadd.u8 d2, d1, d18 - vst1.32 {d1[0]}, [r1], r4 - vext.8 d19, d21, d21, #1 - vadd.u8 d2, d2, d6 - vhadd.u8 d3, d2, d19 - vst1.32 {d2[0]}, [r1], r4 - vadd.u8 d3, d3, d7 - vst1.32 {d3[0]}, [r1], r4 - subs r12, r12, #12 - bgt 1b - - pop {r4,pc} -endfunc - -.macro paeth rx, ra, rb, rc - vaddl.u8 q12, \ra, \rb @ a + b - vaddl.u8 q15, \rc, \rc @ 2*c - vabdl.u8 q13, \rb, \rc @ pa - vabdl.u8 q14, \ra, \rc @ pb - vabd.u16 q15, q12, q15 @ pc - vcle.u16 q12, q13, q14 @ pa <= pb - vcle.u16 q13, q13, q15 @ pa <= pc - vcle.u16 q14, q14, q15 @ pb <= pc - vand q12, q12, q13 @ pa <= pb && pa <= pc - vmovn.u16 d28, q14 - vmovn.u16 \rx, q12 - vbsl d28, \rb, \rc - vbsl \rx, \ra, d28 -.endm - -func png_read_filter_row_paeth4_neon, export=1 - ldr r12, [r0, #4] @ rowbytes - vmov.i8 d3, #0 - vmov.i8 d20, #0 -1: - vld4.32 {d4[],d5[],d6[],d7[]}, [r1,:128] - vld4.32 {d16[],d17[],d18[],d19[]},[r2,:128]! - paeth d0, d3, d16, d20 - vadd.u8 d0, d0, d4 - paeth d1, d0, d17, d16 - vadd.u8 d1, d1, d5 - paeth d2, d1, d18, d17 - vadd.u8 d2, d2, d6 - paeth d3, d2, d19, d18 - vmov d20, d19 - vadd.u8 d3, d3, d7 - vst4.32 {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! - subs r12, r12, #16 - bgt 1b - - bx lr -endfunc - -func png_read_filter_row_paeth3_neon, export=1 - push {r4,lr} - ldr r12, [r0, #4] @ rowbytes - vmov.i8 d3, #0 - vmov.i8 d4, #0 - mov r0, r1 - mov r4, #3 - mov lr, #12 - vld1.8 {q11}, [r0], lr -1: - vld1.8 {q10}, [r2], lr - paeth d0, d3, d20, d4 - vext.8 d5, d22, d23, #3 - vadd.u8 d0, d0, d22 - vext.8 d17, d20, d21, #3 - paeth d1, d0, d17, d20 - vst1.32 {d0[0]}, [r1,:32], r4 - vext.8 d6, d22, d23, #6 - vadd.u8 d1, d1, d5 - vext.8 d18, d20, d21, #6 - paeth d2, d1, d18, d17 - vext.8 d7, d23, d23, #1 - vld1.8 {q11}, [r0], lr - vst1.32 {d1[0]}, [r1], r4 - vadd.u8 d2, d2, d6 - vext.8 d19, d21, d21, #1 - paeth d3, d2, d19, d18 - vst1.32 {d2[0]}, [r1], r4 - vmov d4, d19 - vadd.u8 d3, d3, d7 - vst1.32 {d3[0]}, [r1], r4 - subs r12, r12, #12 - bgt 1b - - pop {r4,pc} -endfunc -#endif /* PNG_ARM_NEON_OPT > 0 */ -#endif /* PNG_ARM_NEON_IMPLEMENTATION == 2 (assembler) */ -#endif /* READ */ diff --git a/Externals/libpng/arm/filter_neon_intrinsics.c b/Externals/libpng/arm/filter_neon_intrinsics.c deleted file mode 100644 index 553c0be21c..0000000000 --- a/Externals/libpng/arm/filter_neon_intrinsics.c +++ /dev/null @@ -1,402 +0,0 @@ - -/* filter_neon_intrinsics.c - NEON optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2014,2016 Glenn Randers-Pehrson - * Written by James Yu , October 2013. - * Based on filter_neon.S, written by Mans Rullgard, 2011. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -/* This code requires -mfpu=neon on the command line: */ -#if PNG_ARM_NEON_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */ - -#if defined(_MSC_VER) && defined(_M_ARM64) -# include -#else -# include -#endif - -/* libpng row pointers are not necessarily aligned to any particular boundary, - * however this code will only work with appropriate alignment. arm/arm_init.c - * checks for this (and will not compile unless it is done). This code uses - * variants of png_aligncast to avoid compiler warnings. - */ -#define png_ptr(type,pointer) png_aligncast(type *,pointer) -#define png_ptrc(type,pointer) png_aligncastconst(const type *,pointer) - -/* The following relies on a variable 'temp_pointer' being declared with type - * 'type'. This is written this way just to hide the GCC strict aliasing - * warning; note that the code is safe because there never is an alias between - * the input and output pointers. - * - * When compiling with MSVC ARM64, the png_ldr macro can't be passed directly - * to vst4_lane_u32, because of an internal compiler error inside MSVC. - * To avoid this compiler bug, we use a temporary variable (vdest_val) to store - * the result of png_ldr. - */ -#define png_ldr(type,pointer)\ - (temp_pointer = png_ptr(type,pointer), *temp_pointer) - -#if PNG_ARM_NEON_OPT > 0 - -void -png_read_filter_row_up_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_bytep rp_stop = row + row_info->rowbytes; - png_const_bytep pp = prev_row; - - png_debug(1, "in png_read_filter_row_up_neon"); - - for (; rp < rp_stop; rp += 16, pp += 16) - { - uint8x16_t qrp, qpp; - - qrp = vld1q_u8(rp); - qpp = vld1q_u8(pp); - qrp = vaddq_u8(qrp, qpp); - vst1q_u8(rp, qrp); - } -} - -void -png_read_filter_row_sub3_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_bytep rp_stop = row + row_info->rowbytes; - - uint8x16_t vtmp = vld1q_u8(rp); - uint8x8x2_t *vrpt = png_ptr(uint8x8x2_t, &vtmp); - uint8x8x2_t vrp = *vrpt; - - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - png_debug(1, "in png_read_filter_row_sub3_neon"); - - for (; rp < rp_stop;) - { - uint8x8_t vtmp1, vtmp2; - uint32x2_t *temp_pointer; - - vtmp1 = vext_u8(vrp.val[0], vrp.val[1], 3); - vdest.val[0] = vadd_u8(vdest.val[3], vrp.val[0]); - vtmp2 = vext_u8(vrp.val[0], vrp.val[1], 6); - vdest.val[1] = vadd_u8(vdest.val[0], vtmp1); - - vtmp1 = vext_u8(vrp.val[1], vrp.val[1], 1); - vdest.val[2] = vadd_u8(vdest.val[1], vtmp2); - vdest.val[3] = vadd_u8(vdest.val[2], vtmp1); - - vtmp = vld1q_u8(rp + 12); - vrpt = png_ptr(uint8x8x2_t, &vtmp); - vrp = *vrpt; - - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[0]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[1]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[2]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[3]), 0); - rp += 3; - } - - PNG_UNUSED(prev_row) -} - -void -png_read_filter_row_sub4_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_bytep rp_stop = row + row_info->rowbytes; - - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - png_debug(1, "in png_read_filter_row_sub4_neon"); - - for (; rp < rp_stop; rp += 16) - { - uint32x2x4_t vtmp = vld4_u32(png_ptr(uint32_t,rp)); - uint8x8x4_t *vrpt = png_ptr(uint8x8x4_t,&vtmp); - uint8x8x4_t vrp = *vrpt; - uint32x2x4_t *temp_pointer; - uint32x2x4_t vdest_val; - - vdest.val[0] = vadd_u8(vdest.val[3], vrp.val[0]); - vdest.val[1] = vadd_u8(vdest.val[0], vrp.val[1]); - vdest.val[2] = vadd_u8(vdest.val[1], vrp.val[2]); - vdest.val[3] = vadd_u8(vdest.val[2], vrp.val[3]); - - vdest_val = png_ldr(uint32x2x4_t, &vdest); - vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); - } - - PNG_UNUSED(prev_row) -} - -void -png_read_filter_row_avg3_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_const_bytep pp = prev_row; - png_bytep rp_stop = row + row_info->rowbytes; - - uint8x16_t vtmp; - uint8x8x2_t *vrpt; - uint8x8x2_t vrp; - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - vtmp = vld1q_u8(rp); - vrpt = png_ptr(uint8x8x2_t,&vtmp); - vrp = *vrpt; - - png_debug(1, "in png_read_filter_row_avg3_neon"); - - for (; rp < rp_stop; pp += 12) - { - uint8x8_t vtmp1, vtmp2, vtmp3; - - uint8x8x2_t *vppt; - uint8x8x2_t vpp; - - uint32x2_t *temp_pointer; - - vtmp = vld1q_u8(pp); - vppt = png_ptr(uint8x8x2_t,&vtmp); - vpp = *vppt; - - vtmp1 = vext_u8(vrp.val[0], vrp.val[1], 3); - vdest.val[0] = vhadd_u8(vdest.val[3], vpp.val[0]); - vdest.val[0] = vadd_u8(vdest.val[0], vrp.val[0]); - - vtmp2 = vext_u8(vpp.val[0], vpp.val[1], 3); - vtmp3 = vext_u8(vrp.val[0], vrp.val[1], 6); - vdest.val[1] = vhadd_u8(vdest.val[0], vtmp2); - vdest.val[1] = vadd_u8(vdest.val[1], vtmp1); - - vtmp2 = vext_u8(vpp.val[0], vpp.val[1], 6); - vtmp1 = vext_u8(vrp.val[1], vrp.val[1], 1); - - vtmp = vld1q_u8(rp + 12); - vrpt = png_ptr(uint8x8x2_t,&vtmp); - vrp = *vrpt; - - vdest.val[2] = vhadd_u8(vdest.val[1], vtmp2); - vdest.val[2] = vadd_u8(vdest.val[2], vtmp3); - - vtmp2 = vext_u8(vpp.val[1], vpp.val[1], 1); - - vdest.val[3] = vhadd_u8(vdest.val[2], vtmp2); - vdest.val[3] = vadd_u8(vdest.val[3], vtmp1); - - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[0]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[1]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[2]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[3]), 0); - rp += 3; - } -} - -void -png_read_filter_row_avg4_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_bytep rp_stop = row + row_info->rowbytes; - png_const_bytep pp = prev_row; - - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - png_debug(1, "in png_read_filter_row_avg4_neon"); - - for (; rp < rp_stop; rp += 16, pp += 16) - { - uint32x2x4_t vtmp; - uint8x8x4_t *vrpt, *vppt; - uint8x8x4_t vrp, vpp; - uint32x2x4_t *temp_pointer; - uint32x2x4_t vdest_val; - - vtmp = vld4_u32(png_ptr(uint32_t,rp)); - vrpt = png_ptr(uint8x8x4_t,&vtmp); - vrp = *vrpt; - vtmp = vld4_u32(png_ptrc(uint32_t,pp)); - vppt = png_ptr(uint8x8x4_t,&vtmp); - vpp = *vppt; - - vdest.val[0] = vhadd_u8(vdest.val[3], vpp.val[0]); - vdest.val[0] = vadd_u8(vdest.val[0], vrp.val[0]); - vdest.val[1] = vhadd_u8(vdest.val[0], vpp.val[1]); - vdest.val[1] = vadd_u8(vdest.val[1], vrp.val[1]); - vdest.val[2] = vhadd_u8(vdest.val[1], vpp.val[2]); - vdest.val[2] = vadd_u8(vdest.val[2], vrp.val[2]); - vdest.val[3] = vhadd_u8(vdest.val[2], vpp.val[3]); - vdest.val[3] = vadd_u8(vdest.val[3], vrp.val[3]); - - vdest_val = png_ldr(uint32x2x4_t, &vdest); - vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); - } -} - -static uint8x8_t -paeth(uint8x8_t a, uint8x8_t b, uint8x8_t c) -{ - uint8x8_t d, e; - uint16x8_t p1, pa, pb, pc; - - p1 = vaddl_u8(a, b); /* a + b */ - pc = vaddl_u8(c, c); /* c * 2 */ - pa = vabdl_u8(b, c); /* pa */ - pb = vabdl_u8(a, c); /* pb */ - pc = vabdq_u16(p1, pc); /* pc */ - - p1 = vcleq_u16(pa, pb); /* pa <= pb */ - pa = vcleq_u16(pa, pc); /* pa <= pc */ - pb = vcleq_u16(pb, pc); /* pb <= pc */ - - p1 = vandq_u16(p1, pa); /* pa <= pb && pa <= pc */ - - d = vmovn_u16(pb); - e = vmovn_u16(p1); - - d = vbsl_u8(d, b, c); - e = vbsl_u8(e, a, d); - - return e; -} - -void -png_read_filter_row_paeth3_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_const_bytep pp = prev_row; - png_bytep rp_stop = row + row_info->rowbytes; - - uint8x16_t vtmp; - uint8x8x2_t *vrpt; - uint8x8x2_t vrp; - uint8x8_t vlast = vdup_n_u8(0); - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - vtmp = vld1q_u8(rp); - vrpt = png_ptr(uint8x8x2_t,&vtmp); - vrp = *vrpt; - - png_debug(1, "in png_read_filter_row_paeth3_neon"); - - for (; rp < rp_stop; pp += 12) - { - uint8x8x2_t *vppt; - uint8x8x2_t vpp; - uint8x8_t vtmp1, vtmp2, vtmp3; - uint32x2_t *temp_pointer; - - vtmp = vld1q_u8(pp); - vppt = png_ptr(uint8x8x2_t,&vtmp); - vpp = *vppt; - - vdest.val[0] = paeth(vdest.val[3], vpp.val[0], vlast); - vdest.val[0] = vadd_u8(vdest.val[0], vrp.val[0]); - - vtmp1 = vext_u8(vrp.val[0], vrp.val[1], 3); - vtmp2 = vext_u8(vpp.val[0], vpp.val[1], 3); - vdest.val[1] = paeth(vdest.val[0], vtmp2, vpp.val[0]); - vdest.val[1] = vadd_u8(vdest.val[1], vtmp1); - - vtmp1 = vext_u8(vrp.val[0], vrp.val[1], 6); - vtmp3 = vext_u8(vpp.val[0], vpp.val[1], 6); - vdest.val[2] = paeth(vdest.val[1], vtmp3, vtmp2); - vdest.val[2] = vadd_u8(vdest.val[2], vtmp1); - - vtmp1 = vext_u8(vrp.val[1], vrp.val[1], 1); - vtmp2 = vext_u8(vpp.val[1], vpp.val[1], 1); - - vtmp = vld1q_u8(rp + 12); - vrpt = png_ptr(uint8x8x2_t,&vtmp); - vrp = *vrpt; - - vdest.val[3] = paeth(vdest.val[2], vtmp2, vtmp3); - vdest.val[3] = vadd_u8(vdest.val[3], vtmp1); - - vlast = vtmp2; - - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[0]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[1]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[2]), 0); - rp += 3; - vst1_lane_u32(png_ptr(uint32_t,rp), png_ldr(uint32x2_t,&vdest.val[3]), 0); - rp += 3; - } -} - -void -png_read_filter_row_paeth4_neon(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp = row; - png_bytep rp_stop = row + row_info->rowbytes; - png_const_bytep pp = prev_row; - - uint8x8_t vlast = vdup_n_u8(0); - uint8x8x4_t vdest; - vdest.val[3] = vdup_n_u8(0); - - png_debug(1, "in png_read_filter_row_paeth4_neon"); - - for (; rp < rp_stop; rp += 16, pp += 16) - { - uint32x2x4_t vtmp; - uint8x8x4_t *vrpt, *vppt; - uint8x8x4_t vrp, vpp; - uint32x2x4_t *temp_pointer; - uint32x2x4_t vdest_val; - - vtmp = vld4_u32(png_ptr(uint32_t,rp)); - vrpt = png_ptr(uint8x8x4_t,&vtmp); - vrp = *vrpt; - vtmp = vld4_u32(png_ptrc(uint32_t,pp)); - vppt = png_ptr(uint8x8x4_t,&vtmp); - vpp = *vppt; - - vdest.val[0] = paeth(vdest.val[3], vpp.val[0], vlast); - vdest.val[0] = vadd_u8(vdest.val[0], vrp.val[0]); - vdest.val[1] = paeth(vdest.val[0], vpp.val[1], vpp.val[0]); - vdest.val[1] = vadd_u8(vdest.val[1], vrp.val[1]); - vdest.val[2] = paeth(vdest.val[1], vpp.val[2], vpp.val[1]); - vdest.val[2] = vadd_u8(vdest.val[2], vrp.val[2]); - vdest.val[3] = paeth(vdest.val[2], vpp.val[3], vpp.val[2]); - vdest.val[3] = vadd_u8(vdest.val[3], vrp.val[3]); - - vlast = vpp.val[3]; - - vdest_val = png_ldr(uint32x2x4_t, &vdest); - vst4_lane_u32(png_ptr(uint32_t,rp), vdest_val, 0); - } -} - -#endif /* PNG_ARM_NEON_OPT > 0 */ -#endif /* PNG_ARM_NEON_IMPLEMENTATION == 1 (intrinsics) */ -#endif /* READ */ diff --git a/Externals/libpng/arm/palette_neon_intrinsics.c b/Externals/libpng/arm/palette_neon_intrinsics.c deleted file mode 100644 index b4d1fd2abf..0000000000 --- a/Externals/libpng/arm/palette_neon_intrinsics.c +++ /dev/null @@ -1,149 +0,0 @@ - -/* palette_neon_intrinsics.c - NEON optimised palette expansion functions - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 2017-2018 Arm Holdings. All rights reserved. - * Written by Richard Townsend , February 2017. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "../pngpriv.h" - -#if PNG_ARM_NEON_IMPLEMENTATION == 1 - -#if defined(_MSC_VER) && defined(_M_ARM64) -# include -#else -# include -#endif - -/* Build an RGBA8 palette from the separate RGB and alpha palettes. */ -void -png_riffle_palette_neon(png_structrp png_ptr) -{ - png_const_colorp palette = png_ptr->palette; - png_bytep riffled_palette = png_ptr->riffled_palette; - png_const_bytep trans_alpha = png_ptr->trans_alpha; - int num_trans = png_ptr->num_trans; - int i; - - png_debug(1, "in png_riffle_palette_neon"); - - /* Initially black, opaque. */ - uint8x16x4_t w = {{ - vdupq_n_u8(0x00), - vdupq_n_u8(0x00), - vdupq_n_u8(0x00), - vdupq_n_u8(0xff), - }}; - - /* First, riffle the RGB colours into an RGBA8 palette. - * The alpha component is set to opaque for now. - */ - for (i = 0; i < 256; i += 16) - { - uint8x16x3_t v = vld3q_u8((png_const_bytep)(palette + i)); - w.val[0] = v.val[0]; - w.val[1] = v.val[1]; - w.val[2] = v.val[2]; - vst4q_u8(riffled_palette + (i << 2), w); - } - - /* Fix up the missing transparency values. */ - for (i = 0; i < num_trans; i++) - riffled_palette[(i << 2) + 3] = trans_alpha[i]; -} - -/* Expands a palettized row into RGBA8. */ -int -png_do_expand_palette_rgba8_neon(png_structrp png_ptr, png_row_infop row_info, - png_const_bytep row, png_bytepp ssp, png_bytepp ddp) -{ - png_uint_32 row_width = row_info->width; - const png_uint_32 *riffled_palette = - (const png_uint_32 *)png_ptr->riffled_palette; - const png_int_32 pixels_per_chunk = 4; - int i; - - png_debug(1, "in png_do_expand_palette_rgba8_neon"); - - if (row_width < pixels_per_chunk) - return 0; - - /* This function originally gets the last byte of the output row. - * The NEON part writes forward from a given position, so we have - * to seek this back by 4 pixels x 4 bytes. - */ - *ddp = *ddp - ((pixels_per_chunk * sizeof(png_uint_32)) - 1); - - for (i = 0; i < row_width; i += pixels_per_chunk) - { - uint32x4_t cur; - png_bytep sp = *ssp - i, dp = *ddp - (i << 2); - cur = vld1q_dup_u32 (riffled_palette + *(sp - 3)); - cur = vld1q_lane_u32(riffled_palette + *(sp - 2), cur, 1); - cur = vld1q_lane_u32(riffled_palette + *(sp - 1), cur, 2); - cur = vld1q_lane_u32(riffled_palette + *(sp - 0), cur, 3); - vst1q_u32((void *)dp, cur); - } - if (i != row_width) - { - /* Remove the amount that wasn't processed. */ - i -= pixels_per_chunk; - } - - /* Decrement output pointers. */ - *ssp = *ssp - i; - *ddp = *ddp - (i << 2); - return i; -} - -/* Expands a palettized row into RGB8. */ -int -png_do_expand_palette_rgb8_neon(png_structrp png_ptr, png_row_infop row_info, - png_const_bytep row, png_bytepp ssp, png_bytepp ddp) -{ - png_uint_32 row_width = row_info->width; - png_const_bytep palette = (png_const_bytep)png_ptr->palette; - const png_uint_32 pixels_per_chunk = 8; - int i; - - png_debug(1, "in png_do_expand_palette_rgb8_neon"); - - if (row_width <= pixels_per_chunk) - return 0; - - /* Seeking this back by 8 pixels x 3 bytes. */ - *ddp = *ddp - ((pixels_per_chunk * sizeof(png_color)) - 1); - - for (i = 0; i < row_width; i += pixels_per_chunk) - { - uint8x8x3_t cur; - png_bytep sp = *ssp - i, dp = *ddp - ((i << 1) + i); - cur = vld3_dup_u8(palette + sizeof(png_color) * (*(sp - 7))); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 6)), cur, 1); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 5)), cur, 2); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 4)), cur, 3); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 3)), cur, 4); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 2)), cur, 5); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 1)), cur, 6); - cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 0)), cur, 7); - vst3_u8((void *)dp, cur); - } - - if (i != row_width) - { - /* Remove the amount that wasn't processed. */ - i -= pixels_per_chunk; - } - - /* Decrement output pointers. */ - *ssp = *ssp - i; - *ddp = *ddp - ((i << 1) + i); - return i; -} - -#endif /* PNG_ARM_NEON_IMPLEMENTATION */ diff --git a/Externals/libpng/intel/filter_sse2_intrinsics.c b/Externals/libpng/intel/filter_sse2_intrinsics.c deleted file mode 100644 index f52aaa800a..0000000000 --- a/Externals/libpng/intel/filter_sse2_intrinsics.c +++ /dev/null @@ -1,391 +0,0 @@ - -/* filter_sse2_intrinsics.c - SSE2 optimized filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2016-2017 Glenn Randers-Pehrson - * Written by Mike Klein and Matt Sarett - * Derived from arm/filter_neon_intrinsics.c - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -#if PNG_INTEL_SSE_IMPLEMENTATION > 0 - -#include - -/* Functions in this file look at most 3 pixels (a,b,c) to predict the 4th (d). - * They're positioned like this: - * prev: c b - * row: a d - * The Sub filter predicts d=a, Avg d=(a+b)/2, and Paeth predicts d to be - * whichever of a, b, or c is closest to p=a+b-c. - */ - -static __m128i load4(const void* p) { - int tmp; - memcpy(&tmp, p, sizeof(tmp)); - return _mm_cvtsi32_si128(tmp); -} - -static void store4(void* p, __m128i v) { - int tmp = _mm_cvtsi128_si32(v); - memcpy(p, &tmp, sizeof(int)); -} - -static __m128i load3(const void* p) { - png_uint_32 tmp = 0; - memcpy(&tmp, p, 3); - return _mm_cvtsi32_si128(tmp); -} - -static void store3(void* p, __m128i v) { - int tmp = _mm_cvtsi128_si32(v); - memcpy(p, &tmp, 3); -} - -void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* The Sub filter predicts each pixel as the previous pixel, a. - * There is no pixel to the left of the first pixel. It's encoded directly. - * That works with our main loop if we just say that left pixel was zero. - */ - size_t rb; - - __m128i a, d = _mm_setzero_si128(); - - png_debug(1, "in png_read_filter_row_sub3_sse2"); - - rb = row_info->rowbytes; - while (rb >= 4) { - a = d; d = load4(row); - d = _mm_add_epi8(d, a); - store3(row, d); - - row += 3; - rb -= 3; - } - if (rb > 0) { - a = d; d = load3(row); - d = _mm_add_epi8(d, a); - store3(row, d); - - row += 3; - rb -= 3; - } - PNG_UNUSED(prev) -} - -void png_read_filter_row_sub4_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* The Sub filter predicts each pixel as the previous pixel, a. - * There is no pixel to the left of the first pixel. It's encoded directly. - * That works with our main loop if we just say that left pixel was zero. - */ - size_t rb; - - __m128i a, d = _mm_setzero_si128(); - - png_debug(1, "in png_read_filter_row_sub4_sse2"); - - rb = row_info->rowbytes+4; - while (rb > 4) { - a = d; d = load4(row); - d = _mm_add_epi8(d, a); - store4(row, d); - - row += 4; - rb -= 4; - } - PNG_UNUSED(prev) -} - -void png_read_filter_row_avg3_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* The Avg filter predicts each pixel as the (truncated) average of a and b. - * There's no pixel to the left of the first pixel. Luckily, it's - * predicted to be half of the pixel above it. So again, this works - * perfectly with our loop if we make sure a starts at zero. - */ - - size_t rb; - - const __m128i zero = _mm_setzero_si128(); - - __m128i b; - __m128i a, d = zero; - - png_debug(1, "in png_read_filter_row_avg3_sse2"); - rb = row_info->rowbytes; - while (rb >= 4) { - __m128i avg; - b = load4(prev); - a = d; d = load4(row ); - - /* PNG requires a truncating average, so we can't just use _mm_avg_epu8 */ - avg = _mm_avg_epu8(a,b); - /* ...but we can fix it up by subtracting off 1 if it rounded up. */ - avg = _mm_sub_epi8(avg, _mm_and_si128(_mm_xor_si128(a,b), - _mm_set1_epi8(1))); - d = _mm_add_epi8(d, avg); - store3(row, d); - - prev += 3; - row += 3; - rb -= 3; - } - if (rb > 0) { - __m128i avg; - b = load3(prev); - a = d; d = load3(row ); - - /* PNG requires a truncating average, so we can't just use _mm_avg_epu8 */ - avg = _mm_avg_epu8(a,b); - /* ...but we can fix it up by subtracting off 1 if it rounded up. */ - avg = _mm_sub_epi8(avg, _mm_and_si128(_mm_xor_si128(a,b), - _mm_set1_epi8(1))); - - d = _mm_add_epi8(d, avg); - store3(row, d); - - prev += 3; - row += 3; - rb -= 3; - } -} - -void png_read_filter_row_avg4_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* The Avg filter predicts each pixel as the (truncated) average of a and b. - * There's no pixel to the left of the first pixel. Luckily, it's - * predicted to be half of the pixel above it. So again, this works - * perfectly with our loop if we make sure a starts at zero. - */ - size_t rb; - const __m128i zero = _mm_setzero_si128(); - __m128i b; - __m128i a, d = zero; - - png_debug(1, "in png_read_filter_row_avg4_sse2"); - - rb = row_info->rowbytes+4; - while (rb > 4) { - __m128i avg; - b = load4(prev); - a = d; d = load4(row ); - - /* PNG requires a truncating average, so we can't just use _mm_avg_epu8 */ - avg = _mm_avg_epu8(a,b); - /* ...but we can fix it up by subtracting off 1 if it rounded up. */ - avg = _mm_sub_epi8(avg, _mm_and_si128(_mm_xor_si128(a,b), - _mm_set1_epi8(1))); - - d = _mm_add_epi8(d, avg); - store4(row, d); - - prev += 4; - row += 4; - rb -= 4; - } -} - -/* Returns |x| for 16-bit lanes. */ -static __m128i abs_i16(__m128i x) { -#if PNG_INTEL_SSE_IMPLEMENTATION >= 2 - return _mm_abs_epi16(x); -#else - /* Read this all as, return x<0 ? -x : x. - * To negate two's complement, you flip all the bits then add 1. - */ - __m128i is_negative = _mm_cmplt_epi16(x, _mm_setzero_si128()); - - /* Flip negative lanes. */ - x = _mm_xor_si128(x, is_negative); - - /* +1 to negative lanes, else +0. */ - x = _mm_sub_epi16(x, is_negative); - return x; -#endif -} - -/* Bytewise c ? t : e. */ -static __m128i if_then_else(__m128i c, __m128i t, __m128i e) { -#if PNG_INTEL_SSE_IMPLEMENTATION >= 3 - return _mm_blendv_epi8(e,t,c); -#else - return _mm_or_si128(_mm_and_si128(c, t), _mm_andnot_si128(c, e)); -#endif -} - -void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* Paeth tries to predict pixel d using the pixel to the left of it, a, - * and two pixels from the previous row, b and c: - * prev: c b - * row: a d - * The Paeth function predicts d to be whichever of a, b, or c is nearest to - * p=a+b-c. - * - * The first pixel has no left context, and so uses an Up filter, p = b. - * This works naturally with our main loop's p = a+b-c if we force a and c - * to zero. - * Here we zero b and d, which become c and a respectively at the start of - * the loop. - */ - size_t rb; - const __m128i zero = _mm_setzero_si128(); - __m128i c, b = zero, - a, d = zero; - - png_debug(1, "in png_read_filter_row_paeth3_sse2"); - - rb = row_info->rowbytes; - while (rb >= 4) { - /* It's easiest to do this math (particularly, deal with pc) with 16-bit - * intermediates. - */ - __m128i pa,pb,pc,smallest,nearest; - c = b; b = _mm_unpacklo_epi8(load4(prev), zero); - a = d; d = _mm_unpacklo_epi8(load4(row ), zero); - - /* (p-a) == (a+b-c - a) == (b-c) */ - - pa = _mm_sub_epi16(b,c); - - /* (p-b) == (a+b-c - b) == (a-c) */ - pb = _mm_sub_epi16(a,c); - - /* (p-c) == (a+b-c - c) == (a+b-c-c) == (b-c)+(a-c) */ - pc = _mm_add_epi16(pa,pb); - - pa = abs_i16(pa); /* |p-a| */ - pb = abs_i16(pb); /* |p-b| */ - pc = abs_i16(pc); /* |p-c| */ - - smallest = _mm_min_epi16(pc, _mm_min_epi16(pa, pb)); - - /* Paeth breaks ties favoring a over b over c. */ - nearest = if_then_else(_mm_cmpeq_epi16(smallest, pa), a, - if_then_else(_mm_cmpeq_epi16(smallest, pb), b, - c)); - - /* Note `_epi8`: we need addition to wrap modulo 255. */ - d = _mm_add_epi8(d, nearest); - store3(row, _mm_packus_epi16(d,d)); - - prev += 3; - row += 3; - rb -= 3; - } - if (rb > 0) { - /* It's easiest to do this math (particularly, deal with pc) with 16-bit - * intermediates. - */ - __m128i pa,pb,pc,smallest,nearest; - c = b; b = _mm_unpacklo_epi8(load3(prev), zero); - a = d; d = _mm_unpacklo_epi8(load3(row ), zero); - - /* (p-a) == (a+b-c - a) == (b-c) */ - pa = _mm_sub_epi16(b,c); - - /* (p-b) == (a+b-c - b) == (a-c) */ - pb = _mm_sub_epi16(a,c); - - /* (p-c) == (a+b-c - c) == (a+b-c-c) == (b-c)+(a-c) */ - pc = _mm_add_epi16(pa,pb); - - pa = abs_i16(pa); /* |p-a| */ - pb = abs_i16(pb); /* |p-b| */ - pc = abs_i16(pc); /* |p-c| */ - - smallest = _mm_min_epi16(pc, _mm_min_epi16(pa, pb)); - - /* Paeth breaks ties favoring a over b over c. */ - nearest = if_then_else(_mm_cmpeq_epi16(smallest, pa), a, - if_then_else(_mm_cmpeq_epi16(smallest, pb), b, - c)); - - /* Note `_epi8`: we need addition to wrap modulo 255. */ - d = _mm_add_epi8(d, nearest); - store3(row, _mm_packus_epi16(d,d)); - - prev += 3; - row += 3; - rb -= 3; - } -} - -void png_read_filter_row_paeth4_sse2(png_row_infop row_info, png_bytep row, - png_const_bytep prev) -{ - /* Paeth tries to predict pixel d using the pixel to the left of it, a, - * and two pixels from the previous row, b and c: - * prev: c b - * row: a d - * The Paeth function predicts d to be whichever of a, b, or c is nearest to - * p=a+b-c. - * - * The first pixel has no left context, and so uses an Up filter, p = b. - * This works naturally with our main loop's p = a+b-c if we force a and c - * to zero. - * Here we zero b and d, which become c and a respectively at the start of - * the loop. - */ - size_t rb; - const __m128i zero = _mm_setzero_si128(); - __m128i pa,pb,pc,smallest,nearest; - __m128i c, b = zero, - a, d = zero; - - png_debug(1, "in png_read_filter_row_paeth4_sse2"); - - rb = row_info->rowbytes+4; - while (rb > 4) { - /* It's easiest to do this math (particularly, deal with pc) with 16-bit - * intermediates. - */ - c = b; b = _mm_unpacklo_epi8(load4(prev), zero); - a = d; d = _mm_unpacklo_epi8(load4(row ), zero); - - /* (p-a) == (a+b-c - a) == (b-c) */ - pa = _mm_sub_epi16(b,c); - - /* (p-b) == (a+b-c - b) == (a-c) */ - pb = _mm_sub_epi16(a,c); - - /* (p-c) == (a+b-c - c) == (a+b-c-c) == (b-c)+(a-c) */ - pc = _mm_add_epi16(pa,pb); - - pa = abs_i16(pa); /* |p-a| */ - pb = abs_i16(pb); /* |p-b| */ - pc = abs_i16(pc); /* |p-c| */ - - smallest = _mm_min_epi16(pc, _mm_min_epi16(pa, pb)); - - /* Paeth breaks ties favoring a over b over c. */ - nearest = if_then_else(_mm_cmpeq_epi16(smallest, pa), a, - if_then_else(_mm_cmpeq_epi16(smallest, pb), b, - c)); - - /* Note `_epi8`: we need addition to wrap modulo 255. */ - d = _mm_add_epi8(d, nearest); - store4(row, _mm_packus_epi16(d,d)); - - prev += 4; - row += 4; - rb -= 4; - } -} - -#endif /* PNG_INTEL_SSE_IMPLEMENTATION > 0 */ -#endif /* READ */ diff --git a/Externals/libpng/intel/intel_init.c b/Externals/libpng/intel/intel_init.c deleted file mode 100644 index 2f8168b7c4..0000000000 --- a/Externals/libpng/intel/intel_init.c +++ /dev/null @@ -1,52 +0,0 @@ - -/* intel_init.c - SSE2 optimized filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2016-2017 Glenn Randers-Pehrson - * Written by Mike Klein and Matt Sarett, Google, Inc. - * Derived from arm/arm_init.c - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED -#if PNG_INTEL_SSE_IMPLEMENTATION > 0 - -void -png_init_filter_functions_sse2(png_structp pp, unsigned int bpp) -{ - /* The techniques used to implement each of these filters in SSE operate on - * one pixel at a time. - * So they generally speed up 3bpp images about 3x, 4bpp images about 4x. - * They can scale up to 6 and 8 bpp images and down to 2 bpp images, - * but they'd not likely have any benefit for 1bpp images. - * Most of these can be implemented using only MMX and 64-bit registers, - * but they end up a bit slower than using the equally-ubiquitous SSE2. - */ - png_debug(1, "in png_init_filter_functions_sse2"); - if (bpp == 3) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_sse2; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_sse2; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth3_sse2; - } - else if (bpp == 4) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_sse2; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_sse2; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth4_sse2; - } - - /* No need optimize PNG_FILTER_VALUE_UP. The compiler should - * autovectorize. - */ -} - -#endif /* PNG_INTEL_SSE_IMPLEMENTATION > 0 */ -#endif /* PNG_READ_SUPPORTED */ diff --git a/Externals/libpng/mips/filter_msa_intrinsics.c b/Externals/libpng/mips/filter_msa_intrinsics.c deleted file mode 100644 index a579179421..0000000000 --- a/Externals/libpng/mips/filter_msa_intrinsics.c +++ /dev/null @@ -1,808 +0,0 @@ - -/* filter_msa_intrinsics.c - MSA optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2016 Glenn Randers-Pehrson - * Written by Mandar Sahastrabuddhe, August 2016. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include -#include -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -/* This code requires -mfpu=msa on the command line: */ -#if PNG_MIPS_MSA_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */ - -#include - -/* libpng row pointers are not necessarily aligned to any particular boundary, - * however this code will only work with appropriate alignment. mips/mips_init.c - * checks for this (and will not compile unless it is done). This code uses - * variants of png_aligncast to avoid compiler warnings. - */ -#define png_ptr(type,pointer) png_aligncast(type *,pointer) -#define png_ptrc(type,pointer) png_aligncastconst(const type *,pointer) - -/* The following relies on a variable 'temp_pointer' being declared with type - * 'type'. This is written this way just to hide the GCC strict aliasing - * warning; note that the code is safe because there never is an alias between - * the input and output pointers. - */ -#define png_ldr(type,pointer)\ - (temp_pointer = png_ptr(type,pointer), *temp_pointer) - -#if PNG_MIPS_MSA_OPT > 0 - -#ifdef CLANG_BUILD - #define MSA_SRLI_B(a, b) __msa_srli_b((v16i8) a, b) - - #define LW(psrc) \ - ( { \ - uint8_t *psrc_lw_m = (uint8_t *) (psrc); \ - uint32_t val_m; \ - \ - asm volatile ( \ - "lw %[val_m], %[psrc_lw_m] \n\t" \ - \ - : [val_m] "=r" (val_m) \ - : [psrc_lw_m] "m" (*psrc_lw_m) \ - ); \ - \ - val_m; \ - } ) - - #define SH(val, pdst) \ - { \ - uint8_t *pdst_sh_m = (uint8_t *) (pdst); \ - uint16_t val_m = (val); \ - \ - asm volatile ( \ - "sh %[val_m], %[pdst_sh_m] \n\t" \ - \ - : [pdst_sh_m] "=m" (*pdst_sh_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #define SW(val, pdst) \ - { \ - uint8_t *pdst_sw_m = (uint8_t *) (pdst); \ - uint32_t val_m = (val); \ - \ - asm volatile ( \ - "sw %[val_m], %[pdst_sw_m] \n\t" \ - \ - : [pdst_sw_m] "=m" (*pdst_sw_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #if (__mips == 64) - #define SD(val, pdst) \ - { \ - uint8_t *pdst_sd_m = (uint8_t *) (pdst); \ - uint64_t val_m = (val); \ - \ - asm volatile ( \ - "sd %[val_m], %[pdst_sd_m] \n\t" \ - \ - : [pdst_sd_m] "=m" (*pdst_sd_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - #else - #define SD(val, pdst) \ - { \ - uint8_t *pdst_sd_m = (uint8_t *) (pdst); \ - uint32_t val0_m, val1_m; \ - \ - val0_m = (uint32_t) ((val) & 0x00000000FFFFFFFF); \ - val1_m = (uint32_t) (((val) >> 32) & 0x00000000FFFFFFFF); \ - \ - SW(val0_m, pdst_sd_m); \ - SW(val1_m, pdst_sd_m + 4); \ - } - #endif -#else - #define MSA_SRLI_B(a, b) (a >> b) - -#if (__mips_isa_rev >= 6) - #define LW(psrc) \ - ( { \ - uint8_t *psrc_lw_m = (uint8_t *) (psrc); \ - uint32_t val_m; \ - \ - asm volatile ( \ - "lw %[val_m], %[psrc_lw_m] \n\t" \ - \ - : [val_m] "=r" (val_m) \ - : [psrc_lw_m] "m" (*psrc_lw_m) \ - ); \ - \ - val_m; \ - } ) - - #define SH(val, pdst) \ - { \ - uint8_t *pdst_sh_m = (uint8_t *) (pdst); \ - uint16_t val_m = (val); \ - \ - asm volatile ( \ - "sh %[val_m], %[pdst_sh_m] \n\t" \ - \ - : [pdst_sh_m] "=m" (*pdst_sh_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #define SW(val, pdst) \ - { \ - uint8_t *pdst_sw_m = (uint8_t *) (pdst); \ - uint32_t val_m = (val); \ - \ - asm volatile ( \ - "sw %[val_m], %[pdst_sw_m] \n\t" \ - \ - : [pdst_sw_m] "=m" (*pdst_sw_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #if (__mips == 64) - #define SD(val, pdst) \ - { \ - uint8_t *pdst_sd_m = (uint8_t *) (pdst); \ - uint64_t val_m = (val); \ - \ - asm volatile ( \ - "sd %[val_m], %[pdst_sd_m] \n\t" \ - \ - : [pdst_sd_m] "=m" (*pdst_sd_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - #else - #define SD(val, pdst) \ - { \ - uint8_t *pdst_sd_m = (uint8_t *) (pdst); \ - uint32_t val0_m, val1_m; \ - \ - val0_m = (uint32_t) ((val) & 0x00000000FFFFFFFF); \ - val1_m = (uint32_t) (((val) >> 32) & 0x00000000FFFFFFFF); \ - \ - SW(val0_m, pdst_sd_m); \ - SW(val1_m, pdst_sd_m + 4); \ - } - #endif -#else // !(__mips_isa_rev >= 6) - #define LW(psrc) \ - ( { \ - uint8_t *psrc_lw_m = (uint8_t *) (psrc); \ - uint32_t val_m; \ - \ - asm volatile ( \ - "ulw %[val_m], %[psrc_lw_m] \n\t" \ - \ - : [val_m] "=r" (val_m) \ - : [psrc_lw_m] "m" (*psrc_lw_m) \ - ); \ - \ - val_m; \ - } ) - - #define SH(val, pdst) \ - { \ - uint8_t *pdst_sh_m = (uint8_t *) (pdst); \ - uint16_t val_m = (val); \ - \ - asm volatile ( \ - "ush %[val_m], %[pdst_sh_m] \n\t" \ - \ - : [pdst_sh_m] "=m" (*pdst_sh_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #define SW(val, pdst) \ - { \ - uint8_t *pdst_sw_m = (uint8_t *) (pdst); \ - uint32_t val_m = (val); \ - \ - asm volatile ( \ - "usw %[val_m], %[pdst_sw_m] \n\t" \ - \ - : [pdst_sw_m] "=m" (*pdst_sw_m) \ - : [val_m] "r" (val_m) \ - ); \ - } - - #define SD(val, pdst) \ - { \ - uint8_t *pdst_sd_m = (uint8_t *) (pdst); \ - uint32_t val0_m, val1_m; \ - \ - val0_m = (uint32_t) ((val) & 0x00000000FFFFFFFF); \ - val1_m = (uint32_t) (((val) >> 32) & 0x00000000FFFFFFFF); \ - \ - SW(val0_m, pdst_sd_m); \ - SW(val1_m, pdst_sd_m + 4); \ - } - - #define SW_ZERO(pdst) \ - { \ - uint8_t *pdst_m = (uint8_t *) (pdst); \ - \ - asm volatile ( \ - "usw $0, %[pdst_m] \n\t" \ - \ - : [pdst_m] "=m" (*pdst_m) \ - : \ - ); \ - } -#endif // (__mips_isa_rev >= 6) -#endif - -#define LD_B(RTYPE, psrc) *((RTYPE *) (psrc)) -#define LD_UB(...) LD_B(v16u8, __VA_ARGS__) -#define LD_B2(RTYPE, psrc, stride, out0, out1) \ -{ \ - out0 = LD_B(RTYPE, (psrc)); \ - out1 = LD_B(RTYPE, (psrc) + stride); \ -} -#define LD_UB2(...) LD_B2(v16u8, __VA_ARGS__) -#define LD_B4(RTYPE, psrc, stride, out0, out1, out2, out3) \ -{ \ - LD_B2(RTYPE, (psrc), stride, out0, out1); \ - LD_B2(RTYPE, (psrc) + 2 * stride , stride, out2, out3); \ -} -#define LD_UB4(...) LD_B4(v16u8, __VA_ARGS__) - -#define ST_B(RTYPE, in, pdst) *((RTYPE *) (pdst)) = (in) -#define ST_UB(...) ST_B(v16u8, __VA_ARGS__) -#define ST_B2(RTYPE, in0, in1, pdst, stride) \ -{ \ - ST_B(RTYPE, in0, (pdst)); \ - ST_B(RTYPE, in1, (pdst) + stride); \ -} -#define ST_UB2(...) ST_B2(v16u8, __VA_ARGS__) -#define ST_B4(RTYPE, in0, in1, in2, in3, pdst, stride) \ -{ \ - ST_B2(RTYPE, in0, in1, (pdst), stride); \ - ST_B2(RTYPE, in2, in3, (pdst) + 2 * stride, stride); \ -} -#define ST_UB4(...) ST_B4(v16u8, __VA_ARGS__) - -#define ADD2(in0, in1, in2, in3, out0, out1) \ -{ \ - out0 = in0 + in1; \ - out1 = in2 + in3; \ -} -#define ADD3(in0, in1, in2, in3, in4, in5, \ - out0, out1, out2) \ -{ \ - ADD2(in0, in1, in2, in3, out0, out1); \ - out2 = in4 + in5; \ -} -#define ADD4(in0, in1, in2, in3, in4, in5, in6, in7, \ - out0, out1, out2, out3) \ -{ \ - ADD2(in0, in1, in2, in3, out0, out1); \ - ADD2(in4, in5, in6, in7, out2, out3); \ -} - -#define ILVR_B2(RTYPE, in0, in1, in2, in3, out0, out1) \ -{ \ - out0 = (RTYPE) __msa_ilvr_b((v16i8) in0, (v16i8) in1); \ - out1 = (RTYPE) __msa_ilvr_b((v16i8) in2, (v16i8) in3); \ -} -#define ILVR_B2_SH(...) ILVR_B2(v8i16, __VA_ARGS__) - -#define HSUB_UB2(RTYPE, in0, in1, out0, out1) \ -{ \ - out0 = (RTYPE) __msa_hsub_u_h((v16u8) in0, (v16u8) in0); \ - out1 = (RTYPE) __msa_hsub_u_h((v16u8) in1, (v16u8) in1); \ -} -#define HSUB_UB2_SH(...) HSUB_UB2(v8i16, __VA_ARGS__) - -#define SLDI_B2_0(RTYPE, in0, in1, out0, out1, slide_val) \ -{ \ - v16i8 zero_m = { 0 }; \ - out0 = (RTYPE) __msa_sldi_b((v16i8) zero_m, (v16i8) in0, slide_val); \ - out1 = (RTYPE) __msa_sldi_b((v16i8) zero_m, (v16i8) in1, slide_val); \ -} -#define SLDI_B2_0_UB(...) SLDI_B2_0(v16u8, __VA_ARGS__) - -#define SLDI_B3_0(RTYPE, in0, in1, in2, out0, out1, out2, slide_val) \ -{ \ - v16i8 zero_m = { 0 }; \ - SLDI_B2_0(RTYPE, in0, in1, out0, out1, slide_val); \ - out2 = (RTYPE) __msa_sldi_b((v16i8) zero_m, (v16i8) in2, slide_val); \ -} -#define SLDI_B3_0_UB(...) SLDI_B3_0(v16u8, __VA_ARGS__) - -#define ILVEV_W2(RTYPE, in0, in1, in2, in3, out0, out1) \ -{ \ - out0 = (RTYPE) __msa_ilvev_w((v4i32) in1, (v4i32) in0); \ - out1 = (RTYPE) __msa_ilvev_w((v4i32) in3, (v4i32) in2); \ -} -#define ILVEV_W2_UB(...) ILVEV_W2(v16u8, __VA_ARGS__) - -#define ADD_ABS_H3(RTYPE, in0, in1, in2, out0, out1, out2) \ -{ \ - RTYPE zero = {0}; \ - \ - out0 = __msa_add_a_h((v8i16) zero, in0); \ - out1 = __msa_add_a_h((v8i16) zero, in1); \ - out2 = __msa_add_a_h((v8i16) zero, in2); \ -} -#define ADD_ABS_H3_SH(...) ADD_ABS_H3(v8i16, __VA_ARGS__) - -#define VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1) \ -{ \ - out0 = (RTYPE) __msa_vshf_b((v16i8) mask0, (v16i8) in1, (v16i8) in0); \ - out1 = (RTYPE) __msa_vshf_b((v16i8) mask1, (v16i8) in3, (v16i8) in2); \ -} -#define VSHF_B2_UB(...) VSHF_B2(v16u8, __VA_ARGS__) - -#define CMP_AND_SELECT(inp0, inp1, inp2, inp3, inp4, inp5, out0) \ -{ \ - v8i16 _sel_h0, _sel_h1; \ - v16u8 _sel_b0, _sel_b1; \ - _sel_h0 = (v8i16) __msa_clt_u_h((v8u16) inp1, (v8u16) inp0); \ - _sel_b0 = (v16u8) __msa_pckev_b((v16i8) _sel_h0, (v16i8) _sel_h0); \ - inp0 = (v8i16) __msa_bmnz_v((v16u8) inp0, (v16u8) inp1, (v16u8) _sel_h0); \ - inp4 = (v16u8) __msa_bmnz_v(inp3, inp4, _sel_b0); \ - _sel_h1 = (v8i16) __msa_clt_u_h((v8u16) inp2, (v8u16) inp0); \ - _sel_b1 = (v16u8) __msa_pckev_b((v16i8) _sel_h1, (v16i8) _sel_h1); \ - inp4 = (v16u8) __msa_bmnz_v(inp4, inp5, _sel_b1); \ - out0 += inp4; \ -} - -void png_read_filter_row_up_msa(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i, cnt, cnt16, cnt32; - size_t istop = row_info->rowbytes; - png_bytep rp = row; - png_const_bytep pp = prev_row; - v16u8 src0, src1, src2, src3, src4, src5, src6, src7; - - for (i = 0; i < (istop >> 6); i++) - { - LD_UB4(rp, 16, src0, src1, src2, src3); - LD_UB4(pp, 16, src4, src5, src6, src7); - pp += 64; - - ADD4(src0, src4, src1, src5, src2, src6, src3, src7, - src0, src1, src2, src3); - - ST_UB4(src0, src1, src2, src3, rp, 16); - rp += 64; - } - - if (istop & 0x3F) - { - cnt32 = istop & 0x20; - cnt16 = istop & 0x10; - cnt = istop & 0xF; - - if(cnt32) - { - if (cnt16 && cnt) - { - LD_UB4(rp, 16, src0, src1, src2, src3); - LD_UB4(pp, 16, src4, src5, src6, src7); - - ADD4(src0, src4, src1, src5, src2, src6, src3, src7, - src0, src1, src2, src3); - - ST_UB4(src0, src1, src2, src3, rp, 16); - rp += 64; - } - else if (cnt16 || cnt) - { - LD_UB2(rp, 16, src0, src1); - LD_UB2(pp, 16, src4, src5); - pp += 32; - src2 = LD_UB(rp + 32); - src6 = LD_UB(pp); - - ADD3(src0, src4, src1, src5, src2, src6, src0, src1, src2); - - ST_UB2(src0, src1, rp, 16); - rp += 32; - ST_UB(src2, rp); - rp += 16; - } - else - { - LD_UB2(rp, 16, src0, src1); - LD_UB2(pp, 16, src4, src5); - - ADD2(src0, src4, src1, src5, src0, src1); - - ST_UB2(src0, src1, rp, 16); - rp += 32; - } - } - else if (cnt16 && cnt) - { - LD_UB2(rp, 16, src0, src1); - LD_UB2(pp, 16, src4, src5); - - ADD2(src0, src4, src1, src5, src0, src1); - - ST_UB2(src0, src1, rp, 16); - rp += 32; - } - else if (cnt16 || cnt) - { - src0 = LD_UB(rp); - src4 = LD_UB(pp); - pp += 16; - - src0 += src4; - - ST_UB(src0, rp); - rp += 16; - } - } -} - -void png_read_filter_row_sub4_msa(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t count; - size_t istop = row_info->rowbytes; - png_bytep src = row; - png_bytep nxt = row + 4; - int32_t inp0; - v16u8 src0, src1, src2, src3, src4; - v16u8 dst0, dst1; - v16u8 zero = { 0 }; - - istop -= 4; - - inp0 = LW(src); - src += 4; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - - for (count = 0; count < istop; count += 16) - { - src1 = LD_UB(src); - src += 16; - - src2 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 4); - src3 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 8); - src4 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 12); - src1 += src0; - src2 += src1; - src3 += src2; - src4 += src3; - src0 = src4; - ILVEV_W2_UB(src1, src2, src3, src4, dst0, dst1); - dst0 = (v16u8) __msa_pckev_d((v2i64) dst1, (v2i64) dst0); - - ST_UB(dst0, nxt); - nxt += 16; - } -} - -void png_read_filter_row_sub3_msa(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t count; - size_t istop = row_info->rowbytes; - png_bytep src = row; - png_bytep nxt = row + 3; - int64_t out0; - int32_t inp0, out1; - v16u8 src0, src1, src2, src3, src4, dst0, dst1; - v16u8 zero = { 0 }; - v16i8 mask0 = { 0, 1, 2, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - v16i8 mask1 = { 0, 1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0 }; - - istop -= 3; - - inp0 = LW(src); - src += 3; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - - for (count = 0; count < istop; count += 12) - { - src1 = LD_UB(src); - src += 12; - - src2 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 3); - src3 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 6); - src4 = (v16u8) __msa_sldi_b((v16i8) zero, (v16i8) src1, 9); - src1 += src0; - src2 += src1; - src3 += src2; - src4 += src3; - src0 = src4; - VSHF_B2_UB(src1, src2, src3, src4, mask0, mask0, dst0, dst1); - dst0 = (v16u8) __msa_vshf_b(mask1, (v16i8) dst1, (v16i8) dst0); - out0 = __msa_copy_s_d((v2i64) dst0, 0); - out1 = __msa_copy_s_w((v4i32) dst0, 2); - - SD(out0, nxt); - nxt += 8; - SW(out1, nxt); - nxt += 4; - } -} - -void png_read_filter_row_avg4_msa(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i; - png_bytep src = row; - png_bytep nxt = row; - png_const_bytep pp = prev_row; - size_t istop = row_info->rowbytes - 4; - int32_t inp0, inp1, out0; - v16u8 src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, dst0, dst1; - v16u8 zero = { 0 }; - - inp0 = LW(pp); - pp += 4; - inp1 = LW(src); - src += 4; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - src1 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp1); - src0 = (v16u8) MSA_SRLI_B(src0, 1); - src1 += src0; - out0 = __msa_copy_s_w((v4i32) src1, 0); - SW(out0, nxt); - nxt += 4; - - for (i = 0; i < istop; i += 16) - { - src2 = LD_UB(pp); - pp += 16; - src6 = LD_UB(src); - src += 16; - - SLDI_B2_0_UB(src2, src6, src3, src7, 4); - SLDI_B2_0_UB(src2, src6, src4, src8, 8); - SLDI_B2_0_UB(src2, src6, src5, src9, 12); - src2 = __msa_ave_u_b(src2, src1); - src6 += src2; - src3 = __msa_ave_u_b(src3, src6); - src7 += src3; - src4 = __msa_ave_u_b(src4, src7); - src8 += src4; - src5 = __msa_ave_u_b(src5, src8); - src9 += src5; - src1 = src9; - ILVEV_W2_UB(src6, src7, src8, src9, dst0, dst1); - dst0 = (v16u8) __msa_pckev_d((v2i64) dst1, (v2i64) dst0); - - ST_UB(dst0, nxt); - nxt += 16; - } -} - -void png_read_filter_row_avg3_msa(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i; - png_bytep src = row; - png_bytep nxt = row; - png_const_bytep pp = prev_row; - size_t istop = row_info->rowbytes - 3; - int64_t out0; - int32_t inp0, inp1, out1; - int16_t out2; - v16u8 src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, dst0, dst1; - v16u8 zero = { 0 }; - v16i8 mask0 = { 0, 1, 2, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - v16i8 mask1 = { 0, 1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0 }; - - inp0 = LW(pp); - pp += 3; - inp1 = LW(src); - src += 3; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - src1 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp1); - src0 = (v16u8) MSA_SRLI_B(src0, 1); - src1 += src0; - out2 = __msa_copy_s_h((v8i16) src1, 0); - SH(out2, nxt); - nxt += 2; - nxt[0] = src1[2]; - nxt++; - - for (i = 0; i < istop; i += 12) - { - src2 = LD_UB(pp); - pp += 12; - src6 = LD_UB(src); - src += 12; - - SLDI_B2_0_UB(src2, src6, src3, src7, 3); - SLDI_B2_0_UB(src2, src6, src4, src8, 6); - SLDI_B2_0_UB(src2, src6, src5, src9, 9); - src2 = __msa_ave_u_b(src2, src1); - src6 += src2; - src3 = __msa_ave_u_b(src3, src6); - src7 += src3; - src4 = __msa_ave_u_b(src4, src7); - src8 += src4; - src5 = __msa_ave_u_b(src5, src8); - src9 += src5; - src1 = src9; - VSHF_B2_UB(src6, src7, src8, src9, mask0, mask0, dst0, dst1); - dst0 = (v16u8) __msa_vshf_b(mask1, (v16i8) dst1, (v16i8) dst0); - out0 = __msa_copy_s_d((v2i64) dst0, 0); - out1 = __msa_copy_s_w((v4i32) dst0, 2); - - SD(out0, nxt); - nxt += 8; - SW(out1, nxt); - nxt += 4; - } -} - -void png_read_filter_row_paeth4_msa(png_row_infop row_info, - png_bytep row, - png_const_bytep prev_row) -{ - int32_t count, rp_end; - png_bytep nxt; - png_const_bytep prev_nxt; - int32_t inp0, inp1, res0; - v16u8 src0, src1, src2, src3, src4, src5, src6, src7, src8, src9; - v16u8 src10, src11, src12, src13, dst0, dst1; - v8i16 vec0, vec1, vec2; - v16u8 zero = { 0 }; - - nxt = row; - prev_nxt = prev_row; - - inp0 = LW(nxt); - inp1 = LW(prev_nxt); - prev_nxt += 4; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - src1 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp1); - - src1 += src0; - res0 = __msa_copy_s_w((v4i32) src1, 0); - - SW(res0, nxt); - nxt += 4; - - /* Remainder */ - rp_end = row_info->rowbytes - 4; - - for (count = 0; count < rp_end; count += 16) - { - src2 = LD_UB(prev_nxt); - prev_nxt += 16; - src6 = LD_UB(prev_row); - prev_row += 16; - src10 = LD_UB(nxt); - - SLDI_B3_0_UB(src2, src6, src10, src3, src7, src11, 4); - SLDI_B3_0_UB(src2, src6, src10, src4, src8, src12, 8); - SLDI_B3_0_UB(src2, src6, src10, src5, src9, src13, 12); - ILVR_B2_SH(src2, src6, src1, src6, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src1, src2, src6, src10); - ILVR_B2_SH(src3, src7, src10, src7, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src10, src3, src7, src11); - ILVR_B2_SH(src4, src8, src11, src8, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src11, src4, src8, src12); - ILVR_B2_SH(src5, src9, src12, src9, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src12, src5, src9, src13); - src1 = src13; - ILVEV_W2_UB(src10, src11, src12, src1, dst0, dst1); - dst0 = (v16u8) __msa_pckev_d((v2i64) dst1, (v2i64) dst0); - - ST_UB(dst0, nxt); - nxt += 16; - } -} - -void png_read_filter_row_paeth3_msa(png_row_infop row_info, - png_bytep row, - png_const_bytep prev_row) -{ - int32_t count, rp_end; - png_bytep nxt; - png_const_bytep prev_nxt; - int64_t out0; - int32_t inp0, inp1, out1; - int16_t out2; - v16u8 src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, dst0, dst1; - v16u8 src10, src11, src12, src13; - v8i16 vec0, vec1, vec2; - v16u8 zero = { 0 }; - v16i8 mask0 = { 0, 1, 2, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - v16i8 mask1 = { 0, 1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0 }; - - nxt = row; - prev_nxt = prev_row; - - inp0 = LW(nxt); - inp1 = LW(prev_nxt); - prev_nxt += 3; - src0 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp0); - src1 = (v16u8) __msa_insert_w((v4i32) zero, 0, inp1); - - src1 += src0; - out2 = __msa_copy_s_h((v8i16) src1, 0); - - SH(out2, nxt); - nxt += 2; - nxt[0] = src1[2]; - nxt++; - - /* Remainder */ - rp_end = row_info->rowbytes - 3; - - for (count = 0; count < rp_end; count += 12) - { - src2 = LD_UB(prev_nxt); - prev_nxt += 12; - src6 = LD_UB(prev_row); - prev_row += 12; - src10 = LD_UB(nxt); - - SLDI_B3_0_UB(src2, src6, src10, src3, src7, src11, 3); - SLDI_B3_0_UB(src2, src6, src10, src4, src8, src12, 6); - SLDI_B3_0_UB(src2, src6, src10, src5, src9, src13, 9); - ILVR_B2_SH(src2, src6, src1, src6, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src1, src2, src6, src10); - ILVR_B2_SH(src3, src7, src10, src7, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src10, src3, src7, src11); - ILVR_B2_SH(src4, src8, src11, src8, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src11, src4, src8, src12); - ILVR_B2_SH(src5, src9, src12, src9, vec0, vec1); - HSUB_UB2_SH(vec0, vec1, vec0, vec1); - vec2 = vec0 + vec1; - ADD_ABS_H3_SH(vec0, vec1, vec2, vec0, vec1, vec2); - CMP_AND_SELECT(vec0, vec1, vec2, src12, src5, src9, src13); - src1 = src13; - VSHF_B2_UB(src10, src11, src12, src13, mask0, mask0, dst0, dst1); - dst0 = (v16u8) __msa_vshf_b(mask1, (v16i8) dst1, (v16i8) dst0); - out0 = __msa_copy_s_d((v2i64) dst0, 0); - out1 = __msa_copy_s_w((v4i32) dst0, 2); - - SD(out0, nxt); - nxt += 8; - SW(out1, nxt); - nxt += 4; - } -} - -#endif /* PNG_MIPS_MSA_OPT > 0 */ -#endif /* PNG_MIPS_MSA_IMPLEMENTATION == 1 (intrinsics) */ -#endif /* READ */ diff --git a/Externals/libpng/mips/mips_init.c b/Externals/libpng/mips/mips_init.c deleted file mode 100644 index 8dd283deef..0000000000 --- a/Externals/libpng/mips/mips_init.c +++ /dev/null @@ -1,130 +0,0 @@ - -/* mips_init.c - MSA optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2016 Glenn Randers-Pehrson - * Written by Mandar Sahastrabuddhe, 2016. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are - * called. - */ -#define _POSIX_SOURCE 1 - -#include -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -#if PNG_MIPS_MSA_OPT > 0 -#ifdef PNG_MIPS_MSA_CHECK_SUPPORTED /* Do run-time checks */ -/* WARNING: it is strongly recommended that you do not build libpng with - * run-time checks for CPU features if at all possible. In the case of the MIPS - * MSA instructions there is no processor-specific way of detecting the - * presence of the required support, therefore run-time detection is extremely - * OS specific. - * - * You may set the macro PNG_MIPS_MSA_FILE to the file name of file containing - * a fragment of C source code which defines the png_have_msa function. There - * are a number of implementations in contrib/mips-msa, but the only one that - * has partial support is contrib/mips-msa/linux.c - a generic Linux - * implementation which reads /proc/cpufino. - */ -#ifndef PNG_MIPS_MSA_FILE -# ifdef __linux__ -# define PNG_MIPS_MSA_FILE "contrib/mips-msa/linux.c" -# endif -#endif - -#ifdef PNG_MIPS_MSA_FILE - -#include /* for sig_atomic_t */ -static int png_have_msa(png_structp png_ptr); -#include PNG_MIPS_MSA_FILE - -#else /* PNG_MIPS_MSA_FILE */ -# error "PNG_MIPS_MSA_FILE undefined: no support for run-time MIPS MSA checks" -#endif /* PNG_MIPS_MSA_FILE */ -#endif /* PNG_MIPS_MSA_CHECK_SUPPORTED */ - -#ifndef PNG_ALIGNED_MEMORY_SUPPORTED -# error "ALIGNED_MEMORY is required; set: -DPNG_ALIGNED_MEMORY_SUPPORTED" -#endif - -void -png_init_filter_functions_msa(png_structp pp, unsigned int bpp) -{ - /* The switch statement is compiled in for MIPS_MSA_API, the call to - * png_have_msa is compiled in for MIPS_MSA_CHECK. If both are defined - * the check is only performed if the API has not set the MSA option on - * or off explicitly. In this case the check controls what happens. - */ - -#ifdef PNG_MIPS_MSA_API_SUPPORTED - switch ((pp->options >> PNG_MIPS_MSA) & 3) - { - case PNG_OPTION_UNSET: - /* Allow the run-time check to execute if it has been enabled - - * thus both API and CHECK can be turned on. If it isn't supported - * this case will fall through to the 'default' below, which just - * returns. - */ -#endif /* PNG_MIPS_MSA_API_SUPPORTED */ -#ifdef PNG_MIPS_MSA_CHECK_SUPPORTED - { - static volatile sig_atomic_t no_msa = -1; /* not checked */ - - if (no_msa < 0) - no_msa = !png_have_msa(pp); - - if (no_msa) - return; - } -#ifdef PNG_MIPS_MSA_API_SUPPORTED - break; -#endif -#endif /* PNG_MIPS_MSA_CHECK_SUPPORTED */ - -#ifdef PNG_MIPS_MSA_API_SUPPORTED - default: /* OFF or INVALID */ - return; - - case PNG_OPTION_ON: - /* Option turned on */ - break; - } -#endif - - /* IMPORTANT: any new external functions used here must be declared using - * PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the - * 'prefix' option to configure works: - * - * ./configure --with-libpng-prefix=foobar_ - * - * Verify you have got this right by running the above command, doing a build - * and examining pngprefix.h; it must contain a #define for every external - * function you add. (Notice that this happens automatically for the - * initialization function.) - */ - pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_msa; - - if (bpp == 3) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_msa; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_msa; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth3_msa; - } - - else if (bpp == 4) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_msa; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_msa; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth4_msa; - } -} -#endif /* PNG_MIPS_MSA_OPT > 0 */ -#endif /* READ */ diff --git a/Externals/libpng/png.c b/Externals/libpng/png.c deleted file mode 100644 index 757c755f97..0000000000 --- a/Externals/libpng/png.c +++ /dev/null @@ -1,4607 +0,0 @@ - -/* png.c - location for general purpose libpng functions - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" - -/* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_37 Your_png_h_is_not_version_1_6_37; - -#ifdef __GNUC__ -/* The version tests may need to be added to, but the problem warning has - * consistently been fixed in GCC versions which obtain wide-spread release. - * The problem is that many versions of GCC rearrange comparison expressions in - * the optimizer in such a way that the results of the comparison will change - * if signed integer overflow occurs. Such comparisons are not permitted in - * ANSI C90, however GCC isn't clever enough to work out that that do not occur - * below in png_ascii_from_fp and png_muldiv, so it produces a warning with - * -Wextra. Unfortunately this is highly dependent on the optimizer and the - * machine architecture so the warning comes and goes unpredictably and is - * impossible to "fix", even were that a good idea. - */ -#if __GNUC__ == 7 && __GNUC_MINOR__ == 1 -#define GCC_STRICT_OVERFLOW 1 -#endif /* GNU 7.1.x */ -#endif /* GNU */ -#ifndef GCC_STRICT_OVERFLOW -#define GCC_STRICT_OVERFLOW 0 -#endif - -/* Tells libpng that we have already handled the first "num_bytes" bytes - * of the PNG file signature. If the PNG data is embedded into another - * stream we can set num_bytes = 8 so that libpng will not attempt to read - * or write any of the magic bytes before it starts on the IHDR. - */ - -#ifdef PNG_READ_SUPPORTED -void PNGAPI -png_set_sig_bytes(png_structrp png_ptr, int num_bytes) -{ - unsigned int nb = (unsigned int)num_bytes; - - png_debug(1, "in png_set_sig_bytes"); - - if (png_ptr == NULL) - return; - - if (num_bytes < 0) - nb = 0; - - if (nb > 8) - png_error(png_ptr, "Too many bytes for PNG signature"); - - png_ptr->sig_bytes = (png_byte)nb; -} - -/* Checks whether the supplied bytes match the PNG signature. We allow - * checking less than the full 8-byte signature so that those apps that - * already read the first few bytes of a file to determine the file type - * can simply check the remaining bytes for extra assurance. Returns - * an integer less than, equal to, or greater than zero if sig is found, - * respectively, to be less than, to match, or be greater than the correct - * PNG signature (this is the same behavior as strcmp, memcmp, etc). - */ -int PNGAPI -png_sig_cmp(png_const_bytep sig, size_t start, size_t num_to_check) -{ - png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10}; - - if (num_to_check > 8) - num_to_check = 8; - - else if (num_to_check < 1) - return (-1); - - if (start > 7) - return (-1); - - if (start + num_to_check > 8) - num_to_check = 8 - start; - - return ((int)(memcmp(&sig[start], &png_signature[start], num_to_check))); -} - -#endif /* READ */ - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) -/* Function to allocate memory for zlib */ -PNG_FUNCTION(voidpf /* PRIVATE */, -png_zalloc,(voidpf png_ptr, uInt items, uInt size),PNG_ALLOCATED) -{ - png_alloc_size_t num_bytes = size; - - if (png_ptr == NULL) - return NULL; - - if (items >= (~(png_alloc_size_t)0)/size) - { - png_warning (png_voidcast(png_structrp, png_ptr), - "Potential overflow in png_zalloc()"); - return NULL; - } - - num_bytes *= items; - return png_malloc_warn(png_voidcast(png_structrp, png_ptr), num_bytes); -} - -/* Function to free memory for zlib */ -void /* PRIVATE */ -png_zfree(voidpf png_ptr, voidpf ptr) -{ - png_free(png_voidcast(png_const_structrp,png_ptr), ptr); -} - -/* Reset the CRC variable to 32 bits of 1's. Care must be taken - * in case CRC is > 32 bits to leave the top bits 0. - */ -void /* PRIVATE */ -png_reset_crc(png_structrp png_ptr) -{ - /* The cast is safe because the crc is a 32-bit value. */ - png_ptr->crc = (png_uint_32)crc32(0, Z_NULL, 0); -} - -/* Calculate the CRC over a section of data. We can only pass as - * much data to this routine as the largest single buffer size. We - * also check that this data will actually be used before going to the - * trouble of calculating it. - */ -void /* PRIVATE */ -png_calculate_crc(png_structrp png_ptr, png_const_bytep ptr, size_t length) -{ - int need_crc = 1; - - if (PNG_CHUNK_ANCILLARY(png_ptr->chunk_name) != 0) - { - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) == - (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN)) - need_crc = 0; - } - - else /* critical */ - { - if ((png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) != 0) - need_crc = 0; - } - - /* 'uLong' is defined in zlib.h as unsigned long; this means that on some - * systems it is a 64-bit value. crc32, however, returns 32 bits so the - * following cast is safe. 'uInt' may be no more than 16 bits, so it is - * necessary to perform a loop here. - */ - if (need_crc != 0 && length > 0) - { - uLong crc = png_ptr->crc; /* Should never issue a warning */ - - do - { - uInt safe_length = (uInt)length; -#ifndef __COVERITY__ - if (safe_length == 0) - safe_length = (uInt)-1; /* evil, but safe */ -#endif - - crc = crc32(crc, ptr, safe_length); - - /* The following should never issue compiler warnings; if they do the - * target system has characteristics that will probably violate other - * assumptions within the libpng code. - */ - ptr += safe_length; - length -= safe_length; - } - while (length > 0); - - /* And the following is always safe because the crc is only 32 bits. */ - png_ptr->crc = (png_uint_32)crc; - } -} - -/* Check a user supplied version number, called from both read and write - * functions that create a png_struct. - */ -int -png_user_version_check(png_structrp png_ptr, png_const_charp user_png_ver) -{ - /* Libpng versions 1.0.0 and later are binary compatible if the version - * string matches through the second '.'; we must recompile any - * applications that use any older library version. - */ - - if (user_png_ver != NULL) - { - int i = -1; - int found_dots = 0; - - do - { - i++; - if (user_png_ver[i] != PNG_LIBPNG_VER_STRING[i]) - png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; - if (user_png_ver[i] == '.') - found_dots++; - } while (found_dots < 2 && user_png_ver[i] != 0 && - PNG_LIBPNG_VER_STRING[i] != 0); - } - - else - png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH; - - if ((png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH) != 0) - { -#ifdef PNG_WARNINGS_SUPPORTED - size_t pos = 0; - char m[128]; - - pos = png_safecat(m, (sizeof m), pos, - "Application built with libpng-"); - pos = png_safecat(m, (sizeof m), pos, user_png_ver); - pos = png_safecat(m, (sizeof m), pos, " but running with "); - pos = png_safecat(m, (sizeof m), pos, PNG_LIBPNG_VER_STRING); - PNG_UNUSED(pos) - - png_warning(png_ptr, m); -#endif - -#ifdef PNG_ERROR_NUMBERS_SUPPORTED - png_ptr->flags = 0; -#endif - - return 0; - } - - /* Success return. */ - return 1; -} - -/* Generic function to create a png_struct for either read or write - this - * contains the common initialization. - */ -PNG_FUNCTION(png_structp /* PRIVATE */, -png_create_png_struct,(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED) -{ - png_struct create_struct; -# ifdef PNG_SETJMP_SUPPORTED - jmp_buf create_jmp_buf; -# endif - - /* This temporary stack-allocated structure is used to provide a place to - * build enough context to allow the user provided memory allocator (if any) - * to be called. - */ - memset(&create_struct, 0, (sizeof create_struct)); - - /* Added at libpng-1.2.6 */ -# ifdef PNG_USER_LIMITS_SUPPORTED - create_struct.user_width_max = PNG_USER_WIDTH_MAX; - create_struct.user_height_max = PNG_USER_HEIGHT_MAX; - -# ifdef PNG_USER_CHUNK_CACHE_MAX - /* Added at libpng-1.2.43 and 1.4.0 */ - create_struct.user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX; -# endif - -# ifdef PNG_USER_CHUNK_MALLOC_MAX - /* Added at libpng-1.2.43 and 1.4.1, required only for read but exists - * in png_struct regardless. - */ - create_struct.user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX; -# endif -# endif - - /* The following two API calls simply set fields in png_struct, so it is safe - * to do them now even though error handling is not yet set up. - */ -# ifdef PNG_USER_MEM_SUPPORTED - png_set_mem_fn(&create_struct, mem_ptr, malloc_fn, free_fn); -# else - PNG_UNUSED(mem_ptr) - PNG_UNUSED(malloc_fn) - PNG_UNUSED(free_fn) -# endif - - /* (*error_fn) can return control to the caller after the error_ptr is set, - * this will result in a memory leak unless the error_fn does something - * extremely sophisticated. The design lacks merit but is implicit in the - * API. - */ - png_set_error_fn(&create_struct, error_ptr, error_fn, warn_fn); - -# ifdef PNG_SETJMP_SUPPORTED - if (!setjmp(create_jmp_buf)) -# endif - { -# ifdef PNG_SETJMP_SUPPORTED - /* Temporarily fake out the longjmp information until we have - * successfully completed this function. This only works if we have - * setjmp() support compiled in, but it is safe - this stuff should - * never happen. - */ - create_struct.jmp_buf_ptr = &create_jmp_buf; - create_struct.jmp_buf_size = 0; /*stack allocation*/ - create_struct.longjmp_fn = longjmp; -# endif - /* Call the general version checker (shared with read and write code): - */ - if (png_user_version_check(&create_struct, user_png_ver) != 0) - { - png_structrp png_ptr = png_voidcast(png_structrp, - png_malloc_warn(&create_struct, (sizeof *png_ptr))); - - if (png_ptr != NULL) - { - /* png_ptr->zstream holds a back-pointer to the png_struct, so - * this can only be done now: - */ - create_struct.zstream.zalloc = png_zalloc; - create_struct.zstream.zfree = png_zfree; - create_struct.zstream.opaque = png_ptr; - -# ifdef PNG_SETJMP_SUPPORTED - /* Eliminate the local error handling: */ - create_struct.jmp_buf_ptr = NULL; - create_struct.jmp_buf_size = 0; - create_struct.longjmp_fn = 0; -# endif - - *png_ptr = create_struct; - - /* This is the successful return point */ - return png_ptr; - } - } - } - - /* A longjmp because of a bug in the application storage allocator or a - * simple failure to allocate the png_struct. - */ - return NULL; -} - -/* Allocate the memory for an info_struct for the application. */ -PNG_FUNCTION(png_infop,PNGAPI -png_create_info_struct,(png_const_structrp png_ptr),PNG_ALLOCATED) -{ - png_inforp info_ptr; - - png_debug(1, "in png_create_info_struct"); - - if (png_ptr == NULL) - return NULL; - - /* Use the internal API that does not (or at least should not) error out, so - * that this call always returns ok. The application typically sets up the - * error handling *after* creating the info_struct because this is the way it - * has always been done in 'example.c'. - */ - info_ptr = png_voidcast(png_inforp, png_malloc_base(png_ptr, - (sizeof *info_ptr))); - - if (info_ptr != NULL) - memset(info_ptr, 0, (sizeof *info_ptr)); - - return info_ptr; -} - -/* This function frees the memory associated with a single info struct. - * Normally, one would use either png_destroy_read_struct() or - * png_destroy_write_struct() to free an info struct, but this may be - * useful for some applications. From libpng 1.6.0 this function is also used - * internally to implement the png_info release part of the 'struct' destroy - * APIs. This ensures that all possible approaches free the same data (all of - * it). - */ -void PNGAPI -png_destroy_info_struct(png_const_structrp png_ptr, png_infopp info_ptr_ptr) -{ - png_inforp info_ptr = NULL; - - png_debug(1, "in png_destroy_info_struct"); - - if (png_ptr == NULL) - return; - - if (info_ptr_ptr != NULL) - info_ptr = *info_ptr_ptr; - - if (info_ptr != NULL) - { - /* Do this first in case of an error below; if the app implements its own - * memory management this can lead to png_free calling png_error, which - * will abort this routine and return control to the app error handler. - * An infinite loop may result if it then tries to free the same info - * ptr. - */ - *info_ptr_ptr = NULL; - - png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1); - memset(info_ptr, 0, (sizeof *info_ptr)); - png_free(png_ptr, info_ptr); - } -} - -/* Initialize the info structure. This is now an internal function (0.89) - * and applications using it are urged to use png_create_info_struct() - * instead. Use deprecated in 1.6.0, internal use removed (used internally it - * is just a memset). - * - * NOTE: it is almost inconceivable that this API is used because it bypasses - * the user-memory mechanism and the user error handling/warning mechanisms in - * those cases where it does anything other than a memset. - */ -PNG_FUNCTION(void,PNGAPI -png_info_init_3,(png_infopp ptr_ptr, size_t png_info_struct_size), - PNG_DEPRECATED) -{ - png_inforp info_ptr = *ptr_ptr; - - png_debug(1, "in png_info_init_3"); - - if (info_ptr == NULL) - return; - - if ((sizeof (png_info)) > png_info_struct_size) - { - *ptr_ptr = NULL; - /* The following line is why this API should not be used: */ - free(info_ptr); - info_ptr = png_voidcast(png_inforp, png_malloc_base(NULL, - (sizeof *info_ptr))); - if (info_ptr == NULL) - return; - *ptr_ptr = info_ptr; - } - - /* Set everything to 0 */ - memset(info_ptr, 0, (sizeof *info_ptr)); -} - -/* The following API is not called internally */ -void PNGAPI -png_data_freer(png_const_structrp png_ptr, png_inforp info_ptr, - int freer, png_uint_32 mask) -{ - png_debug(1, "in png_data_freer"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (freer == PNG_DESTROY_WILL_FREE_DATA) - info_ptr->free_me |= mask; - - else if (freer == PNG_USER_WILL_FREE_DATA) - info_ptr->free_me &= ~mask; - - else - png_error(png_ptr, "Unknown freer parameter in png_data_freer"); -} - -void PNGAPI -png_free_data(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 mask, - int num) -{ - png_debug(1, "in png_free_data"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - -#ifdef PNG_TEXT_SUPPORTED - /* Free text item num or (if num == -1) all text items */ - if (info_ptr->text != NULL && - ((mask & PNG_FREE_TEXT) & info_ptr->free_me) != 0) - { - if (num != -1) - { - png_free(png_ptr, info_ptr->text[num].key); - info_ptr->text[num].key = NULL; - } - - else - { - int i; - - for (i = 0; i < info_ptr->num_text; i++) - png_free(png_ptr, info_ptr->text[i].key); - - png_free(png_ptr, info_ptr->text); - info_ptr->text = NULL; - info_ptr->num_text = 0; - info_ptr->max_text = 0; - } - } -#endif - -#ifdef PNG_tRNS_SUPPORTED - /* Free any tRNS entry */ - if (((mask & PNG_FREE_TRNS) & info_ptr->free_me) != 0) - { - info_ptr->valid &= ~PNG_INFO_tRNS; - png_free(png_ptr, info_ptr->trans_alpha); - info_ptr->trans_alpha = NULL; - info_ptr->num_trans = 0; - } -#endif - -#ifdef PNG_sCAL_SUPPORTED - /* Free any sCAL entry */ - if (((mask & PNG_FREE_SCAL) & info_ptr->free_me) != 0) - { - png_free(png_ptr, info_ptr->scal_s_width); - png_free(png_ptr, info_ptr->scal_s_height); - info_ptr->scal_s_width = NULL; - info_ptr->scal_s_height = NULL; - info_ptr->valid &= ~PNG_INFO_sCAL; - } -#endif - -#ifdef PNG_pCAL_SUPPORTED - /* Free any pCAL entry */ - if (((mask & PNG_FREE_PCAL) & info_ptr->free_me) != 0) - { - png_free(png_ptr, info_ptr->pcal_purpose); - png_free(png_ptr, info_ptr->pcal_units); - info_ptr->pcal_purpose = NULL; - info_ptr->pcal_units = NULL; - - if (info_ptr->pcal_params != NULL) - { - int i; - - for (i = 0; i < info_ptr->pcal_nparams; i++) - png_free(png_ptr, info_ptr->pcal_params[i]); - - png_free(png_ptr, info_ptr->pcal_params); - info_ptr->pcal_params = NULL; - } - info_ptr->valid &= ~PNG_INFO_pCAL; - } -#endif - -#ifdef PNG_iCCP_SUPPORTED - /* Free any profile entry */ - if (((mask & PNG_FREE_ICCP) & info_ptr->free_me) != 0) - { - png_free(png_ptr, info_ptr->iccp_name); - png_free(png_ptr, info_ptr->iccp_profile); - info_ptr->iccp_name = NULL; - info_ptr->iccp_profile = NULL; - info_ptr->valid &= ~PNG_INFO_iCCP; - } -#endif - -#ifdef PNG_sPLT_SUPPORTED - /* Free a given sPLT entry, or (if num == -1) all sPLT entries */ - if (info_ptr->splt_palettes != NULL && - ((mask & PNG_FREE_SPLT) & info_ptr->free_me) != 0) - { - if (num != -1) - { - png_free(png_ptr, info_ptr->splt_palettes[num].name); - png_free(png_ptr, info_ptr->splt_palettes[num].entries); - info_ptr->splt_palettes[num].name = NULL; - info_ptr->splt_palettes[num].entries = NULL; - } - - else - { - int i; - - for (i = 0; i < info_ptr->splt_palettes_num; i++) - { - png_free(png_ptr, info_ptr->splt_palettes[i].name); - png_free(png_ptr, info_ptr->splt_palettes[i].entries); - } - - png_free(png_ptr, info_ptr->splt_palettes); - info_ptr->splt_palettes = NULL; - info_ptr->splt_palettes_num = 0; - info_ptr->valid &= ~PNG_INFO_sPLT; - } - } -#endif - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED - if (info_ptr->unknown_chunks != NULL && - ((mask & PNG_FREE_UNKN) & info_ptr->free_me) != 0) - { - if (num != -1) - { - png_free(png_ptr, info_ptr->unknown_chunks[num].data); - info_ptr->unknown_chunks[num].data = NULL; - } - - else - { - int i; - - for (i = 0; i < info_ptr->unknown_chunks_num; i++) - png_free(png_ptr, info_ptr->unknown_chunks[i].data); - - png_free(png_ptr, info_ptr->unknown_chunks); - info_ptr->unknown_chunks = NULL; - info_ptr->unknown_chunks_num = 0; - } - } -#endif - -#ifdef PNG_eXIf_SUPPORTED - /* Free any eXIf entry */ - if (((mask & PNG_FREE_EXIF) & info_ptr->free_me) != 0) - { -# ifdef PNG_READ_eXIf_SUPPORTED - if (info_ptr->eXIf_buf) - { - png_free(png_ptr, info_ptr->eXIf_buf); - info_ptr->eXIf_buf = NULL; - } -# endif - if (info_ptr->exif) - { - png_free(png_ptr, info_ptr->exif); - info_ptr->exif = NULL; - } - info_ptr->valid &= ~PNG_INFO_eXIf; - } -#endif - -#ifdef PNG_hIST_SUPPORTED - /* Free any hIST entry */ - if (((mask & PNG_FREE_HIST) & info_ptr->free_me) != 0) - { - png_free(png_ptr, info_ptr->hist); - info_ptr->hist = NULL; - info_ptr->valid &= ~PNG_INFO_hIST; - } -#endif - - /* Free any PLTE entry that was internally allocated */ - if (((mask & PNG_FREE_PLTE) & info_ptr->free_me) != 0) - { - png_free(png_ptr, info_ptr->palette); - info_ptr->palette = NULL; - info_ptr->valid &= ~PNG_INFO_PLTE; - info_ptr->num_palette = 0; - } - -#ifdef PNG_INFO_IMAGE_SUPPORTED - /* Free any image bits attached to the info structure */ - if (((mask & PNG_FREE_ROWS) & info_ptr->free_me) != 0) - { - if (info_ptr->row_pointers != NULL) - { - png_uint_32 row; - for (row = 0; row < info_ptr->height; row++) - png_free(png_ptr, info_ptr->row_pointers[row]); - - png_free(png_ptr, info_ptr->row_pointers); - info_ptr->row_pointers = NULL; - } - info_ptr->valid &= ~PNG_INFO_IDAT; - } -#endif - - if (num != -1) - mask &= ~PNG_FREE_MUL; - - info_ptr->free_me &= ~mask; -} -#endif /* READ || WRITE */ - -/* This function returns a pointer to the io_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy() or png_read_destroy() are called. - */ -png_voidp PNGAPI -png_get_io_ptr(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return (NULL); - - return (png_ptr->io_ptr); -} - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) -# ifdef PNG_STDIO_SUPPORTED -/* Initialize the default input/output functions for the PNG file. If you - * use your own read or write routines, you can call either png_set_read_fn() - * or png_set_write_fn() instead of png_init_io(). If you have defined - * PNG_NO_STDIO or otherwise disabled PNG_STDIO_SUPPORTED, you must use a - * function of your own because "FILE *" isn't necessarily available. - */ -void PNGAPI -png_init_io(png_structrp png_ptr, png_FILE_p fp) -{ - png_debug(1, "in png_init_io"); - - if (png_ptr == NULL) - return; - - png_ptr->io_ptr = (png_voidp)fp; -} -# endif - -# ifdef PNG_SAVE_INT_32_SUPPORTED -/* PNG signed integers are saved in 32-bit 2's complement format. ANSI C-90 - * defines a cast of a signed integer to an unsigned integer either to preserve - * the value, if it is positive, or to calculate: - * - * (UNSIGNED_MAX+1) + integer - * - * Where UNSIGNED_MAX is the appropriate maximum unsigned value, so when the - * negative integral value is added the result will be an unsigned value - * correspnding to the 2's complement representation. - */ -void PNGAPI -png_save_int_32(png_bytep buf, png_int_32 i) -{ - png_save_uint_32(buf, (png_uint_32)i); -} -# endif - -# ifdef PNG_TIME_RFC1123_SUPPORTED -/* Convert the supplied time into an RFC 1123 string suitable for use in - * a "Creation Time" or other text-based time string. - */ -int PNGAPI -png_convert_to_rfc1123_buffer(char out[29], png_const_timep ptime) -{ - static const char short_months[12][4] = - {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - - if (out == NULL) - return 0; - - if (ptime->year > 9999 /* RFC1123 limitation */ || - ptime->month == 0 || ptime->month > 12 || - ptime->day == 0 || ptime->day > 31 || - ptime->hour > 23 || ptime->minute > 59 || - ptime->second > 60) - return 0; - - { - size_t pos = 0; - char number_buf[5]; /* enough for a four-digit year */ - -# define APPEND_STRING(string) pos = png_safecat(out, 29, pos, (string)) -# define APPEND_NUMBER(format, value)\ - APPEND_STRING(PNG_FORMAT_NUMBER(number_buf, format, (value))) -# define APPEND(ch) if (pos < 28) out[pos++] = (ch) - - APPEND_NUMBER(PNG_NUMBER_FORMAT_u, (unsigned)ptime->day); - APPEND(' '); - APPEND_STRING(short_months[(ptime->month - 1)]); - APPEND(' '); - APPEND_NUMBER(PNG_NUMBER_FORMAT_u, ptime->year); - APPEND(' '); - APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->hour); - APPEND(':'); - APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->minute); - APPEND(':'); - APPEND_NUMBER(PNG_NUMBER_FORMAT_02u, (unsigned)ptime->second); - APPEND_STRING(" +0000"); /* This reliably terminates the buffer */ - PNG_UNUSED (pos) - -# undef APPEND -# undef APPEND_NUMBER -# undef APPEND_STRING - } - - return 1; -} - -# if PNG_LIBPNG_VER < 10700 -/* To do: remove the following from libpng-1.7 */ -/* Original API that uses a private buffer in png_struct. - * Deprecated because it causes png_struct to carry a spurious temporary - * buffer (png_struct::time_buffer), better to have the caller pass this in. - */ -png_const_charp PNGAPI -png_convert_to_rfc1123(png_structrp png_ptr, png_const_timep ptime) -{ - if (png_ptr != NULL) - { - /* The only failure above if png_ptr != NULL is from an invalid ptime */ - if (png_convert_to_rfc1123_buffer(png_ptr->time_buffer, ptime) == 0) - png_warning(png_ptr, "Ignoring invalid time value"); - - else - return png_ptr->time_buffer; - } - - return NULL; -} -# endif /* LIBPNG_VER < 10700 */ -# endif /* TIME_RFC1123 */ - -#endif /* READ || WRITE */ - -png_const_charp PNGAPI -png_get_copyright(png_const_structrp png_ptr) -{ - PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */ -#ifdef PNG_STRING_COPYRIGHT - return PNG_STRING_COPYRIGHT -#else - return PNG_STRING_NEWLINE \ - "libpng version 1.6.37" PNG_STRING_NEWLINE \ - "Copyright (c) 2018-2019 Cosmin Truta" PNG_STRING_NEWLINE \ - "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \ - PNG_STRING_NEWLINE \ - "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ - "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ - PNG_STRING_NEWLINE; -#endif -} - -/* The following return the library version as a short string in the - * format 1.0.0 through 99.99.99zz. To get the version of *.h files - * used with your application, print out PNG_LIBPNG_VER_STRING, which - * is defined in png.h. - * Note: now there is no difference between png_get_libpng_ver() and - * png_get_header_ver(). Due to the version_nn_nn_nn typedef guard, - * it is guaranteed that png.c uses the correct version of png.h. - */ -png_const_charp PNGAPI -png_get_libpng_ver(png_const_structrp png_ptr) -{ - /* Version of *.c files used when building libpng */ - return png_get_header_ver(png_ptr); -} - -png_const_charp PNGAPI -png_get_header_ver(png_const_structrp png_ptr) -{ - /* Version of *.h files used when building libpng */ - PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */ - return PNG_LIBPNG_VER_STRING; -} - -png_const_charp PNGAPI -png_get_header_version(png_const_structrp png_ptr) -{ - /* Returns longer string containing both version and date */ - PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */ -#ifdef __STDC__ - return PNG_HEADER_VERSION_STRING -# ifndef PNG_READ_SUPPORTED - " (NO READ SUPPORT)" -# endif - PNG_STRING_NEWLINE; -#else - return PNG_HEADER_VERSION_STRING; -#endif -} - -#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -/* NOTE: this routine is not used internally! */ -/* Build a grayscale palette. Palette is assumed to be 1 << bit_depth - * large of png_color. This lets grayscale images be treated as - * paletted. Most useful for gamma correction and simplification - * of code. This API is not used internally. - */ -void PNGAPI -png_build_grayscale_palette(int bit_depth, png_colorp palette) -{ - int num_palette; - int color_inc; - int i; - int v; - - png_debug(1, "in png_do_build_grayscale_palette"); - - if (palette == NULL) - return; - - switch (bit_depth) - { - case 1: - num_palette = 2; - color_inc = 0xff; - break; - - case 2: - num_palette = 4; - color_inc = 0x55; - break; - - case 4: - num_palette = 16; - color_inc = 0x11; - break; - - case 8: - num_palette = 256; - color_inc = 1; - break; - - default: - num_palette = 0; - color_inc = 0; - break; - } - - for (i = 0, v = 0; i < num_palette; i++, v += color_inc) - { - palette[i].red = (png_byte)(v & 0xff); - palette[i].green = (png_byte)(v & 0xff); - palette[i].blue = (png_byte)(v & 0xff); - } -} -#endif - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -int PNGAPI -png_handle_as_unknown(png_const_structrp png_ptr, png_const_bytep chunk_name) -{ - /* Check chunk_name and return "keep" value if it's on the list, else 0 */ - png_const_bytep p, p_end; - - if (png_ptr == NULL || chunk_name == NULL || png_ptr->num_chunk_list == 0) - return PNG_HANDLE_CHUNK_AS_DEFAULT; - - p_end = png_ptr->chunk_list; - p = p_end + png_ptr->num_chunk_list*5; /* beyond end */ - - /* The code is the fifth byte after each four byte string. Historically this - * code was always searched from the end of the list, this is no longer - * necessary because the 'set' routine handles duplicate entries correctly. - */ - do /* num_chunk_list > 0, so at least one */ - { - p -= 5; - - if (memcmp(chunk_name, p, 4) == 0) - return p[4]; - } - while (p > p_end); - - /* This means that known chunks should be processed and unknown chunks should - * be handled according to the value of png_ptr->unknown_default; this can be - * confusing because, as a result, there are two levels of defaulting for - * unknown chunks. - */ - return PNG_HANDLE_CHUNK_AS_DEFAULT; -} - -#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) -int /* PRIVATE */ -png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name) -{ - png_byte chunk_string[5]; - - PNG_CSTRING_FROM_CHUNK(chunk_string, chunk_name); - return png_handle_as_unknown(png_ptr, chunk_string); -} -#endif /* READ_UNKNOWN_CHUNKS || HANDLE_AS_UNKNOWN */ -#endif /* SET_UNKNOWN_CHUNKS */ - -#ifdef PNG_READ_SUPPORTED -/* This function, added to libpng-1.0.6g, is untested. */ -int PNGAPI -png_reset_zstream(png_structrp png_ptr) -{ - if (png_ptr == NULL) - return Z_STREAM_ERROR; - - /* WARNING: this resets the window bits to the maximum! */ - return (inflateReset(&png_ptr->zstream)); -} -#endif /* READ */ - -/* This function was added to libpng-1.0.7 */ -png_uint_32 PNGAPI -png_access_version_number(void) -{ - /* Version of *.c files used when building libpng */ - return((png_uint_32)PNG_LIBPNG_VER); -} - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) -/* Ensure that png_ptr->zstream.msg holds some appropriate error message string. - * If it doesn't 'ret' is used to set it to something appropriate, even in cases - * like Z_OK or Z_STREAM_END where the error code is apparently a success code. - */ -void /* PRIVATE */ -png_zstream_error(png_structrp png_ptr, int ret) -{ - /* Translate 'ret' into an appropriate error string, priority is given to the - * one in zstream if set. This always returns a string, even in cases like - * Z_OK or Z_STREAM_END where the error code is a success code. - */ - if (png_ptr->zstream.msg == NULL) switch (ret) - { - default: - case Z_OK: - png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return code"); - break; - - case Z_STREAM_END: - /* Normal exit */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected end of LZ stream"); - break; - - case Z_NEED_DICT: - /* This means the deflate stream did not have a dictionary; this - * indicates a bogus PNG. - */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("missing LZ dictionary"); - break; - - case Z_ERRNO: - /* gz APIs only: should not happen */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("zlib IO error"); - break; - - case Z_STREAM_ERROR: - /* internal libpng error */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("bad parameters to zlib"); - break; - - case Z_DATA_ERROR: - png_ptr->zstream.msg = PNGZ_MSG_CAST("damaged LZ stream"); - break; - - case Z_MEM_ERROR: - png_ptr->zstream.msg = PNGZ_MSG_CAST("insufficient memory"); - break; - - case Z_BUF_ERROR: - /* End of input or output; not a problem if the caller is doing - * incremental read or write. - */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("truncated"); - break; - - case Z_VERSION_ERROR: - png_ptr->zstream.msg = PNGZ_MSG_CAST("unsupported zlib version"); - break; - - case PNG_UNEXPECTED_ZLIB_RETURN: - /* Compile errors here mean that zlib now uses the value co-opted in - * pngpriv.h for PNG_UNEXPECTED_ZLIB_RETURN; update the switch above - * and change pngpriv.h. Note that this message is "... return", - * whereas the default/Z_OK one is "... return code". - */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("unexpected zlib return"); - break; - } -} - -/* png_convert_size: a PNGAPI but no longer in png.h, so deleted - * at libpng 1.5.5! - */ - -/* Added at libpng version 1.2.34 and 1.4.0 (moved from pngset.c) */ -#ifdef PNG_GAMMA_SUPPORTED /* always set if COLORSPACE */ -static int -png_colorspace_check_gamma(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_fixed_point gAMA, int from) - /* This is called to check a new gamma value against an existing one. The - * routine returns false if the new gamma value should not be written. - * - * 'from' says where the new gamma value comes from: - * - * 0: the new gamma value is the libpng estimate for an ICC profile - * 1: the new gamma value comes from a gAMA chunk - * 2: the new gamma value comes from an sRGB chunk - */ -{ - png_fixed_point gtest; - - if ((colorspace->flags & PNG_COLORSPACE_HAVE_GAMMA) != 0 && - (png_muldiv(>est, colorspace->gamma, PNG_FP_1, gAMA) == 0 || - png_gamma_significant(gtest) != 0)) - { - /* Either this is an sRGB image, in which case the calculated gamma - * approximation should match, or this is an image with a profile and the - * value libpng calculates for the gamma of the profile does not match the - * value recorded in the file. The former, sRGB, case is an error, the - * latter is just a warning. - */ - if ((colorspace->flags & PNG_COLORSPACE_FROM_sRGB) != 0 || from == 2) - { - png_chunk_report(png_ptr, "gamma value does not match sRGB", - PNG_CHUNK_ERROR); - /* Do not overwrite an sRGB value */ - return from == 2; - } - - else /* sRGB tag not involved */ - { - png_chunk_report(png_ptr, "gamma value does not match libpng estimate", - PNG_CHUNK_WARNING); - return from == 1; - } - } - - return 1; -} - -void /* PRIVATE */ -png_colorspace_set_gamma(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_fixed_point gAMA) -{ - /* Changed in libpng-1.5.4 to limit the values to ensure overflow can't - * occur. Since the fixed point representation is asymmetrical it is - * possible for 1/gamma to overflow the limit of 21474 and this means the - * gamma value must be at least 5/100000 and hence at most 20000.0. For - * safety the limits here are a little narrower. The values are 0.00016 to - * 6250.0, which are truly ridiculous gamma values (and will produce - * displays that are all black or all white.) - * - * In 1.6.0 this test replaces the ones in pngrutil.c, in the gAMA chunk - * handling code, which only required the value to be >0. - */ - png_const_charp errmsg; - - if (gAMA < 16 || gAMA > 625000000) - errmsg = "gamma value out of range"; - -# ifdef PNG_READ_gAMA_SUPPORTED - /* Allow the application to set the gamma value more than once */ - else if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && - (colorspace->flags & PNG_COLORSPACE_FROM_gAMA) != 0) - errmsg = "duplicate"; -# endif - - /* Do nothing if the colorspace is already invalid */ - else if ((colorspace->flags & PNG_COLORSPACE_INVALID) != 0) - return; - - else - { - if (png_colorspace_check_gamma(png_ptr, colorspace, gAMA, - 1/*from gAMA*/) != 0) - { - /* Store this gamma value. */ - colorspace->gamma = gAMA; - colorspace->flags |= - (PNG_COLORSPACE_HAVE_GAMMA | PNG_COLORSPACE_FROM_gAMA); - } - - /* At present if the check_gamma test fails the gamma of the colorspace is - * not updated however the colorspace is not invalidated. This - * corresponds to the case where the existing gamma comes from an sRGB - * chunk or profile. An error message has already been output. - */ - return; - } - - /* Error exit - errmsg has been set. */ - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_chunk_report(png_ptr, errmsg, PNG_CHUNK_WRITE_ERROR); -} - -void /* PRIVATE */ -png_colorspace_sync_info(png_const_structrp png_ptr, png_inforp info_ptr) -{ - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) != 0) - { - /* Everything is invalid */ - info_ptr->valid &= ~(PNG_INFO_gAMA|PNG_INFO_cHRM|PNG_INFO_sRGB| - PNG_INFO_iCCP); - -# ifdef PNG_COLORSPACE_SUPPORTED - /* Clean up the iCCP profile now if it won't be used. */ - png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, -1/*not used*/); -# else - PNG_UNUSED(png_ptr) -# endif - } - - else - { -# ifdef PNG_COLORSPACE_SUPPORTED - /* Leave the INFO_iCCP flag set if the pngset.c code has already set - * it; this allows a PNG to contain a profile which matches sRGB and - * yet still have that profile retrievable by the application. - */ - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_MATCHES_sRGB) != 0) - info_ptr->valid |= PNG_INFO_sRGB; - - else - info_ptr->valid &= ~PNG_INFO_sRGB; - - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - info_ptr->valid |= PNG_INFO_cHRM; - - else - info_ptr->valid &= ~PNG_INFO_cHRM; -# endif - - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0) - info_ptr->valid |= PNG_INFO_gAMA; - - else - info_ptr->valid &= ~PNG_INFO_gAMA; - } -} - -#ifdef PNG_READ_SUPPORTED -void /* PRIVATE */ -png_colorspace_sync(png_const_structrp png_ptr, png_inforp info_ptr) -{ - if (info_ptr == NULL) /* reduce code size; check here not in the caller */ - return; - - info_ptr->colorspace = png_ptr->colorspace; - png_colorspace_sync_info(png_ptr, info_ptr); -} -#endif -#endif /* GAMMA */ - -#ifdef PNG_COLORSPACE_SUPPORTED -/* Added at libpng-1.5.5 to support read and write of true CIEXYZ values for - * cHRM, as opposed to using chromaticities. These internal APIs return - * non-zero on a parameter error. The X, Y and Z values are required to be - * positive and less than 1.0. - */ -static int -png_xy_from_XYZ(png_xy *xy, const png_XYZ *XYZ) -{ - png_int_32 d, dwhite, whiteX, whiteY; - - d = XYZ->red_X + XYZ->red_Y + XYZ->red_Z; - if (png_muldiv(&xy->redx, XYZ->red_X, PNG_FP_1, d) == 0) - return 1; - if (png_muldiv(&xy->redy, XYZ->red_Y, PNG_FP_1, d) == 0) - return 1; - dwhite = d; - whiteX = XYZ->red_X; - whiteY = XYZ->red_Y; - - d = XYZ->green_X + XYZ->green_Y + XYZ->green_Z; - if (png_muldiv(&xy->greenx, XYZ->green_X, PNG_FP_1, d) == 0) - return 1; - if (png_muldiv(&xy->greeny, XYZ->green_Y, PNG_FP_1, d) == 0) - return 1; - dwhite += d; - whiteX += XYZ->green_X; - whiteY += XYZ->green_Y; - - d = XYZ->blue_X + XYZ->blue_Y + XYZ->blue_Z; - if (png_muldiv(&xy->bluex, XYZ->blue_X, PNG_FP_1, d) == 0) - return 1; - if (png_muldiv(&xy->bluey, XYZ->blue_Y, PNG_FP_1, d) == 0) - return 1; - dwhite += d; - whiteX += XYZ->blue_X; - whiteY += XYZ->blue_Y; - - /* The reference white is simply the sum of the end-point (X,Y,Z) vectors, - * thus: - */ - if (png_muldiv(&xy->whitex, whiteX, PNG_FP_1, dwhite) == 0) - return 1; - if (png_muldiv(&xy->whitey, whiteY, PNG_FP_1, dwhite) == 0) - return 1; - - return 0; -} - -static int -png_XYZ_from_xy(png_XYZ *XYZ, const png_xy *xy) -{ - png_fixed_point red_inverse, green_inverse, blue_scale; - png_fixed_point left, right, denominator; - - /* Check xy and, implicitly, z. Note that wide gamut color spaces typically - * have end points with 0 tristimulus values (these are impossible end - * points, but they are used to cover the possible colors). We check - * xy->whitey against 5, not 0, to avoid a possible integer overflow. - */ - if (xy->redx < 0 || xy->redx > PNG_FP_1) return 1; - if (xy->redy < 0 || xy->redy > PNG_FP_1-xy->redx) return 1; - if (xy->greenx < 0 || xy->greenx > PNG_FP_1) return 1; - if (xy->greeny < 0 || xy->greeny > PNG_FP_1-xy->greenx) return 1; - if (xy->bluex < 0 || xy->bluex > PNG_FP_1) return 1; - if (xy->bluey < 0 || xy->bluey > PNG_FP_1-xy->bluex) return 1; - if (xy->whitex < 0 || xy->whitex > PNG_FP_1) return 1; - if (xy->whitey < 5 || xy->whitey > PNG_FP_1-xy->whitex) return 1; - - /* The reverse calculation is more difficult because the original tristimulus - * value had 9 independent values (red,green,blue)x(X,Y,Z) however only 8 - * derived values were recorded in the cHRM chunk; - * (red,green,blue,white)x(x,y). This loses one degree of freedom and - * therefore an arbitrary ninth value has to be introduced to undo the - * original transformations. - * - * Think of the original end-points as points in (X,Y,Z) space. The - * chromaticity values (c) have the property: - * - * C - * c = --------- - * X + Y + Z - * - * For each c (x,y,z) from the corresponding original C (X,Y,Z). Thus the - * three chromaticity values (x,y,z) for each end-point obey the - * relationship: - * - * x + y + z = 1 - * - * This describes the plane in (X,Y,Z) space that intersects each axis at the - * value 1.0; call this the chromaticity plane. Thus the chromaticity - * calculation has scaled each end-point so that it is on the x+y+z=1 plane - * and chromaticity is the intersection of the vector from the origin to the - * (X,Y,Z) value with the chromaticity plane. - * - * To fully invert the chromaticity calculation we would need the three - * end-point scale factors, (red-scale, green-scale, blue-scale), but these - * were not recorded. Instead we calculated the reference white (X,Y,Z) and - * recorded the chromaticity of this. The reference white (X,Y,Z) would have - * given all three of the scale factors since: - * - * color-C = color-c * color-scale - * white-C = red-C + green-C + blue-C - * = red-c*red-scale + green-c*green-scale + blue-c*blue-scale - * - * But cHRM records only white-x and white-y, so we have lost the white scale - * factor: - * - * white-C = white-c*white-scale - * - * To handle this the inverse transformation makes an arbitrary assumption - * about white-scale: - * - * Assume: white-Y = 1.0 - * Hence: white-scale = 1/white-y - * Or: red-Y + green-Y + blue-Y = 1.0 - * - * Notice the last statement of the assumption gives an equation in three of - * the nine values we want to calculate. 8 more equations come from the - * above routine as summarised at the top above (the chromaticity - * calculation): - * - * Given: color-x = color-X / (color-X + color-Y + color-Z) - * Hence: (color-x - 1)*color-X + color.x*color-Y + color.x*color-Z = 0 - * - * This is 9 simultaneous equations in the 9 variables "color-C" and can be - * solved by Cramer's rule. Cramer's rule requires calculating 10 9x9 matrix - * determinants, however this is not as bad as it seems because only 28 of - * the total of 90 terms in the various matrices are non-zero. Nevertheless - * Cramer's rule is notoriously numerically unstable because the determinant - * calculation involves the difference of large, but similar, numbers. It is - * difficult to be sure that the calculation is stable for real world values - * and it is certain that it becomes unstable where the end points are close - * together. - * - * So this code uses the perhaps slightly less optimal but more - * understandable and totally obvious approach of calculating color-scale. - * - * This algorithm depends on the precision in white-scale and that is - * (1/white-y), so we can immediately see that as white-y approaches 0 the - * accuracy inherent in the cHRM chunk drops off substantially. - * - * libpng arithmetic: a simple inversion of the above equations - * ------------------------------------------------------------ - * - * white_scale = 1/white-y - * white-X = white-x * white-scale - * white-Y = 1.0 - * white-Z = (1 - white-x - white-y) * white_scale - * - * white-C = red-C + green-C + blue-C - * = red-c*red-scale + green-c*green-scale + blue-c*blue-scale - * - * This gives us three equations in (red-scale,green-scale,blue-scale) where - * all the coefficients are now known: - * - * red-x*red-scale + green-x*green-scale + blue-x*blue-scale - * = white-x/white-y - * red-y*red-scale + green-y*green-scale + blue-y*blue-scale = 1 - * red-z*red-scale + green-z*green-scale + blue-z*blue-scale - * = (1 - white-x - white-y)/white-y - * - * In the last equation color-z is (1 - color-x - color-y) so we can add all - * three equations together to get an alternative third: - * - * red-scale + green-scale + blue-scale = 1/white-y = white-scale - * - * So now we have a Cramer's rule solution where the determinants are just - * 3x3 - far more tractible. Unfortunately 3x3 determinants still involve - * multiplication of three coefficients so we can't guarantee to avoid - * overflow in the libpng fixed point representation. Using Cramer's rule in - * floating point is probably a good choice here, but it's not an option for - * fixed point. Instead proceed to simplify the first two equations by - * eliminating what is likely to be the largest value, blue-scale: - * - * blue-scale = white-scale - red-scale - green-scale - * - * Hence: - * - * (red-x - blue-x)*red-scale + (green-x - blue-x)*green-scale = - * (white-x - blue-x)*white-scale - * - * (red-y - blue-y)*red-scale + (green-y - blue-y)*green-scale = - * 1 - blue-y*white-scale - * - * And now we can trivially solve for (red-scale,green-scale): - * - * green-scale = - * (white-x - blue-x)*white-scale - (red-x - blue-x)*red-scale - * ----------------------------------------------------------- - * green-x - blue-x - * - * red-scale = - * 1 - blue-y*white-scale - (green-y - blue-y) * green-scale - * --------------------------------------------------------- - * red-y - blue-y - * - * Hence: - * - * red-scale = - * ( (green-x - blue-x) * (white-y - blue-y) - - * (green-y - blue-y) * (white-x - blue-x) ) / white-y - * ------------------------------------------------------------------------- - * (green-x - blue-x)*(red-y - blue-y)-(green-y - blue-y)*(red-x - blue-x) - * - * green-scale = - * ( (red-y - blue-y) * (white-x - blue-x) - - * (red-x - blue-x) * (white-y - blue-y) ) / white-y - * ------------------------------------------------------------------------- - * (green-x - blue-x)*(red-y - blue-y)-(green-y - blue-y)*(red-x - blue-x) - * - * Accuracy: - * The input values have 5 decimal digits of accuracy. The values are all in - * the range 0 < value < 1, so simple products are in the same range but may - * need up to 10 decimal digits to preserve the original precision and avoid - * underflow. Because we are using a 32-bit signed representation we cannot - * match this; the best is a little over 9 decimal digits, less than 10. - * - * The approach used here is to preserve the maximum precision within the - * signed representation. Because the red-scale calculation above uses the - * difference between two products of values that must be in the range -1..+1 - * it is sufficient to divide the product by 7; ceil(100,000/32767*2). The - * factor is irrelevant in the calculation because it is applied to both - * numerator and denominator. - * - * Note that the values of the differences of the products of the - * chromaticities in the above equations tend to be small, for example for - * the sRGB chromaticities they are: - * - * red numerator: -0.04751 - * green numerator: -0.08788 - * denominator: -0.2241 (without white-y multiplication) - * - * The resultant Y coefficients from the chromaticities of some widely used - * color space definitions are (to 15 decimal places): - * - * sRGB - * 0.212639005871510 0.715168678767756 0.072192315360734 - * Kodak ProPhoto - * 0.288071128229293 0.711843217810102 0.000085653960605 - * Adobe RGB - * 0.297344975250536 0.627363566255466 0.075291458493998 - * Adobe Wide Gamut RGB - * 0.258728243040113 0.724682314948566 0.016589442011321 - */ - /* By the argument, above overflow should be impossible here. The return - * value of 2 indicates an internal error to the caller. - */ - if (png_muldiv(&left, xy->greenx-xy->bluex, xy->redy - xy->bluey, 7) == 0) - return 2; - if (png_muldiv(&right, xy->greeny-xy->bluey, xy->redx - xy->bluex, 7) == 0) - return 2; - denominator = left - right; - - /* Now find the red numerator. */ - if (png_muldiv(&left, xy->greenx-xy->bluex, xy->whitey-xy->bluey, 7) == 0) - return 2; - if (png_muldiv(&right, xy->greeny-xy->bluey, xy->whitex-xy->bluex, 7) == 0) - return 2; - - /* Overflow is possible here and it indicates an extreme set of PNG cHRM - * chunk values. This calculation actually returns the reciprocal of the - * scale value because this allows us to delay the multiplication of white-y - * into the denominator, which tends to produce a small number. - */ - if (png_muldiv(&red_inverse, xy->whitey, denominator, left-right) == 0 || - red_inverse <= xy->whitey /* r+g+b scales = white scale */) - return 1; - - /* Similarly for green_inverse: */ - if (png_muldiv(&left, xy->redy-xy->bluey, xy->whitex-xy->bluex, 7) == 0) - return 2; - if (png_muldiv(&right, xy->redx-xy->bluex, xy->whitey-xy->bluey, 7) == 0) - return 2; - if (png_muldiv(&green_inverse, xy->whitey, denominator, left-right) == 0 || - green_inverse <= xy->whitey) - return 1; - - /* And the blue scale, the checks above guarantee this can't overflow but it - * can still produce 0 for extreme cHRM values. - */ - blue_scale = png_reciprocal(xy->whitey) - png_reciprocal(red_inverse) - - png_reciprocal(green_inverse); - if (blue_scale <= 0) - return 1; - - - /* And fill in the png_XYZ: */ - if (png_muldiv(&XYZ->red_X, xy->redx, PNG_FP_1, red_inverse) == 0) - return 1; - if (png_muldiv(&XYZ->red_Y, xy->redy, PNG_FP_1, red_inverse) == 0) - return 1; - if (png_muldiv(&XYZ->red_Z, PNG_FP_1 - xy->redx - xy->redy, PNG_FP_1, - red_inverse) == 0) - return 1; - - if (png_muldiv(&XYZ->green_X, xy->greenx, PNG_FP_1, green_inverse) == 0) - return 1; - if (png_muldiv(&XYZ->green_Y, xy->greeny, PNG_FP_1, green_inverse) == 0) - return 1; - if (png_muldiv(&XYZ->green_Z, PNG_FP_1 - xy->greenx - xy->greeny, PNG_FP_1, - green_inverse) == 0) - return 1; - - if (png_muldiv(&XYZ->blue_X, xy->bluex, blue_scale, PNG_FP_1) == 0) - return 1; - if (png_muldiv(&XYZ->blue_Y, xy->bluey, blue_scale, PNG_FP_1) == 0) - return 1; - if (png_muldiv(&XYZ->blue_Z, PNG_FP_1 - xy->bluex - xy->bluey, blue_scale, - PNG_FP_1) == 0) - return 1; - - return 0; /*success*/ -} - -static int -png_XYZ_normalize(png_XYZ *XYZ) -{ - png_int_32 Y; - - if (XYZ->red_Y < 0 || XYZ->green_Y < 0 || XYZ->blue_Y < 0 || - XYZ->red_X < 0 || XYZ->green_X < 0 || XYZ->blue_X < 0 || - XYZ->red_Z < 0 || XYZ->green_Z < 0 || XYZ->blue_Z < 0) - return 1; - - /* Normalize by scaling so the sum of the end-point Y values is PNG_FP_1. - * IMPLEMENTATION NOTE: ANSI requires signed overflow not to occur, therefore - * relying on addition of two positive values producing a negative one is not - * safe. - */ - Y = XYZ->red_Y; - if (0x7fffffff - Y < XYZ->green_X) - return 1; - Y += XYZ->green_Y; - if (0x7fffffff - Y < XYZ->blue_X) - return 1; - Y += XYZ->blue_Y; - - if (Y != PNG_FP_1) - { - if (png_muldiv(&XYZ->red_X, XYZ->red_X, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->red_Y, XYZ->red_Y, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->red_Z, XYZ->red_Z, PNG_FP_1, Y) == 0) - return 1; - - if (png_muldiv(&XYZ->green_X, XYZ->green_X, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->green_Y, XYZ->green_Y, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->green_Z, XYZ->green_Z, PNG_FP_1, Y) == 0) - return 1; - - if (png_muldiv(&XYZ->blue_X, XYZ->blue_X, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->blue_Y, XYZ->blue_Y, PNG_FP_1, Y) == 0) - return 1; - if (png_muldiv(&XYZ->blue_Z, XYZ->blue_Z, PNG_FP_1, Y) == 0) - return 1; - } - - return 0; -} - -static int -png_colorspace_endpoints_match(const png_xy *xy1, const png_xy *xy2, int delta) -{ - /* Allow an error of +/-0.01 (absolute value) on each chromaticity */ - if (PNG_OUT_OF_RANGE(xy1->whitex, xy2->whitex,delta) || - PNG_OUT_OF_RANGE(xy1->whitey, xy2->whitey,delta) || - PNG_OUT_OF_RANGE(xy1->redx, xy2->redx, delta) || - PNG_OUT_OF_RANGE(xy1->redy, xy2->redy, delta) || - PNG_OUT_OF_RANGE(xy1->greenx, xy2->greenx,delta) || - PNG_OUT_OF_RANGE(xy1->greeny, xy2->greeny,delta) || - PNG_OUT_OF_RANGE(xy1->bluex, xy2->bluex, delta) || - PNG_OUT_OF_RANGE(xy1->bluey, xy2->bluey, delta)) - return 0; - return 1; -} - -/* Added in libpng-1.6.0, a different check for the validity of a set of cHRM - * chunk chromaticities. Earlier checks used to simply look for the overflow - * condition (where the determinant of the matrix to solve for XYZ ends up zero - * because the chromaticity values are not all distinct.) Despite this it is - * theoretically possible to produce chromaticities that are apparently valid - * but that rapidly degrade to invalid, potentially crashing, sets because of - * arithmetic inaccuracies when calculations are performed on them. The new - * check is to round-trip xy -> XYZ -> xy and then check that the result is - * within a small percentage of the original. - */ -static int -png_colorspace_check_xy(png_XYZ *XYZ, const png_xy *xy) -{ - int result; - png_xy xy_test; - - /* As a side-effect this routine also returns the XYZ endpoints. */ - result = png_XYZ_from_xy(XYZ, xy); - if (result != 0) - return result; - - result = png_xy_from_XYZ(&xy_test, XYZ); - if (result != 0) - return result; - - if (png_colorspace_endpoints_match(xy, &xy_test, - 5/*actually, the math is pretty accurate*/) != 0) - return 0; - - /* Too much slip */ - return 1; -} - -/* This is the check going the other way. The XYZ is modified to normalize it - * (another side-effect) and the xy chromaticities are returned. - */ -static int -png_colorspace_check_XYZ(png_xy *xy, png_XYZ *XYZ) -{ - int result; - png_XYZ XYZtemp; - - result = png_XYZ_normalize(XYZ); - if (result != 0) - return result; - - result = png_xy_from_XYZ(xy, XYZ); - if (result != 0) - return result; - - XYZtemp = *XYZ; - return png_colorspace_check_xy(&XYZtemp, xy); -} - -/* Used to check for an endpoint match against sRGB */ -static const png_xy sRGB_xy = /* From ITU-R BT.709-3 */ -{ - /* color x y */ - /* red */ 64000, 33000, - /* green */ 30000, 60000, - /* blue */ 15000, 6000, - /* white */ 31270, 32900 -}; - -static int -png_colorspace_set_xy_and_XYZ(png_const_structrp png_ptr, - png_colorspacerp colorspace, const png_xy *xy, const png_XYZ *XYZ, - int preferred) -{ - if ((colorspace->flags & PNG_COLORSPACE_INVALID) != 0) - return 0; - - /* The consistency check is performed on the chromaticities; this factors out - * variations because of the normalization (or not) of the end point Y - * values. - */ - if (preferred < 2 && - (colorspace->flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - /* The end points must be reasonably close to any we already have. The - * following allows an error of up to +/-.001 - */ - if (png_colorspace_endpoints_match(xy, &colorspace->end_points_xy, - 100) == 0) - { - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_benign_error(png_ptr, "inconsistent chromaticities"); - return 0; /* failed */ - } - - /* Only overwrite with preferred values */ - if (preferred == 0) - return 1; /* ok, but no change */ - } - - colorspace->end_points_xy = *xy; - colorspace->end_points_XYZ = *XYZ; - colorspace->flags |= PNG_COLORSPACE_HAVE_ENDPOINTS; - - /* The end points are normally quoted to two decimal digits, so allow +/-0.01 - * on this test. - */ - if (png_colorspace_endpoints_match(xy, &sRGB_xy, 1000) != 0) - colorspace->flags |= PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB; - - else - colorspace->flags &= PNG_COLORSPACE_CANCEL( - PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB); - - return 2; /* ok and changed */ -} - -int /* PRIVATE */ -png_colorspace_set_chromaticities(png_const_structrp png_ptr, - png_colorspacerp colorspace, const png_xy *xy, int preferred) -{ - /* We must check the end points to ensure they are reasonable - in the past - * color management systems have crashed as a result of getting bogus - * colorant values, while this isn't the fault of libpng it is the - * responsibility of libpng because PNG carries the bomb and libpng is in a - * position to protect against it. - */ - png_XYZ XYZ; - - switch (png_colorspace_check_xy(&XYZ, xy)) - { - case 0: /* success */ - return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, xy, &XYZ, - preferred); - - case 1: - /* We can't invert the chromaticities so we can't produce value XYZ - * values. Likely as not a color management system will fail too. - */ - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_benign_error(png_ptr, "invalid chromaticities"); - break; - - default: - /* libpng is broken; this should be a warning but if it happens we - * want error reports so for the moment it is an error. - */ - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_error(png_ptr, "internal error checking chromaticities"); - } - - return 0; /* failed */ -} - -int /* PRIVATE */ -png_colorspace_set_endpoints(png_const_structrp png_ptr, - png_colorspacerp colorspace, const png_XYZ *XYZ_in, int preferred) -{ - png_XYZ XYZ = *XYZ_in; - png_xy xy; - - switch (png_colorspace_check_XYZ(&xy, &XYZ)) - { - case 0: - return png_colorspace_set_xy_and_XYZ(png_ptr, colorspace, &xy, &XYZ, - preferred); - - case 1: - /* End points are invalid. */ - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_benign_error(png_ptr, "invalid end points"); - break; - - default: - colorspace->flags |= PNG_COLORSPACE_INVALID; - png_error(png_ptr, "internal error checking chromaticities"); - } - - return 0; /* failed */ -} - -#if defined(PNG_sRGB_SUPPORTED) || defined(PNG_iCCP_SUPPORTED) -/* Error message generation */ -static char -png_icc_tag_char(png_uint_32 byte) -{ - byte &= 0xff; - if (byte >= 32 && byte <= 126) - return (char)byte; - else - return '?'; -} - -static void -png_icc_tag_name(char *name, png_uint_32 tag) -{ - name[0] = '\''; - name[1] = png_icc_tag_char(tag >> 24); - name[2] = png_icc_tag_char(tag >> 16); - name[3] = png_icc_tag_char(tag >> 8); - name[4] = png_icc_tag_char(tag ); - name[5] = '\''; -} - -static int -is_ICC_signature_char(png_alloc_size_t it) -{ - return it == 32 || (it >= 48 && it <= 57) || (it >= 65 && it <= 90) || - (it >= 97 && it <= 122); -} - -static int -is_ICC_signature(png_alloc_size_t it) -{ - return is_ICC_signature_char(it >> 24) /* checks all the top bits */ && - is_ICC_signature_char((it >> 16) & 0xff) && - is_ICC_signature_char((it >> 8) & 0xff) && - is_ICC_signature_char(it & 0xff); -} - -static int -png_icc_profile_error(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_alloc_size_t value, png_const_charp reason) -{ - size_t pos; - char message[196]; /* see below for calculation */ - - if (colorspace != NULL) - colorspace->flags |= PNG_COLORSPACE_INVALID; - - pos = png_safecat(message, (sizeof message), 0, "profile '"); /* 9 chars */ - pos = png_safecat(message, pos+79, pos, name); /* Truncate to 79 chars */ - pos = png_safecat(message, (sizeof message), pos, "': "); /* +2 = 90 */ - if (is_ICC_signature(value) != 0) - { - /* So 'value' is at most 4 bytes and the following cast is safe */ - png_icc_tag_name(message+pos, (png_uint_32)value); - pos += 6; /* total +8; less than the else clause */ - message[pos++] = ':'; - message[pos++] = ' '; - } -# ifdef PNG_WARNINGS_SUPPORTED - else - { - char number[PNG_NUMBER_BUFFER_SIZE]; /* +24 = 114*/ - - pos = png_safecat(message, (sizeof message), pos, - png_format_number(number, number+(sizeof number), - PNG_NUMBER_FORMAT_x, value)); - pos = png_safecat(message, (sizeof message), pos, "h: "); /*+2 = 116*/ - } -# endif - /* The 'reason' is an arbitrary message, allow +79 maximum 195 */ - pos = png_safecat(message, (sizeof message), pos, reason); - PNG_UNUSED(pos) - - /* This is recoverable, but make it unconditionally an app_error on write to - * avoid writing invalid ICC profiles into PNG files (i.e., we handle them - * on read, with a warning, but on write unless the app turns off - * application errors the PNG won't be written.) - */ - png_chunk_report(png_ptr, message, - (colorspace != NULL) ? PNG_CHUNK_ERROR : PNG_CHUNK_WRITE_ERROR); - - return 0; -} -#endif /* sRGB || iCCP */ - -#ifdef PNG_sRGB_SUPPORTED -int /* PRIVATE */ -png_colorspace_set_sRGB(png_const_structrp png_ptr, png_colorspacerp colorspace, - int intent) -{ - /* sRGB sets known gamma, end points and (from the chunk) intent. */ - /* IMPORTANT: these are not necessarily the values found in an ICC profile - * because ICC profiles store values adapted to a D50 environment; it is - * expected that the ICC profile mediaWhitePointTag will be D50; see the - * checks and code elsewhere to understand this better. - * - * These XYZ values, which are accurate to 5dp, produce rgb to gray - * coefficients of (6968,23435,2366), which are reduced (because they add up - * to 32769 not 32768) to (6968,23434,2366). These are the values that - * libpng has traditionally used (and are the best values given the 15bit - * algorithm used by the rgb to gray code.) - */ - static const png_XYZ sRGB_XYZ = /* D65 XYZ (*not* the D50 adapted values!) */ - { - /* color X Y Z */ - /* red */ 41239, 21264, 1933, - /* green */ 35758, 71517, 11919, - /* blue */ 18048, 7219, 95053 - }; - - /* Do nothing if the colorspace is already invalidated. */ - if ((colorspace->flags & PNG_COLORSPACE_INVALID) != 0) - return 0; - - /* Check the intent, then check for existing settings. It is valid for the - * PNG file to have cHRM or gAMA chunks along with sRGB, but the values must - * be consistent with the correct values. If, however, this function is - * called below because an iCCP chunk matches sRGB then it is quite - * conceivable that an older app recorded incorrect gAMA and cHRM because of - * an incorrect calculation based on the values in the profile - this does - * *not* invalidate the profile (though it still produces an error, which can - * be ignored.) - */ - if (intent < 0 || intent >= PNG_sRGB_INTENT_LAST) - return png_icc_profile_error(png_ptr, colorspace, "sRGB", - (png_alloc_size_t)intent, "invalid sRGB rendering intent"); - - if ((colorspace->flags & PNG_COLORSPACE_HAVE_INTENT) != 0 && - colorspace->rendering_intent != intent) - return png_icc_profile_error(png_ptr, colorspace, "sRGB", - (png_alloc_size_t)intent, "inconsistent rendering intents"); - - if ((colorspace->flags & PNG_COLORSPACE_FROM_sRGB) != 0) - { - png_benign_error(png_ptr, "duplicate sRGB information ignored"); - return 0; - } - - /* If the standard sRGB cHRM chunk does not match the one from the PNG file - * warn but overwrite the value with the correct one. - */ - if ((colorspace->flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0 && - !png_colorspace_endpoints_match(&sRGB_xy, &colorspace->end_points_xy, - 100)) - png_chunk_report(png_ptr, "cHRM chunk does not match sRGB", - PNG_CHUNK_ERROR); - - /* This check is just done for the error reporting - the routine always - * returns true when the 'from' argument corresponds to sRGB (2). - */ - (void)png_colorspace_check_gamma(png_ptr, colorspace, PNG_GAMMA_sRGB_INVERSE, - 2/*from sRGB*/); - - /* intent: bugs in GCC force 'int' to be used as the parameter type. */ - colorspace->rendering_intent = (png_uint_16)intent; - colorspace->flags |= PNG_COLORSPACE_HAVE_INTENT; - - /* endpoints */ - colorspace->end_points_xy = sRGB_xy; - colorspace->end_points_XYZ = sRGB_XYZ; - colorspace->flags |= - (PNG_COLORSPACE_HAVE_ENDPOINTS|PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB); - - /* gamma */ - colorspace->gamma = PNG_GAMMA_sRGB_INVERSE; - colorspace->flags |= PNG_COLORSPACE_HAVE_GAMMA; - - /* Finally record that we have an sRGB profile */ - colorspace->flags |= - (PNG_COLORSPACE_MATCHES_sRGB|PNG_COLORSPACE_FROM_sRGB); - - return 1; /* set */ -} -#endif /* sRGB */ - -#ifdef PNG_iCCP_SUPPORTED -/* Encoded value of D50 as an ICC XYZNumber. From the ICC 2010 spec the value - * is XYZ(0.9642,1.0,0.8249), which scales to: - * - * (63189.8112, 65536, 54060.6464) - */ -static const png_byte D50_nCIEXYZ[12] = - { 0x00, 0x00, 0xf6, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d }; - -static int /* bool */ -icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_uint_32 profile_length) -{ - if (profile_length < 132) - return png_icc_profile_error(png_ptr, colorspace, name, profile_length, - "too short"); - return 1; -} - -#ifdef PNG_READ_iCCP_SUPPORTED -int /* PRIVATE */ -png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_uint_32 profile_length) -{ - if (!icc_check_length(png_ptr, colorspace, name, profile_length)) - return 0; - - /* This needs to be here because the 'normal' check is in - * png_decompress_chunk, yet this happens after the attempt to - * png_malloc_base the required data. We only need this on read; on write - * the caller supplies the profile buffer so libpng doesn't allocate it. See - * the call to icc_check_length below (the write case). - */ -# ifdef PNG_SET_USER_LIMITS_SUPPORTED - else if (png_ptr->user_chunk_malloc_max > 0 && - png_ptr->user_chunk_malloc_max < profile_length) - return png_icc_profile_error(png_ptr, colorspace, name, profile_length, - "exceeds application limits"); -# elif PNG_USER_CHUNK_MALLOC_MAX > 0 - else if (PNG_USER_CHUNK_MALLOC_MAX < profile_length) - return png_icc_profile_error(png_ptr, colorspace, name, profile_length, - "exceeds libpng limits"); -# else /* !SET_USER_LIMITS */ - /* This will get compiled out on all 32-bit and better systems. */ - else if (PNG_SIZE_MAX < profile_length) - return png_icc_profile_error(png_ptr, colorspace, name, profile_length, - "exceeds system limits"); -# endif /* !SET_USER_LIMITS */ - - return 1; -} -#endif /* READ_iCCP */ - -int /* PRIVATE */ -png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_uint_32 profile_length, - png_const_bytep profile/* first 132 bytes only */, int color_type) -{ - png_uint_32 temp; - - /* Length check; this cannot be ignored in this code because profile_length - * is used later to check the tag table, so even if the profile seems over - * long profile_length from the caller must be correct. The caller can fix - * this up on read or write by just passing in the profile header length. - */ - temp = png_get_uint_32(profile); - if (temp != profile_length) - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "length does not match profile"); - - temp = (png_uint_32) (*(profile+8)); - if (temp > 3 && (profile_length & 3)) - return png_icc_profile_error(png_ptr, colorspace, name, profile_length, - "invalid length"); - - temp = png_get_uint_32(profile+128); /* tag count: 12 bytes/tag */ - if (temp > 357913930 || /* (2^32-4-132)/12: maximum possible tag count */ - profile_length < 132+12*temp) /* truncated tag table */ - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "tag count too large"); - - /* The 'intent' must be valid or we can't store it, ICC limits the intent to - * 16 bits. - */ - temp = png_get_uint_32(profile+64); - if (temp >= 0xffff) /* The ICC limit */ - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "invalid rendering intent"); - - /* This is just a warning because the profile may be valid in future - * versions. - */ - if (temp >= PNG_sRGB_INTENT_LAST) - (void)png_icc_profile_error(png_ptr, NULL, name, temp, - "intent outside defined range"); - - /* At this point the tag table can't be checked because it hasn't necessarily - * been loaded; however, various header fields can be checked. These checks - * are for values permitted by the PNG spec in an ICC profile; the PNG spec - * restricts the profiles that can be passed in an iCCP chunk (they must be - * appropriate to processing PNG data!) - */ - - /* Data checks (could be skipped). These checks must be independent of the - * version number; however, the version number doesn't accommodate changes in - * the header fields (just the known tags and the interpretation of the - * data.) - */ - temp = png_get_uint_32(profile+36); /* signature 'ascp' */ - if (temp != 0x61637370) - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "invalid signature"); - - /* Currently the PCS illuminant/adopted white point (the computational - * white point) are required to be D50, - * however the profile contains a record of the illuminant so perhaps ICC - * expects to be able to change this in the future (despite the rationale in - * the introduction for using a fixed PCS adopted white.) Consequently the - * following is just a warning. - */ - if (memcmp(profile+68, D50_nCIEXYZ, 12) != 0) - (void)png_icc_profile_error(png_ptr, NULL, name, 0/*no tag value*/, - "PCS illuminant is not D50"); - - /* The PNG spec requires this: - * "If the iCCP chunk is present, the image samples conform to the colour - * space represented by the embedded ICC profile as defined by the - * International Color Consortium [ICC]. The colour space of the ICC profile - * shall be an RGB colour space for colour images (PNG colour types 2, 3, and - * 6), or a greyscale colour space for greyscale images (PNG colour types 0 - * and 4)." - * - * This checking code ensures the embedded profile (on either read or write) - * conforms to the specification requirements. Notice that an ICC 'gray' - * color-space profile contains the information to transform the monochrome - * data to XYZ or L*a*b (according to which PCS the profile uses) and this - * should be used in preference to the standard libpng K channel replication - * into R, G and B channels. - * - * Previously it was suggested that an RGB profile on grayscale data could be - * handled. However it it is clear that using an RGB profile in this context - * must be an error - there is no specification of what it means. Thus it is - * almost certainly more correct to ignore the profile. - */ - temp = png_get_uint_32(profile+16); /* data colour space field */ - switch (temp) - { - case 0x52474220: /* 'RGB ' */ - if ((color_type & PNG_COLOR_MASK_COLOR) == 0) - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "RGB color space not permitted on grayscale PNG"); - break; - - case 0x47524159: /* 'GRAY' */ - if ((color_type & PNG_COLOR_MASK_COLOR) != 0) - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "Gray color space not permitted on RGB PNG"); - break; - - default: - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "invalid ICC profile color space"); - } - - /* It is up to the application to check that the profile class matches the - * application requirements; the spec provides no guidance, but it's pretty - * weird if the profile is not scanner ('scnr'), monitor ('mntr'), printer - * ('prtr') or 'spac' (for generic color spaces). Issue a warning in these - * cases. Issue an error for device link or abstract profiles - these don't - * contain the records necessary to transform the color-space to anything - * other than the target device (and not even that for an abstract profile). - * Profiles of these classes may not be embedded in images. - */ - temp = png_get_uint_32(profile+12); /* profile/device class */ - switch (temp) - { - case 0x73636e72: /* 'scnr' */ - case 0x6d6e7472: /* 'mntr' */ - case 0x70727472: /* 'prtr' */ - case 0x73706163: /* 'spac' */ - /* All supported */ - break; - - case 0x61627374: /* 'abst' */ - /* May not be embedded in an image */ - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "invalid embedded Abstract ICC profile"); - - case 0x6c696e6b: /* 'link' */ - /* DeviceLink profiles cannot be interpreted in a non-device specific - * fashion, if an app uses the AToB0Tag in the profile the results are - * undefined unless the result is sent to the intended device, - * therefore a DeviceLink profile should not be found embedded in a - * PNG. - */ - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "unexpected DeviceLink ICC profile class"); - - case 0x6e6d636c: /* 'nmcl' */ - /* A NamedColor profile is also device specific, however it doesn't - * contain an AToB0 tag that is open to misinterpretation. Almost - * certainly it will fail the tests below. - */ - (void)png_icc_profile_error(png_ptr, NULL, name, temp, - "unexpected NamedColor ICC profile class"); - break; - - default: - /* To allow for future enhancements to the profile accept unrecognized - * profile classes with a warning, these then hit the test below on the - * tag content to ensure they are backward compatible with one of the - * understood profiles. - */ - (void)png_icc_profile_error(png_ptr, NULL, name, temp, - "unrecognized ICC profile class"); - break; - } - - /* For any profile other than a device link one the PCS must be encoded - * either in XYZ or Lab. - */ - temp = png_get_uint_32(profile+20); - switch (temp) - { - case 0x58595a20: /* 'XYZ ' */ - case 0x4c616220: /* 'Lab ' */ - break; - - default: - return png_icc_profile_error(png_ptr, colorspace, name, temp, - "unexpected ICC PCS encoding"); - } - - return 1; -} - -int /* PRIVATE */ -png_icc_check_tag_table(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_uint_32 profile_length, - png_const_bytep profile /* header plus whole tag table */) -{ - png_uint_32 tag_count = png_get_uint_32(profile+128); - png_uint_32 itag; - png_const_bytep tag = profile+132; /* The first tag */ - - /* First scan all the tags in the table and add bits to the icc_info value - * (temporarily in 'tags'). - */ - for (itag=0; itag < tag_count; ++itag, tag += 12) - { - png_uint_32 tag_id = png_get_uint_32(tag+0); - png_uint_32 tag_start = png_get_uint_32(tag+4); /* must be aligned */ - png_uint_32 tag_length = png_get_uint_32(tag+8);/* not padded */ - - /* The ICC specification does not exclude zero length tags, therefore the - * start might actually be anywhere if there is no data, but this would be - * a clear abuse of the intent of the standard so the start is checked for - * being in range. All defined tag types have an 8 byte header - a 4 byte - * type signature then 0. - */ - - /* This is a hard error; potentially it can cause read outside the - * profile. - */ - if (tag_start > profile_length || tag_length > profile_length - tag_start) - return png_icc_profile_error(png_ptr, colorspace, name, tag_id, - "ICC profile tag outside profile"); - - if ((tag_start & 3) != 0) - { - /* CNHP730S.icc shipped with Microsoft Windows 64 violates this; it is - * only a warning here because libpng does not care about the - * alignment. - */ - (void)png_icc_profile_error(png_ptr, NULL, name, tag_id, - "ICC profile tag start not a multiple of 4"); - } - } - - return 1; /* success, maybe with warnings */ -} - -#ifdef PNG_sRGB_SUPPORTED -#if PNG_sRGB_PROFILE_CHECKS >= 0 -/* Information about the known ICC sRGB profiles */ -static const struct -{ - png_uint_32 adler, crc, length; - png_uint_32 md5[4]; - png_byte have_md5; - png_byte is_broken; - png_uint_16 intent; - -# define PNG_MD5(a,b,c,d) { a, b, c, d }, (a!=0)||(b!=0)||(c!=0)||(d!=0) -# define PNG_ICC_CHECKSUM(adler, crc, md5, intent, broke, date, length, fname)\ - { adler, crc, length, md5, broke, intent }, - -} png_sRGB_checks[] = -{ - /* This data comes from contrib/tools/checksum-icc run on downloads of - * all four ICC sRGB profiles from www.color.org. - */ - /* adler32, crc32, MD5[4], intent, date, length, file-name */ - PNG_ICC_CHECKSUM(0x0a3fd9f6, 0x3b8772b9, - PNG_MD5(0x29f83dde, 0xaff255ae, 0x7842fae4, 0xca83390d), 0, 0, - "2009/03/27 21:36:31", 3048, "sRGB_IEC61966-2-1_black_scaled.icc") - - /* ICC sRGB v2 perceptual no black-compensation: */ - PNG_ICC_CHECKSUM(0x4909e5e1, 0x427ebb21, - PNG_MD5(0xc95bd637, 0xe95d8a3b, 0x0df38f99, 0xc1320389), 1, 0, - "2009/03/27 21:37:45", 3052, "sRGB_IEC61966-2-1_no_black_scaling.icc") - - PNG_ICC_CHECKSUM(0xfd2144a1, 0x306fd8ae, - PNG_MD5(0xfc663378, 0x37e2886b, 0xfd72e983, 0x8228f1b8), 0, 0, - "2009/08/10 17:28:01", 60988, "sRGB_v4_ICC_preference_displayclass.icc") - - /* ICC sRGB v4 perceptual */ - PNG_ICC_CHECKSUM(0x209c35d2, 0xbbef7812, - PNG_MD5(0x34562abf, 0x994ccd06, 0x6d2c5721, 0xd0d68c5d), 0, 0, - "2007/07/25 00:05:37", 60960, "sRGB_v4_ICC_preference.icc") - - /* The following profiles have no known MD5 checksum. If there is a match - * on the (empty) MD5 the other fields are used to attempt a match and - * a warning is produced. The first two of these profiles have a 'cprt' tag - * which suggests that they were also made by Hewlett Packard. - */ - PNG_ICC_CHECKSUM(0xa054d762, 0x5d5129ce, - PNG_MD5(0x00000000, 0x00000000, 0x00000000, 0x00000000), 1, 0, - "2004/07/21 18:57:42", 3024, "sRGB_IEC61966-2-1_noBPC.icc") - - /* This is a 'mntr' (display) profile with a mediaWhitePointTag that does not - * match the D50 PCS illuminant in the header (it is in fact the D65 values, - * so the white point is recorded as the un-adapted value.) The profiles - * below only differ in one byte - the intent - and are basically the same as - * the previous profile except for the mediaWhitePointTag error and a missing - * chromaticAdaptationTag. - */ - PNG_ICC_CHECKSUM(0xf784f3fb, 0x182ea552, - PNG_MD5(0x00000000, 0x00000000, 0x00000000, 0x00000000), 0, 1/*broken*/, - "1998/02/09 06:49:00", 3144, "HP-Microsoft sRGB v2 perceptual") - - PNG_ICC_CHECKSUM(0x0398f3fc, 0xf29e526d, - PNG_MD5(0x00000000, 0x00000000, 0x00000000, 0x00000000), 1, 1/*broken*/, - "1998/02/09 06:49:00", 3144, "HP-Microsoft sRGB v2 media-relative") -}; - -static int -png_compare_ICC_profile_with_sRGB(png_const_structrp png_ptr, - png_const_bytep profile, uLong adler) -{ - /* The quick check is to verify just the MD5 signature and trust the - * rest of the data. Because the profile has already been verified for - * correctness this is safe. png_colorspace_set_sRGB will check the 'intent' - * field too, so if the profile has been edited with an intent not defined - * by sRGB (but maybe defined by a later ICC specification) the read of - * the profile will fail at that point. - */ - - png_uint_32 length = 0; - png_uint_32 intent = 0x10000; /* invalid */ -#if PNG_sRGB_PROFILE_CHECKS > 1 - uLong crc = 0; /* the value for 0 length data */ -#endif - unsigned int i; - -#ifdef PNG_SET_OPTION_SUPPORTED - /* First see if PNG_SKIP_sRGB_CHECK_PROFILE has been set to "on" */ - if (((png_ptr->options >> PNG_SKIP_sRGB_CHECK_PROFILE) & 3) == - PNG_OPTION_ON) - return 0; -#endif - - for (i=0; i < (sizeof png_sRGB_checks) / (sizeof png_sRGB_checks[0]); ++i) - { - if (png_get_uint_32(profile+84) == png_sRGB_checks[i].md5[0] && - png_get_uint_32(profile+88) == png_sRGB_checks[i].md5[1] && - png_get_uint_32(profile+92) == png_sRGB_checks[i].md5[2] && - png_get_uint_32(profile+96) == png_sRGB_checks[i].md5[3]) - { - /* This may be one of the old HP profiles without an MD5, in that - * case we can only use the length and Adler32 (note that these - * are not used by default if there is an MD5!) - */ -# if PNG_sRGB_PROFILE_CHECKS == 0 - if (png_sRGB_checks[i].have_md5 != 0) - return 1+png_sRGB_checks[i].is_broken; -# endif - - /* Profile is unsigned or more checks have been configured in. */ - if (length == 0) - { - length = png_get_uint_32(profile); - intent = png_get_uint_32(profile+64); - } - - /* Length *and* intent must match */ - if (length == (png_uint_32) png_sRGB_checks[i].length && - intent == (png_uint_32) png_sRGB_checks[i].intent) - { - /* Now calculate the adler32 if not done already. */ - if (adler == 0) - { - adler = adler32(0, NULL, 0); - adler = adler32(adler, profile, length); - } - - if (adler == png_sRGB_checks[i].adler) - { - /* These basic checks suggest that the data has not been - * modified, but if the check level is more than 1 perform - * our own crc32 checksum on the data. - */ -# if PNG_sRGB_PROFILE_CHECKS > 1 - if (crc == 0) - { - crc = crc32(0, NULL, 0); - crc = crc32(crc, profile, length); - } - - /* So this check must pass for the 'return' below to happen. - */ - if (crc == png_sRGB_checks[i].crc) -# endif - { - if (png_sRGB_checks[i].is_broken != 0) - { - /* These profiles are known to have bad data that may cause - * problems if they are used, therefore attempt to - * discourage their use, skip the 'have_md5' warning below, - * which is made irrelevant by this error. - */ - png_chunk_report(png_ptr, "known incorrect sRGB profile", - PNG_CHUNK_ERROR); - } - - /* Warn that this being done; this isn't even an error since - * the profile is perfectly valid, but it would be nice if - * people used the up-to-date ones. - */ - else if (png_sRGB_checks[i].have_md5 == 0) - { - png_chunk_report(png_ptr, - "out-of-date sRGB profile with no signature", - PNG_CHUNK_WARNING); - } - - return 1+png_sRGB_checks[i].is_broken; - } - } - -# if PNG_sRGB_PROFILE_CHECKS > 0 - /* The signature matched, but the profile had been changed in some - * way. This probably indicates a data error or uninformed hacking. - * Fall through to "no match". - */ - png_chunk_report(png_ptr, - "Not recognizing known sRGB profile that has been edited", - PNG_CHUNK_WARNING); - break; -# endif - } - } - } - - return 0; /* no match */ -} - -void /* PRIVATE */ -png_icc_set_sRGB(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_const_bytep profile, uLong adler) -{ - /* Is this profile one of the known ICC sRGB profiles? If it is, just set - * the sRGB information. - */ - if (png_compare_ICC_profile_with_sRGB(png_ptr, profile, adler) != 0) - (void)png_colorspace_set_sRGB(png_ptr, colorspace, - (int)/*already checked*/png_get_uint_32(profile+64)); -} -#endif /* PNG_sRGB_PROFILE_CHECKS >= 0 */ -#endif /* sRGB */ - -int /* PRIVATE */ -png_colorspace_set_ICC(png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_charp name, png_uint_32 profile_length, png_const_bytep profile, - int color_type) -{ - if ((colorspace->flags & PNG_COLORSPACE_INVALID) != 0) - return 0; - - if (icc_check_length(png_ptr, colorspace, name, profile_length) != 0 && - png_icc_check_header(png_ptr, colorspace, name, profile_length, profile, - color_type) != 0 && - png_icc_check_tag_table(png_ptr, colorspace, name, profile_length, - profile) != 0) - { -# if defined(PNG_sRGB_SUPPORTED) && PNG_sRGB_PROFILE_CHECKS >= 0 - /* If no sRGB support, don't try storing sRGB information */ - png_icc_set_sRGB(png_ptr, colorspace, profile, 0); -# endif - return 1; - } - - /* Failure case */ - return 0; -} -#endif /* iCCP */ - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -void /* PRIVATE */ -png_colorspace_set_rgb_coefficients(png_structrp png_ptr) -{ - /* Set the rgb_to_gray coefficients from the colorspace. */ - if (png_ptr->rgb_to_gray_coefficients_set == 0 && - (png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - /* png_set_background has not been called, get the coefficients from the Y - * values of the colorspace colorants. - */ - png_fixed_point r = png_ptr->colorspace.end_points_XYZ.red_Y; - png_fixed_point g = png_ptr->colorspace.end_points_XYZ.green_Y; - png_fixed_point b = png_ptr->colorspace.end_points_XYZ.blue_Y; - png_fixed_point total = r+g+b; - - if (total > 0 && - r >= 0 && png_muldiv(&r, r, 32768, total) && r >= 0 && r <= 32768 && - g >= 0 && png_muldiv(&g, g, 32768, total) && g >= 0 && g <= 32768 && - b >= 0 && png_muldiv(&b, b, 32768, total) && b >= 0 && b <= 32768 && - r+g+b <= 32769) - { - /* We allow 0 coefficients here. r+g+b may be 32769 if two or - * all of the coefficients were rounded up. Handle this by - * reducing the *largest* coefficient by 1; this matches the - * approach used for the default coefficients in pngrtran.c - */ - int add = 0; - - if (r+g+b > 32768) - add = -1; - else if (r+g+b < 32768) - add = 1; - - if (add != 0) - { - if (g >= r && g >= b) - g += add; - else if (r >= g && r >= b) - r += add; - else - b += add; - } - - /* Check for an internal error. */ - if (r+g+b != 32768) - png_error(png_ptr, - "internal error handling cHRM coefficients"); - - else - { - png_ptr->rgb_to_gray_red_coeff = (png_uint_16)r; - png_ptr->rgb_to_gray_green_coeff = (png_uint_16)g; - } - } - - /* This is a png_error at present even though it could be ignored - - * it should never happen, but it is important that if it does, the - * bug is fixed. - */ - else - png_error(png_ptr, "internal error handling cHRM->XYZ"); - } -} -#endif /* READ_RGB_TO_GRAY */ - -#endif /* COLORSPACE */ - -#ifdef __GNUC__ -/* This exists solely to work round a warning from GNU C. */ -static int /* PRIVATE */ -png_gt(size_t a, size_t b) -{ - return a > b; -} -#else -# define png_gt(a,b) ((a) > (b)) -#endif - -void /* PRIVATE */ -png_check_IHDR(png_const_structrp png_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type) -{ - int error = 0; - - /* Check for width and height valid values */ - if (width == 0) - { - png_warning(png_ptr, "Image width is zero in IHDR"); - error = 1; - } - - if (width > PNG_UINT_31_MAX) - { - png_warning(png_ptr, "Invalid image width in IHDR"); - error = 1; - } - - if (png_gt(((width + 7) & (~7U)), - ((PNG_SIZE_MAX - - 48 /* big_row_buf hack */ - - 1) /* filter byte */ - / 8) /* 8-byte RGBA pixels */ - - 1)) /* extra max_pixel_depth pad */ - { - /* The size of the row must be within the limits of this architecture. - * Because the read code can perform arbitrary transformations the - * maximum size is checked here. Because the code in png_read_start_row - * adds extra space "for safety's sake" in several places a conservative - * limit is used here. - * - * NOTE: it would be far better to check the size that is actually used, - * but the effect in the real world is minor and the changes are more - * extensive, therefore much more dangerous and much more difficult to - * write in a way that avoids compiler warnings. - */ - png_warning(png_ptr, "Image width is too large for this architecture"); - error = 1; - } - -#ifdef PNG_SET_USER_LIMITS_SUPPORTED - if (width > png_ptr->user_width_max) -#else - if (width > PNG_USER_WIDTH_MAX) -#endif - { - png_warning(png_ptr, "Image width exceeds user limit in IHDR"); - error = 1; - } - - if (height == 0) - { - png_warning(png_ptr, "Image height is zero in IHDR"); - error = 1; - } - - if (height > PNG_UINT_31_MAX) - { - png_warning(png_ptr, "Invalid image height in IHDR"); - error = 1; - } - -#ifdef PNG_SET_USER_LIMITS_SUPPORTED - if (height > png_ptr->user_height_max) -#else - if (height > PNG_USER_HEIGHT_MAX) -#endif - { - png_warning(png_ptr, "Image height exceeds user limit in IHDR"); - error = 1; - } - - /* Check other values */ - if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 && - bit_depth != 8 && bit_depth != 16) - { - png_warning(png_ptr, "Invalid bit depth in IHDR"); - error = 1; - } - - if (color_type < 0 || color_type == 1 || - color_type == 5 || color_type > 6) - { - png_warning(png_ptr, "Invalid color type in IHDR"); - error = 1; - } - - if (((color_type == PNG_COLOR_TYPE_PALETTE) && bit_depth > 8) || - ((color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) && bit_depth < 8)) - { - png_warning(png_ptr, "Invalid color type/bit depth combination in IHDR"); - error = 1; - } - - if (interlace_type >= PNG_INTERLACE_LAST) - { - png_warning(png_ptr, "Unknown interlace method in IHDR"); - error = 1; - } - - if (compression_type != PNG_COMPRESSION_TYPE_BASE) - { - png_warning(png_ptr, "Unknown compression method in IHDR"); - error = 1; - } - -#ifdef PNG_MNG_FEATURES_SUPPORTED - /* Accept filter_method 64 (intrapixel differencing) only if - * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and - * 2. Libpng did not read a PNG signature (this filter_method is only - * used in PNG datastreams that are embedded in MNG datastreams) and - * 3. The application called png_permit_mng_features with a mask that - * included PNG_FLAG_MNG_FILTER_64 and - * 4. The filter_method is 64 and - * 5. The color_type is RGB or RGBA - */ - if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 && - png_ptr->mng_features_permitted != 0) - png_warning(png_ptr, "MNG features are not allowed in a PNG datastream"); - - if (filter_type != PNG_FILTER_TYPE_BASE) - { - if (!((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 && - (filter_type == PNG_INTRAPIXEL_DIFFERENCING) && - ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) && - (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA))) - { - png_warning(png_ptr, "Unknown filter method in IHDR"); - error = 1; - } - - if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0) - { - png_warning(png_ptr, "Invalid filter method in IHDR"); - error = 1; - } - } - -#else - if (filter_type != PNG_FILTER_TYPE_BASE) - { - png_warning(png_ptr, "Unknown filter method in IHDR"); - error = 1; - } -#endif - - if (error == 1) - png_error(png_ptr, "Invalid IHDR data"); -} - -#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) -/* ASCII to fp functions */ -/* Check an ASCII formatted floating point value, see the more detailed - * comments in pngpriv.h - */ -/* The following is used internally to preserve the sticky flags */ -#define png_fp_add(state, flags) ((state) |= (flags)) -#define png_fp_set(state, value) ((state) = (value) | ((state) & PNG_FP_STICKY)) - -int /* PRIVATE */ -png_check_fp_number(png_const_charp string, size_t size, int *statep, - png_size_tp whereami) -{ - int state = *statep; - size_t i = *whereami; - - while (i < size) - { - int type; - /* First find the type of the next character */ - switch (string[i]) - { - case 43: type = PNG_FP_SAW_SIGN; break; - case 45: type = PNG_FP_SAW_SIGN + PNG_FP_NEGATIVE; break; - case 46: type = PNG_FP_SAW_DOT; break; - case 48: type = PNG_FP_SAW_DIGIT; break; - case 49: case 50: case 51: case 52: - case 53: case 54: case 55: case 56: - case 57: type = PNG_FP_SAW_DIGIT + PNG_FP_NONZERO; break; - case 69: - case 101: type = PNG_FP_SAW_E; break; - default: goto PNG_FP_End; - } - - /* Now deal with this type according to the current - * state, the type is arranged to not overlap the - * bits of the PNG_FP_STATE. - */ - switch ((state & PNG_FP_STATE) + (type & PNG_FP_SAW_ANY)) - { - case PNG_FP_INTEGER + PNG_FP_SAW_SIGN: - if ((state & PNG_FP_SAW_ANY) != 0) - goto PNG_FP_End; /* not a part of the number */ - - png_fp_add(state, type); - break; - - case PNG_FP_INTEGER + PNG_FP_SAW_DOT: - /* Ok as trailer, ok as lead of fraction. */ - if ((state & PNG_FP_SAW_DOT) != 0) /* two dots */ - goto PNG_FP_End; - - else if ((state & PNG_FP_SAW_DIGIT) != 0) /* trailing dot? */ - png_fp_add(state, type); - - else - png_fp_set(state, PNG_FP_FRACTION | type); - - break; - - case PNG_FP_INTEGER + PNG_FP_SAW_DIGIT: - if ((state & PNG_FP_SAW_DOT) != 0) /* delayed fraction */ - png_fp_set(state, PNG_FP_FRACTION | PNG_FP_SAW_DOT); - - png_fp_add(state, type | PNG_FP_WAS_VALID); - - break; - - case PNG_FP_INTEGER + PNG_FP_SAW_E: - if ((state & PNG_FP_SAW_DIGIT) == 0) - goto PNG_FP_End; - - png_fp_set(state, PNG_FP_EXPONENT); - - break; - - /* case PNG_FP_FRACTION + PNG_FP_SAW_SIGN: - goto PNG_FP_End; ** no sign in fraction */ - - /* case PNG_FP_FRACTION + PNG_FP_SAW_DOT: - goto PNG_FP_End; ** Because SAW_DOT is always set */ - - case PNG_FP_FRACTION + PNG_FP_SAW_DIGIT: - png_fp_add(state, type | PNG_FP_WAS_VALID); - break; - - case PNG_FP_FRACTION + PNG_FP_SAW_E: - /* This is correct because the trailing '.' on an - * integer is handled above - so we can only get here - * with the sequence ".E" (with no preceding digits). - */ - if ((state & PNG_FP_SAW_DIGIT) == 0) - goto PNG_FP_End; - - png_fp_set(state, PNG_FP_EXPONENT); - - break; - - case PNG_FP_EXPONENT + PNG_FP_SAW_SIGN: - if ((state & PNG_FP_SAW_ANY) != 0) - goto PNG_FP_End; /* not a part of the number */ - - png_fp_add(state, PNG_FP_SAW_SIGN); - - break; - - /* case PNG_FP_EXPONENT + PNG_FP_SAW_DOT: - goto PNG_FP_End; */ - - case PNG_FP_EXPONENT + PNG_FP_SAW_DIGIT: - png_fp_add(state, PNG_FP_SAW_DIGIT | PNG_FP_WAS_VALID); - - break; - - /* case PNG_FP_EXPONEXT + PNG_FP_SAW_E: - goto PNG_FP_End; */ - - default: goto PNG_FP_End; /* I.e. break 2 */ - } - - /* The character seems ok, continue. */ - ++i; - } - -PNG_FP_End: - /* Here at the end, update the state and return the correct - * return code. - */ - *statep = state; - *whereami = i; - - return (state & PNG_FP_SAW_DIGIT) != 0; -} - - -/* The same but for a complete string. */ -int -png_check_fp_string(png_const_charp string, size_t size) -{ - int state=0; - size_t char_index=0; - - if (png_check_fp_number(string, size, &state, &char_index) != 0 && - (char_index == size || string[char_index] == 0)) - return state /* must be non-zero - see above */; - - return 0; /* i.e. fail */ -} -#endif /* pCAL || sCAL */ - -#ifdef PNG_sCAL_SUPPORTED -# ifdef PNG_FLOATING_POINT_SUPPORTED -/* Utility used below - a simple accurate power of ten from an integral - * exponent. - */ -static double -png_pow10(int power) -{ - int recip = 0; - double d = 1; - - /* Handle negative exponent with a reciprocal at the end because - * 10 is exact whereas .1 is inexact in base 2 - */ - if (power < 0) - { - if (power < DBL_MIN_10_EXP) return 0; - recip = 1; power = -power; - } - - if (power > 0) - { - /* Decompose power bitwise. */ - double mult = 10; - do - { - if (power & 1) d *= mult; - mult *= mult; - power >>= 1; - } - while (power > 0); - - if (recip != 0) d = 1/d; - } - /* else power is 0 and d is 1 */ - - return d; -} - -/* Function to format a floating point value in ASCII with a given - * precision. - */ -#if GCC_STRICT_OVERFLOW -#pragma GCC diagnostic push -/* The problem arises below with exp_b10, which can never overflow because it - * comes, originally, from frexp and is therefore limited to a range which is - * typically +/-710 (log2(DBL_MAX)/log2(DBL_MIN)). - */ -#pragma GCC diagnostic warning "-Wstrict-overflow=2" -#endif /* GCC_STRICT_OVERFLOW */ -void /* PRIVATE */ -png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, size_t size, - double fp, unsigned int precision) -{ - /* We use standard functions from math.h, but not printf because - * that would require stdio. The caller must supply a buffer of - * sufficient size or we will png_error. The tests on size and - * the space in ascii[] consumed are indicated below. - */ - if (precision < 1) - precision = DBL_DIG; - - /* Enforce the limit of the implementation precision too. */ - if (precision > DBL_DIG+1) - precision = DBL_DIG+1; - - /* Basic sanity checks */ - if (size >= precision+5) /* See the requirements below. */ - { - if (fp < 0) - { - fp = -fp; - *ascii++ = 45; /* '-' PLUS 1 TOTAL 1 */ - --size; - } - - if (fp >= DBL_MIN && fp <= DBL_MAX) - { - int exp_b10; /* A base 10 exponent */ - double base; /* 10^exp_b10 */ - - /* First extract a base 10 exponent of the number, - * the calculation below rounds down when converting - * from base 2 to base 10 (multiply by log10(2) - - * 0.3010, but 77/256 is 0.3008, so exp_b10 needs to - * be increased. Note that the arithmetic shift - * performs a floor() unlike C arithmetic - using a - * C multiply would break the following for negative - * exponents. - */ - (void)frexp(fp, &exp_b10); /* exponent to base 2 */ - - exp_b10 = (exp_b10 * 77) >> 8; /* <= exponent to base 10 */ - - /* Avoid underflow here. */ - base = png_pow10(exp_b10); /* May underflow */ - - while (base < DBL_MIN || base < fp) - { - /* And this may overflow. */ - double test = png_pow10(exp_b10+1); - - if (test <= DBL_MAX) - { - ++exp_b10; base = test; - } - - else - break; - } - - /* Normalize fp and correct exp_b10, after this fp is in the - * range [.1,1) and exp_b10 is both the exponent and the digit - * *before* which the decimal point should be inserted - * (starting with 0 for the first digit). Note that this - * works even if 10^exp_b10 is out of range because of the - * test on DBL_MAX above. - */ - fp /= base; - while (fp >= 1) - { - fp /= 10; ++exp_b10; - } - - /* Because of the code above fp may, at this point, be - * less than .1, this is ok because the code below can - * handle the leading zeros this generates, so no attempt - * is made to correct that here. - */ - - { - unsigned int czero, clead, cdigits; - char exponent[10]; - - /* Allow up to two leading zeros - this will not lengthen - * the number compared to using E-n. - */ - if (exp_b10 < 0 && exp_b10 > -3) /* PLUS 3 TOTAL 4 */ - { - czero = 0U-exp_b10; /* PLUS 2 digits: TOTAL 3 */ - exp_b10 = 0; /* Dot added below before first output. */ - } - else - czero = 0; /* No zeros to add */ - - /* Generate the digit list, stripping trailing zeros and - * inserting a '.' before a digit if the exponent is 0. - */ - clead = czero; /* Count of leading zeros */ - cdigits = 0; /* Count of digits in list. */ - - do - { - double d; - - fp *= 10; - /* Use modf here, not floor and subtract, so that - * the separation is done in one step. At the end - * of the loop don't break the number into parts so - * that the final digit is rounded. - */ - if (cdigits+czero+1 < precision+clead) - fp = modf(fp, &d); - - else - { - d = floor(fp + .5); - - if (d > 9) - { - /* Rounding up to 10, handle that here. */ - if (czero > 0) - { - --czero; d = 1; - if (cdigits == 0) --clead; - } - else - { - while (cdigits > 0 && d > 9) - { - int ch = *--ascii; - - if (exp_b10 != (-1)) - ++exp_b10; - - else if (ch == 46) - { - ch = *--ascii; ++size; - /* Advance exp_b10 to '1', so that the - * decimal point happens after the - * previous digit. - */ - exp_b10 = 1; - } - - --cdigits; - d = ch - 47; /* I.e. 1+(ch-48) */ - } - - /* Did we reach the beginning? If so adjust the - * exponent but take into account the leading - * decimal point. - */ - if (d > 9) /* cdigits == 0 */ - { - if (exp_b10 == (-1)) - { - /* Leading decimal point (plus zeros?), if - * we lose the decimal point here it must - * be reentered below. - */ - int ch = *--ascii; - - if (ch == 46) - { - ++size; exp_b10 = 1; - } - - /* Else lost a leading zero, so 'exp_b10' is - * still ok at (-1) - */ - } - else - ++exp_b10; - - /* In all cases we output a '1' */ - d = 1; - } - } - } - fp = 0; /* Guarantees termination below. */ - } - - if (d == 0) - { - ++czero; - if (cdigits == 0) ++clead; - } - else - { - /* Included embedded zeros in the digit count. */ - cdigits += czero - clead; - clead = 0; - - while (czero > 0) - { - /* exp_b10 == (-1) means we just output the decimal - * place - after the DP don't adjust 'exp_b10' any - * more! - */ - if (exp_b10 != (-1)) - { - if (exp_b10 == 0) - { - *ascii++ = 46; --size; - } - /* PLUS 1: TOTAL 4 */ - --exp_b10; - } - *ascii++ = 48; --czero; - } - - if (exp_b10 != (-1)) - { - if (exp_b10 == 0) - { - *ascii++ = 46; --size; /* counted above */ - } - - --exp_b10; - } - *ascii++ = (char)(48 + (int)d); ++cdigits; - } - } - while (cdigits+czero < precision+clead && fp > DBL_MIN); - - /* The total output count (max) is now 4+precision */ - - /* Check for an exponent, if we don't need one we are - * done and just need to terminate the string. At this - * point, exp_b10==(-1) is effectively a flag: it got - * to '-1' because of the decrement, after outputting - * the decimal point above. (The exponent required is - * *not* -1.) - */ - if (exp_b10 >= (-1) && exp_b10 <= 2) - { - /* The following only happens if we didn't output the - * leading zeros above for negative exponent, so this - * doesn't add to the digit requirement. Note that the - * two zeros here can only be output if the two leading - * zeros were *not* output, so this doesn't increase - * the output count. - */ - while (exp_b10-- > 0) *ascii++ = 48; - - *ascii = 0; - - /* Total buffer requirement (including the '\0') is - * 5+precision - see check at the start. - */ - return; - } - - /* Here if an exponent is required, adjust size for - * the digits we output but did not count. The total - * digit output here so far is at most 1+precision - no - * decimal point and no leading or trailing zeros have - * been output. - */ - size -= cdigits; - - *ascii++ = 69; --size; /* 'E': PLUS 1 TOTAL 2+precision */ - - /* The following use of an unsigned temporary avoids ambiguities in - * the signed arithmetic on exp_b10 and permits GCC at least to do - * better optimization. - */ - { - unsigned int uexp_b10; - - if (exp_b10 < 0) - { - *ascii++ = 45; --size; /* '-': PLUS 1 TOTAL 3+precision */ - uexp_b10 = 0U-exp_b10; - } - - else - uexp_b10 = 0U+exp_b10; - - cdigits = 0; - - while (uexp_b10 > 0) - { - exponent[cdigits++] = (char)(48 + uexp_b10 % 10); - uexp_b10 /= 10; - } - } - - /* Need another size check here for the exponent digits, so - * this need not be considered above. - */ - if (size > cdigits) - { - while (cdigits > 0) *ascii++ = exponent[--cdigits]; - - *ascii = 0; - - return; - } - } - } - else if (!(fp >= DBL_MIN)) - { - *ascii++ = 48; /* '0' */ - *ascii = 0; - return; - } - else - { - *ascii++ = 105; /* 'i' */ - *ascii++ = 110; /* 'n' */ - *ascii++ = 102; /* 'f' */ - *ascii = 0; - return; - } - } - - /* Here on buffer too small. */ - png_error(png_ptr, "ASCII conversion buffer too small"); -} -#if GCC_STRICT_OVERFLOW -#pragma GCC diagnostic pop -#endif /* GCC_STRICT_OVERFLOW */ - -# endif /* FLOATING_POINT */ - -# ifdef PNG_FIXED_POINT_SUPPORTED -/* Function to format a fixed point value in ASCII. - */ -void /* PRIVATE */ -png_ascii_from_fixed(png_const_structrp png_ptr, png_charp ascii, - size_t size, png_fixed_point fp) -{ - /* Require space for 10 decimal digits, a decimal point, a minus sign and a - * trailing \0, 13 characters: - */ - if (size > 12) - { - png_uint_32 num; - - /* Avoid overflow here on the minimum integer. */ - if (fp < 0) - { - *ascii++ = 45; num = (png_uint_32)(-fp); - } - else - num = (png_uint_32)fp; - - if (num <= 0x80000000) /* else overflowed */ - { - unsigned int ndigits = 0, first = 16 /* flag value */; - char digits[10]; - - while (num) - { - /* Split the low digit off num: */ - unsigned int tmp = num/10; - num -= tmp*10; - digits[ndigits++] = (char)(48 + num); - /* Record the first non-zero digit, note that this is a number - * starting at 1, it's not actually the array index. - */ - if (first == 16 && num > 0) - first = ndigits; - num = tmp; - } - - if (ndigits > 0) - { - while (ndigits > 5) *ascii++ = digits[--ndigits]; - /* The remaining digits are fractional digits, ndigits is '5' or - * smaller at this point. It is certainly not zero. Check for a - * non-zero fractional digit: - */ - if (first <= 5) - { - unsigned int i; - *ascii++ = 46; /* decimal point */ - /* ndigits may be <5 for small numbers, output leading zeros - * then ndigits digits to first: - */ - i = 5; - while (ndigits < i) - { - *ascii++ = 48; --i; - } - while (ndigits >= first) *ascii++ = digits[--ndigits]; - /* Don't output the trailing zeros! */ - } - } - else - *ascii++ = 48; - - /* And null terminate the string: */ - *ascii = 0; - return; - } - } - - /* Here on buffer too small. */ - png_error(png_ptr, "ASCII conversion buffer too small"); -} -# endif /* FIXED_POINT */ -#endif /* SCAL */ - -#if defined(PNG_FLOATING_POINT_SUPPORTED) && \ - !defined(PNG_FIXED_POINT_MACRO_SUPPORTED) && \ - (defined(PNG_gAMA_SUPPORTED) || defined(PNG_cHRM_SUPPORTED) || \ - defined(PNG_sCAL_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)) || \ - (defined(PNG_sCAL_SUPPORTED) && \ - defined(PNG_FLOATING_ARITHMETIC_SUPPORTED)) -png_fixed_point -png_fixed(png_const_structrp png_ptr, double fp, png_const_charp text) -{ - double r = floor(100000 * fp + .5); - - if (r > 2147483647. || r < -2147483648.) - png_fixed_error(png_ptr, text); - -# ifndef PNG_ERROR_TEXT_SUPPORTED - PNG_UNUSED(text) -# endif - - return (png_fixed_point)r; -} -#endif - -#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_COLORSPACE_SUPPORTED) ||\ - defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED) -/* muldiv functions */ -/* This API takes signed arguments and rounds the result to the nearest - * integer (or, for a fixed point number - the standard argument - to - * the nearest .00001). Overflow and divide by zero are signalled in - * the result, a boolean - true on success, false on overflow. - */ -#if GCC_STRICT_OVERFLOW /* from above */ -/* It is not obvious which comparison below gets optimized in such a way that - * signed overflow would change the result; looking through the code does not - * reveal any tests which have the form GCC complains about, so presumably the - * optimizer is moving an add or subtract into the 'if' somewhere. - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wstrict-overflow=2" -#endif /* GCC_STRICT_OVERFLOW */ -int -png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times, - png_int_32 divisor) -{ - /* Return a * times / divisor, rounded. */ - if (divisor != 0) - { - if (a == 0 || times == 0) - { - *res = 0; - return 1; - } - else - { -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - double r = a; - r *= times; - r /= divisor; - r = floor(r+.5); - - /* A png_fixed_point is a 32-bit integer. */ - if (r <= 2147483647. && r >= -2147483648.) - { - *res = (png_fixed_point)r; - return 1; - } -#else - int negative = 0; - png_uint_32 A, T, D; - png_uint_32 s16, s32, s00; - - if (a < 0) - negative = 1, A = -a; - else - A = a; - - if (times < 0) - negative = !negative, T = -times; - else - T = times; - - if (divisor < 0) - negative = !negative, D = -divisor; - else - D = divisor; - - /* Following can't overflow because the arguments only - * have 31 bits each, however the result may be 32 bits. - */ - s16 = (A >> 16) * (T & 0xffff) + - (A & 0xffff) * (T >> 16); - /* Can't overflow because the a*times bit is only 30 - * bits at most. - */ - s32 = (A >> 16) * (T >> 16) + (s16 >> 16); - s00 = (A & 0xffff) * (T & 0xffff); - - s16 = (s16 & 0xffff) << 16; - s00 += s16; - - if (s00 < s16) - ++s32; /* carry */ - - if (s32 < D) /* else overflow */ - { - /* s32.s00 is now the 64-bit product, do a standard - * division, we know that s32 < D, so the maximum - * required shift is 31. - */ - int bitshift = 32; - png_fixed_point result = 0; /* NOTE: signed */ - - while (--bitshift >= 0) - { - png_uint_32 d32, d00; - - if (bitshift > 0) - d32 = D >> (32-bitshift), d00 = D << bitshift; - - else - d32 = 0, d00 = D; - - if (s32 > d32) - { - if (s00 < d00) --s32; /* carry */ - s32 -= d32, s00 -= d00, result += 1<= d00) - s32 = 0, s00 -= d00, result += 1<= (D >> 1)) - ++result; - - if (negative != 0) - result = -result; - - /* Check for overflow. */ - if ((negative != 0 && result <= 0) || - (negative == 0 && result >= 0)) - { - *res = result; - return 1; - } - } -#endif - } - } - - return 0; -} -#if GCC_STRICT_OVERFLOW -#pragma GCC diagnostic pop -#endif /* GCC_STRICT_OVERFLOW */ -#endif /* READ_GAMMA || INCH_CONVERSIONS */ - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED) -/* The following is for when the caller doesn't much care about the - * result. - */ -png_fixed_point -png_muldiv_warn(png_const_structrp png_ptr, png_fixed_point a, png_int_32 times, - png_int_32 divisor) -{ - png_fixed_point result; - - if (png_muldiv(&result, a, times, divisor) != 0) - return result; - - png_warning(png_ptr, "fixed point overflow ignored"); - return 0; -} -#endif - -#ifdef PNG_GAMMA_SUPPORTED /* more fixed point functions for gamma */ -/* Calculate a reciprocal, return 0 on div-by-zero or overflow. */ -png_fixed_point -png_reciprocal(png_fixed_point a) -{ -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - double r = floor(1E10/a+.5); - - if (r <= 2147483647. && r >= -2147483648.) - return (png_fixed_point)r; -#else - png_fixed_point res; - - if (png_muldiv(&res, 100000, 100000, a) != 0) - return res; -#endif - - return 0; /* error/overflow */ -} - -/* This is the shared test on whether a gamma value is 'significant' - whether - * it is worth doing gamma correction. - */ -int /* PRIVATE */ -png_gamma_significant(png_fixed_point gamma_val) -{ - return gamma_val < PNG_FP_1 - PNG_GAMMA_THRESHOLD_FIXED || - gamma_val > PNG_FP_1 + PNG_GAMMA_THRESHOLD_FIXED; -} -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -#ifdef PNG_16BIT_SUPPORTED -/* A local convenience routine. */ -static png_fixed_point -png_product2(png_fixed_point a, png_fixed_point b) -{ - /* The required result is 1/a * 1/b; the following preserves accuracy. */ -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - double r = a * 1E-5; - r *= b; - r = floor(r+.5); - - if (r <= 2147483647. && r >= -2147483648.) - return (png_fixed_point)r; -#else - png_fixed_point res; - - if (png_muldiv(&res, a, b, 100000) != 0) - return res; -#endif - - return 0; /* overflow */ -} -#endif /* 16BIT */ - -/* The inverse of the above. */ -png_fixed_point -png_reciprocal2(png_fixed_point a, png_fixed_point b) -{ - /* The required result is 1/a * 1/b; the following preserves accuracy. */ -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - if (a != 0 && b != 0) - { - double r = 1E15/a; - r /= b; - r = floor(r+.5); - - if (r <= 2147483647. && r >= -2147483648.) - return (png_fixed_point)r; - } -#else - /* This may overflow because the range of png_fixed_point isn't symmetric, - * but this API is only used for the product of file and screen gamma so it - * doesn't matter that the smallest number it can produce is 1/21474, not - * 1/100000 - */ - png_fixed_point res = png_product2(a, b); - - if (res != 0) - return png_reciprocal(res); -#endif - - return 0; /* overflow */ -} -#endif /* READ_GAMMA */ - -#ifdef PNG_READ_GAMMA_SUPPORTED /* gamma table code */ -#ifndef PNG_FLOATING_ARITHMETIC_SUPPORTED -/* Fixed point gamma. - * - * The code to calculate the tables used below can be found in the shell script - * contrib/tools/intgamma.sh - * - * To calculate gamma this code implements fast log() and exp() calls using only - * fixed point arithmetic. This code has sufficient precision for either 8-bit - * or 16-bit sample values. - * - * The tables used here were calculated using simple 'bc' programs, but C double - * precision floating point arithmetic would work fine. - * - * 8-bit log table - * This is a table of -log(value/255)/log(2) for 'value' in the range 128 to - * 255, so it's the base 2 logarithm of a normalized 8-bit floating point - * mantissa. The numbers are 32-bit fractions. - */ -static const png_uint_32 -png_8bit_l2[128] = -{ - 4270715492U, 4222494797U, 4174646467U, 4127164793U, 4080044201U, 4033279239U, - 3986864580U, 3940795015U, 3895065449U, 3849670902U, 3804606499U, 3759867474U, - 3715449162U, 3671346997U, 3627556511U, 3584073329U, 3540893168U, 3498011834U, - 3455425220U, 3413129301U, 3371120137U, 3329393864U, 3287946700U, 3246774933U, - 3205874930U, 3165243125U, 3124876025U, 3084770202U, 3044922296U, 3005329011U, - 2965987113U, 2926893432U, 2888044853U, 2849438323U, 2811070844U, 2772939474U, - 2735041326U, 2697373562U, 2659933400U, 2622718104U, 2585724991U, 2548951424U, - 2512394810U, 2476052606U, 2439922311U, 2404001468U, 2368287663U, 2332778523U, - 2297471715U, 2262364947U, 2227455964U, 2192742551U, 2158222529U, 2123893754U, - 2089754119U, 2055801552U, 2022034013U, 1988449497U, 1955046031U, 1921821672U, - 1888774511U, 1855902668U, 1823204291U, 1790677560U, 1758320682U, 1726131893U, - 1694109454U, 1662251657U, 1630556815U, 1599023271U, 1567649391U, 1536433567U, - 1505374214U, 1474469770U, 1443718700U, 1413119487U, 1382670639U, 1352370686U, - 1322218179U, 1292211689U, 1262349810U, 1232631153U, 1203054352U, 1173618059U, - 1144320946U, 1115161701U, 1086139034U, 1057251672U, 1028498358U, 999877854U, - 971388940U, 943030410U, 914801076U, 886699767U, 858725327U, 830876614U, - 803152505U, 775551890U, 748073672U, 720716771U, 693480120U, 666362667U, - 639363374U, 612481215U, 585715177U, 559064263U, 532527486U, 506103872U, - 479792461U, 453592303U, 427502463U, 401522014U, 375650043U, 349885648U, - 324227938U, 298676034U, 273229066U, 247886176U, 222646516U, 197509248U, - 172473545U, 147538590U, 122703574U, 97967701U, 73330182U, 48790236U, - 24347096U, 0U - -#if 0 - /* The following are the values for 16-bit tables - these work fine for the - * 8-bit conversions but produce very slightly larger errors in the 16-bit - * log (about 1.2 as opposed to 0.7 absolute error in the final value). To - * use these all the shifts below must be adjusted appropriately. - */ - 65166, 64430, 63700, 62976, 62257, 61543, 60835, 60132, 59434, 58741, 58054, - 57371, 56693, 56020, 55352, 54689, 54030, 53375, 52726, 52080, 51439, 50803, - 50170, 49542, 48918, 48298, 47682, 47070, 46462, 45858, 45257, 44661, 44068, - 43479, 42894, 42312, 41733, 41159, 40587, 40020, 39455, 38894, 38336, 37782, - 37230, 36682, 36137, 35595, 35057, 34521, 33988, 33459, 32932, 32408, 31887, - 31369, 30854, 30341, 29832, 29325, 28820, 28319, 27820, 27324, 26830, 26339, - 25850, 25364, 24880, 24399, 23920, 23444, 22970, 22499, 22029, 21562, 21098, - 20636, 20175, 19718, 19262, 18808, 18357, 17908, 17461, 17016, 16573, 16132, - 15694, 15257, 14822, 14390, 13959, 13530, 13103, 12678, 12255, 11834, 11415, - 10997, 10582, 10168, 9756, 9346, 8937, 8531, 8126, 7723, 7321, 6921, 6523, - 6127, 5732, 5339, 4947, 4557, 4169, 3782, 3397, 3014, 2632, 2251, 1872, 1495, - 1119, 744, 372 -#endif -}; - -static png_int_32 -png_log8bit(unsigned int x) -{ - unsigned int lg2 = 0; - /* Each time 'x' is multiplied by 2, 1 must be subtracted off the final log, - * because the log is actually negate that means adding 1. The final - * returned value thus has the range 0 (for 255 input) to 7.994 (for 1 - * input), return -1 for the overflow (log 0) case, - so the result is - * always at most 19 bits. - */ - if ((x &= 0xff) == 0) - return -1; - - if ((x & 0xf0) == 0) - lg2 = 4, x <<= 4; - - if ((x & 0xc0) == 0) - lg2 += 2, x <<= 2; - - if ((x & 0x80) == 0) - lg2 += 1, x <<= 1; - - /* result is at most 19 bits, so this cast is safe: */ - return (png_int_32)((lg2 << 16) + ((png_8bit_l2[x-128]+32768)>>16)); -} - -/* The above gives exact (to 16 binary places) log2 values for 8-bit images, - * for 16-bit images we use the most significant 8 bits of the 16-bit value to - * get an approximation then multiply the approximation by a correction factor - * determined by the remaining up to 8 bits. This requires an additional step - * in the 16-bit case. - * - * We want log2(value/65535), we have log2(v'/255), where: - * - * value = v' * 256 + v'' - * = v' * f - * - * So f is value/v', which is equal to (256+v''/v') since v' is in the range 128 - * to 255 and v'' is in the range 0 to 255 f will be in the range 256 to less - * than 258. The final factor also needs to correct for the fact that our 8-bit - * value is scaled by 255, whereas the 16-bit values must be scaled by 65535. - * - * This gives a final formula using a calculated value 'x' which is value/v' and - * scaling by 65536 to match the above table: - * - * log2(x/257) * 65536 - * - * Since these numbers are so close to '1' we can use simple linear - * interpolation between the two end values 256/257 (result -368.61) and 258/257 - * (result 367.179). The values used below are scaled by a further 64 to give - * 16-bit precision in the interpolation: - * - * Start (256): -23591 - * Zero (257): 0 - * End (258): 23499 - */ -#ifdef PNG_16BIT_SUPPORTED -static png_int_32 -png_log16bit(png_uint_32 x) -{ - unsigned int lg2 = 0; - - /* As above, but now the input has 16 bits. */ - if ((x &= 0xffff) == 0) - return -1; - - if ((x & 0xff00) == 0) - lg2 = 8, x <<= 8; - - if ((x & 0xf000) == 0) - lg2 += 4, x <<= 4; - - if ((x & 0xc000) == 0) - lg2 += 2, x <<= 2; - - if ((x & 0x8000) == 0) - lg2 += 1, x <<= 1; - - /* Calculate the base logarithm from the top 8 bits as a 28-bit fractional - * value. - */ - lg2 <<= 28; - lg2 += (png_8bit_l2[(x>>8)-128]+8) >> 4; - - /* Now we need to interpolate the factor, this requires a division by the top - * 8 bits. Do this with maximum precision. - */ - x = ((x << 16) + (x >> 9)) / (x >> 8); - - /* Since we divided by the top 8 bits of 'x' there will be a '1' at 1<<24, - * the value at 1<<16 (ignoring this) will be 0 or 1; this gives us exactly - * 16 bits to interpolate to get the low bits of the result. Round the - * answer. Note that the end point values are scaled by 64 to retain overall - * precision and that 'lg2' is current scaled by an extra 12 bits, so adjust - * the overall scaling by 6-12. Round at every step. - */ - x -= 1U << 24; - - if (x <= 65536U) /* <= '257' */ - lg2 += ((23591U * (65536U-x)) + (1U << (16+6-12-1))) >> (16+6-12); - - else - lg2 -= ((23499U * (x-65536U)) + (1U << (16+6-12-1))) >> (16+6-12); - - /* Safe, because the result can't have more than 20 bits: */ - return (png_int_32)((lg2 + 2048) >> 12); -} -#endif /* 16BIT */ - -/* The 'exp()' case must invert the above, taking a 20-bit fixed point - * logarithmic value and returning a 16 or 8-bit number as appropriate. In - * each case only the low 16 bits are relevant - the fraction - since the - * integer bits (the top 4) simply determine a shift. - * - * The worst case is the 16-bit distinction between 65535 and 65534. This - * requires perhaps spurious accuracy in the decoding of the logarithm to - * distinguish log2(65535/65534.5) - 10^-5 or 17 bits. There is little chance - * of getting this accuracy in practice. - * - * To deal with this the following exp() function works out the exponent of the - * fractional part of the logarithm by using an accurate 32-bit value from the - * top four fractional bits then multiplying in the remaining bits. - */ -static const png_uint_32 -png_32bit_exp[16] = -{ - /* NOTE: the first entry is deliberately set to the maximum 32-bit value. */ - 4294967295U, 4112874773U, 3938502376U, 3771522796U, 3611622603U, 3458501653U, - 3311872529U, 3171459999U, 3037000500U, 2908241642U, 2784941738U, 2666869345U, - 2553802834U, 2445529972U, 2341847524U, 2242560872U -}; - -/* Adjustment table; provided to explain the numbers in the code below. */ -#if 0 -for (i=11;i>=0;--i){ print i, " ", (1 - e(-(2^i)/65536*l(2))) * 2^(32-i), "\n"} - 11 44937.64284865548751208448 - 10 45180.98734845585101160448 - 9 45303.31936980687359311872 - 8 45364.65110595323018870784 - 7 45395.35850361789624614912 - 6 45410.72259715102037508096 - 5 45418.40724413220722311168 - 4 45422.25021786898173001728 - 3 45424.17186732298419044352 - 2 45425.13273269940811464704 - 1 45425.61317555035558641664 - 0 45425.85339951654943850496 -#endif - -static png_uint_32 -png_exp(png_fixed_point x) -{ - if (x > 0 && x <= 0xfffff) /* Else overflow or zero (underflow) */ - { - /* Obtain a 4-bit approximation */ - png_uint_32 e = png_32bit_exp[(x >> 12) & 0x0f]; - - /* Incorporate the low 12 bits - these decrease the returned value by - * multiplying by a number less than 1 if the bit is set. The multiplier - * is determined by the above table and the shift. Notice that the values - * converge on 45426 and this is used to allow linear interpolation of the - * low bits. - */ - if (x & 0x800) - e -= (((e >> 16) * 44938U) + 16U) >> 5; - - if (x & 0x400) - e -= (((e >> 16) * 45181U) + 32U) >> 6; - - if (x & 0x200) - e -= (((e >> 16) * 45303U) + 64U) >> 7; - - if (x & 0x100) - e -= (((e >> 16) * 45365U) + 128U) >> 8; - - if (x & 0x080) - e -= (((e >> 16) * 45395U) + 256U) >> 9; - - if (x & 0x040) - e -= (((e >> 16) * 45410U) + 512U) >> 10; - - /* And handle the low 6 bits in a single block. */ - e -= (((e >> 16) * 355U * (x & 0x3fU)) + 256U) >> 9; - - /* Handle the upper bits of x. */ - e >>= x >> 16; - return e; - } - - /* Check for overflow */ - if (x <= 0) - return png_32bit_exp[0]; - - /* Else underflow */ - return 0; -} - -static png_byte -png_exp8bit(png_fixed_point lg2) -{ - /* Get a 32-bit value: */ - png_uint_32 x = png_exp(lg2); - - /* Convert the 32-bit value to 0..255 by multiplying by 256-1. Note that the - * second, rounding, step can't overflow because of the first, subtraction, - * step. - */ - x -= x >> 8; - return (png_byte)(((x + 0x7fffffU) >> 24) & 0xff); -} - -#ifdef PNG_16BIT_SUPPORTED -static png_uint_16 -png_exp16bit(png_fixed_point lg2) -{ - /* Get a 32-bit value: */ - png_uint_32 x = png_exp(lg2); - - /* Convert the 32-bit value to 0..65535 by multiplying by 65536-1: */ - x -= x >> 16; - return (png_uint_16)((x + 32767U) >> 16); -} -#endif /* 16BIT */ -#endif /* FLOATING_ARITHMETIC */ - -png_byte -png_gamma_8bit_correct(unsigned int value, png_fixed_point gamma_val) -{ - if (value > 0 && value < 255) - { -# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - /* 'value' is unsigned, ANSI-C90 requires the compiler to correctly - * convert this to a floating point value. This includes values that - * would overflow if 'value' were to be converted to 'int'. - * - * Apparently GCC, however, does an intermediate conversion to (int) - * on some (ARM) but not all (x86) platforms, possibly because of - * hardware FP limitations. (E.g. if the hardware conversion always - * assumes the integer register contains a signed value.) This results - * in ANSI-C undefined behavior for large values. - * - * Other implementations on the same machine might actually be ANSI-C90 - * conformant and therefore compile spurious extra code for the large - * values. - * - * We can be reasonably sure that an unsigned to float conversion - * won't be faster than an int to float one. Therefore this code - * assumes responsibility for the undefined behavior, which it knows - * can't happen because of the check above. - * - * Note the argument to this routine is an (unsigned int) because, on - * 16-bit platforms, it is assigned a value which might be out of - * range for an (int); that would result in undefined behavior in the - * caller if the *argument* ('value') were to be declared (int). - */ - double r = floor(255*pow((int)/*SAFE*/value/255.,gamma_val*.00001)+.5); - return (png_byte)r; -# else - png_int_32 lg2 = png_log8bit(value); - png_fixed_point res; - - if (png_muldiv(&res, gamma_val, lg2, PNG_FP_1) != 0) - return png_exp8bit(res); - - /* Overflow. */ - value = 0; -# endif - } - - return (png_byte)(value & 0xff); -} - -#ifdef PNG_16BIT_SUPPORTED -png_uint_16 -png_gamma_16bit_correct(unsigned int value, png_fixed_point gamma_val) -{ - if (value > 0 && value < 65535) - { -# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - /* The same (unsigned int)->(double) constraints apply here as above, - * however in this case the (unsigned int) to (int) conversion can - * overflow on an ANSI-C90 compliant system so the cast needs to ensure - * that this is not possible. - */ - double r = floor(65535*pow((png_int_32)value/65535., - gamma_val*.00001)+.5); - return (png_uint_16)r; -# else - png_int_32 lg2 = png_log16bit(value); - png_fixed_point res; - - if (png_muldiv(&res, gamma_val, lg2, PNG_FP_1) != 0) - return png_exp16bit(res); - - /* Overflow. */ - value = 0; -# endif - } - - return (png_uint_16)value; -} -#endif /* 16BIT */ - -/* This does the right thing based on the bit_depth field of the - * png_struct, interpreting values as 8-bit or 16-bit. While the result - * is nominally a 16-bit value if bit depth is 8 then the result is - * 8-bit (as are the arguments.) - */ -png_uint_16 /* PRIVATE */ -png_gamma_correct(png_structrp png_ptr, unsigned int value, - png_fixed_point gamma_val) -{ - if (png_ptr->bit_depth == 8) - return png_gamma_8bit_correct(value, gamma_val); - -#ifdef PNG_16BIT_SUPPORTED - else - return png_gamma_16bit_correct(value, gamma_val); -#else - /* should not reach this */ - return 0; -#endif /* 16BIT */ -} - -#ifdef PNG_16BIT_SUPPORTED -/* Internal function to build a single 16-bit table - the table consists of - * 'num' 256 entry subtables, where 'num' is determined by 'shift' - the amount - * to shift the input values right (or 16-number_of_signifiant_bits). - * - * The caller is responsible for ensuring that the table gets cleaned up on - * png_error (i.e. if one of the mallocs below fails) - i.e. the *table argument - * should be somewhere that will be cleaned. - */ -static void -png_build_16bit_table(png_structrp png_ptr, png_uint_16pp *ptable, - unsigned int shift, png_fixed_point gamma_val) -{ - /* Various values derived from 'shift': */ - unsigned int num = 1U << (8U - shift); -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - /* CSE the division and work round wacky GCC warnings (see the comments - * in png_gamma_8bit_correct for where these come from.) - */ - double fmax = 1.0 / (((png_int_32)1 << (16U - shift)) - 1); -#endif - unsigned int max = (1U << (16U - shift)) - 1U; - unsigned int max_by_2 = 1U << (15U - shift); - unsigned int i; - - png_uint_16pp table = *ptable = - (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p))); - - for (i = 0; i < num; i++) - { - png_uint_16p sub_table = table[i] = - (png_uint_16p)png_malloc(png_ptr, 256 * (sizeof (png_uint_16))); - - /* The 'threshold' test is repeated here because it can arise for one of - * the 16-bit tables even if the others don't hit it. - */ - if (png_gamma_significant(gamma_val) != 0) - { - /* The old code would overflow at the end and this would cause the - * 'pow' function to return a result >1, resulting in an - * arithmetic error. This code follows the spec exactly; ig is - * the recovered input sample, it always has 8-16 bits. - * - * We want input * 65535/max, rounded, the arithmetic fits in 32 - * bits (unsigned) so long as max <= 32767. - */ - unsigned int j; - for (j = 0; j < 256; j++) - { - png_uint_32 ig = (j << (8-shift)) + i; -# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - /* Inline the 'max' scaling operation: */ - /* See png_gamma_8bit_correct for why the cast to (int) is - * required here. - */ - double d = floor(65535.*pow(ig*fmax, gamma_val*.00001)+.5); - sub_table[j] = (png_uint_16)d; -# else - if (shift != 0) - ig = (ig * 65535U + max_by_2)/max; - - sub_table[j] = png_gamma_16bit_correct(ig, gamma_val); -# endif - } - } - else - { - /* We must still build a table, but do it the fast way. */ - unsigned int j; - - for (j = 0; j < 256; j++) - { - png_uint_32 ig = (j << (8-shift)) + i; - - if (shift != 0) - ig = (ig * 65535U + max_by_2)/max; - - sub_table[j] = (png_uint_16)ig; - } - } - } -} - -/* NOTE: this function expects the *inverse* of the overall gamma transformation - * required. - */ -static void -png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable, - unsigned int shift, png_fixed_point gamma_val) -{ - unsigned int num = 1U << (8U - shift); - unsigned int max = (1U << (16U - shift))-1U; - unsigned int i; - png_uint_32 last; - - png_uint_16pp table = *ptable = - (png_uint_16pp)png_calloc(png_ptr, num * (sizeof (png_uint_16p))); - - /* 'num' is the number of tables and also the number of low bits of low - * bits of the input 16-bit value used to select a table. Each table is - * itself indexed by the high 8 bits of the value. - */ - for (i = 0; i < num; i++) - table[i] = (png_uint_16p)png_malloc(png_ptr, - 256 * (sizeof (png_uint_16))); - - /* 'gamma_val' is set to the reciprocal of the value calculated above, so - * pow(out,g) is an *input* value. 'last' is the last input value set. - * - * In the loop 'i' is used to find output values. Since the output is - * 8-bit there are only 256 possible values. The tables are set up to - * select the closest possible output value for each input by finding - * the input value at the boundary between each pair of output values - * and filling the table up to that boundary with the lower output - * value. - * - * The boundary values are 0.5,1.5..253.5,254.5. Since these are 9-bit - * values the code below uses a 16-bit value in i; the values start at - * 128.5 (for 0.5) and step by 257, for a total of 254 values (the last - * entries are filled with 255). Start i at 128 and fill all 'last' - * table entries <= 'max' - */ - last = 0; - for (i = 0; i < 255; ++i) /* 8-bit output value */ - { - /* Find the corresponding maximum input value */ - png_uint_16 out = (png_uint_16)(i * 257U); /* 16-bit output value */ - - /* Find the boundary value in 16 bits: */ - png_uint_32 bound = png_gamma_16bit_correct(out+128U, gamma_val); - - /* Adjust (round) to (16-shift) bits: */ - bound = (bound * max + 32768U)/65535U + 1U; - - while (last < bound) - { - table[last & (0xffU >> shift)][last >> (8U - shift)] = out; - last++; - } - } - - /* And fill in the final entries. */ - while (last < (num << 8)) - { - table[last & (0xff >> shift)][last >> (8U - shift)] = 65535U; - last++; - } -} -#endif /* 16BIT */ - -/* Build a single 8-bit table: same as the 16-bit case but much simpler (and - * typically much faster). Note that libpng currently does no sBIT processing - * (apparently contrary to the spec) so a 256-entry table is always generated. - */ -static void -png_build_8bit_table(png_structrp png_ptr, png_bytepp ptable, - png_fixed_point gamma_val) -{ - unsigned int i; - png_bytep table = *ptable = (png_bytep)png_malloc(png_ptr, 256); - - if (png_gamma_significant(gamma_val) != 0) - for (i=0; i<256; i++) - table[i] = png_gamma_8bit_correct(i, gamma_val); - - else - for (i=0; i<256; ++i) - table[i] = (png_byte)(i & 0xff); -} - -/* Used from png_read_destroy and below to release the memory used by the gamma - * tables. - */ -void /* PRIVATE */ -png_destroy_gamma_table(png_structrp png_ptr) -{ - png_free(png_ptr, png_ptr->gamma_table); - png_ptr->gamma_table = NULL; - -#ifdef PNG_16BIT_SUPPORTED - if (png_ptr->gamma_16_table != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_table[i]); - } - png_free(png_ptr, png_ptr->gamma_16_table); - png_ptr->gamma_16_table = NULL; - } -#endif /* 16BIT */ - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - png_free(png_ptr, png_ptr->gamma_from_1); - png_ptr->gamma_from_1 = NULL; - png_free(png_ptr, png_ptr->gamma_to_1); - png_ptr->gamma_to_1 = NULL; - -#ifdef PNG_16BIT_SUPPORTED - if (png_ptr->gamma_16_from_1 != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_from_1[i]); - } - png_free(png_ptr, png_ptr->gamma_16_from_1); - png_ptr->gamma_16_from_1 = NULL; - } - if (png_ptr->gamma_16_to_1 != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_to_1[i]); - } - png_free(png_ptr, png_ptr->gamma_16_to_1); - png_ptr->gamma_16_to_1 = NULL; - } -#endif /* 16BIT */ -#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */ -} - -/* We build the 8- or 16-bit gamma tables here. Note that for 16-bit - * tables, we don't make a full table if we are reducing to 8-bit in - * the future. Note also how the gamma_16 tables are segmented so that - * we don't need to allocate > 64K chunks for a full 16-bit table. - */ -void /* PRIVATE */ -png_build_gamma_table(png_structrp png_ptr, int bit_depth) -{ - png_debug(1, "in png_build_gamma_table"); - - /* Remove any existing table; this copes with multiple calls to - * png_read_update_info. The warning is because building the gamma tables - * multiple times is a performance hit - it's harmless but the ability to - * call png_read_update_info() multiple times is new in 1.5.6 so it seems - * sensible to warn if the app introduces such a hit. - */ - if (png_ptr->gamma_table != NULL || png_ptr->gamma_16_table != NULL) - { - png_warning(png_ptr, "gamma table being rebuilt"); - png_destroy_gamma_table(png_ptr); - } - - if (bit_depth <= 8) - { - png_build_8bit_table(png_ptr, &png_ptr->gamma_table, - png_ptr->screen_gamma > 0 ? - png_reciprocal2(png_ptr->colorspace.gamma, - png_ptr->screen_gamma) : PNG_FP_1); - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0) - { - png_build_8bit_table(png_ptr, &png_ptr->gamma_to_1, - png_reciprocal(png_ptr->colorspace.gamma)); - - png_build_8bit_table(png_ptr, &png_ptr->gamma_from_1, - png_ptr->screen_gamma > 0 ? - png_reciprocal(png_ptr->screen_gamma) : - png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */); - } -#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */ - } -#ifdef PNG_16BIT_SUPPORTED - else - { - png_byte shift, sig_bit; - - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - sig_bit = png_ptr->sig_bit.red; - - if (png_ptr->sig_bit.green > sig_bit) - sig_bit = png_ptr->sig_bit.green; - - if (png_ptr->sig_bit.blue > sig_bit) - sig_bit = png_ptr->sig_bit.blue; - } - else - sig_bit = png_ptr->sig_bit.gray; - - /* 16-bit gamma code uses this equation: - * - * ov = table[(iv & 0xff) >> gamma_shift][iv >> 8] - * - * Where 'iv' is the input color value and 'ov' is the output value - - * pow(iv, gamma). - * - * Thus the gamma table consists of up to 256 256-entry tables. The table - * is selected by the (8-gamma_shift) most significant of the low 8 bits - * of the color value then indexed by the upper 8 bits: - * - * table[low bits][high 8 bits] - * - * So the table 'n' corresponds to all those 'iv' of: - * - * ..<(n+1 << gamma_shift)-1> - * - */ - if (sig_bit > 0 && sig_bit < 16U) - /* shift == insignificant bits */ - shift = (png_byte)((16U - sig_bit) & 0xff); - - else - shift = 0; /* keep all 16 bits */ - - if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0) - { - /* PNG_MAX_GAMMA_8 is the number of bits to keep - effectively - * the significant bits in the *input* when the output will - * eventually be 8 bits. By default it is 11. - */ - if (shift < (16U - PNG_MAX_GAMMA_8)) - shift = (16U - PNG_MAX_GAMMA_8); - } - - if (shift > 8U) - shift = 8U; /* Guarantees at least one table! */ - - png_ptr->gamma_shift = shift; - - /* NOTE: prior to 1.5.4 this test used to include PNG_BACKGROUND (now - * PNG_COMPOSE). This effectively smashed the background calculation for - * 16-bit output because the 8-bit table assumes the result will be - * reduced to 8 bits. - */ - if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_SCALE_16_TO_8)) != 0) - png_build_16to8_table(png_ptr, &png_ptr->gamma_16_table, shift, - png_ptr->screen_gamma > 0 ? png_product2(png_ptr->colorspace.gamma, - png_ptr->screen_gamma) : PNG_FP_1); - - else - png_build_16bit_table(png_ptr, &png_ptr->gamma_16_table, shift, - png_ptr->screen_gamma > 0 ? png_reciprocal2(png_ptr->colorspace.gamma, - png_ptr->screen_gamma) : PNG_FP_1); - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if ((png_ptr->transformations & (PNG_COMPOSE | PNG_RGB_TO_GRAY)) != 0) - { - png_build_16bit_table(png_ptr, &png_ptr->gamma_16_to_1, shift, - png_reciprocal(png_ptr->colorspace.gamma)); - - /* Notice that the '16 from 1' table should be full precision, however - * the lookup on this table still uses gamma_shift, so it can't be. - * TODO: fix this. - */ - png_build_16bit_table(png_ptr, &png_ptr->gamma_16_from_1, shift, - png_ptr->screen_gamma > 0 ? png_reciprocal(png_ptr->screen_gamma) : - png_ptr->colorspace.gamma/* Probably doing rgb_to_gray */); - } -#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */ - } -#endif /* 16BIT */ -} -#endif /* READ_GAMMA */ - -/* HARDWARE OR SOFTWARE OPTION SUPPORT */ -#ifdef PNG_SET_OPTION_SUPPORTED -int PNGAPI -png_set_option(png_structrp png_ptr, int option, int onoff) -{ - if (png_ptr != NULL && option >= 0 && option < PNG_OPTION_NEXT && - (option & 1) == 0) - { - png_uint_32 mask = 3U << option; - png_uint_32 setting = (2U + (onoff != 0)) << option; - png_uint_32 current = png_ptr->options; - - png_ptr->options = (png_uint_32)((current & ~mask) | setting); - - return (int)(current & mask) >> option; - } - - return PNG_OPTION_INVALID; -} -#endif - -/* sRGB support */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -/* sRGB conversion tables; these are machine generated with the code in - * contrib/tools/makesRGB.c. The actual sRGB transfer curve defined in the - * specification (see the article at https://en.wikipedia.org/wiki/SRGB) - * is used, not the gamma=1/2.2 approximation use elsewhere in libpng. - * The sRGB to linear table is exact (to the nearest 16-bit linear fraction). - * The inverse (linear to sRGB) table has accuracies as follows: - * - * For all possible (255*65535+1) input values: - * - * error: -0.515566 - 0.625971, 79441 (0.475369%) of readings inexact - * - * For the input values corresponding to the 65536 16-bit values: - * - * error: -0.513727 - 0.607759, 308 (0.469978%) of readings inexact - * - * In all cases the inexact readings are only off by one. - */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* The convert-to-sRGB table is only currently required for read. */ -const png_uint_16 png_sRGB_table[256] = -{ - 0,20,40,60,80,99,119,139, - 159,179,199,219,241,264,288,313, - 340,367,396,427,458,491,526,562, - 599,637,677,718,761,805,851,898, - 947,997,1048,1101,1156,1212,1270,1330, - 1391,1453,1517,1583,1651,1720,1790,1863, - 1937,2013,2090,2170,2250,2333,2418,2504, - 2592,2681,2773,2866,2961,3058,3157,3258, - 3360,3464,3570,3678,3788,3900,4014,4129, - 4247,4366,4488,4611,4736,4864,4993,5124, - 5257,5392,5530,5669,5810,5953,6099,6246, - 6395,6547,6700,6856,7014,7174,7335,7500, - 7666,7834,8004,8177,8352,8528,8708,8889, - 9072,9258,9445,9635,9828,10022,10219,10417, - 10619,10822,11028,11235,11446,11658,11873,12090, - 12309,12530,12754,12980,13209,13440,13673,13909, - 14146,14387,14629,14874,15122,15371,15623,15878, - 16135,16394,16656,16920,17187,17456,17727,18001, - 18277,18556,18837,19121,19407,19696,19987,20281, - 20577,20876,21177,21481,21787,22096,22407,22721, - 23038,23357,23678,24002,24329,24658,24990,25325, - 25662,26001,26344,26688,27036,27386,27739,28094, - 28452,28813,29176,29542,29911,30282,30656,31033, - 31412,31794,32179,32567,32957,33350,33745,34143, - 34544,34948,35355,35764,36176,36591,37008,37429, - 37852,38278,38706,39138,39572,40009,40449,40891, - 41337,41785,42236,42690,43147,43606,44069,44534, - 45002,45473,45947,46423,46903,47385,47871,48359, - 48850,49344,49841,50341,50844,51349,51858,52369, - 52884,53401,53921,54445,54971,55500,56032,56567, - 57105,57646,58190,58737,59287,59840,60396,60955, - 61517,62082,62650,63221,63795,64372,64952,65535 -}; -#endif /* SIMPLIFIED_READ */ - -/* The base/delta tables are required for both read and write (but currently - * only the simplified versions.) - */ -const png_uint_16 png_sRGB_base[512] = -{ - 128,1782,3383,4644,5675,6564,7357,8074, - 8732,9346,9921,10463,10977,11466,11935,12384, - 12816,13233,13634,14024,14402,14769,15125,15473, - 15812,16142,16466,16781,17090,17393,17690,17981, - 18266,18546,18822,19093,19359,19621,19879,20133, - 20383,20630,20873,21113,21349,21583,21813,22041, - 22265,22487,22707,22923,23138,23350,23559,23767, - 23972,24175,24376,24575,24772,24967,25160,25352, - 25542,25730,25916,26101,26284,26465,26645,26823, - 27000,27176,27350,27523,27695,27865,28034,28201, - 28368,28533,28697,28860,29021,29182,29341,29500, - 29657,29813,29969,30123,30276,30429,30580,30730, - 30880,31028,31176,31323,31469,31614,31758,31902, - 32045,32186,32327,32468,32607,32746,32884,33021, - 33158,33294,33429,33564,33697,33831,33963,34095, - 34226,34357,34486,34616,34744,34873,35000,35127, - 35253,35379,35504,35629,35753,35876,35999,36122, - 36244,36365,36486,36606,36726,36845,36964,37083, - 37201,37318,37435,37551,37668,37783,37898,38013, - 38127,38241,38354,38467,38580,38692,38803,38915, - 39026,39136,39246,39356,39465,39574,39682,39790, - 39898,40005,40112,40219,40325,40431,40537,40642, - 40747,40851,40955,41059,41163,41266,41369,41471, - 41573,41675,41777,41878,41979,42079,42179,42279, - 42379,42478,42577,42676,42775,42873,42971,43068, - 43165,43262,43359,43456,43552,43648,43743,43839, - 43934,44028,44123,44217,44311,44405,44499,44592, - 44685,44778,44870,44962,45054,45146,45238,45329, - 45420,45511,45601,45692,45782,45872,45961,46051, - 46140,46229,46318,46406,46494,46583,46670,46758, - 46846,46933,47020,47107,47193,47280,47366,47452, - 47538,47623,47709,47794,47879,47964,48048,48133, - 48217,48301,48385,48468,48552,48635,48718,48801, - 48884,48966,49048,49131,49213,49294,49376,49458, - 49539,49620,49701,49782,49862,49943,50023,50103, - 50183,50263,50342,50422,50501,50580,50659,50738, - 50816,50895,50973,51051,51129,51207,51285,51362, - 51439,51517,51594,51671,51747,51824,51900,51977, - 52053,52129,52205,52280,52356,52432,52507,52582, - 52657,52732,52807,52881,52956,53030,53104,53178, - 53252,53326,53400,53473,53546,53620,53693,53766, - 53839,53911,53984,54056,54129,54201,54273,54345, - 54417,54489,54560,54632,54703,54774,54845,54916, - 54987,55058,55129,55199,55269,55340,55410,55480, - 55550,55620,55689,55759,55828,55898,55967,56036, - 56105,56174,56243,56311,56380,56448,56517,56585, - 56653,56721,56789,56857,56924,56992,57059,57127, - 57194,57261,57328,57395,57462,57529,57595,57662, - 57728,57795,57861,57927,57993,58059,58125,58191, - 58256,58322,58387,58453,58518,58583,58648,58713, - 58778,58843,58908,58972,59037,59101,59165,59230, - 59294,59358,59422,59486,59549,59613,59677,59740, - 59804,59867,59930,59993,60056,60119,60182,60245, - 60308,60370,60433,60495,60558,60620,60682,60744, - 60806,60868,60930,60992,61054,61115,61177,61238, - 61300,61361,61422,61483,61544,61605,61666,61727, - 61788,61848,61909,61969,62030,62090,62150,62211, - 62271,62331,62391,62450,62510,62570,62630,62689, - 62749,62808,62867,62927,62986,63045,63104,63163, - 63222,63281,63340,63398,63457,63515,63574,63632, - 63691,63749,63807,63865,63923,63981,64039,64097, - 64155,64212,64270,64328,64385,64443,64500,64557, - 64614,64672,64729,64786,64843,64900,64956,65013, - 65070,65126,65183,65239,65296,65352,65409,65465 -}; - -const png_byte png_sRGB_delta[512] = -{ - 207,201,158,129,113,100,90,82,77,72,68,64,61,59,56,54, - 52,50,49,47,46,45,43,42,41,40,39,39,38,37,36,36, - 35,34,34,33,33,32,32,31,31,30,30,30,29,29,28,28, - 28,27,27,27,27,26,26,26,25,25,25,25,24,24,24,24, - 23,23,23,23,23,22,22,22,22,22,22,21,21,21,21,21, - 21,20,20,20,20,20,20,20,20,19,19,19,19,19,19,19, - 19,18,18,18,18,18,18,18,18,18,18,17,17,17,17,17, - 17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 -}; -#endif /* SIMPLIFIED READ/WRITE sRGB support */ - -/* SIMPLIFIED READ/WRITE SUPPORT */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -static int -png_image_free_function(png_voidp argument) -{ - png_imagep image = png_voidcast(png_imagep, argument); - png_controlp cp = image->opaque; - png_control c; - - /* Double check that we have a png_ptr - it should be impossible to get here - * without one. - */ - if (cp->png_ptr == NULL) - return 0; - - /* First free any data held in the control structure. */ -# ifdef PNG_STDIO_SUPPORTED - if (cp->owned_file != 0) - { - FILE *fp = png_voidcast(FILE*, cp->png_ptr->io_ptr); - cp->owned_file = 0; - - /* Ignore errors here. */ - if (fp != NULL) - { - cp->png_ptr->io_ptr = NULL; - (void)fclose(fp); - } - } -# endif - - /* Copy the control structure so that the original, allocated, version can be - * safely freed. Notice that a png_error here stops the remainder of the - * cleanup, but this is probably fine because that would indicate bad memory - * problems anyway. - */ - c = *cp; - image->opaque = &c; - png_free(c.png_ptr, cp); - - /* Then the structures, calling the correct API. */ - if (c.for_write != 0) - { -# ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED - png_destroy_write_struct(&c.png_ptr, &c.info_ptr); -# else - png_error(c.png_ptr, "simplified write not supported"); -# endif - } - else - { -# ifdef PNG_SIMPLIFIED_READ_SUPPORTED - png_destroy_read_struct(&c.png_ptr, &c.info_ptr, NULL); -# else - png_error(c.png_ptr, "simplified read not supported"); -# endif - } - - /* Success. */ - return 1; -} - -void PNGAPI -png_image_free(png_imagep image) -{ - /* Safely call the real function, but only if doing so is safe at this point - * (if not inside an error handling context). Otherwise assume - * png_safe_execute will call this API after the return. - */ - if (image != NULL && image->opaque != NULL && - image->opaque->error_buf == NULL) - { - png_image_free_function(image); - image->opaque = NULL; - } -} - -int /* PRIVATE */ -png_image_error(png_imagep image, png_const_charp error_message) -{ - /* Utility to log an error. */ - png_safecat(image->message, (sizeof image->message), 0, error_message); - image->warning_or_error |= PNG_IMAGE_ERROR; - png_image_free(image); - return 0; -} - -#endif /* SIMPLIFIED READ/WRITE */ -#endif /* READ || WRITE */ diff --git a/Externals/libpng/png.h b/Externals/libpng/png.h deleted file mode 100644 index 139eb0dc0f..0000000000 --- a/Externals/libpng/png.h +++ /dev/null @@ -1,3247 +0,0 @@ - -/* png.h - header file for PNG reference library - * - * libpng version 1.6.37 - April 14, 2019 - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. (See LICENSE, below.) - * - * Authors and maintainers: - * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.35, July 2018: - * Glenn Randers-Pehrson - * libpng versions 1.6.36, December 2018, through 1.6.37, April 2019: - * Cosmin Truta - * See also "Contributing Authors", below. - */ - -/* - * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE - * ========================================= - * - * PNG Reference Library License version 2 - * --------------------------------------- - * - * * Copyright (c) 1995-2019 The PNG Reference Library Authors. - * * Copyright (c) 2018-2019 Cosmin Truta. - * * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. - * * Copyright (c) 1996-1997 Andreas Dilger. - * * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * The software is supplied "as is", without warranty of any kind, - * express or implied, including, without limitation, the warranties - * of merchantability, fitness for a particular purpose, title, and - * non-infringement. In no event shall the Copyright owners, or - * anyone distributing the software, be liable for any damages or - * other liability, whether in contract, tort or otherwise, arising - * from, out of, or in connection with the software, or the use or - * other dealings in the software, even if advised of the possibility - * of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute - * this software, or portions hereof, for any purpose, without fee, - * subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you - * must not claim that you wrote the original software. If you - * use this software in a product, an acknowledgment in the product - * documentation would be appreciated, but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must - * not be misrepresented as being the original software. - * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. - * - * - * PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) - * ----------------------------------------------------------------------- - * - * libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are - * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are - * derived from libpng-1.0.6, and are distributed according to the same - * disclaimer and license as libpng-1.0.6 with the following individuals - * added to the list of Contributing Authors: - * - * Simon-Pierre Cadieux - * Eric S. Raymond - * Mans Rullgard - * Cosmin Truta - * Gilles Vollant - * James Yu - * Mandar Sahastrabuddhe - * Google Inc. - * Vadim Barkov - * - * and with the following additions to the disclaimer: - * - * There is no warranty against interference with your enjoyment of - * the library or against infringement. There is no warranty that our - * efforts or the library will fulfill any of your particular purposes - * or needs. This library is provided with all faults, and the entire - * risk of satisfactory quality, performance, accuracy, and effort is - * with the user. - * - * Some files in the "contrib" directory and some configure-generated - * files that are distributed with libpng have other copyright owners, and - * are released under other open source licenses. - * - * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from - * libpng-0.96, and are distributed according to the same disclaimer and - * license as libpng-0.96, with the following individuals added to the - * list of Contributing Authors: - * - * Tom Lane - * Glenn Randers-Pehrson - * Willem van Schaik - * - * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, - * and are distributed according to the same disclaimer and license as - * libpng-0.88, with the following individuals added to the list of - * Contributing Authors: - * - * John Bowler - * Kevin Bracey - * Sam Bushell - * Magnus Holmgren - * Greg Roelofs - * Tom Tanner - * - * Some files in the "scripts" directory have other copyright owners, - * but are released under this license. - * - * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * For the purposes of this copyright and license, "Contributing Authors" - * is defined as the following set of individuals: - * - * Andreas Dilger - * Dave Martindale - * Guy Eric Schalnat - * Paul Schmidt - * Tim Wegner - * - * The PNG Reference Library is supplied "AS IS". The Contributing - * Authors and Group 42, Inc. disclaim all warranties, expressed or - * implied, including, without limitation, the warranties of - * merchantability and of fitness for any purpose. The Contributing - * Authors and Group 42, Inc. assume no liability for direct, indirect, - * incidental, special, exemplary, or consequential damages, which may - * result from the use of the PNG Reference Library, even if advised of - * the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * - * 1. The origin of this source code must not be misrepresented. - * - * 2. Altered versions must be plainly marked as such and must not - * be misrepresented as being the original source. - * - * 3. This Copyright notice may not be removed or altered from any - * source or altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, - * without fee, and encourage the use of this source code as a component - * to supporting the PNG file format in commercial products. If you use - * this source code in a product, acknowledgment is not required but would - * be appreciated. - * - * END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. - * - * TRADEMARK - * ========= - * - * The name "libpng" has not been registered by the Copyright owners - * as a trademark in any jurisdiction. However, because libpng has - * been distributed and maintained world-wide, continually since 1995, - * the Copyright owners claim "common-law trademark protection" in any - * jurisdiction where common-law trademark is recognized. - */ - -/* - * A "png_get_copyright" function is available, for convenient use in "about" - * boxes and the like: - * - * printf("%s", png_get_copyright(NULL)); - * - * Also, the PNG logo (in PNG format, of course) is supplied in the - * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - */ - -/* - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - */ - -/* Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c "1.0 beta 3" 0.89 89 1.0.89 - * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] - * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] - * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] - * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [100 should be 10000] - * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] - * 1.0.1 png.h string is 10001 2.1.0 - * 1.0.1a-e identical to the 10002 from here on, the shared library - * 1.0.2 source version) 10002 is 2.V where V is the source code - * 1.0.2a-b 10003 version, except as noted. - * 1.0.3 10003 - * 1.0.3a-d 10004 - * 1.0.4 10004 - * 1.0.4a-f 10005 - * 1.0.5 (+ 2 patches) 10005 - * 1.0.5a-d 10006 - * 1.0.5e-r 10100 (not source compatible) - * 1.0.5s-v 10006 (not binary compatible) - * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) - * 1.0.6d-f 10007 (still binary incompatible) - * 1.0.6g 10007 - * 1.0.6h 10007 10.6h (testing xy.z so-numbering) - * 1.0.6i 10007 10.6i - * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) - * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) - * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) - * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) - * 1.0.7 1 10007 (still compatible) - * ... - * 1.0.69 10 10069 10.so.0.69[.0] - * ... - * 1.2.59 13 10259 12.so.0.59[.0] - * ... - * 1.4.20 14 10420 14.so.0.20[.0] - * ... - * 1.5.30 15 10530 15.so.15.30[.0] - * ... - * 1.6.37 16 10637 16.so.16.37[.0] - * - * Henceforth the source version will match the shared-library major and - * minor numbers; the shared-library major version number will be used for - * changes in backward compatibility, as it is intended. - * The PNG_LIBPNG_VER macro, which is not used within libpng but is - * available for applications, is an unsigned integer of the form XYYZZ - * corresponding to the source version X.Y.Z (leading zeros in Y and Z). - * Beta versions were given the previous public release number plus a - * letter, until version 1.0.6j; from then on they were given the upcoming - * public release number plus "betaNN" or "rcNN". - * - * Binary incompatibility exists only when applications make direct access - * to the info_ptr or png_ptr members through png.h, and the compiled - * application is loaded with a different version of the library. - * - * DLLNUM will change each time there are forward or backward changes - * in binary compatibility (e.g., when a new feature is added). - * - * See libpng.txt or libpng.3 for more information. The PNG specification - * is available as a W3C Recommendation and as an ISO/IEC Standard; see - * - */ - -#ifndef PNG_H -#define PNG_H - -/* This is not the place to learn how to use libpng. The file libpng-manual.txt - * describes how to use libpng, and the file example.c summarizes it - * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. If that - * file has been stripped from your copy of libpng, you can find it at - * - * - * If you just need to read a PNG file and don't want to read the documentation - * skip to the end of this file and read the section entitled 'simplified API'. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.37" -#define PNG_HEADER_VERSION_STRING " libpng version 1.6.37 - April 14, 2019\n" - -#define PNG_LIBPNG_VER_SONUM 16 -#define PNG_LIBPNG_VER_DLLNUM 16 - -/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ -#define PNG_LIBPNG_VER_MAJOR 1 -#define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 37 - -/* This should be zero for a public release, or non-zero for a - * development version. [Deprecated] - */ -#define PNG_LIBPNG_VER_BUILD 0 - -/* Release Status */ -#define PNG_LIBPNG_BUILD_ALPHA 1 -#define PNG_LIBPNG_BUILD_BETA 2 -#define PNG_LIBPNG_BUILD_RC 3 -#define PNG_LIBPNG_BUILD_STABLE 4 -#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 - -/* Release-Specific Flags */ -#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with - PNG_LIBPNG_BUILD_STABLE only */ -#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_SPECIAL */ -#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with - PNG_LIBPNG_BUILD_PRIVATE */ - -#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE - -/* Careful here. At one time, Guy wanted to use 082, but that - * would be octal. We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here - * (only version 1.0.0 was mis-numbered 100 instead of 10000). - * From version 1.0.1 it is: - * XXYYZZ, where XX=major, YY=minor, ZZ=release - */ -#define PNG_LIBPNG_VER 10637 /* 1.6.37 */ - -/* Library configuration: these options cannot be changed after - * the library has been built. - */ -#ifndef PNGLCONF_H -/* If pnglibconf.h is missing, you can - * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h - */ -# include "pnglibconf.h" -#endif - -#ifndef PNG_VERSION_INFO_ONLY -/* Machine specific configuration. */ -# include "pngconf.h" -#endif - -/* - * Added at libpng-1.2.8 - * - * Ref MSDN: Private as priority over Special - * VS_FF_PRIVATEBUILD File *was not* built using standard release - * procedures. If this value is given, the StringFileInfo block must - * contain a PrivateBuild string. - * - * VS_FF_SPECIALBUILD File *was* built by the original company using - * standard release procedures but is a variation of the standard - * file of the same version number. If this value is given, the - * StringFileInfo block must contain a SpecialBuild string. - */ - -#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) -#else -# ifdef PNG_LIBPNG_SPECIALBUILD -# define PNG_LIBPNG_BUILD_TYPE \ - (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) -# else -# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) -# endif -#endif - -#ifndef PNG_VERSION_INFO_ONLY - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -#define png_libpng_ver png_get_header_ver(NULL) - -/* This file is arranged in several sections: - * - * 1. [omitted] - * 2. Any configuration options that can be specified by for the application - * code when it is built. (Build time configuration is in pnglibconf.h) - * 3. Type definitions (base types are defined in pngconf.h), structure - * definitions. - * 4. Exported library functions. - * 5. Simplified API. - * 6. Implementation options. - * - * The library source code has additional files (principally pngpriv.h) that - * allow configuration of the library. - */ - -/* Section 1: [omitted] */ - -/* Section 2: run time configuration - * See pnglibconf.h for build time configuration - * - * Run time configuration allows the application to choose between - * implementations of certain arithmetic APIs. The default is set - * at build time and recorded in pnglibconf.h, but it is safe to - * override these (and only these) settings. Note that this won't - * change what the library does, only application code, and the - * settings can (and probably should) be made on a per-file basis - * by setting the #defines before including png.h - * - * Use macros to read integers from PNG data or use the exported - * functions? - * PNG_USE_READ_MACROS: use the macros (see below) Note that - * the macros evaluate their argument multiple times. - * PNG_NO_USE_READ_MACROS: call the relevant library function. - * - * Use the alternative algorithm for compositing alpha samples that - * does not use division? - * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' - * algorithm. - * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. - * - * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is - * false? - * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error - * APIs to png_warning. - * Otherwise the calls are mapped to png_error. - */ - -/* Section 3: type definitions, including structures and compile time - * constants. - * See pngconf.h for base types that vary by machine/system - */ - -/* This triggers a compiler error in png.c, if png.c and png.h - * do not agree upon the version number. - */ -typedef char* png_libpng_version_1_6_37; - -/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. - * - * png_struct is the cache of information used while reading or writing a single - * PNG file. One of these is always required, although the simplified API - * (below) hides the creation and destruction of it. - */ -typedef struct png_struct_def png_struct; -typedef const png_struct * png_const_structp; -typedef png_struct * png_structp; -typedef png_struct * * png_structpp; - -/* png_info contains information read from or to be written to a PNG file. One - * or more of these must exist while reading or creating a PNG file. The - * information is not used by libpng during read but is used to control what - * gets written when a PNG file is created. "png_get_" function calls read - * information during read and "png_set_" functions calls write information - * when creating a PNG. - * been moved into a separate header file that is not accessible to - * applications. Read libpng-manual.txt or libpng.3 for more info. - */ -typedef struct png_info_def png_info; -typedef png_info * png_infop; -typedef const png_info * png_const_infop; -typedef png_info * * png_infopp; - -/* Types with names ending 'p' are pointer types. The corresponding types with - * names ending 'rp' are identical pointer types except that the pointer is - * marked 'restrict', which means that it is the only pointer to the object - * passed to the function. Applications should not use the 'restrict' types; - * it is always valid to pass 'p' to a pointer with a function argument of the - * corresponding 'rp' type. Different compilers have different rules with - * regard to type matching in the presence of 'restrict'. For backward - * compatibility libpng callbacks never have 'restrict' in their parameters and, - * consequentially, writing portable application code is extremely difficult if - * an attempt is made to use 'restrict'. - */ -typedef png_struct * PNG_RESTRICT png_structrp; -typedef const png_struct * PNG_RESTRICT png_const_structrp; -typedef png_info * PNG_RESTRICT png_inforp; -typedef const png_info * PNG_RESTRICT png_const_inforp; - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color * png_colorp; -typedef const png_color * png_const_colorp; -typedef png_color * * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 * png_color_16p; -typedef const png_color_16 * png_const_color_16p; -typedef png_color_16 * * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 * png_color_8p; -typedef const png_color_8 * png_const_color_8p; -typedef png_color_8 * * png_color_8pp; - -/* - * The following two structures are used for the in-core representation - * of sPLT chunks. - */ -typedef struct png_sPLT_entry_struct -{ - png_uint_16 red; - png_uint_16 green; - png_uint_16 blue; - png_uint_16 alpha; - png_uint_16 frequency; -} png_sPLT_entry; -typedef png_sPLT_entry * png_sPLT_entryp; -typedef const png_sPLT_entry * png_const_sPLT_entryp; -typedef png_sPLT_entry * * png_sPLT_entrypp; - -/* When the depth of the sPLT palette is 8 bits, the color and alpha samples - * occupy the LSB of their respective members, and the MSB of each member - * is zero-filled. The frequency member always occupies the full 16 bits. - */ - -typedef struct png_sPLT_struct -{ - png_charp name; /* palette name */ - png_byte depth; /* depth of palette samples */ - png_sPLT_entryp entries; /* palette entries */ - png_int_32 nentries; /* number of palette entries */ -} png_sPLT_t; -typedef png_sPLT_t * png_sPLT_tp; -typedef const png_sPLT_t * png_const_sPLT_tp; -typedef png_sPLT_t * * png_sPLT_tpp; - -#ifdef PNG_TEXT_SUPPORTED -/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, - * and whether that contents is compressed or not. The "key" field - * points to a regular zero-terminated C string. The "text" fields can be a - * regular C string, an empty string, or a NULL pointer. - * However, the structure returned by png_get_text() will always contain - * the "text" field as a regular zero-terminated C string (possibly - * empty), never a NULL pointer, so it can be safely used in printf() and - * other string-handling functions. Note that the "itxt_length", "lang", and - * "lang_key" members of the structure only exist when the library is built - * with iTXt chunk support. Prior to libpng-1.4.0 the library was built by - * default without iTXt support. Also note that when iTXt *is* supported, - * the "lang" and "lang_key" fields contain NULL pointers when the - * "compression" field contains * PNG_TEXT_COMPRESSION_NONE or - * PNG_TEXT_COMPRESSION_zTXt. Note that the "compression value" is not the - * same as what appears in the PNG tEXt/zTXt/iTXt chunk's "compression flag" - * which is always 0 or 1, or its "compression method" which is always 0. - */ -typedef struct png_text_struct -{ - int compression; /* compression value: - -1: tEXt, none - 0: zTXt, deflate - 1: iTXt, none - 2: iTXt, deflate */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") - or a NULL pointer */ - size_t text_length; /* length of the text string */ - size_t itxt_length; /* length of the itxt string */ - png_charp lang; /* language code, 0-79 characters - or a NULL pointer */ - png_charp lang_key; /* keyword translated UTF-8 string, 0 or more - chars or a NULL pointer */ -} png_text; -typedef png_text * png_textp; -typedef const png_text * png_const_textp; -typedef png_text * * png_textpp; -#endif - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_ITXT_COMPRESSION_NONE 1 -#define PNG_ITXT_COMPRESSION_zTXt 2 -#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG has always been Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time * png_timep; -typedef const png_time * png_const_timep; -typedef png_time * * png_timepp; - -#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_USER_CHUNKS_SUPPORTED) -/* png_unknown_chunk is a structure to hold queued chunks for which there is - * no specific support. The idea is that we can use this to queue - * up private chunks for output even though the library doesn't actually - * know about their semantics. - * - * The data in the structure is set by libpng on read and used on write. - */ -typedef struct png_unknown_chunk_t -{ - png_byte name[5]; /* Textual chunk name with '\0' terminator */ - png_byte *data; /* Data, should not be modified on read! */ - size_t size; - - /* On write 'location' must be set using the flag values listed below. - * Notice that on read it is set by libpng however the values stored have - * more bits set than are listed below. Always treat the value as a - * bitmask. On write set only one bit - setting multiple bits may cause the - * chunk to be written in multiple places. - */ - png_byte location; /* mode of operation at read time */ -} -png_unknown_chunk; - -typedef png_unknown_chunk * png_unknown_chunkp; -typedef const png_unknown_chunk * png_const_unknown_chunkp; -typedef png_unknown_chunk * * png_unknown_chunkpp; -#endif - -/* Flag values for the unknown chunk location byte. */ -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_AFTER_IDAT 0x08 - -/* Maximum positive integer used in PNG is (2^31)-1 */ -#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) -#define PNG_UINT_32_MAX ((png_uint_32)(-1)) -#define PNG_SIZE_MAX ((size_t)(-1)) - -/* These are constants for fixed point values encoded in the - * PNG specification manner (x100000) - */ -#define PNG_FP_1 100000 -#define PNG_FP_HALF 50000 -#define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) -#define PNG_FP_MIN (-PNG_FP_MAX) - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) -/* aliases */ -#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA -#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA - -/* This is for compression type. PNG 1.0-1.2 only define the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0-1.2 only define the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the sCAL chunk. These values should NOT be changed. */ -#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ -#define PNG_SCALE_METER 1 /* meters per pixel */ -#define PNG_SCALE_RADIAN 2 /* radians per pixel */ -#define PNG_SCALE_LAST 3 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_PERCEPTUAL 0 -#define PNG_sRGB_INTENT_RELATIVE 1 -#define PNG_sRGB_INTENT_SATURATION 2 -#define PNG_sRGB_INTENT_ABSOLUTE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - -/* This is for text chunks */ -#define PNG_KEYWORD_MAX_LENGTH 79 - -/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ -#define PNG_MAX_PALETTE_LENGTH 256 - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_ defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001U -#define PNG_INFO_sBIT 0x0002U -#define PNG_INFO_cHRM 0x0004U -#define PNG_INFO_PLTE 0x0008U -#define PNG_INFO_tRNS 0x0010U -#define PNG_INFO_bKGD 0x0020U -#define PNG_INFO_hIST 0x0040U -#define PNG_INFO_pHYs 0x0080U -#define PNG_INFO_oFFs 0x0100U -#define PNG_INFO_tIME 0x0200U -#define PNG_INFO_pCAL 0x0400U -#define PNG_INFO_sRGB 0x0800U /* GR-P, 0.96a */ -#define PNG_INFO_iCCP 0x1000U /* ESR, 1.0.6 */ -#define PNG_INFO_sPLT 0x2000U /* ESR, 1.0.6 */ -#define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */ -#define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */ -#define PNG_INFO_eXIf 0x10000U /* GR-P, 1.6.31 */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - size_t rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info * png_row_infop; -typedef png_row_info * * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. Note that the 'write' function must not - * modify the buffer it is passed. The 'read' function, on the other hand, is - * expected to return the read data in the buffer. - */ -typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); -typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, size_t)); -typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); -typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, - int)); -typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, - int)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); -typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); - -/* The following callback receives png_uint_32 row_number, int pass for the - * png_bytep data of the row. When transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, - png_uint_32, int)); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, - png_bytep)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, - png_unknown_chunkp)); -#endif -#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED -/* not used anywhere */ -/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This must match the function definition in , and the application - * must include this before png.h to obtain the definition of jmp_buf. The - * function is required to be PNG_NORETURN, but this is not checked. If the - * function does return the application will crash via an abort() or similar - * system level call. - * - * If you get a warning here while building the library you may need to make - * changes to ensure that pnglibconf.h records the calling convention used by - * your compiler. This may be very difficult - try using a different compiler - * to build the library! - */ -PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); -#endif - -/* Transform masks for the high-level interface */ -#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ -#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ -#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ -#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ -#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ -#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ -#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ -#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ -#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ -#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ -#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ -#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ -#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ -/* Added to libpng-1.2.34 */ -#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER -#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ -/* Added to libpng-1.4.0 */ -#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ -/* Added to libpng-1.5.4 */ -#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ -#if INT_MAX >= 0x8000 /* else this might break */ -#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ -#endif - -/* Flags for MNG supported features */ -#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 -#define PNG_FLAG_MNG_FILTER_64 0x04 -#define PNG_ALL_MNG_FEATURES 0x05 - -/* NOTE: prior to 1.5 these functions had no 'API' style declaration, - * this allowed the zlib default functions to be used on Windows - * platforms. In 1.5 the zlib default malloc (which just calls malloc and - * ignores the first argument) should be completely compatible with the - * following. - */ -typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, - png_alloc_size_t)); -typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); - -/* Section 4: exported functions - * Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng-manual.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line description of the use of each function. - * - * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in - * pngconf.h and in the *.dfn files in the scripts directory. - * - * PNG_EXPORT(ordinal, type, name, (args)); - * - * ordinal: ordinal that is used while building - * *.def files. The ordinal value is only - * relevant when preprocessing png.h with - * the *.dfn files for building symbol table - * entries, and are removed by pngconf.h. - * type: return type of the function - * name: function name - * args: function arguments, with types - * - * When we wish to append attributes to a function prototype we use - * the PNG_EXPORTA() macro instead. - * - * PNG_EXPORTA(ordinal, type, name, (args), attributes); - * - * ordinal, type, name, and args: same as in PNG_EXPORT(). - * attributes: function attributes - */ - -/* Returns the version number of the library */ -PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); - -/* Tell lib we have already handled the first magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, size_t start, - size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -PNG_EXPORTA(4, png_structp, png_create_read_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn), - PNG_ALLOCATED); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -PNG_EXPORTA(5, png_structp, png_create_write_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn), - PNG_ALLOCATED); - -PNG_EXPORT(6, size_t, png_get_compression_buffer_size, - (png_const_structrp png_ptr)); - -PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, - size_t size)); - -/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp - * match up. - */ -#ifdef PNG_SETJMP_SUPPORTED -/* This function returns the jmp_buf built in to *png_ptr. It must be - * supplied with an appropriate 'longjmp' function to use on that jmp_buf - * unless the default error function is overridden in which case NULL is - * acceptable. The size of the jmp_buf is checked against the actual size - * allocated by the library - the call will return NULL on a mismatch - * indicating an ABI mismatch. - */ -PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, - png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); -# define png_jmpbuf(png_ptr) \ - (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) -#else -# define png_jmpbuf(png_ptr) \ - (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) -#endif -/* This function should be used by libpng applications in place of - * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it - * will use it; otherwise it will call PNG_ABORT(). This function was - * added in libpng-1.5.0. - */ -PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), - PNG_NORETURN); - -#ifdef PNG_READ_SUPPORTED -/* Reset the compression stream */ -PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); -#endif - -/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(11, png_structp, png_create_read_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -PNG_EXPORTA(12, png_structp, png_create_write_struct_2, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), - PNG_ALLOCATED); -#endif - -/* Write the PNG file signature. */ -PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep - chunk_name, png_const_bytep data, size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, - png_const_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, - png_const_bytep data, size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); - -/* Allocate and initialize the info structure */ -PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), - PNG_ALLOCATED); - -/* DEPRECATED: this function allowed init structures to be created using the - * default allocation method (typically malloc). Use is deprecated in 1.6.0 and - * the API will be removed in the future. - */ -PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, - size_t png_info_struct_size), PNG_DEPRECATED); - -/* Writes all the PNG information before the image. */ -PNG_EXPORT(20, void, png_write_info_before_PLTE, - (png_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(21, void, png_write_info, - (png_structrp png_ptr, png_const_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. */ -PNG_EXPORT(22, void, png_read_info, - (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED - /* Convert to a US string format: there is no localization support in this - * routine. The original implementation used a 29 character buffer in - * png_struct, this will be removed in future versions. - */ -#if PNG_LIBPNG_VER < 10700 -/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ -PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, - png_const_timep ptime),PNG_DEPRECATED); -#endif -PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], - png_const_timep ptime)); -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED -/* Convert from a struct tm to png_time */ -PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, - const struct tm * ttime)); - -/* Convert from time_t to png_time. Uses gmtime() */ -PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); -#endif /* CONVERT_tIME */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ -PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); -PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); -PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); -PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion - * of a tRNS chunk if present. - */ -PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand the grayscale to 24-bit RGB if necessary. */ -PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB to grayscale. */ -#define PNG_ERROR_ACTION_NONE 1 -#define PNG_ERROR_ACTION_WARN 2 -#define PNG_ERROR_ACTION_ERROR 3 -#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ - -PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, - int error_action, double red, double green)) -PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, - int error_action, png_fixed_point red, png_fixed_point green)) - -PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp - png_ptr)); -#endif - -#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, - png_colorp palette)); -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -/* How the alpha channel is interpreted - this affects how the color channels - * of a PNG file are returned to the calling application when an alpha channel, - * or a tRNS chunk in a palette file, is present. - * - * This has no effect on the way pixels are written into a PNG output - * datastream. The color samples in a PNG datastream are never premultiplied - * with the alpha samples. - * - * The default is to return data according to the PNG specification: the alpha - * channel is a linear measure of the contribution of the pixel to the - * corresponding composited pixel, and the color channels are unassociated - * (not premultiplied). The gamma encoded color channels must be scaled - * according to the contribution and to do this it is necessary to undo - * the encoding, scale the color values, perform the composition and re-encode - * the values. This is the 'PNG' mode. - * - * The alternative is to 'associate' the alpha with the color information by - * storing color channel values that have been scaled by the alpha. - * image. These are the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' modes - * (the latter being the two common names for associated alpha color channels). - * - * For the 'OPTIMIZED' mode, a pixel is treated as opaque only if the alpha - * value is equal to the maximum value. - * - * The final choice is to gamma encode the alpha channel as well. This is - * broken because, in practice, no implementation that uses this choice - * correctly undoes the encoding before handling alpha composition. Use this - * choice only if other serious errors in the software or hardware you use - * mandate it; the typical serious error is for dark halos to appear around - * opaque areas of the composited PNG image because of arithmetic overflow. - * - * The API function png_set_alpha_mode specifies which of these choices to use - * with an enumerated 'mode' value and the gamma of the required output: - */ -#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ -#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ -#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ -#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ -#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ -#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ - -PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, - double output_gamma)) -PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, - int mode, png_fixed_point output_gamma)) -#endif - -#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) -/* The output_gamma value is a screen gamma in libpng terminology: it expresses - * how to decode the output values, not how they are encoded. - */ -#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ -#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ -#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ -#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ -#endif - -/* The following are examples of calls to png_set_alpha_mode to achieve the - * required overall gamma correction and, where necessary, alpha - * premultiplication. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * This is the default libpng handling of the alpha channel - it is not - * pre-multiplied into the color components. In addition the call states - * that the output is for a sRGB system and causes all PNG files without gAMA - * chunks to be assumed to be encoded using sRGB. - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * In this case the output is assumed to be something like an sRGB conformant - * display preceded by a power-law lookup table of power 1.45. This is how - * early Mac systems behaved. - * - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); - * This is the classic Jim Blinn approach and will work in academic - * environments where everything is done by the book. It has the shortcoming - * of assuming that input PNG data with no gamma information is linear - this - * is unlikely to be correct unless the PNG files where generated locally. - * Most of the time the output precision will be so low as to show - * significant banding in dark areas of the image. - * - * png_set_expand_16(pp); - * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); - * This is a somewhat more realistic Jim Blinn inspired approach. PNG files - * are assumed to have the sRGB encoding if not marked with a gamma value and - * the output is always 16 bits per component. This permits accurate scaling - * and processing of the data. If you know that your input PNG files were - * generated locally you might need to replace PNG_DEFAULT_sRGB with the - * correct value for your system. - * - * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); - * If you just need to composite the PNG image onto an existing background - * and if you control the code that does this you can use the optimization - * setting. In this case you just copy completely opaque pixels to the - * output. For pixels that are not completely transparent (you just skip - * those) you do the composition math using png_composite or png_composite_16 - * below then encode the resultant 8-bit or 16-bit values to match the output - * encoding. - * - * Other cases - * If neither the PNG nor the standard linear encoding work for you because - * of the software or hardware you use then you have a big problem. The PNG - * case will probably result in halos around the image. The linear encoding - * will probably result in a washed out, too bright, image (it's actually too - * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably - * substantially reduce the halos. Alternatively try: - * - * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); - * This option will also reduce the halos, but there will be slight dark - * halos round the opaque parts of the image where the background is light. - * In the OPTIMIZED mode the halos will be light halos where the background - * is dark. Take your pick - the halos are unavoidable unless you can get - * your hardware/software fixed! (The OPTIMIZED approach is slightly - * faster.) - * - * When the default gamma of PNG files doesn't match the output gamma. - * If you have PNG files with no gamma information png_set_alpha_mode allows - * you to provide a default gamma, but it also sets the output gamma to the - * matching value. If you know your PNG files have a gamma that doesn't - * match the output you can take advantage of the fact that - * png_set_alpha_mode always sets the output gamma but only sets the PNG - * default if it is not already set: - * - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); - * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); - * The first call sets both the default and the output gamma values, the - * second call overrides the output gamma without changing the default. This - * is easier than achieving the same effect with png_set_gamma. You must use - * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will - * fire if more than one call to png_set_alpha_mode and png_set_background is - * made in the same read operation, however multiple calls with PNG_ALPHA_PNG - * are ignored. - */ - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 8-bit or 16-bit Gray or 24-bit or 48-bit RGB images. */ -PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, - int flags)); -/* The values of the PNG_FILLER_ defines should NOT be changed */ -# define PNG_FILLER_BEFORE 0 -# define PNG_FILLER_AFTER 1 -/* Add an alpha byte to 8-bit or 16-bit Gray or 24-bit or 48-bit RGB images. */ -PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, - png_uint_32 filler, int flags)); -#endif /* READ_FILLER || WRITE_FILLER */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16-bit depth files. */ -PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ -PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p - true_bits)); -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. - * MUST be called before png_read_update_info or png_start_read_image, - * otherwise it will not have the desired effect. Note that it is still - * necessary to call png_read_row or png_read_rows png_get_image_height - * times for each pass. -*/ -PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monochrome files */ -PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS by replacing with a background color. Prior to - * libpng-1.5.4 this API must not be called before the PNG file header has been - * read. Doing so will result in unexpected behavior and possible warnings or - * errors if the PNG file contains a bKGD chunk. - */ -PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)) -PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma)) -#endif -#ifdef PNG_READ_BACKGROUND_SUPPORTED -# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -# define PNG_BACKGROUND_GAMMA_SCREEN 1 -# define PNG_BACKGROUND_GAMMA_FILE 2 -# define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -/* Scale a 16-bit depth file down to 8-bit, accurately. */ -PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_16_TO_8_SUPPORTED /* Name prior to 1.5.4 */ -/* Strip the second byte of information from a 16-bit depth file. */ -PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Turn on quantizing, and reduce the palette to the number of colors - * available. - */ -PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_const_uint_16p histogram, int full_quantize)); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The threshold on gamma processing is configurable but hard-wired into the - * library. The following is the floating point variant. - */ -#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) - -/* Handle gamma correction. Screen_gamma=(display_exponent). - * NOTE: this API simply sets the screen and file gamma values. It will - * therefore override the value for gamma in a PNG file if it is called after - * the file header has been read - use with care - call before reading the PNG - * file for best results! - * - * These routines accept the same gamma values as png_set_alpha_mode (described - * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either - * API (floating point or fixed.) Notice, however, that the 'file_gamma' value - * is the inverse of a 'screen gamma' value. - */ -PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, - double screen_gamma, double override_file_gamma)) -PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, - png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set how many lines between output flushes - 0 for no flushing */ -PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); -/* Flush the current PNG output buffer */ -PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); -#endif - -/* Optional update palette with requested transformations */ -PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); - -/* Optional call to update the users info structure */ -PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. */ -PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read a row of data. */ -PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, - png_bytep display_row)); -#endif - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the whole image into memory at once. */ -PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); -#endif - -/* Write a row of image data */ -PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, - png_const_bytep row)); - -/* Write a few rows of image data: (*row) is not written; however, the type - * is declared as writeable to maintain compatibility with previous versions - * of libpng and to allow the 'display_row' array from read_rows to be passed - * unchanged to write_rows. - */ -PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, - png_uint_32 num_rows)); - -/* Write the image data */ -PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); - -/* Write the end of the PNG file. */ -PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, - png_inforp info_ptr)); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. */ -PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); -#endif - -/* Free any memory associated with the png_info_struct */ -PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, - png_infopp info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* Free any memory associated with the png_struct and the png_info_structs */ -PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, - png_infopp info_ptr_ptr)); - -/* Set the libpng method of handling chunk CRC errors */ -PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, - int ancil_action)); - -/* Values for png_set_crc_action() say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -#ifdef PNG_WRITE_SUPPORTED -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* Set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, - int filters)); -#endif /* WRITE */ - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_FAST_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP) -#define PNG_ALL_FILTERS (PNG_FAST_FILTERS | PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ -PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, - int heuristic_method, int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs)) -PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, - (png_structrp png_ptr, int heuristic_method, int num_weights, - png_const_fixed_point_p filter_weights, - png_const_fixed_point_p filter_costs)) -#endif /* WRITE_WEIGHTED_FILTER */ - -/* The following are no longer used and will be removed from libpng-1.7: */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, - int window_bits)); - -PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_COMPRESSION */ - -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -/* Also set zlib parameters for compressing non-IDAT chunks */ -PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, - int level)); - -PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, - int mem_level)); - -PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, - int strategy)); - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -PNG_EXPORT(225, void, png_set_text_compression_window_bits, - (png_structrp png_ptr, int window_bits)); - -PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, - int method)); -#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ -#endif /* WRITE */ - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng-manual.txt for - * more information. - */ - -#ifdef PNG_STDIO_SUPPORTED -/* Initialize the input/output for the PNG file to the default functions. */ -PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - * It is probably a mistake to use NULL for output_flush_fn if - * write_data_fn is not also NULL unless you have built libpng with - * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's - * default flush function, which uses the standard *FILE structure, will - * be used. - */ -PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); - -PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, - png_read_status_ptr read_row_fn)); - -PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -/* Return the user pointer associated with the memory functions */ -PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, - png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, - png_voidp user_transform_ptr, int user_transform_depth, - int user_transform_channels)); -/* Return the user pointer associated with the user transform functions */ -PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, - (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -/* Return information about the row currently being processed. Note that these - * APIs do not fail but will return unexpected results if called outside a user - * transform callback. Also note that when transforming an interlaced image the - * row number is the row number within the sub-image of the interlace pass, so - * the value will increase to the height of the sub-image (not the full image) - * then reset to 0 for the next pass. - * - * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to - * find the output pixel (x,y) given an interlaced sub-image pixel - * (row,col,pass). (See below for these macros.) - */ -PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); -PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -/* This callback is called only for *unknown* chunks. If - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known - * chunks to be treated as unknown, however in this case the callback must do - * any processing required by the chunk (e.g. by calling the appropriate - * png_set_ APIs.) - * - * There is no write support - on write, by default, all the chunks in the - * 'unknown' list are written in the specified position. - * - * The integer return from the callback function is interpreted thus: - * - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be saved. A critical - * chunk will cause an error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. - * - * See "INTERACTION WITH USER CHUNK CALLBACKS" below for important notes about - * how this behavior will change in libpng 1.7 - */ -PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, - png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); - -/* Returns the user pointer associated with the push read functions */ -PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, - (png_const_structrp png_ptr)); - -/* Function to be called when data becomes available */ -PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, - png_inforp info_ptr, png_bytep buffer, size_t buffer_size)); - -/* A function which may be called *only* within png_process_data to stop the - * processing of any more data. The function returns the number of bytes - * remaining, excluding any that libpng has cached internally. A subsequent - * call to png_process_data must supply these bytes again. If the argument - * 'save' is set to true the routine will first save all the pending data and - * will always return 0. - */ -PNG_EXPORT(219, size_t, png_process_data_pause, (png_structrp, int save)); - -/* A function which may be called *only* outside (after) a call to - * png_process_data. It returns the number of bytes of data to skip in the - * input. Normally it will return 0, but if it returns a non-zero value the - * application must skip than number of bytes of input data and pass the - * following data to the next call to png_process_data. - */ -PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); - -/* Function that combines rows. 'new_row' is a flag that should come from - * the callback and be non-NULL if anything needs to be done; the library - * stores its own version of the new data internally and ignores the passed - * in value. - */ -PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, - png_bytep old_row, png_const_bytep new_row)); -#endif /* PROGRESSIVE_READ */ - -PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); -/* Added at libpng version 1.4.0 */ -PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Added at libpng version 1.2.4 */ -PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED); - -/* Frees a pointer allocated by png_malloc() */ -PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); - -/* Free data that was allocated internally */ -PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 free_me, int num)); - -/* Reassign responsibility for freeing existing data, whether allocated - * by libpng or by the application; this works on the png_info structure passed - * in, it does not change the state for other png_info structures. - * - * It is unlikely that this function works correctly as of 1.6.0 and using it - * may result either in memory leaks or double free of allocated data. - */ -PNG_EXPORT(99, void, png_data_freer, (png_const_structrp png_ptr, - png_inforp info_ptr, int freer, png_uint_32 mask)); - -/* Assignments for png_data_freer */ -#define PNG_DESTROY_WILL_FREE_DATA 1 -#define PNG_SET_WILL_FREE_DATA 1 -#define PNG_USER_WILL_FREE_DATA 2 -/* Flags for png_ptr->free_me and info_ptr->free_me */ -#define PNG_FREE_HIST 0x0008U -#define PNG_FREE_ICCP 0x0010U -#define PNG_FREE_SPLT 0x0020U -#define PNG_FREE_ROWS 0x0040U -#define PNG_FREE_PCAL 0x0080U -#define PNG_FREE_SCAL 0x0100U -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -# define PNG_FREE_UNKN 0x0200U -#endif -/* PNG_FREE_LIST 0x0400U removed in 1.6.0 because it is ignored */ -#define PNG_FREE_PLTE 0x1000U -#define PNG_FREE_TRNS 0x2000U -#define PNG_FREE_TEXT 0x4000U -#define PNG_FREE_EXIF 0x8000U /* Added at libpng-1.6.31 */ -#define PNG_FREE_ALL 0xffffU -#define PNG_FREE_MUL 0x4220U /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, - png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); -PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, - png_voidp ptr), PNG_DEPRECATED); -#endif - -#ifdef PNG_ERROR_TEXT_SUPPORTED -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -/* The same, but the chunk name is prepended to the error string. */ -PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, - png_const_charp error_message), PNG_NORETURN); - -#else -/* Fatal error in PNG image of libpng - can't continue */ -PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); -# define png_error(s1,s2) png_err(s1) -# define png_chunk_error(s1,s2) png_err(s1) -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#else -# define png_warning(s1,s2) ((void)(s1)) -# define png_chunk_warning(s1,s2) ((void)(s1)) -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Benign error in libpng. Can continue, but may have a problem. - * User can choose whether to handle as a fatal error or as a warning. */ -PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); - -#ifdef PNG_READ_SUPPORTED -/* Same, chunk name is prepended to message (only during read) */ -PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, - png_const_charp warning_message)); -#endif - -PNG_EXPORT(109, void, png_set_benign_errors, - (png_structrp png_ptr, int allowed)); -#else -# ifdef PNG_ALLOW_BENIGN_ERRORS -# define png_benign_error png_warning -# define png_chunk_benign_error png_chunk_warning -# else -# define png_benign_error png_error -# define png_chunk_benign_error png_chunk_error -# endif -#endif - -/* The png_set_ functions are for storing values in the png_info_struct. - * Similarly, the png_get_ calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_ functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -PNG_EXPORT(111, size_t, png_get_rowbytes, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* Returns row_pointers, which is an array of pointers to scanlines that was - * returned from png_read_png(). - */ -PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Set row_pointers, which is an array of pointers to scanlines for use - * by png_write_png(). - */ -PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytepp row_pointers)); -#endif - -/* Returns number of color channels in image. */ -PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image height in pixels. */ -PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image bit_depth. */ -PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image color_type. */ -PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image filter_type. */ -PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image interlace_type. */ -PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image compression_type. */ -PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); -PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -#endif /* EASY_ACCESS */ - -#ifdef PNG_READ_SUPPORTED -/* Returns pointer to signature string read from PNG header */ -PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, - png_const_inforp info_ptr)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_16p *background)); -#endif - -#ifdef PNG_bKGD_SUPPORTED -PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_16p background)); -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)) -PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, - double *green_X, double *green_Y, double *green_Z, double *blue_X, - double *blue_Y, double *blue_Z)) -PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_white_x, png_fixed_point *int_white_y, - png_fixed_point *int_red_x, png_fixed_point *int_red_y, - png_fixed_point *int_green_x, png_fixed_point *int_green_y, - png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) -PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_red_X, png_fixed_point *int_red_Y, - png_fixed_point *int_red_Z, png_fixed_point *int_green_X, - png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, - png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, - png_fixed_point *int_blue_Z)) -#endif - -#ifdef PNG_cHRM_SUPPORTED -PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, - double white_x, double white_y, double red_x, double red_y, double green_x, - double green_y, double blue_x, double blue_y)) -PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, - png_inforp info_ptr, double red_X, double red_Y, double red_Z, - double green_X, double green_Y, double green_Z, double blue_X, - double blue_Y, double blue_Z)) -PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_white_x, - png_fixed_point int_white_y, png_fixed_point int_red_x, - png_fixed_point int_red_y, png_fixed_point int_green_x, - png_fixed_point int_green_y, png_fixed_point int_blue_x, - png_fixed_point int_blue_y)) -PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, - png_fixed_point int_red_Z, png_fixed_point int_green_X, - png_fixed_point int_green_Y, png_fixed_point int_green_Z, - png_fixed_point int_blue_X, png_fixed_point int_blue_Y, - png_fixed_point int_blue_Z)) -#endif - -#ifdef PNG_eXIf_SUPPORTED -PNG_EXPORT(246, png_uint_32, png_get_eXIf, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *exif)); -PNG_EXPORT(247, void, png_set_eXIf, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep exif)); - -PNG_EXPORT(248, png_uint_32, png_get_eXIf_1, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *num_exif, png_bytep *exif)); -PNG_EXPORT(249, void, png_set_eXIf_1, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 num_exif, png_bytep exif)); -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, - png_const_inforp info_ptr, double *file_gamma)) -PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_file_gamma)) -#endif - -#ifdef PNG_gAMA_SUPPORTED -PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, - png_inforp info_ptr, double file_gamma)) -PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, png_fixed_point int_file_gamma)) -#endif - -#ifdef PNG_hIST_SUPPORTED -PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_16p *hist)); -PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_uint_16p hist)); -#endif - -PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_method, - int *compression_method, int *filter_method)); - -PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_method, int compression_method, - int filter_method)); - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, - int *unit_type)); -#endif - -#ifdef PNG_oFFs_SUPPORTED -PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, - int unit_type)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, - png_int_32 *X1, int *type, int *nparams, png_charp *units, - png_charpp *params)); -#endif - -#ifdef PNG_pCAL_SUPPORTED -PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_const_charp units, png_charpp params)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -#endif - -#ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, - png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif - -PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, - png_inforp info_ptr, png_colorp *palette, int *num_palette)); - -PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, - png_inforp info_ptr, png_const_colorp palette, int num_palette)); - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_color_8p *sig_bit)); -#endif - -#ifdef PNG_sBIT_SUPPORTED -PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_color_8p sig_bit)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *file_srgb_intent)); -#endif - -#ifdef PNG_sRGB_SUPPORTED -PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, - png_inforp info_ptr, int srgb_intent)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_charpp name, int *compression_type, - png_bytepp profile, png_uint_32 *proflen)); -#endif - -#ifdef PNG_iCCP_SUPPORTED -PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_charp name, int compression_type, - png_const_bytep profile, png_uint_32 proflen)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_sPLT_tpp entries)); -#endif - -#ifdef PNG_sPLT_SUPPORTED -PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); -#endif - -#ifdef PNG_TEXT_SUPPORTED -/* png_get_text also returns the number of text chunks in *num_text */ -PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_textp *text_ptr, int *num_text)); -#endif - -/* Note while png_set_text() will accept a structure whose text, - * language, and translated keywords are NULL pointers, the structure - * returned by png_get_text will always contain regular - * zero-terminated C strings. They might be empty strings but - * they will never be NULL pointers. - */ - -#ifdef PNG_TEXT_SUPPORTED -PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_textp text_ptr, int num_text)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_timep *mod_time)); -#endif - -#ifdef PNG_tIME_SUPPORTED -PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_timep mod_time)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, - png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, - png_color_16p *trans_color)); -#endif - -#ifdef PNG_tRNS_SUPPORTED -PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, - png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, - png_const_color_16p trans_color)); -#endif - -#ifdef PNG_sCAL_SUPPORTED -PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, - png_const_inforp info_ptr, int *unit, double *width, double *height)) -#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ - defined(PNG_FLOATING_POINT_SUPPORTED) -/* NOTE: this API is currently implemented using floating point arithmetic, - * consequently it can only be used on systems with floating point support. - * In any case the range of values supported by png_fixed_point is small and it - * is highly recommended that png_get_sCAL_s be used instead. - */ -PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_fixed_point *width, png_fixed_point *height)) -#endif -PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, - (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, - png_charpp swidth, png_charpp sheight)); - -PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, double width, double height)) -PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, png_fixed_point width, - png_fixed_point height)) -PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, - png_inforp info_ptr, int unit, - png_const_charp swidth, png_const_charp sheight)); -#endif /* sCAL */ - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -/* Provide the default handling for all unknown chunks or, optionally, for - * specific unknown chunks. - * - * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was - * ignored and the default was used, the per-chunk setting only had an effect on - * write. If you wish to have chunk-specific handling on read in code that must - * work on earlier versions you must use a user chunk callback to specify the - * desired handling (keep or discard.) - * - * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The - * parameter is interpreted as follows: - * - * READ: - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Known chunks: do normal libpng processing, do not keep the chunk (but - * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) - * Unknown chunks: for a specific chunk use the global default, when used - * as the default discard the chunk data. - * PNG_HANDLE_CHUNK_NEVER: - * Discard the chunk data. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Keep the chunk data if the chunk is not critical else raise a chunk - * error. - * PNG_HANDLE_CHUNK_ALWAYS: - * Keep the chunk data. - * - * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, - * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent - * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks - * it simply resets the behavior to the libpng default. - * - * INTERACTION WITH USER CHUNK CALLBACKS: - * The per-chunk handling is always used when there is a png_user_chunk_ptr - * callback and the callback returns 0; the chunk is then always stored *unless* - * it is critical and the per-chunk setting is other than ALWAYS. Notice that - * the global default is *not* used in this case. (In effect the per-chunk - * value is incremented to at least IF_SAFE.) - * - * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and - * per-chunk defaults will be honored. If you want to preserve the current - * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE - * as the default - if you don't do this libpng 1.6 will issue a warning. - * - * If you want unhandled unknown chunks to be discarded in libpng 1.6 and - * earlier simply return '1' (handled). - * - * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: - * If this is *not* set known chunks will always be handled by libpng and - * will never be stored in the unknown chunk list. Known chunks listed to - * png_set_keep_unknown_chunks will have no effect. If it is set then known - * chunks listed with a keep other than AS_DEFAULT will *never* be processed - * by libpng, in addition critical chunks must either be processed by the - * callback or saved. - * - * The IHDR and IEND chunks must not be listed. Because this turns off the - * default handling for chunks that would otherwise be recognized the - * behavior of libpng transformations may well become incorrect! - * - * WRITE: - * When writing chunks the options only apply to the chunks specified by - * png_set_unknown_chunks (below), libpng will *always* write known chunks - * required by png_set_ calls and will always write the core critical chunks - * (as required for PLTE). - * - * Each chunk in the png_set_unknown_chunks list is looked up in the - * png_set_keep_unknown_chunks list to find the keep setting, this is then - * interpreted as follows: - * - * PNG_HANDLE_CHUNK_AS_DEFAULT: - * Write safe-to-copy chunks and write other chunks if the global - * default is set to _ALWAYS, otherwise don't write this chunk. - * PNG_HANDLE_CHUNK_NEVER: - * Do not write the chunk. - * PNG_HANDLE_CHUNK_IF_SAFE: - * Write the chunk if it is safe-to-copy, otherwise do not write it. - * PNG_HANDLE_CHUNK_ALWAYS: - * Write the chunk. - * - * Note that the default behavior is effectively the opposite of the read case - - * in read unknown chunks are not stored by default, in write they are written - * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different - * - on write the safe-to-copy bit is checked, on read the critical bit is - * checked and on read if the chunk is critical an error will be raised. - * - * num_chunks: - * =========== - * If num_chunks is positive, then the "keep" parameter specifies the manner - * for handling only those chunks appearing in the chunk_list array, - * otherwise the chunk list array is ignored. - * - * If num_chunks is 0 the "keep" parameter specifies the default behavior for - * unknown chunks, as described above. - * - * If num_chunks is negative, then the "keep" parameter specifies the manner - * for handling all unknown chunks plus all chunks recognized by libpng - * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to - * be processed by libpng. - */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, - int keep, png_const_bytep chunk_list, int num_chunks)); -#endif /* HANDLE_AS_UNKNOWN */ - -/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; - * the result is therefore true (non-zero) if special handling is required, - * false for the default handling. - */ -PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, - png_const_bytep chunk_name)); -#endif /* SET_UNKNOWN_CHUNKS */ - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_const_unknown_chunkp unknowns, - int num_unknowns)); - /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added - * unknowns to the location currently stored in the png_struct. This is - * invariably the wrong value on write. To fix this call the following API - * for each chunk in the list with the correct location. If you know your - * code won't be compiled on earlier versions you can rely on - * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing - * the correct thing. - */ - -PNG_EXPORT(175, void, png_set_unknown_chunk_location, - (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); - -PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, - png_inforp info_ptr, png_unknown_chunkpp entries)); -#endif - -/* Png_free_data() will turn off the "valid" flag for anything it frees. - * If you need to turn it off for a chunk that your application has freed, - * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); - */ -PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, - png_inforp info_ptr, int mask)); - -#ifdef PNG_INFO_IMAGE_SUPPORTED -/* The "params" pointer is currently not used and is for future expansion. */ -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#ifdef PNG_WRITE_SUPPORTED -PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, - int transforms, png_voidp params)); -#endif -#endif - -PNG_EXPORT(180, png_const_charp, png_get_copyright, - (png_const_structrp png_ptr)); -PNG_EXPORT(181, png_const_charp, png_get_header_ver, - (png_const_structrp png_ptr)); -PNG_EXPORT(182, png_const_charp, png_get_header_version, - (png_const_structrp png_ptr)); -PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, - (png_const_structrp png_ptr)); - -#ifdef PNG_MNG_FEATURES_SUPPORTED -PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, - png_uint_32 mng_features_permitted)); -#endif - -/* For use in png_set_keep_unknown, added to version 1.2.6 */ -#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 -#define PNG_HANDLE_CHUNK_NEVER 1 -#define PNG_HANDLE_CHUNK_IF_SAFE 2 -#define PNG_HANDLE_CHUNK_ALWAYS 3 -#define PNG_HANDLE_CHUNK_LAST 4 - -/* Strip the prepended error numbers ("#nnn ") from error and warning - * messages before passing them to the error or warning handler. - */ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, - png_uint_32 strip_mode)); -#endif - -/* Added in libpng-1.2.6 */ -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, - png_uint_32 user_width_max, png_uint_32 user_height_max)); -PNG_EXPORT(187, png_uint_32, png_get_user_width_max, - (png_const_structrp png_ptr)); -PNG_EXPORT(188, png_uint_32, png_get_user_height_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.0 */ -PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, - png_uint_32 user_chunk_cache_max)); -PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, - (png_const_structrp png_ptr)); -/* Added in libpng-1.4.1 */ -PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, - png_alloc_size_t user_chunk_cache_max)); -PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, - (png_const_structrp png_ptr)); -#endif - -#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) -PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, - (png_const_structrp png_ptr, png_const_inforp info_ptr)); - -PNG_FP_EXPORT(196, float, png_get_x_offset_inches, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, - png_const_inforp info_ptr)) -#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ -PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, - (png_const_structrp png_ptr, png_const_inforp info_ptr)) -#endif - -# ifdef PNG_pHYs_SUPPORTED -PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, - png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, - int *unit_type)); -# endif /* pHYs */ -#endif /* INCH_CONVERSIONS */ - -/* Added in libpng-1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); - -/* Removed from libpng 1.6; use png_get_io_chunk_type. */ -PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), - PNG_DEPRECATED) - -PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, - (png_const_structrp png_ptr)); - -/* The flags returned by png_get_io_state() are the following: */ -# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ -# define PNG_IO_READING 0x0001 /* currently reading */ -# define PNG_IO_WRITING 0x0002 /* currently writing */ -# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ -# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ -# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ -# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ -# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ -# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ -#endif /* IO_STATE */ - -/* Interlace support. The following macros are always defined so that if - * libpng interlace handling is turned off the macros may be used to handle - * interlaced images within the application. - */ -#define PNG_INTERLACE_ADAM7_PASSES 7 - -/* Two macros to return the first row and first column of the original, - * full, image which appears in a given pass. 'pass' is in the range 0 - * to 6 and the result is in the range 0 to 7. - */ -#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) -#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) - -/* A macro to return the offset between pixels in the output row for a pair of - * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that - * follows. Note that ROW_OFFSET is the offset from one row to the next whereas - * COL_OFFSET is from one column to the next, within a row. - */ -#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) -#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) - -/* Two macros to help evaluate the number of rows or columns in each - * pass. This is expressed as a shift - effectively log2 of the number or - * rows or columns in each 8x8 tile of the original image. - */ -#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) -#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) - -/* Hence two macros to determine the number of rows or columns in a given - * pass of an image given its height or width. In fact these macros may - * return non-zero even though the sub-image is empty, because the other - * dimension may be empty for a small image. - */ -#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) -#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) - -/* For the reader row callbacks (both progressive and sequential) it is - * necessary to find the row in the output image given a row in an interlaced - * image, so two more macros: - */ -#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ - (((y_in)<>(((7-(off))-(pass))<<2)) & 0xF) | \ - ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) - -#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ - ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) -#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ - ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { \ - png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ - * (png_uint_16)(alpha) \ - + (png_uint_16)(bg)*(png_uint_16)(255 \ - - (png_uint_16)(alpha)) + 128); \ - (composite) = (png_byte)(((temp + (temp >> 8)) >> 8) & 0xff); \ - } - -# define png_composite_16(composite, fg, alpha, bg) \ - { \ - png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ - * (png_uint_32)(alpha) \ - + (png_uint_32)(bg)*(65535 \ - - (png_uint_32)(alpha)) + 32768); \ - (composite) = (png_uint_16)(0xffff & ((temp + (temp >> 16)) >> 16)); \ - } - -#else /* Standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = \ - (png_byte)(0xff & (((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - 127) / 255)) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = \ - (png_uint_16)(0xffff & (((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ - 32767) / 65535)) -#endif /* READ_COMPOSITE_NODIV */ - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); -PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); -PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); -#endif - -PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, - png_const_bytep buf)); -/* No png_get_int_16 -- may be added if there's a real need for it. */ - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); -#endif -#ifdef PNG_SAVE_INT_32_SUPPORTED -PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); -/* No png_save_int_16 -- may be added if there's a real need for it. */ -#endif - -#ifdef PNG_USE_READ_MACROS -/* Inline macros to do direct reads of bytes from the input buffer. - * The png_get_int_32() routine assumes we are using two's complement - * format for negative values, which is almost certainly true. - */ -# define PNG_get_uint_32(buf) \ - (((png_uint_32)(*(buf)) << 24) + \ - ((png_uint_32)(*((buf) + 1)) << 16) + \ - ((png_uint_32)(*((buf) + 2)) << 8) + \ - ((png_uint_32)(*((buf) + 3)))) - - /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the - * function) incorrectly returned a value of type png_uint_32. - */ -# define PNG_get_uint_16(buf) \ - ((png_uint_16) \ - (((unsigned int)(*(buf)) << 8) + \ - ((unsigned int)(*((buf) + 1))))) - -# define PNG_get_int_32(buf) \ - ((png_int_32)((*(buf) & 0x80) \ - ? -((png_int_32)(((png_get_uint_32(buf)^0xffffffffU)+1U)&0x7fffffffU)) \ - : (png_int_32)png_get_uint_32(buf))) - -/* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, - * but defining a macro name prefixed with PNG_PREFIX. - */ -# ifndef PNG_PREFIX -# define png_get_uint_32(buf) PNG_get_uint_32(buf) -# define png_get_uint_16(buf) PNG_get_uint_16(buf) -# define png_get_int_32(buf) PNG_get_int_32(buf) -# endif -#else -# ifdef PNG_PREFIX - /* No macros; revert to the (redefined) function */ -# define PNG_get_uint_32 (png_get_uint_32) -# define PNG_get_uint_16 (png_get_uint_16) -# define PNG_get_int_32 (png_get_int_32) -# endif -#endif - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -PNG_EXPORT(242, void, png_set_check_for_invalid_index, - (png_structrp png_ptr, int allowed)); -# ifdef PNG_GET_PALETTE_MAX_SUPPORTED -PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, - png_const_infop info_ptr)); -# endif -#endif /* CHECK_FOR_INVALID_INDEX */ - -/******************************************************************************* - * Section 5: SIMPLIFIED API - ******************************************************************************* - * - * Please read the documentation in libpng-manual.txt (TODO: write said - * documentation) if you don't understand what follows. - * - * The simplified API hides the details of both libpng and the PNG file format - * itself. It allows PNG files to be read into a very limited number of - * in-memory bitmap formats or to be written from the same formats. If these - * formats do not accommodate your needs then you can, and should, use the more - * sophisticated APIs above - these support a wide variety of in-memory formats - * and a wide variety of sophisticated transformations to those formats as well - * as a wide variety of APIs to manipulate ancillary information. - * - * To read a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure (see below) on the stack, set the - * version field to PNG_IMAGE_VERSION and the 'opaque' pointer to NULL - * (this is REQUIRED, your program may crash if you don't do it.) - * 2) Call the appropriate png_image_begin_read... function. - * 3) Set the png_image 'format' member to the required sample format. - * 4) Allocate a buffer for the image and, if required, the color-map. - * 5) Call png_image_finish_read to read the image and, if required, the - * color-map into your buffers. - * - * There are no restrictions on the format of the PNG input itself; all valid - * color types, bit depths, and interlace methods are acceptable, and the - * input image is transformed as necessary to the requested in-memory format - * during the png_image_finish_read() step. The only caveat is that if you - * request a color-mapped image from a PNG that is full-color or makes - * complex use of an alpha channel the transformation is extremely lossy and the - * result may look terrible. - * - * To write a PNG file using the simplified API: - * - * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. - * 2) Initialize the members of the structure that describe the image, setting - * the 'format' member to the format of the image samples. - * 3) Call the appropriate png_image_write... function with a pointer to the - * image and, if necessary, the color-map to write the PNG data. - * - * png_image is a structure that describes the in-memory format of an image - * when it is being read or defines the in-memory format of an image that you - * need to write: - */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) - -#define PNG_IMAGE_VERSION 1 - -typedef struct png_control *png_controlp; -typedef struct -{ - png_controlp opaque; /* Initialize to NULL, free with png_image_free */ - png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ - png_uint_32 width; /* Image width in pixels (columns) */ - png_uint_32 height; /* Image height in pixels (rows) */ - png_uint_32 format; /* Image format as defined below */ - png_uint_32 flags; /* A bit mask containing informational flags */ - png_uint_32 colormap_entries; - /* Number of entries in the color-map */ - - /* In the event of an error or warning the following field will be set to a - * non-zero value and the 'message' field will contain a '\0' terminated - * string with the libpng error or warning message. If both warnings and - * an error were encountered, only the error is recorded. If there - * are multiple warnings, only the first one is recorded. - * - * The upper 30 bits of this value are reserved, the low two bits contain - * a value as follows: - */ -# define PNG_IMAGE_WARNING 1 -# define PNG_IMAGE_ERROR 2 - /* - * The result is a two-bit code such that a value more than 1 indicates - * a failure in the API just called: - * - * 0 - no warning or error - * 1 - warning - * 2 - error - * 3 - error preceded by warning - */ -# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) - - png_uint_32 warning_or_error; - - char message[64]; -} png_image, *png_imagep; - -/* The samples of the image have one to four channels whose components have - * original values in the range 0 to 1.0: - * - * 1: A single gray or luminance channel (G). - * 2: A gray/luminance channel and an alpha channel (GA). - * 3: Three red, green, blue color channels (RGB). - * 4: Three color channels and an alpha channel (RGBA). - * - * The components are encoded in one of two ways: - * - * a) As a small integer, value 0..255, contained in a single byte. For the - * alpha channel the original value is simply value/255. For the color or - * luminance channels the value is encoded according to the sRGB specification - * and matches the 8-bit format expected by typical display devices. - * - * The color/gray channels are not scaled (pre-multiplied) by the alpha - * channel and are suitable for passing to color management software. - * - * b) As a value in the range 0..65535, contained in a 2-byte integer. All - * channels can be converted to the original value by dividing by 65535; all - * channels are linear. Color channels use the RGB encoding (RGB end-points) of - * the sRGB specification. This encoding is identified by the - * PNG_FORMAT_FLAG_LINEAR flag below. - * - * When the simplified API needs to convert between sRGB and linear colorspaces, - * the actual sRGB transfer curve defined in the sRGB specification (see the - * article at ) is used, not the gamma=1/2.2 - * approximation used elsewhere in libpng. - * - * When an alpha channel is present it is expected to denote pixel coverage - * of the color or luminance channels and is returned as an associated alpha - * channel: the color/gray channels are scaled (pre-multiplied) by the alpha - * value. - * - * The samples are either contained directly in the image data, between 1 and 8 - * bytes per pixel according to the encoding, or are held in a color-map indexed - * by bytes in the image data. In the case of a color-map the color-map entries - * are individual samples, encoded as above, and the image data has one byte per - * pixel to select the relevant sample from the color-map. - */ - -/* PNG_FORMAT_* - * - * #defines to be used in png_image::format. Each #define identifies a - * particular layout of sample data and, if present, alpha values. There are - * separate defines for each of the two component encodings. - * - * A format is built up using single bit flag values. All combinations are - * valid. Formats can be built up from the flag values or you can use one of - * the predefined values below. When testing formats always use the FORMAT_FLAG - * macros to test for individual features - future versions of the library may - * add new flags. - * - * When reading or writing color-mapped images the format should be set to the - * format of the entries in the color-map then png_image_{read,write}_colormap - * called to read or write the color-map and set the format correctly for the - * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! - * - * NOTE: libpng can be built with particular features disabled. If you see - * compiler errors because the definition of one of the following flags has been - * compiled out it is because libpng does not have the required support. It is - * possible, however, for the libpng configuration to enable the format on just - * read or just write; in that case you may see an error at run time. You can - * guard against this by checking for the definition of the appropriate - * "_SUPPORTED" macro, one of: - * - * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED - */ -#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ -#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ -#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2-byte channels else 1-byte */ -#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ - -#ifdef PNG_FORMAT_BGR_SUPPORTED -# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ -#endif - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED -# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ -#endif - -#define PNG_FORMAT_FLAG_ASSOCIATED_ALPHA 0x40U /* alpha channel is associated */ - -/* Commonly used formats have predefined macros. - * - * First the single byte (sRGB) formats: - */ -#define PNG_FORMAT_GRAY 0 -#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA -#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR -#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) -#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) -#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) - -/* Then the linear 2-byte formats. When naming these "Y" is used to - * indicate a luminance (gray) channel. - */ -#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR -#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) -#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) -#define PNG_FORMAT_LINEAR_RGB_ALPHA \ - (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) - -/* With color-mapped formats the image data is one byte for each pixel, the byte - * is an index into the color-map which is formatted as above. To obtain a - * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP - * to one of the above definitions, or you can use one of the definitions below. - */ -#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) -#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) - -/* PNG_IMAGE macros - * - * These are convenience macros to derive information from a png_image - * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the - * actual image sample values - either the entries in the color-map or the - * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values - * for the pixels and will always return 1 for color-mapped formats. The - * remaining macros return information about the rows in the image and the - * complete image. - * - * NOTE: All the macros that take a png_image::format parameter are compile time - * constants if the format parameter is, itself, a constant. Therefore these - * macros can be used in array declarations and case labels where required. - * Similarly the macros are also pre-processor constants (sizeof is not used) so - * they can be used in #if tests. - * - * First the information about the samples. - */ -#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ - (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) - /* Return the total number of channels in a given format: 1..4 */ - -#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ - ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) - /* Return the size in bytes of a single component of a pixel or color-map - * entry (as appropriate) in the image: 1 or 2. - */ - -#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) - /* This is the size of the sample data for one sample. If the image is - * color-mapped it is the size of one color-map entry (and image pixels are - * one byte in size), otherwise it is the size of one image pixel. - */ - -#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ - (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) - /* The maximum size of the color-map required by the format expressed in a - * count of components. This can be used to compile-time allocate a - * color-map: - * - * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; - * - * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; - * - * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the - * information from one of the png_image_begin_read_ APIs and dynamically - * allocate the required memory. - */ - -/* Corresponding information about the pixels */ -#define PNG_IMAGE_PIXEL_(test,fmt)\ - (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) - -#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) - /* The number of separate channels (components) in a pixel; 1 for a - * color-mapped image. - */ - -#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ - PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) - /* The size, in bytes, of each component in a pixel; 1 for a color-mapped - * image. - */ - -#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) - /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ - -/* Information about the whole row, or whole image */ -#define PNG_IMAGE_ROW_STRIDE(image)\ - (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) - /* Return the total number of components in a single row of the image; this - * is the minimum 'row stride', the minimum count of components between each - * row. For a color-mapped image this is the minimum number of bytes in a - * row. - * - * WARNING: this macro overflows for some images with more than one component - * and very large image widths. libpng will refuse to process an image where - * this macro would overflow. - */ - -#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ - (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) - /* Return the size, in bytes, of an image buffer given a png_image and a row - * stride - the number of components to leave space for in each row. - * - * WARNING: this macro overflows a 32-bit integer for some large PNG images, - * libpng will refuse to process an image where such an overflow would occur. - */ - -#define PNG_IMAGE_SIZE(image)\ - PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) - /* Return the size, in bytes, of the image in memory given just a png_image; - * the row stride is the minimum stride required for the image. - */ - -#define PNG_IMAGE_COLORMAP_SIZE(image)\ - (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) - /* Return the size, in bytes, of the color-map of this image. If the image - * format is not a color-map format this will return a size sufficient for - * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if - * you don't want to allocate a color-map in this case. - */ - -/* PNG_IMAGE_FLAG_* - * - * Flags containing additional information about the image are held in the - * 'flags' field of png_image. - */ -#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 - /* This indicates that the RGB values of the in-memory bitmap do not - * correspond to the red, green and blue end-points defined by sRGB. - */ - -#define PNG_IMAGE_FLAG_FAST 0x02 - /* On write emphasise speed over compression; the resultant PNG file will be - * larger but will be produced significantly faster, particular for large - * images. Do not use this option for images which will be distributed, only - * used it when producing intermediate files that will be read back in - * repeatedly. For a typical 24-bit image the option will double the read - * speed at the cost of increasing the image size by 25%, however for many - * more compressible images the PNG file can be 10 times larger with only a - * slight speed gain. - */ - -#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 - /* On read if the image is a 16-bit per component image and there is no gAMA - * or sRGB chunk assume that the components are sRGB encoded. Notice that - * images output by the simplified API always have gamma information; setting - * this flag only affects the interpretation of 16-bit images from an - * external source. It is recommended that the application expose this flag - * to the user; the user can normally easily recognize the difference between - * linear and sRGB encoding. This flag has no effect on write - the data - * passed to the write APIs must have the correct encoding (as defined - * above.) - * - * If the flag is not set (the default) input 16-bit per component data is - * assumed to be linear. - * - * NOTE: the flag can only be set after the png_image_begin_read_ call, - * because that call initializes the 'flags' field. - */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* READ APIs - * --------- - * - * The png_image passed to the read APIs must have been initialized by setting - * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) - */ -#ifdef PNG_STDIO_SUPPORTED -PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, - const char *file_name)); - /* The named file is opened for read and the image header is filled in - * from the PNG header in the file. - */ - -PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, - FILE* file)); - /* The PNG header is read from the stdio FILE object. */ -#endif /* STDIO */ - -PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, - png_const_voidp memory, size_t size)); - /* The PNG header is read from the given memory buffer. */ - -PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, - png_const_colorp background, void *buffer, png_int_32 row_stride, - void *colormap)); - /* Finish reading the image into the supplied buffer and clean up the - * png_image structure. - * - * row_stride is the step, in byte or 2-byte units as appropriate, - * between adjacent rows. A positive stride indicates that the top-most row - * is first in the buffer - the normal top-down arrangement. A negative - * stride indicates that the bottom-most row is first in the buffer. - * - * background need only be supplied if an alpha channel must be removed from - * a png_byte format and the removal is to be done by compositing on a solid - * color; otherwise it may be NULL and any composition will be done directly - * onto the buffer. The value is an sRGB color to use for the background, - * for grayscale output the green channel is used. - * - * background must be supplied when an alpha channel must be removed from a - * single byte color-mapped output format, in other words if: - * - * 1) The original format from png_image_begin_read_from_* had - * PNG_FORMAT_FLAG_ALPHA set. - * 2) The format set by the application does not. - * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and - * PNG_FORMAT_FLAG_LINEAR *not* set. - * - * For linear output removing the alpha channel is always done by compositing - * on black and background is ignored. - * - * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must - * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. - * image->colormap_entries will be updated to the actual number of entries - * written to the colormap; this may be less than the original value. - */ - -PNG_EXPORT(238, void, png_image_free, (png_imagep image)); - /* Free any data allocated by libpng in image->opaque, setting the pointer to - * NULL. May be called at any time after the structure is initialized. - */ -#endif /* SIMPLIFIED_READ */ - -#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -/* WRITE APIS - * ---------- - * For write you must initialize a png_image structure to describe the image to - * be written. To do this use memset to set the whole structure to 0 then - * initialize fields describing your image. - * - * version: must be set to PNG_IMAGE_VERSION - * opaque: must be initialized to NULL - * width: image width in pixels - * height: image height in rows - * format: the format of the data (image and color-map) you wish to write - * flags: set to 0 unless one of the defined flags applies; set - * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB - * values do not correspond to the colors in sRGB. - * colormap_entries: set to the number of entries in the color-map (0 to 256) - */ -#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, - const char *file, int convert_to_8bit, const void *buffer, - png_int_32 row_stride, const void *colormap)); - /* Write the image to the named file. */ - -PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, - int convert_to_8_bit, const void *buffer, png_int_32 row_stride, - const void *colormap)); - /* Write the image to the given (FILE*). */ -#endif /* SIMPLIFIED_WRITE_STDIO */ - -/* With all write APIs if image is in one of the linear formats with 16-bit - * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG - * gamma encoded according to the sRGB specification, otherwise a 16-bit linear - * encoded PNG file is written. - * - * With color-mapped data formats the colormap parameter point to a color-map - * with at least image->colormap_entries encoded in the specified format. If - * the format is linear the written PNG color-map will be converted to sRGB - * regardless of the convert_to_8_bit flag. - * - * With all APIs row_stride is handled as in the read APIs - it is the spacing - * from one row to the next in component sized units (1 or 2 bytes) and if - * negative indicates a bottom-up row layout in the buffer. If row_stride is - * zero, libpng will calculate it for you from the image width and number of - * channels. - * - * Note that the write API does not support interlacing, sub-8-bit pixels or - * most ancillary chunks. If you need to write text chunks (e.g. for copyright - * notices) you need to use one of the other APIs. - */ - -PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory, - png_alloc_size_t * PNG_RESTRICT memory_bytes, int convert_to_8_bit, - const void *buffer, png_int_32 row_stride, const void *colormap)); - /* Write the image to the given memory buffer. The function both writes the - * whole PNG data stream to *memory and updates *memory_bytes with the count - * of bytes written. - * - * 'memory' may be NULL. In this case *memory_bytes is not read however on - * success the number of bytes which would have been written will still be - * stored in *memory_bytes. On failure *memory_bytes will contain 0. - * - * If 'memory' is not NULL it must point to memory[*memory_bytes] of - * writeable memory. - * - * If the function returns success memory[*memory_bytes] (if 'memory' is not - * NULL) contains the written PNG data. *memory_bytes will always be less - * than or equal to the original value. - * - * If the function returns false and *memory_bytes was not changed an error - * occurred during write. If *memory_bytes was changed, or is not 0 if - * 'memory' was NULL, the write would have succeeded but for the memory - * buffer being too small. *memory_bytes contains the required number of - * bytes and will be bigger that the original value. - */ - -#define png_image_write_get_memory_size(image, size, convert_to_8_bit, buffer,\ - row_stride, colormap)\ - png_image_write_to_memory(&(image), 0, &(size), convert_to_8_bit, buffer,\ - row_stride, colormap) - /* Return the amount of memory in 'size' required to compress this image. - * The png_image structure 'image' must be filled in as in the above - * function and must not be changed before the actual write call, the buffer - * and all other parameters must also be identical to that in the final - * write call. The 'size' variable need not be initialized. - * - * NOTE: the macro returns true/false, if false is returned 'size' will be - * set to zero and the write failed and probably will fail if tried again. - */ - -/* You can pre-allocate the buffer by making sure it is of sufficient size - * regardless of the amount of compression achieved. The buffer size will - * always be bigger than the original image and it will never be filled. The - * following macros are provided to assist in allocating the buffer. - */ -#define PNG_IMAGE_DATA_SIZE(image) (PNG_IMAGE_SIZE(image)+(image).height) - /* The number of uncompressed bytes in the PNG byte encoding of the image; - * uncompressing the PNG IDAT data will give this number of bytes. - * - * NOTE: while PNG_IMAGE_SIZE cannot overflow for an image in memory this - * macro can because of the extra bytes used in the PNG byte encoding. You - * need to avoid this macro if your image size approaches 2^30 in width or - * height. The same goes for the remainder of these macros; they all produce - * bigger numbers than the actual in-memory image size. - */ -#ifndef PNG_ZLIB_MAX_SIZE -# define PNG_ZLIB_MAX_SIZE(b) ((b)+(((b)+7U)>>3)+(((b)+63U)>>6)+11U) - /* An upper bound on the number of compressed bytes given 'b' uncompressed - * bytes. This is based on deflateBounds() in zlib; different - * implementations of zlib compression may conceivably produce more data so - * if your zlib implementation is not zlib itself redefine this macro - * appropriately. - */ -#endif - -#define PNG_IMAGE_COMPRESSED_SIZE_MAX(image)\ - PNG_ZLIB_MAX_SIZE((png_alloc_size_t)PNG_IMAGE_DATA_SIZE(image)) - /* An upper bound on the size of the data in the PNG IDAT chunks. */ - -#define PNG_IMAGE_PNG_SIZE_MAX_(image, image_size)\ - ((8U/*sig*/+25U/*IHDR*/+16U/*gAMA*/+44U/*cHRM*/+12U/*IEND*/+\ - (((image).format&PNG_FORMAT_FLAG_COLORMAP)?/*colormap: PLTE, tRNS*/\ - 12U+3U*(image).colormap_entries/*PLTE data*/+\ - (((image).format&PNG_FORMAT_FLAG_ALPHA)?\ - 12U/*tRNS*/+(image).colormap_entries:0U):0U)+\ - 12U)+(12U*((image_size)/PNG_ZBUF_SIZE))/*IDAT*/+(image_size)) - /* A helper for the following macro; if your compiler cannot handle the - * following macro use this one with the result of - * PNG_IMAGE_COMPRESSED_SIZE_MAX(image) as the second argument (most - * compilers should handle this just fine.) - */ - -#define PNG_IMAGE_PNG_SIZE_MAX(image)\ - PNG_IMAGE_PNG_SIZE_MAX_(image, PNG_IMAGE_COMPRESSED_SIZE_MAX(image)) - /* An upper bound on the total length of the PNG data stream for 'image'. - * The result is of type png_alloc_size_t, on 32-bit systems this may - * overflow even though PNG_IMAGE_DATA_SIZE does not overflow; the write will - * run out of buffer space but return a corrected size which should work. - */ -#endif /* SIMPLIFIED_WRITE */ -/******************************************************************************* - * END OF SIMPLIFIED API - ******************************************************************************/ -#endif /* SIMPLIFIED_{READ|WRITE} */ - -/******************************************************************************* - * Section 6: IMPLEMENTATION OPTIONS - ******************************************************************************* - * - * Support for arbitrary implementation-specific optimizations. The API allows - * particular options to be turned on or off. 'Option' is the number of the - * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given - * by the PNG_OPTION_ defines below. - * - * HARDWARE: normally hardware capabilities, such as the Intel SSE instructions, - * are detected at run time, however sometimes it may be impossible - * to do this in user mode, in which case it is necessary to discover - * the capabilities in an OS specific way. Such capabilities are - * listed here when libpng has support for them and must be turned - * ON by the application if present. - * - * SOFTWARE: sometimes software optimizations actually result in performance - * decrease on some architectures or systems, or with some sets of - * PNG images. 'Software' options allow such optimizations to be - * selected at run time. - */ -#ifdef PNG_SET_OPTION_SUPPORTED -#ifdef PNG_ARM_NEON_API_SUPPORTED -# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ -#endif -#define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ -#define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ -#ifdef PNG_MIPS_MSA_API_SUPPORTED -# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */ -#endif -#define PNG_IGNORE_ADLER32 8 -#ifdef PNG_POWERPC_VSX_API_SUPPORTED -# define PNG_POWERPC_VSX 10 /* HARDWARE: PowerPC VSX SIMD instructions supported */ -#endif -#define PNG_OPTION_NEXT 12 /* Next option - numbers must be even */ - -/* Return values: NOTE: there are four values and 'off' is *not* zero */ -#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ -#define PNG_OPTION_INVALID 1 /* Option number out of range */ -#define PNG_OPTION_OFF 2 -#define PNG_OPTION_ON 3 - -PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, - int onoff)); -#endif /* SET_OPTION */ - -/******************************************************************************* - * END OF HARDWARE AND SOFTWARE OPTIONS - ******************************************************************************/ - -/* Maintainer: Put new public prototypes here ^, in libpng.3, in project - * defs, and in scripts/symbols.def. - */ - -/* The last ordinal number (this is the *last* one already used; the next - * one to use is one more than this.) - */ -#ifdef PNG_EXPORT_LAST_ORDINAL - PNG_EXPORT_LAST_ORDINAL(249); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -/* Do not put anything past this line */ -#endif /* PNG_H */ diff --git a/Externals/libpng/png/png.vcxproj b/Externals/libpng/png/png.vcxproj deleted file mode 100644 index 90c3557c0e..0000000000 --- a/Externals/libpng/png/png.vcxproj +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Externals/libpng/pngconf.h b/Externals/libpng/pngconf.h deleted file mode 100644 index 927a769dbe..0000000000 --- a/Externals/libpng/pngconf.h +++ /dev/null @@ -1,623 +0,0 @@ - -/* pngconf.h - machine-configurable file for libpng - * - * libpng version 1.6.37 - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - -#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ - -/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C - * compiler for correct compilation. The following header files are required by - * the standard. If your compiler doesn't provide these header files, or they - * do not match the standard, you will need to provide/improve them. - */ -#include -#include - -/* Library header files. These header files are all defined by ISOC90; libpng - * expects conformant implementations, however, an ISOC90 conformant system need - * not provide these header files if the functionality cannot be implemented. - * In this case it will be necessary to disable the relevant parts of libpng in - * the build of pnglibconf.h. - * - * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not - * include this unnecessary header file. - */ - -#ifdef PNG_STDIO_SUPPORTED - /* Required for the definition of FILE: */ -# include -#endif - -#ifdef PNG_SETJMP_SUPPORTED - /* Required for the definition of jmp_buf and the declaration of longjmp: */ -# include -#endif - -#ifdef PNG_CONVERT_tIME_SUPPORTED - /* Required for struct tm: */ -# include -#endif - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -/* Prior to 1.6.0, it was possible to turn off 'const' in declarations, - * using PNG_NO_CONST. This is no longer supported. - */ -#define PNG_CONST const /* backward compatibility only */ - -/* This controls optimization of the reading of 16-bit and 32-bit - * values from PNG files. It can be set on a per-app-file basis: it - * just changes whether a macro is used when the function is called. - * The library builder sets the default; if read functions are not - * built into the library the macro implementation is forced on. - */ -#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED -# define PNG_USE_READ_MACROS -#endif -#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) -# if PNG_DEFAULT_READ_MACROS -# define PNG_USE_READ_MACROS -# endif -#endif - -/* COMPILER SPECIFIC OPTIONS. - * - * These options are provided so that a variety of difficult compilers - * can be used. Some are fixed at build time (e.g. PNG_API_RULE - * below) but still have compiler specific implementations, others - * may be changed on a per-file basis when compiling against libpng. - */ - -/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect - * against legacy (pre ISOC90) compilers that did not understand function - * prototypes. It is not required for modern C compilers. - */ -#ifndef PNGARG -# define PNGARG(arglist) arglist -#endif - -/* Function calling conventions. - * ============================= - * Normally it is not necessary to specify to the compiler how to call - * a function - it just does it - however on x86 systems derived from - * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems - * and some others) there are multiple ways to call a function and the - * default can be changed on the compiler command line. For this reason - * libpng specifies the calling convention of every exported function and - * every function called via a user supplied function pointer. This is - * done in this file by defining the following macros: - * - * PNGAPI Calling convention for exported functions. - * PNGCBAPI Calling convention for user provided (callback) functions. - * PNGCAPI Calling convention used by the ANSI-C library (required - * for longjmp callbacks and sometimes used internally to - * specify the calling convention for zlib). - * - * These macros should never be overridden. If it is necessary to - * change calling convention in a private build this can be done - * by setting PNG_API_RULE (which defaults to 0) to one of the values - * below to select the correct 'API' variants. - * - * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. - * This is correct in every known environment. - * PNG_API_RULE=1 Use the operating system convention for PNGAPI and - * the 'C' calling convention (from PNGCAPI) for - * callbacks (PNGCBAPI). This is no longer required - * in any known environment - if it has to be used - * please post an explanation of the problem to the - * libpng mailing list. - * - * These cases only differ if the operating system does not use the C - * calling convention, at present this just means the above cases - * (x86 DOS/Windows systems) and, even then, this does not apply to - * Cygwin running on those systems. - * - * Note that the value must be defined in pnglibconf.h so that what - * the application uses to call the library matches the conventions - * set when building the library. - */ - -/* Symbol export - * ============= - * When building a shared library it is almost always necessary to tell - * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' - * is used to mark the symbols. On some systems these symbols can be - * extracted at link time and need no special processing by the compiler, - * on other systems the symbols are flagged by the compiler and just - * the declaration requires a special tag applied (unfortunately) in a - * compiler dependent way. Some systems can do either. - * - * A small number of older systems also require a symbol from a DLL to - * be flagged to the program that calls it. This is a problem because - * we do not know in the header file included by application code that - * the symbol will come from a shared library, as opposed to a statically - * linked one. For this reason the application must tell us by setting - * the magic flag PNG_USE_DLL to turn on the special processing before - * it includes png.h. - * - * Four additional macros are used to make this happen: - * - * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from - * the build or imported if PNG_USE_DLL is set - compiler - * and system specific. - * - * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to - * 'type', compiler specific. - * - * PNG_DLL_EXPORT Set to the magic to use during a libpng build to - * make a symbol exported from the DLL. Not used in the - * public header files; see pngpriv.h for how it is used - * in the libpng build. - * - * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come - * from a DLL - used to define PNG_IMPEXP when - * PNG_USE_DLL is set. - */ - -/* System specific discovery. - * ========================== - * This code is used at build time to find PNG_IMPEXP, the API settings - * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL - * import processing is possible. On Windows systems it also sets - * compiler-specific macros to the values required to change the calling - * conventions of the various functions. - */ -#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ - defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) - /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or - * MinGW on any architecture currently supported by Windows. Also includes - * Watcom builds but these need special treatment because they are not - * compatible with GCC or Visual C because of different calling conventions. - */ -# if PNG_API_RULE == 2 - /* If this line results in an error, either because __watcall is not - * understood or because of a redefine just below you cannot use *this* - * build of the library with the compiler you are using. *This* build was - * build using Watcom and applications must also be built using Watcom! - */ -# define PNGCAPI __watcall -# endif - -# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) -# define PNGCAPI __cdecl -# if PNG_API_RULE == 1 - /* If this line results in an error __stdcall is not understood and - * PNG_API_RULE should not have been set to '1'. - */ -# define PNGAPI __stdcall -# endif -# else - /* An older compiler, or one not detected (erroneously) above, - * if necessary override on the command line to get the correct - * variants for the compiler. - */ -# ifndef PNGCAPI -# define PNGCAPI _cdecl -# endif -# if PNG_API_RULE == 1 && !defined(PNGAPI) -# define PNGAPI _stdcall -# endif -# endif /* compiler/api */ - - /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ - -# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) -# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" -# endif - -# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ - (defined(__BORLANDC__) && __BORLANDC__ < 0x500) - /* older Borland and MSC - * compilers used '__export' and required this to be after - * the type. - */ -# ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP -# endif -# define PNG_DLL_EXPORT __export -# else /* newer compiler */ -# define PNG_DLL_EXPORT __declspec(dllexport) -# ifndef PNG_DLL_IMPORT -# define PNG_DLL_IMPORT __declspec(dllimport) -# endif -# endif /* compiler */ - -#else /* !Windows */ -# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) -# define PNGAPI _System -# else /* !Windows/x86 && !OS/2 */ - /* Use the defaults, or define PNG*API on the command line (but - * this will have to be done for every compile!) - */ -# endif /* other system, !OS/2 */ -#endif /* !Windows/x86 */ - -/* Now do all the defaulting . */ -#ifndef PNGCAPI -# define PNGCAPI -#endif -#ifndef PNGCBAPI -# define PNGCBAPI PNGCAPI -#endif -#ifndef PNGAPI -# define PNGAPI PNGCAPI -#endif - -/* PNG_IMPEXP may be set on the compilation system command line or (if not set) - * then in an internal header file when building the library, otherwise (when - * using the library) it is set here. - */ -#ifndef PNG_IMPEXP -# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) - /* This forces use of a DLL, disallowing static linking */ -# define PNG_IMPEXP PNG_DLL_IMPORT -# endif - -# ifndef PNG_IMPEXP -# define PNG_IMPEXP -# endif -#endif - -/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat - * 'attributes' as a storage class - the attributes go at the start of the - * function definition, and attributes are always appended regardless of the - * compiler. This considerably simplifies these macros but may cause problems - * if any compilers both need function attributes and fail to handle them as - * a storage class (this is unlikely.) - */ -#ifndef PNG_FUNCTION -# define PNG_FUNCTION(type, name, args, attributes) attributes type name args -#endif - -#ifndef PNG_EXPORT_TYPE -# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type -#endif - - /* The ordinal value is only relevant when preprocessing png.h for symbol - * table entries, so we discard it here. See the .dfn files in the - * scripts directory. - */ - -#ifndef PNG_EXPORTA -# define PNG_EXPORTA(ordinal, type, name, args, attributes) \ - PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ - PNG_LINKAGE_API attributes) -#endif - -/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, - * so make something non-empty to satisfy the requirement: - */ -#define PNG_EMPTY /*empty list*/ - -#define PNG_EXPORT(ordinal, type, name, args) \ - PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) - -/* Use PNG_REMOVED to comment out a removed interface. */ -#ifndef PNG_REMOVED -# define PNG_REMOVED(ordinal, type, name, args, attributes) -#endif - -#ifndef PNG_CALLBACK -# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) -#endif - -/* Support for compiler specific function attributes. These are used - * so that where compiler support is available incorrect use of API - * functions in png.h will generate compiler warnings. - * - * Added at libpng-1.2.41. - */ - -#ifndef PNG_NO_PEDANTIC_WARNINGS -# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED -# define PNG_PEDANTIC_WARNINGS_SUPPORTED -# endif -#endif - -#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED - /* Support for compiler specific function attributes. These are used - * so that where compiler support is available, incorrect use of API - * functions in png.h will generate compiler warnings. Added at libpng - * version 1.2.41. Disabling these removes the warnings but may also produce - * less efficient code. - */ -# if defined(__clang__) && defined(__has_attribute) - /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ -# if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# if !defined(PNG_PRIVATE) -# ifdef __has_extension -# if __has_extension(attribute_unavailable_with_message) -# define PNG_PRIVATE __attribute__((__unavailable__(\ - "This function is not exported by libpng."))) -# endif -# endif -# endif -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif - -# elif defined(__GNUC__) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __attribute__((__noreturn__)) -# endif -# if __GNUC__ >= 3 -# ifndef PNG_ALLOCATED -# define PNG_ALLOCATED __attribute__((__malloc__)) -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __attribute__((__deprecated__)) -# endif -# ifndef PNG_PRIVATE -# if 0 /* Doesn't work so we use deprecated instead*/ -# define PNG_PRIVATE \ - __attribute__((warning("This function is not exported by libpng."))) -# else -# define PNG_PRIVATE \ - __attribute__((__deprecated__)) -# endif -# endif -# if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ -# endif /* __GNUC__ >= 3 */ - -# elif defined(_MSC_VER) && (_MSC_VER >= 1300) -# ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* not supported */ -# endif -# ifndef PNG_NORETURN -# define PNG_NORETURN __declspec(noreturn) -# endif -# ifndef PNG_ALLOCATED -# if (_MSC_VER >= 1400) -# define PNG_ALLOCATED __declspec(restrict) -# endif -# endif -# ifndef PNG_DEPRECATED -# define PNG_DEPRECATED __declspec(deprecated) -# endif -# ifndef PNG_PRIVATE -# define PNG_PRIVATE __declspec(deprecated) -# endif -# ifndef PNG_RESTRICT -# if (_MSC_VER >= 1400) -# define PNG_RESTRICT __restrict -# endif -# endif - -# elif defined(__WATCOMC__) -# ifndef PNG_RESTRICT -# define PNG_RESTRICT __restrict -# endif -# endif -#endif /* PNG_PEDANTIC_WARNINGS */ - -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED /* Use of this function is deprecated */ -#endif -#ifndef PNG_USE_RESULT -# define PNG_USE_RESULT /* The result of this function must be checked */ -#endif -#ifndef PNG_NORETURN -# define PNG_NORETURN /* This function does not return */ -#endif -#ifndef PNG_ALLOCATED -# define PNG_ALLOCATED /* The result of the function is new memory */ -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE /* This is a private libpng function */ -#endif -#ifndef PNG_RESTRICT -# define PNG_RESTRICT /* The C99 "restrict" feature */ -#endif - -#ifndef PNG_FP_EXPORT /* A floating point API. */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No floating point APIs */ -# define PNG_FP_EXPORT(ordinal, type, name, args) -# endif -#endif -#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ -# ifdef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_EXPORT(ordinal, type, name, args); -# else /* No fixed point APIs */ -# define PNG_FIXED_EXPORT(ordinal, type, name, args) -# endif -#endif - -#ifndef PNG_BUILDING_SYMBOL_TABLE -/* Some typedefs to get us started. These should be safe on most of the common - * platforms. - * - * png_uint_32 and png_int_32 may, currently, be larger than required to hold a - * 32-bit value however this is not normally advisable. - * - * png_uint_16 and png_int_16 should always be two bytes in size - this is - * verified at library build time. - * - * png_byte must always be one byte in size. - * - * The checks below use constants from limits.h, as defined by the ISOC90 - * standard. - */ -#if CHAR_BIT == 8 && UCHAR_MAX == 255 - typedef unsigned char png_byte; -#else -# error "libpng requires 8-bit bytes" -#endif - -#if INT_MIN == -32768 && INT_MAX == 32767 - typedef int png_int_16; -#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 - typedef short png_int_16; -#else -# error "libpng requires a signed 16-bit type" -#endif - -#if UINT_MAX == 65535 - typedef unsigned int png_uint_16; -#elif USHRT_MAX == 65535 - typedef unsigned short png_uint_16; -#else -# error "libpng requires an unsigned 16-bit type" -#endif - -#if INT_MIN < -2147483646 && INT_MAX > 2147483646 - typedef int png_int_32; -#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 - typedef long int png_int_32; -#else -# error "libpng requires a signed 32-bit (or more) type" -#endif - -#if UINT_MAX > 4294967294U - typedef unsigned int png_uint_32; -#elif ULONG_MAX > 4294967294U - typedef unsigned long int png_uint_32; -#else -# error "libpng requires an unsigned 32-bit (or more) type" -#endif - -/* Prior to 1.6.0, it was possible to disable the use of size_t and ptrdiff_t. - * From 1.6.0 onwards, an ISO C90 compiler, as well as a standard-compliant - * behavior of sizeof and ptrdiff_t are required. - * The legacy typedefs are provided here for backwards compatibility. - */ -typedef size_t png_size_t; -typedef ptrdiff_t png_ptrdiff_t; - -/* libpng needs to know the maximum value of 'size_t' and this controls the - * definition of png_alloc_size_t, below. This maximum value of size_t limits - * but does not control the maximum allocations the library makes - there is - * direct application control of this through png_set_user_limits(). - */ -#ifndef PNG_SMALL_SIZE_T - /* Compiler specific tests for systems where size_t is known to be less than - * 32 bits (some of these systems may no longer work because of the lack of - * 'far' support; see above.) - */ -# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ - (defined(_MSC_VER) && defined(MAXSEG_64K)) -# define PNG_SMALL_SIZE_T -# endif -#endif - -/* png_alloc_size_t is guaranteed to be no smaller than size_t, and no smaller - * than png_uint_32. Casts from size_t or png_uint_32 to png_alloc_size_t are - * not necessary; in fact, it is recommended not to use them at all, so that - * the compiler can complain when something turns out to be problematic. - * - * Casts in the other direction (from png_alloc_size_t to size_t or - * png_uint_32) should be explicitly applied; however, we do not expect to - * encounter practical situations that require such conversions. - * - * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than - * 4294967295 - i.e. less than the maximum value of png_uint_32. - */ -#ifdef PNG_SMALL_SIZE_T - typedef png_uint_32 png_alloc_size_t; -#else - typedef size_t png_alloc_size_t; -#endif - -/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler - * implementations of Intel CPU specific support of user-mode segmented address - * spaces, where 16-bit pointers address more than 65536 bytes of memory using - * separate 'segment' registers. The implementation requires two different - * types of pointer (only one of which includes the segment value.) - * - * If required this support is available in version 1.2 of libpng and may be - * available in versions through 1.5, although the correctness of the code has - * not been verified recently. - */ - -/* Typedef for floating-point numbers that are converted to fixed-point with a - * multiple of 100,000, e.g., gamma - */ -typedef png_int_32 png_fixed_point; - -/* Add typedefs for pointers */ -typedef void * png_voidp; -typedef const void * png_const_voidp; -typedef png_byte * png_bytep; -typedef const png_byte * png_const_bytep; -typedef png_uint_32 * png_uint_32p; -typedef const png_uint_32 * png_const_uint_32p; -typedef png_int_32 * png_int_32p; -typedef const png_int_32 * png_const_int_32p; -typedef png_uint_16 * png_uint_16p; -typedef const png_uint_16 * png_const_uint_16p; -typedef png_int_16 * png_int_16p; -typedef const png_int_16 * png_const_int_16p; -typedef char * png_charp; -typedef const char * png_const_charp; -typedef png_fixed_point * png_fixed_point_p; -typedef const png_fixed_point * png_const_fixed_point_p; -typedef size_t * png_size_tp; -typedef const size_t * png_const_size_tp; - -#ifdef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * png_doublep; -typedef const double * png_const_doublep; -#endif - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte * * png_bytepp; -typedef png_uint_32 * * png_uint_32pp; -typedef png_int_32 * * png_int_32pp; -typedef png_uint_16 * * png_uint_16pp; -typedef png_int_16 * * png_int_16pp; -typedef const char * * png_const_charpp; -typedef char * * png_charpp; -typedef png_fixed_point * * png_fixed_point_pp; -#ifdef PNG_FLOATING_POINT_SUPPORTED -typedef double * * png_doublepp; -#endif - -/* Pointers to pointers to pointers; i.e., pointer to array */ -typedef char * * * png_charppp; - -#endif /* PNG_BUILDING_SYMBOL_TABLE */ - -#endif /* PNGCONF_H */ diff --git a/Externals/libpng/pngdebug.h b/Externals/libpng/pngdebug.h deleted file mode 100644 index 00d5a4569e..0000000000 --- a/Externals/libpng/pngdebug.h +++ /dev/null @@ -1,153 +0,0 @@ - -/* pngdebug.h - Debugging macros for libpng, also used in pngtest.c - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2013 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Define PNG_DEBUG at compile time for debugging information. Higher - * numbers for PNG_DEBUG mean more debugging information. This has - * only been added since version 0.95 so it is not implemented throughout - * libpng yet, but more support will be added as needed. - * - * png_debug[1-2]?(level, message ,arg{0-2}) - * Expands to a statement (either a simple expression or a compound - * do..while(0) statement) that outputs a message with parameter - * substitution if PNG_DEBUG is defined to 2 or more. If PNG_DEBUG - * is undefined, 0 or 1 every png_debug expands to a simple expression - * (actually ((void)0)). - * - * level: level of detail of message, starting at 0. A level 'n' - * message is preceded by 'n' 3-space indentations (not implemented - * on Microsoft compilers unless PNG_DEBUG_FILE is also - * defined, to allow debug DLL compilation with no standard IO). - * message: a printf(3) style text string. A trailing '\n' is added - * to the message. - * arg: 0 to 2 arguments for printf(3) style substitution in message. - */ -#ifndef PNGDEBUG_H -#define PNGDEBUG_H -/* These settings control the formatting of messages in png.c and pngerror.c */ -/* Moved to pngdebug.h at 1.5.0 */ -# ifndef PNG_LITERAL_SHARP -# define PNG_LITERAL_SHARP 0x23 -# endif -# ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET -# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b -# endif -# ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET -# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d -# endif -# ifndef PNG_STRING_NEWLINE -# define PNG_STRING_NEWLINE "\n" -# endif - -#ifdef PNG_DEBUG -# if (PNG_DEBUG > 0) -# if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) -# include -# if (PNG_DEBUG > 1) -# ifndef _DEBUG -# define _DEBUG -# endif -# ifndef png_debug -# define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE) -# endif -# ifndef png_debug1 -# define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1) -# endif -# ifndef png_debug2 -# define png_debug2(l,m,p1,p2) \ - _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) -# endif -# endif -# else /* PNG_DEBUG_FILE || !_MSC_VER */ -# ifndef PNG_STDIO_SUPPORTED -# include /* not included yet */ -# endif -# ifndef PNG_DEBUG_FILE -# define PNG_DEBUG_FILE stderr -# endif /* PNG_DEBUG_FILE */ - -# if (PNG_DEBUG > 1) -# ifdef __STDC__ -# ifndef png_debug -# define png_debug(l,m) \ - do { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \ - (num_tabs==2 ? " " : (num_tabs>2 ? " " : "")))); \ - } while (0) -# endif -# ifndef png_debug1 -# define png_debug1(l,m,p1) \ - do { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \ - (num_tabs==2 ? " " : (num_tabs>2 ? " " : ""))),p1); \ - } while (0) -# endif -# ifndef png_debug2 -# define png_debug2(l,m,p1,p2) \ - do { \ - int num_tabs=l; \ - fprintf(PNG_DEBUG_FILE,"%s" m PNG_STRING_NEWLINE,(num_tabs==1 ? " " : \ - (num_tabs==2 ? " " : (num_tabs>2 ? " " : ""))),p1,p2);\ - } while (0) -# endif -# else /* __STDC __ */ -# ifndef png_debug -# define png_debug(l,m) \ - do { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format); \ - } while (0) -# endif -# ifndef png_debug1 -# define png_debug1(l,m,p1) \ - do { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format,p1); \ - } while (0) -# endif -# ifndef png_debug2 -# define png_debug2(l,m,p1,p2) \ - do { \ - int num_tabs=l; \ - char format[256]; \ - snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ - (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ - m,PNG_STRING_NEWLINE); \ - fprintf(PNG_DEBUG_FILE,format,p1,p2); \ - } while (0) -# endif -# endif /* __STDC __ */ -# endif /* (PNG_DEBUG > 1) */ - -# endif /* _MSC_VER */ -# endif /* (PNG_DEBUG > 0) */ -#endif /* PNG_DEBUG */ -#ifndef png_debug -# define png_debug(l, m) ((void)0) -#endif -#ifndef png_debug1 -# define png_debug1(l, m, p1) ((void)0) -#endif -#ifndef png_debug2 -# define png_debug2(l, m, p1, p2) ((void)0) -#endif -#endif /* PNGDEBUG_H */ diff --git a/Externals/libpng/pngerror.c b/Externals/libpng/pngerror.c deleted file mode 100644 index ec3a709b9d..0000000000 --- a/Externals/libpng/pngerror.c +++ /dev/null @@ -1,963 +0,0 @@ - -/* pngerror.c - stub functions for i/o and memory allocation - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file provides a location for all error handling. Users who - * need special error handling are expected to write replacement functions - * and use png_set_error_fn() to use those functions. See the instructions - * at each function. - */ - -#include "pngpriv.h" - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) - -static PNG_FUNCTION(void, png_default_error,PNGARG((png_const_structrp png_ptr, - png_const_charp error_message)),PNG_NORETURN); - -#ifdef PNG_WARNINGS_SUPPORTED -static void /* PRIVATE */ -png_default_warning PNGARG((png_const_structrp png_ptr, - png_const_charp warning_message)); -#endif /* WARNINGS */ - -/* This function is called whenever there is a fatal error. This function - * should not be changed. If there is a need to handle errors differently, - * you should supply a replacement error function and use png_set_error_fn() - * to replace the error function at run-time. - */ -#ifdef PNG_ERROR_TEXT_SUPPORTED -PNG_FUNCTION(void,PNGAPI -png_error,(png_const_structrp png_ptr, png_const_charp error_message), - PNG_NORETURN) -{ -#ifdef PNG_ERROR_NUMBERS_SUPPORTED - char msg[16]; - if (png_ptr != NULL) - { - if ((png_ptr->flags & - (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) != 0) - { - if (*error_message == PNG_LITERAL_SHARP) - { - /* Strip "#nnnn " from beginning of error message. */ - int offset; - for (offset = 1; offset<15; offset++) - if (error_message[offset] == ' ') - break; - - if ((png_ptr->flags & PNG_FLAG_STRIP_ERROR_TEXT) != 0) - { - int i; - for (i = 0; i < offset - 1; i++) - msg[i] = error_message[i + 1]; - msg[i - 1] = '\0'; - error_message = msg; - } - - else - error_message += offset; - } - - else - { - if ((png_ptr->flags & PNG_FLAG_STRIP_ERROR_TEXT) != 0) - { - msg[0] = '0'; - msg[1] = '\0'; - error_message = msg; - } - } - } - } -#endif - if (png_ptr != NULL && png_ptr->error_fn != NULL) - (*(png_ptr->error_fn))(png_constcast(png_structrp,png_ptr), - error_message); - - /* If the custom handler doesn't exist, or if it returns, - use the default handler, which will not return. */ - png_default_error(png_ptr, error_message); -} -#else -PNG_FUNCTION(void,PNGAPI -png_err,(png_const_structrp png_ptr),PNG_NORETURN) -{ - /* Prior to 1.5.2 the error_fn received a NULL pointer, expressed - * erroneously as '\0', instead of the empty string "". This was - * apparently an error, introduced in libpng-1.2.20, and png_default_error - * will crash in this case. - */ - if (png_ptr != NULL && png_ptr->error_fn != NULL) - (*(png_ptr->error_fn))(png_constcast(png_structrp,png_ptr), ""); - - /* If the custom handler doesn't exist, or if it returns, - use the default handler, which will not return. */ - png_default_error(png_ptr, ""); -} -#endif /* ERROR_TEXT */ - -/* Utility to safely appends strings to a buffer. This never errors out so - * error checking is not required in the caller. - */ -size_t -png_safecat(png_charp buffer, size_t bufsize, size_t pos, - png_const_charp string) -{ - if (buffer != NULL && pos < bufsize) - { - if (string != NULL) - while (*string != '\0' && pos < bufsize-1) - buffer[pos++] = *string++; - - buffer[pos] = '\0'; - } - - return pos; -} - -#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED) -/* Utility to dump an unsigned value into a buffer, given a start pointer and - * and end pointer (which should point just *beyond* the end of the buffer!) - * Returns the pointer to the start of the formatted string. - */ -png_charp -png_format_number(png_const_charp start, png_charp end, int format, - png_alloc_size_t number) -{ - int count = 0; /* number of digits output */ - int mincount = 1; /* minimum number required */ - int output = 0; /* digit output (for the fixed point format) */ - - *--end = '\0'; - - /* This is written so that the loop always runs at least once, even with - * number zero. - */ - while (end > start && (number != 0 || count < mincount)) - { - - static const char digits[] = "0123456789ABCDEF"; - - switch (format) - { - case PNG_NUMBER_FORMAT_fixed: - /* Needs five digits (the fraction) */ - mincount = 5; - if (output != 0 || number % 10 != 0) - { - *--end = digits[number % 10]; - output = 1; - } - number /= 10; - break; - - case PNG_NUMBER_FORMAT_02u: - /* Expects at least 2 digits. */ - mincount = 2; - /* FALLTHROUGH */ - - case PNG_NUMBER_FORMAT_u: - *--end = digits[number % 10]; - number /= 10; - break; - - case PNG_NUMBER_FORMAT_02x: - /* This format expects at least two digits */ - mincount = 2; - /* FALLTHROUGH */ - - case PNG_NUMBER_FORMAT_x: - *--end = digits[number & 0xf]; - number >>= 4; - break; - - default: /* an error */ - number = 0; - break; - } - - /* Keep track of the number of digits added */ - ++count; - - /* Float a fixed number here: */ - if ((format == PNG_NUMBER_FORMAT_fixed) && (count == 5) && (end > start)) - { - /* End of the fraction, but maybe nothing was output? In that case - * drop the decimal point. If the number is a true zero handle that - * here. - */ - if (output != 0) - *--end = '.'; - else if (number == 0) /* and !output */ - *--end = '0'; - } - } - - return end; -} -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* This function is called whenever there is a non-fatal error. This function - * should not be changed. If there is a need to handle warnings differently, - * you should supply a replacement warning function and use - * png_set_error_fn() to replace the warning function at run-time. - */ -void PNGAPI -png_warning(png_const_structrp png_ptr, png_const_charp warning_message) -{ - int offset = 0; - if (png_ptr != NULL) - { -#ifdef PNG_ERROR_NUMBERS_SUPPORTED - if ((png_ptr->flags & - (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) != 0) -#endif - { - if (*warning_message == PNG_LITERAL_SHARP) - { - for (offset = 1; offset < 15; offset++) - if (warning_message[offset] == ' ') - break; - } - } - } - if (png_ptr != NULL && png_ptr->warning_fn != NULL) - (*(png_ptr->warning_fn))(png_constcast(png_structrp,png_ptr), - warning_message + offset); - else - png_default_warning(png_ptr, warning_message + offset); -} - -/* These functions support 'formatted' warning messages with up to - * PNG_WARNING_PARAMETER_COUNT parameters. In the format string the parameter - * is introduced by @, where 'number' starts at 1. This follows the - * standard established by X/Open for internationalizable error messages. - */ -void -png_warning_parameter(png_warning_parameters p, int number, - png_const_charp string) -{ - if (number > 0 && number <= PNG_WARNING_PARAMETER_COUNT) - (void)png_safecat(p[number-1], (sizeof p[number-1]), 0, string); -} - -void -png_warning_parameter_unsigned(png_warning_parameters p, int number, int format, - png_alloc_size_t value) -{ - char buffer[PNG_NUMBER_BUFFER_SIZE]; - png_warning_parameter(p, number, PNG_FORMAT_NUMBER(buffer, format, value)); -} - -void -png_warning_parameter_signed(png_warning_parameters p, int number, int format, - png_int_32 value) -{ - png_alloc_size_t u; - png_charp str; - char buffer[PNG_NUMBER_BUFFER_SIZE]; - - /* Avoid overflow by doing the negate in a png_alloc_size_t: */ - u = (png_alloc_size_t)value; - if (value < 0) - u = ~u + 1; - - str = PNG_FORMAT_NUMBER(buffer, format, u); - - if (value < 0 && str > buffer) - *--str = '-'; - - png_warning_parameter(p, number, str); -} - -void -png_formatted_warning(png_const_structrp png_ptr, png_warning_parameters p, - png_const_charp message) -{ - /* The internal buffer is just 192 bytes - enough for all our messages, - * overflow doesn't happen because this code checks! If someone figures - * out how to send us a message longer than 192 bytes, all that will - * happen is that the message will be truncated appropriately. - */ - size_t i = 0; /* Index in the msg[] buffer: */ - char msg[192]; - - /* Each iteration through the following loop writes at most one character - * to msg[i++] then returns here to validate that there is still space for - * the trailing '\0'. It may (in the case of a parameter) read more than - * one character from message[]; it must check for '\0' and continue to the - * test if it finds the end of string. - */ - while (i<(sizeof msg)-1 && *message != '\0') - { - /* '@' at end of string is now just printed (previously it was skipped); - * it is an error in the calling code to terminate the string with @. - */ - if (p != NULL && *message == '@' && message[1] != '\0') - { - int parameter_char = *++message; /* Consume the '@' */ - static const char valid_parameters[] = "123456789"; - int parameter = 0; - - /* Search for the parameter digit, the index in the string is the - * parameter to use. - */ - while (valid_parameters[parameter] != parameter_char && - valid_parameters[parameter] != '\0') - ++parameter; - - /* If the parameter digit is out of range it will just get printed. */ - if (parameter < PNG_WARNING_PARAMETER_COUNT) - { - /* Append this parameter */ - png_const_charp parm = p[parameter]; - png_const_charp pend = p[parameter] + (sizeof p[parameter]); - - /* No need to copy the trailing '\0' here, but there is no guarantee - * that parm[] has been initialized, so there is no guarantee of a - * trailing '\0': - */ - while (i<(sizeof msg)-1 && *parm != '\0' && parm < pend) - msg[i++] = *parm++; - - /* Consume the parameter digit too: */ - ++message; - continue; - } - - /* else not a parameter and there is a character after the @ sign; just - * copy that. This is known not to be '\0' because of the test above. - */ - } - - /* At this point *message can't be '\0', even in the bad parameter case - * above where there is a lone '@' at the end of the message string. - */ - msg[i++] = *message++; - } - - /* i is always less than (sizeof msg), so: */ - msg[i] = '\0'; - - /* And this is the formatted message. It may be larger than - * PNG_MAX_ERROR_TEXT, but that is only used for 'chunk' errors and these - * are not (currently) formatted. - */ - png_warning(png_ptr, msg); -} -#endif /* WARNINGS */ - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -void PNGAPI -png_benign_error(png_const_structrp png_ptr, png_const_charp error_message) -{ - if ((png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) != 0) - { -# ifdef PNG_READ_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && - png_ptr->chunk_name != 0) - png_chunk_warning(png_ptr, error_message); - else -# endif - png_warning(png_ptr, error_message); - } - - else - { -# ifdef PNG_READ_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && - png_ptr->chunk_name != 0) - png_chunk_error(png_ptr, error_message); - else -# endif - png_error(png_ptr, error_message); - } - -# ifndef PNG_ERROR_TEXT_SUPPORTED - PNG_UNUSED(error_message) -# endif -} - -void /* PRIVATE */ -png_app_warning(png_const_structrp png_ptr, png_const_charp error_message) -{ - if ((png_ptr->flags & PNG_FLAG_APP_WARNINGS_WARN) != 0) - png_warning(png_ptr, error_message); - else - png_error(png_ptr, error_message); - -# ifndef PNG_ERROR_TEXT_SUPPORTED - PNG_UNUSED(error_message) -# endif -} - -void /* PRIVATE */ -png_app_error(png_const_structrp png_ptr, png_const_charp error_message) -{ - if ((png_ptr->flags & PNG_FLAG_APP_ERRORS_WARN) != 0) - png_warning(png_ptr, error_message); - else - png_error(png_ptr, error_message); - -# ifndef PNG_ERROR_TEXT_SUPPORTED - PNG_UNUSED(error_message) -# endif -} -#endif /* BENIGN_ERRORS */ - -#define PNG_MAX_ERROR_TEXT 196 /* Currently limited by profile_error in png.c */ -#if defined(PNG_WARNINGS_SUPPORTED) || \ - (defined(PNG_READ_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED)) -/* These utilities are used internally to build an error message that relates - * to the current chunk. The chunk name comes from png_ptr->chunk_name, - * which is used to prefix the message. The message is limited in length - * to 63 bytes. The name characters are output as hex digits wrapped in [] - * if the character is invalid. - */ -#define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97)) -static const char png_digit[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F' -}; - -static void /* PRIVATE */ -png_format_buffer(png_const_structrp png_ptr, png_charp buffer, png_const_charp - error_message) -{ - png_uint_32 chunk_name = png_ptr->chunk_name; - int iout = 0, ishift = 24; - - while (ishift >= 0) - { - int c = (int)(chunk_name >> ishift) & 0xff; - - ishift -= 8; - if (isnonalpha(c) != 0) - { - buffer[iout++] = PNG_LITERAL_LEFT_SQUARE_BRACKET; - buffer[iout++] = png_digit[(c & 0xf0) >> 4]; - buffer[iout++] = png_digit[c & 0x0f]; - buffer[iout++] = PNG_LITERAL_RIGHT_SQUARE_BRACKET; - } - - else - { - buffer[iout++] = (char)c; - } - } - - if (error_message == NULL) - buffer[iout] = '\0'; - - else - { - int iin = 0; - - buffer[iout++] = ':'; - buffer[iout++] = ' '; - - while (iin < PNG_MAX_ERROR_TEXT-1 && error_message[iin] != '\0') - buffer[iout++] = error_message[iin++]; - - /* iin < PNG_MAX_ERROR_TEXT, so the following is safe: */ - buffer[iout] = '\0'; - } -} -#endif /* WARNINGS || ERROR_TEXT */ - -#if defined(PNG_READ_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED) -PNG_FUNCTION(void,PNGAPI -png_chunk_error,(png_const_structrp png_ptr, png_const_charp error_message), - PNG_NORETURN) -{ - char msg[18+PNG_MAX_ERROR_TEXT]; - if (png_ptr == NULL) - png_error(png_ptr, error_message); - - else - { - png_format_buffer(png_ptr, msg, error_message); - png_error(png_ptr, msg); - } -} -#endif /* READ && ERROR_TEXT */ - -#ifdef PNG_WARNINGS_SUPPORTED -void PNGAPI -png_chunk_warning(png_const_structrp png_ptr, png_const_charp warning_message) -{ - char msg[18+PNG_MAX_ERROR_TEXT]; - if (png_ptr == NULL) - png_warning(png_ptr, warning_message); - - else - { - png_format_buffer(png_ptr, msg, warning_message); - png_warning(png_ptr, msg); - } -} -#endif /* WARNINGS */ - -#ifdef PNG_READ_SUPPORTED -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -void PNGAPI -png_chunk_benign_error(png_const_structrp png_ptr, png_const_charp - error_message) -{ - if ((png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) != 0) - png_chunk_warning(png_ptr, error_message); - - else - png_chunk_error(png_ptr, error_message); - -# ifndef PNG_ERROR_TEXT_SUPPORTED - PNG_UNUSED(error_message) -# endif -} -#endif -#endif /* READ */ - -void /* PRIVATE */ -png_chunk_report(png_const_structrp png_ptr, png_const_charp message, int error) -{ -# ifndef PNG_WARNINGS_SUPPORTED - PNG_UNUSED(message) -# endif - - /* This is always supported, but for just read or just write it - * unconditionally does the right thing. - */ -# if defined(PNG_READ_SUPPORTED) && defined(PNG_WRITE_SUPPORTED) - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0) -# endif - -# ifdef PNG_READ_SUPPORTED - { - if (error < PNG_CHUNK_ERROR) - png_chunk_warning(png_ptr, message); - - else - png_chunk_benign_error(png_ptr, message); - } -# endif - -# if defined(PNG_READ_SUPPORTED) && defined(PNG_WRITE_SUPPORTED) - else if ((png_ptr->mode & PNG_IS_READ_STRUCT) == 0) -# endif - -# ifdef PNG_WRITE_SUPPORTED - { - if (error < PNG_CHUNK_WRITE_ERROR) - png_app_warning(png_ptr, message); - - else - png_app_error(png_ptr, message); - } -# endif -} - -#ifdef PNG_ERROR_TEXT_SUPPORTED -#ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_FUNCTION(void, -png_fixed_error,(png_const_structrp png_ptr, png_const_charp name),PNG_NORETURN) -{ -# define fixed_message "fixed point overflow in " -# define fixed_message_ln ((sizeof fixed_message)-1) - unsigned int iin; - char msg[fixed_message_ln+PNG_MAX_ERROR_TEXT]; - memcpy(msg, fixed_message, fixed_message_ln); - iin = 0; - if (name != NULL) - while (iin < (PNG_MAX_ERROR_TEXT-1) && name[iin] != 0) - { - msg[fixed_message_ln + iin] = name[iin]; - ++iin; - } - msg[fixed_message_ln + iin] = 0; - png_error(png_ptr, msg); -} -#endif -#endif - -#ifdef PNG_SETJMP_SUPPORTED -/* This API only exists if ANSI-C style error handling is used, - * otherwise it is necessary for png_default_error to be overridden. - */ -jmp_buf* PNGAPI -png_set_longjmp_fn(png_structrp png_ptr, png_longjmp_ptr longjmp_fn, - size_t jmp_buf_size) -{ - /* From libpng 1.6.0 the app gets one chance to set a 'jmpbuf_size' value - * and it must not change after that. Libpng doesn't care how big the - * buffer is, just that it doesn't change. - * - * If the buffer size is no *larger* than the size of jmp_buf when libpng is - * compiled a built in jmp_buf is returned; this preserves the pre-1.6.0 - * semantics that this call will not fail. If the size is larger, however, - * the buffer is allocated and this may fail, causing the function to return - * NULL. - */ - if (png_ptr == NULL) - return NULL; - - if (png_ptr->jmp_buf_ptr == NULL) - { - png_ptr->jmp_buf_size = 0; /* not allocated */ - - if (jmp_buf_size <= (sizeof png_ptr->jmp_buf_local)) - png_ptr->jmp_buf_ptr = &png_ptr->jmp_buf_local; - - else - { - png_ptr->jmp_buf_ptr = png_voidcast(jmp_buf *, - png_malloc_warn(png_ptr, jmp_buf_size)); - - if (png_ptr->jmp_buf_ptr == NULL) - return NULL; /* new NULL return on OOM */ - - png_ptr->jmp_buf_size = jmp_buf_size; - } - } - - else /* Already allocated: check the size */ - { - size_t size = png_ptr->jmp_buf_size; - - if (size == 0) - { - size = (sizeof png_ptr->jmp_buf_local); - if (png_ptr->jmp_buf_ptr != &png_ptr->jmp_buf_local) - { - /* This is an internal error in libpng: somehow we have been left - * with a stack allocated jmp_buf when the application regained - * control. It's always possible to fix this up, but for the moment - * this is a png_error because that makes it easy to detect. - */ - png_error(png_ptr, "Libpng jmp_buf still allocated"); - /* png_ptr->jmp_buf_ptr = &png_ptr->jmp_buf_local; */ - } - } - - if (size != jmp_buf_size) - { - png_warning(png_ptr, "Application jmp_buf size changed"); - return NULL; /* caller will probably crash: no choice here */ - } - } - - /* Finally fill in the function, now we have a satisfactory buffer. It is - * valid to change the function on every call. - */ - png_ptr->longjmp_fn = longjmp_fn; - return png_ptr->jmp_buf_ptr; -} - -void /* PRIVATE */ -png_free_jmpbuf(png_structrp png_ptr) -{ - if (png_ptr != NULL) - { - jmp_buf *jb = png_ptr->jmp_buf_ptr; - - /* A size of 0 is used to indicate a local, stack, allocation of the - * pointer; used here and in png.c - */ - if (jb != NULL && png_ptr->jmp_buf_size > 0) - { - - /* This stuff is so that a failure to free the error control structure - * does not leave libpng in a state with no valid error handling: the - * free always succeeds, if there is an error it gets ignored. - */ - if (jb != &png_ptr->jmp_buf_local) - { - /* Make an internal, libpng, jmp_buf to return here */ - jmp_buf free_jmp_buf; - - if (!setjmp(free_jmp_buf)) - { - png_ptr->jmp_buf_ptr = &free_jmp_buf; /* come back here */ - png_ptr->jmp_buf_size = 0; /* stack allocation */ - png_ptr->longjmp_fn = longjmp; - png_free(png_ptr, jb); /* Return to setjmp on error */ - } - } - } - - /* *Always* cancel everything out: */ - png_ptr->jmp_buf_size = 0; - png_ptr->jmp_buf_ptr = NULL; - png_ptr->longjmp_fn = 0; - } -} -#endif - -/* This is the default error handling function. Note that replacements for - * this function MUST NOT RETURN, or the program will likely crash. This - * function is used by default, or if the program supplies NULL for the - * error function pointer in png_set_error_fn(). - */ -static PNG_FUNCTION(void /* PRIVATE */, -png_default_error,(png_const_structrp png_ptr, png_const_charp error_message), - PNG_NORETURN) -{ -#ifdef PNG_CONSOLE_IO_SUPPORTED -#ifdef PNG_ERROR_NUMBERS_SUPPORTED - /* Check on NULL only added in 1.5.4 */ - if (error_message != NULL && *error_message == PNG_LITERAL_SHARP) - { - /* Strip "#nnnn " from beginning of error message. */ - int offset; - char error_number[16]; - for (offset = 0; offset<15; offset++) - { - error_number[offset] = error_message[offset + 1]; - if (error_message[offset] == ' ') - break; - } - - if ((offset > 1) && (offset < 15)) - { - error_number[offset - 1] = '\0'; - fprintf(stderr, "libpng error no. %s: %s", - error_number, error_message + offset + 1); - fprintf(stderr, PNG_STRING_NEWLINE); - } - - else - { - fprintf(stderr, "libpng error: %s, offset=%d", - error_message, offset); - fprintf(stderr, PNG_STRING_NEWLINE); - } - } - else -#endif - { - fprintf(stderr, "libpng error: %s", error_message ? error_message : - "undefined"); - fprintf(stderr, PNG_STRING_NEWLINE); - } -#else - PNG_UNUSED(error_message) /* Make compiler happy */ -#endif - png_longjmp(png_ptr, 1); -} - -PNG_FUNCTION(void,PNGAPI -png_longjmp,(png_const_structrp png_ptr, int val),PNG_NORETURN) -{ -#ifdef PNG_SETJMP_SUPPORTED - if (png_ptr != NULL && png_ptr->longjmp_fn != NULL && - png_ptr->jmp_buf_ptr != NULL) - png_ptr->longjmp_fn(*png_ptr->jmp_buf_ptr, val); -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(val) -#endif - - /* If control reaches this point, png_longjmp() must not return. The only - * choice is to terminate the whole process (or maybe the thread); to do - * this the ANSI-C abort() function is used unless a different method is - * implemented by overriding the default configuration setting for - * PNG_ABORT(). - */ - PNG_ABORT(); -} - -#ifdef PNG_WARNINGS_SUPPORTED -/* This function is called when there is a warning, but the library thinks - * it can continue anyway. Replacement functions don't have to do anything - * here if you don't want them to. In the default configuration, png_ptr is - * not used, but it is passed in case it may be useful. - */ -static void /* PRIVATE */ -png_default_warning(png_const_structrp png_ptr, png_const_charp warning_message) -{ -#ifdef PNG_CONSOLE_IO_SUPPORTED -# ifdef PNG_ERROR_NUMBERS_SUPPORTED - if (*warning_message == PNG_LITERAL_SHARP) - { - int offset; - char warning_number[16]; - for (offset = 0; offset < 15; offset++) - { - warning_number[offset] = warning_message[offset + 1]; - if (warning_message[offset] == ' ') - break; - } - - if ((offset > 1) && (offset < 15)) - { - warning_number[offset + 1] = '\0'; - fprintf(stderr, "libpng warning no. %s: %s", - warning_number, warning_message + offset); - fprintf(stderr, PNG_STRING_NEWLINE); - } - - else - { - fprintf(stderr, "libpng warning: %s", - warning_message); - fprintf(stderr, PNG_STRING_NEWLINE); - } - } - else -# endif - - { - fprintf(stderr, "libpng warning: %s", warning_message); - fprintf(stderr, PNG_STRING_NEWLINE); - } -#else - PNG_UNUSED(warning_message) /* Make compiler happy */ -#endif - PNG_UNUSED(png_ptr) /* Make compiler happy */ -} -#endif /* WARNINGS */ - -/* This function is called when the application wants to use another method - * of handling errors and warnings. Note that the error function MUST NOT - * return to the calling routine or serious problems will occur. The return - * method used in the default routine calls longjmp(png_ptr->jmp_buf_ptr, 1) - */ -void PNGAPI -png_set_error_fn(png_structrp png_ptr, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warning_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->error_ptr = error_ptr; - png_ptr->error_fn = error_fn; -#ifdef PNG_WARNINGS_SUPPORTED - png_ptr->warning_fn = warning_fn; -#else - PNG_UNUSED(warning_fn) -#endif -} - - -/* This function returns a pointer to the error_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy and png_read_destroy are called. - */ -png_voidp PNGAPI -png_get_error_ptr(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return NULL; - - return ((png_voidp)png_ptr->error_ptr); -} - - -#ifdef PNG_ERROR_NUMBERS_SUPPORTED -void PNGAPI -png_set_strip_error_numbers(png_structrp png_ptr, png_uint_32 strip_mode) -{ - if (png_ptr != NULL) - { - png_ptr->flags &= - ((~(PNG_FLAG_STRIP_ERROR_NUMBERS | - PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode); - } -} -#endif - -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) - /* Currently the above both depend on SETJMP_SUPPORTED, however it would be - * possible to implement without setjmp support just so long as there is some - * way to handle the error return here: - */ -PNG_FUNCTION(void /* PRIVATE */, (PNGCBAPI -png_safe_error),(png_structp png_nonconst_ptr, png_const_charp error_message), - PNG_NORETURN) -{ - png_const_structrp png_ptr = png_nonconst_ptr; - png_imagep image = png_voidcast(png_imagep, png_ptr->error_ptr); - - /* An error is always logged here, overwriting anything (typically a warning) - * that is already there: - */ - if (image != NULL) - { - png_safecat(image->message, (sizeof image->message), 0, error_message); - image->warning_or_error |= PNG_IMAGE_ERROR; - - /* Retrieve the jmp_buf from within the png_control, making this work for - * C++ compilation too is pretty tricky: C++ wants a pointer to the first - * element of a jmp_buf, but C doesn't tell us the type of that. - */ - if (image->opaque != NULL && image->opaque->error_buf != NULL) - longjmp(png_control_jmp_buf(image->opaque), 1); - - /* Missing longjmp buffer, the following is to help debugging: */ - { - size_t pos = png_safecat(image->message, (sizeof image->message), 0, - "bad longjmp: "); - png_safecat(image->message, (sizeof image->message), pos, - error_message); - } - } - - /* Here on an internal programming error. */ - abort(); -} - -#ifdef PNG_WARNINGS_SUPPORTED -void /* PRIVATE */ PNGCBAPI -png_safe_warning(png_structp png_nonconst_ptr, png_const_charp warning_message) -{ - png_const_structrp png_ptr = png_nonconst_ptr; - png_imagep image = png_voidcast(png_imagep, png_ptr->error_ptr); - - /* A warning is only logged if there is no prior warning or error. */ - if (image->warning_or_error == 0) - { - png_safecat(image->message, (sizeof image->message), 0, warning_message); - image->warning_or_error |= PNG_IMAGE_WARNING; - } -} -#endif - -int /* PRIVATE */ -png_safe_execute(png_imagep image_in, int (*function)(png_voidp), png_voidp arg) -{ - volatile png_imagep image = image_in; - volatile int result; - volatile png_voidp saved_error_buf; - jmp_buf safe_jmpbuf; - - /* Safely execute function(arg) with png_error returning to this function. */ - saved_error_buf = image->opaque->error_buf; - result = setjmp(safe_jmpbuf) == 0; - - if (result != 0) - { - - image->opaque->error_buf = safe_jmpbuf; - result = function(arg); - } - - image->opaque->error_buf = saved_error_buf; - - /* And do the cleanup prior to any failure return. */ - if (result == 0) - png_image_free(image); - - return result; -} -#endif /* SIMPLIFIED READ || SIMPLIFIED_WRITE */ -#endif /* READ || WRITE */ diff --git a/Externals/libpng/pngget.c b/Externals/libpng/pngget.c deleted file mode 100644 index 5abf1efd9f..0000000000 --- a/Externals/libpng/pngget.c +++ /dev/null @@ -1,1249 +0,0 @@ - -/* pngget.c - retrieval of values from info struct - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - */ - -#include "pngpriv.h" - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) - -png_uint_32 PNGAPI -png_get_valid(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_uint_32 flag) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->valid & flag); - - return(0); -} - -size_t PNGAPI -png_get_rowbytes(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->rowbytes); - - return(0); -} - -#ifdef PNG_INFO_IMAGE_SUPPORTED -png_bytepp PNGAPI -png_get_rows(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->row_pointers); - - return(0); -} -#endif - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Easy access to info, added in libpng-0.99 */ -png_uint_32 PNGAPI -png_get_image_width(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->width; - - return (0); -} - -png_uint_32 PNGAPI -png_get_image_height(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->height; - - return (0); -} - -png_byte PNGAPI -png_get_bit_depth(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->bit_depth; - - return (0); -} - -png_byte PNGAPI -png_get_color_type(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->color_type; - - return (0); -} - -png_byte PNGAPI -png_get_filter_type(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->filter_type; - - return (0); -} - -png_byte PNGAPI -png_get_interlace_type(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->interlace_type; - - return (0); -} - -png_byte PNGAPI -png_get_compression_type(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return info_ptr->compression_type; - - return (0); -} - -png_uint_32 PNGAPI -png_get_x_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp - info_ptr) -{ -#ifdef PNG_pHYs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_debug1(1, "in %s retrieval function", - "png_get_x_pixels_per_meter"); - - if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER) - return (info_ptr->x_pixels_per_unit); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -png_uint_32 PNGAPI -png_get_y_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp - info_ptr) -{ -#ifdef PNG_pHYs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_debug1(1, "in %s retrieval function", - "png_get_y_pixels_per_meter"); - - if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER) - return (info_ptr->y_pixels_per_unit); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -png_uint_32 PNGAPI -png_get_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ -#ifdef PNG_pHYs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_pixels_per_meter"); - - if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER && - info_ptr->x_pixels_per_unit == info_ptr->y_pixels_per_unit) - return (info_ptr->x_pixels_per_unit); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -#ifdef PNG_FLOATING_POINT_SUPPORTED -float PNGAPI -png_get_pixel_aspect_ratio(png_const_structrp png_ptr, png_const_inforp - info_ptr) -{ -#ifdef PNG_READ_pHYs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio"); - - if (info_ptr->x_pixels_per_unit != 0) - return ((float)((float)info_ptr->y_pixels_per_unit - /(float)info_ptr->x_pixels_per_unit)); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return ((float)0.0); -} -#endif - -#ifdef PNG_FIXED_POINT_SUPPORTED -png_fixed_point PNGAPI -png_get_pixel_aspect_ratio_fixed(png_const_structrp png_ptr, - png_const_inforp info_ptr) -{ -#ifdef PNG_READ_pHYs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0 && - info_ptr->x_pixels_per_unit > 0 && info_ptr->y_pixels_per_unit > 0 && - info_ptr->x_pixels_per_unit <= PNG_UINT_31_MAX && - info_ptr->y_pixels_per_unit <= PNG_UINT_31_MAX) - { - png_fixed_point res; - - png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio_fixed"); - - /* The following casts work because a PNG 4 byte integer only has a valid - * range of 0..2^31-1; otherwise the cast might overflow. - */ - if (png_muldiv(&res, (png_int_32)info_ptr->y_pixels_per_unit, PNG_FP_1, - (png_int_32)info_ptr->x_pixels_per_unit) != 0) - return res; - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return 0; -} -#endif - -png_int_32 PNGAPI -png_get_x_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ -#ifdef PNG_oFFs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_oFFs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns"); - - if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER) - return (info_ptr->x_offset); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -png_int_32 PNGAPI -png_get_y_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ -#ifdef PNG_oFFs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_oFFs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns"); - - if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER) - return (info_ptr->y_offset); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -png_int_32 PNGAPI -png_get_x_offset_pixels(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ -#ifdef PNG_oFFs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_oFFs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_x_offset_pixels"); - - if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL) - return (info_ptr->x_offset); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -png_int_32 PNGAPI -png_get_y_offset_pixels(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ -#ifdef PNG_oFFs_SUPPORTED - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_oFFs) != 0) - { - png_debug1(1, "in %s retrieval function", "png_get_y_offset_pixels"); - - if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL) - return (info_ptr->y_offset); - } -#else - PNG_UNUSED(png_ptr) - PNG_UNUSED(info_ptr) -#endif - - return (0); -} - -#ifdef PNG_INCH_CONVERSIONS_SUPPORTED -static png_uint_32 -ppi_from_ppm(png_uint_32 ppm) -{ -#if 0 - /* The conversion is *(2.54/100), in binary (32 digits): - * .00000110100000001001110101001001 - */ - png_uint_32 t1001, t1101; - ppm >>= 1; /* .1 */ - t1001 = ppm + (ppm >> 3); /* .1001 */ - t1101 = t1001 + (ppm >> 1); /* .1101 */ - ppm >>= 20; /* .000000000000000000001 */ - t1101 += t1101 >> 15; /* .1101000000000001101 */ - t1001 >>= 11; /* .000000000001001 */ - t1001 += t1001 >> 12; /* .000000000001001000000001001 */ - ppm += t1001; /* .000000000001001000001001001 */ - ppm += t1101; /* .110100000001001110101001001 */ - return (ppm + 16) >> 5;/* .00000110100000001001110101001001 */ -#else - /* The argument is a PNG unsigned integer, so it is not permitted - * to be bigger than 2^31. - */ - png_fixed_point result; - if (ppm <= PNG_UINT_31_MAX && png_muldiv(&result, (png_int_32)ppm, 127, - 5000) != 0) - return (png_uint_32)result; - - /* Overflow. */ - return 0; -#endif -} - -png_uint_32 PNGAPI -png_get_pixels_per_inch(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - return ppi_from_ppm(png_get_pixels_per_meter(png_ptr, info_ptr)); -} - -png_uint_32 PNGAPI -png_get_x_pixels_per_inch(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - return ppi_from_ppm(png_get_x_pixels_per_meter(png_ptr, info_ptr)); -} - -png_uint_32 PNGAPI -png_get_y_pixels_per_inch(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - return ppi_from_ppm(png_get_y_pixels_per_meter(png_ptr, info_ptr)); -} - -#ifdef PNG_FIXED_POINT_SUPPORTED -static png_fixed_point -png_fixed_inches_from_microns(png_const_structrp png_ptr, png_int_32 microns) -{ - /* Convert from meters * 1,000,000 to inches * 100,000, meters to - * inches is simply *(100/2.54), so we want *(10/2.54) == 500/127. - * Notice that this can overflow - a warning is output and 0 is - * returned. - */ - return png_muldiv_warn(png_ptr, microns, 500, 127); -} - -png_fixed_point PNGAPI -png_get_x_offset_inches_fixed(png_const_structrp png_ptr, - png_const_inforp info_ptr) -{ - return png_fixed_inches_from_microns(png_ptr, - png_get_x_offset_microns(png_ptr, info_ptr)); -} -#endif - -#ifdef PNG_FIXED_POINT_SUPPORTED -png_fixed_point PNGAPI -png_get_y_offset_inches_fixed(png_const_structrp png_ptr, - png_const_inforp info_ptr) -{ - return png_fixed_inches_from_microns(png_ptr, - png_get_y_offset_microns(png_ptr, info_ptr)); -} -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -float PNGAPI -png_get_x_offset_inches(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - /* To avoid the overflow do the conversion directly in floating - * point. - */ - return (float)(png_get_x_offset_microns(png_ptr, info_ptr) * .00003937); -} -#endif - -#ifdef PNG_FLOATING_POINT_SUPPORTED -float PNGAPI -png_get_y_offset_inches(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - /* To avoid the overflow do the conversion directly in floating - * point. - */ - return (float)(png_get_y_offset_microns(png_ptr, info_ptr) * .00003937); -} -#endif - -#ifdef PNG_pHYs_SUPPORTED -png_uint_32 PNGAPI -png_get_pHYs_dpi(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) -{ - png_uint_32 retval = 0; - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_debug1(1, "in %s retrieval function", "pHYs"); - - if (res_x != NULL) - { - *res_x = info_ptr->x_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - - if (res_y != NULL) - { - *res_y = info_ptr->y_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - - if (unit_type != NULL) - { - *unit_type = (int)info_ptr->phys_unit_type; - retval |= PNG_INFO_pHYs; - - if (*unit_type == 1) - { - if (res_x != NULL) *res_x = (png_uint_32)(*res_x * .0254 + .50); - if (res_y != NULL) *res_y = (png_uint_32)(*res_y * .0254 + .50); - } - } - } - - return (retval); -} -#endif /* pHYs */ -#endif /* INCH_CONVERSIONS */ - -/* png_get_channels really belongs in here, too, but it's been around longer */ - -#endif /* EASY_ACCESS */ - - -png_byte PNGAPI -png_get_channels(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->channels); - - return (0); -} - -#ifdef PNG_READ_SUPPORTED -png_const_bytep PNGAPI -png_get_signature(png_const_structrp png_ptr, png_const_inforp info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->signature); - - return (NULL); -} -#endif - -#ifdef PNG_bKGD_SUPPORTED -png_uint_32 PNGAPI -png_get_bKGD(png_const_structrp png_ptr, png_inforp info_ptr, - png_color_16p *background) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_bKGD) != 0 && - background != NULL) - { - png_debug1(1, "in %s retrieval function", "bKGD"); - - *background = &(info_ptr->background); - return (PNG_INFO_bKGD); - } - - return (0); -} -#endif - -#ifdef PNG_cHRM_SUPPORTED -/* The XYZ APIs were added in 1.5.5 to take advantage of the code added at the - * same time to correct the rgb grayscale coefficient defaults obtained from the - * cHRM chunk in 1.5.4 - */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -png_uint_32 PNGAPI -png_get_cHRM(png_const_structrp png_ptr, png_const_inforp info_ptr, - double *white_x, double *white_y, double *red_x, double *red_y, - double *green_x, double *green_y, double *blue_x, double *blue_y) -{ - /* Quiet API change: this code used to only return the end points if a cHRM - * chunk was present, but the end points can also come from iCCP or sRGB - * chunks, so in 1.6.0 the png_get_ APIs return the end points regardless and - * the png_set_ APIs merely check that set end points are mutually - * consistent. - */ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - png_debug1(1, "in %s retrieval function", "cHRM"); - - if (white_x != NULL) - *white_x = png_float(png_ptr, - info_ptr->colorspace.end_points_xy.whitex, "cHRM white X"); - if (white_y != NULL) - *white_y = png_float(png_ptr, - info_ptr->colorspace.end_points_xy.whitey, "cHRM white Y"); - if (red_x != NULL) - *red_x = png_float(png_ptr, info_ptr->colorspace.end_points_xy.redx, - "cHRM red X"); - if (red_y != NULL) - *red_y = png_float(png_ptr, info_ptr->colorspace.end_points_xy.redy, - "cHRM red Y"); - if (green_x != NULL) - *green_x = png_float(png_ptr, - info_ptr->colorspace.end_points_xy.greenx, "cHRM green X"); - if (green_y != NULL) - *green_y = png_float(png_ptr, - info_ptr->colorspace.end_points_xy.greeny, "cHRM green Y"); - if (blue_x != NULL) - *blue_x = png_float(png_ptr, info_ptr->colorspace.end_points_xy.bluex, - "cHRM blue X"); - if (blue_y != NULL) - *blue_y = png_float(png_ptr, info_ptr->colorspace.end_points_xy.bluey, - "cHRM blue Y"); - return (PNG_INFO_cHRM); - } - - return (0); -} - -png_uint_32 PNGAPI -png_get_cHRM_XYZ(png_const_structrp png_ptr, png_const_inforp info_ptr, - double *red_X, double *red_Y, double *red_Z, double *green_X, - double *green_Y, double *green_Z, double *blue_X, double *blue_Y, - double *blue_Z) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - png_debug1(1, "in %s retrieval function", "cHRM_XYZ(float)"); - - if (red_X != NULL) - *red_X = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_X, - "cHRM red X"); - if (red_Y != NULL) - *red_Y = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_Y, - "cHRM red Y"); - if (red_Z != NULL) - *red_Z = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_Z, - "cHRM red Z"); - if (green_X != NULL) - *green_X = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.green_X, "cHRM green X"); - if (green_Y != NULL) - *green_Y = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.green_Y, "cHRM green Y"); - if (green_Z != NULL) - *green_Z = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.green_Z, "cHRM green Z"); - if (blue_X != NULL) - *blue_X = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.blue_X, "cHRM blue X"); - if (blue_Y != NULL) - *blue_Y = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.blue_Y, "cHRM blue Y"); - if (blue_Z != NULL) - *blue_Z = png_float(png_ptr, - info_ptr->colorspace.end_points_XYZ.blue_Z, "cHRM blue Z"); - return (PNG_INFO_cHRM); - } - - return (0); -} -# endif - -# ifdef PNG_FIXED_POINT_SUPPORTED -png_uint_32 PNGAPI -png_get_cHRM_XYZ_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *int_red_X, png_fixed_point *int_red_Y, - png_fixed_point *int_red_Z, png_fixed_point *int_green_X, - png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, - png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, - png_fixed_point *int_blue_Z) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - png_debug1(1, "in %s retrieval function", "cHRM_XYZ"); - - if (int_red_X != NULL) - *int_red_X = info_ptr->colorspace.end_points_XYZ.red_X; - if (int_red_Y != NULL) - *int_red_Y = info_ptr->colorspace.end_points_XYZ.red_Y; - if (int_red_Z != NULL) - *int_red_Z = info_ptr->colorspace.end_points_XYZ.red_Z; - if (int_green_X != NULL) - *int_green_X = info_ptr->colorspace.end_points_XYZ.green_X; - if (int_green_Y != NULL) - *int_green_Y = info_ptr->colorspace.end_points_XYZ.green_Y; - if (int_green_Z != NULL) - *int_green_Z = info_ptr->colorspace.end_points_XYZ.green_Z; - if (int_blue_X != NULL) - *int_blue_X = info_ptr->colorspace.end_points_XYZ.blue_X; - if (int_blue_Y != NULL) - *int_blue_Y = info_ptr->colorspace.end_points_XYZ.blue_Y; - if (int_blue_Z != NULL) - *int_blue_Z = info_ptr->colorspace.end_points_XYZ.blue_Z; - return (PNG_INFO_cHRM); - } - - return (0); -} - -png_uint_32 PNGAPI -png_get_cHRM_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x, - png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y, - png_fixed_point *blue_x, png_fixed_point *blue_y) -{ - png_debug1(1, "in %s retrieval function", "cHRM"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - { - if (white_x != NULL) - *white_x = info_ptr->colorspace.end_points_xy.whitex; - if (white_y != NULL) - *white_y = info_ptr->colorspace.end_points_xy.whitey; - if (red_x != NULL) - *red_x = info_ptr->colorspace.end_points_xy.redx; - if (red_y != NULL) - *red_y = info_ptr->colorspace.end_points_xy.redy; - if (green_x != NULL) - *green_x = info_ptr->colorspace.end_points_xy.greenx; - if (green_y != NULL) - *green_y = info_ptr->colorspace.end_points_xy.greeny; - if (blue_x != NULL) - *blue_x = info_ptr->colorspace.end_points_xy.bluex; - if (blue_y != NULL) - *blue_y = info_ptr->colorspace.end_points_xy.bluey; - return (PNG_INFO_cHRM); - } - - return (0); -} -# endif -#endif - -#ifdef PNG_gAMA_SUPPORTED -# ifdef PNG_FIXED_POINT_SUPPORTED -png_uint_32 PNGAPI -png_get_gAMA_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_fixed_point *file_gamma) -{ - png_debug1(1, "in %s retrieval function", "gAMA"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0 && - file_gamma != NULL) - { - *file_gamma = info_ptr->colorspace.gamma; - return (PNG_INFO_gAMA); - } - - return (0); -} -# endif - -# ifdef PNG_FLOATING_POINT_SUPPORTED -png_uint_32 PNGAPI -png_get_gAMA(png_const_structrp png_ptr, png_const_inforp info_ptr, - double *file_gamma) -{ - png_debug1(1, "in %s retrieval function", "gAMA(float)"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0 && - file_gamma != NULL) - { - *file_gamma = png_float(png_ptr, info_ptr->colorspace.gamma, - "png_get_gAMA"); - return (PNG_INFO_gAMA); - } - - return (0); -} -# endif -#endif - -#ifdef PNG_sRGB_SUPPORTED -png_uint_32 PNGAPI -png_get_sRGB(png_const_structrp png_ptr, png_const_inforp info_ptr, - int *file_srgb_intent) -{ - png_debug1(1, "in %s retrieval function", "sRGB"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_sRGB) != 0 && file_srgb_intent != NULL) - { - *file_srgb_intent = info_ptr->colorspace.rendering_intent; - return (PNG_INFO_sRGB); - } - - return (0); -} -#endif - -#ifdef PNG_iCCP_SUPPORTED -png_uint_32 PNGAPI -png_get_iCCP(png_const_structrp png_ptr, png_inforp info_ptr, - png_charpp name, int *compression_type, - png_bytepp profile, png_uint_32 *proflen) -{ - png_debug1(1, "in %s retrieval function", "iCCP"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_iCCP) != 0 && - name != NULL && profile != NULL && proflen != NULL) - { - *name = info_ptr->iccp_name; - *profile = info_ptr->iccp_profile; - *proflen = png_get_uint_32(info_ptr->iccp_profile); - /* This is somewhat irrelevant since the profile data returned has - * actually been uncompressed. - */ - if (compression_type != NULL) - *compression_type = PNG_COMPRESSION_TYPE_BASE; - return (PNG_INFO_iCCP); - } - - return (0); - -} -#endif - -#ifdef PNG_sPLT_SUPPORTED -int PNGAPI -png_get_sPLT(png_const_structrp png_ptr, png_inforp info_ptr, - png_sPLT_tpp spalettes) -{ - if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL) - { - *spalettes = info_ptr->splt_palettes; - return info_ptr->splt_palettes_num; - } - - return (0); -} -#endif - -#ifdef PNG_eXIf_SUPPORTED -png_uint_32 PNGAPI -png_get_eXIf(png_const_structrp png_ptr, png_inforp info_ptr, - png_bytep *exif) -{ - png_warning(png_ptr, "png_get_eXIf does not work; use png_get_eXIf_1"); - PNG_UNUSED(info_ptr) - PNG_UNUSED(exif) - return 0; -} - -png_uint_32 PNGAPI -png_get_eXIf_1(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_uint_32 *num_exif, png_bytep *exif) -{ - png_debug1(1, "in %s retrieval function", "eXIf"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_eXIf) != 0 && exif != NULL) - { - *num_exif = info_ptr->num_exif; - *exif = info_ptr->exif; - return (PNG_INFO_eXIf); - } - - return (0); -} -#endif - -#ifdef PNG_hIST_SUPPORTED -png_uint_32 PNGAPI -png_get_hIST(png_const_structrp png_ptr, png_inforp info_ptr, - png_uint_16p *hist) -{ - png_debug1(1, "in %s retrieval function", "hIST"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_hIST) != 0 && hist != NULL) - { - *hist = info_ptr->hist; - return (PNG_INFO_hIST); - } - - return (0); -} -#endif - -png_uint_32 PNGAPI -png_get_IHDR(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_uint_32 *width, png_uint_32 *height, int *bit_depth, - int *color_type, int *interlace_type, int *compression_type, - int *filter_type) -{ - png_debug1(1, "in %s retrieval function", "IHDR"); - - if (png_ptr == NULL || info_ptr == NULL) - return (0); - - if (width != NULL) - *width = info_ptr->width; - - if (height != NULL) - *height = info_ptr->height; - - if (bit_depth != NULL) - *bit_depth = info_ptr->bit_depth; - - if (color_type != NULL) - *color_type = info_ptr->color_type; - - if (compression_type != NULL) - *compression_type = info_ptr->compression_type; - - if (filter_type != NULL) - *filter_type = info_ptr->filter_type; - - if (interlace_type != NULL) - *interlace_type = info_ptr->interlace_type; - - /* This is redundant if we can be sure that the info_ptr values were all - * assigned in png_set_IHDR(). We do the check anyhow in case an - * application has ignored our advice not to mess with the members - * of info_ptr directly. - */ - png_check_IHDR(png_ptr, info_ptr->width, info_ptr->height, - info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type, - info_ptr->compression_type, info_ptr->filter_type); - - return (1); -} - -#ifdef PNG_oFFs_SUPPORTED -png_uint_32 PNGAPI -png_get_oFFs(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type) -{ - png_debug1(1, "in %s retrieval function", "oFFs"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_oFFs) != 0 && - offset_x != NULL && offset_y != NULL && unit_type != NULL) - { - *offset_x = info_ptr->x_offset; - *offset_y = info_ptr->y_offset; - *unit_type = (int)info_ptr->offset_unit_type; - return (PNG_INFO_oFFs); - } - - return (0); -} -#endif - -#ifdef PNG_pCAL_SUPPORTED -png_uint_32 PNGAPI -png_get_pCAL(png_const_structrp png_ptr, png_inforp info_ptr, - png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, - png_charp *units, png_charpp *params) -{ - png_debug1(1, "in %s retrieval function", "pCAL"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pCAL) != 0 && - purpose != NULL && X0 != NULL && X1 != NULL && type != NULL && - nparams != NULL && units != NULL && params != NULL) - { - *purpose = info_ptr->pcal_purpose; - *X0 = info_ptr->pcal_X0; - *X1 = info_ptr->pcal_X1; - *type = (int)info_ptr->pcal_type; - *nparams = (int)info_ptr->pcal_nparams; - *units = info_ptr->pcal_units; - *params = info_ptr->pcal_params; - return (PNG_INFO_pCAL); - } - - return (0); -} -#endif - -#ifdef PNG_sCAL_SUPPORTED -# ifdef PNG_FIXED_POINT_SUPPORTED -# if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ - defined(PNG_FLOATING_POINT_SUPPORTED) -png_uint_32 PNGAPI -png_get_sCAL_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr, - int *unit, png_fixed_point *width, png_fixed_point *height) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_sCAL) != 0) - { - *unit = info_ptr->scal_unit; - /*TODO: make this work without FP support; the API is currently eliminated - * if neither floating point APIs nor internal floating point arithmetic - * are enabled. - */ - *width = png_fixed(png_ptr, atof(info_ptr->scal_s_width), "sCAL width"); - *height = png_fixed(png_ptr, atof(info_ptr->scal_s_height), - "sCAL height"); - return (PNG_INFO_sCAL); - } - - return(0); -} -# endif /* FLOATING_ARITHMETIC */ -# endif /* FIXED_POINT */ -# ifdef PNG_FLOATING_POINT_SUPPORTED -png_uint_32 PNGAPI -png_get_sCAL(png_const_structrp png_ptr, png_const_inforp info_ptr, - int *unit, double *width, double *height) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_sCAL) != 0) - { - *unit = info_ptr->scal_unit; - *width = atof(info_ptr->scal_s_width); - *height = atof(info_ptr->scal_s_height); - return (PNG_INFO_sCAL); - } - - return(0); -} -# endif /* FLOATING POINT */ -png_uint_32 PNGAPI -png_get_sCAL_s(png_const_structrp png_ptr, png_const_inforp info_ptr, - int *unit, png_charpp width, png_charpp height) -{ - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_sCAL) != 0) - { - *unit = info_ptr->scal_unit; - *width = info_ptr->scal_s_width; - *height = info_ptr->scal_s_height; - return (PNG_INFO_sCAL); - } - - return(0); -} -#endif /* sCAL */ - -#ifdef PNG_pHYs_SUPPORTED -png_uint_32 PNGAPI -png_get_pHYs(png_const_structrp png_ptr, png_const_inforp info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) -{ - png_uint_32 retval = 0; - - png_debug1(1, "in %s retrieval function", "pHYs"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - if (res_x != NULL) - { - *res_x = info_ptr->x_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - - if (res_y != NULL) - { - *res_y = info_ptr->y_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - - if (unit_type != NULL) - { - *unit_type = (int)info_ptr->phys_unit_type; - retval |= PNG_INFO_pHYs; - } - } - - return (retval); -} -#endif /* pHYs */ - -png_uint_32 PNGAPI -png_get_PLTE(png_const_structrp png_ptr, png_inforp info_ptr, - png_colorp *palette, int *num_palette) -{ - png_debug1(1, "in %s retrieval function", "PLTE"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_PLTE) != 0 && palette != NULL) - { - *palette = info_ptr->palette; - *num_palette = info_ptr->num_palette; - png_debug1(3, "num_palette = %d", *num_palette); - return (PNG_INFO_PLTE); - } - - return (0); -} - -#ifdef PNG_sBIT_SUPPORTED -png_uint_32 PNGAPI -png_get_sBIT(png_const_structrp png_ptr, png_inforp info_ptr, - png_color_8p *sig_bit) -{ - png_debug1(1, "in %s retrieval function", "sBIT"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_sBIT) != 0 && sig_bit != NULL) - { - *sig_bit = &(info_ptr->sig_bit); - return (PNG_INFO_sBIT); - } - - return (0); -} -#endif - -#ifdef PNG_TEXT_SUPPORTED -int PNGAPI -png_get_text(png_const_structrp png_ptr, png_inforp info_ptr, - png_textp *text_ptr, int *num_text) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0) - { - png_debug1(1, "in 0x%lx retrieval function", - (unsigned long)png_ptr->chunk_name); - - if (text_ptr != NULL) - *text_ptr = info_ptr->text; - - if (num_text != NULL) - *num_text = info_ptr->num_text; - - return info_ptr->num_text; - } - - if (num_text != NULL) - *num_text = 0; - - return(0); -} -#endif - -#ifdef PNG_tIME_SUPPORTED -png_uint_32 PNGAPI -png_get_tIME(png_const_structrp png_ptr, png_inforp info_ptr, - png_timep *mod_time) -{ - png_debug1(1, "in %s retrieval function", "tIME"); - - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_tIME) != 0 && mod_time != NULL) - { - *mod_time = &(info_ptr->mod_time); - return (PNG_INFO_tIME); - } - - return (0); -} -#endif - -#ifdef PNG_tRNS_SUPPORTED -png_uint_32 PNGAPI -png_get_tRNS(png_const_structrp png_ptr, png_inforp info_ptr, - png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color) -{ - png_uint_32 retval = 0; - if (png_ptr != NULL && info_ptr != NULL && - (info_ptr->valid & PNG_INFO_tRNS) != 0) - { - png_debug1(1, "in %s retrieval function", "tRNS"); - - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (trans_alpha != NULL) - { - *trans_alpha = info_ptr->trans_alpha; - retval |= PNG_INFO_tRNS; - } - - if (trans_color != NULL) - *trans_color = &(info_ptr->trans_color); - } - - else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */ - { - if (trans_color != NULL) - { - *trans_color = &(info_ptr->trans_color); - retval |= PNG_INFO_tRNS; - } - - if (trans_alpha != NULL) - *trans_alpha = NULL; - } - - if (num_trans != NULL) - { - *num_trans = info_ptr->num_trans; - retval |= PNG_INFO_tRNS; - } - } - - return (retval); -} -#endif - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -int PNGAPI -png_get_unknown_chunks(png_const_structrp png_ptr, png_inforp info_ptr, - png_unknown_chunkpp unknowns) -{ - if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL) - { - *unknowns = info_ptr->unknown_chunks; - return info_ptr->unknown_chunks_num; - } - - return (0); -} -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -png_byte PNGAPI -png_get_rgb_to_gray_status (png_const_structrp png_ptr) -{ - return (png_byte)(png_ptr ? png_ptr->rgb_to_gray_status : 0); -} -#endif - -#ifdef PNG_USER_CHUNKS_SUPPORTED -png_voidp PNGAPI -png_get_user_chunk_ptr(png_const_structrp png_ptr) -{ - return (png_ptr ? png_ptr->user_chunk_ptr : NULL); -} -#endif - -size_t PNGAPI -png_get_compression_buffer_size(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return 0; - -#ifdef PNG_WRITE_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0) -#endif - { -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED - return png_ptr->IDAT_read_size; -#else - return PNG_IDAT_READ_SIZE; -#endif - } - -#ifdef PNG_WRITE_SUPPORTED - else - return png_ptr->zbuffer_size; -#endif -} - -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -/* These functions were added to libpng 1.2.6 and were enabled - * by default in libpng-1.4.0 */ -png_uint_32 PNGAPI -png_get_user_width_max (png_const_structrp png_ptr) -{ - return (png_ptr ? png_ptr->user_width_max : 0); -} - -png_uint_32 PNGAPI -png_get_user_height_max (png_const_structrp png_ptr) -{ - return (png_ptr ? png_ptr->user_height_max : 0); -} - -/* This function was added to libpng 1.4.0 */ -png_uint_32 PNGAPI -png_get_chunk_cache_max (png_const_structrp png_ptr) -{ - return (png_ptr ? png_ptr->user_chunk_cache_max : 0); -} - -/* This function was added to libpng 1.4.1 */ -png_alloc_size_t PNGAPI -png_get_chunk_malloc_max (png_const_structrp png_ptr) -{ - return (png_ptr ? png_ptr->user_chunk_malloc_max : 0); -} -#endif /* SET_USER_LIMITS */ - -/* These functions were added to libpng 1.4.0 */ -#ifdef PNG_IO_STATE_SUPPORTED -png_uint_32 PNGAPI -png_get_io_state (png_const_structrp png_ptr) -{ - return png_ptr->io_state; -} - -png_uint_32 PNGAPI -png_get_io_chunk_type (png_const_structrp png_ptr) -{ - return png_ptr->chunk_name; -} -#endif /* IO_STATE */ - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -# ifdef PNG_GET_PALETTE_MAX_SUPPORTED -int PNGAPI -png_get_palette_max(png_const_structp png_ptr, png_const_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return png_ptr->num_palette_max; - - return (-1); -} -# endif -#endif - -#endif /* READ || WRITE */ diff --git a/Externals/libpng/pnginfo.h b/Externals/libpng/pnginfo.h deleted file mode 100644 index 1f98dedc42..0000000000 --- a/Externals/libpng/pnginfo.h +++ /dev/null @@ -1,267 +0,0 @@ - -/* pnginfo.h - header file for PNG reference library - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2013,2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - - /* png_info is a structure that holds the information in a PNG file so - * that the application can find out the characteristics of the image. - * If you are reading the file, this structure will tell you what is - * in the PNG file. If you are writing the file, fill in the information - * you want to put into the PNG file, using png_set_*() functions, then - * call png_write_info(). - * - * The names chosen should be very close to the PNG specification, so - * consult that document for information about the meaning of each field. - * - * With libpng < 0.95, it was only possible to directly set and read the - * the values in the png_info_struct, which meant that the contents and - * order of the values had to remain fixed. With libpng 0.95 and later, - * however, there are now functions that abstract the contents of - * png_info_struct from the application, so this makes it easier to use - * libpng with dynamic libraries, and even makes it possible to use - * libraries that don't have all of the libpng ancillary chunk-handing - * functionality. In libpng-1.5.0 this was moved into a separate private - * file that is not visible to applications. - * - * The following members may have allocated storage attached that should be - * cleaned up before the structure is discarded: palette, trans, text, - * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, - * splt_palettes, scal_unit, row_pointers, and unknowns. By default, these - * are automatically freed when the info structure is deallocated, if they were - * allocated internally by libpng. This behavior can be changed by means - * of the png_data_freer() function. - * - * More allocation details: all the chunk-reading functions that - * change these members go through the corresponding png_set_* - * functions. A function to clear these members is available: see - * png_free_data(). The png_set_* functions do not depend on being - * able to point info structure members to any of the storage they are - * passed (they make their own copies), EXCEPT that the png_set_text - * functions use the same storage passed to them in the text_ptr or - * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns - * functions do not make their own copies. - */ -#ifndef PNGINFO_H -#define PNGINFO_H - -struct png_info_def -{ - /* The following are necessary for every PNG file */ - png_uint_32 width; /* width of image in pixels (from IHDR) */ - png_uint_32 height; /* height of image in pixels (from IHDR) */ - png_uint_32 valid; /* valid chunk data (see PNG_INFO_ below) */ - size_t rowbytes; /* bytes needed to hold an untransformed row */ - png_colorp palette; /* array of color values (valid & PNG_INFO_PLTE) */ - png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */ - png_uint_16 num_trans; /* number of transparent palette color (tRNS) */ - png_byte bit_depth; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ - png_byte color_type; /* see PNG_COLOR_TYPE_ below (from IHDR) */ - /* The following three should have been named *_method not *_type */ - png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ - png_byte filter_type; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ - png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - - /* The following are set by png_set_IHDR, called from the application on - * write, but the are never actually used by the write code. - */ - png_byte channels; /* number of data channels per pixel (1, 2, 3, 4) */ - png_byte pixel_depth; /* number of bits per pixel */ - png_byte spare_byte; /* to align the data, and for future use */ - -#ifdef PNG_READ_SUPPORTED - /* This is never set during write */ - png_byte signature[8]; /* magic bytes read by libpng from start of file */ -#endif - - /* The rest of the data is optional. If you are reading, check the - * valid field to see if the information in these are valid. If you - * are writing, set the valid field to those chunks you want written, - * and initialize the appropriate fields below. - */ - -#if defined(PNG_COLORSPACE_SUPPORTED) || defined(PNG_GAMMA_SUPPORTED) - /* png_colorspace only contains 'flags' if neither GAMMA or COLORSPACE are - * defined. When COLORSPACE is switched on all the colorspace-defining - * chunks should be enabled, when GAMMA is switched on all the gamma-defining - * chunks should be enabled. If this is not done it becomes possible to read - * inconsistent PNG files and assign a probably incorrect interpretation to - * the information. (In other words, by carefully choosing which chunks to - * recognize the system configuration can select an interpretation for PNG - * files containing ambiguous data and this will result in inconsistent - * behavior between different libpng builds!) - */ - png_colorspace colorspace; -#endif - -#ifdef PNG_iCCP_SUPPORTED - /* iCCP chunk data. */ - png_charp iccp_name; /* profile name */ - png_bytep iccp_profile; /* International Color Consortium profile data */ - png_uint_32 iccp_proflen; /* ICC profile data length */ -#endif - -#ifdef PNG_TEXT_SUPPORTED - /* The tEXt, and zTXt chunks contain human-readable textual data in - * uncompressed, compressed, and optionally compressed forms, respectively. - * The data in "text" is an array of pointers to uncompressed, - * null-terminated C strings. Each chunk has a keyword that describes the - * textual data contained in that chunk. Keywords are not required to be - * unique, and the text string may be empty. Any number of text chunks may - * be in an image. - */ - int num_text; /* number of comments read or comments to write */ - int max_text; /* current size of text array */ - png_textp text; /* array of comments read or comments to write */ -#endif /* TEXT */ - -#ifdef PNG_tIME_SUPPORTED - /* The tIME chunk holds the last time the displayed image data was - * modified. See the png_time struct for the contents of this struct. - */ - png_time mod_time; -#endif - -#ifdef PNG_sBIT_SUPPORTED - /* The sBIT chunk specifies the number of significant high-order bits - * in the pixel data. Values are in the range [1, bit_depth], and are - * only specified for the channels in the pixel data. The contents of - * the low-order bits is not specified. Data is valid if - * (valid & PNG_INFO_sBIT) is non-zero. - */ - png_color_8 sig_bit; /* significant bits in color channels */ -#endif - -#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ -defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The tRNS chunk supplies transparency data for paletted images and - * other image types that don't need a full alpha channel. There are - * "num_trans" transparency values for a paletted image, stored in the - * same order as the palette colors, starting from index 0. Values - * for the data are in the range [0, 255], ranging from fully transparent - * to fully opaque, respectively. For non-paletted images, there is a - * single color specified that should be treated as fully transparent. - * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. - */ - png_bytep trans_alpha; /* alpha values for paletted image */ - png_color_16 trans_color; /* transparent color for non-palette image */ -#endif - -#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The bKGD chunk gives the suggested image background color if the - * display program does not have its own background color and the image - * is needs to composited onto a background before display. The colors - * in "background" are normally in the same color space/depth as the - * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. - */ - png_color_16 background; -#endif - -#ifdef PNG_oFFs_SUPPORTED - /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards - * and downwards from the top-left corner of the display, page, or other - * application-specific co-ordinate space. See the PNG_OFFSET_ defines - * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. - */ - png_int_32 x_offset; /* x offset on page */ - png_int_32 y_offset; /* y offset on page */ - png_byte offset_unit_type; /* offset units type */ -#endif - -#ifdef PNG_pHYs_SUPPORTED - /* The pHYs chunk gives the physical pixel density of the image for - * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ - * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. - */ - png_uint_32 x_pixels_per_unit; /* horizontal pixel density */ - png_uint_32 y_pixels_per_unit; /* vertical pixel density */ - png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */ -#endif - -#ifdef PNG_eXIf_SUPPORTED - int num_exif; /* Added at libpng-1.6.31 */ - png_bytep exif; -# ifdef PNG_READ_eXIf_SUPPORTED - png_bytep eXIf_buf; /* Added at libpng-1.6.32 */ -# endif -#endif - -#ifdef PNG_hIST_SUPPORTED - /* The hIST chunk contains the relative frequency or importance of the - * various palette entries, so that a viewer can intelligently select a - * reduced-color palette, if required. Data is an array of "num_palette" - * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) - * is non-zero. - */ - png_uint_16p hist; -#endif - -#ifdef PNG_pCAL_SUPPORTED - /* The pCAL chunk describes a transformation between the stored pixel - * values and original physical data values used to create the image. - * The integer range [0, 2^bit_depth - 1] maps to the floating-point - * range given by [pcal_X0, pcal_X1], and are further transformed by a - * (possibly non-linear) transformation function given by "pcal_type" - * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_ - * defines below, and the PNG-Group's PNG extensions document for a - * complete description of the transformations and how they should be - * implemented, and for a description of the ASCII parameter strings. - * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. - */ - png_charp pcal_purpose; /* pCAL chunk description string */ - png_int_32 pcal_X0; /* minimum value */ - png_int_32 pcal_X1; /* maximum value */ - png_charp pcal_units; /* Latin-1 string giving physical units */ - png_charpp pcal_params; /* ASCII strings containing parameter values */ - png_byte pcal_type; /* equation type (see PNG_EQUATION_ below) */ - png_byte pcal_nparams; /* number of parameters given in pcal_params */ -#endif - -/* New members added in libpng-1.0.6 */ - png_uint_32 free_me; /* flags items libpng is responsible for freeing */ - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED - /* Storage for unknown chunks that the library doesn't recognize. */ - png_unknown_chunkp unknown_chunks; - - /* The type of this field is limited by the type of - * png_struct::user_chunk_cache_max, else overflow can occur. - */ - int unknown_chunks_num; -#endif - -#ifdef PNG_sPLT_SUPPORTED - /* Data on sPLT chunks (there may be more than one). */ - png_sPLT_tp splt_palettes; - int splt_palettes_num; /* Match type returned by png_get API */ -#endif - -#ifdef PNG_sCAL_SUPPORTED - /* The sCAL chunk describes the actual physical dimensions of the - * subject matter of the graphic. The chunk contains a unit specification - * a byte value, and two ASCII strings representing floating-point - * values. The values are width and height corresponding to one pixel - * in the image. Data values are valid if (valid & PNG_INFO_sCAL) is - * non-zero. - */ - png_byte scal_unit; /* unit of physical scale */ - png_charp scal_s_width; /* string containing height */ - png_charp scal_s_height; /* string containing width */ -#endif - -#ifdef PNG_INFO_IMAGE_SUPPORTED - /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) - non-zero */ - /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ - png_bytepp row_pointers; /* the image bits */ -#endif - -}; -#endif /* PNGINFO_H */ diff --git a/Externals/libpng/pnglibconf.h b/Externals/libpng/pnglibconf.h deleted file mode 100644 index e1e27e957e..0000000000 --- a/Externals/libpng/pnglibconf.h +++ /dev/null @@ -1,219 +0,0 @@ -/* pnglibconf.h - library build configuration */ - -/* libpng version 1.6.37 */ - -/* Copyright (c) 2018-2019 Cosmin Truta */ -/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ - -/* This code is released under the libpng license. */ -/* For conditions of distribution and use, see the disclaimer */ -/* and license in png.h */ - -/* pnglibconf.h */ -/* Machine generated file: DO NOT EDIT */ -/* Derived from: scripts/pnglibconf.dfa */ -#ifndef PNGLCONF_H -#define PNGLCONF_H -/* options */ -#define PNG_16BIT_SUPPORTED -#define PNG_ALIGNED_MEMORY_SUPPORTED -/*#undef PNG_ARM_NEON_API_SUPPORTED*/ -/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ -#define PNG_BENIGN_ERRORS_SUPPORTED -#define PNG_BENIGN_READ_ERRORS_SUPPORTED -/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ -#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED -#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_COLORSPACE_SUPPORTED -#define PNG_CONSOLE_IO_SUPPORTED -#define PNG_CONVERT_tIME_SUPPORTED -#define PNG_EASY_ACCESS_SUPPORTED -/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ -#define PNG_ERROR_TEXT_SUPPORTED -#define PNG_FIXED_POINT_SUPPORTED -#define PNG_FLOATING_ARITHMETIC_SUPPORTED -#define PNG_FLOATING_POINT_SUPPORTED -#define PNG_FORMAT_AFIRST_SUPPORTED -#define PNG_FORMAT_BGR_SUPPORTED -#define PNG_GAMMA_SUPPORTED -#define PNG_GET_PALETTE_MAX_SUPPORTED -#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED -#define PNG_INCH_CONVERSIONS_SUPPORTED -#define PNG_INFO_IMAGE_SUPPORTED -#define PNG_IO_STATE_SUPPORTED -#define PNG_MNG_FEATURES_SUPPORTED -#define PNG_POINTER_INDEXING_SUPPORTED -/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ -/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ -#define PNG_PROGRESSIVE_READ_SUPPORTED -#define PNG_READ_16BIT_SUPPORTED -#define PNG_READ_ALPHA_MODE_SUPPORTED -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_READ_BACKGROUND_SUPPORTED -#define PNG_READ_BGR_SUPPORTED -#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED -#define PNG_READ_COMPRESSED_TEXT_SUPPORTED -#define PNG_READ_EXPAND_16_SUPPORTED -#define PNG_READ_EXPAND_SUPPORTED -#define PNG_READ_FILLER_SUPPORTED -#define PNG_READ_GAMMA_SUPPORTED -#define PNG_READ_GET_PALETTE_MAX_SUPPORTED -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#define PNG_READ_INTERLACING_SUPPORTED -#define PNG_READ_INT_FUNCTIONS_SUPPORTED -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#define PNG_READ_INVERT_SUPPORTED -#define PNG_READ_OPT_PLTE_SUPPORTED -#define PNG_READ_PACKSWAP_SUPPORTED -#define PNG_READ_PACK_SUPPORTED -#define PNG_READ_QUANTIZE_SUPPORTED -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#define PNG_READ_SCALE_16_TO_8_SUPPORTED -#define PNG_READ_SHIFT_SUPPORTED -#define PNG_READ_STRIP_16_TO_8_SUPPORTED -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#define PNG_READ_SUPPORTED -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#define PNG_READ_SWAP_SUPPORTED -#define PNG_READ_TEXT_SUPPORTED -#define PNG_READ_TRANSFORMS_SUPPORTED -#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_READ_USER_CHUNKS_SUPPORTED -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#define PNG_READ_bKGD_SUPPORTED -#define PNG_READ_cHRM_SUPPORTED -#define PNG_READ_eXIf_SUPPORTED -#define PNG_READ_gAMA_SUPPORTED -#define PNG_READ_hIST_SUPPORTED -#define PNG_READ_iCCP_SUPPORTED -#define PNG_READ_iTXt_SUPPORTED -#define PNG_READ_oFFs_SUPPORTED -#define PNG_READ_pCAL_SUPPORTED -#define PNG_READ_pHYs_SUPPORTED -#define PNG_READ_sBIT_SUPPORTED -#define PNG_READ_sCAL_SUPPORTED -#define PNG_READ_sPLT_SUPPORTED -#define PNG_READ_sRGB_SUPPORTED -#define PNG_READ_tEXt_SUPPORTED -#define PNG_READ_tIME_SUPPORTED -#define PNG_READ_tRNS_SUPPORTED -#define PNG_READ_zTXt_SUPPORTED -#define PNG_SAVE_INT_32_SUPPORTED -#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SEQUENTIAL_READ_SUPPORTED -#define PNG_SETJMP_SUPPORTED -#define PNG_SET_OPTION_SUPPORTED -#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_SET_USER_LIMITS_SUPPORTED -#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED -#define PNG_SIMPLIFIED_READ_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -#define PNG_SIMPLIFIED_WRITE_SUPPORTED -#define PNG_STDIO_SUPPORTED -#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_TEXT_SUPPORTED -#define PNG_TIME_RFC1123_SUPPORTED -#define PNG_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_USER_CHUNKS_SUPPORTED -#define PNG_USER_LIMITS_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -#define PNG_USER_TRANSFORM_INFO_SUPPORTED -#define PNG_USER_TRANSFORM_PTR_SUPPORTED -#define PNG_WARNINGS_SUPPORTED -#define PNG_WRITE_16BIT_SUPPORTED -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#define PNG_WRITE_BGR_SUPPORTED -#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED -#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -#define PNG_WRITE_FILLER_SUPPORTED -#define PNG_WRITE_FILTER_SUPPORTED -#define PNG_WRITE_FLUSH_SUPPORTED -#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED -#define PNG_WRITE_INTERLACING_SUPPORTED -#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#define PNG_WRITE_INVERT_SUPPORTED -#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED -#define PNG_WRITE_PACKSWAP_SUPPORTED -#define PNG_WRITE_PACK_SUPPORTED -#define PNG_WRITE_SHIFT_SUPPORTED -#define PNG_WRITE_SUPPORTED -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#define PNG_WRITE_SWAP_SUPPORTED -#define PNG_WRITE_TEXT_SUPPORTED -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#define PNG_WRITE_bKGD_SUPPORTED -#define PNG_WRITE_cHRM_SUPPORTED -#define PNG_WRITE_eXIf_SUPPORTED -#define PNG_WRITE_gAMA_SUPPORTED -#define PNG_WRITE_hIST_SUPPORTED -#define PNG_WRITE_iCCP_SUPPORTED -#define PNG_WRITE_iTXt_SUPPORTED -#define PNG_WRITE_oFFs_SUPPORTED -#define PNG_WRITE_pCAL_SUPPORTED -#define PNG_WRITE_pHYs_SUPPORTED -#define PNG_WRITE_sBIT_SUPPORTED -#define PNG_WRITE_sCAL_SUPPORTED -#define PNG_WRITE_sPLT_SUPPORTED -#define PNG_WRITE_sRGB_SUPPORTED -#define PNG_WRITE_tEXt_SUPPORTED -#define PNG_WRITE_tIME_SUPPORTED -#define PNG_WRITE_tRNS_SUPPORTED -#define PNG_WRITE_zTXt_SUPPORTED -#define PNG_bKGD_SUPPORTED -#define PNG_cHRM_SUPPORTED -#define PNG_eXIf_SUPPORTED -#define PNG_gAMA_SUPPORTED -#define PNG_hIST_SUPPORTED -#define PNG_iCCP_SUPPORTED -#define PNG_iTXt_SUPPORTED -#define PNG_oFFs_SUPPORTED -#define PNG_pCAL_SUPPORTED -#define PNG_pHYs_SUPPORTED -#define PNG_sBIT_SUPPORTED -#define PNG_sCAL_SUPPORTED -#define PNG_sPLT_SUPPORTED -#define PNG_sRGB_SUPPORTED -#define PNG_tEXt_SUPPORTED -#define PNG_tIME_SUPPORTED -#define PNG_tRNS_SUPPORTED -#define PNG_zTXt_SUPPORTED -/* end of options */ -/* settings */ -#define PNG_API_RULE 0 -#define PNG_DEFAULT_READ_MACROS 1 -#define PNG_GAMMA_THRESHOLD_FIXED 5000 -#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE -#define PNG_INFLATE_BUF_SIZE 1024 -#define PNG_LINKAGE_API extern -#define PNG_LINKAGE_CALLBACK extern -#define PNG_LINKAGE_DATA extern -#define PNG_LINKAGE_FUNCTION extern -#define PNG_MAX_GAMMA_8 11 -#define PNG_QUANTIZE_BLUE_BITS 5 -#define PNG_QUANTIZE_GREEN_BITS 5 -#define PNG_QUANTIZE_RED_BITS 5 -#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) -#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 -#define PNG_USER_CHUNK_CACHE_MAX 1000 -#define PNG_USER_CHUNK_MALLOC_MAX 8000000 -#define PNG_USER_HEIGHT_MAX 1000000 -#define PNG_USER_WIDTH_MAX 1000000 -#define PNG_ZBUF_SIZE 8192 -#define PNG_ZLIB_VERNUM 0 /* unknown */ -#define PNG_Z_DEFAULT_COMPRESSION (-1) -#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 -#define PNG_Z_DEFAULT_STRATEGY 1 -#define PNG_sCAL_PRECISION 5 -#define PNG_sRGB_PROFILE_CHECKS 2 -/* end of settings */ -#endif /* PNGLCONF_H */ diff --git a/Externals/libpng/pngmem.c b/Externals/libpng/pngmem.c deleted file mode 100644 index 09ed9c1c99..0000000000 --- a/Externals/libpng/pngmem.c +++ /dev/null @@ -1,284 +0,0 @@ - -/* pngmem.c - stub functions for memory allocation - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2014,2016 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file provides a location for all memory allocation. Users who - * need special memory handling are expected to supply replacement - * functions for png_malloc() and png_free(), and to use - * png_create_read_struct_2() and png_create_write_struct_2() to - * identify the replacement functions. - */ - -#include "pngpriv.h" - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) -/* Free a png_struct */ -void /* PRIVATE */ -png_destroy_png_struct(png_structrp png_ptr) -{ - if (png_ptr != NULL) - { - /* png_free might call png_error and may certainly call - * png_get_mem_ptr, so fake a temporary png_struct to support this. - */ - png_struct dummy_struct = *png_ptr; - memset(png_ptr, 0, (sizeof *png_ptr)); - png_free(&dummy_struct, png_ptr); - -# ifdef PNG_SETJMP_SUPPORTED - /* We may have a jmp_buf left to deallocate. */ - png_free_jmpbuf(&dummy_struct); -# endif - } -} - -/* Allocate memory. For reasonable files, size should never exceed - * 64K. However, zlib may allocate more than 64K if you don't tell - * it not to. See zconf.h and png.h for more information. zlib does - * need to allocate exactly 64K, so whatever you call here must - * have the ability to do that. - */ -PNG_FUNCTION(png_voidp,PNGAPI -png_calloc,(png_const_structrp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) -{ - png_voidp ret; - - ret = png_malloc(png_ptr, size); - - if (ret != NULL) - memset(ret, 0, size); - - return ret; -} - -/* png_malloc_base, an internal function added at libpng 1.6.0, does the work of - * allocating memory, taking into account limits and PNG_USER_MEM_SUPPORTED. - * Checking and error handling must happen outside this routine; it returns NULL - * if the allocation cannot be done (for any reason.) - */ -PNG_FUNCTION(png_voidp /* PRIVATE */, -png_malloc_base,(png_const_structrp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED) -{ - /* Moved to png_malloc_base from png_malloc_default in 1.6.0; the DOS - * allocators have also been removed in 1.6.0, so any 16-bit system now has - * to implement a user memory handler. This checks to be sure it isn't - * called with big numbers. - */ -#ifndef PNG_USER_MEM_SUPPORTED - PNG_UNUSED(png_ptr) -#endif - - /* Some compilers complain that this is always true. However, it - * can be false when integer overflow happens. - */ - if (size > 0 && size <= PNG_SIZE_MAX -# ifdef PNG_MAX_MALLOC_64K - && size <= 65536U -# endif - ) - { -#ifdef PNG_USER_MEM_SUPPORTED - if (png_ptr != NULL && png_ptr->malloc_fn != NULL) - return png_ptr->malloc_fn(png_constcast(png_structrp,png_ptr), size); - - else -#endif - return malloc((size_t)size); /* checked for truncation above */ - } - - else - return NULL; -} - -#if defined(PNG_TEXT_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) ||\ - defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) -/* This is really here only to work round a spurious warning in GCC 4.6 and 4.7 - * that arises because of the checks in png_realloc_array that are repeated in - * png_malloc_array. - */ -static png_voidp -png_malloc_array_checked(png_const_structrp png_ptr, int nelements, - size_t element_size) -{ - png_alloc_size_t req = (png_alloc_size_t)nelements; /* known to be > 0 */ - - if (req <= PNG_SIZE_MAX/element_size) - return png_malloc_base(png_ptr, req * element_size); - - /* The failure case when the request is too large */ - return NULL; -} - -PNG_FUNCTION(png_voidp /* PRIVATE */, -png_malloc_array,(png_const_structrp png_ptr, int nelements, - size_t element_size),PNG_ALLOCATED) -{ - if (nelements <= 0 || element_size == 0) - png_error(png_ptr, "internal error: array alloc"); - - return png_malloc_array_checked(png_ptr, nelements, element_size); -} - -PNG_FUNCTION(png_voidp /* PRIVATE */, -png_realloc_array,(png_const_structrp png_ptr, png_const_voidp old_array, - int old_elements, int add_elements, size_t element_size),PNG_ALLOCATED) -{ - /* These are internal errors: */ - if (add_elements <= 0 || element_size == 0 || old_elements < 0 || - (old_array == NULL && old_elements > 0)) - png_error(png_ptr, "internal error: array realloc"); - - /* Check for overflow on the elements count (so the caller does not have to - * check.) - */ - if (add_elements <= INT_MAX - old_elements) - { - png_voidp new_array = png_malloc_array_checked(png_ptr, - old_elements+add_elements, element_size); - - if (new_array != NULL) - { - /* Because png_malloc_array worked the size calculations below cannot - * overflow. - */ - if (old_elements > 0) - memcpy(new_array, old_array, element_size*(unsigned)old_elements); - - memset((char*)new_array + element_size*(unsigned)old_elements, 0, - element_size*(unsigned)add_elements); - - return new_array; - } - } - - return NULL; /* error */ -} -#endif /* TEXT || sPLT || STORE_UNKNOWN_CHUNKS */ - -/* Various functions that have different error handling are derived from this. - * png_malloc always exists, but if PNG_USER_MEM_SUPPORTED is defined a separate - * function png_malloc_default is also provided. - */ -PNG_FUNCTION(png_voidp,PNGAPI -png_malloc,(png_const_structrp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) -{ - png_voidp ret; - - if (png_ptr == NULL) - return NULL; - - ret = png_malloc_base(png_ptr, size); - - if (ret == NULL) - png_error(png_ptr, "Out of memory"); /* 'm' means png_malloc */ - - return ret; -} - -#ifdef PNG_USER_MEM_SUPPORTED -PNG_FUNCTION(png_voidp,PNGAPI -png_malloc_default,(png_const_structrp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED PNG_DEPRECATED) -{ - png_voidp ret; - - if (png_ptr == NULL) - return NULL; - - /* Passing 'NULL' here bypasses the application provided memory handler. */ - ret = png_malloc_base(NULL/*use malloc*/, size); - - if (ret == NULL) - png_error(png_ptr, "Out of Memory"); /* 'M' means png_malloc_default */ - - return ret; -} -#endif /* USER_MEM */ - -/* This function was added at libpng version 1.2.3. The png_malloc_warn() - * function will issue a png_warning and return NULL instead of issuing a - * png_error, if it fails to allocate the requested memory. - */ -PNG_FUNCTION(png_voidp,PNGAPI -png_malloc_warn,(png_const_structrp png_ptr, png_alloc_size_t size), - PNG_ALLOCATED) -{ - if (png_ptr != NULL) - { - png_voidp ret = png_malloc_base(png_ptr, size); - - if (ret != NULL) - return ret; - - png_warning(png_ptr, "Out of memory"); - } - - return NULL; -} - -/* Free a pointer allocated by png_malloc(). If ptr is NULL, return - * without taking any action. - */ -void PNGAPI -png_free(png_const_structrp png_ptr, png_voidp ptr) -{ - if (png_ptr == NULL || ptr == NULL) - return; - -#ifdef PNG_USER_MEM_SUPPORTED - if (png_ptr->free_fn != NULL) - png_ptr->free_fn(png_constcast(png_structrp,png_ptr), ptr); - - else - png_free_default(png_ptr, ptr); -} - -PNG_FUNCTION(void,PNGAPI -png_free_default,(png_const_structrp png_ptr, png_voidp ptr),PNG_DEPRECATED) -{ - if (png_ptr == NULL || ptr == NULL) - return; -#endif /* USER_MEM */ - - free(ptr); -} - -#ifdef PNG_USER_MEM_SUPPORTED -/* This function is called when the application wants to use another method - * of allocating and freeing memory. - */ -void PNGAPI -png_set_mem_fn(png_structrp png_ptr, png_voidp mem_ptr, png_malloc_ptr - malloc_fn, png_free_ptr free_fn) -{ - if (png_ptr != NULL) - { - png_ptr->mem_ptr = mem_ptr; - png_ptr->malloc_fn = malloc_fn; - png_ptr->free_fn = free_fn; - } -} - -/* This function returns a pointer to the mem_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy and png_read_destroy are called. - */ -png_voidp PNGAPI -png_get_mem_ptr(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return NULL; - - return png_ptr->mem_ptr; -} -#endif /* USER_MEM */ -#endif /* READ || WRITE */ diff --git a/Externals/libpng/pngpread.c b/Externals/libpng/pngpread.c deleted file mode 100644 index e283627b77..0000000000 --- a/Externals/libpng/pngpread.c +++ /dev/null @@ -1,1096 +0,0 @@ - -/* pngpread.c - read a png file in push mode - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - -/* Push model modes */ -#define PNG_READ_SIG_MODE 0 -#define PNG_READ_CHUNK_MODE 1 -#define PNG_READ_IDAT_MODE 2 -#define PNG_READ_tEXt_MODE 4 -#define PNG_READ_zTXt_MODE 5 -#define PNG_READ_DONE_MODE 6 -#define PNG_READ_iTXt_MODE 7 -#define PNG_ERROR_MODE 8 - -#define PNG_PUSH_SAVE_BUFFER_IF_FULL \ -if (png_ptr->push_length + 4 > png_ptr->buffer_size) \ - { png_push_save_buffer(png_ptr); return; } -#define PNG_PUSH_SAVE_BUFFER_IF_LT(N) \ -if (png_ptr->buffer_size < N) \ - { png_push_save_buffer(png_ptr); return; } - -void PNGAPI -png_process_data(png_structrp png_ptr, png_inforp info_ptr, - png_bytep buffer, size_t buffer_size) -{ - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_push_restore_buffer(png_ptr, buffer, buffer_size); - - while (png_ptr->buffer_size) - { - png_process_some_data(png_ptr, info_ptr); - } -} - -size_t PNGAPI -png_process_data_pause(png_structrp png_ptr, int save) -{ - if (png_ptr != NULL) - { - /* It's easiest for the caller if we do the save; then the caller doesn't - * have to supply the same data again: - */ - if (save != 0) - png_push_save_buffer(png_ptr); - else - { - /* This includes any pending saved bytes: */ - size_t remaining = png_ptr->buffer_size; - png_ptr->buffer_size = 0; - - /* So subtract the saved buffer size, unless all the data - * is actually 'saved', in which case we just return 0 - */ - if (png_ptr->save_buffer_size < remaining) - return remaining - png_ptr->save_buffer_size; - } - } - - return 0; -} - -png_uint_32 PNGAPI -png_process_data_skip(png_structrp png_ptr) -{ -/* TODO: Deprecate and remove this API. - * Somewhere the implementation of this seems to have been lost, - * or abandoned. It was only to support some internal back-door access - * to png_struct) in libpng-1.4.x. - */ - png_app_warning(png_ptr, -"png_process_data_skip is not implemented in any current version of libpng"); - return 0; -} - -/* What we do with the incoming data depends on what we were previously - * doing before we ran out of data... - */ -void /* PRIVATE */ -png_process_some_data(png_structrp png_ptr, png_inforp info_ptr) -{ - if (png_ptr == NULL) - return; - - switch (png_ptr->process_mode) - { - case PNG_READ_SIG_MODE: - { - png_push_read_sig(png_ptr, info_ptr); - break; - } - - case PNG_READ_CHUNK_MODE: - { - png_push_read_chunk(png_ptr, info_ptr); - break; - } - - case PNG_READ_IDAT_MODE: - { - png_push_read_IDAT(png_ptr); - break; - } - - default: - { - png_ptr->buffer_size = 0; - break; - } - } -} - -/* Read any remaining signature bytes from the stream and compare them with - * the correct PNG signature. It is possible that this routine is called - * with bytes already read from the signature, either because they have been - * checked by the calling application, or because of multiple calls to this - * routine. - */ -void /* PRIVATE */ -png_push_read_sig(png_structrp png_ptr, png_inforp info_ptr) -{ - size_t num_checked = png_ptr->sig_bytes; /* SAFE, does not exceed 8 */ - size_t num_to_check = 8 - num_checked; - - if (png_ptr->buffer_size < num_to_check) - { - num_to_check = png_ptr->buffer_size; - } - - png_push_fill_buffer(png_ptr, &(info_ptr->signature[num_checked]), - num_to_check); - png_ptr->sig_bytes = (png_byte)(png_ptr->sig_bytes + num_to_check); - - if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check)) - { - if (num_checked < 4 && - png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4)) - png_error(png_ptr, "Not a PNG file"); - - else - png_error(png_ptr, "PNG file corrupted by ASCII conversion"); - } - else - { - if (png_ptr->sig_bytes >= 8) - { - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - } - } -} - -void /* PRIVATE */ -png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr) -{ - png_uint_32 chunk_name; -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - int keep; /* unknown handling method */ -#endif - - /* First we make sure we have enough data for the 4-byte chunk name - * and the 4-byte chunk length before proceeding with decoding the - * chunk data. To fully decode each of these chunks, we also make - * sure we have enough data in the buffer for the 4-byte CRC at the - * end of every chunk (except IDAT, which is handled separately). - */ - if ((png_ptr->mode & PNG_HAVE_CHUNK_HEADER) == 0) - { - png_byte chunk_length[4]; - png_byte chunk_tag[4]; - - PNG_PUSH_SAVE_BUFFER_IF_LT(8) - png_push_fill_buffer(png_ptr, chunk_length, 4); - png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length); - png_reset_crc(png_ptr); - png_crc_read(png_ptr, chunk_tag, 4); - png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag); - png_check_chunk_name(png_ptr, png_ptr->chunk_name); - png_check_chunk_length(png_ptr, png_ptr->push_length); - png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; - } - - chunk_name = png_ptr->chunk_name; - - if (chunk_name == png_IDAT) - { - if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) - png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; - - /* If we reach an IDAT chunk, this means we have read all of the - * header chunks, and we can start reading the image (or if this - * is called after the image has been read - we have an error). - */ - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_error(png_ptr, "Missing IHDR before IDAT"); - - else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - (png_ptr->mode & PNG_HAVE_PLTE) == 0) - png_error(png_ptr, "Missing PLTE before IDAT"); - - png_ptr->process_mode = PNG_READ_IDAT_MODE; - - if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - if ((png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) == 0) - if (png_ptr->push_length == 0) - return; - - png_ptr->mode |= PNG_HAVE_IDAT; - - if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) - png_benign_error(png_ptr, "Too many IDATs found"); - } - - if (chunk_name == png_IHDR) - { - if (png_ptr->push_length != 13) - png_error(png_ptr, "Invalid IHDR length"); - - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length); - } - - else if (chunk_name == png_IEND) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length); - - png_ptr->process_mode = PNG_READ_DONE_MODE; - png_push_have_end(png_ptr, info_ptr); - } - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, keep); - - if (chunk_name == png_PLTE) - png_ptr->mode |= PNG_HAVE_PLTE; - } -#endif - - else if (chunk_name == png_PLTE) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length); - } - - else if (chunk_name == png_IDAT) - { - png_ptr->idat_size = png_ptr->push_length; - png_ptr->process_mode = PNG_READ_IDAT_MODE; - png_push_have_info(png_ptr, info_ptr); - png_ptr->zstream.avail_out = - (uInt) PNG_ROWBYTES(png_ptr->pixel_depth, - png_ptr->iwidth) + 1; - png_ptr->zstream.next_out = png_ptr->row_buf; - return; - } - -#ifdef PNG_READ_gAMA_SUPPORTED - else if (png_ptr->chunk_name == png_gAMA) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_sBIT_SUPPORTED - else if (png_ptr->chunk_name == png_sBIT) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_cHRM_SUPPORTED - else if (png_ptr->chunk_name == png_cHRM) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_sRGB_SUPPORTED - else if (chunk_name == png_sRGB) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_iCCP_SUPPORTED - else if (png_ptr->chunk_name == png_iCCP) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_iCCP(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_sPLT_SUPPORTED - else if (chunk_name == png_sPLT) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_sPLT(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_tRNS_SUPPORTED - else if (chunk_name == png_tRNS) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_bKGD_SUPPORTED - else if (chunk_name == png_bKGD) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_hIST_SUPPORTED - else if (chunk_name == png_hIST) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_pHYs_SUPPORTED - else if (chunk_name == png_pHYs) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_oFFs_SUPPORTED - else if (chunk_name == png_oFFs) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length); - } -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED - else if (chunk_name == png_pCAL) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_sCAL_SUPPORTED - else if (chunk_name == png_sCAL) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_sCAL(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_tIME_SUPPORTED - else if (chunk_name == png_tIME) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_tEXt_SUPPORTED - else if (chunk_name == png_tEXt) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_zTXt_SUPPORTED - else if (chunk_name == png_zTXt) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length); - } - -#endif -#ifdef PNG_READ_iTXt_SUPPORTED - else if (chunk_name == png_iTXt) - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); - } -#endif - - else - { - PNG_PUSH_SAVE_BUFFER_IF_FULL - png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, - PNG_HANDLE_CHUNK_AS_DEFAULT); - } - - png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; -} - -void PNGCBAPI -png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, size_t length) -{ - png_bytep ptr; - - if (png_ptr == NULL) - return; - - ptr = buffer; - if (png_ptr->save_buffer_size != 0) - { - size_t save_size; - - if (length < png_ptr->save_buffer_size) - save_size = length; - - else - save_size = png_ptr->save_buffer_size; - - memcpy(ptr, png_ptr->save_buffer_ptr, save_size); - length -= save_size; - ptr += save_size; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - if (length != 0 && png_ptr->current_buffer_size != 0) - { - size_t save_size; - - if (length < png_ptr->current_buffer_size) - save_size = length; - - else - save_size = png_ptr->current_buffer_size; - - memcpy(ptr, png_ptr->current_buffer_ptr, save_size); - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } -} - -void /* PRIVATE */ -png_push_save_buffer(png_structrp png_ptr) -{ - if (png_ptr->save_buffer_size != 0) - { - if (png_ptr->save_buffer_ptr != png_ptr->save_buffer) - { - size_t i, istop; - png_bytep sp; - png_bytep dp; - - istop = png_ptr->save_buffer_size; - for (i = 0, sp = png_ptr->save_buffer_ptr, dp = png_ptr->save_buffer; - i < istop; i++, sp++, dp++) - { - *dp = *sp; - } - } - } - if (png_ptr->save_buffer_size + png_ptr->current_buffer_size > - png_ptr->save_buffer_max) - { - size_t new_max; - png_bytep old_buffer; - - if (png_ptr->save_buffer_size > PNG_SIZE_MAX - - (png_ptr->current_buffer_size + 256)) - { - png_error(png_ptr, "Potential overflow of save_buffer"); - } - - new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256; - old_buffer = png_ptr->save_buffer; - png_ptr->save_buffer = (png_bytep)png_malloc_warn(png_ptr, - (size_t)new_max); - - if (png_ptr->save_buffer == NULL) - { - png_free(png_ptr, old_buffer); - png_error(png_ptr, "Insufficient memory for save_buffer"); - } - - if (old_buffer) - memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size); - else if (png_ptr->save_buffer_size) - png_error(png_ptr, "save_buffer error"); - png_free(png_ptr, old_buffer); - png_ptr->save_buffer_max = new_max; - } - if (png_ptr->current_buffer_size) - { - memcpy(png_ptr->save_buffer + png_ptr->save_buffer_size, - png_ptr->current_buffer_ptr, png_ptr->current_buffer_size); - png_ptr->save_buffer_size += png_ptr->current_buffer_size; - png_ptr->current_buffer_size = 0; - } - png_ptr->save_buffer_ptr = png_ptr->save_buffer; - png_ptr->buffer_size = 0; -} - -void /* PRIVATE */ -png_push_restore_buffer(png_structrp png_ptr, png_bytep buffer, - size_t buffer_length) -{ - png_ptr->current_buffer = buffer; - png_ptr->current_buffer_size = buffer_length; - png_ptr->buffer_size = buffer_length + png_ptr->save_buffer_size; - png_ptr->current_buffer_ptr = png_ptr->current_buffer; -} - -void /* PRIVATE */ -png_push_read_IDAT(png_structrp png_ptr) -{ - if ((png_ptr->mode & PNG_HAVE_CHUNK_HEADER) == 0) - { - png_byte chunk_length[4]; - png_byte chunk_tag[4]; - - /* TODO: this code can be commoned up with the same code in push_read */ - PNG_PUSH_SAVE_BUFFER_IF_LT(8) - png_push_fill_buffer(png_ptr, chunk_length, 4); - png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length); - png_reset_crc(png_ptr); - png_crc_read(png_ptr, chunk_tag, 4); - png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag); - png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; - - if (png_ptr->chunk_name != png_IDAT) - { - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) - png_error(png_ptr, "Not enough compressed data"); - - return; - } - - png_ptr->idat_size = png_ptr->push_length; - } - - if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0) - { - size_t save_size = png_ptr->save_buffer_size; - png_uint_32 idat_size = png_ptr->idat_size; - - /* We want the smaller of 'idat_size' and 'current_buffer_size', but they - * are of different types and we don't know which variable has the fewest - * bits. Carefully select the smaller and cast it to the type of the - * larger - this cannot overflow. Do not cast in the following test - it - * will break on either 16-bit or 64-bit platforms. - */ - if (idat_size < save_size) - save_size = (size_t)idat_size; - - else - idat_size = (png_uint_32)save_size; - - png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size); - - png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size); - - png_ptr->idat_size -= idat_size; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - - if (png_ptr->idat_size != 0 && png_ptr->current_buffer_size != 0) - { - size_t save_size = png_ptr->current_buffer_size; - png_uint_32 idat_size = png_ptr->idat_size; - - /* We want the smaller of 'idat_size' and 'current_buffer_size', but they - * are of different types and we don't know which variable has the fewest - * bits. Carefully select the smaller and cast it to the type of the - * larger - this cannot overflow. - */ - if (idat_size < save_size) - save_size = (size_t)idat_size; - - else - idat_size = (png_uint_32)save_size; - - png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size); - - png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size); - - png_ptr->idat_size -= idat_size; - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } - - if (png_ptr->idat_size == 0) - { - PNG_PUSH_SAVE_BUFFER_IF_LT(4) - png_crc_finish(png_ptr, 0); - png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->zowner = 0; - } -} - -void /* PRIVATE */ -png_process_IDAT_data(png_structrp png_ptr, png_bytep buffer, - size_t buffer_length) -{ - /* The caller checks for a non-zero buffer length. */ - if (!(buffer_length > 0) || buffer == NULL) - png_error(png_ptr, "No IDAT data (internal error)"); - - /* This routine must process all the data it has been given - * before returning, calling the row callback as required to - * handle the uncompressed results. - */ - png_ptr->zstream.next_in = buffer; - /* TODO: WARNING: TRUNCATION ERROR: DANGER WILL ROBINSON: */ - png_ptr->zstream.avail_in = (uInt)buffer_length; - - /* Keep going until the decompressed data is all processed - * or the stream marked as finished. - */ - while (png_ptr->zstream.avail_in > 0 && - (png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) - { - int ret; - - /* We have data for zlib, but we must check that zlib - * has someplace to put the results. It doesn't matter - * if we don't expect any results -- it may be the input - * data is just the LZ end code. - */ - if (!(png_ptr->zstream.avail_out > 0)) - { - /* TODO: WARNING: TRUNCATION ERROR: DANGER WILL ROBINSON: */ - png_ptr->zstream.avail_out = (uInt)(PNG_ROWBYTES(png_ptr->pixel_depth, - png_ptr->iwidth) + 1); - - png_ptr->zstream.next_out = png_ptr->row_buf; - } - - /* Using Z_SYNC_FLUSH here means that an unterminated - * LZ stream (a stream with a missing end code) can still - * be handled, otherwise (Z_NO_FLUSH) a future zlib - * implementation might defer output and therefore - * change the current behavior (see comments in inflate.c - * for why this doesn't happen at present with zlib 1.2.5). - */ - ret = PNG_INFLATE(png_ptr, Z_SYNC_FLUSH); - - /* Check for any failure before proceeding. */ - if (ret != Z_OK && ret != Z_STREAM_END) - { - /* Terminate the decompression. */ - png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; - png_ptr->zowner = 0; - - /* This may be a truncated stream (missing or - * damaged end code). Treat that as a warning. - */ - if (png_ptr->row_number >= png_ptr->num_rows || - png_ptr->pass > 6) - png_warning(png_ptr, "Truncated compressed data in IDAT"); - - else - { - if (ret == Z_DATA_ERROR) - png_benign_error(png_ptr, "IDAT: ADLER32 checksum mismatch"); - else - png_error(png_ptr, "Decompression error in IDAT"); - } - - /* Skip the check on unprocessed input */ - return; - } - - /* Did inflate output any data? */ - if (png_ptr->zstream.next_out != png_ptr->row_buf) - { - /* Is this unexpected data after the last row? - * If it is, artificially terminate the LZ output - * here. - */ - if (png_ptr->row_number >= png_ptr->num_rows || - png_ptr->pass > 6) - { - /* Extra data. */ - png_warning(png_ptr, "Extra compressed data in IDAT"); - png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; - png_ptr->zowner = 0; - - /* Do no more processing; skip the unprocessed - * input check below. - */ - return; - } - - /* Do we have a complete row? */ - if (png_ptr->zstream.avail_out == 0) - png_push_process_row(png_ptr); - } - - /* And check for the end of the stream. */ - if (ret == Z_STREAM_END) - png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; - } - - /* All the data should have been processed, if anything - * is left at this point we have bytes of IDAT data - * after the zlib end code. - */ - if (png_ptr->zstream.avail_in > 0) - png_warning(png_ptr, "Extra compression data in IDAT"); -} - -void /* PRIVATE */ -png_push_process_row(png_structrp png_ptr) -{ - /* 1.5.6: row_info moved out of png_struct to a local here. */ - png_row_info row_info; - - row_info.width = png_ptr->iwidth; /* NOTE: width of current interlaced row */ - row_info.color_type = png_ptr->color_type; - row_info.bit_depth = png_ptr->bit_depth; - row_info.channels = png_ptr->channels; - row_info.pixel_depth = png_ptr->pixel_depth; - row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width); - - if (png_ptr->row_buf[0] > PNG_FILTER_VALUE_NONE) - { - if (png_ptr->row_buf[0] < PNG_FILTER_VALUE_LAST) - png_read_filter_row(png_ptr, &row_info, png_ptr->row_buf + 1, - png_ptr->prev_row + 1, png_ptr->row_buf[0]); - else - png_error(png_ptr, "bad adaptive filter value"); - } - - /* libpng 1.5.6: the following line was copying png_ptr->rowbytes before - * 1.5.6, while the buffer really is this big in current versions of libpng - * it may not be in the future, so this was changed just to copy the - * interlaced row count: - */ - memcpy(png_ptr->prev_row, png_ptr->row_buf, row_info.rowbytes + 1); - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED - if (png_ptr->transformations != 0) - png_do_read_transformations(png_ptr, &row_info); -#endif - - /* The transformed pixel depth should match the depth now in row_info. */ - if (png_ptr->transformed_pixel_depth == 0) - { - png_ptr->transformed_pixel_depth = row_info.pixel_depth; - if (row_info.pixel_depth > png_ptr->maximum_pixel_depth) - png_error(png_ptr, "progressive row overflow"); - } - - else if (png_ptr->transformed_pixel_depth != row_info.pixel_depth) - png_error(png_ptr, "internal progressive row size calculation error"); - - -#ifdef PNG_READ_INTERLACING_SUPPORTED - /* Expand interlaced rows to full size */ - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) != 0) - { - if (png_ptr->pass < 6) - png_do_read_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass, - png_ptr->transformations); - - switch (png_ptr->pass) - { - case 0: - { - int i; - for (i = 0; i < 8 && png_ptr->pass == 0; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); /* Updates png_ptr->pass */ - } - - if (png_ptr->pass == 2) /* Pass 1 might be empty */ - { - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - - if (png_ptr->pass == 4 && png_ptr->height <= 4) - { - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - - if (png_ptr->pass == 6 && png_ptr->height <= 4) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - - break; - } - - case 1: - { - int i; - for (i = 0; i < 8 && png_ptr->pass == 1; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - - if (png_ptr->pass == 2) /* Skip top 4 generated rows */ - { - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - - break; - } - - case 2: - { - int i; - - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - - if (png_ptr->pass == 4) /* Pass 3 might be empty */ - { - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - - break; - } - - case 3: - { - int i; - - for (i = 0; i < 4 && png_ptr->pass == 3; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - - if (png_ptr->pass == 4) /* Skip top two generated rows */ - { - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - - break; - } - - case 4: - { - int i; - - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - - if (png_ptr->pass == 6) /* Pass 5 might be empty */ - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - - break; - } - - case 5: - { - int i; - - for (i = 0; i < 2 && png_ptr->pass == 5; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - - if (png_ptr->pass == 6) /* Skip top generated row */ - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - - break; - } - - default: - case 6: - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - - if (png_ptr->pass != 6) - break; - - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - } - else -#endif - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } -} - -void /* PRIVATE */ -png_read_push_finish_row(png_structrp png_ptr) -{ -#ifdef PNG_READ_INTERLACING_SUPPORTED - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; - - /* Start of interlace block in the y direction */ - static const png_byte png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; - - /* Offset to next interlace block in the y direction */ - static const png_byte png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; - - /* Height of interlace block. This is not currently used - if you need - * it, uncomment it here and in png.h - static const png_byte png_pass_height[] = {8, 8, 4, 4, 2, 2, 1}; - */ -#endif - - png_ptr->row_number++; - if (png_ptr->row_number < png_ptr->num_rows) - return; - -#ifdef PNG_READ_INTERLACING_SUPPORTED - if (png_ptr->interlaced != 0) - { - png_ptr->row_number = 0; - memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); - - do - { - png_ptr->pass++; - if ((png_ptr->pass == 1 && png_ptr->width < 5) || - (png_ptr->pass == 3 && png_ptr->width < 3) || - (png_ptr->pass == 5 && png_ptr->width < 2)) - png_ptr->pass++; - - if (png_ptr->pass > 7) - png_ptr->pass--; - - if (png_ptr->pass >= 7) - break; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - if ((png_ptr->transformations & PNG_INTERLACE) != 0) - break; - - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - - } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0); - } -#endif /* READ_INTERLACING */ -} - -void /* PRIVATE */ -png_push_have_info(png_structrp png_ptr, png_inforp info_ptr) -{ - if (png_ptr->info_fn != NULL) - (*(png_ptr->info_fn))(png_ptr, info_ptr); -} - -void /* PRIVATE */ -png_push_have_end(png_structrp png_ptr, png_inforp info_ptr) -{ - if (png_ptr->end_fn != NULL) - (*(png_ptr->end_fn))(png_ptr, info_ptr); -} - -void /* PRIVATE */ -png_push_have_row(png_structrp png_ptr, png_bytep row) -{ - if (png_ptr->row_fn != NULL) - (*(png_ptr->row_fn))(png_ptr, row, png_ptr->row_number, - (int)png_ptr->pass); -} - -#ifdef PNG_READ_INTERLACING_SUPPORTED -void PNGAPI -png_progressive_combine_row(png_const_structrp png_ptr, png_bytep old_row, - png_const_bytep new_row) -{ - if (png_ptr == NULL) - return; - - /* new_row is a flag here - if it is NULL then the app callback was called - * from an empty row (see the calls to png_struct::row_fn below), otherwise - * it must be png_ptr->row_buf+1 - */ - if (new_row != NULL) - png_combine_row(png_ptr, old_row, 1/*blocky display*/); -} -#endif /* READ_INTERLACING */ - -void PNGAPI -png_set_progressive_read_fn(png_structrp png_ptr, png_voidp progressive_ptr, - png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, - png_progressive_end_ptr end_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->info_fn = info_fn; - png_ptr->row_fn = row_fn; - png_ptr->end_fn = end_fn; - - png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); -} - -png_voidp PNGAPI -png_get_progressive_ptr(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return (NULL); - - return png_ptr->io_ptr; -} -#endif /* PROGRESSIVE_READ */ diff --git a/Externals/libpng/pngpriv.h b/Externals/libpng/pngpriv.h deleted file mode 100644 index 583c26f9bd..0000000000 --- a/Externals/libpng/pngpriv.h +++ /dev/null @@ -1,2152 +0,0 @@ - -/* pngpriv.h - private declarations for use inside libpng - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* The symbols declared in this file (including the functions declared - * as extern) are PRIVATE. They are not part of the libpng public - * interface, and are not recommended for use by regular applications. - * Some of them may become public in the future; others may stay private, - * change in an incompatible way, or even disappear. - * Although the libpng users are not forbidden to include this header, - * they should be well aware of the issues that may arise from doing so. - */ - -#ifndef PNGPRIV_H -#define PNGPRIV_H - -/* Feature Test Macros. The following are defined here to ensure that correctly - * implemented libraries reveal the APIs libpng needs to build and hide those - * that are not needed and potentially damaging to the compilation. - * - * Feature Test Macros must be defined before any system header is included (see - * POSIX 1003.1 2.8.2 "POSIX Symbols." - * - * These macros only have an effect if the operating system supports either - * POSIX 1003.1 or C99, or both. On other operating systems (particularly - * Windows/Visual Studio) there is no effect; the OS specific tests below are - * still required (as of 2011-05-02.) - */ -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */ -#endif - -#ifndef PNG_VERSION_INFO_ONLY -/* Standard library headers not required by png.h: */ -# include -# include -#endif - -#define PNGLIB_BUILD /*libpng is being built, not used*/ - -/* If HAVE_CONFIG_H is defined during the build then the build system must - * provide an appropriate "config.h" file on the include path. The header file - * must provide definitions as required below (search for "HAVE_CONFIG_H"); - * see configure.ac for more details of the requirements. The macro - * "PNG_NO_CONFIG_H" is provided for maintainers to test for dependencies on - * 'configure'; define this macro to prevent the configure build including the - * configure generated config.h. Libpng is expected to compile without *any* - * special build system support on a reasonably ANSI-C compliant system. - */ -#if defined(HAVE_CONFIG_H) && !defined(PNG_NO_CONFIG_H) -# include - - /* Pick up the definition of 'restrict' from config.h if it was read: */ -# define PNG_RESTRICT restrict -#endif - -/* To support symbol prefixing it is necessary to know *before* including png.h - * whether the fixed point (and maybe other) APIs are exported, because if they - * are not internal definitions may be required. This is handled below just - * before png.h is included, but load the configuration now if it is available. - */ -#ifndef PNGLCONF_H -# include "pnglibconf.h" -#endif - -/* Local renames may change non-exported API functions from png.h */ -#if defined(PNG_PREFIX) && !defined(PNGPREFIX_H) -# include "pngprefix.h" -#endif - -#ifdef PNG_USER_CONFIG -# include "pngusr.h" - /* These should have been defined in pngusr.h */ -# ifndef PNG_USER_PRIVATEBUILD -# define PNG_USER_PRIVATEBUILD "Custom libpng build" -# endif -# ifndef PNG_USER_DLLFNAME_POSTFIX -# define PNG_USER_DLLFNAME_POSTFIX "Cb" -# endif -#endif - -/* Compile time options. - * ===================== - * In a multi-arch build the compiler may compile the code several times for the - * same object module, producing different binaries for different architectures. - * When this happens configure-time setting of the target host options cannot be - * done and this interferes with the handling of the ARM NEON optimizations, and - * possibly other similar optimizations. Put additional tests here; in general - * this is needed when the same option can be changed at both compile time and - * run time depending on the target OS (i.e. iOS vs Android.) - * - * NOTE: symbol prefixing does not pass $(CFLAGS) to the preprocessor, because - * this is not possible with certain compilers (Oracle SUN OS CC), as a result - * it is necessary to ensure that all extern functions that *might* be used - * regardless of $(CFLAGS) get declared in this file. The test on __ARM_NEON__ - * below is one example of this behavior because it is controlled by the - * presence or not of -mfpu=neon on the GCC command line, it is possible to do - * this in $(CC), e.g. "CC=gcc -mfpu=neon", but people who build libpng rarely - * do this. - */ -#ifndef PNG_ARM_NEON_OPT - /* ARM NEON optimizations are being controlled by the compiler settings, - * typically the target FPU. If the FPU has been set to NEON (-mfpu=neon - * with GCC) then the compiler will define __ARM_NEON__ and we can rely - * unconditionally on NEON instructions not crashing, otherwise we must - * disable use of NEON instructions. - * - * NOTE: at present these optimizations depend on 'ALIGNED_MEMORY', so they - * can only be turned on automatically if that is supported too. If - * PNG_ARM_NEON_OPT is set in CPPFLAGS (to >0) then arm/arm_init.c will fail - * to compile with an appropriate #error if ALIGNED_MEMORY has been turned - * off. - * - * Note that gcc-4.9 defines __ARM_NEON instead of the deprecated - * __ARM_NEON__, so we check both variants. - * - * To disable ARM_NEON optimizations entirely, and skip compiling the - * associated assembler code, pass --enable-arm-neon=no to configure - * or put -DPNG_ARM_NEON_OPT=0 in CPPFLAGS. - */ -# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \ - defined(PNG_ALIGNED_MEMORY_SUPPORTED) -# define PNG_ARM_NEON_OPT 2 -# else -# define PNG_ARM_NEON_OPT 0 -# endif -#endif - -#if PNG_ARM_NEON_OPT > 0 - /* NEON optimizations are to be at least considered by libpng, so enable the - * callbacks to do this. - */ -# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_neon - - /* By default the 'intrinsics' code in arm/filter_neon_intrinsics.c is used - * if possible - if __ARM_NEON__ is set and the compiler version is not known - * to be broken. This is controlled by PNG_ARM_NEON_IMPLEMENTATION which can - * be: - * - * 1 The intrinsics code (the default with __ARM_NEON__) - * 2 The hand coded assembler (the default without __ARM_NEON__) - * - * It is possible to set PNG_ARM_NEON_IMPLEMENTATION in CPPFLAGS, however - * this is *NOT* supported and may cease to work even after a minor revision - * to libpng. It *is* valid to do this for testing purposes, e.g. speed - * testing or a new compiler, but the results should be communicated to the - * libpng implementation list for incorporation in the next minor release. - */ -# ifndef PNG_ARM_NEON_IMPLEMENTATION -# if defined(__ARM_NEON__) || defined(__ARM_NEON) -# if defined(__clang__) - /* At present it is unknown by the libpng developers which versions - * of clang support the intrinsics, however some or perhaps all - * versions do not work with the assembler so this may be - * irrelevant, so just use the default (do nothing here.) - */ -# elif defined(__GNUC__) - /* GCC 4.5.4 NEON support is known to be broken. 4.6.3 is known to - * work, so if this *is* GCC, or G++, look for a version >4.5 - */ -# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) -# define PNG_ARM_NEON_IMPLEMENTATION 2 -# endif /* no GNUC support */ -# endif /* __GNUC__ */ -# else /* !defined __ARM_NEON__ */ - /* The 'intrinsics' code simply won't compile without this -mfpu=neon: - */ -# if !defined(__aarch64__) - /* The assembler code currently does not work on ARM64 */ -# define PNG_ARM_NEON_IMPLEMENTATION 2 -# endif /* __aarch64__ */ -# endif /* __ARM_NEON__ */ -# endif /* !PNG_ARM_NEON_IMPLEMENTATION */ - -# ifndef PNG_ARM_NEON_IMPLEMENTATION - /* Use the intrinsics code by default. */ -# define PNG_ARM_NEON_IMPLEMENTATION 1 -# endif -#endif /* PNG_ARM_NEON_OPT > 0 */ - -#ifndef PNG_MIPS_MSA_OPT -# if defined(__mips_msa) && (__mips_isa_rev >= 5) && defined(PNG_ALIGNED_MEMORY_SUPPORTED) -# define PNG_MIPS_MSA_OPT 2 -# else -# define PNG_MIPS_MSA_OPT 0 -# endif -#endif - -#ifndef PNG_POWERPC_VSX_OPT -# if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__) -# define PNG_POWERPC_VSX_OPT 2 -# else -# define PNG_POWERPC_VSX_OPT 0 -# endif -#endif - -#ifndef PNG_INTEL_SSE_OPT -# ifdef PNG_INTEL_SSE - /* Only check for SSE if the build configuration has been modified to - * enable SSE optimizations. This means that these optimizations will - * be off by default. See contrib/intel for more details. - */ -# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \ - defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ - (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -# define PNG_INTEL_SSE_OPT 1 -# else -# define PNG_INTEL_SSE_OPT 0 -# endif -# else -# define PNG_INTEL_SSE_OPT 0 -# endif -#endif - -#if PNG_INTEL_SSE_OPT > 0 -# ifndef PNG_INTEL_SSE_IMPLEMENTATION -# if defined(__SSE4_1__) || defined(__AVX__) - /* We are not actually using AVX, but checking for AVX is the best - way we can detect SSE4.1 and SSSE3 on MSVC. - */ -# define PNG_INTEL_SSE_IMPLEMENTATION 3 -# elif defined(__SSSE3__) -# define PNG_INTEL_SSE_IMPLEMENTATION 2 -# elif defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \ - (defined(_M_IX86_FP) && _M_IX86_FP >= 2) -# define PNG_INTEL_SSE_IMPLEMENTATION 1 -# else -# define PNG_INTEL_SSE_IMPLEMENTATION 0 -# endif -# endif - -# if PNG_INTEL_SSE_IMPLEMENTATION > 0 -# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_sse2 -# endif -#else -# define PNG_INTEL_SSE_IMPLEMENTATION 0 -#endif - -#if PNG_MIPS_MSA_OPT > 0 -# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa -# ifndef PNG_MIPS_MSA_IMPLEMENTATION -# if defined(__mips_msa) -# if defined(__clang__) -# elif defined(__GNUC__) -# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) -# define PNG_MIPS_MSA_IMPLEMENTATION 2 -# endif /* no GNUC support */ -# endif /* __GNUC__ */ -# else /* !defined __mips_msa */ -# define PNG_MIPS_MSA_IMPLEMENTATION 2 -# endif /* __mips_msa */ -# endif /* !PNG_MIPS_MSA_IMPLEMENTATION */ - -# ifndef PNG_MIPS_MSA_IMPLEMENTATION -# define PNG_MIPS_MSA_IMPLEMENTATION 1 -# endif -#endif /* PNG_MIPS_MSA_OPT > 0 */ - -#if PNG_POWERPC_VSX_OPT > 0 -# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx -# define PNG_POWERPC_VSX_IMPLEMENTATION 1 -#endif - - -/* Is this a build of a DLL where compilation of the object modules requires - * different preprocessor settings to those required for a simple library? If - * so PNG_BUILD_DLL must be set. - * - * If libpng is used inside a DLL but that DLL does not export the libpng APIs - * PNG_BUILD_DLL must not be set. To avoid the code below kicking in build a - * static library of libpng then link the DLL against that. - */ -#ifndef PNG_BUILD_DLL -# ifdef DLL_EXPORT - /* This is set by libtool when files are compiled for a DLL; libtool - * always compiles twice, even on systems where it isn't necessary. Set - * PNG_BUILD_DLL in case it is necessary: - */ -# define PNG_BUILD_DLL -# else -# ifdef _WINDLL - /* This is set by the Microsoft Visual Studio IDE in projects that - * build a DLL. It can't easily be removed from those projects (it - * isn't visible in the Visual Studio UI) so it is a fairly reliable - * indication that PNG_IMPEXP needs to be set to the DLL export - * attributes. - */ -# define PNG_BUILD_DLL -# else -# ifdef __DLL__ - /* This is set by the Borland C system when compiling for a DLL - * (as above.) - */ -# define PNG_BUILD_DLL -# else - /* Add additional compiler cases here. */ -# endif -# endif -# endif -#endif /* Setting PNG_BUILD_DLL if required */ - -/* See pngconf.h for more details: the builder of the library may set this on - * the command line to the right thing for the specific compilation system or it - * may be automagically set above (at present we know of no system where it does - * need to be set on the command line.) - * - * PNG_IMPEXP must be set here when building the library to prevent pngconf.h - * setting it to the "import" setting for a DLL build. - */ -#ifndef PNG_IMPEXP -# ifdef PNG_BUILD_DLL -# define PNG_IMPEXP PNG_DLL_EXPORT -# else - /* Not building a DLL, or the DLL doesn't require specific export - * definitions. - */ -# define PNG_IMPEXP -# endif -#endif - -/* No warnings for private or deprecated functions in the build: */ -#ifndef PNG_DEPRECATED -# define PNG_DEPRECATED -#endif -#ifndef PNG_PRIVATE -# define PNG_PRIVATE -#endif - -/* Symbol preprocessing support. - * - * To enable listing global, but internal, symbols the following macros should - * always be used to declare an extern data or function object in this file. - */ -#ifndef PNG_INTERNAL_DATA -# define PNG_INTERNAL_DATA(type, name, array) PNG_LINKAGE_DATA type name array -#endif - -#ifndef PNG_INTERNAL_FUNCTION -# define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ - PNG_LINKAGE_FUNCTION PNG_FUNCTION(type, name, args, PNG_EMPTY attributes) -#endif - -#ifndef PNG_INTERNAL_CALLBACK -# define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\ - PNG_LINKAGE_CALLBACK PNG_FUNCTION(type, (PNGCBAPI name), args,\ - PNG_EMPTY attributes) -#endif - -/* If floating or fixed point APIs are disabled they may still be compiled - * internally. To handle this make sure they are declared as the appropriate - * internal extern function (otherwise the symbol prefixing stuff won't work and - * the functions will be used without definitions.) - * - * NOTE: although all the API functions are declared here they are not all - * actually built! Because the declarations are still made it is necessary to - * fake out types that they depend on. - */ -#ifndef PNG_FP_EXPORT -# ifndef PNG_FLOATING_POINT_SUPPORTED -# define PNG_FP_EXPORT(ordinal, type, name, args)\ - PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY); -# ifndef PNG_VERSION_INFO_ONLY - typedef struct png_incomplete png_double; - typedef png_double* png_doublep; - typedef const png_double* png_const_doublep; - typedef png_double** png_doublepp; -# endif -# endif -#endif -#ifndef PNG_FIXED_EXPORT -# ifndef PNG_FIXED_POINT_SUPPORTED -# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ - PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY); -# endif -#endif - -#include "png.h" - -/* pngconf.h does not set PNG_DLL_EXPORT unless it is required, so: */ -#ifndef PNG_DLL_EXPORT -# define PNG_DLL_EXPORT -#endif - -/* This is a global switch to set the compilation for an installed system - * (a release build). It can be set for testing debug builds to ensure that - * they will compile when the build type is switched to RC or STABLE, the - * default is just to use PNG_LIBPNG_BUILD_BASE_TYPE. Set this in CPPFLAGS - * with either: - * - * -DPNG_RELEASE_BUILD Turns on the release compile path - * -DPNG_RELEASE_BUILD=0 Turns it off - * or in your pngusr.h with - * #define PNG_RELEASE_BUILD=1 Turns on the release compile path - * #define PNG_RELEASE_BUILD=0 Turns it off - */ -#ifndef PNG_RELEASE_BUILD -# define PNG_RELEASE_BUILD (PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC) -#endif - -/* SECURITY and SAFETY: - * - * libpng is built with support for internal limits on image dimensions and - * memory usage. These are documented in scripts/pnglibconf.dfa of the - * source and recorded in the machine generated header file pnglibconf.h. - */ - -/* If you are running on a machine where you cannot allocate more - * than 64K of memory at once, uncomment this. While libpng will not - * normally need that much memory in a chunk (unless you load up a very - * large file), zlib needs to know how big of a chunk it can use, and - * libpng thus makes sure to check any memory allocation to verify it - * will fit into memory. - * - * zlib provides 'MAXSEG_64K' which, if defined, indicates the - * same limit and pngconf.h (already included) sets the limit - * if certain operating systems are detected. - */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) -# define PNG_MAX_MALLOC_64K -#endif - -#ifndef PNG_UNUSED -/* Unused formal parameter warnings are silenced using the following macro - * which is expected to have no bad effects on performance (optimizing - * compilers will probably remove it entirely). Note that if you replace - * it with something other than whitespace, you must include the terminating - * semicolon. - */ -# define PNG_UNUSED(param) (void)param; -#endif - -/* Just a little check that someone hasn't tried to define something - * contradictory. - */ -#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) -# undef PNG_ZBUF_SIZE -# define PNG_ZBUF_SIZE 65536L -#endif - -/* If warnings or errors are turned off the code is disabled or redirected here. - * From 1.5.4 functions have been added to allow very limited formatting of - * error and warning messages - this code will also be disabled here. - */ -#ifdef PNG_WARNINGS_SUPPORTED -# define PNG_WARNING_PARAMETERS(p) png_warning_parameters p; -#else -# define png_warning_parameter(p,number,string) ((void)0) -# define png_warning_parameter_unsigned(p,number,format,value) ((void)0) -# define png_warning_parameter_signed(p,number,format,value) ((void)0) -# define png_formatted_warning(pp,p,message) ((void)(pp)) -# define PNG_WARNING_PARAMETERS(p) -#endif -#ifndef PNG_ERROR_TEXT_SUPPORTED -# define png_fixed_error(s1,s2) png_err(s1) -#endif - -/* Some fixed point APIs are still required even if not exported because - * they get used by the corresponding floating point APIs. This magic - * deals with this: - */ -#ifdef PNG_FIXED_POINT_SUPPORTED -# define PNGFAPI PNGAPI -#else -# define PNGFAPI /* PRIVATE */ -#endif - -#ifndef PNG_VERSION_INFO_ONLY -/* Other defines specific to compilers can go here. Try to keep - * them inside an appropriate ifdef/endif pair for portability. - */ - -/* C allows up-casts from (void*) to any pointer and (const void*) to any - * pointer to a const object. C++ regards this as a type error and requires an - * explicit, static, cast and provides the static_cast<> rune to ensure that - * const is not cast away. - */ -#ifdef __cplusplus -# define png_voidcast(type, value) static_cast(value) -# define png_constcast(type, value) const_cast(value) -# define png_aligncast(type, value) \ - static_cast(static_cast(value)) -# define png_aligncastconst(type, value) \ - static_cast(static_cast(value)) -#else -# define png_voidcast(type, value) (value) -# ifdef _WIN64 -# ifdef __GNUC__ - typedef unsigned long long png_ptruint; -# else - typedef unsigned __int64 png_ptruint; -# endif -# else - typedef unsigned long png_ptruint; -# endif -# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value)) -# define png_aligncast(type, value) ((void*)(value)) -# define png_aligncastconst(type, value) ((const void*)(value)) -#endif /* __cplusplus */ - -#if defined(PNG_FLOATING_POINT_SUPPORTED) ||\ - defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) - /* png.c requires the following ANSI-C constants if the conversion of - * floating point to ASCII is implemented therein: - * - * DBL_DIG Maximum number of decimal digits (can be set to any constant) - * DBL_MIN Smallest normalized fp number (can be set to an arbitrary value) - * DBL_MAX Maximum floating point number (can be set to an arbitrary value) - */ -# include - -# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ - defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) - /* We need to check that hasn't already been included earlier - * as it seems it doesn't agree with , yet we should really use - * if possible. - */ -# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) -# include -# endif -# else -# include -# endif -# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) - /* Amiga SAS/C: We must include builtin FPU functions when compiling using - * MATH=68881 - */ -# include -# endif -#endif - -/* This provides the non-ANSI (far) memory allocation routines. */ -#if defined(__TURBOC__) && defined(__MSDOS__) -# include -# include -#endif - -#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \ - defined(_WIN32) || defined(__WIN32__) -# include /* defines _WINDOWS_ macro */ -#endif -#endif /* PNG_VERSION_INFO_ONLY */ - -/* Moved here around 1.5.0beta36 from pngconf.h */ -/* Users may want to use these so they are not private. Any library - * functions that are passed far data must be model-independent. - */ - -/* Memory model/platform independent fns */ -#ifndef PNG_ABORT -# ifdef _WINDOWS_ -# define PNG_ABORT() ExitProcess(0) -# else -# define PNG_ABORT() abort() -# endif -#endif - -/* These macros may need to be architecture dependent. */ -#define PNG_ALIGN_NONE 0 /* do not use data alignment */ -#define PNG_ALIGN_ALWAYS 1 /* assume unaligned accesses are OK */ -#ifdef offsetof -# define PNG_ALIGN_OFFSET 2 /* use offsetof to determine alignment */ -#else -# define PNG_ALIGN_OFFSET -1 /* prevent the use of this */ -#endif -#define PNG_ALIGN_SIZE 3 /* use sizeof to determine alignment */ - -#ifndef PNG_ALIGN_TYPE - /* Default to using aligned access optimizations and requiring alignment to a - * multiple of the data type size. Override in a compiler specific fashion - * if necessary by inserting tests here: - */ -# define PNG_ALIGN_TYPE PNG_ALIGN_SIZE -#endif - -#if PNG_ALIGN_TYPE == PNG_ALIGN_SIZE - /* This is used because in some compiler implementations non-aligned - * structure members are supported, so the offsetof approach below fails. - * Set PNG_ALIGN_SIZE=0 for compiler combinations where unaligned access - * is good for performance. Do not do this unless you have tested the result - * and understand it. - */ -# define png_alignof(type) (sizeof (type)) -#else -# if PNG_ALIGN_TYPE == PNG_ALIGN_OFFSET -# define png_alignof(type) offsetof(struct{char c; type t;}, t) -# else -# if PNG_ALIGN_TYPE == PNG_ALIGN_ALWAYS -# define png_alignof(type) (1) -# endif - /* Else leave png_alignof undefined to prevent use thereof */ -# endif -#endif - -/* This implicitly assumes alignment is always to a power of 2. */ -#ifdef png_alignof -# define png_isaligned(ptr, type)\ - (((type)((const char*)ptr-(const char*)0) & \ - (type)(png_alignof(type)-1)) == 0) -#else -# define png_isaligned(ptr, type) 0 -#endif - -/* End of memory model/platform independent support */ -/* End of 1.5.0beta36 move from pngconf.h */ - -/* CONSTANTS and UTILITY MACROS - * These are used internally by libpng and not exposed in the API - */ - -/* Various modes of operation. Note that after an init, mode is set to - * zero automatically when the structure is created. Three of these - * are defined in png.h because they need to be visible to applications - * that call png_set_unknown_chunk(). - */ -/* #define PNG_HAVE_IHDR 0x01U (defined in png.h) */ -/* #define PNG_HAVE_PLTE 0x02U (defined in png.h) */ -#define PNG_HAVE_IDAT 0x04U -/* #define PNG_AFTER_IDAT 0x08U (defined in png.h) */ -#define PNG_HAVE_IEND 0x10U - /* 0x20U (unused) */ - /* 0x40U (unused) */ - /* 0x80U (unused) */ -#define PNG_HAVE_CHUNK_HEADER 0x100U -#define PNG_WROTE_tIME 0x200U -#define PNG_WROTE_INFO_BEFORE_PLTE 0x400U -#define PNG_BACKGROUND_IS_GRAY 0x800U -#define PNG_HAVE_PNG_SIGNATURE 0x1000U -#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000U /* Have another chunk after IDAT */ - /* 0x4000U (unused) */ -#define PNG_IS_READ_STRUCT 0x8000U /* Else is a write struct */ - -/* Flags for the transformations the PNG library does on the image data */ -#define PNG_BGR 0x0001U -#define PNG_INTERLACE 0x0002U -#define PNG_PACK 0x0004U -#define PNG_SHIFT 0x0008U -#define PNG_SWAP_BYTES 0x0010U -#define PNG_INVERT_MONO 0x0020U -#define PNG_QUANTIZE 0x0040U -#define PNG_COMPOSE 0x0080U /* Was PNG_BACKGROUND */ -#define PNG_BACKGROUND_EXPAND 0x0100U -#define PNG_EXPAND_16 0x0200U /* Added to libpng 1.5.2 */ -#define PNG_16_TO_8 0x0400U /* Becomes 'chop' in 1.5.4 */ -#define PNG_RGBA 0x0800U -#define PNG_EXPAND 0x1000U -#define PNG_GAMMA 0x2000U -#define PNG_GRAY_TO_RGB 0x4000U -#define PNG_FILLER 0x8000U -#define PNG_PACKSWAP 0x10000U -#define PNG_SWAP_ALPHA 0x20000U -#define PNG_STRIP_ALPHA 0x40000U -#define PNG_INVERT_ALPHA 0x80000U -#define PNG_USER_TRANSFORM 0x100000U -#define PNG_RGB_TO_GRAY_ERR 0x200000U -#define PNG_RGB_TO_GRAY_WARN 0x400000U -#define PNG_RGB_TO_GRAY 0x600000U /* two bits, RGB_TO_GRAY_ERR|WARN */ -#define PNG_ENCODE_ALPHA 0x800000U /* Added to libpng-1.5.4 */ -#define PNG_ADD_ALPHA 0x1000000U /* Added to libpng-1.2.7 */ -#define PNG_EXPAND_tRNS 0x2000000U /* Added to libpng-1.2.9 */ -#define PNG_SCALE_16_TO_8 0x4000000U /* Added to libpng-1.5.4 */ - /* 0x8000000U unused */ - /* 0x10000000U unused */ - /* 0x20000000U unused */ - /* 0x40000000U unused */ -/* Flags for png_create_struct */ -#define PNG_STRUCT_PNG 0x0001U -#define PNG_STRUCT_INFO 0x0002U - -/* Flags for the png_ptr->flags rather than declaring a byte for each one */ -#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001U -#define PNG_FLAG_ZSTREAM_INITIALIZED 0x0002U /* Added to libpng-1.6.0 */ - /* 0x0004U unused */ -#define PNG_FLAG_ZSTREAM_ENDED 0x0008U /* Added to libpng-1.6.0 */ - /* 0x0010U unused */ - /* 0x0020U unused */ -#define PNG_FLAG_ROW_INIT 0x0040U -#define PNG_FLAG_FILLER_AFTER 0x0080U -#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100U -#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200U -#define PNG_FLAG_CRC_CRITICAL_USE 0x0400U -#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800U -#define PNG_FLAG_ASSUME_sRGB 0x1000U /* Added to libpng-1.5.4 */ -#define PNG_FLAG_OPTIMIZE_ALPHA 0x2000U /* Added to libpng-1.5.4 */ -#define PNG_FLAG_DETECT_UNINITIALIZED 0x4000U /* Added to libpng-1.5.4 */ -/* #define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000U */ -/* #define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000U */ -#define PNG_FLAG_LIBRARY_MISMATCH 0x20000U -#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000U -#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000U -#define PNG_FLAG_BENIGN_ERRORS_WARN 0x100000U /* Added to libpng-1.4.0 */ -#define PNG_FLAG_APP_WARNINGS_WARN 0x200000U /* Added to libpng-1.6.0 */ -#define PNG_FLAG_APP_ERRORS_WARN 0x400000U /* Added to libpng-1.6.0 */ - /* 0x800000U unused */ - /* 0x1000000U unused */ - /* 0x2000000U unused */ - /* 0x4000000U unused */ - /* 0x8000000U unused */ - /* 0x10000000U unused */ - /* 0x20000000U unused */ - /* 0x40000000U unused */ - -#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ - PNG_FLAG_CRC_ANCILLARY_NOWARN) - -#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ - PNG_FLAG_CRC_CRITICAL_IGNORE) - -#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ - PNG_FLAG_CRC_CRITICAL_MASK) - -/* Save typing and make code easier to understand */ - -#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ - abs((int)((c1).green) - (int)((c2).green)) + \ - abs((int)((c1).blue) - (int)((c2).blue))) - -/* Added to libpng-1.6.0: scale a 16-bit value in the range 0..65535 to 0..255 - * by dividing by 257 *with rounding*. This macro is exact for the given range. - * See the discourse in pngrtran.c png_do_scale_16_to_8. The values in the - * macro were established by experiment (modifying the added value). The macro - * has a second variant that takes a value already scaled by 255 and divides by - * 65535 - this has a maximum error of .502. Over the range 0..65535*65535 it - * only gives off-by-one errors and only for 0.5% (1 in 200) of the values. - */ -#define PNG_DIV65535(v24) (((v24) + 32895) >> 16) -#define PNG_DIV257(v16) PNG_DIV65535((png_uint_32)(v16) * 255) - -/* Added to libpng-1.2.6 JB */ -#define PNG_ROWBYTES(pixel_bits, width) \ - ((pixel_bits) >= 8 ? \ - ((size_t)(width) * (((size_t)(pixel_bits)) >> 3)) : \ - (( ((size_t)(width) * ((size_t)(pixel_bits))) + 7) >> 3) ) - -/* This returns the number of trailing bits in the last byte of a row, 0 if the - * last byte is completely full of pixels. It is, in principle, (pixel_bits x - * width) % 8, but that would overflow for large 'width'. The second macro is - * the same except that it returns the number of unused bits in the last byte; - * (8-TRAILBITS), but 0 when TRAILBITS is 0. - * - * NOTE: these macros are intended to be self-evidently correct and never - * overflow on the assumption that pixel_bits is in the range 0..255. The - * arguments are evaluated only once and they can be signed (e.g. as a result of - * the integral promotions). The result of the expression always has type - * (png_uint_32), however the compiler always knows it is in the range 0..7. - */ -#define PNG_TRAILBITS(pixel_bits, width) \ - (((pixel_bits) * ((width) % (png_uint_32)8)) % 8) - -#define PNG_PADBITS(pixel_bits, width) \ - ((8 - PNG_TRAILBITS(pixel_bits, width)) % 8) - -/* PNG_OUT_OF_RANGE returns true if value is outside the range - * ideal-delta..ideal+delta. Each argument is evaluated twice. - * "ideal" and "delta" should be constants, normally simple - * integers, "value" a variable. Added to libpng-1.2.6 JB - */ -#define PNG_OUT_OF_RANGE(value, ideal, delta) \ - ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) - -/* Conversions between fixed and floating point, only defined if - * required (to make sure the code doesn't accidentally use float - * when it is supposedly disabled.) - */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -/* The floating point conversion can't overflow, though it can and - * does lose accuracy relative to the original fixed point value. - * In practice this doesn't matter because png_fixed_point only - * stores numbers with very low precision. The png_ptr and s - * arguments are unused by default but are there in case error - * checking becomes a requirement. - */ -#define png_float(png_ptr, fixed, s) (.00001 * (fixed)) - -/* The fixed point conversion performs range checking and evaluates - * its argument multiple times, so must be used with care. The - * range checking uses the PNG specification values for a signed - * 32-bit fixed point value except that the values are deliberately - * rounded-to-zero to an integral value - 21474 (21474.83 is roughly - * (2^31-1) * 100000). 's' is a string that describes the value being - * converted. - * - * NOTE: this macro will raise a png_error if the range check fails, - * therefore it is normally only appropriate to use this on values - * that come from API calls or other sources where an out of range - * error indicates a programming error, not a data error! - * - * NOTE: by default this is off - the macro is not used - because the - * function call saves a lot of code. - */ -#ifdef PNG_FIXED_POINT_MACRO_SUPPORTED -#define png_fixed(png_ptr, fp, s) ((fp) <= 21474 && (fp) >= -21474 ?\ - ((png_fixed_point)(100000 * (fp))) : (png_fixed_error(png_ptr, s),0)) -#endif -/* else the corresponding function is defined below, inside the scope of the - * cplusplus test. - */ -#endif - -/* Constants for known chunk types. If you need to add a chunk, define the name - * here. For historical reasons these constants have the form png_; i.e. - * the prefix is lower case. Please use decimal values as the parameters to - * match the ISO PNG specification and to avoid relying on the C locale - * interpretation of character values. - * - * Prior to 1.5.6 these constants were strings, as of 1.5.6 png_uint_32 values - * are computed and a new macro (PNG_STRING_FROM_CHUNK) added to allow a string - * to be generated if required. - * - * PNG_32b correctly produces a value shifted by up to 24 bits, even on - * architectures where (int) is only 16 bits. - */ -#define PNG_32b(b,s) ((png_uint_32)(b) << (s)) -#define PNG_U32(b1,b2,b3,b4) \ - (PNG_32b(b1,24) | PNG_32b(b2,16) | PNG_32b(b3,8) | PNG_32b(b4,0)) - -/* Constants for known chunk types. - * - * MAINTAINERS: If you need to add a chunk, define the name here. - * For historical reasons these constants have the form png_; i.e. - * the prefix is lower case. Please use decimal values as the parameters to - * match the ISO PNG specification and to avoid relying on the C locale - * interpretation of character values. Please keep the list sorted. - * - * Notice that PNG_U32 is used to define a 32-bit value for the 4 byte chunk - * type. In fact the specification does not express chunk types this way, - * however using a 32-bit value means that the chunk type can be read from the - * stream using exactly the same code as used for a 32-bit unsigned value and - * can be examined far more efficiently (using one arithmetic compare). - * - * Prior to 1.5.6 the chunk type constants were expressed as C strings. The - * libpng API still uses strings for 'unknown' chunks and a macro, - * PNG_STRING_FROM_CHUNK, allows a string to be generated if required. Notice - * that for portable code numeric values must still be used; the string "IHDR" - * is not portable and neither is PNG_U32('I', 'H', 'D', 'R'). - * - * In 1.7.0 the definitions will be made public in png.h to avoid having to - * duplicate the same definitions in application code. - */ -#define png_IDAT PNG_U32( 73, 68, 65, 84) -#define png_IEND PNG_U32( 73, 69, 78, 68) -#define png_IHDR PNG_U32( 73, 72, 68, 82) -#define png_PLTE PNG_U32( 80, 76, 84, 69) -#define png_bKGD PNG_U32( 98, 75, 71, 68) -#define png_cHRM PNG_U32( 99, 72, 82, 77) -#define png_eXIf PNG_U32(101, 88, 73, 102) /* registered July 2017 */ -#define png_fRAc PNG_U32(102, 82, 65, 99) /* registered, not defined */ -#define png_gAMA PNG_U32(103, 65, 77, 65) -#define png_gIFg PNG_U32(103, 73, 70, 103) -#define png_gIFt PNG_U32(103, 73, 70, 116) /* deprecated */ -#define png_gIFx PNG_U32(103, 73, 70, 120) -#define png_hIST PNG_U32(104, 73, 83, 84) -#define png_iCCP PNG_U32(105, 67, 67, 80) -#define png_iTXt PNG_U32(105, 84, 88, 116) -#define png_oFFs PNG_U32(111, 70, 70, 115) -#define png_pCAL PNG_U32(112, 67, 65, 76) -#define png_pHYs PNG_U32(112, 72, 89, 115) -#define png_sBIT PNG_U32(115, 66, 73, 84) -#define png_sCAL PNG_U32(115, 67, 65, 76) -#define png_sPLT PNG_U32(115, 80, 76, 84) -#define png_sRGB PNG_U32(115, 82, 71, 66) -#define png_sTER PNG_U32(115, 84, 69, 82) -#define png_tEXt PNG_U32(116, 69, 88, 116) -#define png_tIME PNG_U32(116, 73, 77, 69) -#define png_tRNS PNG_U32(116, 82, 78, 83) -#define png_zTXt PNG_U32(122, 84, 88, 116) - -/* The following will work on (signed char*) strings, whereas the get_uint_32 - * macro will fail on top-bit-set values because of the sign extension. - */ -#define PNG_CHUNK_FROM_STRING(s)\ - PNG_U32(0xff & (s)[0], 0xff & (s)[1], 0xff & (s)[2], 0xff & (s)[3]) - -/* This uses (char), not (png_byte) to avoid warnings on systems where (char) is - * signed and the argument is a (char[]) This macro will fail miserably on - * systems where (char) is more than 8 bits. - */ -#define PNG_STRING_FROM_CHUNK(s,c)\ - (void)(((char*)(s))[0]=(char)(((c)>>24) & 0xff), \ - ((char*)(s))[1]=(char)(((c)>>16) & 0xff),\ - ((char*)(s))[2]=(char)(((c)>>8) & 0xff), \ - ((char*)(s))[3]=(char)((c & 0xff))) - -/* Do the same but terminate with a null character. */ -#define PNG_CSTRING_FROM_CHUNK(s,c)\ - (void)(PNG_STRING_FROM_CHUNK(s,c), ((char*)(s))[4] = 0) - -/* Test on flag values as defined in the spec (section 5.4): */ -#define PNG_CHUNK_ANCILLARY(c) (1 & ((c) >> 29)) -#define PNG_CHUNK_CRITICAL(c) (!PNG_CHUNK_ANCILLARY(c)) -#define PNG_CHUNK_PRIVATE(c) (1 & ((c) >> 21)) -#define PNG_CHUNK_RESERVED(c) (1 & ((c) >> 13)) -#define PNG_CHUNK_SAFE_TO_COPY(c) (1 & ((c) >> 5)) - -/* Gamma values (new at libpng-1.5.4): */ -#define PNG_GAMMA_MAC_OLD 151724 /* Assume '1.8' is really 2.2/1.45! */ -#define PNG_GAMMA_MAC_INVERSE 65909 -#define PNG_GAMMA_sRGB_INVERSE 45455 - -/* Almost everything below is C specific; the #defines above can be used in - * non-C code (so long as it is C-preprocessed) the rest of this stuff cannot. - */ -#ifndef PNG_VERSION_INFO_ONLY - -#include "pngstruct.h" -#include "pnginfo.h" - -/* Validate the include paths - the include path used to generate pnglibconf.h - * must match that used in the build, or we must be using pnglibconf.h.prebuilt: - */ -#if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM -# error ZLIB_VERNUM != PNG_ZLIB_VERNUM \ - "-I (include path) error: see the notes in pngpriv.h" - /* This means that when pnglibconf.h was built the copy of zlib.h that it - * used is not the same as the one being used here. Because the build of - * libpng makes decisions to use inflateInit2 and inflateReset2 based on the - * zlib version number and because this affects handling of certain broken - * PNG files the -I directives must match. - * - * The most likely explanation is that you passed a -I in CFLAGS. This will - * not work; all the preprocessor directives and in particular all the -I - * directives must be in CPPFLAGS. - */ -#endif - -/* This is used for 16-bit gamma tables -- only the top level pointers are - * const; this could be changed: - */ -typedef const png_uint_16p * png_const_uint_16pp; - -/* Added to libpng-1.5.7: sRGB conversion tables */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_table, [256]); - /* Convert from an sRGB encoded value 0..255 to a 16-bit linear value, - * 0..65535. This table gives the closest 16-bit answers (no errors). - */ -#endif - -PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_base, [512]); -PNG_INTERNAL_DATA(const png_byte, png_sRGB_delta, [512]); - -#define PNG_sRGB_FROM_LINEAR(linear) \ - ((png_byte)(0xff & ((png_sRGB_base[(linear)>>15] \ - + ((((linear) & 0x7fff)*png_sRGB_delta[(linear)>>15])>>12)) >> 8))) - /* Given a value 'linear' in the range 0..255*65535 calculate the 8-bit sRGB - * encoded value with maximum error 0.646365. Note that the input is not a - * 16-bit value; it has been multiplied by 255! */ -#endif /* SIMPLIFIED_READ/WRITE */ - - -/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Internal functions; these are not exported from a DLL however because they - * are used within several of the C source files they have to be C extern. - * - * All of these functions must be declared with PNG_INTERNAL_FUNCTION. - */ - -/* Zlib support */ -#define PNG_UNEXPECTED_ZLIB_RETURN (-7) -PNG_INTERNAL_FUNCTION(void, png_zstream_error,(png_structrp png_ptr, int ret), - PNG_EMPTY); - /* Used by the zlib handling functions to ensure that z_stream::msg is always - * set before they return. - */ - -#ifdef PNG_WRITE_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_free_buffer_list,(png_structrp png_ptr, - png_compression_bufferp *list),PNG_EMPTY); - /* Free the buffer list used by the compressed write code. */ -#endif - -#if defined(PNG_FLOATING_POINT_SUPPORTED) && \ - !defined(PNG_FIXED_POINT_MACRO_SUPPORTED) && \ - (defined(PNG_gAMA_SUPPORTED) || defined(PNG_cHRM_SUPPORTED) || \ - defined(PNG_sCAL_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)) || \ - (defined(PNG_sCAL_SUPPORTED) && \ - defined(PNG_FLOATING_ARITHMETIC_SUPPORTED)) -PNG_INTERNAL_FUNCTION(png_fixed_point,png_fixed,(png_const_structrp png_ptr, - double fp, png_const_charp text),PNG_EMPTY); -#endif - -/* Check the user version string for compatibility, returns false if the version - * numbers aren't compatible. - */ -PNG_INTERNAL_FUNCTION(int,png_user_version_check,(png_structrp png_ptr, - png_const_charp user_png_ver),PNG_EMPTY); - -/* Internal base allocator - no messages, NULL on failure to allocate. This - * does, however, call the application provided allocator and that could call - * png_error (although that would be a bug in the application implementation.) - */ -PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_base,(png_const_structrp png_ptr, - png_alloc_size_t size),PNG_ALLOCATED); - -#if defined(PNG_TEXT_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) ||\ - defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) -/* Internal array allocator, outputs no error or warning messages on failure, - * just returns NULL. - */ -PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_array,(png_const_structrp png_ptr, - int nelements, size_t element_size),PNG_ALLOCATED); - -/* The same but an existing array is extended by add_elements. This function - * also memsets the new elements to 0 and copies the old elements. The old - * array is not freed or altered. - */ -PNG_INTERNAL_FUNCTION(png_voidp,png_realloc_array,(png_const_structrp png_ptr, - png_const_voidp array, int old_elements, int add_elements, - size_t element_size),PNG_ALLOCATED); -#endif /* text, sPLT or unknown chunks */ - -/* Magic to create a struct when there is no struct to call the user supplied - * memory allocators. Because error handling has not been set up the memory - * handlers can't safely call png_error, but this is an obscure and undocumented - * restriction so libpng has to assume that the 'free' handler, at least, might - * call png_error. - */ -PNG_INTERNAL_FUNCTION(png_structp,png_create_png_struct, - (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, - png_free_ptr free_fn),PNG_ALLOCATED); - -/* Free memory from internal libpng struct */ -PNG_INTERNAL_FUNCTION(void,png_destroy_png_struct,(png_structrp png_ptr), - PNG_EMPTY); - -/* Free an allocated jmp_buf (always succeeds) */ -PNG_INTERNAL_FUNCTION(void,png_free_jmpbuf,(png_structrp png_ptr),PNG_EMPTY); - -/* Function to allocate memory for zlib. PNGAPI is disallowed. */ -PNG_INTERNAL_FUNCTION(voidpf,png_zalloc,(voidpf png_ptr, uInt items, uInt size), - PNG_ALLOCATED); - -/* Function to free memory for zlib. PNGAPI is disallowed. */ -PNG_INTERNAL_FUNCTION(void,png_zfree,(voidpf png_ptr, voidpf ptr),PNG_EMPTY); - -/* Next four functions are used internally as callbacks. PNGCBAPI is required - * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3, changed to - * PNGCBAPI at 1.5.0 - */ - -PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_read_data,(png_structp png_ptr, - png_bytep data, size_t length),PNG_EMPTY); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_push_fill_buffer,(png_structp png_ptr, - png_bytep buffer, size_t length),PNG_EMPTY); -#endif - -PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_write_data,(png_structp png_ptr, - png_bytep data, size_t length),PNG_EMPTY); - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -# ifdef PNG_STDIO_SUPPORTED -PNG_INTERNAL_FUNCTION(void PNGCBAPI,png_default_flush,(png_structp png_ptr), - PNG_EMPTY); -# endif -#endif - -/* Reset the CRC variable */ -PNG_INTERNAL_FUNCTION(void,png_reset_crc,(png_structrp png_ptr),PNG_EMPTY); - -/* Write the "data" buffer to whatever output you are using */ -PNG_INTERNAL_FUNCTION(void,png_write_data,(png_structrp png_ptr, - png_const_bytep data, size_t length),PNG_EMPTY); - -/* Read and check the PNG file signature */ -PNG_INTERNAL_FUNCTION(void,png_read_sig,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); - -/* Read the chunk header (length + type name) */ -PNG_INTERNAL_FUNCTION(png_uint_32,png_read_chunk_header,(png_structrp png_ptr), - PNG_EMPTY); - -/* Read data from whatever input you are using into the "data" buffer */ -PNG_INTERNAL_FUNCTION(void,png_read_data,(png_structrp png_ptr, png_bytep data, - size_t length),PNG_EMPTY); - -/* Read bytes into buf, and update png_ptr->crc */ -PNG_INTERNAL_FUNCTION(void,png_crc_read,(png_structrp png_ptr, png_bytep buf, - png_uint_32 length),PNG_EMPTY); - -/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ -PNG_INTERNAL_FUNCTION(int,png_crc_finish,(png_structrp png_ptr, - png_uint_32 skip),PNG_EMPTY); - -/* Read the CRC from the file and compare it to the libpng calculated CRC */ -PNG_INTERNAL_FUNCTION(int,png_crc_error,(png_structrp png_ptr),PNG_EMPTY); - -/* Calculate the CRC over a section of data. Note that we are only - * passing a maximum of 64K on systems that have this as a memory limit, - * since this is the maximum buffer size we can specify. - */ -PNG_INTERNAL_FUNCTION(void,png_calculate_crc,(png_structrp png_ptr, - png_const_bytep ptr, size_t length),PNG_EMPTY); - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_flush,(png_structrp png_ptr),PNG_EMPTY); -#endif - -/* Write various chunks */ - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. - */ -PNG_INTERNAL_FUNCTION(void,png_write_IHDR,(png_structrp png_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, - int compression_method, int filter_method, int interlace_method),PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_write_PLTE,(png_structrp png_ptr, - png_const_colorp palette, png_uint_32 num_pal),PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_compress_IDAT,(png_structrp png_ptr, - png_const_bytep row_data, png_alloc_size_t row_data_length, int flush), - PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_write_IEND,(png_structrp png_ptr),PNG_EMPTY); - -#ifdef PNG_WRITE_gAMA_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_gAMA_fixed,(png_structrp png_ptr, - png_fixed_point file_gamma),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_sBIT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_sBIT,(png_structrp png_ptr, - png_const_color_8p sbit, int color_type),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_cHRM_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_cHRM_fixed,(png_structrp png_ptr, - const png_xy *xy), PNG_EMPTY); - /* The xy value must have been previously validated */ -#endif - -#ifdef PNG_WRITE_sRGB_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_sRGB,(png_structrp png_ptr, - int intent),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_eXIf_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_eXIf,(png_structrp png_ptr, - png_bytep exif, int num_exif),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_iCCP_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_iCCP,(png_structrp png_ptr, - png_const_charp name, png_const_bytep profile), PNG_EMPTY); - /* The profile must have been previously validated for correctness, the - * length comes from the first four bytes. Only the base, deflate, - * compression is supported. - */ -#endif - -#ifdef PNG_WRITE_sPLT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_sPLT,(png_structrp png_ptr, - png_const_sPLT_tp palette),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_tRNS_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_tRNS,(png_structrp png_ptr, - png_const_bytep trans, png_const_color_16p values, int number, - int color_type),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_bKGD_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_bKGD,(png_structrp png_ptr, - png_const_color_16p values, int color_type),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_hIST_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_hIST,(png_structrp png_ptr, - png_const_uint_16p hist, int num_hist),PNG_EMPTY); -#endif - -/* Chunks that have keywords */ -#ifdef PNG_WRITE_tEXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_tEXt,(png_structrp png_ptr, - png_const_charp key, png_const_charp text, size_t text_len),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_zTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp - key, png_const_charp text, int compression),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_iTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_iTXt,(png_structrp png_ptr, - int compression, png_const_charp key, png_const_charp lang, - png_const_charp lang_key, png_const_charp text),PNG_EMPTY); -#endif - -#ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ -PNG_INTERNAL_FUNCTION(int,png_set_text_2,(png_const_structrp png_ptr, - png_inforp info_ptr, png_const_textp text_ptr, int num_text),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_oFFs_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_oFFs,(png_structrp png_ptr, - png_int_32 x_offset, png_int_32 y_offset, int unit_type),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_pCAL_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_pCAL,(png_structrp png_ptr, - png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, - png_const_charp units, png_charpp params),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_pHYs_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_pHYs,(png_structrp png_ptr, - png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, - int unit_type),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_tIME_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_tIME,(png_structrp png_ptr, - png_const_timep mod_time),PNG_EMPTY); -#endif - -#ifdef PNG_WRITE_sCAL_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_write_sCAL_s,(png_structrp png_ptr, - int unit, png_const_charp width, png_const_charp height),PNG_EMPTY); -#endif - -/* Called when finished processing a row of data */ -PNG_INTERNAL_FUNCTION(void,png_write_finish_row,(png_structrp png_ptr), - PNG_EMPTY); - -/* Internal use only. Called before first row of data */ -PNG_INTERNAL_FUNCTION(void,png_write_start_row,(png_structrp png_ptr), - PNG_EMPTY); - -/* Combine a row of data, dealing with alpha, etc. if requested. 'row' is an - * array of png_ptr->width pixels. If the image is not interlaced or this - * is the final pass this just does a memcpy, otherwise the "display" flag - * is used to determine whether to copy pixels that are not in the current pass. - * - * Because 'png_do_read_interlace' (below) replicates pixels this allows this - * function to achieve the documented 'blocky' appearance during interlaced read - * if display is 1 and the 'sparkle' appearance, where existing pixels in 'row' - * are not changed if they are not in the current pass, when display is 0. - * - * 'display' must be 0 or 1, otherwise the memcpy will be done regardless. - * - * The API always reads from the png_struct row buffer and always assumes that - * it is full width (png_do_read_interlace has already been called.) - * - * This function is only ever used to write to row buffers provided by the - * caller of the relevant libpng API and the row must have already been - * transformed by the read transformations. - * - * The PNG_USE_COMPILE_TIME_MASKS option causes generation of pre-computed - * bitmasks for use within the code, otherwise runtime generated masks are used. - * The default is compile time masks. - */ -#ifndef PNG_USE_COMPILE_TIME_MASKS -# define PNG_USE_COMPILE_TIME_MASKS 1 -#endif -PNG_INTERNAL_FUNCTION(void,png_combine_row,(png_const_structrp png_ptr, - png_bytep row, int display),PNG_EMPTY); - -#ifdef PNG_READ_INTERLACING_SUPPORTED -/* Expand an interlaced row: the 'row_info' describes the pass data that has - * been read in and must correspond to the pixels in 'row', the pixels are - * expanded (moved apart) in 'row' to match the final layout, when doing this - * the pixels are *replicated* to the intervening space. This is essential for - * the correct operation of png_combine_row, above. - */ -PNG_INTERNAL_FUNCTION(void,png_do_read_interlace,(png_row_infop row_info, - png_bytep row, int pass, png_uint_32 transformations),PNG_EMPTY); -#endif - -/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED -/* Grab pixels out of a row for an interlaced pass */ -PNG_INTERNAL_FUNCTION(void,png_do_write_interlace,(png_row_infop row_info, - png_bytep row, int pass),PNG_EMPTY); -#endif - -/* Unfilter a row: check the filter value before calling this, there is no point - * calling it for PNG_FILTER_VALUE_NONE. - */ -PNG_INTERNAL_FUNCTION(void,png_read_filter_row,(png_structrp pp, png_row_infop - row_info, png_bytep row, png_const_bytep prev_row, int filter),PNG_EMPTY); - -#if PNG_ARM_NEON_OPT > 0 -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_neon,(png_row_infop row_info, - png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_neon,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -#endif - -#if PNG_MIPS_MSA_OPT > 0 -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_msa,(png_row_infop row_info, - png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -#endif - -#if PNG_POWERPC_VSX_OPT > 0 -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_vsx,(png_row_infop row_info, - png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_vsx,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -#endif - -#if PNG_INTEL_SSE_IMPLEMENTATION > 0 -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_sse2,(png_row_infop - row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); -#endif - -/* Choose the best filter to use and filter the row data */ -PNG_INTERNAL_FUNCTION(void,png_write_find_filter,(png_structrp png_ptr, - png_row_infop row_info),PNG_EMPTY); - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_read_IDAT_data,(png_structrp png_ptr, - png_bytep output, png_alloc_size_t avail_out),PNG_EMPTY); - /* Read 'avail_out' bytes of data from the IDAT stream. If the output buffer - * is NULL the function checks, instead, for the end of the stream. In this - * case a benign error will be issued if the stream end is not found or if - * extra data has to be consumed. - */ -PNG_INTERNAL_FUNCTION(void,png_read_finish_IDAT,(png_structrp png_ptr), - PNG_EMPTY); - /* This cleans up when the IDAT LZ stream does not end when the last image - * byte is read; there is still some pending input. - */ - -PNG_INTERNAL_FUNCTION(void,png_read_finish_row,(png_structrp png_ptr), - PNG_EMPTY); - /* Finish a row while reading, dealing with interlacing passes, etc. */ -#endif /* SEQUENTIAL_READ */ - -/* Initialize the row buffers, etc. */ -PNG_INTERNAL_FUNCTION(void,png_read_start_row,(png_structrp png_ptr),PNG_EMPTY); - -#if ZLIB_VERNUM >= 0x1240 -PNG_INTERNAL_FUNCTION(int,png_zlib_inflate,(png_structrp png_ptr, int flush), - PNG_EMPTY); -# define PNG_INFLATE(pp, flush) png_zlib_inflate(pp, flush) -#else /* Zlib < 1.2.4 */ -# define PNG_INFLATE(pp, flush) inflate(&(pp)->zstream, flush) -#endif /* Zlib < 1.2.4 */ - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -/* Optional call to update the users info structure */ -PNG_INTERNAL_FUNCTION(void,png_read_transform_info,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -#endif - -/* Shared transform functions, defined in pngtran.c */ -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_strip_channel,(png_row_infop row_info, - png_bytep row, int at_start),PNG_EMPTY); -#endif - -#ifdef PNG_16BIT_SUPPORTED -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_swap,(png_row_infop row_info, - png_bytep row),PNG_EMPTY); -#endif -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ - defined(PNG_WRITE_PACKSWAP_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_packswap,(png_row_infop row_info, - png_bytep row),PNG_EMPTY); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_invert,(png_row_infop row_info, - png_bytep row),PNG_EMPTY); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_bgr,(png_row_infop row_info, - png_bytep row),PNG_EMPTY); -#endif - -/* The following decodes the appropriate chunks, and does error correction, - * then calls the appropriate callback for the chunk if it is valid. - */ - -/* Decode the IHDR chunk */ -PNG_INTERNAL_FUNCTION(void,png_handle_IHDR,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_handle_PLTE,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_handle_IEND,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); - -#ifdef PNG_READ_bKGD_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_bKGD,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_cHRM,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_eXIf_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_eXIf,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_gAMA_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_gAMA,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_hIST_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_hIST,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_iCCP_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_iCCP,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif /* READ_iCCP */ - -#ifdef PNG_READ_iTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_iTXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_oFFs,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_pCAL,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_pHYs,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_sBIT,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_sCAL,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_sPLT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_sPLT,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif /* READ_sPLT */ - -#ifdef PNG_READ_sRGB_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_sRGB,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_tEXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_tIME_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_tIME,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_tRNS_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_tRNS,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -#endif - -PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_const_structrp png_ptr, - png_uint_32 chunk_name),PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_check_chunk_length,(png_const_structrp png_ptr, - png_uint_32 chunk_length),PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); - /* This is the function that gets called for unknown chunks. The 'keep' - * argument is either non-zero for a known chunk that has been set to be - * handled as unknown or zero for an unknown chunk. By default the function - * just skips the chunk or errors out if it is critical. - */ - -#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) ||\ - defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) -PNG_INTERNAL_FUNCTION(int,png_chunk_unknown_handling, - (png_const_structrp png_ptr, png_uint_32 chunk_name),PNG_EMPTY); - /* Exactly as the API png_handle_as_unknown() except that the argument is a - * 32-bit chunk name, not a string. - */ -#endif /* READ_UNKNOWN_CHUNKS || HANDLE_AS_UNKNOWN */ - -/* Handle the transformations for reading and writing */ -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_do_read_transformations,(png_structrp png_ptr, - png_row_infop row_info),PNG_EMPTY); -#endif -#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_do_write_transformations,(png_structrp png_ptr, - png_row_infop row_info),PNG_EMPTY); -#endif - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_init_read_transformations,(png_structrp png_ptr), - PNG_EMPTY); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_push_read_chunk,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_sig,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_check_crc,(png_structrp png_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_save_buffer,(png_structrp png_ptr), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_restore_buffer,(png_structrp png_ptr, - png_bytep buffer, size_t buffer_length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_IDAT,(png_structrp png_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_process_IDAT_data,(png_structrp png_ptr, - png_bytep buffer, size_t buffer_length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_process_row,(png_structrp png_ptr), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_handle_unknown,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_have_info,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_have_end,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_have_row,(png_structrp png_ptr, - png_bytep row),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_end,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_process_some_data,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_read_push_finish_row,(png_structrp png_ptr), - PNG_EMPTY); -# ifdef PNG_READ_tEXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_push_handle_tEXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_tEXt,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -# endif -# ifdef PNG_READ_zTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_push_handle_zTXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_zTXt,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -# endif -# ifdef PNG_READ_iTXt_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_push_handle_iTXt,(png_structrp png_ptr, - png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_read_iTXt,(png_structrp png_ptr, - png_inforp info_ptr),PNG_EMPTY); -# endif - -#endif /* PROGRESSIVE_READ */ - -/* Added at libpng version 1.6.0 */ -#ifdef PNG_GAMMA_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_colorspace_set_gamma,(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_fixed_point gAMA), PNG_EMPTY); - /* Set the colorspace gamma with a value provided by the application or by - * the gAMA chunk on read. The value will override anything set by an ICC - * profile. - */ - -PNG_INTERNAL_FUNCTION(void,png_colorspace_sync_info,(png_const_structrp png_ptr, - png_inforp info_ptr), PNG_EMPTY); - /* Synchronize the info 'valid' flags with the colorspace */ - -PNG_INTERNAL_FUNCTION(void,png_colorspace_sync,(png_const_structrp png_ptr, - png_inforp info_ptr), PNG_EMPTY); - /* Copy the png_struct colorspace to the info_struct and call the above to - * synchronize the flags. Checks for NULL info_ptr and does nothing. - */ -#endif - -/* Added at libpng version 1.4.0 */ -#ifdef PNG_COLORSPACE_SUPPORTED -/* These internal functions are for maintaining the colorspace structure within - * a png_info or png_struct (or, indeed, both). - */ -PNG_INTERNAL_FUNCTION(int,png_colorspace_set_chromaticities, - (png_const_structrp png_ptr, png_colorspacerp colorspace, const png_xy *xy, - int preferred), PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(int,png_colorspace_set_endpoints, - (png_const_structrp png_ptr, png_colorspacerp colorspace, const png_XYZ *XYZ, - int preferred), PNG_EMPTY); - -#ifdef PNG_sRGB_SUPPORTED -PNG_INTERNAL_FUNCTION(int,png_colorspace_set_sRGB,(png_const_structrp png_ptr, - png_colorspacerp colorspace, int intent), PNG_EMPTY); - /* This does set the colorspace gAMA and cHRM values too, but doesn't set the - * flags to write them, if it returns false there was a problem and an error - * message has already been output (but the colorspace may still need to be - * synced to record the invalid flag). - */ -#endif /* sRGB */ - -#ifdef PNG_iCCP_SUPPORTED -PNG_INTERNAL_FUNCTION(int,png_colorspace_set_ICC,(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_const_charp name, - png_uint_32 profile_length, png_const_bytep profile, int color_type), - PNG_EMPTY); - /* The 'name' is used for information only */ - -/* Routines for checking parts of an ICC profile. */ -#ifdef PNG_READ_iCCP_SUPPORTED -PNG_INTERNAL_FUNCTION(int,png_icc_check_length,(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_const_charp name, - png_uint_32 profile_length), PNG_EMPTY); -#endif /* READ_iCCP */ -PNG_INTERNAL_FUNCTION(int,png_icc_check_header,(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_const_charp name, - png_uint_32 profile_length, - png_const_bytep profile /* first 132 bytes only */, int color_type), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(int,png_icc_check_tag_table,(png_const_structrp png_ptr, - png_colorspacerp colorspace, png_const_charp name, - png_uint_32 profile_length, - png_const_bytep profile /* header plus whole tag table */), PNG_EMPTY); -#ifdef PNG_sRGB_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_icc_set_sRGB,( - png_const_structrp png_ptr, png_colorspacerp colorspace, - png_const_bytep profile, uLong adler), PNG_EMPTY); - /* 'adler' is the Adler32 checksum of the uncompressed profile data. It may - * be zero to indicate that it is not available. It is used, if provided, - * as a fast check on the profile when checking to see if it is sRGB. - */ -#endif -#endif /* iCCP */ - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_colorspace_set_rgb_coefficients, - (png_structrp png_ptr), PNG_EMPTY); - /* Set the rgb_to_gray coefficients from the colorspace Y values */ -#endif /* READ_RGB_TO_GRAY */ -#endif /* COLORSPACE */ - -/* Added at libpng version 1.4.0 */ -PNG_INTERNAL_FUNCTION(void,png_check_IHDR,(png_const_structrp png_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type),PNG_EMPTY); - -/* Added at libpng version 1.5.10 */ -#if defined(PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED) || \ - defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_do_check_palette_indexes, - (png_structrp png_ptr, png_row_infop row_info),PNG_EMPTY); -#endif - -#if defined(PNG_FLOATING_POINT_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED) -PNG_INTERNAL_FUNCTION(void,png_fixed_error,(png_const_structrp png_ptr, - png_const_charp name),PNG_NORETURN); -#endif - -/* Puts 'string' into 'buffer' at buffer[pos], taking care never to overwrite - * the end. Always leaves the buffer nul terminated. Never errors out (and - * there is no error code.) - */ -PNG_INTERNAL_FUNCTION(size_t,png_safecat,(png_charp buffer, size_t bufsize, - size_t pos, png_const_charp string),PNG_EMPTY); - -/* Various internal functions to handle formatted warning messages, currently - * only implemented for warnings. - */ -#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED) -/* Utility to dump an unsigned value into a buffer, given a start pointer and - * and end pointer (which should point just *beyond* the end of the buffer!) - * Returns the pointer to the start of the formatted string. This utility only - * does unsigned values. - */ -PNG_INTERNAL_FUNCTION(png_charp,png_format_number,(png_const_charp start, - png_charp end, int format, png_alloc_size_t number),PNG_EMPTY); - -/* Convenience macro that takes an array: */ -#define PNG_FORMAT_NUMBER(buffer,format,number) \ - png_format_number(buffer, buffer + (sizeof buffer), format, number) - -/* Suggested size for a number buffer (enough for 64 bits and a sign!) */ -#define PNG_NUMBER_BUFFER_SIZE 24 - -/* These are the integer formats currently supported, the name is formed from - * the standard printf(3) format string. - */ -#define PNG_NUMBER_FORMAT_u 1 /* chose unsigned API! */ -#define PNG_NUMBER_FORMAT_02u 2 -#define PNG_NUMBER_FORMAT_d 1 /* chose signed API! */ -#define PNG_NUMBER_FORMAT_02d 2 -#define PNG_NUMBER_FORMAT_x 3 -#define PNG_NUMBER_FORMAT_02x 4 -#define PNG_NUMBER_FORMAT_fixed 5 /* choose the signed API */ -#endif - -#ifdef PNG_WARNINGS_SUPPORTED -/* New defines and members adding in libpng-1.5.4 */ -# define PNG_WARNING_PARAMETER_SIZE 32 -# define PNG_WARNING_PARAMETER_COUNT 8 /* Maximum 9; see pngerror.c */ - -/* An l-value of this type has to be passed to the APIs below to cache the - * values of the parameters to a formatted warning message. - */ -typedef char png_warning_parameters[PNG_WARNING_PARAMETER_COUNT][ - PNG_WARNING_PARAMETER_SIZE]; - -PNG_INTERNAL_FUNCTION(void,png_warning_parameter,(png_warning_parameters p, - int number, png_const_charp string),PNG_EMPTY); - /* Parameters are limited in size to PNG_WARNING_PARAMETER_SIZE characters, - * including the trailing '\0'. - */ -PNG_INTERNAL_FUNCTION(void,png_warning_parameter_unsigned, - (png_warning_parameters p, int number, int format, png_alloc_size_t value), - PNG_EMPTY); - /* Use png_alloc_size_t because it is an unsigned type as big as any we - * need to output. Use the following for a signed value. - */ -PNG_INTERNAL_FUNCTION(void,png_warning_parameter_signed, - (png_warning_parameters p, int number, int format, png_int_32 value), - PNG_EMPTY); - -PNG_INTERNAL_FUNCTION(void,png_formatted_warning,(png_const_structrp png_ptr, - png_warning_parameters p, png_const_charp message),PNG_EMPTY); - /* 'message' follows the X/Open approach of using @1, @2 to insert - * parameters previously supplied using the above functions. Errors in - * specifying the parameters will simply result in garbage substitutions. - */ -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -/* Application errors (new in 1.6); use these functions (declared below) for - * errors in the parameters or order of API function calls on read. The - * 'warning' should be used for an error that can be handled completely; the - * 'error' for one which can be handled safely but which may lose application - * information or settings. - * - * By default these both result in a png_error call prior to release, while in a - * released version the 'warning' is just a warning. However if the application - * explicitly disables benign errors (explicitly permitting the code to lose - * information) they both turn into warnings. - * - * If benign errors aren't supported they end up as the corresponding base call - * (png_warning or png_error.) - */ -PNG_INTERNAL_FUNCTION(void,png_app_warning,(png_const_structrp png_ptr, - png_const_charp message),PNG_EMPTY); - /* The application provided invalid parameters to an API function or called - * an API function at the wrong time, libpng can completely recover. - */ - -PNG_INTERNAL_FUNCTION(void,png_app_error,(png_const_structrp png_ptr, - png_const_charp message),PNG_EMPTY); - /* As above but libpng will ignore the call, or attempt some other partial - * recovery from the error. - */ -#else -# define png_app_warning(pp,s) png_warning(pp,s) -# define png_app_error(pp,s) png_error(pp,s) -#endif - -PNG_INTERNAL_FUNCTION(void,png_chunk_report,(png_const_structrp png_ptr, - png_const_charp message, int error),PNG_EMPTY); - /* Report a recoverable issue in chunk data. On read this is used to report - * a problem found while reading a particular chunk and the - * png_chunk_benign_error or png_chunk_warning function is used as - * appropriate. On write this is used to report an error that comes from - * data set via an application call to a png_set_ API and png_app_error or - * png_app_warning is used as appropriate. - * - * The 'error' parameter must have one of the following values: - */ -#define PNG_CHUNK_WARNING 0 /* never an error */ -#define PNG_CHUNK_WRITE_ERROR 1 /* an error only on write */ -#define PNG_CHUNK_ERROR 2 /* always an error */ - -/* ASCII to FP interfaces, currently only implemented if sCAL - * support is required. - */ -#if defined(PNG_sCAL_SUPPORTED) -/* MAX_DIGITS is actually the maximum number of characters in an sCAL - * width or height, derived from the precision (number of significant - * digits - a build time settable option) and assumptions about the - * maximum ridiculous exponent. - */ -#define PNG_sCAL_MAX_DIGITS (PNG_sCAL_PRECISION+1/*.*/+1/*E*/+10/*exponent*/) - -#ifdef PNG_FLOATING_POINT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_ascii_from_fp,(png_const_structrp png_ptr, - png_charp ascii, size_t size, double fp, unsigned int precision), - PNG_EMPTY); -#endif /* FLOATING_POINT */ - -#ifdef PNG_FIXED_POINT_SUPPORTED -PNG_INTERNAL_FUNCTION(void,png_ascii_from_fixed,(png_const_structrp png_ptr, - png_charp ascii, size_t size, png_fixed_point fp),PNG_EMPTY); -#endif /* FIXED_POINT */ -#endif /* sCAL */ - -#if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) -/* An internal API to validate the format of a floating point number. - * The result is the index of the next character. If the number is - * not valid it will be the index of a character in the supposed number. - * - * The format of a number is defined in the PNG extensions specification - * and this API is strictly conformant to that spec, not anyone elses! - * - * The format as a regular expression is: - * - * [+-]?[0-9]+.?([Ee][+-]?[0-9]+)? - * - * or: - * - * [+-]?.[0-9]+(.[0-9]+)?([Ee][+-]?[0-9]+)? - * - * The complexity is that either integer or fraction must be present and the - * fraction is permitted to have no digits only if the integer is present. - * - * NOTE: The dangling E problem. - * There is a PNG valid floating point number in the following: - * - * PNG floating point numbers are not greedy. - * - * Working this out requires *TWO* character lookahead (because of the - * sign), the parser does not do this - it will fail at the 'r' - this - * doesn't matter for PNG sCAL chunk values, but it requires more care - * if the value were ever to be embedded in something more complex. Use - * ANSI-C strtod if you need the lookahead. - */ -/* State table for the parser. */ -#define PNG_FP_INTEGER 0 /* before or in integer */ -#define PNG_FP_FRACTION 1 /* before or in fraction */ -#define PNG_FP_EXPONENT 2 /* before or in exponent */ -#define PNG_FP_STATE 3 /* mask for the above */ -#define PNG_FP_SAW_SIGN 4 /* Saw +/- in current state */ -#define PNG_FP_SAW_DIGIT 8 /* Saw a digit in current state */ -#define PNG_FP_SAW_DOT 16 /* Saw a dot in current state */ -#define PNG_FP_SAW_E 32 /* Saw an E (or e) in current state */ -#define PNG_FP_SAW_ANY 60 /* Saw any of the above 4 */ - -/* These three values don't affect the parser. They are set but not used. - */ -#define PNG_FP_WAS_VALID 64 /* Preceding substring is a valid fp number */ -#define PNG_FP_NEGATIVE 128 /* A negative number, including "-0" */ -#define PNG_FP_NONZERO 256 /* A non-zero value */ -#define PNG_FP_STICKY 448 /* The above three flags */ - -/* This is available for the caller to store in 'state' if required. Do not - * call the parser after setting it (the parser sometimes clears it.) - */ -#define PNG_FP_INVALID 512 /* Available for callers as a distinct value */ - -/* Result codes for the parser (boolean - true meants ok, false means - * not ok yet.) - */ -#define PNG_FP_MAYBE 0 /* The number may be valid in the future */ -#define PNG_FP_OK 1 /* The number is valid */ - -/* Tests on the sticky non-zero and negative flags. To pass these checks - * the state must also indicate that the whole number is valid - this is - * achieved by testing PNG_FP_SAW_DIGIT (see the implementation for why this - * is equivalent to PNG_FP_OK above.) - */ -#define PNG_FP_NZ_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NEGATIVE | PNG_FP_NONZERO) - /* NZ_MASK: the string is valid and a non-zero negative value */ -#define PNG_FP_Z_MASK (PNG_FP_SAW_DIGIT | PNG_FP_NONZERO) - /* Z MASK: the string is valid and a non-zero value. */ - /* PNG_FP_SAW_DIGIT: the string is valid. */ -#define PNG_FP_IS_ZERO(state) (((state) & PNG_FP_Z_MASK) == PNG_FP_SAW_DIGIT) -#define PNG_FP_IS_POSITIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_Z_MASK) -#define PNG_FP_IS_NEGATIVE(state) (((state) & PNG_FP_NZ_MASK) == PNG_FP_NZ_MASK) - -/* The actual parser. This can be called repeatedly. It updates - * the index into the string and the state variable (which must - * be initialized to 0). It returns a result code, as above. There - * is no point calling the parser any more if it fails to advance to - * the end of the string - it is stuck on an invalid character (or - * terminated by '\0'). - * - * Note that the pointer will consume an E or even an E+ and then leave - * a 'maybe' state even though a preceding integer.fraction is valid. - * The PNG_FP_WAS_VALID flag indicates that a preceding substring was - * a valid number. It's possible to recover from this by calling - * the parser again (from the start, with state 0) but with a string - * that omits the last character (i.e. set the size to the index of - * the problem character.) This has not been tested within libpng. - */ -PNG_INTERNAL_FUNCTION(int,png_check_fp_number,(png_const_charp string, - size_t size, int *statep, png_size_tp whereami),PNG_EMPTY); - -/* This is the same but it checks a complete string and returns true - * only if it just contains a floating point number. As of 1.5.4 this - * function also returns the state at the end of parsing the number if - * it was valid (otherwise it returns 0.) This can be used for testing - * for negative or zero values using the sticky flag. - */ -PNG_INTERNAL_FUNCTION(int,png_check_fp_string,(png_const_charp string, - size_t size),PNG_EMPTY); -#endif /* pCAL || sCAL */ - -#if defined(PNG_GAMMA_SUPPORTED) ||\ - defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED) -/* Added at libpng version 1.5.0 */ -/* This is a utility to provide a*times/div (rounded) and indicate - * if there is an overflow. The result is a boolean - false (0) - * for overflow, true (1) if no overflow, in which case *res - * holds the result. - */ -PNG_INTERNAL_FUNCTION(int,png_muldiv,(png_fixed_point_p res, png_fixed_point a, - png_int_32 multiplied_by, png_int_32 divided_by),PNG_EMPTY); -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED) -/* Same deal, but issue a warning on overflow and return 0. */ -PNG_INTERNAL_FUNCTION(png_fixed_point,png_muldiv_warn, - (png_const_structrp png_ptr, png_fixed_point a, png_int_32 multiplied_by, - png_int_32 divided_by),PNG_EMPTY); -#endif - -#ifdef PNG_GAMMA_SUPPORTED -/* Calculate a reciprocal - used for gamma values. This returns - * 0 if the argument is 0 in order to maintain an undefined value; - * there are no warnings. - */ -PNG_INTERNAL_FUNCTION(png_fixed_point,png_reciprocal,(png_fixed_point a), - PNG_EMPTY); - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* The same but gives a reciprocal of the product of two fixed point - * values. Accuracy is suitable for gamma calculations but this is - * not exact - use png_muldiv for that. Only required at present on read. - */ -PNG_INTERNAL_FUNCTION(png_fixed_point,png_reciprocal2,(png_fixed_point a, - png_fixed_point b),PNG_EMPTY); -#endif - -/* Return true if the gamma value is significantly different from 1.0 */ -PNG_INTERNAL_FUNCTION(int,png_gamma_significant,(png_fixed_point gamma_value), - PNG_EMPTY); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* Internal fixed point gamma correction. These APIs are called as - * required to convert single values - they don't need to be fast, - * they are not used when processing image pixel values. - * - * While the input is an 'unsigned' value it must actually be the - * correct bit value - 0..255 or 0..65535 as required. - */ -PNG_INTERNAL_FUNCTION(png_uint_16,png_gamma_correct,(png_structrp png_ptr, - unsigned int value, png_fixed_point gamma_value),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(png_uint_16,png_gamma_16bit_correct,(unsigned int value, - png_fixed_point gamma_value),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(png_byte,png_gamma_8bit_correct,(unsigned int value, - png_fixed_point gamma_value),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_destroy_gamma_table,(png_structrp png_ptr), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_build_gamma_table,(png_structrp png_ptr, - int bit_depth),PNG_EMPTY); -#endif - -/* SIMPLIFIED READ/WRITE SUPPORT */ -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ - defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) -/* The internal structure that png_image::opaque points to. */ -typedef struct png_control -{ - png_structp png_ptr; - png_infop info_ptr; - png_voidp error_buf; /* Always a jmp_buf at present. */ - - png_const_bytep memory; /* Memory buffer. */ - size_t size; /* Size of the memory buffer. */ - - unsigned int for_write :1; /* Otherwise it is a read structure */ - unsigned int owned_file :1; /* We own the file in io_ptr */ -} png_control; - -/* Return the pointer to the jmp_buf from a png_control: necessary because C - * does not reveal the type of the elements of jmp_buf. - */ -#ifdef __cplusplus -# define png_control_jmp_buf(pc) (((jmp_buf*)((pc)->error_buf))[0]) -#else -# define png_control_jmp_buf(pc) ((pc)->error_buf) -#endif - -/* Utility to safely execute a piece of libpng code catching and logging any - * errors that might occur. Returns true on success, false on failure (either - * of the function or as a result of a png_error.) - */ -PNG_INTERNAL_CALLBACK(void,png_safe_error,(png_structp png_ptr, - png_const_charp error_message),PNG_NORETURN); - -#ifdef PNG_WARNINGS_SUPPORTED -PNG_INTERNAL_CALLBACK(void,png_safe_warning,(png_structp png_ptr, - png_const_charp warning_message),PNG_EMPTY); -#else -# define png_safe_warning 0/*dummy argument*/ -#endif - -PNG_INTERNAL_FUNCTION(int,png_safe_execute,(png_imagep image, - int (*function)(png_voidp), png_voidp arg),PNG_EMPTY); - -/* Utility to log an error; this also cleans up the png_image; the function - * always returns 0 (false). - */ -PNG_INTERNAL_FUNCTION(int,png_image_error,(png_imagep image, - png_const_charp error_message),PNG_EMPTY); - -#ifndef PNG_SIMPLIFIED_READ_SUPPORTED -/* png_image_free is used by the write code but not exported */ -PNG_INTERNAL_FUNCTION(void, png_image_free, (png_imagep image), PNG_EMPTY); -#endif /* !SIMPLIFIED_READ */ - -#endif /* SIMPLIFIED READ/WRITE */ - -/* These are initialization functions for hardware specific PNG filter - * optimizations; list these here then select the appropriate one at compile - * time using the macro PNG_FILTER_OPTIMIZATIONS. If the macro is not defined - * the generic code is used. - */ -#ifdef PNG_FILTER_OPTIMIZATIONS -PNG_INTERNAL_FUNCTION(void, PNG_FILTER_OPTIMIZATIONS, (png_structp png_ptr, - unsigned int bpp), PNG_EMPTY); - /* Just declare the optimization that will be used */ -#else - /* List *all* the possible optimizations here - this branch is required if - * the builder of libpng passes the definition of PNG_FILTER_OPTIMIZATIONS in - * CFLAGS in place of CPPFLAGS *and* uses symbol prefixing. - */ -# if PNG_ARM_NEON_OPT > 0 -PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon, - (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -#endif - -#if PNG_MIPS_MSA_OPT > 0 -PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa, - (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -#endif - -# if PNG_INTEL_SSE_IMPLEMENTATION > 0 -PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, - (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -# endif -#endif - -PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, - png_const_charp key, png_bytep new_key), PNG_EMPTY); - -#if PNG_ARM_NEON_IMPLEMENTATION == 1 -PNG_INTERNAL_FUNCTION(void, - png_riffle_palette_neon, - (png_structrp), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(int, - png_do_expand_palette_rgba8_neon, - (png_structrp, - png_row_infop, - png_const_bytep, - const png_bytepp, - const png_bytepp), - PNG_EMPTY); -PNG_INTERNAL_FUNCTION(int, - png_do_expand_palette_rgb8_neon, - (png_structrp, - png_row_infop, - png_const_bytep, - const png_bytepp, - const png_bytepp), - PNG_EMPTY); -#endif - -/* Maintainer: Put new private prototypes here ^ */ - -#include "pngdebug.h" - -#ifdef __cplusplus -} -#endif - -#endif /* PNG_VERSION_INFO_ONLY */ -#endif /* PNGPRIV_H */ diff --git a/Externals/libpng/pngread.c b/Externals/libpng/pngread.c deleted file mode 100644 index 8fa7d9f162..0000000000 --- a/Externals/libpng/pngread.c +++ /dev/null @@ -1,4225 +0,0 @@ - -/* pngread.c - read a PNG file - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file contains routines that an application calls directly to - * read a PNG file or stream. - */ - -#include "pngpriv.h" -#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) && defined(PNG_STDIO_SUPPORTED) -# include -#endif - -#ifdef PNG_READ_SUPPORTED - -/* Create a PNG structure for reading, and allocate any memory needed. */ -PNG_FUNCTION(png_structp,PNGAPI -png_create_read_struct,(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn),PNG_ALLOCATED) -{ -#ifndef PNG_USER_MEM_SUPPORTED - png_structp png_ptr = png_create_png_struct(user_png_ver, error_ptr, - error_fn, warn_fn, NULL, NULL, NULL); -#else - return png_create_read_struct_2(user_png_ver, error_ptr, error_fn, - warn_fn, NULL, NULL, NULL); -} - -/* Alternate create PNG structure for reading, and allocate any memory - * needed. - */ -PNG_FUNCTION(png_structp,PNGAPI -png_create_read_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED) -{ - png_structp png_ptr = png_create_png_struct(user_png_ver, error_ptr, - error_fn, warn_fn, mem_ptr, malloc_fn, free_fn); -#endif /* USER_MEM */ - - if (png_ptr != NULL) - { - png_ptr->mode = PNG_IS_READ_STRUCT; - - /* Added in libpng-1.6.0; this can be used to detect a read structure if - * required (it will be zero in a write structure.) - */ -# ifdef PNG_SEQUENTIAL_READ_SUPPORTED - png_ptr->IDAT_read_size = PNG_IDAT_READ_SIZE; -# endif - -# ifdef PNG_BENIGN_READ_ERRORS_SUPPORTED - png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN; - - /* In stable builds only warn if an application error can be completely - * handled. - */ -# if PNG_RELEASE_BUILD - png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN; -# endif -# endif - - /* TODO: delay this, it can be done in png_init_io (if the app doesn't - * do it itself) avoiding setting the default function if it is not - * required. - */ - png_set_read_fn(png_ptr, NULL, NULL); - } - - return png_ptr; -} - - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the information before the actual image data. This has been - * changed in v0.90 to allow reading a file that already has the magic - * bytes read from the stream. You can tell libpng how many bytes have - * been read from the beginning of the stream (up to the maximum of 8) - * via png_set_sig_bytes(), and we will only check the remaining bytes - * here. The application can then have access to the signature bytes we - * read if it is determined that this isn't a valid PNG file. - */ -void PNGAPI -png_read_info(png_structrp png_ptr, png_inforp info_ptr) -{ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - int keep; -#endif - - png_debug(1, "in png_read_info"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - /* Read and check the PNG file signature. */ - png_read_sig(png_ptr, info_ptr); - - for (;;) - { - png_uint_32 length = png_read_chunk_header(png_ptr); - png_uint_32 chunk_name = png_ptr->chunk_name; - - /* IDAT logic needs to happen here to simplify getting the two flags - * right. - */ - if (chunk_name == png_IDAT) - { - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "Missing IHDR before IDAT"); - - else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - (png_ptr->mode & PNG_HAVE_PLTE) == 0) - png_chunk_error(png_ptr, "Missing PLTE before IDAT"); - - else if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) - png_chunk_benign_error(png_ptr, "Too many IDATs found"); - - png_ptr->mode |= PNG_HAVE_IDAT; - } - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; - png_ptr->mode |= PNG_AFTER_IDAT; - } - - /* This should be a binary subdivision search or a hash for - * matching the chunk name rather than a linear search. - */ - if (chunk_name == png_IHDR) - png_handle_IHDR(png_ptr, info_ptr, length); - - else if (chunk_name == png_IEND) - png_handle_IEND(png_ptr, info_ptr, length); - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0) - { - png_handle_unknown(png_ptr, info_ptr, length, keep); - - if (chunk_name == png_PLTE) - png_ptr->mode |= PNG_HAVE_PLTE; - - else if (chunk_name == png_IDAT) - { - png_ptr->idat_size = 0; /* It has been consumed */ - break; - } - } -#endif - else if (chunk_name == png_PLTE) - png_handle_PLTE(png_ptr, info_ptr, length); - - else if (chunk_name == png_IDAT) - { - png_ptr->idat_size = length; - break; - } - -#ifdef PNG_READ_bKGD_SUPPORTED - else if (chunk_name == png_bKGD) - png_handle_bKGD(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED - else if (chunk_name == png_cHRM) - png_handle_cHRM(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_eXIf_SUPPORTED - else if (chunk_name == png_eXIf) - png_handle_eXIf(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_gAMA_SUPPORTED - else if (chunk_name == png_gAMA) - png_handle_gAMA(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_hIST_SUPPORTED - else if (chunk_name == png_hIST) - png_handle_hIST(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED - else if (chunk_name == png_oFFs) - png_handle_oFFs(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED - else if (chunk_name == png_pCAL) - png_handle_pCAL(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED - else if (chunk_name == png_sCAL) - png_handle_sCAL(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED - else if (chunk_name == png_pHYs) - png_handle_pHYs(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED - else if (chunk_name == png_sBIT) - png_handle_sBIT(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sRGB_SUPPORTED - else if (chunk_name == png_sRGB) - png_handle_sRGB(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_iCCP_SUPPORTED - else if (chunk_name == png_iCCP) - png_handle_iCCP(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sPLT_SUPPORTED - else if (chunk_name == png_sPLT) - png_handle_sPLT(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED - else if (chunk_name == png_tEXt) - png_handle_tEXt(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tIME_SUPPORTED - else if (chunk_name == png_tIME) - png_handle_tIME(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tRNS_SUPPORTED - else if (chunk_name == png_tRNS) - png_handle_tRNS(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED - else if (chunk_name == png_zTXt) - png_handle_zTXt(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_iTXt_SUPPORTED - else if (chunk_name == png_iTXt) - png_handle_iTXt(png_ptr, info_ptr, length); -#endif - - else - png_handle_unknown(png_ptr, info_ptr, length, - PNG_HANDLE_CHUNK_AS_DEFAULT); - } -} -#endif /* SEQUENTIAL_READ */ - -/* Optional call to update the users info_ptr structure */ -void PNGAPI -png_read_update_info(png_structrp png_ptr, png_inforp info_ptr) -{ - png_debug(1, "in png_read_update_info"); - - if (png_ptr != NULL) - { - if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) - { - png_read_start_row(png_ptr); - -# ifdef PNG_READ_TRANSFORMS_SUPPORTED - png_read_transform_info(png_ptr, info_ptr); -# else - PNG_UNUSED(info_ptr) -# endif - } - - /* New in 1.6.0 this avoids the bug of doing the initializations twice */ - else - png_app_error(png_ptr, - "png_read_update_info/png_start_read_image: duplicate call"); - } -} - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Initialize palette, background, etc, after transformations - * are set, but before any reading takes place. This allows - * the user to obtain a gamma-corrected palette, for example. - * If the user doesn't call this, we will do it ourselves. - */ -void PNGAPI -png_start_read_image(png_structrp png_ptr) -{ - png_debug(1, "in png_start_read_image"); - - if (png_ptr != NULL) - { - if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) - png_read_start_row(png_ptr); - - /* New in 1.6.0 this avoids the bug of doing the initializations twice */ - else - png_app_error(png_ptr, - "png_start_read_image/png_read_update_info: duplicate call"); - } -} -#endif /* SEQUENTIAL_READ */ - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -#ifdef PNG_MNG_FEATURES_SUPPORTED -/* Undoes intrapixel differencing, - * NOTE: this is apparently only supported in the 'sequential' reader. - */ -static void -png_do_read_intrapixel(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_read_intrapixel"); - - if ( - (row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - int bytes_per_pixel; - png_uint_32 row_width = row_info->width; - - if (row_info->bit_depth == 8) - { - png_bytep rp; - png_uint_32 i; - - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - bytes_per_pixel = 3; - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - bytes_per_pixel = 4; - - else - return; - - for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) - { - *(rp) = (png_byte)((256 + *rp + *(rp + 1)) & 0xff); - *(rp+2) = (png_byte)((256 + *(rp + 2) + *(rp + 1)) & 0xff); - } - } - else if (row_info->bit_depth == 16) - { - png_bytep rp; - png_uint_32 i; - - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - bytes_per_pixel = 6; - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - bytes_per_pixel = 8; - - else - return; - - for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) - { - png_uint_32 s0 = (png_uint_32)(*(rp ) << 8) | *(rp + 1); - png_uint_32 s1 = (png_uint_32)(*(rp + 2) << 8) | *(rp + 3); - png_uint_32 s2 = (png_uint_32)(*(rp + 4) << 8) | *(rp + 5); - png_uint_32 red = (s0 + s1 + 65536) & 0xffff; - png_uint_32 blue = (s2 + s1 + 65536) & 0xffff; - *(rp ) = (png_byte)((red >> 8) & 0xff); - *(rp + 1) = (png_byte)(red & 0xff); - *(rp + 4) = (png_byte)((blue >> 8) & 0xff); - *(rp + 5) = (png_byte)(blue & 0xff); - } - } - } -} -#endif /* MNG_FEATURES */ - -void PNGAPI -png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row) -{ - png_row_info row_info; - - if (png_ptr == NULL) - return; - - png_debug2(1, "in png_read_row (row %lu, pass %d)", - (unsigned long)png_ptr->row_number, png_ptr->pass); - - /* png_read_start_row sets the information (in particular iwidth) for this - * interlace pass. - */ - if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) - png_read_start_row(png_ptr); - - /* 1.5.6: row_info moved out of png_struct to a local here. */ - row_info.width = png_ptr->iwidth; /* NOTE: width of current interlaced row */ - row_info.color_type = png_ptr->color_type; - row_info.bit_depth = png_ptr->bit_depth; - row_info.channels = png_ptr->channels; - row_info.pixel_depth = png_ptr->pixel_depth; - row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width); - -#ifdef PNG_WARNINGS_SUPPORTED - if (png_ptr->row_number == 0 && png_ptr->pass == 0) - { - /* Check for transforms that have been set but were defined out */ -#if defined(PNG_WRITE_INVERT_SUPPORTED) && !defined(PNG_READ_INVERT_SUPPORTED) - if ((png_ptr->transformations & PNG_INVERT_MONO) != 0) - png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_FILLER_SUPPORTED) && !defined(PNG_READ_FILLER_SUPPORTED) - if ((png_ptr->transformations & PNG_FILLER) != 0) - png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \ - !defined(PNG_READ_PACKSWAP_SUPPORTED) - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_PACK_SUPPORTED) && !defined(PNG_READ_PACK_SUPPORTED) - if ((png_ptr->transformations & PNG_PACK) != 0) - png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_SHIFT_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED) - if ((png_ptr->transformations & PNG_SHIFT) != 0) - png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_BGR_SUPPORTED) && !defined(PNG_READ_BGR_SUPPORTED) - if ((png_ptr->transformations & PNG_BGR) != 0) - png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined"); -#endif - -#if defined(PNG_WRITE_SWAP_SUPPORTED) && !defined(PNG_READ_SWAP_SUPPORTED) - if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0) - png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined"); -#endif - } -#endif /* WARNINGS */ - -#ifdef PNG_READ_INTERLACING_SUPPORTED - /* If interlaced and we do not need a new row, combine row and return. - * Notice that the pixels we have from previous rows have been transformed - * already; we can only combine like with like (transformed or - * untransformed) and, because of the libpng API for interlaced images, this - * means we must transform before de-interlacing. - */ - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) != 0) - { - switch (png_ptr->pass) - { - case 0: - if (png_ptr->row_number & 0x07) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - png_read_finish_row(png_ptr); - return; - } - break; - - case 1: - if ((png_ptr->row_number & 0x07) || png_ptr->width < 5) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - png_read_finish_row(png_ptr); - return; - } - break; - - case 2: - if ((png_ptr->row_number & 0x07) != 4) - { - if (dsp_row != NULL && (png_ptr->row_number & 4)) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - png_read_finish_row(png_ptr); - return; - } - break; - - case 3: - if ((png_ptr->row_number & 3) || png_ptr->width < 3) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - png_read_finish_row(png_ptr); - return; - } - break; - - case 4: - if ((png_ptr->row_number & 3) != 2) - { - if (dsp_row != NULL && (png_ptr->row_number & 2)) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - png_read_finish_row(png_ptr); - return; - } - break; - - case 5: - if ((png_ptr->row_number & 1) || png_ptr->width < 2) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - png_read_finish_row(png_ptr); - return; - } - break; - - default: - case 6: - if ((png_ptr->row_number & 1) == 0) - { - png_read_finish_row(png_ptr); - return; - } - break; - } - } -#endif - - if ((png_ptr->mode & PNG_HAVE_IDAT) == 0) - png_error(png_ptr, "Invalid attempt to read row data"); - - /* Fill the row with IDAT data: */ - png_ptr->row_buf[0]=255; /* to force error if no data was found */ - png_read_IDAT_data(png_ptr, png_ptr->row_buf, row_info.rowbytes + 1); - - if (png_ptr->row_buf[0] > PNG_FILTER_VALUE_NONE) - { - if (png_ptr->row_buf[0] < PNG_FILTER_VALUE_LAST) - png_read_filter_row(png_ptr, &row_info, png_ptr->row_buf + 1, - png_ptr->prev_row + 1, png_ptr->row_buf[0]); - else - png_error(png_ptr, "bad adaptive filter value"); - } - - /* libpng 1.5.6: the following line was copying png_ptr->rowbytes before - * 1.5.6, while the buffer really is this big in current versions of libpng - * it may not be in the future, so this was changed just to copy the - * interlaced count: - */ - memcpy(png_ptr->prev_row, png_ptr->row_buf, row_info.rowbytes + 1); - -#ifdef PNG_MNG_FEATURES_SUPPORTED - if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 && - (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING)) - { - /* Intrapixel differencing */ - png_do_read_intrapixel(&row_info, png_ptr->row_buf + 1); - } -#endif - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED - if (png_ptr->transformations) - png_do_read_transformations(png_ptr, &row_info); -#endif - - /* The transformed pixel depth should match the depth now in row_info. */ - if (png_ptr->transformed_pixel_depth == 0) - { - png_ptr->transformed_pixel_depth = row_info.pixel_depth; - if (row_info.pixel_depth > png_ptr->maximum_pixel_depth) - png_error(png_ptr, "sequential row overflow"); - } - - else if (png_ptr->transformed_pixel_depth != row_info.pixel_depth) - png_error(png_ptr, "internal sequential row size calculation error"); - -#ifdef PNG_READ_INTERLACING_SUPPORTED - /* Expand interlaced rows to full size */ - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) != 0) - { - if (png_ptr->pass < 6) - png_do_read_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass, - png_ptr->transformations); - - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 1/*display*/); - - if (row != NULL) - png_combine_row(png_ptr, row, 0/*row*/); - } - - else -#endif - { - if (row != NULL) - png_combine_row(png_ptr, row, -1/*ignored*/); - - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, -1/*ignored*/); - } - png_read_finish_row(png_ptr); - - if (png_ptr->read_row_fn != NULL) - (*(png_ptr->read_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass); - -} -#endif /* SEQUENTIAL_READ */ - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read one or more rows of image data. If the image is interlaced, - * and png_set_interlace_handling() has been called, the rows need to - * contain the contents of the rows from the previous pass. If the - * image has alpha or transparency, and png_handle_alpha()[*] has been - * called, the rows contents must be initialized to the contents of the - * screen. - * - * "row" holds the actual image, and pixels are placed in it - * as they arrive. If the image is displayed after each pass, it will - * appear to "sparkle" in. "display_row" can be used to display a - * "chunky" progressive image, with finer detail added as it becomes - * available. If you do not want this "chunky" display, you may pass - * NULL for display_row. If you do not want the sparkle display, and - * you have not called png_handle_alpha(), you may pass NULL for rows. - * If you have called png_handle_alpha(), and the image has either an - * alpha channel or a transparency chunk, you must provide a buffer for - * rows. In this case, you do not have to provide a display_row buffer - * also, but you may. If the image is not interlaced, or if you have - * not called png_set_interlace_handling(), the display_row buffer will - * be ignored, so pass NULL to it. - * - * [*] png_handle_alpha() does not exist yet, as of this version of libpng - */ - -void PNGAPI -png_read_rows(png_structrp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows) -{ - png_uint_32 i; - png_bytepp rp; - png_bytepp dp; - - png_debug(1, "in png_read_rows"); - - if (png_ptr == NULL) - return; - - rp = row; - dp = display_row; - if (rp != NULL && dp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep rptr = *rp++; - png_bytep dptr = *dp++; - - png_read_row(png_ptr, rptr, dptr); - } - - else if (rp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep rptr = *rp; - png_read_row(png_ptr, rptr, NULL); - rp++; - } - - else if (dp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep dptr = *dp; - png_read_row(png_ptr, NULL, dptr); - dp++; - } -} -#endif /* SEQUENTIAL_READ */ - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the entire image. If the image has an alpha channel or a tRNS - * chunk, and you have called png_handle_alpha()[*], you will need to - * initialize the image to the current image that PNG will be overlaying. - * We set the num_rows again here, in case it was incorrectly set in - * png_read_start_row() by a call to png_read_update_info() or - * png_start_read_image() if png_set_interlace_handling() wasn't called - * prior to either of these functions like it should have been. You can - * only call this function once. If you desire to have an image for - * each pass of a interlaced image, use png_read_rows() instead. - * - * [*] png_handle_alpha() does not exist yet, as of this version of libpng - */ -void PNGAPI -png_read_image(png_structrp png_ptr, png_bytepp image) -{ - png_uint_32 i, image_height; - int pass, j; - png_bytepp rp; - - png_debug(1, "in png_read_image"); - - if (png_ptr == NULL) - return; - -#ifdef PNG_READ_INTERLACING_SUPPORTED - if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) - { - pass = png_set_interlace_handling(png_ptr); - /* And make sure transforms are initialized. */ - png_start_read_image(png_ptr); - } - else - { - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) == 0) - { - /* Caller called png_start_read_image or png_read_update_info without - * first turning on the PNG_INTERLACE transform. We can fix this here, - * but the caller should do it! - */ - png_warning(png_ptr, "Interlace handling should be turned on when " - "using png_read_image"); - /* Make sure this is set correctly */ - png_ptr->num_rows = png_ptr->height; - } - - /* Obtain the pass number, which also turns on the PNG_INTERLACE flag in - * the above error case. - */ - pass = png_set_interlace_handling(png_ptr); - } -#else - if (png_ptr->interlaced) - png_error(png_ptr, - "Cannot read interlaced image -- interlace handler disabled"); - - pass = 1; -#endif - - image_height=png_ptr->height; - - for (j = 0; j < pass; j++) - { - rp = image; - for (i = 0; i < image_height; i++) - { - png_read_row(png_ptr, *rp, NULL); - rp++; - } - } -} -#endif /* SEQUENTIAL_READ */ - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -/* Read the end of the PNG file. Will not read past the end of the - * file, will verify the end is accurate, and will read any comments - * or time information at the end of the file, if info is not NULL. - */ -void PNGAPI -png_read_end(png_structrp png_ptr, png_inforp info_ptr) -{ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - int keep; -#endif - - png_debug(1, "in png_read_end"); - - if (png_ptr == NULL) - return; - - /* If png_read_end is called in the middle of reading the rows there may - * still be pending IDAT data and an owned zstream. Deal with this here. - */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - if (png_chunk_unknown_handling(png_ptr, png_IDAT) == 0) -#endif - png_read_finish_IDAT(png_ptr); - -#ifdef PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED - /* Report invalid palette index; added at libng-1.5.10 */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - png_ptr->num_palette_max > png_ptr->num_palette) - png_benign_error(png_ptr, "Read palette index exceeding num_palette"); -#endif - - do - { - png_uint_32 length = png_read_chunk_header(png_ptr); - png_uint_32 chunk_name = png_ptr->chunk_name; - - if (chunk_name != png_IDAT) - png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; - - if (chunk_name == png_IEND) - png_handle_IEND(png_ptr, info_ptr, length); - - else if (chunk_name == png_IHDR) - png_handle_IHDR(png_ptr, info_ptr, length); - - else if (info_ptr == NULL) - png_crc_finish(png_ptr, length); - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED - else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0) - { - if (chunk_name == png_IDAT) - { - if ((length > 0 && !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED)) - || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) != 0) - png_benign_error(png_ptr, ".Too many IDATs found"); - } - png_handle_unknown(png_ptr, info_ptr, length, keep); - if (chunk_name == png_PLTE) - png_ptr->mode |= PNG_HAVE_PLTE; - } -#endif - - else if (chunk_name == png_IDAT) - { - /* Zero length IDATs are legal after the last IDAT has been - * read, but not after other chunks have been read. 1.6 does not - * always read all the deflate data; specifically it cannot be relied - * upon to read the Adler32 at the end. If it doesn't ignore IDAT - * chunks which are longer than zero as well: - */ - if ((length > 0 && !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED)) - || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) != 0) - png_benign_error(png_ptr, "..Too many IDATs found"); - - png_crc_finish(png_ptr, length); - } - else if (chunk_name == png_PLTE) - png_handle_PLTE(png_ptr, info_ptr, length); - -#ifdef PNG_READ_bKGD_SUPPORTED - else if (chunk_name == png_bKGD) - png_handle_bKGD(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED - else if (chunk_name == png_cHRM) - png_handle_cHRM(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_eXIf_SUPPORTED - else if (chunk_name == png_eXIf) - png_handle_eXIf(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_gAMA_SUPPORTED - else if (chunk_name == png_gAMA) - png_handle_gAMA(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_hIST_SUPPORTED - else if (chunk_name == png_hIST) - png_handle_hIST(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED - else if (chunk_name == png_oFFs) - png_handle_oFFs(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED - else if (chunk_name == png_pCAL) - png_handle_pCAL(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED - else if (chunk_name == png_sCAL) - png_handle_sCAL(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED - else if (chunk_name == png_pHYs) - png_handle_pHYs(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED - else if (chunk_name == png_sBIT) - png_handle_sBIT(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sRGB_SUPPORTED - else if (chunk_name == png_sRGB) - png_handle_sRGB(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_iCCP_SUPPORTED - else if (chunk_name == png_iCCP) - png_handle_iCCP(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_sPLT_SUPPORTED - else if (chunk_name == png_sPLT) - png_handle_sPLT(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED - else if (chunk_name == png_tEXt) - png_handle_tEXt(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tIME_SUPPORTED - else if (chunk_name == png_tIME) - png_handle_tIME(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_tRNS_SUPPORTED - else if (chunk_name == png_tRNS) - png_handle_tRNS(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED - else if (chunk_name == png_zTXt) - png_handle_zTXt(png_ptr, info_ptr, length); -#endif - -#ifdef PNG_READ_iTXt_SUPPORTED - else if (chunk_name == png_iTXt) - png_handle_iTXt(png_ptr, info_ptr, length); -#endif - - else - png_handle_unknown(png_ptr, info_ptr, length, - PNG_HANDLE_CHUNK_AS_DEFAULT); - } while ((png_ptr->mode & PNG_HAVE_IEND) == 0); -} -#endif /* SEQUENTIAL_READ */ - -/* Free all memory used in the read struct */ -static void -png_read_destroy(png_structrp png_ptr) -{ - png_debug(1, "in png_read_destroy"); - -#ifdef PNG_READ_GAMMA_SUPPORTED - png_destroy_gamma_table(png_ptr); -#endif - - png_free(png_ptr, png_ptr->big_row_buf); - png_ptr->big_row_buf = NULL; - png_free(png_ptr, png_ptr->big_prev_row); - png_ptr->big_prev_row = NULL; - png_free(png_ptr, png_ptr->read_buffer); - png_ptr->read_buffer = NULL; - -#ifdef PNG_READ_QUANTIZE_SUPPORTED - png_free(png_ptr, png_ptr->palette_lookup); - png_ptr->palette_lookup = NULL; - png_free(png_ptr, png_ptr->quantize_index); - png_ptr->quantize_index = NULL; -#endif - - if ((png_ptr->free_me & PNG_FREE_PLTE) != 0) - { - png_zfree(png_ptr, png_ptr->palette); - png_ptr->palette = NULL; - } - png_ptr->free_me &= ~PNG_FREE_PLTE; - -#if defined(PNG_tRNS_SUPPORTED) || \ - defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - if ((png_ptr->free_me & PNG_FREE_TRNS) != 0) - { - png_free(png_ptr, png_ptr->trans_alpha); - png_ptr->trans_alpha = NULL; - } - png_ptr->free_me &= ~PNG_FREE_TRNS; -#endif - - inflateEnd(&png_ptr->zstream); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - png_free(png_ptr, png_ptr->save_buffer); - png_ptr->save_buffer = NULL; -#endif - -#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) && \ - defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) - png_free(png_ptr, png_ptr->unknown_chunk.data); - png_ptr->unknown_chunk.data = NULL; -#endif - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - png_free(png_ptr, png_ptr->chunk_list); - png_ptr->chunk_list = NULL; -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) && \ - defined(PNG_ARM_NEON_IMPLEMENTATION) - png_free(png_ptr, png_ptr->riffled_palette); - png_ptr->riffled_palette = NULL; -#endif - - /* NOTE: the 'setjmp' buffer may still be allocated and the memory and error - * callbacks are still set at this point. They are required to complete the - * destruction of the png_struct itself. - */ -} - -/* Free all memory used by the read */ -void PNGAPI -png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, - png_infopp end_info_ptr_ptr) -{ - png_structrp png_ptr = NULL; - - png_debug(1, "in png_destroy_read_struct"); - - if (png_ptr_ptr != NULL) - png_ptr = *png_ptr_ptr; - - if (png_ptr == NULL) - return; - - /* libpng 1.6.0: use the API to destroy info structs to ensure consistent - * behavior. Prior to 1.6.0 libpng did extra 'info' destruction in this API. - * The extra was, apparently, unnecessary yet this hides memory leak bugs. - */ - png_destroy_info_struct(png_ptr, end_info_ptr_ptr); - png_destroy_info_struct(png_ptr, info_ptr_ptr); - - *png_ptr_ptr = NULL; - png_read_destroy(png_ptr); - png_destroy_png_struct(png_ptr); -} - -void PNGAPI -png_set_read_status_fn(png_structrp png_ptr, png_read_status_ptr read_row_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->read_row_fn = read_row_fn; -} - - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -#ifdef PNG_INFO_IMAGE_SUPPORTED -void PNGAPI -png_read_png(png_structrp png_ptr, png_inforp info_ptr, - int transforms, voidp params) -{ - if (png_ptr == NULL || info_ptr == NULL) - return; - - /* png_read_info() gives us all of the information from the - * PNG file before the first IDAT (image data chunk). - */ - png_read_info(png_ptr, info_ptr); - if (info_ptr->height > PNG_UINT_32_MAX/(sizeof (png_bytep))) - png_error(png_ptr, "Image is too high to process with png_read_png()"); - - /* -------------- image transformations start here ------------------- */ - /* libpng 1.6.10: add code to cause a png_app_error if a selected TRANSFORM - * is not implemented. This will only happen in de-configured (non-default) - * libpng builds. The results can be unexpected - png_read_png may return - * short or mal-formed rows because the transform is skipped. - */ - - /* Tell libpng to strip 16-bit/color files down to 8 bits per color. - */ - if ((transforms & PNG_TRANSFORM_SCALE_16) != 0) - /* Added at libpng-1.5.4. "strip_16" produces the same result that it - * did in earlier versions, while "scale_16" is now more accurate. - */ -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED - png_set_scale_16(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SCALE_16 not supported"); -#endif - - /* If both SCALE and STRIP are required pngrtran will effectively cancel the - * latter by doing SCALE first. This is ok and allows apps not to check for - * which is supported to get the right answer. - */ - if ((transforms & PNG_TRANSFORM_STRIP_16) != 0) -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED - png_set_strip_16(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_16 not supported"); -#endif - - /* Strip alpha bytes from the input data without combining with - * the background (not recommended). - */ - if ((transforms & PNG_TRANSFORM_STRIP_ALPHA) != 0) -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED - png_set_strip_alpha(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_ALPHA not supported"); -#endif - - /* Extract multiple pixels with bit depths of 1, 2, or 4 from a single - * byte into separate bytes (useful for paletted and grayscale images). - */ - if ((transforms & PNG_TRANSFORM_PACKING) != 0) -#ifdef PNG_READ_PACK_SUPPORTED - png_set_packing(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_PACKING not supported"); -#endif - - /* Change the order of packed pixels to least significant bit first - * (not useful if you are using png_set_packing). - */ - if ((transforms & PNG_TRANSFORM_PACKSWAP) != 0) -#ifdef PNG_READ_PACKSWAP_SUPPORTED - png_set_packswap(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_PACKSWAP not supported"); -#endif - - /* Expand paletted colors into true RGB triplets - * Expand grayscale images to full 8 bits from 1, 2, or 4 bits/pixel - * Expand paletted or RGB images with transparency to full alpha - * channels so the data will be available as RGBA quartets. - */ - if ((transforms & PNG_TRANSFORM_EXPAND) != 0) -#ifdef PNG_READ_EXPAND_SUPPORTED - png_set_expand(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_EXPAND not supported"); -#endif - - /* We don't handle background color or gamma transformation or quantizing. - */ - - /* Invert monochrome files to have 0 as white and 1 as black - */ - if ((transforms & PNG_TRANSFORM_INVERT_MONO) != 0) -#ifdef PNG_READ_INVERT_SUPPORTED - png_set_invert_mono(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_MONO not supported"); -#endif - - /* If you want to shift the pixel values from the range [0,255] or - * [0,65535] to the original [0,7] or [0,31], or whatever range the - * colors were originally in: - */ - if ((transforms & PNG_TRANSFORM_SHIFT) != 0) -#ifdef PNG_READ_SHIFT_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sBIT) != 0) - png_set_shift(png_ptr, &info_ptr->sig_bit); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SHIFT not supported"); -#endif - - /* Flip the RGB pixels to BGR (or RGBA to BGRA) */ - if ((transforms & PNG_TRANSFORM_BGR) != 0) -#ifdef PNG_READ_BGR_SUPPORTED - png_set_bgr(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_BGR not supported"); -#endif - - /* Swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR) */ - if ((transforms & PNG_TRANSFORM_SWAP_ALPHA) != 0) -#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED - png_set_swap_alpha(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ALPHA not supported"); -#endif - - /* Swap bytes of 16-bit files to least significant byte first */ - if ((transforms & PNG_TRANSFORM_SWAP_ENDIAN) != 0) -#ifdef PNG_READ_SWAP_SUPPORTED - png_set_swap(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ENDIAN not supported"); -#endif - -/* Added at libpng-1.2.41 */ - /* Invert the alpha channel from opacity to transparency */ - if ((transforms & PNG_TRANSFORM_INVERT_ALPHA) != 0) -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED - png_set_invert_alpha(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_ALPHA not supported"); -#endif - -/* Added at libpng-1.2.41 */ - /* Expand grayscale image to RGB */ - if ((transforms & PNG_TRANSFORM_GRAY_TO_RGB) != 0) -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED - png_set_gray_to_rgb(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_GRAY_TO_RGB not supported"); -#endif - -/* Added at libpng-1.5.4 */ - if ((transforms & PNG_TRANSFORM_EXPAND_16) != 0) -#ifdef PNG_READ_EXPAND_16_SUPPORTED - png_set_expand_16(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_EXPAND_16 not supported"); -#endif - - /* We don't handle adding filler bytes */ - - /* We use png_read_image and rely on that for interlace handling, but we also - * call png_read_update_info therefore must turn on interlace handling now: - */ - (void)png_set_interlace_handling(png_ptr); - - /* Optional call to gamma correct and add the background to the palette - * and update info structure. REQUIRED if you are expecting libpng to - * update the palette for you (i.e., you selected such a transform above). - */ - png_read_update_info(png_ptr, info_ptr); - - /* -------------- image transformations end here ------------------- */ - - png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0); - if (info_ptr->row_pointers == NULL) - { - png_uint_32 iptr; - - info_ptr->row_pointers = png_voidcast(png_bytepp, png_malloc(png_ptr, - info_ptr->height * (sizeof (png_bytep)))); - - for (iptr=0; iptrheight; iptr++) - info_ptr->row_pointers[iptr] = NULL; - - info_ptr->free_me |= PNG_FREE_ROWS; - - for (iptr = 0; iptr < info_ptr->height; iptr++) - info_ptr->row_pointers[iptr] = png_voidcast(png_bytep, - png_malloc(png_ptr, info_ptr->rowbytes)); - } - - png_read_image(png_ptr, info_ptr->row_pointers); - info_ptr->valid |= PNG_INFO_IDAT; - - /* Read rest of file, and get additional chunks in info_ptr - REQUIRED */ - png_read_end(png_ptr, info_ptr); - - PNG_UNUSED(params) -} -#endif /* INFO_IMAGE */ -#endif /* SEQUENTIAL_READ */ - -#ifdef PNG_SIMPLIFIED_READ_SUPPORTED -/* SIMPLIFIED READ - * - * This code currently relies on the sequential reader, though it could easily - * be made to work with the progressive one. - */ -/* Arguments to png_image_finish_read: */ - -/* Encoding of PNG data (used by the color-map code) */ -# define P_NOTSET 0 /* File encoding not yet known */ -# define P_sRGB 1 /* 8-bit encoded to sRGB gamma */ -# define P_LINEAR 2 /* 16-bit linear: not encoded, NOT pre-multiplied! */ -# define P_FILE 3 /* 8-bit encoded to file gamma, not sRGB or linear */ -# define P_LINEAR8 4 /* 8-bit linear: only from a file value */ - -/* Color-map processing: after libpng has run on the PNG image further - * processing may be needed to convert the data to color-map indices. - */ -#define PNG_CMAP_NONE 0 -#define PNG_CMAP_GA 1 /* Process GA data to a color-map with alpha */ -#define PNG_CMAP_TRANS 2 /* Process GA data to a background index */ -#define PNG_CMAP_RGB 3 /* Process RGB data */ -#define PNG_CMAP_RGB_ALPHA 4 /* Process RGBA data */ - -/* The following document where the background is for each processing case. */ -#define PNG_CMAP_NONE_BACKGROUND 256 -#define PNG_CMAP_GA_BACKGROUND 231 -#define PNG_CMAP_TRANS_BACKGROUND 254 -#define PNG_CMAP_RGB_BACKGROUND 256 -#define PNG_CMAP_RGB_ALPHA_BACKGROUND 216 - -typedef struct -{ - /* Arguments: */ - png_imagep image; - png_voidp buffer; - png_int_32 row_stride; - png_voidp colormap; - png_const_colorp background; - /* Local variables: */ - png_voidp local_row; - png_voidp first_row; - ptrdiff_t row_bytes; /* step between rows */ - int file_encoding; /* E_ values above */ - png_fixed_point gamma_to_linear; /* For P_FILE, reciprocal of gamma */ - int colormap_processing; /* PNG_CMAP_ values above */ -} png_image_read_control; - -/* Do all the *safe* initialization - 'safe' means that png_error won't be - * called, so setting up the jmp_buf is not required. This means that anything - * called from here must *not* call png_malloc - it has to call png_malloc_warn - * instead so that control is returned safely back to this routine. - */ -static int -png_image_read_init(png_imagep image) -{ - if (image->opaque == NULL) - { - png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, image, - png_safe_error, png_safe_warning); - - /* And set the rest of the structure to NULL to ensure that the various - * fields are consistent. - */ - memset(image, 0, (sizeof *image)); - image->version = PNG_IMAGE_VERSION; - - if (png_ptr != NULL) - { - png_infop info_ptr = png_create_info_struct(png_ptr); - - if (info_ptr != NULL) - { - png_controlp control = png_voidcast(png_controlp, - png_malloc_warn(png_ptr, (sizeof *control))); - - if (control != NULL) - { - memset(control, 0, (sizeof *control)); - - control->png_ptr = png_ptr; - control->info_ptr = info_ptr; - control->for_write = 0; - - image->opaque = control; - return 1; - } - - /* Error clean up */ - png_destroy_info_struct(png_ptr, &info_ptr); - } - - png_destroy_read_struct(&png_ptr, NULL, NULL); - } - - return png_image_error(image, "png_image_read: out of memory"); - } - - return png_image_error(image, "png_image_read: opaque pointer not NULL"); -} - -/* Utility to find the base format of a PNG file from a png_struct. */ -static png_uint_32 -png_image_format(png_structrp png_ptr) -{ - png_uint_32 format = 0; - - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - format |= PNG_FORMAT_FLAG_COLOR; - - if ((png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0) - format |= PNG_FORMAT_FLAG_ALPHA; - - /* Use png_ptr here, not info_ptr, because by examination png_handle_tRNS - * sets the png_struct fields; that's all we are interested in here. The - * precise interaction with an app call to png_set_tRNS and PNG file reading - * is unclear. - */ - else if (png_ptr->num_trans > 0) - format |= PNG_FORMAT_FLAG_ALPHA; - - if (png_ptr->bit_depth == 16) - format |= PNG_FORMAT_FLAG_LINEAR; - - if ((png_ptr->color_type & PNG_COLOR_MASK_PALETTE) != 0) - format |= PNG_FORMAT_FLAG_COLORMAP; - - return format; -} - -/* Is the given gamma significantly different from sRGB? The test is the same - * one used in pngrtran.c when deciding whether to do gamma correction. The - * arithmetic optimizes the division by using the fact that the inverse of the - * file sRGB gamma is 2.2 - */ -static int -png_gamma_not_sRGB(png_fixed_point g) -{ - if (g < PNG_FP_1) - { - /* An uninitialized gamma is assumed to be sRGB for the simplified API. */ - if (g == 0) - return 0; - - return png_gamma_significant((g * 11 + 2)/5 /* i.e. *2.2, rounded */); - } - - return 1; -} - -/* Do the main body of a 'png_image_begin_read' function; read the PNG file - * header and fill in all the information. This is executed in a safe context, - * unlike the init routine above. - */ -static int -png_image_read_header(png_voidp argument) -{ - png_imagep image = png_voidcast(png_imagep, argument); - png_structrp png_ptr = image->opaque->png_ptr; - png_inforp info_ptr = image->opaque->info_ptr; - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED - png_set_benign_errors(png_ptr, 1/*warn*/); -#endif - png_read_info(png_ptr, info_ptr); - - /* Do this the fast way; just read directly out of png_struct. */ - image->width = png_ptr->width; - image->height = png_ptr->height; - - { - png_uint_32 format = png_image_format(png_ptr); - - image->format = format; - -#ifdef PNG_COLORSPACE_SUPPORTED - /* Does the colorspace match sRGB? If there is no color endpoint - * (colorant) information assume yes, otherwise require the - * 'ENDPOINTS_MATCHP_sRGB' colorspace flag to have been set. If the - * colorspace has been determined to be invalid ignore it. - */ - if ((format & PNG_FORMAT_FLAG_COLOR) != 0 && ((png_ptr->colorspace.flags - & (PNG_COLORSPACE_HAVE_ENDPOINTS|PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB| - PNG_COLORSPACE_INVALID)) == PNG_COLORSPACE_HAVE_ENDPOINTS)) - image->flags |= PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB; -#endif - } - - /* We need the maximum number of entries regardless of the format the - * application sets here. - */ - { - png_uint_32 cmap_entries; - - switch (png_ptr->color_type) - { - case PNG_COLOR_TYPE_GRAY: - cmap_entries = 1U << png_ptr->bit_depth; - break; - - case PNG_COLOR_TYPE_PALETTE: - cmap_entries = (png_uint_32)png_ptr->num_palette; - break; - - default: - cmap_entries = 256; - break; - } - - if (cmap_entries > 256) - cmap_entries = 256; - - image->colormap_entries = cmap_entries; - } - - return 1; -} - -#ifdef PNG_STDIO_SUPPORTED -int PNGAPI -png_image_begin_read_from_stdio(png_imagep image, FILE* file) -{ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (file != NULL) - { - if (png_image_read_init(image) != 0) - { - /* This is slightly evil, but png_init_io doesn't do anything other - * than this and we haven't changed the standard IO functions so - * this saves a 'safe' function. - */ - image->opaque->png_ptr->io_ptr = file; - return png_safe_execute(image, png_image_read_header, image); - } - } - - else - return png_image_error(image, - "png_image_begin_read_from_stdio: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_begin_read_from_stdio: incorrect PNG_IMAGE_VERSION"); - - return 0; -} - -int PNGAPI -png_image_begin_read_from_file(png_imagep image, const char *file_name) -{ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (file_name != NULL) - { - FILE *fp = fopen(file_name, "rb"); - - if (fp != NULL) - { - if (png_image_read_init(image) != 0) - { - image->opaque->png_ptr->io_ptr = fp; - image->opaque->owned_file = 1; - return png_safe_execute(image, png_image_read_header, image); - } - - /* Clean up: just the opened file. */ - (void)fclose(fp); - } - - else - return png_image_error(image, strerror(errno)); - } - - else - return png_image_error(image, - "png_image_begin_read_from_file: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_begin_read_from_file: incorrect PNG_IMAGE_VERSION"); - - return 0; -} -#endif /* STDIO */ - -static void PNGCBAPI -png_image_memory_read(png_structp png_ptr, png_bytep out, size_t need) -{ - if (png_ptr != NULL) - { - png_imagep image = png_voidcast(png_imagep, png_ptr->io_ptr); - if (image != NULL) - { - png_controlp cp = image->opaque; - if (cp != NULL) - { - png_const_bytep memory = cp->memory; - size_t size = cp->size; - - if (memory != NULL && size >= need) - { - memcpy(out, memory, need); - cp->memory = memory + need; - cp->size = size - need; - return; - } - - png_error(png_ptr, "read beyond end of data"); - } - } - - png_error(png_ptr, "invalid memory read"); - } -} - -int PNGAPI png_image_begin_read_from_memory(png_imagep image, - png_const_voidp memory, size_t size) -{ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (memory != NULL && size > 0) - { - if (png_image_read_init(image) != 0) - { - /* Now set the IO functions to read from the memory buffer and - * store it into io_ptr. Again do this in-place to avoid calling a - * libpng function that requires error handling. - */ - image->opaque->memory = png_voidcast(png_const_bytep, memory); - image->opaque->size = size; - image->opaque->png_ptr->io_ptr = image; - image->opaque->png_ptr->read_data_fn = png_image_memory_read; - - return png_safe_execute(image, png_image_read_header, image); - } - } - - else - return png_image_error(image, - "png_image_begin_read_from_memory: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_begin_read_from_memory: incorrect PNG_IMAGE_VERSION"); - - return 0; -} - -/* Utility function to skip chunks that are not used by the simplified image - * read functions and an appropriate macro to call it. - */ -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -static void -png_image_skip_unused_chunks(png_structrp png_ptr) -{ - /* Prepare the reader to ignore all recognized chunks whose data will not - * be used, i.e., all chunks recognized by libpng except for those - * involved in basic image reading: - * - * IHDR, PLTE, IDAT, IEND - * - * Or image data handling: - * - * tRNS, bKGD, gAMA, cHRM, sRGB, [iCCP] and sBIT. - * - * This provides a small performance improvement and eliminates any - * potential vulnerability to security problems in the unused chunks. - * - * At present the iCCP chunk data isn't used, so iCCP chunk can be ignored - * too. This allows the simplified API to be compiled without iCCP support, - * however if the support is there the chunk is still checked to detect - * errors (which are unfortunately quite common.) - */ - { - static const png_byte chunks_to_process[] = { - 98, 75, 71, 68, '\0', /* bKGD */ - 99, 72, 82, 77, '\0', /* cHRM */ - 103, 65, 77, 65, '\0', /* gAMA */ -# ifdef PNG_READ_iCCP_SUPPORTED - 105, 67, 67, 80, '\0', /* iCCP */ -# endif - 115, 66, 73, 84, '\0', /* sBIT */ - 115, 82, 71, 66, '\0', /* sRGB */ - }; - - /* Ignore unknown chunks and all other chunks except for the - * IHDR, PLTE, tRNS, IDAT, and IEND chunks. - */ - png_set_keep_unknown_chunks(png_ptr, PNG_HANDLE_CHUNK_NEVER, - NULL, -1); - - /* But do not ignore image data handling chunks */ - png_set_keep_unknown_chunks(png_ptr, PNG_HANDLE_CHUNK_AS_DEFAULT, - chunks_to_process, (int)/*SAFE*/(sizeof chunks_to_process)/5); - } -} - -# define PNG_SKIP_CHUNKS(p) png_image_skip_unused_chunks(p) -#else -# define PNG_SKIP_CHUNKS(p) ((void)0) -#endif /* HANDLE_AS_UNKNOWN */ - -/* The following macro gives the exact rounded answer for all values in the - * range 0..255 (it actually divides by 51.2, but the rounding still generates - * the correct numbers 0..5 - */ -#define PNG_DIV51(v8) (((v8) * 5 + 130) >> 8) - -/* Utility functions to make particular color-maps */ -static void -set_file_encoding(png_image_read_control *display) -{ - png_fixed_point g = display->image->opaque->png_ptr->colorspace.gamma; - if (png_gamma_significant(g) != 0) - { - if (png_gamma_not_sRGB(g) != 0) - { - display->file_encoding = P_FILE; - display->gamma_to_linear = png_reciprocal(g); - } - - else - display->file_encoding = P_sRGB; - } - - else - display->file_encoding = P_LINEAR8; -} - -static unsigned int -decode_gamma(png_image_read_control *display, png_uint_32 value, int encoding) -{ - if (encoding == P_FILE) /* double check */ - encoding = display->file_encoding; - - if (encoding == P_NOTSET) /* must be the file encoding */ - { - set_file_encoding(display); - encoding = display->file_encoding; - } - - switch (encoding) - { - case P_FILE: - value = png_gamma_16bit_correct(value*257, display->gamma_to_linear); - break; - - case P_sRGB: - value = png_sRGB_table[value]; - break; - - case P_LINEAR: - break; - - case P_LINEAR8: - value *= 257; - break; - -#ifdef __GNUC__ - default: - png_error(display->image->opaque->png_ptr, - "unexpected encoding (internal error)"); -#endif - } - - return value; -} - -static png_uint_32 -png_colormap_compose(png_image_read_control *display, - png_uint_32 foreground, int foreground_encoding, png_uint_32 alpha, - png_uint_32 background, int encoding) -{ - /* The file value is composed on the background, the background has the given - * encoding and so does the result, the file is encoded with P_FILE and the - * file and alpha are 8-bit values. The (output) encoding will always be - * P_LINEAR or P_sRGB. - */ - png_uint_32 f = decode_gamma(display, foreground, foreground_encoding); - png_uint_32 b = decode_gamma(display, background, encoding); - - /* The alpha is always an 8-bit value (it comes from the palette), the value - * scaled by 255 is what PNG_sRGB_FROM_LINEAR requires. - */ - f = f * alpha + b * (255-alpha); - - if (encoding == P_LINEAR) - { - /* Scale to 65535; divide by 255, approximately (in fact this is extremely - * accurate, it divides by 255.00000005937181414556, with no overflow.) - */ - f *= 257; /* Now scaled by 65535 */ - f += f >> 16; - f = (f+32768) >> 16; - } - - else /* P_sRGB */ - f = PNG_sRGB_FROM_LINEAR(f); - - return f; -} - -/* NOTE: P_LINEAR values to this routine must be 16-bit, but P_FILE values must - * be 8-bit. - */ -static void -png_create_colormap_entry(png_image_read_control *display, - png_uint_32 ip, png_uint_32 red, png_uint_32 green, png_uint_32 blue, - png_uint_32 alpha, int encoding) -{ - png_imagep image = display->image; - int output_encoding = (image->format & PNG_FORMAT_FLAG_LINEAR) != 0 ? - P_LINEAR : P_sRGB; - int convert_to_Y = (image->format & PNG_FORMAT_FLAG_COLOR) == 0 && - (red != green || green != blue); - - if (ip > 255) - png_error(image->opaque->png_ptr, "color-map index out of range"); - - /* Update the cache with whether the file gamma is significantly different - * from sRGB. - */ - if (encoding == P_FILE) - { - if (display->file_encoding == P_NOTSET) - set_file_encoding(display); - - /* Note that the cached value may be P_FILE too, but if it is then the - * gamma_to_linear member has been set. - */ - encoding = display->file_encoding; - } - - if (encoding == P_FILE) - { - png_fixed_point g = display->gamma_to_linear; - - red = png_gamma_16bit_correct(red*257, g); - green = png_gamma_16bit_correct(green*257, g); - blue = png_gamma_16bit_correct(blue*257, g); - - if (convert_to_Y != 0 || output_encoding == P_LINEAR) - { - alpha *= 257; - encoding = P_LINEAR; - } - - else - { - red = PNG_sRGB_FROM_LINEAR(red * 255); - green = PNG_sRGB_FROM_LINEAR(green * 255); - blue = PNG_sRGB_FROM_LINEAR(blue * 255); - encoding = P_sRGB; - } - } - - else if (encoding == P_LINEAR8) - { - /* This encoding occurs quite frequently in test cases because PngSuite - * includes a gAMA 1.0 chunk with most images. - */ - red *= 257; - green *= 257; - blue *= 257; - alpha *= 257; - encoding = P_LINEAR; - } - - else if (encoding == P_sRGB && - (convert_to_Y != 0 || output_encoding == P_LINEAR)) - { - /* The values are 8-bit sRGB values, but must be converted to 16-bit - * linear. - */ - red = png_sRGB_table[red]; - green = png_sRGB_table[green]; - blue = png_sRGB_table[blue]; - alpha *= 257; - encoding = P_LINEAR; - } - - /* This is set if the color isn't gray but the output is. */ - if (encoding == P_LINEAR) - { - if (convert_to_Y != 0) - { - /* NOTE: these values are copied from png_do_rgb_to_gray */ - png_uint_32 y = (png_uint_32)6968 * red + (png_uint_32)23434 * green + - (png_uint_32)2366 * blue; - - if (output_encoding == P_LINEAR) - y = (y + 16384) >> 15; - - else - { - /* y is scaled by 32768, we need it scaled by 255: */ - y = (y + 128) >> 8; - y *= 255; - y = PNG_sRGB_FROM_LINEAR((y + 64) >> 7); - alpha = PNG_DIV257(alpha); - encoding = P_sRGB; - } - - blue = red = green = y; - } - - else if (output_encoding == P_sRGB) - { - red = PNG_sRGB_FROM_LINEAR(red * 255); - green = PNG_sRGB_FROM_LINEAR(green * 255); - blue = PNG_sRGB_FROM_LINEAR(blue * 255); - alpha = PNG_DIV257(alpha); - encoding = P_sRGB; - } - } - - if (encoding != output_encoding) - png_error(image->opaque->png_ptr, "bad encoding (internal error)"); - - /* Store the value. */ - { -# ifdef PNG_FORMAT_AFIRST_SUPPORTED - int afirst = (image->format & PNG_FORMAT_FLAG_AFIRST) != 0 && - (image->format & PNG_FORMAT_FLAG_ALPHA) != 0; -# else -# define afirst 0 -# endif -# ifdef PNG_FORMAT_BGR_SUPPORTED - int bgr = (image->format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; -# else -# define bgr 0 -# endif - - if (output_encoding == P_LINEAR) - { - png_uint_16p entry = png_voidcast(png_uint_16p, display->colormap); - - entry += ip * PNG_IMAGE_SAMPLE_CHANNELS(image->format); - - /* The linear 16-bit values must be pre-multiplied by the alpha channel - * value, if less than 65535 (this is, effectively, composite on black - * if the alpha channel is removed.) - */ - switch (PNG_IMAGE_SAMPLE_CHANNELS(image->format)) - { - case 4: - entry[afirst ? 0 : 3] = (png_uint_16)alpha; - /* FALLTHROUGH */ - - case 3: - if (alpha < 65535) - { - if (alpha > 0) - { - blue = (blue * alpha + 32767U)/65535U; - green = (green * alpha + 32767U)/65535U; - red = (red * alpha + 32767U)/65535U; - } - - else - red = green = blue = 0; - } - entry[afirst + (2 ^ bgr)] = (png_uint_16)blue; - entry[afirst + 1] = (png_uint_16)green; - entry[afirst + bgr] = (png_uint_16)red; - break; - - case 2: - entry[1 ^ afirst] = (png_uint_16)alpha; - /* FALLTHROUGH */ - - case 1: - if (alpha < 65535) - { - if (alpha > 0) - green = (green * alpha + 32767U)/65535U; - - else - green = 0; - } - entry[afirst] = (png_uint_16)green; - break; - - default: - break; - } - } - - else /* output encoding is P_sRGB */ - { - png_bytep entry = png_voidcast(png_bytep, display->colormap); - - entry += ip * PNG_IMAGE_SAMPLE_CHANNELS(image->format); - - switch (PNG_IMAGE_SAMPLE_CHANNELS(image->format)) - { - case 4: - entry[afirst ? 0 : 3] = (png_byte)alpha; - /* FALLTHROUGH */ - case 3: - entry[afirst + (2 ^ bgr)] = (png_byte)blue; - entry[afirst + 1] = (png_byte)green; - entry[afirst + bgr] = (png_byte)red; - break; - - case 2: - entry[1 ^ afirst] = (png_byte)alpha; - /* FALLTHROUGH */ - case 1: - entry[afirst] = (png_byte)green; - break; - - default: - break; - } - } - -# ifdef afirst -# undef afirst -# endif -# ifdef bgr -# undef bgr -# endif - } -} - -static int -make_gray_file_colormap(png_image_read_control *display) -{ - unsigned int i; - - for (i=0; i<256; ++i) - png_create_colormap_entry(display, i, i, i, i, 255, P_FILE); - - return (int)i; -} - -static int -make_gray_colormap(png_image_read_control *display) -{ - unsigned int i; - - for (i=0; i<256; ++i) - png_create_colormap_entry(display, i, i, i, i, 255, P_sRGB); - - return (int)i; -} -#define PNG_GRAY_COLORMAP_ENTRIES 256 - -static int -make_ga_colormap(png_image_read_control *display) -{ - unsigned int i, a; - - /* Alpha is retained, the output will be a color-map with entries - * selected by six levels of alpha. One transparent entry, 6 gray - * levels for all the intermediate alpha values, leaving 230 entries - * for the opaque grays. The color-map entries are the six values - * [0..5]*51, the GA processing uses PNG_DIV51(value) to find the - * relevant entry. - * - * if (alpha > 229) // opaque - * { - * // The 231 entries are selected to make the math below work: - * base = 0; - * entry = (231 * gray + 128) >> 8; - * } - * else if (alpha < 26) // transparent - * { - * base = 231; - * entry = 0; - * } - * else // partially opaque - * { - * base = 226 + 6 * PNG_DIV51(alpha); - * entry = PNG_DIV51(gray); - * } - */ - i = 0; - while (i < 231) - { - unsigned int gray = (i * 256 + 115) / 231; - png_create_colormap_entry(display, i++, gray, gray, gray, 255, P_sRGB); - } - - /* 255 is used here for the component values for consistency with the code - * that undoes premultiplication in pngwrite.c. - */ - png_create_colormap_entry(display, i++, 255, 255, 255, 0, P_sRGB); - - for (a=1; a<5; ++a) - { - unsigned int g; - - for (g=0; g<6; ++g) - png_create_colormap_entry(display, i++, g*51, g*51, g*51, a*51, - P_sRGB); - } - - return (int)i; -} - -#define PNG_GA_COLORMAP_ENTRIES 256 - -static int -make_rgb_colormap(png_image_read_control *display) -{ - unsigned int i, r; - - /* Build a 6x6x6 opaque RGB cube */ - for (i=r=0; r<6; ++r) - { - unsigned int g; - - for (g=0; g<6; ++g) - { - unsigned int b; - - for (b=0; b<6; ++b) - png_create_colormap_entry(display, i++, r*51, g*51, b*51, 255, - P_sRGB); - } - } - - return (int)i; -} - -#define PNG_RGB_COLORMAP_ENTRIES 216 - -/* Return a palette index to the above palette given three 8-bit sRGB values. */ -#define PNG_RGB_INDEX(r,g,b) \ - ((png_byte)(6 * (6 * PNG_DIV51(r) + PNG_DIV51(g)) + PNG_DIV51(b))) - -static int -png_image_read_colormap(png_voidp argument) -{ - png_image_read_control *display = - png_voidcast(png_image_read_control*, argument); - png_imagep image = display->image; - - png_structrp png_ptr = image->opaque->png_ptr; - png_uint_32 output_format = image->format; - int output_encoding = (output_format & PNG_FORMAT_FLAG_LINEAR) != 0 ? - P_LINEAR : P_sRGB; - - unsigned int cmap_entries; - unsigned int output_processing; /* Output processing option */ - unsigned int data_encoding = P_NOTSET; /* Encoding libpng must produce */ - - /* Background information; the background color and the index of this color - * in the color-map if it exists (else 256). - */ - unsigned int background_index = 256; - png_uint_32 back_r, back_g, back_b; - - /* Flags to accumulate things that need to be done to the input. */ - int expand_tRNS = 0; - - /* Exclude the NYI feature of compositing onto a color-mapped buffer; it is - * very difficult to do, the results look awful, and it is difficult to see - * what possible use it is because the application can't control the - * color-map. - */ - if (((png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0 || - png_ptr->num_trans > 0) /* alpha in input */ && - ((output_format & PNG_FORMAT_FLAG_ALPHA) == 0) /* no alpha in output */) - { - if (output_encoding == P_LINEAR) /* compose on black */ - back_b = back_g = back_r = 0; - - else if (display->background == NULL /* no way to remove it */) - png_error(png_ptr, - "background color must be supplied to remove alpha/transparency"); - - /* Get a copy of the background color (this avoids repeating the checks - * below.) The encoding is 8-bit sRGB or 16-bit linear, depending on the - * output format. - */ - else - { - back_g = display->background->green; - if ((output_format & PNG_FORMAT_FLAG_COLOR) != 0) - { - back_r = display->background->red; - back_b = display->background->blue; - } - else - back_b = back_r = back_g; - } - } - - else if (output_encoding == P_LINEAR) - back_b = back_r = back_g = 65535; - - else - back_b = back_r = back_g = 255; - - /* Default the input file gamma if required - this is necessary because - * libpng assumes that if no gamma information is present the data is in the - * output format, but the simplified API deduces the gamma from the input - * format. - */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) == 0) - { - /* Do this directly, not using the png_colorspace functions, to ensure - * that it happens even if the colorspace is invalid (though probably if - * it is the setting will be ignored) Note that the same thing can be - * achieved at the application interface with png_set_gAMA. - */ - if (png_ptr->bit_depth == 16 && - (image->flags & PNG_IMAGE_FLAG_16BIT_sRGB) == 0) - png_ptr->colorspace.gamma = PNG_GAMMA_LINEAR; - - else - png_ptr->colorspace.gamma = PNG_GAMMA_sRGB_INVERSE; - - png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; - } - - /* Decide what to do based on the PNG color type of the input data. The - * utility function png_create_colormap_entry deals with most aspects of the - * output transformations; this code works out how to produce bytes of - * color-map entries from the original format. - */ - switch (png_ptr->color_type) - { - case PNG_COLOR_TYPE_GRAY: - if (png_ptr->bit_depth <= 8) - { - /* There at most 256 colors in the output, regardless of - * transparency. - */ - unsigned int step, i, val, trans = 256/*ignore*/, back_alpha = 0; - - cmap_entries = 1U << png_ptr->bit_depth; - if (cmap_entries > image->colormap_entries) - png_error(png_ptr, "gray[8] color-map: too few entries"); - - step = 255 / (cmap_entries - 1); - output_processing = PNG_CMAP_NONE; - - /* If there is a tRNS chunk then this either selects a transparent - * value or, if the output has no alpha, the background color. - */ - if (png_ptr->num_trans > 0) - { - trans = png_ptr->trans_color.gray; - - if ((output_format & PNG_FORMAT_FLAG_ALPHA) == 0) - back_alpha = output_encoding == P_LINEAR ? 65535 : 255; - } - - /* png_create_colormap_entry just takes an RGBA and writes the - * corresponding color-map entry using the format from 'image', - * including the required conversion to sRGB or linear as - * appropriate. The input values are always either sRGB (if the - * gamma correction flag is 0) or 0..255 scaled file encoded values - * (if the function must gamma correct them). - */ - for (i=val=0; ibit_depth < 8) - png_set_packing(png_ptr); - } - - else /* bit depth is 16 */ - { - /* The 16-bit input values can be converted directly to 8-bit gamma - * encoded values; however, if a tRNS chunk is present 257 color-map - * entries are required. This means that the extra entry requires - * special processing; add an alpha channel, sacrifice gray level - * 254 and convert transparent (alpha==0) entries to that. - * - * Use libpng to chop the data to 8 bits. Convert it to sRGB at the - * same time to minimize quality loss. If a tRNS chunk is present - * this means libpng must handle it too; otherwise it is impossible - * to do the exact match on the 16-bit value. - * - * If the output has no alpha channel *and* the background color is - * gray then it is possible to let libpng handle the substitution by - * ensuring that the corresponding gray level matches the background - * color exactly. - */ - data_encoding = P_sRGB; - - if (PNG_GRAY_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "gray[16] color-map: too few entries"); - - cmap_entries = (unsigned int)make_gray_colormap(display); - - if (png_ptr->num_trans > 0) - { - unsigned int back_alpha; - - if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0) - back_alpha = 0; - - else - { - if (back_r == back_g && back_g == back_b) - { - /* Background is gray; no special processing will be - * required. - */ - png_color_16 c; - png_uint_32 gray = back_g; - - if (output_encoding == P_LINEAR) - { - gray = PNG_sRGB_FROM_LINEAR(gray * 255); - - /* And make sure the corresponding palette entry - * matches. - */ - png_create_colormap_entry(display, gray, back_g, back_g, - back_g, 65535, P_LINEAR); - } - - /* The background passed to libpng, however, must be the - * sRGB value. - */ - c.index = 0; /*unused*/ - c.gray = c.red = c.green = c.blue = (png_uint_16)gray; - - /* NOTE: does this work without expanding tRNS to alpha? - * It should be the color->gray case below apparently - * doesn't. - */ - png_set_background_fixed(png_ptr, &c, - PNG_BACKGROUND_GAMMA_SCREEN, 0/*need_expand*/, - 0/*gamma: not used*/); - - output_processing = PNG_CMAP_NONE; - break; - } -#ifdef __COVERITY__ - /* Coverity claims that output_encoding cannot be 2 (P_LINEAR) - * here. - */ - back_alpha = 255; -#else - back_alpha = output_encoding == P_LINEAR ? 65535 : 255; -#endif - } - - /* output_processing means that the libpng-processed row will be - * 8-bit GA and it has to be processing to single byte color-map - * values. Entry 254 is replaced by either a completely - * transparent entry or by the background color at full - * precision (and the background color is not a simple gray - * level in this case.) - */ - expand_tRNS = 1; - output_processing = PNG_CMAP_TRANS; - background_index = 254; - - /* And set (overwrite) color-map entry 254 to the actual - * background color at full precision. - */ - png_create_colormap_entry(display, 254, back_r, back_g, back_b, - back_alpha, output_encoding); - } - - else - output_processing = PNG_CMAP_NONE; - } - break; - - case PNG_COLOR_TYPE_GRAY_ALPHA: - /* 8-bit or 16-bit PNG with two channels - gray and alpha. A minimum - * of 65536 combinations. If, however, the alpha channel is to be - * removed there are only 256 possibilities if the background is gray. - * (Otherwise there is a subset of the 65536 possibilities defined by - * the triangle between black, white and the background color.) - * - * Reduce 16-bit files to 8-bit and sRGB encode the result. No need to - * worry about tRNS matching - tRNS is ignored if there is an alpha - * channel. - */ - data_encoding = P_sRGB; - - if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - if (PNG_GA_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "gray+alpha color-map: too few entries"); - - cmap_entries = (unsigned int)make_ga_colormap(display); - - background_index = PNG_CMAP_GA_BACKGROUND; - output_processing = PNG_CMAP_GA; - } - - else /* alpha is removed */ - { - /* Alpha must be removed as the PNG data is processed when the - * background is a color because the G and A channels are - * independent and the vector addition (non-parallel vectors) is a - * 2-D problem. - * - * This can be reduced to the same algorithm as above by making a - * colormap containing gray levels (for the opaque grays), a - * background entry (for a transparent pixel) and a set of four six - * level color values, one set for each intermediate alpha value. - * See the comments in make_ga_colormap for how this works in the - * per-pixel processing. - * - * If the background is gray, however, we only need a 256 entry gray - * level color map. It is sufficient to make the entry generated - * for the background color be exactly the color specified. - */ - if ((output_format & PNG_FORMAT_FLAG_COLOR) == 0 || - (back_r == back_g && back_g == back_b)) - { - /* Background is gray; no special processing will be required. */ - png_color_16 c; - png_uint_32 gray = back_g; - - if (PNG_GRAY_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "gray-alpha color-map: too few entries"); - - cmap_entries = (unsigned int)make_gray_colormap(display); - - if (output_encoding == P_LINEAR) - { - gray = PNG_sRGB_FROM_LINEAR(gray * 255); - - /* And make sure the corresponding palette entry matches. */ - png_create_colormap_entry(display, gray, back_g, back_g, - back_g, 65535, P_LINEAR); - } - - /* The background passed to libpng, however, must be the sRGB - * value. - */ - c.index = 0; /*unused*/ - c.gray = c.red = c.green = c.blue = (png_uint_16)gray; - - png_set_background_fixed(png_ptr, &c, - PNG_BACKGROUND_GAMMA_SCREEN, 0/*need_expand*/, - 0/*gamma: not used*/); - - output_processing = PNG_CMAP_NONE; - } - - else - { - png_uint_32 i, a; - - /* This is the same as png_make_ga_colormap, above, except that - * the entries are all opaque. - */ - if (PNG_GA_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "ga-alpha color-map: too few entries"); - - i = 0; - while (i < 231) - { - png_uint_32 gray = (i * 256 + 115) / 231; - png_create_colormap_entry(display, i++, gray, gray, gray, - 255, P_sRGB); - } - - /* NOTE: this preserves the full precision of the application - * background color. - */ - background_index = i; - png_create_colormap_entry(display, i++, back_r, back_g, back_b, -#ifdef __COVERITY__ - /* Coverity claims that output_encoding - * cannot be 2 (P_LINEAR) here. - */ 255U, -#else - output_encoding == P_LINEAR ? 65535U : 255U, -#endif - output_encoding); - - /* For non-opaque input composite on the sRGB background - this - * requires inverting the encoding for each component. The input - * is still converted to the sRGB encoding because this is a - * reasonable approximate to the logarithmic curve of human - * visual sensitivity, at least over the narrow range which PNG - * represents. Consequently 'G' is always sRGB encoded, while - * 'A' is linear. We need the linear background colors. - */ - if (output_encoding == P_sRGB) /* else already linear */ - { - /* This may produce a value not exactly matching the - * background, but that's ok because these numbers are only - * used when alpha != 0 - */ - back_r = png_sRGB_table[back_r]; - back_g = png_sRGB_table[back_g]; - back_b = png_sRGB_table[back_b]; - } - - for (a=1; a<5; ++a) - { - unsigned int g; - - /* PNG_sRGB_FROM_LINEAR expects a 16-bit linear value scaled - * by an 8-bit alpha value (0..255). - */ - png_uint_32 alpha = 51 * a; - png_uint_32 back_rx = (255-alpha) * back_r; - png_uint_32 back_gx = (255-alpha) * back_g; - png_uint_32 back_bx = (255-alpha) * back_b; - - for (g=0; g<6; ++g) - { - png_uint_32 gray = png_sRGB_table[g*51] * alpha; - - png_create_colormap_entry(display, i++, - PNG_sRGB_FROM_LINEAR(gray + back_rx), - PNG_sRGB_FROM_LINEAR(gray + back_gx), - PNG_sRGB_FROM_LINEAR(gray + back_bx), 255, P_sRGB); - } - } - - cmap_entries = i; - output_processing = PNG_CMAP_GA; - } - } - break; - - case PNG_COLOR_TYPE_RGB: - case PNG_COLOR_TYPE_RGB_ALPHA: - /* Exclude the case where the output is gray; we can always handle this - * with the cases above. - */ - if ((output_format & PNG_FORMAT_FLAG_COLOR) == 0) - { - /* The color-map will be grayscale, so we may as well convert the - * input RGB values to a simple grayscale and use the grayscale - * code above. - * - * NOTE: calling this apparently damages the recognition of the - * transparent color in background color handling; call - * png_set_tRNS_to_alpha before png_set_background_fixed. - */ - png_set_rgb_to_gray_fixed(png_ptr, PNG_ERROR_ACTION_NONE, -1, - -1); - data_encoding = P_sRGB; - - /* The output will now be one or two 8-bit gray or gray+alpha - * channels. The more complex case arises when the input has alpha. - */ - if ((png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - png_ptr->num_trans > 0) && - (output_format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - /* Both input and output have an alpha channel, so no background - * processing is required; just map the GA bytes to the right - * color-map entry. - */ - expand_tRNS = 1; - - if (PNG_GA_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "rgb[ga] color-map: too few entries"); - - cmap_entries = (unsigned int)make_ga_colormap(display); - background_index = PNG_CMAP_GA_BACKGROUND; - output_processing = PNG_CMAP_GA; - } - - else - { - /* Either the input or the output has no alpha channel, so there - * will be no non-opaque pixels in the color-map; it will just be - * grayscale. - */ - if (PNG_GRAY_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "rgb[gray] color-map: too few entries"); - - /* Ideally this code would use libpng to do the gamma correction, - * but if an input alpha channel is to be removed we will hit the - * libpng bug in gamma+compose+rgb-to-gray (the double gamma - * correction bug). Fix this by dropping the gamma correction in - * this case and doing it in the palette; this will result in - * duplicate palette entries, but that's better than the - * alternative of double gamma correction. - */ - if ((png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - png_ptr->num_trans > 0) && - png_gamma_not_sRGB(png_ptr->colorspace.gamma) != 0) - { - cmap_entries = (unsigned int)make_gray_file_colormap(display); - data_encoding = P_FILE; - } - - else - cmap_entries = (unsigned int)make_gray_colormap(display); - - /* But if the input has alpha or transparency it must be removed - */ - if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - png_ptr->num_trans > 0) - { - png_color_16 c; - png_uint_32 gray = back_g; - - /* We need to ensure that the application background exists in - * the colormap and that completely transparent pixels map to - * it. Achieve this simply by ensuring that the entry - * selected for the background really is the background color. - */ - if (data_encoding == P_FILE) /* from the fixup above */ - { - /* The app supplied a gray which is in output_encoding, we - * need to convert it to a value of the input (P_FILE) - * encoding then set this palette entry to the required - * output encoding. - */ - if (output_encoding == P_sRGB) - gray = png_sRGB_table[gray]; /* now P_LINEAR */ - - gray = PNG_DIV257(png_gamma_16bit_correct(gray, - png_ptr->colorspace.gamma)); /* now P_FILE */ - - /* And make sure the corresponding palette entry contains - * exactly the required sRGB value. - */ - png_create_colormap_entry(display, gray, back_g, back_g, - back_g, 0/*unused*/, output_encoding); - } - - else if (output_encoding == P_LINEAR) - { - gray = PNG_sRGB_FROM_LINEAR(gray * 255); - - /* And make sure the corresponding palette entry matches. - */ - png_create_colormap_entry(display, gray, back_g, back_g, - back_g, 0/*unused*/, P_LINEAR); - } - - /* The background passed to libpng, however, must be the - * output (normally sRGB) value. - */ - c.index = 0; /*unused*/ - c.gray = c.red = c.green = c.blue = (png_uint_16)gray; - - /* NOTE: the following is apparently a bug in libpng. Without - * it the transparent color recognition in - * png_set_background_fixed seems to go wrong. - */ - expand_tRNS = 1; - png_set_background_fixed(png_ptr, &c, - PNG_BACKGROUND_GAMMA_SCREEN, 0/*need_expand*/, - 0/*gamma: not used*/); - } - - output_processing = PNG_CMAP_NONE; - } - } - - else /* output is color */ - { - /* We could use png_quantize here so long as there is no transparent - * color or alpha; png_quantize ignores alpha. Easier overall just - * to do it once and using PNG_DIV51 on the 6x6x6 reduced RGB cube. - * Consequently we always want libpng to produce sRGB data. - */ - data_encoding = P_sRGB; - - /* Is there any transparency or alpha? */ - if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - png_ptr->num_trans > 0) - { - /* Is there alpha in the output too? If so all four channels are - * processed into a special RGB cube with alpha support. - */ - if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - png_uint_32 r; - - if (PNG_RGB_COLORMAP_ENTRIES+1+27 > image->colormap_entries) - png_error(png_ptr, "rgb+alpha color-map: too few entries"); - - cmap_entries = (unsigned int)make_rgb_colormap(display); - - /* Add a transparent entry. */ - png_create_colormap_entry(display, cmap_entries, 255, 255, - 255, 0, P_sRGB); - - /* This is stored as the background index for the processing - * algorithm. - */ - background_index = cmap_entries++; - - /* Add 27 r,g,b entries each with alpha 0.5. */ - for (r=0; r<256; r = (r << 1) | 0x7f) - { - png_uint_32 g; - - for (g=0; g<256; g = (g << 1) | 0x7f) - { - png_uint_32 b; - - /* This generates components with the values 0, 127 and - * 255 - */ - for (b=0; b<256; b = (b << 1) | 0x7f) - png_create_colormap_entry(display, cmap_entries++, - r, g, b, 128, P_sRGB); - } - } - - expand_tRNS = 1; - output_processing = PNG_CMAP_RGB_ALPHA; - } - - else - { - /* Alpha/transparency must be removed. The background must - * exist in the color map (achieved by setting adding it after - * the 666 color-map). If the standard processing code will - * pick up this entry automatically that's all that is - * required; libpng can be called to do the background - * processing. - */ - unsigned int sample_size = - PNG_IMAGE_SAMPLE_SIZE(output_format); - png_uint_32 r, g, b; /* sRGB background */ - - if (PNG_RGB_COLORMAP_ENTRIES+1+27 > image->colormap_entries) - png_error(png_ptr, "rgb-alpha color-map: too few entries"); - - cmap_entries = (unsigned int)make_rgb_colormap(display); - - png_create_colormap_entry(display, cmap_entries, back_r, - back_g, back_b, 0/*unused*/, output_encoding); - - if (output_encoding == P_LINEAR) - { - r = PNG_sRGB_FROM_LINEAR(back_r * 255); - g = PNG_sRGB_FROM_LINEAR(back_g * 255); - b = PNG_sRGB_FROM_LINEAR(back_b * 255); - } - - else - { - r = back_r; - g = back_g; - b = back_g; - } - - /* Compare the newly-created color-map entry with the one the - * PNG_CMAP_RGB algorithm will use. If the two entries don't - * match, add the new one and set this as the background - * index. - */ - if (memcmp((png_const_bytep)display->colormap + - sample_size * cmap_entries, - (png_const_bytep)display->colormap + - sample_size * PNG_RGB_INDEX(r,g,b), - sample_size) != 0) - { - /* The background color must be added. */ - background_index = cmap_entries++; - - /* Add 27 r,g,b entries each with created by composing with - * the background at alpha 0.5. - */ - for (r=0; r<256; r = (r << 1) | 0x7f) - { - for (g=0; g<256; g = (g << 1) | 0x7f) - { - /* This generates components with the values 0, 127 - * and 255 - */ - for (b=0; b<256; b = (b << 1) | 0x7f) - png_create_colormap_entry(display, cmap_entries++, - png_colormap_compose(display, r, P_sRGB, 128, - back_r, output_encoding), - png_colormap_compose(display, g, P_sRGB, 128, - back_g, output_encoding), - png_colormap_compose(display, b, P_sRGB, 128, - back_b, output_encoding), - 0/*unused*/, output_encoding); - } - } - - expand_tRNS = 1; - output_processing = PNG_CMAP_RGB_ALPHA; - } - - else /* background color is in the standard color-map */ - { - png_color_16 c; - - c.index = 0; /*unused*/ - c.red = (png_uint_16)back_r; - c.gray = c.green = (png_uint_16)back_g; - c.blue = (png_uint_16)back_b; - - png_set_background_fixed(png_ptr, &c, - PNG_BACKGROUND_GAMMA_SCREEN, 0/*need_expand*/, - 0/*gamma: not used*/); - - output_processing = PNG_CMAP_RGB; - } - } - } - - else /* no alpha or transparency in the input */ - { - /* Alpha in the output is irrelevant, simply map the opaque input - * pixels to the 6x6x6 color-map. - */ - if (PNG_RGB_COLORMAP_ENTRIES > image->colormap_entries) - png_error(png_ptr, "rgb color-map: too few entries"); - - cmap_entries = (unsigned int)make_rgb_colormap(display); - output_processing = PNG_CMAP_RGB; - } - } - break; - - case PNG_COLOR_TYPE_PALETTE: - /* It's already got a color-map. It may be necessary to eliminate the - * tRNS entries though. - */ - { - unsigned int num_trans = png_ptr->num_trans; - png_const_bytep trans = num_trans > 0 ? png_ptr->trans_alpha : NULL; - png_const_colorp colormap = png_ptr->palette; - int do_background = trans != NULL && - (output_format & PNG_FORMAT_FLAG_ALPHA) == 0; - unsigned int i; - - /* Just in case: */ - if (trans == NULL) - num_trans = 0; - - output_processing = PNG_CMAP_NONE; - data_encoding = P_FILE; /* Don't change from color-map indices */ - cmap_entries = (unsigned int)png_ptr->num_palette; - if (cmap_entries > 256) - cmap_entries = 256; - - if (cmap_entries > (unsigned int)image->colormap_entries) - png_error(png_ptr, "palette color-map: too few entries"); - - for (i=0; i < cmap_entries; ++i) - { - if (do_background != 0 && i < num_trans && trans[i] < 255) - { - if (trans[i] == 0) - png_create_colormap_entry(display, i, back_r, back_g, - back_b, 0, output_encoding); - - else - { - /* Must compose the PNG file color in the color-map entry - * on the sRGB color in 'back'. - */ - png_create_colormap_entry(display, i, - png_colormap_compose(display, colormap[i].red, - P_FILE, trans[i], back_r, output_encoding), - png_colormap_compose(display, colormap[i].green, - P_FILE, trans[i], back_g, output_encoding), - png_colormap_compose(display, colormap[i].blue, - P_FILE, trans[i], back_b, output_encoding), - output_encoding == P_LINEAR ? trans[i] * 257U : - trans[i], - output_encoding); - } - } - - else - png_create_colormap_entry(display, i, colormap[i].red, - colormap[i].green, colormap[i].blue, - i < num_trans ? trans[i] : 255U, P_FILE/*8-bit*/); - } - - /* The PNG data may have indices packed in fewer than 8 bits, it - * must be expanded if so. - */ - if (png_ptr->bit_depth < 8) - png_set_packing(png_ptr); - } - break; - - default: - png_error(png_ptr, "invalid PNG color type"); - /*NOT REACHED*/ - } - - /* Now deal with the output processing */ - if (expand_tRNS != 0 && png_ptr->num_trans > 0 && - (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) == 0) - png_set_tRNS_to_alpha(png_ptr); - - switch (data_encoding) - { - case P_sRGB: - /* Change to 8-bit sRGB */ - png_set_alpha_mode_fixed(png_ptr, PNG_ALPHA_PNG, PNG_GAMMA_sRGB); - /* FALLTHROUGH */ - - case P_FILE: - if (png_ptr->bit_depth > 8) - png_set_scale_16(png_ptr); - break; - -#ifdef __GNUC__ - default: - png_error(png_ptr, "bad data option (internal error)"); -#endif - } - - if (cmap_entries > 256 || cmap_entries > image->colormap_entries) - png_error(png_ptr, "color map overflow (BAD internal error)"); - - image->colormap_entries = cmap_entries; - - /* Double check using the recorded background index */ - switch (output_processing) - { - case PNG_CMAP_NONE: - if (background_index != PNG_CMAP_NONE_BACKGROUND) - goto bad_background; - break; - - case PNG_CMAP_GA: - if (background_index != PNG_CMAP_GA_BACKGROUND) - goto bad_background; - break; - - case PNG_CMAP_TRANS: - if (background_index >= cmap_entries || - background_index != PNG_CMAP_TRANS_BACKGROUND) - goto bad_background; - break; - - case PNG_CMAP_RGB: - if (background_index != PNG_CMAP_RGB_BACKGROUND) - goto bad_background; - break; - - case PNG_CMAP_RGB_ALPHA: - if (background_index != PNG_CMAP_RGB_ALPHA_BACKGROUND) - goto bad_background; - break; - - default: - png_error(png_ptr, "bad processing option (internal error)"); - - bad_background: - png_error(png_ptr, "bad background index (internal error)"); - } - - display->colormap_processing = (int)output_processing; - - return 1/*ok*/; -} - -/* The final part of the color-map read called from png_image_finish_read. */ -static int -png_image_read_and_map(png_voidp argument) -{ - png_image_read_control *display = png_voidcast(png_image_read_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - int passes; - - /* Called when the libpng data must be transformed into the color-mapped - * form. There is a local row buffer in display->local and this routine must - * do the interlace handling. - */ - switch (png_ptr->interlaced) - { - case PNG_INTERLACE_NONE: - passes = 1; - break; - - case PNG_INTERLACE_ADAM7: - passes = PNG_INTERLACE_ADAM7_PASSES; - break; - - default: - png_error(png_ptr, "unknown interlace type"); - } - - { - png_uint_32 height = image->height; - png_uint_32 width = image->width; - int proc = display->colormap_processing; - png_bytep first_row = png_voidcast(png_bytep, display->first_row); - ptrdiff_t step_row = display->row_bytes; - int pass; - - for (pass = 0; pass < passes; ++pass) - { - unsigned int startx, stepx, stepy; - png_uint_32 y; - - if (png_ptr->interlaced == PNG_INTERLACE_ADAM7) - { - /* The row may be empty for a short image: */ - if (PNG_PASS_COLS(width, pass) == 0) - continue; - - startx = PNG_PASS_START_COL(pass); - stepx = PNG_PASS_COL_OFFSET(pass); - y = PNG_PASS_START_ROW(pass); - stepy = PNG_PASS_ROW_OFFSET(pass); - } - - else - { - y = 0; - startx = 0; - stepx = stepy = 1; - } - - for (; ylocal_row); - png_bytep outrow = first_row + y * step_row; - png_const_bytep end_row = outrow + width; - - /* Read read the libpng data into the temporary buffer. */ - png_read_row(png_ptr, inrow, NULL); - - /* Now process the row according to the processing option, note - * that the caller verifies that the format of the libpng output - * data is as required. - */ - outrow += startx; - switch (proc) - { - case PNG_CMAP_GA: - for (; outrow < end_row; outrow += stepx) - { - /* The data is always in the PNG order */ - unsigned int gray = *inrow++; - unsigned int alpha = *inrow++; - unsigned int entry; - - /* NOTE: this code is copied as a comment in - * make_ga_colormap above. Please update the - * comment if you change this code! - */ - if (alpha > 229) /* opaque */ - { - entry = (231 * gray + 128) >> 8; - } - else if (alpha < 26) /* transparent */ - { - entry = 231; - } - else /* partially opaque */ - { - entry = 226 + 6 * PNG_DIV51(alpha) + PNG_DIV51(gray); - } - - *outrow = (png_byte)entry; - } - break; - - case PNG_CMAP_TRANS: - for (; outrow < end_row; outrow += stepx) - { - png_byte gray = *inrow++; - png_byte alpha = *inrow++; - - if (alpha == 0) - *outrow = PNG_CMAP_TRANS_BACKGROUND; - - else if (gray != PNG_CMAP_TRANS_BACKGROUND) - *outrow = gray; - - else - *outrow = (png_byte)(PNG_CMAP_TRANS_BACKGROUND+1); - } - break; - - case PNG_CMAP_RGB: - for (; outrow < end_row; outrow += stepx) - { - *outrow = PNG_RGB_INDEX(inrow[0], inrow[1], inrow[2]); - inrow += 3; - } - break; - - case PNG_CMAP_RGB_ALPHA: - for (; outrow < end_row; outrow += stepx) - { - unsigned int alpha = inrow[3]; - - /* Because the alpha entries only hold alpha==0.5 values - * split the processing at alpha==0.25 (64) and 0.75 - * (196). - */ - - if (alpha >= 196) - *outrow = PNG_RGB_INDEX(inrow[0], inrow[1], - inrow[2]); - - else if (alpha < 64) - *outrow = PNG_CMAP_RGB_ALPHA_BACKGROUND; - - else - { - /* Likewise there are three entries for each of r, g - * and b. We could select the entry by popcount on - * the top two bits on those architectures that - * support it, this is what the code below does, - * crudely. - */ - unsigned int back_i = PNG_CMAP_RGB_ALPHA_BACKGROUND+1; - - /* Here are how the values map: - * - * 0x00 .. 0x3f -> 0 - * 0x40 .. 0xbf -> 1 - * 0xc0 .. 0xff -> 2 - * - * So, as above with the explicit alpha checks, the - * breakpoints are at 64 and 196. - */ - if (inrow[0] & 0x80) back_i += 9; /* red */ - if (inrow[0] & 0x40) back_i += 9; - if (inrow[0] & 0x80) back_i += 3; /* green */ - if (inrow[0] & 0x40) back_i += 3; - if (inrow[0] & 0x80) back_i += 1; /* blue */ - if (inrow[0] & 0x40) back_i += 1; - - *outrow = (png_byte)back_i; - } - - inrow += 4; - } - break; - - default: - break; - } - } - } - } - - return 1; -} - -static int -png_image_read_colormapped(png_voidp argument) -{ - png_image_read_control *display = png_voidcast(png_image_read_control*, - argument); - png_imagep image = display->image; - png_controlp control = image->opaque; - png_structrp png_ptr = control->png_ptr; - png_inforp info_ptr = control->info_ptr; - - int passes = 0; /* As a flag */ - - PNG_SKIP_CHUNKS(png_ptr); - - /* Update the 'info' structure and make sure the result is as required; first - * make sure to turn on the interlace handling if it will be required - * (because it can't be turned on *after* the call to png_read_update_info!) - */ - if (display->colormap_processing == PNG_CMAP_NONE) - passes = png_set_interlace_handling(png_ptr); - - png_read_update_info(png_ptr, info_ptr); - - /* The expected output can be deduced from the colormap_processing option. */ - switch (display->colormap_processing) - { - case PNG_CMAP_NONE: - /* Output must be one channel and one byte per pixel, the output - * encoding can be anything. - */ - if ((info_ptr->color_type == PNG_COLOR_TYPE_PALETTE || - info_ptr->color_type == PNG_COLOR_TYPE_GRAY) && - info_ptr->bit_depth == 8) - break; - - goto bad_output; - - case PNG_CMAP_TRANS: - case PNG_CMAP_GA: - /* Output must be two channels and the 'G' one must be sRGB, the latter - * can be checked with an exact number because it should have been set - * to this number above! - */ - if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && - info_ptr->bit_depth == 8 && - png_ptr->screen_gamma == PNG_GAMMA_sRGB && - image->colormap_entries == 256) - break; - - goto bad_output; - - case PNG_CMAP_RGB: - /* Output must be 8-bit sRGB encoded RGB */ - if (info_ptr->color_type == PNG_COLOR_TYPE_RGB && - info_ptr->bit_depth == 8 && - png_ptr->screen_gamma == PNG_GAMMA_sRGB && - image->colormap_entries == 216) - break; - - goto bad_output; - - case PNG_CMAP_RGB_ALPHA: - /* Output must be 8-bit sRGB encoded RGBA */ - if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA && - info_ptr->bit_depth == 8 && - png_ptr->screen_gamma == PNG_GAMMA_sRGB && - image->colormap_entries == 244 /* 216 + 1 + 27 */) - break; - - goto bad_output; - - default: - bad_output: - png_error(png_ptr, "bad color-map processing (internal error)"); - } - - /* Now read the rows. Do this here if it is possible to read directly into - * the output buffer, otherwise allocate a local row buffer of the maximum - * size libpng requires and call the relevant processing routine safely. - */ - { - png_voidp first_row = display->buffer; - ptrdiff_t row_bytes = display->row_stride; - - /* The following expression is designed to work correctly whether it gives - * a signed or an unsigned result. - */ - if (row_bytes < 0) - { - char *ptr = png_voidcast(char*, first_row); - ptr += (image->height-1) * (-row_bytes); - first_row = png_voidcast(png_voidp, ptr); - } - - display->first_row = first_row; - display->row_bytes = row_bytes; - } - - if (passes == 0) - { - int result; - png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr)); - - display->local_row = row; - result = png_safe_execute(image, png_image_read_and_map, display); - display->local_row = NULL; - png_free(png_ptr, row); - - return result; - } - - else - { - png_alloc_size_t row_bytes = (png_alloc_size_t)display->row_bytes; - - while (--passes >= 0) - { - png_uint_32 y = image->height; - png_bytep row = png_voidcast(png_bytep, display->first_row); - - for (; y > 0; --y) - { - png_read_row(png_ptr, row, NULL); - row += row_bytes; - } - } - - return 1; - } -} - -/* Just the row reading part of png_image_read. */ -static int -png_image_read_composite(png_voidp argument) -{ - png_image_read_control *display = png_voidcast(png_image_read_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - int passes; - - switch (png_ptr->interlaced) - { - case PNG_INTERLACE_NONE: - passes = 1; - break; - - case PNG_INTERLACE_ADAM7: - passes = PNG_INTERLACE_ADAM7_PASSES; - break; - - default: - png_error(png_ptr, "unknown interlace type"); - } - - { - png_uint_32 height = image->height; - png_uint_32 width = image->width; - ptrdiff_t step_row = display->row_bytes; - unsigned int channels = - (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1; - int pass; - - for (pass = 0; pass < passes; ++pass) - { - unsigned int startx, stepx, stepy; - png_uint_32 y; - - if (png_ptr->interlaced == PNG_INTERLACE_ADAM7) - { - /* The row may be empty for a short image: */ - if (PNG_PASS_COLS(width, pass) == 0) - continue; - - startx = PNG_PASS_START_COL(pass) * channels; - stepx = PNG_PASS_COL_OFFSET(pass) * channels; - y = PNG_PASS_START_ROW(pass); - stepy = PNG_PASS_ROW_OFFSET(pass); - } - - else - { - y = 0; - startx = 0; - stepx = channels; - stepy = 1; - } - - for (; ylocal_row); - png_bytep outrow; - png_const_bytep end_row; - - /* Read the row, which is packed: */ - png_read_row(png_ptr, inrow, NULL); - - outrow = png_voidcast(png_bytep, display->first_row); - outrow += y * step_row; - end_row = outrow + width * channels; - - /* Now do the composition on each pixel in this row. */ - outrow += startx; - for (; outrow < end_row; outrow += stepx) - { - png_byte alpha = inrow[channels]; - - if (alpha > 0) /* else no change to the output */ - { - unsigned int c; - - for (c=0; cimage; - png_structrp png_ptr = image->opaque->png_ptr; - png_inforp info_ptr = image->opaque->info_ptr; - png_uint_32 height = image->height; - png_uint_32 width = image->width; - int pass, passes; - - /* Double check the convoluted logic below. We expect to get here with - * libpng doing rgb to gray and gamma correction but background processing - * left to the png_image_read_background function. The rows libpng produce - * might be 8 or 16-bit but should always have two channels; gray plus alpha. - */ - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == 0) - png_error(png_ptr, "lost rgb to gray"); - - if ((png_ptr->transformations & PNG_COMPOSE) != 0) - png_error(png_ptr, "unexpected compose"); - - if (png_get_channels(png_ptr, info_ptr) != 2) - png_error(png_ptr, "lost/gained channels"); - - /* Expect the 8-bit case to always remove the alpha channel */ - if ((image->format & PNG_FORMAT_FLAG_LINEAR) == 0 && - (image->format & PNG_FORMAT_FLAG_ALPHA) != 0) - png_error(png_ptr, "unexpected 8-bit transformation"); - - switch (png_ptr->interlaced) - { - case PNG_INTERLACE_NONE: - passes = 1; - break; - - case PNG_INTERLACE_ADAM7: - passes = PNG_INTERLACE_ADAM7_PASSES; - break; - - default: - png_error(png_ptr, "unknown interlace type"); - } - - /* Use direct access to info_ptr here because otherwise the simplified API - * would require PNG_EASY_ACCESS_SUPPORTED (just for this.) Note this is - * checking the value after libpng expansions, not the original value in the - * PNG. - */ - switch (info_ptr->bit_depth) - { - case 8: - /* 8-bit sRGB gray values with an alpha channel; the alpha channel is - * to be removed by composing on a background: either the row if - * display->background is NULL or display->background->green if not. - * Unlike the code above ALPHA_OPTIMIZED has *not* been done. - */ - { - png_bytep first_row = png_voidcast(png_bytep, display->first_row); - ptrdiff_t step_row = display->row_bytes; - - for (pass = 0; pass < passes; ++pass) - { - png_bytep row = png_voidcast(png_bytep, display->first_row); - unsigned int startx, stepx, stepy; - png_uint_32 y; - - if (png_ptr->interlaced == PNG_INTERLACE_ADAM7) - { - /* The row may be empty for a short image: */ - if (PNG_PASS_COLS(width, pass) == 0) - continue; - - startx = PNG_PASS_START_COL(pass); - stepx = PNG_PASS_COL_OFFSET(pass); - y = PNG_PASS_START_ROW(pass); - stepy = PNG_PASS_ROW_OFFSET(pass); - } - - else - { - y = 0; - startx = 0; - stepx = stepy = 1; - } - - if (display->background == NULL) - { - for (; ylocal_row); - png_bytep outrow = first_row + y * step_row; - png_const_bytep end_row = outrow + width; - - /* Read the row, which is packed: */ - png_read_row(png_ptr, inrow, NULL); - - /* Now do the composition on each pixel in this row. */ - outrow += startx; - for (; outrow < end_row; outrow += stepx) - { - png_byte alpha = inrow[1]; - - if (alpha > 0) /* else no change to the output */ - { - png_uint_32 component = inrow[0]; - - if (alpha < 255) /* else just use component */ - { - /* Since PNG_OPTIMIZED_ALPHA was not set it is - * necessary to invert the sRGB transfer - * function and multiply the alpha out. - */ - component = png_sRGB_table[component] * alpha; - component += png_sRGB_table[outrow[0]] * - (255-alpha); - component = PNG_sRGB_FROM_LINEAR(component); - } - - outrow[0] = (png_byte)component; - } - - inrow += 2; /* gray and alpha channel */ - } - } - } - - else /* constant background value */ - { - png_byte background8 = display->background->green; - png_uint_16 background = png_sRGB_table[background8]; - - for (; ylocal_row); - png_bytep outrow = first_row + y * step_row; - png_const_bytep end_row = outrow + width; - - /* Read the row, which is packed: */ - png_read_row(png_ptr, inrow, NULL); - - /* Now do the composition on each pixel in this row. */ - outrow += startx; - for (; outrow < end_row; outrow += stepx) - { - png_byte alpha = inrow[1]; - - if (alpha > 0) /* else use background */ - { - png_uint_32 component = inrow[0]; - - if (alpha < 255) /* else just use component */ - { - component = png_sRGB_table[component] * alpha; - component += background * (255-alpha); - component = PNG_sRGB_FROM_LINEAR(component); - } - - outrow[0] = (png_byte)component; - } - - else - outrow[0] = background8; - - inrow += 2; /* gray and alpha channel */ - } - - row += display->row_bytes; - } - } - } - } - break; - - case 16: - /* 16-bit linear with pre-multiplied alpha; the pre-multiplication must - * still be done and, maybe, the alpha channel removed. This code also - * handles the alpha-first option. - */ - { - png_uint_16p first_row = png_voidcast(png_uint_16p, - display->first_row); - /* The division by two is safe because the caller passed in a - * stride which was multiplied by 2 (below) to get row_bytes. - */ - ptrdiff_t step_row = display->row_bytes / 2; - unsigned int preserve_alpha = (image->format & - PNG_FORMAT_FLAG_ALPHA) != 0; - unsigned int outchannels = 1U+preserve_alpha; - int swap_alpha = 0; - -# ifdef PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED - if (preserve_alpha != 0 && - (image->format & PNG_FORMAT_FLAG_AFIRST) != 0) - swap_alpha = 1; -# endif - - for (pass = 0; pass < passes; ++pass) - { - unsigned int startx, stepx, stepy; - png_uint_32 y; - - /* The 'x' start and step are adjusted to output components here. - */ - if (png_ptr->interlaced == PNG_INTERLACE_ADAM7) - { - /* The row may be empty for a short image: */ - if (PNG_PASS_COLS(width, pass) == 0) - continue; - - startx = PNG_PASS_START_COL(pass) * outchannels; - stepx = PNG_PASS_COL_OFFSET(pass) * outchannels; - y = PNG_PASS_START_ROW(pass); - stepy = PNG_PASS_ROW_OFFSET(pass); - } - - else - { - y = 0; - startx = 0; - stepx = outchannels; - stepy = 1; - } - - for (; ylocal_row), NULL); - inrow = png_voidcast(png_const_uint_16p, display->local_row); - - /* Now do the pre-multiplication on each pixel in this row. - */ - outrow += startx; - for (; outrow < end_row; outrow += stepx) - { - png_uint_32 component = inrow[0]; - png_uint_16 alpha = inrow[1]; - - if (alpha > 0) /* else 0 */ - { - if (alpha < 65535) /* else just use component */ - { - component *= alpha; - component += 32767; - component /= 65535; - } - } - - else - component = 0; - - outrow[swap_alpha] = (png_uint_16)component; - if (preserve_alpha != 0) - outrow[1 ^ swap_alpha] = alpha; - - inrow += 2; /* components and alpha channel */ - } - } - } - } - break; - -#ifdef __GNUC__ - default: - png_error(png_ptr, "unexpected bit depth"); -#endif - } - - return 1; -} - -/* The guts of png_image_finish_read as a png_safe_execute callback. */ -static int -png_image_read_direct(png_voidp argument) -{ - png_image_read_control *display = png_voidcast(png_image_read_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - png_inforp info_ptr = image->opaque->info_ptr; - - png_uint_32 format = image->format; - int linear = (format & PNG_FORMAT_FLAG_LINEAR) != 0; - int do_local_compose = 0; - int do_local_background = 0; /* to avoid double gamma correction bug */ - int passes = 0; - - /* Add transforms to ensure the correct output format is produced then check - * that the required implementation support is there. Always expand; always - * need 8 bits minimum, no palette and expanded tRNS. - */ - png_set_expand(png_ptr); - - /* Now check the format to see if it was modified. */ - { - png_uint_32 base_format = png_image_format(png_ptr) & - ~PNG_FORMAT_FLAG_COLORMAP /* removed by png_set_expand */; - png_uint_32 change = format ^ base_format; - png_fixed_point output_gamma; - int mode; /* alpha mode */ - - /* Do this first so that we have a record if rgb to gray is happening. */ - if ((change & PNG_FORMAT_FLAG_COLOR) != 0) - { - /* gray<->color transformation required. */ - if ((format & PNG_FORMAT_FLAG_COLOR) != 0) - png_set_gray_to_rgb(png_ptr); - - else - { - /* libpng can't do both rgb to gray and - * background/pre-multiplication if there is also significant gamma - * correction, because both operations require linear colors and - * the code only supports one transform doing the gamma correction. - * Handle this by doing the pre-multiplication or background - * operation in this code, if necessary. - * - * TODO: fix this by rewriting pngrtran.c (!) - * - * For the moment (given that fixing this in pngrtran.c is an - * enormous change) 'do_local_background' is used to indicate that - * the problem exists. - */ - if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0) - do_local_background = 1/*maybe*/; - - png_set_rgb_to_gray_fixed(png_ptr, PNG_ERROR_ACTION_NONE, - PNG_RGB_TO_GRAY_DEFAULT, PNG_RGB_TO_GRAY_DEFAULT); - } - - change &= ~PNG_FORMAT_FLAG_COLOR; - } - - /* Set the gamma appropriately, linear for 16-bit input, sRGB otherwise. - */ - { - png_fixed_point input_gamma_default; - - if ((base_format & PNG_FORMAT_FLAG_LINEAR) != 0 && - (image->flags & PNG_IMAGE_FLAG_16BIT_sRGB) == 0) - input_gamma_default = PNG_GAMMA_LINEAR; - else - input_gamma_default = PNG_DEFAULT_sRGB; - - /* Call png_set_alpha_mode to set the default for the input gamma; the - * output gamma is set by a second call below. - */ - png_set_alpha_mode_fixed(png_ptr, PNG_ALPHA_PNG, input_gamma_default); - } - - if (linear != 0) - { - /* If there *is* an alpha channel in the input it must be multiplied - * out; use PNG_ALPHA_STANDARD, otherwise just use PNG_ALPHA_PNG. - */ - if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0) - mode = PNG_ALPHA_STANDARD; /* associated alpha */ - - else - mode = PNG_ALPHA_PNG; - - output_gamma = PNG_GAMMA_LINEAR; - } - - else - { - mode = PNG_ALPHA_PNG; - output_gamma = PNG_DEFAULT_sRGB; - } - - if ((change & PNG_FORMAT_FLAG_ASSOCIATED_ALPHA) != 0) - { - mode = PNG_ALPHA_OPTIMIZED; - change &= ~PNG_FORMAT_FLAG_ASSOCIATED_ALPHA; - } - - /* If 'do_local_background' is set check for the presence of gamma - * correction; this is part of the work-round for the libpng bug - * described above. - * - * TODO: fix libpng and remove this. - */ - if (do_local_background != 0) - { - png_fixed_point gtest; - - /* This is 'png_gamma_threshold' from pngrtran.c; the test used for - * gamma correction, the screen gamma hasn't been set on png_struct - * yet; it's set below. png_struct::gamma, however, is set to the - * final value. - */ - if (png_muldiv(>est, output_gamma, png_ptr->colorspace.gamma, - PNG_FP_1) != 0 && png_gamma_significant(gtest) == 0) - do_local_background = 0; - - else if (mode == PNG_ALPHA_STANDARD) - { - do_local_background = 2/*required*/; - mode = PNG_ALPHA_PNG; /* prevent libpng doing it */ - } - - /* else leave as 1 for the checks below */ - } - - /* If the bit-depth changes then handle that here. */ - if ((change & PNG_FORMAT_FLAG_LINEAR) != 0) - { - if (linear != 0 /*16-bit output*/) - png_set_expand_16(png_ptr); - - else /* 8-bit output */ - png_set_scale_16(png_ptr); - - change &= ~PNG_FORMAT_FLAG_LINEAR; - } - - /* Now the background/alpha channel changes. */ - if ((change & PNG_FORMAT_FLAG_ALPHA) != 0) - { - /* Removing an alpha channel requires composition for the 8-bit - * formats; for the 16-bit it is already done, above, by the - * pre-multiplication and the channel just needs to be stripped. - */ - if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - /* If RGB->gray is happening the alpha channel must be left and the - * operation completed locally. - * - * TODO: fix libpng and remove this. - */ - if (do_local_background != 0) - do_local_background = 2/*required*/; - - /* 16-bit output: just remove the channel */ - else if (linear != 0) /* compose on black (well, pre-multiply) */ - png_set_strip_alpha(png_ptr); - - /* 8-bit output: do an appropriate compose */ - else if (display->background != NULL) - { - png_color_16 c; - - c.index = 0; /*unused*/ - c.red = display->background->red; - c.green = display->background->green; - c.blue = display->background->blue; - c.gray = display->background->green; - - /* This is always an 8-bit sRGB value, using the 'green' channel - * for gray is much better than calculating the luminance here; - * we can get off-by-one errors in that calculation relative to - * the app expectations and that will show up in transparent - * pixels. - */ - png_set_background_fixed(png_ptr, &c, - PNG_BACKGROUND_GAMMA_SCREEN, 0/*need_expand*/, - 0/*gamma: not used*/); - } - - else /* compose on row: implemented below. */ - { - do_local_compose = 1; - /* This leaves the alpha channel in the output, so it has to be - * removed by the code below. Set the encoding to the 'OPTIMIZE' - * one so the code only has to hack on the pixels that require - * composition. - */ - mode = PNG_ALPHA_OPTIMIZED; - } - } - - else /* output needs an alpha channel */ - { - /* This is tricky because it happens before the swap operation has - * been accomplished; however, the swap does *not* swap the added - * alpha channel (weird API), so it must be added in the correct - * place. - */ - png_uint_32 filler; /* opaque filler */ - int where; - - if (linear != 0) - filler = 65535; - - else - filler = 255; - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED - if ((format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - where = PNG_FILLER_BEFORE; - change &= ~PNG_FORMAT_FLAG_AFIRST; - } - - else -#endif - where = PNG_FILLER_AFTER; - - png_set_add_alpha(png_ptr, filler, where); - } - - /* This stops the (irrelevant) call to swap_alpha below. */ - change &= ~PNG_FORMAT_FLAG_ALPHA; - } - - /* Now set the alpha mode correctly; this is always done, even if there is - * no alpha channel in either the input or the output because it correctly - * sets the output gamma. - */ - png_set_alpha_mode_fixed(png_ptr, mode, output_gamma); - -# ifdef PNG_FORMAT_BGR_SUPPORTED - if ((change & PNG_FORMAT_FLAG_BGR) != 0) - { - /* Check only the output format; PNG is never BGR; don't do this if - * the output is gray, but fix up the 'format' value in that case. - */ - if ((format & PNG_FORMAT_FLAG_COLOR) != 0) - png_set_bgr(png_ptr); - - else - format &= ~PNG_FORMAT_FLAG_BGR; - - change &= ~PNG_FORMAT_FLAG_BGR; - } -# endif - -# ifdef PNG_FORMAT_AFIRST_SUPPORTED - if ((change & PNG_FORMAT_FLAG_AFIRST) != 0) - { - /* Only relevant if there is an alpha channel - it's particularly - * important to handle this correctly because do_local_compose may - * be set above and then libpng will keep the alpha channel for this - * code to remove. - */ - if ((format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - /* Disable this if doing a local background, - * TODO: remove this when local background is no longer required. - */ - if (do_local_background != 2) - png_set_swap_alpha(png_ptr); - } - - else - format &= ~PNG_FORMAT_FLAG_AFIRST; - - change &= ~PNG_FORMAT_FLAG_AFIRST; - } -# endif - - /* If the *output* is 16-bit then we need to check for a byte-swap on this - * architecture. - */ - if (linear != 0) - { - png_uint_16 le = 0x0001; - - if ((*(png_const_bytep) & le) != 0) - png_set_swap(png_ptr); - } - - /* If change is not now 0 some transformation is missing - error out. */ - if (change != 0) - png_error(png_ptr, "png_read_image: unsupported transformation"); - } - - PNG_SKIP_CHUNKS(png_ptr); - - /* Update the 'info' structure and make sure the result is as required; first - * make sure to turn on the interlace handling if it will be required - * (because it can't be turned on *after* the call to png_read_update_info!) - * - * TODO: remove the do_local_background fixup below. - */ - if (do_local_compose == 0 && do_local_background != 2) - passes = png_set_interlace_handling(png_ptr); - - png_read_update_info(png_ptr, info_ptr); - - { - png_uint_32 info_format = 0; - - if ((info_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - info_format |= PNG_FORMAT_FLAG_COLOR; - - if ((info_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0) - { - /* do_local_compose removes this channel below. */ - if (do_local_compose == 0) - { - /* do_local_background does the same if required. */ - if (do_local_background != 2 || - (format & PNG_FORMAT_FLAG_ALPHA) != 0) - info_format |= PNG_FORMAT_FLAG_ALPHA; - } - } - - else if (do_local_compose != 0) /* internal error */ - png_error(png_ptr, "png_image_read: alpha channel lost"); - - if ((format & PNG_FORMAT_FLAG_ASSOCIATED_ALPHA) != 0) { - info_format |= PNG_FORMAT_FLAG_ASSOCIATED_ALPHA; - } - - if (info_ptr->bit_depth == 16) - info_format |= PNG_FORMAT_FLAG_LINEAR; - -#ifdef PNG_FORMAT_BGR_SUPPORTED - if ((png_ptr->transformations & PNG_BGR) != 0) - info_format |= PNG_FORMAT_FLAG_BGR; -#endif - -#ifdef PNG_FORMAT_AFIRST_SUPPORTED - if (do_local_background == 2) - { - if ((format & PNG_FORMAT_FLAG_AFIRST) != 0) - info_format |= PNG_FORMAT_FLAG_AFIRST; - } - - if ((png_ptr->transformations & PNG_SWAP_ALPHA) != 0 || - ((png_ptr->transformations & PNG_ADD_ALPHA) != 0 && - (png_ptr->flags & PNG_FLAG_FILLER_AFTER) == 0)) - { - if (do_local_background == 2) - png_error(png_ptr, "unexpected alpha swap transformation"); - - info_format |= PNG_FORMAT_FLAG_AFIRST; - } -# endif - - /* This is actually an internal error. */ - if (info_format != format) - png_error(png_ptr, "png_read_image: invalid transformations"); - } - - /* Now read the rows. If do_local_compose is set then it is necessary to use - * a local row buffer. The output will be GA, RGBA or BGRA and must be - * converted to G, RGB or BGR as appropriate. The 'local_row' member of the - * display acts as a flag. - */ - { - png_voidp first_row = display->buffer; - ptrdiff_t row_bytes = display->row_stride; - - if (linear != 0) - row_bytes *= 2; - - /* The following expression is designed to work correctly whether it gives - * a signed or an unsigned result. - */ - if (row_bytes < 0) - { - char *ptr = png_voidcast(char*, first_row); - ptr += (image->height-1) * (-row_bytes); - first_row = png_voidcast(png_voidp, ptr); - } - - display->first_row = first_row; - display->row_bytes = row_bytes; - } - - if (do_local_compose != 0) - { - int result; - png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr)); - - display->local_row = row; - result = png_safe_execute(image, png_image_read_composite, display); - display->local_row = NULL; - png_free(png_ptr, row); - - return result; - } - - else if (do_local_background == 2) - { - int result; - png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr)); - - display->local_row = row; - result = png_safe_execute(image, png_image_read_background, display); - display->local_row = NULL; - png_free(png_ptr, row); - - return result; - } - - else - { - png_alloc_size_t row_bytes = (png_alloc_size_t)display->row_bytes; - - while (--passes >= 0) - { - png_uint_32 y = image->height; - png_bytep row = png_voidcast(png_bytep, display->first_row); - - for (; y > 0; --y) - { - png_read_row(png_ptr, row, NULL); - row += row_bytes; - } - } - - return 1; - } -} - -int PNGAPI -png_image_finish_read(png_imagep image, png_const_colorp background, - void *buffer, png_int_32 row_stride, void *colormap) -{ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - /* Check for row_stride overflow. This check is not performed on the - * original PNG format because it may not occur in the output PNG format - * and libpng deals with the issues of reading the original. - */ - unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); - - /* The following checks just the 'row_stride' calculation to ensure it - * fits in a signed 32-bit value. Because channels/components can be - * either 1 or 2 bytes in size the length of a row can still overflow 32 - * bits; this is just to verify that the 'row_stride' argument can be - * represented. - */ - if (image->width <= 0x7fffffffU/channels) /* no overflow */ - { - png_uint_32 check; - png_uint_32 png_row_stride = image->width * channels; - - if (row_stride == 0) - row_stride = (png_int_32)/*SAFE*/png_row_stride; - - if (row_stride < 0) - check = (png_uint_32)(-row_stride); - - else - check = (png_uint_32)row_stride; - - /* This verifies 'check', the absolute value of the actual stride - * passed in and detects overflow in the application calculation (i.e. - * if the app did actually pass in a non-zero 'row_stride'. - */ - if (image->opaque != NULL && buffer != NULL && check >= png_row_stride) - { - /* Now check for overflow of the image buffer calculation; this - * limits the whole image size to 32 bits for API compatibility with - * the current, 32-bit, PNG_IMAGE_BUFFER_SIZE macro. - * - * The PNG_IMAGE_BUFFER_SIZE macro is: - * - * (PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)*height*(row_stride)) - * - * And the component size is always 1 or 2, so make sure that the - * number of *bytes* that the application is saying are available - * does actually fit into a 32-bit number. - * - * NOTE: this will be changed in 1.7 because PNG_IMAGE_BUFFER_SIZE - * will be changed to use png_alloc_size_t; bigger images can be - * accommodated on 64-bit systems. - */ - if (image->height <= - 0xffffffffU/PNG_IMAGE_PIXEL_COMPONENT_SIZE(image->format)/check) - { - if ((image->format & PNG_FORMAT_FLAG_COLORMAP) == 0 || - (image->colormap_entries > 0 && colormap != NULL)) - { - int result; - png_image_read_control display; - - memset(&display, 0, (sizeof display)); - display.image = image; - display.buffer = buffer; - display.row_stride = row_stride; - display.colormap = colormap; - display.background = background; - display.local_row = NULL; - - /* Choose the correct 'end' routine; for the color-map case - * all the setup has already been done. - */ - if ((image->format & PNG_FORMAT_FLAG_COLORMAP) != 0) - result = - png_safe_execute(image, - png_image_read_colormap, &display) && - png_safe_execute(image, - png_image_read_colormapped, &display); - - else - result = - png_safe_execute(image, - png_image_read_direct, &display); - - png_image_free(image); - return result; - } - - else - return png_image_error(image, - "png_image_finish_read[color-map]: no color-map"); - } - - else - return png_image_error(image, - "png_image_finish_read: image too large"); - } - - else - return png_image_error(image, - "png_image_finish_read: invalid argument"); - } - - else - return png_image_error(image, - "png_image_finish_read: row_stride too large"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_finish_read: damaged PNG_IMAGE_VERSION"); - - return 0; -} - -#endif /* SIMPLIFIED_READ */ -#endif /* READ */ diff --git a/Externals/libpng/pngrio.c b/Externals/libpng/pngrio.c deleted file mode 100644 index 7946358101..0000000000 --- a/Externals/libpng/pngrio.c +++ /dev/null @@ -1,120 +0,0 @@ - -/* pngrio.c - functions for data input - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file provides a location for all input. Users who need - * special handling are expected to write a function that has the same - * arguments as this and performs a similar function, but that possibly - * has a different input method. Note that you shouldn't change this - * function, but rather write a replacement function and then make - * libpng use it at run time with png_set_read_fn(...). - */ - -#include "pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -/* Read the data from whatever input you are using. The default routine - * reads from a file pointer. Note that this routine sometimes gets called - * with very small lengths, so you should implement some kind of simple - * buffering if you are using unbuffered reads. This should never be asked - * to read more than 64K on a 16-bit machine. - */ -void /* PRIVATE */ -png_read_data(png_structrp png_ptr, png_bytep data, size_t length) -{ - png_debug1(4, "reading %d bytes", (int)length); - - if (png_ptr->read_data_fn != NULL) - (*(png_ptr->read_data_fn))(png_ptr, data, length); - - else - png_error(png_ptr, "Call to NULL read function"); -} - -#ifdef PNG_STDIO_SUPPORTED -/* This is the function that does the actual reading of data. If you are - * not reading from a standard C stream, you should create a replacement - * read_data function and use it at run time with png_set_read_fn(), rather - * than changing the library. - */ -void PNGCBAPI -png_default_read_data(png_structp png_ptr, png_bytep data, size_t length) -{ - size_t check; - - if (png_ptr == NULL) - return; - - /* fread() returns 0 on error, so it is OK to store this in a size_t - * instead of an int, which is what fread() actually returns. - */ - check = fread(data, 1, length, png_voidcast(png_FILE_p, png_ptr->io_ptr)); - - if (check != length) - png_error(png_ptr, "Read Error"); -} -#endif - -/* This function allows the application to supply a new input function - * for libpng if standard C streams aren't being used. - * - * This function takes as its arguments: - * - * png_ptr - pointer to a png input data structure - * - * io_ptr - pointer to user supplied structure containing info about - * the input functions. May be NULL. - * - * read_data_fn - pointer to a new input function that takes as its - * arguments a pointer to a png_struct, a pointer to - * a location where input data can be stored, and a 32-bit - * unsigned int that is the number of bytes to be read. - * To exit and output any fatal error messages the new write - * function should call png_error(png_ptr, "Error msg"). - * May be NULL, in which case libpng's default function will - * be used. - */ -void PNGAPI -png_set_read_fn(png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->io_ptr = io_ptr; - -#ifdef PNG_STDIO_SUPPORTED - if (read_data_fn != NULL) - png_ptr->read_data_fn = read_data_fn; - - else - png_ptr->read_data_fn = png_default_read_data; -#else - png_ptr->read_data_fn = read_data_fn; -#endif - -#ifdef PNG_WRITE_SUPPORTED - /* It is an error to write to a read device */ - if (png_ptr->write_data_fn != NULL) - { - png_ptr->write_data_fn = NULL; - png_warning(png_ptr, - "Can't set both read_data_fn and write_data_fn in the" - " same structure"); - } -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED - png_ptr->output_flush_fn = NULL; -#endif -} -#endif /* READ */ diff --git a/Externals/libpng/pngrtran.c b/Externals/libpng/pngrtran.c deleted file mode 100644 index 9a8fad9f4a..0000000000 --- a/Externals/libpng/pngrtran.c +++ /dev/null @@ -1,5044 +0,0 @@ - -/* pngrtran.c - transforms the data in a row for PNG readers - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file contains functions optionally called by an application - * in order to tell libpng how to handle data when reading a PNG. - * Transformations that are used in both reading and writing are - * in pngtrans.c. - */ - -#include "pngpriv.h" - -#ifdef PNG_ARM_NEON_IMPLEMENTATION -# if PNG_ARM_NEON_IMPLEMENTATION == 1 -# define PNG_ARM_NEON_INTRINSICS_AVAILABLE -# if defined(_MSC_VER) && defined(_M_ARM64) -# include -# else -# include -# endif -# endif -#endif - -#ifdef PNG_READ_SUPPORTED - -/* Set the action on getting a CRC error for an ancillary or critical chunk. */ -void PNGAPI -png_set_crc_action(png_structrp png_ptr, int crit_action, int ancil_action) -{ - png_debug(1, "in png_set_crc_action"); - - if (png_ptr == NULL) - return; - - /* Tell libpng how we react to CRC errors in critical chunks */ - switch (crit_action) - { - case PNG_CRC_NO_CHANGE: /* Leave setting as is */ - break; - - case PNG_CRC_WARN_USE: /* Warn/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE; - break; - - case PNG_CRC_QUIET_USE: /* Quiet/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE | - PNG_FLAG_CRC_CRITICAL_IGNORE; - break; - - case PNG_CRC_WARN_DISCARD: /* Not a valid action for critical data */ - png_warning(png_ptr, - "Can't discard critical data on CRC error"); - /* FALLTHROUGH */ - case PNG_CRC_ERROR_QUIT: /* Error/quit */ - - case PNG_CRC_DEFAULT: - default: - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - break; - } - - /* Tell libpng how we react to CRC errors in ancillary chunks */ - switch (ancil_action) - { - case PNG_CRC_NO_CHANGE: /* Leave setting as is */ - break; - - case PNG_CRC_WARN_USE: /* Warn/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE; - break; - - case PNG_CRC_QUIET_USE: /* Quiet/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE | - PNG_FLAG_CRC_ANCILLARY_NOWARN; - break; - - case PNG_CRC_ERROR_QUIT: /* Error/quit */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_NOWARN; - break; - - case PNG_CRC_WARN_DISCARD: /* Warn/discard data */ - - case PNG_CRC_DEFAULT: - default: - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - break; - } -} - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -/* Is it OK to set a transformation now? Only if png_start_read_image or - * png_read_update_info have not been called. It is not necessary for the IHDR - * to have been read in all cases; the need_IHDR parameter allows for this - * check too. - */ -static int -png_rtran_ok(png_structrp png_ptr, int need_IHDR) -{ - if (png_ptr != NULL) - { - if ((png_ptr->flags & PNG_FLAG_ROW_INIT) != 0) - png_app_error(png_ptr, - "invalid after png_start_read_image or png_read_update_info"); - - else if (need_IHDR && (png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_app_error(png_ptr, "invalid before the PNG header has been read"); - - else - { - /* Turn on failure to initialize correctly for all transforms. */ - png_ptr->flags |= PNG_FLAG_DETECT_UNINITIALIZED; - - return 1; /* Ok */ - } - } - - return 0; /* no png_error possible! */ -} -#endif - -#ifdef PNG_READ_BACKGROUND_SUPPORTED -/* Handle alpha and tRNS via a background color */ -void PNGFAPI -png_set_background_fixed(png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, png_fixed_point background_gamma) -{ - png_debug(1, "in png_set_background_fixed"); - - if (png_rtran_ok(png_ptr, 0) == 0 || background_color == NULL) - return; - - if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN) - { - png_warning(png_ptr, "Application must supply a known background gamma"); - return; - } - - png_ptr->transformations |= PNG_COMPOSE | PNG_STRIP_ALPHA; - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - - png_ptr->background = *background_color; - png_ptr->background_gamma = background_gamma; - png_ptr->background_gamma_type = (png_byte)(background_gamma_code); - if (need_expand != 0) - png_ptr->transformations |= PNG_BACKGROUND_EXPAND; - else - png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_background(png_structrp png_ptr, - png_const_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma) -{ - png_set_background_fixed(png_ptr, background_color, background_gamma_code, - need_expand, png_fixed(png_ptr, background_gamma, "png_set_background")); -} -# endif /* FLOATING_POINT */ -#endif /* READ_BACKGROUND */ - -/* Scale 16-bit depth files to 8-bit depth. If both of these are set then the - * one that pngrtran does first (scale) happens. This is necessary to allow the - * TRANSFORM and API behavior to be somewhat consistent, and it's simpler. - */ -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -void PNGAPI -png_set_scale_16(png_structrp png_ptr) -{ - png_debug(1, "in png_set_scale_16"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= PNG_SCALE_16_TO_8; -} -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -/* Chop 16-bit depth files to 8-bit depth */ -void PNGAPI -png_set_strip_16(png_structrp png_ptr) -{ - png_debug(1, "in png_set_strip_16"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= PNG_16_TO_8; -} -#endif - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED -void PNGAPI -png_set_strip_alpha(png_structrp png_ptr) -{ - png_debug(1, "in png_set_strip_alpha"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= PNG_STRIP_ALPHA; -} -#endif - -#if defined(PNG_READ_ALPHA_MODE_SUPPORTED) || defined(PNG_READ_GAMMA_SUPPORTED) -static png_fixed_point -translate_gamma_flags(png_structrp png_ptr, png_fixed_point output_gamma, - int is_screen) -{ - /* Check for flag values. The main reason for having the old Mac value as a - * flag is that it is pretty near impossible to work out what the correct - * value is from Apple documentation - a working Mac system is needed to - * discover the value! - */ - if (output_gamma == PNG_DEFAULT_sRGB || - output_gamma == PNG_FP_1 / PNG_DEFAULT_sRGB) - { - /* If there is no sRGB support this just sets the gamma to the standard - * sRGB value. (This is a side effect of using this function!) - */ -# ifdef PNG_READ_sRGB_SUPPORTED - png_ptr->flags |= PNG_FLAG_ASSUME_sRGB; -# else - PNG_UNUSED(png_ptr) -# endif - if (is_screen != 0) - output_gamma = PNG_GAMMA_sRGB; - else - output_gamma = PNG_GAMMA_sRGB_INVERSE; - } - - else if (output_gamma == PNG_GAMMA_MAC_18 || - output_gamma == PNG_FP_1 / PNG_GAMMA_MAC_18) - { - if (is_screen != 0) - output_gamma = PNG_GAMMA_MAC_OLD; - else - output_gamma = PNG_GAMMA_MAC_INVERSE; - } - - return output_gamma; -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -static png_fixed_point -convert_gamma_value(png_structrp png_ptr, double output_gamma) -{ - /* The following silently ignores cases where fixed point (times 100,000) - * gamma values are passed to the floating point API. This is safe and it - * means the fixed point constants work just fine with the floating point - * API. The alternative would just lead to undetected errors and spurious - * bug reports. Negative values fail inside the _fixed API unless they - * correspond to the flag values. - */ - if (output_gamma > 0 && output_gamma < 128) - output_gamma *= PNG_FP_1; - - /* This preserves -1 and -2 exactly: */ - output_gamma = floor(output_gamma + .5); - - if (output_gamma > PNG_FP_MAX || output_gamma < PNG_FP_MIN) - png_fixed_error(png_ptr, "gamma value"); - - return (png_fixed_point)output_gamma; -} -# endif -#endif /* READ_ALPHA_MODE || READ_GAMMA */ - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -void PNGFAPI -png_set_alpha_mode_fixed(png_structrp png_ptr, int mode, - png_fixed_point output_gamma) -{ - int compose = 0; - png_fixed_point file_gamma; - - png_debug(1, "in png_set_alpha_mode"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - output_gamma = translate_gamma_flags(png_ptr, output_gamma, 1/*screen*/); - - /* Validate the value to ensure it is in a reasonable range. The value - * is expected to be 1 or greater, but this range test allows for some - * viewing correction values. The intent is to weed out users of this API - * who use the inverse of the gamma value accidentally! Since some of these - * values are reasonable this may have to be changed: - * - * 1.6.x: changed from 0.07..3 to 0.01..100 (to accommodate the optimal 16-bit - * gamma of 36, and its reciprocal.) - */ - if (output_gamma < 1000 || output_gamma > 10000000) - png_error(png_ptr, "output gamma out of expected range"); - - /* The default file gamma is the inverse of the output gamma; the output - * gamma may be changed below so get the file value first: - */ - file_gamma = png_reciprocal(output_gamma); - - /* There are really 8 possibilities here, composed of any combination - * of: - * - * premultiply the color channels - * do not encode non-opaque pixels - * encode the alpha as well as the color channels - * - * The differences disappear if the input/output ('screen') gamma is 1.0, - * because then the encoding is a no-op and there is only the choice of - * premultiplying the color channels or not. - * - * png_set_alpha_mode and png_set_background interact because both use - * png_compose to do the work. Calling both is only useful when - * png_set_alpha_mode is used to set the default mode - PNG_ALPHA_PNG - along - * with a default gamma value. Otherwise PNG_COMPOSE must not be set. - */ - switch (mode) - { - case PNG_ALPHA_PNG: /* default: png standard */ - /* No compose, but it may be set by png_set_background! */ - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - break; - - case PNG_ALPHA_ASSOCIATED: /* color channels premultiplied */ - compose = 1; - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - /* The output is linear: */ - output_gamma = PNG_FP_1; - break; - - case PNG_ALPHA_OPTIMIZED: /* associated, non-opaque pixels linear */ - compose = 1; - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags |= PNG_FLAG_OPTIMIZE_ALPHA; - /* output_gamma records the encoding of opaque pixels! */ - break; - - case PNG_ALPHA_BROKEN: /* associated, non-linear, alpha encoded */ - compose = 1; - png_ptr->transformations |= PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - break; - - default: - png_error(png_ptr, "invalid alpha mode"); - } - - /* Only set the default gamma if the file gamma has not been set (this has - * the side effect that the gamma in a second call to png_set_alpha_mode will - * be ignored.) - */ - if (png_ptr->colorspace.gamma == 0) - { - png_ptr->colorspace.gamma = file_gamma; - png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; - } - - /* But always set the output gamma: */ - png_ptr->screen_gamma = output_gamma; - - /* Finally, if pre-multiplying, set the background fields to achieve the - * desired result. - */ - if (compose != 0) - { - /* And obtain alpha pre-multiplication by composing on black: */ - memset(&png_ptr->background, 0, (sizeof png_ptr->background)); - png_ptr->background_gamma = png_ptr->colorspace.gamma; /* just in case */ - png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_FILE; - png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; - - if ((png_ptr->transformations & PNG_COMPOSE) != 0) - png_error(png_ptr, - "conflicting calls to set alpha mode and background"); - - png_ptr->transformations |= PNG_COMPOSE; - } -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_alpha_mode(png_structrp png_ptr, int mode, double output_gamma) -{ - png_set_alpha_mode_fixed(png_ptr, mode, convert_gamma_value(png_ptr, - output_gamma)); -} -# endif -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* Dither file to 8-bit. Supply a palette, the current number - * of elements in the palette, the maximum number of elements - * allowed, and a histogram if possible. If the current number - * of colors is greater than the maximum number, the palette will be - * modified to fit in the maximum number. "full_quantize" indicates - * whether we need a quantizing cube set up for RGB images, or if we - * simply are reducing the number of colors in a paletted image. - */ - -typedef struct png_dsort_struct -{ - struct png_dsort_struct * next; - png_byte left; - png_byte right; -} png_dsort; -typedef png_dsort * png_dsortp; -typedef png_dsort * * png_dsortpp; - -void PNGAPI -png_set_quantize(png_structrp png_ptr, png_colorp palette, - int num_palette, int maximum_colors, png_const_uint_16p histogram, - int full_quantize) -{ - png_debug(1, "in png_set_quantize"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= PNG_QUANTIZE; - - if (full_quantize == 0) - { - int i; - - png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr, - (png_alloc_size_t)((png_uint_32)num_palette * (sizeof (png_byte)))); - for (i = 0; i < num_palette; i++) - png_ptr->quantize_index[i] = (png_byte)i; - } - - if (num_palette > maximum_colors) - { - if (histogram != NULL) - { - /* This is easy enough, just throw out the least used colors. - * Perhaps not the best solution, but good enough. - */ - - int i; - - /* Initialize an array to sort colors */ - png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr, - (png_alloc_size_t)((png_uint_32)num_palette * (sizeof (png_byte)))); - - /* Initialize the quantize_sort array */ - for (i = 0; i < num_palette; i++) - png_ptr->quantize_sort[i] = (png_byte)i; - - /* Find the least used palette entries by starting a - * bubble sort, and running it until we have sorted - * out enough colors. Note that we don't care about - * sorting all the colors, just finding which are - * least used. - */ - - for (i = num_palette - 1; i >= maximum_colors; i--) - { - int done; /* To stop early if the list is pre-sorted */ - int j; - - done = 1; - for (j = 0; j < i; j++) - { - if (histogram[png_ptr->quantize_sort[j]] - < histogram[png_ptr->quantize_sort[j + 1]]) - { - png_byte t; - - t = png_ptr->quantize_sort[j]; - png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1]; - png_ptr->quantize_sort[j + 1] = t; - done = 0; - } - } - - if (done != 0) - break; - } - - /* Swap the palette around, and set up a table, if necessary */ - if (full_quantize != 0) - { - int j = num_palette; - - /* Put all the useful colors within the max, but don't - * move the others. - */ - for (i = 0; i < maximum_colors; i++) - { - if ((int)png_ptr->quantize_sort[i] >= maximum_colors) - { - do - j--; - while ((int)png_ptr->quantize_sort[j] >= maximum_colors); - - palette[i] = palette[j]; - } - } - } - else - { - int j = num_palette; - - /* Move all the used colors inside the max limit, and - * develop a translation table. - */ - for (i = 0; i < maximum_colors; i++) - { - /* Only move the colors we need to */ - if ((int)png_ptr->quantize_sort[i] >= maximum_colors) - { - png_color tmp_color; - - do - j--; - while ((int)png_ptr->quantize_sort[j] >= maximum_colors); - - tmp_color = palette[j]; - palette[j] = palette[i]; - palette[i] = tmp_color; - /* Indicate where the color went */ - png_ptr->quantize_index[j] = (png_byte)i; - png_ptr->quantize_index[i] = (png_byte)j; - } - } - - /* Find closest color for those colors we are not using */ - for (i = 0; i < num_palette; i++) - { - if ((int)png_ptr->quantize_index[i] >= maximum_colors) - { - int min_d, k, min_k, d_index; - - /* Find the closest color to one we threw out */ - d_index = png_ptr->quantize_index[i]; - min_d = PNG_COLOR_DIST(palette[d_index], palette[0]); - for (k = 1, min_k = 0; k < maximum_colors; k++) - { - int d; - - d = PNG_COLOR_DIST(palette[d_index], palette[k]); - - if (d < min_d) - { - min_d = d; - min_k = k; - } - } - /* Point to closest color */ - png_ptr->quantize_index[i] = (png_byte)min_k; - } - } - } - png_free(png_ptr, png_ptr->quantize_sort); - png_ptr->quantize_sort = NULL; - } - else - { - /* This is much harder to do simply (and quickly). Perhaps - * we need to go through a median cut routine, but those - * don't always behave themselves with only a few colors - * as input. So we will just find the closest two colors, - * and throw out one of them (chosen somewhat randomly). - * [We don't understand this at all, so if someone wants to - * work on improving it, be our guest - AED, GRP] - */ - int i; - int max_d; - int num_new_palette; - png_dsortp t; - png_dsortpp hash; - - t = NULL; - - /* Initialize palette index arrays */ - png_ptr->index_to_palette = (png_bytep)png_malloc(png_ptr, - (png_alloc_size_t)((png_uint_32)num_palette * - (sizeof (png_byte)))); - png_ptr->palette_to_index = (png_bytep)png_malloc(png_ptr, - (png_alloc_size_t)((png_uint_32)num_palette * - (sizeof (png_byte)))); - - /* Initialize the sort array */ - for (i = 0; i < num_palette; i++) - { - png_ptr->index_to_palette[i] = (png_byte)i; - png_ptr->palette_to_index[i] = (png_byte)i; - } - - hash = (png_dsortpp)png_calloc(png_ptr, (png_alloc_size_t)(769 * - (sizeof (png_dsortp)))); - - num_new_palette = num_palette; - - /* Initial wild guess at how far apart the farthest pixel - * pair we will be eliminating will be. Larger - * numbers mean more areas will be allocated, Smaller - * numbers run the risk of not saving enough data, and - * having to do this all over again. - * - * I have not done extensive checking on this number. - */ - max_d = 96; - - while (num_new_palette > maximum_colors) - { - for (i = 0; i < num_new_palette - 1; i++) - { - int j; - - for (j = i + 1; j < num_new_palette; j++) - { - int d; - - d = PNG_COLOR_DIST(palette[i], palette[j]); - - if (d <= max_d) - { - - t = (png_dsortp)png_malloc_warn(png_ptr, - (png_alloc_size_t)(sizeof (png_dsort))); - - if (t == NULL) - break; - - t->next = hash[d]; - t->left = (png_byte)i; - t->right = (png_byte)j; - hash[d] = t; - } - } - if (t == NULL) - break; - } - - if (t != NULL) - for (i = 0; i <= max_d; i++) - { - if (hash[i] != NULL) - { - png_dsortp p; - - for (p = hash[i]; p; p = p->next) - { - if ((int)png_ptr->index_to_palette[p->left] - < num_new_palette && - (int)png_ptr->index_to_palette[p->right] - < num_new_palette) - { - int j, next_j; - - if (num_new_palette & 0x01) - { - j = p->left; - next_j = p->right; - } - else - { - j = p->right; - next_j = p->left; - } - - num_new_palette--; - palette[png_ptr->index_to_palette[j]] - = palette[num_new_palette]; - if (full_quantize == 0) - { - int k; - - for (k = 0; k < num_palette; k++) - { - if (png_ptr->quantize_index[k] == - png_ptr->index_to_palette[j]) - png_ptr->quantize_index[k] = - png_ptr->index_to_palette[next_j]; - - if ((int)png_ptr->quantize_index[k] == - num_new_palette) - png_ptr->quantize_index[k] = - png_ptr->index_to_palette[j]; - } - } - - png_ptr->index_to_palette[png_ptr->palette_to_index - [num_new_palette]] = png_ptr->index_to_palette[j]; - - png_ptr->palette_to_index[png_ptr->index_to_palette[j]] - = png_ptr->palette_to_index[num_new_palette]; - - png_ptr->index_to_palette[j] = - (png_byte)num_new_palette; - - png_ptr->palette_to_index[num_new_palette] = - (png_byte)j; - } - if (num_new_palette <= maximum_colors) - break; - } - if (num_new_palette <= maximum_colors) - break; - } - } - - for (i = 0; i < 769; i++) - { - if (hash[i] != NULL) - { - png_dsortp p = hash[i]; - while (p) - { - t = p->next; - png_free(png_ptr, p); - p = t; - } - } - hash[i] = 0; - } - max_d += 96; - } - png_free(png_ptr, hash); - png_free(png_ptr, png_ptr->palette_to_index); - png_free(png_ptr, png_ptr->index_to_palette); - png_ptr->palette_to_index = NULL; - png_ptr->index_to_palette = NULL; - } - num_palette = maximum_colors; - } - if (png_ptr->palette == NULL) - { - png_ptr->palette = palette; - } - png_ptr->num_palette = (png_uint_16)num_palette; - - if (full_quantize != 0) - { - int i; - png_bytep distance; - int total_bits = PNG_QUANTIZE_RED_BITS + PNG_QUANTIZE_GREEN_BITS + - PNG_QUANTIZE_BLUE_BITS; - int num_red = (1 << PNG_QUANTIZE_RED_BITS); - int num_green = (1 << PNG_QUANTIZE_GREEN_BITS); - int num_blue = (1 << PNG_QUANTIZE_BLUE_BITS); - size_t num_entries = ((size_t)1 << total_bits); - - png_ptr->palette_lookup = (png_bytep)png_calloc(png_ptr, - (png_alloc_size_t)(num_entries * (sizeof (png_byte)))); - - distance = (png_bytep)png_malloc(png_ptr, (png_alloc_size_t)(num_entries * - (sizeof (png_byte)))); - - memset(distance, 0xff, num_entries * (sizeof (png_byte))); - - for (i = 0; i < num_palette; i++) - { - int ir, ig, ib; - int r = (palette[i].red >> (8 - PNG_QUANTIZE_RED_BITS)); - int g = (palette[i].green >> (8 - PNG_QUANTIZE_GREEN_BITS)); - int b = (palette[i].blue >> (8 - PNG_QUANTIZE_BLUE_BITS)); - - for (ir = 0; ir < num_red; ir++) - { - /* int dr = abs(ir - r); */ - int dr = ((ir > r) ? ir - r : r - ir); - int index_r = (ir << (PNG_QUANTIZE_BLUE_BITS + - PNG_QUANTIZE_GREEN_BITS)); - - for (ig = 0; ig < num_green; ig++) - { - /* int dg = abs(ig - g); */ - int dg = ((ig > g) ? ig - g : g - ig); - int dt = dr + dg; - int dm = ((dr > dg) ? dr : dg); - int index_g = index_r | (ig << PNG_QUANTIZE_BLUE_BITS); - - for (ib = 0; ib < num_blue; ib++) - { - int d_index = index_g | ib; - /* int db = abs(ib - b); */ - int db = ((ib > b) ? ib - b : b - ib); - int dmax = ((dm > db) ? dm : db); - int d = dmax + dt + db; - - if (d < (int)distance[d_index]) - { - distance[d_index] = (png_byte)d; - png_ptr->palette_lookup[d_index] = (png_byte)i; - } - } - } - } - } - - png_free(png_ptr, distance); - } -} -#endif /* READ_QUANTIZE */ - -#ifdef PNG_READ_GAMMA_SUPPORTED -void PNGFAPI -png_set_gamma_fixed(png_structrp png_ptr, png_fixed_point scrn_gamma, - png_fixed_point file_gamma) -{ - png_debug(1, "in png_set_gamma_fixed"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - /* New in libpng-1.5.4 - reserve particular negative values as flags. */ - scrn_gamma = translate_gamma_flags(png_ptr, scrn_gamma, 1/*screen*/); - file_gamma = translate_gamma_flags(png_ptr, file_gamma, 0/*file*/); - - /* Checking the gamma values for being >0 was added in 1.5.4 along with the - * premultiplied alpha support; this actually hides an undocumented feature - * of the previous implementation which allowed gamma processing to be - * disabled in background handling. There is no evidence (so far) that this - * was being used; however, png_set_background itself accepted and must still - * accept '0' for the gamma value it takes, because it isn't always used. - * - * Since this is an API change (albeit a very minor one that removes an - * undocumented API feature) the following checks were only enabled in - * libpng-1.6.0. - */ - if (file_gamma <= 0) - png_error(png_ptr, "invalid file gamma in png_set_gamma"); - - if (scrn_gamma <= 0) - png_error(png_ptr, "invalid screen gamma in png_set_gamma"); - - /* Set the gamma values unconditionally - this overrides the value in the PNG - * file if a gAMA chunk was present. png_set_alpha_mode provides a - * different, easier, way to default the file gamma. - */ - png_ptr->colorspace.gamma = file_gamma; - png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; - png_ptr->screen_gamma = scrn_gamma; -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_gamma(png_structrp png_ptr, double scrn_gamma, double file_gamma) -{ - png_set_gamma_fixed(png_ptr, convert_gamma_value(png_ptr, scrn_gamma), - convert_gamma_value(png_ptr, file_gamma)); -} -# endif /* FLOATING_POINT */ -#endif /* READ_GAMMA */ - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expand paletted images to RGB, expand grayscale images of - * less than 8-bit depth to 8-bit depth, and expand tRNS chunks - * to alpha channels. - */ -void PNGAPI -png_set_expand(png_structrp png_ptr) -{ - png_debug(1, "in png_set_expand"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); -} - -/* GRR 19990627: the following three functions currently are identical - * to png_set_expand(). However, it is entirely reasonable that someone - * might wish to expand an indexed image to RGB but *not* expand a single, - * fully transparent palette entry to a full alpha channel--perhaps instead - * convert tRNS to the grayscale/RGB format (16-bit RGB value), or replace - * the transparent color with a particular RGB value, or drop tRNS entirely. - * IOW, a future version of the library may make the transformations flag - * a bit more fine-grained, with separate bits for each of these three - * functions. - * - * More to the point, these functions make it obvious what libpng will be - * doing, whereas "expand" can (and does) mean any number of things. - * - * GRP 20060307: In libpng-1.2.9, png_set_gray_1_2_4_to_8() was modified - * to expand only the sample depth but not to expand the tRNS to alpha - * and its name was changed to png_set_expand_gray_1_2_4_to_8(). - */ - -/* Expand paletted images to RGB. */ -void PNGAPI -png_set_palette_to_rgb(png_structrp png_ptr) -{ - png_debug(1, "in png_set_palette_to_rgb"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); -} - -/* Expand grayscale images of less than 8-bit depth to 8 bits. */ -void PNGAPI -png_set_expand_gray_1_2_4_to_8(png_structrp png_ptr) -{ - png_debug(1, "in png_set_expand_gray_1_2_4_to_8"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= PNG_EXPAND; -} - -/* Expand tRNS chunks to alpha channels. */ -void PNGAPI -png_set_tRNS_to_alpha(png_structrp png_ptr) -{ - png_debug(1, "in png_set_tRNS_to_alpha"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); -} -#endif /* READ_EXPAND */ - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* Expand to 16-bit channels, expand the tRNS chunk too (because otherwise - * it may not work correctly.) - */ -void PNGAPI -png_set_expand_16(png_structrp png_ptr) -{ - png_debug(1, "in png_set_expand_16"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - png_ptr->transformations |= (PNG_EXPAND_16 | PNG_EXPAND | PNG_EXPAND_tRNS); -} -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -void PNGAPI -png_set_gray_to_rgb(png_structrp png_ptr) -{ - png_debug(1, "in png_set_gray_to_rgb"); - - if (png_rtran_ok(png_ptr, 0) == 0) - return; - - /* Because rgb must be 8 bits or more: */ - png_set_expand_gray_1_2_4_to_8(png_ptr); - png_ptr->transformations |= PNG_GRAY_TO_RGB; -} -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -void PNGFAPI -png_set_rgb_to_gray_fixed(png_structrp png_ptr, int error_action, - png_fixed_point red, png_fixed_point green) -{ - png_debug(1, "in png_set_rgb_to_gray"); - - /* Need the IHDR here because of the check on color_type below. */ - /* TODO: fix this */ - if (png_rtran_ok(png_ptr, 1) == 0) - return; - - switch (error_action) - { - case PNG_ERROR_ACTION_NONE: - png_ptr->transformations |= PNG_RGB_TO_GRAY; - break; - - case PNG_ERROR_ACTION_WARN: - png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN; - break; - - case PNG_ERROR_ACTION_ERROR: - png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR; - break; - - default: - png_error(png_ptr, "invalid error action to rgb_to_gray"); - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) -#ifdef PNG_READ_EXPAND_SUPPORTED - png_ptr->transformations |= PNG_EXPAND; -#else - { - /* Make this an error in 1.6 because otherwise the application may assume - * that it just worked and get a memory overwrite. - */ - png_error(png_ptr, - "Cannot do RGB_TO_GRAY without EXPAND_SUPPORTED"); - - /* png_ptr->transformations &= ~PNG_RGB_TO_GRAY; */ - } -#endif - { - if (red >= 0 && green >= 0 && red + green <= PNG_FP_1) - { - png_uint_16 red_int, green_int; - - /* NOTE: this calculation does not round, but this behavior is retained - * for consistency; the inaccuracy is very small. The code here always - * overwrites the coefficients, regardless of whether they have been - * defaulted or set already. - */ - red_int = (png_uint_16)(((png_uint_32)red*32768)/100000); - green_int = (png_uint_16)(((png_uint_32)green*32768)/100000); - - png_ptr->rgb_to_gray_red_coeff = red_int; - png_ptr->rgb_to_gray_green_coeff = green_int; - png_ptr->rgb_to_gray_coefficients_set = 1; - } - - else - { - if (red >= 0 && green >= 0) - png_app_warning(png_ptr, - "ignoring out of range rgb_to_gray coefficients"); - - /* Use the defaults, from the cHRM chunk if set, else the historical - * values which are close to the sRGB/HDTV/ITU-Rec 709 values. See - * png_do_rgb_to_gray for more discussion of the values. In this case - * the coefficients are not marked as 'set' and are not overwritten if - * something has already provided a default. - */ - if (png_ptr->rgb_to_gray_red_coeff == 0 && - png_ptr->rgb_to_gray_green_coeff == 0) - { - png_ptr->rgb_to_gray_red_coeff = 6968; - png_ptr->rgb_to_gray_green_coeff = 23434; - /* png_ptr->rgb_to_gray_blue_coeff = 2366; */ - } - } - } -} - -#ifdef PNG_FLOATING_POINT_SUPPORTED -/* Convert a RGB image to a grayscale of the same width. This allows us, - * for example, to convert a 24 bpp RGB image into an 8 bpp grayscale image. - */ - -void PNGAPI -png_set_rgb_to_gray(png_structrp png_ptr, int error_action, double red, - double green) -{ - png_set_rgb_to_gray_fixed(png_ptr, error_action, - png_fixed(png_ptr, red, "rgb to gray red coefficient"), - png_fixed(png_ptr, green, "rgb to gray green coefficient")); -} -#endif /* FLOATING POINT */ - -#endif /* RGB_TO_GRAY */ - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -void PNGAPI -png_set_read_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr - read_user_transform_fn) -{ - png_debug(1, "in png_set_read_user_transform_fn"); - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - png_ptr->transformations |= PNG_USER_TRANSFORM; - png_ptr->read_user_transform_fn = read_user_transform_fn; -#endif -} -#endif - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -#ifdef PNG_READ_GAMMA_SUPPORTED -/* In the case of gamma transformations only do transformations on images where - * the [file] gamma and screen_gamma are not close reciprocals, otherwise it - * slows things down slightly, and also needlessly introduces small errors. - */ -static int /* PRIVATE */ -png_gamma_threshold(png_fixed_point screen_gamma, png_fixed_point file_gamma) -{ - /* PNG_GAMMA_THRESHOLD is the threshold for performing gamma - * correction as a difference of the overall transform from 1.0 - * - * We want to compare the threshold with s*f - 1, if we get - * overflow here it is because of wacky gamma values so we - * turn on processing anyway. - */ - png_fixed_point gtest; - return !png_muldiv(>est, screen_gamma, file_gamma, PNG_FP_1) || - png_gamma_significant(gtest); -} -#endif - -/* Initialize everything needed for the read. This includes modifying - * the palette. - */ - -/* For the moment 'png_init_palette_transformations' and - * 'png_init_rgb_transformations' only do some flag canceling optimizations. - * The intent is that these two routines should have palette or rgb operations - * extracted from 'png_init_read_transformations'. - */ -static void /* PRIVATE */ -png_init_palette_transformations(png_structrp png_ptr) -{ - /* Called to handle the (input) palette case. In png_do_read_transformations - * the first step is to expand the palette if requested, so this code must - * take care to only make changes that are invariant with respect to the - * palette expansion, or only do them if there is no expansion. - * - * STRIP_ALPHA has already been handled in the caller (by setting num_trans - * to 0.) - */ - int input_has_alpha = 0; - int input_has_transparency = 0; - - if (png_ptr->num_trans > 0) - { - int i; - - /* Ignore if all the entries are opaque (unlikely!) */ - for (i=0; inum_trans; ++i) - { - if (png_ptr->trans_alpha[i] == 255) - continue; - else if (png_ptr->trans_alpha[i] == 0) - input_has_transparency = 1; - else - { - input_has_transparency = 1; - input_has_alpha = 1; - break; - } - } - } - - /* If no alpha we can optimize. */ - if (input_has_alpha == 0) - { - /* Any alpha means background and associative alpha processing is - * required, however if the alpha is 0 or 1 throughout OPTIMIZE_ALPHA - * and ENCODE_ALPHA are irrelevant. - */ - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - - if (input_has_transparency == 0) - png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); - } - -#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED) - /* png_set_background handling - deals with the complexity of whether the - * background color is in the file format or the screen format in the case - * where an 'expand' will happen. - */ - - /* The following code cannot be entered in the alpha pre-multiplication case - * because PNG_BACKGROUND_EXPAND is cancelled below. - */ - if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0 && - (png_ptr->transformations & PNG_EXPAND) != 0) - { - { - png_ptr->background.red = - png_ptr->palette[png_ptr->background.index].red; - png_ptr->background.green = - png_ptr->palette[png_ptr->background.index].green; - png_ptr->background.blue = - png_ptr->palette[png_ptr->background.index].blue; - -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0) - { - if ((png_ptr->transformations & PNG_EXPAND_tRNS) == 0) - { - /* Invert the alpha channel (in tRNS) unless the pixels are - * going to be expanded, in which case leave it for later - */ - int i, istop = png_ptr->num_trans; - - for (i = 0; i < istop; i++) - png_ptr->trans_alpha[i] = - (png_byte)(255 - png_ptr->trans_alpha[i]); - } - } -#endif /* READ_INVERT_ALPHA */ - } - } /* background expand and (therefore) no alpha association. */ -#endif /* READ_EXPAND && READ_BACKGROUND */ -} - -static void /* PRIVATE */ -png_init_rgb_transformations(png_structrp png_ptr) -{ - /* Added to libpng-1.5.4: check the color type to determine whether there - * is any alpha or transparency in the image and simply cancel the - * background and alpha mode stuff if there isn't. - */ - int input_has_alpha = (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0; - int input_has_transparency = png_ptr->num_trans > 0; - - /* If no alpha we can optimize. */ - if (input_has_alpha == 0) - { - /* Any alpha means background and associative alpha processing is - * required, however if the alpha is 0 or 1 throughout OPTIMIZE_ALPHA - * and ENCODE_ALPHA are irrelevant. - */ -# ifdef PNG_READ_ALPHA_MODE_SUPPORTED - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; -# endif - - if (input_has_transparency == 0) - png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); - } - -#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED) - /* png_set_background handling - deals with the complexity of whether the - * background color is in the file format or the screen format in the case - * where an 'expand' will happen. - */ - - /* The following code cannot be entered in the alpha pre-multiplication case - * because PNG_BACKGROUND_EXPAND is cancelled below. - */ - if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0 && - (png_ptr->transformations & PNG_EXPAND) != 0 && - (png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) - /* i.e., GRAY or GRAY_ALPHA */ - { - { - /* Expand background and tRNS chunks */ - int gray = png_ptr->background.gray; - int trans_gray = png_ptr->trans_color.gray; - - switch (png_ptr->bit_depth) - { - case 1: - gray *= 0xff; - trans_gray *= 0xff; - break; - - case 2: - gray *= 0x55; - trans_gray *= 0x55; - break; - - case 4: - gray *= 0x11; - trans_gray *= 0x11; - break; - - default: - - case 8: - /* FALLTHROUGH */ /* (Already 8 bits) */ - - case 16: - /* Already a full 16 bits */ - break; - } - - png_ptr->background.red = png_ptr->background.green = - png_ptr->background.blue = (png_uint_16)gray; - - if ((png_ptr->transformations & PNG_EXPAND_tRNS) == 0) - { - png_ptr->trans_color.red = png_ptr->trans_color.green = - png_ptr->trans_color.blue = (png_uint_16)trans_gray; - } - } - } /* background expand and (therefore) no alpha association. */ -#endif /* READ_EXPAND && READ_BACKGROUND */ -} - -void /* PRIVATE */ -png_init_read_transformations(png_structrp png_ptr) -{ - png_debug(1, "in png_init_read_transformations"); - - /* This internal function is called from png_read_start_row in pngrutil.c - * and it is called before the 'rowbytes' calculation is done, so the code - * in here can change or update the transformations flags. - * - * First do updates that do not depend on the details of the PNG image data - * being processed. - */ - -#ifdef PNG_READ_GAMMA_SUPPORTED - /* Prior to 1.5.4 these tests were performed from png_set_gamma, 1.5.4 adds - * png_set_alpha_mode and this is another source for a default file gamma so - * the test needs to be performed later - here. In addition prior to 1.5.4 - * the tests were repeated for the PALETTE color type here - this is no - * longer necessary (and doesn't seem to have been necessary before.) - */ - { - /* The following temporary indicates if overall gamma correction is - * required. - */ - int gamma_correction = 0; - - if (png_ptr->colorspace.gamma != 0) /* has been set */ - { - if (png_ptr->screen_gamma != 0) /* screen set too */ - gamma_correction = png_gamma_threshold(png_ptr->colorspace.gamma, - png_ptr->screen_gamma); - - else - /* Assume the output matches the input; a long time default behavior - * of libpng, although the standard has nothing to say about this. - */ - png_ptr->screen_gamma = png_reciprocal(png_ptr->colorspace.gamma); - } - - else if (png_ptr->screen_gamma != 0) - /* The converse - assume the file matches the screen, note that this - * perhaps undesirable default can (from 1.5.4) be changed by calling - * png_set_alpha_mode (even if the alpha handling mode isn't required - * or isn't changed from the default.) - */ - png_ptr->colorspace.gamma = png_reciprocal(png_ptr->screen_gamma); - - else /* neither are set */ - /* Just in case the following prevents any processing - file and screen - * are both assumed to be linear and there is no way to introduce a - * third gamma value other than png_set_background with 'UNIQUE', and, - * prior to 1.5.4 - */ - png_ptr->screen_gamma = png_ptr->colorspace.gamma = PNG_FP_1; - - /* We have a gamma value now. */ - png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; - - /* Now turn the gamma transformation on or off as appropriate. Notice - * that PNG_GAMMA just refers to the file->screen correction. Alpha - * composition may independently cause gamma correction because it needs - * linear data (e.g. if the file has a gAMA chunk but the screen gamma - * hasn't been specified.) In any case this flag may get turned off in - * the code immediately below if the transform can be handled outside the - * row loop. - */ - if (gamma_correction != 0) - png_ptr->transformations |= PNG_GAMMA; - - else - png_ptr->transformations &= ~PNG_GAMMA; - } -#endif - - /* Certain transformations have the effect of preventing other - * transformations that happen afterward in png_do_read_transformations; - * resolve the interdependencies here. From the code of - * png_do_read_transformations the order is: - * - * 1) PNG_EXPAND (including PNG_EXPAND_tRNS) - * 2) PNG_STRIP_ALPHA (if no compose) - * 3) PNG_RGB_TO_GRAY - * 4) PNG_GRAY_TO_RGB iff !PNG_BACKGROUND_IS_GRAY - * 5) PNG_COMPOSE - * 6) PNG_GAMMA - * 7) PNG_STRIP_ALPHA (if compose) - * 8) PNG_ENCODE_ALPHA - * 9) PNG_SCALE_16_TO_8 - * 10) PNG_16_TO_8 - * 11) PNG_QUANTIZE (converts to palette) - * 12) PNG_EXPAND_16 - * 13) PNG_GRAY_TO_RGB iff PNG_BACKGROUND_IS_GRAY - * 14) PNG_INVERT_MONO - * 15) PNG_INVERT_ALPHA - * 16) PNG_SHIFT - * 17) PNG_PACK - * 18) PNG_BGR - * 19) PNG_PACKSWAP - * 20) PNG_FILLER (includes PNG_ADD_ALPHA) - * 21) PNG_SWAP_ALPHA - * 22) PNG_SWAP_BYTES - * 23) PNG_USER_TRANSFORM [must be last] - */ -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && - (png_ptr->transformations & PNG_COMPOSE) == 0) - { - /* Stripping the alpha channel happens immediately after the 'expand' - * transformations, before all other transformation, so it cancels out - * the alpha handling. It has the side effect negating the effect of - * PNG_EXPAND_tRNS too: - */ - png_ptr->transformations &= ~(PNG_BACKGROUND_EXPAND | PNG_ENCODE_ALPHA | - PNG_EXPAND_tRNS); - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - - /* Kill the tRNS chunk itself too. Prior to 1.5.4 this did not happen - * so transparency information would remain just so long as it wasn't - * expanded. This produces unexpected API changes if the set of things - * that do PNG_EXPAND_tRNS changes (perfectly possible given the - * documentation - which says ask for what you want, accept what you - * get.) This makes the behavior consistent from 1.5.4: - */ - png_ptr->num_trans = 0; - } -#endif /* STRIP_ALPHA supported, no COMPOSE */ - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED - /* If the screen gamma is about 1.0 then the OPTIMIZE_ALPHA and ENCODE_ALPHA - * settings will have no effect. - */ - if (png_gamma_significant(png_ptr->screen_gamma) == 0) - { - png_ptr->transformations &= ~PNG_ENCODE_ALPHA; - png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; - } -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - /* Make sure the coefficients for the rgb to gray conversion are set - * appropriately. - */ - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) - png_colorspace_set_rgb_coefficients(png_ptr); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED) - /* Detect gray background and attempt to enable optimization for - * gray --> RGB case. - * - * Note: if PNG_BACKGROUND_EXPAND is set and color_type is either RGB or - * RGB_ALPHA (in which case need_expand is superfluous anyway), the - * background color might actually be gray yet not be flagged as such. - * This is not a problem for the current code, which uses - * PNG_BACKGROUND_IS_GRAY only to decide when to do the - * png_do_gray_to_rgb() transformation. - * - * TODO: this code needs to be revised to avoid the complexity and - * interdependencies. The color type of the background should be recorded in - * png_set_background, along with the bit depth, then the code has a record - * of exactly what color space the background is currently in. - */ - if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0) - { - /* PNG_BACKGROUND_EXPAND: the background is in the file color space, so if - * the file was grayscale the background value is gray. - */ - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) - png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; - } - - else if ((png_ptr->transformations & PNG_COMPOSE) != 0) - { - /* PNG_COMPOSE: png_set_background was called with need_expand false, - * so the color is in the color space of the output or png_set_alpha_mode - * was called and the color is black. Ignore RGB_TO_GRAY because that - * happens before GRAY_TO_RGB. - */ - if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0) - { - if (png_ptr->background.red == png_ptr->background.green && - png_ptr->background.red == png_ptr->background.blue) - { - png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; - png_ptr->background.gray = png_ptr->background.red; - } - } - } -#endif /* READ_EXPAND && READ_BACKGROUND */ -#endif /* READ_GRAY_TO_RGB */ - - /* For indexed PNG data (PNG_COLOR_TYPE_PALETTE) many of the transformations - * can be performed directly on the palette, and some (such as rgb to gray) - * can be optimized inside the palette. This is particularly true of the - * composite (background and alpha) stuff, which can be pretty much all done - * in the palette even if the result is expanded to RGB or gray afterward. - * - * NOTE: this is Not Yet Implemented, the code behaves as in 1.5.1 and - * earlier and the palette stuff is actually handled on the first row. This - * leads to the reported bug that the palette returned by png_get_PLTE is not - * updated. - */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_init_palette_transformations(png_ptr); - - else - png_init_rgb_transformations(png_ptr); - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \ - defined(PNG_READ_EXPAND_16_SUPPORTED) - if ((png_ptr->transformations & PNG_EXPAND_16) != 0 && - (png_ptr->transformations & PNG_COMPOSE) != 0 && - (png_ptr->transformations & PNG_BACKGROUND_EXPAND) == 0 && - png_ptr->bit_depth != 16) - { - /* TODO: fix this. Because the expand_16 operation is after the compose - * handling the background color must be 8, not 16, bits deep, but the - * application will supply a 16-bit value so reduce it here. - * - * The PNG_BACKGROUND_EXPAND code above does not expand to 16 bits at - * present, so that case is ok (until do_expand_16 is moved.) - * - * NOTE: this discards the low 16 bits of the user supplied background - * color, but until expand_16 works properly there is no choice! - */ -# define CHOP(x) (x)=((png_uint_16)PNG_DIV257(x)) - CHOP(png_ptr->background.red); - CHOP(png_ptr->background.green); - CHOP(png_ptr->background.blue); - CHOP(png_ptr->background.gray); -# undef CHOP - } -#endif /* READ_BACKGROUND && READ_EXPAND_16 */ - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \ - (defined(PNG_READ_SCALE_16_TO_8_SUPPORTED) || \ - defined(PNG_READ_STRIP_16_TO_8_SUPPORTED)) - if ((png_ptr->transformations & (PNG_16_TO_8|PNG_SCALE_16_TO_8)) != 0 && - (png_ptr->transformations & PNG_COMPOSE) != 0 && - (png_ptr->transformations & PNG_BACKGROUND_EXPAND) == 0 && - png_ptr->bit_depth == 16) - { - /* On the other hand, if a 16-bit file is to be reduced to 8-bits per - * component this will also happen after PNG_COMPOSE and so the background - * color must be pre-expanded here. - * - * TODO: fix this too. - */ - png_ptr->background.red = (png_uint_16)(png_ptr->background.red * 257); - png_ptr->background.green = - (png_uint_16)(png_ptr->background.green * 257); - png_ptr->background.blue = (png_uint_16)(png_ptr->background.blue * 257); - png_ptr->background.gray = (png_uint_16)(png_ptr->background.gray * 257); - } -#endif - - /* NOTE: below 'PNG_READ_ALPHA_MODE_SUPPORTED' is presumed to also enable the - * background support (see the comments in scripts/pnglibconf.dfa), this - * allows pre-multiplication of the alpha channel to be implemented as - * compositing on black. This is probably sub-optimal and has been done in - * 1.5.4 betas simply to enable external critique and testing (i.e. to - * implement the new API quickly, without lots of internal changes.) - */ - -#ifdef PNG_READ_GAMMA_SUPPORTED -# ifdef PNG_READ_BACKGROUND_SUPPORTED - /* Includes ALPHA_MODE */ - png_ptr->background_1 = png_ptr->background; -# endif - - /* This needs to change - in the palette image case a whole set of tables are - * built when it would be quicker to just calculate the correct value for - * each palette entry directly. Also, the test is too tricky - why check - * PNG_RGB_TO_GRAY if PNG_GAMMA is not set? The answer seems to be that - * PNG_GAMMA is cancelled even if the gamma is known? The test excludes the - * PNG_COMPOSE case, so apparently if there is no *overall* gamma correction - * the gamma tables will not be built even if composition is required on a - * gamma encoded value. - * - * In 1.5.4 this is addressed below by an additional check on the individual - * file gamma - if it is not 1.0 both RGB_TO_GRAY and COMPOSE need the - * tables. - */ - if ((png_ptr->transformations & PNG_GAMMA) != 0 || - ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0 && - (png_gamma_significant(png_ptr->colorspace.gamma) != 0 || - png_gamma_significant(png_ptr->screen_gamma) != 0)) || - ((png_ptr->transformations & PNG_COMPOSE) != 0 && - (png_gamma_significant(png_ptr->colorspace.gamma) != 0 || - png_gamma_significant(png_ptr->screen_gamma) != 0 -# ifdef PNG_READ_BACKGROUND_SUPPORTED - || (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_UNIQUE && - png_gamma_significant(png_ptr->background_gamma) != 0) -# endif - )) || ((png_ptr->transformations & PNG_ENCODE_ALPHA) != 0 && - png_gamma_significant(png_ptr->screen_gamma) != 0)) - { - png_build_gamma_table(png_ptr, png_ptr->bit_depth); - -#ifdef PNG_READ_BACKGROUND_SUPPORTED - if ((png_ptr->transformations & PNG_COMPOSE) != 0) - { - /* Issue a warning about this combination: because RGB_TO_GRAY is - * optimized to do the gamma transform if present yet do_background has - * to do the same thing if both options are set a - * double-gamma-correction happens. This is true in all versions of - * libpng to date. - */ - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) - png_warning(png_ptr, - "libpng does not support gamma+background+rgb_to_gray"); - - if ((png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) != 0) - { - /* We don't get to here unless there is a tRNS chunk with non-opaque - * entries - see the checking code at the start of this function. - */ - png_color back, back_1; - png_colorp palette = png_ptr->palette; - int num_palette = png_ptr->num_palette; - int i; - if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE) - { - - back.red = png_ptr->gamma_table[png_ptr->background.red]; - back.green = png_ptr->gamma_table[png_ptr->background.green]; - back.blue = png_ptr->gamma_table[png_ptr->background.blue]; - - back_1.red = png_ptr->gamma_to_1[png_ptr->background.red]; - back_1.green = png_ptr->gamma_to_1[png_ptr->background.green]; - back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue]; - } - else - { - png_fixed_point g, gs; - - switch (png_ptr->background_gamma_type) - { - case PNG_BACKGROUND_GAMMA_SCREEN: - g = (png_ptr->screen_gamma); - gs = PNG_FP_1; - break; - - case PNG_BACKGROUND_GAMMA_FILE: - g = png_reciprocal(png_ptr->colorspace.gamma); - gs = png_reciprocal2(png_ptr->colorspace.gamma, - png_ptr->screen_gamma); - break; - - case PNG_BACKGROUND_GAMMA_UNIQUE: - g = png_reciprocal(png_ptr->background_gamma); - gs = png_reciprocal2(png_ptr->background_gamma, - png_ptr->screen_gamma); - break; - default: - g = PNG_FP_1; /* back_1 */ - gs = PNG_FP_1; /* back */ - break; - } - - if (png_gamma_significant(gs) != 0) - { - back.red = png_gamma_8bit_correct(png_ptr->background.red, - gs); - back.green = png_gamma_8bit_correct(png_ptr->background.green, - gs); - back.blue = png_gamma_8bit_correct(png_ptr->background.blue, - gs); - } - - else - { - back.red = (png_byte)png_ptr->background.red; - back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; - } - - if (png_gamma_significant(g) != 0) - { - back_1.red = png_gamma_8bit_correct(png_ptr->background.red, - g); - back_1.green = png_gamma_8bit_correct( - png_ptr->background.green, g); - back_1.blue = png_gamma_8bit_correct(png_ptr->background.blue, - g); - } - - else - { - back_1.red = (png_byte)png_ptr->background.red; - back_1.green = (png_byte)png_ptr->background.green; - back_1.blue = (png_byte)png_ptr->background.blue; - } - } - - for (i = 0; i < num_palette; i++) - { - if (i < (int)png_ptr->num_trans && - png_ptr->trans_alpha[i] != 0xff) - { - if (png_ptr->trans_alpha[i] == 0) - { - palette[i] = back; - } - else /* if (png_ptr->trans_alpha[i] != 0xff) */ - { - png_byte v, w; - - v = png_ptr->gamma_to_1[palette[i].red]; - png_composite(w, v, png_ptr->trans_alpha[i], back_1.red); - palette[i].red = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[palette[i].green]; - png_composite(w, v, png_ptr->trans_alpha[i], back_1.green); - palette[i].green = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[palette[i].blue]; - png_composite(w, v, png_ptr->trans_alpha[i], back_1.blue); - palette[i].blue = png_ptr->gamma_from_1[w]; - } - } - else - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } - - /* Prevent the transformations being done again. - * - * NOTE: this is highly dubious; it removes the transformations in - * place. This seems inconsistent with the general treatment of the - * transformations elsewhere. - */ - png_ptr->transformations &= ~(PNG_COMPOSE | PNG_GAMMA); - } /* color_type == PNG_COLOR_TYPE_PALETTE */ - - /* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */ - else /* color_type != PNG_COLOR_TYPE_PALETTE */ - { - int gs_sig, g_sig; - png_fixed_point g = PNG_FP_1; /* Correction to linear */ - png_fixed_point gs = PNG_FP_1; /* Correction to screen */ - - switch (png_ptr->background_gamma_type) - { - case PNG_BACKGROUND_GAMMA_SCREEN: - g = png_ptr->screen_gamma; - /* gs = PNG_FP_1; */ - break; - - case PNG_BACKGROUND_GAMMA_FILE: - g = png_reciprocal(png_ptr->colorspace.gamma); - gs = png_reciprocal2(png_ptr->colorspace.gamma, - png_ptr->screen_gamma); - break; - - case PNG_BACKGROUND_GAMMA_UNIQUE: - g = png_reciprocal(png_ptr->background_gamma); - gs = png_reciprocal2(png_ptr->background_gamma, - png_ptr->screen_gamma); - break; - - default: - png_error(png_ptr, "invalid background gamma type"); - } - - g_sig = png_gamma_significant(g); - gs_sig = png_gamma_significant(gs); - - if (g_sig != 0) - png_ptr->background_1.gray = png_gamma_correct(png_ptr, - png_ptr->background.gray, g); - - if (gs_sig != 0) - png_ptr->background.gray = png_gamma_correct(png_ptr, - png_ptr->background.gray, gs); - - if ((png_ptr->background.red != png_ptr->background.green) || - (png_ptr->background.red != png_ptr->background.blue) || - (png_ptr->background.red != png_ptr->background.gray)) - { - /* RGB or RGBA with color background */ - if (g_sig != 0) - { - png_ptr->background_1.red = png_gamma_correct(png_ptr, - png_ptr->background.red, g); - - png_ptr->background_1.green = png_gamma_correct(png_ptr, - png_ptr->background.green, g); - - png_ptr->background_1.blue = png_gamma_correct(png_ptr, - png_ptr->background.blue, g); - } - - if (gs_sig != 0) - { - png_ptr->background.red = png_gamma_correct(png_ptr, - png_ptr->background.red, gs); - - png_ptr->background.green = png_gamma_correct(png_ptr, - png_ptr->background.green, gs); - - png_ptr->background.blue = png_gamma_correct(png_ptr, - png_ptr->background.blue, gs); - } - } - - else - { - /* GRAY, GRAY ALPHA, RGB, or RGBA with gray background */ - png_ptr->background_1.red = png_ptr->background_1.green - = png_ptr->background_1.blue = png_ptr->background_1.gray; - - png_ptr->background.red = png_ptr->background.green - = png_ptr->background.blue = png_ptr->background.gray; - } - - /* The background is now in screen gamma: */ - png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_SCREEN; - } /* color_type != PNG_COLOR_TYPE_PALETTE */ - }/* png_ptr->transformations & PNG_BACKGROUND */ - - else - /* Transformation does not include PNG_BACKGROUND */ -#endif /* READ_BACKGROUND */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - /* RGB_TO_GRAY needs to have non-gamma-corrected values! */ - && ((png_ptr->transformations & PNG_EXPAND) == 0 || - (png_ptr->transformations & PNG_RGB_TO_GRAY) == 0) -#endif - ) - { - png_colorp palette = png_ptr->palette; - int num_palette = png_ptr->num_palette; - int i; - - /* NOTE: there are other transformations that should probably be in - * here too. - */ - for (i = 0; i < num_palette; i++) - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - - /* Done the gamma correction. */ - png_ptr->transformations &= ~PNG_GAMMA; - } /* color_type == PALETTE && !PNG_BACKGROUND transformation */ - } -#ifdef PNG_READ_BACKGROUND_SUPPORTED - else -#endif -#endif /* READ_GAMMA */ - -#ifdef PNG_READ_BACKGROUND_SUPPORTED - /* No GAMMA transformation (see the hanging else 4 lines above) */ - if ((png_ptr->transformations & PNG_COMPOSE) != 0 && - (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) - { - int i; - int istop = (int)png_ptr->num_trans; - png_color back; - png_colorp palette = png_ptr->palette; - - back.red = (png_byte)png_ptr->background.red; - back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; - - for (i = 0; i < istop; i++) - { - if (png_ptr->trans_alpha[i] == 0) - { - palette[i] = back; - } - - else if (png_ptr->trans_alpha[i] != 0xff) - { - /* The png_composite() macro is defined in png.h */ - png_composite(palette[i].red, palette[i].red, - png_ptr->trans_alpha[i], back.red); - - png_composite(palette[i].green, palette[i].green, - png_ptr->trans_alpha[i], back.green); - - png_composite(palette[i].blue, palette[i].blue, - png_ptr->trans_alpha[i], back.blue); - } - } - - png_ptr->transformations &= ~PNG_COMPOSE; - } -#endif /* READ_BACKGROUND */ - -#ifdef PNG_READ_SHIFT_SUPPORTED - if ((png_ptr->transformations & PNG_SHIFT) != 0 && - (png_ptr->transformations & PNG_EXPAND) == 0 && - (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) - { - int i; - int istop = png_ptr->num_palette; - int shift = 8 - png_ptr->sig_bit.red; - - png_ptr->transformations &= ~PNG_SHIFT; - - /* significant bits can be in the range 1 to 7 for a meaningful result, if - * the number of significant bits is 0 then no shift is done (this is an - * error condition which is silently ignored.) - */ - if (shift > 0 && shift < 8) - for (i=0; ipalette[i].red; - - component >>= shift; - png_ptr->palette[i].red = (png_byte)component; - } - - shift = 8 - png_ptr->sig_bit.green; - if (shift > 0 && shift < 8) - for (i=0; ipalette[i].green; - - component >>= shift; - png_ptr->palette[i].green = (png_byte)component; - } - - shift = 8 - png_ptr->sig_bit.blue; - if (shift > 0 && shift < 8) - for (i=0; ipalette[i].blue; - - component >>= shift; - png_ptr->palette[i].blue = (png_byte)component; - } - } -#endif /* READ_SHIFT */ -} - -/* Modify the info structure to reflect the transformations. The - * info should be updated so a PNG file could be written with it, - * assuming the transformations result in valid PNG data. - */ -void /* PRIVATE */ -png_read_transform_info(png_structrp png_ptr, png_inforp info_ptr) -{ - png_debug(1, "in png_read_transform_info"); - -#ifdef PNG_READ_EXPAND_SUPPORTED - if ((png_ptr->transformations & PNG_EXPAND) != 0) - { - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - /* This check must match what actually happens in - * png_do_expand_palette; if it ever checks the tRNS chunk to see if - * it is all opaque we must do the same (at present it does not.) - */ - if (png_ptr->num_trans > 0) - info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA; - - else - info_ptr->color_type = PNG_COLOR_TYPE_RGB; - - info_ptr->bit_depth = 8; - info_ptr->num_trans = 0; - - if (png_ptr->palette == NULL) - png_error (png_ptr, "Palette is NULL in indexed image"); - } - else - { - if (png_ptr->num_trans != 0) - { - if ((png_ptr->transformations & PNG_EXPAND_tRNS) != 0) - info_ptr->color_type |= PNG_COLOR_MASK_ALPHA; - } - if (info_ptr->bit_depth < 8) - info_ptr->bit_depth = 8; - - info_ptr->num_trans = 0; - } - } -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) - /* The following is almost certainly wrong unless the background value is in - * the screen space! - */ - if ((png_ptr->transformations & PNG_COMPOSE) != 0) - info_ptr->background = png_ptr->background; -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED - /* The following used to be conditional on PNG_GAMMA (prior to 1.5.4), - * however it seems that the code in png_init_read_transformations, which has - * been called before this from png_read_update_info->png_read_start_row - * sometimes does the gamma transform and cancels the flag. - * - * TODO: this looks wrong; the info_ptr should end up with a gamma equal to - * the screen_gamma value. The following probably results in weirdness if - * the info_ptr is used by the app after the rows have been read. - */ - info_ptr->colorspace.gamma = png_ptr->colorspace.gamma; -#endif - - if (info_ptr->bit_depth == 16) - { -# ifdef PNG_READ_16BIT_SUPPORTED -# ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED - if ((png_ptr->transformations & PNG_SCALE_16_TO_8) != 0) - info_ptr->bit_depth = 8; -# endif - -# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED - if ((png_ptr->transformations & PNG_16_TO_8) != 0) - info_ptr->bit_depth = 8; -# endif - -# else - /* No 16-bit support: force chopping 16-bit input down to 8, in this case - * the app program can chose if both APIs are available by setting the - * correct scaling to use. - */ -# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED - /* For compatibility with previous versions use the strip method by - * default. This code works because if PNG_SCALE_16_TO_8 is already - * set the code below will do that in preference to the chop. - */ - png_ptr->transformations |= PNG_16_TO_8; - info_ptr->bit_depth = 8; -# else - -# ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED - png_ptr->transformations |= PNG_SCALE_16_TO_8; - info_ptr->bit_depth = 8; -# else - - CONFIGURATION ERROR: you must enable at least one 16 to 8 method -# endif -# endif -#endif /* !READ_16BIT */ - } - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED - if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0) - info_ptr->color_type = (png_byte)(info_ptr->color_type | - PNG_COLOR_MASK_COLOR); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) - info_ptr->color_type = (png_byte)(info_ptr->color_type & - ~PNG_COLOR_MASK_COLOR); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED - if ((png_ptr->transformations & PNG_QUANTIZE) != 0) - { - if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) || - (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) && - png_ptr->palette_lookup != 0 && info_ptr->bit_depth == 8) - { - info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; - } - } -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED - if ((png_ptr->transformations & PNG_EXPAND_16) != 0 && - info_ptr->bit_depth == 8 && - info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) - { - info_ptr->bit_depth = 16; - } -#endif - -#ifdef PNG_READ_PACK_SUPPORTED - if ((png_ptr->transformations & PNG_PACK) != 0 && - (info_ptr->bit_depth < 8)) - info_ptr->bit_depth = 8; -#endif - - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - info_ptr->channels = 1; - - else if ((info_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - info_ptr->channels = 3; - - else - info_ptr->channels = 1; - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0) - { - info_ptr->color_type = (png_byte)(info_ptr->color_type & - ~PNG_COLOR_MASK_ALPHA); - info_ptr->num_trans = 0; - } -#endif - - if ((info_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0) - info_ptr->channels++; - -#ifdef PNG_READ_FILLER_SUPPORTED - /* STRIP_ALPHA and FILLER allowed: MASK_ALPHA bit stripped above */ - if ((png_ptr->transformations & PNG_FILLER) != 0 && - (info_ptr->color_type == PNG_COLOR_TYPE_RGB || - info_ptr->color_type == PNG_COLOR_TYPE_GRAY)) - { - info_ptr->channels++; - /* If adding a true alpha channel not just filler */ - if ((png_ptr->transformations & PNG_ADD_ALPHA) != 0) - info_ptr->color_type |= PNG_COLOR_MASK_ALPHA; - } -#endif - -#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) && \ -defined(PNG_READ_USER_TRANSFORM_SUPPORTED) - if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) - { - if (png_ptr->user_transform_depth != 0) - info_ptr->bit_depth = png_ptr->user_transform_depth; - - if (png_ptr->user_transform_channels != 0) - info_ptr->channels = png_ptr->user_transform_channels; - } -#endif - - info_ptr->pixel_depth = (png_byte)(info_ptr->channels * - info_ptr->bit_depth); - - info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, info_ptr->width); - - /* Adding in 1.5.4: cache the above value in png_struct so that we can later - * check in png_rowbytes that the user buffer won't get overwritten. Note - * that the field is not always set - if png_read_update_info isn't called - * the application has to either not do any transforms or get the calculation - * right itself. - */ - png_ptr->info_rowbytes = info_ptr->rowbytes; - -#ifndef PNG_READ_EXPAND_SUPPORTED - if (png_ptr != NULL) - return; -#endif -} - -#ifdef PNG_READ_PACK_SUPPORTED -/* Unpack pixels of 1, 2, or 4 bits per pixel into 1 byte per pixel, - * without changing the actual values. Thus, if you had a row with - * a bit depth of 1, you would end up with bytes that only contained - * the numbers 0 or 1. If you would rather they contain 0 and 255, use - * png_do_shift() after this. - */ -static void -png_do_unpack(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_unpack"); - - if (row_info->bit_depth < 8) - { - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - switch (row_info->bit_depth) - { - case 1: - { - png_bytep sp = row + (size_t)((row_width - 1) >> 3); - png_bytep dp = row + (size_t)row_width - 1; - png_uint_32 shift = 7U - ((row_width + 7U) & 0x07); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0x01); - - if (shift == 7) - { - shift = 0; - sp--; - } - - else - shift++; - - dp--; - } - break; - } - - case 2: - { - - png_bytep sp = row + (size_t)((row_width - 1) >> 2); - png_bytep dp = row + (size_t)row_width - 1; - png_uint_32 shift = ((3U - ((row_width + 3U) & 0x03)) << 1); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0x03); - - if (shift == 6) - { - shift = 0; - sp--; - } - - else - shift += 2; - - dp--; - } - break; - } - - case 4: - { - png_bytep sp = row + (size_t)((row_width - 1) >> 1); - png_bytep dp = row + (size_t)row_width - 1; - png_uint_32 shift = ((1U - ((row_width + 1U) & 0x01)) << 2); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0x0f); - - if (shift == 4) - { - shift = 0; - sp--; - } - - else - shift = 4; - - dp--; - } - break; - } - - default: - break; - } - row_info->bit_depth = 8; - row_info->pixel_depth = (png_byte)(8 * row_info->channels); - row_info->rowbytes = row_width * row_info->channels; - } -} -#endif - -#ifdef PNG_READ_SHIFT_SUPPORTED -/* Reverse the effects of png_do_shift. This routine merely shifts the - * pixels back to their significant bits values. Thus, if you have - * a row of bit depth 8, but only 5 are significant, this will shift - * the values back to 0 through 31. - */ -static void -png_do_unshift(png_row_infop row_info, png_bytep row, - png_const_color_8p sig_bits) -{ - int color_type; - - png_debug(1, "in png_do_unshift"); - - /* The palette case has already been handled in the _init routine. */ - color_type = row_info->color_type; - - if (color_type != PNG_COLOR_TYPE_PALETTE) - { - int shift[4]; - int channels = 0; - int bit_depth = row_info->bit_depth; - - if ((color_type & PNG_COLOR_MASK_COLOR) != 0) - { - shift[channels++] = bit_depth - sig_bits->red; - shift[channels++] = bit_depth - sig_bits->green; - shift[channels++] = bit_depth - sig_bits->blue; - } - - else - { - shift[channels++] = bit_depth - sig_bits->gray; - } - - if ((color_type & PNG_COLOR_MASK_ALPHA) != 0) - { - shift[channels++] = bit_depth - sig_bits->alpha; - } - - { - int c, have_shift; - - for (c = have_shift = 0; c < channels; ++c) - { - /* A shift of more than the bit depth is an error condition but it - * gets ignored here. - */ - if (shift[c] <= 0 || shift[c] >= bit_depth) - shift[c] = 0; - - else - have_shift = 1; - } - - if (have_shift == 0) - return; - } - - switch (bit_depth) - { - default: - /* Must be 1bpp gray: should not be here! */ - /* NOTREACHED */ - break; - - case 2: - /* Must be 2bpp gray */ - /* assert(channels == 1 && shift[0] == 1) */ - { - png_bytep bp = row; - png_bytep bp_end = bp + row_info->rowbytes; - - while (bp < bp_end) - { - int b = (*bp >> 1) & 0x55; - *bp++ = (png_byte)b; - } - break; - } - - case 4: - /* Must be 4bpp gray */ - /* assert(channels == 1) */ - { - png_bytep bp = row; - png_bytep bp_end = bp + row_info->rowbytes; - int gray_shift = shift[0]; - int mask = 0xf >> gray_shift; - - mask |= mask << 4; - - while (bp < bp_end) - { - int b = (*bp >> gray_shift) & mask; - *bp++ = (png_byte)b; - } - break; - } - - case 8: - /* Single byte components, G, GA, RGB, RGBA */ - { - png_bytep bp = row; - png_bytep bp_end = bp + row_info->rowbytes; - int channel = 0; - - while (bp < bp_end) - { - int b = *bp >> shift[channel]; - if (++channel >= channels) - channel = 0; - *bp++ = (png_byte)b; - } - break; - } - -#ifdef PNG_READ_16BIT_SUPPORTED - case 16: - /* Double byte components, G, GA, RGB, RGBA */ - { - png_bytep bp = row; - png_bytep bp_end = bp + row_info->rowbytes; - int channel = 0; - - while (bp < bp_end) - { - int value = (bp[0] << 8) + bp[1]; - - value >>= shift[channel]; - if (++channel >= channels) - channel = 0; - *bp++ = (png_byte)(value >> 8); - *bp++ = (png_byte)value; - } - break; - } -#endif - } - } -} -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED -/* Scale rows of bit depth 16 down to 8 accurately */ -static void -png_do_scale_16_to_8(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_scale_16_to_8"); - - if (row_info->bit_depth == 16) - { - png_bytep sp = row; /* source */ - png_bytep dp = row; /* destination */ - png_bytep ep = sp + row_info->rowbytes; /* end+1 */ - - while (sp < ep) - { - /* The input is an array of 16-bit components, these must be scaled to - * 8 bits each. For a 16-bit value V the required value (from the PNG - * specification) is: - * - * (V * 255) / 65535 - * - * This reduces to round(V / 257), or floor((V + 128.5)/257) - * - * Represent V as the two byte value vhi.vlo. Make a guess that the - * result is the top byte of V, vhi, then the correction to this value - * is: - * - * error = floor(((V-vhi.vhi) + 128.5) / 257) - * = floor(((vlo-vhi) + 128.5) / 257) - * - * This can be approximated using integer arithmetic (and a signed - * shift): - * - * error = (vlo-vhi+128) >> 8; - * - * The approximate differs from the exact answer only when (vlo-vhi) is - * 128; it then gives a correction of +1 when the exact correction is - * 0. This gives 128 errors. The exact answer (correct for all 16-bit - * input values) is: - * - * error = (vlo-vhi+128)*65535 >> 24; - * - * An alternative arithmetic calculation which also gives no errors is: - * - * (V * 255 + 32895) >> 16 - */ - - png_int_32 tmp = *sp++; /* must be signed! */ - tmp += (((int)*sp++ - tmp + 128) * 65535) >> 24; - *dp++ = (png_byte)tmp; - } - - row_info->bit_depth = 8; - row_info->pixel_depth = (png_byte)(8 * row_info->channels); - row_info->rowbytes = row_info->width * row_info->channels; - } -} -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED -static void -/* Simply discard the low byte. This was the default behavior prior - * to libpng-1.5.4. - */ -png_do_chop(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_chop"); - - if (row_info->bit_depth == 16) - { - png_bytep sp = row; /* source */ - png_bytep dp = row; /* destination */ - png_bytep ep = sp + row_info->rowbytes; /* end+1 */ - - while (sp < ep) - { - *dp++ = *sp; - sp += 2; /* skip low byte */ - } - - row_info->bit_depth = 8; - row_info->pixel_depth = (png_byte)(8 * row_info->channels); - row_info->rowbytes = row_info->width * row_info->channels; - } -} -#endif - -#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED -static void -png_do_read_swap_alpha(png_row_infop row_info, png_bytep row) -{ - png_uint_32 row_width = row_info->width; - - png_debug(1, "in png_do_read_swap_alpha"); - - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - /* This converts from RGBA to ARGB */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save; - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - /* This converts from RRGGBBAA to AARRGGBB */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save[2]; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save[0] = *(--sp); - save[1] = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save[0]; - *(--dp) = save[1]; - } - } -#endif - } - - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - /* This converts from GA to AG */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save; - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - /* This converts from GGAA to AAGG */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save[2]; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save[0] = *(--sp); - save[1] = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save[0]; - *(--dp) = save[1]; - } - } -#endif - } -} -#endif - -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED -static void -png_do_read_invert_alpha(png_row_infop row_info, png_bytep row) -{ - png_uint_32 row_width; - png_debug(1, "in png_do_read_invert_alpha"); - - row_width = row_info->width; - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This inverts the alpha channel in RGBA */ - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = (png_byte)(255 - *(--sp)); - -/* This does nothing: - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - We can replace it with: -*/ - sp-=3; - dp=sp; - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - /* This inverts the alpha channel in RRGGBBAA */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = (png_byte)(255 - *(--sp)); - *(--dp) = (png_byte)(255 - *(--sp)); - -/* This does nothing: - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - We can replace it with: -*/ - sp-=6; - dp=sp; - } - } -#endif - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This inverts the alpha channel in GA */ - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = (png_byte)(255 - *(--sp)); - *(--dp) = *(--sp); - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - else - { - /* This inverts the alpha channel in GGAA */ - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = (png_byte)(255 - *(--sp)); - *(--dp) = (png_byte)(255 - *(--sp)); -/* - *(--dp) = *(--sp); - *(--dp) = *(--sp); -*/ - sp-=2; - dp=sp; - } - } -#endif - } -} -#endif - -#ifdef PNG_READ_FILLER_SUPPORTED -/* Add filler channel if we have RGB color */ -static void -png_do_read_filler(png_row_infop row_info, png_bytep row, - png_uint_32 filler, png_uint_32 flags) -{ - png_uint_32 i; - png_uint_32 row_width = row_info->width; - -#ifdef PNG_READ_16BIT_SUPPORTED - png_byte hi_filler = (png_byte)(filler>>8); -#endif - png_byte lo_filler = (png_byte)filler; - - png_debug(1, "in png_do_read_filler"); - - if ( - row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - if (row_info->bit_depth == 8) - { - if ((flags & PNG_FLAG_FILLER_AFTER) != 0) - { - /* This changes the data from G to GX */ - png_bytep sp = row + (size_t)row_width; - png_bytep dp = sp + (size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - row_info->channels = 2; - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - - else - { - /* This changes the data from G to XG */ - png_bytep sp = row + (size_t)row_width; - png_bytep dp = sp + (size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = lo_filler; - } - row_info->channels = 2; - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - else if (row_info->bit_depth == 16) - { - if ((flags & PNG_FLAG_FILLER_AFTER) != 0) - { - /* This changes the data from GG to GGXX */ - png_bytep sp = row + (size_t)row_width * 2; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = hi_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - *(--dp) = hi_filler; - row_info->channels = 2; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - - else - { - /* This changes the data from GG to XXGG */ - png_bytep sp = row + (size_t)row_width * 2; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = lo_filler; - *(--dp) = hi_filler; - } - row_info->channels = 2; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - } -#endif - } /* COLOR_TYPE == GRAY */ - else if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - if (row_info->bit_depth == 8) - { - if ((flags & PNG_FLAG_FILLER_AFTER) != 0) - { - /* This changes the data from RGB to RGBX */ - png_bytep sp = row + (size_t)row_width * 3; - png_bytep dp = sp + (size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - row_info->channels = 4; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - - else - { - /* This changes the data from RGB to XRGB */ - png_bytep sp = row + (size_t)row_width * 3; - png_bytep dp = sp + (size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = lo_filler; - } - row_info->channels = 4; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - } - -#ifdef PNG_READ_16BIT_SUPPORTED - else if (row_info->bit_depth == 16) - { - if ((flags & PNG_FLAG_FILLER_AFTER) != 0) - { - /* This changes the data from RRGGBB to RRGGBBXX */ - png_bytep sp = row + (size_t)row_width * 6; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = hi_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - *(--dp) = hi_filler; - row_info->channels = 4; - row_info->pixel_depth = 64; - row_info->rowbytes = row_width * 8; - } - - else - { - /* This changes the data from RRGGBB to XXRRGGBB */ - png_bytep sp = row + (size_t)row_width * 6; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = lo_filler; - *(--dp) = hi_filler; - } - - row_info->channels = 4; - row_info->pixel_depth = 64; - row_info->rowbytes = row_width * 8; - } - } -#endif - } /* COLOR_TYPE == RGB */ -} -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED -/* Expand grayscale files to RGB, with or without alpha */ -static void -png_do_gray_to_rgb(png_row_infop row_info, png_bytep row) -{ - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - png_debug(1, "in png_do_gray_to_rgb"); - - if (row_info->bit_depth >= 8 && - (row_info->color_type & PNG_COLOR_MASK_COLOR) == 0) - { - if (row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - if (row_info->bit_depth == 8) - { - /* This changes G to RGB */ - png_bytep sp = row + (size_t)row_width - 1; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(dp--) = *sp; - *(dp--) = *sp; - *(dp--) = *(sp--); - } - } - - else - { - /* This changes GG to RRGGBB */ - png_bytep sp = row + (size_t)row_width * 2 - 1; - png_bytep dp = sp + (size_t)row_width * 4; - for (i = 0; i < row_width; i++) - { - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *(sp--); - *(dp--) = *(sp--); - } - } - } - - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This changes GA to RGBA */ - png_bytep sp = row + (size_t)row_width * 2 - 1; - png_bytep dp = sp + (size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(dp--) = *(sp--); - *(dp--) = *sp; - *(dp--) = *sp; - *(dp--) = *(sp--); - } - } - - else - { - /* This changes GGAA to RRGGBBAA */ - png_bytep sp = row + (size_t)row_width * 4 - 1; - png_bytep dp = sp + (size_t)row_width * 4; - for (i = 0; i < row_width; i++) - { - *(dp--) = *(sp--); - *(dp--) = *(sp--); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *(sp--); - *(dp--) = *(sp--); - } - } - } - row_info->channels = (png_byte)(row_info->channels + 2); - row_info->color_type |= PNG_COLOR_MASK_COLOR; - row_info->pixel_depth = (png_byte)(row_info->channels * - row_info->bit_depth); - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); - } -} -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED -/* Reduce RGB files to grayscale, with or without alpha - * using the equation given in Poynton's ColorFAQ of 1998-01-04 at - * (THIS LINK IS DEAD June 2008 but - * versions dated 1998 through November 2002 have been archived at - * https://web.archive.org/web/20000816232553/www.inforamp.net/ - * ~poynton/notes/colour_and_gamma/ColorFAQ.txt ) - * Charles Poynton poynton at poynton.com - * - * Y = 0.212671 * R + 0.715160 * G + 0.072169 * B - * - * which can be expressed with integers as - * - * Y = (6969 * R + 23434 * G + 2365 * B)/32768 - * - * Poynton's current link (as of January 2003 through July 2011): - * - * has changed the numbers slightly: - * - * Y = 0.2126*R + 0.7152*G + 0.0722*B - * - * which can be expressed with integers as - * - * Y = (6966 * R + 23436 * G + 2366 * B)/32768 - * - * Historically, however, libpng uses numbers derived from the ITU-R Rec 709 - * end point chromaticities and the D65 white point. Depending on the - * precision used for the D65 white point this produces a variety of different - * numbers, however if the four decimal place value used in ITU-R Rec 709 is - * used (0.3127,0.3290) the Y calculation would be: - * - * Y = (6968 * R + 23435 * G + 2366 * B)/32768 - * - * While this is correct the rounding results in an overflow for white, because - * the sum of the rounded coefficients is 32769, not 32768. Consequently - * libpng uses, instead, the closest non-overflowing approximation: - * - * Y = (6968 * R + 23434 * G + 2366 * B)/32768 - * - * Starting with libpng-1.5.5, if the image being converted has a cHRM chunk - * (including an sRGB chunk) then the chromaticities are used to calculate the - * coefficients. See the chunk handling in pngrutil.c for more information. - * - * In all cases the calculation is to be done in a linear colorspace. If no - * gamma information is available to correct the encoding of the original RGB - * values this results in an implicit assumption that the original PNG RGB - * values were linear. - * - * Other integer coefficients can be used via png_set_rgb_to_gray(). Because - * the API takes just red and green coefficients the blue coefficient is - * calculated to make the sum 32768. This will result in different rounding - * to that used above. - */ -static int -png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row) -{ - int rgb_error = 0; - - png_debug(1, "in png_do_rgb_to_gray"); - - if ((row_info->color_type & PNG_COLOR_MASK_PALETTE) == 0 && - (row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff; - png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff; - png_uint_32 bc = 32768 - rc - gc; - png_uint_32 row_width = row_info->width; - int have_alpha = (row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0; - - if (row_info->bit_depth == 8) - { -#ifdef PNG_READ_GAMMA_SUPPORTED - /* Notice that gamma to/from 1 are not necessarily inverses (if - * there is an overall gamma correction). Prior to 1.5.5 this code - * checked the linearized values for equality; this doesn't match - * the documentation, the original values must be checked. - */ - if (png_ptr->gamma_from_1 != NULL && png_ptr->gamma_to_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - png_byte red = *(sp++); - png_byte green = *(sp++); - png_byte blue = *(sp++); - - if (red != green || red != blue) - { - red = png_ptr->gamma_to_1[red]; - green = png_ptr->gamma_to_1[green]; - blue = png_ptr->gamma_to_1[blue]; - - rgb_error |= 1; - *(dp++) = png_ptr->gamma_from_1[ - (rc*red + gc*green + bc*blue + 16384)>>15]; - } - - else - { - /* If there is no overall correction the table will not be - * set. - */ - if (png_ptr->gamma_table != NULL) - red = png_ptr->gamma_table[red]; - - *(dp++) = red; - } - - if (have_alpha != 0) - *(dp++) = *(sp++); - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - png_byte red = *(sp++); - png_byte green = *(sp++); - png_byte blue = *(sp++); - - if (red != green || red != blue) - { - rgb_error |= 1; - /* NOTE: this is the historical approach which simply - * truncates the results. - */ - *(dp++) = (png_byte)((rc*red + gc*green + bc*blue)>>15); - } - - else - *(dp++) = red; - - if (have_alpha != 0) - *(dp++) = *(sp++); - } - } - } - - else /* RGB bit_depth == 16 */ - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (png_ptr->gamma_16_to_1 != NULL && png_ptr->gamma_16_from_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, w; - png_byte hi,lo; - - hi=*(sp)++; lo=*(sp)++; red = (png_uint_16)((hi << 8) | (lo)); - hi=*(sp)++; lo=*(sp)++; green = (png_uint_16)((hi << 8) | (lo)); - hi=*(sp)++; lo=*(sp)++; blue = (png_uint_16)((hi << 8) | (lo)); - - if (red == green && red == blue) - { - if (png_ptr->gamma_16_table != NULL) - w = png_ptr->gamma_16_table[(red & 0xff) - >> png_ptr->gamma_shift][red >> 8]; - - else - w = red; - } - - else - { - png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red & 0xff) - >> png_ptr->gamma_shift][red>>8]; - png_uint_16 green_1 = - png_ptr->gamma_16_to_1[(green & 0xff) >> - png_ptr->gamma_shift][green>>8]; - png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue & 0xff) - >> png_ptr->gamma_shift][blue>>8]; - png_uint_16 gray16 = (png_uint_16)((rc*red_1 + gc*green_1 - + bc*blue_1 + 16384)>>15); - w = png_ptr->gamma_16_from_1[(gray16 & 0xff) >> - png_ptr->gamma_shift][gray16 >> 8]; - rgb_error |= 1; - } - - *(dp++) = (png_byte)((w>>8) & 0xff); - *(dp++) = (png_byte)(w & 0xff); - - if (have_alpha != 0) - { - *(dp++) = *(sp++); - *(dp++) = *(sp++); - } - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, gray16; - png_byte hi,lo; - - hi=*(sp)++; lo=*(sp)++; red = (png_uint_16)((hi << 8) | (lo)); - hi=*(sp)++; lo=*(sp)++; green = (png_uint_16)((hi << 8) | (lo)); - hi=*(sp)++; lo=*(sp)++; blue = (png_uint_16)((hi << 8) | (lo)); - - if (red != green || red != blue) - rgb_error |= 1; - - /* From 1.5.5 in the 16-bit case do the accurate conversion even - * in the 'fast' case - this is because this is where the code - * ends up when handling linear 16-bit data. - */ - gray16 = (png_uint_16)((rc*red + gc*green + bc*blue + 16384) >> - 15); - *(dp++) = (png_byte)((gray16 >> 8) & 0xff); - *(dp++) = (png_byte)(gray16 & 0xff); - - if (have_alpha != 0) - { - *(dp++) = *(sp++); - *(dp++) = *(sp++); - } - } - } - } - - row_info->channels = (png_byte)(row_info->channels - 2); - row_info->color_type = (png_byte)(row_info->color_type & - ~PNG_COLOR_MASK_COLOR); - row_info->pixel_depth = (png_byte)(row_info->channels * - row_info->bit_depth); - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); - } - return rgb_error; -} -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) -/* Replace any alpha or transparency with the supplied background color. - * "background" is already in the screen gamma, while "background_1" is - * at a gamma of 1.0. Paletted files have already been taken care of. - */ -static void -png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr) -{ -#ifdef PNG_READ_GAMMA_SUPPORTED - png_const_bytep gamma_table = png_ptr->gamma_table; - png_const_bytep gamma_from_1 = png_ptr->gamma_from_1; - png_const_bytep gamma_to_1 = png_ptr->gamma_to_1; - png_const_uint_16pp gamma_16 = png_ptr->gamma_16_table; - png_const_uint_16pp gamma_16_from_1 = png_ptr->gamma_16_from_1; - png_const_uint_16pp gamma_16_to_1 = png_ptr->gamma_16_to_1; - int gamma_shift = png_ptr->gamma_shift; - int optimize = (png_ptr->flags & PNG_FLAG_OPTIMIZE_ALPHA) != 0; -#endif - - png_bytep sp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - int shift; - - png_debug(1, "in png_do_compose"); - - switch (row_info->color_type) - { - case PNG_COLOR_TYPE_GRAY: - { - switch (row_info->bit_depth) - { - case 1: - { - sp = row; - shift = 7; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x01) - == png_ptr->trans_color.gray) - { - unsigned int tmp = *sp & (0x7f7f >> (7 - shift)); - tmp |= - (unsigned int)(png_ptr->background.gray << shift); - *sp = (png_byte)(tmp & 0xff); - } - - if (shift == 0) - { - shift = 7; - sp++; - } - - else - shift--; - } - break; - } - - case 2: - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_table != NULL) - { - sp = row; - shift = 6; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x03) - == png_ptr->trans_color.gray) - { - unsigned int tmp = *sp & (0x3f3f >> (6 - shift)); - tmp |= - (unsigned int)png_ptr->background.gray << shift; - *sp = (png_byte)(tmp & 0xff); - } - - else - { - unsigned int p = (*sp >> shift) & 0x03; - unsigned int g = (gamma_table [p | (p << 2) | - (p << 4) | (p << 6)] >> 6) & 0x03; - unsigned int tmp = *sp & (0x3f3f >> (6 - shift)); - tmp |= (unsigned int)(g << shift); - *sp = (png_byte)(tmp & 0xff); - } - - if (shift == 0) - { - shift = 6; - sp++; - } - - else - shift -= 2; - } - } - - else -#endif - { - sp = row; - shift = 6; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x03) - == png_ptr->trans_color.gray) - { - unsigned int tmp = *sp & (0x3f3f >> (6 - shift)); - tmp |= - (unsigned int)png_ptr->background.gray << shift; - *sp = (png_byte)(tmp & 0xff); - } - - if (shift == 0) - { - shift = 6; - sp++; - } - - else - shift -= 2; - } - } - break; - } - - case 4: - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_table != NULL) - { - sp = row; - shift = 4; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x0f) - == png_ptr->trans_color.gray) - { - unsigned int tmp = *sp & (0x0f0f >> (4 - shift)); - tmp |= - (unsigned int)(png_ptr->background.gray << shift); - *sp = (png_byte)(tmp & 0xff); - } - - else - { - unsigned int p = (*sp >> shift) & 0x0f; - unsigned int g = (gamma_table[p | (p << 4)] >> 4) & - 0x0f; - unsigned int tmp = *sp & (0x0f0f >> (4 - shift)); - tmp |= (unsigned int)(g << shift); - *sp = (png_byte)(tmp & 0xff); - } - - if (shift == 0) - { - shift = 4; - sp++; - } - - else - shift -= 4; - } - } - - else -#endif - { - sp = row; - shift = 4; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x0f) - == png_ptr->trans_color.gray) - { - unsigned int tmp = *sp & (0x0f0f >> (4 - shift)); - tmp |= - (unsigned int)(png_ptr->background.gray << shift); - *sp = (png_byte)(tmp & 0xff); - } - - if (shift == 0) - { - shift = 4; - sp++; - } - - else - shift -= 4; - } - } - break; - } - - case 8: - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp++) - { - if (*sp == png_ptr->trans_color.gray) - *sp = (png_byte)png_ptr->background.gray; - - else - *sp = gamma_table[*sp]; - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp++) - { - if (*sp == png_ptr->trans_color.gray) - *sp = (png_byte)png_ptr->background.gray; - } - } - break; - } - - case 16: - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_16 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_uint_16 v; - - v = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - - if (v == png_ptr->trans_color.gray) - { - /* Background is already in screen gamma */ - *sp = (png_byte)((png_ptr->background.gray >> 8) - & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.gray - & 0xff); - } - - else - { - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_uint_16 v; - - v = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - - if (v == png_ptr->trans_color.gray) - { - *sp = (png_byte)((png_ptr->background.gray >> 8) - & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.gray - & 0xff); - } - } - } - break; - } - - default: - break; - } - break; - } - - case PNG_COLOR_TYPE_RGB: - { - if (row_info->bit_depth == 8) - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 3) - { - if (*sp == png_ptr->trans_color.red && - *(sp + 1) == png_ptr->trans_color.green && - *(sp + 2) == png_ptr->trans_color.blue) - { - *sp = (png_byte)png_ptr->background.red; - *(sp + 1) = (png_byte)png_ptr->background.green; - *(sp + 2) = (png_byte)png_ptr->background.blue; - } - - else - { - *sp = gamma_table[*sp]; - *(sp + 1) = gamma_table[*(sp + 1)]; - *(sp + 2) = gamma_table[*(sp + 2)]; - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 3) - { - if (*sp == png_ptr->trans_color.red && - *(sp + 1) == png_ptr->trans_color.green && - *(sp + 2) == png_ptr->trans_color.blue) - { - *sp = (png_byte)png_ptr->background.red; - *(sp + 1) = (png_byte)png_ptr->background.green; - *(sp + 2) = (png_byte)png_ptr->background.blue; - } - } - } - } - else /* if (row_info->bit_depth == 16) */ - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_16 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 6) - { - png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - - png_uint_16 g = (png_uint_16)(((*(sp + 2)) << 8) - + *(sp + 3)); - - png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8) - + *(sp + 5)); - - if (r == png_ptr->trans_color.red && - g == png_ptr->trans_color.green && - b == png_ptr->trans_color.blue) - { - /* Background is already in screen gamma */ - *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); - *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) - & 0xff); - *(sp + 3) = (png_byte)(png_ptr->background.green - & 0xff); - *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) - & 0xff); - *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); - } - - else - { - png_uint_16 v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - - v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)]; - *(sp + 2) = (png_byte)((v >> 8) & 0xff); - *(sp + 3) = (png_byte)(v & 0xff); - - v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)]; - *(sp + 4) = (png_byte)((v >> 8) & 0xff); - *(sp + 5) = (png_byte)(v & 0xff); - } - } - } - - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 6) - { - png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - - png_uint_16 g = (png_uint_16)(((*(sp + 2)) << 8) - + *(sp + 3)); - - png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8) - + *(sp + 5)); - - if (r == png_ptr->trans_color.red && - g == png_ptr->trans_color.green && - b == png_ptr->trans_color.blue) - { - *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); - *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) - & 0xff); - *(sp + 3) = (png_byte)(png_ptr->background.green - & 0xff); - *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) - & 0xff); - *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); - } - } - } - } - break; - } - - case PNG_COLOR_TYPE_GRAY_ALPHA: - { - if (row_info->bit_depth == 8) - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_to_1 != NULL && gamma_from_1 != NULL && - gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_uint_16 a = *(sp + 1); - - if (a == 0xff) - *sp = gamma_table[*sp]; - - else if (a == 0) - { - /* Background is already in screen gamma */ - *sp = (png_byte)png_ptr->background.gray; - } - - else - { - png_byte v, w; - - v = gamma_to_1[*sp]; - png_composite(w, v, a, png_ptr->background_1.gray); - if (optimize == 0) - w = gamma_from_1[w]; - *sp = w; - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_byte a = *(sp + 1); - - if (a == 0) - *sp = (png_byte)png_ptr->background.gray; - - else if (a < 0xff) - png_composite(*sp, *sp, a, png_ptr->background.gray); - } - } - } - else /* if (png_ptr->bit_depth == 16) */ - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_16 != NULL && gamma_16_from_1 != NULL && - gamma_16_to_1 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 4) - { - png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8) - + *(sp + 3)); - - if (a == (png_uint_16)0xffff) - { - png_uint_16 v; - - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - } - - else if (a == 0) - { - /* Background is already in screen gamma */ - *sp = (png_byte)((png_ptr->background.gray >> 8) - & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); - } - - else - { - png_uint_16 g, v, w; - - g = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp]; - png_composite_16(v, g, a, png_ptr->background_1.gray); - if (optimize != 0) - w = v; - else - w = gamma_16_from_1[(v & 0xff) >> - gamma_shift][v >> 8]; - *sp = (png_byte)((w >> 8) & 0xff); - *(sp + 1) = (png_byte)(w & 0xff); - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 4) - { - png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8) - + *(sp + 3)); - - if (a == 0) - { - *sp = (png_byte)((png_ptr->background.gray >> 8) - & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); - } - - else if (a < 0xffff) - { - png_uint_16 g, v; - - g = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - png_composite_16(v, g, a, png_ptr->background.gray); - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - } - } - } - } - break; - } - - case PNG_COLOR_TYPE_RGB_ALPHA: - { - if (row_info->bit_depth == 8) - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_to_1 != NULL && gamma_from_1 != NULL && - gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 4) - { - png_byte a = *(sp + 3); - - if (a == 0xff) - { - *sp = gamma_table[*sp]; - *(sp + 1) = gamma_table[*(sp + 1)]; - *(sp + 2) = gamma_table[*(sp + 2)]; - } - - else if (a == 0) - { - /* Background is already in screen gamma */ - *sp = (png_byte)png_ptr->background.red; - *(sp + 1) = (png_byte)png_ptr->background.green; - *(sp + 2) = (png_byte)png_ptr->background.blue; - } - - else - { - png_byte v, w; - - v = gamma_to_1[*sp]; - png_composite(w, v, a, png_ptr->background_1.red); - if (optimize == 0) w = gamma_from_1[w]; - *sp = w; - - v = gamma_to_1[*(sp + 1)]; - png_composite(w, v, a, png_ptr->background_1.green); - if (optimize == 0) w = gamma_from_1[w]; - *(sp + 1) = w; - - v = gamma_to_1[*(sp + 2)]; - png_composite(w, v, a, png_ptr->background_1.blue); - if (optimize == 0) w = gamma_from_1[w]; - *(sp + 2) = w; - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 4) - { - png_byte a = *(sp + 3); - - if (a == 0) - { - *sp = (png_byte)png_ptr->background.red; - *(sp + 1) = (png_byte)png_ptr->background.green; - *(sp + 2) = (png_byte)png_ptr->background.blue; - } - - else if (a < 0xff) - { - png_composite(*sp, *sp, a, png_ptr->background.red); - - png_composite(*(sp + 1), *(sp + 1), a, - png_ptr->background.green); - - png_composite(*(sp + 2), *(sp + 2), a, - png_ptr->background.blue); - } - } - } - } - else /* if (row_info->bit_depth == 16) */ - { -#ifdef PNG_READ_GAMMA_SUPPORTED - if (gamma_16 != NULL && gamma_16_from_1 != NULL && - gamma_16_to_1 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 8) - { - png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6)) - << 8) + (png_uint_16)(*(sp + 7))); - - if (a == (png_uint_16)0xffff) - { - png_uint_16 v; - - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - - v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)]; - *(sp + 2) = (png_byte)((v >> 8) & 0xff); - *(sp + 3) = (png_byte)(v & 0xff); - - v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)]; - *(sp + 4) = (png_byte)((v >> 8) & 0xff); - *(sp + 5) = (png_byte)(v & 0xff); - } - - else if (a == 0) - { - /* Background is already in screen gamma */ - *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); - *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) - & 0xff); - *(sp + 3) = (png_byte)(png_ptr->background.green - & 0xff); - *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) - & 0xff); - *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); - } - - else - { - png_uint_16 v, w; - - v = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp]; - png_composite_16(w, v, a, png_ptr->background_1.red); - if (optimize == 0) - w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >> - 8]; - *sp = (png_byte)((w >> 8) & 0xff); - *(sp + 1) = (png_byte)(w & 0xff); - - v = gamma_16_to_1[*(sp + 3) >> gamma_shift][*(sp + 2)]; - png_composite_16(w, v, a, png_ptr->background_1.green); - if (optimize == 0) - w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >> - 8]; - - *(sp + 2) = (png_byte)((w >> 8) & 0xff); - *(sp + 3) = (png_byte)(w & 0xff); - - v = gamma_16_to_1[*(sp + 5) >> gamma_shift][*(sp + 4)]; - png_composite_16(w, v, a, png_ptr->background_1.blue); - if (optimize == 0) - w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >> - 8]; - - *(sp + 4) = (png_byte)((w >> 8) & 0xff); - *(sp + 5) = (png_byte)(w & 0xff); - } - } - } - - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 8) - { - png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6)) - << 8) + (png_uint_16)(*(sp + 7))); - - if (a == 0) - { - *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); - *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); - *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) - & 0xff); - *(sp + 3) = (png_byte)(png_ptr->background.green - & 0xff); - *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) - & 0xff); - *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); - } - - else if (a < 0xffff) - { - png_uint_16 v; - - png_uint_16 r = (png_uint_16)(((*sp) << 8) + *(sp + 1)); - png_uint_16 g = (png_uint_16)(((*(sp + 2)) << 8) - + *(sp + 3)); - png_uint_16 b = (png_uint_16)(((*(sp + 4)) << 8) - + *(sp + 5)); - - png_composite_16(v, r, a, png_ptr->background.red); - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - - png_composite_16(v, g, a, png_ptr->background.green); - *(sp + 2) = (png_byte)((v >> 8) & 0xff); - *(sp + 3) = (png_byte)(v & 0xff); - - png_composite_16(v, b, a, png_ptr->background.blue); - *(sp + 4) = (png_byte)((v >> 8) & 0xff); - *(sp + 5) = (png_byte)(v & 0xff); - } - } - } - } - break; - } - - default: - break; - } -} -#endif /* READ_BACKGROUND || READ_ALPHA_MODE */ - -#ifdef PNG_READ_GAMMA_SUPPORTED -/* Gamma correct the image, avoiding the alpha channel. Make sure - * you do this after you deal with the transparency issue on grayscale - * or RGB images. If your bit depth is 8, use gamma_table, if it - * is 16, use gamma_16_table and gamma_shift. Build these with - * build_gamma_table(). - */ -static void -png_do_gamma(png_row_infop row_info, png_bytep row, png_structrp png_ptr) -{ - png_const_bytep gamma_table = png_ptr->gamma_table; - png_const_uint_16pp gamma_16_table = png_ptr->gamma_16_table; - int gamma_shift = png_ptr->gamma_shift; - - png_bytep sp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_gamma"); - - if (((row_info->bit_depth <= 8 && gamma_table != NULL) || - (row_info->bit_depth == 16 && gamma_16_table != NULL))) - { - switch (row_info->color_type) - { - case PNG_COLOR_TYPE_RGB: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - } - } - - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - } - } - break; - } - - case PNG_COLOR_TYPE_RGB_ALPHA: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - - *sp = gamma_table[*sp]; - sp++; - - *sp = gamma_table[*sp]; - sp++; - - sp++; - } - } - - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 4; - } - } - break; - } - - case PNG_COLOR_TYPE_GRAY_ALPHA: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp += 2; - } - } - - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 4; - } - } - break; - } - - case PNG_COLOR_TYPE_GRAY: - { - if (row_info->bit_depth == 2) - { - sp = row; - for (i = 0; i < row_width; i += 4) - { - int a = *sp & 0xc0; - int b = *sp & 0x30; - int c = *sp & 0x0c; - int d = *sp & 0x03; - - *sp = (png_byte)( - ((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)]) ) & 0xc0)| - ((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)| - ((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)| - ((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) )); - sp++; - } - } - - if (row_info->bit_depth == 4) - { - sp = row; - for (i = 0; i < row_width; i += 2) - { - int msb = *sp & 0xf0; - int lsb = *sp & 0x0f; - - *sp = (png_byte)((((int)gamma_table[msb | (msb >> 4)]) & 0xf0) - | (((int)gamma_table[(lsb << 4) | lsb]) >> 4)); - sp++; - } - } - - else if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - } - } - - else if (row_info->bit_depth == 16) - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - } - } - break; - } - - default: - break; - } - } -} -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED -/* Encode the alpha channel to the output gamma (the input channel is always - * linear.) Called only with color types that have an alpha channel. Needs the - * from_1 tables. - */ -static void -png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) -{ - png_uint_32 row_width = row_info->width; - - png_debug(1, "in png_do_encode_alpha"); - - if ((row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0) - { - if (row_info->bit_depth == 8) - { - png_bytep table = png_ptr->gamma_from_1; - - if (table != NULL) - { - int step = (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 4 : 2; - - /* The alpha channel is the last component: */ - row += step - 1; - - for (; row_width > 0; --row_width, row += step) - *row = table[*row]; - - return; - } - } - - else if (row_info->bit_depth == 16) - { - png_uint_16pp table = png_ptr->gamma_16_from_1; - int gamma_shift = png_ptr->gamma_shift; - - if (table != NULL) - { - int step = (row_info->color_type & PNG_COLOR_MASK_COLOR) ? 8 : 4; - - /* The alpha channel is the last component: */ - row += step - 2; - - for (; row_width > 0; --row_width, row += step) - { - png_uint_16 v; - - v = table[*(row + 1) >> gamma_shift][*row]; - *row = (png_byte)((v >> 8) & 0xff); - *(row + 1) = (png_byte)(v & 0xff); - } - - return; - } - } - } - - /* Only get to here if called with a weird row_info; no harm has been done, - * so just issue a warning. - */ - png_warning(png_ptr, "png_do_encode_alpha: unexpected call"); -} -#endif - -#ifdef PNG_READ_EXPAND_SUPPORTED -/* Expands a palette row to an RGB or RGBA row depending - * upon whether you supply trans and num_trans. - */ -static void -png_do_expand_palette(png_structrp png_ptr, png_row_infop row_info, - png_bytep row, png_const_colorp palette, png_const_bytep trans_alpha, - int num_trans) -{ - int shift, value; - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_expand_palette"); - - if (row_info->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (row_info->bit_depth < 8) - { - switch (row_info->bit_depth) - { - case 1: - { - sp = row + (size_t)((row_width - 1) >> 3); - dp = row + (size_t)row_width - 1; - shift = 7 - (int)((row_width + 7) & 0x07); - for (i = 0; i < row_width; i++) - { - if ((*sp >> shift) & 0x01) - *dp = 1; - - else - *dp = 0; - - if (shift == 7) - { - shift = 0; - sp--; - } - - else - shift++; - - dp--; - } - break; - } - - case 2: - { - sp = row + (size_t)((row_width - 1) >> 2); - dp = row + (size_t)row_width - 1; - shift = (int)((3 - ((row_width + 3) & 0x03)) << 1); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x03; - *dp = (png_byte)value; - if (shift == 6) - { - shift = 0; - sp--; - } - - else - shift += 2; - - dp--; - } - break; - } - - case 4: - { - sp = row + (size_t)((row_width - 1) >> 1); - dp = row + (size_t)row_width - 1; - shift = (int)((row_width & 0x01) << 2); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x0f; - *dp = (png_byte)value; - if (shift == 4) - { - shift = 0; - sp--; - } - - else - shift += 4; - - dp--; - } - break; - } - - default: - break; - } - row_info->bit_depth = 8; - row_info->pixel_depth = 8; - row_info->rowbytes = row_width; - } - - if (row_info->bit_depth == 8) - { - { - if (num_trans > 0) - { - sp = row + (size_t)row_width - 1; - dp = row + ((size_t)row_width << 2) - 1; - - i = 0; -#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE - if (png_ptr->riffled_palette != NULL) - { - /* The RGBA optimization works with png_ptr->bit_depth == 8 - * but sometimes row_info->bit_depth has been changed to 8. - * In these cases, the palette hasn't been riffled. - */ - i = png_do_expand_palette_rgba8_neon(png_ptr, row_info, row, - &sp, &dp); - } -#else - PNG_UNUSED(png_ptr) -#endif - - for (; i < row_width; i++) - { - if ((int)(*sp) >= num_trans) - *dp-- = 0xff; - else - *dp-- = trans_alpha[*sp]; - *dp-- = palette[*sp].blue; - *dp-- = palette[*sp].green; - *dp-- = palette[*sp].red; - sp--; - } - row_info->bit_depth = 8; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - row_info->color_type = 6; - row_info->channels = 4; - } - - else - { - sp = row + (size_t)row_width - 1; - dp = row + (size_t)(row_width * 3) - 1; - i = 0; -#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE - i = png_do_expand_palette_rgb8_neon(png_ptr, row_info, row, - &sp, &dp); -#else - PNG_UNUSED(png_ptr) -#endif - - for (; i < row_width; i++) - { - *dp-- = palette[*sp].blue; - *dp-- = palette[*sp].green; - *dp-- = palette[*sp].red; - sp--; - } - - row_info->bit_depth = 8; - row_info->pixel_depth = 24; - row_info->rowbytes = row_width * 3; - row_info->color_type = 2; - row_info->channels = 3; - } - } - } - } -} - -/* If the bit depth < 8, it is expanded to 8. Also, if the already - * expanded transparency value is supplied, an alpha channel is built. - */ -static void -png_do_expand(png_row_infop row_info, png_bytep row, - png_const_color_16p trans_color) -{ - int shift, value; - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_expand"); - - if (row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - unsigned int gray = trans_color != NULL ? trans_color->gray : 0; - - if (row_info->bit_depth < 8) - { - switch (row_info->bit_depth) - { - case 1: - { - gray = (gray & 0x01) * 0xff; - sp = row + (size_t)((row_width - 1) >> 3); - dp = row + (size_t)row_width - 1; - shift = 7 - (int)((row_width + 7) & 0x07); - for (i = 0; i < row_width; i++) - { - if ((*sp >> shift) & 0x01) - *dp = 0xff; - - else - *dp = 0; - - if (shift == 7) - { - shift = 0; - sp--; - } - - else - shift++; - - dp--; - } - break; - } - - case 2: - { - gray = (gray & 0x03) * 0x55; - sp = row + (size_t)((row_width - 1) >> 2); - dp = row + (size_t)row_width - 1; - shift = (int)((3 - ((row_width + 3) & 0x03)) << 1); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x03; - *dp = (png_byte)(value | (value << 2) | (value << 4) | - (value << 6)); - if (shift == 6) - { - shift = 0; - sp--; - } - - else - shift += 2; - - dp--; - } - break; - } - - case 4: - { - gray = (gray & 0x0f) * 0x11; - sp = row + (size_t)((row_width - 1) >> 1); - dp = row + (size_t)row_width - 1; - shift = (int)((1 - ((row_width + 1) & 0x01)) << 2); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x0f; - *dp = (png_byte)(value | (value << 4)); - if (shift == 4) - { - shift = 0; - sp--; - } - - else - shift = 4; - - dp--; - } - break; - } - - default: - break; - } - - row_info->bit_depth = 8; - row_info->pixel_depth = 8; - row_info->rowbytes = row_width; - } - - if (trans_color != NULL) - { - if (row_info->bit_depth == 8) - { - gray = gray & 0xff; - sp = row + (size_t)row_width - 1; - dp = row + ((size_t)row_width << 1) - 1; - - for (i = 0; i < row_width; i++) - { - if ((*sp & 0xffU) == gray) - *dp-- = 0; - - else - *dp-- = 0xff; - - *dp-- = *sp--; - } - } - - else if (row_info->bit_depth == 16) - { - unsigned int gray_high = (gray >> 8) & 0xff; - unsigned int gray_low = gray & 0xff; - sp = row + row_info->rowbytes - 1; - dp = row + (row_info->rowbytes << 1) - 1; - for (i = 0; i < row_width; i++) - { - if ((*(sp - 1) & 0xffU) == gray_high && - (*(sp) & 0xffU) == gray_low) - { - *dp-- = 0; - *dp-- = 0; - } - - else - { - *dp-- = 0xff; - *dp-- = 0xff; - } - - *dp-- = *sp--; - *dp-- = *sp--; - } - } - - row_info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; - row_info->channels = 2; - row_info->pixel_depth = (png_byte)(row_info->bit_depth << 1); - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, - row_width); - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_RGB && - trans_color != NULL) - { - if (row_info->bit_depth == 8) - { - png_byte red = (png_byte)(trans_color->red & 0xff); - png_byte green = (png_byte)(trans_color->green & 0xff); - png_byte blue = (png_byte)(trans_color->blue & 0xff); - sp = row + (size_t)row_info->rowbytes - 1; - dp = row + ((size_t)row_width << 2) - 1; - for (i = 0; i < row_width; i++) - { - if (*(sp - 2) == red && *(sp - 1) == green && *(sp) == blue) - *dp-- = 0; - - else - *dp-- = 0xff; - - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - } - } - else if (row_info->bit_depth == 16) - { - png_byte red_high = (png_byte)((trans_color->red >> 8) & 0xff); - png_byte green_high = (png_byte)((trans_color->green >> 8) & 0xff); - png_byte blue_high = (png_byte)((trans_color->blue >> 8) & 0xff); - png_byte red_low = (png_byte)(trans_color->red & 0xff); - png_byte green_low = (png_byte)(trans_color->green & 0xff); - png_byte blue_low = (png_byte)(trans_color->blue & 0xff); - sp = row + row_info->rowbytes - 1; - dp = row + ((size_t)row_width << 3) - 1; - for (i = 0; i < row_width; i++) - { - if (*(sp - 5) == red_high && - *(sp - 4) == red_low && - *(sp - 3) == green_high && - *(sp - 2) == green_low && - *(sp - 1) == blue_high && - *(sp ) == blue_low) - { - *dp-- = 0; - *dp-- = 0; - } - - else - { - *dp-- = 0xff; - *dp-- = 0xff; - } - - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - } - } - row_info->color_type = PNG_COLOR_TYPE_RGB_ALPHA; - row_info->channels = 4; - row_info->pixel_depth = (png_byte)(row_info->bit_depth << 2); - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); - } -} -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED -/* If the bit depth is 8 and the color type is not a palette type expand the - * whole row to 16 bits. Has no effect otherwise. - */ -static void -png_do_expand_16(png_row_infop row_info, png_bytep row) -{ - if (row_info->bit_depth == 8 && - row_info->color_type != PNG_COLOR_TYPE_PALETTE) - { - /* The row have a sequence of bytes containing [0..255] and we need - * to turn it into another row containing [0..65535], to do this we - * calculate: - * - * (input / 255) * 65535 - * - * Which happens to be exactly input * 257 and this can be achieved - * simply by byte replication in place (copying backwards). - */ - png_byte *sp = row + row_info->rowbytes; /* source, last byte + 1 */ - png_byte *dp = sp + row_info->rowbytes; /* destination, end + 1 */ - while (dp > sp) - { - dp[-2] = dp[-1] = *--sp; dp -= 2; - } - - row_info->rowbytes *= 2; - row_info->bit_depth = 16; - row_info->pixel_depth = (png_byte)(row_info->channels * 16); - } -} -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -static void -png_do_quantize(png_row_infop row_info, png_bytep row, - png_const_bytep palette_lookup, png_const_bytep quantize_lookup) -{ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_quantize"); - - if (row_info->bit_depth == 8) - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB && palette_lookup) - { - int r, g, b, p; - sp = row; - dp = row; - for (i = 0; i < row_width; i++) - { - r = *sp++; - g = *sp++; - b = *sp++; - - /* This looks real messy, but the compiler will reduce - * it down to a reasonable formula. For example, with - * 5 bits per color, we get: - * p = (((r >> 3) & 0x1f) << 10) | - * (((g >> 3) & 0x1f) << 5) | - * ((b >> 3) & 0x1f); - */ - p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) & - ((1 << PNG_QUANTIZE_RED_BITS) - 1)) << - (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) | - (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) & - ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) << - (PNG_QUANTIZE_BLUE_BITS)) | - ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) & - ((1 << PNG_QUANTIZE_BLUE_BITS) - 1)); - - *dp++ = palette_lookup[p]; - } - - row_info->color_type = PNG_COLOR_TYPE_PALETTE; - row_info->channels = 1; - row_info->pixel_depth = row_info->bit_depth; - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); - } - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA && - palette_lookup != NULL) - { - int r, g, b, p; - sp = row; - dp = row; - for (i = 0; i < row_width; i++) - { - r = *sp++; - g = *sp++; - b = *sp++; - sp++; - - p = (((r >> (8 - PNG_QUANTIZE_RED_BITS)) & - ((1 << PNG_QUANTIZE_RED_BITS) - 1)) << - (PNG_QUANTIZE_GREEN_BITS + PNG_QUANTIZE_BLUE_BITS)) | - (((g >> (8 - PNG_QUANTIZE_GREEN_BITS)) & - ((1 << PNG_QUANTIZE_GREEN_BITS) - 1)) << - (PNG_QUANTIZE_BLUE_BITS)) | - ((b >> (8 - PNG_QUANTIZE_BLUE_BITS)) & - ((1 << PNG_QUANTIZE_BLUE_BITS) - 1)); - - *dp++ = palette_lookup[p]; - } - - row_info->color_type = PNG_COLOR_TYPE_PALETTE; - row_info->channels = 1; - row_info->pixel_depth = row_info->bit_depth; - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_width); - } - - else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE && - quantize_lookup) - { - sp = row; - - for (i = 0; i < row_width; i++, sp++) - { - *sp = quantize_lookup[*sp]; - } - } - } -} -#endif /* READ_QUANTIZE */ - -/* Transform the row. The order of transformations is significant, - * and is very touchy. If you add a transformation, take care to - * decide how it fits in with the other transformations here. - */ -void /* PRIVATE */ -png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info) -{ - png_debug(1, "in png_do_read_transformations"); - - if (png_ptr->row_buf == NULL) - { - /* Prior to 1.5.4 this output row/pass where the NULL pointer is, but this - * error is incredibly rare and incredibly easy to debug without this - * information. - */ - png_error(png_ptr, "NULL row buffer"); - } - - /* The following is debugging; prior to 1.5.4 the code was never compiled in; - * in 1.5.4 PNG_FLAG_DETECT_UNINITIALIZED was added and the macro - * PNG_WARN_UNINITIALIZED_ROW removed. In 1.6 the new flag is set only for - * all transformations, however in practice the ROW_INIT always gets done on - * demand, if necessary. - */ - if ((png_ptr->flags & PNG_FLAG_DETECT_UNINITIALIZED) != 0 && - (png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) - { - /* Application has failed to call either png_read_start_image() or - * png_read_update_info() after setting transforms that expand pixels. - * This check added to libpng-1.2.19 (but not enabled until 1.5.4). - */ - png_error(png_ptr, "Uninitialized row"); - } - -#ifdef PNG_READ_EXPAND_SUPPORTED - if ((png_ptr->transformations & PNG_EXPAND) != 0) - { - if (row_info->color_type == PNG_COLOR_TYPE_PALETTE) - { -#ifdef PNG_ARM_NEON_INTRINSICS_AVAILABLE - if ((png_ptr->num_trans > 0) && (png_ptr->bit_depth == 8)) - { - if (png_ptr->riffled_palette == NULL) - { - /* Initialize the accelerated palette expansion. */ - png_ptr->riffled_palette = - (png_bytep)png_malloc(png_ptr, 256 * 4); - png_riffle_palette_neon(png_ptr); - } - } -#endif - png_do_expand_palette(png_ptr, row_info, png_ptr->row_buf + 1, - png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans); - } - - else - { - if (png_ptr->num_trans != 0 && - (png_ptr->transformations & PNG_EXPAND_tRNS) != 0) - png_do_expand(row_info, png_ptr->row_buf + 1, - &(png_ptr->trans_color)); - - else - png_do_expand(row_info, png_ptr->row_buf + 1, NULL); - } - } -#endif - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && - (png_ptr->transformations & PNG_COMPOSE) == 0 && - (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)) - png_do_strip_channel(row_info, png_ptr->row_buf + 1, - 0 /* at_start == false, because SWAP_ALPHA happens later */); -#endif - -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) - { - int rgb_error = - png_do_rgb_to_gray(png_ptr, row_info, - png_ptr->row_buf + 1); - - if (rgb_error != 0) - { - png_ptr->rgb_to_gray_status=1; - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == - PNG_RGB_TO_GRAY_WARN) - png_warning(png_ptr, "png_do_rgb_to_gray found nongray pixel"); - - if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == - PNG_RGB_TO_GRAY_ERR) - png_error(png_ptr, "png_do_rgb_to_gray found nongray pixel"); - } - } -#endif - -/* From Andreas Dilger e-mail to png-implement, 26 March 1998: - * - * In most cases, the "simple transparency" should be done prior to doing - * gray-to-RGB, or you will have to test 3x as many bytes to check if a - * pixel is transparent. You would also need to make sure that the - * transparency information is upgraded to RGB. - * - * To summarize, the current flow is: - * - Gray + simple transparency -> compare 1 or 2 gray bytes and composite - * with background "in place" if transparent, - * convert to RGB if necessary - * - Gray + alpha -> composite with gray background and remove alpha bytes, - * convert to RGB if necessary - * - * To support RGB backgrounds for gray images we need: - * - Gray + simple transparency -> convert to RGB + simple transparency, - * compare 3 or 6 bytes and composite with - * background "in place" if transparent - * (3x compare/pixel compared to doing - * composite with gray bkgrnd) - * - Gray + alpha -> convert to RGB + alpha, composite with background and - * remove alpha bytes (3x float - * operations/pixel compared with composite - * on gray background) - * - * Greg's change will do this. The reason it wasn't done before is for - * performance, as this increases the per-pixel operations. If we would check - * in advance if the background was gray or RGB, and position the gray-to-RGB - * transform appropriately, then it would save a lot of work/time. - */ - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED - /* If gray -> RGB, do so now only if background is non-gray; else do later - * for performance reasons - */ - if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0 && - (png_ptr->mode & PNG_BACKGROUND_IS_GRAY) == 0) - png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) - if ((png_ptr->transformations & PNG_COMPOSE) != 0) - png_do_compose(row_info, png_ptr->row_buf + 1, png_ptr); -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED - if ((png_ptr->transformations & PNG_GAMMA) != 0 && -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - /* Because RGB_TO_GRAY does the gamma transform. */ - (png_ptr->transformations & PNG_RGB_TO_GRAY) == 0 && -#endif -#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) - /* Because PNG_COMPOSE does the gamma transform if there is something to - * do (if there is an alpha channel or transparency.) - */ - !((png_ptr->transformations & PNG_COMPOSE) != 0 && - ((png_ptr->num_trans != 0) || - (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0)) && -#endif - /* Because png_init_read_transformations transforms the palette, unless - * RGB_TO_GRAY will do the transform. - */ - (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE)) - png_do_gamma(row_info, png_ptr->row_buf + 1, png_ptr); -#endif - -#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && - (png_ptr->transformations & PNG_COMPOSE) != 0 && - (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA || - row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)) - png_do_strip_channel(row_info, png_ptr->row_buf + 1, - 0 /* at_start == false, because SWAP_ALPHA happens later */); -#endif - -#ifdef PNG_READ_ALPHA_MODE_SUPPORTED - if ((png_ptr->transformations & PNG_ENCODE_ALPHA) != 0 && - (row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0) - png_do_encode_alpha(row_info, png_ptr->row_buf + 1, png_ptr); -#endif - -#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED - if ((png_ptr->transformations & PNG_SCALE_16_TO_8) != 0) - png_do_scale_16_to_8(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED - /* There is no harm in doing both of these because only one has any effect, - * by putting the 'scale' option first if the app asks for scale (either by - * calling the API or in a TRANSFORM flag) this is what happens. - */ - if ((png_ptr->transformations & PNG_16_TO_8) != 0) - png_do_chop(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED - if ((png_ptr->transformations & PNG_QUANTIZE) != 0) - { - png_do_quantize(row_info, png_ptr->row_buf + 1, - png_ptr->palette_lookup, png_ptr->quantize_index); - - if (row_info->rowbytes == 0) - png_error(png_ptr, "png_do_quantize returned rowbytes=0"); - } -#endif /* READ_QUANTIZE */ - -#ifdef PNG_READ_EXPAND_16_SUPPORTED - /* Do the expansion now, after all the arithmetic has been done. Notice - * that previous transformations can handle the PNG_EXPAND_16 flag if this - * is efficient (particularly true in the case of gamma correction, where - * better accuracy results faster!) - */ - if ((png_ptr->transformations & PNG_EXPAND_16) != 0) - png_do_expand_16(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED - /* NOTE: moved here in 1.5.4 (from much later in this list.) */ - if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0 && - (png_ptr->mode & PNG_BACKGROUND_IS_GRAY) != 0) - png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_INVERT_SUPPORTED - if ((png_ptr->transformations & PNG_INVERT_MONO) != 0) - png_do_invert(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0) - png_do_read_invert_alpha(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_SHIFT_SUPPORTED - if ((png_ptr->transformations & PNG_SHIFT) != 0) - png_do_unshift(row_info, png_ptr->row_buf + 1, - &(png_ptr->shift)); -#endif - -#ifdef PNG_READ_PACK_SUPPORTED - if ((png_ptr->transformations & PNG_PACK) != 0) - png_do_unpack(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED - /* Added at libpng-1.5.10 */ - if (row_info->color_type == PNG_COLOR_TYPE_PALETTE && - png_ptr->num_palette_max >= 0) - png_do_check_palette_indexes(png_ptr, row_info); -#endif - -#ifdef PNG_READ_BGR_SUPPORTED - if ((png_ptr->transformations & PNG_BGR) != 0) - png_do_bgr(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - png_do_packswap(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_FILLER_SUPPORTED - if ((png_ptr->transformations & PNG_FILLER) != 0) - png_do_read_filler(row_info, png_ptr->row_buf + 1, - (png_uint_32)png_ptr->filler, png_ptr->flags); -#endif - -#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_SWAP_ALPHA) != 0) - png_do_read_swap_alpha(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_READ_16BIT_SUPPORTED -#ifdef PNG_READ_SWAP_SUPPORTED - if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0) - png_do_swap(row_info, png_ptr->row_buf + 1); -#endif -#endif - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) - { - if (png_ptr->read_user_transform_fn != NULL) - (*(png_ptr->read_user_transform_fn)) /* User read transform function */ - (png_ptr, /* png_ptr */ - row_info, /* row_info: */ - /* png_uint_32 width; width of row */ - /* size_t rowbytes; number of bytes in row */ - /* png_byte color_type; color type of pixels */ - /* png_byte bit_depth; bit depth of samples */ - /* png_byte channels; number of channels (1-4) */ - /* png_byte pixel_depth; bits per pixel (depth*channels) */ - png_ptr->row_buf + 1); /* start of pixel data for row */ -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED - if (png_ptr->user_transform_depth != 0) - row_info->bit_depth = png_ptr->user_transform_depth; - - if (png_ptr->user_transform_channels != 0) - row_info->channels = png_ptr->user_transform_channels; -#endif - row_info->pixel_depth = (png_byte)(row_info->bit_depth * - row_info->channels); - - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, row_info->width); - } -#endif -} - -#endif /* READ_TRANSFORMS */ -#endif /* READ */ diff --git a/Externals/libpng/pngrutil.c b/Externals/libpng/pngrutil.c deleted file mode 100644 index d5fa08c397..0000000000 --- a/Externals/libpng/pngrutil.c +++ /dev/null @@ -1,4681 +0,0 @@ - -/* pngrutil.c - utilities to read a PNG file - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file contains routines that are only called from within - * libpng itself during the course of reading an image. - */ - -#include "pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -png_uint_32 PNGAPI -png_get_uint_31(png_const_structrp png_ptr, png_const_bytep buf) -{ - png_uint_32 uval = png_get_uint_32(buf); - - if (uval > PNG_UINT_31_MAX) - png_error(png_ptr, "PNG unsigned integer out of range"); - - return (uval); -} - -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_READ_cHRM_SUPPORTED) -/* The following is a variation on the above for use with the fixed - * point values used for gAMA and cHRM. Instead of png_error it - * issues a warning and returns (-1) - an invalid value because both - * gAMA and cHRM use *unsigned* integers for fixed point values. - */ -#define PNG_FIXED_ERROR (-1) - -static png_fixed_point /* PRIVATE */ -png_get_fixed_point(png_structrp png_ptr, png_const_bytep buf) -{ - png_uint_32 uval = png_get_uint_32(buf); - - if (uval <= PNG_UINT_31_MAX) - return (png_fixed_point)uval; /* known to be in range */ - - /* The caller can turn off the warning by passing NULL. */ - if (png_ptr != NULL) - png_warning(png_ptr, "PNG fixed point integer out of range"); - - return PNG_FIXED_ERROR; -} -#endif - -#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED -/* NOTE: the read macros will obscure these definitions, so that if - * PNG_USE_READ_MACROS is set the library will not use them internally, - * but the APIs will still be available externally. - * - * The parentheses around "PNGAPI function_name" in the following three - * functions are necessary because they allow the macros to co-exist with - * these (unused but exported) functions. - */ - -/* Grab an unsigned 32-bit integer from a buffer in big-endian format. */ -png_uint_32 (PNGAPI -png_get_uint_32)(png_const_bytep buf) -{ - png_uint_32 uval = - ((png_uint_32)(*(buf )) << 24) + - ((png_uint_32)(*(buf + 1)) << 16) + - ((png_uint_32)(*(buf + 2)) << 8) + - ((png_uint_32)(*(buf + 3)) ) ; - - return uval; -} - -/* Grab a signed 32-bit integer from a buffer in big-endian format. The - * data is stored in the PNG file in two's complement format and there - * is no guarantee that a 'png_int_32' is exactly 32 bits, therefore - * the following code does a two's complement to native conversion. - */ -png_int_32 (PNGAPI -png_get_int_32)(png_const_bytep buf) -{ - png_uint_32 uval = png_get_uint_32(buf); - if ((uval & 0x80000000) == 0) /* non-negative */ - return (png_int_32)uval; - - uval = (uval ^ 0xffffffff) + 1; /* 2's complement: -x = ~x+1 */ - if ((uval & 0x80000000) == 0) /* no overflow */ - return -(png_int_32)uval; - /* The following has to be safe; this function only gets called on PNG data - * and if we get here that data is invalid. 0 is the most safe value and - * if not then an attacker would surely just generate a PNG with 0 instead. - */ - return 0; -} - -/* Grab an unsigned 16-bit integer from a buffer in big-endian format. */ -png_uint_16 (PNGAPI -png_get_uint_16)(png_const_bytep buf) -{ - /* ANSI-C requires an int value to accommodate at least 16 bits so this - * works and allows the compiler not to worry about possible narrowing - * on 32-bit systems. (Pre-ANSI systems did not make integers smaller - * than 16 bits either.) - */ - unsigned int val = - ((unsigned int)(*buf) << 8) + - ((unsigned int)(*(buf + 1))); - - return (png_uint_16)val; -} - -#endif /* READ_INT_FUNCTIONS */ - -/* Read and check the PNG file signature */ -void /* PRIVATE */ -png_read_sig(png_structrp png_ptr, png_inforp info_ptr) -{ - size_t num_checked, num_to_check; - - /* Exit if the user application does not expect a signature. */ - if (png_ptr->sig_bytes >= 8) - return; - - num_checked = png_ptr->sig_bytes; - num_to_check = 8 - num_checked; - -#ifdef PNG_IO_STATE_SUPPORTED - png_ptr->io_state = PNG_IO_READING | PNG_IO_SIGNATURE; -#endif - - /* The signature must be serialized in a single I/O call. */ - png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check); - png_ptr->sig_bytes = 8; - - if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check) != 0) - { - if (num_checked < 4 && - png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4)) - png_error(png_ptr, "Not a PNG file"); - else - png_error(png_ptr, "PNG file corrupted by ASCII conversion"); - } - if (num_checked < 3) - png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE; -} - -/* Read the chunk header (length + type name). - * Put the type name into png_ptr->chunk_name, and return the length. - */ -png_uint_32 /* PRIVATE */ -png_read_chunk_header(png_structrp png_ptr) -{ - png_byte buf[8]; - png_uint_32 length; - -#ifdef PNG_IO_STATE_SUPPORTED - png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_HDR; -#endif - - /* Read the length and the chunk name. - * This must be performed in a single I/O call. - */ - png_read_data(png_ptr, buf, 8); - length = png_get_uint_31(png_ptr, buf); - - /* Put the chunk name into png_ptr->chunk_name. */ - png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(buf+4); - - png_debug2(0, "Reading %lx chunk, length = %lu", - (unsigned long)png_ptr->chunk_name, (unsigned long)length); - - /* Reset the crc and run it over the chunk name. */ - png_reset_crc(png_ptr); - png_calculate_crc(png_ptr, buf + 4, 4); - - /* Check to see if chunk name is valid. */ - png_check_chunk_name(png_ptr, png_ptr->chunk_name); - - /* Check for too-large chunk length */ - png_check_chunk_length(png_ptr, length); - -#ifdef PNG_IO_STATE_SUPPORTED - png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_DATA; -#endif - - return length; -} - -/* Read data, and (optionally) run it through the CRC. */ -void /* PRIVATE */ -png_crc_read(png_structrp png_ptr, png_bytep buf, png_uint_32 length) -{ - if (png_ptr == NULL) - return; - - png_read_data(png_ptr, buf, length); - png_calculate_crc(png_ptr, buf, length); -} - -/* Optionally skip data and then check the CRC. Depending on whether we - * are reading an ancillary or critical chunk, and how the program has set - * things up, we may calculate the CRC on the data and print a message. - * Returns '1' if there was a CRC error, '0' otherwise. - */ -int /* PRIVATE */ -png_crc_finish(png_structrp png_ptr, png_uint_32 skip) -{ - /* The size of the local buffer for inflate is a good guess as to a - * reasonable size to use for buffering reads from the application. - */ - while (skip > 0) - { - png_uint_32 len; - png_byte tmpbuf[PNG_INFLATE_BUF_SIZE]; - - len = (sizeof tmpbuf); - if (len > skip) - len = skip; - skip -= len; - - png_crc_read(png_ptr, tmpbuf, len); - } - - if (png_crc_error(png_ptr) != 0) - { - if (PNG_CHUNK_ANCILLARY(png_ptr->chunk_name) != 0 ? - (png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN) == 0 : - (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_USE) != 0) - { - png_chunk_warning(png_ptr, "CRC error"); - } - - else - png_chunk_error(png_ptr, "CRC error"); - - return (1); - } - - return (0); -} - -/* Compare the CRC stored in the PNG file with that calculated by libpng from - * the data it has read thus far. - */ -int /* PRIVATE */ -png_crc_error(png_structrp png_ptr) -{ - png_byte crc_bytes[4]; - png_uint_32 crc; - int need_crc = 1; - - if (PNG_CHUNK_ANCILLARY(png_ptr->chunk_name) != 0) - { - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) == - (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN)) - need_crc = 0; - } - - else /* critical */ - { - if ((png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) != 0) - need_crc = 0; - } - -#ifdef PNG_IO_STATE_SUPPORTED - png_ptr->io_state = PNG_IO_READING | PNG_IO_CHUNK_CRC; -#endif - - /* The chunk CRC must be serialized in a single I/O call. */ - png_read_data(png_ptr, crc_bytes, 4); - - if (need_crc != 0) - { - crc = png_get_uint_32(crc_bytes); - return ((int)(crc != png_ptr->crc)); - } - - else - return (0); -} - -#if defined(PNG_READ_iCCP_SUPPORTED) || defined(PNG_READ_iTXt_SUPPORTED) ||\ - defined(PNG_READ_pCAL_SUPPORTED) || defined(PNG_READ_sCAL_SUPPORTED) ||\ - defined(PNG_READ_sPLT_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) ||\ - defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_SEQUENTIAL_READ_SUPPORTED) -/* Manage the read buffer; this simply reallocates the buffer if it is not small - * enough (or if it is not allocated). The routine returns a pointer to the - * buffer; if an error occurs and 'warn' is set the routine returns NULL, else - * it will call png_error (via png_malloc) on failure. (warn == 2 means - * 'silent'). - */ -static png_bytep -png_read_buffer(png_structrp png_ptr, png_alloc_size_t new_size, int warn) -{ - png_bytep buffer = png_ptr->read_buffer; - - if (buffer != NULL && new_size > png_ptr->read_buffer_size) - { - png_ptr->read_buffer = NULL; - png_ptr->read_buffer = NULL; - png_ptr->read_buffer_size = 0; - png_free(png_ptr, buffer); - buffer = NULL; - } - - if (buffer == NULL) - { - buffer = png_voidcast(png_bytep, png_malloc_base(png_ptr, new_size)); - - if (buffer != NULL) - { - memset(buffer, 0, new_size); /* just in case */ - png_ptr->read_buffer = buffer; - png_ptr->read_buffer_size = new_size; - } - - else if (warn < 2) /* else silent */ - { - if (warn != 0) - png_chunk_warning(png_ptr, "insufficient memory to read chunk"); - - else - png_chunk_error(png_ptr, "insufficient memory to read chunk"); - } - } - - return buffer; -} -#endif /* READ_iCCP|iTXt|pCAL|sCAL|sPLT|tEXt|zTXt|SEQUENTIAL_READ */ - -/* png_inflate_claim: claim the zstream for some nefarious purpose that involves - * decompression. Returns Z_OK on success, else a zlib error code. It checks - * the owner but, in final release builds, just issues a warning if some other - * chunk apparently owns the stream. Prior to release it does a png_error. - */ -static int -png_inflate_claim(png_structrp png_ptr, png_uint_32 owner) -{ - if (png_ptr->zowner != 0) - { - char msg[64]; - - PNG_STRING_FROM_CHUNK(msg, png_ptr->zowner); - /* So the message that results is " using zstream"; this is an - * internal error, but is very useful for debugging. i18n requirements - * are minimal. - */ - (void)png_safecat(msg, (sizeof msg), 4, " using zstream"); -#if PNG_RELEASE_BUILD - png_chunk_warning(png_ptr, msg); - png_ptr->zowner = 0; -#else - png_chunk_error(png_ptr, msg); -#endif - } - - /* Implementation note: unlike 'png_deflate_claim' this internal function - * does not take the size of the data as an argument. Some efficiency could - * be gained by using this when it is known *if* the zlib stream itself does - * not record the number; however, this is an illusion: the original writer - * of the PNG may have selected a lower window size, and we really must - * follow that because, for systems with with limited capabilities, we - * would otherwise reject the application's attempts to use a smaller window - * size (zlib doesn't have an interface to say "this or lower"!). - * - * inflateReset2 was added to zlib 1.2.4; before this the window could not be - * reset, therefore it is necessary to always allocate the maximum window - * size with earlier zlibs just in case later compressed chunks need it. - */ - { - int ret; /* zlib return code */ -#if ZLIB_VERNUM >= 0x1240 - int window_bits = 0; - -# if defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_MAXIMUM_INFLATE_WINDOW) - if (((png_ptr->options >> PNG_MAXIMUM_INFLATE_WINDOW) & 3) == - PNG_OPTION_ON) - { - window_bits = 15; - png_ptr->zstream_start = 0; /* fixed window size */ - } - - else - { - png_ptr->zstream_start = 1; - } -# endif - -#endif /* ZLIB_VERNUM >= 0x1240 */ - - /* Set this for safety, just in case the previous owner left pointers to - * memory allocations. - */ - png_ptr->zstream.next_in = NULL; - png_ptr->zstream.avail_in = 0; - png_ptr->zstream.next_out = NULL; - png_ptr->zstream.avail_out = 0; - - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED) != 0) - { -#if ZLIB_VERNUM >= 0x1240 - ret = inflateReset2(&png_ptr->zstream, window_bits); -#else - ret = inflateReset(&png_ptr->zstream); -#endif - } - - else - { -#if ZLIB_VERNUM >= 0x1240 - ret = inflateInit2(&png_ptr->zstream, window_bits); -#else - ret = inflateInit(&png_ptr->zstream); -#endif - - if (ret == Z_OK) - png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED; - } - -#if ZLIB_VERNUM >= 0x1290 && \ - defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32) - if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON) - /* Turn off validation of the ADLER32 checksum in IDAT chunks */ - ret = inflateValidate(&png_ptr->zstream, 0); -#endif - - if (ret == Z_OK) - png_ptr->zowner = owner; - - else - png_zstream_error(png_ptr, ret); - - return ret; - } - -#ifdef window_bits -# undef window_bits -#endif -} - -#if ZLIB_VERNUM >= 0x1240 -/* Handle the start of the inflate stream if we called inflateInit2(strm,0); - * in this case some zlib versions skip validation of the CINFO field and, in - * certain circumstances, libpng may end up displaying an invalid image, in - * contrast to implementations that call zlib in the normal way (e.g. libpng - * 1.5). - */ -int /* PRIVATE */ -png_zlib_inflate(png_structrp png_ptr, int flush) -{ - if (png_ptr->zstream_start && png_ptr->zstream.avail_in > 0) - { - if ((*png_ptr->zstream.next_in >> 4) > 7) - { - png_ptr->zstream.msg = "invalid window size (libpng)"; - return Z_DATA_ERROR; - } - - png_ptr->zstream_start = 0; - } - - return inflate(&png_ptr->zstream, flush); -} -#endif /* Zlib >= 1.2.4 */ - -#ifdef PNG_READ_COMPRESSED_TEXT_SUPPORTED -#if defined(PNG_READ_zTXt_SUPPORTED) || defined (PNG_READ_iTXt_SUPPORTED) -/* png_inflate now returns zlib error codes including Z_OK and Z_STREAM_END to - * allow the caller to do multiple calls if required. If the 'finish' flag is - * set Z_FINISH will be passed to the final inflate() call and Z_STREAM_END must - * be returned or there has been a problem, otherwise Z_SYNC_FLUSH is used and - * Z_OK or Z_STREAM_END will be returned on success. - * - * The input and output sizes are updated to the actual amounts of data consumed - * or written, not the amount available (as in a z_stream). The data pointers - * are not changed, so the next input is (data+input_size) and the next - * available output is (output+output_size). - */ -static int -png_inflate(png_structrp png_ptr, png_uint_32 owner, int finish, - /* INPUT: */ png_const_bytep input, png_uint_32p input_size_ptr, - /* OUTPUT: */ png_bytep output, png_alloc_size_t *output_size_ptr) -{ - if (png_ptr->zowner == owner) /* Else not claimed */ - { - int ret; - png_alloc_size_t avail_out = *output_size_ptr; - png_uint_32 avail_in = *input_size_ptr; - - /* zlib can't necessarily handle more than 65535 bytes at once (i.e. it - * can't even necessarily handle 65536 bytes) because the type uInt is - * "16 bits or more". Consequently it is necessary to chunk the input to - * zlib. This code uses ZLIB_IO_MAX, from pngpriv.h, as the maximum (the - * maximum value that can be stored in a uInt.) It is possible to set - * ZLIB_IO_MAX to a lower value in pngpriv.h and this may sometimes have - * a performance advantage, because it reduces the amount of data accessed - * at each step and that may give the OS more time to page it in. - */ - png_ptr->zstream.next_in = PNGZ_INPUT_CAST(input); - /* avail_in and avail_out are set below from 'size' */ - png_ptr->zstream.avail_in = 0; - png_ptr->zstream.avail_out = 0; - - /* Read directly into the output if it is available (this is set to - * a local buffer below if output is NULL). - */ - if (output != NULL) - png_ptr->zstream.next_out = output; - - do - { - uInt avail; - Byte local_buffer[PNG_INFLATE_BUF_SIZE]; - - /* zlib INPUT BUFFER */ - /* The setting of 'avail_in' used to be outside the loop; by setting it - * inside it is possible to chunk the input to zlib and simply rely on - * zlib to advance the 'next_in' pointer. This allows arbitrary - * amounts of data to be passed through zlib at the unavoidable cost of - * requiring a window save (memcpy of up to 32768 output bytes) - * every ZLIB_IO_MAX input bytes. - */ - avail_in += png_ptr->zstream.avail_in; /* not consumed last time */ - - avail = ZLIB_IO_MAX; - - if (avail_in < avail) - avail = (uInt)avail_in; /* safe: < than ZLIB_IO_MAX */ - - avail_in -= avail; - png_ptr->zstream.avail_in = avail; - - /* zlib OUTPUT BUFFER */ - avail_out += png_ptr->zstream.avail_out; /* not written last time */ - - avail = ZLIB_IO_MAX; /* maximum zlib can process */ - - if (output == NULL) - { - /* Reset the output buffer each time round if output is NULL and - * make available the full buffer, up to 'remaining_space' - */ - png_ptr->zstream.next_out = local_buffer; - if ((sizeof local_buffer) < avail) - avail = (sizeof local_buffer); - } - - if (avail_out < avail) - avail = (uInt)avail_out; /* safe: < ZLIB_IO_MAX */ - - png_ptr->zstream.avail_out = avail; - avail_out -= avail; - - /* zlib inflate call */ - /* In fact 'avail_out' may be 0 at this point, that happens at the end - * of the read when the final LZ end code was not passed at the end of - * the previous chunk of input data. Tell zlib if we have reached the - * end of the output buffer. - */ - ret = PNG_INFLATE(png_ptr, avail_out > 0 ? Z_NO_FLUSH : - (finish ? Z_FINISH : Z_SYNC_FLUSH)); - } while (ret == Z_OK); - - /* For safety kill the local buffer pointer now */ - if (output == NULL) - png_ptr->zstream.next_out = NULL; - - /* Claw back the 'size' and 'remaining_space' byte counts. */ - avail_in += png_ptr->zstream.avail_in; - avail_out += png_ptr->zstream.avail_out; - - /* Update the input and output sizes; the updated values are the amount - * consumed or written, effectively the inverse of what zlib uses. - */ - if (avail_out > 0) - *output_size_ptr -= avail_out; - - if (avail_in > 0) - *input_size_ptr -= avail_in; - - /* Ensure png_ptr->zstream.msg is set (even in the success case!) */ - png_zstream_error(png_ptr, ret); - return ret; - } - - else - { - /* This is a bad internal error. The recovery assigns to the zstream msg - * pointer, which is not owned by the caller, but this is safe; it's only - * used on errors! - */ - png_ptr->zstream.msg = PNGZ_MSG_CAST("zstream unclaimed"); - return Z_STREAM_ERROR; - } -} - -/* - * Decompress trailing data in a chunk. The assumption is that read_buffer - * points at an allocated area holding the contents of a chunk with a - * trailing compressed part. What we get back is an allocated area - * holding the original prefix part and an uncompressed version of the - * trailing part (the malloc area passed in is freed). - */ -static int -png_decompress_chunk(png_structrp png_ptr, - png_uint_32 chunklength, png_uint_32 prefix_size, - png_alloc_size_t *newlength /* must be initialized to the maximum! */, - int terminate /*add a '\0' to the end of the uncompressed data*/) -{ - /* TODO: implement different limits for different types of chunk. - * - * The caller supplies *newlength set to the maximum length of the - * uncompressed data, but this routine allocates space for the prefix and - * maybe a '\0' terminator too. We have to assume that 'prefix_size' is - * limited only by the maximum chunk size. - */ - png_alloc_size_t limit = PNG_SIZE_MAX; - -# ifdef PNG_SET_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_malloc_max > 0 && - png_ptr->user_chunk_malloc_max < limit) - limit = png_ptr->user_chunk_malloc_max; -# elif PNG_USER_CHUNK_MALLOC_MAX > 0 - if (PNG_USER_CHUNK_MALLOC_MAX < limit) - limit = PNG_USER_CHUNK_MALLOC_MAX; -# endif - - if (limit >= prefix_size + (terminate != 0)) - { - int ret; - - limit -= prefix_size + (terminate != 0); - - if (limit < *newlength) - *newlength = limit; - - /* Now try to claim the stream. */ - ret = png_inflate_claim(png_ptr, png_ptr->chunk_name); - - if (ret == Z_OK) - { - png_uint_32 lzsize = chunklength - prefix_size; - - ret = png_inflate(png_ptr, png_ptr->chunk_name, 1/*finish*/, - /* input: */ png_ptr->read_buffer + prefix_size, &lzsize, - /* output: */ NULL, newlength); - - if (ret == Z_STREAM_END) - { - /* Use 'inflateReset' here, not 'inflateReset2' because this - * preserves the previously decided window size (otherwise it would - * be necessary to store the previous window size.) In practice - * this doesn't matter anyway, because png_inflate will call inflate - * with Z_FINISH in almost all cases, so the window will not be - * maintained. - */ - if (inflateReset(&png_ptr->zstream) == Z_OK) - { - /* Because of the limit checks above we know that the new, - * expanded, size will fit in a size_t (let alone an - * png_alloc_size_t). Use png_malloc_base here to avoid an - * extra OOM message. - */ - png_alloc_size_t new_size = *newlength; - png_alloc_size_t buffer_size = prefix_size + new_size + - (terminate != 0); - png_bytep text = png_voidcast(png_bytep, png_malloc_base(png_ptr, - buffer_size)); - - if (text != NULL) - { - memset(text, 0, buffer_size); - - ret = png_inflate(png_ptr, png_ptr->chunk_name, 1/*finish*/, - png_ptr->read_buffer + prefix_size, &lzsize, - text + prefix_size, newlength); - - if (ret == Z_STREAM_END) - { - if (new_size == *newlength) - { - if (terminate != 0) - text[prefix_size + *newlength] = 0; - - if (prefix_size > 0) - memcpy(text, png_ptr->read_buffer, prefix_size); - - { - png_bytep old_ptr = png_ptr->read_buffer; - - png_ptr->read_buffer = text; - png_ptr->read_buffer_size = buffer_size; - text = old_ptr; /* freed below */ - } - } - - else - { - /* The size changed on the second read, there can be no - * guarantee that anything is correct at this point. - * The 'msg' pointer has been set to "unexpected end of - * LZ stream", which is fine, but return an error code - * that the caller won't accept. - */ - ret = PNG_UNEXPECTED_ZLIB_RETURN; - } - } - - else if (ret == Z_OK) - ret = PNG_UNEXPECTED_ZLIB_RETURN; /* for safety */ - - /* Free the text pointer (this is the old read_buffer on - * success) - */ - png_free(png_ptr, text); - - /* This really is very benign, but it's still an error because - * the extra space may otherwise be used as a Trojan Horse. - */ - if (ret == Z_STREAM_END && - chunklength - prefix_size != lzsize) - png_chunk_benign_error(png_ptr, "extra compressed data"); - } - - else - { - /* Out of memory allocating the buffer */ - ret = Z_MEM_ERROR; - png_zstream_error(png_ptr, Z_MEM_ERROR); - } - } - - else - { - /* inflateReset failed, store the error message */ - png_zstream_error(png_ptr, ret); - ret = PNG_UNEXPECTED_ZLIB_RETURN; - } - } - - else if (ret == Z_OK) - ret = PNG_UNEXPECTED_ZLIB_RETURN; - - /* Release the claimed stream */ - png_ptr->zowner = 0; - } - - else /* the claim failed */ if (ret == Z_STREAM_END) /* impossible! */ - ret = PNG_UNEXPECTED_ZLIB_RETURN; - - return ret; - } - - else - { - /* Application/configuration limits exceeded */ - png_zstream_error(png_ptr, Z_MEM_ERROR); - return Z_MEM_ERROR; - } -} -#endif /* READ_zTXt || READ_iTXt */ -#endif /* READ_COMPRESSED_TEXT */ - -#ifdef PNG_READ_iCCP_SUPPORTED -/* Perform a partial read and decompress, producing 'avail_out' bytes and - * reading from the current chunk as required. - */ -static int -png_inflate_read(png_structrp png_ptr, png_bytep read_buffer, uInt read_size, - png_uint_32p chunk_bytes, png_bytep next_out, png_alloc_size_t *out_size, - int finish) -{ - if (png_ptr->zowner == png_ptr->chunk_name) - { - int ret; - - /* next_in and avail_in must have been initialized by the caller. */ - png_ptr->zstream.next_out = next_out; - png_ptr->zstream.avail_out = 0; /* set in the loop */ - - do - { - if (png_ptr->zstream.avail_in == 0) - { - if (read_size > *chunk_bytes) - read_size = (uInt)*chunk_bytes; - *chunk_bytes -= read_size; - - if (read_size > 0) - png_crc_read(png_ptr, read_buffer, read_size); - - png_ptr->zstream.next_in = read_buffer; - png_ptr->zstream.avail_in = read_size; - } - - if (png_ptr->zstream.avail_out == 0) - { - uInt avail = ZLIB_IO_MAX; - if (avail > *out_size) - avail = (uInt)*out_size; - *out_size -= avail; - - png_ptr->zstream.avail_out = avail; - } - - /* Use Z_SYNC_FLUSH when there is no more chunk data to ensure that all - * the available output is produced; this allows reading of truncated - * streams. - */ - ret = PNG_INFLATE(png_ptr, *chunk_bytes > 0 ? - Z_NO_FLUSH : (finish ? Z_FINISH : Z_SYNC_FLUSH)); - } - while (ret == Z_OK && (*out_size > 0 || png_ptr->zstream.avail_out > 0)); - - *out_size += png_ptr->zstream.avail_out; - png_ptr->zstream.avail_out = 0; /* Should not be required, but is safe */ - - /* Ensure the error message pointer is always set: */ - png_zstream_error(png_ptr, ret); - return ret; - } - - else - { - png_ptr->zstream.msg = PNGZ_MSG_CAST("zstream unclaimed"); - return Z_STREAM_ERROR; - } -} -#endif /* READ_iCCP */ - -/* Read and check the IDHR chunk */ - -void /* PRIVATE */ -png_handle_IHDR(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte buf[13]; - png_uint_32 width, height; - int bit_depth, color_type, compression_type, filter_type; - int interlace_type; - - png_debug(1, "in png_handle_IHDR"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) != 0) - png_chunk_error(png_ptr, "out of place"); - - /* Check the length */ - if (length != 13) - png_chunk_error(png_ptr, "invalid"); - - png_ptr->mode |= PNG_HAVE_IHDR; - - png_crc_read(png_ptr, buf, 13); - png_crc_finish(png_ptr, 0); - - width = png_get_uint_31(png_ptr, buf); - height = png_get_uint_31(png_ptr, buf + 4); - bit_depth = buf[8]; - color_type = buf[9]; - compression_type = buf[10]; - filter_type = buf[11]; - interlace_type = buf[12]; - - /* Set internal variables */ - png_ptr->width = width; - png_ptr->height = height; - png_ptr->bit_depth = (png_byte)bit_depth; - png_ptr->interlaced = (png_byte)interlace_type; - png_ptr->color_type = (png_byte)color_type; -#ifdef PNG_MNG_FEATURES_SUPPORTED - png_ptr->filter_type = (png_byte)filter_type; -#endif - png_ptr->compression_type = (png_byte)compression_type; - - /* Find number of channels */ - switch (png_ptr->color_type) - { - default: /* invalid, png_set_IHDR calls png_error */ - case PNG_COLOR_TYPE_GRAY: - case PNG_COLOR_TYPE_PALETTE: - png_ptr->channels = 1; - break; - - case PNG_COLOR_TYPE_RGB: - png_ptr->channels = 3; - break; - - case PNG_COLOR_TYPE_GRAY_ALPHA: - png_ptr->channels = 2; - break; - - case PNG_COLOR_TYPE_RGB_ALPHA: - png_ptr->channels = 4; - break; - } - - /* Set up other useful info */ - png_ptr->pixel_depth = (png_byte)(png_ptr->bit_depth * png_ptr->channels); - png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->width); - png_debug1(3, "bit_depth = %d", png_ptr->bit_depth); - png_debug1(3, "channels = %d", png_ptr->channels); - png_debug1(3, "rowbytes = %lu", (unsigned long)png_ptr->rowbytes); - png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, - color_type, interlace_type, compression_type, filter_type); -} - -/* Read and check the palette */ -void /* PRIVATE */ -png_handle_PLTE(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_color palette[PNG_MAX_PALETTE_LENGTH]; - int max_palette_length, num, i; -#ifdef PNG_POINTER_INDEXING_SUPPORTED - png_colorp pal_ptr; -#endif - - png_debug(1, "in png_handle_PLTE"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - /* Moved to before the 'after IDAT' check below because otherwise duplicate - * PLTE chunks are potentially ignored (the spec says there shall not be more - * than one PLTE, the error is not treated as benign, so this check trumps - * the requirement that PLTE appears before IDAT.) - */ - else if ((png_ptr->mode & PNG_HAVE_PLTE) != 0) - png_chunk_error(png_ptr, "duplicate"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - /* This is benign because the non-benign error happened before, when an - * IDAT was encountered in a color-mapped image with no PLTE. - */ - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - png_ptr->mode |= PNG_HAVE_PLTE; - - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "ignored in grayscale PNG"); - return; - } - -#ifndef PNG_READ_OPT_PLTE_SUPPORTED - if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE) - { - png_crc_finish(png_ptr, length); - return; - } -#endif - - if (length > 3*PNG_MAX_PALETTE_LENGTH || length % 3) - { - png_crc_finish(png_ptr, length); - - if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE) - png_chunk_benign_error(png_ptr, "invalid"); - - else - png_chunk_error(png_ptr, "invalid"); - - return; - } - - /* The cast is safe because 'length' is less than 3*PNG_MAX_PALETTE_LENGTH */ - num = (int)length / 3; - - /* If the palette has 256 or fewer entries but is too large for the bit - * depth, we don't issue an error, to preserve the behavior of previous - * libpng versions. We silently truncate the unused extra palette entries - * here. - */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - max_palette_length = (1 << png_ptr->bit_depth); - else - max_palette_length = PNG_MAX_PALETTE_LENGTH; - - if (num > max_palette_length) - num = max_palette_length; - -#ifdef PNG_POINTER_INDEXING_SUPPORTED - for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++) - { - png_byte buf[3]; - - png_crc_read(png_ptr, buf, 3); - pal_ptr->red = buf[0]; - pal_ptr->green = buf[1]; - pal_ptr->blue = buf[2]; - } -#else - for (i = 0; i < num; i++) - { - png_byte buf[3]; - - png_crc_read(png_ptr, buf, 3); - /* Don't depend upon png_color being any order */ - palette[i].red = buf[0]; - palette[i].green = buf[1]; - palette[i].blue = buf[2]; - } -#endif - - /* If we actually need the PLTE chunk (ie for a paletted image), we do - * whatever the normal CRC configuration tells us. However, if we - * have an RGB image, the PLTE can be considered ancillary, so - * we will act as though it is. - */ -#ifndef PNG_READ_OPT_PLTE_SUPPORTED - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) -#endif - { - png_crc_finish(png_ptr, (png_uint_32) (length - (unsigned int)num * 3)); - } - -#ifndef PNG_READ_OPT_PLTE_SUPPORTED - else if (png_crc_error(png_ptr) != 0) /* Only if we have a CRC error */ - { - /* If we don't want to use the data from an ancillary chunk, - * we have two options: an error abort, or a warning and we - * ignore the data in this chunk (which should be OK, since - * it's considered ancillary for a RGB or RGBA image). - * - * IMPLEMENTATION NOTE: this is only here because png_crc_finish uses the - * chunk type to determine whether to check the ancillary or the critical - * flags. - */ - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_USE) == 0) - { - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN) != 0) - return; - - else - png_chunk_error(png_ptr, "CRC error"); - } - - /* Otherwise, we (optionally) emit a warning and use the chunk. */ - else if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN) == 0) - png_chunk_warning(png_ptr, "CRC error"); - } -#endif - - /* TODO: png_set_PLTE has the side effect of setting png_ptr->palette to its - * own copy of the palette. This has the side effect that when png_start_row - * is called (this happens after any call to png_read_update_info) the - * info_ptr palette gets changed. This is extremely unexpected and - * confusing. - * - * Fix this by not sharing the palette in this way. - */ - png_set_PLTE(png_ptr, info_ptr, palette, num); - - /* The three chunks, bKGD, hIST and tRNS *must* appear after PLTE and before - * IDAT. Prior to 1.6.0 this was not checked; instead the code merely - * checked the apparent validity of a tRNS chunk inserted before PLTE on a - * palette PNG. 1.6.0 attempts to rigorously follow the standard and - * therefore does a benign error if the erroneous condition is detected *and* - * cancels the tRNS if the benign error returns. The alternative is to - * amend the standard since it would be rather hypocritical of the standards - * maintainers to ignore it. - */ -#ifdef PNG_READ_tRNS_SUPPORTED - if (png_ptr->num_trans > 0 || - (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS) != 0)) - { - /* Cancel this because otherwise it would be used if the transforms - * require it. Don't cancel the 'valid' flag because this would prevent - * detection of duplicate chunks. - */ - png_ptr->num_trans = 0; - - if (info_ptr != NULL) - info_ptr->num_trans = 0; - - png_chunk_benign_error(png_ptr, "tRNS must be after"); - } -#endif - -#ifdef PNG_READ_hIST_SUPPORTED - if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST) != 0) - png_chunk_benign_error(png_ptr, "hIST must be after"); -#endif - -#ifdef PNG_READ_bKGD_SUPPORTED - if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD) != 0) - png_chunk_benign_error(png_ptr, "bKGD must be after"); -#endif -} - -void /* PRIVATE */ -png_handle_IEND(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_debug(1, "in png_handle_IEND"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0 || - (png_ptr->mode & PNG_HAVE_IDAT) == 0) - png_chunk_error(png_ptr, "out of place"); - - png_ptr->mode |= (PNG_AFTER_IDAT | PNG_HAVE_IEND); - - png_crc_finish(png_ptr, length); - - if (length != 0) - png_chunk_benign_error(png_ptr, "invalid"); - - PNG_UNUSED(info_ptr) -} - -#ifdef PNG_READ_gAMA_SUPPORTED -void /* PRIVATE */ -png_handle_gAMA(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_fixed_point igamma; - png_byte buf[4]; - - png_debug(1, "in png_handle_gAMA"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & (PNG_HAVE_IDAT|PNG_HAVE_PLTE)) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - if (length != 4) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 4); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - igamma = png_get_fixed_point(NULL, buf); - - png_colorspace_set_gamma(png_ptr, &png_ptr->colorspace, igamma); - png_colorspace_sync(png_ptr, info_ptr); -} -#endif - -#ifdef PNG_READ_sBIT_SUPPORTED -void /* PRIVATE */ -png_handle_sBIT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - unsigned int truelen, i; - png_byte sample_depth; - png_byte buf[4]; - - png_debug(1, "in png_handle_sBIT"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & (PNG_HAVE_IDAT|PNG_HAVE_PLTE)) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - truelen = 3; - sample_depth = 8; - } - - else - { - truelen = png_ptr->channels; - sample_depth = png_ptr->bit_depth; - } - - if (length != truelen || length > 4) - { - png_chunk_benign_error(png_ptr, "invalid"); - png_crc_finish(png_ptr, length); - return; - } - - buf[0] = buf[1] = buf[2] = buf[3] = sample_depth; - png_crc_read(png_ptr, buf, truelen); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - for (i=0; i sample_depth) - { - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - } - - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - png_ptr->sig_bit.red = buf[0]; - png_ptr->sig_bit.green = buf[1]; - png_ptr->sig_bit.blue = buf[2]; - png_ptr->sig_bit.alpha = buf[3]; - } - - else - { - png_ptr->sig_bit.gray = buf[0]; - png_ptr->sig_bit.red = buf[0]; - png_ptr->sig_bit.green = buf[0]; - png_ptr->sig_bit.blue = buf[0]; - png_ptr->sig_bit.alpha = buf[1]; - } - - png_set_sBIT(png_ptr, info_ptr, &(png_ptr->sig_bit)); -} -#endif - -#ifdef PNG_READ_cHRM_SUPPORTED -void /* PRIVATE */ -png_handle_cHRM(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte buf[32]; - png_xy xy; - - png_debug(1, "in png_handle_cHRM"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & (PNG_HAVE_IDAT|PNG_HAVE_PLTE)) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - if (length != 32) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 32); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - xy.whitex = png_get_fixed_point(NULL, buf); - xy.whitey = png_get_fixed_point(NULL, buf + 4); - xy.redx = png_get_fixed_point(NULL, buf + 8); - xy.redy = png_get_fixed_point(NULL, buf + 12); - xy.greenx = png_get_fixed_point(NULL, buf + 16); - xy.greeny = png_get_fixed_point(NULL, buf + 20); - xy.bluex = png_get_fixed_point(NULL, buf + 24); - xy.bluey = png_get_fixed_point(NULL, buf + 28); - - if (xy.whitex == PNG_FIXED_ERROR || - xy.whitey == PNG_FIXED_ERROR || - xy.redx == PNG_FIXED_ERROR || - xy.redy == PNG_FIXED_ERROR || - xy.greenx == PNG_FIXED_ERROR || - xy.greeny == PNG_FIXED_ERROR || - xy.bluex == PNG_FIXED_ERROR || - xy.bluey == PNG_FIXED_ERROR) - { - png_chunk_benign_error(png_ptr, "invalid values"); - return; - } - - /* If a colorspace error has already been output skip this chunk */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) != 0) - return; - - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_FROM_cHRM) != 0) - { - png_ptr->colorspace.flags |= PNG_COLORSPACE_INVALID; - png_colorspace_sync(png_ptr, info_ptr); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - png_ptr->colorspace.flags |= PNG_COLORSPACE_FROM_cHRM; - (void)png_colorspace_set_chromaticities(png_ptr, &png_ptr->colorspace, &xy, - 1/*prefer cHRM values*/); - png_colorspace_sync(png_ptr, info_ptr); -} -#endif - -#ifdef PNG_READ_sRGB_SUPPORTED -void /* PRIVATE */ -png_handle_sRGB(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte intent; - - png_debug(1, "in png_handle_sRGB"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & (PNG_HAVE_IDAT|PNG_HAVE_PLTE)) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - if (length != 1) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, &intent, 1); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - /* If a colorspace error has already been output skip this chunk */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) != 0) - return; - - /* Only one sRGB or iCCP chunk is allowed, use the HAVE_INTENT flag to detect - * this. - */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_INTENT) != 0) - { - png_ptr->colorspace.flags |= PNG_COLORSPACE_INVALID; - png_colorspace_sync(png_ptr, info_ptr); - png_chunk_benign_error(png_ptr, "too many profiles"); - return; - } - - (void)png_colorspace_set_sRGB(png_ptr, &png_ptr->colorspace, intent); - png_colorspace_sync(png_ptr, info_ptr); -} -#endif /* READ_sRGB */ - -#ifdef PNG_READ_iCCP_SUPPORTED -void /* PRIVATE */ -png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -/* Note: this does not properly handle profiles that are > 64K under DOS */ -{ - png_const_charp errmsg = NULL; /* error message output, or no error */ - int finished = 0; /* crc checked */ - - png_debug(1, "in png_handle_iCCP"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & (PNG_HAVE_IDAT|PNG_HAVE_PLTE)) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - /* Consistent with all the above colorspace handling an obviously *invalid* - * chunk is just ignored, so does not invalidate the color space. An - * alternative is to set the 'invalid' flags at the start of this routine - * and only clear them in they were not set before and all the tests pass. - */ - - /* The keyword must be at least one character and there is a - * terminator (0) byte and the compression method byte, and the - * 'zlib' datastream is at least 11 bytes. - */ - if (length < 14) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "too short"); - return; - } - - /* If a colorspace error has already been output skip this chunk */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) != 0) - { - png_crc_finish(png_ptr, length); - return; - } - - /* Only one sRGB or iCCP chunk is allowed, use the HAVE_INTENT flag to detect - * this. - */ - if ((png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_INTENT) == 0) - { - uInt read_length, keyword_length; - char keyword[81]; - - /* Find the keyword; the keyword plus separator and compression method - * bytes can be at most 81 characters long. - */ - read_length = 81; /* maximum */ - if (read_length > length) - read_length = (uInt)length; - - png_crc_read(png_ptr, (png_bytep)keyword, read_length); - length -= read_length; - - /* The minimum 'zlib' stream is assumed to be just the 2 byte header, - * 5 bytes minimum 'deflate' stream, and the 4 byte checksum. - */ - if (length < 11) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "too short"); - return; - } - - keyword_length = 0; - while (keyword_length < 80 && keyword_length < read_length && - keyword[keyword_length] != 0) - ++keyword_length; - - /* TODO: make the keyword checking common */ - if (keyword_length >= 1 && keyword_length <= 79) - { - /* We only understand '0' compression - deflate - so if we get a - * different value we can't safely decode the chunk. - */ - if (keyword_length+1 < read_length && - keyword[keyword_length+1] == PNG_COMPRESSION_TYPE_BASE) - { - read_length -= keyword_length+2; - - if (png_inflate_claim(png_ptr, png_iCCP) == Z_OK) - { - Byte profile_header[132]={0}; - Byte local_buffer[PNG_INFLATE_BUF_SIZE]; - png_alloc_size_t size = (sizeof profile_header); - - png_ptr->zstream.next_in = (Bytef*)keyword + (keyword_length+2); - png_ptr->zstream.avail_in = read_length; - (void)png_inflate_read(png_ptr, local_buffer, - (sizeof local_buffer), &length, profile_header, &size, - 0/*finish: don't, because the output is too small*/); - - if (size == 0) - { - /* We have the ICC profile header; do the basic header checks. - */ - png_uint_32 profile_length = png_get_uint_32(profile_header); - - if (png_icc_check_length(png_ptr, &png_ptr->colorspace, - keyword, profile_length) != 0) - { - /* The length is apparently ok, so we can check the 132 - * byte header. - */ - if (png_icc_check_header(png_ptr, &png_ptr->colorspace, - keyword, profile_length, profile_header, - png_ptr->color_type) != 0) - { - /* Now read the tag table; a variable size buffer is - * needed at this point, allocate one for the whole - * profile. The header check has already validated - * that none of this stuff will overflow. - */ - png_uint_32 tag_count = - png_get_uint_32(profile_header + 128); - png_bytep profile = png_read_buffer(png_ptr, - profile_length, 2/*silent*/); - - if (profile != NULL) - { - memcpy(profile, profile_header, - (sizeof profile_header)); - - size = 12 * tag_count; - - (void)png_inflate_read(png_ptr, local_buffer, - (sizeof local_buffer), &length, - profile + (sizeof profile_header), &size, 0); - - /* Still expect a buffer error because we expect - * there to be some tag data! - */ - if (size == 0) - { - if (png_icc_check_tag_table(png_ptr, - &png_ptr->colorspace, keyword, profile_length, - profile) != 0) - { - /* The profile has been validated for basic - * security issues, so read the whole thing in. - */ - size = profile_length - (sizeof profile_header) - - 12 * tag_count; - - (void)png_inflate_read(png_ptr, local_buffer, - (sizeof local_buffer), &length, - profile + (sizeof profile_header) + - 12 * tag_count, &size, 1/*finish*/); - - if (length > 0 && !(png_ptr->flags & - PNG_FLAG_BENIGN_ERRORS_WARN)) - errmsg = "extra compressed data"; - - /* But otherwise allow extra data: */ - else if (size == 0) - { - if (length > 0) - { - /* This can be handled completely, so - * keep going. - */ - png_chunk_warning(png_ptr, - "extra compressed data"); - } - - png_crc_finish(png_ptr, length); - finished = 1; - -# if defined(PNG_sRGB_SUPPORTED) && PNG_sRGB_PROFILE_CHECKS >= 0 - /* Check for a match against sRGB */ - png_icc_set_sRGB(png_ptr, - &png_ptr->colorspace, profile, - png_ptr->zstream.adler); -# endif - - /* Steal the profile for info_ptr. */ - if (info_ptr != NULL) - { - png_free_data(png_ptr, info_ptr, - PNG_FREE_ICCP, 0); - - info_ptr->iccp_name = png_voidcast(char*, - png_malloc_base(png_ptr, - keyword_length+1)); - if (info_ptr->iccp_name != NULL) - { - memcpy(info_ptr->iccp_name, keyword, - keyword_length+1); - info_ptr->iccp_proflen = - profile_length; - info_ptr->iccp_profile = profile; - png_ptr->read_buffer = NULL; /*steal*/ - info_ptr->free_me |= PNG_FREE_ICCP; - info_ptr->valid |= PNG_INFO_iCCP; - } - - else - { - png_ptr->colorspace.flags |= - PNG_COLORSPACE_INVALID; - errmsg = "out of memory"; - } - } - - /* else the profile remains in the read - * buffer which gets reused for subsequent - * chunks. - */ - - if (info_ptr != NULL) - png_colorspace_sync(png_ptr, info_ptr); - - if (errmsg == NULL) - { - png_ptr->zowner = 0; - return; - } - } - if (errmsg == NULL) - errmsg = png_ptr->zstream.msg; - } - /* else png_icc_check_tag_table output an error */ - } - else /* profile truncated */ - errmsg = png_ptr->zstream.msg; - } - - else - errmsg = "out of memory"; - } - - /* else png_icc_check_header output an error */ - } - - /* else png_icc_check_length output an error */ - } - - else /* profile truncated */ - errmsg = png_ptr->zstream.msg; - - /* Release the stream */ - png_ptr->zowner = 0; - } - - else /* png_inflate_claim failed */ - errmsg = png_ptr->zstream.msg; - } - - else - errmsg = "bad compression method"; /* or missing */ - } - - else - errmsg = "bad keyword"; - } - - else - errmsg = "too many profiles"; - - /* Failure: the reason is in 'errmsg' */ - if (finished == 0) - png_crc_finish(png_ptr, length); - - png_ptr->colorspace.flags |= PNG_COLORSPACE_INVALID; - png_colorspace_sync(png_ptr, info_ptr); - if (errmsg != NULL) /* else already output */ - png_chunk_benign_error(png_ptr, errmsg); -} -#endif /* READ_iCCP */ - -#ifdef PNG_READ_sPLT_SUPPORTED -void /* PRIVATE */ -png_handle_sPLT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -/* Note: this does not properly handle chunks that are > 64K under DOS */ -{ - png_bytep entry_start, buffer; - png_sPLT_t new_palette; - png_sPLT_entryp pp; - png_uint_32 data_length; - int entry_size, i; - png_uint_32 skip = 0; - png_uint_32 dl; - size_t max_dl; - - png_debug(1, "in png_handle_sPLT"); - -#ifdef PNG_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_cache_max != 0) - { - if (png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - return; - } - - if (--png_ptr->user_chunk_cache_max == 1) - { - png_warning(png_ptr, "No space in chunk cache for sPLT"); - png_crc_finish(png_ptr, length); - return; - } - } -#endif - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - -#ifdef PNG_MAX_MALLOC_64K - if (length > 65535U) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "too large to fit in memory"); - return; - } -#endif - - buffer = png_read_buffer(png_ptr, length+1, 2/*silent*/); - if (buffer == NULL) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - - /* WARNING: this may break if size_t is less than 32 bits; it is assumed - * that the PNG_MAX_MALLOC_64K test is enabled in this case, but this is a - * potential breakage point if the types in pngconf.h aren't exactly right. - */ - png_crc_read(png_ptr, buffer, length); - - if (png_crc_finish(png_ptr, skip) != 0) - return; - - buffer[length] = 0; - - for (entry_start = buffer; *entry_start; entry_start++) - /* Empty loop to find end of name */ ; - - ++entry_start; - - /* A sample depth should follow the separator, and we should be on it */ - if (length < 2U || entry_start > buffer + (length - 2U)) - { - png_warning(png_ptr, "malformed sPLT chunk"); - return; - } - - new_palette.depth = *entry_start++; - entry_size = (new_palette.depth == 8 ? 6 : 10); - /* This must fit in a png_uint_32 because it is derived from the original - * chunk data length. - */ - data_length = length - (png_uint_32)(entry_start - buffer); - - /* Integrity-check the data length */ - if ((data_length % (unsigned int)entry_size) != 0) - { - png_warning(png_ptr, "sPLT chunk has bad length"); - return; - } - - dl = (png_uint_32)(data_length / (unsigned int)entry_size); - max_dl = PNG_SIZE_MAX / (sizeof (png_sPLT_entry)); - - if (dl > max_dl) - { - png_warning(png_ptr, "sPLT chunk too long"); - return; - } - - new_palette.nentries = (png_int_32)(data_length / (unsigned int)entry_size); - - new_palette.entries = (png_sPLT_entryp)png_malloc_warn(png_ptr, - (png_alloc_size_t) new_palette.nentries * (sizeof (png_sPLT_entry))); - - if (new_palette.entries == NULL) - { - png_warning(png_ptr, "sPLT chunk requires too much memory"); - return; - } - -#ifdef PNG_POINTER_INDEXING_SUPPORTED - for (i = 0; i < new_palette.nentries; i++) - { - pp = new_palette.entries + i; - - if (new_palette.depth == 8) - { - pp->red = *entry_start++; - pp->green = *entry_start++; - pp->blue = *entry_start++; - pp->alpha = *entry_start++; - } - - else - { - pp->red = png_get_uint_16(entry_start); entry_start += 2; - pp->green = png_get_uint_16(entry_start); entry_start += 2; - pp->blue = png_get_uint_16(entry_start); entry_start += 2; - pp->alpha = png_get_uint_16(entry_start); entry_start += 2; - } - - pp->frequency = png_get_uint_16(entry_start); entry_start += 2; - } -#else - pp = new_palette.entries; - - for (i = 0; i < new_palette.nentries; i++) - { - - if (new_palette.depth == 8) - { - pp[i].red = *entry_start++; - pp[i].green = *entry_start++; - pp[i].blue = *entry_start++; - pp[i].alpha = *entry_start++; - } - - else - { - pp[i].red = png_get_uint_16(entry_start); entry_start += 2; - pp[i].green = png_get_uint_16(entry_start); entry_start += 2; - pp[i].blue = png_get_uint_16(entry_start); entry_start += 2; - pp[i].alpha = png_get_uint_16(entry_start); entry_start += 2; - } - - pp[i].frequency = png_get_uint_16(entry_start); entry_start += 2; - } -#endif - - /* Discard all chunk data except the name and stash that */ - new_palette.name = (png_charp)buffer; - - png_set_sPLT(png_ptr, info_ptr, &new_palette, 1); - - png_free(png_ptr, new_palette.entries); -} -#endif /* READ_sPLT */ - -#ifdef PNG_READ_tRNS_SUPPORTED -void /* PRIVATE */ -png_handle_tRNS(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte readbuf[PNG_MAX_PALETTE_LENGTH]; - - png_debug(1, "in png_handle_tRNS"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - png_byte buf[2]; - - if (length != 2) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 2); - png_ptr->num_trans = 1; - png_ptr->trans_color.gray = png_get_uint_16(buf); - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - png_byte buf[6]; - - if (length != 6) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, length); - png_ptr->num_trans = 1; - png_ptr->trans_color.red = png_get_uint_16(buf); - png_ptr->trans_color.green = png_get_uint_16(buf + 2); - png_ptr->trans_color.blue = png_get_uint_16(buf + 4); - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if ((png_ptr->mode & PNG_HAVE_PLTE) == 0) - { - /* TODO: is this actually an error in the ISO spec? */ - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - if (length > (unsigned int) png_ptr->num_palette || - length > (unsigned int) PNG_MAX_PALETTE_LENGTH || - length == 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, readbuf, length); - png_ptr->num_trans = (png_uint_16)length; - } - - else - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid with alpha channel"); - return; - } - - if (png_crc_finish(png_ptr, 0) != 0) - { - png_ptr->num_trans = 0; - return; - } - - /* TODO: this is a horrible side effect in the palette case because the - * png_struct ends up with a pointer to the tRNS buffer owned by the - * png_info. Fix this. - */ - png_set_tRNS(png_ptr, info_ptr, readbuf, png_ptr->num_trans, - &(png_ptr->trans_color)); -} -#endif - -#ifdef PNG_READ_bKGD_SUPPORTED -void /* PRIVATE */ -png_handle_bKGD(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - unsigned int truelen; - png_byte buf[6]; - png_color_16 background; - - png_debug(1, "in png_handle_bKGD"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0 || - (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - (png_ptr->mode & PNG_HAVE_PLTE) == 0)) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - truelen = 1; - - else if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - truelen = 6; - - else - truelen = 2; - - if (length != truelen) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, truelen); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - /* We convert the index value into RGB components so that we can allow - * arbitrary RGB values for background when we have transparency, and - * so it is easy to determine the RGB values of the background color - * from the info_ptr struct. - */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - background.index = buf[0]; - - if (info_ptr != NULL && info_ptr->num_palette != 0) - { - if (buf[0] >= info_ptr->num_palette) - { - png_chunk_benign_error(png_ptr, "invalid index"); - return; - } - - background.red = (png_uint_16)png_ptr->palette[buf[0]].red; - background.green = (png_uint_16)png_ptr->palette[buf[0]].green; - background.blue = (png_uint_16)png_ptr->palette[buf[0]].blue; - } - - else - background.red = background.green = background.blue = 0; - - background.gray = 0; - } - - else if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) /* GRAY */ - { - if (png_ptr->bit_depth <= 8) - { - if (buf[0] != 0 || buf[1] >= (unsigned int)(1 << png_ptr->bit_depth)) - { - png_chunk_benign_error(png_ptr, "invalid gray level"); - return; - } - } - - background.index = 0; - background.red = - background.green = - background.blue = - background.gray = png_get_uint_16(buf); - } - - else - { - if (png_ptr->bit_depth <= 8) - { - if (buf[0] != 0 || buf[2] != 0 || buf[4] != 0) - { - png_chunk_benign_error(png_ptr, "invalid color"); - return; - } - } - - background.index = 0; - background.red = png_get_uint_16(buf); - background.green = png_get_uint_16(buf + 2); - background.blue = png_get_uint_16(buf + 4); - background.gray = 0; - } - - png_set_bKGD(png_ptr, info_ptr, &background); -} -#endif - -#ifdef PNG_READ_eXIf_SUPPORTED -void /* PRIVATE */ -png_handle_eXIf(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - unsigned int i; - - png_debug(1, "in png_handle_eXIf"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - if (length < 2) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "too short"); - return; - } - - else if (info_ptr == NULL || (info_ptr->valid & PNG_INFO_eXIf) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - info_ptr->free_me |= PNG_FREE_EXIF; - - info_ptr->eXIf_buf = png_voidcast(png_bytep, - png_malloc_warn(png_ptr, length)); - - if (info_ptr->eXIf_buf == NULL) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - for (i = 0; i < length; i++) - { - png_byte buf[1]; - png_crc_read(png_ptr, buf, 1); - info_ptr->eXIf_buf[i] = buf[0]; - if (i == 1 && buf[0] != 'M' && buf[0] != 'I' - && info_ptr->eXIf_buf[0] != buf[0]) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "incorrect byte-order specifier"); - png_free(png_ptr, info_ptr->eXIf_buf); - info_ptr->eXIf_buf = NULL; - return; - } - } - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - png_set_eXIf_1(png_ptr, info_ptr, length, info_ptr->eXIf_buf); - - png_free(png_ptr, info_ptr->eXIf_buf); - info_ptr->eXIf_buf = NULL; -} -#endif - -#ifdef PNG_READ_hIST_SUPPORTED -void /* PRIVATE */ -png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - unsigned int num, i; - png_uint_16 readbuf[PNG_MAX_PALETTE_LENGTH]; - - png_debug(1, "in png_handle_hIST"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0 || - (png_ptr->mode & PNG_HAVE_PLTE) == 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - num = length / 2 ; - - if (num != (unsigned int) png_ptr->num_palette || - num > (unsigned int) PNG_MAX_PALETTE_LENGTH) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - for (i = 0; i < num; i++) - { - png_byte buf[2]; - - png_crc_read(png_ptr, buf, 2); - readbuf[i] = png_get_uint_16(buf); - } - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - png_set_hIST(png_ptr, info_ptr, readbuf); -} -#endif - -#ifdef PNG_READ_pHYs_SUPPORTED -void /* PRIVATE */ -png_handle_pHYs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte buf[9]; - png_uint_32 res_x, res_y; - int unit_type; - - png_debug(1, "in png_handle_pHYs"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if (length != 9) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 9); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - res_x = png_get_uint_32(buf); - res_y = png_get_uint_32(buf + 4); - unit_type = buf[8]; - png_set_pHYs(png_ptr, info_ptr, res_x, res_y, unit_type); -} -#endif - -#ifdef PNG_READ_oFFs_SUPPORTED -void /* PRIVATE */ -png_handle_oFFs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte buf[9]; - png_int_32 offset_x, offset_y; - int unit_type; - - png_debug(1, "in png_handle_oFFs"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if (length != 9) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 9); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - offset_x = png_get_int_32(buf); - offset_y = png_get_int_32(buf + 4); - unit_type = buf[8]; - png_set_oFFs(png_ptr, info_ptr, offset_x, offset_y, unit_type); -} -#endif - -#ifdef PNG_READ_pCAL_SUPPORTED -/* Read the pCAL chunk (described in the PNG Extensions document) */ -void /* PRIVATE */ -png_handle_pCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_int_32 X0, X1; - png_byte type, nparams; - png_bytep buffer, buf, units, endptr; - png_charpp params; - int i; - - png_debug(1, "in png_handle_pCAL"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_pCAL) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - png_debug1(2, "Allocating and reading pCAL chunk data (%u bytes)", - length + 1); - - buffer = png_read_buffer(png_ptr, length+1, 2/*silent*/); - - if (buffer == NULL) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - png_crc_read(png_ptr, buffer, length); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - buffer[length] = 0; /* Null terminate the last string */ - - png_debug(3, "Finding end of pCAL purpose string"); - for (buf = buffer; *buf; buf++) - /* Empty loop */ ; - - endptr = buffer + length; - - /* We need to have at least 12 bytes after the purpose string - * in order to get the parameter information. - */ - if (endptr - buf <= 12) - { - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_debug(3, "Reading pCAL X0, X1, type, nparams, and units"); - X0 = png_get_int_32((png_bytep)buf+1); - X1 = png_get_int_32((png_bytep)buf+5); - type = buf[9]; - nparams = buf[10]; - units = buf + 11; - - png_debug(3, "Checking pCAL equation type and number of parameters"); - /* Check that we have the right number of parameters for known - * equation types. - */ - if ((type == PNG_EQUATION_LINEAR && nparams != 2) || - (type == PNG_EQUATION_BASE_E && nparams != 3) || - (type == PNG_EQUATION_ARBITRARY && nparams != 3) || - (type == PNG_EQUATION_HYPERBOLIC && nparams != 4)) - { - png_chunk_benign_error(png_ptr, "invalid parameter count"); - return; - } - - else if (type >= PNG_EQUATION_LAST) - { - png_chunk_benign_error(png_ptr, "unrecognized equation type"); - } - - for (buf = units; *buf; buf++) - /* Empty loop to move past the units string. */ ; - - png_debug(3, "Allocating pCAL parameters array"); - - params = png_voidcast(png_charpp, png_malloc_warn(png_ptr, - nparams * (sizeof (png_charp)))); - - if (params == NULL) - { - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - /* Get pointers to the start of each parameter string. */ - for (i = 0; i < nparams; i++) - { - buf++; /* Skip the null string terminator from previous parameter. */ - - png_debug1(3, "Reading pCAL parameter %d", i); - - for (params[i] = (png_charp)buf; buf <= endptr && *buf != 0; buf++) - /* Empty loop to move past each parameter string */ ; - - /* Make sure we haven't run out of data yet */ - if (buf > endptr) - { - png_free(png_ptr, params); - png_chunk_benign_error(png_ptr, "invalid data"); - return; - } - } - - png_set_pCAL(png_ptr, info_ptr, (png_charp)buffer, X0, X1, type, nparams, - (png_charp)units, params); - - png_free(png_ptr, params); -} -#endif - -#ifdef PNG_READ_sCAL_SUPPORTED -/* Read the sCAL chunk */ -void /* PRIVATE */ -png_handle_sCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_bytep buffer; - size_t i; - int state; - - png_debug(1, "in png_handle_sCAL"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of place"); - return; - } - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sCAL) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - /* Need unit type, width, \0, height: minimum 4 bytes */ - else if (length < 4) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_debug1(2, "Allocating and reading sCAL chunk data (%u bytes)", - length + 1); - - buffer = png_read_buffer(png_ptr, length+1, 2/*silent*/); - - if (buffer == NULL) - { - png_chunk_benign_error(png_ptr, "out of memory"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buffer, length); - buffer[length] = 0; /* Null terminate the last string */ - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - /* Validate the unit. */ - if (buffer[0] != 1 && buffer[0] != 2) - { - png_chunk_benign_error(png_ptr, "invalid unit"); - return; - } - - /* Validate the ASCII numbers, need two ASCII numbers separated by - * a '\0' and they need to fit exactly in the chunk data. - */ - i = 1; - state = 0; - - if (png_check_fp_number((png_const_charp)buffer, length, &state, &i) == 0 || - i >= length || buffer[i++] != 0) - png_chunk_benign_error(png_ptr, "bad width format"); - - else if (PNG_FP_IS_POSITIVE(state) == 0) - png_chunk_benign_error(png_ptr, "non-positive width"); - - else - { - size_t heighti = i; - - state = 0; - if (png_check_fp_number((png_const_charp)buffer, length, - &state, &i) == 0 || i != length) - png_chunk_benign_error(png_ptr, "bad height format"); - - else if (PNG_FP_IS_POSITIVE(state) == 0) - png_chunk_benign_error(png_ptr, "non-positive height"); - - else - /* This is the (only) success case. */ - png_set_sCAL_s(png_ptr, info_ptr, buffer[0], - (png_charp)buffer+1, (png_charp)buffer+heighti); - } -} -#endif - -#ifdef PNG_READ_tIME_SUPPORTED -void /* PRIVATE */ -png_handle_tIME(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_byte buf[7]; - png_time mod_time; - - png_debug(1, "in png_handle_tIME"); - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - else if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME) != 0) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "duplicate"); - return; - } - - if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - png_ptr->mode |= PNG_AFTER_IDAT; - - if (length != 7) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "invalid"); - return; - } - - png_crc_read(png_ptr, buf, 7); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - mod_time.second = buf[6]; - mod_time.minute = buf[5]; - mod_time.hour = buf[4]; - mod_time.day = buf[3]; - mod_time.month = buf[2]; - mod_time.year = png_get_uint_16(buf); - - png_set_tIME(png_ptr, info_ptr, &mod_time); -} -#endif - -#ifdef PNG_READ_tEXt_SUPPORTED -/* Note: this does not properly handle chunks that are > 64K under DOS */ -void /* PRIVATE */ -png_handle_tEXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_text text_info; - png_bytep buffer; - png_charp key; - png_charp text; - png_uint_32 skip = 0; - - png_debug(1, "in png_handle_tEXt"); - -#ifdef PNG_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_cache_max != 0) - { - if (png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - return; - } - - if (--png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "no space in chunk cache"); - return; - } - } -#endif - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - png_ptr->mode |= PNG_AFTER_IDAT; - -#ifdef PNG_MAX_MALLOC_64K - if (length > 65535U) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "too large to fit in memory"); - return; - } -#endif - - buffer = png_read_buffer(png_ptr, length+1, 1/*warn*/); - - if (buffer == NULL) - { - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - png_crc_read(png_ptr, buffer, length); - - if (png_crc_finish(png_ptr, skip) != 0) - return; - - key = (png_charp)buffer; - key[length] = 0; - - for (text = key; *text; text++) - /* Empty loop to find end of key */ ; - - if (text != key + length) - text++; - - text_info.compression = PNG_TEXT_COMPRESSION_NONE; - text_info.key = key; - text_info.lang = NULL; - text_info.lang_key = NULL; - text_info.itxt_length = 0; - text_info.text = text; - text_info.text_length = strlen(text); - - if (png_set_text_2(png_ptr, info_ptr, &text_info, 1) != 0) - png_warning(png_ptr, "Insufficient memory to process text chunk"); -} -#endif - -#ifdef PNG_READ_zTXt_SUPPORTED -/* Note: this does not correctly handle chunks that are > 64K under DOS */ -void /* PRIVATE */ -png_handle_zTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_const_charp errmsg = NULL; - png_bytep buffer; - png_uint_32 keyword_length; - - png_debug(1, "in png_handle_zTXt"); - -#ifdef PNG_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_cache_max != 0) - { - if (png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - return; - } - - if (--png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "no space in chunk cache"); - return; - } - } -#endif - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - png_ptr->mode |= PNG_AFTER_IDAT; - - /* Note, "length" is sufficient here; we won't be adding - * a null terminator later. - */ - buffer = png_read_buffer(png_ptr, length, 2/*silent*/); - - if (buffer == NULL) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - png_crc_read(png_ptr, buffer, length); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - /* TODO: also check that the keyword contents match the spec! */ - for (keyword_length = 0; - keyword_length < length && buffer[keyword_length] != 0; - ++keyword_length) - /* Empty loop to find end of name */ ; - - if (keyword_length > 79 || keyword_length < 1) - errmsg = "bad keyword"; - - /* zTXt must have some LZ data after the keyword, although it may expand to - * zero bytes; we need a '\0' at the end of the keyword, the compression type - * then the LZ data: - */ - else if (keyword_length + 3 > length) - errmsg = "truncated"; - - else if (buffer[keyword_length+1] != PNG_COMPRESSION_TYPE_BASE) - errmsg = "unknown compression type"; - - else - { - png_alloc_size_t uncompressed_length = PNG_SIZE_MAX; - - /* TODO: at present png_decompress_chunk imposes a single application - * level memory limit, this should be split to different values for iCCP - * and text chunks. - */ - if (png_decompress_chunk(png_ptr, length, keyword_length+2, - &uncompressed_length, 1/*terminate*/) == Z_STREAM_END) - { - png_text text; - - if (png_ptr->read_buffer == NULL) - errmsg="Read failure in png_handle_zTXt"; - else - { - /* It worked; png_ptr->read_buffer now looks like a tEXt chunk - * except for the extra compression type byte and the fact that - * it isn't necessarily '\0' terminated. - */ - buffer = png_ptr->read_buffer; - buffer[uncompressed_length+(keyword_length+2)] = 0; - - text.compression = PNG_TEXT_COMPRESSION_zTXt; - text.key = (png_charp)buffer; - text.text = (png_charp)(buffer + keyword_length+2); - text.text_length = uncompressed_length; - text.itxt_length = 0; - text.lang = NULL; - text.lang_key = NULL; - - if (png_set_text_2(png_ptr, info_ptr, &text, 1) != 0) - errmsg = "insufficient memory"; - } - } - - else - errmsg = png_ptr->zstream.msg; - } - - if (errmsg != NULL) - png_chunk_benign_error(png_ptr, errmsg); -} -#endif - -#ifdef PNG_READ_iTXt_SUPPORTED -/* Note: this does not correctly handle chunks that are > 64K under DOS */ -void /* PRIVATE */ -png_handle_iTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) -{ - png_const_charp errmsg = NULL; - png_bytep buffer; - png_uint_32 prefix_length; - - png_debug(1, "in png_handle_iTXt"); - -#ifdef PNG_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_cache_max != 0) - { - if (png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - return; - } - - if (--png_ptr->user_chunk_cache_max == 1) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "no space in chunk cache"); - return; - } - } -#endif - - if ((png_ptr->mode & PNG_HAVE_IHDR) == 0) - png_chunk_error(png_ptr, "missing IHDR"); - - if ((png_ptr->mode & PNG_HAVE_IDAT) != 0) - png_ptr->mode |= PNG_AFTER_IDAT; - - buffer = png_read_buffer(png_ptr, length+1, 1/*warn*/); - - if (buffer == NULL) - { - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "out of memory"); - return; - } - - png_crc_read(png_ptr, buffer, length); - - if (png_crc_finish(png_ptr, 0) != 0) - return; - - /* First the keyword. */ - for (prefix_length=0; - prefix_length < length && buffer[prefix_length] != 0; - ++prefix_length) - /* Empty loop */ ; - - /* Perform a basic check on the keyword length here. */ - if (prefix_length > 79 || prefix_length < 1) - errmsg = "bad keyword"; - - /* Expect keyword, compression flag, compression type, language, translated - * keyword (both may be empty but are 0 terminated) then the text, which may - * be empty. - */ - else if (prefix_length + 5 > length) - errmsg = "truncated"; - - else if (buffer[prefix_length+1] == 0 || - (buffer[prefix_length+1] == 1 && - buffer[prefix_length+2] == PNG_COMPRESSION_TYPE_BASE)) - { - int compressed = buffer[prefix_length+1] != 0; - png_uint_32 language_offset, translated_keyword_offset; - png_alloc_size_t uncompressed_length = 0; - - /* Now the language tag */ - prefix_length += 3; - language_offset = prefix_length; - - for (; prefix_length < length && buffer[prefix_length] != 0; - ++prefix_length) - /* Empty loop */ ; - - /* WARNING: the length may be invalid here, this is checked below. */ - translated_keyword_offset = ++prefix_length; - - for (; prefix_length < length && buffer[prefix_length] != 0; - ++prefix_length) - /* Empty loop */ ; - - /* prefix_length should now be at the trailing '\0' of the translated - * keyword, but it may already be over the end. None of this arithmetic - * can overflow because chunks are at most 2^31 bytes long, but on 16-bit - * systems the available allocation may overflow. - */ - ++prefix_length; - - if (compressed == 0 && prefix_length <= length) - uncompressed_length = length - prefix_length; - - else if (compressed != 0 && prefix_length < length) - { - uncompressed_length = PNG_SIZE_MAX; - - /* TODO: at present png_decompress_chunk imposes a single application - * level memory limit, this should be split to different values for - * iCCP and text chunks. - */ - if (png_decompress_chunk(png_ptr, length, prefix_length, - &uncompressed_length, 1/*terminate*/) == Z_STREAM_END) - buffer = png_ptr->read_buffer; - - else - errmsg = png_ptr->zstream.msg; - } - - else - errmsg = "truncated"; - - if (errmsg == NULL) - { - png_text text; - - buffer[uncompressed_length+prefix_length] = 0; - - if (compressed == 0) - text.compression = PNG_ITXT_COMPRESSION_NONE; - - else - text.compression = PNG_ITXT_COMPRESSION_zTXt; - - text.key = (png_charp)buffer; - text.lang = (png_charp)buffer + language_offset; - text.lang_key = (png_charp)buffer + translated_keyword_offset; - text.text = (png_charp)buffer + prefix_length; - text.text_length = 0; - text.itxt_length = uncompressed_length; - - if (png_set_text_2(png_ptr, info_ptr, &text, 1) != 0) - errmsg = "insufficient memory"; - } - } - - else - errmsg = "bad compression info"; - - if (errmsg != NULL) - png_chunk_benign_error(png_ptr, errmsg); -} -#endif - -#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED -/* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */ -static int -png_cache_unknown_chunk(png_structrp png_ptr, png_uint_32 length) -{ - png_alloc_size_t limit = PNG_SIZE_MAX; - - if (png_ptr->unknown_chunk.data != NULL) - { - png_free(png_ptr, png_ptr->unknown_chunk.data); - png_ptr->unknown_chunk.data = NULL; - } - -# ifdef PNG_SET_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_malloc_max > 0 && - png_ptr->user_chunk_malloc_max < limit) - limit = png_ptr->user_chunk_malloc_max; - -# elif PNG_USER_CHUNK_MALLOC_MAX > 0 - if (PNG_USER_CHUNK_MALLOC_MAX < limit) - limit = PNG_USER_CHUNK_MALLOC_MAX; -# endif - - if (length <= limit) - { - PNG_CSTRING_FROM_CHUNK(png_ptr->unknown_chunk.name, png_ptr->chunk_name); - /* The following is safe because of the PNG_SIZE_MAX init above */ - png_ptr->unknown_chunk.size = (size_t)length/*SAFE*/; - /* 'mode' is a flag array, only the bottom four bits matter here */ - png_ptr->unknown_chunk.location = (png_byte)png_ptr->mode/*SAFE*/; - - if (length == 0) - png_ptr->unknown_chunk.data = NULL; - - else - { - /* Do a 'warn' here - it is handled below. */ - png_ptr->unknown_chunk.data = png_voidcast(png_bytep, - png_malloc_warn(png_ptr, length)); - } - } - - if (png_ptr->unknown_chunk.data == NULL && length > 0) - { - /* This is benign because we clean up correctly */ - png_crc_finish(png_ptr, length); - png_chunk_benign_error(png_ptr, "unknown chunk exceeds memory limits"); - return 0; - } - - else - { - if (length > 0) - png_crc_read(png_ptr, png_ptr->unknown_chunk.data, length); - png_crc_finish(png_ptr, 0); - return 1; - } -} -#endif /* READ_UNKNOWN_CHUNKS */ - -/* Handle an unknown, or known but disabled, chunk */ -void /* PRIVATE */ -png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, - png_uint_32 length, int keep) -{ - int handled = 0; /* the chunk was handled */ - - png_debug(1, "in png_handle_unknown"); - -#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED - /* NOTE: this code is based on the code in libpng-1.4.12 except for fixing - * the bug which meant that setting a non-default behavior for a specific - * chunk would be ignored (the default was always used unless a user - * callback was installed). - * - * 'keep' is the value from the png_chunk_unknown_handling, the setting for - * this specific chunk_name, if PNG_HANDLE_AS_UNKNOWN_SUPPORTED, if not it - * will always be PNG_HANDLE_CHUNK_AS_DEFAULT and it needs to be set here. - * This is just an optimization to avoid multiple calls to the lookup - * function. - */ -# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -# ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - keep = png_chunk_unknown_handling(png_ptr, png_ptr->chunk_name); -# endif -# endif - - /* One of the following methods will read the chunk or skip it (at least one - * of these is always defined because this is the only way to switch on - * PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) - */ -# ifdef PNG_READ_USER_CHUNKS_SUPPORTED - /* The user callback takes precedence over the chunk keep value, but the - * keep value is still required to validate a save of a critical chunk. - */ - if (png_ptr->read_user_chunk_fn != NULL) - { - if (png_cache_unknown_chunk(png_ptr, length) != 0) - { - /* Callback to user unknown chunk handler */ - int ret = (*(png_ptr->read_user_chunk_fn))(png_ptr, - &png_ptr->unknown_chunk); - - /* ret is: - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be discarded - * unless png_set_keep_unknown_chunks has been used to set - * a 'keep' behavior for this particular chunk, in which - * case that will be used. A critical chunk will cause an - * error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. - */ - if (ret < 0) - png_chunk_error(png_ptr, "error in user chunk"); - - else if (ret == 0) - { - /* If the keep value is 'default' or 'never' override it, but - * still error out on critical chunks unless the keep value is - * 'always' While this is weird it is the behavior in 1.4.12. - * A possible improvement would be to obey the value set for the - * chunk, but this would be an API change that would probably - * damage some applications. - * - * The png_app_warning below catches the case that matters, where - * the application has not set specific save or ignore for this - * chunk or global save or ignore. - */ - if (keep < PNG_HANDLE_CHUNK_IF_SAFE) - { -# ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - if (png_ptr->unknown_default < PNG_HANDLE_CHUNK_IF_SAFE) - { - png_chunk_warning(png_ptr, "Saving unknown chunk:"); - png_app_warning(png_ptr, - "forcing save of an unhandled chunk;" - " please call png_set_keep_unknown_chunks"); - /* with keep = PNG_HANDLE_CHUNK_IF_SAFE */ - } -# endif - keep = PNG_HANDLE_CHUNK_IF_SAFE; - } - } - - else /* chunk was handled */ - { - handled = 1; - /* Critical chunks can be safely discarded at this point. */ - keep = PNG_HANDLE_CHUNK_NEVER; - } - } - - else - keep = PNG_HANDLE_CHUNK_NEVER; /* insufficient memory */ - } - - else - /* Use the SAVE_UNKNOWN_CHUNKS code or skip the chunk */ -# endif /* READ_USER_CHUNKS */ - -# ifdef PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED - { - /* keep is currently just the per-chunk setting, if there was no - * setting change it to the global default now (not that this may - * still be AS_DEFAULT) then obtain the cache of the chunk if required, - * if not simply skip the chunk. - */ - if (keep == PNG_HANDLE_CHUNK_AS_DEFAULT) - keep = png_ptr->unknown_default; - - if (keep == PNG_HANDLE_CHUNK_ALWAYS || - (keep == PNG_HANDLE_CHUNK_IF_SAFE && - PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) - { - if (png_cache_unknown_chunk(png_ptr, length) == 0) - keep = PNG_HANDLE_CHUNK_NEVER; - } - - else - png_crc_finish(png_ptr, length); - } -# else -# ifndef PNG_READ_USER_CHUNKS_SUPPORTED -# error no method to support READ_UNKNOWN_CHUNKS -# endif - - { - /* If here there is no read callback pointer set and no support is - * compiled in to just save the unknown chunks, so simply skip this - * chunk. If 'keep' is something other than AS_DEFAULT or NEVER then - * the app has erroneously asked for unknown chunk saving when there - * is no support. - */ - if (keep > PNG_HANDLE_CHUNK_NEVER) - png_app_error(png_ptr, "no unknown chunk support available"); - - png_crc_finish(png_ptr, length); - } -# endif - -# ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED - /* Now store the chunk in the chunk list if appropriate, and if the limits - * permit it. - */ - if (keep == PNG_HANDLE_CHUNK_ALWAYS || - (keep == PNG_HANDLE_CHUNK_IF_SAFE && - PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) - { -# ifdef PNG_USER_LIMITS_SUPPORTED - switch (png_ptr->user_chunk_cache_max) - { - case 2: - png_ptr->user_chunk_cache_max = 1; - png_chunk_benign_error(png_ptr, "no space in chunk cache"); - /* FALLTHROUGH */ - case 1: - /* NOTE: prior to 1.6.0 this case resulted in an unknown critical - * chunk being skipped, now there will be a hard error below. - */ - break; - - default: /* not at limit */ - --(png_ptr->user_chunk_cache_max); - /* FALLTHROUGH */ - case 0: /* no limit */ -# endif /* USER_LIMITS */ - /* Here when the limit isn't reached or when limits are compiled - * out; store the chunk. - */ - png_set_unknown_chunks(png_ptr, info_ptr, - &png_ptr->unknown_chunk, 1); - handled = 1; -# ifdef PNG_USER_LIMITS_SUPPORTED - break; - } -# endif - } -# else /* no store support: the chunk must be handled by the user callback */ - PNG_UNUSED(info_ptr) -# endif - - /* Regardless of the error handling below the cached data (if any) can be - * freed now. Notice that the data is not freed if there is a png_error, but - * it will be freed by destroy_read_struct. - */ - if (png_ptr->unknown_chunk.data != NULL) - png_free(png_ptr, png_ptr->unknown_chunk.data); - png_ptr->unknown_chunk.data = NULL; - -#else /* !PNG_READ_UNKNOWN_CHUNKS_SUPPORTED */ - /* There is no support to read an unknown chunk, so just skip it. */ - png_crc_finish(png_ptr, length); - PNG_UNUSED(info_ptr) - PNG_UNUSED(keep) -#endif /* !READ_UNKNOWN_CHUNKS */ - - /* Check for unhandled critical chunks */ - if (handled == 0 && PNG_CHUNK_CRITICAL(png_ptr->chunk_name)) - png_chunk_error(png_ptr, "unhandled critical chunk"); -} - -/* This function is called to verify that a chunk name is valid. - * This function can't have the "critical chunk check" incorporated - * into it, since in the future we will need to be able to call user - * functions to handle unknown critical chunks after we check that - * the chunk name itself is valid. - */ - -/* Bit hacking: the test for an invalid byte in the 4 byte chunk name is: - * - * ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97)) - */ - -void /* PRIVATE */ -png_check_chunk_name(png_const_structrp png_ptr, png_uint_32 chunk_name) -{ - int i; - png_uint_32 cn=chunk_name; - - png_debug(1, "in png_check_chunk_name"); - - for (i=1; i<=4; ++i) - { - int c = cn & 0xff; - - if (c < 65 || c > 122 || (c > 90 && c < 97)) - png_chunk_error(png_ptr, "invalid chunk type"); - - cn >>= 8; - } -} - -void /* PRIVATE */ -png_check_chunk_length(png_const_structrp png_ptr, png_uint_32 length) -{ - png_alloc_size_t limit = PNG_UINT_31_MAX; - -# ifdef PNG_SET_USER_LIMITS_SUPPORTED - if (png_ptr->user_chunk_malloc_max > 0 && - png_ptr->user_chunk_malloc_max < limit) - limit = png_ptr->user_chunk_malloc_max; -# elif PNG_USER_CHUNK_MALLOC_MAX > 0 - if (PNG_USER_CHUNK_MALLOC_MAX < limit) - limit = PNG_USER_CHUNK_MALLOC_MAX; -# endif - if (png_ptr->chunk_name == png_IDAT) - { - png_alloc_size_t idat_limit = PNG_UINT_31_MAX; - size_t row_factor = - (size_t)png_ptr->width - * (size_t)png_ptr->channels - * (png_ptr->bit_depth > 8? 2: 1) - + 1 - + (png_ptr->interlaced? 6: 0); - if (png_ptr->height > PNG_UINT_32_MAX/row_factor) - idat_limit = PNG_UINT_31_MAX; - else - idat_limit = png_ptr->height * row_factor; - row_factor = row_factor > 32566? 32566 : row_factor; - idat_limit += 6 + 5*(idat_limit/row_factor+1); /* zlib+deflate overhead */ - idat_limit=idat_limit < PNG_UINT_31_MAX? idat_limit : PNG_UINT_31_MAX; - limit = limit < idat_limit? idat_limit : limit; - } - - if (length > limit) - { - png_debug2(0," length = %lu, limit = %lu", - (unsigned long)length,(unsigned long)limit); - png_chunk_error(png_ptr, "chunk data is too large"); - } -} - -/* Combines the row recently read in with the existing pixels in the row. This - * routine takes care of alpha and transparency if requested. This routine also - * handles the two methods of progressive display of interlaced images, - * depending on the 'display' value; if 'display' is true then the whole row - * (dp) is filled from the start by replicating the available pixels. If - * 'display' is false only those pixels present in the pass are filled in. - */ -void /* PRIVATE */ -png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display) -{ - unsigned int pixel_depth = png_ptr->transformed_pixel_depth; - png_const_bytep sp = png_ptr->row_buf + 1; - png_alloc_size_t row_width = png_ptr->width; - unsigned int pass = png_ptr->pass; - png_bytep end_ptr = 0; - png_byte end_byte = 0; - unsigned int end_mask; - - png_debug(1, "in png_combine_row"); - - /* Added in 1.5.6: it should not be possible to enter this routine until at - * least one row has been read from the PNG data and transformed. - */ - if (pixel_depth == 0) - png_error(png_ptr, "internal row logic error"); - - /* Added in 1.5.4: the pixel depth should match the information returned by - * any call to png_read_update_info at this point. Do not continue if we got - * this wrong. - */ - if (png_ptr->info_rowbytes != 0 && png_ptr->info_rowbytes != - PNG_ROWBYTES(pixel_depth, row_width)) - png_error(png_ptr, "internal row size calculation error"); - - /* Don't expect this to ever happen: */ - if (row_width == 0) - png_error(png_ptr, "internal row width error"); - - /* Preserve the last byte in cases where only part of it will be overwritten, - * the multiply below may overflow, we don't care because ANSI-C guarantees - * we get the low bits. - */ - end_mask = (pixel_depth * row_width) & 7; - if (end_mask != 0) - { - /* end_ptr == NULL is a flag to say do nothing */ - end_ptr = dp + PNG_ROWBYTES(pixel_depth, row_width) - 1; - end_byte = *end_ptr; -# ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - /* little-endian byte */ - end_mask = (unsigned int)(0xff << end_mask); - - else /* big-endian byte */ -# endif - end_mask = 0xff >> end_mask; - /* end_mask is now the bits to *keep* from the destination row */ - } - - /* For non-interlaced images this reduces to a memcpy(). A memcpy() - * will also happen if interlacing isn't supported or if the application - * does not call png_set_interlace_handling(). In the latter cases the - * caller just gets a sequence of the unexpanded rows from each interlace - * pass. - */ -#ifdef PNG_READ_INTERLACING_SUPPORTED - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) != 0 && - pass < 6 && (display == 0 || - /* The following copies everything for 'display' on passes 0, 2 and 4. */ - (display == 1 && (pass & 1) != 0))) - { - /* Narrow images may have no bits in a pass; the caller should handle - * this, but this test is cheap: - */ - if (row_width <= PNG_PASS_START_COL(pass)) - return; - - if (pixel_depth < 8) - { - /* For pixel depths up to 4 bpp the 8-pixel mask can be expanded to fit - * into 32 bits, then a single loop over the bytes using the four byte - * values in the 32-bit mask can be used. For the 'display' option the - * expanded mask may also not require any masking within a byte. To - * make this work the PACKSWAP option must be taken into account - it - * simply requires the pixels to be reversed in each byte. - * - * The 'regular' case requires a mask for each of the first 6 passes, - * the 'display' case does a copy for the even passes in the range - * 0..6. This has already been handled in the test above. - * - * The masks are arranged as four bytes with the first byte to use in - * the lowest bits (little-endian) regardless of the order (PACKSWAP or - * not) of the pixels in each byte. - * - * NOTE: the whole of this logic depends on the caller of this function - * only calling it on rows appropriate to the pass. This function only - * understands the 'x' logic; the 'y' logic is handled by the caller. - * - * The following defines allow generation of compile time constant bit - * masks for each pixel depth and each possibility of swapped or not - * swapped bytes. Pass 'p' is in the range 0..6; 'x', a pixel index, - * is in the range 0..7; and the result is 1 if the pixel is to be - * copied in the pass, 0 if not. 'S' is for the sparkle method, 'B' - * for the block method. - * - * With some compilers a compile time expression of the general form: - * - * (shift >= 32) ? (a >> (shift-32)) : (b >> shift) - * - * Produces warnings with values of 'shift' in the range 33 to 63 - * because the right hand side of the ?: expression is evaluated by - * the compiler even though it isn't used. Microsoft Visual C (various - * versions) and the Intel C compiler are known to do this. To avoid - * this the following macros are used in 1.5.6. This is a temporary - * solution to avoid destabilizing the code during the release process. - */ -# if PNG_USE_COMPILE_TIME_MASKS -# define PNG_LSR(x,s) ((x)>>((s) & 0x1f)) -# define PNG_LSL(x,s) ((x)<<((s) & 0x1f)) -# else -# define PNG_LSR(x,s) ((x)>>(s)) -# define PNG_LSL(x,s) ((x)<<(s)) -# endif -# define S_COPY(p,x) (((p)<4 ? PNG_LSR(0x80088822,(3-(p))*8+(7-(x))) :\ - PNG_LSR(0xaa55ff00,(7-(p))*8+(7-(x)))) & 1) -# define B_COPY(p,x) (((p)<4 ? PNG_LSR(0xff0fff33,(3-(p))*8+(7-(x))) :\ - PNG_LSR(0xff55ff00,(7-(p))*8+(7-(x)))) & 1) - - /* Return a mask for pass 'p' pixel 'x' at depth 'd'. The mask is - * little endian - the first pixel is at bit 0 - however the extra - * parameter 's' can be set to cause the mask position to be swapped - * within each byte, to match the PNG format. This is done by XOR of - * the shift with 7, 6 or 4 for bit depths 1, 2 and 4. - */ -# define PIXEL_MASK(p,x,d,s) \ - (PNG_LSL(((PNG_LSL(1U,(d)))-1),(((x)*(d))^((s)?8-(d):0)))) - - /* Hence generate the appropriate 'block' or 'sparkle' pixel copy mask. - */ -# define S_MASKx(p,x,d,s) (S_COPY(p,x)?PIXEL_MASK(p,x,d,s):0) -# define B_MASKx(p,x,d,s) (B_COPY(p,x)?PIXEL_MASK(p,x,d,s):0) - - /* Combine 8 of these to get the full mask. For the 1-bpp and 2-bpp - * cases the result needs replicating, for the 4-bpp case the above - * generates a full 32 bits. - */ -# define MASK_EXPAND(m,d) ((m)*((d)==1?0x01010101:((d)==2?0x00010001:1))) - -# define S_MASK(p,d,s) MASK_EXPAND(S_MASKx(p,0,d,s) + S_MASKx(p,1,d,s) +\ - S_MASKx(p,2,d,s) + S_MASKx(p,3,d,s) + S_MASKx(p,4,d,s) +\ - S_MASKx(p,5,d,s) + S_MASKx(p,6,d,s) + S_MASKx(p,7,d,s), d) - -# define B_MASK(p,d,s) MASK_EXPAND(B_MASKx(p,0,d,s) + B_MASKx(p,1,d,s) +\ - B_MASKx(p,2,d,s) + B_MASKx(p,3,d,s) + B_MASKx(p,4,d,s) +\ - B_MASKx(p,5,d,s) + B_MASKx(p,6,d,s) + B_MASKx(p,7,d,s), d) - -#if PNG_USE_COMPILE_TIME_MASKS - /* Utility macros to construct all the masks for a depth/swap - * combination. The 's' parameter says whether the format is PNG - * (big endian bytes) or not. Only the three odd-numbered passes are - * required for the display/block algorithm. - */ -# define S_MASKS(d,s) { S_MASK(0,d,s), S_MASK(1,d,s), S_MASK(2,d,s),\ - S_MASK(3,d,s), S_MASK(4,d,s), S_MASK(5,d,s) } - -# define B_MASKS(d,s) { B_MASK(1,d,s), B_MASK(3,d,s), B_MASK(5,d,s) } - -# define DEPTH_INDEX(d) ((d)==1?0:((d)==2?1:2)) - - /* Hence the pre-compiled masks indexed by PACKSWAP (or not), depth and - * then pass: - */ - static const png_uint_32 row_mask[2/*PACKSWAP*/][3/*depth*/][6] = - { - /* Little-endian byte masks for PACKSWAP */ - { S_MASKS(1,0), S_MASKS(2,0), S_MASKS(4,0) }, - /* Normal (big-endian byte) masks - PNG format */ - { S_MASKS(1,1), S_MASKS(2,1), S_MASKS(4,1) } - }; - - /* display_mask has only three entries for the odd passes, so index by - * pass>>1. - */ - static const png_uint_32 display_mask[2][3][3] = - { - /* Little-endian byte masks for PACKSWAP */ - { B_MASKS(1,0), B_MASKS(2,0), B_MASKS(4,0) }, - /* Normal (big-endian byte) masks - PNG format */ - { B_MASKS(1,1), B_MASKS(2,1), B_MASKS(4,1) } - }; - -# define MASK(pass,depth,display,png)\ - ((display)?display_mask[png][DEPTH_INDEX(depth)][pass>>1]:\ - row_mask[png][DEPTH_INDEX(depth)][pass]) - -#else /* !PNG_USE_COMPILE_TIME_MASKS */ - /* This is the runtime alternative: it seems unlikely that this will - * ever be either smaller or faster than the compile time approach. - */ -# define MASK(pass,depth,display,png)\ - ((display)?B_MASK(pass,depth,png):S_MASK(pass,depth,png)) -#endif /* !USE_COMPILE_TIME_MASKS */ - - /* Use the appropriate mask to copy the required bits. In some cases - * the byte mask will be 0 or 0xff; optimize these cases. row_width is - * the number of pixels, but the code copies bytes, so it is necessary - * to special case the end. - */ - png_uint_32 pixels_per_byte = 8 / pixel_depth; - png_uint_32 mask; - -# ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - mask = MASK(pass, pixel_depth, display, 0); - - else -# endif - mask = MASK(pass, pixel_depth, display, 1); - - for (;;) - { - png_uint_32 m; - - /* It doesn't matter in the following if png_uint_32 has more than - * 32 bits because the high bits always match those in m<<24; it is, - * however, essential to use OR here, not +, because of this. - */ - m = mask; - mask = (m >> 8) | (m << 24); /* rotate right to good compilers */ - m &= 0xff; - - if (m != 0) /* something to copy */ - { - if (m != 0xff) - *dp = (png_byte)((*dp & ~m) | (*sp & m)); - else - *dp = *sp; - } - - /* NOTE: this may overwrite the last byte with garbage if the image - * is not an exact number of bytes wide; libpng has always done - * this. - */ - if (row_width <= pixels_per_byte) - break; /* May need to restore part of the last byte */ - - row_width -= pixels_per_byte; - ++dp; - ++sp; - } - } - - else /* pixel_depth >= 8 */ - { - unsigned int bytes_to_copy, bytes_to_jump; - - /* Validate the depth - it must be a multiple of 8 */ - if (pixel_depth & 7) - png_error(png_ptr, "invalid user transform pixel depth"); - - pixel_depth >>= 3; /* now in bytes */ - row_width *= pixel_depth; - - /* Regardless of pass number the Adam 7 interlace always results in a - * fixed number of pixels to copy then to skip. There may be a - * different number of pixels to skip at the start though. - */ - { - unsigned int offset = PNG_PASS_START_COL(pass) * pixel_depth; - - row_width -= offset; - dp += offset; - sp += offset; - } - - /* Work out the bytes to copy. */ - if (display != 0) - { - /* When doing the 'block' algorithm the pixel in the pass gets - * replicated to adjacent pixels. This is why the even (0,2,4,6) - * passes are skipped above - the entire expanded row is copied. - */ - bytes_to_copy = (1<<((6-pass)>>1)) * pixel_depth; - - /* But don't allow this number to exceed the actual row width. */ - if (bytes_to_copy > row_width) - bytes_to_copy = (unsigned int)/*SAFE*/row_width; - } - - else /* normal row; Adam7 only ever gives us one pixel to copy. */ - bytes_to_copy = pixel_depth; - - /* In Adam7 there is a constant offset between where the pixels go. */ - bytes_to_jump = PNG_PASS_COL_OFFSET(pass) * pixel_depth; - - /* And simply copy these bytes. Some optimization is possible here, - * depending on the value of 'bytes_to_copy'. Special case the low - * byte counts, which we know to be frequent. - * - * Notice that these cases all 'return' rather than 'break' - this - * avoids an unnecessary test on whether to restore the last byte - * below. - */ - switch (bytes_to_copy) - { - case 1: - for (;;) - { - *dp = *sp; - - if (row_width <= bytes_to_jump) - return; - - dp += bytes_to_jump; - sp += bytes_to_jump; - row_width -= bytes_to_jump; - } - - case 2: - /* There is a possibility of a partial copy at the end here; this - * slows the code down somewhat. - */ - do - { - dp[0] = sp[0]; dp[1] = sp[1]; - - if (row_width <= bytes_to_jump) - return; - - sp += bytes_to_jump; - dp += bytes_to_jump; - row_width -= bytes_to_jump; - } - while (row_width > 1); - - /* And there can only be one byte left at this point: */ - *dp = *sp; - return; - - case 3: - /* This can only be the RGB case, so each copy is exactly one - * pixel and it is not necessary to check for a partial copy. - */ - for (;;) - { - dp[0] = sp[0]; dp[1] = sp[1]; dp[2] = sp[2]; - - if (row_width <= bytes_to_jump) - return; - - sp += bytes_to_jump; - dp += bytes_to_jump; - row_width -= bytes_to_jump; - } - - default: -#if PNG_ALIGN_TYPE != PNG_ALIGN_NONE - /* Check for double byte alignment and, if possible, use a - * 16-bit copy. Don't attempt this for narrow images - ones that - * are less than an interlace panel wide. Don't attempt it for - * wide bytes_to_copy either - use the memcpy there. - */ - if (bytes_to_copy < 16 /*else use memcpy*/ && - png_isaligned(dp, png_uint_16) && - png_isaligned(sp, png_uint_16) && - bytes_to_copy % (sizeof (png_uint_16)) == 0 && - bytes_to_jump % (sizeof (png_uint_16)) == 0) - { - /* Everything is aligned for png_uint_16 copies, but try for - * png_uint_32 first. - */ - if (png_isaligned(dp, png_uint_32) && - png_isaligned(sp, png_uint_32) && - bytes_to_copy % (sizeof (png_uint_32)) == 0 && - bytes_to_jump % (sizeof (png_uint_32)) == 0) - { - png_uint_32p dp32 = png_aligncast(png_uint_32p,dp); - png_const_uint_32p sp32 = png_aligncastconst( - png_const_uint_32p, sp); - size_t skip = (bytes_to_jump-bytes_to_copy) / - (sizeof (png_uint_32)); - - do - { - size_t c = bytes_to_copy; - do - { - *dp32++ = *sp32++; - c -= (sizeof (png_uint_32)); - } - while (c > 0); - - if (row_width <= bytes_to_jump) - return; - - dp32 += skip; - sp32 += skip; - row_width -= bytes_to_jump; - } - while (bytes_to_copy <= row_width); - - /* Get to here when the row_width truncates the final copy. - * There will be 1-3 bytes left to copy, so don't try the - * 16-bit loop below. - */ - dp = (png_bytep)dp32; - sp = (png_const_bytep)sp32; - do - *dp++ = *sp++; - while (--row_width > 0); - return; - } - - /* Else do it in 16-bit quantities, but only if the size is - * not too large. - */ - else - { - png_uint_16p dp16 = png_aligncast(png_uint_16p, dp); - png_const_uint_16p sp16 = png_aligncastconst( - png_const_uint_16p, sp); - size_t skip = (bytes_to_jump-bytes_to_copy) / - (sizeof (png_uint_16)); - - do - { - size_t c = bytes_to_copy; - do - { - *dp16++ = *sp16++; - c -= (sizeof (png_uint_16)); - } - while (c > 0); - - if (row_width <= bytes_to_jump) - return; - - dp16 += skip; - sp16 += skip; - row_width -= bytes_to_jump; - } - while (bytes_to_copy <= row_width); - - /* End of row - 1 byte left, bytes_to_copy > row_width: */ - dp = (png_bytep)dp16; - sp = (png_const_bytep)sp16; - do - *dp++ = *sp++; - while (--row_width > 0); - return; - } - } -#endif /* ALIGN_TYPE code */ - - /* The true default - use a memcpy: */ - for (;;) - { - memcpy(dp, sp, bytes_to_copy); - - if (row_width <= bytes_to_jump) - return; - - sp += bytes_to_jump; - dp += bytes_to_jump; - row_width -= bytes_to_jump; - if (bytes_to_copy > row_width) - bytes_to_copy = (unsigned int)/*SAFE*/row_width; - } - } - - /* NOT REACHED*/ - } /* pixel_depth >= 8 */ - - /* Here if pixel_depth < 8 to check 'end_ptr' below. */ - } - else -#endif /* READ_INTERLACING */ - - /* If here then the switch above wasn't used so just memcpy the whole row - * from the temporary row buffer (notice that this overwrites the end of the - * destination row if it is a partial byte.) - */ - memcpy(dp, sp, PNG_ROWBYTES(pixel_depth, row_width)); - - /* Restore the overwritten bits from the last byte if necessary. */ - if (end_ptr != NULL) - *end_ptr = (png_byte)((end_byte & end_mask) | (*end_ptr & ~end_mask)); -} - -#ifdef PNG_READ_INTERLACING_SUPPORTED -void /* PRIVATE */ -png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, - png_uint_32 transformations /* Because these may affect the byte layout */) -{ - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - /* Offset to next interlace block */ - static const unsigned int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - png_debug(1, "in png_do_read_interlace"); - if (row != NULL && row_info != NULL) - { - png_uint_32 final_width; - - final_width = row_info->width * png_pass_inc[pass]; - - switch (row_info->pixel_depth) - { - case 1: - { - png_bytep sp = row + (size_t)((row_info->width - 1) >> 3); - png_bytep dp = row + (size_t)((final_width - 1) >> 3); - unsigned int sshift, dshift; - unsigned int s_start, s_end; - int s_inc; - int jstop = (int)png_pass_inc[pass]; - png_byte v; - png_uint_32 i; - int j; - -#ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((transformations & PNG_PACKSWAP) != 0) - { - sshift = ((row_info->width + 7) & 0x07); - dshift = ((final_width + 7) & 0x07); - s_start = 7; - s_end = 0; - s_inc = -1; - } - - else -#endif - { - sshift = 7 - ((row_info->width + 7) & 0x07); - dshift = 7 - ((final_width + 7) & 0x07); - s_start = 0; - s_end = 7; - s_inc = 1; - } - - for (i = 0; i < row_info->width; i++) - { - v = (png_byte)((*sp >> sshift) & 0x01); - for (j = 0; j < jstop; j++) - { - unsigned int tmp = *dp & (0x7f7f >> (7 - dshift)); - tmp |= (unsigned int)(v << dshift); - *dp = (png_byte)(tmp & 0xff); - - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - - else - dshift = (unsigned int)((int)dshift + s_inc); - } - - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - - else - sshift = (unsigned int)((int)sshift + s_inc); - } - break; - } - - case 2: - { - png_bytep sp = row + (png_uint_32)((row_info->width - 1) >> 2); - png_bytep dp = row + (png_uint_32)((final_width - 1) >> 2); - unsigned int sshift, dshift; - unsigned int s_start, s_end; - int s_inc; - int jstop = (int)png_pass_inc[pass]; - png_uint_32 i; - -#ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((transformations & PNG_PACKSWAP) != 0) - { - sshift = (((row_info->width + 3) & 0x03) << 1); - dshift = (((final_width + 3) & 0x03) << 1); - s_start = 6; - s_end = 0; - s_inc = -2; - } - - else -#endif - { - sshift = ((3 - ((row_info->width + 3) & 0x03)) << 1); - dshift = ((3 - ((final_width + 3) & 0x03)) << 1); - s_start = 0; - s_end = 6; - s_inc = 2; - } - - for (i = 0; i < row_info->width; i++) - { - png_byte v; - int j; - - v = (png_byte)((*sp >> sshift) & 0x03); - for (j = 0; j < jstop; j++) - { - unsigned int tmp = *dp & (0x3f3f >> (6 - dshift)); - tmp |= (unsigned int)(v << dshift); - *dp = (png_byte)(tmp & 0xff); - - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - - else - dshift = (unsigned int)((int)dshift + s_inc); - } - - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - - else - sshift = (unsigned int)((int)sshift + s_inc); - } - break; - } - - case 4: - { - png_bytep sp = row + (size_t)((row_info->width - 1) >> 1); - png_bytep dp = row + (size_t)((final_width - 1) >> 1); - unsigned int sshift, dshift; - unsigned int s_start, s_end; - int s_inc; - png_uint_32 i; - int jstop = (int)png_pass_inc[pass]; - -#ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((transformations & PNG_PACKSWAP) != 0) - { - sshift = (((row_info->width + 1) & 0x01) << 2); - dshift = (((final_width + 1) & 0x01) << 2); - s_start = 4; - s_end = 0; - s_inc = -4; - } - - else -#endif - { - sshift = ((1 - ((row_info->width + 1) & 0x01)) << 2); - dshift = ((1 - ((final_width + 1) & 0x01)) << 2); - s_start = 0; - s_end = 4; - s_inc = 4; - } - - for (i = 0; i < row_info->width; i++) - { - png_byte v = (png_byte)((*sp >> sshift) & 0x0f); - int j; - - for (j = 0; j < jstop; j++) - { - unsigned int tmp = *dp & (0xf0f >> (4 - dshift)); - tmp |= (unsigned int)(v << dshift); - *dp = (png_byte)(tmp & 0xff); - - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - - else - dshift = (unsigned int)((int)dshift + s_inc); - } - - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - - else - sshift = (unsigned int)((int)sshift + s_inc); - } - break; - } - - default: - { - size_t pixel_bytes = (row_info->pixel_depth >> 3); - - png_bytep sp = row + (size_t)(row_info->width - 1) - * pixel_bytes; - - png_bytep dp = row + (size_t)(final_width - 1) * pixel_bytes; - - int jstop = (int)png_pass_inc[pass]; - png_uint_32 i; - - for (i = 0; i < row_info->width; i++) - { - png_byte v[8]; /* SAFE; pixel_depth does not exceed 64 */ - int j; - - memcpy(v, sp, pixel_bytes); - - for (j = 0; j < jstop; j++) - { - memcpy(dp, v, pixel_bytes); - dp -= pixel_bytes; - } - - sp -= pixel_bytes; - } - break; - } - } - - row_info->width = final_width; - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, final_width); - } -#ifndef PNG_READ_PACKSWAP_SUPPORTED - PNG_UNUSED(transformations) /* Silence compiler warning */ -#endif -} -#endif /* READ_INTERLACING */ - -static void -png_read_filter_row_sub(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i; - size_t istop = row_info->rowbytes; - unsigned int bpp = (row_info->pixel_depth + 7) >> 3; - png_bytep rp = row + bpp; - - PNG_UNUSED(prev_row) - - for (i = bpp; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } -} - -static void -png_read_filter_row_up(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i; - size_t istop = row_info->rowbytes; - png_bytep rp = row; - png_const_bytep pp = prev_row; - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); - rp++; - } -} - -static void -png_read_filter_row_avg(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - size_t i; - png_bytep rp = row; - png_const_bytep pp = prev_row; - unsigned int bpp = (row_info->pixel_depth + 7) >> 3; - size_t istop = row_info->rowbytes - bpp; - - for (i = 0; i < bpp; i++) - { - *rp = (png_byte)(((int)(*rp) + - ((int)(*pp++) / 2 )) & 0xff); - - rp++; - } - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } -} - -static void -png_read_filter_row_paeth_1byte_pixel(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_bytep rp_end = row + row_info->rowbytes; - int a, c; - - /* First pixel/byte */ - c = *prev_row++; - a = *row + c; - *row++ = (png_byte)a; - - /* Remainder */ - while (row < rp_end) - { - int b, pa, pb, pc, p; - - a &= 0xff; /* From previous iteration or start */ - b = *prev_row++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - /* Find the best predictor, the least of pa, pb, pc favoring the earlier - * ones in the case of a tie. - */ - if (pb < pa) - { - pa = pb; a = b; - } - if (pc < pa) a = c; - - /* Calculate the current pixel in a, and move the previous row pixel to c - * for the next time round the loop - */ - c = b; - a += *row; - *row++ = (png_byte)a; - } -} - -static void -png_read_filter_row_paeth_multibyte_pixel(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - unsigned int bpp = (row_info->pixel_depth + 7) >> 3; - png_bytep rp_end = row + bpp; - - /* Process the first pixel in the row completely (this is the same as 'up' - * because there is only one candidate predictor for the first row). - */ - while (row < rp_end) - { - int a = *row + *prev_row++; - *row++ = (png_byte)a; - } - - /* Remainder */ - rp_end = rp_end + (row_info->rowbytes - bpp); - - while (row < rp_end) - { - int a, b, c, pa, pb, pc, p; - - c = *(prev_row - bpp); - a = *(row - bpp); - b = *prev_row++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - if (pb < pa) - { - pa = pb; a = b; - } - if (pc < pa) a = c; - - a += *row; - *row++ = (png_byte)a; - } -} - -static void -png_init_filter_functions(png_structrp pp) - /* This function is called once for every PNG image (except for PNG images - * that only use PNG_FILTER_VALUE_NONE for all rows) to set the - * implementations required to reverse the filtering of PNG rows. Reversing - * the filter is the first transformation performed on the row data. It is - * performed in place, therefore an implementation can be selected based on - * the image pixel format. If the implementation depends on image width then - * take care to ensure that it works correctly if the image is interlaced - - * interlacing causes the actual row width to vary. - */ -{ - unsigned int bpp = (pp->pixel_depth + 7) >> 3; - - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub; - pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg; - if (bpp == 1) - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth_1byte_pixel; - else - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = - png_read_filter_row_paeth_multibyte_pixel; - -#ifdef PNG_FILTER_OPTIMIZATIONS - /* To use this define PNG_FILTER_OPTIMIZATIONS as the name of a function to - * call to install hardware optimizations for the above functions; simply - * replace whatever elements of the pp->read_filter[] array with a hardware - * specific (or, for that matter, generic) optimization. - * - * To see an example of this examine what configure.ac does when - * --enable-arm-neon is specified on the command line. - */ - PNG_FILTER_OPTIMIZATIONS(pp, bpp); -#endif -} - -void /* PRIVATE */ -png_read_filter_row(png_structrp pp, png_row_infop row_info, png_bytep row, - png_const_bytep prev_row, int filter) -{ - /* OPTIMIZATION: DO NOT MODIFY THIS FUNCTION, instead #define - * PNG_FILTER_OPTIMIZATIONS to a function that overrides the generic - * implementations. See png_init_filter_functions above. - */ - if (filter > PNG_FILTER_VALUE_NONE && filter < PNG_FILTER_VALUE_LAST) - { - if (pp->read_filter[0] == NULL) - png_init_filter_functions(pp); - - pp->read_filter[filter-1](row_info, row, prev_row); - } -} - -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED -void /* PRIVATE */ -png_read_IDAT_data(png_structrp png_ptr, png_bytep output, - png_alloc_size_t avail_out) -{ - /* Loop reading IDATs and decompressing the result into output[avail_out] */ - png_ptr->zstream.next_out = output; - png_ptr->zstream.avail_out = 0; /* safety: set below */ - - if (output == NULL) - avail_out = 0; - - do - { - int ret; - png_byte tmpbuf[PNG_INFLATE_BUF_SIZE]; - - if (png_ptr->zstream.avail_in == 0) - { - uInt avail_in; - png_bytep buffer; - - while (png_ptr->idat_size == 0) - { - png_crc_finish(png_ptr, 0); - - png_ptr->idat_size = png_read_chunk_header(png_ptr); - /* This is an error even in the 'check' case because the code just - * consumed a non-IDAT header. - */ - if (png_ptr->chunk_name != png_IDAT) - png_error(png_ptr, "Not enough image data"); - } - - avail_in = png_ptr->IDAT_read_size; - - if (avail_in > png_ptr->idat_size) - avail_in = (uInt)png_ptr->idat_size; - - /* A PNG with a gradually increasing IDAT size will defeat this attempt - * to minimize memory usage by causing lots of re-allocs, but - * realistically doing IDAT_read_size re-allocs is not likely to be a - * big problem. - */ - buffer = png_read_buffer(png_ptr, avail_in, 0/*error*/); - - png_crc_read(png_ptr, buffer, avail_in); - png_ptr->idat_size -= avail_in; - - png_ptr->zstream.next_in = buffer; - png_ptr->zstream.avail_in = avail_in; - } - - /* And set up the output side. */ - if (output != NULL) /* standard read */ - { - uInt out = ZLIB_IO_MAX; - - if (out > avail_out) - out = (uInt)avail_out; - - avail_out -= out; - png_ptr->zstream.avail_out = out; - } - - else /* after last row, checking for end */ - { - png_ptr->zstream.next_out = tmpbuf; - png_ptr->zstream.avail_out = (sizeof tmpbuf); - } - - /* Use NO_FLUSH; this gives zlib the maximum opportunity to optimize the - * process. If the LZ stream is truncated the sequential reader will - * terminally damage the stream, above, by reading the chunk header of the - * following chunk (it then exits with png_error). - * - * TODO: deal more elegantly with truncated IDAT lists. - */ - ret = PNG_INFLATE(png_ptr, Z_NO_FLUSH); - - /* Take the unconsumed output back. */ - if (output != NULL) - avail_out += png_ptr->zstream.avail_out; - - else /* avail_out counts the extra bytes */ - avail_out += (sizeof tmpbuf) - png_ptr->zstream.avail_out; - - png_ptr->zstream.avail_out = 0; - - if (ret == Z_STREAM_END) - { - /* Do this for safety; we won't read any more into this row. */ - png_ptr->zstream.next_out = NULL; - - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; - - if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0) - png_chunk_benign_error(png_ptr, "Extra compressed data"); - break; - } - - if (ret != Z_OK) - { - png_zstream_error(png_ptr, ret); - - if (output != NULL) - png_chunk_error(png_ptr, png_ptr->zstream.msg); - - else /* checking */ - { - png_chunk_benign_error(png_ptr, png_ptr->zstream.msg); - return; - } - } - } while (avail_out > 0); - - if (avail_out > 0) - { - /* The stream ended before the image; this is the same as too few IDATs so - * should be handled the same way. - */ - if (output != NULL) - png_error(png_ptr, "Not enough image data"); - - else /* the deflate stream contained extra data */ - png_chunk_benign_error(png_ptr, "Too much image data"); - } -} - -void /* PRIVATE */ -png_read_finish_IDAT(png_structrp png_ptr) -{ - /* We don't need any more data and the stream should have ended, however the - * LZ end code may actually not have been processed. In this case we must - * read it otherwise stray unread IDAT data or, more likely, an IDAT chunk - * may still remain to be consumed. - */ - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) - { - /* The NULL causes png_read_IDAT_data to swallow any remaining bytes in - * the compressed stream, but the stream may be damaged too, so even after - * this call we may need to terminate the zstream ownership. - */ - png_read_IDAT_data(png_ptr, NULL, 0); - png_ptr->zstream.next_out = NULL; /* safety */ - - /* Now clear everything out for safety; the following may not have been - * done. - */ - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) - { - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; - } - } - - /* If the zstream has not been released do it now *and* terminate the reading - * of the final IDAT chunk. - */ - if (png_ptr->zowner == png_IDAT) - { - /* Always do this; the pointers otherwise point into the read buffer. */ - png_ptr->zstream.next_in = NULL; - png_ptr->zstream.avail_in = 0; - - /* Now we no longer own the zstream. */ - png_ptr->zowner = 0; - - /* The slightly weird semantics of the sequential IDAT reading is that we - * are always in or at the end of an IDAT chunk, so we always need to do a - * crc_finish here. If idat_size is non-zero we also need to read the - * spurious bytes at the end of the chunk now. - */ - (void)png_crc_finish(png_ptr, png_ptr->idat_size); - } -} - -void /* PRIVATE */ -png_read_finish_row(png_structrp png_ptr) -{ - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - /* Start of interlace block in the y direction */ - static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; - - /* Offset to next interlace block in the y direction */ - static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; - - png_debug(1, "in png_read_finish_row"); - png_ptr->row_number++; - if (png_ptr->row_number < png_ptr->num_rows) - return; - - if (png_ptr->interlaced != 0) - { - png_ptr->row_number = 0; - - /* TO DO: don't do this if prev_row isn't needed (requires - * read-ahead of the next row's filter byte. - */ - memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); - - do - { - png_ptr->pass++; - - if (png_ptr->pass >= 7) - break; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - if ((png_ptr->transformations & PNG_INTERLACE) == 0) - { - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - } - - else /* if (png_ptr->transformations & PNG_INTERLACE) */ - break; /* libpng deinterlacing sees every row */ - - } while (png_ptr->num_rows == 0 || png_ptr->iwidth == 0); - - if (png_ptr->pass < 7) - return; - } - - /* Here after at the end of the last row of the last pass. */ - png_read_finish_IDAT(png_ptr); -} -#endif /* SEQUENTIAL_READ */ - -void /* PRIVATE */ -png_read_start_row(png_structrp png_ptr) -{ - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - /* Start of interlace block in the y direction */ - static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; - - /* Offset to next interlace block in the y direction */ - static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; - - unsigned int max_pixel_depth; - size_t row_bytes; - - png_debug(1, "in png_read_start_row"); - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED - png_init_read_transformations(png_ptr); -#endif - if (png_ptr->interlaced != 0) - { - if ((png_ptr->transformations & PNG_INTERLACE) == 0) - png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - - png_pass_ystart[0]) / png_pass_yinc[0]; - - else - png_ptr->num_rows = png_ptr->height; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - } - - else - { - png_ptr->num_rows = png_ptr->height; - png_ptr->iwidth = png_ptr->width; - } - - max_pixel_depth = (unsigned int)png_ptr->pixel_depth; - - /* WARNING: * png_read_transform_info (pngrtran.c) performs a simpler set of - * calculations to calculate the final pixel depth, then - * png_do_read_transforms actually does the transforms. This means that the - * code which effectively calculates this value is actually repeated in three - * separate places. They must all match. Innocent changes to the order of - * transformations can and will break libpng in a way that causes memory - * overwrites. - * - * TODO: fix this. - */ -#ifdef PNG_READ_PACK_SUPPORTED - if ((png_ptr->transformations & PNG_PACK) != 0 && png_ptr->bit_depth < 8) - max_pixel_depth = 8; -#endif - -#ifdef PNG_READ_EXPAND_SUPPORTED - if ((png_ptr->transformations & PNG_EXPAND) != 0) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (png_ptr->num_trans != 0) - max_pixel_depth = 32; - - else - max_pixel_depth = 24; - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - if (max_pixel_depth < 8) - max_pixel_depth = 8; - - if (png_ptr->num_trans != 0) - max_pixel_depth *= 2; - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - if (png_ptr->num_trans != 0) - { - max_pixel_depth *= 4; - max_pixel_depth /= 3; - } - } - } -#endif - -#ifdef PNG_READ_EXPAND_16_SUPPORTED - if ((png_ptr->transformations & PNG_EXPAND_16) != 0) - { -# ifdef PNG_READ_EXPAND_SUPPORTED - /* In fact it is an error if it isn't supported, but checking is - * the safe way. - */ - if ((png_ptr->transformations & PNG_EXPAND) != 0) - { - if (png_ptr->bit_depth < 16) - max_pixel_depth *= 2; - } - else -# endif - png_ptr->transformations &= ~PNG_EXPAND_16; - } -#endif - -#ifdef PNG_READ_FILLER_SUPPORTED - if ((png_ptr->transformations & (PNG_FILLER)) != 0) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - if (max_pixel_depth <= 8) - max_pixel_depth = 16; - - else - max_pixel_depth = 32; - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB || - png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (max_pixel_depth <= 32) - max_pixel_depth = 32; - - else - max_pixel_depth = 64; - } - } -#endif - -#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED - if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0) - { - if ( -#ifdef PNG_READ_EXPAND_SUPPORTED - (png_ptr->num_trans != 0 && - (png_ptr->transformations & PNG_EXPAND) != 0) || -#endif -#ifdef PNG_READ_FILLER_SUPPORTED - (png_ptr->transformations & (PNG_FILLER)) != 0 || -#endif - png_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (max_pixel_depth <= 16) - max_pixel_depth = 32; - - else - max_pixel_depth = 64; - } - - else - { - if (max_pixel_depth <= 8) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - max_pixel_depth = 32; - - else - max_pixel_depth = 24; - } - - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - max_pixel_depth = 64; - - else - max_pixel_depth = 48; - } - } -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) && \ -defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) - if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) - { - unsigned int user_pixel_depth = png_ptr->user_transform_depth * - png_ptr->user_transform_channels; - - if (user_pixel_depth > max_pixel_depth) - max_pixel_depth = user_pixel_depth; - } -#endif - - /* This value is stored in png_struct and double checked in the row read - * code. - */ - png_ptr->maximum_pixel_depth = (png_byte)max_pixel_depth; - png_ptr->transformed_pixel_depth = 0; /* calculated on demand */ - - /* Align the width on the next larger 8 pixels. Mainly used - * for interlacing - */ - row_bytes = ((png_ptr->width + 7) & ~((png_uint_32)7)); - /* Calculate the maximum bytes needed, adding a byte and a pixel - * for safety's sake - */ - row_bytes = PNG_ROWBYTES(max_pixel_depth, row_bytes) + - 1 + ((max_pixel_depth + 7) >> 3U); - -#ifdef PNG_MAX_MALLOC_64K - if (row_bytes > (png_uint_32)65536L) - png_error(png_ptr, "This image requires a row greater than 64KB"); -#endif - - if (row_bytes + 48 > png_ptr->old_big_row_buf_size) - { - png_free(png_ptr, png_ptr->big_row_buf); - png_free(png_ptr, png_ptr->big_prev_row); - - if (png_ptr->interlaced != 0) - png_ptr->big_row_buf = (png_bytep)png_calloc(png_ptr, - row_bytes + 48); - - else - png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes + 48); - - png_ptr->big_prev_row = (png_bytep)png_malloc(png_ptr, row_bytes + 48); - -#ifdef PNG_ALIGNED_MEMORY_SUPPORTED - /* Use 16-byte aligned memory for row_buf with at least 16 bytes - * of padding before and after row_buf; treat prev_row similarly. - * NOTE: the alignment is to the start of the pixels, one beyond the start - * of the buffer, because of the filter byte. Prior to libpng 1.5.6 this - * was incorrect; the filter byte was aligned, which had the exact - * opposite effect of that intended. - */ - { - png_bytep temp = png_ptr->big_row_buf + 32; - int extra = (int)((temp - (png_bytep)0) & 0x0f); - png_ptr->row_buf = temp - extra - 1/*filter byte*/; - - temp = png_ptr->big_prev_row + 32; - extra = (int)((temp - (png_bytep)0) & 0x0f); - png_ptr->prev_row = temp - extra - 1/*filter byte*/; - } - -#else - /* Use 31 bytes of padding before and 17 bytes after row_buf. */ - png_ptr->row_buf = png_ptr->big_row_buf + 31; - png_ptr->prev_row = png_ptr->big_prev_row + 31; -#endif - png_ptr->old_big_row_buf_size = row_bytes + 48; - } - -#ifdef PNG_MAX_MALLOC_64K - if (png_ptr->rowbytes > 65535) - png_error(png_ptr, "This image requires a row greater than 64KB"); - -#endif - if (png_ptr->rowbytes > (PNG_SIZE_MAX - 1)) - png_error(png_ptr, "Row has too many bytes to allocate in memory"); - - memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); - - png_debug1(3, "width = %u,", png_ptr->width); - png_debug1(3, "height = %u,", png_ptr->height); - png_debug1(3, "iwidth = %u,", png_ptr->iwidth); - png_debug1(3, "num_rows = %u,", png_ptr->num_rows); - png_debug1(3, "rowbytes = %lu,", (unsigned long)png_ptr->rowbytes); - png_debug1(3, "irowbytes = %lu", - (unsigned long)PNG_ROWBYTES(png_ptr->pixel_depth, png_ptr->iwidth) + 1); - - /* The sequential reader needs a buffer for IDAT, but the progressive reader - * does not, so free the read buffer now regardless; the sequential reader - * reallocates it on demand. - */ - if (png_ptr->read_buffer != NULL) - { - png_bytep buffer = png_ptr->read_buffer; - - png_ptr->read_buffer_size = 0; - png_ptr->read_buffer = NULL; - png_free(png_ptr, buffer); - } - - /* Finally claim the zstream for the inflate of the IDAT data, use the bits - * value from the stream (note that this will result in a fatal error if the - * IDAT stream has a bogus deflate header window_bits value, but this should - * not be happening any longer!) - */ - if (png_inflate_claim(png_ptr, png_IDAT) != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg); - - png_ptr->flags |= PNG_FLAG_ROW_INIT; -} -#endif /* READ */ diff --git a/Externals/libpng/pngset.c b/Externals/libpng/pngset.c deleted file mode 100644 index ec75dbe369..0000000000 --- a/Externals/libpng/pngset.c +++ /dev/null @@ -1,1802 +0,0 @@ - -/* pngset.c - storage of image information into info struct - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * The functions here are used during reads to store data from the file - * into the info struct, and during writes to store application data - * into the info struct for writing into the file. This abstracts the - * info struct and allows us to change the structure in the future. - */ - -#include "pngpriv.h" - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) - -#ifdef PNG_bKGD_SUPPORTED -void PNGAPI -png_set_bKGD(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_color_16p background) -{ - png_debug1(1, "in %s storage function", "bKGD"); - - if (png_ptr == NULL || info_ptr == NULL || background == NULL) - return; - - info_ptr->background = *background; - info_ptr->valid |= PNG_INFO_bKGD; -} -#endif - -#ifdef PNG_cHRM_SUPPORTED -void PNGFAPI -png_set_cHRM_fixed(png_const_structrp png_ptr, png_inforp info_ptr, - png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x, - png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y, - png_fixed_point blue_x, png_fixed_point blue_y) -{ - png_xy xy; - - png_debug1(1, "in %s storage function", "cHRM fixed"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - xy.redx = red_x; - xy.redy = red_y; - xy.greenx = green_x; - xy.greeny = green_y; - xy.bluex = blue_x; - xy.bluey = blue_y; - xy.whitex = white_x; - xy.whitey = white_y; - - if (png_colorspace_set_chromaticities(png_ptr, &info_ptr->colorspace, &xy, - 2/* override with app values*/) != 0) - info_ptr->colorspace.flags |= PNG_COLORSPACE_FROM_cHRM; - - png_colorspace_sync_info(png_ptr, info_ptr); -} - -void PNGFAPI -png_set_cHRM_XYZ_fixed(png_const_structrp png_ptr, png_inforp info_ptr, - png_fixed_point int_red_X, png_fixed_point int_red_Y, - png_fixed_point int_red_Z, png_fixed_point int_green_X, - png_fixed_point int_green_Y, png_fixed_point int_green_Z, - png_fixed_point int_blue_X, png_fixed_point int_blue_Y, - png_fixed_point int_blue_Z) -{ - png_XYZ XYZ; - - png_debug1(1, "in %s storage function", "cHRM XYZ fixed"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - XYZ.red_X = int_red_X; - XYZ.red_Y = int_red_Y; - XYZ.red_Z = int_red_Z; - XYZ.green_X = int_green_X; - XYZ.green_Y = int_green_Y; - XYZ.green_Z = int_green_Z; - XYZ.blue_X = int_blue_X; - XYZ.blue_Y = int_blue_Y; - XYZ.blue_Z = int_blue_Z; - - if (png_colorspace_set_endpoints(png_ptr, &info_ptr->colorspace, - &XYZ, 2) != 0) - info_ptr->colorspace.flags |= PNG_COLORSPACE_FROM_cHRM; - - png_colorspace_sync_info(png_ptr, info_ptr); -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_cHRM(png_const_structrp png_ptr, png_inforp info_ptr, - double white_x, double white_y, double red_x, double red_y, - double green_x, double green_y, double blue_x, double blue_y) -{ - png_set_cHRM_fixed(png_ptr, info_ptr, - png_fixed(png_ptr, white_x, "cHRM White X"), - png_fixed(png_ptr, white_y, "cHRM White Y"), - png_fixed(png_ptr, red_x, "cHRM Red X"), - png_fixed(png_ptr, red_y, "cHRM Red Y"), - png_fixed(png_ptr, green_x, "cHRM Green X"), - png_fixed(png_ptr, green_y, "cHRM Green Y"), - png_fixed(png_ptr, blue_x, "cHRM Blue X"), - png_fixed(png_ptr, blue_y, "cHRM Blue Y")); -} - -void PNGAPI -png_set_cHRM_XYZ(png_const_structrp png_ptr, png_inforp info_ptr, double red_X, - double red_Y, double red_Z, double green_X, double green_Y, double green_Z, - double blue_X, double blue_Y, double blue_Z) -{ - png_set_cHRM_XYZ_fixed(png_ptr, info_ptr, - png_fixed(png_ptr, red_X, "cHRM Red X"), - png_fixed(png_ptr, red_Y, "cHRM Red Y"), - png_fixed(png_ptr, red_Z, "cHRM Red Z"), - png_fixed(png_ptr, green_X, "cHRM Green X"), - png_fixed(png_ptr, green_Y, "cHRM Green Y"), - png_fixed(png_ptr, green_Z, "cHRM Green Z"), - png_fixed(png_ptr, blue_X, "cHRM Blue X"), - png_fixed(png_ptr, blue_Y, "cHRM Blue Y"), - png_fixed(png_ptr, blue_Z, "cHRM Blue Z")); -} -# endif /* FLOATING_POINT */ - -#endif /* cHRM */ - -#ifdef PNG_eXIf_SUPPORTED -void PNGAPI -png_set_eXIf(png_const_structrp png_ptr, png_inforp info_ptr, - png_bytep eXIf_buf) -{ - png_warning(png_ptr, "png_set_eXIf does not work; use png_set_eXIf_1"); - PNG_UNUSED(info_ptr) - PNG_UNUSED(eXIf_buf) -} - -void PNGAPI -png_set_eXIf_1(png_const_structrp png_ptr, png_inforp info_ptr, - png_uint_32 num_exif, png_bytep eXIf_buf) -{ - int i; - - png_debug1(1, "in %s storage function", "eXIf"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (info_ptr->exif) - { - png_free(png_ptr, info_ptr->exif); - info_ptr->exif = NULL; - } - - info_ptr->num_exif = num_exif; - - info_ptr->exif = png_voidcast(png_bytep, png_malloc_warn(png_ptr, - info_ptr->num_exif)); - - if (info_ptr->exif == NULL) - { - png_warning(png_ptr, "Insufficient memory for eXIf chunk data"); - return; - } - - info_ptr->free_me |= PNG_FREE_EXIF; - - for (i = 0; i < (int) info_ptr->num_exif; i++) - info_ptr->exif[i] = eXIf_buf[i]; - - info_ptr->valid |= PNG_INFO_eXIf; -} -#endif /* eXIf */ - -#ifdef PNG_gAMA_SUPPORTED -void PNGFAPI -png_set_gAMA_fixed(png_const_structrp png_ptr, png_inforp info_ptr, - png_fixed_point file_gamma) -{ - png_debug1(1, "in %s storage function", "gAMA"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_colorspace_set_gamma(png_ptr, &info_ptr->colorspace, file_gamma); - png_colorspace_sync_info(png_ptr, info_ptr); -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_gAMA(png_const_structrp png_ptr, png_inforp info_ptr, double file_gamma) -{ - png_set_gAMA_fixed(png_ptr, info_ptr, png_fixed(png_ptr, file_gamma, - "png_set_gAMA")); -} -# endif -#endif - -#ifdef PNG_hIST_SUPPORTED -void PNGAPI -png_set_hIST(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_uint_16p hist) -{ - int i; - - png_debug1(1, "in %s storage function", "hIST"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (info_ptr->num_palette == 0 || info_ptr->num_palette - > PNG_MAX_PALETTE_LENGTH) - { - png_warning(png_ptr, - "Invalid palette size, hIST allocation skipped"); - - return; - } - - png_free_data(png_ptr, info_ptr, PNG_FREE_HIST, 0); - - /* Changed from info->num_palette to PNG_MAX_PALETTE_LENGTH in - * version 1.2.1 - */ - info_ptr->hist = png_voidcast(png_uint_16p, png_malloc_warn(png_ptr, - PNG_MAX_PALETTE_LENGTH * (sizeof (png_uint_16)))); - - if (info_ptr->hist == NULL) - { - png_warning(png_ptr, "Insufficient memory for hIST chunk data"); - - return; - } - - info_ptr->free_me |= PNG_FREE_HIST; - - for (i = 0; i < info_ptr->num_palette; i++) - info_ptr->hist[i] = hist[i]; - - info_ptr->valid |= PNG_INFO_hIST; -} -#endif - -void PNGAPI -png_set_IHDR(png_const_structrp png_ptr, png_inforp info_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type) -{ - png_debug1(1, "in %s storage function", "IHDR"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->width = width; - info_ptr->height = height; - info_ptr->bit_depth = (png_byte)bit_depth; - info_ptr->color_type = (png_byte)color_type; - info_ptr->compression_type = (png_byte)compression_type; - info_ptr->filter_type = (png_byte)filter_type; - info_ptr->interlace_type = (png_byte)interlace_type; - - png_check_IHDR (png_ptr, info_ptr->width, info_ptr->height, - info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type, - info_ptr->compression_type, info_ptr->filter_type); - - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - info_ptr->channels = 1; - - else if ((info_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) - info_ptr->channels = 3; - - else - info_ptr->channels = 1; - - if ((info_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0) - info_ptr->channels++; - - info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth); - - info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width); -} - -#ifdef PNG_oFFs_SUPPORTED -void PNGAPI -png_set_oFFs(png_const_structrp png_ptr, png_inforp info_ptr, - png_int_32 offset_x, png_int_32 offset_y, int unit_type) -{ - png_debug1(1, "in %s storage function", "oFFs"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->x_offset = offset_x; - info_ptr->y_offset = offset_y; - info_ptr->offset_unit_type = (png_byte)unit_type; - info_ptr->valid |= PNG_INFO_oFFs; -} -#endif - -#ifdef PNG_pCAL_SUPPORTED -void PNGAPI -png_set_pCAL(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, - int nparams, png_const_charp units, png_charpp params) -{ - size_t length; - int i; - - png_debug1(1, "in %s storage function", "pCAL"); - - if (png_ptr == NULL || info_ptr == NULL || purpose == NULL || units == NULL - || (nparams > 0 && params == NULL)) - return; - - length = strlen(purpose) + 1; - png_debug1(3, "allocating purpose for info (%lu bytes)", - (unsigned long)length); - - /* TODO: validate format of calibration name and unit name */ - - /* Check that the type matches the specification. */ - if (type < 0 || type > 3) - { - png_chunk_report(png_ptr, "Invalid pCAL equation type", - PNG_CHUNK_WRITE_ERROR); - return; - } - - if (nparams < 0 || nparams > 255) - { - png_chunk_report(png_ptr, "Invalid pCAL parameter count", - PNG_CHUNK_WRITE_ERROR); - return; - } - - /* Validate params[nparams] */ - for (i=0; ipcal_purpose = png_voidcast(png_charp, - png_malloc_warn(png_ptr, length)); - - if (info_ptr->pcal_purpose == NULL) - { - png_chunk_report(png_ptr, "Insufficient memory for pCAL purpose", - PNG_CHUNK_WRITE_ERROR); - return; - } - - memcpy(info_ptr->pcal_purpose, purpose, length); - - png_debug(3, "storing X0, X1, type, and nparams in info"); - info_ptr->pcal_X0 = X0; - info_ptr->pcal_X1 = X1; - info_ptr->pcal_type = (png_byte)type; - info_ptr->pcal_nparams = (png_byte)nparams; - - length = strlen(units) + 1; - png_debug1(3, "allocating units for info (%lu bytes)", - (unsigned long)length); - - info_ptr->pcal_units = png_voidcast(png_charp, - png_malloc_warn(png_ptr, length)); - - if (info_ptr->pcal_units == NULL) - { - png_warning(png_ptr, "Insufficient memory for pCAL units"); - - return; - } - - memcpy(info_ptr->pcal_units, units, length); - - info_ptr->pcal_params = png_voidcast(png_charpp, png_malloc_warn(png_ptr, - (size_t)(((unsigned int)nparams + 1) * (sizeof (png_charp))))); - - if (info_ptr->pcal_params == NULL) - { - png_warning(png_ptr, "Insufficient memory for pCAL params"); - - return; - } - - memset(info_ptr->pcal_params, 0, ((unsigned int)nparams + 1) * - (sizeof (png_charp))); - - for (i = 0; i < nparams; i++) - { - length = strlen(params[i]) + 1; - png_debug2(3, "allocating parameter %d for info (%lu bytes)", i, - (unsigned long)length); - - info_ptr->pcal_params[i] = (png_charp)png_malloc_warn(png_ptr, length); - - if (info_ptr->pcal_params[i] == NULL) - { - png_warning(png_ptr, "Insufficient memory for pCAL parameter"); - - return; - } - - memcpy(info_ptr->pcal_params[i], params[i], length); - } - - info_ptr->valid |= PNG_INFO_pCAL; - info_ptr->free_me |= PNG_FREE_PCAL; -} -#endif - -#ifdef PNG_sCAL_SUPPORTED -void PNGAPI -png_set_sCAL_s(png_const_structrp png_ptr, png_inforp info_ptr, - int unit, png_const_charp swidth, png_const_charp sheight) -{ - size_t lengthw = 0, lengthh = 0; - - png_debug1(1, "in %s storage function", "sCAL"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - /* Double check the unit (should never get here with an invalid - * unit unless this is an API call.) - */ - if (unit != 1 && unit != 2) - png_error(png_ptr, "Invalid sCAL unit"); - - if (swidth == NULL || (lengthw = strlen(swidth)) == 0 || - swidth[0] == 45 /* '-' */ || !png_check_fp_string(swidth, lengthw)) - png_error(png_ptr, "Invalid sCAL width"); - - if (sheight == NULL || (lengthh = strlen(sheight)) == 0 || - sheight[0] == 45 /* '-' */ || !png_check_fp_string(sheight, lengthh)) - png_error(png_ptr, "Invalid sCAL height"); - - info_ptr->scal_unit = (png_byte)unit; - - ++lengthw; - - png_debug1(3, "allocating unit for info (%u bytes)", (unsigned int)lengthw); - - info_ptr->scal_s_width = png_voidcast(png_charp, - png_malloc_warn(png_ptr, lengthw)); - - if (info_ptr->scal_s_width == NULL) - { - png_warning(png_ptr, "Memory allocation failed while processing sCAL"); - - return; - } - - memcpy(info_ptr->scal_s_width, swidth, lengthw); - - ++lengthh; - - png_debug1(3, "allocating unit for info (%u bytes)", (unsigned int)lengthh); - - info_ptr->scal_s_height = png_voidcast(png_charp, - png_malloc_warn(png_ptr, lengthh)); - - if (info_ptr->scal_s_height == NULL) - { - png_free (png_ptr, info_ptr->scal_s_width); - info_ptr->scal_s_width = NULL; - - png_warning(png_ptr, "Memory allocation failed while processing sCAL"); - - return; - } - - memcpy(info_ptr->scal_s_height, sheight, lengthh); - - info_ptr->valid |= PNG_INFO_sCAL; - info_ptr->free_me |= PNG_FREE_SCAL; -} - -# ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_sCAL(png_const_structrp png_ptr, png_inforp info_ptr, int unit, - double width, double height) -{ - png_debug1(1, "in %s storage function", "sCAL"); - - /* Check the arguments. */ - if (width <= 0) - png_warning(png_ptr, "Invalid sCAL width ignored"); - - else if (height <= 0) - png_warning(png_ptr, "Invalid sCAL height ignored"); - - else - { - /* Convert 'width' and 'height' to ASCII. */ - char swidth[PNG_sCAL_MAX_DIGITS+1]; - char sheight[PNG_sCAL_MAX_DIGITS+1]; - - png_ascii_from_fp(png_ptr, swidth, (sizeof swidth), width, - PNG_sCAL_PRECISION); - png_ascii_from_fp(png_ptr, sheight, (sizeof sheight), height, - PNG_sCAL_PRECISION); - - png_set_sCAL_s(png_ptr, info_ptr, unit, swidth, sheight); - } -} -# endif - -# ifdef PNG_FIXED_POINT_SUPPORTED -void PNGAPI -png_set_sCAL_fixed(png_const_structrp png_ptr, png_inforp info_ptr, int unit, - png_fixed_point width, png_fixed_point height) -{ - png_debug1(1, "in %s storage function", "sCAL"); - - /* Check the arguments. */ - if (width <= 0) - png_warning(png_ptr, "Invalid sCAL width ignored"); - - else if (height <= 0) - png_warning(png_ptr, "Invalid sCAL height ignored"); - - else - { - /* Convert 'width' and 'height' to ASCII. */ - char swidth[PNG_sCAL_MAX_DIGITS+1]; - char sheight[PNG_sCAL_MAX_DIGITS+1]; - - png_ascii_from_fixed(png_ptr, swidth, (sizeof swidth), width); - png_ascii_from_fixed(png_ptr, sheight, (sizeof sheight), height); - - png_set_sCAL_s(png_ptr, info_ptr, unit, swidth, sheight); - } -} -# endif -#endif - -#ifdef PNG_pHYs_SUPPORTED -void PNGAPI -png_set_pHYs(png_const_structrp png_ptr, png_inforp info_ptr, - png_uint_32 res_x, png_uint_32 res_y, int unit_type) -{ - png_debug1(1, "in %s storage function", "pHYs"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->x_pixels_per_unit = res_x; - info_ptr->y_pixels_per_unit = res_y; - info_ptr->phys_unit_type = (png_byte)unit_type; - info_ptr->valid |= PNG_INFO_pHYs; -} -#endif - -void PNGAPI -png_set_PLTE(png_structrp png_ptr, png_inforp info_ptr, - png_const_colorp palette, int num_palette) -{ - - png_uint_32 max_palette_length; - - png_debug1(1, "in %s storage function", "PLTE"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - max_palette_length = (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? - (1 << info_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; - - if (num_palette < 0 || num_palette > (int) max_palette_length) - { - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Invalid palette length"); - - else - { - png_warning(png_ptr, "Invalid palette length"); - - return; - } - } - - if ((num_palette > 0 && palette == NULL) || - (num_palette == 0 -# ifdef PNG_MNG_FEATURES_SUPPORTED - && (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0 -# endif - )) - { - png_error(png_ptr, "Invalid palette"); - } - - /* It may not actually be necessary to set png_ptr->palette here; - * we do it for backward compatibility with the way the png_handle_tRNS - * function used to do the allocation. - * - * 1.6.0: the above statement appears to be incorrect; something has to set - * the palette inside png_struct on read. - */ - png_free_data(png_ptr, info_ptr, PNG_FREE_PLTE, 0); - - /* Changed in libpng-1.2.1 to allocate PNG_MAX_PALETTE_LENGTH instead - * of num_palette entries, in case of an invalid PNG file or incorrect - * call to png_set_PLTE() with too-large sample values. - */ - png_ptr->palette = png_voidcast(png_colorp, png_calloc(png_ptr, - PNG_MAX_PALETTE_LENGTH * (sizeof (png_color)))); - - if (num_palette > 0) - memcpy(png_ptr->palette, palette, (unsigned int)num_palette * - (sizeof (png_color))); - info_ptr->palette = png_ptr->palette; - info_ptr->num_palette = png_ptr->num_palette = (png_uint_16)num_palette; - - info_ptr->free_me |= PNG_FREE_PLTE; - - info_ptr->valid |= PNG_INFO_PLTE; -} - -#ifdef PNG_sBIT_SUPPORTED -void PNGAPI -png_set_sBIT(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_color_8p sig_bit) -{ - png_debug1(1, "in %s storage function", "sBIT"); - - if (png_ptr == NULL || info_ptr == NULL || sig_bit == NULL) - return; - - info_ptr->sig_bit = *sig_bit; - info_ptr->valid |= PNG_INFO_sBIT; -} -#endif - -#ifdef PNG_sRGB_SUPPORTED -void PNGAPI -png_set_sRGB(png_const_structrp png_ptr, png_inforp info_ptr, int srgb_intent) -{ - png_debug1(1, "in %s storage function", "sRGB"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - (void)png_colorspace_set_sRGB(png_ptr, &info_ptr->colorspace, srgb_intent); - png_colorspace_sync_info(png_ptr, info_ptr); -} - -void PNGAPI -png_set_sRGB_gAMA_and_cHRM(png_const_structrp png_ptr, png_inforp info_ptr, - int srgb_intent) -{ - png_debug1(1, "in %s storage function", "sRGB_gAMA_and_cHRM"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (png_colorspace_set_sRGB(png_ptr, &info_ptr->colorspace, - srgb_intent) != 0) - { - /* This causes the gAMA and cHRM to be written too */ - info_ptr->colorspace.flags |= - PNG_COLORSPACE_FROM_gAMA|PNG_COLORSPACE_FROM_cHRM; - } - - png_colorspace_sync_info(png_ptr, info_ptr); -} -#endif /* sRGB */ - - -#ifdef PNG_iCCP_SUPPORTED -void PNGAPI -png_set_iCCP(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_charp name, int compression_type, - png_const_bytep profile, png_uint_32 proflen) -{ - png_charp new_iccp_name; - png_bytep new_iccp_profile; - size_t length; - - png_debug1(1, "in %s storage function", "iCCP"); - - if (png_ptr == NULL || info_ptr == NULL || name == NULL || profile == NULL) - return; - - if (compression_type != PNG_COMPRESSION_TYPE_BASE) - png_app_error(png_ptr, "Invalid iCCP compression method"); - - /* Set the colorspace first because this validates the profile; do not - * override previously set app cHRM or gAMA here (because likely as not the - * application knows better than libpng what the correct values are.) Pass - * the info_ptr color_type field to png_colorspace_set_ICC because in the - * write case it has not yet been stored in png_ptr. - */ - { - int result = png_colorspace_set_ICC(png_ptr, &info_ptr->colorspace, name, - proflen, profile, info_ptr->color_type); - - png_colorspace_sync_info(png_ptr, info_ptr); - - /* Don't do any of the copying if the profile was bad, or inconsistent. */ - if (result == 0) - return; - - /* But do write the gAMA and cHRM chunks from the profile. */ - info_ptr->colorspace.flags |= - PNG_COLORSPACE_FROM_gAMA|PNG_COLORSPACE_FROM_cHRM; - } - - length = strlen(name)+1; - new_iccp_name = png_voidcast(png_charp, png_malloc_warn(png_ptr, length)); - - if (new_iccp_name == NULL) - { - png_benign_error(png_ptr, "Insufficient memory to process iCCP chunk"); - - return; - } - - memcpy(new_iccp_name, name, length); - new_iccp_profile = png_voidcast(png_bytep, - png_malloc_warn(png_ptr, proflen)); - - if (new_iccp_profile == NULL) - { - png_free(png_ptr, new_iccp_name); - png_benign_error(png_ptr, - "Insufficient memory to process iCCP profile"); - - return; - } - - memcpy(new_iccp_profile, profile, proflen); - - png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, 0); - - info_ptr->iccp_proflen = proflen; - info_ptr->iccp_name = new_iccp_name; - info_ptr->iccp_profile = new_iccp_profile; - info_ptr->free_me |= PNG_FREE_ICCP; - info_ptr->valid |= PNG_INFO_iCCP; -} -#endif - -#ifdef PNG_TEXT_SUPPORTED -void PNGAPI -png_set_text(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_textp text_ptr, int num_text) -{ - int ret; - ret = png_set_text_2(png_ptr, info_ptr, text_ptr, num_text); - - if (ret != 0) - png_error(png_ptr, "Insufficient memory to store text"); -} - -int /* PRIVATE */ -png_set_text_2(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_textp text_ptr, int num_text) -{ - int i; - - png_debug1(1, "in %lx storage function", png_ptr == NULL ? 0xabadca11U : - (unsigned long)png_ptr->chunk_name); - - if (png_ptr == NULL || info_ptr == NULL || num_text <= 0 || text_ptr == NULL) - return(0); - - /* Make sure we have enough space in the "text" array in info_struct - * to hold all of the incoming text_ptr objects. This compare can't overflow - * because max_text >= num_text (anyway, subtract of two positive integers - * can't overflow in any case.) - */ - if (num_text > info_ptr->max_text - info_ptr->num_text) - { - int old_num_text = info_ptr->num_text; - int max_text; - png_textp new_text = NULL; - - /* Calculate an appropriate max_text, checking for overflow. */ - max_text = old_num_text; - if (num_text <= INT_MAX - max_text) - { - max_text += num_text; - - /* Round up to a multiple of 8 */ - if (max_text < INT_MAX-8) - max_text = (max_text + 8) & ~0x7; - - else - max_text = INT_MAX; - - /* Now allocate a new array and copy the old members in; this does all - * the overflow checks. - */ - new_text = png_voidcast(png_textp,png_realloc_array(png_ptr, - info_ptr->text, old_num_text, max_text-old_num_text, - sizeof *new_text)); - } - - if (new_text == NULL) - { - png_chunk_report(png_ptr, "too many text chunks", - PNG_CHUNK_WRITE_ERROR); - - return 1; - } - - png_free(png_ptr, info_ptr->text); - - info_ptr->text = new_text; - info_ptr->free_me |= PNG_FREE_TEXT; - info_ptr->max_text = max_text; - /* num_text is adjusted below as the entries are copied in */ - - png_debug1(3, "allocated %d entries for info_ptr->text", max_text); - } - - for (i = 0; i < num_text; i++) - { - size_t text_length, key_len; - size_t lang_len, lang_key_len; - png_textp textp = &(info_ptr->text[info_ptr->num_text]); - - if (text_ptr[i].key == NULL) - continue; - - if (text_ptr[i].compression < PNG_TEXT_COMPRESSION_NONE || - text_ptr[i].compression >= PNG_TEXT_COMPRESSION_LAST) - { - png_chunk_report(png_ptr, "text compression mode is out of range", - PNG_CHUNK_WRITE_ERROR); - continue; - } - - key_len = strlen(text_ptr[i].key); - - if (text_ptr[i].compression <= 0) - { - lang_len = 0; - lang_key_len = 0; - } - - else -# ifdef PNG_iTXt_SUPPORTED - { - /* Set iTXt data */ - - if (text_ptr[i].lang != NULL) - lang_len = strlen(text_ptr[i].lang); - - else - lang_len = 0; - - if (text_ptr[i].lang_key != NULL) - lang_key_len = strlen(text_ptr[i].lang_key); - - else - lang_key_len = 0; - } -# else /* iTXt */ - { - png_chunk_report(png_ptr, "iTXt chunk not supported", - PNG_CHUNK_WRITE_ERROR); - continue; - } -# endif - - if (text_ptr[i].text == NULL || text_ptr[i].text[0] == '\0') - { - text_length = 0; -# ifdef PNG_iTXt_SUPPORTED - if (text_ptr[i].compression > 0) - textp->compression = PNG_ITXT_COMPRESSION_NONE; - - else -# endif - textp->compression = PNG_TEXT_COMPRESSION_NONE; - } - - else - { - text_length = strlen(text_ptr[i].text); - textp->compression = text_ptr[i].compression; - } - - textp->key = png_voidcast(png_charp,png_malloc_base(png_ptr, - key_len + text_length + lang_len + lang_key_len + 4)); - - if (textp->key == NULL) - { - png_chunk_report(png_ptr, "text chunk: out of memory", - PNG_CHUNK_WRITE_ERROR); - - return 1; - } - - png_debug2(2, "Allocated %lu bytes at %p in png_set_text", - (unsigned long)(png_uint_32) - (key_len + lang_len + lang_key_len + text_length + 4), - textp->key); - - memcpy(textp->key, text_ptr[i].key, key_len); - *(textp->key + key_len) = '\0'; - - if (text_ptr[i].compression > 0) - { - textp->lang = textp->key + key_len + 1; - memcpy(textp->lang, text_ptr[i].lang, lang_len); - *(textp->lang + lang_len) = '\0'; - textp->lang_key = textp->lang + lang_len + 1; - memcpy(textp->lang_key, text_ptr[i].lang_key, lang_key_len); - *(textp->lang_key + lang_key_len) = '\0'; - textp->text = textp->lang_key + lang_key_len + 1; - } - - else - { - textp->lang=NULL; - textp->lang_key=NULL; - textp->text = textp->key + key_len + 1; - } - - if (text_length != 0) - memcpy(textp->text, text_ptr[i].text, text_length); - - *(textp->text + text_length) = '\0'; - -# ifdef PNG_iTXt_SUPPORTED - if (textp->compression > 0) - { - textp->text_length = 0; - textp->itxt_length = text_length; - } - - else -# endif - { - textp->text_length = text_length; - textp->itxt_length = 0; - } - - info_ptr->num_text++; - png_debug1(3, "transferred text chunk %d", info_ptr->num_text); - } - - return(0); -} -#endif - -#ifdef PNG_tIME_SUPPORTED -void PNGAPI -png_set_tIME(png_const_structrp png_ptr, png_inforp info_ptr, - png_const_timep mod_time) -{ - png_debug1(1, "in %s storage function", "tIME"); - - if (png_ptr == NULL || info_ptr == NULL || mod_time == NULL || - (png_ptr->mode & PNG_WROTE_tIME) != 0) - return; - - if (mod_time->month == 0 || mod_time->month > 12 || - mod_time->day == 0 || mod_time->day > 31 || - mod_time->hour > 23 || mod_time->minute > 59 || - mod_time->second > 60) - { - png_warning(png_ptr, "Ignoring invalid time value"); - - return; - } - - info_ptr->mod_time = *mod_time; - info_ptr->valid |= PNG_INFO_tIME; -} -#endif - -#ifdef PNG_tRNS_SUPPORTED -void PNGAPI -png_set_tRNS(png_structrp png_ptr, png_inforp info_ptr, - png_const_bytep trans_alpha, int num_trans, png_const_color_16p trans_color) -{ - png_debug1(1, "in %s storage function", "tRNS"); - - if (png_ptr == NULL || info_ptr == NULL) - - return; - - if (trans_alpha != NULL) - { - /* It may not actually be necessary to set png_ptr->trans_alpha here; - * we do it for backward compatibility with the way the png_handle_tRNS - * function used to do the allocation. - * - * 1.6.0: The above statement is incorrect; png_handle_tRNS effectively - * relies on png_set_tRNS storing the information in png_struct - * (otherwise it won't be there for the code in pngrtran.c). - */ - - png_free_data(png_ptr, info_ptr, PNG_FREE_TRNS, 0); - - if (num_trans > 0 && num_trans <= PNG_MAX_PALETTE_LENGTH) - { - /* Changed from num_trans to PNG_MAX_PALETTE_LENGTH in version 1.2.1 */ - info_ptr->trans_alpha = png_voidcast(png_bytep, - png_malloc(png_ptr, PNG_MAX_PALETTE_LENGTH)); - memcpy(info_ptr->trans_alpha, trans_alpha, (size_t)num_trans); - } - png_ptr->trans_alpha = info_ptr->trans_alpha; - } - - if (trans_color != NULL) - { -#ifdef PNG_WARNINGS_SUPPORTED - if (info_ptr->bit_depth < 16) - { - int sample_max = (1 << info_ptr->bit_depth) - 1; - - if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY && - trans_color->gray > sample_max) || - (info_ptr->color_type == PNG_COLOR_TYPE_RGB && - (trans_color->red > sample_max || - trans_color->green > sample_max || - trans_color->blue > sample_max))) - png_warning(png_ptr, - "tRNS chunk has out-of-range samples for bit_depth"); - } -#endif - - info_ptr->trans_color = *trans_color; - - if (num_trans == 0) - num_trans = 1; - } - - info_ptr->num_trans = (png_uint_16)num_trans; - - if (num_trans != 0) - { - info_ptr->valid |= PNG_INFO_tRNS; - info_ptr->free_me |= PNG_FREE_TRNS; - } -} -#endif - -#ifdef PNG_sPLT_SUPPORTED -void PNGAPI -png_set_sPLT(png_const_structrp png_ptr, - png_inforp info_ptr, png_const_sPLT_tp entries, int nentries) -/* - * entries - array of png_sPLT_t structures - * to be added to the list of palettes - * in the info structure. - * - * nentries - number of palette structures to be - * added. - */ -{ - png_sPLT_tp np; - - if (png_ptr == NULL || info_ptr == NULL || nentries <= 0 || entries == NULL) - return; - - /* Use the internal realloc function, which checks for all the possible - * overflows. Notice that the parameters are (int) and (size_t) - */ - np = png_voidcast(png_sPLT_tp,png_realloc_array(png_ptr, - info_ptr->splt_palettes, info_ptr->splt_palettes_num, nentries, - sizeof *np)); - - if (np == NULL) - { - /* Out of memory or too many chunks */ - png_chunk_report(png_ptr, "too many sPLT chunks", PNG_CHUNK_WRITE_ERROR); - - return; - } - - png_free(png_ptr, info_ptr->splt_palettes); - info_ptr->splt_palettes = np; - info_ptr->free_me |= PNG_FREE_SPLT; - - np += info_ptr->splt_palettes_num; - - do - { - size_t length; - - /* Skip invalid input entries */ - if (entries->name == NULL || entries->entries == NULL) - { - /* png_handle_sPLT doesn't do this, so this is an app error */ - png_app_error(png_ptr, "png_set_sPLT: invalid sPLT"); - /* Just skip the invalid entry */ - continue; - } - - np->depth = entries->depth; - - /* In the event of out-of-memory just return - there's no point keeping - * on trying to add sPLT chunks. - */ - length = strlen(entries->name) + 1; - np->name = png_voidcast(png_charp, png_malloc_base(png_ptr, length)); - - if (np->name == NULL) - break; - - memcpy(np->name, entries->name, length); - - /* IMPORTANT: we have memory now that won't get freed if something else - * goes wrong; this code must free it. png_malloc_array produces no - * warnings; use a png_chunk_report (below) if there is an error. - */ - np->entries = png_voidcast(png_sPLT_entryp, png_malloc_array(png_ptr, - entries->nentries, sizeof (png_sPLT_entry))); - - if (np->entries == NULL) - { - png_free(png_ptr, np->name); - np->name = NULL; - break; - } - - np->nentries = entries->nentries; - /* This multiply can't overflow because png_malloc_array has already - * checked it when doing the allocation. - */ - memcpy(np->entries, entries->entries, - (unsigned int)entries->nentries * sizeof (png_sPLT_entry)); - - /* Note that 'continue' skips the advance of the out pointer and out - * count, so an invalid entry is not added. - */ - info_ptr->valid |= PNG_INFO_sPLT; - ++(info_ptr->splt_palettes_num); - ++np; - ++entries; - } - while (--nentries); - - if (nentries > 0) - png_chunk_report(png_ptr, "sPLT out of memory", PNG_CHUNK_WRITE_ERROR); -} -#endif /* sPLT */ - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -static png_byte -check_location(png_const_structrp png_ptr, int location) -{ - location &= (PNG_HAVE_IHDR|PNG_HAVE_PLTE|PNG_AFTER_IDAT); - - /* New in 1.6.0; copy the location and check it. This is an API - * change; previously the app had to use the - * png_set_unknown_chunk_location API below for each chunk. - */ - if (location == 0 && (png_ptr->mode & PNG_IS_READ_STRUCT) == 0) - { - /* Write struct, so unknown chunks come from the app */ - png_app_warning(png_ptr, - "png_set_unknown_chunks now expects a valid location"); - /* Use the old behavior */ - location = (png_byte)(png_ptr->mode & - (PNG_HAVE_IHDR|PNG_HAVE_PLTE|PNG_AFTER_IDAT)); - } - - /* This need not be an internal error - if the app calls - * png_set_unknown_chunks on a read pointer it must get the location right. - */ - if (location == 0) - png_error(png_ptr, "invalid location in png_set_unknown_chunks"); - - /* Now reduce the location to the top-most set bit by removing each least - * significant bit in turn. - */ - while (location != (location & -location)) - location &= ~(location & -location); - - /* The cast is safe because 'location' is a bit mask and only the low four - * bits are significant. - */ - return (png_byte)location; -} - -void PNGAPI -png_set_unknown_chunks(png_const_structrp png_ptr, - png_inforp info_ptr, png_const_unknown_chunkp unknowns, int num_unknowns) -{ - png_unknown_chunkp np; - - if (png_ptr == NULL || info_ptr == NULL || num_unknowns <= 0 || - unknowns == NULL) - return; - - /* Check for the failure cases where support has been disabled at compile - * time. This code is hardly ever compiled - it's here because - * STORE_UNKNOWN_CHUNKS is set by both read and write code (compiling in this - * code) but may be meaningless if the read or write handling of unknown - * chunks is not compiled in. - */ -# if !defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) && \ - defined(PNG_READ_SUPPORTED) - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0) - { - png_app_error(png_ptr, "no unknown chunk support on read"); - - return; - } -# endif -# if !defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) && \ - defined(PNG_WRITE_SUPPORTED) - if ((png_ptr->mode & PNG_IS_READ_STRUCT) == 0) - { - png_app_error(png_ptr, "no unknown chunk support on write"); - - return; - } -# endif - - /* Prior to 1.6.0 this code used png_malloc_warn; however, this meant that - * unknown critical chunks could be lost with just a warning resulting in - * undefined behavior. Now png_chunk_report is used to provide behavior - * appropriate to read or write. - */ - np = png_voidcast(png_unknown_chunkp, png_realloc_array(png_ptr, - info_ptr->unknown_chunks, info_ptr->unknown_chunks_num, num_unknowns, - sizeof *np)); - - if (np == NULL) - { - png_chunk_report(png_ptr, "too many unknown chunks", - PNG_CHUNK_WRITE_ERROR); - - return; - } - - png_free(png_ptr, info_ptr->unknown_chunks); - info_ptr->unknown_chunks = np; /* safe because it is initialized */ - info_ptr->free_me |= PNG_FREE_UNKN; - - np += info_ptr->unknown_chunks_num; - - /* Increment unknown_chunks_num each time round the loop to protect the - * just-allocated chunk data. - */ - for (; num_unknowns > 0; --num_unknowns, ++unknowns) - { - memcpy(np->name, unknowns->name, (sizeof np->name)); - np->name[(sizeof np->name)-1] = '\0'; - np->location = check_location(png_ptr, unknowns->location); - - if (unknowns->size == 0) - { - np->data = NULL; - np->size = 0; - } - - else - { - np->data = png_voidcast(png_bytep, - png_malloc_base(png_ptr, unknowns->size)); - - if (np->data == NULL) - { - png_chunk_report(png_ptr, "unknown chunk: out of memory", - PNG_CHUNK_WRITE_ERROR); - /* But just skip storing the unknown chunk */ - continue; - } - - memcpy(np->data, unknowns->data, unknowns->size); - np->size = unknowns->size; - } - - /* These increments are skipped on out-of-memory for the data - the - * unknown chunk entry gets overwritten if the png_chunk_report returns. - * This is correct in the read case (the chunk is just dropped.) - */ - ++np; - ++(info_ptr->unknown_chunks_num); - } -} - -void PNGAPI -png_set_unknown_chunk_location(png_const_structrp png_ptr, png_inforp info_ptr, - int chunk, int location) -{ - /* This API is pretty pointless in 1.6.0 because the location can be set - * before the call to png_set_unknown_chunks. - * - * TODO: add a png_app_warning in 1.7 - */ - if (png_ptr != NULL && info_ptr != NULL && chunk >= 0 && - chunk < info_ptr->unknown_chunks_num) - { - if ((location & (PNG_HAVE_IHDR|PNG_HAVE_PLTE|PNG_AFTER_IDAT)) == 0) - { - png_app_error(png_ptr, "invalid unknown chunk location"); - /* Fake out the pre 1.6.0 behavior: */ - if (((unsigned int)location & PNG_HAVE_IDAT) != 0) /* undocumented! */ - location = PNG_AFTER_IDAT; - - else - location = PNG_HAVE_IHDR; /* also undocumented */ - } - - info_ptr->unknown_chunks[chunk].location = - check_location(png_ptr, location); - } -} -#endif /* STORE_UNKNOWN_CHUNKS */ - -#ifdef PNG_MNG_FEATURES_SUPPORTED -png_uint_32 PNGAPI -png_permit_mng_features (png_structrp png_ptr, png_uint_32 mng_features) -{ - png_debug(1, "in png_permit_mng_features"); - - if (png_ptr == NULL) - return 0; - - png_ptr->mng_features_permitted = mng_features & PNG_ALL_MNG_FEATURES; - - return png_ptr->mng_features_permitted; -} -#endif - -#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED -static unsigned int -add_one_chunk(png_bytep list, unsigned int count, png_const_bytep add, int keep) -{ - unsigned int i; - - /* Utility function: update the 'keep' state of a chunk if it is already in - * the list, otherwise add it to the list. - */ - for (i=0; i= PNG_HANDLE_CHUNK_LAST) - { - png_app_error(png_ptr, "png_set_keep_unknown_chunks: invalid keep"); - - return; - } - - if (num_chunks_in <= 0) - { - png_ptr->unknown_default = keep; - - /* '0' means just set the flags, so stop here */ - if (num_chunks_in == 0) - return; - } - - if (num_chunks_in < 0) - { - /* Ignore all unknown chunks and all chunks recognized by - * libpng except for IHDR, PLTE, tRNS, IDAT, and IEND - */ - static const png_byte chunks_to_ignore[] = { - 98, 75, 71, 68, '\0', /* bKGD */ - 99, 72, 82, 77, '\0', /* cHRM */ - 101, 88, 73, 102, '\0', /* eXIf */ - 103, 65, 77, 65, '\0', /* gAMA */ - 104, 73, 83, 84, '\0', /* hIST */ - 105, 67, 67, 80, '\0', /* iCCP */ - 105, 84, 88, 116, '\0', /* iTXt */ - 111, 70, 70, 115, '\0', /* oFFs */ - 112, 67, 65, 76, '\0', /* pCAL */ - 112, 72, 89, 115, '\0', /* pHYs */ - 115, 66, 73, 84, '\0', /* sBIT */ - 115, 67, 65, 76, '\0', /* sCAL */ - 115, 80, 76, 84, '\0', /* sPLT */ - 115, 84, 69, 82, '\0', /* sTER */ - 115, 82, 71, 66, '\0', /* sRGB */ - 116, 69, 88, 116, '\0', /* tEXt */ - 116, 73, 77, 69, '\0', /* tIME */ - 122, 84, 88, 116, '\0' /* zTXt */ - }; - - chunk_list = chunks_to_ignore; - num_chunks = (unsigned int)/*SAFE*/(sizeof chunks_to_ignore)/5U; - } - - else /* num_chunks_in > 0 */ - { - if (chunk_list == NULL) - { - /* Prior to 1.6.0 this was silently ignored, now it is an app_error - * which can be switched off. - */ - png_app_error(png_ptr, "png_set_keep_unknown_chunks: no chunk list"); - - return; - } - - num_chunks = (unsigned int)num_chunks_in; - } - - old_num_chunks = png_ptr->num_chunk_list; - if (png_ptr->chunk_list == NULL) - old_num_chunks = 0; - - /* Since num_chunks is always restricted to UINT_MAX/5 this can't overflow. - */ - if (num_chunks + old_num_chunks > UINT_MAX/5) - { - png_app_error(png_ptr, "png_set_keep_unknown_chunks: too many chunks"); - - return; - } - - /* If these chunks are being reset to the default then no more memory is - * required because add_one_chunk above doesn't extend the list if the 'keep' - * parameter is the default. - */ - if (keep != 0) - { - new_list = png_voidcast(png_bytep, png_malloc(png_ptr, - 5 * (num_chunks + old_num_chunks))); - - if (old_num_chunks > 0) - memcpy(new_list, png_ptr->chunk_list, 5*old_num_chunks); - } - - else if (old_num_chunks > 0) - new_list = png_ptr->chunk_list; - - else - new_list = NULL; - - /* Add the new chunks together with each one's handling code. If the chunk - * already exists the code is updated, otherwise the chunk is added to the - * end. (In libpng 1.6.0 order no longer matters because this code enforces - * the earlier convention that the last setting is the one that is used.) - */ - if (new_list != NULL) - { - png_const_bytep inlist; - png_bytep outlist; - unsigned int i; - - for (i=0; ichunk_list != new_list) - png_free(png_ptr, new_list); - - new_list = NULL; - } - } - - else - num_chunks = 0; - - png_ptr->num_chunk_list = num_chunks; - - if (png_ptr->chunk_list != new_list) - { - if (png_ptr->chunk_list != NULL) - png_free(png_ptr, png_ptr->chunk_list); - - png_ptr->chunk_list = new_list; - } -} -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -void PNGAPI -png_set_read_user_chunk_fn(png_structrp png_ptr, png_voidp user_chunk_ptr, - png_user_chunk_ptr read_user_chunk_fn) -{ - png_debug(1, "in png_set_read_user_chunk_fn"); - - if (png_ptr == NULL) - return; - - png_ptr->read_user_chunk_fn = read_user_chunk_fn; - png_ptr->user_chunk_ptr = user_chunk_ptr; -} -#endif - -#ifdef PNG_INFO_IMAGE_SUPPORTED -void PNGAPI -png_set_rows(png_const_structrp png_ptr, png_inforp info_ptr, - png_bytepp row_pointers) -{ - png_debug1(1, "in %s storage function", "rows"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (info_ptr->row_pointers != NULL && - (info_ptr->row_pointers != row_pointers)) - png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0); - - info_ptr->row_pointers = row_pointers; - - if (row_pointers != NULL) - info_ptr->valid |= PNG_INFO_IDAT; -} -#endif - -void PNGAPI -png_set_compression_buffer_size(png_structrp png_ptr, size_t size) -{ - if (png_ptr == NULL) - return; - - if (size == 0 || size > PNG_UINT_31_MAX) - png_error(png_ptr, "invalid compression buffer size"); - -# ifdef PNG_SEQUENTIAL_READ_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0) - { - png_ptr->IDAT_read_size = (png_uint_32)size; /* checked above */ - return; - } -# endif - -# ifdef PNG_WRITE_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) == 0) - { - if (png_ptr->zowner != 0) - { - png_warning(png_ptr, - "Compression buffer size cannot be changed because it is in use"); - - return; - } - -#ifndef __COVERITY__ - /* Some compilers complain that this is always false. However, it - * can be true when integer overflow happens. - */ - if (size > ZLIB_IO_MAX) - { - png_warning(png_ptr, - "Compression buffer size limited to system maximum"); - size = ZLIB_IO_MAX; /* must fit */ - } -#endif - - if (size < 6) - { - /* Deflate will potentially go into an infinite loop on a SYNC_FLUSH - * if this is permitted. - */ - png_warning(png_ptr, - "Compression buffer size cannot be reduced below 6"); - - return; - } - - if (png_ptr->zbuffer_size != size) - { - png_free_buffer_list(png_ptr, &png_ptr->zbuffer_list); - png_ptr->zbuffer_size = (uInt)size; - } - } -# endif -} - -void PNGAPI -png_set_invalid(png_const_structrp png_ptr, png_inforp info_ptr, int mask) -{ - if (png_ptr != NULL && info_ptr != NULL) - info_ptr->valid &= (unsigned int)(~mask); -} - - -#ifdef PNG_SET_USER_LIMITS_SUPPORTED -/* This function was added to libpng 1.2.6 */ -void PNGAPI -png_set_user_limits (png_structrp png_ptr, png_uint_32 user_width_max, - png_uint_32 user_height_max) -{ - /* Images with dimensions larger than these limits will be - * rejected by png_set_IHDR(). To accept any PNG datastream - * regardless of dimensions, set both limits to 0x7fffffff. - */ - if (png_ptr == NULL) - return; - - png_ptr->user_width_max = user_width_max; - png_ptr->user_height_max = user_height_max; -} - -/* This function was added to libpng 1.4.0 */ -void PNGAPI -png_set_chunk_cache_max (png_structrp png_ptr, png_uint_32 user_chunk_cache_max) -{ - if (png_ptr != NULL) - png_ptr->user_chunk_cache_max = user_chunk_cache_max; -} - -/* This function was added to libpng 1.4.1 */ -void PNGAPI -png_set_chunk_malloc_max (png_structrp png_ptr, - png_alloc_size_t user_chunk_malloc_max) -{ - if (png_ptr != NULL) - png_ptr->user_chunk_malloc_max = user_chunk_malloc_max; -} -#endif /* ?SET_USER_LIMITS */ - - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED -void PNGAPI -png_set_benign_errors(png_structrp png_ptr, int allowed) -{ - png_debug(1, "in png_set_benign_errors"); - - /* If allowed is 1, png_benign_error() is treated as a warning. - * - * If allowed is 0, png_benign_error() is treated as an error (which - * is the default behavior if png_set_benign_errors() is not called). - */ - - if (allowed != 0) - png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN | - PNG_FLAG_APP_WARNINGS_WARN | PNG_FLAG_APP_ERRORS_WARN; - - else - png_ptr->flags &= ~(PNG_FLAG_BENIGN_ERRORS_WARN | - PNG_FLAG_APP_WARNINGS_WARN | PNG_FLAG_APP_ERRORS_WARN); -} -#endif /* BENIGN_ERRORS */ - -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED - /* Whether to report invalid palette index; added at libng-1.5.10. - * It is possible for an indexed (color-type==3) PNG file to contain - * pixels with invalid (out-of-range) indexes if the PLTE chunk has - * fewer entries than the image's bit-depth would allow. We recover - * from this gracefully by filling any incomplete palette with zeros - * (opaque black). By default, when this occurs libpng will issue - * a benign error. This API can be used to override that behavior. - */ -void PNGAPI -png_set_check_for_invalid_index(png_structrp png_ptr, int allowed) -{ - png_debug(1, "in png_set_check_for_invalid_index"); - - if (allowed > 0) - png_ptr->num_palette_max = 0; - - else - png_ptr->num_palette_max = -1; -} -#endif - -#if defined(PNG_TEXT_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) || \ - defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) -/* Check that the tEXt or zTXt keyword is valid per PNG 1.0 specification, - * and if invalid, correct the keyword rather than discarding the entire - * chunk. The PNG 1.0 specification requires keywords 1-79 characters in - * length, forbids leading or trailing whitespace, multiple internal spaces, - * and the non-break space (0x80) from ISO 8859-1. Returns keyword length. - * - * The 'new_key' buffer must be 80 characters in size (for the keyword plus a - * trailing '\0'). If this routine returns 0 then there was no keyword, or a - * valid one could not be generated, and the caller must png_error. - */ -png_uint_32 /* PRIVATE */ -png_check_keyword(png_structrp png_ptr, png_const_charp key, png_bytep new_key) -{ -#ifdef PNG_WARNINGS_SUPPORTED - png_const_charp orig_key = key; -#endif - png_uint_32 key_len = 0; - int bad_character = 0; - int space = 1; - - png_debug(1, "in png_check_keyword"); - - if (key == NULL) - { - *new_key = 0; - return 0; - } - - while (*key && key_len < 79) - { - png_byte ch = (png_byte)*key++; - - if ((ch > 32 && ch <= 126) || (ch >= 161 /*&& ch <= 255*/)) - { - *new_key++ = ch; ++key_len; space = 0; - } - - else if (space == 0) - { - /* A space or an invalid character when one wasn't seen immediately - * before; output just a space. - */ - *new_key++ = 32; ++key_len; space = 1; - - /* If the character was not a space then it is invalid. */ - if (ch != 32) - bad_character = ch; - } - - else if (bad_character == 0) - bad_character = ch; /* just skip it, record the first error */ - } - - if (key_len > 0 && space != 0) /* trailing space */ - { - --key_len; --new_key; - if (bad_character == 0) - bad_character = 32; - } - - /* Terminate the keyword */ - *new_key = 0; - - if (key_len == 0) - return 0; - -#ifdef PNG_WARNINGS_SUPPORTED - /* Try to only output one warning per keyword: */ - if (*key != 0) /* keyword too long */ - png_warning(png_ptr, "keyword truncated"); - - else if (bad_character != 0) - { - PNG_WARNING_PARAMETERS(p) - - png_warning_parameter(p, 1, orig_key); - png_warning_parameter_signed(p, 2, PNG_NUMBER_FORMAT_02x, bad_character); - - png_formatted_warning(png_ptr, p, "keyword \"@1\": bad character '0x@2'"); - } -#else /* !WARNINGS */ - PNG_UNUSED(png_ptr) -#endif /* !WARNINGS */ - - return key_len; -} -#endif /* TEXT || pCAL || iCCP || sPLT */ -#endif /* READ || WRITE */ diff --git a/Externals/libpng/pngstruct.h b/Externals/libpng/pngstruct.h deleted file mode 100644 index 8bdc7ce46d..0000000000 --- a/Externals/libpng/pngstruct.h +++ /dev/null @@ -1,489 +0,0 @@ - -/* pngstruct.h - header file for PNG reference library - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* The structure that holds the information to read and write PNG files. - * The only people who need to care about what is inside of this are the - * people who will be modifying the library for their own special needs. - * It should NOT be accessed directly by an application. - */ - -#ifndef PNGSTRUCT_H -#define PNGSTRUCT_H -/* zlib.h defines the structure z_stream, an instance of which is included - * in this structure and is required for decompressing the LZ compressed - * data in PNG files. - */ -#ifndef ZLIB_CONST - /* We must ensure that zlib uses 'const' in declarations. */ -# define ZLIB_CONST -#endif -#include "zlib.h" -#ifdef const - /* zlib.h sometimes #defines const to nothing, undo this. */ -# undef const -#endif - -/* zlib.h has mediocre z_const use before 1.2.6, this stuff is for compatibility - * with older builds. - */ -#if ZLIB_VERNUM < 0x1260 -# define PNGZ_MSG_CAST(s) png_constcast(char*,s) -# define PNGZ_INPUT_CAST(b) png_constcast(png_bytep,b) -#else -# define PNGZ_MSG_CAST(s) (s) -# define PNGZ_INPUT_CAST(b) (b) -#endif - -/* zlib.h declares a magic type 'uInt' that limits the amount of data that zlib - * can handle at once. This type need be no larger than 16 bits (so maximum of - * 65535), this define allows us to discover how big it is, but limited by the - * maximum for size_t. The value can be overridden in a library build - * (pngusr.h, or set it in CPPFLAGS) and it works to set it to a considerably - * lower value (e.g. 255 works). A lower value may help memory usage (slightly) - * and may even improve performance on some systems (and degrade it on others.) - */ -#ifndef ZLIB_IO_MAX -# define ZLIB_IO_MAX ((uInt)-1) -#endif - -#ifdef PNG_WRITE_SUPPORTED -/* The type of a compression buffer list used by the write code. */ -typedef struct png_compression_buffer -{ - struct png_compression_buffer *next; - png_byte output[1]; /* actually zbuf_size */ -} png_compression_buffer, *png_compression_bufferp; - -#define PNG_COMPRESSION_BUFFER_SIZE(pp)\ - (offsetof(png_compression_buffer, output) + (pp)->zbuffer_size) -#endif - -/* Colorspace support; structures used in png_struct, png_info and in internal - * functions to hold and communicate information about the color space. - * - * PNG_COLORSPACE_SUPPORTED is only required if the application will perform - * colorspace corrections, otherwise all the colorspace information can be - * skipped and the size of libpng can be reduced (significantly) by compiling - * out the colorspace support. - */ -#ifdef PNG_COLORSPACE_SUPPORTED -/* The chromaticities of the red, green and blue colorants and the chromaticity - * of the corresponding white point (i.e. of rgb(1.0,1.0,1.0)). - */ -typedef struct png_xy -{ - png_fixed_point redx, redy; - png_fixed_point greenx, greeny; - png_fixed_point bluex, bluey; - png_fixed_point whitex, whitey; -} png_xy; - -/* The same data as above but encoded as CIE XYZ values. When this data comes - * from chromaticities the sum of the Y values is assumed to be 1.0 - */ -typedef struct png_XYZ -{ - png_fixed_point red_X, red_Y, red_Z; - png_fixed_point green_X, green_Y, green_Z; - png_fixed_point blue_X, blue_Y, blue_Z; -} png_XYZ; -#endif /* COLORSPACE */ - -#if defined(PNG_COLORSPACE_SUPPORTED) || defined(PNG_GAMMA_SUPPORTED) -/* A colorspace is all the above plus, potentially, profile information; - * however at present libpng does not use the profile internally so it is only - * stored in the png_info struct (if iCCP is supported.) The rendering intent - * is retained here and is checked. - * - * The file gamma encoding information is also stored here and gamma correction - * is done by libpng, whereas color correction must currently be done by the - * application. - */ -typedef struct png_colorspace -{ -#ifdef PNG_GAMMA_SUPPORTED - png_fixed_point gamma; /* File gamma */ -#endif - -#ifdef PNG_COLORSPACE_SUPPORTED - png_xy end_points_xy; /* End points as chromaticities */ - png_XYZ end_points_XYZ; /* End points as CIE XYZ colorant values */ - png_uint_16 rendering_intent; /* Rendering intent of a profile */ -#endif - - /* Flags are always defined to simplify the code. */ - png_uint_16 flags; /* As defined below */ -} png_colorspace, * PNG_RESTRICT png_colorspacerp; - -typedef const png_colorspace * PNG_RESTRICT png_const_colorspacerp; - -/* General flags for the 'flags' field */ -#define PNG_COLORSPACE_HAVE_GAMMA 0x0001 -#define PNG_COLORSPACE_HAVE_ENDPOINTS 0x0002 -#define PNG_COLORSPACE_HAVE_INTENT 0x0004 -#define PNG_COLORSPACE_FROM_gAMA 0x0008 -#define PNG_COLORSPACE_FROM_cHRM 0x0010 -#define PNG_COLORSPACE_FROM_sRGB 0x0020 -#define PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB 0x0040 -#define PNG_COLORSPACE_MATCHES_sRGB 0x0080 /* exact match on profile */ -#define PNG_COLORSPACE_INVALID 0x8000 -#define PNG_COLORSPACE_CANCEL(flags) (0xffff ^ (flags)) -#endif /* COLORSPACE || GAMMA */ - -struct png_struct_def -{ -#ifdef PNG_SETJMP_SUPPORTED - jmp_buf jmp_buf_local; /* New name in 1.6.0 for jmp_buf in png_struct */ - png_longjmp_ptr longjmp_fn;/* setjmp non-local goto function. */ - jmp_buf *jmp_buf_ptr; /* passed to longjmp_fn */ - size_t jmp_buf_size; /* size of the above, if allocated */ -#endif - png_error_ptr error_fn; /* function for printing errors and aborting */ -#ifdef PNG_WARNINGS_SUPPORTED - png_error_ptr warning_fn; /* function for printing warnings */ -#endif - png_voidp error_ptr; /* user supplied struct for error functions */ - png_rw_ptr write_data_fn; /* function for writing output data */ - png_rw_ptr read_data_fn; /* function for reading input data */ - png_voidp io_ptr; /* ptr to application struct for I/O functions */ - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - png_user_transform_ptr read_user_transform_fn; /* user read transform */ -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - png_user_transform_ptr write_user_transform_fn; /* user write transform */ -#endif - -/* These were added in libpng-1.0.2 */ -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - png_voidp user_transform_ptr; /* user supplied struct for user transform */ - png_byte user_transform_depth; /* bit depth of user transformed pixels */ - png_byte user_transform_channels; /* channels in user transformed pixels */ -#endif -#endif - - png_uint_32 mode; /* tells us where we are in the PNG file */ - png_uint_32 flags; /* flags indicating various things to libpng */ - png_uint_32 transformations; /* which transformations to perform */ - - png_uint_32 zowner; /* ID (chunk type) of zstream owner, 0 if none */ - z_stream zstream; /* decompression structure */ - -#ifdef PNG_WRITE_SUPPORTED - png_compression_bufferp zbuffer_list; /* Created on demand during write */ - uInt zbuffer_size; /* size of the actual buffer */ - - int zlib_level; /* holds zlib compression level */ - int zlib_method; /* holds zlib compression method */ - int zlib_window_bits; /* holds zlib compression window bits */ - int zlib_mem_level; /* holds zlib compression memory level */ - int zlib_strategy; /* holds zlib compression strategy */ -#endif -/* Added at libpng 1.5.4 */ -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED - int zlib_text_level; /* holds zlib compression level */ - int zlib_text_method; /* holds zlib compression method */ - int zlib_text_window_bits; /* holds zlib compression window bits */ - int zlib_text_mem_level; /* holds zlib compression memory level */ - int zlib_text_strategy; /* holds zlib compression strategy */ -#endif -/* End of material added at libpng 1.5.4 */ -/* Added at libpng 1.6.0 */ -#ifdef PNG_WRITE_SUPPORTED - int zlib_set_level; /* Actual values set into the zstream on write */ - int zlib_set_method; - int zlib_set_window_bits; - int zlib_set_mem_level; - int zlib_set_strategy; -#endif - - png_uint_32 width; /* width of image in pixels */ - png_uint_32 height; /* height of image in pixels */ - png_uint_32 num_rows; /* number of rows in current pass */ - png_uint_32 usr_width; /* width of row at start of write */ - size_t rowbytes; /* size of row in bytes */ - png_uint_32 iwidth; /* width of current interlaced row in pixels */ - png_uint_32 row_number; /* current row in interlace pass */ - png_uint_32 chunk_name; /* PNG_CHUNK() id of current chunk */ - png_bytep prev_row; /* buffer to save previous (unfiltered) row. - * While reading this is a pointer into - * big_prev_row; while writing it is separately - * allocated if needed. - */ - png_bytep row_buf; /* buffer to save current (unfiltered) row. - * While reading, this is a pointer into - * big_row_buf; while writing it is separately - * allocated. - */ -#ifdef PNG_WRITE_FILTER_SUPPORTED - png_bytep try_row; /* buffer to save trial row when filtering */ - png_bytep tst_row; /* buffer to save best trial row when filtering */ -#endif - size_t info_rowbytes; /* Added in 1.5.4: cache of updated row bytes */ - - png_uint_32 idat_size; /* current IDAT size for read */ - png_uint_32 crc; /* current chunk CRC value */ - png_colorp palette; /* palette from the input file */ - png_uint_16 num_palette; /* number of color entries in palette */ - -/* Added at libpng-1.5.10 */ -#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED - int num_palette_max; /* maximum palette index found in IDAT */ -#endif - - png_uint_16 num_trans; /* number of transparency values */ - png_byte compression; /* file compression type (always 0) */ - png_byte filter; /* file filter type (always 0) */ - png_byte interlaced; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - png_byte pass; /* current interlace pass (0 - 6) */ - png_byte do_filter; /* row filter flags (see PNG_FILTER_ in png.h ) */ - png_byte color_type; /* color type of file */ - png_byte bit_depth; /* bit depth of file */ - png_byte usr_bit_depth; /* bit depth of users row: write only */ - png_byte pixel_depth; /* number of bits per pixel */ - png_byte channels; /* number of channels in file */ -#ifdef PNG_WRITE_SUPPORTED - png_byte usr_channels; /* channels at start of write: write only */ -#endif - png_byte sig_bytes; /* magic bytes read/written from start of file */ - png_byte maximum_pixel_depth; - /* pixel depth used for the row buffers */ - png_byte transformed_pixel_depth; - /* pixel depth after read/write transforms */ -#if ZLIB_VERNUM >= 0x1240 - png_byte zstream_start; /* at start of an input zlib stream */ -#endif /* Zlib >= 1.2.4 */ -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) - png_uint_16 filler; /* filler bytes for pixel expansion */ -#endif - -#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) - png_byte background_gamma_type; - png_fixed_point background_gamma; - png_color_16 background; /* background color in screen gamma space */ -#ifdef PNG_READ_GAMMA_SUPPORTED - png_color_16 background_1; /* background normalized to gamma 1.0 */ -#endif -#endif /* bKGD */ - -#ifdef PNG_WRITE_FLUSH_SUPPORTED - png_flush_ptr output_flush_fn; /* Function for flushing output */ - png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */ - png_uint_32 flush_rows; /* number of rows written since last flush */ -#endif - -#ifdef PNG_READ_GAMMA_SUPPORTED - int gamma_shift; /* number of "insignificant" bits in 16-bit gamma */ - png_fixed_point screen_gamma; /* screen gamma value (display_exponent) */ - - png_bytep gamma_table; /* gamma table for 8-bit depth files */ - png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */ -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - png_bytep gamma_from_1; /* converts from 1.0 to screen */ - png_bytep gamma_to_1; /* converts from file to 1.0 */ - png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */ - png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */ -#endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */ -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) - png_color_8 sig_bit; /* significant bits in each available channel */ -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) - png_color_8 shift; /* shift for significant bit transformation */ -#endif - -#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ - || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_bytep trans_alpha; /* alpha values for paletted files */ - png_color_16 trans_color; /* transparent color for non-paletted files */ -#endif - - png_read_status_ptr read_row_fn; /* called after each row is decoded */ - png_write_status_ptr write_row_fn; /* called after each row is encoded */ -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - png_progressive_info_ptr info_fn; /* called after header data fully read */ - png_progressive_row_ptr row_fn; /* called after a prog. row is decoded */ - png_progressive_end_ptr end_fn; /* called after image is complete */ - png_bytep save_buffer_ptr; /* current location in save_buffer */ - png_bytep save_buffer; /* buffer for previously read data */ - png_bytep current_buffer_ptr; /* current location in current_buffer */ - png_bytep current_buffer; /* buffer for recently used data */ - png_uint_32 push_length; /* size of current input chunk */ - png_uint_32 skip_length; /* bytes to skip in input data */ - size_t save_buffer_size; /* amount of data now in save_buffer */ - size_t save_buffer_max; /* total size of save_buffer */ - size_t buffer_size; /* total amount of available input data */ - size_t current_buffer_size; /* amount of data now in current_buffer */ - int process_mode; /* what push library is currently doing */ - int cur_palette; /* current push library palette index */ - -#endif /* PROGRESSIVE_READ */ - -#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) -/* For the Borland special 64K segment handler */ - png_bytepp offset_table_ptr; - png_bytep offset_table; - png_uint_16 offset_table_number; - png_uint_16 offset_table_count; - png_uint_16 offset_table_count_free; -#endif - -#ifdef PNG_READ_QUANTIZE_SUPPORTED - png_bytep palette_lookup; /* lookup table for quantizing */ - png_bytep quantize_index; /* index translation for palette files */ -#endif - -/* Options */ -#ifdef PNG_SET_OPTION_SUPPORTED - png_uint_32 options; /* On/off state (up to 16 options) */ -#endif - -#if PNG_LIBPNG_VER < 10700 -/* To do: remove this from libpng-1.7 */ -#ifdef PNG_TIME_RFC1123_SUPPORTED - char time_buffer[29]; /* String to hold RFC 1123 time text */ -#endif -#endif - -/* New members added in libpng-1.0.6 */ - - png_uint_32 free_me; /* flags items libpng is responsible for freeing */ - -#ifdef PNG_USER_CHUNKS_SUPPORTED - png_voidp user_chunk_ptr; -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED - png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */ -#endif -#endif - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - int unknown_default; /* As PNG_HANDLE_* */ - unsigned int num_chunk_list; /* Number of entries in the list */ - png_bytep chunk_list; /* List of png_byte[5]; the textual chunk name - * followed by a PNG_HANDLE_* byte */ -#endif - -/* New members added in libpng-1.0.3 */ -#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED - png_byte rgb_to_gray_status; - /* Added in libpng 1.5.5 to record setting of coefficients: */ - png_byte rgb_to_gray_coefficients_set; - /* These were changed from png_byte in libpng-1.0.6 */ - png_uint_16 rgb_to_gray_red_coeff; - png_uint_16 rgb_to_gray_green_coeff; - /* deleted in 1.5.5: rgb_to_gray_blue_coeff; */ -#endif - -/* New member added in libpng-1.6.36 */ -#if defined(PNG_READ_EXPAND_SUPPORTED) && \ - defined(PNG_ARM_NEON_IMPLEMENTATION) - png_bytep riffled_palette; /* buffer for accelerated palette expansion */ -#endif - -/* New member added in libpng-1.0.4 (renamed in 1.0.9) */ -#if defined(PNG_MNG_FEATURES_SUPPORTED) -/* Changed from png_byte to png_uint_32 at version 1.2.0 */ - png_uint_32 mng_features_permitted; -#endif - -/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ -#ifdef PNG_MNG_FEATURES_SUPPORTED - png_byte filter_type; -#endif - -/* New members added in libpng-1.2.0 */ - -/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ -#ifdef PNG_USER_MEM_SUPPORTED - png_voidp mem_ptr; /* user supplied struct for mem functions */ - png_malloc_ptr malloc_fn; /* function for allocating memory */ - png_free_ptr free_fn; /* function for freeing memory */ -#endif - -/* New member added in libpng-1.0.13 and 1.2.0 */ - png_bytep big_row_buf; /* buffer to save current (unfiltered) row */ - -#ifdef PNG_READ_QUANTIZE_SUPPORTED -/* The following three members were added at version 1.0.14 and 1.2.4 */ - png_bytep quantize_sort; /* working sort array */ - png_bytep index_to_palette; /* where the original index currently is - in the palette */ - png_bytep palette_to_index; /* which original index points to this - palette color */ -#endif - -/* New members added in libpng-1.0.16 and 1.2.6 */ - png_byte compression_type; - -#ifdef PNG_USER_LIMITS_SUPPORTED - png_uint_32 user_width_max; - png_uint_32 user_height_max; - - /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown - * chunks that can be stored (0 means unlimited). - */ - png_uint_32 user_chunk_cache_max; - - /* Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk - * can occupy when decompressed. 0 means unlimited. - */ - png_alloc_size_t user_chunk_malloc_max; -#endif - -/* New member added in libpng-1.0.25 and 1.2.17 */ -#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED - /* Temporary storage for unknown chunk that the library doesn't recognize, - * used while reading the chunk. - */ - png_unknown_chunk unknown_chunk; -#endif - -/* New member added in libpng-1.2.26 */ - size_t old_big_row_buf_size; - -#ifdef PNG_READ_SUPPORTED -/* New member added in libpng-1.2.30 */ - png_bytep read_buffer; /* buffer for reading chunk data */ - png_alloc_size_t read_buffer_size; /* current size of the buffer */ -#endif -#ifdef PNG_SEQUENTIAL_READ_SUPPORTED - uInt IDAT_read_size; /* limit on read buffer size for IDAT */ -#endif - -#ifdef PNG_IO_STATE_SUPPORTED -/* New member added in libpng-1.4.0 */ - png_uint_32 io_state; -#endif - -/* New member added in libpng-1.5.6 */ - png_bytep big_prev_row; - -/* New member added in libpng-1.5.7 */ - void (*read_filter[PNG_FILTER_VALUE_LAST-1])(png_row_infop row_info, - png_bytep row, png_const_bytep prev_row); - -#ifdef PNG_READ_SUPPORTED -#if defined(PNG_COLORSPACE_SUPPORTED) || defined(PNG_GAMMA_SUPPORTED) - png_colorspace colorspace; -#endif -#endif -}; -#endif /* PNGSTRUCT_H */ diff --git a/Externals/libpng/pngtest.c b/Externals/libpng/pngtest.c deleted file mode 100644 index a715ae1123..0000000000 --- a/Externals/libpng/pngtest.c +++ /dev/null @@ -1,2158 +0,0 @@ - -/* pngtest.c - a simple test program to test libpng - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This program reads in a PNG image, writes it out again, and then - * compares the two files. If the files are identical, this shows that - * the basic chunk handling, filtering, and (de)compression code is working - * properly. It does not currently test all of the transforms, although - * it probably should. - * - * The program will report "FAIL" in certain legitimate cases: - * 1) when the compression level or filter selection method is changed. - * 2) when the maximum IDAT size (PNG_ZBUF_SIZE in pngconf.h) is not 8192. - * 3) unknown unsafe-to-copy ancillary chunks or unknown critical chunks - * exist in the input file. - * 4) others not listed here... - * In these cases, it is best to check with another tool such as "pngcheck" - * to see what the differences between the two files are. - * - * If a filename is given on the command-line, then this file is used - * for the input, rather than the default "pngtest.png". This allows - * testing a wide variety of files easily. You can also test a number - * of files at once by typing "pngtest -m file1.png file2.png ..." - */ - -#define _POSIX_SOURCE 1 - -#include -#include -#include - -/* Defined so I can write to a file on gui/windowing platforms */ -/* #define STDERR stderr */ -#define STDERR stdout /* For DOS */ - -#include "png.h" - -/* Known chunks that exist in pngtest.png must be supported or pngtest will fail - * simply as a result of re-ordering them. This may be fixed in 1.7 - * - * pngtest allocates a single row buffer for each row and overwrites it, - * therefore if the write side doesn't support the writing of interlaced images - * nothing can be done for an interlaced image (and the code below will fail - * horribly trying to write extra data after writing garbage). - */ -#if defined PNG_READ_SUPPORTED && /* else nothing can be done */\ - defined PNG_READ_bKGD_SUPPORTED &&\ - defined PNG_READ_cHRM_SUPPORTED &&\ - defined PNG_READ_gAMA_SUPPORTED &&\ - defined PNG_READ_oFFs_SUPPORTED &&\ - defined PNG_READ_pCAL_SUPPORTED &&\ - defined PNG_READ_pHYs_SUPPORTED &&\ - defined PNG_READ_sBIT_SUPPORTED &&\ - defined PNG_READ_sCAL_SUPPORTED &&\ - defined PNG_READ_sRGB_SUPPORTED &&\ - defined PNG_READ_sPLT_SUPPORTED &&\ - defined PNG_READ_tEXt_SUPPORTED &&\ - defined PNG_READ_tIME_SUPPORTED &&\ - defined PNG_READ_zTXt_SUPPORTED &&\ - (defined PNG_WRITE_INTERLACING_SUPPORTED || PNG_LIBPNG_VER >= 10700) - -#ifdef PNG_ZLIB_HEADER -# include PNG_ZLIB_HEADER /* defined by pnglibconf.h from 1.7 */ -#else -# include "zlib.h" -#endif - -/* Copied from pngpriv.h but only used in error messages below. */ -#ifndef PNG_ZBUF_SIZE -# define PNG_ZBUF_SIZE 8192 -#endif -#define FCLOSE(file) fclose(file) - -#ifndef PNG_STDIO_SUPPORTED -typedef FILE * png_FILE_p; -#endif - -/* Makes pngtest verbose so we can find problems. */ -#ifndef PNG_DEBUG -# define PNG_DEBUG 0 -#endif - -#if PNG_DEBUG > 1 -# define pngtest_debug(m) ((void)fprintf(stderr, m "\n")) -# define pngtest_debug1(m,p1) ((void)fprintf(stderr, m "\n", p1)) -# define pngtest_debug2(m,p1,p2) ((void)fprintf(stderr, m "\n", p1, p2)) -#else -# define pngtest_debug(m) ((void)0) -# define pngtest_debug1(m,p1) ((void)0) -# define pngtest_debug2(m,p1,p2) ((void)0) -#endif - -#if !PNG_DEBUG -# define SINGLE_ROWBUF_ALLOC /* Makes buffer overruns easier to nail */ -#endif - -#ifndef PNG_UNUSED -# define PNG_UNUSED(param) (void)param; -#endif - -/* Turn on CPU timing -#define PNGTEST_TIMING -*/ - -#ifndef PNG_FLOATING_POINT_SUPPORTED -#undef PNGTEST_TIMING -#endif - -#ifdef PNGTEST_TIMING -static float t_start, t_stop, t_decode, t_encode, t_misc; -#include -#endif - -#ifdef PNG_TIME_RFC1123_SUPPORTED -#define PNG_tIME_STRING_LENGTH 29 -static int tIME_chunk_present = 0; -static char tIME_string[PNG_tIME_STRING_LENGTH] = "tIME chunk is not present"; - -#if PNG_LIBPNG_VER < 10619 -#define png_convert_to_rfc1123_buffer(ts, t) tIME_to_str(read_ptr, ts, t) - -static int -tIME_to_str(png_structp png_ptr, png_charp ts, png_const_timep t) -{ - png_const_charp str = png_convert_to_rfc1123(png_ptr, t); - - if (str == NULL) - return 0; - - strcpy(ts, str); - return 1; -} -#endif /* older libpng */ -#endif - -static int verbose = 0; -static int strict = 0; -static int relaxed = 0; -static int xfail = 0; -static int unsupported_chunks = 0; /* chunk unsupported by libpng in input */ -static int error_count = 0; /* count calls to png_error */ -static int warning_count = 0; /* count calls to png_warning */ - -/* Define png_jmpbuf() in case we are using a pre-1.0.6 version of libpng */ -#ifndef png_jmpbuf -# define png_jmpbuf(png_ptr) png_ptr->jmpbuf -#endif - -/* Defines for unknown chunk handling if required. */ -#ifndef PNG_HANDLE_CHUNK_ALWAYS -# define PNG_HANDLE_CHUNK_ALWAYS 3 -#endif -#ifndef PNG_HANDLE_CHUNK_IF_SAFE -# define PNG_HANDLE_CHUNK_IF_SAFE 2 -#endif - -/* Utility to save typing/errors, the argument must be a name */ -#define MEMZERO(var) ((void)memset(&var, 0, sizeof var)) - -/* Example of using row callbacks to make a simple progress meter */ -static int status_pass = 1; -static int status_dots_requested = 0; -static int status_dots = 1; - -static void PNGCBAPI -read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) -{ - if (png_ptr == NULL || row_number > PNG_UINT_31_MAX) - return; - - if (status_pass != pass) - { - fprintf(stdout, "\n Pass %d: ", pass); - status_pass = pass; - status_dots = 31; - } - - status_dots--; - - if (status_dots == 0) - { - fprintf(stdout, "\n "); - status_dots=30; - } - - fprintf(stdout, "r"); -} - -#ifdef PNG_WRITE_SUPPORTED -static void PNGCBAPI -write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) -{ - if (png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7) - return; - - fprintf(stdout, "w"); -} -#endif - - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -/* Example of using a user transform callback (doesn't do anything at present). - */ -static void PNGCBAPI -read_user_callback(png_structp png_ptr, png_row_infop row_info, png_bytep data) -{ - PNG_UNUSED(png_ptr) - PNG_UNUSED(row_info) - PNG_UNUSED(data) -} -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -/* Example of using user transform callback (we don't transform anything, - * but merely count the zero samples) - */ - -static png_uint_32 zero_samples; - -static void PNGCBAPI -count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) -{ - png_bytep dp = data; - if (png_ptr == NULL) - return; - - /* Contents of row_info: - * png_uint_32 width width of row - * png_uint_32 rowbytes number of bytes in row - * png_byte color_type color type of pixels - * png_byte bit_depth bit depth of samples - * png_byte channels number of channels (1-4) - * png_byte pixel_depth bits per pixel (depth*channels) - */ - - /* Counts the number of zero samples (or zero pixels if color_type is 3 */ - - if (row_info->color_type == 0 || row_info->color_type == 3) - { - int pos = 0; - png_uint_32 n, nstop; - - for (n = 0, nstop=row_info->width; nbit_depth == 1) - { - if (((*dp << pos++ ) & 0x80) == 0) - zero_samples++; - - if (pos == 8) - { - pos = 0; - dp++; - } - } - - if (row_info->bit_depth == 2) - { - if (((*dp << (pos+=2)) & 0xc0) == 0) - zero_samples++; - - if (pos == 8) - { - pos = 0; - dp++; - } - } - - if (row_info->bit_depth == 4) - { - if (((*dp << (pos+=4)) & 0xf0) == 0) - zero_samples++; - - if (pos == 8) - { - pos = 0; - dp++; - } - } - - if (row_info->bit_depth == 8) - if (*dp++ == 0) - zero_samples++; - - if (row_info->bit_depth == 16) - { - if ((*dp | *(dp+1)) == 0) - zero_samples++; - dp+=2; - } - } - } - else /* Other color types */ - { - png_uint_32 n, nstop; - int channel; - int color_channels = row_info->channels; - if (row_info->color_type > 3) - color_channels--; - - for (n = 0, nstop=row_info->width; nbit_depth == 8) - if (*dp++ == 0) - zero_samples++; - - if (row_info->bit_depth == 16) - { - if ((*dp | *(dp+1)) == 0) - zero_samples++; - - dp+=2; - } - } - if (row_info->color_type > 3) - { - dp++; - if (row_info->bit_depth == 16) - dp++; - } - } - } -} -#endif /* WRITE_USER_TRANSFORM */ - -#ifndef PNG_STDIO_SUPPORTED -/* START of code to validate stdio-free compilation */ -/* These copies of the default read/write functions come from pngrio.c and - * pngwio.c. They allow "don't include stdio" testing of the library. - * This is the function that does the actual reading of data. If you are - * not reading from a standard C stream, you should create a replacement - * read_data function and use it at run time with png_set_read_fn(), rather - * than changing the library. - */ - -#ifdef PNG_IO_STATE_SUPPORTED -void -pngtest_check_io_state(png_structp png_ptr, size_t data_length, - png_uint_32 io_op); -void -pngtest_check_io_state(png_structp png_ptr, size_t data_length, - png_uint_32 io_op) -{ - png_uint_32 io_state = png_get_io_state(png_ptr); - int err = 0; - - /* Check if the current operation (reading / writing) is as expected. */ - if ((io_state & PNG_IO_MASK_OP) != io_op) - png_error(png_ptr, "Incorrect operation in I/O state"); - - /* Check if the buffer size specific to the current location - * (file signature / header / data / crc) is as expected. - */ - switch (io_state & PNG_IO_MASK_LOC) - { - case PNG_IO_SIGNATURE: - if (data_length > 8) - err = 1; - break; - case PNG_IO_CHUNK_HDR: - if (data_length != 8) - err = 1; - break; - case PNG_IO_CHUNK_DATA: - break; /* no restrictions here */ - case PNG_IO_CHUNK_CRC: - if (data_length != 4) - err = 1; - break; - default: - err = 1; /* uninitialized */ - } - if (err != 0) - png_error(png_ptr, "Bad I/O state or buffer size"); -} -#endif - -static void PNGCBAPI -pngtest_read_data(png_structp png_ptr, png_bytep data, size_t length) -{ - size_t check = 0; - png_voidp io_ptr; - - /* fread() returns 0 on error, so it is OK to store this in a size_t - * instead of an int, which is what fread() actually returns. - */ - io_ptr = png_get_io_ptr(png_ptr); - if (io_ptr != NULL) - { - check = fread(data, 1, length, (png_FILE_p)io_ptr); - } - - if (check != length) - { - png_error(png_ptr, "Read Error"); - } - -#ifdef PNG_IO_STATE_SUPPORTED - pngtest_check_io_state(png_ptr, length, PNG_IO_READING); -#endif -} - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -static void PNGCBAPI -pngtest_flush(png_structp png_ptr) -{ - /* Do nothing; fflush() is said to be just a waste of energy. */ - PNG_UNUSED(png_ptr) /* Stifle compiler warning */ -} -#endif - -/* This is the function that does the actual writing of data. If you are - * not writing to a standard C stream, you should create a replacement - * write_data function and use it at run time with png_set_write_fn(), rather - * than changing the library. - */ -static void PNGCBAPI -pngtest_write_data(png_structp png_ptr, png_bytep data, size_t length) -{ - size_t check; - - check = fwrite(data, 1, length, (png_FILE_p)png_get_io_ptr(png_ptr)); - - if (check != length) - { - png_error(png_ptr, "Write Error"); - } - -#ifdef PNG_IO_STATE_SUPPORTED - pngtest_check_io_state(png_ptr, length, PNG_IO_WRITING); -#endif -} -#endif /* !STDIO */ - -/* This function is called when there is a warning, but the library thinks - * it can continue anyway. Replacement functions don't have to do anything - * here if you don't want to. In the default configuration, png_ptr is - * not used, but it is passed in case it may be useful. - */ -typedef struct -{ - const char *file_name; -} pngtest_error_parameters; - -static void PNGCBAPI -pngtest_warning(png_structp png_ptr, png_const_charp message) -{ - const char *name = "UNKNOWN (ERROR!)"; - pngtest_error_parameters *test = - (pngtest_error_parameters*)png_get_error_ptr(png_ptr); - - ++warning_count; - - if (test != NULL && test->file_name != NULL) - name = test->file_name; - - fprintf(STDERR, "\n%s: libpng warning: %s\n", name, message); -} - -/* This is the default error handling function. Note that replacements for - * this function MUST NOT RETURN, or the program will likely crash. This - * function is used by default, or if the program supplies NULL for the - * error function pointer in png_set_error_fn(). - */ -static void PNGCBAPI -pngtest_error(png_structp png_ptr, png_const_charp message) -{ - ++error_count; - - pngtest_warning(png_ptr, message); - /* We can return because png_error calls the default handler, which is - * actually OK in this case. - */ -} - -/* END of code to validate stdio-free compilation */ - -/* START of code to validate memory allocation and deallocation */ -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - -/* Allocate memory. For reasonable files, size should never exceed - * 64K. However, zlib may allocate more than 64K if you don't tell - * it not to. See zconf.h and png.h for more information. zlib does - * need to allocate exactly 64K, so whatever you call here must - * have the ability to do that. - * - * This piece of code can be compiled to validate max 64K allocations - * by setting MAXSEG_64K in zlib zconf.h *or* PNG_MAX_MALLOC_64K. - */ -typedef struct memory_information -{ - png_alloc_size_t size; - png_voidp pointer; - struct memory_information *next; -} memory_information; -typedef memory_information *memory_infop; - -static memory_infop pinformation = NULL; -static int current_allocation = 0; -static int maximum_allocation = 0; -static int total_allocation = 0; -static int num_allocations = 0; - -png_voidp PNGCBAPI png_debug_malloc PNGARG((png_structp png_ptr, - png_alloc_size_t size)); -void PNGCBAPI png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr)); - -png_voidp -PNGCBAPI png_debug_malloc(png_structp png_ptr, png_alloc_size_t size) -{ - - /* png_malloc has already tested for NULL; png_create_struct calls - * png_debug_malloc directly, with png_ptr == NULL which is OK - */ - - if (size == 0) - return (NULL); - - /* This calls the library allocator twice, once to get the requested - buffer and once to get a new free list entry. */ - { - /* Disable malloc_fn and free_fn */ - memory_infop pinfo; - png_set_mem_fn(png_ptr, NULL, NULL, NULL); - pinfo = (memory_infop)png_malloc(png_ptr, - (sizeof *pinfo)); - pinfo->size = size; - current_allocation += size; - total_allocation += size; - num_allocations ++; - - if (current_allocation > maximum_allocation) - maximum_allocation = current_allocation; - - pinfo->pointer = png_malloc(png_ptr, size); - /* Restore malloc_fn and free_fn */ - - png_set_mem_fn(png_ptr, - NULL, png_debug_malloc, png_debug_free); - - if (size != 0 && pinfo->pointer == NULL) - { - current_allocation -= size; - total_allocation -= size; - png_error(png_ptr, - "out of memory in pngtest->png_debug_malloc"); - } - - pinfo->next = pinformation; - pinformation = pinfo; - /* Make sure the caller isn't assuming zeroed memory. */ - memset(pinfo->pointer, 0xdd, pinfo->size); - - if (verbose != 0) - printf("png_malloc %lu bytes at %p\n", (unsigned long)size, - pinfo->pointer); - - return (png_voidp)(pinfo->pointer); - } -} - -/* Free a pointer. It is removed from the list at the same time. */ -void PNGCBAPI -png_debug_free(png_structp png_ptr, png_voidp ptr) -{ - if (png_ptr == NULL) - fprintf(STDERR, "NULL pointer to png_debug_free.\n"); - - if (ptr == 0) - { -#if 0 /* This happens all the time. */ - fprintf(STDERR, "WARNING: freeing NULL pointer\n"); -#endif - return; - } - - /* Unlink the element from the list. */ - if (pinformation != NULL) - { - memory_infop *ppinfo = &pinformation; - - for (;;) - { - memory_infop pinfo = *ppinfo; - - if (pinfo->pointer == ptr) - { - *ppinfo = pinfo->next; - current_allocation -= pinfo->size; - if (current_allocation < 0) - fprintf(STDERR, "Duplicate free of memory\n"); - /* We must free the list element too, but first kill - the memory that is to be freed. */ - memset(ptr, 0x55, pinfo->size); - free(pinfo); - pinfo = NULL; - break; - } - - if (pinfo->next == NULL) - { - fprintf(STDERR, "Pointer %p not found\n", ptr); - break; - } - - ppinfo = &pinfo->next; - } - } - - /* Finally free the data. */ - if (verbose != 0) - printf("Freeing %p\n", ptr); - - if (ptr != NULL) - free(ptr); - ptr = NULL; -} -#endif /* USER_MEM && DEBUG */ -/* END of code to test memory allocation/deallocation */ - - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED -/* Demonstration of user chunk support of the sTER and vpAg chunks */ - -/* (sTER is a public chunk not yet known by libpng. vpAg is a private -chunk used in ImageMagick to store "virtual page" size). */ - -static struct user_chunk_data -{ - png_const_infop info_ptr; - png_uint_32 vpAg_width, vpAg_height; - png_byte vpAg_units; - png_byte sTER_mode; - int location[2]; -} -user_chunk_data; - -/* Used for location and order; zero means nothing. */ -#define have_sTER 0x01 -#define have_vpAg 0x02 -#define before_PLTE 0x10 -#define before_IDAT 0x20 -#define after_IDAT 0x40 - -static void -init_callback_info(png_const_infop info_ptr) -{ - MEMZERO(user_chunk_data); - user_chunk_data.info_ptr = info_ptr; -} - -static int -set_location(png_structp png_ptr, struct user_chunk_data *data, int what) -{ - int location; - - if ((data->location[0] & what) != 0 || (data->location[1] & what) != 0) - return 0; /* already have one of these */ - - /* Find where we are (the code below zeroes info_ptr to indicate that the - * chunks before the first IDAT have been read.) - */ - if (data->info_ptr == NULL) /* after IDAT */ - location = what | after_IDAT; - - else if (png_get_valid(png_ptr, data->info_ptr, PNG_INFO_PLTE) != 0) - location = what | before_IDAT; - - else - location = what | before_PLTE; - - if (data->location[0] == 0) - data->location[0] = location; - - else - data->location[1] = location; - - return 1; /* handled */ -} - -static int PNGCBAPI -read_user_chunk_callback(png_struct *png_ptr, png_unknown_chunkp chunk) -{ - struct user_chunk_data *my_user_chunk_data = - (struct user_chunk_data*)png_get_user_chunk_ptr(png_ptr); - - if (my_user_chunk_data == NULL) - png_error(png_ptr, "lost user chunk pointer"); - - /* Return one of the following: - * return (-n); chunk had an error - * return (0); did not recognize - * return (n); success - * - * The unknown chunk structure contains the chunk data: - * png_byte name[5]; - * png_byte *data; - * size_t size; - * - * Note that libpng has already taken care of the CRC handling. - */ - - if (chunk->name[0] == 115 && chunk->name[1] == 84 && /* s T */ - chunk->name[2] == 69 && chunk->name[3] == 82) /* E R */ - { - /* Found sTER chunk */ - if (chunk->size != 1) - return (-1); /* Error return */ - - if (chunk->data[0] != 0 && chunk->data[0] != 1) - return (-1); /* Invalid mode */ - - if (set_location(png_ptr, my_user_chunk_data, have_sTER) != 0) - { - my_user_chunk_data->sTER_mode=chunk->data[0]; - return (1); - } - - else - return (0); /* duplicate sTER - give it to libpng */ - } - - if (chunk->name[0] != 118 || chunk->name[1] != 112 || /* v p */ - chunk->name[2] != 65 || chunk->name[3] != 103) /* A g */ - return (0); /* Did not recognize */ - - /* Found ImageMagick vpAg chunk */ - - if (chunk->size != 9) - return (-1); /* Error return */ - - if (set_location(png_ptr, my_user_chunk_data, have_vpAg) == 0) - return (0); /* duplicate vpAg */ - - my_user_chunk_data->vpAg_width = png_get_uint_31(png_ptr, chunk->data); - my_user_chunk_data->vpAg_height = png_get_uint_31(png_ptr, chunk->data + 4); - my_user_chunk_data->vpAg_units = chunk->data[8]; - - return (1); -} - -#ifdef PNG_WRITE_SUPPORTED -static void -write_sTER_chunk(png_structp write_ptr) -{ - png_byte sTER[5] = {115, 84, 69, 82, '\0'}; - - if (verbose != 0) - fprintf(STDERR, "\n stereo mode = %d\n", user_chunk_data.sTER_mode); - - png_write_chunk(write_ptr, sTER, &user_chunk_data.sTER_mode, 1); -} - -static void -write_vpAg_chunk(png_structp write_ptr) -{ - png_byte vpAg[5] = {118, 112, 65, 103, '\0'}; - - png_byte vpag_chunk_data[9]; - - if (verbose != 0) - fprintf(STDERR, " vpAg = %lu x %lu, units = %d\n", - (unsigned long)user_chunk_data.vpAg_width, - (unsigned long)user_chunk_data.vpAg_height, - user_chunk_data.vpAg_units); - - png_save_uint_32(vpag_chunk_data, user_chunk_data.vpAg_width); - png_save_uint_32(vpag_chunk_data + 4, user_chunk_data.vpAg_height); - vpag_chunk_data[8] = user_chunk_data.vpAg_units; - png_write_chunk(write_ptr, vpAg, vpag_chunk_data, 9); -} - -static void -write_chunks(png_structp write_ptr, int location) -{ - int i; - - /* Notice that this preserves the original chunk order, however chunks - * intercepted by the callback will be written *after* chunks passed to - * libpng. This will actually reverse a pair of sTER chunks or a pair of - * vpAg chunks, resulting in an error later. This is not worth worrying - * about - the chunks should not be duplicated! - */ - for (i=0; i<2; ++i) - { - if (user_chunk_data.location[i] == (location | have_sTER)) - write_sTER_chunk(write_ptr); - - else if (user_chunk_data.location[i] == (location | have_vpAg)) - write_vpAg_chunk(write_ptr); - } -} -#endif /* WRITE */ -#else /* !READ_USER_CHUNKS */ -# define write_chunks(pp,loc) ((void)0) -#endif -/* END of code to demonstrate user chunk support */ - -/* START of code to check that libpng has the required text support; this only - * checks for the write support because if read support is missing the chunk - * will simply not be reported back to pngtest. - */ -#ifdef PNG_TEXT_SUPPORTED -static void -pngtest_check_text_support(png_structp png_ptr, png_textp text_ptr, - int num_text) -{ - while (num_text > 0) - { - switch (text_ptr[--num_text].compression) - { - case PNG_TEXT_COMPRESSION_NONE: - break; - - case PNG_TEXT_COMPRESSION_zTXt: -# ifndef PNG_WRITE_zTXt_SUPPORTED - ++unsupported_chunks; - /* In libpng 1.7 this now does an app-error, so stop it: */ - text_ptr[num_text].compression = PNG_TEXT_COMPRESSION_NONE; -# endif - break; - - case PNG_ITXT_COMPRESSION_NONE: - case PNG_ITXT_COMPRESSION_zTXt: -# ifndef PNG_WRITE_iTXt_SUPPORTED - ++unsupported_chunks; - text_ptr[num_text].compression = PNG_TEXT_COMPRESSION_NONE; -# endif - break; - - default: - /* This is an error */ - png_error(png_ptr, "invalid text chunk compression field"); - break; - } - } -} -#endif -/* END of code to check that libpng has the required text support */ - -/* Test one file */ -static int -test_one_file(const char *inname, const char *outname) -{ - static png_FILE_p fpin; - static png_FILE_p fpout; /* "static" prevents setjmp corruption */ - pngtest_error_parameters error_parameters; - png_structp read_ptr; - png_infop read_info_ptr, end_info_ptr; -#ifdef PNG_WRITE_SUPPORTED - png_structp write_ptr; - png_infop write_info_ptr; - png_infop write_end_info_ptr; -#ifdef PNG_WRITE_FILTER_SUPPORTED - int interlace_preserved = 1; -#endif /* WRITE_FILTER */ -#else /* !WRITE */ - png_structp write_ptr = NULL; - png_infop write_info_ptr = NULL; - png_infop write_end_info_ptr = NULL; -#endif /* !WRITE */ - png_bytep row_buf; - png_uint_32 y; - png_uint_32 width, height; - volatile int num_passes; - int pass; - int bit_depth, color_type; - - row_buf = NULL; - error_parameters.file_name = inname; - - if ((fpin = fopen(inname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find input file %s\n", inname); - return (1); - } - - if ((fpout = fopen(outname, "wb")) == NULL) - { - fprintf(STDERR, "Could not open output file %s\n", outname); - FCLOSE(fpin); - return (1); - } - - pngtest_debug("Allocating read and write structures"); -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - read_ptr = - png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL, - NULL, NULL, NULL, png_debug_malloc, png_debug_free); -#else - read_ptr = - png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); -#endif - png_set_error_fn(read_ptr, &error_parameters, pngtest_error, - pngtest_warning); - -#ifdef PNG_WRITE_SUPPORTED -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - write_ptr = - png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL, - NULL, NULL, NULL, png_debug_malloc, png_debug_free); -#else - write_ptr = - png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); -#endif - png_set_error_fn(write_ptr, &error_parameters, pngtest_error, - pngtest_warning); -#endif - pngtest_debug("Allocating read_info, write_info and end_info structures"); - read_info_ptr = png_create_info_struct(read_ptr); - end_info_ptr = png_create_info_struct(read_ptr); -#ifdef PNG_WRITE_SUPPORTED - write_info_ptr = png_create_info_struct(write_ptr); - write_end_info_ptr = png_create_info_struct(write_ptr); -#endif - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED - init_callback_info(read_info_ptr); - png_set_read_user_chunk_fn(read_ptr, &user_chunk_data, - read_user_chunk_callback); -#endif - -#ifdef PNG_SETJMP_SUPPORTED - pngtest_debug("Setting jmpbuf for read struct"); - if (setjmp(png_jmpbuf(read_ptr))) - { - fprintf(STDERR, "%s -> %s: libpng read error\n", inname, outname); - png_free(read_ptr, row_buf); - row_buf = NULL; - if (verbose != 0) - fprintf(STDERR, " destroy read structs\n"); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); -#ifdef PNG_WRITE_SUPPORTED - if (verbose != 0) - fprintf(STDERR, " destroy write structs\n"); - png_destroy_info_struct(write_ptr, &write_end_info_ptr); - png_destroy_write_struct(&write_ptr, &write_info_ptr); -#endif - FCLOSE(fpin); - FCLOSE(fpout); - return (1); - } - -#ifdef PNG_WRITE_SUPPORTED - pngtest_debug("Setting jmpbuf for write struct"); - - if (setjmp(png_jmpbuf(write_ptr))) - { - fprintf(STDERR, "%s -> %s: libpng write error\n", inname, outname); - png_free(read_ptr, row_buf); - row_buf = NULL; - if (verbose != 0) - fprintf(STDERR, " destroying read structs\n"); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); - if (verbose != 0) - fprintf(STDERR, " destroying write structs\n"); - png_destroy_info_struct(write_ptr, &write_end_info_ptr); - png_destroy_write_struct(&write_ptr, &write_info_ptr); - FCLOSE(fpin); - FCLOSE(fpout); - return (1); - } -#endif -#endif - -#ifdef PNG_BENIGN_ERRORS_SUPPORTED - if (strict != 0) - { - /* Treat png_benign_error() as errors on read */ - png_set_benign_errors(read_ptr, 0); - -# ifdef PNG_WRITE_SUPPORTED - /* Treat them as errors on write */ - png_set_benign_errors(write_ptr, 0); -# endif - - /* if strict is not set, then app warnings and errors are treated as - * warnings in release builds, but not in unstable builds; this can be - * changed with '--relaxed'. - */ - } - - else if (relaxed != 0) - { - /* Allow application (pngtest) errors and warnings to pass */ - png_set_benign_errors(read_ptr, 1); - - /* Turn off CRC checking while reading */ - png_set_crc_action(read_ptr, PNG_CRC_QUIET_USE, PNG_CRC_QUIET_USE); - -#ifdef PNG_IGNORE_ADLER32 - /* Turn off ADLER32 checking while reading */ - png_set_option(read_ptr, PNG_IGNORE_ADLER32, PNG_OPTION_ON); -#endif - -# ifdef PNG_WRITE_SUPPORTED - png_set_benign_errors(write_ptr, 1); -# endif - - } -#endif /* BENIGN_ERRORS */ - - pngtest_debug("Initializing input and output streams"); -#ifdef PNG_STDIO_SUPPORTED - png_init_io(read_ptr, fpin); -# ifdef PNG_WRITE_SUPPORTED - png_init_io(write_ptr, fpout); -# endif -#else - png_set_read_fn(read_ptr, (png_voidp)fpin, pngtest_read_data); -# ifdef PNG_WRITE_SUPPORTED - png_set_write_fn(write_ptr, (png_voidp)fpout, pngtest_write_data, -# ifdef PNG_WRITE_FLUSH_SUPPORTED - pngtest_flush); -# else - NULL); -# endif -# endif -#endif - - if (status_dots_requested == 1) - { -#ifdef PNG_WRITE_SUPPORTED - png_set_write_status_fn(write_ptr, write_row_callback); -#endif - png_set_read_status_fn(read_ptr, read_row_callback); - } - - else - { -#ifdef PNG_WRITE_SUPPORTED - png_set_write_status_fn(write_ptr, NULL); -#endif - png_set_read_status_fn(read_ptr, NULL); - } - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - png_set_read_user_transform_fn(read_ptr, read_user_callback); -#endif -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - zero_samples = 0; - png_set_write_user_transform_fn(write_ptr, count_zero_samples); -#endif - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - /* Preserve all the unknown chunks, if possible. If this is disabled then, - * even if the png_{get,set}_unknown_chunks stuff is enabled, we can't use - * libpng to *save* the unknown chunks on read (because we can't switch the - * save option on!) - * - * Notice that if SET_UNKNOWN_CHUNKS is *not* supported read will discard all - * unknown chunks and write will write them all. - */ -#ifdef PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED - png_set_keep_unknown_chunks(read_ptr, PNG_HANDLE_CHUNK_ALWAYS, - NULL, 0); -#endif -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - png_set_keep_unknown_chunks(write_ptr, PNG_HANDLE_CHUNK_ALWAYS, - NULL, 0); -#endif -#endif - - pngtest_debug("Reading info struct"); - png_read_info(read_ptr, read_info_ptr); - -#ifdef PNG_READ_USER_CHUNKS_SUPPORTED - /* This is a bit of a hack; there is no obvious way in the callback function - * to determine that the chunks before the first IDAT have been read, so - * remove the info_ptr (which is only used to determine position relative to - * PLTE) here to indicate that we are after the IDAT. - */ - user_chunk_data.info_ptr = NULL; -#endif - - pngtest_debug("Transferring info struct"); - { - int interlace_type, compression_type, filter_type; - - if (png_get_IHDR(read_ptr, read_info_ptr, &width, &height, &bit_depth, - &color_type, &interlace_type, &compression_type, &filter_type) != 0) - { - png_set_IHDR(write_ptr, write_info_ptr, width, height, bit_depth, - color_type, interlace_type, compression_type, filter_type); - /* num_passes may not be available below if interlace support is not - * provided by libpng for both read and write. - */ - switch (interlace_type) - { - case PNG_INTERLACE_NONE: - num_passes = 1; - break; - - case PNG_INTERLACE_ADAM7: - num_passes = 7; - break; - - default: - png_error(read_ptr, "invalid interlace type"); - /*NOT REACHED*/ - } - } - - else - png_error(read_ptr, "png_get_IHDR failed"); - } -#ifdef PNG_FIXED_POINT_SUPPORTED -#ifdef PNG_cHRM_SUPPORTED - { - png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x, - blue_y; - - if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y, - &red_x, &red_y, &green_x, &green_y, &blue_x, &blue_y) != 0) - { - png_set_cHRM_fixed(write_ptr, write_info_ptr, white_x, white_y, red_x, - red_y, green_x, green_y, blue_x, blue_y); - } - } -#endif -#ifdef PNG_gAMA_SUPPORTED - { - png_fixed_point gamma; - - if (png_get_gAMA_fixed(read_ptr, read_info_ptr, &gamma) != 0) - png_set_gAMA_fixed(write_ptr, write_info_ptr, gamma); - } -#endif -#else /* Use floating point versions */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -#ifdef PNG_cHRM_SUPPORTED - { - double white_x, white_y, red_x, red_y, green_x, green_y, blue_x, - blue_y; - - if (png_get_cHRM(read_ptr, read_info_ptr, &white_x, &white_y, &red_x, - &red_y, &green_x, &green_y, &blue_x, &blue_y) != 0) - { - png_set_cHRM(write_ptr, write_info_ptr, white_x, white_y, red_x, - red_y, green_x, green_y, blue_x, blue_y); - } - } -#endif -#ifdef PNG_gAMA_SUPPORTED - { - double gamma; - - if (png_get_gAMA(read_ptr, read_info_ptr, &gamma) != 0) - png_set_gAMA(write_ptr, write_info_ptr, gamma); - } -#endif -#endif /* Floating point */ -#endif /* Fixed point */ -#ifdef PNG_iCCP_SUPPORTED - { - png_charp name; - png_bytep profile; - png_uint_32 proflen; - int compression_type; - - if (png_get_iCCP(read_ptr, read_info_ptr, &name, &compression_type, - &profile, &proflen) != 0) - { - png_set_iCCP(write_ptr, write_info_ptr, name, compression_type, - profile, proflen); - } - } -#endif -#ifdef PNG_sRGB_SUPPORTED - { - int intent; - - if (png_get_sRGB(read_ptr, read_info_ptr, &intent) != 0) - png_set_sRGB(write_ptr, write_info_ptr, intent); - } -#endif - { - png_colorp palette; - int num_palette; - - if (png_get_PLTE(read_ptr, read_info_ptr, &palette, &num_palette) != 0) - png_set_PLTE(write_ptr, write_info_ptr, palette, num_palette); - } -#ifdef PNG_bKGD_SUPPORTED - { - png_color_16p background; - - if (png_get_bKGD(read_ptr, read_info_ptr, &background) != 0) - { - png_set_bKGD(write_ptr, write_info_ptr, background); - } - } -#endif -#ifdef PNG_READ_eXIf_SUPPORTED - { - png_bytep exif=NULL; - png_uint_32 exif_length; - - if (png_get_eXIf_1(read_ptr, read_info_ptr, &exif_length, &exif) != 0) - { - if (exif_length > 1) - fprintf(STDERR," eXIf type %c%c, %lu bytes\n",exif[0],exif[1], - (unsigned long)exif_length); -# ifdef PNG_WRITE_eXIf_SUPPORTED - png_set_eXIf_1(write_ptr, write_info_ptr, exif_length, exif); -# endif - } - } -#endif -#ifdef PNG_hIST_SUPPORTED - { - png_uint_16p hist; - - if (png_get_hIST(read_ptr, read_info_ptr, &hist) != 0) - png_set_hIST(write_ptr, write_info_ptr, hist); - } -#endif -#ifdef PNG_oFFs_SUPPORTED - { - png_int_32 offset_x, offset_y; - int unit_type; - - if (png_get_oFFs(read_ptr, read_info_ptr, &offset_x, &offset_y, - &unit_type) != 0) - { - png_set_oFFs(write_ptr, write_info_ptr, offset_x, offset_y, unit_type); - } - } -#endif -#ifdef PNG_pCAL_SUPPORTED - { - png_charp purpose, units; - png_charpp params; - png_int_32 X0, X1; - int type, nparams; - - if (png_get_pCAL(read_ptr, read_info_ptr, &purpose, &X0, &X1, &type, - &nparams, &units, ¶ms) != 0) - { - png_set_pCAL(write_ptr, write_info_ptr, purpose, X0, X1, type, - nparams, units, params); - } - } -#endif -#ifdef PNG_pHYs_SUPPORTED - { - png_uint_32 res_x, res_y; - int unit_type; - - if (png_get_pHYs(read_ptr, read_info_ptr, &res_x, &res_y, - &unit_type) != 0) - png_set_pHYs(write_ptr, write_info_ptr, res_x, res_y, unit_type); - } -#endif -#ifdef PNG_sBIT_SUPPORTED - { - png_color_8p sig_bit; - - if (png_get_sBIT(read_ptr, read_info_ptr, &sig_bit) != 0) - png_set_sBIT(write_ptr, write_info_ptr, sig_bit); - } -#endif -#ifdef PNG_sCAL_SUPPORTED -#if defined(PNG_FLOATING_POINT_SUPPORTED) && \ - defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) - { - int unit; - double scal_width, scal_height; - - if (png_get_sCAL(read_ptr, read_info_ptr, &unit, &scal_width, - &scal_height) != 0) - { - png_set_sCAL(write_ptr, write_info_ptr, unit, scal_width, scal_height); - } - } -#else -#ifdef PNG_FIXED_POINT_SUPPORTED - { - int unit; - png_charp scal_width, scal_height; - - if (png_get_sCAL_s(read_ptr, read_info_ptr, &unit, &scal_width, - &scal_height) != 0) - { - png_set_sCAL_s(write_ptr, write_info_ptr, unit, scal_width, - scal_height); - } - } -#endif -#endif -#endif - -#ifdef PNG_sPLT_SUPPORTED - { - png_sPLT_tp entries; - - int num_entries = (int) png_get_sPLT(read_ptr, read_info_ptr, &entries); - if (num_entries) - { - png_set_sPLT(write_ptr, write_info_ptr, entries, num_entries); - } - } -#endif - -#ifdef PNG_TEXT_SUPPORTED - { - png_textp text_ptr; - int num_text; - - if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0) - { - pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text); - - pngtest_check_text_support(read_ptr, text_ptr, num_text); - - if (verbose != 0) - { - int i; - - fprintf(STDERR,"\n"); - for (i=0; igray > sample_max) || - (color_type == PNG_COLOR_TYPE_RGB && - ((int)trans_color->red > sample_max || - (int)trans_color->green > sample_max || - (int)trans_color->blue > sample_max)))) - png_set_tRNS(write_ptr, write_info_ptr, trans_alpha, num_trans, - trans_color); - } - } -#endif -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - { - png_unknown_chunkp unknowns; - int num_unknowns = png_get_unknown_chunks(read_ptr, read_info_ptr, - &unknowns); - - if (num_unknowns != 0) - { - png_set_unknown_chunks(write_ptr, write_info_ptr, unknowns, - num_unknowns); -#if PNG_LIBPNG_VER < 10600 - /* Copy the locations from the read_info_ptr. The automatically - * generated locations in write_end_info_ptr are wrong prior to 1.6.0 - * because they are reset from the write pointer (removed in 1.6.0). - */ - { - int i; - for (i = 0; i < num_unknowns; i++) - png_set_unknown_chunk_location(write_ptr, write_info_ptr, i, - unknowns[i].location); - } -#endif - } - } -#endif - -#ifdef PNG_WRITE_SUPPORTED - pngtest_debug("Writing info struct"); - - /* Write the info in two steps so that if we write the 'unknown' chunks here - * they go to the correct place. - */ - png_write_info_before_PLTE(write_ptr, write_info_ptr); - - write_chunks(write_ptr, before_PLTE); /* before PLTE */ - - png_write_info(write_ptr, write_info_ptr); - - write_chunks(write_ptr, before_IDAT); /* after PLTE */ - - png_write_info(write_ptr, write_end_info_ptr); - - write_chunks(write_ptr, after_IDAT); /* after IDAT */ - -#ifdef PNG_COMPRESSION_COMPAT - /* Test the 'compatibility' setting here, if it is available. */ - png_set_compression(write_ptr, PNG_COMPRESSION_COMPAT); -#endif -#endif - -#ifdef SINGLE_ROWBUF_ALLOC - pngtest_debug("Allocating row buffer..."); - row_buf = (png_bytep)png_malloc(read_ptr, - png_get_rowbytes(read_ptr, read_info_ptr)); - - pngtest_debug1("\t%p", row_buf); -#endif /* SINGLE_ROWBUF_ALLOC */ - pngtest_debug("Writing row data"); - -#if defined(PNG_READ_INTERLACING_SUPPORTED) &&\ - defined(PNG_WRITE_INTERLACING_SUPPORTED) - /* Both must be defined for libpng to be able to handle the interlace, - * otherwise it gets handled below by simply reading and writing the passes - * directly. - */ - if (png_set_interlace_handling(read_ptr) != num_passes) - png_error(write_ptr, - "png_set_interlace_handling(read): wrong pass count "); - if (png_set_interlace_handling(write_ptr) != num_passes) - png_error(write_ptr, - "png_set_interlace_handling(write): wrong pass count "); -#else /* png_set_interlace_handling not called on either read or write */ -# define calc_pass_height -#endif /* not using libpng interlace handling */ - -#ifdef PNGTEST_TIMING - t_stop = (float)clock(); - t_misc += (t_stop - t_start); - t_start = t_stop; -#endif - for (pass = 0; pass < num_passes; pass++) - { -# ifdef calc_pass_height - png_uint_32 pass_height; - - if (num_passes == 7) /* interlaced */ - { - if (PNG_PASS_COLS(width, pass) > 0) - pass_height = PNG_PASS_ROWS(height, pass); - - else - pass_height = 0; - } - - else /* not interlaced */ - pass_height = height; -# else -# define pass_height height -# endif - - pngtest_debug1("Writing row data for pass %d", pass); - for (y = 0; y < pass_height; y++) - { -#ifndef SINGLE_ROWBUF_ALLOC - pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y); - - row_buf = (png_bytep)png_malloc(read_ptr, - png_get_rowbytes(read_ptr, read_info_ptr)); - - pngtest_debug2("\t%p (%lu bytes)", row_buf, - (unsigned long)png_get_rowbytes(read_ptr, read_info_ptr)); - -#endif /* !SINGLE_ROWBUF_ALLOC */ - png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1); - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNGTEST_TIMING - t_stop = (float)clock(); - t_decode += (t_stop - t_start); - t_start = t_stop; -#endif - png_write_rows(write_ptr, (png_bytepp)&row_buf, 1); -#ifdef PNGTEST_TIMING - t_stop = (float)clock(); - t_encode += (t_stop - t_start); - t_start = t_stop; -#endif -#endif /* WRITE */ - -#ifndef SINGLE_ROWBUF_ALLOC - pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y); - png_free(read_ptr, row_buf); - row_buf = NULL; -#endif /* !SINGLE_ROWBUF_ALLOC */ - } - } - -#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED -# ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED - png_free_data(read_ptr, read_info_ptr, PNG_FREE_UNKN, -1); -# endif -# ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - png_free_data(write_ptr, write_info_ptr, PNG_FREE_UNKN, -1); -# endif -#endif - - pngtest_debug("Reading and writing end_info data"); - - png_read_end(read_ptr, end_info_ptr); -#ifdef PNG_TEXT_SUPPORTED - { - png_textp text_ptr; - int num_text; - - if (png_get_text(read_ptr, end_info_ptr, &text_ptr, &num_text) > 0) - { - pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text); - - pngtest_check_text_support(read_ptr, text_ptr, num_text); - - if (verbose != 0) - { - int i; - - fprintf(STDERR,"\n"); - for (i=0; i 1) - fprintf(STDERR," eXIf type %c%c, %lu bytes\n",exif[0],exif[1], - (unsigned long)exif_length); -# ifdef PNG_WRITE_eXIf_SUPPORTED - png_set_eXIf_1(write_ptr, write_end_info_ptr, exif_length, exif); -# endif - } - } -#endif -#ifdef PNG_tIME_SUPPORTED - { - png_timep mod_time; - - if (png_get_tIME(read_ptr, end_info_ptr, &mod_time) != 0) - { - png_set_tIME(write_ptr, write_end_info_ptr, mod_time); -#ifdef PNG_TIME_RFC1123_SUPPORTED - if (png_convert_to_rfc1123_buffer(tIME_string, mod_time) != 0) - tIME_string[(sizeof tIME_string) - 1] = '\0'; - - else - { - strncpy(tIME_string, "*** invalid time ***", sizeof tIME_string); - tIME_string[(sizeof tIME_string)-1] = '\0'; - } - - tIME_chunk_present++; -#endif /* TIME_RFC1123 */ - } - } -#endif -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - { - png_unknown_chunkp unknowns; - int num_unknowns = png_get_unknown_chunks(read_ptr, end_info_ptr, - &unknowns); - - if (num_unknowns != 0) - { - png_set_unknown_chunks(write_ptr, write_end_info_ptr, unknowns, - num_unknowns); -#if PNG_LIBPNG_VER < 10600 - /* Copy the locations from the read_info_ptr. The automatically - * generated locations in write_end_info_ptr are wrong prior to 1.6.0 - * because they are reset from the write pointer (removed in 1.6.0). - */ - { - int i; - for (i = 0; i < num_unknowns; i++) - png_set_unknown_chunk_location(write_ptr, write_end_info_ptr, i, - unknowns[i].location); - } -#endif - } - } -#endif - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED - /* Normally one would use Z_DEFAULT_STRATEGY for text compression. - * This is here just to make pngtest replicate the results from libpng - * versions prior to 1.5.4, and to test this new API. - */ - png_set_text_compression_strategy(write_ptr, Z_FILTERED); -#endif - - /* When the unknown vpAg/sTER chunks are written by pngtest the only way to - * do it is to write them *before* calling png_write_end. When unknown - * chunks are written by libpng, however, they are written just before IEND. - * There seems to be no way round this, however vpAg/sTER are not expected - * after IDAT. - */ - write_chunks(write_ptr, after_IDAT); - - png_write_end(write_ptr, write_end_info_ptr); -#endif - -#ifdef PNG_EASY_ACCESS_SUPPORTED - if (verbose != 0) - { - png_uint_32 iwidth, iheight; - iwidth = png_get_image_width(write_ptr, write_info_ptr); - iheight = png_get_image_height(write_ptr, write_info_ptr); - fprintf(STDERR, "\n Image width = %lu, height = %lu\n", - (unsigned long)iwidth, (unsigned long)iheight); - } -#endif - - pngtest_debug("Destroying data structs"); -#ifdef SINGLE_ROWBUF_ALLOC - pngtest_debug("destroying row_buf for read_ptr"); - png_free(read_ptr, row_buf); - row_buf = NULL; -#endif /* SINGLE_ROWBUF_ALLOC */ - pngtest_debug("destroying read_ptr, read_info_ptr, end_info_ptr"); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); -#ifdef PNG_WRITE_SUPPORTED - pngtest_debug("destroying write_end_info_ptr"); - png_destroy_info_struct(write_ptr, &write_end_info_ptr); - pngtest_debug("destroying write_ptr, write_info_ptr"); - png_destroy_write_struct(&write_ptr, &write_info_ptr); -#endif - pngtest_debug("Destruction complete."); - - FCLOSE(fpin); - FCLOSE(fpout); - - /* Summarize any warnings or errors and in 'strict' mode fail the test. - * Unsupported chunks can result in warnings, in that case ignore the strict - * setting, otherwise fail the test on warnings as well as errors. - */ - if (error_count > 0) - { - /* We don't really expect to get here because of the setjmp handling - * above, but this is safe. - */ - fprintf(STDERR, "\n %s: %d libpng errors found (%d warnings)", - inname, error_count, warning_count); - - if (strict != 0) - return (1); - } - -# ifdef PNG_WRITE_SUPPORTED - /* If there is no write support nothing was written! */ - else if (unsupported_chunks > 0) - { - fprintf(STDERR, "\n %s: unsupported chunks (%d)%s", - inname, unsupported_chunks, strict ? ": IGNORED --strict!" : ""); - } -# endif - - else if (warning_count > 0) - { - fprintf(STDERR, "\n %s: %d libpng warnings found", - inname, warning_count); - - if (strict != 0) - return (1); - } - - pngtest_debug("Opening files for comparison"); - if ((fpin = fopen(inname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find file %s\n", inname); - return (1); - } - - if ((fpout = fopen(outname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find file %s\n", outname); - FCLOSE(fpin); - return (1); - } - -#if defined (PNG_WRITE_SUPPORTED) /* else nothing was written */ &&\ - defined (PNG_WRITE_FILTER_SUPPORTED) - if (interlace_preserved != 0) /* else the files will be changed */ - { - for (;;) - { - static int wrote_question = 0; - size_t num_in, num_out; - char inbuf[256], outbuf[256]; - - num_in = fread(inbuf, 1, sizeof inbuf, fpin); - num_out = fread(outbuf, 1, sizeof outbuf, fpout); - - if (num_in != num_out) - { - fprintf(STDERR, "\nFiles %s and %s are of a different size\n", - inname, outname); - - if (wrote_question == 0 && unsupported_chunks == 0) - { - fprintf(STDERR, - " Was %s written with the same maximum IDAT" - " chunk size (%d bytes),", - inname, PNG_ZBUF_SIZE); - fprintf(STDERR, - "\n filtering heuristic (libpng default), compression"); - fprintf(STDERR, - " level (zlib default),\n and zlib version (%s)?\n\n", - ZLIB_VERSION); - wrote_question = 1; - } - - FCLOSE(fpin); - FCLOSE(fpout); - - if (strict != 0 && unsupported_chunks == 0) - return (1); - - else - return (0); - } - - if (num_in == 0) - break; - - if (memcmp(inbuf, outbuf, num_in)) - { - fprintf(STDERR, "\nFiles %s and %s are different\n", inname, - outname); - - if (wrote_question == 0 && unsupported_chunks == 0) - { - fprintf(STDERR, - " Was %s written with the same maximum" - " IDAT chunk size (%d bytes),", - inname, PNG_ZBUF_SIZE); - fprintf(STDERR, - "\n filtering heuristic (libpng default), compression"); - fprintf(STDERR, - " level (zlib default),\n and zlib version (%s)?\n\n", - ZLIB_VERSION); - wrote_question = 1; - } - - FCLOSE(fpin); - FCLOSE(fpout); - - /* NOTE: the unsupported_chunks escape is permitted here because - * unsupported text chunk compression will result in the compression - * mode being changed (to NONE) yet, in the test case, the result - * can be exactly the same size! - */ - if (strict != 0 && unsupported_chunks == 0) - return (1); - - else - return (0); - } - } - } -#endif /* WRITE && WRITE_FILTER */ - - FCLOSE(fpin); - FCLOSE(fpout); - - return (0); -} - -/* Input and output filenames */ -#ifdef RISCOS -static const char *inname = "pngtest/png"; -static const char *outname = "pngout/png"; -#else -static const char *inname = "pngtest.png"; -static const char *outname = "pngout.png"; -#endif - -int -main(int argc, char *argv[]) -{ - int multiple = 0; - int ierror = 0; - - png_structp dummy_ptr; - - fprintf(STDERR, "\n Testing libpng version %s\n", PNG_LIBPNG_VER_STRING); - fprintf(STDERR, " with zlib version %s\n", ZLIB_VERSION); - fprintf(STDERR, "%s", png_get_copyright(NULL)); - /* Show the version of libpng used in building the library */ - fprintf(STDERR, " library (%lu):%s", - (unsigned long)png_access_version_number(), - png_get_header_version(NULL)); - - /* Show the version of libpng used in building the application */ - fprintf(STDERR, " pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER, - PNG_HEADER_VERSION_STRING); - - /* Do some consistency checking on the memory allocation settings, I'm - * not sure this matters, but it is nice to know, the first of these - * tests should be impossible because of the way the macros are set - * in pngconf.h - */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) - fprintf(STDERR, " NOTE: Zlib compiled for max 64k, libpng not\n"); -#endif - /* I think the following can happen. */ -#if !defined(MAXSEG_64K) && defined(PNG_MAX_MALLOC_64K) - fprintf(STDERR, " NOTE: libpng compiled for max 64k, zlib not\n"); -#endif - - if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING)) - { - fprintf(STDERR, - "Warning: versions are different between png.h and png.c\n"); - fprintf(STDERR, " png.h version: %s\n", PNG_LIBPNG_VER_STRING); - fprintf(STDERR, " png.c version: %s\n\n", png_libpng_ver); - ++ierror; - } - - if (argc > 1) - { - if (strcmp(argv[1], "-m") == 0) - { - multiple = 1; - status_dots_requested = 0; - } - - else if (strcmp(argv[1], "-mv") == 0 || - strcmp(argv[1], "-vm") == 0 ) - { - multiple = 1; - verbose = 1; - status_dots_requested = 1; - } - - else if (strcmp(argv[1], "-v") == 0) - { - verbose = 1; - status_dots_requested = 1; - inname = argv[2]; - } - - else if (strcmp(argv[1], "--strict") == 0) - { - status_dots_requested = 0; - verbose = 1; - inname = argv[2]; - strict++; - relaxed = 0; - multiple=1; - } - - else if (strcmp(argv[1], "--relaxed") == 0) - { - status_dots_requested = 0; - verbose = 1; - inname = argv[2]; - strict = 0; - relaxed++; - multiple=1; - } - else if (strcmp(argv[1], "--xfail") == 0) - { - status_dots_requested = 0; - verbose = 1; - inname = argv[2]; - strict = 0; - xfail++; - relaxed++; - multiple=1; - } - - else - { - inname = argv[1]; - status_dots_requested = 0; - } - } - - if (multiple == 0 && argc == 3 + verbose) - outname = argv[2 + verbose]; - - if ((multiple == 0 && argc > 3 + verbose) || - (multiple != 0 && argc < 2)) - { - fprintf(STDERR, - "usage: %s [infile.png] [outfile.png]\n\t%s -m {infile.png}\n", - argv[0], argv[0]); - fprintf(STDERR, - " reads/writes one PNG file (without -m) or multiple files (-m)\n"); - fprintf(STDERR, - " with -m %s is used as a temporary file\n", outname); - exit(1); - } - - if (multiple != 0) - { - int i; -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - int allocation_now = current_allocation; -#endif - for (i=2; i 0 - fprintf(STDERR, "\n"); -#endif - kerror = test_one_file(argv[i], outname); - if (kerror == 0) - { -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - fprintf(STDERR, "\n PASS (%lu zero samples)\n", - (unsigned long)zero_samples); -#else - fprintf(STDERR, " PASS\n"); -#endif -#ifdef PNG_TIME_RFC1123_SUPPORTED - if (tIME_chunk_present != 0) - fprintf(STDERR, " tIME = %s\n", tIME_string); - - tIME_chunk_present = 0; -#endif /* TIME_RFC1123 */ - } - - else - { - if (xfail) - fprintf(STDERR, " XFAIL\n"); - else - { - fprintf(STDERR, " FAIL\n"); - ierror += kerror; - } - } -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - if (allocation_now != current_allocation) - fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n", - current_allocation - allocation_now); - - if (current_allocation != 0) - { - memory_infop pinfo = pinformation; - - fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n", - current_allocation); - - while (pinfo != NULL) - { - fprintf(STDERR, " %lu bytes at %p\n", - (unsigned long)pinfo->size, - pinfo->pointer); - pinfo = pinfo->next; - } - } -#endif - } -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - fprintf(STDERR, " Current memory allocation: %10d bytes\n", - current_allocation); - fprintf(STDERR, " Maximum memory allocation: %10d bytes\n", - maximum_allocation); - fprintf(STDERR, " Total memory allocation: %10d bytes\n", - total_allocation); - fprintf(STDERR, " Number of allocations: %10d\n", - num_allocations); -#endif - } - - else - { - int i; - for (i = 0; i<3; ++i) - { - int kerror; -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - int allocation_now = current_allocation; -#endif - if (i == 1) - status_dots_requested = 1; - - else if (verbose == 0) - status_dots_requested = 0; - - if (i == 0 || verbose == 1 || ierror != 0) - { - fprintf(STDERR, "\n Testing %s:", inname); -#if PNG_DEBUG > 0 - fprintf(STDERR, "\n"); -#endif - } - - kerror = test_one_file(inname, outname); - - if (kerror == 0) - { - if (verbose == 1 || i == 2) - { -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - fprintf(STDERR, "\n PASS (%lu zero samples)\n", - (unsigned long)zero_samples); -#else - fprintf(STDERR, " PASS\n"); -#endif -#ifdef PNG_TIME_RFC1123_SUPPORTED - if (tIME_chunk_present != 0) - fprintf(STDERR, " tIME = %s\n", tIME_string); -#endif /* TIME_RFC1123 */ - } - } - - else - { - if (verbose == 0 && i != 2) - { - fprintf(STDERR, "\n Testing %s:", inname); -#if PNG_DEBUG > 0 - fprintf(STDERR, "\n"); -#endif - } - - if (xfail) - fprintf(STDERR, " XFAIL\n"); - else - { - fprintf(STDERR, " FAIL\n"); - ierror += kerror; - } - } -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - if (allocation_now != current_allocation) - fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n", - current_allocation - allocation_now); - - if (current_allocation != 0) - { - memory_infop pinfo = pinformation; - - fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n", - current_allocation); - - while (pinfo != NULL) - { - fprintf(STDERR, " %lu bytes at %p\n", - (unsigned long)pinfo->size, pinfo->pointer); - pinfo = pinfo->next; - } - } -#endif - } -#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG - fprintf(STDERR, " Current memory allocation: %10d bytes\n", - current_allocation); - fprintf(STDERR, " Maximum memory allocation: %10d bytes\n", - maximum_allocation); - fprintf(STDERR, " Total memory allocation: %10d bytes\n", - total_allocation); - fprintf(STDERR, " Number of allocations: %10d\n", - num_allocations); -#endif - } - -#ifdef PNGTEST_TIMING - t_stop = (float)clock(); - t_misc += (t_stop - t_start); - t_start = t_stop; - fprintf(STDERR, " CPU time used = %.3f seconds", - (t_misc+t_decode+t_encode)/(float)CLOCKS_PER_SEC); - fprintf(STDERR, " (decoding %.3f,\n", - t_decode/(float)CLOCKS_PER_SEC); - fprintf(STDERR, " encoding %.3f ,", - t_encode/(float)CLOCKS_PER_SEC); - fprintf(STDERR, " other %.3f seconds)\n\n", - t_misc/(float)CLOCKS_PER_SEC); -#endif - - if (ierror == 0) - fprintf(STDERR, " libpng passes test\n"); - - else - fprintf(STDERR, " libpng FAILS test\n"); - - dummy_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - fprintf(STDERR, " Default limits:\n"); - fprintf(STDERR, " width_max = %lu\n", - (unsigned long) png_get_user_width_max(dummy_ptr)); - fprintf(STDERR, " height_max = %lu\n", - (unsigned long) png_get_user_height_max(dummy_ptr)); - if (png_get_chunk_cache_max(dummy_ptr) == 0) - fprintf(STDERR, " cache_max = unlimited\n"); - else - fprintf(STDERR, " cache_max = %lu\n", - (unsigned long) png_get_chunk_cache_max(dummy_ptr)); - if (png_get_chunk_malloc_max(dummy_ptr) == 0) - fprintf(STDERR, " malloc_max = unlimited\n"); - else - fprintf(STDERR, " malloc_max = %lu\n", - (unsigned long) png_get_chunk_malloc_max(dummy_ptr)); - png_destroy_read_struct(&dummy_ptr, NULL, NULL); - - return (int)(ierror != 0); -} -#else -int -main(void) -{ - fprintf(STDERR, - " test ignored because libpng was not built with read support\n"); - /* And skip this test */ - return PNG_LIBPNG_VER < 10600 ? 0 : 77; -} -#endif - -/* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_37 Your_png_h_is_not_version_1_6_37; diff --git a/Externals/libpng/pngtrans.c b/Externals/libpng/pngtrans.c deleted file mode 100644 index 1100f46ebe..0000000000 --- a/Externals/libpng/pngtrans.c +++ /dev/null @@ -1,864 +0,0 @@ - -/* pngtrans.c - transforms the data in a row (used by both readers and writers) - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" - -#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Turn on BGR-to-RGB mapping */ -void PNGAPI -png_set_bgr(png_structrp png_ptr) -{ - png_debug(1, "in png_set_bgr"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_BGR; -} -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Turn on 16-bit byte swapping */ -void PNGAPI -png_set_swap(png_structrp png_ptr) -{ - png_debug(1, "in png_set_swap"); - - if (png_ptr == NULL) - return; - - if (png_ptr->bit_depth == 16) - png_ptr->transformations |= PNG_SWAP_BYTES; -} -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Turn on pixel packing */ -void PNGAPI -png_set_packing(png_structrp png_ptr) -{ - png_debug(1, "in png_set_packing"); - - if (png_ptr == NULL) - return; - - if (png_ptr->bit_depth < 8) - { - png_ptr->transformations |= PNG_PACK; -# ifdef PNG_WRITE_SUPPORTED - png_ptr->usr_bit_depth = 8; -# endif - } -} -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Turn on packed pixel swapping */ -void PNGAPI -png_set_packswap(png_structrp png_ptr) -{ - png_debug(1, "in png_set_packswap"); - - if (png_ptr == NULL) - return; - - if (png_ptr->bit_depth < 8) - png_ptr->transformations |= PNG_PACKSWAP; -} -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -void PNGAPI -png_set_shift(png_structrp png_ptr, png_const_color_8p true_bits) -{ - png_debug(1, "in png_set_shift"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_SHIFT; - png_ptr->shift = *true_bits; -} -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -int PNGAPI -png_set_interlace_handling(png_structrp png_ptr) -{ - png_debug(1, "in png_set_interlace handling"); - - if (png_ptr != 0 && png_ptr->interlaced != 0) - { - png_ptr->transformations |= PNG_INTERLACE; - return (7); - } - - return (1); -} -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte on read, or remove a filler or alpha byte on write. - * The filler type has changed in v0.95 to allow future 2-byte fillers - * for 48-bit input data, as well as to avoid problems with some compilers - * that don't like bytes as parameters. - */ -void PNGAPI -png_set_filler(png_structrp png_ptr, png_uint_32 filler, int filler_loc) -{ - png_debug(1, "in png_set_filler"); - - if (png_ptr == NULL) - return; - - /* In libpng 1.6 it is possible to determine whether this is a read or write - * operation and therefore to do more checking here for a valid call. - */ - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0) - { -# ifdef PNG_READ_FILLER_SUPPORTED - /* On read png_set_filler is always valid, regardless of the base PNG - * format, because other transformations can give a format where the - * filler code can execute (basically an 8 or 16-bit component RGB or G - * format.) - * - * NOTE: usr_channels is not used by the read code! (This has led to - * confusion in the past.) The filler is only used in the read code. - */ - png_ptr->filler = (png_uint_16)filler; -# else - png_app_error(png_ptr, "png_set_filler not supported on read"); - PNG_UNUSED(filler) /* not used in the write case */ - return; -# endif - } - - else /* write */ - { -# ifdef PNG_WRITE_FILLER_SUPPORTED - /* On write the usr_channels parameter must be set correctly at the - * start to record the number of channels in the app-supplied data. - */ - switch (png_ptr->color_type) - { - case PNG_COLOR_TYPE_RGB: - png_ptr->usr_channels = 4; - break; - - case PNG_COLOR_TYPE_GRAY: - if (png_ptr->bit_depth >= 8) - { - png_ptr->usr_channels = 2; - break; - } - - else - { - /* There simply isn't any code in libpng to strip out bits - * from bytes when the components are less than a byte in - * size! - */ - png_app_error(png_ptr, - "png_set_filler is invalid for" - " low bit depth gray output"); - return; - } - - default: - png_app_error(png_ptr, - "png_set_filler: inappropriate color type"); - return; - } -# else - png_app_error(png_ptr, "png_set_filler not supported on write"); - return; -# endif - } - - /* Here on success - libpng supports the operation, set the transformation - * and the flag to say where the filler channel is. - */ - png_ptr->transformations |= PNG_FILLER; - - if (filler_loc == PNG_FILLER_AFTER) - png_ptr->flags |= PNG_FLAG_FILLER_AFTER; - - else - png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER; -} - -/* Added to libpng-1.2.7 */ -void PNGAPI -png_set_add_alpha(png_structrp png_ptr, png_uint_32 filler, int filler_loc) -{ - png_debug(1, "in png_set_add_alpha"); - - if (png_ptr == NULL) - return; - - png_set_filler(png_ptr, filler, filler_loc); - /* The above may fail to do anything. */ - if ((png_ptr->transformations & PNG_FILLER) != 0) - png_ptr->transformations |= PNG_ADD_ALPHA; -} - -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -void PNGAPI -png_set_swap_alpha(png_structrp png_ptr) -{ - png_debug(1, "in png_set_swap_alpha"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_SWAP_ALPHA; -} -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -void PNGAPI -png_set_invert_alpha(png_structrp png_ptr) -{ - png_debug(1, "in png_set_invert_alpha"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_INVERT_ALPHA; -} -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -void PNGAPI -png_set_invert_mono(png_structrp png_ptr) -{ - png_debug(1, "in png_set_invert_mono"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_INVERT_MONO; -} - -/* Invert monochrome grayscale data */ -void /* PRIVATE */ -png_do_invert(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_invert"); - - /* This test removed from libpng version 1.0.13 and 1.2.0: - * if (row_info->bit_depth == 1 && - */ - if (row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - png_bytep rp = row; - size_t i; - size_t istop = row_info->rowbytes; - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(~(*rp)); - rp++; - } - } - - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && - row_info->bit_depth == 8) - { - png_bytep rp = row; - size_t i; - size_t istop = row_info->rowbytes; - - for (i = 0; i < istop; i += 2) - { - *rp = (png_byte)(~(*rp)); - rp += 2; - } - } - -#ifdef PNG_16BIT_SUPPORTED - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && - row_info->bit_depth == 16) - { - png_bytep rp = row; - size_t i; - size_t istop = row_info->rowbytes; - - for (i = 0; i < istop; i += 4) - { - *rp = (png_byte)(~(*rp)); - *(rp + 1) = (png_byte)(~(*(rp + 1))); - rp += 4; - } - } -#endif -} -#endif - -#ifdef PNG_16BIT_SUPPORTED -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swaps byte order on 16-bit depth images */ -void /* PRIVATE */ -png_do_swap(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_swap"); - - if (row_info->bit_depth == 16) - { - png_bytep rp = row; - png_uint_32 i; - png_uint_32 istop= row_info->width * row_info->channels; - - for (i = 0; i < istop; i++, rp += 2) - { -#ifdef PNG_BUILTIN_BSWAP16_SUPPORTED - /* Feature added to libpng-1.6.11 for testing purposes, not - * enabled by default. - */ - *(png_uint_16*)rp = __builtin_bswap16(*(png_uint_16*)rp); -#else - png_byte t = *rp; - *rp = *(rp + 1); - *(rp + 1) = t; -#endif - } - } -} -#endif -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) -static const png_byte onebppswaptable[256] = { - 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, - 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, - 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, - 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, - 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, - 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, - 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, - 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, - 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, - 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, - 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, - 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, - 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, - 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, - 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, - 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, - 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, - 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, - 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, - 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, - 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, - 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, - 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, - 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, - 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, - 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, - 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF -}; - -static const png_byte twobppswaptable[256] = { - 0x00, 0x40, 0x80, 0xC0, 0x10, 0x50, 0x90, 0xD0, - 0x20, 0x60, 0xA0, 0xE0, 0x30, 0x70, 0xB0, 0xF0, - 0x04, 0x44, 0x84, 0xC4, 0x14, 0x54, 0x94, 0xD4, - 0x24, 0x64, 0xA4, 0xE4, 0x34, 0x74, 0xB4, 0xF4, - 0x08, 0x48, 0x88, 0xC8, 0x18, 0x58, 0x98, 0xD8, - 0x28, 0x68, 0xA8, 0xE8, 0x38, 0x78, 0xB8, 0xF8, - 0x0C, 0x4C, 0x8C, 0xCC, 0x1C, 0x5C, 0x9C, 0xDC, - 0x2C, 0x6C, 0xAC, 0xEC, 0x3C, 0x7C, 0xBC, 0xFC, - 0x01, 0x41, 0x81, 0xC1, 0x11, 0x51, 0x91, 0xD1, - 0x21, 0x61, 0xA1, 0xE1, 0x31, 0x71, 0xB1, 0xF1, - 0x05, 0x45, 0x85, 0xC5, 0x15, 0x55, 0x95, 0xD5, - 0x25, 0x65, 0xA5, 0xE5, 0x35, 0x75, 0xB5, 0xF5, - 0x09, 0x49, 0x89, 0xC9, 0x19, 0x59, 0x99, 0xD9, - 0x29, 0x69, 0xA9, 0xE9, 0x39, 0x79, 0xB9, 0xF9, - 0x0D, 0x4D, 0x8D, 0xCD, 0x1D, 0x5D, 0x9D, 0xDD, - 0x2D, 0x6D, 0xAD, 0xED, 0x3D, 0x7D, 0xBD, 0xFD, - 0x02, 0x42, 0x82, 0xC2, 0x12, 0x52, 0x92, 0xD2, - 0x22, 0x62, 0xA2, 0xE2, 0x32, 0x72, 0xB2, 0xF2, - 0x06, 0x46, 0x86, 0xC6, 0x16, 0x56, 0x96, 0xD6, - 0x26, 0x66, 0xA6, 0xE6, 0x36, 0x76, 0xB6, 0xF6, - 0x0A, 0x4A, 0x8A, 0xCA, 0x1A, 0x5A, 0x9A, 0xDA, - 0x2A, 0x6A, 0xAA, 0xEA, 0x3A, 0x7A, 0xBA, 0xFA, - 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x5E, 0x9E, 0xDE, - 0x2E, 0x6E, 0xAE, 0xEE, 0x3E, 0x7E, 0xBE, 0xFE, - 0x03, 0x43, 0x83, 0xC3, 0x13, 0x53, 0x93, 0xD3, - 0x23, 0x63, 0xA3, 0xE3, 0x33, 0x73, 0xB3, 0xF3, - 0x07, 0x47, 0x87, 0xC7, 0x17, 0x57, 0x97, 0xD7, - 0x27, 0x67, 0xA7, 0xE7, 0x37, 0x77, 0xB7, 0xF7, - 0x0B, 0x4B, 0x8B, 0xCB, 0x1B, 0x5B, 0x9B, 0xDB, - 0x2B, 0x6B, 0xAB, 0xEB, 0x3B, 0x7B, 0xBB, 0xFB, - 0x0F, 0x4F, 0x8F, 0xCF, 0x1F, 0x5F, 0x9F, 0xDF, - 0x2F, 0x6F, 0xAF, 0xEF, 0x3F, 0x7F, 0xBF, 0xFF -}; - -static const png_byte fourbppswaptable[256] = { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, - 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, - 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71, - 0x81, 0x91, 0xA1, 0xB1, 0xC1, 0xD1, 0xE1, 0xF1, - 0x02, 0x12, 0x22, 0x32, 0x42, 0x52, 0x62, 0x72, - 0x82, 0x92, 0xA2, 0xB2, 0xC2, 0xD2, 0xE2, 0xF2, - 0x03, 0x13, 0x23, 0x33, 0x43, 0x53, 0x63, 0x73, - 0x83, 0x93, 0xA3, 0xB3, 0xC3, 0xD3, 0xE3, 0xF3, - 0x04, 0x14, 0x24, 0x34, 0x44, 0x54, 0x64, 0x74, - 0x84, 0x94, 0xA4, 0xB4, 0xC4, 0xD4, 0xE4, 0xF4, - 0x05, 0x15, 0x25, 0x35, 0x45, 0x55, 0x65, 0x75, - 0x85, 0x95, 0xA5, 0xB5, 0xC5, 0xD5, 0xE5, 0xF5, - 0x06, 0x16, 0x26, 0x36, 0x46, 0x56, 0x66, 0x76, - 0x86, 0x96, 0xA6, 0xB6, 0xC6, 0xD6, 0xE6, 0xF6, - 0x07, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 0x77, - 0x87, 0x97, 0xA7, 0xB7, 0xC7, 0xD7, 0xE7, 0xF7, - 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x68, 0x78, - 0x88, 0x98, 0xA8, 0xB8, 0xC8, 0xD8, 0xE8, 0xF8, - 0x09, 0x19, 0x29, 0x39, 0x49, 0x59, 0x69, 0x79, - 0x89, 0x99, 0xA9, 0xB9, 0xC9, 0xD9, 0xE9, 0xF9, - 0x0A, 0x1A, 0x2A, 0x3A, 0x4A, 0x5A, 0x6A, 0x7A, - 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0xDA, 0xEA, 0xFA, - 0x0B, 0x1B, 0x2B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, - 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0xDB, 0xEB, 0xFB, - 0x0C, 0x1C, 0x2C, 0x3C, 0x4C, 0x5C, 0x6C, 0x7C, - 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xDC, 0xEC, 0xFC, - 0x0D, 0x1D, 0x2D, 0x3D, 0x4D, 0x5D, 0x6D, 0x7D, - 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0xDD, 0xED, 0xFD, - 0x0E, 0x1E, 0x2E, 0x3E, 0x4E, 0x5E, 0x6E, 0x7E, - 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0xDE, 0xEE, 0xFE, - 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F, - 0x8F, 0x9F, 0xAF, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF -}; - -/* Swaps pixel packing order within bytes */ -void /* PRIVATE */ -png_do_packswap(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_packswap"); - - if (row_info->bit_depth < 8) - { - png_bytep rp; - png_const_bytep end, table; - - end = row + row_info->rowbytes; - - if (row_info->bit_depth == 1) - table = onebppswaptable; - - else if (row_info->bit_depth == 2) - table = twobppswaptable; - - else if (row_info->bit_depth == 4) - table = fourbppswaptable; - - else - return; - - for (rp = row; rp < end; rp++) - *rp = table[*rp]; - } -} -#endif /* PACKSWAP || WRITE_PACKSWAP */ - -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -/* Remove a channel - this used to be 'png_do_strip_filler' but it used a - * somewhat weird combination of flags to determine what to do. All the calls - * to png_do_strip_filler are changed in 1.5.2 to call this instead with the - * correct arguments. - * - * The routine isn't general - the channel must be the channel at the start or - * end (not in the middle) of each pixel. - */ -void /* PRIVATE */ -png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start) -{ - png_bytep sp = row; /* source pointer */ - png_bytep dp = row; /* destination pointer */ - png_bytep ep = row + row_info->rowbytes; /* One beyond end of row */ - - /* At the start sp will point to the first byte to copy and dp to where - * it is copied to. ep always points just beyond the end of the row, so - * the loop simply copies (channels-1) channels until sp reaches ep. - * - * at_start: 0 -- convert AG, XG, ARGB, XRGB, AAGG, XXGG, etc. - * nonzero -- convert GA, GX, RGBA, RGBX, GGAA, RRGGBBXX, etc. - */ - - /* GA, GX, XG cases */ - if (row_info->channels == 2) - { - if (row_info->bit_depth == 8) - { - if (at_start != 0) /* Skip initial filler */ - ++sp; - else /* Skip initial channel and, for sp, the filler */ - { - sp += 2; ++dp; - } - - /* For a 1 pixel wide image there is nothing to do */ - while (sp < ep) - { - *dp++ = *sp; sp += 2; - } - - row_info->pixel_depth = 8; - } - - else if (row_info->bit_depth == 16) - { - if (at_start != 0) /* Skip initial filler */ - sp += 2; - else /* Skip initial channel and, for sp, the filler */ - { - sp += 4; dp += 2; - } - - while (sp < ep) - { - *dp++ = *sp++; *dp++ = *sp; sp += 3; - } - - row_info->pixel_depth = 16; - } - - else - return; /* bad bit depth */ - - row_info->channels = 1; - - /* Finally fix the color type if it records an alpha channel */ - if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - row_info->color_type = PNG_COLOR_TYPE_GRAY; - } - - /* RGBA, RGBX, XRGB cases */ - else if (row_info->channels == 4) - { - if (row_info->bit_depth == 8) - { - if (at_start != 0) /* Skip initial filler */ - ++sp; - else /* Skip initial channels and, for sp, the filler */ - { - sp += 4; dp += 3; - } - - /* Note that the loop adds 3 to dp and 4 to sp each time. */ - while (sp < ep) - { - *dp++ = *sp++; *dp++ = *sp++; *dp++ = *sp; sp += 2; - } - - row_info->pixel_depth = 24; - } - - else if (row_info->bit_depth == 16) - { - if (at_start != 0) /* Skip initial filler */ - sp += 2; - else /* Skip initial channels and, for sp, the filler */ - { - sp += 8; dp += 6; - } - - while (sp < ep) - { - /* Copy 6 bytes, skip 2 */ - *dp++ = *sp++; *dp++ = *sp++; - *dp++ = *sp++; *dp++ = *sp++; - *dp++ = *sp++; *dp++ = *sp; sp += 3; - } - - row_info->pixel_depth = 48; - } - - else - return; /* bad bit depth */ - - row_info->channels = 3; - - /* Finally fix the color type if it records an alpha channel */ - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - row_info->color_type = PNG_COLOR_TYPE_RGB; - } - - else - return; /* The filler channel has gone already */ - - /* Fix the rowbytes value. */ - row_info->rowbytes = (size_t)(dp-row); -} -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Swaps red and blue bytes within a pixel */ -void /* PRIVATE */ -png_do_bgr(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_bgr"); - - if ((row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - png_uint_32 row_width = row_info->width; - if (row_info->bit_depth == 8) - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 3) - { - png_byte save = *rp; - *rp = *(rp + 2); - *(rp + 2) = save; - } - } - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 4) - { - png_byte save = *rp; - *rp = *(rp + 2); - *(rp + 2) = save; - } - } - } - -#ifdef PNG_16BIT_SUPPORTED - else if (row_info->bit_depth == 16) - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 6) - { - png_byte save = *rp; - *rp = *(rp + 4); - *(rp + 4) = save; - save = *(rp + 1); - *(rp + 1) = *(rp + 5); - *(rp + 5) = save; - } - } - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 8) - { - png_byte save = *rp; - *rp = *(rp + 4); - *(rp + 4) = save; - save = *(rp + 1); - *(rp + 1) = *(rp + 5); - *(rp + 5) = save; - } - } - } -#endif - } -} -#endif /* READ_BGR || WRITE_BGR */ - -#if defined(PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED) || \ - defined(PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED) -/* Added at libpng-1.5.10 */ -void /* PRIVATE */ -png_do_check_palette_indexes(png_structrp png_ptr, png_row_infop row_info) -{ - if (png_ptr->num_palette < (1 << row_info->bit_depth) && - png_ptr->num_palette > 0) /* num_palette can be 0 in MNG files */ - { - /* Calculations moved outside switch in an attempt to stop different - * compiler warnings. 'padding' is in *bits* within the last byte, it is - * an 'int' because pixel_depth becomes an 'int' in the expression below, - * and this calculation is used because it avoids warnings that other - * forms produced on either GCC or MSVC. - */ - int padding = PNG_PADBITS(row_info->pixel_depth, row_info->width); - png_bytep rp = png_ptr->row_buf + row_info->rowbytes - 1; - - switch (row_info->bit_depth) - { - case 1: - { - /* in this case, all bytes must be 0 so we don't need - * to unpack the pixels except for the rightmost one. - */ - for (; rp > png_ptr->row_buf; rp--) - { - if ((*rp >> padding) != 0) - png_ptr->num_palette_max = 1; - padding = 0; - } - - break; - } - - case 2: - { - for (; rp > png_ptr->row_buf; rp--) - { - int i = ((*rp >> padding) & 0x03); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - i = (((*rp >> padding) >> 2) & 0x03); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - i = (((*rp >> padding) >> 4) & 0x03); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - i = (((*rp >> padding) >> 6) & 0x03); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - padding = 0; - } - - break; - } - - case 4: - { - for (; rp > png_ptr->row_buf; rp--) - { - int i = ((*rp >> padding) & 0x0f); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - i = (((*rp >> padding) >> 4) & 0x0f); - - if (i > png_ptr->num_palette_max) - png_ptr->num_palette_max = i; - - padding = 0; - } - - break; - } - - case 8: - { - for (; rp > png_ptr->row_buf; rp--) - { - if (*rp > png_ptr->num_palette_max) - png_ptr->num_palette_max = (int) *rp; - } - - break; - } - - default: - break; - } - } -} -#endif /* CHECK_FOR_INVALID_INDEX */ - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -void PNGAPI -png_set_user_transform_info(png_structrp png_ptr, png_voidp - user_transform_ptr, int user_transform_depth, int user_transform_channels) -{ - png_debug(1, "in png_set_user_transform_info"); - - if (png_ptr == NULL) - return; - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED - if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && - (png_ptr->flags & PNG_FLAG_ROW_INIT) != 0) - { - png_app_error(png_ptr, - "info change after png_start_read_image or png_read_update_info"); - return; - } -#endif - - png_ptr->user_transform_ptr = user_transform_ptr; - png_ptr->user_transform_depth = (png_byte)user_transform_depth; - png_ptr->user_transform_channels = (png_byte)user_transform_channels; -} -#endif - -/* This function returns a pointer to the user_transform_ptr associated with - * the user transform functions. The application should free any memory - * associated with this pointer before png_write_destroy and png_read_destroy - * are called. - */ -#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED -png_voidp PNGAPI -png_get_user_transform_ptr(png_const_structrp png_ptr) -{ - if (png_ptr == NULL) - return (NULL); - - return png_ptr->user_transform_ptr; -} -#endif - -#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED -png_uint_32 PNGAPI -png_get_current_row_number(png_const_structrp png_ptr) -{ - /* See the comments in png.h - this is the sub-image row when reading an - * interlaced image. - */ - if (png_ptr != NULL) - return png_ptr->row_number; - - return PNG_UINT_32_MAX; /* help the app not to fail silently */ -} - -png_byte PNGAPI -png_get_current_pass_number(png_const_structrp png_ptr) -{ - if (png_ptr != NULL) - return png_ptr->pass; - return 8; /* invalid */ -} -#endif /* USER_TRANSFORM_INFO */ -#endif /* READ_USER_TRANSFORM || WRITE_USER_TRANSFORM */ -#endif /* READ || WRITE */ diff --git a/Externals/libpng/pngwio.c b/Externals/libpng/pngwio.c deleted file mode 100644 index 10e919dd03..0000000000 --- a/Externals/libpng/pngwio.c +++ /dev/null @@ -1,168 +0,0 @@ - -/* pngwio.c - functions for data output - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2014,2016,2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - * - * This file provides a location for all output. Users who need - * special handling are expected to write functions that have the same - * arguments as these and perform similar functions, but that possibly - * use different output methods. Note that you shouldn't change these - * functions, but rather write replacement functions and then change - * them at run time with png_set_write_fn(...). - */ - -#include "pngpriv.h" - -#ifdef PNG_WRITE_SUPPORTED - -/* Write the data to whatever output you are using. The default routine - * writes to a file pointer. Note that this routine sometimes gets called - * with very small lengths, so you should implement some kind of simple - * buffering if you are using unbuffered writes. This should never be asked - * to write more than 64K on a 16-bit machine. - */ - -void /* PRIVATE */ -png_write_data(png_structrp png_ptr, png_const_bytep data, size_t length) -{ - /* NOTE: write_data_fn must not change the buffer! */ - if (png_ptr->write_data_fn != NULL ) - (*(png_ptr->write_data_fn))(png_ptr, png_constcast(png_bytep,data), - length); - - else - png_error(png_ptr, "Call to NULL write function"); -} - -#ifdef PNG_STDIO_SUPPORTED -/* This is the function that does the actual writing of data. If you are - * not writing to a standard C stream, you should create a replacement - * write_data function and use it at run time with png_set_write_fn(), rather - * than changing the library. - */ -void PNGCBAPI -png_default_write_data(png_structp png_ptr, png_bytep data, size_t length) -{ - size_t check; - - if (png_ptr == NULL) - return; - - check = fwrite(data, 1, length, (png_FILE_p)(png_ptr->io_ptr)); - - if (check != length) - png_error(png_ptr, "Write Error"); -} -#endif - -/* This function is called to output any data pending writing (normally - * to disk). After png_flush is called, there should be no data pending - * writing in any buffers. - */ -#ifdef PNG_WRITE_FLUSH_SUPPORTED -void /* PRIVATE */ -png_flush(png_structrp png_ptr) -{ - if (png_ptr->output_flush_fn != NULL) - (*(png_ptr->output_flush_fn))(png_ptr); -} - -# ifdef PNG_STDIO_SUPPORTED -void PNGCBAPI -png_default_flush(png_structp png_ptr) -{ - png_FILE_p io_ptr; - - if (png_ptr == NULL) - return; - - io_ptr = png_voidcast(png_FILE_p, (png_ptr->io_ptr)); - fflush(io_ptr); -} -# endif -#endif - -/* This function allows the application to supply new output functions for - * libpng if standard C streams aren't being used. - * - * This function takes as its arguments: - * png_ptr - pointer to a png output data structure - * io_ptr - pointer to user supplied structure containing info about - * the output functions. May be NULL. - * write_data_fn - pointer to a new output function that takes as its - * arguments a pointer to a png_struct, a pointer to - * data to be written, and a 32-bit unsigned int that is - * the number of bytes to be written. The new write - * function should call png_error(png_ptr, "Error msg") - * to exit and output any fatal error messages. May be - * NULL, in which case libpng's default function will - * be used. - * flush_data_fn - pointer to a new flush function that takes as its - * arguments a pointer to a png_struct. After a call to - * the flush function, there should be no data in any buffers - * or pending transmission. If the output method doesn't do - * any buffering of output, a function prototype must still be - * supplied although it doesn't have to do anything. If - * PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile - * time, output_flush_fn will be ignored, although it must be - * supplied for compatibility. May be NULL, in which case - * libpng's default function will be used, if - * PNG_WRITE_FLUSH_SUPPORTED is defined. This is not - * a good idea if io_ptr does not point to a standard - * *FILE structure. - */ -void PNGAPI -png_set_write_fn(png_structrp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->io_ptr = io_ptr; - -#ifdef PNG_STDIO_SUPPORTED - if (write_data_fn != NULL) - png_ptr->write_data_fn = write_data_fn; - - else - png_ptr->write_data_fn = png_default_write_data; -#else - png_ptr->write_data_fn = write_data_fn; -#endif - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -# ifdef PNG_STDIO_SUPPORTED - - if (output_flush_fn != NULL) - png_ptr->output_flush_fn = output_flush_fn; - - else - png_ptr->output_flush_fn = png_default_flush; - -# else - png_ptr->output_flush_fn = output_flush_fn; -# endif -#else - PNG_UNUSED(output_flush_fn) -#endif /* WRITE_FLUSH */ - -#ifdef PNG_READ_SUPPORTED - /* It is an error to read while writing a png file */ - if (png_ptr->read_data_fn != NULL) - { - png_ptr->read_data_fn = NULL; - - png_warning(png_ptr, - "Can't set both read_data_fn and write_data_fn in the" - " same structure"); - } -#endif -} -#endif /* WRITE */ diff --git a/Externals/libpng/pngwrite.c b/Externals/libpng/pngwrite.c deleted file mode 100644 index 59377a4dde..0000000000 --- a/Externals/libpng/pngwrite.c +++ /dev/null @@ -1,2395 +0,0 @@ - -/* pngwrite.c - general routines to write a PNG file - * - * Copyright (c) 2018-2019 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" -#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -# include -#endif /* SIMPLIFIED_WRITE_STDIO */ - -#ifdef PNG_WRITE_SUPPORTED - -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED -/* Write out all the unknown chunks for the current given location */ -static void -write_unknown_chunks(png_structrp png_ptr, png_const_inforp info_ptr, - unsigned int where) -{ - if (info_ptr->unknown_chunks_num != 0) - { - png_const_unknown_chunkp up; - - png_debug(5, "writing extra chunks"); - - for (up = info_ptr->unknown_chunks; - up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num; - ++up) - if ((up->location & where) != 0) - { - /* If per-chunk unknown chunk handling is enabled use it, otherwise - * just write the chunks the application has set. - */ -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - int keep = png_handle_as_unknown(png_ptr, up->name); - - /* NOTE: this code is radically different from the read side in the - * matter of handling an ancillary unknown chunk. In the read side - * the default behavior is to discard it, in the code below the default - * behavior is to write it. Critical chunks are, however, only - * written if explicitly listed or if the default is set to write all - * unknown chunks. - * - * The default handling is also slightly weird - it is not possible to - * stop the writing of all unsafe-to-copy chunks! - * - * TODO: REVIEW: this would seem to be a bug. - */ - if (keep != PNG_HANDLE_CHUNK_NEVER && - ((up->name[3] & 0x20) /* safe-to-copy overrides everything */ || - keep == PNG_HANDLE_CHUNK_ALWAYS || - (keep == PNG_HANDLE_CHUNK_AS_DEFAULT && - png_ptr->unknown_default == PNG_HANDLE_CHUNK_ALWAYS))) -#endif - { - /* TODO: review, what is wrong with a zero length unknown chunk? */ - if (up->size == 0) - png_warning(png_ptr, "Writing zero-length unknown chunk"); - - png_write_chunk(png_ptr, up->name, up->data, up->size); - } - } - } -} -#endif /* WRITE_UNKNOWN_CHUNKS */ - -/* Writes all the PNG information. This is the suggested way to use the - * library. If you have a new chunk to add, make a function to write it, - * and put it in the correct location here. If you want the chunk written - * after the image data, put it in png_write_end(). I strongly encourage - * you to supply a PNG_INFO_ flag, and check info_ptr->valid before writing - * the chunk, as that will keep the code from breaking if you want to just - * write a plain PNG file. If you have long comments, I suggest writing - * them in png_write_end(), and compressing them. - */ -void PNGAPI -png_write_info_before_PLTE(png_structrp png_ptr, png_const_inforp info_ptr) -{ - png_debug(1, "in png_write_info_before_PLTE"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - if ((png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE) == 0) - { - /* Write PNG signature */ - png_write_sig(png_ptr); - -#ifdef PNG_MNG_FEATURES_SUPPORTED - if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 && \ - png_ptr->mng_features_permitted != 0) - { - png_warning(png_ptr, - "MNG features are not allowed in a PNG datastream"); - png_ptr->mng_features_permitted = 0; - } -#endif - - /* Write IHDR information. */ - png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height, - info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type, - info_ptr->filter_type, -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - info_ptr->interlace_type -#else - 0 -#endif - ); - - /* The rest of these check to see if the valid field has the appropriate - * flag set, and if it does, writes the chunk. - * - * 1.6.0: COLORSPACE support controls the writing of these chunks too, and - * the chunks will be written if the WRITE routine is there and - * information * is available in the COLORSPACE. (See - * png_colorspace_sync_info in png.c for where the valid flags get set.) - * - * Under certain circumstances the colorspace can be invalidated without - * syncing the info_struct 'valid' flags; this happens if libpng detects - * an error and calls png_error while the color space is being set, yet - * the application continues writing the PNG. So check the 'invalid' - * flag here too. - */ -#ifdef PNG_GAMMA_SUPPORTED -# ifdef PNG_WRITE_gAMA_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_gAMA) != 0 && - (info_ptr->valid & PNG_INFO_gAMA) != 0) - png_write_gAMA_fixed(png_ptr, info_ptr->colorspace.gamma); -# endif -#endif - -#ifdef PNG_COLORSPACE_SUPPORTED - /* Write only one of sRGB or an ICC profile. If a profile was supplied - * and it matches one of the known sRGB ones issue a warning. - */ -# ifdef PNG_WRITE_iCCP_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->valid & PNG_INFO_iCCP) != 0) - { -# ifdef PNG_WRITE_sRGB_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sRGB) != 0) - png_app_warning(png_ptr, - "profile matches sRGB but writing iCCP instead"); -# endif - - png_write_iCCP(png_ptr, info_ptr->iccp_name, - info_ptr->iccp_profile); - } -# ifdef PNG_WRITE_sRGB_SUPPORTED - else -# endif -# endif - -# ifdef PNG_WRITE_sRGB_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->valid & PNG_INFO_sRGB) != 0) - png_write_sRGB(png_ptr, info_ptr->colorspace.rendering_intent); -# endif /* WRITE_sRGB */ -#endif /* COLORSPACE */ - -#ifdef PNG_WRITE_sBIT_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sBIT) != 0) - png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type); -#endif - -#ifdef PNG_COLORSPACE_SUPPORTED -# ifdef PNG_WRITE_cHRM_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_cHRM) != 0 && - (info_ptr->valid & PNG_INFO_cHRM) != 0) - png_write_cHRM_fixed(png_ptr, &info_ptr->colorspace.end_points_xy); -# endif -#endif - -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_IHDR); -#endif - - png_ptr->mode |= PNG_WROTE_INFO_BEFORE_PLTE; - } -} - -void PNGAPI -png_write_info(png_structrp png_ptr, png_const_inforp info_ptr) -{ -#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) - int i; -#endif - - png_debug(1, "in png_write_info"); - - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_write_info_before_PLTE(png_ptr, info_ptr); - - if ((info_ptr->valid & PNG_INFO_PLTE) != 0) - png_write_PLTE(png_ptr, info_ptr->palette, - (png_uint_32)info_ptr->num_palette); - - else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Valid palette required for paletted images"); - -#ifdef PNG_WRITE_tRNS_SUPPORTED - if ((info_ptr->valid & PNG_INFO_tRNS) !=0) - { -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED - /* Invert the alpha channel (in tRNS) */ - if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0 && - info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - int j, jend; - - jend = info_ptr->num_trans; - if (jend > PNG_MAX_PALETTE_LENGTH) - jend = PNG_MAX_PALETTE_LENGTH; - - for (j = 0; jtrans_alpha[j] = - (png_byte)(255 - info_ptr->trans_alpha[j]); - } -#endif - png_write_tRNS(png_ptr, info_ptr->trans_alpha, &(info_ptr->trans_color), - info_ptr->num_trans, info_ptr->color_type); - } -#endif -#ifdef PNG_WRITE_bKGD_SUPPORTED - if ((info_ptr->valid & PNG_INFO_bKGD) != 0) - png_write_bKGD(png_ptr, &(info_ptr->background), info_ptr->color_type); -#endif - -#ifdef PNG_WRITE_eXIf_SUPPORTED - if ((info_ptr->valid & PNG_INFO_eXIf) != 0) - png_write_eXIf(png_ptr, info_ptr->exif, info_ptr->num_exif); -#endif - -#ifdef PNG_WRITE_hIST_SUPPORTED - if ((info_ptr->valid & PNG_INFO_hIST) != 0) - png_write_hIST(png_ptr, info_ptr->hist, info_ptr->num_palette); -#endif - -#ifdef PNG_WRITE_oFFs_SUPPORTED - if ((info_ptr->valid & PNG_INFO_oFFs) != 0) - png_write_oFFs(png_ptr, info_ptr->x_offset, info_ptr->y_offset, - info_ptr->offset_unit_type); -#endif - -#ifdef PNG_WRITE_pCAL_SUPPORTED - if ((info_ptr->valid & PNG_INFO_pCAL) != 0) - png_write_pCAL(png_ptr, info_ptr->pcal_purpose, info_ptr->pcal_X0, - info_ptr->pcal_X1, info_ptr->pcal_type, info_ptr->pcal_nparams, - info_ptr->pcal_units, info_ptr->pcal_params); -#endif - -#ifdef PNG_WRITE_sCAL_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sCAL) != 0) - png_write_sCAL_s(png_ptr, (int)info_ptr->scal_unit, - info_ptr->scal_s_width, info_ptr->scal_s_height); -#endif /* sCAL */ - -#ifdef PNG_WRITE_pHYs_SUPPORTED - if ((info_ptr->valid & PNG_INFO_pHYs) != 0) - png_write_pHYs(png_ptr, info_ptr->x_pixels_per_unit, - info_ptr->y_pixels_per_unit, info_ptr->phys_unit_type); -#endif /* pHYs */ - -#ifdef PNG_WRITE_tIME_SUPPORTED - if ((info_ptr->valid & PNG_INFO_tIME) != 0) - { - png_write_tIME(png_ptr, &(info_ptr->mod_time)); - png_ptr->mode |= PNG_WROTE_tIME; - } -#endif /* tIME */ - -#ifdef PNG_WRITE_sPLT_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sPLT) != 0) - for (i = 0; i < (int)info_ptr->splt_palettes_num; i++) - png_write_sPLT(png_ptr, info_ptr->splt_palettes + i); -#endif /* sPLT */ - -#ifdef PNG_WRITE_TEXT_SUPPORTED - /* Check to see if we need to write text chunks */ - for (i = 0; i < info_ptr->num_text; i++) - { - png_debug2(2, "Writing header text chunk %d, type %d", i, - info_ptr->text[i].compression); - /* An internationalized chunk? */ - if (info_ptr->text[i].compression > 0) - { -#ifdef PNG_WRITE_iTXt_SUPPORTED - /* Write international chunk */ - png_write_iTXt(png_ptr, - info_ptr->text[i].compression, - info_ptr->text[i].key, - info_ptr->text[i].lang, - info_ptr->text[i].lang_key, - info_ptr->text[i].text); - /* Mark this chunk as written */ - if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; - else - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; -#else - png_warning(png_ptr, "Unable to write international text"); -#endif - } - - /* If we want a compressed text chunk */ - else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_zTXt) - { -#ifdef PNG_WRITE_zTXt_SUPPORTED - /* Write compressed chunk */ - png_write_zTXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].compression); - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; -#else - png_warning(png_ptr, "Unable to write compressed text"); -#endif - } - - else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - { -#ifdef PNG_WRITE_tEXt_SUPPORTED - /* Write uncompressed chunk */ - png_write_tEXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, - 0); - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; -#else - /* Can't get here */ - png_warning(png_ptr, "Unable to write uncompressed text"); -#endif - } - } -#endif /* tEXt */ - -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_PLTE); -#endif -} - -/* Writes the end of the PNG file. If you don't want to write comments or - * time information, you can pass NULL for info. If you already wrote these - * in png_write_info(), do not write them again here. If you have long - * comments, I suggest writing them here, and compressing them. - */ -void PNGAPI -png_write_end(png_structrp png_ptr, png_inforp info_ptr) -{ - png_debug(1, "in png_write_end"); - - if (png_ptr == NULL) - return; - - if ((png_ptr->mode & PNG_HAVE_IDAT) == 0) - png_error(png_ptr, "No IDATs written into file"); - -#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED - if (png_ptr->num_palette_max > png_ptr->num_palette) - png_benign_error(png_ptr, "Wrote palette index exceeding num_palette"); -#endif - - /* See if user wants us to write information chunks */ - if (info_ptr != NULL) - { -#ifdef PNG_WRITE_TEXT_SUPPORTED - int i; /* local index variable */ -#endif -#ifdef PNG_WRITE_tIME_SUPPORTED - /* Check to see if user has supplied a time chunk */ - if ((info_ptr->valid & PNG_INFO_tIME) != 0 && - (png_ptr->mode & PNG_WROTE_tIME) == 0) - png_write_tIME(png_ptr, &(info_ptr->mod_time)); - -#endif -#ifdef PNG_WRITE_TEXT_SUPPORTED - /* Loop through comment chunks */ - for (i = 0; i < info_ptr->num_text; i++) - { - png_debug2(2, "Writing trailer text chunk %d, type %d", i, - info_ptr->text[i].compression); - /* An internationalized chunk? */ - if (info_ptr->text[i].compression > 0) - { -#ifdef PNG_WRITE_iTXt_SUPPORTED - /* Write international chunk */ - png_write_iTXt(png_ptr, - info_ptr->text[i].compression, - info_ptr->text[i].key, - info_ptr->text[i].lang, - info_ptr->text[i].lang_key, - info_ptr->text[i].text); - /* Mark this chunk as written */ - if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; - else - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; -#else - png_warning(png_ptr, "Unable to write international text"); -#endif - } - - else if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt) - { -#ifdef PNG_WRITE_zTXt_SUPPORTED - /* Write compressed chunk */ - png_write_zTXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].compression); - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; -#else - png_warning(png_ptr, "Unable to write compressed text"); -#endif - } - - else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - { -#ifdef PNG_WRITE_tEXt_SUPPORTED - /* Write uncompressed chunk */ - png_write_tEXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, 0); - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; -#else - png_warning(png_ptr, "Unable to write uncompressed text"); -#endif - } - } -#endif - -#ifdef PNG_WRITE_eXIf_SUPPORTED - if ((info_ptr->valid & PNG_INFO_eXIf) != 0) - png_write_eXIf(png_ptr, info_ptr->exif, info_ptr->num_exif); -#endif - -#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - write_unknown_chunks(png_ptr, info_ptr, PNG_AFTER_IDAT); -#endif - } - - png_ptr->mode |= PNG_AFTER_IDAT; - - /* Write end of PNG file */ - png_write_IEND(png_ptr); - - /* This flush, added in libpng-1.0.8, removed from libpng-1.0.9beta03, - * and restored again in libpng-1.2.30, may cause some applications that - * do not set png_ptr->output_flush_fn to crash. If your application - * experiences a problem, please try building libpng with - * PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED defined, and report the event to - * png-mng-implement at lists.sf.net . - */ -#ifdef PNG_WRITE_FLUSH_SUPPORTED -# ifdef PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED - png_flush(png_ptr); -# endif -#endif -} - -#ifdef PNG_CONVERT_tIME_SUPPORTED -void PNGAPI -png_convert_from_struct_tm(png_timep ptime, const struct tm * ttime) -{ - png_debug(1, "in png_convert_from_struct_tm"); - - ptime->year = (png_uint_16)(1900 + ttime->tm_year); - ptime->month = (png_byte)(ttime->tm_mon + 1); - ptime->day = (png_byte)ttime->tm_mday; - ptime->hour = (png_byte)ttime->tm_hour; - ptime->minute = (png_byte)ttime->tm_min; - ptime->second = (png_byte)ttime->tm_sec; -} - -void PNGAPI -png_convert_from_time_t(png_timep ptime, time_t ttime) -{ - struct tm *tbuf; - - png_debug(1, "in png_convert_from_time_t"); - - tbuf = gmtime(&ttime); - png_convert_from_struct_tm(ptime, tbuf); -} -#endif - -/* Initialize png_ptr structure, and allocate any memory needed */ -PNG_FUNCTION(png_structp,PNGAPI -png_create_write_struct,(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn),PNG_ALLOCATED) -{ -#ifndef PNG_USER_MEM_SUPPORTED - png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr, - error_fn, warn_fn, NULL, NULL, NULL); -#else - return png_create_write_struct_2(user_png_ver, error_ptr, error_fn, - warn_fn, NULL, NULL, NULL); -} - -/* Alternate initialize png_ptr structure, and allocate any memory needed */ -PNG_FUNCTION(png_structp,PNGAPI -png_create_write_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED) -{ - png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr, - error_fn, warn_fn, mem_ptr, malloc_fn, free_fn); -#endif /* USER_MEM */ - if (png_ptr != NULL) - { - /* Set the zlib control values to defaults; they can be overridden by the - * application after the struct has been created. - */ - png_ptr->zbuffer_size = PNG_ZBUF_SIZE; - - /* The 'zlib_strategy' setting is irrelevant because png_default_claim in - * pngwutil.c defaults it according to whether or not filters will be - * used, and ignores this setting. - */ - png_ptr->zlib_strategy = PNG_Z_DEFAULT_STRATEGY; - png_ptr->zlib_level = PNG_Z_DEFAULT_COMPRESSION; - png_ptr->zlib_mem_level = 8; - png_ptr->zlib_window_bits = 15; - png_ptr->zlib_method = 8; - -#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED - png_ptr->zlib_text_strategy = PNG_TEXT_Z_DEFAULT_STRATEGY; - png_ptr->zlib_text_level = PNG_TEXT_Z_DEFAULT_COMPRESSION; - png_ptr->zlib_text_mem_level = 8; - png_ptr->zlib_text_window_bits = 15; - png_ptr->zlib_text_method = 8; -#endif /* WRITE_COMPRESSED_TEXT */ - - /* This is a highly dubious configuration option; by default it is off, - * but it may be appropriate for private builds that are testing - * extensions not conformant to the current specification, or of - * applications that must not fail to write at all costs! - */ -#ifdef PNG_BENIGN_WRITE_ERRORS_SUPPORTED - /* In stable builds only warn if an application error can be completely - * handled. - */ - png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN; -#endif - - /* App warnings are warnings in release (or release candidate) builds but - * are errors during development. - */ -#if PNG_RELEASE_BUILD - png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN; -#endif - - /* TODO: delay this, it can be done in png_init_io() (if the app doesn't - * do it itself) avoiding setting the default function if it is not - * required. - */ - png_set_write_fn(png_ptr, NULL, NULL, NULL); - } - - return png_ptr; -} - - -/* Write a few rows of image data. If the image is interlaced, - * either you will have to write the 7 sub images, or, if you - * have called png_set_interlace_handling(), you will have to - * "write" the image seven times. - */ -void PNGAPI -png_write_rows(png_structrp png_ptr, png_bytepp row, - png_uint_32 num_rows) -{ - png_uint_32 i; /* row counter */ - png_bytepp rp; /* row pointer */ - - png_debug(1, "in png_write_rows"); - - if (png_ptr == NULL) - return; - - /* Loop through the rows */ - for (i = 0, rp = row; i < num_rows; i++, rp++) - { - png_write_row(png_ptr, *rp); - } -} - -/* Write the image. You only need to call this function once, even - * if you are writing an interlaced image. - */ -void PNGAPI -png_write_image(png_structrp png_ptr, png_bytepp image) -{ - png_uint_32 i; /* row index */ - int pass, num_pass; /* pass variables */ - png_bytepp rp; /* points to current row */ - - if (png_ptr == NULL) - return; - - png_debug(1, "in png_write_image"); - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* Initialize interlace handling. If image is not interlaced, - * this will set pass to 1 - */ - num_pass = png_set_interlace_handling(png_ptr); -#else - num_pass = 1; -#endif - /* Loop through passes */ - for (pass = 0; pass < num_pass; pass++) - { - /* Loop through image */ - for (i = 0, rp = image; i < png_ptr->height; i++, rp++) - { - png_write_row(png_ptr, *rp); - } - } -} - -#ifdef PNG_MNG_FEATURES_SUPPORTED -/* Performs intrapixel differencing */ -static void -png_do_write_intrapixel(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_write_intrapixel"); - - if ((row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - int bytes_per_pixel; - png_uint_32 row_width = row_info->width; - if (row_info->bit_depth == 8) - { - png_bytep rp; - png_uint_32 i; - - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - bytes_per_pixel = 3; - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - bytes_per_pixel = 4; - - else - return; - - for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) - { - *(rp) = (png_byte)(*rp - *(rp + 1)); - *(rp + 2) = (png_byte)(*(rp + 2) - *(rp + 1)); - } - } - -#ifdef PNG_WRITE_16BIT_SUPPORTED - else if (row_info->bit_depth == 16) - { - png_bytep rp; - png_uint_32 i; - - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - bytes_per_pixel = 6; - - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - bytes_per_pixel = 8; - - else - return; - - for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) - { - png_uint_32 s0 = (png_uint_32)(*(rp ) << 8) | *(rp + 1); - png_uint_32 s1 = (png_uint_32)(*(rp + 2) << 8) | *(rp + 3); - png_uint_32 s2 = (png_uint_32)(*(rp + 4) << 8) | *(rp + 5); - png_uint_32 red = (png_uint_32)((s0 - s1) & 0xffffL); - png_uint_32 blue = (png_uint_32)((s2 - s1) & 0xffffL); - *(rp ) = (png_byte)(red >> 8); - *(rp + 1) = (png_byte)red; - *(rp + 4) = (png_byte)(blue >> 8); - *(rp + 5) = (png_byte)blue; - } - } -#endif /* WRITE_16BIT */ - } -} -#endif /* MNG_FEATURES */ - -/* Called by user to write a row of image data */ -void PNGAPI -png_write_row(png_structrp png_ptr, png_const_bytep row) -{ - /* 1.5.6: moved from png_struct to be a local structure: */ - png_row_info row_info; - - if (png_ptr == NULL) - return; - - png_debug2(1, "in png_write_row (row %u, pass %d)", - png_ptr->row_number, png_ptr->pass); - - /* Initialize transformations and other stuff if first time */ - if (png_ptr->row_number == 0 && png_ptr->pass == 0) - { - /* Make sure we wrote the header info */ - if ((png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE) == 0) - png_error(png_ptr, - "png_write_info was never called before png_write_row"); - - /* Check for transforms that have been set but were defined out */ -#if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED) - if ((png_ptr->transformations & PNG_INVERT_MONO) != 0) - png_warning(png_ptr, "PNG_WRITE_INVERT_SUPPORTED is not defined"); -#endif - -#if !defined(PNG_WRITE_FILLER_SUPPORTED) && defined(PNG_READ_FILLER_SUPPORTED) - if ((png_ptr->transformations & PNG_FILLER) != 0) - png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined"); -#endif -#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \ - defined(PNG_READ_PACKSWAP_SUPPORTED) - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - png_warning(png_ptr, - "PNG_WRITE_PACKSWAP_SUPPORTED is not defined"); -#endif - -#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED) - if ((png_ptr->transformations & PNG_PACK) != 0) - png_warning(png_ptr, "PNG_WRITE_PACK_SUPPORTED is not defined"); -#endif - -#if !defined(PNG_WRITE_SHIFT_SUPPORTED) && defined(PNG_READ_SHIFT_SUPPORTED) - if ((png_ptr->transformations & PNG_SHIFT) != 0) - png_warning(png_ptr, "PNG_WRITE_SHIFT_SUPPORTED is not defined"); -#endif - -#if !defined(PNG_WRITE_BGR_SUPPORTED) && defined(PNG_READ_BGR_SUPPORTED) - if ((png_ptr->transformations & PNG_BGR) != 0) - png_warning(png_ptr, "PNG_WRITE_BGR_SUPPORTED is not defined"); -#endif - -#if !defined(PNG_WRITE_SWAP_SUPPORTED) && defined(PNG_READ_SWAP_SUPPORTED) - if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0) - png_warning(png_ptr, "PNG_WRITE_SWAP_SUPPORTED is not defined"); -#endif - - png_write_start_row(png_ptr); - } - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* If interlaced and not interested in row, return */ - if (png_ptr->interlaced != 0 && - (png_ptr->transformations & PNG_INTERLACE) != 0) - { - switch (png_ptr->pass) - { - case 0: - if ((png_ptr->row_number & 0x07) != 0) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 1: - if ((png_ptr->row_number & 0x07) != 0 || png_ptr->width < 5) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 2: - if ((png_ptr->row_number & 0x07) != 4) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 3: - if ((png_ptr->row_number & 0x03) != 0 || png_ptr->width < 3) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 4: - if ((png_ptr->row_number & 0x03) != 2) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 5: - if ((png_ptr->row_number & 0x01) != 0 || png_ptr->width < 2) - { - png_write_finish_row(png_ptr); - return; - } - break; - - case 6: - if ((png_ptr->row_number & 0x01) == 0) - { - png_write_finish_row(png_ptr); - return; - } - break; - - default: /* error: ignore it */ - break; - } - } -#endif - - /* Set up row info for transformations */ - row_info.color_type = png_ptr->color_type; - row_info.width = png_ptr->usr_width; - row_info.channels = png_ptr->usr_channels; - row_info.bit_depth = png_ptr->usr_bit_depth; - row_info.pixel_depth = (png_byte)(row_info.bit_depth * row_info.channels); - row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width); - - png_debug1(3, "row_info->color_type = %d", row_info.color_type); - png_debug1(3, "row_info->width = %u", row_info.width); - png_debug1(3, "row_info->channels = %d", row_info.channels); - png_debug1(3, "row_info->bit_depth = %d", row_info.bit_depth); - png_debug1(3, "row_info->pixel_depth = %d", row_info.pixel_depth); - png_debug1(3, "row_info->rowbytes = %lu", (unsigned long)row_info.rowbytes); - - /* Copy user's row into buffer, leaving room for filter byte. */ - memcpy(png_ptr->row_buf + 1, row, row_info.rowbytes); - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* Handle interlacing */ - if (png_ptr->interlaced && png_ptr->pass < 6 && - (png_ptr->transformations & PNG_INTERLACE) != 0) - { - png_do_write_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass); - /* This should always get caught above, but still ... */ - if (row_info.width == 0) - { - png_write_finish_row(png_ptr); - return; - } - } -#endif - -#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED - /* Handle other transformations */ - if (png_ptr->transformations != 0) - png_do_write_transformations(png_ptr, &row_info); -#endif - - /* At this point the row_info pixel depth must match the 'transformed' depth, - * which is also the output depth. - */ - if (row_info.pixel_depth != png_ptr->pixel_depth || - row_info.pixel_depth != png_ptr->transformed_pixel_depth) - png_error(png_ptr, "internal write transform logic error"); - -#ifdef PNG_MNG_FEATURES_SUPPORTED - /* Write filter_method 64 (intrapixel differencing) only if - * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and - * 2. Libpng did not write a PNG signature (this filter_method is only - * used in PNG datastreams that are embedded in MNG datastreams) and - * 3. The application called png_permit_mng_features with a mask that - * included PNG_FLAG_MNG_FILTER_64 and - * 4. The filter_method is 64 and - * 5. The color_type is RGB or RGBA - */ - if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 && - (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING)) - { - /* Intrapixel differencing */ - png_do_write_intrapixel(&row_info, png_ptr->row_buf + 1); - } -#endif - -/* Added at libpng-1.5.10 */ -#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED - /* Check for out-of-range palette index */ - if (row_info.color_type == PNG_COLOR_TYPE_PALETTE && - png_ptr->num_palette_max >= 0) - png_do_check_palette_indexes(png_ptr, &row_info); -#endif - - /* Find a filter if necessary, filter the row and write it out. */ - png_write_find_filter(png_ptr, &row_info); - - if (png_ptr->write_row_fn != NULL) - (*(png_ptr->write_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass); -} - -#ifdef PNG_WRITE_FLUSH_SUPPORTED -/* Set the automatic flush interval or 0 to turn flushing off */ -void PNGAPI -png_set_flush(png_structrp png_ptr, int nrows) -{ - png_debug(1, "in png_set_flush"); - - if (png_ptr == NULL) - return; - - png_ptr->flush_dist = (nrows < 0 ? 0 : (png_uint_32)nrows); -} - -/* Flush the current output buffers now */ -void PNGAPI -png_write_flush(png_structrp png_ptr) -{ - png_debug(1, "in png_write_flush"); - - if (png_ptr == NULL) - return; - - /* We have already written out all of the data */ - if (png_ptr->row_number >= png_ptr->num_rows) - return; - - png_compress_IDAT(png_ptr, NULL, 0, Z_SYNC_FLUSH); - png_ptr->flush_rows = 0; - png_flush(png_ptr); -} -#endif /* WRITE_FLUSH */ - -/* Free any memory used in png_ptr struct without freeing the struct itself. */ -static void -png_write_destroy(png_structrp png_ptr) -{ - png_debug(1, "in png_write_destroy"); - - /* Free any memory zlib uses */ - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED) != 0) - deflateEnd(&png_ptr->zstream); - - /* Free our memory. png_free checks NULL for us. */ - png_free_buffer_list(png_ptr, &png_ptr->zbuffer_list); - png_free(png_ptr, png_ptr->row_buf); - png_ptr->row_buf = NULL; -#ifdef PNG_WRITE_FILTER_SUPPORTED - png_free(png_ptr, png_ptr->prev_row); - png_free(png_ptr, png_ptr->try_row); - png_free(png_ptr, png_ptr->tst_row); - png_ptr->prev_row = NULL; - png_ptr->try_row = NULL; - png_ptr->tst_row = NULL; -#endif - -#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - png_free(png_ptr, png_ptr->chunk_list); - png_ptr->chunk_list = NULL; -#endif - - /* The error handling and memory handling information is left intact at this - * point: the jmp_buf may still have to be freed. See png_destroy_png_struct - * for how this happens. - */ -} - -/* Free all memory used by the write. - * In libpng 1.6.0 this API changed quietly to no longer accept a NULL value for - * *png_ptr_ptr. Prior to 1.6.0 it would accept such a value and it would free - * the passed in info_structs but it would quietly fail to free any of the data - * inside them. In 1.6.0 it quietly does nothing (it has to be quiet because it - * has no png_ptr.) - */ -void PNGAPI -png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr) -{ - png_debug(1, "in png_destroy_write_struct"); - - if (png_ptr_ptr != NULL) - { - png_structrp png_ptr = *png_ptr_ptr; - - if (png_ptr != NULL) /* added in libpng 1.6.0 */ - { - png_destroy_info_struct(png_ptr, info_ptr_ptr); - - *png_ptr_ptr = NULL; - png_write_destroy(png_ptr); - png_destroy_png_struct(png_ptr); - } - } -} - -/* Allow the application to select one or more row filters to use. */ -void PNGAPI -png_set_filter(png_structrp png_ptr, int method, int filters) -{ - png_debug(1, "in png_set_filter"); - - if (png_ptr == NULL) - return; - -#ifdef PNG_MNG_FEATURES_SUPPORTED - if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 && - (method == PNG_INTRAPIXEL_DIFFERENCING)) - method = PNG_FILTER_TYPE_BASE; - -#endif - if (method == PNG_FILTER_TYPE_BASE) - { - switch (filters & (PNG_ALL_FILTERS | 0x07)) - { -#ifdef PNG_WRITE_FILTER_SUPPORTED - case 5: - case 6: - case 7: png_app_error(png_ptr, "Unknown row filter for method 0"); -#endif /* WRITE_FILTER */ - /* FALLTHROUGH */ - case PNG_FILTER_VALUE_NONE: - png_ptr->do_filter = PNG_FILTER_NONE; break; - -#ifdef PNG_WRITE_FILTER_SUPPORTED - case PNG_FILTER_VALUE_SUB: - png_ptr->do_filter = PNG_FILTER_SUB; break; - - case PNG_FILTER_VALUE_UP: - png_ptr->do_filter = PNG_FILTER_UP; break; - - case PNG_FILTER_VALUE_AVG: - png_ptr->do_filter = PNG_FILTER_AVG; break; - - case PNG_FILTER_VALUE_PAETH: - png_ptr->do_filter = PNG_FILTER_PAETH; break; - - default: - png_ptr->do_filter = (png_byte)filters; break; -#else - default: - png_app_error(png_ptr, "Unknown row filter for method 0"); -#endif /* WRITE_FILTER */ - } - -#ifdef PNG_WRITE_FILTER_SUPPORTED - /* If we have allocated the row_buf, this means we have already started - * with the image and we should have allocated all of the filter buffers - * that have been selected. If prev_row isn't already allocated, then - * it is too late to start using the filters that need it, since we - * will be missing the data in the previous row. If an application - * wants to start and stop using particular filters during compression, - * it should start out with all of the filters, and then remove them - * or add them back after the start of compression. - * - * NOTE: this is a nasty constraint on the code, because it means that the - * prev_row buffer must be maintained even if there are currently no - * 'prev_row' requiring filters active. - */ - if (png_ptr->row_buf != NULL) - { - int num_filters; - png_alloc_size_t buf_size; - - /* Repeat the checks in png_write_start_row; 1 pixel high or wide - * images cannot benefit from certain filters. If this isn't done here - * the check below will fire on 1 pixel high images. - */ - if (png_ptr->height == 1) - filters &= ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); - - if (png_ptr->width == 1) - filters &= ~(PNG_FILTER_SUB|PNG_FILTER_AVG|PNG_FILTER_PAETH); - - if ((filters & (PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH)) != 0 - && png_ptr->prev_row == NULL) - { - /* This is the error case, however it is benign - the previous row - * is not available so the filter can't be used. Just warn here. - */ - png_app_warning(png_ptr, - "png_set_filter: UP/AVG/PAETH cannot be added after start"); - filters &= ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); - } - - num_filters = 0; - - if (filters & PNG_FILTER_SUB) - num_filters++; - - if (filters & PNG_FILTER_UP) - num_filters++; - - if (filters & PNG_FILTER_AVG) - num_filters++; - - if (filters & PNG_FILTER_PAETH) - num_filters++; - - /* Allocate needed row buffers if they have not already been - * allocated. - */ - buf_size = PNG_ROWBYTES(png_ptr->usr_channels * png_ptr->usr_bit_depth, - png_ptr->width) + 1; - - if (png_ptr->try_row == NULL) - png_ptr->try_row = png_voidcast(png_bytep, - png_malloc(png_ptr, buf_size)); - - if (num_filters > 1) - { - if (png_ptr->tst_row == NULL) - png_ptr->tst_row = png_voidcast(png_bytep, - png_malloc(png_ptr, buf_size)); - } - } - png_ptr->do_filter = (png_byte)filters; -#endif - } - else - png_error(png_ptr, "Unknown custom filter method"); -} - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ -/* Provide floating and fixed point APIs */ -#ifdef PNG_FLOATING_POINT_SUPPORTED -void PNGAPI -png_set_filter_heuristics(png_structrp png_ptr, int heuristic_method, - int num_weights, png_const_doublep filter_weights, - png_const_doublep filter_costs) -{ - PNG_UNUSED(png_ptr) - PNG_UNUSED(heuristic_method) - PNG_UNUSED(num_weights) - PNG_UNUSED(filter_weights) - PNG_UNUSED(filter_costs) -} -#endif /* FLOATING_POINT */ - -#ifdef PNG_FIXED_POINT_SUPPORTED -void PNGAPI -png_set_filter_heuristics_fixed(png_structrp png_ptr, int heuristic_method, - int num_weights, png_const_fixed_point_p filter_weights, - png_const_fixed_point_p filter_costs) -{ - PNG_UNUSED(png_ptr) - PNG_UNUSED(heuristic_method) - PNG_UNUSED(num_weights) - PNG_UNUSED(filter_weights) - PNG_UNUSED(filter_costs) -} -#endif /* FIXED_POINT */ -#endif /* WRITE_WEIGHTED_FILTER */ - -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED -void PNGAPI -png_set_compression_level(png_structrp png_ptr, int level) -{ - png_debug(1, "in png_set_compression_level"); - - if (png_ptr == NULL) - return; - - png_ptr->zlib_level = level; -} - -void PNGAPI -png_set_compression_mem_level(png_structrp png_ptr, int mem_level) -{ - png_debug(1, "in png_set_compression_mem_level"); - - if (png_ptr == NULL) - return; - - png_ptr->zlib_mem_level = mem_level; -} - -void PNGAPI -png_set_compression_strategy(png_structrp png_ptr, int strategy) -{ - png_debug(1, "in png_set_compression_strategy"); - - if (png_ptr == NULL) - return; - - /* The flag setting here prevents the libpng dynamic selection of strategy. - */ - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_STRATEGY; - png_ptr->zlib_strategy = strategy; -} - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -void PNGAPI -png_set_compression_window_bits(png_structrp png_ptr, int window_bits) -{ - if (png_ptr == NULL) - return; - - /* Prior to 1.6.0 this would warn but then set the window_bits value. This - * meant that negative window bits values could be selected that would cause - * libpng to write a non-standard PNG file with raw deflate or gzip - * compressed IDAT or ancillary chunks. Such files can be read and there is - * no warning on read, so this seems like a very bad idea. - */ - if (window_bits > 15) - { - png_warning(png_ptr, "Only compression windows <= 32k supported by PNG"); - window_bits = 15; - } - - else if (window_bits < 8) - { - png_warning(png_ptr, "Only compression windows >= 256 supported by PNG"); - window_bits = 8; - } - - png_ptr->zlib_window_bits = window_bits; -} - -void PNGAPI -png_set_compression_method(png_structrp png_ptr, int method) -{ - png_debug(1, "in png_set_compression_method"); - - if (png_ptr == NULL) - return; - - /* This would produce an invalid PNG file if it worked, but it doesn't and - * deflate will fault it, so it is harmless to just warn here. - */ - if (method != 8) - png_warning(png_ptr, "Only compression method 8 is supported by PNG"); - - png_ptr->zlib_method = method; -} -#endif /* WRITE_CUSTOMIZE_COMPRESSION */ - -/* The following were added to libpng-1.5.4 */ -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED -void PNGAPI -png_set_text_compression_level(png_structrp png_ptr, int level) -{ - png_debug(1, "in png_set_text_compression_level"); - - if (png_ptr == NULL) - return; - - png_ptr->zlib_text_level = level; -} - -void PNGAPI -png_set_text_compression_mem_level(png_structrp png_ptr, int mem_level) -{ - png_debug(1, "in png_set_text_compression_mem_level"); - - if (png_ptr == NULL) - return; - - png_ptr->zlib_text_mem_level = mem_level; -} - -void PNGAPI -png_set_text_compression_strategy(png_structrp png_ptr, int strategy) -{ - png_debug(1, "in png_set_text_compression_strategy"); - - if (png_ptr == NULL) - return; - - png_ptr->zlib_text_strategy = strategy; -} - -/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a - * smaller value of window_bits if it can do so safely. - */ -void PNGAPI -png_set_text_compression_window_bits(png_structrp png_ptr, int window_bits) -{ - if (png_ptr == NULL) - return; - - if (window_bits > 15) - { - png_warning(png_ptr, "Only compression windows <= 32k supported by PNG"); - window_bits = 15; - } - - else if (window_bits < 8) - { - png_warning(png_ptr, "Only compression windows >= 256 supported by PNG"); - window_bits = 8; - } - - png_ptr->zlib_text_window_bits = window_bits; -} - -void PNGAPI -png_set_text_compression_method(png_structrp png_ptr, int method) -{ - png_debug(1, "in png_set_text_compression_method"); - - if (png_ptr == NULL) - return; - - if (method != 8) - png_warning(png_ptr, "Only compression method 8 is supported by PNG"); - - png_ptr->zlib_text_method = method; -} -#endif /* WRITE_CUSTOMIZE_ZTXT_COMPRESSION */ -/* end of API added to libpng-1.5.4 */ - -void PNGAPI -png_set_write_status_fn(png_structrp png_ptr, png_write_status_ptr write_row_fn) -{ - if (png_ptr == NULL) - return; - - png_ptr->write_row_fn = write_row_fn; -} - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -void PNGAPI -png_set_write_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr - write_user_transform_fn) -{ - png_debug(1, "in png_set_write_user_transform_fn"); - - if (png_ptr == NULL) - return; - - png_ptr->transformations |= PNG_USER_TRANSFORM; - png_ptr->write_user_transform_fn = write_user_transform_fn; -} -#endif - - -#ifdef PNG_INFO_IMAGE_SUPPORTED -void PNGAPI -png_write_png(png_structrp png_ptr, png_inforp info_ptr, - int transforms, voidp params) -{ - if (png_ptr == NULL || info_ptr == NULL) - return; - - if ((info_ptr->valid & PNG_INFO_IDAT) == 0) - { - png_app_error(png_ptr, "no rows for png_write_image to write"); - return; - } - - /* Write the file header information. */ - png_write_info(png_ptr, info_ptr); - - /* ------ these transformations don't touch the info structure ------- */ - - /* Invert monochrome pixels */ - if ((transforms & PNG_TRANSFORM_INVERT_MONO) != 0) -#ifdef PNG_WRITE_INVERT_SUPPORTED - png_set_invert_mono(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_MONO not supported"); -#endif - - /* Shift the pixels up to a legal bit depth and fill in - * as appropriate to correctly scale the image. - */ - if ((transforms & PNG_TRANSFORM_SHIFT) != 0) -#ifdef PNG_WRITE_SHIFT_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sBIT) != 0) - png_set_shift(png_ptr, &info_ptr->sig_bit); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SHIFT not supported"); -#endif - - /* Pack pixels into bytes */ - if ((transforms & PNG_TRANSFORM_PACKING) != 0) -#ifdef PNG_WRITE_PACK_SUPPORTED - png_set_packing(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_PACKING not supported"); -#endif - - /* Swap location of alpha bytes from ARGB to RGBA */ - if ((transforms & PNG_TRANSFORM_SWAP_ALPHA) != 0) -#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED - png_set_swap_alpha(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ALPHA not supported"); -#endif - - /* Remove a filler (X) from XRGB/RGBX/AG/GA into to convert it into - * RGB, note that the code expects the input color type to be G or RGB; no - * alpha channel. - */ - if ((transforms & (PNG_TRANSFORM_STRIP_FILLER_AFTER| - PNG_TRANSFORM_STRIP_FILLER_BEFORE)) != 0) - { -#ifdef PNG_WRITE_FILLER_SUPPORTED - if ((transforms & PNG_TRANSFORM_STRIP_FILLER_AFTER) != 0) - { - if ((transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE) != 0) - png_app_error(png_ptr, - "PNG_TRANSFORM_STRIP_FILLER: BEFORE+AFTER not supported"); - - /* Continue if ignored - this is the pre-1.6.10 behavior */ - png_set_filler(png_ptr, 0, PNG_FILLER_AFTER); - } - - else if ((transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE) != 0) - png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_FILLER not supported"); -#endif - } - - /* Flip BGR pixels to RGB */ - if ((transforms & PNG_TRANSFORM_BGR) != 0) -#ifdef PNG_WRITE_BGR_SUPPORTED - png_set_bgr(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_BGR not supported"); -#endif - - /* Swap bytes of 16-bit files to most significant byte first */ - if ((transforms & PNG_TRANSFORM_SWAP_ENDIAN) != 0) -#ifdef PNG_WRITE_SWAP_SUPPORTED - png_set_swap(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ENDIAN not supported"); -#endif - - /* Swap bits of 1-bit, 2-bit, 4-bit packed pixel formats */ - if ((transforms & PNG_TRANSFORM_PACKSWAP) != 0) -#ifdef PNG_WRITE_PACKSWAP_SUPPORTED - png_set_packswap(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_PACKSWAP not supported"); -#endif - - /* Invert the alpha channel from opacity to transparency */ - if ((transforms & PNG_TRANSFORM_INVERT_ALPHA) != 0) -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED - png_set_invert_alpha(png_ptr); -#else - png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_ALPHA not supported"); -#endif - - /* ----------------------- end of transformations ------------------- */ - - /* Write the bits */ - png_write_image(png_ptr, info_ptr->row_pointers); - - /* It is REQUIRED to call this to finish writing the rest of the file */ - png_write_end(png_ptr, info_ptr); - - PNG_UNUSED(params) -} -#endif - - -#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -/* Initialize the write structure - general purpose utility. */ -static int -png_image_write_init(png_imagep image) -{ - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, image, - png_safe_error, png_safe_warning); - - if (png_ptr != NULL) - { - png_infop info_ptr = png_create_info_struct(png_ptr); - - if (info_ptr != NULL) - { - png_controlp control = png_voidcast(png_controlp, - png_malloc_warn(png_ptr, (sizeof *control))); - - if (control != NULL) - { - memset(control, 0, (sizeof *control)); - - control->png_ptr = png_ptr; - control->info_ptr = info_ptr; - control->for_write = 1; - - image->opaque = control; - return 1; - } - - /* Error clean up */ - png_destroy_info_struct(png_ptr, &info_ptr); - } - - png_destroy_write_struct(&png_ptr, NULL); - } - - return png_image_error(image, "png_image_write_: out of memory"); -} - -/* Arguments to png_image_write_main: */ -typedef struct -{ - /* Arguments: */ - png_imagep image; - png_const_voidp buffer; - png_int_32 row_stride; - png_const_voidp colormap; - int convert_to_8bit; - /* Local variables: */ - png_const_voidp first_row; - ptrdiff_t row_bytes; - png_voidp local_row; - /* Byte count for memory writing */ - png_bytep memory; - png_alloc_size_t memory_bytes; /* not used for STDIO */ - png_alloc_size_t output_bytes; /* running total */ -} png_image_write_control; - -/* Write png_uint_16 input to a 16-bit PNG; the png_ptr has already been set to - * do any necessary byte swapping. The component order is defined by the - * png_image format value. - */ -static int -png_write_image_16bit(png_voidp argument) -{ - png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - - png_const_uint_16p input_row = png_voidcast(png_const_uint_16p, - display->first_row); - png_uint_16p output_row = png_voidcast(png_uint_16p, display->local_row); - png_uint_16p row_end; - unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? - 3 : 1; - int aindex = 0; - png_uint_32 y = image->height; - - if ((image->format & PNG_FORMAT_FLAG_ALPHA) != 0) - { -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED - if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - aindex = -1; - ++input_row; /* To point to the first component */ - ++output_row; - } - else - aindex = (int)channels; -# else - aindex = (int)channels; -# endif - } - - else - png_error(png_ptr, "png_write_image: internal call error"); - - /* Work out the output row end and count over this, note that the increment - * above to 'row' means that row_end can actually be beyond the end of the - * row; this is correct. - */ - row_end = output_row + image->width * (channels+1); - - for (; y > 0; --y) - { - png_const_uint_16p in_ptr = input_row; - png_uint_16p out_ptr = output_row; - - while (out_ptr < row_end) - { - png_uint_16 alpha = in_ptr[aindex]; - png_uint_32 reciprocal = 0; - int c; - - out_ptr[aindex] = alpha; - - /* Calculate a reciprocal. The correct calculation is simply - * component/alpha*65535 << 15. (I.e. 15 bits of precision); this - * allows correct rounding by adding .5 before the shift. 'reciprocal' - * is only initialized when required. - */ - if (alpha > 0 && alpha < 65535) - reciprocal = ((0xffff<<15)+(alpha>>1))/alpha; - - c = (int)channels; - do /* always at least one channel */ - { - png_uint_16 component = *in_ptr++; - - /* The following gives 65535 for an alpha of 0, which is fine, - * otherwise if 0/0 is represented as some other value there is more - * likely to be a discontinuity which will probably damage - * compression when moving from a fully transparent area to a - * nearly transparent one. (The assumption here is that opaque - * areas tend not to be 0 intensity.) - */ - if (component >= alpha) - component = 65535; - - /* component 0 && alpha < 65535) - { - png_uint_32 calc = component * reciprocal; - calc += 16384; /* round to nearest */ - component = (png_uint_16)(calc >> 15); - } - - *out_ptr++ = component; - } - while (--c > 0); - - /* Skip to next component (skip the intervening alpha channel) */ - ++in_ptr; - ++out_ptr; - } - - png_write_row(png_ptr, png_voidcast(png_const_bytep, display->local_row)); - input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16)); - } - - return 1; -} - -/* Given 16-bit input (1 to 4 channels) write 8-bit output. If an alpha channel - * is present it must be removed from the components, the components are then - * written in sRGB encoding. No components are added or removed. - * - * Calculate an alpha reciprocal to reverse pre-multiplication. As above the - * calculation can be done to 15 bits of accuracy; however, the output needs to - * be scaled in the range 0..255*65535, so include that scaling here. - */ -# define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+((alpha)>>1))/(alpha)) - -static png_byte -png_unpremultiply(png_uint_32 component, png_uint_32 alpha, - png_uint_32 reciprocal/*from the above macro*/) -{ - /* The following gives 1.0 for an alpha of 0, which is fine, otherwise if 0/0 - * is represented as some other value there is more likely to be a - * discontinuity which will probably damage compression when moving from a - * fully transparent area to a nearly transparent one. (The assumption here - * is that opaque areas tend not to be 0 intensity.) - * - * There is a rounding problem here; if alpha is less than 128 it will end up - * as 0 when scaled to 8 bits. To avoid introducing spurious colors into the - * output change for this too. - */ - if (component >= alpha || alpha < 128) - return 255; - - /* component 0) - { - /* The test is that alpha/257 (rounded) is less than 255, the first value - * that becomes 255 is 65407. - * NOTE: this must agree with the PNG_DIV257 macro (which must, therefore, - * be exact!) [Could also test reciprocal != 0] - */ - if (alpha < 65407) - { - component *= reciprocal; - component += 64; /* round to nearest */ - component >>= 7; - } - - else - component *= 255; - - /* Convert the component to sRGB. */ - return (png_byte)PNG_sRGB_FROM_LINEAR(component); - } - - else - return 0; -} - -static int -png_write_image_8bit(png_voidp argument) -{ - png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - - png_const_uint_16p input_row = png_voidcast(png_const_uint_16p, - display->first_row); - png_bytep output_row = png_voidcast(png_bytep, display->local_row); - png_uint_32 y = image->height; - unsigned int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? - 3 : 1; - - if ((image->format & PNG_FORMAT_FLAG_ALPHA) != 0) - { - png_bytep row_end; - int aindex; - -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED - if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - aindex = -1; - ++input_row; /* To point to the first component */ - ++output_row; - } - - else -# endif - aindex = (int)channels; - - /* Use row_end in place of a loop counter: */ - row_end = output_row + image->width * (channels+1); - - for (; y > 0; --y) - { - png_const_uint_16p in_ptr = input_row; - png_bytep out_ptr = output_row; - - while (out_ptr < row_end) - { - png_uint_16 alpha = in_ptr[aindex]; - png_byte alphabyte = (png_byte)PNG_DIV257(alpha); - png_uint_32 reciprocal = 0; - int c; - - /* Scale and write the alpha channel. */ - out_ptr[aindex] = alphabyte; - - if (alphabyte > 0 && alphabyte < 255) - reciprocal = UNP_RECIPROCAL(alpha); - - c = (int)channels; - do /* always at least one channel */ - *out_ptr++ = png_unpremultiply(*in_ptr++, alpha, reciprocal); - while (--c > 0); - - /* Skip to next component (skip the intervening alpha channel) */ - ++in_ptr; - ++out_ptr; - } /* while out_ptr < row_end */ - - png_write_row(png_ptr, png_voidcast(png_const_bytep, - display->local_row)); - input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16)); - } /* while y */ - } - - else - { - /* No alpha channel, so the row_end really is the end of the row and it - * is sufficient to loop over the components one by one. - */ - png_bytep row_end = output_row + image->width * channels; - - for (; y > 0; --y) - { - png_const_uint_16p in_ptr = input_row; - png_bytep out_ptr = output_row; - - while (out_ptr < row_end) - { - png_uint_32 component = *in_ptr++; - - component *= 255; - *out_ptr++ = (png_byte)PNG_sRGB_FROM_LINEAR(component); - } - - png_write_row(png_ptr, output_row); - input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16)); - } - } - - return 1; -} - -static void -png_image_set_PLTE(png_image_write_control *display) -{ - png_imagep image = display->image; - const void *cmap = display->colormap; - int entries = image->colormap_entries > 256 ? 256 : - (int)image->colormap_entries; - - /* NOTE: the caller must check for cmap != NULL and entries != 0 */ - png_uint_32 format = image->format; - unsigned int channels = PNG_IMAGE_SAMPLE_CHANNELS(format); - -# if defined(PNG_FORMAT_BGR_SUPPORTED) &&\ - defined(PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED) - int afirst = (format & PNG_FORMAT_FLAG_AFIRST) != 0 && - (format & PNG_FORMAT_FLAG_ALPHA) != 0; -# else -# define afirst 0 -# endif - -# ifdef PNG_FORMAT_BGR_SUPPORTED - int bgr = (format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; -# else -# define bgr 0 -# endif - - int i, num_trans; - png_color palette[256]; - png_byte tRNS[256]; - - memset(tRNS, 255, (sizeof tRNS)); - memset(palette, 0, (sizeof palette)); - - for (i=num_trans=0; i= 3) /* RGB */ - { - palette[i].blue = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[(2 ^ bgr)]); - palette[i].green = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[1]); - palette[i].red = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[bgr]); - } - - else /* Gray */ - palette[i].blue = palette[i].red = palette[i].green = - (png_byte)PNG_sRGB_FROM_LINEAR(255 * *entry); - } - - else /* alpha */ - { - png_uint_16 alpha = entry[afirst ? 0 : channels-1]; - png_byte alphabyte = (png_byte)PNG_DIV257(alpha); - png_uint_32 reciprocal = 0; - - /* Calculate a reciprocal, as in the png_write_image_8bit code above - * this is designed to produce a value scaled to 255*65535 when - * divided by 128 (i.e. asr 7). - */ - if (alphabyte > 0 && alphabyte < 255) - reciprocal = (((0xffff*0xff)<<7)+(alpha>>1))/alpha; - - tRNS[i] = alphabyte; - if (alphabyte < 255) - num_trans = i+1; - - if (channels >= 3) /* RGB */ - { - palette[i].blue = png_unpremultiply(entry[afirst + (2 ^ bgr)], - alpha, reciprocal); - palette[i].green = png_unpremultiply(entry[afirst + 1], alpha, - reciprocal); - palette[i].red = png_unpremultiply(entry[afirst + bgr], alpha, - reciprocal); - } - - else /* gray */ - palette[i].blue = palette[i].red = palette[i].green = - png_unpremultiply(entry[afirst], alpha, reciprocal); - } - } - - else /* Color-map has sRGB values */ - { - png_const_bytep entry = png_voidcast(png_const_bytep, cmap); - - entry += (unsigned int)i * channels; - - switch (channels) - { - case 4: - tRNS[i] = entry[afirst ? 0 : 3]; - if (tRNS[i] < 255) - num_trans = i+1; - /* FALLTHROUGH */ - case 3: - palette[i].blue = entry[afirst + (2 ^ bgr)]; - palette[i].green = entry[afirst + 1]; - palette[i].red = entry[afirst + bgr]; - break; - - case 2: - tRNS[i] = entry[1 ^ afirst]; - if (tRNS[i] < 255) - num_trans = i+1; - /* FALLTHROUGH */ - case 1: - palette[i].blue = palette[i].red = palette[i].green = - entry[afirst]; - break; - - default: - break; - } - } - } - -# ifdef afirst -# undef afirst -# endif -# ifdef bgr -# undef bgr -# endif - - png_set_PLTE(image->opaque->png_ptr, image->opaque->info_ptr, palette, - entries); - - if (num_trans > 0) - png_set_tRNS(image->opaque->png_ptr, image->opaque->info_ptr, tRNS, - num_trans, NULL); - - image->colormap_entries = (png_uint_32)entries; -} - -static int -png_image_write_main(png_voidp argument) -{ - png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); - png_imagep image = display->image; - png_structrp png_ptr = image->opaque->png_ptr; - png_inforp info_ptr = image->opaque->info_ptr; - png_uint_32 format = image->format; - - /* The following four ints are actually booleans */ - int colormap = (format & PNG_FORMAT_FLAG_COLORMAP); - int linear = !colormap && (format & PNG_FORMAT_FLAG_LINEAR); /* input */ - int alpha = !colormap && (format & PNG_FORMAT_FLAG_ALPHA); - int write_16bit = linear && (display->convert_to_8bit == 0); - -# ifdef PNG_BENIGN_ERRORS_SUPPORTED - /* Make sure we error out on any bad situation */ - png_set_benign_errors(png_ptr, 0/*error*/); -# endif - - /* Default the 'row_stride' parameter if required, also check the row stride - * and total image size to ensure that they are within the system limits. - */ - { - unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(image->format); - - if (image->width <= 0x7fffffffU/channels) /* no overflow */ - { - png_uint_32 check; - png_uint_32 png_row_stride = image->width * channels; - - if (display->row_stride == 0) - display->row_stride = (png_int_32)/*SAFE*/png_row_stride; - - if (display->row_stride < 0) - check = (png_uint_32)(-display->row_stride); - - else - check = (png_uint_32)display->row_stride; - - if (check >= png_row_stride) - { - /* Now check for overflow of the image buffer calculation; this - * limits the whole image size to 32 bits for API compatibility with - * the current, 32-bit, PNG_IMAGE_BUFFER_SIZE macro. - */ - if (image->height > 0xffffffffU/png_row_stride) - png_error(image->opaque->png_ptr, "memory image too large"); - } - - else - png_error(image->opaque->png_ptr, "supplied row stride too small"); - } - - else - png_error(image->opaque->png_ptr, "image row stride too large"); - } - - /* Set the required transforms then write the rows in the correct order. */ - if ((format & PNG_FORMAT_FLAG_COLORMAP) != 0) - { - if (display->colormap != NULL && image->colormap_entries > 0) - { - png_uint_32 entries = image->colormap_entries; - - png_set_IHDR(png_ptr, info_ptr, image->width, image->height, - entries > 16 ? 8 : (entries > 4 ? 4 : (entries > 2 ? 2 : 1)), - PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - png_image_set_PLTE(display); - } - - else - png_error(image->opaque->png_ptr, - "no color-map for color-mapped image"); - } - - else - png_set_IHDR(png_ptr, info_ptr, image->width, image->height, - write_16bit ? 16 : 8, - ((format & PNG_FORMAT_FLAG_COLOR) ? PNG_COLOR_MASK_COLOR : 0) + - ((format & PNG_FORMAT_FLAG_ALPHA) ? PNG_COLOR_MASK_ALPHA : 0), - PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - /* Counter-intuitively the data transformations must be called *after* - * png_write_info, not before as in the read code, but the 'set' functions - * must still be called before. Just set the color space information, never - * write an interlaced image. - */ - - if (write_16bit != 0) - { - /* The gamma here is 1.0 (linear) and the cHRM chunk matches sRGB. */ - png_set_gAMA_fixed(png_ptr, info_ptr, PNG_GAMMA_LINEAR); - - if ((image->flags & PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB) == 0) - png_set_cHRM_fixed(png_ptr, info_ptr, - /* color x y */ - /* white */ 31270, 32900, - /* red */ 64000, 33000, - /* green */ 30000, 60000, - /* blue */ 15000, 6000 - ); - } - - else if ((image->flags & PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB) == 0) - png_set_sRGB(png_ptr, info_ptr, PNG_sRGB_INTENT_PERCEPTUAL); - - /* Else writing an 8-bit file and the *colors* aren't sRGB, but the 8-bit - * space must still be gamma encoded. - */ - else - png_set_gAMA_fixed(png_ptr, info_ptr, PNG_GAMMA_sRGB_INVERSE); - - /* Write the file header. */ - png_write_info(png_ptr, info_ptr); - - /* Now set up the data transformations (*after* the header is written), - * remove the handled transformations from the 'format' flags for checking. - * - * First check for a little endian system if writing 16-bit files. - */ - if (write_16bit != 0) - { - png_uint_16 le = 0x0001; - - if ((*(png_const_bytep) & le) != 0) - png_set_swap(png_ptr); - } - -# ifdef PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED - if ((format & PNG_FORMAT_FLAG_BGR) != 0) - { - if (colormap == 0 && (format & PNG_FORMAT_FLAG_COLOR) != 0) - png_set_bgr(png_ptr); - format &= ~PNG_FORMAT_FLAG_BGR; - } -# endif - -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED - if ((format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - if (colormap == 0 && (format & PNG_FORMAT_FLAG_ALPHA) != 0) - png_set_swap_alpha(png_ptr); - format &= ~PNG_FORMAT_FLAG_AFIRST; - } -# endif - - /* If there are 16 or fewer color-map entries we wrote a lower bit depth - * above, but the application data is still byte packed. - */ - if (colormap != 0 && image->colormap_entries <= 16) - png_set_packing(png_ptr); - - /* That should have handled all (both) the transforms. */ - if ((format & ~(png_uint_32)(PNG_FORMAT_FLAG_COLOR | PNG_FORMAT_FLAG_LINEAR | - PNG_FORMAT_FLAG_ALPHA | PNG_FORMAT_FLAG_COLORMAP)) != 0) - png_error(png_ptr, "png_write_image: unsupported transformation"); - - { - png_const_bytep row = png_voidcast(png_const_bytep, display->buffer); - ptrdiff_t row_bytes = display->row_stride; - - if (linear != 0) - row_bytes *= (sizeof (png_uint_16)); - - if (row_bytes < 0) - row += (image->height-1) * (-row_bytes); - - display->first_row = row; - display->row_bytes = row_bytes; - } - - /* Apply 'fast' options if the flag is set. */ - if ((image->flags & PNG_IMAGE_FLAG_FAST) != 0) - { - png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, PNG_NO_FILTERS); - /* NOTE: determined by experiment using pngstest, this reflects some - * balance between the time to write the image once and the time to read - * it about 50 times. The speed-up in pngstest was about 10-20% of the - * total (user) time on a heavily loaded system. - */ -# ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED - png_set_compression_level(png_ptr, 3); -# endif - } - - /* Check for the cases that currently require a pre-transform on the row - * before it is written. This only applies when the input is 16-bit and - * either there is an alpha channel or it is converted to 8-bit. - */ - if ((linear != 0 && alpha != 0 ) || - (colormap == 0 && display->convert_to_8bit != 0)) - { - png_bytep row = png_voidcast(png_bytep, png_malloc(png_ptr, - png_get_rowbytes(png_ptr, info_ptr))); - int result; - - display->local_row = row; - if (write_16bit != 0) - result = png_safe_execute(image, png_write_image_16bit, display); - else - result = png_safe_execute(image, png_write_image_8bit, display); - display->local_row = NULL; - - png_free(png_ptr, row); - - /* Skip the 'write_end' on error: */ - if (result == 0) - return 0; - } - - /* Otherwise this is the case where the input is in a format currently - * supported by the rest of the libpng write code; call it directly. - */ - else - { - png_const_bytep row = png_voidcast(png_const_bytep, display->first_row); - ptrdiff_t row_bytes = display->row_bytes; - png_uint_32 y = image->height; - - for (; y > 0; --y) - { - png_write_row(png_ptr, row); - row += row_bytes; - } - } - - png_write_end(png_ptr, info_ptr); - return 1; -} - - -static void (PNGCBAPI -image_memory_write)(png_structp png_ptr, png_bytep/*const*/ data, size_t size) -{ - png_image_write_control *display = png_voidcast(png_image_write_control*, - png_ptr->io_ptr/*backdoor: png_get_io_ptr(png_ptr)*/); - png_alloc_size_t ob = display->output_bytes; - - /* Check for overflow; this should never happen: */ - if (size <= ((png_alloc_size_t)-1) - ob) - { - /* I don't think libpng ever does this, but just in case: */ - if (size > 0) - { - if (display->memory_bytes >= ob+size) /* writing */ - memcpy(display->memory+ob, data, size); - - /* Always update the size: */ - display->output_bytes = ob+size; - } - } - - else - png_error(png_ptr, "png_image_write_to_memory: PNG too big"); -} - -static void (PNGCBAPI -image_memory_flush)(png_structp png_ptr) -{ - PNG_UNUSED(png_ptr) -} - -static int -png_image_write_memory(png_voidp argument) -{ - png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); - - /* The rest of the memory-specific init and write_main in an error protected - * environment. This case needs to use callbacks for the write operations - * since libpng has no built in support for writing to memory. - */ - png_set_write_fn(display->image->opaque->png_ptr, display/*io_ptr*/, - image_memory_write, image_memory_flush); - - return png_image_write_main(display); -} - -int PNGAPI -png_image_write_to_memory(png_imagep image, void *memory, - png_alloc_size_t * PNG_RESTRICT memory_bytes, int convert_to_8bit, - const void *buffer, png_int_32 row_stride, const void *colormap) -{ - /* Write the image to the given buffer, or count the bytes if it is NULL */ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (memory_bytes != NULL && buffer != NULL) - { - /* This is to give the caller an easier error detection in the NULL - * case and guard against uninitialized variable problems: - */ - if (memory == NULL) - *memory_bytes = 0; - - if (png_image_write_init(image) != 0) - { - png_image_write_control display; - int result; - - memset(&display, 0, (sizeof display)); - display.image = image; - display.buffer = buffer; - display.row_stride = row_stride; - display.colormap = colormap; - display.convert_to_8bit = convert_to_8bit; - display.memory = png_voidcast(png_bytep, memory); - display.memory_bytes = *memory_bytes; - display.output_bytes = 0; - - result = png_safe_execute(image, png_image_write_memory, &display); - png_image_free(image); - - /* write_memory returns true even if we ran out of buffer. */ - if (result) - { - /* On out-of-buffer this function returns '0' but still updates - * memory_bytes: - */ - if (memory != NULL && display.output_bytes > *memory_bytes) - result = 0; - - *memory_bytes = display.output_bytes; - } - - return result; - } - - else - return 0; - } - - else - return png_image_error(image, - "png_image_write_to_memory: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_write_to_memory: incorrect PNG_IMAGE_VERSION"); - - else - return 0; -} - -#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED -int PNGAPI -png_image_write_to_stdio(png_imagep image, FILE *file, int convert_to_8bit, - const void *buffer, png_int_32 row_stride, const void *colormap) -{ - /* Write the image to the given (FILE*). */ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (file != NULL && buffer != NULL) - { - if (png_image_write_init(image) != 0) - { - png_image_write_control display; - int result; - - /* This is slightly evil, but png_init_io doesn't do anything other - * than this and we haven't changed the standard IO functions so - * this saves a 'safe' function. - */ - image->opaque->png_ptr->io_ptr = file; - - memset(&display, 0, (sizeof display)); - display.image = image; - display.buffer = buffer; - display.row_stride = row_stride; - display.colormap = colormap; - display.convert_to_8bit = convert_to_8bit; - - result = png_safe_execute(image, png_image_write_main, &display); - png_image_free(image); - return result; - } - - else - return 0; - } - - else - return png_image_error(image, - "png_image_write_to_stdio: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_write_to_stdio: incorrect PNG_IMAGE_VERSION"); - - else - return 0; -} - -int PNGAPI -png_image_write_to_file(png_imagep image, const char *file_name, - int convert_to_8bit, const void *buffer, png_int_32 row_stride, - const void *colormap) -{ - /* Write the image to the named file. */ - if (image != NULL && image->version == PNG_IMAGE_VERSION) - { - if (file_name != NULL && buffer != NULL) - { - FILE *fp = fopen(file_name, "wb"); - - if (fp != NULL) - { - if (png_image_write_to_stdio(image, fp, convert_to_8bit, buffer, - row_stride, colormap) != 0) - { - int error; /* from fflush/fclose */ - - /* Make sure the file is flushed correctly. */ - if (fflush(fp) == 0 && ferror(fp) == 0) - { - if (fclose(fp) == 0) - return 1; - - error = errno; /* from fclose */ - } - - else - { - error = errno; /* from fflush or ferror */ - (void)fclose(fp); - } - - (void)remove(file_name); - /* The image has already been cleaned up; this is just used to - * set the error (because the original write succeeded). - */ - return png_image_error(image, strerror(error)); - } - - else - { - /* Clean up: just the opened file. */ - (void)fclose(fp); - (void)remove(file_name); - return 0; - } - } - - else - return png_image_error(image, strerror(errno)); - } - - else - return png_image_error(image, - "png_image_write_to_file: invalid argument"); - } - - else if (image != NULL) - return png_image_error(image, - "png_image_write_to_file: incorrect PNG_IMAGE_VERSION"); - - else - return 0; -} -#endif /* SIMPLIFIED_WRITE_STDIO */ -#endif /* SIMPLIFIED_WRITE */ -#endif /* WRITE */ diff --git a/Externals/libpng/pngwtran.c b/Externals/libpng/pngwtran.c deleted file mode 100644 index 49a13c1e98..0000000000 --- a/Externals/libpng/pngwtran.c +++ /dev/null @@ -1,575 +0,0 @@ - -/* pngwtran.c - transforms the data in a row for PNG writers - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" - -#ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED - -#ifdef PNG_WRITE_PACK_SUPPORTED -/* Pack pixels into bytes. Pass the true bit depth in bit_depth. The - * row_info bit depth should be 8 (one pixel per byte). The channels - * should be 1 (this only happens on grayscale and paletted images). - */ -static void -png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) -{ - png_debug(1, "in png_do_pack"); - - if (row_info->bit_depth == 8 && - row_info->channels == 1) - { - switch ((int)bit_depth) - { - case 1: - { - png_bytep sp, dp; - int mask, v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - mask = 0x80; - v = 0; - - for (i = 0; i < row_width; i++) - { - if (*sp != 0) - v |= mask; - - sp++; - - if (mask > 1) - mask >>= 1; - - else - { - mask = 0x80; - *dp = (png_byte)v; - dp++; - v = 0; - } - } - - if (mask != 0x80) - *dp = (png_byte)v; - - break; - } - - case 2: - { - png_bytep sp, dp; - unsigned int shift; - int v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - shift = 6; - v = 0; - - for (i = 0; i < row_width; i++) - { - png_byte value; - - value = (png_byte)(*sp & 0x03); - v |= (value << shift); - - if (shift == 0) - { - shift = 6; - *dp = (png_byte)v; - dp++; - v = 0; - } - - else - shift -= 2; - - sp++; - } - - if (shift != 6) - *dp = (png_byte)v; - - break; - } - - case 4: - { - png_bytep sp, dp; - unsigned int shift; - int v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - shift = 4; - v = 0; - - for (i = 0; i < row_width; i++) - { - png_byte value; - - value = (png_byte)(*sp & 0x0f); - v |= (value << shift); - - if (shift == 0) - { - shift = 4; - *dp = (png_byte)v; - dp++; - v = 0; - } - - else - shift -= 4; - - sp++; - } - - if (shift != 4) - *dp = (png_byte)v; - - break; - } - - default: - break; - } - - row_info->bit_depth = (png_byte)bit_depth; - row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels); - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, - row_info->width); - } -} -#endif - -#ifdef PNG_WRITE_SHIFT_SUPPORTED -/* Shift pixel values to take advantage of whole range. Pass the - * true number of bits in bit_depth. The row should be packed - * according to row_info->bit_depth. Thus, if you had a row of - * bit depth 4, but the pixels only had values from 0 to 7, you - * would pass 3 as bit_depth, and this routine would translate the - * data to 0 to 15. - */ -static void -png_do_shift(png_row_infop row_info, png_bytep row, - png_const_color_8p bit_depth) -{ - png_debug(1, "in png_do_shift"); - - if (row_info->color_type != PNG_COLOR_TYPE_PALETTE) - { - int shift_start[4], shift_dec[4]; - unsigned int channels = 0; - - if ((row_info->color_type & PNG_COLOR_MASK_COLOR) != 0) - { - shift_start[channels] = row_info->bit_depth - bit_depth->red; - shift_dec[channels] = bit_depth->red; - channels++; - - shift_start[channels] = row_info->bit_depth - bit_depth->green; - shift_dec[channels] = bit_depth->green; - channels++; - - shift_start[channels] = row_info->bit_depth - bit_depth->blue; - shift_dec[channels] = bit_depth->blue; - channels++; - } - - else - { - shift_start[channels] = row_info->bit_depth - bit_depth->gray; - shift_dec[channels] = bit_depth->gray; - channels++; - } - - if ((row_info->color_type & PNG_COLOR_MASK_ALPHA) != 0) - { - shift_start[channels] = row_info->bit_depth - bit_depth->alpha; - shift_dec[channels] = bit_depth->alpha; - channels++; - } - - /* With low row depths, could only be grayscale, so one channel */ - if (row_info->bit_depth < 8) - { - png_bytep bp = row; - size_t i; - unsigned int mask; - size_t row_bytes = row_info->rowbytes; - - if (bit_depth->gray == 1 && row_info->bit_depth == 2) - mask = 0x55; - - else if (row_info->bit_depth == 4 && bit_depth->gray == 3) - mask = 0x11; - - else - mask = 0xff; - - for (i = 0; i < row_bytes; i++, bp++) - { - int j; - unsigned int v, out; - - v = *bp; - out = 0; - - for (j = shift_start[0]; j > -shift_dec[0]; j -= shift_dec[0]) - { - if (j > 0) - out |= v << j; - - else - out |= (v >> (-j)) & mask; - } - - *bp = (png_byte)(out & 0xff); - } - } - - else if (row_info->bit_depth == 8) - { - png_bytep bp = row; - png_uint_32 i; - png_uint_32 istop = channels * row_info->width; - - for (i = 0; i < istop; i++, bp++) - { - unsigned int c = i%channels; - int j; - unsigned int v, out; - - v = *bp; - out = 0; - - for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) - { - if (j > 0) - out |= v << j; - - else - out |= v >> (-j); - } - - *bp = (png_byte)(out & 0xff); - } - } - - else - { - png_bytep bp; - png_uint_32 i; - png_uint_32 istop = channels * row_info->width; - - for (bp = row, i = 0; i < istop; i++) - { - unsigned int c = i%channels; - int j; - unsigned int value, v; - - v = png_get_uint_16(bp); - value = 0; - - for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) - { - if (j > 0) - value |= v << j; - - else - value |= v >> (-j); - } - *bp++ = (png_byte)((value >> 8) & 0xff); - *bp++ = (png_byte)(value & 0xff); - } - } - } -} -#endif - -#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED -static void -png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_write_swap_alpha"); - - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This converts from ARGB to RGBA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save; - } - } - -#ifdef PNG_WRITE_16BIT_SUPPORTED - else - { - /* This converts from AARRGGBB to RRGGBBAA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save[2]; - save[0] = *(sp++); - save[1] = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save[0]; - *(dp++) = save[1]; - } - } -#endif /* WRITE_16BIT */ - } - - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This converts from AG to GA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save; - } - } - -#ifdef PNG_WRITE_16BIT_SUPPORTED - else - { - /* This converts from AAGG to GGAA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save[2]; - save[0] = *(sp++); - save[1] = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save[0]; - *(dp++) = save[1]; - } - } -#endif /* WRITE_16BIT */ - } - } -} -#endif - -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED -static void -png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_write_invert_alpha"); - - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This inverts the alpha channel in RGBA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - /* Does nothing - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - */ - sp+=3; dp = sp; - *dp = (png_byte)(255 - *(sp++)); - } - } - -#ifdef PNG_WRITE_16BIT_SUPPORTED - else - { - /* This inverts the alpha channel in RRGGBBAA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - /* Does nothing - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - */ - sp+=6; dp = sp; - *(dp++) = (png_byte)(255 - *(sp++)); - *dp = (png_byte)(255 - *(sp++)); - } - } -#endif /* WRITE_16BIT */ - } - - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (row_info->bit_depth == 8) - { - /* This inverts the alpha channel in GA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - *(dp++) = *(sp++); - *(dp++) = (png_byte)(255 - *(sp++)); - } - } - -#ifdef PNG_WRITE_16BIT_SUPPORTED - else - { - /* This inverts the alpha channel in GGAA */ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - /* Does nothing - *(dp++) = *(sp++); - *(dp++) = *(sp++); - */ - sp+=2; dp = sp; - *(dp++) = (png_byte)(255 - *(sp++)); - *dp = (png_byte)(255 - *(sp++)); - } - } -#endif /* WRITE_16BIT */ - } - } -} -#endif - -/* Transform the data according to the user's wishes. The order of - * transformations is significant. - */ -void /* PRIVATE */ -png_do_write_transformations(png_structrp png_ptr, png_row_infop row_info) -{ - png_debug(1, "in png_do_write_transformations"); - - if (png_ptr == NULL) - return; - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED - if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) - if (png_ptr->write_user_transform_fn != NULL) - (*(png_ptr->write_user_transform_fn)) /* User write transform - function */ - (png_ptr, /* png_ptr */ - row_info, /* row_info: */ - /* png_uint_32 width; width of row */ - /* size_t rowbytes; number of bytes in row */ - /* png_byte color_type; color type of pixels */ - /* png_byte bit_depth; bit depth of samples */ - /* png_byte channels; number of channels (1-4) */ - /* png_byte pixel_depth; bits per pixel (depth*channels) */ - png_ptr->row_buf + 1); /* start of pixel data for row */ -#endif - -#ifdef PNG_WRITE_FILLER_SUPPORTED - if ((png_ptr->transformations & PNG_FILLER) != 0) - png_do_strip_channel(row_info, png_ptr->row_buf + 1, - !(png_ptr->flags & PNG_FLAG_FILLER_AFTER)); -#endif - -#ifdef PNG_WRITE_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - png_do_packswap(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_WRITE_PACK_SUPPORTED - if ((png_ptr->transformations & PNG_PACK) != 0) - png_do_pack(row_info, png_ptr->row_buf + 1, - (png_uint_32)png_ptr->bit_depth); -#endif - -#ifdef PNG_WRITE_SWAP_SUPPORTED -# ifdef PNG_16BIT_SUPPORTED - if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0) - png_do_swap(row_info, png_ptr->row_buf + 1); -# endif -#endif - -#ifdef PNG_WRITE_SHIFT_SUPPORTED - if ((png_ptr->transformations & PNG_SHIFT) != 0) - png_do_shift(row_info, png_ptr->row_buf + 1, - &(png_ptr->shift)); -#endif - -#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_SWAP_ALPHA) != 0) - png_do_write_swap_alpha(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED - if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0) - png_do_write_invert_alpha(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_WRITE_BGR_SUPPORTED - if ((png_ptr->transformations & PNG_BGR) != 0) - png_do_bgr(row_info, png_ptr->row_buf + 1); -#endif - -#ifdef PNG_WRITE_INVERT_SUPPORTED - if ((png_ptr->transformations & PNG_INVERT_MONO) != 0) - png_do_invert(row_info, png_ptr->row_buf + 1); -#endif -} -#endif /* WRITE_TRANSFORMS */ -#endif /* WRITE */ diff --git a/Externals/libpng/pngwutil.c b/Externals/libpng/pngwutil.c deleted file mode 100644 index 16345e4c0b..0000000000 --- a/Externals/libpng/pngwutil.c +++ /dev/null @@ -1,2781 +0,0 @@ - -/* pngwutil.c - utilities to write a PNG file - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson - * Copyright (c) 1996-1997 Andreas Dilger - * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include "pngpriv.h" - -#ifdef PNG_WRITE_SUPPORTED - -#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED -/* Place a 32-bit number into a buffer in PNG byte order. We work - * with unsigned numbers for convenience, although one supported - * ancillary chunk uses signed (two's complement) numbers. - */ -void PNGAPI -png_save_uint_32(png_bytep buf, png_uint_32 i) -{ - buf[0] = (png_byte)((i >> 24) & 0xffU); - buf[1] = (png_byte)((i >> 16) & 0xffU); - buf[2] = (png_byte)((i >> 8) & 0xffU); - buf[3] = (png_byte)( i & 0xffU); -} - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -void PNGAPI -png_save_uint_16(png_bytep buf, unsigned int i) -{ - buf[0] = (png_byte)((i >> 8) & 0xffU); - buf[1] = (png_byte)( i & 0xffU); -} -#endif - -/* Simple function to write the signature. If we have already written - * the magic bytes of the signature, or more likely, the PNG stream is - * being embedded into another stream and doesn't need its own signature, - * we should call png_set_sig_bytes() to tell libpng how many of the - * bytes have already been written. - */ -void PNGAPI -png_write_sig(png_structrp png_ptr) -{ - png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10}; - -#ifdef PNG_IO_STATE_SUPPORTED - /* Inform the I/O callback that the signature is being written */ - png_ptr->io_state = PNG_IO_WRITING | PNG_IO_SIGNATURE; -#endif - - /* Write the rest of the 8 byte signature */ - png_write_data(png_ptr, &png_signature[png_ptr->sig_bytes], - (size_t)(8 - png_ptr->sig_bytes)); - - if (png_ptr->sig_bytes < 3) - png_ptr->mode |= PNG_HAVE_PNG_SIGNATURE; -} - -/* Write the start of a PNG chunk. The type is the chunk type. - * The total_length is the sum of the lengths of all the data you will be - * passing in png_write_chunk_data(). - */ -static void -png_write_chunk_header(png_structrp png_ptr, png_uint_32 chunk_name, - png_uint_32 length) -{ - png_byte buf[8]; - -#if defined(PNG_DEBUG) && (PNG_DEBUG > 0) - PNG_CSTRING_FROM_CHUNK(buf, chunk_name); - png_debug2(0, "Writing %s chunk, length = %lu", buf, (unsigned long)length); -#endif - - if (png_ptr == NULL) - return; - -#ifdef PNG_IO_STATE_SUPPORTED - /* Inform the I/O callback that the chunk header is being written. - * PNG_IO_CHUNK_HDR requires a single I/O call. - */ - png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_HDR; -#endif - - /* Write the length and the chunk name */ - png_save_uint_32(buf, length); - png_save_uint_32(buf + 4, chunk_name); - png_write_data(png_ptr, buf, 8); - - /* Put the chunk name into png_ptr->chunk_name */ - png_ptr->chunk_name = chunk_name; - - /* Reset the crc and run it over the chunk name */ - png_reset_crc(png_ptr); - - png_calculate_crc(png_ptr, buf + 4, 4); - -#ifdef PNG_IO_STATE_SUPPORTED - /* Inform the I/O callback that chunk data will (possibly) be written. - * PNG_IO_CHUNK_DATA does NOT require a specific number of I/O calls. - */ - png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_DATA; -#endif -} - -void PNGAPI -png_write_chunk_start(png_structrp png_ptr, png_const_bytep chunk_string, - png_uint_32 length) -{ - png_write_chunk_header(png_ptr, PNG_CHUNK_FROM_STRING(chunk_string), length); -} - -/* Write the data of a PNG chunk started with png_write_chunk_header(). - * Note that multiple calls to this function are allowed, and that the - * sum of the lengths from these calls *must* add up to the total_length - * given to png_write_chunk_header(). - */ -void PNGAPI -png_write_chunk_data(png_structrp png_ptr, png_const_bytep data, size_t length) -{ - /* Write the data, and run the CRC over it */ - if (png_ptr == NULL) - return; - - if (data != NULL && length > 0) - { - png_write_data(png_ptr, data, length); - - /* Update the CRC after writing the data, - * in case the user I/O routine alters it. - */ - png_calculate_crc(png_ptr, data, length); - } -} - -/* Finish a chunk started with png_write_chunk_header(). */ -void PNGAPI -png_write_chunk_end(png_structrp png_ptr) -{ - png_byte buf[4]; - - if (png_ptr == NULL) return; - -#ifdef PNG_IO_STATE_SUPPORTED - /* Inform the I/O callback that the chunk CRC is being written. - * PNG_IO_CHUNK_CRC requires a single I/O function call. - */ - png_ptr->io_state = PNG_IO_WRITING | PNG_IO_CHUNK_CRC; -#endif - - /* Write the crc in a single operation */ - png_save_uint_32(buf, png_ptr->crc); - - png_write_data(png_ptr, buf, 4); -} - -/* Write a PNG chunk all at once. The type is an array of ASCII characters - * representing the chunk name. The array must be at least 4 bytes in - * length, and does not need to be null terminated. To be safe, pass the - * pre-defined chunk names here, and if you need a new one, define it - * where the others are defined. The length is the length of the data. - * All the data must be present. If that is not possible, use the - * png_write_chunk_start(), png_write_chunk_data(), and png_write_chunk_end() - * functions instead. - */ -static void -png_write_complete_chunk(png_structrp png_ptr, png_uint_32 chunk_name, - png_const_bytep data, size_t length) -{ - if (png_ptr == NULL) - return; - - /* On 64-bit architectures 'length' may not fit in a png_uint_32. */ - if (length > PNG_UINT_31_MAX) - png_error(png_ptr, "length exceeds PNG maximum"); - - png_write_chunk_header(png_ptr, chunk_name, (png_uint_32)length); - png_write_chunk_data(png_ptr, data, length); - png_write_chunk_end(png_ptr); -} - -/* This is the API that calls the internal function above. */ -void PNGAPI -png_write_chunk(png_structrp png_ptr, png_const_bytep chunk_string, - png_const_bytep data, size_t length) -{ - png_write_complete_chunk(png_ptr, PNG_CHUNK_FROM_STRING(chunk_string), data, - length); -} - -/* This is used below to find the size of an image to pass to png_deflate_claim, - * so it only needs to be accurate if the size is less than 16384 bytes (the - * point at which a lower LZ window size can be used.) - */ -static png_alloc_size_t -png_image_size(png_structrp png_ptr) -{ - /* Only return sizes up to the maximum of a png_uint_32; do this by limiting - * the width and height used to 15 bits. - */ - png_uint_32 h = png_ptr->height; - - if (png_ptr->rowbytes < 32768 && h < 32768) - { - if (png_ptr->interlaced != 0) - { - /* Interlacing makes the image larger because of the replication of - * both the filter byte and the padding to a byte boundary. - */ - png_uint_32 w = png_ptr->width; - unsigned int pd = png_ptr->pixel_depth; - png_alloc_size_t cb_base; - int pass; - - for (cb_base=0, pass=0; pass<=6; ++pass) - { - png_uint_32 pw = PNG_PASS_COLS(w, pass); - - if (pw > 0) - cb_base += (PNG_ROWBYTES(pd, pw)+1) * PNG_PASS_ROWS(h, pass); - } - - return cb_base; - } - - else - return (png_ptr->rowbytes+1) * h; - } - - else - return 0xffffffffU; -} - -#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED - /* This is the code to hack the first two bytes of the deflate stream (the - * deflate header) to correct the windowBits value to match the actual data - * size. Note that the second argument is the *uncompressed* size but the - * first argument is the *compressed* data (and it must be deflate - * compressed.) - */ -static void -optimize_cmf(png_bytep data, png_alloc_size_t data_size) -{ - /* Optimize the CMF field in the zlib stream. The resultant zlib stream is - * still compliant to the stream specification. - */ - if (data_size <= 16384) /* else windowBits must be 15 */ - { - unsigned int z_cmf = data[0]; /* zlib compression method and flags */ - - if ((z_cmf & 0x0f) == 8 && (z_cmf & 0xf0) <= 0x70) - { - unsigned int z_cinfo; - unsigned int half_z_window_size; - - z_cinfo = z_cmf >> 4; - half_z_window_size = 1U << (z_cinfo + 7); - - if (data_size <= half_z_window_size) /* else no change */ - { - unsigned int tmp; - - do - { - half_z_window_size >>= 1; - --z_cinfo; - } - while (z_cinfo > 0 && data_size <= half_z_window_size); - - z_cmf = (z_cmf & 0x0f) | (z_cinfo << 4); - - data[0] = (png_byte)z_cmf; - tmp = data[1] & 0xe0; - tmp += 0x1f - ((z_cmf << 8) + tmp) % 0x1f; - data[1] = (png_byte)tmp; - } - } - } -} -#endif /* WRITE_OPTIMIZE_CMF */ - -/* Initialize the compressor for the appropriate type of compression. */ -static int -png_deflate_claim(png_structrp png_ptr, png_uint_32 owner, - png_alloc_size_t data_size) -{ - if (png_ptr->zowner != 0) - { -#if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED) - char msg[64]; - - PNG_STRING_FROM_CHUNK(msg, owner); - msg[4] = ':'; - msg[5] = ' '; - PNG_STRING_FROM_CHUNK(msg+6, png_ptr->zowner); - /* So the message that results is " using zstream"; this is an - * internal error, but is very useful for debugging. i18n requirements - * are minimal. - */ - (void)png_safecat(msg, (sizeof msg), 10, " using zstream"); -#endif -#if PNG_RELEASE_BUILD - png_warning(png_ptr, msg); - - /* Attempt sane error recovery */ - if (png_ptr->zowner == png_IDAT) /* don't steal from IDAT */ - { - png_ptr->zstream.msg = PNGZ_MSG_CAST("in use by IDAT"); - return Z_STREAM_ERROR; - } - - png_ptr->zowner = 0; -#else - png_error(png_ptr, msg); -#endif - } - - { - int level = png_ptr->zlib_level; - int method = png_ptr->zlib_method; - int windowBits = png_ptr->zlib_window_bits; - int memLevel = png_ptr->zlib_mem_level; - int strategy; /* set below */ - int ret; /* zlib return code */ - - if (owner == png_IDAT) - { - if ((png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_STRATEGY) != 0) - strategy = png_ptr->zlib_strategy; - - else if (png_ptr->do_filter != PNG_FILTER_NONE) - strategy = PNG_Z_DEFAULT_STRATEGY; - - else - strategy = PNG_Z_DEFAULT_NOFILTER_STRATEGY; - } - - else - { -#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED - level = png_ptr->zlib_text_level; - method = png_ptr->zlib_text_method; - windowBits = png_ptr->zlib_text_window_bits; - memLevel = png_ptr->zlib_text_mem_level; - strategy = png_ptr->zlib_text_strategy; -#else - /* If customization is not supported the values all come from the - * IDAT values except for the strategy, which is fixed to the - * default. (This is the pre-1.6.0 behavior too, although it was - * implemented in a very different way.) - */ - strategy = Z_DEFAULT_STRATEGY; -#endif - } - - /* Adjust 'windowBits' down if larger than 'data_size'; to stop this - * happening just pass 32768 as the data_size parameter. Notice that zlib - * requires an extra 262 bytes in the window in addition to the data to be - * able to see the whole of the data, so if data_size+262 takes us to the - * next windowBits size we need to fix up the value later. (Because even - * though deflate needs the extra window, inflate does not!) - */ - if (data_size <= 16384) - { - /* IMPLEMENTATION NOTE: this 'half_window_size' stuff is only here to - * work round a Microsoft Visual C misbehavior which, contrary to C-90, - * widens the result of the following shift to 64-bits if (and, - * apparently, only if) it is used in a test. - */ - unsigned int half_window_size = 1U << (windowBits-1); - - while (data_size + 262 <= half_window_size) - { - half_window_size >>= 1; - --windowBits; - } - } - - /* Check against the previous initialized values, if any. */ - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED) != 0 && - (png_ptr->zlib_set_level != level || - png_ptr->zlib_set_method != method || - png_ptr->zlib_set_window_bits != windowBits || - png_ptr->zlib_set_mem_level != memLevel || - png_ptr->zlib_set_strategy != strategy)) - { - if (deflateEnd(&png_ptr->zstream) != Z_OK) - png_warning(png_ptr, "deflateEnd failed (ignored)"); - - png_ptr->flags &= ~PNG_FLAG_ZSTREAM_INITIALIZED; - } - - /* For safety clear out the input and output pointers (currently zlib - * doesn't use them on Init, but it might in the future). - */ - png_ptr->zstream.next_in = NULL; - png_ptr->zstream.avail_in = 0; - png_ptr->zstream.next_out = NULL; - png_ptr->zstream.avail_out = 0; - - /* Now initialize if required, setting the new parameters, otherwise just - * do a simple reset to the previous parameters. - */ - if ((png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED) != 0) - ret = deflateReset(&png_ptr->zstream); - - else - { - ret = deflateInit2(&png_ptr->zstream, level, method, windowBits, - memLevel, strategy); - - if (ret == Z_OK) - png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED; - } - - /* The return code is from either deflateReset or deflateInit2; they have - * pretty much the same set of error codes. - */ - if (ret == Z_OK) - png_ptr->zowner = owner; - - else - png_zstream_error(png_ptr, ret); - - return ret; - } -} - -/* Clean up (or trim) a linked list of compression buffers. */ -void /* PRIVATE */ -png_free_buffer_list(png_structrp png_ptr, png_compression_bufferp *listp) -{ - png_compression_bufferp list = *listp; - - if (list != NULL) - { - *listp = NULL; - - do - { - png_compression_bufferp next = list->next; - - png_free(png_ptr, list); - list = next; - } - while (list != NULL); - } -} - -#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED -/* This pair of functions encapsulates the operation of (a) compressing a - * text string, and (b) issuing it later as a series of chunk data writes. - * The compression_state structure is shared context for these functions - * set up by the caller to allow access to the relevant local variables. - * - * compression_buffer (new in 1.6.0) is just a linked list of zbuffer_size - * temporary buffers. From 1.6.0 it is retained in png_struct so that it will - * be correctly freed in the event of a write error (previous implementations - * just leaked memory.) - */ -typedef struct -{ - png_const_bytep input; /* The uncompressed input data */ - png_alloc_size_t input_len; /* Its length */ - png_uint_32 output_len; /* Final compressed length */ - png_byte output[1024]; /* First block of output */ -} compression_state; - -static void -png_text_compress_init(compression_state *comp, png_const_bytep input, - png_alloc_size_t input_len) -{ - comp->input = input; - comp->input_len = input_len; - comp->output_len = 0; -} - -/* Compress the data in the compression state input */ -static int -png_text_compress(png_structrp png_ptr, png_uint_32 chunk_name, - compression_state *comp, png_uint_32 prefix_len) -{ - int ret; - - /* To find the length of the output it is necessary to first compress the - * input. The result is buffered rather than using the two-pass algorithm - * that is used on the inflate side; deflate is assumed to be slower and a - * PNG writer is assumed to have more memory available than a PNG reader. - * - * IMPLEMENTATION NOTE: the zlib API deflateBound() can be used to find an - * upper limit on the output size, but it is always bigger than the input - * size so it is likely to be more efficient to use this linked-list - * approach. - */ - ret = png_deflate_claim(png_ptr, chunk_name, comp->input_len); - - if (ret != Z_OK) - return ret; - - /* Set up the compression buffers, we need a loop here to avoid overflowing a - * uInt. Use ZLIB_IO_MAX to limit the input. The output is always limited - * by the output buffer size, so there is no need to check that. Since this - * is ANSI-C we know that an 'int', hence a uInt, is always at least 16 bits - * in size. - */ - { - png_compression_bufferp *end = &png_ptr->zbuffer_list; - png_alloc_size_t input_len = comp->input_len; /* may be zero! */ - png_uint_32 output_len; - - /* zlib updates these for us: */ - png_ptr->zstream.next_in = PNGZ_INPUT_CAST(comp->input); - png_ptr->zstream.avail_in = 0; /* Set below */ - png_ptr->zstream.next_out = comp->output; - png_ptr->zstream.avail_out = (sizeof comp->output); - - output_len = png_ptr->zstream.avail_out; - - do - { - uInt avail_in = ZLIB_IO_MAX; - - if (avail_in > input_len) - avail_in = (uInt)input_len; - - input_len -= avail_in; - - png_ptr->zstream.avail_in = avail_in; - - if (png_ptr->zstream.avail_out == 0) - { - png_compression_buffer *next; - - /* Chunk data is limited to 2^31 bytes in length, so the prefix - * length must be counted here. - */ - if (output_len + prefix_len > PNG_UINT_31_MAX) - { - ret = Z_MEM_ERROR; - break; - } - - /* Need a new (malloc'ed) buffer, but there may be one present - * already. - */ - next = *end; - if (next == NULL) - { - next = png_voidcast(png_compression_bufferp, png_malloc_base - (png_ptr, PNG_COMPRESSION_BUFFER_SIZE(png_ptr))); - - if (next == NULL) - { - ret = Z_MEM_ERROR; - break; - } - - /* Link in this buffer (so that it will be freed later) */ - next->next = NULL; - *end = next; - } - - png_ptr->zstream.next_out = next->output; - png_ptr->zstream.avail_out = png_ptr->zbuffer_size; - output_len += png_ptr->zstream.avail_out; - - /* Move 'end' to the next buffer pointer. */ - end = &next->next; - } - - /* Compress the data */ - ret = deflate(&png_ptr->zstream, - input_len > 0 ? Z_NO_FLUSH : Z_FINISH); - - /* Claw back input data that was not consumed (because avail_in is - * reset above every time round the loop). - */ - input_len += png_ptr->zstream.avail_in; - png_ptr->zstream.avail_in = 0; /* safety */ - } - while (ret == Z_OK); - - /* There may be some space left in the last output buffer. This needs to - * be subtracted from output_len. - */ - output_len -= png_ptr->zstream.avail_out; - png_ptr->zstream.avail_out = 0; /* safety */ - comp->output_len = output_len; - - /* Now double check the output length, put in a custom message if it is - * too long. Otherwise ensure the z_stream::msg pointer is set to - * something. - */ - if (output_len + prefix_len >= PNG_UINT_31_MAX) - { - png_ptr->zstream.msg = PNGZ_MSG_CAST("compressed data too long"); - ret = Z_MEM_ERROR; - } - - else - png_zstream_error(png_ptr, ret); - - /* Reset zlib for another zTXt/iTXt or image data */ - png_ptr->zowner = 0; - - /* The only success case is Z_STREAM_END, input_len must be 0; if not this - * is an internal error. - */ - if (ret == Z_STREAM_END && input_len == 0) - { -#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED - /* Fix up the deflate header, if required */ - optimize_cmf(comp->output, comp->input_len); -#endif - /* But Z_OK is returned, not Z_STREAM_END; this allows the claim - * function above to return Z_STREAM_END on an error (though it never - * does in the current versions of zlib.) - */ - return Z_OK; - } - - else - return ret; - } -} - -/* Ship the compressed text out via chunk writes */ -static void -png_write_compressed_data_out(png_structrp png_ptr, compression_state *comp) -{ - png_uint_32 output_len = comp->output_len; - png_const_bytep output = comp->output; - png_uint_32 avail = (sizeof comp->output); - png_compression_buffer *next = png_ptr->zbuffer_list; - - for (;;) - { - if (avail > output_len) - avail = output_len; - - png_write_chunk_data(png_ptr, output, avail); - - output_len -= avail; - - if (output_len == 0 || next == NULL) - break; - - avail = png_ptr->zbuffer_size; - output = next->output; - next = next->next; - } - - /* This is an internal error; 'next' must have been NULL! */ - if (output_len > 0) - png_error(png_ptr, "error writing ancillary chunked compressed data"); -} -#endif /* WRITE_COMPRESSED_TEXT */ - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. Note that the rest of this code depends upon this - * information being correct. - */ -void /* PRIVATE */ -png_write_IHDR(png_structrp png_ptr, png_uint_32 width, png_uint_32 height, - int bit_depth, int color_type, int compression_type, int filter_type, - int interlace_type) -{ - png_byte buf[13]; /* Buffer to store the IHDR info */ - int is_invalid_depth; - - png_debug(1, "in png_write_IHDR"); - - /* Check that we have valid input data from the application info */ - switch (color_type) - { - case PNG_COLOR_TYPE_GRAY: - switch (bit_depth) - { - case 1: - case 2: - case 4: - case 8: -#ifdef PNG_WRITE_16BIT_SUPPORTED - case 16: -#endif - png_ptr->channels = 1; break; - - default: - png_error(png_ptr, - "Invalid bit depth for grayscale image"); - } - break; - - case PNG_COLOR_TYPE_RGB: - is_invalid_depth = (bit_depth != 8); -#ifdef PNG_WRITE_16BIT_SUPPORTED - is_invalid_depth = (is_invalid_depth && bit_depth != 16); -#endif - if (is_invalid_depth) - png_error(png_ptr, "Invalid bit depth for RGB image"); - - png_ptr->channels = 3; - break; - - case PNG_COLOR_TYPE_PALETTE: - switch (bit_depth) - { - case 1: - case 2: - case 4: - case 8: - png_ptr->channels = 1; - break; - - default: - png_error(png_ptr, "Invalid bit depth for paletted image"); - } - break; - - case PNG_COLOR_TYPE_GRAY_ALPHA: - is_invalid_depth = (bit_depth != 8); -#ifdef PNG_WRITE_16BIT_SUPPORTED - is_invalid_depth = (is_invalid_depth && bit_depth != 16); -#endif - if (is_invalid_depth) - png_error(png_ptr, "Invalid bit depth for grayscale+alpha image"); - - png_ptr->channels = 2; - break; - - case PNG_COLOR_TYPE_RGB_ALPHA: - is_invalid_depth = (bit_depth != 8); -#ifdef PNG_WRITE_16BIT_SUPPORTED - is_invalid_depth = (is_invalid_depth && bit_depth != 16); -#endif - if (is_invalid_depth) - png_error(png_ptr, "Invalid bit depth for RGBA image"); - - png_ptr->channels = 4; - break; - - default: - png_error(png_ptr, "Invalid image color type specified"); - } - - if (compression_type != PNG_COMPRESSION_TYPE_BASE) - { - png_warning(png_ptr, "Invalid compression type specified"); - compression_type = PNG_COMPRESSION_TYPE_BASE; - } - - /* Write filter_method 64 (intrapixel differencing) only if - * 1. Libpng was compiled with PNG_MNG_FEATURES_SUPPORTED and - * 2. Libpng did not write a PNG signature (this filter_method is only - * used in PNG datastreams that are embedded in MNG datastreams) and - * 3. The application called png_permit_mng_features with a mask that - * included PNG_FLAG_MNG_FILTER_64 and - * 4. The filter_method is 64 and - * 5. The color_type is RGB or RGBA - */ - if ( -#ifdef PNG_MNG_FEATURES_SUPPORTED - !((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 && - ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) == 0) && - (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) && - (filter_type == PNG_INTRAPIXEL_DIFFERENCING)) && -#endif - filter_type != PNG_FILTER_TYPE_BASE) - { - png_warning(png_ptr, "Invalid filter type specified"); - filter_type = PNG_FILTER_TYPE_BASE; - } - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - if (interlace_type != PNG_INTERLACE_NONE && - interlace_type != PNG_INTERLACE_ADAM7) - { - png_warning(png_ptr, "Invalid interlace type specified"); - interlace_type = PNG_INTERLACE_ADAM7; - } -#else - interlace_type=PNG_INTERLACE_NONE; -#endif - - /* Save the relevant information */ - png_ptr->bit_depth = (png_byte)bit_depth; - png_ptr->color_type = (png_byte)color_type; - png_ptr->interlaced = (png_byte)interlace_type; -#ifdef PNG_MNG_FEATURES_SUPPORTED - png_ptr->filter_type = (png_byte)filter_type; -#endif - png_ptr->compression_type = (png_byte)compression_type; - png_ptr->width = width; - png_ptr->height = height; - - png_ptr->pixel_depth = (png_byte)(bit_depth * png_ptr->channels); - png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width); - /* Set the usr info, so any transformations can modify it */ - png_ptr->usr_width = png_ptr->width; - png_ptr->usr_bit_depth = png_ptr->bit_depth; - png_ptr->usr_channels = png_ptr->channels; - - /* Pack the header information into the buffer */ - png_save_uint_32(buf, width); - png_save_uint_32(buf + 4, height); - buf[8] = (png_byte)bit_depth; - buf[9] = (png_byte)color_type; - buf[10] = (png_byte)compression_type; - buf[11] = (png_byte)filter_type; - buf[12] = (png_byte)interlace_type; - - /* Write the chunk */ - png_write_complete_chunk(png_ptr, png_IHDR, buf, 13); - - if ((png_ptr->do_filter) == PNG_NO_FILTERS) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE || - png_ptr->bit_depth < 8) - png_ptr->do_filter = PNG_FILTER_NONE; - - else - png_ptr->do_filter = PNG_ALL_FILTERS; - } - - png_ptr->mode = PNG_HAVE_IHDR; /* not READY_FOR_ZTXT */ -} - -/* Write the palette. We are careful not to trust png_color to be in the - * correct order for PNG, so people can redefine it to any convenient - * structure. - */ -void /* PRIVATE */ -png_write_PLTE(png_structrp png_ptr, png_const_colorp palette, - png_uint_32 num_pal) -{ - png_uint_32 max_palette_length, i; - png_const_colorp pal_ptr; - png_byte buf[3]; - - png_debug(1, "in png_write_PLTE"); - - max_palette_length = (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ? - (1 << png_ptr->bit_depth) : PNG_MAX_PALETTE_LENGTH; - - if (( -#ifdef PNG_MNG_FEATURES_SUPPORTED - (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0 && -#endif - num_pal == 0) || num_pal > max_palette_length) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - png_error(png_ptr, "Invalid number of colors in palette"); - } - - else - { - png_warning(png_ptr, "Invalid number of colors in palette"); - return; - } - } - - if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) - { - png_warning(png_ptr, - "Ignoring request to write a PLTE chunk in grayscale PNG"); - - return; - } - - png_ptr->num_palette = (png_uint_16)num_pal; - png_debug1(3, "num_palette = %d", png_ptr->num_palette); - - png_write_chunk_header(png_ptr, png_PLTE, (png_uint_32)(num_pal * 3)); -#ifdef PNG_POINTER_INDEXING_SUPPORTED - - for (i = 0, pal_ptr = palette; i < num_pal; i++, pal_ptr++) - { - buf[0] = pal_ptr->red; - buf[1] = pal_ptr->green; - buf[2] = pal_ptr->blue; - png_write_chunk_data(png_ptr, buf, 3); - } - -#else - /* This is a little slower but some buggy compilers need to do this - * instead - */ - pal_ptr=palette; - - for (i = 0; i < num_pal; i++) - { - buf[0] = pal_ptr[i].red; - buf[1] = pal_ptr[i].green; - buf[2] = pal_ptr[i].blue; - png_write_chunk_data(png_ptr, buf, 3); - } - -#endif - png_write_chunk_end(png_ptr); - png_ptr->mode |= PNG_HAVE_PLTE; -} - -/* This is similar to png_text_compress, above, except that it does not require - * all of the data at once and, instead of buffering the compressed result, - * writes it as IDAT chunks. Unlike png_text_compress it *can* png_error out - * because it calls the write interface. As a result it does its own error - * reporting and does not return an error code. In the event of error it will - * just call png_error. The input data length may exceed 32-bits. The 'flush' - * parameter is exactly the same as that to deflate, with the following - * meanings: - * - * Z_NO_FLUSH: normal incremental output of compressed data - * Z_SYNC_FLUSH: do a SYNC_FLUSH, used by png_write_flush - * Z_FINISH: this is the end of the input, do a Z_FINISH and clean up - * - * The routine manages the acquire and release of the png_ptr->zstream by - * checking and (at the end) clearing png_ptr->zowner; it does some sanity - * checks on the 'mode' flags while doing this. - */ -void /* PRIVATE */ -png_compress_IDAT(png_structrp png_ptr, png_const_bytep input, - png_alloc_size_t input_len, int flush) -{ - if (png_ptr->zowner != png_IDAT) - { - /* First time. Ensure we have a temporary buffer for compression and - * trim the buffer list if it has more than one entry to free memory. - * If 'WRITE_COMPRESSED_TEXT' is not set the list will never have been - * created at this point, but the check here is quick and safe. - */ - if (png_ptr->zbuffer_list == NULL) - { - png_ptr->zbuffer_list = png_voidcast(png_compression_bufferp, - png_malloc(png_ptr, PNG_COMPRESSION_BUFFER_SIZE(png_ptr))); - png_ptr->zbuffer_list->next = NULL; - } - - else - png_free_buffer_list(png_ptr, &png_ptr->zbuffer_list->next); - - /* It is a terminal error if we can't claim the zstream. */ - if (png_deflate_claim(png_ptr, png_IDAT, png_image_size(png_ptr)) != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg); - - /* The output state is maintained in png_ptr->zstream, so it must be - * initialized here after the claim. - */ - png_ptr->zstream.next_out = png_ptr->zbuffer_list->output; - png_ptr->zstream.avail_out = png_ptr->zbuffer_size; - } - - /* Now loop reading and writing until all the input is consumed or an error - * terminates the operation. The _out values are maintained across calls to - * this function, but the input must be reset each time. - */ - png_ptr->zstream.next_in = PNGZ_INPUT_CAST(input); - png_ptr->zstream.avail_in = 0; /* set below */ - for (;;) - { - int ret; - - /* INPUT: from the row data */ - uInt avail = ZLIB_IO_MAX; - - if (avail > input_len) - avail = (uInt)input_len; /* safe because of the check */ - - png_ptr->zstream.avail_in = avail; - input_len -= avail; - - ret = deflate(&png_ptr->zstream, input_len > 0 ? Z_NO_FLUSH : flush); - - /* Include as-yet unconsumed input */ - input_len += png_ptr->zstream.avail_in; - png_ptr->zstream.avail_in = 0; - - /* OUTPUT: write complete IDAT chunks when avail_out drops to zero. Note - * that these two zstream fields are preserved across the calls, therefore - * there is no need to set these up on entry to the loop. - */ - if (png_ptr->zstream.avail_out == 0) - { - png_bytep data = png_ptr->zbuffer_list->output; - uInt size = png_ptr->zbuffer_size; - - /* Write an IDAT containing the data then reset the buffer. The - * first IDAT may need deflate header optimization. - */ -#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED - if ((png_ptr->mode & PNG_HAVE_IDAT) == 0 && - png_ptr->compression_type == PNG_COMPRESSION_TYPE_BASE) - optimize_cmf(data, png_image_size(png_ptr)); -#endif - - if (size > 0) - png_write_complete_chunk(png_ptr, png_IDAT, data, size); - png_ptr->mode |= PNG_HAVE_IDAT; - - png_ptr->zstream.next_out = data; - png_ptr->zstream.avail_out = size; - - /* For SYNC_FLUSH or FINISH it is essential to keep calling zlib with - * the same flush parameter until it has finished output, for NO_FLUSH - * it doesn't matter. - */ - if (ret == Z_OK && flush != Z_NO_FLUSH) - continue; - } - - /* The order of these checks doesn't matter much; it just affects which - * possible error might be detected if multiple things go wrong at once. - */ - if (ret == Z_OK) /* most likely return code! */ - { - /* If all the input has been consumed then just return. If Z_FINISH - * was used as the flush parameter something has gone wrong if we get - * here. - */ - if (input_len == 0) - { - if (flush == Z_FINISH) - png_error(png_ptr, "Z_OK on Z_FINISH with output space"); - - return; - } - } - - else if (ret == Z_STREAM_END && flush == Z_FINISH) - { - /* This is the end of the IDAT data; any pending output must be - * flushed. For small PNG files we may still be at the beginning. - */ - png_bytep data = png_ptr->zbuffer_list->output; - uInt size = png_ptr->zbuffer_size - png_ptr->zstream.avail_out; - -#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED - if ((png_ptr->mode & PNG_HAVE_IDAT) == 0 && - png_ptr->compression_type == PNG_COMPRESSION_TYPE_BASE) - optimize_cmf(data, png_image_size(png_ptr)); -#endif - - if (size > 0) - png_write_complete_chunk(png_ptr, png_IDAT, data, size); - png_ptr->zstream.avail_out = 0; - png_ptr->zstream.next_out = NULL; - png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT; - - png_ptr->zowner = 0; /* Release the stream */ - return; - } - - else - { - /* This is an error condition. */ - png_zstream_error(png_ptr, ret); - png_error(png_ptr, png_ptr->zstream.msg); - } - } -} - -/* Write an IEND chunk */ -void /* PRIVATE */ -png_write_IEND(png_structrp png_ptr) -{ - png_debug(1, "in png_write_IEND"); - - png_write_complete_chunk(png_ptr, png_IEND, NULL, 0); - png_ptr->mode |= PNG_HAVE_IEND; -} - -#ifdef PNG_WRITE_gAMA_SUPPORTED -/* Write a gAMA chunk */ -void /* PRIVATE */ -png_write_gAMA_fixed(png_structrp png_ptr, png_fixed_point file_gamma) -{ - png_byte buf[4]; - - png_debug(1, "in png_write_gAMA"); - - /* file_gamma is saved in 1/100,000ths */ - png_save_uint_32(buf, (png_uint_32)file_gamma); - png_write_complete_chunk(png_ptr, png_gAMA, buf, 4); -} -#endif - -#ifdef PNG_WRITE_sRGB_SUPPORTED -/* Write a sRGB chunk */ -void /* PRIVATE */ -png_write_sRGB(png_structrp png_ptr, int srgb_intent) -{ - png_byte buf[1]; - - png_debug(1, "in png_write_sRGB"); - - if (srgb_intent >= PNG_sRGB_INTENT_LAST) - png_warning(png_ptr, - "Invalid sRGB rendering intent specified"); - - buf[0]=(png_byte)srgb_intent; - png_write_complete_chunk(png_ptr, png_sRGB, buf, 1); -} -#endif - -#ifdef PNG_WRITE_iCCP_SUPPORTED -/* Write an iCCP chunk */ -void /* PRIVATE */ -png_write_iCCP(png_structrp png_ptr, png_const_charp name, - png_const_bytep profile) -{ - png_uint_32 name_len; - png_uint_32 profile_len; - png_byte new_name[81]; /* 1 byte for the compression byte */ - compression_state comp; - png_uint_32 temp; - - png_debug(1, "in png_write_iCCP"); - - /* These are all internal problems: the profile should have been checked - * before when it was stored. - */ - if (profile == NULL) - png_error(png_ptr, "No profile for iCCP chunk"); /* internal error */ - - profile_len = png_get_uint_32(profile); - - if (profile_len < 132) - png_error(png_ptr, "ICC profile too short"); - - temp = (png_uint_32) (*(profile+8)); - if (temp > 3 && (profile_len & 0x03)) - png_error(png_ptr, "ICC profile length invalid (not a multiple of 4)"); - - { - png_uint_32 embedded_profile_len = png_get_uint_32(profile); - - if (profile_len != embedded_profile_len) - png_error(png_ptr, "Profile length does not match profile"); - } - - name_len = png_check_keyword(png_ptr, name, new_name); - - if (name_len == 0) - png_error(png_ptr, "iCCP: invalid keyword"); - - new_name[++name_len] = PNG_COMPRESSION_TYPE_BASE; - - /* Make sure we include the NULL after the name and the compression type */ - ++name_len; - - png_text_compress_init(&comp, profile, profile_len); - - /* Allow for keyword terminator and compression byte */ - if (png_text_compress(png_ptr, png_iCCP, &comp, name_len) != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg); - - png_write_chunk_header(png_ptr, png_iCCP, name_len + comp.output_len); - - png_write_chunk_data(png_ptr, new_name, name_len); - - png_write_compressed_data_out(png_ptr, &comp); - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_sPLT_SUPPORTED -/* Write a sPLT chunk */ -void /* PRIVATE */ -png_write_sPLT(png_structrp png_ptr, png_const_sPLT_tp spalette) -{ - png_uint_32 name_len; - png_byte new_name[80]; - png_byte entrybuf[10]; - size_t entry_size = (spalette->depth == 8 ? 6 : 10); - size_t palette_size = entry_size * (size_t)spalette->nentries; - png_sPLT_entryp ep; -#ifndef PNG_POINTER_INDEXING_SUPPORTED - int i; -#endif - - png_debug(1, "in png_write_sPLT"); - - name_len = png_check_keyword(png_ptr, spalette->name, new_name); - - if (name_len == 0) - png_error(png_ptr, "sPLT: invalid keyword"); - - /* Make sure we include the NULL after the name */ - png_write_chunk_header(png_ptr, png_sPLT, - (png_uint_32)(name_len + 2 + palette_size)); - - png_write_chunk_data(png_ptr, (png_bytep)new_name, (size_t)(name_len + 1)); - - png_write_chunk_data(png_ptr, &spalette->depth, 1); - - /* Loop through each palette entry, writing appropriately */ -#ifdef PNG_POINTER_INDEXING_SUPPORTED - for (ep = spalette->entries; epentries + spalette->nentries; ep++) - { - if (spalette->depth == 8) - { - entrybuf[0] = (png_byte)ep->red; - entrybuf[1] = (png_byte)ep->green; - entrybuf[2] = (png_byte)ep->blue; - entrybuf[3] = (png_byte)ep->alpha; - png_save_uint_16(entrybuf + 4, ep->frequency); - } - - else - { - png_save_uint_16(entrybuf + 0, ep->red); - png_save_uint_16(entrybuf + 2, ep->green); - png_save_uint_16(entrybuf + 4, ep->blue); - png_save_uint_16(entrybuf + 6, ep->alpha); - png_save_uint_16(entrybuf + 8, ep->frequency); - } - - png_write_chunk_data(png_ptr, entrybuf, entry_size); - } -#else - ep=spalette->entries; - for (i = 0; i>spalette->nentries; i++) - { - if (spalette->depth == 8) - { - entrybuf[0] = (png_byte)ep[i].red; - entrybuf[1] = (png_byte)ep[i].green; - entrybuf[2] = (png_byte)ep[i].blue; - entrybuf[3] = (png_byte)ep[i].alpha; - png_save_uint_16(entrybuf + 4, ep[i].frequency); - } - - else - { - png_save_uint_16(entrybuf + 0, ep[i].red); - png_save_uint_16(entrybuf + 2, ep[i].green); - png_save_uint_16(entrybuf + 4, ep[i].blue); - png_save_uint_16(entrybuf + 6, ep[i].alpha); - png_save_uint_16(entrybuf + 8, ep[i].frequency); - } - - png_write_chunk_data(png_ptr, entrybuf, entry_size); - } -#endif - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_sBIT_SUPPORTED -/* Write the sBIT chunk */ -void /* PRIVATE */ -png_write_sBIT(png_structrp png_ptr, png_const_color_8p sbit, int color_type) -{ - png_byte buf[4]; - size_t size; - - png_debug(1, "in png_write_sBIT"); - - /* Make sure we don't depend upon the order of PNG_COLOR_8 */ - if ((color_type & PNG_COLOR_MASK_COLOR) != 0) - { - png_byte maxbits; - - maxbits = (png_byte)(color_type==PNG_COLOR_TYPE_PALETTE ? 8 : - png_ptr->usr_bit_depth); - - if (sbit->red == 0 || sbit->red > maxbits || - sbit->green == 0 || sbit->green > maxbits || - sbit->blue == 0 || sbit->blue > maxbits) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - - buf[0] = sbit->red; - buf[1] = sbit->green; - buf[2] = sbit->blue; - size = 3; - } - - else - { - if (sbit->gray == 0 || sbit->gray > png_ptr->usr_bit_depth) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - - buf[0] = sbit->gray; - size = 1; - } - - if ((color_type & PNG_COLOR_MASK_ALPHA) != 0) - { - if (sbit->alpha == 0 || sbit->alpha > png_ptr->usr_bit_depth) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - - buf[size++] = sbit->alpha; - } - - png_write_complete_chunk(png_ptr, png_sBIT, buf, size); -} -#endif - -#ifdef PNG_WRITE_cHRM_SUPPORTED -/* Write the cHRM chunk */ -void /* PRIVATE */ -png_write_cHRM_fixed(png_structrp png_ptr, const png_xy *xy) -{ - png_byte buf[32]; - - png_debug(1, "in png_write_cHRM"); - - /* Each value is saved in 1/100,000ths */ - png_save_int_32(buf, xy->whitex); - png_save_int_32(buf + 4, xy->whitey); - - png_save_int_32(buf + 8, xy->redx); - png_save_int_32(buf + 12, xy->redy); - - png_save_int_32(buf + 16, xy->greenx); - png_save_int_32(buf + 20, xy->greeny); - - png_save_int_32(buf + 24, xy->bluex); - png_save_int_32(buf + 28, xy->bluey); - - png_write_complete_chunk(png_ptr, png_cHRM, buf, 32); -} -#endif - -#ifdef PNG_WRITE_tRNS_SUPPORTED -/* Write the tRNS chunk */ -void /* PRIVATE */ -png_write_tRNS(png_structrp png_ptr, png_const_bytep trans_alpha, - png_const_color_16p tran, int num_trans, int color_type) -{ - png_byte buf[6]; - - png_debug(1, "in png_write_tRNS"); - - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - if (num_trans <= 0 || num_trans > (int)png_ptr->num_palette) - { - png_app_warning(png_ptr, - "Invalid number of transparent colors specified"); - return; - } - - /* Write the chunk out as it is */ - png_write_complete_chunk(png_ptr, png_tRNS, trans_alpha, - (size_t)num_trans); - } - - else if (color_type == PNG_COLOR_TYPE_GRAY) - { - /* One 16-bit value */ - if (tran->gray >= (1 << png_ptr->bit_depth)) - { - png_app_warning(png_ptr, - "Ignoring attempt to write tRNS chunk out-of-range for bit_depth"); - - return; - } - - png_save_uint_16(buf, tran->gray); - png_write_complete_chunk(png_ptr, png_tRNS, buf, 2); - } - - else if (color_type == PNG_COLOR_TYPE_RGB) - { - /* Three 16-bit values */ - png_save_uint_16(buf, tran->red); - png_save_uint_16(buf + 2, tran->green); - png_save_uint_16(buf + 4, tran->blue); -#ifdef PNG_WRITE_16BIT_SUPPORTED - if (png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]) != 0) -#else - if ((buf[0] | buf[2] | buf[4]) != 0) -#endif - { - png_app_warning(png_ptr, - "Ignoring attempt to write 16-bit tRNS chunk when bit_depth is 8"); - return; - } - - png_write_complete_chunk(png_ptr, png_tRNS, buf, 6); - } - - else - { - png_app_warning(png_ptr, "Can't write tRNS with an alpha channel"); - } -} -#endif - -#ifdef PNG_WRITE_bKGD_SUPPORTED -/* Write the background chunk */ -void /* PRIVATE */ -png_write_bKGD(png_structrp png_ptr, png_const_color_16p back, int color_type) -{ - png_byte buf[6]; - - png_debug(1, "in png_write_bKGD"); - - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - if ( -#ifdef PNG_MNG_FEATURES_SUPPORTED - (png_ptr->num_palette != 0 || - (png_ptr->mng_features_permitted & PNG_FLAG_MNG_EMPTY_PLTE) == 0) && -#endif - back->index >= png_ptr->num_palette) - { - png_warning(png_ptr, "Invalid background palette index"); - return; - } - - buf[0] = back->index; - png_write_complete_chunk(png_ptr, png_bKGD, buf, 1); - } - - else if ((color_type & PNG_COLOR_MASK_COLOR) != 0) - { - png_save_uint_16(buf, back->red); - png_save_uint_16(buf + 2, back->green); - png_save_uint_16(buf + 4, back->blue); -#ifdef PNG_WRITE_16BIT_SUPPORTED - if (png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]) != 0) -#else - if ((buf[0] | buf[2] | buf[4]) != 0) -#endif - { - png_warning(png_ptr, - "Ignoring attempt to write 16-bit bKGD chunk " - "when bit_depth is 8"); - - return; - } - - png_write_complete_chunk(png_ptr, png_bKGD, buf, 6); - } - - else - { - if (back->gray >= (1 << png_ptr->bit_depth)) - { - png_warning(png_ptr, - "Ignoring attempt to write bKGD chunk out-of-range for bit_depth"); - - return; - } - - png_save_uint_16(buf, back->gray); - png_write_complete_chunk(png_ptr, png_bKGD, buf, 2); - } -} -#endif - -#ifdef PNG_WRITE_eXIf_SUPPORTED -/* Write the Exif data */ -void /* PRIVATE */ -png_write_eXIf(png_structrp png_ptr, png_bytep exif, int num_exif) -{ - int i; - png_byte buf[1]; - - png_debug(1, "in png_write_eXIf"); - - png_write_chunk_header(png_ptr, png_eXIf, (png_uint_32)(num_exif)); - - for (i = 0; i < num_exif; i++) - { - buf[0] = exif[i]; - png_write_chunk_data(png_ptr, buf, 1); - } - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_hIST_SUPPORTED -/* Write the histogram */ -void /* PRIVATE */ -png_write_hIST(png_structrp png_ptr, png_const_uint_16p hist, int num_hist) -{ - int i; - png_byte buf[3]; - - png_debug(1, "in png_write_hIST"); - - if (num_hist > (int)png_ptr->num_palette) - { - png_debug2(3, "num_hist = %d, num_palette = %d", num_hist, - png_ptr->num_palette); - - png_warning(png_ptr, "Invalid number of histogram entries specified"); - return; - } - - png_write_chunk_header(png_ptr, png_hIST, (png_uint_32)(num_hist * 2)); - - for (i = 0; i < num_hist; i++) - { - png_save_uint_16(buf, hist[i]); - png_write_chunk_data(png_ptr, buf, 2); - } - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_tEXt_SUPPORTED -/* Write a tEXt chunk */ -void /* PRIVATE */ -png_write_tEXt(png_structrp png_ptr, png_const_charp key, png_const_charp text, - size_t text_len) -{ - png_uint_32 key_len; - png_byte new_key[80]; - - png_debug(1, "in png_write_tEXt"); - - key_len = png_check_keyword(png_ptr, key, new_key); - - if (key_len == 0) - png_error(png_ptr, "tEXt: invalid keyword"); - - if (text == NULL || *text == '\0') - text_len = 0; - - else - text_len = strlen(text); - - if (text_len > PNG_UINT_31_MAX - (key_len+1)) - png_error(png_ptr, "tEXt: text too long"); - - /* Make sure we include the 0 after the key */ - png_write_chunk_header(png_ptr, png_tEXt, - (png_uint_32)/*checked above*/(key_len + text_len + 1)); - /* - * We leave it to the application to meet PNG-1.0 requirements on the - * contents of the text. PNG-1.0 through PNG-1.2 discourage the use of - * any non-Latin-1 characters except for NEWLINE. ISO PNG will forbid them. - * The NUL character is forbidden by PNG-1.0 through PNG-1.2 and ISO PNG. - */ - png_write_chunk_data(png_ptr, new_key, key_len + 1); - - if (text_len != 0) - png_write_chunk_data(png_ptr, (png_const_bytep)text, text_len); - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_zTXt_SUPPORTED -/* Write a compressed text chunk */ -void /* PRIVATE */ -png_write_zTXt(png_structrp png_ptr, png_const_charp key, png_const_charp text, - int compression) -{ - png_uint_32 key_len; - png_byte new_key[81]; - compression_state comp; - - png_debug(1, "in png_write_zTXt"); - - if (compression == PNG_TEXT_COMPRESSION_NONE) - { - png_write_tEXt(png_ptr, key, text, 0); - return; - } - - if (compression != PNG_TEXT_COMPRESSION_zTXt) - png_error(png_ptr, "zTXt: invalid compression type"); - - key_len = png_check_keyword(png_ptr, key, new_key); - - if (key_len == 0) - png_error(png_ptr, "zTXt: invalid keyword"); - - /* Add the compression method and 1 for the keyword separator. */ - new_key[++key_len] = PNG_COMPRESSION_TYPE_BASE; - ++key_len; - - /* Compute the compressed data; do it now for the length */ - png_text_compress_init(&comp, (png_const_bytep)text, - text == NULL ? 0 : strlen(text)); - - if (png_text_compress(png_ptr, png_zTXt, &comp, key_len) != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg); - - /* Write start of chunk */ - png_write_chunk_header(png_ptr, png_zTXt, key_len + comp.output_len); - - /* Write key */ - png_write_chunk_data(png_ptr, new_key, key_len); - - /* Write the compressed data */ - png_write_compressed_data_out(png_ptr, &comp); - - /* Close the chunk */ - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_iTXt_SUPPORTED -/* Write an iTXt chunk */ -void /* PRIVATE */ -png_write_iTXt(png_structrp png_ptr, int compression, png_const_charp key, - png_const_charp lang, png_const_charp lang_key, png_const_charp text) -{ - png_uint_32 key_len, prefix_len; - size_t lang_len, lang_key_len; - png_byte new_key[82]; - compression_state comp; - - png_debug(1, "in png_write_iTXt"); - - key_len = png_check_keyword(png_ptr, key, new_key); - - if (key_len == 0) - png_error(png_ptr, "iTXt: invalid keyword"); - - /* Set the compression flag */ - switch (compression) - { - case PNG_ITXT_COMPRESSION_NONE: - case PNG_TEXT_COMPRESSION_NONE: - compression = new_key[++key_len] = 0; /* no compression */ - break; - - case PNG_TEXT_COMPRESSION_zTXt: - case PNG_ITXT_COMPRESSION_zTXt: - compression = new_key[++key_len] = 1; /* compressed */ - break; - - default: - png_error(png_ptr, "iTXt: invalid compression"); - } - - new_key[++key_len] = PNG_COMPRESSION_TYPE_BASE; - ++key_len; /* for the keywod separator */ - - /* We leave it to the application to meet PNG-1.0 requirements on the - * contents of the text. PNG-1.0 through PNG-1.2 discourage the use of - * any non-Latin-1 characters except for NEWLINE. ISO PNG, however, - * specifies that the text is UTF-8 and this really doesn't require any - * checking. - * - * The NUL character is forbidden by PNG-1.0 through PNG-1.2 and ISO PNG. - * - * TODO: validate the language tag correctly (see the spec.) - */ - if (lang == NULL) lang = ""; /* empty language is valid */ - lang_len = strlen(lang)+1; - if (lang_key == NULL) lang_key = ""; /* may be empty */ - lang_key_len = strlen(lang_key)+1; - if (text == NULL) text = ""; /* may be empty */ - - prefix_len = key_len; - if (lang_len > PNG_UINT_31_MAX-prefix_len) - prefix_len = PNG_UINT_31_MAX; - else - prefix_len = (png_uint_32)(prefix_len + lang_len); - - if (lang_key_len > PNG_UINT_31_MAX-prefix_len) - prefix_len = PNG_UINT_31_MAX; - else - prefix_len = (png_uint_32)(prefix_len + lang_key_len); - - png_text_compress_init(&comp, (png_const_bytep)text, strlen(text)); - - if (compression != 0) - { - if (png_text_compress(png_ptr, png_iTXt, &comp, prefix_len) != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg); - } - - else - { - if (comp.input_len > PNG_UINT_31_MAX-prefix_len) - png_error(png_ptr, "iTXt: uncompressed text too long"); - - /* So the string will fit in a chunk: */ - comp.output_len = (png_uint_32)/*SAFE*/comp.input_len; - } - - png_write_chunk_header(png_ptr, png_iTXt, comp.output_len + prefix_len); - - png_write_chunk_data(png_ptr, new_key, key_len); - - png_write_chunk_data(png_ptr, (png_const_bytep)lang, lang_len); - - png_write_chunk_data(png_ptr, (png_const_bytep)lang_key, lang_key_len); - - if (compression != 0) - png_write_compressed_data_out(png_ptr, &comp); - - else - png_write_chunk_data(png_ptr, (png_const_bytep)text, comp.output_len); - - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_oFFs_SUPPORTED -/* Write the oFFs chunk */ -void /* PRIVATE */ -png_write_oFFs(png_structrp png_ptr, png_int_32 x_offset, png_int_32 y_offset, - int unit_type) -{ - png_byte buf[9]; - - png_debug(1, "in png_write_oFFs"); - - if (unit_type >= PNG_OFFSET_LAST) - png_warning(png_ptr, "Unrecognized unit type for oFFs chunk"); - - png_save_int_32(buf, x_offset); - png_save_int_32(buf + 4, y_offset); - buf[8] = (png_byte)unit_type; - - png_write_complete_chunk(png_ptr, png_oFFs, buf, 9); -} -#endif -#ifdef PNG_WRITE_pCAL_SUPPORTED -/* Write the pCAL chunk (described in the PNG extensions document) */ -void /* PRIVATE */ -png_write_pCAL(png_structrp png_ptr, png_charp purpose, png_int_32 X0, - png_int_32 X1, int type, int nparams, png_const_charp units, - png_charpp params) -{ - png_uint_32 purpose_len; - size_t units_len, total_len; - png_size_tp params_len; - png_byte buf[10]; - png_byte new_purpose[80]; - int i; - - png_debug1(1, "in png_write_pCAL (%d parameters)", nparams); - - if (type >= PNG_EQUATION_LAST) - png_error(png_ptr, "Unrecognized equation type for pCAL chunk"); - - purpose_len = png_check_keyword(png_ptr, purpose, new_purpose); - - if (purpose_len == 0) - png_error(png_ptr, "pCAL: invalid keyword"); - - ++purpose_len; /* terminator */ - - png_debug1(3, "pCAL purpose length = %d", (int)purpose_len); - units_len = strlen(units) + (nparams == 0 ? 0 : 1); - png_debug1(3, "pCAL units length = %d", (int)units_len); - total_len = purpose_len + units_len + 10; - - params_len = (png_size_tp)png_malloc(png_ptr, - (png_alloc_size_t)((png_alloc_size_t)nparams * (sizeof (size_t)))); - - /* Find the length of each parameter, making sure we don't count the - * null terminator for the last parameter. - */ - for (i = 0; i < nparams; i++) - { - params_len[i] = strlen(params[i]) + (i == nparams - 1 ? 0 : 1); - png_debug2(3, "pCAL parameter %d length = %lu", i, - (unsigned long)params_len[i]); - total_len += params_len[i]; - } - - png_debug1(3, "pCAL total length = %d", (int)total_len); - png_write_chunk_header(png_ptr, png_pCAL, (png_uint_32)total_len); - png_write_chunk_data(png_ptr, new_purpose, purpose_len); - png_save_int_32(buf, X0); - png_save_int_32(buf + 4, X1); - buf[8] = (png_byte)type; - buf[9] = (png_byte)nparams; - png_write_chunk_data(png_ptr, buf, 10); - png_write_chunk_data(png_ptr, (png_const_bytep)units, (size_t)units_len); - - for (i = 0; i < nparams; i++) - { - png_write_chunk_data(png_ptr, (png_const_bytep)params[i], params_len[i]); - } - - png_free(png_ptr, params_len); - png_write_chunk_end(png_ptr); -} -#endif - -#ifdef PNG_WRITE_sCAL_SUPPORTED -/* Write the sCAL chunk */ -void /* PRIVATE */ -png_write_sCAL_s(png_structrp png_ptr, int unit, png_const_charp width, - png_const_charp height) -{ - png_byte buf[64]; - size_t wlen, hlen, total_len; - - png_debug(1, "in png_write_sCAL_s"); - - wlen = strlen(width); - hlen = strlen(height); - total_len = wlen + hlen + 2; - - if (total_len > 64) - { - png_warning(png_ptr, "Can't write sCAL (buffer too small)"); - return; - } - - buf[0] = (png_byte)unit; - memcpy(buf + 1, width, wlen + 1); /* Append the '\0' here */ - memcpy(buf + wlen + 2, height, hlen); /* Do NOT append the '\0' here */ - - png_debug1(3, "sCAL total length = %u", (unsigned int)total_len); - png_write_complete_chunk(png_ptr, png_sCAL, buf, total_len); -} -#endif - -#ifdef PNG_WRITE_pHYs_SUPPORTED -/* Write the pHYs chunk */ -void /* PRIVATE */ -png_write_pHYs(png_structrp png_ptr, png_uint_32 x_pixels_per_unit, - png_uint_32 y_pixels_per_unit, - int unit_type) -{ - png_byte buf[9]; - - png_debug(1, "in png_write_pHYs"); - - if (unit_type >= PNG_RESOLUTION_LAST) - png_warning(png_ptr, "Unrecognized unit type for pHYs chunk"); - - png_save_uint_32(buf, x_pixels_per_unit); - png_save_uint_32(buf + 4, y_pixels_per_unit); - buf[8] = (png_byte)unit_type; - - png_write_complete_chunk(png_ptr, png_pHYs, buf, 9); -} -#endif - -#ifdef PNG_WRITE_tIME_SUPPORTED -/* Write the tIME chunk. Use either png_convert_from_struct_tm() - * or png_convert_from_time_t(), or fill in the structure yourself. - */ -void /* PRIVATE */ -png_write_tIME(png_structrp png_ptr, png_const_timep mod_time) -{ - png_byte buf[7]; - - png_debug(1, "in png_write_tIME"); - - if (mod_time->month > 12 || mod_time->month < 1 || - mod_time->day > 31 || mod_time->day < 1 || - mod_time->hour > 23 || mod_time->second > 60) - { - png_warning(png_ptr, "Invalid time specified for tIME chunk"); - return; - } - - png_save_uint_16(buf, mod_time->year); - buf[2] = mod_time->month; - buf[3] = mod_time->day; - buf[4] = mod_time->hour; - buf[5] = mod_time->minute; - buf[6] = mod_time->second; - - png_write_complete_chunk(png_ptr, png_tIME, buf, 7); -} -#endif - -/* Initializes the row writing capability of libpng */ -void /* PRIVATE */ -png_write_start_row(png_structrp png_ptr) -{ -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - /* Start of interlace block in the y direction */ - static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; - - /* Offset to next interlace block in the y direction */ - static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; -#endif - - png_alloc_size_t buf_size; - int usr_pixel_depth; - -#ifdef PNG_WRITE_FILTER_SUPPORTED - png_byte filters; -#endif - - png_debug(1, "in png_write_start_row"); - - usr_pixel_depth = png_ptr->usr_channels * png_ptr->usr_bit_depth; - buf_size = PNG_ROWBYTES(usr_pixel_depth, png_ptr->width) + 1; - - /* 1.5.6: added to allow checking in the row write code. */ - png_ptr->transformed_pixel_depth = png_ptr->pixel_depth; - png_ptr->maximum_pixel_depth = (png_byte)usr_pixel_depth; - - /* Set up row buffer */ - png_ptr->row_buf = png_voidcast(png_bytep, png_malloc(png_ptr, buf_size)); - - png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE; - -#ifdef PNG_WRITE_FILTER_SUPPORTED - filters = png_ptr->do_filter; - - if (png_ptr->height == 1) - filters &= 0xff & ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); - - if (png_ptr->width == 1) - filters &= 0xff & ~(PNG_FILTER_SUB|PNG_FILTER_AVG|PNG_FILTER_PAETH); - - if (filters == 0) - filters = PNG_FILTER_NONE; - - png_ptr->do_filter = filters; - - if (((filters & (PNG_FILTER_SUB | PNG_FILTER_UP | PNG_FILTER_AVG | - PNG_FILTER_PAETH)) != 0) && png_ptr->try_row == NULL) - { - int num_filters = 0; - - png_ptr->try_row = png_voidcast(png_bytep, png_malloc(png_ptr, buf_size)); - - if (filters & PNG_FILTER_SUB) - num_filters++; - - if (filters & PNG_FILTER_UP) - num_filters++; - - if (filters & PNG_FILTER_AVG) - num_filters++; - - if (filters & PNG_FILTER_PAETH) - num_filters++; - - if (num_filters > 1) - png_ptr->tst_row = png_voidcast(png_bytep, png_malloc(png_ptr, - buf_size)); - } - - /* We only need to keep the previous row if we are using one of the following - * filters. - */ - if ((filters & (PNG_FILTER_AVG | PNG_FILTER_UP | PNG_FILTER_PAETH)) != 0) - png_ptr->prev_row = png_voidcast(png_bytep, - png_calloc(png_ptr, buf_size)); -#endif /* WRITE_FILTER */ - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* If interlaced, we need to set up width and height of pass */ - if (png_ptr->interlaced != 0) - { - if ((png_ptr->transformations & PNG_INTERLACE) == 0) - { - png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - - png_pass_ystart[0]) / png_pass_yinc[0]; - - png_ptr->usr_width = (png_ptr->width + png_pass_inc[0] - 1 - - png_pass_start[0]) / png_pass_inc[0]; - } - - else - { - png_ptr->num_rows = png_ptr->height; - png_ptr->usr_width = png_ptr->width; - } - } - - else -#endif - { - png_ptr->num_rows = png_ptr->height; - png_ptr->usr_width = png_ptr->width; - } -} - -/* Internal use only. Called when finished processing a row of data. */ -void /* PRIVATE */ -png_write_finish_row(png_structrp png_ptr) -{ -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - /* Start of interlace block in the y direction */ - static const png_byte png_pass_ystart[7] = {0, 0, 4, 0, 2, 0, 1}; - - /* Offset to next interlace block in the y direction */ - static const png_byte png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; -#endif - - png_debug(1, "in png_write_finish_row"); - - /* Next row */ - png_ptr->row_number++; - - /* See if we are done */ - if (png_ptr->row_number < png_ptr->num_rows) - return; - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* If interlaced, go to next pass */ - if (png_ptr->interlaced != 0) - { - png_ptr->row_number = 0; - if ((png_ptr->transformations & PNG_INTERLACE) != 0) - { - png_ptr->pass++; - } - - else - { - /* Loop until we find a non-zero width or height pass */ - do - { - png_ptr->pass++; - - if (png_ptr->pass >= 7) - break; - - png_ptr->usr_width = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - - if ((png_ptr->transformations & PNG_INTERLACE) != 0) - break; - - } while (png_ptr->usr_width == 0 || png_ptr->num_rows == 0); - - } - - /* Reset the row above the image for the next pass */ - if (png_ptr->pass < 7) - { - if (png_ptr->prev_row != NULL) - memset(png_ptr->prev_row, 0, - PNG_ROWBYTES(png_ptr->usr_channels * - png_ptr->usr_bit_depth, png_ptr->width) + 1); - - return; - } - } -#endif - - /* If we get here, we've just written the last row, so we need - to flush the compressor */ - png_compress_IDAT(png_ptr, NULL, 0, Z_FINISH); -} - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED -/* Pick out the correct pixels for the interlace pass. - * The basic idea here is to go through the row with a source - * pointer and a destination pointer (sp and dp), and copy the - * correct pixels for the pass. As the row gets compacted, - * sp will always be >= dp, so we should never overwrite anything. - * See the default: case for the easiest code to understand. - */ -void /* PRIVATE */ -png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) -{ - /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - - /* Start of interlace block */ - static const png_byte png_pass_start[7] = {0, 4, 0, 2, 0, 1, 0}; - - /* Offset to next interlace block */ - static const png_byte png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; - - png_debug(1, "in png_do_write_interlace"); - - /* We don't have to do anything on the last pass (6) */ - if (pass < 6) - { - /* Each pixel depth is handled separately */ - switch (row_info->pixel_depth) - { - case 1: - { - png_bytep sp; - png_bytep dp; - unsigned int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - d = 0; - shift = 7; - - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (size_t)(i >> 3); - value = (int)(*sp >> (7 - (int)(i & 0x07))) & 0x01; - d |= (value << shift); - - if (shift == 0) - { - shift = 7; - *dp++ = (png_byte)d; - d = 0; - } - - else - shift--; - - } - if (shift != 7) - *dp = (png_byte)d; - - break; - } - - case 2: - { - png_bytep sp; - png_bytep dp; - unsigned int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - shift = 6; - d = 0; - - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (size_t)(i >> 2); - value = (*sp >> ((3 - (int)(i & 0x03)) << 1)) & 0x03; - d |= (value << shift); - - if (shift == 0) - { - shift = 6; - *dp++ = (png_byte)d; - d = 0; - } - - else - shift -= 2; - } - if (shift != 6) - *dp = (png_byte)d; - - break; - } - - case 4: - { - png_bytep sp; - png_bytep dp; - unsigned int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - shift = 4; - d = 0; - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (size_t)(i >> 1); - value = (*sp >> ((1 - (int)(i & 0x01)) << 2)) & 0x0f; - d |= (value << shift); - - if (shift == 0) - { - shift = 4; - *dp++ = (png_byte)d; - d = 0; - } - - else - shift -= 4; - } - if (shift != 4) - *dp = (png_byte)d; - - break; - } - - default: - { - png_bytep sp; - png_bytep dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - size_t pixel_bytes; - - /* Start at the beginning */ - dp = row; - - /* Find out how many bytes each pixel takes up */ - pixel_bytes = (row_info->pixel_depth >> 3); - - /* Loop through the row, only looking at the pixels that matter */ - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - /* Find out where the original pixel is */ - sp = row + (size_t)i * pixel_bytes; - - /* Move the pixel */ - if (dp != sp) - memcpy(dp, sp, pixel_bytes); - - /* Next pixel */ - dp += pixel_bytes; - } - break; - } - } - /* Set new row width */ - row_info->width = (row_info->width + - png_pass_inc[pass] - 1 - - png_pass_start[pass]) / - png_pass_inc[pass]; - - row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, - row_info->width); - } -} -#endif - - -/* This filters the row, chooses which filter to use, if it has not already - * been specified by the application, and then writes the row out with the - * chosen filter. - */ -static void /* PRIVATE */ -png_write_filtered_row(png_structrp png_ptr, png_bytep filtered_row, - size_t row_bytes); - -#ifdef PNG_WRITE_FILTER_SUPPORTED -static size_t /* PRIVATE */ -png_setup_sub_row(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes, size_t lmins) -{ - png_bytep rp, dp, lp; - size_t i; - size_t sum = 0; - unsigned int v; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_SUB; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1; i < bpp; - i++, rp++, dp++) - { - v = *dp = *rp; -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - } - - for (lp = png_ptr->row_buf + 1; i < row_bytes; - i++, rp++, lp++, dp++) - { - v = *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff); -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - - return (sum); -} - -static void /* PRIVATE */ -png_setup_sub_row_only(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes) -{ - png_bytep rp, dp, lp; - size_t i; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_SUB; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1; i < bpp; - i++, rp++, dp++) - { - *dp = *rp; - } - - for (lp = png_ptr->row_buf + 1; i < row_bytes; - i++, rp++, lp++, dp++) - { - *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff); - } -} - -static size_t /* PRIVATE */ -png_setup_up_row(png_structrp png_ptr, size_t row_bytes, size_t lmins) -{ - png_bytep rp, dp, pp; - size_t i; - size_t sum = 0; - unsigned int v; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_UP; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < row_bytes; - i++, rp++, pp++, dp++) - { - v = *dp = (png_byte)(((int)*rp - (int)*pp) & 0xff); -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - - return (sum); -} -static void /* PRIVATE */ -png_setup_up_row_only(png_structrp png_ptr, size_t row_bytes) -{ - png_bytep rp, dp, pp; - size_t i; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_UP; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < row_bytes; - i++, rp++, pp++, dp++) - { - *dp = (png_byte)(((int)*rp - (int)*pp) & 0xff); - } -} - -static size_t /* PRIVATE */ -png_setup_avg_row(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes, size_t lmins) -{ - png_bytep rp, dp, pp, lp; - png_uint_32 i; - size_t sum = 0; - unsigned int v; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_AVG; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff); - -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - } - - for (lp = png_ptr->row_buf + 1; i < row_bytes; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) - & 0xff); - -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - - return (sum); -} -static void /* PRIVATE */ -png_setup_avg_row_only(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes) -{ - png_bytep rp, dp, pp, lp; - png_uint_32 i; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_AVG; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff); - } - - for (lp = png_ptr->row_buf + 1; i < row_bytes; i++) - { - *dp++ = (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) - & 0xff); - } -} - -static size_t /* PRIVATE */ -png_setup_paeth_row(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes, size_t lmins) -{ - png_bytep rp, dp, pp, cp, lp; - size_t i; - size_t sum = 0; - unsigned int v; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_PAETH; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); - -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - } - - for (lp = png_ptr->row_buf + 1, cp = png_ptr->prev_row + 1; i < row_bytes; - i++) - { - int a, b, c, pa, pb, pc, p; - - b = *pp++; - c = *cp++; - a = *lp++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; - - v = *dp++ = (png_byte)(((int)*rp++ - p) & 0xff); - -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - - return (sum); -} -static void /* PRIVATE */ -png_setup_paeth_row_only(png_structrp png_ptr, png_uint_32 bpp, - size_t row_bytes) -{ - png_bytep rp, dp, pp, cp, lp; - size_t i; - - png_ptr->try_row[0] = PNG_FILTER_VALUE_PAETH; - - for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, - pp = png_ptr->prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); - } - - for (lp = png_ptr->row_buf + 1, cp = png_ptr->prev_row + 1; i < row_bytes; - i++) - { - int a, b, c, pa, pb, pc, p; - - b = *pp++; - c = *cp++; - a = *lp++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; - - *dp++ = (png_byte)(((int)*rp++ - p) & 0xff); - } -} -#endif /* WRITE_FILTER */ - -void /* PRIVATE */ -png_write_find_filter(png_structrp png_ptr, png_row_infop row_info) -{ -#ifndef PNG_WRITE_FILTER_SUPPORTED - png_write_filtered_row(png_ptr, png_ptr->row_buf, row_info->rowbytes+1); -#else - unsigned int filter_to_do = png_ptr->do_filter; - png_bytep row_buf; - png_bytep best_row; - png_uint_32 bpp; - size_t mins; - size_t row_bytes = row_info->rowbytes; - - png_debug(1, "in png_write_find_filter"); - - /* Find out how many bytes offset each pixel is */ - bpp = (row_info->pixel_depth + 7) >> 3; - - row_buf = png_ptr->row_buf; - mins = PNG_SIZE_MAX - 256/* so we can detect potential overflow of the - running sum */; - - /* The prediction method we use is to find which method provides the - * smallest value when summing the absolute values of the distances - * from zero, using anything >= 128 as negative numbers. This is known - * as the "minimum sum of absolute differences" heuristic. Other - * heuristics are the "weighted minimum sum of absolute differences" - * (experimental and can in theory improve compression), and the "zlib - * predictive" method (not implemented yet), which does test compressions - * of lines using different filter methods, and then chooses the - * (series of) filter(s) that give minimum compressed data size (VERY - * computationally expensive). - * - * GRR 980525: consider also - * - * (1) minimum sum of absolute differences from running average (i.e., - * keep running sum of non-absolute differences & count of bytes) - * [track dispersion, too? restart average if dispersion too large?] - * - * (1b) minimum sum of absolute differences from sliding average, probably - * with window size <= deflate window (usually 32K) - * - * (2) minimum sum of squared differences from zero or running average - * (i.e., ~ root-mean-square approach) - */ - - - /* We don't need to test the 'no filter' case if this is the only filter - * that has been chosen, as it doesn't actually do anything to the data. - */ - best_row = png_ptr->row_buf; - - if (PNG_SIZE_MAX/128 <= row_bytes) - { - /* Overflow can occur in the calculation, just select the lowest set - * filter. - */ - filter_to_do &= 0U-filter_to_do; - } - else if ((filter_to_do & PNG_FILTER_NONE) != 0 && - filter_to_do != PNG_FILTER_NONE) - { - /* Overflow not possible and multiple filters in the list, including the - * 'none' filter. - */ - png_bytep rp; - size_t sum = 0; - size_t i; - unsigned int v; - - { - for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++) - { - v = *rp; -#ifdef PNG_USE_ABS - sum += 128 - abs((int)v - 128); -#else - sum += (v < 128) ? v : 256 - v; -#endif - } - } - - mins = sum; - } - - /* Sub filter */ - if (filter_to_do == PNG_FILTER_SUB) - /* It's the only filter so no testing is needed */ - { - png_setup_sub_row_only(png_ptr, bpp, row_bytes); - best_row = png_ptr->try_row; - } - - else if ((filter_to_do & PNG_FILTER_SUB) != 0) - { - size_t sum; - size_t lmins = mins; - - sum = png_setup_sub_row(png_ptr, bpp, row_bytes, lmins); - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->try_row; - if (png_ptr->tst_row != NULL) - { - png_ptr->try_row = png_ptr->tst_row; - png_ptr->tst_row = best_row; - } - } - } - - /* Up filter */ - if (filter_to_do == PNG_FILTER_UP) - { - png_setup_up_row_only(png_ptr, row_bytes); - best_row = png_ptr->try_row; - } - - else if ((filter_to_do & PNG_FILTER_UP) != 0) - { - size_t sum; - size_t lmins = mins; - - sum = png_setup_up_row(png_ptr, row_bytes, lmins); - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->try_row; - if (png_ptr->tst_row != NULL) - { - png_ptr->try_row = png_ptr->tst_row; - png_ptr->tst_row = best_row; - } - } - } - - /* Avg filter */ - if (filter_to_do == PNG_FILTER_AVG) - { - png_setup_avg_row_only(png_ptr, bpp, row_bytes); - best_row = png_ptr->try_row; - } - - else if ((filter_to_do & PNG_FILTER_AVG) != 0) - { - size_t sum; - size_t lmins = mins; - - sum= png_setup_avg_row(png_ptr, bpp, row_bytes, lmins); - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->try_row; - if (png_ptr->tst_row != NULL) - { - png_ptr->try_row = png_ptr->tst_row; - png_ptr->tst_row = best_row; - } - } - } - - /* Paeth filter */ - if (filter_to_do == PNG_FILTER_PAETH) - { - png_setup_paeth_row_only(png_ptr, bpp, row_bytes); - best_row = png_ptr->try_row; - } - - else if ((filter_to_do & PNG_FILTER_PAETH) != 0) - { - size_t sum; - size_t lmins = mins; - - sum = png_setup_paeth_row(png_ptr, bpp, row_bytes, lmins); - - if (sum < mins) - { - best_row = png_ptr->try_row; - if (png_ptr->tst_row != NULL) - { - png_ptr->try_row = png_ptr->tst_row; - png_ptr->tst_row = best_row; - } - } - } - - /* Do the actual writing of the filtered row data from the chosen filter. */ - png_write_filtered_row(png_ptr, best_row, row_info->rowbytes+1); - -#endif /* WRITE_FILTER */ -} - - -/* Do the actual writing of a previously filtered row. */ -static void -png_write_filtered_row(png_structrp png_ptr, png_bytep filtered_row, - size_t full_row_length/*includes filter byte*/) -{ - png_debug(1, "in png_write_filtered_row"); - - png_debug1(2, "filter = %d", filtered_row[0]); - - png_compress_IDAT(png_ptr, filtered_row, full_row_length, Z_NO_FLUSH); - -#ifdef PNG_WRITE_FILTER_SUPPORTED - /* Swap the current and previous rows */ - if (png_ptr->prev_row != NULL) - { - png_bytep tptr; - - tptr = png_ptr->prev_row; - png_ptr->prev_row = png_ptr->row_buf; - png_ptr->row_buf = tptr; - } -#endif /* WRITE_FILTER */ - - /* Finish row - updates counters and flushes zlib if last row */ - png_write_finish_row(png_ptr); - -#ifdef PNG_WRITE_FLUSH_SUPPORTED - png_ptr->flush_rows++; - - if (png_ptr->flush_dist > 0 && - png_ptr->flush_rows >= png_ptr->flush_dist) - { - png_write_flush(png_ptr); - } -#endif /* WRITE_FLUSH */ -} -#endif /* WRITE */ diff --git a/Externals/libpng/powerpc/filter_vsx_intrinsics.c b/Externals/libpng/powerpc/filter_vsx_intrinsics.c deleted file mode 100644 index 01cf8800dc..0000000000 --- a/Externals/libpng/powerpc/filter_vsx_intrinsics.c +++ /dev/null @@ -1,768 +0,0 @@ -/* filter_vsx_intrinsics.c - PowerPC optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2017 Glenn Randers-Pehrson - * Written by Vadim Barkov, 2017. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -#include -#include -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -/* This code requires -maltivec and -mvsx on the command line: */ -#if PNG_POWERPC_VSX_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */ - -#include - -#if PNG_POWERPC_VSX_OPT > 0 - -#ifndef __VSX__ -# error "This code requires VSX support (POWER7 and later). Please provide -mvsx compiler flag." -#endif - -#define vec_ld_unaligned(vec,data) vec = vec_vsx_ld(0,data) -#define vec_st_unaligned(vec,data) vec_vsx_st(vec,0,data) - - -/* Functions in this file look at most 3 pixels (a,b,c) to predict the 4th (d). - * They're positioned like this: - * prev: c b - * row: a d - * The Sub filter predicts d=a, Avg d=(a+b)/2, and Paeth predicts d to be - * whichever of a, b, or c is closest to p=a+b-c. - * ( this is taken from ../intel/filter_sse2_intrinsics.c ) - */ - -#define vsx_declare_common_vars(row_info,row,prev_row,offset) \ - png_byte i;\ - png_bytep rp = row + offset;\ - png_const_bytep pp = prev_row;\ - size_t unaligned_top = 16 - (((size_t)rp % 16));\ - size_t istop;\ - if(unaligned_top == 16)\ - unaligned_top = 0;\ - istop = row_info->rowbytes;\ - if((unaligned_top < istop))\ - istop -= unaligned_top;\ - else{\ - unaligned_top = istop;\ - istop = 0;\ - } - -void png_read_filter_row_up_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - vector unsigned char rp_vec; - vector unsigned char pp_vec; - vsx_declare_common_vars(row_info,row,prev_row,0) - - /* Altivec operations require 16-byte aligned data - * but input can be unaligned. So we calculate - * unaligned part as usual. - */ - for (i = 0; i < unaligned_top; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); - rp++; - } - - /* Using SIMD while we can */ - while( istop >= 16 ) - { - rp_vec = vec_ld(0,rp); - vec_ld_unaligned(pp_vec,pp); - - rp_vec = vec_add(rp_vec,pp_vec); - - vec_st(rp_vec,0,rp); - - pp += 16; - rp += 16; - istop -= 16; - } - - if(istop > 0) - { - /* If byte count of row is not divisible by 16 - * we will process remaining part as usual - */ - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); - rp++; - } -} - -} - -static const vector unsigned char VSX_LEFTSHIFTED1_4 = {16,16,16,16, 0, 1, 2, 3,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_LEFTSHIFTED2_4 = {16,16,16,16,16,16,16,16, 4, 5, 6, 7,16,16,16,16}; -static const vector unsigned char VSX_LEFTSHIFTED3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 8, 9,10,11}; - -static const vector unsigned char VSX_LEFTSHIFTED1_3 = {16,16,16, 0, 1, 2,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_LEFTSHIFTED2_3 = {16,16,16,16,16,16, 3, 4, 5,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_LEFTSHIFTED3_3 = {16,16,16,16,16,16,16,16,16, 6, 7, 8,16,16,16,16}; -static const vector unsigned char VSX_LEFTSHIFTED4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 9,10,11,16}; - -static const vector unsigned char VSX_NOT_SHIFTED1_4 = {16,16,16,16, 4, 5, 6, 7,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_NOT_SHIFTED2_4 = {16,16,16,16,16,16,16,16, 8, 9,10,11,16,16,16,16}; -static const vector unsigned char VSX_NOT_SHIFTED3_4 = {16,16,16,16,16,16,16,16,16,16,16,16,12,13,14,15}; - -static const vector unsigned char VSX_NOT_SHIFTED1_3 = {16,16,16, 3, 4, 5,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_NOT_SHIFTED2_3 = {16,16,16,16,16,16, 6, 7, 8,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_NOT_SHIFTED3_3 = {16,16,16,16,16,16,16,16,16, 9,10,11,16,16,16,16}; -static const vector unsigned char VSX_NOT_SHIFTED4_3 = {16,16,16,16,16,16,16,16,16,16,16,16,12,13,14,16}; - -static const vector unsigned char VSX_CHAR_ZERO = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -#ifdef __LITTLE_ENDIAN__ - -static const vector unsigned char VSX_CHAR_TO_SHORT1_4 = { 4,16, 5,16, 6,16, 7,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT2_4 = { 8,16, 9,16,10,16,11,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT3_4 = {12,16,13,16,14,16,15,16,16,16,16,16,16,16,16,16}; - -static const vector unsigned char VSX_SHORT_TO_CHAR1_4 = {16,16,16,16, 0, 2, 4, 6,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR2_4 = {16,16,16,16,16,16,16,16, 0, 2, 4, 6,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 0, 2, 4, 6}; - -static const vector unsigned char VSX_CHAR_TO_SHORT1_3 = { 3,16, 4,16, 5,16,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT2_3 = { 6,16, 7,16, 8,16,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT3_3 = { 9,16,10,16,11,16,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT4_3 = {12,16,13,16,14,16,16,16,16,16,16,16,16,16,16,16}; - -static const vector unsigned char VSX_SHORT_TO_CHAR1_3 = {16,16,16, 0, 2, 4,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR2_3 = {16,16,16,16,16,16, 0, 2, 4,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR3_3 = {16,16,16,16,16,16,16,16,16, 0, 2, 4,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 0, 2, 4,16}; - -#elif defined(__BIG_ENDIAN__) - -static const vector unsigned char VSX_CHAR_TO_SHORT1_4 = {16, 4,16, 5,16, 6,16, 7,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT2_4 = {16, 8,16, 9,16,10,16,11,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT3_4 = {16,12,16,13,16,14,16,15,16,16,16,16,16,16,16,16}; - -static const vector unsigned char VSX_SHORT_TO_CHAR1_4 = {16,16,16,16, 1, 3, 5, 7,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR2_4 = {16,16,16,16,16,16,16,16, 1, 3, 5, 7,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR3_4 = {16,16,16,16,16,16,16,16,16,16,16,16, 1, 3, 5, 7}; - -static const vector unsigned char VSX_CHAR_TO_SHORT1_3 = {16, 3,16, 4,16, 5,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT2_3 = {16, 6,16, 7,16, 8,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT3_3 = {16, 9,16,10,16,11,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_CHAR_TO_SHORT4_3 = {16,12,16,13,16,14,16,16,16,16,16,16,16,16,16,16}; - -static const vector unsigned char VSX_SHORT_TO_CHAR1_3 = {16,16,16, 1, 3, 5,16,16,16,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR2_3 = {16,16,16,16,16,16, 1, 3, 5,16,16,16,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR3_3 = {16,16,16,16,16,16,16,16,16, 1, 3, 5,16,16,16,16}; -static const vector unsigned char VSX_SHORT_TO_CHAR4_3 = {16,16,16,16,16,16,16,16,16,16,16,16, 1, 3, 5,16}; - -#endif - -#define vsx_char_to_short(vec,offset,bpp) (vector unsigned short)vec_perm((vec),VSX_CHAR_ZERO,VSX_CHAR_TO_SHORT##offset##_##bpp) -#define vsx_short_to_char(vec,offset,bpp) vec_perm(((vector unsigned char)(vec)),VSX_CHAR_ZERO,VSX_SHORT_TO_CHAR##offset##_##bpp) - -#ifdef PNG_USE_ABS -# define vsx_abs(number) abs(number) -#else -# define vsx_abs(number) (number > 0) ? (number) : -(number) -#endif - -void png_read_filter_row_sub4_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 4; - - vector unsigned char rp_vec; - vector unsigned char part_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - - PNG_UNUSED(pp) - - /* Altivec operations require 16-byte aligned data - * but input can be unaligned. So we calculate - * unaligned part as usual. - */ - for (i = 0; i < unaligned_top; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } - - /* Using SIMD while we can */ - while( istop >= 16 ) - { - for(i=0;i < bpp ; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } - rp -= bpp; - - rp_vec = vec_ld(0,rp); - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_4); - rp_vec = vec_add(rp_vec,part_vec); - - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_4); - rp_vec = vec_add(rp_vec,part_vec); - - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_4); - rp_vec = vec_add(rp_vec,part_vec); - - vec_st(rp_vec,0,rp); - - rp += 16; - istop -= 16; - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp - bpp))) & 0xff); - rp++; - } - -} - -void png_read_filter_row_sub3_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 3; - - vector unsigned char rp_vec; - vector unsigned char part_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - - PNG_UNUSED(pp) - - /* Altivec operations require 16-byte aligned data - * but input can be unaligned. So we calculate - * unaligned part as usual. - */ - for (i = 0; i < unaligned_top; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } - - /* Using SIMD while we can */ - while( istop >= 16 ) - { - for(i=0;i < bpp ; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } - rp -= bpp; - - rp_vec = vec_ld(0,rp); - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_3); - rp_vec = vec_add(rp_vec,part_vec); - - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_3); - rp_vec = vec_add(rp_vec,part_vec); - - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_3); - rp_vec = vec_add(rp_vec,part_vec); - - part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED4_3); - rp_vec = vec_add(rp_vec,part_vec); - - vec_st(rp_vec,0,rp); - rp += 15; - istop -= 16; - - /* Since 16 % bpp = 16 % 3 = 1, last element of array must - * be proceeded manually - */ - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*(rp-bpp))) & 0xff); - rp++; - } -} - -void png_read_filter_row_avg4_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 4; - - vector unsigned char rp_vec; - vector unsigned char pp_vec; - vector unsigned char pp_part_vec; - vector unsigned char rp_part_vec; - vector unsigned char avg_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - rp -= bpp; - if(istop >= bpp) - istop -= bpp; - - for (i = 0; i < bpp; i++) - { - *rp = (png_byte)(((int)(*rp) + - ((int)(*pp++) / 2 )) & 0xff); - - rp++; - } - - /* Altivec operations require 16-byte aligned data - * but input can be unaligned. So we calculate - * unaligned part as usual. - */ - for (i = 0; i < unaligned_top; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } - - /* Using SIMD while we can */ - while( istop >= 16 ) - { - for(i=0;i < bpp ; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } - rp -= bpp; - pp -= bpp; - - vec_ld_unaligned(pp_vec,pp); - rp_vec = vec_ld(0,rp); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_4); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED1_4); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_4); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED2_4); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_4); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED3_4); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - vec_st(rp_vec,0,rp); - - rp += 16; - pp += 16; - istop -= 16; - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } -} - -void png_read_filter_row_avg3_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 3; - - vector unsigned char rp_vec; - vector unsigned char pp_vec; - vector unsigned char pp_part_vec; - vector unsigned char rp_part_vec; - vector unsigned char avg_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - rp -= bpp; - if(istop >= bpp) - istop -= bpp; - - for (i = 0; i < bpp; i++) - { - *rp = (png_byte)(((int)(*rp) + - ((int)(*pp++) / 2 )) & 0xff); - - rp++; - } - - /* Altivec operations require 16-byte aligned data - * but input can be unaligned. So we calculate - * unaligned part as usual. - */ - for (i = 0; i < unaligned_top; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } - - /* Using SIMD while we can */ - while( istop >= 16 ) - { - for(i=0;i < bpp ; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } - rp -= bpp; - pp -= bpp; - - vec_ld_unaligned(pp_vec,pp); - rp_vec = vec_ld(0,rp); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED1_3); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED1_3); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED2_3); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED2_3); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED3_3); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED3_3); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - rp_part_vec = vec_perm(rp_vec,VSX_CHAR_ZERO,VSX_LEFTSHIFTED4_3); - pp_part_vec = vec_perm(pp_vec,VSX_CHAR_ZERO,VSX_NOT_SHIFTED4_3); - avg_vec = vec_avg(rp_part_vec,pp_part_vec); - avg_vec = vec_sub(avg_vec, vec_and(vec_xor(rp_part_vec,pp_part_vec),vec_splat_u8(1))); - rp_vec = vec_add(rp_vec,avg_vec); - - vec_st(rp_vec,0,rp); - - rp += 15; - pp += 15; - istop -= 16; - - /* Since 16 % bpp = 16 % 3 = 1, last element of array must - * be proceeded manually - */ - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - rp++; - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *(rp-bpp)) / 2 ) & 0xff); - - rp++; - } -} - -/* Bytewise c ? t : e. */ -#define if_then_else(c,t,e) vec_sel(e,t,c) - -#define vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) {\ - c = *(pp - bpp);\ - a = *(rp - bpp);\ - b = *pp++;\ - p = b - c;\ - pc = a - c;\ - pa = vsx_abs(p);\ - pb = vsx_abs(pc);\ - pc = vsx_abs(p + pc);\ - if (pb < pa) pa = pb, a = b;\ - if (pc < pa) a = c;\ - a += *rp;\ - *rp++ = (png_byte)a;\ - } - -void png_read_filter_row_paeth4_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 4; - - int a, b, c, pa, pb, pc, p; - vector unsigned char rp_vec; - vector unsigned char pp_vec; - vector unsigned short a_vec,b_vec,c_vec,nearest_vec; - vector signed short pa_vec,pb_vec,pc_vec,smallest_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - rp -= bpp; - if(istop >= bpp) - istop -= bpp; - - /* Process the first pixel in the row completely (this is the same as 'up' - * because there is only one candidate predictor for the first row). - */ - for(i = 0; i < bpp ; i++) - { - *rp = (png_byte)( *rp + *pp); - rp++; - pp++; - } - - for(i = 0; i < unaligned_top ; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } - - while( istop >= 16) - { - for(i = 0; i < bpp ; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } - - rp -= bpp; - pp -= bpp; - rp_vec = vec_ld(0,rp); - vec_ld_unaligned(pp_vec,pp); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_4),1,4); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED1_4),1,4); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_4),1,4); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,1,4))); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_4),2,4); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED2_4),2,4); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_4),2,4); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,2,4))); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_4),3,4); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED3_4),3,4); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_4),3,4); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,3,4))); - - vec_st(rp_vec,0,rp); - - rp += 16; - pp += 16; - istop -= 16; - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } -} - -void png_read_filter_row_paeth3_vsx(png_row_infop row_info, png_bytep row, - png_const_bytep prev_row) -{ - png_byte bpp = 3; - - int a, b, c, pa, pb, pc, p; - vector unsigned char rp_vec; - vector unsigned char pp_vec; - vector unsigned short a_vec,b_vec,c_vec,nearest_vec; - vector signed short pa_vec,pb_vec,pc_vec,smallest_vec; - - vsx_declare_common_vars(row_info,row,prev_row,bpp) - rp -= bpp; - if(istop >= bpp) - istop -= bpp; - - /* Process the first pixel in the row completely (this is the same as 'up' - * because there is only one candidate predictor for the first row). - */ - for(i = 0; i < bpp ; i++) - { - *rp = (png_byte)( *rp + *pp); - rp++; - pp++; - } - - for(i = 0; i < unaligned_top ; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } - - while( istop >= 16) - { - for(i = 0; i < bpp ; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } - - rp -= bpp; - pp -= bpp; - rp_vec = vec_ld(0,rp); - vec_ld_unaligned(pp_vec,pp); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_3),1,3); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED1_3),1,3); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED1_3),1,3); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,1,3))); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_3),2,3); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED2_3),2,3); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED2_3),2,3); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,2,3))); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_3),3,3); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED3_3),3,3); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED3_3),3,3); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,3,3))); - - a_vec = vsx_char_to_short(vec_perm(rp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED4_3),4,3); - b_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_NOT_SHIFTED4_3),4,3); - c_vec = vsx_char_to_short(vec_perm(pp_vec , VSX_CHAR_ZERO , VSX_LEFTSHIFTED4_3),4,3); - pa_vec = (vector signed short) vec_sub(b_vec,c_vec); - pb_vec = (vector signed short) vec_sub(a_vec , c_vec); - pc_vec = vec_add(pa_vec,pb_vec); - pa_vec = vec_abs(pa_vec); - pb_vec = vec_abs(pb_vec); - pc_vec = vec_abs(pc_vec); - smallest_vec = vec_min(pc_vec, vec_min(pa_vec,pb_vec)); - nearest_vec = if_then_else( - vec_cmpeq(pa_vec,smallest_vec), - a_vec, - if_then_else( - vec_cmpeq(pb_vec,smallest_vec), - b_vec, - c_vec - ) - ); - rp_vec = vec_add(rp_vec,(vsx_short_to_char(nearest_vec,4,3))); - - vec_st(rp_vec,0,rp); - - rp += 15; - pp += 15; - istop -= 16; - - /* Since 16 % bpp = 16 % 3 = 1, last element of array must - * be proceeded manually - */ - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } - - if(istop > 0) - for (i = 0; i < istop % 16; i++) - { - vsx_paeth_process(rp,pp,a,b,c,pa,pb,pc,bpp) - } -} - -#endif /* PNG_POWERPC_VSX_OPT > 0 */ -#endif /* PNG_POWERPC_VSX_IMPLEMENTATION == 1 (intrinsics) */ -#endif /* READ */ diff --git a/Externals/libpng/powerpc/powerpc_init.c b/Externals/libpng/powerpc/powerpc_init.c deleted file mode 100644 index 54426c558e..0000000000 --- a/Externals/libpng/powerpc/powerpc_init.c +++ /dev/null @@ -1,126 +0,0 @@ - -/* powerpc_init.c - POWERPC optimised filter functions - * - * Copyright (c) 2018 Cosmin Truta - * Copyright (c) 2017 Glenn Randers-Pehrson - * Written by Vadim Barkov, 2017. - * - * This code is released under the libpng license. - * For conditions of distribution and use, see the disclaimer - * and license in png.h - */ - -/* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are - * called. - */ -#define _POSIX_SOURCE 1 - -#include -#include "../pngpriv.h" - -#ifdef PNG_READ_SUPPORTED - -#if PNG_POWERPC_VSX_OPT > 0 -#ifdef PNG_POWERPC_VSX_CHECK_SUPPORTED /* Do run-time checks */ -/* WARNING: it is strongly recommended that you do not build libpng with - * run-time checks for CPU features if at all possible. In the case of the PowerPC - * VSX instructions there is no processor-specific way of detecting the - * presence of the required support, therefore run-time detection is extremely - * OS specific. - * - * You may set the macro PNG_POWERPC_VSX_FILE to the file name of file containing - * a fragment of C source code which defines the png_have_vsx function. There - * are a number of implementations in contrib/powerpc-vsx, but the only one that - * has partial support is contrib/powerpc-vsx/linux.c - a generic Linux - * implementation which reads /proc/cpufino. - */ -#ifndef PNG_POWERPC_VSX_FILE -# ifdef __linux__ -# define PNG_POWERPC_VSX_FILE "contrib/powerpc-vsx/linux_aux.c" -# endif -#endif - -#ifdef PNG_POWERPC_VSX_FILE - -#include /* for sig_atomic_t */ -static int png_have_vsx(png_structp png_ptr); -#include PNG_POWERPC_VSX_FILE - -#else /* PNG_POWERPC_VSX_FILE */ -# error "PNG_POWERPC_VSX_FILE undefined: no support for run-time POWERPC VSX checks" -#endif /* PNG_POWERPC_VSX_FILE */ -#endif /* PNG_POWERPC_VSX_CHECK_SUPPORTED */ - -void -png_init_filter_functions_vsx(png_structp pp, unsigned int bpp) -{ - /* The switch statement is compiled in for POWERPC_VSX_API, the call to - * png_have_vsx is compiled in for POWERPC_VSX_CHECK. If both are defined - * the check is only performed if the API has not set the PowerPC option on - * or off explicitly. In this case the check controls what happens. - */ - -#ifdef PNG_POWERPC_VSX_API_SUPPORTED - switch ((pp->options >> PNG_POWERPC_VSX) & 3) - { - case PNG_OPTION_UNSET: - /* Allow the run-time check to execute if it has been enabled - - * thus both API and CHECK can be turned on. If it isn't supported - * this case will fall through to the 'default' below, which just - * returns. - */ -#endif /* PNG_POWERPC_VSX_API_SUPPORTED */ -#ifdef PNG_POWERPC_VSX_CHECK_SUPPORTED - { - static volatile sig_atomic_t no_vsx = -1; /* not checked */ - - if (no_vsx < 0) - no_vsx = !png_have_vsx(pp); - - if (no_vsx) - return; - } -#ifdef PNG_POWERPC_VSX_API_SUPPORTED - break; -#endif -#endif /* PNG_POWERPC_VSX_CHECK_SUPPORTED */ - -#ifdef PNG_POWERPC_VSX_API_SUPPORTED - default: /* OFF or INVALID */ - return; - - case PNG_OPTION_ON: - /* Option turned on */ - break; - } -#endif - - /* IMPORTANT: any new internal functions used here must be declared using - * PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the - * 'prefix' option to configure works: - * - * ./configure --with-libpng-prefix=foobar_ - * - * Verify you have got this right by running the above command, doing a build - * and examining pngprefix.h; it must contain a #define for every external - * function you add. (Notice that this happens automatically for the - * initialization function.) - */ - pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_vsx; - - if (bpp == 3) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_vsx; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_vsx; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth3_vsx; - } - - else if (bpp == 4) - { - pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_vsx; - pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_vsx; - pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth4_vsx; - } -} -#endif /* PNG_POWERPC_VSX_OPT > 0 */ -#endif /* READ */ diff --git a/Externals/libspng/CMakeLists.txt b/Externals/libspng/CMakeLists.txt new file mode 100644 index 0000000000..7576534a67 --- /dev/null +++ b/Externals/libspng/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.0) + +project(spng C) + +add_library(spng STATIC ${CMAKE_CURRENT_LIST_DIR}/libspng/spng/spng.c) +target_compile_definitions(spng PUBLIC SPNG_STATIC) +target_link_libraries(spng PUBLIC ZLIB::ZLIB) +target_include_directories(spng PUBLIC ${CMAKE_CURRENT_LIST_DIR}/libspng/spng/) +dolphin_disable_warnings_msvc(spng) diff --git a/Externals/libspng/spng.vcxproj b/Externals/libspng/spng.vcxproj new file mode 100644 index 0000000000..af129683c7 --- /dev/null +++ b/Externals/libspng/spng.vcxproj @@ -0,0 +1,35 @@ + + + + + + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313} + + + + + + + + + + + + + + libspng\spng;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Externals/licenses.md b/Externals/licenses.md index 8a49949866..9ae0318ca6 100644 --- a/Externals/licenses.md +++ b/Externals/licenses.md @@ -15,13 +15,13 @@ Dolphin includes or links code of the following third-party software projects: - [ENet](http://enet.bespin.org/): [MIT](http://enet.bespin.org/License.html) - [FatFs](http://elm-chan.org/fsw/ff/00index_e.html): - [BSD-1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license) + [BSD 1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license) - [GCEmu](http://sourceforge.net/projects/gcemu-project/): GPLv2+ - [gettext](https://www.gnu.org/software/gettext/): [GPLv3+](http://git.savannah.gnu.org/cgit/gettext.git/tree/COPYING) - [googletest](https://github.com/google/googletest): - [3-clause BSD](https://github.com/google/googletest/blob/master/LICENSE) + [BSD 3-Clause](https://github.com/google/googletest/blob/master/LICENSE) - [libao](https://www.xiph.org/ao/): [GPLv2+](https://trac.xiph.org/browser/trunk/ao/README) - [libav](https://libav.org/): @@ -32,8 +32,8 @@ Dolphin includes or links code of the following third-party software projects: [LGPLv2+](http://git.savannah.gnu.org/cgit/libiconv.git/tree/COPYING.LIB) - [liblzma](https://tukaani.org/xz/): [Public domain](https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD) -- [libpng](http://www.libpng.org/pub/png/libpng.html): - [libpng license](http://www.libpng.org/pub/png/src/libpng-LICENSE.txt) +- [libspng](https://github.com/randy408/libspng): + [BSD 2-Clause](https://github.com/randy408/libspng/blob/master/LICENSE) - [libusb](http://libusb.info/): [LGPLv2.1+](https://github.com/libusb/libusb/blob/master/COPYING) - [LLVM](http://llvm.org/): @@ -43,7 +43,7 @@ Dolphin includes or links code of the following third-party software projects: - [mGBA](http://mgba.io) [MPL 2.0](https://github.com/mgba-emu/mgba/blob/master/LICENSE) - [MiniUPnPc](http://miniupnp.free.fr/): - [3-clause BSD](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE) + [BSD 3-Clause](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE) - [Microsoft Visual C++ Runtime Library](http://www.microsoft.com/en-us/download/details.aspx?id=40784): [System Library if not distributed](https://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL) - [OpenAL Soft](http://kcat.strangesoft.net/openal.html): @@ -73,8 +73,8 @@ Dolphin includes or links code of the following third-party software projects: - [Windows Implementation Libraries](https://github.com/microsoft/wil): [MIT](https://github.com/microsoft/wil/blob/master/LICENSE) - [xxHash](https://github.com/Cyan4973/xxHash): - [2-clause BSD](https://github.com/Cyan4973/xxHash/blob/master/LICENSE) + [BSD 2-Clause](https://github.com/Cyan4973/xxHash/blob/master/LICENSE) - [zlib-ng](https://github.com/zlib-ng/zlib-ng): [zlib license](https://github.com/zlib-ng/zlib-ng/blob/develop/LICENSE.md) - [Zstandard](https://facebook.github.io/zstd/): - [3-clause BSD](https://github.com/facebook/zstd/blob/dev/LICENSE) or [GPLv2](https://github.com/facebook/zstd/blob/dev/COPYING) + [BSD 3-Clause](https://github.com/facebook/zstd/blob/dev/LICENSE) or [GPLv2](https://github.com/facebook/zstd/blob/dev/COPYING) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 86fd37a788..8502f46a74 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -64,8 +64,6 @@ add_library(common HttpRequest.h Image.cpp Image.h - ImageC.c - ImageC.h IniFile.cpp IniFile.h Inline.h @@ -148,7 +146,7 @@ PRIVATE ${CURL_LIBRARIES} FatFs ${ICONV_LIBRARIES} - png + spng ${VTUNE_LIBRARIES} ) @@ -315,9 +313,4 @@ endif() if(MSVC) # Add precompiled header target_link_libraries(common PRIVATE use_pch) - - # We need to disable PCH for this one file, because it's C and our PCH is C++ - set_source_files_properties( - ${CMAKE_CURRENT_SOURCE_DIR}/ImageC.c - PROPERTIES COMPILE_FLAGS "/Y- /I${CMAKE_SOURCE_DIR}/Source/PCH/nopch") endif() diff --git a/Source/Core/Common/Image.cpp b/Source/Core/Common/Image.cpp index 1c0a8dd07f..1bdb4b0700 100644 --- a/Source/Core/Common/Image.cpp +++ b/Source/Core/Common/Image.cpp @@ -3,159 +3,121 @@ #include "Common/Image.h" +#include #include #include -#include +#include #include "Common/Assert.h" #include "Common/CommonTypes.h" #include "Common/IOFile.h" -#include "Common/ImageC.h" #include "Common/Logging/Log.h" #include "Common/Timer.h" namespace Common { +static void spng_free(spng_ctx* ctx) +{ + if (ctx) + spng_ctx_free(ctx); +} + +static auto make_spng_ctx(int flags) +{ + return std::unique_ptr(spng_ctx_new(flags), spng_free); +} + bool LoadPNG(const std::vector& input, std::vector* data_out, u32* width_out, u32* height_out) { - // Using the 'Simplified API' of libpng; see section V in the libpng manual. - - // Read header - png_image png = {}; - png.version = PNG_IMAGE_VERSION; - if (!png_image_begin_read_from_memory(&png, input.data(), input.size())) + auto ctx = make_spng_ctx(0); + if (!ctx) return false; - // Prepare output vector - png.format = PNG_FORMAT_RGBA; - size_t png_size = PNG_IMAGE_SIZE(png); - data_out->resize(png_size); - - // Convert to RGBA and write into output vector - if (!png_image_finish_read(&png, nullptr, data_out->data(), 0, nullptr)) + if (spng_set_png_buffer(ctx.get(), input.data(), input.size())) return false; - *width_out = png.width; - *height_out = png.height; + spng_ihdr ihdr{}; + if (spng_get_ihdr(ctx.get(), &ihdr)) + return false; + const int format = SPNG_FMT_RGBA8; + size_t decoded_len = 0; + if (spng_decoded_image_size(ctx.get(), format, &decoded_len)) + return false; + + data_out->resize(decoded_len); + if (spng_decode_image(ctx.get(), data_out->data(), decoded_len, format, SPNG_DECODE_TRNS)) + return false; + + *width_out = ihdr.width; + *height_out = ihdr.height; return true; } -static void WriteCallback(png_structp png_ptr, png_bytep data, size_t length) -{ - std::vector* buffer = static_cast*>(png_get_io_ptr(png_ptr)); - buffer->insert(buffer->end(), data, data + length); -} - -static void ErrorCallback(ErrorHandler* self, const char* msg) -{ - std::vector* errors = static_cast*>(self->error_list); - errors->emplace_back(msg); -} - -static void WarningCallback(ErrorHandler* self, const char* msg) -{ - std::vector* warnings = static_cast*>(self->warning_list); - warnings->emplace_back(msg); -} - bool SavePNG(const std::string& path, const u8* input, ImageByteFormat format, u32 width, - u32 height, int stride, int level) + u32 height, u32 stride, int level) { Common::Timer timer; timer.Start(); - size_t byte_per_pixel; - int color_type; + spng_color_type color_type; switch (format) { case ImageByteFormat::RGB: - color_type = PNG_COLOR_TYPE_RGB; - byte_per_pixel = 3; + color_type = SPNG_COLOR_TYPE_TRUECOLOR; break; case ImageByteFormat::RGBA: - color_type = PNG_COLOR_TYPE_RGBA; - byte_per_pixel = 4; + color_type = SPNG_COLOR_TYPE_TRUECOLOR_ALPHA; break; default: ASSERT_MSG(FRAMEDUMP, false, "Invalid format {}", static_cast(format)); return false; } - // libpng doesn't handle non-ASCII characters in path, so write in two steps: - // first to memory, then to file - std::vector buffer; - buffer.reserve(byte_per_pixel * width * height); + auto ctx = make_spng_ctx(SPNG_CTX_ENCODER); + if (!ctx) + return false; - std::vector warnings; - std::vector errors; - ErrorHandler error_handler; - error_handler.error_list = &errors; - error_handler.warning_list = &warnings; - error_handler.StoreError = ErrorCallback; - error_handler.StoreWarning = WarningCallback; + auto outfile = File::IOFile(path, "wb"); + if (spng_set_png_file(ctx.get(), outfile.GetHandle())) + return false; - std::vector rows; - rows.reserve(height); + if (spng_set_option(ctx.get(), SPNG_IMG_COMPRESSION_LEVEL, level)) + return false; + + spng_ihdr ihdr{}; + ihdr.width = width; + ihdr.height = height; + ihdr.color_type = color_type; + ihdr.bit_depth = 8; + if (spng_set_ihdr(ctx.get(), &ihdr)) + return false; + + if (spng_encode_image(ctx.get(), nullptr, 0, SPNG_FMT_PNG, SPNG_ENCODE_PROGRESSIVE)) + return false; for (u32 row = 0; row < height; row++) { - rows.push_back(&input[row * stride]); - } - - png_structp png_ptr = - png_create_write_struct(PNG_LIBPNG_VER_STRING, &error_handler, PngError, PngWarning); - png_infop info_ptr = png_create_info_struct(png_ptr); - - bool success = false; - if (png_ptr != nullptr && info_ptr != nullptr) - { - success = SavePNG0(png_ptr, info_ptr, color_type, width, height, level, &buffer, WriteCallback, - const_cast(rows.data())); - } - png_destroy_write_struct(&png_ptr, &info_ptr); - - if (success) - { - File::IOFile outfile(path, "wb"); - if (!outfile) - return false; - success = outfile.WriteBytes(buffer.data(), buffer.size()); - - timer.Stop(); - INFO_LOG_FMT(FRAMEDUMP, "{} byte {} by {} image saved to {} at level {} in {}", buffer.size(), - width, height, path, level, timer.GetTimeElapsedFormatted()); - ASSERT(errors.size() == 0); - if (warnings.size() != 0) + const int err = spng_encode_row(ctx.get(), &input[row * stride], stride); + if (err == SPNG_EOI) + break; + if (err) { - WARN_LOG_FMT(FRAMEDUMP, "Saved with {} warnings:", warnings.size()); - for (auto& warning : warnings) - WARN_LOG_FMT(FRAMEDUMP, "libpng warning: {}", warning); + ERROR_LOG_FMT(FRAMEDUMP, "Failed to save {} by {} image to {} at level {}: error {}", width, + height, path, level, err); + return false; } } - else - { - ERROR_LOG_FMT(FRAMEDUMP, - "Failed to save {} by {} image to {} at level {}: {} warnings, {} errors", width, - height, path, level, warnings.size(), errors.size()); - for (auto& error : errors) - ERROR_LOG_FMT(FRAMEDUMP, "libpng error: {}", error); - for (auto& warning : warnings) - WARN_LOG_FMT(FRAMEDUMP, "libpng warning: {}", warning); - } - return success; + size_t image_len = 0; + spng_decoded_image_size(ctx.get(), SPNG_FMT_PNG, &image_len); + INFO_LOG_FMT(FRAMEDUMP, "{} byte {} by {} image saved to {} at level {} in {}", image_len, width, + height, path, level, timer.GetTimeElapsedFormatted()); + return true; } -bool ConvertRGBAToRGBAndSavePNG(const std::string& path, const u8* input, u32 width, u32 height, - int stride, int level) -{ - const std::vector data = RGBAToRGB(input, width, height, stride); - return SavePNG(path, data.data(), ImageByteFormat::RGB, width, height, width * 3, level); -} - -std::vector RGBAToRGB(const u8* input, u32 width, u32 height, int row_stride) +static std::vector RGBAToRGB(const u8* input, u32 width, u32 height, u32 row_stride) { std::vector buffer; buffer.reserve(width * height * 3); @@ -172,4 +134,11 @@ std::vector RGBAToRGB(const u8* input, u32 width, u32 height, int row_stride } return buffer; } + +bool ConvertRGBAToRGBAndSavePNG(const std::string& path, const u8* input, u32 width, u32 height, + u32 stride, int level) +{ + const std::vector data = RGBAToRGB(input, width, height, stride); + return SavePNG(path, data.data(), ImageByteFormat::RGB, width, height, width * 3, level); +} } // namespace Common diff --git a/Source/Core/Common/Image.h b/Source/Core/Common/Image.h index df6c30a3ad..49303fd6af 100644 --- a/Source/Core/Common/Image.h +++ b/Source/Core/Common/Image.h @@ -20,10 +20,7 @@ enum class ImageByteFormat }; bool SavePNG(const std::string& path, const u8* input, ImageByteFormat format, u32 width, - u32 height, int stride, int level = 6); + u32 height, u32 stride, int level = 6); bool ConvertRGBAToRGBAndSavePNG(const std::string& path, const u8* input, u32 width, u32 height, - int stride, int level); - -std::vector RGBAToRGB(const u8* input, u32 width, u32 height, int row_stride = 0); - + u32 stride, int level); } // namespace Common diff --git a/Source/Core/Common/ImageC.c b/Source/Core/Common/ImageC.c deleted file mode 100644 index 7316ae5c77..0000000000 --- a/Source/Core/Common/ImageC.c +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2021 Dolphin Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "Common/ImageC.h" - -// Since libpng requires use of setjmp, and setjmp interacts poorly with destructors and other C++ -// features, this is in a separate C file. - -// The main purpose of this function is to allow specifying the compression level, which -// png_image_write_to_memory does not allow. row_pointers is not modified by libpng, but also isn't -// const for some reason. -bool SavePNG0(png_structp png_ptr, png_infop info_ptr, int color_type, png_uint_32 width, - png_uint_32 height, int level, png_voidp io_ptr, png_rw_ptr write_fn, - png_bytepp row_pointers) -{ - if (setjmp(png_jmpbuf(png_ptr)) != 0) - return false; - - png_set_compression_level(png_ptr, level); - png_set_IHDR(png_ptr, info_ptr, width, height, 8, color_type, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - png_set_rows(png_ptr, info_ptr, row_pointers); - png_set_write_fn(png_ptr, io_ptr, write_fn, NULL); - png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL); - - return true; -} - -// pngerror.c says: "Note that the error function MUST NOT return to the calling routine or serious -// problems will occur. The return method used in the default routine calls -// longjmp(png_ptr->jmp_buf_ptr, 1)" -void PngError(png_structp png_ptr, png_const_charp msg) -{ - struct ErrorHandler* error_logger = (struct ErrorHandler*)png_get_error_ptr(png_ptr); - error_logger->StoreError(error_logger, msg); - png_longjmp(png_ptr, 1); -} - -void PngWarning(png_structp png_ptr, png_const_charp msg) -{ - struct ErrorHandler* error_logger = (struct ErrorHandler*)png_get_error_ptr(png_ptr); - error_logger->StoreWarning(error_logger, msg); -} diff --git a/Source/Core/Common/ImageC.h b/Source/Core/Common/ImageC.h deleted file mode 100644 index db9427d2f7..0000000000 --- a/Source/Core/Common/ImageC.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 Dolphin Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -struct ErrorHandler -{ - void* error_list; // std::vector* - void* warning_list; // std::vector* - void (*StoreError)(struct ErrorHandler* self, const char* msg); - void (*StoreWarning)(struct ErrorHandler* self, const char* msg); -}; - -bool SavePNG0(png_structp png_ptr, png_infop info_ptr, int color_type, png_uint_32 width, - png_uint_32 height, int level, png_voidp io_ptr, png_rw_ptr write_fn, - png_bytepp row_pointers); - -void PngError(png_structp png_ptr, png_const_charp msg); -void PngWarning(png_structp png_ptr, png_const_charp msg); - -#ifdef __cplusplus -} -#endif diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index af170d382e..562a357d48 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -111,7 +111,6 @@ - @@ -740,11 +739,6 @@ - - - NotUsing - - diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index 9cca78b65d..06ffb37a2d 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -79,7 +79,7 @@ PUBLIC PRIVATE fmt::fmt - png + spng ) if(WIN32) diff --git a/Source/Core/VideoCommon/CMakeLists.txt b/Source/Core/VideoCommon/CMakeLists.txt index 93e39fcf64..a7e9548d91 100644 --- a/Source/Core/VideoCommon/CMakeLists.txt +++ b/Source/Core/VideoCommon/CMakeLists.txt @@ -164,7 +164,7 @@ PUBLIC core PRIVATE fmt::fmt - png + spng xxhash imgui glslang diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index 03c03e908f..d39ca77690 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -42,7 +42,7 @@ $(ExternalsDir)spirv_cross\SPIRV-Cross;%(AdditionalIncludeDirectories) $(ExternalsDir)imgui;%(AdditionalIncludeDirectories) $(ExternalsDir)liblzma\api;%(AdditionalIncludeDirectories) - $(ExternalsDir)libpng;%(AdditionalIncludeDirectories) + $(ExternalsDir)libspng\libspng\spng;%(AdditionalIncludeDirectories) $(ExternalsDir)libusb\libusb\libusb;%(AdditionalIncludeDirectories) $(ExternalsDir)LZO;%(AdditionalIncludeDirectories) $(ExternalsDir)mGBA\mgba\include;%(AdditionalIncludeDirectories) @@ -94,6 +94,7 @@ AUTOUPDATE=1;%(PreprocessorDefinitions) SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS;%(PreprocessorDefinitions) HAVE_SDL2=1;%(PreprocessorDefinitions) + SPNG_STATIC;%(PreprocessorDefinitions) diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln index bc77304c19..b4a36b08c3 100644 --- a/Source/dolphin-emu.sln +++ b/Source/dolphin-emu.sln @@ -27,8 +27,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LZO", "..\Externals\LZO\LZO EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniupnpc", "..\Externals\miniupnpc\miniupnpc.vcxproj", "{31643FDB-1BB8-4965-9DE7-000FC88D35AE}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\Externals\libpng\png\png.vcxproj", "{4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xxhash", "..\Externals\xxhash\xxhash.vcxproj", "{677EA016-1182-440C-9345-DC88D1E98C0C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib-ng", "..\Externals\zlib-ng\zlib-ng.vcxproj", "{F6EA7144-8D64-4EBB-A13E-76DFBD911EAE}" @@ -85,6 +83,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "..\Externals\SDL\SD EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FatFs", "..\Externals\FatFs\FatFs.vcxproj", "{3F17D282-A77D-4931-B844-903AD0809A5E}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spng", "..\Externals\libspng\spng.vcxproj", "{447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -177,14 +177,6 @@ Global {31643FDB-1BB8-4965-9DE7-000FC88D35AE}.Release|ARM64.Build.0 = Release|ARM64 {31643FDB-1BB8-4965-9DE7-000FC88D35AE}.Release|x64.ActiveCfg = Release|x64 {31643FDB-1BB8-4965-9DE7-000FC88D35AE}.Release|x64.Build.0 = Release|x64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Debug|ARM64.Build.0 = Debug|ARM64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Debug|x64.ActiveCfg = Debug|x64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Debug|x64.Build.0 = Debug|x64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Release|ARM64.ActiveCfg = Release|ARM64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Release|ARM64.Build.0 = Release|ARM64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Release|x64.ActiveCfg = Release|x64 - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C}.Release|x64.Build.0 = Release|x64 {677EA016-1182-440C-9345-DC88D1E98C0C}.Debug|ARM64.ActiveCfg = Debug|ARM64 {677EA016-1182-440C-9345-DC88D1E98C0C}.Debug|ARM64.Build.0 = Debug|ARM64 {677EA016-1182-440C-9345-DC88D1E98C0C}.Debug|x64.ActiveCfg = Debug|x64 @@ -409,6 +401,14 @@ Global {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|ARM64.Build.0 = Release|ARM64 {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|x64.ActiveCfg = Release|x64 {3F17D282-A77D-4931-B844-903AD0809A5E}.Release|x64.Build.0 = Release|x64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Debug|ARM64.Build.0 = Debug|ARM64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Debug|x64.ActiveCfg = Debug|x64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Debug|x64.Build.0 = Debug|x64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|ARM64.ActiveCfg = Release|ARM64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|ARM64.Build.0 = Release|ARM64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|x64.ActiveCfg = Release|x64 + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -417,7 +417,6 @@ Global {8ADA04D7-6DB1-4DA4-AB55-64FB12A0997B} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {AB993F38-C31D-4897-B139-A620C42BC565} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {31643FDB-1BB8-4965-9DE7-000FC88D35AE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} - {4C9F135B-A85E-430C-BAD4-4C67EF5FC12C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {677EA016-1182-440C-9345-DC88D1E98C0C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {EC082900-B4D8-42E9-9663-77F02F6936AE} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} @@ -444,6 +443,7 @@ Global {3D780617-EC8C-4721-B9FD-DFC9BB658C7C} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} {3F17D282-A77D-4931-B844-903AD0809A5E} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313} = {87ADDFF9-5768-4DA2-A33B-2477593D6677} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {64B0A343-3B94-4522-9C24-6937FE5EFB22} From f92541fbd9da5091636aac09fdabd1a5fd0191ce Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 19 Jul 2022 15:13:26 -0700 Subject: [PATCH 465/659] StripSpaces: only strip spaces StripWhitespace maintains old behavior --- Source/Core/AudioCommon/CubebUtils.cpp | 2 +- Source/Core/Common/IniFile.cpp | 8 +++---- Source/Core/Common/StringUtil.cpp | 21 ++++++++++++++----- Source/Core/Common/StringUtil.h | 1 + Source/Core/Core/GeckoCodeConfig.cpp | 6 +++--- Source/Core/Core/PowerPC/PPCSymbolDB.cpp | 2 +- .../PowerPC/SignatureDB/MEGASignatureDB.cpp | 2 +- Source/Core/Core/TitleDatabase.cpp | 4 ++-- Source/Core/DiscIO/VolumeVerifier.cpp | 2 +- Source/Core/DolphinQt/MenuBar.cpp | 2 +- .../BroadbandAdapterSettingsDialog.cpp | 2 +- .../USBDeviceAddToWhitelistDialog.cpp | 4 ++-- .../ControlReference/ExpressionParser.cpp | 2 +- .../ControllerInterface/DInput/DInput.cpp | 2 +- .../ControllerInterface/OSX/OSX.mm | 2 +- .../ControllerInterface/OSX/OSXJoystick.mm | 4 ++-- .../ControllerInterface/SDL/SDL.cpp | 2 +- .../ControllerInterface/WGInput/WGInput.cpp | 2 +- .../ControllerInterface/evdev/evdev.cpp | 4 ++-- Source/Core/InputCommon/InputProfile.cpp | 2 +- 20 files changed, 44 insertions(+), 32 deletions(-) diff --git a/Source/Core/AudioCommon/CubebUtils.cpp b/Source/Core/AudioCommon/CubebUtils.cpp index ffe1e8cfbb..e4050a8bf5 100644 --- a/Source/Core/AudioCommon/CubebUtils.cpp +++ b/Source/Core/AudioCommon/CubebUtils.cpp @@ -30,7 +30,7 @@ static void LogCallback(const char* format, ...) va_start(args, format); const char* filename = va_arg(args, const char*) + s_path_cutoff_point; const int lineno = va_arg(args, int); - const std::string adapted_format(StripSpaces(format + strlen("%s:%d:"))); + const std::string adapted_format(StripWhitespace(format + strlen("%s:%d:"))); const std::string message = StringFromFormatV(adapted_format.c_str(), args); va_end(args); diff --git a/Source/Core/Common/IniFile.cpp b/Source/Core/Common/IniFile.cpp index 0925b8b4d4..41f1917fef 100644 --- a/Source/Core/Common/IniFile.cpp +++ b/Source/Core/Common/IniFile.cpp @@ -25,11 +25,11 @@ void IniFile::ParseLine(std::string_view line, std::string* keyOut, std::string* if (firstEquals != std::string::npos) { // Yes, a valid line! - *keyOut = StripSpaces(line.substr(0, firstEquals)); + *keyOut = StripWhitespace(line.substr(0, firstEquals)); if (valueOut) { - *valueOut = StripQuotes(StripSpaces(line.substr(firstEquals + 1, std::string::npos))); + *valueOut = StripQuotes(StripWhitespace(line.substr(firstEquals + 1, std::string::npos))); } } } @@ -96,7 +96,7 @@ bool IniFile::Section::GetLines(std::vector* lines, const bool remo { for (const std::string& line : m_lines) { - std::string_view stripped_line = StripSpaces(line); + std::string_view stripped_line = StripWhitespace(line); if (remove_comments) { @@ -108,7 +108,7 @@ bool IniFile::Section::GetLines(std::vector* lines, const bool remo if (commentPos != std::string::npos) { - stripped_line = StripSpaces(stripped_line.substr(0, commentPos)); + stripped_line = StripWhitespace(stripped_line.substr(0, commentPos)); } } diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index c498e261fd..4a5f21ddc2 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -219,20 +219,31 @@ std::string ArrayToString(const u8* data, u32 size, int line_len, bool spaces) return oss.str(); } -// Turns "\n\r\t hello " into "hello" (trims at the start and end but not inside). -std::string_view StripSpaces(std::string_view str) +template +static std::string_view StripEnclosingChars(std::string_view str, T chars) { - const size_t s = str.find_first_not_of(" \t\r\n"); + const size_t s = str.find_first_not_of(chars); if (str.npos != s) - return str.substr(s, str.find_last_not_of(" \t\r\n") - s + 1); + return str.substr(s, str.find_last_not_of(chars) - s + 1); else return ""; } +// Turns "\n\r\t hello " into "hello" (trims at the start and end but not inside). +std::string_view StripWhitespace(std::string_view str) +{ + return StripEnclosingChars(str, " \t\r\n"); +} + +std::string_view StripSpaces(std::string_view str) +{ + return StripEnclosingChars(str, ' '); +} + // "\"hello\"" is turned to "hello" // This one assumes that the string has already been space stripped in both -// ends, as done by StripSpaces above, for example. +// ends, as done by StripWhitespace above, for example. std::string_view StripQuotes(std::string_view s) { if (!s.empty() && '\"' == s[0] && '\"' == *s.rbegin()) diff --git a/Source/Core/Common/StringUtil.h b/Source/Core/Common/StringUtil.h index 5db7cbfa37..0df7b8d119 100644 --- a/Source/Core/Common/StringUtil.h +++ b/Source/Core/Common/StringUtil.h @@ -46,6 +46,7 @@ inline void CharArrayFromFormat(char (&out)[Count], const char* format, ...) // Good std::string ArrayToString(const u8* data, u32 size, int line_len = 20, bool spaces = true); +std::string_view StripWhitespace(std::string_view s); std::string_view StripSpaces(std::string_view s); std::string_view StripQuotes(std::string_view s); diff --git a/Source/Core/Core/GeckoCodeConfig.cpp b/Source/Core/Core/GeckoCodeConfig.cpp index ebb1f78160..e4fc7c4c68 100644 --- a/Source/Core/Core/GeckoCodeConfig.cpp +++ b/Source/Core/Core/GeckoCodeConfig.cpp @@ -54,7 +54,7 @@ std::vector DownloadCodes(std::string gametdb_id, bool* succeeded, bo { // Remove \r at the end of the line for files using windows line endings, std::getline only // removes \n - line = StripSpaces(line); + line = StripWhitespace(line); if (line.empty()) { @@ -74,7 +74,7 @@ std::vector DownloadCodes(std::string gametdb_id, bool* succeeded, bo std::istringstream ssline(line); // stop at [ character (beginning of contributor name) std::getline(ssline, gcode.name, '['); - gcode.name = StripSpaces(gcode.name); + gcode.name = StripWhitespace(gcode.name); gcode.user_defined = true; // read the code creator name std::getline(ssline, gcode.creator, ']'); @@ -165,7 +165,7 @@ std::vector LoadCodes(const IniFile& globalIni, const IniFile& localI ss.seekg(1, std::ios_base::cur); // read the code name std::getline(ss, gcode.name, '['); // stop at [ character (beginning of contributor name) - gcode.name = StripSpaces(gcode.name); + gcode.name = StripWhitespace(gcode.name); // read the code creator name std::getline(ss, gcode.creator, ']'); break; diff --git a/Source/Core/Core/PowerPC/PPCSymbolDB.cpp b/Source/Core/Core/PowerPC/PPCSymbolDB.cpp index 6683dd6904..d684cf64da 100644 --- a/Source/Core/Core/PowerPC/PPCSymbolDB.cpp +++ b/Source/Core/Core/PowerPC/PPCSymbolDB.cpp @@ -298,7 +298,7 @@ bool PPCSymbolDB::LoadMap(const std::string& filename, bool bad) constexpr auto is_hex_str = [](const std::string& s) { return !s.empty() && s.find_first_not_of("0123456789abcdefABCDEF") == std::string::npos; }; - const std::string stripped_line(StripSpaces(line)); + const std::string stripped_line(StripWhitespace(line)); std::istringstream iss(stripped_line); iss.imbue(std::locale::classic()); std::string word; diff --git a/Source/Core/Core/PowerPC/SignatureDB/MEGASignatureDB.cpp b/Source/Core/Core/PowerPC/SignatureDB/MEGASignatureDB.cpp index c8edb40898..b12e7f1e6f 100644 --- a/Source/Core/Core/PowerPC/SignatureDB/MEGASignatureDB.cpp +++ b/Source/Core/Core/PowerPC/SignatureDB/MEGASignatureDB.cpp @@ -52,7 +52,7 @@ bool GetFunctionName(std::istringstream* iss, std::string* name) std::getline(*iss, buffer); size_t next = buffer.find(" ^"); - *name = StripSpaces(buffer.substr(0, next)); + *name = StripWhitespace(buffer.substr(0, next)); if (name->empty()) return false; diff --git a/Source/Core/Core/TitleDatabase.cpp b/Source/Core/Core/TitleDatabase.cpp index d53a298350..391a0dc044 100644 --- a/Source/Core/Core/TitleDatabase.cpp +++ b/Source/Core/Core/TitleDatabase.cpp @@ -43,9 +43,9 @@ static Map LoadMap(const std::string& file_path) if (equals_index != std::string::npos) { const std::string_view line_view(line); - const std::string_view game_id = StripSpaces(line_view.substr(0, equals_index)); + const std::string_view game_id = StripWhitespace(line_view.substr(0, equals_index)); if (game_id.length() >= 4) - map.emplace(game_id, StripSpaces(line_view.substr(equals_index + 1))); + map.emplace(game_id, StripWhitespace(line_view.substr(equals_index + 1))); } } return map; diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 4e311722d4..03b50e7d82 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -261,7 +261,7 @@ std::vector RedumpVerifier::ScanDatfile(const st // disc with the game ID "G96P" and the serial "DL-DOL-D96P-EUR, DL-DOL-G96P-EUR". for (const std::string& serial_str : SplitString(serials, ',')) { - const std::string_view serial = StripSpaces(serial_str); + const std::string_view serial = StripWhitespace(serial_str); // Skip the prefix, normally either "DL-DOL-" or "RVL-" (depending on the console), // but there are some exceptions like the "RVLE-SBSE-USA-B0" serial. diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index a5b0adca99..a119240f59 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -1150,7 +1150,7 @@ void MenuBar::CheckNAND() { title_listings += " - " + banner.GetName(); const std::string description = banner.GetDescription(); - if (!StripSpaces(description).empty()) + if (!StripWhitespace(description).empty()) title_listings += " - " + description; } } diff --git a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp index 8a8d0c752c..6e1e404b92 100644 --- a/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp +++ b/Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp @@ -95,7 +95,7 @@ void BroadbandAdapterSettingsDialog::InitControls() void BroadbandAdapterSettingsDialog::SaveAddress() { - const std::string bba_new_address(StripSpaces(m_address_input->text().toStdString())); + const std::string bba_new_address(StripWhitespace(m_address_input->text().toStdString())); switch (m_bba_type) { diff --git a/Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp b/Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp index 1024816e22..bb0888195e 100644 --- a/Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp +++ b/Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp @@ -124,8 +124,8 @@ void USBDeviceAddToWhitelistDialog::RefreshDeviceList() void USBDeviceAddToWhitelistDialog::AddUSBDeviceToWhitelist() { - const std::string vid_string(StripSpaces(device_vid_textbox->text().toStdString())); - const std::string pid_string(StripSpaces(device_pid_textbox->text().toStdString())); + const std::string vid_string(StripWhitespace(device_vid_textbox->text().toStdString())); + const std::string pid_string(StripWhitespace(device_pid_textbox->text().toStdString())); if (!IsValidUSBIDString(vid_string)) { // i18n: Here, VID means Vendor ID (for a USB device). diff --git a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp index 59c22612f4..1f78071856 100644 --- a/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp +++ b/Source/Core/InputCommon/ControlReference/ExpressionParser.cpp @@ -980,7 +980,7 @@ static std::unique_ptr ParseBarewordExpression(const std::string& st ParseResult ParseExpression(const std::string& str) { - if (StripSpaces(str).empty()) + if (StripWhitespace(str).empty()) return ParseResult::MakeEmptyResult(); auto bareword_expr = ParseBarewordExpression(str); diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp index 1ab12af20a..aa1826ae45 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp @@ -41,7 +41,7 @@ std::string GetDeviceName(const LPDIRECTINPUTDEVICE8 device) HRESULT hr = device->GetProperty(DIPROP_PRODUCTNAME, &str.diph); if (SUCCEEDED(hr)) { - result = StripSpaces(WStringToUTF8(str.wsz)); + result = StripWhitespace(WStringToUTF8(str.wsz)); } else { diff --git a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm index 10c30ffb21..2d0651b6bd 100644 --- a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm +++ b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm @@ -139,7 +139,7 @@ static std::string GetDeviceRefName(IOHIDDeviceRef inIOHIDDeviceRef) { const NSString* name = reinterpret_cast( IOHIDDeviceGetProperty(inIOHIDDeviceRef, CFSTR(kIOHIDProductKey))); - return (name != nullptr) ? std::string(StripSpaces([name UTF8String])) : "Unknown device"; + return (name != nullptr) ? std::string(StripWhitespace([name UTF8String])) : "Unknown device"; } static void DeviceRemovalCallback(void* inContext, IOReturn inResult, void* inSender, diff --git a/Source/Core/InputCommon/ControllerInterface/OSX/OSXJoystick.mm b/Source/Core/InputCommon/ControllerInterface/OSX/OSXJoystick.mm index f8ee6e5446..82ad68e205 100644 --- a/Source/Core/InputCommon/ControllerInterface/OSX/OSXJoystick.mm +++ b/Source/Core/InputCommon/ControllerInterface/OSX/OSXJoystick.mm @@ -164,7 +164,7 @@ std::string Joystick::Button::GetName() const { std::ostringstream s; s << IOHIDElementGetUsage(m_element); - return std::string("Button ").append(StripSpaces(s.str())); + return std::string("Button ").append(StripWhitespace(s.str())); } Joystick::Axis::Axis(IOHIDElementRef element, IOHIDDeviceRef device, direction dir) @@ -210,7 +210,7 @@ Joystick::Axis::Axis(IOHIDElementRef element, IOHIDDeviceRef device, direction d std::ostringstream s; s << "CK-"; s << elementCookie; - description = StripSpaces(s.str()); + description = StripWhitespace(s.str()); break; } } diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 0d7494142d..0ea15251ad 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -272,7 +272,7 @@ void PopulateDevices() } Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index) - : m_joystick(joystick), m_name(StripSpaces(GetJoystickName(sdl_index))) + : m_joystick(joystick), m_name(StripWhitespace(GetJoystickName(sdl_index))) { // really bad HACKS: // to not use SDL for an XInput device diff --git a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp index b934e86e71..f755a175a5 100644 --- a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp +++ b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp @@ -784,7 +784,7 @@ void PopulateDevices() if (SUCCEEDED(hr = rgc2->get_DisplayName(&hstr)) && hstr) { device_name = - StripSpaces(WStringToUTF8(g_WindowsGetStringRawBuffer_address(hstr, nullptr))); + StripWhitespace(WStringToUTF8(g_WindowsGetStringRawBuffer_address(hstr, nullptr))); } } diff --git a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp index 6df37b47df..d3a222890b 100644 --- a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp +++ b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp @@ -52,7 +52,7 @@ protected: { if (const char* code_name = libevdev_event_code_get_name(EV_KEY, m_code)) { - const auto name = StripSpaces(code_name); + const auto name = StripWhitespace(code_name); for (auto remove_prefix : {"BTN_", "KEY_"}) { @@ -441,7 +441,7 @@ bool evdevDevice::AddNode(std::string devnode, int fd, libevdev* dev) m_nodes.emplace_back(Node{std::move(devnode), fd, dev}); // Take on the alphabetically first name. - const auto potential_new_name = StripSpaces(libevdev_get_name(dev)); + const auto potential_new_name = StripWhitespace(libevdev_get_name(dev)); if (m_name.empty() || potential_new_name < m_name) m_name = potential_new_name; diff --git a/Source/Core/InputCommon/InputProfile.cpp b/Source/Core/InputCommon/InputProfile.cpp index be0f02c975..492b45975e 100644 --- a/Source/Core/InputCommon/InputProfile.cpp +++ b/Source/Core/InputCommon/InputProfile.cpp @@ -34,7 +34,7 @@ std::vector GetProfilesFromSetting(const std::string& setting, cons std::vector result; for (const std::string& setting_choice : setting_choices) { - const std::string path = root + std::string(StripSpaces(setting_choice)); + const std::string path = root + std::string(StripWhitespace(setting_choice)); if (File::IsDirectory(path)) { const auto files_under_directory = Common::DoFileSearch({path}, {".ini"}, true); From 4b179e01da14c106ba3776e27dc698c35e40e93b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 25 Jul 2022 20:31:04 -0700 Subject: [PATCH 466/659] DSPHLE: Move asnd uCode hash constants into header --- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 21 -------------------- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h | 21 ++++++++++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 8 ++++---- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp index e033d276d7..d00e82be03 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -52,27 +52,6 @@ constexpr u32 NEW_FLAGS_SAMPLE_FORMAT_MASK = 7; constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_MASK = 0xffff0000; constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_SHIFT = 16; -// November 14, 2008 version (padded to 0x05a0 bytes) - initial release -// https://github.com/devkitPro/libogc/compare/c76d8b851fafc11b0a5debc0b40842929d5a5825~...353a44f038e75e5982eb550173ec8127ab35e3e3 -constexpr u32 HASH_2008 = 0x8d69a19b; -// February 5, 2009 version (padded to 0x05c0 bytes) - added MAIL_TERMINATE -// https://github.com/devkitPro/libogc/compare/1925217ffb4c97cbee5cf21fa3c0231029b340e2~...3b1f018dbe372859a43bff8560e2525f6efa4433 -constexpr u32 HASH_2009 = 0xcc2fd441; -// June 11, 2011 version (padded to 0x0620 bytes) - added new sample formats, which shifted flags -// Note that the source include in the repo does not match the compiled binary exactly; the compiled -// version differs by using asl instead of lsl, $acc1 instead of $acc0, and $ac0.l instead of $ac0.m -// in various locations, as well as having the "jmp out_samp" line uncommented in stereo_16bits_le. -// None of these result in a behavior difference, from the source, though. -// Note that gcdsptool was also updated, which results in some differences in the source that don't -// actually correspond to different instructions (e.g. s40 was renamed to s16) -// https://github.com/devkitPro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 -constexpr u32 HASH_2011 = 0xa81582e2; -// June 12, 2020 version (0x0606 bytes) - libogc switched to compiling the ucode at build time -// instead of including a pre-compiled version in the repo, so this now corresponds to the code -// provided in the repo. There appear to be no behavior differences from the 2011 version. -// https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93 -constexpr u32 HASH_2020 = 0xdbbeeb61; - constexpr u32 SAMPLE_RATE = 48000; ASndUCode::ASndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h index 45ef40c0e0..419d19d92d 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h @@ -23,6 +23,27 @@ public: void Update() override; void DoState(PointerWrap& p) override; + // November 14, 2008 version (padded to 0x05a0 bytes) - initial release + // https://github.com/devkitPro/libogc/compare/c76d8b851fafc11b0a5debc0b40842929d5a5825~...353a44f038e75e5982eb550173ec8127ab35e3e3 + static constexpr u32 HASH_2008 = 0x8d69a19b; + // February 5, 2009 version (padded to 0x05c0 bytes) - added MAIL_TERMINATE + // https://github.com/devkitPro/libogc/compare/1925217ffb4c97cbee5cf21fa3c0231029b340e2~...3b1f018dbe372859a43bff8560e2525f6efa4433 + static constexpr u32 HASH_2009 = 0xcc2fd441; + // June 11, 2011 version (padded to 0x0620 bytes) - added new sample formats, which shifted flags + // Note that the source include in the repo does not match the compiled binary exactly; the + // compiled version differs by using asl instead of lsl, $acc1 instead of $acc0, and $ac0.l + // instead of $ac0.m in various locations, as well as having the "jmp out_samp" line uncommented + // in stereo_16bits_le. None of these result in a behavior difference, from the source, though. + // Note that gcdsptool was also updated, which results in some differences in the source that + // don't actually correspond to different instructions (e.g. s40 was renamed to s16) + // https://github.com/devkitPro/libogc/commit/b1b8ecab3af3745c8df0b401abd512bdf5fcc011 + static constexpr u32 HASH_2011 = 0xa81582e2; + // June 12, 2020 version (0x0606 bytes) - libogc switched to compiling the ucode at build time + // instead of including a pre-compiled version in the repo, so this now corresponds to the code + // provided in the repo. There appear to be no behavior differences from the 2011 version. + // https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93 + static constexpr u32 HASH_2020 = 0xdbbeeb61; + private: void DMAInVoiceData(); void DMAOutVoiceData(); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 94a594aec7..8b40debbee 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -284,10 +284,10 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) INFO_LOG_FMT(DSPHLE, "CRC {:08x}: Wii - AXWii chosen", crc); return std::make_unique(dsphle, crc); - case 0x8d69a19b: - case 0xcc2fd441: - case 0xa81582e2: - case 0xdbbeeb61: + case ASndUCode::HASH_2008: + case ASndUCode::HASH_2009: + case ASndUCode::HASH_2011: + case ASndUCode::HASH_2020: INFO_LOG_FMT(DSPHLE, "CRC {:08x}: ASnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); From a6d08571bd18c7d082c2bc6a0b5a972a03818fbc Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 25 Jul 2022 20:32:02 -0700 Subject: [PATCH 467/659] DSPHLE: Move aesnd uCode hash constants into header --- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 13 ------------- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h | 13 +++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp index 34c2308468..5a42aa117e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -26,19 +26,6 @@ constexpr u32 MAIL_GET_PB_ADDRESS = MAIL_PREFIX | 0x0080; constexpr u32 MAIL_SEND_SAMPLES = MAIL_PREFIX | 0x0100; constexpr u32 MAIL_TERMINATE = MAIL_PREFIX | 0xdead; -// June 5, 2010 version (padded to 0x03e0 bytes) - initial release -// First included with libogc 1.8.4 on October 3, 2010: https://devkitpro.org/viewtopic.php?t=2249 -// https://github.com/devkitPro/libogc/blob/b5fdbdb069c45584aa4dfd950a136a8db9b1144c/libaesnd/dspcode/dspmixer.s -constexpr u32 HASH_2010 = 0x008366af; -// April 11, 2012 version (padded to 0x03e0 bytes) - swapped input channels -// First included with libogc 1.8.11 on April 22, 2012: https://devkitpro.org/viewtopic.php?t=3094 -// https://github.com/devkitPro/libogc/commit/8f188e12b6a3d8b5a0d49a109fe6a3e4e1702aab -constexpr u32 HASH_2012 = 0x078066ab; -// June 14, 2020 version (0x03e6 bytes) - added unsigned formats -// First included with libogc 2.1.0 on June 15, 2020: https://devkitpro.org/viewtopic.php?t=9079 -// https://github.com/devkitPro/libogc/commit/eac8fe2c29aa790d552dd6166a1fb195dfdcb825 -constexpr u32 HASH_2020 = 0x84c680a9; - constexpr u32 VOICE_MONO8 = 0x00000000; constexpr u32 VOICE_STEREO8 = 0x00000001; constexpr u32 VOICE_MONO16 = 0x00000002; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h index a13046be94..c3e0d238bb 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h @@ -23,6 +23,19 @@ public: void Update() override; void DoState(PointerWrap& p) override; + // June 5, 2010 version (padded to 0x03e0 bytes) - initial release + // First included with libogc 1.8.4 on October 3, 2010: https://devkitpro.org/viewtopic.php?t=2249 + // https://github.com/devkitPro/libogc/blob/b5fdbdb069c45584aa4dfd950a136a8db9b1144c/libaesnd/dspcode/dspmixer.s + static constexpr u32 HASH_2010 = 0x008366af; + // April 11, 2012 version (padded to 0x03e0 bytes) - swapped input channels + // First included with libogc 1.8.11 on April 22, 2012: https://devkitpro.org/viewtopic.php?t=3094 + // https://github.com/devkitPro/libogc/commit/8f188e12b6a3d8b5a0d49a109fe6a3e4e1702aab + static constexpr u32 HASH_2012 = 0x078066ab; + // June 14, 2020 version (0x03e6 bytes) - added unsigned formats + // First included with libogc 2.1.0 on June 15, 2020: https://devkitpro.org/viewtopic.php?t=9079 + // https://github.com/devkitPro/libogc/commit/eac8fe2c29aa790d552dd6166a1fb195dfdcb825 + static constexpr u32 HASH_2020 = 0x84c680a9; + private: void DMAInParameterBlock(); void DMAOutParameterBlock(); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 8b40debbee..9e33aff804 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -291,9 +291,9 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) INFO_LOG_FMT(DSPHLE, "CRC {:08x}: ASnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); - case 0x008366af: - case 0x078066ab: - case 0x84c680a9: + case AESndUCode::HASH_2010: + case AESndUCode::HASH_2012: + case AESndUCode::HASH_2020: INFO_LOG_FMT(DSPHLE, "CRC {:08x}: AESnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); From 58d344e1896c7287e9e82f5833b1b73995a76293 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 25 Jul 2022 19:26:11 -0700 Subject: [PATCH 468/659] DSPHLE: Support EDuke32 Wii libaesnd uCode This version is exclusive to EDuke32 Wii (see https://bugs.dolphin-emu.org/issues/12990). --- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 32 ++++++++++++++++++-- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h | 9 ++++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 1 + 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp index 5a42aa117e..a005b1c173 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -68,6 +68,16 @@ constexpr u32 ACCELERATOR_GAIN_8_BIT = 0x0100; // Multiply samples by 0x800/2048 = 1 (for ACCELERATOR_FORMAT_16_BIT) constexpr u32 ACCELERATOR_GAIN_16_BIT = 0x0800; +bool AESndUCode::SwapLeftRight() const +{ + return m_crc == HASH_2012 || m_crc == HASH_EDUKE32 || m_crc == HASH_2020; +} + +bool AESndUCode::UseNewFlagMasks() const +{ + return m_crc == HASH_EDUKE32 || m_crc == HASH_2020; +} + AESndUCode::AESndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) { } @@ -235,8 +245,8 @@ void AESndUCode::SetUpAccelerator(u16 format, [[maybe_unused]] u16 gain) void AESndUCode::DoMixing() { - const u32 pause_flag = (m_crc == HASH_2020) ? VOICE_PAUSE_NEW : VOICE_PAUSE_OLD; - const u32 format_mask = (m_crc == HASH_2020) ? VOICE_FORMAT_MASK_NEW : VOICE_FORMAT_MASK_OLD; + const u32 pause_flag = UseNewFlagMasks() ? VOICE_PAUSE_NEW : VOICE_PAUSE_OLD; + const u32 format_mask = UseNewFlagMasks() ? VOICE_FORMAT_MASK_NEW : VOICE_FORMAT_MASK_OLD; // dsp_mixer const bool paused = (m_parameter_block.flags & pause_flag) != 0; const bool running = (m_parameter_block.flags & VOICE_RUNNING) != 0; @@ -246,6 +256,22 @@ void AESndUCode::DoMixing() // no_change_buffer const u32 voice_format = m_parameter_block.flags & format_mask; const bool is_16_bit = (voice_format & VOICE_16_BIT_FLAG) != 0; + if (m_crc == HASH_EDUKE32) + { + if (voice_format != VOICE_STEREO8 && voice_format != VOICE_STEREO16 && + voice_format != VOICE_STEREO8_UNSIGNED) + { + // The EDuke32 Wii version does not support 16-but unsigned stereo, and also has broken + // handling of all mono formats. + if (!m_has_shown_unsupported_sample_format_warning) + { + m_has_shown_unsupported_sample_format_warning = true; + PanicAlertFmt("EDuke32 Wii aesndlib uCode does not correctly handle this sample format: " + "{} (flags: {:08x})", + voice_format, m_parameter_block.flags); + } + } + } // select_format table const u16 accelerator_format = is_16_bit ? ACCELERATOR_FORMAT_16_BIT : ACCELERATOR_FORMAT_8_BIT; const u16 accelerator_gain = is_16_bit ? ACCELERATOR_GAIN_16_BIT : ACCELERATOR_GAIN_8_BIT; @@ -350,7 +376,7 @@ void AESndUCode::DoMixing() new_l ^= 0x8000; break; } - if (m_crc == HASH_2012 || m_crc == HASH_2020) + if (SwapLeftRight()) { // The 2012 version swapped the left and right input channels so that left comes first, // and then right. Before, right came before left. The 2012 version didn't update comments diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h index c3e0d238bb..5991d3c027 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h @@ -31,6 +31,10 @@ public: // First included with libogc 1.8.11 on April 22, 2012: https://devkitpro.org/viewtopic.php?t=3094 // https://github.com/devkitPro/libogc/commit/8f188e12b6a3d8b5a0d49a109fe6a3e4e1702aab static constexpr u32 HASH_2012 = 0x078066ab; + // Modified version used by EDuke32 Wii (padded to 0x03e0 bytes) - added unsigned 8-bit formats; + // broke the mono formats. The patch is based on the 2010 version, but it also includes the 2012 + // input channel swap change. https://dukeworld.duke4.net/eduke32/wii/library_source_code/ + static constexpr u32 HASH_EDUKE32 = 0x5ad4d933; // June 14, 2020 version (0x03e6 bytes) - added unsigned formats // First included with libogc 2.1.0 on June 15, 2020: https://devkitpro.org/viewtopic.php?t=9079 // https://github.com/devkitPro/libogc/commit/eac8fe2c29aa790d552dd6166a1fb195dfdcb825 @@ -42,6 +46,9 @@ private: void SetUpAccelerator(u16 format, u16 gain); void DoMixing(); + bool SwapLeftRight() const; + bool UseNewFlagMasks() const; + // Copied from libaesnd/aesndlib.c's aesndpb_t (specifically the first 64 bytes) #pragma pack(1) struct ParameterBlock @@ -83,5 +90,7 @@ private: static constexpr u32 NUM_OUTPUT_SAMPLES = 96; std::array m_output_buffer{}; + + bool m_has_shown_unsupported_sample_format_warning = false; }; } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 9e33aff804..72c387ed5e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -293,6 +293,7 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) case AESndUCode::HASH_2010: case AESndUCode::HASH_2012: + case AESndUCode::HASH_EDUKE32: case AESndUCode::HASH_2020: INFO_LOG_FMT(DSPHLE, "CRC {:08x}: AESnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); From e44b596f50a87863abe2aa3cda92cf7151bea5c2 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 25 Jul 2022 19:27:51 -0700 Subject: [PATCH 469/659] DSPHLE: Fix typos in libaesnd logging --- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp index a005b1c173..902d940bde 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -133,25 +133,25 @@ void AESndUCode::HandleMail(u32 mail) switch (mail) { case MAIL_PROCESS_FIRST_VOICE: - DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_PROCESS_FIRST_VOICE"); + DEBUG_LOG_FMT(DSPHLE, "AESndUCode - MAIL_PROCESS_FIRST_VOICE"); DMAInParameterBlock(); // dma_pb_block m_output_buffer.fill(0); DoMixing(); // fall through to dsp_mixer // Mail is handled by DoMixing() break; case MAIL_PROCESS_NEXT_VOICE: - DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_PROCESS_NEXT_VOICE"); + DEBUG_LOG_FMT(DSPHLE, "AESndUCode - MAIL_PROCESS_NEXT_VOICE"); DMAInParameterBlock(); // dma_pb_block DoMixing(); // jump to dsp_mixer // Mail is handled by DoMixing() break; case MAIL_GET_PB_ADDRESS: - DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_GET_PB_ADDRESS"); + DEBUG_LOG_FMT(DSPHLE, "AESndUCode - MAIL_GET_PB_ADDRESS"); m_next_mail_is_parameter_block_addr = true; // No mail is sent in response break; case MAIL_SEND_SAMPLES: - DEBUG_LOG_FMT(DSPHLE, "ASndUCode - MAIL_SEND_SAMPLES"); + DEBUG_LOG_FMT(DSPHLE, "AESndUCode - MAIL_SEND_SAMPLES"); // send_samples for (u32 i = 0; i < NUM_OUTPUT_SAMPLES * 2; i++) { @@ -160,7 +160,7 @@ void AESndUCode::HandleMail(u32 mail) m_mail_handler.PushMail(DSP_SYNC, true); break; case MAIL_TERMINATE: - INFO_LOG_FMT(DSPHLE, "ASndUCode - MAIL_TERMINATE: {:08x}", mail); + INFO_LOG_FMT(DSPHLE, "AESndUCode - MAIL_TERMINATE: {:08x}", mail); // This doesn't actually change the state of the system. m_mail_handler.PushMail(DSP_DONE, true); break; From 1dcccb1f75bf6d1d97167da1b136dfb3df4918ee Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 25 Jul 2022 19:30:30 -0700 Subject: [PATCH 470/659] DSPHLE: Add warning to use of MAIL_TERMINATE --- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 25 ++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp index 902d940bde..122044dda6 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -161,7 +161,30 @@ void AESndUCode::HandleMail(u32 mail) break; case MAIL_TERMINATE: INFO_LOG_FMT(DSPHLE, "AESndUCode - MAIL_TERMINATE: {:08x}", mail); - // This doesn't actually change the state of the system. + if (true) // currently no mainline libogc uCode has this issue fixed + { + // The relevant code looks like this: + // + // lrs $acc1.m,@CMBL + // ... + // cmpi $acc1.m,#0xdead + // jeq task_terminate + // + // The cmpi instruction always sign-extends, so it will compare $acc1 with 0xff'dead'0000. + // However, recv_cmd runs in set16 mode, so the load to $acc1 will produce 0x00'dead'0000. + // This means that the comparison never succeeds, and no mail is sent in response to + // MAIL_TERMINATE. This means that __dsp_donecallback is never called (since that's + // normally called in response to DSP_DONE), so __aesnddspinit is never cleared, so + // AESND_Reset never returns, resulting in a hang. We always send the mail to avoid this + // hang. (It's possible to exit without calling AESND_Reset, so most homebrew probably + // isn't affected by this bug in the first place.) + // + // A fix exists, but has not yet been added to mainline libogc: + // https://github.com/extremscorner/libogc2/commit/38edc9db93232faa612f680c91be1eb4d95dd1c6 + WARN_LOG_FMT(DSPHLE, "AESndUCode - MAIL_TERMINATE is broken in this version of the " + "uCode; this will hang on real hardware or with DSP LLE"); + } + // This doesn't actually change the state of the DSP code. m_mail_handler.PushMail(DSP_DONE, true); break; default: From 76b4318b88cb952750da158809e68274adbd9493 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 18 Jul 2022 21:45:27 -0700 Subject: [PATCH 471/659] CPUDetect: improve win/arm64 support read brand_string on macos/arm64 remove unused flags report family/model info instead of vendor name --- Source/Core/Common/ArmCPUDetect.cpp | 314 ++++++++++++++---- Source/Core/Common/CPUDetect.h | 38 +-- Source/Core/Common/StringUtil.cpp | 7 + Source/Core/Common/StringUtil.h | 2 + Source/Core/Common/x64CPUDetect.cpp | 252 +++++++------- .../PowerPC/Jit64Common/Jit64AsmCommon.cpp | 2 +- Source/Core/VideoCommon/VertexLoaderX64.cpp | 6 +- Source/Core/VideoCommon/VideoConfig.cpp | 4 +- Source/UnitTests/Common/x64EmitterTest.cpp | 26 +- 9 files changed, 422 insertions(+), 229 deletions(-) diff --git a/Source/Core/Common/ArmCPUDetect.cpp b/Source/Core/Common/ArmCPUDetect.cpp index a12deac71a..7fe2d14220 100644 --- a/Source/Core/Common/ArmCPUDetect.cpp +++ b/Source/Core/Common/ArmCPUDetect.cpp @@ -9,45 +9,209 @@ #include #include -#if !defined(_WIN32) && !defined(__APPLE__) +#ifdef __APPLE__ +#include +#elif defined(_WIN32) +#include +#include +#else #ifndef __FreeBSD__ #include #endif #include -#include #endif #include #include "Common/CommonTypes.h" #include "Common/FileUtil.h" +#include "Common/StringUtil.h" -#ifndef WIN32 +#if defined(__APPLE__) || defined(__FreeBSD__) -const char procfile[] = "/proc/cpuinfo"; - -static std::string GetCPUString() +static bool SysctlByName(std::string* value, const std::string& name) { - const std::string marker = "Hardware\t: "; - std::string cpu_string = "Unknown"; + size_t value_len = 0; + if (sysctlbyname(name.c_str(), nullptr, &value_len, nullptr, 0)) + return false; + value->resize(value_len); + if (sysctlbyname(name.c_str(), value->data(), &value_len, nullptr, 0)) + return false; + + TruncateToCString(value); + return true; +} + +#endif + +#if defined(_WIN32) + +static constexpr char SUBKEY_CORE0[] = R"(HARDWARE\DESCRIPTION\System\CentralProcessor\0)"; + +// Identifier: human-readable version of CPUID +// ProcessorNameString: marketing name of the processor +// VendorIdentifier: vendor company name +// There are some other maybe-interesting values nearby, BIOS info etc. +static bool ReadProcessorString(std::string* value, const std::string& name) +{ + const DWORD flags = RRF_RT_REG_SZ | RRF_NOEXPAND; + DWORD value_len = 0; + auto status = RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, name.c_str(), flags, nullptr, + nullptr, &value_len); + if (status != ERROR_SUCCESS && status != ERROR_MORE_DATA) + return false; + + value->resize(value_len); + status = RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, name.c_str(), flags, nullptr, + value->data(), &value_len); + if (status != ERROR_SUCCESS) + { + value->clear(); + return false; + } + + TruncateToCString(value); + return true; +} + +// Read cached register values from the registry +static bool ReadPrivilegedCPReg(u64* value, u32 reg) +{ + DWORD value_len = sizeof(*value); + // Not sure if the value name is padded or not + return RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, fmt::format("CP {:x}", reg).c_str(), + RRF_RT_REG_QWORD, nullptr, value, &value_len) == ERROR_SUCCESS; +} + +static bool Read_MIDR_EL1(u64* value) +{ + return ReadPrivilegedCPReg(value, ARM64_SYSREG(0b11, 0, 0, 0b0000, 0)); +} + +static bool Read_ID_AA64ISAR0_EL1(u64* value) +{ + return ReadPrivilegedCPReg(value, ARM64_SYSREG(0b11, 0, 0, 0b0110, 0)); +} + +static bool Read_ID_AA64MMFR1_EL1(u64* value) +{ + return ReadPrivilegedCPReg(value, ARM64_SYSREG(0b11, 0, 0, 0b0111, 1)); +} + +#endif + +#if defined(__linux__) + +static bool ReadDeviceTree(std::string* value, const std::string& name) +{ + const std::string path = std::string("/proc/device-tree/") + name; + std::ifstream file; + File::OpenFStream(file, path.c_str(), std::ios_base::in); + if (!file) + return false; + + file >> *value; + return true; +} + +static std::string ReadCpuinfoField(const std::string& field) +{ std::string line; std::ifstream file; - File::OpenFStream(file, procfile, std::ios_base::in); - + File::OpenFStream(file, "/proc/cpuinfo", std::ios_base::in); if (!file) - return cpu_string; + return {}; while (std::getline(file, line)) { - if (line.find(marker) != std::string::npos) - { - cpu_string = line.substr(marker.length()); - break; - } + if (!StringBeginsWith(line, field)) + continue; + auto non_tab = line.find_first_not_of("\t", field.length()); + if (non_tab == line.npos) + continue; + if (line[non_tab] != ':') + continue; + auto value_start = line.find_first_not_of(" ", non_tab + 1); + if (value_start == line.npos) + continue; + return line.substr(value_start); } + return {}; +} - return cpu_string; +static bool Read_MIDR_EL1_Sysfs(u64* value) +{ + std::ifstream file; + File::OpenFStream(file, "/sys/devices/system/cpu/cpu0/regs/identification/midr_el1", + std::ios_base::in); + if (!file) + return false; + + file >> std::hex >> *value; + return true; +} + +#endif + +#if defined(__linux__) || defined(__FreeBSD__) + +static u32 ReadHwCap(u32 type) +{ +#if defined(__linux__) + return getauxval(type); +#elif defined(__FreeBSD__) + u_long hwcap = 0; + elf_aux_info(type, &hwcap, sizeof(hwcap)); + return hwcap; +#endif +} + +// For "Direct" reads, value gets filled via emulation, hence: +// "there is no guarantee that the value reflects the processor that it is currently executing on" +// On big.LITTLE systems, the value may be unrelated to the core this is invoked on, and unless +// other measures are taken, executing the instruction may cause the caller to be switched onto a +// different core when it resumes (and of course, caller could be preempted at any other time as +// well). +static inline u64 Read_MIDR_EL1_Direct() +{ + u64 value; + __asm__ __volatile__("mrs %0, MIDR_EL1" : "=r"(value)); + return value; +} + +static bool Read_MIDR_EL1(u64* value) +{ +#ifdef __linux__ + if (Read_MIDR_EL1_Sysfs(value)) + return true; +#endif + + bool id_reg_user_access = ReadHwCap(AT_HWCAP) & HWCAP_CPUID; +#ifdef __FreeBSD__ + // FreeBSD kernel has support but doesn't seem to indicate it? + // see user_mrs_handler + id_reg_user_access = true; +#endif + if (!id_reg_user_access) + return false; + *value = Read_MIDR_EL1_Direct(); + return true; +} + +#endif + +#ifndef __APPLE__ + +static std::string MIDRToString(u64 midr) +{ + u8 implementer = (midr >> 24) & 0xff; + u8 variant = (midr >> 20) & 0xf; + u8 arch = (midr >> 16) & 0xf; + u16 part_num = (midr >> 4) & 0xfff; + u8 revision = midr & 0xf; + return fmt::format("{:02X}:{:X}:{:04b}:{:03X}:{:X}", implementer, variant, arch, part_num, + revision); } #endif @@ -59,82 +223,100 @@ CPUInfo::CPUInfo() Detect(); } -// Detects the various CPU features void CPUInfo::Detect() { - // Set some defaults here - HTT = false; - OS64bit = true; - CPU64bit = true; - Mode64bit = true; vendor = CPUVendor::ARM; bFMA = true; bFlushToZero = true; - bAFP = false; + + num_cores = std::max(static_cast(std::thread::hardware_concurrency()), 1); #ifdef __APPLE__ - num_cores = std::thread::hardware_concurrency(); + SysctlByName(&model_name, "machdep.cpu.brand_string"); // M-series CPUs have all of these - bFP = true; - bASIMD = true; + // Apparently the world has accepted that these can be assumed supported "for all time". + // see https://github.com/golang/go/issues/42747 bAES = true; bSHA1 = true; bSHA2 = true; bCRC32 = true; #elif defined(_WIN32) - num_cores = std::thread::hardware_concurrency(); + // NOTE All this info is from cpu core 0 only. - // Windows does not provide any mechanism for querying the system registers on ARMv8, unlike Linux - // which traps the register reads and emulates them in the kernel. There are environment variables - // containing some of the CPU-specific values, which we could use for a lookup table in the - // future. For now, assume all features are present as all known devices which are Windows-on-ARM - // compatible also support these extensions. - bFP = true; - bASIMD = true; - bAES = true; - bCRC32 = true; - bSHA1 = true; - bSHA2 = true; -#else - // Get the information about the CPU - num_cores = sysconf(_SC_NPROCESSORS_CONF); - strncpy(cpu_string, GetCPUString().c_str(), sizeof(cpu_string)); + ReadProcessorString(&model_name, "ProcessorNameString"); -#ifdef __FreeBSD__ - u_long hwcaps = 0; - elf_aux_info(AT_HWCAP, &hwcaps, sizeof(u_long)); + u64 reg = 0; + // Attempt to be forward-compatible: perform inverted check against disabled feature states. + if (Read_ID_AA64ISAR0_EL1(®)) + { + bAES = ((reg >> 4) & 0xf) != 0; + bSHA1 = ((reg >> 8) & 0xf) != 0; + bSHA2 = ((reg >> 12) & 0xf) != 0; + bCRC32 = ((reg >> 16) & 0xf) != 0; + } + if (Read_ID_AA64MMFR1_EL1(®)) + { + // Introduced in Armv8.7, where AFP must be supported if AdvSIMD and FP both are. + bAFP = ((reg >> 44) & 0xf) != 0; + } + // Pre-decoded MIDR_EL1 could be read with ReadProcessorString(.., "Identifier"), + // but we want format to match across all platforms where possible. + if (Read_MIDR_EL1(®)) + { + cpu_id = MIDRToString(reg); + } #else - unsigned long hwcaps = getauxval(AT_HWCAP); + // Linux, Android, and FreeBSD + +#if defined(__FreeBSD__) + SysctlByName(&model_name, "hw.model"); +#elif defined(__linux__) + if (!ReadDeviceTree(&model_name, "model")) + { + // This doesn't seem to work on modern arm64 kernels + model_name = ReadCpuinfoField("Hardware"); + } #endif - bFP = hwcaps & HWCAP_FP; - bASIMD = hwcaps & HWCAP_ASIMD; - bAES = hwcaps & HWCAP_AES; - bCRC32 = hwcaps & HWCAP_CRC32; - bSHA1 = hwcaps & HWCAP_SHA1; - bSHA2 = hwcaps & HWCAP_SHA2; + + const u32 hwcap = ReadHwCap(AT_HWCAP); + bAES = hwcap & HWCAP_AES; + bCRC32 = hwcap & HWCAP_CRC32; + bSHA1 = hwcap & HWCAP_SHA1; + bSHA2 = hwcap & HWCAP_SHA2; + +#if defined(AT_HWCAP2) && defined(HWCAP2_AFP) + const u32 hwcap2 = ReadHwCap(AT_HWCAP2); + bAFP = hwcap2 & HWCAP2_AFP; #endif + + u64 midr = 0; + if (Read_MIDR_EL1(&midr)) + { + cpu_id = MIDRToString(midr); + } +#endif + + model_name = ReplaceAll(model_name, ",", "_"); + cpu_id = ReplaceAll(cpu_id, ",", "_"); } -// Turn the CPU info into a string we can show std::string CPUInfo::Summarize() { - std::string sum; - if (num_cores == 1) - sum = fmt::format("{}, 1 core", cpu_string); - else - sum = fmt::format("{}, {} cores", cpu_string, num_cores); + std::vector sum; + sum.push_back(model_name); + sum.push_back(cpu_id); + if (bAFP) + sum.push_back("AFP"); if (bAES) - sum += ", AES"; + sum.push_back("AES"); if (bCRC32) - sum += ", CRC32"; + sum.push_back("CRC32"); if (bSHA1) - sum += ", SHA1"; + sum.push_back("SHA1"); if (bSHA2) - sum += ", SHA2"; - if (CPU64bit) - sum += ", 64-bit"; + sum.push_back("SHA2"); - return sum; + return JoinStrings(sum, ","); } diff --git a/Source/Core/Common/CPUDetect.h b/Source/Core/Common/CPUDetect.h index db377a2006..5a4fac2364 100644 --- a/Source/Core/Common/CPUDetect.h +++ b/Source/Core/Common/CPUDetect.h @@ -16,62 +16,52 @@ enum class CPUVendor struct CPUInfo { - CPUVendor vendor = CPUVendor::Intel; + CPUVendor vendor = CPUVendor::Other; - char cpu_string[0x41] = {}; - char brand_string[0x21] = {}; - bool OS64bit = false; - bool CPU64bit = false; - bool Mode64bit = false; + std::string cpu_id; + std::string model_name; bool HTT = false; int num_cores = 0; - bool bSSE = false; - bool bSSE2 = false; bool bSSE3 = false; bool bSSSE3 = false; - bool bPOPCNT = false; bool bSSE4_1 = false; bool bSSE4_2 = false; bool bLZCNT = false; - bool bSSE4A = false; bool bAVX = false; - bool bAVX2 = false; bool bBMI1 = false; bool bBMI2 = false; - // PDEP and PEXT are ridiculously slow on AMD Zen1, Zen1+ and Zen2 (Family 23) - bool bFastBMI2 = false; + // PDEP and PEXT are ridiculously slow on AMD Zen1, Zen1+ and Zen2 (Family 17h) + bool bBMI2FastParallelBitOps = false; bool bFMA = false; bool bFMA4 = false; bool bAES = false; - // FXSAVE/FXRSTOR - bool bFXSR = false; bool bMOVBE = false; // This flag indicates that the hardware supports some mode // in which denormal inputs _and_ outputs are automatically set to (signed) zero. bool bFlushToZero = false; - bool bLAHFSAHF64 = false; - bool bLongMode = false; bool bAtom = false; - bool bZen1p2 = false; - - // ARMv8 specific - bool bFP = false; - bool bASIMD = false; bool bCRC32 = false; bool bSHA1 = false; bool bSHA2 = false; + + // ARMv8 specific bool bAFP = false; // Alternate floating-point behavior // Call Detect() explicit CPUInfo(); - // Turn the CPU info into a string we can show + // The returned string consists of ",," + // Where: + // model_name and cpud_id may be zero-length + // model_name is human-readable marketing name + // cpu_id is ':'-delimited string of id info + // flags are optionally included if the related feature is supported and reporting its enablement + // seems useful to report std::string Summarize(); private: - // Detects the various CPU features void Detect(); }; diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index c498e261fd..2ab4601439 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -248,6 +248,13 @@ void ReplaceBreaksWithSpaces(std::string& str) std::replace(str.begin(), str.end(), '\n', ' '); } +void TruncateToCString(std::string* s) +{ + const size_t terminator = s->find_first_of('\0'); + if (terminator != s->npos) + s->resize(terminator); +} + bool TryParse(const std::string& str, bool* const output) { float value; diff --git a/Source/Core/Common/StringUtil.h b/Source/Core/Common/StringUtil.h index 5db7cbfa37..e99e36dab1 100644 --- a/Source/Core/Common/StringUtil.h +++ b/Source/Core/Common/StringUtil.h @@ -53,6 +53,8 @@ std::string ReplaceAll(std::string result, std::string_view src, std::string_vie void ReplaceBreaksWithSpaces(std::string& str); +void TruncateToCString(std::string* s); + bool TryParse(const std::string& str, bool* output); template || std::is_enum_v>* = nullptr> diff --git a/Source/Core/Common/x64CPUDetect.cpp b/Source/Core/Common/x64CPUDetect.cpp index 5f90246302..dedf02c05e 100644 --- a/Source/Core/Common/x64CPUDetect.cpp +++ b/Source/Core/Common/x64CPUDetect.cpp @@ -11,9 +11,12 @@ #include #include +#include + #include "Common/CommonTypes.h" #include "Common/Intrinsics.h" #include "Common/MsgHandler.h" +#include "Common/StringUtil.h" #ifndef _WIN32 @@ -38,20 +41,23 @@ static inline void __cpuidex(int info[4], int function_id, int subfunction_id) #endif } -static inline void __cpuid(int info[4], int function_id) +constexpr u32 XCR_XFEATURE_ENABLED_MASK = 0; + +static u64 xgetbv(u32 index) { - return __cpuidex(info, function_id, 0); + u32 eax, edx; + __asm__ __volatile__("xgetbv" : "=a"(eax), "=d"(edx) : "c"(index)); + return ((u64)edx << 32) | eax; } -#endif // ifndef _WIN32 +#else -#ifdef _WIN32 +constexpr u32 XCR_XFEATURE_ENABLED_MASK = _XCR_XFEATURE_ENABLED_MASK; static u64 xgetbv(u32 index) { return _xgetbv(index); } -constexpr u32 XCR_XFEATURE_ENABLED_MASK = _XCR_XFEATURE_ENABLED_MASK; static void WarnIfRunningUnderEmulation() { @@ -76,17 +82,21 @@ static void WarnIfRunningUnderEmulation() "Please run the ARM64 build of Dolphin for a better experience."); } -#else - -static u64 xgetbv(u32 index) -{ - u32 eax, edx; - __asm__ __volatile__("xgetbv" : "=a"(eax), "=d"(edx) : "c"(index)); - return ((u64)edx << 32) | eax; -} -constexpr u32 XCR_XFEATURE_ENABLED_MASK = 0; #endif // ifdef _WIN32 +struct CPUIDResult +{ + u32 eax{}, ebx{}, ecx{}, edx{}; +}; +static_assert(sizeof(CPUIDResult) == sizeof(u32) * 4); + +static inline CPUIDResult cpuid(int function_id, int subfunction_id = 0) +{ + CPUIDResult info; + __cpuidex((int*)&info, function_id, subfunction_id); + return info; +} + CPUInfo cpu_info; CPUInfo::CPUInfo() @@ -94,196 +104,174 @@ CPUInfo::CPUInfo() Detect(); } -// Detects the various CPU features void CPUInfo::Detect() { #ifdef _WIN32 WarnIfRunningUnderEmulation(); #endif -#ifdef _M_X86_64 - Mode64bit = true; - OS64bit = true; -#endif - num_cores = 1; - - // Set obvious defaults, for extra safety - if (Mode64bit) - { - bSSE = true; - bSSE2 = true; - bLongMode = true; - } + // This should be much more reliable and easier than trying to get the number of cores out of the + // CPUID data ourselves. + num_cores = std::max(static_cast(std::thread::hardware_concurrency()), 1); // Assume CPU supports the CPUID instruction. Those that don't can barely - // boot modern OS:es anyway. - int cpu_id[4]; + // boot modern OS anyway. - // Detect CPU's CPUID capabilities, and grab CPU string - __cpuid(cpu_id, 0x00000000); - u32 max_std_fn = cpu_id[0]; // EAX - std::memcpy(&brand_string[0], &cpu_id[1], sizeof(int)); - std::memcpy(&brand_string[4], &cpu_id[3], sizeof(int)); - std::memcpy(&brand_string[8], &cpu_id[2], sizeof(int)); - __cpuid(cpu_id, 0x80000000); - u32 max_ex_fn = cpu_id[0]; - if (!strcmp(brand_string, "GenuineIntel")) + // Detect CPU's CPUID capabilities and grab vendor string. + auto info = cpuid(0); + const u32 func_id_max = info.eax; + + std::string vendor_id; + vendor_id.resize(sizeof(u32) * 3); + std::memcpy(&vendor_id[0], &info.ebx, sizeof(u32)); + std::memcpy(&vendor_id[4], &info.edx, sizeof(u32)); + std::memcpy(&vendor_id[8], &info.ecx, sizeof(u32)); + TruncateToCString(&vendor_id); + if (vendor_id == "GenuineIntel") vendor = CPUVendor::Intel; - else if (!strcmp(brand_string, "AuthenticAMD")) + else if (vendor_id == "AuthenticAMD") vendor = CPUVendor::AMD; else vendor = CPUVendor::Other; - // Set reasonable default brand string even if brand string not available. - strcpy(cpu_string, brand_string); - // Detect family and other misc stuff. - bool ht = false; - HTT = ht; - if (max_std_fn >= 1) + bool is_amd_family_17 = false; + bool has_sse = false; + if (func_id_max >= 1) { - __cpuid(cpu_id, 0x00000001); - int family = ((cpu_id[0] >> 8) & 0xf) + ((cpu_id[0] >> 20) & 0xff); - int model = ((cpu_id[0] >> 4) & 0xf) + ((cpu_id[0] >> 12) & 0xf0); + info = cpuid(1); + const u32 version = info.eax; + const u32 family = ((version >> 8) & 0xf) + ((version >> 20) & 0xff); + const u32 model = ((version >> 4) & 0xf) + ((version >> 12) & 0xf0); + const u32 stepping = version & 0xf; + + cpu_id = fmt::format("{:02X}:{:02X}:{:X}", family, model, stepping); + // Detect people unfortunate enough to be running Dolphin on an Atom - if (family == 6 && + if (vendor == CPUVendor::Intel && family == 6 && (model == 0x1C || model == 0x26 || model == 0x27 || model == 0x35 || model == 0x36 || model == 0x37 || model == 0x4A || model == 0x4D || model == 0x5A || model == 0x5D)) bAtom = true; + // Detect AMD Zen1, Zen1+ and Zen2 - if (family == 23) - bZen1p2 = true; - ht = (cpu_id[3] >> 28) & 1; + if (vendor == CPUVendor::AMD && family == 0x17) + is_amd_family_17 = true; // AMD CPUs before Zen faked this flag and didn't actually // implement simultaneous multithreading (SMT; Intel calls it HTT) // but rather some weird middle-ground between 1-2 cores - HTT = ht && (vendor == CPUVendor::Intel || family >= 23); + const bool ht = (info.edx >> 28) & 1; + HTT = ht && (vendor == CPUVendor::Intel || (vendor == CPUVendor::AMD && family >= 0x17)); - if ((cpu_id[3] >> 25) & 1) - bSSE = true; - if ((cpu_id[3] >> 26) & 1) - bSSE2 = true; - if ((cpu_id[2]) & 1) + if ((info.edx >> 25) & 1) + has_sse = true; + if (info.ecx & 1) bSSE3 = true; - if ((cpu_id[2] >> 9) & 1) + if ((info.ecx >> 9) & 1) bSSSE3 = true; - if ((cpu_id[2] >> 19) & 1) + if ((info.ecx >> 19) & 1) bSSE4_1 = true; - if ((cpu_id[2] >> 20) & 1) + if ((info.ecx >> 20) & 1) bSSE4_2 = true; - if ((cpu_id[2] >> 22) & 1) + if ((info.ecx >> 22) & 1) bMOVBE = true; - if ((cpu_id[2] >> 25) & 1) + if ((info.ecx >> 25) & 1) bAES = true; - if ((cpu_id[3] >> 24) & 1) - { - // We can use FXSAVE. - bFXSR = true; - } - // AVX support requires 3 separate checks: // - Is the AVX bit set in CPUID? // - Is the XSAVE bit set in CPUID? // - XGETBV result has the XCR bit set. - if (((cpu_id[2] >> 28) & 1) && ((cpu_id[2] >> 27) & 1)) + if (((info.ecx >> 28) & 1) && ((info.ecx >> 27) & 1)) { - if ((xgetbv(XCR_XFEATURE_ENABLED_MASK) & 0x6) == 0x6) + // Check that XSAVE can be used for SSE and AVX + if ((xgetbv(XCR_XFEATURE_ENABLED_MASK) & 0b110) == 0b110) { bAVX = true; - if ((cpu_id[2] >> 12) & 1) + if ((info.ecx >> 12) & 1) bFMA = true; } } - if (max_std_fn >= 7) + if (func_id_max >= 7) { - __cpuidex(cpu_id, 0x00000007, 0x00000000); - // careful; we can't enable AVX2 unless the XSAVE/XGETBV checks above passed - if ((cpu_id[1] >> 5) & 1) - bAVX2 = bAVX; - if ((cpu_id[1] >> 3) & 1) + info = cpuid(7); + if ((info.ebx >> 3) & 1) bBMI1 = true; - if ((cpu_id[1] >> 8) & 1) + if ((info.ebx >> 8) & 1) bBMI2 = true; + if ((info.ebx >> 29) & 1) + bSHA1 = bSHA2 = true; } } - bFlushToZero = bSSE; - bFastBMI2 = bBMI2 && !bZen1p2; - - if (max_ex_fn >= 0x80000004) + info = cpuid(0x80000000); + const u32 ext_func_id_max = info.eax; + if (ext_func_id_max >= 0x80000004) { // Extract CPU model string - __cpuid(cpu_id, 0x80000002); - memcpy(cpu_string, cpu_id, sizeof(cpu_id)); - __cpuid(cpu_id, 0x80000003); - memcpy(cpu_string + 16, cpu_id, sizeof(cpu_id)); - __cpuid(cpu_id, 0x80000004); - memcpy(cpu_string + 32, cpu_id, sizeof(cpu_id)); + model_name.resize(sizeof(info) * 3); + for (u32 i = 0; i < 3; i++) + { + info = cpuid(0x80000002 + i); + memcpy(&model_name[sizeof(info) * i], &info, sizeof(info)); + } + TruncateToCString(&model_name); + model_name = StripSpaces(model_name); } - if (max_ex_fn >= 0x80000001) + if (ext_func_id_max >= 0x80000001) { // Check for more features. - __cpuid(cpu_id, 0x80000001); - if (cpu_id[2] & 1) - bLAHFSAHF64 = true; - if ((cpu_id[2] >> 5) & 1) + info = cpuid(0x80000001); + if ((info.ecx >> 5) & 1) bLZCNT = true; - if ((cpu_id[2] >> 16) & 1) + if ((info.ecx >> 16) & 1) bFMA4 = true; - if ((cpu_id[3] >> 29) & 1) - bLongMode = true; } - // this should be much more reliable and easier - // than trying to get the number of cores out of the CPUID data - // ourselves - num_cores = std::max(std::thread::hardware_concurrency(), 1u); + // Computed flags + bFlushToZero = has_sse; + bBMI2FastParallelBitOps = bBMI2 && !is_amd_family_17; + bCRC32 = bSSE4_2; + + model_name = ReplaceAll(model_name, ",", "_"); + cpu_id = ReplaceAll(cpu_id, ",", "_"); } -// Turn the CPU info into a string we can show std::string CPUInfo::Summarize() { - std::string sum(cpu_string); - sum += " ("; - sum += brand_string; - sum += ")"; + std::vector sum; + sum.push_back(model_name); + sum.push_back(cpu_id); - if (bSSE) - sum += ", SSE"; - if (bSSE2) - { - sum += ", SSE2"; - if (!bFlushToZero) - sum += " (but not DAZ!)"; - } if (bSSE3) - sum += ", SSE3"; + sum.push_back("SSE3"); if (bSSSE3) - sum += ", SSSE3"; + sum.push_back("SSSE3"); if (bSSE4_1) - sum += ", SSE4.1"; + sum.push_back("SSE4.1"); if (bSSE4_2) - sum += ", SSE4.2"; + sum.push_back("SSE4.2"); if (HTT) - sum += ", HTT"; + sum.push_back("HTT"); if (bAVX) - sum += ", AVX"; - if (bAVX2) - sum += ", AVX2"; + sum.push_back("AVX"); if (bBMI1) - sum += ", BMI1"; + sum.push_back("BMI1"); if (bBMI2) - sum += ", BMI2"; + sum.push_back("BMI2"); if (bFMA) - sum += ", FMA"; - if (bAES) - sum += ", AES"; + sum.push_back("FMA"); if (bMOVBE) - sum += ", MOVBE"; - if (bLongMode) - sum += ", 64-bit support"; - return sum; + sum.push_back("MOVBE"); + if (bAES) + sum.push_back("AES"); + if (bCRC32) + sum.push_back("CRC32"); + if (bSHA1) + sum.push_back("SHA1"); + if (bSHA2) + sum.push_back("SHA2"); + + return JoinStrings(sum, ","); } diff --git a/Source/Core/Core/PowerPC/Jit64Common/Jit64AsmCommon.cpp b/Source/Core/Core/PowerPC/Jit64Common/Jit64AsmCommon.cpp index 124218fb7f..1269b0ec23 100644 --- a/Source/Core/Core/PowerPC/Jit64Common/Jit64AsmCommon.cpp +++ b/Source/Core/Core/PowerPC/Jit64Common/Jit64AsmCommon.cpp @@ -65,7 +65,7 @@ void CommonAsmRoutines::GenConvertDoubleToSingle() // Don't Denormalize - if (cpu_info.bFastBMI2) + if (cpu_info.bBMI2FastParallelBitOps) { // Extract bits 0-1 and 5-34 MOV(64, R(RSCRATCH), Imm64(0xc7ffffffe0000000)); diff --git a/Source/Core/VideoCommon/VertexLoaderX64.cpp b/Source/Core/VideoCommon/VertexLoaderX64.cpp index 63752429aa..27e24e6f28 100644 --- a/Source/Core/VideoCommon/VertexLoaderX64.cpp +++ b/Source/Core/VideoCommon/VertexLoaderX64.cpp @@ -299,7 +299,7 @@ void VertexLoaderX64::ReadColor(OpArg data, VertexComponentFormat attribute, Col // RRRRRGGG GGGBBBBB // AAAAAAAA BBBBBBBB GGGGGGGG RRRRRRRR LoadAndSwap(16, scratch1, data); - if (cpu_info.bBMI1 && cpu_info.bFastBMI2) + if (cpu_info.bBMI1 && cpu_info.bBMI2FastParallelBitOps) { MOV(32, R(scratch2), Imm32(0x07C3F7C0)); PDEP(32, scratch3, scratch1, R(scratch2)); @@ -339,7 +339,7 @@ void VertexLoaderX64::ReadColor(OpArg data, VertexComponentFormat attribute, Col // RRRRGGGG BBBBAAAA // AAAAAAAA BBBBBBBB GGGGGGGG RRRRRRRR LoadAndSwap(16, scratch1, data); - if (cpu_info.bFastBMI2) + if (cpu_info.bBMI2FastParallelBitOps) { MOV(32, R(scratch2), Imm32(0x0F0F0F0F)); PDEP(32, scratch1, scratch1, R(scratch2)); @@ -368,7 +368,7 @@ void VertexLoaderX64::ReadColor(OpArg data, VertexComponentFormat attribute, Col // AAAAAAAA BBBBBBBB GGGGGGGG RRRRRRRR data.AddMemOffset(-1); // subtract one from address so we can use a 32bit load and bswap LoadAndSwap(32, scratch1, data); - if (cpu_info.bFastBMI2) + if (cpu_info.bBMI2FastParallelBitOps) { MOV(32, R(scratch2), Imm32(0xFCFCFCFC)); PDEP(32, scratch1, scratch1, R(scratch2)); diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index c1ff163f9c..e13e8d96ac 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -179,8 +179,8 @@ bool VideoConfig::UsingUberShaders() const static u32 GetNumAutoShaderCompilerThreads() { - // Automatic number. We use clamp(cpus - 3, 1, 4). - return static_cast(std::min(std::max(cpu_info.num_cores - 3, 1), 4)); + // Automatic number. + return static_cast(std::clamp(cpu_info.num_cores - 3, 1, 4)); } static u32 GetNumAutoShaderPreCompilerThreads() diff --git a/Source/UnitTests/Common/x64EmitterTest.cpp b/Source/UnitTests/Common/x64EmitterTest.cpp index 439ac5e9d6..79e5eea8a2 100644 --- a/Source/UnitTests/Common/x64EmitterTest.cpp +++ b/Source/UnitTests/Common/x64EmitterTest.cpp @@ -92,7 +92,31 @@ class x64EmitterTest : public testing::Test protected: void SetUp() override { - memset(&cpu_info, 0x01, sizeof(cpu_info)); + // Ensure settings are constant no matter on which actual hardware the test runs. + // Attempt to maximize complex code coverage. Note that this will miss some paths. + cpu_info.vendor = CPUVendor::Intel; + cpu_info.cpu_id = "GenuineIntel"; + cpu_info.model_name = "Unknown"; + cpu_info.HTT = true; + cpu_info.num_cores = 8; + cpu_info.bSSE3 = true; + cpu_info.bSSSE3 = true; + cpu_info.bSSE4_1 = true; + cpu_info.bSSE4_2 = true; + cpu_info.bLZCNT = true; + cpu_info.bAVX = true; + cpu_info.bBMI1 = true; + cpu_info.bBMI2 = true; + cpu_info.bBMI2FastParallelBitOps = true; + cpu_info.bFMA = true; + cpu_info.bFMA4 = true; + cpu_info.bAES = true; + cpu_info.bMOVBE = true; + cpu_info.bFlushToZero = true; + cpu_info.bAtom = false; + cpu_info.bCRC32 = true; + cpu_info.bSHA1 = true; + cpu_info.bSHA2 = true; emitter.reset(new X64CodeBlock()); emitter->AllocCodeSpace(4096); From bd27e18d5102bef918bd8a9c24c4c7c24f4c5dd7 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Tue, 26 Jul 2022 02:01:25 -0700 Subject: [PATCH 472/659] Fix ARAM Expansion Writes Looks like the memcpy here had its args in the wrong order. --- Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp index 18d6244c30..34fdc1b613 100644 --- a/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp +++ b/Source/Core/Core/HW/HSP/HSP_DeviceARAMExpansion.cpp @@ -37,7 +37,7 @@ u64 CHSPDevice_ARAMExpansion::Read(u32 address) void CHSPDevice_ARAMExpansion::Write(u32 address, u64 value) { value = Common::swap64(value); - std::memcpy(&value, &m_ptr[address & m_mask], sizeof(value)); + std::memcpy(&m_ptr[address & m_mask], &value, sizeof(value)); } void CHSPDevice_ARAMExpansion::DoState(PointerWrap& p) From 7a03b1fe164aa069d0e86a4a2b586b46c855e9b5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 26 Jun 2022 12:22:03 -0700 Subject: [PATCH 473/659] UnitTests: Fix warnings from HermesText Most of these correspond to changes made in devkitPro/libogc@b1b8ecab3af3745c8df0b401abd512bdf5fcc011. The numeric vlaues of ACC0 and ACC1 in Dolphin are different (see b06d38389bddf9fc5962aecbe1b31292a71b80a5, though I'm not sure when this difference first appeared). Technically it's not even necessary to list the registers at the start like this anymore, but old programs do it, so it seems useful to have a test that covers it. The binary itself does not need to be changed; the warnings were simply stating that "although you wrote $ACL0, the generated binary instead is using $ACC0" or similar; by changing the code to use $ACC0 directly the warnings are resolved. --- Source/UnitTests/Core/DSP/HermesText.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Source/UnitTests/Core/DSP/HermesText.cpp b/Source/UnitTests/Core/DSP/HermesText.cpp index f7f83a9737..64f3694810 100644 --- a/Source/UnitTests/Core/DSP/HermesText.cpp +++ b/Source/UnitTests/Core/DSP/HermesText.cpp @@ -49,8 +49,8 @@ AXL1: equ 0x19 AXH0: equ 0x1A // SMP_R accel AXH1: equ 0x1b // SMP_L accel -ACC0: equ 0x1c // accumulator (global) -ACC1: equ 0x1d +ACC0: equ 0x20 // accumulator (global) +ACC1: equ 0x21 ACL0: equ 0x1c // Low accumulator ACL1: equ 0x1d @@ -567,7 +567,7 @@ no_delay: // test the freq value - clr $ACL0 + clr $ACC0 lr $ACH0, @FREQH_SMP lr $ACM0, @FREQL_SMP @@ -647,10 +647,10 @@ left_skip2: // adds the counter with the voice frequency and test if it >=48000 to get the next sample - clr $ACL1 + clr $ACC1 lr $ACH1, @COUNTERH_SMP lr $ACM1, @COUNTERL_SMP - clr $ACL0 + clr $ACC0 lr $ACH0, @FREQH_SMP lr $ACM0, @FREQL_SMP @@ -803,8 +803,8 @@ mono_8bits: andf $ACM1, #0x1 iflz // obtain sample0-sample1 from 8bits packet - asr $ACL0, #-8 - asl $ACL0, #8 + asr $ACC0, #-8 + asl $ACC0, #8 mrr $AXH1,$ACL0 mrr $AXH0,$ACL0 @@ -818,7 +818,7 @@ stereo_8bits: mrr $ACM0, $ACL0 andi $ACM0, #0xff00 mrr $AXH1, $ACM0 - lsl $ACL0, #8 + lsl $ACC0, #8 mrr $AXH0, $ACL0 jmp out_samp @@ -845,15 +845,15 @@ out_samp: // LEFT_VOLUME mrr $AXL0,$IX0 mul $AXL0,$AXH0 - movp $ACL0 - asr $ACL0,#-8 + movp $ACC0 + asr $ACC0,#-8 mrr $AXH0, $ACL0 // RIGHT VOLUME mrr $AXL1,$IX1 mul $AXL1,$AXH1 - movp $ACL0 - asr $ACL0,#-8 + movp $ACC0 + asr $ACC0,#-8 mrr $AXH1, $ACL0 loop_end: From 7e75bcd36fcccafcdb5ef74b5af353517b8b45c0 Mon Sep 17 00:00:00 2001 From: Josh <36666883+Hibyehello@users.noreply.github.com> Date: Tue, 26 Jul 2022 16:29:51 -0500 Subject: [PATCH 474/659] Use Dynamic last Log Type --- Source/Core/Common/Logging/Log.h | 3 +++ Source/Core/Common/Logging/LogManager.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Core/Common/Logging/Log.h b/Source/Core/Common/Logging/Log.h index 86a705e1ea..00ac869ac8 100644 --- a/Source/Core/Common/Logging/Log.h +++ b/Source/Core/Common/Logging/Log.h @@ -68,6 +68,9 @@ enum class LogType : int NUMBER_OF_LOGS // Must be last }; +constexpr LogType LAST_LOG_TYPE = + static_cast(static_cast(LogType::NUMBER_OF_LOGS) - 1); + enum class LogLevel : int { LNOTICE = 1, // VERY important information that is NOT errors. Like startup and OSReports. diff --git a/Source/Core/Common/Logging/LogManager.h b/Source/Core/Common/Logging/LogManager.h index acda7f7fe1..070edd82b4 100644 --- a/Source/Core/Common/Logging/LogManager.h +++ b/Source/Core/Common/Logging/LogManager.h @@ -76,7 +76,7 @@ private: LogManager& operator=(LogManager&&) = delete; LogLevel m_level; - EnumMap m_log{}; + EnumMap m_log{}; std::array m_listeners{}; BitSet32 m_listener_ids; size_t m_path_cutoff_point = 0; From 33b63a62d1a3381f8e7a6a7fa9aea984771586ab Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 26 Jul 2022 18:44:04 -0700 Subject: [PATCH 475/659] DSPHLE: Support padded version of libasnd uCode This is used by libogc2 and libogc-rice. --- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp | 16 +++++++++------- Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h | 10 ++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 1 + 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp index d00e82be03..3d8c6749e9 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.cpp @@ -54,6 +54,11 @@ constexpr u32 FLAGS_SAMPLE_FORMAT_BYTES_SHIFT = 16; constexpr u32 SAMPLE_RATE = 48000; +bool ASndUCode::UseNewFlagMasks() const +{ + return m_crc == HASH_2011 || m_crc == HASH_2020 || m_crc == HASH_2020_PAD; +} + ASndUCode::ASndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) { } @@ -239,9 +244,8 @@ void ASndUCode::DoMixing(u32 return_mail) // start_main - const u32 sample_format_mask = (m_crc == HASH_2011 || m_crc == HASH_2020) ? - NEW_FLAGS_SAMPLE_FORMAT_MASK : - OLD_FLAGS_SAMPLE_FORMAT_MASK; + const u32 sample_format_mask = + UseNewFlagMasks() ? NEW_FLAGS_SAMPLE_FORMAT_MASK : OLD_FLAGS_SAMPLE_FORMAT_MASK; const u32 sample_format = m_current_voice.flags & sample_format_mask; const u32 sample_format_step = (m_current_voice.flags & FLAGS_SAMPLE_FORMAT_BYTES_MASK) >> FLAGS_SAMPLE_FORMAT_BYTES_SHIFT; @@ -255,8 +259,7 @@ void ASndUCode::DoMixing(u32 return_mail) }; const auto sample_function = sample_selector[sample_format]; - const u32 pause_mask = - (m_crc == HASH_2011 || m_crc == HASH_2020) ? NEW_FLAGS_VOICE_PAUSE : OLD_FLAGS_VOICE_PAUSE; + const u32 pause_mask = UseNewFlagMasks() ? NEW_FLAGS_VOICE_PAUSE : OLD_FLAGS_VOICE_PAUSE; if ((m_current_voice.flags & pause_mask) == 0) { @@ -417,8 +420,7 @@ void ASndUCode::ChangeBuffer() m_current_voice.start_addr = m_current_voice.start_addr2; m_current_voice.backup_addr = m_current_voice.start_addr2; - const u32 loop_mask = - (m_crc == HASH_2011 || m_crc == HASH_2020) ? NEW_FLAGS_VOICE_LOOP : OLD_FLAGS_VOICE_LOOP; + const u32 loop_mask = UseNewFlagMasks() ? NEW_FLAGS_VOICE_LOOP : OLD_FLAGS_VOICE_LOOP; if ((m_current_voice.flags & loop_mask) == 0) { diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h index 419d19d92d..2849c80f8b 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ASnd.h @@ -43,6 +43,14 @@ public: // provided in the repo. There appear to be no behavior differences from the 2011 version. // https://github.com/devkitPro/libogc/compare/bfb705fe1607a3031d18b65d603975b68a1cffd4~...d20f9bdcfb43260c6c759f4fb98d724931443f93 static constexpr u32 HASH_2020 = 0xdbbeeb61; + // Variant of the above used in libogc-rice and libogc2 starting on December 11, 2020 and padded + // to 0x0620 bytes. These forks have gcdsptool generate a header file instead of a bin file + // (followed by bin2o), so padding is still applied (for libogc-rice, the header is manually + // generated, while libogc2 generates it as part of the build process). + // https://github.com/extremscorner/libogc2/commit/80e01cbd8ead0370d98e092b426f851f21175e60 + // https://github.com/extremscorner/libogc2/commit/0b64f879808953d80ba06501a1c079b0fbf017d2 + // https://github.com/extremscorner/libogc-rice/commit/ce22c3269699fdbd474f2f28ca2ffca211954659 + static constexpr u32 HASH_2020_PAD = 0xbad876ef; private: void DMAInVoiceData(); @@ -52,6 +60,8 @@ private: void ChangeBuffer(); void DoMixing(u32 return_mail); + bool UseNewFlagMasks() const; + std::pair ReadSampleMono8Bits() const; std::pair ReadSampleStereo8Bits() const; std::pair ReadSampleMono16Bits() const; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index 72c387ed5e..f8ccee5deb 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -288,6 +288,7 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) case ASndUCode::HASH_2009: case ASndUCode::HASH_2011: case ASndUCode::HASH_2020: + case ASndUCode::HASH_2020_PAD: INFO_LOG_FMT(DSPHLE, "CRC {:08x}: ASnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); From cc02471da201b3733e01bca0e7eb3173934db41d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 26 Jul 2022 19:01:57 -0700 Subject: [PATCH 476/659] DSPHLE: Support padded versions of the libaesnd uCode This is used by libogc2 and libogc-rice. --- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp | 8 +++++--- Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h | 10 ++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp index 122044dda6..831fc4b684 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.cpp @@ -70,12 +70,14 @@ constexpr u32 ACCELERATOR_GAIN_16_BIT = 0x0800; bool AESndUCode::SwapLeftRight() const { - return m_crc == HASH_2012 || m_crc == HASH_EDUKE32 || m_crc == HASH_2020; + return m_crc == HASH_2012 || m_crc == HASH_EDUKE32 || m_crc == HASH_2020 || + m_crc == HASH_2020_PAD || m_crc == HASH_2022_PAD; } bool AESndUCode::UseNewFlagMasks() const { - return m_crc == HASH_EDUKE32 || m_crc == HASH_2020; + return m_crc == HASH_EDUKE32 || m_crc == HASH_2020 || m_crc == HASH_2020_PAD || + m_crc == HASH_2022_PAD; } AESndUCode::AESndUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc) @@ -161,7 +163,7 @@ void AESndUCode::HandleMail(u32 mail) break; case MAIL_TERMINATE: INFO_LOG_FMT(DSPHLE, "AESndUCode - MAIL_TERMINATE: {:08x}", mail); - if (true) // currently no mainline libogc uCode has this issue fixed + if (m_crc != HASH_2022_PAD) { // The relevant code looks like this: // diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h index 5991d3c027..26a6dc2d5c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AESnd.h @@ -39,6 +39,16 @@ public: // First included with libogc 2.1.0 on June 15, 2020: https://devkitpro.org/viewtopic.php?t=9079 // https://github.com/devkitPro/libogc/commit/eac8fe2c29aa790d552dd6166a1fb195dfdcb825 static constexpr u32 HASH_2020 = 0x84c680a9; + // Padded version of the above (0x0400 bytes), added to libogc-rice on June 16, 2012 (that's the + // commit author date; the commit date is November 24, 2016) and libogc2 on 25 May 2020. Used by + // Not64 and OpenTTD (starting with the December 1, 2012 release). + // https://github.com/extremscorner/libogc-rice/commit/cfddd4f3bec77812d6d333954e39d401d2276cd8 + // https://github.com/extremscorner/libogc2/commit/89ae39544e22f720a9c986af3524f7e6f20e7293 + static constexpr u32 HASH_2020_PAD = 0xa02a6131; + // July 19, 2022 version (padded to 0x0400 bytes) - fixed MAIL_TERMINATE. This is not currently + // included in libogc, only in libogc2 and libogc-rice (which generate a padded header file). + // https://github.com/extremscorner/libogc2/commit/38edc9db93232faa612f680c91be1eb4d95dd1c6 + static constexpr u32 HASH_2022_PAD = 0x2e5e4100; private: void DMAInParameterBlock(); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp index f8ccee5deb..136eb3a87f 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp @@ -296,6 +296,8 @@ std::unique_ptr UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii) case AESndUCode::HASH_2012: case AESndUCode::HASH_EDUKE32: case AESndUCode::HASH_2020: + case AESndUCode::HASH_2020_PAD: + case AESndUCode::HASH_2022_PAD: INFO_LOG_FMT(DSPHLE, "CRC {:08x}: AESnd chosen (Homebrew)", crc); return std::make_unique(dsphle, crc); From dd29a54cf6351e79d5c8040f86383eb585ea4aa2 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 23 Jul 2022 22:45:10 -0700 Subject: [PATCH 477/659] introduce wrapper for SHA1 functionality --- Source/Core/Common/CMakeLists.txt | 2 + Source/Core/Common/Crypto/SHA1.cpp | 51 ++++++++++++++++ Source/Core/Common/Crypto/SHA1.h | 53 +++++++++++++++++ Source/Core/Core/DolphinAnalytics.cpp | 5 +- Source/Core/Core/HW/GBACore.cpp | 8 +-- Source/Core/Core/HW/WiiSave.cpp | 6 +- Source/Core/Core/IOS/ES/Formats.cpp | 6 +- Source/Core/Core/IOS/ES/Identity.cpp | 8 +-- Source/Core/Core/IOS/ES/NandUtils.cpp | 6 +- Source/Core/Core/IOS/ES/TitleManagement.cpp | 6 +- Source/Core/Core/IOS/IOSC.cpp | 16 ++--- Source/Core/DiscIO/Volume.cpp | 13 ++-- Source/Core/DiscIO/Volume.h | 7 +-- Source/Core/DiscIO/VolumeDisc.cpp | 5 +- Source/Core/DiscIO/VolumeDisc.h | 5 +- Source/Core/DiscIO/VolumeGC.cpp | 13 ++-- Source/Core/DiscIO/VolumeVerifier.cpp | 11 ++-- Source/Core/DiscIO/VolumeVerifier.h | 5 +- Source/Core/DiscIO/VolumeWad.cpp | 18 ++---- Source/Core/DiscIO/VolumeWii.cpp | 66 +++++++++------------ Source/Core/DiscIO/VolumeWii.h | 14 ++--- Source/Core/DiscIO/WIABlob.cpp | 47 +++++++-------- Source/Core/DiscIO/WIABlob.h | 10 ++-- Source/Core/DiscIO/WIACompression.cpp | 36 +++++------ Source/Core/DiscIO/WIACompression.h | 8 +-- Source/Core/DolphinLib.props | 2 + Source/Core/UICommon/GameFile.cpp | 28 ++++----- 27 files changed, 256 insertions(+), 199 deletions(-) create mode 100644 Source/Core/Common/Crypto/SHA1.cpp create mode 100644 Source/Core/Common/Crypto/SHA1.h diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 8502f46a74..92b47f0f66 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -31,6 +31,8 @@ add_library(common Crypto/bn.h Crypto/ec.cpp Crypto/ec.h + Crypto/SHA1.cpp + Crypto/SHA1.h Debug/MemoryPatches.cpp Debug/MemoryPatches.h Debug/Threads.h diff --git a/Source/Core/Common/Crypto/SHA1.cpp b/Source/Core/Common/Crypto/SHA1.cpp new file mode 100644 index 0000000000..6987f3670b --- /dev/null +++ b/Source/Core/Common/Crypto/SHA1.cpp @@ -0,0 +1,51 @@ +// Copyright 2017 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "SHA1.h" + +#include + +#include + +#include "Common/Assert.h" +#include "Common/CPUDetect.h" +#include "Common/CommonTypes.h" + +namespace Common::SHA1 +{ +class ContextMbed final : public Context +{ +public: + ContextMbed() + { + mbedtls_sha1_init(&ctx); + ASSERT(!mbedtls_sha1_starts_ret(&ctx)); + } + ~ContextMbed() { mbedtls_sha1_free(&ctx); } + virtual void Update(const u8* msg, size_t len) override + { + ASSERT(!mbedtls_sha1_update_ret(&ctx, msg, len)); + } + virtual Digest Finish() override + { + Digest digest; + ASSERT(!mbedtls_sha1_finish_ret(&ctx, digest.data())); + return digest; + } + +private: + mbedtls_sha1_context ctx{}; +}; + +std::unique_ptr CreateContext() +{ + return std::make_unique(); +} + +Digest CalculateDigest(const u8* msg, size_t len) +{ + auto ctx = CreateContext(); + ctx->Update(msg, len); + return ctx->Finish(); +} +} // namespace Common::SHA1 diff --git a/Source/Core/Common/Crypto/SHA1.h b/Source/Core/Common/Crypto/SHA1.h new file mode 100644 index 0000000000..9bb188494e --- /dev/null +++ b/Source/Core/Common/Crypto/SHA1.h @@ -0,0 +1,53 @@ +// Copyright 2017 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "Common/Assert.h" +#include "Common/CommonTypes.h" + +namespace Common::SHA1 +{ +using Digest = std::array; +static constexpr size_t DIGEST_LEN = sizeof(Digest); + +class Context +{ +public: + virtual ~Context() = default; + virtual void Update(const u8* msg, size_t len) = 0; + void Update(const std::vector& msg) { return Update(msg.data(), msg.size()); } + virtual Digest Finish() = 0; +}; + +std::unique_ptr CreateContext(); + +Digest CalculateDigest(const u8* msg, size_t len); + +template +inline Digest CalculateDigest(const std::vector& msg) +{ + static_assert(std::is_trivially_copyable_v); + ASSERT(std::numeric_limits::max() / sizeof(T) >= msg.size()); + return CalculateDigest(reinterpret_cast(msg.data()), sizeof(T) * msg.size()); +} + +inline Digest CalculateDigest(const std::string_view& msg) +{ + return CalculateDigest(reinterpret_cast(msg.data()), msg.size()); +} + +template +inline Digest CalculateDigest(const std::array& msg) +{ + static_assert(std::is_trivially_copyable_v); + return CalculateDigest(reinterpret_cast(msg.data()), sizeof(msg)); +} +} // namespace Common::SHA1 diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp index 42eb7febe1..cd481cd426 100644 --- a/Source/Core/Core/DolphinAnalytics.cpp +++ b/Source/Core/Core/DolphinAnalytics.cpp @@ -10,7 +10,6 @@ #include #include -#include #if defined(_WIN32) #include @@ -25,6 +24,7 @@ #include "Common/CPUDetect.h" #include "Common/CommonTypes.h" #include "Common/Config/Config.h" +#include "Common/Crypto/SHA1.h" #include "Common/Random.h" #include "Common/Timer.h" #include "Common/Version.h" @@ -100,9 +100,8 @@ void DolphinAnalytics::GenerateNewIdentity() std::string DolphinAnalytics::MakeUniqueId(std::string_view data) const { - std::array digest; const auto input = std::string{m_unique_id}.append(data); - mbedtls_sha1_ret(reinterpret_cast(input.c_str()), input.size(), digest.data()); + const auto digest = Common::SHA1::CalculateDigest(input); // Convert to hex string and truncate to 64 bits. std::string out; diff --git a/Source/Core/Core/HW/GBACore.cpp b/Source/Core/Core/HW/GBACore.cpp index 54da03092e..d60e1308ad 100644 --- a/Source/Core/Core/HW/GBACore.cpp +++ b/Source/Core/Core/HW/GBACore.cpp @@ -3,8 +3,6 @@ #include "Core/HW/GBACore.h" -#include - #define PYCPARSE // Remove static functions from the header #include #undef PYCPARSE @@ -20,6 +18,7 @@ #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" #include "Common/Config/Config.h" +#include "Common/Crypto/SHA1.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" #include "Common/MinizipUtil.h" @@ -143,11 +142,10 @@ static std::array GetROMHash(VFile* rom) size_t size = rom->size(rom); u8* buffer = static_cast(rom->map(rom, size, MAP_READ)); - std::array hash; - mbedtls_sha1_ret(buffer, size, hash.data()); + const auto digest = Common::SHA1::CalculateDigest(buffer, size); rom->unmap(rom, buffer, size); - return hash; + return digest; } Core::Core(int device_number) : m_device_number(device_number) diff --git a/Source/Core/Core/HW/WiiSave.cpp b/Source/Core/Core/HW/WiiSave.cpp index 62bbf9e7e0..57cb003aee 100644 --- a/Source/Core/Core/HW/WiiSave.cpp +++ b/Source/Core/Core/HW/WiiSave.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -24,6 +23,7 @@ #include "Common/Align.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Crypto/ec.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" @@ -439,14 +439,14 @@ private: return false; // Read data to sign. - std::array data_sha1; + Common::SHA1::Digest data_sha1; { const u32 data_size = bk_header->size_of_files + sizeof(BkHeader); auto data = std::make_unique(data_size); m_file.Seek(sizeof(Header), File::SeekOrigin::Begin); if (!m_file.ReadBytes(data.get(), data_size)) return false; - mbedtls_sha1_ret(data.get(), data_size, data_sha1.data()); + data_sha1 = Common::SHA1::CalculateDigest(data.get(), data_size); } // Sign the data. diff --git a/Source/Core/Core/IOS/ES/Formats.cpp b/Source/Core/Core/IOS/ES/Formats.cpp index 84dc8b150d..7adb86e772 100644 --- a/Source/Core/Core/IOS/ES/Formats.cpp +++ b/Source/Core/Core/IOS/ES/Formats.cpp @@ -14,11 +14,11 @@ #include #include -#include #include "Common/Assert.h" #include "Common/ChunkFile.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/NandPaths.h" #include "Common/StringUtil.h" @@ -109,10 +109,8 @@ static size_t GetIssuerOffset(SignatureType signature_type) std::array SignedBlobReader::GetSha1() const { - std::array sha1; const size_t skip = GetIssuerOffset(GetSignatureType()); - mbedtls_sha1_ret(m_bytes.data() + skip, m_bytes.size() - skip, sha1.data()); - return sha1; + return Common::SHA1::CalculateDigest(m_bytes.data() + skip, m_bytes.size() - skip); } bool SignedBlobReader::IsSignatureValid() const diff --git a/Source/Core/Core/IOS/ES/Identity.cpp b/Source/Core/Core/IOS/ES/Identity.cpp index c553958d46..1fbfec85ee 100644 --- a/Source/Core/Core/IOS/ES/Identity.cpp +++ b/Source/Core/Core/IOS/ES/Identity.cpp @@ -5,8 +5,7 @@ #include -#include - +#include "Common/Crypto/SHA1.h" #include "Common/Crypto/ec.h" #include "Common/Logging/Log.h" #include "Common/ScopeGuard.h" @@ -171,9 +170,8 @@ ReturnCode ESDevice::VerifySign(const std::vector& hash, const std::vector sha1; - mbedtls_sha1_ret(hash.data(), hash.size(), sha1.data()); - ret = iosc.VerifyPublicKeySign(sha1, ap_cert, ecc_signature, PID_ES); + const auto hash_digest = Common::SHA1::CalculateDigest(hash); + ret = iosc.VerifyPublicKeySign(hash_digest, ap_cert, ecc_signature, PID_ES); if (ret != IPC_SUCCESS) { ERROR_LOG_FMT(IOS_ES, "VerifySign: IOSC_VerifyPublicKeySign(data) failed with error {}", ret); diff --git a/Source/Core/Core/IOS/ES/NandUtils.cpp b/Source/Core/Core/IOS/ES/NandUtils.cpp index af0b17f993..f598ab2f99 100644 --- a/Source/Core/Core/IOS/ES/NandUtils.cpp +++ b/Source/Core/Core/IOS/ES/NandUtils.cpp @@ -12,9 +12,9 @@ #include #include -#include #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/NandPaths.h" #include "Common/ScopeGuard.h" @@ -197,9 +197,7 @@ ESDevice::GetStoredContentsFromTMD(const ES::TMDReader& tmd, std::vector content_data(file->GetStatus()->size); if (!file->Read(content_data.data(), content_data.size())) return false; - std::array sha1{}; - mbedtls_sha1_ret(content_data.data(), content_data.size(), sha1.data()); - return sha1 == content.sha1; + return Common::SHA1::CalculateDigest(content_data) == content.sha1; }); return stored_contents; diff --git a/Source/Core/Core/IOS/ES/TitleManagement.cpp b/Source/Core/Core/IOS/ES/TitleManagement.cpp index 2169185064..216e54855d 100644 --- a/Source/Core/Core/IOS/ES/TitleManagement.cpp +++ b/Source/Core/Core/IOS/ES/TitleManagement.cpp @@ -9,9 +9,9 @@ #include #include -#include #include "Common/Align.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/NandPaths.h" #include "Core/CommonTitles.h" @@ -353,9 +353,7 @@ IPCReply ESDevice::ImportContentData(Context& context, const IOCtlVRequest& requ static bool CheckIfContentHashMatches(const std::vector& content, const ES::Content& info) { - std::array sha1; - mbedtls_sha1_ret(content.data(), info.size, sha1.data()); - return sha1 == info.sha1; + return Common::SHA1::CalculateDigest(content.data(), info.size) == info.sha1; } static std::string GetImportContentPath(u64 title_id, u32 content_id) diff --git a/Source/Core/Core/IOS/IOSC.cpp b/Source/Core/Core/IOS/IOSC.cpp index d9dc0f1fb2..8ec6af4269 100644 --- a/Source/Core/Core/IOS/IOSC.cpp +++ b/Source/Core/Core/IOS/IOSC.cpp @@ -14,11 +14,11 @@ #include #include #include -#include #include "Common/Assert.h" #include "Common/ChunkFile.h" #include "Common/Crypto/AES.h" +#include "Common/Crypto/SHA1.h" #include "Common/Crypto/ec.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" @@ -249,8 +249,7 @@ ReturnCode IOSC::ComputeSharedKey(Handle dest_handle, Handle private_handle, Han const std::array shared_secret = Common::ec::ComputeSharedSecret(private_entry->data.data(), public_entry->data.data()); - std::array sha1; - mbedtls_sha1_ret(shared_secret.data(), shared_secret.size() / 2, sha1.data()); + const auto sha1 = Common::SHA1::CalculateDigest(shared_secret.data(), shared_secret.size() / 2); dest_entry->data.resize(AES128_KEY_SIZE); std::copy_n(sha1.cbegin(), AES128_KEY_SIZE, dest_entry->data.begin()); @@ -437,7 +436,6 @@ CertECC IOSC::GetDeviceCertificate() const void IOSC::Sign(u8* sig_out, u8* ap_cert_out, u64 title_id, const u8* data, u32 data_size) const { - std::array hash{}; std::array ap_priv{}; ap_priv[0x1d] = 1; @@ -451,13 +449,15 @@ void IOSC::Sign(u8* sig_out, u8* ap_cert_out, u64 title_id, const u8* data, u32 CertECC cert = MakeBlankEccCert(signer, name, ap_priv.data(), 0); // Sign the AP cert. const size_t skip = offsetof(CertECC, signature.issuer); - mbedtls_sha1_ret(reinterpret_cast(&cert) + skip, sizeof(cert) - skip, hash.data()); - cert.signature.sig = Common::ec::Sign(m_key_entries[HANDLE_CONSOLE_KEY].data.data(), hash.data()); + const auto ap_cert_digest = + Common::SHA1::CalculateDigest(reinterpret_cast(&cert) + skip, sizeof(cert) - skip); + cert.signature.sig = + Common::ec::Sign(m_key_entries[HANDLE_CONSOLE_KEY].data.data(), ap_cert_digest.data()); std::memcpy(ap_cert_out, &cert, sizeof(cert)); // Sign the data. - mbedtls_sha1_ret(data, data_size, hash.data()); - const auto signature = Common::ec::Sign(ap_priv.data(), hash.data()); + const auto data_digest = Common::SHA1::CalculateDigest(data, data_size); + const auto signature = Common::ec::Sign(ap_priv.data(), data_digest.data()); std::copy(signature.cbegin(), signature.cend(), sig_out); } diff --git a/Source/Core/DiscIO/Volume.cpp b/Source/Core/DiscIO/Volume.cpp index bf7ef4e019..b6d84254f0 100644 --- a/Source/Core/DiscIO/Volume.cpp +++ b/Source/Core/DiscIO/Volume.cpp @@ -12,9 +12,8 @@ #include #include -#include - #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/StringUtil.h" #include "Core/IOS/ES/Formats.h" @@ -33,21 +32,21 @@ const IOS::ES::TMDReader Volume::INVALID_TMD{}; const std::vector Volume::INVALID_CERT_CHAIN{}; template -static void AddToSyncHash(mbedtls_sha1_context* context, const T& data) +static void AddToSyncHash(Common::SHA1::Context* context, const T& data) { static_assert(std::is_trivially_copyable_v); - mbedtls_sha1_update_ret(context, reinterpret_cast(&data), sizeof(data)); + context->Update(reinterpret_cast(&data), sizeof(data)); } -void Volume::ReadAndAddToSyncHash(mbedtls_sha1_context* context, u64 offset, u64 length, +void Volume::ReadAndAddToSyncHash(Common::SHA1::Context* context, u64 offset, u64 length, const Partition& partition) const { std::vector buffer(length); if (Read(offset, length, buffer.data(), partition)) - mbedtls_sha1_update_ret(context, buffer.data(), buffer.size()); + context->Update(buffer); } -void Volume::AddTMDToSyncHash(mbedtls_sha1_context* context, const Partition& partition) const +void Volume::AddTMDToSyncHash(Common::SHA1::Context* context, const Partition& partition) const { // We want to hash some important parts of the TMD, but nothing that changes when fakesigning. // (Fakesigned WADs are very popular, and we don't want people with properly signed WADs to diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h index 574afd6f83..2c974f447d 100644 --- a/Source/Core/DiscIO/Volume.h +++ b/Source/Core/DiscIO/Volume.h @@ -11,9 +11,8 @@ #include #include -#include - #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/StringUtil.h" #include "Common/Swap.h" #include "Core/IOS/ES/Formats.h" @@ -164,9 +163,9 @@ protected: return CP1252ToUTF8(string); } - void ReadAndAddToSyncHash(mbedtls_sha1_context* context, u64 offset, u64 length, + void ReadAndAddToSyncHash(Common::SHA1::Context* context, u64 offset, u64 length, const Partition& partition) const; - void AddTMDToSyncHash(mbedtls_sha1_context* context, const Partition& partition) const; + void AddTMDToSyncHash(Common::SHA1::Context* context, const Partition& partition) const; virtual u32 GetOffsetShift() const { return 0; } static std::map ReadWiiNames(const std::vector& data); diff --git a/Source/Core/DiscIO/VolumeDisc.cpp b/Source/Core/DiscIO/VolumeDisc.cpp index 273ccc4efa..b32ddc6d17 100644 --- a/Source/Core/DiscIO/VolumeDisc.cpp +++ b/Source/Core/DiscIO/VolumeDisc.cpp @@ -8,9 +8,8 @@ #include #include -#include - #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "DiscIO/DiscUtils.h" #include "DiscIO/Enums.h" #include "DiscIO/Filesystem.h" @@ -95,7 +94,7 @@ bool VolumeDisc::IsNKit() const return ReadSwapped(0x200, PARTITION_NONE) == NKIT_MAGIC; } -void VolumeDisc::AddGamePartitionToSyncHash(mbedtls_sha1_context* context) const +void VolumeDisc::AddGamePartitionToSyncHash(Common::SHA1::Context* context) const { const Partition partition = GetGamePartition(); diff --git a/Source/Core/DiscIO/VolumeDisc.h b/Source/Core/DiscIO/VolumeDisc.h index fc4964703f..17c76ae689 100644 --- a/Source/Core/DiscIO/VolumeDisc.h +++ b/Source/Core/DiscIO/VolumeDisc.h @@ -6,9 +6,8 @@ #include #include -#include - #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "DiscIO/Volume.h" namespace DiscIO @@ -27,7 +26,7 @@ public: protected: Region RegionCodeToRegion(std::optional region_code) const; - void AddGamePartitionToSyncHash(mbedtls_sha1_context* context) const; + void AddGamePartitionToSyncHash(Common::SHA1::Context* context) const; }; } // namespace DiscIO diff --git a/Source/Core/DiscIO/VolumeGC.cpp b/Source/Core/DiscIO/VolumeGC.cpp index 946364b4f7..8279b84820 100644 --- a/Source/Core/DiscIO/VolumeGC.cpp +++ b/Source/Core/DiscIO/VolumeGC.cpp @@ -11,11 +11,10 @@ #include #include -#include - #include "Common/Assert.h" #include "Common/ColorUtil.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/MsgHandler.h" #include "Common/StringUtil.h" @@ -152,15 +151,11 @@ bool VolumeGC::IsDatelDisc() const std::array VolumeGC::GetSyncHash() const { - mbedtls_sha1_context context; - mbedtls_sha1_init(&context); - mbedtls_sha1_starts_ret(&context); + auto context = Common::SHA1::CreateContext(); - AddGamePartitionToSyncHash(&context); + AddGamePartitionToSyncHash(context.get()); - std::array hash; - mbedtls_sha1_finish_ret(&context, hash.data()); - return hash; + return context->Finish(); } VolumeGC::ConvertedGCBanner VolumeGC::LoadBannerFile() const diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 03b50e7d82..c32bda8ed4 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -13,7 +13,6 @@ #include #include -#include #include #include @@ -21,6 +20,7 @@ #include "Common/Assert.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/FileUtil.h" #include "Common/Hash.h" #include "Common/HttpRequest.h" @@ -1053,8 +1053,7 @@ void VolumeVerifier::SetUpHashing() if (m_hashes_to_calculate.sha1) { - mbedtls_sha1_init(&m_sha1_context); - mbedtls_sha1_starts_ret(&m_sha1_context); + m_sha1_context = Common::SHA1::CreateContext(); } } @@ -1191,7 +1190,7 @@ void VolumeVerifier::Process() if (m_hashes_to_calculate.sha1) { m_sha1_future = std::async(std::launch::async, [this, byte_increment] { - mbedtls_sha1_update_ret(&m_sha1_context, m_data.data(), byte_increment); + m_sha1_context->Update(m_data.data(), byte_increment); }); } } @@ -1283,8 +1282,8 @@ void VolumeVerifier::Finish() if (m_hashes_to_calculate.sha1) { - m_result.hashes.sha1 = std::vector(20); - mbedtls_sha1_finish_ret(&m_sha1_context, m_result.hashes.sha1.data()); + const auto digest = m_sha1_context->Finish(); + m_result.hashes.sha1 = std::vector(digest.begin(), digest.end()); } } diff --git a/Source/Core/DiscIO/VolumeVerifier.h b/Source/Core/DiscIO/VolumeVerifier.h index 1a38f610b9..79c45c508e 100644 --- a/Source/Core/DiscIO/VolumeVerifier.h +++ b/Source/Core/DiscIO/VolumeVerifier.h @@ -5,14 +5,15 @@ #include #include +#include #include #include #include #include -#include #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Core/IOS/ES/Formats.h" #include "DiscIO/DiscScrubber.h" #include "DiscIO/Volume.h" @@ -174,7 +175,7 @@ private: bool m_calculating_any_hash = false; u32 m_crc32_context = 0; mbedtls_md5_context m_md5_context{}; - mbedtls_sha1_context m_sha1_context{}; + std::unique_ptr m_sha1_context; u64 m_excess_bytes = 0; std::vector m_data; diff --git a/Source/Core/DiscIO/VolumeWad.cpp b/Source/Core/DiscIO/VolumeWad.cpp index df12eab293..b485899c6e 100644 --- a/Source/Core/DiscIO/VolumeWad.cpp +++ b/Source/Core/DiscIO/VolumeWad.cpp @@ -14,11 +14,11 @@ #include #include -#include #include "Common/Align.h" #include "Common/Assert.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/MsgHandler.h" #include "Common/StringUtil.h" @@ -171,9 +171,7 @@ bool VolumeWAD::CheckContentIntegrity(const IOS::ES::Content& content, mbedtls_aes_crypt_cbc(&context, MBEDTLS_AES_DECRYPT, decrypted_data.size(), iv.data(), encrypted_data.data(), decrypted_data.data()); - std::array sha1; - mbedtls_sha1_ret(decrypted_data.data(), content.size, sha1.data()); - return sha1 == content.sha1; + return Common::SHA1::CalculateDigest(decrypted_data.data(), content.size) == content.sha1; } bool VolumeWAD::CheckContentIntegrity(const IOS::ES::Content& content, u64 content_offset, @@ -349,17 +347,13 @@ std::array VolumeWAD::GetSyncHash() const // We can skip hashing the contents since the TMD contains hashes of the contents. // We specifically don't hash the ticket, since its console ID can differ without any problems. - mbedtls_sha1_context context; - mbedtls_sha1_init(&context); - mbedtls_sha1_starts_ret(&context); + auto context = Common::SHA1::CreateContext(); - AddTMDToSyncHash(&context, PARTITION_NONE); + AddTMDToSyncHash(context.get(), PARTITION_NONE); - ReadAndAddToSyncHash(&context, m_opening_bnr_offset, m_opening_bnr_size, PARTITION_NONE); + ReadAndAddToSyncHash(context.get(), m_opening_bnr_offset, m_opening_bnr_size, PARTITION_NONE); - std::array hash; - mbedtls_sha1_finish_ret(&context, hash.data()); - return hash; + return context->Finish(); } } // namespace DiscIO diff --git a/Source/Core/DiscIO/VolumeWii.cpp b/Source/Core/DiscIO/VolumeWii.cpp index 93287093d5..ca421cd591 100644 --- a/Source/Core/DiscIO/VolumeWii.cpp +++ b/Source/Core/DiscIO/VolumeWii.cpp @@ -17,11 +17,11 @@ #include #include -#include #include "Common/Align.h" #include "Common/Assert.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Logging/Log.h" #include "Common/Swap.h" @@ -366,29 +366,25 @@ const BlobReader& VolumeWii::GetBlobReader() const std::array VolumeWii::GetSyncHash() const { - mbedtls_sha1_context context; - mbedtls_sha1_init(&context); - mbedtls_sha1_starts_ret(&context); + auto context = Common::SHA1::CreateContext(); // Disc header - ReadAndAddToSyncHash(&context, 0, 0x80, PARTITION_NONE); + ReadAndAddToSyncHash(context.get(), 0, 0x80, PARTITION_NONE); // Region code - ReadAndAddToSyncHash(&context, 0x4E000, 4, PARTITION_NONE); + ReadAndAddToSyncHash(context.get(), 0x4E000, 4, PARTITION_NONE); // The data offset of the game partition - an important factor for disc drive timings const u64 data_offset = PartitionOffsetToRawOffset(0, GetGamePartition()); - mbedtls_sha1_update_ret(&context, reinterpret_cast(&data_offset), sizeof(data_offset)); + context->Update(reinterpret_cast(&data_offset), sizeof(data_offset)); // TMD - AddTMDToSyncHash(&context, GetGamePartition()); + AddTMDToSyncHash(context.get(), GetGamePartition()); // Game partition contents - AddGamePartitionToSyncHash(&context); + AddGamePartitionToSyncHash(context.get()); - std::array hash; - mbedtls_sha1_finish_ret(&context, hash.data()); - return hash; + return context->Finish(); } bool VolumeWii::CheckH3TableIntegrity(const Partition& partition) const @@ -410,9 +406,7 @@ bool VolumeWii::CheckH3TableIntegrity(const Partition& partition) const if (contents.size() != 1) return false; - std::array h3_table_sha1; - mbedtls_sha1_ret(h3_table.data(), h3_table.size(), h3_table_sha1.data()); - return h3_table_sha1 == contents[0].sha1; + return Common::SHA1::CalculateDigest(h3_table) == contents[0].sha1; } bool VolumeWii::CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, @@ -423,7 +417,8 @@ bool VolumeWii::CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, return false; const PartitionDetails& partition_details = it->second; - if (block_index / BLOCKS_PER_GROUP * SHA1_SIZE >= partition_details.h3_table->size()) + if (block_index / BLOCKS_PER_GROUP * Common::SHA1::DIGEST_LEN >= + partition_details.h3_table->size()) return false; mbedtls_aes_context* aes_context = partition_details.key->get(); @@ -438,25 +433,22 @@ bool VolumeWii::CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, for (u32 hash_index = 0; hash_index < 31; ++hash_index) { - u8 h0_hash[SHA1_SIZE]; - mbedtls_sha1_ret(cluster_data + hash_index * 0x400, 0x400, h0_hash); - if (memcmp(h0_hash, hashes.h0[hash_index], SHA1_SIZE)) + if (Common::SHA1::CalculateDigest(cluster_data + hash_index * 0x400, 0x400) != + hashes.h0[hash_index]) return false; } - u8 h1_hash[SHA1_SIZE]; - mbedtls_sha1_ret(reinterpret_cast(hashes.h0), sizeof(hashes.h0), h1_hash); - if (memcmp(h1_hash, hashes.h1[block_index % 8], SHA1_SIZE)) + if (Common::SHA1::CalculateDigest(hashes.h0) != hashes.h1[block_index % 8]) return false; - u8 h2_hash[SHA1_SIZE]; - mbedtls_sha1_ret(reinterpret_cast(hashes.h1), sizeof(hashes.h1), h2_hash); - if (memcmp(h2_hash, hashes.h2[block_index / 8 % 8], SHA1_SIZE)) + if (Common::SHA1::CalculateDigest(hashes.h1) != hashes.h2[block_index / 8 % 8]) return false; - u8 h3_hash[SHA1_SIZE]; - mbedtls_sha1_ret(reinterpret_cast(hashes.h2), sizeof(hashes.h2), h3_hash); - if (memcmp(h3_hash, partition_details.h3_table->data() + block_index / 64 * SHA1_SIZE, SHA1_SIZE)) + Common::SHA1::Digest h3_digest; + auto h3_digest_ptr = + partition_details.h3_table->data() + block_index / 64 * Common::SHA1::DIGEST_LEN; + memcpy(h3_digest.data(), h3_digest_ptr, sizeof(h3_digest)); + if (Common::SHA1::CalculateDigest(hashes.h2) != h3_digest) return false; return true; @@ -496,14 +488,13 @@ bool VolumeWii::HashGroup(const std::array in[BLOCKS_PER_GR { // H0 hashes for (size_t j = 0; j < 31; ++j) - mbedtls_sha1_ret(in[i].data() + j * 0x400, 0x400, out[i].h0[j]); + out[i].h0[j] = Common::SHA1::CalculateDigest(in[i].data() + j * 0x400, 0x400); // H0 padding - std::memset(out[i].padding_0, 0, sizeof(HashBlock::padding_0)); + out[i].padding_0 = {}; // H1 hash - mbedtls_sha1_ret(reinterpret_cast(out[i].h0), sizeof(HashBlock::h0), - out[h1_base].h1[i - h1_base]); + out[h1_base].h1[i - h1_base] = Common::SHA1::CalculateDigest(out[i].h0); } if (i % 8 == 7) @@ -514,15 +505,14 @@ bool VolumeWii::HashGroup(const std::array in[BLOCKS_PER_GR if (success) { // H1 padding - std::memset(out[h1_base].padding_1, 0, sizeof(HashBlock::padding_1)); + out[h1_base].padding_1 = {}; // H1 copies for (size_t j = 1; j < 8; ++j) - std::memcpy(out[h1_base + j].h1, out[h1_base].h1, sizeof(HashBlock::h1)); + out[h1_base + j].h1 = out[h1_base].h1; // H2 hash - mbedtls_sha1_ret(reinterpret_cast(out[i].h1), sizeof(HashBlock::h1), - out[0].h2[h1_base / 8]); + out[0].h2[h1_base / 8] = Common::SHA1::CalculateDigest(out[i].h1); } if (i == BLOCKS_PER_GROUP - 1) @@ -533,11 +523,11 @@ bool VolumeWii::HashGroup(const std::array in[BLOCKS_PER_GR if (success) { // H2 padding - std::memset(out[0].padding_2, 0, sizeof(HashBlock::padding_2)); + out[0].padding_2 = {}; // H2 copies for (size_t j = 1; j < BLOCKS_PER_GROUP; ++j) - std::memcpy(out[j].h2, out[0].h2, sizeof(HashBlock::h2)); + out[j].h2 = out[0].h2; } } } diff --git a/Source/Core/DiscIO/VolumeWii.h b/Source/Core/DiscIO/VolumeWii.h index f2dea1b016..5e0a86a4b9 100644 --- a/Source/Core/DiscIO/VolumeWii.h +++ b/Source/Core/DiscIO/VolumeWii.h @@ -14,6 +14,7 @@ #include #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/Lazy.h" #include "Core/IOS/ES/Formats.h" #include "DiscIO/Filesystem.h" @@ -34,7 +35,6 @@ class VolumeWii : public VolumeDisc { public: static constexpr size_t AES_KEY_SIZE = 16; - static constexpr size_t SHA1_SIZE = 20; static constexpr u32 BLOCKS_PER_GROUP = 0x40; @@ -48,12 +48,12 @@ public: struct HashBlock { - u8 h0[31][SHA1_SIZE]; - u8 padding_0[20]; - u8 h1[8][SHA1_SIZE]; - u8 padding_1[32]; - u8 h2[8][SHA1_SIZE]; - u8 padding_2[32]; + std::array h0; + std::array padding_0; + std::array h1; + std::array padding_1; + std::array h2; + std::array padding_2; }; static_assert(sizeof(HashBlock) == BLOCK_HEADER_SIZE); diff --git a/Source/Core/DiscIO/WIABlob.cpp b/Source/Core/DiscIO/WIABlob.cpp index d11374e507..dd83c03d0d 100644 --- a/Source/Core/DiscIO/WIABlob.cpp +++ b/Source/Core/DiscIO/WIABlob.cpp @@ -15,12 +15,12 @@ #include #include -#include #include #include "Common/Align.h" #include "Common/Assert.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/FileUtil.h" #include "Common/IOFile.h" #include "Common/Logging/Log.h" @@ -109,9 +109,8 @@ bool WIARVZFileReader::Initialize(const std::string& path) return false; } - SHA1 header_1_actual_hash; - mbedtls_sha1_ret(reinterpret_cast(&m_header_1), sizeof(m_header_1) - sizeof(SHA1), - header_1_actual_hash.data()); + const auto header_1_actual_hash = Common::SHA1::CalculateDigest( + reinterpret_cast(&m_header_1), sizeof(m_header_1) - Common::SHA1::DIGEST_LEN); if (m_header_1.header_1_hash != header_1_actual_hash) return false; @@ -130,8 +129,7 @@ bool WIARVZFileReader::Initialize(const std::string& path) if (!m_file.ReadBytes(header_2.data(), header_2.size())) return false; - SHA1 header_2_actual_hash; - mbedtls_sha1_ret(header_2.data(), header_2.size(), header_2_actual_hash.data()); + const auto header_2_actual_hash = Common::SHA1::CalculateDigest(header_2); if (m_header_1.header_2_hash != header_2_actual_hash) return false; @@ -168,9 +166,7 @@ bool WIARVZFileReader::Initialize(const std::string& path) if (!m_file.ReadBytes(partition_entries.data(), partition_entries.size())) return false; - SHA1 partition_entries_actual_hash; - mbedtls_sha1_ret(reinterpret_cast(partition_entries.data()), partition_entries.size(), - partition_entries_actual_hash.data()); + const auto partition_entries_actual_hash = Common::SHA1::CalculateDigest(partition_entries); if (m_header_2.partition_entries_hash != partition_entries_actual_hash) return false; @@ -635,8 +631,8 @@ WIARVZFileReader::Chunk::Chunk(File::IOFile* file, u64 offset_in_file, u64 m_rvz_packed_size(rvz_packed_size), m_data_offset(data_offset) { constexpr size_t MAX_SIZE_PER_EXCEPTION_LIST = - Common::AlignUp(VolumeWii::BLOCK_HEADER_SIZE, sizeof(SHA1)) / sizeof(SHA1) * - VolumeWii::BLOCKS_PER_GROUP * sizeof(HashExceptionEntry) + + Common::AlignUp(VolumeWii::BLOCK_HEADER_SIZE, Common::SHA1::DIGEST_LEN) / + Common::SHA1::DIGEST_LEN * VolumeWii::BLOCKS_PER_GROUP * sizeof(HashExceptionEntry) + sizeof(u16); m_out_bytes_allocated_for_exceptions = @@ -861,11 +857,11 @@ bool WIARVZFileReader::ApplyHashExceptions( return false; const size_t offset_in_block = offset % VolumeWii::BLOCK_HEADER_SIZE; - if (offset_in_block + sizeof(SHA1) > VolumeWii::BLOCK_HEADER_SIZE) + if (offset_in_block + Common::SHA1::DIGEST_LEN > VolumeWii::BLOCK_HEADER_SIZE) return false; std::memcpy(reinterpret_cast(&hash_blocks[block_index]) + offset_in_block, &exception.hash, - sizeof(SHA1)); + Common::SHA1::DIGEST_LEN); } return true; @@ -1420,7 +1416,7 @@ WIARVZFileReader::ProcessAndCompress(CompressThreadState* state, CompressPa &aes_context); const auto compare_hash = [&](size_t offset_in_block) { - ASSERT(offset_in_block + sizeof(SHA1) <= VolumeWii::BLOCK_HEADER_SIZE); + ASSERT(offset_in_block + Common::SHA1::DIGEST_LEN <= VolumeWii::BLOCK_HEADER_SIZE); const u8* desired_hash = reinterpret_cast(&hashes) + offset_in_block; const u8* computed_hash = @@ -1432,22 +1428,22 @@ WIARVZFileReader::ProcessAndCompress(CompressThreadState* state, CompressPa // that affects the recalculated hashes. Chunks which have been marked as reusable at // this point normally have zero matching hashes anyway, so this shouldn't waste space. if ((chunks_per_wii_group != 1 && output_entries[chunk_index].reuse_id) || - !std::equal(desired_hash, desired_hash + sizeof(SHA1), computed_hash)) + !std::equal(desired_hash, desired_hash + Common::SHA1::DIGEST_LEN, computed_hash)) { const u64 hash_offset = hash_offset_of_block + offset_in_block; ASSERT(hash_offset <= std::numeric_limits::max()); HashExceptionEntry& exception = exception_lists[exception_list_index].emplace_back(); exception.offset = static_cast(Common::swap16(hash_offset)); - std::memcpy(exception.hash.data(), desired_hash, sizeof(SHA1)); + std::memcpy(exception.hash.data(), desired_hash, Common::SHA1::DIGEST_LEN); } }; const auto compare_hashes = [&compare_hash](size_t offset, size_t size) { - for (size_t l = 0; l < size; l += sizeof(SHA1)) + for (size_t l = 0; l < size; l += Common::SHA1::DIGEST_LEN) // The std::min is to ensure that we don't go beyond the end of HashBlock with - // padding_2, which is 32 bytes long (not divisible by sizeof(SHA1), which is 20). - compare_hash(offset + std::min(l, size - sizeof(SHA1))); + // padding_2, which is 32 bytes long (not divisible by SHA1::DIGEST_LEN, which is 20). + compare_hash(offset + std::min(l, size - Common::SHA1::DIGEST_LEN)); }; using HashBlock = VolumeWii::HashBlock; @@ -1996,9 +1992,8 @@ WIARVZFileReader::Convert(BlobReader* infile, const VolumeDisc* infile_volu header_2.partition_entries_offset = Common::swap64(partition_entries_offset); if (partition_entries.data() == nullptr) - partition_entries.reserve(1); // Avoid a crash in mbedtls_sha1_ret - mbedtls_sha1_ret(reinterpret_cast(partition_entries.data()), partition_entries_size, - header_2.partition_entries_hash.data()); + partition_entries.reserve(1); // Avoid a crash in mbedtls_sha1_ret TODO examine this + header_2.partition_entries_hash = Common::SHA1::CalculateDigest(partition_entries); header_2.number_of_raw_data_entries = Common::swap32(static_cast(raw_data_entries.size())); header_2.raw_data_entries_offset = Common::swap64(raw_data_entries_offset); @@ -2014,12 +2009,12 @@ WIARVZFileReader::Convert(BlobReader* infile, const VolumeDisc* infile_volu header_1.version_compatible = Common::swap32(RVZ ? RVZ_VERSION_WRITE_COMPATIBLE : WIA_VERSION_WRITE_COMPATIBLE); header_1.header_2_size = Common::swap32(sizeof(WIAHeader2)); - mbedtls_sha1_ret(reinterpret_cast(&header_2), sizeof(header_2), - header_1.header_2_hash.data()); + header_1.header_2_hash = + Common::SHA1::CalculateDigest(reinterpret_cast(&header_2), sizeof(header_2)); header_1.iso_file_size = Common::swap64(infile->GetDataSize()); header_1.wia_file_size = Common::swap64(outfile->GetSize()); - mbedtls_sha1_ret(reinterpret_cast(&header_1), offsetof(WIAHeader1, header_1_hash), - header_1.header_1_hash.data()); + header_1.header_1_hash = Common::SHA1::CalculateDigest(reinterpret_cast(&header_1), + offsetof(WIAHeader1, header_1_hash)); if (!outfile->Seek(0, File::SeekOrigin::Begin)) return ConversionResultCode::WriteFailed; diff --git a/Source/Core/DiscIO/WIABlob.h b/Source/Core/DiscIO/WIABlob.h index abfa829397..d998005d06 100644 --- a/Source/Core/DiscIO/WIABlob.h +++ b/Source/Core/DiscIO/WIABlob.h @@ -12,6 +12,7 @@ #include #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/IOFile.h" #include "Common/Swap.h" #include "DiscIO/Blob.h" @@ -70,7 +71,6 @@ public: int compression_level, int chunk_size, CompressCB callback); private: - using SHA1 = std::array; using WiiKey = std::array; // See docs/WiaAndRvz.md for details about the format @@ -82,10 +82,10 @@ private: u32 version; u32 version_compatible; u32 header_2_size; - SHA1 header_2_hash; + Common::SHA1::Digest header_2_hash; u64 iso_file_size; u64 wia_file_size; - SHA1 header_1_hash; + Common::SHA1::Digest header_1_hash; }; static_assert(sizeof(WIAHeader1) == 0x48, "Wrong size for WIA header 1"); @@ -101,7 +101,7 @@ private: u32 number_of_partition_entries; u32 partition_entry_size; u64 partition_entries_offset; - SHA1 partition_entries_hash; + Common::SHA1::Digest partition_entries_hash; u32 number_of_raw_data_entries; u64 raw_data_entries_offset; @@ -161,7 +161,7 @@ private: struct HashExceptionEntry { u16 offset; - SHA1 hash; + Common::SHA1::Digest hash; }; static_assert(sizeof(HashExceptionEntry) == 0x16, "Wrong size for WIA hash exception entry"); #pragma pack(pop) diff --git a/Source/Core/DiscIO/WIACompression.cpp b/Source/Core/DiscIO/WIACompression.cpp index 1bfc3a9149..cb8fdee389 100644 --- a/Source/Core/DiscIO/WIACompression.cpp +++ b/Source/Core/DiscIO/WIACompression.cpp @@ -13,7 +13,6 @@ #include #include -#include #include #include "Common/Assert.h" @@ -48,7 +47,6 @@ bool NoneDecompressor::Decompress(const DecompressionBuffer& in, DecompressionBu PurgeDecompressor::PurgeDecompressor(u64 decompressed_size) : m_decompressed_size(decompressed_size) { - mbedtls_sha1_init(&m_sha1_context); } bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionBuffer* out, @@ -56,10 +54,10 @@ bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionB { if (!m_started) { - mbedtls_sha1_starts_ret(&m_sha1_context); + m_sha1_context = Common::SHA1::CreateContext(); // Include the exception lists in the SHA-1 calculation (but not in the compression...) - mbedtls_sha1_update_ret(&m_sha1_context, in.data.data(), *in_bytes_read); + m_sha1_context->Update(in.data.data(), *in_bytes_read); m_started = true; } @@ -67,7 +65,7 @@ bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionB while (!m_done && in.bytes_written != *in_bytes_read && (m_segment_bytes_written < sizeof(m_segment) || out->data.size() != out->bytes_written)) { - if (m_segment_bytes_written == 0 && *in_bytes_read == in.data.size() - sizeof(SHA1)) + if (m_segment_bytes_written == 0 && *in_bytes_read == in.data.size() - Common::SHA1::DIGEST_LEN) { const size_t zeroes_to_write = std::min(m_decompressed_size - m_out_bytes_written, out->data.size() - out->bytes_written); @@ -79,10 +77,9 @@ bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionB if (m_out_bytes_written == m_decompressed_size && in.bytes_written == in.data.size()) { - SHA1 actual_hash; - mbedtls_sha1_finish_ret(&m_sha1_context, actual_hash.data()); + const auto actual_hash = m_sha1_context->Finish(); - SHA1 expected_hash; + Common::SHA1::Digest expected_hash; std::memcpy(expected_hash.data(), in.data.data() + *in_bytes_read, expected_hash.size()); *in_bytes_read += expected_hash.size(); @@ -102,7 +99,7 @@ bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionB std::memcpy(reinterpret_cast(&m_segment) + m_segment_bytes_written, in.data.data() + *in_bytes_read, bytes_to_copy); - mbedtls_sha1_update_ret(&m_sha1_context, in.data.data() + *in_bytes_read, bytes_to_copy); + m_sha1_context->Update(in.data.data() + *in_bytes_read, bytes_to_copy); *in_bytes_read += bytes_to_copy; m_bytes_read += bytes_to_copy; @@ -134,7 +131,7 @@ bool PurgeDecompressor::Decompress(const DecompressionBuffer& in, DecompressionB std::memcpy(out->data.data() + out->bytes_written, in.data.data() + *in_bytes_read, bytes_to_copy); - mbedtls_sha1_update_ret(&m_sha1_context, in.data.data() + *in_bytes_read, bytes_to_copy); + m_sha1_context->Update(in.data.data() + *in_bytes_read, bytes_to_copy); *in_bytes_read += bytes_to_copy; m_bytes_read += bytes_to_copy; @@ -435,10 +432,7 @@ bool RVZPackDecompressor::Done() const Compressor::~Compressor() = default; -PurgeCompressor::PurgeCompressor() -{ - mbedtls_sha1_init(&m_sha1_context); -} +PurgeCompressor::PurgeCompressor() = default; PurgeCompressor::~PurgeCompressor() = default; @@ -447,14 +441,14 @@ bool PurgeCompressor::Start(std::optional size) m_buffer.clear(); m_bytes_written = 0; - mbedtls_sha1_starts_ret(&m_sha1_context); + m_sha1_context = Common::SHA1::CreateContext(); return true; } bool PurgeCompressor::AddPrecedingDataOnlyForPurgeHashing(const u8* data, size_t size) { - mbedtls_sha1_update_ret(&m_sha1_context, data, size); + m_sha1_context->Update(data, size); return true; } @@ -465,7 +459,7 @@ bool PurgeCompressor::Compress(const u8* data, size_t size) ASSERT_MSG(DISCIO, m_bytes_written == 0, "Calling PurgeCompressor::Compress() twice is not supported"); - m_buffer.resize(size + sizeof(PurgeSegment) + sizeof(SHA1)); + m_buffer.resize(size + sizeof(PurgeSegment) + Common::SHA1::DIGEST_LEN); size_t bytes_read = 0; @@ -517,10 +511,12 @@ bool PurgeCompressor::Compress(const u8* data, size_t size) bool PurgeCompressor::End() { - mbedtls_sha1_update_ret(&m_sha1_context, m_buffer.data(), m_bytes_written); + m_sha1_context->Update(m_buffer.data(), m_bytes_written); - mbedtls_sha1_finish_ret(&m_sha1_context, m_buffer.data() + m_bytes_written); - m_bytes_written += sizeof(SHA1); + const auto digest = m_sha1_context->Finish(); + std::memcpy(m_buffer.data() + m_bytes_written, digest.data(), sizeof(digest)); + + m_bytes_written += sizeof(digest); ASSERT(m_bytes_written <= m_buffer.size()); diff --git a/Source/Core/DiscIO/WIACompression.h b/Source/Core/DiscIO/WIACompression.h index fdabedbed0..d3d5cb34d7 100644 --- a/Source/Core/DiscIO/WIACompression.h +++ b/Source/Core/DiscIO/WIACompression.h @@ -10,10 +10,10 @@ #include #include -#include #include #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "DiscIO/LaggedFibonacciGenerator.h" namespace DiscIO @@ -24,8 +24,6 @@ struct DecompressionBuffer size_t bytes_written = 0; }; -using SHA1 = std::array; - struct PurgeSegment { u32 offset; @@ -71,7 +69,7 @@ private: size_t m_out_bytes_written = 0; bool m_started = false; - mbedtls_sha1_context m_sha1_context; + std::unique_ptr m_sha1_context; }; class Bzip2Decompressor final : public Decompressor @@ -179,7 +177,7 @@ public: private: std::vector m_buffer; size_t m_bytes_written = 0; - mbedtls_sha1_context m_sha1_context; + std::unique_ptr m_sha1_context; }; class Bzip2Compressor final : public Compressor diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 562a357d48..0c73e3d980 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -36,6 +36,7 @@ + @@ -722,6 +723,7 @@ + diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index 96628af087..6e33f480e0 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -18,13 +18,13 @@ #include #include -#include #include #include "Common/BitUtils.h" #include "Common/ChunkFile.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/FileUtil.h" #include "Common/HttpRequest.h" #include "Common/IOFile.h" @@ -627,22 +627,18 @@ std::string GameFile::GetNetPlayName(const Core::TitleDatabase& title_database) return name + " (" + ss.str() + ")"; } -static std::array GetHash(u32 value) +static Common::SHA1::Digest GetHash(u32 value) { auto data = Common::BitCastToArray(value); - std::array hash; - mbedtls_sha1_ret(reinterpret_cast(data.data()), data.size(), hash.data()); - return hash; + return Common::SHA1::CalculateDigest(data); } -static std::array GetHash(std::string_view str) +static Common::SHA1::Digest GetHash(std::string_view str) { - std::array hash; - mbedtls_sha1_ret(reinterpret_cast(str.data()), str.size(), hash.data()); - return hash; + return Common::SHA1::CalculateDigest(str); } -static std::optional> GetFileHash(const std::string& path) +static std::optional GetFileHash(const std::string& path) { std::string buffer; if (!File::ReadFileToString(path, buffer)) @@ -650,22 +646,22 @@ static std::optional> GetFileHash(const std::string& path) return GetHash(buffer); } -static std::optional> MixHash(const std::optional>& lhs, - const std::optional>& rhs) +static std::optional MixHash(const std::optional& lhs, + const std::optional& rhs) { if (!lhs && !rhs) return std::nullopt; if (!lhs || !rhs) return !rhs ? lhs : rhs; - std::array result; + Common::SHA1::Digest result; for (size_t i = 0; i < result.size(); ++i) result[i] = (*lhs)[i] ^ (*rhs)[(i + 1) % result.size()]; return result; } -std::array GameFile::GetSyncHash() const +Common::SHA1::Digest GameFile::GetSyncHash() const { - std::optional> hash; + std::optional hash; if (m_platform == DiscIO::Platform::ELFOrDOL) { @@ -703,7 +699,7 @@ std::array GameFile::GetSyncHash() const hash = volume->GetSyncHash(); } - return hash.value_or(std::array{}); + return hash.value_or(Common::SHA1::Digest{}); } NetPlay::SyncIdentifier GameFile::GetSyncIdentifier() const From bfa2a66c98f0bf9629d1e873d68619311613eaac Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 26 Jul 2022 08:44:35 -0700 Subject: [PATCH 478/659] WIABlob: remove outdated mbedtls workaround --- Source/Core/DiscIO/WIABlob.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Source/Core/DiscIO/WIABlob.cpp b/Source/Core/DiscIO/WIABlob.cpp index dd83c03d0d..1ee9dd7308 100644 --- a/Source/Core/DiscIO/WIABlob.cpp +++ b/Source/Core/DiscIO/WIABlob.cpp @@ -1991,8 +1991,6 @@ WIARVZFileReader::Convert(BlobReader* infile, const VolumeDisc* infile_volu header_2.partition_entry_size = Common::swap32(sizeof(PartitionEntry)); header_2.partition_entries_offset = Common::swap64(partition_entries_offset); - if (partition_entries.data() == nullptr) - partition_entries.reserve(1); // Avoid a crash in mbedtls_sha1_ret TODO examine this header_2.partition_entries_hash = Common::SHA1::CalculateDigest(partition_entries); header_2.number_of_raw_data_entries = Common::swap32(static_cast(raw_data_entries.size())); From 8939210d8aafcf809f4c29e16603ac162c942ebc Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 25 Jul 2022 18:30:12 -0700 Subject: [PATCH 479/659] Common/Crypto/SHA1: implement accelerated versions --- Source/Core/Common/Crypto/SHA1.cpp | 349 +++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/Source/Core/Common/Crypto/SHA1.cpp b/Source/Core/Common/Crypto/SHA1.cpp index 6987f3670b..10bdb59741 100644 --- a/Source/Core/Common/Crypto/SHA1.cpp +++ b/Source/Core/Common/Crypto/SHA1.cpp @@ -3,6 +3,7 @@ #include "SHA1.h" +#include #include #include @@ -10,6 +11,32 @@ #include "Common/Assert.h" #include "Common/CPUDetect.h" #include "Common/CommonTypes.h" +#include "Common/Swap.h" + +#ifdef _MSC_VER +#include +#else +#ifdef _M_X86_64 +#include +#elif defined(_M_ARM_64) +#if defined(__clang__) +// This is a bit of a hack to get clang to accept the sha1 intrinsics without modifying cmdline +// flags. Note __ARM_FEATURE_CRYPTO is deprecated and "SHA2" flag is the lowest one which includes +// SHA1. +#define __ARM_FEATURE_SHA2 +// ...needed for older clang before they made the switchover to more granular flags. +#define __ARM_FEATURE_CRYPTO +#endif +#include +#include +#endif +#endif + +#ifdef _MSC_VER +#define ATTRIBUTE_TARGET(x) +#else +#define ATTRIBUTE_TARGET(x) [[gnu::target(x)]] +#endif namespace Common::SHA1 { @@ -37,8 +64,330 @@ private: mbedtls_sha1_context ctx{}; }; +class BlockContext : public Context +{ +protected: + static constexpr size_t BLOCK_LEN = 64; + static constexpr u32 K[4]{0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6}; + static constexpr u32 H[5]{0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0}; + + virtual void ProcessBlock(const u8* msg) = 0; + virtual Digest GetDigest() = 0; + + virtual void Update(const u8* msg, size_t len) override + { + if (len == 0) + return; + msg_len += len; + + if (block_used) + { + if (block_used + len >= block.size()) + { + size_t rem = block.size() - block_used; + std::memcpy(&block[block_used], msg, rem); + ProcessBlock(&block[0]); + block_used = 0; + msg += rem; + len -= rem; + } + else + { + std::memcpy(&block[block_used], msg, len); + block_used += len; + return; + } + } + while (len >= BLOCK_LEN) + { + ProcessBlock(msg); + msg += BLOCK_LEN; + len -= BLOCK_LEN; + } + if (len) + { + std::memcpy(&block[0], msg, len); + block_used = len; + } + } + + virtual Digest Finish() override + { + // block_used is guaranteed < BLOCK_LEN + block[block_used++] = 0x80; + + constexpr size_t MSG_LEN_POS = BLOCK_LEN - sizeof(u64); + if (block_used > MSG_LEN_POS) + { + // Pad current block and process it + std::memset(&block[block_used], 0, BLOCK_LEN - block_used); + ProcessBlock(&block[0]); + + // Pad a new block + std::memset(&block[0], 0, MSG_LEN_POS); + } + else + { + // Pad current block + std::memset(&block[block_used], 0, MSG_LEN_POS - block_used); + } + + Common::BigEndianValue msg_bitlen(msg_len * 8); + std::memcpy(&block[MSG_LEN_POS], &msg_bitlen, sizeof(msg_bitlen)); + + ProcessBlock(&block[0]); + + return GetDigest(); + } + + alignas(64) std::array block{}; + size_t block_used{}; + size_t msg_len{}; +}; + +template +class CyclicArray +{ +public: + inline ValueType operator[](size_t i) const { return data[i % Size]; } + inline ValueType& operator[](size_t i) { return data[i % Size]; } + constexpr size_t size() { return Size; } + +private: + std::array data; +}; + +#ifdef _M_X86_64 + +// Uses the dedicated SHA1 instructions. Normal SSE(AVX*) would be needed for parallel +// multi-message processing. While Dolphin could gain from such implementation, it requires the +// calling code to be modified and/or making the SHA1 implementation asynchronous so it can +// optimistically batch. +class ContextX64SHA1 final : public BlockContext +{ +public: + ContextX64SHA1() + { + state[0] = _mm_set_epi32(H[0], H[1], H[2], H[3]); + state[1] = _mm_set_epi32(H[4], 0, 0, 0); + } + +private: + using WorkBlock = CyclicArray<__m128i, 4>; + + ATTRIBUTE_TARGET("ssse3") + static inline __m128i byterev_16B(__m128i x) + { + return _mm_shuffle_epi8(x, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)); + } + + template + ATTRIBUTE_TARGET("sha") + static inline __m128i MsgSchedule(WorkBlock* wblock) + { + auto& w = *wblock; + // Update and return this location + auto& wx = w[I]; + // Do all the xors and rol(x,1) required for 4 rounds of msg schedule + wx = _mm_sha1msg1_epu32(wx, w[I + 1]); + wx = _mm_xor_si128(wx, w[I + 2]); + wx = _mm_sha1msg2_epu32(wx, w[I + 3]); + return wx; + } + + ATTRIBUTE_TARGET("sha") + virtual void ProcessBlock(const u8* msg) override + { + // There are 80 rounds with 4 bytes per round, giving 0x140 byte work space, but we can keep + // active state in just 0x40 bytes. + // see FIPS 180-4 6.1.3 Alternate Method for Computing a SHA-1 Message Digest + WorkBlock w; + auto msg_block = (const __m128i*)msg; + for (size_t i = 0; i < w.size(); i++) + w[i] = byterev_16B(_mm_loadu_si128(&msg_block[i])); + + // 0: abcd, 1: e + auto abcde = state; + + // Not sure of a (non-ugly) way to have constant-evaluated for-loop, so just rely on inlining. + // Problem is that sha1rnds4 requires imm8 arg, and first/last rounds have different behavior. + + // clang-format off + // E0 += MSG0, special case of "nexte", can do normal add + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_add_epi32(abcde[1], w[0]), 0); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], w[1]), 0); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], w[2]), 0); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], w[3]), 0); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<4>(&w)), 0); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<5>(&w)), 1); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<6>(&w)), 1); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<7>(&w)), 1); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<8>(&w)), 1); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<9>(&w)), 1); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<10>(&w)), 2); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<11>(&w)), 2); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<12>(&w)), 2); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<13>(&w)), 2); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<14>(&w)), 2); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<15>(&w)), 3); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<16>(&w)), 3); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<17>(&w)), 3); + abcde[1] = _mm_sha1rnds4_epu32(abcde[0], _mm_sha1nexte_epu32(abcde[1], MsgSchedule<18>(&w)), 3); + abcde[0] = _mm_sha1rnds4_epu32(abcde[1], _mm_sha1nexte_epu32(abcde[0], MsgSchedule<19>(&w)), 3); + // state += abcde + state[1] = _mm_sha1nexte_epu32(abcde[1], state[1]); + state[0] = _mm_add_epi32(abcde[0], state[0]); + // clang-format on + } + + virtual Digest GetDigest() override + { + Digest digest; + _mm_storeu_si128((__m128i*)&digest[0], byterev_16B(state[0])); + u32 hi = _mm_cvtsi128_si32(byterev_16B(state[1])); + std::memcpy(&digest[sizeof(__m128i)], &hi, sizeof(hi)); + return digest; + } + + std::array<__m128i, 2> state{}; +}; + +#endif + +#ifdef _M_ARM_64 + +// The armv8 flags are very annoying: +// clang inserts "+" prefixes itself, gcc does not. +// clang has deprecated "crypto" (removed in clang 13), gcc has not. +#ifdef _MSC_VER +#define TARGET_ARMV8_SHA1 +#elif defined(__clang__) +#define TARGET_ARMV8_SHA1 [[gnu::target("sha2")]] +#elif defined(__GNUC__) +#define TARGET_ARMV8_SHA1 [[gnu::target("+crypto")]] +#endif + +class ContextNeon final : public BlockContext +{ +public: + ContextNeon() + { + state.abcd = vld1q_u32(&H[0]); + state.e = H[4]; + } + +private: + using WorkBlock = CyclicArray; + + struct State + { + // ARM thought they were being clever by exposing e as u32, but it actually makes non-asm + // implementations pretty annoying/makes compiler's life needlessly difficult. + uint32x4_t abcd{}; + u32 e{}; + }; + + static inline uint32x4_t byterev_16B(uint32x4_t x) + { + // Just rev32 with casting wrappers + return vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(x))); + } + + TARGET_ARMV8_SHA1 + static inline uint32x4_t MsgSchedule(WorkBlock* wblock, size_t i) + { + auto& w = *wblock; + // Update and return this location + auto& wx = w[0 + i]; + wx = vsha1su0q_u32(wx, w[1 + i], w[2 + i]); + wx = vsha1su1q_u32(wx, w[3 + i]); + return wx; + } + + template + TARGET_ARMV8_SHA1 static inline constexpr uint32x4_t f(State state, uint32x4_t w) + { + const auto wk = vaddq_u32(w, vdupq_n_u32(K[Func])); + if constexpr (Func == 0) + return vsha1cq_u32(state.abcd, state.e, wk); + if constexpr (Func == 1 || Func == 3) + return vsha1pq_u32(state.abcd, state.e, wk); + if constexpr (Func == 2) + return vsha1mq_u32(state.abcd, state.e, wk); + } + + template + TARGET_ARMV8_SHA1 static inline constexpr State FourRounds(State state, uint32x4_t w) + { +#ifdef _MSC_VER + // FIXME it seems the msvc optimizer gets a little too happy + _ReadBarrier(); +#endif + return {f(state, w), vsha1h_u32(vgetq_lane_u32(state.abcd, 0))}; + } + + virtual void ProcessBlock(const u8* msg) override + { + WorkBlock w; + for (size_t i = 0; i < w.size(); i++) + w[i] = byterev_16B(vld1q_u8(&msg[sizeof(uint32x4_t) * i])); + + std::array states{state}; + + // Fashioned to look like x64 impl. + // In each case the goal is to have compiler inline + unroll everything. + states[1] = FourRounds<0>(states[0], w[0]); + states[0] = FourRounds<0>(states[1], w[1]); + states[1] = FourRounds<0>(states[0], w[2]); + states[0] = FourRounds<0>(states[1], w[3]); + states[1] = FourRounds<0>(states[0], MsgSchedule(&w, 4)); + states[0] = FourRounds<1>(states[1], MsgSchedule(&w, 5)); + states[1] = FourRounds<1>(states[0], MsgSchedule(&w, 6)); + states[0] = FourRounds<1>(states[1], MsgSchedule(&w, 7)); + states[1] = FourRounds<1>(states[0], MsgSchedule(&w, 8)); + states[0] = FourRounds<1>(states[1], MsgSchedule(&w, 9)); + states[1] = FourRounds<2>(states[0], MsgSchedule(&w, 10)); + states[0] = FourRounds<2>(states[1], MsgSchedule(&w, 11)); + states[1] = FourRounds<2>(states[0], MsgSchedule(&w, 12)); + states[0] = FourRounds<2>(states[1], MsgSchedule(&w, 13)); + states[1] = FourRounds<2>(states[0], MsgSchedule(&w, 14)); + states[0] = FourRounds<3>(states[1], MsgSchedule(&w, 15)); + states[1] = FourRounds<3>(states[0], MsgSchedule(&w, 16)); + states[0] = FourRounds<3>(states[1], MsgSchedule(&w, 17)); + states[1] = FourRounds<3>(states[0], MsgSchedule(&w, 18)); + states[0] = FourRounds<3>(states[1], MsgSchedule(&w, 19)); + + state = {vaddq_u32(state.abcd, states[0].abcd), state.e + states[0].e}; + } + + virtual Digest GetDigest() override + { + Digest digest; + vst1q_u8(&digest[0], byterev_16B(state.abcd)); + u32 e = Common::FromBigEndian(state.e); + std::memcpy(&digest[sizeof(state.abcd)], &e, sizeof(e)); + return digest; + } + + State state; +}; + +#endif + std::unique_ptr CreateContext() { + if (cpu_info.bSHA1) + { +#ifdef _M_X86_64 + // Note: As of mid 2022, > 99% of CPUs reporting to Steam survey have SSSE3, ~40% have SHA. + // Seems unlikely we'll see any cpus supporting SHA but not SSSE3 (in the foreseeable future at + // least). + if (cpu_info.bSSSE3) + return std::make_unique(); +#elif defined(_M_ARM_64) + return std::make_unique(); +#endif + } return std::make_unique(); } From f8b9034a2857a5dbe92b958f02c440a1fa0d0669 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 26 Jul 2022 22:29:40 -0700 Subject: [PATCH 480/659] Crypto/SHA1: add unittests --- Source/UnitTests/Common/CMakeLists.txt | 1 + Source/UnitTests/Common/Crypto/SHA1Test.cpp | 30 +++++++++++++++++++++ Source/UnitTests/UnitTests.vcxproj | 1 + 3 files changed, 32 insertions(+) create mode 100644 Source/UnitTests/Common/Crypto/SHA1Test.cpp diff --git a/Source/UnitTests/Common/CMakeLists.txt b/Source/UnitTests/Common/CMakeLists.txt index 2d30517614..bbea892fdf 100644 --- a/Source/UnitTests/Common/CMakeLists.txt +++ b/Source/UnitTests/Common/CMakeLists.txt @@ -5,6 +5,7 @@ add_dolphin_test(BlockingLoopTest BlockingLoopTest.cpp) add_dolphin_test(BusyLoopTest BusyLoopTest.cpp) add_dolphin_test(CommonFuncsTest CommonFuncsTest.cpp) add_dolphin_test(CryptoEcTest Crypto/EcTest.cpp) +add_dolphin_test(CryptoSHA1Test Crypto/SHA1Test.cpp) add_dolphin_test(EnumFormatterTest EnumFormatterTest.cpp) add_dolphin_test(EventTest EventTest.cpp) add_dolphin_test(FileUtilTest FileUtilTest.cpp) diff --git a/Source/UnitTests/Common/Crypto/SHA1Test.cpp b/Source/UnitTests/Common/Crypto/SHA1Test.cpp new file mode 100644 index 0000000000..463240ed84 --- /dev/null +++ b/Source/UnitTests/Common/Crypto/SHA1Test.cpp @@ -0,0 +1,30 @@ +#include + +#include "Common/Crypto/SHA1.h" + +// Just a few quick sanity checks +TEST(SHA1, Vectors) +{ + struct + { + const char* msg; + const Common::SHA1::Digest expected; + } const vectors[]{ + {"", {0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, + 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09}}, + {"abc", {0xa9, 0x99, 0x3e, 0x36, 0x47, 0x06, 0x81, 0x6a, 0xba, 0x3e, + 0x25, 0x71, 0x78, 0x50, 0xc2, 0x6c, 0x9c, 0xd0, 0xd8, 0x9d}}, + {"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + {0x84, 0x98, 0x3e, 0x44, 0x1c, 0x3b, 0xd2, 0x6e, 0xba, 0xae, + 0x4a, 0xa1, 0xf9, 0x51, 0x29, 0xe5, 0xe5, 0x46, 0x70, 0xf1}}, + {"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmn" + "opqklmnopqrlmnopqrsmnopqrstnopqrstu", + {0xa4, 0x9b, 0x24, 0x46, 0xa0, 0x2c, 0x64, 0x5b, 0xf4, 0x19, + 0xf9, 0x95, 0xb6, 0x70, 0x91, 0x25, 0x3a, 0x04, 0xa2, 0x59}}, + }; + for (auto& test : vectors) + { + auto actual = Common::SHA1::CalculateDigest(test.msg); + EXPECT_EQ(test.expected, actual); + } +} diff --git a/Source/UnitTests/UnitTests.vcxproj b/Source/UnitTests/UnitTests.vcxproj index da461087e9..e0295fba9c 100644 --- a/Source/UnitTests/UnitTests.vcxproj +++ b/Source/UnitTests/UnitTests.vcxproj @@ -44,6 +44,7 @@ + From f09c9f211faba071b18f437a7825bd6a878ebe34 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 27 Jul 2022 12:29:51 +0200 Subject: [PATCH 481/659] CMake: Set SKIP_INSTALL_ALL for zlib-ng to avoid installing it. --- Externals/zlib-ng/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Externals/zlib-ng/CMakeLists.txt b/Externals/zlib-ng/CMakeLists.txt index 7064ec4c4c..39accc8b40 100644 --- a/Externals/zlib-ng/CMakeLists.txt +++ b/Externals/zlib-ng/CMakeLists.txt @@ -1,5 +1,6 @@ set(ZLIB_ENABLE_TESTS OFF) set(ZLIB_COMPAT ON) +set(SKIP_INSTALL_ALL ON) option(BUILD_SHARED_LIBS "Build shared library" OFF) From 14c1a1c658ff7e612bd33f0559a2f96694b131ae Mon Sep 17 00:00:00 2001 From: JosJuice Date: Thu, 28 Jul 2022 09:32:11 +0200 Subject: [PATCH 482/659] VolumeVerifier: Fix read_succeeded condition We shouldn't set m_read_errors_occurred to true just because is_data_needed was false. --- Source/Core/DiscIO/VolumeVerifier.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 03b50e7d82..16033c56d4 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -1158,9 +1158,9 @@ void VolumeVerifier::Process() } const bool is_data_needed = m_calculating_any_hash || content_read || group_read; - const bool read_succeeded = is_data_needed && ReadChunkAndWaitForAsyncOperations(bytes_to_read); + const bool read_failed = is_data_needed && !ReadChunkAndWaitForAsyncOperations(bytes_to_read); - if (!read_succeeded) + if (read_failed) { ERROR_LOG_FMT(DISCIO, "Read failed at {:#x} to {:#x}", m_progress, m_progress + bytes_to_read); @@ -1198,8 +1198,8 @@ void VolumeVerifier::Process() if (content_read) { - m_content_future = std::async(std::launch::async, [this, read_succeeded, content] { - if (!read_succeeded || !m_volume.CheckContentIntegrity(content, m_data, m_ticket)) + m_content_future = std::async(std::launch::async, [this, read_failed, content] { + if (read_failed || !m_volume.CheckContentIntegrity(content, m_data, m_ticket)) { AddProblem(Severity::High, Common::FmtFormatT("Content {0:08x} is corrupt.", content.id)); } @@ -1210,7 +1210,7 @@ void VolumeVerifier::Process() if (group_read) { - m_group_future = std::async(std::launch::async, [this, read_succeeded, + m_group_future = std::async(std::launch::async, [this, read_failed, group_index = m_group_index] { const GroupToVerify& group = m_groups[group_index]; u64 offset_in_group = 0; @@ -1219,8 +1219,8 @@ void VolumeVerifier::Process() { const u64 block_offset = group.offset + offset_in_group; - if (read_succeeded && m_volume.CheckBlockIntegrity( - block_index, m_data.data() + offset_in_group, group.partition)) + if (!read_failed && m_volume.CheckBlockIntegrity( + block_index, m_data.data() + offset_in_group, group.partition)) { m_biggest_verified_offset = std::max(m_biggest_verified_offset, block_offset + VolumeWii::BLOCK_TOTAL_SIZE); From 25462f4a3c2595920a9398a5972ca52a5f6b8989 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 27 Jul 2022 21:03:01 -0700 Subject: [PATCH 483/659] SavePNG: make sure to finalize image file --- Source/Core/Common/Image.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Core/Common/Image.cpp b/Source/Core/Common/Image.cpp index 1bdb4b0700..adca8c1aa7 100644 --- a/Source/Core/Common/Image.cpp +++ b/Source/Core/Common/Image.cpp @@ -95,8 +95,11 @@ bool SavePNG(const std::string& path, const u8* input, ImageByteFormat format, u if (spng_set_ihdr(ctx.get(), &ihdr)) return false; - if (spng_encode_image(ctx.get(), nullptr, 0, SPNG_FMT_PNG, SPNG_ENCODE_PROGRESSIVE)) + if (spng_encode_image(ctx.get(), nullptr, 0, SPNG_FMT_PNG, + SPNG_ENCODE_PROGRESSIVE | SPNG_ENCODE_FINALIZE)) + { return false; + } for (u32 row = 0; row < height; row++) { const int err = spng_encode_row(ctx.get(), &input[row * stride], stride); From 2de4d5202146b8f52ecf2e88db828d1e58d0538c Mon Sep 17 00:00:00 2001 From: Sepalani Date: Fri, 29 Jul 2022 11:31:54 +0400 Subject: [PATCH 484/659] BBA/BuiltIn: Fix network byte order issues --- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index e3e4220196..bff1afff24 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -454,7 +454,7 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(const Common::UDPPacket& ref->to.sin_addr.s_addr = Common::BitCast(ip_header.source_addr); ref->to.sin_port = udp_header.source_port; ref->udp_socket.setBlocking(false); - if (ref->udp_socket.bind(htons(udp_header.source_port)) != sf::Socket::Done) + if (ref->udp_socket.bind(ntohs(udp_header.source_port)) != sf::Socket::Done) { PanicAlertFmt( "Port {:x} is already in use, this game might not work as intented in LAN Mode.", @@ -468,7 +468,7 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(const Common::UDPPacket& { InitUDPPort(26512); // MK DD and 1080 InitUDPPort(26502); // Air Ride - if (udp_header.length > 150) + if (ntohs(udp_header.length) > 150) { // Quick hack to unlock the connection, throw it back at him Common::UDPPacket reply = packet; From 205d78d780eefd5b0126feec195ae815de455f6e Mon Sep 17 00:00:00 2001 From: JMC47 Date: Thu, 28 Jul 2022 16:27:15 -0400 Subject: [PATCH 485/659] BBA - Rename BBA Built In to BBA (HLE) All of our BBA options are technically built in, so it made the BBA Built In option kind of confusing as to what it did. So rename it to BBA HLE to make it more clear what it is doing and why it doesn't need a TAP. --- Source/Android/app/src/main/res/values/arrays.xml | 2 +- Source/Core/Core/HW/EXI/EXI_Device.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index edce6273aa..b398bf805a 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -102,7 +102,7 @@ Nothing Dummy Broadband Adapter (XLink Kai) - Broadband Adapter (Built In) + Broadband Adapter (HLE) 255 diff --git a/Source/Core/Core/HW/EXI/EXI_Device.h b/Source/Core/Core/HW/EXI/EXI_Device.h index ce110a731e..7004d40ad1 100644 --- a/Source/Core/Core/HW/EXI/EXI_Device.h +++ b/Source/Core/Core/HW/EXI/EXI_Device.h @@ -96,7 +96,7 @@ struct fmt::formatter _trans("Advance Game Port"), _trans("Broadband Adapter (XLink Kai)"), _trans("Broadband Adapter (tapserver)"), - _trans("Broadband Adapter (Built In)"), + _trans("Broadband Adapter (HLE)"), }; constexpr formatter() : EnumFormatter(names) {} From bab327eafa57c9ba5f6254103b42eaf963d44d35 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 29 Jul 2022 16:20:34 +0200 Subject: [PATCH 486/659] Android: Use AfterDirectoryInitializationRunner on FAB press Without this, if the user finishes selecting a directory before directory initialization finishes, MainPresenter.onDirectorySelected will segfault when trying to read the MAIN_RECURSIVE_ISO_PATHS setting. An alternative would be to use AfterDirectoryInitializationRunner after the user selects the directory instead of before, but it might be confusing for the user to deal with the usage statistics prompt when they were expecting to add a folder. --- .../java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java index ca57cde56f..32d40234fe 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java @@ -26,7 +26,6 @@ import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner; import org.dolphinemu.dolphinemu.utils.BooleanSupplier; import org.dolphinemu.dolphinemu.utils.CompletableFuture; import org.dolphinemu.dolphinemu.utils.ContentHandler; -import org.dolphinemu.dolphinemu.utils.DirectoryInitialization; import org.dolphinemu.dolphinemu.utils.FileBrowserHelper; import org.dolphinemu.dolphinemu.utils.ThreadUtil; import org.dolphinemu.dolphinemu.utils.WiiUtils; @@ -76,7 +75,8 @@ public final class MainPresenter public void onFabClick() { - mView.launchFileListActivity(); + new AfterDirectoryInitializationRunner().runWithLifecycle(mActivity, true, + mView::launchFileListActivity); } public boolean handleOptionSelection(int itemId, ComponentActivity activity) From 18b8f147ab4b7dc299cb0f5295c158dd910b2b21 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Fri, 29 Jul 2022 12:00:49 +0400 Subject: [PATCH 487/659] BBA/BuiltIn: Ensure UDP ports are open --- Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp index bff1afff24..9e2a4dcca7 100644 --- a/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp +++ b/Source/Core/Core/HW/EXI/BBA/BuiltIn.cpp @@ -464,23 +464,18 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(const Common::UDPPacket& ERROR_LOG_FMT(SP1, "Couldn't open UDP socket"); return; } - if (ntohs(udp_header.destination_port) == 1900) + if (ntohs(udp_header.destination_port) == 1900 && ntohs(udp_header.length) > 150) { - InitUDPPort(26512); // MK DD and 1080 - InitUDPPort(26502); // Air Ride - if (ntohs(udp_header.length) > 150) - { - // Quick hack to unlock the connection, throw it back at him - Common::UDPPacket reply = packet; - reply.eth_header.destination = hwdata.source; - reply.eth_header.source = hwdata.destination; - reply.ip_header.destination_addr = ip_header.source_addr; - if (ip_header.destination_addr == Common::IP_ADDR_SSDP) - reply.ip_header.source_addr = Common::IP_ADDR_BROADCAST; - else - reply.ip_header.source_addr = Common::BitCast(destination_addr); - WriteToQueue(reply.Build()); - } + // Quick hack to unlock the connection, throw it back at him + Common::UDPPacket reply = packet; + reply.eth_header.destination = hwdata.source; + reply.eth_header.source = hwdata.destination; + reply.ip_header.destination_addr = ip_header.source_addr; + if (ip_header.destination_addr == Common::IP_ADDR_SSDP) + reply.ip_header.source_addr = Common::IP_ADDR_BROADCAST; + else + reply.ip_header.source_addr = Common::BitCast(destination_addr); + WriteToQueue(reply.Build()); } } } @@ -670,6 +665,10 @@ bool CEXIETHERNET::BuiltInBBAInterface::RecvInit() void CEXIETHERNET::BuiltInBBAInterface::RecvStart() { + if (m_read_enabled.IsSet()) + return; + InitUDPPort(26502); // Kirby Air Ride + InitUDPPort(26512); // Mario Kart: Double Dash!! and 1080° Avalanche m_read_enabled.Set(); } From d3d7cc6f96a38a9d03bab352d2054d810d0f85d9 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 29 Jul 2022 12:16:20 -0700 Subject: [PATCH 488/659] Boot_BS2Emu: Create an actual function for AppLoaderReport Before, we used a replace hook and didn't write anything there. Now, we write a BLR instruction to immediately return, and then use a start hook. This makes the behavior a bit clearer (though it shoudln't matter in practice). --- Source/Core/Core/Boot/Boot_BS2Emu.cpp | 3 ++- Source/Core/Core/HLE/HLE.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index f8a283144e..8f7fce39f5 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -160,7 +160,8 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, // iAppLoaderInit DEBUG_LOG_FMT(MASTER_LOG, "Call iAppLoaderInit"); - HLE::Patch(0x81300000, "AppLoaderReport"); // HLE OSReport for Apploader + PowerPC::HostWrite_U32(0x4E800020, 0x81300000); // Write BLR + HLE::Patch(0x81300000, "AppLoaderReport"); // HLE OSReport for Apploader PowerPC::ppcState.gpr[3] = 0x81300000; RunFunction(iAppLoaderInit); diff --git a/Source/Core/Core/HLE/HLE.cpp b/Source/Core/Core/HLE/HLE.cpp index 264a3013d7..fef1cad648 100644 --- a/Source/Core/Core/HLE/HLE.cpp +++ b/Source/Core/Core/HLE/HLE.cpp @@ -58,7 +58,7 @@ constexpr std::array os_patches{{ {"GeckoCodehandler", HLE_Misc::GeckoCodeHandlerICacheFlush, HookType::Start, HookFlag::Fixed}, {"GeckoHandlerReturnTrampoline", HLE_Misc::GeckoReturnTrampoline, HookType::Replace, HookFlag::Fixed}, - {"AppLoaderReport", HLE_OS::HLE_GeneralDebugPrint, HookType::Replace, HookFlag::Fixed} // apploader needs OSReport-like function + {"AppLoaderReport", HLE_OS::HLE_GeneralDebugPrint, HookType::Start, HookFlag::Fixed} // apploader needs OSReport-like function }}; // clang-format on From 7a7a3a7f4135d17dc49eff195abab4371da75998 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 29 Jul 2022 12:17:09 -0700 Subject: [PATCH 489/659] Boot_BS2EMU: Log apploader-related messages to BOOT log instead of MASTER log --- Source/Core/Core/Boot/Boot_BS2Emu.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Boot/Boot_BS2Emu.cpp index 8f7fce39f5..cb87d02651 100644 --- a/Source/Core/Core/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Boot/Boot_BS2Emu.cpp @@ -148,7 +148,7 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, // TODO - Make Apploader(or just RunFunction()) debuggable!!! // Call iAppLoaderEntry. - DEBUG_LOG_FMT(MASTER_LOG, "Call iAppLoaderEntry"); + DEBUG_LOG_FMT(BOOT, "Call iAppLoaderEntry"); const u32 iAppLoaderFuncAddr = is_wii ? 0x80004000 : 0x80003100; PowerPC::ppcState.gpr[3] = iAppLoaderFuncAddr + 0; PowerPC::ppcState.gpr[4] = iAppLoaderFuncAddr + 4; @@ -159,7 +159,7 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, const u32 iAppLoaderClose = PowerPC::Read_U32(iAppLoaderFuncAddr + 8); // iAppLoaderInit - DEBUG_LOG_FMT(MASTER_LOG, "Call iAppLoaderInit"); + DEBUG_LOG_FMT(BOOT, "Call iAppLoaderInit"); PowerPC::HostWrite_U32(0x4E800020, 0x81300000); // Write BLR HLE::Patch(0x81300000, "AppLoaderReport"); // HLE OSReport for Apploader PowerPC::ppcState.gpr[3] = 0x81300000; @@ -168,7 +168,7 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, // iAppLoaderMain - Here we load the apploader, the DOL (the exe) and the FST (filesystem). // To give you an idea about where the stuff is located on the disc take a look at yagcd // ch 13. - DEBUG_LOG_FMT(MASTER_LOG, "Call iAppLoaderMain"); + DEBUG_LOG_FMT(BOOT, "Call iAppLoaderMain"); PowerPC::ppcState.gpr[3] = 0x81300004; PowerPC::ppcState.gpr[4] = 0x81300008; @@ -186,7 +186,7 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, const u32 length = PowerPC::Read_U32(0x81300008); const u32 dvd_offset = PowerPC::Read_U32(0x8130000c) << (is_wii ? 2 : 0); - INFO_LOG_FMT(MASTER_LOG, "DVDRead: offset: {:08x} memOffset: {:08x} length: {}", dvd_offset, + INFO_LOG_FMT(BOOT, "DVDRead: offset: {:08x} memOffset: {:08x} length: {}", dvd_offset, ram_address, length); DVDRead(volume, dvd_offset, ram_address, length, partition); @@ -200,7 +200,7 @@ bool CBoot::RunApploader(bool is_wii, const DiscIO::VolumeDisc& volume, } // iAppLoaderClose - DEBUG_LOG_FMT(MASTER_LOG, "call iAppLoaderClose"); + DEBUG_LOG_FMT(BOOT, "call iAppLoaderClose"); RunFunction(iAppLoaderClose); HLE::UnPatch("AppLoaderReport"); From e97ad90681a7f687004ce3cce967a23a095c6869 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 29 Jul 2022 12:18:05 -0700 Subject: [PATCH 490/659] Boot/ElfReader: Log to BOOT log instead of MASTER log --- Source/Core/Core/Boot/ElfReader.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/Boot/ElfReader.cpp b/Source/Core/Core/Boot/ElfReader.cpp index 3a6fe040bc..bb0cd17036 100644 --- a/Source/Core/Core/Boot/ElfReader.cpp +++ b/Source/Core/Core/Boot/ElfReader.cpp @@ -125,7 +125,7 @@ const char* ElfReader::GetSectionName(int section) const // This is just a simple elf loader, good enough to load elfs generated by devkitPPC bool ElfReader::LoadIntoMemory(bool only_in_mem1) const { - INFO_LOG_FMT(MASTER_LOG, "String section: {}", header->e_shstrndx); + INFO_LOG_FMT(BOOT, "String section: {}", header->e_shstrndx); if (bRelocate) { @@ -133,14 +133,14 @@ bool ElfReader::LoadIntoMemory(bool only_in_mem1) const return false; } - INFO_LOG_FMT(MASTER_LOG, "{} segments:", header->e_phnum); + INFO_LOG_FMT(BOOT, "{} segments:", header->e_phnum); // Copy segments into ram. for (int i = 0; i < header->e_phnum; i++) { Elf32_Phdr* p = segments + i; - INFO_LOG_FMT(MASTER_LOG, "Type: {} Vaddr: {:08x} Filesz: {} Memsz: {}", p->p_type, p->p_vaddr, + INFO_LOG_FMT(BOOT, "Type: {} Vaddr: {:08x} Filesz: {} Memsz: {}", p->p_type, p->p_vaddr, p->p_filesz, p->p_memsz); if (p->p_type == PT_LOAD) @@ -157,12 +157,11 @@ bool ElfReader::LoadIntoMemory(bool only_in_mem1) const if (srcSize < dstSize) Memory::Memset(writeAddr + srcSize, 0, dstSize - srcSize); // zero out bss - INFO_LOG_FMT(MASTER_LOG, "Loadable Segment Copied to {:08x}, size {:08x}", writeAddr, - p->p_memsz); + INFO_LOG_FMT(BOOT, "Loadable Segment Copied to {:08x}, size {:08x}", writeAddr, p->p_memsz); } } - INFO_LOG_FMT(MASTER_LOG, "Done loading."); + INFO_LOG_FMT(BOOT, "Done loading."); return true; } From de5499f3bde813a2749204c8dfa14d7d49a5c073 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 29 Jul 2022 22:48:43 +0200 Subject: [PATCH 491/659] Translation resources sync with Transifex --- Languages/po/ar.po | 299 ++++++++++---------- Languages/po/ca.po | 299 ++++++++++---------- Languages/po/cs.po | 299 ++++++++++---------- Languages/po/da.po | 299 ++++++++++---------- Languages/po/de.po | 299 ++++++++++---------- Languages/po/dolphin-emu.pot | 299 ++++++++++---------- Languages/po/el.po | 299 ++++++++++---------- Languages/po/en.po | 299 ++++++++++---------- Languages/po/es.po | 517 ++++++++++++++++++----------------- Languages/po/fa.po | 299 ++++++++++---------- Languages/po/fr.po | 333 +++++++++++----------- Languages/po/hr.po | 299 ++++++++++---------- Languages/po/hu.po | 299 ++++++++++---------- Languages/po/it.po | 333 +++++++++++----------- Languages/po/ja.po | 299 ++++++++++---------- Languages/po/ko.po | 417 +++++++++++++++------------- Languages/po/ms.po | 299 ++++++++++---------- Languages/po/nb.po | 299 ++++++++++---------- Languages/po/nl.po | 349 ++++++++++++----------- Languages/po/pl.po | 299 ++++++++++---------- Languages/po/pt.po | 299 ++++++++++---------- Languages/po/pt_BR.po | 402 ++++++++++++++------------- Languages/po/ro.po | 299 ++++++++++---------- Languages/po/ru.po | 299 ++++++++++---------- Languages/po/sr.po | 299 ++++++++++---------- Languages/po/sv.po | 299 ++++++++++---------- Languages/po/tr.po | 299 ++++++++++---------- Languages/po/zh_CN.po | 341 ++++++++++++----------- Languages/po/zh_TW.po | 299 ++++++++++---------- 29 files changed, 4750 insertions(+), 4520 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index afb94e3a9f..d507adb315 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -738,12 +738,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -776,19 +776,19 @@ msgid "32-bit Unsigned Integer" msgstr "32-bit عدد صحيح غير موقع" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D عمق" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -808,7 +808,7 @@ msgstr "4 Mbit (59 blocks)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1083,7 +1083,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "تفعيل المحادثة في اللعب عبر الشبكة" @@ -1134,11 +1134,11 @@ msgstr "إضافة جهاز يو إس بي جديد" msgid "Add Shortcut to Desktop" msgstr "إضافة اختصار إلى سطح المكتب" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "إضافة نقطة توقف" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "أضف نقطة توقف الذاكرة" @@ -1793,7 +1793,7 @@ msgstr "الفروع" msgid "Break" msgstr "كسر" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "توقف" @@ -1807,7 +1807,7 @@ msgid "Breakpoints" msgstr "نقاط التوقف" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1885,7 +1885,7 @@ msgstr "زر" msgid "Buttons" msgstr "الأزرار" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "بواسطة: " @@ -2034,6 +2034,10 @@ msgstr "حجم البطاقة" msgid "Center" msgstr "مركز" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "المركز و المعايرة" @@ -2317,7 +2321,7 @@ msgstr "التأكيد" msgid "Connect" msgstr "اتصال" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "ربط لوح الميزان" @@ -2329,19 +2333,19 @@ msgstr "ربط لوحة مفاتيح يو إس بي" msgid "Connect Wii Remote %1" msgstr "%1 ربط ريموت وي" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "ربط ريموت وي 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "ربط ريموت وي 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "ربط ريموت وي 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "ربط ريموت وي 4" @@ -2377,7 +2381,7 @@ msgstr "{0:08x} المحتوى تالف" msgid "Continuous Scanning" msgstr "البحث المستمر" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Control NetPlay Golf Mode" @@ -2390,19 +2394,19 @@ msgstr "عصا التحكم" msgid "Controller Profile" msgstr "ملف تعريف وحدة التحكم" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "ملف تعريف وحدة التحكم 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "ملف تعريف وحدة التحكم 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "ملف تعريف وحدة التحكم 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "ملف تعريف وحدة التحكم 4" @@ -2918,20 +2922,20 @@ msgstr "جودة فك التشفير:" msgid "Decrease" msgstr "تخفيض" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "تخفيض التقارب" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "تخفيض العمق" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "تقليل سرعة المحاكاة" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "تقليل الأشعة تحت الحمراء" @@ -3030,7 +3034,7 @@ msgstr "الوصف" msgid "Description:" msgstr "الوصف" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "وصف: " @@ -3133,7 +3137,7 @@ msgstr "Disable Copy Filter" msgid "Disable EFB VRAM Copies" msgstr "Disable EFB VRAM Copies" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "تعطيل محاكاة الحد الأقصى للسرعة" @@ -3645,7 +3649,7 @@ msgstr "" "Current: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "سرعة المحاكاة " @@ -4158,7 +4162,7 @@ msgstr "تصدير جميع حفظ وي" msgid "Export Failed" msgstr "فشل التصدير" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "تصدير تسجيل" @@ -4900,20 +4904,20 @@ msgstr "" msgid "Frame %1" msgstr "%1 الإطار" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "الإطار المسبق" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "تخفيض سرعة الإطار المسبق" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "زيادة سرعة الإطار المسبق" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr " إعادة تعيين سرعة الإطار المسبق" @@ -4974,11 +4978,11 @@ msgstr "" msgid "FreeLook" msgstr "نظرة حرة" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "نظرة حرة" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "نظرة حرة" @@ -5036,7 +5040,7 @@ msgstr "(Integrated) جيم بوي أدفانس" msgid "GBA (TCP)" msgstr "(TCP) جيم بوي أدفانس" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "جيم بوي أدفانس" @@ -5048,11 +5052,11 @@ msgstr "%1 جيم بوي أدفانس منفذ" msgid "GBA Settings" msgstr "إعدادات جيم بوي أدفانس" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "صوت جيم بوي أدفانس" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "حجم النافذة جيم بوي أدفانس" @@ -5300,7 +5304,7 @@ msgstr "حجم البوابة" msgid "Gecko Codes" msgstr "Gecko رموز" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5368,7 +5372,7 @@ msgstr "الرسومات" msgid "Graphics Mods" msgstr "تعديلات الرسومات" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "الرسومات" @@ -5549,7 +5553,7 @@ msgstr "اسم المضيف" msgid "Hotkey Settings" msgstr "إعدادات مفاتيح الاختصار" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5804,20 +5808,20 @@ msgstr "" msgid "Increase" msgstr "زيادة" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "زيادة التقارب" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "زيادة العمق" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "زيادة سرعة المحاكاة" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "زيادة الأشعة تحت الحمراء" @@ -5963,7 +5967,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6365,7 +6369,7 @@ msgstr "تحميل النسيج المخصص" msgid "Load GameCube Main Menu" msgstr "تحميل قائمة جيم كيوب الرئيسية " -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "تحميل الحالة الأخيرة" @@ -6374,92 +6378,92 @@ msgstr "تحميل الحالة الأخيرة" msgid "Load Path:" msgstr "مسار التحميل" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "تحميل القرص" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "تحميل الحالة" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "تحميل حالة 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "تحميل حالة 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "تحميل حالة 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "تحميل حالة 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "تحميل حالة 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "تحميل حالة 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "تحميل حالة 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "تحميل حالة 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "تحميل حالة 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "تحميل حالة 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "تحميل الحالة فتحة 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "تحميل الحالة فتحة 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "تحميل الحالة فتحة 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "تحميل الحالة فتحة 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "تحميل الحالة فتحة 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "تحميل الحالة فتحة 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "تحميل الحالة فتحة 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "تحميل الحالة فتحة 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "تحميل الحالة فتحة 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "تحميل الحالة فتحة 9" @@ -6483,7 +6487,7 @@ msgstr "تحميل حفظ وي" msgid "Load Wii System Menu %1" msgstr "%1 تحميل قائمة نظام وي" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "التحميل من الفتحة المحددة" @@ -6810,7 +6814,7 @@ msgstr "لن يكون مؤشر الماوس مرئيًا أبدًا أثناء msgid "Move" msgstr "نقل" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "فيلم" @@ -6964,8 +6968,8 @@ msgstr "تعليمات جديدة" msgid "New tag" msgstr "علامة جديدة" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "ملف تعريف اللعبة التالية" @@ -6973,8 +6977,8 @@ msgstr "ملف تعريف اللعبة التالية" msgid "Next Match" msgstr "التالية" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "ملف التعريف التالي" @@ -7327,7 +7331,7 @@ msgstr "أخرى" msgid "Other Partition (%1)" msgstr "(%1) قسم آخر" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "حالة أخرى مفاتيح الاختصار" @@ -7523,7 +7527,7 @@ msgstr "تشغيل" msgid "Play / Record" msgstr "لعب / سجل" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "تشغيل التسجيل" @@ -7609,7 +7613,7 @@ msgstr "" msgid "Presets" msgstr "المسبقة" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "اضغط على زر المزامنة" @@ -7627,8 +7631,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "ملف تعريف اللعبة السابقة" @@ -7636,8 +7641,8 @@ msgstr "ملف تعريف اللعبة السابقة" msgid "Previous Match" msgstr "السابقة" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "ملف التعريف السابق" @@ -7687,7 +7692,7 @@ msgstr "" msgid "Profile" msgstr "الملف الشخصي" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "عداد البرنامج" @@ -7815,7 +7820,7 @@ msgstr "يقرأ فقط" msgid "Read or Write" msgstr "قراءة أو كتابة" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "وضع القراءة فقط" @@ -8004,7 +8009,7 @@ msgid "Request to Join Your Party" msgstr "طلب الانضمام إلى المجموعة" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8279,7 +8284,7 @@ msgstr "" msgid "Save Import" msgstr "حفظ الاستيراد" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "حفظ الحالة القديمة" @@ -8291,49 +8296,49 @@ msgstr "حفظ الإعداد المسبق" msgid "Save Recording File As" msgstr "حفظ ملف التسجيل باسم" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "حفظ حالة" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "حفظ الحالة فتحة 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "حفظ الحالة فتحة 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "حفظ الحالة فتحة 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "حفظ الحالة فتحة 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "حفظ الحالة فتحة 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "حفظ الحالة فتحة 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "حفظ الحالة فتحة 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "حفظ الحالة فتحة 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "حفظ الحالة فتحة 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "حفظ الحالة فتحة 9" @@ -8399,7 +8404,7 @@ msgstr "Save map file" msgid "Save signature file" msgstr "احفظ ملف التوقيع" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "الحفظ إلى الفتحة المحددة" @@ -8541,7 +8546,7 @@ msgstr "Riivolution XML حدد ملف" msgid "Select Slot %1 - %2" msgstr "%1 - %2 حدد الفتحة" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "اختر الحالة" @@ -8549,43 +8554,43 @@ msgstr "اختر الحالة" msgid "Select State Slot" msgstr "تحديد فتحة الحالة" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "حفظ حالة 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "حفظ حالة 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "حفظ حالة 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "حفظ حالة 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "حفظ حالة 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "حفظ حالة 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "حفظ حالة 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "حفظ حالة 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "حفظ حالة 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "حفظ حالة 9" @@ -8781,7 +8786,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "تعيين الكمبيوتر" @@ -8981,7 +8986,7 @@ msgid "Show PAL" msgstr "أوروبا" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "عرض الكمبيوتر" @@ -9163,7 +9168,7 @@ msgstr "" "حجم المخزن المؤقت للتمدد بالمللي ثانية. قد تؤدي القيم المنخفضة جدًا إلى حدوث " "صوت طقطقة." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "تخطى" @@ -9342,7 +9347,7 @@ msgstr "بدء بحث أسرار جديدة" msgid "Start Re&cording Input" msgstr "بدء التسجيل" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9383,19 +9388,19 @@ msgstr "خطوة" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "خطوة الى" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "خطوة لخارج" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "خطوة أكثر" @@ -9415,7 +9420,7 @@ msgstr "خطوة أكثر في التقدم" msgid "Step successful!" msgstr "خطوة ناجحة!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "التنقل" @@ -10186,7 +10191,7 @@ msgstr "" "This action replay simulator does not support codes that modify Action " "Replay itself." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10326,7 +10331,7 @@ msgstr "تم تعيين هذا العنوان لاستخدام نظام تشغي msgid "This title is set to use an invalid common key." msgstr "تم تعيين هذا العنوان لاستخدام مفتاح عام غير صالح" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10334,7 +10339,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10420,15 +10425,15 @@ msgstr "إلى" msgid "Toggle &Fullscreen" msgstr "ملء الشاشة" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Toggle 3D Anaglyph" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Toggle 3D Side-by-Side" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Toggle 3D Top-Bottom" @@ -10436,28 +10441,28 @@ msgstr "Toggle 3D Top-Bottom" msgid "Toggle All Log Types" msgstr "كافة أنواع السجلات" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "تناسب الأبعاد" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "نقطة التوقف" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "الاقتصاص" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "النسيج المخصص" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB نسخ" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "الضباب" @@ -10469,27 +10474,27 @@ msgstr "ملء الشاشة" msgid "Toggle Pause" msgstr "إيقاف مؤقت" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "SD Card" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "تفريغ النسيج" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "لوحة مفاتيح يو إس بي" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Toggle XFB Copies" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Toggle XFB Immediate Mode" @@ -10694,11 +10699,11 @@ msgstr "غير منضم" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "غير مضغوطة GC/Wii صورة (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "التراجع عن تحميل الحالة" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "التراجع عن حفظ الحالة" @@ -10798,7 +10803,7 @@ msgstr "" msgid "Unlimited" msgstr "غير محدود" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "إلغاء تحميل القرص" @@ -11133,22 +11138,22 @@ msgstr "الشقوق الافتراضية" msgid "Virtual address space" msgstr "مساحة العنوان الافتراضية" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "الصوت" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "خفض مستوى الصوت" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr " كتم الصوت" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "رفع مستوى الصوت" @@ -11363,7 +11368,7 @@ msgstr "الاجهزة المسموح لها المرور خلال منفذ يو msgid "Widescreen Hack" msgstr "شاشة عريضة" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 797935e9b8..286916c7b0 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -719,12 +719,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -757,19 +757,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Profunditat 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -789,7 +789,7 @@ msgstr "4 Mbit (59 blocs)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1041,7 +1041,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1092,11 +1092,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1732,7 +1732,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1746,7 +1746,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1824,7 +1824,7 @@ msgstr "Botó" msgid "Buttons" msgstr "Botons" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1971,6 +1971,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2252,7 +2256,7 @@ msgstr "" msgid "Connect" msgstr "Connectar" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Connectar la Balance Board" @@ -2264,19 +2268,19 @@ msgstr "Connectar el teclat USB" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2312,7 +2316,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Escaneig continu" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2325,19 +2329,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2812,20 +2816,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Disminuir convergència" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Disminuir profunditat" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2924,7 +2928,7 @@ msgstr "Descripció" msgid "Description:" msgstr "Descripció:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3021,7 +3025,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3522,7 +3526,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4026,7 +4030,7 @@ msgstr "Exportar totes les partides guardades de Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportar gravació" @@ -4744,20 +4748,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avançar Fotograma" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4814,11 +4818,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4876,7 +4880,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4888,11 +4892,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5140,7 +5144,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Codis Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5208,7 +5212,7 @@ msgstr "Gràfics" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5385,7 +5389,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5613,20 +5617,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5772,7 +5776,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Error intern LZO - lzo_init () ha fallat" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6169,7 +6173,7 @@ msgstr "Carrega textures personalitzades" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6178,92 +6182,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Carregar estat" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Carregar últim estat 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Carregar últim estat 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Carregar últim estat 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Carregar últim estat 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Carregar últim estat 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Carregar últim estat 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Carregar últim estat 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Carregar últim estat 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Carregar ranura d'estat 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Carregar estat 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Carregar ranura d'estat 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Carregar ranura d'estat 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Carregar ranura d'estat 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Carregar ranura d'estat 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Carregar ranura d'estat 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Carregar ranura d'estat 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Carregar ranura d'estat 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Carregar estat 9" @@ -6287,7 +6291,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6608,7 +6612,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6762,8 +6766,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6771,8 +6775,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7118,7 +7122,7 @@ msgstr "Altres" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7314,7 +7318,7 @@ msgstr "Executar" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Reproduir enregistrament" @@ -7398,7 +7402,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7416,8 +7420,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7425,8 +7430,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7470,7 +7475,7 @@ msgstr "" msgid "Profile" msgstr "Perfil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7596,7 +7601,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7782,7 +7787,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8057,7 +8062,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Desar l'Estat Més Antic" @@ -8069,49 +8074,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Desar Estat" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Desar Ranura d'Estat 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Desar Ranura d'Estat 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Desar Ranura d'Estat 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Desar Ranura d'Estat 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Desar Ranura d'Estat 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Desar Ranura d'Estat 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Desar Ranura d'Estat 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Desar Ranura d'Estat 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Desar Ranura d'Estat 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Desar Ranura d'Estat 9" @@ -8174,7 +8179,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8316,7 +8321,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8324,43 +8329,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8556,7 +8561,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8749,7 +8754,7 @@ msgid "Show PAL" msgstr "Mostrar PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8929,7 +8934,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9104,7 +9109,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9145,19 +9150,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9177,7 +9182,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9911,7 +9916,7 @@ msgstr "" "Aquest simulador d'Action Replay no és compatible amb els codis que " "modifiquen el mateix Action Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10028,7 +10033,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10036,7 +10041,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10117,15 +10122,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10133,28 +10138,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Commutar Tots els Tipus de Registre" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Commutar Relació d'Aspecte" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Commutar Còpies del EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Commutar Boira" @@ -10166,27 +10171,27 @@ msgstr "Commutar Pantalla Completa" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10381,11 +10386,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Desfer la Càrrega de l'Estat" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Desfer Estat Guardat" @@ -10482,7 +10487,7 @@ msgstr "" msgid "Unlimited" msgstr "Il·limitat" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10811,22 +10816,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volum" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Baixar el volum" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Pujar el volum" @@ -11029,7 +11034,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Modificació de Pantalla Panoràmica" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 647e56af7c..99807d9268 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -712,12 +712,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -750,19 +750,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -782,7 +782,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1085,11 +1085,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1725,7 +1725,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1739,7 +1739,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1817,7 +1817,7 @@ msgstr "" msgid "Buttons" msgstr "Tlačítka" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1964,6 +1964,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2245,7 +2249,7 @@ msgstr "" msgid "Connect" msgstr "Připojit" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Připojit Rola-Bola" @@ -2257,19 +2261,19 @@ msgstr "Připojit USB Klávesnici" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2305,7 +2309,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Průběžné skenování" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2318,19 +2322,19 @@ msgstr "Ovládací páčka" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2805,20 +2809,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Snížit sblížení" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Snížit hloubku" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Snížit rychlost emulace" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Snížit vnitřní rozlišení" @@ -2917,7 +2921,7 @@ msgstr "Popis" msgid "Description:" msgstr "Popis:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3014,7 +3018,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Zakázat limit rychlosti emulace" @@ -3515,7 +3519,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4022,7 +4026,7 @@ msgstr "Exportovat všechny uložené hry Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportovat Nahrávku" @@ -4740,20 +4744,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Postup Snímkem" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Snížit rychlost postupu snímkem" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Zvýšit rychlost postupu snímkem" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Resetovat rychlost postupu snímkem" @@ -4810,11 +4814,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4872,7 +4876,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4884,11 +4888,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5136,7 +5140,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Kódy Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5204,7 +5208,7 @@ msgstr "Grafika" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5381,7 +5385,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5609,20 +5613,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Zvýšit sblížení" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Zvýšit hloubku" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Zvýšit rychlost emulace" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Zvýšit vnitřní rozlišení" @@ -5768,7 +5772,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Vnitřní chyba LZO - lzo_init() selhalo" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6164,7 +6168,7 @@ msgstr "Nahrát Vlastní Textury" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6173,92 +6177,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Načíst stav" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Načíst 1. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Načíst 10. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Načíst 2. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Načíst 3. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Načíst 4. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Načíst 5. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Načíst 6. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Načíst 7. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Načíst 8. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Načíst 9. uložený stav" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Nahrát stav v pozici 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Načíst stav v pozici 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Nahrát stav v pozici 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Nahrát stav v pozici 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Nahrát stav v pozici 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Nahrát stav v pozici 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Nahrát stav v pozici 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Nahrát stav v pozici 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Nahrát stav v pozici 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Načíst stav v pozici 9" @@ -6282,7 +6286,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6603,7 +6607,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6759,8 +6763,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6768,8 +6772,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7116,7 +7120,7 @@ msgstr "Jiné" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7312,7 +7316,7 @@ msgstr "Spustit" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Přehrát nahrávku" @@ -7396,7 +7400,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7414,8 +7418,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7423,8 +7428,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7468,7 +7473,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7594,7 +7599,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7780,7 +7785,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8055,7 +8060,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Načíst nejstarší stav" @@ -8067,49 +8072,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Uložit stav" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Uložit stav do pozice 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Uložit stav do pozice 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Uložit stav do pozice 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Uložit stav do pozice 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Uložit stav do pozice 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Uložit stav do pozice 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Uložit stav do pozice 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Uložit stav do pozice 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Uložit stav do pozice 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Uložit stav do pozice 9" @@ -8172,7 +8177,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8314,7 +8319,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8322,43 +8327,43 @@ msgstr "" msgid "Select State Slot" msgstr "Vybrat pozici stavu" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Vybrat stav na pozici 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Vybrat stav na pozici 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Vybrat stav na pozici 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Vybrat stav na pozici 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Vybrat stav na pozici 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Vybrat stav na pozici 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Vybrat stav na pozici 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Vybrat stav na pozici 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Vybrat stav na pozici 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Vybrat stav na pozici 9" @@ -8554,7 +8559,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8749,7 +8754,7 @@ msgid "Show PAL" msgstr "Zobrazit PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8929,7 +8934,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9104,7 +9109,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "&Začít nahrávat vstup" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9145,19 +9150,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9177,7 +9182,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9911,7 +9916,7 @@ msgstr "" "Tento simulátor action replay nepodporuje kód, který mění samotný Action " "Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10028,7 +10033,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10036,7 +10041,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10118,15 +10123,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Přepnout 3D anaglyf" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10134,28 +10139,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Zapnout Všechny Typy Záznamů" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Přepínat poměr stran" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Přepnout oříznutí" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Přepínat kopie EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Přepínat mlhu" @@ -10167,27 +10172,27 @@ msgstr "Přepnout na Celou Obrazovku" msgid "Toggle Pause" msgstr "Pozastavit" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10382,11 +10387,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Vrátit zpět Nahrání Stavu" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Vrátit zpět Uložení Stavu" @@ -10483,7 +10488,7 @@ msgstr "" msgid "Unlimited" msgstr "Neomezeno" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10812,22 +10817,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Hlasitost" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Snížit hlasitost" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Zapnout ztlumení zvuku" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Zvýšit hlasitost" @@ -11030,7 +11035,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Hack Širokoúhlého obrazu" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/da.po b/Languages/po/da.po index 3eab4115cf..e2f28245ed 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -737,12 +737,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -775,19 +775,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D-dybde" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -807,7 +807,7 @@ msgstr "4 Mbit (59 blokke)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1073,7 +1073,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1124,11 +1124,11 @@ msgstr "Leg til ny USB enhed" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Tilføj et hukommelsesbreakpoint" @@ -1766,7 +1766,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1780,7 +1780,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1858,7 +1858,7 @@ msgstr "Knap" msgid "Buttons" msgstr "Knapper" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2005,6 +2005,10 @@ msgstr "" msgid "Center" msgstr "Center" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2286,7 +2290,7 @@ msgstr "Bekræftelse" msgid "Connect" msgstr "Tilslut" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Forbind Balanceboard" @@ -2298,19 +2302,19 @@ msgstr "Forbind USB Tastatur" msgid "Connect Wii Remote %1" msgstr "Tilslut Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Tilslut Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Tilslut Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Tilslut Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Tilslut Wii Remote 4" @@ -2346,7 +2350,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Kontinuerlig Skanning" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2359,19 +2363,19 @@ msgstr "Kontrol-Stick" msgid "Controller Profile" msgstr "Kontrollerprofil" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2853,20 +2857,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Formindsk Konvergens" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Formindsk Dybde" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Sænk emulationshastighed" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Formindst IR" @@ -2965,7 +2969,7 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3062,7 +3066,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "Deaktiver EFB VRAM kopier" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Deaktiver begrænsning af emulationshastighed" @@ -3563,7 +3567,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Emulationshastighed" @@ -4074,7 +4078,7 @@ msgstr "Eksporter alle Wii-saves" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Eksporter optagelse" @@ -4792,20 +4796,20 @@ msgstr "" msgid "Frame %1" msgstr "Billede %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Billedfremskydning" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Nedsæt 'Næste frame'-hastighed" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Billedfremskydning Forøg Hastighed" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Billedfremskydning Nulstil Hastighed" @@ -4862,11 +4866,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4924,7 +4928,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4936,11 +4940,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5188,7 +5192,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko-koder" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5256,7 +5260,7 @@ msgstr "Grafik" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafikindstillinger" @@ -5433,7 +5437,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Genvejstastindstillinger" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5669,20 +5673,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Forøg konvergens" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Forøg dybte" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Forøg emulationshastighed" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Forøg IR" @@ -5828,7 +5832,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-fejl - lzo_init() mislykkedes" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6224,7 +6228,7 @@ msgstr "Indlæs tilpassede teksturer" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6233,92 +6237,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Indlæs tilstand" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Indlæs sidste tilstand 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Indlæs sidste tilstand 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Indlæs sidste tilstand 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Indlæs sidste tilstand 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Indlæs sidste tilstand 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Indlæs sidste tilstand 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Indlæs sidste tilstand 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Indlæs sidste tilstand 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Indlæs sidste tilstand 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Indlæs sidste tilstand 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Indlæs tilstand plads 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Indlæs tilstand plads 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Indlæs tilstand plads 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Indlæs tilstand plads 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Indlæs tilstand plads 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Indlæs tilstand plads 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Indlæs tilstand plads 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Indlæs tilstand plads 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Indlæs tilstand plads 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Indlæs tilstand plads 9" @@ -6342,7 +6346,7 @@ msgstr "Last Wii-save" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6665,7 +6669,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Video" @@ -6819,8 +6823,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6828,8 +6832,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7177,7 +7181,7 @@ msgstr "Andre" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Anden tilstand genvejstaster" @@ -7373,7 +7377,7 @@ msgstr "Afspil" msgid "Play / Record" msgstr "Spil/optagelse" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Afspil optagelse" @@ -7457,7 +7461,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Tryk på Sync-knap" @@ -7475,8 +7479,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7484,8 +7489,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7529,7 +7534,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7655,7 +7660,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7841,7 +7846,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8116,7 +8121,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Gem ældste tilstand" @@ -8128,49 +8133,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Gem tilstand" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Gem tilstand plads 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Gem tilstand plads 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Gem tilstand plads 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Gem tilstand plads 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Gem tilstand plads 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Gem tilstand plads 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Gem tilstand plads 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Gem tilstand plads 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Gem tilstand plads 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Gem tilstand plads 9" @@ -8233,7 +8238,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8375,7 +8380,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Vælg plads %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Vælg tilstand" @@ -8383,43 +8388,43 @@ msgstr "Vælg tilstand" msgid "Select State Slot" msgstr "Vælg tilstand plads" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Vælg tilstand plads 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Vælg tilstand plads 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Vælg tilstand plads 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Vælg tilstand plads 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Vælg tilstand plads 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Vælg tilstand plads 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Vælg tilstand plads 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Vælg tilstand plads 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Vælg tilstand plads 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Vælg tilstand plads 9" @@ -8615,7 +8620,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Indstil PC" @@ -8811,7 +8816,7 @@ msgid "Show PAL" msgstr "Vis PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Vis PC" @@ -8991,7 +8996,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Spring over" @@ -9166,7 +9171,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "Start med at &optage input" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9207,19 +9212,19 @@ msgstr "Hop" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Hop ud" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Hop over" @@ -9239,7 +9244,7 @@ msgstr "Hop over udføres..." msgid "Step successful!" msgstr "Hop succes!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9973,7 +9978,7 @@ msgstr "" "Action Replay-simulatoren understøtter ikke koder, der modificerer selve " "Action Replay'en." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10094,7 +10099,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10102,7 +10107,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10183,15 +10188,15 @@ msgstr "Til:" msgid "Toggle &Fullscreen" msgstr "Aktiver &fuldskærm" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Skift 3D Anaglyph" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10199,28 +10204,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Skift alle logtyper" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Skift forholdstal" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Skift beskæring" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Skift tilpassede teksturer" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Skift EFB-kopier" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Skift tåge" @@ -10232,27 +10237,27 @@ msgstr "Aktiver fuldskærm" msgid "Toggle Pause" msgstr "Pause til/fra" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Skift teksturudlæsning" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10456,11 +10461,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Fortryd indlæsning af tilstand" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Fortræd lagring af tilstand" @@ -10557,7 +10562,7 @@ msgstr "" msgid "Unlimited" msgstr "Ubegrænset" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10886,22 +10891,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Lydstyrke" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Skru lyden ned" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Slå lyden fra/til" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Skru lyde op" @@ -11106,7 +11111,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Widescreen-hack" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/de.po b/Languages/po/de.po index 9b7161c274..78424a997f 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -763,12 +763,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -801,19 +801,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D-Tiefe" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -833,7 +833,7 @@ msgstr "4 Mbit (59 Blöcke)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1130,7 +1130,7 @@ msgstr "Action Replay: Normal Code 0: Ungültiger Subtype {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Normal Code {0}: Ungültiger Subtype {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "NetPlay Chat aktivieren" @@ -1181,11 +1181,11 @@ msgstr "Neues USB-Gerät hinzufügen" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Einen Haltepunkt hinzufügen" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Speicherhaltepunkt hinzufügen" @@ -1860,7 +1860,7 @@ msgstr "Zweige" msgid "Break" msgstr "Unterbrechen" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Haltepunkt" @@ -1874,7 +1874,7 @@ msgid "Breakpoints" msgstr "Haltepunkte" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1955,7 +1955,7 @@ msgstr "Taste" msgid "Buttons" msgstr "Tasten" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2114,6 +2114,10 @@ msgstr "Kartengröße" msgid "Center" msgstr "Mitte" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Zentrieren und Kalibrieren" @@ -2408,7 +2412,7 @@ msgstr "Bestätigung" msgid "Connect" msgstr "Verbinden" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Balance Bord anschließen" @@ -2420,19 +2424,19 @@ msgstr "USB-Tastatur verbunden" msgid "Connect Wii Remote %1" msgstr "Wiimote %1 verbinden" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Wiimote 1 verbinden" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Wiimote 2 verbinden" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Wiimote 3 verbinden" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Wiimote 4 verbinden" @@ -2469,7 +2473,7 @@ msgstr "Inhalt {0:08x} ist beschädigt." msgid "Continuous Scanning" msgstr "Durchgehendes Suchen" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "NetPlay Golf-Modus steuern" @@ -2482,19 +2486,19 @@ msgstr "Control Stick" msgid "Controller Profile" msgstr "Controller-Profil" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Controller-Profil 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Controller-Profil 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Controller-Profil 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Controller-Profil 4" @@ -3031,20 +3035,20 @@ msgstr "Decodierungsqualität:" msgid "Decrease" msgstr "Reduzieren" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Konvergenz verrringern" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Tiefe reduzieren" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Emulationsgeschwindigkeit verringern" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Interne Auflösung reduzieren" @@ -3149,7 +3153,7 @@ msgstr "Beschreibung" msgid "Description:" msgstr "Beschreibung:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3252,7 +3256,7 @@ msgstr "Kopierfilter deaktivieren" msgid "Disable EFB VRAM Copies" msgstr "EFB VRAM-Kopien deaktivieren" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Geschwindigkeitsbegrenzung ausschalten" @@ -3796,7 +3800,7 @@ msgstr "" "Aktuell: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Emulationsgeschwindigkeit" @@ -4338,7 +4342,7 @@ msgstr "Alle Wii-Spielstände exportieren" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Aufnahme exportieren" @@ -5116,20 +5120,20 @@ msgstr "" msgid "Frame %1" msgstr "Bild %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Einzelbildwiedergabe" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Erhöhe Einzelbildwiedergabegeschwindigkeit" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Verringere Einzelbildwiedergabegeschwindigkeit" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Einzelbildwiedergabegeschwindigkeit zurücksetzen" @@ -5190,11 +5194,11 @@ msgstr "" msgid "FreeLook" msgstr "Freies Umsehen" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Freies Umsehen" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Freies Umsehen umschalten" @@ -5252,7 +5256,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -5264,11 +5268,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5535,7 +5539,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko-Codes" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5603,7 +5607,7 @@ msgstr "Grafik" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafik schaltet um" @@ -5790,7 +5794,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Tastenkürzel-Einstellungen" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6075,20 +6079,20 @@ msgstr "" msgid "Increase" msgstr "Erhöhen" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Konvergenz erhöhen" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Tiefe erhöhen" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Emulationsgeschwindigkeit erhöhen" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Interne Auflösung erhöhen" @@ -6236,7 +6240,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Interner LZO-Fehler - lzo_init() fehlgeschlagen" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6641,7 +6645,7 @@ msgstr "Lade benutzerdefinierte Texturen" msgid "Load GameCube Main Menu" msgstr "GameCube-Hauptmenü laden" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Letzten Spielstand laden" @@ -6650,92 +6654,92 @@ msgstr "Letzten Spielstand laden" msgid "Load Path:" msgstr "Ladepfad:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Spielstand laden" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Zuletzt gespeicherten Spielstand 1 laden" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Zuletzt gespeicherten Spielstand 10 laden" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Zuletzt gespeicherten Spielstand 2 laden" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Zuletzt gespeicherten Spielstand 3 laden" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Zuletzt gespeicherten Spielstand 4 laden" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Zuletzt gespeicherten Spielstand 5 laden" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Zuletzt gespeicherten Spielstand 6 laden" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Zuletzt gespeicherten Spielstand 7 laden" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Zuletzt gespeicherten Spielstand 8 laden" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Zuletzt gespeicherten Spielstand 9 laden" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Spielstand in Slot 1 laden" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Spielstand in Slot 10 laden" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Spielstand in Slot 2 laden" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Spielstand in Slot 3 laden" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Spielstand in Slot 4 laden" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Spielstand in Slot 5 laden" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Spielstand in Slot 6 laden" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Spielstand in Slot 7 laden" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Spielstand in Slot 8 laden" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Spielstand in Slot 9 laden" @@ -6759,7 +6763,7 @@ msgstr "Wii-Spielstand laden" msgid "Load Wii System Menu %1" msgstr "Wii-Systemmenü laden %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Spielstand vom ausgewählten Slot laden" @@ -7098,7 +7102,7 @@ msgstr "" msgid "Move" msgstr "Bewegen" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Film" @@ -7253,8 +7257,8 @@ msgstr "Neue Anweisung:" msgid "New tag" msgstr "Neues Tag" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Nächstes Spielprofil" @@ -7262,8 +7266,8 @@ msgstr "Nächstes Spielprofil" msgid "Next Match" msgstr "Nächste Übereinstimmung" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Nächstes Profil" @@ -7619,7 +7623,7 @@ msgstr "Andere" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Tastenkürzel anderer Spielstand" @@ -7815,7 +7819,7 @@ msgstr "Start" msgid "Play / Record" msgstr "Abspielen / Aufnahme" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Aufnahme abspielen" @@ -7903,7 +7907,7 @@ msgstr "" msgid "Presets" msgstr "Voreinstellungen" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Sync-Taste drücken" @@ -7926,8 +7930,9 @@ msgstr "" "

Nicht empfohlen, nur verwenden, wenn die anderen " "Optionen schlechte Ergebnisse liefern." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Vorheriges Spielprofil" @@ -7935,8 +7940,8 @@ msgstr "Vorheriges Spielprofil" msgid "Previous Match" msgstr "Vorherige Übereinstimmung" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Vorheriges Profil" @@ -7986,7 +7991,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Programmzähler" @@ -8112,7 +8117,7 @@ msgstr "Nur Lesen" msgid "Read or Write" msgstr "Lesen oder Schreiben" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Nur-Lese-Modus" @@ -8309,7 +8314,7 @@ msgid "Request to Join Your Party" msgstr "Anfrage deiner Gruppe beizutreten" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8584,7 +8589,7 @@ msgstr "" msgid "Save Import" msgstr "Import speichern" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Ältesten Spielstand überschreiben" @@ -8596,49 +8601,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Spielstand speichern" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "In Slot 1 speichern" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "In Slot 10 speichern" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "In Slot 2 speichern" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "In Slot 3 speichern" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "In Slot 4 speichern" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "In Slot 5 speichern" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "In Slot 6 speichern" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "In Slot 7 speichern" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "In Slot 8 speichern" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "In Slot 9 speichern" @@ -8704,7 +8709,7 @@ msgstr "Kartendatei speichern" msgid "Save signature file" msgstr "Signaturdatei speichern" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Spielstand im ausgewählten Slot speichern" @@ -8849,7 +8854,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Slot %1 - %2 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Spielstand auswählen" @@ -8857,43 +8862,43 @@ msgstr "Spielstand auswählen" msgid "Select State Slot" msgstr "Spielstand-Slot auswählen" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Slot 1 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Slot 10 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Slot 2 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Slot 3 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Slot 4 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Slot 5 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Slot 6 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Slot 7 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Slot 8 auswählen" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Slot 9 auswählen" @@ -9115,7 +9120,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "PC zuweisen" @@ -9313,7 +9318,7 @@ msgid "Show PAL" msgstr "PAL anzeigen" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "PC anzeigen" @@ -9507,7 +9512,7 @@ msgstr "" "Größe des Dehnungspuffers in Millisekunden. Zu niedrige Werte können zu " "Audioknistern führen." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Überspringen" @@ -9691,7 +9696,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "&Aufzeichnung der Eingabe starten" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9732,19 +9737,19 @@ msgstr "Schritt" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Schritt hinein" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Schritt heraus" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Schritt über" @@ -9764,7 +9769,7 @@ msgstr "Schritt über in Bearbeitung..." msgid "Step successful!" msgstr "Schritt erfolgreich!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Schrittweite" @@ -10575,7 +10580,7 @@ msgstr "" "Dieser Action-Replay-Simulator unterstützt keine Codes, die Action Replay " "selbst verändern können." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10723,7 +10728,7 @@ msgstr "Dieser Titel wird ein ungültiges IOS verwenden." msgid "This title is set to use an invalid common key." msgstr "Dieser Titel wird einen ungültigen gemeinsamen Schlüssel verwenden." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10735,7 +10740,7 @@ msgstr "" "\n" "DSPHLE: Unbekannter ucode (CRC = {0:08x}) - erzwinge AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10831,15 +10836,15 @@ msgstr "Zu:" msgid "Toggle &Fullscreen" msgstr "&Vollbildmodus umschalten" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "3D-Anaglyph umschalten" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "3D-Nebeneinander umschalten" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "3D-Übereinander umschalten" @@ -10847,28 +10852,28 @@ msgstr "3D-Übereinander umschalten" msgid "Toggle All Log Types" msgstr "Alle Log-Typen umschalten" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Seitenverhältnis umschalten" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Haltepunkt umschalten" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Zuschneiden umschalten" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Benutzerdefinierte Texturen umschalten" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB-Kopien umschalten" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Nebel umschalten" @@ -10880,27 +10885,27 @@ msgstr "Vollbildmodus umschalten" msgid "Toggle Pause" msgstr "Pause umschalten" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "SD-Karte umschalten" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "EFB-Zugang überspringen umschalten" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Texturdump umschalten" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "USB-Tastatur umschalten" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "XFB-Kopien umschalten" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Sofortigen XFB-Modus umschalten" @@ -11113,11 +11118,11 @@ msgstr "Ungebunden" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Unkomprimierte GC/Wii-Abbilder (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Spielstand Laden rückgängig machen" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Spielstand Speichern rückgängig machen" @@ -11223,7 +11228,7 @@ msgstr "" msgid "Unlimited" msgstr "Unbegrenzt" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -11566,22 +11571,22 @@ msgstr "Virtuelle Kerben" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Lautstärke" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Lautstärke reduzieren" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Lautloser Modus ein/ausschalten" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Lautstärke erhöhen" @@ -11858,7 +11863,7 @@ msgstr "Freigegebene USB-Durchleitungsgeräte" msgid "Widescreen Hack" msgstr "Breitbild-Hack" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index 5fb55e2213..2e14f499a5 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -709,12 +709,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -747,19 +747,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -779,7 +779,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1031,7 +1031,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1082,11 +1082,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1722,7 +1722,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1736,7 +1736,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1814,7 +1814,7 @@ msgstr "" msgid "Buttons" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1961,6 +1961,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2242,7 +2246,7 @@ msgstr "" msgid "Connect" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2254,19 +2258,19 @@ msgstr "" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2302,7 +2306,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2315,19 +2319,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2802,20 +2806,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2914,7 +2918,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3011,7 +3015,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3512,7 +3516,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4012,7 +4016,7 @@ msgstr "" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "" @@ -4730,20 +4734,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4800,11 +4804,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4862,7 +4866,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4874,11 +4878,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5126,7 +5130,7 @@ msgstr "" msgid "Gecko Codes" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5194,7 +5198,7 @@ msgstr "" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5371,7 +5375,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5599,20 +5603,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5758,7 +5762,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6151,7 +6155,7 @@ msgstr "" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6160,92 +6164,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6269,7 +6273,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6590,7 +6594,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6744,8 +6748,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6753,8 +6757,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7100,7 +7104,7 @@ msgstr "" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7296,7 +7300,7 @@ msgstr "" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "" @@ -7380,7 +7384,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7398,8 +7402,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7407,8 +7412,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7452,7 +7457,7 @@ msgstr "" msgid "Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7578,7 +7583,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7764,7 +7769,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8039,7 +8044,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8051,49 +8056,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "" @@ -8156,7 +8161,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8298,7 +8303,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8306,43 +8311,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8538,7 +8543,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8731,7 +8736,7 @@ msgid "Show PAL" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8911,7 +8916,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9086,7 +9091,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9127,19 +9132,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9159,7 +9164,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9889,7 +9894,7 @@ msgid "" "Replay itself." msgstr "" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10006,7 +10011,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10014,7 +10019,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10095,15 +10100,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10111,28 +10116,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10144,27 +10149,27 @@ msgstr "" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10359,11 +10364,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10460,7 +10465,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10789,22 +10794,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11007,7 +11012,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/el.po b/Languages/po/el.po index b67f34b3f0..a477c337bf 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -715,12 +715,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -753,19 +753,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D Βάθος" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -785,7 +785,7 @@ msgstr "4 Mbit (59 blocks)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1040,7 +1040,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1091,11 +1091,11 @@ msgstr "Προσθήκη Νέας USB Συσκευής" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1731,7 +1731,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1745,7 +1745,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1823,7 +1823,7 @@ msgstr "Κουμπί" msgid "Buttons" msgstr "Κουμπιά" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1970,6 +1970,10 @@ msgstr "Μέγεθος Κάρτας" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2251,7 +2255,7 @@ msgstr "Επιβεβαίωση" msgid "Connect" msgstr "Σύνδεση" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Σύνδεση Σανίδας Ισορροπίας" @@ -2263,19 +2267,19 @@ msgstr "Σύνδεση Πληκτρολογίου USB" msgid "Connect Wii Remote %1" msgstr "Σύνδεση Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Σύνδεση Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Σύνδεση Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Σύνδεση Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Σύνδεση Wii Remote 4" @@ -2311,7 +2315,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Συνεχής Ανίχνευση" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2324,19 +2328,19 @@ msgstr "Stick Ελέγχου " msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2813,20 +2817,20 @@ msgstr "Ποιότητα Αποκωδικοποίησης:" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Μείωση Βάθους" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Μείωση Ταχύτητας Εξομοίωσης" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Μείωση IR" @@ -2925,7 +2929,7 @@ msgstr "Περιγραφή" msgid "Description:" msgstr "Περιγραφή:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3023,7 +3027,7 @@ msgstr "Απενεργοποίηση Φίλτρου Αντιγραφής " msgid "Disable EFB VRAM Copies" msgstr "Απενεργοποίηση EFB VRAM Αντίγραφα" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Απενεργοποίηση Ορίου Ταχύτητας Εξομοίωσης" @@ -3529,7 +3533,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Ταχύτητα Εξομοίωσης" @@ -4038,7 +4042,7 @@ msgstr "Εξαγωγή Όλων Των Αποθηκεύσεων Wii" msgid "Export Failed" msgstr "Η Εξαγωγή Απέτυχε" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Εξαγωγή Εγγραφής" @@ -4756,20 +4760,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Προώθηση ανά Καρέ" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4826,11 +4830,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Ελεύθερη Ματιά" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4888,7 +4892,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4900,11 +4904,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5152,7 +5156,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Κωδικοί Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5220,7 +5224,7 @@ msgstr "Γραφικά" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5397,7 +5401,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5625,20 +5629,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Αύξηση Βάθους" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Αύξηση IR" @@ -5784,7 +5788,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία lzo_init()" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6180,7 +6184,7 @@ msgstr "Φόρτωση Τροποποιημένων Υφών" msgid "Load GameCube Main Menu" msgstr "Φόρτωση Κυρίως Μενού GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6189,92 +6193,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Φόρτωση Σημείου Αποθήκευσης" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Φόρτωση Τελευταίας Αποθήκευσης 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Φόρτωση Σημείου Αποθήκευσης 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Φόρτωση Σημείου Αποθήκευσης 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Φόρτωση Σημείου Αποθήκευσης 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Φόρτωση Σημείου Αποθήκευσης 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Φόρτωση Σημείου Αποθήκευσης 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Φόρτωση Σημείου Αποθήκευσης 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Φόρτωση Σημείου Αποθήκευσης 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Φόρτωση Σημείου Αποθήκευσης 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Φόρτωση Σημείου Αποθήκευσης 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Φόρτωση Σημείου Αποθήκευσης 9" @@ -6298,7 +6302,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6621,7 +6625,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Ταινία" @@ -6777,8 +6781,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6786,8 +6790,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7133,7 +7137,7 @@ msgstr "Άλλα" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7329,7 +7333,7 @@ msgstr "Αναπαραγωγή" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Αναπαραγωγή Εγγραφής" @@ -7413,7 +7417,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7431,8 +7435,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7440,8 +7445,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7485,7 +7490,7 @@ msgstr "" msgid "Profile" msgstr "Προφίλ" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7611,7 +7616,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7797,7 +7802,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8072,7 +8077,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Αποθήκευση Παλαιότερου Σημείου" @@ -8084,49 +8089,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Αποθήκευση Σημείου" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Αποθήκευση Σημείου Αποθήκευσης 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Αποθήκευση Σημείου Αποθήκευσης 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Αποθήκευση Σημείου Αποθήκευσης 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Αποθήκευση Σημείου Αποθήκευσης 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Αποθήκευση Σημείου Αποθήκευσης 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Αποθήκευση Σημείου Αποθήκευσης 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Αποθήκευση Σημείου Αποθήκευσης 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Αποθήκευση Σημείου Αποθήκευσης 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Αποθήκευση Σημείου Αποθήκευσης 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Αποθήκευση Σημείου Αποθήκευσης 9" @@ -8189,7 +8194,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8331,7 +8336,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Επιλογή Θέσης %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8339,43 +8344,43 @@ msgstr "" msgid "Select State Slot" msgstr "Επιλογή Θέσης Αποθήκευσης" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Επιλέξτε Θέση 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Επιλέξτε Θέση 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Επιλέξτε Θέση 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Επιλέξτε Θέση 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Επιλέξτε Θέση 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Επιλέξτε Θέση 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Επιλέξτε Θέση 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Επιλέξτε Θέση 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Επιλέξτε Θέση 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Επιλέξτε Θέση 9" @@ -8571,7 +8576,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8767,7 +8772,7 @@ msgid "Show PAL" msgstr "Εμφάνιση PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8947,7 +8952,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Παράλειψη" @@ -9122,7 +9127,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "Εκκίνηση Ε&γγραφής Χειρισμών" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9163,19 +9168,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9195,7 +9200,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9931,7 +9936,7 @@ msgstr "" "Αυτός ο προσομοιωτής action replay δεν υποστηρίζει κωδικούς που αλλάζουν το " "ίδιο το Action Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10050,7 +10055,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10058,7 +10063,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10139,15 +10144,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "Εναλλαγή &Πλήρους Οθόνης" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10155,28 +10160,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Εναλλαγή Όλων Τύπων Καταγραφής " -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Εναλλαγή Αναλογίας Οθόνης" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Εναλλαγή EFB Αντίγραφα" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Εναλλαγή Ομίχλης" @@ -10188,27 +10193,27 @@ msgstr "Εναλλαγή Πλήρους Οθόνης" msgid "Toggle Pause" msgstr "Εναλλαγή Παύσης" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10403,11 +10408,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Αναίρεση Φόρτωσης Σημείου Αποθ. " -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Αναίρεση Αποθήκευσης Σημείου Αποθ. " @@ -10504,7 +10509,7 @@ msgstr "" msgid "Unlimited" msgstr "Απεριόριστη" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10835,22 +10840,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Ένταση" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Μείωση Έντασης" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Αύξηση Έντασης" @@ -11053,7 +11058,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Hack Ευρείας Οθόνης" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/en.po b/Languages/po/en.po index 9d537c2c62..43c5cb135a 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -708,12 +708,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -746,19 +746,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -778,7 +778,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1030,7 +1030,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1081,11 +1081,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1721,7 +1721,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1735,7 +1735,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1813,7 +1813,7 @@ msgstr "" msgid "Buttons" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1960,6 +1960,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2241,7 +2245,7 @@ msgstr "" msgid "Connect" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2253,19 +2257,19 @@ msgstr "" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2301,7 +2305,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2314,19 +2318,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2801,20 +2805,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2913,7 +2917,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3010,7 +3014,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3511,7 +3515,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4011,7 +4015,7 @@ msgstr "" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "" @@ -4729,20 +4733,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4799,11 +4803,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4861,7 +4865,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4873,11 +4877,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5125,7 +5129,7 @@ msgstr "" msgid "Gecko Codes" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5193,7 +5197,7 @@ msgstr "" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5370,7 +5374,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5598,20 +5602,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5757,7 +5761,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6150,7 +6154,7 @@ msgstr "" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6159,92 +6163,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6268,7 +6272,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6589,7 +6593,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6743,8 +6747,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6752,8 +6756,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7099,7 +7103,7 @@ msgstr "" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7295,7 +7299,7 @@ msgstr "" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "" @@ -7379,7 +7383,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7397,8 +7401,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7406,8 +7411,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7451,7 +7456,7 @@ msgstr "" msgid "Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7577,7 +7582,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7763,7 +7768,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8038,7 +8043,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8050,49 +8055,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "" @@ -8155,7 +8160,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8297,7 +8302,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8305,43 +8310,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8537,7 +8542,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8730,7 +8735,7 @@ msgid "Show PAL" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8910,7 +8915,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9085,7 +9090,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9126,19 +9131,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9158,7 +9163,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9888,7 +9893,7 @@ msgid "" "Replay itself." msgstr "" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10005,7 +10010,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10013,7 +10018,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10094,15 +10099,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10110,28 +10115,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10143,27 +10148,27 @@ msgstr "" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10358,11 +10363,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10459,7 +10464,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10788,22 +10793,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11006,7 +11011,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/es.po b/Languages/po/es.po index ac1564cd43..a4ebd7d5b0 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,9 +31,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Víctor González, 2021-2022\n" +"Last-Translator: Petiso_Carambanal , 2013-2017,2020-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" "language/es/)\n" "Language: es\n" @@ -64,9 +64,8 @@ msgid "" msgstr "" "\n" "\n" -"Dolphin no puede verificar que los datos de este juego no hayan sido " -"manipulados porque no está hecho para consolas Wii de cara al público. Es " -"para consolas de desarrollo." +"Dolphin no puede verificar que este paquete («título») no haya sido " +"manipulados porque no está hecho para consolas Wii para consumidores." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -81,12 +80,12 @@ msgid "" msgstr "" "\n" "\n" -"ADVERTENCIA: Arreglar la NAND supone borrar los títulos con datos " -"incompletos, incluyendo todos los datos de partida guardados. Los títulos " -"que se borrarán son los siguientes:\n" +"ADVERTENCIA: arreglar la NAND supondrá borrar aquellos paquetes («títulos») " +"con datos incompletos, lo que incluye a todos sus datos guardados. Los " +"títulos que se borrarán son los siguientes:\n" "\n" "%1\n" -"Lanzar o ejecutar estos títulos también puede ayudar a arreglarlos." +"Ejecutar estos títulos también podría ayudar a arreglarlos." #: Source/Core/DolphinQt/GameList/GameListModel.cpp:102 msgid " (Disc %1)" @@ -760,12 +759,12 @@ msgstr "16:9" msgid "16x" msgstr "x16" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "x1" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "x2" @@ -798,19 +797,19 @@ msgid "32-bit Unsigned Integer" msgstr "Entero sin signo de 32 bits" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Profundidad 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -830,7 +829,7 @@ msgstr "4 Mbit (59 bloques)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "x4" @@ -940,12 +939,13 @@ msgid "" "\n" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -"Ya hay una versión distinta del mismo título en la NAND.\n" +"Ya hay una versión distinta del mismo paquete («título») en la NAND.\n" "\n" "Versión instalada: {0}\n" "Versión del WAD: {1}\n" "\n" -"Instalar este WAD lo reemplazará de forma irreversible. ¿Quieres continuar?" +"Si instalas este WAD, reemplazarás el título de forma irreversible. ¿Seguro " +"que quieres continuar?" #: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 msgid "A disc is already about to be inserted." @@ -1035,7 +1035,7 @@ msgstr "Acelerómetro" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "Influencia del acelerómetro" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1126,7 +1126,7 @@ msgstr "Action Replay: Código Normal 0: Subtipo incorrecto {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Código Normal {0}: Subtipo incorrecto {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Activar el chat del juego en red" @@ -1177,11 +1177,11 @@ msgstr "Añadir dispositivo USB" msgid "Add Shortcut to Desktop" msgstr "Añadir acceso directo al escritorio" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Añadir punto de interrupción" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Añadir punto de interrupción en memoria" @@ -1294,7 +1294,7 @@ msgstr "" "refresco variable funcionen a una velocidad de fotogramas más baja, " "ahorrando recursos del procesador.\n" "\n" -"ADVERTENCIA: Cambiar el valor predeterminado (100%) puede causar fallos y " +"ADVERTENCIA: Cambiar el valor predeterminado (100 %) puede causar fallos y " "dar problemas durante el juego. Hazlo solo por tu propia cuenta y riesgo. No " "informes de errores que surjan cuando juegues a una velocidad de reloj " "distinta a la oficial." @@ -1616,7 +1616,7 @@ msgstr "¿Autodetectar módulos RSO?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "Sincronizar automáticamente con carpeta" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1858,7 +1858,7 @@ msgstr "Ramas" msgid "Break" msgstr "Pausa" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Punto de interrupción" @@ -1873,7 +1873,7 @@ msgid "Breakpoints" msgstr "Puntos de interrupción" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1890,7 +1890,7 @@ msgstr "Adaptador de banda ancha (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "Configuración de DNS del adaptador de banda ancha" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1953,7 +1953,7 @@ msgstr "Botón" msgid "Buttons" msgstr "Botones" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "Por:" @@ -2114,6 +2114,10 @@ msgstr "Tamaño de la tarjeta" msgid "Center" msgstr "Centrar" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centrar y calibrar" @@ -2407,7 +2411,7 @@ msgstr "Confirmar" msgid "Connect" msgstr "Conectar" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Conectar la Balance Board" @@ -2419,19 +2423,19 @@ msgstr "Conectar teclado USB" msgid "Connect Wii Remote %1" msgstr "Conectar mando de Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Conectar mando de Wii 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Conectar mando de Wii 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Conectar mando de Wii 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Conectar mando de Wii 4" @@ -2468,7 +2472,7 @@ msgstr "El contenido {0:08x} está corrupto." msgid "Continuous Scanning" msgstr "Escaneo continuo" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Controlar el modo golf del juego en red" @@ -2481,19 +2485,19 @@ msgstr "Stick de control" msgid "Controller Profile" msgstr "Perfil del mando" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Perfil del mando 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Perfil del mando 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Perfil del mando 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Perfil del mando 4" @@ -2578,7 +2582,7 @@ msgstr "Convergencia:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "Fallo en la conversión." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2588,7 +2592,7 @@ msgstr "Convertir" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "Convertir archivo a carpeta" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2598,7 +2602,7 @@ msgstr "Convertir archivo..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "Convertir carpeta a archivo" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -2651,7 +2655,7 @@ msgstr "Copiar dirección" #: Source/Core/DolphinQt/GCMemcardManager.cpp:640 msgid "Copy Failed" -msgstr "Se produjo un fallo al copiar" +msgstr "Fallo al copiar" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:826 msgid "Copy Hex" @@ -2772,7 +2776,8 @@ msgid "" "Could not launch title {0:016x} because it is missing from the NAND.\n" "The emulated software will likely hang now." msgstr "" -"No se ha podido cargar el título {0:016x} al no estar en la NAND.\n" +"No se ha podido cargar el paquete («título») {0:016x} porque no se encuentra " +"en la NAND.\n" "Es probable que el programa emulado se cuelgue ahora." #: Source/Core/Core/Boot/Boot.cpp:260 @@ -2966,8 +2971,8 @@ msgid "" msgstr "" "El protocolo DSU permite el uso de datos de entrada y movimiento desde " "fuentes compatibles, como mandos de PlayStation, Nintendo Switch y Steam." -"

Para instrucciones de configuración, consulte esta página." +"

Si necesitas ayuda, consulta esta página." #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:34 msgid "Dance Mat" @@ -3040,20 +3045,20 @@ msgstr "Calidad de decodificación:" msgid "Decrease" msgstr "Disminuir" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Reducir convergencia" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Reducir profundidad" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Reducir velocidad de emulación" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Reducir IR" @@ -3158,7 +3163,7 @@ msgstr "Descripción" msgid "Description:" msgstr "Descripción:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "Descripción:" @@ -3261,7 +3266,7 @@ msgstr "Desactivar filtrado de copia" msgid "Disable EFB VRAM Copies" msgstr "Desactivar copias del EFB a la VRAM" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Desactivar límite de velocidad de emulación" @@ -3473,8 +3478,8 @@ msgid "" "Dolphin will use this for titles whose region cannot be determined " "automatically." msgstr "" -"Dolphin usará este ajuste para aquellos títulos en los que no pueda " -"determinar la región automáticamente." +"Dolphin usará este ajuste para aquellos paquetes («títulos») en los que no " +"pueda determinar la región automáticamente." #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:73 msgid "Dolphin's cheat system is currently disabled." @@ -3598,7 +3603,7 @@ msgstr "Volcar fotogramas" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "Volcar tráfico del adaptador de banda ancha de GameCube" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3827,7 +3832,7 @@ msgstr "" "Actual | MEM1 {0:08x} ({1} MiB) MEM2 {2:08x} ({3} MiB)\n" "DFF | MEM1 {4:08x} ({5} MiB) MEM2 {6:08x} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Velocidad de emulación" @@ -4107,7 +4112,7 @@ msgstr "Introduce la contraseña" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "Introduce el servidor de DNS que quieres utilizar:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4238,31 +4243,31 @@ msgstr "" #: Source/Core/Core/HW/GBACore.cpp:192 msgid "Error: GBA{0} failed to create core" -msgstr "Error: GBA{0} no se ha podido crear el núcleo" +msgstr "Error: GBA{0} no ha podido crear el núcleo" #: Source/Core/Core/HW/GBACore.cpp:347 msgid "Error: GBA{0} failed to load the BIOS in {1}" -msgstr "Error: GBA{0} no se ha podido cargar la BIOS en {1}" +msgstr "Error: GBA{0} no ha podido cargar la BIOS en {1}" #: Source/Core/Core/HW/GBACore.cpp:212 msgid "Error: GBA{0} failed to load the ROM in {1}" -msgstr "Error: GBA{0} no se ha podido cargar la ROM en {1}" +msgstr "Error: GBA{0} no ha podido cargar la ROM en {1}" #: Source/Core/Core/HW/GBACore.cpp:366 msgid "Error: GBA{0} failed to load the save in {1}" -msgstr "Error: GBA{0} no se ha podido cargar el guardado en {1}" +msgstr "Error: GBA{0} no ha podido cargar el guardado en {1}" #: Source/Core/Core/HW/GBACore.cpp:341 msgid "Error: GBA{0} failed to open the BIOS in {1}" -msgstr "Error: GBA{0} no se ha podido abrir la BIOS en {1}" +msgstr "Error: GBA{0} no ha podido abrir la BIOS en {1}" #: Source/Core/Core/HW/GBACore.cpp:182 msgid "Error: GBA{0} failed to open the ROM in {1}" -msgstr "Error: GBA{0} falló al abrir la ROM en {1}" +msgstr "Error: GBA{0} no ha podido abrir la ROM en {1}" #: Source/Core/Core/HW/GBACore.cpp:360 msgid "Error: GBA{0} failed to open the save in {1}" -msgstr "Error: GBA{0} falló al abrir el guardado en {1}" +msgstr "Error: GBA{0} no ha podido abrir el guardado en {1}" #: Source/Core/Core/HW/SI/SI_Device.cpp:198 msgid "Error: This build does not support emulated GBA controllers" @@ -4406,9 +4411,9 @@ msgstr "Exportar todas las partidas guardadas de Wii" #: Source/Core/DolphinQt/GCMemcardManager.cpp:492 #: Source/Core/DolphinQt/GCMemcardManager.cpp:499 msgid "Export Failed" -msgstr "Hubo un fallo al exportar" +msgstr "Fallo al exportar" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportar grabación" @@ -4519,7 +4524,7 @@ msgid "" "Failed opening memory card:\n" "%1" msgstr "" -"Error al abrir la tarjeta de memoria:\n" +"Fallo al abrir la tarjeta de memoria:\n" "%1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 @@ -4606,7 +4611,7 @@ msgstr "No se ha podido exportar los siguientes archivos de guardado:" #: Source/Core/DolphinQt/MenuBar.cpp:1192 msgid "Failed to extract certificates from NAND" -msgstr "No se ha podido extraer los certificados de la NAND." +msgstr "No se han podido extraer los certificados de la NAND." #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:383 msgid "Failed to extract file." @@ -4614,7 +4619,7 @@ msgstr "No se ha podido extraer el archivo." #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:260 msgid "Failed to extract system data." -msgstr "No se ha podido extraer los datos del sistema." +msgstr "No se han podido extraer los datos del sistema." #: Source/Core/Core/HW/GCMemcard/GCMemcardDirectory.cpp:629 msgid "" @@ -4686,14 +4691,14 @@ msgstr "No se ha podido instalar el paquete: %1" #: Source/Core/DolphinQt/GameList/GameList.cpp:616 #: Source/Core/DolphinQt/MenuBar.cpp:1057 msgid "Failed to install this title to the NAND." -msgstr "No se ha podido instalar el juego en la NAND." +msgstr "No se ha podido instalar el paquete («título») en la NAND." #: Source/Core/DolphinQt/MainWindow.cpp:1506 msgid "" "Failed to listen on port %1. Is another instance of the NetPlay server " "running?" msgstr "" -"No se ha podido recibir conexiones en el puerto %1. ¿Hay otra instancia del " +"No se han podido recibir conexiones en el puerto %1. ¿Hay otra instancia del " "servidor de juego en red funcionando?" #: Source/Core/DolphinQt/MenuBar.cpp:1297 @@ -4828,7 +4833,7 @@ msgstr "" #: Source/Core/DolphinQt/GameList/GameList.cpp:644 msgid "Failed to remove this title from the NAND." -msgstr "No se ha podido desinstalar el juego de la NAND." +msgstr "No se ha podido desinstalar el paquete («título») de la NAND." #: Source/Core/Core/NetPlayClient.cpp:1068 msgid "Failed to reset NetPlay GCI folder. Verify your write permissions." @@ -4878,7 +4883,7 @@ msgstr "No se ha podido escribir BT.DINF a SYSCONF" #: Source/Core/Core/NetPlayClient.cpp:1130 msgid "Failed to write Mii data." -msgstr "No se ha podido escribir los datos de Miis" +msgstr "No se han podido escribir los datos de Miis." #: Source/Core/Core/NetPlayClient.cpp:1206 msgid "Failed to write Wii save." @@ -4909,7 +4914,7 @@ msgid "" "Check that you have enough space available on the target drive." msgstr "" "No se ha podido escribir el archivo de salida «{0}».\n" -"Comprueba que tienes espacio suficiente disponible en la unidad de destino." +"Comprueba que tienes espacio disponible en la unidad de destino." #: Source/Core/DolphinQt/GameList/GameList.cpp:614 #: Source/Core/DolphinQt/GameList/GameList.cpp:642 @@ -5078,7 +5083,7 @@ msgstr "Reparar sumas de verificación" #: Source/Core/DolphinQt/GCMemcardManager.cpp:690 msgid "Fix Checksums Failed" -msgstr "Error al reparar las sumas de verificación" +msgstr "Fallo al reparar las sumas de verificación" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:211 msgid "Fixed Alignment" @@ -5206,20 +5211,20 @@ msgstr "Se ha(n) encontrado %n dirección(ones)." msgid "Frame %1" msgstr "Fotograma %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avanzar &fotogramas" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Avanzar fotogramas más lento" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Avanzar fotogramas más rápido" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Avanzar fotogramas a la veloc. original" @@ -5272,7 +5277,7 @@ msgid "" "this page." msgstr "" "La cámara libre permite manipular la cámara del juego. En el listado " -"encontrarás varios tipos de cámara.

Para más información,
Si necesitas ayuda,
consulta esta " "página." @@ -5281,11 +5286,11 @@ msgstr "" msgid "FreeLook" msgstr "Cámara libre" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Cámara libre" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Interruptor de cámara libre" @@ -5343,7 +5348,7 @@ msgstr "GBA (Integrado)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "Núcleo de GBA" @@ -5355,11 +5360,11 @@ msgstr "Puerto %1 GBA" msgid "GBA Settings" msgstr "Ajustes de GBA" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "Volumen de GBA" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "Tamaño de la ventana de GBA" @@ -5644,7 +5649,7 @@ msgstr "Tamaño del borde" msgid "Gecko Codes" msgstr "Códigos Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5712,7 +5717,7 @@ msgstr "Gráficos" msgid "Graphics Mods" msgstr "Modificaciones de gráficos" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Ajustes gráficos" @@ -5899,7 +5904,7 @@ msgstr "Nombre del anfitrión" msgid "Hotkey Settings" msgstr "Ajustes de atajos" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6143,7 +6148,7 @@ msgstr "Importar copia BootMii NAND de respaldo..." #: Source/Core/DolphinQt/GCMemcardManager.cpp:572 #: Source/Core/DolphinQt/GCMemcardManager.cpp:614 msgid "Import Failed" -msgstr "Se produjo un fallo al importar" +msgstr "Fallo al importar" #: Source/Core/DolphinQt/GCMemcardManager.cpp:586 msgid "Import Save File(s)" @@ -6196,20 +6201,20 @@ msgstr "" msgid "Increase" msgstr "Aumentar" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Aumentar convergencia" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Aumentar profundidad" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Subir velocidad de emulación" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Aumentar IR" @@ -6235,6 +6240,10 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"Indica la influencia de los datos del acelerómetro en el cabeceo y el " +"balanceo. Unos valores altos reducirán las derivas («drift» o «drifting») a " +"costa de generar ruido en la señal. Se recomienda usar un valor entre el 1 % " +"y el 3 %." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6338,26 +6347,26 @@ msgstr "Interfaz" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 #: Source/Core/Core/State.cpp:384 msgid "Internal LZO Error - compression failed" -msgstr "Error Interno de LZO - Fallo al comprimir" +msgstr "Error Interno de LZO - fallo al comprimir" #: Source/Core/Core/NetPlayCommon.cpp:208 #: Source/Core/Core/NetPlayCommon.cpp:291 msgid "Internal LZO Error - decompression failed" -msgstr "Error interno de LZO - fallo de descompresión" +msgstr "Error interno de LZO - fallo al descomprimir" #: Source/Core/Core/State.cpp:530 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -"Error interno de LZO - fallo al descomprimir ({0}) ({1}, {2}) \n" -"Intenta cargar el estado de nuevo" +"Error interno de LZO - fallo al descomprimir ({0}) ({1}, {2})\n" +"Prueba a volver a cargar el estado" #: Source/Core/Core/State.cpp:635 msgid "Internal LZO Error - lzo_init() failed" -msgstr "Error Interno de LZO - lzo_init() falló" +msgstr "Error interno de LZO - fallo en lzo_init()" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6456,7 +6465,7 @@ msgstr "" #: Source/Core/DolphinQt/Main.cpp:207 msgid "Invalid title ID." -msgstr "ID. de juego incorrecto." +msgstr "ID de paquete («título») incorrecto." #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 msgid "Invalid watch address: %1" @@ -6550,9 +6559,9 @@ msgid "" "JIT failed to find code space after a cache clear. This should never happen. " "Please report this incident on the bug tracker. Dolphin will now exit." msgstr "" -"JIT no ha podido encontrar el espacio de código después de borrar la memoria " -"caché. Esto nunca debería ocurrir. Por favor reporta este fallo en el bug " -"tracker. Dolphin se cerrará ahora." +"El JIT no ha podido encontrar el espacio de código después de borrar la " +"memoria caché. Esto no debería haber pasado. Te rogamos que informes del " +"fallo en el gestor de incidencias. Dolphin se cerrará." #: Source/Core/DiscIO/Enums.cpp:27 Source/Core/DolphinQt/MenuBar.cpp:275 msgid "Japan" @@ -6763,7 +6772,7 @@ msgstr "Cargar texturas personalizadas" msgid "Load GameCube Main Menu" msgstr "Cargar menú principal de GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Cargar último estado" @@ -6772,92 +6781,92 @@ msgstr "Cargar último estado" msgid "Load Path:" msgstr "Ruta de carga:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Cargar ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Cargar estado" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Cargar último estado 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Cargar último estado 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Cargar último estado 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Cargar último estado 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Cargar último estado 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Cargar último estado 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Cargar último estado 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Cargar último estado 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Cargar último estado 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Cargar último estado 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Cargar estado 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Cargar estado 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Cargar estado 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Cargar estado 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Cargar estado 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Cargar estado 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Cargar estado 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Cargar estado 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Cargar estado 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Cargar estado 9" @@ -6881,7 +6890,7 @@ msgstr "Cargar partida de Wii" msgid "Load Wii System Menu %1" msgstr "Cargar menú del sistema Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Cargar desde la ranura seleccionada" @@ -7237,7 +7246,7 @@ msgstr "" msgid "Move" msgstr "Mover" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Grabación" @@ -7253,7 +7262,7 @@ msgstr "" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "Multiplicador" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7393,8 +7402,8 @@ msgstr "Nueva instrucción:" msgid "New tag" msgstr "Nueva etiqueta" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Siguiente perfil de juego" @@ -7402,8 +7411,8 @@ msgstr "Siguiente perfil de juego" msgid "Next Match" msgstr "Siguiente coincidencia" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Siguiente perfil" @@ -7498,10 +7507,10 @@ msgid "" "but since Wii titles contain a lot of verification data, it does mean that " "there most likely are no problems that will affect emulation." msgstr "" -"No se encontraron problemas. Esto no garantiza que se trate de un buen " -"volcado, pero como los títulos de Wii contienen muchos datos de " -"verificación, significa que lo más probable es que no haya problemas que " -"afecten la emulación." +"No se encontraron problemas. Esto no garantiza que el volcado sea correcto, " +"pero como los paquetes («títulos») de Wii contienen muchos datos de " +"verificación, lo más probable es que no haya problemas que afecten la " +"emulación." #: Source/Core/InputCommon/InputConfig.cpp:83 msgid "No profiles found for game setting '{0}'" @@ -7765,7 +7774,7 @@ msgstr "Otros" msgid "Other Partition (%1)" msgstr "Otra partición (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Otros atajos de guardado" @@ -7961,7 +7970,7 @@ msgstr "Jugar" msgid "Play / Record" msgstr "Reproducir/grabar" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Reproducir grabación" @@ -8050,7 +8059,7 @@ msgstr "" msgid "Presets" msgstr "Preajustes" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Pulsa el botón de sincronización" @@ -8073,8 +8082,9 @@ msgstr "" "rotos.

No se recomienda, usar solo si el resto de " "opciones dan malos resultados." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Perfil anterior de juego" @@ -8082,8 +8092,8 @@ msgstr "Perfil anterior de juego" msgid "Previous Match" msgstr "Coincidencia anterior" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Perfil anterior" @@ -8133,7 +8143,7 @@ msgstr "" msgid "Profile" msgstr "Perfil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Contador del programa (PC)" @@ -8260,7 +8270,7 @@ msgstr "Solo lectura" msgid "Read or Write" msgstr "Leer o escribir" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Modo de solo lectura" @@ -8402,7 +8412,7 @@ msgstr "Eliminar" #: Source/Core/DolphinQt/GCMemcardManager.cpp:668 #: Source/Core/DolphinQt/GCMemcardManager.cpp:675 msgid "Remove Failed" -msgstr "Eliminación fallida" +msgstr "Fallo en la eliminación" #: Source/Core/DolphinQt/ConvertDialog.cpp:73 msgid "Remove Junk Data (Irreversible):" @@ -8462,7 +8472,7 @@ msgid "Request to Join Your Party" msgstr "Solicitud para unirse a tu partida." #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8655,7 +8665,7 @@ msgstr "Ruta de la tarjeta SD:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "Ajustes de la tarjeta SD" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8663,7 +8673,7 @@ msgstr "Raíz de la SD:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "Carpeta de sincronización de la SD:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8743,7 +8753,7 @@ msgstr "Archivos de guardado de juegos (*.sav);; Todos los archivos (*)" msgid "Save Import" msgstr "Importar guardado" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Guardar el estado más antiguo" @@ -8755,49 +8765,49 @@ msgstr "Guardar preajuste" msgid "Save Recording File As" msgstr "Guardar archivo de grabación como" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Guardar estado" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Ranura de guardado 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Ranura de guardado 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Ranura de guardado 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Ranura de guardado 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Ranura de guardado 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Ranura de guardado 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Ranura de guardado 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Ranura de guardado 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Ranura de guardado 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Ranura de guardado 9" @@ -8847,10 +8857,10 @@ msgid "" "current data before overwriting.\n" "Overwrite now?" msgstr "" -"Guardar datos para este título ya existe en el NAND. Considere la " -"posibilidad de realizar una copia de seguridad de los datos actuales antes " -"de sobrescribirlos.\n" -"¿Sobreescribir ahora?" +"Ya existen datos guardados para este paquete («título») en la NAND. " +"Recomendamos guardar una copia de seguridad de los datos actuales antes de " +"sobrescribirlos.\n" +"¿Deseas sobrescribir los datos?" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:168 msgid "Save in Same Directory as the ROM" @@ -8864,7 +8874,7 @@ msgstr "Guardar archivo de mapa" msgid "Save signature file" msgstr "Guardar archivo de firmas" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Guardar en la ranura seleccionada" @@ -9012,7 +9022,7 @@ msgstr "Selecciona un archivo XML de Riivolution" msgid "Select Slot %1 - %2" msgstr "Ranura de guardado %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Cargar ranura de guardado" @@ -9020,43 +9030,43 @@ msgstr "Cargar ranura de guardado" msgid "Select State Slot" msgstr "Seleccionar ranura de guardado" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Seleccionar ranura de guardado 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Seleccionar ranura de guardado 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Seleccionar ranura de guardado 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Seleccionar ranura de guardado 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Seleccionar ranura de guardado 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Seleccionar ranura de guardado 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Seleccionar ranura de guardado 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Seleccionar ranura de guardado 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Seleccionar ranura de guardado 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Seleccionar ranura de guardado 9" @@ -9084,7 +9094,7 @@ msgstr "Elige un archivo" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "Selecciona una carpeta a sincronizar con la imagen de la tarjeta SD" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9104,7 +9114,7 @@ msgstr "Elige un juego" #: Source/Core/DolphinQt/MenuBar.cpp:1044 msgid "Select a title to install to NAND" -msgstr "Elige un juego para instalar en la NAND" +msgstr "Elige un paquete («título») a instalar en la NAND" #: Source/Core/DolphinQt/GBAWidget.cpp:188 msgid "Select e-Reader Cards" @@ -9292,7 +9302,7 @@ msgid "Set &blr" msgstr "Poner &blr" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Establecer PC" @@ -9495,7 +9505,7 @@ msgid "Show PAL" msgstr "Región PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Mostrar PC" @@ -9692,7 +9702,7 @@ msgstr "" "Tamaño del búfer de expansión de audio en milisegundos. Un valor muy bajo " "puede provocar crepitación de audio." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Omitir" @@ -9888,7 +9898,7 @@ msgstr "Iniciar una nueva búsqueda de trucos" msgid "Start Re&cording Input" msgstr "&Grabar pulsaciones" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9929,19 +9939,19 @@ msgstr "Avanzar" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Avanzar una" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Saltar una" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Salir de" @@ -9961,7 +9971,7 @@ msgstr "Saltando instrucciones..." msgid "Step successful!" msgstr "Se han saltado las instrucciones." -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Avanzar" @@ -10129,11 +10139,11 @@ msgstr "Archivo de guardado importado correctamente." #: Source/Core/DolphinQt/GameList/GameList.cpp:615 #: Source/Core/DolphinQt/MenuBar.cpp:1053 msgid "Successfully installed this title to the NAND." -msgstr "El juego se ha instalado correctamente en la NAND." +msgstr "El juego ha sido instalado correctamente en la NAND." #: Source/Core/DolphinQt/GameList/GameList.cpp:643 msgid "Successfully removed this title from the NAND." -msgstr "Se ha desinstalado el juego de la NAND. " +msgstr "El juego ha sido desinstalado correctamente de la NAND. " #: Source/Core/DolphinQt/AboutDialog.cpp:69 msgid "Support" @@ -10257,6 +10267,8 @@ msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." msgstr "" +"Sincroniza la tarjeta SD con la carpeta de sincronización al comenzar y " +"finalizar la emulación." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10379,9 +10391,9 @@ msgid "" "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -"El TMD no está firmado correctamente. Si mueves o copias este título a la " -"tarjeta SD, el menú del sistema de Wii no volverá a ejecutarse, impidiendo " -"su copia o traslado de vuelta a la NAND." +"El TMD no está firmado correctamente. Si mueves o copias este paquete " +"(«título») a la tarjeta SD, el menú del sistema de Wii no volverá a " +"ejecutarse, impidiendo su copia o traslado de vuelta a la NAND." #: Source/Core/DiscIO/VolumeVerifier.cpp:448 msgid "The channel partition is missing." @@ -10439,8 +10451,8 @@ msgid "" "\n" "Do you want to try to repair the NAND?" msgstr "" -"Se ha dañado la NAND emulada. Puede que no funcionen algunos paquetes " -"(«titles») del sistema como el menú de Wii y el canal de compras Wii.\n" +"La NAND emulada está dañada. Puede que no funcionen algunos paquetes " +"(«títulos») del sistema como el menú de Wii y el Canal Tienda Wii.\n" "\n" "¿Quieres intentar arreglar la NAND?" @@ -10700,7 +10712,8 @@ msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:663 msgid "The update partition does not contain the IOS used by this title." msgstr "" -"La partición de actualización no contiene el IOS utilizado por este título." +"La partición de actualización no contiene el IOS utilizado por este paquete " +"(«título»)." #: Source/Core/DiscIO/VolumeVerifier.cpp:438 msgid "The update partition is missing." @@ -10769,9 +10782,9 @@ msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." msgstr "" -"Este título coreano está configurado para utilizar un IOS que normalmente no " -"se utiliza en las consolas coreanas. Es probable que esto conduzca a un " -"ERROR #002." +"Este paquete («título») coreano está configurado para utilizar un IOS que no " +"se suele utilizar en las consolas coreanas. Esto podría provocar un ERROR " +"#002." #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:150 msgid "This USB device is already whitelisted." @@ -10793,7 +10806,7 @@ msgstr "" "El simulador de Action Replay no soporta códigos que modifiquen al Action " "Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10934,38 +10947,41 @@ msgstr "No debes utilizarlo con juegos que no poseas legalmente." #: Source/Core/Core/ConfigManager.cpp:285 msgid "This title cannot be booted." -msgstr "Este juego no se puede arrancar." +msgstr "Este paquete («título») no se puede arrancar." #: Source/Core/DiscIO/VolumeVerifier.cpp:926 msgid "This title is set to use an invalid IOS." -msgstr "Este título está configurado para utilizar un IOS no válido." +msgstr "" +"Este paquete («título») está configurado para utilizar un IOS no válido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" #: Source/Core/DiscIO/VolumeVerifier.cpp:940 msgid "This title is set to use an invalid common key." -msgstr "Este título está configurado para utilizar una clave común no válida." +msgstr "" +"Este paquete («título») está configurado para utilizar una clave común no " +"válida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -"Este título parece incompatible con la emulación DSP HLE. Prueba usando LLE " -"si es hombrew.\n" +"Este paquete («título») parece incompatible con la emulación HLE del DSP. Si " +"es una aplicación «homebrew», prueba a usar la emulación LLE.\n" "\n" "DSPHLE: ucode desconcocido (CRC = {0:08x}) - forzando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" "\n" "Unknown ucode (CRC = {0:08x}) - forcing AXWii." msgstr "" -"Este título parece incompatible con la emulación DSP HLE. Prueba usando LLE " -"si es hombrew.\n" +"Este paquete («título») parece incompatible con la emulación HLE del DSP. Si " +"es una aplicación «homebrew», prueba a usar la emulación LLE.\n" "\n" "Ucode desconocido (CRC = {0:08x}) - forzando AXWii." @@ -11054,15 +11070,15 @@ msgstr "A:" msgid "Toggle &Fullscreen" msgstr "Alternar &pantalla completa" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Alternar anaglifos 3D" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Alternar 3D de imágenes paralelas (SBS)" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Alternar 3D de imágenes verticales (T/B)" @@ -11070,28 +11086,28 @@ msgstr "Alternar 3D de imágenes verticales (T/B)" msgid "Toggle All Log Types" msgstr "Alternar todos los tipos de registro" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Alternar relación de aspecto" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Alternar punto de interrupción" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Alternar recorte de imagen" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Alternar texturas personalizadas" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Copias del EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Niebla" @@ -11103,33 +11119,33 @@ msgstr "Pantalla completa" msgid "Toggle Pause" msgstr "Pausa" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Alternar tarjeta de memoria SD" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Omitir acceso al EFB" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Alternar volcado de texturas" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Alternar teclado USB" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Alternar copias de XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Alternar el modo inmediato de XFB" #: Source/Core/InputCommon/ControlReference/ExpressionParser.cpp:956 msgid "Tokenizing failed." -msgstr "La tokenización falló." +msgstr "Fallo en la tokenización." #: Source/Core/DolphinQt/ToolBar.cpp:28 msgid "Toolbar" @@ -11344,11 +11360,11 @@ msgstr "Sin consolidar" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Archivos ISO de GC/Wii sin comprimir (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Deshacer estado cargado" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Deshacer estado guardado" @@ -11365,8 +11381,9 @@ msgid "" "Uninstalling the WAD will remove the currently installed version of this " "title from the NAND without deleting its save data. Continue?" msgstr "" -"Desinstalar el archivo WAD quitará la versión actual del juego de la NAND " -"sin borrar las partidas guardadas. ¿Quieres continuar?" +"Si desinstalas el archivo WAD, eliminarás la versión actual del paquete " +"(«título») que se encuentra en la NAND sin borrar sus datos guardados. " +"¿Quieres continuar?" #: Source/Core/DolphinQt/MenuBar.cpp:279 msgid "United States" @@ -11452,7 +11469,7 @@ msgstr "" msgid "Unlimited" msgstr "Ilimitado" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Quitar ROM" @@ -11525,7 +11542,7 @@ msgstr "Se ha completado la actualización" #: Source/Core/DolphinQt/WiiUpdate.cpp:64 #: Source/Core/DolphinQt/WiiUpdate.cpp:71 msgid "Update failed" -msgstr "La actualización ha fallado" +msgstr "Fallo en la actualización" #: Source/Core/DolphinQt/WiiUpdate.cpp:97 msgid "Updating" @@ -11536,7 +11553,7 @@ msgid "" "Updating title %1...\n" "This can take a while." msgstr "" -"Actualizando el juego %1...\n" +"Actualizando el paquete («título») %1...\n" "Puede tardar un poco." #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:296 @@ -11558,6 +11575,8 @@ msgstr "Ajustes de envío de estadísticas de uso" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" msgstr "" +"Introduce 8.8.8.8 para usar una DNS normal, de lo contrario, introduce tu " +"dirección personalizada" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11835,22 +11854,22 @@ msgstr "Muescas virtuales" msgid "Virtual address space" msgstr "Espacio de la dirección virtual" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volumen" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Bajar volumen" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Silenciar sonido" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Subir volumen" @@ -11865,29 +11884,31 @@ msgstr "Archivos WAD (*.wad)" #: Source/Core/Core/WiiUtils.cpp:136 msgid "WAD installation failed: Could not create Wii Shop log files." msgstr "" -"La instalación del WAD falló: No se pudieron crear los registros del Canal " -"Tienda." +"Error en la instalación del WAD: no se pudieron crear los registros del " +"Canal Tienda." #: Source/Core/Core/WiiUtils.cpp:104 msgid "WAD installation failed: Could not finalise title import." msgstr "" -"La instalación del WAD falló: No se pudo terminar la importación del juego." +"Error en la instalación del WAD: no se pudo terminar la importación del " +"título." #: Source/Core/Core/WiiUtils.cpp:94 msgid "WAD installation failed: Could not import content {0:08x}." msgstr "" -"La instalación del WAD falló: No se pudo importar el contenido {0:08x}." +"Error en la instalación del WAD: no se pudo importar el contenido {0:08x}." #: Source/Core/Core/WiiUtils.cpp:78 msgid "WAD installation failed: Could not initialise title import (error {0})." msgstr "" -"La instalación del WAD falló: No se pudo comenzar la importación del juego " -"(error {0})." +"Error en la instalación del WAD: no se pudo comenzar la importación del " +"título (error {0})." #: Source/Core/Core/WiiUtils.cpp:56 msgid "WAD installation failed: The selected file is not a valid WAD." msgstr "" -"La instalación del WAD falló: El archivo seleccionado no tiene formato WAD." +"Error en la instalación del WAD: el archivo seleccionado no está en formato " +"WAD." #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:282 msgid "WAITING" @@ -11929,7 +11950,7 @@ msgstr "Ruta del WFS:" #: Source/Core/DolphinQt/ConvertDialog.cpp:350 msgid "WIA GC/Wii images (*.wia)" -msgstr "Archivos WIA GC/Wii (*.wia)" +msgstr "Archivos WIA de GC/Wii (*.wia)" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:228 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:425 @@ -12133,7 +12154,7 @@ msgstr "Dispositivos USB permitidos para acceso directo a Bluetooth" msgid "Widescreen Hack" msgstr "Arreglo para pantallas panorámicas" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -12334,6 +12355,8 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"Vas a convertir los contenidos del archivo %2 a la carpeta %1. Se eliminarán " +"todos los contenidos de la carpeta. ¿Seguro que quieres continuar?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12341,6 +12364,8 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"Vas a convertir los contenidos de la carpeta %1 al archivo %2. Se eliminarán " +"todos los contenidos del archivo. ¿Seguro que quieres continuar?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" @@ -12411,7 +12436,7 @@ msgid "" "Please refer to the NAND usage guide for setup instructions: https://dolphin-" "emu.org/docs/guides/nand-usage-guide/" msgstr "" -"No puedes utilizar el canal de la tienda Wii sin tus propias credenciales de " +"No puedes utilizar el Canal Tienda Wii sin tus propias credenciales de " "dispositivo.\n" "Échale un vistazo a la guía de instalación de la NAND si necesitas ayuda: " "https://dolphin-emu.org/docs/guides/nand-usage-guide/" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index 8c0157485b..88a5abdc75 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -712,12 +712,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -750,19 +750,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -782,7 +782,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1085,11 +1085,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1725,7 +1725,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1739,7 +1739,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1817,7 +1817,7 @@ msgstr "" msgid "Buttons" msgstr "دکمه ها" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1964,6 +1964,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2245,7 +2249,7 @@ msgstr "" msgid "Connect" msgstr "اتصال" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2257,19 +2261,19 @@ msgstr "اتصال کیبورد USB" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2305,7 +2309,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2318,19 +2322,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2805,20 +2809,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2917,7 +2921,7 @@ msgstr "شرح" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3014,7 +3018,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3515,7 +3519,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4018,7 +4022,7 @@ msgstr "" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "صادر کردن ضبط" @@ -4736,20 +4740,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "پيشروى فریم" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4806,11 +4810,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4868,7 +4872,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4880,11 +4884,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5132,7 +5136,7 @@ msgstr "" msgid "Gecko Codes" msgstr "کدهای گیکو" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5200,7 +5204,7 @@ msgstr "گرافیک" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5377,7 +5381,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5605,20 +5609,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5764,7 +5768,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "خطای داخلی LZO - lzo_init() با شکست مواجه شد" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6160,7 +6164,7 @@ msgstr "بارگذاری بافت اشیاء دلخواه" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6169,92 +6173,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "بارگذاری وضعیت - شکاف ۱" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "بارگذاری وضعیت - شکاف ۲" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "بارگذاری وضعیت - شکاف ۳" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "بارگذاری وضعیت - شکاف ۴" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "بارگذاری وضعیت - شکاف ۵" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "بارگذاری وضعیت - شکاف ۶" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "بارگذاری وضعیت - شکاف ۷" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "بارگذاری وضعیت - شکاف ۸" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6278,7 +6282,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6599,7 +6603,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6753,8 +6757,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6762,8 +6766,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7109,7 +7113,7 @@ msgstr "غیره" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7305,7 +7309,7 @@ msgstr "شروع بازی" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "شروع ضبط" @@ -7389,7 +7393,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7407,8 +7411,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7416,8 +7421,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7461,7 +7466,7 @@ msgstr "" msgid "Profile" msgstr "پروفایل" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7587,7 +7592,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7773,7 +7778,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8048,7 +8053,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8060,49 +8065,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "ذخیره وضعیت - شکاف ۱" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "ذخیره وضعیت - شکاف ۲" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "ذخیره وضعیت - شکاف ۳" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "ذخیره وضعیت - شکاف ۴" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "ذخیره وضعیت - شکاف ۵" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "ذخیره وضعیت - شکاف ۶" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "ذخیره وضعیت - شکاف ۷" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "ذخیره وضعیت - شکاف ۸" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "" @@ -8165,7 +8170,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8307,7 +8312,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8315,43 +8320,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8547,7 +8552,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8740,7 +8745,7 @@ msgid "Show PAL" msgstr "نمایش پال" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8920,7 +8925,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9095,7 +9100,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9136,19 +9141,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9168,7 +9173,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9902,7 +9907,7 @@ msgstr "" "این شبیه ساز اکشن ریپلی از کدهایی که توسط خود اکشن ریپلی پیراسته شده باشد " "پشتیبانی نمی کند." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10019,7 +10024,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10027,7 +10032,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10108,15 +10113,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10124,28 +10129,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "تبدیل انواع ثبت وقایع" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10157,27 +10162,27 @@ msgstr "تبدیل حالت تمام صفحه" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10372,11 +10377,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "خنثی کردن وضعیت بارگذاری" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10473,7 +10478,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10802,22 +10807,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "حجم صدا" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11020,7 +11025,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "هک کردن صفحه عریض" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index 02e0e64ce1..26a4c3af92 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -746,12 +746,12 @@ msgstr "16/9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -784,19 +784,19 @@ msgid "32-bit Unsigned Integer" msgstr "Entier 32 bits non signé" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Profondeur 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -816,7 +816,7 @@ msgstr "4 Mbit (59 blocs)" msgid "4:3" msgstr "4/3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1025,7 +1025,7 @@ msgstr "Accéléromètre" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "Influence sur l'accéléromètre" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1117,7 +1117,7 @@ msgstr "Action Replay : Code Normal 0 : Sous-type non valide {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay : Code Normal {0} : Sous-type non valide {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Activer le Chat NetPlay" @@ -1168,11 +1168,11 @@ msgstr "Ajouter un nouveau périphérique USB" msgid "Add Shortcut to Desktop" msgstr "Ajouter un raccourci sur le Bureau" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Ajouter un point d'arrêt" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Ajouter un point d'arrêt à la mémoire" @@ -1603,7 +1603,7 @@ msgstr "Détecter automatiquement les modules RSO ?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "Synchroniser automatiquement avec le dossier" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1846,7 +1846,7 @@ msgstr "Branches" msgid "Break" msgstr "Arrêt" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Point d'arrêt" @@ -1860,7 +1860,7 @@ msgid "Breakpoints" msgstr "Points d'arrêt" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1877,7 +1877,7 @@ msgstr "Adaptateur réseau (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "Réglages DNS de l'adaptateur Ethernet" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1941,7 +1941,7 @@ msgstr "Bouton" msgid "Buttons" msgstr "Boutons" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "Par :" @@ -2108,6 +2108,10 @@ msgstr "Taille de la carte" msgid "Center" msgstr "Centre" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centrer et étalonner" @@ -2402,7 +2406,7 @@ msgstr "Confirmation" msgid "Connect" msgstr "Connecter" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Connecter la Balance Board" @@ -2414,19 +2418,19 @@ msgstr "Connecter le clavier USB" msgid "Connect Wii Remote %1" msgstr "Connecter la Wiimote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Connecter la Wiimote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Connecter la Wiimote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Connecter la Wiimote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Connecter la Wiimote 4" @@ -2462,7 +2466,7 @@ msgstr "Le contenu {0:08x} est corrompu." msgid "Continuous Scanning" msgstr "Recherche en continu" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Contrôler le mode Golf de NetPlay" @@ -2475,19 +2479,19 @@ msgstr "Stick de contrôle" msgid "Controller Profile" msgstr "Config de manette" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Profil de la manette 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Profil de la manette 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Profil de la manette 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Profil de la manette 4" @@ -2573,7 +2577,7 @@ msgstr "Convergence :" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "Échec de la conversion." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2583,7 +2587,7 @@ msgstr "Convertir" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "Convertir le fichier en dossier maintenant" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2593,7 +2597,7 @@ msgstr "Convertir le fichier..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "Convertir le dossier en fichier maintenant" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -3035,20 +3039,20 @@ msgstr "Qualité de décodage :" msgid "Decrease" msgstr "Réduction" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Réduire la convergence" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Réduire la profondeur" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Réduire" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Baisser" @@ -3153,7 +3157,7 @@ msgstr "Description" msgid "Description:" msgstr "Description :" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "Description : " @@ -3257,7 +3261,7 @@ msgstr "Désactiver le filtre de copie" msgid "Disable EFB VRAM Copies" msgstr "Désactiver les copies EFB dans la VRAM" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Désactiver la limite de vitesse" @@ -3594,7 +3598,7 @@ msgstr "Enregistrer les images" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "Dumper le trafic BBA de la GameCube" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3823,7 +3827,7 @@ msgstr "" "Actuel : MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF : MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Vitesse de l'émulation" @@ -4099,7 +4103,7 @@ msgstr "Entrez le mot de passe" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "Entrez le serveur DNS à utiliser :" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4403,7 +4407,7 @@ msgstr "Exporter toutes les sauvegardes Wii" msgid "Export Failed" msgstr "L'exportation a échoué" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exporter l'enregistrement..." @@ -5196,20 +5200,20 @@ msgstr "%n adresse(s) trouvée(s)." msgid "Frame %1" msgstr "Image %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avancer d'une image" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Réduire la vitesse d'avancement de l'image" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Accélérer la vitesse d'avancement de l'image" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Réinitialiser la vitesse d'avancement de l'image" @@ -5270,11 +5274,11 @@ msgstr "" msgid "FreeLook" msgstr "Vue libre" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Vue libre" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Activer la vue libre" @@ -5332,7 +5336,7 @@ msgstr "GBA (Intégré)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "Cœur GBA" @@ -5344,11 +5348,11 @@ msgstr "Port GBA %1" msgid "GBA Settings" msgstr "Réglages GBA" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "Volume GBA" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "Taille de la fenêtre GBA" @@ -5634,7 +5638,7 @@ msgstr "Taille des côtés" msgid "Gecko Codes" msgstr "Codes Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5702,7 +5706,7 @@ msgstr "Graphismes" msgid "Graphics Mods" msgstr "Mods graphiques" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Options graphiques" @@ -5889,7 +5893,7 @@ msgstr "Nom de l'hôte" msgid "Hotkey Settings" msgstr "Paramètres des Raccouris clavier" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6190,20 +6194,20 @@ msgstr "" msgid "Increase" msgstr "Augmentation" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Augmenter la convergence" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Augmenter la profondeur" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Accélérer" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Augmenter" @@ -6229,6 +6233,9 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"Influence les données de tangage (pitch) et roulis (roll) de " +"l'accéléromètre. Des valeurs élevées réduiront le drift au prix de bruit. " +"Des valeurs entre 1% et 3% sont conseillées." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6351,7 +6358,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Erreur interne LZO - échec de lzo_init()" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6758,7 +6765,7 @@ msgstr "Charger textures personnalisées" msgid "Load GameCube Main Menu" msgstr "Charger le Menu Principal de la GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Charger le dernier état" @@ -6767,92 +6774,92 @@ msgstr "Charger le dernier état" msgid "Load Path:" msgstr "Charger le dossier :" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Charger une ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Charger un état" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Dernier état 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Dernier état 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Dernier état 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Dernier état 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Dernier état 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Dernier état 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Dernier état 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Dernier état 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Dernier état 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Dernier état 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Charger l'état du Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Charger l'état du Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Charger l'état du Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Charger l'état du Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Charger l'état du Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Charger l'état du Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Charger l'état du Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Charger l'état du Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Charger l'état du Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Charger l'état du Slot 9" @@ -6876,7 +6883,7 @@ msgstr "Charger une sauvegarde Wii" msgid "Load Wii System Menu %1" msgstr "Charger le Menu Système Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Charger depuis l'emplacement sélectionné" @@ -7237,7 +7244,7 @@ msgstr "" msgid "Move" msgstr "Déplacement" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Film" @@ -7253,7 +7260,7 @@ msgstr "" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "Multiplicateur" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7393,8 +7400,8 @@ msgstr "Nouvelle instruction :" msgid "New tag" msgstr "Nouveau tag" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Profil de jeu suivant" @@ -7402,8 +7409,8 @@ msgstr "Profil de jeu suivant" msgid "Next Match" msgstr "Rechercher le suivant" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Profil suivant" @@ -7766,7 +7773,7 @@ msgstr "Autres" msgid "Other Partition (%1)" msgstr "Autre partition (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Autres raccourcis clavier" @@ -7962,7 +7969,7 @@ msgstr "Démarrer" msgid "Play / Record" msgstr "Lecture / Enregistrement" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Jouer l'enregistrement..." @@ -8052,7 +8059,7 @@ msgstr "" msgid "Presets" msgstr "Pré-réglages" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Appuyer sur le bouton Sync" @@ -8075,8 +8082,9 @@ msgstr "" "dans les effets.

Non recommandé, à n'utiliser que " "si les autres options donnent de mauvais résultats." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Profil de jeu précédent" @@ -8084,8 +8092,8 @@ msgstr "Profil de jeu précédent" msgid "Previous Match" msgstr "Rechercher le précédent" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Profil précédent" @@ -8135,7 +8143,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Program Counter" @@ -8263,7 +8271,7 @@ msgstr "Uniquement lu" msgid "Read or Write" msgstr "Lu ou écrit" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Mode Lecture seule" @@ -8463,7 +8471,7 @@ msgid "Request to Join Your Party" msgstr "Quelqu'un demande à rejoindre votre partie" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8655,7 +8663,7 @@ msgstr "Carte SD :" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "Réglages de la carte SD" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8663,7 +8671,7 @@ msgstr "Racine de la carte SD :" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "Dossier de synchronisation SD :" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8743,7 +8751,7 @@ msgstr "Fichiers de sauvegarde de jeu (*.sav);;Tous les fichiers (*)" msgid "Save Import" msgstr "Importation de la sauvegarde" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Sauvegarder l'ancien état" @@ -8755,49 +8763,49 @@ msgstr "Enregistrer le préréglage" msgid "Save Recording File As" msgstr "Sauvegarder le fichier d'enregistrement sous" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Sauvegarder l'état" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Sauvegarder l'état vers le Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Sauvegarder l'état vers le Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Sauvegarder l'état vers le Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Sauvegarder l'état vers le Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Sauvegarder l'état vers le Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Sauvegarder l'état vers le Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Sauvegarder l'état vers le Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Sauvegarder l'état vers le Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Sauvegarder l'état vers le Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Sauvegarder l'état vers le Slot 9" @@ -8863,7 +8871,7 @@ msgstr "Sauvegarder le fichier de carte" msgid "Save signature file" msgstr "Sauvegarder le fichier de signature" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Sauvegarder vers l'emplacement sélectionné" @@ -9012,7 +9020,7 @@ msgstr "Sélectionner le fichier XML Riivolution" msgid "Select Slot %1 - %2" msgstr "Sélectionner le slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Sélectionner l'état" @@ -9020,43 +9028,43 @@ msgstr "Sélectionner l'état" msgid "Select State Slot" msgstr "Sélectionner l'emplacement de l'état" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Emplacement 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Emplacement 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Emplacement 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Emplacement 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Emplacement 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Emplacement 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Emplacement 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Emplacement 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Emplacement 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Emplacement 9" @@ -9084,7 +9092,7 @@ msgstr "Sélectionner un fichier" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "Sélectionnez un dossier à synchroniser avec l'image de la carte SD" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9288,7 +9296,7 @@ msgid "Set &blr" msgstr "Définir &blr" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Définir PC" @@ -9492,7 +9500,7 @@ msgid "Show PAL" msgstr "Afficher PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Afficher PC" @@ -9688,7 +9696,7 @@ msgstr "" "Taille du tampon d'étirement en millisecondes. De faibles valeurs " "provoqueront un craquement du son." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Sauter" @@ -9886,7 +9894,7 @@ msgstr "Démarrer une nouvelle recherche de cheat" msgid "Start Re&cording Input" msgstr "&Démarrer l'enregistrement de l'entrée" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9927,19 +9935,19 @@ msgstr "Pas à pas" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Step Into" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Step Out" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Step Over" @@ -9959,7 +9967,7 @@ msgstr "Saut en cours..." msgid "Step successful!" msgstr "Pas à pas réussi !" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Pas à pas" @@ -10254,6 +10262,8 @@ msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." msgstr "" +"Synchronise la carte SD avec le dossier de synchronisation de carte SD lors " +"du démarrage et l'arrêt de l'émulation." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10783,7 +10793,7 @@ msgstr "" "Ce simulateur d'Action Replay ne prend pas en charge les codes qui modifient " "l'Action Replay lui-même." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10934,7 +10944,7 @@ msgstr "Ce titre est réglé pour utiliser un IOS qui n'est pas valide." msgid "This title is set to use an invalid common key." msgstr "Ce titre est réglé pour utiliser une clé partagée non valide." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10946,7 +10956,7 @@ msgstr "" "\n" "DSPHLE : ucode inconnu (CRC = {0:08x}) - forçage de AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11044,15 +11054,15 @@ msgstr "jusqu'à :" msgid "Toggle &Fullscreen" msgstr "Activer le &plein écran" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Active la 3D par anaglyphe" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Active la 3D en côte-à-côte" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Active la 3D en haut-bas" @@ -11060,28 +11070,28 @@ msgstr "Active la 3D en haut-bas" msgid "Toggle All Log Types" msgstr "Activer tous les types de journaux" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Activer le ratio hauteur/largeur" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Activer Point d'arrêt" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Activer le recadrage" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Activer les textures personnalisées" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Activer les copies EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Activer le brouillard" @@ -11093,27 +11103,27 @@ msgstr "Activer le plein écran" msgid "Toggle Pause" msgstr "Mettre en pause" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Activer la carte SD" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Activer Ignorer l'accès à l'EFB" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Activer l'enregistrement des textures" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Activer le clavier USB" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Activer les copies XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Activer le mode XFB immédiat" @@ -11334,11 +11344,11 @@ msgstr "Unbound" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Images GC/Wii non compressées (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "&Annuler le lancement d'état" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Annuler la sauvegarde de l'état" @@ -11442,7 +11452,7 @@ msgstr "" msgid "Unlimited" msgstr "Illimitée" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Décharger la ROM" @@ -11548,6 +11558,7 @@ msgstr "Paramètres de l'envoi des données statistiques" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" msgstr "" +"Utilisez 8.8.8.8 pour un DNS normal, ou sinon entrez un DNS personnalisé" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11827,22 +11838,22 @@ msgstr "Coins virtuels" msgid "Virtual address space" msgstr "Espace d'adresse virtuelle" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volume" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Baisser" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Couper le son" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Augmenter" @@ -12123,7 +12134,7 @@ msgstr "Périphériques USB autorisés pour une connexion directe à la Wii ému msgid "Widescreen Hack" msgstr "Hack écran large (16/9è)" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -12323,6 +12334,8 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"Vous allez convertir le contenu du fichier dans %2 vers un dossier dans %1. " +"Tout le contenu du dossier sera supprimé. Souhaitez-vous continuer ?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12330,6 +12343,8 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"Vous allez convertir le contenu du dossier dans %1 vers un fichier dans %2. " +"Tout le contenu du fichier sera supprimé. Souhaitez-vous continuer ?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index 3f5f6d08d3..5754edb7a5 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -712,12 +712,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -750,19 +750,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -782,7 +782,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1085,11 +1085,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1725,7 +1725,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1739,7 +1739,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1817,7 +1817,7 @@ msgstr "" msgid "Buttons" msgstr "Tipke" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1964,6 +1964,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2245,7 +2249,7 @@ msgstr "" msgid "Connect" msgstr "Spoji" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2257,19 +2261,19 @@ msgstr "Priključite USB tipkovnicu" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2305,7 +2309,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Neprekidno Skeniranje" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2318,19 +2322,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2805,20 +2809,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2917,7 +2921,7 @@ msgstr "Opis" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3014,7 +3018,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3515,7 +3519,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4018,7 +4022,7 @@ msgstr "" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Izvedi Snimku Videa" @@ -4736,20 +4740,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Napredovanje Slike" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4806,11 +4810,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4868,7 +4872,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4880,11 +4884,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5132,7 +5136,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko Kodovi" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5200,7 +5204,7 @@ msgstr "Grafika" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5377,7 +5381,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5605,20 +5609,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5764,7 +5768,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Interni LZO Error - lzo_init() neuspjeh" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6160,7 +6164,7 @@ msgstr "Učitaj Posebne Teksture" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6169,92 +6173,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "&Mjesto učitavanja" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Mjesto za učitavanje stanja igre 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Mjesto za učitavanje stanja igre 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Mjesto za učitavanje stanja igre 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Mjesto za učitavanje stanja igre 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Mjesto za učitavanje stanja igre 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Mjesto za učitavanje stanja igre 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Mjesto za učitavanje stanja igre 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Učitaj Stanje Igre 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Mjesto za učitavanje stanja igre 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Učitaj Stanje Igre 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Učitaj Stanje Igre 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Učitaj Stanje Igre 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Učitaj Stanje Igre 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Učitaj Stanje Igre 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Učitaj Stanje Igre 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Učitaj Stanje Igre 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6278,7 +6282,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6599,7 +6603,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6753,8 +6757,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6762,8 +6766,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7109,7 +7113,7 @@ msgstr "Drugo" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7305,7 +7309,7 @@ msgstr "Pokreni" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Pokreni Video Snimak" @@ -7389,7 +7393,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7407,8 +7411,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7416,8 +7421,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7461,7 +7466,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7587,7 +7592,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7773,7 +7778,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8048,7 +8053,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8060,49 +8065,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Mjesta Snimanja" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Snimi Stanje Igre 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Mjesto za Stanje Snimanja 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Snimi Stanje Igre 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Snimi Stanje Igre 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Snimi Stanje Igre 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Snimi Stanje Igre 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Snimi Stanje Igre 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Snimi Stanje Igre 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Snimi Stanje Igre 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Mjesto za Stanje Snimanja 9" @@ -8165,7 +8170,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8307,7 +8312,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8315,43 +8320,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8547,7 +8552,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8740,7 +8745,7 @@ msgid "Show PAL" msgstr "Pokaži PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8920,7 +8925,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9095,7 +9100,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9136,19 +9141,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9168,7 +9173,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9898,7 +9903,7 @@ msgid "" "Replay itself." msgstr "AR simulator ne podržava kodove koje utječu na njega samog." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10015,7 +10020,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10023,7 +10028,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10104,15 +10109,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10120,28 +10125,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10153,27 +10158,27 @@ msgstr "Omogući/Onemogući Cijeli Zaslon" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10368,11 +10373,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Poništi Posljednje Učitavanje" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10469,7 +10474,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10798,22 +10803,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Glasnoća" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11016,7 +11021,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Prisili Široki Ekran " -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index d7f27ff4ba..7e065b2119 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -713,12 +713,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -751,19 +751,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -783,7 +783,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1035,7 +1035,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1086,11 +1086,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1726,7 +1726,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1740,7 +1740,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1818,7 +1818,7 @@ msgstr "" msgid "Buttons" msgstr "Gombok" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1966,6 +1966,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2247,7 +2251,7 @@ msgstr "" msgid "Connect" msgstr "Csatlakozás" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Balance Board csatlakoztatása" @@ -2259,19 +2263,19 @@ msgstr "USB billentyűzet csatlakoztatása" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2307,7 +2311,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Folyamatos szkennelés" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2320,19 +2324,19 @@ msgstr "Vezérlő kar" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2807,20 +2811,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Konvergencia csökkentése" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Mélység csökkentése" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Emulációs sebesség csökkentése" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "IR csökkentése" @@ -2919,7 +2923,7 @@ msgstr "Leírás" msgid "Description:" msgstr "Leírás:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3016,7 +3020,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Emulációs sebességkorlát kikapcsolása" @@ -3517,7 +3521,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4025,7 +4029,7 @@ msgstr "Minden Wii mentés exportálása" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Felvétel exportálása" @@ -4743,20 +4747,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Képkocka léptetés" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Képkocka léptetés lassítás" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Képkocka léptetés gyorsítás" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Képkocka léptetés alap sebesség" @@ -4813,11 +4817,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4875,7 +4879,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4887,11 +4891,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5139,7 +5143,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko kódok" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5207,7 +5211,7 @@ msgstr "Grafika" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5384,7 +5388,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5612,20 +5616,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Konvergencia növelése" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Mélység növelése" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Emulációs sebesség növelése" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "IR növelése" @@ -5771,7 +5775,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Belső LZO hiba - sikertelen lzo_init()" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6168,7 +6172,7 @@ msgstr "Egyedi textúrák betöltése" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6177,92 +6181,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Állapot betöltése" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Állapot betöltése, utolsó 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Állapot betöltése, utolsó 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Állapot betöltése, utolsó 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Állapot betöltése, utolsó 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Állapot betöltése, utolsó 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Állapot betöltése, utolsó 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Állapot betöltése, utolsó 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Állapot betöltése, utolsó 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Állapot betöltése, utolsó 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Állapot betöltése, utolsó 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Állapot betöltése, foglalat 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Állapot betöltése, foglalat 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Állapot betöltése, foglalat 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Állapot betöltése, foglalat 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Állapot betöltése, foglalat 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Állapot betöltése, foglalat 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Állapot betöltése, foglalat 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Állapot betöltése, foglalat 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Állapot betöltése, foglalat 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Állapot betöltése, foglalat 9" @@ -6286,7 +6290,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6607,7 +6611,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6761,8 +6765,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6770,8 +6774,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7119,7 +7123,7 @@ msgstr "Egyéb" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7315,7 +7319,7 @@ msgstr "Indítás" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Felvétel lejátszása" @@ -7399,7 +7403,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7417,8 +7421,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7426,8 +7431,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7471,7 +7476,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7597,7 +7602,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7783,7 +7788,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8058,7 +8063,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Legrégebbi állapot mentése" @@ -8070,49 +8075,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Állapot mentése" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Állapot mentése, foglalat 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Állapot mentése, foglalat 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Állapot mentése, foglalat 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Állapot mentése, foglalat 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Állapot mentése, foglalat 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Állapot mentése, foglalat 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Állapot mentése, foglalat 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Állapot mentése, foglalat 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Állapot mentése, foglalat 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Állapot mentése, foglalat 9" @@ -8175,7 +8180,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8317,7 +8322,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8325,43 +8330,43 @@ msgstr "" msgid "Select State Slot" msgstr "Állapot kiválasztása, foglalat" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Állapot kiválasztása, foglalat 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Állapot kiválasztása, foglalat 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Állapot kiválasztása, foglalat 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Állapot kiválasztása, foglalat 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Állapot kiválasztása, foglalat 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Állapot kiválasztása, foglalat 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Állapot kiválasztása, foglalat 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Állapot kiválasztása, foglalat 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Állapot kiválasztása, foglalat 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Állapot kiválasztása, foglalat 9" @@ -8557,7 +8562,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8753,7 +8758,7 @@ msgid "Show PAL" msgstr "PAL megjelenítése" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8933,7 +8938,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9108,7 +9113,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "&Bemenet rögzítésének indítása" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9149,19 +9154,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9181,7 +9186,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9915,7 +9920,7 @@ msgstr "" "Az action replay szimulátor nem támogat olyan kódokat, amelyek magát az " "Action Replayt módosítják." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10032,7 +10037,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10040,7 +10045,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10125,15 +10130,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "3D anaglif kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10141,28 +10146,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Minden naplótípus kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Képarány kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Levágás kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Egyedi textúrák kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB másolatok kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Köd kapcsoló" @@ -10174,27 +10179,27 @@ msgstr "Teljes képernyő kapcsoló" msgid "Toggle Pause" msgstr "Szünet kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10389,11 +10394,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Állapot betöltésének visszavonása" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Állapot mentésének visszavonása" @@ -10490,7 +10495,7 @@ msgstr "" msgid "Unlimited" msgstr "Végtelen" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10820,22 +10825,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Hangerő" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Hangerő le" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Némítás kapcsoló" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Hangerő fel" @@ -11038,7 +11043,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Szélesvásznú hangolás" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/it.po b/Languages/po/it.po index c2a355929e..c7058ace0b 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -737,12 +737,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -775,19 +775,19 @@ msgid "32-bit Unsigned Integer" msgstr "Unsigned Integer 32-bit" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Profondità 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -807,7 +807,7 @@ msgstr "4 Mbit (59 blocchi)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1014,7 +1014,7 @@ msgstr "Accelerometro" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "Influenza Accelerometro" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1106,7 +1106,7 @@ msgstr "Action Replay: Normal Code 0: Sottotipo {0:08x} ({1}) non valido" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Normal Code {0}: Sottotipo {1:08x} ({2}) non valido" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Attiva Chat NetPlay" @@ -1157,11 +1157,11 @@ msgstr "Aggiungi un nuovo Dispositivo USB" msgid "Add Shortcut to Desktop" msgstr "Aggiungi Collegamento su Desktop" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Aggiungi un Punto di Interruzione" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Aggiungi Punto di Interruzione dei Dati" @@ -1593,7 +1593,7 @@ msgstr "Individua automaticamente i moduli RSO?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "Sincronizza automaticamente con la cartella" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1836,7 +1836,7 @@ msgstr "Branch" msgid "Break" msgstr "Interrompi" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Punto di interruzione" @@ -1851,7 +1851,7 @@ msgid "Breakpoints" msgstr "Punti di interruzione" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1868,7 +1868,7 @@ msgstr "Adattatore Broadband (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "Impostazioni DNS Adattatore Broadband" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1932,7 +1932,7 @@ msgstr "Pulsante" msgid "Buttons" msgstr "Pulsanti" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "Da:" @@ -2093,6 +2093,10 @@ msgstr "Dimensione Scheda" msgid "Center" msgstr "Centro" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centra e Calibra" @@ -2385,7 +2389,7 @@ msgstr "Conferma" msgid "Connect" msgstr "Collega" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Collega Balance Board" @@ -2397,19 +2401,19 @@ msgstr "Collega Tastiera USB" msgid "Connect Wii Remote %1" msgstr "Collega Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Collega Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Collega Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Collega Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Collega Wii Remote 4" @@ -2445,7 +2449,7 @@ msgstr "Il contenuto {0:08x} è corrotto." msgid "Continuous Scanning" msgstr "Scansione Continua" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Controlla Modalità Golf NetPlay" @@ -2458,19 +2462,19 @@ msgstr "Control Stick" msgid "Controller Profile" msgstr "Profilo Controller" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Profilo Controller 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Profilo Controller 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Profilo Controller 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Profilo Controller 4" @@ -2554,7 +2558,7 @@ msgstr "Convergenza:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "Conversione fallita." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2564,7 +2568,7 @@ msgstr "Converti" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "Converti File in Cartella Ora" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2574,7 +2578,7 @@ msgstr "Converti File..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "Converti Cartella in File Ora" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -3016,20 +3020,20 @@ msgstr "Qualità Decodifica:" msgid "Decrease" msgstr "Riduci" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Riduci Convergenza" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Riduci Profondità" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Diminuisci Velocità di Emulazione" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Riduci IR" @@ -3134,7 +3138,7 @@ msgstr "Descrizione" msgid "Description:" msgstr "Descrizione:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "Descrizione:" @@ -3238,7 +3242,7 @@ msgstr "Disabilita Copia Filtro" msgid "Disable EFB VRAM Copies" msgstr "Disattiva Copie EFB VRAM" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Disabilita Limite Velocità di Emulazione" @@ -3571,7 +3575,7 @@ msgstr "Dump dei Frame" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "Scarica traffico GameCube BBA" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3800,7 +3804,7 @@ msgstr "" "Attuale: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Velocità di Emulazione" @@ -4072,7 +4076,7 @@ msgstr "Inserisci la password" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "Inserisci il server DNS da utilizzare:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4372,7 +4376,7 @@ msgstr "Esporta tutti i Salvataggi Wii" msgid "Export Failed" msgstr "Esportazione non Riuscita" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Esporta Registrazione" @@ -5164,20 +5168,20 @@ msgstr "Indirizzi trovatI: %n" msgid "Frame %1" msgstr "Frame %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avanza di un Fotogramma" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Riduci Velocità Avanzamento Frame" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Aumenta Velocità Avanzamento Frame" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Reimposta Velocità Avanzamento Frame" @@ -5238,11 +5242,11 @@ msgstr "" msgid "FreeLook" msgstr "CameraLibera" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Camera libera" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Abilita/Disabilita Camera Libera" @@ -5300,7 +5304,7 @@ msgstr "GBA (Integrato)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "Core GBA" @@ -5312,11 +5316,11 @@ msgstr "Porta GBA %1" msgid "GBA Settings" msgstr "Impostazioni GBA" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "Volume GBA" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "Dimensioni Finestra GBA" @@ -5598,7 +5602,7 @@ msgstr "Dimensione Slot Stick" msgid "Gecko Codes" msgstr "Codici Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5666,7 +5670,7 @@ msgstr "Video" msgid "Graphics Mods" msgstr "Mod Grafiche" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Settaggi Grafici" @@ -5852,7 +5856,7 @@ msgstr "Hostname" msgid "Hotkey Settings" msgstr "Impostazioni Tasti di Scelta Rapida" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6148,20 +6152,20 @@ msgstr "" msgid "Increase" msgstr "Aumenta" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Aumenta Convergenza" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Aumenta Profondità" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Aumenta Velocità di Emulazione" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Aumenta IR" @@ -6187,6 +6191,9 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"Influenza i dati dell'accelerometro in relazione agli assi laterale e " +"longitudinale. Valori maggiori ridurranno il drift al prezzo di maggior " +"disturbo. Considera valori tra l'1% e il 3%." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6309,7 +6316,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Errore Interno LZO - lzo_init() fallito" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6716,7 +6723,7 @@ msgstr "Carica Texture Personalizzate" msgid "Load GameCube Main Menu" msgstr "Carica Main Menu GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Carica Ultimo Stato di Gioco" @@ -6725,92 +6732,92 @@ msgstr "Carica Ultimo Stato di Gioco" msgid "Load Path:" msgstr "Carica Percorso:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Carica ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Carica Stato di Gioco" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Carica Stato di Gioco in Posizione 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Carica Stato di Gioco in Posizione 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Carica Stato di Gioco in Posizione 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Carica Stato di Gioco in Posizione 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Carica Stato di Gioco in Posizione 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Carica Stato di Gioco in Posizione 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Carica Stato di Gioco in Posizione 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Carica Stato di Gioco in Posizione 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Carica Stato di Gioco in Posizione 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Carica Stato di Gioco in Posizione 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Carica Stato di Gioco da Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Carica Stato di Gioco da Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Carica Stato di Gioco da Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Carica Stato di Gioco da Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Carica Stato di Gioco da Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Carica Stato di Gioco da Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Carica Stato di Gioco da Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Carica Stato di Gioco da Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Carica Stato di Gioco da Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Carica Stato di Gioco da Slot 9" @@ -6834,7 +6841,7 @@ msgstr "Carica Salvataggio Wii" msgid "Load Wii System Menu %1" msgstr "Carica Menu di Sistema Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Carica dallo Slot Selezionato" @@ -7192,7 +7199,7 @@ msgstr "" msgid "Move" msgstr "Muovi" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Filmato" @@ -7208,7 +7215,7 @@ msgstr "" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "Moltiplicatore" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7350,8 +7357,8 @@ msgstr "Nuova istruzione:" msgid "New tag" msgstr "Nuovo Tag" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Profilo di Gioco Successivo" @@ -7359,8 +7366,8 @@ msgstr "Profilo di Gioco Successivo" msgid "Next Match" msgstr "Corrispondenza Successiva" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Profilo Successivo" @@ -7723,7 +7730,7 @@ msgstr "Altro" msgid "Other Partition (%1)" msgstr "Altra Partizione (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Altri Tasti Rapidi" @@ -7919,7 +7926,7 @@ msgstr "Gioca" msgid "Play / Record" msgstr "Avvia / Registra" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Riproduci Registrazione" @@ -8006,7 +8013,7 @@ msgstr "" msgid "Presets" msgstr "Preimpostazioni" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Premi il Pulsante Sync" @@ -8029,8 +8036,9 @@ msgstr "" "

Non raccomandato, usa soltanto se le altre opzioni " "non danno i risultati sperati." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Profilo di Gioco Precedente" @@ -8038,8 +8046,8 @@ msgstr "Profilo di Gioco Precedente" msgid "Previous Match" msgstr "Corrispondenza Precedente" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Profilo Precedente" @@ -8089,7 +8097,7 @@ msgstr "" msgid "Profile" msgstr "Profilo" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Program Counter" @@ -8215,7 +8223,7 @@ msgstr "Sola lettura" msgid "Read or Write" msgstr "Lettura o Scrittura" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Modalità Sola-lettura" @@ -8412,7 +8420,7 @@ msgid "Request to Join Your Party" msgstr "Invita al tuo party" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8604,7 +8612,7 @@ msgstr "Percorso SD Card:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "Impostazioni Scheda SD" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8612,7 +8620,7 @@ msgstr "SD Root:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "Cartella Sync SD:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8692,7 +8700,7 @@ msgstr "File di Salvataggio di Gioco (*.sav);;Tutti i File (*)" msgid "Save Import" msgstr "Importa Salvataggio" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Salva sul più vecchio Stato di Gioco" @@ -8704,49 +8712,49 @@ msgstr "Salva Preset" msgid "Save Recording File As" msgstr "Salva File Registrazione Come" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Salva Stato di Gioco" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Salva Stato di Gioco nello Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Salva Stato di Gioco nello Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Salva Stato di Gioco nello Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Salva Stato di Gioco nello Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Salva Stato di Gioco nello Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Salva Stato di Gioco nello Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Salva Stato di Gioco nello Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Salva Stato di Gioco nello Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Salva Stato di Gioco nello Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Salva Stato di Gioco nello Slot 9" @@ -8812,7 +8820,7 @@ msgstr "Salva file mappa" msgid "Save signature file" msgstr "Salva file di signature" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Salva nello Slot Selezionato" @@ -8959,7 +8967,7 @@ msgstr "Seleziona file Riivolution XML" msgid "Select Slot %1 - %2" msgstr "Seleziona Slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Seleziona Stato di Gioco" @@ -8967,43 +8975,43 @@ msgstr "Seleziona Stato di Gioco" msgid "Select State Slot" msgstr "Seleziona Slot di Stato" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Seleziona Slot di Stato 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Seleziona Slot di Stato 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Seleziona Slot di Stato 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Seleziona Slot di Stato 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Seleziona Slot di Stato 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Seleziona Slot di Stato 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Seleziona Slot di Stato 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Seleziona Slot di Stato 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Seleziona Slot di Stato 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Seleziona Slot di Stato 9" @@ -9031,7 +9039,7 @@ msgstr "Seleziona un File" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "Scegli la cartella da sincronizzare con l'Immagine Scheda SD" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9236,7 +9244,7 @@ msgid "Set &blr" msgstr "Imposta &blr" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Imposta PC" @@ -9438,7 +9446,7 @@ msgid "Show PAL" msgstr "Mostra PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Mostra PC" @@ -9633,7 +9641,7 @@ msgstr "" "Dimensione in millisecondo del buffer di stretch. Valori troppo bassi " "possono causare un audio gracchiante." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Salta" @@ -9826,7 +9834,7 @@ msgstr "Inizia Nuova Ricerca Cheat" msgid "Start Re&cording Input" msgstr "Avvia Re&gistrazione Input" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9867,19 +9875,19 @@ msgstr "Entra nell'Istruzione" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Entra nell'Istruzione" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Esci dall'Istruzione" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Esegui Istruzione" @@ -9899,7 +9907,7 @@ msgstr "Esecuzione dell'istruzione in corso..." msgid "Step successful!" msgstr "Istruzione eseguita con successo!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Entrando" @@ -10193,6 +10201,8 @@ msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." msgstr "" +"Sincronizza la Scheda SD con la Cartella Sync SD all'inizio e al termine " +"dell'emulazione." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10720,7 +10730,7 @@ msgid "" msgstr "" "Questo simulatore di action replay non supporta codici automodificanti." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10870,7 +10880,7 @@ msgstr "Questo titolo è impostato per utilizzare un IOS non valido." msgid "This title is set to use an invalid common key." msgstr "Questo titolo è impostato per utilizzare una common key non valida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10882,7 +10892,7 @@ msgstr "" "\n" "DSPHLE: Ucode sconosciuto (CRC = {0:08x}) - AX forzato" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10979,15 +10989,15 @@ msgstr "Da:" msgid "Toggle &Fullscreen" msgstr "Attiva/Disattiva &Schermo intero" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Attiva/Disattiva Anaglifo 3D" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Attiva/Disattiva 3D Fianco-a-Fianco" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Attiva/Disattiva 3D Sopra-sotto" @@ -10995,28 +11005,28 @@ msgstr "Attiva/Disattiva 3D Sopra-sotto" msgid "Toggle All Log Types" msgstr "Seleziona/Deseleziona tutti i Tipi di Log" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Attiva/Disattiva Aspetto" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Imposta/rimuovi Punto di Interruzione" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Attiva/Disattiva Ritaglio" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Attiva/Disattiva Texture Personalizzate" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Attiva/Disattiva Copie EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Attiva/Disattiva Nebbia" @@ -11028,27 +11038,27 @@ msgstr "Visualizza a Schermo Intero" msgid "Toggle Pause" msgstr "Attiva/Disattiva Pausa" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Attiva/Disattiva Scheda SD" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Attiva/Disattiva Salta Accesso EFB" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Attiva/Disattiva Texture Dump" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Attiva/Disattiva Tastiera USB" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Attiva/Disattiva Copie XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Attiva/Disattiva Modalità XFB Immediata" @@ -11268,11 +11278,11 @@ msgstr "Non assegnato" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Immagini GC/Wii non compresse (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Annulla Caricamento Stato di Gioco" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Annulla Salvataggio dello Stato di Gioco" @@ -11378,7 +11388,7 @@ msgstr "" msgid "Unlimited" msgstr "Illimitato" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Rimuovi ROM" @@ -11484,6 +11494,7 @@ msgstr "Impostazioni Report Statistiche d'Uso" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" msgstr "" +"Usa 8.8.8.8 come DNS standard, altrimenti inseriscine uno personalizzato" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11758,22 +11769,22 @@ msgstr "Tacche Virtuali" msgid "Virtual address space" msgstr "Spazio dell'indirizzo virtuale" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volume" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Abbassa il Volume" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Abilita/Disabilita il Volume" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Alza il Volume" @@ -12047,7 +12058,7 @@ msgstr "Dispositivi USB Ponte Accettati" msgid "Widescreen Hack" msgstr "Hack Widescreen" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -12247,6 +12258,8 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"Stai per convertire il contenuto del file %2 nella cartella %1. Il contenuto " +"corrente della cartella verrà eliminato. Sei sicuro di voler continuare?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12254,6 +12267,8 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"Stai per convertire il contenuto del della cartella %1 nel file %2. Il " +"contenuto corrente del file verrà eliminato. Sei sicuro di voler continuare?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index fab3ed049f..32d0facecf 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2022\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -746,12 +746,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -784,19 +784,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D深度" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -816,7 +816,7 @@ msgstr "4 Mbit (59 ブロック)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1104,7 +1104,7 @@ msgstr "Action Replay: Normal Code 0: Invalid Subtype {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "ネットプレイ:チャットをアクティブ" @@ -1155,11 +1155,11 @@ msgstr "USBデバイスを追加" msgid "Add Shortcut to Desktop" msgstr "ショートカットをデスクトップに追加" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Add a Breakpoint" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Add a Memory Breakpoint" @@ -1833,7 +1833,7 @@ msgstr "Branches" msgid "Break" msgstr "Break" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Breakpoint" @@ -1847,7 +1847,7 @@ msgid "Breakpoints" msgstr "Breakpoints" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1925,7 +1925,7 @@ msgstr "ボタン" msgid "Buttons" msgstr "ボタン" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2081,6 +2081,10 @@ msgstr "容量" msgid "Center" msgstr "面" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "センタリングとキャリブレーション" @@ -2368,7 +2372,7 @@ msgstr "確認" msgid "Connect" msgstr "ホストに接続" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "バランスWii ボードを接続" @@ -2380,19 +2384,19 @@ msgstr "USBキーボードの接続をエミュレート" msgid "Connect Wii Remote %1" msgstr "%1 のWiiリモコンを接続" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "1PのWiiリモコンを接続" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "2PのWiiリモコンを接続" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "3PのWiiリモコンを接続" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "4PのWiiリモコンを接続" @@ -2428,7 +2432,7 @@ msgstr "Content {0:08x} is corrupt." msgid "Continuous Scanning" msgstr "接続状況を常に監視" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2441,19 +2445,19 @@ msgstr "コントロールスティック" msgid "Controller Profile" msgstr "入力設定" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2959,20 +2963,20 @@ msgstr "デコード精度" msgid "Decrease" msgstr "移動速度 減少" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "収束距離 減少" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "深度 減少" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "エミュレーション速度 減少" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "レンダリング解像度 縮小" @@ -3071,7 +3075,7 @@ msgstr "説明" msgid "Description:" msgstr "説明" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3174,7 +3178,7 @@ msgstr "Disable Copy Filter" msgid "Disable EFB VRAM Copies" msgstr "Disable EFB VRAM Copies" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "エミュレーション速度 無効化" @@ -3713,7 +3717,7 @@ msgstr "" "Current: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "エミュレーション速度" @@ -4251,7 +4255,7 @@ msgstr "全てのWiiセーブデータをエクスポート" msgid "Export Failed" msgstr "エクスポート失敗" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "録画ファイルのエクスポート" @@ -4997,20 +5001,20 @@ msgstr "" msgid "Frame %1" msgstr "フレーム %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Frame Advance" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Frame Advance速度 減少" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Frame Advance速度 増加" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Frame Advance速度 リセット" @@ -5071,11 +5075,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "フリールック" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "フリールック 切替" @@ -5133,7 +5137,7 @@ msgstr "GBA (統合型)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "GBA コア" @@ -5145,11 +5149,11 @@ msgstr "GBAポート %1" msgid "GBA Settings" msgstr "GBA設定" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "GBA 音量" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "GBA 画面サイズ" @@ -5416,7 +5420,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Geckoコード" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5484,7 +5488,7 @@ msgstr "ビデオ" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "グラフィック設定 切替" @@ -5669,7 +5673,7 @@ msgstr "Hostname" msgid "Hotkey Settings" msgstr "ホットキーのカスタマイズ" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5945,20 +5949,20 @@ msgstr "" msgid "Increase" msgstr "移動速度 増加" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "収束距離 増加" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "深度 増加" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "エミュレーション速度 増加" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "レンダリング解像度 拡大" @@ -6106,7 +6110,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6511,7 +6515,7 @@ msgstr "カスタムテクスチャを読み込む" msgid "Load GameCube Main Menu" msgstr "ゲームキューブ メインメニューを起動" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "以前のステートをロード" @@ -6520,92 +6524,92 @@ msgstr "以前のステートをロード" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "ROMの読込" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "ステートロード" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "1個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "10個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "2個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "3個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "4個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "5個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "6個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "7個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "8個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "9個前のステートをロード" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "ステートロード - スロット 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "ステートロード - スロット 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "ステートロード - スロット 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "ステートロード - スロット 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "ステートロード - スロット 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "ステートロード - スロット 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "ステートロード - スロット 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "ステートロード - スロット 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "ステートロード - スロット 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "ステートロード - スロット 9" @@ -6629,7 +6633,7 @@ msgstr "Wiiのセーブデータを読込む" msgid "Load Wii System Menu %1" msgstr "Wiiメニューを起動 %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "選択したスロットから読込" @@ -6974,7 +6978,7 @@ msgstr "常に非表示にします" msgid "Move" msgstr "移動" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "記録" @@ -7128,8 +7132,8 @@ msgstr "New instruction:" msgid "New tag" msgstr "新しいタグ" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "次のゲームプロファイル" @@ -7137,8 +7141,8 @@ msgstr "次のゲームプロファイル" msgid "Next Match" msgstr "次を検索" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "次のプロファイル" @@ -7497,7 +7501,7 @@ msgstr "その他" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "その他" @@ -7693,7 +7697,7 @@ msgstr "開始" msgid "Play / Record" msgstr "再生/記録" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "録画ファイルを再生" @@ -7779,7 +7783,7 @@ msgstr "" msgid "Presets" msgstr "プリセット" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Syncボタン 押下" @@ -7801,8 +7805,9 @@ msgstr "" "

他の方式ではパフォーマンスに影響が出てしまう場合以" "外、オススメできません" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "前のゲームプロファイル" @@ -7810,8 +7815,8 @@ msgstr "前のゲームプロファイル" msgid "Previous Match" msgstr "前を検索" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "前のプロファイル" @@ -7859,7 +7864,7 @@ msgstr "" msgid "Profile" msgstr "プロファイル" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Program Counter" @@ -7987,7 +7992,7 @@ msgstr "Read only" msgid "Read or Write" msgstr "Read or Write" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "読み込み専用" @@ -8185,7 +8190,7 @@ msgid "Request to Join Your Party" msgstr "参加要請" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8460,7 +8465,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "最古のステートに上書き保存" @@ -8472,49 +8477,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "ステートセーブ" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "ステートセーブ - スロット 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "ステートセーブ - スロット 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "ステートセーブ - スロット 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "ステートセーブ - スロット 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "ステートセーブ - スロット 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "ステートセーブ - スロット 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "ステートセーブ - スロット 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "ステートセーブ - スロット 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "ステートセーブ - スロット 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "ステートセーブ - スロット 9" @@ -8580,7 +8585,7 @@ msgstr "Save map file" msgid "Save signature file" msgstr "Save signature file" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "選択したスロットに保存" @@ -8722,7 +8727,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "スロット %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "スロットの選択" @@ -8730,43 +8735,43 @@ msgstr "スロットの選択" msgid "Select State Slot" msgstr "スロットの選択" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "ステートスロット 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "ステートスロット 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "ステートスロット 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "ステートスロット 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "ステートスロット 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "ステートスロット 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "ステートスロット 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "ステートスロット 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "ステートスロット 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "ステートスロット 9" @@ -8991,7 +8996,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Set PC" @@ -9187,7 +9192,7 @@ msgid "Show PAL" msgstr "PAL規格" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Show PC" @@ -9382,7 +9387,7 @@ msgstr "" "ストレッチに使用するバッファサイズをミリ秒単位で変更できます。小さくしすぎる" "と音割れの原因になります。" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Skip" @@ -9566,7 +9571,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "操作の記録を開始(&C)" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9607,19 +9612,19 @@ msgstr "Step" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Step Into" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Step Out" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Step Over" @@ -9639,7 +9644,7 @@ msgstr "Step over in progress..." msgid "Step successful!" msgstr "Step successful!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Stepping" @@ -10409,7 +10414,7 @@ msgstr "" "このアクションリプレイシミュレータは、アクションリプレイそのものを変更する" "コードはサポートしていません。" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10537,7 +10542,7 @@ msgstr "This title is set to use an invalid IOS." msgid "This title is set to use an invalid common key." msgstr "This title is set to use an invalid common key." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10549,7 +10554,7 @@ msgstr "" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10634,15 +10639,15 @@ msgstr "終了" msgid "Toggle &Fullscreen" msgstr "全画面表示 切り替え(&F)" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "立体視 Anaglyph 切替" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "立体視 Side-by-side 切替" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "立体視 Top-bottom 切替" @@ -10650,28 +10655,28 @@ msgstr "立体視 Top-bottom 切替" msgid "Toggle All Log Types" msgstr "全てのログ情報を選択/解除" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "アスペクト比 設定切替" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Toggle Breakpoint" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "クロッピング 切替" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "カスタムテクスチャ 切替" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB Copies 設定切替" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "フォグ処理 設定切替" @@ -10683,27 +10688,27 @@ msgstr "フルスクリーン表示 切替" msgid "Toggle Pause" msgstr "一時停止 切替" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "SDカード挿入 切替" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Skip EFB Access 切替" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Toggle Texture Dumping" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "USB キーボード 切替" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "EFB Copies 設定切替" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "XFB Immediate Mode 設定切替" @@ -10918,11 +10923,11 @@ msgstr "Unbound" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "未圧縮のGC/Wii ISOファイル (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "直前のステートロードを取消" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "直前のステートセーブの取消" @@ -11020,7 +11025,7 @@ msgstr "" msgid "Unlimited" msgstr "制限なし" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "ROMを取り外してリセット" @@ -11362,22 +11367,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "音量" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "音量を下げる" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "ミュート 切替" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "音量を上げる" @@ -11593,7 +11598,7 @@ msgstr "常にパススルーを行うUSBデバイスリスト" msgid "Widescreen Hack" msgstr "疑似ワイドスクリーン化" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index ceb6112b13..658d459a38 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -567,7 +567,7 @@ msgstr "읽기 전용 모드(&R)" #: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:62 msgid "&Refresh List" -msgstr "" +msgstr "목록 새로고침(&R)" #: Source/Core/DolphinQt/MenuBar.cpp:438 msgid "&Registers" @@ -738,12 +738,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -776,19 +776,19 @@ msgid "32-bit Unsigned Integer" msgstr "32-비트 비부호화 정수" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D 깊이" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -808,7 +808,7 @@ msgstr "4 Mbit (59 블락)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1009,7 +1009,7 @@ msgstr "가속도계" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "가속도계 영향" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1099,7 +1099,7 @@ msgstr "액션 리플레이: 일반 코드 0: 올바르지 않은 하위 분류 msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "액션 리플레이: 일반 코드 0: 올바르지 않은 하위 분류 {0:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "넷플레이 채팅 활성" @@ -1150,11 +1150,11 @@ msgstr "새로운 USB 장치 추가" msgid "Add Shortcut to Desktop" msgstr "데스크탑에 바로가기 추가" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "중단점 추가" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "메모리 중단점 추가" @@ -1218,7 +1218,7 @@ msgstr "주소:" #. i18n: Refers to plastic shell of game controller (stick gate) that limits stick movements. #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:78 msgid "Adjusts target radius of simulated stick gate." -msgstr "" +msgstr "시뮬레이트된 스틱 게이트의 대상 반지름을 조정합니다." #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:237 msgid "" @@ -1281,7 +1281,7 @@ msgstr "고급" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:209 msgid "Advanced Settings" -msgstr "" +msgstr "고급 설정" #: Source/Core/UICommon/NetPlayIndex.cpp:251 msgid "Africa" @@ -1294,7 +1294,7 @@ msgstr "데이터 타입 길이로 정렬됨" #. i18n: A double precision floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:164 msgid "All Double" -msgstr "" +msgstr "모든 더블" #: Source/Core/DolphinQt/GCMemcardManager.cpp:362 #: Source/Core/DolphinQt/GCMemcardManager.cpp:439 @@ -1314,7 +1314,7 @@ msgstr "모든 파일 (*)" #. i18n: A floating point number #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:161 msgid "All Float" -msgstr "" +msgstr "모든 실수" #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/Settings/PathPane.cpp:50 @@ -1323,7 +1323,7 @@ msgstr "모든 GC/Wii 파일들" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:154 msgid "All Hexadecimal" -msgstr "" +msgstr "모든 16진수" #: Source/Core/DolphinQt/MainWindow.cpp:1299 #: Source/Core/DolphinQt/MainWindow.cpp:1307 @@ -1332,11 +1332,11 @@ msgstr "모든 저장 상태 (*.sav *.s##);; 모든 파일 (*)" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:156 msgid "All Signed Integer" -msgstr "" +msgstr "모든 부호화 정수" #: Source/Core/DolphinQt/Debugger/RegisterWidget.cpp:158 msgid "All Unsigned Integer" -msgstr "" +msgstr "모든 비부호화 정수" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:381 msgid "All devices" @@ -1582,7 +1582,7 @@ msgstr "RSO 모듈을 자동-감지할까요?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "폴더와 자동으로 동기화" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1823,7 +1823,7 @@ msgstr "분기들" msgid "Break" msgstr "중단" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "중단점" @@ -1837,7 +1837,7 @@ msgid "Breakpoints" msgstr "중단점" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1854,7 +1854,7 @@ msgstr "광대역 어댑터 (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "광대역 어댑터 DNS 설정" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1917,9 +1917,9 @@ msgstr "버튼" msgid "Buttons" msgstr "버튼" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " -msgstr "" +msgstr "만든이:" #: Source/Core/Core/HW/GCPadEmu.cpp:69 #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:31 @@ -2072,6 +2072,10 @@ msgstr "카드 크기" msgid "Center" msgstr "중앙" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "중앙과 측정" @@ -2174,7 +2178,7 @@ msgstr "열 파일 선택하기" #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:314 msgid "Choose a file to open or create" -msgstr "" +msgstr "열거나 만들 파일 선택" #: Source/Core/DolphinQt/MenuBar.cpp:1649 msgid "Choose priority input file" @@ -2363,7 +2367,7 @@ msgstr "확정" msgid "Connect" msgstr "연결" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "밸런스 보드 연결" @@ -2375,19 +2379,19 @@ msgstr "USB 키보드 연결" msgid "Connect Wii Remote %1" msgstr "Wii 리모트 %1 연결" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Wii 리모트 1 연결" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Wii 리모트 2 연결" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Wii 리모트 3 연결" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Wii 리모트 4 연결" @@ -2423,7 +2427,7 @@ msgstr "내용 {0:08x} 은 오류입니다." msgid "Continuous Scanning" msgstr "지속적인 스캐닝" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "넷플레이 골프 모드 컨트롤" @@ -2436,19 +2440,19 @@ msgstr "컨트롤 스틱" msgid "Controller Profile" msgstr "컨트롤러 프로파일" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "컨트롤러 프로파일 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "컨트롤러 프로파일 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "컨트롤러 프로파일 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "컨트롤러 프로파일 4" @@ -2529,7 +2533,7 @@ msgstr "수렴:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "변환을 실패하였습니다." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2539,7 +2543,7 @@ msgstr "변환" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "파일을 폴더로 지금 변환" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2549,7 +2553,7 @@ msgstr "파일 변환..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "폴더를 파일로 지금 변환" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -2982,20 +2986,20 @@ msgstr "디코딩 품질:" msgid "Decrease" msgstr "감소" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "수렴 감소" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "깊이 감소" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "에뮬레이션 속도 감소" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "IR 감소" @@ -3049,7 +3053,7 @@ msgid "" msgstr "" "GPU 동기화 명령이 실행될 때까지 EFB 액세스 캐시의 무효화를 연기합니다. 비활성" "화될 시, 해당 캐시는 모든 드로우 콜과 함께 무효화될 것입니다.

안정성" -"을 댓가로 CPU EFB 액세스에 의존하는 일부 게임에서 성능을 향상시킬지도 모릅니" +"을 대가로 CPU EFB 액세스에 의존하는 일부 게임에서 성능을 향상시킬지도 모릅니" "다.

잘 모르겠으면, 체크 해제해 두세요." @@ -3099,9 +3103,9 @@ msgstr "설명" msgid "Description:" msgstr "설명:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " -msgstr "" +msgstr "설명: " #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:182 msgid "Detached" @@ -3202,7 +3206,7 @@ msgstr "복사 필터 비활성" msgid "Disable EFB VRAM Copies" msgstr "EFB 비디오램 복사 비활성" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "에뮬레이션 속도 제한 끄기" @@ -3532,7 +3536,7 @@ msgstr "프레임들 덤프" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "게임큐브 BBA 트래픽을 덤프" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3756,7 +3760,7 @@ msgstr "" "현재: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "에뮬레이션 속도" @@ -3812,7 +3816,7 @@ msgstr "FPRF 활성화" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:76 msgid "Enable Graphics Mods" -msgstr "" +msgstr "그래픽 모드 활성화" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:88 #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:66 @@ -4020,7 +4024,7 @@ msgstr "패스워드 입력" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "사용할 DNS 서버를 입력:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4315,7 +4319,7 @@ msgstr "모든 Wii 저장을 내보내기" msgid "Export Failed" msgstr "내보내기를 실패했습니다" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "입력 기록 내보내기" @@ -4439,7 +4443,7 @@ msgstr "서명 파일 '%1' 에 덧붙이기에 실패했습니다." #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" -msgstr "" +msgstr "블투 패스쓰루용 인터페이스 요청에 실패했습니다: {0}" #: Source/Core/DiscIO/VolumeVerifier.cpp:107 msgid "Failed to connect to Redump.org" @@ -5087,20 +5091,20 @@ msgstr "%n 주소(들)을 발견했습니다." msgid "Frame %1" msgstr "프레임 %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "프레임 진행" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "프레임 진행 속도 감소" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "프레임 진행 속도 증가" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "프레임 진행 속도 리셋" @@ -5160,11 +5164,11 @@ msgstr "" msgid "FreeLook" msgstr "자유보기" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "자유로운 보기" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "자유로운 보기 토글" @@ -5222,7 +5226,7 @@ msgstr "GBA (내장된)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "GBA 코어" @@ -5234,11 +5238,11 @@ msgstr "GBA 포트 %1" msgid "GBA Settings" msgstr "GBA 설정" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "GBA 볼륨" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "GBA 창 크기" @@ -5426,14 +5430,16 @@ msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" +"게임 파일이 다른 해시를 가지고 있습니다; 그걸 우-클릭; 속성 선택, 검증 탭으" +"로 전환, 그리고 해시를 확인하기위해 무결성 검증을 선택하세요." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Game has a different disc number" -msgstr "" +msgstr "게임이 다른 디스크 넘버를 가지고 있습니다" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Game has a different revision" -msgstr "" +msgstr "게임이 다른 개정을 가지고 있습니다" #: Source/Core/Core/NetPlayClient.cpp:1669 msgid "Game is already running!" @@ -5447,7 +5453,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Game region does not match" -msgstr "" +msgstr "게임 지역이 맞지 않습니다" #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:145 msgid "Game-Specific Settings" @@ -5508,14 +5514,14 @@ msgstr "게임큐브 TAS 입력 %1" #: Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp:74 msgid "Gate Size" -msgstr "" +msgstr "게이트 크기" #: Source/Core/DolphinQt/CheatsManager.cpp:91 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:65 msgid "Gecko Codes" msgstr "Gecko 코드" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5559,7 +5565,7 @@ msgstr "독일" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:159 msgid "GetDeviceList failed: {0}" -msgstr "" +msgstr "디바이스목록얻기 실패했음: {0}" #: Source/Core/UICommon/UICommon.cpp:476 msgid "GiB" @@ -5581,16 +5587,16 @@ msgstr "그래픽" #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:67 msgid "Graphics Mods" -msgstr "" +msgstr "그래픽 모드" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "그래픽 토글" #: Source/Core/DolphinQt/Config/GraphicsModWarningWidget.cpp:59 msgid "Graphics mods are currently disabled." -msgstr "" +msgstr "그래픽 모드가 현재 꺼졌습니다." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:311 msgid "" @@ -5768,7 +5774,7 @@ msgstr "호스트명" msgid "Hotkey Settings" msgstr "단축키 설정" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6055,20 +6061,20 @@ msgstr "" msgid "Increase" msgstr "증가" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "수렴 증가" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "깊이 증가" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "에뮬레이션 속도 증가" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "IR 증가" @@ -6094,6 +6100,8 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"가속도계 데이터가 피치 및 롤에 미치는 영향. 값이 높을수록 노이즈를 대가로 드" +"리프트가 감소합니다. 1%와 3% 사이의 값을 고려하십시오." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6216,7 +6224,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "내부 LZO 오류 - lzo_init() 실패했습니다" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6620,7 +6628,7 @@ msgstr "커스텀 텍스처 로드" msgid "Load GameCube Main Menu" msgstr "게임큐브 메인 메뉴 로드" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "마지막 상태 로드" @@ -6629,92 +6637,92 @@ msgstr "마지막 상태 로드" msgid "Load Path:" msgstr "경로 로드:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "롬 로드" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "최근 1 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "최근 10 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "최근 2 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "최근 3 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "최근 4 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "최근 5 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "최근 6 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "최근 7 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "최근 8 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "최근 9 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "슬롯 1 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "슬롯 10 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "슬롯 2 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "슬롯 3 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "슬롯 4 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "슬롯 5 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "슬롯 6 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "슬롯 7 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "슬롯 8 상태 로드" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "슬롯 9 상태 로드" @@ -6738,7 +6746,7 @@ msgstr "Wii 저장 로드" msgid "Load Wii System Menu %1" msgstr "Wii 시스템 메뉴 %1 로드" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "선택된 슬롯에서 로드" @@ -6774,6 +6782,9 @@ msgid "" "Loads graphics mods from User/Load/GraphicsMods/." "

If unsure, leave this unchecked." msgstr "" +"User/Load/GraphicsMods/ 에서 그래픽 모드를 로드합니다." +"

잘 모르겠으면, 체크 해제해 두세요." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 msgid "Local" @@ -7082,7 +7093,7 @@ msgstr "마우스 커서는 게임이 구동되는 동안에 절대로 보이지 msgid "Move" msgstr "이동" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "무비" @@ -7092,11 +7103,13 @@ msgid "" "Movie {0} indicates that it starts from a savestate, but {1} doesn't exist. " "The movie will likely not sync!" msgstr "" +"무비 {0} 는 상태저장에서 시작함을 뜻합니다, 하지만 {1} 가 존재하지 않습니다. " +"해당 무비가 동기화하기 힘들 것입니다!" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "곱하는 수" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7236,8 +7249,8 @@ msgstr "새로운 명령:" msgid "New tag" msgstr "새로운 태그" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "다음 게임 프로파일" @@ -7245,8 +7258,8 @@ msgstr "다음 게임 프로파일" msgid "Next Match" msgstr "다음 일치" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "다음 프로파일" @@ -7321,7 +7334,7 @@ msgstr "이슈가 감지되지 않았습니다." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "No matching game was found" -msgstr "" +msgstr "매칭하는 게임을 찾지 못했습니다" #: Source/Core/Core/Boot/Boot.cpp:110 msgid "No paths found in the M3U file \"{0}\"" @@ -7405,7 +7418,7 @@ msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 msgid "Not found" -msgstr "" +msgstr "발견되지 않음" #: Source/Core/DolphinQt/Config/Mapping/FreeLookRotation.cpp:27 msgid "" @@ -7605,7 +7618,7 @@ msgstr "다른 것들" msgid "Other Partition (%1)" msgstr "다른 파티션 (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "다른 상태 단축키" @@ -7801,7 +7814,7 @@ msgstr " 실행 " msgid "Play / Record" msgstr "재생 / 녹화" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "(입력) 기록 재생" @@ -7887,7 +7900,7 @@ msgstr "" msgid "Presets" msgstr "사전설정" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "동기화 버튼을 누르세요" @@ -7906,11 +7919,12 @@ msgid "" msgstr "" "기다리는 오브젝트들을 렌더링하지 않아서 쉐이더 컴파일 버벅임을 막습니다. 우버" "쉐이더스가 작동하지 않는 시나리오에서 작동할 수 있습니다, 보이는 결함과 망가" -"진 효과들을 보여주는 댓가로 말이죠.

추천되지 않습니" +"진 효과들을 보여주는 대가로 말이죠.

추천되지 않습니" "다, 다른 옵션들이 형편없는 결과를 가져올 때만 사용하세요." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "이전 게임 프로파일" @@ -7918,8 +7932,8 @@ msgstr "이전 게임 프로파일" msgid "Previous Match" msgstr "이전 일치" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "이전 프로파일" @@ -7969,7 +7983,7 @@ msgstr "" msgid "Profile" msgstr "프로파일" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "프로그램 카운터" @@ -8095,7 +8109,7 @@ msgstr "읽기 전용" msgid "Read or Write" msgstr "읽거나 쓰기" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "읽기-전용 모드" @@ -8292,7 +8306,7 @@ msgid "Request to Join Your Party" msgstr "당신의 파티로 참여 요청" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8483,7 +8497,7 @@ msgstr "SD 카드 경로:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "SD 카드 설정" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8491,7 +8505,7 @@ msgstr "SD 루트:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "SD 동기화 폴더:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8571,7 +8585,7 @@ msgstr "게임 저장 파일들 (*.sav);;모든 파일들 (*)" msgid "Save Import" msgstr "저장 가져오기" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "가장 오래된 상태 저장" @@ -8583,49 +8597,49 @@ msgstr "프리셋 저장" msgid "Save Recording File As" msgstr "녹화 파일을 다른 이름으로 저장" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "슬롯 1 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "슬롯 10 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "슬롯 2 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "슬롯 3 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "슬롯 4 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "슬롯 5 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "슬롯 6 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "슬롯 7 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "슬롯 8 상태 저장" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "슬롯 9 상태 저장" @@ -8691,7 +8705,7 @@ msgstr "맵 파일 저장" msgid "Save signature file" msgstr "서명 파일 저장" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "선택된 슬롯에 저장" @@ -8835,7 +8849,7 @@ msgstr "Riivolution XML 파일 선택" msgid "Select Slot %1 - %2" msgstr "슬롯 %1 - %2 선택" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "상태 선택" @@ -8843,43 +8857,43 @@ msgstr "상태 선택" msgid "Select State Slot" msgstr "상태 슬롯 선택" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "상태 슬롯 1 선택" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "상태 슬롯 10 선택" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "상태 슬롯 2 선택" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "상태 슬롯 3 선택" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "상태 슬롯 4 선택" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "상태 슬롯 5 선택" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "상태 슬롯 6 선택" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "상태 슬롯 7 선택" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "상태 슬롯 8 선택" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "상태 슬롯 9 선택" @@ -8907,7 +8921,7 @@ msgstr "파일 선택" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "SD 카드 이미지와 동기화할 폴더를 선택하세요" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9106,7 +9120,7 @@ msgid "Set &blr" msgstr "blr 설정(&b)" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "PC 설정" @@ -9308,7 +9322,7 @@ msgid "Show PAL" msgstr "PAL (유럽 방식)" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "PC 보기" @@ -9371,12 +9385,12 @@ msgstr "메모리로 보기 (&m)" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:359 msgid "Show in Code" -msgstr "" +msgstr "코드로 보기" #: Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp:376 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:313 msgid "Show in Memory" -msgstr "" +msgstr "메모리로 보기" #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:842 msgid "Show in code" @@ -9384,7 +9398,7 @@ msgstr "코드로 보기" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:456 msgid "Show in memory" -msgstr "" +msgstr "메모리로 보기" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:139 msgid "Show in server browser" @@ -9503,7 +9517,7 @@ msgstr "" "밀리세컨드 단위의 늘림 버퍼 크기. 값이 너무 낮으면 오디오 지직거림을 일으킬" "지 모릅니다." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "스킵" @@ -9694,7 +9708,7 @@ msgstr "새로운 치트 검색 시작" msgid "Start Re&cording Input" msgstr "입력 기록 시작(&c)" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9735,19 +9749,19 @@ msgstr "스텝" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "스텝 들어가기" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "스텝 나가기" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "스텝 넘어가기" @@ -9767,7 +9781,7 @@ msgstr "스텝 넘어가기 진행 중..." msgid "Step successful!" msgstr "스텝 성공!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "스텝핑" @@ -10058,7 +10072,7 @@ msgstr "" msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." -msgstr "" +msgstr "시작과 끝내기 에뮬레이션 때 SD 동기화 폴더와 SD 카드를 동기화합니다." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10114,7 +10128,7 @@ msgstr "스크린샷 찍기" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:638 msgid "Target address range is invalid." -msgstr "" +msgstr "대상 주소 범위가 부적합합니다." #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:244 msgid "Test" @@ -10306,6 +10320,9 @@ msgid "" "cards. Please rename this file to either %2, %3, or %4, matching the region " "of the save files that are on it." msgstr "" +"파일이름 %1 가 메모리 카드용 돌핀 지역 코드 포멧과 맞지 않습니다. 거기에 있" +"는 저장 파일의 지역과 일치하도록 이 파일을 %2, %3, 혹은 %4 로 이름을 바꿔주" +"세요." #: Source/Core/DiscIO/VolumeVerifier.cpp:412 msgid "The filesystem is invalid or could not be read." @@ -10574,11 +10591,13 @@ msgstr "" "이 액션 리플레이 시뮬레이터는 액션 리플레이 스스로 수정한 코드를 지원하지 않" "습니다." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." msgstr "" +"이 돌핀 빌드는 본래 당신의 CPU 용으로 컴파일되어 있지 않습니다.\n" +"더 나은 경험을 위해 돌핀의 ARM64 빌드를 구동하세요." #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:253 #: Source/Core/DolphinQt/GameList/GameList.cpp:814 @@ -10717,7 +10736,7 @@ msgstr "이 타이틀은 부적합 IOS 를 사용하도록 설정되어 있습 msgid "This title is set to use an invalid common key." msgstr "이 타이틀은 부적합 공유 키를 사용하도록 설정되어 있습니다." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10729,7 +10748,7 @@ msgstr "" "\n" "DSPHLE: 알려지지 않은 ucode (CRC = {0:08x}) - 강제 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10820,15 +10839,15 @@ msgstr "까지:" msgid "Toggle &Fullscreen" msgstr "전체화면 토글(&F)" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "3D 애너글리프 토글" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "3D 사이드-바이-사이드 토글" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "3D 탑-바텀 토글" @@ -10836,28 +10855,28 @@ msgstr "3D 탑-바텀 토글" msgid "Toggle All Log Types" msgstr "모든 로그 타입 토글" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "종횡비 토글" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "중단점 토글" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "자르기 토글" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "사용자 지정 텍스처 토글" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB 복사 토글" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "안개 토글" @@ -10869,27 +10888,27 @@ msgstr "전체화면 토글" msgid "Toggle Pause" msgstr "일시정지 토글" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "SD 카드 토글" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "EFB 엑세스 스킵 토글" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "텍스처 덤핑 토글" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "USB 키보드 토글" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "XFB 복사 토글" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "XFB 즉시 모드 토글" @@ -11040,7 +11059,7 @@ msgid "" "

Don't use this unless you encountered stuttering " "with Hybrid Ubershaders and have a very powerful GPU." msgstr "" -"우버 쉐이더가 항상 사용될 것입니다. 매우 높은 GPU 성능 요구를 댓가로 거의 버" +"우버 쉐이더가 항상 사용될 것입니다. 매우 높은 GPU 성능 요구를 대가로 거의 버" "벅임 없는 경험을 제공합니다.

하이브리드 우버쉐이더" "로 버벅임을 겪었고 매우 강력한 GPU를 가지고 있지 않다면 이것을 사용하지 마세" "요." @@ -11106,11 +11125,11 @@ msgstr "풀림" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "압축풀린 GC/Wii 이미지들 (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "상태 로드 되돌리기" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "상태 저장 되돌리기" @@ -11214,7 +11233,7 @@ msgstr "" msgid "Unlimited" msgstr "무제한" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "롬 언로드" @@ -11319,7 +11338,7 @@ msgstr "사용 통계 보고 설정" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" -msgstr "" +msgstr "일반 DNS 용 8.8.8.8 을 사용합니다, 아니면 원하는 서버를 넣으세요." #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11360,7 +11379,7 @@ msgstr "" "활성화는 특별한 경우들 (1x 내장 해상도나 스케일된 EFB 가 비활성화되었을 때, " "그러면서 커스텀 텍스처들이 비활성화로)을 감싸는 텍스처의 정확한 에뮬과 더 나" "은 세밀한 레블 계산 에뮬을 허용할 것입니다.

이것은 잠재적으로 최악의 " -"성능을 댓가로합니다, 특히 더 높은 내장 해상도들에서; 또한, 비등방성 필터링은 " +"성능을 대가로합니다, 특히 더 높은 내장 해상도들에서; 또한, 비등방성 필터링은 " "현재 수동 텍스처 샘플링과 호환이 않됩니다.

잘 모르겠" "으면, 체크 해제해 두세요." @@ -11533,7 +11552,7 @@ msgstr "검증" #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 msgid "Verify Integrity" -msgstr "강도 검증" +msgstr "무결성 검증" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:390 msgid "Verify certificates" @@ -11585,22 +11604,22 @@ msgstr "가상 노치" msgid "Virtual address space" msgstr "가상 주소 공간" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "볼륨" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "볼륨 감소" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "볼륨 음소거 토글" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "볼륨 증가" @@ -11689,7 +11708,7 @@ msgid "" msgstr "" "게임을 시작하기 전에 모든 쉐이더들이 컴파일을 끝내도록 기다립니다. 이 옵션을 " "활성화하면 게임이 시작된 후에 짧은 시간동안 버벅거리거나 잠시 멈추는 것을 줄" -"일지도 모릅니다, 게임 시작전 더 긴 지연을 댓가로 말이죠. 두 개 이하의 코어를 " +"일지도 모릅니다, 게임 시작전 더 긴 지연을 대가로 말이죠. 두 개 이하의 코어를 " "지닌 시스템이라면, 이 옵션 활성이 권장됩니다, 큰 쉐이더 큐가 프레임률을 줄일" "지도 모르기 때문입니다.

그렇지 않고, 잘 모르겠으" "면, 체크 해제해 두세요." @@ -11861,7 +11880,7 @@ msgstr "와이트리스트된 USB 패스쓰루 장치들" msgid "Widescreen Hack" msgstr "와이드스크린 핵" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -11996,19 +12015,19 @@ msgstr "창에 쓰기" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 msgid "Wrong disc number" -msgstr "" +msgstr "잘못된 디스크 넘버" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 msgid "Wrong hash" -msgstr "" +msgstr "잘못된 해시" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 msgid "Wrong region" -msgstr "" +msgstr "잘못된 지역" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 msgid "Wrong revision" -msgstr "" +msgstr "잘못된 개정" #. i18n: Refers to a 3D axis (used when mapping motion controls) #: Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp:109 @@ -12061,6 +12080,8 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"%2 에 있는 파일의 내용을 %1 에 있는 폴더로 변환하려 합니다. 모든 현재 폴더의 " +"내용이 삭제됩니다. 정말 계속 하시겠습니까?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12068,6 +12089,8 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"%1 에 있는 폴더의 내용을 %2 에 있는 파일로 변환하려 합니다. 모든 현재 파일의 " +"내용이 삭제됩니다. 정말 계속 하시겠습니까?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 34f7cbffa5..8407ead860 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -727,12 +727,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -765,19 +765,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Kedalaman 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -797,7 +797,7 @@ msgstr "" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1051,7 +1051,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1102,11 +1102,11 @@ msgstr "Tambah Peranti USB Baharu" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Tambah satu Titik Henti" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Tambah Titik Henti Ingatan" @@ -1754,7 +1754,7 @@ msgstr "" msgid "Break" msgstr "Henti" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Titik Henti" @@ -1768,7 +1768,7 @@ msgid "Breakpoints" msgstr "Titik Henti" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1846,7 +1846,7 @@ msgstr "Butang" msgid "Buttons" msgstr "Butang" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1994,6 +1994,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2277,7 +2281,7 @@ msgstr "Pengesahan" msgid "Connect" msgstr "Sambung" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Sambung Papan Imbang" @@ -2289,19 +2293,19 @@ msgstr "Sambung Papan Kekunci USB" msgid "Connect Wii Remote %1" msgstr "Sambung Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Sambung Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Sambung Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Sambung Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Sambung Wii Remote 4" @@ -2337,7 +2341,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Pengimbasan Berterusan" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2350,19 +2354,19 @@ msgstr "Bidak Kawalan" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2845,20 +2849,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Kurangkan Ketumpuan" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Kurangkan Kedalaman" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Kurangkan Kelajuan Emulasi" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Kurangkan IR" @@ -2957,7 +2961,7 @@ msgstr "Keterangan" msgid "Description:" msgstr "Keterangan:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3054,7 +3058,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Lumpuhkan Had Kelajuan Emulasi" @@ -3558,7 +3562,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Kelajuan Emulasi" @@ -4070,7 +4074,7 @@ msgstr "Eskport Semua Simpan Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Eksport Rakaman" @@ -4792,20 +4796,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Bingkai Lanjutan" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Bingkai Lanjutan Kurangkan Kelajuan" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Bingkai Lanjutan Tingkatkan Kelajuan" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Bingkai Lanjutan Tetap Semula Kelajuan" @@ -4862,11 +4866,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Freelook" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4924,7 +4928,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4936,11 +4940,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5188,7 +5192,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Kod Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5256,7 +5260,7 @@ msgstr "Grafik" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Togol Grafik" @@ -5433,7 +5437,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Tetapan Kekunci Panas" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5673,20 +5677,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Tingkatkan Ketumpuan" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Tingkatkan Kedalaman" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Tingkatkan Kelajuan Emulasi" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Tingkatkan IR" @@ -5832,7 +5836,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Ralat LZO Dalaman - lzo_init() gagal" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6228,7 +6232,7 @@ msgstr "Muat Tekstur Suai" msgid "Load GameCube Main Menu" msgstr "Muat Menu Utama GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Muat Keadaan Terakhir" @@ -6237,92 +6241,92 @@ msgstr "Muat Keadaan Terakhir" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Muat Keadaan" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Muat Keadaan 1 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Muat Keadaan 10 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Muat Keadaan 2 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Muat Keadaan 3 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Muat Keadaan 4 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Muat Keadaan 5 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Muat Keadaan 6 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Muat Keadaan 7 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Muat Keadaan 8 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Muat Keadaan 9 Terakhir" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Muat Slot Keadaan 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Muat Slot Keadaan 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Muat Slot Keadaan 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Muat Slot Keadaan 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Muat Slot Keadaan 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Muat Slot Keadaan 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Muat Slot Keadaan 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Muat Slot Keadaan 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Muat Slot Keadaan 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Muat Slot Keadaan 9" @@ -6346,7 +6350,7 @@ msgstr "Muat Simpan Wii" msgid "Load Wii System Menu %1" msgstr "Muat Menu Sistem Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Muat dari Slot Terpilih" @@ -6671,7 +6675,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Cereka" @@ -6825,8 +6829,8 @@ msgstr "Arahan baharu:" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6834,8 +6838,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7185,7 +7189,7 @@ msgstr "Lain-lain" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Kekunci Panas Keadaan Lain" @@ -7381,7 +7385,7 @@ msgstr "Main" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Main Rakaman" @@ -7469,7 +7473,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Tekan Butang Segerak" @@ -7487,8 +7491,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7496,8 +7501,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7541,7 +7546,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Kiraan Program" @@ -7667,7 +7672,7 @@ msgstr "Baca sahaja" msgid "Read or Write" msgstr "Baca atau Tulis" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Mod Baca-Sahaja" @@ -7853,7 +7858,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8128,7 +8133,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Simpan Keadaan Terlama" @@ -8140,49 +8145,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Simpan Keadaan" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Simpan Slot Keadaan 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Simpan Slot Keadaan 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Simpan Slot Keadaan 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Simpan Slot Keadaan 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Simpan Slot Keadaan 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Simpan Slot Keadaan 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Simpan Slot Keadaan 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Simpan Slot Keadaan 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Simpan Slot Keadaan 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Simpan Slot Keadaan 9" @@ -8245,7 +8250,7 @@ msgstr "Simpan fail peta" msgid "Save signature file" msgstr "Simpan fail tandatangan" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Simpan ke Slot Terpilih" @@ -8389,7 +8394,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Pilih Slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Pilih Keadaan" @@ -8397,43 +8402,43 @@ msgstr "Pilih Keadaan" msgid "Select State Slot" msgstr "Pilih Slot Keadaan" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Pilih Slot Keadaan 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Pilih Slot Keadaan 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Pilih Slot Keadaan 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Pilih Slot Keadaan 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Pilih Slot Keadaan 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Pilih Slot Keadaan 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Pilih Slot Keadaan 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Pilih Slot Keadaan 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Pilih Slot Keadaan 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Pilih Slot Keadaan 9" @@ -8629,7 +8634,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Tetapkan PC" @@ -8825,7 +8830,7 @@ msgid "Show PAL" msgstr "Tunjuk PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Tunjuk PC" @@ -9007,7 +9012,7 @@ msgstr "" "Saiz regang penimbal dalam milisaat. Nilai terlalu rendah boleh menyebabkan " "keretakan audio." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Langkau" @@ -9182,7 +9187,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "Mula Me&rakam Input" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9223,19 +9228,19 @@ msgstr "Langkah" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Langkah Masuk" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Langkah Keluar" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Langkah Melalui" @@ -9255,7 +9260,7 @@ msgstr "Langkah atas masih berjalan..." msgid "Step successful!" msgstr "Langkah berjaya!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Melangkah" @@ -10005,7 +10010,7 @@ msgstr "" "Simulatro action replay ini tidak menyokong kod yang mana Action Replay yang " "sendiri mengubahsuai." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10127,7 +10132,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10135,7 +10140,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10219,15 +10224,15 @@ msgstr "Ke:" msgid "Toggle &Fullscreen" msgstr "Togol &Skrin Penuh" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Togol Anaglif 3D" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Togol 3D Sebelah-Menyebelah" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Togol 3D Atas-Bawah" @@ -10235,28 +10240,28 @@ msgstr "Togol 3D Atas-Bawah" msgid "Toggle All Log Types" msgstr "Togol Sema Jenis Log" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Togol Nisbah Bidang" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Togol Titik Henti" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Togol Kerat" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Togol Tekstur Suai" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Togol Salinan EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Togol Kabus" @@ -10268,27 +10273,27 @@ msgstr "Togol Skrin Penuh" msgid "Toggle Pause" msgstr "Togol Jeda" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Togol Pelonggokan Tekstur" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Togol Salinan XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Togol Mod Serta-Merta XFB" @@ -10487,11 +10492,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Imej GC/Wii Tak Mampat (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Buat Asal Muat Keadaan" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Buat Asal Keadaan Simpan" @@ -10590,7 +10595,7 @@ msgstr "" msgid "Unlimited" msgstr "Tanpa had" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10923,22 +10928,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volum" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Volum Turun" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Volum Togol Senyap" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Volum Naik" @@ -11141,7 +11146,7 @@ msgstr "Peranti Menerusi USB Senarai Putih" msgid "Widescreen Hack" msgstr "Skrin Lebar Godam" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index a54dd97efa..0b94436f67 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -746,12 +746,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -784,19 +784,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D-dybde" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -816,7 +816,7 @@ msgstr "4 Mbit (59 blokker)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1084,7 +1084,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Aktiver NetPlay-chat" @@ -1135,11 +1135,11 @@ msgstr "Legg til ny USB-enhet" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Legg til et Stoppunkt" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Legg til et MinneStoppunkt" @@ -1790,7 +1790,7 @@ msgstr "Grener" msgid "Break" msgstr "Stopp" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Stoppunkt" @@ -1804,7 +1804,7 @@ msgid "Breakpoints" msgstr "Stoppunkter" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1882,7 +1882,7 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knapper" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2030,6 +2030,10 @@ msgstr "Kortstørrelse" msgid "Center" msgstr "I midten" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Sentrer og kalibrer" @@ -2314,7 +2318,7 @@ msgstr "Bekreftelse" msgid "Connect" msgstr "Koble til" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Koble til balansebrett" @@ -2326,19 +2330,19 @@ msgstr "Koble til USB-tastatur" msgid "Connect Wii Remote %1" msgstr "Koble til Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Koble til Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Koble til Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Koble til Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Koble til Wii Remote 4" @@ -2374,7 +2378,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Kontinuerlig skanning" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Kontroller NetPlay-golfmodus" @@ -2387,19 +2391,19 @@ msgstr "Sirkel-joystick" msgid "Controller Profile" msgstr "Kontrollerprofil" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Kontrollerprofil 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Kontrollerprofil 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Kontrollerprofil 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Kontrollerprofil 4" @@ -2888,20 +2892,20 @@ msgstr "Dekodingskvalitet:" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Reduser konvergens" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Reduser dybde" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Senk emuleringshastighet" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Reduser IR" @@ -3000,7 +3004,7 @@ msgstr "Beskrivelse" msgid "Description:" msgstr "Beskrivelse:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3097,7 +3101,7 @@ msgstr "Slå av Kopieringsfilter" msgid "Disable EFB VRAM Copies" msgstr "Slå av EFB VRAM Kopier" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Skru av hastighetsbegrensning av emulering" @@ -3602,7 +3606,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Emuleringshastighet" @@ -4115,7 +4119,7 @@ msgstr "Eksporter alle Wii-lagringsfiler" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Eksporter opptak" @@ -4847,20 +4851,20 @@ msgstr "" msgid "Frame %1" msgstr "Bilde %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Bilde-for-bilde-modus" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Senk hastighet for bildeforskuddsvisning" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Øk hastighet for bildeforskuddsvisning" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Tilbakestill bilde-for-bilde-hastighet" @@ -4917,11 +4921,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Fri-sikt" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Frisikts-veksling" @@ -4979,7 +4983,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4991,11 +4995,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5243,7 +5247,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko-juksekoder" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5311,7 +5315,7 @@ msgstr "Grafikk" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafikkbrytere" @@ -5488,7 +5492,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Tastesnarveis-innstillinger" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5727,20 +5731,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Øk konvergens" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Øk dybde" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Øk emuleringshastighet" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Øk IR" @@ -5886,7 +5890,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-feil - lzo_init() mislyktes" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6286,7 +6290,7 @@ msgstr "Last inn brukerlagde teksturer" msgid "Load GameCube Main Menu" msgstr "Last inn GameCube-hovedmeny" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Last inn nyeste hurtiglagring" @@ -6295,92 +6299,92 @@ msgstr "Last inn nyeste hurtiglagring" msgid "Load Path:" msgstr "Innlastingsfilbane:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Last inn hurtiglagring" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Last inn hurtiglagring siste 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Last inn hurtiglagring siste 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Last inn hurtiglagring siste 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Last inn hurtiglagring siste 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Last inn hurtiglagring siste 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Last inn hurtiglagring siste 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Last inn hurtiglagring siste 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Last inn hurtiglagring siste 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Last inn hurtiglagring siste 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Last inn hurtiglagring siste 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Åpne hurtiglagringsplass nr. 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Åpne hurtiglagringsplass nr. 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Åpne hurtiglagringsplass nr. 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Åpne hurtiglagringsplass nr. 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Åpne hurtiglagringsplass nr. 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Åpne hurtiglagringsplass nr. 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Åpne hurtiglagringsplass nr. 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Åpne hurtiglagringsplass nr. 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Åpne hurtiglagringsplass nr. 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Åpne hurtiglagringsplass nr. 9" @@ -6404,7 +6408,7 @@ msgstr "Last inn Wii-lagringsfil" msgid "Load Wii System Menu %1" msgstr "Last inn Wii-systemmeny %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Last fra valgt kortplass" @@ -6729,7 +6733,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Film" @@ -6885,8 +6889,8 @@ msgstr "Ny instruksjon:" msgid "New tag" msgstr "Ny etikett" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Neste spillprofil" @@ -6894,8 +6898,8 @@ msgstr "Neste spillprofil" msgid "Next Match" msgstr "Neste treff" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Neste profil" @@ -7250,7 +7254,7 @@ msgstr "Andre" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Andre Status-hurtigtaster" @@ -7447,7 +7451,7 @@ msgstr "Spill av" msgid "Play / Record" msgstr "Spill/Ta opp" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Spill av opptak" @@ -7534,7 +7538,7 @@ msgstr "" msgid "Presets" msgstr "Forhåndsinnstillinger" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Trykk Synkroniseringsknapp" @@ -7552,8 +7556,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Forrige spillprofil" @@ -7561,8 +7566,8 @@ msgstr "Forrige spillprofil" msgid "Previous Match" msgstr "Forrige spill" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Forrige profil" @@ -7612,7 +7617,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Programteller" @@ -7738,7 +7743,7 @@ msgstr "Kun skrivebeskyttet" msgid "Read or Write" msgstr "Les eller skriv" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Skrivebeskyttet modus" @@ -7924,7 +7929,7 @@ msgid "Request to Join Your Party" msgstr "Forespørsel om å bli med i din gruppe" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8199,7 +8204,7 @@ msgstr "" msgid "Save Import" msgstr "Lagre import" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Lagre eldste hurtiglagring" @@ -8211,49 +8216,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Lagre hurtiglagring" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Hurtiglagringsplass nr. 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Hurtiglagringsplass nr. 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Hurtiglagringsplass nr. 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Hurtiglagringsplass nr. 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Hurtiglagringsplass nr. 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Hurtiglagringsplass nr. 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Hurtiglagringsplass nr. 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Hurtiglagringsplass nr. 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Hurtiglagringsplass nr. 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Hurtiglagringsplass nr. 9" @@ -8319,7 +8324,7 @@ msgstr "Lagre kartfil" msgid "Save signature file" msgstr "Lagre signaturfil" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Lagre til valgt kortplass" @@ -8463,7 +8468,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Velg inngang %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Velg tilstand" @@ -8471,43 +8476,43 @@ msgstr "Velg tilstand" msgid "Select State Slot" msgstr "Velg kortplass for lagringsstadie" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Velg lagringsstadieplass 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Velg lagringsstadieplass 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Velg lagringsstadieplass 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Velg lagringsstadieplass 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Velg lagringsstadieplass 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Velg lagringsstadieplass 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Velg lagringsstadieplass 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Velg lagringsstadieplass 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Velg lagringsstadieplass 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Velg lagringsstadieplass 9" @@ -8703,7 +8708,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Sett programteller" @@ -8901,7 +8906,7 @@ msgid "Show PAL" msgstr "Vis PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Vis PC" @@ -9083,7 +9088,7 @@ msgstr "" "Størrelse på strekkehurtilagringsbufferen i millisekunder. For lave verdier " "kan forårsake lydknaking." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Hopp over" @@ -9260,7 +9265,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "Start inn&dataopptak" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9301,19 +9306,19 @@ msgstr "Steg" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Stepp Inn i" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Stepp ut" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Stepp over" @@ -9333,7 +9338,7 @@ msgstr "Stepper over..." msgid "Step successful!" msgstr "Stepp vellykket!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Stepper" @@ -10100,7 +10105,7 @@ msgstr "" "Denne Action Replay-simulatoren støtter ikke koder som modifiserer selve " "Action Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10241,7 +10246,7 @@ msgstr "Tittelen er satt til en ugyldig IOS." msgid "This title is set to use an invalid common key." msgstr "Tittelen er satt til å bruke en ugyldig fellesnøkkel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10249,7 +10254,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10334,15 +10339,15 @@ msgstr "Til:" msgid "Toggle &Fullscreen" msgstr "Bruk &fullskjerm" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Veksle 3D Anaglyph" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Veksle 3D side-ved-side" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Veksle 3D topp-bunn" @@ -10350,28 +10355,28 @@ msgstr "Veksle 3D topp-bunn" msgid "Toggle All Log Types" msgstr "Bytt alle loggtypene" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Skift bildestørrelse" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Slå av/på stoppunkt" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Veksle krumningsinnstilling" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Veksle Brukerteksturer" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Slå på EFB-kopi" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Slå på tåke" @@ -10383,27 +10388,27 @@ msgstr "Bytt mellom fullskjermspilling eller vinduspilling" msgid "Toggle Pause" msgstr "Slå av/på pause" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Veksle SD-kort" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Veksle teksturdumping" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Bruk USB-tastatur" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Veksle XFB-Kopier" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Veksle XFB Øyeblikkelig Modus" @@ -10608,11 +10613,11 @@ msgstr "Ikke bundet" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Ukomprimerte GC/Wii bildefiler (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Angre åpning av hurtiglagring" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Angre hurtiglagring" @@ -10711,7 +10716,7 @@ msgstr "" msgid "Unlimited" msgstr "Ubegrenset" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -11042,22 +11047,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volum" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Volum ned" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Demp/avdemp lydstyrke" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Volum opp" @@ -11262,7 +11267,7 @@ msgstr "Hvitelistede USB-gjennomstrømmingsenheter" msgid "Widescreen Hack" msgstr "Bredskjermshack" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 3d57701a72..757bd29cec 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -14,9 +14,9 @@ # MADCreations , 2011 # Marinus Schot , 2013 # Martin Dierikx, 2022 -# Mike van der Kuijl , 2019-2020 -# Mike van der Kuijl , 2020-2022 -# Mike van der Kuijl , 2021 +# Miksel12 , 2019-2020 +# Miksel12 , 2020-2022 +# Miksel12 , 2021-2022 # Mourits Pvllen , 2014 # Pierre Bourdon , 2014 # Simon Mariën, 2022 @@ -27,9 +27,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Mike van der Kuijl , 2020-2022\n" +"Last-Translator: Miksel12 , 2021-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" "nl/)\n" "Language: nl\n" @@ -755,12 +755,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -793,19 +793,19 @@ msgid "32-bit Unsigned Integer" msgstr "32-bit Unsigned Integer" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D diepte" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -825,7 +825,7 @@ msgstr "4 Mbit (59 blokken)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1030,7 +1030,7 @@ msgstr "Versnellingsmeter" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "Versnellingsmeter Invloed" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1121,7 +1121,7 @@ msgstr "Action Replay: Normal Code 0: Onjuist Subtype {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Normal Code {1}: Onjuist Subtype {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Activeer NetPlay Chat" @@ -1172,11 +1172,11 @@ msgstr "Nieuw USB Apparaat Toevoegen" msgid "Add Shortcut to Desktop" msgstr "Voeg Snelkoppeling toe aan Bureaublad" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Voeg een Breakpoint Toe" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Voeg Een Geheugen Breakpoint Toe" @@ -1607,7 +1607,7 @@ msgstr "Auto-detect RSO module?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "Automatisch Synchroniseren met Map" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1848,7 +1848,7 @@ msgstr "Branches" msgid "Break" msgstr "Afbreken" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Breakpoint" @@ -1862,7 +1862,7 @@ msgid "Breakpoints" msgstr "Breekpunten" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1879,7 +1879,7 @@ msgstr "Breedband Adapter (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "Breedband Adapter DNS instellingen" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1943,7 +1943,7 @@ msgstr "Knop" msgid "Buttons" msgstr "Knoppen" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "Door:" @@ -2101,6 +2101,10 @@ msgstr "Kaartgrootte" msgid "Center" msgstr "Middelpunt" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centreer en Kalibreer" @@ -2395,7 +2399,7 @@ msgstr "Bevestiging" msgid "Connect" msgstr "Verbind" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Verbind Balance Board" @@ -2407,19 +2411,19 @@ msgstr "Verbind USB Toetsenbord" msgid "Connect Wii Remote %1" msgstr "Verbind Wii-afstandsbediening %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Verbind Wii-afstandsbediening 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Verbind Wii-afstandsbediening 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Verbind Wii-afstandsbediening 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Verbind Wii-afstandsbediening 4" @@ -2455,7 +2459,7 @@ msgstr "Inhoud {0:08x} is beschadigd." msgid "Continuous Scanning" msgstr "Continu Scannen" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Bedien NetPlay Golf Modus" @@ -2468,19 +2472,19 @@ msgstr "Control Stick" msgid "Controller Profile" msgstr "Controllerprofiel" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Controllerprofiel 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Controllerprofiel 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Controllerprofiel 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Controllerprofiel 4" @@ -2563,7 +2567,7 @@ msgstr "Convergentie:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "Conversie mislukt." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2573,7 +2577,7 @@ msgstr "Converteer" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "Converteer Bestand Nu naar Map" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2583,7 +2587,7 @@ msgstr "Converteer Bestand..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "Converteer Map Nu naar Bestand" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -3023,20 +3027,20 @@ msgstr "Decoding Kwaliteit:" msgid "Decrease" msgstr "Verlaag" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Verlaag Convergentie" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Verlaag Diepte" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Verlaag Emulatiesnelheid" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Verlaag IR" @@ -3141,7 +3145,7 @@ msgstr "Beschrijving" msgid "Description:" msgstr "Beschrijving:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "Beschrijving:" @@ -3244,7 +3248,7 @@ msgstr "Schakel Kopieerfilter uit" msgid "Disable EFB VRAM Copies" msgstr "Schakel EFB VRAM Kopieën uit" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Schakel Emulatie Snelheidslimit uit" @@ -3580,7 +3584,7 @@ msgstr "Dump Frames" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "Dump GameCube BBA verkeer" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3804,7 +3808,7 @@ msgstr "" "Huidig: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Emulatiesnelheid" @@ -4076,7 +4080,7 @@ msgstr "Voer wachtwoord in" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "Voer de te gebruiken DNS-server in:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4376,7 +4380,7 @@ msgstr "Exporteer alle Wii Saves" msgid "Export Failed" msgstr "Exporteren Mislukt" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exporteer Opname" @@ -4745,7 +4749,7 @@ msgstr "" #: Source/Core/DiscIO/VolumeVerifier.cpp:219 #: Source/Core/DiscIO/VolumeVerifier.cpp:317 msgid "Failed to parse Redump.org data" -msgstr "Ontleden van Redump.org gegevens mislukt" +msgstr "Ontleden van Redump.org data mislukt" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:285 msgid "Failed to parse given value into target data type." @@ -5158,20 +5162,20 @@ msgstr "%n adres(sen) gevonden." msgid "Frame %1" msgstr "Frame %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Frame Voorwaarts" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Frame Voorwaarts Verlaag Snelheid" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Frame Vordering Verhoog Snelheid" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Frame Voorwaarts Reset Snelheid" @@ -5232,11 +5236,11 @@ msgstr "" msgid "FreeLook" msgstr "Vrije-Kijk" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Vrije-Kijk" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Vrije-Kijk Schakelaar" @@ -5294,7 +5298,7 @@ msgstr "GBA (Geïntegreerd)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "GBA Kern" @@ -5306,11 +5310,11 @@ msgstr "GBA Port %1" msgid "GBA Settings" msgstr "GBA Instellingen" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "GBA Volume" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "GBA Venster Grootte" @@ -5590,7 +5594,7 @@ msgstr "Stickbereik Grootte" msgid "Gecko Codes" msgstr "Gecko Codes" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5658,7 +5662,7 @@ msgstr "Grafisch" msgid "Graphics Mods" msgstr "Grafische Mods" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Graphics Schakelaars" @@ -5845,7 +5849,7 @@ msgstr "Hostnaam" msgid "Hotkey Settings" msgstr "Sneltoets Instellingen" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6139,20 +6143,20 @@ msgstr "" msgid "Increase" msgstr "Verhoog" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Verhoog Convergentie" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Verhoog Diepte" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Verhoog Emulatiesnelheid" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Verhoog IR" @@ -6178,6 +6182,8 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"Invloed van versnellingsmeterdata op pitch en rol. Hogere waarden " +"verminderen drift ten koste van ruis. Overweeg waarden tussen 1% en 3%." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6300,7 +6306,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Interne LZO fout - lzo_init() is mislukt" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6706,7 +6712,7 @@ msgstr "Laad Aangepaste Textures" msgid "Load GameCube Main Menu" msgstr "Laad GameCube Hoofdmenu" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Laad Laatste State" @@ -6715,92 +6721,92 @@ msgstr "Laad Laatste State" msgid "Load Path:" msgstr "Laad pad:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Laad ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Laad State" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Laad Laatste State 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Laad Laatste State 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Laad Laatste State 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Laad Laatste State 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Laad Laatste State 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Laad Laatste State 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Laad Laatste State 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Laad Laatste State 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Laad Laatste State 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Laad Laatste State 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Laad State Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Laad State Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Laad State Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Laad State Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Laad State Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Laad State Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Laad State Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Laad State Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Laad State Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Laad State Slot 9" @@ -6824,7 +6830,7 @@ msgstr "Laad Wii Save" msgid "Load Wii System Menu %1" msgstr "Laad Wii Hoofdmenu %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Laden van Geselecteerde Slot" @@ -7175,7 +7181,7 @@ msgstr "Muis Cursor zal onzichtbaar zijn terwijl een spel draait." msgid "Move" msgstr "Verplaats" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Opname" @@ -7191,7 +7197,7 @@ msgstr "" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "Vermenigvuldiger" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7333,8 +7339,8 @@ msgstr "Nieuwe instructie:" msgid "New tag" msgstr "Nieuwe tag" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Volgend Spel Profiel" @@ -7342,8 +7348,8 @@ msgstr "Volgend Spel Profiel" msgid "Next Match" msgstr "Volgende Overeenkomst" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Volgend Profiel" @@ -7704,7 +7710,7 @@ msgstr "Overige" msgid "Other Partition (%1)" msgstr "Andere Partitie (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Overige State Sneltoetsen" @@ -7900,7 +7906,7 @@ msgstr "Speel" msgid "Play / Record" msgstr "Afspelen / Opnemen" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Speel Opname" @@ -7989,7 +7995,7 @@ msgstr "" msgid "Presets" msgstr "Voorinstellingen" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Druk Op Sync Knop" @@ -8012,8 +8018,9 @@ msgstr "" "

Niet aanbevolen, gebruik alleen als de andere " "opties slechte resultaten opleveren." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Vorig Spel Profiel" @@ -8021,8 +8028,8 @@ msgstr "Vorig Spel Profiel" msgid "Previous Match" msgstr "Vorige Overeenkomst" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Vorig Profiel" @@ -8072,7 +8079,7 @@ msgstr "" msgid "Profile" msgstr "Profiel" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Programmateller" @@ -8199,7 +8206,7 @@ msgstr "Alleen lezen" msgid "Read or Write" msgstr "Lezen of Schrijven" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Alleen-Lezen Modus" @@ -8398,7 +8405,7 @@ msgid "Request to Join Your Party" msgstr "Verzoek om Lid te Worden van Uw Partij" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8590,7 +8597,7 @@ msgstr "SD-kaart Pad:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "SD-Kaart Instellingen" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8598,7 +8605,7 @@ msgstr "SD Root:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "SD Sync Map:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8678,7 +8685,7 @@ msgstr "Spel Save Bestanden (*.sav);;All Files (*)" msgid "Save Import" msgstr "Import Opslaan" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Sla Oudste State op" @@ -8690,49 +8697,49 @@ msgstr "Voorinstelling opslaan" msgid "Save Recording File As" msgstr "Sla Opnamebestand op Als" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Save State" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Save State Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Save State Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Save State Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Save State Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Save State Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Save State Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Save State Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Save State Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Save State Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Save State Slot 9" @@ -8798,7 +8805,7 @@ msgstr "Sla mapbestand op" msgid "Save signature file" msgstr "Sla handtekeningbestand op" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Opslaan naar Geselecteerde Slot" @@ -8944,7 +8951,7 @@ msgstr "Selecteer Riivolution XML bestand" msgid "Select Slot %1 - %2" msgstr "Selecteer Slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Selecteer State" @@ -8952,43 +8959,43 @@ msgstr "Selecteer State" msgid "Select State Slot" msgstr "Selecteer State Slot" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Selecteer State Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Selecteer State Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Selecteer State Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Selecteer State Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Selecteer State Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Selecteer State Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Selecteer State Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Selecteer State Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Selecteer State Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Selecteer State Slot 9" @@ -9016,7 +9023,7 @@ msgstr "Selecteer een Bestand" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "Selecteer een map om te synchroniseren met de SD-kaart afbeelding" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9052,7 +9059,7 @@ msgstr "Selecteer Opnamebestand om Af te Spelen" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:174 msgid "Select the Virtual SD Card Root" -msgstr "Selecteer de Virtuele SD Kaart Root" +msgstr "Selecteer de Virtuele SD-Kaart Root" #: Source/Core/DolphinQt/MainWindow.cpp:1662 msgid "Select the keys file (OTP/SEEPROM dump)" @@ -9220,7 +9227,7 @@ msgid "Set &blr" msgstr "Stel &blr in" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Stel PC In" @@ -9423,7 +9430,7 @@ msgid "Show PAL" msgstr "Toon PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "PC weergeven" @@ -9617,7 +9624,7 @@ msgstr "" "Grootte van uitrekkingsbuffer in milliseconden. Te lage waarden kunnen " "leiden tot krakend geluid." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Overslaan" @@ -9811,7 +9818,7 @@ msgstr "Start Nieuwe Cheat Zoekopdracht" msgid "Start Re&cording Input" msgstr "Start Invoer Op&name" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9852,19 +9859,19 @@ msgstr "Stap" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Stap In" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Stap Uit" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Stap Over" @@ -9884,7 +9891,7 @@ msgstr "Overstappen in voortgang..." msgid "Step successful!" msgstr "Stap succesvol!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Stappen" @@ -10178,6 +10185,8 @@ msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." msgstr "" +"Synchroniseert de SD-kaart met de SD Sync-map bij het starten en beëindigen " +"van emulatie." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10712,7 +10721,7 @@ msgstr "" "Deze action replay simulator ondersteund geen codes die de Action Replay " "zelf aanpassen." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10862,7 +10871,7 @@ msgstr "Dit spel gebruikt een ongeldige IOS." msgid "This title is set to use an invalid common key." msgstr "Dit spel gebruikt een ongeldige gedeelde sleutel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10874,7 +10883,7 @@ msgstr "" "\n" "DSPHLE: Onbekende ucode (CRC = {0:08x}) - AX wordt geforceerd." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10971,15 +10980,15 @@ msgstr "Naar:" msgid "Toggle &Fullscreen" msgstr "Schakel &Fullscreen Om" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Schakel 3D Anaglyph Om" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Schakel 3D Naast elkaar Om" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Schakel 3D Boven en Beneden Om" @@ -10987,28 +10996,28 @@ msgstr "Schakel 3D Boven en Beneden Om" msgid "Toggle All Log Types" msgstr "Schakel Alle Log Types Om" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Schakel Beeldverhouding Om" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Schakel Breakpoint Om" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Schakel Bijsnijden Om" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Schakel Aangepaste Textures Om" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Schakel EFB Kopieën Om" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Schakel Mist Om " @@ -11020,27 +11029,27 @@ msgstr "Schakel Fullscreen Om" msgid "Toggle Pause" msgstr "Schakel Pauze Om" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" -msgstr "Schakel SD Kaart Om" +msgstr "Schakel SD-Kaart Om" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Schakel EFB Toegang Overslaan Om" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Schakel Texture Dumpen Om" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Schakel USB Toetsenbord" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Schakel XFB Kopieën Om" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Schakel XFB Onmiddellijke Modus Om" @@ -11259,11 +11268,11 @@ msgstr "Unbound" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Ongecomprimeerde GC/Wii-afbeeldingen (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Laad State Ongedaan Maken" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Save State Ongedaan Maken" @@ -11369,7 +11378,7 @@ msgstr "" msgid "Unlimited" msgstr "Onbeperkt" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Leeg ROM" @@ -11474,7 +11483,7 @@ msgstr "Gebruiksstatistieken Rapportageinstellingen" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" -msgstr "" +msgstr "Gebruik 8.8.8.8 voor normale DNS, voer anders uw eigen in" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11746,22 +11755,22 @@ msgstr "Virtuele Inkepingen" msgid "Virtual address space" msgstr "Virtuele adresruimte" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volume" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Volume Omlaag" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Schakel Volume Dempen Om" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Volume Omhoog" @@ -12031,7 +12040,7 @@ msgstr "Witte lijst van USB Passthrough Apparaten" msgid "Widescreen Hack" msgstr "Breedbeeld Hack" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -12231,6 +12240,9 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"U staat op het punt om de inhoud van het bestand in %2 te converteren naar " +"de map in %1. Alle huidige inhoud van de map zal worden verwijderd. Weet u " +"zeker dat u door wilt gaan?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12238,6 +12250,9 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"U staat op het punt om de inhoud van de map in %1 te converteren naar het " +"bestand in %2. Alle huidige inhoud van het bestand zal worden verwijderd. " +"Weet u zeker dat u door wilt gaan?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index fbf9043b9f..4159ea4358 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -748,12 +748,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -786,19 +786,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Głębia 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -818,7 +818,7 @@ msgstr "" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1072,7 +1072,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1123,11 +1123,11 @@ msgstr "Dodaj nowe urządzenie USB" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Dodaj punkt przerwania" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Dodaj punkt przerwania pamięci" @@ -1774,7 +1774,7 @@ msgstr "" msgid "Break" msgstr "Przerwij" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Punkt przerwania" @@ -1788,7 +1788,7 @@ msgid "Breakpoints" msgstr "Punkty przerwania" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1866,7 +1866,7 @@ msgstr "Przycisk" msgid "Buttons" msgstr "Przyciski" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2014,6 +2014,10 @@ msgstr "" msgid "Center" msgstr "Środek" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2297,7 +2301,7 @@ msgstr "Potwierdzenie" msgid "Connect" msgstr "Połącz" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Podłącz Balance Board" @@ -2309,19 +2313,19 @@ msgstr "Podłącz klawiaturę USB" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Połącz Wiilot 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Połącz Wiilot 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Połącz Wiilot 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Połącz Wiilot 4" @@ -2357,7 +2361,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Skanowanie ciągłe" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2370,19 +2374,19 @@ msgstr "Gałka sterująca" msgid "Controller Profile" msgstr "Profil kontrolera" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2861,20 +2865,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Zmniejsz konwergencję" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Zmniejsz głębię" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Zmniejsz szybkość emulacji" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Zmniejsz rozdzielczość wewnętrzną" @@ -2973,7 +2977,7 @@ msgstr "Opis" msgid "Description:" msgstr "Opis:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3070,7 +3074,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Wyłącz limit szybkości emulacji" @@ -3574,7 +3578,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Szybkość emulacji" @@ -4087,7 +4091,7 @@ msgstr "Eksportuj wszystkie zapisy Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Eksportuj nagranie" @@ -4807,20 +4811,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Wyprzedzanie klatek" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Zmniejsz szybkość wyprzedzania klatek" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Zwiększ szybkość wyprzedzania klatek" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Zresetuj szybkość wyprzedzania klatek" @@ -4877,11 +4881,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Swobodne obserwowanie" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4939,7 +4943,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4951,11 +4955,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5203,7 +5207,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Kody Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5271,7 +5275,7 @@ msgstr "Grafika" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Przełączniki grafiki" @@ -5448,7 +5452,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Ustawienia skrótów klawiaturowych" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5685,20 +5689,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Zwiększ konwergencję" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Zwiększ głębię" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Zwiększ szybkość emulacji" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Zwiększ rozdzielczość wewnętrzną" @@ -5844,7 +5848,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Wewnętrzny błąd LZO - lzo_init() nie powiodło się" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6242,7 +6246,7 @@ msgstr "Wczytuj dostosowane tekstury" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Wczytaj ostatni stan" @@ -6251,92 +6255,92 @@ msgstr "Wczytaj ostatni stan" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Wczytaj stan" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Wczytaj stan Ostatni 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Wczytaj stan Ostatni 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Wczytaj stan Ostatni 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Wczytaj stan Ostatni 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Wczytaj stan Ostatni 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Wczytaj stan Ostatni 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Wczytaj stan Ostatni 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Wczytaj stan Ostatni 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Wczytaj stan Ostatni 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Wczytaj stan Ostatni 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Wczytaj stan Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Wczytaj stan Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Wczytaj stan Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Wczytaj stan Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Wczytaj stan Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Wczytaj stan Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Wczytaj stan Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Wczytaj stan Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Wczytaj stan Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Wczytaj stan Slot 9" @@ -6360,7 +6364,7 @@ msgstr "Wczytaj zapis Wii" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Wczytaj z wybranego slotu" @@ -6681,7 +6685,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Film" @@ -6835,8 +6839,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6844,8 +6848,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7193,7 +7197,7 @@ msgstr "Pozostałe" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Inne skróty klawiaturowe stanów" @@ -7389,7 +7393,7 @@ msgstr "Graj" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Odtwórz nagranie" @@ -7475,7 +7479,7 @@ msgstr "" msgid "Presets" msgstr "Wstępne ustawienia" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Naciśnij przycisk Sync" @@ -7493,8 +7497,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7502,8 +7507,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7547,7 +7552,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Licznik programu" @@ -7673,7 +7678,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7859,7 +7864,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8134,7 +8139,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Zapisz najstarszy stan" @@ -8146,49 +8151,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Zapisz stan" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Zapisz stan Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Zapisz stan Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Zapisz stan Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Zapisz stan Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Zapisz stan Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Zapisz stan Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Zapisz stan Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Zapisz stan Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Zapisz stan Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Zapisz stan Slot 9" @@ -8251,7 +8256,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Zapisz we wybranym slocie" @@ -8393,7 +8398,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Wybierz slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Wybierz stan" @@ -8401,43 +8406,43 @@ msgstr "Wybierz stan" msgid "Select State Slot" msgstr "Wybierz slot stanu" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Wybierz slot stanu 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Wybierz slot stanu 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Wybierz slot stanu 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Wybierz slot stanu 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Wybierz slot stanu 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Wybierz slot stanu 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Wybierz slot stanu 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Wybierz slot stanu 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Wybierz slot stanu 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Wybierz slot stanu 9" @@ -8633,7 +8638,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Ustaw PC" @@ -8831,7 +8836,7 @@ msgid "Show PAL" msgstr "Pokaż PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Pokaż PC" @@ -9011,7 +9016,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Pomiń" @@ -9188,7 +9193,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "&Rozpocznij nagrywanie wejścia" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9229,19 +9234,19 @@ msgstr "Krok" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Wkrocz do" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9261,7 +9266,7 @@ msgstr "Przekraczanie w toku..." msgid "Step successful!" msgstr "Krok wykonany!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Kroki" @@ -9995,7 +10000,7 @@ msgstr "" "Ten symulator action replay nie obsługuje kodów, które modyfikują Action " "Replay sam w sobie." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10118,7 +10123,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10126,7 +10131,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10210,15 +10215,15 @@ msgstr "Do:" msgid "Toggle &Fullscreen" msgstr "Przełącz pełny &ekran" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Przełącz 3D Anaglif" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10226,28 +10231,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Przełącz wszystkie typy logów" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Przełącz proporcje obrazu" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Przełącz punkt przerwania" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Przełącz przycinanie" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Przełącz dostosowane tekstury" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Przełącz kopie EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Przełącz mgłę" @@ -10259,27 +10264,27 @@ msgstr "Przełącz pełny ekran" msgid "Toggle Pause" msgstr "Przełącz wstrzymanie" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Przełącz zrzucanie tekstur" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Przełącz kopie XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Przełącz tryb natychmiastowy XFB" @@ -10474,11 +10479,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Nieskompresowane obrazy gier GC/Wii (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Cofnij wczytywanie stanu" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Cofnij zapisywanie stanu" @@ -10575,7 +10580,7 @@ msgstr "" msgid "Unlimited" msgstr "Nieograniczona szybkość" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10904,22 +10909,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Głośność" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Zmniejsz głośność" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Przełącz całkowite wyciszenie" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Zwiększ głośność" @@ -11122,7 +11127,7 @@ msgstr "Zezwolone urządzenia przejściowe USB" msgid "Widescreen Hack" msgstr "Hak szerokiego ekranu" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 7a0895fc64..2551436b7d 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -713,12 +713,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -751,19 +751,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -783,7 +783,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1035,7 +1035,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1086,11 +1086,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1726,7 +1726,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1740,7 +1740,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1818,7 +1818,7 @@ msgstr "" msgid "Buttons" msgstr "Botões" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1965,6 +1965,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2246,7 +2250,7 @@ msgstr "" msgid "Connect" msgstr "Conectar" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2258,19 +2262,19 @@ msgstr "Conectar Teclado USB" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2306,7 +2310,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2319,19 +2323,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2806,20 +2810,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2918,7 +2922,7 @@ msgstr "Descrição" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3015,7 +3019,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3516,7 +3520,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4020,7 +4024,7 @@ msgstr "Exportar Todos os Jogos Guardados Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportar Gravação" @@ -4738,20 +4742,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avançar Quadro" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4808,11 +4812,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4870,7 +4874,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4882,11 +4886,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5134,7 +5138,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Códigos Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5202,7 +5206,7 @@ msgstr "Gráficos" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5379,7 +5383,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5607,20 +5611,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5766,7 +5770,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro interno de LZO - lzo_init() falhou" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6162,7 +6166,7 @@ msgstr "Carregar Texturas Personalizadas" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6171,92 +6175,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Carregar Estado Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Carregar Estado Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Carregar Estado Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Carregar Estado Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Carregar Estado Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Carregar Estado Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Carregar Estado Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Carregar Estado Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6280,7 +6284,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6601,7 +6605,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6755,8 +6759,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6764,8 +6768,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7111,7 +7115,7 @@ msgstr "Outro" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7307,7 +7311,7 @@ msgstr "Começar" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Tocar Gravação" @@ -7391,7 +7395,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7409,8 +7413,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7418,8 +7423,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7463,7 +7468,7 @@ msgstr "" msgid "Profile" msgstr "Perfil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7589,7 +7594,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7775,7 +7780,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8050,7 +8055,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8062,49 +8067,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Guardar Estado Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Guardar Estado Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Guardar Estado Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Guardar Estado Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Guardar Estado Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Guardar Estado Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Guardar Estado Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Guardar Estado Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "" @@ -8167,7 +8172,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8309,7 +8314,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8317,43 +8322,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8549,7 +8554,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8742,7 +8747,7 @@ msgid "Show PAL" msgstr "Mostrar Pal" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8922,7 +8927,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9097,7 +9102,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9138,19 +9143,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9170,7 +9175,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9904,7 +9909,7 @@ msgstr "" "Este simulador de Action Replay não suporta códigos que modifiquem o próprio " "Action Replay" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10021,7 +10026,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10029,7 +10034,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10110,15 +10115,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10126,28 +10131,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Alternar Todos os Tipos de Relatório" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10159,27 +10164,27 @@ msgstr "Alternar Ecrã Inteiro" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10374,11 +10379,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Retroceder Carregamento de Estado" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10475,7 +10480,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10804,22 +10809,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volume" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11022,7 +11027,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Hack de Ecrã Panorâmico" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 030649d91f..0412e60479 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mateus B. Cassiano , 2017,2021-2022\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" @@ -774,12 +774,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -812,19 +812,19 @@ msgid "32-bit Unsigned Integer" msgstr "Inteiro de 32 bits (Sem Sinal)" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Profundidade 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -844,7 +844,7 @@ msgstr "4 Mbits (59 blocos)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1048,7 +1048,7 @@ msgstr "Acelerômetro" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "Influência do acelerômetro" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1142,7 +1142,7 @@ msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" "Erro do Action Replay: Código normal {0} de subtipo inválido {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Ativar Chat do NetPlay" @@ -1193,11 +1193,11 @@ msgstr "Adicionar Novo Dispositivo USB" msgid "Add Shortcut to Desktop" msgstr "Criar Atalho na Área de Trabalho" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Adicionar Ponto de Interrupção" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Adicionar Ponto de Interrupção de Memória" @@ -1629,7 +1629,7 @@ msgstr "Auto-detectar os módulos do RSO?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "Sincronizar Automaticamente com a Pasta" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1874,7 +1874,7 @@ msgstr "Vertentes" msgid "Break" msgstr "Interrupção" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Pontos de Interrupção" @@ -1888,7 +1888,7 @@ msgid "Breakpoints" msgstr "Pontos de Interrupção" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1905,7 +1905,7 @@ msgstr "Adaptador de Banda Larga (tapserver)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "Configuração DNS do Adaptador de Banda Larga" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1969,7 +1969,7 @@ msgstr "Botão" msgid "Buttons" msgstr "Botões" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "Autor: " @@ -2131,6 +2131,10 @@ msgstr "Capacidade" msgid "Center" msgstr "Centro" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centralizar e Calibrar" @@ -2178,7 +2182,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:66 msgid "Changing cheats will only take effect when the game is restarted." -msgstr "Mudar as trapaças só terá efeito quando o jogo for reiniciado." +msgstr "Alterações nos cheats só terão efeito quando o jogo for reiniciado." #: Source/Core/DolphinQt/Config/FilesystemWidget.cpp:149 msgid "Channel Partition (%1)" @@ -2423,7 +2427,7 @@ msgstr "Confirmação" msgid "Connect" msgstr "Conectar" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Conectar/Desconectar Balance Board" @@ -2435,19 +2439,19 @@ msgstr "Conectar Teclado USB" msgid "Connect Wii Remote %1" msgstr "Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Conectar/Desconectar Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Conectar/Desconectar Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Conectar/Desconectar Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Conectar/Desconectar Wii Remote 4" @@ -2483,7 +2487,7 @@ msgstr "O conteúdo {0:08x} está corrompido." msgid "Continuous Scanning" msgstr "Escaneamento Contínuo" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Controlar Modo Golfe do NetPlay" @@ -2496,19 +2500,19 @@ msgstr "Eixo Principal" msgid "Controller Profile" msgstr "Perfil do Controle" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Perfil do Controle 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Perfil do Controle 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Perfil do Controle 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Perfil do Controle 4" @@ -2592,7 +2596,7 @@ msgstr "Convergência:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "Falha na conversão." #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2602,7 +2606,7 @@ msgstr "Converter" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "Converter Arquivo para Pasta Agora" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2612,7 +2616,7 @@ msgstr "Converter Arquivo..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "Converter Pasta para Arquivo Agora" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -3055,20 +3059,20 @@ msgstr "Qualidade de Decodificação:" msgid "Decrease" msgstr "Diminuir" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Diminuir Convergência" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Diminuir Profundidade" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Diminuir Velocidade" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Diminuir Resolução Interna" @@ -3173,7 +3177,7 @@ msgstr "Descrição" msgid "Description:" msgstr "Descrição:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "Descrição: " @@ -3279,7 +3283,7 @@ msgstr "Desativar Filtro de Cópia" msgid "Disable EFB VRAM Copies" msgstr "Desativar Cópias VRAM do EFB" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Desativar Limite de Velocidade" @@ -3377,8 +3381,8 @@ msgstr "Distância de viagem da posição neutra." #: Source/Core/DolphinQt/Main.cpp:259 msgid "Do you authorize Dolphin to report information to Dolphin's developers?" msgstr "" -"Você autoriza o Dolphin a reportar informações pros desenvolvedores do " -"Dolphin?" +"Você autoriza o Dolphin a enviar estatísticas de uso para a equipe de " +"desenvolvimento?" #: Source/Core/DolphinQt/MainWindow.cpp:1604 msgid "Do you want to add \"%1\" to the list of Game Paths?" @@ -3580,23 +3584,23 @@ msgstr "Dummy" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:144 msgid "Dump" -msgstr "Dumpar" +msgstr "Exportar" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:149 msgid "Dump &ARAM" -msgstr "Extrair &ARAM" +msgstr "Exportar &ARAM" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:148 msgid "Dump &ExRAM" -msgstr "Extrair &ExRAM" +msgstr "Exportar &ExRAM" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:150 msgid "Dump &FakeVMEM" -msgstr "Extrair &FakeVMEM" +msgstr "Exportar &FakeVMEM" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:147 msgid "Dump &MRAM" -msgstr "Extrair &MRAM" +msgstr "Exportar &MRAM" #: Source/Core/DolphinQt/MenuBar.cpp:802 msgid "Dump Audio" @@ -3616,7 +3620,7 @@ msgstr "Exportar Quadros" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "Exportar tráfego do BBA do GameCube" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3679,11 +3683,11 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:353 msgid "Dump decrypted SSL reads" -msgstr "Extrair leituras SSL descriptografadas" +msgstr "Exportar leituras SSL descriptografadas" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:354 msgid "Dump decrypted SSL writes" -msgstr "Extrair escritas SSL descriptografadas" +msgstr "Exportar escritas SSL descriptografadas" #: Source/Core/DolphinQt/Config/Graphics/SoftwareRendererWidget.cpp:172 msgid "" @@ -3699,12 +3703,12 @@ msgstr "Opções de exportação" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:357 msgid "Dump peer certificates" -msgstr "Extrair certificados do peer" +msgstr "Exportar certificados de mesmo nível" #. i18n: CA stands for certificate authority #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:356 msgid "Dump root CA certificates" -msgstr "Extrair certificados raiz da CA" +msgstr "Exportar certificados raiz da CA" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:224 msgid "" @@ -3846,7 +3850,7 @@ msgstr "" "Atual: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Velocidade de Emulação" @@ -4118,7 +4122,7 @@ msgstr "Inserir senha" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "Informe o endereço do servidor DNS:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4415,7 +4419,7 @@ msgstr "Exportar Todos os Dados Salvos do Wii" msgid "Export Failed" msgstr "Falha ao Exportar" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportar Gravação" @@ -5213,20 +5217,20 @@ msgstr "%n endereço(s) encontrado(s)." msgid "Frame %1" msgstr "Quadro %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avançar Quadro" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Diminuir Velocidade" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Aumentar Velocidade" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Redefinir Velocidade" @@ -5287,11 +5291,11 @@ msgstr "" msgid "FreeLook" msgstr "Olhar Livre" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Olhar Livre" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Ativar/Desativar Olhar Livre" @@ -5349,7 +5353,7 @@ msgstr "GBA (Integrado)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "Núcleo do GBA" @@ -5361,11 +5365,11 @@ msgstr "Porta do GBA %1" msgid "GBA Settings" msgstr "Configurações do GBA" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "Volume do GBA" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "Tamanho da Janela do GBA" @@ -5429,53 +5433,53 @@ msgid "" "GPU: ERROR: Need GL_ARB_framebuffer_object for multiple render targets.\n" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -"GPU: ERRO: Precisa de GL_ARB_framebuffer_object pra múltiplos alvos de " -"renderização.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.0?" +"GPU: ERRO OGL: extensão GL_ARB_framebuffer_object indisponível para " +"múltiplos múltiplos alvos de renderização.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.0?" #: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 msgid "GPU: OGL ERROR: Does your video card support OpenGL 2.0?" -msgstr "GPU: ERRO do OGL: Sua placa de vídeo suporta o OpenGL 2.0?" +msgstr "GPU: ERRO OGL: Sua placa de vídeo é compatível com o OpenGL 2.0?" #: Source/Core/VideoBackends/OGL/OGLRender.cpp:375 msgid "" "GPU: OGL ERROR: Need GL_ARB_map_buffer_range.\n" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -"GPU: ERRO do OGL: Precisa do GL_ARB_map_buffer_range.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.0?" +"GPU: ERRO OGL: extensão GL_ARB_map_buffer_range indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.0?" #: Source/Core/VideoBackends/OGL/OGLRender.cpp:400 msgid "" "GPU: OGL ERROR: Need GL_ARB_sampler_objects.\n" "GPU: Does your video card support OpenGL 3.3?" msgstr "" -"GPU: ERRO do OGL: Precisa do GL_ARB_sampler_objects.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.3?" +"GPU: ERRO OGL: extensão GL_ARB_sampler_objects indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.3?" #: Source/Core/VideoBackends/OGL/OGLRender.cpp:384 msgid "" "GPU: OGL ERROR: Need GL_ARB_uniform_buffer_object.\n" "GPU: Does your video card support OpenGL 3.1?" msgstr "" -"GPU: ERRO do OGL: Precisa do GL_ARB_uniform_buffer_object.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.1?" +"GPU: ERRO OGL: extensão GL_ARB_uniform_buffer_object indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.1?" #: Source/Core/VideoBackends/OGL/OGLRender.cpp:366 msgid "" "GPU: OGL ERROR: Need GL_ARB_vertex_array_object.\n" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -"GPU: ERRO do OGL: Precisa do GL_ARB_vertex_array_object.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.0?" +"GPU: ERRO OGL: extensão GL_ARB_vertex_array_object indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.0?" #: Source/Core/VideoBackends/OGL/OGLMain.cpp:136 msgid "" "GPU: OGL ERROR: Need OpenGL version 3.\n" "GPU: Does your video card support OpenGL 3?" msgstr "" -"GPU: ERRO do OGL: Precisa da versão 3 do OpenGL.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3?" +"GPU: ERRO OGL: suporte ao OpenGL 3.0 indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.0?" #: Source/Core/VideoBackends/OGL/OGLRender.cpp:593 msgid "" @@ -5483,17 +5487,17 @@ msgid "" "GPU: Does your video card support OpenGL 3.0?\n" "GPU: Your driver supports GLSL {0}" msgstr "" -"GPU: ERRO do OGL: Precisa no mínimo do GLSL 1.30\n" -"GPU: Sua placa de vídeo suporta o OpenGL 3.0?\n" -"GPU: Seu driver suporta GLSL {0}" +"GPU: ERRO OGL: suporte ao GLSL 1.30 ou mais recente indisponível.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 3.0?\n" +"GPU: Driver de vídeo compatível com GLSL {0}" #: Source/Core/VideoBackends/OGL/OGLMain.cpp:153 msgid "" "GPU: OGL ERROR: Number of attributes {0} not enough.\n" "GPU: Does your video card support OpenGL 2.x?" msgstr "" -"GPU: ERRO do OGL: Número de atributos {0} não é o bastante.\n" -"GPU: Sua placa de vídeo suporta o OpenGL 2.x?" +"GPU: ERRO OGL: Número de atributos {0} insuficiente.\n" +"GPU: Sua placa de vídeo é compatível com o OpenGL 2.x?" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 msgid "Game" @@ -5648,7 +5652,7 @@ msgstr "Tamanho do Portão" msgid "Gecko Codes" msgstr "Códigos Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5716,7 +5720,7 @@ msgstr "Gráficos" msgid "Graphics Mods" msgstr "Mods Gráficos" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Configurações" @@ -5903,7 +5907,7 @@ msgstr "Nome do Hospedeiro" msgid "Hotkey Settings" msgstr "Configurações das Teclas de Atalho" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6047,6 +6051,7 @@ msgstr "" "priorizar nossos esforços. Elas também nos ajudam a identificar " "configurações raras que estejam causando erros ou problemas de desempenho e " "estabilidade.\n" +"\n" "Essa permissão pode ser revogada a qualquer momento através das " "configurações do Dolphin." @@ -6201,20 +6206,20 @@ msgstr "" msgid "Increase" msgstr "Aumentar" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Aumentar Convergência" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Aumentar Profundidade" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Aumentar Velocidade" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Aumentar Resolução Interna" @@ -6240,6 +6245,8 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"Influência dos dados do acelerômetro na inclinação e rotação. Valores mais " +"altos reduzirão o desvio ao custo do ruído. Considere valores entre 1% e 3%." #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6362,7 +6369,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro Interno do LZO - lzo_init() falhou" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6769,7 +6776,7 @@ msgstr "Carregar Texturas Personalizadas" msgid "Load GameCube Main Menu" msgstr "Carregar Menu Principal do GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Carregar Anterior" @@ -6778,92 +6785,92 @@ msgstr "Carregar Anterior" msgid "Load Path:" msgstr "Carregamento:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Abrir ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Carregar Estado" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Carregar Estado Anterior 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Carregar Estado Anterior 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Carregar Estado Anterior 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Carregar Estado Anterior 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Carregar Estado Anterior 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Carregar Estado Anterior 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Carregar Estado Anterior 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Carregar Estado Anterior 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Carregar Estado Anterior 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Carregar Estado Anterior 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Carregar do Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Carregar do Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Carregar do Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Carregar do Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Carregar do Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Carregar do Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Carregar do Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Carregar do Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Carregar do Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Carregar do Slot 9" @@ -6887,7 +6894,7 @@ msgstr "Carregar o Save do Wii" msgid "Load Wii System Menu %1" msgstr "Carregar Wii System Menu %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Carregar do Slot Selecionado" @@ -7245,7 +7252,7 @@ msgstr "" msgid "Move" msgstr "Mover" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Gravação" @@ -7261,7 +7268,7 @@ msgstr "" #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "Multiplicador" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7401,8 +7408,8 @@ msgstr "Nova instrução:" msgid "New tag" msgstr "Nova etiqueta" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Próximo Perfil de Jogo" @@ -7410,8 +7417,8 @@ msgstr "Próximo Perfil de Jogo" msgid "Next Match" msgstr "Combinação Seguinte" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Próximo Perfil" @@ -7712,7 +7719,7 @@ msgstr "Abrir Pasta de Dados &Salvos do Wii" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:359 msgid "Open dump folder" -msgstr "Abrir a pasta dos dumps" +msgstr "Abrir pasta de exportação" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:203 msgid "Open in External Editor" @@ -7772,7 +7779,7 @@ msgstr "Outros" msgid "Other Partition (%1)" msgstr "Outra Partição (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Outros" @@ -7968,7 +7975,7 @@ msgstr "Reproduzir" msgid "Play / Record" msgstr "Reproduzir / Gravar" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Reproduzir Gravação" @@ -8057,7 +8064,7 @@ msgstr "" msgid "Presets" msgstr "Predefinições" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Sincronizar (Redirecionamento Bluetooth)" @@ -8080,8 +8087,9 @@ msgstr "" "

Não recomendado, use apenas se os outros modos não " "entregarem resultados satisfatórios." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Perfil de Jogo Anterior" @@ -8089,8 +8097,8 @@ msgstr "Perfil de Jogo Anterior" msgid "Previous Match" msgstr "Combinação Anterior" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Perfil Anterior" @@ -8140,7 +8148,7 @@ msgstr "" msgid "Profile" msgstr "Perfil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Contador do Programa" @@ -8268,7 +8276,7 @@ msgstr "Somente-leitura" msgid "Read or Write" msgstr "Ler ou Gravar" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Modo Somente Leitura" @@ -8467,7 +8475,7 @@ msgid "Request to Join Your Party" msgstr "Pedido pra se Juntar ao seu Grupo" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8659,7 +8667,7 @@ msgstr "Cartão SD:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "Configurações do Cartão SD" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8667,7 +8675,7 @@ msgstr "Raiz do SD:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "Pasta de Sincronização do SD:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8747,7 +8755,7 @@ msgstr "Arquivo de jogo salvo (*.sav);;Todos os arquivos (*)" msgid "Save Import" msgstr "Importar Dados Salvos" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Salvar Estado Mais Antigo" @@ -8759,49 +8767,49 @@ msgstr "Salvar Predefinição" msgid "Save Recording File As" msgstr "Salvar o Arquivo da Gravação Como" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Salvar Estado" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Salvar no Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Salvar no Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Salvar no Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Salvar no Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Salvar no Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Salvar no Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Salvar no Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Salvar no Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Salvar no Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Salvar no Slot 9" @@ -8867,7 +8875,7 @@ msgstr "Salvar o arquivo do mapa" msgid "Save signature file" msgstr "Salvar o arquivo de assinatura" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Salvar no Slot Selecionado" @@ -9015,7 +9023,7 @@ msgstr "Selecione o arquivo XML do Riivolution" msgid "Select Slot %1 - %2" msgstr "Slot %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Selecionar" @@ -9023,43 +9031,43 @@ msgstr "Selecionar" msgid "Select State Slot" msgstr "Slot de Estado Salvo" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Selecionar Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Selecionar Slot 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Selecionar Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Selecionar Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Selecionar Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Selecionar Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Selecionar Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Selecionar Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Selecionar Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Selecionar Slot 9" @@ -9087,7 +9095,7 @@ msgstr "Selecione um Arquivo" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "Selecione uma pasta pra sincronizar com a imagem do cartão SD" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -9292,7 +9300,7 @@ msgid "Set &blr" msgstr "Definir &blr" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Definir PC" @@ -9494,7 +9502,7 @@ msgid "Show PAL" msgstr "Europa" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Mostrar PC" @@ -9689,7 +9697,7 @@ msgstr "" "Tamanho do buffer de alongamento (em ms). Valores muito baixos podem causar " "picotamentos no áudio." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Ignorar" @@ -9883,7 +9891,7 @@ msgstr "Iniciar Nova Pesquisa" msgid "Start Re&cording Input" msgstr "&Iniciar Gravação de Replay" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9924,19 +9932,19 @@ msgstr "Passo" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Entrada" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Saída" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Passagem" @@ -9956,7 +9964,7 @@ msgstr "Passagem em progresso..." msgid "Step successful!" msgstr "Passo bem-sucedido!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Passando" @@ -10250,6 +10258,8 @@ msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." msgstr "" +"Sincroniza o conteúdo do Cartão SD com a Pasta de Sincronização do SD ao " +"iniciar e ao parar a emulação." #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10781,7 +10791,7 @@ msgstr "" "Este simulador de Action Replay não suporta códigos que modifiquem o próprio " "Action Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10935,7 +10945,7 @@ msgstr "Esse software está configurado para utilizar um IOS inválido." msgid "This title is set to use an invalid common key." msgstr "Esse software está configurado para utilizar uma chave comum inválida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10947,7 +10957,7 @@ msgstr "" "\n" "DSPHLE: uCode desconhecido (CRC = {0:08x}) - forçando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11044,15 +11054,15 @@ msgstr "Até:" msgid "Toggle &Fullscreen" msgstr "Alternar &Tela Cheia" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Ativar/Desativar 3D Anáglifo" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Ativar/Desativar 3D Lado a Lado" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Ativar/Desativar 3D Sobreposto" @@ -11060,28 +11070,28 @@ msgstr "Ativar/Desativar 3D Sobreposto" msgid "Toggle All Log Types" msgstr "Ativar/Desativar Todos os Tipos de Logs" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Alternar Proporção de Tela" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Ativar/Desativar Pontos de Interrupção" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Ativar/Desativar Cortar" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Ativar/Desativar Texturas Personalizadas" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Ativar/Desativar Cópias do EFB na RAM" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Ativar/Desativar Névoa" @@ -11093,27 +11103,27 @@ msgstr "Ativar/Desativar Tela Cheia" msgid "Toggle Pause" msgstr "Reproduzir/Pausar" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Inserir/Remover Cartão SD" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Permitir/Ignorar Acesso EFB da CPU" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Ativar/Desativar Exportação de Texturas" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Conectar/Desconectar Teclado USB" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Ativar/Desativar Cópias do XFB na RAM" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Ativar/Desativar Exibição Imediata do XFB" @@ -11333,11 +11343,11 @@ msgstr "Sem Limites" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Imagens do GC/Wii sem compressão (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Desfazer Carregamento" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Desfazer Estado Salvo" @@ -11441,7 +11451,7 @@ msgstr "" msgid "Unlimited" msgstr "Ilimitado" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Fechar ROM" @@ -11546,7 +11556,7 @@ msgstr "Configurações de Estatísticas de Uso" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" -msgstr "" +msgstr "Use 8.8.8.8 para DNS normal, ou digite o endereço do DNS personalizado" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11820,22 +11830,22 @@ msgstr "Níveis Virtuais" msgid "Virtual address space" msgstr "Espaço do endereço virtual" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volume" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Diminuir Volume" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Alternar Mudo" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Aumentar Volume" @@ -12113,7 +12123,7 @@ msgstr "Dispositivos Permitidos no Redirecionamento USB" msgid "Widescreen Hack" msgstr "Hack de Widescreen" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -12314,6 +12324,9 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"Você está prestes a converter o conteúdo do arquivo em %2 para a pasta em " +"%1. Todo o conteúdo existente na pasta será excluído. Tem certeza de que " +"quer continuar?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -12321,6 +12334,9 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"Você está prestes a converter o conteúdo da pasta em %1 no arquivo em %2. " +"Todo o conteúdo existente no arquivo será excluído. Tem certeza de que quer " +"continuar?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" @@ -12515,7 +12531,7 @@ msgstr "Falsa conclusão" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:182 msgid "is equal to" -msgstr "é Igual a" +msgstr "é igual a" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:190 msgid "is greater than" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index 7c86487a46..41ce4db1d7 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -712,12 +712,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -750,19 +750,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -782,7 +782,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1085,11 +1085,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1725,7 +1725,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1739,7 +1739,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1817,7 +1817,7 @@ msgstr "" msgid "Buttons" msgstr "Butoane" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1964,6 +1964,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2245,7 +2249,7 @@ msgstr "" msgid "Connect" msgstr "Conectare" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Conectează Placa de Echilibru" @@ -2257,19 +2261,19 @@ msgstr "Conectează Tastatura USB" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2305,7 +2309,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Scanare Continuă" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2318,19 +2322,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2805,20 +2809,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2917,7 +2921,7 @@ msgstr "Descriere" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3014,7 +3018,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3515,7 +3519,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4019,7 +4023,7 @@ msgstr "Exportă Toate Salvările Wii" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Export Înregistrare" @@ -4737,20 +4741,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Avans Cadru" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4807,11 +4811,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4869,7 +4873,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4881,11 +4885,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5133,7 +5137,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Coduri Gecko" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5201,7 +5205,7 @@ msgstr "Grafică" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5378,7 +5382,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5606,20 +5610,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5765,7 +5769,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Eroare internă LZO - lzo_init() a eșuat" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6163,7 +6167,7 @@ msgstr "Încarcă Texturi Personalizate" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6172,92 +6176,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Încărcă Status" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Încărcă Ultimul Status 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Încărcă Ultimul Status 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Încărcă Ultimul Status 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Încărcă Ultimul Status 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Încărcă Ultimul Status 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Încărcă Ultimul Status 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Încărcă Ultimul Status 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Încărcă Ultimul Status 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Încarcă Status din Slotul 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Încarcă Status din Slotul 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Încarcă Status din Slotul 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Încarcă Status din Slotul 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Încarcă Status din Slotul 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Încarcă Status din Slotul 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Încarcă Status din Slotul 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Încarcă Status din Slotul 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Încarcă Status din Slotul 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Încarcă Status din Slotul 9" @@ -6281,7 +6285,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6602,7 +6606,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6756,8 +6760,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6765,8 +6769,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7112,7 +7116,7 @@ msgstr "Altele" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7308,7 +7312,7 @@ msgstr "Rulare" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Rulează Înregistrarea" @@ -7392,7 +7396,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7410,8 +7414,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7419,8 +7424,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7464,7 +7469,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7590,7 +7595,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7776,7 +7781,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8051,7 +8056,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Salvează cel mai Vechi Status" @@ -8063,49 +8068,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Salvează Status" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Salvează Status din Slotul 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Salvează Status din Slotul 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Salvează Status din Slotul 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Salvează Status din Slotul 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Salvează Status din Slotul 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Salvează Status din Slotul 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Salvează Status din Slotul 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Salvează Status din Slotul 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Salvează Status din Slotul 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Salvează Status din Slotul 9" @@ -8168,7 +8173,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8310,7 +8315,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8318,43 +8323,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8550,7 +8555,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8743,7 +8748,7 @@ msgid "Show PAL" msgstr "Afișare PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8923,7 +8928,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9098,7 +9103,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9139,19 +9144,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9171,7 +9176,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9905,7 +9910,7 @@ msgstr "" "Acest simulator de redare a acțiunii nu acceptă coduri ce modifică înseși " "Redarea Acțiunii." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10022,7 +10027,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10030,7 +10035,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10111,15 +10116,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10127,28 +10132,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Comută Toate Tipurile de jurnal" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Comută Raportul de Aspect" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Comută Copiile EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Comută Ceață" @@ -10160,27 +10165,27 @@ msgstr "Comută Ecran Complet" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10375,11 +10380,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Anulare Status Încărcare" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Anulare Status Salvare" @@ -10476,7 +10481,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10805,22 +10810,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volum" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11023,7 +11028,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "Soluție Ecran Lat" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 20aa2fe94a..4022c5a026 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -749,12 +749,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -787,19 +787,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "Глубина 3D" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -819,7 +819,7 @@ msgstr "4 Мбит (59 блоков)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1109,7 +1109,7 @@ msgstr "Action Replay: нормальный код 0: неверный подт msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: нормальный код {0}: неверный подтип {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Активировать чат сетевой игры" @@ -1160,11 +1160,11 @@ msgstr "Добавление нового USB-устройства" msgid "Add Shortcut to Desktop" msgstr "Добавить ярлык на рабочий стол" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Добавить точку останова" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Добавить точку останова в памяти" @@ -1837,7 +1837,7 @@ msgstr "Ветви" msgid "Break" msgstr "Останов" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Точка останова" @@ -1851,7 +1851,7 @@ msgid "Breakpoints" msgstr "Точки останова" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1931,7 +1931,7 @@ msgstr "Кнопка" msgid "Buttons" msgstr "Кнопки" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2089,6 +2089,10 @@ msgstr "Размер карты" msgid "Center" msgstr "Центр" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Центрировать и откалибровать" @@ -2382,7 +2386,7 @@ msgstr "Подтверждение" msgid "Connect" msgstr "Подключиться" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Подключить Balance Board" @@ -2394,19 +2398,19 @@ msgstr "Подключить USB-клавиатуру" msgid "Connect Wii Remote %1" msgstr "Подключить Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Подключить Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Подключить Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Подключить Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Подключить Wii Remote 4" @@ -2442,7 +2446,7 @@ msgstr "Содержимое {0:08x} повреждено." msgid "Continuous Scanning" msgstr "Непрерывное сканирование" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Управление режимом гольфа сетевой игры" @@ -2455,19 +2459,19 @@ msgstr "Control Stick" msgid "Controller Profile" msgstr "Профиль контроллера" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Профиль контроллера 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Профиль контроллера 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Профиль контроллера 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Профиль контроллера 4" @@ -3009,20 +3013,20 @@ msgstr "Качество декодирования:" msgid "Decrease" msgstr "Уменьшить" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Уменьшить сведение" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Уменьшить глубину" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Уменьшить скорость эмуляции" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Уменьшить внутреннее разрешение" @@ -3127,7 +3131,7 @@ msgstr "Описание" msgid "Description:" msgstr "Описание:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3231,7 +3235,7 @@ msgstr "Отключить фильтр копирования" msgid "Disable EFB VRAM Copies" msgstr "Отключить копии EFB в VRAM" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Отключить огр. скорости эмуляции" @@ -3785,7 +3789,7 @@ msgstr "" "Текущий: MEM1 {0:08X} ({1} МиБ), MEM2 {2:08X} ({3} МиБ)\n" "DFF: MEM1 {4:08X} ({5} МиБ), MEM2 {6:08X} ({7} МиБ)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Скорость эмуляции" @@ -4339,7 +4343,7 @@ msgstr "Экспортировать все сохранения Wii" msgid "Export Failed" msgstr "Не удалось экспортировать" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Экспорт записи" @@ -5118,20 +5122,20 @@ msgstr "Найдено адресов: %n." msgid "Frame %1" msgstr "Кадр %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Перемотка кадров" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Перемотка кадров: умен. скорость" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Перемотка кадров: увел. скорость" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Перемотка кадров: сбросить скорость" @@ -5192,11 +5196,11 @@ msgstr "" msgid "FreeLook" msgstr "Свободный обзор" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Свободный обзор" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Вкл./выкл. свободный обзор" @@ -5254,7 +5258,7 @@ msgstr "GBA (встр. эмулятор)" msgid "GBA (TCP)" msgstr "GBA (внеш. эмулятор по TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "Ядро GBA" @@ -5266,11 +5270,11 @@ msgstr "Порт GBA %1" msgid "GBA Settings" msgstr "Настройки GBA" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "Громкость GBA" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "Размер окна GBA" @@ -5540,7 +5544,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko-коды" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5608,7 +5612,7 @@ msgstr "Графика" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Переключатели графики" @@ -5796,7 +5800,7 @@ msgstr "Имя хоста" msgid "Hotkey Settings" msgstr "Горячие клавиши" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6082,20 +6086,20 @@ msgstr "" msgid "Increase" msgstr "Увеличить" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Увеличить сведение" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Увеличить глубину" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Увеличить скорость эмуляции" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Увеличить внутреннее разрешение" @@ -6243,7 +6247,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Внутренняя ошибка LZO - ошибка в lzo_init()" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6648,7 +6652,7 @@ msgstr "Загружать свои текстуры" msgid "Load GameCube Main Menu" msgstr "Загрузить главное меню GameCube" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Загрузить последнее сохранение" @@ -6657,92 +6661,92 @@ msgstr "Загрузить последнее сохранение" msgid "Load Path:" msgstr "Путь к загрузке:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Загрузить образ игры" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Загрузить быстрое сохранение" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Загр. посл. быстрое сохранение 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Загр. посл. быстрое сохранение 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Загр. посл. быстрое сохранение 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Загр. посл. быстрое сохранение 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Загр. посл. быстрое сохранение 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Загр. посл. быстрое сохранение 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Загр. посл. быстрое сохранение 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Загр. посл. быстрое сохранение 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Загр. посл. быстрое сохранение 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Загр. посл. быстрое сохранение 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Быстрая загрузка 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Быстрая загрузка 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Быстрая загрузка 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Быстрая загрузка 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Быстрая загрузка 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Быстрая загрузка 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Быстрая загрузка 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Быстрая загрузка 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Быстрая загрузка 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Быстрая загрузка 9" @@ -6766,7 +6770,7 @@ msgstr "Загружать сохранения Wii" msgid "Load Wii System Menu %1" msgstr "Загрузить системное меню Wii %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Загрузить из выбранного слота" @@ -7115,7 +7119,7 @@ msgstr "" msgid "Move" msgstr "Перемещение" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Ролик" @@ -7271,8 +7275,8 @@ msgstr "Новая инструкция:" msgid "New tag" msgstr "Новая метка" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Следующий игровой профиль" @@ -7280,8 +7284,8 @@ msgstr "Следующий игровой профиль" msgid "Next Match" msgstr "Следующее совпадение" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Следующий профиль" @@ -7643,7 +7647,7 @@ msgstr "Прочие" msgid "Other Partition (%1)" msgstr "Другой раздел (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Другие горячие клавиши" @@ -7839,7 +7843,7 @@ msgstr "Запуск" msgid "Play / Record" msgstr "Проигрывание / запись" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Проиграть записанное" @@ -7927,7 +7931,7 @@ msgstr "" msgid "Presets" msgstr "Предустановки" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Кнопка синхронизации" @@ -7950,8 +7954,9 @@ msgstr "" "рекомендуется.

Используйте тогда, когда другие " "настройки не дают хороших результатов." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Предыдущий игровой профиль" @@ -7959,8 +7964,8 @@ msgstr "Предыдущий игровой профиль" msgid "Previous Match" msgstr "Предыдущее совпадение" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Предыдущий профиль" @@ -8010,7 +8015,7 @@ msgstr "" msgid "Profile" msgstr "Профиль" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Счётчик команд" @@ -8137,7 +8142,7 @@ msgstr "Только для чтения" msgid "Read or Write" msgstr "Чтение или запись" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Режим \"Только для чтения\"" @@ -8337,7 +8342,7 @@ msgid "Request to Join Your Party" msgstr "Запрос на присоединение к вашей группе" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8612,7 +8617,7 @@ msgstr "" msgid "Save Import" msgstr "Импортировать сохранение" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Сохранить самое старое сохранение" @@ -8624,49 +8629,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Быстрое сохранение" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Быстрое сохранение 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Быстрое сохранение 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Быстрое сохранение 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Быстрое сохранение 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Быстрое сохранение 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Быстрое сохранение 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Быстрое сохранение 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Быстрое сохранение 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Быстрое сохранение 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Быстрое сохранение 9" @@ -8733,7 +8738,7 @@ msgstr "Сохранить файл с картой" msgid "Save signature file" msgstr "Сохранить файл сигнатуры" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Сохранить в выбранный слот" @@ -8881,7 +8886,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "Выбрать слот %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Выбор сохранения" @@ -8889,43 +8894,43 @@ msgstr "Выбор сохранения" msgid "Select State Slot" msgstr "Выбрать слот сохранения" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Выбрать слот сохранения 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Выбрать слот сохранения 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Выбрать слот сохранения 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Выбрать слот сохранения 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Выбрать слот сохранения 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Выбрать слот сохранения 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Выбрать слот сохранения 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Выбрать слот сохранения 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Выбрать слот сохранения 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Выбрать слот сохранения 9" @@ -9156,7 +9161,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Изменить СК" @@ -9354,7 +9359,7 @@ msgid "Show PAL" msgstr "PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Показать СК" @@ -9549,7 +9554,7 @@ msgstr "" "Размер буфера растяжения в миллисекундах. При низких значениях звук может " "потрескивать." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Пропустить" @@ -9734,7 +9739,7 @@ msgstr "Новый поиск читов" msgid "Start Re&cording Input" msgstr "&Начать запись ввода" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9775,19 +9780,19 @@ msgstr "Шаг" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Шаг с заходом" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Шаг с выходом" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Шаг с обходом" @@ -9807,7 +9812,7 @@ msgstr "Выполняется шаг с обходом..." msgid "Step successful!" msgstr "Шаг выполнен успешно!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Шаги" @@ -10604,7 +10609,7 @@ msgstr "" "Симулятор action replay не поддерживает коды, которые меняют сам Action " "Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10752,7 +10757,7 @@ msgstr "Этот продукт настроен на использование msgid "This title is set to use an invalid common key." msgstr "Этот продукт настроен на использование некорректного общего ключа." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10764,7 +10769,7 @@ msgstr "" "\n" "DSPHLE: Неизвестный ucode (CRC = {0:08x}) - принудительное AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10859,15 +10864,15 @@ msgstr "До:" msgid "Toggle &Fullscreen" msgstr "&Полноэкранный режим" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Анаглиф (3D)" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Горизонтальная стереопара (3D)" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Вертикальная стереопара (3D)" @@ -10875,28 +10880,28 @@ msgstr "Вертикальная стереопара (3D)" msgid "Toggle All Log Types" msgstr "Изменить все виды логгирования" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Изменить соотношение сторон" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Точка останова" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Вкл./выкл. обрезку" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Вкл./выкл. свои текстуры" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Вкл./выкл. копии EFB" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Вкл./выкл. туман" @@ -10908,27 +10913,27 @@ msgstr "Вкл./выкл. полноэкранный режим" msgid "Toggle Pause" msgstr "Вкл./выкл. паузу" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Вкл./выкл. SD-карту" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Вкл./выкл. пропуск доступа к EFB" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Вкл./выкл. дамп текстур" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Вкл./выкл. USB-клавиатуру" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Вкл./выкл. копии XFB" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Вкл./выкл. немедленный режим XFB" @@ -11147,11 +11152,11 @@ msgstr "Несвязанный" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Несжатые образы GC/Wii (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Отменить быструю загрузку" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Отменить быстрое сохранение" @@ -11254,7 +11259,7 @@ msgstr "Получено неизвестное сообщение с id: {0} о msgid "Unlimited" msgstr "Без ограничения" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Выгрузить образ игры" @@ -11597,22 +11602,22 @@ msgstr "Вирт. надсечки" msgid "Virtual address space" msgstr "Вирт. адр. пространство" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Громкость" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Уменьшить громкость" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Выключить звук" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Увеличить громкость" @@ -11882,7 +11887,7 @@ msgstr "Белый список пробрасываемых USB-устройс msgid "Widescreen Hack" msgstr "Широкоформатный хак" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index b93dbef08a..86d110af92 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -712,12 +712,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -750,19 +750,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -782,7 +782,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1085,11 +1085,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1725,7 +1725,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1739,7 +1739,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1817,7 +1817,7 @@ msgstr "" msgid "Buttons" msgstr "Tasteri" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1964,6 +1964,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2245,7 +2249,7 @@ msgstr "" msgid "Connect" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "" @@ -2257,19 +2261,19 @@ msgstr "" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "" @@ -2305,7 +2309,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2318,19 +2322,19 @@ msgstr "" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2805,20 +2809,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2917,7 +2921,7 @@ msgstr "" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3014,7 +3018,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3515,7 +3519,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4015,7 +4019,7 @@ msgstr "" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "" @@ -4733,20 +4737,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4803,11 +4807,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4865,7 +4869,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4877,11 +4881,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5129,7 +5133,7 @@ msgstr "" msgid "Gecko Codes" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5197,7 +5201,7 @@ msgstr "Grafike" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5374,7 +5378,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5602,20 +5606,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5761,7 +5765,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6154,7 +6158,7 @@ msgstr "" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6163,92 +6167,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Ucitaj State Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Ucitaj State Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Ucitaj State Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Ucitaj State Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Ucitaj State Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Uci State Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Ucitaj State Slot 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Ucitaj State Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "" @@ -6272,7 +6276,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6593,7 +6597,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6747,8 +6751,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6756,8 +6760,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7103,7 +7107,7 @@ msgstr "" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7299,7 +7303,7 @@ msgstr "Pokreni " msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Pokreni snimanje " @@ -7383,7 +7387,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7401,8 +7405,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7410,8 +7415,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7455,7 +7460,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7581,7 +7586,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7767,7 +7772,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8042,7 +8047,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8054,49 +8059,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Snimaj State Slot 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Snimaj State Slot 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Snimaj State Slot 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Snimaj State Slot 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Snimaj State Slot 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Snimaj State Slot 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Snimaj State Slot 7 " -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Snimaj State Slot 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "" @@ -8159,7 +8164,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8301,7 +8306,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8309,43 +8314,43 @@ msgstr "" msgid "Select State Slot" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "" @@ -8541,7 +8546,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8734,7 +8739,7 @@ msgid "Show PAL" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8914,7 +8919,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9089,7 +9094,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9130,19 +9135,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9162,7 +9167,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9892,7 +9897,7 @@ msgid "" "Replay itself." msgstr "" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10009,7 +10014,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10017,7 +10022,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10098,15 +10103,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10114,28 +10119,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10147,27 +10152,27 @@ msgstr "" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10362,11 +10367,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "" @@ -10463,7 +10468,7 @@ msgstr "" msgid "Unlimited" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10792,22 +10797,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Jacina zvuka " -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "" @@ -11010,7 +11015,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index 860595b6f3..216fcfd1f9 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -742,12 +742,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -780,19 +780,19 @@ msgid "32-bit Unsigned Integer" msgstr "32-bitars osignerat heltal" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D-djup" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -812,7 +812,7 @@ msgstr "4 Mbit (59 block)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1106,7 +1106,7 @@ msgstr "Action Replay: Normalkod 0: Ogiltig undertyp {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: Normalkod {0}: Ogiltig undertyp {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "Aktivera nätspelschatt" @@ -1157,11 +1157,11 @@ msgstr "Lägg till ny USB-enhet" msgid "Add Shortcut to Desktop" msgstr "Skapa genväg på skrivbordet" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Lägg till brytpunkt" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Lägg till en minnesbrytpunkt" @@ -1833,7 +1833,7 @@ msgstr "Grenar" msgid "Break" msgstr "Bryt" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "Brytpunkt" @@ -1847,7 +1847,7 @@ msgid "Breakpoints" msgstr "Brytpunkter" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1928,7 +1928,7 @@ msgstr "Knapp" msgid "Buttons" msgstr "Knappar" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2090,6 +2090,10 @@ msgstr "Kortstorlek" msgid "Center" msgstr "Center" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "Centrera och kalibrera" @@ -2381,7 +2385,7 @@ msgstr "Bekräftelse" msgid "Connect" msgstr "Anslut" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Anslut balansbräda" @@ -2393,19 +2397,19 @@ msgstr "Anslut USB-tangentbord" msgid "Connect Wii Remote %1" msgstr "Anslut Wii-fjärrkontroll %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "Anslut Wii-fjärrkontroll 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "Anslut Wii-fjärrkontroll 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "Anslut Wii-fjärrkontroll 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "Anslut Wii-fjärrkontroll 4" @@ -2441,7 +2445,7 @@ msgstr "Innehåll {0:08x} är korrupt." msgid "Continuous Scanning" msgstr "Kontinuerlig skanning" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "Kontrollera nätspelsgolfläge" @@ -2454,19 +2458,19 @@ msgstr "Kontrollspak" msgid "Controller Profile" msgstr "Kontrollprofil" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "Kontrollprofil 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "Kontrollprofil 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "Kontrollprofil 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "Kontrollprofil 4" @@ -3010,20 +3014,20 @@ msgstr "Dekodningskvalitet:" msgid "Decrease" msgstr "Minska" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Sänk konvergens" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Sänk djup" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Minska emuleringshastighet" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "Sänk intern upplösning" @@ -3128,7 +3132,7 @@ msgstr "Beskrivning" msgid "Description:" msgstr "Beskrivning:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3231,7 +3235,7 @@ msgstr "Inaktivera kopieringsfilter" msgid "Disable EFB VRAM Copies" msgstr "Inaktivera EFB-VRAM-kopior" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Inaktivera emuleringshastighetsgräns" @@ -3792,7 +3796,7 @@ msgstr "" "Nuvarande: MEM1 {0:08X} ({1} MiB), MEM2 {2:08X} ({3} MiB)\n" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "Emuleringshastighet" @@ -4343,7 +4347,7 @@ msgstr "Exportera alla Wii-sparningar" msgid "Export Failed" msgstr "Exportering misslyckades" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Exportera inspelning" @@ -5123,20 +5127,20 @@ msgstr "Hittade %n adress(er)." msgid "Frame %1" msgstr "Bildruta %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Gå fram en bildruta" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Gå fram en bildruta - Sänk hastighet" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Gå fram en bildruta - Öka hastighet" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Gå fram en bildruta - Nollställ hastighet" @@ -5197,11 +5201,11 @@ msgstr "" msgid "FreeLook" msgstr "Fri vy" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Fri kamera" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "Fri kamera - Slå på/av" @@ -5259,7 +5263,7 @@ msgstr "GBA (integrerad)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "GBA-kärna" @@ -5271,11 +5275,11 @@ msgstr "GBA i uttag %1" msgid "GBA Settings" msgstr "GBA-inställningar" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "GBA-volym" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "GBA-fönsterstorlek" @@ -5554,7 +5558,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko-koder" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5622,7 +5626,7 @@ msgstr "Grafik" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Växla grafikalternativ" @@ -5809,7 +5813,7 @@ msgstr "Värdnamn" msgid "Hotkey Settings" msgstr "Kortkommandoinställningar" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -6106,20 +6110,20 @@ msgstr "" msgid "Increase" msgstr "Öka" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Öka konvergens" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Öka djup" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Öka emuleringshastighet" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "Öka intern upplösning" @@ -6267,7 +6271,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "Internt LZO-fel - lzo_init() misslyckades" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6672,7 +6676,7 @@ msgstr "Läs in anpassade texturer" msgid "Load GameCube Main Menu" msgstr "Ladda GameCube-huvudmeny" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Läs in senaste snabbsparning" @@ -6681,92 +6685,92 @@ msgstr "Läs in senaste snabbsparning" msgid "Load Path:" msgstr "Laddningssökväg:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "Ladda in ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Läs in snabbsparning" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Läs in senaste snabbsparning 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Läs in senaste snabbsparning 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Läs in senaste snabbsparning 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Läs in senaste snabbsparning 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Läs in senaste snabbsparning 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Läs in senaste snabbsparning 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Läs in senaste snabbsparning 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Läs in senaste snabbsparning 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Läs in senaste snabbsparning 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Läs in senaste snabbsparning 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "Läs in snabbsparningsplats 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "Läs in snabbsparningsplats 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "Läs in snabbsparningsplats 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "Läs in snabbsparningsplats 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "Läs in snabbsparningsplats 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "Läs in snabbsparningsplats 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "Läs in snabbsparningsplats 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "Läs in snabbsparningsplats 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "Läs in snabbsparningsplats 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "Läs in snabbsparningsplats 9" @@ -6790,7 +6794,7 @@ msgstr "Ladda Wii-spardata" msgid "Load Wii System Menu %1" msgstr "Starta Wii-systemmeny %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Ladda från vald plats" @@ -7139,7 +7143,7 @@ msgstr "Muspekaren syns aldrig medan ett spel körs." msgid "Move" msgstr "Flytta" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Inspelning" @@ -7293,8 +7297,8 @@ msgstr "Ny instruktion:" msgid "New tag" msgstr "Ny etikett" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "Nästa spelprofil" @@ -7302,8 +7306,8 @@ msgstr "Nästa spelprofil" msgid "Next Match" msgstr "Nästa matchning" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "Nästa profil" @@ -7663,7 +7667,7 @@ msgstr "Övrigt" msgid "Other Partition (%1)" msgstr "Annan partition (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "Andra snabbsparningskortkommandon" @@ -7859,7 +7863,7 @@ msgstr "Spela" msgid "Play / Record" msgstr "Spela / spela in" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Spela upp inspelning" @@ -7949,7 +7953,7 @@ msgstr "" msgid "Presets" msgstr "Förval" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Synkknapptryckning" @@ -7972,8 +7976,9 @@ msgstr "" "

Rekommenderas inte. Använd bara detta om de andra " "alternativen ger dåliga resultat." -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "Föregående spelprofil" @@ -7981,8 +7986,8 @@ msgstr "Föregående spelprofil" msgid "Previous Match" msgstr "Föregående matchning" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "Föregående profil" @@ -8032,7 +8037,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "Program Counter" @@ -8159,7 +8164,7 @@ msgstr "Endast läs" msgid "Read or Write" msgstr "Läs eller skriv" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "Skrivskyddat läge" @@ -8356,7 +8361,7 @@ msgid "Request to Join Your Party" msgstr "Förfrågan att vara med i din grupp" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8631,7 +8636,7 @@ msgstr "Sparfiler (*.sav);;Alla filer (*)" msgid "Save Import" msgstr "Sparfilsimportering" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "Spara äldsta snabbsparning" @@ -8643,49 +8648,49 @@ msgstr "Spara förinställningar" msgid "Save Recording File As" msgstr "Spara inspelning som" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Spara snabbsparning" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "Spara snabbsparningsplats 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "Spara snabbsparningsplats 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "Spara snabbsparningsplats 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "Spara snabbsparningsplats 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "Spara snabbsparningsplats 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "Spara snabbsparningsplats 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "Spara snabbsparningsplats 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "Spara snabbsparningsplats 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "Spara snabbsparningsplats 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "Spara snabbsparningsplats 9" @@ -8751,7 +8756,7 @@ msgstr "Spara map-fil" msgid "Save signature file" msgstr "Spara signaturfil" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "Spara på vald plats" @@ -8897,7 +8902,7 @@ msgstr "Välj Riivolution-XML-fil" msgid "Select Slot %1 - %2" msgstr "Välj plats %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "Välj snabbsparning" @@ -8905,43 +8910,43 @@ msgstr "Välj snabbsparning" msgid "Select State Slot" msgstr "Välj snabbsparningsplats" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Välj snabbsparningsplats 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Välj snabbsparningsplats 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Välj snabbsparningsplats 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Välj snabbsparningsplats 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Välj snabbsparningsplats 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Välj snabbsparningsplats 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Välj snabbsparningsplats 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Välj snabbsparningsplats 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Välj snabbsparningsplats 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Välj snabbsparningsplats 9" @@ -9173,7 +9178,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "Sätt PC" @@ -9375,7 +9380,7 @@ msgid "Show PAL" msgstr "Visa PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "Visa PC" @@ -9569,7 +9574,7 @@ msgstr "" "Sträckningsbuffertens storlek i millisekunder. Om värdet är för lågt kan " "ljudet låta hackigt." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Hoppa över" @@ -9763,7 +9768,7 @@ msgstr "Starta ny fusksökning" msgid "Start Re&cording Input" msgstr "Starta &inspelning" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9804,19 +9809,19 @@ msgstr "Stega" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "Stega in" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "Stega ut" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "Stega över" @@ -9836,7 +9841,7 @@ msgstr "Överstegning pågår..." msgid "Step successful!" msgstr "Stegning lyckades!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "Stega" @@ -10647,7 +10652,7 @@ msgstr "" "Denna Action Replay-simulator stöder inte koder som förändrar själva Action " "Replay." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10797,7 +10802,7 @@ msgstr "Denna titel är inställd på att använda ett ogiltigt IOS." msgid "This title is set to use an invalid common key." msgstr "Denna titel är inställd på att använda en ogiltig gemensam nyckel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10809,7 +10814,7 @@ msgstr "" "\n" "DSPHLE: Okänd µcode (CRC = {0:08x}) - AX kommer användas." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10906,15 +10911,15 @@ msgstr "Till:" msgid "Toggle &Fullscreen" msgstr "&Helskärm" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "Slå på/av 3D-anaglyf" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "Slå på/av 3D sida-vid-sida" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "Slå på/av 3D topp-och-botten" @@ -10922,28 +10927,28 @@ msgstr "Slå på/av 3D topp-och-botten" msgid "Toggle All Log Types" msgstr "Slå på/av alla loggtyper" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "Växla bildförhållande" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Slå på/av brytpunkt" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Slå på/av beskärning" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Slå på/av anpassade texturer" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "Slå på/av EFB-kopior" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Slå på/av dimma" @@ -10955,27 +10960,27 @@ msgstr "Slå på/av helskärm" msgid "Toggle Pause" msgstr "Slå på/av paus" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "Mata in/ut SD-kort" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "Växla Hoppa över EFB-åtkomst" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Slå på/av texturdumpning" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "Slå på/av USB-tangentbord" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "Slå på/av XFB-kopior" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "Slå på/av omedelbar XFB-presentation" @@ -11193,11 +11198,11 @@ msgstr "Obunden" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "Okomprimerade GC/Wii-skivavbildningar (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Ångra inläsning av snabbsparning" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Ångra snabbsparning" @@ -11303,7 +11308,7 @@ msgstr "" msgid "Unlimited" msgstr "Obegränsad" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "Ladda ur ROM" @@ -11661,22 +11666,22 @@ msgstr "Virtuella jack" msgid "Virtual address space" msgstr "Virtuellt adressutrymme" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Volym" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Volym ner" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Slå på/av ljudvolym" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Volym upp" @@ -11946,7 +11951,7 @@ msgstr "Enheter som används med USB-genomsläppning" msgid "Widescreen Hack" msgstr "Bredbildshack" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 5448aaea7a..c4e6a9d2b4 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -738,12 +738,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -776,19 +776,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D Derinlik" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -808,7 +808,7 @@ msgstr "4 Mbit (59 blok)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1072,7 +1072,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1123,11 +1123,11 @@ msgstr "Yeni USB Aygıtı Ekle" msgid "Add Shortcut to Desktop" msgstr "Masaüstüne kısayol oluştur" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "Kesim Noktası Ekle" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "Hafıza Kesim Noktası Ekle" @@ -1765,7 +1765,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1779,7 +1779,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1857,7 +1857,7 @@ msgstr "Düğme" msgid "Buttons" msgstr "Düğmeler" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -2005,6 +2005,10 @@ msgstr "" msgid "Center" msgstr "Merkez" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2286,7 +2290,7 @@ msgstr "" msgid "Connect" msgstr "Bağlan" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "Balance Board Bağla" @@ -2298,19 +2302,19 @@ msgstr "USB Klavye Bağla" msgid "Connect Wii Remote %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "1. Wii Remote'u Bağla" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "2. Wii Remote'u Bağla" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "3. Wii Remote'u Bağla" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "4. Wii Remote'u Bağla" @@ -2348,7 +2352,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "Devamlı Arama" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2361,19 +2365,19 @@ msgstr "Kontrol Çubuğu" msgid "Controller Profile" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2856,20 +2860,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "Yakınsamayı Azalt" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "Derinliği Azalt" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "Emülasyon Hızını Düşür" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "IR'yi Azalt" @@ -2968,7 +2972,7 @@ msgstr "Açıklama" msgid "Description:" msgstr "Açıklama:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3065,7 +3069,7 @@ msgstr "Kopyalama Filtresini Devre Dışı Bırak" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "Emülasyon Hızı Limitini Kapat" @@ -3568,7 +3572,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4076,7 +4080,7 @@ msgstr "Tüm Wii Kayıtlarını Ver" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "Çekimi Ver" @@ -4794,20 +4798,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "Kare İlerletme" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "Kare İlerletme Hızını Düşür" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "Kare İlerletme Hızını Arttır" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "Kare İlerletme Hızını Sıfırla" @@ -4864,11 +4868,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "Serbest Bakış" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4926,7 +4930,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4938,11 +4942,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5190,7 +5194,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko Kodları" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5258,7 +5262,7 @@ msgstr "Grafikler" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "Grafik Geçişleri" @@ -5435,7 +5439,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "Kısayol Tuşu Ayarları" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5663,20 +5667,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "Yakınsamayı Arttır" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "Derinliği Arttır" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "Emülasyon Hızını Arttır" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "IR'yi Arttır" @@ -5822,7 +5826,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "İç LZO Hatası - lzo_init() başarısız." -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6218,7 +6222,7 @@ msgstr "Özel Dokuları Yükle" msgid "Load GameCube Main Menu" msgstr "GameCube Ana Menüsü'nü Yükle" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "Son Durumu Yükle" @@ -6227,92 +6231,92 @@ msgstr "Son Durumu Yükle" msgid "Load Path:" msgstr "Yükleme Yolu:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "Son 1. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "Son 10. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "Son 2. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "Son 3. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "Son 4. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "Son 5. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "Son 6. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "Son 7. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "Son 8. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "Son 9. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "1. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "10. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "2. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "3. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "4. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "5. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "6. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "7. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "8. Durumu Yükle" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "9. Durumu Yükle" @@ -6336,7 +6340,7 @@ msgstr "Wii Kaydını Yükle" msgid "Load Wii System Menu %1" msgstr "Wii Sistem Menüsünü Yükle %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "Seçili Yuvadan Yükle" @@ -6657,7 +6661,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "Film" @@ -6811,8 +6815,8 @@ msgstr "" msgid "New tag" msgstr "Yeni etiket" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6820,8 +6824,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7167,7 +7171,7 @@ msgstr "Diğer" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7363,7 +7367,7 @@ msgstr "Oynat" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "Çekimi Oynat" @@ -7449,7 +7453,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "Sync düğmesine basın" @@ -7467,8 +7471,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7476,8 +7481,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7521,7 +7526,7 @@ msgstr "" msgid "Profile" msgstr "Profil" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7647,7 +7652,7 @@ msgstr "Salt okunur" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7833,7 +7838,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8108,7 +8113,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "En Eski Durumu kaydet" @@ -8120,49 +8125,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "Durumu Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "1. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "10. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "2. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "3. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "4. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "5. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "6. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "7. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "8. Duruma Kaydet" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "9. Duruma Kaydet" @@ -8225,7 +8230,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8369,7 +8374,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8377,43 +8382,43 @@ msgstr "" msgid "Select State Slot" msgstr "Durum Yuvası Seç" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "Durum Yuvası 1 Seç" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "Durum Yuvası 10 Seç" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "Durum Yuvası 2 Seç" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "Durum Yuvası 3 Seç" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "Durum Yuvası 4 Seç" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "Durum Yuvası 5 Seç" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "Durum Yuvası 6 Seç" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "Durum Yuvası 7 Seç" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "Durum Yuvası 8 Seç" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "Durum Yuvası 9 Seç" @@ -8609,7 +8614,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "PC'yi Ayarla" @@ -8805,7 +8810,7 @@ msgid "Show PAL" msgstr "PAL'ları Göster" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "PC'yi Göster" @@ -8987,7 +8992,7 @@ msgstr "" "Milisaniye bazında geciktirme arabelleğinin boyutu. Çok düşük değerler, ses " "sorunlarına neden olabilir." -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "Atla" @@ -9162,7 +9167,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9203,19 +9208,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9235,7 +9240,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9974,7 +9979,7 @@ msgid "" msgstr "" "Bu Action Replay simülatörü, kodların kendisini düzenlemesini desteklemiyor." -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10094,7 +10099,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10102,7 +10107,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10184,15 +10189,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "&Tam Ekran Moduna Geç" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "3D Anaglif'i Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10200,28 +10205,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "Tüm Geçmiş Türlerini Seç" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "En-boy Oranını Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "Kesim Noktasını Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "Kırpmayı Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "Özel Dokuları Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "EFB Kopyalarını Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "Sisi Aç/Kapat" @@ -10233,27 +10238,27 @@ msgstr "Tam Ekran Moduna Geç" msgid "Toggle Pause" msgstr "Duraklat Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "Doku Dökümünü Aç/Kapat" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10448,11 +10453,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "Durum Yüklemeyi Geri Al" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "Durum Kaydetmeyi Geri Al" @@ -10551,7 +10556,7 @@ msgstr "" msgid "Unlimited" msgstr "Sınırsız" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10881,22 +10886,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "Ses" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "Sesi yükselt" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "Sesi Kapat/Aç" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "Sesi Yükselt" @@ -11101,7 +11106,7 @@ msgstr "Beyaz Listeye Alınmış USB Geçiş Aygıtları" msgid "Widescreen Hack" msgstr "Geniş Ekran Hilesi" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 9ab7c29f4b..91e7c0fc22 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -745,12 +745,12 @@ msgstr "16:9" msgid "16x" msgstr "16x" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "1x" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "2x" @@ -783,19 +783,19 @@ msgid "32-bit Unsigned Integer" msgstr "32 位无符号整数" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "3D" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "3D 深度" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "3x" @@ -815,7 +815,7 @@ msgstr "4 Mbit (59 区块)" msgid "4:3" msgstr "4:3" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "4x" @@ -1013,7 +1013,7 @@ msgstr "加速度计" #. i18n: Percentage value of accelerometer data (complementary filter coefficient). #: Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp:44 msgid "Accelerometer Influence" -msgstr "" +msgstr "加速度器影响" #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:74 msgid "Accuracy:" @@ -1099,7 +1099,7 @@ msgstr "Action Replay: 正常代码 0: 无效子类型 {0:08x} ({1})" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "Action Replay: 正常代码 {0}: 无效子类型 {1:08x} ({2})" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "激活联机聊天" @@ -1150,11 +1150,11 @@ msgstr "添加新的 USB 设备" msgid "Add Shortcut to Desktop" msgstr "添加快捷方式到桌面" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "添加一个断点" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "添加内存断点" @@ -1577,7 +1577,7 @@ msgstr "自动检测 RSO 模块?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:196 msgid "Automatically Sync with Folder" -msgstr "" +msgstr "自动与文件夹同步" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:212 msgid "" @@ -1816,7 +1816,7 @@ msgstr "分支" msgid "Break" msgstr "中断" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "断点" @@ -1830,7 +1830,7 @@ msgid "Breakpoints" msgstr "断点" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1847,7 +1847,7 @@ msgstr "宽带适配器(tap 服务器)" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:57 msgid "Broadband Adapter DNS setting" -msgstr "" +msgstr "宽带适配器 DNS 设置" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:106 msgid "Broadband Adapter Error" @@ -1910,7 +1910,7 @@ msgstr "按键" msgid "Buttons" msgstr "按键" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "作者:" @@ -2063,6 +2063,10 @@ msgstr "卡大小" msgid "Center" msgstr "中心" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "中心和校准" @@ -2100,9 +2104,9 @@ msgid "" msgstr "" "在自由视点下更改游戏中的镜头类型。

六轴:在所有轴上提供完整的镜头控" "制,类似于在零重力下移动航天器。这是功能最强大的自由视点选项,但使用起来最具" -"挑战性。

第一人称视角:控制自由镜头类似于第一人称视角游戏。镜头可以" -"旋转和移动,但无法滚动。 易于使用,但有局限性。

轨道:将自由镜头围绕原" -"始镜头旋转。没有横向移动,只能旋转,可以放大视角到镜头的原点。" +"挑战性。

第一人称视角:控制自由镜头类似于第一人称视角游戏。镜头可以旋" +"转和移动,但无法滚动。易于使用,但有局限性。

轨道:将自由镜头围绕原始" +"镜头旋转。没有横向移动,只能旋转,可以放大视角到镜头的原点。" #: Source/Core/DolphinQt/Config/CheatWarningWidget.cpp:66 msgid "Changing cheats will only take effect when the game is restarted." @@ -2349,7 +2353,7 @@ msgstr "确认" msgid "Connect" msgstr "连接" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "连接平衡板" @@ -2361,19 +2365,19 @@ msgstr "连接 USB 键盘" msgid "Connect Wii Remote %1" msgstr "连接 Wii 遥控器 %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "连接 Wii 遥控器 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "连接 Wii 遥控器 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "连接 Wii 遥控器 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "连接 Wii 遥控器 4" @@ -2409,7 +2413,7 @@ msgstr "内容 {0:08x} 已损坏。" msgid "Continuous Scanning" msgstr "持续扫描" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "控制联机高尔夫模式" @@ -2422,19 +2426,19 @@ msgstr "控制摇杆" msgid "Controller Profile" msgstr "控制器预设" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "控制器预设 1" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "控制器预设 2" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "控制器预设 3" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "控制器预设 4" @@ -2508,7 +2512,7 @@ msgstr "会聚:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Conversion failed." -msgstr "" +msgstr "转换失败。" #: Source/Core/DolphinQt/ConvertDialog.cpp:41 msgid "Convert" @@ -2518,7 +2522,7 @@ msgstr "转换" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:236 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:245 msgid "Convert File to Folder Now" -msgstr "" +msgstr "立即将文件转换为文件夹" #: Source/Core/DolphinQt/GameList/GameList.cpp:414 msgid "Convert File..." @@ -2528,7 +2532,7 @@ msgstr "转换文件..." #: Source/Core/DolphinQt/Settings/WiiPane.cpp:222 #: Source/Core/DolphinQt/Settings/WiiPane.cpp:231 msgid "Convert Folder to File Now" -msgstr "" +msgstr "立即将文件夹转换为文件" #: Source/Core/DolphinQt/GameList/GameList.cpp:378 msgid "Convert Selected Files..." @@ -2951,20 +2955,20 @@ msgstr "解码质量:" msgid "Decrease" msgstr "减小" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "减小会聚" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "减小深度" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "减小模拟速度" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "减小内部分辨率" @@ -3066,7 +3070,7 @@ msgstr "说明" msgid "Description:" msgstr "说明:" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "说明:" @@ -3167,7 +3171,7 @@ msgstr "禁用复制过滤" msgid "Disable EFB VRAM Copies" msgstr "禁用 EFB VRAM 副本" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "禁用模拟速度限制" @@ -3488,7 +3492,7 @@ msgstr "转储帧" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:358 msgid "Dump GameCube BBA traffic" -msgstr "" +msgstr "转储 GameCube BBA 流量" #: Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp:93 msgid "Dump Mip Maps" @@ -3708,7 +3712,7 @@ msgstr "" "当前: 内存 1 {0:08X} ({1} MiB),内存 2 {2:08X} ({3} MiB)\n" "差异: 内存 1 {4:08X} ({5} MiB),内存 2 {6:08X} ({7} MiB)" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "模拟速度" @@ -3961,7 +3965,7 @@ msgstr "输入密码" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:52 msgid "Enter the DNS server to use:" -msgstr "" +msgstr "输入要使用的 DNS 服务器:" #: Source/Core/DolphinQt/MenuBar.cpp:1278 msgid "Enter the RSO module address:" @@ -4253,7 +4257,7 @@ msgstr "导出所有 Wii 存档" msgid "Export Failed" msgstr "导出失败" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "导出录制" @@ -5009,20 +5013,20 @@ msgstr "找到 %n 个地址。" msgid "Frame %1" msgstr "帧 %1" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "逐帧播放" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "逐帧播放减小速度" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "逐帧播放增加速度" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "逐帧播放重置速度" @@ -5082,11 +5086,11 @@ msgstr "" msgid "FreeLook" msgstr "自由视点" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "自由视点" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "自由视点切换" @@ -5144,7 +5148,7 @@ msgstr "GBA (集成)" msgid "GBA (TCP)" msgstr "GBA (TCP)" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "GBA 核心" @@ -5156,11 +5160,11 @@ msgstr "GBA 端口 %1" msgid "GBA Settings" msgstr "GBA 设置" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "GBA 音量" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "GBA 窗口大小" @@ -5223,7 +5227,7 @@ msgid "" "GPU: ERROR: Need GL_ARB_framebuffer_object for multiple render targets.\n" "GPU: Does your video card support OpenGL 3.0?" msgstr "" -"GPU:错误:需要 GL_ARB_framebuffer_object 渲染目标。\n" +"GPU:错误:需要 GL_ARB_framebuffer_object 来多重渲染目标。\n" "GPU:您的显卡是否支持 OpenGL 3.0?" #: Source/Core/VideoBackends/OGL/OGLMain.cpp:129 @@ -5438,7 +5442,7 @@ msgstr "洞口大小" msgid "Gecko Codes" msgstr "Gecko 代码" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5506,7 +5510,7 @@ msgstr "图形" msgid "Graphics Mods" msgstr "图形模组" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "图形切换" @@ -5689,7 +5693,7 @@ msgstr "主机名" msgid "Hotkey Settings" msgstr "热键设置" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5965,20 +5969,20 @@ msgstr "" msgid "Increase" msgstr "增加" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "增加会聚" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "增加深度" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "增加模拟速度" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "增加内部分辨率" @@ -6004,6 +6008,8 @@ msgid "" "Influence of accelerometer data on pitch and roll. Higher values will reduce " "drift at the cost of noise. Consider values between 1% and 3%." msgstr "" +"加速度器数据对俯仰和翻滚的影响。较高的值将以噪声为代价减少漂移。建议为 1% 到 " +"3% 之间的值。" #: Source/Core/DolphinQt/Config/LogConfigWidget.cpp:48 #: Source/Core/DolphinQt/Config/PropertiesDialog.cpp:68 @@ -6126,7 +6132,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "内部 LZO 错误 - lzo_init() 失败" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6530,7 +6536,7 @@ msgstr "加载自定义纹理" msgid "Load GameCube Main Menu" msgstr "载入 GameCube 主菜单" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "载入最近状态" @@ -6539,92 +6545,92 @@ msgstr "载入最近状态" msgid "Load Path:" msgstr "加载路径:" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "载入 ROM" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "载入状态" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "载入最近状态 1" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "载入最近状态 10" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "载入最近状态 2" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "载入最近状态 3" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "载入最近状态 4" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "载入最近状态 5" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "载入最近状态 6" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "载入最近状态 7" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "载入最近状态 8" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "载入最近状态 9" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "载入状态 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "载入状态 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "载入状态 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "载入状态 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "载入状态 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "载入状态 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "载入状态 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "载入状态 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "载入状态 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "载入状态 9" @@ -6648,7 +6654,7 @@ msgstr "载入 Wii 存档" msgid "Load Wii System Menu %1" msgstr "加载 Wii 系统菜单 %1" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "从选择的插槽中加载" @@ -6991,7 +6997,7 @@ msgstr "游戏运行时鼠标光标将一直不可见。" msgid "Move" msgstr "移动" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "影片" @@ -7005,7 +7011,7 @@ msgstr "影片 {0} 表示从一个保存状态开始播放,但 {1} 不存在 #. i18n: Controller input values are multiplied by this percentage value. #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:322 msgid "Multiplier" -msgstr "" +msgstr "多重分插器" #: qtbase/src/gui/kernel/qplatformtheme.cpp:722 msgid "N&o to All" @@ -7145,8 +7151,8 @@ msgstr "新指令:" msgid "New tag" msgstr "新标签" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "下一个游戏预设" @@ -7154,8 +7160,8 @@ msgstr "下一个游戏预设" msgid "Next Match" msgstr "匹配下一个" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "下一个预设" @@ -7507,7 +7513,7 @@ msgstr "其他" msgid "Other Partition (%1)" msgstr "其他分区 (%1)" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "其他状态热键" @@ -7703,7 +7709,7 @@ msgstr "开始" msgid "Play / Record" msgstr "播放/录制" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "播放录制" @@ -7789,7 +7795,7 @@ msgstr "" msgid "Presets" msgstr "预设" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "按下同步按钮" @@ -7810,8 +7816,9 @@ msgstr "" "但会导致图像瑕疵并破坏效果。

不推荐,仅在其他选项效" "果不好时使用。" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "上一个游戏预设" @@ -7819,8 +7826,8 @@ msgstr "上一个游戏预设" msgid "Previous Match" msgstr "匹配上一个" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "上一个预设" @@ -7864,7 +7871,7 @@ msgstr "发现中等严重性问题。游戏整体或特定部分可能无法正 msgid "Profile" msgstr "预设" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "程序计数器" @@ -7990,7 +7997,7 @@ msgstr "只读" msgid "Read or Write" msgstr "读取或写入" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "只读模式" @@ -8184,7 +8191,7 @@ msgid "Request to Join Your Party" msgstr "请求加入你的派对" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8374,7 +8381,7 @@ msgstr "SD 卡路径:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:168 msgid "SD Card Settings" -msgstr "" +msgstr "SD 卡设置" #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:168 msgid "SD Root:" @@ -8382,7 +8389,7 @@ msgstr "SD 根目录:" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:210 msgid "SD Sync Folder:" -msgstr "" +msgstr "SD 同步文件夹:" #: Source/Core/Core/HW/GBAPadEmu.cpp:18 Source/Core/Core/HW/GBAPadEmu.cpp:27 msgid "SELECT" @@ -8462,7 +8469,7 @@ msgstr "游戏存档文件 (*.sav);;所有文件 (*)" msgid "Save Import" msgstr "存档导入" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "保存到最早状态存档" @@ -8474,49 +8481,49 @@ msgstr "保存预设" msgid "Save Recording File As" msgstr "录制文件另存为" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "保存状态" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "保存状态 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "保存状态 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "保存状态 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "保存状态 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "保存状态 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "保存状态 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "保存状态 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "保存状态 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "保存状态 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "保存状态 9" @@ -8581,7 +8588,7 @@ msgstr "保存映射文件" msgid "Save signature file" msgstr "保存签名文件" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "保存至所选插槽" @@ -8723,7 +8730,7 @@ msgstr "选择 Riivolutione XML 文件" msgid "Select Slot %1 - %2" msgstr "选择插槽 %1 - %2" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "选择状态" @@ -8731,43 +8738,43 @@ msgstr "选择状态" msgid "Select State Slot" msgstr "选择状态插槽" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "选择状态 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "选择状态 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "选择状态 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "选择状态 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "选择状态 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "选择状态 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "选择状态 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "选择状态 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "选择状态 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "选择状态 9" @@ -8795,7 +8802,7 @@ msgstr "选择文件" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:429 msgid "Select a Folder to sync with the SD Card Image" -msgstr "" +msgstr "选择要与 SD 卡镜像同步的文件夹" #: Source/Core/DolphinQt/Settings/PathPane.cpp:47 msgid "Select a Game" @@ -8987,7 +8994,7 @@ msgid "Set &blr" msgstr "设置 blr (&B)" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "设置 PC" @@ -9186,7 +9193,7 @@ msgid "Show PAL" msgstr "显示 PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "显示 PC" @@ -9376,7 +9383,7 @@ msgid "" "crackling." msgstr "伸缩缓冲区的大小,以毫秒计。数值过低可能导致噼啪声。" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "跳过" @@ -9563,7 +9570,7 @@ msgstr "开始新的金手指搜索" msgid "Start Re&cording Input" msgstr "开始录制输入(&C)" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9604,19 +9611,19 @@ msgstr "单步" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "跳入" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "单步跳出" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "单步跳过" @@ -9636,7 +9643,7 @@ msgstr "跳过正在处理..." msgid "Step successful!" msgstr "单步成功!" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "步进" @@ -9923,7 +9930,7 @@ msgstr "" msgid "" "Synchronizes the SD Card with the SD Sync Folder when starting and ending " "emulation." -msgstr "" +msgstr "在开始和结束模拟时将 SD 卡与 SD 同步文件夹同步。" #: Source/Core/Core/NetPlayClient.cpp:1377 msgid "Synchronizing AR codes..." @@ -10418,7 +10425,7 @@ msgid "" "Replay itself." msgstr "此Action Replay模拟器不支持修改Action Replay本身的代码。" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10554,7 +10561,7 @@ msgstr "此游戏设置为使用无效的 IOS。" msgid "This title is set to use an invalid common key." msgstr "此游戏设置为使用无效的公用密钥。" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10565,7 +10572,7 @@ msgstr "" "\n" "DSP HLE: 未知 Ucode (CRC = {0:08x}) - 强制 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10652,15 +10659,15 @@ msgstr "至:" msgid "Toggle &Fullscreen" msgstr "切换全屏(&F)" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "切换色差 3D" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "切换左右 3D" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "切换上下 3D" @@ -10668,28 +10675,28 @@ msgstr "切换上下 3D" msgid "Toggle All Log Types" msgstr "全选/反选所有日志类型" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "切换长宽比" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "切换断点" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "切换画面边界" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "切换自定义纹理" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "切换 EFB 副本" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "切换雾" @@ -10701,27 +10708,27 @@ msgstr "切换全屏" msgid "Toggle Pause" msgstr "切换暂停" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "切换 SD 卡" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "切换跳过 EFB 访问" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "切换纹理转储" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "切换 USB 键盘" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "切换 XFB 副本" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "切换 XFB 立即模式" @@ -10932,11 +10939,11 @@ msgstr "未绑定" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "未压缩的 GC/Wii 镜像 (*.iso *.gcm)" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "撤销载入状态" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "撤销保存状态" @@ -11035,7 +11042,7 @@ msgstr "收到未知的消息,ID:{0} 来自玩家:{1} 剔除玩家!" msgid "Unlimited" msgstr "无限制" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "卸载 ROM" @@ -11140,7 +11147,7 @@ msgstr "使用情况统计报告设置" #: Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp:55 msgid "Use 8.8.8.8 for normal DNS, else enter your custom one" -msgstr "" +msgstr "使用 8.8.8.8 作为通用 DNS,或输入你的自定义设置" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:144 msgid "Use Built-In Database of Game Names" @@ -11395,22 +11402,22 @@ msgstr "虚拟接口" msgid "Virtual address space" msgstr "虚拟地址空间" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "音量" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "减小音量" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "静音切换" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "增大音量" @@ -11655,7 +11662,7 @@ msgstr "USB 直通设备白名单" msgid "Widescreen Hack" msgstr "宽屏修正" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" @@ -11853,6 +11860,8 @@ msgid "" "%1. All current content of the folder will be deleted. Are you sure you want " "to continue?" msgstr "" +"即将把 %2 的文件内容转换到 %1 的文件夹中。文件夹的所有当前内容将被删除。请确" +"定是否要继续?" #: Source/Core/DolphinQt/Settings/WiiPane.cpp:223 msgid "" @@ -11860,6 +11869,8 @@ msgid "" "%2. All current content of the file will be deleted. Are you sure you want " "to continue?" msgstr "" +"即将把 %1 的文件夹内容转换到 %2 的文件中。文件的所有当前内容将被删除。请确定" +"是否要继续?" #: Source/Core/DolphinQt/NKitWarningDialog.cpp:36 msgid "" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index 0351fdcf20..95ddbaf78f 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-25 10:54+0200\n" +"POT-Creation-Date: 2022-07-29 22:48+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -717,12 +717,12 @@ msgstr "" msgid "16x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:190 +#: Source/Core/Core/HotkeyManager.cpp:191 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "1x" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:191 +#: Source/Core/Core/HotkeyManager.cpp:192 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "2x" msgstr "" @@ -755,19 +755,19 @@ msgid "32-bit Unsigned Integer" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:344 +#: Source/Core/Core/HotkeyManager.cpp:345 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:22 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:447 msgid "3D" msgstr "" #. i18n: Stereoscopic 3D -#: Source/Core/Core/HotkeyManager.cpp:346 +#: Source/Core/Core/HotkeyManager.cpp:347 #: Source/Core/DolphinQt/Config/Mapping/Hotkey3D.cpp:25 msgid "3D Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:192 +#: Source/Core/Core/HotkeyManager.cpp:193 msgid "3x" msgstr "" @@ -787,7 +787,7 @@ msgstr "" msgid "4:3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:193 +#: Source/Core/Core/HotkeyManager.cpp:194 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:76 msgid "4x" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:38 +#: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" msgstr "" @@ -1090,11 +1090,11 @@ msgstr "" msgid "Add Shortcut to Desktop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:76 +#: Source/Core/Core/HotkeyManager.cpp:77 msgid "Add a Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:77 +#: Source/Core/Core/HotkeyManager.cpp:78 msgid "Add a Memory Breakpoint" msgstr "" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Break" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:334 +#: Source/Core/Core/HotkeyManager.cpp:335 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:26 msgid "Breakpoint" msgstr "" @@ -1744,7 +1744,7 @@ msgid "Breakpoints" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 -msgid "Broadband Adapter (Built In)" +msgid "Broadband Adapter (HLE)" msgstr "" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 @@ -1822,7 +1822,7 @@ msgstr "按鈕" msgid "Buttons" msgstr "按鈕" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:214 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:205 msgid "By: " msgstr "" @@ -1969,6 +1969,10 @@ msgstr "" msgid "Center" msgstr "" +#: Source/Core/Core/HotkeyManager.cpp:38 +msgid "Center Mouse" +msgstr "" + #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" msgstr "" @@ -2250,7 +2254,7 @@ msgstr "" msgid "Connect" msgstr "連接" -#: Source/Core/Core/HotkeyManager.cpp:84 Source/Core/DolphinQt/MenuBar.cpp:302 +#: Source/Core/Core/HotkeyManager.cpp:85 Source/Core/DolphinQt/MenuBar.cpp:302 msgid "Connect Balance Board" msgstr "連接平衡板" @@ -2262,19 +2266,19 @@ msgstr "連接 USB 鍵盤" msgid "Connect Wii Remote %1" msgstr "連接 Wii Remote %1" -#: Source/Core/Core/HotkeyManager.cpp:80 +#: Source/Core/Core/HotkeyManager.cpp:81 msgid "Connect Wii Remote 1" msgstr "連接 Wii Remote 1" -#: Source/Core/Core/HotkeyManager.cpp:81 +#: Source/Core/Core/HotkeyManager.cpp:82 msgid "Connect Wii Remote 2" msgstr "連接 Wii Remote 2" -#: Source/Core/Core/HotkeyManager.cpp:82 +#: Source/Core/Core/HotkeyManager.cpp:83 msgid "Connect Wii Remote 3" msgstr "連接 Wii Remote 3" -#: Source/Core/Core/HotkeyManager.cpp:83 +#: Source/Core/Core/HotkeyManager.cpp:84 msgid "Connect Wii Remote 4" msgstr "連接 Wii Remote 4" @@ -2310,7 +2314,7 @@ msgstr "" msgid "Continuous Scanning" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:39 +#: Source/Core/Core/HotkeyManager.cpp:40 msgid "Control NetPlay Golf Mode" msgstr "" @@ -2323,19 +2327,19 @@ msgstr "" msgid "Controller Profile" msgstr "控制器設定檔" -#: Source/Core/Core/HotkeyManager.cpp:336 +#: Source/Core/Core/HotkeyManager.cpp:337 msgid "Controller Profile 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:337 +#: Source/Core/Core/HotkeyManager.cpp:338 msgid "Controller Profile 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:338 +#: Source/Core/Core/HotkeyManager.cpp:339 msgid "Controller Profile 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:339 +#: Source/Core/Core/HotkeyManager.cpp:340 msgid "Controller Profile 4" msgstr "" @@ -2810,20 +2814,20 @@ msgstr "" msgid "Decrease" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:127 +#: Source/Core/Core/HotkeyManager.cpp:128 msgid "Decrease Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:125 +#: Source/Core/Core/HotkeyManager.cpp:126 msgid "Decrease Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:45 +#: Source/Core/Core/HotkeyManager.cpp:46 msgid "Decrease Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:118 +#: Source/Core/Core/HotkeyManager.cpp:119 msgid "Decrease IR" msgstr "" @@ -2922,7 +2926,7 @@ msgstr "描述" msgid "Description:" msgstr "" -#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:221 +#: Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp:212 msgid "Description: " msgstr "" @@ -3019,7 +3023,7 @@ msgstr "" msgid "Disable EFB VRAM Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:47 +#: Source/Core/Core/HotkeyManager.cpp:48 msgid "Disable Emulation Speed Limit" msgstr "" @@ -3520,7 +3524,7 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:329 +#: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 msgid "Emulation Speed" msgstr "" @@ -4020,7 +4024,7 @@ msgstr "匯出全部 Wii 存檔" msgid "Export Failed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:56 +#: Source/Core/Core/HotkeyManager.cpp:57 msgid "Export Recording" msgstr "匯出錄像" @@ -4738,20 +4742,20 @@ msgstr "" msgid "Frame %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:49 Source/Core/Core/HotkeyManager.cpp:330 +#: Source/Core/Core/HotkeyManager.cpp:50 Source/Core/Core/HotkeyManager.cpp:331 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:21 msgid "Frame Advance" msgstr "畫格步進" -#: Source/Core/Core/HotkeyManager.cpp:50 +#: Source/Core/Core/HotkeyManager.cpp:51 msgid "Frame Advance Decrease Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:51 +#: Source/Core/Core/HotkeyManager.cpp:52 msgid "Frame Advance Increase Speed" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:52 +#: Source/Core/Core/HotkeyManager.cpp:53 msgid "Frame Advance Reset Speed" msgstr "" @@ -4808,11 +4812,11 @@ msgstr "" msgid "FreeLook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:342 +#: Source/Core/Core/HotkeyManager.cpp:343 msgid "Freelook" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:120 +#: Source/Core/Core/HotkeyManager.cpp:121 msgid "Freelook Toggle" msgstr "" @@ -4870,7 +4874,7 @@ msgstr "" msgid "GBA (TCP)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:353 msgid "GBA Core" msgstr "" @@ -4882,11 +4886,11 @@ msgstr "" msgid "GBA Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:353 +#: Source/Core/Core/HotkeyManager.cpp:354 msgid "GBA Volume" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:354 +#: Source/Core/Core/HotkeyManager.cpp:355 msgid "GBA Window Size" msgstr "" @@ -5134,7 +5138,7 @@ msgstr "" msgid "Gecko Codes" msgstr "Gecko 代碼" -#: Source/Core/Core/HotkeyManager.cpp:327 +#: Source/Core/Core/HotkeyManager.cpp:328 #: Source/Core/DolphinQt/Config/GameConfigWidget.cpp:195 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:69 #: Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp:98 @@ -5202,7 +5206,7 @@ msgstr "影像" msgid "Graphics Mods" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:340 +#: Source/Core/Core/HotkeyManager.cpp:341 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:20 msgid "Graphics Toggles" msgstr "" @@ -5379,7 +5383,7 @@ msgstr "" msgid "Hotkey Settings" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:204 +#: Source/Core/Core/HotkeyManager.cpp:205 #: Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp:289 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:41 msgid "Hotkeys" @@ -5607,20 +5611,20 @@ msgstr "" msgid "Increase" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:128 +#: Source/Core/Core/HotkeyManager.cpp:129 msgid "Increase Convergence" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:126 +#: Source/Core/Core/HotkeyManager.cpp:127 msgid "Increase Depth" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:46 +#: Source/Core/Core/HotkeyManager.cpp:47 msgid "Increase Emulation Speed" msgstr "" #. i18n: IR stands for internal resolution -#: Source/Core/Core/HotkeyManager.cpp:116 +#: Source/Core/Core/HotkeyManager.cpp:117 msgid "Increase IR" msgstr "" @@ -5766,7 +5770,7 @@ msgstr "" msgid "Internal LZO Error - lzo_init() failed" msgstr "內部 LZO 錯誤 - lzo_init() 失敗" -#: Source/Core/Core/HotkeyManager.cpp:341 +#: Source/Core/Core/HotkeyManager.cpp:342 #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:375 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGraphics.cpp:27 msgid "Internal Resolution" @@ -6162,7 +6166,7 @@ msgstr "" msgid "Load GameCube Main Menu" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:350 +#: Source/Core/Core/HotkeyManager.cpp:351 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:22 msgid "Load Last State" msgstr "" @@ -6171,92 +6175,92 @@ msgstr "" msgid "Load Path:" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:182 +#: Source/Core/Core/HotkeyManager.cpp:183 msgid "Load ROM" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:180 -#: Source/Core/Core/HotkeyManager.cpp:347 +#: Source/Core/Core/HotkeyManager.cpp:181 +#: Source/Core/Core/HotkeyManager.cpp:348 msgid "Load State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:165 +#: Source/Core/Core/HotkeyManager.cpp:166 msgid "Load State Last 1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:174 +#: Source/Core/Core/HotkeyManager.cpp:175 msgid "Load State Last 10" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:166 +#: Source/Core/Core/HotkeyManager.cpp:167 msgid "Load State Last 2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:167 +#: Source/Core/Core/HotkeyManager.cpp:168 msgid "Load State Last 3" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:168 +#: Source/Core/Core/HotkeyManager.cpp:169 msgid "Load State Last 4" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:169 +#: Source/Core/Core/HotkeyManager.cpp:170 msgid "Load State Last 5" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:170 +#: Source/Core/Core/HotkeyManager.cpp:171 msgid "Load State Last 6" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:171 +#: Source/Core/Core/HotkeyManager.cpp:172 msgid "Load State Last 7" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:172 +#: Source/Core/Core/HotkeyManager.cpp:173 msgid "Load State Last 8" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:173 +#: Source/Core/Core/HotkeyManager.cpp:174 msgid "Load State Last 9" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:130 +#: Source/Core/Core/HotkeyManager.cpp:131 msgid "Load State Slot 1" msgstr "讀取儲存格 1" -#: Source/Core/Core/HotkeyManager.cpp:139 +#: Source/Core/Core/HotkeyManager.cpp:140 msgid "Load State Slot 10" msgstr "讀取儲存格 10" -#: Source/Core/Core/HotkeyManager.cpp:131 +#: Source/Core/Core/HotkeyManager.cpp:132 msgid "Load State Slot 2" msgstr "讀取儲存格 2" -#: Source/Core/Core/HotkeyManager.cpp:132 +#: Source/Core/Core/HotkeyManager.cpp:133 msgid "Load State Slot 3" msgstr "讀取儲存格 3" -#: Source/Core/Core/HotkeyManager.cpp:133 +#: Source/Core/Core/HotkeyManager.cpp:134 msgid "Load State Slot 4" msgstr "讀取儲存格 4" -#: Source/Core/Core/HotkeyManager.cpp:134 +#: Source/Core/Core/HotkeyManager.cpp:135 msgid "Load State Slot 5" msgstr "讀取儲存格 5" -#: Source/Core/Core/HotkeyManager.cpp:135 +#: Source/Core/Core/HotkeyManager.cpp:136 msgid "Load State Slot 6" msgstr "讀取儲存格 6" -#: Source/Core/Core/HotkeyManager.cpp:136 +#: Source/Core/Core/HotkeyManager.cpp:137 msgid "Load State Slot 7" msgstr "讀取儲存格 7" -#: Source/Core/Core/HotkeyManager.cpp:137 +#: Source/Core/Core/HotkeyManager.cpp:138 msgid "Load State Slot 8" msgstr "讀取儲存格 8" -#: Source/Core/Core/HotkeyManager.cpp:138 +#: Source/Core/Core/HotkeyManager.cpp:139 msgid "Load State Slot 9" msgstr "讀取儲存格 9" @@ -6280,7 +6284,7 @@ msgstr "" msgid "Load Wii System Menu %1" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:140 +#: Source/Core/Core/HotkeyManager.cpp:141 msgid "Load from Selected Slot" msgstr "" @@ -6601,7 +6605,7 @@ msgstr "" msgid "Move" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:331 +#: Source/Core/Core/HotkeyManager.cpp:332 #: Source/Core/DolphinQt/Config/Mapping/HotkeyTAS.cpp:23 msgid "Movie" msgstr "" @@ -6755,8 +6759,8 @@ msgstr "" msgid "New tag" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 -#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 +#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 +#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 msgid "Next Game Profile" msgstr "" @@ -6764,8 +6768,8 @@ msgstr "" msgid "Next Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:88 Source/Core/Core/HotkeyManager.cpp:92 -#: Source/Core/Core/HotkeyManager.cpp:96 Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 +#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 msgid "Next Profile" msgstr "" @@ -7111,7 +7115,7 @@ msgstr "" msgid "Other Partition (%1)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:351 +#: Source/Core/Core/HotkeyManager.cpp:352 #: Source/Core/DolphinQt/Config/Mapping/HotkeyStatesOther.cpp:25 msgid "Other State Hotkeys" msgstr "" @@ -7307,7 +7311,7 @@ msgstr "執行" msgid "Play / Record" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:55 +#: Source/Core/Core/HotkeyManager.cpp:56 msgid "Play Recording" msgstr "播放錄像" @@ -7391,7 +7395,7 @@ msgstr "" msgid "Presets" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:79 +#: Source/Core/Core/HotkeyManager.cpp:80 msgid "Press Sync Button" msgstr "" @@ -7409,8 +7413,9 @@ msgid "" "dolphin_emphasis>" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:91 Source/Core/Core/HotkeyManager.cpp:95 -#: Source/Core/Core/HotkeyManager.cpp:99 Source/Core/Core/HotkeyManager.cpp:103 +#: Source/Core/Core/HotkeyManager.cpp:92 Source/Core/Core/HotkeyManager.cpp:96 +#: Source/Core/Core/HotkeyManager.cpp:100 +#: Source/Core/Core/HotkeyManager.cpp:104 msgid "Previous Game Profile" msgstr "" @@ -7418,8 +7423,8 @@ msgstr "" msgid "Previous Match" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:89 Source/Core/Core/HotkeyManager.cpp:93 -#: Source/Core/Core/HotkeyManager.cpp:97 Source/Core/Core/HotkeyManager.cpp:101 +#: Source/Core/Core/HotkeyManager.cpp:90 Source/Core/Core/HotkeyManager.cpp:94 +#: Source/Core/Core/HotkeyManager.cpp:98 Source/Core/Core/HotkeyManager.cpp:102 msgid "Previous Profile" msgstr "" @@ -7463,7 +7468,7 @@ msgstr "" msgid "Profile" msgstr "設定檔" -#: Source/Core/Core/HotkeyManager.cpp:333 +#: Source/Core/Core/HotkeyManager.cpp:334 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:24 msgid "Program Counter" msgstr "" @@ -7589,7 +7594,7 @@ msgstr "" msgid "Read or Write" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:57 +#: Source/Core/Core/HotkeyManager.cpp:58 msgid "Read-Only Mode" msgstr "" @@ -7775,7 +7780,7 @@ msgid "Request to Join Your Party" msgstr "" #: Source/Core/Core/FreeLookManager.cpp:97 -#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:184 +#: Source/Core/Core/HotkeyManager.cpp:33 Source/Core/Core/HotkeyManager.cpp:185 #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:899 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:136 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:94 @@ -8050,7 +8055,7 @@ msgstr "" msgid "Save Import" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:176 +#: Source/Core/Core/HotkeyManager.cpp:177 msgid "Save Oldest State" msgstr "" @@ -8062,49 +8067,49 @@ msgstr "" msgid "Save Recording File As" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:179 -#: Source/Core/Core/HotkeyManager.cpp:348 +#: Source/Core/Core/HotkeyManager.cpp:180 +#: Source/Core/Core/HotkeyManager.cpp:349 #: Source/Core/DolphinQt/GBAWidget.cpp:413 msgid "Save State" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:142 +#: Source/Core/Core/HotkeyManager.cpp:143 msgid "Save State Slot 1" msgstr "儲存至儲存格 1" -#: Source/Core/Core/HotkeyManager.cpp:151 +#: Source/Core/Core/HotkeyManager.cpp:152 msgid "Save State Slot 10" msgstr "儲存至儲存格 10" -#: Source/Core/Core/HotkeyManager.cpp:143 +#: Source/Core/Core/HotkeyManager.cpp:144 msgid "Save State Slot 2" msgstr "儲存至儲存格 2" -#: Source/Core/Core/HotkeyManager.cpp:144 +#: Source/Core/Core/HotkeyManager.cpp:145 msgid "Save State Slot 3" msgstr "儲存至儲存格 3" -#: Source/Core/Core/HotkeyManager.cpp:145 +#: Source/Core/Core/HotkeyManager.cpp:146 msgid "Save State Slot 4" msgstr "儲存至儲存格 4" -#: Source/Core/Core/HotkeyManager.cpp:146 +#: Source/Core/Core/HotkeyManager.cpp:147 msgid "Save State Slot 5" msgstr "儲存至儲存格 5" -#: Source/Core/Core/HotkeyManager.cpp:147 +#: Source/Core/Core/HotkeyManager.cpp:148 msgid "Save State Slot 6" msgstr "儲存至儲存格 6" -#: Source/Core/Core/HotkeyManager.cpp:148 +#: Source/Core/Core/HotkeyManager.cpp:149 msgid "Save State Slot 7" msgstr "儲存至儲存格 7" -#: Source/Core/Core/HotkeyManager.cpp:149 +#: Source/Core/Core/HotkeyManager.cpp:150 msgid "Save State Slot 8" msgstr "儲存至儲存格 8" -#: Source/Core/Core/HotkeyManager.cpp:150 +#: Source/Core/Core/HotkeyManager.cpp:151 msgid "Save State Slot 9" msgstr "儲存至儲存格 9" @@ -8167,7 +8172,7 @@ msgstr "" msgid "Save signature file" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:152 +#: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" msgstr "" @@ -8309,7 +8314,7 @@ msgstr "" msgid "Select Slot %1 - %2" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:349 +#: Source/Core/Core/HotkeyManager.cpp:350 msgid "Select State" msgstr "" @@ -8317,43 +8322,43 @@ msgstr "" msgid "Select State Slot" msgstr "選擇儲存格" -#: Source/Core/Core/HotkeyManager.cpp:154 +#: Source/Core/Core/HotkeyManager.cpp:155 msgid "Select State Slot 1" msgstr "選擇儲存格 1" -#: Source/Core/Core/HotkeyManager.cpp:163 +#: Source/Core/Core/HotkeyManager.cpp:164 msgid "Select State Slot 10" msgstr "選擇儲存格 10" -#: Source/Core/Core/HotkeyManager.cpp:155 +#: Source/Core/Core/HotkeyManager.cpp:156 msgid "Select State Slot 2" msgstr "選擇儲存格 2" -#: Source/Core/Core/HotkeyManager.cpp:156 +#: Source/Core/Core/HotkeyManager.cpp:157 msgid "Select State Slot 3" msgstr "選擇儲存格 3" -#: Source/Core/Core/HotkeyManager.cpp:157 +#: Source/Core/Core/HotkeyManager.cpp:158 msgid "Select State Slot 4" msgstr "選擇儲存格 4" -#: Source/Core/Core/HotkeyManager.cpp:158 +#: Source/Core/Core/HotkeyManager.cpp:159 msgid "Select State Slot 5" msgstr "選擇儲存格 5" -#: Source/Core/Core/HotkeyManager.cpp:159 +#: Source/Core/Core/HotkeyManager.cpp:160 msgid "Select State Slot 6" msgstr "選擇儲存格 6" -#: Source/Core/Core/HotkeyManager.cpp:160 +#: Source/Core/Core/HotkeyManager.cpp:161 msgid "Select State Slot 7" msgstr "選擇儲存格 7" -#: Source/Core/Core/HotkeyManager.cpp:161 +#: Source/Core/Core/HotkeyManager.cpp:162 msgid "Select State Slot 8" msgstr "選擇儲存格 8" -#: Source/Core/Core/HotkeyManager.cpp:162 +#: Source/Core/Core/HotkeyManager.cpp:163 msgid "Select State Slot 9" msgstr "選擇儲存格 9" @@ -8549,7 +8554,7 @@ msgid "Set &blr" msgstr "" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:73 Source/Core/DolphinQt/ToolBar.cpp:114 +#: Source/Core/Core/HotkeyManager.cpp:74 Source/Core/DolphinQt/ToolBar.cpp:114 msgid "Set PC" msgstr "" @@ -8742,7 +8747,7 @@ msgid "Show PAL" msgstr "顯示 PAL" #. i18n: Here, PC is an acronym for program counter, not personal computer. -#: Source/Core/Core/HotkeyManager.cpp:71 Source/Core/DolphinQt/ToolBar.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:72 Source/Core/DolphinQt/ToolBar.cpp:112 msgid "Show PC" msgstr "" @@ -8922,7 +8927,7 @@ msgid "" "crackling." msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:69 Source/Core/DolphinQt/ToolBar.cpp:110 msgid "Skip" msgstr "" @@ -9097,7 +9102,7 @@ msgstr "" msgid "Start Re&cording Input" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:54 +#: Source/Core/Core/HotkeyManager.cpp:55 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:54 #: Source/Core/DolphinQt/Debugger/CodeDiffDialog.cpp:200 msgid "Start Recording" @@ -9138,19 +9143,19 @@ msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:61 +#: Source/Core/Core/HotkeyManager.cpp:62 msgid "Step Into" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:67 Source/Core/DolphinQt/ToolBar.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:68 Source/Core/DolphinQt/ToolBar.cpp:109 msgid "Step Out" msgstr "" #. i18n: Here, "Step" is a verb. This feature is used for #. going through code step by step. -#: Source/Core/Core/HotkeyManager.cpp:64 Source/Core/DolphinQt/ToolBar.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:65 Source/Core/DolphinQt/ToolBar.cpp:106 msgid "Step Over" msgstr "" @@ -9170,7 +9175,7 @@ msgstr "" msgid "Step successful!" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:332 +#: Source/Core/Core/HotkeyManager.cpp:333 #: Source/Core/DolphinQt/Config/Mapping/HotkeyDebugging.cpp:21 msgid "Stepping" msgstr "" @@ -9902,7 +9907,7 @@ msgid "" "Replay itself." msgstr "Action replay 模擬器不支援被 Action Replay 自身修改的代碼。" -#: Source/Core/Common/x64CPUDetect.cpp:75 +#: Source/Core/Common/x64CPUDetect.cpp:81 msgid "" "This build of Dolphin is not natively compiled for your CPU.\n" "Please run the ARM64 build of Dolphin for a better experience." @@ -10019,7 +10024,7 @@ msgstr "" msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:306 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10027,7 +10032,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:297 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10108,15 +10113,15 @@ msgstr "" msgid "Toggle &Fullscreen" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:124 +#: Source/Core/Core/HotkeyManager.cpp:125 msgid "Toggle 3D Anaglyph" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:122 +#: Source/Core/Core/HotkeyManager.cpp:123 msgid "Toggle 3D Side-by-Side" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:123 +#: Source/Core/Core/HotkeyManager.cpp:124 msgid "Toggle 3D Top-Bottom" msgstr "" @@ -10124,28 +10129,28 @@ msgstr "" msgid "Toggle All Log Types" msgstr "全選/全部取消" -#: Source/Core/Core/HotkeyManager.cpp:106 +#: Source/Core/Core/HotkeyManager.cpp:107 msgid "Toggle Aspect Ratio" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:75 +#: Source/Core/Core/HotkeyManager.cpp:76 #: Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp:851 msgid "Toggle Breakpoint" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:105 +#: Source/Core/Core/HotkeyManager.cpp:106 msgid "Toggle Crop" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:113 +#: Source/Core/Core/HotkeyManager.cpp:114 msgid "Toggle Custom Textures" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:108 +#: Source/Core/Core/HotkeyManager.cpp:109 msgid "Toggle EFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:111 +#: Source/Core/Core/HotkeyManager.cpp:112 msgid "Toggle Fog" msgstr "" @@ -10157,27 +10162,27 @@ msgstr "切換全螢幕" msgid "Toggle Pause" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:85 +#: Source/Core/Core/HotkeyManager.cpp:86 msgid "Toggle SD Card" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:107 +#: Source/Core/Core/HotkeyManager.cpp:108 msgid "Toggle Skip EFB Access" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:112 +#: Source/Core/Core/HotkeyManager.cpp:113 msgid "Toggle Texture Dumping" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:86 +#: Source/Core/Core/HotkeyManager.cpp:87 msgid "Toggle USB Keyboard" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:109 +#: Source/Core/Core/HotkeyManager.cpp:110 msgid "Toggle XFB Copies" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:110 +#: Source/Core/Core/HotkeyManager.cpp:111 msgid "Toggle XFB Immediate Mode" msgstr "" @@ -10372,11 +10377,11 @@ msgstr "" msgid "Uncompressed GC/Wii images (*.iso *.gcm)" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:177 Source/Core/DolphinQt/MenuBar.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:335 msgid "Undo Load State" msgstr "取消讀取進度" -#: Source/Core/Core/HotkeyManager.cpp:178 Source/Core/DolphinQt/MenuBar.cpp:352 +#: Source/Core/Core/HotkeyManager.cpp:179 Source/Core/DolphinQt/MenuBar.cpp:352 msgid "Undo Save State" msgstr "取消儲存進度" @@ -10473,7 +10478,7 @@ msgstr "" msgid "Unlimited" msgstr "無限制" -#: Source/Core/Core/HotkeyManager.cpp:183 +#: Source/Core/Core/HotkeyManager.cpp:184 msgid "Unload ROM" msgstr "" @@ -10802,22 +10807,22 @@ msgstr "" msgid "Virtual address space" msgstr "" -#: Source/Core/Core/HotkeyManager.cpp:328 +#: Source/Core/Core/HotkeyManager.cpp:329 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:23 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:24 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:60 msgid "Volume" msgstr "音量" -#: Source/Core/Core/HotkeyManager.cpp:41 Source/Core/Core/HotkeyManager.cpp:186 +#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 msgid "Volume Down" msgstr "降低音量" -#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 +#: Source/Core/Core/HotkeyManager.cpp:44 Source/Core/Core/HotkeyManager.cpp:189 msgid "Volume Toggle Mute" msgstr "音量切換至靜音" -#: Source/Core/Core/HotkeyManager.cpp:42 Source/Core/Core/HotkeyManager.cpp:187 +#: Source/Core/Core/HotkeyManager.cpp:43 Source/Core/Core/HotkeyManager.cpp:188 msgid "Volume Up" msgstr "提高音量" @@ -11020,7 +11025,7 @@ msgstr "" msgid "Widescreen Hack" msgstr "寬螢幕修正" -#: Source/Core/Core/HotkeyManager.cpp:335 +#: Source/Core/Core/HotkeyManager.cpp:336 #: Source/Core/DolphinQt/Config/Mapping/HotkeyWii.cpp:20 #: Source/Core/DolphinQt/Config/SettingsWindow.cpp:42 msgid "Wii" From 1f17a3bb1e1d5e150432c1cb4bbd8cccf12b989b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Fri, 29 Jul 2022 18:27:50 -0700 Subject: [PATCH 492/659] PPCSymbolDB: Fix getting symbol for the last function --- Source/Core/Core/PowerPC/PPCSymbolDB.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Source/Core/Core/PowerPC/PPCSymbolDB.cpp b/Source/Core/Core/PowerPC/PPCSymbolDB.cpp index d684cf64da..e69f6591e2 100644 --- a/Source/Core/Core/PowerPC/PPCSymbolDB.cpp +++ b/Source/Core/Core/PowerPC/PPCSymbolDB.cpp @@ -92,18 +92,20 @@ void PPCSymbolDB::AddKnownSymbol(u32 startAddr, u32 size, const std::string& nam Common::Symbol* PPCSymbolDB::GetSymbolFromAddr(u32 addr) { auto it = m_functions.lower_bound(addr); - if (it == m_functions.end()) - return nullptr; - // If the address is exactly the start address of a symbol, we're done. - if (it->second.address == addr) - return &it->second; - - // Otherwise, check whether the address is within the bounds of a symbol. + if (it != m_functions.end()) + { + // If the address is exactly the start address of a symbol, we're done. + if (it->second.address == addr) + return &it->second; + } if (it != m_functions.begin()) + { + // Otherwise, check whether the address is within the bounds of a symbol. --it; - if (addr >= it->second.address && addr < it->second.address + it->second.size) - return &it->second; + if (addr >= it->second.address && addr < it->second.address + it->second.size) + return &it->second; + } return nullptr; } From b364a301dcdb0eb7880bf32d75063c79f3c70de7 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 30 Jul 2022 03:46:41 +0200 Subject: [PATCH 493/659] HLE_OS: Don't modify emulated state in printf hooks, since the actual PPC function will be called afterwards. --- Source/Core/Core/HLE/HLE_OS.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Source/Core/Core/HLE/HLE_OS.cpp b/Source/Core/Core/HLE/HLE_OS.cpp index 6d153bc6fc..d5caa5a215 100644 --- a/Source/Core/Core/HLE/HLE_OS.cpp +++ b/Source/Core/Core/HLE/HLE_OS.cpp @@ -79,8 +79,6 @@ void HLE_GeneralDebugPrint(ParameterType parameter_type) StringPopBackIf(&report_message, '\n'); - NPC = LR; - NOTICE_LOG_FMT(OSREPORT_HLE, "{:08x}->{:08x}| {}", LR, PC, SHIFTJISToUTF8(report_message)); } @@ -117,16 +115,12 @@ void HLE_write_console() StringPopBackIf(&report_message, '\n'); - NPC = LR; - NOTICE_LOG_FMT(OSREPORT_HLE, "{:08x}->{:08x}| {}", LR, PC, SHIFTJISToUTF8(report_message)); } // Log (v)dprintf message if fd is 1 (stdout) or 2 (stderr) void HLE_LogDPrint(ParameterType parameter_type) { - NPC = LR; - if (GPR(3) != 1 && GPR(3) != 2) return; @@ -152,8 +146,6 @@ void HLE_LogVDPrint() // Log (v)fprintf message if FILE is stdout or stderr void HLE_LogFPrint(ParameterType parameter_type) { - NPC = LR; - // The structure FILE is implementation defined. // Both libogc and Dolphin SDK seem to store the fd at the same address. int fd = -1; @@ -245,7 +237,7 @@ std::string GetStringVA(u32 str_reg, ParameterType parameter_type) case 'n': // %n doesn't output anything, so the result variable is untouched - PowerPC::HostWrite_U32(static_cast(result.size()), ap->GetArgT()); + // the actual PPC function will take care of the memory write break; default: From e85da16947e336aff5db3ee723fb69b1a3e20324 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 28 Jul 2022 12:08:27 -0700 Subject: [PATCH 494/659] msbuild: set PreferredToolArchitecture based on host OS arch --- Source/VSProps/Configuration.Base.props | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/VSProps/Configuration.Base.props b/Source/VSProps/Configuration.Base.props index 11e0fd8411..d36fe43c89 100644 --- a/Source/VSProps/Configuration.Base.props +++ b/Source/VSProps/Configuration.Base.props @@ -3,7 +3,8 @@ v143 Unicode - x64 + x64 + ARM64 + $(CoreDir);%(AdditionalIncludeDirectories) +
+ @@ -29,6 +35,7 @@ + diff --git a/Externals/liblzma/exports.props b/Externals/liblzma/exports.props new file mode 100644 index 0000000000..2ab816c7a1 --- /dev/null +++ b/Externals/liblzma/exports.props @@ -0,0 +1,14 @@ + + + + + $(ExternalsDir)liblzma\api;%(AdditionalIncludeDirectories) + LZMA_API_STATIC;%(PreprocessorDefinitions) + + + + + {055a775f-b4f5-4970-9240-f6cf7661f37b} + + + diff --git a/Externals/liblzma/liblzma.vcxproj b/Externals/liblzma/liblzma.vcxproj index 7839ceb78f..a4b7ff4a9d 100644 --- a/Externals/liblzma/liblzma.vcxproj +++ b/Externals/liblzma/liblzma.vcxproj @@ -17,7 +17,7 @@ - .;check;common;delta;lz;lzma;rangecoder;simple;tuklib;%(AdditionalIncludeDirectories) + .;api;check;common;delta;lz;lzma;rangecoder;simple;tuklib;%(AdditionalIncludeDirectories) LZMA_API_STATIC;HAVE_CONFIG_H;%(PreprocessorDefinitions) diff --git a/Externals/libspng/exports.props b/Externals/libspng/exports.props new file mode 100644 index 0000000000..ac255a65de --- /dev/null +++ b/Externals/libspng/exports.props @@ -0,0 +1,14 @@ + + + + + $(ExternalsDir)libspng\libspng\spng;%(AdditionalIncludeDirectories) + SPNG_STATIC;%(PreprocessorDefinitions) + + + + + {447B7B1E-1D74-4AEF-B2B9-6EB41C5D5313} + + + diff --git a/Externals/libspng/spng.vcxproj b/Externals/libspng/spng.vcxproj index af129683c7..2db88cb2ee 100644 --- a/Externals/libspng/spng.vcxproj +++ b/Externals/libspng/spng.vcxproj @@ -29,6 +29,7 @@ + diff --git a/Externals/libusb/exports.props b/Externals/libusb/exports.props new file mode 100644 index 0000000000..3cca250f25 --- /dev/null +++ b/Externals/libusb/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)libusb\libusb\libusb;%(AdditionalIncludeDirectories) + + + + + {349ee8f9-7d25-4909-aaf5-ff3fade72187} + + + diff --git a/Externals/libusb/libusb-1.0.vcxproj b/Externals/libusb/libusb-1.0.vcxproj index 393ebcf951..5834338af9 100644 --- a/Externals/libusb/libusb-1.0.vcxproj +++ b/Externals/libusb/libusb-1.0.vcxproj @@ -18,7 +18,7 @@ - .\libusb\msvc;%(AdditionalIncludeDirectories) + libusb\msvc;libusb\libusb;%(AdditionalIncludeDirectories) diff --git a/Externals/mGBA/exports.props b/Externals/mGBA/exports.props new file mode 100644 index 0000000000..34e6c4f02d --- /dev/null +++ b/Externals/mGBA/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)mGBA\mgba\include;%(AdditionalIncludeDirectories) + + + + + {864C4C8E-296D-3DBC-AD83-F1D5CB6E8EC6} + + + diff --git a/Externals/mGBA/mgba.vcxproj b/Externals/mGBA/mgba.vcxproj index 68304b92b8..56112ae8b6 100644 --- a/Externals/mGBA/mgba.vcxproj +++ b/Externals/mGBA/mgba.vcxproj @@ -205,6 +205,7 @@ + diff --git a/Externals/mbedtls/exports.props b/Externals/mbedtls/exports.props new file mode 100644 index 0000000000..e078d2e386 --- /dev/null +++ b/Externals/mbedtls/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)mbedtls\include;%(AdditionalIncludeDirectories) + + + + + {bdb6578b-0691-4e80-a46c-df21639fd3b8} + + + diff --git a/Externals/mbedtls/mbedTLS.vcxproj b/Externals/mbedtls/mbedTLS.vcxproj index 6cb098c0ad..bb8f86cae9 100644 --- a/Externals/mbedtls/mbedTLS.vcxproj +++ b/Externals/mbedtls/mbedTLS.vcxproj @@ -17,7 +17,7 @@ - .\library;%(AdditionalIncludeDirectories) + include;library;%(AdditionalIncludeDirectories) diff --git a/Externals/miniupnpc/exports.props b/Externals/miniupnpc/exports.props new file mode 100644 index 0000000000..31ee86b974 --- /dev/null +++ b/Externals/miniupnpc/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)miniupnpc\src;%(AdditionalIncludeDirectories) + + + + + {31643fdb-1bb8-4965-9de7-000fc88d35ae} + + + diff --git a/Externals/minizip/exports.props b/Externals/minizip/exports.props new file mode 100644 index 0000000000..fe56035edf --- /dev/null +++ b/Externals/minizip/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)minizip;%(AdditionalIncludeDirectories) + + + + + {23114507-079a-4418-9707-cfa81a03ca99} + + + diff --git a/Externals/minizip/minizip.vcxproj b/Externals/minizip/minizip.vcxproj index d08bafbe57..d6e06b7aa3 100644 --- a/Externals/minizip/minizip.vcxproj +++ b/Externals/minizip/minizip.vcxproj @@ -57,6 +57,7 @@ + diff --git a/Externals/picojson/exports.props b/Externals/picojson/exports.props new file mode 100644 index 0000000000..5cfcec591f --- /dev/null +++ b/Externals/picojson/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)picojson;%(AdditionalIncludeDirectories) + + + + + {2c0d058e-de35-4471-ad99-e68a2caf9e18} + + + diff --git a/Externals/pugixml/exports.props b/Externals/pugixml/exports.props new file mode 100644 index 0000000000..2a237aaaf6 --- /dev/null +++ b/Externals/pugixml/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)pugixml;%(AdditionalIncludeDirectories) + + + + + {38fee76f-f347-484b-949c-b4649381cffb} + + + diff --git a/Externals/soundtouch/exports.props b/Externals/soundtouch/exports.props new file mode 100644 index 0000000000..7e7c34d735 --- /dev/null +++ b/Externals/soundtouch/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)soundtouch;%(AdditionalIncludeDirectories) + + + + + {ec082900-b4d8-42e9-9663-77f02f6936ae} + + + diff --git a/Externals/spirv_cross/exports.props b/Externals/spirv_cross/exports.props new file mode 100644 index 0000000000..8b5b943690 --- /dev/null +++ b/Externals/spirv_cross/exports.props @@ -0,0 +1,14 @@ + + + + + $(ExternalsDir)spirv_cross\SPIRV-Cross;%(AdditionalIncludeDirectories) + SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS;%(PreprocessorDefinitions) + + + + + {3d780617-ec8c-4721-b9fd-dfc9bb658c7c} + + + diff --git a/Externals/xxhash/exports.props b/Externals/xxhash/exports.props new file mode 100644 index 0000000000..3329ab6f61 --- /dev/null +++ b/Externals/xxhash/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)xxhash;%(AdditionalIncludeDirectories) + + + + + {677ea016-1182-440c-9345-dc88d1e98c0c} + + + diff --git a/Externals/zlib-ng/exports.props b/Externals/zlib-ng/exports.props new file mode 100644 index 0000000000..0813bc25ab --- /dev/null +++ b/Externals/zlib-ng/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)zlib-ng;%(AdditionalIncludeDirectories) + + + + + {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} + + + diff --git a/Externals/zstd/exports.props b/Externals/zstd/exports.props new file mode 100644 index 0000000000..554343bb75 --- /dev/null +++ b/Externals/zstd/exports.props @@ -0,0 +1,13 @@ + + + + + $(ExternalsDir)zstd\lib;%(AdditionalIncludeDirectories) + + + + + {1bea10f3-80ce-4bc4-9331-5769372cdf99} + + + diff --git a/Source/Core/DolphinLib.vcxproj b/Source/Core/DolphinLib.vcxproj index 92398e81ef..ae19db8c19 100644 --- a/Source/Core/DolphinLib.vcxproj +++ b/Source/Core/DolphinLib.vcxproj @@ -12,6 +12,7 @@ + @@ -27,6 +28,36 @@ {41279555-f94f-4ebc-99de-af863c10c5c4}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/DolphinNoGUI/DolphinNoGUI.vcxproj b/Source/Core/DolphinNoGUI/DolphinNoGUI.vcxproj index 1466b68027..b7569a88c5 100644 --- a/Source/Core/DolphinNoGUI/DolphinNoGUI.vcxproj +++ b/Source/Core/DolphinNoGUI/DolphinNoGUI.vcxproj @@ -12,6 +12,7 @@ + @@ -31,7 +32,8 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5}
- + + diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index cde2161e7b..7f66765c6f 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -13,6 +13,7 @@ + @@ -403,7 +404,7 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5}
@@ -413,7 +414,19 @@ true - + + + + + + + + + + + + + diff --git a/Source/Core/DolphinTool/DolphinTool.vcxproj b/Source/Core/DolphinTool/DolphinTool.vcxproj index d95dc0c2ec..2ea89a0fce 100644 --- a/Source/Core/DolphinTool/DolphinTool.vcxproj +++ b/Source/Core/DolphinTool/DolphinTool.vcxproj @@ -12,6 +12,7 @@ + @@ -26,7 +27,6 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5} - @@ -34,6 +34,12 @@ + + + + + + diff --git a/Source/Core/WinUpdater/WinUpdater.vcxproj b/Source/Core/WinUpdater/WinUpdater.vcxproj index cd523bb017..37bb9530b9 100644 --- a/Source/Core/WinUpdater/WinUpdater.vcxproj +++ b/Source/Core/WinUpdater/WinUpdater.vcxproj @@ -12,6 +12,7 @@ + @@ -27,30 +28,18 @@ {D79392F7-06D6-4B4B-A39F-4D587C215D3A} - - {c636d9d1-82fe-42b5-9987-63b7d4836341} - - - {bb00605c-125f-4a21-b33b-7bf418322dcb} - - - {5bdf4b91-1491-4fb0-bc27-78e9a8e97dc3} - - - {4BC5A148-0AB3-440F-A980-A29B4B999190} - - - {bdb6578b-0691-4e80-a46c-df21639fd3b8} - - - {F6EA7144-8D64-4EBB-A13E-76DFBD911EAE} - + + + + + + diff --git a/Source/DSPTool/DSPTool.vcxproj b/Source/DSPTool/DSPTool.vcxproj index 20401a4ddb..ec0e269e42 100644 --- a/Source/DSPTool/DSPTool.vcxproj +++ b/Source/DSPTool/DSPTool.vcxproj @@ -12,6 +12,7 @@ + @@ -32,10 +33,8 @@ {D79392F7-06D6-4B4B-A39F-4D587C215D3A} - - {4BC5A148-0AB3-440F-A980-A29B4B999190} - + diff --git a/Source/PCH/pch.vcxproj b/Source/PCH/pch.vcxproj index 0439b31103..1ee60c60c0 100644 --- a/Source/PCH/pch.vcxproj +++ b/Source/PCH/pch.vcxproj @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/Source/UnitTests/UnitTests.vcxproj b/Source/UnitTests/UnitTests.vcxproj index e0295fba9c..6cf886c6c6 100644 --- a/Source/UnitTests/UnitTests.vcxproj +++ b/Source/UnitTests/UnitTests.vcxproj @@ -12,6 +12,7 @@ + @@ -95,7 +96,8 @@ {0e033be3-2e08-428e-9ae9-bc673efa12b5} - + + diff --git a/Source/VSProps/Base.Dolphin.props b/Source/VSProps/Base.Dolphin.props new file mode 100644 index 0000000000..968848730b --- /dev/null +++ b/Source/VSProps/Base.Dolphin.props @@ -0,0 +1,87 @@ + + + + + $(ProjectName)$(TargetSuffix) + + + + + $(CoreDir);%(AdditionalIncludeDirectories) + + + $(ExternalsDir)FFmpeg-bin\$(Platform)\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)OpenAL\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)rangeset\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)Vulkan\include;%(AdditionalIncludeDirectories) + $(ExternalsDir)WIL\include;%(AdditionalIncludeDirectories) + + WIL_SUPPRESS_EXCEPTIONS;%(PreprocessorDefinitions) + + WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions) + + + _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) + + _WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) + + _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;%(PreprocessorDefinitions) + + _SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING;%(PreprocessorDefinitions) + + + _ARCH_64=1;_M_X86=1;_M_X86_64=1;%(PreprocessorDefinitions) + _ARCH_64=1;_M_ARM_64=1;%(PreprocessorDefinitions) + USE_UPNP;__LIBUSB__;%(PreprocessorDefinitions) + USE_ANALYTICS=1;%(PreprocessorDefinitions) + USE_DISCORD_PRESENCE;%(PreprocessorDefinitions) + HAVE_FFMPEG;%(PreprocessorDefinitions) + HAS_OPENGL;%(PreprocessorDefinitions) + HAS_VULKAN;%(PreprocessorDefinitions) + HAS_LIBMGBA;%(PreprocessorDefinitions) + AUTOUPDATE;%(PreprocessorDefinitions) + HAVE_SDL2;%(PreprocessorDefinitions) + + + 4201;4127;4100;4244;4121;4324;4714;%(DisableSpecificWarnings) + + 4245;%(DisableSpecificWarnings) + + /w44263 /w44265 /w44946 %(AdditionalOptions) + + + + avrt.lib;iphlpapi.lib;winmm.lib;setupapi.lib;rpcrt4.lib;comctl32.lib;Shlwapi.lib;%(AdditionalDependencies) + opengl32.lib;%(AdditionalDependencies) + + avcodec.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;Bcrypt.lib;%(AdditionalDependencies) + $(ExternalsDir)FFmpeg-bin\$(Platform)\lib;%(AdditionalLibraryDirectories) + + enableCompatPatches + + + + + /NODEFAULTLIB:msvcrt %(AdditionalOptions) + + + diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index d39ca77690..29f3d6ffbf 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -1,104 +1,25 @@ + $(BuildRootDir)$(Platform)\$(Configuration)\$(ProjectName)\ $(IntDir)bin\ - $(ProjectName)$(TargetSuffix) false - - false - $(CoreDir);%(AdditionalIncludeDirectories) - - $(ExternalsDir)Bochs_disasm;%(AdditionalIncludeDirectories) - $(ExternalsDir)bzip2;%(AdditionalIncludeDirectories) - $(ExternalsDir)cpp-optparse;%(AdditionalIncludeDirectories) - $(ExternalsDir)FreeSurround\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)cubeb\include;$(ExternalsDir)cubeb\msvc;%(AdditionalIncludeDirectories) - $(ExternalsDir)curl\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)discord-rpc\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)ed25519;%(AdditionalIncludeDirectories) - $(ExternalsDir)enet\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)FFmpeg-bin\$(Platform)\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)FatFs;%(AdditionalIncludeDirectories) - $(ExternalsDir)fmt\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)GL;%(AdditionalIncludeDirectories) - $(ExternalsDir)glslang;$(ExternalsDir)glslang\StandAlone;$(ExternalsDir)glslang\glslang\Public;$(ExternalsDir)glslang\SPIRV;%(AdditionalIncludeDirectories) - $(ExternalsDir)spirv_cross\SPIRV-Cross;%(AdditionalIncludeDirectories) - $(ExternalsDir)imgui;%(AdditionalIncludeDirectories) - $(ExternalsDir)liblzma\api;%(AdditionalIncludeDirectories) - $(ExternalsDir)libspng\libspng\spng;%(AdditionalIncludeDirectories) - $(ExternalsDir)libusb\libusb\libusb;%(AdditionalIncludeDirectories) - $(ExternalsDir)LZO;%(AdditionalIncludeDirectories) - $(ExternalsDir)mGBA\mgba\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)miniupnpc\src;%(AdditionalIncludeDirectories) - $(ExternalsDir)minizip;%(AdditionalIncludeDirectories) - $(ExternalsDir)mbedtls\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)OpenAL\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)picojson;%(AdditionalIncludeDirectories) - $(ExternalsDir)pugixml;%(AdditionalIncludeDirectories) - $(ExternalsDir)rangeset\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)SDL\SDL\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)SFML\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)soundtouch;%(AdditionalIncludeDirectories) - $(ExternalsDir)Vulkan\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)WIL\include;%(AdditionalIncludeDirectories) - $(ExternalsDir)xxhash;%(AdditionalIncludeDirectories) - $(ExternalsDir)zlib-ng;%(AdditionalIncludeDirectories) - $(ExternalsDir)zstd\lib;%(AdditionalIncludeDirectories) TurnOffAllWarnings true true true - - _CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions) - - _WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) - - _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;%(PreprocessorDefinitions) - - _SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING;%(PreprocessorDefinitions) - USE_UPNP;__LIBUSB__;%(PreprocessorDefinitions) - SFML_STATIC;%(PreprocessorDefinitions) - USE_ANALYTICS=1;%(PreprocessorDefinitions) - USE_DISCORD_PRESENCE;%(PreprocessorDefinitions) - CURL_STATICLIB;%(PreprocessorDefinitions) - WIL_SUPPRESS_EXCEPTIONS;%(PreprocessorDefinitions) - LZMA_API_STATIC;%(PreprocessorDefinitions) - _ARCH_64=1;_M_X86=1;_M_X86_64=1;%(PreprocessorDefinitions) - _ARCH_64=1;_M_ARM_64=1;%(PreprocessorDefinitions) - HAVE_FFMPEG;%(PreprocessorDefinitions) - USE_GDBSTUB;%(PreprocessorDefinitions) - HAS_OPENGL;%(PreprocessorDefinitions) - HAS_VULKAN;%(PreprocessorDefinitions) - HAS_LIBMGBA;%(PreprocessorDefinitions) - AUTOUPDATE=1;%(PreprocessorDefinitions) - SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS;%(PreprocessorDefinitions) - HAVE_SDL2=1;%(PreprocessorDefinitions) - SPNG_STATIC;%(PreprocessorDefinitions) - - WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions) + Level4 true true @@ -119,28 +40,6 @@ /utf-8 %(AdditionalOptions) OldStyle Caret - - 4201;4127;4100;4244;4121;4324;4714;%(DisableSpecificWarnings) - - 4245;%(DisableSpecificWarnings) - - /w44263 /w44265 /w44946 %(AdditionalOptions) - - avrt.lib;iphlpapi.lib;winmm.lib;setupapi.lib;rpcrt4.lib;comctl32.lib;Shlwapi.lib;%(AdditionalDependencies) - opengl32.lib;%(AdditionalDependencies) - - avcodec.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;Bcrypt.lib;%(AdditionalDependencies) - $(ExternalsDir)FFmpeg-bin\$(Platform)\lib;%(AdditionalLibraryDirectories) - - enableCompatPatches - - - - - /NODEFAULTLIB:msvcrt %(AdditionalOptions) - true true From 683f7f721048662a20a42b800d1af28d7193d25f Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sun, 31 Jul 2022 01:10:39 -0700 Subject: [PATCH 518/659] msbuild: tidy up the linked libs --- Source/Core/WinUpdater/WinUpdater.vcxproj | 5 ----- Source/DSPTool/DSPTool.vcxproj | 1 - Source/VSProps/Base.Dolphin.props | 4 ++-- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Source/Core/WinUpdater/WinUpdater.vcxproj b/Source/Core/WinUpdater/WinUpdater.vcxproj index 37bb9530b9..9ec5d4afb2 100644 --- a/Source/Core/WinUpdater/WinUpdater.vcxproj +++ b/Source/Core/WinUpdater/WinUpdater.vcxproj @@ -19,11 +19,6 @@ Updater - - - iphlpapi.lib;winmm.lib;ws2_32.lib;comctl32.lib;Shlwapi.lib;%(AdditionalDependencies) - - {D79392F7-06D6-4B4B-A39F-4D587C215D3A} diff --git a/Source/DSPTool/DSPTool.vcxproj b/Source/DSPTool/DSPTool.vcxproj index ec0e269e42..3cfb41b5fc 100644 --- a/Source/DSPTool/DSPTool.vcxproj +++ b/Source/DSPTool/DSPTool.vcxproj @@ -18,7 +18,6 @@ - winmm.lib;Shlwapi.lib;%(AdditionalDependencies) Console diff --git a/Source/VSProps/Base.Dolphin.props b/Source/VSProps/Base.Dolphin.props index 968848730b..7f5c2a83d4 100644 --- a/Source/VSProps/Base.Dolphin.props +++ b/Source/VSProps/Base.Dolphin.props @@ -70,11 +70,11 @@ - avrt.lib;iphlpapi.lib;winmm.lib;setupapi.lib;rpcrt4.lib;comctl32.lib;Shlwapi.lib;%(AdditionalDependencies) + avrt.lib;comctl32.lib;iphlpapi.lib;setupapi.lib;shlwapi.lib;winmm.lib;ws2_32.lib;%(AdditionalDependencies) opengl32.lib;%(AdditionalDependencies) - avcodec.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;Bcrypt.lib;%(AdditionalDependencies) $(ExternalsDir)FFmpeg-bin\$(Platform)\lib;%(AdditionalLibraryDirectories) + avcodec.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;bcrypt.lib;%(AdditionalDependencies) enableCompatPatches From bdf3a03c04bbeab77cdfd8c853de591651f6465b Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 28 Jul 2022 13:06:47 -0700 Subject: [PATCH 519/659] DolphinQt: fix BootSessionData dtor not being called std::unique_ptr can't/won't call deleter on incomplete type generated warning on vs 17.3.0 preview 5.0 --- Source/Core/DolphinQt/MainWindow.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index 6e53f2df10..5f9eb34bb2 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -11,11 +11,12 @@ #include #include +#include "Core/Boot/Boot.h" + class QStackedWidget; class QString; class BreakpointWidget; -class BootSessionData; struct BootParameters; class CheatsManager; class CodeWidget; From ec9b30681bdcbf04ddcf94371bc140390439db1d Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 28 Jul 2022 13:11:34 -0700 Subject: [PATCH 520/659] msvc: silence warning in qt header --- Source/Core/DolphinQt/CMakeLists.txt | 3 +++ Source/Core/DolphinQt/DolphinQt.vcxproj | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 0e08a4ed98..1c02e783bb 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -396,6 +396,9 @@ if (MSVC) target_compile_options(dolphin-emu PRIVATE "${qtGuiPriv}") target_compile_options(dolphin-emu PRIVATE "${qtWidgets}") + # Qt 6.3.0 headers use std::aligned_storage instead of alignas + target_compile_definitions(dolphin-emu PRIVATE _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING) + if ("${QT_VERSION_MAJOR}" GREATER_EQUAL 6) # Qt6 requires RTTI remove_cxx_flag_from_target(dolphin-emu "/GR-") diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index cde2161e7b..e9630614b6 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -31,6 +31,9 @@ $(ProjectDir)TAS;%(AdditionalIncludeDirectories) $(ProjectDir)VideoInterface;%(AdditionalIncludeDirectories) + + _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING;%(PreprocessorDefinitions) + $(SourceDir)PCH;%(AdditionalIncludeDirectories) Use From c7ce035a7f13879e1c429d76fe5e3d6242a43c4c Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 27 Jul 2022 18:43:16 -0700 Subject: [PATCH 521/659] NetPlay: rename md5 -> game digest --- Source/Core/Core/NetPlayClient.cpp | 72 +++++------ Source/Core/Core/NetPlayClient.h | 24 ++-- Source/Core/Core/NetPlayProto.h | 10 +- Source/Core/Core/NetPlayServer.cpp | 20 +-- Source/Core/Core/NetPlayServer.h | 4 +- Source/Core/DolphinQt/CMakeLists.txt | 114 +++++++++--------- Source/Core/DolphinQt/DolphinQt.vcxproj | 4 +- .../{MD5Dialog.cpp => GameDigestDialog.cpp} | 20 +-- .../{MD5Dialog.h => GameDigestDialog.h} | 6 +- .../Core/DolphinQt/NetPlay/NetPlayDialog.cpp | 49 ++++---- Source/Core/DolphinQt/NetPlay/NetPlayDialog.h | 14 +-- 11 files changed, 169 insertions(+), 168 deletions(-) rename Source/Core/DolphinQt/NetPlay/{MD5Dialog.cpp => GameDigestDialog.cpp} (88%) rename Source/Core/DolphinQt/NetPlay/{MD5Dialog.h => GameDigestDialog.h} (84%) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index d4e8e5fa35..9bc0ff5e2f 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -90,10 +90,10 @@ NetPlayClient::~NetPlayClient() if (m_is_connected) { - m_should_compute_MD5 = false; - m_dialog->AbortMD5(); - if (m_MD5_thread.joinable()) - m_MD5_thread.join(); + m_should_compute_game_digest = false; + m_dialog->AbortGameDigest(); + if (m_game_digest_thread.joinable()) + m_game_digest_thread.join(); m_do_loop.Clear(); m_thread.join(); @@ -442,24 +442,24 @@ void NetPlayClient::OnData(sf::Packet& packet) OnSyncCodes(packet); break; - case MessageID::ComputeMD5: - OnComputeMD5(packet); + case MessageID::ComputeGameDigest: + OnComputeGameDigest(packet); break; - case MessageID::MD5Progress: - OnMD5Progress(packet); + case MessageID::GameDigestProgress: + OnGameDigestProgress(packet); break; - case MessageID::MD5Result: - OnMD5Result(packet); + case MessageID::GameDigestResult: + OnGameDigestResult(packet); break; - case MessageID::MD5Error: - OnMD5Error(packet); + case MessageID::GameDigestError: + OnGameDigestError(packet); break; - case MessageID::MD5Abort: - OnMD5Abort(); + case MessageID::GameDigestAbort: + OnGameDigestAbort(); break; default: @@ -1419,48 +1419,48 @@ void NetPlayClient::OnSyncCodesDataAR(sf::Packet& packet) ActionReplay::UpdateSyncedCodes(synced_codes); } -void NetPlayClient::OnComputeMD5(sf::Packet& packet) +void NetPlayClient::OnComputeGameDigest(sf::Packet& packet) { SyncIdentifier sync_identifier; ReceiveSyncIdentifier(packet, sync_identifier); - ComputeMD5(sync_identifier); + ComputeGameDigest(sync_identifier); } -void NetPlayClient::OnMD5Progress(sf::Packet& packet) +void NetPlayClient::OnGameDigestProgress(sf::Packet& packet) { PlayerId pid; int progress; packet >> pid; packet >> progress; - m_dialog->SetMD5Progress(pid, progress); + m_dialog->SetGameDigestProgress(pid, progress); } -void NetPlayClient::OnMD5Result(sf::Packet& packet) +void NetPlayClient::OnGameDigestResult(sf::Packet& packet) { PlayerId pid; std::string result; packet >> pid; packet >> result; - m_dialog->SetMD5Result(pid, result); + m_dialog->SetGameDigestResult(pid, result); } -void NetPlayClient::OnMD5Error(sf::Packet& packet) +void NetPlayClient::OnGameDigestError(sf::Packet& packet) { PlayerId pid; std::string error; packet >> pid; packet >> error; - m_dialog->SetMD5Result(pid, error); + m_dialog->SetGameDigestResult(pid, error); } -void NetPlayClient::OnMD5Abort() +void NetPlayClient::OnGameDigestAbort() { - m_should_compute_MD5 = false; - m_dialog->AbortMD5(); + m_should_compute_game_digest = false; + m_dialog->AbortGameDigest(); } void NetPlayClient::Send(const sf::Packet& packet, const u8 channel_id) @@ -2469,13 +2469,13 @@ static std::string MD5Sum(const std::string& file_path, std::function return fmt::format("{:02x}", fmt::join(output, "")); } -void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier) +void NetPlayClient::ComputeGameDigest(const SyncIdentifier& sync_identifier) { - if (m_should_compute_MD5) + if (m_should_compute_game_digest) return; - m_dialog->ShowMD5Dialog(sync_identifier.game_id); - m_should_compute_MD5 = true; + m_dialog->ShowGameDigestDialog(sync_identifier.game_id); + m_should_compute_game_digest = true; std::string file; if (sync_identifier == GetSDCardIdentifier()) @@ -2486,26 +2486,26 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier) if (file.empty() || !File::Exists(file)) { sf::Packet packet; - packet << MessageID::MD5Error; + packet << MessageID::GameDigestError; packet << "file not found"; Send(packet); return; } - if (m_MD5_thread.joinable()) - m_MD5_thread.join(); - m_MD5_thread = std::thread([this, file]() { + if (m_game_digest_thread.joinable()) + m_game_digest_thread.join(); + m_game_digest_thread = std::thread([this, file]() { std::string sum = MD5Sum(file, [&](int progress) { sf::Packet packet; - packet << MessageID::MD5Progress; + packet << MessageID::GameDigestProgress; packet << progress; SendAsync(std::move(packet)); - return m_should_compute_MD5; + return m_should_compute_game_digest; }); sf::Packet packet; - packet << MessageID::MD5Result; + packet << MessageID::GameDigestResult; packet << sum; SendAsync(std::move(packet)); }); diff --git a/Source/Core/Core/NetPlayClient.h b/Source/Core/Core/NetPlayClient.h index dc96ac388b..d3d0273325 100644 --- a/Source/Core/Core/NetPlayClient.h +++ b/Source/Core/Core/NetPlayClient.h @@ -73,10 +73,10 @@ public: SyncIdentifierComparison* found = nullptr) = 0; virtual std::string FindGBARomPath(const std::array& hash, std::string_view title, int device_number) = 0; - virtual void ShowMD5Dialog(const std::string& title) = 0; - virtual void SetMD5Progress(int pid, int progress) = 0; - virtual void SetMD5Result(int pid, const std::string& result) = 0; - virtual void AbortMD5() = 0; + virtual void ShowGameDigestDialog(const std::string& title) = 0; + virtual void SetGameDigestProgress(int pid, int progress) = 0; + virtual void SetGameDigestResult(int pid, const std::string& result) = 0; + virtual void AbortGameDigest() = 0; virtual void OnIndexAdded(bool success, std::string error) = 0; virtual void OnIndexRefreshFailed(std::string error) = 0; @@ -248,7 +248,7 @@ private: void Disconnect(); bool Connect(); void SendGameStatus(); - void ComputeMD5(const SyncIdentifier& sync_identifier); + void ComputeGameDigest(const SyncIdentifier& sync_identifier); void DisplayPlayersPing(); u32 GetPlayersMaxPing() const; @@ -291,11 +291,11 @@ private: void OnSyncCodesDataGecko(sf::Packet& packet); void OnSyncCodesNotifyAR(sf::Packet& packet); void OnSyncCodesDataAR(sf::Packet& packet); - void OnComputeMD5(sf::Packet& packet); - void OnMD5Progress(sf::Packet& packet); - void OnMD5Result(sf::Packet& packet); - void OnMD5Error(sf::Packet& packet); - void OnMD5Abort(); + void OnComputeGameDigest(sf::Packet& packet); + void OnGameDigestProgress(sf::Packet& packet); + void OnGameDigestResult(sf::Packet& packet); + void OnGameDigestError(sf::Packet& packet); + void OnGameDigestAbort(); bool m_is_connected = false; ConnectionState m_connection_state = ConnectionState::Failure; @@ -307,8 +307,8 @@ private: std::string m_player_name; bool m_connecting = false; TraversalClient* m_traversal_client = nullptr; - std::thread m_MD5_thread; - bool m_should_compute_MD5 = false; + std::thread m_game_digest_thread; + bool m_should_compute_game_digest = false; Common::Event m_gc_pad_event; Common::Event m_wii_pad_event; Common::Event m_first_pad_status_received_event; diff --git a/Source/Core/Core/NetPlayProto.h b/Source/Core/Core/NetPlayProto.h index 9c82ed70a3..c85d7373d6 100644 --- a/Source/Core/Core/NetPlayProto.h +++ b/Source/Core/Core/NetPlayProto.h @@ -168,11 +168,11 @@ enum class MessageID : u8 TimeBase = 0xB0, DesyncDetected = 0xB1, - ComputeMD5 = 0xC0, - MD5Progress = 0xC1, - MD5Result = 0xC2, - MD5Abort = 0xC3, - MD5Error = 0xC4, + ComputeGameDigest = 0xC0, + GameDigestProgress = 0xC1, + GameDigestResult = 0xC2, + GameDigestAbort = 0xC3, + GameDigestError = 0xC4, Ready = 0xD0, NotReady = 0xD1, diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 0ed2290b0d..bcceb3375b 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -1068,13 +1068,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player) } break; - case MessageID::MD5Progress: + case MessageID::GameDigestProgress: { int progress; packet >> progress; sf::Packet spac; - spac << MessageID::MD5Progress; + spac << MessageID::GameDigestProgress; spac << player.pid; spac << progress; @@ -1082,13 +1082,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player) } break; - case MessageID::MD5Result: + case MessageID::GameDigestResult: { std::string result; packet >> result; sf::Packet spac; - spac << MessageID::MD5Result; + spac << MessageID::GameDigestResult; spac << player.pid; spac << result; @@ -1096,13 +1096,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player) } break; - case MessageID::MD5Error: + case MessageID::GameDigestError: { std::string error; packet >> error; sf::Packet spac; - spac << MessageID::MD5Error; + spac << MessageID::GameDigestError; spac << player.pid; spac << error; @@ -1252,10 +1252,10 @@ bool NetPlayServer::ChangeGame(const SyncIdentifier& sync_identifier, } // called from ---GUI--- thread -bool NetPlayServer::ComputeMD5(const SyncIdentifier& sync_identifier) +bool NetPlayServer::ComputeGameDigest(const SyncIdentifier& sync_identifier) { sf::Packet spac; - spac << MessageID::ComputeMD5; + spac << MessageID::ComputeGameDigest; SendSyncIdentifier(spac, sync_identifier); SendAsyncToClients(std::move(spac)); @@ -1264,10 +1264,10 @@ bool NetPlayServer::ComputeMD5(const SyncIdentifier& sync_identifier) } // called from ---GUI--- thread -bool NetPlayServer::AbortMD5() +bool NetPlayServer::AbortGameDigest() { sf::Packet spac; - spac << MessageID::MD5Abort; + spac << MessageID::GameDigestAbort; SendAsyncToClients(std::move(spac)); return true; diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 67de180204..8e0c138aa4 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -45,8 +45,8 @@ public: ~NetPlayServer(); bool ChangeGame(const SyncIdentifier& sync_identifier, const std::string& netplay_name); - bool ComputeMD5(const SyncIdentifier& sync_identifier); - bool AbortMD5(); + bool ComputeGameDigest(const SyncIdentifier& sync_identifier); + bool AbortGameDigest(); void SendChatMessage(const std::string& msg); bool DoAllPlayersHaveIPLDump() const; diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 0e08a4ed98..c2bf4004e5 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -33,41 +33,6 @@ add_executable(dolphin-emu CheatSearchWidget.h CheatsManager.cpp CheatsManager.h - ConvertDialog.cpp - ConvertDialog.h - DiscordHandler.cpp - DiscordHandler.h - DiscordJoinRequestDialog.cpp - DiscordJoinRequestDialog.h - FIFO/FIFOPlayerWindow.cpp - FIFO/FIFOPlayerWindow.h - FIFO/FIFOAnalyzer.cpp - FIFO/FIFOAnalyzer.h - Host.cpp - Host.h - HotkeyScheduler.cpp - HotkeyScheduler.h - Main.cpp - MainWindow.cpp - MainWindow.h - MenuBar.cpp - MenuBar.h - NKitWarningDialog.cpp - NKitWarningDialog.h - RenderWidget.cpp - RenderWidget.h - Resources.cpp - Resources.h - SearchBar.cpp - SearchBar.h - Settings.cpp - Settings.h - ToolBar.cpp - ToolBar.h - Translation.cpp - Translation.h - WiiUpdate.cpp - WiiUpdate.h Config/ARCodeWidget.cpp Config/ARCodeWidget.h Config/CheatCodeEditor.cpp @@ -76,12 +41,12 @@ add_executable(dolphin-emu Config/CheatWarningWidget.h Config/CommonControllersWidget.cpp Config/CommonControllersWidget.h + Config/ControllerInterface/ControllerInterfaceWindow.cpp + Config/ControllerInterface/ControllerInterfaceWindow.h Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp Config/ControllerInterface/DualShockUDPClientAddServerDialog.h Config/ControllerInterface/DualShockUDPClientWidget.cpp Config/ControllerInterface/DualShockUDPClientWidget.h - Config/ControllerInterface/ControllerInterfaceWindow.cpp - Config/ControllerInterface/ControllerInterfaceWindow.h Config/ControllerInterface/ServerStringValidator.cpp Config/ControllerInterface/ServerStringValidator.h Config/ControllersWindow.cpp @@ -92,14 +57,14 @@ add_executable(dolphin-emu Config/FreeLookWidget.h Config/FreeLookWindow.cpp Config/FreeLookWindow.h - Config/GamecubeControllersWidget.cpp - Config/GamecubeControllersWidget.h Config/GameConfigEdit.cpp Config/GameConfigEdit.h Config/GameConfigHighlighter.cpp Config/GameConfigHighlighter.h Config/GameConfigWidget.cpp Config/GameConfigWidget.h + Config/GamecubeControllersWidget.cpp + Config/GamecubeControllersWidget.h Config/GeckoCodeWidget.cpp Config/GeckoCodeWidget.h Config/Graphics/AdvancedWidget.cpp @@ -221,6 +186,8 @@ add_executable(dolphin-emu Config/VerifyWidget.h Config/WiimoteControllersWidget.cpp Config/WiimoteControllersWidget.h + ConvertDialog.cpp + ConvertDialog.h Debugger/BreakpointWidget.cpp Debugger/BreakpointWidget.h Debugger/CodeDiffDialog.cpp @@ -249,6 +216,14 @@ add_executable(dolphin-emu Debugger/ThreadWidget.h Debugger/WatchWidget.cpp Debugger/WatchWidget.h + DiscordHandler.cpp + DiscordHandler.h + DiscordJoinRequestDialog.cpp + DiscordJoinRequestDialog.h + FIFO/FIFOAnalyzer.cpp + FIFO/FIFOAnalyzer.h + FIFO/FIFOPlayerWindow.cpp + FIFO/FIFOPlayerWindow.h GameList/GameList.cpp GameList/GameList.h GameList/GameListModel.cpp @@ -263,14 +238,21 @@ add_executable(dolphin-emu GCMemcardCreateNewDialog.h GCMemcardManager.cpp GCMemcardManager.h - QtUtils/BlockUserInputFilter.cpp - QtUtils/BlockUserInputFilter.h + Host.cpp + Host.h + HotkeyScheduler.cpp + HotkeyScheduler.h + Main.cpp + MainWindow.cpp + MainWindow.h + MenuBar.cpp + MenuBar.h NetPlay/ChunkedProgressDialog.cpp NetPlay/ChunkedProgressDialog.h + NetPlay/GameDigestDialog.cpp + NetPlay/GameDigestDialog.h NetPlay/GameListDialog.cpp NetPlay/GameListDialog.h - NetPlay/MD5Dialog.cpp - NetPlay/MD5Dialog.h NetPlay/NetPlayBrowser.cpp NetPlay/NetPlayBrowser.h NetPlay/NetPlayDialog.cpp @@ -279,6 +261,12 @@ add_executable(dolphin-emu NetPlay/NetPlaySetupDialog.h NetPlay/PadMappingDialog.cpp NetPlay/PadMappingDialog.h + NKitWarningDialog.cpp + NKitWarningDialog.h + QtUtils/AspectRatioWidget.cpp + QtUtils/AspectRatioWidget.h + QtUtils/BlockUserInputFilter.cpp + QtUtils/BlockUserInputFilter.h QtUtils/DolphinFileDialog.cpp QtUtils/DolphinFileDialog.h QtUtils/DoubleClickEventFilter.cpp @@ -289,13 +277,15 @@ add_executable(dolphin-emu QtUtils/FileOpenEventFilter.h QtUtils/FlowLayout.cpp QtUtils/FlowLayout.h + QtUtils/ImageConverter.cpp + QtUtils/ImageConverter.h QtUtils/ModalMessageBox.cpp QtUtils/ModalMessageBox.h + QtUtils/NonDefaultQPushButton.cpp + QtUtils/NonDefaultQPushButton.h QtUtils/ParallelProgressDialog.h QtUtils/PartiallyClosableTabWidget.cpp QtUtils/PartiallyClosableTabWidget.h - QtUtils/ImageConverter.cpp - QtUtils/ImageConverter.h QtUtils/SignalBlocking.h QtUtils/UTF8CodePointCountValidator.cpp QtUtils/UTF8CodePointCountValidator.h @@ -305,14 +295,18 @@ add_executable(dolphin-emu QtUtils/WinIconHelper.h QtUtils/WrapInScrollArea.cpp QtUtils/WrapInScrollArea.h - QtUtils/AspectRatioWidget.cpp - QtUtils/AspectRatioWidget.h - QtUtils/NonDefaultQPushButton.cpp - QtUtils/NonDefaultQPushButton.h + RenderWidget.cpp + RenderWidget.h ResourcePackManager.cpp ResourcePackManager.h + Resources.cpp + Resources.h RiivolutionBootWidget.cpp RiivolutionBootWidget.h + SearchBar.cpp + SearchBar.h + Settings.cpp + Settings.h Settings/AdvancedPane.cpp Settings/AdvancedPane.h Settings/AudioPane.cpp @@ -327,26 +321,32 @@ add_executable(dolphin-emu Settings/InterfacePane.h Settings/PathPane.cpp Settings/PathPane.h - Settings/WiiPane.cpp - Settings/WiiPane.h Settings/USBDeviceAddToWhitelistDialog.cpp Settings/USBDeviceAddToWhitelistDialog.h + Settings/WiiPane.cpp + Settings/WiiPane.h TAS/GCTASInputWindow.cpp TAS/GCTASInputWindow.h - TAS/WiiTASInputWindow.cpp - TAS/WiiTASInputWindow.h + TAS/IRWidget.cpp + TAS/IRWidget.h + TAS/StickWidget.cpp + TAS/StickWidget.h TAS/TASCheckBox.cpp TAS/TASCheckBox.h TAS/TASInputWindow.cpp TAS/TASInputWindow.h TAS/TASSlider.cpp TAS/TASSlider.h - TAS/StickWidget.cpp - TAS/StickWidget.h - TAS/IRWidget.cpp - TAS/IRWidget.h + TAS/WiiTASInputWindow.cpp + TAS/WiiTASInputWindow.h + ToolBar.cpp + ToolBar.h + Translation.cpp + Translation.h Updater.cpp Updater.h + WiiUpdate.cpp + WiiUpdate.h ) if (NOT WIN32) diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index cde2161e7b..d8cd98897d 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -156,8 +156,8 @@ + - @@ -345,8 +345,8 @@ + - diff --git a/Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp similarity index 88% rename from Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp rename to Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp index 3d5766a810..8144514c74 100644 --- a/Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp @@ -1,7 +1,7 @@ // Copyright 2017 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "DolphinQt/NetPlay/MD5Dialog.h" +#include "DolphinQt/NetPlay/GameDigestDialog.h" #include #include @@ -36,7 +36,7 @@ static QString GetPlayerNameFromPID(int pid) return player_name; } -MD5Dialog::MD5Dialog(QWidget* parent) : QDialog(parent) +GameDigestDialog::GameDigestDialog(QWidget* parent) : QDialog(parent) { CreateWidgets(); ConnectWidgets(); @@ -45,7 +45,7 @@ MD5Dialog::MD5Dialog(QWidget* parent) : QDialog(parent) setWindowModality(Qt::WindowModal); } -void MD5Dialog::CreateWidgets() +void GameDigestDialog::CreateWidgets() { m_main_layout = new QVBoxLayout; m_progress_box = new QGroupBox; @@ -61,12 +61,12 @@ void MD5Dialog::CreateWidgets() setLayout(m_main_layout); } -void MD5Dialog::ConnectWidgets() +void GameDigestDialog::ConnectWidgets() { - connect(m_button_box, &QDialogButtonBox::rejected, this, &MD5Dialog::reject); + connect(m_button_box, &QDialogButtonBox::rejected, this, &GameDigestDialog::reject); } -void MD5Dialog::show(const QString& title) +void GameDigestDialog::show(const QString& title) { m_progress_box->setTitle(title); @@ -118,7 +118,7 @@ void MD5Dialog::show(const QString& title) QDialog::show(); } -void MD5Dialog::SetProgress(int pid, int progress) +void GameDigestDialog::SetProgress(int pid, int progress) { QString player_name = GetPlayerNameFromPID(pid); @@ -130,7 +130,7 @@ void MD5Dialog::SetProgress(int pid, int progress) m_progress_bars[pid]->setValue(progress); } -void MD5Dialog::SetResult(int pid, const std::string& result) +void GameDigestDialog::SetResult(int pid, const std::string& result) { QString player_name = GetPlayerNameFromPID(pid); @@ -162,12 +162,12 @@ void MD5Dialog::SetResult(int pid, const std::string& result) } } -void MD5Dialog::reject() +void GameDigestDialog::reject() { auto server = Settings::Instance().GetNetPlayServer(); if (server) - server->AbortMD5(); + server->AbortGameDigest(); QDialog::reject(); } diff --git a/Source/Core/DolphinQt/NetPlay/MD5Dialog.h b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.h similarity index 84% rename from Source/Core/DolphinQt/NetPlay/MD5Dialog.h rename to Source/Core/DolphinQt/NetPlay/GameDigestDialog.h index d3078667df..684b239dab 100644 --- a/Source/Core/DolphinQt/NetPlay/MD5Dialog.h +++ b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.h @@ -16,15 +16,15 @@ class QProgressBar; class QVBoxLayout; class QWidget; -class MD5Dialog : public QDialog +class GameDigestDialog : public QDialog { Q_OBJECT public: - explicit MD5Dialog(QWidget* parent); + explicit GameDigestDialog(QWidget* parent); void show(const QString& title); void SetProgress(int pid, int progress); - void SetResult(int pid, const std::string& md5); + void SetResult(int pid, const std::string& result); void reject() override; diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index 4a297acea3..b994bd93f3 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -45,8 +45,8 @@ #include "Core/SyncIdentifier.h" #include "DolphinQt/NetPlay/ChunkedProgressDialog.h" +#include "DolphinQt/NetPlay/GameDigestDialog.h" #include "DolphinQt/NetPlay/GameListDialog.h" -#include "DolphinQt/NetPlay/MD5Dialog.h" #include "DolphinQt/NetPlay/PadMappingDialog.h" #include "DolphinQt/QtUtils/ModalMessageBox.h" #include "DolphinQt/QtUtils/QueueOnObject.h" @@ -100,7 +100,7 @@ NetPlayDialog::NetPlayDialog(const GameListModel& game_list_model, setWindowIcon(Resources::GetAppIcon()); m_pad_mapping = new PadMappingDialog(this); - m_md5_dialog = new MD5Dialog(this); + m_game_digest_dialog = new GameDigestDialog(this); m_chunked_progress_dialog = new ChunkedProgressDialog(this); ResetExternalIP(); @@ -182,19 +182,20 @@ void NetPlayDialog::CreateMainLayout() m_network_mode_group->addAction(m_golf_mode_action); m_fixed_delay_action->setChecked(true); - m_md5_menu = m_menu_bar->addMenu(tr("Checksum")); - m_md5_menu->addAction(tr("Current game"), this, [this] { - Settings::Instance().GetNetPlayServer()->ComputeMD5(m_current_game_identifier); + m_game_digest_menu = m_menu_bar->addMenu(tr("Checksum")); + m_game_digest_menu->addAction(tr("Current game"), this, [this] { + Settings::Instance().GetNetPlayServer()->ComputeGameDigest(m_current_game_identifier); }); - m_md5_menu->addAction(tr("Other game..."), this, [this] { + m_game_digest_menu->addAction(tr("Other game..."), this, [this] { GameListDialog gld(m_game_list_model, this); if (gld.exec() != QDialog::Accepted) return; - Settings::Instance().GetNetPlayServer()->ComputeMD5(gld.GetSelectedGame().GetSyncIdentifier()); + Settings::Instance().GetNetPlayServer()->ComputeGameDigest( + gld.GetSelectedGame().GetSyncIdentifier()); }); - m_md5_menu->addAction(tr("SD Card"), this, [] { - Settings::Instance().GetNetPlayServer()->ComputeMD5( + m_game_digest_menu->addAction(tr("SD Card"), this, [] { + Settings::Instance().GetNetPlayServer()->ComputeGameDigest( NetPlay::NetPlayClient::GetSDCardIdentifier()); }); @@ -506,7 +507,7 @@ void NetPlayDialog::show(std::string nickname, bool use_traversal) m_data_menu->menuAction()->setVisible(is_hosting); m_network_menu->menuAction()->setVisible(is_hosting); - m_md5_menu->menuAction()->setVisible(is_hosting); + m_game_digest_menu->menuAction()->setVisible(is_hosting); #ifdef HAS_LIBMGBA m_hide_remote_gbas_action->setVisible(is_hosting); #else @@ -1175,39 +1176,39 @@ void NetPlayDialog::SaveSettings() Config::SetBase(Config::NETPLAY_NETWORK_MODE, network_mode); } -void NetPlayDialog::ShowMD5Dialog(const std::string& title) +void NetPlayDialog::ShowGameDigestDialog(const std::string& title) { QueueOnObject(this, [this, title] { - m_md5_menu->setEnabled(false); + m_game_digest_menu->setEnabled(false); - if (m_md5_dialog->isVisible()) - m_md5_dialog->close(); + if (m_game_digest_dialog->isVisible()) + m_game_digest_dialog->close(); - m_md5_dialog->show(QString::fromStdString(title)); + m_game_digest_dialog->show(QString::fromStdString(title)); }); } -void NetPlayDialog::SetMD5Progress(int pid, int progress) +void NetPlayDialog::SetGameDigestProgress(int pid, int progress) { QueueOnObject(this, [this, pid, progress] { - if (m_md5_dialog->isVisible()) - m_md5_dialog->SetProgress(pid, progress); + if (m_game_digest_dialog->isVisible()) + m_game_digest_dialog->SetProgress(pid, progress); }); } -void NetPlayDialog::SetMD5Result(int pid, const std::string& result) +void NetPlayDialog::SetGameDigestResult(int pid, const std::string& result) { QueueOnObject(this, [this, pid, result] { - m_md5_dialog->SetResult(pid, result); - m_md5_menu->setEnabled(true); + m_game_digest_dialog->SetResult(pid, result); + m_game_digest_menu->setEnabled(true); }); } -void NetPlayDialog::AbortMD5() +void NetPlayDialog::AbortGameDigest() { QueueOnObject(this, [this] { - m_md5_dialog->close(); - m_md5_menu->setEnabled(true); + m_game_digest_dialog->close(); + m_game_digest_menu->setEnabled(true); }); } diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h index 03111925bd..273cd76199 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h @@ -17,7 +17,7 @@ class BootSessionData; class ChunkedProgressDialog; -class MD5Dialog; +class GameDigestDialog; class PadMappingDialog; class QCheckBox; class QComboBox; @@ -85,10 +85,10 @@ public: void LoadSettings(); void SaveSettings(); - void ShowMD5Dialog(const std::string& title) override; - void SetMD5Progress(int pid, int progress) override; - void SetMD5Result(int pid, const std::string& result) override; - void AbortMD5() override; + void ShowGameDigestDialog(const std::string& title) override; + void SetGameDigestProgress(int pid, int progress) override; + void SetGameDigestResult(int pid, const std::string& result) override; + void AbortGameDigest() override; void ShowChunkedProgressDialog(const std::string& title, u64 data_size, const std::vector& players) override; @@ -136,7 +136,7 @@ private: QMenuBar* m_menu_bar; QMenu* m_data_menu; QMenu* m_network_menu; - QMenu* m_md5_menu; + QMenu* m_game_digest_menu; QMenu* m_other_menu; QPushButton* m_game_button; QPushButton* m_start_button; @@ -159,7 +159,7 @@ private: QActionGroup* m_network_mode_group; QGridLayout* m_main_layout; - MD5Dialog* m_md5_dialog; + GameDigestDialog* m_game_digest_dialog; ChunkedProgressDialog* m_chunked_progress_dialog; PadMappingDialog* m_pad_mapping; NetPlay::SyncIdentifier m_current_game_identifier; From 403f3693da03f6211a9c04f947f22aed34bdb8a5 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 27 Jul 2022 18:47:52 -0700 Subject: [PATCH 522/659] NetPlay: use sha1 instead of md5 --- Source/Core/Core/NetPlayClient.cpp | 16 ++++++---------- .../Core/DolphinQt/NetPlay/GameDigestDialog.cpp | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index 9bc0ff5e2f..1ee76e21f0 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -16,11 +16,11 @@ #include #include -#include #include "Common/Assert.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" +#include "Common/Crypto/SHA1.h" #include "Common/ENetUtil.h" #include "Common/FileUtil.h" #include "Common/Logging/Log.h" @@ -2436,16 +2436,15 @@ bool NetPlayClient::DoAllPlayersHaveGame() }); } -static std::string MD5Sum(const std::string& file_path, std::function report_progress) +static std::string SHA1Sum(const std::string& file_path, std::function report_progress) { std::vector data(8 * 1024 * 1024); u64 read_offset = 0; - mbedtls_md5_context ctx; std::unique_ptr file(DiscIO::CreateBlobReader(file_path)); u64 game_size = file->GetDataSize(); - mbedtls_md5_starts_ret(&ctx); + auto ctx = Common::SHA1::CreateContext(); while (read_offset < game_size) { @@ -2453,7 +2452,7 @@ static std::string MD5Sum(const std::string& file_path, std::function if (!file->Read(read_offset, read_size, data.data())) return ""; - mbedtls_md5_update_ret(&ctx, data.data(), read_size); + ctx->Update(data.data(), read_size); read_offset += read_size; int progress = @@ -2462,11 +2461,8 @@ static std::string MD5Sum(const std::string& file_path, std::function return ""; } - std::array output; - mbedtls_md5_finish_ret(&ctx, output.data()); - // Convert to hex - return fmt::format("{:02x}", fmt::join(output, "")); + return fmt::format("{:02x}", fmt::join(ctx->Finish(), "")); } void NetPlayClient::ComputeGameDigest(const SyncIdentifier& sync_identifier) @@ -2495,7 +2491,7 @@ void NetPlayClient::ComputeGameDigest(const SyncIdentifier& sync_identifier) if (m_game_digest_thread.joinable()) m_game_digest_thread.join(); m_game_digest_thread = std::thread([this, file]() { - std::string sum = MD5Sum(file, [&](int progress) { + std::string sum = SHA1Sum(file, [&](int progress) { sf::Packet packet; packet << MessageID::GameDigestProgress; packet << progress; diff --git a/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp index 8144514c74..6a91e4bbde 100644 --- a/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp @@ -40,7 +40,7 @@ GameDigestDialog::GameDigestDialog(QWidget* parent) : QDialog(parent) { CreateWidgets(); ConnectWidgets(); - setWindowTitle(tr("MD5 Checksum")); + setWindowTitle(tr("SHA1 Digest")); setWindowFlags(Qt::Sheet | Qt::Dialog); setWindowModality(Qt::WindowModal); } From 4e6aa28da45b4b618f0ede639d4e0477fb124c0a Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 2 Aug 2022 23:03:51 -0700 Subject: [PATCH 523/659] crypto/aes: silence warning on godforsaken android gcc --- Source/Core/Common/Crypto/AES.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/Crypto/AES.cpp b/Source/Core/Common/Crypto/AES.cpp index 7c67766ed4..fe8f4ec728 100644 --- a/Source/Core/Common/Crypto/AES.cpp +++ b/Source/Core/Common/Crypto/AES.cpp @@ -264,7 +264,7 @@ public: template inline constexpr void StoreRoundKey(const u32* rk) { - const uint8x16_t rk_block = vld1q_u32(rk); + const uint8x16_t rk_block = vreinterpretq_u8_u32(vld1q_u32(rk)); if constexpr (AesMode == Mode::Encrypt) round_keys[RoundIdx] = rk_block; else From 78142e30cccf5420d3f190ab595cce2e2ff5e489 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 2 Aug 2022 23:05:07 -0700 Subject: [PATCH 524/659] crypto/sha1: simplify enablement of sha insns on non-msvc --- Source/Core/Common/CMakeLists.txt | 1 + Source/Core/Common/Crypto/SHA1.cpp | 24 ++---------------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index f9e5109d17..8cf550a886 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -139,6 +139,7 @@ add_library(common if(NOT MSVC AND _M_ARM_64) set_source_files_properties( Crypto/AES.cpp + Crypto/SHA1.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto") endif() diff --git a/Source/Core/Common/Crypto/SHA1.cpp b/Source/Core/Common/Crypto/SHA1.cpp index 9789818f13..7dfbb1f0c0 100644 --- a/Source/Core/Common/Crypto/SHA1.cpp +++ b/Source/Core/Common/Crypto/SHA1.cpp @@ -19,14 +19,6 @@ #ifdef _M_X86_64 #include #elif defined(_M_ARM_64) -#if defined(__clang__) -// This is a bit of a hack to get clang to accept the sha1 intrinsics without modifying cmdline -// flags. Note __ARM_FEATURE_CRYPTO is deprecated and "SHA2" flag is the lowest one which includes -// SHA1. -#define __ARM_FEATURE_SHA2 -// ...needed for older clang before they made the switchover to more granular flags. -#define __ARM_FEATURE_CRYPTO -#endif #include #include #endif @@ -256,17 +248,6 @@ private: #ifdef _M_ARM_64 -// The armv8 flags are very annoying: -// clang inserts "+" prefixes itself, gcc does not. -// clang has deprecated "crypto" (removed in clang 13), gcc has not. -#ifdef _MSC_VER -#define TARGET_ARMV8_SHA1 -#elif defined(__clang__) -#define TARGET_ARMV8_SHA1 [[gnu::target("sha2")]] -#elif defined(__GNUC__) -#define TARGET_ARMV8_SHA1 [[gnu::target("+crypto")]] -#endif - class ContextNeon final : public BlockContext { public: @@ -287,7 +268,6 @@ private: u32 e{}; }; - TARGET_ARMV8_SHA1 static inline uint32x4_t MsgSchedule(WorkBlock* wblock, size_t i) { auto& w = *wblock; @@ -299,7 +279,7 @@ private: } template - TARGET_ARMV8_SHA1 static inline constexpr uint32x4_t f(State state, uint32x4_t w) + static inline constexpr uint32x4_t f(State state, uint32x4_t w) { const auto wk = vaddq_u32(w, vdupq_n_u32(K[Func])); if constexpr (Func == 0) @@ -311,7 +291,7 @@ private: } template - TARGET_ARMV8_SHA1 static inline constexpr State FourRounds(State state, uint32x4_t w) + static inline constexpr State FourRounds(State state, uint32x4_t w) { #ifdef _MSC_VER // FIXME it seems the msvc optimizer gets a little too happy From bf5076eb010a0c8928d7fb823b35105e9e9dc0c6 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 2 Aug 2022 23:05:45 -0700 Subject: [PATCH 525/659] crypto/sha1: add real workaround for msvc/arm64 bad codegen --- Source/Core/Common/CMakeLists.txt | 8 ++++++++ Source/Core/Common/Crypto/SHA1.cpp | 4 ---- Source/Core/DolphinLib.props | 7 ++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 8cf550a886..134d38062c 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -136,6 +136,14 @@ add_library(common WorkQueueThread.h ) +if(MSVC AND _M_ARM_64) + # Workaround msvc arm64 optimizer bug + # TODO remove after updating to VS 17.4 + set_source_files_properties( + Crypto/SHA1.cpp + PROPERTIES COMPILE_FLAGS "/d2ssa-peeps-post-color-") +endif() + if(NOT MSVC AND _M_ARM_64) set_source_files_properties( Crypto/AES.cpp diff --git a/Source/Core/Common/Crypto/SHA1.cpp b/Source/Core/Common/Crypto/SHA1.cpp index 7dfbb1f0c0..8f22855b0e 100644 --- a/Source/Core/Common/Crypto/SHA1.cpp +++ b/Source/Core/Common/Crypto/SHA1.cpp @@ -293,10 +293,6 @@ private: template static inline constexpr State FourRounds(State state, uint32x4_t w) { -#ifdef _MSC_VER - // FIXME it seems the msvc optimizer gets a little too happy - _ReadBarrier(); -#endif return {f(state, w), vsha1h_u32(vgetq_lane_u32(state.abcd, 0))}; } diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 0c73e3d980..b1da315c18 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -723,7 +723,12 @@ - + + + /d2ssa-peeps-post-color- %(AdditionalOptions) + From 347dd03c3fa8970c6cb6af06eadfe045679d3e03 Mon Sep 17 00:00:00 2001 From: Minty-Meeo <45425365+Minty-Meeo@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:25:37 -0500 Subject: [PATCH 526/659] Remove Vestigial Preprocessor Block in Jit64/Jit.cpp "Common/GekkoDisassembler.h" became used by Release builds with commit 77e9aa48bc217f9143d7ee2dca4b213a1505a02f, but this got left in by mistake. --- Source/Core/Core/PowerPC/Jit64/Jit.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp index f43d25855f..39a5378993 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp @@ -44,9 +44,6 @@ #include "Core/PowerPC/PPCAnalyst.h" #include "Core/PowerPC/PowerPC.h" #include "Core/PowerPC/Profiler.h" -#if defined(_DEBUG) || defined(DEBUGFAST) -#include "Common/GekkoDisassembler.h" -#endif using namespace Gen; using namespace PowerPC; From e353f8ba0d70de495cabc019732d7c55110630be Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 3 Aug 2022 11:24:48 -0700 Subject: [PATCH 527/659] GameSettings: Use Safe Texture Cache for Gormiti: The Lords of Nature! --- Data/Sys/GameSettings/SGL.ini | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Data/Sys/GameSettings/SGL.ini diff --git a/Data/Sys/GameSettings/SGL.ini b/Data/Sys/GameSettings/SGL.ini new file mode 100644 index 0000000000..6648a8cdcd --- /dev/null +++ b/Data/Sys/GameSettings/SGL.ini @@ -0,0 +1,5 @@ +# SGLEA4, SGLPA4 - Gormiti: The Lords of Nature! + +[Video_Settings] +# Needed to fix text in menus (medium isn't enough; it fixes some menus but not the new profile one) +SafeTextureCacheColorSamples = 0 From 8316c7af9964f19cc54c3533e017252f922ceee9 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 3 Aug 2022 11:31:07 -0700 Subject: [PATCH 528/659] GameSettings: Add patch for black screens in Gormiti: The Lords of Nature! This patch only targets the US release, and is not enabled by default. --- Data/Sys/GameSettings/SGLEA4.ini | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Data/Sys/GameSettings/SGLEA4.ini diff --git a/Data/Sys/GameSettings/SGLEA4.ini b/Data/Sys/GameSettings/SGLEA4.ini new file mode 100644 index 0000000000..4eb864004e --- /dev/null +++ b/Data/Sys/GameSettings/SGLEA4.ini @@ -0,0 +1,8 @@ +# SGLEA4 - Gormiti: The Lords of Nature! + +[OnFrame] +# Fixes black screen ingame, see https://bugs.dolphin-emu.org/issues/12436 +# This NOPs out UpdateFade's call to RenderFade. We are probably emulating the way the fade works +# incorrectly, but for now this patch makes the game playable. +$Fix black screen +0x801D59AC:dword:0x60000000 From 8b65e841215436f5dbcd3bef04fb731c698d8431 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 19 Jun 2022 11:34:53 -0700 Subject: [PATCH 529/659] DSPHLE: Make all uCode implementations final classes (Apart from AXUCode, which is inherited by AXWiiUCode.) --- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/CARD.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/GBA.h | 3 ++- Source/Core/Core/HW/DSPHLE/UCodes/INIT.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/ROM.h | 2 +- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h | 2 +- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index d95d2db27f..c51cdb34b9 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -62,7 +62,7 @@ enum AXMixControl // clang-format on }; -class AXUCode : public UCodeInterface +class AXUCode /* not final: subclassed by AXWiiUCode */ : public UCodeInterface { public: AXUCode(DSPHLE* dsphle, u32 crc); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h index 27d79ba1ae..e024ee87ad 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h @@ -11,7 +11,7 @@ namespace DSP::HLE struct AXPBWii; class DSPHLE; -class AXWiiUCode : public AXUCode +class AXWiiUCode final : public AXUCode { public: AXWiiUCode(DSPHLE* dsphle, u32 crc); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h index 55b1e7f95d..4a071c4e29 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h @@ -10,7 +10,7 @@ namespace DSP::HLE { class DSPHLE; -class CARDUCode : public UCodeInterface +class CARDUCode final : public UCodeInterface { public: CARDUCode(DSPHLE* dsphle, u32 crc); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h index 22083d127d..37af8a5d52 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h @@ -15,8 +15,9 @@ class DSPHLE; // written back to RAM at the dest address provided in the crypto parameters. void ProcessGBACrypto(u32 address); -struct GBAUCode : public UCodeInterface +class GBAUCode final : public UCodeInterface { +public: GBAUCode(DSPHLE* dsphle, u32 crc); void Initialize() override; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h index 53cbe01428..9ea8a4174e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h @@ -10,7 +10,7 @@ namespace DSP::HLE { class DSPHLE; -class INITUCode : public UCodeInterface +class INITUCode final : public UCodeInterface { public: INITUCode(DSPHLE* dsphle, u32 crc); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h index 431c9ed052..68e1fc0f7f 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.h @@ -10,7 +10,7 @@ namespace DSP::HLE { class DSPHLE; -class ROMUCode : public UCodeInterface +class ROMUCode final : public UCodeInterface { public: ROMUCode(DSPHLE* dsphle, u32 crc); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h index 6051faf853..33963a8dd6 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h @@ -187,7 +187,7 @@ private: u32 m_reverb_pb_base_addr = 0; }; -class ZeldaUCode : public UCodeInterface +class ZeldaUCode final : public UCodeInterface { public: ZeldaUCode(DSPHLE* dsphle, u32 crc); From 8d66c29f3303f564d039015ec7ea0f95a570b564 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Sun, 19 Jun 2022 12:09:32 -0700 Subject: [PATCH 530/659] DSPHLE: Eliminate global state in GBA uCode + accuracy improvements The accuracy improvements are: * The request mail must be 0xabba0000 exactly; both the low and high parts are checked * The address is masked with 0x0fffffff * Before, the global state meant that after the GBA uCode had been used once, it would accept 0xcdd1 commands immediately. Now, it only accepts them after execution has finished. --- Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 39 +++++++++++++++-------- Source/Core/Core/HW/DSPHLE/UCodes/GBA.h | 12 +++++++ 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index f6eae73088..767aeda2ba 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -89,28 +89,44 @@ void GBAUCode::Update() void GBAUCode::HandleMail(u32 mail) { - static bool nextmail_is_mramaddr = false; - static bool calc_done = false; - if (m_upload_setup_in_progress) { PrepareBootUCode(mail); + // The GBA ucode ignores the first 3 mails (mram_dest_addr, mram_size, mram_dram_addr) + // but we currently don't handle that (they're read when they shoudln't be, but DSP HLE doesn't + // implement them so it's fine). + return; } - else if ((mail >> 16 == 0xabba) && !nextmail_is_mramaddr) + + switch (m_mail_state) { - nextmail_is_mramaddr = true; + case MailState::WaitingForRequest: + { + if (mail == REQUEST_MAIL) + { + INFO_LOG_FMT(DSPHLE, "GBAUCode - Recieved request mail"); + m_mail_state = MailState::WaitingForAddress; + } + else + { + WARN_LOG_FMT(DSPHLE, "GBAUCode - Expected request mail but got {:08x}", mail); + } + break; } - else if (nextmail_is_mramaddr) + case MailState::WaitingForAddress: { - nextmail_is_mramaddr = false; + const u32 address = mail & 0x0fff'ffff; - ProcessGBACrypto(mail); + ProcessGBACrypto(address); - calc_done = true; m_mail_handler.PushMail(DSP_DONE); + m_mail_state = MailState::WaitingForNextTask; + break; } - else if (((mail & TASK_MAIL_MASK) == TASK_MAIL_TO_DSP) && calc_done) + case MailState::WaitingForNextTask: { + // The GBA uCode checks that the high word is cdd1, so we compare the full mail with + // MAIL_NEW_UCODE/MAIL_RESET without doing masking switch (mail) { case MAIL_NEW_UCODE: @@ -124,9 +140,6 @@ void GBAUCode::HandleMail(u32 mail) break; } } - else - { - WARN_LOG_FMT(DSPHLE, "GBAUCode - unknown command: {:08x}", mail); } } } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h index 37af8a5d52..842797ad72 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h @@ -23,5 +23,17 @@ public: void Initialize() override; void HandleMail(u32 mail) override; void Update() override; + +private: + static constexpr u32 REQUEST_MAIL = 0xabba0000; + + enum class MailState + { + WaitingForRequest, + WaitingForAddress, + WaitingForNextTask, + }; + + MailState m_mail_state = MailState::WaitingForRequest; }; } // namespace DSP::HLE From f2e833b5c474c8f5e42d413c8994174bc6fccd16 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 22 Jun 2022 13:20:00 -0700 Subject: [PATCH 531/659] DSPHLE: Eliminate global state in AX uCode This also increases accuracy as to when specific mail is allowed, and correctly handles masking of the 0xCDD1 mails. --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 105 +++++++++++++---------- Source/Core/Core/HW/DSPHLE/UCodes/AX.h | 9 ++ 2 files changed, 71 insertions(+), 43 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index c53d7a8e8e..7a7d9e5d39 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -653,53 +653,72 @@ void AXUCode::SendAUXAndMix(u32 main_auxa_up, u32 auxb_s_up, u32 main_l_dl, u32 void AXUCode::HandleMail(u32 mail) { - // Indicates if the next message is a command list address. - static bool next_is_cmdlist = false; - static u16 cmdlist_size = 0; - - bool set_next_is_cmdlist = false; - - if (next_is_cmdlist) + if (m_upload_setup_in_progress) { - CopyCmdList(mail, cmdlist_size); + PrepareBootUCode(mail); + return; + } + + switch (m_mail_state) + { + case MailState::WaitingForCmdListSize: + if ((mail & MAIL_CMDLIST_MASK) == MAIL_CMDLIST) + { + // A command list address is going to be sent next. + m_cmdlist_size = static_cast(mail & ~MAIL_CMDLIST_MASK); + m_mail_state = MailState::WaitingForCmdListAddress; + } + else + { + ERROR_LOG_FMT(DSPHLE, "Unknown mail sent to AX::HandleMail; expected command list: {:08x}", + mail); + } + break; + + case MailState::WaitingForCmdListAddress: + CopyCmdList(mail, m_cmdlist_size); HandleCommandList(); m_cmdlist_size = 0; SignalWorkEnd(); - } - else if (m_upload_setup_in_progress) - { - PrepareBootUCode(mail); - } - else if (mail == MAIL_RESUME) - { - // Acknowledge the resume request - m_mail_handler.PushMail(DSP_RESUME, true); - } - else if (mail == MAIL_NEW_UCODE) - { - m_upload_setup_in_progress = true; - } - else if (mail == MAIL_RESET) - { - m_dsphle->SetUCode(UCODE_ROM); - } - else if (mail == MAIL_CONTINUE) - { - // We don't have to do anything here - the CPU does not wait for a ACK - // and sends a cmdlist mail just after. - } - else if ((mail & MAIL_CMDLIST_MASK) == MAIL_CMDLIST) - { - // A command list address is going to be sent next. - set_next_is_cmdlist = true; - cmdlist_size = (u16)(mail & ~MAIL_CMDLIST_MASK); - } - else - { - ERROR_LOG_FMT(DSPHLE, "Unknown mail sent to AX::HandleMail: {:08x}", mail); - } + m_mail_state = MailState::WaitingForNextTask; + break; - next_is_cmdlist = set_next_is_cmdlist; + case MailState::WaitingForNextTask: + if ((mail & TASK_MAIL_MASK) != TASK_MAIL_TO_DSP) + { + WARN_LOG_FMT(DSPHLE, "Rendering task without prefix CDD1: {:08x}", mail); + mail = TASK_MAIL_TO_DSP | (mail & ~TASK_MAIL_MASK); + // The actual uCode does not check for the CDD1 prefix. + } + + switch (mail) + { + case MAIL_RESUME: + // Acknowledge the resume request + m_mail_handler.PushMail(DSP_RESUME, true); + m_mail_state = MailState::WaitingForCmdListSize; + break; + + case MAIL_NEW_UCODE: + m_upload_setup_in_progress = true; + break; + + case MAIL_RESET: + m_dsphle->SetUCode(UCODE_ROM); + break; + + case MAIL_CONTINUE: + // We don't have to do anything here - the CPU does not wait for a ACK + // and sends a cmdlist mail just after. + m_mail_state = MailState::WaitingForCmdListSize; + break; + + default: + WARN_LOG_FMT(DSPHLE, "Unknown task mail: {:08x}", mail); + break; + } + break; + } } void AXUCode::CopyCmdList(u32 addr, u16 size) @@ -712,7 +731,6 @@ void AXUCode::CopyCmdList(u32 addr, u16 size) for (u32 i = 0; i < size; ++i, addr += 2) m_cmdlist[i] = HLEMemory_Read_U16(addr); - m_cmdlist_size = size; } void AXUCode::Update() @@ -728,6 +746,7 @@ void AXUCode::DoAXState(PointerWrap& p) { p.Do(m_cmdlist); p.Do(m_cmdlist_size); + p.Do(m_mail_state); p.Do(m_samples_main_left); p.Do(m_samples_main_right); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h index c51cdb34b9..d63659a995 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.h @@ -200,5 +200,14 @@ private: CMD_COMPRESSOR = 0x12, CMD_SEND_AUX_AND_MIX = 0x13, }; + + enum class MailState + { + WaitingForCmdListSize, + WaitingForCmdListAddress, + WaitingForNextTask, + }; + + MailState m_mail_state = MailState::WaitingForCmdListSize; }; } // namespace DSP::HLE From bf7002672891adb3712a028472e28511028c569b Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 20 Jun 2022 12:37:58 -0700 Subject: [PATCH 532/659] DSPHLE: Require implementing DoState CARDUCode, GBAUCode, and INITUCode previously didn't have an implementation of it. In practice it's unlikely that this caused an issue, since these uCodes are only active for a few frames at most, but now that GBAUCode doesn't have global state, we can implement it there. I also implemented it for CARDUCode, although our CARDUCode implementation does not have all states handled yet - this is simply future-proofing so that when the card uCode is properly implemented, the save state version does not need to be bumped. INITUCode does not have any state to save, though. --- Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp | 7 +++++++ Source/Core/Core/HW/DSPHLE/UCodes/CARD.h | 12 ++++++++++++ Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp | 7 +++++++ Source/Core/Core/HW/DSPHLE/UCodes/GBA.h | 1 + Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp | 5 +++++ Source/Core/Core/HW/DSPHLE/UCodes/INIT.h | 1 + Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h | 2 +- Source/Core/Core/State.cpp | 2 +- 8 files changed, 35 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp index 4ad47757f8..43d145f75e 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp @@ -3,6 +3,7 @@ #include "Core/HW/DSPHLE/UCodes/CARD.h" +#include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Core/HW/DSP.h" @@ -44,4 +45,10 @@ void CARDUCode::HandleMail(u32 mail) m_mail_handler.PushMail(DSP_DONE); m_dsphle->SetUCode(UCODE_ROM); } + +void CARDUCode::DoState(PointerWrap& p) +{ + DoStateShared(p); + p.Do(m_state); +} } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h index 4a071c4e29..f1790b98d4 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.h @@ -18,5 +18,17 @@ public: void Initialize() override; void HandleMail(u32 mail) override; void Update() override; + void DoState(PointerWrap& p) override; + +private: + enum class State + { + WaitingForRequest, + WaitingForAddress, + WaitingForNextTask, + }; + + // Currently unused, will be used in a later version + State m_state = State::WaitingForRequest; }; } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp index 767aeda2ba..6c1a46cadc 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp @@ -4,6 +4,7 @@ #include "Core/HW/DSPHLE/UCodes/GBA.h" #include "Common/Align.h" +#include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Core/HW/DSP.h" @@ -142,4 +143,10 @@ void GBAUCode::HandleMail(u32 mail) } } } + +void GBAUCode::DoState(PointerWrap& p) +{ + DoStateShared(p); + p.Do(m_mail_state); +} } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h index 842797ad72..a2cf96869a 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.h @@ -23,6 +23,7 @@ public: void Initialize() override; void HandleMail(u32 mail) override; void Update() override; + void DoState(PointerWrap& p) override; private: static constexpr u32 REQUEST_MAIL = 0xabba0000; diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp index 7869460bc1..cf5204df1c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.cpp @@ -28,4 +28,9 @@ void INITUCode::Update() void INITUCode::HandleMail(u32 mail) { } + +void INITUCode::DoState(PointerWrap& p) +{ + // We don't need to call DoStateShared() as the init uCode doesn't support launching new uCode +} } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h index 9ea8a4174e..fb1bd7860d 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/INIT.h @@ -18,5 +18,6 @@ public: void Initialize() override; void HandleMail(u32 mail) override; void Update() override; + void DoState(PointerWrap& p) override; }; } // namespace DSP::HLE diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h index 408c1e1239..029713ca60 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCodes.h @@ -46,7 +46,7 @@ public: virtual void HandleMail(u32 mail) = 0; virtual void Update() = 0; - virtual void DoState(PointerWrap& p) { DoStateShared(p); } + virtual void DoState(PointerWrap& p) = 0; static u32 GetCRC(UCodeInterface* ucode) { return ucode ? ucode->m_crc : UCODE_NULL; } protected: diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index c7c2aee8dd..d4abf52bcd 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -74,7 +74,7 @@ static std::recursive_mutex g_save_thread_mutex; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -constexpr u32 STATE_VERSION = 147; // Last changed in PR 10935 +constexpr u32 STATE_VERSION = 148; // Last changed in PR 10768 // Maps savestate versions to Dolphin versions. // Versions after 42 don't need to be added to this list, From 8129874d11c7f7d9c514cfab6e4d1dcf54b4a80d Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 24 Feb 2022 20:17:43 -0800 Subject: [PATCH 533/659] Sanitize and use increased precision when normalizing light directions This normalization was added in 02ac5e95c84a1d9a46df1dc4102342fb653e36ee, and changed to use floats in 4bf031c0646e91b35777f1ba4e2b0328063bb666. The conversion to floats means that sometimes there is insufficient precision for the normalization process, which results in values of NaN or infinity. Performing the whole process with doubles prevents that, but games also sometimes set the values to NaN or infinity directly (possibly accidentally due to the values not being initialized due to them not being used in the current configuration?). The version of Mesa currently in use on FifoCI (20.3.5) has issues with NaN. Although this bug has been fixed (https://gitlab.freedesktop.org/mesa/mesa/-/commit/b3f3287eac066eae16dce0e47aad3229dcff8257 in 21.2.0), FifoCI is stuck with the older version. This change may or may not be incorrect, but it should result in the same behavior as already present in Dolphin, while working around the Mesa bug. --- Source/Core/VideoCommon/VertexShaderManager.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index 555819e072..ce43235977 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -172,14 +172,22 @@ void VertexShaderManager::SetConstants(const std::vector& textures) dstlight.pos[1] = light.dpos[1]; dstlight.pos[2] = light.dpos[2]; + // TODO: Hardware testing is needed to confirm that this normalization is correct + auto sanitize = [](float f) { + if (std::isnan(f)) + return 0.0f; + else if (std::isinf(f)) + return f > 0.0f ? 1.0f : -1.0f; + else + return f; + }; double norm = double(light.ddir[0]) * double(light.ddir[0]) + double(light.ddir[1]) * double(light.ddir[1]) + double(light.ddir[2]) * double(light.ddir[2]); norm = 1.0 / sqrt(norm); - float norm_float = static_cast(norm); - dstlight.dir[0] = light.ddir[0] * norm_float; - dstlight.dir[1] = light.ddir[1] * norm_float; - dstlight.dir[2] = light.ddir[2] * norm_float; + dstlight.dir[0] = sanitize(static_cast(light.ddir[0] * norm)); + dstlight.dir[1] = sanitize(static_cast(light.ddir[1] * norm)); + dstlight.dir[2] = sanitize(static_cast(light.ddir[2] * norm)); } dirty = true; From bb27d4cc95ccdaacfb4dce9a2534534d263ce20b Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 31 Jul 2022 13:28:01 +0200 Subject: [PATCH 534/659] DiscIO/VolumeWii: Decouple "is encrypted" from "is hashed" Needed for the next commit. NFS disc images are hashed but not encrypted. While we're at it, also get rid of SupportsIntegrityCheck. It does the same thing as old IsEncryptedAndHashed and new HasWiiHashes. --- Source/Core/Core/HW/DVD/DVDInterface.cpp | 7 +- Source/Core/Core/HW/DVD/DVDThread.cpp | 6 +- Source/Core/Core/HW/DVD/DVDThread.h | 2 +- Source/Core/DiscIO/DirectoryBlob.cpp | 4 +- Source/Core/DiscIO/DiscExtractor.cpp | 2 +- Source/Core/DiscIO/DiscScrubber.cpp | 2 +- Source/Core/DiscIO/Volume.h | 4 +- Source/Core/DiscIO/VolumeVerifier.cpp | 13 ++- Source/Core/DiscIO/VolumeWii.cpp | 107 ++++++++++++++++------- Source/Core/DiscIO/VolumeWii.h | 11 +-- Source/Core/DiscIO/WIABlob.cpp | 2 +- 11 files changed, 101 insertions(+), 59 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 857c6edb91..190f0b1213 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -1472,10 +1472,9 @@ static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& parti u32 buffered_blocks = 0; u32 unbuffered_blocks = 0; - const u32 bytes_per_chunk = - partition != DiscIO::PARTITION_NONE && DVDThread::IsEncryptedAndHashed() ? - DiscIO::VolumeWii::BLOCK_DATA_SIZE : - DVD_ECC_BLOCK_SIZE; + const u32 bytes_per_chunk = partition != DiscIO::PARTITION_NONE && DVDThread::HasWiiHashes() ? + DiscIO::VolumeWii::BLOCK_DATA_SIZE : + DVD_ECC_BLOCK_SIZE; do { diff --git a/Source/Core/Core/HW/DVD/DVDThread.cpp b/Source/Core/Core/HW/DVD/DVDThread.cpp index 4d37f823ec..5590f58b6e 100644 --- a/Source/Core/Core/HW/DVD/DVDThread.cpp +++ b/Source/Core/Core/HW/DVD/DVDThread.cpp @@ -184,10 +184,10 @@ bool HasDisc() return s_disc != nullptr; } -bool IsEncryptedAndHashed() +bool HasWiiHashes() { - // IsEncryptedAndHashed is thread-safe, so calling WaitUntilIdle isn't necessary. - return s_disc->IsEncryptedAndHashed(); + // HasWiiHashes is thread-safe, so calling WaitUntilIdle isn't necessary. + return s_disc->HasWiiHashes(); } DiscIO::Platform GetDiscType() diff --git a/Source/Core/Core/HW/DVD/DVDThread.h b/Source/Core/Core/HW/DVD/DVDThread.h index 420ab3a3d8..fe427e2e57 100644 --- a/Source/Core/Core/HW/DVD/DVDThread.h +++ b/Source/Core/Core/HW/DVD/DVDThread.h @@ -41,7 +41,7 @@ void DoState(PointerWrap& p); void SetDisc(std::unique_ptr disc); bool HasDisc(); -bool IsEncryptedAndHashed(); +bool HasWiiHashes(); DiscIO::Platform GetDiscType(); u64 PartitionOffsetToRawOffset(u64 offset, const DiscIO::Partition& partition); IOS::ES::TMDReader GetTMD(const DiscIO::Partition& partition); diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 7decaac2e3..295235c605 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -668,7 +668,7 @@ void DirectoryBlobReader::SetPartitions(std::vector&& partiti m_partitions.emplace(partition_data_offset, std::move(partitions[i].partition)); m_nonpartition_contents.Add(partition_data_offset, data_size, ContentPartition{this, 0, partition_data_offset}); - const u64 unaligned_next_partition_address = VolumeWii::EncryptedPartitionOffsetToRawOffset( + const u64 unaligned_next_partition_address = VolumeWii::OffsetInHashedPartitionToRawOffset( data_size, Partition(partition_address), PARTITION_DATA_OFFSET); partition_address = Common::AlignUp(unaligned_next_partition_address, 0x10000ull); } @@ -743,7 +743,7 @@ void DirectoryBlobReader::SetPartitionHeader(DirectoryBlobPartition* partition, if (wrapped_partition) { - if (m_wrapped_volume->IsEncryptedAndHashed()) + if (m_wrapped_volume->HasWiiHashes()) { const std::optional offset = m_wrapped_volume->ReadSwappedAndShifted( wrapped_partition->offset + WII_PARTITION_H3_OFFSET_ADDRESS, PARTITION_NONE); diff --git a/Source/Core/DiscIO/DiscExtractor.cpp b/Source/Core/DiscIO/DiscExtractor.cpp index d0453d7669..229e2a59cc 100644 --- a/Source/Core/DiscIO/DiscExtractor.cpp +++ b/Source/Core/DiscIO/DiscExtractor.cpp @@ -286,7 +286,7 @@ bool ExportSystemData(const Volume& volume, const Partition& partition, success &= ExportTicket(volume, partition, export_folder + "/ticket.bin"); success &= ExportTMD(volume, partition, export_folder + "/tmd.bin"); success &= ExportCertificateChain(volume, partition, export_folder + "/cert.bin"); - if (volume.IsEncryptedAndHashed()) + if (volume.HasWiiHashes()) success &= ExportH3Hashes(volume, partition, export_folder + "/h3.bin"); } diff --git a/Source/Core/DiscIO/DiscScrubber.cpp b/Source/Core/DiscIO/DiscScrubber.cpp index de0f17bb64..b79be16315 100644 --- a/Source/Core/DiscIO/DiscScrubber.cpp +++ b/Source/Core/DiscIO/DiscScrubber.cpp @@ -92,7 +92,7 @@ void DiscScrubber::MarkAsUsedE(u64 partition_data_offset, u64 offset, u64 size) // Compensate for 0x400 (SHA-1) per 0x8000 (cluster), and round to whole clusters u64 DiscScrubber::ToClusterOffset(u64 offset) const { - if (m_disc->IsEncryptedAndHashed()) + if (m_disc->HasWiiHashes()) return offset / 0x7c00 * CLUSTER_SIZE; else return Common::AlignDown(offset, CLUSTER_SIZE); diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h index 2c974f447d..c49f2ee24e 100644 --- a/Source/Core/DiscIO/Volume.h +++ b/Source/Core/DiscIO/Volume.h @@ -63,7 +63,8 @@ public: return static_cast(*temp) << GetOffsetShift(); } - virtual bool IsEncryptedAndHashed() const { return false; } + virtual bool HasWiiHashes() const { return false; } + virtual bool HasWiiEncryption() const { return false; } virtual std::vector GetPartitions() const { return {}; } virtual Partition GetGamePartition() const { return PARTITION_NONE; } virtual std::optional GetPartitionType(const Partition& partition) const @@ -122,7 +123,6 @@ public: virtual Platform GetVolumeType() const = 0; virtual bool IsDatelDisc() const = 0; virtual bool IsNKit() const = 0; - virtual bool SupportsIntegrityCheck() const { return false; } virtual bool CheckH3TableIntegrity(const Partition& partition) const { return false; } virtual bool CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, const Partition& partition) const diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index c4c5539fe2..460fd2a46b 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -403,9 +403,8 @@ void VolumeVerifier::Start() m_is_tgc = m_volume.GetBlobType() == BlobType::TGC; m_is_datel = m_volume.IsDatelDisc(); - m_is_not_retail = - (m_volume.GetVolumeType() == Platform::WiiDisc && !m_volume.IsEncryptedAndHashed()) || - IsDebugSigned(); + m_is_not_retail = (m_volume.GetVolumeType() == Platform::WiiDisc && !m_volume.HasWiiHashes()) || + IsDebugSigned(); const std::vector partitions = CheckPartitions(); @@ -492,7 +491,7 @@ std::vector VolumeVerifier::CheckPartitions() Common::GetStringT("The update partition is not at its normal position.")); } - const u64 normal_data_offset = m_volume.IsEncryptedAndHashed() ? 0xF800000 : 0x838000; + const u64 normal_data_offset = m_volume.HasWiiHashes() ? 0xF800000 : 0x838000; if (m_volume.GetPartitionType(partition) == PARTITION_DATA && partition.offset != normal_data_offset && !has_channel_partition && !has_install_partition) { @@ -593,14 +592,14 @@ bool VolumeVerifier::CheckPartition(const Partition& partition) } } - if (m_volume.SupportsIntegrityCheck() && !m_volume.CheckH3TableIntegrity(partition)) + if (m_volume.HasWiiHashes() && !m_volume.CheckH3TableIntegrity(partition)) { AddProblem(Severity::Low, Common::FmtFormatT("The H3 hash table for the {0} partition is not correct.", name)); } // Prepare for hash verification in the Process step - if (m_volume.SupportsIntegrityCheck()) + if (m_volume.HasWiiHashes()) { const u64 data_size = m_volume.ReadSwappedAndShifted(partition.offset + 0x2bc, PARTITION_NONE).value_or(0); @@ -780,7 +779,7 @@ void VolumeVerifier::CheckVolumeSize() Common::GetStringT("The format that the disc image is saved in does not " "store the size of the disc image.")); - if (m_volume.SupportsIntegrityCheck()) + if (m_volume.HasWiiHashes()) { volume_size = m_biggest_verified_offset; volume_size_roughly_known = true; diff --git a/Source/Core/DiscIO/VolumeWii.cpp b/Source/Core/DiscIO/VolumeWii.cpp index da7254e845..1b56e61ed6 100644 --- a/Source/Core/DiscIO/VolumeWii.cpp +++ b/Source/Core/DiscIO/VolumeWii.cpp @@ -41,7 +41,11 @@ VolumeWii::VolumeWii(std::unique_ptr reader) { ASSERT(m_reader); - m_encrypted = m_reader->ReadSwapped(0x60) == u32(0); + m_has_hashes = m_reader->ReadSwapped(0x60) == u8(0); + m_has_encryption = m_reader->ReadSwapped(0x61) == u8(0); + + if (m_has_encryption && !m_has_hashes) + ERROR_LOG_FMT(DISCIO, "Wii disc has encryption but no hashes! This probably won't work well"); for (u32 partition_group = 0; partition_group < 4; ++partition_group) { @@ -114,7 +118,7 @@ VolumeWii::VolumeWii(std::unique_ptr reader) }; auto get_h3_table = [this, partition]() -> std::vector { - if (!m_encrypted) + if (!m_has_hashes) return {}; const std::optional h3_table_offset = ReadSwappedAndShifted( partition.offset + WII_PARTITION_H3_OFFSET_ADDRESS, PARTITION_NONE); @@ -170,35 +174,55 @@ bool VolumeWii::Read(u64 offset, u64 length, u8* buffer, const Partition& partit const PartitionDetails& partition_details = it->second; const u64 partition_data_offset = partition.offset + *partition_details.data_offset; - if (m_reader->SupportsReadWiiDecrypted(offset, length, partition_data_offset)) - return m_reader->ReadWiiDecrypted(offset, length, buffer, partition_data_offset); - - if (!m_encrypted) + if (m_has_hashes && m_has_encryption && + m_reader->SupportsReadWiiDecrypted(offset, length, partition_data_offset)) { - return m_reader->Read(partition.offset + *partition_details.data_offset + offset, length, - buffer); + return m_reader->ReadWiiDecrypted(offset, length, buffer, partition_data_offset); } - auto aes_context = partition_details.key->get(); - if (!aes_context) - return false; + if (!m_has_hashes) + { + return m_reader->Read(partition_data_offset + offset, length, buffer); + } + + Common::AES::Context* aes_context = nullptr; + std::unique_ptr read_buffer = nullptr; + if (m_has_encryption) + { + aes_context = partition_details.key->get(); + if (!aes_context) + return false; + + read_buffer = std::make_unique(BLOCK_TOTAL_SIZE); + } - auto read_buffer = std::make_unique(BLOCK_TOTAL_SIZE); while (length > 0) { // Calculate offsets - u64 block_offset_on_disc = partition.offset + *partition_details.data_offset + - offset / BLOCK_DATA_SIZE * BLOCK_TOTAL_SIZE; + u64 block_offset_on_disc = partition_data_offset + offset / BLOCK_DATA_SIZE * BLOCK_TOTAL_SIZE; u64 data_offset_in_block = offset % BLOCK_DATA_SIZE; if (m_last_decrypted_block != block_offset_on_disc) { - // Read the current block - if (!m_reader->Read(block_offset_on_disc, BLOCK_TOTAL_SIZE, read_buffer.get())) - return false; + if (m_has_encryption) + { + // Read the current block + if (!m_reader->Read(block_offset_on_disc, BLOCK_TOTAL_SIZE, read_buffer.get())) + return false; + + // Decrypt the block's data + DecryptBlockData(read_buffer.get(), m_last_decrypted_block_data, aes_context); + } + else + { + // Read the current block + if (!m_reader->Read(block_offset_on_disc + BLOCK_HEADER_SIZE, BLOCK_DATA_SIZE, + m_last_decrypted_block_data)) + { + return false; + } + } - // Decrypt the block's data - DecryptBlockData(read_buffer.get(), m_last_decrypted_block_data, aes_context); m_last_decrypted_block = block_offset_on_disc; } @@ -216,9 +240,14 @@ bool VolumeWii::Read(u64 offset, u64 length, u8* buffer, const Partition& partit return true; } -bool VolumeWii::IsEncryptedAndHashed() const +bool VolumeWii::HasWiiHashes() const { - return m_encrypted; + return m_has_hashes; +} + +bool VolumeWii::HasWiiEncryption() const +{ + return m_has_encryption; } std::vector VolumeWii::GetPartitions() const @@ -272,8 +301,8 @@ const FileSystem* VolumeWii::GetFileSystem(const Partition& partition) const return it != m_partitions.end() ? it->second.file_system->get() : nullptr; } -u64 VolumeWii::EncryptedPartitionOffsetToRawOffset(u64 offset, const Partition& partition, - u64 partition_data_offset) +u64 VolumeWii::OffsetInHashedPartitionToRawOffset(u64 offset, const Partition& partition, + u64 partition_data_offset) { if (partition == PARTITION_NONE) return offset; @@ -289,10 +318,10 @@ u64 VolumeWii::PartitionOffsetToRawOffset(u64 offset, const Partition& partition return offset; const u64 data_offset = *it->second.data_offset; - if (!m_encrypted) + if (!m_has_hashes) return partition.offset + data_offset + offset; - return EncryptedPartitionOffsetToRawOffset(offset, partition, data_offset); + return OffsetInHashedPartitionToRawOffset(offset, partition, data_offset); } std::string VolumeWii::GetGameTDBID(const Partition& partition) const @@ -415,23 +444,37 @@ bool VolumeWii::CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, if (block_index / BLOCKS_PER_GROUP * Common::SHA1::DIGEST_LEN >= partition_details.h3_table->size()) + { return false; - - auto aes_context = partition_details.key->get(); - if (!aes_context) - return false; + } HashBlock hashes; - DecryptBlockHashes(encrypted_data, &hashes, aes_context); + u8 cluster_data_buffer[BLOCK_DATA_SIZE]; + const u8* cluster_data; - auto cluster_data = std::make_unique(BLOCK_DATA_SIZE); - DecryptBlockData(encrypted_data, cluster_data.get(), aes_context); + if (m_has_encryption) + { + Common::AES::Context* aes_context = partition_details.key->get(); + if (!aes_context) + return false; + + DecryptBlockHashes(encrypted_data, &hashes, aes_context); + DecryptBlockData(encrypted_data, cluster_data_buffer, aes_context); + cluster_data = cluster_data_buffer; + } + else + { + std::memcpy(&hashes, encrypted_data, BLOCK_HEADER_SIZE); + cluster_data = encrypted_data + BLOCK_HEADER_SIZE; + } for (u32 hash_index = 0; hash_index < 31; ++hash_index) { if (Common::SHA1::CalculateDigest(&cluster_data[hash_index * 0x400], 0x400) != hashes.h0[hash_index]) + { return false; + } } if (Common::SHA1::CalculateDigest(hashes.h0) != hashes.h1[block_index % 8]) diff --git a/Source/Core/DiscIO/VolumeWii.h b/Source/Core/DiscIO/VolumeWii.h index d4837a26b6..05b43acaff 100644 --- a/Source/Core/DiscIO/VolumeWii.h +++ b/Source/Core/DiscIO/VolumeWii.h @@ -60,7 +60,8 @@ public: VolumeWii(std::unique_ptr reader); ~VolumeWii(); bool Read(u64 offset, u64 length, u8* buffer, const Partition& partition) const override; - bool IsEncryptedAndHashed() const override; + bool HasWiiHashes() const override; + bool HasWiiEncryption() const override; std::vector GetPartitions() const override; Partition GetGamePartition() const override; std::optional GetPartitionType(const Partition& partition) const override; @@ -69,8 +70,8 @@ public: const IOS::ES::TMDReader& GetTMD(const Partition& partition) const override; const std::vector& GetCertificateChain(const Partition& partition) const override; const FileSystem* GetFileSystem(const Partition& partition) const override; - static u64 EncryptedPartitionOffsetToRawOffset(u64 offset, const Partition& partition, - u64 partition_data_offset); + static u64 OffsetInHashedPartitionToRawOffset(u64 offset, const Partition& partition, + u64 partition_data_offset); u64 PartitionOffsetToRawOffset(u64 offset, const Partition& partition) const override; std::string GetGameTDBID(const Partition& partition = PARTITION_NONE) const override; std::map GetLongNames() const override; @@ -78,7 +79,6 @@ public: Platform GetVolumeType() const override; bool IsDatelDisc() const override; - bool SupportsIntegrityCheck() const override { return m_encrypted; } bool CheckH3TableIntegrity(const Partition& partition) const override; bool CheckBlockIntegrity(u64 block_index, const u8* encrypted_data, const Partition& partition) const override; @@ -128,7 +128,8 @@ private: std::unique_ptr m_reader; std::map m_partitions; Partition m_game_partition; - bool m_encrypted; + bool m_has_hashes; + bool m_has_encryption; mutable u64 m_last_decrypted_block; mutable u8 m_last_decrypted_block_data[BLOCK_DATA_SIZE]{}; diff --git a/Source/Core/DiscIO/WIABlob.cpp b/Source/Core/DiscIO/WIABlob.cpp index 35b6407d66..77accc590d 100644 --- a/Source/Core/DiscIO/WIABlob.cpp +++ b/Source/Core/DiscIO/WIABlob.cpp @@ -925,7 +925,7 @@ ConversionResultCode WIARVZFileReader::SetUpDataEntriesForWriting( std::vector* data_entries, std::vector* partition_file_systems) { std::vector partitions; - if (volume && volume->IsEncryptedAndHashed()) + if (volume && volume->HasWiiHashes() && volume->HasWiiEncryption()) partitions = volume->GetPartitions(); std::sort(partitions.begin(), partitions.end(), From 3a6df63e9bcfeedbcd9a479c9d0ba930d4939c1a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 31 Jul 2022 10:14:03 +0200 Subject: [PATCH 535/659] DiscIO: Add support for the NFS format For a few years now, I've been thinking it would be nice to make Dolphin support reading Wii games in the format they come in when you download them from the Wii U eShop. The Wii U eShop has some good deals on Wii games (Metroid Prime Trilogy especially is rather expensive if you try to buy it physically!), and it's the only place right now where you can buy Wii games digitally. Of course, Nintendo being Nintendo, next year they're going to shut down this only place where you can buy Wii games digitally. I kind of wish I had implemented this feature earlier so that people would've had ample time to buy the games they want, but... better late than never, right? I used MIT-licensed code from the NOD library as a reference when implementing this. None of the code has been directly copied, but you may notice that the names of the struct members are very similar. https://gitlab.axiodl.com/AxioDL/nod/blob/c1635245b881ed0004ff5e616896579ce1b19164/lib/DiscIONFS.cpp --- .../dolphinemu/utils/FileBrowserHelper.java | 3 +- Source/Core/Core/Boot/Boot.cpp | 2 +- Source/Core/DiscIO/Blob.cpp | 5 + Source/Core/DiscIO/Blob.h | 1 + Source/Core/DiscIO/CMakeLists.txt | 2 + Source/Core/DiscIO/NFSBlob.cpp | 306 ++++++++++++++++++ Source/Core/DiscIO/NFSBlob.h | 91 ++++++ Source/Core/DolphinLib.props | 2 + .../Core/DolphinQt/GameList/GameTracker.cpp | 13 +- Source/Core/DolphinQt/Info.plist.in | 1 + Source/Core/DolphinQt/MainWindow.cpp | 4 +- Source/Core/DolphinQt/Settings/PathPane.cpp | 4 +- Source/Core/UICommon/GameFileCache.cpp | 8 +- 13 files changed, 426 insertions(+), 16 deletions(-) create mode 100644 Source/Core/DiscIO/NFSBlob.cpp create mode 100644 Source/Core/DiscIO/NFSBlob.h diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java index 388ed98b69..6924fd65ea 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/FileBrowserHelper.java @@ -30,7 +30,8 @@ import java.util.Set; public final class FileBrowserHelper { public static final HashSet GAME_EXTENSIONS = new HashSet<>(Arrays.asList( - "gcm", "tgc", "iso", "ciso", "gcz", "wbfs", "wia", "rvz", "wad", "dol", "elf", "json")); + "gcm", "tgc", "iso", "ciso", "gcz", "wbfs", "wia", "rvz", "nfs", "wad", "dol", "elf", + "json")); public static final HashSet GAME_LIKE_EXTENSIONS = new HashSet<>(GAME_EXTENSIONS); diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index ba1e901d61..387d628e66 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -231,7 +231,7 @@ std::unique_ptr BootParameters::GenerateFromFile(std::vector disc_image_extensions = { - {".gcm", ".iso", ".tgc", ".wbfs", ".ciso", ".gcz", ".wia", ".rvz", ".dol", ".elf"}}; + {".gcm", ".iso", ".tgc", ".wbfs", ".ciso", ".gcz", ".wia", ".rvz", ".nfs", ".dol", ".elf"}}; if (disc_image_extensions.find(extension) != disc_image_extensions.end() || is_drive) { std::unique_ptr disc = DiscIO::CreateDisc(path); diff --git a/Source/Core/DiscIO/Blob.cpp b/Source/Core/DiscIO/Blob.cpp index 7062c363cd..7c6713e642 100644 --- a/Source/Core/DiscIO/Blob.cpp +++ b/Source/Core/DiscIO/Blob.cpp @@ -20,6 +20,7 @@ #include "DiscIO/DirectoryBlob.h" #include "DiscIO/DriveBlob.h" #include "DiscIO/FileBlob.h" +#include "DiscIO/NFSBlob.h" #include "DiscIO/TGCBlob.h" #include "DiscIO/WIABlob.h" #include "DiscIO/WbfsBlob.h" @@ -52,6 +53,8 @@ std::string GetName(BlobType blob_type, bool translate) return "RVZ"; case BlobType::MOD_DESCRIPTOR: return translate_str("Mod"); + case BlobType::NFS: + return "NFS"; default: return ""; } @@ -242,6 +245,8 @@ std::unique_ptr CreateBlobReader(const std::string& filename) return WIAFileReader::Create(std::move(file), filename); case RVZ_MAGIC: return RVZFileReader::Create(std::move(file), filename); + case NFS_MAGIC: + return NFSFileReader::Create(std::move(file), filename); default: if (auto directory_blob = DirectoryBlobReader::Create(filename)) return std::move(directory_blob); diff --git a/Source/Core/DiscIO/Blob.h b/Source/Core/DiscIO/Blob.h index 03a8644de5..d6a81d7c2d 100644 --- a/Source/Core/DiscIO/Blob.h +++ b/Source/Core/DiscIO/Blob.h @@ -40,6 +40,7 @@ enum class BlobType WIA, RVZ, MOD_DESCRIPTOR, + NFS, }; std::string GetName(BlobType blob_type, bool translate); diff --git a/Source/Core/DiscIO/CMakeLists.txt b/Source/Core/DiscIO/CMakeLists.txt index ec1562325a..61790d89d8 100644 --- a/Source/Core/DiscIO/CMakeLists.txt +++ b/Source/Core/DiscIO/CMakeLists.txt @@ -30,6 +30,8 @@ add_library(discio MultithreadedCompressor.h NANDImporter.cpp NANDImporter.h + NFSBlob.cpp + NFSBlob.h RiivolutionParser.cpp RiivolutionParser.h RiivolutionPatcher.cpp diff --git a/Source/Core/DiscIO/NFSBlob.cpp b/Source/Core/DiscIO/NFSBlob.cpp new file mode 100644 index 0000000000..da558361da --- /dev/null +++ b/Source/Core/DiscIO/NFSBlob.cpp @@ -0,0 +1,306 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "DiscIO/NFSBlob.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "Common/Align.h" +#include "Common/CommonTypes.h" +#include "Common/Crypto/AES.h" +#include "Common/IOFile.h" +#include "Common/Logging/Log.h" +#include "Common/StringUtil.h" +#include "Common/Swap.h" + +namespace DiscIO +{ +bool NFSFileReader::ReadKey(const std::string& path, const std::string& directory, Key* key_out) +{ + const std::string_view directory_without_trailing_slash = + std::string_view(directory).substr(0, directory.size() - 1); + + std::string parent, parent_name, parent_extension; + SplitPath(directory_without_trailing_slash, &parent, &parent_name, &parent_extension); + + if (parent_name + parent_extension != "content") + { + ERROR_LOG_FMT(DISCIO, "hif_000000.nfs is not in a directory named 'content': {}", path); + return false; + } + + const std::string key_path = parent + "code/htk.bin"; + File::IOFile key_file(key_path, "rb"); + if (!key_file.ReadBytes(key_out->data(), key_out->size())) + { + ERROR_LOG_FMT(DISCIO, "Failed to read from {}", key_path); + return false; + } + + return true; +} + +std::vector NFSFileReader::GetLBARanges(const NFSHeader& header) +{ + const size_t lba_range_count = + std::min(Common::swap32(header.lba_range_count), header.lba_ranges.size()); + + std::vector lba_ranges; + lba_ranges.reserve(lba_range_count); + + for (size_t i = 0; i < lba_range_count; ++i) + { + const NFSLBARange& unswapped_lba_range = header.lba_ranges[i]; + lba_ranges.push_back(NFSLBARange{Common::swap32(unswapped_lba_range.start_block), + Common::swap32(unswapped_lba_range.num_blocks)}); + } + + return lba_ranges; +} + +std::vector NFSFileReader::OpenFiles(const std::string& directory, + File::IOFile first_file, u64 expected_raw_size, + u64* raw_size_out) +{ + const u64 file_count = Common::AlignUp(expected_raw_size, MAX_FILE_SIZE) / MAX_FILE_SIZE; + + std::vector files; + files.reserve(file_count); + + u64 raw_size = first_file.GetSize(); + files.emplace_back(std::move(first_file)); + + for (u64 i = 1; i < file_count; ++i) + { + const std::string child_path = fmt::format("{}hif_{:06}.nfs", directory, i); + File::IOFile child(child_path, "rb"); + if (!child) + { + ERROR_LOG_FMT(DISCIO, "Failed to open {}", child_path); + return {}; + } + + raw_size += child.GetSize(); + files.emplace_back(std::move(child)); + } + + if (raw_size < expected_raw_size) + { + ERROR_LOG_FMT( + DISCIO, + "Expected sum of NFS file sizes for {} to be at least {} bytes, but it was {} bytes", + directory, expected_raw_size, raw_size); + return {}; + } + + return files; +} + +u64 NFSFileReader::CalculateExpectedRawSize(const std::vector& lba_ranges) +{ + u64 total_blocks = 0; + for (const NFSLBARange& range : lba_ranges) + total_blocks += range.num_blocks; + + return sizeof(NFSHeader) + total_blocks * BLOCK_SIZE; +} + +u64 NFSFileReader::CalculateExpectedDataSize(const std::vector& lba_ranges) +{ + u32 greatest_block_index = 0; + for (const NFSLBARange& range : lba_ranges) + greatest_block_index = std::max(greatest_block_index, range.start_block + range.num_blocks); + + return u64(greatest_block_index) * BLOCK_SIZE; +} + +std::unique_ptr NFSFileReader::Create(File::IOFile first_file, + const std::string& path) +{ + std::string directory, filename, extension; + SplitPath(path, &directory, &filename, &extension); + if (filename + extension != "hif_000000.nfs") + return nullptr; + + std::array key; + if (!ReadKey(path, directory, &key)) + return nullptr; + + NFSHeader header; + if (!first_file.Seek(0, File::SeekOrigin::Begin) || + !first_file.ReadArray(&header, 1) && header.magic != NFS_MAGIC) + { + return nullptr; + } + + std::vector lba_ranges = GetLBARanges(header); + + const u64 expected_raw_size = CalculateExpectedRawSize(lba_ranges); + + u64 raw_size; + std::vector files = + OpenFiles(directory, std::move(first_file), expected_raw_size, &raw_size); + + if (files.empty()) + return nullptr; + + return std::unique_ptr( + new NFSFileReader(std::move(lba_ranges), std::move(files), key, raw_size)); +} + +NFSFileReader::NFSFileReader(std::vector lba_ranges, std::vector files, + Key key, u64 raw_size) + : m_lba_ranges(std::move(lba_ranges)), m_files(std::move(files)), + m_aes_context(Common::AES::CreateContextDecrypt(key.data())), m_raw_size(raw_size) +{ + m_data_size = CalculateExpectedDataSize(m_lba_ranges); +} + +u64 NFSFileReader::GetDataSize() const +{ + return m_data_size; +} + +u64 NFSFileReader::GetRawSize() const +{ + return m_raw_size; +} + +u64 NFSFileReader::ToPhysicalBlockIndex(u64 logical_block_index) +{ + u64 physical_blocks_so_far = 0; + + for (const NFSLBARange& range : m_lba_ranges) + { + if (logical_block_index >= range.start_block && + logical_block_index < range.start_block + range.num_blocks) + { + return physical_blocks_so_far + (logical_block_index - range.start_block); + } + + physical_blocks_so_far += range.num_blocks; + } + + return std::numeric_limits::max(); +} + +bool NFSFileReader::ReadEncryptedBlock(u64 physical_block_index) +{ + constexpr u64 BLOCKS_PER_FILE = MAX_FILE_SIZE / BLOCK_SIZE; + + const u64 file_index = physical_block_index / BLOCKS_PER_FILE; + const u64 block_in_file = physical_block_index % BLOCKS_PER_FILE; + + if (block_in_file == BLOCKS_PER_FILE - 1) + { + // Special case. Because of the 0x200 byte header at the very beginning, + // the last block of each file has its last 0x200 bytes stored in the next file. + + constexpr size_t PART_1_SIZE = BLOCK_SIZE - sizeof(NFSHeader); + constexpr size_t PART_2_SIZE = sizeof(NFSHeader); + + File::IOFile& file_1 = m_files[file_index]; + File::IOFile& file_2 = m_files[file_index + 1]; + + if (!file_1.Seek(sizeof(NFSHeader) + block_in_file * BLOCK_SIZE, File::SeekOrigin::Begin) || + !file_1.ReadBytes(m_current_block_encrypted.data(), PART_1_SIZE)) + { + file_1.ClearError(); + return false; + } + + if (!file_2.Seek(0, File::SeekOrigin::Begin) || + !file_2.ReadBytes(m_current_block_encrypted.data() + PART_1_SIZE, PART_2_SIZE)) + { + file_2.ClearError(); + return false; + } + } + else + { + // Normal case. The read is offset by 0x200 bytes, but it's all within one file. + + File::IOFile& file = m_files[file_index]; + + if (!file.Seek(sizeof(NFSHeader) + block_in_file * BLOCK_SIZE, File::SeekOrigin::Begin) || + !file.ReadBytes(m_current_block_encrypted.data(), BLOCK_SIZE)) + { + file.ClearError(); + return false; + } + } + + return true; +} + +void NFSFileReader::DecryptBlock(u64 logical_block_index) +{ + std::array iv{}; + const u64 swapped_block_index = Common::swap64(logical_block_index); + std::memcpy(iv.data() + iv.size() - sizeof(swapped_block_index), &swapped_block_index, + sizeof(swapped_block_index)); + + m_aes_context->Crypt(iv.data(), m_current_block_encrypted.data(), + m_current_block_decrypted.data(), BLOCK_SIZE); +} + +bool NFSFileReader::ReadAndDecryptBlock(u64 logical_block_index) +{ + const u64 physical_block_index = ToPhysicalBlockIndex(logical_block_index); + + if (physical_block_index == std::numeric_limits::max()) + { + // The block isn't physically present. Treat its contents as all zeroes. + m_current_block_decrypted.fill(0); + } + else + { + if (!ReadEncryptedBlock(physical_block_index)) + return false; + + DecryptBlock(logical_block_index); + } + + // Small hack: Set 0x61 of the header to 1 so that VolumeWii realizes that the disc is unencrypted + if (logical_block_index == 0) + m_current_block_decrypted[0x61] = 1; + + return true; +} + +bool NFSFileReader::Read(u64 offset, u64 nbytes, u8* out_ptr) +{ + while (nbytes != 0) + { + const u64 logical_block_index = offset / BLOCK_SIZE; + const u64 offset_in_block = offset % BLOCK_SIZE; + + if (logical_block_index != m_current_logical_block_index) + { + if (!ReadAndDecryptBlock(logical_block_index)) + return false; + + m_current_logical_block_index = logical_block_index; + } + + const u64 bytes_to_copy = std::min(nbytes, BLOCK_SIZE - offset_in_block); + std::memcpy(out_ptr, m_current_block_decrypted.data() + offset_in_block, bytes_to_copy); + + offset += bytes_to_copy; + nbytes -= bytes_to_copy; + out_ptr += bytes_to_copy; + } + + return true; +} + +} // namespace DiscIO diff --git a/Source/Core/DiscIO/NFSBlob.h b/Source/Core/DiscIO/NFSBlob.h new file mode 100644 index 0000000000..847c66324a --- /dev/null +++ b/Source/Core/DiscIO/NFSBlob.h @@ -0,0 +1,91 @@ +// Copyright 2022 Dolphin Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include +#include +#include + +#include "Common/CommonTypes.h" +#include "Common/Crypto/AES.h" +#include "Common/IOFile.h" +#include "DiscIO/Blob.h" + +// This is the file format used for Wii games released on the Wii U eShop. + +namespace DiscIO +{ +static constexpr u32 NFS_MAGIC = 0x53474745; // "EGGS" (byteswapped to little endian) + +struct NFSLBARange +{ + u32 start_block; + u32 num_blocks; +}; + +struct NFSHeader +{ + u32 magic; // EGGS + u32 version; + u32 unknown_1; + u32 unknown_2; + u32 lba_range_count; + std::array lba_ranges; + u32 end_magic; // SGGE +}; +static_assert(sizeof(NFSHeader) == 0x200); + +class NFSFileReader : public BlobReader +{ +public: + static std::unique_ptr Create(File::IOFile first_file, + const std::string& directory_path); + + BlobType GetBlobType() const override { return BlobType::NFS; } + + u64 GetRawSize() const override; + u64 GetDataSize() const override; + bool IsDataSizeAccurate() const override { return false; } + + u64 GetBlockSize() const override { return BLOCK_SIZE; } + bool HasFastRandomAccessInBlock() const override { return false; } + std::string GetCompressionMethod() const override { return {}; } + std::optional GetCompressionLevel() const override { return std::nullopt; } + + bool Read(u64 offset, u64 nbytes, u8* out_ptr) override; + +private: + using Key = std::array; + static constexpr u32 BLOCK_SIZE = 0x8000; + static constexpr u32 MAX_FILE_SIZE = 0xFA00000; + + static bool ReadKey(const std::string& path, const std::string& directory, Key* key_out); + static std::vector GetLBARanges(const NFSHeader& header); + static std::vector OpenFiles(const std::string& directory, File::IOFile first_file, + u64 expected_raw_size, u64* raw_size_out); + static u64 CalculateExpectedRawSize(const std::vector& lba_ranges); + static u64 CalculateExpectedDataSize(const std::vector& lba_ranges); + + NFSFileReader(std::vector lba_ranges, std::vector files, Key key, + u64 raw_size); + + u64 ToPhysicalBlockIndex(u64 logical_block_index); + bool ReadEncryptedBlock(u64 physical_block_index); + void DecryptBlock(u64 logical_block_index); + bool ReadAndDecryptBlock(u64 logical_block_index); + + std::array m_current_block_encrypted; + std::array m_current_block_decrypted; + u64 m_current_logical_block_index = std::numeric_limits::max(); + + std::vector m_lba_ranges; + std::vector m_files; + std::unique_ptr m_aes_context; + u64 m_raw_size; + u64 m_data_size; +}; + +} // namespace DiscIO diff --git a/Source/Core/DolphinLib.props b/Source/Core/DolphinLib.props index 0c73e3d980..592b423164 100644 --- a/Source/Core/DolphinLib.props +++ b/Source/Core/DolphinLib.props @@ -442,6 +442,7 @@ + @@ -1056,6 +1057,7 @@ + diff --git a/Source/Core/DolphinQt/GameList/GameTracker.cpp b/Source/Core/DolphinQt/GameList/GameTracker.cpp index b783cc0ab3..59421db9e8 100644 --- a/Source/Core/DolphinQt/GameList/GameTracker.cpp +++ b/Source/Core/DolphinQt/GameList/GameTracker.cpp @@ -22,12 +22,13 @@ // NOTE: Qt likes to be case-sensitive here even though it shouldn't be thus this ugly regex hack static const QStringList game_filters{ - QStringLiteral("*.[gG][cC][mM]"), QStringLiteral("*.[iI][sS][oO]"), - QStringLiteral("*.[tT][gG][cC]"), QStringLiteral("*.[cC][iI][sS][oO]"), - QStringLiteral("*.[gG][cC][zZ]"), QStringLiteral("*.[wW][bB][fF][sS]"), - QStringLiteral("*.[wW][iI][aA]"), QStringLiteral("*.[rR][vV][zZ]"), - QStringLiteral("*.[wW][aA][dD]"), QStringLiteral("*.[eE][lL][fF]"), - QStringLiteral("*.[dD][oO][lL]"), QStringLiteral("*.[jJ][sS][oO][nN]")}; + QStringLiteral("*.[gG][cC][mM]"), QStringLiteral("*.[iI][sS][oO]"), + QStringLiteral("*.[tT][gG][cC]"), QStringLiteral("*.[cC][iI][sS][oO]"), + QStringLiteral("*.[gG][cC][zZ]"), QStringLiteral("*.[wW][bB][fF][sS]"), + QStringLiteral("*.[wW][iI][aA]"), QStringLiteral("*.[rR][vV][zZ]"), + QStringLiteral("hif_000000.nfs"), QStringLiteral("*.[wW][aA][dD]"), + QStringLiteral("*.[eE][lL][fF]"), QStringLiteral("*.[dD][oO][lL]"), + QStringLiteral("*.[jJ][sS][oO][nN]")}; GameTracker::GameTracker(QObject* parent) : QFileSystemWatcher(parent) { diff --git a/Source/Core/DolphinQt/Info.plist.in b/Source/Core/DolphinQt/Info.plist.in index b5f3a3f44b..2f5a108cb3 100644 --- a/Source/Core/DolphinQt/Info.plist.in +++ b/Source/Core/DolphinQt/Info.plist.in @@ -14,6 +14,7 @@ gcz iso m3u + nfs rvz tgc wad diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 281bbc78a8..7c4e0a0dd7 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -725,8 +725,8 @@ QStringList MainWindow::PromptFileNames() QStringList paths = DolphinFileDialog::getOpenFileNames( this, tr("Select a File"), settings.value(QStringLiteral("mainwindow/lastdir"), QString{}).toString(), - QStringLiteral("%1 (*.elf *.dol *.gcm *.iso *.tgc *.wbfs *.ciso *.gcz *.wia *.rvz *.wad " - "*.dff *.m3u *.json);;%2 (*)") + QStringLiteral("%1 (*.elf *.dol *.gcm *.iso *.tgc *.wbfs *.ciso *.gcz *.wia *.rvz " + "hif_000000.nfs *.wad *.dff *.m3u *.json);;%2 (*)") .arg(tr("All GC/Wii files")) .arg(tr("All Files"))); diff --git a/Source/Core/DolphinQt/Settings/PathPane.cpp b/Source/Core/DolphinQt/Settings/PathPane.cpp index 6ccc1c2a3b..3382f8f7f9 100644 --- a/Source/Core/DolphinQt/Settings/PathPane.cpp +++ b/Source/Core/DolphinQt/Settings/PathPane.cpp @@ -45,8 +45,8 @@ void PathPane::BrowseDefaultGame() { QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName( this, tr("Select a Game"), Settings::Instance().GetDefaultGame(), - QStringLiteral("%1 (*.elf *.dol *.gcm *.iso *.tgc *.wbfs *.ciso *.gcz *.wia *.rvz *.wad " - "*.m3u *.json);;%2 (*)") + QStringLiteral("%1 (*.elf *.dol *.gcm *.iso *.tgc *.wbfs *.ciso *.gcz *.wia *.rvz " + "hif_000000.nfs *.wad *.m3u *.json);;%2 (*)") .arg(tr("All GC/Wii files")) .arg(tr("All Files")))); diff --git a/Source/Core/UICommon/GameFileCache.cpp b/Source/Core/UICommon/GameFileCache.cpp index dbb349dad9..675ec0dc43 100644 --- a/Source/Core/UICommon/GameFileCache.cpp +++ b/Source/Core/UICommon/GameFileCache.cpp @@ -27,14 +27,14 @@ namespace UICommon { -static constexpr u32 CACHE_REVISION = 21; // Last changed in PR 10187 +static constexpr u32 CACHE_REVISION = 22; // Last changed in PR 10932 std::vector FindAllGamePaths(const std::vector& directories_to_scan, bool recursive_scan) { - static const std::vector search_extensions = {".gcm", ".tgc", ".iso", ".ciso", - ".gcz", ".wbfs", ".wia", ".rvz", - ".wad", ".dol", ".elf", ".json"}; + static const std::vector search_extensions = { + ".gcm", ".tgc", ".iso", ".ciso", ".gcz", ".wbfs", ".wia", + ".rvz", ".nfs", ".wad", ".dol", ".elf", ".json"}; // TODO: We could process paths iteratively as they are found return Common::DoFileSearch(directories_to_scan, search_extensions, recursive_scan); From a87dffe52d8bfaa05d07770a9113cf9406ea6db0 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 1 Aug 2022 11:53:30 +0200 Subject: [PATCH 536/659] DiscIO: Replace IsDataSizeAccurate with GetDataSizeType Previously, we had WBFS and CISO which both returned an upper bound of the size, and other formats which returned an accurate size. But now we also have NFS, which returns a lower bound of the size. To allow VolumeVerifier to make better informed decisions for NFS, let's use an enum instead of a bool for the type of data size a blob has. --- Source/Core/Core/HW/DVD/DVDInterface.cpp | 6 +++--- Source/Core/DiscIO/Blob.h | 14 +++++++++++++- Source/Core/DiscIO/CISOBlob.h | 4 +--- Source/Core/DiscIO/CompressedBlob.cpp | 2 +- Source/Core/DiscIO/CompressedBlob.h | 2 +- Source/Core/DiscIO/DirectoryBlob.h | 2 +- Source/Core/DiscIO/DiscScrubber.cpp | 2 +- Source/Core/DiscIO/DriveBlob.h | 2 +- Source/Core/DiscIO/FileBlob.cpp | 2 +- Source/Core/DiscIO/FileBlob.h | 2 +- Source/Core/DiscIO/NFSBlob.h | 2 +- Source/Core/DiscIO/ScrubbedBlob.h | 2 +- Source/Core/DiscIO/TGCBlob.h | 2 +- Source/Core/DiscIO/Volume.h | 5 +++-- Source/Core/DiscIO/VolumeFileBlobReader.h | 2 +- Source/Core/DiscIO/VolumeGC.cpp | 6 +++--- Source/Core/DiscIO/VolumeGC.h | 4 ++-- Source/Core/DiscIO/VolumeVerifier.cpp | 8 ++++---- Source/Core/DiscIO/VolumeWad.cpp | 6 +++--- Source/Core/DiscIO/VolumeWad.h | 4 ++-- Source/Core/DiscIO/VolumeWii.cpp | 6 +++--- Source/Core/DiscIO/VolumeWii.h | 4 ++-- Source/Core/DiscIO/WIABlob.cpp | 2 +- Source/Core/DiscIO/WIABlob.h | 2 +- Source/Core/DiscIO/WbfsBlob.h | 5 +---- Source/Core/DolphinTool/ConvertCommand.cpp | 2 +- Source/Core/UICommon/GameFile.cpp | 10 +++++----- Source/Core/UICommon/GameFile.h | 4 ++-- Source/Core/UICommon/GameFileCache.cpp | 2 +- 29 files changed, 62 insertions(+), 54 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 190f0b1213..8b96b54e4e 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -430,9 +430,9 @@ void Shutdown() static u64 GetDiscEndOffset(const DiscIO::VolumeDisc& disc) { - u64 size = disc.GetSize(); + u64 size = disc.GetDataSize(); - if (disc.IsSizeAccurate()) + if (disc.GetDataSizeType() == DiscIO::DataSizeType::Accurate) { if (size == DiscIO::MINI_DVD_SIZE) return DiscIO::MINI_DVD_SIZE; @@ -464,7 +464,7 @@ void SetDisc(std::unique_ptr disc, if (has_disc) { s_disc_end_offset = GetDiscEndOffset(*disc); - if (!disc->IsSizeAccurate()) + if (disc->GetDataSizeType() != DiscIO::DataSizeType::Accurate) WARN_LOG_FMT(DVDINTERFACE, "Unknown disc size, guessing {0} bytes", s_disc_end_offset); const DiscIO::BlobReader& blob = disc->GetBlobReader(); diff --git a/Source/Core/DiscIO/Blob.h b/Source/Core/DiscIO/Blob.h index d6a81d7c2d..102c151200 100644 --- a/Source/Core/DiscIO/Blob.h +++ b/Source/Core/DiscIO/Blob.h @@ -43,6 +43,18 @@ enum class BlobType NFS, }; +// If you convert an ISO file to another format and then call GetDataSize on it, what is the result? +enum class DataSizeType +{ + // The result is the same as for the ISO. + Accurate, + // The result is not larger than for the ISO. (It's usually a little smaller than for the ISO.) + // Reads to offsets that are larger than the result will return some kind of "blank" data. + LowerBound, + // The result is not smaller than for the ISO. (It's usually much larger than for the ISO.) + UpperBound, +}; + std::string GetName(BlobType blob_type, bool translate); class BlobReader @@ -54,7 +66,7 @@ public: virtual u64 GetRawSize() const = 0; virtual u64 GetDataSize() const = 0; - virtual bool IsDataSizeAccurate() const = 0; + virtual DataSizeType GetDataSizeType() const = 0; // Returns 0 if the format does not use blocks virtual u64 GetBlockSize() const = 0; diff --git a/Source/Core/DiscIO/CISOBlob.h b/Source/Core/DiscIO/CISOBlob.h index e7dacb3647..ddbd5d0719 100644 --- a/Source/Core/DiscIO/CISOBlob.h +++ b/Source/Core/DiscIO/CISOBlob.h @@ -38,10 +38,8 @@ public: BlobType GetBlobType() const override { return BlobType::CISO; } u64 GetRawSize() const override; - // The CISO format does not save the original file size. - // This function returns an upper bound. u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return false; } + DataSizeType GetDataSizeType() const override { return DataSizeType::UpperBound; } u64 GetBlockSize() const override { return m_block_size; } bool HasFastRandomAccessInBlock() const override { return true; } diff --git a/Source/Core/DiscIO/CompressedBlob.cpp b/Source/Core/DiscIO/CompressedBlob.cpp index 056c2f4fd3..139a1e6d17 100644 --- a/Source/Core/DiscIO/CompressedBlob.cpp +++ b/Source/Core/DiscIO/CompressedBlob.cpp @@ -273,7 +273,7 @@ bool ConvertToGCZ(BlobReader* infile, const std::string& infile_path, const std::string& outfile_path, u32 sub_type, int block_size, CompressCB callback) { - ASSERT(infile->IsDataSizeAccurate()); + ASSERT(infile->GetDataSizeType() == DataSizeType::Accurate); File::IOFile outfile(outfile_path, "wb"); if (!outfile) diff --git a/Source/Core/DiscIO/CompressedBlob.h b/Source/Core/DiscIO/CompressedBlob.h index e32cc2569d..c828b1ad2b 100644 --- a/Source/Core/DiscIO/CompressedBlob.h +++ b/Source/Core/DiscIO/CompressedBlob.h @@ -53,7 +53,7 @@ public: u64 GetRawSize() const override { return m_file_size; } u64 GetDataSize() const override { return m_header.data_size; } - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return m_header.block_size; } bool HasFastRandomAccessInBlock() const override { return false; } diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index a06e60688f..f616adc876 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -284,7 +284,7 @@ public: u64 GetRawSize() const override; u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return 0; } bool HasFastRandomAccessInBlock() const override { return true; } diff --git a/Source/Core/DiscIO/DiscScrubber.cpp b/Source/Core/DiscIO/DiscScrubber.cpp index b79be16315..690af80045 100644 --- a/Source/Core/DiscIO/DiscScrubber.cpp +++ b/Source/Core/DiscIO/DiscScrubber.cpp @@ -30,7 +30,7 @@ bool DiscScrubber::SetupScrub(const Volume* disc) return false; m_disc = disc; - m_file_size = m_disc->GetSize(); + m_file_size = m_disc->GetDataSize(); // Round up when diving by CLUSTER_SIZE, otherwise MarkAsUsed might write out of bounds const size_t num_clusters = static_cast((m_file_size + CLUSTER_SIZE - 1) / CLUSTER_SIZE); diff --git a/Source/Core/DiscIO/DriveBlob.h b/Source/Core/DiscIO/DriveBlob.h index afe3dc8953..bea2e827e5 100644 --- a/Source/Core/DiscIO/DriveBlob.h +++ b/Source/Core/DiscIO/DriveBlob.h @@ -27,7 +27,7 @@ public: u64 GetRawSize() const override { return m_size; } u64 GetDataSize() const override { return m_size; } - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return ECC_BLOCK_SIZE; } bool HasFastRandomAccessInBlock() const override { return false; } diff --git a/Source/Core/DiscIO/FileBlob.cpp b/Source/Core/DiscIO/FileBlob.cpp index e185fe9cc2..6011f45ca9 100644 --- a/Source/Core/DiscIO/FileBlob.cpp +++ b/Source/Core/DiscIO/FileBlob.cpp @@ -44,7 +44,7 @@ bool PlainFileReader::Read(u64 offset, u64 nbytes, u8* out_ptr) bool ConvertToPlain(BlobReader* infile, const std::string& infile_path, const std::string& outfile_path, CompressCB callback) { - ASSERT(infile->IsDataSizeAccurate()); + ASSERT(infile->GetDataSizeType() == DataSizeType::Accurate); File::IOFile outfile(outfile_path, "wb"); if (!outfile) diff --git a/Source/Core/DiscIO/FileBlob.h b/Source/Core/DiscIO/FileBlob.h index ea0bd55b89..d478e1a223 100644 --- a/Source/Core/DiscIO/FileBlob.h +++ b/Source/Core/DiscIO/FileBlob.h @@ -22,7 +22,7 @@ public: u64 GetRawSize() const override { return m_size; } u64 GetDataSize() const override { return m_size; } - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return 0; } bool HasFastRandomAccessInBlock() const override { return true; } diff --git a/Source/Core/DiscIO/NFSBlob.h b/Source/Core/DiscIO/NFSBlob.h index 847c66324a..c17687471d 100644 --- a/Source/Core/DiscIO/NFSBlob.h +++ b/Source/Core/DiscIO/NFSBlob.h @@ -48,7 +48,7 @@ public: u64 GetRawSize() const override; u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return false; } + DataSizeType GetDataSizeType() const override { return DataSizeType::LowerBound; } u64 GetBlockSize() const override { return BLOCK_SIZE; } bool HasFastRandomAccessInBlock() const override { return false; } diff --git a/Source/Core/DiscIO/ScrubbedBlob.h b/Source/Core/DiscIO/ScrubbedBlob.h index 6530860afe..fa5648630b 100644 --- a/Source/Core/DiscIO/ScrubbedBlob.h +++ b/Source/Core/DiscIO/ScrubbedBlob.h @@ -22,7 +22,7 @@ public: u64 GetRawSize() const override { return m_blob_reader->GetRawSize(); } u64 GetDataSize() const override { return m_blob_reader->GetDataSize(); } - bool IsDataSizeAccurate() const override { return m_blob_reader->IsDataSizeAccurate(); } + DataSizeType GetDataSizeType() const override { return m_blob_reader->GetDataSizeType(); } u64 GetBlockSize() const override { return m_blob_reader->GetBlockSize(); } bool HasFastRandomAccessInBlock() const override diff --git a/Source/Core/DiscIO/TGCBlob.h b/Source/Core/DiscIO/TGCBlob.h index b6d393ea7d..2db1c9e8b7 100644 --- a/Source/Core/DiscIO/TGCBlob.h +++ b/Source/Core/DiscIO/TGCBlob.h @@ -45,7 +45,7 @@ public: u64 GetRawSize() const override { return m_size; } u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return 0; } bool HasFastRandomAccessInBlock() const override { return true; } diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h index c49f2ee24e..3747c4c250 100644 --- a/Source/Core/DiscIO/Volume.h +++ b/Source/Core/DiscIO/Volume.h @@ -22,6 +22,7 @@ namespace DiscIO { class BlobReader; enum class BlobType; +enum class DataSizeType; class FileSystem; class VolumeDisc; class VolumeWAD; @@ -137,8 +138,8 @@ public: virtual Country GetCountry(const Partition& partition = PARTITION_NONE) const = 0; virtual BlobType GetBlobType() const = 0; // Size of virtual disc (may be inaccurate depending on the blob type) - virtual u64 GetSize() const = 0; - virtual bool IsSizeAccurate() const = 0; + virtual u64 GetDataSize() const = 0; + virtual DataSizeType GetDataSizeType() const = 0; // Size on disc (compressed size) virtual u64 GetRawSize() const = 0; virtual const BlobReader& GetBlobReader() const = 0; diff --git a/Source/Core/DiscIO/VolumeFileBlobReader.h b/Source/Core/DiscIO/VolumeFileBlobReader.h index 88b0929cbc..89b87a9470 100644 --- a/Source/Core/DiscIO/VolumeFileBlobReader.h +++ b/Source/Core/DiscIO/VolumeFileBlobReader.h @@ -25,7 +25,7 @@ public: u64 GetRawSize() const override; u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override; bool HasFastRandomAccessInBlock() const override; diff --git a/Source/Core/DiscIO/VolumeGC.cpp b/Source/Core/DiscIO/VolumeGC.cpp index 8279b84820..1517207f95 100644 --- a/Source/Core/DiscIO/VolumeGC.cpp +++ b/Source/Core/DiscIO/VolumeGC.cpp @@ -119,14 +119,14 @@ BlobType VolumeGC::GetBlobType() const return m_reader->GetBlobType(); } -u64 VolumeGC::GetSize() const +u64 VolumeGC::GetDataSize() const { return m_reader->GetDataSize(); } -bool VolumeGC::IsSizeAccurate() const +DataSizeType VolumeGC::GetDataSizeType() const { - return m_reader->IsDataSizeAccurate(); + return m_reader->GetDataSizeType(); } u64 VolumeGC::GetRawSize() const diff --git a/Source/Core/DiscIO/VolumeGC.h b/Source/Core/DiscIO/VolumeGC.h index 4dfe64cac4..a87ccd44d8 100644 --- a/Source/Core/DiscIO/VolumeGC.h +++ b/Source/Core/DiscIO/VolumeGC.h @@ -45,8 +45,8 @@ public: bool IsDatelDisc() const override; Region GetRegion() const override; BlobType GetBlobType() const override; - u64 GetSize() const override; - bool IsSizeAccurate() const override; + u64 GetDataSize() const override; + DataSizeType GetDataSizeType() const override; u64 GetRawSize() const override; const BlobReader& GetBlobReader() const override; diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index 460fd2a46b..bc86a40681 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -62,7 +62,7 @@ void RedumpVerifier::Start(const Volume& volume) m_revision = volume.GetRevision().value_or(0); m_disc_number = volume.GetDiscNumber().value_or(0); - m_size = volume.GetSize(); + m_size = volume.GetDataSize(); const DiscIO::Platform platform = volume.GetVolumeType(); @@ -364,7 +364,7 @@ VolumeVerifier::VolumeVerifier(const Volume& volume, bool redump_verification, m_hashes_to_calculate(hashes_to_calculate), m_calculating_any_hash(hashes_to_calculate.crc32 || hashes_to_calculate.md5 || hashes_to_calculate.sha1), - m_max_progress(volume.GetSize()) + m_max_progress(volume.GetDataSize()) { if (!m_calculating_any_hash) m_redump_verification = false; @@ -758,10 +758,10 @@ bool VolumeVerifier::ShouldBeDualLayer() const void VolumeVerifier::CheckVolumeSize() { - u64 volume_size = m_volume.GetSize(); + u64 volume_size = m_volume.GetDataSize(); const bool is_disc = IsDisc(m_volume.GetVolumeType()); const bool should_be_dual_layer = is_disc && ShouldBeDualLayer(); - const bool is_size_accurate = m_volume.IsSizeAccurate(); + const bool is_size_accurate = m_volume.GetDataSizeType() != DiscIO::DataSizeType::Accurate; bool volume_size_roughly_known = is_size_accurate; if (should_be_dual_layer && m_biggest_referenced_offset <= SL_DVD_R_SIZE) diff --git a/Source/Core/DiscIO/VolumeWad.cpp b/Source/Core/DiscIO/VolumeWad.cpp index edfd4c76ee..81e2912671 100644 --- a/Source/Core/DiscIO/VolumeWad.cpp +++ b/Source/Core/DiscIO/VolumeWad.cpp @@ -318,14 +318,14 @@ BlobType VolumeWAD::GetBlobType() const return m_reader->GetBlobType(); } -u64 VolumeWAD::GetSize() const +u64 VolumeWAD::GetDataSize() const { return m_reader->GetDataSize(); } -bool VolumeWAD::IsSizeAccurate() const +DataSizeType VolumeWAD::GetDataSizeType() const { - return m_reader->IsDataSizeAccurate(); + return m_reader->GetDataSizeType(); } u64 VolumeWAD::GetRawSize() const diff --git a/Source/Core/DiscIO/VolumeWad.h b/Source/Core/DiscIO/VolumeWad.h index ac18b65271..3b723b7ce9 100644 --- a/Source/Core/DiscIO/VolumeWad.h +++ b/Source/Core/DiscIO/VolumeWad.h @@ -64,8 +64,8 @@ public: Country GetCountry(const Partition& partition = PARTITION_NONE) const override; BlobType GetBlobType() const override; - u64 GetSize() const override; - bool IsSizeAccurate() const override; + u64 GetDataSize() const override; + DataSizeType GetDataSizeType() const override; u64 GetRawSize() const override; const BlobReader& GetBlobReader() const override; diff --git a/Source/Core/DiscIO/VolumeWii.cpp b/Source/Core/DiscIO/VolumeWii.cpp index 1b56e61ed6..eca23fb4f9 100644 --- a/Source/Core/DiscIO/VolumeWii.cpp +++ b/Source/Core/DiscIO/VolumeWii.cpp @@ -369,14 +369,14 @@ BlobType VolumeWii::GetBlobType() const return m_reader->GetBlobType(); } -u64 VolumeWii::GetSize() const +u64 VolumeWii::GetDataSize() const { return m_reader->GetDataSize(); } -bool VolumeWii::IsSizeAccurate() const +DataSizeType VolumeWii::GetDataSizeType() const { - return m_reader->IsDataSizeAccurate(); + return m_reader->GetDataSizeType(); } u64 VolumeWii::GetRawSize() const diff --git a/Source/Core/DiscIO/VolumeWii.h b/Source/Core/DiscIO/VolumeWii.h index 05b43acaff..b1ed4b9789 100644 --- a/Source/Core/DiscIO/VolumeWii.h +++ b/Source/Core/DiscIO/VolumeWii.h @@ -86,8 +86,8 @@ public: Region GetRegion() const override; BlobType GetBlobType() const override; - u64 GetSize() const override; - bool IsSizeAccurate() const override; + u64 GetDataSize() const override; + DataSizeType GetDataSizeType() const override; u64 GetRawSize() const override; const BlobReader& GetBlobReader() const override; std::array GetSyncHash() const override; diff --git a/Source/Core/DiscIO/WIABlob.cpp b/Source/Core/DiscIO/WIABlob.cpp index 77accc590d..b80753120b 100644 --- a/Source/Core/DiscIO/WIABlob.cpp +++ b/Source/Core/DiscIO/WIABlob.cpp @@ -1731,7 +1731,7 @@ WIARVZFileReader::Convert(BlobReader* infile, const VolumeDisc* infile_volu File::IOFile* outfile, WIARVZCompressionType compression_type, int compression_level, int chunk_size, CompressCB callback) { - ASSERT(infile->IsDataSizeAccurate()); + ASSERT(infile->GetDataSizeType() == DataSizeType::Accurate); ASSERT(chunk_size > 0); const u64 iso_size = infile->GetDataSize(); diff --git a/Source/Core/DiscIO/WIABlob.h b/Source/Core/DiscIO/WIABlob.h index d998005d06..633c5801ce 100644 --- a/Source/Core/DiscIO/WIABlob.h +++ b/Source/Core/DiscIO/WIABlob.h @@ -52,7 +52,7 @@ public: u64 GetRawSize() const override { return Common::swap64(m_header_1.wia_file_size); } u64 GetDataSize() const override { return Common::swap64(m_header_1.iso_file_size); } - bool IsDataSizeAccurate() const override { return true; } + DataSizeType GetDataSizeType() const override { return DataSizeType::Accurate; } u64 GetBlockSize() const override { return Common::swap32(m_header_2.chunk_size); } bool HasFastRandomAccessInBlock() const override { return false; } diff --git a/Source/Core/DiscIO/WbfsBlob.h b/Source/Core/DiscIO/WbfsBlob.h index 30db2a7d4c..a981790f1c 100644 --- a/Source/Core/DiscIO/WbfsBlob.h +++ b/Source/Core/DiscIO/WbfsBlob.h @@ -25,11 +25,8 @@ public: BlobType GetBlobType() const override { return BlobType::WBFS; } u64 GetRawSize() const override { return m_size; } - // The WBFS format does not save the original file size. - // This function returns a constant upper bound - // (the size of a double-layer Wii disc). u64 GetDataSize() const override; - bool IsDataSizeAccurate() const override { return false; } + DataSizeType GetDataSizeType() const override { return DataSizeType::UpperBound; } u64 GetBlockSize() const override { return m_wbfs_sector_size; } bool HasFastRandomAccessInBlock() const override { return true; } diff --git a/Source/Core/DolphinTool/ConvertCommand.cpp b/Source/Core/DolphinTool/ConvertCommand.cpp index 4d5e2062fa..94b7f7fd11 100644 --- a/Source/Core/DolphinTool/ConvertCommand.cpp +++ b/Source/Core/DolphinTool/ConvertCommand.cpp @@ -212,7 +212,7 @@ int ConvertCommand::Main(const std::vector& args) } if (format == DiscIO::BlobType::GCZ && volume && - !DiscIO::IsGCZBlockSizeLegacyCompatible(block_size_o.value(), volume->GetSize())) + !DiscIO::IsGCZBlockSizeLegacyCompatible(block_size_o.value(), volume->GetDataSize())) { std::cerr << "Warning: For GCZs to be compatible with Dolphin < 5.0-11893, " "the file size must be an integer multiple of the block size " diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index 6e33f480e0..368eab3c1e 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -133,8 +133,8 @@ GameFile::GameFile(std::string path) : m_file_path(std::move(path)) m_block_size = volume->GetBlobReader().GetBlockSize(); m_compression_method = volume->GetBlobReader().GetCompressionMethod(); m_file_size = volume->GetRawSize(); - m_volume_size = volume->GetSize(); - m_volume_size_is_accurate = volume->IsSizeAccurate(); + m_volume_size = volume->GetDataSize(); + m_volume_size_type = volume->GetDataSizeType(); m_is_datel_disc = volume->IsDatelDisc(); m_is_nkit = volume->IsNKit(); @@ -158,7 +158,7 @@ GameFile::GameFile(std::string path) : m_file_path(std::move(path)) m_valid = true; m_file_size = m_volume_size = File::GetSize(m_file_path); m_game_id = SConfig::MakeGameID(m_file_name); - m_volume_size_is_accurate = true; + m_volume_size_type = DiscIO::DataSizeType::Accurate; m_is_datel_disc = false; m_is_nkit = false; m_platform = DiscIO::Platform::ELFOrDOL; @@ -349,7 +349,7 @@ void GameFile::DoState(PointerWrap& p) p.Do(m_file_size); p.Do(m_volume_size); - p.Do(m_volume_size_is_accurate); + p.Do(m_volume_size_type); p.Do(m_is_datel_disc); p.Do(m_is_nkit); @@ -827,7 +827,7 @@ std::string GameFile::GetFileFormatName() const bool GameFile::ShouldAllowConversion() const { - return DiscIO::IsDisc(m_platform) && m_volume_size_is_accurate; + return DiscIO::IsDisc(m_platform) && m_volume_size_type == DiscIO::DataSizeType::Accurate; } bool GameFile::IsModDescriptor() const diff --git a/Source/Core/UICommon/GameFile.h b/Source/Core/UICommon/GameFile.h index eb1151a28a..fca89073a1 100644 --- a/Source/Core/UICommon/GameFile.h +++ b/Source/Core/UICommon/GameFile.h @@ -104,7 +104,7 @@ public: const std::string& GetApploaderDate() const { return m_apploader_date; } u64 GetFileSize() const { return m_file_size; } u64 GetVolumeSize() const { return m_volume_size; } - bool IsVolumeSizeAccurate() const { return m_volume_size_is_accurate; } + DiscIO::DataSizeType GetVolumeSizeType() const { return m_volume_size_type; } bool IsDatelDisc() const { return m_is_datel_disc; } bool IsNKit() const { return m_is_nkit; } bool IsModDescriptor() const; @@ -145,7 +145,7 @@ private: u64 m_file_size{}; u64 m_volume_size{}; - bool m_volume_size_is_accurate{}; + DiscIO::DataSizeType m_volume_size_type{}; bool m_is_datel_disc{}; bool m_is_nkit{}; diff --git a/Source/Core/UICommon/GameFileCache.cpp b/Source/Core/UICommon/GameFileCache.cpp index 675ec0dc43..f9b26d344d 100644 --- a/Source/Core/UICommon/GameFileCache.cpp +++ b/Source/Core/UICommon/GameFileCache.cpp @@ -27,7 +27,7 @@ namespace UICommon { -static constexpr u32 CACHE_REVISION = 22; // Last changed in PR 10932 +static constexpr u32 CACHE_REVISION = 23; // Last changed in PR 10932 std::vector FindAllGamePaths(const std::vector& directories_to_scan, bool recursive_scan) From 40a4eb3893ce3cae8a3edcc6356812fdcb98c1b9 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 1 Aug 2022 11:53:30 +0200 Subject: [PATCH 537/659] DiscIO: Adjust GetDataSizeType logic for NFS --- Source/Core/DiscIO/DiscScrubber.cpp | 6 ++++- Source/Core/DiscIO/VolumeVerifier.cpp | 39 ++++++++++++++++++--------- Source/Core/DiscIO/VolumeVerifier.h | 1 + 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/Source/Core/DiscIO/DiscScrubber.cpp b/Source/Core/DiscIO/DiscScrubber.cpp index 690af80045..22aa06571e 100644 --- a/Source/Core/DiscIO/DiscScrubber.cpp +++ b/Source/Core/DiscIO/DiscScrubber.cpp @@ -47,7 +47,11 @@ bool DiscScrubber::SetupScrub(const Volume* disc) bool DiscScrubber::CanBlockBeScrubbed(u64 offset) const { - return m_is_scrubbing && m_free_table[offset / CLUSTER_SIZE]; + if (!m_is_scrubbing) + return false; + + const u64 cluster_index = offset / CLUSTER_SIZE; + return cluster_index >= m_free_table.size() || m_free_table[cluster_index]; } void DiscScrubber::MarkAsUsed(u64 offset, u64 size) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index bc86a40681..da4acc5af6 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -364,7 +364,7 @@ VolumeVerifier::VolumeVerifier(const Volume& volume, bool redump_verification, m_hashes_to_calculate(hashes_to_calculate), m_calculating_any_hash(hashes_to_calculate.crc32 || hashes_to_calculate.md5 || hashes_to_calculate.sha1), - m_max_progress(volume.GetDataSize()) + m_max_progress(volume.GetDataSize()), m_data_size_type(volume.GetDataSizeType()) { if (!m_calculating_any_hash) m_redump_verification = false; @@ -761,8 +761,7 @@ void VolumeVerifier::CheckVolumeSize() u64 volume_size = m_volume.GetDataSize(); const bool is_disc = IsDisc(m_volume.GetVolumeType()); const bool should_be_dual_layer = is_disc && ShouldBeDualLayer(); - const bool is_size_accurate = m_volume.GetDataSizeType() != DiscIO::DataSizeType::Accurate; - bool volume_size_roughly_known = is_size_accurate; + bool volume_size_roughly_known = m_data_size_type != DiscIO::DataSizeType::UpperBound; if (should_be_dual_layer && m_biggest_referenced_offset <= SL_DVD_R_SIZE) { @@ -773,13 +772,13 @@ void VolumeVerifier::CheckVolumeSize() "This problem generally only exists in illegal copies of games.")); } - if (!is_size_accurate) + if (m_data_size_type != DiscIO::DataSizeType::Accurate) { AddProblem(Severity::Low, Common::GetStringT("The format that the disc image is saved in does not " "store the size of the disc image.")); - if (m_volume.HasWiiHashes()) + if (!volume_size_roughly_known && m_volume.HasWiiHashes()) { volume_size = m_biggest_verified_offset; volume_size_roughly_known = true; @@ -803,7 +802,10 @@ void VolumeVerifier::CheckVolumeSize() return; } - if (is_disc && is_size_accurate && !m_is_tgc) + // The reason why this condition is checking for m_data_size_type != UpperBound instead of + // m_data_size_type == Accurate is because we want to show the warning about input recordings and + // NetPlay for NFS disc images (which are the only disc images that have it set to LowerBound). + if (is_disc && m_data_size_type != DiscIO::DataSizeType::UpperBound && !m_is_tgc) { const Platform platform = m_volume.GetVolumeType(); const bool should_be_gc_size = platform == Platform::GameCubeDisc || m_is_datel; @@ -1117,7 +1119,7 @@ void VolumeVerifier::Process() ASSERT(m_started); ASSERT(!m_done); - if (m_progress == m_max_progress) + if (m_progress >= m_max_progress) return; IOS::ES::Content content{}; @@ -1165,13 +1167,24 @@ void VolumeVerifier::Process() if (m_progress + bytes_to_read > m_max_progress) { const u64 bytes_over_max = m_progress + bytes_to_read - m_max_progress; - bytes_to_read -= bytes_over_max; - if (excess_bytes < bytes_over_max) - excess_bytes = 0; + + if (m_data_size_type == DataSizeType::LowerBound) + { + // Disc images in NFS format can have the last referenced block be past m_max_progress. + // For NFS, reading beyond m_max_progress doesn't return an error, so let's read beyond it. + excess_bytes = std::max(excess_bytes, bytes_over_max); + } else - excess_bytes -= bytes_over_max; - content_read = false; - group_read = false; + { + // Don't read beyond the end of the disc. + bytes_to_read -= bytes_over_max; + if (excess_bytes < bytes_over_max) + excess_bytes = 0; + else + excess_bytes -= bytes_over_max; + content_read = false; + group_read = false; + } } const bool is_data_needed = m_calculating_any_hash || content_read || group_read; diff --git a/Source/Core/DiscIO/VolumeVerifier.h b/Source/Core/DiscIO/VolumeVerifier.h index abd8c7f8ee..934e60b7b1 100644 --- a/Source/Core/DiscIO/VolumeVerifier.h +++ b/Source/Core/DiscIO/VolumeVerifier.h @@ -202,6 +202,7 @@ private: bool m_done = false; u64 m_progress = 0; u64 m_max_progress = 0; + DataSizeType m_data_size_type; }; } // namespace DiscIO From 02e3125f23c3844a28887289011af36808426196 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 1 Aug 2022 12:15:43 +0200 Subject: [PATCH 538/659] DiscIO/VolumeVerifier: Small logic cleanup Just for ease of reading. No behavioral difference. --- Source/Core/DiscIO/VolumeVerifier.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index da4acc5af6..f6c2bb20e0 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -1178,10 +1178,7 @@ void VolumeVerifier::Process() { // Don't read beyond the end of the disc. bytes_to_read -= bytes_over_max; - if (excess_bytes < bytes_over_max) - excess_bytes = 0; - else - excess_bytes -= bytes_over_max; + excess_bytes -= std::min(excess_bytes, bytes_over_max); content_read = false; group_read = false; } From 6fc3bbbdd9caa53157ea850f19fa0f8d5da7c3f7 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 1 Aug 2022 16:53:42 +0200 Subject: [PATCH 539/659] DiscIO/VolumeVerifier: Add a note about NFS bad dumps --- Source/Core/DiscIO/VolumeVerifier.cpp | 29 ++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/Source/Core/DiscIO/VolumeVerifier.cpp b/Source/Core/DiscIO/VolumeVerifier.cpp index f6c2bb20e0..50cfb2a17f 100644 --- a/Source/Core/DiscIO/VolumeVerifier.cpp +++ b/Source/Core/DiscIO/VolumeVerifier.cpp @@ -1385,8 +1385,18 @@ void VolumeVerifier::Finish() if (m_result.redump.status == RedumpVerifier::Status::BadDump && highest_severity <= Severity::Low) { - m_result.summary_text = Common::GetStringT( - "This is a bad dump. This doesn't necessarily mean that the game won't run correctly."); + if (m_volume.GetBlobType() == BlobType::NFS) + { + m_result.summary_text = + Common::GetStringT("Compared to the Wii disc release of the game, this is a bad dump. " + "Despite this, it's possible that this is a good dump compared to the " + "Wii U eShop release of the game. Dolphin can't verify this."); + } + else + { + m_result.summary_text = Common::GetStringT( + "This is a bad dump. This doesn't necessarily mean that the game won't run correctly."); + } } else { @@ -1411,9 +1421,18 @@ void VolumeVerifier::Finish() } break; case Severity::Low: - m_result.summary_text = - Common::GetStringT("Problems with low severity were found. They will most " - "likely not prevent the game from running."); + if (m_volume.GetBlobType() == BlobType::NFS) + { + m_result.summary_text = Common::GetStringT( + "Compared to the Wii disc release of the game, problems of low severity were found. " + "Despite this, it's possible that this is a good dump compared to the Wii U eShop " + "release of the game. Dolphin can't verify this."); + } + else + { + Common::GetStringT("Problems with low severity were found. They will most " + "likely not prevent the game from running."); + } break; case Severity::Medium: m_result.summary_text += From 20a2a2174df74a307e8bc4eed35e5923dfa70bbd Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 4 Aug 2022 15:09:12 -0700 Subject: [PATCH 540/659] Vulkan: Call setSourceFile in addition to addSourceText --- Source/Core/VideoCommon/Spirv.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp index 0fc22e1731..50c88c4faf 100644 --- a/Source/Core/VideoCommon/Spirv.cpp +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -124,6 +124,7 @@ CompileShaderToSPV(EShLanguage stage, APIType api_type, if (g_ActiveConfig.bEnableValidationLayer) { // Attach the source code to the SPIR-V for tools like RenderDoc. + intermediate->setSourceFile(stage_filename); intermediate->addSourceText(pass_source_code, pass_source_code_length); options.generateDebugInfo = true; From 354530cf616b47e789c45c20b7fb9a75a595cb64 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 4 Aug 2022 15:38:22 -0700 Subject: [PATCH 541/659] VideoCommon: Remove old iLog field Prior to 7854bd71098fe556ddc9839ad08d27fab7ecba33, this was used by the debugger for the OpenGL and D3D9 plugins to control logging (via PRIM_LOG and INFO_LOG/DEBUG_LOG in VideoCommon code; PRIM_LOG was changed in 77215fd27ccb7cdeb82fed24a7a8d4d4ad4c33a4), and also framedumping (removed in 64927a2f81fe64503060c949ead525995fd63a2a and 2d8515c0cf754806dc38222c4461053e12df1194), shader dumping (removed in 2d8515c0cf754806dc38222c4461053e12df1194 and this commit), and texture dumping (removed in 54aeec7a8ff6b6e5d050637b6cce8df6d9a8b633). Apart from shader dumping, all of these features have modern alternatives, and shader source code can be seen in RenderDoc if "Enable API Validation Layers" is checked (which also enables source attachment), so there's no point in keeping this around. --- Source/Core/VideoCommon/Spirv.cpp | 25 ------------------------- Source/Core/VideoCommon/VideoConfig.h | 7 ------- 2 files changed, 32 deletions(-) diff --git a/Source/Core/VideoCommon/Spirv.cpp b/Source/Core/VideoCommon/Spirv.cpp index 0fc22e1731..0529536873 100644 --- a/Source/Core/VideoCommon/Spirv.cpp +++ b/Source/Core/VideoCommon/Spirv.cpp @@ -155,31 +155,6 @@ CompileShaderToSPV(EShLanguage stage, APIType api_type, if (!spv_messages.empty()) WARN_LOG_FMT(VIDEO, "SPIR-V conversion messages: {}", spv_messages); - // Dump source code of shaders out to file if enabled. - if (g_ActiveConfig.iLog & CONF_SAVESHADERS) - { - static int counter = 0; - std::string filename = StringFromFormat("%s%s_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), - stage_filename, counter++); - - std::ofstream stream; - File::OpenFStream(stream, filename, std::ios_base::out); - if (stream.good()) - { - stream << source << std::endl; - stream << "Shader Info Log:" << std::endl; - stream << shader->getInfoLog() << std::endl; - stream << shader->getInfoDebugLog() << std::endl; - stream << "Program Info Log:" << std::endl; - stream << program->getInfoLog() << std::endl; - stream << program->getInfoDebugLog() << std::endl; - stream << "SPIR-V conversion messages: " << std::endl; - stream << spv_messages; - stream << "SPIR-V:" << std::endl; - spv::Disassemble(stream, out_code); - } - } - return out_code; } } // namespace diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h index 8de5d1e593..22817d1f61 100644 --- a/Source/Core/VideoCommon/VideoConfig.h +++ b/Source/Core/VideoCommon/VideoConfig.h @@ -17,12 +17,6 @@ #include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" #include "VideoCommon/VideoCommon.h" -// Log in two categories, and save three other options in the same byte -#define CONF_LOG 1 -#define CONF_PRIMLOG 2 -#define CONF_SAVETARGETS 8 -#define CONF_SAVESHADERS 16 - constexpr int EFB_SCALE_AUTO_INTEGRAL = 0; enum class AspectMode : int @@ -138,7 +132,6 @@ struct VideoConfig final bool bFastDepthCalc = false; bool bVertexRounding = false; int iEFBAccessTileSize = 0; - int iLog = 0; // CONF_ bits int iSaveTargetId = 0; // TODO: Should be dropped u32 iMissingColorValue = 0; bool bFastTextureSampling = false; From b9b7ff6e25513a35bd5080efef749fe70ca141a3 Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Tue, 14 Jun 2022 18:34:45 +1000 Subject: [PATCH 542/659] Update supportedOS values in .manifest files --- Source/Core/DolphinNoGUI/DolphinNoGUI.exe.manifest | 3 --- Source/Core/DolphinQt/DolphinQt.manifest | 3 --- Source/Core/DolphinTool/DolphinTool.exe.manifest | 3 --- Source/Core/WinUpdater/Updater.exe.manifest | 3 --- 4 files changed, 12 deletions(-) diff --git a/Source/Core/DolphinNoGUI/DolphinNoGUI.exe.manifest b/Source/Core/DolphinNoGUI/DolphinNoGUI.exe.manifest index 69f9e43d44..6390fee860 100644 --- a/Source/Core/DolphinNoGUI/DolphinNoGUI.exe.manifest +++ b/Source/Core/DolphinNoGUI/DolphinNoGUI.exe.manifest @@ -21,9 +21,6 @@ - - - diff --git a/Source/Core/DolphinQt/DolphinQt.manifest b/Source/Core/DolphinQt/DolphinQt.manifest index 9b4551858f..211b0bb068 100644 --- a/Source/Core/DolphinQt/DolphinQt.manifest +++ b/Source/Core/DolphinQt/DolphinQt.manifest @@ -8,9 +8,6 @@ - - - diff --git a/Source/Core/DolphinTool/DolphinTool.exe.manifest b/Source/Core/DolphinTool/DolphinTool.exe.manifest index d3b615fb28..8239320153 100644 --- a/Source/Core/DolphinTool/DolphinTool.exe.manifest +++ b/Source/Core/DolphinTool/DolphinTool.exe.manifest @@ -21,9 +21,6 @@ - - - diff --git a/Source/Core/WinUpdater/Updater.exe.manifest b/Source/Core/WinUpdater/Updater.exe.manifest index 850f0c2343..567743a5e6 100644 --- a/Source/Core/WinUpdater/Updater.exe.manifest +++ b/Source/Core/WinUpdater/Updater.exe.manifest @@ -21,9 +21,6 @@ - - - From b8e64b1f43ec65a3f85ecf1b058c84823b43502a Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Fri, 5 Aug 2022 14:50:17 +0100 Subject: [PATCH 543/659] AX: fix comments and variable names (NFC) This command does not upload the MAIN buffers to CPU memory. This was functionally fixed in f11a40f85806e2fa69ef2bb8d7513d580fedff69 without updating the comments and variable names. --- Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 7a7d9e5d39..796436c5fa 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -238,13 +238,13 @@ void AXUCode::HandleCommandList() break; } - // Send the contents of MAIN LRS, AUXA LRS and AUXB S to RAM, and + // Send the contents of AUXA LRS and AUXB S to RAM, and // mix data to MAIN LR and AUXB LR. case CMD_SEND_AUX_AND_MIX: { - // Address for Main + AUXA LRS upload - u16 main_auxa_up_hi = m_cmdlist[curr_idx++]; - u16 main_auxa_up_lo = m_cmdlist[curr_idx++]; + // Address for AUXA LRS upload + u16 auxa_lrs_up_hi = m_cmdlist[curr_idx++]; + u16 auxa_lrs_up_lo = m_cmdlist[curr_idx++]; // Address for AUXB S upload u16 auxb_s_up_hi = m_cmdlist[curr_idx++]; @@ -266,7 +266,7 @@ void AXUCode::HandleCommandList() u16 auxb_r_dl_hi = m_cmdlist[curr_idx++]; u16 auxb_r_dl_lo = m_cmdlist[curr_idx++]; - SendAUXAndMix(HILO_TO_32(main_auxa_up), HILO_TO_32(auxb_s_up), HILO_TO_32(main_l_dl), + SendAUXAndMix(HILO_TO_32(auxa_lrs_up), HILO_TO_32(auxb_s_up), HILO_TO_32(main_l_dl), HILO_TO_32(main_r_dl), HILO_TO_32(auxb_l_dl), HILO_TO_32(auxb_r_dl)); break; } @@ -605,7 +605,7 @@ void AXUCode::SetOppositeLR(u32 src_addr) } } -void AXUCode::SendAUXAndMix(u32 main_auxa_up, u32 auxb_s_up, u32 main_l_dl, u32 main_r_dl, +void AXUCode::SendAUXAndMix(u32 auxa_lrs_up, u32 auxb_s_up, u32 main_l_dl, u32 main_r_dl, u32 auxb_l_dl, u32 auxb_r_dl) { // Buffers to upload first @@ -616,7 +616,7 @@ void AXUCode::SendAUXAndMix(u32 main_auxa_up, u32 auxb_s_up, u32 main_l_dl, u32 }; // Upload AUXA LRS - int* ptr = (int*)HLEMemory_Get_Pointer(main_auxa_up); + int* ptr = (int*)HLEMemory_Get_Pointer(auxa_lrs_up); for (const auto& up_buffer : up_buffers) { for (u32 j = 0; j < 32 * 5; ++j) From c00008e3cd5fe917fca1cf946c79e88f146a8226 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 5 Aug 2022 17:54:51 +0200 Subject: [PATCH 544/659] Common: Remove unused stuff from BitUtils.h --- Source/Core/Common/BitUtils.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/Source/Core/Common/BitUtils.h b/Source/Core/Common/BitUtils.h index 82d347cf97..60a6abdc25 100644 --- a/Source/Core/Common/BitUtils.h +++ b/Source/Core/Common/BitUtils.h @@ -461,15 +461,4 @@ constexpr int CountTrailingZeros(uint32_t value) #endif } -#undef CONSTEXPR_FROM_INTRINSIC - -template -constexpr T LargestPowerOf2Divisor(T value) -{ - static_assert(std::is_unsigned(), - "LargestPowerOf2Divisor only makes sense for unsigned types."); - - return value & -static_cast>(value); -} - } // namespace Common From 52661dcc760ece823c206d39e380a0ca9d02e87a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 5 Aug 2022 21:40:46 +0200 Subject: [PATCH 545/659] Arm64Emitter: Fix encoding of size for ADD (vector) This was causing a bug in the rounding of paired single multiplication operands. If Force25BitPrecision was called for quad registers, the element size of its ADD instruction would get treated as if it was 16 instead of the intended 64, which would cause the result of the calculation to be incorrect if the carry had to pass a 16-bit boundary. Fixes one of the two bugs reported in https://bugs.dolphin-emu.org/issues/12998. --- Source/Core/Common/Arm64Emitter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index b5c329307c..075987c3f4 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -3026,7 +3026,7 @@ void ARM64FloatEmitter::FMOV(ARM64Reg Rd, uint8_t imm8) // Vector void ARM64FloatEmitter::ADD(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm) { - EmitThreeSame(0, size >> 6, 0b10000, Rd, Rn, Rm); + EmitThreeSame(0, IntLog2(size) - 3, 0b10000, Rd, Rn, Rm); } void ARM64FloatEmitter::AND(ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm) { From 3ca673a6759e488603c01b57e861ed909229bde6 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Fri, 5 Aug 2022 17:24:03 -0700 Subject: [PATCH 546/659] WiiSave: protect against a stack buffer overflow --- Source/Core/Core/HW/WiiSave.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/WiiSave.cpp b/Source/Core/Core/HW/WiiSave.cpp index 57cb003aee..76c5df6f33 100644 --- a/Source/Core/Core/HW/WiiSave.cpp +++ b/Source/Core/Core/HW/WiiSave.cpp @@ -104,14 +104,21 @@ public: if (!m_uid || !m_gid) return {}; - const auto banner = m_fs->OpenFile(*m_uid, *m_gid, m_data_dir + "/banner.bin", FS::Mode::Read); + const auto banner_path = m_data_dir + "/banner.bin"; + const auto banner = m_fs->OpenFile(*m_uid, *m_gid, banner_path, FS::Mode::Read); if (!banner) return {}; Header header{}; header.banner_size = banner->GetStatus()->size; + if (header.banner_size > sizeof(header.banner)) + { + ERROR_LOG_FMT(CORE, "NandStorage::ReadHeader: {} corrupted banner_size: {:x}", banner_path, + header.banner_size); + return {}; + } header.tid = m_tid; header.md5 = s_md5_blanker; - const u8 mode = GetBinMode(m_data_dir + "/banner.bin"); + const u8 mode = GetBinMode(banner_path); if (!mode || !banner->Read(header.banner, header.banner_size)) return {}; header.permissions = mode; From f9e39cf2004295fa3129646880690424a796e676 Mon Sep 17 00:00:00 2001 From: InvoxiPlayGames Date: Wed, 3 Aug 2022 05:46:11 +0100 Subject: [PATCH 547/659] Add Discord presence ioctlv to /dev/dolphin --- Source/Android/jni/MainAndroid.cpp | 15 ++++ Source/Core/Core/Host.h | 10 +++ Source/Core/Core/IOS/DolphinDevice.cpp | 73 +++++++++++++++++++ Source/Core/DolphinNoGUI/MainNoGUI.cpp | 24 ++++++ Source/Core/DolphinQt/Host.cpp | 24 ++++++ .../Core/DolphinTool/ToolHeadlessPlatform.cpp | 15 ++++ Source/Core/UICommon/DiscordPresence.cpp | 56 +++++++++++++- Source/Core/UICommon/DiscordPresence.h | 13 ++++ Source/DSPTool/StubHost.cpp | 13 ++++ Source/UnitTests/StubHost.cpp | 13 ++++ 10 files changed, 254 insertions(+), 2 deletions(-) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index 5a871ec041..49bf596571 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -131,6 +131,21 @@ void Host_UpdateTitle(const std::string& title) __android_log_write(ANDROID_LOG_INFO, DOLPHIN_TAG, title.c_str()); } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +} + +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ + return false; +} + void Host_UpdateDisasmDialog() { } diff --git a/Source/Core/Core/Host.h b/Source/Core/Core/Host.h index dad850a5b2..9d360d7ec4 100644 --- a/Source/Core/Core/Host.h +++ b/Source/Core/Core/Host.h @@ -64,4 +64,14 @@ void Host_UpdateTitle(const std::string& title); void Host_YieldToUI(); void Host_TitleChanged(); +void Host_UpdateDiscordClientID(const std::string& client_id = {}); +bool Host_UpdateDiscordPresenceRaw(const std::string& details = {}, const std::string& state = {}, + const std::string& large_image_key = {}, + const std::string& large_image_text = {}, + const std::string& small_image_key = {}, + const std::string& small_image_text = {}, + const int64_t start_timestamp = 0, + const int64_t end_timestamp = 0, const int party_size = 0, + const int party_max = 0); + std::unique_ptr Host_CreateGBAHost(std::weak_ptr core); diff --git a/Source/Core/Core/IOS/DolphinDevice.cpp b/Source/Core/Core/IOS/DolphinDevice.cpp index db399c97a9..a9074b3d11 100644 --- a/Source/Core/Core/IOS/DolphinDevice.cpp +++ b/Source/Core/Core/IOS/DolphinDevice.cpp @@ -15,8 +15,10 @@ #include "Common/Timer.h" #include "Common/Version.h" #include "Core/Config/MainSettings.h" +#include "Core/Config/UISettings.h" #include "Core/Core.h" #include "Core/HW/Memmap.h" +#include "Core/Host.h" namespace IOS::HLE { @@ -30,6 +32,9 @@ enum IOCTL_DOLPHIN_SET_SPEED_LIMIT = 0x04, IOCTL_DOLPHIN_GET_CPU_SPEED = 0x05, IOCTL_DOLPHIN_GET_REAL_PRODUCTCODE = 0x06, + IOCTL_DOLPHIN_DISCORD_SET_CLIENT = 0x07, + IOCTL_DOLPHIN_DISCORD_SET_PRESENCE = 0x08, + IOCTL_DOLPHIN_DISCORD_RESET = 0x09 }; @@ -157,6 +162,67 @@ IPCReply GetRealProductCode(const IOCtlVRequest& request) return IPCReply(IPC_SUCCESS); } +IPCReply SetDiscordClient(const IOCtlVRequest& request) +{ + if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) + return IPCReply(IPC_EACCES); + + if (!request.HasNumberOfValidVectors(1, 0)) + return IPCReply(IPC_EINVAL); + + std::string new_client_id = + Memory::GetString(request.in_vectors[0].address, request.in_vectors[0].size); + + Host_UpdateDiscordClientID(new_client_id); + + return IPCReply(IPC_SUCCESS); +} + +IPCReply SetDiscordPresence(const IOCtlVRequest& request) +{ + if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) + return IPCReply(IPC_EACCES); + + if (!request.HasNumberOfValidVectors(10, 0)) + return IPCReply(IPC_EINVAL); + + std::string details = + Memory::GetString(request.in_vectors[0].address, request.in_vectors[0].size); + std::string state = Memory::GetString(request.in_vectors[1].address, request.in_vectors[1].size); + std::string large_image_key = + Memory::GetString(request.in_vectors[2].address, request.in_vectors[2].size); + std::string large_image_text = + Memory::GetString(request.in_vectors[3].address, request.in_vectors[3].size); + std::string small_image_key = + Memory::GetString(request.in_vectors[4].address, request.in_vectors[4].size); + std::string small_image_text = + Memory::GetString(request.in_vectors[5].address, request.in_vectors[5].size); + + int64_t start_timestamp = Memory::Read_U64(request.in_vectors[6].address); + int64_t end_timestamp = Memory::Read_U64(request.in_vectors[7].address); + int party_size = Memory::Read_U32(request.in_vectors[8].address); + int party_max = Memory::Read_U32(request.in_vectors[9].address); + + bool ret = Host_UpdateDiscordPresenceRaw(details, state, large_image_key, large_image_text, + small_image_key, small_image_text, start_timestamp, + end_timestamp, party_size, party_max); + + if (!ret) + return IPCReply(IPC_EACCES); + + return IPCReply(IPC_SUCCESS); +} + +IPCReply ResetDiscord(const IOCtlVRequest& request) +{ + if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) + return IPCReply(IPC_EACCES); + + Host_UpdateDiscordClientID(); + + return IPCReply(IPC_SUCCESS); +} + } // namespace std::optional DolphinDevice::IOCtlV(const IOCtlVRequest& request) @@ -178,6 +244,13 @@ std::optional DolphinDevice::IOCtlV(const IOCtlVRequest& request) return GetCPUSpeed(request); case IOCTL_DOLPHIN_GET_REAL_PRODUCTCODE: return GetRealProductCode(request); + case IOCTL_DOLPHIN_DISCORD_SET_CLIENT: + return SetDiscordClient(request); + case IOCTL_DOLPHIN_DISCORD_SET_PRESENCE: + return SetDiscordPresence(request); + case IOCTL_DOLPHIN_DISCORD_RESET: + return ResetDiscord(request); + default: return IPCReply(IPC_EINVAL); } diff --git a/Source/Core/DolphinNoGUI/MainNoGUI.cpp b/Source/Core/DolphinNoGUI/MainNoGUI.cpp index 03ea30ec17..11bbf55da1 100644 --- a/Source/Core/DolphinNoGUI/MainNoGUI.cpp +++ b/Source/Core/DolphinNoGUI/MainNoGUI.cpp @@ -122,6 +122,30 @@ void Host_TitleChanged() #endif } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +#ifdef USE_DISCORD_PRESENCE + Discord::UpdateClientID(client_id); +#endif +} + +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ +#ifdef USE_DISCORD_PRESENCE + return Discord::UpdateDiscordPresenceRaw(details, state, large_image_key, large_image_text, + small_image_key, small_image_text, start_timestamp, + end_timestamp, party_size, party_max); +#else + return false; +#endif +} + std::unique_ptr Host_CreateGBAHost(std::weak_ptr core) { return nullptr; diff --git a/Source/Core/DolphinQt/Host.cpp b/Source/Core/DolphinQt/Host.cpp index 876ab25123..5ccd10189c 100644 --- a/Source/Core/DolphinQt/Host.cpp +++ b/Source/Core/DolphinQt/Host.cpp @@ -287,6 +287,30 @@ void Host_TitleChanged() #endif } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +#ifdef USE_DISCORD_PRESENCE + Discord::UpdateClientID(client_id); +#endif +} + +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ +#ifdef USE_DISCORD_PRESENCE + return Discord::UpdateDiscordPresenceRaw(details, state, large_image_key, large_image_text, + small_image_key, small_image_text, start_timestamp, + end_timestamp, party_size, party_max); +#else + return false; +#endif +} + #ifndef HAS_LIBMGBA std::unique_ptr Host_CreateGBAHost(std::weak_ptr core) { diff --git a/Source/Core/DolphinTool/ToolHeadlessPlatform.cpp b/Source/Core/DolphinTool/ToolHeadlessPlatform.cpp index 7dc1cfaa60..4034df5ae0 100644 --- a/Source/Core/DolphinTool/ToolHeadlessPlatform.cpp +++ b/Source/Core/DolphinTool/ToolHeadlessPlatform.cpp @@ -43,6 +43,21 @@ void Host_UpdateTitle(const std::string& title) { } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +} + +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ + return false; +} + void Host_UpdateDisasmDialog() { } diff --git a/Source/Core/UICommon/DiscordPresence.cpp b/Source/Core/UICommon/DiscordPresence.cpp index 63036370ef..f269c27c0a 100644 --- a/Source/Core/UICommon/DiscordPresence.cpp +++ b/Source/Core/UICommon/DiscordPresence.cpp @@ -189,12 +189,27 @@ void Init() handlers.ready = HandleDiscordReady; handlers.joinRequest = HandleDiscordJoinRequest; handlers.joinGame = HandleDiscordJoin; - // The number is the client ID for Dolphin, it's used for images and the application name - Discord_Initialize("455712169795780630", &handlers, 1, nullptr); + Discord_Initialize(DEFAULT_CLIENT_ID.c_str(), &handlers, 1, nullptr); UpdateDiscordPresence(); #endif } +void UpdateClientID(const std::string& new_client) +{ +#ifdef USE_DISCORD_PRESENCE + if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) + return; + + s_using_custom_client = new_client.empty() || new_client.compare(DEFAULT_CLIENT_ID) != 0; + + Shutdown(); + if (s_using_custom_client) + Discord_Initialize(new_client.c_str(), nullptr, 0, nullptr); + else // if initialising dolphin's client ID, make sure to restore event handlers + Init(); +#endif +} + void CallPendingCallbacks() { #ifdef USE_DISCORD_PRESENCE @@ -213,6 +228,39 @@ void InitNetPlayFunctionality(Handler& handler) #endif } +bool UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, const int64_t start_timestamp, + const int64_t end_timestamp, const int party_size, + const int party_max) +{ +#ifdef USE_DISCORD_PRESENCE + if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) + return false; + + // only /dev/dolphin sets this, don't let homebrew change official client ID raw presence + if (!s_using_custom_client) + return false; + + DiscordRichPresence discord_presence = {}; + discord_presence.details = details.c_str(); + discord_presence.state = state.c_str(); + discord_presence.largeImageKey = large_image_key.c_str(); + discord_presence.largeImageText = large_image_text.c_str(); + discord_presence.smallImageKey = small_image_key.c_str(); + discord_presence.smallImageText = small_image_text.c_str(); + discord_presence.startTimestamp = start_timestamp; + discord_presence.endTimestamp = end_timestamp; + discord_presence.partySize = party_size; + discord_presence.partyMax = party_max; + Discord_UpdatePresence(&discord_presence); + + return true; +#endif +} + void UpdateDiscordPresence(int party_size, SecretType type, const std::string& secret, const std::string& current_game) { @@ -220,6 +268,10 @@ void UpdateDiscordPresence(int party_size, SecretType type, const std::string& s if (!Config::Get(Config::MAIN_USE_DISCORD_PRESENCE)) return; + // reset the client ID if running homebrew has changed it + if (s_using_custom_client) + UpdateClientID(DEFAULT_CLIENT_ID); + const std::string& title = current_game.empty() ? SConfig::GetInstance().GetTitleDescription() : current_game; std::string game_artwork = ArtworkForGameId(SConfig::GetInstance().GetGameID()); diff --git a/Source/Core/UICommon/DiscordPresence.h b/Source/Core/UICommon/DiscordPresence.h index 7e66c3cb32..c8381fcea7 100644 --- a/Source/Core/UICommon/DiscordPresence.h +++ b/Source/Core/UICommon/DiscordPresence.h @@ -8,6 +8,9 @@ namespace Discord { +// The number is the client ID for Dolphin, it's used for images and the application name +const std::string DEFAULT_CLIENT_ID = "455712169795780630"; + class Handler { public: @@ -24,9 +27,19 @@ enum class SecretType RoomID, }; +static bool s_using_custom_client = false; + void Init(); void InitNetPlayFunctionality(Handler& handler); void CallPendingCallbacks(); +void UpdateClientID(const std::string& new_client = {}); +bool UpdateDiscordPresenceRaw(const std::string& details = {}, const std::string& state = {}, + const std::string& large_image_key = {}, + const std::string& large_image_text = {}, + const std::string& small_image_key = {}, + const std::string& small_image_text = {}, + const int64_t start_timestamp = 0, const int64_t end_timestamp = 0, + const int party_size = 0, const int party_max = 0); void UpdateDiscordPresence(int party_size = 0, SecretType type = SecretType::Empty, const std::string& secret = {}, const std::string& current_game = {}); std::string CreateSecretFromIPAddress(const std::string& ip_address, int port); diff --git a/Source/DSPTool/StubHost.cpp b/Source/DSPTool/StubHost.cpp index de20be198f..50a27e2d28 100644 --- a/Source/DSPTool/StubHost.cpp +++ b/Source/DSPTool/StubHost.cpp @@ -25,6 +25,19 @@ void Host_Message(HostMessageID) void Host_UpdateTitle(const std::string&) { } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +} +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ + return false; +} void Host_UpdateDisasmDialog() { } diff --git a/Source/UnitTests/StubHost.cpp b/Source/UnitTests/StubHost.cpp index 233af18f79..cf808bcce1 100644 --- a/Source/UnitTests/StubHost.cpp +++ b/Source/UnitTests/StubHost.cpp @@ -25,6 +25,19 @@ void Host_Message(HostMessageID) void Host_UpdateTitle(const std::string&) { } +void Host_UpdateDiscordClientID(const std::string& client_id) +{ +} +bool Host_UpdateDiscordPresenceRaw(const std::string& details, const std::string& state, + const std::string& large_image_key, + const std::string& large_image_text, + const std::string& small_image_key, + const std::string& small_image_text, + const int64_t start_timestamp, const int64_t end_timestamp, + const int party_size, const int party_max) +{ + return false; +} void Host_UpdateDisasmDialog() { } From 7b2b559743f09d2b087728d7eb0c14c6b81a9f2a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 6 Aug 2022 15:50:00 +0200 Subject: [PATCH 548/659] Translation resources sync with Transifex --- Languages/po/ar.po | 234 ++++++++++--------- Languages/po/ca.po | 234 ++++++++++--------- Languages/po/cs.po | 234 ++++++++++--------- Languages/po/da.po | 234 ++++++++++--------- Languages/po/de.po | 234 ++++++++++--------- Languages/po/dolphin-emu.pot | 234 ++++++++++--------- Languages/po/el.po | 234 ++++++++++--------- Languages/po/en.po | 234 ++++++++++--------- Languages/po/es.po | 421 ++++++++++++++++++----------------- Languages/po/fa.po | 234 ++++++++++--------- Languages/po/fr.po | 234 ++++++++++--------- Languages/po/hr.po | 234 ++++++++++--------- Languages/po/hu.po | 234 ++++++++++--------- Languages/po/it.po | 234 ++++++++++--------- Languages/po/ja.po | 234 ++++++++++--------- Languages/po/ko.po | 234 ++++++++++--------- Languages/po/ms.po | 234 ++++++++++--------- Languages/po/nb.po | 234 ++++++++++--------- Languages/po/nl.po | 238 ++++++++++---------- Languages/po/pl.po | 234 ++++++++++--------- Languages/po/pt.po | 234 ++++++++++--------- Languages/po/pt_BR.po | 240 ++++++++++---------- Languages/po/ro.po | 234 ++++++++++--------- Languages/po/ru.po | 234 ++++++++++--------- Languages/po/sr.po | 234 ++++++++++--------- Languages/po/sv.po | 234 ++++++++++--------- Languages/po/tr.po | 234 ++++++++++--------- Languages/po/zh_CN.po | 234 ++++++++++--------- Languages/po/zh_TW.po | 234 ++++++++++--------- 29 files changed, 3696 insertions(+), 3287 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index d507adb315..0b454a465b 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -22,7 +22,7 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -34,7 +34,7 @@ msgstr "" "نظرًا لأن صور أقراص جيم كيوب تحتوي على القليل من بيانات التحقق ، فقد تكون " "هناك مشكلات يتعذر على دولفين اكتشافها." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1325,11 +1325,11 @@ msgstr "جميع أدوات التحكم" msgid "All files (*)" msgstr "(*) جميع الملفات" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "جميع رموز اللاعبين متزامنة." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "حفظ جميع اللاعبين متزامنة." @@ -1638,7 +1638,7 @@ msgstr "" msgid "Bad address provided." msgstr "تم توفير عنوان غير صحيح." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "تفريغ سيئ" @@ -1926,7 +1926,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "حساب" @@ -1982,7 +1982,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "لا يمكن بدء جلسة اللعب عبر الشبكة بينما لا تزال اللعبة قيد التشغيل! " #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2233,6 +2233,20 @@ msgstr "عام" msgid "Comparand:" msgstr "مقارنة" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "تجميع التظليل قبل البدء" @@ -2373,7 +2387,7 @@ msgstr "الاتصال" msgid "Connection Type:" msgstr "نوع الاتصال" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "{0:08x} المحتوى تالف" @@ -3303,7 +3317,7 @@ msgstr "محاكي دولفين مفتوح المصدر لجهاز جيم كيو msgid "Dolphin is too old for traversal server" msgstr "دولفين قديم جدا لجتياز الخادم " -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3311,7 +3325,7 @@ msgstr "" "يتعذر على دولفين التحقق من ملفات النموذجية بشكل صحيح ، نظرًا لعدم تفريغها من " "الأقراص الفعلية" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "دولفين غير قادر على التحقق من الأقراص غير المرخصة." @@ -3623,11 +3637,11 @@ msgstr "إخراج القرص" msgid "Embedded Frame Buffer (EFB)" msgstr "(EFB) مخزن مؤقت للإطار المضمن" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "فارغة" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "المحاكي قيد التشغيل بالفعل" @@ -3991,11 +4005,11 @@ msgstr "خطأ في معالجة البيانات." msgid "Error reading file: {0}" msgstr "{0} خطأ في قراءة الملف" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "خطأ في مزامنة الرموز" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "حدث خطا اثناء مزامنة حفظ البيانات!" @@ -4009,31 +4023,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "خطأ: فشل جيم بوي أدفانس {0} في إنشاء النواة" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4057,11 +4071,11 @@ msgstr "" "Error: Trying to access Windows-1252 fonts but they are not loaded. Games " "may not show fonts correctly, or crash." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4288,7 +4302,7 @@ msgstr "Failed to append to signature file '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Redump.org فشل الاتصال بـ" @@ -4505,7 +4519,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "\"%1\" فشل في فتح ملف الإدخال" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4514,8 +4528,8 @@ msgstr "" "فشل فتح ملف الإخراج \"{0}\".\n" "تأكد من أن لديك أذونات لكتابة المجلد المستهدف وأن الوسائط يمكن كتابتها." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Redump.org فشل تحليل بيانات" @@ -4532,7 +4546,7 @@ msgid "Failed to read from file." msgstr "فشلت القراءة من الملف" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "\"{0}\" فشلت القراءة من ملف الإدخال" @@ -4632,7 +4646,7 @@ msgid "Failed to write savefile to disk." msgstr "فشل في كتابة ملف الحفظ على القرص" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5358,7 +5372,7 @@ msgstr "غيغابايت" msgid "Golf Mode" msgstr "Golf وضع" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "تفريغ جيد" @@ -5479,7 +5493,7 @@ msgstr "إخفاء جلسات العمل غير المتوافقة" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "عالية" @@ -5948,7 +5962,7 @@ msgid "Interface" msgstr "الواجهة" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Internal LZO Error - compression failed" @@ -5957,13 +5971,13 @@ msgstr "Internal LZO Error - compression failed" msgid "Internal LZO Error - decompression failed" msgstr "Internal LZO Error - decompression failed" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" @@ -6153,7 +6167,7 @@ msgstr "JIT Register Cache Off" msgid "JIT SystemRegisters Off" msgstr "JIT SystemRegisters Off" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6569,7 +6583,7 @@ msgstr "التكرار الحلقي" msgid "Lost connection to NetPlay server..." msgstr "فقد الاتصال بالخادم" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "منخفضة" @@ -6659,7 +6673,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "قد يسبب تباطؤ في قائمة وي وبعض الألعاب." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "متوسطة" @@ -7063,11 +7077,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "لا توجد وظائف ممكنة متبقية. إعادة ضبط" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "لا توجد مشاكل." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7089,7 +7103,7 @@ msgstr "لم يتم تحميل التسجيل" msgid "No save data found." msgstr "لم يتم العثور على حفظ البيانات" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "No undo.dtm found, aborting undo load state to prevent movie desyncs" @@ -7664,7 +7678,7 @@ msgstr "خاصة و عامة" msgid "Problem" msgstr "المشكلة" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7672,7 +7686,7 @@ msgstr "" "تم العثور علي مشاكل ذات خطورة عالية. فان اللعبة علي الأرجح لا تعمل علي " "الإطلاق" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7680,7 +7694,7 @@ msgstr "" "تم العثور علي مشاكل ذات خطورة منخفضة. فإنها علي الأرجح لا تمنع اللعبة من " "التشغيل" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7880,7 +7894,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org حالة" @@ -8681,9 +8695,9 @@ msgstr "الخط المحدد" msgid "Selected controller profile does not exist" msgstr "اختيار الملف التحكم الشخصي غير موجود " -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8757,7 +8771,7 @@ msgstr "إرسال" msgid "Sensor Bar Position:" msgstr "موضع الاستشعار" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8855,7 +8869,7 @@ msgstr "" msgid "Settings" msgstr "إعدادات" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Can't create setting.txt file" @@ -9232,11 +9246,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "لا يمكن قراءة بعض البيانات." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9780,7 +9794,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9794,7 +9808,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "أقسام نادرة مفقودة." @@ -9810,22 +9824,22 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND تم اصلاح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "قسم القناة مفقود." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "قسم البيانات مفقود." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -9835,7 +9849,7 @@ msgstr "" "مضاهاتها. لن تتمكن من مشاركة تسجيلات الإدخال واستخدام لعب الشبكة مع أي شخص " "يستخدم ملف تفريغ جيد." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9934,25 +9948,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "نظام الملفات غير صالح أو لا يمكن قراءته." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "التنسيق الذي يتم حفظ صورة القرص به لا يخزن حجم صورة القرص" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "معرف اللعبة غير متناسق." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "معرف اللعبة قصير بشكل غير عادي." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9998,7 +10012,7 @@ msgstr "" "رمز المضيف طويل جدًا.\n" "يرجى إعادة التحقق من أن لديك الرمز الصحيح." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "قسم التثبيت مفقود." @@ -10023,7 +10037,7 @@ msgstr "الملف الشخصي '1%' غير موجود" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10068,7 +10082,7 @@ msgstr "" "هل تريد حقًا تمكين عرض البرامج؟ إذا لم تكن متأكدًا ، فحدد \"لا\"." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -10081,11 +10095,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "\"%1\" تحتوي بطاقة الذاكرة المستهدفة بالفعل على ملف" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "لم يتم توقيع التذكرة بشكل صحيح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "لا يمكن قراءة نوع القسم." @@ -10096,39 +10110,39 @@ msgid "" msgstr "" "تم إلغاء التحديث. يوصى بشدة بإنهائه لتجنب إصدارات برامج النظام غير المتسقة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "لا يحتوي قسم التحديث علي نظام التشغيل المستخدم من قبل هذا العنوان" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "قسم التحديث مفقود" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "قسم التحديث ليس في وضعه الطبيعي" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "لا يحتوي القسم {0} على نظام ملفات صالح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "يبدو أن القسم {0} لا يحتوي على بيانات صالحة" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "لم يتم توقيع القسم {0} بشكل صحيح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "لم تتم محاذاة القسم {0} بشكل صحيح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "هناك الكثير من الأقسام في جدول القسم الأول." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "لا يوجد شيء للتراجع !" @@ -10163,7 +10177,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10202,15 +10216,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "هذا لا يمكن التراجع عنه" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "تحتوي صوره القرص التصحيح هذه علي حجم صوره قرص البيع بالتجزئة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "هذه صورة القرص لها حجم غير عادي." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10220,7 +10234,7 @@ msgstr "" "تمت مضاهاتها أطول. لن تتمكن على الأرجح من مشاركة تسجيلات الإدخال واستخدام " "اللعب عبر الشبكة مع أي شخص يستخدم ملف تفريغ جيد." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10232,7 +10246,7 @@ msgstr "" "file might match the CRC32 of a good dump even though the files are not " "identical." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10240,7 +10254,7 @@ msgstr "" "صورة القرص هذه صغيرة جدًا وتفتقر إلى بعض البيانات. إذا كان برنامج التفريغ " "الخاص بك قد حفظ صورة القرص كأجزاء متعددة ، فستحتاج إلى دمجها في ملف واحد." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10256,7 +10270,7 @@ msgstr "لا يحتوي هذا الملف على نظام ملفات وي صال msgid "This file does not look like a BootMii NAND backup." msgstr "BootMii NAND لا يبدو هذا الملف نسخة احتياطية لـ " -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10276,17 +10290,17 @@ msgstr "" "برامج التشغيل الخاصة بها لا تدعمها. ونتيجة لذلك سوف تواجه الخلل أو يتجمد " "أثناء تشغيل هذه اللعبة." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "هذا تفريغ سيء" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "هذا تفريغ سيء. هذا لا يعني بالضرورة أن اللعبة لن تعمل بشكل صحيح" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10294,7 +10308,7 @@ msgstr "" "Redump.org هذا تفريغ جيد وفقًا لموقع\n" "لكن دولفين وجد مشاكل. قد يكون هذا خطأ في دولفين" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "هذا تفريغ جيد" @@ -10322,16 +10336,16 @@ msgstr "يجب عدم استخدام هذا البرنامج لتشغيل الأ msgid "This title cannot be booted." msgstr "لا يمكن تشغيل هذا العنوان." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "تم تعيين هذا العنوان لاستخدام نظام تشغيل غير صالح." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "تم تعيين هذا العنوان لاستخدام مفتاح عام غير صالح" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10339,7 +10353,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10687,7 +10701,7 @@ msgstr "" msgid "Unable to read file." msgstr "غير قادر على قراءة الملف" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "{0} غير قادر على الكتابة إلى الملف" @@ -10728,7 +10742,7 @@ msgstr "" msgid "United States" msgstr "امريكا" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10739,7 +10753,7 @@ msgstr "امريكا" msgid "Unknown" msgstr "غير معروف" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10747,7 +10761,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10757,7 +10771,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10775,7 +10789,7 @@ msgstr "مؤلف غير معروف" msgid "Unknown data type" msgstr "نوع بيانات غير معروف" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "قرص غير معروف" @@ -10795,7 +10809,7 @@ msgstr "خطأ غير معروف" msgid "Unknown message received with id : {0}" msgstr "{0} تم استلام رسالة غير معروفة بالمعرف" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -11084,7 +11098,7 @@ msgstr "عرض الرسائل كنص" msgid "Verify" msgstr "التحقق" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "التحقق من التكامل" @@ -11092,8 +11106,8 @@ msgstr "التحقق من التكامل" msgid "Verify certificates" msgstr "التحقق من الشهادات" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "يتحقق" @@ -11430,7 +11444,7 @@ msgstr "Wii TAS Input %1 - ريموت وي + نونشوك" msgid "Wii and Wii Remote" msgstr "وي و ريموت وي" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "بيانات وي ليست عامة بعد" @@ -11811,11 +11825,11 @@ msgstr "غير محاذي" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -11823,11 +11837,11 @@ msgstr "{0} (NKit)" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} فشل في مزامنة الرموز" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} فشل في المزامنة" @@ -11840,7 +11854,7 @@ msgstr "" "تحقق من أذونات الكتابة أو نقل الملف خارج دولفين" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 286916c7b0..b77a50decb 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1270,11 +1270,11 @@ msgstr "Tots els dispositius" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1865,7 +1865,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Calcular" @@ -1921,7 +1921,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2168,6 +2168,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2308,7 +2322,7 @@ msgstr "" msgid "Connection Type:" msgstr "Tipus de connexió:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3189,13 +3203,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3503,11 +3517,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Buit" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "El fil de l'emulador ja s'està executant" @@ -3863,11 +3877,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3881,31 +3895,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3925,11 +3939,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4154,7 +4168,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4361,15 +4375,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4386,7 +4400,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4481,7 +4495,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5198,7 +5212,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5319,7 +5333,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Interface" msgstr "Interfície" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Error intern LZO - la compressió ha fallat" @@ -5766,13 +5780,13 @@ msgstr "Error intern LZO - la compressió ha fallat" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Error intern LZO - lzo_init () ha fallat" @@ -5963,7 +5977,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6373,7 +6387,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6463,7 +6477,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6861,11 +6875,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6884,7 +6898,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7453,19 +7467,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7661,7 +7675,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8456,9 +8470,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "El perfil del controlador seleccionat no existeix" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8532,7 +8546,7 @@ msgstr "Enviar" msgid "Sensor Bar Position:" msgstr "Posició Barra de Sensors" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8625,7 +8639,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8998,11 +9012,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9540,7 +9554,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9554,7 +9568,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9568,29 +9582,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9679,25 +9693,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9739,7 +9753,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9764,7 +9778,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9801,7 +9815,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9814,11 +9828,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9828,39 +9842,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9890,7 +9904,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9927,22 +9941,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9950,13 +9964,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9970,7 +9984,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9984,23 +9998,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10024,16 +10038,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10041,7 +10055,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10374,7 +10388,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10412,7 +10426,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10423,7 +10437,7 @@ msgstr "" msgid "Unknown" msgstr "Desconegut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10431,7 +10445,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10441,7 +10455,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10459,7 +10473,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10479,7 +10493,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10762,7 +10776,7 @@ msgstr "Verbositat" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10770,8 +10784,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11096,7 +11110,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11471,11 +11485,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11483,11 +11497,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11498,7 +11512,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 99807d9268..ae5d7699a6 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " "<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1263,11 +1263,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1572,7 +1572,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1858,7 +1858,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1914,7 +1914,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2161,6 +2161,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2301,7 +2315,7 @@ msgstr "" msgid "Connection Type:" msgstr "Typ připojení:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3182,13 +3196,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3496,11 +3510,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Vestavěná vyrovnávací paměť snímků (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Prázdné" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Vlákno Emulace již běží" @@ -3859,11 +3873,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3877,31 +3891,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3921,11 +3935,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4150,7 +4164,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4357,15 +4371,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4382,7 +4396,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4477,7 +4491,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5194,7 +5208,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5315,7 +5329,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5753,7 +5767,7 @@ msgid "Interface" msgstr "Rozhraní" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Vnitřní chyba LZO - komprimace selhala" @@ -5762,13 +5776,13 @@ msgstr "Vnitřní chyba LZO - komprimace selhala" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Vnitřní chyba LZO - lzo_init() selhalo" @@ -5958,7 +5972,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6368,7 +6382,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6458,7 +6472,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Může způsobit zpomalování v nabídce Wii a u některých her." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6858,11 +6872,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6881,7 +6895,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Žádné undo.dtm nenalezeno, aby se zabránilo desynchronizaci videa, bude " @@ -7451,19 +7465,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7659,7 +7673,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8454,9 +8468,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "Vybraný profil ovladače neexistuje" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8530,7 +8544,7 @@ msgstr "Poslat" msgid "Sensor Bar Position:" msgstr "Umístění Senzorové Tyče:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8625,7 +8639,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "Nastavení paměti Wii: Nelze vytvořit soubor settings.txt" @@ -8998,11 +9012,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9540,7 +9554,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9554,7 +9568,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9568,29 +9582,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9679,25 +9693,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9739,7 +9753,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9764,7 +9778,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9801,7 +9815,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9814,11 +9828,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9828,39 +9842,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Není co vrátit zpět!" @@ -9890,7 +9904,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9927,22 +9941,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9950,13 +9964,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9970,7 +9984,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9984,23 +9998,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10024,16 +10038,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10041,7 +10055,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10375,7 +10389,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10413,7 +10427,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10424,7 +10438,7 @@ msgstr "" msgid "Unknown" msgstr "Neznámé" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10432,7 +10446,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10442,7 +10456,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10460,7 +10474,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10480,7 +10494,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10763,7 +10777,7 @@ msgstr "Úroveň" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10771,8 +10785,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11097,7 +11111,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11472,11 +11486,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11484,11 +11498,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11499,7 +11513,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/da.po b/Languages/po/da.po index e2f28245ed..0409fb86a1 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -38,7 +38,7 @@ msgstr "" "Da GameCube diskimages har få verifikationsdata, kan der være problemer, som " "Dolphin ikke kan se." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1302,11 +1302,11 @@ msgstr "Alle enheder" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1611,7 +1611,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1899,7 +1899,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1955,7 +1955,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2202,6 +2202,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2342,7 +2356,7 @@ msgstr "" msgid "Connection Type:" msgstr "Forbindelsestype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3230,13 +3244,13 @@ msgstr "Dolphin er en gratis og åben source GameCube- og Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel til en gennemløbsserver" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3544,11 +3558,11 @@ msgstr "Skub ud disken" msgid "Embedded Frame Buffer (EFB)" msgstr "Indlejret framebuffer (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emulatortråd kører i forvejen" @@ -3911,11 +3925,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3929,31 +3943,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3973,11 +3987,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Fejl fundet i {0} blokke i {1} partitionen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Fejl fundet i {0} ubrugte blokke i {1} partitionen." @@ -4202,7 +4216,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4409,15 +4423,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Fejl under oversættelse af Redump.org-data" @@ -4434,7 +4448,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4529,7 +4543,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5246,7 +5260,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5367,7 +5381,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Høj " @@ -5813,7 +5827,7 @@ msgid "Interface" msgstr "Grænseflade" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Intern LZO-fjel - komprimering mislykkedes" @@ -5822,13 +5836,13 @@ msgstr "Intern LZO-fjel - komprimering mislykkedes" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-fejl - lzo_init() mislykkedes" @@ -6018,7 +6032,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6428,7 +6442,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Lav" @@ -6518,7 +6532,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Kan sænke hastigheden i Wii-menuen og nogle spil." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Medium" @@ -6918,11 +6932,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6941,7 +6955,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "'undo.dtm' ikke fundet. Afbryder 'Fortryd' starttilstand for at undgå film " @@ -7512,19 +7526,19 @@ msgstr "" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7720,7 +7734,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8515,9 +8529,9 @@ msgstr "Valgt skrifttype" msgid "Selected controller profile does not exist" msgstr "Valgte kontrollerprofil eksisterer ikke" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8591,7 +8605,7 @@ msgstr "Send" msgid "Sensor Bar Position:" msgstr "Sensorbarens position:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8687,7 +8701,7 @@ msgstr "" msgid "Settings" msgstr "Indstillinger" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan ikke oprette settings.txt-filen" @@ -9060,11 +9074,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9602,7 +9616,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9616,7 +9630,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9630,29 +9644,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9741,25 +9755,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9801,7 +9815,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9826,7 +9840,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9863,7 +9877,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9876,11 +9890,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9890,39 +9904,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Der er intet af fortryde!" @@ -9952,7 +9966,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9989,22 +10003,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "Kan ikke gøres om!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10012,13 +10026,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10032,7 +10046,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10046,23 +10060,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10090,16 +10104,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10107,7 +10121,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10449,7 +10463,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10487,7 +10501,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10498,7 +10512,7 @@ msgstr "" msgid "Unknown" msgstr "Ukendt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10506,7 +10520,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10516,7 +10530,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10534,7 +10548,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10554,7 +10568,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10837,7 +10851,7 @@ msgstr "Informationsmængde" msgid "Verify" msgstr "Verificer" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verificer integritet" @@ -10845,8 +10859,8 @@ msgstr "Verificer integritet" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verificerer" @@ -11173,7 +11187,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "Wii og Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11551,11 +11565,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11563,11 +11577,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11578,7 +11592,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} af {1} blokke. Komprimeringsforhold {2}%" diff --git a/Languages/po/de.po b/Languages/po/de.po index 78424a997f..4ca4e9f9e4 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -44,7 +44,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -56,7 +56,7 @@ msgstr "" "Da GameCube-Disc-Abbilder nur wenige Überprüfungsdaten enthalten, könnten " "Probleme auftreten, die Dolphin nicht erkennen kann." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1380,11 +1380,11 @@ msgstr "Alle Geräte" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Alle Codes der Spieler synchronisiert." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Alle Spielstände der Spieler synchronisiert." @@ -1703,7 +1703,7 @@ msgstr "" msgid "Bad address provided." msgstr "Unzulässige Adresse angegeben." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Schlechter Dump" @@ -1999,7 +1999,7 @@ msgstr "" "benötigt exponentiell mehr RAM, kann aber auch etwaiges Ruckeln beheben." "

Im Zweifel deaktiviert lassen." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Berechnen" @@ -2060,7 +2060,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Du kannst keine NetPlay-Session starten, während ein Spiel noch läuft!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2324,6 +2324,20 @@ msgstr "Gemeinsam" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Shader vor dem Start kompilieren" @@ -2465,7 +2479,7 @@ msgstr "" msgid "Connection Type:" msgstr "Verbindungstyp:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Inhalt {0:08x} ist beschädigt." @@ -3440,7 +3454,7 @@ msgstr "Dolphin ist ein freier und quelloffener Gamecube- und Wii-Emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin ist zu alt für den Übergangsserver" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3448,7 +3462,7 @@ msgstr "" "Dolphin kann typische TGC-Dateien nicht ordnungsgemäß überprüfen, da sie " "sich nicht um Dumps der tatsächlichen Discs handeln." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kann nicht lizenzierte Discs nicht überprüfen." @@ -3774,11 +3788,11 @@ msgstr "Disc auswerfen" msgid "Embedded Frame Buffer (EFB)" msgstr "Eingebetteter Bildspeicher (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Leer" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emu-Thread läuft bereits." @@ -4166,11 +4180,11 @@ msgstr "Fehler beim Verarbeiten der Daten." msgid "Error reading file: {0}" msgstr "Fehler beim Lesen der Datei: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Fehler beim Synchronisieren der Cheat Codes!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Fehler beim Synchronisieren der Spielstände!" @@ -4186,31 +4200,31 @@ msgstr "" "Fehler: Nach \"{0}\" wurde {1} ({2:#x}), anstatt Save Marker {3} ({4:#x}) " "gefunden. Spielstand laden wird abgebrochen..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4236,11 +4250,11 @@ msgstr "" "nicht geladen. Das Spiel wird die Schriftarten vielleicht nicht anzeigen, " "oder abstürzen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Es wurden Fehler gefunden in den Blöcken {0} der Partition {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Es wurden Fehler gefunden in den unbenutzten Blöcken {0} der Partition {1}." @@ -4468,7 +4482,7 @@ msgstr "Konnte nicht an Signaturdatei '%1' anfügen." msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Konnte nicht mit Redump.org verbinden" @@ -4696,7 +4710,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Konnte Eingabedatei \"%1\" nicht öffnen." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4706,8 +4720,8 @@ msgstr "" "Überprüfe, ob du über Schreibrechte im Zielordner verfügen und ob das Medium " "beschreibbar ist." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Konnte Daten von Redump.org nicht parsen" @@ -4724,7 +4738,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Konnte nicht aus der Eingabedatei \"{0}\" lesen." @@ -4826,7 +4840,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5593,7 +5607,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Golf-Modus" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Guter Dump" @@ -5719,7 +5733,7 @@ msgstr "Inkompatible Sitzungen ausblenden" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Hoch" @@ -6219,7 +6233,7 @@ msgid "Interface" msgstr "Benutzeroberfläche" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Interner LZO-Fehler - Komprimierung fehlgeschlagen" @@ -6228,7 +6242,7 @@ msgstr "Interner LZO-Fehler - Komprimierung fehlgeschlagen" msgid "Internal LZO Error - decompression failed" msgstr "Interner LZO-Fehler - Dekomprimierung fehlgeschlagen" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6236,7 +6250,7 @@ msgstr "" "Interner LZO-Fehler - Dekomprimierung fehlgeschlagen ({0}) ({1}, {2})\n" "Versuche, diesen Spielstand nochmal zu laden" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interner LZO-Fehler - lzo_init() fehlgeschlagen" @@ -6426,7 +6440,7 @@ msgstr "JIT-Register-Cache Aus" msgid "JIT SystemRegisters Off" msgstr "JIT-SystemRegister Aus" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6848,7 +6862,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "Die Verbindung zum NetPlay-Server wurde getrennt..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Niedrig" @@ -6942,7 +6956,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Kann zu Verlangsamung im Wii-Menü und einigen Spielen führen." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Mittel" @@ -7352,11 +7366,11 @@ msgstr "Keine Pfade in der M3U-Datei \"{0}\" gefunden." msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Es wurden keine Probleme gefunden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7379,7 +7393,7 @@ msgstr "Keine Aufnahme geladen." msgid "No save data found." msgstr "Keine gespeicherten Daten gefunden." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Keine undo.dtm gefunden, undo load state ab wird abgebrochen, um Film-" @@ -7963,7 +7977,7 @@ msgstr "Privat und öffentlich" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7971,7 +7985,7 @@ msgstr "" "Es wurden Probleme mit hohem Schweregrad gefunden. Das Spiel wird " "höchstwahrscheinlich überhaupt nicht funktionieren." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7979,7 +7993,7 @@ msgstr "" "Es wurden Probleme mit geringem Schweregrad gefunden. Jedoch werden sie das " "Spiel wahrscheinlich nicht am Starten hindern." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8183,7 +8197,7 @@ msgstr "" "wendet sie auch bei Belichtung, Shader-Effekten und Texturen an." "

Im Zweifel, wähle Keine." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org Status:" @@ -8989,9 +9003,9 @@ msgstr "Ausgewählte Schriftart" msgid "Selected controller profile does not exist" msgstr "Ausgewähltes Controller-Profil existiert nicht" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9089,7 +9103,7 @@ msgstr "Senden" msgid "Sensor Bar Position:" msgstr "Position der Sensorleiste:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9187,7 +9201,7 @@ msgstr "" msgid "Settings" msgstr "Einstellungen" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: setting.txt kann nicht erstellt werden" @@ -9581,11 +9595,11 @@ msgstr "Sockel Tabelle" msgid "Software Renderer" msgstr "Software-Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Einige der Daten konnten nicht gelesen werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10144,7 +10158,7 @@ msgstr "" "Die mindeste Loader-Version des DFF ({0}) überschreitet die Version dieses " "FIFO-Players ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "Die H3-Hash-Tabelle für die {0} Partition ist nicht korrekt." @@ -10158,7 +10172,7 @@ msgstr "Die IPL-Datei ist kein bekannter guter Dump. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Die Partitionen der Meisterstücke fehlen." @@ -10174,22 +10188,22 @@ msgstr "" msgid "The NAND has been repaired." msgstr "Das NAND wurde repariert." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "Die Kanalpartition fehlt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "Die Datenpartition fehlt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10200,7 +10214,7 @@ msgstr "" "sein, mit jemandem Eingabeaufzeichnungen zu teilen und NetPlay zu benutzen, " "der einen guten Dump verwendet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10306,11 +10320,11 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Das Dateisystem ist ungültig oder konnte nicht gelesen werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10318,15 +10332,15 @@ msgstr "" "Das Format, in dem das Disc-Abbild gespeichert wird, enthält nicht die Größe " "des Disc-Abbilds." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "Die Spiel-ID ist inkonsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "Die Spiel-ID ist ungewöhnlich kurz." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "Die Spiel-ID ist {0}, sollte aber {1} sein." @@ -10378,7 +10392,7 @@ msgstr "" "Der Host-Code ist zu lang.\n" "Bitte überprüfe, ob du den richtigen Code hast." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "Die Installationspartition fehlt." @@ -10404,7 +10418,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Das aufgenommene Spiel ({0}) ist nicht das gleiche gewählte Spiel ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10452,7 +10466,7 @@ msgstr "" "auswählen." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" "Der angegebene gemeinsame Schlüsselindex ist {0}, sollte aber {1} sein." @@ -10466,11 +10480,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Das Ticket ist nicht korrekt signiert." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Der Typ einer Partition konnte nicht gelesen werden." @@ -10482,40 +10496,40 @@ msgstr "" "Die Aktualisierung wurde abgebrochen. Es wird dringend empfohlen, es " "abzuschließen, um inkonsistente Systemsoftwareversionen zu vermeiden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Die Update-Partition enthält nicht das von diesem Titel verwendete IOS." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "Die Updatepartition fehlt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "Die Update-Partition ist nicht in der normalen Position." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "Die {0} Partition hat kein gültiges Dateisystem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "Die {0} Partition scheint keine gültigen Daten zu enthalten." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "Die {0} Partition ist not korrekt signiert. " -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "Die {0} Partition ist nicht richtig ausgerichtet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Es gibt zu viele Partitionen in der ersten Partitionstabelle." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Es gibt nichts zum rückgängig machen!" @@ -10551,7 +10565,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10591,15 +10605,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dies kann nicht ruckgängig gemacht werden!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "Dieses Debug-Disc-Abbild hat die Größe eines Verkaufs-Disc-Abbilds." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Dieses Disc-Abbild hat eine ungewöhnliche Größe." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10610,7 +10624,7 @@ msgstr "" "Lage sein, mit jemandem Eingabeaufzeichnungen zu teilen und NetPlay zu " "benutzen, der einen guten Dump verwendet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10622,7 +10636,7 @@ msgstr "" "wird. Der CRC32 dieser Datei stimmt möglicherweise mit dem CRC32 eines guten " "Dumps überein, obwohl die Dateien nicht identisch sind." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10631,7 +10645,7 @@ msgstr "" "Programm das Disc-Abbild als mehrere Teile gespeichert hat, musst du diese " "in einer Datei zusammenführen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10648,7 +10662,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Diese Datei sieht nicht aus wie eine BootMii-NAND-Sicherung." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10669,11 +10683,11 @@ msgstr "" "funktionieren, aber deine Grafikkarte oder deine Treiber unterstützen dies " "nicht. Es kann zu Fehlern oder Abstürzen kommen, während dieses Spiel läuft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Dies ist ein schlechter Dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10681,7 +10695,7 @@ msgstr "" "Dies ist ein schlechter Dump. Das bedeutet nicht unbedingt, dass das Spiel " "nicht richtig läuft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10689,7 +10703,7 @@ msgstr "" "Laut Redump.org ist dies ein guter Dump, aber Dolphin hat Probleme gefunden. " "Dies könnte ein Fehler in Dolphin sein." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Dies ist ein guter Dump." @@ -10719,16 +10733,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Dieser Titel kann nicht gebootet werden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Dieser Titel wird ein ungültiges IOS verwenden." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Dieser Titel wird einen ungültigen gemeinsamen Schlüssel verwenden." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10740,7 +10754,7 @@ msgstr "" "\n" "DSPHLE: Unbekannter ucode (CRC = {0:08x}) - erzwinge AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11106,7 +11120,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Datei {0} kann nicht geschrieben werden" @@ -11147,7 +11161,7 @@ msgstr "" msgid "United States" msgstr "Vereinigte Staaten" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11158,7 +11172,7 @@ msgstr "Vereinigte Staaten" msgid "Unknown" msgstr "Unbekannt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Unbekannter DVD-Befehl {0:08x} - fataler Fehler" @@ -11166,7 +11180,7 @@ msgstr "Unbekannter DVD-Befehl {0:08x} - fataler Fehler" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11178,7 +11192,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Unbekannte SYNC_SAVE_DATA Meldung erhalten mit ID: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11198,7 +11212,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Unbekannte Disc" @@ -11218,7 +11232,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "Unbekannte Meldung mit ID:{0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Unbekannte Meldung mit ID:{0} von Spieler:{1} erhalten. Spieler wird " @@ -11517,7 +11531,7 @@ msgstr "Ausführlichkeit" msgid "Verify" msgstr "Prüfen" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Integrität prüfen" @@ -11525,8 +11539,8 @@ msgstr "Integrität prüfen" msgid "Verify certificates" msgstr "Zertifikate verifizieren" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Prüfe" @@ -11925,7 +11939,7 @@ msgstr "Wii TAS-Eingabe %1 - Wiimote + Nunchuk" msgid "Wii and Wii Remote" msgstr "Wii und Wiimote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii-Daten sind noch nicht öffentlich" @@ -12320,11 +12334,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Meisterstück)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12334,11 +12348,11 @@ msgstr "" "{0} IPL im {1} Verzeichnis gefunden. Die Disc wird möglicherweise nicht " "erkannt" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} konnte Codes nicht synchroniseren." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} konnte nicht synchronisert werden." @@ -12352,7 +12366,7 @@ msgstr "" "von Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} von {1} Blöcken. Komprimierungsrate {2}%" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index 2e14f499a5..967746b2ea 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -25,7 +25,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1260,11 +1260,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1569,7 +1569,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1855,7 +1855,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1911,7 +1911,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2158,6 +2158,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2298,7 +2312,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3179,13 +3193,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3493,11 +3507,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "" @@ -3849,11 +3863,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3867,31 +3881,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3911,11 +3925,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4140,7 +4154,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4347,15 +4361,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4372,7 +4386,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4467,7 +4481,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5184,7 +5198,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5305,7 +5319,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5743,7 +5757,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5752,13 +5766,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5948,7 +5962,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6355,7 +6369,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6445,7 +6459,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6843,11 +6857,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6866,7 +6880,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7435,19 +7449,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7643,7 +7657,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8438,9 +8452,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8514,7 +8528,7 @@ msgstr "" msgid "Sensor Bar Position:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8607,7 +8621,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8980,11 +8994,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9522,7 +9536,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9536,7 +9550,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9550,29 +9564,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9661,25 +9675,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9721,7 +9735,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9746,7 +9760,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9783,7 +9797,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9796,11 +9810,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9810,39 +9824,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9870,7 +9884,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9905,22 +9919,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9928,13 +9942,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9948,7 +9962,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9962,23 +9976,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10002,16 +10016,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10019,7 +10033,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10352,7 +10366,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10390,7 +10404,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10401,7 +10415,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10409,7 +10423,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10419,7 +10433,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10437,7 +10451,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10457,7 +10471,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10740,7 +10754,7 @@ msgstr "" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10748,8 +10762,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11074,7 +11088,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11449,11 +11463,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11461,11 +11475,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11476,7 +11490,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/el.po b/Languages/po/el.po index a477c337bf..d8ac045363 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -31,7 +31,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1269,11 +1269,11 @@ msgstr "Όλες οι συσκευές" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1578,7 +1578,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1864,7 +1864,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Υπολογισμός" @@ -1920,7 +1920,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2167,6 +2167,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2307,7 +2321,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3195,13 +3209,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3510,11 +3524,11 @@ msgstr "Εξαγωγή Δίσκου" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Κενή" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Το νήμα εξομοίωσης εκτελείται ήδη" @@ -3875,11 +3889,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3893,31 +3907,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3937,11 +3951,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4166,7 +4180,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4373,15 +4387,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4398,7 +4412,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4493,7 +4507,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5210,7 +5224,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5331,7 +5345,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5769,7 +5783,7 @@ msgid "Interface" msgstr "Διεπαφή" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία συμπίεσης" @@ -5778,13 +5792,13 @@ msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία συμπίεση msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία lzo_init()" @@ -5974,7 +5988,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6384,7 +6398,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6476,7 +6490,7 @@ msgstr "" "παιχνίδια." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6876,11 +6890,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Δεν βρέθηκαν προβλήματα." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6899,7 +6913,7 @@ msgstr "" msgid "No save data found." msgstr "Δεν βρέθηκαν δεδομένα αποθήκευσης." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7468,19 +7482,19 @@ msgstr "" msgid "Problem" msgstr "Πρόβλημα" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7676,7 +7690,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org Κατάσταση:" @@ -8471,9 +8485,9 @@ msgstr "Επιλεγμένη Γραμματοσειρά" msgid "Selected controller profile does not exist" msgstr "Το επιλεγμένο προφίλ χειρισμού δεν υπάρχει" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8547,7 +8561,7 @@ msgstr "Αποστολή" msgid "Sensor Bar Position:" msgstr "Θέση Sensor Bar:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8643,7 +8657,7 @@ msgstr "" msgid "Settings" msgstr "Ρυθμίσεις" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Αδυναμία δημιουργίας αρχείου setting.txt" @@ -9016,11 +9030,11 @@ msgstr "" msgid "Software Renderer" msgstr "Απεικόνιση Λογισμικού" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9558,7 +9572,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9572,7 +9586,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9586,29 +9600,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9697,25 +9711,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9757,7 +9771,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9782,7 +9796,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9820,7 +9834,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9833,11 +9847,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9847,39 +9861,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Δεν υπάρχει τίποτα προς αναίρεση!" @@ -9910,7 +9924,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9947,22 +9961,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9970,13 +9984,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9990,7 +10004,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr " Αυτό το αρχείο δεν δείχνει για αντίγραφο ασφαλείας BootMii NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10004,23 +10018,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10046,16 +10060,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10063,7 +10077,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10396,7 +10410,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10434,7 +10448,7 @@ msgstr "" msgid "United States" msgstr "Ηνωμένες Πολιτείες" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10445,7 +10459,7 @@ msgstr "Ηνωμένες Πολιτείες" msgid "Unknown" msgstr "Άγνωστο" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10453,7 +10467,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10463,7 +10477,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10481,7 +10495,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10501,7 +10515,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10786,7 +10800,7 @@ msgstr "Αναλυτικότητα" msgid "Verify" msgstr "Επαλήθευση" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Επαλήθευση Ακεραιότητας" @@ -10794,8 +10808,8 @@ msgstr "Επαλήθευση Ακεραιότητας" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11120,7 +11134,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11496,11 +11510,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11508,11 +11522,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11523,7 +11537,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/en.po b/Languages/po/en.po index 43c5cb135a..59f3bd29bf 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -24,7 +24,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1259,11 +1259,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1568,7 +1568,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1854,7 +1854,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1910,7 +1910,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2157,6 +2157,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2297,7 +2311,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3178,13 +3192,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3492,11 +3506,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "" @@ -3848,11 +3862,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3866,31 +3880,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3910,11 +3924,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4139,7 +4153,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4346,15 +4360,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4371,7 +4385,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4466,7 +4480,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5183,7 +5197,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5304,7 +5318,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5742,7 +5756,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5751,13 +5765,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5947,7 +5961,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6354,7 +6368,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6444,7 +6458,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6842,11 +6856,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6865,7 +6879,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7434,19 +7448,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7642,7 +7656,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8437,9 +8451,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8513,7 +8527,7 @@ msgstr "" msgid "Sensor Bar Position:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8606,7 +8620,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8979,11 +8993,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9521,7 +9535,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9535,7 +9549,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9549,29 +9563,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9660,25 +9674,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9720,7 +9734,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9745,7 +9759,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9782,7 +9796,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9795,11 +9809,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9809,39 +9823,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9869,7 +9883,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9904,22 +9918,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9927,13 +9941,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9947,7 +9961,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9961,23 +9975,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10001,16 +10015,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10018,7 +10032,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10351,7 +10365,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10389,7 +10403,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10400,7 +10414,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10408,7 +10422,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10418,7 +10432,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10436,7 +10450,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10456,7 +10470,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10739,7 +10753,7 @@ msgstr "" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10747,8 +10761,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11073,7 +11087,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11448,11 +11462,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11460,11 +11474,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11475,7 +11489,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/es.po b/Languages/po/es.po index a4ebd7d5b0..4472bf8499 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,9 +31,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Petiso_Carambanal , 2013-2017,2020-2022\n" +"Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" "language/es/)\n" "Language: es\n" @@ -43,7 +43,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " "1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -55,7 +55,7 @@ msgstr "" "Es posible que haya problemas que Dolphin no pueda detectar, ya que las " "imágenes de disco de GameCube contienen muy pocos datos de verificación." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -134,7 +134,7 @@ msgstr "" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:71 msgid "%1 %" -msgstr "%1 %" +msgstr "%1 %" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:305 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:331 @@ -154,20 +154,20 @@ msgstr "%1 (%2)" #. a copy of it gets created with this name #: Source/Core/DolphinQt/Config/PatchesWidget.cpp:97 msgid "%1 (Copy)" -msgstr "%1 (Copia)" +msgstr "%1 (copia)" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:98 msgid "%1 (Disc %2, Revision %3)" -msgstr "%1 (Disco %2, revisión %3)" +msgstr "%1 (disco %2, revisión %3)" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:102 msgid "%1 (Revision %3)" -msgstr "%1 (Revisión %3)" +msgstr "%1 (revisión %3)" #. i18n: "Stock" refers to input profiles included with Dolphin #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:500 msgid "%1 (Stock)" -msgstr "%1 (Predeterminado)" +msgstr "%1 (predeterminado)" #. i18n: %1 is the name of a compression method (e.g. Zstandard) #: Source/Core/DolphinQt/ConvertDialog.cpp:231 @@ -242,7 +242,7 @@ msgstr "%1 rango(s) de memoria" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:250 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:319 msgid "%1 ms" -msgstr "%1 ms" +msgstr "%1 ms" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:265 msgid "%1 session found" @@ -258,7 +258,7 @@ msgstr "%1%" #: Source/Core/DolphinQt/Settings/AdvancedPane.cpp:268 msgid "%1% (%2 MHz)" -msgstr "%1% (%2 MHz)" +msgstr "%1% (%2 MHz)" #: Source/Core/DolphinQt/Settings/GeneralPane.cpp:172 msgid "%1% (Normal Speed)" @@ -278,15 +278,15 @@ msgstr "%1[%2]: %3" #: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 msgid "%1[%2]: %3 %" -msgstr "%1[%2]: %3 %" +msgstr "%1[%2]: %3 %" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:135 msgid "%1[%2]: %3/%4 MiB" -msgstr "%1[%2]: %3/%4 MiB" +msgstr "%1[%2]: %3/%4 MiB" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:66 msgid "%1x Native (%2x%3)" -msgstr "%1x Nativo (%2x%3)" +msgstr "Nativa %1x (%2x%3)" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:310 #: Source/Core/DolphinQt/CheatSearchWidget.cpp:328 @@ -680,11 +680,11 @@ msgstr "No se encontró «%1», probando con la búsqueda de funciones comunes" #: Source/Core/DolphinQt/Settings/InterfacePane.cpp:135 msgid "(None)" -msgstr "(Ninguno)" +msgstr "(ninguno)" #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:135 msgid "(host)" -msgstr "(host)" +msgstr "(anfitrión)" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:175 msgid "(off)" @@ -992,15 +992,17 @@ msgstr "" "ATENCIÓN:\n" "\n" "Todos los jugadores deben usar la misma versión de Dolphin.\n" -"Si está habilitado, las tarjetas SD deben ser idénticas entre los " -"jugadores.\n" -"Si se usa DSP LLE, las ROM de DSP deben ser idénticas entre los jugadores.\n" -"Si un juego se cuelga en el arranque, puede que no sea compatible con el " -"doble núcleo en juego en red. Deshabilitar doble núcleo.\n" -"Si se conecta directamente, el host debe tener el puerto UDP elegido abierto/" -"reenviado.\n" +"Si se utilizan tarjetas SD, todos los jugadores deben tener exactamente la " +"misma.\n" +"Si se utiliza el modo LLE del DSP, todos los jugadores deben tener " +"exactamente la misma ROM del DSP.\n" +"Si un juego se cuelga al arrancarlo, tal vez no sea compatible con modo de " +"doble núcleo en juego en red. Deberéis deshabilitar la característica de " +"doble núcleo.\n" +"Si se va a jugar mediante una conexión directa, ¡el anfitrión debe tener el " +"puerto UDP que se haya elegido abierto o reenviado!\n" "\n" -"El soporte para mando de Wii en juego en red es experimental y puede que no " +"El soporte para mandos de Wii en juego en red es experimental y puede que no " "funcione correctamente.\n" "Úsalo bajo tu propio riesgo.\n" @@ -1053,8 +1055,8 @@ msgid "" "Culprit Code:\n" "{0}" msgstr "" -"Error de descrifrado de código Action Replay:\n" -"Falló la comprobación de paridad\n" +"Error al descifrar el código de Action Replay:\n" +"la comprobación de paridad ha fallado.\n" "\n" "Código culpable:\n" "{0}" @@ -1064,37 +1066,37 @@ msgid "" "Action Replay Error: Invalid size ({0:08x} : address = {1:08x}) in Add Code " "({2})" msgstr "" -"Error de Action Replay: Tamaño incorrecto ({0:08x} : dirección = {1:08x}) en " -"Añadido de código ({2})" +"Error de Action Replay: tamaño incorrecto ({0:08x} : dirección = {1:08x}) en " +"instrucción de añadido de código ({2})" #: Source/Core/Core/ActionReplay.cpp:622 msgid "" "Action Replay Error: Invalid size ({0:08x} : address = {1:08x}) in Fill and " "Slide ({2})" msgstr "" -"Error de Action Replay: Tamaño incorrecto ({0:08x} : dirección = {1:08x}) en " -"Fill and Slide ({2})" +"Error de Action Replay: tamaño incorrecto ({0:08x} : dirección = {1:08x}) en " +"instrucción «Fill and Slide ({2})»" #: Source/Core/Core/ActionReplay.cpp:409 msgid "" "Action Replay Error: Invalid size ({0:08x} : address = {1:08x}) in Ram Write " "And Fill ({2})" msgstr "" -"Error de Action Replay: Tamaño incorrecto ({0:08x}: dirección = {1:08x}) en " -"escritura y llenado de RAM ({2})" +"Error de Action Replay: tamaño incorrecto ({0:08x}: dirección = {1:08x}) en " +"instrucción de escritura y llenado de RAM ({2})" #: Source/Core/Core/ActionReplay.cpp:469 msgid "" "Action Replay Error: Invalid size ({0:08x} : address = {1:08x}) in Write To " "Pointer ({2})" msgstr "" -"Error de Action Replay: Tamaño incorrecto ({0:08x}: dirección = {1:08x}) en " -"Escribir al Puntero ({2})" +"Error de Action Replay: tamaño incorrecto ({0:08x}: dirección = {1:08x}) en " +"instrucción de escribir a puntero ({2})" #: Source/Core/Core/ActionReplay.cpp:677 msgid "Action Replay Error: Invalid value ({0:08x}) in Memory Copy ({1})" msgstr "" -"Error de Action Replay: Valor incorrecto ({0:08x}) al copiar memoria ({1})" +"Error de Action Replay: valor incorrecto ({0:08x}) al copiar memoria ({1})" #: Source/Core/Core/ActionReplay.cpp:546 msgid "" @@ -1102,29 +1104,29 @@ msgid "" "({0})\n" "Master codes are not needed. Do not use master codes." msgstr "" -"Error de Action Replay: El código maestro y escritura a CCXXXXXX no se han " -"implementado ({0})\n" +"Error de Action Replay: las instrucciones de código maestro y escritura a " +"CCXXXXXX no se han implementado ({0}).\n" "Los códigos maestros no son necesarios. No los uses." #: Source/Core/Core/ActionReplay.cpp:226 msgid "Action Replay Error: invalid AR code line: {0}" -msgstr "Error de Action Replay: Línea de código AR incorrecta: {0}" +msgstr "Error de Action Replay: línea de código AR incorrecta: {0}" #: Source/Core/Core/ActionReplay.cpp:788 msgid "Action Replay: Conditional Code: Invalid Size {0:08x} ({1})" -msgstr "Action Replay: Código condicional: Tamaño de {0:08x} incorrecto ({1})" +msgstr "Action Replay: código condicional: tamaño de {0:08x} incorrecto ({1})" #: Source/Core/Core/ActionReplay.cpp:756 msgid "Action Replay: Invalid Normal Code Type {0:08x} ({1})" -msgstr "Error de Action Replay: Tipo de Código normal {0:08x} incorrecto ({1})" +msgstr "Error de Action Replay: tipo de código normal {0:08x} incorrecto ({1})" #: Source/Core/Core/ActionReplay.cpp:714 msgid "Action Replay: Normal Code 0: Invalid Subtype {0:08x} ({1})" -msgstr "Action Replay: Código Normal 0: Subtipo incorrecto {0:08x} ({1})" +msgstr "Action Replay: código normal 0: subtipo incorrecto {0:08x} ({1})" #: Source/Core/Core/ActionReplay.cpp:812 msgid "Action Replay: Normal Code {0}: Invalid subtype {1:08x} ({2})" -msgstr "Action Replay: Código Normal {0}: Subtipo incorrecto {1:08x} ({2})" +msgstr "Action Replay: código normal {0}: subtipo incorrecto {1:08x} ({2})" #: Source/Core/Core/HotkeyManager.cpp:39 msgid "Activate NetPlay Chat" @@ -1377,11 +1379,11 @@ msgstr "Todos los dispositivos" msgid "All files (*)" msgstr "Todos los archivos (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Todos los códigos de los jugadores sincronizados." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Todos las partidas guardadas de los jugadores sincronizados." @@ -1703,7 +1705,7 @@ msgstr "Se ha proporcionado un valor incorrecto" msgid "Bad address provided." msgstr "La dirección elegida no existe." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Volcado malo" @@ -1874,7 +1876,7 @@ msgstr "Puntos de interrupción" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 msgid "Broadband Adapter (HLE)" -msgstr "" +msgstr "Adaptador de banda ancha (HLE)" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" @@ -1998,7 +2000,7 @@ msgstr "" "parones.

Si tienes dudas, deja esta opción " "desactivada." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Calcular" @@ -2063,7 +2065,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "No puedes empezar el juego en red con un juego en ejecución." #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2116,7 +2118,7 @@ msgstr "Centrar" #: Source/Core/Core/HotkeyManager.cpp:38 msgid "Center Mouse" -msgstr "" +msgstr "Centrar ratón" #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" @@ -2323,6 +2325,20 @@ msgstr "Común" msgid "Comparand:" msgstr "Comparativa:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Compilar sombreadores antes de jugar" @@ -2464,7 +2480,7 @@ msgstr "Conectando" msgid "Connection Type:" msgstr "Tipo de conexión:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "El contenido {0:08x} está corrupto." @@ -2695,7 +2711,7 @@ msgstr "Coste" #: Source/Core/Core/NetPlayClient.cpp:170 #: Source/Core/Core/NetPlayClient.cpp:230 msgid "Could not communicate with host." -msgstr "No se pudo comunicar con el host." +msgstr "No se ha podido comunicar con el anfitrión." #: Source/Core/Core/NetPlayClient.cpp:139 msgid "Could not create client." @@ -3461,7 +3477,7 @@ msgid "Dolphin is too old for traversal server" msgstr "" "La versión de Dolphin es demasiado antigua para utilizar el servidor de paso" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3469,7 +3485,7 @@ msgstr "" "Dolphin no puede verificar correctamente los archivos típicos TGC, ya que no " "son volcados de discos reales." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin no puede verificar los discos sin licencia." @@ -3761,10 +3777,10 @@ msgid "" "Suitable for competitive games where fairness and minimal latency are most " "important." msgstr "" -"Cada jugador envía sus propias entradas al juego, con el mismo tamaño de " +"Cada jugador enviará sus señales de entrada al juego con el mismo tamaño de " "búfer para todos los jugadores, configurado por el anfitrión.\n" -"Adecuado para juegos competitivos donde la equidad y la latencia mínima son " -"más importantes." +"Ideal para juegos competitivos donde la equidad y la latencia mínima son más " +"importantes." #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:122 msgid "Early Memory Updates" @@ -3806,11 +3822,11 @@ msgstr "Expulsar disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Búfer de imagen integrado (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Vacía" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "El hilo de emulación ya está ejecutándose" @@ -3829,8 +3845,8 @@ msgid "" "DFF: MEM1 {4:08X} ({5} MiB), MEM2 {6:08X} ({7} MiB)" msgstr "" "¡Diferencias entre la memoria emulada!\n" -"Actual | MEM1 {0:08x} ({1} MiB) MEM2 {2:08x} ({3} MiB)\n" -"DFF | MEM1 {4:08x} ({5} MiB) MEM2 {6:08x} ({7} MiB)" +"Actual | MEM1 {0:08x} ({1} MiB) MEM2 {2:08x} ({3} MiB)\n" +"DFF | MEM1 {4:08x} ({5} MiB) MEM2 {6:08x} ({7} MiB)" #: Source/Core/Core/HotkeyManager.cpp:330 #: Source/Core/DolphinQt/Config/Mapping/HotkeyGeneral.cpp:26 @@ -4221,11 +4237,11 @@ msgstr "Error en el procesamiento de datos." msgid "Error reading file: {0}" msgstr "Error leyendo el archivo: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "¡Error al sincronizar códigos de trucos!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "¡Error al sincronizar los datos guardados!" @@ -4241,31 +4257,31 @@ msgstr "" "Error: Tras «{0}» se ha encontrado {1} ({2:#x}) en vez de la marca de " "guardado {3} ({4:#x}). Cancelando carga del estado de guardado..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Error: GBA{0} no ha podido crear el núcleo" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Error: GBA{0} no ha podido cargar la BIOS en {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Error: GBA{0} no ha podido cargar la ROM en {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Error: GBA{0} no ha podido cargar el guardado en {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Error: GBA{0} no ha podido abrir la BIOS en {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Error: GBA{0} no ha podido abrir la ROM en {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Error: GBA{0} no ha podido abrir el guardado en {1}" @@ -4289,11 +4305,11 @@ msgstr "" "Error: No ha sido posible cargar las tipografías de tipo «Windows-1252». " "Puede que los juegos se cuelguen o no muestren sus textos correctamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Se encontraron errores en {0} bloques en la partición {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Se encontraron errores en {0} bloques sin uso en la partición {1}." @@ -4539,7 +4555,7 @@ msgstr "No se ha podido añadir al archivo de firma «%1»" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "No se ha podido controlar la interfaz para el acceso directo a BT: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "No se ha podido conectar con redump.org" @@ -4771,10 +4787,10 @@ msgstr "No se ha podido contactar con el servidor" #: Source/Core/DolphinQt/ConvertDialog.cpp:453 msgid "Failed to open the input file \"%1\"." -msgstr "No se ha podido abrir el archivo de entrada \"%1\"." +msgstr "No se ha podido abrir el archivo de entrada «%1»." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4784,8 +4800,8 @@ msgstr "" "permisos para escribir en la carpeta de destino y que se puede escribir en " "la unidad donde esté." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "No se han podido analizar los datos de redump.org" @@ -4803,7 +4819,7 @@ msgid "Failed to read from file." msgstr "No se ha podido leer desde el archivo." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "No se ha podido leer el archivo de entrada «{0}»." @@ -4859,19 +4875,19 @@ msgstr "No se ha podido guardar el registro FIFO." #: Source/Core/DolphinQt/MenuBar.cpp:1553 msgid "Failed to save code map to path '%1'" -msgstr "No se ha podido guardar el mapa de código en la ruta '%1'" +msgstr "No se ha podido guardar el mapa de código en la ruta «%1»" #: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" -msgstr "No se ha podido guardar el archivo de firma '%1'" +msgstr "No se ha podido guardar el archivo de firma «%1»" #: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" -msgstr "No se ha podido guardar el mapa de símbolos en la ruta '%1'" +msgstr "No se ha podido guardar el mapa de símbolos en la ruta «%1»" #: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" -msgstr "No se ha podido guardar en el archivo de firma '%1'" +msgstr "No se ha podido guardar en el archivo de firma «%1»" #: Source/Core/DolphinQt/ResourcePackManager.cpp:225 msgid "Failed to uninstall pack: %1" @@ -4908,7 +4924,7 @@ msgid "Failed to write savefile to disk." msgstr "No se ha podido escribir el guardado en el disco" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5199,7 +5215,7 @@ msgstr "Reenviar puerto (UPnP)" #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:465 msgid "Found %1 results for \"%2\"" -msgstr "Encontrados %1 resultados para \"%2\"" +msgstr "Encontrados %1 resultados para «%2»" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:319 #, c-format @@ -5342,7 +5358,7 @@ msgstr "Funciones" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:37 msgid "GBA (Integrated)" -msgstr "GBA (Integrado)" +msgstr "GBA (integrado)" #: Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp:39 msgid "GBA (TCP)" @@ -5370,7 +5386,7 @@ msgstr "Tamaño de la ventana de GBA" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 msgid "GBA%1 ROM changed to \"%2\"" -msgstr "ROM GBA%1 cambiada a \"%2\"" +msgstr "ROM GBA%1 cambiada a «%2»" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 msgid "GBA%1 ROM disabled" @@ -5667,7 +5683,7 @@ msgstr "Ajustes generales" #: Source/Core/DolphinQt/CheatSearchWidget.cpp:457 msgid "Generate Action Replay Code" -msgstr "Generar código «ActionReplay»" +msgstr "Generar código de Action Replay" #: Source/Core/DolphinQt/Settings/GeneralPane.cpp:234 msgid "Generate a New Statistics Identity" @@ -5703,7 +5719,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Modo golf" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Volcado bueno" @@ -5829,7 +5845,7 @@ msgstr "Ocultar sesiones no compatibles" msgid "Hide Remote GBAs" msgstr "Ocultar GBAs remotas" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Alto" @@ -5861,15 +5877,15 @@ msgstr "Alojar partida" #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:309 msgid "Host Code:" -msgstr "Código del anfitrión:" +msgstr "Código de anfitrión:" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:165 msgid "Host Input Authority" -msgstr "Autoridad de entrada del host" +msgstr "Autoridad de entrada para el anfitrión" #: Source/Core/DolphinQt/Debugger/JITWidget.cpp:80 msgid "Host Size" -msgstr "Tamaño de host" +msgstr "Tamaño del anfitrión" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:167 msgid "" @@ -5878,23 +5894,23 @@ msgid "" "Suitable for casual games with 3+ players, possibly on unstable or high " "latency connections." msgstr "" -"El host tiene el control para enviar todas las entradas al juego, tal como " -"las recibe de otros jugadores, lo que le otorga una latencia cero al host, " -"pero aumenta la latencia para otros.\n" -"Adecuado para juegos casuales con más de 3 jugadores, posiblemente en " +"El anfitrión tendrá el control para enviar todas las entradas al juego tal y " +"como las vaya recibiendo de otros jugadores, lo que otorga una latencia cero " +"al anfitrión, pero aumenta la latencia de los demás.\n" +"Ideal para juegos casuales para 3 o más jugadores, posiblemente en " "conexiones inestables o de alta latencia." #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority disabled" -msgstr "Autorización de entrada del host deshabilitada" +msgstr "Autoridad de entrada para el anfitrión deshabilitada" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 msgid "Host input authority enabled" -msgstr "Autorización de entrada del host activada" +msgstr "Autoridad de entrada para el anfitrión activada" #: Source/Core/DolphinQt/GameList/GameList.cpp:516 msgid "Host with NetPlay" -msgstr "Anfitrión con juego en red" +msgstr "Alojar partida de juego en red" #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:330 msgid "Hostname" @@ -6018,10 +6034,11 @@ msgid "" "latency) can be switched at any time.\n" "Suitable for turn-based games with timing-sensitive controls, such as golf." msgstr "" -"Idéntico a Autoridad de entrada de host, excepto el \"Host\" (que tiene cero " -"latencia) puede ser cambiado en cualquier momento\n" +"Esta opción es idéntica a Autoridad de entrada para el anfitrión, con la " +"excepción de que el anfitrión (que no tiene latencia alguna) puede ser " +"cambiado en cualquier momento.\n" "Recomendado para juegos por turnos con controles sensibles al tiempo, como " -"Golf" +"el golf." #: Source/Core/DolphinQt/Settings/GeneralPane.cpp:375 msgid "Identity Generation" @@ -6345,7 +6362,7 @@ msgid "Interface" msgstr "Interfaz" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Error Interno de LZO - fallo al comprimir" @@ -6354,7 +6371,7 @@ msgstr "Error Interno de LZO - fallo al comprimir" msgid "Internal LZO Error - decompression failed" msgstr "Error interno de LZO - fallo al descomprimir" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6362,7 +6379,7 @@ msgstr "" "Error interno de LZO - fallo al descomprimir ({0}) ({1}, {2})\n" "Prueba a volver a cargar el estado" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Error interno de LZO - fallo en lzo_init()" @@ -6423,7 +6440,7 @@ msgstr "El juego no es válido." #: Source/Core/Core/NetPlayClient.cpp:1895 msgid "Invalid host" -msgstr "Host no válido" +msgstr "Anfitrión no válido" #: Source/Core/DolphinQt/Debugger/NewBreakpointDialog.cpp:151 msgid "Invalid input for the field \"%1\"" @@ -6553,7 +6570,7 @@ msgstr "Sin registro de caché de JIT" msgid "JIT SystemRegisters Off" msgstr "Sin SystemRegisters JIT" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6637,7 +6654,7 @@ msgstr "Carg&ar ROM" #: Source/Core/Core/HW/GCPadEmu.cpp:47 #: Source/Core/Core/HW/WiimoteEmu/Extension/Classic.cpp:63 msgid "L-Analog" -msgstr "L-Analógico" +msgstr "L analógico" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:232 msgid "LR Save" @@ -6657,19 +6674,19 @@ msgstr "Latencia:" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:434 msgid "Latency: ~10 ms" -msgstr "Latencia: ~10 ms" +msgstr "Latencia: ~10 ms" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:436 msgid "Latency: ~20 ms" -msgstr "Latencia: ~20 ms" +msgstr "Latencia: ~20 ms" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:440 msgid "Latency: ~40 ms" -msgstr "Latencia: ~40 ms" +msgstr "Latencia: ~40 ms" #: Source/Core/DolphinQt/Settings/AudioPane.cpp:438 msgid "Latency: ~80 ms" -msgstr "Latencia: ~80 ms" +msgstr "Latencia: ~80 ms" #: Source/Core/Core/FreeLookManager.cpp:88 #: Source/Core/Core/HW/WiimoteEmu/Extension/TaTaCon.cpp:33 @@ -6983,7 +7000,7 @@ msgstr "Bucle" msgid "Lost connection to NetPlay server..." msgstr "Se ha perdido la conexión con el servidor de juego en red..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Bajo" @@ -7078,7 +7095,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Puede empeorar el rendimiento del menú de Wii y de algunos juegos." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Medio" @@ -7497,11 +7514,11 @@ msgstr "No se encontraron rutas en el archivo M3U «{0}»" msgid "No possible functions left. Reset." msgstr "No quedan funciones posibles. Debes reiniciar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "No se encontraron problemas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7524,7 +7541,7 @@ msgstr "No hay grabación cargada." msgid "No save data found." msgstr "No se encontraron datos de guardado." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "No se ha encontrado el archivo undo.dtm, abortando deshacer estado cargado " @@ -7823,7 +7840,7 @@ msgstr "Tamaño de PPC" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:559 msgid "PPC vs Host" -msgstr "PPC vs Host" +msgstr "PPC contra anfitrión" #: Source/Core/Core/HW/GBAPad.cpp:13 Source/Core/Core/HW/GCPad.cpp:17 msgid "Pad" @@ -8115,7 +8132,7 @@ msgstr "Privado y público" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8123,7 +8140,7 @@ msgstr "" "Se encontraron problemas de gravedad alta. Lo más probable es que el juego " "no funcione en absoluto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8131,7 +8148,7 @@ msgstr "" "Se encontraron problemas de gravedad baja. Lo más probable es que no impidan " "que el juego se ejecute." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8207,7 +8224,7 @@ msgstr "R" #: Source/Core/Core/HW/GCPadEmu.cpp:49 #: Source/Core/Core/HW/WiimoteEmu/Extension/Classic.cpp:65 msgid "R-Analog" -msgstr "R-Analógico" +msgstr "R analógico" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:276 msgid "READY" @@ -8337,7 +8354,7 @@ msgstr "" "de los sombreadores y las texturas.

Si tienes " "dudas, selecciona Ninguno." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Estado de redump.org:" @@ -9157,9 +9174,9 @@ msgstr "Tipografía seleccionada" msgid "Selected controller profile does not exist" msgstr "El perfil del mando seleccionado no existe" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9269,7 +9286,7 @@ msgstr "Enviar" msgid "Sensor Bar Position:" msgstr "Posición de la barra sensora:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9277,8 +9294,8 @@ msgid "" "Example: {2}" msgstr "" "Falta el número de serie o el dato de versión de {0}\n" -"Por favor añade \"{1}\" (sin las comillas) a los datos del archivo de la URL " -"cuando lo descargues\n" +"Añade «{1}» (sin las comillas) a la dirección URL del archivo de datos " +"cuando lo descargues.\n" "Ejemplo: {2}" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:50 @@ -9374,7 +9391,7 @@ msgstr "" msgid "Settings" msgstr "Ajustes" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: No puedo crear archivo setting.txt" @@ -9772,11 +9789,11 @@ msgstr "Panel de conexiones" msgid "Software Renderer" msgstr "Dibujado por software" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "No se han podido leer algunos datos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9825,7 +9842,7 @@ msgstr "Volumen del altavoz:" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:115 msgid "Specialized (Default)" -msgstr "Especializados (Predeterminado)" +msgstr "Especializados (predeterminado)" #: Source/Core/DolphinQt/Debugger/ThreadWidget.cpp:187 msgid "Specific" @@ -10355,7 +10372,7 @@ msgstr "" "La versión mínima del cargador DFF ({0}) excede la versión de este " "reproductor FIFO ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "La tabla hash H3 para la partición {0} no es correcta." @@ -10369,7 +10386,7 @@ msgstr "El archivo IPL no es un volcado correcto conocido. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Faltan las particiones de los Clásicos" @@ -10385,7 +10402,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND arreglada sin problemas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10395,15 +10412,15 @@ msgstr "" "(«título») a la tarjeta SD, el menú del sistema de Wii no volverá a " "ejecutarse, impidiendo su copia o traslado de vuelta a la NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "Falta la partición del canal." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "Falta la partición de datos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10413,7 +10430,7 @@ msgstr "" "tiempos de carga emulados. No podrás compartir las grabaciones de entrada ni " "jugar en red con nadie que esté usando un buen volcado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10525,11 +10542,11 @@ msgstr "" "códigos de región de las tarjetas de memoria. Es necesario cambiar el nombre " "de este archivo a %2, %3 o %4 según la región de los archivos que contenga." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "El sistema de archivo es incorrecto o no pudo ser leído." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10537,15 +10554,15 @@ msgstr "" "El formato en el que se guarda la imagen del disco no almacena el tamaño de " "la imagen del disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "El ID del juego es inconsistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "El ID del juego es inusualmente corto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "El ID del juego es {0}, pero debería ser {1}." @@ -10595,10 +10612,10 @@ msgid "" "The host code is too long.\n" "Please recheck that you have the correct code." msgstr "" -"El código del host es demasiado largo.\n" -"Por favor, vuelva a comprobar que tiene el código correcto." +"El código del anfitrión es demasiado largo.\n" +"Vuelve a comprobar que tienes el código correcto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "Falta la partición de instalación." @@ -10624,13 +10641,13 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:243 #: Source/Core/DolphinQt/Config/Mapping/MappingWindow.cpp:282 msgid "The profile '%1' does not exist" -msgstr "El perfil elegido '%1' no existe" +msgstr "El perfil elegido «%1» no existe" #: Source/Core/Core/Movie.cpp:260 msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "El juego grabado ({0}) no es el mismo que el juego elegido ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10675,11 +10692,11 @@ msgstr "" "El renderizado por software es significativamente más lento que otros " "motores y solo se recomienda para propósitos de depuración.\n" "\n" -"¿Realmente quieres habilitar el renderizado de software? Si tienes dudas, " -"selecciona 'No'." +"¿Seguro que quieres habilitar el renderizado de software? Si tienes dudas, " +"selecciona «No»." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" "El índice de la llave compartida especificada es {0} pero debería ser {1}." @@ -10690,14 +10707,14 @@ msgstr "El archivo especificado «{0}» no existe" #: Source/Core/DolphinQt/GCMemcardManager.cpp:543 msgid "The target memory card already contains a file \"%1\"." -msgstr "La tarjeta de memoria elegida ya contiene un archivo \"%1\"." +msgstr "La tarjeta de memoria elegida ya contiene un archivo «%1»." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "El ticket no está correctamente firmado" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "El tipo de partición no se pudo leer." @@ -10709,41 +10726,41 @@ msgstr "" "Has cancelado la actualización, te recomendamos que la termines para evitar " "conflictos con versiones distintas del software del sistema." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partición de actualización no contiene el IOS utilizado por este paquete " "(«título»)." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "Falta la partición de actualización." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "La partición de actualización no está en su posición normal." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "La partición {0} no tiene un sistema de archivos válido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "La partición {0} no parece contener datos válidos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "La partición {0} no está firmada correctamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "La partición {0} no está alineada correctamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Hay demasiadas particiones en la primera tabla de particiones." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "¡No hay nada que deshacer!" @@ -10766,10 +10783,10 @@ msgid "" "\n" "Do you want to discard all unencrypted lines?" msgstr "" -"Este código Action Replay contiene tanto líneas cifradas como sin cifrar; " -"asegúrate de haberlo escrito bien.\n" +"Este código Action Replay contiene líneas cifradas y sin cifrar; asegúrate " +"de haberlo escrito bien.\n" "\n" -"¿Quieres que quitemos las líneas sin cifrar?" +"¿Quieres borrar las líneas sin cifrar?" #: Source/Core/DolphinQt/Config/CheatCodeEditor.cpp:250 msgid "This Gecko code doesn't contain any lines." @@ -10777,7 +10794,7 @@ msgstr "Este código Gecko está vacío." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10820,17 +10837,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "No puede deshacerse." -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Esta imagen de disco de depuración tiene el tamaño de una imagen de disco " "retail." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Esta imagen de disco tiene un tamaño inusual." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10841,7 +10858,7 @@ msgstr "" "compartir las grabaciones de entrada y usar juego en red con cualquiera que " "esté usando un buen volcado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10853,7 +10870,7 @@ msgstr "" "El CRC32 de este archivo puede coincidir con el CRC32 de un buen volcado " "aunque los archivos no sean idénticos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10862,7 +10879,7 @@ msgstr "" "programa de volcado ha guardado la imagen del disco como varias partes, " "deberá fusionarlas en un solo archivo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10880,7 +10897,7 @@ msgid "This file does not look like a BootMii NAND backup." msgstr "" "Este archivo no tiene el formato de una copia de respaldo NAND de BootMii.%zx" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10901,11 +10918,11 @@ msgstr "" "(«bounding box»), pero tu tarjeta gráfica o controladores no la soportan, " "por lo que tendrás problemas y cuelgues durante la partida." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Este es un mal volcado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10913,7 +10930,7 @@ msgstr "" "Este es un mal volcado. No significa necesariamente que el juego no funcione " "correctamente" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10921,7 +10938,7 @@ msgstr "" "Este es un buen volcado de acuerdo con Redump.org, pero Dolphin ha " "encontrado problemas. Puede ser un bug en Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Este es un buen volcado." @@ -10949,19 +10966,19 @@ msgstr "No debes utilizarlo con juegos que no poseas legalmente." msgid "This title cannot be booted." msgstr "Este paquete («título») no se puede arrancar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" "Este paquete («título») está configurado para utilizar un IOS no válido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" "Este paquete («título») está configurado para utilizar una clave común no " "válida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10973,7 +10990,7 @@ msgstr "" "\n" "DSPHLE: ucode desconcocido (CRC = {0:08x}) - forzando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11215,8 +11232,8 @@ msgstr "Servidor de paso" #: Source/Core/Core/NetPlayClient.cpp:1889 msgid "Traversal server timed out connecting to the host" msgstr "" -"Se agotó el tiempo para que el servidor de paso se conecte con el anfitrión " -"de la partida." +"Se agotó el tiempo para que el servidor transversal se conecte con el " +"anfitrión de la partida." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:53 msgid "" @@ -11348,7 +11365,7 @@ msgstr "" msgid "Unable to read file." msgstr "No se ha podido leer el archivo." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Hubo un fallo al escribir los datos en el archivo {0}" @@ -11389,7 +11406,7 @@ msgstr "" msgid "United States" msgstr "Estados Unidos" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11400,7 +11417,7 @@ msgstr "Estados Unidos" msgid "Unknown" msgstr "Desconocido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconocido de DVD {0:08x} - error fatal" @@ -11408,7 +11425,7 @@ msgstr "Comando desconocido de DVD {0:08x} - error fatal" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Mensaje SYNC_CODES desconocido recibido con id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11420,7 +11437,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Mensaje SYNC_SAVE_DATA desconocido recibido con id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11440,7 +11457,7 @@ msgstr "Autor desconocido" msgid "Unknown data type" msgstr "Tipo de datos desconocido" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Disco desconocido" @@ -11460,7 +11477,7 @@ msgstr "Error desconocido." msgid "Unknown message received with id : {0}" msgstr "Se recibió un mensaje desconocido con identificador: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Mensaje desconocido con id:{0} recibido del jugador:{1} ¡Expulsando jugador!" @@ -11800,7 +11817,7 @@ msgstr "Nivel de detalle" msgid "Verify" msgstr "Verificar" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verificar integridad" @@ -11808,8 +11825,8 @@ msgstr "Verificar integridad" msgid "Verify certificates" msgstr "Verificar certificados" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verificando" @@ -12216,7 +12233,7 @@ msgstr "Entrada TAS de Wii %1 - Mando de Wii y Nunchuk" msgid "Wii and Wii Remote" msgstr "Wii y su mando" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Los datos de Wii todavía no son públicos" @@ -12459,7 +12476,7 @@ msgstr "Debes reiniciar Dolphin para que el cambio tenga efecto." #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 msgid "You must select a game to host!" -msgstr "Tienes que elegir un juego para alojar la partida." +msgstr "¡Tienes que elegir un juego para alojar una partida!" #: Source/Core/Core/DSP/DSPCore.cpp:75 msgid "" @@ -12638,11 +12655,11 @@ msgstr "sin alinear" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Clásico)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12652,11 +12669,11 @@ msgstr "" "Se ha encontrado un IPL {0} en el directorio {1}. Es posible que no " "reconozca el disco" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} no ha podido sincronizar los códigos." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} no ha podido sincronizar." @@ -12669,7 +12686,7 @@ msgstr "" "Comprueba tus permisos de escritura o lleva el archivo fuera de Dolphin." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0}bloques de {1}. Ratio de compresión {2}%" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index 88a5abdc75..81e1bb81ca 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1263,11 +1263,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1572,7 +1572,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1858,7 +1858,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1914,7 +1914,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2161,6 +2161,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2301,7 +2315,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3182,13 +3196,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3496,11 +3510,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "ریسمان شبیه ساز قبلا اجرا شده است" @@ -3855,11 +3869,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3873,31 +3887,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3917,11 +3931,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4146,7 +4160,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4353,15 +4367,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4378,7 +4392,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4473,7 +4487,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5190,7 +5204,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5311,7 +5325,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5749,7 +5763,7 @@ msgid "Interface" msgstr "واسط گرافیک" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "خطای داخلی LZO - فشرده سازی با شکست مواجه شد" @@ -5758,13 +5772,13 @@ msgstr "خطای داخلی LZO - فشرده سازی با شکست مواجه msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "خطای داخلی LZO - lzo_init() با شکست مواجه شد" @@ -5954,7 +5968,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6364,7 +6378,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6454,7 +6468,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6852,11 +6866,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6875,7 +6889,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7444,19 +7458,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7652,7 +7666,7 @@ msgid "" "unsure, select None." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8447,9 +8461,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "پروفایل انتخاب شده وجود ندارد" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8523,7 +8537,7 @@ msgstr "فرستادن" msgid "Sensor Bar Position:" msgstr "موقعیت سنسور بار:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8616,7 +8630,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8989,11 +9003,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9531,7 +9545,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9545,7 +9559,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9559,29 +9573,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9670,25 +9684,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9730,7 +9744,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9755,7 +9769,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9792,7 +9806,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9805,11 +9819,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9819,39 +9833,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9881,7 +9895,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9918,22 +9932,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9941,13 +9955,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9961,7 +9975,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9975,23 +9989,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10015,16 +10029,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10032,7 +10046,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10365,7 +10379,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10403,7 +10417,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10414,7 +10428,7 @@ msgstr "" msgid "Unknown" msgstr "ناشناخته" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10422,7 +10436,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10432,7 +10446,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10450,7 +10464,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10470,7 +10484,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10753,7 +10767,7 @@ msgstr "دراز نویسی" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10761,8 +10775,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11087,7 +11101,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11462,11 +11476,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11474,11 +11488,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11489,7 +11503,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index 26a4c3af92..3dc10bfe76 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -28,7 +28,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -40,7 +40,7 @@ msgstr "" "Comme les images de disques GameCube contiennent peu de données de contrôle, " "il peut y avoir des problèmes que Dolphin ne peut détecter." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1364,11 +1364,11 @@ msgstr "Tous les appareils" msgid "All files (*)" msgstr "Tous les fichiers (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Les codes de tous les joueurs ont été synchronisés." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Les sauvegardes de tous les joueurs ont été synchronisées." @@ -1690,7 +1690,7 @@ msgstr "Mauvaise valeur entrée" msgid "Bad address provided." msgstr "Mauvaise adresse fournie." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Mauvais dump" @@ -1986,7 +1986,7 @@ msgstr "" "saccades.

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Calculer" @@ -2053,7 +2053,7 @@ msgstr "" "d'exécution !" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2318,6 +2318,20 @@ msgstr "Tous" msgid "Comparand:" msgstr "Comparer :" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Compiler les Shaders avant le démarrage" @@ -2458,7 +2472,7 @@ msgstr "Connexion en cours" msgid "Connection Type:" msgstr "Type de connexion :" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Le contenu {0:08x} est corrompu." @@ -3454,7 +3468,7 @@ msgstr "Dolphin est un émulateur de GameCube et Wii, libre et open-source." msgid "Dolphin is too old for traversal server" msgstr "Dolphin est trop ancien pour le serveur traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3462,7 +3476,7 @@ msgstr "" "Dolphin ne peut vérifier les fichiers TGC typiques, car ce ne sont pas des " "dumps de disques." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin ne peut vérifier les disques non licenciés." @@ -3801,11 +3815,11 @@ msgstr "Éjecter le disque" msgid "Embedded Frame Buffer (EFB)" msgstr "Buffer d'image embarqué (Embedded Frame Buffer - EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Vide" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Thread d'émulation déjà en cours d'exécution" @@ -4213,11 +4227,11 @@ msgstr "Erreur lors du traitement des données." msgid "Error reading file: {0}" msgstr "Erreur de lecture du fichier : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Erreur lors de la synchronisation des cheat codes !" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Erreur lors de la synchronisation des données !" @@ -4233,31 +4247,31 @@ msgstr "" "Erreur : Après \"{0}\", trouvé {1} ({2:#x}) au lieu d'un marqueur de " "sauvegarde {3} ({4:#x}). Abandon du chargement de la sauvegarde d'état." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Erreur : GBA{0} n'a pas pu créer le cœur" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Erreur : GBA{0} n'a pas pu lire le BIOS dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Erreur : GBA{0} n'a pas pu lire la ROM dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Erreur : GBA{0} n'a pas pu charger la sauvegarde dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir le BIOS dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir la ROM dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir la sauvegarde dans {1}" @@ -4283,11 +4297,11 @@ msgstr "" "chargées. Les jeux peuvent ne pas afficher les polices correctement, ou " "planter." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Des erreurs ont été trouvées dans {0} blocs de la partition n°{1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Des erreurs ont été trouvées dans {0} blocs inutilisés de la partition n°{1}." @@ -4533,7 +4547,7 @@ msgstr "Impossible d'ajouter cela au fichier de signature '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Impossible d'obtenir une interface pour l'accès direct Bluetooth : {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Impossible de se connecter à Redump.org" @@ -4765,7 +4779,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Impossible d'ouvrir le fichier source \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4775,8 +4789,8 @@ msgstr "" "Vérifiez que vous avez les permissions d'écriture dans le dossier de " "destination et que le média peut être écrit." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Impossible de traiter les données de Redump.org" @@ -4793,7 +4807,7 @@ msgid "Failed to read from file." msgstr "Impossible de lire le fichier." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Impossible de lire depuis le fichier source \"{0}\"." @@ -4899,7 +4913,7 @@ msgid "Failed to write savefile to disk." msgstr "Impossible d'écrire le fichier de sauvegarde sur le disque." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5692,7 +5706,7 @@ msgstr "Gio" msgid "Golf Mode" msgstr "Mode Golf" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Dump OK" @@ -5818,7 +5832,7 @@ msgstr "Masquer les sessions incompatibles" msgid "Hide Remote GBAs" msgstr "Masquer les GBA distantes" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Haute" @@ -6337,7 +6351,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Erreur interne LZO - échec de la compression" @@ -6346,7 +6360,7 @@ msgstr "Erreur interne LZO - échec de la compression" msgid "Internal LZO Error - decompression failed" msgstr "Erreur LZO interne - échec de la décompression" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6354,7 +6368,7 @@ msgstr "" "Erreur interne LZO - échec de la décompression ({0}) ({1}, {2}) \n" "Essayez de charger à nouveau l'état" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erreur interne LZO - échec de lzo_init()" @@ -6546,7 +6560,7 @@ msgstr "Cache de registre JIT désactivé" msgid "JIT SystemRegisters Off" msgstr "JIT SystemRegisters Off" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6976,7 +6990,7 @@ msgstr "Boucle" msgid "Lost connection to NetPlay server..." msgstr "Connexion au serveur NetPlay perdue !" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Faible" @@ -7071,7 +7085,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Ceci peut ralentir le Menu Wii et quelques jeux." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Moyen" @@ -7495,11 +7509,11 @@ msgstr "Aucun chemin trouvé dans le fichier M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Aucune fonction restante possible. Réinitialiser." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Aucun problème n'a été trouvé." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7522,7 +7536,7 @@ msgstr "Aucun enregistrement chargé." msgid "No save data found." msgstr "Aucune donnée de sauvegarde trouvée" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Pas de fichier undo.dtm trouvé, abandon de l'annulation de chargement d'état " @@ -8115,7 +8129,7 @@ msgstr "Privée et publique" msgid "Problem" msgstr "Problème" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8123,7 +8137,7 @@ msgstr "" "Des problèmes d'une haute importance ont été trouvés. Le jeu ne fonctionnera " "probablement pas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8131,7 +8145,7 @@ msgstr "" "Des problèmes de faible importance ont été trouvés. Ils n'empêcheront " "probablement pas le jeu de fonctionner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8338,7 +8352,7 @@ msgstr "" "

Dans le doute, sélectionnez Aucune." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "État de Redump.org :" @@ -9155,9 +9169,9 @@ msgstr "Police sélectionnée" msgid "Selected controller profile does not exist" msgstr "Le profil de contrôleur sélectionné n'existe pas" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9263,7 +9277,7 @@ msgstr "Envoyer" msgid "Sensor Bar Position:" msgstr "Position de la Sensor Bar :" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9368,7 +9382,7 @@ msgstr "" msgid "Settings" msgstr "Réglages" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory : Impossible de créer le fichier setting.txt" @@ -9768,11 +9782,11 @@ msgstr "Table des sockets" msgid "Software Renderer" msgstr "Rendu logiciel" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Des données n'ont pu être lues." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10350,7 +10364,7 @@ msgstr "" "La version minimum du loader DFF ({0}) est supérieure à la version de ce " "lecteur FIFO ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "Le table de hash H3 pour la partition {0} n'est pas correcte." @@ -10364,7 +10378,7 @@ msgstr "Le fichier IPL n'est pas connu comme un dump correct. (CRC32 : {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "La partition des Chefs-d'œuvre est manquante." @@ -10380,7 +10394,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "La NAND a été réparée." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10390,15 +10404,15 @@ msgstr "" "vers la carte SD, le menu système de la Wii ne démarrera plus et refusera " "également de le recopier ou le redéplacer vers la NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "La partition des chaînes est manquante." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "La partition des données est manquante." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10408,7 +10422,7 @@ msgstr "" "les temps de chargement. Vous ne pourrez pas partager vos enregistrements " "d'entrées ni utiliser NetPlay avec une personne utilisant un bon dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10517,26 +10531,26 @@ msgstr "" "Dolphin pour les cartes mémoires. Veuillez renommer ce fichier en %2, %3 ou " "%4, correspondant à la région des fichiers de sauvegarde qu'il contient." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Le système de fichiers n'est pas valide ou ne peut être lu." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Le format dans lequel l'image-disque est sauvegardée n'indique pas sa taille." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "L'ID du jeu est incohérent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "L'ID du jeu est anormalement court." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "L'ID du jeu est {0} au lieu de {1}" @@ -10588,7 +10602,7 @@ msgstr "" "Le code de l'hôte est trop long.\n" "Veuillez vérifier que le code est correct." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "La partition d'installation est manquante." @@ -10620,7 +10634,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Le jeu enregistré ({0}) n'est pas le même que le jeu sélectionné ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10668,7 +10682,7 @@ msgstr "" "'Non'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "L'index de la clé commune spécifiée est {0} au lieu de {1}." @@ -10681,11 +10695,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "La carte mémoire cible contient déjà un fichier nommé \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Le ticket n'est pas correctement signé." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Le type de partition ne peut être lu." @@ -10697,40 +10711,40 @@ msgstr "" "La mise à jour a été annulée. Il est vivement recommandé de la terminer afin " "d'éviter des conflits de versions du logiciel système." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partition de mise à jour ne contient pas l'IOS utilisé par ce titre." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "La partition des mises à jour est manquante." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "La partition des mises à jour n'est pas à sa position normale." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "La partition n°{0} n'a pas de système de fichiers valide." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "La partition n°{0} ne semble pas contenir de données valides." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "La partition n°{0} n'est pas correctement signée." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "La partition n°{0} n'est pas correctement alignée." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Il y a trop de partitions dans la première table de partitions." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Il n'y a rien à annuler !" @@ -10764,7 +10778,7 @@ msgstr "Ce code Gecko ne contient aucune ligne." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10806,16 +10820,16 @@ msgstr "" msgid "This cannot be undone!" msgstr "Ceci est irréversible !" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "L'image-disque de débug a la taille d'une image d'un disque commercialisé." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "L'image du disque n'a pas une taille habituelle." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10825,7 +10839,7 @@ msgstr "" "de chargement plus longs. Vous ne pourrez pas partager vos enregistrements " "d'entrées ni utiliser NetPlay avec une personne utilisant un bon dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10837,7 +10851,7 @@ msgstr "" "peut correspondre au CRC32 d'un bon dump même si les fichiers ne sont pas " "identiques." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10846,7 +10860,7 @@ msgstr "" "de dump a sauvegardé l'image-disque en plusieurs parties, vous devez les " "rassembler en un seul fichier." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10863,7 +10877,7 @@ msgstr "Ce fichier ne contient pas de système de fichiers Wii valide." msgid "This file does not look like a BootMii NAND backup." msgstr "Ce fichier ne ressemble pas à une sauvegarde BootMii de la NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10885,11 +10899,11 @@ msgstr "" "en charge. Par conséquent, vous pourrez rencontrer des bugs ou blocages " "pendant l'émulation de ce jeu." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Ceci est un dump incorrect." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10897,7 +10911,7 @@ msgstr "" "C'est un mauvais dump. Cela ne veut pas forcément dire que le jeu ne va pas " "fonctionner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10905,7 +10919,7 @@ msgstr "" "C'est un bon dump, d'après le site Redump.org ; mais Dolphin a repéré des " "problèmes. Ceci peut être un bug dans Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Ceci est un dump correct." @@ -10935,16 +10949,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Ce titre ne peut pas être démarré." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Ce titre est réglé pour utiliser un IOS qui n'est pas valide." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Ce titre est réglé pour utiliser une clé partagée non valide." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10956,7 +10970,7 @@ msgstr "" "\n" "DSPHLE : ucode inconnu (CRC = {0:08x}) - forçage de AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11332,7 +11346,7 @@ msgstr "" msgid "Unable to read file." msgstr "Impossible de lire le fichier." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Impossible d'écrire vers le fichier {0}" @@ -11372,7 +11386,7 @@ msgstr "" msgid "United States" msgstr "États-Unis" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11383,7 +11397,7 @@ msgstr "États-Unis" msgid "Unknown" msgstr "Inconnu" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Commande DVD inconnue {0:08x} - erreur fatale" @@ -11391,7 +11405,7 @@ msgstr "Commande DVD inconnue {0:08x} - erreur fatale" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Message SYNC_CODES inconnu reçu avec l'id : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11403,7 +11417,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Message SYNC_SAVE_DATA inconnu reçu avec l'ID : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11423,7 +11437,7 @@ msgstr "Auteur inconnu" msgid "Unknown data type" msgstr "Type de données inconnu" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Disque inconnu" @@ -11443,7 +11457,7 @@ msgstr "Erreur inconnue." msgid "Unknown message received with id : {0}" msgstr "Reception d'un message inconnu avec l'ID : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Message inconnu avec l'ID {0} reçu du joueur {1}. Exclusion du joueur !" @@ -11784,7 +11798,7 @@ msgstr "Niveau de détail" msgid "Verify" msgstr "Vérifier" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Vérifier l'intégrité" @@ -11792,8 +11806,8 @@ msgstr "Vérifier l'intégrité" msgid "Verify certificates" msgstr "Vérifier les certificats" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Vérification..." @@ -12196,7 +12210,7 @@ msgstr "Entrée TAS %1 pour Wii - Wiimote + Nunchuk" msgid "Wii and Wii Remote" msgstr "Wii et Wiimote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Données Wii pas encore publiques" @@ -12620,11 +12634,11 @@ msgstr "non aligné" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Chefs-d'œuvre)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12632,11 +12646,11 @@ msgstr "{0} (NKit)" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "IPL {0} trouvé dans le dossier {1}. Le disque peut ne pas être reconnu" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} n'a pas pu synchroniser les codes." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} n'a pas pu synchroniser." @@ -12649,7 +12663,7 @@ msgstr "" "Vérifiez vos droits d'écriture ou déplacez le fichier hors de Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocs sur {1}. Ratio de compression : {2}%" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index 5754edb7a5..1e00f938a6 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1263,11 +1263,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1572,7 +1572,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1858,7 +1858,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1914,7 +1914,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2161,6 +2161,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2301,7 +2315,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3182,13 +3196,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3496,11 +3510,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emu Thread je već pokrenut" @@ -3855,11 +3869,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3873,31 +3887,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3917,11 +3931,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4146,7 +4160,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4353,15 +4367,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4378,7 +4392,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4473,7 +4487,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5190,7 +5204,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5311,7 +5325,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5749,7 +5763,7 @@ msgid "Interface" msgstr "Sučelje" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Interna LZO pogreška - komprimiranje nije uspjelo" @@ -5758,13 +5772,13 @@ msgstr "Interna LZO pogreška - komprimiranje nije uspjelo" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interni LZO Error - lzo_init() neuspjeh" @@ -5954,7 +5968,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6364,7 +6378,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6454,7 +6468,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6852,11 +6866,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6875,7 +6889,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7444,19 +7458,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7652,7 +7666,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8447,9 +8461,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "Odabrani profil kontrolera ne postoji." -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8523,7 +8537,7 @@ msgstr "Poslati" msgid "Sensor Bar Position:" msgstr "Pozicija Senzora:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8616,7 +8630,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8989,11 +9003,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9531,7 +9545,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9545,7 +9559,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9559,29 +9573,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9670,25 +9684,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9730,7 +9744,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9755,7 +9769,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9792,7 +9806,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9805,11 +9819,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9819,39 +9833,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9879,7 +9893,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9914,22 +9928,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9937,13 +9951,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9957,7 +9971,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9971,23 +9985,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10011,16 +10025,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10028,7 +10042,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10361,7 +10375,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10399,7 +10413,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10410,7 +10424,7 @@ msgstr "" msgid "Unknown" msgstr "Nepoznato" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10418,7 +10432,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10428,7 +10442,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10446,7 +10460,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10466,7 +10480,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10749,7 +10763,7 @@ msgstr "Preopširno" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10757,8 +10771,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11083,7 +11097,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11458,11 +11472,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11470,11 +11484,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11485,7 +11499,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index 7e065b2119..0bee01085c 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -29,7 +29,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1264,11 +1264,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1573,7 +1573,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1859,7 +1859,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1915,7 +1915,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2163,6 +2163,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2303,7 +2317,7 @@ msgstr "" msgid "Connection Type:" msgstr "Csatlakozás típusa:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3184,13 +3198,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "A Dolphin túl régi az átjárási szerverhez" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3498,11 +3512,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Beágyazott képkocka puffer (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Üres" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Az emulációs szál már fut" @@ -3862,11 +3876,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3880,31 +3894,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3924,11 +3938,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4153,7 +4167,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4360,15 +4374,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4385,7 +4399,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4480,7 +4494,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5197,7 +5211,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5318,7 +5332,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5756,7 +5770,7 @@ msgid "Interface" msgstr "Felhasználói felület" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Belső LZO hiba - sikertelen tömörítés" @@ -5765,13 +5779,13 @@ msgstr "Belső LZO hiba - sikertelen tömörítés" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Belső LZO hiba - sikertelen lzo_init()" @@ -5962,7 +5976,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6372,7 +6386,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6462,7 +6476,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Talán lassulást okoz a Wii menüben és néhány játéknál." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6860,11 +6874,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6883,7 +6897,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Nem található undo.dtm, állás betöltésének megszakítása a videó " @@ -7454,19 +7468,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7662,7 +7676,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8457,9 +8471,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "A megadott vezérlő profil nem létezik" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8533,7 +8547,7 @@ msgstr "Küldés" msgid "Sensor Bar Position:" msgstr "Érzékelősáv helyzete:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8629,7 +8643,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: setting.txt fájl nem hozható létre" @@ -9002,11 +9016,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9544,7 +9558,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9558,7 +9572,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9572,29 +9586,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9683,25 +9697,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9743,7 +9757,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9768,7 +9782,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9805,7 +9819,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9818,11 +9832,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9832,39 +9846,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Nincs mit visszavonni!" @@ -9894,7 +9908,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9931,22 +9945,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9954,13 +9968,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9974,7 +9988,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9988,23 +10002,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10028,16 +10042,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10045,7 +10059,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10382,7 +10396,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10420,7 +10434,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10431,7 +10445,7 @@ msgstr "" msgid "Unknown" msgstr "Ismeretlen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10439,7 +10453,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10449,7 +10463,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10467,7 +10481,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10487,7 +10501,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10771,7 +10785,7 @@ msgstr "Rézletesség" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10779,8 +10793,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11105,7 +11119,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11481,11 +11495,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11493,11 +11507,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11508,7 +11522,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/it.po b/Languages/po/it.po index c7058ace0b..a28147f4a7 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? " "1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgstr "" "Poiché le immagini disco GameCube contengono pochi dati di controllo, " "potrebbero esserci problemi che Dolphin non è in grado di rilevare." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1356,11 +1356,11 @@ msgstr "Tutti i dispositivi" msgid "All files (*)" msgstr "Tutti i file (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Tutti i codici dei giocatori sono sincronizzati." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Tutti i salvataggi dei giocatori sono sincronizzati." @@ -1680,7 +1680,7 @@ msgstr "Inserito Valore non Valido" msgid "Bad address provided." msgstr "Indirizzo non valido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Dump invalido" @@ -1977,7 +1977,7 @@ msgstr "" "lo stuttering.

Nel dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Calcola" @@ -2041,7 +2041,7 @@ msgstr "" "Non è possibile avviare una sessione NetPlay se un gioco è in esecuzione!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2301,6 +2301,20 @@ msgstr "Condiviso" msgid "Comparand:" msgstr "Comparando:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Compila gli Shader Prima dell'Avvio" @@ -2441,7 +2455,7 @@ msgstr "Connessione" msgid "Connection Type:" msgstr "Tipo di Connessione" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Il contenuto {0:08x} è corrotto." @@ -3433,7 +3447,7 @@ msgstr "Dolphin è un emulatore di GameCube e Wii gratuito e open-source." msgid "Dolphin is too old for traversal server" msgstr "Dolphin è troppo vecchio per il server traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3441,7 +3455,7 @@ msgstr "" "Dolphin non è in grado di verificare correttamente i file TGC, in quanto non " "sono dump di dischi effettivi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin non è in grado di verificare dischi senza licenza." @@ -3778,11 +3792,11 @@ msgstr "Espelli Disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Vuoto" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Thread dell'Emulatore già in esecuzione" @@ -4185,11 +4199,11 @@ msgstr "Errore processando i dati." msgid "Error reading file: {0}" msgstr "Errore durante la lettura del file: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Errore sincronizzando i cheat code!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Errore sincronizzando i dati di salvataggio!" @@ -4205,31 +4219,31 @@ msgstr "" "Errore: Dopo \"{0}\", trovato {1} ({2:#x}) invece del save marker {3} ({4:" "#x}). Interruzione del caricamento dello stato di gioco..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Errore: GBA{0} non è riuscito a creare il core" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare il BIOS in {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare la ROM in {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare il salvataggio in {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire il BIOS in {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire la ROM in {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire il salvataggio in {1}" @@ -4254,11 +4268,11 @@ msgstr "" "caricati. I giochi potrebbero non mostrare correttamente i caratteri, o " "crashare." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Sono stati trovati errori in {0} blocchi nella partizione {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" "Sono stati trovati errori in {0} blocchi inutilizzati nella partizione {1}." @@ -4502,7 +4516,7 @@ msgstr "Impossibile aggiungere il file di signature '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Impossibile richiedere l'interfaccia per il ponte BT: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Impossibile connettersi a Redump.org" @@ -4735,7 +4749,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Fallita l'apertura del file di input \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4745,8 +4759,8 @@ msgstr "" "Controlla di avere i permessi di scrittura nella cartella di destinazione e " "che sia possibile scrivere sul dispositivo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Fallito parsing dei dati di Redump.org" @@ -4763,7 +4777,7 @@ msgid "Failed to read from file." msgstr "Accesso non riuscito al file." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Fallita la lettura dal file di input \"{0}\"." @@ -4868,7 +4882,7 @@ msgid "Failed to write savefile to disk." msgstr "Impossibile scrivere il salvataggio su disco." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5656,7 +5670,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Modalità Golf" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Buon dump" @@ -5782,7 +5796,7 @@ msgstr "Nascondi Sessioni Incompatibili" msgid "Hide Remote GBAs" msgstr "Nascondi GBA Remoti" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Alta" @@ -6295,7 +6309,7 @@ msgid "Interface" msgstr "Interfaccia" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Errore Interno LZO - compressione non riuscita" @@ -6304,7 +6318,7 @@ msgstr "Errore Interno LZO - compressione non riuscita" msgid "Internal LZO Error - decompression failed" msgstr "Errore Interno LZO - decompressione non riuscita" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6312,7 +6326,7 @@ msgstr "" "Errore Interno LZO - decompressione non riuscita ({0}) ({1}, {2})\n" "Prova a caricare di nuovo lo stato di salvataggio" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Errore Interno LZO - lzo_init() fallito" @@ -6504,7 +6518,7 @@ msgstr "Registro Cache JIT Off" msgid "JIT SystemRegisters Off" msgstr "JIT SystemRegisters Off" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6932,7 +6946,7 @@ msgstr "Loop" msgid "Lost connection to NetPlay server..." msgstr "Persa la connessione al server NetPlay..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Bassa" @@ -7028,7 +7042,7 @@ msgstr "" "Potrebbe causare rallentamenti all'interno del Menu Wii e in alcuni giochi." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Medio" @@ -7452,11 +7466,11 @@ msgstr "Non sono stati trovati percorsi nel file M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Non sono rimaste funzioni valide. Reset." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Non sono stati rilevati problemi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7479,7 +7493,7 @@ msgstr "Nessuna registrazione caricata." msgid "No save data found." msgstr "Non sono stati trovati dati di salvataggio." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Non è stato possibile trovare il file undo.dtm, l'annullamento del " @@ -8069,7 +8083,7 @@ msgstr "Privato e Pubblico" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8077,7 +8091,7 @@ msgstr "" "Sono stati rilevati problemi di alta severità. Il gioco molto probabilmente " "non funzionerà." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8085,7 +8099,7 @@ msgstr "" "Sono stati rilevati problemi di bassa severità. Probabilmente non " "influenzeranno il gioco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8289,7 +8303,7 @@ msgstr "" "applicato anche alle luci, agli effetti di shader e alle texture." "

Nel dubbio, seleziona Nessuno." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Stato di Redump.org:" @@ -9102,9 +9116,9 @@ msgstr "Font Selezionato" msgid "Selected controller profile does not exist" msgstr "Il profilo controller selezionato non esiste" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9210,7 +9224,7 @@ msgstr "Invia" msgid "Sensor Bar Position:" msgstr "Posizione della Sensor Bar: " -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9315,7 +9329,7 @@ msgstr "" msgid "Settings" msgstr "Impostazioni" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Impossibile creare il file setting.txt" @@ -9710,11 +9724,11 @@ msgstr "Tabella Socket" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Non è stato possibile leggere alcuni dati." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10289,7 +10303,7 @@ msgstr "" "La versinoe minima del loader DFF ({0}) supera la versione di questo Player " "FIFO ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "L'hash table H3 della partizione {0} non è corretta." @@ -10303,7 +10317,7 @@ msgstr "Il file IPL non è un dump conosciuto ben formato. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Le partizioni Capolavori sono assenti." @@ -10319,7 +10333,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "La NAND è stata riparata." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10329,15 +10343,15 @@ msgstr "" "Scheda SD, il Menu di Sistema Wii non si avvierà più, e non sarà più " "possibile copiarlo o rispostarlo sulla NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "La partizione del canale è assente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "La partizione dati è assente" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10348,7 +10362,7 @@ msgstr "" "registrazioni degli input o usare il NetPlay con chi possiede un dump " "corretto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10457,11 +10471,11 @@ msgstr "" "card. Rinomina questo file in %2, %3 o %4 per corrispondere alla regione dei " "salvataggi presenti all'interno." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Il filesystem non è valido o è illeggibile." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10469,15 +10483,15 @@ msgstr "" "Il formato con cui è stata salvata l'immagine disco non contiene la " "dimensione stessa dell'immagine" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "L'ID del gioco non è consistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "L'ID del gioco è insolitamente breve." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "L'ID del gioco è {0} ma dovrebbe essere {1}." @@ -10529,7 +10543,7 @@ msgstr "" "Il codice host è troppo lungo.\n" "Controlla di avere il codice corretto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "La partizione di installazione è assente" @@ -10559,7 +10573,7 @@ msgstr "Il profilo '%1' non esiste" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Il gioco registrato ({0}) non coincide con il gioco selezionato ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10604,7 +10618,7 @@ msgstr "" "Vuoi davvero abilitare il rendering software? Nel dubbio, seleziona 'No'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" "L'indice della chiave condivisa specificata è {0} ma dovrebbe essere {1}." @@ -10618,11 +10632,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "La memory card di destinazione contiene già un file \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Il ticket non è correttamente firmato." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Impossibile leggere il tipo di una partizione." @@ -10634,41 +10648,41 @@ msgstr "" "L'aggiornamento è stato annullato. È altamente consigliato di terminarlo per " "evitare versioni di sistema inconsistenti." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "La partizione d'aggiornamento non contiene l'IOS usato da questo titolo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "La partizione di aggiornamento è assente" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" "La partizione di aggiornamento non si trova nella posizione predefinita." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "La partizione {0} non contiene un file system valido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "La partizione {0} non sembra contenere dati validi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "La partizione {0} non è firmata correttamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "La partizione {0} non è correttamente allineata." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Ci sono troppe partizioni nella prima tabella delle partizioni." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Non c'è nulla da annullare!" @@ -10702,7 +10716,7 @@ msgstr "Questo Codice Gecko non contiene alcuna riga." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10743,17 +10757,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Impossibile annullare l'operazione!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "La dimensione di questa immagine disco di debug è quella di un'immagine " "disco retail." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Questa immagine disco ha una dimensione insolita." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10764,7 +10778,7 @@ msgstr "" "registrazioni degli input o usare il NetPlay con chi possiede un dump " "corretto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10775,7 +10789,7 @@ msgstr "" "potrebbe diventarlo una volta riconvertito. Il CRC32 di questo file potrebbe " "corrispondere al CRC32 di un buon dump anche se i file non sono identici." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10784,7 +10798,7 @@ msgstr "" "programma di dump ha salvato l'immagine in più parti, devi riunirle in un " "unico file." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10800,7 +10814,7 @@ msgstr "Questo file non contiene un filesystem Wii valido." msgid "This file does not look like a BootMii NAND backup." msgstr "Questo file non sembra un backup NAND BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10821,11 +10835,11 @@ msgstr "" "giocato correttamente, ma la tua scheda grafica o i tuoi driver non la " "supportano, per cui riscontrerai dei bug giocando." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Questo dump è invalido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10833,7 +10847,7 @@ msgstr "" "Questo è un dump invalido. Non vuol dire che il gioco non funzionerà " "correttamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10841,7 +10855,7 @@ msgstr "" "Questo è un buon dump secondo Redump.org, ma Dolphin ha riscontrato dei " "problemi. Potrebbe essere un bug in Dolphin stesso." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Questo è un buon dump." @@ -10871,16 +10885,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Impossibile avviare questo titolo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Questo titolo è impostato per utilizzare un IOS non valido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Questo titolo è impostato per utilizzare una common key non valida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10892,7 +10906,7 @@ msgstr "" "\n" "DSPHLE: Ucode sconosciuto (CRC = {0:08x}) - AX forzato" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11266,7 +11280,7 @@ msgstr "" msgid "Unable to read file." msgstr "Impossibile leggere il file." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Impossibile scrivere su file {0}" @@ -11307,7 +11321,7 @@ msgstr "" msgid "United States" msgstr "Stati Uniti" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11318,7 +11332,7 @@ msgstr "Stati Uniti" msgid "Unknown" msgstr "Sconosciuto" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando DVD {0:08x} sconosciuto - errore fatale" @@ -11326,7 +11340,7 @@ msgstr "Comando DVD {0:08x} sconosciuto - errore fatale" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Messaggio SYNC_CODES sconosciuto ricevuto con id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11338,7 +11352,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Messaggio SYNC_SAVE_DATA sconosciuto ricevuto con id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11358,7 +11372,7 @@ msgstr "Autore sconosciuto" msgid "Unknown data type" msgstr "Tipo di dato sconosciuto" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Disco sconosciuto" @@ -11378,7 +11392,7 @@ msgstr "Errore sconosciuto." msgid "Unknown message received with id : {0}" msgstr "Ricevuto messaggio sconosciuto con id : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Ricevuto messaggio sconosciuto con id:{0} ricevuto dal giocatore:{1} " @@ -11715,7 +11729,7 @@ msgstr "Verbosità" msgid "Verify" msgstr "Verifica" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verifica Integrità" @@ -11723,8 +11737,8 @@ msgstr "Verifica Integrità" msgid "Verify certificates" msgstr "Verifica certificati" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verifica in corso" @@ -12120,7 +12134,7 @@ msgstr "Wii TAS Input %1 - Wii Remote + Nunchuk" msgid "Wii and Wii Remote" msgstr "Wii e Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Dati Wii non ancora pubblici" @@ -12542,11 +12556,11 @@ msgstr "disallineato" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Capolavori)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12556,11 +12570,11 @@ msgstr "" "{0} IPL trovato nella directory {1}. Il disco potrebbe non venire " "riconosciuto" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} ha fallito la sincronizzazione dei codici." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} ha fallito la sincronizzazione." @@ -12574,7 +12588,7 @@ msgstr "" "fuori di Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocchi su {1}. Rapporto di compressione {2}%" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index 32d0facecf..62014dd3c3 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2022\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -29,7 +29,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -41,7 +41,7 @@ msgstr "" "ゲームキューブ用ゲームデータには整合性チェックのためのデータがほとんど含まれ" "ていないため、Dolphinでは検出できない問題があるかもしれません。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1354,11 +1354,11 @@ msgstr "すべてのデバイス" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "すべてのプレイヤーのチートコードは同期されました" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "すべてのプレイヤーのセーブデータは同期されました" @@ -1677,7 +1677,7 @@ msgstr "" msgid "Bad address provided." msgstr "Bad address provided." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Bad dump" @@ -1970,7 +1970,7 @@ msgstr "" "

よく分からなければ、チェックを入れないでください。" "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "計算する" @@ -2030,7 +2030,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "ゲーム実行中はネットプレイセッションを開始できません!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2284,6 +2284,20 @@ msgstr "全般" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "ゲーム開始前にシェーダをコンパイルする" @@ -2424,7 +2438,7 @@ msgstr "" msgid "Connection Type:" msgstr "接続方式:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Content {0:08x} is corrupt." @@ -3358,7 +3372,7 @@ msgstr "Dolphin is a free and open-source GameCube and Wii emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphinのバージョンが古すぎます" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3366,7 +3380,7 @@ msgstr "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin is unable to verify unlicensed discs." @@ -3691,11 +3705,11 @@ msgstr "ディスクの取り出し" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (内蔵フレームバッファ)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "空き" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "エミュレーションスレッドはすでに稼働中です" @@ -4084,11 +4098,11 @@ msgstr "データ処理中にエラーが発生しました" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "セーブデータ同期中にエラー発生!" @@ -4102,31 +4116,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Error: GBA{0} failed to create core" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4150,11 +4164,11 @@ msgstr "" "エラー: Windows-1252フォントにアクセスを試みましたが読み込めませんでした。" "ゲームはフォントを正しく表示できないか、クラッシュするでしょう" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Errors were found in {0} blocks in the {1} partition." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Errors were found in {0} unused blocks in the {1} partition." @@ -4381,7 +4395,7 @@ msgstr "Failed to append to signature file '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Redump.org に接続できませんでした" @@ -4593,15 +4607,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Failed to parse Redump.org data" @@ -4618,7 +4632,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4717,7 +4731,7 @@ msgid "Failed to write savefile to disk." msgstr "セーブファイルのディスクへの書き込みに失敗" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5474,7 +5488,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Golf Mode" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Good dump" @@ -5599,7 +5613,7 @@ msgstr "互換性のないセッションを隠す" msgid "Hide Remote GBAs" msgstr "リモート先のGBAを隠す" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "大" @@ -6089,7 +6103,7 @@ msgid "Interface" msgstr "表示" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Internal LZO Error - compression failed" @@ -6098,7 +6112,7 @@ msgstr "Internal LZO Error - compression failed" msgid "Internal LZO Error - decompression failed" msgstr "Internal LZO Error - compression failed" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6106,7 +6120,7 @@ msgstr "" "Internal LZO Error - decompression failed ({0}) ({1}, {2})\n" "もう一度ステートロードを試してください" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" @@ -6296,7 +6310,7 @@ msgstr "JIT Register Cache Off" msgid "JIT SystemRegisters Off" msgstr "JIT SystemRegisters Off" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6723,7 +6737,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "ネットプレイサーバーへの接続が失われました..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "小" @@ -6819,7 +6833,7 @@ msgstr "" "ます" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "中" @@ -7227,11 +7241,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "問題は見つかりませんでした" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7253,7 +7267,7 @@ msgstr "記録ファイルが読み込まれていません" msgid "No save data found." msgstr "セーブデータが見つかりませんでした" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "undo.dtm ファイルが見つかりません。desync を防止するためステートロードの取消" @@ -7838,21 +7852,21 @@ msgstr "すべて" msgid "Problem" msgstr "問題点" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" "影響度「大」の問題が見つかりました。おそらくこのゲームは上手く動作しません" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" "影響度「小」の問題が見つかりました。おそらくゲームプレイに支障はないでしょう" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8058,7 +8072,7 @@ msgstr "" "るようになります。

よく分からなければ、【なし】のま" "まにしておいてください。" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.orgのステータス:" @@ -8862,9 +8876,9 @@ msgstr "選択したフォント" msgid "Selected controller profile does not exist" msgstr "選択されたプロファイルは存在しません" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8967,7 +8981,7 @@ msgstr "送信" msgid "Sensor Bar Position:" msgstr "センサーバーの位置" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9063,7 +9077,7 @@ msgstr "" msgid "Settings" msgstr "設定" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Can't create setting.txt file" @@ -9456,11 +9470,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Some of the data could not be read." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10017,7 +10031,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "The H3 hash table for the {0} partition is not correct." @@ -10031,7 +10045,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "The Masterpiece partitions are missing." @@ -10047,29 +10061,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NANDの修復に成功しました" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "The channel partition is missing." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "The data partition is missing." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10164,11 +10178,11 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "The filesystem is invalid or could not be read." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10176,15 +10190,15 @@ msgstr "" "The format that the disc image is saved in does not store the size of the " "disc image." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "The game ID is inconsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "The game ID is unusually short." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "The game ID is {0} but should be {1}." @@ -10228,7 +10242,7 @@ msgstr "" "ホストコードが長すぎます\n" "正しいホストコードかどうか確認して再入力してください" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "The install partition is missing." @@ -10253,7 +10267,7 @@ msgstr "選択されたプロファイル '%1' は存在しません" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10293,7 +10307,7 @@ msgstr "" "本当に使用しますか?よく分からなければ、選択しないでください。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "The specified common key index is {0} but should be {1}." @@ -10307,11 +10321,11 @@ msgstr "" "インポート先のメモリーカードには既にこのファイルのデータが存在します%n\"%1\"" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "The ticket is not correctly signed." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "The type of a partition could not be read." @@ -10323,39 +10337,39 @@ msgstr "" "更新がキャンセルされました。システムバージョンの不一致を避けるため、最新版へ" "の更新を強く推奨します" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "The update partition does not contain the IOS used by this title." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "The update partition is missing." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "The update partition is not at its normal position." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "The {0} partition does not have a valid file system." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "The {0} partition does not seem to contain valid data." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "The {0} partition is not correctly signed." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "The {0} partition is not properly aligned." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "There are too many partitions in the first partition table." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "取り消すものがありません!" @@ -10386,7 +10400,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10425,22 +10439,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "元に戻すことはできません!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "This debug disc image has the size of a retail disc image." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "This disc image has an unusual size." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10448,13 +10462,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10468,7 +10482,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "このファイルはBootMii NANDバックアップではないようです" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10485,11 +10499,11 @@ msgstr "" "ドもしくはドライバでは対応していないようです。そのためプレイ中にバグやフリー" "ズと遭遇する可能性があります。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "This is a bad dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10497,7 +10511,7 @@ msgstr "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10505,7 +10519,7 @@ msgstr "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "This is a good dump." @@ -10533,16 +10547,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "このタイトルは起動できません" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "This title is set to use an invalid IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "This title is set to use an invalid common key." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10554,7 +10568,7 @@ msgstr "" "\n" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10911,7 +10925,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10950,7 +10964,7 @@ msgstr "" msgid "United States" msgstr "米国" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10961,7 +10975,7 @@ msgstr "米国" msgid "Unknown" msgstr "フィルタ無し" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10969,7 +10983,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10979,7 +10993,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10997,7 +11011,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Unknown disc" @@ -11017,7 +11031,7 @@ msgstr "Unknown error." msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -11313,7 +11327,7 @@ msgstr "出力するログのレベル設定" msgid "Verify" msgstr "整合性" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "整合性チェックを実行" @@ -11321,8 +11335,8 @@ msgstr "整合性チェックを実行" msgid "Verify certificates" msgstr "Verify certificates" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "整合性チェック中..." @@ -11660,7 +11674,7 @@ msgstr "Wii TAS Input %1 - Wiiリモコン + ヌンチャク" msgid "Wii and Wii Remote" msgstr "WiiとWiiリモコン" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii data is not public yet" @@ -12042,11 +12056,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -12054,11 +12068,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -12069,7 +12083,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index 658d459a38..9d1aa3bf3c 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -22,7 +22,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -34,7 +34,7 @@ msgstr "" "게임큐브 디스크 이미지들이 작은 검증 데이터를 담고 있어서, 돌핀이 감지할 수 " "없는 문제들이 있을 수도 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1346,11 +1346,11 @@ msgstr "모든 장치" msgid "All files (*)" msgstr "모든 파일 (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "모든 플레이어의 코드가 동기화되었습니다." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "모든 플레이어의 저장이 동기화되었습니다." @@ -1668,7 +1668,7 @@ msgstr "안 좋은 값이 주어짐" msgid "Bad address provided." msgstr "안 좋은 주소가 제공되었습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "안 좋은 덤프" @@ -1962,7 +1962,7 @@ msgstr "" "

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "계산" @@ -2022,7 +2022,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "게임이 여전히 구동되는 동안에 넷플레이 세션을 시작할 수 없습니다!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2279,6 +2279,20 @@ msgstr "공통" msgid "Comparand:" msgstr "비교대상:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "시작하기 전에 쉐이더들 컴파일" @@ -2419,7 +2433,7 @@ msgstr "연결중" msgid "Connection Type:" msgstr "연결 종류:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "내용 {0:08x} 은 오류입니다." @@ -3395,7 +3409,7 @@ msgstr "돌핀은 무료이고 오픈-소스 게임큐브 및 Wii 에뮬레이 msgid "Dolphin is too old for traversal server" msgstr "횡단 서버에 비해 돌핀이 너무 구 버전입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3403,7 +3417,7 @@ msgstr "" "실제 디스크의 덤프들이 아니기 때문에, 돌핀은 일반 TGC 파일들을 올바르게 검증" "할 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "돌핀은 라이슨스되지 않은 디스크들을 검증할 수 없습니다." @@ -3734,11 +3748,11 @@ msgstr "디스크 꺼내기" msgid "Embedded Frame Buffer (EFB)" msgstr "내장형 프레임 버퍼 (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "비어있음" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "에뮬 쓰레드가 이미 구동중임" @@ -4132,11 +4146,11 @@ msgstr "데이터 처리 에러." msgid "Error reading file: {0}" msgstr "파일 읽기 에러: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "치트 코드들 동기화 에러!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "저장 데이터 동기화 에러!" @@ -4152,31 +4166,31 @@ msgstr "" "오류: \"{0}\" 뒤에, {1} ({2:#x}) 를 발견하였습니다, 저장 표식 {3} ({4:#x}) 대" "신에. 상태 저장 로드를 취소합니다..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "에러: GBA{0} 코어 생성에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "에러: GBA{0} {1} 에서 바이오스 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "에러: GBA{0} {1} 에서 롬 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "에러: GBA{0} {1} 에서 저장 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "에러: GBA{0} {1} 에서 바이오스 열기에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "에러: GBA{0} {1} 에서 롬 열기에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "에러: GBA{0} {1} 에서 저장 열기에 실패했습니다" @@ -4200,11 +4214,11 @@ msgstr "" "오류: Windows-1252 폰트들 접근을 시도하였으나 로드되지 않았습니다. 게임들이 " "제대로 폰트들을 보여주지 않거나 깨짐이 발생할 수 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "{1} 파티션에 {0} 블락들에서 에러들이 발견되었습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "{1} 파티션에 {0} 사용되지 않은 블락들에서 에러들이 발견되었습니다." @@ -4445,7 +4459,7 @@ msgstr "서명 파일 '%1' 에 덧붙이기에 실패했습니다." msgid "Failed to claim interface for BT passthrough: {0}" msgstr "블투 패스쓰루용 인터페이스 요청에 실패했습니다: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Redump.org 연결에 실패했습니다" @@ -4671,7 +4685,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "입력 파일 \"%1\" 열기에 실패했습니다." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4681,8 +4695,8 @@ msgstr "" "타겟 폴더에 쓰기 권한을 가지고 있는지와 미디어가 쓰여질 수 있는지를 확인하세" "요." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Redump.org 데이터 문법분석에 실패했습니다" @@ -4699,7 +4713,7 @@ msgid "Failed to read from file." msgstr "파일에서 읽기에 실패했습니다." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "입력 파일 \"{0}\" 로 부터 읽기에 실패했습니다." @@ -4798,7 +4812,7 @@ msgid "Failed to write savefile to disk." msgstr "저장파일을 디스크에 쓰기를 실패했습니다. " #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5575,7 +5589,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "골프 모드" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "좋은 덤프" @@ -5700,7 +5714,7 @@ msgstr "비호환 세션들 숨기기" msgid "Hide Remote GBAs" msgstr "원격 GBA 숨기기" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "높은" @@ -6203,7 +6217,7 @@ msgid "Interface" msgstr "인터페이스" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "내부 LZO 오류 - 압축 실패했습니다" @@ -6212,7 +6226,7 @@ msgstr "내부 LZO 오류 - 압축 실패했습니다" msgid "Internal LZO Error - decompression failed" msgstr "내부 LZO 오류 - 압축해제를 실패했습니다" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6220,7 +6234,7 @@ msgstr "" "내부 LZO 오류 - 압축풀기 실패했습니다({0}) ({1}, {2}) \n" "상태 로딩을 다시 해보세요" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "내부 LZO 오류 - lzo_init() 실패했습니다" @@ -6410,7 +6424,7 @@ msgstr "JIT 레지스터 캐시 끄기" msgid "JIT SystemRegisters Off" msgstr "JIT 시스템레지스터 끄기" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6837,7 +6851,7 @@ msgstr "루프" msgid "Lost connection to NetPlay server..." msgstr "넷플레이 서버 연결을 잃었습니다..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "낮은" @@ -6931,7 +6945,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Wii 메뉴와 일부 게임에서 느려짐을 유발할지도 모릅니다." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "중간" @@ -7344,11 +7358,11 @@ msgstr "M3U 파일 \"{0}\" 에 경로가 없습니다" msgid "No possible functions left. Reset." msgstr "가능한 함수가 없습니다. 리셋합니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "문제들이 발견되지 않았습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7370,7 +7384,7 @@ msgstr "로드된 녹화가 없습니다." msgid "No save data found." msgstr "발견된 저장 데이터가 없습니다." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "undo.dtm 이 없습니다, 무비 갈림을 막기위해서 상태로드 되돌리기를 취소합니다" @@ -7955,7 +7969,7 @@ msgstr "사설과 공공" msgid "Problem" msgstr "문제" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7963,7 +7977,7 @@ msgstr "" "높은 심각성을 지닌 문제들이 발견되었습니다. 게임이 전혀 작동하지 않을 가능성" "이 높습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7971,7 +7985,7 @@ msgstr "" "낮은 심각성을 지닌 문제들이 발견되었습니다. 게임 구동을 방해할 가능성은 적습" "니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8175,7 +8189,7 @@ msgstr "" "용합니다.

잘 모르겠으면, 없음을 선택하세요." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org 상태:" @@ -8984,9 +8998,9 @@ msgstr "선택된 폰트" msgid "Selected controller profile does not exist" msgstr "선택된 컨트롤러 프로파일이 존재하지 않습니다" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9088,7 +9102,7 @@ msgstr "보내기" msgid "Sensor Bar Position:" msgstr "센서 바 위치:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9191,7 +9205,7 @@ msgstr "" msgid "Settings" msgstr "설정" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "Wii메모리설정: setting.txt 파일을 생성할 수 없음" @@ -9586,11 +9600,11 @@ msgstr "소켓 테이블" msgid "Software Renderer" msgstr "소프트웨어 렌더러" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "데이터의 일부가 읽혀지지 않았습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10158,7 +10172,7 @@ msgid "" msgstr "" "DFF 의 최소 로더 버전 ({0}) 이 이 FIFO 플레이어의 버전 ({1}) 을 초과합니다" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "{0} 파티션에 대한 H3 해쉬 테이블이 올바르지 않습니다." @@ -10172,7 +10186,7 @@ msgstr "IPL 파일이 알려진 좋은 덤프가 아닙니다. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "명작 파티션들이 빠져있습니다." @@ -10188,7 +10202,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND 가 고쳐졌습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10198,15 +10212,15 @@ msgstr "" "면, Wii 시스템 메뉴는 더이상 그것을 시작하지 않고 NAND 로 다시 복사나 이동도 " "거부할 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "채널 파티션이 빠져있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "데이터 파티션이 빠져있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10216,7 +10230,7 @@ msgstr "" "을 줄 것입니다. 입력 녹화들을 공유하거나 좋은 덤프를 사용하는 누군가와 넷플레" "이를 사용하는 것들을 할 수 없을 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10324,26 +10338,26 @@ msgstr "" "는 저장 파일의 지역과 일치하도록 이 파일을 %2, %3, 혹은 %4 로 이름을 바꿔주" "세요." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "파일시스템이 부적합하거나 읽혀질 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "디스크 이미지가 저장되어 있는 포맷이 디스크 이미지 크기를 담고있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "게임 ID 가 일관되지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "게임 ID 가 비정상적으로 짧습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "게임 ID 가 {0} 이지만 {1} 이어야 합니다." @@ -10394,7 +10408,7 @@ msgstr "" "호스트 코드가 너무 깁니다.\n" "올바른 코드인지 다시 확인해 주세요." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "설치 파티션이 빠져있습니다." @@ -10422,7 +10436,7 @@ msgstr "프로파일 '%1' 이 존재하지 않습니다" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "기록된 게임 ({0}) 은 선택된 게임 ({1}) 과 같지 않습니다" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10468,7 +10482,7 @@ msgstr "" "요." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "명시된 공통 키 인덱스는 {0} 입니다 하지만 {1} 이어야 합니다." @@ -10481,11 +10495,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "대상 메모리 카드가 이미 파일 \"%1\" 을 가지고 있습니다." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "티켓이 올바르게 서명되어 있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "파티션 종류가 읽혀질 수 없었습니다." @@ -10497,39 +10511,39 @@ msgstr "" "업데이트가 취소되었습니다. 불안정한 시스템 소프트웨어 버전을 피하기위해 종료" "할 것을 강력히 권장합니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "업데이트 파티션이 이 타이틀에서 사용되는 IOS 를 담고 있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "업데이트 파티션이 빠져있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "업데이트 파티션이 정상적 위치에 있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "{0} 파티션은 적합한 파일 시스템이 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "{0} 파티션은 적합한 데이터를 가지고 있지 않은 것 같습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "{0} 파티션은 올바르게 서명되어 있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "{0} 파티션은 올바르게 정렬되어 있지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "첫 파티션 테이블에 너무 많은 파티션들이 있습니다." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "되돌릴 것이 없습니다!" @@ -10563,7 +10577,7 @@ msgstr "Gecko 코드가 아무 줄도 포함하고 있지 않습니다." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10604,15 +10618,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "이것은 되돌릴 수 없습니다!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "이 디버그 디스크 이미지는 리테일 디스크 이미지 크기를 가지고 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "이 디스크 이미지는 비정상적인 크기입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10622,7 +10636,7 @@ msgstr "" "게 만들 것입니다. 입력 녹화들을 공유하거나 좋은 덤프를 사용하는 누군가와 넷플" "레이를 사용하는 것들을 대체로 할 수 없을 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10634,7 +10648,7 @@ msgstr "" "들이 똑같지는 않더라도 이 파일의 CRC32 가 좋은 덤프의 CRC32 와 매치될지도 모" "릅니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10642,7 +10656,7 @@ msgstr "" "디스크 이미지가 너무 작고 일부 데이터가 부족합니다. 당신의 덤핑 프로그램이 디" "스크 이미지를 여러 부분으로 저장했다면, 한 파일로 통합할 필요가 있습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10658,7 +10672,7 @@ msgstr "이 파일은 적합한 Wii 파일시스템을 지니고 있지 않습 msgid "This file does not look like a BootMii NAND backup." msgstr "이 파일은 BootMii NAND 백업처럼 보이지 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10678,11 +10692,11 @@ msgstr "" "픽 카드나 드라이버가 그것을 지원하지 않습니다. 결과적으로 이 게임을 구동하는 " "동안 버그나 프리징을 겪을 것입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "이것은 안 좋은 덤프입니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10690,7 +10704,7 @@ msgstr "" "이것은 안 좋은 덤프입니다. 이것이 필연적으로 게임이 올바르게 구동되지 않을 것" "이라는 것을 의미하지는 않습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10698,7 +10712,7 @@ msgstr "" "Redump.org 에 따르면 이것은 좋은 덤프입니다, 하지만 돌핀이 문제를 발견했습니" "다. 이것은 돌핀쪽 버그 일지도 모릅니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "이것은 좋은 덤프입니다." @@ -10727,16 +10741,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "이 타이틀은 부팅될 수 없습니다." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "이 타이틀은 부적합 IOS 를 사용하도록 설정되어 있습니다." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "이 타이틀은 부적합 공유 키를 사용하도록 설정되어 있습니다." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10748,7 +10762,7 @@ msgstr "" "\n" "DSPHLE: 알려지지 않은 ucode (CRC = {0:08x}) - 강제 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11113,7 +11127,7 @@ msgstr "" msgid "Unable to read file." msgstr "파일 읽기가 불가능합니다." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "{0} 파일에 쓸 수 없습니다" @@ -11153,7 +11167,7 @@ msgstr "" msgid "United States" msgstr "미국" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11164,7 +11178,7 @@ msgstr "미국" msgid "Unknown" msgstr "알려지지 않음" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "알려지지 않은 DVD 명령 {0:08x} - 치명적 오류" @@ -11172,7 +11186,7 @@ msgstr "알려지지 않은 DVD 명령 {0:08x} - 치명적 오류" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "알려지지 않은 SYNC_CODES 메시지를 받았습니다 id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11184,7 +11198,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "알려지지 않은 SYNC_SAVE_DATA 메시지를 받았습니다 id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11204,7 +11218,7 @@ msgstr "알려지지 않은 저자" msgid "Unknown data type" msgstr "알려지지 않은 데이터 타입" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "알려지지 않은 디스크" @@ -11224,7 +11238,7 @@ msgstr "알려지지 않은 오류." msgid "Unknown message received with id : {0}" msgstr "id : {0} 의 알려지지 않은 메시지를 받았습니다" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "알려지지 않은 메시지 id:{0} 를 플레이어:{1} 로부터 받았습니다 플레이어 강퇴!" @@ -11550,7 +11564,7 @@ msgstr "상세설명" msgid "Verify" msgstr "검증" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "무결성 검증" @@ -11558,8 +11572,8 @@ msgstr "무결성 검증" msgid "Verify certificates" msgstr "증명서 검증" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "검증하기" @@ -11942,7 +11956,7 @@ msgstr "Wii TAS 입력 %1 - Wii 리모트 + 눈챠쿠" msgid "Wii and Wii Remote" msgstr "Wii 와 Wii 리모트" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii 데이터는 아직 공개가 아닙니다" @@ -12360,11 +12374,11 @@ msgstr "정렬되지 않음" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (명작)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12373,11 +12387,11 @@ msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" "{1} 디렉토리에서 {0} IPL이 발견되었습니다. 디스크가 인식되지 않은 것 같습니다" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr " {0} 코드 동기화에 실패했습니다." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} 동기화에 실패했습니다." @@ -12390,7 +12404,7 @@ msgstr "" "쓰기 권한을 검사하거나 파일을 돌핀 밖으로 옮기세요." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{1} 블락들의 {0}. 압축 비율 {2}%" diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 8407ead860..ad0fb68563 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -27,7 +27,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1290,11 +1290,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1599,7 +1599,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1887,7 +1887,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1943,7 +1943,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Tidak dapat memulakan Sesi NetPlay ketika permainan masih berlangsung!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2193,6 +2193,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2333,7 +2347,7 @@ msgstr "" msgid "Connection Type:" msgstr "Jenis Sambungan:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3225,13 +3239,13 @@ msgstr "Dolphin ialah emulator GameCube dan Wii bebas dan bersumber-terbuka." msgid "Dolphin is too old for traversal server" msgstr "Dolphin terlalu tua untuk pelayan traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3539,11 +3553,11 @@ msgstr "Lenting Cakera" msgid "Embedded Frame Buffer (EFB)" msgstr "Penimbal Bingkai Terbenam (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Kosong" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Bebenang Emu sudah berjalan" @@ -3903,11 +3917,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3921,31 +3935,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3969,11 +3983,11 @@ msgstr "" "Ralat: Ketika cuba mencapai fon Windows-1252 tetapi ia tidak dimuatkan. " "Permainan mungkin tidak menunjukkan fon yang betul, atau mengalami kerosakan." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4198,7 +4212,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4407,15 +4421,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4432,7 +4446,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4527,7 +4541,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5246,7 +5260,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5367,7 +5381,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5817,7 +5831,7 @@ msgid "Interface" msgstr "Antaramuka" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Ralat LZO Dalaman - pemampatan gagal" @@ -5826,13 +5840,13 @@ msgstr "Ralat LZO Dalaman - pemampatan gagal" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Ralat LZO Dalaman - lzo_init() gagal" @@ -6022,7 +6036,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6432,7 +6446,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "Sambung dengan pelayan NetPlay terputus..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6522,7 +6536,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Ia menyebabkan kelembapan dalam menu Wii dan sesetengah permainan." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6924,11 +6938,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6947,7 +6961,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Tiada undo.dtm ditemui, menghenti paksa buat asal keadaan muat untuk " @@ -7524,19 +7538,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7732,7 +7746,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8529,9 +8543,9 @@ msgstr "Fon Terpilih" msgid "Selected controller profile does not exist" msgstr "Profil pengawal terpilih tidak wujud" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8605,7 +8619,7 @@ msgstr "Hantar" msgid "Sensor Bar Position:" msgstr "Kedudukan Palang Penderia:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8701,7 +8715,7 @@ msgstr "" msgid "Settings" msgstr "Tetapan" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Tidak dapat cipta fail setting.txt" @@ -9076,11 +9090,11 @@ msgstr "" msgid "Software Renderer" msgstr "Penerap Perisian" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9618,7 +9632,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9632,7 +9646,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9648,29 +9662,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND telah dibaiki." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9763,25 +9777,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9827,7 +9841,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9852,7 +9866,7 @@ msgstr "Profil '%1' tidak wujud" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9889,7 +9903,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9902,11 +9916,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9918,39 +9932,39 @@ msgstr "" "Kemaskini dibatalkan. Adalah disarankan selesaikannya supaya dapat " "menghindari ketidaktepatan versi perisian sistem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Tiada apa hendak dibuat asal!" @@ -9984,7 +9998,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10021,22 +10035,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "Ia tidak boleh dikembalikan!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10044,13 +10058,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10064,7 +10078,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Fail ini tidak kelihatan seperti sandar NAND BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10081,23 +10095,23 @@ msgstr "" "tetapi kad grafik anda atau pemacunya tidak menyokong ia. Hasilnya anda akan " "menghadapi pepijat atau menjadi kaku ketika menjalankan permainan ini." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10123,16 +10137,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Tajuk ini tidak boleh dibutkan." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10140,7 +10154,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10480,7 +10494,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10520,7 +10534,7 @@ msgstr "" msgid "United States" msgstr "Amerika Syarikat" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10531,7 +10545,7 @@ msgstr "Amerika Syarikat" msgid "Unknown" msgstr "Tidak diketahui" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10539,7 +10553,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10549,7 +10563,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10567,7 +10581,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10587,7 +10601,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10874,7 +10888,7 @@ msgstr "Kejelaan" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10882,8 +10896,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11208,7 +11222,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "Wii dan Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11587,11 +11601,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11599,11 +11613,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11614,7 +11628,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index 0b94436f67..0fef730cc3 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -30,7 +30,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -42,7 +42,7 @@ msgstr "" "Fordi GameCube-diskbilledfiler inneholder lite verifikasjonsdata, kan det " "være problemer som Dolphin ikke kan oppdage." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1322,11 +1322,11 @@ msgstr "Alle enheter" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Alle spilleres koder er synkronisert." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Alle spilleres lagringsfiler er synkronisert." @@ -1635,7 +1635,7 @@ msgstr "" msgid "Bad address provided." msgstr "Dårlig adresse oppgitt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Dårlig dump" @@ -1923,7 +1923,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Kalkuler" @@ -1979,7 +1979,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan ikke starte en NetPlay-økt mens et spill er aktivt!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2230,6 +2230,20 @@ msgstr "Felles" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Kompiler shadere før start" @@ -2370,7 +2384,7 @@ msgstr "" msgid "Connection Type:" msgstr "Tilkoblingstype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3267,7 +3281,7 @@ msgstr "Dolphin er en fri og åpen kildekode-basert GameCube og Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel for traverseringsserveren" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3275,7 +3289,7 @@ msgstr "" "Dolphin kan ikke verifisere typiske TGC-filer ordentlig, siden de ikke er " "ripper av faktiske disker." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan ikke verifisere ulisensierte disker." @@ -3583,11 +3597,11 @@ msgstr "Løs ut disk" msgid "Embedded Frame Buffer (EFB)" msgstr "Eksternt bildemellomlager (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emulator-CPU-tråden kjører allerede" @@ -3948,11 +3962,11 @@ msgstr "Feil ved bearbeidelse av data." msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Feil ved synkronisering av juksekoder!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Feil ved synkronisering av lagringsdata!" @@ -3966,31 +3980,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4014,11 +4028,11 @@ msgstr "" "Feil: Prøver å slå opp Windows-1252 skrifttyper, men de er ikke lastet. " "Spill kan potensielt ikke vise skrifttyper riktig, eller krasje." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4245,7 +4259,7 @@ msgstr "Kunne ikke legge til på signaturfil '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4456,15 +4470,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "Mislyktes i å åpne inndatafilen «%1»." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4481,7 +4495,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4579,7 +4593,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5301,7 +5315,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Golfmodus" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "God dump" @@ -5422,7 +5436,7 @@ msgstr "Gjem ikke-kompatible sesjoner" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Høy" @@ -5871,7 +5885,7 @@ msgid "Interface" msgstr "Grensesnitt" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Intern LZO-feil - komprimering mislyktes" @@ -5880,13 +5894,13 @@ msgstr "Intern LZO-feil - komprimering mislyktes" msgid "Internal LZO Error - decompression failed" msgstr "Intern LZO-feil - dekomprimering mislyktes" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-feil - lzo_init() mislyktes" @@ -6076,7 +6090,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "JIT Systemregistre Av" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6490,7 +6504,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "Mistet tilkobling til NetPlay-tjener…" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Lav" @@ -6580,7 +6594,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Kan senke ytelse i Wii-menyen og noen spill." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Middels" @@ -6984,11 +6998,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Ingen problemer ble funnet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7010,7 +7024,7 @@ msgstr "Ingen opptak lastet." msgid "No save data found." msgstr "Ingen lagringsfiler funnet." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Ingen undo.dtm funnet, avbryter angring av lasting av lagringsstadie for å " @@ -7589,7 +7603,7 @@ msgstr "Privat og offentlig" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7597,7 +7611,7 @@ msgstr "" "Problem med høy alvorlighetsgrad funnet. Spillet vil sannsynligvis ikke " "fungere i det hele tatt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -7605,7 +7619,7 @@ msgstr "" "Problem med lav alvorlighetsgrad funnet. Dette vil mest sannsynlig ikke " "hindre spillet fra å kjøre." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7803,7 +7817,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "'Redump.org-'status:" @@ -8603,9 +8617,9 @@ msgstr "Valgt skrifttype" msgid "Selected controller profile does not exist" msgstr "Valgt kontrolprofil finnes ikke" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8679,7 +8693,7 @@ msgstr "Send" msgid "Sensor Bar Position:" msgstr "Sensorbjelkeposisjon:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8775,7 +8789,7 @@ msgstr "" msgid "Settings" msgstr "Innstillinger" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan ikke opprette «setting.txt»-fil" @@ -9152,11 +9166,11 @@ msgstr "" msgid "Software Renderer" msgstr "Programvarerendrer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9698,7 +9712,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9712,7 +9726,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Mesterverk-partisjonene mangler." @@ -9728,29 +9742,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND er blitt reparert." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "Kanalpartisjonene mangler." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "Datapartisjonen mangler." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9845,26 +9859,26 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet er ugyldig eller kunne ikke leses." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Formatet disk-bildefilen er lagret i, holder ikke størrelsen på bildefilen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "Spill-IDen er inkonsekvent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "Spill-IDen er uvanlig kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9911,7 +9925,7 @@ msgstr "" "Vertskoden er for lang.\n" "Vennligst sjekk at du har korrekt kode." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "Installeringspartisjonen mangler." @@ -9936,7 +9950,7 @@ msgstr "Profilen \"%1\" finnes ikke" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9980,7 +9994,7 @@ msgstr "" "Vil du virkelig benytte programvarerendering? Hvis usikker, velg 'Nei'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9993,11 +10007,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Typen til partisjonen kunne ikke leses." @@ -10009,41 +10023,41 @@ msgstr "" "Oppdateringen har blitt kansellert. Det er sterkt anbefalt å fullføre denne " "for å unngå inkonsekvente systemprogramvareversjoner." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Oppdateringspartisjonen inneholder ikke IOS-versjonen brukt av denne " "tittelen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "Oppdateringspartisjonen mangler." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "Oppdateringspartisjonen er ikke ved sin normale posisjon." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Det er for mange partisjoner i den første partisjonstabellen." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Det er ingenting å angre!" @@ -10077,7 +10091,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10116,24 +10130,24 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dette kan ikke omgjøres!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Denne feilrettings-diskbildefilen har størrelsen til en vanlig kommersiell " "diskbildefil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Denne diskbildefilen har en uvanlig størrelse." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10144,7 +10158,7 @@ msgstr "" "nåværende form, men kan konvertes tilbake til en bra rip. CRC32 av filen kan " "muligens matche CRC32 av en bra kopi, selv om de ikke er identiske." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10153,7 +10167,7 @@ msgstr "" "kopieringsprogram lagret diskbildefilen som flere biter, må du flette den " "inn i én fil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10170,7 +10184,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Denne filen virker ikke som en BootMii NAND-sikkerhetskopi." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10191,23 +10205,23 @@ msgstr "" "grafikkort eller dets drivere støtter ikke dette. Derfor vil du oppleve feil " "eller bildefrys mens du kjører spillet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Dette er en dårlig dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Dette er en god dump." @@ -10237,16 +10251,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Denne tittelen kan ikke startes." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Tittelen er satt til en ugyldig IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Tittelen er satt til å bruke en ugyldig fellesnøkkel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10254,7 +10268,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10601,7 +10615,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10641,7 +10655,7 @@ msgstr "" msgid "United States" msgstr "USA" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10652,7 +10666,7 @@ msgstr "USA" msgid "Unknown" msgstr "Ukjent" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10660,7 +10674,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10670,7 +10684,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10688,7 +10702,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10708,7 +10722,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10993,7 +11007,7 @@ msgstr "Detaljgrad" msgid "Verify" msgstr "Verifiser" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verifiser integritet" @@ -11001,8 +11015,8 @@ msgstr "Verifiser integritet" msgid "Verify certificates" msgstr "Verifiser sertifikater" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verifiserer" @@ -11329,7 +11343,7 @@ msgstr "Wii TAS-inndata %1 - Wii-kontroll + Nunchuck" msgid "Wii and Wii Remote" msgstr "Wii og Wii-kontroll" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii-data er ikke offentlige enda" @@ -11710,11 +11724,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11722,11 +11736,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11737,7 +11751,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 757bd29cec..a3acd6b9a9 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Miksel12 , 2021-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -38,7 +38,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -50,7 +50,7 @@ msgstr "" "Omdat GameCube-schijfafbeeldingen weinig verificatiedata bevatten kunnen er " "problemen zijn die Dolphin niet kan detecteren." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1369,11 +1369,11 @@ msgstr "Alle apparaten" msgid "All files (*)" msgstr "Alle Bestanden (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Codes van alle spelers gesynchroniseerd." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Saves van alle spelers gesynchroniseerd." @@ -1693,7 +1693,7 @@ msgstr "Slechte Waarde Gegeven" msgid "Bad address provided." msgstr "Verkeerd adres opgegeven." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Slechte dump" @@ -1863,7 +1863,7 @@ msgstr "Breekpunten" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 msgid "Broadband Adapter (HLE)" -msgstr "" +msgstr "Broadband Adapter (HLE)" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" @@ -1988,7 +1988,7 @@ msgstr "" "stotteringen op.

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Bereken" @@ -2049,7 +2049,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Kan geen NetPlay-sessie starten als spel nog draait!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2103,7 +2103,7 @@ msgstr "Middelpunt" #: Source/Core/Core/HotkeyManager.cpp:38 msgid "Center Mouse" -msgstr "" +msgstr "Centreer Muis" #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" @@ -2311,6 +2311,20 @@ msgstr "Algemeen" msgid "Comparand:" msgstr "Vergelijking:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Compileer Shaders Voor Starten" @@ -2451,7 +2465,7 @@ msgstr "Verbinden" msgid "Connection Type:" msgstr "Verbindingstype:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Inhoud {0:08x} is beschadigd." @@ -3442,7 +3456,7 @@ msgstr "Dolphin is een vrije en open-source GameCub- en Wii-emulator." msgid "Dolphin is too old for traversal server" msgstr "Dolphin is te oud voor de traversal server" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3450,7 +3464,7 @@ msgstr "" "Dolphin kan TGC bestanden niet verifiëren, omdat het geen dumps zijn van " "werkelijke schijven." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan ongelicenseerde schijven niet verifiëren." @@ -3782,11 +3796,11 @@ msgstr "Schijf Uitwerpen" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Leeg" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emu Thread draait al" @@ -4189,11 +4203,11 @@ msgstr "Fout bij het verwerken van gegevens." msgid "Error reading file: {0}" msgstr "Fout bij het lezen van bestand: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Fout bij het synchroniseren van cheat codes!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Fout bij synchroniseren van save data!" @@ -4209,31 +4223,31 @@ msgstr "" "Fout: Na \"{0}\", gevonden {1} ({2:#x}) in plaats van bewaar punt {3} ({4:" "#x}). Savestate laadactie wordt geannuleerd..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Fout: GBA{0} initialisatie mislukt " -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Fout: GBA{0} BIOS in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Fout: GBA{0} ROM in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Fout: GBA{0} save in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Fout: GBA{0} BIOS in {1} openen mislukt" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Fout: GBA{0} ROM in {1} openen mislukt" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Fout: GBA{0} save in {1} openen mislukt" @@ -4259,11 +4273,11 @@ msgstr "" "maar deze zijn niet geladen. Spellen kunnen wellicht lettertypes niet juist " "weergeven, of crashen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Er zijn fouten gevonden in {0} blokken in de {1} partitie." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Er zijn fouten gevonden in {0} ongebruikte blokken in de {1} partitie." @@ -4507,7 +4521,7 @@ msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Verbinden met Redump.org mislukt" @@ -4736,7 +4750,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Kan het invoerbestand \"% 1\" niet openen." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4746,8 +4760,8 @@ msgstr "" "Controleer of u permissies heeft om de map te maken, en dat de media " "geschreven kan worden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Ontleden van Redump.org data mislukt" @@ -4764,7 +4778,7 @@ msgid "Failed to read from file." msgstr "Lezen bestand mislukt." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Lezen van het invoerbestand \"{0}\" is mislukt." @@ -4862,7 +4876,7 @@ msgid "Failed to write savefile to disk." msgstr "Schrijven van save bestand naar schijf mislukt." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5648,7 +5662,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Golf Modus" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Goede dump" @@ -5775,7 +5789,7 @@ msgstr "Verberg Incompatibele Sessies" msgid "Hide Remote GBAs" msgstr "Verberg Externe GBAs" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Hoog" @@ -6285,7 +6299,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Interne LZO fout - compressie is mislukt" @@ -6294,7 +6308,7 @@ msgstr "Interne LZO fout - compressie is mislukt" msgid "Internal LZO Error - decompression failed" msgstr "Interne LZO fout - decompressie is mislukt" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6302,7 +6316,7 @@ msgstr "" "Interne LZO fout - decompressie is mislukt ({0}) ({1}, {2}) \n" "Probeer de state opnieuw te laden" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interne LZO fout - lzo_init() is mislukt" @@ -6493,7 +6507,7 @@ msgstr "JIT Register Cache Uit" msgid "JIT SystemRegisters Off" msgstr "JIT SysteemRegisters Uit" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6920,7 +6934,7 @@ msgstr "Loop" msgid "Lost connection to NetPlay server..." msgstr "Verbinding met NetPlay-server verloren..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Laag" @@ -7014,7 +7028,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Kan leiden tot vertraging van het Wii-menu en een aantal spellen." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Medium" @@ -7434,11 +7448,11 @@ msgstr "Geen mappen gevonden in het M3U-bestand \"{0}\"" msgid "No possible functions left. Reset." msgstr "Geen mogelijke functies meer. Reset." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Er zijn geen problemen gevonden" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7460,7 +7474,7 @@ msgstr "Geen opname geladen." msgid "No save data found." msgstr "Geen save data gevonden." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Geen undo.dtm gevonden, het ongedaan maken van de state laden wordt " @@ -8051,7 +8065,7 @@ msgstr "Privé en Openbaar" msgid "Problem" msgstr "Probleem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8059,7 +8073,7 @@ msgstr "" "Er zijn zeer ernstige problemen gevonden. Het spel zal waarschijnlijk niet " "werken." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8067,7 +8081,7 @@ msgstr "" "Er zijn problemen met lage ernst gevonden. Het spel zal waarschijnlijk goed " "werken." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8273,7 +8287,7 @@ msgstr "" "

In geval van twijfel \"Geen\" selecteren." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org Status:" @@ -9086,9 +9100,9 @@ msgstr "Selecteer Font" msgid "Selected controller profile does not exist" msgstr "Geselecteerde controller profiel bestaat niet" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9193,7 +9207,7 @@ msgstr "Verzend" msgid "Sensor Bar Position:" msgstr "Sensor Bar Positie:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9299,7 +9313,7 @@ msgstr "" msgid "Settings" msgstr "Instellingen" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: Kan setting.txt niet aanmaken" @@ -9693,11 +9707,11 @@ msgstr "Socket table" msgid "Software Renderer" msgstr "Software Renderer" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Een deel van de data kon niet worden gelezen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10273,7 +10287,7 @@ msgstr "" "De DFF's minimale loader versie ({0}) overschrijd de versie van deze FIFO " "Player ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "De H3 hashtabel voor de {0} partitie is onjuist." @@ -10287,7 +10301,7 @@ msgstr "Het IPL bestand is geen bekende goede dump. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "De Masterpiece partities ontbreken." @@ -10303,7 +10317,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "De NAND is gerepareerd." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10313,15 +10327,15 @@ msgstr "" "verplaatst of kopieert, zal het Wii Hoofdmenu het niet meer starten en zal " "het ook weigeren om het te kopiëren of terug te zetten naar de NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "De kanaalpartitie ontbreekt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "De datapartitie ontbreekt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10331,7 +10345,7 @@ msgstr "" "laadtijden beinvloeden. U kunt geen invoer opnames delen en niet NetPlay " "gebruiken met iemand die een goede dump heeft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10444,11 +10458,11 @@ msgstr "" "geheugenkaarten. Hernoem dit bestand naar %2, %3, of %4, passend bij de " "regio van de save bestanden die erop staan." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Het bestandssysteem is ongeldig of kon niet gelezen worden." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10456,15 +10470,15 @@ msgstr "" "Het formaat waarin de schijfafbeelding is opgeslagen, slaat de grote van de " "schijfafbeelding niet op." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "Het spel ID is inconsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "Het spel ID is ongewoon kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "Het spel ID is {0} maar zou {1} moeten zijn." @@ -10516,7 +10530,7 @@ msgstr "" "De hostcode is te lang.\n" "Controleer nogmaals of u de juiste code heeft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "De installatiepartitie ontbreekt." @@ -10547,7 +10561,7 @@ msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" "Het opgenomen spel ({0}) is niet hetzelfde als het geselecteerde spel ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10595,7 +10609,7 @@ msgstr "" "\"Nee\" selecteren." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" "De gespecificeerde gedeelde sleutel index is {0} maar zou {1} moeten zijn." @@ -10609,11 +10623,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "De doelgeheugenkaart bevat al een bestand \"% 1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Het ticket is niet correct ondertekend." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Het type van een partitie kon niet worden gelezen." @@ -10625,39 +10639,39 @@ msgstr "" "De update is geannuleerd. Het wordt ten zeerste aanbevolen om de update af " "te maken om problemen te voorkomen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "De updatepartitie bevat niet de IOS die wordt gebruikt door dit spel." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "De updatepartitie ontbreekt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "De updatepartitie staat niet op zijn normale positie." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "De {0} partitie heeft geen geldig bestandssysteem. " -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "De {0} partitie bevat geen geldige data." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "De {0} partitie is niet correct ondertekend." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "De {0} partitie is niet goed uitgelijnd." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Er zijn te veel partities in de eerste partitietabel." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Er is niks om ongedaan te maken!" @@ -10693,7 +10707,7 @@ msgstr "Deze Gecko code bevat geen regels." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10734,16 +10748,16 @@ msgstr "" msgid "This cannot be undone!" msgstr "Dit kan niet ongedaan gemaakt worden!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Deze debug schijfafbeelding heeft de grootte van een retail schijfafbeelding." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Deze schijfafbeelding heeft een ongebruikelijke grootte." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10753,7 +10767,7 @@ msgstr "" "laadtijden waarschijnlijk langer. U kunt waarschijnlijk geen invoer opnames " "delen en NetPlay niet gebruiken met iemand die een goede dump heeft." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10765,7 +10779,7 @@ msgstr "" "geconverteerd. De CRC32 van dit bestand kan overeenkomen met de CRC32 van " "een goede dump, hoewel de bestanden niet identiek zijn." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10774,7 +10788,7 @@ msgstr "" "de schijfafbeelding in verschillende stukken heeft opgeslagen, moet u deze " "in één bestand samenvoegen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10791,7 +10805,7 @@ msgstr "Dit bestand bevat geen geldig Wii bestandssysteem." msgid "This file does not look like a BootMii NAND backup." msgstr "Dit bestand lijkt niet op een BootMii NAND-back-up." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10812,11 +10826,11 @@ msgstr "" "grafische kaart of stuurprogramma's ondersteunen dit niet. Als gevolg " "hiervan zult u bugs of vastlopers ervaren tijdens het uitvoeren van dit spel." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Dit is een slechte dump." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10824,7 +10838,7 @@ msgstr "" "Dit is een slechte dump. Dit betekend niet per se dat het spel niet goed " "werkt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10832,7 +10846,7 @@ msgstr "" "Dit is een goede dump volgens Redump.org, maar Dolphin heeft problemen " "gevonden. Dit is misschien een fout in Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Dit is een goede dump." @@ -10862,16 +10876,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Deze titel kan niet worden opgestart." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Dit spel gebruikt een ongeldige IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Dit spel gebruikt een ongeldige gedeelde sleutel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10883,7 +10897,7 @@ msgstr "" "\n" "DSPHLE: Onbekende ucode (CRC = {0:08x}) - AX wordt geforceerd." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11256,7 +11270,7 @@ msgstr "" msgid "Unable to read file." msgstr "Niet in staat bestand te lezen." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Kon niet naar bestand {0} schrijven" @@ -11297,7 +11311,7 @@ msgstr "" msgid "United States" msgstr "Verenigde Staten" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11308,7 +11322,7 @@ msgstr "Verenigde Staten" msgid "Unknown" msgstr "Onbekend" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Onbekend DVD commando {0:08x} - fatale fout" @@ -11316,7 +11330,7 @@ msgstr "Onbekend DVD commando {0:08x} - fatale fout" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Onbekend SYNC_CODES bericht ontvangen met id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11328,7 +11342,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Onbekend SYNC_SAVE_DATA-bericht ontvangen met id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11348,7 +11362,7 @@ msgstr "Onbekende auteur" msgid "Unknown data type" msgstr "Onbekend data type" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Onbekende disc" @@ -11368,7 +11382,7 @@ msgstr "Onbekende fout." msgid "Unknown message received with id : {0}" msgstr "Onbekend bericht ontvangen met id : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Onbekend bericht ontvangen met id: {0} ontvangen van speler: {1} Speler " @@ -11701,7 +11715,7 @@ msgstr "Breedsprakigheid" msgid "Verify" msgstr "Verifieer" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verifieer Integriteit" @@ -11709,8 +11723,8 @@ msgstr "Verifieer Integriteit" msgid "Verify certificates" msgstr "Controleer certificaten" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verifiëren" @@ -12102,7 +12116,7 @@ msgstr "Wii TAS-Invoer %1 - Wii-afstandsbediening + Nunchuck" msgid "Wii and Wii Remote" msgstr "Wii en Wii-afstandsbediening" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii data is nog niet publiek" @@ -12525,11 +12539,11 @@ msgstr "niet-uitgelijnd" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12538,11 +12552,11 @@ msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" "{0} IPL gevonden in {1} map. Het is mogelijk dat de schijf niet herkend wordt" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} kon codes niet synchroniseren." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} kon niet synchroniseren." @@ -12556,7 +12570,7 @@ msgstr "" "buiten Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} van {1} blokken. Compressieverhouding {2}%" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index 4159ea4358..95a80e572b 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -35,7 +35,7 @@ msgstr "" "%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" "%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -47,7 +47,7 @@ msgstr "" "Ponieważ obrazy dysków GameCube'a zawierają niewiele danych do weryfikacji, " "mogą nastąpić problemy, których Dolphin nie jest w stanie wykryć." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1312,11 +1312,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Kody wszystkich graczy zsynchronizowane." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Zapisy wszystkich graczy zsynchronizowane." @@ -1621,7 +1621,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1907,7 +1907,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1964,7 +1964,7 @@ msgstr "" "Nie można uruchomić Sesji NetPlay, podczas gdy gra wciąż jest uruchomiona!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2213,6 +2213,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2353,7 +2367,7 @@ msgstr "" msgid "Connection Type:" msgstr "Typ połączenia:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3241,13 +3255,13 @@ msgstr "Dolphin jest wolnym i otwartoźródłowym emulatorem GameCube'a oraz Wii msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3555,11 +3569,11 @@ msgstr "Wysuń dysk" msgid "Embedded Frame Buffer (EFB)" msgstr "Wbudowany bufor klatki (Embedded Frame Buffer - EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Pusty" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Wątek emulacji jest już uruchomiony" @@ -3920,11 +3934,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Błąd synchronizacji kodów cheatowania" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3938,31 +3952,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3986,11 +4000,11 @@ msgstr "" "Błąd: Próba uzyskania dostępu do czcionek Windows-1252, choć nie są one " "wczytane. Gry mogą nie pokazywać czcionek poprawnie lub zawieszać się." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4215,7 +4229,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4424,15 +4438,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4449,7 +4463,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4544,7 +4558,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5261,7 +5275,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5382,7 +5396,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5829,7 +5843,7 @@ msgid "Interface" msgstr "Interfejs" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Wewnętrzny błąd LZO - kompresja nie powiodła się" @@ -5838,13 +5852,13 @@ msgstr "Wewnętrzny błąd LZO - kompresja nie powiodła się" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Wewnętrzny błąd LZO - lzo_init() nie powiodło się" @@ -6036,7 +6050,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6446,7 +6460,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6536,7 +6550,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Może powodować spowolnienie w Wii Menu i niektórych grach." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Umiarkowany" @@ -6934,11 +6948,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Nie znaleziono żadnych problemów." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6957,7 +6971,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7530,19 +7544,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7738,7 +7752,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8533,9 +8547,9 @@ msgstr "Wybierz czcionkę" msgid "Selected controller profile does not exist" msgstr "Wybrany profil kontrolera nie istnieje" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8609,7 +8623,7 @@ msgstr "Wyślij" msgid "Sensor Bar Position:" msgstr "Pozycja Sensor Baru:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8705,7 +8719,7 @@ msgstr "" msgid "Settings" msgstr "Ustawienia" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMem: Nie można utworzyć pliku setting.txt" @@ -9080,11 +9094,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9624,7 +9638,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9638,7 +9652,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9652,29 +9666,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND został naprawiony." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9763,25 +9777,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9823,7 +9837,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9848,7 +9862,7 @@ msgstr "Profil '%1' nie istnieje." msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9885,7 +9899,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9898,11 +9912,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9912,39 +9926,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Nie ma nic do cofnięcia!" @@ -9974,7 +9988,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10011,22 +10025,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "To nie może być cofnięte!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10034,13 +10048,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10054,7 +10068,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10068,23 +10082,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10114,16 +10128,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10131,7 +10145,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10467,7 +10481,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10505,7 +10519,7 @@ msgstr "" msgid "United States" msgstr "Stany Zjednoczone" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10516,7 +10530,7 @@ msgstr "Stany Zjednoczone" msgid "Unknown" msgstr "Nieznany" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10524,7 +10538,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10534,7 +10548,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10552,7 +10566,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10572,7 +10586,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10855,7 +10869,7 @@ msgstr "Szczegółowość" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10863,8 +10877,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11189,7 +11203,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "Wii i Wiilot" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11564,11 +11578,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11576,11 +11590,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11591,7 +11605,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 2551436b7d..f303b50f56 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -21,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -29,7 +29,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1264,11 +1264,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1573,7 +1573,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1859,7 +1859,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1915,7 +1915,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2162,6 +2162,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2302,7 +2316,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3183,13 +3197,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3497,11 +3511,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Thread de Emulador já em execução" @@ -3857,11 +3871,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3875,31 +3889,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3919,11 +3933,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4148,7 +4162,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4355,15 +4369,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4380,7 +4394,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4475,7 +4489,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5192,7 +5206,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5313,7 +5327,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5751,7 +5765,7 @@ msgid "Interface" msgstr "Iinterface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Erro interno de LZO - compressão falhou" @@ -5760,13 +5774,13 @@ msgstr "Erro interno de LZO - compressão falhou" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro interno de LZO - lzo_init() falhou" @@ -5956,7 +5970,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6366,7 +6380,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6456,7 +6470,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6854,11 +6868,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6877,7 +6891,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7446,19 +7460,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7654,7 +7668,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8449,9 +8463,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8525,7 +8539,7 @@ msgstr "Enviar" msgid "Sensor Bar Position:" msgstr "Posição da Barra de Sensor:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8618,7 +8632,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8991,11 +9005,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9533,7 +9547,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9547,7 +9561,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9561,29 +9575,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9672,25 +9686,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9732,7 +9746,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9757,7 +9771,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9794,7 +9808,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9807,11 +9821,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9821,39 +9835,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9883,7 +9897,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9920,22 +9934,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9943,13 +9957,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9963,7 +9977,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9977,23 +9991,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10017,16 +10031,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10034,7 +10048,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10367,7 +10381,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10405,7 +10419,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10416,7 +10430,7 @@ msgstr "" msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10424,7 +10438,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10434,7 +10448,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10452,7 +10466,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10472,7 +10486,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10755,7 +10769,7 @@ msgstr "Verbosidade" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10763,8 +10777,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11089,7 +11103,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11464,11 +11478,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11476,11 +11490,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11491,7 +11505,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 0412e60479..87590a18ca 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,9 +46,9 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" -"Last-Translator: Mateus B. Cassiano , 2017,2021-2022\n" +"Last-Translator: Runo , 2013\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" "emu/language/pt_BR/)\n" "Language: pt_BR\n" @@ -58,7 +58,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -70,7 +70,7 @@ msgstr "" "Como as imagens de disco do GameCube contém poucos dados de verificação, " "podem existir problemas que o Dolphin não consegue detectar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1391,11 +1391,11 @@ msgstr "Todos os dispositivos" msgid "All files (*)" msgstr "Todos os arquivos (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Todos os códigos dos jogadores sincronizados." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Todos os saves dos jogadores sincronizados." @@ -1716,7 +1716,7 @@ msgstr "Valor Ruim Dado" msgid "Bad address provided." msgstr "Endereço ruim fornecido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Cópia com erros" @@ -1889,7 +1889,7 @@ msgstr "Pontos de Interrupção" #: Source/Core/Core/HW/EXI/EXI_Device.h:99 msgid "Broadband Adapter (HLE)" -msgstr "" +msgstr "Adaptador de Banda Larga (HLE)" #: Source/Core/Core/HW/EXI/EXI_Device.h:92 msgid "Broadband Adapter (TAP)" @@ -2014,7 +2014,7 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Calcular" @@ -2078,7 +2078,7 @@ msgstr "" "execução!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2133,7 +2133,7 @@ msgstr "Centro" #: Source/Core/Core/HotkeyManager.cpp:38 msgid "Center Mouse" -msgstr "" +msgstr "Centralizar Mouse" #: Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp:898 msgid "Center and Calibrate" @@ -2339,6 +2339,20 @@ msgstr "Comum" msgid "Comparand:" msgstr "Comparando:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Compilar Shaders Antes de Iniciar" @@ -2479,7 +2493,7 @@ msgstr "Conectando" msgid "Connection Type:" msgstr "Tipo de Conexão:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "O conteúdo {0:08x} está corrompido." @@ -3478,7 +3492,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Versão do Dolphin é muito antiga para o servidor traversal" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3486,7 +3500,7 @@ msgstr "" "O Dolphin não consegue verificar imagens TGC corretamente, pois elas não são " "cópias de discos reais." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "O Dolphin não pode verificar imagens de discos não licenciados." @@ -3824,11 +3838,11 @@ msgstr "Ejetar Disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Frame Buffer Embutido (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Vazio" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Thread de Emulação já está em execução" @@ -4229,11 +4243,11 @@ msgstr "Erro ao processar os dados." msgid "Error reading file: {0}" msgstr "Erro ao ler o arquivo: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Erro ao sincronizar os códigos de trapaça!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Erro ao sincronizar os dados do save!" @@ -4249,31 +4263,31 @@ msgstr "" "ERRO: Depois de \"{0}\", foi encontrado {1} ({2:#x}) ao invés do marcador de " "estado salvo {3} ({4:#x}). Abortando o carregamento do estado salvo..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Erro: GBA{0} - falha ao criar o processo" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Erro: GBA{0} - falha ao carregar a BIOS em {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Erro: GBA{0} - falha ao carregar a ROM em {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Erro: GBA{0} - falha ao carregar os dados salvos em {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Erro: GBA{0} - falha ao abrir a BIOS em {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Erro: GBA{0} - falha ao abrir a ROM em {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Erro: GBA{0} - falha ao abrir os dados salvos em {1}" @@ -4297,11 +4311,11 @@ msgstr "" "ERRO: Tentando acessar as fontes Windows-1252, mas elas não foram " "carregadas. Os jogos podem não mostrar as fontes corretamente, ou travarem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Erros foram encontrados em {0} blocos da partição {1}." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Erros foram encontrados em {0} blocos não utilizados da partição {1}." @@ -4546,7 +4560,7 @@ msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" "Falha ao solicitar acesso à interface para o redirecionamento Bluetooth: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Falha na conexão com Redump.org" @@ -4780,7 +4794,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Falha ao abrir o arquivo de entrada \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4790,8 +4804,8 @@ msgstr "" "Certifique-se de que você tem permissões de gravação na pasta de destino e " "de que a mídia não seja somente leitura. " -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Falha ao processar dados do Redump.org" @@ -4808,7 +4822,7 @@ msgid "Failed to read from file." msgstr "Falha ao ler do arquivo." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Falha na leitura do arquivo de entrada \"{0}\"." @@ -4914,7 +4928,7 @@ msgid "Failed to write savefile to disk." msgstr "Falha ao salvar arquivo de jogo salvo no disco." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5706,7 +5720,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Modo Golfe" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Cópia válida" @@ -5832,7 +5846,7 @@ msgstr "Esconder Sessões Incompatíveis" msgid "Hide Remote GBAs" msgstr "Ocultar GBAs Remotos" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Alto" @@ -6348,7 +6362,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Erro Interno do LZO - falha na compressão" @@ -6357,7 +6371,7 @@ msgstr "Erro Interno do LZO - falha na compressão" msgid "Internal LZO Error - decompression failed" msgstr "Erro Interno do LZO - falha na extração" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6365,7 +6379,7 @@ msgstr "" "Erro Interno do LZO - falha na extração ({0}) ({1}, {2}) \n" "Tente carregar o estado salvo novamente" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro Interno do LZO - lzo_init() falhou" @@ -6557,7 +6571,7 @@ msgstr "Registro do Cache do JIT Desligado" msgid "JIT SystemRegisters Off" msgstr "Registros do Sistema do JIT Desligado" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6987,7 +7001,7 @@ msgstr "Reprodução contínua" msgid "Lost connection to NetPlay server..." msgstr "Perdeu a conexão com o servidor do NetPlay..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Baixo" @@ -7082,7 +7096,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Pode causar lentidão no Wii Menu e em alguns jogos." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Médio" @@ -7503,11 +7517,11 @@ msgstr "Nenhum caminho encontrado no arquivo M3U \"{0}\"" msgid "No possible functions left. Reset." msgstr "Não restam funções possíveis. Resetar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Nenhum problema encontrado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7529,7 +7543,7 @@ msgstr "Nenhuma gravação carregada." msgid "No save data found." msgstr "Nenhum jogo salvo encontrado." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Arquivo undo.dtm não encontrado, cancelando reversão do carregamento de " @@ -8120,7 +8134,7 @@ msgstr "Privada e Pública" msgid "Problem" msgstr "Problema" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8128,7 +8142,7 @@ msgstr "" "Problemas de alta gravidade foram encontrados. O jogo provavelmente não " "funcionará." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8136,7 +8150,7 @@ msgstr "" "Problemas de baixa gravidade foram encontrados. Eles provavelmente não " "impedirão a execução do jogo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8343,7 +8357,7 @@ msgstr "" "de shader e nas texturas.

Na dúvida, selecione " "\"Nenhum\"." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Status no Redump.org:" @@ -9158,9 +9172,9 @@ msgstr "Fonte Selecionada" msgid "Selected controller profile does not exist" msgstr "O perfil de controle selecionado não existe" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9267,7 +9281,7 @@ msgstr "Enviar" msgid "Sensor Bar Position:" msgstr "Posição da Sensor Bar:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9371,7 +9385,7 @@ msgstr "" msgid "Settings" msgstr "Configurações" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Não foi possível criar o arquivo setting.txt" @@ -9766,11 +9780,11 @@ msgstr "Tabela do soquete" msgid "Software Renderer" msgstr "Renderizador por Software" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Alguns dos dados não puderam ser lidos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10346,7 +10360,7 @@ msgstr "" "A versão mínima do carregador do DFF ({0}) excede a versão deste FIFO Player " "({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "A tabela de hash H3 para a partição {0} não está correta." @@ -10362,7 +10376,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "As partições das Masterpieces estão ausentes." @@ -10378,7 +10392,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "A NAND foi reparada." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10388,15 +10402,15 @@ msgstr "" "para o Cartão SD, o Wii System Menu deixará de executá-lo e também se " "recusará a copiar ou mover o software de volta para a NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "A partição do canal está ausente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "A partição de dados está ausente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10407,7 +10421,7 @@ msgstr "" "replay e nem jogar no NetPlay com outros usuários que estejam usando uma " "cópia válida do disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10518,11 +10532,11 @@ msgstr "" "Cards utilizado pelo Dolphin. Por favor renomeie esse arquivo para %2, %3, " "ou %4, correspondendo à região dos jogos salvos que estão presentes nele." -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "O sistema de arquivos é inválido ou não pôde ser lido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10530,15 +10544,15 @@ msgstr "" "O formato em que a imagem de disco foi salva não armazena o tamanho da " "imagem de disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "A ID do jogo é inconsistente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "A ID do jogo é muito curta." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "A ID do jogo é {0} mas deveria ser {1}." @@ -10592,7 +10606,7 @@ msgstr "" "O código do hospedeiro é muito grande.\n" "Por favor verifique de novo se você tem o código correto." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "A partição de instalação está ausente." @@ -10621,7 +10635,7 @@ msgstr "O perfil \"%1\" não existe" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "O jogo gravado ({0}) não é o mesmo do jogo selecionado ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10668,7 +10682,7 @@ msgstr "" "selecione 'Não'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "O índice de chave comum especificado é {0}, mas deveria ser {1}." @@ -10681,11 +10695,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "O memory card alvo já contém um arquivo: \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "O ticket não foi assinado corretamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "O tipo de partição não pôde ser lido." @@ -10697,39 +10711,39 @@ msgstr "" "A atualização foi cancelada. É altamente recomendado concluí-la para evitar " "versões inconsistentes do software do sistema." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "A partição de atualização não contém o IOS utilizado por esse jogo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "A partição de atualização está ausente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "A partição de atualização não está em sua posição normal." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "A partição {0} não contém um sistema de arquivos válido." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "A partição {0} parece não conter dados válidos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "A partição {0} não foi assinada corretamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "A partição {0} não está alinhada corretamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Existem muitas partições na primeira tabela de partições." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Nào há nada para desfazer!" @@ -10763,7 +10777,7 @@ msgstr "Este código do gecko não contém quaisquer linhas." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10805,17 +10819,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Isto não pode ser desfeito!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Essa imagem de disco de depuração tem o tamanho de uma imagem de disco para " "venda no varejo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Essa imagem de disco tem um tamanho incomum." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10826,7 +10840,7 @@ msgstr "" "conseguirá compartilhar gravações de replay e nem jogar no NetPlay com " "outros usuários que estejam usando uma cópia válida do disco." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10838,7 +10852,7 @@ msgstr "" "de volta. O CRC32 dessa imagem pode corresponder ao CRC32 de uma cópia " "válida mesmo quando os arquivos não são idênticos." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10847,7 +10861,7 @@ msgstr "" "extração utilizado salvou a imagem de disco em várias partes, você precisará " "juntá-las em um único arquivo." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10864,7 +10878,7 @@ msgstr "Este arquivo não contém um sistema de arquivos do Wii válido." msgid "This file does not look like a BootMii NAND backup." msgstr "Este arquivo não parece um backup NAND do BootMii." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10886,11 +10900,11 @@ msgstr "" "dessa limitação o jogo apresentará problemas ou travamentos durante a " "execução." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Essa cópia contém erros." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10898,7 +10912,7 @@ msgstr "" "Essa cópia contém erros. Isso não significa necessariamente que o jogo não " "irá funcionar corretamente." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10906,7 +10920,7 @@ msgstr "" "Essa é uma cópia válida do disco de acordo com Redump.org, no entanto o " "Dolphin encontrou problemas. Isso pode ser um bug no Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Essa cópia é válida." @@ -10936,16 +10950,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Este software não pode ser iniciado." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Esse software está configurado para utilizar um IOS inválido." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Esse software está configurado para utilizar uma chave comum inválida." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10957,7 +10971,7 @@ msgstr "" "\n" "DSPHLE: uCode desconhecido (CRC = {0:08x}) - forçando AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11331,7 +11345,7 @@ msgstr "" msgid "Unable to read file." msgstr "Não foi possível ler o arquivo." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Incapaz de gravar no arquivo {0}" @@ -11371,7 +11385,7 @@ msgstr "" msgid "United States" msgstr "Estados Unidos" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11382,7 +11396,7 @@ msgstr "Estados Unidos" msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconhecido do DVD {0:08x} - erro fatal" @@ -11390,7 +11404,7 @@ msgstr "Comando desconhecido do DVD {0:08x} - erro fatal" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Mensagem SYNC_CODES desconhecida recebida com a ID: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11402,7 +11416,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Mensagem desconhecida do SYNC_GECKO_DATA recebida com a id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11422,7 +11436,7 @@ msgstr "Autor desconhecido" msgid "Unknown data type" msgstr "Tipo de dado desconhecido" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Disco desconhecido" @@ -11442,7 +11456,7 @@ msgstr "Erro desconhecido." msgid "Unknown message received with id : {0}" msgstr "Mensagem desconhecida recebida com a id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Mensagem desconhecida com ID:{0} recebida do Jogador:{1} Expulsando jogador!" @@ -11776,7 +11790,7 @@ msgstr "Verbosidade" msgid "Verify" msgstr "Verificar" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verificar Integridade" @@ -11784,8 +11798,8 @@ msgstr "Verificar Integridade" msgid "Verify certificates" msgstr "Verificar certificados" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verificando" @@ -12185,7 +12199,7 @@ msgstr "Entrada de Dados TAS - Wii Remote + Nunchuk %1" msgid "Wii and Wii Remote" msgstr "Wii e Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Dados do Wii ainda não são públicos" @@ -12614,11 +12628,11 @@ msgstr "desalinhado" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12626,11 +12640,11 @@ msgstr "{0} (NKit)" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "{0} IPL achado no diretório {1}. O disco poderia não ser reconhecido" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} falhou em sincronizar os códigos." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} falhou em sincronizar." @@ -12643,7 +12657,7 @@ msgstr "" "Verifique suas permissões de escrita ou mova o arquivo para fora do Dolphin" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} de {1} blocos. Taxa de compressão: {2}%" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index 41ce4db1d7..180959d627 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" "2:1));\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1263,11 +1263,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1572,7 +1572,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1858,7 +1858,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1914,7 +1914,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2161,6 +2161,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2301,7 +2315,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3182,13 +3196,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3496,11 +3510,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Firul Emu rulează deja" @@ -3856,11 +3870,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3874,31 +3888,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3918,11 +3932,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4147,7 +4161,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4354,15 +4368,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4379,7 +4393,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4474,7 +4488,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5191,7 +5205,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5312,7 +5326,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5750,7 +5764,7 @@ msgid "Interface" msgstr "Interfață" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Eroare internă LZO - compresia a eșuat" @@ -5759,13 +5773,13 @@ msgstr "Eroare internă LZO - compresia a eșuat" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Eroare internă LZO - lzo_init() a eșuat" @@ -5957,7 +5971,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6367,7 +6381,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6457,7 +6471,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6855,11 +6869,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6878,7 +6892,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7447,19 +7461,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7655,7 +7669,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8450,9 +8464,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "Profilul controlerului selectat, nu există" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8526,7 +8540,7 @@ msgstr "Trimite" msgid "Sensor Bar Position:" msgstr "Poziția barei de senzor:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8619,7 +8633,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8992,11 +9006,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9534,7 +9548,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9548,7 +9562,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9562,29 +9576,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9673,25 +9687,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9733,7 +9747,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9758,7 +9772,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9795,7 +9809,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9808,11 +9822,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9822,39 +9836,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9884,7 +9898,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9921,22 +9935,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9944,13 +9958,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9964,7 +9978,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9978,23 +9992,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10018,16 +10032,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10035,7 +10049,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10368,7 +10382,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10406,7 +10420,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10417,7 +10431,7 @@ msgstr "" msgid "Unknown" msgstr "Necunoscut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10425,7 +10439,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10435,7 +10449,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10453,7 +10467,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10473,7 +10487,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10756,7 +10770,7 @@ msgstr "Verbozitate" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10764,8 +10778,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11090,7 +11104,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11465,11 +11479,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11477,11 +11491,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11492,7 +11506,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 4022c5a026..e4c7893d7b 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -32,7 +32,7 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" "%100>=11 && n%100<=14)? 2 : 3);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -44,7 +44,7 @@ msgstr "" "Dolphin может обнаружить не все проблемы, т.к. в образах дисков GameCube " "содержится мало проверочных данных." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1357,11 +1357,11 @@ msgstr "Все устройства" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Коды всех игроков синхронизированы." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Сохранения всех игроков синхронизированы." @@ -1682,7 +1682,7 @@ msgstr "" msgid "Bad address provided." msgstr "Указан некорректный адрес." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Плохой дамп" @@ -1976,7 +1976,7 @@ msgstr "" "возможные подвисания.

Если не уверены – оставьте " "выключенным." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Вычислить" @@ -2037,7 +2037,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "Невозможно создать сессию сетевой игры, пока игра всё ещё запущена!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2298,6 +2298,20 @@ msgstr "Общее" msgid "Comparand:" msgstr "Сравнение:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Компилировать шейдеры перед запуском" @@ -2438,7 +2452,7 @@ msgstr "" msgid "Connection Type:" msgstr "Тип подключения:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Содержимое {0:08x} повреждено." @@ -3420,7 +3434,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Слишком старая версия Dolphin для подключения к промежуточному серверу" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3428,7 +3442,7 @@ msgstr "" "Dolphin не может корректно проверить обычные файлы TGC, потому что они не " "являются дампами настоящих дисков." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin не может проверить нелицензионные диски." @@ -3763,11 +3777,11 @@ msgstr "Извлечь диск" msgid "Embedded Frame Buffer (EFB)" msgstr "Встроенный буфер кадров (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Пусто" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Процесс эмулятора уже запущен" @@ -4170,11 +4184,11 @@ msgstr "Ошибка обработки данных." msgid "Error reading file: {0}" msgstr "Ошибка чтения файла: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Ошибка синхронизации чит-кодов!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Ошибка синхронизации сохранений!" @@ -4190,31 +4204,31 @@ msgstr "" "Ошибка: после \"{0}\" найдено {1} ({2:#x}) вместо маркера сохранения {3} ({4:" "#x}). Отмена загрузки быстрого сохранения..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Ошибка: GBA{0} не удалось создать ядро" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить BIOS в {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить образ в {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить сохранение в {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Ошибка: GBA{0} не удалось открыть BIOS в {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Ошибка: GBA{0} не удалось открыть образ в {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Ошибка: GBA{0} не удалось открыть сохранение в {1}" @@ -4238,11 +4252,11 @@ msgstr "" "Ошибка: попытка получить доступ к шрифтам Windows-1252, когда они не " "загружены. Игры могут показывать шрифты некорректно или падать." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "В {0} блоках раздела {1} найдены ошибки." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "В {0} неиспользуемых блоках раздела {1} найдены ошибки." @@ -4469,7 +4483,7 @@ msgstr "Не удалось добавить данные в файл с сиг msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Не удалось подключиться к Redump.org" @@ -4697,7 +4711,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Не удалось открыть входной файл \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4707,8 +4721,8 @@ msgstr "" "Проверьте, есть ли у вас разрешения на запись в целевую папку и записываемый " "ли носитель." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Не удалось обработать данные с Redump.org" @@ -4725,7 +4739,7 @@ msgid "Failed to read from file." msgstr "Не удалось прочитать данные из файла." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Не удалось прочесть входной файл \"{0}\"." @@ -4827,7 +4841,7 @@ msgid "Failed to write savefile to disk." msgstr "Не удалось записать файл сохранения на диск." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5598,7 +5612,7 @@ msgstr "ГиБ" msgid "Golf Mode" msgstr "Режим гольфа" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Хороший дамп" @@ -5725,7 +5739,7 @@ msgstr "Скрыть несовместимые сессии" msgid "Hide Remote GBAs" msgstr "Скрыть сетевые GBA" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Высокая" @@ -6226,7 +6240,7 @@ msgid "Interface" msgstr "Интерфейс" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Внутренняя ошибка LZO - ошибка сжатия" @@ -6235,7 +6249,7 @@ msgstr "Внутренняя ошибка LZO - ошибка сжатия" msgid "Internal LZO Error - decompression failed" msgstr "Внутренняя ошибка LZO - распаковка не удалась" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6243,7 +6257,7 @@ msgstr "" "Внутренняя ошибка LZO - ошибка распаковки ({0}) ({1}, {2}) \n" "Попробуйте загрузить сохранение повторно" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Внутренняя ошибка LZO - ошибка в lzo_init()" @@ -6433,7 +6447,7 @@ msgstr "Отключить кэш регистров JIT" msgid "JIT SystemRegisters Off" msgstr "Отключить JIT SystemRegisters" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6859,7 +6873,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "Соединение с сервером сетевой игры потеряно..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Низкая" @@ -6954,7 +6968,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Может привести к замедлению в меню Wii и некоторых играх." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Среднее" @@ -7370,11 +7384,11 @@ msgstr "В файле M3U \"{0}\" не найдены пути" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Проблем не обнаружено." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7397,7 +7411,7 @@ msgstr "Запись не загружена." msgid "No save data found." msgstr "Данные сохранений не найдены." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Не найден undo.dtm, выполнено прерывание отмены загрузки быстрого сохранения " @@ -7987,7 +8001,7 @@ msgstr "Частные и открытые" msgid "Problem" msgstr "Проблема" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -7995,7 +8009,7 @@ msgstr "" "Обнаружены проблемы с высокой критичностью. Скорее всего, игра вообще не " "будет работать." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8003,7 +8017,7 @@ msgstr "" "Обнаружены проблемы с низкой критичностью. Вероятно, они не помешают запуску " "игры." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8209,7 +8223,7 @@ msgstr "" "

Если не уверены – выберите Отсутствует." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Статус на Redump.org:" @@ -9021,9 +9035,9 @@ msgstr "Выбранный шрифт" msgid "Selected controller profile does not exist" msgstr "Выбранный профиль контроллера не существует" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9128,7 +9142,7 @@ msgstr "Отправить" msgid "Sensor Bar Position:" msgstr "Месторасположение сенсора:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9228,7 +9242,7 @@ msgstr "" msgid "Settings" msgstr "Настройки" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: не удалось создать файл setting.txt" @@ -9624,11 +9638,11 @@ msgstr "Таблица сокетов" msgid "Software Renderer" msgstr "Программный рендеринг" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Не удалось считать часть данных." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10188,7 +10202,7 @@ msgstr "" "Минимальная версия загрузчика DFF ({0}) выше, чем версия текущего плеера " "FIFO ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "Хэш-таблица H3 для раздела {0} некорректна." @@ -10202,7 +10216,7 @@ msgstr "IPL-файла нет в списке известных коррект #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Отсутствуют разделы Masterpiece." @@ -10218,22 +10232,22 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND успешно исправлен." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "Отсутствует раздел с каналом." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "Отсутствует раздел с данными." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10243,7 +10257,7 @@ msgstr "" "увеличит время загрузки. Скорее всего, вы не сможете поделиться записями " "ввода и играть по сети с теми, кто использует хороший дамп." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10346,26 +10360,26 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Файловая система некорректна или не может быть прочитана." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" "Формат, в котором сохранён образ диска, не хранит в себе размер образа." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "Обнаружено несколько различных ID игры." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "ID игры необычно короткий." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "ID игры — {0}, но должен быть {1}." @@ -10415,7 +10429,7 @@ msgstr "" "Код хост-сервера слишком длинный.\n" "Пожалуйста, проверьте правильность кода." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "Отсутствует установочный раздел." @@ -10440,7 +10454,7 @@ msgstr "Профиль '%1' не существует" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Записанная игра ({0}) не совпадает с выбранной игрой ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10485,7 +10499,7 @@ msgstr "" "выберите \"Нет\"." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "Указанный общий ключевой индекс: {0}, а должен быть: {1}." @@ -10498,11 +10512,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "Выбранная карта памяти уже содержит файл \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Билет некорректно подписан." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Не удалось прочитать тип раздела." @@ -10514,40 +10528,40 @@ msgstr "" "Обновление было отменено. Настоятельно рекомендуется завершить его, чтобы " "избежать несогласованности версий системного ПО." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "В разделе с обновлением отсутствует IOS, используемая данным продуктом." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "Отсутствует раздел с обновлением." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "Раздел с обновлением находится не на своей обычной позиции." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "В разделе {0} некорректная файловая система." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "В разделе {0}, вероятно, отсутствуют корректные данные." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "Раздел {0} некорректно подписан." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "Раздел {0} некорректно выровнен." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "В первой таблице разделов содержится слишком много разделов." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Нет действий для отмены!" @@ -10581,7 +10595,7 @@ msgstr "В этом Gecko-коде не содержится строк." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10620,17 +10634,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Это нельзя отменить!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Образ этого отладочного диска имеет тот же размер, что образ розничного " "диска." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Необычный размер образа диска." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10640,7 +10654,7 @@ msgstr "" "загрузки. Скорее всего, вы не сможете поделиться записями ввода и играть по " "сети с теми, кто использует хороший дамп." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10652,7 +10666,7 @@ msgstr "" "этого файла может соответствовать CRC32 хорошего дампа, даже если файлы не " "идентичны." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10661,7 +10675,7 @@ msgstr "" "помощи которой вы делали дамп, сохранила образ по частям, то вам необходимо " "объединить их в один файл." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10677,7 +10691,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "Файл не является бэкапом BootMii NAND." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10698,11 +10712,11 @@ msgstr "" "не поддерживается вашей видеокартой или её драйвером. Во время игры могут " "возникать ошибки и зависания." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Данный дамп — плохой." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10710,7 +10724,7 @@ msgstr "" "Данный дамп — плохой. Но это ещё не означает, что игра будет работать " "некорректно." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10718,7 +10732,7 @@ msgstr "" "Согласно Redump.org, данный дамп — хороший, но Dolphin обнаружил в нём " "проблемы. Возможно, это баг Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Данный дамп — хороший." @@ -10748,16 +10762,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Этот продукт нельзя загрузить." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Этот продукт настроен на использование некорректной IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Этот продукт настроен на использование некорректного общего ключа." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10769,7 +10783,7 @@ msgstr "" "\n" "DSPHLE: Неизвестный ucode (CRC = {0:08x}) - принудительное AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11140,7 +11154,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Запись в файл {0} не удалась" @@ -11180,7 +11194,7 @@ msgstr "" msgid "United States" msgstr "США" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11191,7 +11205,7 @@ msgstr "США" msgid "Unknown" msgstr "Неизвестно" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Неизвестная команда DVD {0:08x} - критическая ошибка" @@ -11199,7 +11213,7 @@ msgstr "Неизвестная команда DVD {0:08x} - критическа msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11211,7 +11225,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Получено неизвестное сообщение SYNC_SAVE_DATA с id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11231,7 +11245,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Неизвестный диск" @@ -11251,7 +11265,7 @@ msgstr "Неизвестная ошибка." msgid "Unknown message received with id : {0}" msgstr "Получено неизвестное сообщение с id : {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "Получено неизвестное сообщение с id: {0} от игрока: {1} Игрок выкинут!" @@ -11548,7 +11562,7 @@ msgstr "Уровень анализа" msgid "Verify" msgstr "Проверка" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Проверить целостность" @@ -11556,8 +11570,8 @@ msgstr "Проверить целостность" msgid "Verify certificates" msgstr "Проверять сертификаты" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Выполняется проверка" @@ -11949,7 +11963,7 @@ msgstr "Ввод Wii TAS %1 - Wii Remote + Нунчак" msgid "Wii and Wii Remote" msgstr "Wii и Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Данные Wii ещё не опубликованы" @@ -12347,11 +12361,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12359,11 +12373,11 @@ msgstr "{0} (NKit)" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "{0} IPL найдено в папке {1}. Не удаётся опознать диск" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "Не удалось синхронизировать коды {0}." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "Не удалось синхронизировать {0}." @@ -12377,7 +12391,7 @@ msgstr "" "папку" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} из {1} блоков. Процент сжатия: {2}%" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index 86d110af92..d11d002397 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -28,7 +28,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1263,11 +1263,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1572,7 +1572,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1858,7 +1858,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1914,7 +1914,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2161,6 +2161,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2301,7 +2315,7 @@ msgstr "" msgid "Connection Type:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3182,13 +3196,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3496,11 +3510,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "" @@ -3852,11 +3866,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3870,31 +3884,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3914,11 +3928,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4143,7 +4157,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4350,15 +4364,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4375,7 +4389,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4470,7 +4484,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5187,7 +5201,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5308,7 +5322,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5746,7 +5760,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5755,13 +5769,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5951,7 +5965,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6358,7 +6372,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6448,7 +6462,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6846,11 +6860,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6869,7 +6883,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7438,19 +7452,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7646,7 +7660,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8441,9 +8455,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8517,7 +8531,7 @@ msgstr "Isprati" msgid "Sensor Bar Position:" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8610,7 +8624,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8983,11 +8997,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9525,7 +9539,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9539,7 +9553,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9553,29 +9567,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9664,25 +9678,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9724,7 +9738,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9749,7 +9763,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9786,7 +9800,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9799,11 +9813,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9813,39 +9827,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9873,7 +9887,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9908,22 +9922,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9931,13 +9945,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9951,7 +9965,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9965,23 +9979,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10005,16 +10019,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10022,7 +10036,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10355,7 +10369,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10393,7 +10407,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10404,7 +10418,7 @@ msgstr "" msgid "Unknown" msgstr "Nepoznat/o" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10412,7 +10426,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10422,7 +10436,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10440,7 +10454,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10460,7 +10474,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10743,7 +10757,7 @@ msgstr "" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10751,8 +10765,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11077,7 +11091,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11452,11 +11466,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11464,11 +11478,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11479,7 +11493,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index 216fcfd1f9..1849b4b637 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -26,7 +26,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -38,7 +38,7 @@ msgstr "" "Eftersom GameCube-skivavbildningar inte innehåller mycket verifieringsdata " "kan det finnas problem som Dolphin inte kan upptäcka." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1354,11 +1354,11 @@ msgstr "Alla enheter" msgid "All files (*)" msgstr "Alla filer (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "Alla spelares koder har synkroniserats." -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "Alla spelares sparfiler har synkroniserats." @@ -1678,7 +1678,7 @@ msgstr "" msgid "Bad address provided." msgstr "Ogiltig adress angiven." -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "Inkorrekt kopia" @@ -1973,7 +1973,7 @@ msgstr "" "prestandan.

Om du är osäker kan du lämna detta " "omarkerat." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "Beräkna" @@ -2035,7 +2035,7 @@ msgstr "" "Det går inte att starta en nätspelssession medan ett spel fortfarande körs!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2297,6 +2297,20 @@ msgstr "Gemensamt" msgid "Comparand:" msgstr "Jämförare:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "Kompilera shaders före start" @@ -2437,7 +2451,7 @@ msgstr "Ansluter" msgid "Connection Type:" msgstr "Anslutningstyp:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "Innehåll {0:08x} är korrupt." @@ -3427,7 +3441,7 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Dolphin är för gammal för traverseringsservern" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." @@ -3435,7 +3449,7 @@ msgstr "" "Dolphin kan inte verifiera typiska TGC-filer korrekt eftersom de inte är " "kopior av faktiska skivor." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin kan inte verifiera olicensierade skivor." @@ -3770,11 +3784,11 @@ msgstr "Mata ut skiva" msgid "Embedded Frame Buffer (EFB)" msgstr "Inbäddad bildrutebuffert (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Tom" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emuleringstråd körs redan" @@ -4174,11 +4188,11 @@ msgstr "Fel uppstod när data behandlades." msgid "Error reading file: {0}" msgstr "Fel uppstod när fil lästes: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "Ett fel uppstod med att synkronisera fuskkoder!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "Fel uppstod när spardata synkroniserades!" @@ -4194,31 +4208,31 @@ msgstr "" "Fel: Efter \"{0}\" hittades {1} ({2:#x}) istället för sparningsmarkören {3} " "({4:#x}). Avbryter inläsning av snabbsparning…" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "Fel: GBA{0} misslyckades att initialisera kärnan" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Fel: GBA{0} misslyckades att ladda BIOS-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Fel: GBA{0} misslyckades att ladda ROM-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Fel: GBA{0} misslyckades att ladda sparfilen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Fel: GBA{0} misslyckades att öppna BIOS-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Fel: GBA{0} misslyckades att öppna ROM-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Fel: GBA{0} misslyckades att öppna sparfilen i {1}" @@ -4242,11 +4256,11 @@ msgstr "" "Fel: Försöker att komma åt Windows-1252-teckensnitt men de är inte inlästa. " "Spel kanske inte visar typsnitt korrekt, eller kraschar." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "Fel hittades i {0} block i {1}-partitionen." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "Fel hittades i {0} oanvända block i {1}-partitionen." @@ -4473,7 +4487,7 @@ msgstr "Misslyckades att lägga till i signaturfilen \"%1\"" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "Misslyckades att ansluta till Redump.org" @@ -4702,7 +4716,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "Misslyckades att öppna indatafilen \"%1\"." #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4712,8 +4726,8 @@ msgstr "" "Kontrollera att du har tillåtelse att skriva till mappen i fråga och att " "enheten inte är skrivskyddad." -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "Misslyckades att tolka data från Redump.org" @@ -4730,7 +4744,7 @@ msgid "Failed to read from file." msgstr "Kunde inte läsa från fil." #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "Misslyckades att läsa från indatafilen \"{0}\"." @@ -4834,7 +4848,7 @@ msgid "Failed to write savefile to disk." msgstr "Kunde inte skriva sparfil till disk." #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5612,7 +5626,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "Golfläge" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "Korrekt kopia" @@ -5738,7 +5752,7 @@ msgstr "Dölj inkompatibla sessioner" msgid "Hide Remote GBAs" msgstr "Dölj andras GBA-fönster" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "Hög" @@ -6250,7 +6264,7 @@ msgid "Interface" msgstr "Gränssnitt" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "Internt LZO-fel - komprimering misslyckades" @@ -6259,7 +6273,7 @@ msgstr "Internt LZO-fel - komprimering misslyckades" msgid "Internal LZO Error - decompression failed" msgstr "Internt LZO-fel - dekomprimering misslyckades" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6267,7 +6281,7 @@ msgstr "" "Internt LZO-fel - avkomprimering misslyckades ({0}) ({1}, {2}) \n" "Försök att läsa in snabbsparningen igen" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internt LZO-fel - lzo_init() misslyckades" @@ -6457,7 +6471,7 @@ msgstr "JIT Register Cache av" msgid "JIT SystemRegisters Off" msgstr "JIT SystemRegisters av" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6883,7 +6897,7 @@ msgstr "Slinga" msgid "Lost connection to NetPlay server..." msgstr "Tappade anslutningen till nätspelsservern..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "Låg" @@ -6978,7 +6992,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Kan leda till prestandaproblem i Wii-menyn och vissa spel." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "Medium" @@ -7392,11 +7406,11 @@ msgstr "Inga sökvägar hittades i M3U-filen \"{0}\"" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "Inga problem hittades." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7418,7 +7432,7 @@ msgstr "Ingen inspelning laddad." msgid "No save data found." msgstr "Ingen spardata hittades." -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Ingen undo.dtm hittades, avbryter ångring av snabbsparningsinläsning för att " @@ -8009,7 +8023,7 @@ msgstr "Privat och offentlig" msgid "Problem" msgstr "Problem" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." @@ -8017,7 +8031,7 @@ msgstr "" "Mycket allvarliga problem har påträffats. Spelet kommer mycket troligt inte " "fungera alls." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." @@ -8025,7 +8039,7 @@ msgstr "" "Smärre problem har påträffats. De kommer förmodligen inte förhindra spelet " "från att köras." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8230,7 +8244,7 @@ msgstr "" "

Om du är osäker kan du välja Ingen." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org-status:" @@ -9037,9 +9051,9 @@ msgstr "Valt teckensnitt" msgid "Selected controller profile does not exist" msgstr "Den valda kontrollprofilen finns inte" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -9145,7 +9159,7 @@ msgstr "Skicka" msgid "Sensor Bar Position:" msgstr "Position för Sensor Bar:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9249,7 +9263,7 @@ msgstr "" msgid "Settings" msgstr "Inställningar" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: Kan inte skapa filen setting.txt" @@ -9644,11 +9658,11 @@ msgstr "Sockettabell" msgid "Software Renderer" msgstr "Programvarurenderare" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "Viss data kunde inte läsas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10217,7 +10231,7 @@ msgstr "" "DFF-filens minsta tillåtna läsarversion ({0}) är större än den här FIFO-" "spelarens version ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "H3-hashtabellen för {0}-partitionen är inte korrekt." @@ -10231,7 +10245,7 @@ msgstr "IPL-filen är inte en känd korrekt version. (CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "Masterpiecepartitionerna saknas." @@ -10248,7 +10262,7 @@ msgstr "" msgid "The NAND has been repaired." msgstr "NAND-minnet har reparerats." -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10258,15 +10272,15 @@ msgstr "" "titeln till SD-kortet kommer Wii-menyn inte längre kunna starta den eller " "kopiera eller flytta tillbaka den till NAND-minnet." -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "Kanalpartitionen saknas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "Datapartitionen saknas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10276,7 +10290,7 @@ msgstr "" "emulerade laddningstiderna. Du kommer inte kunna dela indatainspelningar och " "använda nätspel med någon som använder en korrekt skivavbildning." -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10380,11 +10394,11 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "Filsystemet är ogiltigt eller kunde inte läsas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." @@ -10392,15 +10406,15 @@ msgstr "" "Formatet som skivavbildningen är sparad i lagrar inte skivavbildningens " "storlek." -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "Spel-ID:t är inkonsistent." -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "Spel-ID:t är ovanligt kort." -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "Spel-ID:t är {0} men borde vara {1}." @@ -10452,7 +10466,7 @@ msgstr "" "Värdkoden är för lång.\n" "Kontrollera att du har rätt kod." -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "Installationspartitionen saknas." @@ -10481,7 +10495,7 @@ msgstr "Profilen '%1' finns inte" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "Det inspelade spelet ({0}) är inte samma som det valda spelet ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10526,7 +10540,7 @@ msgstr "" "välja 'Nej'." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" "Det specificerade indexet för gemensam nyckel är {0} men borde vara {1}." @@ -10540,11 +10554,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "Destinationsminneskortet innehåller redan en fil med namnet \"%1\"." #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "Ticket-datan är inte korrekt signerad." -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "Typen av en partition kunde inte läsas." @@ -10556,41 +10570,41 @@ msgstr "" "Uppdateringen har avbrutits. Det rekommenderas starkt att du slutför den så " "att det inte finns inkonsistenta versioner av systemmjukvara." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" "Uppdateringspartitionen innehåller inte det IOS som används av den här " "titeln." -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "Uppdateringspartitionen saknas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "Uppdateringspartitionen är inte på sin normala position." -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "{0}-partitionen har inte ett giltigt filsystem." -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "{0}-partitionen verkar inte innehålla giltig data." -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "{0}-partitionen är inte korrekt signerad." -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "{0}-partitionen ligger inte på en giltig position." -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "Det finns för många partitioner i den första partitionstabellen." -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Det finns inget att ångra!" @@ -10624,7 +10638,7 @@ msgstr "Den här Gecko-koden innehåller inga rader." #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10663,17 +10677,17 @@ msgstr "" msgid "This cannot be undone!" msgstr "Det går inte att ångra detta!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" "Denna skivavbildning av en utvecklarskiva har samma storlek som en " "skivavbildning av en vanlig skiva." -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "Denna skivavbildning har en ovanlig storlek." -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10684,7 +10698,7 @@ msgstr "" "indatainspelningar och använda nätspel med någon som använder en korrekt " "skivavbildning." -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10697,7 +10711,7 @@ msgstr "" "matchar CRC32-kontrollsumman av en korrekt skivavbildning trots att filerna " "inte är identiska." -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10706,7 +10720,7 @@ msgstr "" "dumpningsprogram sparade skivavbildningen som flera delar måste du " "sammanfoga dem till en enda fil." -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10723,7 +10737,7 @@ msgstr "Den här filen innehåller inte ett giltigt Wii-filsystem." msgid "This file does not look like a BootMii NAND backup." msgstr "Filen verkar inte vara en BootMii-NAND-kopia." -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10744,11 +10758,11 @@ msgstr "" "grafikkort eller dess drivrutiner stöder inte det. På grund av detta kommer " "spelet vara buggigt eller frysa." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "Detta är en inkorrekt kopia." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." @@ -10756,7 +10770,7 @@ msgstr "" "Detta är en inkorrekt kopia. Det betyder inte nödvändigtvis att spelet inte " "kommer fungera rätt." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10764,7 +10778,7 @@ msgstr "" "Detta är en korrekt kopia enligt Redump.org, men Dolphin har hittat problem. " "Detta skulle kunna vara en bugg i Dolphin." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "Detta är en korrekt kopia." @@ -10793,16 +10807,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "Denna titel kan inte startas." -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "Denna titel är inställd på att använda ett ogiltigt IOS." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "Denna titel är inställd på att använda en ogiltig gemensam nyckel." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10814,7 +10828,7 @@ msgstr "" "\n" "DSPHLE: Okänd µcode (CRC = {0:08x}) - AX kommer användas." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -11186,7 +11200,7 @@ msgstr "" msgid "Unable to read file." msgstr "Misslyckades att läsa fil." -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "Kunde inte skriva till filen {0}" @@ -11227,7 +11241,7 @@ msgstr "" msgid "United States" msgstr "USA" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -11238,7 +11252,7 @@ msgstr "USA" msgid "Unknown" msgstr "Okänd" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Okänt DVD-kommando {0:08x} - katastrofalt fel" @@ -11246,7 +11260,7 @@ msgstr "Okänt DVD-kommando {0:08x} - katastrofalt fel" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "Tog emot ett okänt SYNC_CODES-meddelande med id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -11258,7 +11272,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "Tog emot ett okänt SYNC_SAVE_DATA-meddelande med id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11278,7 +11292,7 @@ msgstr "Okänd författare" msgid "Unknown data type" msgstr "Okänd datatyp" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Okänd skiva" @@ -11298,7 +11312,7 @@ msgstr "Okänt fel." msgid "Unknown message received with id : {0}" msgstr "Tog emot ett okänt meddelande med id: {0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" "Tog emot ett okänt meddelande med id:{0} från spelare:{1} Spelaren sparkas " @@ -11612,7 +11626,7 @@ msgstr "Felsökningsnivå" msgid "Verify" msgstr "Verifiera" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "Verifiera integritet" @@ -11620,8 +11634,8 @@ msgstr "Verifiera integritet" msgid "Verify certificates" msgstr "Verifiera certifikat" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "Verifierar" @@ -12013,7 +12027,7 @@ msgstr "Wii-TAS-inmatning %1 - Wii-fjärrkontroll + Nunchuk" msgid "Wii and Wii Remote" msgstr "Wii och Wii-fjärrkontroller" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii-data är inte offentlig än" @@ -12431,11 +12445,11 @@ msgstr "ej justerat" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12445,11 +12459,11 @@ msgstr "" "{0}-IPL hittades i {1}-mappen. Det kan hända att skivan inte kommer kunna " "kännas igen" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} misslyckades att synkronisera koder." -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} misslyckades att synkronisera." @@ -12462,7 +12476,7 @@ msgstr "" "Kontrollera skrivrättigheterna eller flytta filen utanför Dolphin." #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} av {1} block. Komprimeringsgrad {2}%" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index c4e6a9d2b4..114d4fd721 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -28,7 +28,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -40,7 +40,7 @@ msgstr "" "GameCube disk kalıpları çok az doğrulama verisi içerdiğinden, Dolphin'in " "tespit edemediği sorunlar olabilir." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1301,11 +1301,11 @@ msgstr "Tüm cihazlar" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1610,7 +1610,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1898,7 +1898,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1954,7 +1954,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2202,6 +2202,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2344,7 +2358,7 @@ msgstr "" msgid "Connection Type:" msgstr "Bağlantı Tipi:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3235,13 +3249,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "Dolphin geçiş sunucusu için çok eski" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3549,11 +3563,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Yerleşik Çerçeve Arabellği (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "Boş" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "Emülasyon işlemi zaten çalışıyor" @@ -3913,11 +3927,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3931,31 +3945,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3975,11 +3989,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4204,7 +4218,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4411,15 +4425,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4436,7 +4450,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4531,7 +4545,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5248,7 +5262,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5369,7 +5383,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5807,7 +5821,7 @@ msgid "Interface" msgstr "Arayüz" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "İç LZO Hatası - Sıkıştırma başarısız." @@ -5816,13 +5830,13 @@ msgstr "İç LZO Hatası - Sıkıştırma başarısız." msgid "Internal LZO Error - decompression failed" msgstr "Dahili LZO Hatası - genişletme başarısız" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "İç LZO Hatası - lzo_init() başarısız." @@ -6012,7 +6026,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6422,7 +6436,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6512,7 +6526,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "Bu Wii Menüsünde ve bazı oyunlarda yavaşlamaya neden olabilir." #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6910,11 +6924,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6933,7 +6947,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7504,19 +7518,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7712,7 +7726,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8509,9 +8523,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "Seçilmiş kontrolcü profili yok" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8585,7 +8599,7 @@ msgstr "Gönder" msgid "Sensor Bar Position:" msgstr "Sensör Çubuğu Konumu:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8681,7 +8695,7 @@ msgstr "" msgid "Settings" msgstr "Ayarlar" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: setting.txt dosyası oluşturulamıyor" @@ -9056,11 +9070,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9598,7 +9612,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9612,7 +9626,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9626,29 +9640,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9737,25 +9751,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9797,7 +9811,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9822,7 +9836,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9859,7 +9873,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9872,11 +9886,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9888,39 +9902,39 @@ msgstr "" "Güncelleştirme iptal edildi. Sistemin dengesiz çalışmasını istemiyorsanız, " "yeni sürüm güncelleştirmelerini tamamlamanız önerilir." -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "Geri alacak hiçbirşey yok!" @@ -9954,7 +9968,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9990,22 +10004,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10013,13 +10027,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10033,7 +10047,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10050,23 +10064,23 @@ msgstr "" "grafik kartınız veya sürücünüz bunu desteklemiyor. Sonuç olarak, oyunu " "oynarken hata ve donma sorunları ile karşılaşacaksınız." -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10090,16 +10104,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10107,7 +10121,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10441,7 +10455,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10481,7 +10495,7 @@ msgstr "" msgid "United States" msgstr "ABD" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10492,7 +10506,7 @@ msgstr "ABD" msgid "Unknown" msgstr "Bilinmeyen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10500,7 +10514,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10510,7 +10524,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10528,7 +10542,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "Bilinmeyen disk" @@ -10548,7 +10562,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10832,7 +10846,7 @@ msgstr "Ayrıntı seviyesi" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10840,8 +10854,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11168,7 +11182,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "Wii ve Wii Remote" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11547,11 +11561,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11559,11 +11573,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11574,7 +11588,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 91e7c0fc22..2ad847d979 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -31,7 +31,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -43,7 +43,7 @@ msgstr "" "由于 GameCube 光盘镜像包含很少的验证数据,因此可能存在 Dolphin 无法检测到的问" "题。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1342,11 +1342,11 @@ msgstr "所有设备" msgid "All files (*)" msgstr "所有文件 (*)" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "所有玩家代码已同步。" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "所有玩家存档已同步。" @@ -1662,7 +1662,7 @@ msgstr "给定值错误" msgid "Bad address provided." msgstr "地址格式不正确。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "错误的转储" @@ -1954,7 +1954,7 @@ msgstr "" "正可能的卡顿。

如果不确定,请不要勾选此项。" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "计算" @@ -2013,7 +2013,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "游戏运行时无法启动联机会话!" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2265,6 +2265,20 @@ msgstr "通用" msgid "Comparand:" msgstr "被比较字:" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "在开始前编译着色器" @@ -2405,7 +2419,7 @@ msgstr "正在连接" msgid "Connection Type:" msgstr "连接类型:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "内容 {0:08x} 已损坏。" @@ -3354,13 +3368,13 @@ msgstr "Dolphin 是一个免费开源的 GameCube/Wii 模拟器。" msgid "Dolphin is too old for traversal server" msgstr "Dolphin 版本太旧,穿透服务器不支持" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "Dolphin 无法正确验证典型的 TGC 文件,因为其不是真实光盘的转储。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "Dolphin 无法验证未经授权的光盘。" @@ -3686,11 +3700,11 @@ msgstr "弹出光盘" msgid "Embedded Frame Buffer (EFB)" msgstr "内置帧缓冲 (EFB)" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "空" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "模拟线程已经在运行" @@ -4072,11 +4086,11 @@ msgstr "处理数据时出错。" msgid "Error reading file: {0}" msgstr "读取文件时出错:{0}" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "同步保存金手指代码时出错!" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "同步存档数据时出错!" @@ -4092,31 +4106,31 @@ msgstr "" "错误:在 “{0}” 之后,发现了 {1} ({2:#x}) 而非存档标记 {3} ({4:#x})。正在中止" "加载即时存档..." -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "错误: GBA{0} 创建核心失败" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "错误: GBA{0} 在 {1} 中加载 BIOS 失败" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "错误: GBA{0} 在 {1} 中加载 ROM 失败" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "错误: GBA{0} 在 {1} 中加载存档失败" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "错误: GBA{0} 在 {1} 中打开 BIOS 失败" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "错误: GBA{0} 在 {1} 中打开 ROM 失败" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "错误: GBA{0} 在 {1} 中打开存档失败" @@ -4140,11 +4154,11 @@ msgstr "" "错误: 正在试图访问 Windows-1252 字体,但它们没有加载。游戏可能无法正确显示字" "体,或者崩溃。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "在 {1} 分区的 {0} 区块中发现错误。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "在 {1} 分区未使用的 {0} 区块中发现错误。" @@ -4383,7 +4397,7 @@ msgstr "附加到签名文件 '%1' 失败" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "申请蓝牙直通接口失败: {0}" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "连接 Redump.org 失败" @@ -4600,7 +4614,7 @@ msgid "Failed to open the input file \"%1\"." msgstr "打开输入文件 \"%1\" 失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " @@ -4609,8 +4623,8 @@ msgstr "" "无法打开输出文件 “{0}”。\n" "请检查是否有权限写入目标文件夹并且该媒体能够被写入。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "解析 Redump.org 数据失败" @@ -4627,7 +4641,7 @@ msgid "Failed to read from file." msgstr "从文件读取失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "从输入文件 “{0}” 读取失败。" @@ -4725,7 +4739,7 @@ msgid "Failed to write savefile to disk." msgstr "存档文件写入磁盘失败。" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5496,7 +5510,7 @@ msgstr "GiB" msgid "Golf Mode" msgstr "高尔夫模式" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "正确的转储" @@ -5620,7 +5634,7 @@ msgstr "隐藏不兼容的会话" msgid "Hide Remote GBAs" msgstr "隐藏远程 GBA" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "高" @@ -6111,7 +6125,7 @@ msgid "Interface" msgstr "界面" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "内部 LZO 错误 - 压缩失败" @@ -6120,7 +6134,7 @@ msgstr "内部 LZO 错误 - 压缩失败" msgid "Internal LZO Error - decompression failed" msgstr "内部 LZO 错误 - 解压失败" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6128,7 +6142,7 @@ msgstr "" "内部 LZO 错误 - 解压失败 ({0}) ({1}, {2})\n" "请尝试重新加载状态" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "内部 LZO 错误 - lzo_init() 失败" @@ -6318,7 +6332,7 @@ msgstr "关闭 JIT 寄存器缓存" msgid "JIT SystemRegisters Off" msgstr "关闭 JIT 系统寄存器" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6744,7 +6758,7 @@ msgstr "循环" msgid "Lost connection to NetPlay server..." msgstr "丢失联机服务器连接..." -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "低" @@ -6837,7 +6851,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "这会导致 Wii 菜单和一些游戏减速。" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "中等" @@ -7246,11 +7260,11 @@ msgstr "在 M3U 文件 “{0}” 中找不到路径" msgid "No possible functions left. Reset." msgstr "未发现可能的函数,重置。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "未发现任何问题。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -7271,7 +7285,7 @@ msgstr "没有录制被载入。" msgid "No save data found." msgstr "没有找到存档数据。" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "未找到 undo.dtm 文件,为防止影片出现不同步撤销载入状态操作被取消。" @@ -7849,19 +7863,19 @@ msgstr "私密和公开" msgid "Problem" msgstr "问题" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "发现高严重性问题。游戏很可能根本无法运作。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "发现低严重性问题。这些问题很可能不会影响游戏运行。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -8061,7 +8075,7 @@ msgstr "" "锯齿并且还可将抗锯齿应用于光源、着色器效果与纹理。

" "如果不确定,选择“无”。" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "Redump.org 状态:" @@ -8865,9 +8879,9 @@ msgstr "所选字体" msgid "Selected controller profile does not exist" msgstr "所选控制器预设不存在" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8962,7 +8976,7 @@ msgstr "发送" msgid "Sensor Bar Position:" msgstr "感应条位置:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -9062,7 +9076,7 @@ msgstr "" msgid "Settings" msgstr "设置" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "SetupWiiMemory: 无法创建 setting.txt 文件" @@ -9451,11 +9465,11 @@ msgstr "套接字表" msgid "Software Renderer" msgstr "软件渲染器" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "一些数据无法读取。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -10015,7 +10029,7 @@ msgid "" "Player ({1})" msgstr "DFF 的最低加载程序版本 ({0}) 超过此 FIFO 播放器的版本 ({1})" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "分区 {0} 的 H3 哈希表不正确。" @@ -10029,7 +10043,7 @@ msgstr "此 IPL 文件不是已知的正确转储。(CRC32: {0:x})" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "缺少杰作分区。" @@ -10043,7 +10057,7 @@ msgstr "该 NAND 无法修复。建议备份您当前的数据并使用新的 NA msgid "The NAND has been repaired." msgstr "NAND 已修复。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " @@ -10052,15 +10066,15 @@ msgstr "" "TMD 文件未正确签名。如果你将此游戏移动或复制到 SD 卡,Wii 系统菜单将不再运行" "该游戏,并且也会拒绝将其复制或移动回 NAND。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "缺少通道分区。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "缺少数据分区。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " @@ -10069,7 +10083,7 @@ msgstr "" "数据分区不在正常位置。这会影响模拟的加载时间。你将无法与正在使用正确转储的其" "他人共享输入录制和使用联机功能。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -10171,25 +10185,25 @@ msgstr "" "文件名 %1 不符合 Dolphin 的存储卡区域代码格式。请将此文件重命名为 %2、%3 或 " "%4,以匹配其存档文件的区域。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "文件系统无效或无法读取。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "此光盘镜像的保存格式不存储光盘镜像的大小。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "游戏 ID 不一致。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "游戏 ID 异常短。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "游戏 ID 是 {0} ,但应该为 {1} 。" @@ -10239,7 +10253,7 @@ msgstr "" "主机代码太长。\n" "请重新检查你是否有正确的代码。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "缺少安装分区。" @@ -10266,7 +10280,7 @@ msgstr "配置文件 '%1' 不存在" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "被录制的游戏 ({0}) 与所选游戏 ({1}) 不一致" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -10308,7 +10322,7 @@ msgstr "" "您真的想要启用软件渲染吗?如果不确定,请选择“否”。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "指定的公用密钥索引是 {0} ,但应该为 {1} 。" @@ -10321,11 +10335,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "目标存储卡已包含文件 “%1”。" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "ticket 文件未正确签名。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "无法读取的分区类型。" @@ -10335,39 +10349,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "更新已被取消。强烈建议你完成更新,以避免不一致的系统软件版本。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "更新分区未包含此游戏使用的 IOS。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "缺少更新分区。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "更新分区未处于正常位置。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "分区 {0} 无有效的文件系统。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "分区 {0} 似乎未包含有效数据。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "分区 {0} 未正确签名。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "分区 {0} 未正确对齐。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "第一个分区表中的分区太多。" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "没有需要撤销的操作。" @@ -10400,7 +10414,7 @@ msgstr "此 Gecko 代码不包含任何行。" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -10438,15 +10452,15 @@ msgstr "" msgid "This cannot be undone!" msgstr "不能被撤销!" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "此调试版光盘镜像和零售版光盘镜像大小一样。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "此光盘镜像大小异常。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " @@ -10455,7 +10469,7 @@ msgstr "" "此光盘镜像大小异常。这可能会使模拟的加载时间更长。你将无法与正在使用正确转储" "的其他人共享输入录制和使用联机功能。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -10465,7 +10479,7 @@ msgstr "" "此光盘镜像采用 NKit 格式。这种格式并不是一个正确的转储,但如果转换回去可能会" "变成正确转储。即使文件不相同,此文件的 CRC32 也可能与正确转储的 CRC32 匹配。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." @@ -10473,7 +10487,7 @@ msgstr "" "此光盘镜像太小并且缺少一些数据。如果你的转储程序将光盘镜像保存为多个部分,则" "需要将其合并为一个文件。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -10489,7 +10503,7 @@ msgstr "此文件未包含有效的 Wii 文件系统。" msgid "This file does not look like a BootMii NAND backup." msgstr "此文件似乎不是一个 BootMii NAND 备份。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -10507,17 +10521,17 @@ msgstr "" "这个游戏需要边框模拟才能正常运行,但你的显卡或其驱动程序不支持。 因此在运行此" "游戏时将会发生错误或画面冻结。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "这是一个错误的转储。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "这是一个错误的转储。但并不一定表示游戏无法正常运行。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." @@ -10525,7 +10539,7 @@ msgstr "" "依据 Redump.org,这是一个正确的转储,但 Dolphin 发现了问题。这可能是 Dolphin " "中的错误。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "这是一个正确的转储。" @@ -10552,16 +10566,16 @@ msgstr "该软件不能用于运行你非法持有的游戏。" msgid "This title cannot be booted." msgstr "无法启动该软件。" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "此游戏设置为使用无效的 IOS。" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "此游戏设置为使用无效的公用密钥。" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10572,7 +10586,7 @@ msgstr "" "\n" "DSP HLE: 未知 Ucode (CRC = {0:08x}) - 强制 AX." -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10927,7 +10941,7 @@ msgstr "" msgid "Unable to read file." msgstr "无法读取文件。" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "无法写入文件 {0}" @@ -10967,7 +10981,7 @@ msgstr "" msgid "United States" msgstr "美国" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10978,7 +10992,7 @@ msgstr "美国" msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "未知 DVD 命令 {0:08x} - 致命错误" @@ -10986,7 +11000,7 @@ msgstr "未知 DVD 命令 {0:08x} - 致命错误" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "收到未知的 同步_代码 消息,ID:{0}" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10996,7 +11010,7 @@ msgstr "收到未知的 同步_GECKO_代码 消息,ID:{0} 来自玩家:{1} msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "收到未知的 同步_存档_数据 消息,ID:{0}" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -11014,7 +11028,7 @@ msgstr "未知作者" msgid "Unknown data type" msgstr "未知数据类型" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "未知光盘" @@ -11034,7 +11048,7 @@ msgstr "未知错误。" msgid "Unknown message received with id : {0}" msgstr "收到未知的消息,ID:{0}" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "收到未知的消息,ID:{0} 来自玩家:{1} 剔除玩家!" @@ -11348,7 +11362,7 @@ msgstr "详细" msgid "Verify" msgstr "验证" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "验证完整性" @@ -11356,8 +11370,8 @@ msgstr "验证完整性" msgid "Verify certificates" msgstr "验证证书" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "正在验证" @@ -11724,7 +11738,7 @@ msgstr "Wii TAS 输入 %1 - Wii 遥控器 + 双节棍" msgid "Wii and Wii Remote" msgstr "Wii 和 Wii 遥控器" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "Wii 数据尚未公开" @@ -12134,11 +12148,11 @@ msgstr "未对齐" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "{0} (Masterpiece)" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "{0} (NKit)" @@ -12146,11 +12160,11 @@ msgstr "{0} (NKit)" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "{0} IPL 位于 {1} 目录中。光盘可能无法识别" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "{0} 同步代码失败。" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "{0} 同步失败。" @@ -12163,7 +12177,7 @@ msgstr "" "请验证你的写入权限或者将文件移动至 Dolphin 之外" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "区块 {0} ,共 {1} 。压缩率 {2}%" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index 95ddbaf78f..c82d6271d3 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-29 22:48+0200\n" +"POT-Creation-Date: 2022-08-06 15:49+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1406 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1452 msgid "" "\n" "\n" @@ -33,7 +33,7 @@ msgid "" "problems that Dolphin is unable to detect." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1458 msgid "" "\n" "\n" @@ -1268,11 +1268,11 @@ msgstr "" msgid "All files (*)" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1170 +#: Source/Core/Core/NetPlayServer.cpp:1172 msgid "All players' codes synchronized." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1127 +#: Source/Core/Core/NetPlayServer.cpp:1129 msgid "All players' saves synchronized." msgstr "" @@ -1577,7 +1577,7 @@ msgstr "" msgid "Bad address provided." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:354 msgid "Bad dump" msgstr "" @@ -1863,7 +1863,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:107 msgid "Calculate" msgstr "" @@ -1919,7 +1919,7 @@ msgid "Can't start a NetPlay Session while a game is still running!" msgstr "" #: Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp:57 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 #: Source/Core/DolphinQt/MenuBar.cpp:1303 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:59 #: Source/Core/DolphinQt/Settings/USBDeviceAddToWhitelistDialog.cpp:50 @@ -2166,6 +2166,20 @@ msgstr "" msgid "Comparand:" msgstr "" +#: Source/Core/DiscIO/VolumeVerifier.cpp:1427 +msgid "" +"Compared to the Wii disc release of the game, problems of low severity were " +"found. Despite this, it's possible that this is a good dump compared to the " +"Wii U eShop release of the game. Dolphin can't verify this." +msgstr "" + +#: Source/Core/DiscIO/VolumeVerifier.cpp:1391 +msgid "" +"Compared to the Wii disc release of the game, this is a bad dump. Despite " +"this, it's possible that this is a good dump compared to the Wii U eShop " +"release of the game. Dolphin can't verify this." +msgstr "" + #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:127 msgid "Compile Shaders Before Starting" msgstr "" @@ -2306,7 +2320,7 @@ msgstr "" msgid "Connection Type:" msgstr "連線類型:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1204 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1231 msgid "Content {0:08x} is corrupt." msgstr "" @@ -3187,13 +3201,13 @@ msgstr "" msgid "Dolphin is too old for traversal server" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1353 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1380 msgid "" "Dolphin is unable to verify typical TGC files properly, since they are not " "dumps of actual discs." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1346 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1373 msgid "Dolphin is unable to verify unlicensed discs." msgstr "" @@ -3501,11 +3515,11 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:468 +#: Source/Core/Core/State.cpp:504 msgid "Empty" msgstr "" -#: Source/Core/Core/Core.cpp:225 +#: Source/Core/Core/Core.cpp:226 msgid "Emu Thread already running" msgstr "模擬器線程已經執行中" @@ -3857,11 +3871,11 @@ msgstr "" msgid "Error reading file: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1442 +#: Source/Core/Core/NetPlayServer.cpp:1444 msgid "Error synchronizing cheat codes!" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1429 +#: Source/Core/Core/NetPlayServer.cpp:1431 msgid "Error synchronizing save data!" msgstr "" @@ -3875,31 +3889,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:192 +#: Source/Core/Core/HW/GBACore.cpp:190 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:347 +#: Source/Core/Core/HW/GBACore.cpp:345 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:212 +#: Source/Core/Core/HW/GBACore.cpp:210 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:366 +#: Source/Core/Core/HW/GBACore.cpp:364 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:341 +#: Source/Core/Core/HW/GBACore.cpp:339 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:182 +#: Source/Core/Core/HW/GBACore.cpp:180 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:360 +#: Source/Core/Core/HW/GBACore.cpp:358 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -3919,11 +3933,11 @@ msgid "" "may not show fonts correctly, or crash." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1302 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1329 msgid "Errors were found in {0} blocks in the {1} partition." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1340 msgid "Errors were found in {0} unused blocks in the {1} partition." msgstr "" @@ -4148,7 +4162,7 @@ msgstr "" msgid "Failed to claim interface for BT passthrough: {0}" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:107 +#: Source/Core/DiscIO/VolumeVerifier.cpp:108 msgid "Failed to connect to Redump.org" msgstr "" @@ -4355,15 +4369,15 @@ msgid "Failed to open the input file \"%1\"." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:282 Source/Core/DiscIO/FileBlob.cpp:53 -#: Source/Core/DiscIO/WIABlob.cpp:2044 +#: Source/Core/DiscIO/WIABlob.cpp:2036 msgid "" "Failed to open the output file \"{0}\".\n" "Check that you have permissions to write the target folder and that the " "media can be written." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:219 -#: Source/Core/DiscIO/VolumeVerifier.cpp:317 +#: Source/Core/DiscIO/VolumeVerifier.cpp:220 +#: Source/Core/DiscIO/VolumeVerifier.cpp:318 msgid "Failed to parse Redump.org data" msgstr "" @@ -4380,7 +4394,7 @@ msgid "Failed to read from file." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:373 Source/Core/DiscIO/FileBlob.cpp:93 -#: Source/Core/DiscIO/WIABlob.cpp:2059 +#: Source/Core/DiscIO/WIABlob.cpp:2051 msgid "Failed to read from the input file \"{0}\"." msgstr "" @@ -4475,7 +4489,7 @@ msgid "Failed to write savefile to disk." msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:377 Source/Core/DiscIO/FileBlob.cpp:99 -#: Source/Core/DiscIO/WIABlob.cpp:2063 +#: Source/Core/DiscIO/WIABlob.cpp:2055 msgid "" "Failed to write the output file \"{0}\".\n" "Check that you have enough space available on the target drive." @@ -5192,7 +5206,7 @@ msgstr "" msgid "Golf Mode" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:343 +#: Source/Core/DiscIO/VolumeVerifier.cpp:344 msgid "Good dump" msgstr "" @@ -5313,7 +5327,7 @@ msgstr "" msgid "Hide Remote GBAs" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:206 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:425 msgid "High" msgstr "" @@ -5751,7 +5765,7 @@ msgid "Interface" msgstr "界面" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:384 +#: Source/Core/Core/State.cpp:420 msgid "Internal LZO Error - compression failed" msgstr "內部 LZO 錯誤 - 壓縮失敗" @@ -5760,13 +5774,13 @@ msgstr "內部 LZO 錯誤 - 壓縮失敗" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:530 +#: Source/Core/Core/State.cpp:565 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:635 +#: Source/Core/Core/State.cpp:670 msgid "Internal LZO Error - lzo_init() failed" msgstr "內部 LZO 錯誤 - lzo_init() 失敗" @@ -5956,7 +5970,7 @@ msgstr "" msgid "JIT SystemRegisters Off" msgstr "" -#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:879 +#: Source/Core/Core/PowerPC/Jit64/Jit.cpp:876 #: Source/Core/Core/PowerPC/JitArm64/Jit.cpp:719 msgid "" "JIT failed to find code space after a cache clear. This should never happen. " @@ -6366,7 +6380,7 @@ msgstr "" msgid "Lost connection to NetPlay server..." msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:194 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:200 #: Source/Core/DolphinQt/Settings/AudioPane.cpp:421 msgid "Low" msgstr "" @@ -6456,7 +6470,7 @@ msgid "May cause slow down in Wii Menu and some games." msgstr "" #: Source/Core/DolphinQt/Config/GameConfigEdit.cpp:228 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:197 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:203 msgid "Medium" msgstr "" @@ -6854,11 +6868,11 @@ msgstr "" msgid "No possible functions left. Reset." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1383 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1420 msgid "No problems were found." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1377 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1414 msgid "" "No problems were found. This does not guarantee that this is a good dump, " "but since Wii titles contain a lot of verification data, it does mean that " @@ -6877,7 +6891,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:726 +#: Source/Core/Core/State.cpp:761 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -7446,19 +7460,19 @@ msgstr "" msgid "Problem" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1444 msgid "" "Problems with high severity were found. The game will most likely not work " "at all." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1388 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1433 msgid "" "Problems with low severity were found. They will most likely not prevent the " "game from running." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1393 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1439 msgid "" "Problems with medium severity were found. The whole game or certain parts of " "the game might not work correctly." @@ -7654,7 +7668,7 @@ msgid "" "unsure, select None.
" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:81 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:86 msgid "Redump.org Status:" msgstr "" @@ -8449,9 +8463,9 @@ msgstr "" msgid "Selected controller profile does not exist" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1282 -#: Source/Core/Core/NetPlayServer.cpp:1625 -#: Source/Core/Core/NetPlayServer.cpp:1902 +#: Source/Core/Core/NetPlayServer.cpp:1284 +#: Source/Core/Core/NetPlayServer.cpp:1628 +#: Source/Core/Core/NetPlayServer.cpp:1905 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 msgid "Selected game doesn't exist in game list!" @@ -8525,7 +8539,7 @@ msgstr "傳送" msgid "Sensor Bar Position:" msgstr "傳感器位置:" -#: Source/Core/DiscIO/VolumeVerifier.cpp:313 +#: Source/Core/DiscIO/VolumeVerifier.cpp:314 msgid "" "Serial and/or version data is missing from {0}\n" "Please append \"{1}\" (without the quotes) to the datfile URL when " @@ -8618,7 +8632,7 @@ msgstr "" msgid "Settings" msgstr "" -#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:410 +#: Source/Core/Core/Boot/Boot_BS2Emu.cpp:411 msgid "SetupWiiMemory: Can't create setting.txt file" msgstr "" @@ -8991,11 +9005,11 @@ msgstr "" msgid "Software Renderer" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1292 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1319 msgid "Some of the data could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1025 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1045 msgid "" "Some padding data that should be zero is not zero. This can make the game " "freeze at certain points." @@ -9533,7 +9547,7 @@ msgid "" "Player ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:580 +#: Source/Core/DiscIO/VolumeVerifier.cpp:598 msgid "The H3 hash table for the {0} partition is not correct." msgstr "" @@ -9547,7 +9561,7 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:465 +#: Source/Core/DiscIO/VolumeVerifier.cpp:483 msgid "The Masterpiece partitions are missing." msgstr "" @@ -9561,29 +9575,29 @@ msgstr "" msgid "The NAND has been repaired." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:980 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1000 msgid "" "The TMD is not correctly signed. If you move or copy this title to the SD " "Card, the Wii System Menu will not launch it anymore and will also refuse to " "copy or move it back to the NAND." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:448 +#: Source/Core/DiscIO/VolumeVerifier.cpp:466 msgid "The channel partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:443 +#: Source/Core/DiscIO/VolumeVerifier.cpp:461 msgid "The data partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:482 +#: Source/Core/DiscIO/VolumeVerifier.cpp:500 msgid "" "The data partition is not at its normal position. This will affect the " "emulated loading times. You will be unable to share input recordings and use " "NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:593 +#: Source/Core/DiscIO/VolumeVerifier.cpp:611 msgid "" "The data size for the {0} partition is not evenly divisible by the block " "size." @@ -9672,25 +9686,25 @@ msgid "" "of the save files that are on it." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:412 +#: Source/Core/DiscIO/VolumeVerifier.cpp:430 msgid "The filesystem is invalid or could not be read." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:761 +#: Source/Core/DiscIO/VolumeVerifier.cpp:778 msgid "" "The format that the disc image is saved in does not store the size of the " "disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:864 +#: Source/Core/DiscIO/VolumeVerifier.cpp:884 msgid "The game ID is inconsistent." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:875 +#: Source/Core/DiscIO/VolumeVerifier.cpp:895 msgid "The game ID is unusually short." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:856 +#: Source/Core/DiscIO/VolumeVerifier.cpp:876 msgid "The game ID is {0} but should be {1}." msgstr "" @@ -9732,7 +9746,7 @@ msgid "" "Please recheck that you have the correct code." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:453 +#: Source/Core/DiscIO/VolumeVerifier.cpp:471 msgid "The install partition is missing." msgstr "" @@ -9757,7 +9771,7 @@ msgstr "" msgid "The recorded game ({0}) is not the same as the selected game ({1})" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:893 +#: Source/Core/DiscIO/VolumeVerifier.cpp:913 msgid "" "The region code does not match the game ID. If this is because the region " "code has been modified, the game might run at the wrong speed, graphical " @@ -9794,7 +9808,7 @@ msgid "" msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:953 +#: Source/Core/DiscIO/VolumeVerifier.cpp:973 msgid "The specified common key index is {0} but should be {1}." msgstr "" @@ -9807,11 +9821,11 @@ msgid "The target memory card already contains a file \"%1\"." msgstr "" #. i18n: "Ticket" here is a kind of digital authorization to use a certain title (e.g. a game) -#: Source/Core/DiscIO/VolumeVerifier.cpp:971 +#: Source/Core/DiscIO/VolumeVerifier.cpp:991 msgid "The ticket is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:504 +#: Source/Core/DiscIO/VolumeVerifier.cpp:522 msgid "The type of a partition could not be read." msgstr "" @@ -9821,39 +9835,39 @@ msgid "" "order to avoid inconsistent system software versions." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:663 +#: Source/Core/DiscIO/VolumeVerifier.cpp:681 msgid "The update partition does not contain the IOS used by this title." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:438 +#: Source/Core/DiscIO/VolumeVerifier.cpp:456 msgid "The update partition is missing." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:473 +#: Source/Core/DiscIO/VolumeVerifier.cpp:491 msgid "The update partition is not at its normal position." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:622 +#: Source/Core/DiscIO/VolumeVerifier.cpp:640 msgid "The {0} partition does not have a valid file system." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:553 +#: Source/Core/DiscIO/VolumeVerifier.cpp:571 msgid "The {0} partition does not seem to contain valid data." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:573 +#: Source/Core/DiscIO/VolumeVerifier.cpp:591 msgid "The {0} partition is not correctly signed." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:520 +#: Source/Core/DiscIO/VolumeVerifier.cpp:538 msgid "The {0} partition is not properly aligned." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:426 +#: Source/Core/DiscIO/VolumeVerifier.cpp:444 msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:731 +#: Source/Core/Core/State.cpp:766 msgid "There is nothing to undo!" msgstr "" @@ -9883,7 +9897,7 @@ msgstr "" #. i18n: You may want to leave the term "ERROR #002" untranslated, #. since the emulated software always displays it in English. -#: Source/Core/DiscIO/VolumeVerifier.cpp:918 +#: Source/Core/DiscIO/VolumeVerifier.cpp:938 msgid "" "This Korean title is set to use an IOS that typically isn't used on Korean " "consoles. This is likely to lead to ERROR #002." @@ -9918,22 +9932,22 @@ msgstr "" msgid "This cannot be undone!" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:805 +#: Source/Core/DiscIO/VolumeVerifier.cpp:825 msgid "This debug disc image has the size of a retail disc image." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:828 +#: Source/Core/DiscIO/VolumeVerifier.cpp:848 msgid "This disc image has an unusual size." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:822 +#: Source/Core/DiscIO/VolumeVerifier.cpp:842 msgid "" "This disc image has an unusual size. This will likely make the emulated " "loading times longer. You will likely be unable to share input recordings " "and use NetPlay with anyone who is using a good dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:990 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1010 msgid "" "This disc image is in the NKit format. It is not a good dump in its current " "form, but it might become a good dump if converted back. The CRC32 of this " @@ -9941,13 +9955,13 @@ msgid "" "identical." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:781 +#: Source/Core/DiscIO/VolumeVerifier.cpp:798 msgid "" "This disc image is too small and lacks some data. If your dumping program " "saved the disc image as several parts, you need to merge them into one file." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:778 +#: Source/Core/DiscIO/VolumeVerifier.cpp:795 msgid "" "This disc image is too small and lacks some data. The problem is most likely " "that this is a dual-layer disc that has been dumped as a single-layer disc." @@ -9961,7 +9975,7 @@ msgstr "" msgid "This file does not look like a BootMii NAND backup." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:753 +#: Source/Core/DiscIO/VolumeVerifier.cpp:770 msgid "" "This game has been hacked to fit on a single-layer DVD. Some content such as " "pre-rendered videos, extra languages or entire game modes will be broken. " @@ -9975,23 +9989,23 @@ msgid "" "or freezes while running this game." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1368 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1405 msgid "This is a bad dump." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1362 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1398 msgid "" "This is a bad dump. This doesn't necessarily mean that the game won't run " "correctly." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1338 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1365 msgid "" "This is a good dump according to Redump.org, but Dolphin has found problems. " "This might be a bug in Dolphin." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:1333 +#: Source/Core/DiscIO/VolumeVerifier.cpp:1360 msgid "This is a good dump." msgstr "" @@ -10015,16 +10029,16 @@ msgstr "" msgid "This title cannot be booted." msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:926 +#: Source/Core/DiscIO/VolumeVerifier.cpp:946 msgid "This title is set to use an invalid IOS." msgstr "" #. i18n: This is "common" as in "shared", not the opposite of "uncommon" -#: Source/Core/DiscIO/VolumeVerifier.cpp:940 +#: Source/Core/DiscIO/VolumeVerifier.cpp:960 msgid "This title is set to use an invalid common key." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:314 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:317 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10032,7 +10046,7 @@ msgid "" "DSPHLE: Unknown ucode (CRC = {0:08x}) - forcing AX." msgstr "" -#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:305 +#: Source/Core/Core/HW/DSPHLE/UCodes/UCodes.cpp:308 msgid "" "This title might be incompatible with DSP HLE emulation. Try using LLE if " "this is homebrew.\n" @@ -10365,7 +10379,7 @@ msgstr "" msgid "Unable to read file." msgstr "" -#: Source/Core/DiscIO/NANDImporter.cpp:268 +#: Source/Core/DiscIO/NANDImporter.cpp:267 msgid "Unable to write to file {0}" msgstr "" @@ -10403,7 +10417,7 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:472 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 @@ -10414,7 +10428,7 @@ msgstr "" msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1244 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10422,7 +10436,7 @@ msgstr "" msgid "Unknown SYNC_CODES message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1190 +#: Source/Core/Core/NetPlayServer.cpp:1192 msgid "" "Unknown SYNC_GECKO_CODES message with id:{0} received from player:{1} " "Kicking player!" @@ -10432,7 +10446,7 @@ msgstr "" msgid "Unknown SYNC_SAVE_DATA message received with id: {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1148 +#: Source/Core/Core/NetPlayServer.cpp:1150 msgid "" "Unknown SYNC_SAVE_DATA message with id:{0} received from player:{1} Kicking " "player!" @@ -10450,7 +10464,7 @@ msgstr "" msgid "Unknown data type" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:355 +#: Source/Core/DiscIO/VolumeVerifier.cpp:356 msgid "Unknown disc" msgstr "" @@ -10470,7 +10484,7 @@ msgstr "" msgid "Unknown message received with id : {0}" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1198 +#: Source/Core/Core/NetPlayServer.cpp:1200 msgid "Unknown message with id:{0} received from player:{1} Kicking player!" msgstr "" @@ -10753,7 +10767,7 @@ msgstr "事件" msgid "Verify" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:93 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:100 msgid "Verify Integrity" msgstr "" @@ -10761,8 +10775,8 @@ msgstr "" msgid "Verify certificates" msgstr "" -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:151 -#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:153 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:157 +#: Source/Core/DolphinQt/Config/VerifyWidget.cpp:159 msgid "Verifying" msgstr "" @@ -11087,7 +11101,7 @@ msgstr "" msgid "Wii and Wii Remote" msgstr "" -#: Source/Core/DiscIO/VolumeVerifier.cpp:102 +#: Source/Core/DiscIO/VolumeVerifier.cpp:103 msgid "Wii data is not public yet" msgstr "" @@ -11462,11 +11476,11 @@ msgstr "" #. (French), Clásicos (Spanish), Capolavori (Italian), 클래식 게임 체험판 (Korean). #. If your language is not one of the languages above, consider leaving the string untranslated #. so that people will recognize it as the name of the game mode. -#: Source/Core/DiscIO/VolumeVerifier.cpp:685 +#: Source/Core/DiscIO/VolumeVerifier.cpp:703 msgid "{0} (Masterpiece)" msgstr "" -#: Source/Core/UICommon/GameFile.cpp:826 +#: Source/Core/UICommon/GameFile.cpp:822 msgid "{0} (NKit)" msgstr "" @@ -11474,11 +11488,11 @@ msgstr "" msgid "{0} IPL found in {1} directory. The disc might not be recognized" msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1182 +#: Source/Core/Core/NetPlayServer.cpp:1184 msgid "{0} failed to synchronize codes." msgstr "" -#: Source/Core/Core/NetPlayServer.cpp:1139 +#: Source/Core/Core/NetPlayServer.cpp:1141 msgid "{0} failed to synchronize." msgstr "" @@ -11489,7 +11503,7 @@ msgid "" msgstr "" #: Source/Core/DiscIO/CompressedBlob.cpp:260 -#: Source/Core/DiscIO/WIABlob.cpp:1702 +#: Source/Core/DiscIO/WIABlob.cpp:1697 msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" From c5d9514cd9d92ce1845de254e4ef92e740f8c645 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 6 Aug 2022 18:54:19 +0200 Subject: [PATCH 549/659] Interpreter: Fix rounding edge case in frsp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes the Dolphin bug mentioned in https://github.com/dolphin-emu/hwtests/issues/45. Because this doesn't fix any observed behavior in games (no, 1080° Avalanche isn't affected), I haven't implemented this in the JITs, so as to not cause unnecessary performance degradations. --- .../PowerPC/Interpreter/Interpreter_FPUtils.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h b/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h index 4e0601b897..94ebc65a83 100644 --- a/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h +++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter_FPUtils.h @@ -52,6 +52,25 @@ inline void SetFPException(UReg_FPSCR* fpscr, u32 mask) inline float ForceSingle(const UReg_FPSCR& fpscr, double value) { + if (fpscr.NI) + { + // Emulate a rounding quirk. If the conversion result before rounding is a subnormal single, + // it's always flushed to zero, even if rounding would have caused it to become normal. + + constexpr u64 smallest_normal_single = 0x3810000000000000; + const u64 value_without_sign = + Common::BitCast(value) & (Common::DOUBLE_EXP | Common::DOUBLE_FRAC); + + if (value_without_sign < smallest_normal_single) + { + const u64 flushed_double = Common::BitCast(value) & Common::DOUBLE_SIGN; + const u32 flushed_single = static_cast(flushed_double >> 32); + return Common::BitCast(flushed_single); + } + } + + // Emulate standard conversion to single precision. + float x = static_cast(value); if (!cpu_info.bFlushToZero && fpscr.NI) { From 0b5f7d2c5f8006ba46c05a964bf22e9fc6fcba96 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Thu, 21 Jul 2022 22:26:36 -0500 Subject: [PATCH 550/659] VideoCommon: fix graphics target not properly setting 'draw_started' texture names for efb/xfb --- .../Config/GraphicsTarget.cpp | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp index f55f184520..07f00624e4 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp @@ -124,30 +124,30 @@ std::optional ExtractTextureFilenameForConfig(const picojson::objec return std::nullopt; } std::string texture_info = texture_filename_iter->second.get(); - if (texture_info.find(EFB_DUMP_PREFIX) != std::string::npos) - { - const auto letter_c_pos = texture_info.find_first_of('n'); - if (letter_c_pos == std::string::npos) + + const auto handle_fb_texture = + [&texture_info](std::string_view type) -> std::optional { + const auto letter_n_pos = texture_info.find("_n"); + if (letter_n_pos == std::string::npos) { - ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' " - "is an efb without a count"); + ERROR_LOG_FMT(VIDEO, + "Failed to load mod configuration file, value in 'texture_filename' " + "is {} without a count", + type); return std::nullopt; } - texture_info = - texture_info.substr(letter_c_pos - 1, texture_info.find_first_of("_", letter_c_pos)); - } - else if (texture_info.find(XFB_DUMP_PREFIX) != std::string::npos) - { - const auto letter_c_pos = texture_info.find_first_of('n'); - if (letter_c_pos == std::string::npos) - { - ERROR_LOG_FMT(VIDEO, "Failed to load mod configuration file, value in 'texture_filename' " - "is an xfb without a count"); - return std::nullopt; - } - texture_info = - texture_info.substr(letter_c_pos - 1, texture_info.find_first_of("_", letter_c_pos)); - } + + const auto post_underscore = texture_info.find_first_of('_', letter_n_pos + 2); + if (post_underscore == std::string::npos) + return texture_info.erase(letter_n_pos, texture_info.size() - letter_n_pos); + else + return texture_info.erase(letter_n_pos, post_underscore - letter_n_pos); + }; + + if (texture_info.starts_with(EFB_DUMP_PREFIX)) + return handle_fb_texture("an efb"); + else if (texture_info.starts_with(XFB_DUMP_PREFIX)) + return handle_fb_texture("a xfb"); return texture_info; } } // namespace From ff26f6435e9fbbfdaf9828e59521cd4c820ac0d6 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 5 Aug 2022 17:14:57 -0700 Subject: [PATCH 551/659] Use structured binding for pair values dir_path is used by PanicAlertFormatT, which prior to PR 10209 used a lambda. Before c++20, referring to structured bindings in lambda captures was forbidden. The problem is now doubly fixed, so put the structured binding back in. --- Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp index 83263ed04d..5e012e44db 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp @@ -178,11 +178,7 @@ void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) current_game_id = Common::swap32(reinterpret_cast(game_id.c_str())); } - // TODO(C++20): Use structured bindings when we can use C++20 and refer to structured bindings - // in lambda captures - const auto folder_path_pair = GetGCIFolderPath(m_card_slot, AllowMovieFolder::Yes); - const std::string& dir_path = folder_path_pair.first; - const bool migrate = folder_path_pair.second; + const auto [dir_path, migrate] = GetGCIFolderPath(m_card_slot, AllowMovieFolder::Yes); const File::FileInfo file_info(dir_path); if (!file_info.Exists()) From 02cd4ecf7d8a3e9738acffd1c38c99ea5599d7ad Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Fri, 5 Aug 2022 17:31:25 -0700 Subject: [PATCH 552/659] Core: Use std::chrono time_since_epoch --- Source/Core/Core/State.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp index d4abf52bcd..a6467f2b2c 100644 --- a/Source/Core/Core/State.cpp +++ b/Source/Core/Core/State.cpp @@ -276,14 +276,7 @@ static constexpr int DOUBLE_TIME_OFFSET = (38 * 365 * 24 * 60 * 60); static double GetSystemTimeAsDouble() { - // FYI: std::chrono::system_clock epoch is not required to be 1970 until c++20. - // We will however assume time_t IS unix time. - using Clock = std::chrono::system_clock; - - // TODO: Use this on switch to c++20: - // const auto since_epoch = Clock::now().time_since_epoch(); - const auto unix_epoch = Clock::from_time_t({}); - const auto since_epoch = Clock::now() - unix_epoch; + const auto since_epoch = std::chrono::system_clock::now().time_since_epoch(); const auto since_double_time_epoch = since_epoch - std::chrono::seconds(DOUBLE_TIME_OFFSET); return std::chrono::duration_cast>(since_double_time_epoch).count(); From 9bb8315441e7ee9145c173246636e9e52e2c71f2 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 6 Aug 2022 13:26:04 -0700 Subject: [PATCH 553/659] ResourcePack: dont scan for individual files walking the zip prevents minizip from re-reading the same data repeatedly from the actual backing filesystem. also improves most usages of minizip to allow for >4GB, files altho we probably don't need it --- Source/Core/Common/MinizipUtil.h | 29 +++--- .../UICommon/ResourcePack/ResourcePack.cpp | 92 ++++++++++++------- 2 files changed, 77 insertions(+), 44 deletions(-) diff --git a/Source/Core/Common/MinizipUtil.h b/Source/Core/Common/MinizipUtil.h index 6057632ddd..29b365c028 100644 --- a/Source/Core/Common/MinizipUtil.h +++ b/Source/Core/Common/MinizipUtil.h @@ -13,29 +13,36 @@ namespace Common { // Reads all of the current file. destination must be big enough to fit the whole file. -template -bool ReadFileFromZip(unzFile file, ContiguousContainer* destination) +inline bool ReadFileFromZip(unzFile file, u8* destination, u64 len) { - const u32 MAX_BUFFER_SIZE = 65535; + const u64 MAX_BUFFER_SIZE = 65535; if (unzOpenCurrentFile(file) != UNZ_OK) return false; Common::ScopeGuard guard{[&] { unzCloseCurrentFile(file); }}; - u32 bytes_to_go = static_cast(destination->size()); + u64 bytes_to_go = len; while (bytes_to_go > 0) { - const int bytes_read = - unzReadCurrentFile(file, &(*destination)[destination->size() - bytes_to_go], - std::min(bytes_to_go, MAX_BUFFER_SIZE)); - - if (bytes_read < 0) + // NOTE: multiples of 4G can't cause read_len == 0 && bytes_to_go > 0, as MAX_BUFFER_SIZE is + // small. + const u32 read_len = static_cast(std::min(bytes_to_go, MAX_BUFFER_SIZE)); + const int rv = unzReadCurrentFile(file, destination, read_len); + if (rv < 0) return false; - bytes_to_go -= static_cast(bytes_read); + const u32 bytes_read = static_cast(rv); + bytes_to_go -= bytes_read; + destination += bytes_read; } - return true; + return unzEndOfFile(file) == 1; +} + +template +bool ReadFileFromZip(unzFile file, ContiguousContainer* destination) +{ + return ReadFileFromZip(file, reinterpret_cast(destination->data()), destination->size()); } } // namespace Common diff --git a/Source/Core/UICommon/ResourcePack/ResourcePack.cpp b/Source/Core/UICommon/ResourcePack/ResourcePack.cpp index 585559029d..355dc8acf2 100644 --- a/Source/Core/UICommon/ResourcePack/ResourcePack.cpp +++ b/Source/Core/UICommon/ResourcePack/ResourcePack.cpp @@ -4,12 +4,15 @@ #include "UICommon/ResourcePack/ResourcePack.h" #include +#include #include +#include #include "Common/CommonPaths.h" #include "Common/FileSearch.h" #include "Common/FileUtil.h" +#include "Common/IOFile.h" #include "Common/MinizipUtil.h" #include "Common/ScopeGuard.h" #include "Common/StringUtil.h" @@ -40,8 +43,8 @@ ResourcePack::ResourcePack(const std::string& path) : m_path(path) return; } - unz_file_info manifest_info; - unzGetCurrentFileInfo(file, &manifest_info, nullptr, 0, nullptr, 0, nullptr, 0); + unz_file_info64 manifest_info{}; + unzGetCurrentFileInfo64(file, &manifest_info, nullptr, 0, nullptr, 0, nullptr, 0); std::string manifest_contents(manifest_info.uncompressed_size, '\0'); if (!Common::ReadFileFromZip(file, &manifest_contents)) @@ -62,9 +65,8 @@ ResourcePack::ResourcePack(const std::string& path) : m_path(path) if (unzLocateFile(file, "logo.png", 0) != UNZ_END_OF_LIST_OF_FILE) { - unz_file_info logo_info; - - unzGetCurrentFileInfo(file, &logo_info, nullptr, 0, nullptr, 0, nullptr, 0); + unz_file_info64 logo_info{}; + unzGetCurrentFileInfo64(file, &logo_info, nullptr, 0, nullptr, 0, nullptr, 0); m_logo_data.resize(logo_info.uncompressed_size); @@ -82,9 +84,9 @@ ResourcePack::ResourcePack(const std::string& path) : m_path(path) { std::string filename(256, '\0'); - unz_file_info texture_info; - unzGetCurrentFileInfo(file, &texture_info, filename.data(), static_cast(filename.size()), - nullptr, 0, nullptr, 0); + unz_file_info64 texture_info{}; + unzGetCurrentFileInfo64(file, &texture_info, filename.data(), static_cast(filename.size()), + nullptr, 0, nullptr, 0); if (filename.compare(0, 9, "textures/") != 0 || texture_info.uncompressed_size == 0) continue; @@ -140,13 +142,44 @@ bool ResourcePack::Install(const std::string& path) } auto file = unzOpen(m_path.c_str()); + if (file == nullptr) + { + m_valid = false; + m_error = "Failed to open resource pack"; + return false; + } Common::ScopeGuard file_guard{[&] { unzClose(file); }}; - for (const auto& texture : m_textures) + if (unzGoToFirstFile(file) != MZ_OK) + return false; + + std::string texture_zip_path; + do { - bool provided_by_other_pack = false; + texture_zip_path.resize(UINT16_MAX + 1, '\0'); + unz_file_info64 texture_info{}; + if (unzGetCurrentFileInfo64(file, &texture_info, texture_zip_path.data(), UINT16_MAX, nullptr, + 0, nullptr, 0) != MZ_OK) + { + return false; + } + TruncateToCString(&texture_zip_path); + + const std::string texture_zip_path_prefix = "textures/"; + if (!texture_zip_path.starts_with(texture_zip_path_prefix)) + continue; + const std::string texture_name = texture_zip_path.substr(texture_zip_path_prefix.size()); + + auto texture_it = std::find_if( + m_textures.cbegin(), m_textures.cend(), [&texture_name](const std::string& texture) { + return mz_path_compare_wc(texture.c_str(), texture_name.c_str(), 1) == MZ_OK; + }); + if (texture_it == m_textures.cend()) + continue; + const auto texture = *texture_it; // Check if a higher priority pack already provides a given texture, don't overwrite it + bool provided_by_other_pack = false; for (const auto& pack : GetHigherPriorityPacks(*this)) { if (std::find(pack->GetTextures().begin(), pack->GetTextures().end(), texture) != @@ -156,47 +189,40 @@ bool ResourcePack::Install(const std::string& path) break; } } - if (provided_by_other_pack) continue; - if (unzLocateFile(file, ("textures/" + texture).c_str(), 0) != UNZ_OK) - { - m_error = "Failed to locate texture " + texture; - return false; - } - const std::string texture_path = path + TEXTURE_PATH + texture; - std::string m_full_dir; - SplitPath(texture_path, &m_full_dir, nullptr, nullptr); + std::string texture_full_dir; + if (!SplitPath(texture_path, &texture_full_dir, nullptr, nullptr)) + continue; - if (!File::CreateFullPath(m_full_dir)) + if (!File::CreateFullPath(texture_full_dir)) { - m_error = "Failed to create full path " + m_full_dir; + m_error = "Failed to create full path " + texture_full_dir; return false; } - unz_file_info texture_info; - unzGetCurrentFileInfo(file, &texture_info, nullptr, 0, nullptr, 0, nullptr, 0); - - std::vector data(texture_info.uncompressed_size); - if (!Common::ReadFileFromZip(file, &data)) + const size_t data_size = static_cast(texture_info.uncompressed_size); + auto data = std::make_unique(data_size); + if (!Common::ReadFileFromZip(file, data.get(), data_size)) { m_error = "Failed to read texture " + texture; return false; } - std::ofstream out(texture_path, std::ios::trunc | std::ios::binary); - - if (!out.good()) + File::IOFile out(texture_path, "wb"); + if (!out) + { + m_error = "Failed to open " + texture; + return false; + } + if (!out.WriteBytes(data.get(), data_size)) { m_error = "Failed to write " + texture; return false; } - - out.write(data.data(), data.size()); - out.flush(); - } + } while (unzGoToNextFile(file) == MZ_OK); SetInstalled(*this, true); return true; From 292724b2280da23a2cebd5682d504a113bc45c83 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 6 Aug 2022 22:22:14 -0700 Subject: [PATCH 554/659] Revert "msvc: use std::chrono for GetLocalTimeSinceJan1970" This reverts commit 86da6c98fbd229d87de7cf8b9c7eb94c16923829. --- Source/Core/Common/Timer.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Source/Core/Common/Timer.cpp b/Source/Core/Common/Timer.cpp index fb81164390..5e4af1ef45 100644 --- a/Source/Core/Common/Timer.cpp +++ b/Source/Core/Common/Timer.cpp @@ -7,6 +7,7 @@ #ifdef _WIN32 #include +#include #include #else #include @@ -67,12 +68,6 @@ u64 Timer::ElapsedMs() const u64 Timer::GetLocalTimeSinceJan1970() { -#ifdef _MSC_VER - std::chrono::zoned_seconds seconds( - std::chrono::current_zone(), - std::chrono::time_point_cast(std::chrono::system_clock::now())); - return seconds.get_local_time().time_since_epoch().count(); -#else time_t sysTime, tzDiff, tzDST; time(&sysTime); tm* gmTime = localtime(&sysTime); @@ -88,7 +83,6 @@ u64 Timer::GetLocalTimeSinceJan1970() tzDiff = sysTime - mktime(gmTime); return static_cast(sysTime + tzDiff + tzDST); -#endif } void Timer::IncreaseResolution() From 6e94c20abdbb5284a78afbdca627f1528f78dbc3 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 6 Aug 2022 22:25:30 -0700 Subject: [PATCH 555/659] add TODO for chrono in GetLocalTimeSinceJan1970 --- Source/Core/Common/Timer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Core/Common/Timer.cpp b/Source/Core/Common/Timer.cpp index 5e4af1ef45..91381eebd3 100644 --- a/Source/Core/Common/Timer.cpp +++ b/Source/Core/Common/Timer.cpp @@ -68,6 +68,10 @@ u64 Timer::ElapsedMs() const u64 Timer::GetLocalTimeSinceJan1970() { + // TODO Would really, really like to use std::chrono here, but Windows did not support + // std::chrono::current_zone() until 19H1, and other compilers don't even provide support for + // timezone-related parts of chrono. Someday! + // see https://bugs.dolphin-emu.org/issues/13007#note-4 time_t sysTime, tzDiff, tzDST; time(&sysTime); tm* gmTime = localtime(&sysTime); From 914f38753ae1b5595824c436f1dd9e8b592c5753 Mon Sep 17 00:00:00 2001 From: askew-etc Date: Sun, 7 Aug 2022 12:20:09 -0500 Subject: [PATCH 556/659] Add hotkeys for incrementing/decrementing selected state slot (like RetroArch) --- Source/Core/Core/HotkeyManager.cpp | 4 +++- Source/Core/Core/HotkeyManager.h | 2 ++ Source/Core/DolphinQt/HotkeyScheduler.cpp | 6 ++++++ Source/Core/DolphinQt/HotkeyScheduler.h | 2 ++ Source/Core/DolphinQt/MainWindow.cpp | 20 ++++++++++++++++++++ Source/Core/DolphinQt/MainWindow.h | 2 ++ 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HotkeyManager.cpp b/Source/Core/Core/HotkeyManager.cpp index b7c5c161c2..b305db6fa9 100644 --- a/Source/Core/Core/HotkeyManager.cpp +++ b/Source/Core/Core/HotkeyManager.cpp @@ -179,6 +179,8 @@ constexpr std::array s_hotkey_labels{{ _trans("Undo Save State"), _trans("Save State"), _trans("Load State"), + _trans("Increase Selected State Slot"), + _trans("Decrease Selected State Slot"), _trans("Load ROM"), _trans("Unload ROM"), @@ -349,7 +351,7 @@ constexpr std::array s_groups_info = { {_trans("Save State"), HK_SAVE_STATE_SLOT_1, HK_SAVE_STATE_SLOT_SELECTED}, {_trans("Select State"), HK_SELECT_STATE_SLOT_1, HK_SELECT_STATE_SLOT_10}, {_trans("Load Last State"), HK_LOAD_LAST_STATE_1, HK_LOAD_LAST_STATE_10}, - {_trans("Other State Hotkeys"), HK_SAVE_FIRST_STATE, HK_LOAD_STATE_FILE}, + {_trans("Other State Hotkeys"), HK_SAVE_FIRST_STATE, HK_DECREMENT_SELECTED_STATE_SLOT}, {_trans("GBA Core"), HK_GBA_LOAD, HK_GBA_RESET, true}, {_trans("GBA Volume"), HK_GBA_VOLUME_DOWN, HK_GBA_TOGGLE_MUTE, true}, {_trans("GBA Window Size"), HK_GBA_1X, HK_GBA_4X, true}}}; diff --git a/Source/Core/Core/HotkeyManager.h b/Source/Core/Core/HotkeyManager.h index b58f9c2828..134eba8e58 100644 --- a/Source/Core/Core/HotkeyManager.h +++ b/Source/Core/Core/HotkeyManager.h @@ -164,6 +164,8 @@ enum Hotkey HK_UNDO_SAVE_STATE, HK_SAVE_STATE_FILE, HK_LOAD_STATE_FILE, + HK_INCREMENT_SELECTED_STATE_SLOT, + HK_DECREMENT_SELECTED_STATE_SLOT, HK_GBA_LOAD, HK_GBA_UNLOAD, diff --git a/Source/Core/DolphinQt/HotkeyScheduler.cpp b/Source/Core/DolphinQt/HotkeyScheduler.cpp index 6d7c91a6ee..99abe3f588 100644 --- a/Source/Core/DolphinQt/HotkeyScheduler.cpp +++ b/Source/Core/DolphinQt/HotkeyScheduler.cpp @@ -490,6 +490,12 @@ void HotkeyScheduler::Run() if (IsHotkey(HK_LOAD_STATE_SLOT_SELECTED)) emit StateLoadSlotHotkey(); + if (IsHotkey(HK_INCREMENT_SELECTED_STATE_SLOT)) + emit IncrementSelectedStateSlotHotkey(); + + if (IsHotkey(HK_DECREMENT_SELECTED_STATE_SLOT)) + emit DecrementSelectedStateSlotHotkey(); + // Stereoscopy if (IsHotkey(HK_TOGGLE_STEREO_SBS)) { diff --git a/Source/Core/DolphinQt/HotkeyScheduler.h b/Source/Core/DolphinQt/HotkeyScheduler.h index 122e57b97e..15f17fff93 100644 --- a/Source/Core/DolphinQt/HotkeyScheduler.h +++ b/Source/Core/DolphinQt/HotkeyScheduler.h @@ -36,6 +36,8 @@ signals: void ScreenShotHotkey(); void RefreshGameListHotkey(); void SetStateSlotHotkey(int slot); + void IncrementSelectedStateSlotHotkey(); + void DecrementSelectedStateSlotHotkey(); void StateLoadSlotHotkey(); void StateSaveSlotHotkey(); void StateLoadSlot(int state); diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 7c4e0a0dd7..52a2a0290c 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -595,6 +595,10 @@ void MainWindow::ConnectHotkeys() &MainWindow::StateSaveSlot); connect(m_hotkey_scheduler, &HotkeyScheduler::SetStateSlotHotkey, this, &MainWindow::SetStateSlot); + connect(m_hotkey_scheduler, &HotkeyScheduler::IncrementSelectedStateSlotHotkey, this, + &MainWindow::IncrementSelectedStateSlot); + connect(m_hotkey_scheduler, &HotkeyScheduler::DecrementSelectedStateSlotHotkey, this, + &MainWindow::DecrementSelectedStateSlot); connect(m_hotkey_scheduler, &HotkeyScheduler::StartRecording, this, &MainWindow::OnStartRecording); connect(m_hotkey_scheduler, &HotkeyScheduler::PlayRecording, this, &MainWindow::OnPlayRecording); @@ -1358,6 +1362,22 @@ void MainWindow::SetStateSlot(int slot) 2500); } +void MainWindow::IncrementSelectedStateSlot() +{ + int state_slot = m_state_slot + 1; + if (state_slot > State::NUM_STATES) + state_slot = 1; + m_menu_bar->SetStateSlot(state_slot); +} + +void MainWindow::DecrementSelectedStateSlot() +{ + int state_slot = m_state_slot - 1; + if (state_slot < 1) + state_slot = State::NUM_STATES; + m_menu_bar->SetStateSlot(state_slot); +} + void MainWindow::PerformOnlineUpdate(const std::string& region) { WiiUpdate::PerformOnlineUpdate(region, this); diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index 5f9eb34bb2..60880a5275 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -102,6 +102,8 @@ private: void StateSaveUndo(); void StateSaveOldest(); void SetStateSlot(int slot); + void IncrementSelectedStateSlot(); + void DecrementSelectedStateSlot(); void BootWiiSystemMenu(); void PerformOnlineUpdate(const std::string& region); From a1941156b6a55145b642e61d9634897088f1d409 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Mon, 8 Aug 2022 16:10:10 -0700 Subject: [PATCH 557/659] SDL: update submodule to 5aa438e80aabe3570c0ef807d9b22bcd9835ced6 for a Windows.Gaming.Input fix --- Externals/SDL/SDL | 2 +- Externals/SDL/SDL2.vcxproj | 22 +++++++--------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Externals/SDL/SDL b/Externals/SDL/SDL index cd2dcf54af..5aa438e80a 160000 --- a/Externals/SDL/SDL +++ b/Externals/SDL/SDL @@ -1 +1 @@ -Subproject commit cd2dcf54afaa6d640abf8b83855f6c4b5cda457d +Subproject commit 5aa438e80aabe3570c0ef807d9b22bcd9835ced6 diff --git a/Externals/SDL/SDL2.vcxproj b/Externals/SDL/SDL2.vcxproj index ebc599029a..4d670ab6d2 100644 --- a/Externals/SDL/SDL2.vcxproj +++ b/Externals/SDL/SDL2.vcxproj @@ -81,19 +81,6 @@ - - - - - - - - - - - - - @@ -106,6 +93,7 @@ + @@ -114,6 +102,7 @@ + @@ -181,6 +170,7 @@ + @@ -265,6 +255,7 @@ + @@ -289,6 +280,7 @@ + @@ -344,6 +336,7 @@ + @@ -352,8 +345,7 @@ - - + From d11df2b700896c5244bd547797a4038f910b4bed Mon Sep 17 00:00:00 2001 From: Sage King Date: Thu, 4 Aug 2022 08:23:51 -0600 Subject: [PATCH 558/659] Refactored variable declared in NetPlayServer.cpp OnConnect() from npver to netplay_version --- Source/Core/Core/NetPlayServer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index ddc62d4561..c17248bac9 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -393,10 +393,10 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) } socket->data = new PlayerId(pid); - std::string npver; - rpac >> npver; + std::string netplay_version; + rpac >> netplay_version; // Dolphin netplay version - if (npver != Common::GetScmRevGitStr()) + if (netplay_version != Common::GetScmRevGitStr()) return ConnectionError::VersionMismatch; // game is currently running or game start is pending From 5dea8aaed02cc0015e8f97e9b57049c69c81d962 Mon Sep 17 00:00:00 2001 From: Sage King Date: Thu, 4 Aug 2022 08:32:31 -0600 Subject: [PATCH 559/659] Added initializer braces to Client player; in NetPlayServer.cpp OnConnect() --- Source/Core/Core/NetPlayServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index c17248bac9..141ba474af 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -407,7 +407,7 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) if (m_players.size() >= 255) return ConnectionError::ServerFull; - Client player; + Client player{}; player.pid = pid; player.socket = socket; From 9d14d95737ea86052d8e0a29216fd1e40c8410b8 Mon Sep 17 00:00:00 2001 From: Sage King Date: Thu, 4 Aug 2022 08:26:46 -0600 Subject: [PATCH 560/659] Removed code duplicating comments in NetPlayServer.cpp OnConnect() --- Source/Core/Core/NetPlayServer.cpp | 72 ++++++++++++------------------ 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 141ba474af..69759490d1 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -381,7 +381,6 @@ static void SendSyncIdentifier(sf::Packet& spac, const SyncIdentifier& sync_iden // called from ---NETPLAY--- thread ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) { - // give new client first available id PlayerId pid = 1; for (auto i = m_players.begin(); i != m_players.end(); ++i) { @@ -395,15 +394,12 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) std::string netplay_version; rpac >> netplay_version; - // Dolphin netplay version if (netplay_version != Common::GetScmRevGitStr()) return ConnectionError::VersionMismatch; - // game is currently running or game start is pending if (m_is_running || m_start_pending) return ConnectionError::GameRunning; - // too many players if (m_players.size() >= 255) return ConnectionError::ServerFull; @@ -417,13 +413,10 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) if (StringUTF8CodePointCount(player.name) > MAX_NAME_LENGTH) return ConnectionError::NameTooLong; - // Extend reliable traffic timeout enet_peer_timeout(socket, 0, PEER_TIMEOUT, PEER_TIMEOUT); - // cause pings to be updated m_update_pings = true; - // try to automatically assign new user a pad for (PlayerId& mapping : m_pad_map) { if (mapping == 0) @@ -433,61 +426,54 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) } } - // send join message to already connected clients - sf::Packet spac; - spac << MessageID::PlayerJoin; - spac << player.pid << player.name << player.revision; - SendToClients(spac); + sf::Packet send_packet; + send_packet << MessageID::PlayerJoin; + send_packet << player.pid << player.name << player.revision; + SendToClients(send_packet); - // send new client success message with their ID - spac.clear(); - spac << MessageID::ConnectionSuccessful; - spac << player.pid; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::ConnectionSuccessful; + send_packet << player.pid; + Send(player.socket, send_packet); - // send new client the selected game if (!m_selected_game_name.empty()) { - spac.clear(); - spac << MessageID::ChangeGame; - SendSyncIdentifier(spac, m_selected_game_identifier); - spac << m_selected_game_name; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::ChangeGame; + SendSyncIdentifier(send_packet, m_selected_game_identifier); + send_packet << m_selected_game_name; + Send(player.socket, send_packet); } if (!m_host_input_authority) { - // send the pad buffer value - spac.clear(); - spac << MessageID::PadBuffer; - spac << m_target_buffer_size; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::PadBuffer; + send_packet << m_target_buffer_size; + Send(player.socket, send_packet); } - // send input authority state - spac.clear(); - spac << MessageID::HostInputAuthority; - spac << m_host_input_authority; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::HostInputAuthority; + send_packet << m_host_input_authority; + Send(player.socket, send_packet); - // sync values with new client for (const auto& p : m_players) { - spac.clear(); - spac << MessageID::PlayerJoin; - spac << p.second.pid << p.second.name << p.second.revision; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::PlayerJoin; + send_packet << p.second.pid << p.second.name << p.second.revision; + Send(player.socket, send_packet); - spac.clear(); - spac << MessageID::GameStatus; - spac << p.second.pid << p.second.game_status; - Send(player.socket, spac); + send_packet.clear(); + send_packet << MessageID::GameStatus; + send_packet << p.second.pid << p.second.game_status; + Send(player.socket, send_packet); } if (Config::Get(Config::NETPLAY_ENABLE_QOS)) player.qos_session = Common::QoSSession(player.socket); - // add client to the player list { std::lock_guard lkp(m_crit.players); m_players.emplace(*PeerPlayerId(player.socket), std::move(player)); From d81756e9b97bc342953cb52ee7218a4a85afe208 Mon Sep 17 00:00:00 2001 From: Sage King Date: Thu, 4 Aug 2022 09:26:21 -0600 Subject: [PATCH 561/659] Refactored parameter to OnConnect() in NetPlayServer.cpp from rpac to received_packet --- Source/Core/Core/NetPlayServer.cpp | 8 ++++---- Source/Core/Core/NetPlayServer.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 69759490d1..e7f2f080fa 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -379,7 +379,7 @@ static void SendSyncIdentifier(sf::Packet& spac, const SyncIdentifier& sync_iden } // called from ---NETPLAY--- thread -ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) +ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& received_packet) { PlayerId pid = 1; for (auto i = m_players.begin(); i != m_players.end(); ++i) @@ -393,7 +393,7 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) socket->data = new PlayerId(pid); std::string netplay_version; - rpac >> netplay_version; + received_packet >> netplay_version; if (netplay_version != Common::GetScmRevGitStr()) return ConnectionError::VersionMismatch; @@ -407,8 +407,8 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& rpac) player.pid = pid; player.socket = socket; - rpac >> player.revision; - rpac >> player.name; + received_packet >> player.revision; + received_packet >> player.name; if (StringUTF8CodePointCount(player.name) > MAX_NAME_LENGTH) return ConnectionError::NameTooLong; diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 67de180204..77b1f7f357 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -129,7 +129,7 @@ private: void SendToClients(const sf::Packet& packet, PlayerId skip_pid = 0, u8 channel_id = DEFAULT_CHANNEL); void Send(ENetPeer* socket, const sf::Packet& packet, u8 channel_id = DEFAULT_CHANNEL); - ConnectionError OnConnect(ENetPeer* socket, sf::Packet& rpac); + ConnectionError OnConnect(ENetPeer* socket, sf::Packet& received_packet); unsigned int OnDisconnect(const Client& player); unsigned int OnData(sf::Packet& packet, Client& player); From 2f367d7a9b716a1963a22f48788766d3445cd041 Mon Sep 17 00:00:00 2001 From: Sage King Date: Sat, 6 Aug 2022 10:23:27 -0600 Subject: [PATCH 562/659] Updated PEER_TIMOUT in NetPlayCommon.h to use chrono literals; Updated NetPlayServer.cpp OnConnect() by putting commonly used code into named functions --- Source/Core/Core/NetPlayCommon.h | 6 +- Source/Core/Core/NetPlayServer.cpp | 174 ++++++++++++++++++----------- Source/Core/Core/NetPlayServer.h | 12 ++ 3 files changed, 124 insertions(+), 68 deletions(-) diff --git a/Source/Core/Core/NetPlayCommon.h b/Source/Core/Core/NetPlayCommon.h index e77bd307db..a777728ac2 100644 --- a/Source/Core/Core/NetPlayCommon.h +++ b/Source/Core/Core/NetPlayCommon.h @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -14,7 +15,10 @@ namespace NetPlay { -constexpr u32 PEER_TIMEOUT = 30000; +using namespace std::chrono_literals; +// An arbitrary amount of time of no acknowledgement of sent packets before netplay decides a +// connection is disconnected +constexpr std::chrono::milliseconds PEER_TIMEOUT = 30s; bool CompressFileIntoPacket(const std::string& file_path, sf::Packet& packet); bool CompressFolderIntoPacket(const std::string& folder_path, sf::Packet& packet); diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index e7f2f080fa..7693cae752 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -379,19 +379,8 @@ static void SendSyncIdentifier(sf::Packet& spac, const SyncIdentifier& sync_iden } // called from ---NETPLAY--- thread -ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& received_packet) +ConnectionError NetPlayServer::OnConnect(ENetPeer* incoming_connection, sf::Packet& received_packet) { - PlayerId pid = 1; - for (auto i = m_players.begin(); i != m_players.end(); ++i) - { - if (i->second.pid == pid) - { - pid++; - i = m_players.begin(); - } - } - socket->data = new PlayerId(pid); - std::string netplay_version; received_packet >> netplay_version; if (netplay_version != Common::GetScmRevGitStr()) @@ -403,81 +392,49 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* socket, sf::Packet& received_ if (m_players.size() >= 255) return ConnectionError::ServerFull; - Client player{}; - player.pid = pid; - player.socket = socket; + Client new_player{}; + new_player.pid = GiveFirstAvailableIDTo(incoming_connection); + new_player.socket = incoming_connection; - received_packet >> player.revision; - received_packet >> player.name; + received_packet >> new_player.revision; + received_packet >> new_player.name; - if (StringUTF8CodePointCount(player.name) > MAX_NAME_LENGTH) + if (StringUTF8CodePointCount(new_player.name) > MAX_NAME_LENGTH) return ConnectionError::NameTooLong; - enet_peer_timeout(socket, 0, PEER_TIMEOUT, PEER_TIMEOUT); + enet_peer_timeout(incoming_connection, 0, PEER_TIMEOUT.count(), PEER_TIMEOUT.count()); + // force a ping on first netplay loop m_update_pings = true; - for (PlayerId& mapping : m_pad_map) - { - if (mapping == 0) - { - mapping = player.pid; - break; - } - } + AssignNewUserAPad(new_player); - sf::Packet send_packet; - send_packet << MessageID::PlayerJoin; - send_packet << player.pid << player.name << player.revision; - SendToClients(send_packet); + // tell other players a new player joined + SendResponse(MessageID::PlayerJoin); - send_packet.clear(); - send_packet << MessageID::ConnectionSuccessful; - send_packet << player.pid; - Send(player.socket, send_packet); + // tell new client they connected and their ID + SendResponse(MessageID::ConnectionSuccessful, new_player); + // tell new client the selected game if (!m_selected_game_name.empty()) - { - send_packet.clear(); - send_packet << MessageID::ChangeGame; - SendSyncIdentifier(send_packet, m_selected_game_identifier); - send_packet << m_selected_game_name; - Send(player.socket, send_packet); - } + SendResponse(MessageID::ChangeGame, new_player); if (!m_host_input_authority) - { - send_packet.clear(); - send_packet << MessageID::PadBuffer; - send_packet << m_target_buffer_size; - Send(player.socket, send_packet); - } + SendResponse(MessageID::PadBuffer, new_player); - send_packet.clear(); - send_packet << MessageID::HostInputAuthority; - send_packet << m_host_input_authority; - Send(player.socket, send_packet); + SendResponse(MessageID::HostInputAuthority, new_player); - for (const auto& p : m_players) - { - send_packet.clear(); - send_packet << MessageID::PlayerJoin; - send_packet << p.second.pid << p.second.name << p.second.revision; - Send(player.socket, send_packet); - - send_packet.clear(); - send_packet << MessageID::GameStatus; - send_packet << p.second.pid << p.second.game_status; - Send(player.socket, send_packet); - } + TellNewPlayerAboutExistingPlayers(new_player); if (Config::Get(Config::NETPLAY_ENABLE_QOS)) - player.qos_session = Common::QoSSession(player.socket); + new_player.qos_session = Common::QoSSession(new_player.socket); { std::lock_guard lkp(m_crit.players); - m_players.emplace(*PeerPlayerId(player.socket), std::move(player)); - UpdatePadMapping(); // sync pad mappings with everyone + // add new player to list of players + m_players.emplace(*PeerPlayerId(new_player.socket), std::move(new_player)); + // sync pad mappings with everyone + UpdatePadMapping(); UpdateGBAConfig(); UpdateWiimoteMapping(); } @@ -2071,6 +2028,89 @@ bool NetPlayServer::PlayerHasControllerMapped(const PlayerId pid) const std::any_of(m_wiimote_map.begin(), m_wiimote_map.end(), mapping_matches_player_id); } +void NetPlayServer::AssignNewUserAPad(const Client& player) +{ + for (PlayerId& mapping : m_pad_map) + { + if (mapping == Unmapped) + { + mapping = player.pid; + break; + } + } +} + +PlayerId NetPlayServer::GiveFirstAvailableIDTo(ENetPeer* player) +{ + PlayerId pid = 1; + for (auto i = m_players.begin(); i != m_players.end(); ++i) + { + if (i->second.pid == pid) + { + pid++; + i = m_players.begin(); + } + } + player->data = new PlayerId(pid); + return pid; +} + +void NetPlayServer::SendResponse(MessageID message_id, const Client& player) +{ + sf::Packet response; + switch (message_id) + { + case MessageID::PlayerJoin: + response << MessageID::PlayerJoin; + response << player.pid << player.name << player.revision; + break; + + case MessageID::ConnectionSuccessful: + response << MessageID::ConnectionSuccessful; + response << player.pid; + break; + + case MessageID::ChangeGame: + response << MessageID::ChangeGame; + SendSyncIdentifier(response, m_selected_game_identifier); + response << m_selected_game_name; + break; + + case MessageID::PadBuffer: + response << MessageID::PadBuffer; + response << m_target_buffer_size; + break; + + case MessageID::HostInputAuthority: + response << MessageID::HostInputAuthority; + response << m_host_input_authority; + break; + } + + // no player specified + if (player == Client{}) + SendToClients(response); + else + Send(player.socket, response); +} + +void NetPlayServer::TellNewPlayerAboutExistingPlayers(const Client& new_player) +{ + sf::Packet send_packet; + for (const auto& p : m_players) + { + send_packet.clear(); + send_packet << MessageID::PlayerJoin; + send_packet << p.second.pid << p.second.name << p.second.revision; + Send(new_player.socket, send_packet); + + send_packet.clear(); + send_packet << MessageID::GameStatus; + send_packet << p.second.pid << p.second.game_status; + Send(new_player.socket, send_packet); + } +} + u16 NetPlayServer::GetPort() const { return m_server->address.port; diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 77b1f7f357..5688ce5a6d 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -103,6 +103,12 @@ private: AllExcept }; + enum MappedState + { + Unmapped, + Mapped + }; + struct AsyncQueueEntry { sf::Packet packet; @@ -147,6 +153,12 @@ private: void SetupIndex(); bool PlayerHasControllerMapped(PlayerId pid) const; + void AssignNewUserAPad(const Client& player); + // returns the PID given + PlayerId GiveFirstAvailableIDTo(ENetPeer* player); + void SendResponse(MessageID message_id, const Client& player = Client{}); + void TellNewPlayerAboutExistingPlayers(const Client& new_player); + NetSettings m_settings; bool m_is_running = false; From 477c20e28d1d512247bbc5744e1f2147d2249104 Mon Sep 17 00:00:00 2001 From: Sage King Date: Sun, 7 Aug 2022 09:37:28 -0600 Subject: [PATCH 563/659] Updated comment explaining enet_peer_timeout's use in NetPlayClient.cpp and NetPlayServer.cpp; Corrected syntax related to PEER_TIMEOUT in NetplayClient.cpp --- Source/Core/Core/NetPlayClient.cpp | 10 ++++++---- Source/Core/Core/NetPlayServer.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index 9c01f7a080..05c6779e24 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -152,8 +152,9 @@ NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlay return; } - // Extend reliable traffic timeout - enet_peer_timeout(m_server, 0, PEER_TIMEOUT, PEER_TIMEOUT); + // Update time in milliseconds of no acknoledgment of + // sent packets before a connection is deemed disconnected + enet_peer_timeout(m_server, 0, PEER_TIMEOUT.count(), PEER_TIMEOUT.count()); ENetEvent netEvent; int net = enet_host_service(m_client, &netEvent, 5000); @@ -211,8 +212,9 @@ NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlay case ENET_EVENT_TYPE_CONNECT: m_server = netEvent.peer; - // Extend reliable traffic timeout - enet_peer_timeout(m_server, 0, PEER_TIMEOUT, PEER_TIMEOUT); + // Update time in milliseconds of no acknoledgment of + // sent packets before a connection is deemed disconnected + enet_peer_timeout(m_server, 0, PEER_TIMEOUT.count(), PEER_TIMEOUT.count()); if (Connect()) { diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 7693cae752..e9b5c271b5 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -402,6 +402,8 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* incoming_connection, sf::Pack if (StringUTF8CodePointCount(new_player.name) > MAX_NAME_LENGTH) return ConnectionError::NameTooLong; + // Update time in milliseconds of no acknoledgment of + // sent packets before a connection is deemed disconnected enet_peer_timeout(incoming_connection, 0, PEER_TIMEOUT.count(), PEER_TIMEOUT.count()); // force a ping on first netplay loop @@ -2085,6 +2087,10 @@ void NetPlayServer::SendResponse(MessageID message_id, const Client& player) response << MessageID::HostInputAuthority; response << m_host_input_authority; break; + default: + INFO_LOG_FMT(NETPLAY, "Warning! Call to SendResponse() failed to send a packet."); + return; + break; } // no player specified From a12099404e366d3ad2083eb394bd0744d6e1411c Mon Sep 17 00:00:00 2001 From: Sage King Date: Sun, 7 Aug 2022 13:28:10 -0600 Subject: [PATCH 564/659] Added SendResponseToAllPlayers() and SendResponseToPlayer() to NetPlayServer.cpp and refactored OnConnect to use them --- Source/Core/Core/NetPlayServer.cpp | 90 +++++++++++------------------- Source/Core/Core/NetPlayServer.h | 9 ++- 2 files changed, 40 insertions(+), 59 deletions(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index e9b5c271b5..9ea4555ca5 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -412,21 +413,35 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* incoming_connection, sf::Pack AssignNewUserAPad(new_player); // tell other players a new player joined - SendResponse(MessageID::PlayerJoin); + SendResponseToAllPlayers(MessageID::PlayerJoin, new_player.pid, new_player.name, + new_player.revision); // tell new client they connected and their ID - SendResponse(MessageID::ConnectionSuccessful, new_player); + SendResponseToPlayer(new_player, MessageID::ConnectionSuccessful, new_player.pid); // tell new client the selected game if (!m_selected_game_name.empty()) - SendResponse(MessageID::ChangeGame, new_player); + { + sf::Packet send_packet; + send_packet << MessageID::ChangeGame; + SendSyncIdentifier(send_packet, m_selected_game_identifier); + send_packet << m_selected_game_name; + Send(new_player.socket, send_packet); + } if (!m_host_input_authority) - SendResponse(MessageID::PadBuffer, new_player); + SendResponseToPlayer(new_player, MessageID::PadBuffer, m_target_buffer_size); - SendResponse(MessageID::HostInputAuthority, new_player); + SendResponseToPlayer(new_player, MessageID::HostInputAuthority, m_host_input_authority); - TellNewPlayerAboutExistingPlayers(new_player); + for (const auto& existing_player : m_players) + { + SendResponseToPlayer(new_player, MessageID::PlayerJoin, existing_player.second.pid, + existing_player.second.name, existing_player.second.revision); + + SendResponseToPlayer(new_player, MessageID::GameStatus, existing_player.second.pid, + existing_player.second.game_status); + } if (Config::Get(Config::NETPLAY_ENABLE_QOS)) new_player.qos_session = Common::QoSSession(new_player.socket); @@ -2057,64 +2072,25 @@ PlayerId NetPlayServer::GiveFirstAvailableIDTo(ENetPeer* player) return pid; } -void NetPlayServer::SendResponse(MessageID message_id, const Client& player) +template +void NetPlayServer::SendResponseToPlayer(const Client& player, const MessageID message_id, + Data&&... data_to_send) { sf::Packet response; - switch (message_id) - { - case MessageID::PlayerJoin: - response << MessageID::PlayerJoin; - response << player.pid << player.name << player.revision; - break; + response << message_id; + (response << ... << std::forward(data_to_send)); - case MessageID::ConnectionSuccessful: - response << MessageID::ConnectionSuccessful; - response << player.pid; - break; - - case MessageID::ChangeGame: - response << MessageID::ChangeGame; - SendSyncIdentifier(response, m_selected_game_identifier); - response << m_selected_game_name; - break; - - case MessageID::PadBuffer: - response << MessageID::PadBuffer; - response << m_target_buffer_size; - break; - - case MessageID::HostInputAuthority: - response << MessageID::HostInputAuthority; - response << m_host_input_authority; - break; - default: - INFO_LOG_FMT(NETPLAY, "Warning! Call to SendResponse() failed to send a packet."); - return; - break; - } - - // no player specified - if (player == Client{}) - SendToClients(response); - else - Send(player.socket, response); + Send(player.socket, response); } -void NetPlayServer::TellNewPlayerAboutExistingPlayers(const Client& new_player) +template +void NetPlayServer::SendResponseToAllPlayers(const MessageID message_id, Data&&... data_to_send) { - sf::Packet send_packet; - for (const auto& p : m_players) - { - send_packet.clear(); - send_packet << MessageID::PlayerJoin; - send_packet << p.second.pid << p.second.name << p.second.revision; - Send(new_player.socket, send_packet); + sf::Packet response; + response << message_id; + (response << ... << std::forward(data_to_send)); - send_packet.clear(); - send_packet << MessageID::GameStatus; - send_packet << p.second.pid << p.second.game_status; - Send(new_player.socket, send_packet); - } + SendToClients(response); } u16 NetPlayServer::GetPort() const diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 5688ce5a6d..0b54f30ba2 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -132,6 +132,11 @@ private: u64 GetInitialNetPlayRTC() const; + template + void SendResponseToPlayer(const Client& player, const MessageID message_id, + Data&&... data_to_send); + template + void SendResponseToAllPlayers(const MessageID message_id, Data&&... data_to_send); void SendToClients(const sf::Packet& packet, PlayerId skip_pid = 0, u8 channel_id = DEFAULT_CHANNEL); void Send(ENetPeer* socket, const sf::Packet& packet, u8 channel_id = DEFAULT_CHANNEL); @@ -153,11 +158,11 @@ private: void SetupIndex(); bool PlayerHasControllerMapped(PlayerId pid) const; + // pulled from OnConnect() void AssignNewUserAPad(const Client& player); + // pulled from OnConnect() // returns the PID given PlayerId GiveFirstAvailableIDTo(ENetPeer* player); - void SendResponse(MessageID message_id, const Client& player = Client{}); - void TellNewPlayerAboutExistingPlayers(const Client& new_player); NetSettings m_settings; From 978b6a8724c38c03e2eb07c6ac5c4f3c146e9d09 Mon Sep 17 00:00:00 2001 From: Sage King Date: Sun, 7 Aug 2022 16:56:13 -0600 Subject: [PATCH 565/659] Added comment explaining obscure folding syntax in NetPlayServer.cpp --- Source/Core/Core/NetPlayServer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 9ea4555ca5..0d59486423 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -2078,6 +2078,7 @@ void NetPlayServer::SendResponseToPlayer(const Client& player, const MessageID m { sf::Packet response; response << message_id; + // this is a C++17 fold expression used to call the << operator for all of the data (response << ... << std::forward(data_to_send)); Send(player.socket, response); @@ -2088,6 +2089,7 @@ void NetPlayServer::SendResponseToAllPlayers(const MessageID message_id, Data&&. { sf::Packet response; response << message_id; + // this is a C++17 fold expression used to call the << operator for all of the data (response << ... << std::forward(data_to_send)); SendToClients(response); From 66276ac61ba3ae3a8b5f840cdb8616ee9bd5dc83 Mon Sep 17 00:00:00 2001 From: Sage King Date: Sun, 7 Aug 2022 18:39:07 -0600 Subject: [PATCH 566/659] Added type to SyncIndentifierComparison enum in SyncIdentifier.h in an attempt to fix a failed call to operator<< in SendResponse() --- Source/Core/Core/NetPlayServer.cpp | 3 ++- Source/Core/Core/NetPlayServer.h | 6 ------ Source/Core/Core/SyncIdentifier.h | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 0d59486423..981e980d17 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -2049,7 +2049,8 @@ void NetPlayServer::AssignNewUserAPad(const Client& player) { for (PlayerId& mapping : m_pad_map) { - if (mapping == Unmapped) + // 0 means unmapped + if (mapping == 0) { mapping = player.pid; break; diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 0b54f30ba2..13a05ee070 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -103,12 +103,6 @@ private: AllExcept }; - enum MappedState - { - Unmapped, - Mapped - }; - struct AsyncQueueEntry { sf::Packet packet; diff --git a/Source/Core/Core/SyncIdentifier.h b/Source/Core/Core/SyncIdentifier.h index a144eb58e1..5e984476f9 100644 --- a/Source/Core/Core/SyncIdentifier.h +++ b/Source/Core/Core/SyncIdentifier.h @@ -36,7 +36,7 @@ struct SyncIdentifier // The order of entries in this enum matters, as the lowest value is // treated as the "best" available option. -enum class SyncIdentifierComparison +enum class SyncIdentifierComparison : u8 { SameGame, DifferentHash, From da803adf15401ba6615130a9667da6e771b618f9 Mon Sep 17 00:00:00 2001 From: Sage King Date: Tue, 9 Aug 2022 16:26:03 -0600 Subject: [PATCH 567/659] Work around for compiler bug on Debian and FreeBSD --- Source/Core/Core/NetPlayServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 981e980d17..c44af173ba 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -440,7 +440,7 @@ ConnectionError NetPlayServer::OnConnect(ENetPeer* incoming_connection, sf::Pack existing_player.second.name, existing_player.second.revision); SendResponseToPlayer(new_player, MessageID::GameStatus, existing_player.second.pid, - existing_player.second.game_status); + static_cast(existing_player.second.game_status)); } if (Config::Get(Config::NETPLAY_ENABLE_QOS)) From cdea6758279f06e97659276646537a96efe90928 Mon Sep 17 00:00:00 2001 From: Zopolis4 Date: Wed, 10 Aug 2022 13:42:09 +1000 Subject: [PATCH 568/659] Fix minor typo in readme --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index da1949546d..604d6e041b 100644 --- a/Readme.md +++ b/Readme.md @@ -70,7 +70,7 @@ A binary supporting a single architecture can be built using the following steps 1. `mkdir build` 2. `cd build` 3. `cmake ..` -4. `make -j$(sysctl -n hw.logicalcpu)` +4. `make -j $(sysctl -n hw.logicalcpu)` An application bundle will be created in `./Binaries`. From e926946f64d3802ba0cbe22a3d532802614faae7 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Wed, 11 May 2022 21:14:02 -0400 Subject: [PATCH 569/659] Consistent tv card colors Item selected color is now dolphin-blue for all cards in the TV activity. --- .../dolphinemu/adapters/GameRowPresenter.java | 20 ++----------------- .../adapters/SettingsRowPresenter.java | 12 +++++++++-- ...nd_gamecube.xml => tv_card_background.xml} | 0 .../res/drawable/tv_card_background_wii.xml | 8 -------- .../drawable/tv_card_background_wiiware.xml | 8 -------- .../app/src/main/res/values-night/colors.xml | 3 --- .../app/src/main/res/values/colors.xml | 3 --- 7 files changed, 12 insertions(+), 42 deletions(-) rename Source/Android/app/src/main/res/drawable/{tv_card_background_gamecube.xml => tv_card_background.xml} (100%) delete mode 100644 Source/Android/app/src/main/res/drawable/tv_card_background_wii.xml delete mode 100644 Source/Android/app/src/main/res/drawable/tv_card_background_wiiware.xml diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java index 2414f46669..b961104e14 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java @@ -16,7 +16,6 @@ import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.dialogs.GamePropertiesDialog; import org.dolphinemu.dolphinemu.model.GameFile; import org.dolphinemu.dolphinemu.services.GameFileCacheManager; -import org.dolphinemu.dolphinemu.ui.platform.Platform; import org.dolphinemu.dolphinemu.utils.PicassoUtils; import org.dolphinemu.dolphinemu.viewholders.TvGameViewHolder; @@ -68,23 +67,8 @@ public final class GameRowPresenter extends Presenter holder.gameFile = gameFile; - // Set the platform-dependent background color of the card - int backgroundId; - switch (Platform.fromNativeInt(gameFile.getPlatform())) - { - case GAMECUBE: - backgroundId = R.drawable.tv_card_background_gamecube; - break; - case WII: - backgroundId = R.drawable.tv_card_background_wii; - break; - case WIIWARE: - backgroundId = R.drawable.tv_card_background_wiiware; - break; - default: - throw new AssertionError("Not reachable."); - } - Drawable background = ContextCompat.getDrawable(context, backgroundId); + // Set the background color of the card + Drawable background = ContextCompat.getDrawable(context, R.drawable.tv_card_background); holder.cardParent.setInfoAreaBackground(background); holder.cardParent.setOnLongClickListener((view) -> { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java index 286e36539e..f05cffb983 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java @@ -2,12 +2,16 @@ package org.dolphinemu.dolphinemu.adapters; +import android.content.Context; import android.content.res.Resources; +import android.graphics.drawable.Drawable; import android.view.ViewGroup; +import androidx.core.content.ContextCompat; import androidx.leanback.widget.ImageCardView; import androidx.leanback.widget.Presenter; +import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.model.TvSettingsItem; import org.dolphinemu.dolphinemu.viewholders.TvSettingsViewHolder; @@ -21,7 +25,6 @@ public final class SettingsRowPresenter extends Presenter settingsCard.setMainImageAdjustViewBounds(true); settingsCard.setMainImageDimensions(192, 160); - settingsCard.setFocusable(true); settingsCard.setFocusableInTouchMode(true); @@ -32,6 +35,7 @@ public final class SettingsRowPresenter extends Presenter public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) { TvSettingsViewHolder holder = (TvSettingsViewHolder) viewHolder; + Context context = holder.cardParent.getContext(); TvSettingsItem settingsItem = (TvSettingsItem) item; Resources resources = holder.cardParent.getResources(); @@ -39,7 +43,11 @@ public final class SettingsRowPresenter extends Presenter holder.itemId = settingsItem.getItemId(); holder.cardParent.setTitleText(resources.getString(settingsItem.getLabelId())); - holder.cardParent.setMainImage(resources.getDrawable(settingsItem.getIconId(), null)); + holder.cardParent.setMainImage(resources.getDrawable(settingsItem.getIconId())); + + // Set the background color of the card + Drawable background = ContextCompat.getDrawable(context, R.drawable.tv_card_background); + holder.cardParent.setInfoAreaBackground(background); } public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) diff --git a/Source/Android/app/src/main/res/drawable/tv_card_background_gamecube.xml b/Source/Android/app/src/main/res/drawable/tv_card_background.xml similarity index 100% rename from Source/Android/app/src/main/res/drawable/tv_card_background_gamecube.xml rename to Source/Android/app/src/main/res/drawable/tv_card_background.xml diff --git a/Source/Android/app/src/main/res/drawable/tv_card_background_wii.xml b/Source/Android/app/src/main/res/drawable/tv_card_background_wii.xml deleted file mode 100644 index d4a04a9203..0000000000 --- a/Source/Android/app/src/main/res/drawable/tv_card_background_wii.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/Source/Android/app/src/main/res/drawable/tv_card_background_wiiware.xml b/Source/Android/app/src/main/res/drawable/tv_card_background_wiiware.xml deleted file mode 100644 index 837d59cb39..0000000000 --- a/Source/Android/app/src/main/res/drawable/tv_card_background_wiiware.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/Source/Android/app/src/main/res/values-night/colors.xml b/Source/Android/app/src/main/res/values-night/colors.xml index b2c5676f35..8db7ef7bc5 100644 --- a/Source/Android/app/src/main/res/values-night/colors.xml +++ b/Source/Android/app/src/main/res/values-night/colors.xml @@ -4,9 +4,6 @@ #2196f3 #FFFFFF - #9e9e9e - #2979ff - #444444 #36ff0000 diff --git a/Source/Android/app/src/main/res/values/colors.xml b/Source/Android/app/src/main/res/values/colors.xml index 4a70ae74f5..46bb372e2c 100644 --- a/Source/Android/app/src/main/res/values/colors.xml +++ b/Source/Android/app/src/main/res/values/colors.xml @@ -4,9 +4,6 @@ #21b0f3 #ffffff - #9e9e9e - #2979ff - #444444 #36ff0000 From 0d39c4a78a24d5bc52dc6ee81fe035a64abb853e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 10 Aug 2022 06:27:37 +0200 Subject: [PATCH 570/659] IOS/FS: Skip writing FST if SetMetadata() changes nothing. --- Source/Core/Core/IOS/FS/HostBackend/FS.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp index 27daeeafb1..1ca9a2faa1 100644 --- a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp +++ b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp @@ -678,11 +678,15 @@ ResultCode HostFileSystem::SetMetadata(Uid caller_uid, const std::string& path, if (entry->data.uid != uid && entry->data.is_file && !is_empty) return ResultCode::FileNotEmpty; - entry->data.gid = gid; - entry->data.uid = uid; - entry->data.attribute = attr; - entry->data.modes = modes; - SaveFst(); + if (entry->data.gid != gid || entry->data.uid != uid || entry->data.attribute != attr || + entry->data.modes != modes) + { + entry->data.gid = gid; + entry->data.uid = uid; + entry->data.attribute = attr; + entry->data.modes = modes; + SaveFst(); + } return ResultCode::Success; } From 12a5f73418fafb801858ad71d6ec04d857372784 Mon Sep 17 00:00:00 2001 From: Scott Mansell Date: Wed, 10 Aug 2022 18:21:47 +1200 Subject: [PATCH 571/659] Workaround Freebsd/clang/fmt bug --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4f4019217..163ea2c943 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -440,6 +440,12 @@ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|NetBSD") set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};/usr/local") set(CMAKE_REQUIRED_INCLUDES "/usr/local/include") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib") + + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0) + # Workaround: the llvm libc++ and versions of clang eariler than 14 have a bug with consteval + # so we define FMT_CONSTEVAL to blank to just disable consteval in fmt + add_definitions(-DFMT_CONSTEVAL=) + endif() endif() # Dolphin requires threads. From 1004e34167e202b0d5fec3bf877aaa14b671d334 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 2 Aug 2022 17:53:52 -0700 Subject: [PATCH 572/659] Android: Don't set the signingConfig if keystore property isn't set If the property isn't set, we don't initialize the release config, so we shouldn't use it. This fixes building issues for me. --- Source/Android/app/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index b19c3cec62..72779c3fb5 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -48,7 +48,9 @@ android { buildTypes { // Signed by release key, allowing for upload to Play Store. release { - signingConfig signingConfigs.release + if (project.hasProperty('keystore')) { + signingConfig signingConfigs.release + } minifyEnabled true shrinkResources true From a91e47899de511b0ef6b7de6ed36c49ada1db9c5 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Wed, 10 Aug 2022 13:51:30 -0400 Subject: [PATCH 573/659] Android: Prevent app lockup when revoking write access --- .../org/dolphinemu/dolphinemu/ui/main/MainPresenter.java | 6 ++++++ .../org/dolphinemu/dolphinemu/utils/StartupHandler.java | 4 ---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java index 32d40234fe..e012cd84dc 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java @@ -26,7 +26,9 @@ import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner; import org.dolphinemu.dolphinemu.utils.BooleanSupplier; import org.dolphinemu.dolphinemu.utils.CompletableFuture; import org.dolphinemu.dolphinemu.utils.ContentHandler; +import org.dolphinemu.dolphinemu.utils.DirectoryInitialization; import org.dolphinemu.dolphinemu.utils.FileBrowserHelper; +import org.dolphinemu.dolphinemu.utils.PermissionsHandler; import org.dolphinemu.dolphinemu.utils.ThreadUtil; import org.dolphinemu.dolphinemu.utils.WiiUtils; @@ -56,6 +58,10 @@ public final class MainPresenter public void onCreate() { + // Ask the user to grant write permission if relevant and not already granted + if (DirectoryInitialization.isWaitingForWriteAccess(mActivity)) + PermissionsHandler.requestWritePermission(mActivity); + String versionName = BuildConfig.VERSION_NAME; mView.setVersionString(versionName); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java index 360ae1a030..ba4062bb88 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java @@ -26,10 +26,6 @@ public final class StartupHandler public static void HandleInit(FragmentActivity parent) { - // Ask the user to grant write permission if relevant and not already granted - if (DirectoryInitialization.isWaitingForWriteAccess(parent)) - PermissionsHandler.requestWritePermission(parent); - // Ask the user if he wants to enable analytics if we haven't yet. Analytics.checkAnalyticsInit(parent); From 7ac042d00ba6cb58d90c10ed7cae912c96e5c246 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 10 Aug 2022 05:21:12 +0200 Subject: [PATCH 574/659] DirectoryBlob: Fix partition size mixup for encrypted Wii discs. --- Source/Core/DiscIO/DirectoryBlob.cpp | 8 ++++++-- Source/Core/DiscIO/DirectoryBlob.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 295235c605..193d74c244 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -663,10 +663,14 @@ void DirectoryBlobReader::SetPartitions(std::vector&& partiti SetPartitionHeader(&partitions[i].partition, partition_address); - const u64 data_size = partitions[i].partition.GetDataSize(); + const u64 data_size = + Common::AlignUp(partitions[i].partition.GetDataSize(), VolumeWii::BLOCK_DATA_SIZE); + partitions[i].partition.SetDataSize(data_size); + const u64 encrypted_data_size = + (data_size / VolumeWii::BLOCK_DATA_SIZE) * VolumeWii::BLOCK_TOTAL_SIZE; const u64 partition_data_offset = partition_address + PARTITION_DATA_OFFSET; m_partitions.emplace(partition_data_offset, std::move(partitions[i].partition)); - m_nonpartition_contents.Add(partition_data_offset, data_size, + m_nonpartition_contents.Add(partition_data_offset, encrypted_data_size, ContentPartition{this, 0, partition_data_offset}); const u64 unaligned_next_partition_address = VolumeWii::OffsetInHashedPartitionToRawOffset( data_size, Partition(partition_address), PARTITION_DATA_OFFSET); diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index f616adc876..fea877f729 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -204,6 +204,7 @@ public: bool IsWii() const { return m_is_wii; } u64 GetDataSize() const { return m_data_size; } + void SetDataSize(u64 size) { m_data_size = size; } const std::string& GetRootDirectory() const { return m_root_directory; } const std::vector& GetHeader() const { return m_disc_header; } const DiscContentContainer& GetContents() const { return m_contents; } From f7e4144e55418baaea5cbe06beea4cd0a906d4d7 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 10 Aug 2022 11:55:52 -0700 Subject: [PATCH 575/659] Android: Improve documentation on command-line build --- AndroidSetup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AndroidSetup.md b/AndroidSetup.md index fa1426723b..e052cd356c 100644 --- a/AndroidSetup.md +++ b/AndroidSetup.md @@ -31,7 +31,7 @@ Double clicking any of these tasks will execute it, and also add it to a short l Clicking the green triangle next to this list will execute the currently selected task. -For command-line users, any task may be executed with `Source/Android/gradlew `. +For command-line users, any task may be executed with `cd Source/Android` followed by `gradlew `. In particular, `gradlew assemble` builds debug and release versions of the application (which are placed in `Source/Android/app/build/outputs/apk`). ## Getting Dependencies From 1dff1c3fe833f5b690ad6324914f5dff7813fb11 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Tue, 19 Jul 2022 00:23:57 -0400 Subject: [PATCH 576/659] Android: Add Androidx splash screen to wait for directory initialization --- Source/Android/app/build.gradle | 1 + .../Android/app/src/main/AndroidManifest.xml | 6 +++--- .../dolphinemu/ui/main/MainActivity.java | 5 +++++ .../src/main/res/drawable-hdpi/ic_dolphin.png | Bin 2037 -> 0 bytes .../main/res/drawable-xhdpi/ic_dolphin.png | Bin 2692 -> 0 bytes .../main/res/drawable-xxhdpi/ic_dolphin.png | Bin 4122 -> 0 bytes .../app/src/main/res/drawable/ic_dolphin.xml | 20 ++++++++++++++++++ .../app/src/main/res/values-night/colors.xml | 2 ++ .../app/src/main/res/values/colors.xml | 2 ++ .../app/src/main/res/values/themes.xml | 6 ++++++ 10 files changed, 39 insertions(+), 3 deletions(-) delete mode 100644 Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png delete mode 100644 Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png delete mode 100644 Source/Android/app/src/main/res/drawable-xxhdpi/ic_dolphin.png create mode 100644 Source/Android/app/src/main/res/drawable/ic_dolphin.xml diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index 72779c3fb5..525c7be0fd 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -103,6 +103,7 @@ dependencies { implementation 'androidx.fragment:fragment:1.4.1' implementation 'androidx.slidingpanelayout:slidingpanelayout:1.2.0' implementation 'com.google.android.material:material:1.6.0' + implementation 'androidx.core:core-splashscreen:1.0.0' // Android TV UI libraries. implementation 'androidx.leanback:leanback:1.0.0' diff --git a/Source/Android/app/src/main/AndroidManifest.xml b/Source/Android/app/src/main/AndroidManifest.xml index 78bd53c35f..e1352b47c2 100644 --- a/Source/Android/app/src/main/AndroidManifest.xml +++ b/Source/Android/app/src/main/AndroidManifest.xml @@ -49,13 +49,13 @@ + android:theme="@style/Theme.Dolphin.Splash"> - + - + diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java index 1224fa0397..c0238617f9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java @@ -14,6 +14,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import androidx.core.splashscreen.SplashScreen; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import androidx.viewpager.widget.ViewPager; @@ -55,6 +56,10 @@ public final class MainActivity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState) { + SplashScreen splashScreen = SplashScreen.installSplashScreen(this); + splashScreen.setKeepOnScreenCondition( + () -> !DirectoryInitialization.areDolphinDirectoriesReady()); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); diff --git a/Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png b/Source/Android/app/src/main/res/drawable-hdpi/ic_dolphin.png deleted file mode 100644 index e50a86dac11e7aa333882860ded133bc4bcfe012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2037 zcmV9PdauKx`#yHCSYd=cJ( zSKt$L72fhI@DN^r)6Rcjy(R;-7sjH(xT7%WC4Fh!^Z!j-LuG$M=i^A%O$G$RdR00a z9J`CwsnD)8q_j=L#1^qnTv)O4ZDeT*dNk=@?xo6)IYKX+3Ez+#Xql)+t7PO_EfQ4l z54#1&ZGV$#aVR|`6dJ?($YHzTcQlWCt}}1z6r5?3hA#o=vEqh;?m+s}pr;gdmnOnb zaT_fXQ7Ec+_zoJKe3WIHR*5*K?0~H-pn#N## z^EixX8i$T8<~51JAkse4_3Y}cyF3Nd z!%vfZS&`CH;81?-(I*X*&&eR@RO4_wY8-*NUBgknz!%I67?bhs$cW92B5+Gv{SB${ z%zjMgOuDC8M2ZT7-qKZ`vO8#S5?SfbrjhVsMF5#mo;09gI1;tR;;`*J^m|C3Fute{ zD|7(8+KZCU*FOR1loJ0ok1qNp7JyzOCAv}!$?wMGvi}+k`^r^}FCJCM!%J@Ky!RUF z9fwx=A5+uTK4}e2;8Ur^exa_to93%vx>izGkEUY+C%P9y*C$D#q&<}GXSzS0j@?** z$d1j0KFcG`kHfJ3aSZi8j_Ys6<|eug;{hRR%`UvKC_U`Zx4wtf@H+~va@cVN^peoy zi@9J>X2fCo$e=`}$q}eBJsMSK#BkD_SDq4q3geZO<_L`Y2Sbl1dgJq$=n9!Aq2mb6 z2irVArkMI4gW}Ej+$HxYu23>bFt`vtO2DA<++ z&iik}dfge+T#$mYBaf2NB9Kuk>RrcJcS%3iE39npLWY6=Va)YC0`<#!T!nXG)Ia1Y zD6vy)1_A1{)=tX+;vRtRVw_wmm zev9>zxUvEvK-7+gg32T4IlK-cr+VzIz*#Q^lIVES`yj&Tn7}>Di(JJIQG017wSF+D zM?I$Dw~_IrmMn)*{p~20`!CD0*>nkd0iq1nU!MPMh*9srIH!I0;28pKQjyZULa~L8 zV|+r<);|nZKJhSO@8Ev~RXsy-gUhE&PW$gEsjNt^5IoTK+&%C)%zpU?CW8)gMm?aR zvWN{oUXJAe%HQUVa>?*txjAnW%P;0DPv3G60^U+E{`LsLIKL3&YCG>4jNx2Y?3i=98T6nAr1BoUC`U~TML5XhFIj$Y zm8!41$pN=OsNLmIdIaJ-Ej=X16DO5(h$~NWrCl%IO+BN+AzKF0!rE3>@fA;(t~*cdX#g%tqq zVW{CMMJ5UF%4W+=Fupj3^%GQQI&e{-3ccJQHyMKR3w(dh#52}i?9DzTs3(;rlYVp(;V}s>g-hf{{{aKtgo~Z z%LXqw>QGs~I0^Bn+PsVxo6Vltzc87zlB?5Z+dUZclpSFoA}#`$I|?y}lV8k>9EkbMqN&#Y2$YT{lNAoXY2Kn>EuejlFISo}8_pFY-nE&$N8ocnJnmIG|| zVwufO6-)*n{zLQoUI}mG6NEB0JCRvq$r;cp$kURf1k0UhX1P_ZG9Gj!f@!A&i|yD{ zW$s^~eUYD*$0g7(t6{p~*)@YcA?uiSN-*7sQ57bo+|c~zpaiX31mkMUu4U53@hhgC z5=__QE90Tc-K+%Nd#EyF6UD3q-IN}i*ns`l9vlk*0000C^0%JD?g{_^003YMJ)%D| TqiGX%00000NkvXXu0mjfJv86; diff --git a/Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png b/Source/Android/app/src/main/res/drawable-xhdpi/ic_dolphin.png deleted file mode 100644 index f20aa29c6ab0d5091fa39138ff35888b9abbcdb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2692 zcmV-~3VZd5P)y>@|99YLOxPNTAOEt#-E^CY;DZMPE{y z%R+_wC_P8%W#R=ECOSsxR=QtEX&eg|zfIQy*nNfRQZp7V8O1`y^I5p)ClWwPTtfvt zz(pY5r1KgQp_&WBMImmX^E^spxhVABlPpT=%szrPYYt)rR%G*2djAmFgpyieBIw4X zKyRuPx>Hi19UTDgk*M$^xB$e}B;*Zc;Z()oA{fj_gW;?U7|cxP!YD;) zjHhaAa+vt@+Mq;B`ms9^oY|KLnex0!&yv{581Qj9Jd^feSl)R|SW}J3n*k*!ZK%Q6 z@*5alZ~^|}V{ra!+X?d*^XD_QM1;tN3&Wc^5lV7#`+iUghhMkAd&xlz&OC!rtFL1G z8aXCy1XMY3eGSHxUdPbf^Y9ZLh3mh&VD;r1SiDjQo#pq01`E`>8 zIdD(di*c1QZu6d;yb)I>Z$jJyTQL43K$oc&wglL@cI2QgutqG@{@p&KUq?P#aPJ{$Of}=o}O3ZkBN2O<%}^zvL9gt%2In;peU2GquAsL0=NTL@Qhj zyPvjVbQ#ScDxsF_^KQu{7A$pBuep4fuu5-=6yD2EU`z#CO%mYrm`dc2sluOh{wAGI zqw}Z7RpP<1RhZ0Es-;iT{TMobd29u~CN808%g2=C9HnS0o&VW`+O@`1!2tE>^FxIK zgP9o!OuIleA1z}!YA7ux@m?cw{euA=)=Kbq$E}4k1tgekeoZ!4jw!?SmijbuwH&6; z=kXwHXOSsB-F=!lOK)l_0@E*HR4JOx(WSUSh5d&D;K@1=BX_`z0`V~A`O~Np>}alk zgR-u`aCRnYClg`fXIZzz)Z`vo5#p1cOHN=!F`Ca3q>ZY8Yv(ssXpJkzpwY$nVq`J) zHRb1^>}xcAE~;D5g^FKd-45a6=Pke7h!LyNEDkTmH7fWVE(Gghj01E>m*5fdDRty( z$Q$!{Sdkq4KUu3>%>Bp&0v*;}U@$#>_266?hOI=C9KI5lhpomW)(t_G!i)Ti9kvRx z#{9SWVLKlah=TaqUDPf|M0!uFuQ$ntt^k_kO4Lvxo@Nb!Z#9!G7B212!lag*wa5G# zzt@Qvy$YV>r-=MjG*k|!zYjpGZZlB8p3gMs;_gQ>!E4!B3@JpDbWb|IgN2JeBgYf# z_ubdmZv|f<%86)%^7?)G1NB?fX~aLM>wA?&h#qEPDK@MFFuV{Ckl#CrP^C-UQD{d> zz(PdJyR;=3&ChvxaJ~YA3(zDDW@R?G-K-Ox0{!XfG~396(cByu&&%cH$NU<<$DgTd z`i%!^AKhO}L77SW{I=~jMijwxa3OvpDpbqkmUx0T6_dGN30*TLP^P`!sVEtg2QgM|u^D#1?xosu9G=V0!%un*f!T6?zgY~-lEXKdHq{oNh0{NWVg20>^nR}r#tZVm zSKi8C)PJ}sW8uPA+pBd9DZo>M^KnMiC)b1%buEDp%$*G?=xYN$+k~K8bUFRgWpIf< z0Ul)I`T0Bu%3#QdQaXN=1-Gr1(wN{9l!tAqc{}}kv~ElY6VL8U@yBU}OKx~9IZw41 z-Hu+u%dq-p2aM+B-PuiTrB*SA%}z6Btwc}}`UK^mP&Gfh-wvSmt6qe7JnL}K?1Tz) zWZ+lZ5RiqoF&m1&EL@^O9Hn#*UE4}LMMQhiHSr93y<4U1DmagjSTFKj+g1f(4UEa} z6xDqCQ*TiFtvXU{-O<|)e_Fg&Ld{+Q|4cN=fDBxtbe(?|7Lw!d`)4B}C<~*gPjwuc z33Js2SwJSn(({Vu*!D}Ssix=U&3V>Kbd5yX0^OL@xSpzYK`Et)^)E^MP}A ze;*hakb^N4=ocu@M7qA6-d8mCj(4&Q1Hakjpbb;Hw7ajjS$p^nsrUDu)Z7B%T z{L-+Ld^+2}yChaM`hUKax~63C!J2~cHG5fL)Y2eO9%*;lb&fv=tw`~87A5gx9RcqY z9QTm|O8QE%-X|5aM@nJF+7VQk7_zJ2c{D~ZQ8jdc~ws3ih`| z+>1Tms^T>`wmF66V$nOHREBh-?3SHm!0P+`wBVC+Tjywn`wVLVsKr^3y){aEUJ?bZ zPYQVu=BfGrThR8FAkIqyG)9-C%h0Y{kuGPEndU7Bt_|@WvcLDXtt&Kj%?Dr15#M1g zs9atd7(h0*C~Y~#o~QMJs|wE92cME~)BKU?~t#!H09JcU@#?e+g+7vHPm0w%R62+8oL_b(9PwzL|0(=+AD z0a?AF6iI*w-31U4uMu%4of59X^raHzg6lF17k%G~Ile9hVVb)Thb@0N%)5~m2Z1We zljM(_2yTPAvn+PM!6zL(-IpVr_?O#qY;a!&ncFge)9S~g(4UzD{sV3s?f+u+)A4E^ z1PbWytOf8`hR?V!u0*4Gg?zgF2)my_EyI**T#%ap&r&d+cU@HTvBg_!zF=(x*&I9Y zyTdza?+dieFtR0Mi`!DHa9s-6{C1iLaJ{k>wGbLOXTrSKyPIQmBT^n{Q7aI`&SeQs zxhw`uUoPW8h-4bH9+n@iF>Z12mLSA=5n%h*B|cNz*aaVNG;mr3vC~4p{Pi__EO?4( z(7B+oz|t`hr>y_rtw6GhY0&v_Ou#hzc);Z43b5ehAxwkLU(wseqhR2V=lHtfAErU) zgIa*UT`Xiq^HyG9vjrARgU*L-EPn3&$pJnX&tMvKKCBYa+v-pGN!^(ALZ(62!1^D& zX!6QBIg3tpU>bDESYX)a%Tv2*e;(7IYhd|1!u4k4uVfl@-L%yB#i~rELD#|PrFFwK yD*V4aI2Hf^000=|Z#|1$6#xJL000000Kg7*#b$9oc8ZG4f=k1W041jbTi*VDfW&f^`C=GcXxjf&0g&9ymXG_P^8Q;*DTWQR+ygL`AqxN>*9luQxox6{l zaPhM(m9Sp)wdVOg67HH4MYUb$IbYO&IRFh`4MGD_e&)X7`s^i4fC>-)c66u*4fY$I zaX`8IXu$F!+q}UxcL@*8BBdXm+CBoPC5nQJ#)<;`HZLu~m{K4eW~QM3x)T^2d>vyG zA7N6a9+UUOn99C!DcKkmorNJG*Ws}39D4tD7#(M)!s_E)sQ;p$r%+Lt0|GnI`0p?( zgprSna&Rqot>P5xPj;i-kBR6!KLb5h96+CyN9m-Ku-$kXcAL*AuIPbROG7@n3{OE>k1Q1Z7-eTY$*~O3Sn^Y4c@_z zdAGtMd?qQIcl!-RXx)}%qSe>2Xz)s)DS|pFBP9DBXS~1Bo1y5t@)#q@6Z8AE4_7Fj zxs&$8Mic-Q&xJRk;Xk0kj}%ZWqWOnA>CAm__PI<4Kj9sWa^-|QdW?+BVhTC0^rPh$ z(Wv{pUy*`p_<9H<-6@Pu%Q3(0Ox&Ba7hg^~2`f+63Q%dpPIEHO3zx{IA`dF$D6WTQsUhk#c{c(B18(A(6cj*}9cHD2 z4;Iq}L8#)PXx5M*72}MGd&-oBa^*A0$RaO{O~FzAok>S!kbB7e+<%P2rbN$ZqNAld4xkXuXWb_lxg9U=M;(g)DLDd=yH|@I=k22t9zwHXfB*LN` zn}{5WC7urca(p6&xg13OG7Y9c?a`^|IVKhVrI=>2-7xm!770tU@9Hy#$=%1S9bc0- zV@-QhA3_5>tn-{79K5e%bOJ2Nv!fI7!{}u66%`B_-RSU9?9Uh629x(Kb)6mO>@gmV z|3kbU*tmw&J(~KwYf|NCvdzYe7!?nTaCAIQj)})xGR=reib-j(VjB7<`}+&~d$u&! zJ2Fm>_A}FsMHE{z7LjqqoV?(!OAfJMM(G)kEZ&h{D#EEkkTd0D<1t}O99HleE|_!e zBT3qkQ#(FTMC2;x3UxNscy3EmhXOib{aFk~#ON_H7NsJM7{gkp${Xy@$I)O!0$g}K z{uD)aN$p^>=`!co0t}Jp3OS~lF8tC=uJf!f1_WeLKro-N(2t720%>?r%`h?^y@tnP z?#LKiFNsZ@1MYFkC)|+Ivbe(W-_`NSYi;L+2QfSvW^+U|a)!s?RZ-3H_cS!-wZ1}e z95B^3Ln5+a{aLI*L^)i{_G+~nG_39AdvQ?MV+@ai*`z@~6g3EP_+eNyUZ+4#nPQ)z zyK=dLG7W}>_2j43Bz%pWKrFQucfLOj3^H@yhp}*R@iXn^sbcJBX$uqVUzQDBLdAR=f4+IB&mU ztVqwPj~}Z3SP|C&_g;A(LwCb04h(wyu+iH)KB5qQpix$l!Fg|6oaOeu1>U&Ob9+Y? z`FYDux03Ui2Hs%pHbK0oX)h`P#zv#Zu-))6#b%ur90F})h(=$Fs*JkN`Yjk3oXrpm zv)FcehBQRQk?9~$Tw3xoMzFEMC83e1APk9y>#$w8P@LVmEjun>1TggfeNk0m^-0XG zAv*zcI5;8~9JMacv2uTd*Fwk2EUFy%@?F~>(jO1z#h61!-}`9wZ3^@HK^o&U`mVbIJI!4<2R^2_^zs;saZq?J z9Q_`k|E3%0`TIGhfx}AMP2SxF4nY(dp(v%`;dJbE~*4vwTszd-qAPd08~5LYwx4$vXe?GtX*(~x=BH; zP+l%9`?{#hpa>)u)!)twj~d=nJEug-N)0!iyA18kK8(V^Fg=NCO{ah-==ReYSbZ9Y zTAn`ng_I);aN1*BSw2z^OG0xBMORcm+s(){q}^okc4b{2>*ePlAB*ce=MUR$_b?z7 zHH!Ay2dvo+v%n9{FC;nX8O7mjmeGjw`FSR}RvupwbPmpCF@6!v zKZ%vj%3pZL2p8R-qyx)hfgA1db7B2*^vjktoIyk{SIQ+DZGPMf=Ma>h!MNfairu{M zUn!7J7^43*Bm&O-yNxuIC$Mq3#O-jEEeL@CfW*nFJKy@FGZ6oTo_Vfg2u5cE<+Qc5@m zF!_Gm-G2>ixTozh=m(JIhbjCu;rrlNumykBXf&fs9 z_FPa%Ul<)PD`P}Vs|m_4qg4jfdp_W-&9?iXkxe2Ua*f*+gF-P{=5J9(a0*0#Y|k9F znVy-Gf3T42cbYLWjvEk+FX@Z`@@7fSX{&jJHq-Xye|o#AOrQM7o5q5mjb|6ukM^?< z8HOJgiOPVE^N*i(3- zbPU2Q#{i^~xu%@E|JDbv{vtVFjie2>hi=XrnG?vV;lW%hp9{mRAlCb?; z!zk|dH$^F6r-PH7ALiQo;!I&}^ClR8B-@Eh5S9=TMRU-& zEgP-g(AEX@-;U2>avR@2*(1AsODpRSNVeYiC!Lz1w5!pxE;?Wo0e$9LBogT`f#-in!oZf_Wy)*1 z%jLV>gy~Q*NCT^W+wp!s4U%a{eSZy582fB`f)-z8$aTlYLb}C>G{@32?ESanHMV(? zWEwpwBZNgo#PhyxbiKT`Y}9=*2+D6bsW1;V+h9+}ecg9EqA99JBno2JUv8k$+mXgo z5_d!yV1Nc~*xt|V)6b z?|$2`pTc_BcN?H^s~+v=pGAG9HAO&W2)peV)psj0+Alb(h)5}{`RY`u$A~m&#B140 zLbA{1oV@GNhN+MBWi!9l*nS&qD5Oaglo$CyzsnJ2Z} zl}L0-5Ee*f4iwKF3KWtZ7hRC&hVnwDis}bCd{EojCo?IcbHYNPaNPQAg}%=gK(fgP z$_mDP%HXMr>W6-uo@w%N(rjTt^xlG%y*C4rU4F@XtT**nKUAo2_Jwt?%{bP36Cm0A zvotB7WHkzz3>Ce$;7`3aB9}zh-|riq`u-+Ng$fltHsFt*8vw~>pQOs=9=n98P@$s# zdbH}X9;Zok{`oGWkWRjNJ5rbm6)Kp*{zU=ld#nSRev~Z7g*FQnDoTRxYq6R{$K`kA zTwFHi$a)G>p+ZHEEoj$mEpByN12ldwUPhtsg$flVLATZTm_*xoS7a1ADm17gOoa*+ zy+hD|0?O#RQjdDCL_m0IrwSD+N`kJdFtN)@fE zE@A4jR~02g*EQ(b`FCVBdN)BXXnRGdP*GA)KtHycbxA&r?G!3hloXv;p=GCE^_S|r z5b{J_H?6`fbo>SHHTfh{zB&7@P+ + + + + + + + + + + diff --git a/Source/Android/app/src/main/res/values-night/colors.xml b/Source/Android/app/src/main/res/values-night/colors.xml index 8db7ef7bc5..d792ba7d42 100644 --- a/Source/Android/app/src/main/res/values-night/colors.xml +++ b/Source/Android/app/src/main/res/values-night/colors.xml @@ -4,6 +4,8 @@ #2196f3 #FFFFFF + #1A1C1E + #444444 #36ff0000 diff --git a/Source/Android/app/src/main/res/values/colors.xml b/Source/Android/app/src/main/res/values/colors.xml index 46bb372e2c..e6dc65f906 100644 --- a/Source/Android/app/src/main/res/values/colors.xml +++ b/Source/Android/app/src/main/res/values/colors.xml @@ -4,6 +4,8 @@ #21b0f3 #ffffff + #FDFCFF + #444444 #36ff0000 diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml index 110242a302..5b9dd6859d 100644 --- a/Source/Android/app/src/main/res/values/themes.xml +++ b/Source/Android/app/src/main/res/values/themes.xml @@ -1,5 +1,11 @@ + + + + + diff --git a/Source/Android/app/src/main/res/values-night/bools.xml b/Source/Android/app/src/main/res/values-night/bools.xml new file mode 100644 index 0000000000..14d6d1cbc8 --- /dev/null +++ b/Source/Android/app/src/main/res/values-night/bools.xml @@ -0,0 +1,4 @@ + + + false + diff --git a/Source/Android/app/src/main/res/values-night/colors.xml b/Source/Android/app/src/main/res/values-night/colors.xml deleted file mode 100644 index d792ba7d42..0000000000 --- a/Source/Android/app/src/main/res/values-night/colors.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - #1976d2 - #2196f3 - #FFFFFF - - #1A1C1E - - #444444 - - #36ff0000 - diff --git a/Source/Android/app/src/main/res/values-night/dolphin_colors.xml b/Source/Android/app/src/main/res/values-night/dolphin_colors.xml new file mode 100644 index 0000000000..39e5ccc882 --- /dev/null +++ b/Source/Android/app/src/main/res/values-night/dolphin_colors.xml @@ -0,0 +1,31 @@ + + + + #9ECAFF + #003258 + #00497D + #D1E4FF + #BBC7DB + #253140 + #3B4858 + #D7E3F7 + #D6BEE4 + #3B2948 + #523F5F + #F2DAFF + #FFB4AB + #93000A + #690005 + #FFDAD6 + #1A1C1E + #E2E2E6 + #1A1C1E + #E2E2E6 + #43474E + #C3C7CF + #8D9199 + #1A1C1E + #E2E2E6 + #0061A4 + #000000 + diff --git a/Source/Android/app/src/main/res/values-night/green_colors.xml b/Source/Android/app/src/main/res/values-night/green_colors.xml new file mode 100644 index 0000000000..405de3f9f4 --- /dev/null +++ b/Source/Android/app/src/main/res/values-night/green_colors.xml @@ -0,0 +1,29 @@ + + + + #70DBA8 + #003824 + #005236 + #8CF7C3 + #B4CCBC + #20352A + #364B3F + #D0E8D8 + #A4CDDE + #063543 + #234C5A + #C0E9FA + #93000A + #690005 + #FFDAD6 + #191C1A + #E1E3DF + #191C1A + #E1E3DF + #404943 + #C0C9C1 + #8A938C + #191C1A + #E1E3DF + #006C49 + diff --git a/Source/Android/app/src/main/res/values-night/pink_colors.xml b/Source/Android/app/src/main/res/values-night/pink_colors.xml new file mode 100644 index 0000000000..79973fba8b --- /dev/null +++ b/Source/Android/app/src/main/res/values-night/pink_colors.xml @@ -0,0 +1,29 @@ + + + + #FFB1C4 + #65002E + #8F0044 + #FFD9E1 + #E3BDC5 + #422930 + #5B3F46 + #FFD9E1 + #EDBD92 + #472A0A + #61401E + #FFDCBF + #93000A + #690005 + #FFDAD6 + #201A1B + #ECE0E1 + #201A1B + #ECE0E1 + #514346 + #D6C2C5 + #9E8C8F + #201A1B + #ECE0E1 + #B5195B + diff --git a/Source/Android/app/src/main/res/values-v31/themes.xml b/Source/Android/app/src/main/res/values-v31/themes.xml new file mode 100644 index 0000000000..0b7905858d --- /dev/null +++ b/Source/Android/app/src/main/res/values-v31/themes.xml @@ -0,0 +1,33 @@ + + + + diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index b398bf805a..0089d6eef6 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -479,6 +479,34 @@ -1 + + + Default + Material Default + Green + Pink + + + 0 + 2 + 3 + 4 + + + Default + Material You + Material Default + Green + Pink + + + 0 + 1 + 2 + 3 + 4 + + Never On Idle Skipping diff --git a/Source/Android/app/src/main/res/values/bools.xml b/Source/Android/app/src/main/res/values/bools.xml new file mode 100644 index 0000000000..d0bda19f24 --- /dev/null +++ b/Source/Android/app/src/main/res/values/bools.xml @@ -0,0 +1,4 @@ + + + true + diff --git a/Source/Android/app/src/main/res/values/colors.xml b/Source/Android/app/src/main/res/values/colors.xml deleted file mode 100644 index e6dc65f906..0000000000 --- a/Source/Android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - #2196f3 - #21b0f3 - #ffffff - - #FDFCFF - - #444444 - - #36ff0000 - diff --git a/Source/Android/app/src/main/res/values/dolphin_colors.xml b/Source/Android/app/src/main/res/values/dolphin_colors.xml new file mode 100644 index 0000000000..cd11b64fd4 --- /dev/null +++ b/Source/Android/app/src/main/res/values/dolphin_colors.xml @@ -0,0 +1,42 @@ + + + + #2196f3 + #FFFFFF + #D1E4FF + #001D36 + #535F70 + #FFFFFF + #D7E3F7 + #101C2B + #6B5778 + #FFFFFF + #F2DAFF + #251431 + #BA1A1A + #FFDAD6 + #FFFFFF + #410002 + #FDFCFF + #1A1C1E + #FDFCFF + #1A1C1E + #DFE2EB + #43474E + #73777F + #F1F0F4 + #2F3033 + #9ECAFF + #000000 + + #2196f3 + + #2196f3 + + #9e9e9e + #2979ff + + #444444 + + #36ff0000 + diff --git a/Source/Android/app/src/main/res/values/green_colors.xml b/Source/Android/app/src/main/res/values/green_colors.xml new file mode 100644 index 0000000000..113dbd1812 --- /dev/null +++ b/Source/Android/app/src/main/res/values/green_colors.xml @@ -0,0 +1,29 @@ + + + + #006C49 + #FFFFFF + #8CF7C3 + #002113 + #4D6356 + #FFFFFF + #D0E8D8 + #0A1F15 + #3D6472 + #FFFFFF + #C0E9FA + #001F28 + #FFDAD6 + #FFFFFF + #410002 + #FBFDF8 + #191C1A + #FBFDF8 + #191C1A + #DCE5DD + #404943 + #707973 + #EFF1ED + #2E312F + #70DBA8 + diff --git a/Source/Android/app/src/main/res/values/pink_colors.xml b/Source/Android/app/src/main/res/values/pink_colors.xml new file mode 100644 index 0000000000..c550d4c719 --- /dev/null +++ b/Source/Android/app/src/main/res/values/pink_colors.xml @@ -0,0 +1,29 @@ + + + + #B5195B + #FFFFFF + #FFD9E1 + #3F001A + #75565D + #FFFFFF + #FFD9E1 + #2B151B + #7B5733 + #FFFFFF + #FFDCBF + #2D1600 + #FFDAD6 + #FFFFFF + #410002 + #FFFBFF + #201A1B + #FFFBFF + #201A1B + #F3DDE1 + #514346 + #847376 + #FAEEEF + #352F30 + #FFB1C4 + diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 5a2157e7ac..3ef0f39d58 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -195,6 +195,7 @@ Download Game Covers from GameTDB.com Show Titles in Game List Show the title and creator below each game cover. + Change App Theme Please select a region @@ -563,8 +564,8 @@ It can efficiently compress both junk data and encrypted Wii data. Done Toggle Controls Toggle All - Adjust Scale - Adjust Opacity + Scale + Opacity Adjust Controls Relative Stick Center Rumble diff --git a/Source/Android/app/src/main/res/values/styles.xml b/Source/Android/app/src/main/res/values/styles.xml index b29ec7e045..55a8a35754 100644 --- a/Source/Android/app/src/main/res/values/styles.xml +++ b/Source/Android/app/src/main/res/values/styles.xml @@ -1,12 +1,5 @@ - - + + + + + + + + + + diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml index 34f476380f..4407e5a5aa 100644 --- a/Source/Android/app/src/main/res/values/themes.xml +++ b/Source/Android/app/src/main/res/values/themes.xml @@ -1,5 +1,5 @@ - + - - - + + + + diff --git a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp index 92411968b4..9f83c28cc5 100644 --- a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp +++ b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp @@ -39,10 +39,10 @@ bool IsSettingSaveable(const Config::Location& config_location) // TODO: Kill the current Android controller mappings system if (config_location.section == "Android") { - static constexpr std::array android_setting_saveable = { + static constexpr std::array android_setting_saveable = { "ControlScale", "ControlOpacity", "EmulationOrientation", "JoystickRelCenter", "LastPlatformTab", "MotionControls", "PhoneRumble", "ShowInputOverlay", - "IRMode", "IRAlwaysRecenter", "ShowGameTitles"}; + "IRMode", "IRAlwaysRecenter", "ShowGameTitles", "InterfaceTheme"}; return std::any_of( android_setting_saveable.cbegin(), android_setting_saveable.cend(), From c79b12a49b2dab3cca146bfd8420af29d3c6496e Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 1 May 2022 18:54:14 -0400 Subject: [PATCH 633/659] Android: Replace Picasso with Glide --- Source/Android/app/build.gradle | 4 +- .../dolphinemu/adapters/GameAdapter.java | 4 +- .../dolphinemu/adapters/GameRowPresenter.java | 4 +- .../dolphinemu/dialogs/GameDetailsDialog.java | 4 +- .../utils/GameBannerRequestHandler.java | 38 --- .../dolphinemu/utils/GlideUtils.java | 220 ++++++++++++++++ .../dolphinemu/utils/PicassoUtils.java | 246 ------------------ .../dolphinemu/dolphinemu/utils/TvUtil.java | 1 - 8 files changed, 228 insertions(+), 293 deletions(-) delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GameBannerRequestHandler.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GlideUtils.java delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index e02d5891e9..d4e5cdd407 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -112,8 +112,8 @@ dependencies { // For REST calls implementation 'com.android.volley:volley:1.2.1' - // For loading huge screenshots from the disk. - implementation 'com.squareup.picasso:picasso:2.71828' + // For loading game covers from disk and GameTDB + implementation 'com.github.bumptech.glide:glide:4.13.1' implementation 'com.nononsenseapps:filepicker:4.2.1' } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java index e35645ee60..9d45036e11 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java @@ -17,7 +17,7 @@ import org.dolphinemu.dolphinemu.activities.EmulationActivity; import org.dolphinemu.dolphinemu.dialogs.GamePropertiesDialog; import org.dolphinemu.dolphinemu.model.GameFile; import org.dolphinemu.dolphinemu.services.GameFileCacheManager; -import org.dolphinemu.dolphinemu.utils.PicassoUtils; +import org.dolphinemu.dolphinemu.utils.GlideUtils; import org.dolphinemu.dolphinemu.viewholders.GameViewHolder; import java.util.ArrayList; @@ -72,7 +72,7 @@ public final class GameAdapter extends RecyclerView.Adapter impl { Context context = holder.itemView.getContext(); GameFile gameFile = mGameFiles.get(position); - PicassoUtils.loadGameCover(holder, holder.imageScreenshot, gameFile); + GlideUtils.loadGameCover(holder, holder.imageScreenshot, gameFile); if (GameFileCacheManager.findSecondDisc(gameFile) != null) { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java index 6261ea6827..b1a0665407 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java @@ -16,7 +16,7 @@ import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.dialogs.GamePropertiesDialog; import org.dolphinemu.dolphinemu.model.GameFile; import org.dolphinemu.dolphinemu.services.GameFileCacheManager; -import org.dolphinemu.dolphinemu.utils.PicassoUtils; +import org.dolphinemu.dolphinemu.utils.GlideUtils; import org.dolphinemu.dolphinemu.viewholders.TvGameViewHolder; /** @@ -50,7 +50,7 @@ public final class GameRowPresenter extends Presenter GameFile gameFile = (GameFile) item; holder.imageScreenshot.setImageDrawable(null); - PicassoUtils.loadGameCover(null, holder.imageScreenshot, gameFile); + GlideUtils.loadGameCover(null, holder.imageScreenshot, gameFile); holder.cardParent.setTitleText(gameFile.getTitle()); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java index 2b1bf87bee..01acd0a5a0 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java @@ -16,7 +16,7 @@ import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.model.GameFile; import org.dolphinemu.dolphinemu.services.GameFileCacheManager; -import org.dolphinemu.dolphinemu.utils.PicassoUtils; +import org.dolphinemu.dolphinemu.utils.GlideUtils; public final class GameDetailsDialog extends DialogFragment { @@ -114,7 +114,7 @@ public final class GameDetailsDialog extends DialogFragment } } - PicassoUtils.loadGameBanner(banner, gameFile); + GlideUtils.loadGameBanner(banner, gameFile); builder.setView(contents); return builder.create(); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GameBannerRequestHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GameBannerRequestHandler.java deleted file mode 100644 index fdad65a050..0000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GameBannerRequestHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.utils; - -import android.graphics.Bitmap; - -import com.squareup.picasso.Picasso; -import com.squareup.picasso.Request; -import com.squareup.picasso.RequestHandler; - -import org.dolphinemu.dolphinemu.model.GameFile; - -public class GameBannerRequestHandler extends RequestHandler -{ - private final GameFile mGameFile; - - public GameBannerRequestHandler(GameFile gameFile) - { - mGameFile = gameFile; - } - - @Override - public boolean canHandleRequest(Request data) - { - return true; - } - - @Override - public Result load(Request request, int networkPolicy) - { - int[] vector = mGameFile.getBanner(); - int width = mGameFile.getBannerWidth(); - int height = mGameFile.getBannerHeight(); - Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); - bitmap.setPixels(vector, 0, width, 0, 0, width, height); - return new Result(bitmap, Picasso.LoadedFrom.DISK); - } -} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GlideUtils.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GlideUtils.java new file mode 100644 index 0000000000..f3a626bebd --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/GlideUtils.java @@ -0,0 +1,220 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.view.View; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.CustomTarget; +import com.bumptech.glide.request.target.Target; +import com.bumptech.glide.request.transition.Transition; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; +import org.dolphinemu.dolphinemu.model.GameFile; +import org.dolphinemu.dolphinemu.viewholders.GameViewHolder; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class GlideUtils +{ + private static final ExecutorService executor = Executors.newSingleThreadExecutor(); + + public static void loadGameBanner(ImageView imageView, GameFile gameFile) + { + Context context = imageView.getContext(); + int[] vector = gameFile.getBanner(); + int width = gameFile.getBannerWidth(); + int height = gameFile.getBannerHeight(); + if (width > 0 && height > 0) + { + Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + bitmap.setPixels(vector, 0, width, 0, 0, width, height); + Glide.with(context) + .load(bitmap) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .centerCrop() + .into(imageView); + } + else + { + Glide.with(context) + .load(R.drawable.no_banner) + .into(imageView); + } + } + + public static void loadGameCover(GameViewHolder gameViewHolder, ImageView imageView, + GameFile gameFile) + { + if (BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal() && gameViewHolder != null) + { + gameViewHolder.textGameTitle.setText(gameFile.getTitle()); + gameViewHolder.textGameTitle.setVisibility(View.VISIBLE); + gameViewHolder.textGameTitleInner.setVisibility(View.GONE); + gameViewHolder.textGameCaption.setVisibility(View.VISIBLE); + } + else if (gameViewHolder != null) + { + gameViewHolder.textGameTitleInner.setText(gameFile.getTitle()); + gameViewHolder.textGameTitle.setVisibility(View.GONE); + gameViewHolder.textGameCaption.setVisibility(View.GONE); + } + + String customCoverPath = gameFile.getCustomCoverPath(); + Uri customCoverUri = null; + boolean customCoverExists = false; + if (ContentHandler.isContentUri(customCoverPath)) + { + try + { + customCoverUri = ContentHandler.unmangle(customCoverPath); + customCoverExists = true; + } + catch (FileNotFoundException | SecurityException ignored) + { + // Let customCoverExists remain false + } + } + else + { + customCoverUri = Uri.parse(customCoverPath); + customCoverExists = new File(customCoverPath).exists(); + } + + Context context = imageView.getContext(); + File cover; + if (customCoverExists) + { + Glide.with(context) + .load(customCoverUri) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .centerCrop() + .listener(new RequestListener() + { + @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, + Target target, boolean isFirstResource) + { + GlideUtils.enableInnerTitle(gameViewHolder, imageView); + return false; + } + + @Override public boolean onResourceReady(Drawable resource, Object model, + Target target, DataSource dataSource, boolean isFirstResource) + { + GlideUtils.disableInnerTitle(gameViewHolder); + return false; + } + }) + .into(imageView); + } + else if ((cover = new File(gameFile.getCoverPath(context))).exists()) + { + Glide.with(context) + .load(cover) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .centerCrop() + .listener(new RequestListener() + { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, + Target target, boolean isFirstResource) + { + GlideUtils.enableInnerTitle(gameViewHolder, imageView); + return false; + } + + @Override + public boolean onResourceReady(Drawable resource, Object model, + Target target, DataSource dataSource, boolean isFirstResource) + { + GlideUtils.disableInnerTitle(gameViewHolder); + return false; + } + }) + .into(imageView); + } + else if (BooleanSetting.MAIN_USE_GAME_COVERS.getBooleanGlobal()) + { + Glide.with(context) + .load(CoverHelper.buildGameTDBUrl(gameFile, CoverHelper.getRegion(gameFile))) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .centerCrop() + .listener(new RequestListener() + { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, + Target target, boolean isFirstResource) + { + GlideUtils.enableInnerTitle(gameViewHolder, imageView); + return false; + } + + @Override + public boolean onResourceReady(Drawable resource, Object model, + Target target, DataSource dataSource, boolean isFirstResource) + { + GlideUtils.disableInnerTitle(gameViewHolder); + return false; + } + }) + .into(new CustomTarget() + { + @Override + public void onResourceReady(@NonNull Drawable resource, + @Nullable Transition transition) + { + Bitmap cover = ((BitmapDrawable) resource).getBitmap(); + executor.execute( + () -> CoverHelper.saveCover(cover, gameFile.getCoverPath(context))); + imageView.setImageBitmap(cover); + } + + @Override + public void onLoadCleared(@Nullable Drawable placeholder) + { + } + }); + } + else + { + enableInnerTitle(gameViewHolder, imageView); + } + } + + private static void enableInnerTitle(GameViewHolder gameViewHolder, ImageView imageView) + { + Glide.with(imageView.getContext()) + .load(R.drawable.no_banner) + .into(imageView); + + if (gameViewHolder != null && !BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal()) + { + gameViewHolder.textGameTitleInner.setVisibility(View.VISIBLE); + } + } + + private static void disableInnerTitle(GameViewHolder gameViewHolder) + { + if (gameViewHolder != null && !BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal()) + { + gameViewHolder.textGameTitleInner.setVisibility(View.GONE); + } + } +} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java deleted file mode 100644 index bde8b1eb69..0000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PicassoUtils.java +++ /dev/null @@ -1,246 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.utils; - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.net.Uri; -import android.view.View; -import android.widget.ImageView; - -import com.squareup.picasso.Callback; -import com.squareup.picasso.Picasso; - -import org.dolphinemu.dolphinemu.R; -import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting; -import org.dolphinemu.dolphinemu.model.GameFile; -import org.dolphinemu.dolphinemu.viewholders.GameViewHolder; - -import java.io.File; -import java.io.FileNotFoundException; - -public class PicassoUtils -{ - public static void loadGameBanner(ImageView imageView, GameFile gameFile) - { - Picasso picassoInstance = new Picasso.Builder(imageView.getContext()) - .addRequestHandler(new GameBannerRequestHandler(gameFile)) - .build(); - - picassoInstance - .load(Uri.parse("iso:/" + gameFile.getPath())) - .fit() - .noFade() - .noPlaceholder() - .config(Bitmap.Config.RGB_565) - .error(R.drawable.no_banner) - .into(imageView); - } - - public static void loadGameCover(GameViewHolder gameViewHolder, ImageView imageView, - GameFile gameFile) - { - if (BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal() && gameViewHolder != null) - { - gameViewHolder.textGameTitle.setText(gameFile.getTitle()); - gameViewHolder.textGameTitle.setVisibility(View.VISIBLE); - gameViewHolder.textGameTitleInner.setVisibility(View.GONE); - gameViewHolder.textGameCaption.setVisibility(View.VISIBLE); - } - else if (gameViewHolder != null) - { - gameViewHolder.textGameTitleInner.setText(gameFile.getTitle()); - gameViewHolder.textGameTitle.setVisibility(View.GONE); - gameViewHolder.textGameCaption.setVisibility(View.GONE); - } - - String customCoverPath = gameFile.getCustomCoverPath(); - Uri customCoverUri = null; - boolean customCoverExists = false; - if (ContentHandler.isContentUri(customCoverPath)) - { - try - { - customCoverUri = ContentHandler.unmangle(customCoverPath); - customCoverExists = true; - } - catch (FileNotFoundException | SecurityException ignored) - { - // Let customCoverExists remain false - } - } - else - { - customCoverUri = Uri.parse(customCoverPath); - customCoverExists = new File(customCoverPath).exists(); - } - - Context context = imageView.getContext(); - File cover; - if (customCoverExists) - { - Picasso.get() - .load(customCoverUri) - .noFade() - .noPlaceholder() - .fit() - .centerInside() - .config(Bitmap.Config.ARGB_8888) - .error(R.drawable.no_banner) - .into(imageView, new Callback() - { - @Override public void onSuccess() - { - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override public void onError(Exception e) - { - PicassoUtils.enableInnerTitle(gameViewHolder, gameFile); - } - }); - } - else if ((cover = new File(gameFile.getCoverPath(context))).exists()) - { - Picasso.get() - .load(cover) - .noFade() - .noPlaceholder() - .fit() - .centerInside() - .config(Bitmap.Config.ARGB_8888) - .error(R.drawable.no_banner) - .into(imageView, new Callback() - { - @Override public void onSuccess() - { - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override public void onError(Exception e) - { - PicassoUtils.enableInnerTitle(gameViewHolder, gameFile); - } - }); - } - // GameTDB has a pretty close to complete collection for US/EN covers. First pass at getting - // the cover will be by the disk's region, second will be the US cover, and third EN. - else if (BooleanSetting.MAIN_USE_GAME_COVERS.getBooleanGlobal()) - { - Picasso.get() - .load(CoverHelper.buildGameTDBUrl(gameFile, CoverHelper.getRegion(gameFile))) - .noFade() - .noPlaceholder() - .fit() - .centerInside() - .config(Bitmap.Config.ARGB_8888) - .error(R.drawable.no_banner) - .into(imageView, new Callback() - { - @Override - public void onSuccess() - { - CoverHelper.saveCover(((BitmapDrawable) imageView.getDrawable()).getBitmap(), - gameFile.getCoverPath(context)); - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override - public void onError(Exception ex) // Second pass using US region - { - Picasso.get() - .load(CoverHelper.buildGameTDBUrl(gameFile, "US")) - .fit() - .noFade() - .fit() - .centerInside() - .noPlaceholder() - .config(Bitmap.Config.ARGB_8888) - .error(R.drawable.no_banner) - .into(imageView, new Callback() - { - @Override - public void onSuccess() - { - CoverHelper.saveCover( - ((BitmapDrawable) imageView.getDrawable()).getBitmap(), - gameFile.getCoverPath(context)); - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override - public void onError(Exception ex) // Third and last pass using EN region - { - Picasso.get() - .load(CoverHelper.buildGameTDBUrl(gameFile, "EN")) - .fit() - .noFade() - .fit() - .centerInside() - .noPlaceholder() - .config(Bitmap.Config.ARGB_8888) - .error(R.drawable.no_banner) - .into(imageView, new Callback() - { - @Override - public void onSuccess() - { - CoverHelper.saveCover( - ((BitmapDrawable) imageView.getDrawable()) - .getBitmap(), - gameFile.getCoverPath(context)); - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override - public void onError(Exception ex) - { - PicassoUtils.enableInnerTitle(gameViewHolder, gameFile); - } - }); - } - }); - } - }); - } - else - { - Picasso.get() - .load(R.drawable.no_banner) - .noFade() - .noPlaceholder() - .fit() - .centerInside() - .config(Bitmap.Config.ARGB_8888) - .into(imageView, new Callback() - { - @Override public void onSuccess() - { - PicassoUtils.disableInnerTitle(gameViewHolder); - } - - @Override public void onError(Exception e) - { - PicassoUtils.enableInnerTitle(gameViewHolder, gameFile); - } - }); - } - } - - private static void enableInnerTitle(GameViewHolder gameViewHolder, GameFile gameFile) - { - if (gameViewHolder != null && !BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal()) - { - gameViewHolder.textGameTitleInner.setVisibility(View.VISIBLE); - } - } - - private static void disableInnerTitle(GameViewHolder gameViewHolder) - { - if (gameViewHolder != null && !BooleanSetting.MAIN_SHOW_GAME_TITLES.getBooleanGlobal()) - { - gameViewHolder.textGameTitleInner.setVisibility(View.GONE); - } - } -} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java index b091ed6423..940542ef49 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java @@ -16,7 +16,6 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.graphics.drawable.VectorDrawable; -import android.media.tv.TvContract; import android.net.Uri; import android.os.Build; import android.os.PersistableBundle; From 48c9c224cf9f82f0f9f2690b7cc6283d7448480c Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 3 Sep 2022 18:21:58 +0200 Subject: [PATCH 634/659] Translation resources sync with Transifex --- Languages/po/ar.po | 306 ++++++++++++++++--------------- Languages/po/ca.po | 306 ++++++++++++++++--------------- Languages/po/cs.po | 306 ++++++++++++++++--------------- Languages/po/da.po | 306 ++++++++++++++++--------------- Languages/po/de.po | 306 ++++++++++++++++--------------- Languages/po/dolphin-emu.pot | 306 ++++++++++++++++--------------- Languages/po/el.po | 306 ++++++++++++++++--------------- Languages/po/en.po | 306 ++++++++++++++++--------------- Languages/po/es.po | 315 ++++++++++++++++---------------- Languages/po/fa.po | 306 ++++++++++++++++--------------- Languages/po/fr.po | 315 ++++++++++++++++---------------- Languages/po/hr.po | 306 ++++++++++++++++--------------- Languages/po/hu.po | 306 ++++++++++++++++--------------- Languages/po/it.po | 315 ++++++++++++++++---------------- Languages/po/ja.po | 306 ++++++++++++++++--------------- Languages/po/ko.po | 306 ++++++++++++++++--------------- Languages/po/ms.po | 306 ++++++++++++++++--------------- Languages/po/nb.po | 306 ++++++++++++++++--------------- Languages/po/nl.po | 342 +++++++++++++++++------------------ Languages/po/pl.po | 306 ++++++++++++++++--------------- Languages/po/pt.po | 306 ++++++++++++++++--------------- Languages/po/pt_BR.po | 338 +++++++++++++++++----------------- Languages/po/ro.po | 306 ++++++++++++++++--------------- Languages/po/ru.po | 306 ++++++++++++++++--------------- Languages/po/sr.po | 306 ++++++++++++++++--------------- Languages/po/sv.po | 306 ++++++++++++++++--------------- Languages/po/tr.po | 306 ++++++++++++++++--------------- Languages/po/zh_CN.po | 314 ++++++++++++++++---------------- Languages/po/zh_TW.po | 306 ++++++++++++++++--------------- 29 files changed, 4445 insertions(+), 4532 deletions(-) diff --git a/Languages/po/ar.po b/Languages/po/ar.po index 55135a37c9..bba6981a2c 100644 --- a/Languages/po/ar.po +++ b/Languages/po/ar.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: mansoor , 2013,2015-2022\n" "Language-Team: Arabic (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -194,19 +194,19 @@ msgstr "" "%2 موضوع(s)\n" "%3 الإطار الحالي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 قد انضم" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 لقد غادر" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 القرص غير صالح" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 is now golfing" @@ -247,11 +247,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -286,19 +286,19 @@ msgstr "" msgid "& And" msgstr "& و" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -339,7 +339,7 @@ msgstr "&بدء تلقائي" msgid "&Boot from DVD Backup" msgstr "&تشغيل من القرص" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&نافذة بلا حدود" @@ -375,7 +375,7 @@ msgstr "&استنساخ" msgid "&Code" msgstr "&رمز" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&متصل" @@ -420,11 +420,11 @@ msgstr "&إخراج القرص" msgid "&Emulation" msgstr "&محاكاة" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&تصدير حفظ اللعبة" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&تصدير الحالة" @@ -472,11 +472,11 @@ msgstr "&مساعدة" msgid "&Hotkey Settings" msgstr "&إعدادات مفاتيح الاختصار" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&استيراد حفظ اللعبة" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&استيراد الحالة" @@ -488,7 +488,7 @@ msgstr "&استيراد" msgid "&Insert blr" msgstr "&blr إدراج" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&مزج الإطارات" @@ -520,7 +520,7 @@ msgstr "&الذاكرة" msgid "&Movie" msgstr "&فيلم" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&صامت" @@ -582,7 +582,7 @@ msgstr "&إزالة الرمز" msgid "&Rename symbol" msgstr "&إعادة تسمية الرمز" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&إعادة" @@ -595,7 +595,7 @@ msgstr "&أدارة حزمة الموارد" msgid "&Save Symbol Map" msgstr "&Save Symbol Map" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -619,7 +619,7 @@ msgstr "&المواضيع" msgid "&Tools" msgstr "&أدوات" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&إلغاء تحميل القرص" @@ -690,7 +690,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -921,7 +921,7 @@ msgstr "" " wad سيؤدي تثبيت \n" "هذا إلى استبداله بشكل لا رجعة فيه. استمر ؟" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "القرص بالفعل على وشك أن يتم إدراجه." @@ -1365,7 +1365,7 @@ msgstr "دائما" msgid "Always Connected" msgstr "متصل دائما" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "دائما على الأعلى" @@ -1457,7 +1457,7 @@ msgstr "هل أنت متأكد من أنك تريد حذف هذا الملف؟" msgid "Are you sure you want to delete this pack?" msgstr "هل أنت متأكد من أنك تريد حذف هذه الحزمة؟" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "هل أنت متأكد من أنك تريد إنهاء اللعب عبر الشبكة؟" @@ -1474,7 +1474,7 @@ msgstr "تناسب الأبعاد" msgid "Aspect Ratio:" msgstr "تناسب الأبعاد" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "تعيين منافذ وحدة التحكم" @@ -1527,7 +1527,7 @@ msgstr "تلقائي (Multiple of 640x528)" msgid "Auto Update Settings" msgstr "إعدادات التحديث التلقائي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1794,7 +1794,7 @@ msgstr "كسر" msgid "Breakpoint" msgstr "توقف" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "تمت مصادفة نقطة توقف! إلغاء للخروج" @@ -1840,12 +1840,12 @@ msgstr "مستعرض جلسات اللعب عبر الشبكة" msgid "Buffer Size:" msgstr "حجم المخزن المؤقت" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "تم تغيير حجم المخزن المؤقت إلى %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "المخزن المؤقت" @@ -1950,7 +1950,15 @@ msgstr "فترة المعايرة" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Callstack" @@ -2078,7 +2086,7 @@ msgstr "سيحدث تغيير الاسرار فقط عند إعادة تشغيل msgid "Channel Partition (%1)" msgstr "(%1) قسم القناة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "محادثه" @@ -2185,7 +2193,7 @@ msgstr "إغلاق" msgid "Co&nfiguration" msgstr "الإعدادات العامة" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "رمز" @@ -2324,7 +2332,7 @@ msgid "Confirm on Stop" msgstr "تأكيد على التوقف" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "التأكيد" @@ -2378,7 +2386,7 @@ msgstr "الاتصال بالإنترنت وإجراء تحديث للنظام msgid "Connected" msgstr "متصل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "الاتصال" @@ -2549,10 +2557,10 @@ msgstr "" "تحويل...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "نسخ" @@ -2710,7 +2718,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "تعذر البحث عن الخادم المركزي" @@ -3133,7 +3141,7 @@ msgstr "" "\n" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "غير متصل" @@ -3316,7 +3324,7 @@ msgstr "فشل دولفين في إكمال الإجراء المطلوب." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "محاكي دولفين مفتوح المصدر لجهاز جيم كيوب و وي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "دولفين قديم جدا لجتياز الخادم " @@ -3640,7 +3648,7 @@ msgstr "إخراج القرص" msgid "Embedded Frame Buffer (EFB)" msgstr "(EFB) مخزن مؤقت للإطار المضمن" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "فارغة" @@ -3937,7 +3945,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3962,11 +3970,11 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4026,31 +4034,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "خطأ: فشل جيم بوي أدفانس {0} في إنشاء النواة" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4231,7 +4239,7 @@ msgstr "ملحق إدخال الحركة" msgid "Extension Motion Simulation" msgstr "ملحق محاكاة الحركة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "خارجي" @@ -4293,7 +4301,7 @@ msgstr "" "فشل فتح بطاقة الذاكرة:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "فشل في إضافة هذه الجلسة إلى فهرس اللعب عبر الشبكة: 1%" @@ -4309,7 +4317,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "Redump.org فشل الاتصال بـ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "%1 فشل الاتصال بالخادم" @@ -4479,7 +4487,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4765,10 +4773,6 @@ msgstr "حجم الملف في عدم تطابق حجم البطاقة الفع msgid "Filesystem" msgstr "نظام الملفات" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "تصفية الرموز" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "تصفية" @@ -5037,14 +5041,6 @@ msgstr "شاشة كاملة" msgid "Function" msgstr "وظيفة" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "وظيفة متصلين" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "استدعاءات الدالات" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "المهام" @@ -5077,11 +5073,11 @@ msgstr "صوت جيم بوي أدفانس" msgid "GBA Window Size" msgstr "حجم النافذة جيم بوي أدفانس" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5220,25 +5216,25 @@ msgstr "معرف اللعبة" msgid "Game ID:" msgstr "معرف اللعبة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "حالة اللعبة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "تغيرت اللعبة إلى \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "تحتوي اللعبة على رقم قرص مختلف" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "اللعبة لديها مراجعة مختلفة" @@ -5253,7 +5249,7 @@ msgstr "" "{0:#x}, {1:#x} تم الكتابة فوق اللعبة مع حفظ ألعاب أخرى. تلف البيانات في " "المستقبل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "منطقة اللعبة غير متطابقة" @@ -5494,7 +5490,7 @@ msgstr "إخفاء الجلسات داخل اللعبة" msgid "Hide Incompatible Sessions" msgstr "إخفاء جلسات العمل غير المتوافقة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5552,11 +5548,11 @@ msgstr "" "مناسب للألعاب غير الرسمية مع أكثر من 3 لاعبين ، وربما على اتصالات غير مستقرة " "أو عالية وقت الإستجابة." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "تم تعطيل سلطة إدخال المضيف" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "تمكين سلطة إدخال المضيف" @@ -5971,7 +5967,7 @@ msgid "Interface" msgstr "الواجهة" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Internal LZO Error - compression failed" @@ -5980,13 +5976,13 @@ msgstr "Internal LZO Error - compression failed" msgid "Internal LZO Error - decompression failed" msgstr "Internal LZO Error - decompression failed" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" @@ -6025,7 +6021,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "حزمة غير صالحة 1% مقدمة :2%" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "معرف لاعب غير صالح" @@ -6033,7 +6029,7 @@ msgstr "معرف لاعب غير صالح" msgid "Invalid RSO module address: %1" msgstr "Invalid RSO module address: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "مكدس استدعاء غير صالح" @@ -6230,7 +6226,7 @@ msgstr "مفاتيح" msgid "KiB" msgstr "كيلوبايت" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "طرد لاعب" @@ -6249,7 +6245,7 @@ msgstr "الكورية" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "تحميل اللعبىة" @@ -6544,7 +6540,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "محلي" @@ -6588,7 +6584,7 @@ msgstr "" msgid "Loop" msgstr "التكرار الحلقي" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "فقد الاتصال بالخادم" @@ -6601,10 +6597,6 @@ msgstr "منخفضة" msgid "Lowest" msgstr " الحد الأدنى" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 اختبار" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6652,7 +6644,7 @@ msgstr "NAND إدارة" msgid "Manual Texture Sampling" msgstr "أخذ عينات النسيج يدويا" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "تعيين" @@ -6664,11 +6656,11 @@ msgstr "Mask ROM" msgid "Match Found" msgstr "وجد تطابق" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "المخزن المؤقت الأقصى" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "%1 تم تغيير حجم المخزن المؤقت الأقصى إلى" @@ -6762,7 +6754,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "عدم تطابق بين هياكل البيانات الداخلية." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6937,7 +6929,7 @@ msgstr "اعدادات لعب عبر الشبكة" msgid "Netherlands" msgstr "هولندا" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay has desynced in NetPlay_GetButtonPress()" @@ -7074,7 +7066,7 @@ msgstr "لا توجد لعبة قيد التشغيل" msgid "No issues have been detected." msgstr "لم يتم اكتشاف أية مشكلات." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "لم يتم العثور على لعبة مطابقة" @@ -7112,7 +7104,7 @@ msgstr "لم يتم تحميل التسجيل" msgid "No save data found." msgstr "لم يتم العثور على حفظ البيانات" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "No undo.dtm found, aborting undo load state to prevent movie desyncs" @@ -7132,7 +7124,7 @@ msgstr "أمريكا الشمالية" msgid "Not Set" msgstr "غير مجموعة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "ليس كل اللاعبين لديهم اللعبة. هل تريد حقا أن تبدأ؟" @@ -7152,7 +7144,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "لم يتم العثور عليها" @@ -7208,7 +7200,7 @@ msgstr " توجه نونشوك " msgid "Nunchuk Stick" msgstr "عصا نونشوك" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7329,7 +7321,7 @@ msgstr "مشغل" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "خيارات" @@ -7346,7 +7338,7 @@ msgstr "Orbital" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "أخرى" @@ -7525,7 +7517,7 @@ msgstr "بيتابايت" msgid "Pick a debug font" msgstr "debug اختر خط" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7558,12 +7550,12 @@ msgstr "تشغيل التسجيل" msgid "Playback Options" msgstr "خيارات التشغيل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "لاعب" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "اللاعبين" @@ -7592,7 +7584,7 @@ msgstr "" msgid "Port:" msgstr "منفذ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "تم اكتشاف مزامنة محتملة: %1 قد تمت مزامنتها في الإطار %2" @@ -7864,7 +7856,7 @@ msgstr "إعادة المركز" msgid "Record" msgstr "تسجيل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "سجل المدخلات" @@ -8097,7 +8089,7 @@ msgstr "استعادة الضبط الافتراضي" msgid "Restore instruction" msgstr "استعادة التعليمات" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "إعادة المحاولة" @@ -8106,7 +8098,7 @@ msgstr "إعادة المحاولة" msgid "Return Speed" msgstr "عودة السرعة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "إصدار" @@ -8164,7 +8156,7 @@ msgstr "Roll Left" msgid "Roll Right" msgstr "Roll Right" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "معرف الغرفة" @@ -8205,7 +8197,7 @@ msgstr "تشغيل جيم بوي أدفانس في خيوط مخصصة" msgid "Russia" msgstr "روسيا" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD Card" @@ -8237,6 +8229,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8291,11 +8287,11 @@ msgid "Save File to" msgstr "احفظ الملف إلى" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "حفظ اللعبة" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8321,7 +8317,7 @@ msgstr "حفظ ملف التسجيل باسم" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "حفظ حالة" @@ -8633,8 +8629,8 @@ msgid "Select a Directory" msgstr "اختر الملف" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8665,7 +8661,7 @@ msgstr "اختر لعبة" msgid "Select a title to install to NAND" msgstr "NAND حدد عنوانًا لتثبيته إلى" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8709,8 +8705,8 @@ msgstr "اختيار الملف التحكم الشخصي غير موجود " #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "اللعبة المختارة غير موجودة في قائمة الألعاب!" @@ -8774,7 +8770,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "إرسال" @@ -8958,7 +8954,7 @@ msgstr "جيم كيوب" msgid "Show Germany" msgstr "ألمانيا" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Show Golf Mode Overlay" @@ -9390,7 +9386,7 @@ msgstr "Riivolution بدء مع تصحيحات" msgid "Start with Riivolution Patches..." msgstr "Riivolution بدء مع تصحيحات" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "بدأت اللعبة" @@ -9429,19 +9425,19 @@ msgstr "خطوة لخارج" msgid "Step Over" msgstr "خطوة أكثر" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "الخروج ناجح!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "مهلة الخروج !" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "خطوة أكثر في التقدم" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "خطوة ناجحة!" @@ -9492,7 +9488,7 @@ msgstr "إيقاف تشغيل / تسجيل الإدخال" msgid "Stop Recording" msgstr "إيقاف التسجيل" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "توقفت اللعبة" @@ -9560,7 +9556,7 @@ msgstr "مرقم" msgid "Success" msgstr "ناجح" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "تمت إضافته بنجاح إلى فهرس اللعب عبر الشبكة" @@ -9679,7 +9675,7 @@ msgid "Symbol name:" msgstr "اسم الرمز" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "رموز" @@ -9880,7 +9876,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "(at {0:#x} - {1:#x}) تعذر قراءة القرص" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "تعذر العثور على القرص الذي كان على وشك أن يتم إدراجه" @@ -10007,11 +10003,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "لا تتطابق التجزئة!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "تطابق التجزئة" @@ -10153,7 +10149,7 @@ msgstr "لم تتم محاذاة القسم {0} بشكل صحيح" msgid "There are too many partitions in the first partition table." msgstr "هناك الكثير من الأقسام في جدول القسم الأول." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "لا يوجد شيء للتراجع !" @@ -10583,8 +10579,8 @@ msgstr "لمس" msgid "Traditional Chinese" msgstr "الصينية التقليدية" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "خطأ الاجتياز" @@ -10753,18 +10749,18 @@ msgstr "" msgid "United States" msgstr "امريكا" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "غير معروف" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11291,7 +11287,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "تحذير" @@ -11476,7 +11472,7 @@ msgstr "" "مفتاح الاختصار لفتحه." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "حجم النافذة" @@ -11526,19 +11522,19 @@ msgstr "Write to Log and Break" msgid "Write to Window" msgstr "الكتابة إلى النافذة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "رقم قرص خاطئ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "تجزئة خاطئة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "منطقة خاطئة" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "مراجعة خاطئة" @@ -11741,7 +11737,7 @@ msgstr "إفتراضي" msgid "disconnected" msgstr "غير متصل" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11787,7 +11783,7 @@ msgstr "آخر قيمة" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11856,7 +11852,7 @@ msgstr "{0} فشل في مزامنة الرموز" msgid "{0} failed to synchronize." msgstr "{0} فشل في المزامنة" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11869,7 +11865,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} لم يتم نقل دليل إلى الأصل" diff --git a/Languages/po/ca.po b/Languages/po/ca.po index 785e05b5dd..16b25c9e1b 100644 --- a/Languages/po/ca.po +++ b/Languages/po/ca.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Gerard Nesta , 2021\n" "Language-Team: Catalan (http://www.transifex.com/delroth/dolphin-emu/" @@ -177,19 +177,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 s'ha unit" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 s'ha marxat" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 esta jugant al golf" @@ -230,11 +230,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -269,19 +269,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -322,7 +322,7 @@ msgstr "&Inici automàtic" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -360,7 +360,7 @@ msgstr "" msgid "&Code" msgstr "&Codi" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -405,11 +405,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulació" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -457,11 +457,11 @@ msgstr "&Ajuda" msgid "&Hotkey Settings" msgstr "Configuració de &tecles d'accés" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -473,7 +473,7 @@ msgstr "&Importar..." msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -505,7 +505,7 @@ msgstr "&Memòria" msgid "&Movie" msgstr "&Pel·lícula" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -567,7 +567,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reiniciar" @@ -580,7 +580,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -604,7 +604,7 @@ msgstr "" msgid "&Tools" msgstr "&Eines" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -675,7 +675,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -897,7 +897,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1314,7 +1314,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1406,7 +1406,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1423,7 +1423,7 @@ msgstr "Relació d'aspecte" msgid "Aspect Ratio:" msgstr "Relació d'aspecte:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1476,7 +1476,7 @@ msgstr "Auto (Múltiple de 640x528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1737,7 +1737,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1783,12 +1783,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -1893,7 +1893,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2019,7 +2027,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Xat" @@ -2124,7 +2132,7 @@ msgstr "Tancar" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Codi" @@ -2260,7 +2268,7 @@ msgid "Confirm on Stop" msgstr "Confirmar a l'aturar" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2314,7 +2322,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2468,10 +2476,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Copiar" @@ -2614,7 +2622,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3022,7 +3030,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3203,7 +3211,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3521,7 +3529,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Buit" @@ -3808,7 +3816,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3833,11 +3841,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3899,31 +3907,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4100,7 +4108,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4160,7 +4168,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4176,7 +4184,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4338,7 +4346,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4613,10 +4621,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistema d'arxius" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4878,14 +4882,6 @@ msgstr "Pantalla completa" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4918,11 +4914,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5061,25 +5057,25 @@ msgstr "ID del joc" msgid "Game ID:" msgstr "ID del joc:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5092,7 +5088,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5333,7 +5329,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5387,11 +5383,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5779,7 +5775,7 @@ msgid "Interface" msgstr "Interfície" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Error intern LZO - la compressió ha fallat" @@ -5788,13 +5784,13 @@ msgstr "Error intern LZO - la compressió ha fallat" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Error intern LZO - lzo_init () ha fallat" @@ -5833,7 +5829,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5841,7 +5837,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6039,7 +6035,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Expulsar jugador" @@ -6058,7 +6054,7 @@ msgstr "Coreà" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6347,7 +6343,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6391,7 +6387,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6404,10 +6400,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6455,7 +6447,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6467,11 +6459,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6559,7 +6551,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6734,7 +6726,7 @@ msgstr "" msgid "Netherlands" msgstr "Països Baixos" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6871,7 +6863,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6906,7 +6898,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6926,7 +6918,7 @@ msgstr "" msgid "Not Set" msgstr "Sense establir" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6946,7 +6938,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7002,7 +6994,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7119,7 +7111,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opcions" @@ -7136,7 +7128,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Altres" @@ -7315,7 +7307,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7348,12 +7340,12 @@ msgstr "Reproduir enregistrament" msgid "Playback Options" msgstr "Opcions de reproducció" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Jugadors" @@ -7382,7 +7374,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7644,7 +7636,7 @@ msgstr "" msgid "Record" msgstr "Enregistrar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7874,7 +7866,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Tornar a intentar" @@ -7883,7 +7875,7 @@ msgstr "Tornar a intentar" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7941,7 +7933,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7982,7 +7974,7 @@ msgstr "" msgid "Russia" msgstr "Rússia" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8014,6 +8006,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8068,11 +8064,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8098,7 +8094,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Desar Estat" @@ -8405,8 +8401,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8437,7 +8433,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8481,8 +8477,8 @@ msgstr "El perfil del controlador seleccionat no existeix" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8546,7 +8542,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Enviar" @@ -8723,7 +8719,7 @@ msgstr "Mostrar GameCube" msgid "Show Germany" msgstr "Mostrar Alemanya" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9149,7 +9145,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9188,19 +9184,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9251,7 +9247,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9319,7 +9315,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9438,7 +9434,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9632,7 +9628,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9747,11 +9743,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9882,7 +9878,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10277,8 +10273,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Xinès Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10434,18 +10430,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Desconegut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10956,7 +10952,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Advertència" @@ -11137,7 +11133,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11187,19 +11183,19 @@ msgstr "" msgid "Write to Window" msgstr "Escriu a Finestra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11398,7 +11394,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11444,7 +11440,7 @@ msgstr "" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11513,7 +11509,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11524,7 +11520,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/cs.po b/Languages/po/cs.po index 88741815b1..03a628d042 100644 --- a/Languages/po/cs.po +++ b/Languages/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zbyněk Schwarz , 2011-2016\n" "Language-Team: Czech (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -172,19 +172,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -225,11 +225,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -264,19 +264,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -317,7 +317,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -398,11 +398,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulace" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -450,11 +450,11 @@ msgstr "&Nápověda" msgid "&Hotkey Settings" msgstr "Nastavení &klávesových zkratek" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -466,7 +466,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -498,7 +498,7 @@ msgstr "Pa&měť" msgid "&Movie" msgstr "&Video" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -560,7 +560,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Resetovat" @@ -573,7 +573,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "&Tools" msgstr "Nás&troje" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -668,7 +668,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1307,7 +1307,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1399,7 +1399,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Poměr Stran:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Přidělit porty ovladače" @@ -1469,7 +1469,7 @@ msgstr "Auto (Násobek 640x528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1776,12 +1776,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Vyrovnávací paměť:" @@ -1886,7 +1886,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2012,7 +2020,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2117,7 +2125,7 @@ msgstr "Zavřít" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2253,7 +2261,7 @@ msgid "Confirm on Stop" msgstr "Při zastavení Potvrdit" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2307,7 +2315,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2461,10 +2469,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopírovat" @@ -2607,7 +2615,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3015,7 +3023,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3196,7 +3204,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3514,7 +3522,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Vestavěná vyrovnávací paměť snímků (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Prázdné" @@ -3805,7 +3813,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3830,11 +3838,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3895,31 +3903,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4096,7 +4104,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4156,7 +4164,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4172,7 +4180,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4334,7 +4342,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4609,10 +4617,6 @@ msgstr "" msgid "Filesystem" msgstr "Souborový systém" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4874,14 +4878,6 @@ msgstr "CelObr" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4914,11 +4910,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5057,25 +5053,25 @@ msgstr "ID hry" msgid "Game ID:" msgstr "ID Hry:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5088,7 +5084,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5329,7 +5325,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5383,11 +5379,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5775,7 +5771,7 @@ msgid "Interface" msgstr "Rozhraní" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Vnitřní chyba LZO - komprimace selhala" @@ -5784,13 +5780,13 @@ msgstr "Vnitřní chyba LZO - komprimace selhala" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Vnitřní chyba LZO - lzo_init() selhalo" @@ -5829,7 +5825,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5837,7 +5833,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6034,7 +6030,7 @@ msgstr "Klávesy" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Vykopnout hráče" @@ -6053,7 +6049,7 @@ msgstr "Korejština" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6342,7 +6338,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6386,7 +6382,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6399,10 +6395,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6450,7 +6442,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6462,11 +6454,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6554,7 +6546,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6729,7 +6721,7 @@ msgstr "" msgid "Netherlands" msgstr "Nizozemí" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6868,7 +6860,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6903,7 +6895,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Žádné undo.dtm nenalezeno, aby se zabránilo desynchronizaci videa, bude " @@ -6924,7 +6916,7 @@ msgstr "" msgid "Not Set" msgstr "Nenastaven" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6944,7 +6936,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7000,7 +6992,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7117,7 +7109,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Volby" @@ -7134,7 +7126,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Jiné" @@ -7313,7 +7305,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7346,12 +7338,12 @@ msgstr "Přehrát nahrávku" msgid "Playback Options" msgstr "Možnosti Přehrávání" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Hráči" @@ -7380,7 +7372,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7642,7 +7634,7 @@ msgstr "" msgid "Record" msgstr "Nahrávat" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7872,7 +7864,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Zkusit znovu" @@ -7881,7 +7873,7 @@ msgstr "Zkusit znovu" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7939,7 +7931,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7980,7 +7972,7 @@ msgstr "" msgid "Russia" msgstr "Rusko" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8012,6 +8004,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8066,11 +8062,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8096,7 +8092,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Uložit stav" @@ -8403,8 +8399,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8435,7 +8431,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8479,8 +8475,8 @@ msgstr "Vybraný profil ovladače neexistuje" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8544,7 +8540,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Poslat" @@ -8723,7 +8719,7 @@ msgstr "Zobrazit GameCube" msgid "Show Germany" msgstr "Zobrazit Německo" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9149,7 +9145,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9188,19 +9184,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9251,7 +9247,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9319,7 +9315,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9438,7 +9434,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9632,7 +9628,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9747,11 +9743,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9882,7 +9878,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Není co vrátit zpět!" @@ -10278,8 +10274,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Tradiční Čínština" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10435,18 +10431,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Neznámé" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10957,7 +10953,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Varování" @@ -11138,7 +11134,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11188,19 +11184,19 @@ msgstr "" msgid "Write to Window" msgstr "Zapsat do Okna" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11399,7 +11395,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11445,7 +11441,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11514,7 +11510,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11525,7 +11521,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/da.po b/Languages/po/da.po index 22bdc4ee20..e22867bf77 100644 --- a/Languages/po/da.po +++ b/Languages/po/da.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Lars Lyngby , 2020-2021\n" "Language-Team: Danish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -193,19 +193,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -246,11 +246,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -285,19 +285,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -338,7 +338,7 @@ msgstr "&Automatisk start" msgid "&Boot from DVD Backup" msgstr "&Boot fra DVD backup" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -374,7 +374,7 @@ msgstr "&Klon..." msgid "&Code" msgstr "&Kode" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -419,11 +419,11 @@ msgstr "&Skub disk ud" msgid "&Emulation" msgstr "&Emulation" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -471,11 +471,11 @@ msgstr "&Hjælp" msgid "&Hotkey Settings" msgstr "&Genvejstastindstillinger" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -487,7 +487,7 @@ msgstr "&Importér..." msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -519,7 +519,7 @@ msgstr "&Hukommelse" msgid "&Movie" msgstr "&Film" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -581,7 +581,7 @@ msgstr "&Fjern kode" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Nulstil" @@ -594,7 +594,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -618,7 +618,7 @@ msgstr "" msgid "&Tools" msgstr "&Værktøjer" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -689,7 +689,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -911,7 +911,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "En disk er allerede ved at blive sat ind" @@ -1342,7 +1342,7 @@ msgstr "" msgid "Always Connected" msgstr "Altid tilsluttet " -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1434,7 +1434,7 @@ msgstr "Er du sikker på, at du vil slette denne fil?" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Er du sikker på, at du vil afslutte NetPlay?" @@ -1451,7 +1451,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Formatforhold:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Tildel Kontrollerporte" @@ -1504,7 +1504,7 @@ msgstr "Auto (Multiplum af 640x528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1767,7 +1767,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1813,12 +1813,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Bufferstørrelse:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Bufferstørrelse ændret til %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -1923,7 +1923,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2049,7 +2057,7 @@ msgstr "Ændrede snydekoder får først effekt efter genstart af spillet." msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2154,7 +2162,7 @@ msgstr "Luk" msgid "Co&nfiguration" msgstr "&Konfiguration" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kode" @@ -2290,7 +2298,7 @@ msgid "Confirm on Stop" msgstr "Bekræft ved Stop" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Bekræftelse" @@ -2344,7 +2352,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2500,10 +2508,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopiér" @@ -2648,7 +2656,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Kan ikke slå den centrale server op" @@ -3059,7 +3067,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3240,7 +3248,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin er en gratis og åben source GameCube- og Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel til en gennemløbsserver" @@ -3558,7 +3566,7 @@ msgstr "Skub ud disken" msgid "Embedded Frame Buffer (EFB)" msgstr "Indlejret framebuffer (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Tom" @@ -3852,7 +3860,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3877,11 +3885,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3943,31 +3951,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4144,7 +4152,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4204,7 +4212,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4220,7 +4228,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4382,7 +4390,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4657,10 +4665,6 @@ msgstr "" msgid "Filesystem" msgstr "Filsystem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtersymboler" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtre" @@ -4922,14 +4926,6 @@ msgstr "Fuld skærm" msgid "Function" msgstr "Funktion" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Funktionskald" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4962,11 +4958,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5105,25 +5101,25 @@ msgstr "Spil-id" msgid "Game ID:" msgstr "Spil-id:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Spilstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5136,7 +5132,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5377,7 +5373,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5431,11 +5427,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Vært inputautoritet aktiveret" @@ -5831,7 +5827,7 @@ msgid "Interface" msgstr "Grænseflade" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Intern LZO-fjel - komprimering mislykkedes" @@ -5840,13 +5836,13 @@ msgstr "Intern LZO-fjel - komprimering mislykkedes" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-fejl - lzo_init() mislykkedes" @@ -5885,7 +5881,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5893,7 +5889,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6090,7 +6086,7 @@ msgstr "Taster" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Smid spiller ud" @@ -6109,7 +6105,7 @@ msgstr "Koreansk" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6398,7 +6394,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Lokal" @@ -6442,7 +6438,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6455,10 +6451,6 @@ msgstr "Lav" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5-tjeksum" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6506,7 +6498,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6518,11 +6510,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6612,7 +6604,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6787,7 +6779,7 @@ msgstr "" msgid "Netherlands" msgstr "Holland" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6924,7 +6916,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6959,7 +6951,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "'undo.dtm' ikke fundet. Afbryder 'Fortryd' starttilstand for at undgå film " @@ -6981,7 +6973,7 @@ msgstr "" msgid "Not Set" msgstr "Ikke sat" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Det er ikke alle spillere, der har dette spil. Vil du virkelig starte?" @@ -7001,7 +6993,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7057,7 +7049,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7174,7 +7166,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Indstillinger" @@ -7191,7 +7183,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Andre" @@ -7370,7 +7362,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7403,12 +7395,12 @@ msgstr "Afspil optagelse" msgid "Playback Options" msgstr "Playback-indstillinger" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Spiller" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Spillere" @@ -7437,7 +7429,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7699,7 +7691,7 @@ msgstr "" msgid "Record" msgstr "Optag" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7929,7 +7921,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Prøv igen" @@ -7938,7 +7930,7 @@ msgstr "Prøv igen" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7996,7 +7988,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -8037,7 +8029,7 @@ msgstr "" msgid "Russia" msgstr "Rusland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-kort" @@ -8069,6 +8061,10 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8123,11 +8119,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8153,7 +8149,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Gem tilstand" @@ -8460,8 +8456,8 @@ msgid "Select a Directory" msgstr "Vælg en mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8492,7 +8488,7 @@ msgstr "Vælg et spil" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8536,8 +8532,8 @@ msgstr "Valgte kontrollerprofil eksisterer ikke" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8601,7 +8597,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Send" @@ -8781,7 +8777,7 @@ msgstr "Vis GameCube" msgid "Show Germany" msgstr "Vis Tyskland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9207,7 +9203,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9246,19 +9242,19 @@ msgstr "Hop ud" msgid "Step Over" msgstr "Hop over" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Hop ud succes!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Hop ud timeout!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Hop over udføres..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Hop succes!" @@ -9309,7 +9305,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9377,7 +9373,7 @@ msgstr "" msgid "Success" msgstr "Succes" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9496,7 +9492,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symboler" @@ -9690,7 +9686,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken, der var ved at blive sat ind, kunne ikke ses" @@ -9805,11 +9801,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9940,7 +9936,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Der er intet af fortryde!" @@ -10339,8 +10335,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Traditionel kinesisk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10505,18 +10501,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Ukendt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11027,7 +11023,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Advarsel" @@ -11212,7 +11208,7 @@ msgstr "" "en genvejstast til at låse op." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11262,19 +11258,19 @@ msgstr "" msgid "Write to Window" msgstr "Skriv til vindue" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11474,7 +11470,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11520,7 +11516,7 @@ msgstr "" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11589,7 +11585,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11600,7 +11596,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} af {1} blokke. Komprimeringsforhold {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/de.po b/Languages/po/de.po index d0308c0712..cbab8494a3 100644 --- a/Languages/po/de.po +++ b/Languages/po/de.po @@ -33,7 +33,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Marc Godhusen , 2016-2021\n" "Language-Team: German (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -217,19 +217,19 @@ msgstr "" "%2 Objekt(e)\n" "Derzeitiger Frame: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 ist beigetreten" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 ist gegangen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 golft jetzt" @@ -270,11 +270,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -309,19 +309,19 @@ msgstr "" msgid "& And" msgstr "& Und" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -362,7 +362,7 @@ msgstr "&Automatischer Start" msgid "&Boot from DVD Backup" msgstr "Von &DVD-Sicherung starten" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -398,7 +398,7 @@ msgstr "&Klonen..." msgid "&Code" msgstr "&Code" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -443,11 +443,11 @@ msgstr "&Disc auswerfen" msgid "&Emulation" msgstr "&Emulation" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -495,11 +495,11 @@ msgstr "&Hilfe" msgid "&Hotkey Settings" msgstr "&Tastenkürzel-Einstellungen" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -511,7 +511,7 @@ msgstr "&Importieren..." msgid "&Insert blr" msgstr "blr &einfügen" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -543,7 +543,7 @@ msgstr "&Arbeitsspeicher" msgid "&Movie" msgstr "Fil&m" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -605,7 +605,7 @@ msgstr "Code entfe&rnen" msgid "&Rename symbol" msgstr "Symbol &umbenennen" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reset" @@ -618,7 +618,7 @@ msgstr "&Ressourcenpaketverwaltung" msgid "&Save Symbol Map" msgstr "Symbolkarte &speichern" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -642,7 +642,7 @@ msgstr "&Threads" msgid "&Tools" msgstr "E&xtras" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -715,7 +715,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -946,7 +946,7 @@ msgstr "" "\n" "Die Installation dieses WAD wird es unwiderruflich ersetzen. Fortsetzen?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Eine Disc wird momentan bereits eingelesen." @@ -1422,7 +1422,7 @@ msgstr "" msgid "Always Connected" msgstr "Immer verbunden" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1517,7 +1517,7 @@ msgstr "Möchtest du diese Datei wirklich löschen? " msgid "Are you sure you want to delete this pack?" msgstr "Möchtest du dieses Paket wirklich löschen? " -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Bist du dir sicher, dass du NetPlay beenden möchtest?" @@ -1534,7 +1534,7 @@ msgstr "Seitenverhältnis" msgid "Aspect Ratio:" msgstr "Seitenverhältnis:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Controller-Ports zuweisen" @@ -1587,7 +1587,7 @@ msgstr "Automatisch (Vielfaches von 640x528)" msgid "Auto Update Settings" msgstr "Einstellungen automatisch updaten" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1861,7 +1861,7 @@ msgstr "Unterbrechen" msgid "Breakpoint" msgstr "Haltepunkt" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Haltepunkt gefunden! Schritt heraus abgebrochen." @@ -1907,12 +1907,12 @@ msgstr "&NetPlay-Sitzungen durchsuchen...." msgid "Buffer Size:" msgstr "Puffergröße:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Puffergröße auf %1 geändert" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Puffer:" @@ -2028,7 +2028,15 @@ msgstr "Kalibrierungszeitraum" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Aufrufstapel" @@ -2169,7 +2177,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2276,7 +2284,7 @@ msgstr "Schließen" msgid "Co&nfiguration" msgstr "Ko&nfiguration" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Code" @@ -2412,7 +2420,7 @@ msgid "Confirm on Stop" msgstr "Beim Beenden bestätigen" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Bestätigung" @@ -2467,7 +2475,7 @@ msgstr "" msgid "Connected" msgstr "Verbunden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2642,10 +2650,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopieren" @@ -2822,7 +2830,7 @@ msgstr "" "Wenn ja, dann musst du möglicherweise deinen Speicherort für die " "Speicherkarte in den Optionen neu angeben." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Konnte den zentralen Server nicht ermitteln" @@ -3249,7 +3257,7 @@ msgstr "" "\n" "Möchtest du wirklich zu Direct3D 11 wechseln? Im Zweifel 'Nein' auswählen." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3450,7 +3458,7 @@ msgstr "Dolphin konnte die gewünschte Aktion nicht ausführen." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin ist ein freier und quelloffener Gamecube- und Wii-Emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin ist zu alt für den Übergangsserver" @@ -3788,7 +3796,7 @@ msgstr "Disc auswerfen" msgid "Embedded Frame Buffer (EFB)" msgstr "Eingebetteter Bildspeicher (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Leer" @@ -4107,7 +4115,7 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4132,11 +4140,11 @@ msgstr "Geben Sie die RSO-Moduladresse ein:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4200,31 +4208,31 @@ msgstr "" "Fehler: Nach \"{0}\" wurde {1} ({2:#x}), anstatt Save Marker {3} ({4:#x}) " "gefunden. Spielstand laden wird abgebrochen..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4408,7 +4416,7 @@ msgstr "Erweiterung - Bewegungseingabe" msgid "Extension Motion Simulation" msgstr "Erweiterung - Bewegungssimulation" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Extern" @@ -4470,7 +4478,7 @@ msgstr "" "Konnte Speicherkarte nicht öffnen:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Konnte diese Sitzung nicht zum NetPlay Index hinzufügen: %1" @@ -4486,7 +4494,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "Konnte nicht mit Redump.org verbinden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Konnte nicht mit Server %1 verbinden" @@ -4665,7 +4673,7 @@ msgstr "" "Konnte {0} nicht laden. Wenn du Windows 7 verwendest, versuche das " "Updatepaket KB4019990 zu installieren." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4962,10 +4970,6 @@ msgstr "" msgid "Filesystem" msgstr "Dateisystem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Symbole filtern" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filter" @@ -5250,14 +5254,6 @@ msgstr "Vollbild" msgid "Function" msgstr "Funktion" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Funktionsaufrufer" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Funktionsaufrufe" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funktionen" @@ -5290,11 +5286,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5450,25 +5446,25 @@ msgstr "Spielkennung" msgid "Game ID:" msgstr "Spielkennung:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Spielstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Spiel auf \"%1\" geändert" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5483,7 +5479,7 @@ msgstr "" "Spielstand mit dem Spielstand eines anderen Spiels überschrieben. " "Datenkorruption voraus {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5729,7 +5725,7 @@ msgstr "In-Game-Sitzungen ausblenden" msgid "Hide Incompatible Sessions" msgstr "Inkompatible Sitzungen ausblenden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5788,11 +5784,11 @@ msgstr "" "Geeignet für Gelegenheitsspiele mit 3+ Spielern, möglicherweise bei " "instabilen Verbindungen oder Verbindungen mit hoher Latenz." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Host-Eingabeautorität deaktiviert" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Host-Eingabeautorität aktiviert" @@ -6237,7 +6233,7 @@ msgid "Interface" msgstr "Benutzeroberfläche" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Interner LZO-Fehler - Komprimierung fehlgeschlagen" @@ -6246,7 +6242,7 @@ msgstr "Interner LZO-Fehler - Komprimierung fehlgeschlagen" msgid "Internal LZO Error - decompression failed" msgstr "Interner LZO-Fehler - Dekomprimierung fehlgeschlagen" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6254,7 +6250,7 @@ msgstr "" "Interner LZO-Fehler - Dekomprimierung fehlgeschlagen ({0}) ({1}, {2})\n" "Versuche, diesen Spielstand nochmal zu laden" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interner LZO-Fehler - lzo_init() fehlgeschlagen" @@ -6293,7 +6289,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Ungültiges Paket %1 angegeben: &2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Ungültige Spieler-ID" @@ -6301,7 +6297,7 @@ msgstr "Ungültige Spieler-ID" msgid "Invalid RSO module address: %1" msgstr "Ungültige RSO-Moduladresse: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Ungültiger Aufrufstapel" @@ -6501,7 +6497,7 @@ msgstr "Tasten" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Spieler hinauswerfen" @@ -6520,7 +6516,7 @@ msgstr "Koreanisch" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6818,7 +6814,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Lokal" @@ -6862,7 +6858,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Die Verbindung zum NetPlay-Server wurde getrennt..." @@ -6875,10 +6871,6 @@ msgstr "Niedrig" msgid "Lowest" msgstr "Niedrigste" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5-Prüfsumme" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6930,7 +6922,7 @@ msgstr "NAND verwalten" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mapping" @@ -6942,11 +6934,11 @@ msgstr "" msgid "Match Found" msgstr "Übereinstimmung gefunden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Maximaler Puffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Maximale Puffergröße auf %1 geändert" @@ -7042,7 +7034,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Nichtübereinstimmung zwischen internen Datenstrukturen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7220,7 +7212,7 @@ msgstr "NetPlay-Einrichtung" msgid "Netherlands" msgstr "Niederlande" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "NetPlay wurde desynchronisiert in NetPlay_GetButtonPress()" @@ -7358,7 +7350,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Es wurden keine Probleme festgestellt." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -7397,7 +7389,7 @@ msgstr "Keine Aufnahme geladen." msgid "No save data found." msgstr "Keine gespeicherten Daten gefunden." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Keine undo.dtm gefunden, undo load state ab wird abgebrochen, um Film-" @@ -7419,7 +7411,7 @@ msgstr "Nordamerika" msgid "Not Set" msgstr "Nicht Festgelegt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Nicht alle Spieler besitzen das Spiel. Möchten Sie trotzdem starten?" @@ -7439,7 +7431,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7495,7 +7487,7 @@ msgstr "Nunchuck-Ausrichtung" msgid "Nunchuk Stick" msgstr "Nunchuck-Stick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7616,7 +7608,7 @@ msgstr "Operatoren" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Einstellungen" @@ -7633,7 +7625,7 @@ msgstr "Orbital" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Andere" @@ -7812,7 +7804,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Wähle eine Debug-Schriftart" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7845,12 +7837,12 @@ msgstr "Aufnahme abspielen" msgid "Playback Options" msgstr "Wiedergabeoptionen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Spieler" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Spieler" @@ -7879,7 +7871,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Mögliche Desynchronisation erkannt: %1 wurde wahrscheinlich auf Frame %2 " @@ -8156,7 +8148,7 @@ msgstr "Nachzentrieren" msgid "Record" msgstr "Aufnahme" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Eingaben aufzeichnen" @@ -8397,7 +8389,7 @@ msgstr "Standard wiederherstellen" msgid "Restore instruction" msgstr "Anweisung wiederherstellen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Erneut versuchen" @@ -8406,7 +8398,7 @@ msgstr "Erneut versuchen" msgid "Return Speed" msgstr "Rücklaufgeschwindigkeit" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revision" @@ -8464,7 +8456,7 @@ msgstr "Rollen links" msgid "Roll Right" msgstr "Rollen rechts" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Raum-ID" @@ -8505,7 +8497,7 @@ msgstr "" msgid "Russia" msgstr "Russland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-Karte" @@ -8537,6 +8529,10 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8591,11 +8587,11 @@ msgid "Save File to" msgstr "Datei speichern unter" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8621,7 +8617,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Spielstand speichern" @@ -8934,8 +8930,8 @@ msgid "Select a Directory" msgstr "Verzeichnis auswählen" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8966,7 +8962,7 @@ msgstr "Spiel auswählen" msgid "Select a title to install to NAND" msgstr "Wähle einen Titel zum Installieren in den NAND aus." -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -9010,8 +9006,8 @@ msgstr "Ausgewähltes Controller-Profil existiert nicht" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Das gewählte Spiel existiert nicht in der Spieleliste!" @@ -9099,7 +9095,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Senden" @@ -9283,7 +9279,7 @@ msgstr "GameCube anzeigen" msgid "Show Germany" msgstr "Deutschland anzeigen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Golf-Modus-Überlagerung anzeigen" @@ -9732,7 +9728,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Spiel gestartet" @@ -9771,19 +9767,19 @@ msgstr "Schritt heraus" msgid "Step Over" msgstr "Schritt über" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Schritt heraus erfolgreich!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Zeitüberschreitung bei Schritt heraus!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Schritt über in Bearbeitung..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Schritt erfolgreich!" @@ -9834,7 +9830,7 @@ msgstr "Wiedergabe/Aufzeichnung der Eingabe stoppen" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Spiel gestoppt" @@ -9912,7 +9908,7 @@ msgstr "Eingabestift" msgid "Success" msgstr "Erfolg" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Erfolgreich zum NetPlay-Index hinzugefügt" @@ -10034,7 +10030,7 @@ msgid "Symbol name:" msgstr "Symbolname:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symbole" @@ -10241,7 +10237,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Die Disc konnte nicht gelesen werden (bei {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Die Disc, die eingelesen werden sollte, konnte nicht gefunden werden." @@ -10380,11 +10376,11 @@ msgstr "" "\n" "(MSAA mit {0} Samples im Standard-Bildspeicher)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Die Hashes stimmen nicht überein!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Die Hashes stimmen überein!" @@ -10533,7 +10529,7 @@ msgstr "Die {0} Partition ist nicht richtig ausgerichtet." msgid "There are too many partitions in the first partition table." msgstr "Es gibt zu viele Partitionen in der ersten Partitionstabelle." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Es gibt nichts zum rückgängig machen!" @@ -10987,8 +10983,8 @@ msgstr "Touch" msgid "Traditional Chinese" msgstr "Chinesisch (Traditionell)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Übergangsfehler" @@ -11165,18 +11161,18 @@ msgstr "" msgid "United States" msgstr "Vereinigte Staaten" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Unbekannt" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Unbekannter DVD-Befehl {0:08x} - fataler Fehler" @@ -11741,7 +11737,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Warnungen" @@ -11962,7 +11958,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -12012,19 +12008,19 @@ msgstr "Schreibe ins Log und brich ab" msgid "Write to Window" msgstr "In Fenster ausgeben" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -12243,7 +12239,7 @@ msgstr "" msgid "disconnected" msgstr "getrennt" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -12289,7 +12285,7 @@ msgstr "" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12360,7 +12356,7 @@ msgstr "{0} konnte Codes nicht synchroniseren." msgid "{0} failed to synchronize." msgstr "{0} konnte nicht synchronisert werden." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12374,7 +12370,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} von {1} Blöcken. Komprimierungsrate {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} war kein Verzeichnis, verschoben nach *.original" diff --git a/Languages/po/dolphin-emu.pot b/Languages/po/dolphin-emu.pot index 7c4a4d6d37..f113394152 100644 --- a/Languages/po/dolphin-emu.pot +++ b/Languages/po/dolphin-emu.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -169,19 +169,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -222,11 +222,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -261,19 +261,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -314,7 +314,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -350,7 +350,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -395,11 +395,11 @@ msgstr "" msgid "&Emulation" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -447,11 +447,11 @@ msgstr "" msgid "&Hotkey Settings" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -463,7 +463,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -495,7 +495,7 @@ msgstr "" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -557,7 +557,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "" @@ -570,7 +570,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -594,7 +594,7 @@ msgstr "" msgid "&Tools" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -665,7 +665,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -887,7 +887,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1304,7 +1304,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1396,7 +1396,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1413,7 +1413,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1466,7 +1466,7 @@ msgstr "" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1727,7 +1727,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1773,12 +1773,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "" @@ -1883,7 +1883,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2009,7 +2017,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "" @@ -2114,7 +2122,7 @@ msgstr "" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2250,7 +2258,7 @@ msgid "Confirm on Stop" msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2304,7 +2312,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2458,10 +2466,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2604,7 +2612,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3012,7 +3020,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3193,7 +3201,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3511,7 +3519,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3796,7 +3804,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3821,11 +3829,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3885,31 +3893,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4086,7 +4094,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4146,7 +4154,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4162,7 +4170,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4324,7 +4332,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4599,10 +4607,6 @@ msgstr "" msgid "Filesystem" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4864,14 +4868,6 @@ msgstr "" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4904,11 +4900,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5047,25 +5043,25 @@ msgstr "" msgid "Game ID:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5078,7 +5074,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5319,7 +5315,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5373,11 +5369,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5765,7 +5761,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5774,13 +5770,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5819,7 +5815,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5827,7 +5823,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6024,7 +6020,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6043,7 +6039,7 @@ msgstr "" msgid "L" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6329,7 +6325,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6373,7 +6369,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6386,10 +6382,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6437,7 +6429,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6449,11 +6441,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6541,7 +6533,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6716,7 +6708,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6853,7 +6845,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6888,7 +6880,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6908,7 +6900,7 @@ msgstr "" msgid "Not Set" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6928,7 +6920,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6984,7 +6976,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7101,7 +7093,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "" @@ -7118,7 +7110,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "" @@ -7297,7 +7289,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7330,12 +7322,12 @@ msgstr "" msgid "Playback Options" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "" @@ -7364,7 +7356,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7626,7 +7618,7 @@ msgstr "" msgid "Record" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7856,7 +7848,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7865,7 +7857,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7923,7 +7915,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7964,7 +7956,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -7996,6 +7988,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8050,11 +8046,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8080,7 +8076,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8387,8 +8383,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8419,7 +8415,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8463,8 +8459,8 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8528,7 +8524,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "" @@ -8705,7 +8701,7 @@ msgstr "" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9131,7 +9127,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9170,19 +9166,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9233,7 +9229,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9301,7 +9297,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9420,7 +9416,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9614,7 +9610,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9729,11 +9725,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9864,7 +9860,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10255,8 +10251,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10412,18 +10408,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10934,7 +10930,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "" @@ -11115,7 +11111,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11165,19 +11161,19 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11376,7 +11372,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11422,7 +11418,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11491,7 +11487,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11502,7 +11498,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/el.po b/Languages/po/el.po index 77e6fae9e3..d412ef9e63 100644 --- a/Languages/po/el.po +++ b/Languages/po/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: link_to_the_past , " "2013-2018,2020,2022\n" @@ -175,19 +175,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 έχει φύγει" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -228,11 +228,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -267,19 +267,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -320,7 +320,7 @@ msgstr "&Αυτόματη Εκκίνηση" msgid "&Boot from DVD Backup" msgstr "&Εκκίνηση από DVD Αντίγραφο Ασφαλείας" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -356,7 +356,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -401,11 +401,11 @@ msgstr "&Εξαγωγή Δίσκου" msgid "&Emulation" msgstr "&Εξομοίωση" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -453,11 +453,11 @@ msgstr "&Βοήθεια" msgid "&Hotkey Settings" msgstr "&Ρυθμίσεις Πλήκτρων Συντόμευσης" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -469,7 +469,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -501,7 +501,7 @@ msgstr "&Μνήμη" msgid "&Movie" msgstr "&Ταινία" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -563,7 +563,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Επανεκκίνηση" @@ -576,7 +576,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -600,7 +600,7 @@ msgstr "" msgid "&Tools" msgstr "&Εργαλεία" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -671,7 +671,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -896,7 +896,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1313,7 +1313,7 @@ msgstr "Πάντοτε" msgid "Always Connected" msgstr "Πάντα Συνδεδεμένο" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1405,7 +1405,7 @@ msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετ msgid "Are you sure you want to delete this pack?" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το pack;" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Είστε σίγουροι ότι θέλετε να εγκαταλείψετε το NetPlay;" @@ -1422,7 +1422,7 @@ msgstr "Αναλογία Οθόνης" msgid "Aspect Ratio:" msgstr "Αναλογία Οθόνης:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Ορισμός Θυρών Χειριστηρίων" @@ -1475,7 +1475,7 @@ msgstr "Αυτόματα (Πολλαπλάσιο του 640x528)" msgid "Auto Update Settings" msgstr "Ρυθμίσεις Αυτόματης Ενημέρωσης" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1736,7 +1736,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1782,12 +1782,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Μέγεθος Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -1892,7 +1892,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2018,7 +2026,7 @@ msgstr "Η αλλαγή cheats θα τεθεί σε ισχύ μόνο όταν msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Συνομιλία" @@ -2123,7 +2131,7 @@ msgstr "Κλείσιμο" msgid "Co&nfiguration" msgstr "Ρυ&θμίσεις" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Κώδικας" @@ -2259,7 +2267,7 @@ msgid "Confirm on Stop" msgstr "Επιβεβαίωση Διακοπής" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Επιβεβαίωση" @@ -2313,7 +2321,7 @@ msgstr "Σύνδεση στο Internet και εκτέλεση ενημέρωσ msgid "Connected" msgstr "Συνδεδεμένο" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2469,10 +2477,10 @@ msgstr "" "Μετατροπή\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Αντιγραφή" @@ -2615,7 +2623,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3024,7 +3032,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3209,7 +3217,7 @@ msgstr "" "Το Dolphin είναι ένας ελεύθερος και ανοικτού κώδικα εξομοιωτής για GameCube " "και Wii." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3528,7 +3536,7 @@ msgstr "Εξαγωγή Δίσκου" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Κενή" @@ -3820,7 +3828,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3845,11 +3853,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3911,31 +3919,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4112,7 +4120,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4172,7 +4180,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4188,7 +4196,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4350,7 +4358,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4625,10 +4633,6 @@ msgstr "" msgid "Filesystem" msgstr "Αρχεία δίσκου" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Φίλτρα" @@ -4890,14 +4894,6 @@ msgstr "Πλήρης Οθόνη" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4930,11 +4926,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5073,25 +5069,25 @@ msgstr "ID Παιχνιδιού" msgid "Game ID:" msgstr "ID Παιχνιδιού:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Κατάσταση Παιχνιδιού" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5104,7 +5100,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5345,7 +5341,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5399,11 +5395,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5791,7 +5787,7 @@ msgid "Interface" msgstr "Διεπαφή" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία συμπίεσης" @@ -5800,13 +5796,13 @@ msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία συμπίεση msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Εσωτερικό Σφάλμα LZO - αποτυχία lzo_init()" @@ -5845,7 +5841,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5853,7 +5849,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6050,7 +6046,7 @@ msgstr "Πλήκτρα" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Διώξιμο Παίκτη" @@ -6069,7 +6065,7 @@ msgstr "Κορεάτικα" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6358,7 +6354,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6402,7 +6398,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6415,10 +6411,6 @@ msgstr "" msgid "Lowest" msgstr "Ελάχιστη" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 Checksum" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6466,7 +6458,7 @@ msgstr "Διαχείριση NAND" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6478,11 +6470,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6572,7 +6564,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6747,7 +6739,7 @@ msgstr "" msgid "Netherlands" msgstr "Ολλανδία" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6886,7 +6878,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Δεν εντοπίστηκαν προβλήματα." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6921,7 +6913,7 @@ msgstr "" msgid "No save data found." msgstr "Δεν βρέθηκαν δεδομένα αποθήκευσης." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6941,7 +6933,7 @@ msgstr "Βόρεια Αμερική" msgid "Not Set" msgstr "Μη Ορισμένο" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6961,7 +6953,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7017,7 +7009,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7134,7 +7126,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Ρυθμίσεις" @@ -7151,7 +7143,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Άλλα" @@ -7330,7 +7322,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7363,12 +7355,12 @@ msgstr "Αναπαραγωγή Εγγραφής" msgid "Playback Options" msgstr "Ρυθμίσεις Αναπαραγωγής" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Παίχτες" @@ -7397,7 +7389,7 @@ msgstr "" msgid "Port:" msgstr "Θύρα:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7659,7 +7651,7 @@ msgstr "" msgid "Record" msgstr "Εγγραφή" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7889,7 +7881,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Επανάληψη" @@ -7898,7 +7890,7 @@ msgstr "Επανάληψη" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7956,7 +7948,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7997,7 +7989,7 @@ msgstr "" msgid "Russia" msgstr "Ρωσία" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD Κάρτα" @@ -8029,6 +8021,10 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8083,11 +8079,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8113,7 +8109,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Αποθήκευση Σημείου" @@ -8420,8 +8416,8 @@ msgid "Select a Directory" msgstr "Επιλέξτε ένα Φάκελο" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8452,7 +8448,7 @@ msgstr "Επιλέξτε ένα παιχνίδι" msgid "Select a title to install to NAND" msgstr "Επιλέξτε ένα αρχείο για εγκατάσταση στην NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8496,8 +8492,8 @@ msgstr "Το επιλεγμένο προφίλ χειρισμού δεν υπά #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8561,7 +8557,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Αποστολή" @@ -8741,7 +8737,7 @@ msgstr "Εμφάνιση GameCube" msgid "Show Germany" msgstr "Εμφάνιση Γερμανίας" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9167,7 +9163,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Εκκίνηση παιχνιδιού" @@ -9206,19 +9202,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9269,7 +9265,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Διακοπή παιχνιδιού" @@ -9337,7 +9333,7 @@ msgstr "" msgid "Success" msgstr "Επιτυχία" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9456,7 +9452,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9650,7 +9646,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9765,11 +9761,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9901,7 +9897,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Δεν υπάρχει τίποτα προς αναίρεση!" @@ -10299,8 +10295,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Κινέζικα Παραδοσιακά " -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10456,18 +10452,18 @@ msgstr "" msgid "United States" msgstr "Ηνωμένες Πολιτείες" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Άγνωστο" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10980,7 +10976,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Προειδοποίηση" @@ -11161,7 +11157,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11211,19 +11207,19 @@ msgstr "" msgid "Write to Window" msgstr "Εγγραφή στο Παράθυρο" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11423,7 +11419,7 @@ msgstr "" msgid "disconnected" msgstr "αποσύνδεση" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11469,7 +11465,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11538,7 +11534,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11549,7 +11545,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/en.po b/Languages/po/en.po index 405b2652c7..27d14024c3 100644 --- a/Languages/po/en.po +++ b/Languages/po/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2011-01-06 14:53+0100\n" "Last-Translator: BhaaL \n" "Language-Team: \n" @@ -168,19 +168,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -221,11 +221,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -260,19 +260,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -313,7 +313,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -349,7 +349,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -394,11 +394,11 @@ msgstr "" msgid "&Emulation" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -446,11 +446,11 @@ msgstr "" msgid "&Hotkey Settings" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -462,7 +462,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -494,7 +494,7 @@ msgstr "" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "" @@ -569,7 +569,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -593,7 +593,7 @@ msgstr "" msgid "&Tools" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -664,7 +664,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -886,7 +886,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1303,7 +1303,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1395,7 +1395,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1412,7 +1412,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1465,7 +1465,7 @@ msgstr "" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1726,7 +1726,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1772,12 +1772,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "" @@ -1882,7 +1882,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2008,7 +2016,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "" @@ -2113,7 +2121,7 @@ msgstr "" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2249,7 +2257,7 @@ msgid "Confirm on Stop" msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2303,7 +2311,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2457,10 +2465,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2603,7 +2611,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3011,7 +3019,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3192,7 +3200,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3510,7 +3518,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3795,7 +3803,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3820,11 +3828,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3884,31 +3892,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4085,7 +4093,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4145,7 +4153,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4161,7 +4169,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4323,7 +4331,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4598,10 +4606,6 @@ msgstr "" msgid "Filesystem" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4863,14 +4867,6 @@ msgstr "" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4903,11 +4899,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5046,25 +5042,25 @@ msgstr "" msgid "Game ID:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5077,7 +5073,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5318,7 +5314,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5372,11 +5368,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5764,7 +5760,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5773,13 +5769,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5818,7 +5814,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5826,7 +5822,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6023,7 +6019,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6042,7 +6038,7 @@ msgstr "" msgid "L" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6328,7 +6324,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6372,7 +6368,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6385,10 +6381,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6436,7 +6428,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6448,11 +6440,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6540,7 +6532,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6715,7 +6707,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6852,7 +6844,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6887,7 +6879,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6907,7 +6899,7 @@ msgstr "" msgid "Not Set" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6927,7 +6919,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6983,7 +6975,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7100,7 +7092,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "" @@ -7117,7 +7109,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "" @@ -7296,7 +7288,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7329,12 +7321,12 @@ msgstr "" msgid "Playback Options" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "" @@ -7363,7 +7355,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7625,7 +7617,7 @@ msgstr "" msgid "Record" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7855,7 +7847,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7864,7 +7856,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7922,7 +7914,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7963,7 +7955,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -7995,6 +7987,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8049,11 +8045,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8079,7 +8075,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8386,8 +8382,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8418,7 +8414,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8462,8 +8458,8 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8527,7 +8523,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "" @@ -8704,7 +8700,7 @@ msgstr "" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9130,7 +9126,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9169,19 +9165,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9232,7 +9228,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9300,7 +9296,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9419,7 +9415,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9613,7 +9609,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9728,11 +9724,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9863,7 +9859,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10254,8 +10250,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10411,18 +10407,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10933,7 +10929,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "" @@ -11114,7 +11110,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11164,19 +11160,19 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11375,7 +11371,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11421,7 +11417,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11490,7 +11486,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11501,7 +11497,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/es.po b/Languages/po/es.po index 16b6796a68..aae0763e1b 100644 --- a/Languages/po/es.po +++ b/Languages/po/es.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Víctor González, 2021-2022\n" "Language-Team: Spanish (http://www.transifex.com/delroth/dolphin-emu/" @@ -62,6 +62,11 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"Dolphin no puede confirmar que este título no haya sido manipulado porque no " +"está pensado para consolas Wii comerciales, aunque las firmas parezcan " +"válidas." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -215,19 +220,19 @@ msgstr "" "%2 objetos\n" "Fotograma actual: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 se ha unido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 se ha salido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 no es una ROM válida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 ahora está jugando al golf" @@ -268,11 +273,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -307,19 +312,19 @@ msgstr "Se quitaron %n dirección(ones)." msgid "& And" msgstr "& Y" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -360,7 +365,7 @@ msgstr "Comienzo &automático" msgid "&Boot from DVD Backup" msgstr "&Iniciar desde copia de seguridad en DVD" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "Ventana sin &bordes" @@ -396,7 +401,7 @@ msgstr "&Clonar..." msgid "&Code" msgstr "&Código" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Conectado" @@ -441,11 +446,11 @@ msgstr "&Expulsar disco" msgid "&Emulation" msgstr "&Emulación" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Exportar guardado de juego..." -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Exportar estado" @@ -493,11 +498,11 @@ msgstr "A&yuda" msgid "&Hotkey Settings" msgstr "Ajustes de a&tajos" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importar guardado de juego..." -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importar estado" @@ -509,7 +514,7 @@ msgstr "&Importar..." msgid "&Insert blr" msgstr "&Insertar blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&Fusión de fotogramas" @@ -541,7 +546,7 @@ msgstr "&Memoria" msgid "&Movie" msgstr "&Grabación" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&Silenciar" @@ -603,7 +608,7 @@ msgstr "&Quitar código" msgid "&Rename symbol" msgstr "&Renombrar símbolo" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reiniciar" @@ -616,7 +621,7 @@ msgstr "&Administrador de paquetes de recursos" msgid "&Save Symbol Map" msgstr "&Guardar mapa de símbolos" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "E%scanear tarjeta(s) de e-Reader..." @@ -640,7 +645,7 @@ msgstr "&Hilos" msgid "&Tools" msgstr "&Herramientas" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Quitar ROM" @@ -711,7 +716,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -943,7 +948,7 @@ msgstr "" "Si instalas este WAD, reemplazarás el título de forma irreversible. ¿Seguro " "que quieres continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Ya hay un disco en proceso de inserción." @@ -1421,7 +1426,7 @@ msgstr "Siempre" msgid "Always Connected" msgstr "Siempre conectado" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "Siempre &arriba" @@ -1516,7 +1521,7 @@ msgstr "¿Seguro que quieres borrar este archivo?" msgid "Are you sure you want to delete this pack?" msgstr "¿Seguro que quieres borrar este paquete?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "¿Seguro que quieres salir del juego en red?" @@ -1533,7 +1538,7 @@ msgstr "Relación de aspecto" msgid "Aspect Ratio:" msgstr "Relación de aspecto:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Asignar números de puerto para mandos" @@ -1588,7 +1593,7 @@ msgstr "Automática (múltiplo de 640x528)" msgid "Auto Update Settings" msgstr "Ajustes de actualización automática" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1861,7 +1866,7 @@ msgstr "Pausa" msgid "Breakpoint" msgstr "Punto de interrupción" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" "Se ha encontrado un punto de interrupción. Salto de instrucciones cancelado." @@ -1908,12 +1913,12 @@ msgstr "Buscar sesiones de juego en red..." msgid "Buffer Size:" msgstr "Tamaño de búfer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "El tamaño del búfer ha cambiado a %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Búfer:" @@ -2029,7 +2034,15 @@ msgstr "Tiempo de calibración" msgid "Call display list at %1 with size %2" msgstr "Llamada de lista de visualización en %1 con tamaño %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Pila de llamadas" @@ -2170,7 +2183,7 @@ msgstr "Los trucos surtirán efecto la próxima vez que se reinicie el juego." msgid "Channel Partition (%1)" msgstr "Partición del canal (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Conversación" @@ -2277,7 +2290,7 @@ msgstr "Cerrar" msgid "Co&nfiguration" msgstr "Co&nfiguración" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Código" @@ -2420,7 +2433,7 @@ msgid "Confirm on Stop" msgstr "Confirmar detención" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Confirmar" @@ -2475,7 +2488,7 @@ msgstr "" msgid "Connected" msgstr "Conectado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Conectando" @@ -2653,10 +2666,10 @@ msgstr "" "Convirtiendo...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Copiar" @@ -2833,7 +2846,7 @@ msgstr "" "Si es así, entonces es posible que tengas que volver a especificar la " "ubicación de la tarjeta de memoria en las opciones." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "No se pudo encontrar el servidor central" @@ -3083,7 +3096,7 @@ msgstr "Reducir IR" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "Disminuir valor del estado seleccionado" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3268,7 +3281,7 @@ msgstr "" "\n" "¿Realmente quieres cambiar a Direct3D 11? Si tienes dudas, selecciona «No»." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "Des&conectado" @@ -3479,7 +3492,7 @@ msgstr "Dolphin no ha podido completar la acción solicitada." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin es un emulador de GameCube y Wii de código abierto." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" "La versión de Dolphin es demasiado antigua para utilizar el servidor de paso" @@ -3829,7 +3842,7 @@ msgstr "Expulsar disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Búfer de imagen integrado (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Vacía" @@ -4171,7 +4184,7 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4196,11 +4209,11 @@ msgstr "Escribe la dirección del módulo RSO:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4264,31 +4277,31 @@ msgstr "" "Error: Tras «{0}» se ha encontrado {1} ({2:#x}) en vez de la marca de " "guardado {3} ({4:#x}). Cancelando carga del estado de guardado..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Error: GBA{0} no ha podido crear el núcleo" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Error: GBA{0} no ha podido cargar la BIOS en {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Error: GBA{0} no ha podido cargar la ROM en {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Error: GBA{0} no ha podido cargar el guardado en {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Error: GBA{0} no ha podido abrir la BIOS en {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Error: GBA{0} no ha podido abrir la ROM en {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Error: GBA{0} no ha podido abrir el guardado en {1}" @@ -4488,7 +4501,7 @@ msgstr "Entrada de movimiento de extensión" msgid "Extension Motion Simulation" msgstr "Simulación de movimiento de extensión" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Externo" @@ -4550,7 +4563,7 @@ msgstr "" "Fallo al abrir la tarjeta de memoria:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "No se ha podido añadir esta sesión al índice de juego en red: %1" @@ -4566,7 +4579,7 @@ msgstr "No se ha podido controlar la interfaz para el acceso directo a BT: {0}" msgid "Failed to connect to Redump.org" msgstr "No se ha podido conectar con redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "No se ha podido conectar al servidor: %1" @@ -4753,7 +4766,7 @@ msgstr "" "No se ha podido cargar {0}. Si utilizas Windows 7, prueba a instalar el " "paquete de actualización KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -5055,10 +5068,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistema de archivos" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtrar símbolos" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtros" @@ -5351,14 +5360,6 @@ msgstr "Pant. completa" msgid "Function" msgstr "Función" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Llamadas a función" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Llamadas de función" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funciones" @@ -5391,11 +5392,11 @@ msgstr "Volumen de GBA" msgid "GBA Window Size" msgstr "Tamaño de la ventana de GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "ROM GBA%1 cambiada a «%2»" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "ROM GBA%1 desactivada" @@ -5566,15 +5567,15 @@ msgstr "Id. de juego" msgid "Game ID:" msgstr "Id. de juego:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Estado del juego" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Juego cambiado a «%1»" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5583,11 +5584,11 @@ msgstr "" "selecciona Propiedades, ve a la pestaña Verificar y selecciona Verificar " "integridad para comprobar su «hash»" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "El juego tiene un número de disco distinto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "El juego es una revisión distinta" @@ -5602,7 +5603,7 @@ msgstr "" "El juego se sobrescribió con los datos de guardado de otro juego. Corrupción " "de datos inminente {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "La región del juego no coincide" @@ -5848,7 +5849,7 @@ msgstr "Ocultar sesiones en curso" msgid "Hide Incompatible Sessions" msgstr "Ocultar sesiones no compatibles" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Ocultar GBAs remotas" @@ -5907,11 +5908,11 @@ msgstr "" "Ideal para juegos casuales para 3 o más jugadores, posiblemente en " "conexiones inestables o de alta latencia." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Autoridad de entrada para el anfitrión deshabilitada" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Autoridad de entrada para el anfitrión activada" @@ -6244,7 +6245,7 @@ msgstr "Aumentar IR" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "Aumentar valor del estado seleccionado" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6373,7 +6374,7 @@ msgid "Interface" msgstr "Interfaz" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Error Interno de LZO - fallo al comprimir" @@ -6382,7 +6383,7 @@ msgstr "Error Interno de LZO - fallo al comprimir" msgid "Internal LZO Error - decompression failed" msgstr "Error interno de LZO - fallo al descomprimir" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6390,7 +6391,7 @@ msgstr "" "Error interno de LZO - fallo al descomprimir ({0}) ({1}, {2})\n" "Prueba a volver a cargar el estado" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Error interno de LZO - fallo en lzo_init()" @@ -6429,7 +6430,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Paquete %1 no válido proporcionado: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Id. de jugador incorrecto" @@ -6437,7 +6438,7 @@ msgstr "Id. de jugador incorrecto" msgid "Invalid RSO module address: %1" msgstr "Dirección de módulo RSO incorrecta: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "La pila de llamadas («callstack») no es válida" @@ -6638,7 +6639,7 @@ msgstr "Teclas" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Echar al jugador" @@ -6657,7 +6658,7 @@ msgstr "Coreano" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "Carg&ar ROM" @@ -6959,7 +6960,7 @@ msgstr "" "

Si tienes dudas, deja esta opción desactivada." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Local" @@ -7007,7 +7008,7 @@ msgstr "" msgid "Loop" msgstr "Bucle" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Se ha perdido la conexión con el servidor de juego en red..." @@ -7020,10 +7021,6 @@ msgstr "Bajo" msgid "Lowest" msgstr "Más bajo" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Suma de verificación MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -7076,7 +7073,7 @@ msgstr "Administrar NAND" msgid "Manual Texture Sampling" msgstr "Muestreo manual de texturas" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mapeando" @@ -7088,11 +7085,11 @@ msgstr "Enmascarar ROM" msgid "Match Found" msgstr "Se han encontrado coincidencias" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Búfer máximo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "El tamaño máximo del búfer ha cambiado a %1" @@ -7185,7 +7182,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "No coinciden las estructuras de datos internas." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7376,7 +7373,7 @@ msgstr "Configuración de juego en red" msgid "Netherlands" msgstr "Países Bajos" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "El juego en red se ha desincronizado en «NetPlay_GetButtonPress()»" @@ -7513,7 +7510,7 @@ msgstr "No hay ningún juego en ejecución." msgid "No issues have been detected." msgstr "No se ha detectado ningún problema." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "No se ha encontrado el juego correspondiente" @@ -7552,7 +7549,7 @@ msgstr "No hay grabación cargada." msgid "No save data found." msgstr "No se encontraron datos de guardado." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "No se ha encontrado el archivo undo.dtm, abortando deshacer estado cargado " @@ -7574,7 +7571,7 @@ msgstr "Norteamérica" msgid "Not Set" msgstr "No definido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Algunos jugadores no tienen el juego. ¿Seguro que quieres continuar?" @@ -7598,7 +7595,7 @@ msgstr "" "No hay suficientes archivos libres en la tarjeta de memoria elegida. Se " "requiere(n) al menos %n archivo(s) libre(s)." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "No se ha encontrado" @@ -7656,7 +7653,7 @@ msgstr "Orientación del Nunchuk" msgid "Nunchuk Stick" msgstr "Palanca del Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7777,7 +7774,7 @@ msgstr "Operadores" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opciones" @@ -7794,7 +7791,7 @@ msgstr "Orbitar" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Otros" @@ -7973,7 +7970,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Elige una tipografía de depuración" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -8006,12 +8003,12 @@ msgstr "Reproducir grabación" msgid "Playback Options" msgstr "Opciones de reproducción" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Jugador" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Jugadores" @@ -8042,7 +8039,7 @@ msgstr "ROM del puerto %1:" msgid "Port:" msgstr "Puerto:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Posible desincronización: podemos haber perdido a %1 en el fotograma %2" @@ -8319,7 +8316,7 @@ msgstr "Centrar" msgid "Record" msgstr "Grabar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Grabar entradas" @@ -8565,7 +8562,7 @@ msgstr "Restaurar valores predeterminados" msgid "Restore instruction" msgstr "Restaurar instrucción" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Reintentar" @@ -8574,7 +8571,7 @@ msgstr "Reintentar" msgid "Return Speed" msgstr "Velocidad de retorno" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revisión" @@ -8632,7 +8629,7 @@ msgstr "Balanceo a la izquierda" msgid "Roll Right" msgstr "Balanceo a la derecha" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Id. de sala" @@ -8679,7 +8676,7 @@ msgstr "Ejecutar los núcleos de GBA en hilos dedicados" msgid "Russia" msgstr "Rusia" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "Tarjeta SD" @@ -8711,6 +8708,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8765,11 +8766,11 @@ msgid "Save File to" msgstr "Guardar archivo en" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Guardado de juego" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Archivos de guardado de juegos (*.sav);; Todos los archivos (*)" @@ -8795,7 +8796,7 @@ msgstr "Guardar archivo de grabación como" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Guardar estado" @@ -9112,8 +9113,8 @@ msgid "Select a Directory" msgstr "Elige un directorio" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9144,7 +9145,7 @@ msgstr "Elige un juego" msgid "Select a title to install to NAND" msgstr "Elige un paquete («título») a instalar en la NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Elegir tarjetas e-Reader" @@ -9188,8 +9189,8 @@ msgstr "El perfil del mando seleccionado no existe" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "¡El juego seleccionado no existe en la lista de juegos!" @@ -9289,7 +9290,7 @@ msgstr "" "necesidades.

Si tienes dudas, selecciona OpenGL. " -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Enviar" @@ -9480,7 +9481,7 @@ msgstr "Mostrar GameCube" msgid "Show Germany" msgstr "Alemanes" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Mostrar superposición de modo de golf" @@ -9944,7 +9945,7 @@ msgstr "Comenzar con parches de Riivolution" msgid "Start with Riivolution Patches..." msgstr "Comenzar con parches de Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Juego en ejecución" @@ -9983,19 +9984,19 @@ msgstr "Saltar una" msgid "Step Over" msgstr "Salir de" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Se ha saltado la instrucción." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Se ha cancelado el salto de instrucciones por tardar demasiado tiempo." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Saltando instrucciones..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Se han saltado las instrucciones." @@ -10046,7 +10047,7 @@ msgstr "Detener la reproducción o grabación de pulsaciones" msgid "Stop Recording" msgstr "Detener grabación" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Juego detenido" @@ -10125,7 +10126,7 @@ msgstr "Stylus" msgid "Success" msgstr "Todo correcto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Añadido correctamente al índice de juego en red" @@ -10252,7 +10253,7 @@ msgid "Symbol name:" msgstr "Nombre de símbolo:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Símbolos" @@ -10468,7 +10469,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "No se pudo leer el disco (en {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "No se encontró el disco que se iba a insertar." @@ -10610,11 +10611,11 @@ msgstr "" "(Se ha identificado MSAA con {0} muestras en el búfer de marco " "predeterminado)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Las sumas de verificación no coinciden." -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "¡Sumas de verificación correctas!" @@ -10771,7 +10772,7 @@ msgstr "La partición {0} no está alineada correctamente." msgid "There are too many partitions in the first partition table." msgstr "Hay demasiadas particiones en la primera tabla de particiones." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "¡No hay nada que deshacer!" @@ -11231,8 +11232,8 @@ msgstr "Tocar" msgid "Traditional Chinese" msgstr "Chino tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Error del servidor de paso" @@ -11417,18 +11418,18 @@ msgstr "" msgid "United States" msgstr "Estados Unidos" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Desconocido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconocido de DVD {0:08x} - error fatal" @@ -12038,7 +12039,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Advertencia" @@ -12266,7 +12267,7 @@ msgstr "" "desanclarlo." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Tamaño de la ventana" @@ -12316,19 +12317,19 @@ msgstr "Escribir en registro y pausar" msgid "Write to Window" msgstr "Escribir en la ventana" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Número de disco incorrecto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "«Hash» incorrecto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Región incorrecta" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Revisión incorrecta" @@ -12569,7 +12570,7 @@ msgstr "defecto" msgid "disconnected" msgstr "desconectado" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "Tarjetas e-Reader (*.raw);;Todos los archivos (*)" @@ -12615,7 +12616,7 @@ msgstr "último valor" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12688,7 +12689,7 @@ msgstr "{0} no ha podido sincronizar los códigos." msgid "{0} failed to synchronize." msgstr "{0} no ha podido sincronizar." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12701,7 +12702,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0}bloques de {1}. Ratio de compresión {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} no era un directorio, movido a *.original" diff --git a/Languages/po/fa.po b/Languages/po/fa.po index fbfd3f32d5..d4093cf6ba 100644 --- a/Languages/po/fa.po +++ b/Languages/po/fa.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: H.Khakbiz , 2011\n" "Language-Team: Persian (http://www.transifex.com/delroth/dolphin-emu/" @@ -172,19 +172,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -225,11 +225,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -264,19 +264,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -317,7 +317,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -398,11 +398,11 @@ msgstr "" msgid "&Emulation" msgstr "&برابرسازی" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -450,11 +450,11 @@ msgstr "&کمک" msgid "&Hotkey Settings" msgstr "تنظیم &شرت کاتها" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -466,7 +466,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -498,7 +498,7 @@ msgstr "&حافظه" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -560,7 +560,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "شروع &دوباره" @@ -573,7 +573,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "&Tools" msgstr "&ابزارها" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -668,7 +668,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1307,7 +1307,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1399,7 +1399,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "نسبت طول به عرض تصویر:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1469,7 +1469,7 @@ msgstr "اتوماتیک (ضریب ۶۴۰x۵۲۸)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1776,12 +1776,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "حافظه موقت:" @@ -1886,7 +1886,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2012,7 +2020,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "گپ زدن" @@ -2117,7 +2125,7 @@ msgstr "بستن" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2253,7 +2261,7 @@ msgid "Confirm on Stop" msgstr "تائید برای توقف" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2307,7 +2315,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2461,10 +2469,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2607,7 +2615,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3015,7 +3023,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3196,7 +3204,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3514,7 +3522,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3801,7 +3809,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3826,11 +3834,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3891,31 +3899,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4092,7 +4100,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4152,7 +4160,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4168,7 +4176,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4330,7 +4338,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4605,10 +4613,6 @@ msgstr "" msgid "Filesystem" msgstr "فایل سیستم" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4870,14 +4874,6 @@ msgstr "تمام صفحه" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4910,11 +4906,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5053,25 +5049,25 @@ msgstr "" msgid "Game ID:" msgstr "آی دی بازی:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5084,7 +5080,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5325,7 +5321,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5379,11 +5375,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5771,7 +5767,7 @@ msgid "Interface" msgstr "واسط گرافیک" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "خطای داخلی LZO - فشرده سازی با شکست مواجه شد" @@ -5780,13 +5776,13 @@ msgstr "خطای داخلی LZO - فشرده سازی با شکست مواجه msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "خطای داخلی LZO - lzo_init() با شکست مواجه شد" @@ -5825,7 +5821,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5833,7 +5829,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6030,7 +6026,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6049,7 +6045,7 @@ msgstr "کره ای" msgid "L" msgstr "ال" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6338,7 +6334,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6382,7 +6378,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6395,10 +6391,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6446,7 +6438,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6458,11 +6450,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6550,7 +6542,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6725,7 +6717,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6862,7 +6854,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6897,7 +6889,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6917,7 +6909,7 @@ msgstr "" msgid "Not Set" msgstr "ست نشده است" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6937,7 +6929,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6993,7 +6985,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7110,7 +7102,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "گزینه ها" @@ -7127,7 +7119,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "غیره" @@ -7306,7 +7298,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7339,12 +7331,12 @@ msgstr "شروع ضبط" msgid "Playback Options" msgstr "گزینه های بازنواخت" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "بازی کنان" @@ -7373,7 +7365,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7635,7 +7627,7 @@ msgstr "" msgid "Record" msgstr "ضبط" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7865,7 +7857,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7874,7 +7866,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7932,7 +7924,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7973,7 +7965,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8005,6 +7997,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8059,11 +8055,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8089,7 +8085,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8396,8 +8392,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8428,7 +8424,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8472,8 +8468,8 @@ msgstr "پروفایل انتخاب شده وجود ندارد" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8537,7 +8533,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "فرستادن" @@ -8714,7 +8710,7 @@ msgstr "نمایش گیم کیوب" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9140,7 +9136,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9179,19 +9175,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9242,7 +9238,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9310,7 +9306,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9429,7 +9425,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9623,7 +9619,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9738,11 +9734,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9873,7 +9869,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10268,8 +10264,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "چینی سنتی" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10425,18 +10421,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "ناشناخته" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10947,7 +10943,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "اخطار" @@ -11128,7 +11124,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11178,19 +11174,19 @@ msgstr "" msgid "Write to Window" msgstr "نوشتن در پنجره" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11389,7 +11385,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11435,7 +11431,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11504,7 +11500,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11515,7 +11511,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/fr.po b/Languages/po/fr.po index e3161a3f33..e804cb56c9 100644 --- a/Languages/po/fr.po +++ b/Languages/po/fr.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Pascal , 2013-2022\n" "Language-Team: French (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -47,6 +47,11 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"Du fait que ce jeu ne soit pas conçu pour les consoles Wii du commerce, " +"Dolphin ne peut pas s'assurer qu'il n'a pas été modifié, bien que les " +"signatures semblent valides." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -202,19 +207,19 @@ msgstr "" "%2 objet(s)\n" "Image actuelle : %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 s'est connecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 s'est déconnecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 n'est pas une ROM valide" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 est en mode golf" @@ -255,11 +260,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1 : %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2] : %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2] : %3 %" @@ -294,19 +299,19 @@ msgstr "%n adresse(s) ont été retirées." msgid "& And" msgstr "& Et" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -347,7 +352,7 @@ msgstr "Démarrage &automatique" msgid "&Boot from DVD Backup" msgstr "&Démarrer à partir d'un DVD de sauvegarde" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "Fenêtre sans &bordures" @@ -383,7 +388,7 @@ msgstr "&Cloner..." msgid "&Code" msgstr "&Code" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Connecté" @@ -428,11 +433,11 @@ msgstr "&Éjecter le disque" msgid "&Emulation" msgstr "&Émulation" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Exporter la sauvegarde du jeu..." -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Exporter l'état..." @@ -480,11 +485,11 @@ msgstr "&Aide" msgid "&Hotkey Settings" msgstr "Paramètres des &Raccouris clavier" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importer la sauvegarde du jeu..." -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importer l'état..." @@ -496,7 +501,7 @@ msgstr "&Importer..." msgid "&Insert blr" msgstr "&Insérer blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "Fusion &inter-images" @@ -528,7 +533,7 @@ msgstr "&Mémoire" msgid "&Movie" msgstr "Fil&m" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&Couper le son" @@ -590,7 +595,7 @@ msgstr "&Retirer le Code" msgid "&Rename symbol" msgstr "&Renommer symbole" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reset" @@ -603,7 +608,7 @@ msgstr "Gestionnaire de Packs de &Ressources" msgid "&Save Symbol Map" msgstr "&Sauvegarder la carte des symboles" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "&Lire la ou les carte(s) e-Reader..." @@ -627,7 +632,7 @@ msgstr "&Threads" msgid "&Tools" msgstr "&Outils" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Décharger la ROM" @@ -698,7 +703,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -930,7 +935,7 @@ msgstr "" "Installer cette WAD va remplacer celle de la NAND de manière irréversible. " "Continuer ?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Un disque est déjà sur le point d'être inséré." @@ -1406,7 +1411,7 @@ msgstr "Toujours" msgid "Always Connected" msgstr "Toujours connecté" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "&Toujours au premier plan" @@ -1501,7 +1506,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer ce fichier ?" msgid "Are you sure you want to delete this pack?" msgstr "Êtes-vous sûr de vouloir supprimer ce pack ?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Êtes-vous sûr de vouloir quitter NetPlay ?" @@ -1518,7 +1523,7 @@ msgstr "Format d'écran" msgid "Aspect Ratio:" msgstr "Format d'écran :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Attribuer les ports des manettes" @@ -1573,7 +1578,7 @@ msgstr "Auto (Multiple de 640x528)" msgid "Auto Update Settings" msgstr "Paramètres de mise à jour automatique" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1847,7 +1852,7 @@ msgstr "Arrêt" msgid "Breakpoint" msgstr "Point d'arrêt" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Point d'arrêt rencontré ! Sortie abandonnée." @@ -1893,12 +1898,12 @@ msgstr "Parcourir les sessions &NetPlay..." msgid "Buffer Size:" msgstr "Taille du tampon :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Taille de buffer changée à %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer :" @@ -2015,7 +2020,15 @@ msgstr "Durée d'étalonnage" msgid "Call display list at %1 with size %2" msgstr "Appel de la liste d'affichage à %1 avec pour taille %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Pile d'exécution" @@ -2163,7 +2176,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "Partition de Chaîne (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2270,7 +2283,7 @@ msgstr "Fermer" msgid "Co&nfiguration" msgstr "Co&nfiguration" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Code" @@ -2412,7 +2425,7 @@ msgid "Confirm on Stop" msgstr "Confirmer l'arrêt de l'émulation" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Confirmation" @@ -2466,7 +2479,7 @@ msgstr "Se connecter à Internet et rechercher une mise à jour ?" msgid "Connected" msgstr "Connecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Connexion en cours" @@ -2645,10 +2658,10 @@ msgstr "" "Conversion...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Copier" @@ -2823,7 +2836,7 @@ msgstr "" "Dans ce cas, vous devez à nouveau spécifier l'emplacement du fichier de " "sauvegarde dans les options." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Impossible de trouver le serveur central" @@ -3074,7 +3087,7 @@ msgstr "Baisser" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "Décrémenter l'emplacement de l'état sélectionné" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3260,7 +3273,7 @@ msgstr "" "Souhaitez-vous vraiment utiliser Direct3D 11 ? Dans le doute, choisissez " "'Non'." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "Dé&connecté" @@ -3470,7 +3483,7 @@ msgstr "Dolphin n'a pas pu exécuter l'action demandée." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin est un émulateur de GameCube et Wii, libre et open-source." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin est trop ancien pour le serveur traversal" @@ -3821,7 +3834,7 @@ msgstr "Éjecter le disque" msgid "Embedded Frame Buffer (EFB)" msgstr "Buffer d'image embarqué (Embedded Frame Buffer - EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Vide" @@ -4159,7 +4172,7 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4184,11 +4197,11 @@ msgstr "Entrer l'adresse du module RSO :" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4253,31 +4266,31 @@ msgstr "" "Erreur : Après \"{0}\", trouvé {1} ({2:#x}) au lieu d'un marqueur de " "sauvegarde {3} ({4:#x}). Abandon du chargement de la sauvegarde d'état." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Erreur : GBA{0} n'a pas pu créer le cœur" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Erreur : GBA{0} n'a pas pu lire le BIOS dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Erreur : GBA{0} n'a pas pu lire la ROM dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Erreur : GBA{0} n'a pas pu charger la sauvegarde dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir le BIOS dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir la ROM dans {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Erreur : GBA{0} n'a pas pu ouvrir la sauvegarde dans {1}" @@ -4479,7 +4492,7 @@ msgstr "Entrée MotionPlus" msgid "Extension Motion Simulation" msgstr "Simulation du MotionPlus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Externe" @@ -4541,7 +4554,7 @@ msgstr "" "Impossible d'ouvrir la carte mémoire :\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Impossible d'ajouter cette session à l'index NetPlay : %1" @@ -4557,7 +4570,7 @@ msgstr "Impossible d'obtenir une interface pour l'accès direct Bluetooth : {0}" msgid "Failed to connect to Redump.org" msgstr "Impossible de se connecter à Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Impossible de se connecter au serveur : %1" @@ -4741,7 +4754,7 @@ msgstr "" "Impossible de charger {0}. Si vous utilisez Windows 7, essayez d'installer " "la mise à jour KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -5042,10 +5055,6 @@ msgstr "" msgid "Filesystem" msgstr "Système de fichiers" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtrer les symboles" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtres" @@ -5336,14 +5345,6 @@ msgstr "Plein écran" msgid "Function" msgstr "Fonction" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Fonctions parentes" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Fonctions appelées" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Fonctions" @@ -5376,11 +5377,11 @@ msgstr "Volume GBA" msgid "GBA Window Size" msgstr "Taille de la fenêtre GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM changée en \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM désactivée" @@ -5552,15 +5553,15 @@ msgstr "ID du jeu" msgid "Game ID:" msgstr "Identifiant du jeu :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Etat du jeu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Jeu changé en \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5569,11 +5570,11 @@ msgstr "" "sélectionnez Propriétés, cliquer sur l'onglet Vérifier, et sélectionnez " "Vérifier l'intégrité pour vérifier le hash." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "Le jeu a un numéro de disque différent" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "Le jeu a une révision différente" @@ -5588,7 +5589,7 @@ msgstr "" "Leu jeu a écrasé la sauvegarde d'un autre jeu, corruption de données " "probable. {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "La région du jeu ne concorde pas" @@ -5834,7 +5835,7 @@ msgstr "Masquer les sessions en cours" msgid "Hide Incompatible Sessions" msgstr "Masquer les sessions incompatibles" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Masquer les GBA distantes" @@ -5893,11 +5894,11 @@ msgstr "" "Convient pour des jeux casual de 3 joueurs et plus, peut-être sur des " "connexions instables ou avec une forte latence." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Autorité de l'hôte sur les entrées désactivée" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Autorité de l'hôte sur les entrées activée" @@ -6233,7 +6234,7 @@ msgstr "Augmenter" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "Incrémenter l'emplacement de l'état sélectionné" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6361,7 +6362,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Erreur interne LZO - échec de la compression" @@ -6370,7 +6371,7 @@ msgstr "Erreur interne LZO - échec de la compression" msgid "Internal LZO Error - decompression failed" msgstr "Erreur LZO interne - échec de la décompression" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6378,7 +6379,7 @@ msgstr "" "Erreur interne LZO - échec de la décompression ({0}) ({1}, {2}) \n" "Essayez de charger à nouveau l'état" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erreur interne LZO - échec de lzo_init()" @@ -6417,7 +6418,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Pack %1 non valide indiqué : %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "ID joueur non valide" @@ -6425,7 +6426,7 @@ msgstr "ID joueur non valide" msgid "Invalid RSO module address: %1" msgstr "Adresse du module RSO non valide : %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Pile d'exécution non valide" @@ -6627,7 +6628,7 @@ msgstr "Touches" msgid "KiB" msgstr "Kio" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Sortir le joueur" @@ -6646,7 +6647,7 @@ msgstr "Coréen" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "C&harger une ROM..." @@ -6948,7 +6949,7 @@ msgstr "" "

Dans le doute, décochez cette case." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Local" @@ -6996,7 +6997,7 @@ msgstr "" msgid "Loop" msgstr "Boucle" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Connexion au serveur NetPlay perdue !" @@ -7009,10 +7010,6 @@ msgstr "Faible" msgid "Lowest" msgstr "La moins bonne" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Somme de contrôle MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5 :" @@ -7065,7 +7062,7 @@ msgstr "Gestion de NAND" msgid "Manual Texture Sampling" msgstr "Échantillonnage manuel de la texture" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mappage" @@ -7077,11 +7074,11 @@ msgstr "ROM masque" msgid "Match Found" msgstr "Correspondance trouvée" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Tampon maxi :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Taille maximum du tampon changée à %1" @@ -7179,7 +7176,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Non concordance entre les structures de données internes." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7370,7 +7367,7 @@ msgstr "Configuration de NetPlay" msgid "Netherlands" msgstr "Pays-bas" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay s'est désynchronisé dans NetPlay_GetButtonPress()" @@ -7507,7 +7504,7 @@ msgstr "Aucun jeu en fonctionnement." msgid "No issues have been detected." msgstr "Aucun souci n'a été détecté" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "Aucun jeu correspondant n'a été trouvé" @@ -7546,7 +7543,7 @@ msgstr "Aucun enregistrement chargé." msgid "No save data found." msgstr "Aucune donnée de sauvegarde trouvée" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Pas de fichier undo.dtm trouvé, abandon de l'annulation de chargement d'état " @@ -7568,7 +7565,7 @@ msgstr "Amérique du Nord" msgid "Not Set" msgstr "Non défini" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" "Tous les joueurs ne possèdent pas ce jeu. Voulez-vous quand même démarrer ?" @@ -7593,7 +7590,7 @@ msgstr "" "Pas assez de fichiers libres sur la carte mémoire cible. Au moins %n " "fichier(s) libre(s) requis." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "Introuvable" @@ -7651,7 +7648,7 @@ msgstr "Orientation du Nunchuck" msgid "Nunchuk Stick" msgstr "Stick du Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7772,7 +7769,7 @@ msgstr "Opérateurs" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Options" @@ -7789,7 +7786,7 @@ msgstr "Orbite" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Autres" @@ -7968,7 +7965,7 @@ msgstr "Pio" msgid "Pick a debug font" msgstr "Choisissez une police pour le débogage" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -8001,12 +7998,12 @@ msgstr "Jouer l'enregistrement..." msgid "Playback Options" msgstr "Options de lecture" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Joueur" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Joueurs" @@ -8037,7 +8034,7 @@ msgstr "ROM sur Port %1 :" msgid "Port:" msgstr "Port :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Possible désynchronisation détectée : %1 peut s'être désynchronisé à l'image " @@ -8316,7 +8313,7 @@ msgstr "Recentrer" msgid "Record" msgstr "Enregistrer" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Enregistrer les entrées" @@ -8560,7 +8557,7 @@ msgstr "Restaurer les valeurs par défaut" msgid "Restore instruction" msgstr "Restaurer l'instruction" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Réessayer" @@ -8569,7 +8566,7 @@ msgstr "Réessayer" msgid "Return Speed" msgstr "Vitesse du retour" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Révision" @@ -8627,7 +8624,7 @@ msgstr "Enrouler vers la gauche" msgid "Roll Right" msgstr "Enrouler vers la droite" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ID Room" @@ -8673,7 +8670,7 @@ msgstr "Exécuter les cœurs de GBA sur des threads dédiés" msgid "Russia" msgstr "Russie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "Carte SD" @@ -8705,6 +8702,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1 :" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1 :" @@ -8759,11 +8760,11 @@ msgid "Save File to" msgstr "Sauvegarder le fichier sous" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Sauvegarde du jeu" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Fichiers de sauvegarde de jeu (*.sav);;Tous les fichiers (*)" @@ -8789,7 +8790,7 @@ msgstr "Sauvegarder le fichier d'enregistrement sous" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Sauvegarder l'état" @@ -9106,8 +9107,8 @@ msgid "Select a Directory" msgstr "Sélectionner un dossier" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9138,7 +9139,7 @@ msgstr "Sélectionner un jeu" msgid "Select a title to install to NAND" msgstr "Sélectionner un titre à installer dans la NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Sélectionner les cartes e-Reader" @@ -9182,8 +9183,8 @@ msgstr "Le profil de contrôleur sélectionné n'existe pas" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Le jeu sélectionné ne figure pas dans la liste des jeux !" @@ -9279,7 +9280,7 @@ msgstr "" "convient le mieux.

Dans le doute, sélectionnez " "OpenGL." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Envoyer" @@ -9471,7 +9472,7 @@ msgstr "Afficher GameCube" msgid "Show Germany" msgstr "Afficher Allemagne" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Afficher le Mode golf en surimpression" @@ -9936,7 +9937,7 @@ msgstr "Démarrer avec les patchs Riivolution" msgid "Start with Riivolution Patches..." msgstr "Démarrer avec les patchs Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Jeu démarré" @@ -9975,19 +9976,19 @@ msgstr "Step Out" msgid "Step Over" msgstr "Step Over" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Sortie avec succès !" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Temps écoulé pour la sortie !" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Saut en cours..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Pas à pas réussi !" @@ -10038,7 +10039,7 @@ msgstr "Arrêter de jouer/enregistrer l'entrée" msgid "Stop Recording" msgstr "Arrêter l'enregistrement" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Jeu arrêté" @@ -10116,7 +10117,7 @@ msgstr "Style" msgid "Success" msgstr "Succès !" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Ajouté avec succès à l'index de NetPlay" @@ -10244,7 +10245,7 @@ msgid "Symbol name:" msgstr "Nom du symbole :" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symboles" @@ -10459,7 +10460,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Le disque ne peut être lu (à {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Le disque qui allait être inséré n'a pas été trouvé." @@ -10596,11 +10597,11 @@ msgstr "" "\n" "(MSAA avec {0} échantillons trouvés dans le tampon vidéo par défaut)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Les hashs ne correspondent pas !" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Les hashs correspondent !" @@ -10754,7 +10755,7 @@ msgstr "La partition n°{0} n'est pas correctement alignée." msgid "There are too many partitions in the first partition table." msgstr "Il y a trop de partitions dans la première table de partitions." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Il n'y a rien à annuler !" @@ -11211,8 +11212,8 @@ msgstr "Toucher" msgid "Traditional Chinese" msgstr "Chinois traditionnel" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Erreur de Traversal" @@ -11396,18 +11397,18 @@ msgstr "" msgid "United States" msgstr "États-Unis" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Inconnu" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Commande DVD inconnue {0:08x} - erreur fatale" @@ -12015,7 +12016,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Avertissement" @@ -12241,7 +12242,7 @@ msgstr "" "focus. Vous pouvez définir un raccourci clavier pour le déverrouiller." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Taille de la fenêtre" @@ -12291,19 +12292,19 @@ msgstr "Ecrire dans le journal, puis pause" msgid "Write to Window" msgstr "Écrire dans la fenêtre" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Mauvais numéro de disque" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "Mauvais hash" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Mauvaise région" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Mauvaise révision" @@ -12547,7 +12548,7 @@ msgstr "par défaut" msgid "disconnected" msgstr "déconnecté" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "Cartes e-Reader (*.raw);;Tous les fichiers (*)" @@ -12593,7 +12594,7 @@ msgstr "la dernière valeur" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12664,7 +12665,7 @@ msgstr "{0} n'a pas pu synchroniser les codes." msgid "{0} failed to synchronize." msgstr "{0} n'a pas pu synchroniser." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12677,7 +12678,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocs sur {1}. Ratio de compression : {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} n'était pas un dossier, déplacé vers *.original" diff --git a/Languages/po/hr.po b/Languages/po/hr.po index ae43933742..d82c4a6bc6 100644 --- a/Languages/po/hr.po +++ b/Languages/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Alberto Poljak , 2013-2014\n" "Language-Team: Croatian (http://www.transifex.com/delroth/dolphin-emu/" @@ -172,19 +172,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -225,11 +225,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -264,19 +264,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -317,7 +317,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -398,11 +398,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulacija" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -450,11 +450,11 @@ msgstr "&Pomoć" msgid "&Hotkey Settings" msgstr "&Postavke prečica na tipkovnici" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -466,7 +466,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -498,7 +498,7 @@ msgstr "&Memorija" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -560,7 +560,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Resetiraj" @@ -573,7 +573,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "&Tools" msgstr "&Alati" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -668,7 +668,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1307,7 +1307,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1399,7 +1399,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Omjer Slike:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1469,7 +1469,7 @@ msgstr "Automatski (Višestruko od 640*528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1776,12 +1776,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Međuspremnik:" @@ -1886,7 +1886,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2012,7 +2020,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Čavrljanje" @@ -2117,7 +2125,7 @@ msgstr "Zatvori" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2253,7 +2261,7 @@ msgid "Confirm on Stop" msgstr "Potvrdite zaustavljanje igre" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2307,7 +2315,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2461,10 +2469,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2607,7 +2615,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3015,7 +3023,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3196,7 +3204,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3514,7 +3522,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3801,7 +3809,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3826,11 +3834,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3891,31 +3899,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4092,7 +4100,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4152,7 +4160,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4168,7 +4176,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4330,7 +4338,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4605,10 +4613,6 @@ msgstr "" msgid "Filesystem" msgstr "Datotečni sustav" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4870,14 +4874,6 @@ msgstr "CijeliZaslon" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4910,11 +4906,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5053,25 +5049,25 @@ msgstr "" msgid "Game ID:" msgstr "Identifikacija Igre:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5084,7 +5080,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5325,7 +5321,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5379,11 +5375,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5771,7 +5767,7 @@ msgid "Interface" msgstr "Sučelje" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Interna LZO pogreška - komprimiranje nije uspjelo" @@ -5780,13 +5776,13 @@ msgstr "Interna LZO pogreška - komprimiranje nije uspjelo" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interni LZO Error - lzo_init() neuspjeh" @@ -5825,7 +5821,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5833,7 +5829,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6030,7 +6026,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6049,7 +6045,7 @@ msgstr "Korejski" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6338,7 +6334,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6382,7 +6378,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6395,10 +6391,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6446,7 +6438,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6458,11 +6450,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6550,7 +6542,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6725,7 +6717,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6862,7 +6854,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6897,7 +6889,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6917,7 +6909,7 @@ msgstr "" msgid "Not Set" msgstr "Nije Postavljeno" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6937,7 +6929,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6993,7 +6985,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7110,7 +7102,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opcije" @@ -7127,7 +7119,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Drugo" @@ -7306,7 +7298,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7339,12 +7331,12 @@ msgstr "Pokreni Video Snimak" msgid "Playback Options" msgstr "Postavke Reprodukcije" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Igrači" @@ -7373,7 +7365,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7635,7 +7627,7 @@ msgstr "" msgid "Record" msgstr "Snimi Video" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7865,7 +7857,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7874,7 +7866,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7932,7 +7924,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7973,7 +7965,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8005,6 +7997,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8059,11 +8055,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8089,7 +8085,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Mjesta Snimanja" @@ -8396,8 +8392,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8428,7 +8424,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8472,8 +8468,8 @@ msgstr "Odabrani profil kontrolera ne postoji." #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8537,7 +8533,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Poslati" @@ -8714,7 +8710,7 @@ msgstr "Pokaži GameCube" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9140,7 +9136,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9179,19 +9175,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9242,7 +9238,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9310,7 +9306,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9429,7 +9425,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9623,7 +9619,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9738,11 +9734,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9873,7 +9869,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10264,8 +10260,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Tradicionalni Kineski" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10421,18 +10417,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Nepoznato" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10943,7 +10939,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Upozorenje" @@ -11124,7 +11120,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11174,19 +11170,19 @@ msgstr "" msgid "Write to Window" msgstr "Pisati na Prozor" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11385,7 +11381,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11431,7 +11427,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11500,7 +11496,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11511,7 +11507,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/hu.po b/Languages/po/hu.po index d62ab59d15..77ddc3acb2 100644 --- a/Languages/po/hu.po +++ b/Languages/po/hu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Evin, 2016\n" "Language-Team: Hungarian (http://www.transifex.com/delroth/dolphin-emu/" @@ -173,19 +173,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -226,11 +226,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -265,19 +265,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -318,7 +318,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "&Bootolás DVD mentésből" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -354,7 +354,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -399,11 +399,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emuláció" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -451,11 +451,11 @@ msgstr "&Súgó" msgid "&Hotkey Settings" msgstr "&Gyorsbillentyű beállítások" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -499,7 +499,7 @@ msgstr "&Memória" msgid "&Movie" msgstr "&Film" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Alapbeállítások" @@ -574,7 +574,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -598,7 +598,7 @@ msgstr "" msgid "&Tools" msgstr "&Eszközök" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -669,7 +669,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -891,7 +891,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Egy lemez már behelyezés alatt." @@ -1308,7 +1308,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1400,7 +1400,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1417,7 +1417,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Képarány:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Vezérlő portjainak társítása" @@ -1470,7 +1470,7 @@ msgstr "Automatikus (640x528 többszöröse)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1731,7 +1731,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1777,12 +1777,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Puffer:" @@ -1887,7 +1887,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2014,7 +2022,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2119,7 +2127,7 @@ msgstr "Bezárás" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2255,7 +2263,7 @@ msgid "Confirm on Stop" msgstr "Megerősítés leállításkor" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2309,7 +2317,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2463,10 +2471,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Másolás" @@ -2609,7 +2617,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "A központi szerver nem található" @@ -3017,7 +3025,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3198,7 +3206,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "A Dolphin túl régi az átjárási szerverhez" @@ -3516,7 +3524,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Beágyazott képkocka puffer (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Üres" @@ -3807,7 +3815,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3832,11 +3840,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3898,31 +3906,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4099,7 +4107,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4159,7 +4167,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4175,7 +4183,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4337,7 +4345,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4612,10 +4620,6 @@ msgstr "" msgid "Filesystem" msgstr "Fájlrendszer" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4877,14 +4881,6 @@ msgstr "Teljes képernyő" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4917,11 +4913,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5060,25 +5056,25 @@ msgstr "Játék azonosító" msgid "Game ID:" msgstr "Játék azonosító:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5091,7 +5087,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5332,7 +5328,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5386,11 +5382,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5778,7 +5774,7 @@ msgid "Interface" msgstr "Felhasználói felület" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Belső LZO hiba - sikertelen tömörítés" @@ -5787,13 +5783,13 @@ msgstr "Belső LZO hiba - sikertelen tömörítés" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Belső LZO hiba - sikertelen lzo_init()" @@ -5832,7 +5828,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5840,7 +5836,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6038,7 +6034,7 @@ msgstr "Gombok" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Játékos kirúgása" @@ -6057,7 +6053,7 @@ msgstr "Korea" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6346,7 +6342,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6390,7 +6386,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6403,10 +6399,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 ellenőrzőösszeg" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6454,7 +6446,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6466,11 +6458,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6558,7 +6550,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6733,7 +6725,7 @@ msgstr "" msgid "Netherlands" msgstr "Hollandia" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6870,7 +6862,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6905,7 +6897,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Nem található undo.dtm, állás betöltésének megszakítása a videó " @@ -6927,7 +6919,7 @@ msgstr "" msgid "Not Set" msgstr "Nincs megadva" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Nem minden játékos rendelkezik a játékkal. Biztos elindítod?" @@ -6947,7 +6939,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7003,7 +6995,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7120,7 +7112,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Beállítások" @@ -7137,7 +7129,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Egyéb" @@ -7316,7 +7308,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7349,12 +7341,12 @@ msgstr "Felvétel lejátszása" msgid "Playback Options" msgstr "Visszajátszási beállítások" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Játékosok" @@ -7383,7 +7375,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7645,7 +7637,7 @@ msgstr "" msgid "Record" msgstr "Rögzítés" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7875,7 +7867,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Újra" @@ -7884,7 +7876,7 @@ msgstr "Újra" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7942,7 +7934,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7983,7 +7975,7 @@ msgstr "" msgid "Russia" msgstr "Oroszország" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8015,6 +8007,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8069,11 +8065,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8099,7 +8095,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Állapot mentése" @@ -8406,8 +8402,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8438,7 +8434,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8482,8 +8478,8 @@ msgstr "A megadott vezérlő profil nem létezik" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8547,7 +8543,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Küldés" @@ -8727,7 +8723,7 @@ msgstr "GameCube megjelenítése" msgid "Show Germany" msgstr "Németország megjelenítése" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9153,7 +9149,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9192,19 +9188,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9255,7 +9251,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9323,7 +9319,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9442,7 +9438,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9636,7 +9632,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "A behelyezni próbált lemez nem található." @@ -9751,11 +9747,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9886,7 +9882,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Nincs mit visszavonni!" @@ -10285,8 +10281,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Hagyományos kínai" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10442,18 +10438,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Ismeretlen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10965,7 +10961,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Figyelem" @@ -11146,7 +11142,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11196,19 +11192,19 @@ msgstr "" msgid "Write to Window" msgstr "Ablakba írás" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11408,7 +11404,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11454,7 +11450,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11523,7 +11519,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11534,7 +11530,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/it.po b/Languages/po/it.po index c6519f6153..c73bc58ae4 100644 --- a/Languages/po/it.po +++ b/Languages/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Mewster , 2013-2022\n" "Language-Team: Italian (http://www.transifex.com/delroth/dolphin-emu/" @@ -40,6 +40,11 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"Poiché questo titolo non è per le console Wii originali, Dolphin non è in " +"grado di assicurare che non sia stato manomesso, anche se la firma sembra " +"valida." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -193,19 +198,19 @@ msgstr "" "%2 oggetti\n" "Frame Corrente: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 è entrato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 è uscito" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 non è una ROM valida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 è in modalità golf" @@ -246,11 +251,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -285,19 +290,19 @@ msgstr "Indirizzi rimossi: %n" msgid "& And" msgstr "& And" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -338,7 +343,7 @@ msgstr "&Avvio Automatico" msgid "&Boot from DVD Backup" msgstr "Avvia da &Backup DVD" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&Finestra Senza Bordi" @@ -374,7 +379,7 @@ msgstr "&Clona..." msgid "&Code" msgstr "&Codice" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Connesso" @@ -419,11 +424,11 @@ msgstr "&Espelli Disco" msgid "&Emulation" msgstr "&Emulazione" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Esporta Salvataggio di Gioco..." -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Esporta Stato..." @@ -471,11 +476,11 @@ msgstr "&Aiuto" msgid "&Hotkey Settings" msgstr "Impostazioni &Tasti di Scelta Rapida" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importa Salvataggio di Gioco..." -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importa Stato..." @@ -487,7 +492,7 @@ msgstr "&Importa..." msgid "&Insert blr" msgstr "&Inserisci blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&Blending Interframe" @@ -519,7 +524,7 @@ msgstr "&Memoria" msgid "&Movie" msgstr "&Filmato" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&Muto" @@ -581,7 +586,7 @@ msgstr "&Rimuovi Codice" msgid "&Rename symbol" msgstr "&Rinomina simbolo" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Resetta" @@ -594,7 +599,7 @@ msgstr "&Resource Pack Manager" msgid "&Save Symbol Map" msgstr "&Salva Mappa dei Simboli" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "&Scansiona Carte e-Reader" @@ -618,7 +623,7 @@ msgstr "&Thread" msgid "&Tools" msgstr "&Strumenti" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Rimuovi ROM" @@ -689,7 +694,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -921,7 +926,7 @@ msgstr "" "Non sarà possibile ripristinare la versione precedente dopo l'installazione " "del WAD. Continuare?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Un disco è già in inserimento." @@ -1398,7 +1403,7 @@ msgstr "Sempre" msgid "Always Connected" msgstr "Sempre Connesso" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "Sempre in &Cima" @@ -1492,7 +1497,7 @@ msgstr "Sei sicuro di voler eliminare questo file?" msgid "Are you sure you want to delete this pack?" msgstr "Sei sicuro di voler disinstallare questo pack?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Sei sicuro di voler chiudere NetPlay?" @@ -1509,7 +1514,7 @@ msgstr "Rapporto d'aspetto" msgid "Aspect Ratio:" msgstr "Rapporto d'Aspetto:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Assegna Porte Controller" @@ -1563,7 +1568,7 @@ msgstr "Auto (Multiplo di 640x528)" msgid "Auto Update Settings" msgstr "Impostazioni Aggiornamento Automatico" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1837,7 +1842,7 @@ msgstr "Interrompi" msgid "Breakpoint" msgstr "Punto di interruzione" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" "Raggiunto punto di interruzione! Comando di uscita dall'istruzione annullato." @@ -1884,12 +1889,12 @@ msgstr "Sfoglia Sessioni %NetPlay..." msgid "Buffer Size:" msgstr "Dimensione Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Dimensione del buffer cambiata a %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -2006,7 +2011,15 @@ msgstr "Tempo di calibrazione" msgid "Call display list at %1 with size %2" msgstr "Chiamata display list a %1 con dimensione %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Stack di chiamate" @@ -2146,7 +2159,7 @@ msgstr "Cambiare i trucchi avrà effetto soltanto dopo aver riavviato il gioco." msgid "Channel Partition (%1)" msgstr "Partizione Canale (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2253,7 +2266,7 @@ msgstr "Chiudi" msgid "Co&nfiguration" msgstr "Co&nfigurazione" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Codice" @@ -2396,7 +2409,7 @@ msgid "Confirm on Stop" msgstr "Arresto su Conferma" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Conferma" @@ -2450,7 +2463,7 @@ msgstr "Connettersi a internet per avviare l'aggiornamento online di sistema?" msgid "Connected" msgstr "Connesso" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Connessione" @@ -2627,10 +2640,10 @@ msgstr "" "Conversione in corso...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Copia" @@ -2806,7 +2819,7 @@ msgstr "" "Se è così, allora potresti dover reimpostare la posizione della memory card " "nelle opzioni." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Impossibile raggiungere il server centrale" @@ -3056,7 +3069,7 @@ msgstr "Riduci IR" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "Slot Stato Selezionato Precedente" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3242,7 +3255,7 @@ msgstr "" "\n" "Vuoi davvero passare a Direct3D 11? Nel dubbio, seleziona 'No'." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "Dis&connesso" @@ -3450,7 +3463,7 @@ msgstr "Dolphin non è riuscito a completare l'azione richiesta." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin è un emulatore di GameCube e Wii gratuito e open-source." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin è troppo vecchio per il server traversal" @@ -3799,7 +3812,7 @@ msgstr "Espelli Disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Vuoto" @@ -4133,7 +4146,7 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4158,11 +4171,11 @@ msgstr "Inserisci l'indirizzo del modulo RSO:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4226,31 +4239,31 @@ msgstr "" "Errore: Dopo \"{0}\", trovato {1} ({2:#x}) invece del save marker {3} ({4:" "#x}). Interruzione del caricamento dello stato di gioco..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Errore: GBA{0} non è riuscito a creare il core" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare il BIOS in {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare la ROM in {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Errore: GBA{0} non è riuscito a caricare il salvataggio in {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire il BIOS in {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire la ROM in {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Errore: GBA{0} non è riuscito ad aprire il salvataggio in {1}" @@ -4449,7 +4462,7 @@ msgstr "Estensione Input di Movimento" msgid "Extension Motion Simulation" msgstr "Estensione Simulazione di Movimento" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Esterno" @@ -4511,7 +4524,7 @@ msgstr "" "Fallita apertura della memory card:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Fallito l'inserimento di questa sessione all'indice NetPlay: %1" @@ -4527,7 +4540,7 @@ msgstr "Impossibile richiedere l'interfaccia per il ponte BT: {0}" msgid "Failed to connect to Redump.org" msgstr "Impossibile connettersi a Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Impossibile connettersi al server: %1" @@ -4711,7 +4724,7 @@ msgstr "" "Impossibile caricare {0}. Se stai utilizzando Windows 7, prova a installare " "l'aggiornamento KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -5012,10 +5025,6 @@ msgstr "" msgid "Filesystem" msgstr "Filesystem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtra Simboli" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtri" @@ -5305,14 +5314,6 @@ msgstr "Schermo Intero" msgid "Function" msgstr "Funzione" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Chiamanti di funzione" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Chiamate di funzione" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funzioni" @@ -5345,11 +5346,11 @@ msgstr "Volume GBA" msgid "GBA Window Size" msgstr "Dimensioni Finestra GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "Cambiata ROM GBA%1 in \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "ROM GBA%1 disabilitata" @@ -5517,15 +5518,15 @@ msgstr "ID Gioco" msgid "Game ID:" msgstr "ID Gioco:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Stato del Gioco" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Cambiato gioco in \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5534,11 +5535,11 @@ msgstr "" "Proprietà, vai alla scheda Verifica e seleziona Verifica Integrità per " "controllare l'hash." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "Il gioco ha un diverso numero di disco" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "Il gioco ha una revisione differente" @@ -5553,7 +5554,7 @@ msgstr "" "Gioco sovrascritto con un altro salvataggio. Corruzione in posizione {0:#x}, " "{1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "La regione del gioco non coincide" @@ -5799,7 +5800,7 @@ msgstr "Nascondi Sessioni In-Game" msgid "Hide Incompatible Sessions" msgstr "Nascondi Sessioni Incompatibili" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Nascondi GBA Remoti" @@ -5857,11 +5858,11 @@ msgstr "" "Adatto a giochi casual con più di 3 giocatori, ma potenzialmente instabile " "su connessioni ad alta latenza." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Autorità input host disattivata" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Autorità input host attivata" @@ -6192,7 +6193,7 @@ msgstr "Aumenta IR" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "Slot Stato Selezionato Successivo" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6320,7 +6321,7 @@ msgid "Interface" msgstr "Interfaccia" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Errore Interno LZO - compressione non riuscita" @@ -6329,7 +6330,7 @@ msgstr "Errore Interno LZO - compressione non riuscita" msgid "Internal LZO Error - decompression failed" msgstr "Errore Interno LZO - decompressione non riuscita" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6337,7 +6338,7 @@ msgstr "" "Errore Interno LZO - decompressione non riuscita ({0}) ({1}, {2})\n" "Prova a caricare di nuovo lo stato di salvataggio" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Errore Interno LZO - lzo_init() fallito" @@ -6376,7 +6377,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Pack non valido %1 fornito: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "ID Giocatore non valido" @@ -6384,7 +6385,7 @@ msgstr "ID Giocatore non valido" msgid "Invalid RSO module address: %1" msgstr "Indirizzo del modulo RSO non valido: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Stack di chiamate non valido" @@ -6586,7 +6587,7 @@ msgstr "Tasti" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Kicka Giocatore" @@ -6605,7 +6606,7 @@ msgstr "Coreano" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "C&arica ROM..." @@ -6905,7 +6906,7 @@ msgstr "" "Carica mod grafiche da User/Load/GraphicsMods/.

Nel " "dubbio, lascia deselezionato." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Locale" @@ -6953,7 +6954,7 @@ msgstr "" msgid "Loop" msgstr "Loop" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Persa la connessione al server NetPlay..." @@ -6966,10 +6967,6 @@ msgstr "Bassa" msgid "Lowest" msgstr "Più bassa" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Checksum MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -7022,7 +7019,7 @@ msgstr "Gestisci NAND" msgid "Manual Texture Sampling" msgstr "Texture Sampling Manuale" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mappatura" @@ -7034,11 +7031,11 @@ msgstr "Maschera ROM" msgid "Match Found" msgstr "Trovata Corrispondenza" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Buffer Massimo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Dimensione massima del buffer cambiata a %1" @@ -7134,7 +7131,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Discordanza tra le strutture dati interne." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7326,7 +7323,7 @@ msgstr "Impostazioni NetPlay" msgid "Netherlands" msgstr "Olanda" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay desincronizzato su NetPlay_GetButtonPress()" @@ -7465,7 +7462,7 @@ msgstr "Nessun gioco in esecuzione." msgid "No issues have been detected." msgstr "Non sono stati rilevati problemi." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "Non sono stati trovati giochi compatibili" @@ -7504,7 +7501,7 @@ msgstr "Nessuna registrazione caricata." msgid "No save data found." msgstr "Non sono stati trovati dati di salvataggio." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Non è stato possibile trovare il file undo.dtm, l'annullamento del " @@ -7527,7 +7524,7 @@ msgstr "Nord America" msgid "Not Set" msgstr "Non Impostato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Non tutti i giocatori hanno il gioco. Vuoi davvero continuare?" @@ -7551,7 +7548,7 @@ msgstr "" "Non ci sono abbastanza file liberi nella memory card di destinazione. Ne " "sono necessari almeno %n." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "Non trovato" @@ -7609,7 +7606,7 @@ msgstr "Orientamento Nunchuk" msgid "Nunchuk Stick" msgstr "Levetta Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7730,7 +7727,7 @@ msgstr "Operatori" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opzioni" @@ -7747,7 +7744,7 @@ msgstr "Orbita" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Altro" @@ -7926,7 +7923,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Scegli un font di debug" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7959,12 +7956,12 @@ msgstr "Riproduci Registrazione" msgid "Playback Options" msgstr "Opzioni di Riproduzione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Giocatore" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Giocatori" @@ -7994,7 +7991,7 @@ msgstr "ROM Porta %1:" msgid "Port:" msgstr "Porta:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "Rilevato possibile desync: %1 potrebbe aver desyncato al frame %2" @@ -8269,7 +8266,7 @@ msgstr "Centra" msgid "Record" msgstr "Registra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Registra Input" @@ -8510,7 +8507,7 @@ msgstr "Ripristina Predefiniti" msgid "Restore instruction" msgstr "Ripristina istruzione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Riprova" @@ -8519,7 +8516,7 @@ msgstr "Riprova" msgid "Return Speed" msgstr "Velocità di Ritorno" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revisione" @@ -8577,7 +8574,7 @@ msgstr "Rotazione a Sinistra" msgid "Roll Right" msgstr "Rotazione a Destra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ID Stanza" @@ -8623,7 +8620,7 @@ msgstr "Avvia i Core GBA in Thread Dedicati" msgid "Russia" msgstr "Russia" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "Scheda SD" @@ -8655,6 +8652,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8709,11 +8710,11 @@ msgid "Save File to" msgstr "Salva con nome" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Salvataggio di Gioco" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "File di Salvataggio di Gioco (*.sav);;Tutti i File (*)" @@ -8739,7 +8740,7 @@ msgstr "Salva File Registrazione Come" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Salva Stato di Gioco" @@ -9054,8 +9055,8 @@ msgid "Select a Directory" msgstr "Seleziona una Directory" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9086,7 +9087,7 @@ msgstr "Seleziona un gioco" msgid "Select a title to install to NAND" msgstr "Seleziona un titolo da installare su NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Seleziona Carte e-Reader" @@ -9130,8 +9131,8 @@ msgstr "Il profilo controller selezionato non esiste" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Il gioco selezionato non esiste nella lista dei giochi!" @@ -9227,7 +9228,7 @@ msgstr "" "più compatibile.

Nel dubbio, seleziona OpenGL." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Invia" @@ -9418,7 +9419,7 @@ msgstr "Mostra GameCube" msgid "Show Germany" msgstr "Mostra Germania" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Mostra Overlay Modalità Golf" @@ -9877,7 +9878,7 @@ msgstr "Avvia con le Patch Riivolution" msgid "Start with Riivolution Patches..." msgstr "Avvia con le Patch Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Gioco avviato" @@ -9916,19 +9917,19 @@ msgstr "Esci dall'Istruzione" msgid "Step Over" msgstr "Esegui Istruzione" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Uscito con successo dall'istruzione!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Scaduto tempo di uscita dall'istruzione!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Esecuzione dell'istruzione in corso..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Istruzione eseguita con successo!" @@ -9979,7 +9980,7 @@ msgstr "Interrompi Riproduzione/Registrazione Input" msgid "Stop Recording" msgstr "Ferma Registrazione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Gioco fermato" @@ -10057,7 +10058,7 @@ msgstr "Stilo" msgid "Success" msgstr "Completato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Inserito con successo nell'indice NetPlay" @@ -10184,7 +10185,7 @@ msgid "Symbol name:" msgstr "Nome del simbolo:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Simboli" @@ -10398,7 +10399,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Impossibile leggere il disco (a {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Impossibile trovare il disco che stava per essere inserito." @@ -10538,11 +10539,11 @@ msgstr "" "\n" "(MSAA con {0} sample trovato nel framebuffer di default)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Gli hash non coincidono!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Gli hash coincidono!" @@ -10693,7 +10694,7 @@ msgstr "La partizione {0} non è correttamente allineata." msgid "There are too many partitions in the first partition table." msgstr "Ci sono troppe partizioni nella prima tabella delle partizioni." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Non c'è nulla da annullare!" @@ -11147,8 +11148,8 @@ msgstr "Tocco" msgid "Traditional Chinese" msgstr "Cinese Tradizionale" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Errore Traversal" @@ -11332,18 +11333,18 @@ msgstr "" msgid "United States" msgstr "Stati Uniti" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Sconosciuto" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando DVD {0:08x} sconosciuto - errore fatale" @@ -11943,7 +11944,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Attenzione" @@ -12166,7 +12167,7 @@ msgstr "" "focus. Puoi impostare un hotkey per sbloccarlo." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Dimensioni Finestra" @@ -12216,19 +12217,19 @@ msgstr "Scrivi su Log e Interrompi" msgid "Write to Window" msgstr "Scrivi in Finestra" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Numero del disco errato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "Hash errato" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Regione errata" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Revisione errata" @@ -12470,7 +12471,7 @@ msgstr "default" msgid "disconnected" msgstr "disconnesso" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "Carte e-Reader (*.raw);;Tutti i File (*)" @@ -12516,7 +12517,7 @@ msgstr "ultimo valore" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12589,7 +12590,7 @@ msgstr "{0} ha fallito la sincronizzazione dei codici." msgid "{0} failed to synchronize." msgstr "{0} ha fallito la sincronizzazione." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12603,7 +12604,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} blocchi su {1}. Rapporto di compressione {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} non è una directory, spostato in *.original" diff --git a/Languages/po/ja.po b/Languages/po/ja.po index c5e46a4791..90b77f9b00 100644 --- a/Languages/po/ja.po +++ b/Languages/po/ja.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: DanbSky , 2015-2022\n" "Language-Team: Japanese (http://www.transifex.com/delroth/dolphin-emu/" @@ -202,19 +202,19 @@ msgstr "" "%2 オブジェクト\n" "現在のフレーム: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 が入室しました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 が退室しました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 がゴルフ中" @@ -255,11 +255,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -294,19 +294,19 @@ msgstr "" msgid "& And" msgstr "& And(論理積)" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -347,7 +347,7 @@ msgstr "&Automatic Start" msgid "&Boot from DVD Backup" msgstr "DVDバックアップから起動(&B)" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -383,7 +383,7 @@ msgstr "クローン(&C)..." msgid "&Code" msgstr "&Code" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "接続(&C)" @@ -428,11 +428,11 @@ msgstr "ディスクの取り出し(&E)" msgid "&Emulation" msgstr "エミュレーション(&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -480,11 +480,11 @@ msgstr "ヘルプ(&H)" msgid "&Hotkey Settings" msgstr "ホットキーのカスタマイズ(&H)" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -496,7 +496,7 @@ msgstr "インポート...(&I)" msgid "&Insert blr" msgstr "&Insert blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -528,7 +528,7 @@ msgstr "&Memory" msgid "&Movie" msgstr "記録(&M)" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "ミュート(&M)" @@ -590,7 +590,7 @@ msgstr "コードを削除(&R)" msgid "&Rename symbol" msgstr "&Rename symbol" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "リセット(&R)" @@ -603,7 +603,7 @@ msgstr "リソースパックマネージャー(&R)" msgid "&Save Symbol Map" msgstr "&Save Symbol Map" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -627,7 +627,7 @@ msgstr "&Threads" msgid "&Tools" msgstr "ツール(&T)" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "ROMを取り外してリセット(&U)" @@ -698,7 +698,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -928,7 +928,7 @@ msgstr "" "\n" "このWADのバージョンで上書きしますか?元に戻すことはできません!" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "ディスクは既に挿入されています。" @@ -1396,7 +1396,7 @@ msgstr "常に表示" msgid "Always Connected" msgstr "常時接続状態として扱う" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1491,7 +1491,7 @@ msgstr "このタイトルの実体ファイルを削除しますか?" msgid "Are you sure you want to delete this pack?" msgstr "このリソースパックを削除しますか?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "ネットプレイを終了しますか?" @@ -1508,7 +1508,7 @@ msgstr "アスペクト比" msgid "Aspect Ratio:" msgstr "アスペクト比:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "コントローラ割り当て設定" @@ -1563,7 +1563,7 @@ msgstr "自動 (ゲーム解像度の倍数)" msgid "Auto Update Settings" msgstr "Dolphinの自動更新に関する設定" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1834,7 +1834,7 @@ msgstr "Break" msgid "Breakpoint" msgstr "Breakpoint" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Breakpoint encountered! Step out aborted." @@ -1880,12 +1880,12 @@ msgstr "ネットプレイセッションブラウザ(&N)" msgid "Buffer Size:" msgstr "バッファサイズ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "バッファサイズが変更されました: %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "バッファ:" @@ -1998,7 +1998,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Callstack" @@ -2130,7 +2138,7 @@ msgstr "変更されたチート内容は次回のゲーム開始時に反映さ msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "チャット欄" @@ -2236,7 +2244,7 @@ msgstr "閉じる" msgid "Co&nfiguration" msgstr "Dolphinの設定(&N)" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Code" @@ -2372,7 +2380,7 @@ msgid "Confirm on Stop" msgstr "動作停止時に確認" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "確認" @@ -2426,7 +2434,7 @@ msgstr "インターネットに接続してWiiのシステム更新を行いま msgid "Connected" msgstr "Connected" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2596,10 +2604,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "コピー" @@ -2750,7 +2758,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Couldn't look up central server" @@ -3171,7 +3179,7 @@ msgstr "" "本当に Direct3D 11 を使いますか?\n" "よく分からない場合、「いいえ」を選択してください。" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3368,7 +3376,7 @@ msgstr "要求された操作を完了することができませんでした。 msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin is a free and open-source GameCube and Wii emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphinのバージョンが古すぎます" @@ -3705,7 +3713,7 @@ msgstr "ディスクの取り出し" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (内蔵フレームバッファ)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "空き" @@ -4026,7 +4034,7 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4051,11 +4059,11 @@ msgstr "Enter the RSO module address:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4116,31 +4124,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Error: GBA{0} failed to create core" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4321,7 +4329,7 @@ msgstr "拡張コントローラ モーション(外部入力)" msgid "Extension Motion Simulation" msgstr "拡張コントローラ モーション" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "External" @@ -4383,7 +4391,7 @@ msgstr "" "メモリカードを開くことに失敗\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4399,7 +4407,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "Redump.org に接続できませんでした" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "サーバー %1 に接続できませんでした" @@ -4564,7 +4572,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4846,10 +4854,6 @@ msgstr "Filesize in header mismatches actual card size." msgid "Filesystem" msgstr "構造" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filter Symbols" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "フィルタ" @@ -5131,14 +5135,6 @@ msgstr "全画面" msgid "Function" msgstr "Function" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Function callers" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Function calls" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "制御構造" @@ -5171,11 +5167,11 @@ msgstr "GBA 音量" msgid "GBA Window Size" msgstr "GBA 画面サイズ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBAのROMを %1 から \"%2\" へ変更" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBAのROM %1 を無効化" @@ -5333,25 +5329,25 @@ msgstr "ゲームID" msgid "Game ID:" msgstr "ゲームID" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "状態" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "次のゲームに変更 \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5364,7 +5360,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5609,7 +5605,7 @@ msgstr "プレイ中のセッションを隠す" msgid "Hide Incompatible Sessions" msgstr "互換性のないセッションを隠す" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "リモート先のGBAを隠す" @@ -5667,11 +5663,11 @@ msgstr "" "す\n" "3人以上の環境で、通信が不安定な場合やレイテンシが大きい場合に効果的です" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Host Input Authority が無効になりました" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Host Input Authority が有効になりました" @@ -6107,7 +6103,7 @@ msgid "Interface" msgstr "表示" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Internal LZO Error - compression failed" @@ -6116,7 +6112,7 @@ msgstr "Internal LZO Error - compression failed" msgid "Internal LZO Error - decompression failed" msgstr "Internal LZO Error - compression failed" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6124,7 +6120,7 @@ msgstr "" "Internal LZO Error - decompression failed ({0}) ({1}, {2})\n" "もう一度ステートロードを試してください" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internal LZO Error - lzo_init() failed" @@ -6163,7 +6159,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "無効なリソースパック %1 が与えられました:%2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "無効なプレイヤーID" @@ -6171,7 +6167,7 @@ msgstr "無効なプレイヤーID" msgid "Invalid RSO module address: %1" msgstr "Invalid RSO module address: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Invalid callstack" @@ -6371,7 +6367,7 @@ msgstr "キー" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "選択したプレイヤーをキック" @@ -6390,7 +6386,7 @@ msgstr "韓国語" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6689,7 +6685,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "IPアドレスと使用ポート番号" @@ -6737,7 +6733,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "ネットプレイサーバーへの接続が失われました..." @@ -6750,10 +6746,6 @@ msgstr "小" msgid "Lowest" msgstr "低" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5チェックサム" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6805,7 +6797,7 @@ msgstr "Wii NANDの管理" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "コントローラ割当位置" @@ -6817,11 +6809,11 @@ msgstr "" msgid "Match Found" msgstr "Match Found" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "最大バッファサイズ:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "最大バッファサイズが変更されました: %1" @@ -6918,7 +6910,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Mismatch between internal data structures." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7096,7 +7088,7 @@ msgstr "ネットプレイ《セットアップ》" msgid "Netherlands" msgstr "オランダ" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay has desynced in NetPlay_GetButtonPress()" @@ -7233,7 +7225,7 @@ msgstr "" msgid "No issues have been detected." msgstr "問題は見つかりませんでした" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -7271,7 +7263,7 @@ msgstr "記録ファイルが読み込まれていません" msgid "No save data found." msgstr "セーブデータが見つかりませんでした" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "undo.dtm ファイルが見つかりません。desync を防止するためステートロードの取消" @@ -7293,7 +7285,7 @@ msgstr "北アメリカ" msgid "Not Set" msgstr "未定義" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "このタイトルを持っていないプレイヤーがいます。続けますか?" @@ -7317,7 +7309,7 @@ msgstr "" "インポート先のメモリーカードの追加可能ファイル数が不足しています。最低でも " "%n ファイルの空きが必要です" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7373,7 +7365,7 @@ msgstr "ヌンチャク モーションセンサー" msgid "Nunchuk Stick" msgstr "ヌンチャクスティック" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7494,7 +7486,7 @@ msgstr "演算子" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "設定" @@ -7511,7 +7503,7 @@ msgstr "Orbital" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "その他" @@ -7690,7 +7682,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Pick a debug font" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7723,12 +7715,12 @@ msgstr "録画ファイルを再生" msgid "Playback Options" msgstr "再生に関する設定" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "プレイヤー名" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "プレイヤー数" @@ -7757,7 +7749,7 @@ msgstr "Port %1 のROM:" msgid "Port:" msgstr "ポート:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -8031,7 +8023,7 @@ msgstr "リセット" msgid "Record" msgstr "録画" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "コントローラ操作を記録" @@ -8273,7 +8265,7 @@ msgstr "" msgid "Restore instruction" msgstr "Restore instruction" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "再試行" @@ -8282,7 +8274,7 @@ msgstr "再試行" msgid "Return Speed" msgstr "戻りの速度" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "使用バージョンとOS" @@ -8340,7 +8332,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ルームID" @@ -8381,7 +8373,7 @@ msgstr "Run GBA Cores in Dedicated Threads" msgid "Russia" msgstr "ロシア" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SDカード" @@ -8413,6 +8405,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "シリアルポート1" @@ -8467,11 +8463,11 @@ msgid "Save File to" msgstr "次の場所へ保存" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8497,7 +8493,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "ステートセーブ" @@ -8807,8 +8803,8 @@ msgid "Select a Directory" msgstr "フォルダを選択" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8839,7 +8835,7 @@ msgstr "タイトルを選択" msgid "Select a title to install to NAND" msgstr "NANDにインストールするタイトルを選択" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8883,8 +8879,8 @@ msgstr "選択されたプロファイルは存在しません" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "選択されたゲームがゲームリストに存在しません!" @@ -8977,7 +8973,7 @@ msgstr "" "うまく動作するものを選んでください

よく分からなけれ" "ば、【OpenGL】を選択してください" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "送信" @@ -9157,7 +9153,7 @@ msgstr "ゲームキューブ" msgid "Show Germany" msgstr "ドイツ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Show Golf Mode Overlay" @@ -9607,7 +9603,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "ゲームを開始" @@ -9646,19 +9642,19 @@ msgstr "Step Out" msgid "Step Over" msgstr "Step Over" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Step out successful!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Step out timed out!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Step over in progress..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Step successful!" @@ -9709,7 +9705,7 @@ msgstr "操作の再生/記録を停止" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "ゲームを終了" @@ -9787,7 +9783,7 @@ msgstr "スタイラス" msgid "Success" msgstr "完了" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9909,7 +9905,7 @@ msgid "Symbol name:" msgstr "Symbol name:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symbols" @@ -10109,7 +10105,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "The disc could not be read (at {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -10230,11 +10226,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "ハッシュは一致しませんでした" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "全てのハッシュが一致!" @@ -10373,7 +10369,7 @@ msgstr "The {0} partition is not properly aligned." msgid "There are too many partitions in the first partition table." msgstr "There are too many partitions in the first partition table." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "取り消すものがありません!" @@ -10790,8 +10786,8 @@ msgstr "タッチボード" msgid "Traditional Chinese" msgstr "繁体字中国語" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10968,18 +10964,18 @@ msgstr "" msgid "United States" msgstr "米国" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "フィルタ無し" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11516,7 +11512,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "警告" @@ -11699,7 +11695,7 @@ msgstr "" "出せないようにします。この設定はホットキーで解除が可能です" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "画面サイズ" @@ -11749,19 +11745,19 @@ msgstr "Write to Log and Break" msgid "Write to Window" msgstr "ウィンドウに出力" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11963,7 +11959,7 @@ msgstr "既定" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -12009,7 +12005,7 @@ msgstr "" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12080,7 +12076,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12091,7 +12087,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/ko.po b/Languages/po/ko.po index 32dae0fad2..a3c235aa18 100644 --- a/Languages/po/ko.po +++ b/Languages/po/ko.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Siegfried, 2013-2022\n" "Language-Team: Korean (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -194,19 +194,19 @@ msgstr "" "%2 오브젝트(들)\n" "현재 프레임: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 가 참가했습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 가 떠났습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 는 적합한 롬이 아닙니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 은 지금 골프중입니다" @@ -247,11 +247,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -286,19 +286,19 @@ msgstr "%n 주소(들)이 지워졌습니다." msgid "& And" msgstr "& 그리고" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -339,7 +339,7 @@ msgstr "자동 시작 (&A)" msgid "&Boot from DVD Backup" msgstr "DVD 백업에서 부트(&B)" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "틀 없는 창(&B)" @@ -375,7 +375,7 @@ msgstr "복제... (&C)" msgid "&Code" msgstr "코드 (&C)" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "연결된(&C)" @@ -420,11 +420,11 @@ msgstr "디스크 꺼내기(&E)" msgid "&Emulation" msgstr "에뮬레이션(&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "게임 저장 내보내기...(&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "상태 내보내기...(&E)" @@ -472,11 +472,11 @@ msgstr "도움말(&H)" msgid "&Hotkey Settings" msgstr "단축키 설정(&H)" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "게임 저장 가져오기...(&I)" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "상태 가져오기...(&I)" @@ -488,7 +488,7 @@ msgstr "가져오기... (&I)" msgid "&Insert blr" msgstr "blr 삽입 (&I)" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "프레임간 혼합(&I)" @@ -520,7 +520,7 @@ msgstr "메모리(&M)" msgid "&Movie" msgstr "무비(&M)" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "음소거(&M)" @@ -582,7 +582,7 @@ msgstr "코드 제거 (&R)" msgid "&Rename symbol" msgstr "부호 이름 바꾸기 (&R)" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "리셋(&R)" @@ -595,7 +595,7 @@ msgstr "리소스 팩 매니저(&R)" msgid "&Save Symbol Map" msgstr "부호 맵 저장 (&S)" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "e-Reader 카드 스캔...(&S)" @@ -619,7 +619,7 @@ msgstr "쓰레드(&T)" msgid "&Tools" msgstr "도구(&T)" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "롬 언로드(&U)" @@ -690,7 +690,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -921,7 +921,7 @@ msgstr "" "\n" "이 WAD 를 설치하면 되돌릴 수 없게 바꾸게 됩니다. 계속합니까?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "디스크가 이미 삽입되려는 중입니다." @@ -1388,7 +1388,7 @@ msgstr "항상" msgid "Always Connected" msgstr "항상 연결됨" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "항상 위에(&T)" @@ -1482,7 +1482,7 @@ msgstr "이 파일을 정말로 삭제하시겠습니까?" msgid "Are you sure you want to delete this pack?" msgstr "이 팩을 정말로 삭제하시겠습니까?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "정말로 넷플레이를 종료하고 싶습니까?" @@ -1499,7 +1499,7 @@ msgstr "종횡비" msgid "Aspect Ratio:" msgstr "종횡비:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "컨트롤러 포트 할당" @@ -1552,7 +1552,7 @@ msgstr "자동 (640x528의 배수)" msgid "Auto Update Settings" msgstr "설정 자동 업데이트" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1824,7 +1824,7 @@ msgstr "중단" msgid "Breakpoint" msgstr "중단점" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "중단점을 만났습니다! 스텝 나가기가 중단되었습니다." @@ -1870,12 +1870,12 @@ msgstr "넷플레이 세션들 둘러보기...(&N)" msgid "Buffer Size:" msgstr "버퍼 크기:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "버퍼 크기가 %1 로 변경되었습니다" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "버퍼:" @@ -1990,7 +1990,15 @@ msgstr "측정 기간" msgid "Call display list at %1 with size %2" msgstr "%1 에 %2 크기로 디스플레이 목록 불러오기" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "콜스텍" @@ -2124,7 +2132,7 @@ msgstr "치트 변경은 게임을 재시작해야만 효과가 반영될 것입 msgid "Channel Partition (%1)" msgstr "채널 파티션 (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "대화" @@ -2231,7 +2239,7 @@ msgstr "닫기" msgid "Co&nfiguration" msgstr "환경설정(&n)" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "코드" @@ -2367,7 +2375,7 @@ msgid "Confirm on Stop" msgstr "멈출 때 확인" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "확정" @@ -2421,7 +2429,7 @@ msgstr "인터넷에 연결하여 온라인 시스템 업데이트를 하시겠 msgid "Connected" msgstr "연결되었습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "연결중" @@ -2594,10 +2602,10 @@ msgstr "" "변환중...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "복사" @@ -2769,7 +2777,7 @@ msgstr "" "에뮬레이터 디렉토리를 이동한 후에 이 메시지를 받고 있나요?\n" "그렇다면, 옵션에서 메모리카드 위치를 재지정해야 합니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "중앙 서버를 찾을 수 없습니다" @@ -3199,7 +3207,7 @@ msgstr "" "\n" "정말 Direct3D 11로 전환하고 싶습니까? 잘 모르겠으면, '아니오'를 선택하세요." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "연결 끊어진(&c)" @@ -3405,7 +3413,7 @@ msgstr "돌핀이 요청된 액션 완수에 실패했습니다." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "돌핀은 무료이고 오픈-소스 게임큐브 및 Wii 에뮬레이터입니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "횡단 서버에 비해 돌핀이 너무 구 버전입니다." @@ -3748,7 +3756,7 @@ msgstr "디스크 꺼내기" msgid "Embedded Frame Buffer (EFB)" msgstr "내장형 프레임 버퍼 (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "비어있음" @@ -4074,7 +4082,7 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4099,11 +4107,11 @@ msgstr "RSO 모듈 주소를 입력:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4166,31 +4174,31 @@ msgstr "" "오류: \"{0}\" 뒤에, {1} ({2:#x}) 를 발견하였습니다, 저장 표식 {3} ({4:#x}) 대" "신에. 상태 저장 로드를 취소합니다..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "에러: GBA{0} 코어 생성에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "에러: GBA{0} {1} 에서 바이오스 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "에러: GBA{0} {1} 에서 롬 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "에러: GBA{0} {1} 에서 저장 로드에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "에러: GBA{0} {1} 에서 바이오스 열기에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "에러: GBA{0} {1} 에서 롬 열기에 실패했습니다" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "에러: GBA{0} {1} 에서 저장 열기에 실패했습니다" @@ -4385,7 +4393,7 @@ msgstr "확장 모션 입력" msgid "Extension Motion Simulation" msgstr "확장 모션 시뮬레이션" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "외부의" @@ -4447,7 +4455,7 @@ msgstr "" "메모리 카드 열기에 실패했습니다:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "넷플레이 목록 : %1 에 이 세션을 추가하는데에 실패했습니다" @@ -4463,7 +4471,7 @@ msgstr "블투 패스쓰루용 인터페이스 요청에 실패했습니다: {0} msgid "Failed to connect to Redump.org" msgstr "Redump.org 연결에 실패했습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "서버 연결에 실패했습니다: %1" @@ -4642,7 +4650,7 @@ msgstr "" "{0} 로드에 실패했습니다. 윈도우 7을 사용중이면, KB4019990 업데이트 패키지를 " "설치해보세요." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4932,10 +4940,6 @@ msgstr "헤더안 파일크기가 실제 카드 크기와 맞지 않습니다." msgid "Filesystem" msgstr "파일 시스템" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "부호들 필터" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "필터들" @@ -5220,14 +5224,6 @@ msgstr "전체화면" msgid "Function" msgstr "함수" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "함수 호출자" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "함수 호출" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "함수들" @@ -5260,11 +5256,11 @@ msgstr "GBA 볼륨" msgid "GBA Window Size" msgstr "GBA 창 크기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 롬이 \"%2\" 로 변경되었습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBA%1 롬이 비활성화되었습니다" @@ -5431,15 +5427,15 @@ msgstr "게임 ID" msgid "Game ID:" msgstr "게임 ID:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "게임 상태" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "게임이 \"%1\" 로 변경되었습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5447,11 +5443,11 @@ msgstr "" "게임 파일이 다른 해시를 가지고 있습니다; 그걸 우-클릭; 속성 선택, 검증 탭으" "로 전환, 그리고 해시를 확인하기위해 무결성 검증을 선택하세요." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "게임이 다른 디스크 넘버를 가지고 있습니다" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "게임이 다른 개정을 가지고 있습니다" @@ -5465,7 +5461,7 @@ msgid "" msgstr "" "게임이 다른 게임 저장과 함께 덮어썼습니다. {0:#x}, {1:#x} 앞쪽에 데이터 오염" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "게임 지역이 맞지 않습니다" @@ -5710,7 +5706,7 @@ msgstr "인-게임 세션 숨기기" msgid "Hide Incompatible Sessions" msgstr "비호환 세션들 숨기기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "원격 GBA 숨기기" @@ -5768,11 +5764,11 @@ msgstr "" "3+ 플레이어들과 함께하는 캐주얼 게임에 알맞음, 아마도 불안정하거나 높은 지연 " "연결상에서." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "호스트 입력 권한 꺼짐" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "호스트 입력 권한 켜짐" @@ -6221,7 +6217,7 @@ msgid "Interface" msgstr "인터페이스" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "내부 LZO 오류 - 압축 실패했습니다" @@ -6230,7 +6226,7 @@ msgstr "내부 LZO 오류 - 압축 실패했습니다" msgid "Internal LZO Error - decompression failed" msgstr "내부 LZO 오류 - 압축해제를 실패했습니다" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6238,7 +6234,7 @@ msgstr "" "내부 LZO 오류 - 압축풀기 실패했습니다({0}) ({1}, {2}) \n" "상태 로딩을 다시 해보세요" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "내부 LZO 오류 - lzo_init() 실패했습니다" @@ -6277,7 +6273,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "부적합한 %1 이 제공됨: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "부적합한 플레이어 아이디" @@ -6285,7 +6281,7 @@ msgstr "부적합한 플레이어 아이디" msgid "Invalid RSO module address: %1" msgstr "부적합 RSO 모듈 주소: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "부적합한 스텍호출" @@ -6484,7 +6480,7 @@ msgstr "키" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "플레이어 차기" @@ -6503,7 +6499,7 @@ msgstr "한국어" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "롬 로드...(&L)" @@ -6804,7 +6800,7 @@ msgstr "" "

잘 모르겠으면, 체크 해제해 두세요." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "지역" @@ -6851,7 +6847,7 @@ msgstr "" msgid "Loop" msgstr "루프" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "넷플레이 서버 연결을 잃었습니다..." @@ -6864,10 +6860,6 @@ msgstr "낮은" msgid "Lowest" msgstr "최하" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 체크섬" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6919,7 +6911,7 @@ msgstr "NAND 관리" msgid "Manual Texture Sampling" msgstr "수동 텍스처 샘플링" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "매핑" @@ -6931,11 +6923,11 @@ msgstr "마스크 롬" msgid "Match Found" msgstr "일치 발견" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "최대 버퍼:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "최대 버퍼 크기가 %1 로 변경되었습니다" @@ -7026,7 +7018,7 @@ msgstr "헤더안 빈 블락 숫자와 실제 사용되지 않은 블락수가 msgid "Mismatch between internal data structures." msgstr "내부 데이터 구조들끼리 맞지 않습니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7213,7 +7205,7 @@ msgstr "넷플레이 설정" msgid "Netherlands" msgstr "네덜란드" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "넷플레이가 NetPlay_GetButtonPress() 에서 비동기화되었습니다" @@ -7350,7 +7342,7 @@ msgstr "구동중인 게임이 없습니다." msgid "No issues have been detected." msgstr "이슈가 감지되지 않았습니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "매칭하는 게임을 찾지 못했습니다" @@ -7388,7 +7380,7 @@ msgstr "로드된 녹화가 없습니다." msgid "No save data found." msgstr "발견된 저장 데이터가 없습니다." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "undo.dtm 이 없습니다, 무비 갈림을 막기위해서 상태로드 되돌리기를 취소합니다" @@ -7409,7 +7401,7 @@ msgstr "북 아메리카" msgid "Not Set" msgstr "설정 안됨" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" "모든 플레이어가 그 게임을 가지고 있지는 않습니다. 정말 시작하고 싶습니까?" @@ -7434,7 +7426,7 @@ msgstr "" "해당 메모리 카드상에 빈 파일들이 충분하지 않습니다. 적어도 %n 빈 파일(들)이 " "요구됩니다." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "발견되지 않음" @@ -7490,7 +7482,7 @@ msgstr "눈챠쿠 방향" msgid "Nunchuk Stick" msgstr "눈챠쿠 스틱" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7611,7 +7603,7 @@ msgstr "연산자들" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "옵션" @@ -7628,7 +7620,7 @@ msgstr "궤도" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "다른 것들" @@ -7807,7 +7799,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "디버그 폰트 고르기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "핑" @@ -7840,12 +7832,12 @@ msgstr "(입력) 기록 재생" msgid "Playback Options" msgstr "재생 옵션" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "플레이어" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "플레이어" @@ -7874,7 +7866,7 @@ msgstr "포트 %1 롬:" msgid "Port:" msgstr "포트:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "가능한 비동기 감지됨: %1 가 프레임 %2 에서 비동기화된 듯 합니다" @@ -8148,7 +8140,7 @@ msgstr "리센터" msgid "Record" msgstr "녹화" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "입력 녹화" @@ -8389,7 +8381,7 @@ msgstr "기본값 복원" msgid "Restore instruction" msgstr "명령 복구" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "재시도" @@ -8398,7 +8390,7 @@ msgstr "재시도" msgid "Return Speed" msgstr "돌아오기 속도" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "개정" @@ -8456,7 +8448,7 @@ msgstr "왼쪽 구르기" msgid "Roll Right" msgstr "오른쪽 구르기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "룸 ID" @@ -8501,7 +8493,7 @@ msgstr "GBA 코어들을 전용 쓰레드로 구동합니다" msgid "Russia" msgstr "러시아" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD 카드" @@ -8533,6 +8525,10 @@ msgstr "선택" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8587,11 +8583,11 @@ msgid "Save File to" msgstr "에 파일 저장" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "게임 저장" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "게임 저장 파일들 (*.sav);;모든 파일들 (*)" @@ -8617,7 +8613,7 @@ msgstr "녹화 파일을 다른 이름으로 저장" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "상태 저장" @@ -8929,8 +8925,8 @@ msgid "Select a Directory" msgstr "디렉토리 선택" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8961,7 +8957,7 @@ msgstr "게임 선택" msgid "Select a title to install to NAND" msgstr "NAND 에 설치할 타이틀 선택" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "e-Reader 카드 선택" @@ -9005,8 +9001,8 @@ msgstr "선택된 컨트롤러 프로파일이 존재하지 않습니다" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "선택된 게임은 게임 목록에 존재하지 않습니다!" @@ -9098,7 +9094,7 @@ msgstr "" "가 가장 적은 것을 고르세요.

잘 모르겠으면, OpenGL을 " "선택하세요." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "보내기" @@ -9287,7 +9283,7 @@ msgstr "게임큐브" msgid "Show Germany" msgstr "독일" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "골프 모드 오버레이 보기" @@ -9744,7 +9740,7 @@ msgstr "Riivolution 패치들로 시작" msgid "Start with Riivolution Patches..." msgstr "Riivolution 패치들로 시작..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "시작된 게임" @@ -9783,19 +9779,19 @@ msgstr "스텝 나가기" msgid "Step Over" msgstr "스텝 넘어가기" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "스텝 나가기 성공!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "스텝 나가기 시간 초과!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "스텝 넘어가기 진행 중..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "스텝 성공!" @@ -9846,7 +9842,7 @@ msgstr "입력 재생/기록 중지" msgid "Stop Recording" msgstr "녹화 중지" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "멈춰진 게임" @@ -9922,7 +9918,7 @@ msgstr "스타일러스" msgid "Success" msgstr "성공" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "넷플레이 목록에 성공적으로 추가되었습니다" @@ -10049,7 +10045,7 @@ msgid "Symbol name:" msgstr "부호 이름:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "부호들" @@ -10258,7 +10254,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "디스크가 읽혀질 수 없었습니다 (위치 {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "삽입되려 했던 디스크를 찾을 수 없습니다." @@ -10396,11 +10392,11 @@ msgstr "" "\n" "({0} 을 지닌 MSAA 샘플이 기본 프레임버퍼상에서 발견되었습니다)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "해쉬가 일치하지 않습니다!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "해쉬가 일치합니다!" @@ -10547,7 +10543,7 @@ msgstr "{0} 파티션은 올바르게 정렬되어 있지 않습니다." msgid "There are too many partitions in the first partition table." msgstr "첫 파티션 테이블에 너무 많은 파티션들이 있습니다." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "되돌릴 것이 없습니다!" @@ -10990,8 +10986,8 @@ msgstr "터치" msgid "Traditional Chinese" msgstr "전통 중국어" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "횡단 에러" @@ -11171,18 +11167,18 @@ msgstr "" msgid "United States" msgstr "미국" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "알려지지 않음" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "알려지지 않은 DVD 명령 {0:08x} - 치명적 오류" @@ -11762,7 +11758,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "경고" @@ -11981,7 +11977,7 @@ msgstr "" "키 설정을 할 수 있습니다." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "창 크기" @@ -12031,19 +12027,19 @@ msgstr "로그에 쓰고 중단" msgid "Write to Window" msgstr "창에 쓰기" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "잘못된 디스크 넘버" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "잘못된 해시" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "잘못된 지역" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "잘못된 개정" @@ -12281,7 +12277,7 @@ msgstr "기본값" msgid "disconnected" msgstr "연결이 끊겼습니다" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "e-Reader 카드 (*.raw);;모든 파일 (*)" @@ -12327,7 +12323,7 @@ msgstr "마지막 값" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12399,7 +12395,7 @@ msgstr " {0} 코드 동기화에 실패했습니다." msgid "{0} failed to synchronize." msgstr "{0} 동기화에 실패했습니다." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12412,7 +12408,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{1} 블락들의 {0}. 압축 비율 {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} 는 디렉토리가 아닙니다, *.original 로 이동되었습니다." diff --git a/Languages/po/ms.po b/Languages/po/ms.po index 3ce63961ff..9cdec891bf 100644 --- a/Languages/po/ms.po +++ b/Languages/po/ms.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: abuyop , 2018\n" "Language-Team: Malay (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -187,19 +187,19 @@ msgstr "" "%2 objek(s)\n" "Bingkai Semasa: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -240,11 +240,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -279,19 +279,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -332,7 +332,7 @@ msgstr "&Mula Automatik" msgid "&Boot from DVD Backup" msgstr "&But dari Sandar DVD" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -368,7 +368,7 @@ msgstr "&Klon..." msgid "&Code" msgstr "K&od" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -413,11 +413,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulasi" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -465,11 +465,11 @@ msgstr "&Bantuan" msgid "&Hotkey Settings" msgstr "Tetapan Kekunci Pa&nas" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -481,7 +481,7 @@ msgstr "&Import..." msgid "&Insert blr" msgstr "&Sisip blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -513,7 +513,7 @@ msgstr "&Ingatan" msgid "&Movie" msgstr "Ce&reka" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -575,7 +575,7 @@ msgstr "B&uang Kod" msgid "&Rename symbol" msgstr "&Nama semula simbol" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "T&etap Semula" @@ -588,7 +588,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "&Simpan Peta Simbol" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -612,7 +612,7 @@ msgstr "" msgid "&Tools" msgstr "Ala&tan" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -683,7 +683,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -905,7 +905,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Cakera A sedia dimasukkan." @@ -1334,7 +1334,7 @@ msgstr "" msgid "Always Connected" msgstr "Sentiasa Bersambung" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1426,7 +1426,7 @@ msgstr "Anda pasti ingin memadam fail ini?" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Anda pasti ingin keluar dari NetPlay?" @@ -1443,7 +1443,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Nisbah Bidang:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Umpuk Port Kawalan" @@ -1496,7 +1496,7 @@ msgstr "Auto (640x528 berbilang)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1759,7 +1759,7 @@ msgstr "Henti" msgid "Breakpoint" msgstr "Titik Henti" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Titik henti dihadapi! Langkah keluar dihenti paksa." @@ -1805,12 +1805,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Saiz Penimbal:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Saiz penimbal berubah ke %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Penimbal:" @@ -1915,7 +1915,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Tindanan Panggilan" @@ -2042,7 +2050,7 @@ msgstr "Pengubahanan tipu hanya berkesan bila permainan dimulakan semula." msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Sembang" @@ -2149,7 +2157,7 @@ msgstr "Tutup" msgid "Co&nfiguration" msgstr "Ko&nfigurasi" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kod" @@ -2285,7 +2293,7 @@ msgid "Confirm on Stop" msgstr "Sahkan bil Berhenti" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Pengesahan" @@ -2339,7 +2347,7 @@ msgstr "Sambung ke Internet dan lakukan kemaskini sistem atas-talian?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2493,10 +2501,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Salin" @@ -2647,7 +2655,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Tidak dapat cari pelayan pusat" @@ -3055,7 +3063,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3239,7 +3247,7 @@ msgstr "Dolphin gagal menyelesaikan tindakan yang dipinta." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin ialah emulator GameCube dan Wii bebas dan bersumber-terbuka." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin terlalu tua untuk pelayan traversal" @@ -3557,7 +3565,7 @@ msgstr "Lenting Cakera" msgid "Embedded Frame Buffer (EFB)" msgstr "Penimbal Bingkai Terbenam (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Kosong" @@ -3850,7 +3858,7 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3875,11 +3883,11 @@ msgstr "Masukkan alamat modul RSO:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3939,31 +3947,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4144,7 +4152,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4204,7 +4212,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4220,7 +4228,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4384,7 +4392,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4659,10 +4667,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistem Fail" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Tapis Simbol" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4926,14 +4930,6 @@ msgstr "SkrPenuh" msgid "Function" msgstr "Fungsi" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Pemanggil fungsi" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Panggilan fungsi" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4966,11 +4962,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5109,25 +5105,25 @@ msgstr "ID Permainan" msgid "Game ID:" msgstr "ID Permainan:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Permainan bertukar ke \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5140,7 +5136,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5381,7 +5377,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5435,11 +5431,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5839,7 +5835,7 @@ msgid "Interface" msgstr "Antaramuka" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Ralat LZO Dalaman - pemampatan gagal" @@ -5848,13 +5844,13 @@ msgstr "Ralat LZO Dalaman - pemampatan gagal" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Ralat LZO Dalaman - lzo_init() gagal" @@ -5893,7 +5889,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "ID Pemain Tidak Sah" @@ -5901,7 +5897,7 @@ msgstr "ID Pemain Tidak Sah" msgid "Invalid RSO module address: %1" msgstr "Alamat modul RSO tidak sah: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Tindanan panggilan tidak sah" @@ -6098,7 +6094,7 @@ msgstr "Kekunci" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Tendang Pemain" @@ -6117,7 +6113,7 @@ msgstr "Korea" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6406,7 +6402,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6450,7 +6446,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Sambung dengan pelayan NetPlay terputus..." @@ -6463,10 +6459,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Hasil tambah semak MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6514,7 +6506,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6526,11 +6518,11 @@ msgstr "" msgid "Match Found" msgstr "Padanan Ditemui" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6622,7 +6614,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6797,7 +6789,7 @@ msgstr "" msgid "Netherlands" msgstr "Belanda" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay telah dinyahsegerak dalam NetPlay_GetButtonPress()" @@ -6934,7 +6926,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Tiada isu dikesan." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6969,7 +6961,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Tiada undo.dtm ditemui, menghenti paksa buat asal keadaan muat untuk " @@ -6991,7 +6983,7 @@ msgstr "" msgid "Not Set" msgstr "Tidak Ditetapkan" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Bukan semua pemain memilik permainan. Anda pasti mahu mulakannya?" @@ -7011,7 +7003,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7067,7 +7059,7 @@ msgstr "Orientasi Nunchuk" msgid "Nunchuk Stick" msgstr "Bidak Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7186,7 +7178,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Pilihan" @@ -7203,7 +7195,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Lain-lain" @@ -7382,7 +7374,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Ambil satu fon nyahpepijat" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7415,12 +7407,12 @@ msgstr "Main Rakaman" msgid "Playback Options" msgstr "Pilihan Main Balik" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Pemain" @@ -7449,7 +7441,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Nyahsegerak berkemungkinan dikesan: %1 mungkin telah dinyahsegerak pada " @@ -7715,7 +7707,7 @@ msgstr "Tengahkan semula" msgid "Record" msgstr "Rakam" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7945,7 +7937,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Cuba Lagi" @@ -7954,7 +7946,7 @@ msgstr "Cuba Lagi" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -8012,7 +8004,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ID Bilik" @@ -8053,7 +8045,7 @@ msgstr "" msgid "Russia" msgstr "Rusia" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8085,6 +8077,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8139,11 +8135,11 @@ msgid "Save File to" msgstr "Simpan Fail ke" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8169,7 +8165,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Simpan Keadaan" @@ -8478,8 +8474,8 @@ msgid "Select a Directory" msgstr "Pilih satu Direktori" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8510,7 +8506,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "Pilih satu tajuk untuk dipasang ke dalam NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8554,8 +8550,8 @@ msgstr "Profil pengawal terpilih tidak wujud" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8619,7 +8615,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Hantar" @@ -8799,7 +8795,7 @@ msgstr "Tunjuk GameCube" msgid "Show Germany" msgstr "Tunjuk Jerman" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9227,7 +9223,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Permainan bermula" @@ -9266,19 +9262,19 @@ msgstr "Langkah Keluar" msgid "Step Over" msgstr "Langkah Melalui" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Langkah keluar berjaya!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Langkah keluar tamat masa!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Langkah atas masih berjalan..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Langkah berjaya!" @@ -9329,7 +9325,7 @@ msgstr "Henti Memainkan/Merakam Input" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Permainan berhenti" @@ -9397,7 +9393,7 @@ msgstr "" msgid "Success" msgstr "Berjaya" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9516,7 +9512,7 @@ msgid "Symbol name:" msgstr "Nama simbol:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Simbol" @@ -9712,7 +9708,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Cakera yang hendak dimasukkan tidak ditemui." @@ -9835,11 +9831,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Cincangan tidak sepadan!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Cincangan sepadan!" @@ -9972,7 +9968,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Tiada apa hendak dibuat asal!" @@ -10379,8 +10375,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Cina Tradisional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Ralat Traversal" @@ -10542,18 +10538,18 @@ msgstr "" msgid "United States" msgstr "Amerika Syarikat" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Tidak diketahui" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11068,7 +11064,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Amaran" @@ -11249,7 +11245,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11299,19 +11295,19 @@ msgstr "Tulis ke Log dan Henti" msgid "Write to Window" msgstr "Tulis ke Tetingkap" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11514,7 +11510,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11560,7 +11556,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11629,7 +11625,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11640,7 +11636,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/nb.po b/Languages/po/nb.po index 366f1357f4..0cde10ee91 100644 --- a/Languages/po/nb.po +++ b/Languages/po/nb.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: d1fcc80a35d5442129c384ac221ef98f_d2a8fa7 " ", 2015\n" @@ -202,19 +202,19 @@ msgstr "" "%2 objekt(er)\n" "Nåværende bilderute: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 ble med" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 har forlatt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 golfer nå" @@ -255,11 +255,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -294,19 +294,19 @@ msgstr "" msgid "& And" msgstr "& Og" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -347,7 +347,7 @@ msgstr "&Automatisk start" msgid "&Boot from DVD Backup" msgstr "&Start opp fra DVD-sikkerhetskopi" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -383,7 +383,7 @@ msgstr "&Dupliser..." msgid "&Code" msgstr "&Kode" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -428,11 +428,11 @@ msgstr "&Løs ut disk" msgid "&Emulation" msgstr "&Emulering" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -480,11 +480,11 @@ msgstr "&Hjelp" msgid "&Hotkey Settings" msgstr "Innstillinger for &hurtigtaster" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -496,7 +496,7 @@ msgstr "&Importer..." msgid "&Insert blr" msgstr "&Sett inn blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -528,7 +528,7 @@ msgstr "&Minne" msgid "&Movie" msgstr "&Film" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -590,7 +590,7 @@ msgstr "&Fjern kode" msgid "&Rename symbol" msgstr "&Gi symbol nytt navn" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Tilbakestill" @@ -603,7 +603,7 @@ msgstr "&Ressurspakke-behandler" msgid "&Save Symbol Map" msgstr "&Lagre symbolkart" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -627,7 +627,7 @@ msgstr "&Tråder" msgid "&Tools" msgstr "&Verktøy" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -698,7 +698,7 @@ msgid "--> %1" msgstr "→ %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -923,7 +923,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "En plate er i ferd med å bli satt inn." @@ -1362,7 +1362,7 @@ msgstr "" msgid "Always Connected" msgstr "Alltid tilkoblet" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1454,7 +1454,7 @@ msgstr "Er du sikker på at du vil slette denne filen?" msgid "Are you sure you want to delete this pack?" msgstr "Er du sikker på at du vil slette denne pakken?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Er du sikker på at du vil avslutte NetPlay?" @@ -1471,7 +1471,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Billedforhold:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Velg kontrollerporter" @@ -1524,7 +1524,7 @@ msgstr "Auto (Multiplum av 640x528)" msgid "Auto Update Settings" msgstr "Auto-oppdater innstillinger" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1791,7 +1791,7 @@ msgstr "Stopp" msgid "Breakpoint" msgstr "Stoppunkt" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Stoppunkt nådd! Utstepping avbrutt." @@ -1837,12 +1837,12 @@ msgstr "Utforsk &NetPlay-sesjoner..." msgid "Buffer Size:" msgstr "Hurtiglagerstørrelse:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Bufferstørrelse endret til %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Mellomlager:" @@ -1947,7 +1947,15 @@ msgstr "Kalibreringsperiode" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Kallstakk" @@ -2075,7 +2083,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2182,7 +2190,7 @@ msgstr "Lukk" msgid "Co&nfiguration" msgstr "&Oppsett" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kode" @@ -2318,7 +2326,7 @@ msgid "Confirm on Stop" msgstr "Bekreft ved stans" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Bekreftelse" @@ -2372,7 +2380,7 @@ msgstr "Koble til Internett og utfør nettbasert systemoppdatering?" msgid "Connected" msgstr "Tilkoblet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2532,10 +2540,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopier" @@ -2686,7 +2694,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Kunne ikke finne sentral tjener" @@ -3094,7 +3102,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3277,7 +3285,7 @@ msgstr "Dolphin kunne ikke fullføre den forespurte handligen." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin er en fri og åpen kildekode-basert GameCube og Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin er for gammel for traverseringsserveren" @@ -3597,7 +3605,7 @@ msgstr "Løs ut disk" msgid "Embedded Frame Buffer (EFB)" msgstr "Eksternt bildemellomlager (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Tom" @@ -3890,7 +3898,7 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3915,11 +3923,11 @@ msgstr "Skriv inn RSO-moduladresse:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3980,31 +3988,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4185,7 +4193,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Ekstern" @@ -4247,7 +4255,7 @@ msgstr "" "Kunne ikke åpne minnekort:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Kunne ikke legge til denne sesjonen i NetPlay-indeksen: %1" @@ -4263,7 +4271,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Kunne ikke koble til server: %1" @@ -4427,7 +4435,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4708,10 +4716,6 @@ msgstr "" msgid "Filesystem" msgstr "Filsystem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtrer symboler" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtre" @@ -4977,14 +4981,6 @@ msgstr "Fullskjerm" msgid "Function" msgstr "Funksjon" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Funksjonskallere" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Funksjonskall" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funksjoner" @@ -5017,11 +5013,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5160,25 +5156,25 @@ msgstr "Spill-ID" msgid "Game ID:" msgstr "Spill-ID:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Spillstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Spill endret til \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5191,7 +5187,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5432,7 +5428,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "Gjem ikke-kompatible sesjoner" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5486,11 +5482,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Vertsinndataautoritet deaktivert" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Vertsinndataautoritet aktivert" @@ -5889,7 +5885,7 @@ msgid "Interface" msgstr "Grensesnitt" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Intern LZO-feil - komprimering mislyktes" @@ -5898,13 +5894,13 @@ msgstr "Intern LZO-feil - komprimering mislyktes" msgid "Internal LZO Error - decompression failed" msgstr "Intern LZO-feil - dekomprimering mislyktes" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Intern LZO-feil - lzo_init() mislyktes" @@ -5943,7 +5939,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Ugyldig Pakke %1 oppgitt: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Ugyldig spiller-ID" @@ -5951,7 +5947,7 @@ msgstr "Ugyldig spiller-ID" msgid "Invalid RSO module address: %1" msgstr "Ugyldig RSO-moduladresse: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Ugyldig kallstakk" @@ -6148,7 +6144,7 @@ msgstr "Nøkler" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Spark spiller" @@ -6167,7 +6163,7 @@ msgstr "Koreansk" msgid "L" msgstr "V" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6460,7 +6456,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Lokal" @@ -6504,7 +6500,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Mistet tilkobling til NetPlay-tjener…" @@ -6517,10 +6513,6 @@ msgstr "Lav" msgid "Lowest" msgstr "Lavest" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5-sjekksum" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6568,7 +6560,7 @@ msgstr "Administrer NAND" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mapping" @@ -6580,11 +6572,11 @@ msgstr "" msgid "Match Found" msgstr "Treff funnet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Maksimal Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Maksimum bufferstørrelse endret til %1" @@ -6676,7 +6668,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6851,7 +6843,7 @@ msgstr "NetPlay-innstillinger" msgid "Netherlands" msgstr "Nederland" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "NetPlay har desynkronisert i NetPlay_GetButtonPress()" @@ -6990,7 +6982,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Ingen feil har blitt oppdaget." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -7028,7 +7020,7 @@ msgstr "Ingen opptak lastet." msgid "No save data found." msgstr "Ingen lagringsfiler funnet." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Ingen undo.dtm funnet, avbryter angring av lasting av lagringsstadie for å " @@ -7050,7 +7042,7 @@ msgstr "Nord-Amerika" msgid "Not Set" msgstr "Ikke satt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Ikke alle spillere har spillet. Vil du virkelig starte?" @@ -7070,7 +7062,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7126,7 +7118,7 @@ msgstr "Nunchuk-orientering" msgid "Nunchuk Stick" msgstr "Nunchuck-Joystick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7247,7 +7239,7 @@ msgstr "Operatører" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Innstillinger" @@ -7264,7 +7256,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Andre" @@ -7444,7 +7436,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Velg en debug-font" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7477,12 +7469,12 @@ msgstr "Spill av opptak" msgid "Playback Options" msgstr "Avspillingsalterntiver" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Spiller" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Spillere" @@ -7511,7 +7503,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Potensiell desynkronisering oppdaget: %1 kan ha desynkroniser i bilde %2" @@ -7782,7 +7774,7 @@ msgstr "Sentrer igjen" msgid "Record" msgstr "Opptak" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Ta opp inndata" @@ -8012,7 +8004,7 @@ msgstr "" msgid "Restore instruction" msgstr "Tilbakestill instruksjon" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Forsøk igjen" @@ -8021,7 +8013,7 @@ msgstr "Forsøk igjen" msgid "Return Speed" msgstr "Returhastighet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revisjon" @@ -8079,7 +8071,7 @@ msgstr "Rull mot venstre" msgid "Roll Right" msgstr "Rull mot høyre" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Rom-ID" @@ -8120,7 +8112,7 @@ msgstr "" msgid "Russia" msgstr "Russland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-kort" @@ -8152,6 +8144,10 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8206,11 +8202,11 @@ msgid "Save File to" msgstr "Lagre fil til" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8236,7 +8232,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Lagre hurtiglagring" @@ -8548,8 +8544,8 @@ msgid "Select a Directory" msgstr "Velg mappe" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8580,7 +8576,7 @@ msgstr "Velg et spill" msgid "Select a title to install to NAND" msgstr "Velg en tittel å installere til NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8624,8 +8620,8 @@ msgstr "Valgt kontrolprofil finnes ikke" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Valgt spill eksisterer ikke i spillisten!" @@ -8689,7 +8685,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Send" @@ -8871,7 +8867,7 @@ msgstr "Vis GameCube" msgid "Show Germany" msgstr "Vis Tyskland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Vis golfmodusoverlegg" @@ -9301,7 +9297,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Startet spill" @@ -9340,19 +9336,19 @@ msgstr "Stepp ut" msgid "Step Over" msgstr "Stepp over" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Utstepping vellykket!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Utstepping tidsutløp!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Stepper over..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Stepp vellykket!" @@ -9403,7 +9399,7 @@ msgstr "Stopp avspilling/opptak av inndata" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Stoppet spill" @@ -9471,7 +9467,7 @@ msgstr "Penn" msgid "Success" msgstr "Vellykket" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Lagt til i NetPlay-indeksen" @@ -9590,7 +9586,7 @@ msgid "Symbol name:" msgstr "Symbolnavn:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symboler" @@ -9788,7 +9784,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Disken som skulle settes inn ble ikke funnet." @@ -9913,11 +9909,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Sjekksummene samsvarer ikke!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Sjekksummene samsvarer!" @@ -10061,7 +10057,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "Det er for mange partisjoner i den første partisjonstabellen." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Det er ingenting å angre!" @@ -10490,8 +10486,8 @@ msgstr "Berør" msgid "Traditional Chinese" msgstr "Tradisjonell kinesisk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Traverseringsfeil" @@ -10659,18 +10655,18 @@ msgstr "" msgid "United States" msgstr "USA" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Ukjent" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11183,7 +11179,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Advarsel" @@ -11366,7 +11362,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11416,19 +11412,19 @@ msgstr "Skriv til logg og stop" msgid "Write to Window" msgstr "Skriv til vindu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11633,7 +11629,7 @@ msgstr "" msgid "disconnected" msgstr "frakoblet" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11679,7 +11675,7 @@ msgstr "" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11748,7 +11744,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11759,7 +11755,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/nl.po b/Languages/po/nl.po index 32a6291cb4..e5ca5b0bbb 100644 --- a/Languages/po/nl.po +++ b/Languages/po/nl.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Miksel12 , 2021-2022\n" "Language-Team: Dutch (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -57,6 +57,10 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"Omdat deze titel niet voor retail Wii consoles is, kan Dolphin niet " +"garanderen dat er niet mee geknoeid is, zelfs als de signatuur geldig lijken." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -210,19 +214,19 @@ msgstr "" "%2 object(en)\n" "Huidige Frame: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 doet nu mee" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 is vertrokken" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 is geen geldige ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 is nu aan het golfen" @@ -263,11 +267,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -303,19 +307,19 @@ msgstr "%n adres(sen) is/zijn verwijderd." msgid "& And" msgstr "& En" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -356,7 +360,7 @@ msgstr "&Automatische Start" msgid "&Boot from DVD Backup" msgstr "&Opstarten vanaf DVD Backup" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&Randloos Venster" @@ -392,7 +396,7 @@ msgstr "&Clone..." msgid "&Code" msgstr "&Code" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Verbonden" @@ -437,11 +441,11 @@ msgstr "&Schijf Uitwerpen" msgid "&Emulation" msgstr "&Emulatie" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Exporteer Spel Save" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Exporteer State..." @@ -489,11 +493,11 @@ msgstr "&Help" msgid "&Hotkey Settings" msgstr "&Sneltoets Instellingen" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importeer Spel Save" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importeer State..." @@ -505,7 +509,7 @@ msgstr "&Importeer..." msgid "&Insert blr" msgstr "&Voeg blr toe" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&Interframe Menging" @@ -537,7 +541,7 @@ msgstr "&Geheugen" msgid "&Movie" msgstr "&Opname" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&Dempen" @@ -599,7 +603,7 @@ msgstr "&Verwijder Code" msgid "&Rename symbol" msgstr "&Symbool hernoemen" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reset" @@ -612,7 +616,7 @@ msgstr "&Resourcepakket Beheer" msgid "&Save Symbol Map" msgstr "&Sla Symbol Map op" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "&Scan e-Reader Kaart(en)..." @@ -636,7 +640,7 @@ msgstr "&Threads" msgid "&Tools" msgstr "&Tools" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Leeg ROM" @@ -707,7 +711,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -938,7 +942,7 @@ msgstr "" "\n" "Het installeren van deze WAD zal het onherstelbaar vervangen. Doorgaan?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Er ligt al een schijf in de lade." @@ -1411,7 +1415,7 @@ msgstr "Altijd" msgid "Always Connected" msgstr "Altijd Verbonden" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "Altijd &Bovenop" @@ -1459,15 +1463,15 @@ msgstr "Elke Regio" #: Source/Core/DolphinQt/MenuBar.cpp:1608 msgid "Append signature to" -msgstr "Handtekening toevoegen aan" +msgstr "Voeg Signatuur toe aan" #: Source/Core/DolphinQt/MenuBar.cpp:990 msgid "Append to &Existing Signature File..." -msgstr "Toevoegen aan &Bestaand handtekeningsbestand..." +msgstr "Toevoegen aan &Bestaand Signatuurbestand..." #: Source/Core/DolphinQt/MenuBar.cpp:994 msgid "Appl&y Signature File..." -msgstr "Handtekeningsbestan&d Toepassen..." +msgstr "P&as Signatuur Toe..." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:308 msgid "" @@ -1487,7 +1491,7 @@ msgstr "Toepassen" #: Source/Core/DolphinQt/MenuBar.cpp:1631 msgid "Apply signature file" -msgstr "Handtekeningsbestand toepassen..." +msgstr "Pas signatuurbestand toe..." #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:92 msgid "Arbitrary Mipmap Detection" @@ -1505,7 +1509,7 @@ msgstr "Weet u zeker dat u dit bestand wilt verwijderen?" msgid "Are you sure you want to delete this pack?" msgstr "Weet u zeker dat u dit pakket wilt verwijderen?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Weet u zeker dat u NetPlay wilt afsluiten?" @@ -1522,7 +1526,7 @@ msgstr "Beeldverhouding" msgid "Aspect Ratio:" msgstr "Beeldverhouding:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Controllerpoorten Toewijzen" @@ -1577,7 +1581,7 @@ msgstr "Auto (Veelvoud van 640x528)" msgid "Auto Update Settings" msgstr "Instellingen voor automatisch bijwerken" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1849,7 +1853,7 @@ msgstr "Afbreken" msgid "Breakpoint" msgstr "Breakpoint" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Breekpunt tegengekomen! Uitstappen afgebroken." @@ -1895,12 +1899,12 @@ msgstr "Blader &NetPlay Sessies...." msgid "Buffer Size:" msgstr "Buffergrootte:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Buffergrootte gewijzigd naar %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -1951,7 +1955,7 @@ msgstr "C Stick" #: Source/Core/DolphinQt/MenuBar.cpp:989 msgid "C&reate Signature File..." -msgstr "Handtekeningsbestand Aanmaken..." +msgstr "M&aak Signatuurbestand aan..." #: Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp:549 msgid "CP register " @@ -2017,7 +2021,15 @@ msgstr "Kalibratieperiode" msgid "Call display list at %1 with size %2" msgstr "Roep weergave lijst op bij %1 met grootte %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Callstack" @@ -2156,7 +2168,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "Kanaal Partitie (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2263,7 +2275,7 @@ msgstr "Sluiten" msgid "Co&nfiguration" msgstr "Co&nfiguratie" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Code" @@ -2296,7 +2308,7 @@ msgstr "Codes ontvangen!" #: Source/Core/DolphinQt/MenuBar.cpp:992 msgid "Combine &Two Signature Files..." -msgstr "Twee &Handtekeningsbestanden Combineren..." +msgstr "Combineer &Twee Signatuurbestanden..." #. i18n: This is "common" as in "shared", not the opposite of "uncommon" #: Source/Core/DolphinQt/Config/CommonControllersWidget.cpp:27 @@ -2406,7 +2418,7 @@ msgid "Confirm on Stop" msgstr "Bevestiging bij Stop" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Bevestiging" @@ -2460,7 +2472,7 @@ msgstr "Verbinding maken met internet en een online systeemupdate uitvoeren?" msgid "Connected" msgstr "Verbonden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Verbinden" @@ -2636,10 +2648,10 @@ msgstr "" "Converteren...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopieer" @@ -2813,7 +2825,7 @@ msgstr "" "In dat geval moet u uw geheugenkaartlocatie opnieuw aangeven in de " "configuratie." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Kon de centrale server niet vinden" @@ -3063,7 +3075,7 @@ msgstr "Verlaag IR" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "Verlaag Geselecteerde State Slot" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3248,7 +3260,7 @@ msgstr "" "\n" "Wilt u echt Direct3D 11 gebruiken? In geval van twijfel 'Nee' selecteren." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "&Verbinding Verbroken" @@ -3408,11 +3420,11 @@ msgstr "Dolphin Mapbestand (*.map)" #: Source/Core/DolphinQt/MenuBar.cpp:69 msgid "Dolphin Signature CSV File" -msgstr "Dolphin Signatuur CSV Bestand" +msgstr "Dolphin CSV Signatuurbestand" #: Source/Core/DolphinQt/MenuBar.cpp:69 msgid "Dolphin Signature File" -msgstr "Dolphin Signatuur Bestand" +msgstr "Dolphin Signatuurbestand" #: Source/Core/DolphinQt/MainWindow.cpp:1704 #: Source/Core/DolphinQt/MainWindow.cpp:1775 @@ -3459,7 +3471,7 @@ msgstr "Dolphin kon de gevraagde actie niet voltooien." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin is een vrije en open-source GameCub- en Wii-emulator." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin is te oud voor de traversal server" @@ -3803,7 +3815,7 @@ msgstr "Schijf Uitwerpen" msgid "Embedded Frame Buffer (EFB)" msgstr "Embedded Frame Buffer (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Leeg" @@ -4137,7 +4149,7 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4162,11 +4174,11 @@ msgstr "Voer adres van de RSO-module in:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4230,31 +4242,31 @@ msgstr "" "Fout: Na \"{0}\", gevonden {1} ({2:#x}) in plaats van bewaar punt {3} ({4:" "#x}). Savestate laadactie wordt geannuleerd..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Fout: GBA{0} initialisatie mislukt " -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Fout: GBA{0} BIOS in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Fout: GBA{0} ROM in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Fout: GBA{0} save in {1} laden mislukt" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Fout: GBA{0} BIOS in {1} openen mislukt" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Fout: GBA{0} ROM in {1} openen mislukt" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Fout: GBA{0} save in {1} openen mislukt" @@ -4453,7 +4465,7 @@ msgstr "Extensie Bewegings-invoer" msgid "Extension Motion Simulation" msgstr "Extensie Bewegings-simulatie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Extern" @@ -4515,14 +4527,14 @@ msgstr "" "Openen van geheugenkaart mislukt:\n" "% 1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" "Het is niet gelukt om deze sessie aan de NetPlay index toe te voegen: %1" #: Source/Core/DolphinQt/MenuBar.cpp:1622 msgid "Failed to append to signature file '%1'" -msgstr "Kon handtekeningsbestand niet toevoegen aan bestand '%1'" +msgstr "Kon signatuurbestand niet toevoegen aan bestand '%1'" #: Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp:651 msgid "Failed to claim interface for BT passthrough: {0}" @@ -4532,7 +4544,7 @@ msgstr "Kon geen toegang krijgen tot de interface voor BT passthrough: {0}" msgid "Failed to connect to Redump.org" msgstr "Verbinden met Redump.org mislukt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Kon geen verbinding maken met server: %1" @@ -4714,7 +4726,7 @@ msgstr "" "Laden van {0} mislukt. Als u Windows 7 gebruikt, probeer dan het KB4019990 " "update pakket te installeren." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4838,7 +4850,7 @@ msgstr "Kon code map niet opslaan naar pad '%1'" #: Source/Core/DolphinQt/MenuBar.cpp:1595 msgid "Failed to save signature file '%1'" -msgstr "Kon handtekeningbestand '%1' niet opslaan" +msgstr "Kon signatuurbestand '%1' niet opslaan" #: Source/Core/DolphinQt/MenuBar.cpp:1574 msgid "Failed to save symbol map to path '%1'" @@ -4846,7 +4858,7 @@ msgstr "Kon symbool map niet opslaan naar pad '%1'" #: Source/Core/DolphinQt/MenuBar.cpp:1672 msgid "Failed to save to signature file '%1'" -msgstr "Kon niet opslaan naar handtekeningsbestand '%1'" +msgstr "Kon niet opslaan naar signatuurbestand '%1'" #: Source/Core/DolphinQt/ResourcePackManager.cpp:225 msgid "Failed to uninstall pack: %1" @@ -5006,10 +5018,6 @@ msgstr "" msgid "Filesystem" msgstr "Bestandssysteem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filter Symbolen" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filters" @@ -5299,14 +5307,6 @@ msgstr "Volledig Scherm" msgid "Function" msgstr "Functie" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Functieaanroepers" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Functieaanroepen" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Functies" @@ -5339,11 +5339,11 @@ msgstr "GBA Volume" msgid "GBA Window Size" msgstr "GBA Venster Grootte" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM verandert naar \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM uitgeschakeld" @@ -5511,15 +5511,15 @@ msgstr "Spel ID" msgid "Game ID:" msgstr "Spel ID:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Spelstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Spel gewijzigd naar \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5528,11 +5528,11 @@ msgstr "" "selecteer Eigenschappen, ga naar het tabblad Verifieer, en selecteer " "Verifieer Integriteit om de hash te controleren" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "Spel heeft een ander schijf nummer" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "Spel heeft een andere revisie" @@ -5545,7 +5545,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "Spel overschreven door een andere save. Data corruptie {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "Spel regio komt niet overeen" @@ -5792,7 +5792,7 @@ msgstr "Verberg In-Game Sessies" msgid "Hide Incompatible Sessions" msgstr "Verberg Incompatibele Sessies" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Verberg Externe GBAs" @@ -5850,11 +5850,11 @@ msgstr "" "maar de latentie voor anderen groter wordt. Geschikt voor casual spellen met " "3+ spelers, mogelijk op onstabiele of hoge latency-verbindingen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Host Invoer Autoriteit Uitgeschakeld" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Host Invoer Autoriteit Ingeschakeld" @@ -6183,7 +6183,7 @@ msgstr "Verhoog IR" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "Verhoog Geselecteerde State Slot" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6310,7 +6310,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Interne LZO fout - compressie is mislukt" @@ -6319,7 +6319,7 @@ msgstr "Interne LZO fout - compressie is mislukt" msgid "Internal LZO Error - decompression failed" msgstr "Interne LZO fout - decompressie is mislukt" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6327,7 +6327,7 @@ msgstr "" "Interne LZO fout - decompressie is mislukt ({0}) ({1}, {2}) \n" "Probeer de state opnieuw te laden" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Interne LZO fout - lzo_init() is mislukt" @@ -6366,7 +6366,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Ongeldige Pakket %1 ingevoerd: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Ongeldige Speler-ID" @@ -6374,7 +6374,7 @@ msgstr "Ongeldige Speler-ID" msgid "Invalid RSO module address: %1" msgstr "Ongeldig RSO-moduleadres: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Ongeldige callstack" @@ -6575,7 +6575,7 @@ msgstr "Toetsen" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Speler kicken" @@ -6594,7 +6594,7 @@ msgstr "Koreaans" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "L&aad ROM..." @@ -6894,7 +6894,7 @@ msgstr "" "Laadt grafische mods van User/Load/GraphicsMods/." "

In geval van twijfel leeg laten." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Lokaal" @@ -6941,7 +6941,7 @@ msgstr "" msgid "Loop" msgstr "Loop" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Verbinding met NetPlay-server verloren..." @@ -6954,10 +6954,6 @@ msgstr "Laag" msgid "Lowest" msgstr "Laagste" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 Controlesom" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -7009,7 +7005,7 @@ msgstr "Beheer NAND" msgid "Manual Texture Sampling" msgstr "Handmatige Texture Sampling" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mapping" @@ -7021,11 +7017,11 @@ msgstr "Mask ROM" msgid "Match Found" msgstr "Overeenkomst Gevonden" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Max Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Max buffergrootte gewijzigd naar %1" @@ -7119,7 +7115,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Verschil tussen interne data structuren." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7308,7 +7304,7 @@ msgstr "Netplay Instellingen" msgid "Netherlands" msgstr "Nederland" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Netplay heeft zich desynced in NetPlay_GetButtonPress()" @@ -7447,7 +7443,7 @@ msgstr "Er draait geen spel." msgid "No issues have been detected." msgstr "Er zijn geen problemen gedetecteerd." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "Geen overeenkomend spel gevonden" @@ -7485,7 +7481,7 @@ msgstr "Geen opname geladen." msgid "No save data found." msgstr "Geen save data gevonden." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Geen undo.dtm gevonden, het ongedaan maken van de state laden wordt " @@ -7507,7 +7503,7 @@ msgstr "Noord-Amerika" msgid "Not Set" msgstr "Niet ingesteld" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Niet alle spelers hebben het spel. Weet u zeker dat u wilt doorgaan?" @@ -7531,7 +7527,7 @@ msgstr "" "Niet genoeg vrije bestanden op de doelgeheugenkaart. Ten minste %n vrije " "bestand(en) vereist." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "Niet gevonden" @@ -7589,7 +7585,7 @@ msgstr "Nunchuk Oriëntatie" msgid "Nunchuk Stick" msgstr "Nunchuk Stick" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7710,7 +7706,7 @@ msgstr "Operators" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opties" @@ -7727,7 +7723,7 @@ msgstr "Orbitaal" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Overige" @@ -7906,7 +7902,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Kies een debug-lettertype" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7939,12 +7935,12 @@ msgstr "Speel Opname" msgid "Playback Options" msgstr "Terugspeel Opties" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Speler" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Spelers" @@ -7975,7 +7971,7 @@ msgstr "Port %1 ROM:" msgid "Port:" msgstr "Poort:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Mogelijke desync gedetecteerd: %1 heeft mogelijk sync verloren in frame %2" @@ -8252,7 +8248,7 @@ msgstr "Hercentreren" msgid "Record" msgstr "Opnemen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Invoer Opnemen" @@ -8495,7 +8491,7 @@ msgstr "Herstel Standaardinstellingen" msgid "Restore instruction" msgstr "Herstel instructie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Opnieuw" @@ -8504,7 +8500,7 @@ msgstr "Opnieuw" msgid "Return Speed" msgstr "Terugkeer Snelheid" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revisie" @@ -8562,7 +8558,7 @@ msgstr "Rol Links" msgid "Roll Right" msgstr "Rol Rechts" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Kamer ID" @@ -8608,7 +8604,7 @@ msgstr "Voer GBA Emulatie uit in Specifieke threads" msgid "Russia" msgstr "Rusland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-kaart" @@ -8640,6 +8636,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8694,11 +8694,11 @@ msgid "Save File to" msgstr "Bestand Opslaan in" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Spel Opslag" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Spel Save Bestanden (*.sav);;All Files (*)" @@ -8724,7 +8724,7 @@ msgstr "Sla Opnamebestand op Als" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Save State" @@ -8828,7 +8828,7 @@ msgstr "Sla mapbestand op" #: Source/Core/DolphinQt/MenuBar.cpp:1583 msgid "Save signature file" -msgstr "Sla handtekeningbestand op" +msgstr "Sla signatuurbestand op" #: Source/Core/Core/HotkeyManager.cpp:153 msgid "Save to Selected Slot" @@ -9038,8 +9038,8 @@ msgid "Select a Directory" msgstr "Selecteer een Map" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9070,7 +9070,7 @@ msgstr "Selecteer een Spel" msgid "Select a title to install to NAND" msgstr "Selecteer een titel om te installeren op de NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Selecteer e-Reader Kaarten" @@ -9114,8 +9114,8 @@ msgstr "Geselecteerde controller profiel bestaat niet" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Het geselecteerde spel bestaat niet in de spellijst!" @@ -9210,7 +9210,7 @@ msgstr "" "selecteren die het minst problematisch is.

In geval " "van twijfel OpenGL selecteren." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Verzend" @@ -9402,7 +9402,7 @@ msgstr "Toon GameCube" msgid "Show Germany" msgstr "Toon Duitsland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Toon Golf Modus Overlay" @@ -9602,7 +9602,7 @@ msgstr "Wii-afstandsbediening Zijwaarts" #: Source/Core/DolphinQt/MenuBar.cpp:973 msgid "Signature Database" -msgstr "Handtekeningdatabase" +msgstr "Signatuurdatabase" #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:140 #: Source/Core/DolphinQt/Debugger/MemoryWidget.cpp:204 @@ -9861,7 +9861,7 @@ msgstr "Start met Riivolution Patches" msgid "Start with Riivolution Patches..." msgstr "Start met Riivolution Patches..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Gestart spel" @@ -9900,19 +9900,19 @@ msgstr "Stap Uit" msgid "Step Over" msgstr "Stap Over" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Uitstappen succesvol!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Uitstappen timed out!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Overstappen in voortgang..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Stap succesvol!" @@ -9963,7 +9963,7 @@ msgstr "Stop Afspelen/Opnemen van Invoer" msgid "Stop Recording" msgstr "Stop Opname" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Gestopt spel" @@ -10041,7 +10041,7 @@ msgstr "Stylus" msgid "Success" msgstr "Geslaagd" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Succesvol aan NetPlay index toegevoegd" @@ -10161,14 +10161,14 @@ msgstr "" "\n" "Als er geen bestaat, kunt u er een genereren vanuit de Menubalk:\n" "Symbolen -> Genereer Symbolen Van ->\n" -"Adres | Handtekeningdatabase | RSO Modules" +"Adres | Signatuurdatabase | RSO Modules" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:736 msgid "Symbol name:" msgstr "Symboolnaam:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symbolen" @@ -10381,7 +10381,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Schijf kan niet worden gelezen (op {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" "De schijf die op het punt stond geplaatst te worden, kon niet worden " @@ -10525,11 +10525,11 @@ msgstr "" "\n" "(MSAA met {0} samples gevonden op de standaard framebuffer)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "De hashes komen niet overeen!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "De hashes komen overeen!" @@ -10682,7 +10682,7 @@ msgstr "De {0} partitie is niet goed uitgelijnd." msgid "There are too many partitions in the first partition table." msgstr "Er zijn te veel partities in de eerste partitietabel." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Er is niks om ongedaan te maken!" @@ -11138,8 +11138,8 @@ msgstr "Aanraking" msgid "Traditional Chinese" msgstr "Chinees (Traditioneel)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Traversalfout" @@ -11322,18 +11322,18 @@ msgstr "" msgid "United States" msgstr "Verenigde Staten" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Onbekend" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Onbekend DVD commando {0:08x} - fatale fout" @@ -11925,7 +11925,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Waarschuwing" @@ -12148,7 +12148,7 @@ msgstr "" "kunt een sneltoets instellen om deze te ontgrendelen." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Venster Grootte" @@ -12198,19 +12198,19 @@ msgstr "Schrijf naar Log en Breek af" msgid "Write to Window" msgstr "Schrijf naar Venster" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Verkeerde schijf nummer" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "Verkeerde hash" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Verkeerde regio" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Verkeerde revisie" @@ -12453,7 +12453,7 @@ msgstr "standaard" msgid "disconnected" msgstr "verbinding verbroken" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "e-Reader Kaarten (*.raw);;Alle Bestanden (*)" @@ -12499,7 +12499,7 @@ msgstr "laatste waarde" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12571,7 +12571,7 @@ msgstr "{0} kon codes niet synchroniseren." msgid "{0} failed to synchronize." msgstr "{0} kon niet synchroniseren." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12585,7 +12585,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} van {1} blokken. Compressieverhouding {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} was geen map, verplaatst naar *.original" diff --git a/Languages/po/pl.po b/Languages/po/pl.po index db4b962266..3cfffd3937 100644 --- a/Languages/po/pl.po +++ b/Languages/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Piotr Kolasiński Kolenda, 2021\n" "Language-Team: Polish (http://www.transifex.com/delroth/dolphin-emu/language/" @@ -204,19 +204,19 @@ msgstr "" "%2 obiekt(ów)\n" "Aktualna klatka: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 dołączył(a)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 wyszedł" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -257,11 +257,11 @@ msgstr "" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -296,19 +296,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -349,7 +349,7 @@ msgstr "&Automatyczny Start" msgid "&Boot from DVD Backup" msgstr "&Uruchom z kopii zapasowej DVD" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -385,7 +385,7 @@ msgstr "&Klonuj..." msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -430,11 +430,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulacja" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -482,11 +482,11 @@ msgstr "Po&moc" msgid "&Hotkey Settings" msgstr "Ustawienia &skrótów klawiaturowych" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -498,7 +498,7 @@ msgstr "&Importuj..." msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -530,7 +530,7 @@ msgstr "Pa&mięć" msgid "&Movie" msgstr "&Film" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -592,7 +592,7 @@ msgstr "&Usuń kod" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "Z&resetuj" @@ -605,7 +605,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -629,7 +629,7 @@ msgstr "" msgid "&Tools" msgstr "&Narzędzia" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -700,7 +700,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -922,7 +922,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Dysk już jest gotowy do włożenia." @@ -1352,7 +1352,7 @@ msgstr "" msgid "Always Connected" msgstr "Zawsze połączony" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1444,7 +1444,7 @@ msgstr "Czy jesteś pewien, że chcesz usunąć ten plik?" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Czy jesteś pewien, że chcesz zamknąć NetPlay?" @@ -1461,7 +1461,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Proporcje obrazu:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Przypisz porty kontrolerów" @@ -1514,7 +1514,7 @@ msgstr "Automatyczna (wielokrotność 640x528)" msgid "Auto Update Settings" msgstr "Ustawienia automatycznej aktualizacji" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1775,7 +1775,7 @@ msgstr "Przerwij" msgid "Breakpoint" msgstr "Punkt przerwania" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Napotkano punkt przerwania! Wyjście anulowane." @@ -1821,12 +1821,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Rozmiar bufora:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Rozmiar bufora zmieniono na %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Bufor:" @@ -1931,7 +1931,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2060,7 +2068,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Rozmówki" @@ -2165,7 +2173,7 @@ msgstr "Zamknij" msgid "Co&nfiguration" msgstr "Ko&nfiguracja" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kod" @@ -2301,7 +2309,7 @@ msgid "Confirm on Stop" msgstr "Potwierdź przy zatrzymaniu" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Potwierdzenie" @@ -2355,7 +2363,7 @@ msgstr "Połączyć z Internetem i przeprowadzić aktualizację systemu?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2509,10 +2517,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopiuj" @@ -2659,7 +2667,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3067,7 +3075,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3251,7 +3259,7 @@ msgstr "Nie udało się wykonać wymaganego zadania." msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin jest wolnym i otwartoźródłowym emulatorem GameCube'a oraz Wii." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3569,7 +3577,7 @@ msgstr "Wysuń dysk" msgid "Embedded Frame Buffer (EFB)" msgstr "Wbudowany bufor klatki (Embedded Frame Buffer - EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Pusty" @@ -3862,7 +3870,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3887,11 +3895,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3952,31 +3960,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4157,7 +4165,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4217,7 +4225,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4233,7 +4241,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4397,7 +4405,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4672,10 +4680,6 @@ msgstr "" msgid "Filesystem" msgstr "System plików" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtruj symbole" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4937,14 +4941,6 @@ msgstr "Pełny ekran" msgid "Function" msgstr "Funkcja" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Wywoływacze funkcji" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Wywoływania funkcji" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4977,11 +4973,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5120,25 +5116,25 @@ msgstr "ID gry" msgid "Game ID:" msgstr "ID gry:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Zmieniono grę na \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5151,7 +5147,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5392,7 +5388,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5446,11 +5442,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5847,7 +5843,7 @@ msgid "Interface" msgstr "Interfejs" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Wewnętrzny błąd LZO - kompresja nie powiodła się" @@ -5856,13 +5852,13 @@ msgstr "Wewnętrzny błąd LZO - kompresja nie powiodła się" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Wewnętrzny błąd LZO - lzo_init() nie powiodło się" @@ -5901,7 +5897,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5909,7 +5905,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6108,7 +6104,7 @@ msgstr "Klawisze" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Wyrzuć gracza" @@ -6127,7 +6123,7 @@ msgstr "Koreański" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6416,7 +6412,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6460,7 +6456,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6473,10 +6469,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Suma kontrolna MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6524,7 +6516,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6536,11 +6528,11 @@ msgstr "" msgid "Match Found" msgstr "Trafienie znalezione" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6628,7 +6620,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6803,7 +6795,7 @@ msgstr "" msgid "Netherlands" msgstr "Holandia" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6940,7 +6932,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Nie wykryto żadnych problemów" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6975,7 +6967,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6995,7 +6987,7 @@ msgstr "Ameryka Północna" msgid "Not Set" msgstr "Nieokreślona" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Nie wszyscy gracze mają tę grę. Czy na pewno chcesz rozpocząć?" @@ -7015,7 +7007,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7071,7 +7063,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7190,7 +7182,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opcje" @@ -7207,7 +7199,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Pozostałe" @@ -7386,7 +7378,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7419,12 +7411,12 @@ msgstr "Odtwórz nagranie" msgid "Playback Options" msgstr "Opcje odtwarzania" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Gracze" @@ -7453,7 +7445,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7717,7 +7709,7 @@ msgstr "Wyśrodkuj" msgid "Record" msgstr "Nagranie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7947,7 +7939,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Ponów" @@ -7956,7 +7948,7 @@ msgstr "Ponów" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -8014,7 +8006,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ID pokoju" @@ -8055,7 +8047,7 @@ msgstr "" msgid "Russia" msgstr "Rosja" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8087,6 +8079,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8141,11 +8137,11 @@ msgid "Save File to" msgstr "Zapisz plik do" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8171,7 +8167,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Zapisz stan" @@ -8478,8 +8474,8 @@ msgid "Select a Directory" msgstr "Wybierz ścieżkę" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8510,7 +8506,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8554,8 +8550,8 @@ msgstr "Wybrany profil kontrolera nie istnieje" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8619,7 +8615,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Wyślij" @@ -8801,7 +8797,7 @@ msgstr "Pokaż GameCube'a" msgid "Show Germany" msgstr "Pokaż Niemcy" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9229,7 +9225,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9268,19 +9264,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Wyjście udane!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Wyjście przekroczyło czas oczekiwania!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Przekraczanie w toku..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Krok wykonany!" @@ -9331,7 +9327,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Zatrzymana gra" @@ -9399,7 +9395,7 @@ msgstr "" msgid "Success" msgstr "Powodzenie" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9518,7 +9514,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symbole" @@ -9712,7 +9708,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Dysk, który miał być włożony nie mógł zostać odnaleziony." @@ -9827,11 +9823,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9962,7 +9958,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Nie ma nic do cofnięcia!" @@ -10366,8 +10362,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chiński tradycyjny" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10523,18 +10519,18 @@ msgstr "" msgid "United States" msgstr "Stany Zjednoczone" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Nieznany" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11045,7 +11041,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Ostrzeżenie" @@ -11226,7 +11222,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11276,19 +11272,19 @@ msgstr "" msgid "Write to Window" msgstr "Wpisz do okna" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11487,7 +11483,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11533,7 +11529,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11602,7 +11598,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11613,7 +11609,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/pt.po b/Languages/po/pt.po index 47410ef132..b1827b4a50 100644 --- a/Languages/po/pt.po +++ b/Languages/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Zilaan , 2011\n" "Language-Team: Portuguese (http://www.transifex.com/delroth/dolphin-emu/" @@ -173,19 +173,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -226,11 +226,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -265,19 +265,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -318,7 +318,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -354,7 +354,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -399,11 +399,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulação" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -451,11 +451,11 @@ msgstr "&Ajuda" msgid "&Hotkey Settings" msgstr "&Definições de Teclas de Atalho" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -467,7 +467,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -499,7 +499,7 @@ msgstr "&Memória" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reset" @@ -574,7 +574,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -598,7 +598,7 @@ msgstr "" msgid "&Tools" msgstr "&Ferramentas" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -669,7 +669,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -891,7 +891,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1308,7 +1308,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1400,7 +1400,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1417,7 +1417,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Proporção de ecrã:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1470,7 +1470,7 @@ msgstr "Automático (Multiplo de 640x528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1731,7 +1731,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1777,12 +1777,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -1887,7 +1887,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2013,7 +2021,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Conversa" @@ -2118,7 +2126,7 @@ msgstr "Fechar" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2254,7 +2262,7 @@ msgid "Confirm on Stop" msgstr "Confirmar Ao Parar" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2308,7 +2316,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2462,10 +2470,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2608,7 +2616,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3016,7 +3024,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3197,7 +3205,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3515,7 +3523,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3802,7 +3810,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3827,11 +3835,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3893,31 +3901,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4094,7 +4102,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4154,7 +4162,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4170,7 +4178,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4332,7 +4340,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4607,10 +4615,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistema de ficheiros" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4872,14 +4876,6 @@ msgstr "Ecrã Inteiro" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4912,11 +4908,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5055,25 +5051,25 @@ msgstr "" msgid "Game ID:" msgstr "ID do Jogo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5086,7 +5082,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5327,7 +5323,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5381,11 +5377,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5773,7 +5769,7 @@ msgid "Interface" msgstr "Iinterface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Erro interno de LZO - compressão falhou" @@ -5782,13 +5778,13 @@ msgstr "Erro interno de LZO - compressão falhou" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro interno de LZO - lzo_init() falhou" @@ -5827,7 +5823,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5835,7 +5831,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6032,7 +6028,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6051,7 +6047,7 @@ msgstr "Coreano" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6340,7 +6336,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6384,7 +6380,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6397,10 +6393,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6448,7 +6440,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6460,11 +6452,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6552,7 +6544,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6727,7 +6719,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6864,7 +6856,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6899,7 +6891,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6919,7 +6911,7 @@ msgstr "" msgid "Not Set" msgstr "Não definido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6939,7 +6931,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6995,7 +6987,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7112,7 +7104,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opções" @@ -7129,7 +7121,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Outro" @@ -7308,7 +7300,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7341,12 +7333,12 @@ msgstr "Tocar Gravação" msgid "Playback Options" msgstr "Opções de Reprodução" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Jogadores" @@ -7375,7 +7367,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7637,7 +7629,7 @@ msgstr "" msgid "Record" msgstr "Gravar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7867,7 +7859,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7876,7 +7868,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7934,7 +7926,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7975,7 +7967,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8007,6 +7999,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8061,11 +8057,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8091,7 +8087,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8398,8 +8394,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8430,7 +8426,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8474,8 +8470,8 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8539,7 +8535,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Enviar" @@ -8716,7 +8712,7 @@ msgstr "Mostrar GameCube" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9142,7 +9138,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9181,19 +9177,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9244,7 +9240,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9312,7 +9308,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9431,7 +9427,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9625,7 +9621,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9740,11 +9736,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9875,7 +9871,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10270,8 +10266,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chinês Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10427,18 +10423,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10949,7 +10945,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Aviso" @@ -11130,7 +11126,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11180,19 +11176,19 @@ msgstr "" msgid "Write to Window" msgstr "Escrever para a Janela" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11391,7 +11387,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11437,7 +11433,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11506,7 +11502,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11517,7 +11513,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/pt_BR.po b/Languages/po/pt_BR.po index 0200b94bba..49cea80e31 100644 --- a/Languages/po/pt_BR.po +++ b/Languages/po/pt_BR.po @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Runo , 2013\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/delroth/dolphin-" @@ -77,6 +77,11 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"Como esse software não é destinado para consoles Wii vendidos no varejo, o " +"Dolphin não pode garantir que essa cópia não foi modificada, mesmo contendo " +"assinaturas aparentemente válidas." #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -230,19 +235,19 @@ msgstr "" "%2 objeto(s)\n" "Quadro Atual: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 entrou" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 saiu" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 não é uma ROM válida" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 assumiu controle do golfe" @@ -283,11 +288,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -322,19 +327,19 @@ msgstr "%n endereço(s) removido(s)." msgid "& And" msgstr "& E" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -375,7 +380,7 @@ msgstr "&Início Automático" msgid "&Boot from DVD Backup" msgstr "Iniciar de um &Disco de Backup" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "Janela Sem &Bordas" @@ -411,7 +416,7 @@ msgstr "&Duplicar..." msgid "&Code" msgstr "&Código" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Conectado" @@ -456,11 +461,11 @@ msgstr "&Ejetar Disco" msgid "&Emulation" msgstr "&Emulação" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Exportar Jogo Salvo..." -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Exportar Estado Salvo..." @@ -508,11 +513,11 @@ msgstr "Aj&uda" msgid "&Hotkey Settings" msgstr "Configurações das &Teclas de Atalho" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importar Jogo Salvo..." -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importar Estado Salvo..." @@ -524,7 +529,7 @@ msgstr "&Importar..." msgid "&Insert blr" msgstr "&Inserir blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&Mistura do Interframe" @@ -556,7 +561,7 @@ msgstr "&Memória" msgid "&Movie" msgstr "&Gravação" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "Ativar &Mudo" @@ -618,7 +623,7 @@ msgstr "&Remover Código" msgid "&Rename symbol" msgstr "&Renomear Símbolo" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reiniciar" @@ -631,7 +636,7 @@ msgstr "Gerenciador de Pacotes de &Recursos" msgid "&Save Symbol Map" msgstr "&Salvar Mapa dos Símbolos" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "&Escanear Cartões do e-Reader..." @@ -655,7 +660,7 @@ msgstr "&Threads" msgid "&Tools" msgstr "&Ferramentas" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Fechar ROM" @@ -726,7 +731,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -957,7 +962,7 @@ msgstr "" "\n" "Instalar este WAD substituirá permanentemente a versão anterior. Continuar?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Um disco já está prestes a ser inserido." @@ -1433,7 +1438,7 @@ msgstr "Sempre" msgid "Always Connected" msgstr "Sempre Conectado" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "Sempre &Visível" @@ -1527,7 +1532,7 @@ msgstr "Tem certeza de que deseja excluir este arquivo?" msgid "Are you sure you want to delete this pack?" msgstr "Tem certeza de que deseja excluir esse pacote?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Você tem certeza que você quer sair do NetPlay?" @@ -1544,7 +1549,7 @@ msgstr "Proporção de Tela" msgid "Aspect Ratio:" msgstr "Proporção de Tela:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Definir Porta dos Controles" @@ -1599,7 +1604,7 @@ msgstr "Automática (Múltipla de 640x528)" msgid "Auto Update Settings" msgstr "Configurações de Atualização Automática" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1875,7 +1880,7 @@ msgstr "Interrupção" msgid "Breakpoint" msgstr "Pontos de Interrupção" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Ponto de interrupção encontrado! Saída abortada." @@ -1921,12 +1926,12 @@ msgstr "Navegar pelas &Sessões do NetPlay..." msgid "Buffer Size:" msgstr "Tamanho do Buffer:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Tamanho do buffer alterado para %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffer:" @@ -2043,7 +2048,15 @@ msgstr "Período de Calibração" msgid "Call display list at %1 with size %2" msgstr "Lista de exibição de chamadas em %1 com tamanho %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Callstack" @@ -2184,7 +2197,7 @@ msgstr "Alterações nos cheats só terão efeito quando o jogo for reiniciado." msgid "Channel Partition (%1)" msgstr "Partição do Canal (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2291,7 +2304,7 @@ msgstr "Fechar" msgid "Co&nfiguration" msgstr "Co&nfigurações" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Código" @@ -2434,7 +2447,7 @@ msgid "Confirm on Stop" msgstr "Confirmar ao Parar" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Confirmação" @@ -2488,7 +2501,7 @@ msgstr "Conectar a internet e realizar uma atualização online do sistema?" msgid "Connected" msgstr "Conectado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Conectando" @@ -2665,10 +2678,10 @@ msgstr "" "Convertendo...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Copiar" @@ -2847,7 +2860,7 @@ msgstr "" "Se sim, então você pode precisar reespecificar o local do seu arquivo de " "Memory Card nas configurações." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Não foi possível encontrar o servidor central" @@ -3095,7 +3108,7 @@ msgstr "Diminuir Resolução Interna" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "Diminuir Slot de Estado Selecionado" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3283,7 +3296,7 @@ msgstr "" "Tem certeza de que deseja trocar para o Direct3D 11? Na dúvida, selecione " "'Não'." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "Des&conectado" @@ -3495,7 +3508,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "O Dolphin é um emulador de GameCube e Wii grátis e de código fonte aberto." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Versão do Dolphin é muito antiga para o servidor traversal" @@ -3845,7 +3858,7 @@ msgstr "Ejetar Disco" msgid "Embedded Frame Buffer (EFB)" msgstr "Frame Buffer Embutido (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Vazio" @@ -4179,7 +4192,7 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4204,11 +4217,11 @@ msgstr "Insira o endereço do módulo do RSO:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4270,31 +4283,31 @@ msgstr "" "ERRO: Depois de \"{0}\", foi encontrado {1} ({2:#x}) ao invés do marcador de " "estado salvo {3} ({4:#x}). Abortando o carregamento do estado salvo..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Erro: GBA{0} - falha ao criar o processo" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Erro: GBA{0} - falha ao carregar a BIOS em {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Erro: GBA{0} - falha ao carregar a ROM em {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Erro: GBA{0} - falha ao carregar os dados salvos em {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Erro: GBA{0} - falha ao abrir a BIOS em {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Erro: GBA{0} - falha ao abrir a ROM em {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Erro: GBA{0} - falha ao abrir os dados salvos em {1}" @@ -4492,7 +4505,7 @@ msgstr "Dados de Movimento do Acessório" msgid "Extension Motion Simulation" msgstr "Simulação de Movimentos do Acessório" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "IP Externo" @@ -4554,7 +4567,7 @@ msgstr "" "Falha ao abrir o Memory Card:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Falha ao adicionar essa sessão ao indexador do NetPlay: %1" @@ -4571,7 +4584,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "Falha na conexão com Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Falha na conexão com o servidor: %1" @@ -4757,7 +4770,7 @@ msgstr "" "Falha ao carregar {0}. Se você estiver usando o Windows 7, tente instalar o " "pacote de atualização KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -5059,10 +5072,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistema de Arquivos" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtrar Símbolos" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filtros" @@ -5354,14 +5363,6 @@ msgstr "Tela Cheia" msgid "Function" msgstr "Função" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Chamadores de função" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Chamadas de função" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funções" @@ -5394,11 +5395,11 @@ msgstr "Volume do GBA" msgid "GBA Window Size" msgstr "Tamanho da Janela do GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "ROM do GBA%1 alterada para \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "ROM desativada do GBA%1" @@ -5567,15 +5568,15 @@ msgstr "ID do Jogo" msgid "Game ID:" msgstr "ID do Jogo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Status do Jogo" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Jogo alterado para \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5584,11 +5585,11 @@ msgstr "" "selecione Propriedades, alterne para a guia Verificar, e selecione Verificar " "Integridade para calcular o hash" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "O número de disco do jogo é diferente" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "A revisão do jogo é diferente" @@ -5603,7 +5604,7 @@ msgstr "" "Jogo sobrescrito por outro jogo salvo. Dados corrompidos adiante {0:#x}, {1:" "#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "A região do jogo é diferente" @@ -5703,7 +5704,7 @@ msgstr "Código AR gerado com sucesso." #: Source/Core/DolphinQt/MenuBar.cpp:1256 msgid "Generated symbol names from '%1'" -msgstr "Nomes dos símbolos gerados do '%1'" +msgstr "Nomes de símbolos gerados a partir de '%1'" #: Source/Core/DiscIO/Enums.cpp:83 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:83 @@ -5849,7 +5850,7 @@ msgstr "Esconder Sessões Dentro-do-Jogo" msgid "Hide Incompatible Sessions" msgstr "Esconder Sessões Incompatíveis" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Ocultar GBAs Remotos" @@ -5908,11 +5909,11 @@ msgstr "" "Adequado para jogos casuais com mais de 3 jogadores, possivelmente em " "conexões instáveis ou de alta latência." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Host autoritário desativado" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Host autoritário ativado" @@ -6246,7 +6247,7 @@ msgstr "Aumentar Resolução Interna" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "Aumentar Slot de Estado Selecionado" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6373,7 +6374,7 @@ msgid "Interface" msgstr "Interface" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Erro Interno do LZO - falha na compressão" @@ -6382,7 +6383,7 @@ msgstr "Erro Interno do LZO - falha na compressão" msgid "Internal LZO Error - decompression failed" msgstr "Erro Interno do LZO - falha na extração" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6390,7 +6391,7 @@ msgstr "" "Erro Interno do LZO - falha na extração ({0}) ({1}, {2}) \n" "Tente carregar o estado salvo novamente" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Erro Interno do LZO - lzo_init() falhou" @@ -6429,7 +6430,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "O pacote %1 fornecido é inválido: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "ID de Jogador Inválida" @@ -6437,7 +6438,7 @@ msgstr "ID de Jogador Inválida" msgid "Invalid RSO module address: %1" msgstr "Endereço do módulo do RSO inválido: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Callstack inválido" @@ -6639,7 +6640,7 @@ msgstr "Teclas" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Remover Jogador" @@ -6658,7 +6659,7 @@ msgstr "Coreano" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "Abrir R&OM..." @@ -6960,7 +6961,7 @@ msgstr "" "

Na dúvida, mantenha essa opção desativada." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "IP Local" @@ -7008,7 +7009,7 @@ msgstr "" msgid "Loop" msgstr "Reprodução contínua" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Perdeu a conexão com o servidor do NetPlay..." @@ -7021,10 +7022,6 @@ msgstr "Baixo" msgid "Lowest" msgstr "Muito baixo" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Checksum MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -7077,7 +7074,7 @@ msgstr "Gerenciar NAND" msgid "Manual Texture Sampling" msgstr "Amostragem Manual de Texturas" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mapeamento" @@ -7089,11 +7086,11 @@ msgstr "Mask ROM" msgid "Match Found" msgstr "Combinação Achada" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Buffer Máximo:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Tamanho máximo do buffer alterado para %1" @@ -7187,7 +7184,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Incompatibilidade entre as estruturas internas dos dados." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7379,7 +7376,7 @@ msgstr "Configuração do NetPlay" msgid "Netherlands" msgstr "Holanda" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "O NetPlay dessincronizou em NetPlay_GetButtonPress()" @@ -7516,7 +7513,7 @@ msgstr "Nenhum jogo em execução" msgid "No issues have been detected." msgstr "Não foram detectados problemas." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "Nenhum jogo correspondente encontrado" @@ -7554,7 +7551,7 @@ msgstr "Nenhuma gravação carregada." msgid "No save data found." msgstr "Nenhum jogo salvo encontrado." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Arquivo undo.dtm não encontrado, cancelando reversão do carregamento de " @@ -7576,7 +7573,7 @@ msgstr "América do Norte" msgid "Not Set" msgstr "Desconhecido" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Nem todos os jogadores possuem o jogo. Iniciar assim mesmo?" @@ -7600,7 +7597,7 @@ msgstr "" "Não há arquivos livres o bastante no memory card alvo. Pelo menos %n " "arquivo(s) livre(s) requerido(s)." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "Não encontrado" @@ -7658,7 +7655,7 @@ msgstr "Orientação do Nunchuk" msgid "Nunchuk Stick" msgstr "Eixo do Nunchuk" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7779,7 +7776,7 @@ msgstr "Operadores" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opções" @@ -7796,7 +7793,7 @@ msgstr "Orbital" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Outros" @@ -7975,7 +7972,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Escolha uma fonte de debug" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -8008,12 +8005,12 @@ msgstr "Reproduzir Gravação" msgid "Playback Options" msgstr "Opções de Reprodução" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Jogador" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Jogadores" @@ -8044,10 +8041,10 @@ msgstr "ROM da Porta %1:" msgid "Port:" msgstr "Porta:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" -"Possível dessincronia detectada: %1 poderia ter dessincronizado no frame %2" +"Possível dessincronia detectada: %1 pode ter dessincronizado no quadro %2" #: Source/Core/DolphinQt/Config/Graphics/EnhancementsWidget.cpp:384 msgid "Post-Processing Effect" @@ -8071,7 +8068,7 @@ msgstr "Fim prematuro da gravação no PlayController. {0} + {1} > {2}" #: Source/Core/Core/Movie.cpp:1315 msgid "Premature movie end in PlayWiimote. {0} + {1} > {2}" -msgstr "Fim prematuro do filme no PlayWiimote. {0} + {1} > {2}" +msgstr "Fim prematuro da gravação no PlayWiimote. {0} + {1} > {2}" #: Source/Core/Core/Movie.cpp:1289 msgid "Premature movie end in PlayWiimote. {0} > {1}" @@ -8322,7 +8319,7 @@ msgstr "Re-centralizar" msgid "Record" msgstr "Gravar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Gravar a Entrada dos Dados" @@ -8565,7 +8562,7 @@ msgstr "Restaurar Padrões" msgid "Restore instruction" msgstr "Restaurar instrução" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Repetir" @@ -8574,7 +8571,7 @@ msgstr "Repetir" msgid "Return Speed" msgstr "Velocidade de Retorno" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revisão" @@ -8632,7 +8629,7 @@ msgstr "Rolar pra Esquerda" msgid "Roll Right" msgstr "Rolar pra Direita" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Código da Sala" @@ -8678,7 +8675,7 @@ msgstr "Executar Instâncias do GBA em Processos Dedicados" msgid "Russia" msgstr "Rússia" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "Cartão SD" @@ -8710,6 +8707,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8764,11 +8765,11 @@ msgid "Save File to" msgstr "Salvar o Arquivo em" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Jogo Salvo" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Arquivo de jogo salvo (*.sav);;Todos os arquivos (*)" @@ -8794,7 +8795,7 @@ msgstr "Salvar o Arquivo da Gravação Como" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Salvar Estado" @@ -9110,8 +9111,8 @@ msgid "Select a Directory" msgstr "Selecione um Diretório" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9142,7 +9143,7 @@ msgstr "Selecione um jogo" msgid "Select a title to install to NAND" msgstr "Selecione um título pra instalar no NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Selecione os Cartões do e-Reader" @@ -9186,8 +9187,8 @@ msgstr "O perfil de controle selecionado não existe" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "O jogo selecionado não existe na lista de jogos!" @@ -9284,7 +9285,7 @@ msgstr "" "é recomendado testar cada um e selecionar o backend menos problemático." "

Na dúvida, selecione \"OpenGL\"." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Enviar" @@ -9474,7 +9475,7 @@ msgstr "GameCube" msgid "Show Germany" msgstr "Alemanha" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Mostrar Sobreposição do Modo Golfe" @@ -9934,7 +9935,7 @@ msgstr "Iniciar com Patches do Riivolution" msgid "Start with Riivolution Patches..." msgstr "Iniciar com Patches do Riivolution..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Jogo iniciado" @@ -9973,19 +9974,19 @@ msgstr "Saída" msgid "Step Over" msgstr "Passagem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Saída bem-sucedida!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "O tempo pra sair esgotou!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Passagem em progresso..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Passo bem-sucedido!" @@ -10036,7 +10037,7 @@ msgstr "Parar a Reprodução/Gravação de Replay" msgid "Stop Recording" msgstr "Parar a Gravação" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Jogo parado" @@ -10114,7 +10115,7 @@ msgstr "Stylus" msgid "Success" msgstr "Sucesso" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Adicionou com sucesso ao índice do NetPlay" @@ -10131,7 +10132,7 @@ msgstr "Perfil \"%1\" excluído com sucesso." #: Source/Core/DolphinQt/GCMemcardManager.cpp:496 msgctxt "" msgid "Successfully exported %n out of %1 save file(s)." -msgstr "Exportou com sucesso %n de %1 arquivo(s) do(s) save(s)." +msgstr "%n de %1 arquivo(s) de jogo salvo exportados com sucesso." #: Source/Core/DolphinQt/GameList/GameList.cpp:577 msgid "Successfully exported save files" @@ -10241,7 +10242,7 @@ msgid "Symbol name:" msgstr "Nome do símbolo:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Símbolos" @@ -10458,7 +10459,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "O disco não pôde ser lido (em {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "O disco que estava prestes a ser inserido não foi encontrado." @@ -10601,11 +10602,11 @@ msgstr "" "\n" "(MSAA com {0} amostras encontradas no framebuffer padrão)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Os hashes não combinam!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Os hashes combinam!" @@ -10754,7 +10755,7 @@ msgstr "A partição {0} não está alinhada corretamente." msgid "There are too many partitions in the first partition table." msgstr "Existem muitas partições na primeira tabela de partições." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Nào há nada para desfazer!" @@ -11212,8 +11213,8 @@ msgstr "Toque" msgid "Traditional Chinese" msgstr "Chinês Tradicional" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Erro Traversal" @@ -11396,18 +11397,18 @@ msgstr "" msgid "United States" msgstr "Estados Unidos" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Desconhecido" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Comando desconhecido do DVD {0:08x} - erro fatal" @@ -12006,7 +12007,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Aviso" @@ -12033,9 +12034,10 @@ msgid "" "{0} > {1}) (input {2} > {3}). You should load another save before " "continuing, or load this state with read-only mode off." msgstr "" -"Aviso: Você carregou um save que está após o fim do filme atual. (byte {0} > " -"{1}) (entrada dos dados {2} > {3}). Você deveria carregar outro save antes " -"de continuar ou carregar este state com o modo somente-leitura desligado." +"AVISO: Você carregou um estado salvo após o fim da gravação atual. (byte {0} " +"> {1}) (entrada de dados {2} > {3}). Você deveria carregar outro estado " +"salvo antes de continuar, ou então carregar esse estado com o modo somente " +"leitura desativado." #: Source/Core/Core/Movie.cpp:1057 msgid "" @@ -12053,10 +12055,10 @@ msgid "" "should load another save before continuing, or load this state with read-" "only mode off. Otherwise you'll probably get a desync." msgstr "" -"Aviso: Você carregou um save cujo filme não combina com o byte {0} ({1:#x}). " -"Você deveria carregar outro save antes de continuar ou carregar este state " -"com o modo somente-leitura desligado. De outro modo você provavelmente terá " -"uma dessincronização." +"AVISO: Você carregou um estado salvo que difere da gravação no byte {0} ({1:" +"#x}). Você deveria carregar outro estado salvo antes de continuar, ou então " +"carregar esse estado com o modo somente leitura desativado, caso contrário " +"você provavelmente obterá uma dessincronização." #: Source/Core/Core/Movie.cpp:1123 msgid "" @@ -12232,7 +12234,7 @@ msgstr "" "Você pode definir uma tecla de atalho para destravá-lo." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Tamanho da Janela" @@ -12282,19 +12284,19 @@ msgstr "Gravar no Log e Dividir" msgid "Write to Window" msgstr "Gravar na Janela" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Número de disco incorreto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "Hash incorreto" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Região incorreta" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Revisão incorreta" @@ -12542,7 +12544,7 @@ msgstr "padrão" msgid "disconnected" msgstr "desconectado" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "Cartões do e-Reader (*.raw);;Todos os arquivos (*)" @@ -12588,7 +12590,7 @@ msgstr "último valor" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12659,7 +12661,7 @@ msgstr "{0} falhou em sincronizar os códigos." msgid "{0} failed to synchronize." msgstr "{0} falhou em sincronizar." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12672,7 +12674,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} de {1} blocos. Taxa de compressão: {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} não era um diretório, movido pro *.original" diff --git a/Languages/po/ro.po b/Languages/po/ro.po index dcc30f3fb0..4137d7e418 100644 --- a/Languages/po/ro.po +++ b/Languages/po/ro.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Arian - Cazare Muncitori , 2014\n" "Language-Team: Romanian (http://www.transifex.com/delroth/dolphin-emu/" @@ -172,19 +172,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -225,11 +225,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -264,19 +264,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -317,7 +317,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -398,11 +398,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulare" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -450,11 +450,11 @@ msgstr "&Ajutor" msgid "&Hotkey Settings" msgstr "&Configurări Tastă Rapidă" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -466,7 +466,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -498,7 +498,7 @@ msgstr "&Memorie" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -560,7 +560,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Resetează" @@ -573,7 +573,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "&Tools" msgstr "&Instrumente" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -668,7 +668,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1307,7 +1307,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1399,7 +1399,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "Raport Aspect:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1469,7 +1469,7 @@ msgstr "Auto (Multiple de 640x528)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1776,12 +1776,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Tampon:" @@ -1886,7 +1886,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2012,7 +2020,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat" @@ -2117,7 +2125,7 @@ msgstr "Închide" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2253,7 +2261,7 @@ msgid "Confirm on Stop" msgstr "Confirmă la Oprire" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2307,7 +2315,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2461,10 +2469,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2607,7 +2615,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3015,7 +3023,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3196,7 +3204,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3514,7 +3522,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3801,7 +3809,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3826,11 +3834,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3892,31 +3900,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4093,7 +4101,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4153,7 +4161,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4169,7 +4177,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4331,7 +4339,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4606,10 +4614,6 @@ msgstr "" msgid "Filesystem" msgstr "Sistem de fișiere" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4871,14 +4875,6 @@ msgstr "EcrComplet" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4911,11 +4907,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5054,25 +5050,25 @@ msgstr "" msgid "Game ID:" msgstr "ID Joc:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5085,7 +5081,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5326,7 +5322,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5380,11 +5376,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5772,7 +5768,7 @@ msgid "Interface" msgstr "Interfață" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Eroare internă LZO - compresia a eșuat" @@ -5781,13 +5777,13 @@ msgstr "Eroare internă LZO - compresia a eșuat" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Eroare internă LZO - lzo_init() a eșuat" @@ -5826,7 +5822,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5834,7 +5830,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6033,7 +6029,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6052,7 +6048,7 @@ msgstr "Coreeană" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6341,7 +6337,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6385,7 +6381,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6398,10 +6394,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6449,7 +6441,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6461,11 +6453,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6553,7 +6545,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6728,7 +6720,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6865,7 +6857,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6900,7 +6892,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6920,7 +6912,7 @@ msgstr "" msgid "Not Set" msgstr "Nestabilit" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6940,7 +6932,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6996,7 +6988,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7113,7 +7105,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opțiuni" @@ -7130,7 +7122,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Altele" @@ -7309,7 +7301,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7342,12 +7334,12 @@ msgstr "Rulează Înregistrarea" msgid "Playback Options" msgstr "Opțiuni de Rulare" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Playere" @@ -7376,7 +7368,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7638,7 +7630,7 @@ msgstr "" msgid "Record" msgstr "Înregistrare" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7868,7 +7860,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7877,7 +7869,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7935,7 +7927,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7976,7 +7968,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8008,6 +8000,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8062,11 +8058,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8092,7 +8088,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Salvează Status" @@ -8399,8 +8395,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8431,7 +8427,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8475,8 +8471,8 @@ msgstr "Profilul controlerului selectat, nu există" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8540,7 +8536,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Trimite" @@ -8717,7 +8713,7 @@ msgstr "Afișare GameCube" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9143,7 +9139,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9182,19 +9178,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9245,7 +9241,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9313,7 +9309,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9432,7 +9428,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9626,7 +9622,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9741,11 +9737,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9876,7 +9872,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10271,8 +10267,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Chineză tradițională" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10428,18 +10424,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Necunoscut" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10950,7 +10946,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Atenție" @@ -11131,7 +11127,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11181,19 +11177,19 @@ msgstr "" msgid "Write to Window" msgstr "Scrie în Fereastră" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11392,7 +11388,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11438,7 +11434,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11507,7 +11503,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11518,7 +11514,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/ru.po b/Languages/po/ru.po index 038d9be767..8e1e7789b8 100644 --- a/Languages/po/ru.po +++ b/Languages/po/ru.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Sukharev Andrey , 2015-2022\n" "Language-Team: Russian (http://www.transifex.com/delroth/dolphin-emu/" @@ -205,19 +205,19 @@ msgstr "" "%2 объект(ов)\n" "Текущий кадр: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 присоединился" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 вышел" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 — не корректный образ игры" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 теперь играет в гольф" @@ -258,11 +258,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -297,19 +297,19 @@ msgstr "Удалено адресов: %n." msgid "& And" msgstr "& И" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -350,7 +350,7 @@ msgstr "&Автоматический запуск" msgid "&Boot from DVD Backup" msgstr "&Запустить игру с DVD-бэкапа" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&Окно без рамок" @@ -386,7 +386,7 @@ msgstr "&Клонировать..." msgid "&Code" msgstr "&Код" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Подключен" @@ -431,11 +431,11 @@ msgstr "&Извлечь диск" msgid "&Emulation" msgstr "&Эмуляция" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -483,11 +483,11 @@ msgstr "&Помощь" msgid "&Hotkey Settings" msgstr "Горячие &клавиши" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -499,7 +499,7 @@ msgstr "&Импортировать..." msgid "&Insert blr" msgstr "&Вставить blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "&Межкадровый блендинг" @@ -531,7 +531,7 @@ msgstr "&Память" msgid "&Movie" msgstr "&Запись" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -593,7 +593,7 @@ msgstr "&Удалить код" msgid "&Rename symbol" msgstr "&Переименовать символ" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Сбросить" @@ -606,7 +606,7 @@ msgstr "&Менеджер наборов ресурсов" msgid "&Save Symbol Map" msgstr "&Сохранить карту символов" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -630,7 +630,7 @@ msgstr "&Потоки" msgid "&Tools" msgstr "&Инструменты" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "&Выгрузить образ игры" @@ -701,7 +701,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -932,7 +932,7 @@ msgstr "" "\n" "После установки этого WAD вернуть прежнюю версию не получится. Продолжить?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Диск уже должен быть вставлен." @@ -1399,7 +1399,7 @@ msgstr "Всегда" msgid "Always Connected" msgstr "Всегда подключен" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1493,7 +1493,7 @@ msgstr "Вы действительно хотите удалить этот ф msgid "Are you sure you want to delete this pack?" msgstr "Вы уверены, что хотите удалить этот набор?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Вы уверены, что хотите выйти из сетевой игры?" @@ -1510,7 +1510,7 @@ msgstr "Соотношение сторон" msgid "Aspect Ratio:" msgstr "Соотношение сторон:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Назначить порты контроллеров" @@ -1565,7 +1565,7 @@ msgstr "Автоматически (Кратное 640x528)" msgid "Auto Update Settings" msgstr "Настройки автообновления" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1838,7 +1838,7 @@ msgstr "Останов" msgid "Breakpoint" msgstr "Точка останова" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Попадание в точку останова! Шаг с выходом отменён." @@ -1884,12 +1884,12 @@ msgstr "Просмотр &сессий сетевой игры..." msgid "Buffer Size:" msgstr "Размер буфера:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Размер буфера изменён на %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Буфер:" @@ -2005,7 +2005,15 @@ msgstr "Период калибровки" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Стэк вызова" @@ -2143,7 +2151,7 @@ msgstr "Изменения в читах вступят в силу после msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Чат" @@ -2250,7 +2258,7 @@ msgstr "Закрыть" msgid "Co&nfiguration" msgstr "&Настройка" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Код" @@ -2386,7 +2394,7 @@ msgid "Confirm on Stop" msgstr "Подтверждать остановку" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Подтверждение" @@ -2440,7 +2448,7 @@ msgstr "Подключиться к интернету и выполнить о msgid "Connected" msgstr "Подключен" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2616,10 +2624,10 @@ msgstr "" "Идёт конвертация...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Копировать" @@ -2793,7 +2801,7 @@ msgstr "" "папку, то, возможно, потребуется заново указать расположение вашей карты " "памяти в настройках." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Не удалось обнаружить центральный сервер" @@ -3228,7 +3236,7 @@ msgstr "" "Вы действительно хотите переключиться на Direct3D 11? Если не уверены – " "выберите \"Нет\"." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3430,7 +3438,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "Dolphin – бесплатный эмулятор GameCube и Wii с открытым исходным кодом." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Слишком старая версия Dolphin для подключения к промежуточному серверу" @@ -3777,7 +3785,7 @@ msgstr "Извлечь диск" msgid "Embedded Frame Buffer (EFB)" msgstr "Встроенный буфер кадров (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Пусто" @@ -4112,7 +4120,7 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4137,11 +4145,11 @@ msgstr "Введите адрес модуля RSO:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4204,31 +4212,31 @@ msgstr "" "Ошибка: после \"{0}\" найдено {1} ({2:#x}) вместо маркера сохранения {3} ({4:" "#x}). Отмена загрузки быстрого сохранения..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Ошибка: GBA{0} не удалось создать ядро" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить BIOS в {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить образ в {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Ошибка: GBA{0} не удалось загрузить сохранение в {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Ошибка: GBA{0} не удалось открыть BIOS в {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Ошибка: GBA{0} не удалось открыть образ в {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Ошибка: GBA{0} не удалось открыть сохранение в {1}" @@ -4409,7 +4417,7 @@ msgstr "Данные движения расширения" msgid "Extension Motion Simulation" msgstr "Симуляция движения расширения" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Внешний адрес" @@ -4471,7 +4479,7 @@ msgstr "" "Не удалось открыть карту памяти:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Не удалось добавить сессию в индекс сетевой игры: %1" @@ -4487,7 +4495,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "Не удалось подключиться к Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Не удалось подключиться к серверу: %1" @@ -4666,7 +4674,7 @@ msgstr "" "Не удалось загрузить {0}. Если вы пользуетесь Windows 7, попробуйте " "установить пакет обновления KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4963,10 +4971,6 @@ msgstr "Размер файла в заголовке не совпадает с msgid "Filesystem" msgstr "Файловая система" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Фильтр символов" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Фильтры" @@ -5252,14 +5256,6 @@ msgstr "Во весь экран" msgid "Function" msgstr "Функция" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Вызывающие функции" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Вызовы функции" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Функции" @@ -5292,11 +5288,11 @@ msgstr "Громкость GBA" msgid "GBA Window Size" msgstr "Размер окна GBA" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5455,25 +5451,25 @@ msgstr "ID игры" msgid "Game ID:" msgstr "ID игры:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Статус игры" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Игра изменена на \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5488,7 +5484,7 @@ msgstr "" "Игра перезаписана сохранениями других игр. Повреждение данных после {0:#x}, " "{1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5735,7 +5731,7 @@ msgstr "Скрыть сессии \"В игре\"" msgid "Hide Incompatible Sessions" msgstr "Скрыть несовместимые сессии" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Скрыть сетевые GBA" @@ -5794,11 +5790,11 @@ msgstr "" "Подходит для казуальных игр с 3 и более игроками, возможно, при нестабильных " "соединениях или соединениях с высокой задержкой." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Хост не управляет вводом" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Хост управляет вводом" @@ -6244,7 +6240,7 @@ msgid "Interface" msgstr "Интерфейс" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Внутренняя ошибка LZO - ошибка сжатия" @@ -6253,7 +6249,7 @@ msgstr "Внутренняя ошибка LZO - ошибка сжатия" msgid "Internal LZO Error - decompression failed" msgstr "Внутренняя ошибка LZO - распаковка не удалась" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6261,7 +6257,7 @@ msgstr "" "Внутренняя ошибка LZO - ошибка распаковки ({0}) ({1}, {2}) \n" "Попробуйте загрузить сохранение повторно" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Внутренняя ошибка LZO - ошибка в lzo_init()" @@ -6300,7 +6296,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Некорректный набор %1 указан: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Некорректный ID игрока" @@ -6308,7 +6304,7 @@ msgstr "Некорректный ID игрока" msgid "Invalid RSO module address: %1" msgstr "Некорректный адрес модуля RSO: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Некорректный стэк вызовов" @@ -6508,7 +6504,7 @@ msgstr "Клавиши" msgid "KiB" msgstr "КиБ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Исключить игрока" @@ -6527,7 +6523,7 @@ msgstr "Корейский" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6825,7 +6821,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Локальный адрес" @@ -6873,7 +6869,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Соединение с сервером сетевой игры потеряно..." @@ -6886,10 +6882,6 @@ msgstr "Низкая" msgid "Lowest" msgstr "Самое низкое" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "Контрольная сумма MD5" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6942,7 +6934,7 @@ msgstr "Управлять NAND" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Порты" @@ -6954,11 +6946,11 @@ msgstr "" msgid "Match Found" msgstr "Найдено совпадение" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Максимальный буфер:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Максимальный размер буфера изменён на %1" @@ -7051,7 +7043,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "Расхождение во внутренних структурах данных." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7237,7 +7229,7 @@ msgstr "Настройка сетевой игры" msgid "Netherlands" msgstr "Нидерландский" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Рассинхронизация сетевой игры в NetPlay_GetButtonPress()" @@ -7376,7 +7368,7 @@ msgstr "" msgid "No issues have been detected." msgstr "Проблем не обнаружено." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -7415,7 +7407,7 @@ msgstr "Запись не загружена." msgid "No save data found." msgstr "Данные сохранений не найдены." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Не найден undo.dtm, выполнено прерывание отмены загрузки быстрого сохранения " @@ -7437,7 +7429,7 @@ msgstr "Северная Америка" msgid "Not Set" msgstr "Не установлено" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Не у всех игроков есть игра. Вы действительно хотите начать?" @@ -7461,7 +7453,7 @@ msgstr "" "Недостаточно свободных файлов на выбранной карте памяти. Требуется свободных " "файлов: не менее %n." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7519,7 +7511,7 @@ msgstr "Ориентация нунчака" msgid "Nunchuk Stick" msgstr "Стик нунчака" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7640,7 +7632,7 @@ msgstr "Операторы" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Опции" @@ -7657,7 +7649,7 @@ msgstr "По орбите" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Прочие" @@ -7836,7 +7828,7 @@ msgstr "ПиБ" msgid "Pick a debug font" msgstr "Выбрать шрифт для отладки" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Пинг" @@ -7869,12 +7861,12 @@ msgstr "Проиграть записанное" msgid "Playback Options" msgstr "Параметры просмотра" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Игрок" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Игроки" @@ -7903,7 +7895,7 @@ msgstr "" msgid "Port:" msgstr "Порт:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Обнаружена возможная рассинхронизация: %1, вероятно, рассинхронизовался на " @@ -8181,7 +8173,7 @@ msgstr "Центровка" msgid "Record" msgstr "Запись" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Записывать ввод" @@ -8425,7 +8417,7 @@ msgstr "По умолчанию" msgid "Restore instruction" msgstr "Восстановить инструкцию" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Повтор" @@ -8434,7 +8426,7 @@ msgstr "Повтор" msgid "Return Speed" msgstr "Скорость возврата" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Ревизия" @@ -8492,7 +8484,7 @@ msgstr "Крен влево" msgid "Roll Right" msgstr "Крен вправо" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "ID комнаты" @@ -8533,7 +8525,7 @@ msgstr "Запускать ядра GBA в выделенных потоках" msgid "Russia" msgstr "Россия" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-карты" @@ -8565,6 +8557,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8619,11 +8615,11 @@ msgid "Save File to" msgstr "Сохранить файл в" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8649,7 +8645,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Быстрое сохранение" @@ -8966,8 +8962,8 @@ msgid "Select a Directory" msgstr "Выберите папку" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8998,7 +8994,7 @@ msgstr "Выберите игру" msgid "Select a title to install to NAND" msgstr "Выберите продукт для установки в NAND" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Выбрать e-карточки" @@ -9042,8 +9038,8 @@ msgstr "Выбранный профиль контроллера не сущес #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Выбранной игры нету в списке игр!" @@ -9138,7 +9134,7 @@ msgstr "" "

Если не уверены – выберите OpenGL." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Отправить" @@ -9324,7 +9320,7 @@ msgstr "GameCube" msgid "Show Germany" msgstr "Германия" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Показывать оверлей режима гольфа" @@ -9775,7 +9771,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Игра начата" @@ -9814,19 +9810,19 @@ msgstr "Шаг с выходом" msgid "Step Over" msgstr "Шаг с обходом" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Шаг с выходом выполнен успешно!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Истекло время ожидания шага с выходом!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Выполняется шаг с обходом..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Шаг выполнен успешно!" @@ -9877,7 +9873,7 @@ msgstr "Остановить проигр./запись ввода" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Игра остановлена" @@ -9955,7 +9951,7 @@ msgstr "Стилус" msgid "Success" msgstr "Успешно" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Успешно добавлена в индекс сетевой игры" @@ -10078,7 +10074,7 @@ msgid "Symbol name:" msgstr "Имя символа:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Символы" @@ -10283,7 +10279,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Не удалось прочесть диск (в диапазоне {0:#x} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Ожидаемый диск не был найден." @@ -10417,11 +10413,11 @@ msgstr "" "\n" "(Во фреймбуффере по умолчанию найден MSAA с {0} сэмплами)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Хэши не совпадают!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Хэши совпадают!" @@ -10565,7 +10561,7 @@ msgstr "Раздел {0} некорректно выровнен." msgid "There are too many partitions in the first partition table." msgstr "В первой таблице разделов содержится слишком много разделов." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Нет действий для отмены!" @@ -11015,8 +11011,8 @@ msgstr "Тач-панель" msgid "Traditional Chinese" msgstr "Традиц. китайский" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Ошибка промежуточного сервера" @@ -11198,18 +11194,18 @@ msgstr "" msgid "United States" msgstr "США" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Неизвестно" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Неизвестная команда DVD {0:08x} - критическая ошибка" @@ -11765,7 +11761,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Предупреждение" @@ -11986,7 +11982,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Размер окна" @@ -12036,19 +12032,19 @@ msgstr "Записать в лог и остановиться" msgid "Write to Window" msgstr "Записать в окно" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -12268,7 +12264,7 @@ msgstr "по умолчанию" msgid "disconnected" msgstr "не подключено" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "e-карточки (*.raw);;Все файлы (*)" @@ -12314,7 +12310,7 @@ msgstr "послед. значение" msgid "m/s" msgstr "м/с" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12385,7 +12381,7 @@ msgstr "Не удалось синхронизировать коды {0}." msgid "{0} failed to synchronize." msgstr "Не удалось синхронизировать {0}." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12399,7 +12395,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} из {1} блоков. Процент сжатия: {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} - не папка, перемещено в *.original" diff --git a/Languages/po/sr.po b/Languages/po/sr.po index be3dfb5317..1687c8b627 100644 --- a/Languages/po/sr.po +++ b/Languages/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: nikolassj, 2011\n" "Language-Team: Serbian (http://www.transifex.com/delroth/dolphin-emu/" @@ -172,19 +172,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -225,11 +225,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "" @@ -264,19 +264,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -317,7 +317,7 @@ msgstr "" msgid "&Boot from DVD Backup" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "&Code" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -398,11 +398,11 @@ msgstr "" msgid "&Emulation" msgstr "&Emulacija" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -450,11 +450,11 @@ msgstr "&Pomoc" msgid "&Hotkey Settings" msgstr "&Hotkey Opcije" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -466,7 +466,7 @@ msgstr "" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -498,7 +498,7 @@ msgstr "&Memorija" msgid "&Movie" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -560,7 +560,7 @@ msgstr "" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Reset" @@ -573,7 +573,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "&Tools" msgstr "&Alat" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -668,7 +668,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -890,7 +890,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1307,7 +1307,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1399,7 +1399,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1416,7 +1416,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1469,7 +1469,7 @@ msgstr "" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1730,7 +1730,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1776,12 +1776,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "" @@ -1886,7 +1886,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2012,7 +2020,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chat/Caskanje" @@ -2117,7 +2125,7 @@ msgstr "Zatvori" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2253,7 +2261,7 @@ msgid "Confirm on Stop" msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2307,7 +2315,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2461,10 +2469,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "" @@ -2607,7 +2615,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3015,7 +3023,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3196,7 +3204,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3514,7 +3522,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3799,7 +3807,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3824,11 +3832,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3888,31 +3896,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4089,7 +4097,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4149,7 +4157,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4165,7 +4173,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4327,7 +4335,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4602,10 +4610,6 @@ msgstr "" msgid "Filesystem" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4867,14 +4871,6 @@ msgstr "" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4907,11 +4903,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5050,25 +5046,25 @@ msgstr "" msgid "Game ID:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5081,7 +5077,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5322,7 +5318,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5376,11 +5372,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5768,7 +5764,7 @@ msgid "Interface" msgstr "" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "" @@ -5777,13 +5773,13 @@ msgstr "" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "" @@ -5822,7 +5818,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5830,7 +5826,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6027,7 +6023,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6046,7 +6042,7 @@ msgstr "Korejski " msgid "L" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6332,7 +6328,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6376,7 +6372,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6389,10 +6385,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6440,7 +6432,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6452,11 +6444,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6544,7 +6536,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6719,7 +6711,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6856,7 +6848,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6891,7 +6883,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6911,7 +6903,7 @@ msgstr "" msgid "Not Set" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6931,7 +6923,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6987,7 +6979,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7104,7 +7096,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Opcije " @@ -7121,7 +7113,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "" @@ -7300,7 +7292,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7333,12 +7325,12 @@ msgstr "Pokreni snimanje " msgid "Playback Options" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "" @@ -7367,7 +7359,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7629,7 +7621,7 @@ msgstr "" msgid "Record" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7859,7 +7851,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7868,7 +7860,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7926,7 +7918,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7967,7 +7959,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -7999,6 +7991,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8053,11 +8049,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8083,7 +8079,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8390,8 +8386,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8422,7 +8418,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8466,8 +8462,8 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8531,7 +8527,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Isprati" @@ -8708,7 +8704,7 @@ msgstr "" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9134,7 +9130,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9173,19 +9169,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9236,7 +9232,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9304,7 +9300,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9423,7 +9419,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9617,7 +9613,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9732,11 +9728,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9867,7 +9863,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10258,8 +10254,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10415,18 +10411,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Nepoznat/o" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10937,7 +10933,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Upozorenje " @@ -11118,7 +11114,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11168,19 +11164,19 @@ msgstr "" msgid "Write to Window" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11379,7 +11375,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11425,7 +11421,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11494,7 +11490,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11505,7 +11501,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/sv.po b/Languages/po/sv.po index c2bcb3ed32..1b3ad583bf 100644 --- a/Languages/po/sv.po +++ b/Languages/po/sv.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: JosJuice, 2015-2022\n" "Language-Team: Swedish (http://www.transifex.com/delroth/dolphin-emu/" @@ -198,19 +198,19 @@ msgstr "" "%2 objekt\n" "Nuvarande bildruta: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 har gått med" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 har gått ut" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 är inte en giltig ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 golfar nu" @@ -251,11 +251,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -290,19 +290,19 @@ msgstr "%n adress(er) togs bort." msgid "& And" msgstr "& Och" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -343,7 +343,7 @@ msgstr "&Automatisk start" msgid "&Boot from DVD Backup" msgstr "&Starta från bränd DVD" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&Kantlöst fönster" @@ -379,7 +379,7 @@ msgstr "&Klona..." msgid "&Code" msgstr "&Kod" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "&Inkopplad" @@ -424,11 +424,11 @@ msgstr "&Mata ut skiva" msgid "&Emulation" msgstr "&Emulering" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "&Exportera sparfil..." -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "&Exportera snabbsparning..." @@ -476,11 +476,11 @@ msgstr "&Hjälp" msgid "&Hotkey Settings" msgstr "&Kortkommandoinställningar" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&Importera sparfil..." -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "&Importera snabbsparning..." @@ -492,7 +492,7 @@ msgstr "&Importera..." msgid "&Insert blr" msgstr "&Infoga blr" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "Tidsut&jämning" @@ -524,7 +524,7 @@ msgstr "&Minne" msgid "&Movie" msgstr "&Inspelning" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "&Tyst" @@ -586,7 +586,7 @@ msgstr "&Ta bort kod" msgid "&Rename symbol" msgstr "&Byt namn på symbol" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Återställ" @@ -599,7 +599,7 @@ msgstr "&Resurspaketshanterare" msgid "&Save Symbol Map" msgstr "&Spara symbol-map" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "&Skanna e-Readerkort..." @@ -623,7 +623,7 @@ msgstr "&Trådar" msgid "&Tools" msgstr "&Verktyg" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "Ladda &ur ROM" @@ -694,7 +694,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -926,7 +926,7 @@ msgstr "" "Om du installerar denna WAD kommer titeln skrivas över. Detta går inte att " "ångra. Vill du fortsätta?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "En skiva håller redan på att sättas in." @@ -1396,7 +1396,7 @@ msgstr "Alltid" msgid "Always Connected" msgstr "Alltid ansluten" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "&Alltid längst upp" @@ -1490,7 +1490,7 @@ msgstr "Vill du verkligen radera den här filen?" msgid "Are you sure you want to delete this pack?" msgstr "Är du säker på att du vill radera det här paketet?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "Är du säker på att du vill avsluta nätspelssessionen?" @@ -1507,7 +1507,7 @@ msgstr "Bildförhållande" msgid "Aspect Ratio:" msgstr "Bildförhållande:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Tilldela kontrolluttag" @@ -1560,7 +1560,7 @@ msgstr "Auto (multipel av 640x528)" msgid "Auto Update Settings" msgstr "Automatiska uppdateringar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1834,7 +1834,7 @@ msgstr "Bryt" msgid "Breakpoint" msgstr "Brytpunkt" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "Brytpunkt påträffades! Urstegning avbruten." @@ -1880,12 +1880,12 @@ msgstr "Bläddra bland &nätspelssessioner..." msgid "Buffer Size:" msgstr "Buffertstorlek:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "Buffertstorleken ändrades till %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Buffert:" @@ -2002,7 +2002,15 @@ msgstr "Kalibreringstid" msgid "Call display list at %1 with size %2" msgstr "Anropa visningslista på adress %1 med storlek %2" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "Anropsstack" @@ -2142,7 +2150,7 @@ msgstr "Fuskändringar kommer inte börja gälla förrän spelet startas om." msgid "Channel Partition (%1)" msgstr "Kanalpartition (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Chatt" @@ -2249,7 +2257,7 @@ msgstr "Stäng" msgid "Co&nfiguration" msgstr "Ko&nfiguration" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kod" @@ -2385,7 +2393,7 @@ msgid "Confirm on Stop" msgstr "Bekräfta vid stopp" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "Bekräftelse" @@ -2439,7 +2447,7 @@ msgstr "Vill du ansluta till internet och uppdatera Wii-systemmjukvaran?" msgid "Connected" msgstr "Ansluten" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "Ansluter" @@ -2616,10 +2624,10 @@ msgstr "" "Konverterar...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopiera" @@ -2795,7 +2803,7 @@ msgstr "" "I så fall kan du behöva ställa in dina minneskortsplatser i inställningarna " "igen." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "Kunde inte slå upp centralserver" @@ -3228,7 +3236,7 @@ msgstr "" "\n" "Vill du verkligen byta till Direct3D 11? Om du är osäker, välj 'Nej'." -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "&Frånkopplad" @@ -3437,7 +3445,7 @@ msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" "Dolphin är en GameCube- och Wii-emulator som är open source och fri mjukvara." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin är för gammal för traverseringsservern" @@ -3784,7 +3792,7 @@ msgstr "Mata ut skiva" msgid "Embedded Frame Buffer (EFB)" msgstr "Inbäddad bildrutebuffert (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Tom" @@ -4115,7 +4123,7 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4140,11 +4148,11 @@ msgstr "Ange RSO-moduladressen:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4208,31 +4216,31 @@ msgstr "" "Fel: Efter \"{0}\" hittades {1} ({2:#x}) istället för sparningsmarkören {3} " "({4:#x}). Avbryter inläsning av snabbsparning…" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "Fel: GBA{0} misslyckades att initialisera kärnan" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "Fel: GBA{0} misslyckades att ladda BIOS-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "Fel: GBA{0} misslyckades att ladda ROM-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "Fel: GBA{0} misslyckades att ladda sparfilen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "Fel: GBA{0} misslyckades att öppna BIOS-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "Fel: GBA{0} misslyckades att öppna ROM-filen i {1}" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "Fel: GBA{0} misslyckades att öppna sparfilen i {1}" @@ -4413,7 +4421,7 @@ msgstr "Rörelseinmatning för extern kontroll" msgid "Extension Motion Simulation" msgstr "Rörelsesimulering för extern kontroll" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "Extern" @@ -4475,7 +4483,7 @@ msgstr "" "Misslyckades att öppna minneskortet:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "Misslyckades att lägga till denna session i nätspelsindex: %1" @@ -4491,7 +4499,7 @@ msgstr "Misslyckades att göra anspråk på interface för BT-genomsläpp: {0}" msgid "Failed to connect to Redump.org" msgstr "Misslyckades att ansluta till Redump.org" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "Misslyckades att ansluta till server: %1" @@ -4673,7 +4681,7 @@ msgstr "" "Misslyckades att läsa in {0}. Om du använder Windows 7, prova att installera " "uppdateringspaketet KB4019990." -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4968,10 +4976,6 @@ msgstr "Filstorleken i headern matchar inte minneskortets faktiska storlek." msgid "Filesystem" msgstr "Filsystem" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Filtrera symboler" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "Filter" @@ -5257,14 +5261,6 @@ msgstr "Helskärm" msgid "Function" msgstr "Funktion" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "Funktionsanropare" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "Funktionsanrop" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "Funktioner" @@ -5297,11 +5293,11 @@ msgstr "GBA-volym" msgid "GBA Window Size" msgstr "GBA-fönsterstorlek" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1:s ROM ändrad till \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBA%1:s ROM borttagen" @@ -5469,15 +5465,15 @@ msgstr "Spel-ID" msgid "Game ID:" msgstr "Spel-ID:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Spelstatus" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "Bytte spel till \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5485,11 +5481,11 @@ msgstr "" "Spelfilen har en annan hash; högerklicka på spelet, välj Egenskaper, gå till " "Verifiera-fliken och välj Verifiera integritet för att kontrollera hashen" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "Spelet har ett annat skivnummer" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "Spelet har en annan revision" @@ -5504,7 +5500,7 @@ msgstr "" "Spelet skrevs över med ett annat spels sparfil. Data kommer antagligen bli " "korrupt {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "Spelets region matchar inte" @@ -5750,7 +5746,7 @@ msgstr "Dölj sessioner som har startat" msgid "Hide Incompatible Sessions" msgstr "Dölj inkompatibla sessioner" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "Dölj andras GBA-fönster" @@ -5809,11 +5805,11 @@ msgstr "" "Lämplig för casual spel med 3+ spelare, eventuellt på instabila eller höga " "latensanslutningar." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "Värdauktoritet för indata avstängt" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "Värdauktoritet för indata påslaget" @@ -6272,7 +6268,7 @@ msgid "Interface" msgstr "Gränssnitt" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "Internt LZO-fel - komprimering misslyckades" @@ -6281,7 +6277,7 @@ msgstr "Internt LZO-fel - komprimering misslyckades" msgid "Internal LZO Error - decompression failed" msgstr "Internt LZO-fel - dekomprimering misslyckades" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6289,7 +6285,7 @@ msgstr "" "Internt LZO-fel - avkomprimering misslyckades ({0}) ({1}, {2}) \n" "Försök att läsa in snabbsparningen igen" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "Internt LZO-fel - lzo_init() misslyckades" @@ -6328,7 +6324,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "Ogiltigt paket %1: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "Ogiltigt spelar-ID" @@ -6336,7 +6332,7 @@ msgstr "Ogiltigt spelar-ID" msgid "Invalid RSO module address: %1" msgstr "Ogiltig RSO-moduladress: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "Ogiltig callstack" @@ -6536,7 +6532,7 @@ msgstr "Tangenter" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Sparka ut spelare" @@ -6555,7 +6551,7 @@ msgstr "Koreanska" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "&Ladda in ROM..." @@ -6856,7 +6852,7 @@ msgstr "" "

Om du är osäker kan du lämna detta omarkerat." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Lokalt" @@ -6904,7 +6900,7 @@ msgstr "" msgid "Loop" msgstr "Slinga" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "Tappade anslutningen till nätspelsservern..." @@ -6917,10 +6913,6 @@ msgstr "Låg" msgid "Lowest" msgstr "Lägsta" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5-kontrollsumma" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6973,7 +6965,7 @@ msgstr "Hantera NAND" msgid "Manual Texture Sampling" msgstr "Manuell textursampling" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "Mappning" @@ -6985,11 +6977,11 @@ msgstr "Mask-ROM" msgid "Match Found" msgstr "Sökträff hittades" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "Maxbuffert:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "Buffertstorleken ändrades till %1" @@ -7082,7 +7074,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "De interna datastrukturerna matchar inte." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7270,7 +7262,7 @@ msgstr "Nätspelsinställningar" msgid "Netherlands" msgstr "Nederländerna" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "Nätspel har desynkroniserats i NetPlay_GetButtonPress()" @@ -7407,7 +7399,7 @@ msgstr "Inget spel körs." msgid "No issues have been detected." msgstr "Inga problem upptäcktes." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "Inget matchande spel hittades" @@ -7445,7 +7437,7 @@ msgstr "Ingen inspelning laddad." msgid "No save data found." msgstr "Ingen spardata hittades." -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" "Ingen undo.dtm hittades, avbryter ångring av snabbsparningsinläsning för att " @@ -7467,7 +7459,7 @@ msgstr "Nordamerika" msgid "Not Set" msgstr "Inte angiven" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "Vissa spelare har inte detta spel. Vill du verkligen starta?" @@ -7490,7 +7482,7 @@ msgstr "" "För få lediga filer på destinationsminneskortet. Minst %n ledig(a) fil(er) " "krävs." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "Hittades inte" @@ -7548,7 +7540,7 @@ msgstr "Nunchuk-orientering" msgid "Nunchuk Stick" msgstr "Nunchuk-spak" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7669,7 +7661,7 @@ msgstr "Operatörer" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Alternativ" @@ -7686,7 +7678,7 @@ msgstr "Omloppsbana" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Övrigt" @@ -7865,7 +7857,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "Välj ett teckensnitt för felsökning" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "Ping" @@ -7898,12 +7890,12 @@ msgstr "Spela upp inspelning" msgid "Playback Options" msgstr "Uppspelningsalternativ" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "Spelare" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Spelare" @@ -7934,7 +7926,7 @@ msgstr "ROM i uttag %1:" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" "Möjlig desynkronisation upptäcktes: %1 kan ha desynkroniserat under bildruta " @@ -8212,7 +8204,7 @@ msgstr "Återställ" msgid "Record" msgstr "Spela in" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "Spela in inmatningar" @@ -8453,7 +8445,7 @@ msgstr "Återställ förval" msgid "Restore instruction" msgstr "Återställ instruktion" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Försök igen" @@ -8462,7 +8454,7 @@ msgstr "Försök igen" msgid "Return Speed" msgstr "Returhastighet" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "Revision" @@ -8520,7 +8512,7 @@ msgstr "Rulla vänster" msgid "Roll Right" msgstr "Rulla höger" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "Rum-ID" @@ -8566,7 +8558,7 @@ msgstr "Kör GBA-kärnor i dedikerade trådar" msgid "Russia" msgstr "Ryssland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD-kort" @@ -8598,6 +8590,10 @@ msgstr "SELECT" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8652,11 +8648,11 @@ msgid "Save File to" msgstr "Spara fil till" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "Sparfil" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "Sparfiler (*.sav);;Alla filer (*)" @@ -8682,7 +8678,7 @@ msgstr "Spara inspelning som" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Spara snabbsparning" @@ -8996,8 +8992,8 @@ msgid "Select a Directory" msgstr "Välj en mapp" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -9028,7 +9024,7 @@ msgstr "Välj ett spel" msgid "Select a title to install to NAND" msgstr "Välj en titel att installera till NAND-minnet" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "Välj e-Readerkort" @@ -9072,8 +9068,8 @@ msgstr "Den valda kontrollprofilen finns inte" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "Det valda spelet finns inte i spellistan!" @@ -9169,7 +9165,7 @@ msgstr "" "

Om du är osäker kan du välja OpenGL." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Skicka" @@ -9359,7 +9355,7 @@ msgstr "Visa GameCube" msgid "Show Germany" msgstr "Visa Tyskland" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "Visa överlägg för golfläge" @@ -9818,7 +9814,7 @@ msgstr "Starta med Riivolution-moddar" msgid "Start with Riivolution Patches..." msgstr "Starta med Riivolution-moddar..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "Startade spelet" @@ -9857,19 +9853,19 @@ msgstr "Stega ut" msgid "Step Over" msgstr "Stega över" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "Urstegningen lyckades!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "Urstegningen gjorde timeout!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "Överstegning pågår..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "Stegning lyckades!" @@ -9920,7 +9916,7 @@ msgstr "Avbryt uppspelning/inspelning" msgid "Stop Recording" msgstr "Stoppa inspelning" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "Stoppade spelet" @@ -9998,7 +9994,7 @@ msgstr "Penna" msgid "Success" msgstr "Klar" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "Lades till i nätspelindex" @@ -10120,7 +10116,7 @@ msgid "Symbol name:" msgstr "Symbolnamn" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Symboler" @@ -10333,7 +10329,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "Skivan kunde inte läsas (vid {0:#} - {1:#x})." -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Skivan som skulle sättas in hittades inte." @@ -10473,11 +10469,11 @@ msgstr "" "\n" "(MSAA med {0} samples hittades på default framebuffer)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "Kontrollsummorna stämmer inte!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "Kontrollsummorna stämmer!" @@ -10627,7 +10623,7 @@ msgstr "{0}-partitionen ligger inte på en giltig position." msgid "There are too many partitions in the first partition table." msgstr "Det finns för många partitioner i den första partitionstabellen." -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Det finns inget att ångra!" @@ -11083,8 +11079,8 @@ msgstr "Beröring" msgid "Traditional Chinese" msgstr "Traditionell kinesiska" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "Traverseringsfel" @@ -11266,18 +11262,18 @@ msgstr "" msgid "United States" msgstr "USA" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Okänd" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "Okänt DVD-kommando {0:08x} - katastrofalt fel" @@ -11848,7 +11844,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Varning" @@ -12073,7 +12069,7 @@ msgstr "" "fokus. Du kan ställa in ett tangentkommando för att låsa upp den." #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "Fönsterstorlek" @@ -12123,19 +12119,19 @@ msgstr "Skriv till logg och bryt" msgid "Write to Window" msgstr "Skriv till fönster" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "Fel skivnummer" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "Fel hash" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "Fel region" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "Fel revision" @@ -12377,7 +12373,7 @@ msgstr "förval" msgid "disconnected" msgstr "frånkopplad" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "e-Readerkort (*.raw);;Alla filer (*)" @@ -12423,7 +12419,7 @@ msgstr "föregående värde" msgid "m/s" msgstr "m/s" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12496,7 +12492,7 @@ msgstr "{0} misslyckades att synkronisera koder." msgid "{0} failed to synchronize." msgstr "{0} misslyckades att synkronisera." -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12509,7 +12505,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "{0} av {1} block. Komprimeringsgrad {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} var inte en mapp. Den har flyttats till *.original" diff --git a/Languages/po/tr.po b/Languages/po/tr.po index 2364053a47..2356f70df0 100644 --- a/Languages/po/tr.po +++ b/Languages/po/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: i286, 2022\n" "Language-Team: Turkish (http://www.transifex.com/delroth/dolphin-emu/" @@ -194,19 +194,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 katıldı" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 geçerli bir ROM değil" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -247,11 +247,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -286,19 +286,19 @@ msgstr "" msgid "& And" msgstr "& Ve" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -339,7 +339,7 @@ msgstr "&Otomatik Başlangıç" msgid "&Boot from DVD Backup" msgstr "&Yedek DVD Diskinden Önyükleme Başlat" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "&Çerçevesiz pencere" @@ -375,7 +375,7 @@ msgstr "&Çoğalt..." msgid "&Code" msgstr "&Kod" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -420,11 +420,11 @@ msgstr "&Diski Çıkart" msgid "&Emulation" msgstr "&Emülasyon" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -472,11 +472,11 @@ msgstr "&Yardım" msgid "&Hotkey Settings" msgstr "&Kısayol Ayarları" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "&İçeri oyun kaydı aktar" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -488,7 +488,7 @@ msgstr "&İçeri aktar" msgid "&Insert blr" msgstr "&BLR yerleştir" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -520,7 +520,7 @@ msgstr "&Hafıza" msgid "&Movie" msgstr "&Film" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -582,7 +582,7 @@ msgstr "&Kodu Sil" msgid "&Rename symbol" msgstr "&Sembolü yeniden adlandır" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "&Sıfırla" @@ -595,7 +595,7 @@ msgstr "&Kaynak Paketi Yöneticisi" msgid "&Save Symbol Map" msgstr "&Sembol Haritasını Kaydet" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -619,7 +619,7 @@ msgstr "" msgid "&Tools" msgstr "&Araçlar" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -690,7 +690,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -922,7 +922,7 @@ msgstr "" "Bu WAD'ı yüklemek geri dönülemeyecek şekilde eskisinin yerini alacaktır. " "Devam edilsin mi?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "Zaten bir diskin yerleştirilme işlemi sürüyor." @@ -1341,7 +1341,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1433,7 +1433,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1450,7 +1450,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "En-Boy Oranı:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "Denetleyici Noktalarını Ata" @@ -1503,7 +1503,7 @@ msgstr "Otomatik (640x528'in katları)" msgid "Auto Update Settings" msgstr "Otomatik Güncelleme Ayarları" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1766,7 +1766,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1812,12 +1812,12 @@ msgstr "" msgid "Buffer Size:" msgstr "Arabellek Boyutu:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "Arabellek:" @@ -1922,7 +1922,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2049,7 +2057,7 @@ msgstr "Değiştirilen hileler oyunu yeniden başlattığınızda etkili olacakt msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "Sohbet" @@ -2154,7 +2162,7 @@ msgstr "Kapat" msgid "Co&nfiguration" msgstr "Ya&pılandırma" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "Kod" @@ -2290,7 +2298,7 @@ msgid "Confirm on Stop" msgstr "Durdurmayı Onayla" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2346,7 +2354,7 @@ msgstr "" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2500,10 +2508,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "Kopyala" @@ -2654,7 +2662,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3062,7 +3070,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3245,7 +3253,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin geçiş sunucusu için çok eski" @@ -3563,7 +3571,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "Yerleşik Çerçeve Arabellği (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "Boş" @@ -3856,7 +3864,7 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3881,11 +3889,11 @@ msgstr "RSO modül adresini girin:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3945,31 +3953,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4146,7 +4154,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4206,7 +4214,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4222,7 +4230,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4384,7 +4392,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4659,10 +4667,6 @@ msgstr "" msgid "Filesystem" msgstr "Dosya sistemi" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "Sembolleri Filtrele" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4924,14 +4928,6 @@ msgstr "Tam Ekran" msgid "Function" msgstr "Fonksiyon" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4964,11 +4960,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5107,25 +5103,25 @@ msgstr "Oyun ID'si" msgid "Game ID:" msgstr "Oyun ID'si:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "Oyun Durumları" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5138,7 +5134,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5379,7 +5375,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5433,11 +5429,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5825,7 +5821,7 @@ msgid "Interface" msgstr "Arayüz" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "İç LZO Hatası - Sıkıştırma başarısız." @@ -5834,13 +5830,13 @@ msgstr "İç LZO Hatası - Sıkıştırma başarısız." msgid "Internal LZO Error - decompression failed" msgstr "Dahili LZO Hatası - genişletme başarısız" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "İç LZO Hatası - lzo_init() başarısız." @@ -5879,7 +5875,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5887,7 +5883,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6084,7 +6080,7 @@ msgstr "Tuşlar" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "Oyuncuyu At" @@ -6103,7 +6099,7 @@ msgstr "Korece" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6392,7 +6388,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "Yerel" @@ -6436,7 +6432,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6449,10 +6445,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 Sağlaması" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6500,7 +6492,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6512,11 +6504,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6604,7 +6596,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6779,7 +6771,7 @@ msgstr "" msgid "Netherlands" msgstr "Hollanda" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6916,7 +6908,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6951,7 +6943,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6971,7 +6963,7 @@ msgstr "" msgid "Not Set" msgstr "Ayarlanmamış" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6991,7 +6983,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -7047,7 +7039,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7164,7 +7156,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "Seçenekler" @@ -7181,7 +7173,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "Diğer" @@ -7360,7 +7352,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7393,12 +7385,12 @@ msgstr "Çekimi Oynat" msgid "Playback Options" msgstr "Oynatma Seçenekleri" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "Oyuncular" @@ -7427,7 +7419,7 @@ msgstr "" msgid "Port:" msgstr "Port:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7691,7 +7683,7 @@ msgstr "" msgid "Record" msgstr "Çek" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7921,7 +7913,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "Tekrar Dene" @@ -7930,7 +7922,7 @@ msgstr "Tekrar Dene" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7988,7 +7980,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -8029,7 +8021,7 @@ msgstr "" msgid "Russia" msgstr "Rusya" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8061,6 +8053,10 @@ msgstr "" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8115,11 +8111,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8145,7 +8141,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "Durumu Kaydet" @@ -8454,8 +8450,8 @@ msgid "Select a Directory" msgstr "Bir Dizin Seç" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8486,7 +8482,7 @@ msgstr "Bir oyun seç" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8530,8 +8526,8 @@ msgstr "Seçilmiş kontrolcü profili yok" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8595,7 +8591,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "Gönder" @@ -8775,7 +8771,7 @@ msgstr "GameCube'leri Göster" msgid "Show Germany" msgstr "Almanları göster" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9203,7 +9199,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9242,19 +9238,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9305,7 +9301,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9373,7 +9369,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9492,7 +9488,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "Semboller" @@ -9686,7 +9682,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "Takılacak olan disk bulunamadı." @@ -9801,11 +9797,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9938,7 +9934,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "Geri alacak hiçbirşey yok!" @@ -10340,8 +10336,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Geleneksel Çince" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10499,18 +10495,18 @@ msgstr "" msgid "United States" msgstr "ABD" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "Bilinmeyen" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -11024,7 +11020,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "Uyarı" @@ -11205,7 +11201,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11255,19 +11251,19 @@ msgstr "" msgid "Write to Window" msgstr "Pencereye Yaz" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11470,7 +11466,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11516,7 +11512,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11585,7 +11581,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11596,7 +11592,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" diff --git a/Languages/po/zh_CN.po b/Languages/po/zh_CN.po index 139cb62c90..b426b470fd 100644 --- a/Languages/po/zh_CN.po +++ b/Languages/po/zh_CN.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: 天绝星 , 2015-2022\n" "Language-Team: Chinese (China) (http://www.transifex.com/delroth/dolphin-emu/" @@ -50,6 +50,10 @@ msgid "" "Because this title is not for retail Wii consoles, Dolphin cannot ensure " "that it hasn't been tampered with, even if signatures appear valid." msgstr "" +"\n" +"\n" +"由于此游戏不适用于 Wii 零售版主机,Dolphin 无法确保其未被篡改,即使签名看起来" +"有效。" #: Source/Core/DolphinQt/MenuBar.cpp:1161 msgid "" @@ -202,19 +206,19 @@ msgstr "" "%2 对象\n" "当前帧: %3" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "%1 已加入" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "%1 已离开" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "%1 不是有效的 ROM" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "%1 控制中" @@ -255,11 +259,11 @@ msgstr "%1, %2, %3, %4" msgid "%1: %2" msgstr "%1: %2" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -294,19 +298,19 @@ msgstr "%n 个地址已移除。" msgid "& And" msgstr "& 与" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "&1x" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "&2x" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "&3x" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "&4x" @@ -347,7 +351,7 @@ msgstr "自动开始游戏(&A)" msgid "&Boot from DVD Backup" msgstr "从 DVD 备份中启动(&B)" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "无边框窗口(&B)" @@ -383,7 +387,7 @@ msgstr "克隆...(&C)" msgid "&Code" msgstr "代码(&C)" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "连接(&C)" @@ -428,11 +432,11 @@ msgstr "弹出光盘(&E)" msgid "&Emulation" msgstr "模拟(&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "导出游戏存档...(&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "导出状态...(&E)" @@ -480,11 +484,11 @@ msgstr "帮助(&H)" msgid "&Hotkey Settings" msgstr "热键设置(&H)" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "导入游戏存档...(&I)" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "导入状态...(&I)" @@ -496,7 +500,7 @@ msgstr "导入...(&I)" msgid "&Insert blr" msgstr "插入 blr (&I)" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "帧间混合(&I)" @@ -528,7 +532,7 @@ msgstr "内存(&M)" msgid "&Movie" msgstr "影片(&M)" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "静音(&M)" @@ -590,7 +594,7 @@ msgstr "移除代码(&R)" msgid "&Rename symbol" msgstr "重命名符号(&R)" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "重置游戏(&R)" @@ -603,7 +607,7 @@ msgstr "资源包管理器(&R)" msgid "&Save Symbol Map" msgstr "保存符号映射(&S)" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "扫描 e-Reader 卡...(&S)" @@ -627,7 +631,7 @@ msgstr "线程(&T)" msgid "&Tools" msgstr "工具(&T)" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "卸载 ROM (&U)" @@ -698,7 +702,7 @@ msgid "--> %1" msgstr "--> %1" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -928,7 +932,7 @@ msgstr "" "\n" "安装此 WAD 替换是不可逆转的。是否继续?" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "光盘已可插入。" @@ -1385,7 +1389,7 @@ msgstr "总是" msgid "Always Connected" msgstr "始终连接" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "总在最前(&T)" @@ -1479,7 +1483,7 @@ msgstr "确定要删除该文件吗?" msgid "Are you sure you want to delete this pack?" msgstr "确定要删除这个包吗?" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "确定要退出联机吗?" @@ -1496,7 +1500,7 @@ msgstr "长宽比" msgid "Aspect Ratio:" msgstr "长宽比:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "指定控制器端口" @@ -1549,7 +1553,7 @@ msgstr "自动(640x528 的倍数)" msgid "Auto Update Settings" msgstr "自动更新设置" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1818,7 +1822,7 @@ msgstr "中断" msgid "Breakpoint" msgstr "断点" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "遇到断点!跳出已中止。" @@ -1864,12 +1868,12 @@ msgstr "浏览联机会话...(&N)" msgid "Buffer Size:" msgstr "缓冲区大小:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "缓冲区大小更改为 %1" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "缓冲区:" @@ -1982,7 +1986,15 @@ msgstr "校准周期" msgid "Call display list at %1 with size %2" msgstr "调用位于 %1 大小为 %2 的显示列表" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "调用堆栈" @@ -2113,7 +2125,7 @@ msgstr "游戏重启后更改的金手指才会生效。" msgid "Channel Partition (%1)" msgstr "通道分区 (%1)" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "聊天" @@ -2218,7 +2230,7 @@ msgstr "关闭" msgid "Co&nfiguration" msgstr "程序设置(&N)" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "代码" @@ -2358,7 +2370,7 @@ msgid "Confirm on Stop" msgstr "停止游戏时确认" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "确认" @@ -2412,7 +2424,7 @@ msgstr "是否连接到互联网并执行在线系统更新?" msgid "Connected" msgstr "已连接" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "正在连接" @@ -2578,10 +2590,10 @@ msgstr "" "正在转换...\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "复制" @@ -2746,7 +2758,7 @@ msgstr "" "您是否是在移动模拟器目录后收到这个消息?\n" "如果是这样,您可能需要在选项中重新指定您的存储卡位置。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "无法查找中心服务器" @@ -2989,7 +3001,7 @@ msgstr "减小内部分辨率" #: Source/Core/Core/HotkeyManager.cpp:183 msgid "Decrease Selected State Slot" -msgstr "" +msgstr "减少选定的状态插槽" #: Source/Core/Core/FreeLookManager.cpp:106 msgid "Decrease X" @@ -3169,7 +3181,7 @@ msgstr "" "\n" "你真的想切换到 Direct3D 11 吗?如果不确定,请选择“否”。" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "断开连接(&C)" @@ -3369,7 +3381,7 @@ msgstr "Dolphin 未能完成请求的操作。" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "Dolphin 是一个免费开源的 GameCube/Wii 模拟器。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "Dolphin 版本太旧,穿透服务器不支持" @@ -3705,7 +3717,7 @@ msgstr "弹出光盘" msgid "Embedded Frame Buffer (EFB)" msgstr "内置帧缓冲 (EFB)" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "空" @@ -4020,7 +4032,7 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -4045,11 +4057,11 @@ msgstr "请输入 RSO 模块地址:" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -4111,31 +4123,31 @@ msgstr "" "错误:在 “{0}” 之后,发现了 {1} ({2:#x}) 而非存档标记 {3} ({4:#x})。正在中止" "加载即时存档..." -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "错误: GBA{0} 创建核心失败" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "错误: GBA{0} 在 {1} 中加载 BIOS 失败" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "错误: GBA{0} 在 {1} 中加载 ROM 失败" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "错误: GBA{0} 在 {1} 中加载存档失败" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "错误: GBA{0} 在 {1} 中打开 BIOS 失败" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "错误: GBA{0} 在 {1} 中打开 ROM 失败" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "错误: GBA{0} 在 {1} 中打开存档失败" @@ -4328,7 +4340,7 @@ msgstr "扩展体感输入" msgid "Extension Motion Simulation" msgstr "扩展体感模拟" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "外部" @@ -4390,7 +4402,7 @@ msgstr "" "打开存储卡失败:\n" "%1" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "无法将此会话添加到联机索引: %1" @@ -4406,7 +4418,7 @@ msgstr "申请蓝牙直通接口失败: {0}" msgid "Failed to connect to Redump.org" msgstr "连接 Redump.org 失败" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "连接服务器失败: %1" @@ -4576,7 +4588,7 @@ msgid "" "update package." msgstr "加载 {0} 失败。如果你使用的是 Windows 7,请尝试安装 KB4019990 更新包。" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4863,10 +4875,6 @@ msgstr "标头中的文件大小与实际卡大小不匹配。" msgid "Filesystem" msgstr "文件系统" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "过滤符号" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "过滤" @@ -5147,14 +5155,6 @@ msgstr "全屏" msgid "Function" msgstr "函数" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "函数调用者" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "函数调用" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "函数" @@ -5187,11 +5187,11 @@ msgstr "GBA 音量" msgid "GBA Window Size" msgstr "GBA 窗口大小" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "GBA%1 ROM 更改为 \"%2\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "GBA%1 ROM 已禁用" @@ -5358,15 +5358,15 @@ msgstr "游戏 ID" msgid "Game ID:" msgstr "游戏 ID:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "游戏状态" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "游戏更改为 \"%1\"" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" @@ -5374,11 +5374,11 @@ msgstr "" "游戏文件具有不同的哈希值;右键单击文件,选择属性,切换到验证选项卡,然后选择" "验证完整性以检查哈希值" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "游戏具有不同的光盘编号" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "游戏具有不同的修订版" @@ -5391,7 +5391,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "游戏覆盖了其他的游戏存档,将会破坏数据 {0:#x}, {1:#x}" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "游戏区域不匹配" @@ -5635,7 +5635,7 @@ msgstr "隐藏正在游戏的会话" msgid "Hide Incompatible Sessions" msgstr "隐藏不兼容的会话" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "隐藏远程 GBA" @@ -5692,11 +5692,11 @@ msgstr "" "增加其他人的延迟。\n" "适合 3 人以上的休闲游戏,在连接不稳定或高延迟下或许也能运作。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "主机输入优先权已禁用" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "主机输入优先权已启用" @@ -6007,7 +6007,7 @@ msgstr "增加内部分辨率" #: Source/Core/Core/HotkeyManager.cpp:182 msgid "Increase Selected State Slot" -msgstr "" +msgstr "增加选定的状态插槽" #: Source/Core/Core/FreeLookManager.cpp:105 msgid "Increase X" @@ -6134,7 +6134,7 @@ msgid "Interface" msgstr "界面" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "内部 LZO 错误 - 压缩失败" @@ -6143,7 +6143,7 @@ msgstr "内部 LZO 错误 - 压缩失败" msgid "Internal LZO Error - decompression failed" msgstr "内部 LZO 错误 - 解压失败" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" @@ -6151,7 +6151,7 @@ msgstr "" "内部 LZO 错误 - 解压失败 ({0}) ({1}, {2})\n" "请尝试重新加载状态" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "内部 LZO 错误 - lzo_init() 失败" @@ -6190,7 +6190,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "包 %1 无效: %2" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "无效玩家 ID" @@ -6198,7 +6198,7 @@ msgstr "无效玩家 ID" msgid "Invalid RSO module address: %1" msgstr "无效 RSO 模块地址: %1" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "无效调用堆栈" @@ -6397,7 +6397,7 @@ msgstr "按键" msgid "KiB" msgstr "KiB" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "踢除玩家" @@ -6416,7 +6416,7 @@ msgstr "韩语" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "载入 ROM...(&O)" @@ -6716,7 +6716,7 @@ msgstr "" "从 User/Load/GraphicsMods/ 加载图形模组。

如果不确" "定,请不要勾选此项。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "本地" @@ -6763,7 +6763,7 @@ msgstr "" msgid "Loop" msgstr "循环" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "丢失联机服务器连接..." @@ -6776,10 +6776,6 @@ msgstr "低" msgid "Lowest" msgstr "最低" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "MD5 校验和" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "MD5:" @@ -6830,7 +6826,7 @@ msgstr "管理 NAND" msgid "Manual Texture Sampling" msgstr "手动纹理采样" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "映射" @@ -6842,11 +6838,11 @@ msgstr "伪装 ROM" msgid "Match Found" msgstr "找到匹配" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "最大缓冲区:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "最大缓冲区大小更改为 %1" @@ -6936,7 +6932,7 @@ msgstr "标头中的空闲区块数与实际未使用的区块不匹配。" msgid "Mismatch between internal data structures." msgstr "内部数据结构不匹配。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -7120,7 +7116,7 @@ msgstr "联机设定" msgid "Netherlands" msgstr "荷兰" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "联机在 NetPlay_GetButtonPress() 中不同步" @@ -7257,7 +7253,7 @@ msgstr "没有游戏运行。" msgid "No issues have been detected." msgstr "没有发现问题。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "未找到匹配的游戏" @@ -7294,7 +7290,7 @@ msgstr "没有录制被载入。" msgid "No save data found." msgstr "没有找到存档数据。" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "未找到 undo.dtm 文件,为防止影片出现不同步撤销载入状态操作被取消。" @@ -7314,7 +7310,7 @@ msgstr "北美" msgid "Not Set" msgstr "未设置" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "并不是所有玩家都有该游戏。你真的要开始吗?" @@ -7334,7 +7330,7 @@ msgid "" "required." msgstr "目标存储卡上没有足够的空闲文件数。至少需要 %n 个文件数。 " -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "未找到" @@ -7390,7 +7386,7 @@ msgstr "双节棍控制器方向" msgid "Nunchuk Stick" msgstr "双节棍控制器" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7511,7 +7507,7 @@ msgstr "运算符" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "选项" @@ -7528,7 +7524,7 @@ msgstr "轨道式" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "其他" @@ -7707,7 +7703,7 @@ msgstr "PiB" msgid "Pick a debug font" msgstr "选择调试字体" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "延迟" @@ -7740,12 +7736,12 @@ msgstr "播放录制" msgid "Playback Options" msgstr "回放选项" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "玩家" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "玩家" @@ -7774,7 +7770,7 @@ msgstr "端口 %1 ROM:" msgid "Port:" msgstr "端口 :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "检测到可能的非同步异常: %1 或许已在帧 %2 处不同步 " @@ -8041,7 +8037,7 @@ msgstr "回到中心" msgid "Record" msgstr "录制" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "录制输入" @@ -8279,7 +8275,7 @@ msgstr "恢复默认值" msgid "Restore instruction" msgstr "恢复指令" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "重试" @@ -8288,7 +8284,7 @@ msgstr "重试" msgid "Return Speed" msgstr "返回速度" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "修订版" @@ -8346,7 +8342,7 @@ msgstr "左倾" msgid "Roll Right" msgstr "右倾" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "房间 ID" @@ -8390,7 +8386,7 @@ msgstr "在独占线程中运行 GBA 内核" msgid "Russia" msgstr "俄罗斯" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "SD 卡" @@ -8422,6 +8418,10 @@ msgstr "选择" msgid "SHA-1:" msgstr "SHA-1:" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "SP1:" @@ -8476,11 +8476,11 @@ msgid "Save File to" msgstr "保存文件到" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "游戏存档" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "游戏存档文件 (*.sav);;所有文件 (*)" @@ -8506,7 +8506,7 @@ msgstr "录制文件另存为" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "保存状态" @@ -8815,8 +8815,8 @@ msgid "Select a Directory" msgstr "选择目录" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8847,7 +8847,7 @@ msgstr "选择游戏" msgid "Select a title to install to NAND" msgstr "选择要安装到 NAND 的软件" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "选择 e-Reader 卡" @@ -8891,8 +8891,8 @@ msgstr "所选控制器预设不存在" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "所选游戏在游戏列表中不存在!" @@ -8977,7 +8977,7 @@ msgstr "" "的一个以达到最好的模拟效果。

如果不确定,请选" "择“OpenGL”。" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "发送" @@ -9163,7 +9163,7 @@ msgstr "显示 GameCube" msgid "Show Germany" msgstr "显示德国" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "叠加显示高尔夫模式" @@ -9611,7 +9611,7 @@ msgstr "启动时附加 Riivolution 补丁" msgid "Start with Riivolution Patches..." msgstr "启动时附加 Riivolution 补丁..." -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "游戏已启动" @@ -9650,19 +9650,19 @@ msgstr "单步跳出" msgid "Step Over" msgstr "单步跳过" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "跳出成功!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "跳出超时!" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "跳过正在处理..." -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "单步成功!" @@ -9713,7 +9713,7 @@ msgstr "停止播放/录制输入" msgid "Stop Recording" msgstr "停止录制" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "游戏已停止" @@ -9787,7 +9787,7 @@ msgstr "手写笔" msgid "Success" msgstr "成功" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "已成功加入联机索引" @@ -9913,7 +9913,7 @@ msgid "Symbol name:" msgstr "符号名:" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "符号" @@ -10114,7 +10114,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "无法读取此光盘 (at {0:#x} - {1:#x})。" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "无法找到已可插入的光盘。" @@ -10246,11 +10246,11 @@ msgstr "" "\n" "(在默认帧缓冲区上发现 MSAA 的 {0} 个样本)" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "哈希值不匹配!" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "哈希值匹配!" @@ -10390,7 +10390,7 @@ msgstr "分区 {0} 未正确对齐。" msgid "There are too many partitions in the first partition table." msgstr "第一个分区表中的分区太多。" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "没有需要撤销的操作。" @@ -10815,8 +10815,8 @@ msgstr "接触" msgid "Traditional Chinese" msgstr "繁体中文" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "穿透错误" @@ -10990,18 +10990,18 @@ msgstr "" msgid "United States" msgstr "美国" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "未知 DVD 命令 {0:08x} - 致命错误" @@ -11557,7 +11557,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "警告" @@ -11766,7 +11766,7 @@ msgid "" msgstr "只要有活动窗口就把鼠标光标锁定到渲染部件。你可以设置一个热键来解锁。 " #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "窗口大小" @@ -11816,19 +11816,19 @@ msgstr "写入到日志并中断" msgid "Write to Window" msgstr "写入到窗口" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "光盘编号错误" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "哈希值错误" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "区域错误" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "错误修订版" @@ -12060,7 +12060,7 @@ msgstr "默认" msgid "disconnected" msgstr "连接已断开" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "e-Reader 卡 (*.raw);;所有文件 (*)" @@ -12106,7 +12106,7 @@ msgstr "上个值" msgid "m/s" msgstr "米/秒" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -12177,7 +12177,7 @@ msgstr "{0} 同步代码失败。" msgid "{0} failed to synchronize." msgstr "{0} 同步失败。" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -12190,7 +12190,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "区块 {0} ,共 {1} 。压缩率 {2}%" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "{0} 不是一个目录,已移动至 *.original" diff --git a/Languages/po/zh_TW.po b/Languages/po/zh_TW.po index 62e06dc8d7..797b9d1af3 100644 --- a/Languages/po/zh_TW.po +++ b/Languages/po/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Dolphin Emulator\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-21 20:14+0200\n" +"POT-Creation-Date: 2022-09-03 18:21+0200\n" "PO-Revision-Date: 2013-01-23 13:48+0000\n" "Last-Translator: Narusawa Yui , 2016,2018\n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/delroth/dolphin-" @@ -177,19 +177,19 @@ msgid "" "Current Frame: %3" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:888 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:889 msgid "%1 has joined" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:893 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:894 msgid "%1 has left" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 msgid "%1 is not a valid ROM" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1015 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1016 msgid "%1 is now golfing" msgstr "" @@ -230,11 +230,11 @@ msgstr "" msgid "%1: %2" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:141 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:141 msgid "%1[%2]: %3" msgstr "%1[%2]: %3" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:129 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:129 msgid "%1[%2]: %3 %" msgstr "%1[%2]: %3 %" @@ -269,19 +269,19 @@ msgstr "" msgid "& And" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:428 +#: Source/Core/DolphinQt/GBAWidget.cpp:430 msgid "&1x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:430 +#: Source/Core/DolphinQt/GBAWidget.cpp:432 msgid "&2x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:432 +#: Source/Core/DolphinQt/GBAWidget.cpp:434 msgid "&3x" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:434 +#: Source/Core/DolphinQt/GBAWidget.cpp:436 msgid "&4x" msgstr "" @@ -322,7 +322,7 @@ msgstr "自動啟動 (&A)" msgid "&Boot from DVD Backup" msgstr "從 DVD 備份開機 (&B)" -#: Source/Core/DolphinQt/GBAWidget.cpp:437 +#: Source/Core/DolphinQt/GBAWidget.cpp:439 msgid "&Borderless Window" msgstr "" @@ -358,7 +358,7 @@ msgstr "相容版 (&C)" msgid "&Code" msgstr "代碼 (&C)" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "&Connected" msgstr "" @@ -403,11 +403,11 @@ msgstr "退出碟片 (&E)" msgid "&Emulation" msgstr "模擬 (&E)" -#: Source/Core/DolphinQt/GBAWidget.cpp:409 +#: Source/Core/DolphinQt/GBAWidget.cpp:411 msgid "&Export Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:417 +#: Source/Core/DolphinQt/GBAWidget.cpp:419 msgid "&Export State..." msgstr "" @@ -455,11 +455,11 @@ msgstr "說明(&H)" msgid "&Hotkey Settings" msgstr "快捷鍵設定(&D)" -#: Source/Core/DolphinQt/GBAWidget.cpp:406 +#: Source/Core/DolphinQt/GBAWidget.cpp:408 msgid "&Import Save Game..." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:414 +#: Source/Core/DolphinQt/GBAWidget.cpp:416 msgid "&Import State..." msgstr "" @@ -471,7 +471,7 @@ msgstr "匯入... (&I)" msgid "&Insert blr" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:447 +#: Source/Core/DolphinQt/GBAWidget.cpp:449 msgid "&Interframe Blending" msgstr "" @@ -503,7 +503,7 @@ msgstr "記憶卡(&M)" msgid "&Movie" msgstr "影片(&M)" -#: Source/Core/DolphinQt/GBAWidget.cpp:420 +#: Source/Core/DolphinQt/GBAWidget.cpp:422 msgid "&Mute" msgstr "" @@ -565,7 +565,7 @@ msgstr "移除代碼 (&R)" msgid "&Rename symbol" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:400 +#: Source/Core/DolphinQt/GBAWidget.cpp:402 #: Source/Core/DolphinQt/MenuBar.cpp:312 msgid "&Reset" msgstr "重新啟動(&R)" @@ -578,7 +578,7 @@ msgstr "" msgid "&Save Symbol Map" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:396 +#: Source/Core/DolphinQt/GBAWidget.cpp:398 msgid "&Scan e-Reader Card(s)..." msgstr "" @@ -602,7 +602,7 @@ msgstr "" msgid "&Tools" msgstr "工具(&T)" -#: Source/Core/DolphinQt/GBAWidget.cpp:392 +#: Source/Core/DolphinQt/GBAWidget.cpp:394 msgid "&Unload ROM" msgstr "" @@ -673,7 +673,7 @@ msgid "--> %1" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp:298 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:692 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:693 #: Source/Core/DolphinQt/RiivolutionBootWidget.cpp:167 #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:99 msgid "..." @@ -895,7 +895,7 @@ msgid "" "Installing this WAD will replace it irreversibly. Continue?" msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:560 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:564 msgid "A disc is already about to be inserted." msgstr "" @@ -1312,7 +1312,7 @@ msgstr "" msgid "Always Connected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:442 +#: Source/Core/DolphinQt/GBAWidget.cpp:444 msgid "Always on &Top" msgstr "" @@ -1404,7 +1404,7 @@ msgstr "" msgid "Are you sure you want to delete this pack?" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:476 msgid "Are you sure you want to quit NetPlay?" msgstr "" @@ -1421,7 +1421,7 @@ msgstr "" msgid "Aspect Ratio:" msgstr "畫面比例:" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:269 msgid "Assign Controller Ports" msgstr "" @@ -1474,7 +1474,7 @@ msgstr "自動 (640x528 的倍數)" msgid "Auto Update Settings" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:457 msgid "" "Auto internal resolution is not allowed in strict sync mode, as it depends " "on window size.\n" @@ -1735,7 +1735,7 @@ msgstr "" msgid "Breakpoint" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:498 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:519 msgid "Breakpoint encountered! Step out aborted." msgstr "" @@ -1781,12 +1781,12 @@ msgstr "" msgid "Buffer Size:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:904 msgid "Buffer size changed to %1" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:133 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Buffer:" msgstr "緩衝:" @@ -1891,7 +1891,15 @@ msgstr "" msgid "Call display list at %1 with size %2" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:106 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:137 +msgid "Callers" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:133 +msgid "Calls" +msgstr "" + +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:125 msgid "Callstack" msgstr "" @@ -2017,7 +2025,7 @@ msgstr "" msgid "Channel Partition (%1)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:239 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:240 msgid "Chat" msgstr "聊天" @@ -2122,7 +2130,7 @@ msgstr "關閉" msgid "Co&nfiguration" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:30 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:31 msgid "Code" msgstr "" @@ -2258,7 +2266,7 @@ msgid "Confirm on Stop" msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1228 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:474 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:475 #: Source/Core/DolphinQt/ResourcePackManager.cpp:239 msgid "Confirmation" msgstr "" @@ -2312,7 +2320,7 @@ msgstr "連接至網路並執行線上的系統更新?" msgid "Connected" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:690 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:691 msgid "Connecting" msgstr "" @@ -2466,10 +2474,10 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:265 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:682 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:710 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:738 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:266 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:683 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:711 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:739 msgid "Copy" msgstr "複製" @@ -2612,7 +2620,7 @@ msgid "" "options." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 msgid "Couldn't look up central server" msgstr "" @@ -3020,7 +3028,7 @@ msgid "" "Do you really want to switch to Direct3D 11? If unsure, select 'No'." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:382 +#: Source/Core/DolphinQt/GBAWidget.cpp:384 msgid "Dis&connected" msgstr "" @@ -3201,7 +3209,7 @@ msgstr "" msgid "Dolphin is a free and open-source GameCube and Wii emulator." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:975 msgid "Dolphin is too old for traversal server" msgstr "" @@ -3519,7 +3527,7 @@ msgstr "" msgid "Embedded Frame Buffer (EFB)" msgstr "" -#: Source/Core/Core/State.cpp:504 +#: Source/Core/Core/State.cpp:497 msgid "Empty" msgstr "" @@ -3804,7 +3812,7 @@ msgstr "" #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:261 #: Source/Core/DolphinQt/Debugger/WatchWidget.cpp:378 #: Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp:241 -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/GCMemcardManager.cpp:346 #: Source/Core/DolphinQt/GCMemcardManager.cpp:376 #: Source/Core/DolphinQt/Main.cpp:207 Source/Core/DolphinQt/Main.cpp:223 @@ -3829,11 +3837,11 @@ msgstr "" #: Source/Core/DolphinQt/MenuBar.cpp:1621 #: Source/Core/DolphinQt/MenuBar.cpp:1671 #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:315 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:455 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:715 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:958 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1076 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1086 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:456 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1077 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1087 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:334 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:340 #: Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp:347 @@ -3893,31 +3901,31 @@ msgid "" "#x}). Aborting savestate load..." msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:190 +#: Source/Core/Core/HW/GBACore.cpp:191 msgid "Error: GBA{0} failed to create core" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:345 +#: Source/Core/Core/HW/GBACore.cpp:346 msgid "Error: GBA{0} failed to load the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:210 +#: Source/Core/Core/HW/GBACore.cpp:211 msgid "Error: GBA{0} failed to load the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:364 +#: Source/Core/Core/HW/GBACore.cpp:365 msgid "Error: GBA{0} failed to load the save in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:339 +#: Source/Core/Core/HW/GBACore.cpp:340 msgid "Error: GBA{0} failed to open the BIOS in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:180 +#: Source/Core/Core/HW/GBACore.cpp:181 msgid "Error: GBA{0} failed to open the ROM in {1}" msgstr "" -#: Source/Core/Core/HW/GBACore.cpp:358 +#: Source/Core/Core/HW/GBACore.cpp:359 msgid "Error: GBA{0} failed to open the save in {1}" msgstr "" @@ -4094,7 +4102,7 @@ msgstr "" msgid "Extension Motion Simulation" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:499 msgid "External" msgstr "" @@ -4154,7 +4162,7 @@ msgid "" "%1" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:433 msgid "Failed to add this session to the NetPlay index: %1" msgstr "" @@ -4170,7 +4178,7 @@ msgstr "" msgid "Failed to connect to Redump.org" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:959 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:960 msgid "Failed to connect to server: %1" msgstr "" @@ -4332,7 +4340,7 @@ msgid "" "update package." msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:577 +#: Source/Core/DolphinQt/GBAWidget.cpp:579 #: Source/Core/DolphinQt/MainWindow.cpp:1602 #: Source/Core/DolphinQt/RenderWidget.cpp:124 msgid "Failed to open '%1'" @@ -4607,10 +4615,6 @@ msgstr "" msgid "Filesystem" msgstr "檔案系統" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:103 -msgid "Filter Symbols" -msgstr "" - #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:102 msgid "Filters" msgstr "" @@ -4872,14 +4876,6 @@ msgstr "全螢幕" msgid "Function" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:130 -msgid "Function callers" -msgstr "" - -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:122 -msgid "Function calls" -msgstr "" - #: Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp:283 msgid "Functions" msgstr "" @@ -4912,11 +4908,11 @@ msgstr "" msgid "GBA Window Size" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:810 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:811 msgid "GBA%1 ROM changed to \"%2\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:815 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:816 msgid "GBA%1 ROM disabled" msgstr "" @@ -5055,25 +5051,25 @@ msgstr "遊戲 ID" msgid "Game ID:" msgstr "遊戲 ID :" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Game Status" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:802 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:803 msgid "Game changed to \"%1\"" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:620 msgid "" "Game file has a different hash; right-click it, select Properties, switch to " "the Verify tab, and select Verify Integrity to check the hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Game has a different disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Game has a different revision" msgstr "" @@ -5086,7 +5082,7 @@ msgid "" "Game overwrote with another games save. Data corruption ahead {0:#x}, {1:#x}" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Game region does not match" msgstr "" @@ -5327,7 +5323,7 @@ msgstr "" msgid "Hide Incompatible Sessions" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:206 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:207 msgid "Hide Remote GBAs" msgstr "" @@ -5381,11 +5377,11 @@ msgid "" "latency connections." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority disabled" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:912 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:913 msgid "Host input authority enabled" msgstr "" @@ -5773,7 +5769,7 @@ msgid "Interface" msgstr "界面" #: Source/Core/Core/NetPlayCommon.cpp:67 Source/Core/Core/NetPlayCommon.cpp:151 -#: Source/Core/Core/State.cpp:420 +#: Source/Core/Core/State.cpp:413 msgid "Internal LZO Error - compression failed" msgstr "內部 LZO 錯誤 - 壓縮失敗" @@ -5782,13 +5778,13 @@ msgstr "內部 LZO 錯誤 - 壓縮失敗" msgid "Internal LZO Error - decompression failed" msgstr "" -#: Source/Core/Core/State.cpp:565 +#: Source/Core/Core/State.cpp:558 msgid "" "Internal LZO Error - decompression failed ({0}) ({1}, {2}) \n" "Try loading the state again" msgstr "" -#: Source/Core/Core/State.cpp:670 +#: Source/Core/Core/State.cpp:663 msgid "Internal LZO Error - lzo_init() failed" msgstr "內部 LZO 錯誤 - lzo_init() 失敗" @@ -5827,7 +5823,7 @@ msgid "Invalid Pack %1 provided: %2" msgstr "" #: Source/Core/DolphinQt/NetPlay/ChunkedProgressDialog.cpp:26 -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:23 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:23 msgid "Invalid Player ID" msgstr "" @@ -5835,7 +5831,7 @@ msgstr "" msgid "Invalid RSO module address: %1" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:317 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:323 msgid "Invalid callstack" msgstr "" @@ -6032,7 +6028,7 @@ msgstr "" msgid "KiB" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:267 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:268 msgid "Kick Player" msgstr "" @@ -6051,7 +6047,7 @@ msgstr "Korean" msgid "L" msgstr "L" -#: Source/Core/DolphinQt/GBAWidget.cpp:388 +#: Source/Core/DolphinQt/GBAWidget.cpp:390 msgid "L&oad ROM..." msgstr "" @@ -6340,7 +6336,7 @@ msgid "" "

If unsure, leave this unchecked." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:503 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:504 msgid "Local" msgstr "" @@ -6384,7 +6380,7 @@ msgstr "" msgid "Loop" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:952 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:953 msgid "Lost connection to NetPlay server..." msgstr "" @@ -6397,10 +6393,6 @@ msgstr "" msgid "Lowest" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:43 -msgid "MD5 Checksum" -msgstr "" - #: Source/Core/DolphinQt/Config/VerifyWidget.cpp:74 msgid "MD5:" msgstr "" @@ -6448,7 +6440,7 @@ msgstr "" msgid "Manual Texture Sampling" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Mapping" msgstr "" @@ -6460,11 +6452,11 @@ msgstr "" msgid "Match Found" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:934 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:935 msgid "Max Buffer:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:902 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:903 msgid "Max buffer size changed to %1" msgstr "" @@ -6552,7 +6544,7 @@ msgstr "" msgid "Mismatch between internal data structures." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1078 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:1079 msgid "" "Mismatched ROMs\n" "Selected: {0}\n" @@ -6727,7 +6719,7 @@ msgstr "" msgid "Netherlands" msgstr "" -#: Source/Core/Core/NetPlayClient.cpp:2733 +#: Source/Core/Core/NetPlayClient.cpp:2729 msgid "Netplay has desynced in NetPlay_GetButtonPress()" msgstr "" @@ -6864,7 +6856,7 @@ msgstr "" msgid "No issues have been detected." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "No matching game was found" msgstr "" @@ -6899,7 +6891,7 @@ msgstr "" msgid "No save data found." msgstr "" -#: Source/Core/Core/State.cpp:761 +#: Source/Core/Core/State.cpp:754 msgid "No undo.dtm found, aborting undo load state to prevent movie desyncs" msgstr "" @@ -6919,7 +6911,7 @@ msgstr "" msgid "Not Set" msgstr "未設定" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:449 msgid "Not all players have the game. Do you really want to start?" msgstr "" @@ -6939,7 +6931,7 @@ msgid "" "required." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:628 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:629 msgid "Not found" msgstr "" @@ -6995,7 +6987,7 @@ msgstr "" msgid "Nunchuk Stick" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:616 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:617 #: Source/Core/DolphinQt/NKitWarningDialog.cpp:57 #: qtbase/src/gui/kernel/qplatformtheme.cpp:708 msgid "OK" @@ -7112,7 +7104,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Mapping/GCPadEmu.cpp:37 #: Source/Core/DolphinQt/Config/Mapping/WiimoteEmuGeneral.cpp:70 #: Source/Core/DolphinQt/ConvertDialog.cpp:81 -#: Source/Core/DolphinQt/GBAWidget.cpp:425 +#: Source/Core/DolphinQt/GBAWidget.cpp:427 msgid "Options" msgstr "選項" @@ -7129,7 +7121,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp:86 #: Source/Core/DolphinQt/Config/Graphics/HacksWidget.cpp:98 #: Source/Core/DolphinQt/Config/Mapping/FreeLookGeneral.cpp:29 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:201 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 msgid "Other" msgstr "" @@ -7308,7 +7300,7 @@ msgstr "" msgid "Pick a debug font" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Ping" msgstr "" @@ -7341,12 +7333,12 @@ msgstr "播放錄像" msgid "Playback Options" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Player" msgstr "" #: Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp:224 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:262 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:263 msgid "Players" msgstr "玩家" @@ -7375,7 +7367,7 @@ msgstr "" msgid "Port:" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:945 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:946 msgid "Possible desync detected: %1 might have desynced at frame %2" msgstr "" @@ -7637,7 +7629,7 @@ msgstr "" msgid "Record" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:202 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:203 msgid "Record Inputs" msgstr "" @@ -7867,7 +7859,7 @@ msgstr "" msgid "Restore instruction" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:716 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:717 #: qtbase/src/gui/kernel/qplatformtheme.cpp:726 msgid "Retry" msgstr "" @@ -7876,7 +7868,7 @@ msgstr "" msgid "Return Speed" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:611 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:612 msgid "Revision" msgstr "" @@ -7934,7 +7926,7 @@ msgstr "" msgid "Roll Right" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:497 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:498 msgid "Room ID" msgstr "" @@ -7975,7 +7967,7 @@ msgstr "" msgid "Russia" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:196 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:197 msgid "SD Card" msgstr "" @@ -8007,6 +7999,10 @@ msgstr "" msgid "SHA-1:" msgstr "" +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:43 +msgid "SHA1 Digest" +msgstr "" + #: Source/Core/DolphinQt/Settings/GameCubePane.cpp:136 msgid "SP1:" msgstr "" @@ -8061,11 +8057,11 @@ msgid "Save File to" msgstr "" #. i18n: Noun (i.e. the data saved by the game) -#: Source/Core/DolphinQt/GBAWidget.cpp:405 +#: Source/Core/DolphinQt/GBAWidget.cpp:407 msgid "Save Game" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:242 +#: Source/Core/DolphinQt/GBAWidget.cpp:243 msgid "Save Game Files (*.sav);;All Files (*)" msgstr "" @@ -8091,7 +8087,7 @@ msgstr "" #: Source/Core/Core/HotkeyManager.cpp:180 #: Source/Core/Core/HotkeyManager.cpp:351 -#: Source/Core/DolphinQt/GBAWidget.cpp:413 +#: Source/Core/DolphinQt/GBAWidget.cpp:415 msgid "Save State" msgstr "" @@ -8398,8 +8394,8 @@ msgid "Select a Directory" msgstr "" #: Source/Core/DolphinQt/Config/InfoWidget.cpp:194 -#: Source/Core/DolphinQt/GBAWidget.cpp:210 -#: Source/Core/DolphinQt/GBAWidget.cpp:241 +#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:242 #: Source/Core/DolphinQt/MainWindow.cpp:730 #: Source/Core/DolphinQt/MainWindow.cpp:1302 #: Source/Core/DolphinQt/MainWindow.cpp:1310 @@ -8430,7 +8426,7 @@ msgstr "" msgid "Select a title to install to NAND" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "Select e-Reader Cards" msgstr "" @@ -8474,8 +8470,8 @@ msgstr "" #: Source/Core/Core/NetPlayServer.cpp:1244 #: Source/Core/Core/NetPlayServer.cpp:1588 #: Source/Core/Core/NetPlayServer.cpp:1865 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:464 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:866 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:465 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:867 msgid "Selected game doesn't exist in game list!" msgstr "" @@ -8539,7 +8535,7 @@ msgid "" "

If unsure, select OpenGL." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:242 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:243 msgid "Send" msgstr "傳送" @@ -8716,7 +8712,7 @@ msgstr "顯示 GameCube" msgid "Show Germany" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:204 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:205 msgid "Show Golf Mode Overlay" msgstr "" @@ -9142,7 +9138,7 @@ msgstr "" msgid "Start with Riivolution Patches..." msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:847 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:848 msgid "Started game" msgstr "" @@ -9181,19 +9177,19 @@ msgstr "" msgid "Step Over" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:502 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:523 msgid "Step out successful!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:500 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:521 msgid "Step out timed out!" msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:427 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:448 msgid "Step over in progress..." msgstr "" -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:412 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:433 msgid "Step successful!" msgstr "" @@ -9244,7 +9240,7 @@ msgstr "" msgid "Stop Recording" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:381 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:382 msgid "Stopped game" msgstr "" @@ -9312,7 +9308,7 @@ msgstr "" msgid "Success" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:431 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:432 msgid "Successfully added to the NetPlay index" msgstr "" @@ -9431,7 +9427,7 @@ msgid "Symbol name:" msgstr "" #: Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp:151 -#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:114 +#: Source/Core/DolphinQt/Debugger/CodeWidget.cpp:129 #: Source/Core/DolphinQt/MenuBar.cpp:967 msgid "Symbols" msgstr "" @@ -9625,7 +9621,7 @@ msgstr "" msgid "The disc could not be read (at {0:#x} - {1:#x})." msgstr "" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:528 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:532 msgid "The disc that was about to be inserted couldn't be found." msgstr "" @@ -9740,11 +9736,11 @@ msgid "" "(MSAA with {0} samples found on default framebuffer)" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:155 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:155 msgid "The hashes do not match!" msgstr "" -#: Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp:151 +#: Source/Core/DolphinQt/NetPlay/GameDigestDialog.cpp:151 msgid "The hashes match!" msgstr "" @@ -9875,7 +9871,7 @@ msgstr "" msgid "There are too many partitions in the first partition table." msgstr "" -#: Source/Core/Core/State.cpp:766 +#: Source/Core/Core/State.cpp:759 msgid "There is nothing to undo!" msgstr "" @@ -10268,8 +10264,8 @@ msgstr "" msgid "Traditional Chinese" msgstr "Traditional Chinese" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:969 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:973 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:970 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:974 msgid "Traversal Error" msgstr "" @@ -10425,18 +10421,18 @@ msgstr "" msgid "United States" msgstr "" -#: Source/Core/Core/State.cpp:508 Source/Core/DiscIO/Enums.cpp:63 +#: Source/Core/Core/State.cpp:501 Source/Core/DiscIO/Enums.cpp:63 #: Source/Core/DiscIO/Enums.cpp:107 #: Source/Core/DolphinQt/Config/InfoWidget.cpp:85 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:43 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:66 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:125 #: Source/Core/DolphinQt/Debugger/NetworkWidget.cpp:129 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:734 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:735 msgid "Unknown" msgstr "未知" -#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1254 +#: Source/Core/Core/HW/DVD/DVDInterface.cpp:1258 msgid "Unknown DVD command {0:08x} - fatal error" msgstr "" @@ -10947,7 +10943,7 @@ msgstr "" #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:245 #: Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp:261 #: Source/Core/DolphinQt/MenuBar.cpp:1468 -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:447 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:448 msgid "Warning" msgstr "警告" @@ -11128,7 +11124,7 @@ msgid "" msgstr "" #: Source/Core/DolphinQt/Config/Mapping/HotkeyGBA.cpp:25 -#: Source/Core/DolphinQt/GBAWidget.cpp:427 +#: Source/Core/DolphinQt/GBAWidget.cpp:429 msgid "Window Size" msgstr "" @@ -11178,19 +11174,19 @@ msgstr "" msgid "Write to Window" msgstr "寫入至視窗" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:622 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:623 msgid "Wrong disc number" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:618 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:619 msgid "Wrong hash" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:626 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:627 msgid "Wrong region" msgstr "" -#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:624 +#: Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp:625 msgid "Wrong revision" msgstr "" @@ -11389,7 +11385,7 @@ msgstr "" msgid "disconnected" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:188 +#: Source/Core/DolphinQt/GBAWidget.cpp:189 msgid "e-Reader Cards (*.raw);;All Files (*)" msgstr "" @@ -11435,7 +11431,7 @@ msgstr "" msgid "m/s" msgstr "" -#: Source/Core/DolphinQt/GBAWidget.cpp:211 +#: Source/Core/DolphinQt/GBAWidget.cpp:212 msgid "" "mGBA Save States (*.ss0 *.ss1 *.ss2 *.ss3 *.ss4 *.ss5 *.ss6 *.ss7 *.ss8 *." "ss9);;All Files (*)" @@ -11504,7 +11500,7 @@ msgstr "" msgid "{0} failed to synchronize." msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:208 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:204 msgid "" "{0} is not a directory, failed to move to *.original.\n" " Verify your write permissions or move the file outside of Dolphin" @@ -11515,7 +11511,7 @@ msgstr "" msgid "{0} of {1} blocks. Compression ratio {2}%" msgstr "" -#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:199 +#: Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp:195 msgid "{0} was not a directory, moved to *.original" msgstr "" From f7a297289978ab2692a2afc34c760b4284a5ac61 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Thu, 23 Sep 2021 21:53:33 +0400 Subject: [PATCH 635/659] AudioInterface: Use IsPlaying method --- Source/Core/Core/HW/AudioInterface.cpp | 40 +++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Source/Core/Core/HW/AudioInterface.cpp b/Source/Core/Core/HW/AudioInterface.cpp index c3b0624289..f29456cac3 100644 --- a/Source/Core/Core/HW/AudioInterface.cpp +++ b/Source/Core/Core/HW/AudioInterface.cpp @@ -295,18 +295,18 @@ void GenerateAISInterrupt() static void IncreaseSampleCount(const u32 amount) { - if (s_control.PSTAT) - { - const u32 old_sample_counter = s_sample_counter + 1; - s_sample_counter += amount; + if (!IsPlaying()) + return; - if ((s_interrupt_timing - old_sample_counter) <= (s_sample_counter - old_sample_counter)) - { - DEBUG_LOG_FMT(AUDIO_INTERFACE, - "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} s_control.AIINTVLD={}", - s_sample_counter, s_interrupt_timing, PowerPC::ppcState.pc, s_control.AIINTVLD); - GenerateAudioInterrupt(); - } + const u32 old_sample_counter = s_sample_counter + 1; + s_sample_counter += amount; + + if ((s_interrupt_timing - old_sample_counter) <= (s_sample_counter - old_sample_counter)) + { + DEBUG_LOG_FMT(AUDIO_INTERFACE, + "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} s_control.AIINTVLD={}", + s_sample_counter, s_interrupt_timing, PowerPC::ppcState.pc, s_control.AIINTVLD); + GenerateAudioInterrupt(); } } @@ -337,17 +337,17 @@ u32 Get48KHzSampleRateDivisor() static void Update(u64 userdata, s64 cycles_late) { - if (s_control.PSTAT) + if (!IsPlaying()) + return; + + const u64 diff = CoreTiming::GetTicks() - s_last_cpu_time; + if (diff > s_cpu_cycles_per_sample) { - const u64 diff = CoreTiming::GetTicks() - s_last_cpu_time; - if (diff > s_cpu_cycles_per_sample) - { - const u32 samples = static_cast(diff / s_cpu_cycles_per_sample); - s_last_cpu_time += samples * s_cpu_cycles_per_sample; - IncreaseSampleCount(samples); - } - CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); + const u32 samples = static_cast(diff / s_cpu_cycles_per_sample); + s_last_cpu_time += samples * s_cpu_cycles_per_sample; + IncreaseSampleCount(samples); } + CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); } int GetAIPeriod() From 59eb1253a3c7cf35ac4a080dc5c133ca0c35e1fc Mon Sep 17 00:00:00 2001 From: Sepalani Date: Thu, 23 Sep 2021 22:23:01 +0400 Subject: [PATCH 636/659] AudioInterface: Use anonymous namespace for static functions --- Source/Core/Core/HW/AudioInterface.cpp | 118 ++++++++++++------------- 1 file changed, 57 insertions(+), 61 deletions(-) diff --git a/Source/Core/Core/HW/AudioInterface.cpp b/Source/Core/Core/HW/AudioInterface.cpp index f29456cac3..00ada5ff09 100644 --- a/Source/Core/Core/HW/AudioInterface.cpp +++ b/Source/Core/Core/HW/AudioInterface.cpp @@ -132,13 +132,64 @@ void DoState(PointerWrap& p) sound_stream->GetMixer()->DoState(p); } -static void GenerateAudioInterrupt(); -static void UpdateInterrupts(); -static void IncreaseSampleCount(u32 amount); -static int GetAIPeriod(); -static void Update(u64 userdata, s64 cycles_late); +namespace +{ +CoreTiming::EventType* event_type_ai; -static CoreTiming::EventType* event_type_ai; +void UpdateInterrupts() +{ + ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, + s_control.AIINT & s_control.AIINTMSK); +} + +void GenerateAudioInterrupt() +{ + s_control.AIINT = 1; + UpdateInterrupts(); +} + +void IncreaseSampleCount(const u32 amount) +{ + if (!IsPlaying()) + return; + + const u32 old_sample_counter = s_sample_counter + 1; + s_sample_counter += amount; + + if ((s_interrupt_timing - old_sample_counter) <= (s_sample_counter - old_sample_counter)) + { + DEBUG_LOG_FMT(AUDIO_INTERFACE, + "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} s_control.AIINTVLD={}", + s_sample_counter, s_interrupt_timing, PowerPC::ppcState.pc, s_control.AIINTVLD); + GenerateAudioInterrupt(); + } +} + +int GetAIPeriod() +{ + u64 period = s_cpu_cycles_per_sample * (s_interrupt_timing - s_sample_counter); + u64 s_period = + s_cpu_cycles_per_sample * Mixer::FIXED_SAMPLE_RATE_DIVIDEND / s_ais_sample_rate_divisor; + if (period == 0) + return static_cast(s_period); + return static_cast(std::min(period, s_period)); +} + +void Update(u64 userdata, s64 cycles_late) +{ + if (!IsPlaying()) + return; + + const u64 diff = CoreTiming::GetTicks() - s_last_cpu_time; + if (diff > s_cpu_cycles_per_sample) + { + const u32 samples = static_cast(diff / s_cpu_cycles_per_sample); + s_last_cpu_time += samples * s_cpu_cycles_per_sample; + IncreaseSampleCount(samples); + } + CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); +} +} // namespace void Init() { @@ -276,40 +327,11 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) })); } -static void UpdateInterrupts() -{ - ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, - s_control.AIINT & s_control.AIINTMSK); -} - -static void GenerateAudioInterrupt() -{ - s_control.AIINT = 1; - UpdateInterrupts(); -} - void GenerateAISInterrupt() { GenerateAudioInterrupt(); } -static void IncreaseSampleCount(const u32 amount) -{ - if (!IsPlaying()) - return; - - const u32 old_sample_counter = s_sample_counter + 1; - s_sample_counter += amount; - - if ((s_interrupt_timing - old_sample_counter) <= (s_sample_counter - old_sample_counter)) - { - DEBUG_LOG_FMT(AUDIO_INTERFACE, - "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} s_control.AIINTVLD={}", - s_sample_counter, s_interrupt_timing, PowerPC::ppcState.pc, s_control.AIINTVLD); - GenerateAudioInterrupt(); - } -} - bool IsPlaying() { return (s_control.PSTAT == 1); @@ -334,30 +356,4 @@ u32 Get48KHzSampleRateDivisor() { return (SConfig::GetInstance().bWii ? 1125 : 1124) * 2; } - -static void Update(u64 userdata, s64 cycles_late) -{ - if (!IsPlaying()) - return; - - const u64 diff = CoreTiming::GetTicks() - s_last_cpu_time; - if (diff > s_cpu_cycles_per_sample) - { - const u32 samples = static_cast(diff / s_cpu_cycles_per_sample); - s_last_cpu_time += samples * s_cpu_cycles_per_sample; - IncreaseSampleCount(samples); - } - CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); -} - -int GetAIPeriod() -{ - u64 period = s_cpu_cycles_per_sample * (s_interrupt_timing - s_sample_counter); - u64 s_period = - s_cpu_cycles_per_sample * Mixer::FIXED_SAMPLE_RATE_DIVIDEND / s_ais_sample_rate_divisor; - if (period == 0) - return static_cast(s_period); - return static_cast(std::min(period, s_period)); -} - } // namespace AudioInterface From 9b9f701ac503f98051ab7871dc581559201c10fd Mon Sep 17 00:00:00 2001 From: Sepalani Date: Thu, 23 Sep 2021 22:46:35 +0400 Subject: [PATCH 637/659] AudioInterface: Add setters for AIS/AID sample rate --- Source/Core/Core/HW/AudioInterface.cpp | 72 +++++++++++++++++--------- 1 file changed, 47 insertions(+), 25 deletions(-) diff --git a/Source/Core/Core/HW/AudioInterface.cpp b/Source/Core/Core/HW/AudioInterface.cpp index 00ada5ff09..41b57aeba1 100644 --- a/Source/Core/Core/HW/AudioInterface.cpp +++ b/Source/Core/Core/HW/AudioInterface.cpp @@ -70,6 +70,12 @@ enum AID_48KHz = 0 }; +enum class SampleRate +{ + AI32KHz, + AI48KHz, +}; + // AI Control Register union AICR { @@ -189,30 +195,56 @@ void Update(u64 userdata, s64 cycles_late) } CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); } + +void SetAIDSampleRate(SampleRate sample_rate) +{ + if (sample_rate == SampleRate::AI32KHz) + { + s_control.AIDFR = AID_32KHz; + s_aid_sample_rate_divisor = Get32KHzSampleRateDivisor(); + } + else + { + s_control.AIDFR = AID_48KHz; + s_aid_sample_rate_divisor = Get48KHzSampleRateDivisor(); + } + + SoundStream* sound_stream = Core::System::GetInstance().GetSoundStream(); + sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(s_aid_sample_rate_divisor); +} + +void SetAISSampleRate(SampleRate sample_rate) +{ + if (sample_rate == SampleRate::AI32KHz) + { + s_control.AISFR = AIS_32KHz; + s_ais_sample_rate_divisor = Get32KHzSampleRateDivisor(); + } + else + { + s_control.AISFR = AIS_48KHz; + s_ais_sample_rate_divisor = Get48KHzSampleRateDivisor(); + } + + s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * + s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; + SoundStream* sound_stream = Core::System::GetInstance().GetSoundStream(); + sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(s_ais_sample_rate_divisor); +} } // namespace void Init() { s_control.hex = 0; - s_control.AISFR = AIS_48KHz; - s_control.AIDFR = AID_32KHz; + SetAISSampleRate(SampleRate::AI48KHz); + SetAIDSampleRate(SampleRate::AI32KHz); s_volume.hex = 0; s_sample_counter = 0; s_interrupt_timing = 0; s_last_cpu_time = 0; - s_ais_sample_rate_divisor = Get48KHzSampleRateDivisor(); - s_aid_sample_rate_divisor = Get32KHzSampleRateDivisor(); - s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * - s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; - event_type_ai = CoreTiming::RegisterEvent("AICallback", Update); - - auto& system = Core::System::GetInstance(); - SoundStream* sound_stream = system.GetSoundStream(); - sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(GetAIDSampleRateDivisor()); - sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(GetAISSampleRateDivisor()); } void Shutdown() @@ -238,31 +270,21 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) s_control.AIINTVLD = tmp_ai_ctrl.AIINTVLD; } - auto& system = Core::System::GetInstance(); - SoundStream* sound_stream = system.GetSoundStream(); - // Set frequency of streaming audio if (tmp_ai_ctrl.AISFR != s_control.AISFR) { // AISFR rates below are intentionally inverted wrt yagcd DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AISFR to {}", tmp_ai_ctrl.AISFR ? "48khz" : "32khz"); - s_control.AISFR = tmp_ai_ctrl.AISFR; - s_ais_sample_rate_divisor = - tmp_ai_ctrl.AISFR ? Get48KHzSampleRateDivisor() : Get32KHzSampleRateDivisor(); - sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(s_ais_sample_rate_divisor); - s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * - s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; + SetAISSampleRate(tmp_ai_ctrl.AISFR ? SampleRate::AI48KHz : SampleRate::AI32KHz); } + // Set frequency of DMA if (tmp_ai_ctrl.AIDFR != s_control.AIDFR) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AIDFR to {}", tmp_ai_ctrl.AIDFR ? "32khz" : "48khz"); - s_control.AIDFR = tmp_ai_ctrl.AIDFR; - s_aid_sample_rate_divisor = - tmp_ai_ctrl.AIDFR ? Get32KHzSampleRateDivisor() : Get48KHzSampleRateDivisor(); - sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(s_aid_sample_rate_divisor); + SetAIDSampleRate(tmp_ai_ctrl.AIDFR ? SampleRate::AI32KHz : SampleRate::AI48KHz); } // Streaming counter From c4d5804f6021270499cde9a03d48a3ddbca7f4d7 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 2 Sep 2022 22:20:14 +0200 Subject: [PATCH 638/659] HW: Move DVDThread variables to Core::System. --- Source/Core/Core/HW/DVD/DVDThread.cpp | 188 +++++++++++++++----------- Source/Core/Core/HW/DVD/DVDThread.h | 17 +++ Source/Core/Core/System.cpp | 8 ++ Source/Core/Core/System.h | 7 + 4 files changed, 144 insertions(+), 76 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDThread.cpp b/Source/Core/Core/HW/DVD/DVDThread.cpp index 5590f58b6e..6c0ff43452 100644 --- a/Source/Core/Core/HW/DVD/DVDThread.cpp +++ b/Source/Core/Core/HW/DVD/DVDThread.cpp @@ -29,6 +29,7 @@ #include "Core/HW/Memmap.h" #include "Core/HW/SystemTimers.h" #include "Core/IOS/ES/Formats.h" +#include "Core/System.h" #include "DiscIO/Enums.h" #include "DiscIO/Volume.h" @@ -61,8 +62,8 @@ struct ReadRequest using ReadResult = std::pair>; -static void StartDVDThread(); -static void StopDVDThread(); +static void StartDVDThread(DVDThreadState::Data& state); +static void StopDVDThread(DVDThreadState::Data& state); static void DVDThread(); static void WaitUntilIdle(); @@ -72,82 +73,97 @@ static void StartReadInternal(bool copy_to_ram, u32 output_address, u64 dvd_offs DVDInterface::ReplyType reply_type, s64 ticks_until_completion); static void FinishRead(u64 id, s64 cycles_late); -static CoreTiming::EventType* s_finish_read; -static u64 s_next_id = 0; +struct DVDThreadState::Data +{ + CoreTiming::EventType* finish_read; -static std::thread s_dvd_thread; -static Common::Event s_request_queue_expanded; // Is set by CPU thread -static Common::Event s_result_queue_expanded; // Is set by DVD thread -static Common::Flag s_dvd_thread_exiting(false); // Is set by CPU thread + u64 next_id = 0; -static Common::SPSCQueue s_request_queue; -static Common::SPSCQueue s_result_queue; -static std::map s_result_map; + std::thread dvd_thread; + Common::Event request_queue_expanded; // Is set by CPU thread + Common::Event result_queue_expanded; // Is set by DVD thread + Common::Flag dvd_thread_exiting = Common::Flag(false); // Is set by CPU thread -static std::unique_ptr s_disc; + Common::SPSCQueue request_queue; + Common::SPSCQueue result_queue; + std::map result_map; + + std::unique_ptr disc; +}; + +DVDThreadState::DVDThreadState() : m_data(std::make_unique()) +{ +} + +DVDThreadState::~DVDThreadState() = default; void Start() { - s_finish_read = CoreTiming::RegisterEvent("FinishReadDVDThread", FinishRead); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); - s_request_queue_expanded.Reset(); - s_result_queue_expanded.Reset(); - s_request_queue.Clear(); - s_result_queue.Clear(); + state.finish_read = CoreTiming::RegisterEvent("FinishReadDVDThread", FinishRead); + + state.request_queue_expanded.Reset(); + state.result_queue_expanded.Reset(); + state.request_queue.Clear(); + state.result_queue.Clear(); // This is reset on every launch for determinism, but it doesn't matter // much, because this will never get exposed to the emulated game. - s_next_id = 0; + state.next_id = 0; - StartDVDThread(); + StartDVDThread(state); } -static void StartDVDThread() +static void StartDVDThread(DVDThreadState::Data& state) { - ASSERT(!s_dvd_thread.joinable()); - s_dvd_thread_exiting.Clear(); - s_dvd_thread = std::thread(DVDThread); + ASSERT(!state.dvd_thread.joinable()); + state.dvd_thread_exiting.Clear(); + state.dvd_thread = std::thread(DVDThread); } void Stop() { - StopDVDThread(); - s_disc.reset(); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + StopDVDThread(state); + state.disc.reset(); } -static void StopDVDThread() +static void StopDVDThread(DVDThreadState::Data& state) { - ASSERT(s_dvd_thread.joinable()); + ASSERT(state.dvd_thread.joinable()); - // By setting s_DVD_thread_exiting, we ask the DVD thread to cleanly exit. - // In case the request queue is empty, we need to set s_request_queue_expanded - // so that the DVD thread will wake up and check s_DVD_thread_exiting. - s_dvd_thread_exiting.Set(); - s_request_queue_expanded.Set(); + // By setting dvd_thread_exiting, we ask the DVD thread to cleanly exit. + // In case the request queue is empty, we need to set request_queue_expanded + // so that the DVD thread will wake up and check dvd_thread_exiting. + state.dvd_thread_exiting.Set(); + state.request_queue_expanded.Set(); - s_dvd_thread.join(); + state.dvd_thread.join(); } void DoState(PointerWrap& p) { + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + // By waiting for the DVD thread to be done working, we ensure - // that s_request_queue will be empty and that the DVD thread + // that request_queue will be empty and that the DVD thread // won't be touching anything while this function runs. WaitUntilIdle(); - // Move all results from s_result_queue to s_result_map because + // Move all results from result_queue to result_map because // PointerWrap::Do supports std::map but not Common::SPSCQueue. // This won't affect the behavior of FinishRead. ReadResult result; - while (s_result_queue.Pop(result)) - s_result_map.emplace(result.first.id, std::move(result)); + while (state.result_queue.Pop(result)) + state.result_map.emplace(result.first.id, std::move(result)); // Both queues are now empty, so we don't need to savestate them. - p.Do(s_result_map); - p.Do(s_next_id); + p.Do(state.result_map); + p.Do(state.next_id); - // s_disc isn't savestated (because it points to files on the + // state.disc isn't savestated (because it points to files on the // local system). Instead, we check that the status of the disc // is the same as when the savestate was made. This won't catch // cases of having the wrong disc inserted, though. @@ -159,7 +175,7 @@ void DoState(PointerWrap& p) if (had_disc) PanicAlertFmtT("An inserted disc was expected but not found."); else - s_disc.reset(); + state.disc.reset(); } // TODO: Savestates can be smaller if the buffers of results aren't saved, @@ -175,70 +191,82 @@ void DoState(PointerWrap& p) void SetDisc(std::unique_ptr disc) { + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + WaitUntilIdle(); - s_disc = std::move(disc); + state.disc = std::move(disc); } bool HasDisc() { - return s_disc != nullptr; + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + return state.disc != nullptr; } bool HasWiiHashes() { // HasWiiHashes is thread-safe, so calling WaitUntilIdle isn't necessary. - return s_disc->HasWiiHashes(); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + return state.disc->HasWiiHashes(); } DiscIO::Platform GetDiscType() { // GetVolumeType is thread-safe, so calling WaitUntilIdle isn't necessary. - return s_disc->GetVolumeType(); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + return state.disc->GetVolumeType(); } u64 PartitionOffsetToRawOffset(u64 offset, const DiscIO::Partition& partition) { // PartitionOffsetToRawOffset is thread-safe, so calling WaitUntilIdle isn't necessary. - return s_disc->PartitionOffsetToRawOffset(offset, partition); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + return state.disc->PartitionOffsetToRawOffset(offset, partition); } IOS::ES::TMDReader GetTMD(const DiscIO::Partition& partition) { + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); WaitUntilIdle(); - return s_disc->GetTMD(partition); + return state.disc->GetTMD(partition); } IOS::ES::TicketReader GetTicket(const DiscIO::Partition& partition) { + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); WaitUntilIdle(); - return s_disc->GetTicket(partition); + return state.disc->GetTicket(partition); } bool IsInsertedDiscRunning() { - if (!s_disc) + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + + if (!state.disc) return false; WaitUntilIdle(); - return SConfig::GetInstance().GetGameID() == s_disc->GetGameID(); + return SConfig::GetInstance().GetGameID() == state.disc->GetGameID(); } bool UpdateRunningGameMetadata(const DiscIO::Partition& partition, std::optional title_id) { - if (!s_disc) + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + + if (!state.disc) return false; WaitUntilIdle(); if (title_id) { - const std::optional volume_title_id = s_disc->GetTitleID(partition); + const std::optional volume_title_id = state.disc->GetTitleID(partition); if (!volume_title_id || *volume_title_id != *title_id) return false; } - SConfig::GetInstance().SetRunningGameMetadata(*s_disc, partition); + SConfig::GetInstance().SetRunningGameMetadata(*state.disc, partition); return true; } @@ -246,11 +274,13 @@ void WaitUntilIdle() { ASSERT(Core::IsCPUThread()); - while (!s_request_queue.Empty()) - s_result_queue_expanded.Wait(); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); - StopDVDThread(); - StartDVDThread(); + while (!state.request_queue.Empty()) + state.result_queue_expanded.Wait(); + + StopDVDThread(state); + StartDVDThread(state); } void StartRead(u64 dvd_offset, u32 length, const DiscIO::Partition& partition, @@ -273,6 +303,8 @@ static void StartReadInternal(bool copy_to_ram, u32 output_address, u64 dvd_offs { ASSERT(Core::IsCPUThread()); + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + ReadRequest request; request.copy_to_ram = copy_to_ram; @@ -282,21 +314,23 @@ static void StartReadInternal(bool copy_to_ram, u32 output_address, u64 dvd_offs request.partition = partition; request.reply_type = reply_type; - u64 id = s_next_id++; + u64 id = state.next_id++; request.id = id; request.time_started_ticks = CoreTiming::GetTicks(); request.realtime_started_us = Common::Timer::NowUs(); - s_request_queue.Push(std::move(request)); - s_request_queue_expanded.Set(); + state.request_queue.Push(std::move(request)); + state.request_queue_expanded.Set(); - CoreTiming::ScheduleEvent(ticks_until_completion, s_finish_read, id); + CoreTiming::ScheduleEvent(ticks_until_completion, state.finish_read, id); } static void FinishRead(u64 id, s64 cycles_late) { - // We can't simply pop s_result_queue and always get the ReadResult + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + + // We can't simply pop result_queue and always get the ReadResult // we want, because the DVD thread may add ReadResults to the queue // in a different order than we want to get them. What we do instead // is to pop the queue until we find the ReadResult we want (the one @@ -307,23 +341,23 @@ static void FinishRead(u64 id, s64 cycles_late) // When this function is called again later, it will check the map for // the wanted ReadResult before it starts searching through the queue. ReadResult result; - auto it = s_result_map.find(id); - if (it != s_result_map.end()) + auto it = state.result_map.find(id); + if (it != state.result_map.end()) { result = std::move(it->second); - s_result_map.erase(it); + state.result_map.erase(it); } else { while (true) { - while (!s_result_queue.Pop(result)) - s_result_queue_expanded.Wait(); + while (!state.result_queue.Pop(result)) + state.result_queue_expanded.Wait(); if (result.first.id == id) break; else - s_result_map.emplace(result.first.id, std::move(result)); + state.result_map.emplace(result.first.id, std::move(result)); } } // We have now obtained the right ReadResult. @@ -363,30 +397,32 @@ static void FinishRead(u64 id, s64 cycles_late) static void DVDThread() { + auto& state = Core::System::GetInstance().GetDVDThreadState().GetData(); + Common::SetCurrentThreadName("DVD thread"); while (true) { - s_request_queue_expanded.Wait(); + state.request_queue_expanded.Wait(); - if (s_dvd_thread_exiting.IsSet()) + if (state.dvd_thread_exiting.IsSet()) return; ReadRequest request; - while (s_request_queue.Pop(request)) + while (state.request_queue.Pop(request)) { - FileMonitor::Log(*s_disc, request.partition, request.dvd_offset); + FileMonitor::Log(*state.disc, request.partition, request.dvd_offset); std::vector buffer(request.length); - if (!s_disc->Read(request.dvd_offset, request.length, buffer.data(), request.partition)) + if (!state.disc->Read(request.dvd_offset, request.length, buffer.data(), request.partition)) buffer.resize(0); request.realtime_done_us = Common::Timer::NowUs(); - s_result_queue.Push(ReadResult(std::move(request), std::move(buffer))); - s_result_queue_expanded.Set(); + state.result_queue.Push(ReadResult(std::move(request), std::move(buffer))); + state.result_queue_expanded.Set(); - if (s_dvd_thread_exiting.IsSet()) + if (state.dvd_thread_exiting.IsSet()) return; } } diff --git a/Source/Core/Core/HW/DVD/DVDThread.h b/Source/Core/Core/HW/DVD/DVDThread.h index fe427e2e57..66ffa246ee 100644 --- a/Source/Core/Core/HW/DVD/DVDThread.h +++ b/Source/Core/Core/HW/DVD/DVDThread.h @@ -34,6 +34,23 @@ class TicketReader; namespace DVDThread { +class DVDThreadState +{ +public: + DVDThreadState(); + DVDThreadState(const DVDThreadState&) = delete; + DVDThreadState(DVDThreadState&&) = delete; + DVDThreadState& operator=(const DVDThreadState&) = delete; + DVDThreadState& operator=(DVDThreadState&&) = delete; + ~DVDThreadState(); + + struct Data; + Data& GetData() { return *m_data; } + +private: + std::unique_ptr m_data; +}; + void Start(); void Stop(); void DoState(PointerWrap& p); diff --git a/Source/Core/Core/System.cpp b/Source/Core/Core/System.cpp index 4320bded39..aa257af6f3 100644 --- a/Source/Core/Core/System.cpp +++ b/Source/Core/Core/System.cpp @@ -7,6 +7,7 @@ #include "AudioCommon/SoundStream.h" #include "Core/Config/MainSettings.h" +#include "Core/HW/DVD/DVDThread.h" namespace Core { @@ -15,6 +16,8 @@ struct System::Impl std::unique_ptr m_sound_stream; bool m_sound_stream_running = false; bool m_audio_dump_started = false; + + DVDThread::DVDThreadState m_dvd_thread_state; }; System::System() : m_impl{std::make_unique()} @@ -58,4 +61,9 @@ void System::SetAudioDumpStarted(bool started) { m_impl->m_audio_dump_started = started; } + +DVDThread::DVDThreadState& System::GetDVDThreadState() const +{ + return m_impl->m_dvd_thread_state; +} } // namespace Core diff --git a/Source/Core/Core/System.h b/Source/Core/Core/System.h index 85b7087095..659caae914 100644 --- a/Source/Core/Core/System.h +++ b/Source/Core/Core/System.h @@ -7,6 +7,11 @@ class SoundStream; +namespace DVDThread +{ +class DVDThreadState; +} + namespace Core { // Central class that encapsulates the running system. @@ -40,6 +45,8 @@ public: bool IsAudioDumpStarted() const; void SetAudioDumpStarted(bool started); + DVDThread::DVDThreadState& GetDVDThreadState() const; + private: System(); From 2d45ce5c4e52c0ecb5391764d367d209847ea460 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 2 Sep 2022 23:03:40 +0200 Subject: [PATCH 639/659] HW: Move DVDInterface variables to Core::System. --- Source/Core/Core/HW/DVD/DVDInterface.cpp | 670 ++++++++++++----------- Source/Core/Core/HW/DVD/DVDInterface.h | 17 + Source/Core/Core/System.cpp | 7 + Source/Core/Core/System.h | 5 + 4 files changed, 392 insertions(+), 307 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp index 9cb907a9d5..0c0b4ddf17 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.cpp +++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp @@ -133,53 +133,60 @@ union UDICFG explicit UDICFG(u32 hex) : Hex{hex} {} }; -// STATE_TO_SAVE +struct DVDInterfaceState::Data +{ + // Hardware registers + UDISR DISR; + UDICVR DICVR; + u32 DICMDBUF[3]; + u32 DIMAR; + u32 DILENGTH; + UDICR DICR; + u32 DIIMMBUF; + UDICFG DICFG; -// Hardware registers -static UDISR s_DISR; -static UDICVR s_DICVR; -static u32 s_DICMDBUF[3]; -static u32 s_DIMAR; -static u32 s_DILENGTH; -static UDICR s_DICR; -static u32 s_DIIMMBUF; -static UDICFG s_DICFG; + StreamADPCM::ADPCMDecoder adpcm_decoder; -static StreamADPCM::ADPCMDecoder s_adpcm_decoder; + // DTK + bool stream = false; + bool stop_at_track_end = false; + u64 audio_position; + u64 current_start; + u32 current_length; + u64 next_start; + u32 next_length; + u32 pending_samples; + bool enable_dtk = false; + u8 dtk_buffer_length = 0; // TODO: figure out how this affects the regular buffer -// DTK -static bool s_stream = false; -static bool s_stop_at_track_end = false; -static u64 s_audio_position; -static u64 s_current_start; -static u32 s_current_length; -static u64 s_next_start; -static u32 s_next_length; -static u32 s_pending_samples; -static bool s_enable_dtk = false; -static u8 s_dtk_buffer_length = 0; // TODO: figure out how this affects the regular buffer + // Disc drive state + DriveState drive_state; + DriveError error_code; + u64 disc_end_offset; -// Disc drive state -static DriveState s_drive_state; -static DriveError s_error_code; -static u64 s_disc_end_offset; + // Disc drive timing + u64 read_buffer_start_time; + u64 read_buffer_end_time; + u64 read_buffer_start_offset; + u64 read_buffer_end_offset; -// Disc drive timing -static u64 s_read_buffer_start_time; -static u64 s_read_buffer_end_time; -static u64 s_read_buffer_start_offset; -static u64 s_read_buffer_end_offset; + // Disc changing + std::string disc_path_to_insert; + std::vector auto_disc_change_paths; + size_t auto_disc_change_index; -// Disc changing -static std::string s_disc_path_to_insert; -static std::vector s_auto_disc_change_paths; -static size_t s_auto_disc_change_index; + // Events + CoreTiming::EventType* finish_executing_command; + CoreTiming::EventType* auto_change_disc; + CoreTiming::EventType* eject_disc; + CoreTiming::EventType* insert_disc; +}; -// Events -static CoreTiming::EventType* s_finish_executing_command; -static CoreTiming::EventType* s_auto_change_disc; -static CoreTiming::EventType* s_eject_disc; -static CoreTiming::EventType* s_insert_disc; +DVDInterfaceState::DVDInterfaceState() : m_data(std::make_unique()) +{ +} + +DVDInterfaceState::~DVDInterfaceState() = default; static void AutoChangeDiscCallback(u64 userdata, s64 cyclesLate); static void EjectDiscCallback(u64 userdata, s64 cyclesLate); @@ -202,48 +209,53 @@ static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& parti void DoState(PointerWrap& p) { - p.DoPOD(s_DISR); - p.DoPOD(s_DICVR); - p.DoArray(s_DICMDBUF); - p.Do(s_DIMAR); - p.Do(s_DILENGTH); - p.Do(s_DICR); - p.Do(s_DIIMMBUF); - p.DoPOD(s_DICFG); + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); - p.Do(s_stream); - p.Do(s_stop_at_track_end); - p.Do(s_audio_position); - p.Do(s_current_start); - p.Do(s_current_length); - p.Do(s_next_start); - p.Do(s_next_length); - p.Do(s_pending_samples); - p.Do(s_enable_dtk); - p.Do(s_dtk_buffer_length); + p.DoPOD(state.DISR); + p.DoPOD(state.DICVR); + p.DoArray(state.DICMDBUF); + p.Do(state.DIMAR); + p.Do(state.DILENGTH); + p.Do(state.DICR); + p.Do(state.DIIMMBUF); + p.DoPOD(state.DICFG); - p.Do(s_drive_state); - p.Do(s_error_code); + p.Do(state.stream); + p.Do(state.stop_at_track_end); + p.Do(state.audio_position); + p.Do(state.current_start); + p.Do(state.current_length); + p.Do(state.next_start); + p.Do(state.next_length); + p.Do(state.pending_samples); + p.Do(state.enable_dtk); + p.Do(state.dtk_buffer_length); - p.Do(s_read_buffer_start_time); - p.Do(s_read_buffer_end_time); - p.Do(s_read_buffer_start_offset); - p.Do(s_read_buffer_end_offset); + p.Do(state.drive_state); + p.Do(state.error_code); - p.Do(s_disc_path_to_insert); + p.Do(state.read_buffer_start_time); + p.Do(state.read_buffer_end_time); + p.Do(state.read_buffer_start_offset); + p.Do(state.read_buffer_end_offset); + + p.Do(state.disc_path_to_insert); DVDThread::DoState(p); - s_adpcm_decoder.DoState(p); + state.adpcm_decoder.DoState(p); } static size_t ProcessDTKSamples(std::vector* temp_pcm, const std::vector& audio_data) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + size_t samples_processed = 0; size_t bytes_processed = 0; while (samples_processed < temp_pcm->size() / 2 && bytes_processed < audio_data.size()) { - s_adpcm_decoder.DecodeBlock(&(*temp_pcm)[samples_processed * 2], &audio_data[bytes_processed]); + state.adpcm_decoder.DecodeBlock(&(*temp_pcm)[samples_processed * 2], + &audio_data[bytes_processed]); for (size_t i = 0; i < StreamADPCM::SAMPLES_PER_BLOCK * 2; ++i) { // TODO: Fix the mixer so it can accept non-byte-swapped samples. @@ -258,33 +270,35 @@ static size_t ProcessDTKSamples(std::vector* temp_pcm, const std::vector= s_current_start + s_current_length) + if (state.audio_position >= state.current_start + state.current_length) { DEBUG_LOG_FMT(DVDINTERFACE, "AdvanceDTK: NextStart={:08x}, NextLength={:08x}, " "CurrentStart={:08x}, CurrentLength={:08x}, AudioPos={:08x}", - s_next_start, s_next_length, s_current_start, s_current_length, - s_audio_position); + state.next_start, state.next_length, state.current_start, state.current_length, + state.audio_position); - s_audio_position = s_next_start; - s_current_start = s_next_start; - s_current_length = s_next_length; + state.audio_position = state.next_start; + state.current_start = state.next_start; + state.current_length = state.next_length; - if (s_stop_at_track_end) + if (state.stop_at_track_end) { - s_stop_at_track_end = false; - s_stream = false; + state.stop_at_track_end = false; + state.stream = false; break; } - s_adpcm_decoder.ResetFilter(); + state.adpcm_decoder.ResetFilter(); } - s_audio_position += StreamADPCM::ONE_BLOCK_SIZE; + state.audio_position += StreamADPCM::ONE_BLOCK_SIZE; bytes_to_process += StreamADPCM::ONE_BLOCK_SIZE; *samples_to_process += StreamADPCM::SAMPLES_PER_BLOCK; } @@ -295,6 +309,8 @@ static u32 AdvanceDTK(u32 maximum_samples, u32* samples_to_process) static void DTKStreamingCallback(DIInterruptType interrupt_type, const std::vector& audio_data, s64 cycles_late) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + // Actual games always set this to 48 KHz // but let's make sure to use GetAISSampleRateDivisor() // just in case it changes to 32 KHz @@ -311,32 +327,32 @@ static void DTKStreamingCallback(DIInterruptType interrupt_type, const std::vect if (interrupt_type == DIInterruptType::TCINT) { // Send audio to the mixer. - std::vector temp_pcm(s_pending_samples * 2, 0); + std::vector temp_pcm(state.pending_samples * 2, 0); ProcessDTKSamples(&temp_pcm, audio_data); auto& system = Core::System::GetInstance(); SoundStream* sound_stream = system.GetSoundStream(); - sound_stream->GetMixer()->PushStreamingSamples(temp_pcm.data(), s_pending_samples); + sound_stream->GetMixer()->PushStreamingSamples(temp_pcm.data(), state.pending_samples); - if (s_stream && AudioInterface::IsPlaying()) + if (state.stream && AudioInterface::IsPlaying()) { - read_offset = s_audio_position; - read_length = AdvanceDTK(maximum_samples, &s_pending_samples); + read_offset = state.audio_position; + read_length = AdvanceDTK(maximum_samples, &state.pending_samples); } else { read_length = 0; - s_pending_samples = maximum_samples; + state.pending_samples = maximum_samples; } } else { read_length = 0; - s_pending_samples = maximum_samples; + state.pending_samples = maximum_samples; } // Read the next chunk of audio data asynchronously. - s64 ticks_to_dtk = SystemTimers::GetTicksPerSecond() * s64(s_pending_samples) * + s64 ticks_to_dtk = SystemTimers::GetTicksPerSecond() * s64(state.pending_samples) * sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; ticks_to_dtk -= cycles_late; if (read_length > 0) @@ -348,7 +364,7 @@ static void DTKStreamingCallback(DIInterruptType interrupt_type, const std::vect { // There's nothing to read, so using DVDThread is unnecessary. u64 userdata = PackFinishExecutingCommandUserdata(ReplyType::DTK, DIInterruptType::TCINT); - CoreTiming::ScheduleEvent(ticks_to_dtk, s_finish_executing_command, userdata); + CoreTiming::ScheduleEvent(ticks_to_dtk, state.finish_executing_command, userdata); } } @@ -358,45 +374,47 @@ void Init() DVDThread::Start(); - s_DISR.Hex = 0; - s_DICVR.Hex = 1; // Disc Channel relies on cover being open when no disc is inserted - s_DICMDBUF[0] = 0; - s_DICMDBUF[1] = 0; - s_DICMDBUF[2] = 0; - s_DIMAR = 0; - s_DILENGTH = 0; - s_DICR.Hex = 0; - s_DIIMMBUF = 0; - s_DICFG.Hex = 0; - s_DICFG.CONFIG = 1; // Disable bootrom descrambler + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.DISR.Hex = 0; + state.DICVR.Hex = 1; // Disc Channel relies on cover being open when no disc is inserted + state.DICMDBUF[0] = 0; + state.DICMDBUF[1] = 0; + state.DICMDBUF[2] = 0; + state.DIMAR = 0; + state.DILENGTH = 0; + state.DICR.Hex = 0; + state.DIIMMBUF = 0; + state.DICFG.Hex = 0; + state.DICFG.CONFIG = 1; // Disable bootrom descrambler ResetDrive(false); - s_auto_change_disc = CoreTiming::RegisterEvent("AutoChangeDisc", AutoChangeDiscCallback); - s_eject_disc = CoreTiming::RegisterEvent("EjectDisc", EjectDiscCallback); - s_insert_disc = CoreTiming::RegisterEvent("InsertDisc", InsertDiscCallback); + state.auto_change_disc = CoreTiming::RegisterEvent("AutoChangeDisc", AutoChangeDiscCallback); + state.eject_disc = CoreTiming::RegisterEvent("EjectDisc", EjectDiscCallback); + state.insert_disc = CoreTiming::RegisterEvent("InsertDisc", InsertDiscCallback); - s_finish_executing_command = + state.finish_executing_command = CoreTiming::RegisterEvent("FinishExecutingCommand", FinishExecutingCommandCallback); u64 userdata = PackFinishExecutingCommandUserdata(ReplyType::DTK, DIInterruptType::TCINT); - CoreTiming::ScheduleEvent(0, s_finish_executing_command, userdata); + CoreTiming::ScheduleEvent(0, state.finish_executing_command, userdata); } // Resets state on the MN102 chip in the drive itself, but not the DI registers exposed on the // emulated device, or any inserted disc. void ResetDrive(bool spinup) { - s_stream = false; - s_stop_at_track_end = false; - s_audio_position = 0; - s_next_start = 0; - s_next_length = 0; - s_current_start = 0; - s_current_length = 0; - s_pending_samples = 0; - s_enable_dtk = false; - s_dtk_buffer_length = 0; + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.stream = false; + state.stop_at_track_end = false; + state.audio_position = 0; + state.next_start = 0; + state.next_length = 0; + state.current_start = 0; + state.current_length = 0; + state.pending_samples = 0; + state.enable_dtk = false; + state.dtk_buffer_length = 0; if (!IsDiscInside()) { @@ -421,10 +439,10 @@ void ResetDrive(bool spinup) SetDriveError(DriveError::None); // The buffer is empty at start - s_read_buffer_start_offset = 0; - s_read_buffer_end_offset = 0; - s_read_buffer_start_time = 0; - s_read_buffer_end_time = 0; + state.read_buffer_start_offset = 0; + state.read_buffer_end_offset = 0; + state.read_buffer_start_time = 0; + state.read_buffer_end_time = 0; } void Shutdown() @@ -465,11 +483,12 @@ void SetDisc(std::unique_ptr disc, bool had_disc = IsDiscInside(); bool has_disc = static_cast(disc); + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); if (has_disc) { - s_disc_end_offset = GetDiscEndOffset(*disc); + state.disc_end_offset = GetDiscEndOffset(*disc); if (disc->GetDataSizeType() != DiscIO::DataSizeType::Accurate) - WARN_LOG_FMT(DVDINTERFACE, "Unknown disc size, guessing {0} bytes", s_disc_end_offset); + WARN_LOG_FMT(DVDINTERFACE, "Unknown disc size, guessing {0} bytes", state.disc_end_offset); const DiscIO::BlobReader& blob = disc->GetBlobReader(); @@ -493,8 +512,8 @@ void SetDisc(std::unique_ptr disc, ASSERT_MSG(DISCIO, (*auto_disc_change_paths).size() != 1, "Cannot automatically change between one disc"); - s_auto_disc_change_paths = *auto_disc_change_paths; - s_auto_disc_change_index = 0; + state.auto_disc_change_paths = *auto_disc_change_paths; + state.auto_disc_change_index = 0; } // Assume that inserting a disc requires having an empty disc before @@ -524,20 +543,22 @@ static void EjectDiscCallback(u64 userdata, s64 cyclesLate) static void InsertDiscCallback(u64 userdata, s64 cyclesLate) { - std::unique_ptr new_disc = DiscIO::CreateDisc(s_disc_path_to_insert); + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + std::unique_ptr new_disc = DiscIO::CreateDisc(state.disc_path_to_insert); if (new_disc) SetDisc(std::move(new_disc), {}); else PanicAlertFmtT("The disc that was about to be inserted couldn't be found."); - s_disc_path_to_insert.clear(); + state.disc_path_to_insert.clear(); } // Must only be called on the CPU thread void EjectDisc(EjectCause cause) { - CoreTiming::ScheduleEvent(0, s_eject_disc); + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + CoreTiming::ScheduleEvent(0, state.eject_disc); if (cause == EjectCause::User) ExpansionInterface::g_rtc_flags[ExpansionInterface::RTCFlag::EjectButton] = true; } @@ -549,8 +570,9 @@ void ChangeDisc(const std::vector& paths) if (paths.size() > 1) { - s_auto_disc_change_paths = paths; - s_auto_disc_change_index = 0; + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.auto_disc_change_paths = paths; + state.auto_disc_change_index = 0; } ChangeDisc(paths[0]); @@ -559,7 +581,8 @@ void ChangeDisc(const std::vector& paths) // Must only be called on the CPU thread void ChangeDisc(const std::string& new_path) { - if (!s_disc_path_to_insert.empty()) + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + if (!state.disc_path_to_insert.empty()) { PanicAlertFmtT("A disc is already about to be inserted."); return; @@ -567,38 +590,41 @@ void ChangeDisc(const std::string& new_path) EjectDisc(EjectCause::User); - s_disc_path_to_insert = new_path; - CoreTiming::ScheduleEvent(SystemTimers::GetTicksPerSecond(), s_insert_disc); + state.disc_path_to_insert = new_path; + CoreTiming::ScheduleEvent(SystemTimers::GetTicksPerSecond(), state.insert_disc); Movie::SignalDiscChange(new_path); - for (size_t i = 0; i < s_auto_disc_change_paths.size(); ++i) + for (size_t i = 0; i < state.auto_disc_change_paths.size(); ++i) { - if (s_auto_disc_change_paths[i] == new_path) + if (state.auto_disc_change_paths[i] == new_path) { - s_auto_disc_change_index = i; + state.auto_disc_change_index = i; return; } } - s_auto_disc_change_paths.clear(); + state.auto_disc_change_paths.clear(); } // Must only be called on the CPU thread bool AutoChangeDisc() { - if (s_auto_disc_change_paths.empty()) + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + if (state.auto_disc_change_paths.empty()) return false; - s_auto_disc_change_index = (s_auto_disc_change_index + 1) % s_auto_disc_change_paths.size(); - ChangeDisc(s_auto_disc_change_paths[s_auto_disc_change_index]); + state.auto_disc_change_index = + (state.auto_disc_change_index + 1) % state.auto_disc_change_paths.size(); + ChangeDisc(state.auto_disc_change_paths[state.auto_disc_change_index]); return true; } static void SetLidOpen() { - const u32 old_value = s_DICVR.CVR; - s_DICVR.CVR = IsDiscInside() ? 0 : 1; - if (s_DICVR.CVR != old_value) + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + const u32 old_value = state.DICVR.CVR; + state.DICVR.CVR = IsDiscInside() ? 0 : 1; + if (state.DICVR.CVR != old_value) GenerateDIInterrupt(DIInterruptType::CVRINT); } @@ -612,25 +638,27 @@ bool UpdateRunningGameMetadata(std::optional title_id) void RegisterMMIO(MMIO::Mapping* mmio, u32 base, bool is_wii) { - mmio->Register(base | DI_STATUS_REGISTER, MMIO::DirectRead(&s_DISR.Hex), + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + mmio->Register(base | DI_STATUS_REGISTER, MMIO::DirectRead(&state.DISR.Hex), MMIO::ComplexWrite([](u32, u32 val) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); const UDISR tmp_status_reg(val); - s_DISR.DEINTMASK = tmp_status_reg.DEINTMASK.Value(); - s_DISR.TCINTMASK = tmp_status_reg.TCINTMASK.Value(); - s_DISR.BRKINTMASK = tmp_status_reg.BRKINTMASK.Value(); - s_DISR.BREAK = tmp_status_reg.BREAK.Value(); + state.DISR.DEINTMASK = tmp_status_reg.DEINTMASK.Value(); + state.DISR.TCINTMASK = tmp_status_reg.TCINTMASK.Value(); + state.DISR.BRKINTMASK = tmp_status_reg.BRKINTMASK.Value(); + state.DISR.BREAK = tmp_status_reg.BREAK.Value(); if (tmp_status_reg.DEINT) - s_DISR.DEINT = 0; + state.DISR.DEINT = 0; if (tmp_status_reg.TCINT) - s_DISR.TCINT = 0; + state.DISR.TCINT = 0; if (tmp_status_reg.BRKINT) - s_DISR.BRKINT = 0; + state.DISR.BRKINT = 0; - if (s_DISR.BREAK) + if (state.DISR.BREAK) { DEBUG_ASSERT(0); } @@ -638,25 +666,26 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base, bool is_wii) UpdateInterrupts(); })); - mmio->Register(base | DI_COVER_REGISTER, MMIO::DirectRead(&s_DICVR.Hex), + mmio->Register(base | DI_COVER_REGISTER, MMIO::DirectRead(&state.DICVR.Hex), MMIO::ComplexWrite([](u32, u32 val) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); const UDICVR tmp_cover_reg(val); - s_DICVR.CVRINTMASK = tmp_cover_reg.CVRINTMASK.Value(); + state.DICVR.CVRINTMASK = tmp_cover_reg.CVRINTMASK.Value(); if (tmp_cover_reg.CVRINT) - s_DICVR.CVRINT = 0; + state.DICVR.CVRINT = 0; UpdateInterrupts(); })); // Command registers, which have no special logic - mmio->Register(base | DI_COMMAND_0, MMIO::DirectRead(&s_DICMDBUF[0]), - MMIO::DirectWrite(&s_DICMDBUF[0])); - mmio->Register(base | DI_COMMAND_1, MMIO::DirectRead(&s_DICMDBUF[1]), - MMIO::DirectWrite(&s_DICMDBUF[1])); - mmio->Register(base | DI_COMMAND_2, MMIO::DirectRead(&s_DICMDBUF[2]), - MMIO::DirectWrite(&s_DICMDBUF[2])); + mmio->Register(base | DI_COMMAND_0, MMIO::DirectRead(&state.DICMDBUF[0]), + MMIO::DirectWrite(&state.DICMDBUF[0])); + mmio->Register(base | DI_COMMAND_1, MMIO::DirectRead(&state.DICMDBUF[1]), + MMIO::DirectWrite(&state.DICMDBUF[1])); + mmio->Register(base | DI_COMMAND_2, MMIO::DirectRead(&state.DICMDBUF[2]), + MMIO::DirectWrite(&state.DICMDBUF[2])); // DMA related registers. Mostly direct accesses (+ masking for writes to // handle things like address alignment) and complex write on the DMA @@ -671,32 +700,35 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base, bool is_wii) // address (0x0D006000), although we allow writes to both of these addresses if Dolphin was // started in Wii mode. (Also, normally in Wii mode the DI MMIOs are only written by the // IOS /dev/di module, but we *do* emulate /dev/di writing the DI MMIOs.) - mmio->Register(base | DI_DMA_ADDRESS_REGISTER, MMIO::DirectRead(&s_DIMAR), - MMIO::DirectWrite(&s_DIMAR, is_wii ? ~0x1F : ~0xFC00001F)); - mmio->Register(base | DI_DMA_LENGTH_REGISTER, MMIO::DirectRead(&s_DILENGTH), - MMIO::DirectWrite(&s_DILENGTH, ~0x1F)); - mmio->Register(base | DI_DMA_CONTROL_REGISTER, MMIO::DirectRead(&s_DICR.Hex), + mmio->Register(base | DI_DMA_ADDRESS_REGISTER, MMIO::DirectRead(&state.DIMAR), + MMIO::DirectWrite(&state.DIMAR, is_wii ? ~0x1F : ~0xFC00001F)); + mmio->Register(base | DI_DMA_LENGTH_REGISTER, MMIO::DirectRead(&state.DILENGTH), + MMIO::DirectWrite(&state.DILENGTH, ~0x1F)); + mmio->Register(base | DI_DMA_CONTROL_REGISTER, MMIO::DirectRead(&state.DICR.Hex), MMIO::ComplexWrite([](u32, u32 val) { - s_DICR.Hex = val & 7; - if (s_DICR.TSTART) + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.DICR.Hex = val & 7; + if (state.DICR.TSTART) { ExecuteCommand(ReplyType::Interrupt); } })); - mmio->Register(base | DI_IMMEDIATE_DATA_BUFFER, MMIO::DirectRead(&s_DIIMMBUF), - MMIO::DirectWrite(&s_DIIMMBUF)); + mmio->Register(base | DI_IMMEDIATE_DATA_BUFFER, MMIO::DirectRead(&state.DIIMMBUF), + MMIO::DirectWrite(&state.DIIMMBUF)); // DI config register is read only. - mmio->Register(base | DI_CONFIG_REGISTER, MMIO::DirectRead(&s_DICFG.Hex), + mmio->Register(base | DI_CONFIG_REGISTER, MMIO::DirectRead(&state.DICFG.Hex), MMIO::InvalidWrite()); } static void UpdateInterrupts() { - const bool set_mask = - (s_DISR.DEINT & s_DISR.DEINTMASK) != 0 || (s_DISR.TCINT & s_DISR.TCINTMASK) != 0 || - (s_DISR.BRKINT & s_DISR.BRKINTMASK) != 0 || (s_DICVR.CVRINT & s_DICVR.CVRINTMASK) != 0; + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + const bool set_mask = (state.DISR.DEINT & state.DISR.DEINTMASK) != 0 || + (state.DISR.TCINT & state.DISR.TCINTMASK) != 0 || + (state.DISR.BRKINT & state.DISR.BRKINTMASK) != 0 || + (state.DICVR.CVRINT & state.DICVR.CVRINTMASK) != 0; ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_DI, set_mask); @@ -706,19 +738,20 @@ static void UpdateInterrupts() static void GenerateDIInterrupt(DIInterruptType dvd_interrupt) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); switch (dvd_interrupt) { case DIInterruptType::DEINT: - s_DISR.DEINT = true; + state.DISR.DEINT = true; break; case DIInterruptType::TCINT: - s_DISR.TCINT = true; + state.DISR.TCINT = true; break; case DIInterruptType::BRKINT: - s_DISR.BRKINT = true; + state.DISR.BRKINT = true; break; case DIInterruptType::CVRINT: - s_DICVR.CVRINT = true; + state.DICVR.CVRINT = true; break; } @@ -727,38 +760,40 @@ static void GenerateDIInterrupt(DIInterruptType dvd_interrupt) void SetInterruptEnabled(DIInterruptType interrupt, bool enabled) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); switch (interrupt) { case DIInterruptType::DEINT: - s_DISR.DEINTMASK = enabled; + state.DISR.DEINTMASK = enabled; break; case DIInterruptType::TCINT: - s_DISR.TCINTMASK = enabled; + state.DISR.TCINTMASK = enabled; break; case DIInterruptType::BRKINT: - s_DISR.BRKINTMASK = enabled; + state.DISR.BRKINTMASK = enabled; break; case DIInterruptType::CVRINT: - s_DICVR.CVRINTMASK = enabled; + state.DICVR.CVRINTMASK = enabled; break; } } void ClearInterrupt(DIInterruptType interrupt) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); switch (interrupt) { case DIInterruptType::DEINT: - s_DISR.DEINT = false; + state.DISR.DEINT = false; break; case DIInterruptType::TCINT: - s_DISR.TCINT = false; + state.DISR.TCINT = false; break; case DIInterruptType::BRKINT: - s_DISR.BRKINT = false; + state.DISR.BRKINT = false; break; case DIInterruptType::CVRINT: - s_DICVR.CVRINT = false; + state.DICVR.CVRINT = false; break; } } @@ -768,25 +803,26 @@ void ClearInterrupt(DIInterruptType interrupt) // should issue a DEINT interrupt. static bool CheckReadPreconditions() { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); if (!IsDiscInside()) // Implies CoverOpened or NoMediumPresent { ERROR_LOG_FMT(DVDINTERFACE, "No disc inside."); SetDriveError(DriveError::MediumNotPresent); return false; } - if (s_drive_state == DriveState::DiscChangeDetected) + if (state.drive_state == DriveState::DiscChangeDetected) { ERROR_LOG_FMT(DVDINTERFACE, "Disc changed (motor stopped)."); SetDriveError(DriveError::MediumChanged); return false; } - if (s_drive_state == DriveState::MotorStopped) + if (state.drive_state == DriveState::MotorStopped) { ERROR_LOG_FMT(DVDINTERFACE, "Motor stopped."); SetDriveError(DriveError::MotorStopped); return false; } - if (s_drive_state == DriveState::DiscIdNotRead) + if (state.drive_state == DriveState::DiscIdNotRead) { ERROR_LOG_FMT(DVDINTERFACE, "Disc id not read."); SetDriveError(DriveError::NoDiscID); @@ -800,6 +836,7 @@ static bool ExecuteReadCommand(u64 dvd_offset, u32 output_address, u32 dvd_lengt u32 output_length, const DiscIO::Partition& partition, ReplyType reply_type, DIInterruptType* interrupt_type) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); if (!CheckReadPreconditions()) { // Disc read fails @@ -823,7 +860,7 @@ static bool ExecuteReadCommand(u64 dvd_offset, u32 output_address, u32 dvd_lengt // regular DVD but just before the end of a DVD-R, displaying "Error #001" and failing to boot // if the read succeeds, so it's critical that we set the correct error code for such reads. // See https://wiibrew.org/wiki//dev/di#0x8D_DVDLowUnencryptedRead for details on Error #001. - if (dvd_offset + dvd_length > s_disc_end_offset) + if (dvd_offset + dvd_length > state.disc_end_offset) { SetDriveError(DriveError::BlockOOB); *interrupt_type = DIInterruptType::DEINT; @@ -839,23 +876,25 @@ static bool ExecuteReadCommand(u64 dvd_offset, u32 output_address, u32 dvd_lengt // with the userdata set to the interrupt type. void ExecuteCommand(ReplyType reply_type) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); DIInterruptType interrupt_type = DIInterruptType::TCINT; bool command_handled_by_thread = false; // DVDLowRequestError needs access to the error code set by the previous command - if (static_cast(s_DICMDBUF[0] >> 24) != DICommand::RequestError) + if (static_cast(state.DICMDBUF[0] >> 24) != DICommand::RequestError) SetDriveError(DriveError::None); - switch (static_cast(s_DICMDBUF[0] >> 24)) + switch (static_cast(state.DICMDBUF[0] >> 24)) { // Used by both GC and Wii case DICommand::Inquiry: // (shuffle2) Taken from my Wii - Memory::Write_U32(0x00000002, s_DIMAR); // Revision level, device code - Memory::Write_U32(0x20060526, s_DIMAR + 4); // Release date - Memory::Write_U32(0x41000000, s_DIMAR + 8); // Version + Memory::Write_U32(0x00000002, state.DIMAR); // Revision level, device code + Memory::Write_U32(0x20060526, state.DIMAR + 4); // Release date + Memory::Write_U32(0x41000000, state.DIMAR + 8); // Version - INFO_LOG_FMT(DVDINTERFACE, "DVDLowInquiry (Buffer {:#010x}, {:#x})", s_DIMAR, s_DILENGTH); + INFO_LOG_FMT(DVDINTERFACE, "DVDLowInquiry (Buffer {:#010x}, {:#x})", state.DIMAR, + state.DILENGTH); break; // GC-only patched drive firmware command, used by libogc @@ -877,33 +916,33 @@ void ExecuteCommand(ReplyType reply_type) // DMA Read from Disc. Only used through direct access on GC; direct use is prohibited by // IOS (which uses it internally) case DICommand::Read: - switch (s_DICMDBUF[0] & 0xFF) + switch (state.DICMDBUF[0] & 0xFF) { case 0x00: // Read Sector { - const u64 dvd_offset = static_cast(s_DICMDBUF[1]) << 2; + const u64 dvd_offset = static_cast(state.DICMDBUF[1]) << 2; INFO_LOG_FMT( DVDINTERFACE, "Read: DVDOffset={:08x}, DMABuffer = {:08x}, SrcLength = {:08x}, DMALength = {:08x}", - dvd_offset, s_DIMAR, s_DICMDBUF[2], s_DILENGTH); + dvd_offset, state.DIMAR, state.DICMDBUF[2], state.DILENGTH); - if (s_drive_state == DriveState::ReadyNoReadsMade) + if (state.drive_state == DriveState::ReadyNoReadsMade) SetDriveState(DriveState::Ready); command_handled_by_thread = - ExecuteReadCommand(dvd_offset, s_DIMAR, s_DICMDBUF[2], s_DILENGTH, DiscIO::PARTITION_NONE, - reply_type, &interrupt_type); + ExecuteReadCommand(dvd_offset, state.DIMAR, state.DICMDBUF[2], state.DILENGTH, + DiscIO::PARTITION_NONE, reply_type, &interrupt_type); } break; case 0x40: // Read DiscID - INFO_LOG_FMT(DVDINTERFACE, "Read DiscID: buffer {:08x}", s_DIMAR); - if (s_drive_state == DriveState::DiscIdNotRead) + INFO_LOG_FMT(DVDINTERFACE, "Read DiscID: buffer {:08x}", state.DIMAR); + if (state.drive_state == DriveState::DiscIdNotRead) { SetDriveState(DriveState::ReadyNoReadsMade); } - else if (s_drive_state == DriveState::ReadyNoReadsMade) + else if (state.drive_state == DriveState::ReadyNoReadsMade) { // The first disc ID reading is required before DTK can be configured. // If the disc ID is read again (or any other read occurs), it no longer can @@ -911,12 +950,13 @@ void ExecuteCommand(ReplyType reply_type) SetDriveState(DriveState::Ready); } - command_handled_by_thread = ExecuteReadCommand( - 0, s_DIMAR, 0x20, s_DILENGTH, DiscIO::PARTITION_NONE, reply_type, &interrupt_type); + command_handled_by_thread = + ExecuteReadCommand(0, state.DIMAR, 0x20, state.DILENGTH, DiscIO::PARTITION_NONE, + reply_type, &interrupt_type); break; default: - ERROR_LOG_FMT(DVDINTERFACE, "Unknown read subcommand: {:08x}", s_DICMDBUF[0]); + ERROR_LOG_FMT(DVDINTERFACE, "Unknown read subcommand: {:08x}", state.DICMDBUF[0]); break; } break; @@ -925,12 +965,12 @@ void ExecuteCommand(ReplyType reply_type) case DICommand::Seek: // Currently unimplemented INFO_LOG_FMT(DVDINTERFACE, "Seek: offset={:09x} (ignoring)", - static_cast(s_DICMDBUF[1]) << 2); + static_cast(state.DICMDBUF[1]) << 2); break; // Wii-exclusive case DICommand::ReadDVDMetadata: - switch ((s_DICMDBUF[0] >> 16) & 0xFF) + switch ((state.DICMDBUF[0] >> 16) & 0xFF) { case 0: ERROR_LOG_FMT(DVDINTERFACE, "DVDLowReadDvdPhysical"); @@ -942,7 +982,7 @@ void ExecuteCommand(ReplyType reply_type) ERROR_LOG_FMT(DVDINTERFACE, "DVDLowReadDvdDiscKey"); break; default: - ERROR_LOG_FMT(DVDINTERFACE, "Unknown 0xAD subcommand in {:08x}", s_DICMDBUF[0]); + ERROR_LOG_FMT(DVDINTERFACE, "Unknown 0xAD subcommand in {:08x}", state.DICMDBUF[0]); break; } SetDriveError(DriveError::InvalidCommand); @@ -984,8 +1024,8 @@ void ExecuteCommand(ReplyType reply_type) // TODO: Read the .bca file that cleanrip generates, if it exists // Memory::CopyToEmu(output_address, bca_data, 0x40); - Memory::Memset(s_DIMAR, 0, 0x40); - Memory::Write_U8(1, s_DIMAR + 0x33); + Memory::Memset(state.DIMAR, 0, 0x40); + Memory::Write_U8(1, state.DIMAR + 0x33); break; // Wii-exclusive case DICommand::RequestDiscStatus: @@ -1019,14 +1059,14 @@ void ExecuteCommand(ReplyType reply_type) case DICommand::RequestError: { u32 drive_state; - if (s_drive_state == DriveState::Ready) + if (state.drive_state == DriveState::Ready) drive_state = 0; else - drive_state = static_cast(s_drive_state) - 1; + drive_state = static_cast(state.drive_state) - 1; - const u32 result = (drive_state << 24) | static_cast(s_error_code); + const u32 result = (drive_state << 24) | static_cast(state.error_code); INFO_LOG_FMT(DVDINTERFACE, "Requesting error... ({:#010x})", result); - s_DIIMMBUF = result; + state.DIIMMBUF = result; SetDriveError(DriveError::None); break; } @@ -1039,60 +1079,60 @@ void ExecuteCommand(ReplyType reply_type) { if (!CheckReadPreconditions()) { - ERROR_LOG_FMT(DVDINTERFACE, "Cannot play audio (command {:08x})", s_DICMDBUF[0]); + ERROR_LOG_FMT(DVDINTERFACE, "Cannot play audio (command {:08x})", state.DICMDBUF[0]); interrupt_type = DIInterruptType::DEINT; break; } - if (!s_enable_dtk) + if (!state.enable_dtk) { ERROR_LOG_FMT( DVDINTERFACE, "Attempted to change playing audio while audio is disabled! ({:08x} {:08x} {:08x})", - s_DICMDBUF[0], s_DICMDBUF[1], s_DICMDBUF[2]); + state.DICMDBUF[0], state.DICMDBUF[1], state.DICMDBUF[2]); SetDriveError(DriveError::NoAudioBuf); interrupt_type = DIInterruptType::DEINT; break; } - if (s_drive_state == DriveState::ReadyNoReadsMade) + if (state.drive_state == DriveState::ReadyNoReadsMade) SetDriveState(DriveState::Ready); - switch ((s_DICMDBUF[0] >> 16) & 0xFF) + switch ((state.DICMDBUF[0] >> 16) & 0xFF) { case 0x00: { - const u64 offset = static_cast(s_DICMDBUF[1]) << 2; - const u32 length = s_DICMDBUF[2]; + const u64 offset = static_cast(state.DICMDBUF[1]) << 2; + const u32 length = state.DICMDBUF[2]; INFO_LOG_FMT(DVDINTERFACE, "(Audio) Start stream: offset: {:08x} length: {:08x}", offset, length); if ((offset == 0) && (length == 0)) { - s_stop_at_track_end = true; + state.stop_at_track_end = true; } - else if (!s_stop_at_track_end) + else if (!state.stop_at_track_end) { - s_next_start = offset; - s_next_length = length; - if (!s_stream) + state.next_start = offset; + state.next_length = length; + if (!state.stream) { - s_current_start = s_next_start; - s_current_length = s_next_length; - s_audio_position = s_current_start; - s_adpcm_decoder.ResetFilter(); - s_stream = true; + state.current_start = state.next_start; + state.current_length = state.next_length; + state.audio_position = state.current_start; + state.adpcm_decoder.ResetFilter(); + state.stream = true; } } break; } case 0x01: INFO_LOG_FMT(DVDINTERFACE, "(Audio) Stop stream"); - s_stop_at_track_end = false; - s_stream = false; + state.stop_at_track_end = false; + state.stream = false; break; default: - ERROR_LOG_FMT(DVDINTERFACE, "Invalid audio command! ({:08x} {:08x} {:08x})", s_DICMDBUF[0], - s_DICMDBUF[1], s_DICMDBUF[2]); + ERROR_LOG_FMT(DVDINTERFACE, "Invalid audio command! ({:08x} {:08x} {:08x})", + state.DICMDBUF[0], state.DICMDBUF[1], state.DICMDBUF[2]); SetDriveError(DriveError::InvalidAudioCommand); interrupt_type = DIInterruptType::DEINT; break; @@ -1110,7 +1150,7 @@ void ExecuteCommand(ReplyType reply_type) break; } - if (!s_enable_dtk) + if (!state.enable_dtk) { ERROR_LOG_FMT(DVDINTERFACE, "Attempted to request audio status while audio is disabled!"); SetDriveError(DriveError::NoAudioBuf); @@ -1118,36 +1158,36 @@ void ExecuteCommand(ReplyType reply_type) break; } - switch (s_DICMDBUF[0] >> 16 & 0xFF) + switch (state.DICMDBUF[0] >> 16 & 0xFF) { case 0x00: // Returns streaming status INFO_LOG_FMT(DVDINTERFACE, "(Audio): Stream Status: Request Audio status " "AudioPos:{:08x}/{:08x} " "CurrentStart:{:08x} CurrentLength:{:08x}", - s_audio_position, s_current_start + s_current_length, s_current_start, - s_current_length); - s_DIIMMBUF = (s_stream ? 1 : 0); + state.audio_position, state.current_start + state.current_length, + state.current_start, state.current_length); + state.DIIMMBUF = (state.stream ? 1 : 0); break; case 0x01: // Returns the current offset INFO_LOG_FMT(DVDINTERFACE, "(Audio): Stream Status: Request Audio status AudioPos:{:08x}", - s_audio_position); - s_DIIMMBUF = static_cast((s_audio_position & 0xffffffffffff8000ull) >> 2); + state.audio_position); + state.DIIMMBUF = static_cast((state.audio_position & 0xffffffffffff8000ull) >> 2); break; case 0x02: // Returns the start offset INFO_LOG_FMT(DVDINTERFACE, "(Audio): Stream Status: Request Audio status CurrentStart:{:08x}", - s_current_start); - s_DIIMMBUF = static_cast(s_current_start >> 2); + state.current_start); + state.DIIMMBUF = static_cast(state.current_start >> 2); break; case 0x03: // Returns the total length INFO_LOG_FMT(DVDINTERFACE, "(Audio): Stream Status: Request Audio status CurrentLength:{:08x}", - s_current_length); - s_DIIMMBUF = s_current_length; + state.current_length); + state.DIIMMBUF = state.current_length; break; default: ERROR_LOG_FMT(DVDINTERFACE, "Invalid audio status command! ({:08x} {:08x} {:08x})", - s_DICMDBUF[0], s_DICMDBUF[1], s_DICMDBUF[2]); + state.DICMDBUF[0], state.DICMDBUF[1], state.DICMDBUF[2]); SetDriveError(DriveError::InvalidAudioCommand); interrupt_type = DIInterruptType::DEINT; break; @@ -1158,12 +1198,13 @@ void ExecuteCommand(ReplyType reply_type) // Used by both GC and Wii case DICommand::StopMotor: { - const bool eject = (s_DICMDBUF[0] & (1 << 17)); - const bool kill = (s_DICMDBUF[0] & (1 << 20)); + const bool eject = (state.DICMDBUF[0] & (1 << 17)); + const bool kill = (state.DICMDBUF[0] & (1 << 20)); INFO_LOG_FMT(DVDINTERFACE, "DVDLowStopMotor{}{}", eject ? " eject" : "", kill ? " kill!" : ""); - if (s_drive_state == DriveState::Ready || s_drive_state == DriveState::ReadyNoReadsMade || - s_drive_state == DriveState::DiscIdNotRead) + if (state.drive_state == DriveState::Ready || + state.drive_state == DriveState::ReadyNoReadsMade || + state.drive_state == DriveState::DiscIdNotRead) { SetDriveState(DriveState::MotorStopped); } @@ -1171,10 +1212,10 @@ void ExecuteCommand(ReplyType reply_type) const bool force_eject = eject && !kill; if (Config::Get(Config::MAIN_AUTO_DISC_CHANGE) && !Movie::IsPlayingInput() && - DVDThread::IsInsertedDiscRunning() && !s_auto_disc_change_paths.empty()) + DVDThread::IsInsertedDiscRunning() && !state.auto_disc_change_paths.empty()) { CoreTiming::ScheduleEvent(force_eject ? 0 : SystemTimers::GetTicksPerSecond() / 2, - s_auto_change_disc); + state.auto_change_disc); OSD::AddMessage("Changing discs automatically...", OSD::Duration::NORMAL); } else if (force_eject) @@ -1200,7 +1241,7 @@ void ExecuteCommand(ReplyType reply_type) break; } - if (s_drive_state == DriveState::Ready) + if (state.drive_state == DriveState::Ready) { ERROR_LOG_FMT(DVDINTERFACE, "Attempted to change DTK configuration after a read has been made!"); @@ -1211,7 +1252,7 @@ void ExecuteCommand(ReplyType reply_type) // Note that this can be called multiple times, as long as the drive is in the ReadyNoReadsMade // state. Calling it does not exit that state. - AudioBufferConfig((s_DICMDBUF[0] >> 16) & 1, s_DICMDBUF[0] & 0xf); + AudioBufferConfig((state.DICMDBUF[0] >> 16) & 1, state.DICMDBUF[0] & 0xf); break; // GC-only patched drive firmware command, used by libogc @@ -1226,7 +1267,7 @@ void ExecuteCommand(ReplyType reply_type) // This will appear as unknown commands, unless the check is re-instated to catch such data. // Can only be used through direct access and only after unlocked. case DICommand::Debug: - ERROR_LOG_FMT(DVDINTERFACE, "Unsupported DVD Drive debug command {:#010x}", s_DICMDBUF[0]); + ERROR_LOG_FMT(DVDINTERFACE, "Unsupported DVD Drive debug command {:#010x}", state.DICMDBUF[0]); SetDriveError(DriveError::InvalidCommand); interrupt_type = DIInterruptType::DEINT; break; @@ -1236,12 +1277,13 @@ void ExecuteCommand(ReplyType reply_type) // Can only be used through direct access. The unlock command doesn't seem to work on the Wii. case DICommand::DebugUnlock: { - if (s_DICMDBUF[0] == 0xFF014D41 && s_DICMDBUF[1] == 0x54534849 && s_DICMDBUF[2] == 0x54410200) + if (state.DICMDBUF[0] == 0xFF014D41 && state.DICMDBUF[1] == 0x54534849 && + state.DICMDBUF[2] == 0x54410200) { INFO_LOG_FMT(DVDINTERFACE, "Unlock test 1 passed"); } - else if (s_DICMDBUF[0] == 0xFF004456 && s_DICMDBUF[1] == 0x442D4741 && - s_DICMDBUF[2] == 0x4D450300) + else if (state.DICMDBUF[0] == 0xFF004456 && state.DICMDBUF[1] == 0x442D4741 && + state.DICMDBUF[2] == 0x4D450300) { INFO_LOG_FMT(DVDINTERFACE, "Unlock test 2 passed"); } @@ -1253,9 +1295,9 @@ void ExecuteCommand(ReplyType reply_type) break; default: - ERROR_LOG_FMT(DVDINTERFACE, "Unknown command {:#010x} (Buffer {:#010x}, {:#x})", s_DICMDBUF[0], - s_DIMAR, s_DILENGTH); - PanicAlertFmtT("Unknown DVD command {0:08x} - fatal error", s_DICMDBUF[0]); + ERROR_LOG_FMT(DVDINTERFACE, "Unknown command {:#010x} (Buffer {:#010x}, {:#x})", + state.DICMDBUF[0], state.DIMAR, state.DILENGTH); + PanicAlertFmtT("Unknown DVD command {0:08x} - fatal error", state.DICMDBUF[0]); SetDriveError(DriveError::InvalidCommand); interrupt_type = DIInterruptType::DEINT; break; @@ -1264,18 +1306,20 @@ void ExecuteCommand(ReplyType reply_type) if (!command_handled_by_thread) { // TODO: Needs testing to determine if MINIMUM_COMMAND_LATENCY_US is accurate for this - CoreTiming::ScheduleEvent( - MINIMUM_COMMAND_LATENCY_US * (SystemTimers::GetTicksPerSecond() / 1000000), - s_finish_executing_command, PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); + CoreTiming::ScheduleEvent(MINIMUM_COMMAND_LATENCY_US * + (SystemTimers::GetTicksPerSecond() / 1000000), + state.finish_executing_command, + PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); } } void PerformDecryptingRead(u32 position, u32 length, u32 output_address, const DiscIO::Partition& partition, ReplyType reply_type) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); DIInterruptType interrupt_type = DIInterruptType::TCINT; - if (s_drive_state == DriveState::ReadyNoReadsMade) + if (state.drive_state == DriveState::ReadyNoReadsMade) SetDriveState(DriveState::Ready); const bool command_handled_by_thread = @@ -1285,34 +1329,38 @@ void PerformDecryptingRead(u32 position, u32 length, u32 output_address, if (!command_handled_by_thread) { // TODO: Needs testing to determine if MINIMUM_COMMAND_LATENCY_US is accurate for this - CoreTiming::ScheduleEvent( - MINIMUM_COMMAND_LATENCY_US * (SystemTimers::GetTicksPerSecond() / 1000000), - s_finish_executing_command, PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); + CoreTiming::ScheduleEvent(MINIMUM_COMMAND_LATENCY_US * + (SystemTimers::GetTicksPerSecond() / 1000000), + state.finish_executing_command, + PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); } } void ForceOutOfBoundsRead(ReplyType reply_type) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); INFO_LOG_FMT(DVDINTERFACE, "Forcing an out-of-bounds disc read."); - if (s_drive_state == DriveState::ReadyNoReadsMade) + if (state.drive_state == DriveState::ReadyNoReadsMade) SetDriveState(DriveState::Ready); SetDriveError(DriveError::BlockOOB); // TODO: Needs testing to determine if MINIMUM_COMMAND_LATENCY_US is accurate for this const DIInterruptType interrupt_type = DIInterruptType::DEINT; - CoreTiming::ScheduleEvent( - MINIMUM_COMMAND_LATENCY_US * (SystemTimers::GetTicksPerSecond() / 1000000), - s_finish_executing_command, PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); + CoreTiming::ScheduleEvent(MINIMUM_COMMAND_LATENCY_US * + (SystemTimers::GetTicksPerSecond() / 1000000), + state.finish_executing_command, + PackFinishExecutingCommandUserdata(reply_type, interrupt_type)); } void AudioBufferConfig(bool enable_dtk, u8 dtk_buffer_length) { - s_enable_dtk = enable_dtk; - s_dtk_buffer_length = dtk_buffer_length; - if (s_enable_dtk) - INFO_LOG_FMT(DVDINTERFACE, "DTK enabled: buffer size {}", s_dtk_buffer_length); + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.enable_dtk = enable_dtk; + state.dtk_buffer_length = dtk_buffer_length; + if (state.enable_dtk) + INFO_LOG_FMT(DVDINTERFACE, "DTK enabled: buffer size {}", state.dtk_buffer_length); else INFO_LOG_FMT(DVDINTERFACE, "DTK disabled"); } @@ -1331,17 +1379,21 @@ void FinishExecutingCommandCallback(u64 userdata, s64 cycles_late) void SetDriveState(DriveState state) { - s_drive_state = state; + auto& dvd_interface_state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + dvd_interface_state.drive_state = state; } void SetDriveError(DriveError error) { - s_error_code = error; + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + state.error_code = error; } void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type, s64 cycles_late, const std::vector& data) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + // The data parameter contains the requested data iff this was called from DVDThread, and is // empty otherwise. DVDThread is the only source of ReplyType::NoReply and ReplyType::DTK. @@ -1349,12 +1401,12 @@ void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type if (reply_type == ReplyType::NoReply) transfer_size = static_cast(data.size()); else if (reply_type == ReplyType::Interrupt || reply_type == ReplyType::IOS) - transfer_size = s_DILENGTH; + transfer_size = state.DILENGTH; if (interrupt_type == DIInterruptType::TCINT) { - s_DIMAR += transfer_size; - s_DILENGTH -= transfer_size; + state.DIMAR += transfer_size; + state.DILENGTH -= transfer_size; } switch (reply_type) @@ -1366,9 +1418,9 @@ void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type case ReplyType::Interrupt: { - if (s_DICR.TSTART) + if (state.DICR.TSTART) { - s_DICR.TSTART = 0; + state.DICR.TSTART = 0; GenerateDIInterrupt(interrupt_type); } break; @@ -1393,6 +1445,8 @@ void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& partition, u32 output_address, ReplyType reply_type) { + auto& state = Core::System::GetInstance().GetDVDInterfaceState().GetData(); + // The drive continues to read 1 MiB beyond the last read position when idle. // If a future read falls within this window, part of the read may be returned // from the buffer. Data can be transferred from the buffer at up to 32 MiB/s. @@ -1434,33 +1488,34 @@ static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& parti } else { - if (s_read_buffer_start_time == s_read_buffer_end_time) + if (state.read_buffer_start_time == state.read_buffer_end_time) { // No buffer buffer_start = buffer_end = head_position = 0; } else { - buffer_start = s_read_buffer_end_offset > STREAMING_BUFFER_SIZE ? - s_read_buffer_end_offset - STREAMING_BUFFER_SIZE : + buffer_start = state.read_buffer_end_offset > STREAMING_BUFFER_SIZE ? + state.read_buffer_end_offset - STREAMING_BUFFER_SIZE : 0; DEBUG_LOG_FMT(DVDINTERFACE, "Buffer: now={:#x} start time={:#x} end time={:#x}", current_time, - s_read_buffer_start_time, s_read_buffer_end_time); + state.read_buffer_start_time, state.read_buffer_end_time); - if (current_time >= s_read_buffer_end_time) + if (current_time >= state.read_buffer_end_time) { // Buffer is fully read - buffer_end = s_read_buffer_end_offset; + buffer_end = state.read_buffer_end_offset; } else { // The amount of data the buffer contains *right now*, rounded to a DVD ECC block. - buffer_end = s_read_buffer_start_offset + - Common::AlignDown((current_time - s_read_buffer_start_time) * - (s_read_buffer_end_offset - s_read_buffer_start_offset) / - (s_read_buffer_end_time - s_read_buffer_start_time), - DVD_ECC_BLOCK_SIZE); + buffer_end = + state.read_buffer_start_offset + + Common::AlignDown((current_time - state.read_buffer_start_time) * + (state.read_buffer_end_offset - state.read_buffer_start_offset) / + (state.read_buffer_end_time - state.read_buffer_start_time), + DVD_ECC_BLOCK_SIZE); } head_position = buffer_end; @@ -1573,36 +1628,37 @@ static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& parti } else { - // Note that the s_read_buffer_start_offset value we calculate here is not the + // Note that the read_buffer_start_offset value we calculate here is not the // actual start of the buffer - it is just the start of the portion we need to read. - // The actual start of the buffer is s_read_buffer_end_offset - STREAMING_BUFFER_SIZE. + // The actual start of the buffer is read_buffer_end_offset - STREAMING_BUFFER_SIZE. if (last_block >= buffer_end) { // Full buffer read - s_read_buffer_start_offset = last_block; + state.read_buffer_start_offset = last_block; } else { // Partial buffer read - s_read_buffer_start_offset = buffer_end; + state.read_buffer_start_offset = buffer_end; } - s_read_buffer_end_offset = last_block + STREAMING_BUFFER_SIZE - BUFFER_BACKWARD_SEEK_LIMIT; + state.read_buffer_end_offset = last_block + STREAMING_BUFFER_SIZE - BUFFER_BACKWARD_SEEK_LIMIT; if (seek) { // If we seek, the block preceding the first accessed block never gets read into the buffer - s_read_buffer_end_offset = - std::max(s_read_buffer_end_offset, first_block + STREAMING_BUFFER_SIZE); + state.read_buffer_end_offset = + std::max(state.read_buffer_end_offset, first_block + STREAMING_BUFFER_SIZE); } // Assume the buffer starts prefetching new blocks right after the end of the last operation - s_read_buffer_start_time = current_time + ticks_until_completion; - s_read_buffer_end_time = - s_read_buffer_start_time + + state.read_buffer_start_time = current_time + ticks_until_completion; + state.read_buffer_end_time = + state.read_buffer_start_time + static_cast(ticks_per_second * - DVDMath::CalculateRawDiscReadTime( - s_read_buffer_start_offset, - s_read_buffer_end_offset - s_read_buffer_start_offset, wii_disc)); + DVDMath::CalculateRawDiscReadTime(state.read_buffer_start_offset, + state.read_buffer_end_offset - + state.read_buffer_start_offset, + wii_disc)); } DEBUG_LOG_FMT(DVDINTERFACE, diff --git a/Source/Core/Core/HW/DVD/DVDInterface.h b/Source/Core/Core/HW/DVD/DVDInterface.h index 930da55b12..ef619f0f65 100644 --- a/Source/Core/Core/HW/DVD/DVDInterface.h +++ b/Source/Core/Core/HW/DVD/DVDInterface.h @@ -23,6 +23,23 @@ class Mapping; namespace DVDInterface { +class DVDInterfaceState +{ +public: + DVDInterfaceState(); + DVDInterfaceState(const DVDInterfaceState&) = delete; + DVDInterfaceState(DVDInterfaceState&&) = delete; + DVDInterfaceState& operator=(const DVDInterfaceState&) = delete; + DVDInterfaceState& operator=(DVDInterfaceState&&) = delete; + ~DVDInterfaceState(); + + struct Data; + Data& GetData() { return *m_data; } + +private: + std::unique_ptr m_data; +}; + enum class DICommand : u8 { Inquiry = 0x12, diff --git a/Source/Core/Core/System.cpp b/Source/Core/Core/System.cpp index aa257af6f3..108209b024 100644 --- a/Source/Core/Core/System.cpp +++ b/Source/Core/Core/System.cpp @@ -7,6 +7,7 @@ #include "AudioCommon/SoundStream.h" #include "Core/Config/MainSettings.h" +#include "Core/HW/DVD/DVDInterface.h" #include "Core/HW/DVD/DVDThread.h" namespace Core @@ -17,6 +18,7 @@ struct System::Impl bool m_sound_stream_running = false; bool m_audio_dump_started = false; + DVDInterface::DVDInterfaceState m_dvd_interface_state; DVDThread::DVDThreadState m_dvd_thread_state; }; @@ -62,6 +64,11 @@ void System::SetAudioDumpStarted(bool started) m_impl->m_audio_dump_started = started; } +DVDInterface::DVDInterfaceState& System::GetDVDInterfaceState() const +{ + return m_impl->m_dvd_interface_state; +} + DVDThread::DVDThreadState& System::GetDVDThreadState() const { return m_impl->m_dvd_thread_state; diff --git a/Source/Core/Core/System.h b/Source/Core/Core/System.h index 659caae914..704d3dca71 100644 --- a/Source/Core/Core/System.h +++ b/Source/Core/Core/System.h @@ -7,6 +7,10 @@ class SoundStream; +namespace DVDInterface +{ +class DVDInterfaceState; +} namespace DVDThread { class DVDThreadState; @@ -45,6 +49,7 @@ public: bool IsAudioDumpStarted() const; void SetAudioDumpStarted(bool started); + DVDInterface::DVDInterfaceState& GetDVDInterfaceState() const; DVDThread::DVDThreadState& GetDVDThreadState() const; private: From dbb0cfbc0941b248bd4bdd41e1ce4a19c6eac091 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Sat, 3 Sep 2022 22:20:24 +0200 Subject: [PATCH 640/659] DSPLLE: Remove dead DSPSymbolDB. --- Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp | 18 ------------------ Source/Core/Core/HW/DSPLLE/DSPSymbols.h | 10 ---------- 2 files changed, 28 deletions(-) diff --git a/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp b/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp index 8f190f1ebe..87c7e3d04d 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp +++ b/Source/Core/Core/HW/DSPLLE/DSPSymbols.cpp @@ -15,8 +15,6 @@ namespace DSP::Symbols { -DSPSymbolDB g_dsp_symbol_db; - static std::map addr_to_line; static std::map line_to_addr; static std::vector lines; @@ -52,22 +50,6 @@ const char* GetLineText(int line) } } -Common::Symbol* DSPSymbolDB::GetSymbolFromAddr(u32 addr) -{ - auto it = m_functions.find(addr); - - if (it != m_functions.end()) - return &it->second; - - for (auto& func : m_functions) - { - if (addr >= func.second.address && addr < func.second.address + func.second.size) - return &func.second; - } - - return nullptr; -} - void AutoDisassembly(const SDSP& dsp, u16 start_addr, u16 end_addr) { AssemblerSettings settings; diff --git a/Source/Core/Core/HW/DSPLLE/DSPSymbols.h b/Source/Core/Core/HW/DSPLLE/DSPSymbols.h index f4e5ddba11..5d9e1cd158 100644 --- a/Source/Core/Core/HW/DSPLLE/DSPSymbols.h +++ b/Source/Core/Core/HW/DSPLLE/DSPSymbols.h @@ -15,16 +15,6 @@ struct SDSP; namespace DSP::Symbols { -class DSPSymbolDB : public Common::SymbolDB -{ -public: - DSPSymbolDB() {} - ~DSPSymbolDB() {} - Common::Symbol* GetSymbolFromAddr(u32 addr) override; -}; - -extern DSPSymbolDB g_dsp_symbol_db; - void AutoDisassembly(const SDSP& dsp, u16 start_addr, u16 end_addr); void Clear(); From 51d9ef269cc01732cedbff6b31d5af8f25d61547 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 7 Sep 2022 10:32:22 -0700 Subject: [PATCH 641/659] update zlib-ng ce01b1e41da298334f8214389cc9369540a7560f enables fast crc32 on msvc/arm64 --- Externals/zlib-ng/zlib-ng | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals/zlib-ng/zlib-ng b/Externals/zlib-ng/zlib-ng index a406284705..ce01b1e41d 160000 --- a/Externals/zlib-ng/zlib-ng +++ b/Externals/zlib-ng/zlib-ng @@ -1 +1 @@ -Subproject commit a406284705a462939c7a634119884a31b87d6af9 +Subproject commit ce01b1e41da298334f8214389cc9369540a7560f From 67c97a0bf26b4272632e3aaaab43fd571f0cfe70 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 7 Sep 2022 21:06:26 +0200 Subject: [PATCH 642/659] WGInput: Work around crash with Steam overlay. --- .../InputCommon/ControllerInterface/WGInput/WGInput.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp index 414d246069..fc6441bb8d 100644 --- a/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp +++ b/Source/Core/InputCommon/ControllerInterface/WGInput/WGInput.cpp @@ -544,8 +544,12 @@ private: { try { + // Workaround for Steam. If Steam's GameOverlayRenderer64.dll is loaded, battery_info is null. + auto battery_info = m_raw_controller.try_as(); + if (!battery_info) + return false; const winrt::Windows::Devices::Power::BatteryReport report = - m_raw_controller.TryGetBatteryReport(); + battery_info.TryGetBatteryReport(); if (!report) return false; From b8ca1b2907230f2e1285bfdb9c5e3b373d49cf56 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 7 Sep 2022 22:37:14 +0200 Subject: [PATCH 643/659] InputCommon: Fix deadlock in EmulatedController::UpdateReferences(). --- Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp | 2 +- Source/Core/InputCommon/ControllerInterface/CoreDevice.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp index 7aec56115c..0a3de3e391 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp @@ -40,7 +40,7 @@ std::unique_lock EmulatedController::GetStateLock() void EmulatedController::UpdateReferences(const ControllerInterface& devi) { - const auto lock = GetStateLock(); + std::scoped_lock lk(s_get_state_mutex, devi.GetDevicesMutex()); m_default_device_is_connected = devi.HasConnectedDevice(m_default_device); diff --git a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h index 227a1febbe..2280ddac3b 100644 --- a/Source/Core/InputCommon/ControllerInterface/CoreDevice.h +++ b/Source/Core/InputCommon/ControllerInterface/CoreDevice.h @@ -238,6 +238,8 @@ public: std::chrono::milliseconds confirmation_wait, std::chrono::milliseconds maximum_wait) const; + std::recursive_mutex& GetDevicesMutex() const { return m_devices_mutex; } + protected: // Exclusively needed when reading/writing "m_devices" mutable std::recursive_mutex m_devices_mutex; From abb59a781aebf89cb3d808826ffc146e0a5d34ea Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Thu, 8 Sep 2022 11:32:44 -0700 Subject: [PATCH 644/659] Mixer: Use smaller array for PushWiimoteSpeakerSamples --- Source/Core/AudioCommon/Mixer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index 5baa02d25e..2609ff89a5 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -282,9 +282,11 @@ void Mixer::PushStreamingSamples(const short* samples, unsigned int num_samples) void Mixer::PushWiimoteSpeakerSamples(const short* samples, unsigned int num_samples, unsigned int sample_rate_divisor) { - short samples_stereo[MAX_SAMPLES * 2]; + // Max 20 bytes/speaker report, may be 4-bit ADPCM so multiply by 2 + static constexpr u32 MAX_SPEAKER_SAMPLES = 20 * 2; + std::array samples_stereo; - if (num_samples < MAX_SAMPLES) + if (num_samples <= MAX_SPEAKER_SAMPLES) { m_wiimote_speaker_mixer.SetInputSampleRateDivisor(sample_rate_divisor); @@ -294,7 +296,7 @@ void Mixer::PushWiimoteSpeakerSamples(const short* samples, unsigned int num_sam samples_stereo[i * 2 + 1] = samples[i]; } - m_wiimote_speaker_mixer.PushSamples(samples_stereo, num_samples); + m_wiimote_speaker_mixer.PushSamples(samples_stereo.data(), num_samples); } } From 72de74d4fc81bf5cc2ed0b3a9a3c6c43856c0c5e Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Wed, 24 Aug 2022 17:22:39 -0700 Subject: [PATCH 645/659] Mixer: Add assertions regarding num_samples versus buffer length --- Source/Core/AudioCommon/Mixer.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index 2609ff89a5..ccec2db5c9 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -167,6 +167,11 @@ unsigned int Mixer::Mix(short* samples, unsigned int num_samples) unsigned int available_samples = std::min(m_dma_mixer.AvailableSamples(), m_streaming_mixer.AvailableSamples()); + ASSERT_MSG(AUDIO, available_samples <= MAX_SAMPLES, + "Audio stretching would overflow m_scratch_buffer: min({}, {}) -> {} > {} ({})", + m_dma_mixer.AvailableSamples(), m_streaming_mixer.AvailableSamples(), + available_samples, MAX_SAMPLES, num_samples); + m_scratch_buffer.fill(0); m_dma_mixer.Mix(m_scratch_buffer.data(), available_samples, false, emulation_speed, @@ -213,10 +218,15 @@ unsigned int Mixer::MixSurround(float* samples, unsigned int num_samples) // Mix() may also use m_scratch_buffer internally, but is safe because it alternates reads // and writes. + ASSERT_MSG(AUDIO, needed_frames <= MAX_SAMPLES, + "needed_frames would overflow m_scratch_buffer: {} -> {} > {}", num_samples, + needed_frames, MAX_SAMPLES); size_t available_frames = Mix(m_scratch_buffer.data(), static_cast(needed_frames)); if (available_frames != needed_frames) { - ERROR_LOG_FMT(AUDIO, "Error decoding surround frames."); + ERROR_LOG_FMT(AUDIO, + "Error decoding surround frames: needed {} frames for {} samples but got {}", + needed_frames, num_samples, available_frames); return 0; } @@ -286,6 +296,9 @@ void Mixer::PushWiimoteSpeakerSamples(const short* samples, unsigned int num_sam static constexpr u32 MAX_SPEAKER_SAMPLES = 20 * 2; std::array samples_stereo; + ASSERT_MSG(AUDIO, num_samples <= MAX_SPEAKER_SAMPLES, + "num_samples would overflow samples_stereo: {} > {}", num_samples, + MAX_SPEAKER_SAMPLES); if (num_samples <= MAX_SPEAKER_SAMPLES) { m_wiimote_speaker_mixer.SetInputSampleRateDivisor(sample_rate_divisor); From 001fe8f94de53ac29953834b3e5d0d421668e3b7 Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 9 Sep 2022 04:13:43 +0200 Subject: [PATCH 646/659] HW: Move AudioInterface variables to Core::System. --- Source/Core/Core/HW/AudioInterface.cpp | 213 +++++++++++++++---------- Source/Core/Core/HW/AudioInterface.h | 19 +++ Source/Core/Core/System.cpp | 7 + Source/Core/Core/System.h | 5 + 4 files changed, 156 insertions(+), 88 deletions(-) diff --git a/Source/Core/Core/HW/AudioInterface.cpp b/Source/Core/Core/HW/AudioInterface.cpp index 41b57aeba1..c38cb63574 100644 --- a/Source/Core/Core/HW/AudioInterface.cpp +++ b/Source/Core/Core/HW/AudioInterface.cpp @@ -109,48 +109,61 @@ union AIVR u32 hex = 0; }; -// STATE_TO_SAVE -// Registers -static AICR s_control; -static AIVR s_volume; -static u32 s_sample_counter = 0; -static u32 s_interrupt_timing = 0; +struct AudioInterfaceState::Data +{ + // Registers + AICR control; + AIVR volume; -static u64 s_last_cpu_time = 0; -static u64 s_cpu_cycles_per_sample = 0; + u32 sample_counter = 0; + u32 interrupt_timing = 0; -static u32 s_ais_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 48000; -static u32 s_aid_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 32000; + u64 last_cpu_time = 0; + u64 cpu_cycles_per_sample = 0; + + u32 ais_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 48000; + u32 aid_sample_rate_divisor = Mixer::FIXED_SAMPLE_RATE_DIVIDEND / 32000; + + CoreTiming::EventType* event_type_ai; +}; + +AudioInterfaceState::AudioInterfaceState() : m_data(std::make_unique()) +{ +} + +AudioInterfaceState::~AudioInterfaceState() = default; void DoState(PointerWrap& p) { - p.DoPOD(s_control); - p.DoPOD(s_volume); - p.Do(s_sample_counter); - p.Do(s_interrupt_timing); - p.Do(s_last_cpu_time); - p.Do(s_ais_sample_rate_divisor); - p.Do(s_aid_sample_rate_divisor); - p.Do(s_cpu_cycles_per_sample); - auto& system = Core::System::GetInstance(); + auto& state = system.GetAudioInterfaceState().GetData(); + + p.DoPOD(state.control); + p.DoPOD(state.volume); + p.Do(state.sample_counter); + p.Do(state.interrupt_timing); + p.Do(state.last_cpu_time); + p.Do(state.ais_sample_rate_divisor); + p.Do(state.aid_sample_rate_divisor); + p.Do(state.cpu_cycles_per_sample); + SoundStream* sound_stream = system.GetSoundStream(); sound_stream->GetMixer()->DoState(p); } namespace { -CoreTiming::EventType* event_type_ai; - void UpdateInterrupts() { + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); ProcessorInterface::SetInterrupt(ProcessorInterface::INT_CAUSE_AI, - s_control.AIINT & s_control.AIINTMSK); + state.control.AIINT & state.control.AIINTMSK); } void GenerateAudioInterrupt() { - s_control.AIINT = 1; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + state.control.AIINT = 1; UpdateInterrupts(); } @@ -159,23 +172,27 @@ void IncreaseSampleCount(const u32 amount) if (!IsPlaying()) return; - const u32 old_sample_counter = s_sample_counter + 1; - s_sample_counter += amount; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); - if ((s_interrupt_timing - old_sample_counter) <= (s_sample_counter - old_sample_counter)) + const u32 old_sample_counter = state.sample_counter + 1; + state.sample_counter += amount; + + if ((state.interrupt_timing - old_sample_counter) <= (state.sample_counter - old_sample_counter)) { - DEBUG_LOG_FMT(AUDIO_INTERFACE, - "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} s_control.AIINTVLD={}", - s_sample_counter, s_interrupt_timing, PowerPC::ppcState.pc, s_control.AIINTVLD); + DEBUG_LOG_FMT( + AUDIO_INTERFACE, "GenerateAudioInterrupt {:08x}:{:08x} at PC {:08x} control.AIINTVLD={}", + state.sample_counter, state.interrupt_timing, PowerPC::ppcState.pc, state.control.AIINTVLD); GenerateAudioInterrupt(); } } int GetAIPeriod() { - u64 period = s_cpu_cycles_per_sample * (s_interrupt_timing - s_sample_counter); - u64 s_period = - s_cpu_cycles_per_sample * Mixer::FIXED_SAMPLE_RATE_DIVIDEND / s_ais_sample_rate_divisor; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + + u64 period = state.cpu_cycles_per_sample * (state.interrupt_timing - state.sample_counter); + u64 s_period = state.cpu_cycles_per_sample * Mixer::FIXED_SAMPLE_RATE_DIVIDEND / + state.ais_sample_rate_divisor; if (period == 0) return static_cast(s_period); return static_cast(std::min(period, s_period)); @@ -186,65 +203,73 @@ void Update(u64 userdata, s64 cycles_late) if (!IsPlaying()) return; - const u64 diff = CoreTiming::GetTicks() - s_last_cpu_time; - if (diff > s_cpu_cycles_per_sample) + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + + const u64 diff = CoreTiming::GetTicks() - state.last_cpu_time; + if (diff > state.cpu_cycles_per_sample) { - const u32 samples = static_cast(diff / s_cpu_cycles_per_sample); - s_last_cpu_time += samples * s_cpu_cycles_per_sample; + const u32 samples = static_cast(diff / state.cpu_cycles_per_sample); + state.last_cpu_time += samples * state.cpu_cycles_per_sample; IncreaseSampleCount(samples); } - CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, event_type_ai); + CoreTiming::ScheduleEvent(GetAIPeriod() - cycles_late, state.event_type_ai); } void SetAIDSampleRate(SampleRate sample_rate) { + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + if (sample_rate == SampleRate::AI32KHz) { - s_control.AIDFR = AID_32KHz; - s_aid_sample_rate_divisor = Get32KHzSampleRateDivisor(); + state.control.AIDFR = AID_32KHz; + state.aid_sample_rate_divisor = Get32KHzSampleRateDivisor(); } else { - s_control.AIDFR = AID_48KHz; - s_aid_sample_rate_divisor = Get48KHzSampleRateDivisor(); + state.control.AIDFR = AID_48KHz; + state.aid_sample_rate_divisor = Get48KHzSampleRateDivisor(); } SoundStream* sound_stream = Core::System::GetInstance().GetSoundStream(); - sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(s_aid_sample_rate_divisor); + sound_stream->GetMixer()->SetDMAInputSampleRateDivisor(state.aid_sample_rate_divisor); } void SetAISSampleRate(SampleRate sample_rate) { + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + if (sample_rate == SampleRate::AI32KHz) { - s_control.AISFR = AIS_32KHz; - s_ais_sample_rate_divisor = Get32KHzSampleRateDivisor(); + state.control.AISFR = AIS_32KHz; + state.ais_sample_rate_divisor = Get32KHzSampleRateDivisor(); } else { - s_control.AISFR = AIS_48KHz; - s_ais_sample_rate_divisor = Get48KHzSampleRateDivisor(); + state.control.AISFR = AIS_48KHz; + state.ais_sample_rate_divisor = Get48KHzSampleRateDivisor(); } - s_cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * - s_ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; + state.cpu_cycles_per_sample = static_cast(SystemTimers::GetTicksPerSecond()) * + state.ais_sample_rate_divisor / Mixer::FIXED_SAMPLE_RATE_DIVIDEND; SoundStream* sound_stream = Core::System::GetInstance().GetSoundStream(); - sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(s_ais_sample_rate_divisor); + sound_stream->GetMixer()->SetStreamInputSampleRateDivisor(state.ais_sample_rate_divisor); } } // namespace void Init() { - s_control.hex = 0; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + + state.control.hex = 0; SetAISSampleRate(SampleRate::AI48KHz); SetAIDSampleRate(SampleRate::AI32KHz); - s_volume.hex = 0; - s_sample_counter = 0; - s_interrupt_timing = 0; + state.volume.hex = 0; + state.sample_counter = 0; + state.interrupt_timing = 0; - s_last_cpu_time = 0; + state.last_cpu_time = 0; - event_type_ai = CoreTiming::RegisterEvent("AICallback", Update); + state.event_type_ai = CoreTiming::RegisterEvent("AICallback", Update); } void Shutdown() @@ -253,25 +278,28 @@ void Shutdown() void RegisterMMIO(MMIO::Mapping* mmio, u32 base) { + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + mmio->Register( - base | AI_CONTROL_REGISTER, MMIO::DirectRead(&s_control.hex), + base | AI_CONTROL_REGISTER, MMIO::DirectRead(&state.control.hex), MMIO::ComplexWrite([](u32, u32 val) { const AICR tmp_ai_ctrl(val); - if (s_control.AIINTMSK != tmp_ai_ctrl.AIINTMSK) + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + if (state.control.AIINTMSK != tmp_ai_ctrl.AIINTMSK) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AIINTMSK to {}", tmp_ai_ctrl.AIINTMSK); - s_control.AIINTMSK = tmp_ai_ctrl.AIINTMSK; + state.control.AIINTMSK = tmp_ai_ctrl.AIINTMSK; } - if (s_control.AIINTVLD != tmp_ai_ctrl.AIINTVLD) + if (state.control.AIINTVLD != tmp_ai_ctrl.AIINTVLD) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AIINTVLD to {}", tmp_ai_ctrl.AIINTVLD); - s_control.AIINTVLD = tmp_ai_ctrl.AIINTVLD; + state.control.AIINTVLD = tmp_ai_ctrl.AIINTVLD; } // Set frequency of streaming audio - if (tmp_ai_ctrl.AISFR != s_control.AISFR) + if (tmp_ai_ctrl.AISFR != state.control.AISFR) { // AISFR rates below are intentionally inverted wrt yagcd DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AISFR to {}", @@ -280,7 +308,7 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) } // Set frequency of DMA - if (tmp_ai_ctrl.AIDFR != s_control.AIDFR) + if (tmp_ai_ctrl.AIDFR != state.control.AIDFR) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Change AIDFR to {}", tmp_ai_ctrl.AIDFR ? "32khz" : "48khz"); @@ -288,64 +316,70 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base) } // Streaming counter - if (tmp_ai_ctrl.PSTAT != s_control.PSTAT) + if (tmp_ai_ctrl.PSTAT != state.control.PSTAT) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "{} streaming audio", tmp_ai_ctrl.PSTAT ? "start" : "stop"); - s_control.PSTAT = tmp_ai_ctrl.PSTAT; - s_last_cpu_time = CoreTiming::GetTicks(); + state.control.PSTAT = tmp_ai_ctrl.PSTAT; + state.last_cpu_time = CoreTiming::GetTicks(); - CoreTiming::RemoveEvent(event_type_ai); - CoreTiming::ScheduleEvent(GetAIPeriod(), event_type_ai); + CoreTiming::RemoveEvent(state.event_type_ai); + CoreTiming::ScheduleEvent(GetAIPeriod(), state.event_type_ai); } // AI Interrupt if (tmp_ai_ctrl.AIINT) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Clear AIS Interrupt"); - s_control.AIINT = 0; + state.control.AIINT = 0; } // Sample Count Reset if (tmp_ai_ctrl.SCRESET) { DEBUG_LOG_FMT(AUDIO_INTERFACE, "Reset AIS sample counter"); - s_sample_counter = 0; + state.sample_counter = 0; - s_last_cpu_time = CoreTiming::GetTicks(); + state.last_cpu_time = CoreTiming::GetTicks(); } UpdateInterrupts(); })); - mmio->Register(base | AI_VOLUME_REGISTER, MMIO::DirectRead(&s_volume.hex), + mmio->Register(base | AI_VOLUME_REGISTER, MMIO::DirectRead(&state.volume.hex), MMIO::ComplexWrite([](u32, u32 val) { - s_volume.hex = val; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + state.volume.hex = val; auto& system = Core::System::GetInstance(); SoundStream* sound_stream = system.GetSoundStream(); - sound_stream->GetMixer()->SetStreamingVolume(s_volume.left, s_volume.right); + sound_stream->GetMixer()->SetStreamingVolume(state.volume.left, + state.volume.right); })); mmio->Register(base | AI_SAMPLE_COUNTER, MMIO::ComplexRead([](u32) { - const u64 cycles_streamed = - IsPlaying() ? (CoreTiming::GetTicks() - s_last_cpu_time) : s_last_cpu_time; - return s_sample_counter + - static_cast(cycles_streamed / s_cpu_cycles_per_sample); + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + const u64 cycles_streamed = IsPlaying() ? + (CoreTiming::GetTicks() - state.last_cpu_time) : + state.last_cpu_time; + return state.sample_counter + + static_cast(cycles_streamed / state.cpu_cycles_per_sample); }), MMIO::ComplexWrite([](u32, u32 val) { - s_sample_counter = val; - s_last_cpu_time = CoreTiming::GetTicks(); - CoreTiming::RemoveEvent(event_type_ai); - CoreTiming::ScheduleEvent(GetAIPeriod(), event_type_ai); + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + state.sample_counter = val; + state.last_cpu_time = CoreTiming::GetTicks(); + CoreTiming::RemoveEvent(state.event_type_ai); + CoreTiming::ScheduleEvent(GetAIPeriod(), state.event_type_ai); })); - mmio->Register(base | AI_INTERRUPT_TIMING, MMIO::DirectRead(&s_interrupt_timing), + mmio->Register(base | AI_INTERRUPT_TIMING, MMIO::DirectRead(&state.interrupt_timing), MMIO::ComplexWrite([](u32, u32 val) { + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); DEBUG_LOG_FMT(AUDIO_INTERFACE, "AI_INTERRUPT_TIMING={:08x} at PC: {:08x}", val, PowerPC::ppcState.pc); - s_interrupt_timing = val; - CoreTiming::RemoveEvent(event_type_ai); - CoreTiming::ScheduleEvent(GetAIPeriod(), event_type_ai); + state.interrupt_timing = val; + CoreTiming::RemoveEvent(state.event_type_ai); + CoreTiming::ScheduleEvent(GetAIPeriod(), state.event_type_ai); })); } @@ -356,17 +390,20 @@ void GenerateAISInterrupt() bool IsPlaying() { - return (s_control.PSTAT == 1); + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + return (state.control.PSTAT == 1); } u32 GetAIDSampleRateDivisor() { - return s_aid_sample_rate_divisor; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + return state.aid_sample_rate_divisor; } u32 GetAISSampleRateDivisor() { - return s_ais_sample_rate_divisor; + auto& state = Core::System::GetInstance().GetAudioInterfaceState().GetData(); + return state.ais_sample_rate_divisor; } u32 Get32KHzSampleRateDivisor() diff --git a/Source/Core/Core/HW/AudioInterface.h b/Source/Core/Core/HW/AudioInterface.h index afab8c769a..e776685bb5 100644 --- a/Source/Core/Core/HW/AudioInterface.h +++ b/Source/Core/Core/HW/AudioInterface.h @@ -5,6 +5,8 @@ #pragma once +#include + #include "Common/CommonTypes.h" class PointerWrap; @@ -15,6 +17,23 @@ class Mapping; namespace AudioInterface { +class AudioInterfaceState +{ +public: + AudioInterfaceState(); + AudioInterfaceState(const AudioInterfaceState&) = delete; + AudioInterfaceState(AudioInterfaceState&&) = delete; + AudioInterfaceState& operator=(const AudioInterfaceState&) = delete; + AudioInterfaceState& operator=(AudioInterfaceState&&) = delete; + ~AudioInterfaceState(); + + struct Data; + Data& GetData() { return *m_data; } + +private: + std::unique_ptr m_data; +}; + void Init(); void Shutdown(); void DoState(PointerWrap& p); diff --git a/Source/Core/Core/System.cpp b/Source/Core/Core/System.cpp index 108209b024..cf8be13ab9 100644 --- a/Source/Core/Core/System.cpp +++ b/Source/Core/Core/System.cpp @@ -7,6 +7,7 @@ #include "AudioCommon/SoundStream.h" #include "Core/Config/MainSettings.h" +#include "Core/HW/AudioInterface.h" #include "Core/HW/DVD/DVDInterface.h" #include "Core/HW/DVD/DVDThread.h" @@ -18,6 +19,7 @@ struct System::Impl bool m_sound_stream_running = false; bool m_audio_dump_started = false; + AudioInterface::AudioInterfaceState m_audio_interface_state; DVDInterface::DVDInterfaceState m_dvd_interface_state; DVDThread::DVDThreadState m_dvd_thread_state; }; @@ -64,6 +66,11 @@ void System::SetAudioDumpStarted(bool started) m_impl->m_audio_dump_started = started; } +AudioInterface::AudioInterfaceState& System::GetAudioInterfaceState() const +{ + return m_impl->m_audio_interface_state; +} + DVDInterface::DVDInterfaceState& System::GetDVDInterfaceState() const { return m_impl->m_dvd_interface_state; diff --git a/Source/Core/Core/System.h b/Source/Core/Core/System.h index 704d3dca71..83b93d4b19 100644 --- a/Source/Core/Core/System.h +++ b/Source/Core/Core/System.h @@ -7,6 +7,10 @@ class SoundStream; +namespace AudioInterface +{ +class AudioInterfaceState; +}; namespace DVDInterface { class DVDInterfaceState; @@ -49,6 +53,7 @@ public: bool IsAudioDumpStarted() const; void SetAudioDumpStarted(bool started); + AudioInterface::AudioInterfaceState& GetAudioInterfaceState() const; DVDInterface::DVDInterfaceState& GetDVDInterfaceState() const; DVDThread::DVDThreadState& GetDVDThreadState() const; From b51d37fe49f568a6dfb9a7631f0e8907bb0750df Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Fri, 9 Sep 2022 22:35:51 +0200 Subject: [PATCH 647/659] HW: Convert FileMonitor::Log into a class. --- Source/Core/Core/HW/DVD/DVDThread.cpp | 4 +++- Source/Core/Core/HW/DVD/FileMonitor.cpp | 15 ++++++++------- Source/Core/Core/HW/DVD/FileMonitor.h | 22 ++++++++++++++-------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Source/Core/Core/HW/DVD/DVDThread.cpp b/Source/Core/Core/HW/DVD/DVDThread.cpp index 6c0ff43452..2cd0e35246 100644 --- a/Source/Core/Core/HW/DVD/DVDThread.cpp +++ b/Source/Core/Core/HW/DVD/DVDThread.cpp @@ -90,6 +90,8 @@ struct DVDThreadState::Data std::map result_map; std::unique_ptr disc; + + FileMonitor::FileLogger file_logger; }; DVDThreadState::DVDThreadState() : m_data(std::make_unique()) @@ -411,7 +413,7 @@ static void DVDThread() ReadRequest request; while (state.request_queue.Pop(request)) { - FileMonitor::Log(*state.disc, request.partition, request.dvd_offset); + state.file_logger.Log(*state.disc, request.partition, request.dvd_offset); std::vector buffer(request.length); if (!state.disc->Read(request.dvd_offset, request.length, buffer.data(), request.partition)) diff --git a/Source/Core/Core/HW/DVD/FileMonitor.cpp b/Source/Core/Core/HW/DVD/FileMonitor.cpp index f6fb511f67..6e08006a6a 100644 --- a/Source/Core/Core/HW/DVD/FileMonitor.cpp +++ b/Source/Core/Core/HW/DVD/FileMonitor.cpp @@ -20,9 +20,6 @@ namespace FileMonitor { -static DiscIO::Partition s_previous_partition; -static u64 s_previous_file_offset; - // Filtered files static bool IsSoundFile(const std::string& filename) { @@ -49,7 +46,11 @@ static bool IsSoundFile(const std::string& filename) return extensions.find(extension) != extensions.end(); } -void Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 offset) +FileLogger::FileLogger() = default; + +FileLogger::~FileLogger() = default; + +void FileLogger::Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 offset) { // Do nothing if the log isn't selected if (!Common::Log::LogManager::GetInstance()->IsEnabled(Common::Log::LogType::FILEMON, @@ -73,7 +74,7 @@ void Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 o const u64 file_offset = file_info->GetOffset(); // Do nothing if we found the same file again - if (s_previous_partition == partition && s_previous_file_offset == file_offset) + if (m_previous_partition == partition && m_previous_file_offset == file_offset) return; const std::string size_string = ThousandSeparate(file_info->GetSize() / 1000, 7); @@ -85,8 +86,8 @@ void Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 o WARN_LOG_FMT(FILEMON, "{}", log_string); // Update the last accessed file - s_previous_partition = partition; - s_previous_file_offset = file_offset; + m_previous_partition = partition; + m_previous_file_offset = file_offset; } } // namespace FileMonitor diff --git a/Source/Core/Core/HW/DVD/FileMonitor.h b/Source/Core/Core/HW/DVD/FileMonitor.h index 2f42ce56e9..0b29d30fb1 100644 --- a/Source/Core/Core/HW/DVD/FileMonitor.h +++ b/Source/Core/Core/HW/DVD/FileMonitor.h @@ -4,14 +4,20 @@ #pragma once #include "Common/CommonTypes.h" - -namespace DiscIO -{ -struct Partition; -class Volume; -} // namespace DiscIO +#include "DiscIO/Volume.h" namespace FileMonitor { -void Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 offset); -} +class FileLogger +{ +public: + FileLogger(); + ~FileLogger(); + + void Log(const DiscIO::Volume& volume, const DiscIO::Partition& partition, u64 offset); + +private: + DiscIO::Partition m_previous_partition; + u64 m_previous_file_offset; +}; +} // namespace FileMonitor From 9fcc3e2e92d8c5fce4fe9b8887657242723f4a09 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sat, 10 Sep 2022 17:01:24 -0400 Subject: [PATCH 648/659] Android: Add custom window animation to alert dialogs --- .../Android/app/src/main/res/anim/fade_in.xml | 18 ++++++++++++++++++ .../Android/app/src/main/res/anim/fade_out.xml | 18 ++++++++++++++++++ .../src/main/res/values-night-v31/themes.xml | 2 +- .../app/src/main/res/values-v31/themes.xml | 2 +- .../Android/app/src/main/res/values/styles.xml | 10 ++++++++++ .../Android/app/src/main/res/values/themes.xml | 6 +++--- 6 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 Source/Android/app/src/main/res/anim/fade_in.xml create mode 100644 Source/Android/app/src/main/res/anim/fade_out.xml diff --git a/Source/Android/app/src/main/res/anim/fade_in.xml b/Source/Android/app/src/main/res/anim/fade_in.xml new file mode 100644 index 0000000000..3767d530d5 --- /dev/null +++ b/Source/Android/app/src/main/res/anim/fade_in.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Source/Android/app/src/main/res/anim/fade_out.xml b/Source/Android/app/src/main/res/anim/fade_out.xml new file mode 100644 index 0000000000..fab1686871 --- /dev/null +++ b/Source/Android/app/src/main/res/anim/fade_out.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Source/Android/app/src/main/res/values-night-v31/themes.xml b/Source/Android/app/src/main/res/values-night-v31/themes.xml index fac737af73..c54c191654 100644 --- a/Source/Android/app/src/main/res/values-night-v31/themes.xml +++ b/Source/Android/app/src/main/res/values-night-v31/themes.xml @@ -27,7 +27,7 @@ @color/m3_sys_color_dynamic_dark_on_surface_variant @color/m3_sys_color_dynamic_dark_secondary - @style/ThemeOverlay.Material3.MaterialAlertDialog + @style/MaterialDialog @style/ThemeOverlay.Material3
diff --git a/Source/Android/app/src/main/res/values-v31/themes.xml b/Source/Android/app/src/main/res/values-v31/themes.xml index 0b7905858d..2e75d2d205 100644 --- a/Source/Android/app/src/main/res/values-v31/themes.xml +++ b/Source/Android/app/src/main/res/values-v31/themes.xml @@ -27,7 +27,7 @@ @color/m3_sys_color_dynamic_light_on_surface_variant @color/m3_sys_color_dynamic_light_secondary - @style/ThemeOverlay.Material3.MaterialAlertDialog + @style/MaterialDialog @style/ThemeOverlay.Material3 diff --git a/Source/Android/app/src/main/res/values/styles.xml b/Source/Android/app/src/main/res/values/styles.xml index 55a8a35754..63709b9e37 100644 --- a/Source/Android/app/src/main/res/values/styles.xml +++ b/Source/Android/app/src/main/res/values/styles.xml @@ -32,6 +32,16 @@ @style/DolphinButton @style/DolphinButton @style/DolphinButton + @style/DialogAnimation + + + + + @@ -97,7 +97,7 @@ @color/green_onSurfaceVariant @color/green_secondary - @style/ThemeOverlay.Material3.MaterialAlertDialog + @style/MaterialDialog @style/ThemeOverlay.Material3 @@ -131,7 +131,7 @@ @color/pink_onSurfaceVariant @color/pink_secondary - @style/ThemeOverlay.Material3.MaterialAlertDialog + @style/MaterialDialog @style/ThemeOverlay.Material3 From bb398c86486a33d46c1d391c955075115da23635 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sat, 10 Sep 2022 15:54:58 -0400 Subject: [PATCH 649/659] Android: Match navigation bar color to background --- Source/Android/app/src/main/res/values-night/bools.xml | 2 +- Source/Android/app/src/main/res/values-v27/themes.xml | 9 +++++++++ Source/Android/app/src/main/res/values/bools.xml | 2 +- Source/Android/app/src/main/res/values/themes.xml | 7 +++++-- 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 Source/Android/app/src/main/res/values-v27/themes.xml diff --git a/Source/Android/app/src/main/res/values-night/bools.xml b/Source/Android/app/src/main/res/values-night/bools.xml index 14d6d1cbc8..85800a2f2c 100644 --- a/Source/Android/app/src/main/res/values-night/bools.xml +++ b/Source/Android/app/src/main/res/values-night/bools.xml @@ -1,4 +1,4 @@ - false + false diff --git a/Source/Android/app/src/main/res/values-v27/themes.xml b/Source/Android/app/src/main/res/values-v27/themes.xml new file mode 100644 index 0000000000..06e1668481 --- /dev/null +++ b/Source/Android/app/src/main/res/values-v27/themes.xml @@ -0,0 +1,9 @@ + + + + + - + + diff --git a/Source/Android/app/src/main/res/values-v31/themes.xml b/Source/Android/app/src/main/res/values-v31/themes.xml index 2e75d2d205..f1ed53cc81 100644 --- a/Source/Android/app/src/main/res/values-v31/themes.xml +++ b/Source/Android/app/src/main/res/values-v31/themes.xml @@ -24,9 +24,6 @@ @color/m3_sys_color_dynamic_light_surface_variant @color/m3_sys_color_dynamic_light_inverse_primary - @color/m3_sys_color_dynamic_light_on_surface_variant - @color/m3_sys_color_dynamic_light_secondary - @style/MaterialDialog @style/ThemeOverlay.Material3 diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml index 5b56bf5dbb..7dcf9e0052 100644 --- a/Source/Android/app/src/main/res/values/themes.xml +++ b/Source/Android/app/src/main/res/values/themes.xml @@ -91,9 +91,6 @@ @color/green_inverseSurface @color/green_inversePrimary - @color/green_onSurfaceVariant - @color/green_secondary - @style/MaterialDialog @style/ThemeOverlay.Material3 @@ -125,9 +122,6 @@ @color/pink_inverseSurface @color/pink_inversePrimary - @color/pink_onSurfaceVariant - @color/pink_secondary - @style/MaterialDialog @style/ThemeOverlay.Material3 From 8c477852f315b26202c33e849736757203c4b327 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 11 Sep 2022 23:43:39 -0400 Subject: [PATCH 657/659] Android: Add more top app bars --- .../activities/ConvertActivity.java | 16 ++ .../ui/RiivolutionBootActivity.java | 16 ++ .../res/layout-land/activity_user_data.xml | 219 ++++++++++-------- .../layout-w680dp-land/activity_convert.xml | 111 +++++---- .../src/main/res/layout/activity_convert.xml | 107 ++++++--- .../res/layout/activity_riivolution_boot.xml | 130 +++++++---- .../main/res/layout/activity_user_data.xml | 173 ++++++++------ .../app/src/main/res/values/strings.xml | 1 + 8 files changed, 476 insertions(+), 297 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/ConvertActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/ConvertActivity.java index e2ee9ae353..63478fee0b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/ConvertActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/ConvertActivity.java @@ -8,6 +8,9 @@ import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; +import com.google.android.material.appbar.CollapsingToolbarLayout; +import com.google.android.material.appbar.MaterialToolbar; + import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.fragments.ConvertFragment; import org.dolphinemu.dolphinemu.utils.ThemeHelper; @@ -41,5 +44,18 @@ public class ConvertActivity extends AppCompatActivity fragment = ConvertFragment.newInstance(path); getSupportFragmentManager().beginTransaction().add(R.id.fragment_convert, fragment).commit(); } + + MaterialToolbar tb = findViewById(R.id.toolbar_convert); + CollapsingToolbarLayout ctb = findViewById(R.id.toolbar_convert_layout); + ctb.setTitle(getString(R.string.convert_convert)); + setSupportActionBar(tb); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + @Override + public boolean onSupportNavigateUp() + { + onBackPressed(); + return true; } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java index 4cc014d646..70487da0b9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java @@ -12,6 +12,9 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.appbar.CollapsingToolbarLayout; +import com.google.android.material.appbar.MaterialToolbar; + import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.activities.EmulationActivity; import org.dolphinemu.dolphinemu.features.riivolution.model.RiivolutionPatches; @@ -77,6 +80,12 @@ public class RiivolutionBootActivity extends AppCompatActivity patches.loadConfig(); runOnUiThread(() -> populateList(patches)); }).start(); + + MaterialToolbar tb = findViewById(R.id.toolbar_riivolution); + CollapsingToolbarLayout ctb = findViewById(R.id.toolbar_riivolution_layout); + ctb.setTitle(getString(R.string.riivolution_riivolution)); + setSupportActionBar(tb); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override @@ -88,6 +97,13 @@ public class RiivolutionBootActivity extends AppCompatActivity mPatches.saveConfig(); } + @Override + public boolean onSupportNavigateUp() + { + onBackPressed(); + return true; + } + private void populateList(RiivolutionPatches patches) { mPatches = patches; diff --git a/Source/Android/app/src/main/res/layout-land/activity_user_data.xml b/Source/Android/app/src/main/res/layout-land/activity_user_data.xml index c60fd3b07f..597e598266 100644 --- a/Source/Android/app/src/main/res/layout-land/activity_user_data.xml +++ b/Source/Android/app/src/main/res/layout-land/activity_user_data.xml @@ -1,5 +1,5 @@ - + android:layout_alignParentTop="true" + app:elevation="0dp"> - + android:layout_height="?attr/collapsingToolbarLayoutMediumSize" + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> + + + + - + - + - + - + - + - + -